ruby-trunk-changes 2025-12-31

今日は主に Proc/Method/UnboundMethod の source_location メソッドの戻り値にカラム位置などの情報を追加して戻り値の配列サイズを増やす変更や拡張ライブラリ json の最適化などがありました。

[966dbba8db] Satoshi Tagomori 2025-12-30 13:01:54 UTC

d5af8d785888f3af5efb844be5948df71d777b22Ruby::Box の修正で class_alloc() で root box かどうかのチェックをしているところでその前に rb_box_available() で Box が利用可能かどうかのチェックをするようにしています。 root box のチェックがある程度思い処理なのでショートカットのためみたいです。

[19e539c9ee] Nobuyoshi Nakada 2025-12-30 14:00:18 UTC

Integer#pow の第2引数に Bignum の範囲の整数を渡した時に receiver が 0 なのに結果が 0以外になることがあった不具合を修正しています。 [ruby-core:124388] [Bug #21814]

[d82fc3360d] Benoit Daloze 2025-12-16 08:48:41 UTC

4.0.0 のリリース前に一度 revert されていた Proc#source_locaition や Method#source_location の戻り値への終了行やカラム位置の情報を追加する変更を最適用しています。 [ruby-core:42579] [Feature #6012] [ruby-core:124206] [Bug #21783]

[cd66d15858] Benoit Daloze 2025-12-16 08:52:31 UTC

d82fc3360d7cfa7e1e1a4dddb668b4c38808538a に追随して Proc#source_location、Method#source_location の rdoc 用コメントの戻り値の説明を修正しています。 [ruby-core:124206] [Bug #21783]

[c970d2941d] Benoit Daloze 2025-12-15 20:46:17 UTC

d82fc3360d7cfa7e1e1a4dddb668b4c38808538a からの一連の変更の続きで -> の記法による Proc オブジェクトの Proc#source_location のカラム位置の判定を変更しています。 [ruby-core:124206] [Bug #21783] [ruby-core:124207] [Bug #21784]

[a7fec4d661] Benoit Daloze 2025-12-30 11:47:01 UTC

rubyspec の Proc#source_location や {Unbound,}Method#source_location のテストで ruby_version_is による guard を 4.1 未満の時に修正しています。

[c05e10605e] Benoit Daloze 2025-12-30 14:30:31 UTC

tool/rbs_skip_tests に Proc や UnboundMethod, Method の source_location についてのテストを skip 対象として追記しています。

[f2833e358c] Peter Zhu 2025-12-30 14:46:42 UTC

GC の default 実装の最近の weak ref の実装変更で RGenGC 対応が不完全なところがあったようで、ObjectSpace::WeakMap が old 世代になっているけど含まれている key のオブジェクトが young の時に不正アクセスが発生する可能性があったのでを修正しています。 https://bugs.ruby-lang.org/issues/21084#note-7

[b7bf8c20b0] Peter Zhu 2025-12-30 14:48:20 UTC

GC の mmtk 実装の内部的定数のリストに RVALUE_OLD_AGE という定数の登録を追加しています。

[3086d58263] Nobuyoshi Nakada 2025-12-30 16:34:43 UTC

GitHub Actions の MinGW 版 workflow で make test-tool の実行を追加しています。

[d40e056cc8] Nobuyoshi Nakada 2025-12-30 17:24:21 UTC

Thread のシグナルによる割り込みに関するテストの skip を MinGW から Windows 全般にしています。またテスト用ユーティリティの assert_separately 自身のテストも Windows で skip しています。

[9d37155cfc] Peter Zhu 2025-12-30 18:01:06 UTC

GC の mmtk 実装の SIZE_POOL_COUNT という定数の設定をマジックナンバーをやめて MMTK_HEAP_COUNT マクロを参照するようにしています。少し前に増やしたのに反映されていなかったので不具合修正にもなっているようです。

[c352808fa9] Nobuyoshi Nakada 2025-12-31 02:27:46 UTC

rb_data_type_t::flags のビットフラグのチェック用に RB_DATA_TYPE_EMBEDDABLE_P() と RTYPEDDATA_EMBEDDABLE_P() というマクロを導入して利用しています。

[d95bebe06c] Nobuyoshi Nakada 2025-12-31 02:29:29 UTC

RTYPEDDATA_EMBEDDED_P() という inline 関数を RBIMPL_ATTR_DEPRECATED_INTERNAL_ONLY() を使って内部でのみ利用されるようにしています。

[094145fbc1] Nobuyoshi Nakada 2025-12-31 08:54:42 UTC

ヘッダファイル include/ruby/internal/core/rtypeddata.h で TYPED_DATA_EMBEDDED と TYPED_DATA_PTR_MASK というマクロの定義を移動して Doxygen のドキュメント化を抑制するセクションの中に移動しています。

[61d45c857b] Scott Myron 2025-12-31 02:48:18 UTC

拡張ライブラリ json で文字列内のバックスラッシュをスキャンする処理で不要な memchr(3) の呼び出しを抑制する最適化。

[c97f5d591b] Scott Myron 2025-12-31 03:32:03 UTC

拡張ライブラリ json で \uXXXX のような Unicode エスケープシーケンスのパース処理のリファクタリングとサローゲートペアの処理の小さな最適化を行なっています。