ruby-trunk-changes 2022-02-17

今日は主に YJIT 関係の不具合修正と、リリースビルドで -v でパッチレベルを表示しないようにする変更がありました。

[f9abb286fb] Nobuyoshi Nakada 2022-02-16 12:09:17 UTC

yjit_iface.c のマクロ CODE_PAGE_SIZE の定義にかっこを追加しています。

[71afa8164d] Peter Zhu 2022-02-15 14:55:53 UTC

YJIT の実装で利用している darray.h の rb_darray_append() というマクロで要素を追加するバッファの余裕がない時に rb_bug() で異常終了させてたのを ruby_xrealloc() を使ってメモリが足りなかったら GC するようにする rb_darray_append_with_gc() というマクロも追加しています。がこれは使ってないですね。失敗した時にはどうするんだろ……。darray のバッファサイズの型を int32 から size_t に変更していますがメモリが足りない時の結果が変わるわけではないですよね。

[969ad5802d] Peter Zhu 2022-02-15 14:57:33 UTC

load.c で loaded features の管理に Array オブジェクトを利用していたのをかわりに darray.h の rb_darray() による型を利用するようにしています。darray は可変長の C の配列にヘッダをつけたものをマクロの集合で管理するというものみたいです。

[797e8f542e] Alan Wu 2022-02-16 15:34:06 UTC

yjit_core.c の RUBY_ASSERT() の式で符号有無が一致しない整数間の比較が警告が出ていたので不要なキャストを消しています。 71afa8164d40f18306fc2ee5a1ccc74f2926379b の変更への追随ですね。

[fabf60c93b] git 2022-02-16 15:34:19 UTC

version.h の日付更新

[5f01fba001] Yusuke Endoh 2022-02-16 15:36:08 UTC

yjit_codegen.c の gen_send_iseq() で引数の数の上限チェックで 1つ上限が多く許容されてしまっていたのを修正しています。 Coverity Scan で検出されたとのこと。久しぶりですね。

[9f81d9f92d] Hiroshi SHIBATA 2022-01-27 00:55:41 UTC

リリースバージョンの ruby -v などで表示される patchlevel の定数マクロ RUBY_PATCHLEVEL_STR を空文字列にしています。次のリリースからパッチレベルは表示されなくなるようです。 [ruby-core:107278] [Feature #18513]

[fdf0f8d814] Koichi Sasada 2022-02-17 09:57:33 UTC

bootstraptest/runner.rb で -v オプションが指定された時に -q オプションによる quiet の指定を打ち消すようにしています。

[dfe7faa6b6] Kazuhiro NISHIYAMA 2022-02-17 10:01:33 UTC

test/excludes/TestThread.rb で除外するテストメソッド名を文字列で指定してたのを Symbol に変更しています。