ruby-trunk-changes 2020-07-16

今日は例外クラスの to_s などが例外を発生させる時に無限ループ状態に陥る不具合の修正などがありました。

[579645d9f8] Nobuyoshi Nakada 2020-07-15 09:46:07 UTC

例外クラスの to_s が例外を発生させる実装になってるとバックトレースの表示が止まらなくなる? という不具合を修正しています。rb_ec_error_print() で同じ例外の出力を TAG_JUMP のせいで繰り返さないように変数でフラグを持って繰り返しの出力を抑制するようにしています。なるほど EC_PUSH_TAG() と EC_POP_TAG() の間で例外発生させると EC_EXEC_TAG() のところに戻ってしまうから無限ループ状態になってたのか。 [ruby-core:99172] [Bug #17033]

[9f4b7fc82e] Nobuyoshi Nakada 2020-07-15 14:30:32 UTC

tool/lib/leakchecker.rb で Warning[] によるカテゴリごとの on/off 指定が実装されてなかったら WARNING_CATEGORIES という定数を空にして Warning[] を呼ばないようにしています。このディレクトリは default gem でも実行されるんでしたっけ。

[238464863a] Samuel Williams 2020-07-15 12:58:01 UTC

test/fiber/test_http.rb という blocking Fiber のテストをファイルまるごと消しています。 https://www.ruby-lang.org/en/ にアクセスするという外部リソースに依存しているのでテスト用のサーバーを立てるように書きなおしたいとのこと。

[5d5b8a33f6] git 2020-07-16 01:44:19 UTC

version.h の日付更新

[1fb4e28002] 卜部昌平 2020-07-13 02:43:24 UTC

f66e0212efe4f6572d5e81741e831ab735cc2fee で Primitive.cexpr! で MJIT 用に式ごとの専用の compile 関数を作るようにしたところで Primitive.attr! で inline が指定されていないやつも無条件で inline 化してしまっていたので、定義する関数の引数で inline 可能かどうか渡すようにしています。たぶん今は全て inline ついてるから実質問題なかったのかな……と思ったけど yield_self/then は inline なしでした。