https://roc-lang.github.io/roc-compiler-fuzz/
Clicking on the top entry (iphone) takes me to 404:
https://github.com/roc-lang/roc/blob/e3f3714d7bf9aec537a137f2934c1966b30f8a56/src/fuzz-parse.zig
Looks like a Luke branch, maybe transient. Or bad path to fuzz-parse.zig
Also: the bottom of src/README.md says Overview, then broken link: https://camo.githubusercontent.com/ddd54d7d0d304761ee604e07b0efc6442a83b6a90f8ffaad64acea7a1277e69c/68747470733a2f2f616e746f6e2d342e6769746875622e696f2f726f632d636f6d70696c65722d7669732f7a69675f646570656e64656e63795f67726170682e77656270
I found https://github.com/roc-lang/roc/tree/main/test/fuzzing
Sorry, im on iphone w one finger typing
I don't see the nature of the failure anywhere. I can click the coverage field, but iphone thinks phone number. I can't click e.g. "12 crashes"
Is the path to the fuzz script set in GHA?
Luke showed on the meeting to copy/paste the fuzz cmd and run locally. I don't have a terminal, but Id like to improve the fuzzing web ui. Maybe show the failure like traditional CI, but maybe this is less sensible for fuzzing results
That sounds like a good idea
We should be able to capture the verbose fuzz failure output and report it
I see a few action items:
Now that I have a terminal and keyboard available, I can start with manually running the fuzz commands and pick up more context that way. but happy to try to run with any of the 3 above as well
The code is fuzzers, CI jobs, and some zig code to generate the website. Pretty simple and fast to start up on bar fuzzing dependencies
You can work on the website using the checked in fuzzing data, but might need to expand it with more data for some of this work.
Earlier today I fixed the snapshot tool for generating a seed corpus using our snapshots. It did support the REPL type snapshots.
https://github.com/roc-lang/roc/pull/9110 for reference
Hi there, I noticed the fuzzers started failing after the update to Zig 0.16
https://github.com/roc-lang/roc-compiler-fuzz/actions/runs/26835033051
@Brendan Hansknecht would you be able to fix that?
I'll take a look
Updating the fuzz repo was easy...might be more complex to update the afl toolchain side...
Hitting some download errors in compiler fuzz CI I am not sure of:
/home/runner/work/roc-compiler-fuzz/roc-compiler-fuzz/roc/build.zig.zon:7:20: error: unable to discover remote git server capabilities: HttpConnectionClosing
.url = "git+https://github.com/kristoff-it/zig-afl-kit.git#395c39d5b33d999f6871a90bd731ec112d3995ca",
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Or with the hopefully correctly updated version
/home/runner/work/roc-compiler-fuzz/roc-compiler-fuzz/roc/build.zig.zon:7:20: error: invalid HTTP response: HttpConnectionClosing
.url = "https://github.com/bhansconnect/zig-afl-kit/archive/c1f7353e006cf326ffab0a35b6e454cb5d8a5d7b.tar.gz",
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Will need to investigate more later.
this is most of the fix bar figuring out the download issues (though that may not require a roc repo fix...not sure): https://github.com/roc-lang/roc/pull/9526
I'm working on upgrading zig-afl-kit and aflplusplus
My forks are updated.
Though, may still have issues given the download error above.
Put up a PR of aflplusplus. That has to land before I can put up the zig afl kit pr
Brendan Hansknecht said:
Though, may still have issues given the download error above.
I am using your forks for PR#9527, the nix-build ubuntu-24 and ubuntu-24-arm workflows already passed so that is good :)
This error still confuses me: https://github.com/roc-lang/roc-compiler-fuzz/actions/runs/26996110304/job/79666096937
It's a flaky error, zig issue.
I made a flaky-retry action to circumvent it.
Looks to be working. Thanks
Hello again. The fuzzers started failing again after the fuzz commands were renamed
https://github.com/roc-lang/roc-compiler-fuzz/actions/runs/27100001975
What are they named now?
oops, that was probably me being overly zealous with the naming convention. We can change them back if it's easier?
These are the new names
![]()
I separated all the build from run steps for the build orchestrator and so we can get nicer statistics on our test runs
No worries. I can update. Should be quite easy
We can change them back
Let's not change them back, I've been changing them (to the new version) downstream all over the place :p
Fixed for the fuzzer
thanks so much @Brendan Hansknecht!!!
My machines are tapped out working on other things... but I will aim to look at these fuzzer failures later
Last updated: Jun 16 2026 at 16:19 UTC