Alpha status and changelog
NanoC is alpha software. Breaking changes are expected in every release until 1.0, so pin a commit if you depend on it.
Current version: 0.7.0-alpha
What alpha means
- The syntax is still being simplified; programs written today may need small edits tomorrow.
- The translate-time library (
@ttbuiltins), diagnostics schema and CLI flags can change without a deprecation period. - There is no compatibility layer or migration tool for old spellings. The compiler accepts one syntax at a time.
- The output C is stable in spirit (plain C11), but exact formatting may change between releases.
What is stable enough to use
- Translating NanoC to C and compiling it with a normal C compiler.
- Using C headers and libraries from NanoC, with C declarations wrapped in backticks or
@cblocks. - The
nanoc check --jsonrepair loop used by tools and agents.
Where the syntax is heading
The language is being moved to a smaller, more regular core. The pages under Language describe the target in preview blocks marked as not compiled yet; the rest of the site uses the syntax the current compiler accepts.
| Today | Target |
|---|---|
f add(a: int, b: int) int | f add(a i32, b i32) i32 |
f main with a final 0 | f main = 0 |
// comment | # comment |
int, unsigned, double | i8..i64, u8..u64, f32, f64, bool, char, str, size, ptr |
x := 1 | n := 2 (unchanged) |
if as a statement | a := if a == 1 2 else 3 as an expression |
@c islands | backtick inline C |
Changelog
0.7.0-alpha
- Project marked as alpha; version moved to 0.7.0-alpha.
- Compact function signatures, implicit final results and translate-time execution of external tools.
Earlier
- NanoC v1 syntax simplified; research material removed.
- Compact syntax refactor, regenerated bootstrap seed, docs and editor tooling.
- Language versioning (
@lang N,--migrate) was introduced, then removed in favor of one current syntax.
The full history is in the repository.