ruby-trunk-changes 2026-07-01

今日は主に ZJIT の構造体サイズ削減やインライン最適化の有効化、bundler のテストの高速化などがありました。

[6883139726] Max Bernstein 2026-06-30 02:46:43 UTC

ZJIT の Rust 製テストに低レベル中間表現 LIR の Insn 型のサイズについてのテストを追加しています。

[4a396c15ba] Max Bernstein 2026-06-30 02:56:46 UTC

ZJIT の lir::Insn 型のサイズを縮小するリファクタリング。

[8da752c7fc] Max Bernstein 2026-06-30 03:05:52 UTC

ZJIT の lir::Insn 型のサイズを縮小するリファクタリング。

[2c07a1921b] Aaron Patterson 2026-06-29 22:18:16 UTC

rubygems のメソッドの private 化をしています。最適化するためにインタフェースを変更できるようにしたかった?

[a99aaffb1b] John Hawthorn 2026-06-25 23:04:34 UTC

Time オブジェクトの GC の mark 処理を RUBY_REFERENCES() マクロを用いて宣言的に定義するようにしています。久しぶりにみたなこの変更。

[6ac3a3f24b] John Hawthorn 2026-06-25 06:34:35 UTC

オブジェクトを Ractor 間で共有可能にするための Ractor.make_shareable でオブジェクトの freeze メソッドを呼ぶ処理で String, Array, Hash などのよく使うオブジェクトではメソッド再定義されていないことを確認したうえで直接対応する関数を呼ぶ最適化を追加しています。

[7b564e9fcd] Kevin Menard 2026-06-25 21:27:56 UTC

ZJIT のデバッグ用に中間表現のダンプする処理での不具合修正。

[594d14de26] Kevin Menard 2026-06-25 21:28:18 UTC

ZJIT の inline 最適化をデフォルトで有効にしています。従来はデフォルトでは有効じゃなかったんだ。

[7c176daccf] Kevin Menard 2026-06-25 21:28:58 UTC

GitHub Actions の ZJIT を有効化してテストする workflow で 594d14de2665dc12f9f8fcbf4d572e562ed886e3 の変更を受けて inline 最適化の有効/無効の指定方法を切り替えています。

[249eef4aad] Max Bernstein 2026-06-30 04:10:31 UTC

ZJIT の lir::Insn 型のサイズを縮小するリファクタリング。

[11c59ab2cb] Max Bernstein 2026-06-30 04:29:25 UTC

ZJIT の lir::Insn 型のサイズを縮小するリファクタリング。

[fe64d6c23d] Max Bernstein 2026-06-30 04:35:39 UTC

ZJIT の lir::Insn 型のサイズを縮小するリファクタリング。

[420b2ef27c] Max Bernstein 2026-06-30 05:03:59 UTC

ZJIT の lir::Insn 型のサイズを縮小するリファクタリング。

[d88016de4f] Burdette Lamar 2026-06-30 22:38:00 UTC

Set#divide の rdoc 用コメントのサンプルコードを追加したりといった手直し。

[f081603974] Hiroshi SHIBATA 2026-06-30 12:24:50 UTC

bundler のテストでデバッグのために環境変数 BUNDLER_SPEC_RUNTIME_LOG を設定するとファイルごとの実行時間を書き出して重いテストを特定できるようにしています。

[67933ea7b6] Hiroshi SHIBATA 2026-06-30 12:37:58 UTC

bundler のテストの bundle newgem のテストで git config コマンドをテストごとに 3回実行していたので、コマンド実行をやめて結果できるはずの .gitconfig ファイルを直接書き出すようにして軽量化しています。

[b64785a7ec] Hiroshi SHIBATA 2026-06-30 12:37:58 UTC

bundler の bundle lock のテストで不要な前処理を削る最適化。

[ce50913b1d] Hiroshi SHIBATA 2026-06-30 12:37:58 UTC

bundler のテストで bundle outdated のテストの冗長な処理をまとめるリファクタリング。

[2f308ae2a9] Hiroshi SHIBATA 2026-06-30 12:46:51 UTC

bundler のテストで git コマンドの呼び出し結果を変数に格納して使いまわす最適化。

[462f93a32b] Hiroshi SHIBATA 2026-06-30 12:46:52 UTC

bundler の bundle install のテストで不要な処理を削る最適化。

[4ba819f9c1] Hiroshi SHIBATA 2026-06-30 12:49:55 UTC

bundler のテストで不要な処理を削る最適化。

[ee3429845d] Hiroshi SHIBATA 2026-06-30 12:54:50 UTC

bundler のテストで bundle install していたところを bundle lock に留める最適化。

[ce4b3812d4] Hiroshi SHIBATA 2026-06-30 12:55:49 UTC

bundler のテストでさらに bundle install を bundle lock に留める最適化。

[4a3254ae00] Hiroshi SHIBATA 2026-06-30 13:46:24 UTC

bundler のテストで依存関係の assertion のチェック対象に "activesupport 2.3.2" が重複していたのを削っています。

