ruby-trunk-changes 2026-09-22

今日もメソッド内からの引数変換のためのメソッド(to_int や to_str) の呼び出しでオブジェクトの破壊的変更をした時の不具合修正や拡張ライブラリ openssl の Ractor Local GC 対応の最適化などがありました。

[61de3dd727] Luke Gruber 2026-09-18 16:43:02 UTC

拡張ライブラリ openssl の T_TYPEDDATA 型オブジェクトの大部分のクラスの rb_data_type_t で flags のフラグを RUBY_TYPED_FREE_IMMEDIATELY から RUBY_TYPED_THREAD_SAFE_FREE に変更して Ractor local GC で直接解放可能にしています。

[41e04ff507] Jean Boussier 2026-09-19 11:02:31 UTC

prism の特殊変数 __FILE__ の Node に PM_NODE_FLAG_STATIC_LITERAL というフラグをつけて静的にファイルパスを埋め込んでいたのをやめています。ISeq にファイルパスが埋め込まれて dump/load で可搬にならないのを防ぐためみたいです。 [ruby-core:102310] [Feature #17593]

[f07f65b79c] Kevin Newton 2026-09-21 15:25:46 UTC

41e04ff5073daa71f99e7fd362c974d1db97083e からの続きで prism で __FILE__ のノードが static である前提の最適化コードを削除しています。

[1f717ae3d6] Peter Zhu 2026-09-21 06:28:36 UTC

GC の mmtk 実装時の GC.config[:mmtk_plan] のテストを環境変数 MMTK_HEAP_MODE=fixed を設定して動かすようにしています。

[88bfa3005c] Peter Zhu 2026-09-21 15:22:11 UTC

String#rpartition が引数の to_str メソッドでの変換時に receiver の String オブジェクトが破壊的変更が行なわれると不正アドレスアクセスを行う可能性があったので文字列サイズの取得タイミングを変換後にして対応しています。

[6454569c4f] "dependabot[bot]" 2026-09-22 02:09:17 UTC

GitHub Actions の workflows で利用しているアクションのバージョンを更新しています。

[6723796db3] Burdette Lamar 2026-09-22 03:05:45 UTC

Dir#path、File.path、IO#path などの rdoc 用コメントの手直し。 https://github.com/ruby/ruby/pull/18936

[1007084edc] Peter Zhu 2026-09-22 00:32:25 UTC

Array#permutation で引数と to_int メソッドで変換した時に receiver が破壊的変更されると異常終了する可能性があった不具合を修正しています。 配列サイズの取得を変換後に移動して修正しています。

[d1d487f438] Nobuyoshi Nakada 2026-09-22 05:04:48 UTC

File.exit? の rdoc 用コメントに symbolic link に対して使った時にリンク先のチェックをすることを追記しています。 https://github.com/ruby/ruby/pull/18571

[3a21e4b415] Nobuyoshi Nakada 2025-03-12 01:42:30 UTC

File::Stat のメソッド群の rdoc 用コメントのマークアップと定数名の typo の修正。

[0702754129] Nobuyoshi Nakada 2026-09-22 06:01:44 UTC

File の rdoc 用コメント群で access(3) や eaccess(3) という記述を code タグでマークアップするようにしています。

[d41370aec5] Peter Zhu 2026-09-22 03:56:16 UTC

Dir#each、#each_child、#scan メソッドのブロックで receiver の Dir を close すると、dirp->dir が NULL になり異常終了していたので、ブロック呼び出し後に閉じられていないか確かめて IOError を発生させるように修正しています。

ruby-trunk-changes 2026-09-21

今日は主に String#% や String#tr や Array#[] でも変換メソッド呼び出し時にバッファの変更が行なわれた時の不具合修正がありました。

[edce07a8c9] Peter Zhu 2026-09-20 02:11:44 UTC

String#% で引数の配列内の要素に対する to_s 呼び出し中に引数の配列が破壊的変更が行なわれると use-after-free が発生し異常終了する可能性があった不具合を修正しています。要素にアクセスする都度配列がメソッド呼び出し時から変化してないかチェックして変化していたら例外を発生させるようにして対応しています。

[991f17eaec] Nobuyoshi Nakada 2026-09-20 14:05:08 UTC

GitHub Actions の独自 action で環境変数 RUBY_DUMP_AST へ設定する内容を ./dump_ast-required-unexpectedly とわざと存在しないコマンド名にして *.rbinc ファイルの生成後に dump_ast が呼ばれないことを確認するようにしています。

[466256eb49] Nobuyoshi Nakada 2026-09-20 15:15:10 UTC

GitHub Actions の tarball を作成するテストの workflows でも 991f17eaecc5ff5c4f233d8704edbd889724461b と同様に RUBY_DUMP_AST にわざと不正な名前を指定して dump_ast の呼び出しをエラーにするようにしています。

[37e5c08ba7] BurdetteLamar 2026-09-20 16:16:41 UTC

File.owned? と File::Stat#owned? の rdoc 用コメントにサンプルを追加しています。

[741619cb9e] BurdetteLamar 2026-09-20 19:12:18 UTC

File.pipe? と File::Stat#pipe?、Pathname#pipe? の rdoc 用コメントの手直し。

[c80608341d] BurdetteLamar 2026-09-20 19:45:33 UTC

File.readable?、File::Stat#readable? および Pathname#readable? の rdoc 用コメントの手直し。

[961d6b15f4] BurdetteLamar 2026-09-20 20:50:11 UTC

File.readable_real? と File::Stat#readable_real? の rdoc 用コメントの手直し。

[f0281b7a47] BurdetteLamar 2026-09-20 21:36:41 UTC

File.readlink と Pathname#readlink の rdoc 用コメントの手直し。

[681d0f1425] Peter Zhu 2026-09-20 12:03:08 UTC

String#tr の引数に Hash を渡したときの実装で Hash の key を to_str 変換する時に Hash のサイズが小さく変更されると、スタック上の pairs バッファの未初期化領域を参照して異常終了する可能性があったので、rb_hash_foreach() 完了後に実際に取り出せた件数を確認してその数でループするように修正しています。

[26f43967c8] Guilherme Carreiro 2026-06-14 08:07:31 UTC

標準添付ライブラリ fileutils の FileUtils#ln_sr で symbolic link を経由して同じ実体のディレクトリに対する相対パスの symblic link を作ろうとして空文字列のリンクになるのを回避するようにしています。

[0cb17e33e2] Nikita Vasilevsky 2026-07-21 21:09:37 UTC

標準添付ライブラリ fileutils の未使用のメソッド FileUtils#fu_copy_stream0 を削除しています。

[508ee64264] TAKANO Mitsuhiro 2026-06-08 08:01:35 UTC

標準添付ライブラリ fileutils のテストの chgrp が実行できない環境での chown のテストが失敗していたので File.chown が実行可能かチェックして不可能なら skip するようにしています。

[be820c30cb] Jiaying Song 2025-07-17 02:57:53 UTC

標準添付ライブラリ fileutils のテストで FileUtils#rm_r の permission error を起こすテストで root ユーザーで実行している場合は削除できてしまうためテスト失敗するので skip するようにしています。 root でテストしないほうがいいですよ、と思いますがまあコンテナ内なんでしょうね。

[647e6e61c1] Nobuyoshi Nakada 2026-09-21 03:06:42 UTC

be820c30cb188b043976f806da776896deb836d5 の続きで標準添付ライブラリ fileutils の FileUtils#rm_r のテストで Windows の時にも skip していましたが、root ユーザーかどうかのチェック root_in_posix? が Windows 環境でも tgrue を返すとのことで条件をまとめるリファクタリング。

[d4d0786729] Peter Zhu 2026-09-21 02:41:33 UTC

String#byteindex で引数に to_int を呼び出して変換する時に receiver の String が破壊的変更が行なわれりつ異常終了する可能性があったので文字列サイズを得る RSTRING_LEN() を引数変換の後に呼ぶように移動しています。

[cf2b80c06a] Nobuyoshi Nakada 2026-09-21 08:53:36 UTC

標準添付ライブラリ fileutils のテストで Windows 環境で dir コマンドで symbolic link に <SYMLINKD> の表示が出ない環境はテストを skip するようにしています。 https://github.com/ruby/ruby/pull/17545 で追加したテストですが WIndows の環境によっては不具合があってうまく通らないみたいです。

[09a5f2ef36] Nobuyoshi Nakada 2026-09-21 09:00:07 UTC

標準添付ライブラリ fileutils の FileUtils.touch のテストを追加しています。 https://github.com/ruby/fileutils/issues/177

[8befacf9e6] Matt Valentine-House 2026-09-16 21:13:13 UTC

Array#[] で添字を to_int メソッドで整数に変換する時に receiver の Array オブジェクトのサイズが小さくなった時に不正なメモリアクセスを起こす可能性がありました。元々配列サイズの取り直しは行なわれていましたが ary_subseq_len() が -1 を返した時の考慮が漏れていたので条件に追加しています。 [ruby-core:126743] [Bug #22325]

[eb08b74558] Peter Zhu 2026-09-21 10:07:28 UTC

GC の mmtk 実装で割り当てに失敗した時にヒープが追加されず無限ループ状態になる? 不具合を修正しています。

ruby-trunk-changes 2026-09-20

今日は主にたくさんのキーワード引数があるメソッドの呼び出し時の不具合修正や String#each_line メソッドブロック内で引数の文字列に破壊的変更を行なった時の不具合修正などがありました。

[d87ffb271a] Nobuyoshi Nakada 2026-09-19 16:18:43 UTC

キーワード引数が 32個以上あるメソッドでデフォルト値の評価有無を管理するために Hash を利用していますが、この時に Integer#== が再定義されているとメソッド呼び出しが行なわれる可能性がありスタックを破壊してしまい異常終了する可能性がありました。このため内部的に利用する Hash を identhash に変更してメソッド呼び出しが行なわれないようにしています。 [ruby-core:126779] [Bug #22335]

[40d23240f7] Nobuyoshi Nakada 2026-09-19 16:46:06 UTC

d87ffb271a80fb108de3465d12ada829f3c130af の続きでキーワード引数の処理の重複した処理を args_setup_kw_parameters_not_found() という関数に切り出して共有するようにリファクタリングしています。

[9e1e000d2b] BurdetteLamar 2026-09-19 14:34:26 UTC

File.mtime, File::State#mtime および File#mtime メソッドの rdoc 用コメントにまとめてサンプルとリンクを追記しています。

[241ea171d1] BurdetteLamar 2026-09-19 13:08:08 UTC

File.mkinfo の rdoc 用コメントにリンクとサンプルコードを追記しています。

[d1786641f1] Burdette Lamar 2026-09-20 01:20:26 UTC

IO.open および File.open の rdoc 用コメントの手直し。 https://github.com/ruby/ruby/pull/18930

[5a4ccd91b6] Peter Zhu 2026-09-19 11:22:35 UTC

String#each_line メソッドのブロック内で引数に指定された separator の文字列が破壊的変更が行なわれると異常終了する恐れがあったので separator についても str_mod_check() を呼んで変更されてないかチェックするようにしています。

[87435fe232] Nobuyoshi Nakada 2026-09-20 04:13:45 UTC

win32/Makefile.sub で $(MSC_VER) をチェックして CPPFLAGS に preprocessor 関連のオプション(-Zc:preprocessor や -experimental:preprocessor) を追加するようにしています。 RUBY_ASSERT_MESG_WHEN() などのマクロの引数の扱いのために新しい preprocessor の挙動をさせるようにするために指定が必要だったようです。 またこれに伴ない coroutine 実装の win32/win64 版をビルドするためのルールで as へのコマンドラインオプションから $(XCFLAGS) と $(CPPFLAGS) を削除しています。preprocessor 用のオプションが as に渡されても存在しないからでしょう。

ruby-trunk-changes 2026-09-19

今日は主に String や IO::Buffer のメソッドからの to_str 呼び出し時に破壊的変更が行なわれた場合の use-after-free の不具合修正や ZJIT の最適化などがありました。

[0cdc4562e5] Peter Zhu 2026-09-18 05:17:12 UTC

Array の initialize メソッドを無理矢理呼ぶと assertion にひっかかって異常終了することがあったので capa の設定前に明示的に len を一旦 0 にリセットするようにしています。 [ruby-core:126768] [Bug #22333]

[4552e472c7] Nobuyoshi Nakada 2026-09-18 14:17:09 UTC

include/ruby/internal/attr/noalias.h のコメントの typo 修正。単語のあいだの空白の入りかたがへんですけど横幅を合わせるために間延びさせてるんですかね?

[fb33630a57] Luke Gruber 2026-09-18 14:04:13 UTC

GC の default 実装で Ractor Local GC での sweep lock 取得が不要なので削除し、rb_gc_rest() で VM 全体の lock を取得するようにしています。 がこの後 9f6f03ecae7f97864f296f2a043607f776d5c4d2 で再修正されています。

[6e38174c14] Max Bernstein 2026-09-18 14:50:13 UTC

ZJIT でブロック引数渡しでのメソッド呼び出しでもプロファイルされたレシーバ型ごとに HasType 分岐+特殊化 send を並べる最適化を行うようにしています。外れたら汎用の send に fallback します。 https://github.com/ruby/ruby/pull/18567

[7525ed0bc6] Nobuyoshi Nakada 2026-09-18 15:26:56 UTC

1c0b1be076437e618a331726a5334d77c892bc6e で alias 対象のメソッドが Object(Kernel) で定義されたメソッドの時に deprecated 警告を出すようにした変更に対応するため rubyspec のテストで version guard を追加しています。 [ruby-core:126537] [Bug #22276]

[2fba403d42] Takashi Kokubun 2026-09-09 00:20:23 UTC

ZJIT のブロック引数を受け取るメソッドの VM 命令 getblockparamproxy のコンパイル時にプロファイルを元に必要なパターンを生成していたのを全パターン用のコード生成するようにしています。コードは大きくなるけど異なるタイプのブロック引数が渡されて再コンパイルが走らないようにしています。

[9f062cf473] Takashi Kokubun 2026-09-09 00:52:56 UTC

2fba403d421e784869321cf8467a417adc50bff2 からの続きで ZJIT で不要になった getblockparamproxy 命令のプロファイル情報に関する処理を削除するリファクタリング。

[8fd6154c0d] Takashi Kokubun 2026-09-15 18:10:09 UTC

2fba403d421e784869321cf8467a417adc50bff2 からの続きで ZJIT でブロック引数に &:meth みたいに Symbol をメソッド名の指定として渡した場合に side-exit していたのを JIT コンパイル対象にするよう対応しています。

[a5fe554fbb] Takashi Kokubun 2026-09-18 16:09:15 UTC

ZJIT で再コンパイルのために JIT コンパイルされたコードを破棄するのをプロファイルされた型から外れていた時に即座に行なっていたのを --zjit-num-exits-until-invalidate で指定される回数まで待つようにしています。 https://github.com/ruby/ruby/pull/18849

[a19a922f9b] Alan Wu 2026-09-18 18:16:52 UTC

b215a3566ae473d89bc3487a8cb0111bf9534b9b での ZJIT の Rust 実装のループの終了条件の誤りを修正しています。

[97207692c2] Takashi Kokubun 2026-09-18 18:51:54 UTC

ZJIT の Rust 製テストの修正。

[9f6f03ecae] Luke Gruber 2026-09-18 20:47:23 UTC

fb33630a571760c0d93877afe5c42ac0f40200a0 の再修正。 GC のテストが SIGABRT で異常終了するようになってしまっていたので VM lock が必要かどうかの判定 gc_local_gc_holds_vm_lock() を object space が 1つだけかどうかで判定するように修正しています。

[d7fe390c85] Peter Zhu 2026-09-18 05:47:48 UTC

prism の **hsh のように Hash をキーワード引数に展開する記法を return に渡す文法利用時に異常終了していた不具合の修正。 [ruby-core:126770] [Bug #22334]

[b61da996af] Peter Zhu 2026-09-19 04:34:06 UTC

IO::Buffer#get_string でも引数に to_str メソッドを呼び出して文字列オブジェクトへの変換を行う場合があり、そこで receiver の IO::Buffer#resize メソッドでバッファが破棄されていると異常終了する可能性があったのでバッファをサイズの取得を引数の処理後に行うようにタイミングをずらして修正しています。 https://github.com/ruby/ruby/pull/18919 [ruby-core:126782] [Bug #22336]

[ed470686ec] Nobuyoshi Nakada 2026-09-19 09:37:17 UTC

GitHub Actions の coroutine 実装の amd64 の shadow stack 対応のテストを行う workflow で SHSTK が無効の時にエラーにしていましたが /proc/cpuinfo をチェックして未対応のアーキテクチャの場合はエラーにしないようにしています。

[92cef2802c] Nobuyoshi Nakada 2026-09-18 13:11:24 UTC

rb_freeze_singleton_class() という関数の宣言に RBIMPL_ATTR_DEPRECATED_EXT() をつけて、Ruby 4.2 からは非公開関数として fl_type.h から prototype 宣言を削除するように予約しています。

[a323b13af9] Nobuyoshi Nakada 2026-09-18 14:04:42 UTC

RB_OBJ_FREEZE() がただの rb_obj_freeze_inline() の alias にしていたのを既に RB_OBJ_FROZEN() が真ならスキップするチェックつきの inline 関数に変更しています。

[f74cedf78f] Nobuyoshi Nakada 2026-09-18 15:10:43 UTC

a323b13af90ade4f890c9dd6d4ad84497d48b3e9 からの続きで rb_obj_freeze() 内で OBJ_FROZEN() によるチェックや即値オブジェクトが渡された時に rb_bug() で異常終了させるチェックを削除して単に OBJ_FREEZE() を呼ぶだけの wrapper 関数にしています。

[44874b7e7a] Peter Zhu 2026-09-19 00:20:52 UTC

String#strip, String#lstrip, String#rstrip およびその ! つき破壊的メソッド群などで引数に対する to_str メソッド呼び出し内で receiver の文字列バッファが破壊的変更で変化した場合に異常終了してしまう可能性があった不具合をまとめて修正しています。 RSTRING_GETMEM() の取り直しをするようにしています。

ruby-trunk-changes 2026-09-18

今日は String のメソッドでメソッド内で receiver などが破壊的変更された時の異常終了を防ぐための修正群や、prepend された Module 内のメソッドを alias する時の deprecated 警告の追加などがありました。

[6954f6929f] Max Bernstein 2026-09-17 14:12:37 UTC

ZJIT の Rust 実装の中間表現 HIR のバリデーションを強化しています。 https://github.com/ruby/ruby/pull/18754

[dd70e80806] Nobuyoshi Nakada 2026-09-17 14:03:16 UTC

拡張ライブラリ io/console で ttyname_r(3) の戻り値の型を extconf.rb でチェックして char* が返される時にエラーチェックを errno を使うように古い実装対応のマクロ定義を追加して差異を吸収するようにしています。

[cb7e0e62e2] Nobuyoshi Nakada 2026-09-17 14:45:27 UTC

拡張ライブラリ io/console のバージョンを 0.9.4 に更新しています。

[685aff928e] git 2026-09-17 14:47:35 UTC

NEWS の default gems のバージョンリストの io-console のバージョンも 0.9.4 に更新しています。

[99e1c06692] Luke Gruber 2026-08-26 17:31:43 UTC

複数 Ractor 対応時に require 用に gem を activate するための Ractor._activated というメソッドで無名モジュールを作成して Module#prepend で require を差し替えていたのを Object.module_eval で alias を作るという方法に切り替えています。 Rails の CI でエラーが発生していたみたいです。 [ruby-core:126497] [Bug #22263]

[13c1eb9416] John Hawthorn 2026-09-02 21:33:24 UTC

Ractor 間でのオブジェクトのコピーのための内部的な serializer のための struct rb_ractor_courier 構造体でオブジェクトの参照ツリーの構築のための処理で Hash の key に重複したオブジェクトが含まれていた時の処理に不具合があったのを修正しているみたいです。独自 Marshal みたいなのが導入されてたんですね。

[911809a869] John Hawthorn 2026-09-10 06:24:57 UTC

同じく Ractor 間のオブジェクトコピーのための ractor courier で正規表現オブジェクト Regexp の複製処理を追加しています。

[742699d231] John Hawthorn 2026-08-19 22:57:06 UTC

同じく Ractor 間のオブジェクトコピーのための ractor courier で Marshal が使う marshal_dump/marshal_load や _dump/_load, _dump_data/_load_data などのメソッドが定義されていたらこれを利用するようにしています。

[1bd863dd23] John Hawthorn 2026-09-02 22:03:10 UTC

同じく Ractor 間のオブジェクトコピーのための ractor courier で Marshal の dump の実装を流用するようにしているみたいです。このために rb_marshal_compat_lookup() という内部 API を追加しています。

[dea2cdac07] John Hawthorn 2026-09-04 17:18:49 UTC

同じく Ractor 間のオブジェクトコピーのための ractor courier で Marshal の実装を流用できるようになったために不要になった明示的な Marshal 利用のパスをしています。

[ab49f881c2] John Hawthorn 2026-09-15 02:33:36 UTC

同じく Ractor 間のオブジェクトコピーのための ractor courier で特異クラスを持つオブジェクトは特いクラスを無視してコピーするようにしています。

[3d70677f51] Jean Boussier 2026-09-17 17:05:27 UTC

String#tr の Hash 引数対応の assertion の条件の間違いを修正。

[76e922341b] Takashi Kokubun 2026-09-11 23:33:17 UTC

ZJIT の Rust 実装の cfp->sp の設定の不具合修正。

[74ee88fb7c] Takashi Kokubun 2026-09-12 04:56:40 UTC

ZJIT の Rust 実装の cfp->block_code の設定の不具合修正。

[a71b1e3735] Takashi Kokubun 2026-09-16 17:06:13 UTC

ZJIT の Rust 製テストのリファクタリング。

[b3b675eaac] Takashi Kokubun 2026-09-16 17:06:49 UTC

a71b1e373572670eae811366a080b5bf2394bf3a の対応を受けて ZJIT の Rust 製テストの不要になった処理を削除。

[0bdfb4c90a] John Hawthorn 2026-09-16 19:34:46 UTC

ZJIT の複数 Ractor 利用時のインスタンス変数の参照を JIT サポートする最適化。

[aca98ee9c7] Hiroshi SHIBATA 2026-08-28 00:52:41 UTC

Ruby::Box 利用時の特殊変数 $stdin/$stdout/$>/$stderr の差し替えが効くように対応しています。 [ruby-core:124705] [Bug #21867]

[ba91f18409] Hiroshi SHIBATA 2026-09-01 06:39:01 UTC

Ruby::Box 利用時にグローバル変数に代入しても defined? での評価が nil になっていたのを修正しています。

[29c206dd55] Hiroshi SHIBATA 2026-08-31 06:31:09 UTC

Ruby::Box 利用時に特殊変数 $? および $$ の対応を追加しています。 [Bug #22280]

[261685fd25] Peter Zhu 2026-09-17 07:37:29 UTC

Array#pack で指示子 r/R の処理で to_int メソッドによる変換呼び出し中に buffer で指定された文字列オブジェクトが破壊的変更されると異常終了する可能性があったのを RSTRING_LEN() を取り直すようにして修正しています。

[05275662c4] Hiroshi SHIBATA 2026-09-17 23:40:58 UTC

GitHub Actions の ModGC のテストの workflow でタイムアウトを伸ばしています。

[89c8b8d379] Hiroshi SHIBATA 2026-09-17 21:40:48 UTC

rubygems のテスト用のダミーサーバーの socket 通信で捕捉する例外に Errno::ECONNABORTED, Errno::ECONNRESET を追加しています。

[ed08a3c622] Hiroshi SHIBATA 2026-09-17 21:50:21 UTC

rubygems のテストの追加と 89c8b8d3799f4cb41d4b210f2c8ebdaba44505d4 と同様の捕捉例外追加と socket を close する後始末を ensure 節にする修正。

[07684367ab] Hiroshi SHIBATA 2026-09-17 21:50:56 UTC

rubygems のテストのダミーサーバーの捕捉例外クラスの追加。

[ead87e3e14] Hiroshi SHIBATA 2026-09-17 21:52:28 UTC

rubygems の WebAuthN 対応で OTP 取得のレスポンスが得られなかった時に例外で落ちてしまっていたのを例外捕捉して次の接続を待つようにしています。

[3ee17ab904] Jeremy Evans 2026-09-13 16:13:25 UTC

テスト用の test/unit でメソッド再定義時に alias で元メソッドを退避していたのをやめています。今後追加される警告抑制のため。

[1c13d07cfc] Jeremy Evans 2026-09-13 15:56:23 UTC

Module#prepend で追加された Module 内のメソッドに対して alias や Module#alias_method で alias を作成した時に deprecated 警告を出すようにしています。 昨日の 1c0b1be076437e618a331726a5334d77c892bc6e での Kernel で定義されたメソッドの alias を警告するのと同様 ancestors に登場しない Module のメソッドを呼び得るからということみたいです。 [ruby-core:126530] [Bug #22273]

[abac8a5b6e] Jeremy Evans 2026-09-13 16:31:47 UTC

1c13d07cfca130ae3c0631d24ef21680099c02a7 の警告追加に伴なって test-all および rubyspec の alias の利用を修正しています。

[e755b92a3f] Luke Gruber 2026-09-15 21:57:00 UTC

T_DATA 型オブジェクトの dfree 関数の呼び出しを遅延させて Ractor ごとのリストに溜めておいて一定サイズごとに VM barrier で Ractor の動作を止めてまとめて解放するようにしています。

[51b39ee205] Hiroshi SHIBATA 2026-09-18 01:26:41 UTC

rubygems で Gem::Installer#verify_spec で spec.version のパターンをチェックして不正なスクリプトが gemspec に埋め込まれるのを防ぐようにしています。

[b14e047fe6] Hiroshi SHIBATA 2026-09-18 01:42:09 UTC

bundler の man ページおよび help メッセージの --major オプションの説明を修正しています。

[4418201031] Hiroshi SHIBATA 2026-09-16 10:25:40 UTC

rubygems と bundler の不要になった古い ruby 向けの対応を削除しています。

[49df617361] Hiroshi SHIBATA 2026-09-16 10:27:20 UTC

rubygems および bundler の古い openssl のバージョンの対応を削除しています。

[2ec3ef4ae1] Hiroshi SHIBATA 2026-09-16 10:28:05 UTC

rubygems の古い psych のバージョンに対応するための workaround を削除しています。

[0772e42d04] "dependabot[bot]" 2026-09-18 02:11:43 UTC

GitHub Actions の workflows で利用しているアクションのバージョンを更新しています。

[5a8c2ac227] git 2026-09-18 02:36:48 UTC

NEWS の default gems の更新履歴を更新しています。

[1d24919a8b] Hiroshi SHIBATA 2026-09-16 10:43:40 UTC

rubygems で URI の https://TOKEN:@host/ が password を空文字列として解釈するので redacted で TOKEN が残るのを修正しています。

[f9d2cd31e5] Hiroshi SHIBATA 2026-09-16 10:45:35 UTC

rubygems で URL に不正な文字列が指定された時に NoMethodError でエラーになり本来のエラーが発生しない不具合を修正しています。

[8d02a19352] Hiroshi SHIBATA 2026-09-16 10:49:45 UTC

rubygems の Gem::RemoteFetcher#fetch_http でリダイレクト処理、Location ヘッダの扱いの不具合などを compact_index_client と揃えるよう修正しています。

[c914aeb622] Peter Zhu 2026-09-18 00:12:39 UTC

String#encode のコールバックの Proc から receiver の文字列オブジェクトが破壊的変更が行われると異常終了する可能性があった不具合を RSTRING_PTR()/RSTRING_LEN() を取り直して変更がないかチェックして例外発生させるようにして対処しています。 [ruby-core:126760] [Bug #22330]

[c55886f946] Luke Gruber 2026-08-28 15:25:01 UTC

GC の defaualt GC で finalizer の管理用リストの操作で Ractor Local GC の導入で VM lock が不要になってたので削除しています。

[11f6d3d68b] Samuel Williams 2026-09-18 03:36:26 UTC

拡張ライブラリ socket の BasicSocket#close_write で rb_io_flush() の呼び出しを追加して shutdown() 前にバッファ内容を書き出すようにしています。 https://github.com/ruby/ruby/pull/18900

[9a9f3827c5] Peter Zhu 2026-09-17 23:22:38 UTC

String#[]= で引数の to_str での変換時に receiver の文字列オブジェクトを破壊的変更すると異常終了する可能性があったので RSTRING_LEN() を再取得してチェックして変化してたら例外発生させるようにしています。

[801d2011b0] Hiroshi SHIBATA 2026-09-18 03:39:20 UTC

rubygems の Ruby::Box 利用時に $stdout/$stderr の利用ができないために skip していたテストを復活させています。

[21a472e830] Hiroshi SHIBATA 2026-09-18 04:14:54 UTC

rubygems の Gem::AtomicFileWriter で vendored_securerandom を require する際に defined? で定数の存在チェックしていたのをやめています。他の Thread でロード中の時に中途半端な Gem::SecureRandom が見えてしまう可能性があるので require/load の排他処理にまかせるようにしています。

[3b26b00315] Samuel Williams 2026-09-18 05:27:53 UTC

sync モードの IO で IO#write に複数の引数を渡した時に IOV_MAX を越えているとバッファに残したままになっていたので、sync モードの動作をさせるため flush しておくようにしています。 この関数(io_binwritev())内では sync モードの分岐はないですが、そもそもこの関数の呼び元は 1つで、そこにくるのは sync モードの時だけなので無条件で flush してもいいということみたいでした。 https://github.com/ruby/ruby/pull/18905

[ab5d140de8] Peter Zhu 2026-09-18 04:21:21 UTC

String#slice! でも引数の to_int メソッドでの変換呼び出し時に receiver の文字列オブジェクトが破壊的変更が行なわれると異常終了する可能性があったので変換後に RSTRING_LEN() を再取得するように修正しています。

[1c391ebaeb] Samuel Williams 2026-09-18 06:56:43 UTC

IO の finalizer での処理でバッファの flush を呼んでいたのを sync モードに設定されている時はやめています。ちょっと意外というか逆のような気がしてしまいますが、sync モードの時にバッファに入っているというの自体がおかしいのでそれを書き込まないほうがよいということみたいです。なんとなくこの変更をしていて 3b26b003152542a75e71a5431d72951538d9f1f2 でのバッファに残る不具合をみつけて修正したということかなという気がしますね。 https://github.com/ruby/ruby/pull/18902

[f626f5523c] Jean Boussier 2026-09-17 17:00:46 UTC

string.c の String#tr の SIMD 対応まわりの未初期化変数の警告の誤検出の抑制のため、ループカウンタのローカル変数への代入を追加しています。

[7b2c30d63a] Jean Boussier 2026-09-18 07:30:50 UTC

同じく String#tr の SIMD 命令対応でループ上限を格納する変数の型を unsigned にして不要な assertion を削除しています。

[66c1d1970e] Peter Zhu 2026-09-18 04:46:42 UTC

GC の mmtk 実装の NoGC 実装利用時に環境変数 MMTK_HEAP_MODE の "cpu" や "ruby" という指定は無意味なので "fixed" に fallback させています。

[85611dc266] Nobuyoshi Nakada 2026-09-18 11:18:01 UTC

rb_class_inherited_p()、rb_class_superclass()、rb_intern_const() の 3つの関数の prototype 宣言に RBIMPL_ATTR_PURE() という attribute 指定のマクロを使っていたのですが、これらの関数は副作用をもっているため RBIMPL_ATTR_NOALIAS() に変更しています。 [ruby-core:126742] [Bug #22324]

ruby-trunk-changes 2026-09-17

今日は主に Ractor shareable なオブジェクトへのインスタンス変数セットを禁止する仕様変更や標準添付ライブラリ resolv の不具合修正とバージョン更新などがありました

[c402c18fe5] Ojus Chugh 2026-08-31 16:04:51 UTC

拡張ライブラリ json のテストで JRuby 向けに skip していたテストの skip を解除しています。

[793888fe22] Jean Boussier 2026-09-16 14:14:53 UTC

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

[f2f53ccbe3] git 2026-09-16 14:21:47 UTC

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

[55562be3de] Aaron Patterson 2026-09-16 16:27:13 UTC

ZJIT の中間表現 HIR の最適化処理で CheckInterrupts 命令の重複を解消する処理の実装で最後の 1つを残すように変更してより最適化しやくなる? ようにしています。 https://github.com/ruby/ruby/pull/18774

[73055acd57] John Hawthorn 2026-09-03 17:14:59 UTC

Ractor shareable なオブジェクトへのインスタンス変数のセットは禁止して書き込み時点で Ractor::IsolationError を発生させるようにしています。これまでは設定はできて参照する時に shareable でないオブジェクトだったら例外が発生するという状態だったようです。 [ruby-core:126569] [Bug #22291]

[6bae4d8e5f] John Hawthorn 2026-09-16 05:59:18 UTC

Proc オブジェクトにインスタンス変数が設定されていたら Ractor shareable にできないようにしています。

[18ac8cd1d5] Rafael Mendonça França 2026-09-16 21:16:03 UTC

ZJIT の Rust 実装の perf によるプロファイル対応のリファクタリング。

[3f6143715a] Peter Zhu 2026-09-16 11:49:09 UTC

Array#values_at で引数に Range オブジェクトを渡すと範囲を取得するために begin, end メソッドを呼び出すため、このメソッドが再定義されていたり実施には Range ではないけど begin/end メソッドに反応するオブジェクトの場合に任意の ruby スクリプトが動く可能性があり、ここで receiver の Array オブジェクトのサイズ変更すると異常終了する可能性があったので修正しています。

[548b5abc1e] Przemysław Buczkowski 2026-09-16 17:48:12 UTC

signal.c で SIGSEGV 発生時にスタックオーバーフローによるものかどうかの判定のための preprocessor 分岐で OS が Haiku の時にビルドエラーになっていたのを修正しているようです。

[16abdbdf18] Peter Zhu 2026-09-17 00:12:46 UTC

String#setbyte メソッドで引数に to_int メソッドを呼んで変換する時に任意 ruby コードが実行され得るのでそこで receiver の Strign が破壊的変更を行なわれると異常終了する可能性があったので RSTRING_LEN() で文字列バッファのサイズを得るのを to_int 呼び出しの後に移動しています。

[b06e76429c] "dependabot[bot]" 2026-09-17 02:10:18 UTC

GitHub Actions の workflows で利用しているアクションのバージョンを更新しています。

[e6ec155544] git 2026-09-17 02:33:06 UTC

NEWS の bundled gems の更新履歴の更新。

[48c7a6ae3d] Oskar Eichler 2026-08-27 19:45:27 UTC

標準添付ライブラリ net/protocol の Net::BufferedIO#read メソッドの引数のサイズが負の数だったら ArgumentError 例外ですぐエラーにするようチェックを追加しています。

[6c50cf8a00] Hiroshi SHIBATA 2026-09-17 03:05:22 UTC

標準添付ライブラリ net/protocol のテストに 48c7a6ae3dfbce373e97d5eb34df4f6c2972bf96 に対応したテストを追加しています。

[d9c88e8428] Oskar Eichler 2026-08-27 19:45:28 UTC

標準添付ライブラリ net/protocol の Net::BufferedIO#write0 という内部メソッドで TLS のサポートのため? IO#write_nonblock が :wait_readable という Symbol を返した時のケースをサポートするようにしています。

[4de9409323] Hiroshi SHIBATA 2026-09-17 03:06:37 UTC

標準添付ライブラリ net/protocol のテストに d9c88e842858f4cc9e1c7974baf5d26574a0e2ee に対応したテストを追加しています。

[550591bb5a] Oskar Eichler 2026-08-27 19:45:29 UTC

標準添付ライブラリ net/protocol の Net::InternetMessageIO でデバッグログの On/Off の制御が例外などの大域脱出で壊れるのを修正するため ensure 節での復帰を行うように修正しています。

[3ec14b6cf2] Hiroshi SHIBATA 2026-09-17 03:08:20 UTC

標準添付ライブラリ net/protocol のテストに 550591bb5a16adf515b812ce7478688ba958f1a8 に対応するテストを追加しています。

[028dcaa3c9] Hiroshi SHIBATA 2026-09-17 03:29:26 UTC

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

[6dabc1cfb3] git 2026-09-17 03:31:00 UTC

NEWS の default gems のバージョンリストの net-protocol のバージョンも 0.4.0 に更新しています。

[1c0b1be076] Shugo Maeda 2026-09-10 09:15:36 UTC

alias や Module#alias_method でメソッドの alias 定義しようとした時にそのメソッドが Object のメソッドだった時に $VERBOSE 設定時に警告を出すようにしています。はてなぜかな、と思ったのですが BasicObject を継承したクラスに Kernel で定義されたメソッドを alias したメソッドエントリをもつ Module を include してその alias メソッドを呼ぶと、Kernel は ancestors に含まれないクラスのインスタンスなのに Kernel のメソッドが呼ばれるというおかしな状態が作れてしまうので将来的にはこれを禁止したいということみたいです。 [ruby-core:126537] [Bug #22276]

[159000ede4] Nobuyoshi Nakada 2026-09-17 04:01:03 UTC

GitHub Actions の shadow stack 対応の coroutine テストの workflow にドキュメント変更のみの時に skip する設定を追加しています。

[b9d4fd7108] Nobuyoshi Nakada 2026-09-17 03:59:00 UTC

rb_typeddata_inherited_p() の Doxygen 用コメントに古くなったコメントがあったので削除しています。 [ruby-core:126741] [Bug #22323]

[ece2ae9c89] Kazuki Yamaguchi 2021-03-26 07:52:08 UTC

標準添付ライブラリ resolv のテストに Resolv::DNS::Config の ndots についてのテストを書き直してチェックを強化しています。

[d87481678a] Kazuki Yamaguchi 2021-03-26 09:09:41 UTC

標準添付ライブラリ resolv で search リストが無く、ホスト名にもドメインが無いときにリクエストを重複して送信していたのを修正しています。

[d7b25641a5] Kazuki Yamaguchi 2021-03-26 09:00:52 UTC

標準添付ライブラリ resolv の可読性のためのリファクタリング。

[f4e25e08ce] Hiroshi SHIBATA 2026-09-17 04:41:43 UTC

標準添付ライブラリ resolv の Resolv::DNS::Config#generate_candidates で重複した結果を返さないように Array#uniq を追加しています。

[e7d0f914ef] Hiroshi SHIBATA 2026-09-17 04:53:56 UTC

標準添付ライブラリ resolv のテストのヘルパーメソッドを導入するリファクタリング。

[85ca639fef] Hiroshi SHIBATA 2026-09-17 04:58:44 UTC

標準添付ライブラリ resolv で複数の nameserver にリクエストを投げている時にひとつのソケットの切断で全体がエラーになってしまうケースがあったので例外を捕捉して他のサーバーに fallback するようにしています。

[9099b5f81a] Hiroshi SHIBATA 2026-09-17 05:30:52 UTC

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

[91810913bd] git 2026-09-17 05:32:32 UTC

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

[22fda5cc52] git 2026-09-17 07:00:46 UTC

NEWS の default gems の更新履歴を更新しています。

[11f57c63e7] Peter Zhu 2026-09-17 01:23:00 UTC

Array#sample の実装でも引数に渡されたサイズを to_int メソッドの呼び出しで変換する時に任意の ruby コード実行される可能性があり receiver の Array が破壊的変更が行なわれる可能性があったのでサイズチェックを……と思ったのですが RARRAY_LEN() の取り直しはしていて、その後のループ内の乱数によるインデックスのチェックで -1 しているだけで、これでいいのかな? コミットログをみると len-i を上限とするとあるけど実際の差分は len-1 になっているので、typo かも?

[cf5f81a899] Hiroshi SHIBATA 2026-09-17 07:59:05 UTC

tool/sync_default_gems.rb で拡張ライブラリ json の同期処理時に depend ファイルは同期しないようにしています。 ruby 本体の depend は upstream にはないので削除されてしまうのを抑制するため。

[7860a3bfc7] Hiroshi SHIBATA 2026-09-17 07:50:55 UTC

tool/sync_default_gems.rb で upstream のリポジトリの working copy に ruby-core というブランチを作っていたのが不要になっていたので削除しています。

[f6c2489bfc] Hiroshi SHIBATA 2026-09-17 08:11:38 UTC

7860a3bfc77b30cbd7bf6da1dd11387be67fd645 に対応した tool/sync_default_gems.rb のテストを追加しています。

[41c9fdd65c] Peter Zhu 2026-09-17 09:58:14 UTC

String#tr の Hash 引数での指定の SIMD 命令対応で未初期化変数の警告の抑制のため明示的な初期化を追加しています。実際には誤検出だったようです。

ruby-trunk-changes 2026-09-16

今日は主に macOS の最新の SDK でのビルド対応や Array のメソッド等で処理中に任意 ruby スクリプトが動くポイントを越えてポインタや配列サイズを再取得していないため異常終了する可能性があった不具合の修正群などがありました。

[6bfde8d2a2] Nobuyoshi Nakada 2026-09-15 11:09:14 UTC

macOS の最新版の SDK でのビルドエラー修正。 macOS の 27 de新規追加されたシステムコール? の dup3(), pipe2() の存在チェックをしてない時には dup2(), pipe() に fallback するようにしています。 configure でのチェックでなくて io.c で直接 preprocessor を駆使しているのはなぜだろう。 [ruby-core:126678] [Bug #22311]

[95bd25ed27] Charles Oliver Nutter 2026-09-15 07:48:08 UTC

標準添付ライブラリ resolve で require "io/wait" を古い ruby でのみ実行するよう RUBY_VERSION のチェックを追加しています。

[16fd986706] Charles Oliver Nutter 2026-09-15 07:43:44 UTC

標準添付ライブラリ net/protocol でも require "io/wait" を古い ruby でのみ実施するように RUBY_VERSION のチェックを追加しています。

[a590a7051f] Earlopain 2026-09-15 18:00:01 UTC

標準添付ライブラリ syntax_suggest の rdoc 用のドキュメント化を抑制する :nodoc: タグなどを追加してごく一部を除いて全体的にドキュメント化しないようにしています。

[43cd8cc121] Max Bernstein 2026-09-15 20:53:41 UTC

ZJIT の中間表現 HIR の StoreField 命令の副作用の annotation をメモリの書き込みに絞ってより最適化されやすくしています。 https://github.com/ruby/ruby/pull/18764

[98d4482408] Peter Zhu 2026-09-15 02:19:11 UTC

Hash の ar_hash 実装の時の hint の実装で未初期化メンバーの参照で異常終了する可能性があった不具合を修正しています。

[cce5b24fcd] Eric Mueller 2026-07-15 22:31:16 UTC

bundler の bundle outdated --groups の出力を最後に gem 名で並べ直していたため、グループ分けが消えていたので --groups 指定時はこの並べ直しを抑制しています。

[569616185a] Hiroshi SHIBATA 2026-09-15 09:09:27 UTC

cce5b24fcd26e84d20e38fb58886b89bc42f62b0 の bundler の修正で bundle outdated --groups 指定時の gem の表示順序が壊れていたのを修正。

[fc2bbe0777] Hiroshi SHIBATA 2026-09-15 09:10:05 UTC

さらに cce5b24fcd26e84d20e38fb58886b89bc42f62b0 の再修正。 bundler の bundle outdated --groups の表示順のグループごとの表示を修正しています。

[7ae0025b67] Hiroshi SHIBATA 2026-09-15 09:12:08 UTC

bundler の bundle outdated --groups でグループに所属しない gem を最後に回すように再修正。

[685144e3d6] Peter Zhu 2026-09-15 02:41:33 UTC

String#upack にブロック渡しで呼び出した時にブロックから receiver の文字列オブジェクトを破壊的変更が行なわれると異常終了する可能性があったのでブロックを呼び出すたびに再度 RSTRING_PTR() をチェックするようにしています。 [ruby-core:126719] [Bug #22315]

[0153838f47] Hiroshi SHIBATA 2026-09-15 09:24:40 UTC

rubygems の gem build --platform にローカルの platform を指定すると、ruby platform の gem ができていたので、指定の通りの platform の gem を作るように修正しています。 https://github.com/ruby/rubygems/issues/9344

[ca34d4b3c2] Hiroshi SHIBATA 2026-09-15 09:38:51 UTC

bundler で git source の利用時に の safe.bareRepository=explicit の設定が行われていると bare リポジトリの指定には --git-dir オプションを使うようにしてエラーを修正。 https://github.com/ruby/rubygems/issues/7515

[0b8e0b1c28] Hiroshi SHIBATA 2026-09-16 00:34:09 UTC

rubygems に vendoring している net/http がさらに resolv を vendoring していたのを、必要な IP アドレス判定用の正規表現のみ埋め込むことで resolv の vendoring を解除しています。 https://bugs.ruby-lang.org/issues/22317

[e60ce574f0] Hiroshi SHIBATA 2026-09-16 00:54:27 UTC

0b8e0b1c28bc839095e2c0e884313f0f5ef1fc53 で rubygems の間接的な resolv の vendoring をやめたために Gem::AtomicFileWriter で明示的な require "securerandom" が行なわれ default gem を使うようになっていたので、vendoring されている Gem::SecureRandom を利用するように変更しています。

[e0d7be5395] Hiroshi SHIBATA 2026-09-15 23:51:20 UTC

rubyspec で配列などの確保するサイズの上限をチェックするための数値を Fixnum の上限や C の long のサイズ上限から計算していたのをポインタサイズを基準にした数値を計算するように修正しています。 主に Windows の LLP64 では long がポインタより幅が小さいので確保できてしまいテストが失敗するため。

[8d2b32d8a5] Hiroshi SHIBATA 2026-09-16 01:21:12 UTC

e0d7be539582c5d17a74491618290950714823e3 の追加修正で rubyspec の大きすぎるサイズ指定時に許容する例外に RangeError も追加しています。 LLP64 環境では NUM2LONG() での変換時点で RangeError が発生するため。

[94f5f02bab] Samuel Williams 2026-09-16 03:02:57 UTC

GitHub Actions に coroutine の amd64 での shadow stack 対応のテストをするための workflow を追加しています。 https://github.com/ruby/ruby/pull/18778

[5eeaedc3d3] Peter Zhu 2026-09-16 01:17:37 UTC

Array#flatten で内部的に #to_ary メソッドを呼んだ時にフックなどが動いて対象の Array のバッファ変更が起きると use-after-free が起きる可能性があった不具合を修正しています。 RARRAY_LEN() の再チェックを追加しています。 [ruby-core:126730] [Bug #22318]

[fb02f6ead2] Hiroshi SHIBATA 2026-09-16 02:40:49 UTC

hash.c で #ifdef RUBY_DEBUG を #if RUBY_DEBUG に修正。

[ab845a8b7d] Hiroshi SHIBATA 2026-09-16 02:58:22 UTC

imemo.c でも #ifdef RUBY_DEBUG を #if RUBY_DEBUG に修正。

[5d8cb984a2] Ben Sheldon 2026-09-16 03:57:48 UTC

doc/language/ractor.md の typo 修正。

[578e8a09cd] Hiroshi SHIBATA 2026-09-16 04:06:08 UTC

bundler のテストの修正。

[e22f51b780] Hiroshi SHIBATA 2026-09-16 02:36:14 UTC

enc/make_encmake.rb で File.basename の結果のチェックに "/" が含まれていて絶対一致しない条件になっていたので修正しています。

[0c9f3f1e68] Peter Zhu 2026-09-16 01:52:30 UTC

Array#zip の実装でも #to_ary メソッドの呼び出し時にフックなどで元の receiver の配列の破壊的変更があると異常終了する可能性があった不具合を修正しています。 ループで毎回 RARRAY_LEN() で長さを取り直すように修正。 [ruby-core:126731] [Bug #22319]

[55985cf162] git 2026-09-16 07:00:14 UTC

NEWS の default gems の更新履歴の RubyGems の履歴を更新しています。

[d8d75cee41] Nobuyoshi Nakada 2026-09-16 06:03:52 UTC

String#bit_set、#bit_clear、#bit_flip メソッド群で、長さのチェック前に frozen チェックを行い chilled string への警告をが Warning.warn でフックされて任意 ruby スクリプトが動く余地を潰すため。このため frozen でかつ範囲外の指定をしたときの例外が IndexError から FrozenError に変化します。 [ruby-core:126720] [Bug #22316]

[1e16b651ca] Hiroshi SHIBATA 2026-09-16 02:36:01 UTC

コマンドラインオプション処理の関数での不要な変数の削除。

[d59deed82d] Hiroshi SHIBATA 2026-09-16 08:54:08 UTC

tool/sync_default_gems.rb で test-unit-ruby-core も prerelease 版のチェックは無視するようにしています。

[fe24147a62] Hiroshi SHIBATA 2026-08-26 07:03:50 UTC

標準添付ライブラリ resolv のテストで 5ee95de080a2ec3a991ea1a958c1a4793672df48 などで修正済の不具合に対応したテストを追加しています。

[20a24c00e3] Hiroshi SHIBATA 2026-08-26 07:04:05 UTC

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

[0c579be49b] git 2026-09-16 09:28:55 UTC

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

[50e414bbc5] Hiroshi SHIBATA 2026-09-16 09:06:07 UTC

tool/sync_default_gems.rb で test-unit-ruby-core の同期処理のファイルの対応付けをより詳細にしています。ディレクトリ単位の指定だと rm_rf で削除するので消しすぎてしまうため。

[4e029dfbac] Hiroshi SHIBATA 2026-09-16 09:24:13 UTC

tool/sync_default_gems.rb で 同期してきたバージョンが rubygems.org の最新より新しい(まだリリースされていない)場合、自動的に version に .dev を追加するようにしています。

[f85f15293e] Nobuyoshi Nakada 2026-09-14 07:15:40 UTC

拡張ライブラリ io/console の extconf.rb で win32_vk.mk が存在しない時に読もうとしないようにしています。 gperf がインストールされている環境だとビルド時に自動生成しようとするけど gem パッケージには win32_vk.mk が含まれないためとのこと。

[bca8e0d15a] Nobuyoshi Nakada 2026-09-14 11:05:03 UTC

拡張ライブラリ io/console のバージョンを 0.9.3 に更新しています。

[30ded5b167] Hiroshi SHIBATA 2026-09-16 09:40:35 UTC

doc/stringio/gets.rdoc 内のリンクを絶対 URL から rdoc-ref による相対リンクに変更しています。

[caa4462490] git 2026-09-16 09:41:49 UTC

NEWS の default gems のバージョンリストの io-console のバージョンも 0.9.3 に更新しています。

[226f37012d] Nobuyoshi Nakada 2026-09-16 10:39:20 UTC

fe24147a6224399a611826ad5beedf34e48cc18c で追加した標準添付ライブラリ resolv のテストを revert しています。既に追加済みだった模様。

[20ca4e1f64] Nobuyoshi Nakada 2026-06-11 16:00:28 UTC

Encoding::Converter が引数に渡された Encoding の名称の C の文字列をそのまま構造体に格納していたため呼び元で解放後に use-after-free を起こす可能性があったので解決した transcoder_entry_t に保持されている文字列を参照するように修正しています。 [ruby-core:126738] [Bug #22322]

[d38952c45e] Peter Zhu 2026-09-16 08:18:53 UTC

UnoundMethod#bind で作った Method オブジェクトに対して Method#inspect した時に RUBY_DEBUG を有効化した時の assertion で異常終了してしまっていたので T_ICLASS を skip する処理を追加して修正しています。 [ruby-core:126737] [Bug #22321]