ruby-trunk-changes 2020-06-26

今日は昨日の opt_invokebuiltin_delegate_leave 命令を使うメソッドの TracePoint での return イベント発火の再修正や拡張ライブラリ fiddle の不具合修正などがありました。

[2d89af45ea] Richard Schneeman 2020-06-25 14:34:11 UTC

標準添付ライブラリ delegate の SimpleDelegator の rdoc 用コメントのサンプルコードに require "delegate" を明示するようにしています。

[289a28e68f] git 2020-06-25 15:21:39 UTC

version.h の日付更新

[8070cb56db] Koichi Sasada 2020-06-26 01:21:56 UTC

3e02cd518fbe4d91c2aca7fbc3c5aafa387d3cb7ruby 実装の組み込みメソッドからの return イベントが TracePoint で発火しない不具合対策は opt_invokebuiltin_delegate_leave 命令の trace 版を opt_invokebuiltin_delegate とすることで後ろに控えてる leave 命令に fallback させるというものでしたが、encoded_insn_data の notrace_encoded_insn のほうに登録する命令も opt_invokebuiltin_delegate にするようにしています。一度 TracePoint が使われたら無効状態にしても opt_invokebuiltin_delegate+leave にするようにするということかなぁ。 https://github.com/ruby/ruby/pull/3256

[5c03e4680e] Takashi Kokubun 2020-06-26 05:11:40 UTC

標準添付ライブラリ rinda のテストのタイムアウト値を MJIT が有効だったら伸ばすようにしています。

[a640bcee04] Yusuke Endoh 2020-06-26 05:15:01 UTC

3e02cd518fbe4d91c2aca7fbc3c5aafa387d3cb7 で追加した TracePoint のテストで assert_match の引数にかっこなしで正規表現リテラルを渡したため "/" ががあいまいという警告が出てたので明示的に引数にかっこをつけるようにしています。

[9dbc2294a6] Takashi Kokubun 2020-06-26 05:21:12 UTC

8070cb56db18966b7186255d46eef869e7fdd9cb の変更による影響を避けるためと思いますが ruby 実装で C 関数への委譲を使ってる組み込みメソッドが opt_invokebuiltin_delegate_leave 命令を利用していることを確認するテストが TracePoint が有効だと失敗してしまうので子プロセスを起動してそこで実行するようにしています。

[7982dc1dfd] Takashi Kokubun 2020-06-26 06:27:46 UTC

Vm の最適化命令を MJIT で JIT コンパイルした時に call cache に保持されている C 関数のポインタが目的の関数と一致しているかまでチェックするようにして call cache を利用できるようにしています。 opt_eq が高速化できたようです。

[40b40523dc] Takashi Kokubun 2020-06-26 06:50:18 UTC

precompile_inlinable_iseqs() で --jit-verbose が設定された時の inline 化されたメソッドの ISeq 情報を表示する時の表示内容の変更および JIT 時に生成されるコード内のデバッグ用(必ず偽になる if 文の中になってるので手元で編集して出力する用なのでしょう)の call cache に C 関数が格納されてる時の対応するメソッド名の出力追加。

[4949df498a] Nobuyoshi Nakada 2020-06-26 06:27:18 UTC

拡張ライブラリ fiddle の Fiddle::Function の実装で引数を受け取った配列オブジェクト書きかえる時に r53082 で変数名を typo していたのを、同名の変数を宣言するかたちで r53086 で直してしまっていたので無駄な配列確保になっていたのを修正しているようです。

[200c5f4075] Takashi Kokubun 2020-06-26 07:54:05 UTC

NEWS に MJIT 関連の最近の変更をまとめて追記しています。

[a0aacd2efc] Takashi Kokubun 2020-06-26 08:36:23 UTC

NEWS に method cache の変更についての予約エントリを追加しています。あとで ko1 さんが書くよとのこと。 b9007b6c548f91e88fd3f2ffa23de740431fa969 のメソッドキャッシュ機構変更についてですね。 [Feature #16614]