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


ruby-trunk-changes 2025-12-10

今日は splat 引数に渡した配列が特定の条件で破壊的変更されてしまう不具合の修正や標準添付ライブラリ forwardable の不具合修正のほか、いくつかの default gems のバージョン更新などがありました。

[5ae2bd240f] Satoshi Tagomori 2025-12-09 12:29:36 UTC

NEWS に Ruby::Box の追加について追記しています。また doc/language/box.md の known issue を整理しています。

[edca81a1bb] Abrar Habib 2025-12-09 12:41:09 UTC

ZJIT で Fixnum の範囲の整数の Integer#/ のインライン化を実装しています。 https://github.com/ruby/ruby/pull/15452

[c8441e8db5] Max Bernstein 2025-12-04 01:53:50 UTC

ZJIT で VM 命令 opt_newarray_send の実装の不要なコピーを抑制する小さな最適化。

[cb9510f539] Max Bernstein 2025-12-04 02:16:27 UTC

ZJIT でさらに Array#pack にキーワード引数 buffer を指定した時の最適化 VM 命令の対応を実装しています。

[e8568bbcf2] Satoshi Tagomori 2025-12-09 14:03:41 UTC

doc/language/box.md の Known issues を更新し Utility methods セクションを追記しています。

[573896a40a] Nobuyoshi Nakada 2025-11-08 02:05:17 UTC

Ruby::Box で拡張ライブラリをロードするために共有ライブラリをコピーしたものを Ruby::Box が回収された時に削除する処理を追加しています。

[07e85e1dba] Satoshi Tagomori 2025-12-02 13:22:01 UTC

Ruby::Box のテストに拡張ライブラリの共有ライブラリを削除する挙動についてのテストを追加しています。

[1e6a479520] Nobuyoshi Nakada 2025-12-03 01:41:39 UTC

07e85e1dba3e15c714044660f731a90ce86c8c24 で導入した Ruby::Box のテストで assert_separately のかわりに assert_ruby_status を利用するように変更して、共有ライブラリがなくなったことをチェックするのを子プロセスの終了後に移動しています。Windows での制約により利用中に消せないため。

[1933f1291a] Nobuyoshi Nakada 2025-12-09 14:44:06 UTC

doc/language/box.md の TODOs から Windows でのプロセス終了時の DLL ファイル削除の件を追記しています。

[7ecfb1b232] YO4 2025-12-08 12:41:02 UTC

拡張ライブラリ win32/resolv のスクリプトで registry の値を読み取るのに "NV Domain" のかわりに "Domain" を利用するようにしています。

[76d845aa7a] Randy Stauner 2025-11-18 23:19:49 UTC

ZJIT のテストを追加しています。

[c42f4d80ea] Randy Stauner 2025-11-14 21:50:39 UTC

ZJIT で必須キーワード引数を持つメソッドの呼び出しの最適化実装。

[f0b288adf7] Randy Stauner 2025-12-06 02:57:08 UTC

ZJIT のキーワード引数をもつメソッド呼び出し時に指定されたキーワードを管理する bitmap 情報の渡しかたを変更しています。

[98390d9360] Jean Boussier 2025-12-09 16:39:15 UTC

