Nothing landed today in the Cx language project, making it a perfect opportunity to delve into something that's been lurking in the background: the merge gap between submain and main. This isn't just a gap; it's the biggest structural challenge we're facing right now.
The Merge Gap
Submain sits 21 commits ahead of main. And these aren't trivial updates. These commits incorporate crucial updates: Phases 10 and 11 of the IR backend covering while/for/loop/break/continue lowering, unary expression transitions, a reworked error model with Result, integer overflow enforcement, optional semicolons throughout the language, comprehensive audits on parser/semantic/interpreter agreement as well as memory boundary soundness, a diagnostics readability pass, and the version bump for the roadmap to v5.0—with all 9 hard blockers resolved.
Main is still at version 4.8 with 8 hard blockers hanging overhead. Test data paints the same picture: main holds at 78/78 tests, whereas submain runs ahead with 117/117. Merging these would address a significant 39-test disparity in one swift action.
Every daily log over the past week has identified "merge submain into main" as a critical next step. Yet, the merge isn't happening. It's not a crisis at this moment, but the longer submain stays diverged, the more complex merging will become if new work gets added to either branch independently.
Branch Housekeeping
Alongside the merge gap, there's another mess that needs addressing: the proliferation of daily-log branches. 26 branches from March 29, 2026, to April 26, 2026, sit unmerged in the remote repository. Only two—March 28 and March 30—made it via PRs. The remaining 24 persist as operational noise. They're not blocking anything critically, but tidying up would certainly clean the remote branch list.
Yesterday's Expectations vs. Reality
The last log suggested four next actions: the submain to main merge, progressing through Phase 11 expression lowering, addressing the IR backend test failure, and clearing out the daily-log branch backlog. None of this happened. Development was idle, with zero new contributions made—in stark contrast to the day's predictions.
What's Next
What's striking is how the priority list has remained consistent, which says something about our current state. Based on leverage:
- Merge submain to main. This is the highest priority action. It upgrades main from v4.8 to v5.0, addresses all remaining hard blockers, and closes the 39-test gap.
-
Continue Phase 11 expression lowering. Remaining unsupported expressions like ArrayLit, Index, MethodCall, StructLit, HandleVal, HandleDrop, and Range in
lower.rsneed handling. - Fix the IR backend test failure. Submain has 123 tests passing against one failing. Fixing this would render the suite fully green.
- Clean up stale daily-log branches. While they don't block progression, tidying these 24 branches would help reduce clutter.
Quiet days will inevitably dot any development journey. The project's not in crisis mode by any means, but the delay in merging submain is flagging as an overdue task on the agenda. Whenever development picks up, this merge should be top of the to-do list.
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-27
Top comments (0)