Backend Observation Matrix

The current observation contract compares the Rust reference, LIL, and LIT as three implementation families while retaining exact runner, artifact, host-route, and provenance labels.

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; LIT independently remains at 84 supported and 121 rejected.
  • The installed-product receipt runs one host route per family over 144 cases. It 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 bounded evidence seals LIT host agreement across interpreter, generated Rust, generated Python, and Web routes on a versioned four-host check surface.
  • The Native lispex.rust-engine-comparison/v1 report separately compares the Rust tree and verified-bytecode VM engines. It preserves exact intermediate identities and fallback counters without adding a backend family.
  • The Native lispex.topaz-vm-comparison/v1 report 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/v1 receipt derives one source/Core IR/bytecode request and explicitly observes tree, Rust VM, exact Topaz VM, and the matching AOT product. It 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 classificationPairsReading
capability-unsupported-loud115at least one bounded backend rejected a capability it does not implement
different-disposition-known-defect46the backends reached different execution or error phases
diagnostic-projection-difference2the execution disposition agrees but diagnostics or warnings differ
host-resource-profile10the named resource surface or resource outcome differs
semantic-mismatch6an observable same-disposition difference still needs investigation

The complete accounting is 432 family pairs: 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

SurfaceImplementation / provenanceCurrent evidence boundary
Native CLIRust reference with default tree and explicit verified-bytecode VM; same-origin-referencecurrent full Native CLI; VM has strict no-fallback selection
Rust engine comparisontree and lispex-rust-vm/v1 sharing Rust values and primitive leavesfocused lispex.rust-engine-comparison/v1 observations and exact source/Core IR/bytecode identities; diagnostic only, outside the 144-case family receipt
Topaz VM comparisonbuilt-in lispex-rust-vm/v1 and separately installed lispex-topaz-vm/v1; Topaz source is structurally separate and compiled by Topaz Rust Stage 0explicit macOS ARM64 lispex.topaz-vm-comparison/v1; exact product/request/result identities, full-u64 resources, zero fallback, diagnostic only, outside Vouch and the historical family receipt
Four-route courtRust tree, built-in Rust VM, separately installed Topaz VM, and exact matching Topaz AOT; the two Topaz products retain their declared Rust Stage 0 production lineageexplicit macOS ARM64 lispex.route-comparison/v1; one derived request, exact products, semantic and comparable-resource axes, no-clobber, zero retry/fallback, diagnostic only, outside Vouch and the historical family receipt
Public WASM / Playgroundsame Rust lineage compiled to WASMcurrent same-origin observations; profile-specific limits
npm CLINode packaging around public WASM/JS surfacecurrent packaging; command subset differs from native
Lispex-in-LispexLispex-written hosted interpreter; one LIL implementation familycurrent capability contract: 205/205 rows, including all 18 guest-calling rows through guest-machine frames, four bounded 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 routeTopaz-written transliteration; one LIT family with no source-independence claim84/205 primitive capability rows; joint receipt pair Rust/LIT agrees on 65 cases and diverges on 79
Lispex-in-Topaz host routesthe same canonical LIT source through interpreter, generated Rust, generated Python, and Webbounded evidence seals a versioned four-host check surface
Rust/LIL/LIT joint receiptthree implementation families and one installed product route per family144 cases and 432 executions; 59 all-family agreements, 253 pair agreements, and 179 disclosed pair divergences
Scaled generated campaignnative and WASM routes of the same Rust implementation lineage11,088 stored cases; zero natural divergence and zero infrastructure failure; 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 is bounded to its recorded surface and does not establish whole-language semantic equivalence or no-divergence beyond it.

Keep going

Use this page while writing code. For a guided explanation, return to the syntax map or the corresponding manual.

Bytecode and Rust VM · Syntax at a Glance · Learning Path