ruby-trunk-changes r40411 - r40423

今日は String#inspect の NUL 文字の表記の修正と先日追加された String#scrub の不具合修正、Net::IMAP の不具合修正などがありました。

tmm1:r40411 2013-04-23 04:40:10 +0900

vm_exec.h と vm_opts.h の コメントの typo というか英語の間違いを修正しています。

svn:r40412 2013-04-23 04:40:15 +0900

version.h の日付更新。

knu:r40413 2013-04-23 09:52:17 +0900

String#inspect で "\0" (NUL 文字)を含む文字列を "\0" と表示するようにしていたのを "\000" に変換するようにしています。これは NUL 文字のあとに数字が続くと "\ooo" の8進数表記のエスケープシーケンスと区別が付かなくなってしまうからということのようです。 なるほど。これは 2.0 からのデグレみたいです。 [ruby-core:54458] [Bug #8290]
しかしこれでどうやら rubyspec が 3つほど failures が出てるようです。こまかいところを拾ってますね。 test-all にも追加したほうがいいかもしれませんね。

knu:r40414 2013-04-23 09:54:07 +0900

r40413 の ChangeLog に ML とチケット番号の参照を追記しています。

knu:r40415 2013-04-23 10:27:23 +0900

test/ruby/test_module.rb で "\0".inspect の挙動に依存していたテストがあったので変更に追随しています。

nobu:r40416 2013-04-23 11:58:48 +0900

r40390 で追加した String#scrub の定義でコンパイラの警告抑制のため初期化追加と制御文の構造を少し変更しています。 [ruby-dev:45975] [Feature #6752]

nobu:r40417 2013-04-23 11:58:51 +0900

r40390 で追加した String#scrub の UTF-32BE および UTF-32LE の時に置換文字(4バイト)に NUL 文字が含まれているのにそのサイズを strlen(3) で計算しようとして誤ったサイズを使ってしまっていたので、文字列リテラルの sizeof() を使ってサイズを取得するようにしています。 [ruby-dev:45975] [Feature #6752]

zzak:r40418 2013-04-23 13:02:57 +0900

doc/standard_library.rdoc の typo 修正。

shugo:r40419 2013-04-23 14:07:21 +0900

標準添付ライブラリ net/imap.rb の Net::IMAP::ResponseParser#parse がレスポンスのパースに失敗することがある不具合を修正。 未使用の変数を消すっていうのでうっかり必要な行を消してしまったみたいです。 [ruby-core:54365] [Bug #8281]

duerst:r40420 2013-04-23 17:41:56 +0900

標準ライブラリ rexml の Internet Explorer 専用の処理のところに IE を不必要に dis るようなコメントがあってこれやよくないということで削っています。なるほどこういうところにも気を付けないといけないんですねぇ。 [ruby-core:54508] [Bug #8309]

akr:r40422 2013-04-23 20:27:07 +0900

missing/isnan.c のなかで isnan() がマクロとして定義されていたら #if ... #endif でくくって代替関数の定義を消すようにしています。 isnan() は関数として提供される場合もマクロとして提供される場合も(両方ある場合もあるらしい)あり、missing/isnan.c は configure で関数としての isnan() が存在しなかったらコンパイルされるのですが、マクロとして(のみ)定義されていたらコンパイルエラーになるのを防いでいます。 uClibc という C ライブラリを使っているとマクロのみ定義されていてそこでエラーになったのを回避しているそうです。

naruse:r40423 2013-04-23 21:24:56 +0900

r40413 の String#inspect の NUL 文字の表現の再修正をしています。 "\000" ではなくて、通常のエスケープ表記と同様に Unicode 文字列の時は "\u0000" を、その他の時は "\x00" の記法を利用するようにしています。このほうが 1.9.3 とも同じ挙動のようです。 [ruby-core:54458] [Bug #8290]