ruby-trunk-changes r56889 - r56894

今日は Marshal.dump で marshal_dump メソッドを使った時に同じクラスのオブジェクトを返すと不正な挙動する不具合の修正などがありました。

normal: r56889 2016-11-24 08:14:15 +0900

標準添付ライブラリ webrickWEBrick::GenericServer#shutdown で pipe を閉じるのに Symbol のブロックパラメータ渡しを利用するようにしています。

normal: r56890 2016-11-24 08:57:30 +0900

標準添付ライブラリ resolv の Resolv::Hosts#each_name でも &. 演算子と Symbol のブロック引数渡しの記法を利用するようにしています。

shugo: r56891 2016-11-24 10:03:07 +0900

NEWS ファイルの Net::FTP#status の引数追加についてパッチ提供者と ML とチケットの参照を追記しています。

nobu: r56892 2016-11-24 12:01:59 +0900

r56884 での fileutils のテストの修正ですが、assert_output_lines という独自の assertion メソッドで pipe を使って Thread 間通信をしていて、例外発生時に pipe の閉じ漏れで deadlock 状態になることがあったのでそちらを修正しています。 [ruby-core:78053] [Bug #12910]

nobu: r56893 2016-11-24 19:59:35 +0900

Marshal.dump で省略可能な最後の引数の limit でオブジェクトの階層のネストできる段数を指定された時の計算が負の数が指定されて無制限の時にもデクリメントしてたところがあったので修正しています。

nobu: r56894 2016-11-24 20:07:12 +0900

Marshal.dump で dump するオブジェクトをカスタマイズするために marshal_dump メソッドでかわりのオブジェクトを返すというプロトコルがありますが、そこで receiver と同じクラスのオブジェクトを返すとそいつもまた marshal_dump メソッドを呼んで…と繰り返すことになってしまうので、そうならないように同じクラスのインスタンスでないかチェックを追加しています。 [ruby-core:78289] [Bug #12974]