ruby-trunk-changes r34302 - r34308

ISeq#compile の不具合修正、Object#inspect でのエンコーディングのルールの変更などがありました。

nobu:r34302 2012-01-14 21:47:06 +0900

README.EXT, README.EXT.ja に rb_protect() で例外を無視した時には rb_set_errinfo(Qnil) で例外情報をクリアしないといけないことを追記しています。

nobu:r34303 2012-01-14 21:56:46 +0900

RubyVM::InstructionSequence#compile に行番号を指定する引数に 0 を渡すと to_a した時に SEGV する不具合を修正しています。行番号の情報を格納する方法が変化したのでチェックを追加しているのですが、iseq->line_info_size < ti でいいのでしょうか。 line_info_size は line_info_table の配列要素数ではないかと思うので不等号が逆? [ruby-dev:45130] [Bug #5894]

nobu:r34304 2012-01-14 22:16:29 +0900

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

nobu:r34305 2012-01-14 22:24:12 +0900

ext/dl/callback/mkcallback.rb という拡張ライブラリ dl のための C のソースコードを生成するスクリプトで、不要な変数の代入を含むソースを生成しないようにしています。

naruse:r34306 2012-01-15 15:52:36 +0900

gcc 4.7 の不具合で最適化が効き過ぎて、ネストしたブロック内で宣言した char [] のような配列の変数が消えてしまうのに対処する修正のようです。関数の最初のブロックで該当する変数を宣言するようにしています。 [ruby-core:42085] [Bug #5888]

svn:r34307 2012-01-15 15:52:41 +0900

version.h の日付更新。

naruse:r34308 2012-01-15 16:28:50 +0900

Object#inspect で返される文字列のエンコーディングのチェックを再度変更しています。 default_external によって変化していて、default_external が ASCII compatible ならエンコーディングが同じか ASCII 文字のみ含むなら OK。 default_external が ASCII incompatible なら ASCII 文字のみ含む文字列のみ OK となっています。 [ruby-core:42095] [Bug #5848]