Песочница

Установка дополнительного движка

Получите точный официальный дополнительный продукт с виртуальной машиной Топаза или с компилятором для сборки заранее либо установите проверенный локальный архив без автоматического поиска, запасных путей и полномочий Ваучера.

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

Для запуска Лиспекса дополнительный продукт не нужен.

SH
lispex rule.lspx

Команда использует встроенный интерпретатор, который просто читает исходник и сразу его выполняет. Он остаётся стандартным способом, эталоном семантики и средством восстановления. Устанавливайте дополнительный продукт только для осознанного использования точной виртуальной машины Топаза или допущенного компилятора Топаза для сборки заранее.

Получение официального дополнительного продукта

Native содержит точный неизменяемый каталог маршрутов. Сейчас в нём две записи для macOS ARM64. Это виртуальная машина Топаза 5.11 и точный компилятор Топаза 5.11, которым Лиспекс собирает заранее. Выберите новый абсолютный путь.

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

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

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

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

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

Закрытый продукт содержит точный компилятор и манифест выпуска, но не цепочку инструментов Rust. Для 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

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

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

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

Каталог представляет собой закрытый список допуска. Он фиксирует продукт поставщика, языковой режим, хэш манифеста, хэш и размер архива, а также каждый устанавливаемый файл. Лиспекс не ищет рабочую копию репозитория, 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

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

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

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

Для допущенного архива компилятора, который собирает заранее, измените --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

Полную проверку установленного продукта и сборки прошла только ячейка компилятора macOS ARM64. Ячеек Linux, Windows и macOS Intel нет. Дополнительный продукт с компилятором не включает Rust, компоновщик, комплект разработки платформы и системные библиотеки, а Лиспекс не подменяет целевую платформу.

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

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

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

Затем создайте lock и проверьте его. 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, ни квитанция установки не запоминают путь файловой системы.

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

После сборки скомпилированного продукта проверьте оба необязательных движка и создайте отдельный 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

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

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

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

Код 2 означает ошибку использования команды. Код 1 означает отказ по идентичности или по форме байтов. Код 3 означает сбой локального ввода и вывода, превышение предела ресурса или неудачную публикацию без перезаписи. После отказа нет попытки с иной записью, иной целевой платформой, иной версией, иным путём или иным способом выполнения.

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

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

Куда дальше

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

Выбор способа запуска · Native CLI · Сборка заранее скомпилированного продукта