ruby-trunk-changes r53719 - r53727

今日は US-ASCII の正規表現の最適化や拡張ライブラリ ripper のインデント除去ヒアドキュメント対応の修正などがありました。

kazu: r53719 2016-02-02 22:01:09 +0900

r53691 の未使用変数の除去のために rescue 節で例外を受ける変数の指定を削ってましたが、コメントアウトされたところに参照していた文があったのでそこも $! に変更しています。

naruse: r53720 2016-02-03 02:38:00 +0900

正規表現マッチで正規表現と文字列の Encoding のマッチをチェックしている rb_reg_prepare_enc() でマッチ対象の文字列に含まれているのが ASCII 文字のみで、正規表現エンコーディングが US-ASCII だったら正規表現エンコーディングを利用して正規表現の再コンパイルを避ける最適化を行なっています。

svn: r53721 2016-02-03 02:38:01 +0900

version.h の日付更新。

nobu: r53722 2016-02-03 08:21:34 +0900

拡張ライブラリ ripper の Ripper::Lexer#on_heredoc_dedent でインデント除去ヒアドキュメントのトークンを得る時の不具合修正。 https://github.com/ruby/ruby/pull/1234

nobu: r53723 2016-02-03 08:25:40 +0900

拡張ライブラリ openssl の Init_ossl_pkey() のコメントの typo 修正。 https://github.com/ruby/ruby/pull/1235

naruse: r53724 2016-02-03 13:52:13 +0900

str_new_frozen() で orig が struct RVALUE への文字列の埋め込みをしていないのに、文字列サイズが埋め込みできる長さだったら改めてヒープにバッファを持たない文字列オプジェクトを生成してこれを返すようにしています。最適化かなと思ったら、string.c の assertion にひっかかる不具合の対応のようです。 [ruby-core:72701] [Bug #11946]

nobu: r53725 2016-02-03 16:21:48 +0900

make_no_method_exception() の VALUE の配列 args のサイズをマジックナンバーで書いてたのを enum で宣言しておくことでそれぞれのインデックスの値が何を指しているのかがわかるようにしています。しかし3つ目の arg_args の args 感がすごい。

nobu: r53726 2016-02-03 16:37:19 +0900

NameError の #name, #args, #receiver などのテストで receiver なしの FCALL 形式のメソッド呼び出しでの NameError の時のテストケースも追加しています。

naruse: r53727 2016-02-03 19:08:49 +0900

r52386 で Solaris での test_interrupt_in_finalizer でのシグナルマスクの表示のために親プロセスのほうに入れていたデバッグ用の出力を削除しています。