Renderingla

Compiler performance

Radix's frontend scales roughly linearly with source size, in-process and single-threaded.

Frontend compile times

Program sizeSourceMedian compile
100 functions / ~650 lines~10 KB~0.6 ms
500 functions / ~3.3K lines~52 KB~3 ms
1,000 functions / ~6.5K lines~105 KB~6 ms
5,000 functions / ~32K lines~530 KB~37 ms

The largest real example today is ~140 lines, well below the noise floor.

Backend costs (Rust target)

For faber build, the user-perceived time is dominated by Cargo/rustc, not by Faber's frontend:

PhaseCost
Cold faber dep compile (once per target dir)~2.8 s
Cold tokio dep compile (only when needed)~2.3 s
Warm per-program build (cached deps)~30–110 ms
Per-program Cargo invocation overhead~400 ms

Incremental compilation

The faber-runtime crate compiles once per target directory and is cached as .rlib artifacts:

You changefaber-runtime crateYour program
Your program sourcecachedrecompiles
norma/src/*.fab (Faber source)cachedrecompiles
faber-runtime/src/*.rsrecompiles oncerecompiles

The trap to avoid is building each program into a fresh target/. Reuse a shared --target-dir to keep cached .rlibs warm.