今日は主にインスタンス変数管理まわりの修正や ZJIT のサポートする命令の拡張などがありました。
[2edfc51acf] Peter Zhu 2025-08-27 13:54:40 UTC
Thread::Queue と Thread::SizedQueue を GC.compact によるオブジェクト移動に対応させています。
[6b7ed4cad2] Stan Lo 2025-08-27 18:18:44 UTC
ZJIT 用の make ターゲット zjit-test-update を追加しています。テスト用の Rust ライブラリを更新するものみたいです。
[89e18473a9] Stan Lo 2025-08-27 18:24:05 UTC
doc/zjit.md の Rust 実装のテストライブラリについての記述を更新しています。
[d19a1eee81] Stan Lo 2025-08-27 22:52:52 UTC
ZJIT 用のターゲット make zjit-test で Rust 実装のテスト実行時に --no-fail-fast オプションを追加しています。
[05fc01188a] Jean Boussier 2025-08-28 12:08:56 UTC
Object Shapes でインスタンス変数の削除時の too_complex への遷移の不具合修正。
[8eb1ed5619] Jun Aruga 2025-08-27 13:56:57 UTC
c3c74e0d31c0c7327d2eb2c79b253d6500c6f2c0 で削除した s390x の GitHub Actions の workflow を復活させています。
[dd09d8987c] Jun Aruga 2025-08-27 14:06:46 UTC
8eb1ed56195d51ddeba430e6cd1b26f62a402b87 で復活させた GitHub Actions の s390x 用 workflow のリファクタリング。
[4fc0db7389] Jun Aruga 2025-08-27 17:03:35 UTC
8eb1ed56195d51ddeba430e6cd1b26f62a402b87 で復活させた s390x 用 GitHub Actions の workflow で ppc64le でのビルドも追加しています。
[c4c93a0751] Takashi Kokubun 2025-08-28 15:58:23 UTC
ZJIT の統計情報のカウンタ名の改名やリファクタリング。 https://github.com/ruby/ruby/pull/14378
[737ffd3317] Stan Lo 2025-08-28 16:31:26 UTC
ZJIT で VM 命令 getinstancevariable/setinstancevariable などの命令に複数 Ractor 利用時にコードを無効化するための PathPoint を挿入する変更。 https://github.com/ruby/ruby/pull/14375
[b95700f17c] Max Bernstein 2025-08-28 15:19:55 UTC
ZJIT のオブジェクトの型情報のプロファイラで Variable Width Allocation により値が slot に埋め込まれているかどうか? のフラグ管理を追加しています。
[11f115b0d2] Max Bernstein 2025-08-28 15:30:31 UTC
ZJIT の型情報としてオブジェクトが T_OBJECT かどうかのフラグも追加しています。まだ実装はしていないですがインスタンス変数のキャッシュの利用を T_OBJECT 型オブジェクトの時にだけ対応するためみたいです。
[ca0ef79497] Max Bernstein 2025-08-28 02:16:10 UTC
ZJIT に VM 命令 duphash の対応を実装しています。
[ec55b5b9aa] Max Bernstein 2025-08-28 13:48:15 UTC
ZJIT に VM 命令 pushtoarray の対応を実装しています。
[b108f11708] Max Bernstein 2025-08-28 14:03:29 UTC
ZJIT に VM 命令 splatarray の対応を実装しています。
[07e28ba486] Max Bernstein 2025-08-28 14:27:02 UTC
ZJIT に VM 命令 definedivar の対応を実装しています。
[8521725225] Max Bernstein 2025-08-28 14:36:13 UTC
ZJIT に VM 命令 concattoarray の対応を実装しています。
[7d670ead30] Max Bernstein 2025-08-28 17:20:15 UTC
ZJIT で rb_zjit_profile_disable() という関数を呼んで型情報プロファイルを無効化するタイミングを移動しています。 JIT で生成されたコードから別の JIT コードを直接呼び出す時に無効化がされない不具合? を修正しているようです。 https://github.com/Shopify/ruby/issues/719 https://github.com/ruby/ruby/pull/14385
[c2d99d0647] Takashi Kokubun 2025-08-28 17:31:46 UTC
ZJIT の統計情報の項目名の typo 修正。zjit が yjit になっていました。
[b47ea34a9b] Takashi Kokubun 2025-08-28 17:34:22 UTC
ZJIT の統計情報の出力時の計算ミス修正。
[fa3c23eb81] Stan Lo 2025-08-28 17:50:22 UTC
ZJIT の getglobal 命令の実行を leaf ではない命令としてコントロールフレームの準備するように修正しています。 https://github.com/ruby/ruby/pull/14387
[041450ad41] Jean Boussier 2025-08-28 14:45:45 UTC
インスタンス変数の削除時の rb_ivar_delete() での T_OBJECT とそれ以外で扱いが変わらないようにしています。ZJIT での将来 T_OBJECT 以外でのキャッシュ? 対応のため?
[bf3d6a17ee] Takashi Kokubun 2025-08-28 20:45:35 UTC
ZJIT の統計情報のカウンタに code_region_bytes というのを追加しています。 https://github.com/ruby/ruby/pull/14389
[b6d4882c05] Jean Boussier 2025-08-28 17:29:46 UTC
YJIT で T_OBJECT 以外のオブジェクトのインスタンス変数のキャッシュ? 対応。
[3646596e5b] Jean Boussier 2025-08-28 20:53:11 UTC
b6d4882c05d64aa6cb5ff8761584ae910de67f21 の追加修正。 YJIT の Rust 実装で Ractor を利用していない時だけ rb_ivar_get_at() C 関数の呼び出しを leaf として扱う最適化。
[4992d2c298] Jean Boussier 2025-08-28 21:23:38 UTC
3646596e5bd4c445b158be5fd3780e7685aa9b7f のさらに再修正で YJIT から呼ぶためのインスタンス変数のインデックスを得る C 関数 rb_ivar_get_at_no_ractor_check() を追加しています。
[3cc66977b2] Takashi Kokubun 2025-08-27 20:35:20 UTC
ZJIT の send 命令の対応を実装してブロックつきメソッド呼び出しに対応するようにしています。今まではまだ対応してなかったんですね。
[51cd877636] Takashi Kokubun 2025-08-28 22:19:04 UTC
ZJIT にメソッドの callcache の無効化の時のフックを起動する rb_zjit_cme_invalidate() の呼び出しが不足していたところがあったのを修正しています。
[85eb33d9ff] Hiroshi SHIBATA 2025-08-29 00:33:17 UTC
GC compaction のテストで GC.verify_compaction_references の結果をチェックするテストで不確実性のために持たせる数値のバッファを少し広げています。 RHEL10 で失敗していたとのこと。
[1f2a102f38] Nobuyoshi Nakada 2025-08-29 02:35:28 UTC
Module#attr* 系のメソッドのテストに名前を文字列オブジェクトで渡すケースも追加しています。
[001299d32c] git 2025-08-29 07:03:26 UTC
gems/bundled_gems と NEWS の bundled gems のバージョンリストの net-imap のバージョンを 0.5.10 に更新しています。
[dc555a48e7] Nobuyoshi Nakada 2025-08-29 07:25:05 UTC
prism/generate-srcs.mk.rb という不要になってた prism の Makefile 更新用? のツールを削除しています。