ruby-trunk-changes r62635 - r62644

今日は主に MJIT 向けのブロック呼び出し時の最適化や Windows 向けのビルドプロセス修正などがありました。

eregon: r62635 2018-03-02 21:56:37 +0900

標準添付ライブラリ yaml の rdoc 用コメントに yaml は psych のエイリアスであるという説明を追加しています。 [ruby-core:85890] [Misc #14567]

nobu: r62637 2018-03-02 23:45:28 +0900

拡張ライブラリ openssl の extconf.rb で Windows 環境でのライブラリ ws2_32 の探索を find_openssl_library というメソッド内でしていたのを外に出してます。 r62628 の再修正。 [ruby-core:85895] [Bug #14568]

k0kubun: r62641 2018-03-03 13:07:02 +0900

vm.c の RubyVM のメインループの関数 vm_exec() の引数に mjit_enable_p というフラグを追加しています。あんまりちゃんと追えてませんが mjit_exec() を二重に呼んでしまうのを防いで、profiling などを正確にするための措置みたいです。

svn: r62642 2018-03-03 13:07:03 +0900

version.h の日付更新。

k0kubun: r62643 2018-03-03 13:50:14 +0900

VM 命令 invokeblock の実装で vm_invoke_block() が Qundef を返した時に vm_exec() を呼ぶ前に mjit_exec() を直接呼んでいます。この上の vm_exec() で大域脱出の捕捉をしているので、ここで vm_exec() を呼ばなくても大丈夫なので MJIT が有効な時は tag の push をひとつ省略できるという最適化みたいです。

nobu: r62644 2018-03-03 14:09:32 +0900

mjit_config.h の MJIT_LDSHARED というマクロ定義を変数 MJIT_LDSHARED で上書きできるようにしています。 r62623 と類似の変更です。