ruby-trunk-changes 2026-05-22

今日は主に ZJIT の型プロファイルの強化やコンパイル時の最適化、ZJIT でインスタンス変数の参照時の型プロファイルが変化した時の再コンパイルの機構の対応などがありました。

[945eab1d12] Max Bernstein 2026-05-21 14:55:14 UTC

ZJIT の中間表現 HIR の型プロファイル情報のダンプ時にモジュール/クラス名わかっている場合は表示するようにしています。 https://github.com/ruby/ruby/pull/17039

[cf2170943b] Max Bernstein 2026-05-19 21:31:50 UTC

ZJIT で Array オブジェクトのサイズを得る中間表現 HIR の命令 ArrayLength で対象の配列が freeze されているとわかっていたらメソッド呼び出しせず定数に変換するように最適化しています。

[59d376b1ba] Max Bernstein 2026-05-19 21:37:10 UTC

ZJIT の中間表現 HIR の GuardLess 命令で条件分岐する時に比較対象が定数だった時不要な分岐を消す最適化。

[c34cc402a3] Ibrahim Awwal 2026-05-19 01:02:41 UTC

YJIT でローカル変数が大量にあり 255個を越える時に不正なメモリアクセスをしてしまう不具合を修正しています。 [ruby-core:125543] [Bug #22074]

[214cfad69c] Max Bernstein 2026-05-20 16:25:42 UTC

ZJIT の型プロファイリイングであるクラスのインスンタスかどうかの認識をまさにそのクラスのインスタンスなのか、そのクラスを継承したクラスのインスタンスも含むのかを区別して判定できるようにしているようです。

[cd28a282cc] Max Bernstein 2026-05-20 16:27:07 UTC

ZJIT でメソッドの receiver の型情報を型プロファイルの蓄積情報のほうを static な情報よりも優先するようにしています。プロファイル情報のほうが Object Shapes の情報があるので望ましいみたいです。

[3b5d49449d] Aaron Patterson 2026-05-21 21:02:17 UTC

ZJIT で型プロファイルの結果が変化して JIT コンパイルされたコードを破棄して再コンパイルする機構をインスタンス変数の参照において有効に働くように修正? しているようです。 https://github.com/ruby/ruby/pull/17061

[001a1418f2] Burdette Lamar 2026-05-21 23:02:59 UTC

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

[3903ef6407] BurdetteLamar 2026-05-21 21:14:32 UTC

Pathname#each_entry の rdoc 用コメントの追加。

[7012f365f9] Peter Zhu 2026-05-21 23:53:41 UTC

Pathname の rdoc 用コメントのサンプルの整形。

[76e2c73d65] Hiroshi SHIBATA 2026-05-21 21:22:38 UTC

GitHub Actions の tarball パッケージのテスト用 workflow の失敗時の Slack 通知の設定を整理しています。

[229288e425] Hiroshi SHIBATA 2026-05-21 21:45:04 UTC

GitHub Actions の tarball パッケージのテスト用 workflow の Slack 通知のために checkout する時に persist-credentials: false オプションを付けています。

[93fc48add9] Hiroshi SHIBATA 2026-05-22 00:21:31 UTC

GitHub Actions の tarball パッケージのテスト用 workflow で Slack 通知メッセージのラベルに archname を含めています。

[1a5cf207a2] Hiroshi SHIBATA 2026-05-22 00:24:46 UTC

GitHub Actions の tarball パッケージのテスト用 workflow で readline など不要になったサードパーティーライブラリのインストールを削除しています。

[5a6e6d48c3] Hiroshi SHIBATA 2026-05-22 00:25:34 UTC

GitHub Actions の tarball パッケージのテスト用 workflow で T_BIGNUM のための libgmp のインストールを追加しています。

[dfe5caec5b] Hiroshi SHIBATA 2026-05-22 00:27:42 UTC

GitHub Actions の tarball パッケージのテスト用 workflow の macOS 版で HomeBrew でインストールする openssl パッケージを 1.1 にバージョン固定していたのを解除しています。

[7bd4961e7d] Hiroshi SHIBATA 2026-05-22 00:31:50 UTC

GitHub Actions の tarball パッケージのテスト用 workflow で ruby/setup-ruby アクションのバージョンを更新しています。

[250a0e6747] Hiroshi SHIBATA 2026-05-22 00:48:58 UTC

GitHub Actions の tarball パッケージを BASERUBY なしでビルドする workflow で configure 時の条件パターンを増やしています。

[4d6535fcc7] Hiroshi SHIBATA 2026-05-22 01:49:22 UTC

GitHub Actions の tarball パッケージのテスト用のスケジュール実行のための workflow は ruby/ruby の repo でのみ動くようにしています。

[dde7b1d7e0] Nobuyoshi Nakada 2026-05-21 10:05:01 UTC

GitHub Actions の tarball パッケージのテスト用 workflow でデバッグのためにホームディレクトリ配下のファイル群の hash digest を保存しておく処理を save-stats.rb というファイルに書き出して保存して同じスクリプトを冗長に書いてたのを避けるようにしています。

[d90401d2da] "dependabot[bot]" 2026-05-22 02:15:06 UTC

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

[49ca324112] git 2026-05-22 03:27:17 UTC

NEWS の bundled gems の rdoc と irb の更新履歴を更新しています。

[863c8656f1] USAMI Kenta 2026-05-21 11:19:45 UTC

拡張ライブラリ openssl の OpenSSL::SSL::SSLSocket#syswrite_nonblock の rdoc 用コメントのオプション引数 :exception についての記述を追記しています。

[0a7564be12] Nobuyoshi Nakada 2026-05-22 10:30:49 UTC

tool/lib/bundled_gem.rb で Refinements を利用して IO.popen や Kernel#` (シングルクオートで括るリテラル表現)でのコマンド実行を潰した状態で .gemspec ファイルを eval させるようにしています。セキュリティ観点かなと思ったけど(それもあるだろうけど) bundled gems の gemspec なので spec.files の取得のために git コマンドを使う場合の git コマンド実行の失敗を避けるためとのこと。