Skip to content

Nova Documentation — Milestone 0 / C0 Deliverable ​

Date: 2026-10-22. Status: M0/C0 complete; all decisions accepted (ADR 0002).M1 and C1 complete: Nova compiles to C and runs, including natively inside CosmoOS on x86-64 and AArch64. M2 (ownership and borrowing) and M3 (safe heap) complete (milestone-2.md, milestone-3.md, ADR 0003). C2 complete (cosmoos/c2-report.md). M4 (regions) complete (milestone-4.md, ADR 0004). M6 (generics and collections) complete (2026-10-23): generics, interfaces, optionals, StringView, Vector, String, SlotMap, StableVector, property tests, and the OD-3 design (milestone-6.md, ADR 0005); M6x (region parameters, OD-3) complete (milestone-6x.md, ADR 0006). C3 (collections and system calls) complete (cosmoos/c3-report.md). M5 (escape and placement analysis) complete (milestone-5.md). M7 (production C backend) complete (2026-10-24; milestone-7.md): source maps, structured C, the NIR interpreter, the random program generator, MSVC, and a 24-hour fuzz campaign with no miscompile. C4 (freestanding compilation in CosmoOS) complete (cosmoos/c4-report.md). C5 (kernel memory integration) complete (cosmoos/c5-report.md). C6 (kernel components in Nova beside their C originals: LZ4, fbvalid) complete (cosmoos/c6-report.md), with C struct types imported from headers (type-system.md §31, ADR 0008). C7 (kernel concurrency) complete (2026-10-25; cosmoos/c7-report.md, ADR 0009): context effects, C state embedded by value, lock guards, kernel objects and grace periods (type-system.md §32–§34; integrations/cosmoos/c7/), and an in-kernel stress test under lockdep on both arches. C8 (experimental module) complete (2026-10-28): 1,000 load/unload cycles against CosmoOS itself, whose hook was merged as #457 (cosmoos/c8-report.md). CosmoOS roadmap 1.2 A5 in Nova complete (2026-10-28): CPU time, nice values and a weighted fair share, written in Nova inside CosmoOS (#461, #476, #477; cosmoos/a5-report.md). M12 (tooling for AI agents) complete (2026-10-26; milestone-12.md): JSON diagnostics with fixes, novac fix, novac explain, and novac mcp, an MCP server (tooling.md §5–§6). C9 (gradual adoption): C9a, CosmoOS's GPT parser and writer in Nova, complete (2026-10-26; cosmoos/c9-report.md), with C arrays in imported structs and exported constants (ADR 0014). M9 (performance) complete (2026-10-25; milestone-9.md): 9a, a benchmark suite of fifteen workloads in Nova, C, C++, Rust, Zig and Goose (benchmarks.md); 9b, checked bulk slice operations (copyFrom, fill); 9c, bounds-check elimination (optimisations.md, ADR 0010); 9d, overflow-check elimination and the gcc gap; 9e, placement of non-escaping boxes on the stack by default; 9e′, one-pointer optional boxes and references, and boxes built in place. M11 (language gaps) complete (2026-10-26; milestone-11.md): nested patterns, for over non-Copy elements, borrow-checker precision for cursors, character literals, wrapping*/checked*/saturating* arithmetic, String.appendNumber, if and match expressions, and references to optionals (borrow (T?)) are done; f32/f64 (type-system.md §35), printed as the shortest text that reads back, are in (with nbody, a sixteenth suite workload), and so are function values (fn(T) -> R), closures ((x) => x > limit), effect lists on their types (@effects() fn(i32), usable in atomic contexts) and library methods taking them (sortBy, forEach, any, all, retain; §36, ADR 0012); floats were accepted in ADR 0011. M10 (tooling) complete (2026-10-26; milestone-10.md): T1, the formatter novac fmt (formatting.md), T2, the documentation generator novac doc (tooling.md §1, api/core.md), and T3, the language server novac lsp with a VS Code extension (editors/vscode, tooling.md §2), T4, debugging with lldb and gdb (tooling.md §3), and T5–T6, packages: names across packages and nova.toml with path and git dependencies (ADR 0013, tooling.md §4), are done. M8 (systems and freestanding) complete (2026-10-24; milestone-8.md, ADR 0007): unsafe and raw pointers (unsafe.md), the C FFI (type-system.md §28), the freestanding profile (cosmoos/profiles.md §4), and systems capabilities (lib/core, MMIO, C function pointers; type-system.md §29). M13 (the documented gaps) complete (2026-10-28; milestone-13.md): vector and string growth through realloc with a fast path; dyn Interface and owning closures (move literals, Box<dyn fn(…) -> R>; ADR 0015); userland threads with Send/Share, Arc, Mutex and atomics in the hosted library lib/std (ADR 0016, type-system.md §38); field-precise closure captures, constant-index disjointness and splitAtMut; and a package registry with version solving and publishing (ADR 0017, tooling.md §4.6–§4.8). Implemented-feature specs: grammar.md (M1 grammar), type-system.md (M1 static semantics), intermediate-representation.md (HIR/NIR as implemented) and diagnostics.md (error codes).

