今日はインスタンス変数代入の inline cache の改善や error_highlight で ArgumentError 発生時にそのメソッドの定義位置も表示する機能拡張、委譲用引数(...)を用いて存在しないメソッドを呼び出した時の例外クラスの間違いの修正などがありました。
[08af07b297] Nobuyoshi Nakada 2025-08-27 10:31:28 UTC
File.path のテストに引数の変換についてのテストケースを追加しています。
[f7be281679] Nobuyoshi Nakada 2025-08-27 11:08:48 UTC
File.path の rdoc 用コメントに引数の変換の仕様について追記しています。
[c3c74e0d31] Jun Aruga 2025-08-27 12:35:18 UTC
GitHub Actions の s390x でのビルド用 workflow .github/workflows/ubuntu-ibm.yml を削除しています。
[d2ef901f6c] BurdetteLamar 2025-08-24 15:37:26 UTC
String#length の rdoc 用コメントにリンクを追記しています。
[8935cf98e5] Peter Zhu 2025-08-26 19:42:41 UTC
ractor_lock() および ractor_unlock() で rb_ractor_t::malloc_gc_disabled をセットする時に引数を使うのではなくて GET_RACTOR() で現在実行中の rb_execution_context_t の Ractor を使うように修正しています。
[47d4cceeff] Jun Aruga 2025-08-26 14:38:16 UTC
GitHub Actions で利用できるコア数を取得する nproc コマンドに --all オプションを付けていたのを削っています。 s390x の環境で nproc --all の結果が非常に大きな数値が帰ってきてしまってたみたいです。
[6c0315d99a] Peter Zhu 2025-08-26 19:09:32 UTC
rb_hook_list_mark_and_update() という関数を rb_hook_list_mark_and_move() に改名しています。
[61d26c35bf] Peter Zhu 2025-08-26 19:20:54 UTC
rb_method_entry_t の GC mark 関数 mark_and_move_method_entry() でメソッド本体が BMETHOD つまり define_method にブロックを渡して定義したようなメソッドの時の rb_method_bmethod_t::hooks の mark に rb_hook_list_mark_and_move() を呼んで GC.compact で移動可能にしています。
[76810fc349] Takashi Kokubun 2025-08-27 17:01:07 UTC
ZJIT の統計情報の side-exit のカウンタの実装はまだされてなかったみたいで実装追加しています。 https://github.com/ruby/ruby/pull/14357
[886268856b] Luke Gruber 2025-08-27 13:26:57 UTC
メソッド引数に委譲用の "..." の記法を使って存在しないメソッドに委譲しているメソッドを呼び出した時に NoMethodError ではなく NameError が発生している不具合を修正しています。 [ruby-core:122935] [Bug #21535]
[4652879f43] Max Bernstein 2025-08-27 19:03:32 UTC
ZJIT でいくつかの組み込みメソッドについて戻り値の型を指定して最適化するようにしています。 https://github.com/ruby/ruby/pull/14363
[fb3d2a2a19] Max Bernstein 2025-08-27 19:15:08 UTC
ZJIT の統計情報の side-exit のカウンタの理由ごとのカウンタの対応?
[984e05a11b] Max Bernstein 2025-08-27 21:50:58 UTC
ZJIT の統計情報カウンタに zjit_dynamic_dispatch というのを追加しています。
[471028459d] Max Bernstein 2025-08-27 23:02:47 UTC
ZJIT でブロックつきメソッド呼び出しがある時にローカル変数のブロックからの書き換えの可能性があるので脱最適化してヒープに変数の実体を置くようにしています。 https://github.com/ruby/ruby/pull/14374
[2ccb2de677] Yusuke Endoh 2025-08-26 09:58:05 UTC
RubyVM::AST.of で返す AST の根を NODE_SCOPE のノードではなくその親のノードを返すようにしたそうです。チケットをみると元々の動機としてはメソッドの引数の間違いで ArgumentError が発生した時のその例外の発生箇所をメソッドの定義の行じゃなくて呼び出しの位置にしたいということでそのために必要な変更みたいです。 [ruby-core:122964] [Feature #21543]
[ed8fe53e80] Yusuke Endoh 2025-08-26 10:05:57 UTC
2ccb2de677849732181224cb9fd1a831dbaac4c0 の変更の続きで ISeq から位置情報を得る処理で NODE_SCOPE の node_id を取得するために rb_iseq_body_t::location::node_id を参照する処理を追加しています。 [ruby-core:122964] [Feature #21543]
[85e0c98cf0] Yusuke Endoh 2025-08-26 10:11:28 UTC
標準添付ライブラリ error_highlight で 2ccb2de677849732181224cb9fd1a831dbaac4c0 からの変更を利用して ArgumentError の時のエラー箇所の表示としてメソッド定義の箇所も表示するようにしています。 [ruby-core:122964] [Feature #21543]
[2e27f6e1f1] Yusuke Endoh 2025-08-28 06:29:18 UTC
標準添付ライブラリ error_highlight の gemspec ファイルの spec.required_ruby_version で最低サポートバージョンを 3.2 以降に引き上げています。
[b85b2b84ad] Yusuke Endoh 2025-08-28 06:32:08 UTC
標準添付ライブラリ error_highlight の ruby 3.1 のサポートのための分岐を削除しています。
[e7fb87ee3a] Jean Boussier 2025-08-27 16:13:16 UTC
インスタンス変数の代入処理で inline cache の扱いが T_OBJECT 以外のタイプのオブジェクトの時に一貫性がなくて無駄な処理が発生してた可能性があったのを修正しているようです。また Class/Module のインスタンス変数の処理にも専用の関数を用意して inline cache による最適化が効くようにしている? みたいです。
[6023195fbd] Nobuyoshi Nakada 2025-08-28 10:01:48 UTC
実行プログラム名を ruby から変更している時の make のターゲットとして make ruby を受け付ける機能を GNU make の時だけサポートするようにしています。