Use raw trace args for line coverage#3
Merged
Conversation
ca4e181 to
fb5abc5
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This switches the
RUBY_EVENT_LINEhook torb_add_event_hook2withRUBY_EVENT_HOOK_FLAG_RAW_ARGand reads line event location viarb_tracearg_path/rb_tracearg_linenoinstead ofrb_sourcefile/rb_sourceline.The behavior should be equivalent for line events, and it aligns the extension with CRuby's raw trace argument API. It also means the extension will benefit from ruby/ruby#17332 if CRuby starts pre-filling line event path/line in the trace arg.
Performance check on Ruby 4.0.5 (
ruby 4.0.5 (2026-05-20 revision 64336ffd0e) +PRISM [arm64-darwin25]), using alternating fresh subprocesses and the same loaded-file loop workload:So on Ruby 4.0.5 this is effectively performance-neutral within measurement noise.
Verification:
I could not run the full project test suite under this local Ruby 4.0.5 because the test executables were not installed in that gem environment (
sus/bakemissing).