Renderingen-US

Target lanes

Faber compiles through lanes, and every target is a projection of the meaning the compiler holds — not a separate implementation. These pages put the source beside what it becomes.

Every generated panel is captured compiler output. If a page shows Rust, that is the Rust the compiler emits for the program above it.

The lanes#

LaneCarriesTargets
HIRthe application laneRust, Go, TypeScript, Faber
MIRthe systems laneLLVM IR, WebAssembly text
GPUthe device laneWGSL, Metal

Three more lanes carry no source-text target of their own and so have no page here: Locale renders reader spellings (see reader locales), AIR is the autograd surface between typed HIR and MIR, and Packaging produces the FHIR and FMIR artifacts a package ships.

The scenarios#

The same small programs run through every lane, so the pages compare like with like.

ScenarioWhat it exercises
Typed tensorsBuilds two shaped matrices, multiplies them, and reduces the product to a scalar. Exercises shape-bearing types and a reduction.
The error channelA function that may fail, and a caller that catches. Shows how the channel becomes each target's own error idiom.
Collections and iterationA list folded to a total with itera ex. The plainest possible read on how loops lower.
A compute kernelA function marked @ nucleum. Device lanes only — this is a different kind of source, not a variant of the programs above.

Support is measured elsewhere#

These pages demonstrate. For measurement — which grammar terms lower on which target, across the whole corpus — use the target matrix. It is the numeric authority; this section is the worked example.