ruby-trunk-changes 2023-05-20

今日は主に Enumerable#sort_by のブロックを評価した値が数値のみの時のための最適化や同梱している Lrama のバージョンアップなどがありました。

[6d9875ccbf] tomoya ishida 2023-05-20 01:08:54 UTC

irb のテストで IRB::RubyLex#configure_io を利用するように変更しています。

[9ce6c08caf] Stan Lo 2023-05-20 04:28:19 UTC

6d9875ccbf78ca354e63f05a4e37ab1e2c14a9ac の続き? で irb のテストで IRB::RubyLex#configure_io に渡したオブジェクトの dynamic_prompt メソッドが実行されたことを確認する assertion を追加しています。

[41512cd1bf] yui-knk 2023-05-20 03:27:45 UTC

同梱されている Lrama のバージョンを 0.5.1 に更新しています。 C の "//" による行コメントの対応を追加したり scanner (tokenizer) の実装や Lrama::State クラスの実装を独立したファイルに切り出したりしているようです。

[8db13c179e] ima1zumi 2023-05-20 09:31:32 UTC

標準添付ライブラリ reline のバージョンを 0.3.4 に更新しています。

[892798cac8] git 2023-05-20 09:32:21 UTC

8db13c179e475e99f6155eb85f196aebe04cc39a に追随して NEWS の default gems バージョンリストの reline のバージョンも更新しています。

[87217f26f1] nekoyama32767 2023-05-20 10:40:27 UTC

Enumerable#sort_by の実装に各要素についてブロックを評価した結果が全て Integer や Float だけだった時に比較に関数ポインタを利用する qsort_r(3) を利用するより直接 qsort を実装したほうが速いからということで最適化パスを追加しています。ふーむ、かなりコード量が増えてるけど sort はともかく sort_by だと確かにブロックから数値を返すことは多い……かも? https://github.com/ruby/ruby/pull/7805 [Feature #19643]