Programming Language

Nocter

A self-contained systems language built around simplicity, encapsulation, and foolproof design.

/development/compiler/crates/nocter-compile-input/README.md

nocter-compile-input

Responsibility

Own the closed, syntax-backed compilation input shared by declaration lowering, checking, and target validation.

Contract

The crate packages reached sources and syntax trees, package/module identity, dependency edges, selected target facts, toolchain bindings, and runtime contract input into immutable values. It does not discover files or perform semantic lowering.

Invariants

  • Every source, syntax tree, module, and dependency edge belongs to one compile unit.
  • Production discovery constructs one owned input and shares its immutable source and syntax storage; semantic queries borrow that same input rather than rebuilding topology.
  • Syntax handles can outlive a temporary input borrow. Current semantic catalogs retain those handles instead of copying trees or depending on a self-referential discovery owner.
  • Target selection is supplied as one completed authority and is never recomputed downstream.
  • Dependency identities are canonical; display names and paths cannot substitute for them.
  • Directly constructed test inputs obey the same validation boundary as production inputs.