Specification documents
-
1
Overview
The central idea behind Nova and a tour of what the language offers.
-
2
Syntax
Language syntax, walked through with minimal examples.
-
3
Effect system
An introduction to the algebraic effect system.
-
4
Type conversions
Every type-conversion rule, collected on one page.
-
5
What sets Nova apart
The features that make Nova more than just another systems language.
-
6
Open design questions
Questions that were discussed but not yet settled as decisions.
Design decisions (D-blocks)
Every non-trivial language design choice is captured in a numbered D-block: the question, the options considered, the decision made, and the rationale. This makes the spec a readable history of the language, not just a reference. Over 120 D-blocks are recorded so far.
- D1 — Paradigm:
protocol+data, no classes - D2 — Effects instead of
async/throws/unsafe - D52 — Type declarations: newtype,
alias, sum types - D53 — Unification:
protocolas a kind token undertype - D7 — One language, three compilation modes
- D6 — Memory: managed by default, regions opt-in
- D14 — Fiber runtime — invisible infrastructure
History
-
↺
Decision evolution
How decisions were revised over time, and why.
-
✗
Rejected alternatives
Ideas that were considered but not adopted into the design.