ruby-trunk-changes 2023-01-14

今日は文字列の連結についての小さな最適化や NEWS の default gems/bundled gems のバージョンリストを自動更新する仕組みの改良などがありました。

[3ecffae8e8] Nobuyoshi Nakada 2023-01-10 15:55:10 UTC

GitHub Actions で default gems や bundled gems のバージョンの更新を検出して NEWS のバージョンリストを更新する処理を tool/update-NEWS-gemlist.rb という専用のツールに切り出しています。

[447f8f7a3c] Nobuyoshi Nakada 2023-01-10 15:58:12 UTC

NEWS の default gems や bundled gems の更新のリストのヘッダ部分もリストにしていたのをやめています。

[fc7f852033] Nobuyoshi Nakada 2023-01-10 16:08:24 UTC

3ecffae8e81b8c508b4b964643a1468718452054 で追加した tool/update-NEWS-gemlist.rb で bundled gems になった gem を NEWS に追記するのも自動的に行なわれるようにしています。

[bb5fddd070] Matt Valentine-House 2023-01-10 17:58:45 UTC

rb_str_concat_literals() という関数で concat 結果の文字列サイズが小さかったら rb_str_resurrect() で先頭の文字列に埋め込むようにしていた最適化をやめています。 Variable Width Allocation で文字列オブジェクトの slot に埋め込めるサイズが可変になったので不要になったとのことで。

[2605615fe6] Matt Valentine-House 2023-01-10 21:13:18 UTC

文字列リテラル内にたくさんの文字列オブジェクトを埋め込むベンチマークスクリプトに slot に埋め込める/埋め込めないサイズの文字列を使ったケースを追加しています。

[8a93e5d01b] Matt Valentine-House 2023-01-13 14:30:47 UTC

rb_str_concat_literals() でも bfc887f391fde6de9d088039509f6e3eaa40b3ca で導入された str_enc_copy_direct() を利用するようにして不要なチェックを省いています。

[84b1f48891] Alan Wu 2023-01-13 19:22:11 UTC

YJIT の Rust 実装で VALUE 型のビット数を毎回 8 * SIZE_OF_VALUE で計算していたのを VALUE_BITS という定数を定義して参照するようにリファクタリングしています。

[b4cdde468b] Alan Wu 2023-01-13 19:35:15 UTC

YJIT の Rust 実装で VALUE のバイト数を i32 型にキャストしている部分も専用の定数 -SIZEOF_VALUE_I32 を定義して参照するようにリファクタリングしています。

[2082ba7c69] Charles Oliver Nutter 2023-01-14 01:24:25 UTC

拡張ライブラリ psych の gemspec の JRuby 版の時の spec.files から ext/java/org/jruby/ext/psych/PsychYamlTree.java というファイルのエントリを削除しています。

[cb9b885e78] Stan Lo 2023-01-10 20:43:33 UTC

標準添付ライブラリ irbIRB::RubyLex#initialize に context を引数として追加してこのクラスの各種メソッドで context キーワード引数で個別に渡していたのをインスタンス変数に格納しておいた context を参照するように変更しています。

[5b26f76ad9] HASUMI Hitoshi 2023-01-14 09:19:37 UTC

標準添付ライブラリ reline のテストで IRB::RubyLex を継承したクラスを定義していたところがあったので 019c65828b430a9bc2a1c19d758b42e39e733f13cb9b885e78bb87195d483df1afedf58d0bb81e41 での IRB::RubyLex の実装の変更に追随させています。