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


ruby-trunk-changes 2025-12-26

今日はリリースの翌日ということでゆっくりかと思いきや 60 commits と盛況でした。 4.1.0 にバージョンの更新が行なわれ、それに追随した修正や停止していた default gems の同期の再開で strscan, stringio, resolv, date などの標準添付ライブラリの更新などがありました。また weak ref の実装の最適化というコアの変更もありました。

[099da884fe] Sorah Fukumori 2025-12-25 12:35:15 UTC

Ruby::Box のテストで experimental の警告メッセージ内の ruby の実行ファイル名が変更された時のために RbConfig::CONFIG["ruby_install_name"] を参照するように修正しています。 https://github.com/ruby/ruby/pull/15734

[16626d500d] Peter Zhu 2025-01-21 16:38:01 UTC

内部的に利用している darray という構造体の指定のインデックスの要素を削除して、末尾の要素をそこに移動することでサイズを 1減らすという操作をするマクロ rb_darray_swap_remove() を追加しています。

[10b97f52fd] Peter Zhu 2025-01-21 16:42:00 UTC

ObjectSpace::WeakMap のようなクラスで weak ref を持たせたオブジェクトに struct RBasic::flags のビットフラグで弱参照を持つことを明示的に宣言させて、GC の mark 処理からこのようなオブジェクトの mark 時にコールバックを呼び出し WeakMap などから対応するエントリを回収させるようにしています。 WeakMap の実装が効率的になり、不正メモリアクセスの危険性も抑えることができるようです。 [ruby-core:120749] [Feature #21084]

[b2feb09efe] Peter Zhu 2025-01-21 16:45:25 UTC

10b97f52fd2cba189b8952fcb02c4d6dd9b1b6f2 の続きで ObjectSpace::WeakMap と ObjectSpace::WeakKeyMap で実際に追加した API rb_gc_declare_weak_refere() を利用して weak ref を持つことを宣言させるように実装を変更しています。 [ruby-core:120749] [Feature #21084]

[a7ef2a9b0c] Peter Zhu 2025-01-21 16:45:45 UTC

10b97f52fd2cba189b8952fcb02c4d6dd9b1b6f2 の続きで GC の mmtk 実装でも GC の IF の handle_weak_references() の実装を追加しています。 [ruby-core:120749] [Feature #21084]

[ade779b1e1] Peter Zhu 2025-12-07 00:26:48 UTC

10b97f52fd2cba189b8952fcb02c4d6dd9b1b6f2 で追加した weak ref の宣言を callcache の T_IMEMO 型オブジェクトでも利用して実装するよう変更しています。 [ruby-core:120749] [Feature #21084]

[0c07a4246c] Peter Zhu 2025-12-08 20:41:43 UTC

10b97f52fd2cba189b8952fcb02c4d6dd9b1b6f2 で追加した weak ref の宣言を Fiber の gen_fields_cache という構造体メンバー(なんだっけこれ)でも利用するようにしています。 [ruby-core:120749] [Feature #21084]

[57637827e6] Peter Zhu 2025-12-16 22:48:27 UTC

10b97f52fd2cba189b8952fcb02c4d6dd9b1b6f2 からの続きで Continuation の実装でも同じく gen_fields_cache という構造体メンバーがもつオブジェクトに weak ref の宣言を使うように変更しています。 [ruby-core:120749] [Feature #21084]

[7eb088084a] Peter Zhu 2025-12-19 00:21:35 UTC

10b97f52fd2cba189b8952fcb02c4d6dd9b1b6f2 での struct RBasic::flags 用の定数マクロを ZJIT 向け C binding に追加しています。 [ruby-core:120749] [Feature #21084]

[99e9ca1f40] "Yukihiro \"Matz\" Matsumoto" 2025-12-25 12:14:34 UTC

NEWS.md を doc/NEWS/NEWS-4.0.0.md に移動しています。

[010dcf8556] "Yukihiro \"Matz\" Matsumoto" 2025-12-25 12:14:35 UTC

4.1.0 向けに NEWS.md を再作成し、ruby のバージョンを 4.1.0 に更新しています。今年も新しい ruby バージョンの開発がはじまりました。

[2fa02d6d2e] Hiroshi SHIBATA 2025-12-26 00:06:05 UTC

GitHub Actions で default gems の upstream からの更新や NEWS の default gems や bundled gems のバージョン更新のジョブが再び動くように環境変数の設定を変更しています。

[a06a59e3b3] Hiroshi SHIBATA 2025-12-26 00:06:11 UTC

GitHub Actions の bundled gems の更新チェックのジョブを有効化する環境変数名を変更して、有効に戻しています。

[715d69ac71] git 2025-12-26 00:07:09 UTC

NEWS の default gems のバージョンリストのところに空行を追加しています。

[290fa0d8b4] Peter Zhu 2025-12-26 00:30:50 UTC

GC の mmtk 実装のコーディングスタイル修正。

[67f830e092] Sutou Kouhei 2025-12-17 05:18:43 UTC

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

[354dc574de] Burdette Lamar 2025-12-23 00:42:36 UTC

拡張ライブラリ stringio の StringIO#pread の rdoc 用コメントを doc/stringio/pread.rdoc という独立したファイルに追加して :include: タグで取り込んでいます。 https://github.com/ruby/stringio/pull/195

[9a76ccdbab] Burdette Lamar 2025-12-23 00:43:00 UTC

拡張ライブラリ stringio の StringIO#putc の rdoc 用コメントを doc/stringio/putc.rdoc という独立したファイルに追加して :include: タグで取り込んでいます。 https://github.com/ruby/stringio/pull/196

[ae46f916f1] Burdette Lamar 2025-12-23 00:43:58 UTC

拡張ライブラリ stringio の StringIO#read の rdoc 用コメントを doc/stringio/read.rdoc という独立したファイルに追加して :include: タグで取り込んでいます。 https://github.com/ruby/stringio/pull/197

[f09e35ee4a] Maciej Mensfeld 2025-12-18 08:36:35 UTC

拡張ライブラリ date のグレゴリオ暦の変換処理の最適化。Neri-Schneider アルゴリズムというのを採用して整数演算で処理できるようにしているそうです。

[ea03f263b5] Maciej Mensfeld 2025-12-18 09:38:51 UTC

拡張ライブラリ date の不要な inline 修飾子の削除や余分な空白の除去。

[bcaa127ecd] Maciej Mensfeld 2025-12-18 11:36:36 UTC

拡張ライブラリ date の共通処理やマジックナンバーをマクロ定義として切り出すリファクタリング

[5960fb9fa0] Maciej Mensfeld 2025-12-18 11:43:22 UTC

拡張ライブラリ date の共通処理をマクロとして切り出すリファクタリング

[8024245854] Maciej Mensfeld 2025-12-18 13:03:00 UTC

拡張ライブラリ date の 64bits 整数の型を preprocessor 分岐で宣言を分けていたのを uint64_t を利用することでシンプルにしています。

[c5376a3a16] Hiroshi SHIBATA 2025-12-05 02:11:31 UTC

rubygems から未使用の Gem::List というクラス定義を削除しています。

[bdbe8d5015] eileencodes 2025-11-25 19:17:03 UTC

rubygems の Gem::AtomicFileWriter というのを導入して tar パッケージを書きかけの状態が残らないように一時ファイルに書き込んでから rename() するようにしています。

[74becf1b61] Hiroshi SHIBATA 2025-12-26 00:32:02 UTC

rubygems と bundler のバージョンを 4.1.0.dev に更新しています。

[4b7bbd4340] Jean-Samuel Aubry-Guzzi 2025-10-29 12:31:26 UTC

標準添付ライブラリ resolv で TCPSocket#read が nil を返した時の対応を追加しています。

[f8d0960af2] Jean-Samuel Aubry-Guzzi 2025-12-08 16:22:55 UTC

標準添付ライブラリ resolv でレスポンスが完了せずにソケットが閉じられた時のために捕捉する例外クラスに EOFError を追加しています。

[44a1765684] t-mangoe 2025-12-21 00:16:58 UTC

標準添付ライブラリ timeout のテストに Timeout.timeout の引数に文字列を渡した時のテストを追加しています。

[f3149af35a] Koichi ITO 2025-12-20 20:58:23 UTC

標準添付ライブラリとしての prism でデフォルトの ruby parser バージョンを 4.0 向けに更新しています。

[1f526b3489] Taketo Takashima 2025-12-17 14:39:43 UTC

標準添付ライブラリ ipaddr で InvalidAddressError 例外を発生させる時の例外メッセージに埋め込むアドレスの情報を IPAddr#to_s の結果を埋め込むように修正しています。

[8ccfb375b9] 久我山菜々 2025-12-18 16:30:37 UTC

拡張ライブラリ json の vendoring している fpconv の引数の配列サイズの修正。

[4d7db86a79] Jean Boussier 2025-12-22 08:16:09 UTC

拡張ライブラリ jsonJSON モジュールの rdoc 用コメントに最近追加された allow_control_characters オプションの説明を追記しています。

[fda7019c80] Benoit Daloze 2025-12-08 12:06:08 UTC

標準添付ライブラリ net/protocol に拡張ライブラリ socket の TCPSocket.new がキーワード引数 open_timeout を受け付けるかどうかを判定して Net::Protocol::TCP_SOCKET_NEW_HAS_OPEN_TIMEOUT という定数に結果を保存しておくようにしています。

[70c7f3ad77] Sutou Kouhei 2025-12-17 05:28:48 UTC

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

[93df966848] Hiroshi SHIBATA 2025-12-26 00:37:17 UTC

拡張ライブラリ strscan と stringio のバージョンに .dev をつけています。

[89af235435] Hiroshi SHIBATA 2025-12-26 00:44:55 UTC

bundler の ruby のバージョンを判定する機能に 4.1 対応を追加しています。

[565ea26ad1] Hiroshi SHIBATA 2025-12-26 01:14:16 UTC

GitHub Actions の ruby-bench を実行するステップで lobsters というベンチマークを一時的に削除して実行するようにしています。ruby のバージョンが 4.1 になるとうまく動かなかったみたいです。

[e95a9942bb] git 2025-12-26 02:01:49 UTC

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

[02275b1e53] Hiroshi SHIBATA 2025-12-26 02:11:56 UTC

GitHub Actions の Windows 版 workflow で uutils というコマンドを利用していたのをやめています。

[9824724b2f] Hiroshi SHIBATA 2025-12-26 02:39:43 UTC

bundled gems rbsWindows 版で skip するテストの指定に rubygems の atomic なファイル書き込みのテストを追加しています。

[594dd8bfd4] Takashi Sakaguchi 2025-12-26 03:37:46 UTC

標準添付ライブラリ pp で inspect で表示するインスタンス変数の指定をする instance_variables_to_inspect メソッドが private になっていても対応するようにしています。 https://github.com/ruby/pp/pull/70

[bad7dd5d74] Nobuyoshi Nakada 2025-12-26 00:16:36 UTC

NEWS の default gems と bundled gems のバージョンリストなどをセクションを分けるようにしています。

[b01fd2d8c3] Andrii Furmanets 2025-12-25 10:05:06 UTC

set.c の RSET_IS_MEMBER() という関数マクロで引数ではなく呼び元の set という変数を直接参照してしまっていたのを修正しています。

[704ac72fb6] Yusuke Endoh 2025-12-24 15:08:38 UTC

コマンドラインオプションのテストで -h オプションで表示されるヘルプメッセージの行数とカラム数のチェックを追加しています。

[0b65ac6daf] Nobuyoshi Nakada 2024-10-24 09:39:51 UTC

re.c の既に存在していない関数 rb_warn_deprecated_to_remove() の宣言を削除しています。

[4c07e61bc9] Nobuyoshi Nakada 2024-10-24 10:35:05 UTC

Windows 版のビルドで VC のサポートバージョンを引き上げて、古い VC のための workaround を削除しています。

[ccc8610b66] Nobuyoshi Nakada 2024-06-03 15:21:33 UTC

GC の調節に使う環境変数から RUBY_GC_HEAP_INIT_SLOTS という変数のサポートを削除しています。

[1ca464347a] Nobuyoshi Nakada 2024-06-04 00:27:35 UTC

GitHub Actions で rb_warn_deprecated_to_remove_at() で廃止するバージョンンの指定をしている deprecated 警告出力で指定しているバージョンをチェックして削除予定のバージョンになったら検出するようにしています。

[5c2f6639c5] Nobuyoshi Nakada 2025-12-08 04:05:02 UTC

rb_clear_constant_cache() という deprecated になっていた関数の定義を削除しています。

[f84110e601] Nobuyoshi Nakada 2025-12-08 04:19:20 UTC

rb_data_object_alloc() および rb_data_typed_object_alloc() という deprecated としてマークされてた関数の定義を削除しています。

[a41b154029] Nobuyoshi Nakada 2025-12-08 04:25:52 UTC

complex.c の deprecated になっていた C API rb_complex_polar() を削除しています。

[cf60dc2642] Nobuyoshi Nakada 2025-12-08 04:44:46 UTC

deprecated になっていた inline 関数 rb_clone_setup() と rb_dup_setup() の定義を削除しています。

[a447d39da2] Nobuyoshi Nakada 2025-12-08 04:47:51 UTC

rb_gc_force_recycle() という inline 関数の宣言を削除しています。

[a3ac83b7b8] Nobuyoshi Nakada 2025-12-08 04:59:50 UTC

tainted や trusted に関する C API 群がずっと deprecated になっていたままだったので削除しています。

[2ac4cc0a1b] Nobuyoshi Nakada 2025-12-08 05:01:39 UTC

互換性のために残していた? struct RBasic::flags のビットフラグ用定数 RUBY_FL_DUPPED を削除しています。

[8c7b1401a5] Nobuyoshi Nakada 2025-12-08 05:16:11 UTC

ずっと deprecated だった rb_iterate() という C API の定義を削除しています。

[c342461582] Nobuyoshi Nakada 2025-12-26 10:33:03 UTC

deprecated にされていた RSTRUCT_PTR() というマクロ定義を削除しています。

[b304c149aa] Jean Boussier 2025-12-26 08:14:57 UTC

Kernel#open や IO.read などでパイプ記号をつかってコマンド実行を行う挙動がなくなったのでドキュメントで注意喚起していた記述を削除しています。[ruby-core:113407] [Feature #19630]




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

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