以下の内容はhttps://ruby-trunk-changes.hatenablog.com/entry/ruby_trunk_changes_20260121より取得しました。


ruby-trunk-changes 2026-01-21

今日は File.basename の最適化や ZJIT のキーワード引数省略時の最適化などがありました。

[20113a228d] Earlopain 2026-01-20 11:16:20 UTC

標準添付ライブラリ syntax_suggest の prism 利用時の workaround の分岐に入る条件に Prism::VERSION のチェックも追加しています。 prism の最新版で修正されると不要になるということみたいですね。

[2842e61c92] Earlopain 2026-01-20 11:16:40 UTC

ということで一旦 revert されていた 35a7b5159f39de2cac848c072674e5350cc41aa4 の prism の ripper 模倣対応を再度コミットしています。syntax_suggest のテスト失敗が revert の理由だったので 20113a228d2098a4ee61a2466c809a1081b0e403 で対応したということでしょうね。

[c27ae8d91a] Nobuyoshi Nakada 2026-01-20 14:00:08 UTC

拡張ライブラリ psych のテストで Data の構造が違うものを load した時の例外メッセージのチェックを緩めています。 https://github.com/ruby/ruby/pull/15910 [ruby-core:124594] [Bug #21844]

[d225bb8b46] Jeff Zhang 2026-01-20 15:50:43 UTC

ZJIT の中間表現 HIR の IsA 命令を C の関数 rb_obj_is_kind_of() を呼んでいたのを String/Array/Hash のいずれかのクラスのインスタンスの場合は直接コード生成するインライン化を行う最適化を実装しています。 https://github.com/Shopify/ruby/issues/880 https://github.com/ruby/ruby/pull/15878

[9ad8dd00b1] Earlopain 2026-01-20 19:34:49 UTC

標準添付ライブラリとしての prism の ripper 模倣の対応続き。

[1bc5111411] Alan Wu 2026-01-20 20:35:50 UTC

ZJIT 用のコマンドラインオプション --zjit-trace-exits のテストを追加しています。

[631a5076da] Alan Wu 2026-01-09 04:12:24 UTC

ZJIT の中間表現 HIR の CPushAll と CPopAll 命令を削除しています。 993046847931c6c26ca518dfaf9be6c23c34fc78 のあたりの変更で不要になったのだと思います。

[e24b52885f] Peter Zhu 2026-01-20 00:26:47 UTC

VM の値スタックに乗っている VALUE が pin-down されていたので rb_gc_mark_movable() で GC.compact で移動可能として mark 処理するようにしています。rb_gc_mark_vm_stack_values() という関数は残されているのですけど、呼び元を確認してみると pin_array_list_mark() という関数からスタックじゃない配列について呼んでいるので、もう関数名を変えちゃったほうがよさそうですね。

[f7e73ba3bf] Jeff Zhang 2026-01-20 23:31:26 UTC

ZJIT の arm64 アーキテクチャ向けでレジスタの退避のためのスタックへの push/pop を 2つずつまとめて push/pop する命令(stp/ldp) を利用することでメモリ効率を改善する最適化。このために中間表現 HIR に CPushPair/CPopPairInto という命令が追加されています。

[36809a8d0c] Alan Wu 2026-01-21 00:06:54 UTC

ZJIT の Rust 実装に assertion を追加しています。

[01984fa80e] Peter Zhu 2026-01-20 01:36:16 UTC

GC の mmtk 実装の rb_mmtk_update_global_tables() という関数に moving という引数を追加しています。これは GC.compact のことなのか mmtk で moving GC を使うモードのことなのかどっちなのかよくわからず。なんとなく後者のことのような気がします。

[6f1453dc08] Randy Stauner 2026-01-21 06:19:34 UTC

ZJIT で省略されたキーワード引数を含むメソッド呼び出しの最適化を行なっています。 https://github.com/ruby/ruby/pull/15873

[c959741695] Jason Lunn 2026-01-15 22:07:18 UTC

rubygems の拡張ライブラリビルドの動作についてのテストを追加しています。

[0f1eea0949] Hiroshi SHIBATA 2026-01-20 10:07:11 UTC

c959741695d9cccd5376775596dce643b5a500a1 で追加した rubygems のテストが TruffleRuby では失敗するそうで skip する条件に追加しています。

[519a4bdbc1] Jean Boussier 2026-01-20 16:59:15 UTC

昨日までの File.join, File.dirname, File.extname などと同様に File.basename も引数の文字列の Encoding が ASCII-compatible なものだった時の fastpath を実装する最適化。




以上の内容はhttps://ruby-trunk-changes.hatenablog.com/entry/ruby_trunk_changes_20260121より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14