ruby-trunk-changes r33365 - r33368

今日は GC 用のパラメータを環境変数で設定した時に SEGV などすることがある不具合の修正がありました。

nobu:r33365 2011-10-01 04:50:25 +0900

Bignum#to_s に割り込みができることを確認しているテストで、1秒決め打ちで待っていたので高速なCPUで失敗する可能性があったのをフラグを見て Thread.pass でビジーループするように変更しています。

svn:r33366 2011-10-01 04:50:30 +0900

version.h の日付更新。

nobu:r33367 2011-10-01 04:50:38 +0900

test/ruby/test_bignum.rb の assertion が assert を使っていたところを assert_operator や assert_send などチェック内容に応じたメソッドを使うようにリファクタリングしています。

nagachika:r33368 2011-10-01 10:00:40 +0900

現在の trunk と 1.9.3 は環境変数から GC のパラメータを設定する機能がありますが、そのうち RUBY_HEAP_MIN_SLOTS を変更してヒープスロットの数を拡張した場合、その前に初期値で確保したヒープが既に拡張済みだとヒープスロットの空きを意味する変数が設定されていて、これを 0 クリアしていなかったのでその後の処理で不正メモリアクセスを起こして SEGV などを発生させる不具合がありました。パラメータの設定でヒープを拡張してスロットを埋めた時に heaps_inc を 0 にリセットするようにしています。 [ruby-core:39777] [Bug #5380]
またそのテストのために assert_normal_exit に子プロセスに環境変数を渡すオプション :child_env を追加しています。