今日は主に Namespace のメモリリークの修正や ZJIT の不具合修正とブロックから define_method で定義したメソッドの呼び出しの JIT 対応の機能追加などがありました。
[caff9b9065] Burdette Lamar 2025-10-21 20:44:03 UTC
String#rstrip の rdoc 用コメントの手直し。 https://github.com/ruby/ruby/pull/14881
[42c0409781] Burdette Lamar 2025-10-21 20:44:41 UTC
String#scan の rdoc 用コメントを doc/string/scan.rdoc という独立したファイルに切り出す変更。 https://github.com/ruby/ruby/pull/14884
[862b42a52c] Burdette Lamar 2025-10-21 20:46:40 UTC
String#scrub! の rdoc 用コメントの手直し。 https://github.com/ruby/ruby/pull/14893
[cb52809ca1] Burdette Lamar 2025-10-21 20:48:11 UTC
String#scrub の rdoc 用コメントの手直し。 https://github.com/ruby/ruby/pull/14892
[193b299b8d] BurdetteLamar 2025-10-21 18:16:00 UTC
String#setbyte の rdoc 用コメントの手直し。
[35c2230734] Alan Wu 2025-10-19 19:11:39 UTC
ZJIT で C binding で本体の C 言語の定数 INVALID_SHAPE_ID を参照するために enum の宣言をしてそれを取り込んでいたのをグローバル変数を定義してそこに代入したものを取り込むという方法に変更しています。コンパイラによって警告が発生してビルドエラーになるケースがあったようです。
[bb7f3d17ed] Alan Wu 2025-10-20 16:12:31 UTC
35c2230734e65e8ab55aa718ca6ea02ca9622984 と同様に RUBY_OFFSET_RSTRING_LEN などの定数を YJIT と ZJIT から参照するための実装を jit.c に移動して共有しています。
[b14fac9440] Alan Wu 2025-10-18 02:35:28 UTC
ZJIT で define_method にブロックを渡して定義したいわゆる bmethod というタイプのメソッドの呼び出しを JIT コンパイルに対応する変更です。対応できるメソッドが増えていってますね。
[89472d8911] Benoit Daloze 2025-10-21 14:05:04 UTC
ZJIT で Fixnum#^ のために専用の HIR の命令を追加してインライン化する最適化を実装しています。
[0cc4819f24] Benoit Daloze 2025-10-21 20:56:24 UTC
ZJIT のテストで JIT させるメソッド呼び出しのパターンをもう少し増やしています。
[cd42096f5a] Peter Zhu 2025-10-19 15:16:02 UTC
rb_class_classext_free() という関数の実装を gc.c から class.c に移動しています。
[4a23b6a89f] Peter Zhu 2025-10-20 21:00:31 UTC
Namespace の実装で Namespace 毎の rb_classext_t の構造体を st_table で管理するために追加する RCLASS_SET_NAMESPACE_CLASSEXT() というマクロで rb_st_insert() を直接使っているのを st_update() を利用する rb_class_set_namespace_classext() という関数を定義して使うようにして、既に対応するエントリがあった時にメモリリークしてしまっていた不具合を修正しています。
[a2a107c2d7] Alan Wu 2025-10-21 21:00:19 UTC
ZJIT で attr_writer によるメソッドでインスタンス変数を設定する処理をインライン化している場合に receiver が freeze されていて FrozenError が発生した時に例外処理のための stack frame が省略されているため異常終了してしまっていた不具合を修正しています。
[f46ebed2ff] Peter Zhu 2025-10-21 20:49:10 UTC
Namespace の解放処理時に loaded features を管理するためのデータ構造の解放が漏れていてメモリリークしていたのを修正しています。
[66c12bd519] git 2025-10-22 06:53:46 UTC
gems/bundled_gems と NEWS の bundled gems のバージョンリストの benchmark のバージョンを 0.5.0 に更新しています。