Upgrade readiness: Scarp alpha.1 → alpha.2
Source baseline: v0.0.5-alpha.1 (afe8b5380c9d6c4774162e51c6c9bc8b90901671). Target release: v0.0.5-alpha.2 (e4db8e191cd7ea623123cae7348450ca6c95b170), published November 2, 2026.
This page is the first release-migration verification gate for Scarp Docs. It checks whether the original 11 published alpha.1 executable fixtures run unchanged on the newer published compiler. This test does not rename the main reference baseline, and it does not establish full backward compatibility for arbitrary source programs.
What the upgrade test actually does
The separate alpha2-conformance GitHub Actions job checks out and builds the exact published alpha.2 compiler commit. The TypeScript command test:alpha2-backcompat then reads the original alpha.1 fixture manifest, without copying or updating any source files:
- Confirm that the compiler prints the expected alpha.2 version and both manifest source identities remain pinned.
- Run
scarp checkon each original.srpentry program and require exit code 0 with no stdout/stderr. - Run
scarp runon the same original program and compare all stdout bytes with its original alpha.1.stdoutfixture (including the final newline), requiring exit code 0 and no stderr. - Verify the original
hello.srpstill tokenizes usingscarp tokens.
This complements, but does not replace, the 11-case alpha.1 baseline conformance, the 12-case alpha.2 feature conformance, and the six alpha.2 negative diagnostic cases.
All 11 programs checked for migration
| Original alpha.1 fixture | Subject being retested on alpha.2 |
|---|---|
hello.srp |
Basic program output |
functions.srp |
Functions, return types and calls |
loops.srp |
Conditional and while-loop behavior |
repeat.srp |
Counted iteration |
output.srp |
Output statements and newline behavior |
vectors.srp |
Finite numerical vectors |
module_demo.srp |
Relative multi-file module imports |
matrix_forward.srp |
Matrix/tile forward operations |
matrix_classification.srp |
Classification score calculations |
matrix_probabilities.srp |
Probability kernels |
matrix_targets.srp |
Target construction |
The original source, imported modules and expected output stay identical to their alpha.1 Git blobs; the only changed test dimension is the executable version.
Reproduce the compatibility gate
Check out the published alpha.2 compiler at commit e4db8e191cd7ea623123cae7348450ca6c95b170, build it with Cargo, then, from the scarp-docs repository root, run:
npm run test:alpha2-backcompat -- /path/to/alpha2/target/debug/scarp
On success, the script reports 11 passing checks and a tokens smoke test. Do not point it at an alpha.1 binary: its explicit version check will reject that. The Documentation CI workflow is the inspectable source of the latest pass/fail result.
What this does—and does not—prove
A green CI run means that those particular pinned examples still pass unchanged on the tested alpha.2 compiler. It is not proof that every alpha.1 program, host API, error message, numerical edge case, or third-party project is compatible with alpha.2. Scarp remains an experimental prerelease without a stable language contract.
The main feature status table, installation steps and older tutorials are still explicitly labeled alpha.1. Moving the entire reference baseline to alpha.2 needs a separate review of changed syntax, all reference claims and actual compiler execution. See version compatibility and the docs maintenance guide.
Do not treat features merged to compiler main after the release tag as published alpha.2 features.