ruby-trunk-changes r66756 - r66759

今日は Array#reject! が shared array を変更してしまう可能性があった不具合修正などがありました。

tenderlove: r66756 2019-01-09 04:22:05 +0900

Array#reject! の実装 rb_ary_reject_bang() で rb_ary_modify() の呼び出しが漏れてて、内部的にヒープを共有している配列の場合にコピーせずに共有元を変更してしまう不具合があったのを修正しています。これはでかいですね。しかも 2.4, 2.5 にも同じ不具合あがあるという。意外と気がつかれないんだな。 [ruby-core:90781] [Bug #15479]

svn: r66757 2019-01-09 04:22:11 +0900

version.h の日付更新。

mrkn: r66758 2019-01-09 16:05:37 +0900

complex.c の f_zero_p() で引数が Float の時のメソッド呼び出しをバイパスする最適化を追加しています。

nobu: r66759 2019-01-09 17:43:50 +0900

r66758 で internal.h に FLOAT_ZERO_P() の定義が追加されたため不要になった rational.c での同じマクロ定義を削除しています。