ruby-trunk-changes r48649 - r48655

今日は主に昨日の Windows での ARGV のエンコーディング変換の修正の追加修正や Ripper の不具合修正などがありました。

nobu: r48649 2014-11-30 00:02:02 +0900

r48648 で修正した Windows 版でのメタキャラクタの展開のエンコーディング変換のテストで default_external を UTF-8 から locale encoding に変更しています。ファイルシステムエンコーディングが cp932 以外の場合のためとのこと。 [ruby-dev:48752] [Bug #10555]

svn: r48650 2014-11-30 00:02:19 +0900

version.h の日付更新。

nobu: r48651 2014-11-30 00:02:25 +0900

r48648 の Windows 版のエンコーディング変換の修正の追加修正。 translit_char() という関数が CharNext() という関数を使っていてこれが code page に依存しているので、バイト列として処理する translit_char_bin() という関数を用意して Windows 環境ではこれを利用するようにしています。 [ruby-dev:48752] [Bug #10555]

nobu: r48652 2014-11-30 00:02:58 +0900

さらに r48648 の追加修正。 ARGV と同様に $0 (プログラム自身の名前)とスクリプト名も locale encoding に変換するようにしています。 [ruby-dev:48752] [Bug #10555]

akr: r48653 2014-11-30 17:11:36 +0900

fork 時のシグナル受信のテストで assert_separately を使って子プロセス内でテスト実施するようにしています。 中で GC.start してたりするのでゴミの少ない状態で実施させるためですかね。

akr: r48654 2014-11-30 18:57:04 +0900

r48653 の続き。 fork 中のシグナル受信のテストで子プロセスから pipe 経由で受け取った例外が Interrupt だった時は全体の中断のための Ctrl-c の受信を意味するので、raise せずにテスト失敗にするようにしています。

nobu: r48655 2014-11-30 20:05:58 +0900

r48504 で Ripper で正規表現リテラルのパースエラーを検出できるようにした時の不具合でエラーではない正規表現リテラルを Ripper でパースすると nil がかえっていたのを修正しています。 [ruby-dev:48741] [Bug #10543]