ruby-trunk-changes r63048 - r63054

今日は MJIT でトップレベルに定義されたメソッドの inline 化を可能にする修正などがありました。

naruse: r63048 2018-03-31 22:48:32 +0900

doc/NEWS-2.5.0 の rdoc のパフォーマンス改善について、調査してくれた人がいたのでその URL を追記しています。 [ruby-core:86413] [Bug #14654]

nobu: r63050 2018-04-01 00:48:57 +0900

compile.c の compile_if() で end_label という LABEL は else 節に相当する iseq のコンパイルがない時には使われないので、LABEL 追加を else 節のコンパイルをする分岐内に移動しています。(分岐が〜というのがコンパイルしている ISeq の分岐のことなのか C の実装の分岐のことなのかまぎらわしくて書きかたに悩んだ)

nobu: r63051 2018-04-01 00:48:59 +0900

compile.c の iseq_compile_each0() から NODE_EVSTR のコンパイル部分を compile_evstr() という関数に切り出しています。 NODE_EVSTR は文字列リテラル内の変数の埋め込みとかに関係してそうだけどよくわかりませんでした。

svn: r63052 2018-04-01 00:48:59 +0900

version.h の日付更新。

k0kubun: r63053 2018-04-01 10:41:55 +0900

mjit_init() で method cache の管理のための通し番号の追加 mjit_add_class_serial() を rb_cObject に対して呼んでいます。トップレベルに定義されるメソッドの inline 化ができなかったためとのこと。

nobu: r63054 2018-04-01 11:00:36 +0900

Time のタイムゾーンに関するテストを修正しています。 tzdata パッケージで Kiritimati という地域についてのテストがこけるようになったのを対策しているようです。 [ruby-core:86417] [Bug #14655]