今日は主に Module#set_temporary_name の引数チェックの内容変更や YJIT の統計情報カウンタの追加などがありました。
[75f8781c08] Nobuyoshi Nakada 2023-07-06 12:16:00 UTC
GitHub Actions で古い clang を使う時に YJIT を無効化するよう configure のオプションをつけるようにしていましたが、configure のほうで objcopy が使えないものだった場合に自動的に YJIT を無効化するようにして明示的なオプションはつけないように GitHub Actions のほうは戻しています。
[2acb44e044] Maxime Chevalier-Boisvert 2023-07-06 14:17:03 UTC
YJIT の --yjit-stats で報告する統計情報に compiled_iseq_entry というカウンタを追加しています。言葉どおりいくつの ISeq をコンパイルしたか(メソッド数かブロックごとの ISeq も含めてかな?)のカウンタのようです。 https://github.com/ruby/ruby/pull/8032
[e76022f41c] Benoit Daloze 2023-07-06 11:32:23 UTC
rubyspec の Module#set_temporary_name メソッドのテストを専用のファイルに分離しています。
[9ee1877e4a] Benoit Daloze 2023-07-06 11:25:21 UTC
Module#set_temporary_name がまともな定数として使える名前だったらエラーにしている処理で "::" で区切られた名前空間つきの定数も弾くようにしています。
[055f7219bc] Benoit Daloze 2023-07-06 14:34:28 UTC
9ee1877e4ab535253b4f61302b9102d20e11db5a の続きで Module#set_temporary_name でつける名前が定数っぽい名前だった時の例外メッセージをもう少し詳しく説明的にしています。
[06c2d3e0a0] Jemma Issroff 2023-07-06 17:26:26 UTC
yarp の upstream からのマージ。
[48d95de6a6] Takashi Kokubun 2023-07-06 19:51:01 UTC
YJIT でコンパイルしたコードから C の関数呼び出しする命令を生成する Assembler.ccall() という関数(メソッド?) 内でレジスタの退避を行う spill_temps() を呼ぶようにして呼び元で呼ばなくて良いようにしています。 https://github.com/ruby/ruby/pull/7920
[a642a94b68] Hiroshi SHIBATA 2023-07-07 00:16:15 UTC
75f8781c08da421d6bcfb2c3c8b7b74efea3bec2 で configure で objcopy が YJIT のために使えないバージョンだった時に自動的に YJIT を無効化していたのを revert しています。 macOS で YJIT が無効になってしまってたみたいです。