ruby-trunk-changes r40547 - r40564

今日は Windows 版の Process::Status の機能の充実と Module#prepend にまつわる不具合修正、また minitest の最新版のマージなどがありました。

zzak:r40547 2013-05-02 11:24:33 +0900

lib/yaml.rb の YAML::EngineManager とその yamler= メソッドに rdoc の :nodoc: タグをつけています。また syck が削除されたことを追記しています。 [ruby-core:54665] [Bug #8344]

svn:r40548 2013-05-02 11:24:37 +0900

version.h の日付更新。

usa:r40549 2013-05-02 11:34:11 +0900

丁稚な日々 不定期連載「『なるほどUnixプロセス』で学ぶWindows版Rubyの基礎」〜第10章 終了コードの闇 で解説されていたように Windows 環境では子プロセスの終了ステータスを表す Process::Status の success? などのメソッドがうまく動いていなかったのですが、異常終了の原因コードをそれぞれシグナルにマッピングして termsig などを取れるようにしたみたいです。

usa:r40550 2013-05-02 12:34:15 +0900

r40549 で Windows でも Process::Status の exited?, signaled?, stopped?, termsig などが使えるようになったのでテストで除外していたものを通すようにしています。

usa:r40551 2013-05-02 12:35:37 +0900

r40549 で追加した終了コードとシグナルの対応を保持する変数に const を付けています。

nobu:r40552 2013-05-02 13:02:32 +0900

Process.spawn で spawnv(2) を使う環境で、spawnv() そのものが失敗した時に終了ステータスとして 127 をセットする処理を削っています。そのかわり(?) Windows 環境でのみ rb_spawn_process() で spawn に失敗したら終了ステータスにセットしていた処理を常に実行するようにしています。

ryan:r40553 2013-05-02 13:48:43 +0900

minitest の 4.7.4 (8483) をマージしています。いくつか新しい assertion メソッドの追加やメソッド群をモジュールに切り出すリファクタリング、等々という感じです。結構差分大きいので他にも変更点見落してそう。

naruse:r40554 2013-05-02 15:07:17 +0900

r40553 の minitest のマージで失敗したテストケースの表示が変化したために TestUnit のテストが失敗するようになっていたので、TestUnit のテスト側(test/testunit/test_parallel.rb)を対応しています(ややこしい)。

naruse:r40555 2013-05-02 15:30:56 +0900

同じく r40553 の minitest のマージで require が足りていなくて test-all が失敗していたのを修正。

nobu:r40556 2013-05-02 16:54:17 +0900

Init_xxx() で rb_intern して static 変数に格納して使っていた ID を defs/id.def に移動して事前に定義しておくシンボルのリストを増やしています。

nobu:r40557 2013-05-02 16:55:50 +0900

r40556 と同様に thread.c で "locals" というシンボルを毎回 rb_intern() していたのを、事前に定義済みの ID を使うようにしています。

nobu:r40558 2013-05-02 17:30:56 +0900

ivar_get() を rb_ivar_lookup() と改名して、未定義のインスタンス変数の警告を generic_ivar_get(), ivar_get() で出力していたのを、呼び元の rb_ivar_get() でまとめて出力するようにしています。

nobu:r40559 2013-05-02 17:32:48 +0900

marshal_dump, marshal_load が定義されていた時の Marshal.load で、marshal_load に渡されるオブジェクトのインスタンス変数を load 結果にコピーしていた処理で、既に marshal_load でセット済みのインスタンス変数にはコピーしないようにしています。 [ruby-core:54334] [Bug #8276]

nobu:r40560 2013-05-02 22:11:55 +0900

bin/irb の不要な if $0 == __FILE__ の条件分岐を削除しています。
ChangeLog の sample/irb.rb は bin/irb.rb の間違いでしょうか?

nobu:r40561 2013-05-02 23:23:56 +0900

Module#< や Module#=== など Module/Class の継承関係をチェックするメソッド群が Module#prepend で挿入された Module があると正しく検出できない不具合を修正しています。 [ruby-core:54736] [Bug #8357]

ayumin:r40563 2013-05-03 00:22:27 +0900

make distclean-ext と realclean-ext に clean-ext (r40340 で追加された)と同様にタイムスタンプファイルを削除するルールを追加しています。

svn:r40564 2013-05-03 00:22:44 +0900

version.h の日付更新。