Renderingen-US

Target compatibility

Faber is one language with many compilation contracts. This page is the measured lowerability matrix: for each corpus term, which targets can lower it, and at what support level.

Policy verbs (support / erase / warn / reject / defer) and pipeline routing live on Compiling and targets. This page is the large scannable row list — HIR application-lane targets and MIR systems-lane targets side by side in the tables below.

Live CLI summary: faber targets.

Why the terms below are in Latin. Everywhere else on this site, code renders in your reader locale — the same program, spelled in your language. The term column here does not, because it is not code: it is the identity of each construct, the key the compiler's own corpus is indexed under. Latin is Faber's canonical form precisely because no living language has a claim on it, so no locale's spelling has to be the one the others are measured against. A row is the same row whichever language you read the site in.

Rendered: unknown by faber/scripta/render-matrices.py from radix measurement JSON — do not hand-edit. Measurement: emit_hir_target_matrix + emit_mir_target_matrix (in-process, no external toolchains). Join: corpus/index.toml terms → exempla.

This is the official generated grammar×target support matrix. It reports lowerability — can target X lower grammar production Y — across every term in the exempla corpus. Runtime semantics (erase/warn/defer policy verbs), per-target contracts, and pipeline routing live in Compiling and targets, which links here for the rows.

Legend#

GlyphMeaning
fully supported — all analyzable exempla for the term lower
partial — some exempla lower, some have a measured gap
planned — not yet lowering; curated overlay (scripta/ebnf-matrix-overrides.toml)
not supported — no exempla lower; default-truth, measured gap is real
not measured — no analyzable exempla for this term on this lane

A ✓ means the corpus exempla exercising this term lower to the target. It does not guarantee identical runtime semantics. Some targets erase or warn on certain constructs (e.g. Go erases borrow modes de/in/ex) — those still render ✓ here because they lower. See the policy doc for that nuance.

Corpus-wide summary (all registered terms)#

How to read these percentages#

This matrix answers one narrow question:

For each general-language corpus term, does the named emit target lower the term's exempla?

It is not a product completion score for Metal, CUDA, or GPU training.

  • Application HIR percentages (Rust / Go / TS / Faber) are fair "how much of the language emits" scores for host-language projections.
  • General MIR percentages (llvm-text, wasm, sexp, …) score ordinary systems IR emission over the same full corpus.
  • Device-kernel emitters are not scored here. metal-text and wgsl-text lower a device-safe kernel surface — @ nucleum compute kernels and related GPU views — and deliberately nothing else: no packages, async, CLI, full control flow, or host libraries. Measuring them against all ~280 general-language terms answers a question that does not apply to them, so this matrix does not ask it. Their real support is the device kernel support summary below, and real device execution runs through faber run --backend metal.
  • There is no `cuda` column. CUDA is not a text emit target. CUDA device programs are produced on the NVVM → PTX path (staged with llvm-text / MIR device emission) and run with faber run --backend cuda. Product GPU backends are Metal and CUDA; matrix columns track emit surfaces, not every host session.

For product policy (build/run/package, erase/reject, device backends), use Compiling and targets and faber targets — not these corpus rows as a quality score.

Application lane (HIR → emitted source languages)

targetcapableanalyzable%
rust28428699%
go26328692%
ts286286100%
faber286286100%

Systems lane (MIR → device/IR artifacts)

targetcapableanalyzable%
llvm-text28028698%
wasm-text26028691%
wasm26028691%
sexp-struct22628679%
sexp22628679%
scena24528686%

Device kernel support (product summary)#

This section is the GPU product view. It is intentionally separate from the corpus % tables below.

Status of measurement (2026-08-07): dual-backend training proofs and local device fixtures are accepted on named machines. A multi-card CUDA verification matrix (ephemeral cloud pods) is active and expanding — more rows land as RunPod lanes and Faber package fixtures close. Numbers here are evidence snapshots, not a permanent completion score.

Product backends#

BackendHow you run itEmit / artifact chainAccepted product proof (current)Not claimed
Metalfaber run --backend metalMIR → Metal MSL in the package device imageDual-backend MLP training (100 deterministic steps, gradient mapping, numeric oracle) on Apple Silicon (burgus M-class). Starter fixtures under examples/training/.General training framework; all SM/GPU models; multi-device
CUDAfaber run --backend cudaMIR → NVVM → PTX in the package device image (llvm device chain)Same dual-backend MLP training proof on NVIDIA (pharos RTX 5070 class). Same fixture family.General GGUF inference product; multi-GPU product
WebGPUbrowser / headless host pathMIR → WGSL textWorkload-shaped chain proofs on the WebGPU route (e.g. tiny linear + ReLU device fragments)Dual-backend training product claim; Metal/CUDA parity

Workload / kernel families (measured so far)#

Statuses use three labels only:

LabelMeaning
ProvenReal-device evidence packet / oracle PASS on a named backend
Emit / stagingCompiler or host can produce artifacts; full numeric device gate not claimed here
BuildingIn active development; do not treat as shipped
Family / fixtureMetalCUDAWebGPUNotes
Forward kernels + device-summa classProven (local)Proven (local pharos; cloud matrix expanding)Ordinary faber run --backend … package path
Dual-backend MLP train (Gradus surface, 100 steps)ProvenProvenOracle authority: examples/training/mlp (device_image.metal / .cuda PASS)
Elementwise / fused matmul+elementwise / train_step · VJP surfaceProven (training path)Proven (training path; residual Stage-6 rows may still be in repair)Emit / stagingProduct claim is the accepted training path, not every Stage-6 capstone
GPU workload rungs 0–4 (examples/gpu-workload)Emit / stagingEmit / stagingPartial Proven chain (rungs 1–2 style device fragments)Systems-track oracles; CUDA-route output-checked floors still low — see package README honesty
Transformer / BERT-tiny training capstoneBuildingBuildingMetal has stronger local evidence than CUDA on some Stage-6 rows; CUDA numeric repair in flight — not a public PASS claim
GPU inference (GGUF recipes, device prefill)BuildingBuildingCPU oracle track real; end-to-end device inference not shipped

