# Rail - verified status (v5.2.0)

> Generated by `tools/deploy/gen_status.rail` on 2026-06-22 22:16 UTC.
> Every number is recomputed from the source tree on each run, so this file
> cannot drift. Where a claim needs proof, the **command** is given - run it
> yourself. These are reproducible provenance facts, not a proof of correctness.

| Fact | Value | Verify it yourself |
|---|---|---|
| Release | v5.2.0 | `git describe --tags` |
| Compiler | 9218 lines of Rail | `wc -l tools/compile.rail` |
| Seed binary | 891944 bytes | `wc -c rail_native` |
| Seed sha256 | `0aaa40200009879f0d7c47a8814b843543f32693a3be8ed43176ef87ee1c964b` | `shasum -a 256 rail_native` |
| Stdlib | 101 modules | `ls stdlib/*.rail \| wc -l` |
| Non-Rail surface | 31 in-tree files | `SHIMS.md` |
| Tests | runner self-reports N/N | `./rail_native test` |
| Self-host | byte-identical fixed point | `./rail_native self && cmp rail_native /tmp/rail_self` |

## Dependency boundary

The seed binary has **no C**: the GC and runtime are ARM64 assembly embedded in the
compiler, and since v5.2.0 it assembles, links, and code-signs itself (no `as` / `ld` /
`codesign`). Optional concurrency, GPU (Metal), and JIT features use a small
asm/ObjC/C boundary - 31 in-tree non-Rail files, each named in [`SHIMS.md`](../SHIMS.md).

## Backends

ARM64 macOS (native) - Linux ARM64 - Linux x86_64 - WebAssembly (compiles; runtime
fragile) - Cortex-M4 (Thumb-2) - RISC-V rv32imc.

## Known surprising behaviors

Compilation proves a program is *accepted by the binary you run*, not that it is
*correct*. These are defined, but easy to trip over:

- `&&` / `||` do not short-circuit - both sides always evaluate
- `split` takes a single-character delimiter (use `str_split` for multi-char)

## What this proves

Signed, reproducible provenance: where the bytes came from and how to reproduce them.
Not a proof of correctness, and not numerical truth. The defensible claim is **check
me**, never *proof of truth*.
