ruby-trunk-changes r65061 - r65073

今日は MJIT でのインスタンス変数参照の最適化などがありました。

k0kubun: r65061 2018-10-13 23:03:48 +0900

r63212 や r63333 で入っては一部 revert されていた attr_reader のメソッドの MJIT コンパイル時の inline 化の最適化の残っていた部分を revert しています。

k0kubun: r65062 2018-10-13 23:49:41 +0900

vm_insnhelper.c の vm_setivar() で rb_check_frozen() という関数を使ってたのを rb_check_frozen_internal() という inline 版の関数を利用するように最適化しています。

nobu: r65063 2018-10-14 01:21:06 +0900

iseq.h の include/ruby/version.h への依存関係をなくして変数を参照させるようにしています。

nobu: r65064 2018-10-14 01:21:07 +0900

include/ruby/ruby.h に PRIdPTR など intptr_t や uintptr_t を埋め込むフォーマット指示子のマクロ PRI*PTR を定義しています。

svn: r65065 2018-10-14 01:21:10 +0900

version.h の日付更新。

stomar: r65066 2018-10-14 04:01:22 +0900

Array#concat, Array#difference, Array#union などの rdoc 用コメントのマークアップ修正。

stomar: r65067 2018-10-14 04:02:51 +0900

String#strip の rdoc 用コメントのサンプルで両側に空白がない例を後に移動しています。

stomar: r65068 2018-10-14 04:04:02 +0900

String#strip! の rdoc 用コメントにサンプルコードを追加しています。

stomar: r65069 2018-10-14 05:36:03 +0900

Hash#merge および Hash#merge!, Hash#update の rdoc 用コメントの文法およびマークアップの修正。

stomar: r65070 2018-10-14 05:53:56 +0900

NEWS ファイルに Hash#merge などが複数引数を受け付けるようになったというエントリで Hash#update! という存在しないメソッド名も書かれてたので削除しています。

k0kubun: r65071 2018-10-14 10:24:21 +0900

appveyor.yml で open-uri も -j つきテストで時々失敗するそうなので -j なしのほうで実行するようにしています。

k0kubun: r65072 2018-10-14 14:50:06 +0900

r65061 での getivar() の引数削除に伴なって不要になったコメントも削除しています。

k0kubun: r65073 2018-10-14 18:24:43 +0900

MJIT でのインスタンス変数の参照で getinstancevariable 命令の時にインスタンス変数のインデックスが inline cache にヒットした時に直接 ROBJECT_IVPTR() を参照するように最適化しています。