[99802b0928] Hiroshi SHIBATA 2026-06-30 21:20:14 UTC

bundler の Windows 環境向け? の並列実行のためのグループ分けを見直して最適化しています。

[597dcfb04a] Burdette Lamar 2026-06-30 22:41:34 UTC

Set#keep_if の rdoc 用コメントにサンプルコードやリンクを追記しています。

[29e4bf19b1] Burdette Lamar 2026-06-30 22:46:31 UTC

Set#reject! の rdoc 用コメントにサンプルコードやリンクを追記しています。

[c5eb119f31] Burdette Lamar 2026-07-01 00:42:43 UTC

Set#hash の rdoc 用コメントに説明とサンプルコードを追記しています。

[1a8320b3ff] Burdette Lamar 2026-07-01 00:43:27 UTC

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

[298791a4bf] Burdette Lamar 2026-07-01 00:44:11 UTC

Set#proper_subset? の rdoc 用コメントにサンプルコードとリンクを追記しています。

[54eead3b78] Burdette Lamar 2026-07-01 00:45:21 UTC

Set#proper_superset? の rdoc 用コメントにサンプルコードとリンクを追記しています。

[a39081efea] Burdette Lamar 2026-07-01 00:46:10 UTC

Set#replace の rdoc 用コメントの手直し。

[a86a1a77b3] Burdette Lamar 2026-07-01 00:47:31 UTC

Set#reset の rdoc 用コメントに説明とサンプルコードを追記しています。

[9f5f869003] XrXr 2026-06-30 20:25:06 UTC

ZJIT の Rust 製テストの不要なテストを削除しています。

[4ef4dc18b0] XrXr 2026-06-30 20:36:24 UTC

ZJIT の Rust 実装の不要になっていたコードの削除。

[9fc225e06e] XrXr 2026-06-30 20:40:41 UTC

ZJIT の Rust 実装から C の binding rb_get_call_data_ci() を呼び出してメソッド呼び出しの callinfo を得ていたのを引数の構造体から直接メンバーを参照するようにして関数呼び出しを不要にしています。

[003caa598f] XrXr 2026-06-30 21:04:03 UTC

ZJIT の Rust 実装のテストの assertion メソッドの定義に #[track_caller] を付加してエラー時の呼び出し位置を表示するようにしています。

[95e6f75c4a] "dependabot[bot]" 2026-07-01 02:08:22 UTC

zjit/Cargo.lock の insta パッケージのバージョンを更新しています。

[2d9afd8dd0] "dependabot[bot]" 2026-07-01 02:13:03 UTC

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

[b07218d29e] Nobuyoshi Nakada 2026-06-29 01:01:41 UTC

common.mk の make modular-gc ターゲットの依存関係に ruby 本体と rbconfig.rb を追加しています。

[15761f017e] Hiroshi SHIBATA 2026-07-01 05:13:49 UTC

bundler の bundle gem サブコマンドで git init コマンドの実行をバッククオートリテラルで行なっていたのを IO.popen メソッドを利用するように修正しています。 Windows 環境でクオートの処理がうまく行なわれないので配列で厳密な ARGV を渡してコマンド起動するようにしています。これにより Windows で skip していたテストが skip 不要になったので削っています。

[13b5af444b] Nobuyoshi Nakada 2026-07-01 06:27:38 UTC

tool/lib/path.rb でシンボリックリンクをはる時に指定のパスがリンクを置くディレクトリなのかリンクそのものなのかを区別するため target_directory というキーワード引数を追加しています。また共通の処理を ln_target_directory という private メソッドに切り出しています。

[259845b866] Hiroshi SHIBATA 2026-07-01 06:40:10 UTC

rubygems のテストで Windows で skip していたものを Gem::Installer.for_spec を利用して改善して skip を削除しています。

[821b84b525] Nobuyoshi Nakada 2026-07-01 08:34:30 UTC

tool/lib/path.rb の 13b5af444b701d4fbc189ecf82f491e1344b5d63 の変更の追加修正で切り出した ln_target_directory メソッドで target_directory が真の時に実際に指定のファイルパスがディレクトリを指しているかも確認するようにしています。なんかだったらディレクトリかどうかのチェックだけでいいような気もしますが。

[71e925cc08] Matt Valentine-House 2026-06-23 20:39:12 UTC

GC の default 実装で GC::Profiler で GC の統計情報を保存するためのメモリ管理を上限を設けてリングバッファ上のストレージに保持するようにして、長時間動かし続けることができるようにしています。

[1657266e6a] Matt Valentine-House 2026-06-26 19:08:06 UTC

GC の mmtk 実装利用時に skip するテストの指定に 71e925cc0884664f4ddba2dce51d8309a608fda1 の GC::Profiler のリングバッファ化で追加したテストを追記しています。 GC の default 実装でのみ意味のあるテストなので。

[2556a5469d] eightbitraptor 2026-06-29 21:21:13 UTC

1657266e6a4777c523d9c42ea8ff5b3a2d2d39f0 の GC の mmtk 実装利用時のテスト skip 指定の typo 修正。