Skip to content

Platform support and evidence

The compiler's targets table describes code generation capability, not a release/test promise. Its generated snapshot is checked against the current compiler. Proposed 1.0 platform tiers await owner approval.

Target Current evidence / boundary Build or check
x86_64 Linux GNU Native default gate; AVX2/FMA, glibc 2.33+ make gate
aarch64 Darwin Published arm64 release; separate native gate gmake mac-check
aarch64 Linux GNU Cross-emission; native node gate available make k8s-gate K8S_ARCH=arm64
x86_64 Linux musl Static release/program checks when musl is present make musl, make static
aarch64 Linux musl Cross-emission and recorded qemu-user runs --static --target aarch64-unknown-linux-musl
arm64 iOS Emission only; no recorded iOS execution SDK/static-library linking; not JIT
wasm32-wasip1 WASI programs run under Node/wasmtime; no threads/FMA make fetch-wasm, make wasm
wasm32-unknown-unknown Bare wasm; imports/host glue needed --target wasm32-unknown-unknown
riscv64 Linux Parked: LLVM has no tailcc refused unless --allow-unsupported
nvptx64 NVIDIA PTX kernel emission; external CUDA driver --emit ptx
wgsl WebGPU WGSL kernel emission; external WebGPU driver --emit wgsl

Use FIB_TARGET_CPU=x86-64-v3 when building x86 binaries to distribute. Unset/host builds can require your build host's newer instructions. Cross-linking requires the target's linker, libraries and sysroot. C and wasm retain their explicit portability limits; enabling --allow-unsupported is not support evidence.