Что здесь означает AOT
Native-конвейер полностью явный:
точный исходник Lispex
-> lispex.core-ir/v1
-> lispex.bytecode/v1
-> читаемый сгенерированный Topaz + source map
-> точный установленный компилятор Topaz 5.11
-> topaz.artifact.v1
-> Native-продукт без исходниковСгенерированная программа содержит статический граф управления. Во время выполнения она не читает исходник или байткод Lispex и не включает Rust VM, древовидный интерпретатор либо отдельную Topaz VM.
Подготовьте правило
Сохраните refund-window.lspx:
(define (decide days)
(if (<= days 30) 'refund 'review))
(decide input)Сохраните datum входа в request.lspx:
14Явно выберите инструменты сборки
AOT сейчас доступен только в Native для macOS ARM64. Укажите абсолютные пути
к установленному компилятору topaz-lang@5.11.0 и каталогу инструментов Rust:
TOPAZ_BIN=/absolute/path/to/node_modules/topaz-lang/bin/topaz-bin
RUST_TOOL_BIN=/absolute/path/to/rustup/binЛиспекс проверяет точные байты пакета Topaz, компилятора, npm-обёртки,
установщика и прокси Rust. Поиска через PATH, checkout репозитория, сеть,
старую цепочку или другой кэшированный продукт нет.
Соберите без перезаписи
lispex aot build \
--source refund-window.lspx \
--topaz-compiler "$TOPAZ_BIN" \
--rust-tool-bin "$RUST_TOOL_BIN" \
--out refund-window-aotКаталог назначения не должен существовать. Лиспекс собирает в ограниченном
закрытом staging и сначала строго проверяет выданный компилятором артефакт
Topaz и все управляемые файлы. Затем он удаляет зависящие от пути локальные
символы линкера и заменяет подпись линкера одной фиксированной ad-hoc подписью
Lispex AOT. Manifest продукта записывает точные хеши /usr/bin/strip и
/usr/bin/codesign, а итоговый артефакт Topaz заново связывается с
финальным исполняемым файлом. Manifest Lispex записывается последним, после
чего закрытый продукт публикуется атомарно.
Установленный каталог содержит только:
lispex-aot-product.json
lispex-source-map.json
topaz-artifact.json
target/debug/program
LICENSE
NOTICE
GENERATED-OUTPUT-NOTICE.txtДля запуска не нужны ни сгенерированный Topaz, ни исходник Lispex.
Проверьте без выполнения
lispex aot inspect --product "$PWD/refund-window-aot"
lispex aot validate --product "$PWD/refund-window-aot"Обе команды требуют абсолютный корень продукта. Они проверяют закрытый список файлов, identity исходника/Core IR/байткода/AOT, source map, точную линию компилятора и macOS-финализации, артефакт Topaz, хеш исполняемого файла, цель и нулевые fallback. Исполняемый файл не запускается.
Запустите установленный продукт
lispex aot run \
--product "$PWD/refund-window-aot" \
--input request.lspxrefund
run повторно проверяет продукт и запускает только записанный исполняемый
файл. Он не компилирует и не пробует древовидный интерпретатор, Rust VM,
Topaz VM, парсер байткода, сеть либо другую установку.
Для машинного результата добавьте --json:
lispex aot run \
--product "$PWD/refund-window-aot" \
--input request.lspx \
--jsonРезультат связывает manifest продукта, исходник, Core IR, байткод, сгенерированный пакет Topaz, source map, артефакт Topaz, исполняемый файл, вход, запрошенные ресурсы, наблюдения и пять нулевых fallback.
Задайте лимиты ресурсов
lispex aot run \
--product "$PWD/refund-window-aot" \
--input request.lspx \
--machine-transitions 1000000 \
--output-bytes 1048576 \
--control-frames 10000 \
--jsonВсе три значения — канонические беззнаковые 64-битные десятичные числа.
Ведущие нули, знак, переполнение, неверный учёт либо невозможное сочетание
успеха и диагностики закрыто отклоняются. Модели стоимости движков могут
различаться: сравнивайте одинаковые запросы и не считайте равные числа
доказательством семантической эквивалентности. Достигнутый лимит остаётся
типизированным результатом fault с диагностикой и наблюдёнными счётчиками:
Native-родитель не отбрасывает этот JSON только потому, что процесс AOT
завершился с кодом ошибки.
Сравните четыре Native-маршрута
После сборки AOT-продукта один исходник и вход можно явно выполнить в Rust tree, встроенной Rust VM, точной установленной Topaz VM и AOT executable:
lispex compare-routes \
--topaz-vm /absolute/path/to/aarch64-apple-darwin \
--aot-product "$PWD/refund-window-aot" \
--receipt four-routes.json \
--input request.lspx \
refund-window.lspxЛиспекс один раз читает и нормализует исходник, выводит по одному Core IR и байткоду, доказывает связь предварительно собранного AOT-продукта с этими identity, проверяет оба продукта Topaz и запускает каждый маршрут без повторной попытки через другой.
Неперезаписываемая квитанция отделяет семантические оси расхождения от сопоставимых ресурсных осей. Rust VM, Topaz VM и AOT используют одну модель стоимости байткода и должны совпасть по переходам, выводу, кадрам управления и завершённым корням. Tree честно объявляет другую depth-модель, не выдумывая отсутствующие счётчики. Код 0 означает завершение всех маршрутов и совпадение проверенных осей; 1 — расхождение; 2 — ошибку выполнения или продукта; 3 — невозможность опубликовать квитанцию.
Граница безопасности
Исполняемый AOT-файл, manifest, source map и отчёты inspect, validate или run —
execution-material-only; квитанция четырёх маршрутов — локальная
диагностика. Это не evidence аутентификации Vouch, не результат повторного
выполнения, связанный с запросом, и не grant gate. Текущая цепочка Vouch
по-прежнему использует точные внешние исходник и вход с границей
tree/Meaning/Rust VM.
Rust tree и Rust VM остаются независимо выбираемыми путями восстановления. Ошибка AOT видима и не включает другой маршрут автоматически.
Поддержка продуктов
| Продукт | Сборка | Inspect / validate / run |
|---|---|---|
| Native macOS ARM64 | только точный Topaz 5.11 | да |
| Другие Native-цели | нет | нет |
| npm CLI/пакет | явный отказ: только Native | нет |
| Открытый WASM, браузер, Worker, Песочница | нет | нет |
Текущий маршрут — неоптимизированный AOT с приоритетом корректности. Утверждение о побайтово одинаковой повторной сборке ограничено записанными identity компилятора, Rust и инструментов macOS-финализации на текущем хосте; это не обещание воспроизводимости между хостами. Маршрут не обещает меньший бинарник, ускорение, кросс-компиляцию, стабильный ABI, формальную эквивалентность, подлинность издателя или полномочия Vouch.
Запуск проверенного байткода · Native CLI · Среды выполнения и интерпретаторы