今日は主に Integer#to_s の 10進数文字列化の高速化などがありました。
[06caa59cc3] Matt Valentine-House 2026-05-07 13:24:58 UTC
GC の mmtk 実装に RACTOR_CHECK_MODE を 1以上に指定して Ractor のデバッグ用にビルドした時のオブジェクトの slot を拡張して ractor の id を格納するというデバッグ機能への対応を追加しています。
[33744d25cf] Matt Valentine-House 2026-05-07 14:19:34 UTC
06caa59cc3b2787ade201a5ecbe3339930e85105 の GC の mmtk 実装の Ractor デバッグ機能追随で不要だった分岐を削除しています。
[4a0072d5f2] Chris Hasiński 2026-05-08 17:10:12 UTC
Integer を 10進数で文字列化する時の最適化。 10進数で 1桁ずつの事前計算されたテーブルを用意して、100で割りながら mod 100 でテーブルを引くというシンプルなアイデアで、T_FIXNUM の時と T_BIGNUM の多倍長整数の時両方に対応しています。 https://github.com/ruby/ruby/pull/16719
[97aa28abab] Steven Webb 2026-05-08 18:27:05 UTC
.gdbinit によるデバッガのカスタムコマンドの rb_ps で最近の構造体の変更などに追随する修正。 https://github.com/ruby/ruby/pull/16896
[3a5bfb8a14] Max Bernstein 2026-05-08 20:00:32 UTC
ZJIT の Rust 実装の Function::find の実装を Insn::for_each_operand_mut を利用することで劇的に短くシンプルにリファクタリングされています。 https://github.com/ruby/ruby/pull/16902
[dc90c26a10] Earlopain 2026-05-08 19:04:08 UTC
prism の Prism.lex で script encoding の指定が効かなかった不具合を修正しているようです。
[07ae044b0d] Earlopain 2026-05-08 19:10:27 UTC
標準添付ライブラリとしての prism の ripper 互換性対応。
[3d861274e6] John Hawthorn 2026-05-08 17:39:48 UTC
T_MATCH 型オブジェクトの構造体メンバーにアクセスする inline 関数 RMATCH_BEG(), RMATCH_END(), RMATCH_NREGS() などを導入して struct re_registers::num_regs などに直接アクセスしないようにリファクタリングしています。
[ee19cef31e] John Hawthorn 2026-05-08 19:38:55 UTC
3d861274e6388f28a26496c473d605a286e6d3d2 の続きで re.c に定義されていた BEG() と END() というマクロで構造体メンバーにアクセスしてたところが残ってたので RMATCH_BEG()/RMATCH_END() に置き換えています。 struct re_registers::num_regs に直接アクセスしているところも残っていたのでこれも RMATCH_NUMREGS() に置き換えています。
[12bb895526] John Hawthorn 2026-05-08 19:46:41 UTC
さらに T_MATCH 型オブジェクトのマッチ情報全体の配列にアクセスするための RMATCH_BEG_PTR() と RMATCH_END_PTR() という inline 関数も追加しています。今のところ memcmp(3) とか rb_memhash() に渡してるだけなので大丈夫だけど GC が発生し得るところで使うと危ない感じがしますね。
[e9e4647e66] Aaron Patterson 2026-05-08 21:23:18 UTC
ZJIT の中間表現 HIR に Unreachable という命令を追加しています。コンパイル単位のブロック(Basic Block)の終端に実際には実行しないけどブロックの終わりを示すために置くためのもので、テストのための命令みたいです。実際のコードとしては無効な命令にコンパイルさせるので到達してしまうと異常終了するようにしているみたいです。 https://github.com/ruby/ruby/pull/16901
[5faeea873b] Peter Zhu 2026-05-08 22:02:12 UTC
gc.c の rb_gc_event_hook() にて ModGC で GC 実装の拡張ライブラリ化をしていた場合に rb_execute_context_t を rb_current_ec_set() で保存しておいて mmtk 実装での GC thread からのイベントフック実行時に rb_gc_get_ec() での EC 取得に対応するようにしています。