Architecture
This document gives a high-level map of the current 0x0 implementation. It is a
navigation layer over the exact compiler, runtime, ABI, and release references.
Major Components
0x0 source
-> compiler/main.0x0
-> OISA
-> seed OISA evaluator or generated native compiler
-> result
0x0 source
-> bin/zero-native build
-> C
-> cc
-> native executable
0x0 source
-> bin/zero-native build-obj
-> GAS assembly
-> cc -c
-> linkable object file
0x0 source
-> bin/zero-native build-elf
-> ELF64/x86-64 executable
compiler/main.0x0
-> bin/zero-native compiler-elf
-> build/native/zero-oisa-compiler
-> OISA compiler output for diagnostics and parity checks
compiler/main.0x0
-> bin/zero-native compiler-elf-builder
-> build/native/zero-elf-compiler
-> executable compiler builder without the stage -1 seed for normal succession
Compiler Ownership
compiler/main.0x0 owns the production compiler pipeline. The compiler guide is
Compiler Guide. The pipeline overview is
Precondition for changing language behavior: update the source parser/checker
and every backend path that owns observable behavior, or document the backend
limit explicitly.
Postcondition for a compiler change: examples, checks, and docs agree on the
implemented slice.
Bootstrap Boundary
seed/zero.s is the recovery/audit seed. It may reproduce the first compiler
but must not accumulate production language semantics. See
Bootstrap Model and Bootstrap Chain.
Correctness note: self-hosting evidence depends on deterministic compiler
output. If stage output drifts, inspect the first difference before changing
release or bootstrap metadata.
Runtime Boundary
Runtime behavior is split between pure source behavior and explicit host
effects. Host effects must pass through capability-checked boundaries and
versioned ABI rows.
Relevant docs:
- Runtime Capabilities
- Runtime Production Capabilities
- Runtime Contracts
- Local Effects Runtime
- Service Boundary Runtime
Security note: do not treat host adapters as policy owners. They may perform
declared host effects; policy belongs in source-owned tooling or checked
runtime policy data.
ABI And Value Layouts
The ABI docs describe current native/runtime layout contracts:
- ABI Guide
- ABI Value Layouts
abi/value-layouts.tsvruntime/host-abi.tsv
Needs verification before change: whether a layout change is source-compatible,
ABI-compatible, or release-breaking.
Packages And Libraries
Package metadata lives in 0x0.pkg and 0x0.lock. Libraries live under lib/,
libs/, frameworks/, and runtime/ depending on their role.
Relevant docs:
Tooling
Source-owned tooling routes production policy through .0x0 source while host
adapters perform explicit OS effects. Relevant docs:
Release Architecture
The release path uses the trusted compiler chain rooted at v0.1.0 unless a
maintainer intentionally changes TRUSTED_VERSION.
Relevant docs: