ruby-trunk-changes r50858 - r50875

今日も新機能の追加があり、Thread#name, #name= で Thread に名前をつける機能の追加、Windows での File::Stat#ino が意味のある数値を返すようになる変更などがありました。

nobu: r50858 2015-06-13 09:19:10 +0900

テスト用のユーティリティ EnvUtil#assert_no_memory_leak で子プロセスがエラー終了した時のメッセージを詳細にしています。また標準エラー出力に何か出力があった時もエラー扱いにしていたのはやめたみたいです。

nobu: r50859 2015-06-13 10:59:58 +0900

拡張ライブラリ io/console の Windows 向けの win32_vk.inc で構造体のメンバの構造体先頭からのオフセットを得るためのコードを offsetof() マクロを利用するように修正しています。キャストのところで警告が出るのを抑制するためだそうです。

hsbt: r50860 2015-06-13 11:35:25 +0900

拡張ライブラリ bigdecimal と io/console の .gemspec ファイルの require_path が "." となっていたのを "lib" に修正しています。 む、gem パッケージからインストールすると require できなくなってたってことですかね。 https://github.com/ruby/ruby/pull/929

hsbt: r50861 2015-06-13 11:38:46 +0900

拡張ライブラリ openssl の rdoc 用コメントの OpenSSL::OCSP::Response#add_status と OpenSSL::OCSP::Response#status の数値の意味の記述が間違っていたのを修正しています。 https://github.com/ruby/ruby/pull/932

hsbt: r50862 2015-06-13 11:40:38 +0900

標準添付ライブラリ tempfile の rdoc 用コメントの typo 修正。 https://github.com/ruby/ruby/pull/933

naruse: r50863 2015-06-13 17:39:30 +0900

Thread#name および Thread.name= メソッドを追加して、Thread に名前をつけることができるようにしています。またプラットフォームがサポートしていれば pthread_setname_np() や pthread_set_name_np() や sysctl() で Ruby レベルでなくネイティブスレッドにも名前を付けることで ps(1) の結果などでも表示できるようにしているようです。 [ruby-dev:49068] [Feature #11251]

naruse: r50864 2015-06-13 17:42:02 +0900

test/excludes/TestThread.rb でメソッドの第1引数に正規表現リテラルがあったため警告の対象になっていたのでメソッド呼び出しのかっこを明示的につけて警告抑制するようにしています。

naruse: r50865 2015-06-13 17:49:10 +0900

r50863 で Thread#name= で Thread に名前をつける時に OS X では sysctl() を使ってネイティブスレッドにも名前を付けるようにしていましたが、これは自分自身のスレッドにしか効かなかったそうなので削っています。残念。

naruse: r50866 2015-06-13 17:56:11 +0900

r50863 の Thread#name のテストで対象の Thread がすぐに終了してしまうようになっていたので sleep させて生きてる状態の Thread に名前をつけるようにしています。

usa: r50867 2015-06-13 19:47:30 +0900

r50859 での io/console の win32_vk.list から .checksum ファイルを作る時の make のルールを変更していた部分を revert しています。 $(MAKE) の展開をクオートするようにしていたのですが、Windows ではこれは不要で、ビルドエラーになっていたとのこと。

naruse: r50868 2015-06-13 19:58:14 +0900

r50863 の Thread#name, Thread#name= の追加の ChangeLog にチケット参照を追記したり NEWS に追記したり rdoc 用コメントを修正したり。 [ruby-dev:49068] [Feature #11251]

naruse: r50869 2015-06-13 20:17:04 +0900

r50863 の続きで、rb_thread_mark() に rb_thread_t に追加した name メンバの mark 処理を追加しています。 [ruby-dev:49068] [Feature #11251]

naruse: r50870 2015-06-13 20:46:38 +0900

Windows では常に 0 だった File::Stat#ino に BY_HANDLE_FILE_INFORMATION::nFileIndexHigh と nFileIndexLow を元とした情報を返させるようにしています。 log rotate でファイルが変更されたことを検出されるために使ったりするそうです。 [ruby-dev:49017] [Feature #11216]

naruse: r50871 2015-06-13 20:50:21 +0900

r50870 の Windows での File::Stat#ino の機能追加のぶんの NEWS ファイルへの追記。 [ruby-dev:49017] [Feature #11216]

naruse: r50872 2015-06-13 20:53:14 +0900

r50868 で追記した Thread#name と Thread#name= についての NEWS の記述が非互換性についてのセクションに書かれてたので、新機能のところに移動しています。

naruse: r50873 2015-06-13 21:02:17 +0900

r50871 の Windows での File::Stat#ino の機能追加について、元々は常に 0 を返していたという点を追記しています。

nobu: r50874 2015-06-13 21:28:57 +0900

r50863 での thread.c の rb_thread_inspect() のインデント修正のみ。

nobu: r50875 2015-06-13 21:30:35 +0900

IO#open などの mode 文字列の BOM の指定を ":" が含まれている時のみチェックするようにして io_encname_bom_p() をシンプルにしています。