ruby-trunk-changes 2026-05-28

今日は bundler や rubygems の更新や拡張ライブラリ json のエッジケースの修正、Marshal.load 不正な引数や入力時の不具合修正などがありました。

[f77c646ee2] Max Bernstein 2026-05-27 19:07:11 UTC

ZJIT で C の真偽値を Qtrue/Qfalse として HIR の Test 命令でチェックしている時は不要な変換を省略する最適化。 https://github.com/ruby/ruby/pull/16949

[6336ec75d3] Takashi Kokubun 2026-05-27 21:22:44 UTC

ZJIT でコードブロックに対応する関数を作成するところで引数格納用のマシンスタックを確保するのをやめています。もう不要になってたのかな。

[7e3fbb04aa] Takashi Kokubun 2026-05-27 21:39:43 UTC

ZJIT のコードから C の関数を呼び出す処理で引数をマシンスタック上に用意する処理のリファクタリング。

[526756e436] Takashi Kokubun 2026-05-27 22:35:25 UTC

ZJIT のコメントを実装の変更に追随させています。

[9e6b417e8c] Hiroshi SHIBATA 2026-05-27 01:56:58 UTC

rubygems のテストの JRuby での skip を追加しています。

[ac71d8da5e] Hiroshi SHIBATA 2026-05-27 09:12:41 UTC

bundler のテストで利用する Gemfile と Gemfile.lock を更新しています。

[df809048e9] Hiroshi SHIBATA 2026-05-27 08:00:42 UTC

rubygems のテストで Windows 上の JRuby で動かすための対応や skip をしています。

[065c7a8903] Hiroshi SHIBATA 2026-05-27 08:41:13 UTC

rubygems のテストの Windows 上の JRuby での skip をさらに追加しています。

[f649009337] Hiroshi SHIBATA 2026-05-27 09:53:30 UTC

rubygems のテストのヘルパーに Windows 環境の JRuby の時に Gem::Installer のメソッドの wrappers: true オプションを追加するモジュールを追加しています。

[296dc7d98a] Hiroshi SHIBATA 2026-05-27 10:33:47 UTC

rubygems の Gem::Package#create_symlink で File.symlink の TypeError 発生を捕捉するようにしています。 Windows 環境の JRuby 対応の一部。

[594ae9f073] John Hawthorn 2026-05-25 17:18:18 UTC

昔の Data クラスに対応する古い T_DATA 型オブジェクトの構造体のレイアウトを T_TYPEDDATA とそろえるようにしているようです。

[c195319c0d] John Hawthorn 2026-05-25 17:30:13 UTC

594ae9f073c300452ddc45848ff31c206575f62f のリファクタリングにより ZJIT で T_DATA 型オブジェクトの構造体レイアウト違いによる分岐が不要になったので実装をシンプルにしています。

[8c854d2cfb] John Hawthorn 2026-05-26 17:01:13 UTC

594ae9f073c300452ddc45848ff31c206575f62f の T_DATA の構造体メモリレイアウト変更により RUBY_ABI_VERSION マクロの数値を更新しています。

[de6597d1a5] Max Bernstein 2026-05-27 23:24:50 UTC

ZJIT の super 呼び出し時の冗長な guard 命令を除去する最適化。 https://github.com/ruby/ruby/pull/17128

[42c4882731] Hiroshi SHIBATA 2026-05-28 01:51:08 UTC

bundler のテストで使う gem の rb_sys のバージョンを更新しています。

[86faeeacd1] Hiroshi SHIBATA 2026-05-28 01:51:22 UTC

rubygems の Rust 製拡張ライブラリを含む gem のビルド対応のための Rust パッケージのバージョン更新。

[0cf401e3a9] Hiroshi SHIBATA 2026-05-26 07:47:54 UTC

bundler の Bundler::LockfileParser をライブラリとして利用するため? new 時にキーワード引数で lockfile のファイルパスを指定できるようにしています。

[f271184f74] Hiroshi SHIBATA 2026-05-26 07:50:24 UTC

rubygems のテストの追加。

[a4bea1fa53] Hiroshi SHIBATA 2026-05-26 07:56:31 UTC

rubygems から bundler の Bundler::LockfileParser を利用するようにするリファクタリング? 0cf401e3a91585529e33a1b5d6ebe99ef2fe1e90 で追加したキーワード引数は rubygems から利用するためだったみたいですね。

[f608c332eb] Hiroshi SHIBATA 2026-05-26 07:57:07 UTC

