ruby-trunk-changes r64674 - r64682

今日は VM 命令にその実装内からメソッド呼び出しがないことを示す leaf フラグの追加などがありました。

nobu: r64674 2018-09-10 22:05:34 +0900

appveyor.yml の build matrix に VisualStudio 140 でのビルドも追加しています。

kazu: r64675 2018-09-11 18:46:49 +0900

rb_bug() などでバックトレース表示にだすレポート先の URL に http でなく https のものを使うようにしています。

svn: r64676 2018-09-11 18:46:50 +0900

version.h の日付更新。

shyouhei: r64677 2018-09-11 18:48:58 +0900

VM 命令のフラグに leaf というのを追加して、VM_CHECK_MODE が 1以上の時に leaf フラグが正しく設定されているかを VM スタックにランダムな値を置いて上書きされていないかをチェックすることで確認するようにしています。とりあえず leaf フラグの導入と正しく判定できてるかのチェックだけで、これを使っていずれ最適化するつもりなのでしょう。 https://github.com/ruby/ruby/pull/1947

k0kubun: r64678 2018-09-11 19:58:33 +0900

r64677 の leaf フラグのチェックで rb_bug() の第1引数に変数を渡してたのでフォーマット指示子 "%s" のリテラルで埋め込むように修正しています。

k0kubun: r64679 2018-09-11 20:01:18 +0900

r64678 のさらに修正で rb_bug() に渡す文字列を rb_sprintf() で整形してたので、直接 rb_bug() で整形するようにしています。

nobu: r64680 2018-09-11 20:05:20 +0900

r64677 で leaf フラグチェックのためにプロセス起動時にランダムなバイト列を用意するために fill_random_bytes() の static を外してましたので ruby_fill_random_bytes() と改名しています。

k0kubun: r64681 2018-09-11 20:09:59 +0900

MJIT のテストでデバッグのため失敗時に標準出力/標準エラー出力なども表示するようにしています。

k0kubun: r64682 2018-09-11 20:26:15 +0900

tool/transform_mjit_header.rb で Init_XXX() 関数もヘッダに展開するようにしています。たぶん r64677 の VM_CHECK_MODE が 1以上の時の leaf フラグチェックで Init_vm_stack_canary() が必要になったからだと思います。