Strata 2.0
`@if`, `@loop`, `@match`, `@fn`, `@struct`, `@defer` — every keyword is a stratum in `.si` source. Add `@my_keyword` like writing a function.
Zig-level control, ML-level ergonomics (sum types, pattern matching, inference), and a gradual memory model that's no-GC when you need speed and garbage-collected (wasm-gc) when you don't — with first-class JavaScript/host interop.
@type Shape := $Circle r Int | $Square s Int;
\\ size (Shape) -> Int
@fn size sh := {
@match(sh,
$Circle r, { r },
$Square s, { s })
};
@export size;Types live on a \\ signature line, not inline; sum-type variants are constructed by calling the generated constructor (Some(x)) and destructured by @match.
sgl run compiles, executes in wasmtime. sgl build --release produces a native binary via the QBE backend.
curl -fsSL https://raw.githubusercontent.com/NatesCode/silicon/main/scripts/install.sh | sh
sgl init hello
cd hello
sgl runContinue with the 15-minute tutorial →