ruby-trunk-changes r47979 - r47999

akr: r47979 2014-10-16 21:27:43 +0900

test/-ext-/bug_reporter/test_bug_reporter.rb の SEGV のメッセージのチェックで stderr の文字列を ASCII-8BIT に変換してマッチさせるようにしています。

akr: r47981 2014-10-16 22:18:44 +0900

test/ruby/test_rubyoptions.rb での SEGV のメッセージのチェックでも stderr を ASCII-8BIT に変換するようにしています。

akr: r47983 2014-10-16 22:45:53 +0900

r47951 の vm_backtrace.c の rb_id2str() を上書きするための関数 id2str() でチェックする変数名を間違っていた不具合を修正。 [ruby-dev:48642] [Bug #10389]

nobu: r47984 2014-10-16 23:17:34 +0900

signal.c の sigaltstack に設定するシグナル処理用のスタックサイズを 8KB から 16KB に変更しています。 control_frame_dump() でスタックが足りなくなることがあるそうです。

normal: r47985 2014-10-17 03:11:49 +0900

r47971 と r47972 の SIGSEGV を送信するテストで sleep で待つようにしたのを revert しています。
ruby は自分自身へのシグナルは OS の仕組みじゃなくて同期的に送信するので、 sleep は不要になっていたそうです。 [ruby-core:65764]

svn: r47986 2014-10-17 03:12:02 +0900

version.h の日付更新。

nobu: r47990 2014-10-17 14:14:02 +0900

signal.c で SIGSEGV や SIGBUS などシグナル処理中に再度シグナルが来た時のメッセージを NUL 文字なしのバッファを使うようにしています。ここまで切りつめますか…。

nobu: r47991 2014-10-17 14:14:14 +0900

r47990 と同じところで複数回の write(2) でメッセージを出力していたのを writev(2) を使って一度に出力するようにしています。

nobu: r47992 2014-10-17 15:06:43 +0900

US-ASCII のエンコーディングの文字列で作られた正規表現に "\xXX" のような16進数エンコーディングされた文字があったりコントロール文字のエスケープシーケンスが書かれていたら、エンコーディングを ASCII-8BIT に変換するようにしています。 普通のリテラルはそのような変換が行われていたのですが、変数を #{} で埋め込んだ時に変換されなくなっていたそうです。 [ruby-dev:48626] [Bug #10382]

nobu: r47993 2014-10-17 15:23:39 +0900

bin/erb で -U オプションを指定した時にエラーになっていた不具合を修正。

nobu: r47994 2014-10-17 15:30:08 +0900

bin/erb で正規表現マッチで文字列の先頭や末尾を "^" や "$" でマッチさせようとしていましたが、これは行頭や行末なので "\A" や "\z" を利用するように変更しています。

nobu: r47995 2014-10-17 17:00:42 +0900

SYMBOL_DEBUG が定義されていた時に register_sym() に登録済みのシンボルをダンプするデバッグ機能を追加しています。

akr: r47996 2014-10-17 17:50:01 +0900

gcc 4.9.1 の機能で -fsanitize=undefined で C 未定義の挙動をしているところを修正しているそうです。主にビットシフト演算での明示的なキャストの追加などです。

akr: r47997 2014-10-17 18:49:28 +0900

r47996 に続いて gcc -fsanitize=undefined で報告された未定義挙動の部分の修正。

akr: r47998 2014-10-17 21:52:26 +0900

pack.c に明示的なキャストを追加するなど、これも -fsanitie=undefined 対策でしょうか。

akr: r47999 2014-10-17 23:28:34 +0900

また pack.c で明示的なキャストの追加と、複数行の文字列で改行の検出方法を少し変更しています。