Stream: compiler development

Topic: ✔ Zig compiler work coordination and roadmap


view this post on Zulip Anthony Bullard (Jun 28 2025 at 11:55):

For the first few months of development of the new Zig compiler, work was being done by very few people (sometimes literally just 1 person for a stretch of time), usually in very distinct, non-overlapping periods of time. I sense that we are entering a new phase where we are having more contributors coming in regularly (:tada:) and they face some distinct problems - and those problems will affect the existing contributors as well:

  1. They don't know what needs to be done
  2. If they grok the code that is there, and can find something to do - they don't know what someone else is working on.

I'd like to propose we introduce some lightweight way for improving both of these issues(pun intended). Something like:

  1. We should sit down (maybe in the contrib. meetup tonight?) and lay down what needs to be done, being as expansive and forward-looking as possible.
  2. Existing contributors that are underway on ANYTHING with the Zig compiler (I mean Roc compiler written in Zig - maybe we should call it rocZ and the old one rocR?) make sure that work is in that list and marked as IN PROGRESS

I really don't care about the format necessarily, but I think it would likely be out of band to Git since if I'm working on something I can't mark it as in progress unless I literally make a "dibs" PR.

view this post on Zulip Anton (Jun 28 2025 at 12:09):

(I mean Roc compiler written in Zig - maybe we should call it rocZ and the old one rocR?)

I like old and new compiler

view this post on Zulip Kiryl Dziamura (Jun 28 2025 at 12:10):

Yes please. That's what I was looking for recently.
I'm currently reading trough the src and prs. I have no zig experience but the src doesn't look difficult.
The most challenging for me is to build a theory around what's happening there. I mean, get a sense of reasoning. So I'd also appreciate some guidance, maybe pairing. I'll prepare a list of silly questions, maybe they will also help to improve documentation

view this post on Zulip Anthony Bullard (Jun 28 2025 at 12:17):

I think having a very light formalization of things like "who's a domain expert in this thing and open to pair"? Might be nice, but I think we could just use git blame and Zulip to accomplish that

view this post on Zulip Anthony Bullard (Jun 28 2025 at 12:18):

But we are all (well almost, :wink:) part time contributors taking time away from friends and family to move this project forward, so we don't want someone wasting time or effort either flailing in the wind or duplicating work that you didn't know was already underway

view this post on Zulip Anthony Bullard (Jun 28 2025 at 12:23):

Also I feel like there is another issue exist that could be fixed here:s

  1. LOTS of stuff gets talked about in #ideas and #compiler development that kind of get lost. We could actually take that and turn it into a "card" or whatever

view this post on Zulip Anthony Bullard (Jun 28 2025 at 12:25):

I'd also like a way to formalize the language spec for v0.1 a bit so that work on things can move smoothly without a new(or existing) contributor being like "What's the syntax for open tag unions? Do they even still exist?"

view this post on Zulip Anthony Bullard (Jun 28 2025 at 12:26):

I should add the proviso that I've been a delegate to ECMA TC-39 (the Javascript standards body) for like three years, so maybe I am just used to more formalized, explicit processes.

view this post on Zulip Anton (Jun 28 2025 at 12:50):

Some more formalization sounds good to me too

view this post on Zulip Anton (Jun 28 2025 at 12:52):

I'd also like a way to formalize the language spec for v0.1 a bit

A lightweight start for this may be to make a single parseable roc file that demonstrates all syntax. Not all headers of course, but as much as possible.

view this post on Zulip Kiryl Dziamura (Jun 28 2025 at 12:59):

Let's have a separate thread for that? Formalized spec also means conformance testing?
Would be nice to generate spec from the parser itself but I think it's unrealistic at least right now?

view this post on Zulip Richard Feldman (Jun 28 2025 at 13:02):

yeah I don't think we should have a spec

view this post on Zulip Richard Feldman (Jun 28 2025 at 13:02):

at least not right now

view this post on Zulip Anthony Bullard (Jun 28 2025 at 13:03):

i don't mean a spec spec , but kind of what anton's talking about

view this post on Zulip Anthony Bullard (Jun 28 2025 at 13:03):

