Start with the ordinary runtime
Lispex starts with its built-in reference interpreter.
lispex rule.lspxThis reads your source directly. It is the default and the semantic reference. Install a companion when you choose the exact Topaz virtual machine or the admitted Topaz compiler that builds ahead of time.
Fetch an official companion
Native contains an exact, immutable route catalog. The current catalog has two macOS ARM64 entries. They are the Topaz 5.11 virtual machine and the exact Topaz 5.11 compiler that Lispex uses to build ahead of time. Choose a new absolute destination.
lispex routes fetch \
--route topaz-vm \
--target aarch64-apple-darwin \
--out /absolute/tools/lispex-topaz-vmThe command uses the immutable URL, channel, version, registry, and catalog in the Native route catalog. It checks the response length, SHA-256, accepted stored-ZIP shape, every installed file, and the closed Topaz product identity before publishing the destination. Target admission is resolved before the download begins.
Fetching publishes the installed product. Route selection happens at
Use the product explicitly, where you pass
/absolute/tools/lispex-topaz-vm/product.
Fetch the compiler companion separately when you intend to build a product compiled ahead of time.
lispex routes fetch \
--route aot-compiler \
--target aarch64-apple-darwin \
--out /absolute/tools/lispex-aot-compilerIts closed product contains the exact compiler and release manifest. aot build combines that installed compiler executable with the absolute Rust tool
directory selected by the caller.
lispex aot build \
--source rule.lspx \
--topaz-compiler /absolute/tools/lispex-aot-compiler/product/bin/topaz-bin \
--rust-tool-bin /absolute/rust/bin \
--out /absolute/products/rule-aotInstall a handed-off archive offline
Obtain these two immutable local files from the same provider handoff.
- a
lispex.route-catalog/v1file in its one accepted form, together with its exact SHA-256 - the stored-ZIP archive named by the exact route and target entry
The catalog is a closed allowlist. It names the provider product, language mode, manifest hash, archive hash and length, and every installed file. The installer reads exactly the catalog and archive paths supplied by the caller.
Install one exact entry
Choose a new absolute destination that does not exist.
lispex routes install \
--route topaz-vm \
--target aarch64-apple-darwin \
--catalog /absolute/handoff/routes.json \
--catalog-sha256 0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef \
--archive /absolute/handoff/topaz-vm-aarch64-apple-darwin.zip \
--out /absolute/tools/lispex-topaz-vmReplace the sample hash with the hash delivered alongside your exact catalog. The command reads local files only. On success it prints the same receipt that it writes here.
/absolute/tools/lispex-topaz-vm/
├── installation.json
└── product/installation.json is a lispex.route-installation/v1 receipt in its one
accepted form. It contains no absolute path or timestamp, so moving the
unchanged directory preserves its identity. The product/ directory remains
closed for the existing exact product validator.
For an admitted ahead-of-time compiler archive, change --route.
lispex routes install \
--route aot-compiler \
--target aarch64-apple-darwin \
--catalog /absolute/handoff/routes.json \
--catalog-sha256 0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef \
--archive /absolute/handoff/lispex-topaz-aot-compiler-aarch64-apple-darwin.zip \
--out /absolute/tools/lispex-aot-compilerThe admitted ahead-of-time compiler product targets macOS ARM64. The caller supplies Rust, the linker, the platform development kit, and system libraries for that exact target.
Use the product explicitly
Installation publishes the product while the reference interpreter remains the default. Select the route by supplying the closed product root.
lispex routes inventory \
--topaz-vm /absolute/tools/lispex-topaz-vm/productYou can then create a lock and diagnose it. A lock records the identity of the installed product you chose independently from its filesystem path.
lispex routes lock \
--route topaz-vm \
--topaz-vm /absolute/tools/lispex-topaz-vm/product \
--out topaz-route.json
lispex routes doctor \
--selection topaz-route.json \
--topaz-vm /absolute/tools/lispex-topaz-vm/productIf you relocate the installation, pass the new absolute product/ path.
Neither the lock nor the installation receipt remembers a filesystem path.
Run the complete installed journey
After building the compiled product, take an inventory of both optional engines and create one lock for each.
lispex routes inventory \
--topaz-vm /absolute/tools/lispex-topaz-vm/product \
--aot-product /absolute/products/rule-aot
lispex routes lock --route aot \
--aot-product /absolute/products/rule-aot \
--out aot-route.jsonUse routes measure --samples 1 for one four-way comparison under fixed
limits, then execute only the chosen lock.
lispex routes run \
--selection aot-route.json \
--aot-product /absolute/products/rule-aot \
--input input.datum \
rule.lspxYou can move the virtual machine installation or the finished compiled
product. Supply its new absolute root to routes doctor and routes run while
keeping the lock unchanged. Doctor revalidates the bytes at that root, and the
lock preserves the selection identity across relocation. The maintained
portable route journey
shows fetch, build, inventory, locks, doctor, measurement under fixed limits,
locked execution, and relocation together.
What the archive is allowed to contain
Lispex accepts only one uncompressed stored-ZIP shape, fixed down to the byte. It rejects compression, Zip64, descriptors, encryption, timestamps, extras, comments, directories, duplicate or unsorted names, path traversal, absolute paths, backslashes, symbolic links, special files, excess files or bytes, and every hash mismatch. It writes through a private sibling stage and publishes only to a destination that still does not exist.
Exit 2 reports command usage, exit 1 reports an identity or byte-form contract, and exit 3 reports local input and output, a resource value, or atomic publication. Every result records the selected entry, target, version, path, and engine.
Artifact roles
A valid catalog and installation receipt establish exact byte integrity for
installation. Signed distribution policy identifies the provider, comparison
receipts record agreement with Rust, and the host application owns external
actions. Vouch derives its evidence from authenticated exact source and a
consumer-pinned request. The route receipt records
automatic_fallback:false to preserve the selected engine.
Keep going
Use the runtime chooser for the simple default and the route doctor before any locked advanced execution.
Choosing Where to Run · Native CLI · Build a Product Compiled Ahead of Time