Master prompt §23 deliverables ​

§DeliverableDocument
ALanguage visionvision.md
BGoose technical analysisresearch/goose.md (Goose commit f605b5a)
—Comparative research (Rust, Zig, Cyclone, Swift, Nim, Vale, escape analysis, regions, UB, fuzzing)research/comparative.md
CHybrid memory model, comparison of three architectures, recommendationmemory-model.md
DLanguage syntax, 19 example programs, MVP vs futurelanguage-spec.md
EFormal safety design: invariants, rejection, runtime checksownership.md
FCompiler passes and IRsarchitecture.md, c-backend.md
GImplementation language decisiondecisions/0001-compiler-implementation-language.md
HRepository structurearchitecture.md §6
IMilestone roadmaproadmap.md
JRisk registerrisks.md
KOpen architecture decisionsopen-decisions.md
LFirst executable milestonemilestone-1.md

CosmoOS prompt §12 deliverables ​

#DeliverableDocument
1Integration feasibility reportcosmoos/feasibility.md
2Revised Nova memory architecturememory-model.md + cosmoos/kernel-memory-and-lifetimes.md
3Kernel and userland profile specscosmoos/profiles.md
4ABI compatibility reportcosmoos/abi.md
5Allocator integration designcosmoos/kernel-memory-and-lifetimes.md §2–3
6Ownership and quiescence designcosmoos/kernel-memory-and-lifetimes.md §4–7
7Freestanding runtime designcosmoos/profiles.md §3.3
8Compiler/backend integration designcosmoos/build-integration.md
9Security and correctness risk registerrisks.md
10Detailed milestone roadmaproadmap.md
11Acceptance-test matrixtesting.md
12Recommendation for first integrationcosmoos/feasibility.md; result: cosmoos/c1-report.md

Primary-source audits: research/cosmoos-kernel-audit.md, research/cosmoos-platform-audit.md (CosmoOS HEAD 30d34b29, main 4527d16d; read-only).

Design records: od3-design.md (lifetime-parameterised aggregates; implemented in M6x).

Unsafe code (M8a): unsafe.md, the contract unsafe code must keep and what is checked.

M14 (proposed, 2026-10-29): milestone-14.md, what a kernel written in Nova needs from Nova, for CosmoOS's roadmap 2.0: global and per-CPU state, typed calls across compilation units, a kernel library, novac for a self-hosted build, hot-path performance and an outside audit.

Safety audit pack: safety-audit.md, the guarantees, where they are enforced, the riskiest code, and the first review's results (2026-10-29), for an independent audit.

Benchmarks (M9): benchmarks.md, the method, machines and toolchains of benchmarks/suite/; results in milestone-9.md. Optimisations (M9, normative): optimisations.md, the preconditions and checks of each optimisation (bounds-check elimination).

Tooling (M10; milestone-10.md): formatting.md, the canonical style of novac fmt; tooling.md, the other commands (novac doc). The generated reference of lib/core: api/core.md.

C struct types (ADR 0008): imported from a C codebase's own headers (CosmoOS, Linux, the C library), never re-laid-out in Nova.

Topics without a file of their own ​

Allocators and escape and placement analysis are specified in memory-model.md (§3, §5), the runtime surface in c-backend.md §6, and the FFI in type-system.md §28 with c-backend.md §2.3. A topic gets its own file (allocators.md, escape-analysis.md, runtime.md, ffi.md) when it outgrows its section (master prompt §20).

Pre-1.0: the language and its tools are still changing.