今日は主に主要な組み込みオブジェクト型を RGenGC の WB-protected としてビルドするための preprocessor 用マクロを削除する変更などがありました。
[558c104139] Earlopain 2026-04-22 19:29:13 UTC
prism で END ブロック内での break が文法エラーになっていなかったのを修正しています。 [ruby-core:117434] [Bug #20409]
[79aa1d238f] Jean Boussier 2026-04-27 13:38:57 UTC
新規オブジェクトを確保する特に NEWOBJ_OF() マクロから呼ばれる関数 rb_wb_protected_newobj_of() と rb_wb_unprotected_newobj_of() を rb_newobj_of() に統合して rb_execution_context_t の取得方法を統一するリファクタリング。
[587d03e74b] Jean Boussier 2026-04-27 13:50:48 UTC
79aa1d238fffe9726de7fdb3fadad2bcf92d7a9b からの続きで、リファクタリングで統合した rb_newobj_of() 関数からさらに rb_ec_newobj_of() という関数に改名して rb_newobj_of() はこれに GET_EC() で rb_execution_context_t を取得する wrapper 関数として定義しなおしています。
[ef7582802f] Étienne Barrié 2026-04-27 14:16:18 UTC
RubyVM::InstructionSequence のテストで未使用リテラルの警告抑制のためのダミーの代入を追加しています。
[5da79da578] Masafumi Koba 2026-04-27 16:04:15 UTC
標準添付ライブラリとしての prism の ripper 互換性対応。
[e603aa0d2f] Jean Boussier 2026-04-27 23:53:19 UTC
T_ARRAY 型オブジェクトが RGenGC の WB-protected であることを示す RGENGC_WB_PROTECTED_ARRAY というマクロはもう削除して常に WB-protected として扱うようにリファクタリングしています。
[7040286dfc] Jean Boussier 2026-04-27 23:55:08 UTC
e603aa0d2fecc80ef386c23886c9328933f86fcc と同様に RGENGC_WB_PROTECTED_HASH というマクロも削除して T_HASH も常に RGenGC の WB-protected なオブジェクトとしてビルドするようにしています。
[9307d1b5b6] Jean Boussier 2026-04-27 23:56:02 UTC
e603aa0d2fecc80ef386c23886c9328933f86fcc と同様に RGENGC_WB_PROTECTED_STRUCT マクロも削除して常に T_STRUCT 型オブジェクトが RGenGC の WB-protected なオブジェクトになるようにしています。
[267ce6f842] Jean Boussier 2026-04-27 23:58:32 UTC
e603aa0d2fecc80ef386c23886c9328933f86fcc と同様に RGENGC_WB_PROTECTED_STRING マクロも削除して常に T_STRING 型オブジェクトが RGenGC の WB-protected なオブジェクトになるようにしています。
[83d4117b07] Jean Boussier 2026-04-27 23:59:48 UTC
e603aa0d2fecc80ef386c23886c9328933f86fcc と同様に RGENGC_WB_PROTECTED_OBJECT マクロも削除して常に T_OBJECT 型オブジェクトが RGenGC の WB-protected なオブジェクトになるようにしています。
[e9f372a231] Jean Boussier 2026-04-28 00:00:34 UTC
e603aa0d2fecc80ef386c23886c9328933f86fcc と同様に RGENGC_WB_PROTECTED_REGEXP マクロも削除して常に T_REGEXP 型オブジェクトが RGenGC の WB-protected なオブジェクトになるようにしています。
[9e47f988fb] Jean Boussier 2026-04-28 00:01:10 UTC
e603aa0d2fecc80ef386c23886c9328933f86fcc と同様に RGENGC_WB_PROTECTED_MATCH マクロも削除して常に MatchedData オブジェクトが RGenGC の WB-protected なオブジェクトになるようにしています。
[ac0a319dd5] Jean Boussier 2026-04-28 00:01:54 UTC
e603aa0d2fecc80ef386c23886c9328933f86fcc と同様に RGENGC_WB_PROTECTED_CLASS マクロも削除して常に T_CLASS 型オブジェクトが RGenGC の WB-protected なオブジェクトになるようにしています。
[92cba2ef72] Jean Boussier 2026-04-28 00:02:40 UTC
e603aa0d2fecc80ef386c23886c9328933f86fcc と同様に RGENGC_WB_PROTECTED_FLOAT マクロも削除して常に T_FLOAT 型オブジェクトが RGenGC の WB-protected なオブジェクトになるようにしています。
[5e99295f1e] Jean Boussier 2026-04-28 00:04:00 UTC
e603aa0d2fecc80ef386c23886c9328933f86fcc と同様に RGENGC_WB_PROTECTED_COMPLEX マクロも削除して常に T_COMPLEX 型オブジェクトが RGenGC の WB-protected なオブジェクトになるようにしています。
[70451a4018] Jean Boussier 2026-04-28 00:04:48 UTC
e603aa0d2fecc80ef386c23886c9328933f86fcc と同様に RGENGC_WB_PROTECTED_RATIONAL マクロも削除して常に T_RATIONAL 型オブジェクトが RGenGC の WB-protected なオブジェクトになるようにしています。
[c95a190d9c] Jean Boussier 2026-04-28 00:05:33 UTC
e603aa0d2fecc80ef386c23886c9328933f86fcc と同様に RGENGC_WB_PROTECTED_BIGNUM マクロも削除して常に T_BIGNUM 型オブジェクトが RGenGC の WB-protected なオブジェクトになるようにしています。
[379b95a2df] Jean Boussier 2026-04-28 00:06:06 UTC
e603aa0d2fecc80ef386c23886c9328933f86fcc と同様に既に未使用となっていた RGENGC_WB_PROTECTED_NODE_CREF マクロも削除しています。
[c202bc08e1] Jean Boussier 2026-04-28 00:47:55 UTC
NEWOBJ_OF() マクロを EC_NEWOBJ_OF() と改名して、NEWOBJ_OF() は最後の引数 ec を削除して ec に 0 を渡していた呼び元で使うようにリファクタリングしています。
[e4667e5109] Jean Boussier 2026-04-28 01:29:41 UTC
さらに NEWOBJ_OF() のリファクタリングで、flags に FL_WB_PROTECTED のビットが立っているかで分岐させていたのを、もう WB-protected なオブジェクトのほうが主流なので NEWOBJ_OF() は暗黙のうちに FL_WB_PROTECTED を立てるようにして、WB-unprotected なオブジェクトの確保用に UNPROTECTED_NEWOBJ_OF() マクロを用意するようにしています。
[2432ed8904] Jean Boussier 2026-04-28 01:42:08 UTC
さらに rb_ec_newobj_of() の引数から shape_id の指定を削除しています。 0 以外を渡すことはめったにないので必要な時は rb_newobj() を直接呼ぶようにしています。
[5e6e6781c2] "dependabot[bot]" 2026-04-28 03:41:43 UTC
GitHub Actions の workflows で利用しているアクションのバージョンを更新しています。
[8d929853d8] Jean Boussier 2026-04-28 05:31:45 UTC
MatchData クラスのオブジェクトの wrap する構造体 rb_matchext_t をヒープに配置するのをやめて struct RMatch 内に埋め込むようにしています。 Variable Width Allocation で RVALUE のサイズに限定する必要がなくなったので slot 内に埋め込んでいるようです。