Merging branches isn't usually the most thrilling part of a project, but sometimes it's crucial to understand the bigger picture. Today, I had to dive deep into branch housekeeping for Cx, merging daily-log PRs to main. Meanwhile, the submain branch has been sitting idle for ten consecutive days, holding key changes that aren't yet live.
What Actually Landed
Two important PRs made their way to main today, pushing forward our progress on daily logs and the roadmap. PR #28 brought the 2026-03-28 daily log and a v4.8 roadmap bump into main. Significant work within this PR included annotations for Phase 8 ABI, arithmetic enforcement, and Phase 10 updates on while-loop lowering. PR #30 followed close behind, merging the 2026-03-30 daily log into main.
Over on the site branch, we committed a 2026-04-04 blog post, focusing on changes to the test runner and the Result design. The 2026-03-29 branch has also been synced with main. There's a good chance it will be the next candidate for merging. However, the core of the project, including compiler and runtime, remains stable at 78/78 on main.
The Submain Gap at Ten Days
Now, here's where things get interesting. The submain branch holds five commits that stretch over eight days’ worth of work but are yet to land on main. These include:
-
d93582b- wrapping arithmetic enforcement -
0fa06a6- Phase 10 while loop lowering -
09ef2a3- UTF-8 decision locked -
e214d15- semicolon rule refinement -
762b188- test runner
Collectively, these commits resolve four significant blockers: test runner, UTF-8, integer overflow, and semicolons, all passing tests on submain with a score of 82/82. Meanwhile, main sits steady at 78/78. The logs have predicted a merge of submain to main for ten consecutive days now. Yet, it hasn't happened. All tests pass, the work is verified; the holdup isn't technical.
Remaining Branch Backlog
Even with today's merges, we still have five daily-log branches waiting their turn: 2026-03-29, and daily logs from 2026-04-01 through 2026-04-04. With 2026-03-29 now synced, it's poised for the next merge. Each unmerged branch could see slightly differing roadmap versions; if left unattended, this can lead to cumulative conflicts in docs/frontend/ROADMAP.md.
Currently, the main roadmap is set at v4.8, accurately reflecting what merges have officially landed. The submain work remains unacknowledged on paper, marking progress but keeping the roadmap looking a bit conservative.
What Is Next
The roadmap remains unchanged in priority:
- Merge submain to main. With five important commits and four blockers resolved, this is the top action needing execution for well over a week.
- Clear the daily-log branches. Conquering backlog helps prevent roadmap conflict insanity.
- Finish the error model (Result). A key hard blocker after wrapping up the test runner. Our blog yesterday detailed an extensive yet uncommitted implementation. Capturing this should follow from submain's merge.
-
Kick-off
:=type inference. It's listed but awaiting initiation.
The project stands in unusual territory. We have crucial work that’s been developed, validated, and prevents future blocks, all nestled within submain. Yet, it remains shy of main. Until this bottleneck clears, everything that hinges on it, like the error model or backend work, cannot progress beyond the speculation phase.
Follow the Cx language project:
- Website: cx-lang.com
- GitHub: github.com/COMMENTERTHE9/Cx_lang
- Dev.to: dev.to/commenterthe9
- Bluesky: thecomment.bsky.social
- Twitter/X: @commenterthe9
Originally published at https://cx-lang.com/blog/2026-04-05
Top comments (0)