Scarp v0.0.5-alpha.5 — published compiler prerelease
Published November 4, 2026 (11:59:57 UTC). Official GitHub release · exact source commit 2eeed0aa52ccb59523307841ad8ffbd83f8911a8 · prerelease, not stable. The released Scarp executable remains a Rust-based interpreter and tooling CLI.
This is the first Scarp release to support project-directory module inspection, plus an experimental C11 scalar code emitter for Rust embedding hosts. The emitter is not a Scarp CLI native compiler. See the dedicated alpha.5 CLI guide, alpha.5 installation, and experimental C11 backend.
Newly shipped in alpha.5
| Capability | Published behavior | Boundary |
|---|---|---|
| Project module inspection | scarp inspect modules --json DIRECTORY reads an explicit Scarp.project, resolves the project entrypoint, and produces schema-version-1 module inventory |
It does not execute ordinary statements; file mode already existed in alpha.3 |
| Legacy project inspection | scarp modules --json DIRECTORY uses the same static backend |
Historical alias retained; new docs prefer inspect modules |
| Restricted C11 source generation | Rust embedding API scarp::c_backend::emit_c / emit_program emits a C11 translation-unit string |
No scarp compile, output executable, or C compiler invocation |
| Generated scalar loops | Supports restricted repeat / while, integer/boolean expressions, checked operations and nearest-loop break/continue |
C backend only accepts a subset of interpreter programs |
| Diagnostics and safety | Unsupported emitter forms return E0049; invalid shifts return E0046 |
These errors do not imply that interpreter language features were removed |
Test the published CLI
Download the official native alpha.5 archive and accompanying checksum for Windows x64, Linux x64, or macOS ARM64. After extraction, run the appropriate binary from the extracted directory. To use this example, you also need the release archive's examples/ directory, which the official packages include.
scarp version
scarp verify examples/native_scalar_repeat.srp
scarp exec examples/native_scalar_repeat.srp
scarp create hello-scarp
scarp verify hello-scarp
scarp inspect modules --json hello-scarp
scarp inspect modules --json hello-scarp/src/main.srp
scarp launch hello-scarp
The hello-scarp directory must not already exist before create. verify statically checks the project without running its statements. The project and individual-file inspection commands should return matching module inventories for the same canonical entry file. Successful project inspection produces JSON on stdout; an invalid manifest produces an error on stderr with nonzero status.
Important: These commands require alpha.5. The alpha.4 CLI supports file module inspection but not project-directory module inspection. The alpha.4 project quickstart remains useful for the unchanged project-create/verify/launch lifecycle.
Release-pinned scalar-repeat example
The compiler contains examples/native_scalar_repeat.srp. It runs in the interpreter and forms part of the compiler's interpreter/C differential test coverage. The complete published source:
// Experimental C11 scalar subset: this file also runs in the Scarp interpreter.
// The native emitter is a Rust library API, not a Scarp CLI command.
var even_sum = 0;
repeat 5 as index {
if index % 2 == 0 {
even_sum += index;
}
}
print("even-index sum");
print(even_sum);
var triangle = 0;
repeat 4 as row {
repeat row as column {
triangle += 1;
}
}
print("triangle cells");
print(triangle);
repeat 4 as step {
if step == 1 { continue; }
if step == 3 { break; }
print(step);
}
Exact interpreter stdout from the published .stdout fixture:
even-index sum
6
triangle cells
6
0
2
This illustrates zero-based repeat indexes, nested counted loops, continue, break and scalar integer calculations. It is not a general-purpose native compiler demo.
Important C11 backend limits
The experimental emitter accepts a deliberately limited scalar subset: integers and booleans, checked arithmetic and bit operations, scalar variables, if, while, counted repeat, and limited stdout print/println. Floats, functions/recursion, numerical vectors/tiles, computed text, stderr output, multiple-output calls and unsupported intrinsics are not accepted by this backend, even where the interpreter supports them. The Rust host must provide its own separate C11 compiler if it wants to compile generated C text. The emitted C ABI currently supports work/print budgets only, not every interpreter option.
See the C11 reference for supported forms, resource caps and why this does not introduce a scarp build command.
Verified release assets and provenance
Three published native packages were uploaded, each with its own .sha256 file, plus SHA256SUMS (seven uploaded assets). The package targets are Windows x64, Linux x64 (glibc), and macOS Apple Silicon. Check SHA-256 before extraction, and never assume an architecture without a published asset is supported. Release integrity was checked against exact source 2eeed0aa52ccb59523307841ad8ffbd83f8911a8; see the compiler's post-publication verification record.
No package registry, external dependency resolver, stable language specification, general native .srp executable generation, or scarp compile command was released. The earlier alpha.4 guide and compatibility matrix remain separate historical references.