ruby-trunk-changes r45953 - r45961

今日は test/unit の並列テスト時の rescue 節内での skip がエラーになる問題の修正や、GC の調整などがありました。

shirosaki: r45953 2014-05-15 21:31:26 +0900

test/unit の並列実行でテストで例外発生時に rescue 節で skip を読んだ時に MiniTest::Skip 例外オブジェクトの Marshal.load で不明の Class/Module で例外になってしまうので、MiniTest::Skip 例外を送信する前に改めて MiniTest::Skip 例外オブジェクトを新規に作成したものを dump して送るようにしています。 これおそらく rescue 節内で発生させた例外に cause で元になった例外が格納されるようになったために、親プロセスも確実に知っている MiniTest::Skip 例外はそのまま送信しようとしたところ、そこに親プロセスにとって未知な例外オブジェクトも潜んでいたっていうことなんでしょうね。なるほどなー。 [ruby-core:62133] [Bug #9767]

shirosaki: r45954 2014-05-15 21:31:36 +0900

configure でアーキテクチャi386-pc-mingw32 の時も SSE2 を有効にするコンパイラオプションを付けるようにしています。 [ruby-core:62095] [Bug #8358]

nobu: r45957 2014-05-16 17:22:41 +0900

Dir.glob で "**" のパターンを検出する時に文字列の終端を先にチェックしてその後を読んでしまわないように修正しています。

svn: r45958 2014-05-16 17:22:53 +0900

version.h の日付更新。

ko1: r45959 2014-05-16 17:38:04 +0900

gc_before_sweep() で heap_pages_swept_slots を 0 にリセットしていたのを heap_pages_increment を元に初期化するように修正しています。コミットログによると malloc_limit の閾値によって GC が実行される時は heap_pages_increment が 0 でない場合もあるから、とのことです。

ko1: r45960 2014-05-16 17:41:06 +0900

GC の統計情報で major GC 時に young object 数を old object 数ぶん増やすようにしています。 old object は major GC 時には全て(一旦?) young object になるからだそうです。ほー、そうなのか。

kazu: r45961 2014-05-16 18:18:51 +0900

r45953 の ChangeLog エントリの typo 修正。