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


ruby-trunk-changes 2025-10-16

今日は ZJIT のいくつかのメソッドのインライン化の最適化や ZJIT でコード生成中に GC を止める対策などがありました。

[63a58c7943] Max Bernstein 2025-10-15 14:24:10 UTC

ZJIT で de310176c25bfb82e972025c1ea388228bcea159 の最適化の際に Array#[] で引数が Fixnum の時に定数に展開する最適化が receiver の Array が freeze されていない時も行なわれていて不具合になっていたのを修正しています。 https://github.com/ruby/ruby/pull/14841

[31a1a39ace] Alan Wu 2025-10-15 17:27:30 UTC

ZJIT でコード生成しているあいだ GC を止めて安定化するようにしています。

[27ff586152] Luke Gruber 2025-10-10 18:47:46 UTC

オブジェクトを解放する free 関数の中では複数 Ractor 対応のための VM ロックの取得をしないようにしています。主に fiber pool の管理のところでロック取得をやめてロックが既に取られている時だけ fiber_stack_release() を呼ぶような実装にしています。 GC の mmtk 実装の時の制約で free 関数実行が別の thread から呼ばれる可能性があり EC を取得できないためとのこと。これってメモリリークが発生するってことなのかな?

[6a94632d4a] Aiden Fox Ivey 2025-10-15 18:00:44 UTC

ZJIT で Hash#[] をインライン化する最適化を実装しています。 https://github.com/ruby/ruby/pull/14838

[829b1884c0] Nathan Froyd 2025-10-15 17:24:56 UTC

prism の整数リテラルに明示的に 1U のように unsigned を指定する suffix を付ける警告除去。

[4c426e98a8] Alan Wu 2025-10-15 17:53:57 UTC

31a1a39ace8971f7ac8e1d192c4e61ae89108422 の再修正で ZJIT で GC を停止する時に rb_gc_disable_no_rest() のかわりに rb_gc_disable() を使うようにしています。再入による異常終了が発生する可能性があったようです。

[5a9fac6939] Peter Zhu 2025-10-15 00:49:59 UTC

Namespace のテストで assert_equal の引数の expect と result の順序が逆だったのを修正しています。

[9e4a756963] John Hawthorn 2025-10-15 06:59:39 UTC

GC の default 実装で不正なオブジェクトチェック時に RB_TYPE_P() マクロを利用していたところを BUILTIN_TYPE() を利用するようにやや軽量化しています。

[45c016866c] John Hawthorn 2025-07-22 16:40:20 UTC

内部的に利用している concurrent_set という構造体の実装で atomic な操作のために RUBY_ATOMIC_VALUE_LOAD() や RUBY_ATOMIC_VALUE_SET()、RUBY_ATOMIC_VALUE_EXCHANGE() などの厳格な atomic 処理のためのマクロから rbimpl_atomic_value_load()/rbimpl_atomic_value_cas() といった memory order の指定つきのより柔軟な inline 関数を直接利用するようにしています。少し高速化が期待できるようです。

[7a474e1fbd] Max Bernstein 2025-10-16 02:01:00 UTC

ZJIT で String#getbyte をインライン化する最適化を実装しています。 https://github.com/ruby/ruby/pull/14842

[1d95d75c3f] Max Bernstein 2025-10-16 03:40:45 UTC

ZJIT の Integer#succ もインライン化する最適化を実装しています。 https://github.com/ruby/ruby/pull/14846




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

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