ruby-trunk-changes r56551 - r56558

今日は標準添付ライブラリ fileutils の FileUtils.cp の不具合修正や GC 関連の不具合修正、sprintf での Float の丸めの仕様変更などがありました。

nobu: r56551 2016-11-04 10:35:49 +0900

標準添付ライブラリ fileutils の FileUtils::Entry_#copy で lstat が抜けていて誤ったエラーが発生していたのを修正しています。 [ruby-core:77885] [Bug #12892]

svn: r56552 2016-11-04 10:35:49 +0900

version.h の日付更新。

nobu: r56553 2016-11-04 10:51:18 +0900

拡張ライブラリ pathname で Pathname#hash の実装で rb_str_hash() の戻り値を INT2FIX() で変換していたのを st_index_t からの変換用マクロ ST2FIX() に修正しています。 mingw/mswin で不具合があったそうです。

mrkn: r56554 2016-11-04 13:05:07 +0900

2.4 から追加された Integer#digits メソッドで引数に指定された base が負の時に例外メッセージを変えるようにしています。 [ruby-core:77502] [Bug #12815]

mrkn: r56555 2016-11-04 13:29:00 +0900

r56554 の ChangeLog エントリに ML とチケットの参照を追記しています。

naruse: r56556 2016-11-04 15:37:09 +0900

configure でコンパイラに --version や -V などのオプションを渡した時のメッセージを保存して rbconfig.rb の RbConfig::CONFIG["CC_VERSION_MESSAGE"] で参照できるようにしています。 [Feature #12896]

nobu: r56557 2016-11-04 16:31:47 +0900

Kernel#sprintf や String#% での整形で %f で指定の精度に丸める時に、ちょうど半分の時に丸める方向をその上の桁が偶数になるように丸めるように変更しています。つまり 0.025 を小数点以下2桁までに丸めると 0.02 に、0.35 は 0.04 になるという感じです。 [ruby-core:77864] [Bug #12889]

ko1: r56558 2016-11-04 17:54:46 +0900

gc.c の heap_page_resurrect() で tomb_pages から空きの heap_page を返す時に freelist が NULL で空きスロットがないものを返さないようにしています。 rb_objspace_t::heap_tomb に入っているのに freelist が NULL ってことはあるのかなぁ。 全て finalizer 待ちの状態で Zombie の slot ってことでしょうか。 r43461 で freelist が NULL でも返すようにされていましたが、実質これを revert しているようです。 [ruby-core:76837] [Bug #12670]