今日は主に Ractor 間のオブジェクト移動での潜在的不具合修正や ZJIT のコンパイルできるメソッドの範囲を広げたりブロック呼び出しについてさらに最適化するためのプロファイリングの強化などがありました。
[af6a6a2a62] Kazuki Tsujimoto 2025-11-05 15:35:37 UTC
gems/bundled_gems の power_assert のバージョンを 3.0.1 に更新しています。
[57040636df] git 2025-11-05 15:36:26 UTC
gems/bundled_gems の test-unit と typeprof のバージョンを更新しています。また NEWS の bundled gems のバージョンリストの power_assert, test-unit のバージョンを更新し、typeprof の項目を追加しています。
[54907db8f3] Luke Gruber 2025-11-05 17:42:08 UTC
Ractor 間でオブジェクトを移動する時に ObjectSpace._id2ref のための object_id との対応テーブルの管理のためインスタンス変数の内容を先に移動してから親オブジェクトの移動を行うようにしています。親オブジェクトが移動したタイミングで参照すると存在するはずのインスタンス変数の参照先がないという状態になって異常終了してしまう場合があったようです。 https://github.com/ruby/ruby/pull/15056 [ruby-core:123651] [Bug #21664]
[d3d2357a6c] Takashi Kokubun 2025-11-05 17:57:59 UTC
GitHub Actions の macOS 版の ZJIT を有効にしたテストの workflow でベンチマークを実行するジョブを追加しています。 https://github.com/ruby/ruby/pull/15040
[7334244e00] Sam Partington 2025-11-05 18:00:57 UTC
標準添付ライブラリ erb の ERB クラスの rdoc 用コメントの typo 修正。 https://github.com/ruby/erb/pull/92
[242d8edbeb] Takashi Kokubun 2025-11-05 18:23:35 UTC
拡張ライブラリがビルドできていることを確認するテストや autoload 関係のテストで assert_separately で子プロセスを起動する時の timeout 値をのばしています。
[df290e11d9] Takashi Kokubun 2025-11-05 18:28:18 UTC
bootstraptest/test_io.rb の IO の読み込み中の割り込み? のテストで FreeBSD でスキップしていたものを mswin でもスキップするようにしています。
[d327eb6046] Randy Stauner 2025-11-05 18:30:00 UTC
ZJIT で Object Shapes によるオブジェクトのインスタンス変数の保持の形式の想定をして最適化しているところで中間表現 HIR の GuardShape という命令で脱最適化のための guard を入れていて、そこで side-exit した時の統計情報カウンタを追加しています。 https://github.com/ruby/ruby/pull/15052
[bf0331b907] Takashi Kokubun 2025-11-05 18:44:40 UTC
ZJIT の --zjit-stats で表示する統計情報のメモリ使用量にコード領域だけでなく中間表現の領域やトータルのサイズなども表示するようにしています。 https://github.com/ruby/ruby/pull/15059
[4f56abbb0a] Randy Stauner 2025-11-05 19:08:28 UTC
ZJIT でキーワード引数を含むメソッド呼び出しで side-exit してしまわずに ruby のメソッド呼び出し機構を使うようにして呼び元のコンパイル全体を断念しないようにしています。 https://github.com/ruby/ruby/pull/15065
[02267417da] Max Bernstein 2025-11-05 20:01:17 UTC
ZJIT のプロファイリングで VM 命令の invokeblock の呼び出しがどのように行なわれているのか(常に同じブロックが呼ばれるのかなど)を調べて最適化に利用するための統計情報の取得を追加しています。 https://github.com/ruby/ruby/pull/15051
[00c9a21cce] Randy Stauner 2025-11-06 01:29:38 UTC
doc/contributing/glossary.md の用語集に bmethod や cme など CRuby VM 内部構造についての用語を追加しています。またいくつかの説明を少し変更しています。 https://github.com/ruby/ruby/pull/15070
[6014ed9968] Peter Zhu 2025-11-02 18:45:26 UTC
hash.c の rb_hash_dump() という関数が未使用になっていたので削除しています。
[8c95c9d5ae] Nobuyoshi Nakada 2025-11-05 10:20:13 UTC
拡張ライブラリ socket の Socket.unix_socket_abstract_name? という private な特異メソッドで RUBY_PLATFORM 定数で分岐していたのをメソッド定義自体を RUBY_PLATFORM をみて分岐して中身は固定にしています。
[89056f4a86] Nobuyoshi Nakada 2025-11-05 10:25:46 UTC
拡張ライブラリ socket の ext/socket/lib/socket.rb に rdoc 用のタグ :nodoc: を追加して private なメソッドのドキュメント化を抑制しています。またいくつかのクラスメソッドを private にしています。