Repository navigation
Adding WriteZipper::remove_subtrie - #162
Conversation
…ation than remove_branches, but remove_branches is useful and correct in its own right. Updating documentation Future-proofing fuzzer .bin format by carrying opcode count in header
Bench A/B vs base: donejob log · 2026-10-13 01:59:26 UTC base cb4e1e4 → head d8597a2, 3 round(s), median of each run averaged; negative is faster
18 case(s) moved more than 5%
Full tables per bench are in the job log and the bench-out artifact. |
|
I believe this is good iff it's upheld by a lot of laws. |
Yup. The former is even codified in the default impl as well as the lean model. |
|
mostly good, but I think: ditch the |
Adding WriteZipper::remove_subtrie as this is a more fundamental operation than remove_branches, but remove_branches is useful and correct in its own right.
This new method balances the API, helping define and explain the consistency fixes proposed in #104 Also, in the future this will be the lowest-cost way to just chop a subtrie, although the current implementation doesn't offer much perf benefit vs. remove_branches.
I also updated the lean model to include the new method. However, this shifted the number of opcodes and threatened to invalidate the existing .bin files. So I made a change to the .bin header to include the opcode count, rather than hard-coding the %56 that was in there.
I pondered going further and actually redoing the .bin format entirely, storing opcodes + args instead of the raw fuzz signal, so decoding only happens once before saving a reproduction - but I didn't go that far because it seemed unnecessary and like I'd be over-stepping.
Thoughts, @imlvts?