# Install Niell Niell is in pre-release. For Linux x86_64 there's a precompiled binary you can download (below). For macOS and other architectures, you build from source with Rust + LLVM. ## Linux x86_64 — direct download (recommended) Works on any distro with **glibc 2.34+**: Ubuntu 22.04+, Debian 12+, RHEL 9+, Fedora 38+, Arch, openSUSE Leap 15.5+. Also requires **clang** installed (Niell invokes clang to link the C runtime with the emitted IR). ```bash # 1. Install clang + xz (if not already there) sudo apt install -y clang xz-utils # Ubuntu / Debian # sudo dnf install -y clang xz # Fedora / RHEL # sudo pacman -S clang xz # Arch # 2. Download + decompress + put it on PATH curl -L https://niell.dev/dl/niell-linux-x86_64.xz | xz -d > niell chmod +x niell sudo mv niell /usr/local/bin/ # 3. Verify niell --help ``` The binary is self-contained with respect to LLVM 18 and the Niell runtime — it doesn't require installing the Rust toolchain or LLVM dev libs. It ships compressed with `xz` (~12 MB downloaded; ~48 MB after decompression). ## macOS — not yet supported Pre-release Niell doesn't have a macOS binary or a publicly distributable source build yet. It's a later-Slice exercise once demand appears. If you want to try it on Mac: - Prerequisites for the future "build from source" path: Rust toolchain + LLVM 18 via Homebrew (`brew install llvm@18`). For `clang`, it ships with the Xcode Command Line Tools. - Or wait for the release with native binary (cross-compile to `x86_64-apple-darwin` and `aarch64-apple-darwin` is on the roadmap). ## Windows — via WSL2 Niell doesn't support native Windows yet — the linker has trouble with LLVM static libs in the MSVC toolchain. Roadmap candidate but deferred for now. Recommended: **WSL2 with Ubuntu 22.04+** and then follow the Linux x86_64 instructions above. ```powershell # PowerShell with admin permissions: wsl --install -d Ubuntu-24.04 ``` Restart, open "Ubuntu 24.04" from the start menu, choose user + password. Then follow the steps in "Linux x86_64 — direct download". Keep your `.niell` files inside the WSL filesystem (`~/...`) to avoid friction with the cross-filesystem split. ## Test the compiler Create `hello.niell`: ```niell action main show with "hello, niell" end ``` Compile and run: ```bash niell hello.niell -o hello ./hello # → hello, niell ``` ## Next steps Once you have `niell` working, check [Getting started](getting-started.html) for a 10-minute tour, or jump straight to the spec at [01 Syntax (ES)](../01-sintaxis.html).