今日は prism の不具合修正や ZJIT のカウンタ追加その他の修正や最適化がありました。
[477b1e79b7] Peter Zhu 2025-09-18 13:26:34 UTC
Object Shapes の fields_obj 用の T_IMEMO 型オブジェクトを確保する時に imemo_fields_new() を使っていたのを rb_imemo_new() を使って struct rb_fields のサイズを明示的に指定してメモリ確保するようにしています。将来的なメンバー追加時に自動的に追随できるようにするためみたいです。
[a54351f98c] Takashi Kokubun 2025-09-19 14:08:13 UTC
ZJIT の Rust 実装のテストの修正。 https://github.com/ruby/ruby/pull/14602
[b082d67253] Nobuyoshi Nakada 2025-09-19 13:13:09 UTC
prism の構造体 pm_string_t の文字列バッファとしてスタック上の自動変数の領域を代入していた不具合を修正しています。 以前類似の修正があったと思いますが Windows 時の実装で残ってたみたいです。
[1663e2fbc8] Peter Zhu 2025-09-19 13:00:58 UTC
477b1e79b71af422136df29b259d9bb3ce8449e2 の再修正。 imemo_fields_new() ではなく rb_imemo_new() を利用するように再修正しています。
[e40cd392e4] Max Bernstein 2025-09-19 15:56:59 UTC
ZJIT の統計情報カウンタにブロックの外のローカル変数へのアクセスをカウントするものを追加しています。 https://github.com/ruby/ruby/pull/14601
[f0702c5aa3] Max Bernstein 2025-09-19 12:57:33 UTC
ZJIT の統計情報カウンタの不具合修正。
[d7ad446137] Max Bernstein 2025-09-19 13:01:05 UTC
ZJIT の統計情報カウンタに send_fallback_null というものを追加しています。
[71067aa54c] Earlopain 2025-09-17 17:06:55 UTC
prism がメソッドの引数内で do-end ブロックをもつ引数のかっこなしのメソッド呼び出しを書く記法を SyntaxError にすべきなのに受け付けていた不具合を修正しています。 [ruby-core:121234] [Bug #21168]
[d7c54df433] Kevin Newton 2025-09-19 17:42:36 UTC
prism のテストの 71067aa54c9fd819313dd2d35cb5b32803a65ad4 で追加したものを parse.y で除外するようにしています。
[642188fb87] Kevin Newton 2025-09-19 18:34:59 UTC
d7c54df433c73f46b177dae594a001fc92fe5232 の prism のテストの実行除外の再修正。テストファイル名の typo を修正しています。
[2ad3fbb9c7] Stan Lo 2025-09-19 18:52:34 UTC
ZJIT のコード生成のリファクタリング。
[f4482b047f] Randy Stauner 2025-09-19 22:00:27 UTC
GitHub Actions で shell でコマンド実行するときに set -x して実行内容を表示させるようにしています。デバッグしやすくするため。 https://github.com/ruby/ruby/pull/14609
[e44bec9b92] Takashi Kokubun 2025-09-19 22:19:52 UTC
ZJIT の Rust 実装のテストの修正。 https://github.com/ruby/ruby/pull/14612
[7c51ce5ff6] John Hawthorn 2025-09-19 00:20:01 UTC
Encoding のリストを管理する内部的 Array オブジェクトを freeze してバッファを共有可能にしています。
[f048f77c4a] John Hawthorn 2025-09-18 23:31:58 UTC
Encoding のロード処理から enc_load_from_base() という関数を切り出すリファクタリング。
[02d5b8443a] John Hawthorn 2025-09-19 05:02:38 UTC
Encoding のロード処理の enc_autoload_body() の小さなリファクタリング。
[6afbbb1178] Takashi Kokubun 2025-09-19 22:50:15 UTC
ZJIT の Rust 実装の空行削除。
[b19e3b0f06] Stan Lo 2025-09-19 23:03:02 UTC
ZJIT の Rust 実装で不要なコード生成を抑制する? 最適化。 https://github.com/ruby/ruby/pull/14614
[4a04e6f755] Max Bernstein 2025-09-18 15:41:46 UTC
ZJIT の Rust 実装のコメントを改行しています。
[254b9b4952] Max Bernstein 2025-09-18 17:47:35 UTC
ZJIT の Rust 実装でオブジェクトの allocate の独自の実装がされているクラスについてのオブジェクト確保の処理の最適化できる対象を増やしています。
[451fe6a446] Max Bernstein 2025-09-19 19:30:41 UTC
ZJIT の VM 命令 opt_{ary,str,hash}_freeze や opt_str_uminus などの実装の脱最適化時に VM の値スタックに receiver を push しなおす必要があったのを行なっていなかった不具合修正。 https://github.com/Shopify/ruby/issues/760
[d1c845e41a] Max Bernstein 2025-09-19 15:52:53 UTC
GitHub Actions の ZJIT 用 workflow に --zjit-disable-hir-opt オプションをつけて make check 実行するパターンを追加しています。
[8d1c459783] Max Bernstein 2025-09-20 02:01:49 UTC
GitHub Actions の ZJIT 用 workflows の matrix の変数指定の順序をすこし変更しています。これ実際の挙動に影響あるんだろうか? なんとなく(ビルド&テスト時の実際の実行順序的に) configure のほうが前にあるのが自然に感じるけど。