ruby-trunk-changes r50323 - r50328

今日は標準添付ライブラリ net で IO.select のかわりに拡張ライブラリ io/wait で追加されるメソッドを利用するようにする変更がありました。

kazu: r50323 2015-04-15 23:59:58 +0900

r50172, r50231, r50234 の ChangeLog エントリの typo 修正。

kazu: r50324 2015-04-16 00:00:20 +0900

r50303 の ChangeLog エントリのインデント修正。

svn: r50325 2015-04-16 00:01:18 +0900

version.h の日付更新。

normal: r50326 2015-04-16 05:11:23 +0900

標準添付ライブラリ net でソケットの読み書き可能になるのを待つところで IO.select ではなく拡張ライブラリ io/wait の IO#wait_readable と IO#wait_writable を利用するように書きかえています。 io/wait は Linux では ppoll(2) を利用しているため、開いている fd 数が多い時のメモリ確保量を抑えてパフォーマンスを向上するのが狙いということで、その効果が [ruby-core:35572] で報告されています。依存関係が……と思いましたが io/wait は Socket をサポートしている環境ではどこでもビルドできるとのことで。なるほど。

normal: r50327 2015-04-16 05:17:19 +0900

NEWS ファイルに r50263 での拡張ライブラリ io/wait の IO#wait_readable の EOF での挙動の変更について追記しています。

nobu: r50328 2015-04-16 17:29:21 +0900

Thread.new で例外発生させる時にメッセージに埋め込むクラス名を PRIsVALUE を利用することでエンコーディングを保持したまま埋め込むようにしています。