rubygems のテストから不要になった lockfile 解析の部分のテストを削除。

[d5958aac08] Hiroshi SHIBATA 2026-05-26 07:58:28 UTC

rubygems から a4bea1fa535f964ac6d1b27daa6579af5fceb862 の変更で不要になった独自の lockfile の parser 実装を削除しています。

[b1bdf5c6f4] "dependabot[bot]" 2026-05-28 02:26:30 UTC

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

[8ed456afc9] Nobuyoshi Nakada 2026-02-17 05:32:56 UTC

Marshal.load に IO の引数を渡した時にその IO が IO を模倣したオブジェクトで read に指定したサイズ以上の文字列を返した時にバッファオーバフローを起こす可能性があったという不具合を修正しています。

[2510dfee2a] Nobuyoshi Nakada 2026-02-17 11:54:25 UTC

Marshal.load で不正な整数の load 時のチェックを強化しています。

[3f6d6c0373] Nobuyoshi Nakada 2026-05-14 15:10:30 UTC

Marshal で T_BIGNUM 型の Integer のロード時の符号が期待した文字かのチェックを追加しています。

[b0a2c22b6a] Jean Boussier 2026-05-28 07:00:46 UTC

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

[e2891fe55c] git 2026-05-28 07:04:09 UTC

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

[255a3a07b7] Jean Boussier 2026-05-28 07:41:37 UTC

拡張ライブラリ json のエンコード処理で Hash や Array のネストの上限の指定で INT_MAX 越えるような数値が指定されたら例外を発生させて拒否するようにしています。

[bed68bc9c8] Jean Boussier 2026-05-28 07:53:19 UTC

拡張ライブラリ json のエンコード処理で内部的な構造体の RB_OBJ_WRITTEN() での RGenGC 用の Write Barrier を追加しています。

[f010078710] git 2026-05-28 08:08:02 UTC

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

[428f59fe1a] Jean Boussier 2026-05-28 08:22:50 UTC

拡張ライブラリ json で JSON.parse 時に渡された文字列が破壊的変更をされてしまうとおかしなことになるので rb_str_new_frozen() で freeze した文字列複製を作りそれを参照するようにしています。Encoding のために既に複製済みの時は不要な複製を増やさないとか元の文字列とバッファ共有するので実際に破壊的変更されなければバッファ全体はコピーされないなどの考慮はされているようです。

[f06ee4e761] Hiroshi SHIBATA 2026-05-26 10:41:28 UTC

rubygems の専用の Gem::YAMLSerializer で Ruby のオブジェクトをダンプするための tag の Gem::Specification クラスへの対応を追加しています。

[ac4a9d44d7] Hiroshi SHIBATA 2026-05-26 10:43:14 UTC

rubygems の独自の Gem::YAMLSerializer の ruby オブジェクト対応の強化。

[ee2f5c58cb] Hiroshi SHIBATA 2026-05-26 10:52:56 UTC

rubygems の独自の Gem::YAMLSerializer で配列のネストの深さの上限チェックを追加しています。

[972c4c03dd] Hiroshi SHIBATA 2026-05-28 05:02:13 UTC

rubygems の独自の Gem::YAMLSerializer の YAML の alias 対応で存在しない alias 名の参照時のエラー処理を追加しています。

[90ce2aa326] Hiroshi SHIBATA 2026-05-28 05:08:56 UTC

rubygems の独自の Gem::Serializer の alias を無効にした状態での parse で anchor をみただけでエラーにしていたのをチェックを緩めて無視するようにしています。

[3696b64cc4] Hiroshi SHIBATA 2026-05-28 07:14:45 UTC

rubygems の独自の Gem::YAMLSerializer で配列などのネストが上限に達した時の例外オブジェクトを psych の時とそろえるようにしています。

[73e7c45a49] Hiroshi SHIBATA 2026-05-28 08:33:04 UTC

rubygems のテストで YAML の load 時の配列などのネストの上限に達した時の例外として JRuby の場合の SnakeYAML による例外にも対応するようにしています。

[a2f55f604a] Jean Boussier 2026-05-28 09:09:28 UTC

拡張ライブラリ json の浮動小数点数の parse で指数部が極端に大きかったり小さかったりした時の丸め処理を追加しています。

[e30048b08a] Jean Boussier 2026-05-28 10:03:18 UTC

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

[bc505ff8ca] git 2026-05-28 10:05:45 UTC

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