ruby-trunk-changes r63037 - r63040

今日は ISeq#to_binary の SEGV の修正などがありました。

k0kubun: r63037 2018-03-29 21:37:31 +0900

test/ruby/test_jit.rb で gcc が cc1 というコマンドを起動できないという現象が CI で起きるというのでログを追加していましたが、メッセージをみて狙ったエラーか判定していたところ gcc の出すメッセージの gcc: が gcc-6: になってて判定から外れてしまったのでこの部分はマッチ対象から外すように変更しています。

nobu: r63038 2018-03-30 11:52:12 +0900

man/ruby.1 のマニュアルの --version と --copyright オプションの説明に、すぐに終了することを追記しています。また --verbose もスクリプトが指定されなかったら(標準入力から読み込まずに)すぐに終了することを追記しています。そうなのか。 [ruby-core:86391] [Bug #14633]

svn: r63039 2018-03-30 11:52:13 +0900

version.h の日付更新。

nobu: r63040 2018-03-30 14:15:07 +0900

if/unless などの文法の VM 命令列へのコンパイルをする compile_if() で then 部 else 部のラベルが利用されない場合に rb_iseq_body_t::ci_size, ci_kw_size などを戻して不要な callinfo のインデックスを作らないようにしています。 絶対に通らない分岐にキーワード引数つき呼び出しがあるような ISeq の to_binary でのダンプ時に SEGV することがあったそうです。 [ruby-core:86399] [Bug #14553]