rcl/fuzz
Ruud van Asseldonk 12492e12f1 Revert "Smith: Add "dup" instruction"
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.
2025-08-25 22:58:11 +02:00
..
fuzz_targets Hook up the source fuzzer to Mode::PatchIdempotent 2025-08-25 22:58:11 +02:00
src Revert "Smith: Add "dup" instruction" 2025-08-25 22:58:11 +02:00
tools Smith: Add subcommand to evaluate corpus 2024-04-27 14:11:03 +02:00
.gitignore Add initial fuzzer 2023-08-14 21:46:30 +02:00
Cargo.rcl Add a fuzzer to test various Decimal properties 2025-02-24 20:42:59 +01:00
Cargo.toml Bump version to 0.9.0 2025-07-10 22:13:33 +02:00
dictionary.txt Add parse_number builtin to keywords 2025-08-07 21:42:42 +02:00
dictionary_base.txt Generate fuzz dictionary from Pygments grammar 2025-03-03 22:14:27 +01:00
dictionary_cli.txt Add tests for 'rcl patch' CLI parsing 2025-08-25 22:56:49 +02:00