Current implementationimplementation guide

Install the preview, build Stage0, and run a first module.

Getting started

Status: implementation guide. ZergLang is an active language experiment, not a stable production toolchain.

The fastest way to explore the current language is the ZergLang IDE preview or the standalone ZLM command-line toolchain for Apple Silicon. A download appears on the downloads page only when its signed release cohort validates. See the ZLM toolchain guide for installation, project commands, conversational use, harness integration, and updates. Other platform packages are not published yet.

The repository contains a C17 Stage0 compiler. A minimal module looks like this:

module answer;

public value App {
    public algorithm message main(type: Class<Self>) -> Int32
    ensures { result == 42; } effects {} {
        return 6 * 7;
    }
}

Build Stage0 from source

You need a C17 compiler, CMake 3.25 or newer, Ninja, Z3, OpenSSL 3, Rust 1.77 or newer with Cargo, and Python. LLVM 18 or newer is optional. The portable interpreter and C materializer do not require LLVM, but the default build still uses Cargo for the managed zlm driver:

cmake -S zerglang -B zerglang/build-portable -G Ninja -DZL_ENABLE_LLVM=OFF
cmake --build zerglang/build-portable
ctest --test-dir zerglang/build-portable --output-on-failure

The implementation supports a bounded, deliberately fail-closed subset of the normative grammar. Check the Core-0 edition for the language authority and the Core-1 preview for the five-domain work.

Understand a result

Successful interpretation, JIT compilation, and ahead-of-time compilation are different execution paths over one checked module. A construct being present in the grammar does not mean Stage0 executes it. Unsupported constructs return structured diagnostics instead of silently changing their meaning.

Projected fromcontent/guides/getting-started.md