ruby-trunk-changes 2020-06-27

今日は pattern match の array pattern や find pattern の最適化などがありました。

[61984d4760] Nobuyoshi Nakada 2020-06-26 15:47:36 UTC

compile.c の compile_args() でキーワード引数を compile する際に node->nd_head->nd_brace を一時的に書き換えてコンパイルしてたのを compile_hash() の引数に method_call_keywords というのを追加して直接 compile_hash() を呼び出すようにリファクタリングしています。

[74c345c7b8] Nobuyoshi Nakada 2020-06-26 17:05:39 UTC

61984d4760889fd098dff006b2cf6506aa8fb341リファクタリングにより不要になった定数マクロの定義を削除しています。

[d6c9c014e2] git 2020-06-27 01:55:39 UTC

version.h の日付更新

[6770d8f1b0] Vladimir Dementyev 2020-03-03 23:45:57 UTC

pattern match の array pattern を使うベンチマークスクリプトを追加しています。

[5320375732] Vladimir Dementyev 2020-03-03 23:42:48 UTC

pattern match の array pattern を ISeq に compile した時に case の値を deconstruct メソッドで配列に展開した結果の VM スタック上の位置を記憶して使いまわすようにしています。ちょっとコンパイル結果のサイズが増えそうだけどメソッド呼び出しが減るので in 節が複数あればたいてい速くなりそう。

[c9ee34a18b] Vladimir Dementyev 2020-06-14 19:00:51 UTC

ddded1157a90d21cb54b9f07de35ab9b4cc472e1 で導入された pattern match の新しい find pattern を ISeq に compile した時に case の値を deconstruct メソッドで配列に展開した結果の VM スタック上の位置を記憶して使いまわすようにしています。ちょっとコンパイル結果のサイズが増えそうだけどメソッド呼び出しが減るので in 節が複数あればたいてい速くなりそう。

[7a5a0dfa5e] Kazuki Tsujimoto 2020-06-27 04:52:23 UTC

pattern match のテストの未使用変数による警告除去。

[609ac6ee2c] Takashi Kokubun 2020-06-27 05:41:38 UTC

5c03e4680e724faeedb2c5fc1581d5fcb66aaff2 で標準添付ライブラリ rinda のテストのタイムアウトを MJIT 有効化時に伸ばす変更を revert して、かわりに skip するようにしています。