ruby-trunk-changes r35450 - r35466

今日も少し多めのコミットがありました。昨日 iconv が削除されたのに関連してエンコーディングEUC-JP-2004 を追加しています。また OptionParser#to_a の修正、文法エラー修正、重複する when 節条件の警告メッセージの修正などがありました。

nobu:r35450 2012-04-24 10:41:15 +0900

昨日の r35442 での rubygems のテストで YAML::ENGINE に Psych を使うようにする設定の条件が間違っていたのを修正しています。

usa:r35451 2012-04-24 10:56:35 +0900

drb のテストで子プロセスを殺すために SIGTERM を送信するようにしていたのが Windows ではシグナルが機能しないので、Windows プラットフォームではエミュレートする実装がある SIGINT を使って殺すようにしています。

nobu:r35452 2012-04-24 12:46:55 +0900

r35383 で revert された Hash に変換する to_h メソッドの実装を再度追加しています。またテストも追加しています。 [ruby-core:44269] [Feature #6276]

nobu:r35453 2012-04-24 14:54:08 +0900

OptionParser#to_a で 1.8 では Usage(ヘルプメッセージ)を行ごとに分割した配列が返ってきていたのが NoMethodError になっていたので修正とテスト追加、をしていますがこれだとメッセージ丸ごと1つのStringだけを含んだArrayが返ってくるようになっているので次で再修正されています。String#to_a がなくなったためなので [*str] も行ごとの分割はされませんね。 [ruby-dev:45568] [Bug #6348]

nobu:r35455 2012-04-24 15:51:44 +0900

というわけで改めて OptionParser#to_a で OptionParser#to_s のヘルプメッセージを行ごとに分解した配列を返すように修正しています。 [ruby-dev:45568] [Bug #6348]

nobu:r35457 2012-04-24 16:04:41 +0900

then, else, begin, ensure 節の中や class 文の親クラス/特異クラスの指定部分、文字列リテラルやヒアドキュメント内の #{} での埋め込み式内で p:foo のようにメソッド名とSymbolリテラルの引数が空白をはさまずに記述されるとSyntaxErrorになるのを修正。 [ruby-dev:45563] [Bug #6347]

usa:r35458 2012-04-24 17:05:25 +0900

Windows 版の waitpid の実装で FindChildSlotByHandle() という関数のエラーチェックが漏れていたため SEGV することがあったのを修正しています。

ko1:r35459 2012-04-24 18:20:42 +0900

case 文の when の条件に同じものが重複していた時に出力する警告メッセージに r35277 では何個目の when が重複しているかを表示するようにしていましたが、具体的な行番号を出力するように変更しています。これに伴いコンパイル結果の ISeq が少し変化しています。ISeq 好きな人は要チェックです。 [ruby-core:38343] [Bug #5068]

usa:r35460 2012-04-24 20:14:18 +0900

昨日 iconv が削除されましたが、String#encode では EUC-JISX0213 (EUC-JP-2004) の変換ができなかったので、文字コード変換テーブルに追加しています。 [ruby-dev:45571] [Feature #6349]

naruse:r35461 2012-04-24 21:17:02 +0900

r34897 や r34931 で Linuxカーネルバージョンによって sleep が期待よりも僅かに早く起きてしまう現象のために sleep 時間の調節をしているテストで調整した以上に早く起床してしまうケースがあったためさらに 10msec チェックの範囲を広げています。

naruse:r35462 2012-04-24 21:17:05 +0900

r35455 で OptionParser#to_a で行ごとに分離しているところで行末にマッチさせて split で分割していたので余分な改行などが残ってしまっていたので引数なしの split に変更しています。
ライブラリ内なので $; が変更されていたらとかも考えて split には改行を明示的に指定したほうがいいかもしれません。 [ruby-dev:45568] [Bug #6348]

mame:r35464 2012-04-24 21:55:13 +0900

Net::SMTP#check_continue で続きを送信していいか確認しているところで例外発生させる時のメッセージにレスポンスのステータスコードだけではなくてメッセージボディも含めるようにしています。 [ruby-core:35854] [Feature #4598]

akr:r35465 2012-04-24 21:59:32 +0900

拡張ライブラリ socket で UNIX Socket のパス名の長さが制限を越えていた時に発生させる例外のメッセージに上限だけでなく実際に指定されたパスが何バイトだったのかも含めるようにしています。

akr:r35466 2012-04-24 22:52:13 +0900

エンコーディング変換についての rdoc に Encoding::Converter#primitive_errinfo や last_error といったメソッドについての記述を追加しています。