ruby-trunk-changes r43080 - r43082

今日は VM スタックの再初期化漏れで GC のタイミングで落ちる可能性のあった不具合の修正と、Math.log, log2, log10 に Bignum を渡すと結果が間違って返ってくる場合があった不具合の修正がありました。

nobu:r43080 2013-09-28 23:25:59 +0900

Math.log, Math.log2, Math.log10 の引数に Bignum が渡された時に大きすぎる時に右シフトで double の精度に入るまで小さくしておく前処理のシフト量の保存が、実際にシフトされなかった時にも残ってしまっていて結果が不正になっていた不具合を修正しています。 r42870 の最適化で入った不具合のようなので trunk のみ影響があるみたいです。

ktsj:r43081 2013-09-29 18:50:24 +0900

キーワード引数をもつメソッドへの呼び出し時に VM スタックの初期化漏れで回収済みのオブジェクトへの参照が残っていることがあり、次の mark 処理時に rb_bug() でエラーになる可能性があった不具合を修正しています。 [ruby-dev:47729] [Bug #8964]
これもあんまりちゃんと追跡していないのですが 2.0.0-p322 では再現しないので多分 trunk だけだと思います。メソッド呼び出しの高速化のあたりで入り込んだのでしょう、多分……。

svn:r43082 2013-09-29 18:50:28 +0900

version.h の日付更新。