ruby-trunk-changes 2023-08-01

今日は主に GC の調節のための環境変数でヒープの slot 数の初期値の指定を slot サイズ別の heap ごとに指定できるようにする変更や macOS 版での YJIT 有効化時の不具合修正、ripper で obj::m のようなメソッド呼び出しの記法での "::" のトークンについての不具合修正などがありました。

[d42b9ffb20] Peter Zhu 2023-07-28 15:28:44 UTC

正規表現Regexp#match や Regexp#match? などでのマッチ(おそらく Regexp#=~ などでも)の時に対象の文字列の Encoding が異なる場合には regex_t を生成しなおして使うようになっているみたいなのですが、まだその正規表現を使ったことがない場合にはオブジェクトが指してる regex_t をそのまま再利用するようにする最適化をしています。

[1bda22f5fe] Nobuyoshi Nakada 2023-07-31 14:23:30 UTC

rubyspec の Refinement#refined_class のテストを 3.2 でのみ実施するようにしています。

[b98838b65c] Peter Zhu 2023-07-31 13:24:48 UTC

構造体 ruby_gc_params_t の heap の最初の slot 数の設定を Variable Width Allocation による slot サイズごとに設定できるようにして、それを指定する環境変数RUBY_GC_HEAP_INIT_SLOTS から RUBY_GC_HEAP_INIT_SIZE_#_SLOTS でスロットサイズごとに指定できるようにしています(元の環境変数も有効で全てのスロットサイズをまとめて設定する)。

[547d2378ac] Peter Zhu 2023-07-31 14:26:43 UTC

GC.compact のテストで assertion の書きかたを修正しています。

[8b390a456c] Nobuyoshi Nakada 2023-07-31 14:24:45 UTC

Process.daemon の rdoc 用コメントに引数の説明を追加しています。

[954b7ac81e] Yuta Saito 2023-07-31 18:56:53 UTC

YJIT の macOS 上でのバックトレース取得時に Rust の出力する DWARF のフォーマットの扱いの問題で異常終了していたのを修正しているようです。 https://github.com/ruby/ruby/pull/8146 [ruby-core:114315] [Bug #19789]

[c01b17f7fc] Peter Zhu 2023-07-31 19:12:20 UTC

b98838b65cbf8fa2d228f9e0249414cba4e3197d の heap の初期 slot 数の設定を slot サイズ別にする変更の続きで、環境変数 RUBY_GC_HEAP_INIT_SLOTS が指定されてない時のデフォルト値を修正しています。

[5d78ec8a94] Stan Lo 2023-07-31 19:57:29 UTC

irb の組み込みコマンド show_source から find_source というメソッドを IRB::SourceFinder というクラスに分離して組み込みコマンド edit の実装で ShowSource クラスを参照していたのをこの専用のクラスを利用するようにしています。

[04f4e0aeb2] Kevin Newton 2023-07-31 19:26:34 UTC

yarp の同期をしています。docs/building.md というファイルが追加されていますがこれはファイル階層的に同期ミスっぽいですね。

[ec0e6809f9] Peter Zhu 2023-08-01 00:02:32 UTC

b98838b65cbf8fa2d228f9e0249414cba4e3197d で追加したテストが Solaris で失敗しがちみたいで skip しています。

[3f010d48fc] Kazuhiro NISHIYAMA 2023-08-01 00:27:25 UTC

NEWS にチケット参照のリンクのための footnote を追加しています。

[de91ce980a] Hiroshi SHIBATA 2023-07-31 11:08:30 UTC

bundler の require を再定義する時に Kernel の特異メソッドの require を参照する時に class << 構文を使ってたのを Module#singleton_class を使うようにしています。

[0b8045c9c9] Shugo Maeda 2023-08-01 00:48:47 UTC

a542512b7c394847a488e9b94d9defebe26003ce で Refinment#refined_class が deprecated 警告を出すようになったのでテストで警告が出ることを確認するように変更しています。

[533dcb8e52] Burdette Lamar 2023-08-01 01:44:56 UTC

Process クラスの rdoc 用コメントにメソッド一覧などを追加しています。 https://github.com/ruby/ruby/pull/8141

[0622c78869] Nobuyoshi Nakada 2023-08-01 05:54:16 UTC

Warning[category] メソッドの rdoc 用コメントのカテゴリの performance の説明の追加やマークアップの修正。

[6a5c548218] Koichi Sasada 2023-08-01 07:51:36 UTC

TracePoint の line イベントが rescue 節で実際には捕捉しない例外の時にも余分に発火していたという不具合を修正しています。

[382678d411] Nobuyoshi Nakada 2023-07-31 02:12:16 UTC

parse.y の obj::meth のように "::" を使ったメソッド呼び出し時に ripper 用のアクションで ID2VAL(idCOLON2) で "::" を Symbol 化したオブジェクトを返していたのを規則部の tCOLON2 のノード? そのものを渡すように修正しています。Ripper#parse などでトークンとして取得できてなかったのを修正。 [ruby-core:114310] [Bug #19788]