How Luce becomes a program
Luce is not a syntax wrapped around a black box. It is a chain of explicit representations, each with one job, ending in native machine code and one shared runtime.
Source becomes tokens, syntax, checked meaning, typed instructions, LLVM IR, an object, and finally a native artifact. Dynamic behavior—ARC, containers, text, resources, workers, and traps—has one implementation beneath the native path and the test oracle.
The path from text to instructions
Every box is a boundary in the repository. Click one to see what it accepts, what it produces, which decisions belong there, and which decisions are forbidden from leaking into it.
The compiler driver stops after verified, optimized MIR. Artifact creation deliberately begins from that same seam, whether the result will be a relocatable object, a loadable .lc library, or a standalone executable.
One shipping path, one test oracle
There is no VM, bytecode engine, JIT, or runtime fallback. Users run LLVM-generated machine code. Tests also feed the same MIR to an independent interpreter, then compare the two executions. That interpreter ships in neither luce nor loom.
The comparison includes printed bytes, raised error, trap code and message, call trace, the host world left behind, and the live-object census. Plausible output is not enough if one path leaked an object or touched the wrong file.
Explore by system
luce_main, and the oracle.
DecisionsThe invariants, explicit refusals, version seams, and true cost of changing the language.
Three implementation territories
The syntax alone does not tell you where a feature lives. This atlas labels three territories consistently:
Standard modules, packages, the editor, examples, and application logic written in the language itself.
The compiler, verifier, runtime, host adapters, loader, linker orchestration, and test oracle.
LLVM optimization, emitted object code, the platform linker, dynamic loader, and operating-system services.
Open the complete Luce ↔ Zig ownership map →
Current code, not a museum
This site describes the repository as it exists now. Its footer values—MIR format 62, host ABI 29, release 0.18—are inserted from the actual source during every build. Source badges are checked paths, not decorative citations.
For writing Luce, use luce.luciaos.com. Its examples are compiled and run. This site answers the different question: what engineering makes that behavior true?