Leia

Platforms And Execution Modes

Leia has one semantic baseline and several execution modes.

Semantic Baseline

The interpreter defines script behavior. The bytecode VM and JIT are accelerators: they must preserve interpreter-visible results, errors, capability checks, resource-budget behavior, and deoptimization behavior.

Execution Modes

Mode Purpose Availability
Interpreter Baseline semantics and fallback execution. All supported Go platforms.
Bytecode VM Faster portable execution and most CLI/embedding runs. All supported Go platforms.
Method JIT Native ARM64 hot-path acceleration. ARM64 builds where JIT support is enabled.
Hosted callbacks Go functions, host modules, LLM providers, file/network/process APIs. Depends on embedder policy and capabilities.

Use leia capabilities --json to inspect a built binary:

go run ./cmd/leia capabilities --json

The JSON report includes execution modes, commands, standard-library layers, default imports, tooling surfaces, LLM support, and builtin dialect metadata. The dialects array is derived from the runtime dialect registry and the default_imports array is derived from the same alias table used by stdlib installation. These are the supported machine-readable paths for editors, playgrounds, and automation tools to discover installed tagged forms and global convenience bindings:

{
  "default_imports": [
    {"name": "sqrt", "module": "math", "member": "sqrt"},
    {"name": "mat", "module": "linalg", "member": "matrix"}
  ],
  "dialects": [
    {
      "name": "sh",
      "category": "host",
      "capabilities": ["process.shell"],
      "builtin": true,
      "eval": true,
      "block": false
    }
  ]
}

JIT Expectations

The JIT is an implementation detail, not a language feature or whole-language native-code contract. Programs must not depend on a function being compiled natively; unsupported operations and non-hot paths must continue through the VM/runtime fallback. Hosts that need strict resource budget checkpoints, untrusted-script sandboxing, or deterministic fallback may disable JIT.

JIT-sensitive changes need correctness tests and performance evidence. See ../../contributing/performance.md.

Support Levels

Level Meaning
Tested The current release notes include evidence for this OS, architecture, Go version, and execution mode.
Supported Release blockers cover the combination and maintainers intend to fix regressions.
Available The project can build or run there, but the release does not include full evidence.
Unknown No current release evidence exists.

Distribution Targets

The release distribution profile verifies install metadata for:

Target Archive
darwin/amd64 tar.gz
darwin/arm64 tar.gz
linux/amd64 tar.gz
linux/arm64 tar.gz
windows/amd64 zip
windows/arm64 zip

These are packaging targets, not full support claims. A target is only Tested when the release notes include run evidence for that target.

ARM64 JIT support is only claimed when leia capabilities --json and the release notes both show it enabled for that build. Otherwise the interpreter and VM remain the semantic baseline.

Platform Policy

Release notes should state:

Do not claim broad platform support from one local run. Treat untested combinations as unknown until they are covered by release evidence.