ruby-trunk-changes r46452 - r46458

今日は Net::FTP の不具合修正、Exception#cause の導入の影響で Hash を受け取る Exception がエラーになっていたのについての対応策などがありました。

nobu: r46452 2014-06-17 04:51:38 +0900

r46420 から連なるテストでの TracePoint の hook の leak 検出の再修正。 r46447 で before_setup でテストメソッド実行前の数を取っておくようにしたので、クラス変数ではなくてインスタンス変数に格納しておくようにしています。

svn: r46453 2014-06-17 04:51:58 +0900

version.h の日付更新。

nobu: r46454 2014-06-17 05:23:23 +0900

RUBY_RELEASE_DATE を version.h から切り出して Makefile に埋め込むのを configure 時にやっていたのを Makefile のアクションのなかで切り出すようにすることで毎日 Makefile を更新するようにしています。

ko1: r46455 2014-06-17 12:27:26 +0900

ObjectSpace.memsize_of に T_ZOMBIE 型のオブジェクトが渡されると rb_bug() を呼び出して強制終了するようになっていたのを無視させるようにしています。 元は /* fallthrought */ コメントがあったので意図的に rb_bug() にしていたのでしょうけど、r46348 で RZombie を導入したことで ObjectSpace.count_object_size を実行すると呼ばれる可能性がでてきたみたいです。

nobu: r46456 2014-06-17 12:37:47 +0900

r43636 で rescue 節など $! に例外オブジェクトが格納されている状態で raise した時に発生する例外オブジェクトに Exception#cause で元の例外オブジェクトが辿れるようにした変更で、Exception#initialize の第1引数に Hash オブジェクトを受けとるような例外クラスが定義されているとそれがキーワード引数として解釈されてしまって、存在しないキーワード引数の指定でエラーになってしまうという非互換が Vagrant で発生していたそうです。このため :cause 以外のキーを含む Hash オブジェクトが渡されたときは残りは Hash オブジェクトのまま引数に渡すようになにやら特別扱いをしているようです。 [ruby-core:63203] [Feature #8257]

shugo: r46457 2014-06-17 16:44:53 +0900

標準添付ライブラリ net/ftp の Net::FTP#gets, #readline で改行コード(LF)のない行を末尾まで読み込めない不具合を修正しています。うーむこんな不具合が残ってたとは…と思ったら 1.9.3 にはなくて 2.0.0 以降のみの regression みたいですね。 [ruby-core:63205] [Bug #9949]

svn: r46458 2014-06-17 16:45:08 +0900

r46457 で新規追加された Net::FTP のテストファイルの svn property 設定。