ruby-trunk-changes 2022-01-09

今日は再度 Variable Width Allocation がデフォルトで無効になる変更や YJIT の C API 呼び出し時の処理の最適化などがありました。

[b5c039125f] John Hawthorn 2022-01-05 08:47:10 UTC

YJIT の生成コードから C API の関数呼び出し時の VM のスタックポインタの退避を関数の引数処理の後に移動しています。うーんおそらくマシンスタックの話と VM のスタックの話が入りまじっててちょっとむずかしいですね。たぶんですが VM のほうのスタックポインタを一時的にレジスタに退避するのが引数の数が固定の時には不要なのでそれを省略できるようにしたということみたいです。

[18b97eee5a] John Hawthorn 2022-01-05 09:07:52 UTC

YJIT の生成コードから C API の関数呼び出しをする gen_send_cfunc() で Ruby の Array オブジェクトを引数リストとして渡す呼びかたをサポートするように機能を追加しています。

[a5fffb314b] git 2022-01-08 19:41:10 UTC

version.h の日付更新

[33cc8816be] Peter Zhu 2022-01-08 20:07:57 UTC

昨日 c365c5921ea26e31c03a85b01ff4c04629abfc10 で再度デフォルトで有効にした Variable Width Allocation ですが、また revert されています。 CI で問題が発覚したのかな。

[8648457541] Samuel Williams 2022-01-08 23:06:20 UTC

doc/hacking.md の rubyspec の実行のところに make test-all test-rubyspec となぜか test-all も書かれてたので削っています。

[cc01ae591b] Nobuyoshi Nakada 2022-01-09 03:34:11 UTC

8648457541ec016b1d9d305d9d3ea29fb93ca336 の続きで doc/hacking.md の make test-rubyspec を make test-spec と修正しています。

[a7faca51ac] Kazuhiro NISHIYAMA 2022-01-09 03:39:34 UTC

コマンドラインオプションで YJIT のコード生成を制御する --yjit-call-threshold と --yjit-max-versions のヘルプメッセージにオプションを受け取ることがわかるように "=num" のように末尾に追加しています。

[83983bacbc] Nobuyoshi Nakada 2022-01-09 03:39:26 UTC

doc/hacking.md に全テストを実施する make check の紹介を追加しています。

[b43ad6b802] Nobuyoshi Nakada 2022-01-09 03:41:30 UTC

doc/hacking.md の 1行に長く文が書かれてるところを適当に改行を追加しています。

[65a8d52212] Nobuyoshi Nakada 2022-01-09 10:17:48 UTC

9ad34da47ff7d71446e667897559047ed5635b60 で doc/extension.rdoc と doc/extension.ja.rdoc に RBOOL() マクロについて追記したのを revert しています。 RBOOL() は公開ヘッダで定義されていないため。そういえばそうですね。 [ruby-core:79066] [Feature #13125]