Scarp v0.0.6-alpha.1 — published prerelease

Published November 5, 2026 at 11:39:49 UTC. GitHub release · tagged source commit. The release is experimental, not stable. The tagged GitHub release, not a development draft in the compiler repository, is the publication record.

What shipped

Feature Actual behavior Limit
Symbol definitions scarp inspect symbols --json FILE.srp inventories source declarations and their locations Read-only static inspection, not an LSP
Cross-file references scarp inspect references --json FILE.srp identifies uses of bindings, functions, imports, and parameters IDs only belong to one snapshot; no rename or incremental cache
Project inspection Both symbol commands accept an explicit directory containing Scarp.project Same bounded manifest and module loading rules as the compiler
Numerical rms Pure rms(vector) -> float computes root mean square using scaled arithmetic Finite vector values only; empty vectors report E0034
Validation Additional native and differential checks for the experimental scalar C11 embedding API No new native executable compilation command

Go deeper with the alpha.6 CLI and symbol guide, published AST source inspection and RMS tutorial. The published alpha.5 guide remains available for historical programs.

For the installed compiler's read-only machine and capability report, see scarp diagnose --json guide.

For complete Windows PowerShell, Linux Bash, macOS Terminal and exact tagged-source commands, follow the alpha.6 installation guide. The steps below are the compact release asset inventory.

Install and verify a release archive

Choose the official binary for your platform:

Download the matching checksum file and verify it before extraction using your platform's SHA-256 tool. The release also contains SHA256SUMS. Checksum files help detect corruption; they are not cryptographic signatures. A source build uses cargo build --locked --offline in a checked-out compiler tag and produces the Rust-based Scarp CLI, not a native executable from a .srp program.

Exercise the published interpreter and inspectors

The complete sample files and imported module are in the tagged examples directory. From the repository checkout root or extracted package root (the directory containing examples/), run:

scarp version
scarp verify examples/symbol_navigation.srp
scarp inspect symbols --json examples/symbol_navigation.srp
scarp inspect references --json examples/symbol_navigation.srp
scarp exec examples/symbol_navigation.srp
scarp exec examples/root_mean_square.srp

The symbol_navigation.srp file is a real multi-file program:

import "modules/navigation_values.srp" as library;

bind base = library.offset;
pure funcra twice(value: integer = library.offset) -> integer
    needs value >= 0;
    ensures result == value * 2;
{
    return value * 2;
}

var total = 0;
repeat 3 as step {
    bind base = twice(value: library.adjust(n: base + step));
    total += base;
}
print(total);

Exact stdout:

30

Static inspection returns a structured JSON object without running print. The symbols view has kind: "scarp.symbols" and the references view has kind: "scarp.references"; both use schema_version: 1. An invalid source graph yields no successful inventory.

Numerical example

The released root_mean_square.srp file is:

// RMS measures signal magnitude without forming an overflowing norm.
bind signal = [3.0, 4.0];
print(rms(signal) > 3.5, rms(signal) < 3.6);
print(rms([2.0, -2.0]));
print(rms(window([99.0, 3.0, 4.0, 99.0], 1, 2)) == rms(signal));
print(rms([1e308, -1e308]) == 1e308);
print(rms([0.0, -0.0]));

Exact stdout:

true true
2.0
true
true
0.0

This demonstrates a nonempty finite vector, visible windows, extreme magnitudes, and zero behavior. Read RMS numerical details for budgets and domain errors.

Availability and exclusions

scarp inspect symbols and scarp inspect references first ship in v0.0.6-alpha.1. Earlier alpha.5 binaries do not implement them or rms. scarp exec remains interpreter execution; scarp verify and inspection are static except for permitted compile-time constant evaluation. Error diagnostics use stderr and can be requested with --diagnostic-format=json, distinct from the successful inventory --json flag.

No general-purpose compiler backend command, GPU/async runtime, stable ABI, package manager, LSP server, built-in rename, generalized tensor engine or automatic differentiation is implied. The separate Scarp Playground and VS Code extension are not claimed to have integrated these APIs.

Evidence boundary: This page is pinned to the immutable release tag v0.0.6-alpha.1 and commit aa329a22cf2bf92d2c9814a26ff9c8b67a72e6e8. Documentation conformance fixtures are copied from that tag and run against the tagged Rust CLI in CI, independently of mutable compiler main.

Search documentation