今日は YJIT の最適化や TracePoint の :thread_end イベントの発火がされないケースがある不具合の修正などがありました。
[c22cb960cf] Hiroshi SHIBATA 2024-02-20 11:52:04 UTC
gems/bundled_gems の debug のテストに使う commit hash を更新しています。
[835fa98a62] Nobuyoshi Nakada 2024-02-20 14:03:13 UTC
コマンドラインオプションの -W でカテゴリごとの警告の有効化/無効化を反映させるためのビットフラグの初期化を --dump フラグの処理の前に移動しています。 prism 利用時の experimental 警告の抑制がきくようにするためみたいです。
[c184aa8740] Peter Zhu 2024-02-16 18:35:33 UTC
rb_method_entry_t および T_IMEMO 型オブジェクトの GC の mark 処理で GC.compact による参照の更新対応の実装を rb_gc_mark_and_move() という関数を使いまわすようにしているそうです。処理の共通かな?
[c0e5de9567] Takashi Kokubun 2024-02-20 17:13:36 UTC
tool/missing-baseruby.bat で BASERUBY として要求する最低バージョンのメッセージを 2.7.0 から 3.0.0 に更新しています。
[2e2e3d89af] Alan Wu 2024-02-20 18:29:02 UTC
YJIT で C 実装のメソッドに対する **nil での空のキーワード引数を渡す呼びかたへの対応を追加しているようです。
[77c1233f79] Jeremy Evans 2024-01-30 18:31:27 UTC
メソッドの引数の処理で不要な中間オブジェクトの生成を抑制するために VM 命令に pushtoarraykwsplat というのを追加しています。うーん徹底してますね。速くするためなんでしょうが。
[b3c13de858] Koichi Sasada 2024-02-20 06:31:24 UTC
prism を parser として使うテストで Encoding.locale が UTF-8 じゃない時に通らないものをチェックして実行しないようにしています。
[d4b4b53bc0] Burdette Lamar 2024-02-20 21:10:52 UTC
File の rdoc 用コメントに改行についてのセクションを追加してリンクを追加したりしています。 https://github.com/ruby/ruby/pull/9970
[9216a2ac43] Takashi Kokubun 2024-02-20 21:42:29 UTC
YJIT の実装で C 実装のメソッドの C の関数を直接呼ぶ時に例外が発生しない(leaf)かどうかを引数の型のチェックなども含めて実行時に確認するようにしてより強く最適化するようにしているようです。 https://github.com/ruby/ruby/pull/10002
[8e1090487e] Alan Wu 2024-02-20 21:20:02 UTC
YJIT で ruby 実装の組み込みメソッドへ *nil や **nil で空の引数やキーワード引数を渡す時のスタック処理の不具合修正。
[35fdf1a624] Alan Wu 2024-02-20 21:21:32 UTC
bootstraptest の YJIT の冗長なテストを削除。
[e7ab5d891c] yui-knk 2024-02-10 01:05:18 UTC
正規表現リテラルのために専用の AST のノードタイプ NODE_REGX を追加しています。 AST から ruby のオブジェクトを直接持つのを除外する一環でしょうか。
[776dbbba72] yui-knk 2024-02-20 14:52:23 UTC
parse.y で %type の先頭に ripper 向けにコメントを書く必要があったのが昨日の ripper の実装の大幅変更で不要になったようなので削除しています。
[ce4142bcb7] Takashi Kokubun 2024-02-21 01:23:08 UTC
YJIT の VM 命令 concatstrings の実装で rb_str_concat_literals() を呼ぶために leaf 用の準備をしていたけど leaf ではなかったので jit_prepare_call_with_gc() のほうを呼ぶほうにしています。 https://github.com/ruby/ruby/pull/10035
[5fb574ae4e] yui-knk 2024-02-18 22:55:21 UTC
parse.y の Hash リテラルの重複したキーの警告のための処理で NODE_LIT ノードを考慮する必要がなくなったそうなので実装をシンプルに作りなおしています。 NODE_LIT はまだあるけど magic comment の shareable_constant_value でだけ使われるとのこと。
[2a6917b463] Alan Wu 2024-02-20 21:45:59 UTC
Hash リテラルの ISeq へのコンパイル時の処理でリテラル判定する関数に Hash の値のほうもキーとして扱ってしまっていたのを修正しています。キーのほうは frozen_string_literal でなくても freeze されてるのでそれに合わせた判定をしてしまってたようです。
[1c97abaaba] John Hawthorn 2024-02-12 05:43:38 UTC
rb_vm_t 構造体に ci_table という st_table のメンバーを追加してここで VM 全体で共有する struct rb_callinfo のキャッシュを持ち同じ内容の callinfo は使いまわすようにしているようです。肥大化したりしないのかなと思ったけど開放時には削除処理もしていて、しかしその時に参照カウンタとかの管理はしていないので、callinfo 自体 T_IMEMO 型のオブジェクトで GC の対象なのでその回収時に ci_table の登録から削除するということですね。
[081ee3d355] John Hawthorn 2024-02-15 23:32:01 UTC
1c97abaabae6844c861705fd07f532292dcffa74 の変更により eval でキーワード引数を含むメソッド呼び出しをコンパイルし続けると callinfo が T_CLASS/T_MODULE に溜まり続けるメモリリークが修正されたのでそれに対応するテストを追加しています。
[a605234bfa] Yusuke Endoh 2024-02-20 07:16:28 UTC
NEWS に例外メッセージのクオート記号の変更とバックトレースのメソッドに Class/Module 名も含めるようにした変更について追記しています。 [Feature #16495] [Feature #19117]
[08753f2037] Hiroshi SHIBATA 2024-02-20 07:47:48 UTC
rubygems と bundler のドキュメントやコメント内のリンクの http を https に変更しています。
[d0786cde3f] Hiroshi SHIBATA 2024-02-20 10:12:44 UTC
bundler の man ページの更新。
[91cb303531] yui-knk 2024-02-18 09:33:29 UTC
Universal Parser の構造体 rb_parser_config_t から不要な関数ポインタのメンバーを削除しています。
[d578684989] Koichi Sasada 2024-02-20 10:09:23 UTC
M:N Threads が有効な時に native thread を現在の Thread で専有するための? C API rb_thread_lock_native_thread() を追加しています。 https://github.com/ruby/ruby/pull/10031
[c8fb4f308b] Nobuyoshi Nakada 2023-11-01 14:45:48 UTC
rubygems の専用の YAML 実装で Hash の値が nil の場合にキーごと削除するようにする変更を加えています。 libyaml がバージョンによっては値が nil の Hash をうまく扱えないみたいです。
[fc1a7a46dc] Hiroshi SHIBATA 2024-02-21 05:27:58 UTC
c8fb4f308bc24c75c2713129a0972ffcd8742b3f の再修正で Hash の値が nil のものを消すのに dup+delete_if を使ってたのを Hash#compact を使うように変更しています。Hash#compact ってキーじゃなくて値のほうが nil の要素を消すのか。
[1fa4d15ca7] Nobuyoshi Nakada 2024-02-21 06:45:53 UTC
テスト用の tool/lib/test/unit の Test::Unit::TestCase の __name__ の alias として method_name というメソッドを生やしています。 test-unit.gem との互換性のためとのこと。
[6ecb14df2c] Nobuyoshi Nakada 2024-02-20 17:32:24 UTC
rubygems のテスト用の helper メソッドで終了時に一時ディレクトリの削除確認を追加し、一時ファイルが残ってたのを修正しているようです。
[b1431ce427] Yusuke Endoh 2024-02-21 08:14:49 UTC
dmydln.c/dmyenc.c/dmyext.c などの拡張ライブラリの静的リンク時のためのソースコードの先頭にコメントで miniruby と本番の ruby どちらで使われるのかといった説明を追記しています。
[6aa5067ab9] Nobuyoshi Nakada 2024-02-21 10:28:23 UTC
6ecb14df2cda223e2280891150b3f41c1eb2edf0 の rubygems のテストでの一時ディレクトリ削除のチェックする assertion の追加を revert しています。どこで消し漏れているか確認するために入れたものだったみたいです。
[fd91354628] Yuta Saito 2024-02-21 10:17:13 UTC
template/exts.mk.tmpl に EXTOBJS に複数のエントリがあった時の処理に理由をコメントとして追記しています。
[78d9fe6947] Samuel Williams 2024-02-21 11:32:59 UTC
TracePoint の Thread が終了する時のイベント :thread_end の発火が例外で終了した時に行なわれていなかったのを修正しています。 https://github.com/ruby/ruby/pull/10039 [ruby-core:116890] [Bug #20286]
[04729fe68d] Samuel Williams 2024-02-21 11:33:18 UTC
78d9fe69479d32214a52ad7291c3973f1b6b7f6f の追加修正? で non-blocking Fiber 用の scheduler のセットをする rb_fiber_scheduler_set() で既存の scheduler を終了させる処理中の例外を捕捉する rb_ensure() を追加しています。 https://github.com/ruby/ruby/pull/10042 [ruby-core:116890] [Bug #20286]