Getting Started

Install the compiler, run your first .sio program, and learn the basics.

Start with a compatible compiler, check a small program, then run it. This guide uses the repository’s canonical launcher, ./bin/souc, whose default engine is Madaros.

Get the repository

You need Git, Bash, and standard Unix tools. In a terminal:

git clone https://github.com/Sounio-lang/sounio.git
cd sounio
git rev-parse HEAD
uname -sm

Keep the checkout revision and choose the setup path for your host:

HostSetup path
Linux x86_64Use the committed Linux x86-64 Madaros prebuilt through ./bin/souc. Follow the installation guide.
macOS ARM64 (Apple Silicon)Build and install the native artifact first, following the macOS ARM64 guide. The Linux ELF does not run natively on macOS.
Other hostsThese instructions do not provide a compatible prebuilt. Consult the installation guide before proceeding.

The macOS source build requires a signed, executable current-source bootstrap seed, Apple command-line tools with C++23-capable clang++ and codesign, timeout, and Boost headers. The full installation gate also requires a real Metal device. The native guide describes these prerequisites and installs artifacts/self-hosted/madaros-arm64-macos, which the launcher prefers on Apple Silicon after explicit overrides. A fresh checkout alone is not enough on that platform.

Neither setup path starts with cargo build at the repository root.

Identify the compiler

After completing your platform’s setup, run this from the repository root:

export SOUNIO_STDLIB_PATH="$PWD/stdlib"
./bin/souc info
./bin/souc --version

bin/souc is a launcher, not the compiler binary itself. Inspect the raw_elf path reported by info: explicit overrides and local artifacts can select a different build from the committed prebuilt. Keep that identity with your results. For the Linux prebuilt, the recorded checksum is in bin/madaros-linux-x86_64.sha256; the macOS artifact has a separate identity. Do not switch engines to work around a platform or setup failure.

Check and run the first example

Once the selected compiler matches your platform:

./bin/souc check examples/hello.sio
./bin/souc run examples/hello.sio

Run the second command only if the check succeeds. The program’s expected message is Hello, Sounio, with exit status zero. Keep the actual output and exit status: a successful check alone does not establish runtime behavior, and these instructions are not a fresh execution report.

Continue learning