ruby-trunk-changes r45441 - r45452

今日は powerpc64-linux での C level backtrace 取得の不具合修正、String#gsub などのパターンマッチで文字列をパターンとして渡した時に不要な中間オブジェクトを生成しないようにする修正(の追加修正)などがありました。

naruse: r45441 2014-03-27 06:46:23 +0900

C level backtrace 取得機能の powerpc64-linux で symtab, strtab セクションが読めないそうで check_debuglink が 0 の時は参照しないようにしています。

svn: r45442 2014-03-27 06:46:27 +0900

version.h の日付更新。

nobu: r45443 2014-03-27 11:58:32 +0900

parse.y の rb_gc_free_dsymbol() で type punning 警告のでるアドレス演算子+キャストをやめてローカル変数に一旦格納するようにしています。

nobu: r45444 2014-03-27 11:58:34 +0900

re.c のインデント修正のみ。

naruse: r45445 2014-03-27 12:01:59 +0900

C level backtrace 取得の powerpc64-linux 対応の続き。 r45441 の一時的な revert して、ELF のセクションを参照するところで shdr[i].sh_type もチェックするようにしています。 .symtab セクションが存在しても 内容が空で sh_type が SHT_NOBITS になっている場合があったそうです。 [ruby-dev:48058] [Bug #9654]

nobu: r45446 2014-03-27 12:03:19 +0900

r45414 で String#gsub で後方参照用の文字列オブジェクトの生成を抑制したときに導入した str_replace というフラグを真偽を反転させて need_backref という変数名に変更するリファクタリング[ruby-core:61682] [Bug #9676]

nari: r45447 2014-03-27 14:42:57 +0900

Symbol GC についての NEWS ファイルの記述で "symbols in Ruby level" という表現をやめています。 :sym のようなシンボルリテラルGC 対象であるかのような印象になるのでやめようということだそうです。

nobu: r45448 2014-03-27 18:08:51 +0900

test/ruby/test_m17n_comb.rb で assertion にメッセージを渡すようにしたり assert_raise + assert_match のかわりに assert_raise_with_message を利用するようにしたりというテストの改善をしています。

nobu: r45449 2014-03-27 18:08:54 +0900

MatchData#inspect でクラス名を文字列に埋め込む時に PRIsVALUE を利用して VALUE 型のまま埋め込むようにしてエンコーディングを保持するようにしています。

nobu: r45450 2014-03-27 18:47:03 +0900

String オブジェクトがその Encoding に対して壊れたバイト列を持っていたら ArgumentError を発生させる処理が 2度呼ばれていたのを mustnot_broken() という関数に切り出すリファクタリング

nobu: r45451 2014-03-27 18:58:12 +0900

String#gsub でパターンを文字列で渡した時に後方参照用の文字列オブジェクトの生成を抑制する r45414 の変更の追加修正のようです。 String#sub, #sub!, #scan などでも同じような修正をするようにして、また文字列の生成の抑制も文字列で渡されてパターンマッチした結果の MatchData の構造体の regexp は Qnil を格納できるようにしてより根本的に対応しているみたいです。 https://github.com/ruby/ruby/pull/579

nobu: r45452 2014-03-27 21:03:36 +0900

r45451 で追加した変数の初期化漏れによるコンパイラ警告を抑制するため初期化しています。