A holding pattern dominated April 21st: no developer-authored commits across any branch for three days straight. Yet, beneath the surface, there's a vibrant narrative unfolding with 15 real feature commits beckoning from the submain branch.
The Submain Conundrum
The submain might feel like the underdog of the branches, but it's where the action is. It holds 15 unmerged, non-trivial commits, datelined back to eb65acf on April 13th. That's an 8-day integration canyon we're staring into.
What's brewing in those 15 commits? Let's talk specifics:
- A
Resulterror model featuringOk,Err, and the magic of the?operator - New integer overflow enforcement rules
- A syntax update making semicolons optional
- A vital diagnostics pass
- A chunk of parser audits plus a body-gap fix
- Control flow advances through Phase 10, addressing constructs like while, for, loop/break/continue
- And, not to be overlooked, a basic test runner
On submain, the test matrix boasts a robust 116/116, recorded as of April 18th. There’s even talk of uncommitted work - a recursive type parser revamp, struct field type resolutions, stack increases, truncation fixes, and new tests and programs. This work's current status? Shrouded in mystery, possibly stashed in a local tree or, worse, vanished.
Over on main, the matrix is steady but lags at 78/78. The gulf between what main recognizes and submain proves is as glaring as it gets.
Roadmap Limbo
Version 4.8’s roadmap on main is gathering dust with unchecked hard blockers for the 0.1 milestone:
- Basic test runner
- Minimal error model
- Enforced integer overflow handling
- Consistent semicolon enforcement
- Parser, semantic, interpreter harmony on all constructs
- No known memory boundary model soundness issues
- Passing examples
- User-friendly diagnostics for common errors
- Roadmap-spec alignment
Submain, on its part, has resolved many of these hurdles. The test runner, error model, integer overflow policy, semicolon handling, and diagnostics features all stand ready. But with no merge, these roadmap items languish unchecked, splitting the vision between main and the more aligned submain roadmap (v4.7).
Branch Chaos
A total of twenty daily-log branches, remnants from March and April, clutter the remote. The last successful merge from a daily-log branch to main was way back on March 31st. While these branches serve as valuable records, their growing count is breeding operational chaos.
The Road Ahead
The forthcoming steps have been on repeat for days, with five priorities in the queue:
- Secure the audit Part 2 sprint on
submain(assuming it still survives) - Execute the long-awaited
submaintomainmerge - Refresh the roadmap post-merge
- Bolster the audit Part 2 scope
- Dive into IR lowering for
Result
Merging submain with main isn't just a task; it's a necessity. This action has the potential to boost the test matrix from 78 to at least 116, erase multiple critical blockers, and propel towards the final audit and the 0.1 release barriers. Everything, subsequently, hangs on this pivotal move.
The sequence feels stalled not at a standstill, but rather at a pause with bated breath. The efforts are real and present. They just need movement.
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-21
Top comments (0)