Frontend owns
Parsing, resolution, typing, monomorphization, CTE, DCE, analysis facts, and concrete type-use validation.
Role: Architecture
Vexel architecture is strict about ownership. Semantic decisions are resolved before backend emission. Backends receive an analyzed/residual contract and focus on target strategy.
Parsing, resolution, typing, monomorphization, CTE, DCE, analysis facts, and concrete type-use validation.
Code emission strategy, ABI realization details, and target-specific implementation choices over analyzed input.
The frontend resolves and executes what can be proven at compile time, then residualizes only behavior that must remain runtime-visible. Backends should not re-interpret language semantics; they should emit target code from this residual contract.
typed AST -> lowered analyzed graph
-> CTE + DCE + analysis facts
-> residual program contract
-> backend-specific emission
Invariants are guarded by tests, pass checks, and architecture-focused suites.
make test
make ci
make frontend-test
make backend-conformance-test
make docs-check
backends/<name>/ and backends/ext/<name>/frontend/src/support/backend_registry.hdriver/src/vexel_main.cppMakefile, driver/Makefile