ruby-trunk-changes 2026-10-14

今日は拡張ライブラリ openssl で OpenSSL::SSL::SSLSocket のメソッド群の仕様や挙動を IO のものに揃える変更や、prism の大規模なリファクタリングなどでたくさんの変更がありました。 100 commits もの変更がありました。

[c31e15064b] Kazuhiro NISHIYAMA 2026-10-13 11:16:01 UTC

tool/run-lcov.rb というツールが prism を bundled gems 化した樋にエラーになってたので除外対象に .bindle/* を追加しています。

[34cc07dfd1] Kazuki Yamaguchi 2026-10-13 15:23:23 UTC

拡張ライブラリ openssl で sysread や syswrite からの Errno::EAGAIN 例外を捕捉して retry していたのがもう不要になってたため削除しています。

[fc929c894d] Kazuki Yamaguchi 2025-12-23 16:12:46 UTC

拡張ライブラリ openssl の OpenSSL::Buffering で String のサブクラスを定義していたのをやめて Refinements を利用するように変更しています。おお、標準添付ライブラリでの Refinements の利用。

[ee5f592185] Kazuki Yamaguchi 2026-09-21 17:17:18 UTC

拡張ライブラリ openssl で frozen_string_literal 対応のため "" を返してたところを String.new で freeze されてない文字列を返すようにしています。

[6750e8f01a] Kazuki Yamaguchi 2025-12-17 05:34:41 UTC

拡張ライブラリ openssl の OpenSSL::SSL::SSLSocket#ungetc の引数に 2文字以上の文字列を渡した時に 1文字目だけでなく全体を書き戻すように IO#ungetc に揃えています。また OpenSSL::SSL::SSLSocket#ungetbyte も追加しています。

[6c87bfb282] Kazuki Yamaguchi 2025-12-17 05:53:38 UTC

拡張ライブラリ openssl に OpenSSL::SSL::SSLSocket#each_char メソッドを新規追加しています。また OpenSSL::SSL::SSLSocket#each_byte にブロックを渡さず呼んだ時に Enumerator を返すようにしています。

[f4a0d53e28] Kazuki Yamaguchi 2025-12-15 18:31:00 UTC

拡張ライブラリ openssl の OpenSSL::SSL::SSLSocket の行指向読み込みのメソッド群に IO の同名メソッドと引数や挙動をそろえるように変更しています。

[ce8da0cfc0] Kazuki Yamaguchi 2025-12-28 17:07:57 UTC

拡張ライブラリ openssl の OpenSSL::SSL::SSLSocket#write で引数に to_s メソッドを呼んで String に変換するよう IO に合わせています。

[497f987ca5] Kazuki Yamaguchi 2026-01-08 10:48:03 UTC

拡張ライブラリ openssl の OpenSSL::SSL::SSLSocket#syswrite, #syswrite_nonblock でも StringValue() マクロで(to_str メソッドによる変換を試すようにしてたのを to_s メソッドによる明示的変換を行うように変更しています。

[15467f68cf] Kazuki Yamaguchi 2025-12-23 18:15:17 UTC

拡張ライブラリ openssl の OpenSSL::SSL::SSLSocket#puts でも IO#puts にそえろえて配列でネストした引数も受け付けて flatten で展開するようにしています。

[1ec5306dc5] Kazuki Yamaguchi 2025-12-23 18:43:50 UTC

拡張ライブラリ openssl の OpenSSL::SSL::SSLSocket#putc を新規追加しています。

[09d278a9c7] Kazuki Yamaguchi 2025-12-30 09:08:57 UTC

拡張ライブラリ openssl のテストで IO との挙動の違いが検出されるように同じテストを IO でも実行するようにしています。

[dfbcdda939] Yusuke Endoh 2026-10-11 09:12:31 UTC

parser としての prism の組み込み化の Ruby::Box 対応。 autoload を設定した定数 Ruby::Prism が最初に参照した box からのみ見えるというのを、参照した box にではなくて autoload 設定した box で読み込むようにして共有されるように? しています。 [ruby-core:126653] [Bug #22305]

[6d68304c38] Yusuke Endoh 2026-10-11 11:29:03 UTC

dfbcdda93952f7ed18131a14e1010d403e7f5c02 の Ruby::Box の autoload 対応の再修正。詳細よくわかってませんが二重管理になっていた autoload のエントリを一本化しているようです。 [ruby-core:126653] [Bug #22305]

[dbd0e0174c] Yusuke Endoh 2026-10-11 11:29:04 UTC

variable.c の autoload_data() を autoload_entry() に改名するリファクタリング。

[bac98d1454] Yusuke Endoh 2026-10-11 11:35:47 UTC

Ruby::Prism の rdoc 用コメントに require "ruby/prism" は不要なことを明記しています。

[8b630aad6a] Yusuke Endoh 2026-10-13 15:39:10 UTC

variable.c のコメントの変更のみ。

[cb08906bfa] Yusuke Endoh 2026-10-13 15:24:13 UTC

variable.c の説明コメントの追記。

[0cb32950e4] Yusuke Endoh 2026-10-13 15:41:38 UTC

variable.c の冗長な条件分岐を消して VM_ASSERT() によるデバッグビルド時のチェックに変更しています。

[1907cd84b4] Yusuke Endoh 2026-10-13 16:02:34 UTC

bac98d1454ca3018cecba2fd284eb33164d2f28c の続きで Ruby::Prism の rdoc 用コメントに require "ruby/prism" するべきでない理由を追記しています。 [ruby-core:126653] [Bug #22305]

[976b89be4a] Kevin Newton 2026-10-13 13:36:22 UTC

prism で Regexp#=~ メソッドの receiver の正規表現にローカル変数への capture があった時に正規表現を2度コンパイルするのでエラー時のメッセージも二重に出ていたのを修正しています。

[104e0ca8c9] Kevin Newton 2026-10-13 14:13:56 UTC

ここから prism の parse_expression_prefix() という巨大な関数を細かい関数に切り出すリファクタリングが大量に続きます。

[0a2f024c1e] Kevin Newton 2026-10-13 14:16:31 UTC

104e0ca8c9b136f4d6ee10c249b48793c12d3507 から続く parse_expression_prefix() から処理を関数に切り出すリファクタリング続き。

[e8baec457e] Kevin Newton 2026-10-13 14:18:25 UTC

104e0ca8c9b136f4d6ee10c249b48793c12d3507 から続く parse_expression_prefix() から処理を関数に切り出すリファクタリング続き。

[8e4d6018d6] Kevin Newton 2026-10-13 14:21:11 UTC

104e0ca8c9b136f4d6ee10c249b48793c12d3507 から続く parse_expression_prefix() から処理を関数に切り出すリファクタリング続き。

[faa781f78d] Kevin Newton 2026-10-13 14:22:59 UTC

104e0ca8c9b136f4d6ee10c249b48793c12d3507 から続く parse_expression_prefix() から処理を関数に切り出すリファクタリング続き。

[9bb259e01b] Kevin Newton 2026-10-13 14:24:33 UTC

104e0ca8c9b136f4d6ee10c249b48793c12d3507 から続く parse_expression_prefix() から処理を関数に切り出すリファクタリング続き。

[13a5abf323] Kevin Newton 2026-10-13 14:28:27 UTC

104e0ca8c9b136f4d6ee10c249b48793c12d3507 から続く parse_expression_prefix() から処理を関数に切り出すリファクタリング続き。

[55fb2890e4] Kevin Newton 2026-10-13 14:31:13 UTC

104e0ca8c9b136f4d6ee10c249b48793c12d3507 から続く parse_expression_prefix() から処理を関数に切り出すリファクタリング続き。

[a7f2aa5ec5] Kevin Newton 2026-10-13 14:33:46 UTC

104e0ca8c9b136f4d6ee10c249b48793c12d3507 から続く parse_expression_prefix() から処理を関数に切り出すリファクタリング続き。

[d03b0d923f] Kevin Newton 2026-10-13 14:36:27 UTC

104e0ca8c9b136f4d6ee10c249b48793c12d3507 から続く parse_expression_prefix() から処理を関数に切り出すリファクタリング続き。

[6cc44439e3] Kevin Newton 2026-10-13 14:38:09 UTC

104e0ca8c9b136f4d6ee10c249b48793c12d3507 から続く parse_expression_prefix() から処理を関数に切り出すリファクタリング続き。

[41f814200e] Kevin Newton 2026-10-13 14:41:20 UTC

104e0ca8c9b136f4d6ee10c249b48793c12d3507 から続く parse_expression_prefix() から処理を関数に切り出すリファクタリング続き。

[3de3f7e659] Kevin Newton 2026-10-13 14:44:25 UTC

104e0ca8c9b136f4d6ee10c249b48793c12d3507 から続く parse_expression_prefix() から処理を関数に切り出すリファクタリング続き。

[404cefa4ea] Kevin Newton 2026-10-13 14:46:55 UTC

104e0ca8c9b136f4d6ee10c249b48793c12d3507 から続く parse_expression_prefix() から処理を関数に切り出すリファクタリング続き。

[f283106ec6] Kevin Newton 2026-10-13 14:49:17 UTC

104e0ca8c9b136f4d6ee10c249b48793c12d3507 から続く parse_expression_prefix() から処理を関数に切り出すリファクタリング続き。

[1603c441ea] Kevin Newton 2026-10-13 14:51:39 UTC

104e0ca8c9b136f4d6ee10c249b48793c12d3507 から続く parse_expression_prefix() から処理を関数に切り出すリファクタリング続き。

[0cae2de088] Kevin Newton 2026-10-13 14:55:53 UTC

104e0ca8c9b136f4d6ee10c249b48793c12d3507 から続く parse_expression_prefix() から処理を関数に切り出すリファクタリング続き。

[5d52c6f81a] Kevin Newton 2026-10-13 15:00:19 UTC

104e0ca8c9b136f4d6ee10c249b48793c12d3507 から続く parse_expression_prefix() から処理を関数に切り出すリファクタリング続き。

[0c61f22342] Kevin Newton 2026-10-13 15:03:19 UTC

104e0ca8c9b136f4d6ee10c249b48793c12d3507 から続く parse_expression_prefix() から処理を関数に切り出すリファクタリング続き。

[e1414377bc] Kevin Newton 2026-10-13 15:07:13 UTC

104e0ca8c9b136f4d6ee10c249b48793c12d3507 から続く parse_expression_prefix() から処理を関数に切り出すリファクタリング続き。

[021b6231ff] Kevin Newton 2026-10-13 15:09:48 UTC

104e0ca8c9b136f4d6ee10c249b48793c12d3507 から続く parse_expression_prefix() から処理を関数に切り出すリファクタリング続き。

[345c6f21c3] Kevin Newton 2026-10-13 15:12:29 UTC

104e0ca8c9b136f4d6ee10c249b48793c12d3507 から続く parse_expression_prefix() から処理を関数に切り出すリファクタリング続き。

[8eb7292e62] Kevin Newton 2026-10-13 15:13:31 UTC

104e0ca8c9b136f4d6ee10c249b48793c12d3507 から続く parse_expression_prefix() から処理を関数に切り出すリファクタリング続き。

[1be355b9e1] Kevin Newton 2026-10-13 16:04:10 UTC

104e0ca8c9b136f4d6ee10c249b48793c12d3507 から続く parse_expression_prefix() から処理を関数に切り出すリファクタリング続き。

[a8d4b0dbc8] Kevin Newton 2026-10-13 16:07:47 UTC

104e0ca8c9b136f4d6ee10c249b48793c12d3507 から続く parse_expression_prefix() から処理を関数に切り出すリファクタリング続き。

[d923df2bcb] Kevin Newton 2026-10-13 16:11:12 UTC

104e0ca8c9b136f4d6ee10c249b48793c12d3507 から続く parse_expression_prefix() から処理を関数に切り出すリファクタリング続き。

[9a17b30f71] Kevin Newton 2026-10-13 16:13:16 UTC

104e0ca8c9b136f4d6ee10c249b48793c12d3507 から続く parse_expression_prefix() から処理を関数に切り出すリファクタリング続き。

[6a6d7ace65] Kevin Newton 2026-10-13 16:15:34 UTC

104e0ca8c9b136f4d6ee10c249b48793c12d3507 から続く parse_expression_prefix() から処理を関数に切り出すリファクタリング続き。

[1a198d3ca5] Kevin Newton 2026-10-13 16:18:11 UTC

104e0ca8c9b136f4d6ee10c249b48793c12d3507 から続く parse_expression_prefix() から処理を関数に切り出すリファクタリング続き。

[bb42b9a77b] Kevin Newton 2026-10-13 16:20:13 UTC

104e0ca8c9b136f4d6ee10c249b48793c12d3507 から続く parse_expression_prefix() から処理を関数に切り出すリファクタリング続き。

[72bca58770] Kevin Newton 2026-10-13 16:26:20 UTC

104e0ca8c9b136f4d6ee10c249b48793c12d3507 から続く parse_expression_prefix() から処理を関数に切り出すリファクタリング続き。

[f4a1b92a6d] Kevin Newton 2026-10-13 16:30:12 UTC

prism の関数名を改名するリファクタリング。

[559dd240e3] Kevin Newton 2026-10-13 16:38:19 UTC

104e0ca8c9b136f4d6ee10c249b48793c12d3507 から続く parse_expression_prefix() から処理を関数に切り出すリファクタリング続き。

[75d3464670] Kevin Newton 2026-10-13 16:40:41 UTC

104e0ca8c9b136f4d6ee10c249b48793c12d3507 から続く parse_expression_prefix() から処理を関数に切り出すリファクタリング続き。

[e7f6ab0ee0] Kevin Newton 2026-10-13 16:44:36 UTC

104e0ca8c9b136f4d6ee10c249b48793c12d3507 から続く parse_expression_prefix() から処理を関数に切り出すリファクタリング続き。

[0ed4ee6602] Kevin Newton 2026-10-13 16:51:04 UTC

104e0ca8c9b136f4d6ee10c249b48793c12d3507 から続く parse_expression_prefix() から処理を関数に切り出すリファクタリング続き。

[d3d04c19ca] Kevin Newton 2026-10-13 16:58:54 UTC

104e0ca8c9b136f4d6ee10c249b48793c12d3507 から続く parse_expression_prefix() から処理を関数に切り出すリファクタリング続き。

[1c7dba3df4] Kevin Newton 2026-10-13 17:02:18 UTC

104e0ca8c9b136f4d6ee10c249b48793c12d3507 から続く parse_expression_prefix() から処理を関数に切り出すリファクタリング続き。

[6227730b95] Kevin Newton 2026-10-13 17:05:15 UTC

104e0ca8c9b136f4d6ee10c249b48793c12d3507 から続く parse_expression_prefix() から処理を関数に切り出すリファクタリング続き。

[68e7541cfa] Kevin Newton 2026-10-13 17:16:24 UTC

104e0ca8c9b136f4d6ee10c249b48793c12d3507 から続く parse_expression_prefix() から処理を関数に切り出すリファクタリング続き。

[7dab22936b] Kevin Newton 2026-10-13 17:23:02 UTC

prism の切り出した関数 parse_pattern() の再帰の深さに上限をつけています。

[1b19b75b9c] Kevin Newton 2026-10-13 17:44:53 UTC

prism の parse の version 指定のデフォルト値を "latest" から "nearest" に変更しています。

[817e940d8c] Luke Gruber 2026-10-05 17:37:09 UTC

eval 系メソッドで生成する ISeq のコードの位置情報で内部的にファイルのパスの realpath とのペアを配列で持ってたのを 1つの文字列だけで保持するようにしてオブジェクト確保数を減らすように修正しています。

[a4ccceacf0] Earlopain 2026-09-26 17:19:19 UTC

prism の自動生成する .rb ファイルの rdoc 用コメントのマークアップの修正。

[fa8df43bd1] Kazuki Yamaguchi 2026-05-29 12:39:48 UTC

Process.spawn に長いコマンドラインを渡した時のテストをリファクタリングしてちょっとずつ長くして限界を探るのをやめてとても長い文字列を呼ぶだけにしています。

[67abedae69] Kevin Newton 2026-10-13 19:54:15 UTC

prism のファイルパスの変換に File.path メソッドを利用するようにしています。

[12217a2fe3] Mau Magnaguagno 2022-06-14 00:41:02 UTC

標準添付ライブラリ un.rb の mkmf コマンドのリファクタリング。

[70061f0e93] Mau Magnaguagno 2022-06-20 18:24:43 UTC

標準添付ライブラリ un.rb の gemspec ファイルでサポート ruby バージョンを 2.6.0 に引き上げています。

[56e8d2dd9a] Kevin Newton 2026-10-13 22:02:56 UTC

prism の EUC-JP の判定の不具合修正。

[2f4c707a8b] Kevin Newton 2026-10-13 22:04:57 UTC

prism の浮動小数点数の parse が非効率だったのを修正しています。

[6d167eb483] Kevin Newton 2026-10-13 22:07:36 UTC

prism のヒアドキュメントの終端判定の不具合修正。

[523d4fa59b] Kevin Newton 2026-10-13 22:09:37 UTC

prism の xmalloc() でのメモリ確保失敗時に abort(3) で即座に異常終了するようにしています。いいのかなこれ。

[f568167f89] dak2 2026-10-04 14:44:44 UTC

ZJIT で eval や Binding#local_variable_set によるローカル変数の代入をすると更新後の値が参照できない場合がある不具合を修正しています。

[540eaae321] dak2 2026-10-08 16:18:27 UTC

f568167f899f22fccc057b1131f6d5d90dfc6d57 の再修正。ローカル変数の参照の管理方法を根本的に変更しているみたいです。

[0adee861cb] John Hawthorn 2026-09-22 16:58:58 UTC

Class.allocate で initialize で初期化していない Class の問題の根本解決のため Class.allocate をそもそもエラーにしています。ただ Class#initialize メソッドも削除され Class.new メソッドを直接定義するようにしています。

[f6963df7eb] John Hawthorn 2026-09-22 18:52:40 UTC

0adee861cb586a011fc4c77eb00758cb3f2cfd93 の続きで Class の allocator 廃止により Class の初期化チェックが不要になったので削除しています。

[2de8f78db7] Hiroshi SHIBATA 2026-10-13 11:42:43 UTC

標準添付ライブラリ find の gemspec ファイルで ruby の最小サポートバージョンを 2.5 に引き上げています。

[0511c698a0] Hiroshi SHIBATA 2026-10-13 11:47:27 UTC

標準添付ライブラリ un.rb で --help オプションによるヘルプメッセージ出力がされなくなっていた不具合を修正しています。

[198b42b706] Hiroshi SHIBATA 2026-10-09 06:44:23 UTC

Windows での YJIT/ZJIT のコード領域の protect をかける処理が遅いのを対策しています。

[8c823c61af] Hiroshi SHIBATA 2026-10-10 09:01:48 UTC

198b42b706ff70d3ceccf320f07197e988145d31 の続きでコード領域の protect の Windows 向け最適化実装の説明コメントを追加しています。

[01ac07e5cc] Hiroshi SHIBATA 2026-10-13 22:00:44 UTC

標準添付ライブラリ un.rb の mkmf サブコマンドの -v オプションがグローバルな -v オプションに競合して認識されてなかった不具合を修正しています。

[2cdfc0d20e] ksss 2026-10-09 03:53:11 UTC

tool/rbinstall.rb の load_gemspec でファイルパス処理の不具合修正。default gems のロード失敗の対策みたいです。 [ruby-core:127021] [Bug #22420]

[6b32bb45c7] ksss 2026-10-13 05:33:14 UTC

tool/rbinstall.rb の load_gemspec で gemspec 内のローカル変数が上書きできてしまうのを空のメソッド内の Binding を生成してそこで eval するようにして回避しています。

[6e55b106d8] BurdetteLamar 2026-10-13 16:10:40 UTC

File.mtime、File::Stat#mtime および Pathname#mtime の rdoc 用コメントの手直し。

[5f1806fcaf] BurdetteLamar 2026-10-13 17:27:20 UTC

File::Stat#nlink の rdoc 用コメントの手直し。

[8bc1b731dd] BurdetteLamar 2026-10-13 18:46:53 UTC

File.owned?、File::Stat#owned? および Pathname#owned? の rdoc 用コメントを手直し。

[a827b6af70] BurdetteLamar 2026-10-13 19:18:38 UTC

File.pipe?、File::Stat#pipe? および Pathname#pipe? の rdoc 用コメントの手直し。

[f49adab2d1] BurdetteLamar 2026-10-13 21:00:30 UTC

File.readable?、File::Stat#readable? および Pathname#readable? の rdoc 用コメントの typo 修正。

[ba05130239] BurdetteLamar 2026-10-13 21:09:54 UTC

Pathname#setgid? の rdoc 用コメントのサンプルコード修正。

[186aa9afd1] BurdetteLamar 2026-10-13 21:13:20 UTC

Pathname#setuid? の rdoc 用コメントのサンプルコードの修正。

[1bf9130943] Erik Berlin 2026-10-13 00:27:52 UTC

Range の文字列を始点/終点にしている時に終点が始点より前の文字列だった時に Range#include? が誤判定する不具合を修正しています。

[332fcb9e41] Hiroshi SHIBATA 2026-10-13 21:47:52 UTC

複数 Ractor から Encoding を並行で autoload するテストが Windows でタイムアウトしたためタイムアウトを伸ばしています。

[dc420ed4b7] Hiroshi SHIBATA 2026-10-13 21:47:54 UTC

tool/fetch-bundled_gems.rb で github.com への接続をリトライするようにしています。

[6095c59c7e] Hiroshi SHIBATA 2026-10-07 11:19:09 UTC

標準添付ライブラリ net/http の resolv への依存をやめて Resolv::IPv4::Regex や Resolv::IPv6::Regex などの正規表現リテラルのみ必要だったので定義をコピーしています。

[daa307aa87] Yusuke Endoh 2026-10-14 05:23:31 UTC

標準添付ライブラリ resolv で Windows 版でのみ同じ port に bind 済みでも bind が成功してしまうので setsockopt で SO_REUSEADDR を落として設定するようにしています。

[8677671415] git 2026-10-14 07:03:17 UTC

NEWS の default gems の更新履歴を更新しています。

[d037ba85ef] Kunshan Wang 2026-10-14 05:30:15 UTC

GC の mmtk 実装の Rust パッケージ mmtk-core のバージョンを更新しています。

[44f7c6b00d] Douglas Eichelberger 2026-10-10 21:11:18 UTC

拡張ライブラリ socket の名前解決用の native thread の終了時に Kernel#fork が行われると名前解決のためのロックが取得状態のまま残り、子プロセスでその後名前解決しようとした時にデッドロック状態に陥り名前解決が終了しないという不具合を修正しています。 [ruby-core:126921] [Bug #22406]

[d71692d49f] Matt Valentine-House 2026-10-12 13:29:30 UTC

コマンドラインオプション --enable=zjit などのオプションを指定しても初期化時に ZJIT が有効化されてなかった? 不具合を修正しています。 [ruby-core:127073] [Bug #22427]

ruby-trunk-changes 2026-10-13

今日は主に rb_len_t 導入の対応の続きや拡張ライブラリ json の不具合修正などがありました。

[36f2a8e807] Tiago Cardoso 2026-05-11 09:06:09 UTC

拡張ライブラリ socket の名前解決エラーのメッセージにホスト名を付与するようにしています。 [ruby-core:81759] [Feature #13677]

[90e7ab3ade] Jean Boussier 2026-10-12 13:45:27 UTC

拡張ライブラリ json の JSON::ResumableParser での parse 時に \uXXXX 記法の桁が不足していた時の例外を JSON::ParserError に変更しています。

[817023b888] Jean Boussier 2026-10-12 13:50:51 UTC

拡張ライブラリ json の JSON.parse でバックスラッシュのあとに NUL 文字がきた時に無視されていたのを例外を発生させるようにしています。

[c5597ac4bd] Jean Boussier 2026-10-12 14:10:06 UTC

拡張ライブラリ json の JSON.parse で対数記法の浮動小数点数の parse で指数部が非常に大きな負の数の時のオーバーフローチェックを修正しています。

[86f192cf38] Jean Boussier 2026-10-12 14:27:22 UTC

拡張ライブラリ json の rvalue_stack_spill() という関数で stack_ref 引数に rvalue_stack の内容をセットする途中の状態が見えると不正な状態が見える可能性があるので初期化が完了してからポインタを上書きするように修正しています。

[ad29ad7ad8] Jean Boussier 2026-10-12 14:37:32 UTC

拡張ライブラリ json で JSON.parse のエラー時にエラー位置を示すパスを組み立てる時に不正な Encoding のキーを含んでいた時のエラーを修正しています。

[31ace4fd6a] Kevin Newton 2026-10-12 14:50:20 UTC

prism の parse の SIMD 命令対応の x86_64 版での実装を SSE2 を利用するようにしています。SSE3 版でコンパイルしたバイナリを SSE3 をサポートしていない CPU 上にもっていった時に実行時にエラーになるため。

[98fd04f76c] Kevin Newton 2026-10-08 19:17:34 UTC

prism のコメントを AST に保存する処理? を ruby から C 実装に移植しているようです。

[55e03ec0cf] Kevin Newton 2026-10-12 20:19:03 UTC

prism の実装で memcpy(3) や memset(3) に長さ 0 を渡す未定義挙動を避けるようにしています。

[c83f90c682] Hiroshi SHIBATA 2026-10-12 01:20:27 UTC

03e337664345b69daae99c763788293beb33ab94 からの一連の rb_len_t の導入続き。拡張ライブラリ zlib の対応。 [ruby-core:126900] [Feature #22400]

[cb86c6d7ba] Hiroshi SHIBATA 2026-10-12 02:51:31 UTC

03e337664345b69daae99c763788293beb33ab94 からの一連の rb_len_t の導入続き。 Array#product のカウンタの型を rb_len_t に変更。 [ruby-core:126900] [Feature #22400]

[c5c692c818] Hiroshi SHIBATA 2026-10-12 02:51:45 UTC

03e337664345b69daae99c763788293beb33ab94 からの一連の rb_len_t の導入続き。ractor.c のループカウンタに rb_len_t を利用するように修正。 [ruby-core:126900] [Feature #22400]

[f81c212132] Hiroshi SHIBATA 2026-10-12 03:06:54 UTC

03e337664345b69daae99c763788293beb33ab94 からの一連の rb_len_t の導入続き。 regexec.c の位置を指定する変数の型を rb_len_t に更新しています。 [ruby-core:126900] [Feature #22400]

[83fdd0da95] Peter Zhu 2026-10-12 10:01:32 UTC

GC の mmtk 実装の LTO (Link Time Optimization) 対応。

[ee0f83a7c2] git 2026-10-13 07:09:59 UTC

gems/bundled_gems と NEWS の bundled gems のバージョンリストの net-imap のバージョンを 0.6.8 に更新しています。

[72afd0b0d9] Jean Boussier 2026-10-13 07:15:24 UTC

拡張ライブラリ json の rfc8785 モードの key のソート処理の Prco からメソッドを切り出すリファクタリング。

[53e7d061f9] Jean Boussier 2026-10-13 08:03:21 UTC

拡張ライブラリ json のバージョンを 3.1.0 に更新しています。

[2722027e15] git 2026-10-13 08:05:51 UTC

NEWS の default gems のバージョンリストの json のバージョンを更新しています。

[4f42bb946c] Hiroshi SHIBATA 2026-10-13 03:43:34 UTC

03e337664345b69daae99c763788293beb33ab94 からの一連の rb_len_t の導入続き。 parse.y でも位置情報を指す変数を rb_len_t に変更しています。 [ruby-core:126900] [Feature #22400]

[c68782a239] Hiroshi SHIBATA 2026-10-13 04:24:55 UTC

03e337664345b69daae99c763788293beb33ab94 からの一連の rb_len_t の導入続き。 4f42bb946cb44bfee841f748122c8a974c2f8a78 に続いで parse.y 構造体メンバの型を rb_len_t に更新しています。 [ruby-core:126900] [Feature #22400]

[e5e36b4e3c] Hiroshi SHIBATA 2026-10-13 04:25:32 UTC

03e337664345b69daae99c763788293beb33ab94 からの一連の rb_len_t の導入続き。 4f42bb946cb44bfee841f748122c8a974c2f8a78 に続いて parse.y や universal_parser.c の桁位置のチェックで rb_long2int() を rb_len2int() に変更しています。 [ruby-core:126900] [Feature #22400]

[9d123b1e2c] Hiroshi SHIBATA 2026-10-13 04:26:27 UTC

03e337664345b69daae99c763788293beb33ab94 からの一連の rb_len_t の導入続き。 4f42bb946cb44bfee841f748122c8a974c2f8a78 に続いて parse.y に parser_column() というヘルパー関数を導入して int のオーバーフローチェックを追加しています。 [ruby-core:126900] [Feature #22400]

[b10b8048d1] Kazuki Yamaguchi 2026-10-07 17:21:43 UTC

IO::Buffer の pread/pwrite の引数を保持するための構造体の off_t 型メンバを rb_off_t に更新しています。

[62d2c3910d] Kazuki Yamaguchi 2026-10-10 10:28:14 UTC

ARGF.read_nonblock で fd に O_NONBLOCK を設定しそこねていたのを修正しています。 https://github.com/ruby/ruby/pull/6524

[76268ed648] Kazuki Yamaguchi 2026-10-10 14:21:31 UTC

io.c の io_getpartial() と io_read_nonblock() の処理を統合するリファクタリング。

[47dddf7800] Peter Zhu 2026-10-13 09:58:39 UTC

GC の mmtk 実装の Rust 実装から C の関数を呼ぶ方法を C binding で直接呼ぶように? 変更しています。

ruby-trunk-changes 2026-10-12

今日は String.new の不具合修正や rb_len_t 導入後の追随修正などがありました。

[9cffa03aef] Nobuyoshi Nakada 2026-10-05 06:44:44 UTC

UNDEF_P() と NIL_P() によるチェックをまとめて行うマクロ NIL_OR_UNDEF_P() に置き換えるリファクタリング。

[2d08b5f42f] Nobuyoshi Nakada 2026-10-05 10:59:02 UTC

String.new にキーワード引数 encoding と capacity を合わせて渡して、複製元の文字列の Encoding と異なる場合に終端文字のサイズが変更前の Encoding 基準で計算されるのでオーバーフローする可能性があった不具合を修正しています。 [ruby-core:127061] [Bug #22423]

[549b702e18] Hiroshi SHIBATA 2026-10-11 22:53:13 UTC

GitHub Actions に Haiku 向けの workflow を追加しています。

[7cceceae94] Hiroshi SHIBATA 2026-10-11 23:55:39 UTC

dir.c で構造体 struct dirent に d_type メンバーがない環境のための preprocessor 分岐を追加しています。 Haiku のサポートのためみたいです。

[7910db23ad] Hiroshi SHIBATA 2026-10-12 00:30:49 UTC

configure で Haiku 向けに PIE をデフォルトで無効にするようにしています。

[7c4b300b9e] Hiroshi SHIBATA 2026-10-11 10:47:01 UTC

vcpkg.json のバージョン指定の更新。

[9044c9efca] Hiroshi SHIBATA 2026-10-12 00:31:45 UTC

win32/Makefile.sub の make prepare-vcpkg ターゲットのアクションで最初に DLL ファイル(へのリンク)を削除するようにしています。古いリンクがあると mklink がエラーになるためとのこと。

[3aa202a75a] "dependabot[bot]" 2026-10-12 05:33:34 UTC

GitHub Actions の workflows で利用しているアクションのバージョンを更新しています。

[408989c639] Ryan Davis 2026-10-11 00:40:55 UTC

chilled strings についてのコマンドラインオプションの指定についてのテストが RUBYOPT 環境変数でオプション指定されているとそれで上書きされて失敗してしまうので RUBYOPT を空に指定して子プロセスを起動するように対策しています。

[26d91d5f94] Hiroshi SHIBATA 2026-10-10 21:07:16 UTC

rubygems のテスト用のサミーサーバーで TCPServer.new 時に "localhost" を明示的に指定するようにしています。

[7c8178e892] Hiroshi SHIBATA 2026-10-10 21:27:32 UTC

rubygems のテストの WebAuthn のテスト用ダミーサーバーでも "localhost" を明示してサーバーソケット作成するようにしています。

[dbd87dcc28] ydah 2026-10-08 10:55:33 UTC

拡張ライブラリ json の JSON.generate のキーワード引数 rfc8785 に真を指定した時のオブジェクトのキーソートを as_json での変換後に行うようにしています。

[3d73c09fa3] Hiroshi SHIBATA 2026-10-12 00:19:15 UTC

03e337664345b69daae99c763788293beb33ab94 からの一連の rb_len_t の導入続き。 [ruby-core:126900] [Feature #22400] 拡張ライブラリ coverage の FIX2LONG()/LONG2FIX() を使ってたところを NUM2LEN()/LEN2NUM() を使うように修正しています。

[29c5e0bc45] Hiroshi SHIBATA 2026-10-12 01:17:50 UTC

03e337664345b69daae99c763788293beb33ab94 からの一連の rb_len_t の導入続き。 [ruby-core:126900] [Feature #22400] Array#product の結果のサイズのオーバーフローチェックに MUL_OVERFLOW_LONG_P() に変わり MUL_OVERFLOW_SIGNED_INTEGER_P() を利用するようにしています。

[08a554ecfb] Hiroshi SHIBATA 2026-10-11 02:22:51 UTC

03e337664345b69daae99c763788293beb33ab94 からの一連の rb_len_t の導入続き。 [ruby-core:126900] [Feature #22400] rubyspec の IO::Buffer.string に巨大なサイズを渡した時のエラーメッセージのテストの正規表現を緩和して long long という型名も許すようにしています。 rb_len_t が mswin で long long に変更された時のために事前に準備。

[3edde2d2a2] Hiroshi SHIBATA 2026-10-11 02:19:42 UTC

03e337664345b69daae99c763788293beb33ab94 からの一連の rb_len_t の導入続き。 [ruby-core:126900] [Feature #22400] 標準添付ライブラリ cgi の拡張ライブラリ cgi/escape のテストで CGI.escapeHTML に巨大な文字列を渡してエラーを発生させるテストで使うサイズの計算に rb_len_t を利用するように修正しています。

[78a31f6735] Hiroshi SHIBATA 2026-10-12 01:34:31 UTC

03e337664345b69daae99c763788293beb33ab94 からの一連の rb_len_t の導入続き。 [ruby-core:126900] [Feature #22400] 拡張ライブラリ json の RARRAY_LEN() と比較するためのループカウンタ変数を rb_len_t を使うように修正。

[0e01c2a87f] Jean Boussier 2026-10-12 07:28:28 UTC

拡張ライブラリ json の JSON.parse 時に文字列を常に freeze した複製を作ってそれから読むようにしています。従来は Encoding の変換が不要だった時のみ行なっていた(Encoding 変換した場合は既に複製しているはずなので)のを、encode が期待した動作をしなかった時のために常に複製を取るようにしています。

[26e67c387d] Hiroshi SHIBATA 2026-10-11 10:34:29 UTC

Module の Refinements についてのテストの assert_esparately のタイムアウト指定をはずしています。 CI の Windows 環境での失敗回避のため。

[a125858d48] Hiroshi SHIBATA 2026-10-12 01:20:43 UTC

03e337664345b69daae99c763788293beb33ab94 からの一連の rb_len_t の導入続き。 [ruby-core:126900] [Feature #22400] 拡張ライブラリ digest の対応。

[9e8bf7356b] Peter Zhu 2026-10-05 00:01:56 UTC

GC の mmtk 実装での compaction 時の移動先の slot サイズを適切に変更できるようにしているようです。

[bb12f05476] Earlopain 2026-10-12 07:23:31 UTC

prism の pm_parser_init() で __FILE__ のためのファイルパスを保持するための構造体メンバーの初期化を修正して NULL でなく空文字列を格納しておくようにしています。 https://github.com/ruby/prism/issues/4249

ruby-trunk-changes 2026-10-11

今日は主に CRuby の parser としての prism を本体組み込みにして Ruby::Prism クラスに移動し、ライブラリとしての prism は bundled gems として分離する変更や、拡張ライブラリ openssl の SSLSocket のメソッド実装を ruby 実装に移植する変更などがありました。

[11f5412ca1] Peter Zhu 2026-10-09 11:37:33 UTC

IO.allocate で作成した initialize していない IO のインスタンスに IO#reopen を呼ぶと異常終了してしまう不具合を修正。初期化済みかどかのチェックを追加しています。

[17aeb89200] Nobuyoshi Nakada 2026-10-10 14:42:48 UTC

03e337664345b69daae99c763788293beb33ab94 からの一連の rb_len_t の導入続き。拡張ライブラリ stringio の対応。 [ruby-core:126900] [Feature #22400]

[d7e7bf83da] Yusuke Endoh 2026-10-07 11:26:52 UTC

tool/sync_default_gems.rb で prism の動機時に lib/ruby/prism.rb など lib/ruby/ 配下にコピーするようにしています。prism を default gems として扱わないようにして、さらにコピー時にクラス名などの定数名も Ruby::Prism のように Ruby モジュールの配下にネストさせるように編集するようにしています。 [ruby-core:126847] [Bug #22379]

[fd10fbf4fa] Yusuke Endoh 2026-10-07 11:47:59 UTC

prism 関係のビルドプロセスの変更で次のコミットでのファイル群の移動に先だって prism/srcs.mk 内のファイルパスを変更しています。 [ruby-core:126847] [Bug #22379]

[9b23d39c44] Yusuke Endoh 2026-10-07 15:56:22 UTC

d7e7bf83daf15c80f343b1a64130b50b5065bd0f の変更を使って prism を同期しなおして lib/prism から lib/ruby/prism に移動しクラス名も Ruby::Prism として定義するようにしています。 [ruby-core:126847] [Bug #22379]

[a1efb9ae6b] Yusuke Endoh 2026-10-07 11:47:01 UTC

9b23d39c4437ff6ab72ec93f9aafef6b2a81b5f6 での prism の脱 default gems 化を受けて gems/bundled_gems に prism のエントリを追加しています。CRuby 本体の parser としては埋め込みにして、ライブラリとしての prism は bundled gems にするということですね。 [ruby-core:126847] [Bug #22379]

[0816eec9ca] Yusuke Endoh 2026-10-07 11:26:52 UTC

9b23d39c4437ff6ab72ec93f9aafef6b2a81b5f6 での prism の埋め込み化の対応続き。 Method#syntaax_tree の実装を Ruby::Prism を利用するように対応しています。 [ruby-core:126847] [Bug #22379]

[84023b5ca3] Yusuke Endoh 2026-10-07 11:57:46 UTC

9b23d39c4437ff6ab72ec93f9aafef6b2a81b5f6 での prism の埋め込み化の対応続き。Ruby::Box のテストで prism の feature 名変更に追随させています。 [ruby-core:126847] [Bug #22379]

[e0a34aac02] Yusuke Endoh 2026-10-08 02:38:35 UTC

9b23d39c4437ff6ab72ec93f9aafef6b2a81b5f6 での prism の埋め込み化の対応続き。 Ruby::Prism の rdoc 用コメントを書くための #if 0 でコメントアウトされたコメントを追加しています。 [ruby-core:126847] [Bug #22379]

[d763d10cfc] Yusuke Endoh 2026-10-08 07:42:47 UTC

9b23d39c4437ff6ab72ec93f9aafef6b2a81b5f6 での prism の埋め込み化の対応続き。 NEWS にエントリを追加。また doc/maintainers.md と doc/standard_library.md にも bundled gems 化に伴なった変更をしています。 [ruby-core:126847] [Bug #22379]

[f423e416ce] Yusuke Endoh 2026-10-08 11:45:14 UTC

9b23d39c4437ff6ab72ec93f9aafef6b2a81b5f6 での prism の埋め込み化の対応続き。 rubyspec でクラス名の Ruby::Prism への変更への追随。 [ruby-core:126847] [Bug #22379]

[128308226c] Yusuke Endoh 2026-10-08 11:46:42 UTC

ドキュメント群で Ruby::Prism の説明の言い回しを変更しています。 compile という単語を使わないようにして parse と言い換えています。

[27bd82de70] git 2026-10-10 19:28:50 UTC

NEWS の bundled gems のバージョンリストの順序修正。自動的更新により prism の追加位置が辞書順に修正されています。

[00458669a9] Hiroshi SHIBATA 2026-10-09 22:09:38 UTC

03e337664345b69daae99c763788293beb33ab94 からの一連の rb_len_t の導入続き。拡張ライブラリ erb/escape の対応。 [ruby-core:126900] [Feature #22400]

[87e6f05163] Hiroshi SHIBATA 2026-10-09 22:09:39 UTC

03e337664345b69daae99c763788293beb33ab94 からの一連の rb_len_t の導入続き。拡張ライブラリ json の対応。 [ruby-core:126900] [Feature #22400]

[8f5f3c0c64] Hiroshi SHIBATA 2026-10-09 22:09:43 UTC

03e337664345b69daae99c763788293beb33ab94 からの一連の rb_len_t の導入続き。拡張ライブラリ strscan の対応。 [ruby-core:126900] [Feature #22400]

[0d9ca3d7af] Hiroshi SHIBATA 2026-10-09 22:09:45 UTC

03e337664345b69daae99c763788293beb33ab94 からの一連の rb_len_t の導入続き。拡張ライブラリ zlib の対応。 [ruby-core:126900] [Feature #22400]

[65911e4910] Hiroshi SHIBATA 2026-10-09 22:09:47 UTC

03e337664345b69daae99c763788293beb33ab94 からの一連の rb_len_t の導入続き。拡張ライブラリ date の対応。 [ruby-core:126900] [Feature #22400]

[829e47d2f3] Hiroshi SHIBATA 2026-10-09 22:09:49 UTC

03e337664345b69daae99c763788293beb33ab94 からの一連の rb_len_t の導入続き。拡張ライブラリ openssl の対応。 [ruby-core:126900] [Feature #22400]

[5ed647fe15] Hiroshi SHIBATA 2026-10-09 22:09:52 UTC

03e337664345b69daae99c763788293beb33ab94 からの一連の rb_len_t の導入続き。拡張ライブラリ psych の対応。 [ruby-core:126900] [Feature #22400]

[0779983c97] Hiroshi SHIBATA 2026-10-09 22:09:55 UTC

03e337664345b69daae99c763788293beb33ab94 からの一連の rb_len_t の導入続き。拡張ライブラリ io/console の対応。 [ruby-core:126900] [Feature #22400]

[78dfbf2e5c] Hiroshi SHIBATA 2026-10-09 22:09:58 UTC

03e337664345b69daae99c763788293beb33ab94 からの一連の rb_len_t の導入続き。拡張ライブラリ digest の対応。 [ruby-core:126900] [Feature #22400]

[a5943eb38d] Hiroshi SHIBATA 2026-10-09 22:20:38 UTC

03e337664345b69daae99c763788293beb33ab94 からの一連の rb_len_t の導入続き。拡張ライブラリ strscan でサイズを INT2FIX() で変換していたためオーバーフローしていた箇所を修正しています。rb_len_t の導入で発見した不具合の修正という感じですね。 [ruby-core:126900] [Feature #22400]

[8dc5c8268b] Hiroshi SHIBATA 2026-10-10 21:01:22 UTC

03e337664345b69daae99c763788293beb33ab94 からの一連の rb_len_t の導入続き。拡張ライブラリ stringio の対応の続き。 [ruby-core:126900] [Feature #22400]

[b377234135] Hiroshi SHIBATA 2026-10-10 09:34:16 UTC

03e337664345b69daae99c763788293beb33ab94 からの一連の rb_len_t の導入続き。 C API の rb_len2long() と rb_out_of_long() を追加しています。 [ruby-core:126900] [Feature #22400]

[9f70573c22] Hiroshi SHIBATA 2026-10-10 09:34:16 UTC

03e337664345b69daae99c763788293beb33ab94 からの一連の rb_len_t の導入続き。 b377234135aa3479d338d0d8893fe70794dbf847 で追加した rb_len2long() と rb_out_of_long() C API 追加について追記しています。 [ruby-core:126900] [Feature #22400]

[7ccbe8d06c] Hiroshi SHIBATA 2026-10-10 20:57:28 UTC

03e337664345b69daae99c763788293beb33ab94 からの一連の rb_len_t の導入続き。拡張ライブラリ stringio の対応続き。 [ruby-core:126900] [Feature #22400]

[e1488e6b75] Hiroshi SHIBATA 2026-10-10 21:00:20 UTC

03e337664345b69daae99c763788293beb33ab94 からの一連の rb_len_t の導入続き。拡張ライブラリ stringio の対応続き。 [ruby-core:126900] [Feature #22400]

[d9d82019c4] Kazuki Yamaguchi 2026-10-09 08:34:36 UTC

03e337664345b69daae99c763788293beb33ab94 からの一連の rb_len_t の導入続き。拡張ライブラリ oepnssl の対応の続き。 [ruby-core:126900] [Feature #22400]

[9bc5516f32] Kazuki Yamaguchi 2026-08-27 11:56:29 UTC

拡張ライブラリ openssl の OpenSSL::SSL::SSLSocket の #connect、#accept、#sysread、#syswrite などのメソッドとその xxxx_nonblock 版の実装を ruby 実装に移植して、コア部分のみを C 実装の private メソッドに残すようにしています。 blocking 処理を ruby のループで実装するようにしています。

[324c0f11c2] Kazuki Yamaguchi 2026-10-11 05:16:39 UTC

拡張ライブラリ openssl の 9bc5516f32a187de4d33ded00b43fd7fca557e90 での ruby 実装への移植でバッファの String オブジェクトを String.new(capacity: xxx) で生成していたのを C 拡張部分で rb_str_buf_new() を呼ぶ private メソッド string_new_capacity を追加してこれを経由するようにしています。キーワード引数処理のオーバーヘッドを回避するためとのこと。若干泥縄感がありますが workaround ということなので根本対応は別途予定されているようです。

[5df1d2788c] Kazuki Yamaguchi 2026-10-10 08:18:55 UTC

拡張ライブラリ openssl の ruby 実装に移植した blocking 処理用のヘルパーメソッドでタイムアウトの残り時間の考慮がされてなくてループのたびに待ち時間がリセットされていたのを修正しています。

[33120b353f] Kazuki Yamaguchi 2026-08-27 15:53:31 UTC

拡張ライブラリ openssl の OpenSSL::SSL::SSLSocket#connect と #accept に timeout キーワード引数を追加して接続/接続待ちの blocking にもタイムアウトを設定できるようにしています。

[46033eff6c] Kazuki Yamaguchi 2026-10-11 06:58:57 UTC

5df1d2788c7e1bcad8caab2409820b35114b8c5a で拡張ライブラリ openssl に追加したテストのタイムアウトの経過時間についての assertion が厳しすぎて環境によっては失敗していたので削除しています。

[8264d60f97] Jean Boussier 2026-10-11 07:18:38 UTC

c29739cb3ef483c215b0c13d30c96cc21b0f680b で追加した YJIT のコンパイルに利用する時間の予算設定をする RubyVM::YJIT.max_compile_time_ns= メソッドが YJIT が無効化された状態で呼ばれると異常終了してしまっていた不具合を修正しています。 [ruby-core:127023] [Bug #22421]

ruby-trunk-changes 2026-10-10

今日は主に Module に対する Refinements の制限を緩和する変更などがありました。

[e07ffd842e] Nobuyoshi Nakada 2026-10-09 14:05:39 UTC

拡張ライブラリ io/console の extconf.rb で生成する Makefile の Windows 用のキーマップテーブル作成用のルールに余分な改行が入るのを修正しています。また win32_vk.inc, win32_vk.chksum を make clean 時に削除する対象に追加しています。

[2e236bfd72] ksss 2026-10-08 13:53:13 UTC

prism の gemspec ファイルの spec.files に sig/manifest.yaml を追加。

[174639e092] Hiroshi SHIBATA 2026-10-09 10:59:17 UTC

昨日の rb_len_t の導入の続きで拡張ライブラリから rb_len_t 型の利用可否を反転するため HAVE_RB_LEN_T というマクロを定義するようにしています。 [ruby-core:126900] [Feature #22400]

[28050861df] Hiroshi SHIBATA 2026-10-09 11:39:59 UTC

174639e0927d006ec70b226185c1d16fe6876f8c の続きで doc/extension(.ja).rdoc に数値変換マクロや fprintf 用のフォーマット指示子のマクロについても追記しています。

[477555eece] Benoit Daloze 2026-10-09 13:23:53 UTC

doc/contributing/efficient_extensions.md というドキュメントを doc/efficient_extensions.md に移動しています。

[49bfc6cd6d] Benoit Daloze 2026-10-09 13:33:15 UTC

doc/extension.rdoc に Appendix H を追加して doc/efficient_extensions.md へのリンクを貼っています。GitHub への直リンクになってるのでたぶんあとで rdoc-ref で書き直されそう。

[5ee67ca362] Benoit Daloze 2026-10-09 13:33:51 UTC

doc/extension.rdoc の英文法の修正。

[ef83236c79] Benoit Daloze 2026-10-09 13:46:51 UTC

doc/efficient_extensions.md の RUBY_TYPED_FROZEN_SHAREABLE フラグについての記述を修正しています。

[b5d839dbca] Luke Gruber 2026-10-08 20:51:10 UTC

ractor_sync.c の Ractor 間のオブジェクト移動のための構造体 struct ractor_basket のメンバーを共用体を使って詰め込むことで構造体サイズを縮小しています。

[a9d3eadfc8] youdie006 2026-09-11 01:55:34 UTC

拡張ライブラリ date の Date._rfc3339 の日付と時刻のあいだにタブなどスペース以外の空白文字が使われた時に警告を出力するようにしています。

[a768e70afb] Hiroshi SHIBATA 2026-10-09 23:09:24 UTC

GitHub Actions の shstk-amd64 というワークフローで利用するコンテナイメージに ghcr.io にホスティングされているミラーを利用するようにしています。 Docker Hub の rate limit の制限にひっかかってた模様。

[3143ac9c21] Andrii Furmanets 2026-10-09 17:07:42 UTC

標準添付ライブラリ ipaddr の IPAddr#to_s で IPv6 のアドレスの表示が誤って 0 除去しすぎていた不具合を修正しています。

[d0d40dab7d] Hiroshi SHIBATA 2026-10-10 00:07:09 UTC

bundler のテストで GitHub から rack のリポジトリを clone していたのをネットワークに依存しないでローカルにダミー? のリポジトリを作成するようにしています。

[a3df7663d5] git 2026-10-10 07:03:25 UTC

NEWS の default gems の更新履歴の更新をしています。

[3af4f5f695] Hiroshi SHIBATA 2026-10-09 12:03:08 UTC

03e337664345b69daae99c763788293beb33ab94 からの一連の rb_len_t の導入続き。 ただ元々誤って int で受けていてオーバーフローする可能性があったのを rb_len_t (long) にする修正です。 [ruby-core:126900] [Feature #22400]

[d2ec641fb4] Hiroshi SHIBATA 2026-10-09 18:24:37 UTC

03e337664345b69daae99c763788293beb33ab94 からの一連の rb_len_t の導入続き。拡張ライブラリ socket の対応。 [ruby-core:126900] [Feature #22400]

[6b3b0b8083] Hiroshi SHIBATA 2026-10-09 18:24:47 UTC

03e337664345b69daae99c763788293beb33ab94 からの一連の rb_len_t の導入続き。拡張ライブラリ coverage と objspace の対応。 [ruby-core:126900] [Feature #22400]

[e6b82f031b] Hiroshi SHIBATA 2026-10-09 18:25:41 UTC

03e337664345b69daae99c763788293beb33ab94 からの一連の rb_len_t の導入続き。 C API テスト用の拡張ライブラリの対応。 [ruby-core:126900] [Feature #22400]

[939f20c79d] Hiroshi SHIBATA 2026-10-09 18:31:44 UTC

03e337664345b69daae99c763788293beb33ab94 からの一連の rb_len_t の導入続き。拡張ライブラリ cgi/escape の対応。 [ruby-core:126900] [Feature #22400]

[3a66844fa9] Jeremy Evans 2026-09-01 03:16:28 UTC

Refinements で Module を refine した時に super を呼ぶメソッドを refine で上書きしたメソッド内でさらに super を呼ぶのをエラーにしていたのを許可するように対応しているようです。 Module を refine した時に iclass を追加するようにしているようですが詳細は読めてないです。 [ruby-core:126675] [Feature #22309]

[b1f2f868a1] Jeremy Evans 2026-09-12 17:57:03 UTC

3a66844fa900768dd33b624a08047154a125cebf の続きで Method と UnboundMethod の super_method メソッドが返すオブジェクトを先程の Refinements の実装変更に追随させているようです。

[8494fdb73d] Jeremy Evans 2026-09-19 01:33:35 UTC

3a66844fa900768dd33b624a08047154a125cebf からの一連の Refinements 変更のさらに続きで Module を refine した時の iclass に対してメソッドの再定義に追随するように対応を追加しています。

[bf126b1233] Jeremy Evans 2026-09-19 01:45:26 UTC

3a66844fa900768dd33b624a08047154a125cebf からの一連の Refinements の変更の続きで Module を refine した時の super の探索時に有効でない refinements の iclass のエントリを呼んでしまう可能性があった不具合を修正しているようです。

[e2e8646718] Jeremy Evans 2026-09-19 01:54:29 UTC

3a66844fa900768dd33b624a08047154a125cebf からの一連の Refinements の変更の続きで Symbol#to_proc による ifunc 経由でのメソッド呼び出しでも Module の refinements に対応するようにしているようです。

[4550682996] Jeremy Evans 2026-09-19 02:20:36 UTC

3a66844fa900768dd33b624a08047154a125cebf からの一連の Refinements の変更の続きで Module を refine した時の Method#call および UnboundMethod#bind_call のテストを追加しています。

[1141a534fe] Jeremy Evans 2026-09-19 02:40:56 UTC

3a66844fa900768dd33b624a08047154a125cebf からの一連の Refinements の変更の続きで Module を refine した時の Method#super_method で取得した Method を Method#call するケースでの対応を追加。メソッドを呼ぶための方法がいろいろあって対応しないといけないケースが多くて大変ですね。

[97ffd7e897] Jeremy Evans 2026-09-19 02:42:52 UTC

3a66844fa900768dd33b624a08047154a125cebf からの一連の Refinements の変更の続き。 module_refinement_iclass() でキャッシュ管理の操作を複数 Ractor から呼べるように RB_VM_LOCKING() で VM ロック取得して排他するようにしています。

[0f238cf1c0] Jeremy Evans 2026-09-19 02:55:57 UTC

3a66844fa900768dd33b624a08047154a125cebf からの一連の Refinements の変更の続き。Method#super_method についてのテストのチェックを強化しています。

[012c8b8aba] Jeremy Evans 2026-09-19 03:40:30 UTC

3a66844fa900768dd33b624a08047154a125cebf からの一連の Refinements の変更の続き。同じ Module を複数回 refine した時の不具合修正。

[e5f8ba81ae] Jeremy Evans 2026-09-19 19:14:01 UTC

3a66844fa900768dd33b624a08047154a125cebf からの一連の Refinements の変更の続き。 Module を refine した時の Method#instance_method による UnboundMethod を bind_call した時の対応を追加。

[34a2abf607] Jeremy Evans 2026-09-19 22:06:15 UTC

3a66844fa900768dd33b624a08047154a125cebf からの一連の Refinements の変更の続き。不要になった条件分岐の削除?

[35c32429e1] Jeremy Evans 2026-10-10 00:17:14 UTC

3a66844fa900768dd33b624a08047154a125cebf からの一連の Refinements の変更の続き。直接の変更ではなくて Module を refine した時の iclass の cache のための Hash のかわりに weakmap を使うために公開する API を追加しています。

[7ecfc98f31] Jeremy Evans 2026-10-10 00:22:40 UTC

3a66844fa900768dd33b624a08047154a125cebf からの一連の Refinements の変更の続き。 35c32429e186b986fbee8c28f709185d451d45d7 で追加した weakmap 用の C API を利用して Module を refine した時の iclass の cache に WeakMap を利用するようにリファクタリングしています。

[f4b7cc8161] Jeremy Evans 2026-10-09 23:25:20 UTC

3a66844fa900768dd33b624a08047154a125cebf からの一連の Refinements の変更の続き。 同じクラスについて複数回 refinements を行なった時にそれぞれで iclass を生成せず使いまわせるように対応してメモリ使用量を抑えるように修正しています。

ruby-trunk-changes 2026-10-09

今日は主に rb_len_t という型の導入とそれに関連する変更がありました。

[c86bd1776d] Nobuyoshi Nakada 2026-10-08 14:02:16 UTC

io_buffer.c の MSVC での警告抑制のため enum への明示的なキャストを追加しています。

[dade419372] Max Bernstein 2026-10-08 14:07:49 UTC

ZJIT で String, Array, Hash の freeze と String#-@ の最適化をインライン最適化に強化しています。 https://github.com/ruby/ruby/pull/18985

[e4672be48d] Max Bernstein 2026-10-08 15:13:52 UTC

ZJIT で RGenGC の Write Barrier に関する処理? のインライン最適化を追加しています。 https://github.com/ruby/ruby/pull/18641

[870969b201] Jean Boussier 2026-10-08 10:52:57 UTC

拡張ライブラリ json の JSON.generate で to_s メソッドを呼んだ時に必ず StringValue() で結果の型チェックを行うように json_to_s() というヘルパー関数を導入してこれを利用するように修正しています。

[28c73472f8] Burdette Lamar 2026-10-08 23:27:15 UTC

File::Stat#inspect の rdoc 用コメントの手直し。

[8972135571] Peter Zhu 2026-10-07 02:32:33 UTC

拡張ライブラリ objspace の ObjectSpace.dump で ISeq の出力時に JIT(YJIT/ZJIT) が有効な時に jit_entry_calls などの JIT 関連の情報を出すようにしています。

[21f68cfec7] Hiroshi SHIBATA 2026-10-08 07:18:59 UTC

bundler の gem ダウンロード時に 416 Range Not Satisfied が帰ってきた時に Range ヘッダを外してリトライする処理で Range ヘッダがなくても 416 が帰ってきたら無限リトライしてしまっていたのを修正しています。

[c605aca39d] "dependabot[bot]" 2026-10-09 02:11:14 UTC

GitHub Actions の workflows で利用しているアクションのバージョンを更新しています。

[5bc9978af7] Hiroshi SHIBATA 2026-10-08 07:17:36 UTC

rubygesm の compact_index_client の versions が空行の時のエラー対応。

[26e99f6827] Hiroshi SHIBATA 2026-10-02 04:59:44 UTC

common.mk の static-ruby のビルドルールでコンパイラに渡すオブジェクトに $(LIBS) が重複していたので削除しています。 [ruby-core:114345] [Bug #19831]

[966eaa54c2] Hiroshi SHIBATA 2026-10-02 04:59:44 UTC

同じく ruby を静的リンクする時に $(MAINLIBS) が重複して指定されていたのを修正しています。 Xcode 15 移行の linker での警告抑制のため。 [ruby-core:114345] [Bug #19831]

[03e3376643] Hiroshi SHIBATA 2026-09-17 22:41:48 UTC

ここから連続して String や Array のサイズのために long のかわりに rb_len_t という型を導入して置き換える一連の変更が続きます。動機としては LLP64 な環境(mswin/MSVC) で long が 32 bits のため上限が小さくなってしまっているのでこれを拡張したいというものみたいですが、現時点ではまだ rb_len_t は long の別名として typedef されています。 [ruby-core:126900] [Feature #22400]

[4fb7434598] Peter Zhu 2026-10-08 23:21:55 UTC

Class.allocate で initialize を通さず作ったクラスを dup すると未初期化なのに初期化されたフラグが立つため new を呼ぶとデバッグビルドで異常終了していたので未初期化状態を保つように修正しています。昨日の 004f523bbd17d34b80d70c682e95fe69e293e148 と同様ですね。

[672cb48d09] Hiroshi SHIBATA 2026-10-09 05:24:46 UTC

03e337664345b69daae99c763788293beb33ab94 からの一連の rb_len_t の導入続き。NEWS に rb_len_t の導入とそれに関連した非互換について追記しています。 [ruby-core:126900] [Feature #22400]#22400]

[334b4ffa7f] Jean Boussier 2026-10-09 07:53:19 UTC

03e337664345b69daae99c763788293beb33ab94 からの一連の rb_len_t の導入続き。 672cb48d09c4e0df8e2fd9868628fb825d849f58 で追記した NEWS のエントリの英文法修正(mswin で rb_len_t を long から変更するのは将来に残しているというのを強調するため will を追加)。 [ruby-core:126900] [Feature #22400]

ruby-trunk-changes 2026-10-08

今日は主に年末のリリースに向けて default gems の標準添付ライブラリのバージョンを更新する変更群や拡張ライブラリ json の rfc8785 モードでの不具合修正などがありました。

[1ebc88b530] ydah 2026-10-06 12:44:31 UTC

拡張ライブラリ json の JSON.generate の rfc8785 モード指定時の浮動小数点数のエンコード時に精度が落ちていた不具合を修正。 "%.15E" というフォーマット文字列で整形してから仮数部/指数部に分解していたのを Float#to_s にまかせるようにしています。

[05fc8ad175] Peter Zhu 2026-10-07 12:42:30 UTC

rb_stat_s_alloc() で File::Stat のインスタンスを作る時に引数の klass を無視して常に File::Stat クラスのインスタンスとして作成していたのを修正しています。 子クラスを定義してインスタンス化するとデバッグビルド時に assertion にひっかかって異常終了していたようです。 [ruby-core:126976] [Bug #22411]

[432e0dc577] ydah 2026-10-07 13:50:43 UTC

拡張ライブラリ json の JSON.generate の rfc8785 モードでのキーのソートのための Proc オブジェクトで Hash#sort_by に渡すブロックのブロックパラメーターの受け取り間違いで key でなく [key, value] のタプルによるソートになってたのを修正しています。タプルでも順序は変わらないのでは、と思ったけど to_s で文字列化してから比較しているため本来の順序にならない場合があったようです。

[9d46512aab] ydah 2026-10-07 14:05:27 UTC

拡張ライブラリ json の JSON.generate の rfc8785 モードでの数値の整形のための Proc オブジェクトを保持する変数名の typo を修正しています。

[65e06f36e1] Yusuke Endoh 2026-10-07 14:43:28 UTC

prism のコンパイラで定数の比較時に固定のリテラルと比較していたのを Prism.name が返す名前との比較に変更。クラス名を変更(Ruby::Prismに)する計画の準備みたいです。

[e7e9fe6477] Burdette Lamar 2026-10-07 17:04:33 UTC

File.ctime, File#ctime, File::Stat#ctime および Pathname#ctime の rdoc 用コメントの手直し。 https://github.com/ruby/ruby/pull/19233

[6203c21e58] Animesh Kumar 2026-10-06 01:18:46 UTC

拡張ライブラリ openssl の OpenSSL::BN.rand メソッドの第3引数 odd の判定で Qtrue (true) そのものでないと真として扱わないようにしていたので RTEST() で ruby の真偽値判定を行うように修正(変更)しています。

[957caeef23] Hiroshi SHIBATA 2026-10-02 05:28:59 UTC

PowerPC 上での mac (Darwin) のサポートを削除しています。

[3e96f16643] Hiroshi SHIBATA 2026-10-02 05:29:05 UTC

macOS のサポートバージョンの下限を Mac OS X 10.5 から 10.6 に引き上げています。10.5 向けのための分岐などを削除しています。

[d2d5f04dca] Hiroshi SHIBATA 2026-10-02 05:29:05 UTC

NEWS に 957caeef237c0cf924615487bc475b4ba3ac6803 と 3e96f16643af076a923c0adb8fcd5ffc6e1b9bf4 での PowerPC Mac と Mac OS X 10.5 のサポート終了を追記しています。

[cbf6a92e51] Peter Zhu 2026-10-07 14:31:40 UTC

IO.allocate で initialize による初期化を通ってない IO オブジェクトに対して IO#external_encoding や IO#internal_encoding を呼ぶと不正メモリアクセスで異常終了していたのでチェックして例外が発生するようにしています。 [ruby-core:126975] [Bug #22410]

[e73601aa54] Harriet Oughton 2026-09-22 17:11:36 UTC

rubygems の gem build サブコマンドに --content-addressable オプションを追加して --ruby-abi のかわりに指定できるようにしています。

[b9ec010a22] BurdetteLamar 2026-10-07 18:25:38 UTC

File.execuatable?、File::Stat#executable? および Pathname#executable? の rdoc 用コメントをまとめて手直ししています。

[a7e3f1b33b] BurdetteLamar 2026-10-07 18:36:36 UTC

File.execuatable_real?、File::Stat#executable_real? および Pathname#executable_real? の rdoc 用コメントをまとめて手直ししています。

[bf01ca6e1a] BurdetteLamar 2026-10-07 18:46:35 UTC

File::Stat#ino の rdoc 用コメントの手直し。

[1be726200d] BurdetteLamar 2026-10-07 19:20:14 UTC

File::Stat#mode の rdoc 用コメントの手直し。

[3cfbd9f6c1] Harriet Oughton 2026-09-22 17:11:36 UTC

bundler のテストの ruby 本体での skip を追加。

[549b569ae7] Harriet Oughton 2026-09-29 14:49:52 UTC

rubygems の content-addressable gem のビルド用の Rake タスク対応を追加しています。

[a65084338b] Hiroshi SHIBATA 2026-10-08 02:20:46 UTC

a7e3f1b33b3c93d3855f07d9b96be66de5657387 のドキュメント更新で誤って Pathname#executable? メソッドの定義が重複して追加されてしまっていたのを修正しています。

[07ffac3151] Hiroshi SHIBATA 2026-10-08 02:28:40 UTC

標準添付ライブラリ tmpdir の gemspec ファイルでバージョンを 0.3.2 に更新しています。

[37d1751b42] git 2026-10-08 02:30:15 UTC

NEWS の default gems のバージョンリストに tmpdir を追加しています。

[c3c2274d52] Hiroshi SHIBATA 2026-10-08 02:31:45 UTC

標準添付ライブラリ tempfile のバージョンを 0.3.2 に更新しています。

[7be8a1070a] git 2026-10-08 02:33:46 UTC

NEWS の default gems のバージョンリストに tempfile を追加しています。

[86d3f198bc] Hiroshi SHIBATA 2026-10-08 02:34:02 UTC

標準添付ライブラリ uri のバージョンを 1.1.2 に更新しています。

[cb9ddcfaa9] git 2026-10-08 02:36:04 UTC

NEWS の default gems のバージョンリストに uri を追加しています。

[72d015ee27] Hiroshi SHIBATA 2026-10-08 02:39:11 UTC

標準添付ライブラリ prettyprint のバージョンを 0.2.1 に更新しています。

[9137b1e704] git 2026-10-08 02:42:12 UTC

NEWS の default gems のバージョンリストに prettyprint を追加しています。

[4d556ec38e] Hiroshi SHIBATA 2026-10-08 02:51:55 UTC

標準添付ライブラリ delegate のバージョンを 0.7.0 に更新しています。

[03c4aeb6ff] git 2026-10-08 02:53:43 UTC

NEWS の default gems のバージョンリストに delegate を追加しています。

[d5d93f4ac1] Hiroshi SHIBATA 2026-10-08 03:02:26 UTC

標準添付ライブラリ open3 のバージョンを 0.3.0 に更新しています。

[9c80047c8a] git 2026-10-08 03:03:45 UTC

NEWS の default gems のバージョンリストに open3 を追加しています。

[cc8c08d9f6] Hiroshi SHIBATA 2026-10-08 03:03:28 UTC

標準添付ライブラリ resolv のバージョンを 0.8.1 に更新しています。

[a52e7f81e9] git 2026-10-08 03:05:17 UTC

NEWS の default gems のバージョンリストの resolv のバージョンを更新しています。

[722e1b0aab] Peter Zhu 2026-10-07 13:29:03 UTC

メソッド呼び出し時の引数処理で VM スタックのオーバーフロー時に値スタックの nil 埋めがコントロールフレームを壊してしまって異常終了してしまう可能性があったのでチェックを追加して SystemStackError 例外を発生できるようにしています。 [ruby-core:126974] [Bug #22409]

[6244a57280] Hiroshi SHIBATA 2026-10-08 03:07:42 UTC

拡張ライブラリ zlib のバージョンを 3.2.4 に更新しています。

[20d2ce0621] Hiroshi SHIBATA 2026-10-08 03:08:53 UTC

標準添付ライブラリ time のバージョンを 0.5.0 に更新しています。

[208be06e80] git 2026-10-08 03:10:05 UTC

NEWS の default gems のバージョンリストの zlib のバージョンを更新しています。

[4101f5230c] Hiroshi SHIBATA 2026-10-08 03:10:35 UTC

拡張ライブラリ etc のバージョンを 1.5.0 に更新しています。

[6863592ae2] git 2026-10-08 03:12:28 UTC

NEWS の default gems のバージョンリストに etc と time を追加しています。

[4001532694] Hiroshi SHIBATA 2026-10-08 03:15:14 UTC

標準添付ライブラリ net/http のバージョンを 0.10.0 に更新しています。

[5794f9a280] Hiroshi SHIBATA 2026-10-08 03:16:09 UTC

拡張ライブラリ date のバージョンを 3.6.0 に更新しています。

[0162d55ea9] git 2026-10-08 03:19:40 UTC

NEWS の default gems のバージョンリストに net-http を追加しています。

[3a667ef647] Hiroshi SHIBATA 2026-10-08 01:51:25 UTC

bundler のバージョンを 4.1.0.beta2 に更新しています。

[4b8f900a11] Hiroshi SHIBATA 2026-10-08 01:51:25 UTC

rubygems のバージョンも 4.1.0.beta2 に更新しています。

[59841d1a32] Hiroshi SHIBATA 2026-10-08 02:42:55 UTC

tool/sync_default_gems.rb で all release モードでの同期時に depend ファイルを最小化する処理はスキップしています。また prerelease フラグを誤ってつけてしまう不具合があったようなのでそれも修正しています。

[c43937325a] Hiroshi SHIBATA 2026-10-08 02:43:12 UTC

tool/sync_default_gems.rb の追加修正で all release モードでの upstream repo のチェックアウトするタグ名を git tag から取得してたのを rubygems.org の API を使って gem の最新版から決定するように修正しています。

[8763457f10] git 2026-10-08 04:23:44 UTC

NEWS の default gems のバージョンリストに RubyGems と bundler のバージョン更新を追記しています。

[bd24fa62a5] Peter Zhu 2026-10-07 14:21:51 UTC

Proc#curry によって作成される Proc オブジェクトの複製時に rb_func_proc_dup() で ep が正しく複製されていなくて異常終了する可能性があった不具合を修正。Symbol#to_proc で作った Proc と Proc#curry で作られる Proc は ifunc という同じ内部のタイプなのですが内部構造が少し異なっていたのを対応しきれていなかったようです。いやー難しい。 [ruby-core:126977] [Bug #22412]

[9bb2cbfce0] Hiroshi SHIBATA 2026-10-08 02:36:17 UTC

標準添付ライブラリ fileutils のバージョンを 1.8.1 に更新しています。

[76a8077899] "William T. Nelson" 2026-10-08 01:54:12 UTC

configure の word サイズの検出の文法ミスで正しく分岐できていなかった不具合を修正しています。

[a265cd3238] git 2026-10-08 04:58:22 UTC

NEWS の default gems のバージョンリストに fileutils の項目を追加しています。

[e8ec35be07] Hiroshi SHIBATA 2026-10-08 05:04:26 UTC

拡張ライブラリ digest のバージョンを 3.3.0 に更新しています。

[c487c56035] git 2026-10-08 05:06:04 UTC

NEWS の default gems のバージョンリストに digest の項目を追加しています。

[54cc01ede0] Nobuyoshi Nakada 2026-10-08 03:33:17 UTC

Time#strftime の "%Z" でタイムゾーンの略称の文字列を元の Encoding を保持したまま処理するようにしているようです。 [ruby-core:127007] [Bug #22416]

[87c567e721] ydah 2026-10-07 22:34:03 UTC

拡張ライブラリ json の JSON.generate の rfc8785 モードで整数(Integer) も Float に変換してからエンコードするようにしています。確かに JSON の厳密な仕様だと数値は IEEE 754 で表現できるものになってるので ruby の Bignum で極端に大きな整数は精度を落とさないといけないんですよね。従来の json は ruby で表現可能な整数はそのままエンコードしてましたけど。

[069277fe6a] git 2026-10-08 07:06:59 UTC

NEWS の default gems の更新履歴を更新しています。

[c9fd48603c] Yusuke Endoh 2026-10-08 07:34:10 UTC

標準添付ライブラリ error_highlight で Ruby::Prism というクラス名への対応を追加しています。

[b8c309176e] Taketo Takashima 2026-09-26 05:42:24 UTC

標準添付ライブラリ ipaddr の IPAddr#private?, #link_local?, multicast?, link_local_multicast?, #loopback? などのメソッドで prefix を考慮していなくて誤って true を返していた不具合を修正しています。

[004f523bbd] Peter Zhu 2026-10-08 04:31:22 UTC

Class.allocate で initialize を通さず作った Class のインスタンス(クラス)でも Class#singleton_class を呼ぶと初期化済みのフラグが立てられて、結果そのクラスのインスタンス作成時に初期化チェックをすり抜けて異常終了に繋がる不具合があったので make_metaclass() での初期化フラグを立てるのをやめて rb_class_initialize() と BasicObject については初期化関数 Init_class_hierarchy() で別途呼ぶようにして回避しています。

[523192880c] Nobuyoshi Nakada 2026-10-04 06:32:31 UTC

dd1208afa7b8012edaabc26cc4d2366c0d0d8139 で GitHub Actions の check_misc から default_gems に workflow を抽出した時に不要になってた permission.write の指定を消しています。

[95db6abe45] ydah 2026-10-07 14:39:35 UTC

拡張ライブラリ json の JSON.generate でキーワード引数 rfc8785 に true を指定した時に競合する他の indent, space, allow_nan などのキーワード引数が競合する値で指定された時に ArgumentError を発生させるように対応しています。