rbimpl_check_typeddata() 関数の宣言に RBIMPL_ATTR_PURE_UNLESS_DEBUG() をつけて pure 関数としていたのを削除しています。例外が発生する可能性があるため。 [ruby-core:124103] [Bug #21771]

[bd0d08b6d2] Randy Stauner 2025-12-09 20:29:58 UTC

ZJIT の中間表現 HIR のダンプ時にコメントとして脱最適化の理由を表示するようにしています。 https://github.com/ruby/ruby/pull/15454

[6409715212] Jeremy Evans 2025-12-03 01:34:36 UTC

メソッド呼び出しに配列を m(*ary, kw: val) のように splat 引数としてキーワード引数と共に渡す時に渡した配列オブジェクトが破壊的に変更されてしまうことがあった不具合を修正しています。 [ruby-core:123980] [Bug #21757]

[1e7cf7b2bc] Jeremy Evans 2025-10-10 23:32:43 UTC

Refinements でメソッドの可視性を private や public などのメソッドで変更するだけの時に SystemStackError が発生してしまうことがあった不具合を修正しています。 [ruby-core:122558] [Bug #21446]

[76fb0d244b] Jeremy Evans 2025-11-23 03:51:46 UTC

freeze されたオブジェクトを変更しようとして FrozenError 例外を発生させる時にクラスを CLASS_OF() で取得していたのを rb_obj_class() に変更しています。特異クラスが定義されている時に特異クラスがメッセージ内に使わてしまっていたのを修正しています。

[e436dba9fe] Jeremy Evans 2025-11-23 03:58:43 UTC

76fb0d244b95a23116bfe72bb2422395c3a76477 と同様に freeze されたオブジェクトに特異メソッドを追加しようとした時の例外メッセージにクラス名を含めるようにしています。 [ruby-core:122296] [Bug #21374]

[29c29c2b7e] Aiden Fox Ivey 2025-12-09 23:14:49 UTC

ZJIT の統計情報をダンプする --zjit-stats オプションで出力先のファイル名を指定することができるようにしています。 https://github.com/ruby/ruby/pull/15414

[f9eb0d8da2] Nobuyoshi Nakada 2025-12-10 00:22:09 UTC

rubyspec で RUBY_VERSION をチェックしていたところにヘルパーメソッド ruby_version_is を利用するリファクタリング

[3bb97e7707] Koichi Sasada 2025-12-09 19:32:34 UTC

ruby_debug_log() というマクロの代替実装を追加して常にデバッグ用の _RUBY_DEBUG_LOG() というマクロが常に使えるようにしています。

[3636277dc5] Nobuyoshi Nakada 2025-12-10 03:09:50 UTC

NUM2PTR() および PTR2NUM() という変換マクロが各所で定義されていたのを include/ruby/internal/arithmetic/intptr_t.h にまとめています。

[df4fc0f7fc] Hiroshi SHIBATA 2025-12-10 05:07:11 UTC

拡張ライブラリ psych のバージョンを 5.3.0 に更新しています。

[e4786376d6] git 2025-12-10 05:09:13 UTC

NEWS の default gems のバージョンリストの psych のバージョンも更新しています。

[814f23747b] Hiroshi SHIBATA 2025-12-10 05:11:45 UTC

標準添付ライブラリ resolv のバージョンを 0.7.0 に更新しています。

[238e69d125] git 2025-12-10 05:13:39 UTC

NEWS の default gems のバージョンリストの resolv のバージョンも更新しています。

[ec862b41dc] Takashi Kokubun 2025-12-10 05:18:03 UTC

GitHub Actions のいろんなコンパイルオプションなどを試す workflow で マクロ USE_FLONUM=0 を指定して Float に flonum を使わないようにビルドする時に ZJIT を無効化するようにしています。 https://github.com/ruby/ruby/pull/15471

[5f444cba47] Hiroshi SHIBATA 2025-12-10 05:21:59 UTC

標準添付ライブラリ ipaddr のバージョンを 1.2.8 に更新しています。

[ab80d05fef] git 2025-12-10 05:23:39 UTC

NEWS の default gems のバージョンリストの ipaddr のバージョンも更新しています。

[4523a90532] Hiroshi SHIBATA 2025-12-10 05:28:10 UTC

拡張ライブラリ date のバージョンを 3.5.1 に更新しています。

[74376fefbb] git 2025-12-10 05:30:06 UTC

NEWS の default gems のバージョンリストの date のバージョンも更新しています。

[bbee62abbd] Hiroshi SHIBATA 2025-12-10 05:48:32 UTC

tool/sync_default_gems.rb で pathname の同期時の最新バージョンチェックを抑制しています。

[842f91aec0] Burdette Lamar 2025-12-07 05:15:47 UTC

拡張ライブラリ stringio の StringIO#getc メソッドの rdoc の手直し。 https://github.com/ruby/stringio/pull/189

[668fe01182] BurdetteLamar 2025-12-05 16:07:45 UTC

拡張ライブラリ stringio のドキュメントのリンク修正。

[f623fcc7d0] Burdette Lamar 2025-12-06 23:18:18 UTC

拡張ライブラリ stringio の StringIO#getbyte の rdoc 用ファイルの手直し。 https://github.com/ruby/stringio/pull/188

[5bc65db555] Burdette Lamar 2025-12-06 23:20:13 UTC

拡張ライブラリ stringio の StringIO#gets のドキュメントの手直し。 https://github.com/ruby/stringio/pull/190

[b4a1f17058] Burdette Lamar 2025-11-15 13:47:46 UTC

拡張ライブラリ stringio の StringIO#each_line のドキュメント用ファイルを追加しています。 https://github.com/ruby/stringio/pull/165

[6ec5c5f1c8] Burdette Lamar 2025-11-15 13:48:35 UTC

拡張ライブラリ stringio の StringIO#size のドキュメントファイルを追加しています。 https://github.com/ruby/stringio/pull/171

[254653db85] Hiroshi SHIBATA 2025-12-10 06:38:52 UTC

拡張ライブラリ win32 の win32-registry の gemspec ファイルでバージョンを 0.1.2 に更新しています。

[a8b7fb7ed6] git 2025-12-10 06:40:40 UTC

NEWS の新規 default gems のリストに win32-registry を追加しています。

[8e87f201cf] Hiroshi SHIBATA 2025-12-10 06:42:31 UTC

標準添付ライブラリ optparse のバージョンを 0.8.1 に更新しています。

[492b1c73b3] git 2025-12-10 06:44:02 UTC

NEWS の default gems のバージョンリストの optparse のバージョンも更新しています。

[81fbdff8fd] John Hawthorn 2025-11-25 00:50:29 UTC

内部で利用している concurrent_set の実装でハッシュテーブルの操作した範囲を記録するための continuation bit というのを導入しています。要素の削除時に未使用に戻さずに削除マークを置くのが通常の実装ですが、continuation bit をチェックすることでその先の要素が未使用だとわかれば最後の要素は削除マークを置かずに未使用に戻すことができるので、よりテーブルを効率的に利用できるようになる、というものみたいです。

[462df17f86] John Hawthorn 2025-12-09 10:17:38 UTC

81fbdff8fdf2ae7afb2fa19319ff7d40379521fe の続きで内部で利用している concurrent_set の構造で要素の VALUE が GC で回収済みのオブジェクトかどうか判定して再利用できるようにしています。

[375025a386] John Hawthorn 2025-12-09 23:42:04 UTC

concurrent_set.c のローカル変数名の重複を修正しています。

[14ff851185] Jean Boussier 2025-11-24 07:48:19 UTC

標準添付ライブラリ forwardable で Kernel#eval でメソッド定義するためのスクリプトを組み立てる時に警告が発生したり SyntaxError になる可能性があったのを修正しています。 https://github.com/ruby/forwardable/issues/35 [ruby-core:123890] [Bug #21708]

[e8a55274f2] Hiroshi SHIBATA 2025-12-10 07:07:17 UTC

標準添付ライブラリ forwardable のバージョンを 1.4.0 に更新しています。

[ef4490d6b1] git 2025-12-10 07:09:05 UTC

NEWS の default gems のバージョンリストに forwardable の項目を追加しています。

[c5608ab4d7] Jean Boussier 2025-12-03 14:35:03 UTC

拡張ライブラリ monitor の実装で rb_fiber_current() が繰り返し呼ばれていたのを 1度だけ呼んで結果を格納するように最適化しています。このために struct monitor_args という構造体を導入してこれに current_fiber を持たせることで関数をまたがって同じ Fiber の参照を持ち回れるようにしています。

[6777d1012d] Jean Boussier 2025-12-10 09:35:37 UTC

拡張ライブラリ monitor で Monitor クラスの T_TYPEDDATA 型オブジェクトの定義で GC.compact 対応するようにしています。 また rb_data_type_t::flags のビットフラグに RUBY_TYPED_EMBEDDABLE を追加して Variable Width Allocation を利用して slot に構造体を埋め込めるようにしています。

[023c6d808a] Jean Boussier 2025-12-10 09:54:18 UTC

拡張ライブラリ json のエスケープされた文字の処理で改行(\n) が続いていた時の例外メッセージを特別に整形しています。

[2b66fc763a] Benoit Daloze 2025-12-10 11:42:33 UTC

vm_core.h の inline 関数 rb_current_execution_context() 内のコメントの typo 修正。




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

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