ruby-trunk-changes r59985 - r59989

今日は Integer#fdiv の引数に Integer でも Float でもないオブジェクトを渡した時に変換がされてなくて不正な結果になる不具合の修正などがありました。

nobu: r59985 2017-09-21 21:26:16 +0900

defs/gmake.mk のテストのターゲットが複数回現れた時に順番に実行するように定義している変数 ORDERED_TEST_TARGETS に test-bundler-prepare test-bundler も追加しています。

nobu: r59986 2017-09-22 12:05:02 +0900

rb_big_fdiv_double() および fix_fdiv_double() でオブジェクトの型が T_FLOAT でない時に RFLOAT_VALUE() を使って double の値を得ようとしてしまっていたので、変換を含む NUM2DBL() マクロを利用するように修正しています。うわー、これいつからだろう。2.4.2 にはこの不具合が含まれているようですが。 [ruby-core:82924] [Bug #13928]

svn: r59987 2017-09-22 12:05:03 +0900

version.h の日付更新。

nobu: r59988 2017-09-22 13:56:24 +0900

rb_num2ll()、rb_num2ull()、fix_pow() などで引数が T_FLOAT 型のオブジェクトの時に RFLOAT_VALUE() をチェックのために複数回呼んでいたところがあったので、変数に格納して使いまわすようにしています。

nobu: r59989 2017-09-22 20:21:34 +0900

TRICK 2013 というイベント(Ruby の難読プログラミングコンテスト)の受賞作品を収めている sample/trick2013/yhara/entry.rb で、2.4 以降トップレベルでの return がエラーにならなくなったために動作しなくなった作品があったので、動くように return を yield に変更しています。 https://github.com/ruby/ruby/pull/1703