Skip to content

Supported Targets

The executable matrix in conformance/target_matrix.tsv is the release contract. stable_tier_conformance checks that it remains registered and that this page and SPEC.md name the same support classes. The matrix is evidence-based: accepting a triple locally is not support.

Tier 1

Tier 1 targets execute the pure bytecode VM, the JIT-enabled VM, and LLVM AOT fixtures on native CI. They are the supported 1.0 execution contract.

Target triple Native CI evidence
x86_64-unknown-linux-gnu ubuntu-latest
aarch64-unknown-linux-gnu ubuntu-24.04-arm
aarch64-apple-darwin macos-15
x86_64-pc-windows-msvc windows-latest

Tier 2

Tier 2 covers Linux-musl AOT output. CI builds it from the supported hosts, executes it natively or under QEMU, and compares its output with the pure bytecode VM. This is supported for release AOT deployment, but not evidence that every host-side toolchain path has native execution coverage.

Target triple Differential evidence
x86_64-unknown-linux-musl native/QEMU AOT-versus-VM fixture differential
aarch64-unknown-linux-musl QEMU AOT-versus-VM fixture differential

Artifact-only

x86_64-apple-darwin has a release-artifact build in CI, but that artifact is not executed by the target matrix. It is distributed for evaluation and is not a supported execution target until native or emulator-backed all-tier evidence is added.

Registered, unsupported

The driver also recognises riscv64gc-unknown-linux-gnu, wasm32-unknown-unknown, and wasm32-wasi for targeted compile checks. They are not supported execution targets: the full runtime/scheduler and all-tier conformance suite do not run there. In particular, gos build --target wasm32-... is not a supported deployment path.

Targets not listed above are Experimental. A local build, a generated object file, or a package artifact alone does not promote a target, ABI, allocator, or standard-library surface to Stable.

macOS deployment target

Release artifacts, the embedded runtime, user Rust bindings, and executables produced by gos build use MACOSX_DEPLOYMENT_TARGET=15.0. macOS 15 is the supported deployment baseline and the native build regression runs on a macos-15 GitHub Actions runner.

Building the complete toolchain from source for macOS 11 through 14 is allowed as an unsupported, best-effort configuration. Export one target for both the toolchain build and every later gos build invocation so the runtime archive, Rust bindings, and final executable agree:

export MACOSX_DEPLOYMENT_TARGET=11.0
cargo build --release -p gossamer-cli
./target/release/gos build --release path/to/main.gos

Replace 11.0 with the desired deployment target from 11.0 through 14.x. These older targets do not run in Gossamer CI and are not supported release configurations. Building requires an installed Xcode or Command Line Tools SDK that can target the selected macOS version.