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?
It's gonna probably lag a little bit, but shouldn't be too hard to keep updated
Keeping it in a folder README is better
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.
You should, I just don't trust that'll always happen
I'm accounting for that in "it'll lag a little"
Ask, I thought I was missing something. Hopefully it's useful -- if it becomes a chore to do I'd propose we remove it.
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
Also, separately just hoping to push more for fuzzing and ensuring we have robust tests.
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.
Maybe just:
:work_in_progress: Work Started
:low_battery: Functional
:battery: Polished
then?
Made a PR for discussion https://github.com/roc-lang/roc/pull/7602 -- feedback welcome
Last updated: Jul 06 2025 at 12:14 UTC