ruby-trunk-changes 2026-05-18

今日は主に複数 Ractor 利用時のクラス変数の扱いの不具合修正やcase 文の最適化のための内部的なオブジェクト cdhash の実装の T_IMEMO 化などの変更がありました。

[6bc1aa31cc] Peter Zhu 2026-05-17 02:02:32 UTC

rb_cvar_set() で複数 Ractor 利用時にクラス変数のキャッシュの複製がきちんと作られていなかったため異常終了する可能性があった不具合を修正しています。 [ruby-core:125518] [Bug #22072]

[5eb4284144] Jean Boussier 2026-05-17 10:35:47 UTC

rb_class_path_cached() という C API を利用していたところは rb_mod_name() で代替するようにしています。元々は rb_mod_name() が遅かったので別の関数が用意されていましたが今は単に rb_mod_name() を呼ぶだけの wrapper 関数となっていたので廃止しようとしているようです。

[aed64ade9d] Jean Boussier 2026-05-17 11:06:51 UTC

構造体 rb_vm_t の GC の mark root として使うための global_object_list を linked list として定義していたのを配列として保持するようにしています。

[74c3696d59] Jean Boussier 2026-05-17 17:43:23 UTC

debug_counter.h のカウンタに obj_imemo_subclasses という項目を追加して imemo_subclasses タイプの T_IMEMO 型オブジェクトの解放時にインクリメントするようにしています。確保時じゃなくて開放時なんだな。

[cfff91a3b0] Peter Zhu 2026-05-17 12:32:21 UTC

GC の mmtk 実装の Ractor デバッグ用に struct RVALUE の末尾に追加するメモリ領域に関するマクロ定義を昨日 gc/gc.h に移動した共通のものを使うようにリファクタリングしています。

[837f684377] Jean Boussier 2026-04-28 06:56:06 UTC

内部的に多用している st.c の st_table 構造体の bins メンバーを削除して構造体サイズを削減しています。 st_table::entries の配列の末尾に bins も繋げるレイアウトにしたため不要になったもののようです。

[3f51506cff] Jeremy Evans 2026-05-16 17:57:14 UTC

rubygems でエラーメッセージなどで例示する依存関係から "~>" によるバージョン指定の表記をやめるようにしています。

[95626e3a9c] himura467 2026-05-17 10:31:18 UTC

IO::Buffer#| が既に親のバッファが解放された IO::Buffer#slice で生成された IO::Buffer について呼ばれた時の不正アクセスの不具合を修正しています。

[b38f133c70] Nobuyoshi Nakada 2026-05-18 05:42:02 UTC

io_buffer.c の memory_xor() および memory_not() の引数に const 修飾子を追加しています。 警告抑制?

[99dc513d15] Jean Boussier 2026-05-17 12:40:14 UTC

case 文の最適化のために作られる内部的な Hash の cdhash を Hash オブジェクトの実装を使っていたのを T_IMEMO 型のオブジェクトのタイプとして追加しています。Hash の実装が最適化のため小さいサイズの時に ar_hash になると cdhash として使えないため強制的に st_hash にしないといけなかった複雑性の回避と、結果的に必要なメモリサイズの削減になるため。

[d036506b15] Jean Boussier 2026-05-17 20:08:10 UTC

99dc513d155484a1291394e953a5cdfd6dab92e1 の続きで case 文の最適化のための cdhash でジャンプオフセットを保持する整数を Fixnum として持つ必要がなくなったので st_data_t 型をそのまま保持するようにしています。

[e4e1c92a1d] Jean Boussier 2026-05-18 09:17:24 UTC

d036506b15e0fe34a36b00cfd461d409b1fcc97d で case 文の最適化のための cdhash の値が st_data_t 型をそのまま保持するようにしたので必要なところで Fixnum に変換する必要があったのが漏れていたり、cdhash が Hash 実装でなくなったので rb_hash_foreach() と st_foreach() に変更する必要があったのが漏れてたりしたのを修正しています。

ruby-trunk-changes 2026-05-17

今日は主に Refinements と Module#include の組み合わせ利用時の super に関する仕様変更? やドキュメントの変更などがありました。

[1a0bf682a7] Burdette Lamar 2026-05-16 13:18:39 UTC

Pathname#absolute? の rdoc 用コメントのサンプルで Pathname.new のかわりに Kernel#Pathname() を使うようにしています。 https://github.com/ruby/ruby/pull/16980

[70a976bb60] BurdetteLamar 2026-05-15 14:09:03 UTC

Pathname#birthtime の rdoc 用コメントのサンプルの手直し。

[4c0b571783] a5-stable 2026-05-16 11:51:25 UTC

ZJIT で side-exit の統計情報を取るカウンタからもう不要になったものを削除しています。

[ad14155467] Peter Zhu 2026-05-16 13:19:05 UTC

Ractor のデバッグのため RB_GC_OBJ_HAS_SUFFIX を真にしてコンパイルしている時に struct RVALUE に追加のフィールドを追加するための型を gc/gc.h で定義するようにしています。 mmtk でも使いまわすためかな。

[9736b7ab56] Jeremy Evans 2026-05-15 19:01:42 UTC

Refinements でメソッドを上書きしている Module を include したクラスのメソッドでの super の呼び出しは NoMethodError 例外を発生させるようにしています。 [ruby-core:125511] [Bug #22071]

[21cee84bd3] BurdetteLamar 2026-05-16 16:17:21 UTC

Pathname#blockdev? の rdoc 用コメントのマークアップを markdown に変更しています。

[3fbd1c8b86] BurdetteLamar 2026-05-16 16:37:55 UTC

Pathname#chardev? の rdoc 用コメントのマークアップを markdown に変更しています。

[c4df75dc02] BurdetteLamar 2026-05-16 17:23:19 UTC

pathname_builtin.rb の行末の空白除去。

[8f0c2ee8d6] BurdetteLamar 2026-05-16 17:41:39 UTC

Pathname.chmod の rdoc 用コメントのマークアップ変更およびサンプルの修正。

[fb3a8063f8] Burdette Lamar 2026-05-16 19:30:49 UTC

Pathname#chown のマークアップ変更およびサンプルコードの修正。

[ec4954c1f9] BurdetteLamar 2026-05-16 18:30:06 UTC

Pathname#cleanpath の rdoc 用コメントのマークアップの変更とリンクの追加。

[ded07a7d92] Peter Zhu 2026-05-16 16:31:14 UTC

GitHub Actions の Windows 版 workflow の scoop でインストールする uutils-coreutils のバージョンを固定していたのを解除しています。

[ba43e07c12] Peter Zhu 2026-05-16 19:32:51 UTC

GitHub Actions の Windows 版 workflow で Windows 11 ARM 版でのビルドをコメントアウトして除外しています。 scoop での依存ライブラリインストールがそもそもうまくいかないみたいです。

[5db2323fee] Jeremy Evans 2026-03-31 23:36:08 UTC

Set#to_set の rdoc 用コメントの削除した引数についての記述を削除しています。

[08f2bc1d4c] Burdette Lamar 2026-05-16 22:01:24 UTC

Pathname#children の rdoc 用コメントの手直し。

[71749b8826] Peter Zhu 2026-05-16 14:12:40 UTC

Ractor のデバッグのために struct RVALUE の末尾のフィールドを追加するデバッグビルド用のマクロ RB_GC_OBJ_HAS_SUFFIX が #ifdef でチェックされてたので gc/gc.h で未定義なら 0 に定義するようにして #if 値でチェックするようにしています。

[aa29a6a7e8] Nobuyoshi Nakada 2026-05-17 00:17:33 UTC

GitHub Actions の Windows 版 workflow の ded07a7d929dea4457e1c5c1466f34e7f5a8cd46ba43e07c12093273e46630c55e93c7491dbbd372 の Windows 11 ARM 版を除外する変更を revert しています。

[da1bc28291] Nobuyoshi Nakada 2026-05-16 18:39:43 UTC

GitHub Actions の Windows 版 workflow の scoop での uutils-coreutils のインストールをそもそもやめて、利用していた comm.exe の代替を PowerShell で書くようにしているようです。

[a4a311d1bc] Nobuyoshi Nakada 2026-05-16 19:58:41 UTC

GitHub Actions の Windows 版 workflow で vcpkg を scoop でインストールするのは manifest モードというのに対応しているバージョンを利用するためみたいで、既に対応していたら scoop でのインストールはスキップするようにしています。

[716be73e1c] "NARUSE, Yui" 2026-05-17 03:18:32 UTC

リリース作業用のスクリプト tool/format-release で差分の元となるタグをバージョンから自動で判定していますが明示的に commit hash などで指定できるようにしています。

[5037a32061] Nobuyoshi Nakada 2026-05-17 02:45:57 UTC

GitHub Actions の Windows 版 workflow で --vcpkg-root オプションを指定していたのを削除してデフォルトのフォルダを利用するようにしています。

[c17d5b05ac] Stan Lo 2026-05-17 11:32:32 UTC

common.mk の ext/configure-ext.mk の依存関係に extract-gems を追加しています。 また gems/bundled_gems の rdoc のテストに使う commit hash の指定を更新しています。

ruby-trunk-changes 2026-05-16

今日は ZJIT の使用メモリ削減の最適化などがありました。

[547a7b8d1a] Benoit Daloze 2026-05-15 18:28:03 UTC

prism の Doxygen 用コメントに -x オプションについての記述を追記しています。 https://github.com/ruby/prism/pull/4110

[985fa1bdaa] Takashi Kokubun 2026-05-15 19:44:42 UTC

ZJIT で C 関数呼び出し時に JITFrame の構造体をヒープから毎回確保していたのをやめています。 C 関数呼び出し時は JITFrame の内容は固定で良いため静的領域に用意しておいて同じメモリを使いまわすようにしています。 https://github.com/ruby/ruby/pull/16988

[9bd9f262de] Stefan Friesel 2026-05-15 21:10:03 UTC

Time クラスの rdoc 用コメントの typo や英文法の修正。 https://github.com/ruby/ruby/pull/16986

[c1f48f4a1b] Peter Zhu 2026-05-14 00:58:38 UTC

Module#class_eval、Module#module_eval の rdoc 用コメントのサンプルを強化するなどの手直し。

[a4c655e202] Jeremy Evans 2026-05-14 15:43:08 UTC

doc/syntax/refinements.rdoc の Refinements の Module#include に関する記述が古い仕様のままだったので修正しています。

[f315ca67ee] Peter Zhu 2026-05-16 00:20:31 UTC

GC の mmtk 実装でオブジェクト割り当て時のメモリアライメントが考慮されない不具合の修正。

[7480cd8d37] Nobuyoshi Nakada 2026-05-16 01:59:38 UTC

bf01f6ae89a95d8f5572e050facfe311c8c28aaf の誤ってインデント修正を revert した変更を revert しています。

[30bb8246d4] Nobuyoshi Nakada 2026-05-16 02:06:02 UTC

.git-blame-ignore-revs に 7480cd8d37fd71a41ce12b759090051c7e14fb5a の revert の commit hash を追記しています。

[b2db5a9da5] Nobuyoshi Nakada 2026-05-13 10:23:46 UTC

GitHub Actions の WASM 版 workflow で configure に --disable-install-doc オプションを追加しています。また C API のテスト用の拡張ライブラリのビルドをスキップするようにしているようです。

[a14260294f] Nobuyoshi Nakada 2026-05-13 12:14:23 UTC

GitHub Actions の WASM 版や cross compiling 用の workflows で BASERUBY のセットアップを行う処理を専用のアクションとして .github/actions/setup/baseruby/action.yml に分離して後処理も追加しています。

[0cebfe9474] Nobuyoshi Nakada 2026-05-13 15:39:53 UTC

GitHub Actions の cross compiling を行う workflow で apt-get でパッケージをインストールする処理を独自アクションの .github/actions/setup/ubuntu/action.yml を利用するようにしています。

[3edf47de50] Nobuyoshi Nakada 2026-05-16 04:16:52 UTC

GitHub Actions の独自アクション .github/actions/setup/ubuntu/action.yml で zizmor で検出された警告に対応しています。

[03093ba4e2] Nobuyoshi Nakada 2026-05-16 06:52:12 UTC

tool/update-deps で依存関係の更新のため make -p の結果を parse する時に bundled gems の配下を無視するためのルールを追加しています。

ruby-trunk-changes 2026-05-15

今日は主に正規表現の MatchData オブジェクトの内部表現の変更による最適化や IO::Buffer の不具合修正、END{ next } を SyntaxError とする変更などがありました。

[42ec39af57] John Hawthorn 2026-05-08 19:55:08 UTC

re.c で namev_to_backref_number() という関数に渡す引数を struct re_registers から VALUE に変更するリファクタリング。

[44dc905f50] John Hawthorn 2026-05-08 20:14:13 UTC

re.c で正規表現のグループの参照んための MatchedData 内の探索の関数を切り出すリファクタリング。

[bea03284ec] John Hawthorn 2026-05-08 21:12:01 UTC

re.c で正規表現マッチの re_registers を ALLOCV_N() を使ってマシンスタック上に確保するようにしています。

[27774e9913] John Hawthorn 2026-05-08 22:17:38 UTC

re.c の正規表現マッチ時の RMATCH_REGS() コピーの処理を関数に切り出すリファクタリング。

[d5bd346c67] John Hawthorn 2026-05-09 00:06:46 UTC

String#sub, #gsub で正規表現での置換時に MatchData のバッファを参照できる関数を追加してそれを利用する最適化。

[fe3f45187b] John Hawthorn 2026-05-09 01:13:32 UTC

T_MATCH 型オブジェクトのバッファを Variable Width Allocation による拡張 slot を利用して slot 内に埋め込めるようにしています。

[39d428e356] John Hawthorn 2026-05-09 01:24:45 UTC

T_MATCH 型オブジェクトの RMATCH_REGS() が呼ばれた時に fe3f45187b9b0f46c33e9870738ea4c9c52e8fb7 で slot 内に埋め込んだバッファをヒープ上に確保する形式に変換するようにして、拡張ライブラリから直接内部を触られた時に構造体の変更が影響しないようにしているようです。なるほど。

[4c3de1a7b0] Takashi Kokubun 2026-05-13 21:40:00 UTC

拡張ライブラリ digest の未使用のローカル変数の警告抑制のため初期化子を追加しています。

[6a211f21e8] Fletcher Dares 2026-05-13 00:07:44 UTC

String#gsub! で文字列の str_modify_keep_cr() を呼び出して共有文字列の時の複製をしていたのを実際にマッチしない時にも呼んでたのを抑制するように最適化しています。

[a3a2d461aa] Alexander Momchilov 2026-05-13 21:13:53 UTC

Thread.each_caller_location でバックトレースのインデックス間違いで異常終了する可能性があった不具合を修正しています。 [ruby-core:125497] [Bug #22070]

[4bb1977b78] Luke Gruber 2026-05-14 13:58:46 UTC

internal/class.h 内の RCLASS_PRIME_CLASSEXT_WRITABLE_P() および RCLASS_SET_PRIME_CLASSEXT_WRITABLE() で FL_TEST() のかわりに FL_TEST_RAW() を、FL_SET() のかわりに FL_SET_RAW() を利用して不要な即値判定を省く最適化。

[ec41619932] Benoit Daloze 2026-05-14 16:44:57 UTC

rubyspec の upstream からの同期。

[99ce82ee3a] Stan Lo 2026-05-14 17:22:13 UTC

gems/bundled_gems の rdoc のテストで使う commit hash の指定を変更。 b5e6e0a425efcd21a62028f5c7b7d879396cb411 を revert しています。

[a8bcae043f] git 2026-05-14 17:23:09 UTC

gems/bundled_gems と NEWS の typeprof のバージョンを 0.32.0 に更新しています。

[4ec235e0b2] Max Bernstein 2026-05-14 20:06:15 UTC

ZJIT の Rust 実装のコメント内の非 ASCII 文字を避けるようにしています。 https://github.com/ruby/ruby/pull/16975

[0dc4b2ee81] Burdette Lamar 2026-05-14 20:56:57 UTC

Pathname#<=> の rdoc 用コメントの手直し。

[c1be6a3791] BurdetteLamar 2026-05-14 13:47:00 UTC

Pathname#atime の rdoc 用コメントの手直し。

[8f1ae02c6d] BurdetteLamar 2026-05-14 12:53:17 UTC

Pathname#ascend の rdoc 用コメントの手直し。

[ec106b10a9] Peter Zhu 2026-05-14 01:54:26 UTC

GC の default 実装で RACTOR_CHECK_MODE が真の時のオブジェクト確保時の rb_ractor_setup_belonging() 呼び出しを gc.c に移動しています。

[9a55fc506d] Randy Stauner 2026-05-12 18:43:52 UTC

rubygems で Open3.popen2e を使ってコマンド実行するところで標準入力の pipe をすぐに close するようにしています。

[2df9dfaa06] Burdette Lamar 2026-05-14 21:42:34 UTC

Pathname#chown の rdoc 用コメントを追加しています。

[63397319b4] Peter Zhu 2026-05-14 20:59:34 UTC

GC の mmtk 実装でも ec106b10a9998734eadd9a6ad14ab8209b9da5cc で gc.c の共通部分に移動した rb_ractor_setup_belonging() の呼び出しをしていたので削除しています。

[fff4b3ef2e] Luke Gruber 2026-05-14 20:47:07 UTC

rb_gc_obj_needs_cleanup_p() で GC の sweep 時に free 関数の呼び出しが必要か判定して不要なら高速に処理するという従来の仕組みで fe3f45187b9b0f46c33e9870738ea4c9c52e8fb7 で T_MATCH のオブジェクトで slot 埋め込みが可能になったので、その場合はこの関数で true を返すようにしています。

[356c0cd0e7] Peter Zhu 2026-05-14 01:34:12 UTC

GC の mmtk 実装の不要になっていた構造体フィールドの削除。

[2552db04dd] himura467 2026-05-14 05:24:44 UTC

IO::Buffer#& の実装で IO::Buffer#slice で切り出された IO::Buffer に対して呼ばれた時に元となる IO::Buffer のバッファが既に解放されていた時のチェックが抜けていて異常終了する可能性があった不具合を修正して、チェックして例外発生させるようにています。

[57a02ad661] Takashi Kokubun 2026-05-15 01:35:08 UTC

ZJIT で特殊変数($& とか $1 とか)を参照する処理のための C 関数の呼び出しを行うようにコンパイルする時に大域脱出が発生する可能性があるのにそのための準備をしていない箇所があったので修正しています。 https://github.com/ruby/ruby/pull/16974

[b5038ac118] "dependabot[bot]" 2026-05-15 02:13:06 UTC

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

[9b747f5ef9] Takashi Kokubun 2026-05-15 03:24:22 UTC

Ruby::Box のテストで Windows 版の CI でタイムアウトしているようで制限を伸ばしています。 https://github.com/ruby/ruby/pull/16963

[4d87d43b01] Stan Lo 2026-05-15 05:15:40 UTC

tool/rdoc-srcdir で require 'rbs' していたのを削っています。バージョンの依存関係かなにかで? 動かないので暫定的な処置みたいです。 https://github.com/ruby/ruby/pull/16983

[11de89ca1a] Earlopain 2026-05-13 11:52:14 UTC

parse.y および prism で END ブロック内での next も SyntaxError にしています。 [ruby-core:117434] [Bug #20409]

ruby-trunk-changes 2026-05-14

今日は主に Class/Module の複製時の定数参照についての仕様変更や bundler のイベントフック機能のイベント種類の追加などがありました。

[bf01f6ae89] Nobuyoshi Nakada 2026-05-13 10:08:58 UTC

コミットログと内容が一致してなくてよくわからないのですが 61aa46c41648c6d1e9b0daa1a292de551fde78df の string.c のインデントの修正を巻き戻して .git-blame-ignore-revs への追記も消しています。はて?

[f09e8ba06c] Takashi Kokubun 2026-05-13 14:25:35 UTC

ZJIT の Rust 実装でデバッグ用の機能の AssemblerPanicHook という構造体を削除しています。 https://github.com/ruby/ruby/pull/16928

[757af1f48b] Nozomi Hijikata 2026-05-13 14:47:26 UTC

ZJIT のインスタンス変数の扱いで Object Shapes の shape が変化した時に JIT コンパイルしたコードを破棄して再コンパイルするようにしているようです。 https://github.com/ruby/ruby/pull/16881

[8247840443] Kazuki Yamaguchi 2026-05-13 15:30:51 UTC

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

[4d13e79aa7] git 2026-05-13 15:34:27 UTC

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

[40272b1de6] Stefan Friesel 2026-05-13 15:48:58 UTC

doc/syntax/layout.rdoc の英文法の修正。

[88095eb196] John Hawthorn 2026-04-02 23:20:05 UTC

Class/Module の複製時に cref の置換を行なっていたため、既存の Class/Module で定義されていたメソッドからでも複製された Class のインスタンスから呼ばれると? 複製後の Class/Module 内の定数を参照していたのを修正? というか仕様変更? しているようです。ふーん、どっちがいいのかよくわからない挙動ですね。 [ruby-core:125184] [Feature #21981]

[256b660f27] John Hawthorn 2026-05-13 16:48:48 UTC

88095eb19621b80f3547abe32adbf3f3c82c42ad の Class/Module 複製時の cref 書きかえをやめた変更について NEWS に追記しています。

[11727da094] Max Bernstein 2026-05-13 23:08:03 UTC

ZJIT で Kernel#class メソッドの型アノテーションを Class 型に設定しています。 https://github.com/ruby/ruby/pull/16948

[ede9f1b607] Takashi Kokubun 2026-05-13 23:41:50 UTC

GitHub Actions の ModGC を有効化する workflow で ctions-rust-lang/setup-rust-toolchain アクションの cache-bin というオプションを false にしています。キャッシュ利用が意図しない結果になることがあるためみたいです。 https://github.com/ruby/ruby/pull/16953

[3c01549bbc] Burdette Lamar 2026-05-13 23:58:33 UTC

Pathname#chmod の rdoc 用コメントを追加しています。

[d7c75f81ce] BurdetteLamar 2026-05-13 15:59:29 UTC

Pathname#+ の rdoc 用コメントの手直し。

[b7451812f4] BurdetteLamar 2026-05-13 16:23:26 UTC

Pathname#== の rdoc 用コメントの手直し。

[b1a26097ad] Peter Zhu 2026-05-08 21:41:47 UTC

拡張ライブラリ objspace の ObjectSpace.reachable_objects_from の rdoc 用コメントの手直し。

[b28949c4df] Hiroshi SHIBATA 2026-05-12 06:51:25 UTC

rubygems が環境変数 BUNDLE_VERSION を利用する処理で system を指定しても lockfile の指定が使われてしまうという不具合を修正しているようです。

[b6afc8b99b] Jeremy Evans 2026-05-12 01:26:30 UTC

rubygems の Gem::Version#approximate_recommendation で返す依存関係の書きかたで "~>" ではなく ">=" を使うように変更しています。

[bfba263724] Peter Zhu 2026-05-14 01:03:16 UTC

Kernel#Hash() の rdoc 用コメントのサンプルで Hash#inspect のフォーマットを新しいものに追随させています。

[3219369142] Hiroshi SHIBATA 2026-05-14 00:58:40 UTC

b28949c4df755caa0be23a22d7853bd1b6b5dd66 の続きで rubygems で環境変数 BUNDLE_VERSION に lockfile と指定されていた時の挙動を修正しています。

[f71840a230] John Hawthorn 2026-05-07 09:01:12 UTC

Class/Module がそれを継承/include しているサブクラスのリストを管理している内部的な構造を T_IMEMO 型の imemo_subclasses という新しいタイプの imemo を追加して、ここで配列で管理するようにしています。またこの配列内の VALUE の参照は rb_gc_declare_weak_references() を呼んで mark せず weakref として扱うようにしています。 Class の GC 回収時に親クラスのリストからの削除を不要にしているようです。weakref なので解放はできるけどバッファはそのままなのかな、と思ったら配列サイズが足りなくなった時に回収済みの要素を捨てるようにしているので一応ずっと配列サイズが増え続けるということにはならないようです。

[627f1586f0] John Hawthorn 2026-05-13 23:53:30 UTC

Module のテストで定数再定義の警告抑制のため remove_const を追加しています。

[72348467ff] Cody Cutrer 2023-09-14 18:21:10 UTC

bundler で plugin の読み込み前後での Bundler::Plugin::API.hook で登録できるイベントフックのタイプを追加しています。

[a9dd5992b5] Marvin Frick 2026-04-16 04:26:56 UTC

同じく bundler で Bundler::Plugin::API.hook で登録できるイベントフックに gem のダウンロードや git の clone の前後でのフックを追加しています。

[52a1ee5094] Marvin Frick 2026-04-16 04:28:11 UTC

a9dd5992b5e2da7f48ae54f0dfc22f85aed493f7 に対応した bundler のテストを追加しています。

[e21e0acede] Hiroshi SHIBATA 2026-04-16 05:24:39 UTC

bundler のイベントフックの定義の順番を並べかえたリファクタリング。

[9e70480d79] Hiroshi SHIBATA 2026-04-16 05:35:06 UTC

a9dd5992b5e2da7f48ae54f0dfc22f85aed493f7 で追加した bundler の gem ダウンロードや git clone の後のイベントフックがダウンロードの例外発生時にも呼ばれるように修正しています。

[4839d41050] Hiroshi SHIBATA 2026-04-16 07:49:09 UTC

bundler のテストの File.readable?, File.writable? のモックの追加?

[4294d11d3b] Hiroshi SHIBATA 2026-04-16 07:53:54 UTC

bundler のイベントフックの rdoc 用? コメントの説明を追記しています。

[48702bdff8] Nobuyoshi Nakada 2026-05-14 01:09:02 UTC

common.mk の update-default-gemspecs ターゲットの依存関係に rbconfig.rb を追加しています。

[9cd7c567b2] Nobuyoshi Nakada 2026-05-14 01:34:40 UTC

common.mk で rdoc の実行のために cross compiling 時には BASERUBY を使うように修正しています。

[9f170caf60] Yasuo Honda 2026-05-13 23:23:57 UTC

bundler で lockfile なしでインストールしている時に依存関係解決で git リポジトリを source としている依存の解決に失敗する? 不具合を修正しているようです。

[2ad7886407] jneen 2026-04-18 16:18:50 UTC

bundler で gem server の compact index の checksum がない時にエラーにしていたのを無視するようにしています。いいのかな?

[801a4e4a64] Sutou Kouhei 2026-05-14 05:20:45 UTC

MatchData#integer_at のテストで利用する正規表現が間違っていたのを修正しています。

[34bd69fadb] Stan Lo 2026-05-14 07:21:31 UTC

gems/bundled_gems の debug.gem のテストに使う commit hash を更新しています。また irb の commit hash 指定は消してバージョンを 1.18.0 に更新しています。 https://github.com/ruby/ruby/pull/16934

[1c55ad83e1] git 2026-05-14 07:22:32 UTC

gems/bundled_gems の minitest と net-imap のバージョンをそれぞれ 6.0.6 と 0.6.4 に更新しています。また NEWS の bundled gems の更新履歴をアップデートしています。

[b5e6e0a425] Stan Lo 2026-05-14 08:30:06 UTC

gems/bundled_gems の rdoc のテストに使う commit hash の指定を更新しています。 https://github.com/ruby/ruby/pull/16940

[c5ab240ce3] Matt Valentine-House 2026-05-13 14:03:27 UTC

GC の開始時に rb_execution_context_t を保存しておく rb_gc_initialize_vm_context() の呼び出しをプロセスの初期化中でまだ準備ができていない時の早期 return の条件分岐の後に移動しています。 ec がまだ取得できない時に呼ばれる可能性があったため。

[69857ea9d8] Matt Valentine-House 2026-05-13 14:53:54 UTC

GitHub Actions の Ubuntu 向け workflow で configure に --enable-debug-env オプションをつけるようにしています。

[6b18cc1925] Nobuyoshi Nakada 2026-05-14 11:38:14 UTC

tool/rbinstall.rb に regenerate_plugins_for というメソッドを追加しています。追加しただけだなと思ったけどこれは rubygems の Gem::Installer を継承したクラスのメソッドなので Gem::Installer のメソッドを再定義して挙動を変更しているものですね。

[5a03fcb33a] Kazuhiro NISHIYAMA 2026-05-14 11:39:07 UTC

Class のテストでも 627f1586f0d7fb4b12c885a63d8f9afd261d651a と同様に定数の再定義警告抑制のため remove_const を追加しています。

ruby-trunk-changes 2026-05-13

今日は主に ruby.wasm での不具合修正や Pathname の private メソッド群の ruby 実装から C 実装への移植などがありました。

[0fa6cb88f5] Yuta Saito 2026-05-12 08:00:02 UTC

プロセス初期化時の Init_Cont() で FiberError 例外のためのオブジェクトの変数 rb_eFiberError の初期化を fiber_pool_initialize() の前に移動しています。 ruby.wasm で Fiber pool の初期化中に例外を発生させる場合があり、その時点でまだ変数が初期化されていないため異常終了になってしまう可能性があったようです。 https://github.com/ruby/ruby/pull/16925 [ruby-dev:52210] [Bug #21989]

[9e0261a9dc] Tsutomu Katsube 2026-05-09 11:36:08 UTC

common.mk の make test-bundler での $(XRUBY) の実行時に --enable-gems オプションを明示的に渡すようにしています。 RUN_OPTS で --disable-gems が指定されているためこれを打ち消す必要があったみたいです。 https://github.com/ruby/ruby/pull/16910 [ruby-core:125417] [Bug #22057]

[f1ca69b9de] Max Bernstein 2026-05-12 16:16:59 UTC

ZJIT の Rust 実装の未使用の中間表現 HIR の命令 GuardTypeNot を削除しています。 https://github.com/ruby/ruby/pull/16926

[33a4fde9cb] Max Bernstein 2026-05-11 13:47:50 UTC

ZJIT の型推論での多値代入のようなケース? での誤った推論の不具合を修正しているようです。

[ab849a434b] Max Bernstein 2026-05-11 16:17:09 UTC

ZJIT の型推論の実装で処理の収束を管理するためのフラグ管理の不具合を修正しているようです。

[ece14b61f5] Daichi Kamiyama 2026-05-12 20:39:11 UTC

ZJIT で不要な型 guard の命令(TypeGuard)が除去されないという不具合があったのを修正しているようです。 https://github.com/ruby/ruby/pull/16828

[be557259b7] Aaron Patterson 2026-05-12 23:16:13 UTC

ZJIT で分岐がある時のコードブロックの作りかたを IfTrue/IfFalse で条件ヒット時は jump 命令で別のブロックに移動し、そうでない時はそのブロック内で処理を続けるという形式だったのをどちらのケースもジャンプするような HIR のコードブロックの構成にしています。こちらのほうがコンパイル処理にとってシンプルなのと型推論が厳密になる可能性もあるみたいです。 https://github.com/ruby/ruby/pull/16888

[6297af9883] Max Bernstein 2026-05-12 23:19:15 UTC

ZJIT で中間表現 HIR の GuardType 命令の重複を削除する処理が不要になったとのことで削除するリファクタリング。 https://github.com/ruby/ruby/pull/16927

[baec5bbfff] Peter Zhu 2026-05-11 23:50:07 UTC

Set の compare_by_identity にして同値性でなく同一性で管理するようにした Set の場合 VALUE 値そのものがキーとして使われるため GC.compact での移動してはいけなくなるので、GC の mark 処理時に pin-down するようにしています。 https://github.com/ruby/ruby/pull/16923 [ruby-core:125466] [Bug #22064]

[6123b79877] Hiroshi SHIBATA 2026-05-13 00:35:03 UTC

GitHub Actions の Windows 系の workflow で利用するコンパイラのバージョンを VS 2026 に更新しています。

[4d147883e4] Hiroshi SHIBATA 2026-05-13 00:38:04 UTC

GitHub Actions の Windows 版 workflow で VC 2022 でのビルドを削除しています。

[6dfdd9e53f] Hiroshi SHIBATA 2026-05-13 00:39:12 UTC

GitHub Actions の Windows 版 workflow で古い Windows 環境でも make test-bundled-gems を実行するように matrix に追加しています。

[2748759889] Nobuyoshi Nakada 2026-04-16 07:06:12 UTC

common.mk の ext/configure-ext.mk の依存関係に default gems の gemspec ファイルの更新処理を追加しています。

[68e768391a] Nobuyoshi Nakada 2026-04-16 08:07:55 UTC

common.mk でコマンド分に ruby のスクリプトを -e オプションに長い文字列で渡していたのを tool/lib/bundled_gems.rb に移動しています。

[f3d86878f7] Nobuyoshi Nakada 2026-04-16 11:03:16 UTC

ちょっとよくわかってませんが common.mk の default gems の gemspec ファイルの更新? 処理をトリガーするための依存関係整備みたいです。

[d9242cab17] Nobuyoshi Nakada 2026-04-17 09:36:28 UTC

tool/lib/bundled_gem.rb に移植した gemspec ファイルの更新処理で既に新しいファイルが存在していた時の skip を追加しています。

[5d9ea25ecd] Nobuyoshi Nakada 2026-05-12 12:30:06 UTC

configure の RUNRUBY_COMMAND でディレクトリ変更のコマンドを cd と決め打ちで書いてたのを $(CHDIR) を使うようにしています。

[c1ab2a4997] Nobuyoshi Nakada 2026-05-12 13:04:58 UTC

GitHub Actions の WASM 用 workflow に ruby/setup-ruby アクションで ruby 3.1 をセットアップするステップを .github/actions/setup/directories の実行前に移動しています。直近の変更で default gems の gemspec 更新のためのスクリプトが新しめの ruby を必要とするようになったためかと思われます。

[bd2db27f3f] Nobuyoshi Nakada 2026-04-30 11:26:15 UTC

GitHub Actions の WASM 版の workflow での configure のコマンドライン引数の記述を整理して簡略化しています。

[8635510e2f] Nobuyoshi Nakada 2026-05-12 13:07:39 UTC

common.mk で rdoc が bundled gems になったため rdoc の実行に --enable-gems をつけた ruby を利用するようにしています。

[62d754ba7c] "dependabot[bot]" 2026-05-13 03:52:30 UTC

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

[fc5f23f8d0] "dependabot[bot]" 2026-04-30 02:06:36 UTC

vcpkg.json で指定している Windows 環境での vcpkg の builtin-baseline のコミットハッシュを更新しています。

[f3dd724da5] Andrii Furmanets 2026-05-13 08:29:30 UTC

IO::Buffer#each_byte で引数の offset と length からくる終点の位置がバッファ内に収まっているかの引数チェックを追加して ArgumentError 例外を発生させるようにしています。 https://github.com/ruby/ruby/pull/16823

[b0b7a943e8] Nobuyoshi Nakada 2026-05-02 07:36:09 UTC

Pathname の組み込みメソッドの ruby 実装のコードで Pathname#<=> と Pathname#sub が未定義の時の fallback 定義がもう不要になってたので削除しています。

[ded98a40dc] Nobuyoshi Nakada 2026-05-02 07:13:52 UTC

ファイルパスが NUL 文字を含んでいないかのチェックの関数を rb_get_path_check_no_convert() として切り出して Pathname の実装でも流用するようにしています。

[9021799650] Nobuyoshi Nakada 2026-05-04 04:25:24 UTC

Pathname#absolute? の実装を ruby 実装から C 実装に移動しています。

[488b8e58bc] Nobuyoshi Nakada 2026-05-06 11:08:02 UTC

Pathname#root? の実装も ruby 実装から C 実装に移植しています。

[d8e6bf63ed] Nobuyoshi Nakada 2026-05-01 05:16:44 UTC

9021799650021684e5586215f00f0b701d6160ab の Pathname#absolute? の実装の C への移植で不要になった Pathname::ABSOLUTE_PATH という正規表現の定数を削除しています。

[7c5c967fca] Nobuyoshi Nakada 2026-05-06 09:12:01 UTC

Pathname の ruby 実装で参照していた Pathname::SEPARATOR_PAT という定数の参照のかわりに Pathname#has_separator? という private メソッドの定義を C 実装で追加してこれを利用するようにしています。

[820554c8d2] Nobuyoshi Nakada 2026-05-02 08:02:48 UTC

Pathname#sub_ext というメソッドも ruby 実装から C 実装に移植しています。

[e3cccd28ea] Nobuyoshi Nakada 2026-05-02 09:25:46 UTC

Pathname#chop_basename という private メソッドも ruby 実装から C 実装に移植します。

[516adc1f78] Nobuyoshi Nakada 2026-05-03 12:01:43 UTC

Pathname#has_training_separator? というメソッドも ruby 実装から C 実装に移植しています。

[e887ffa35e] Nobuyoshi Nakada 2026-05-03 12:01:43 UTC

Pathname#add_trailing_separator という private メソッドも ruby 実装から C 実装に移植しています。

[ce5a099901] Nobuyoshi Nakada 2026-05-03 12:01:43 UTC

Pathname#del_trailing_separator という private メソッドも ruby 実装から C 実装に移植しています。

[a5996718f3] Nobuyoshi Nakada 2026-05-06 15:17:46 UTC

7c5c967fca7c873414b1eed56d662dc4118123dd の変更で不要になった Pathname::SEPARATOR_PAT という定数を削除しています。

[7dad6c043e] Nobuyoshi Nakada 2026-05-03 12:01:43 UTC

Pathname#split_names という private メソッドも ruby 実装から C 実装に移植しています。

[de8d33295d] Nobuyoshi Nakada 2026-05-06 00:18:46 UTC

Pathname#same_paths? という private メソッドも ruby 実装から C 実装に移植しています。

[41542767d2] Nobuyoshi Nakada 2026-05-03 12:01:43 UTC

Pathname の組み込みメソッド Pathname#mkpath の ruby 実装で File.dirname の呼び出しが繰り返されてたところをローカル変数に代入して使いまわすように最適化しています。

[997e11cf37] Nobuyoshi Nakada 2026-05-06 08:58:39 UTC

Pathname の Pathname#prepend_prefix の実装で private メソッド add_trailing_separator を使いまわすリファクタリング。

[407398b079] Nobuyoshi Nakada 2026-05-07 08:16:14 UTC

組み込みメソッド Pathname#children の ruby 実装で Dir.foreach を利用していたのを Dir.children を使うようにリファクタリングしています。

[6f8ece0690] Nobuyoshi Nakada 2026-05-07 09:05:19 UTC

Pathname のパス判定のメソッド(root?, absolute? など)のベンチマークを追加しています。

[61aa46c416] Nobuyoshi Nakada 2026-05-13 09:10:39 UTC

string.c のインデントの修正のみ。

[6ac238e32d] Nobuyoshi Nakada 2026-05-13 09:12:17 UTC

.git-blame-ignore-revs にインデント修正のみの 61aa46c41648c6d1e9b0daa1a292de551fde78df の commit hash を追記しています。

ruby-trunk-changes 2026-05-12

今日は主に拡張ライブラリ json の不具合修正や END ブロックの parse.y での不正な文法チェックの強化などがありました。

[da9e38460a] Takashi Kokubun 2026-05-11 21:20:56 UTC

ruby のリリースに使う GitHub Actions の手動で起動する workflow のバージョン番号を指定するパラメーターのデフォルト値を 4.0.0 に更新しています。

[24a1b097ce] Peter Zhu 2026-05-09 19:56:17 UTC

rb_classext_t 構造体を Ruby::Box ごとに管理するための st_table のキーにそのクラスの object_id を使っていましたが、GC の mmtk 実装でこのテーブルを lookup するために object_id を得るために rb_execution_context_t の参照を得るのに問題があったとのことでクラスの参照である VALUE の値そのものを key として使うように変更しています。key も value もどっちも同じクラスオブジェクトの参照なので Set のように使っています。クラスは GC.compact で移動しないよう pin されているオブジェクトなので VALUE を直接 key に使うことができるとのこと。なるほど。

[fb36961773] Jean Boussier 2026-05-12 06:19:06 UTC

拡張ライブラリ json の parser の内部的オブジェクトで RGenGC の Write Barrier 漏れがあったので修正しています。

[95c041bd3b] Jean Boussier 2026-05-12 06:49:34 UTC

拡張ライブラリ json で JSON.generate に indent キーワード引数でインデントを指定してネストした構造を表示するようにして、さらに depth キーワード引数にとても大きな数を指定した時に事前に用意するバッファサイズが size_t の範囲を越えてしまいオーバーフローする可能性があったので、チェックして ArgumentError 例外を発生させるようにしています。

[803b3169e0] Nobuyoshi Nakada 2025-11-14 07:21:00 UTC

parse.y でメソッド内に END ブロックが書かれている時の警告メッセージを出力するタイミングを予約語 END を読んだ瞬間に移動しています。テストの変更をみる感じだと警告の出力元のファイル位置がブロックの末尾になってたのを END 自体の位置にするためですかね?

[2f9432d211] Nobuyoshi Nakada 2025-11-14 08:38:59 UTC

parse.y で END のブロック内の break や next, redo が許容されていたのを SyntaxError を発生させるようにしています。 https://github.com/ruby/ruby/pull/15185 [ruby-core:117434] [Bug #20409]