Песочница

Запуск проверенного байткода

Скомпилируйте канонический Core IR, выполните байткод во встроенной Rust VM или точной установленной Topaz VM и сравните маршруты.

Подготовьте правило и ввод

Сохраните refund-window.lspx:

LISPEX
(define (decide days)
  (if (<= days 30) 'refund 'review))

(decide input)

Единственный входной datum сохраните как request.lspx:

LISPEX
14

input не читает файл или окружение. Это явное требование, записанное в Core IR и байткоде; значение передаётся отдельным параметром команды.

Соберите Core IR и байткод

SH
lispex core-ir build \
  --source refund-window.lspx \
  --out refund-window.lpxir

lispex bytecode build \
  --ir refund-window.lpxir \
  --out refund-window.lpxbc

Первая команда разрешает имена и ячейки, захваты, хвостовые позиции и координаты исходника, не выполняя правило. Вторая переводит канонический Core IR в lispex.bytecode/v1, проверяет результат и записывает новый бинарный артефакт. Существующий файл ни одна команда не перезаписывает.

Изучите или проверьте до запуска

SH
lispex bytecode inspect --bytecode refund-window.lpxbc
lispex bytecode validate --bytecode refund-window.lpxbc

inspect показывает идентификаторы, ограниченные размеры таблиц, требования, число opcode, координаты корней и покрытие source map. validate — более краткая граница для автоматизации: строгий decoder проверяет и заново кодирует артефакт, принимая только одно каноническое представление байтов.

Обе команды проверяют целостность. Они не аутентифицируют производителя, не одобряют правило, не связывают запрос потребителя и не выполняют решение.

Выполните только после проверки

SH
lispex bytecode run \
  --bytecode refund-window.lpxbc \
  --input request.lspx

OUTPUT

refund

Native CLI проверяет весь артефакт до создания состояния VM. Некорректные байты отклоняются до чтения ввода, вывода, вызова примитива или первого шага VM. Если артефакт объявляет input, параметр --input обязателен; лишний ввод для артефакта без такого требования также отклоняется.

Один stdin нельзя использовать сразу для двух входов:

SH
lispex bytecode run --bytecode - --input -

Передайте байткод или datum через именованный файл.

Выполните тот же артефакт в Topaz VM

Rust VM встроена и остаётся вариантом по умолчанию. На macOS ARM64 можно явно выбрать точный допущенный продукт Topaz 5.11:

SH
lispex bytecode run \
  --engine topaz \
  --topaz-vm /absolute/path/to/aarch64-apple-darwin \
  --bytecode refund-window.lpxbc \
  --input request.lspx

Корень продукта — абсолютный путь к отдельно установленному lispex-topaz-vm/v1. Lispex проверяет manifest, артефакт Topaz, исполняемый файл, wrapper, управляемые файлы, линию compiler/исходника, платформу, ресурсный контракт и нулевые fallback. Поиска через PATH, соседний репозиторий, сеть или старую установку нет. Отсутствующий, изменённый, зависший или некорректный продукт даёт явную ошибку Topaz без повтора в Rust.

Выберите VM для исходника

Для самодостаточного исходника есть короткий маршрут:

SH
lispex run --backend rust --engine vm rule.lspx

По умолчанию остаётся tree:

SH
lispex run --backend rust --engine tree rule.lspx

Явно выбранный vm никогда не повторяет неудачный запуск через tree. --engine относится только к Rust-бэкенду; сочетание с LIL, LIT или реестром внешних бэкендов является ошибкой использования.

Сравните два Rust-движка

SH
lispex compare-engines \
  --receipt tree-vm.json \
  rule.lspx

Неперезаписываемый отчёт содержит точные идентификаторы исходника, Core IR и байткода, оба семантических наблюдения, оси расхождения, расход ресурсов VM и счётчик fallback. Это полезное свидетельство регрессии, но движки разделяют Rust-значения и листья примитивов. Совпадение не является независимым свидетелем или доказательством эквивалентности.

Для прямого сравнения двух VM байткода:

SH
lispex compare-vms \
  --topaz-vm /absolute/path/to/aarch64-apple-darwin \
  --receipt rust-topaz.json \
  rule.lspx

Байткод выводится один раз, затем Rust и Topaz запускаются явно. Сравниваются статус, вывод, значения, предупреждения, диагностика, ресурсы и завершённые корни. Исходник Topaz структурно отделён, но исполняемый файл создан Rust Stage 0 компилятора Topaz. Совпадение — дифференциальное свидетельство, а не доказательство или полномочие Vouch.

Когда собран соответствующий AOT-продукт, сравните все Native-маршруты:

SH
lispex compare-routes \
  --topaz-vm /absolute/path/to/aarch64-apple-darwin \
  --aot-product /absolute/path/to/refund-window-aot \
  --receipt four-routes.json \
  --input request.lspx \
  refund-window.lspx

Команда использует один результат frontend и один проверенный байткод для tree, Rust VM, Topaz VM и AOT. Несовпадение исходника, Core IR или байткода отклоняет AOT-продукт до запуска. Квитанция не перезаписывает файл, отдельно записывает семантические и сопоставимые ресурсные оси, показывает линии и fallback и не имеет полномочий Vouch.

Выберите подходящий продукт

ПродуктИнструменты байткодаRust VMTopaz VM / AOT / суд четырёх маршрутов
Native macOS ARM64давстроенаточные отдельные продукты и явное сравнение
Другие поддерживаемые Nativeдавстроенанет
npm CLI/packageнетнетявный отказ: только Native
Открытый WASMнетнетнет
Песочницанетнетнет

npm, открытый WASM и Песочница продолжают выполнять исходники через свои заявленные tree-маршруты и поддерживают точные изображения. В них нет JavaScript-reader, verifier или VM для байткода.

Выберите compiled Vouch, не повышая байткод до полномочия

Канонический хэш идентифицирует точные байты. Проверка устанавливает только ограниченную структурную допустимость, а локальный запуск VM — наблюдение данного Native. Обычный .lpxbc по-прежнему не выпускает и не аутентифицирует envelope, не удовлетворяет политику, не выбирает запрос и не выдаёт решение gate.

Если потребитель намеренно добавляет согласие VM к существующим проверкам Vouch, Native создаёт отдельный контейнер, связанный с исходником:

SH
lispex vouch compiled build \
  --source refund-window.lspx \
  --out refund-window.lpxvca

lispex vouch compiled validate \
  --artifact refund-window.lpxvca \
  --source refund-window.lspx

vouch verify --reexecute --compiled-artifact refund-window.lpxvca и vouch gate --compiled-artifact refund-window.lpxvca всё равно требуют точные внешние исходник и вход потребителя, политику доверия, аутентификацию и согласие текущего tree/Meaning. До запуска проверенной VM Native заново выводит Core IR и байткод из исходника. Контейнер, хэши, результаты inspection, validation и VM не могут пропустить или восстановить живой переход полномочий.

Куда дальше

Точный бинарный контракт и verifier описаны в справочнике. Чтобы изучить разрешённый смысл до компиляции, вернитесь к руководству Core IR.

Байткод и Rust VM · Компиляция в Topaz AOT · Native CLI