summaryrefslogtreecommitdiff
path: root/tool/zjit_bisect.rb
AgeCommit message (Collapse)Author
4 dayszjit_bisect.rb: Fix pipe deadlock; log when timed out [ci skip]Alan Wu
I spent a long time bisecting some largish program before realizing that failure was in fact coming from the child timing out due to zjit_bisect.rb not clearing the stdout and stderr pipe. Fix the pipe deadlock by redirecting to /dev/null. This sacrifices the debug output during boot, but for that we also get to remove a lot of code and the dependency on Open3.
7 daysZJIT: Add flag to disable the HIR optimizer (#14181)Max Bernstein
Also add a check in the bisect script that can assign blame to the HIR optimizer.
11 daysZJII: Address review feedbackMax Bernstein
11 daysZJIT: Actually kill timed-out process in bisectMax Bernstein
11 daysZJIT: Use OptionParser in bisect scriptMax Bernstein
11 daysZJIT: Use shellwords in bisect scriptMax Bernstein
11 daysZJIT: Print out command to repro in bisect scriptMax Bernstein
2025-07-29ZJIT: Create delta debugging script to narrow JIT failures (#14041)Max Bernstein
Add support for `--zjit-allowed-iseqs=SomeFile` and `--zjit-log-compiled-iseqs=SomeFile` so we can restrict and inspect which ISEQs get compiled. Then add `jit_bisect.rb` which we can run to try and narrow a failing script. For example: plum% ../tool/zjit_bisect.rb ../build-dev/miniruby "test.rb" I, [2025-07-29T12:41:18.657177 #96899] INFO -- : Starting with JIT list of 4 items. I, [2025-07-29T12:41:18.657229 #96899] INFO -- : Verifying items I, [2025-07-29T12:41:18.726213 #96899] INFO -- : step fixed[0] and items[4] I, [2025-07-29T12:41:18.726246 #96899] INFO -- : 4 candidates I, [2025-07-29T12:41:18.797212 #96899] INFO -- : 2 candidates Reduced JIT list: bar@test.rb:8 plum% We start with 4 compiled functions and shrink to just one.