How to reason about it
- Every runner exposes value/output, diagnostics, status, warnings, declared resource observations, artifact identity, limits, and provenance through the versioned observation contract.
- LIL is a Lispex-written hosted interpreter and LIT is a Topaz-written transliteration. LIL currently supports all 205 primitive capability rows, while LIT independently remains at 84 supported and 121 rejected.
- The installed-product receipt runs one host route per family over 144 cases. A route is one way of running a rule, such as the built-in interpreter or a separately installed product. The receipt records 253 family-pair agreements and 179 divergences. Pairwise results are Rust/LIL 61/83, Rust/LIT 65/79, and LIL/LIT 127/17, with 59 all-family agreements.
- Separate evidence collected inside fixed limits seals LIT host agreement across interpreter, generated Rust, generated Python, and Web routes on a versioned set of four host checks.
- The Native
lispex.rust-engine-comparison/v1report separately compares the Rust tree engine and the verified-bytecode VM engine. A VM is a virtual machine, the program that runs an already compiled list of instructions. The report preserves exact intermediate identities and fallback counters without adding a backend family. - The Native
lispex.topaz-vm-comparison/v1report separately compares one Lispex-derived bytecode artifact in the Rust and exact installed Topaz VMs. It records a separate VM lineage but does not rewrite the historical Rust/LIL/LIT family receipt. - The Native
lispex.route-comparison/v1receipt derives one source/Core IR/bytecode request and explicitly observes tree, Rust VM, exact Topaz VM, and the matching AOT product. AOT stands for ahead-of-time compilation, which turns the rule into a standalone program before it runs, so nothing compiles it at run time. The receipt checks semantic axes and comparable bytecode-cost resources separately while leaving unavailable tree counters unavailable.
Why the 179 pair differences occur
Every pair in the historical receipt now has one deterministic primary classification. “Classified” means the cause is machine-visible. It does not mean the difference is accepted or fixed.
| Primary classification | Pairs | Reading |
|---|---|---|
capability-unsupported-loud | 115 | at least one limited backend rejected a capability it does not implement |
different-disposition-known-defect | 46 | the backends reached different execution or error phases |
diagnostic-projection-difference | 2 | the execution disposition agrees but diagnostics or warnings differ |
host-resource-profile | 10 | the named set of resources or the resource outcome differs |
semantic-mismatch | 6 | an observable same-disposition difference still needs investigation |
The complete accounting is 432 family pairs, made up of 253 agreements, 179
divergences, and zero unclassified current divergences. A newly observed
mismatch starts unclassified and fails closed until evidence assigns a reason.
Current backend status
| Where it runs | Implementation / provenance | Current evidence boundary |
|---|---|---|
| Native CLI | Rust reference with default tree and explicit verified-bytecode VM, same-origin-reference | current full Native CLI, and VM selection is strict with no fallback |
| Rust engine comparison | tree and lispex-rust-vm/v1 sharing Rust values and primitive leaves | focused lispex.rust-engine-comparison/v1 observations and exact source/Core IR/bytecode identities. Diagnostic only, outside the 144-case family receipt |
| Topaz VM comparison | built-in lispex-rust-vm/v1 and separately installed lispex-topaz-vm/v1, where the Topaz source is structurally separate and compiled by Topaz Rust Stage 0 | explicit macOS ARM64 lispex.topaz-vm-comparison/v1, with exact product/request/result identities, full-u64 resources, and zero fallback. Diagnostic only, outside Vouch and the historical family receipt |
| Four-route court | Rust tree, built-in Rust VM, separately installed Topaz VM, and exact matching Topaz AOT, where the two Topaz products retain their declared Rust Stage 0 production lineage | explicit macOS ARM64 lispex.route-comparison/v1, with one derived request, exact products, semantic and comparable-resource axes, no-clobber, and zero retry or fallback. Diagnostic only, outside Vouch and the historical family receipt |
| Public WebAssembly / Playground | same Rust lineage compiled to WebAssembly | current same-origin observations, with profile-specific limits |
| npm CLI | Node packaging around the public WebAssembly and JavaScript build | current packaging, and the command subset differs from native |
| Lispex-in-Lispex | Lispex-written hosted interpreter, one LIL implementation family | current capability contract of 205/205 rows, including all 18 guest-calling rows through guest-machine frames, four limited private-effect output rows, three ordered warning-bearing aliases, and explicitly labelled character/string and advanced numeric host-kernel dependencies. The released 84-row joint-receipt snapshot has Rust/LIL agreement on 61 cases and divergence on 83 |
| Lispex-in-Topaz interpreter route | Topaz-written transliteration, one LIT family with no source-independence claim | 84/205 primitive capability rows. The joint receipt pair Rust/LIT agrees on 65 cases and diverges on 79 |
| Lispex-in-Topaz host routes | the one exact LIT source through interpreter, generated Rust, generated Python, and Web | evidence collected inside fixed limits seals a versioned set of four host checks |
| Rust/LIL/LIT joint receipt | three implementation families and one installed product route per family | 144 cases and 432 executions, with 59 all-family agreements, 253 pair agreements, and 179 disclosed pair divergences |
| Scaled generated campaign | native and WebAssembly routes of the same Rust implementation lineage | 11,088 stored cases, with zero natural divergence and zero infrastructure failure. This is not the three-family receipt |
A common mistake
Host variants within the Rust reference, LIL, or LIT family are not independent witnesses. A structurally different VM inside Rust is still same-lineage. The Topaz VM adds a separate implementation lineage but not a proof, a machine-checked whole-profile equivalence claim, or an automatic fourth family in the older receipt.
Current boundaries
- No source-independence claim is made for LIT. The matrix holds only for what it recorded and does not establish whole-language semantic equivalence or no-divergence beyond it.
Keep going
Checked Surfaces breaks the 144 cases into their inventories, and Runtime and Backends states the admission rules behind each row.
Bytecode and Rust VM · Checked Surfaces · Runtime and Backends