Stream: show and tell

Topic: roc-lang.org


view this post on Zulip Richard Feldman (Oct 07 2022 at 04:14):

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

view this post on Zulip Richard Feldman (Oct 07 2022 at 04:14):

feedback welcome!

view this post on Zulip Richard Feldman (Oct 07 2022 at 04:15):

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

view this post on Zulip Brendan Hansknecht (Oct 07 2022 at 06:18):

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.

view this post on Zulip Ayaz Hafiz (Oct 07 2022 at 14:08):

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?

view this post on Zulip Ayaz Hafiz (Oct 07 2022 at 14:09):

@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

view this post on Zulip Richard Feldman (Oct 07 2022 at 14:19):

seems reasonable! :+1:

view this post on Zulip Brendan Hansknecht (Oct 07 2022 at 14:30):

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