ruby-trunk-changes 2023-01-19

今日は YJIT の String#empty? に対して専用のコード生成をする最適化や標準添付ライブラリ reline の不具合修正、String#bytesplice の戻り値を receiver にする仕様変更などがありました。

[e3336e0929] Nobuyoshi Nakada 2023-01-17 23:26:05 UTC

rubyspec の C API テスト用の拡張ライブラリのヘッダファイルに RUBY_VERSION_IS_3_3 というマクロを追加しています。こんなマクロが各 minor バージョンに対してあるんですね。

[4fa7d38324] Peter Zhu 2023-01-16 16:50:00 UTC

RGenGC 用の Write Barrier のためのマクロ RB_OBJ_WRITE() が include/ruby/internal/rgengc.h で定義されているのに重複して internal/gc.h でも定義されていたとのことでこちらの定義を削除しています。

[a712f2a2a0] tompng 2022-10-23 19:57:27 UTC

標準添付ライブラリ reline の Reline::LineEditor の dialog の表示処理でスクロールバーの表示が化ける? ことがあった不具合の修正。

[976d72a9f5] tompng 2022-12-19 17:30:14 UTC

標準添付ライブラリ reline の yamatanooroti.gemn を利用したテストに dialog のスクロールバーについてのテストを追加しています。

[8e53f09baa] tompng 2023-01-08 17:06:52 UTC

標準添付ライブラリ reline のダイアログのスクロールバーの最小のサイズをマジックナンバーから定数として名前をつけて使うようにリファクタリングしています。

[03f5db01e6] Nobuyoshi Nakada 2023-01-18 14:42:18 UTC

tool/rbinstall.rb で bundled gems のインストールまわりのメッセージ出力を追加しています。

[cd97976328] Maxime Chevalier-Boisvert 2023-01-18 16:08:55 UTC

YJIT が生成した x86 版のコードの関数呼び出しの命令の種類ごとのカウンタを追加して --yjit-stats で出力するようにしています。 https://github.com/ruby/ruby/pull/7142

[0fd5a664e7] Peter Zhu 2023-01-17 12:07:36 UTC

RHASH_ITER_LEV() という T_HASH 型オブジェクトの再帰的な iterator 呼び出し検出のためのマクロがもう使われなくなっていたので削除しています。

[6bb576fe75] Maxime Chevalier-Boisvert 2023-01-18 20:41:28 UTC

YJIT で String#empty? メソッドに対して専用の機械語を生成するようにしています。 https://github.com/ruby/ruby/pull/7148

[308942920f] Burdette Lamar 2023-01-18 21:03:43 UTC

標準添付ライブラリ net/http の Net::HTTP::Header#set_form の rdoc 用コメントの手直し。

[edd00697a8] Samuel Williams 2023-01-18 22:59:51 UTC

拡張ライブラリ coverage のテストで Kernel#eval 内の coverage を取るテストに使うスクリプトを変更して分岐などを追加しています。 https://github.com/ruby/ruby/pull/7041

[4cf1d9b3b3] Takashi Kokubun 2023-01-19 01:23:11 UTC

YJIT のテスト用の GitHub Actions の workflow で環境変数 RUST_BACKTRACE=1 を設定しておくようにしています。 https://github.com/ruby/ruby/pull/7152

[4b42392f8e] Alan Wu 2023-01-18 23:25:41 UTC

YJIT の jump 系命令の一部で side_exit のカウンタを回すように対応? を追加しているみたいです。Rust の(というか YJIT の実装の)作法みたいなのでよくわかってないけどコミットログをみると生成コードを小さくするためという意味があるみたいです。

[f7b72462aa] Shugo Maeda 2023-01-19 08:13:07 UTC

String#bytesplice で引数に渡された文字列オブジェクトを返していたのを receiver を返すように戻り値を変更しています。 [ruby-core:111674] [Feature #19314]