以下の内容はhttps://ruby-trunk-changes.hatenablog.com/entry/ruby_trunk_changes_20251115より取得しました。


ruby-trunk-changes 2025-11-15

今日は主に prism の SyntaxError になるべきものがなってなかった不具合の修正や ZJIT の最適化などがありました。

[0e604623d8] Nobuyoshi Nakada 2025-11-14 01:51:20 UTC

prism でメソッドの存在チェックに instance_methods + include? を使ってたのを method_defined? を利用する最適化。

[bec69617a0] Earlopain 2025-11-03 11:24:38 UTC

prism がデフォルト値つきのブロックパラメーターのデフォルト値の部分に 1行メソッド定義を書くような記法を許容してしまっていたのを SyntaxError になるように修正しています。 [ruby-core:123632] [Bug #21661]

[286e326299] Randy Stauner 2025-11-14 17:28:19 UTC

ZJIT のテストにキーワード引数を渡したメソッド呼び出しのテストケースのパターンを増やしています。 https://github.com/ruby/ruby/pull/15183

[e4295bc3f7] John Hawthorn 2025-11-13 20:01:55 UTC

YJIT で String#dup の最適化時のコードで VM スタック操作の不具合を修正しています。

[946695cdad] Takashi Kokubun 2025-11-14 17:51:36 UTC

GitHub Actions の ZJIT のテストを実行する workflows で変数 TESTOPTS の指定に環境変数 RUBY_TESTOPTS の値も混ぜるようにしています。

[d966ba757c] Takashi Kokubun 2025-11-14 18:16:10 UTC

946695cdad874e91bc25bedc3c7b322934ca0f07GitHub Actions の ZJIT テストの workflows の変更を revert しています。 make test-bundled-gems で期待したように機能しなかったとのこと。

[de157f423e] Takashi Kokubun 2025-11-14 18:46:42 UTC

ZJIT のテスト時に標準添付ライブラリ resolv の複数の DNS を利用するテスト? を skip するようにしています。 https://github.com/ruby/ruby/pull/15192

[8e01768a41] Max Bernstein 2025-11-14 19:49:09 UTC

ZJIT で C 実装されたメソッドの呼び出しで最適化できない時の理由を統計情報で理由別に集計できるようにしています。 https://github.com/ruby/ruby/pull/15193

[94f701da41] Max Bernstein 2025-11-14 18:56:20 UTC

ZJIT で Integer#== のインライン化の実装を整理(リファクタリング?)しています。

[47904d859e] Max Bernstein 2025-11-14 19:17:07 UTC

ZJIT の Integer#+ メソッドのインライン化の実装も整理しています。

[4683ce5fec] Max Bernstein 2025-11-14 19:37:49 UTC

以下同様で ZJIT での Integer#- のインライン化の実装を整理しています。

[ad6ca3a7aa] Max Bernstein 2025-11-14 19:39:22 UTC

ZJIT での Integer#> のインライン化の実装を整理しています。

[7a7035eead] Max Bernstein 2025-11-14 19:50:13 UTC

ZJIT での Integer#!= のインライン化の実装を整理しています。

[f0e57720e4] Max Bernstein 2025-11-14 19:53:22 UTC

ZJIT での Integer#* のインライン化の実装を整理しています。

[0851c2aa66] Max Bernstein 2025-11-14 19:54:40 UTC

ZJIT での Integer#/ のインライン化の実装を整理しています。

[1170493203] Max Bernstein 2025-11-14 19:58:07 UTC

ZJIT での Integer#% のインライン化の実装を整理しています。

[1c4240bcca] Max Bernstein 2025-11-14 20:00:18 UTC

ZJIT での Integer#< のインライン化の実装を整理しています。

[236366cbea] Max Bernstein 2025-11-14 20:01:59 UTC

ZJIT での Integer#<= のインライン化の実装を整理しています。

[35c2c656da] Max Bernstein 2025-11-14 20:03:17 UTC

ZJIT での Integer#>= のインライン化の実装を整理しています。

[22d2bb0132] Max Bernstein 2025-11-14 20:04:33 UTC

ZJIT での Integer#& のインライン化の実装を整理しています。

[491be5781a] Max Bernstein 2025-11-14 20:06:46 UTC

ZJIT での Integer#| のインライン化の実装を整理しています。

[e417f6fec9] Max Bernstein 2025-11-14 20:11:26 UTC

こまでの一連の変更で不要になった ZJIT の Rust 実装の関数を削除しています。

[a0cce404e5] Alan Wu 2025-11-14 20:52:58 UTC

ZJIT の Rust 実装の解決済みの TODO コメントを削除しています。

[5d35e24464] Alan Wu 2025-11-14 20:05:19 UTC

ZJIT でメソッド呼び出し時の引数の数がメソッド定義から許容される数になっているかのチェックを追加しています。これまで不正な数での呼び出しで最適化がおきると不具合が発生してしまう可能性があったみたいです。

[89849f3b4a] Alan Wu 2025-11-14 20:20:01 UTC

ZJIT で JIT 化されたメソッドからさらに JIT 化されたメソッドを呼ぶ機能に省略可能引数を渡した呼び出しもサポートするように機能拡張しているようです。

[eb6e36a87d] Peter Zhu 2025-11-14 03:03:52 UTC

C API のテストで M:N Thread 利用時に LSAN がメモリリークを誤検出(というか現在の実装の既知の制限?)するテストを skip するようにしています。

[6fabca80a3] "Daisuke Fujimura (fd0)" 2025-11-14 14:53:20 UTC

GitHub Actions の Cygwin の workflow でサードパーティーライブラリとして rubygems をインストールするようにしています。 make extract-gems の実行のために必要みたいです。同梱しているものではだめなのかな。

[d7369f027b] Randy Stauner 2025-11-12 22:25:41 UTC

ZJIT の Rust 実装のテストを追加しています。

[f1765cd402] Herwin 2025-11-14 17:36:06 UTC

doc/box.md にまだ Namespace に由来する ns という省略形が残ってたのを box に修正しています。

[70b49b6571] YO4 2025-11-14 16:15:41 UTC

IO#each_codepoint の実装で io_read_encoding() の呼び出しをループ内で繰り返していたのを、結果が不変のはずということでループ前に 1回呼んで結果を使いまわすようにしています。うーむ、まあ途中で変化してしまったらそれはそれで大丈夫なのか? とは思うけど、rb_yield() でブロックを呼び出しているから任意の ruby コードが動くのでなぁ。少しだけ調べてみるとどうもやはり途中で IO#set_encoding すること自体はできてしまって、その時に新しい Encoding における1文字(codepoint)ぶんのバイト列がかえってきたものを rb_enc_codepoint() で処理しようとしてしまう可能性がありそう。
[追記]と思って以下のような例を作って実験してみたところ、3.3.10 でも途中で encoding が変わっても追随していなかったので元の挙動から変わっていないようです。[/追記]

open("tmp.txt", "rb:ascii-8bit") do |io|
  io.each_codepoint do |c|
    p c
    if c == '2'.ord
      io.set_encoding(Encoding::UTF_8)
    end
  end
end
File.unlink("tmp.txt")

[577cf5e384] Nobuyoshi Nakada 2025-11-15 03:07:44 UTC

doc/command_line/environment.md というコマンドラインオプションについてのドキュメントのファイルを削除しています。 doc/ruby/options.md に移行済みだったようです。




以上の内容はhttps://ruby-trunk-changes.hatenablog.com/entry/ruby_trunk_changes_20251115より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14