Setting up the toolchain
Download the V81 native kit from the repository's Releases page. It contains the compiler, runtime provider, examples and SHA-256 checksums. This workflow does not require Rust, Cargo or LLVM.
In PowerShell, from the extracted Windows kit:
.\ncc.exe self-test
.\ncc.exe compiler emit-executable hello.n `
--target x86_64-pc-windows-msvc --out hello.exe
.\hello.exeOn Linux x86-64, keep the provider beside the compiler. The kit was tested on Ubuntu 24.04 under WSL. Its imports require glibc 2.34 or later.
chmod +x ncc
./ncc self-test
./ncc compiler emit-executable hello.n \
--target x86_64-unknown-linux-gnu --out hello
chmod +x hello
LD_LIBRARY_PATH="$PWD${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}" ./helloExpected output: Hello, nC public beta. Expected exit code: 0. The Stage0 commands check, machine and --help are not available through the same interfaces in this kit.
Compiler and runtime identity
Retain the SHA-256 digest of both artifacts. The compiler determines emitted code; the provider resolves services imported by that code. Replacing either changes the reproduction conditions even when the source is unchanged.
The Linux compiler has RUNPATH $ORIGIN. The generated example needs LD_LIBRARY_PATH to locate its provider. On Windows, keep ncruntime.dll beside the executables. Check exported symbols and ABI before mixing providers from different generations.
Stage0 development is documented in docs/install.md. Building it still requires Rust/Cargo, a verified native seed and a compatible archiver. The examples in this guide invoke distributed executables directly.