ruby-trunk-changes r30864 - r30873

今夜は関東は大雪ですね。皆さん足元にはお気をつけて。
Windows 環境での system などによるコマンド呼び出しの修正(変更?)、IO 待ち中に別のスレッドで close すると IOError を送出するようにした修正の追加修正などがありました。

akr:r30864 2011-02-14 07:35:29 +0900

ext/curses/curses.c の関数マクロの引数にかっこをつける修正です。

svn:r30865 2011-02-14 07:35:31 +0900

version.h の日付更新。

usa:r30866 2011-02-14 10:34:54 +0900

r30863 のテスト時に LoadError になったテストを skip 扱いにするのを revert しています。skip だらけになってしまうから。後で(つまりオフィスの Linux でやってみて)気がついたのですが、これって libyaml などがなくて Psych がビルドされなかったりした時にメッセージがでていたやつを skip にしていたのですね。

usa:r30867 2011-02-14 13:17:01 +0900

Windows 環境で Kernel#system に渡すコマンドが @ で始まる時に shell 経由するようにしています。@ は Windows のシェル(cmd.exe)のメタキャラクタみたいです。とても昔に bat ファイルを書いたことがあったような気がしますが、もう忘れちゃいました。コマンドラインエコーバックしないとかだったような。 [ruby-core:35218] #4393

kosaki:r30868 2011-02-14 17:30:00 +0900

r30867 の "@" 文字を system に渡した時のテストを追加しています。

kosaki:r30869 2011-02-14 17:49:55 +0900

さらにテストを追加。"@" は複数書いてもいいらしい。また Kernel#system だけじゃなくて `` でも同様。

kosaki:r30870 2011-02-14 18:49:56 +0900

r30835 で configure に --disable-rubygems オプションを追加した時に win32/configure.bat を修正して win32/setup.mak を変更していなかったので Windows 環境では有効になっていなかったのを修正。

akr:r30871 2011-02-14 21:04:28 +0900

ext/fiddle/conversions.h の関数マクロの引数にかっこをつける修正です。

shyouhei:r30872 2011-02-14 21:07:14 +0900

r30621 で configure で関数の存在を検査する時に -Werror=implicit-function-declaration のせいでコンパイルエラーになって本当は存在する関数が検出されなくなるのを避けるために conftest の時は -Werror を消すようにしていましたが、コンパイルオプションの指定の組合せによってテストがエラーになることがあるとのことで revert されています。詳細な状況は [ruby-dev:43203] のスレッドを参照してください。

nagachika:r30873 2011-02-14 23:13:46 +0900

r30852 の操作中の IO(pipe や socket)を別の Thread から close すると IOError が発生するようにした修正で、test/xmlrpc/webrick_testing.rb で IOError が発生して失敗していたものの対処です。rb_thread_t::waiting_fd を rb_thread_io_blocking_region() で設定した後リセットしていなかったので -1 に戻すようにしています。例外を送信する時の判定で waiting_fd 以外の条件も見ているのですが、別の blocking_region に入るところで誤判定されるようなケースがあるのか、本来その IO の操作を終えた後に rb_thread_t::errinfo に IOError がセットされてしまうことがあるようでした。