Подготовьте правило и ввод
Сохраните refund-window.lspx.
(define (decide days)
(if (<= days 30) 'refund 'review))
(decide input)Единственный входной datum сохраните как request.lspx.
14input не читает файл или окружение. Это явное требование, записанное в Core
IR и байткоде, а значение передаётся отдельным параметром команды.
Соберите Core IR и байткод
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, проверяет результат и записывает новый бинарный
артефакт. Существующий файл ни одна команда не перезаписывает.
Изучите или проверьте до запуска
lispex bytecode inspect --bytecode refund-window.lpxbc
lispex bytecode validate --bytecode refund-window.lpxbcinspect показывает идентификаторы, размеры таблиц в заданных пределах,
требования, число opcode, координаты корней и покрытие карты исходника.
validate является более краткой границей для автоматизации. Строгий
разборщик проверяет и заново кодирует артефакт, принимая только одно
допустимое представление байтов.
Обе команды проверяют целостность. Они не аутентифицируют производителя, не одобряют правило, не связывают запрос потребителя и не выполняют решение.
Выполните только после проверки
lispex bytecode run \
--bytecode refund-window.lpxbc \
--input request.lspxrefund
Native CLI проверяет весь артефакт до создания состояния виртуальной машины.
Некорректные байты отклоняются до чтения ввода, вывода, вызова примитива или
первого шага машины. Если артефакт объявляет input, параметр --input
обязателен, а лишний ввод для артефакта без такого требования также
отклоняется.
Один stdin нельзя использовать сразу для двух входов, и такой вызов отклоняется.
lispex bytecode run --bytecode - --input -Передайте байткод или datum через именованный файл.
Выполните тот же артефакт в виртуальной машине Топаза
Виртуальная машина Rust встроена и остаётся вариантом по умолчанию. На macOS ARM64 можно явно выбрать точный допущенный продукт Топаза 5.11.
lispex bytecode run \
--engine topaz \
--topaz-vm /absolute/path/to/aarch64-apple-darwin \
--bytecode refund-window.lpxbc \
--input request.lspxКорень продукта задаётся абсолютным путём к отдельно установленному
lispex-topaz-vm/v1. Лиспекс проверяет манифест, артефакт Топаза, исполняемый
файл, обёртку, управляемые файлы, линию компилятора и исходника, платформу,
ресурсный контракт и объявление об отсутствии запасного пути. Поиска через
PATH, соседний
репозиторий, сеть или старую установку нет. Отсутствующий, изменённый,
зависший или некорректный продукт даёт явную ошибку Топаза без повтора в Rust.
Выберите виртуальную машину для исходника
Для самодостаточного исходника есть короткая форма.
lispex run --backend rust --engine vm rule.lspxПо умолчанию остаётся tree.
lispex run --backend rust --engine tree rule.lspxЯвно выбранный vm никогда не повторяет неудачный запуск через tree.
--engine относится только к Rust-бэкенду. Сочетание с другим бэкендом,
таким как LIL или LIT, или с реестром внешних бэкендов является ошибкой
использования.
Сравните два Rust-движка
lispex compare-engines \
--receipt tree-vm.json \
rule.lspxНеперезаписываемый отчёт содержит точные идентификаторы исходника, Core IR и байткода, оба семантических наблюдения, оси расхождения, расход ресурсов виртуальной машины и число запасных путей. Это полезное свидетельство регрессии, но движки разделяют Rust-значения и листья примитивов. Совпадение не является свидетельством независимой реализации или доказательством эквивалентности.
Для прямого сравнения двух виртуальных машин байткода используйте эту команду.
lispex compare-vms \
--topaz-vm /absolute/path/to/aarch64-apple-darwin \
--receipt rust-topaz.json \
rule.lspxБайткод выводится один раз, затем Rust и Топаз запускаются явно. Сравниваются статус, вывод, значения, предупреждения, диагностика, ресурсы и завершённые корни. Исходник Топаза структурно отделён, но исполняемый файл создан Rust Stage 0 компилятора Топаза. Совпадение является дифференциальным свидетельством, а не доказательством или полномочием Ваучера.
Когда собран соответствующий заранее скомпилированный продукт, сравните все четыре способа выполнения в Native.
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Команда использует один результат первого этапа и один проверенный байткод для запуска tree, виртуальной машины Rust, виртуальной машины Топаза и заранее скомпилированного продукта. Несовпадение исходника, Core IR или байткода отклоняет скомпилированный продукт до запуска. Квитанция не перезаписывает файл, отдельно записывает семантические и сопоставимые ресурсные оси, показывает линии и счётчик запасных путей и не имеет полномочий Ваучера.
Выберите подходящий продукт
| Продукт | Инструменты байткода | Виртуальная машина Rust | Виртуальная машина Топаза, заранее скомпилированный продукт и сравнение четырёх способов |
|---|---|---|---|
| Native macOS ARM64 | да | встроена | точные отдельные продукты и явное сравнение |
| Другие поддерживаемые Native | да | встроена | нет |
| npm CLI и пакет | нет | нет | явный отказ, только Native |
| Открытая сборка WebAssembly | нет | нет | нет |
| Песочница | нет | нет | нет |
npm, открытая сборка WebAssembly и Песочница продолжают выполнять исходники через свои заявленные tree-запуски и поддерживают точные изображения. В них нет ни читателя байткода на JavaScript, ни проверяющего модуля, ни виртуальной машины.
Скомпилированный путь Ваучера не делает байткод полномочием
Хэш байткода идентифицирует точные байты. Проверка устанавливает только
структурную допустимость в заданных пределах, а локальный запуск виртуальной
машины устанавливает только наблюдение данного запуска Native. Обычный
.lpxbc по-прежнему не выпускает и не аутентифицирует конверт, не
удовлетворяет политику доверия, не выбирает исходник или ввод и не выдаёт
решение проверки допуска.
Если потребитель намеренно добавляет согласие виртуальной машины к существующим проверкам Ваучера, Native создаёт отдельный контейнер, связанный с исходником.
lispex vouch compiled build \
--source refund-window.lspx \
--out refund-window.lpxvca
lispex vouch compiled validate \
--artifact refund-window.lpxvca \
--source refund-window.lspxvouch verify --reexecute --compiled-artifact refund-window.lpxvca и
vouch gate --compiled-artifact refund-window.lpxvca всё равно требуют
точные внешние исходник и вход потребителя, политику доверия, аутентификацию
и текущее согласие запуска tree с записью смысла. До запуска проверенной
виртуальной машины Native заново выводит Core IR и байткод из исходника.
Контейнер, его хэши и отчёты команд inspect и validate, а также результат
виртуальной машины не могут пропустить ни одну живую проверку Ваучера или
заменить свидетельство, которое создают эти проверки.
Куда дальше
Точный двоичный контракт и проверяющий модуль описаны в справочнике. Чтобы изучить разрешённый смысл до компиляции, вернитесь к руководству Core IR.
Байткод и виртуальная машина Rust · Сборка заранее скомпилированного продукта · Native CLI