ruby-trunk-changes 2022-01-01

2022年初日の今日は YJIT のキーワード引数の処理の不具合修正や blocking fiber 用の Scheduler 利用時の read の不具合修正、Random::DEFAULT 定数の削除などがありました。

[60e9aa5733] Nobuyoshi Nakada 2021-12-31 14:59:04 UTC

NEWS に Removed C APIs というセクションを追加して rb_cData の削除と taint/untrust に関する API の削除について追記しています。

[f59b2e440e] Nobuyoshi Nakada 2021-12-31 14:59:50 UTC

NEWS に Removed methods というセクションを追加して Dir.exists? と File.exists? の削除について追記しています。

[2fac066b3a] git 2021-12-31 15:00:30 UTC

version.h の日付更新

[5414de4b6e] John Hawthorn 2021-12-30 19:13:37 UTC

YJIT で省略可能引数と複数のキーワード引数を受け取るメソッドで宣言時の順番と異なるキーワード引数の渡しかたをした時? に引数の処理が間違っていたのを修正しています。 [ruby-core:106923] [Bug #18453]

[243320d22f] Samuel Williams 2022-01-01 07:23:47 UTC

rb_read_internal() で blocking fiber のための Scheduler 利用時の rb_fiber_scheduler_io_read_memory() API にバッファサイズとしてだけ渡して読み込みサイズは 0 で呼び出すようにしています。これだと読み込まれないのでは……と思ったけどここの length は read メソッドではなく Scheduler の io_read というメソッドに渡されて、読み込むまでブロックする最短のサイズのことを意味しているので、これで良いみたいです(すぐに読めなかったらすぐ return する)。これまで length にもバッファサイズと同じ数値を渡していたので全て読み込むまで待ってしまっていたみたいです。 https://github.com/ruby/ruby/pull/5353 [ruby-core:106854] [Bug #18443]

[77ee47188e] Nobuyoshi Nakada 2022-01-01 07:06:07 UTC

numeric.c の static 関数 int_zero_p() の戻り値を VALUE から bool に変更して、呼び元に必要に応じて RBOOL() でオブジェクト(VALUE)化するようにしています。

[069cca6f74] Nobuyoshi Nakada 2022-01-01 06:41:00 UTC

真偽値を反転して使っているところで RBOOL() を使うようになってないところがあったので否定文を引数に受け取る RBOOL() を使うようにリファクタリング

[789da481fc] Nobuyoshi Nakada 2022-01-01 07:57:22 UTC

insns.def の VM 命令 checktype の実装や RubyVM::YJIT.enabled? の実装の Primitive.cexpr! の引数でも RBOOL() を使うようにリファクタリング

[84891bffe8] Nobuyoshi Nakada 2020-11-27 12:42:46 UTC

rubyspec から Random::DEFAULT の値についての spec を削除しています。

[fae0b66431] Nobuyoshi Nakada 2022-01-01 02:36:54 UTC

deprecated な定数として宣言していた Random::DEFAULT を削除しています。3.0 で depreacted にしてたと思うのでわりとすぐ消されましたね。 [ruby-core:101124] [Feature #17351]