ruby-trunk-changes 2021-02-17

今日はブロックの不要な catch table を作らないようにする最適化などがありました。

[938e027cdf] Aaron Patterson 2021-01-26 23:49:21 UTC

do ... end のブロックに begin なしで rescue/ensure 節を書けるようになった影響か、rescue/ensure を使っていないブロックでも VM 命令列にした時に catch table が作成されてしまっていたので、不要な時には作成しないようにする VM 命令列へのコンパイル時の最適化を追加しています。 [ruby-core:102418] [Feature #17613]

[7bd9329362] git 2021-02-16 22:00:53 UTC

version.h の日付更新

[33b8bd97a8] Peter Zhu 2021-02-16 22:27:35 UTC

gc.c の gc_page_sweep() で T_NONE 型のスロットを処理する時に free list に追加してたのをやめています。実際には直前の if 文が真になることがなくて通らないパスになってたようです。

[42a16e5974] Nobuyoshi Nakada 2021-02-17 11:15:05 UTC

33b8bd97a8e7d894c3e19b7362884c4882bf38e0 の続き? gc.c の gc_page_sweep() の was_compacting という変数が不要になってたので宣言と代入しているところを削っています。