ruby-trunk-changes 2022-08-18

今日は Thread::SizedQueue#push にキーワード引数 timeout を追加する変更や、文字列の操作で coderange をリセットするタイミングを減らす最適化などがありました。

[b4daf6e28e] Peter Zhu 2022-08-17 13:38:11 UTC

0264424d58e0eb3ff6fc42b7b4164b6e3b8ea8ca で追加した GC の性能に関するテストに GC.start(full_mark: false) を追加して誤検出を防ぐようにしています。

[b4539dba7a] Jemma Issroff 2022-08-17 17:24:50 UTC

benchmark にインスタンス変数への代入のベンチマークを追加しています。 YJIT のベンチマークからの移植みたいです。

[bfefaf47f0] git 2022-08-17 17:26:43 UTC

version.h の日付更新

[fbaa2f0b3b] Nobuyoshi Nakada 2022-08-18 02:05:34 UTC

defs/gmake.mk の bundled gems を .bundled/gems/ ディレクトリ下に展開する処理で git リポジトリで対象のブランチ/タグや commit hash を取り出す時に git checkout に --detach オプションを追加しています。

[2a55c61ee7] Yusuke Endoh 2022-08-18 02:35:17 UTC

拡張ライブラリ pty の extconf.rb の util.h ヘッダをチェックするのを OpenBSD でのみ実行するようにしています。

[725626d890] Nobuyoshi Nakada 2022-08-18 02:37:54 UTC

C API の rb_econv_append() で文字コードの変換をしつつ文字列の追加をする処理で追加した部分のバイト列の coderange をスキャンしてセットするようにしています。 [ruby-core:109522] [Bug #18964]

[b3718edee2] git 2022-08-18 07:04:23 UTC

gems/bundled_gems と NEW の minitest のバージョンを 5.16.3 に更新しています。

[fe61cad749] Jean Boussier 2022-07-26 15:40:00 UTC

Thread::Queue#pop と同様に Thread::SizedQueue#push にもキーワード引数 timeout を追加して要素の追加時の空き待ちの時間に上限を設定できるようにしています。キーワード引数の追加に伴なって引数の処理部分は ruby 実装に移動しています。 [ruby-core:109348] [Feature #18944]

[b0b9f7201a] Jean Boussier 2022-07-25 08:21:38 UTC

str_shrink()、rb_str_format()、ruby_vsprintf0() などで文字列バッファ変更後に coderange の指定をクリアして必要に応じて再スキャンさせるようにしています。また rb_str_modify_expand() では逆に coderange をクリアしていたのをやめています。変更時に一律クリアしていたのをやめて非効率な再スキャンを抑制するためのようです。