Decisions
ADRs 0001–0030 are Nova's, inherited by CeeSafe at the fork with their text unchanged; CeeSafe's own language decisions continue the series from ADR 0031 (the specification §2).
- ADR 0001 — Compiler implementation language
- ADR 0002 — Milestone 0 decision set
- ADR 0003 — M3 heap types are built in, ahead of general generics
- ADR 0004 — M4 regions: built-in region types, scoped results, LIFO scratch frames
- ADR 0005 — M6: user generics and interfaces; built-in collections; floats deferred
- ADR 0006 — OD-3: region parameters on aggregates and functions
- ADR 0007 — M8: hybrid core library, raw pointers, unsafe contexts
- ADR 0008 — C struct types are imported from the codebase's headers
- ADR 0009 — C7: context effects, and C state embedded by value
- ADR 0010 — M9c: writes through pointers made from references end with the loan
- ADR 0011 — M11 G7: floating-point types
- ADR 0012 — M11 G8: function values and scoped closures
- ADR 0013 — M10 T5–T6: modules and packages
- ADR 0014 — C arrays in imported structs, C member names, and exported constants
- ADR 0015 — M13 G2–G3: dynamic dispatch and owning closures
- ADR 0016 — M13 G4: userland threads and data-race freedom
- ADR 0017 — M13 G6: a package registry and version solving
- ADR 0018 — OD-25: scoped threads by fork-join
- ADR 0019 — OD-9a: direct closure calls by specialisation
- ADR 0020 — OD-9c: functions whose effects are their closure arguments'
- ADR 0021 — OD-24: weaker orderings for lib/std's atomics
- ADR 0022 — M14 K2a: generated C in several translation units
- ADR 0023 — M14 K4: building a Nova kernel where novac does not run
- ADR 0024 — M14 K1: static items (global state)
- ADR 0025 — M14 K3: the kernel library
- ADR 0026 — M14 K5: inline atomics, and atomics in every profile
- ADR 0027 — M14: a static
Mutex, andObjectCache<T> - ADR 0028 — M15 S7: the host services a compiler needs
- ADR 0029 — M14: exported structs that hold C state
- ADR 0030 — M14: what SA3 needs from Nova (one definition,
offsetOf, the caller's address) - ADR 0031 — L1: async/await (stackless frames, structured scopes, cancellation as a flag)