Skip to content

Using Kalandra

Installation

Choose a release package, install prerequisites and verify your toolchain.

Install the package for the operating system and CPU architecture of the computer that will run the compiler. Choose a GPU-enabled package if you also want to compile GPU programs. Every GPU-enabled package can compile ordinary CPU programs.

Choose a package

Build computerCPU architecturesGPU packagesSystem baseline
macOSARM64 (Apple silicon)MetalmacOS 26 or newer
Linuxx86-64 and ARM64CUDA or Vulkan on x86-64glibc 2.39 or newer; Ubuntu 24.04 baseline
Windowsx86-64 and ARM64CUDA or Vulkan (experimental)Windows 11

Download packages from GitHub Releases, in the release's Assets section. The GPU backend is part of the package: passing --target cuda to a CPU-only compiler does not add CUDA support. An editor-only package provides checking, formatting and the language server, but cannot compile applications.

For macOS CPU and GPU development, choose kalandra-native-metal-standalone.dmg. For a CPU compiler on Linux or Windows, choose the matching archive:

  • kalandra-native-cpu-standalone-linux-x86_64.tar.gz
  • kalandra-native-cpu-standalone-linux-arm64.tar.gz
  • kalandra-native-cpu-standalone-windows-x86_64.tar.gz
  • kalandra-native-cpu-standalone-windows-arm64.tar.gz

CUDA and Vulkan archives replace cpu in the name with cuda or vulkan. Linux GPU archives target x86-64; experimental Windows GPU archives are available for both x86-64 and ARM64. Compiler availability on Windows ARM64 does not establish NVIDIA ARM64 driver support. Read the backend requirements below before choosing a GPU package.

Install the toolchain

Verify the download against its supplied SHA-256 sidecar. On macOS, open the signed DMG and copy the complete toolchain directory to a permanent location, then eject the disk image. On Linux or Windows, extract the complete archive.

Keep the directory intact. The bin, lib, libexec and share directories contain required tools and resources; moving only kalandra will break the installation. Add the bin directory to PATH. For example, if you placed the toolchain at $HOME/kalandra, a macOS or Linux shell can use:

bash
export PATH="$HOME/kalandra/bin:$PATH"

Add that setting to your shell configuration to keep it across terminal sessions. On Windows, add the full bin path to your user PATH through Environment Variables, then open a new developer shell. Install Git if you will use kalandra install to fetch source dependencies.

Standalone packages bundle Kalandra's private compiler dependencies, host linkers and CPU runtime data for all five supported destinations. System development libraries and GPU drivers remain separate requirements. Advanced external-toolchain packages require the paths specified in their metadata.

Supported platforms

macOS

Use macOS 26 or newer on Apple silicon. Native application compilation requires the Apple SDK and system linker. For Metal compilation, install Xcode 26.2 and its Metal Toolchain component, compiler version 32023.864. Open Xcode once to finish setup, select it in Xcode Settings → Locations → Command Line Tools, and install Metal Toolchain from Settings → Components. The compiler checks the component's signature and version; an arbitrary newer Metal compiler is not interchangeable with the pinned one.

Linux

Use x86-64 or ARM64 Linux with glibc 2.39 or newer, matching the Ubuntu 24.04 package baseline. Install g++, binutils and Git through your distribution's package manager. GPU application compilation additionally requires system C++23 development headers; a GPU driver is needed to run the result.

For Raspberry Pi 3, 4, 5 or Zero 2 W, use 64-bit Raspberry Pi OS Trixie (Debian 13) and the linux-arm64 CPU archive. Bookworm's glibc is too old for this package. Execution uses ARMv8-A CPU instructions; VideoCore GPU acceleration is not provided. Testing covers native ARM64 runners and Raspberry Pi OS userspace, rather than physical Pi boards. 32-bit operating systems and older 32-bit Pi models are unsupported.

Windows

Use Windows 11 and install Microsoft C++ Build Tools with the Desktop development with C++ workload and Windows SDK. Compile from a Visual Studio Developer PowerShell or Developer Command Prompt configured for the destination architecture.

On ARM64, install the Visual Studio 2026 ARM64 C++ tools and ARM64 SDK libraries, then use an ARM64-targeting developer shell. A native ARM64 Git installation is recommended for dependency management. The compiler, editor tools and generated CPU applications run natively. The Windows ARM64 toolchain does not include sanitizer runtimes, so --sanitize and --thread-sanitize are unavailable. Ordinary and optimized programs retain Kalandra's arithmetic, bounds and runtime checks.

Verify installation

Run kalandra --version in a new terminal and compare it with the release you downloaded. The checker, formatter, parser and language server also accept --version. If a command is not found, check PATH and confirm you kept the complete package directory together.

You are ready to check and compile a CPU program. Editor setup is optional and can be done separately.

Vulkan compiler packages

On Linux x86-64, choose kalandra-native-vulkan-standalone-linux-x86_64.tar.gz. The package includes private compiler and SPIR-V tools. Generated applications need the system Vulkan loader and a compatible physical GPU driver. Linux execution has been tested on NVIDIA RTX 5090 and Intel ARL; this does not guarantee support for every Vulkan device or provide Raspberry Pi VideoCore acceleration.

Windows x86-64 and ARM64 Vulkan packages are experimental. They pass compiler build and installed-package checks, but physical Windows GPU execution, numerical behavior and performance have not been verified. Use the matching Visual Studio tools and SDK, the Vulkan loader and a compatible vendor driver.

CUDA compiler packages

On Linux x86-64, choose kalandra-native-cuda-standalone-linux-x86_64.tar.gz. You do not need the CUDA toolkit to use the standalone compiler, but you do need system C++23 development headers to compile an application. Running it requires a compatible NVIDIA driver with PTX 9.2 support. Execution has been tested on RTX 5090; older drivers and other GPUs are not yet verified.

Windows x86-64 and ARM64 CUDA packages are experimental and require the matching Visual Studio tools and SDK to compile applications. Physical Windows GPU execution has not been verified. An ARM64 compiler package does not imply that a compatible NVIDIA ARM64 CUDA driver exists. macOS uses Metal; there is no macOS CUDA package.

Deploy a generated CUDA or Vulkan application as a complete directory, including its executable and PTX or SPIR-V resources.

Build from source

Source builds are an alternative to release packages. From a release-tag checkout, install CMake 3.28 or newer, Ninja, toml++ 3.4.0 and the pinned LLVM/MLIR/Clang 23.1.3 toolchain, then run:

bash
cmake --preset native
cmake --build --preset native
ctest --preset native

The tools are created under build/native/native. GPU builds have additional dependencies and opt-in configuration. Follow the source-build guide for your backend rather than substituting an arbitrary toolchain version.