mirror of
https://github.com/ruuda/rcl.git
synced 2025-12-23 04:47:19 +00:00
With the dup instruction, the smith fuzzer can produce programs that are exponential in the length of the fuzz input. Armed with that, the fuzzer has discovered a weak spot of RCL: the formatter is inefficient for operator chains, because it tries to break at every operator, and it backtracks a lot. I was aware of this, it's still somewhere on my list of things to fix. (Like the recent changes for the CST, an operator chain should parse as a single node with a list of terms, an n-ary operator if you like. Then we can format the entire chain wide or tall, which would make more sense to me anyway.) But if we add this feature to the fuzzer now, then for an input length of 64 bytes, the fuzzer will regularly find timeout cases that take longer than 2s to run, so it's a blocker. Remove the dup again then, for now, until I fix the formatter. |
||
|---|---|---|
| .. | ||
| fuzz_targets | ||
| src | ||
| tools | ||
| .gitignore | ||
| Cargo.rcl | ||
| Cargo.toml | ||
| dictionary.txt | ||
| dictionary_base.txt | ||
| dictionary_cli.txt | ||