CUDA hardware verification matrix (cloud, expanding)#

Opt-in RunPod lanes exercise short CUDA proofs on cards the operator does not own. This is verification infrastructure, not a new product backend.

Card / classRoleLatest public snapshot (2026-08-06 first matrix)Notes
RTX 4090 (consumer Ada)Bootstrap / harnessPASS (toolchain probe)Optional consumer lane
RTX 5090 (consumer Blackwell)SM coveragePASS (toolchain probe)Driver/CC diversity
RTX 3090 (consumer Ampere)Older consumerPASS (toolchain probe)
L40S (datacenter Ada)Middle datacenterPASS (toolchain probe)Named lane dc-l40s
H100 80GB (datacenter Hopper)Newer datacenterPASS (toolchain probe)Named lane dc-h100
A100 80GB (datacenter Ampere, sm_80 PTX baseline)Baseline lane dc-a100First-hour AVAILABILITY (out of stock); rung-0 matmul closure later reported PASS on dc-a100Baseline PTX policy A; same-artifact Faber package matrix still expanding

Honesty bounds on the cloud matrix:

  1. The first multi-card receipt was largely a per-pod compile+run viability probe (same small CUDA program, pod-local toolchain), not a claim that every card already ran the full dual-backend MLP oracle.
  2. Same-artifact Faber package portability (device-summa / training fixtures on one PTX blob across cards) is the follow-on track — active now.
  3. Metal stays on local Apple Silicon acceptance hosts; RunPod lanes are CUDA only.
  4. Expect this table to grow as more lanes, fixtures, and receipts land. Prefer linking factory receipts over inventing percentages.

Where to look for live evidence#

ArtifactWhat it proves
examples/training/mlpDual-backend training oracle + device_image Metal/CUDA PASS notes
examples/training/device-summaStarter device package for ordinary faber run --backend
examples/gpu-workloadWorkload rung oracles (matmul, softmax, MLP forward, …)
Device execution CLIProduct command contract
Compiling · device executionEmit vs run boundary

Internal factory control plane (not a public product surface): RunPod lane registry and matrix receipts under the radix factory tree (docs/factory/runpod-gpu-verification/).

Keywords — application lane#

keyword#

termrustgotsfaber
abstractus
ab
ad
adfirma
ante
atomic
argumenta
bivalens
cape
casu
cede
ceteri
ceterum
clausura
cli
copia
cura
curata
cursor
custodi
de
descriptio
discerne
discretio
dum
ego
elige
errata
est
ex
exitus
fac
falsum
fient
fiet
figendum
finge
fiunt
fixum
fragilis
fractus
functio
futura
futurum
generis
genus
iace
iacit
ignotum
immutata
implet
importa
in
incipiet
incipit
inter
intra
instans
itera
lege
lineam
lista
matrix
mone
mori
nexum
nihil
numquam
numerus
non
omitte
omnia
operandus
optio
optiones
ordo
octeti
implendum
per
perge
postpara
postparabit
prae
praefixum
praepara
praeparabit
promissum
privata
proba
probandum
protecta
publica
redde
reddet
repete
requirit
rumpe
scribe
scriptum
secus
si
sic
sin
sit
solum_in
solum
sparge
sponte
sub
tacet
tacebit
tabula
tag
temporis
tensor
textus
typus
ubique
usque
ut
varia
variandum
vector
vacuum
verum
vide

Operators — application lane#

operator-group#

termrustgotsfaber
·
×
aut
![
!.
!(
=
et
modulus<u16>
modulus<u32>
modulus<u64>
modulus<u8>
non est
?[
?.
?(
§
¬
vel
ergo

Keywords — systems lane#

keyword#

termllvm-textwasm-textwasmsexp-structsexpscena
abstractus
ab
ad
adfirma
ante
atomic
argumenta
bivalens
cape
casu
cede
ceteri
ceterum
clausura
cli
copia
cura
curata
cursor
custodi
de
descriptio
discerne
discretio
dum
ego
elige
errata
est
ex
exitus
fac
falsum
fient
fiet
figendum
finge
fiunt
fixum
fragilis
fractus
functio
futura
futurum
generis
genus
iace
iacit
ignotum
immutata
implet
importa
in
incipiet
incipit
inter
intra
instans
itera
lege
lineam
lista
matrix
mone
mori
nexum
nihil
numquam
numerus
non
omitte
omnia
operandus
optio
optiones
ordo
octeti
implendum
per
perge
postpara
postparabit
prae
praefixum
praepara
praeparabit
promissum
privata
proba
probandum
protecta
publica
redde
reddet
repete
requirit
rumpe
scribe
scriptum
secus
si
sic
sin
sit
solum_in
solum
sparge
sponte
sub
tacet
tacebit
tabula
tag
temporis
tensor
textus
typus
ubique
usque
ut
varia
variandum
vector
vacuum
verum
vide

Operators — systems lane#

operator-group#

termllvm-textwasm-textwasmsexp-structsexpscena
·
×
aut
![
!.
!(
=
et
modulus<u16>
modulus<u32>
modulus<u64>
modulus<u8>
non est
?[
?.
?(
§
¬
vel
ergo

Other terms (existing-home / unspecified)#

existing-home#

termrustgotsfaber
alias
arena
@
f16
imperia
imperium
manifest
metior
nondum
objectum
prima
string
block-string
summa
targets
ultima
versio