Scarp v0.0.5-alpha.4 — published project workflow

Published: November 3, 2026. This is the newest published Scarp v0.0.5-alpha.4 prerelease, from tagged source commit 79141329176f5dce51457e90a6652902f6432135. It is an experimental Rust-implemented interpreter, not a native-code compiler or a stable project/package specification. The source of the behavior below is the tagged project implementation and its end-to-end compiler tests.

What actually shipped

Command Availability and effect
scarp create DIRECTORY New in alpha.4. Creates a new local directory, manifest, and starter .srp source. Rejects an existing directory, even if empty.
scarp verify DIRECTORY New project-directory mode. Validates manifest, entry path, imported modules, names and types; does not run ordinary statements. scarp verify FILE.srp remains supported.
scarp launch DIRECTORY New in alpha.4. Checks the project manifest and executes its declared entry through the actual interpreter. Accepts runtime budget options.
scarp exec FILE.srp Already shipped in alpha.3. Executes an individual source file without requiring a project manifest.
scarp inspect modules --json FILE.srp Already shipped in alpha.3. Produces static module metadata, not project execution.

The original run, check, tokens and modules invocations remain available temporarily for migration. The historical check can evaluate selected runtime paths; verify does not run ordinary program statements.

Reproduce a real alpha.4 project

Use a v0.0.5-alpha.4 executable. From a directory where hello-world does not exist, run:

scarp version
scarp create hello-world
scarp verify hello-world
scarp launch hello-world

create generates hello-world/Scarp.project and hello-world/src/main.srp. The exact version-1 manifest is:

scarp-project: 1
name: hello-world
entry: src/main.srp

The exact starter program generated by the published compiler is:

print("Hello from Scarp!");

The verify command is silent on success. launch executes that starter and prints:

Hello from Scarp!

These three artifacts match the official alpha.4 src/project.rs generator; a dedicated conformance job builds the exact published commit and compares the created file bytes and stdout.

Manifest format and boundaries

Scarp.project is a versioned development manifest v1, not a package registry format. The manifest has exactly three ordered lines and at most 4,096 UTF-8 bytes. It uses scarp-project: 1, name: ..., and entry: .... Unknown/duplicate fields are errors.

  • The project name must occupy 1–96 UTF-8 bytes and cannot contain control characters, path separators, a colon, or surrounding whitespace.
  • The entry value must be an existing relative .srp file inside the selected project, with forward slashes and no ./.. components, colon, backslash or control characters. Its text must be at most 512 UTF-8 bytes.
  • The manifest must be an ordinary file, not a symlink. An entry symlink is acceptable only if its canonical target remains under the canonical project root.
  • Project directories are always explicit: launch and project verify do not search parent directories or discover workspaces automatically.
  • create requires an existing parent directory and never overwrites or adopts an already existing project directory.

Static validation versus execution

A type-correct program can still fail at runtime, so a successful static verify does not guarantee successful launch. The compiler tests demonstrate this with an entry containing a runtime division by zero: project verify succeeds, while launch fails with exit code 1 and no program stdout.

launch supports execution-budget controls such as --max-steps, --max-prints, --max-calls and --max-text-bytes. Project verify rejects runtime budget flags because it does not run ordinary statements. Both can report structured errors with --diagnostic-format=json on stderr. Source/runtime errors normally exit 1; invalid command usage exits 2.

Verified download targets

The published release provides archives and SHA-256 checksums for Windows x64, Linux x64, and macOS Apple Silicon. Download the archive and its matching checksum from the official alpha.4 GitHub release. Compare the archive's SHA-256 before extraction; do not execute a mismatched or unverified file.

What this release does not add

No scarp build/compile native executable generation, project dependency downloading, package registry, lockfile, workspace discovery, multi-entrypoint selection, general user-defined records/enums, GPU backend or built-in async language support. cargo build produces the Rust-based Scarp tool, not a native executable for an arbitrary .srp program.

For a beginner-friendly walk-through, follow Quickstart: alpha.4 projects, the published release matrix, and the historical alpha.3 CLI reference. Compiler behavior and manifest syntax may change in later prereleases.

Search documentation