ruby-trunk-changes 2023-01-22

今日は Integer#ceildiv の引数が数値でない時に corece を呼ぶようにする修正やトップレベスクリプトの coverage が取れないことがある不具合の修正などがありました。

[2c93c55401] Samuel Williams 2023-01-21 21:51:59 UTC

iseq.c の rb_iseq_new_top() から現在 coverage 情報がセットアップ済みかチェックしてまだなら iseq_setup_coverage() を呼んでおく処理を iseq_new_setup_coverage() という関数に切り出して rb_iseq_new_main() から呼ぶようにしています。コマンドラインオプションの -r でロードしたスクリプトから coverage を有効にした時にうまくトップレベルのスクリプトの coverage が取れないという不具合の修正のようです。 https://github.com/ruby/ruby/pull/7169 [ruby-core:111950] [Bug #19360]

[f5ea43a2e6] Samuel Williams 2023-01-22 00:49:13 UTC

2c93c554019ebdc394d3c51c6d925620d3005f84 の修正とも関連して coverage のテストを test-all と rubyspec に追加しています。 https://github.com/ruby/ruby/pull/7171 [ruby-core:111950] [Bug #19360]

[cad09f7098] Nobuyoshi Nakada 2023-01-22 02:32:19 UTC

object.c の switch 文の case のブロックにかっこを書く時のスタイルを修正しています。

[20a85ab611] Kouhei Yanagita 2023-01-22 09:53:02 UTC

Integer#ceildiv が引数が数値でない時に coerce メソッドを呼んでいなかったのを修正しています。 Integer#ceildiv は ruby 実装になっていますが、引数に単項演算子メソッドの @- を呼んでたのを 0 - other として Integer#- メソッドに渡すようにしています。なるほど、確かに単項演算子メソッドで coerce するわけにはいかないですからね。……とはいえ数値として振る舞うべきクラスなら @+ と @- も定義しておくべきというのも一理ある。 https://github.com/ruby/ruby/pull/7118 [ruby-core:111816] [Bug #19343]