Controlled pseudo-code can be transformed into a deterministic C subset, then compiled to WebAssembly.
sigMAX uses that toolchain as a deterministic compiler step. The safety model does not come from Clang alone: it comes from contracts, the restricted C subset, explicit WASM imports, runtime primitives and Binary Agreements.
LLVM provides reusable compiler libraries: intermediate representation, optimizer passes, target backends, object emission and toolchain foundations. In this chain, LLVM is the machinery that makes wasm32 code generation possible.
Clang reads C, C++, Objective-C and related languages, validates syntax and semantics, then feeds LLVM. In sigMAX, Clang only sees generated C subset code, not arbitrary application source.
WebAssembly is the compact executable format loaded by the runtime. A WASM module has linear memory, explicit imports and exports, and no ambient access to the host unless the embedder provides it.
WASI defines standards-track host APIs for WASM applications. sigMAX business handlers do not rely on WASI by default; they use sigMAX runtime primitives instead. WASI remains the reference when a WASI-style host interface is intentionally introduced.
Clang can compile C toward many targets. With --target=wasm32, the target is a 32-bit WebAssembly environment, not a Linux process. That distinction matters: C code that expects files, sockets, libc, POSIX calls or a process environment needs a matching runtime model.
In a general WebAssembly build, Clang parses C, LLVM lowers it to wasm32, and the final module depends on the selected environment.
A freestanding build may avoid libc and provide only explicit imports.
A WASI build uses a WASI sysroot and host APIs.
A browser or embedder build exposes imports chosen by that embedder.
sigMAX uses the freestanding shape. Generated C includes the runtime header, avoids ambient OS behavior and calls only declared primitives.
Generated handlers include /runtime/sigma.h.
Undefined primitive calls become WASM imports.
Imports are emitted under the sigmax namespace.
The runtime checks capabilities before host work happens.
The Binary Agreement records what was actually compiled and accepted.
The result is a small executable boundary: the WASM module exports a handler and memory, imports only declared sigMAX primitives, and runs behind the Rust runtime.