ruby-trunk-changes r40360 - r40377

今日は CGI の修正や Net::IMAP の機能追加?などがありました。

naruse:r40360 2013-04-19 03:04:11 +0900

.travis.yml を修正して test-all のテストのうち test_make_socket_ipv6_multicast を除外するようにしています。 また実行するブランチの変更と irc への通知のコメントアウトを解除しています。

xibbar:r40362 2013-04-19 08:38:24 +0900

require "cgi/cookie" だけ読み込んだ時に必要なライブラリが読み込まれないためエラーになるので lib/cgi/cookie.rb に require を追加しています。 [ruby-core:53081] [Bug #7997]

xibbar:r40363 2013-04-19 08:47:07 +0900

lib/cgi/cookie.rb のメソッド呼び出しや定義の記法の変更やクラス変数の移動など。 これ @@accept_charset が元々 CGI に存在していて、CGI::Cookie.parse から見えてなかったんじゃないかと思うので実質不具合修正なんじゃないでしょうか?

nobu:r40364 2013-04-19 11:37:06 +0900

SmartOS というプラットフォームのコンパイラで -g および -fstack-protector が動かないため configure でチェックしてつけるようにしています。 [ruby-core:54277] [Bug #8268]

nobu:r40365 2013-04-19 12:52:36 +0900

r40364 の ChangeLog の余分な行を削除。

nobu:r40366 2013-04-19 13:03:29 +0900

Marshal.dump でインスタンス変数の dump の必要性の判定のために struct RBasic::flags の エンコーディングのビットフラグをチェックしている部分で、ENCODING_MASK の領域には freeze を表わすビットフラグと重複しているため freeze したオブジェクトを dump しようとすると誤判定してしまって marshal_load でのロード時に marshal_load を呼んだ後にインスタンス変数をセットしようとしてしまっていたのを修正している、ようです。 dump する時の has_ivars をエンコーディングのビットフラグチェックを省いたマクロを導入しているのですが、この時だけチェックを省いていいのはなぜなんでしょうか。freeze されてたら他のところでも誤判定は起きるような気がするのですが。 [ruby-core:54334] [Bug #8276]

xibbar:r40367 2013-04-19 14:25:51 +0900

標準添付ライブラリ cgiCGI::Session::FileStore#delete で File の unlink の後置 rescue で誤って例外を指定せずに捕捉してしまっていたのを begin .. rescue .. end の記法で書き直しています。がこれだと最初の unlink で例外発生するとあとの unlink が実行されないですね。あとこれで何が問題になっているのかよくわからないのでテストも欲しいような気がします。 [ruby-core:52813] [Bug #7940]

xibbar:r40368 2013-04-19 14:43:46 +0900

r40367 の再修正で全て後置 rescue にしているのですが、これだと全て rescue する例外を指定していない状態になっているので誤りのようです。

nobu:r40369 2013-04-19 14:46:05 +0900

r40368 で入った行末の空白除去。

xibbar:r40370 2013-04-19 15:17:01 +0900

r40367 および r40368 の再々修正で結局すべての unlink で StandardError を全て rescue して無視するようにしています。 [ruby-core:52813] [Bug #7940]

nobu:r40371 2013-04-19 17:09:42 +0900

r40346 で修正された Module#public_class_method の不具合修正で追加したテストメソッドの名称を変更しています。無名モジュールであることは要点じゃないということですが、不具合が発生していたのは無名モジュールの時だったみたいです。 [ruby-core:54404] [Bug #8284]

shugo:r40372 2013-04-19 18:02:31 +0900

標準添付ライブラリ net/imap.rb の修正。詳細はチケットを参照。mtype と msubtype のチェックを修正して BodyTypeExtension.new を利用する条件に mtype が影響しないようにしています。よく読んでないですが要するに RFC 3501 に対応するようにしたということみたいです。 [追記]じゃなくて RFC3501 に準拠していないサーバが返すレスポンスに対応したんだそうです。[/追記] [ruby-core:53741] [Bug #8167]

naruse:r40373 2013-04-19 19:41:57 +0900

test_thread_signal_location で子プロセスの ruby のオプションに --disable-gems をつけて rubygems を使わないようにしています。rubygems を使うとバックトレースが変化するからでしょうか。

kou:r40374 2013-04-19 22:02:33 +0900

README.EXT.ja で Data_Wrap_Struct および Data_Make_Struct の説明が間違っていたのを修正。 [ruby-dev:47269] [Bug #8292]

nobu:r40375 2013-04-19 22:06:06 +0900

r40374 で README.EXT.ja に入った行末の空白を除去。

zzak:r40376 2013-04-19 23:32:29 +0900

st.c のコメントの typo を修正。

zzak:r40377 2013-04-19 23:40:13 +0900

r40260 の ChangeLog エントリの typo 修正。