Stream: compiler development

Topic: zig compiler - tracking progress


view this post on Zulip Luke Boswell (Feb 09 2025 at 23:41):

Just thinking about how we could communicate progress in a simple way. I put this together as a starting point...

https://gist.github.com/lukewilliamboswell/35f05a6ec280093f539b50a1e18b8cb1

The general idea is that we could put this in src/README.md and update it as we merge PR's etc. It would give us a bit of a roadmap and easy place to see where things are up to.

The vertical axis is the compiler stages that we are implementing ... and the horizontal are the features that thread through all of these stages.

I guess we could also come up with a loose definition for these... but in general I just wanted something really simple to give people an idea of where things are at.

What do you all think, is this worth maintaining as we go? any ideas?

view this post on Zulip Sam Mohr (Feb 09 2025 at 23:45):

It's gonna probably lag a little bit, but shouldn't be too hard to keep updated

view this post on Zulip Sam Mohr (Feb 09 2025 at 23:45):

Keeping it in a folder README is better

view this post on Zulip Luke Boswell (Feb 09 2025 at 23:51):

Sam Mohr said:

It's gonna probably lag a little bit, but shouldn't be too hard to keep updated

You update it with the PR you implement the feature in. So it shouldn't lag at all I thought.

view this post on Zulip Sam Mohr (Feb 09 2025 at 23:51):

You should, I just don't trust that'll always happen

view this post on Zulip Sam Mohr (Feb 09 2025 at 23:52):

I'm accounting for that in "it'll lag a little"

view this post on Zulip Luke Boswell (Feb 09 2025 at 23:53):

Ask, I thought I was missing something. Hopefully it's useful -- if it becomes a chore to do I'd propose we remove it.

view this post on Zulip Brendan Hansknecht (Feb 10 2025 at 00:23):

Instead of tested and polished, I wonder if there is a better split. Like I assume generally things will pop up and not be that well tested but be feature complete, then well test, then fuzzed and polished....not sure exact stages

view this post on Zulip Brendan Hansknecht (Feb 10 2025 at 00:24):

Also, separately just hoping to push more for fuzzing and ensuring we have robust tests.

view this post on Zulip Luke Boswell (Feb 10 2025 at 01:11):

My thoughts on the topic are... we should have a blurry or somewhat vague definition deliberately.

The purpose is to communicate maturity in a simple way -- like the "vibe" of it.

This gives us flexibility to apply this in a way that makes sense for that stage or feature and not get caught up on anything too specific. But also gives us a nice simple abstraction for letting people know about progress that works consistently across the whole pipeline.

I agree that fuzz clean would be a pretty good indicator of "polished". Maybe also good documentation would help there too.

The idea is that we could discuss it in the PR if anyone had thoughts about it -- in a place that is specific to a particular feature or stage, and has something concrete to talk about.

view this post on Zulip Brendan Hansknecht (Feb 10 2025 at 01:15):

Maybe just:
:work_in_progress: Work Started
:low_battery: Functional
:battery: Polished
then?

view this post on Zulip Luke Boswell (Feb 11 2025 at 04:18):

Made a PR for discussion https://github.com/roc-lang/roc/pull/7602 -- feedback welcome


Last updated: Jul 06 2025 at 12:14 UTC