a reference point

view this post on Zulip Anthony Bullard (Jun 28 2025 at 13:03):

that's kept up to date with the current syntax

view this post on Zulip Richard Feldman (Jun 28 2025 at 13:03):

yeah that sounds GREAT!

view this post on Zulip Richard Feldman (Jun 28 2025 at 13:03):

I love that idea

view this post on Zulip Anthony Bullard (Jun 28 2025 at 13:03):

sweet

view this post on Zulip Anthony Bullard (Jun 28 2025 at 13:04):

we can talk about this thread tonight in the meetup

view this post on Zulip Anthony Bullard (Jun 28 2025 at 13:04):

if yall want

view this post on Zulip Luke Boswell (Jun 28 2025 at 23:42):

Is there an API for zulip? I wonder if we could feed an AI the last week of conversations and have it generate a summary (draft). I'd be happy to take something like that and edit it to give a rolling update on progress.

view this post on Zulip Kiryl Dziamura (Jun 29 2025 at 03:58):

I think this is the answer: https://roc.zulipchat.com/#narrow/stream/306878-off-topic/topic/casual.20conversation/near/526206457

Also, here's a related topic in zulip docs: https://zulip.readthedocs.io/en/10.2/production/ai-integrations.html

view this post on Zulip Anthony Bullard (Jun 29 2025 at 10:46):

I think the AI Search thing is fine for recovering state if we put in the effort. But to get a snapshot of what is being worked on _right now_ I think a channel in either #compiler development or #contributing that's solely for "I'm working on this" - paired with putting up draft PRs as soon as you start a piece of work is the easiest and most reliable path forward for solving for coordination.

view this post on Zulip Anton (Jun 30 2025 at 09:50):

I think a channel in either #compiler development or #contributing that's solely for "I'm working on this" - paired with putting up draft PRs as soon as you start a piece of work is the easiest and most reliable path forward for solving for coordination.

For visibility: this channel has been started: #contributing > Worklog (Draft PRs and coordination)

view this post on Zulip Anton (Jun 30 2025 at 10:21):

Luke Boswell said:

Is there an API for zulip? I wonder if we could feed an AI the last week of conversations and have it generate a summary (draft). I'd be happy to take something like that and edit it to give a rolling update on progress.

Yeah https://github.com/zulip/zulip-archive seems very nice, it can be set up with github actions for easy incremental updates. What do you think @Luke Boswell?

view this post on Zulip Luke Boswell (Jun 30 2025 at 10:26):

That looks great Anton :+1:

view this post on Zulip Anton (Jun 30 2025 at 10:50):

I'll get started on setting it up

view this post on Zulip Luke Boswell (Jun 30 2025 at 11:20):

I'm noodling around with the when -> match conversion... am probably going to get carried away and implement Can for it while i'm here

view this post on Zulip Anthony Bullard (Jun 30 2025 at 11:39):

Luke Boswell said:

I'm noodling around with the when -> match conversion... am probably going to get carried away and implement Can for it while i'm here

conversion? you mean just in the Can IR right, it's already match in the Parser and in the actual syntax

view this post on Zulip Luke Boswell (Jun 30 2025 at 11:40):

Yeah, just in Can

view this post on Zulip Anthony Bullard (Jun 30 2025 at 11:41):

ok, and just to wrap up the convo here. we are going to put all work we are about to start (or currently working on if not here already) in #contributing > Worklog (Draft PRs and coordination)

view this post on Zulip Notification Bot (Jun 30 2025 at 11:41):

Anthony Bullard has marked this topic as resolved.

view this post on Zulip Anton (Jun 30 2025 at 14:52):

Anton said:

I'll get started on setting it up

https://roc-lang.github.io/zulip-export/

view this post on Zulip Anton (Jun 30 2025 at 14:55):

I'll check if there is an easy way to extract the posts of the last week from this setup.

view this post on Zulip Anton (Jun 30 2025 at 15:51):

Okidoki, every post comes with a timestamp, example file. The whole public channel export is only 29 MiB, so very doable to just go through all json files with a script and filter based on the timestamp.


Last updated: Jul 06 2025 at 12:14 UTC