LLVM Toolchain
Pinned LLVM bundles, discovery order, supported hosts, and the current fetch/install behavior.
Kira ships pinned LLVM bundles so contributors do not need to build LLVM manually as the normal path.
Install The Bundle
kira fetch-llvmor:
zig build fetch-llvmThat flow reads llvm-metadata.toml and installs the matching host bundle under:
~/.kira/toolchains/llvm/<llvm-version>/<host-key>/What The Repo Pins
The repository source of truth is llvm-metadata.toml.
It records:
- the pinned LLVM version
- the release tag that owns the bundle assets
- supported host keys
- exact asset filenames
The current repo pin is LLVM 22.1.2.
Supported Hosts
The first published bundle set is intentionally small and tied to real CI-built hosts:
x86_64-windows-msvcx86_64-linux-gnuaarch64-macos
Discovery Order
The LLVM backend checks, in order:
KIRA_LLVM_HOME~/.kira/toolchains/llvm/<llvm-version>/<host-key>/- older repo-local fallback paths if they already exist
If llvm-config exists in the selected tree, Kira uses it to refine the bin/lib directories. Otherwise it uses the standard install layout directly.
Native And Hybrid Both Use It
The same LLVM discovery path is used by:
- the pure LLVM/native backend
- the native half of hybrid mode
So if LLVM is not available, both native and hybrid work will fail until you install or override the toolchain.
No Checksum Verification
The current LLVM fetch flow intentionally does not use checksum verification.
The source of truth is:
- the pinned version in
llvm-metadata.toml - the configured release tag
- the host key
- the exact asset filename
The docs are spelling that out because it is a real implementation choice in this repo, not an omitted detail.