ruby-trunk-changes 2022-07-19

今日は rdoc の不具合修正、String#concat などの最適化などがありました。

[dd362a786a] Peter Zhu 2022-07-15 21:39:21 UTC

標準添付ライブラリ rdoc で call-seq に複数のメソッド名が併記されてた時に alias 関係にある(ここでいう alias は alias 文や Module#alias_method で作られた alias じゃなくて同じ実装に別の名前が付けられてる(method entry は別)ということかな、多分)という情報を保持する処理にメソッド名の前半が同じ(一方のメソッド名がもう一方の prefix になってる)だとうまく判定されなくなってたという不具合を修正しています。

[fd0902bfcd] David Rodríguez 2022-07-18 12:34:55 UTC

rubygems の標準添付ライブラリ fileutils を require する位置を本当に利用する直前まで遅延するようにしています。ループ内に入っちゃってるけど。

[a1c0aa7701] Peter Zhu 2022-07-18 14:49:28 UTC

Array オブジェクトのバッファを共有するオブジェクトを生成するための処理 ary_make_shared() で無意味なローカル変数を消しています。

[c6fe11cf2c] "dependabot[bot]" 2022-07-18 15:27:06 UTC

rubygems の Rust 製拡張ライブラリのテストのためのプロジェクトのパッケージを更新しています。

[f240e28dfe] git 2022-07-18 17:49:18 UTC

version.h の日付更新

[ecff334995] Jemma Issroff 2022-06-06 14:48:42 UTC

vm_callinfo.h に vm_ic_entry_index(), vm_ic_entry_p(), vm_ic_entry_set() といった構造体 struct iseq_inline_iv_cache_entry を操作する inline 関数を切り出すリファクタリング

[3ac9956dee] "dependabot[bot]" 2022-07-18 17:49:51 UTC

rubygems の Rust 製拡張ライブラリのテストのためのプロジェクトのパッケージを更新しています。

[85ea46730d] Jemma Issroff 2022-07-18 19:38:12 UTC

構造体 struct rb_iseq_constant_body に icvarc_size を追加してクラス変数とインスタンス変数の inline cache の数を別々に管理して配列内で混ざらないようにしています。

[d084585f01] Jean Boussier 2022-07-13 09:54:08 UTC

定数マクロ ENCINDEX_ASCII を ENCINDEX_ASCII_8BIT と改名しています。同じく enum の定数 RUBY_ENCINDEX_ASCII も RUBY_ENCINDEX_ASCII_8BIT に改名しています。

[ee1d2b276a] Nobuyoshi Nakada 2022-07-19 07:50:00 UTC

標準添付ライブラリ fileutils のテストで chmod の引数に 8進数を 0始まりで書いてたのをより明示的に 0o 始まりで書くようにしています。

[0ae8dbbee0] Jean Boussier 2022-06-29 08:35:41 UTC

String#concat などの文字列の末尾に文字列を追加する実装で引数の文字列が ASCII 文字のみで左辺値(receiver) も ASCII-8BIT/US-ASCII/UTF-8 の場合に coderange の再計算を無視した実装を呼ぶ最適化をするようにしています。

[cb9fd920a3] Jean Boussier 2022-07-19 07:13:19 UTC

0ae8dbbee0631721e820e29d0a613485cdcb3507 の続きで str_buf_cat() を str_buf_cat4() と改名したうえで引数 keep_cr を追加して 0ae8dbbee0631721e820e29d0a613485cdcb3507 で追加した最適化パスでは rb_str_modify() のかわりに str_modify_keep_cr() を呼んで coderange を保持して再計算しないようにしています。