Песочница

Установка дополнительного маршрута Native

Получите точный официальный companion Topaz VM или AOT-компилятора либо установите проверенный локальный архив без автоматического поиска, fallback и полномочий Vouch.

Начните с обычного выполнения

Для запуска Лиспекса companion не нужен:

SH
lispex rule.lspx

Команда использует встроенный интерпретатор Rust tree. Он остаётся стандартным маршрутом, эталоном семантики и средством восстановления. Устанавливайте companion только для осознанного использования точной Topaz VM или допущенного AOT-компилятора Topaz.

Получение официального companion

Native содержит точный неизменяемый каталог маршрутов. Сейчас в нём две записи для macOS ARM64: Topaz 5.11 VM и точный компилятор Topaz 5.11 для Lispex AOT. Выберите новый абсолютный путь:

SH
lispex routes fetch \
  --route topaz-vm \
  --target aarch64-apple-darwin \
  --out /absolute/tools/lispex-topaz-vm

Команда не принимает URL, зеркало, канал, версию, реестр или подмену каталога и не следует перенаправлениям. До публикации каталога назначения она проверяет длину ответа, SHA-256, каноническую форму stored-ZIP, каждый установленный файл и закрытую identity продукта Topaz. Неподдерживаемая target отклоняется до сетевого запроса.

Получение не регистрирует и не выбирает маршрут. Перейдите к разделу Явное использование продукта и самостоятельно передайте /absolute/tools/lispex-topaz-vm/product.

Для сборки AOT-продукта отдельно получите companion компилятора:

SH
lispex routes fetch \
  --route aot-compiler \
  --target aarch64-apple-darwin \
  --out /absolute/tools/lispex-aot-compiler

Закрытый продукт содержит точный компилятор и release manifest, но не Rust toolchain. Для aot build по-прежнему нужны и установленный исполняемый файл компилятора, и отдельно выбранный абсолютный каталог инструментов Rust:

SH
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-aot

Офлайн-установка переданного архива

Получите из одной передачи provider два неизменяемых локальных файла:

  • канонический lispex.route-catalog/v1 и его точный SHA-256;
  • stored-ZIP, названный точной записью маршрута и target.

Каталог — закрытый список допуска. Он фиксирует продукт provider, языковой режим, digest manifest, digest и размер архива, а также каждый устанавливаемый файл. Лиспекс не ищет checkout, PATH, реестр пакетов, сеть или иной каталог.

Установите одну точную запись

Выберите новый абсолютный путь, которого ещё не существует:

SH
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-vm

Замените пример digest значением, переданным вместе с точным каталогом. Команда читает только локальные файлы. При успехе одна каноническая квитанция появляется в stdout и здесь:

/absolute/tools/lispex-topaz-vm/
├── installation.json
└── product/

installation.json — каноническая квитанция lispex.route-installation/v1. В ней нет абсолютного пути и времени, поэтому перенос неизменённого каталога сохраняет identity. product/ остаётся закрытым корнем для существующего точного валидатора продукта.

Для допущенного архива AOT-компилятора измените --route:

SH
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-compiler

Полную проверку установленного продукта и AOT-сборки прошёл только compiler cell macOS ARM64. Ячеек Linux, Windows и macOS Intel нет. Companion AOT-компилятора не включает Rust, linker, SDK и системные библиотеки, а Лиспекс не подменяет target.

Используйте продукт явно

Установка не регистрирует маршрут и не меняет стандартный выбор. Снова укажите закрытый корень продукта:

SH
lispex routes inventory \
  --topaz-vm /absolute/tools/lispex-topaz-vm/product

Затем создайте lock без пути и проверьте его:

SH
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/product

После переноса укажите новый абсолютный путь product/. Ни lock, ни квитанция установки не запоминают путь файловой системы.

Полный путь от установки до переноса

После сборки AOT-продукта проверьте оба необязательных маршрута и создайте отдельный lock для каждого:

SH
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.json

Для одного ограниченного сравнения четырёх маршрутов используйте routes measure --samples 1, затем исполняйте только выбранный lock:

SH
lispex routes run \
  --selection aot-route.json \
  --aot-product /absolute/products/rule-aot \
  --input input.datum \
  rule.lspx

Установку VM или готовый AOT-продукт можно переместить. Снова передайте новый абсолютный root командам routes doctor и routes run, не переписывая lock. Doctor заново проверит байты по новому адресу, а неизменившийся lock покажет, что identity выбора не зависела от старого пути. Поддерживаемый полный пример переносимых маршрутов соединяет получение, сборку, inventory, lock, doctor, ограниченное измерение, закреплённое исполнение и перенос.

Разрешённая форма архива

Лиспекс принимает только одну каноническую форму stored-ZIP без сжатия. Отклоняются сжатие, Zip64, descriptor, шифрование, время, extra, comment, каталоги, дубликаты и несортированные имена, выход из пути, абсолютные пути, обратные косые черты, символические ссылки, специальные файлы, превышение лимитов и любой неверный digest. Запись идёт в закрытый соседний stage, а публикация — лишь если назначения всё ещё не существует.

Код 2 означает ошибку использования команды, 1 — отказ identity или канонического контракта, 3 — локальный I/O, предел ресурса или защиту от перезаписи. После отказа нет попытки с иной записью, target, версией, путём или исполнителем.

Граница безопасности

Корректные каталог и квитанция подтверждают точную целостность установленных байтов. Они не доказывают доверие к provider, правильность программы, согласие с Rust или право на внешнее действие. Каталог, архив, квитанция, manifest и результат маршрута не могут стать свидетельством Vouch или входом gate. Поле automatic_fallback:false в канонической квитанции фиксирует запрет, а не просьбу попробовать другой маршрут.

Куда дальше

Для простого стандартного выбора используйте руководство по среде, а перед закреплённым продвинутым запуском — route doctor.

Выбор среды выполнения · Native CLI · Topaz AOT