Stream: contributing

Topic: roc fuzzing


view this post on Zulip Rick Hull (Jan 25 2026 at 13:39):

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

view this post on Zulip Rick Hull (Jan 25 2026 at 13:42):

Looks like a Luke branch, maybe transient. Or bad path to fuzz-parse.zig

view this post on Zulip Rick Hull (Jan 25 2026 at 13:46):

Also: the bottom of src/README.md says Overview, then broken link: https://camo.githubusercontent.com/ddd54d7d0d304761ee604e07b0efc6442a83b6a90f8ffaad64acea7a1277e69c/68747470733a2f2f616e746f6e2d342e6769746875622e696f2f726f632d636f6d70696c65722d7669732f7a69675f646570656e64656e63795f67726170682e77656270

view this post on Zulip Rick Hull (Jan 25 2026 at 13:47):

I found https://github.com/roc-lang/roc/tree/main/test/fuzzing

view this post on Zulip Rick Hull (Jan 25 2026 at 13:48):

Sorry, im on iphone w one finger typing

view this post on Zulip Rick Hull (Jan 25 2026 at 13:52):

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"

view this post on Zulip Rick Hull (Jan 25 2026 at 13:53):

Is the path to the fuzz script set in GHA?

view this post on Zulip Rick Hull (Jan 25 2026 at 20:32):

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

view this post on Zulip Brendan Hansknecht (Jan 28 2026 at 04:56):

That sounds like a good idea

view this post on Zulip Brendan Hansknecht (Jan 28 2026 at 04:56):

We should be able to capture the verbose fuzz failure output and report it

view this post on Zulip Rick Hull (Jan 28 2026 at 05:01):

I see a few action items:

  1. fix the web ui (e.g. bad paths). consider any light revisions for clarity
  2. capture the output of fuzzing runs somehow somewhere for later web ui report
  3. web ui report itself, ideally maximally actionable

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

view this post on Zulip Brendan Hansknecht (Jan 30 2026 at 04:26):

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

view this post on Zulip Brendan Hansknecht (Jan 30 2026 at 04:27):

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.

view this post on Zulip Luke Boswell (Jan 30 2026 at 04:28):

Earlier today I fixed the snapshot tool for generating a seed corpus using our snapshots. It did support the REPL type snapshots.

view this post on Zulip Luke Boswell (Jan 30 2026 at 04:29):

https://github.com/roc-lang/roc/pull/9110 for reference

view this post on Zulip JRI98 (Jun 02 2026 at 20:40):

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

view this post on Zulip Luke Boswell (Jun 02 2026 at 22:51):

@Brendan Hansknecht would you be able to fix that?

view this post on Zulip Brendan Hansknecht (Jun 03 2026 at 04:04):

I'll take a look

view this post on Zulip Brendan Hansknecht (Jun 03 2026 at 05:47):

Updating the fuzz repo was easy...might be more complex to update the afl toolchain side...

view this post on Zulip Brendan Hansknecht (Jun 03 2026 at 06:56):

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.

view this post on Zulip Brendan Hansknecht (Jun 03 2026 at 06:57):

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

view this post on Zulip Anton (Jun 03 2026 at 12:04):

I'm working on upgrading zig-afl-kit and aflplusplus

view this post on Zulip Brendan Hansknecht (Jun 03 2026 at 15:05):

My forks are updated.

view this post on Zulip Brendan Hansknecht (Jun 03 2026 at 15:06):

Though, may still have issues given the download error above.

view this post on Zulip Brendan Hansknecht (Jun 03 2026 at 15:07):

Put up a PR of aflplusplus. That has to land before I can put up the zig afl kit pr

view this post on Zulip Anton (Jun 03 2026 at 15:20):

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 :)

view this post on Zulip Brendan Hansknecht (Jun 05 2026 at 05:03):

This error still confuses me: https://github.com/roc-lang/roc-compiler-fuzz/actions/runs/26996110304/job/79666096937

view this post on Zulip Anton (Jun 05 2026 at 12:52):

It's a flaky error, zig issue.
I made a flaky-retry action to circumvent it.

view this post on Zulip Brendan Hansknecht (Jun 05 2026 at 19:26):

Looks to be working. Thanks

view this post on Zulip JRI98 (Jun 08 2026 at 18:43):

Hello again. The fuzzers started failing again after the fuzz commands were renamed
https://github.com/roc-lang/roc-compiler-fuzz/actions/runs/27100001975

view this post on Zulip Brendan Hansknecht (Jun 08 2026 at 20:01):

What are they named now?

view this post on Zulip Luke Boswell (Jun 09 2026 at 03:32):

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

Screenshot 2026-06-09 at 13.31.57.png

view this post on Zulip Luke Boswell (Jun 09 2026 at 03:32):

I separated all the build from run steps for the build orchestrator and so we can get nicer statistics on our test runs

view this post on Zulip Brendan Hansknecht (Jun 09 2026 at 04:07):

No worries. I can update. Should be quite easy

view this post on Zulip Anton (Jun 09 2026 at 11:56):

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

view this post on Zulip Brendan Hansknecht (Jun 10 2026 at 00:25):

Fixed for the fuzzer

view this post on Zulip Richard Feldman (Jun 10 2026 at 00:37):

thanks so much @Brendan Hansknecht!!!

view this post on Zulip Luke Boswell (Jun 10 2026 at 03:04):

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