今日は主に細かな最適化や Hash#merge の異常終了する可能性があった不具合修正などがありました。
[9a41d76b83] Richard Böhme 2025-05-21 09:14:28 UTC
暗黙のブロックパラメーター _1 などに対応する ID の範囲チェックで上限が大きく判定されていた? 不具合を修正しています。
[8f50bb7c24] Alan Wu 2025-05-21 12:33:20 UTC
defs/jit.mk で Rust のコンパイル時に環境変数 MACOSX_DEPLOYMENT_TARGET=11.0 の指定を追加しています。
[3487117e55] Peter Zhu 2025-05-21 14:10:14 UTC
GC の mmtk 実装で finalizer 管理用のテーブルに入れる配列を作る時の引数が不足していたのを修正。
[b4c900debd] Alan Wu 2025-05-21 14:20:38 UTC
ZJIT の Rust 実装のドキュメント用のコメント? を追記/修正しています。
[ac23fa0902] Peter Zhu 2025-05-20 19:34:47 UTC
GC で callcache のエントリの mark 処理のための関数で rb_id_table_foreach() のかわりに rb_id_table_foreach_values() を利用するようにして key の参照を省いています。 VM lock が不要になるので最適化になるほか mmtk 実装での不具合の修正になるそうです。
[511b6bcb53] Peter Zhu 2025-05-20 19:36:06 UTC
GitHub Actions の GC の実装を拡張ライブラリにする workflow で mmtk 実装のビルドのコメントアウトを元に戻しています。
[6ea893f376] Aaron Patterson 2025-05-20 17:15:22 UTC
Class の初期化時の処理の Namespace 対応で Namespace が有効でない時に struct RClass の rb_classext_t を書き込み可能にフラグを立てるようにする修正。
[6df6aaa036] Aaron Patterson 2025-05-21 00:42:16 UTC
6ea893f37688bafaa8145474ce754a74af5a850a の再修正で条件の書きかたを整理しています。
[ef935705cf] Aaron Patterson 2025-05-19 16:58:14 UTC
インスタンス変数の探索時の Object Shapes の too_complex の判定に rb_shape_obj_too_complex_p() を使ってたのを rb_shape_id のほうで判定する rb_shape_id_too_complex_p() を呼ぶようにしています。 効率化のため。
[7b10660974] John Hawthorn 2025-05-21 00:28:30 UTC
Ractor 間で共有できないオブジェクトを Ractor.make_shareable に渡した時の例外メッセージでオブジェクトの例外メッセージへの埋め込みに rb_inspect() を使うようにフォーマット指示子を修正しています。
[6a16c3e26d] John Hawthorn 2025-05-21 23:42:33 UTC
GC の mark 処理で T_OBJECT 型オブジェクトのインスタンス変数などの mark する処理で Object Shapes の too_complex の時の assertion を削除しています。Namespace との組み合わせで有り得るようになったため?
[7154b4208b] Nobuyoshi Nakada 2025-05-22 01:55:19 UTC
gc.c の未初期化変数の警告除去のために初期化子追加。
[0564973196] Daniel Colson 2025-05-22 02:00:12 UTC
49b306ecb9e2e9e06e0b1590bacc5f4b38169c3c の Hash#merge のイテレーター内での Hash 変更時に st_table の更新を抑制するために iter_lev をインクリメントするようにした修正で st_update() に渡すユーザーデータの構造体 struct update_arg の value メンバーの値に意図しない値が初期化されていて異常終了する場合があった不具合を修正しています。 [ruby-core:122218] [Bug #21357]
[ec41b1e823] Nobuyoshi Nakada 2025-05-22 02:28:26 UTC
MinGW で clock_gettime() や clock_getres() が提供されるようになったので存在チェックをして代替実装を使わないようにする変更が逆に古い MinGW で動かなくなっていたようなので、代替実装が必要かどうか NEED_CLOCK_GETTIME と NEED_CLOCK_GETRES というマクロ定義を __MINGW32__ および HAVE_CLOCK_GETTIME/HAVE_CLOCK_GETRES をみて Msys と MinGW とで条件を分けて判定するようにしています。
[f18883b295] Jean Boussier 2025-05-22 09:21:11 UTC
Module を include/extend した時に継承リストに差し込む T_ICLASS を複製する時に Namespace のための rb_classext_t のテーブルの初期化が不要なのでやめています。