Skip to content

Installation

Prerequisites

  • A POSIX or Windows shell. Examples in this guide assume bash.
  • No .NET required for bootstrap execution.

Bootstrap-first setup

git clone https://github.com/Neftedollar/ll-lang.git
cd ll-lang
LLLC_BOOTSTRAP_REINSTALL=1 ./tools/check-selfhost-ci.sh

Stage0 code is archived under obsolete/stage0 and not part of default CI or daily workflows.

Hello, ll-lang

Create hello.lll:

module Examples.Hello

main() = printfn "Hello, ll-lang!"

Run it:

./tools/lllc-bootstrap.sh run hello.lll

Expected output:

Hello, ll-lang!

Bootstrap installer (pinned + sha256)

To bootstrap from a downloadable compiler artifact on a clean machine:

./tools/bootstrap-self.sh install
./tools/bootstrap-self.sh verify
BOOTSTRAP_BIN="$(./tools/bootstrap-self.sh path)"
"$BOOTSTRAP_BIN" check "$PWD/lllcself/src/Main.lll"

Notes: - Artifact metadata is pinned in bootstrap/lllc-bootstrap.lock.json. - Integrity is enforced via sha256 verification before extraction. - Use ./tools/bootstrap-self.sh install --reinstall to refresh cache. - To regenerate release artifacts + lock file, run: - ./tools/build-bootstrap-artifacts.sh --version vX.Y.Z

Strict no-fallback launcher

Use the launcher for deterministic bootstrap-only execution:

./tools/lllc-bootstrap.sh check "$PWD/lllcself/src/Main.lll"

This path never falls back to stage0. If bootstrap install/resolve fails, the command fails hard.