ruby-trunk-changes 2023-02-11

昨日うっかり投稿を忘れていたので 2/10 と 2/11 のぶんをまとめて投稿します。 succ を使ったオブジェクトによる endless Range の Range#step の不具合修正、YJIT の arm64 での不具合修正やブロック呼び出しの最適化、Proc オブジェクトのブロック内からの特殊変数の参照の不具合修正などがありました。

[da4464b824] Nobuyoshi Nakada 2023-02-09 11:37:34 UTC

succ メソッドの定義されたオブジェクトを始点に持つ endless range オブジェクトに対して Range#step を呼ぶと succ が利用されず nil がブロックに渡されていた不具合を修正しています。 [ruby-core:112301] [Bug #19426]

[e2b6289bab] Takashi Kokubun 2023-02-09 15:16:17 UTC

YJIT でインスタンス変数の管理が Object Shapes を使えないオブジェクト(インスタンス変数の数がとても多いとか shapes が複雑になってるとか?)の場合に JIT コンパイルをキャンセルする時のカウンタを追加して --yjit-stats で取れるようにしています。 https://github.com/ruby/ruby/pull/7266

[72aba64fff] Matt Valentine-House 2023-02-08 11:56:53 UTC

ヘッダファイル gc.h の内容を internal/gc.h に移動(マージ)しています。 [ruby-core:112287] [Feature #19425]

[970e7cdec3] Stan Lo 2023-02-09 15:33:24 UTC

irb のテストの TruffleRuby 向けの分岐や skip をいくつか削除しています。

[b78f871d83] Alan Wu 2023-02-09 15:34:19 UTC

YJIT でコードを生成するメモリのページをシステムのメモリページサイズに合わせるようにしているようです。 arm64 環境の Linux でのエラーの対策みたいです。 https://github.com/ruby/ruby/pull/7267 [ruby-core:112179] [Bug #19400]

[0601ba6a1b] Takashi Kokubun 2023-02-09 15:38:31 UTC

YJIT で JIT コンパイルをキャンセルする原因のひとつの send_klass_megamorphic というのにカウンターを追加して --yjit-stats で統計情報を調査できるようにしています。 https://github.com/ruby/ruby/pull/7274

[381bdee118] Maple Ong 2023-02-09 15:41:29 UTC

YJIT の invokesuper 命令のサポートでブロック内での呼び出し時のサポートを追加しています。 https://github.com/ruby/ruby/pull/7264

[0ddf29f4d1] Peter Zhu 2023-02-09 16:38:32 UTC

gc.c の空になって無意味になってた preprocessor 分岐を削除しています。

[b9e6580135] eileencodes 2023-02-08 20:27:28 UTC

Class/Module の dup 時にクラス変数が存在していたらそのためのキャッシュも複製が必要だったのにしていなかったという不具合を修正しています。 以下は関連している pull request とチケットですがこの変更はこれらで話題になってる問題と関係はあるけど直接その修正になってるわけではなさそう。 https://github.com/ruby/ruby/pull/7265 [ruby-core:112048] [Bug #19379]

[601b83dcfc] Matt Valentine-House 2023-02-09 13:16:46 UTC

string.c で単に rb_str_update() の別名として rb_str_splice() を呼べるようにマクロ定義していたのを消して、呼び元で rb_str_update() を呼ぶように変更しています。

[d620855101] Matt Valentine-House 2023-02-09 13:22:59 UTC

rb_str_update() から呼ばれてる rb_str_splice_0() と rb_str_splice_1() という関数の名称も呼び元にあわせて rb_str_update_0() と rb_str_update_1() と改名しています。

[810aeb2d91] Maxime Chevalier-Boisvert 2023-02-09 20:14:26 UTC

YJIT で Array#empty? メソッドの呼び出しをメソッドを呼ばずに配列サイズを直接調べるコードを生成するように最適化しています。 https://github.com/ruby/ruby/pull/7242

[2c8e4aa2a0] Maxime Chevalier-Boisvert 2023-02-09 22:04:45 UTC

YJIT の --yjit--stats でのカウンター類の数値の出力時に String#% で整形していたのを整形用のメソッドを追加して 3桁ごとのカンマを入れて表示するようにしています。 https://github.com/ruby/ruby/pull/7281

[07bf97e94f] Hiroshi SHIBATA 2023-02-09 23:42:42 UTC

5991af204c2b27d7d5343177e6ad247d5954a6c0 で追加したリリースノートのためにコミットログからチケットや pull request のタイトルを抽出するツール tool/gen-github-release.rb で GitHub の release を作成する機能を追加しています。

[b61edc5f5d] Aaron Patterson 2023-02-09 19:17:17 UTC

doc/contributing/glossary.md という ruby 本体(あとおそらく YJIT も)のコード上の用語集を追加しています。これはありがたい。

[194520f80e] Mike Perham 2023-02-10 01:08:33 UTC

標準添付ライブラリ logger に Logger#with_level というメソッドを追加しています。このメソッドに渡したブロック内でのみデフォルトのログレベルを変更するというものみたいです。 Fiber をキーとした Hash で実装されています。 Fiber local storage

[94aed6ece5] "Satadru Pramanik, DO, MPH, MEng" 2023-02-10 03:37:26 UTC

標準添付ライブラリ fileutils の FileUtils.install でコピー先のディレクトリを mkdir_p で作成してからコピーするようにしています。あれ、今までしてなかったのか。

[b9f90cafa1] Eric Wong 2023-02-10 03:42:50 UTC

st.c の変数名に使われている peterb という名前を perturb に修正しています。

[38ecf08ba1] Nobuyoshi Nakada 2023-02-10 05:46:52 UTC

make help で出力される make clean と make distclean の説明を修正しています。

[be94808282] Koichi Sasada 2023-02-10 07:02:20 UTC

0a82bfe5e18ac86da72c27389db6eb8da156a0b5 のブロック内からの特殊変数参照の修正の追加修正で、Proc オブジェクト化されたブロック内での参照にまだ不具合があったのを修正しているようです。

[11e0f62148] OKURA Masafumi 2023-02-10 09:32:21 UTC

Regexp#options の rdoc 用コメントで単語が重複していたのを修正しています。

[46298955e4] Jean Boussier 2023-02-10 13:32:46 UTC

MatchdData オブジェクト(T_MATCH 型のオブジェクト)の更新処理に RGenGC の Write Barrier を挿入して WB-protected にしています。

[dc715af53b] Matt Valentine-House 2023-02-08 11:00:50 UTC

misc/.vscode/launch.jsonruby 実行する時のデフォルトの引数に test.rb を渡してこのファイルを実行させるようにしています。

[7ece23bf74] Matt Valentine-House 2023-02-10 12:08:39 UTC

ruby-runner.c で定義していたマクロ STRINGIZE() は include/ruby/internal/config.h で既に定義されていたので削除しています。

[a7e8eabeed] Maxime Chevalier-Boisvert 2023-02-10 21:05:16 UTC

YJIT の --yjit-stats で出力する統計情報にメソッド呼び出しの内訳についての情報を増やしています。

[f6d4f2bf67] Takashi Kokubun 2023-02-11 00:21:34 UTC

doc/maintainers.rdoc を doc/maintainers.md に移動してマークアップMarkdown に変更しています。 https://github.com/ruby/ruby/pull/7291

[1189a5634c] Takashi Kokubun 2023-02-11 00:22:43 UTC

README.md からの GitHub 上の doc/maintainers.rdoc へのリンクも doc/maintainers.md へのリンクに置き換えています。

[0e7eac7b48] Takashi Kokubun 2023-02-11 00:30:47 UTC

doc/maintainers.md のメンテナの降板についての規則の ML への参照をアーカイブサイトへのリンクにしています。

[c06565390e] Takashi Kokubun 2023-02-11 00:33:56 UTC

doc/maintainers.md から標準添付から外された(そして同じ名前で bundled gems に追加されている) debug.rb についてのエントリを削除しています。

[27fe4a1bc5] Jeremy Evans 2023-02-11 00:37:07 UTC

doc/maintainers.md でメンテナが Ruby core team となっていたライブラリを unmaintained に変更しています。あとセクションのレベルを変更しています。

[d8facbabff] Takashi Kokubun 2023-02-11 00:37:42 UTC

27fe4a1bc5a1205268d5354474c79556119e0c65 の doc/maintainers.md のセクションのレベル変更で debug.gem のところだけ漏れてたので追加修正しています。

[6517d1a188] Takashi Kokubun 2023-02-11 00:57:56 UTC

doc/ の配下に置かれていた過去のリリースの ChangeLog ファイルを doc/ChangeLog/ の下にもう一段ネストさせています。