Contributor Documentation
Nocter development is contract-first. Language, platform, and tooling behavior belongs in spec/. Standard-library behavior belongs with its compiler-checked public surface under development/std. Implementation milestones and reviews record how the compiler reached those contracts without becoming another authority.
Current Work
- Current handoff — next concrete work and blockers only
- Compiler architecture — pipeline and cross-crate authority boundaries
- Architecture and maintenance documents
- Compiler workspace
- Performance measurement — external latency evidence and query-count boundary
- Development verification — disposable complete compiler gates
- Documentation site generator — authored website inputs and output boundary
- Development history — milestones, reviews, legacy design, and publication audits
The active compiler workspace is under development/compiler/. Superseded implementations and their rewrite records remain available through the development history, but are not behavioral or architectural inputs.
Specification Workflow
When a public rule is incomplete, implementation pauses. The ambiguity is reduced to a minimal program, alternatives are compared, and the user selects the language behavior. The adopted rule is written in the owning specification chapter before implementation or conformance tests proceed.
The specification is the sole source for:
- lexical and syntactic grammar
- name resolution and visibility
- type identity, inference, conversion, and dispatch
- ownership, borrowing, provenance, regions, and destruction
- evaluation order, failure, allocation, and cleanup
- target ABI and executable behavior
- command-line and editor contracts
Compiler-checked standard-library declarations and declaration documentation belong to module index.nct files. The standard-library catalog assigns each longer observable subject to one behavior guide without repeating signatures.
Repository Layout
development/
├── AGENTS.md
├── README.md
├── TODO.md
├── benchmarks/ # repeatable external compiler and editor measurements
├── compiler/ # specification-first compiler workspace
├── design/ # active cross-crate architecture and maintenance policy
├── history/ # non-normative engineering records, excluded from the website
├── packaging/ # release identity, deterministic assembly, and artifact qualification
├── site/ # documentation generator and static website inputs
├── std/ # standard-library contracts and implementation sources
├── unicode/ # generated Unicode source data and its generator
└── verification/ # disposable development verification entry points
Rust, Cargo, and Node.js are development requirements for the workspace and release qualification.