ruby-trunk-changes 2019-08-08

今日は require/load したスクリプトから捕捉されない例外が発生した時の TracePoint の :raise イベントの発火についての不具合修正などがありました。

[330e3f19c3] Takashi Kokubun 2019-08-07 12:47:03 UTC

.travis.yml のリトライ用の処理を tool/travis_retry.sh というシェルスクリプトに切り出して .travis.yml の記述を完結にしています。

[0d2aa6fec9] Takashi Kokubun 2019-08-07 13:11:52 UTC

make benchmark で使う benchmark-driver.gem のバージョン(GitHub のタグ)を v0.14.20 に更新しています。

[58dec9625c] Yusuke Endoh 2019-08-07 13:22:52 UTC

enum.c で不要だった transient_heap.h の #include を削除しています。

[67cde179c5] Hiroshi SHIBATA 2019-08-07 13:29:02 UTC

tool/sync_default_gems.rb で default gems の upstream のコミットを cherry-pick する機能で、コミットメッセージの先頭が "Auto Merge" のものも除外するようにしています。 bundlerbot による自動マージのコミットはこのメッセージではじまるみたいです。

[f5481e35ab] Hiroshi SHIBATA 2019-08-07 13:30:10 UTC

同じく tool/sync_default_gems.rb の upstream repo からの cherry-pick 機能でうまく cherry-pick できなかった commits を列挙する前に区切りの見出しみたいなのを表示して見易くしています。

[0cf6bfca78] Yusuke Endoh 2019-08-07 13:42:42 UTC

hash.c から既に不要になっていた gc.h の #include を削除しています。

[3229e0583f] Yusuke Endoh 2019-08-07 13:54:38 UTC

0cf6bfca7866a0205ba6d603cca7c87f4db0065e の再修正。 HASH_DEBUG が真の時にはまだ gc.h が必要だったので preprocessor による分岐つきで #include "gc.h" を残すようにしています。

[f82633b6a6] Yusuke Endoh 2019-08-07 13:56:52 UTC

array.c からも gc.h は不要になってたので #include を削除しています。

[fa29f65416] Takashi Kokubun 2019-08-07 15:10:26 UTC

appveyor.yml で mingw 上でのビルドのデバッグのため mingw32-make 実行に変数 V=1 とオプション --debug を追加しています。

[2f3795113d] git 2019-08-07 15:11:34 UTC

version.h の日付更新

[70fd099220] Aaron Patterson 2019-08-06 19:23:30 UTC

debug counters というのは VM や組み込みクラスのプロファイリングなどの目的でイベントやオブジェクト数などをカウントするやつですが、デバッグ用に指定するとプロセス終了時に値をダンプします。このコミットでは RubyVM.show_debug_counters というメソッドを生やして途中でも現状のカウンタを表示するようにしています。

[1c7d3a13ca] Gannon McGibbon 2019-03-11 19:07:52 UTC

こんなのあったっけ……と思い出せないのですが RubyVM.USAGE_ANALYSIS_XXX 系の特異メソッド群に USAGE_ANALYSIS_INSN_START、USAGE_ANALYSIS_OPERAND_START、USAGE_ANALYSIS_REGISTER_START、USAGE_ANALYSIS_INSN_RUNNING、USAGE_ANALYSIS_OPERAND_RUNNING、USAGE_ANALYSIS_REGISTER_RUNNING といったメソッドを追加して調査用のフックを有効化できるようにしています。 https://github.com/ruby/ruby/pull/2258

[1ad0f4e593] Gannon McGibbon 2019-08-06 22:38:55 UTC

1c7d3a13caa718ef52ec6b55988b1459a002f965 に続いて RubyVM の特異メソッドに USAGE_ANALYSIS_INSN_CLEAR、USAGE_ANALYSIS_OPERAND_CLEAR、USAGE_ANALYSIS_REGISTER_CLEAR といった集計したデータをクリアするメソッドも追加しています。 https://github.com/ruby/ruby/pull/2258

[b39efb163d] Hiroshi SHIBATA 2019-08-08 08:19:23 UTC

test/benchmark/test_benchmark.rb で capture_io メソッドの結果の文字列の時間っぽいところをマスクして差分を検出しないようにしていたのをやめて capture_bench_output というメソッドのほうにその処理を移動しています。あと capture_output はたんに capture_io の alias にしています。

[20cb8e8aea] Yusuke Endoh 2019-08-08 08:34:50 UTC

main.c の先頭に Doxygen によるドキュメンテーション向けのコメントを追加しています。

[b004d3e830] Koichi Sasada 2019-08-08 08:53:36 UTC

require や load されたスクリプト内で例外が発生して、そのまま require/load 元に伝播する場合に TracePoint の :raise イベントフックが重複して起動されるという問題を修正しています。 require_internal() とかで例外発生を一旦捕捉してから再度 rb_exc_raise() してるのをやめているようです。 コミットメッセージのチケット番号は違うやつみたいです。たぶんこっちが正解。 [ruby-core:92880] [Bug #15885]

[29bdfeb0c6] git 2019-08-08 08:59:38 UTC

b004d3e8300ba803d4a499148fa4fc6a690149e6 のインデントのタブを空白に展開。