ruby-trunk-changes 2024-06-19

今日は主に m(...) で引数を委譲するメソッド呼び出し時のオブジェクト生成を抑制する最適化などがありました。

[cd65bd02cb] "dependabot[bot]" 2024-06-18 02:19:34 UTC

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

[1997f43a54] Hiroshi SHIBATA 2024-06-18 11:51:06 UTC

gems/bundled_gems の net-ftp のバージョンを 0.3.6 に更新しています。

[dd704eb4c3] Hiroshi SHIBATA 2024-06-18 11:55:01 UTC

rubyspec の net/ftp のテストで 0.3.6 での挙動変更で失敗するようになってた spec を削除しています。

[b499356307] git 2024-06-18 13:01:28 UTC

gems/bundled_gems の rexml, net-imap のバージョンをそれぞれ 3.3.0 と 0.4.13 に更新しています。また NEWS の bundled gems のバージョンリストの rexml, net-imap, net-ftp あと rbs のバージョンも更新しています。

[c2e2c5975d] tomoya ishida 2024-06-18 14:57:15 UTC

標準添付ライブラリ reline の vi mode での dhp および yhp というコマンドの処理の不具合修正。 https://github.com/ruby/reline/pull/726

[921f22e563] Stan Lo 2024-06-18 15:15:19 UTC

標準添付ライブラリ irb で組み込みコマンドの実行時に最後の評価値を保持する "_" 変数をクリアしてしまっていたのをやめています。 https://github.com/ruby/irb/pull/972

[cdf33ed5f3] Aaron Patterson 2024-04-15 17:48:53 UTC

詳細みてませんがメソッドの引数を m(...) の記法を使って委譲する時の callinfo の flags に VM_CALL_FORWARDING というビットフラグを追加して VM 値スタックの不要なコピーを抑制してオブジェクト生成を減らすようにする最適化のようです。 https://github.com/ruby/ruby/pull/10510 [ruby-core:117498] [Feature #20425]

[bd7a87e5bb] Aaron Patterson 2024-04-24 22:42:40 UTC

cdf33ed5f37f9649c482c3ba1d245f0d80ac01ce からの続きで vm_call_iseq_forwardable() という関数を追加して vm_callee_setup_arg() で VM スタックを積む処理の fast path を追加しています。 https://github.com/ruby/ruby/pull/10510 [ruby-core:117498] [Feature #20425]

[cfc5646cdc] Aaron Patterson 2024-05-24 21:57:22 UTC

cdf33ed5f37f9649c482c3ba1d245f0d80ac01ce の変更によりメソッド呼び出しの引数処理によるオブジェクトの確保する数が変化したのでそれをチェックしているテストを追随させています。 https://github.com/ruby/ruby/pull/10510 [ruby-core:117498] [Feature #20425]

[a25dd5b12c] Aaron Patterson 2024-05-24 21:33:03 UTC

cdf33ed5f37f9649c482c3ba1d245f0d80ac01ce からの続きで引数を委譲してメソッドを呼ぶ時の fastpath をさらに追加しています。 https://github.com/ruby/ruby/pull/10510 [ruby-core:117498] [Feature #20425]

[cc97a27008] Aaron Patterson 2024-06-03 21:20:04 UTC

cdf33ed5f37f9649c482c3ba1d245f0d80ac01ce からの続きで VM 命令の sendforward と invokesuperforward というのを追加して引数を委譲したメソッド呼び出し専用の命令を使うようにしています。 https://github.com/ruby/ruby/pull/10510 [ruby-core:117498] [Feature #20425]

[e5160a9c60] Aaron Patterson 2024-06-05 18:26:25 UTC

T_IMEMO 型オブジェクトの call cache の時の mark 処理の mark 漏れを修正しています。 https://github.com/ruby/ruby/pull/10510 [ruby-core:117498] [Feature #20425]

[b8a592fe6e] Earlopain 2024-06-18 16:38:08 UTC

bundler の bundle fund サブコマンドで Gemfile で通常利用しない group の(?) gem も含めるようにしています。 https://github.com/rubygems/rubygems/pull/7757

[eb215c8dc6] Peter Zhu 2024-06-18 14:07:27 UTC

Thread::WeakMap の inspect のテストでたまに失敗することがあるそうでチェックに使う正規表現を変更して WeakMap が空でもマッチするように緩めています。

[ed2f8ea62e] Tanaka Akira 2024-06-18 13:51:24 UTC

IO#close の rdoc 用コメントに既に close された IO を close してもエラーにならないことを明記しています。

[662fbaaacd] git 2024-06-19 06:59:21 UTC

gems/bundled_gems と NEWS の bundled gems のバージョンリストで minitest のバージョンを 5.24.0 に更新しています。

[2ccd5f8cef] Hiroshi SHIBATA 2024-06-19 06:56:59 UTC

bundler のテストで Rack::Utils.byte_ranges を呼んでたところを Rack::Utils.get_byte_ranges に変更しています。

[378e65af9a] Nobuyoshi Nakada 2024-06-19 09:19:16 UTC

rubygems のテストで RbConfig::CONFIG のキーなどを文字列リテラルにするためにダブルクオート内に式展開で埋め込んでいたのを String#dump でエスケープして文字列リテラル表現にして埋め込むように修正しています。

[57e15074fe] Nobuyoshi Nakada 2024-06-19 10:21:13 UTC

378e65af9a0d707436f20a5a514f5ea503f89ee8 の再修正で RbConfig::CONFIG などにセットするスクリプトを出力するところでセットする値が nil だった時の対応を追加しています。

[321ed86e93] Nobuyoshi Nakada 2024-06-19 10:31:18 UTC

rubygems のテストの後始末で RbConfig::CONFIG["LIBRUBY_RELATIVE"] に元の値を書き戻す時に nil だったらセットしなおさないようにしています。