ruby-trunk-changes r32071 - r32084

今日の変更は Coverage.start が何度も再実行できるようになったことや Fiber のコンテキストスイッチGC の余分なマークをする可能性があったのを修正しているものなどです。

mame:r32071 2011-06-14 01:06:26 +0900

拡張ライブラリ coverage の Coverage.start を Coverage.result で集計を終了した後に再度呼び出しても動作できるように改造しています。 [ruby-core:36539] [Feature #4796]

mame:r32072 2011-06-14 01:12:52 +0900

r32071 の Coverage.start の変更のぶんのテストを追加しています。[ruby-core:36539] [Feature #4796]

nobu:r32073 2011-06-14 02:23:18 +0900

r32065 で追加された io/console のテストで端末から切り離された時の動作のテストを Windows での対応をしています。Process.daemon が利用できない環境で rubyw (Windows 版でコンソールなしで起動する実行体)が利用できる時に rubyw を使って起動してテストするようにしています。

naruse:r32074 2011-06-14 09:48:19 +0900

test/syck/test_yamlstore.rb で YAML::ENGINE.yamler を明示的に "syck" と指定してテストするようにしています。

naruse:r32075 2011-06-14 10:06:41 +0900

どういう理由かわからないですが(定数の再定義を回避?) test/syck/test_yamlstore.rb で require 'syck' はせずに定数 Syck::Store に YAML::Store を設定しています。

naruse:r32076 2011-06-14 10:38:56 +0900

昨日あたりの openssl のテストの修正のどれかで、setup で OpenSSL のエラーが残ってしまっていてテストでそのエラーが報告されてしまうのでとりあえずテスト前に OpenSSL.errors でエラーキューから pop しておくようにしています。そういえば openssl はエラーがエラーキューに蓄積するのでエラー時に適切に取り除いておかないと後で検出されてしまうのでしたね。 [ruby-dev:43791] [Bug #4879]

nari:r32077 2011-06-14 11:13:51 +0900

gc.c でコンパイル時の警告除去のために変数の型を変更しています。

nari:r32078 2011-06-14 11:13:52 +0900

GC 用のパラメータを環境変数 RUBY_HEAP_MIN_SLOTS から取り込んで initial_expand_heap を呼び出すのは RUBY_HEAP_MIN_SLOTS が設定されていた時だけ呼ぶようにしています。

nobu:r32079 2011-06-14 13:07:03 +0900

IO.console の端末から切り離されたプロセスで実行した時のテストはメソッド内でプラットフォームによって分岐していたのを、分岐毎にメソッドを定義するように変更しています。

nobu:r32080 2011-06-14 13:09:43 +0900

make love で最初に $(SUDO) コマンドが利用可能かチェックを追加しています。SUDO=sudo のように install で sudo を利用するように指定されていた時にコンパイルする前に実行可能かチェックするようにしているようです。

akr:r32081 2011-06-14 19:51:25 +0900

test/ruby/test_autoload.rb で Dir.mktmpdir で一時ディレクトリを作成してそのままになっていたのを、ブロック付きの呼び出しを利用してテスト終了後に削除するようにしています。

nagachika:r32083 2011-06-14 21:57:50 +0900

Fiber のコンテキスト切り替えのタイミングで GC が走ると、rb_context_t::saved_thread の machine_stack_start, machine_stack_end がカレントスレッドからコピーされたままになっていて、GC のマークフェーズでマシンスタックを余分にマークしていたので、saved_thread へコピーした直後に必ず 0 クリアしておくようにしています。 [ruby-dev:43680] [Bug #4855]

nagachika:r32084 2011-06-14 22:00:53 +0900

r32083 の修正の ChangeLog のエントリに ML とチケット番号の記述を追加。