ruby-trunk-changes 2023-08-03

今日は YJIT の不具合修正や特殊な状況での require で SEGV する不具合の修正などがありました。

[1d096c1e53] Peter Zhu 2023-08-01 20:53:45 UTC

スクリプトのトップレベルで require した時に積まれるダミーの control frame がある状態で require の処理中に Object#method_missing が再定義されていてそこで例外発生した場合? に SEGV する不具合があったのを修正しています。例外作成時にその時点の iseq を取得する処理で dummy frame に対応するようにしています。 [ruby-core:114328] [Bug #19793]

[d405410e3c] Takashi Kokubun 2023-08-02 14:15:29 UTC

YJIT のために定義されていた定数マクロ ROBJECT_OFFSET_AS_XXX 類を yjit.c で enum として定義して Rust 実装から import するようにしています。 https://github.com/ruby/ruby/pull/8157

[452debba22] Takashi Kokubun 2023-08-02 14:16:37 UTC

YJIT の JIT コンパイルしたコードの disasm を表示する時のコントロールシーケンスによる色付けを修正しています。 https://github.com/ruby/ruby/pull/8158

[81c198b5cf] Takashi Kokubun 2023-08-02 14:19:39 UTC

YJIT で JIT したコードの利用をあきらめる side exit のメソッド起動時のカウンタ群の改名。 https://github.com/ruby/ruby/pull/8159

[a502cd80a5] Nobuyoshi Nakada 2023-08-02 14:55:07 UTC

85ee4a65a22ebe6f3c65f0b10397bd6ebb976333 の EnvUtil.invoke_ruby環境変数を消す機能追加で代入文を間違えてたのを修正。

[3c41a04b6c] Benoit Daloze 2023-08-02 15:08:19 UTC

dbbc3583ba432c279f07b1fa0afb0a8a9ba50c91コマンドラインオプションの処理の位置を移動してた変更の再修正。環境変数 RUBYOPT が空の時に問題があったようです。

[e20f1e443f] Jean byroot Boussier 2023-08-02 15:33:12 UTC

YJIT のインスタンス変数代入の処理時に T_OBJECT 型以外のオブジェクトで Object Shapes の shape 数制限を越えてた時の処理を YJIT が生成するコードで対応していたのを迂回するようにしています。 https://github.com/ruby/ruby/pull/8160

[dc54574ade] Benoit Daloze 2023-08-02 16:53:03 UTC

rubyspec を最新版に更新しています。

[32e828bb4a] Stan Lo 2023-08-02 18:35:04 UTC

irb の組み込みコマンドのうち sub irb を起動する系のコマンド(irb, fg, jobs, kill)を deprecated にしています。

[5f5cc22b5f] Takashi Kokubun 2023-08-02 23:23:17 UTC

misc/gdb.py の cfp のダンプ処理で env の情報を取得する処理を ep を使うように修正しています。

[192ed8e70f] Takashi Kokubun 2023-08-02 23:43:11 UTC

misc/gdb.py の cfp コマンドに -a/--all オプションを追加しています。現在の Thread の全ての frame の情報を一気にダンプするためのオプションのようです。

[29fd05036b] git 2023-08-02 23:43:29 UTC

misc/gdb.py の行末の空白除去。

[4b6c584023] Peter Zhu 2023-08-02 21:02:37 UTC

assert_separately を利用しているテストで呼び元で --disable-gems を指定しているところを削除しています。 assert_separately 自身が --disable-gems をオプションに追加するので呼び元で指定する必要はなかったので。

[fe977314d5] Nobuyoshi Nakada 2023-08-02 16:43:31 UTC

addr2line.c の debug_info_reader_read_addr_value() というマクロでデバッグ情報の解析に失敗した時のエラー処理を追加しています。

[8f2bbbbcaf] Nobuyoshi Nakada 2023-08-02 17:02:47 UTC

hash.c の RHASH_AR_TABLE_BOUND() という ar 実装の時の Hash の埋め込みテーブルのサイズを取り出すマクロを inline 関数の変更して、結果が RHASH_AR_TABLE_MAX_SIZE を越えないことを確認する HASH_ASSERT() による assertion を追加しています。

[5336b2f0db] Nobuyoshi Nakada 2023-08-03 04:43:04 UTC

cont.c の rb_fiber_start() で EC_PUSH_TAG()/EC_POP_TAG() のセクションの前後をまたいで初期化と利用をしていたローカル変数の初期化を EC_POP_TAG() の後に移動しています。longjmp() による clobber の警告抑制のためかな。