Lispex checks each public surface through the behavior a user installs or opens. The owning module keeps focused tests during implementation, and release checks exercise the immutable product artifacts and public channels.
Product journeys
| Surface | Direct behavior checked | Current product status |
|---|---|---|
| Native reference | source evaluation, values, stdout, warnings, diagnostics, files, and exit status | reference interpreter with 205 tracked primitive rows |
| Meaning v1 | Core IR projection, shared cells, mutation, tail execution, escape control, dynamic cleanup, and exact observations | Native lower, eval-graph, and meaning-diff |
| Rust VM | canonical Core IR and bytecode, verifier refusals, tree agreement, diagnostics, and resources | built into Native |
| Topaz VM and AOT | exact provider identity, request binding, results, source map, executable, and route receipts | macOS ARM64 companion products |
| npm | clean install, reference evaluation, artifact inspection, Vouch verification, and SICP command routing | lispex@1.20.0 |
| WebAssembly and Playground | browser evaluation, canonical Lispex Images, recovery, explicit image execution, and profile selection | production English, Korean, and Russian sites |
| Resource-controlled embed | preparation, evaluation, inspection, verification, replay, terminal classes, and portable core | decision and full components |
| Decision exchange and Vouch | key identity, recipient policy, issuer authentication, request binding, re-execution, and decision gate | Native issue and gate, npm verification |
| SICP | Native and WebAssembly execution, typed observation, exact trace, chapter examples, and sicp.io course navigation | @lispex/sicp@1.0.0 and sicp.io |
Backend observations
LIL reports 205 of 205 tracked primitive rows. LIT reports 84 of 205. Rust tree/VM and Rust/Topaz comparisons bind source, intermediate artifacts, executor identity, result, diagnostics, and resources. Each receipt names the corpus and execution family it observed.
Release observation
The release path builds immutable Native and package artifacts once, installs those exact bytes, exercises the Native Meaning v1, npm reference, and SICP journey, publishes the artifacts, and reads the public products back from npm, Blob, and Production.