ruby-trunk-changes r35759 - r35764

今日は無名クラス/モジュールを dup した時の inspect 結果の修正や Net::HTTP の Range ヘッダの対応の不具合修正などがありました。

drbrain:r35759 2012-05-23 05:15:28 +0900

無名クラス/モジュールの名前を記録しておく内部的なインスタンス変数 __tmp_classpath__ が Class を dup で複製した時にコピーされるので同じ名前になってしまうので、dup 時に __tmp_classpath__ はコピーされないようにしています。 [ruby-core:45132] [Bug #6454]

svn:r35760 2012-05-23 05:15:33 +0900

version.h の日付更新。

drbrain:r35761 2012-05-23 05:36:21 +0900

lib/net/http.rb の内容がクラスごとに response.rb responses.rb generic_request.rb request.rb requests.rb header.rb proxy_delta.rb exceptions.rb backward.rb などにファイルを分割しています。 [Feature #6435]

usa:r35762 2012-05-23 10:21:33 +0900

Windows 版のソケットの書き込みのエラーを Errno::EXXX (errno のエラー種別)に割り当てるところで、通常は map_errno() (マクロで定義されていて実体は rb_w32_map_errno())で変換するのですが、WSAECONNABORTED という Windows のエラーコード(通常は ECONNABORTED に変換される)を EPIPE として返すようにしています。 BSDソケットの挙動と互換性を持たせることで net/ftp のテストのエラーを回避しようとしているそうです。

nobu:r35763 2012-05-23 16:13:21 +0900

オブジェクト(VALUE 型の変数の Ruby のオブジェクトとしてのタイプ)を判別するのに TYPE() マクロを使っているのを RB_TYPE_P() を利用するようにリファクタリングしています。過去にもこういうリファクタリングがありましたが、漏れてたものやそれ以降追加された部分などだと思います。

naruse:r35764 2012-05-23 22:09:26 +0900

Net::HTTP で Range ヘッダの解析処理が、複数の範囲がカンマで連結されているのがパースできなかったり、不正な文字列も通ってしまっていたりという不具合があったのを修正しています。