Renderingla

Codegen targets

Faber has one language and many compilation contracts. Not every feature must lower to every target. This page documents which features each target supports, erases, warns on, or rejects.

Policy verbs

VerbMeaning
SupportLowers with intended semantics
EraseTypechecks; codegen drops target-specific semantics
WarnLegal Faber; no effect or degraded behaviour on target
RejectCheck or emit fails with explicit diagnostic
DeferParses/binds; lowering not implemented for any target
LimitedStable contract with explicit subset gates

Target table

TargetLaneBuildRunPackagePolicy
rustHIRyesyesyesSupport
fmir-textMIRyesyesyesSupport
fmirMIRyesyesyesSupport
fmir-binMIRyesyesyesSupport
faberHIRyesnonoSupport
tsHIRyesnonoProbe
goHIRyesnonoErase
wasmMIRyesnonoLimited
wasm-textMIRyesnonoLimited
llvm-textMIRyesnonoLimited
metal-textMIRyesnonoLimited
wgsl-textMIRyesnonoLimited
sexpMIRyesnonoLimited

Pipeline routing

Source → Lex → Parse → Collect → Resolve → Lower → Typecheck → Analysis
                                                              ↓
                                    ┌─────────────────────────┴──────────┐
                                    │                                    │
                              HIR backends                        MIR backends
                                    │                                    │
            Rust · Faber · TS · Go            fmir · wasm · llvm · metal · wgsl · sexp

Application lane (HIR)

TargetMeasured floor
RustProduction path. Borrow modes, CLI generation, failable Result lowering.
FaberCanonical source view / round-trip. Not an execution backend.
TypeScript288/318 analysed · 268/318 typecheck-valid · 262/318 runnable
Go146/216 pass. Borrow modes erased; ad rejected.

Systems lane (MIR)

TargetMeasured floor
fmir*Package MIR images; runner proves source independence.
wasm200/289 emitted · 195/289 validate · 171/289 stub-host runnable
llvm-text249/289 emitted · 232/289 verifier-valid · 65/289 runnable
metal-textDevice-safe kernel subset; 88 focused tests. Campaign paused.
wgsl-textValidates with naga 30.x. 87 focused tests. Reflection sidecar.
sexp193 emitted · 190 Racket-compiled · 190 Racket-run. Validation target.

For live capability flags, run faber targets.