以下の内容はhttps://ruby-trunk-changes.hatenablog.com/entry/ruby_trunk_changes_20250807より取得しました。


ruby-trunk-changes 2025-08-07

今日は Struct や Ractor 用の内部オブジェクトのクラスなどで Variable Width Allocation による拡張された slot にさらに情報を埋め込めるようにする変更や callcache まわりの不具合修正などがありました。

[06312377ad] Peter Zhu 2025-07-31 18:38:16 UTC

Ractor::Selector#add の実装に RGenGC 用の Write Barrier を挿入して WB-protected なクラスとして宣言しています。

[9b3ad3449b] Jean Boussier 2025-08-06 13:23:29 UTC

子 Ractor での require 時に main Ractor に require 実行させてそれを待つための機構で内部的に使う T_TYPEDDATA 型オブジェクトのクラスの宣言に RUBY_TYPED_EMBEDDABLE フラグをつけて構造体部分を Variable Width Allocation で拡張された slot に埋め込めるようにしています。

[f3206cc79b] Jean Boussier 2025-08-06 12:46:36 UTC

T_STRUCT 型のオブジェクトで定義されている attribute は Variable Width Allocation で拡張された slot に埋め込みで保持されている場合がありますが、ここにさらに VALUE を埋め込む余地がある場合に追加のインスタンス変数や object_id などのための fields_obj への参照も埋め込むようにしています。

[7aa0e09bfe] ydah 2025-08-05 12:44:13 UTC

autogen.sh のコメントの typo 修正。

parse.y の AST の NODE の module 文に対応する NODE_MODULE に位置情報の保持を追加しています。

[ebb775be8d] Takashi Kokubun 2025-08-06 17:05:20 UTC

ZJIT の x86_64 向けの実行コード生成での整数の型の扱いの不具合修正。 https://github.com/ruby/ruby/pull/14125

[71b46938a7] Peter Zhu 2025-08-05 19:53:02 UTC

Symbol の管理用のグローバル変数 ruby_global_symbols の初期値がメンバーが last_id から next_id に変更されたのにオフセットがそのままで ID の採番が 1つずれていたのを修正しています。 6c24904a690eb7c4e20c3fa8c3751acc03454100 のあたりの変更の追随ですね。

[21cb1c9e92] Alan Wu 2025-08-06 05:25:27 UTC

ZJIT の x86_64 向けコード生成の不具合修正。

[e378a21a32] Alan Wu 2025-08-06 05:27:16 UTC

make zjit-test-all で TestFixnum のテストを skip していたのを実行するようにしています。たぶん 21cb1c9e929e9aaad24a9b64576aceb54b8e4e7a で修正したのでしょう。

[4a70f946a7] Stan Lo 2025-08-06 20:51:41 UTC

ZJIT で複数 Ractor を利用しはじめた時に Ractor が1つの前提で生成されたコードを破棄するための機構を準備しているみたいです。 https://github.com/ruby/ruby/pull/14121

[ba4a36e226] Max Bernstein 2025-08-06 20:56:01 UTC

ZJIT で attr_reader などで定義されたインスタンス変数を参照するメソッドの呼び出しをインライン化する最適化。 https://github.com/ruby/ruby/pull/14126

[a9f6fe0914] John Hawthorn 2025-08-06 21:05:03 UTC

T_IMEMO 型オブジェクトの GC.compact による移動の参照更新の処理で imemo_callcache 型の時に既にその callcache が invalidate されてた時に mark 処理をスキップするように修正しています。

[640a2f1dc7] John Hawthorn 2025-08-06 20:44:46 UTC

拡張ライブラリ objspace の ObjectSpace.dump で T_IMEMO 型オブジェクトの imemo_callcache タイプの時の処理でも callcache が invalidate されているかをチェックして不正なアクセスを抑制するようにしています。

[fccd96cc6c] John Hawthorn 2025-08-06 20:53:00 UTC

構造体 struct rb_callcache のメンバーにアクセスするための inline 関数 vm_cc_cme() と vm_cc_call() に VM_ASSERT() で invalidate されてないことをチェックするようにしています。




以上の内容はhttps://ruby-trunk-changes.hatenablog.com/entry/ruby_trunk_changes_20250807より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14