I made a PR with a bunch of updates to roc-lang.org to make it more informative while still setting expectations about roc being WIP:
https://github.com/roc-lang/roc/pull/4231
feedback welcome!
if you search for "netlify/roc-lang/deploy-preview" and hit Details next to it, you can see what it would look like when deployed
That is much more detailed and very clear. Nice write up.
Also, for fuzzing the formatter, I remember looking at it. Was thinking of setting up a fuzzer from the formatter's data structure, to text, and then though the parser. The main struggle is lifetimes in the formatter's data structure and lack of ownership. Can be worked around but likely to be invasive and annoying to fix.
The main struggle is lifetimes in the formatter's data structure and lack of ownership.
Can you have it generate arena-allocated structures? Or just wave your hands and pretend they are statically-lifetimed if generated at the beginning of a test?
@Richard Feldman what do you think about adding a table-of-contents to the web page? With the new large size, I find it challenging to go to a location I would find interesting on the page
seems reasonable! :+1:
I think you can do arena allocated structures, but you need to do your own special arena allocator. Since the fuzzer just gives you a list of bytes and you are essentially distributing that list of bytes across the different generated types.
Otherwise, I think the more common solution is to use config flags and make it so that when configured for fuzzing, all of the structures use an owned type instead of the limited lifetime type. That is why it can be extremely invasive to fix.
Last updated: Jul 06 2025 at 12:14 UTC