Как рассуждать
lispex [FILE|-]вычисляет исходник;receiptзаписывает envelope нативного выполнения;lowerиeval-graphработают с проверяемым подмножеством.- Native-команда
lispex fmt [FILE|-]детерминированно пишет форматированный исходник в stdout. Тихий--checkвозвращает 0, если изменений не нужно, и 1, если байты изменятся.--writeбезопасно заменяет один именованный обычный файл. Проверка выполняется первой; комментарии, pragma, tokens и написание литералов сохраняются точно. - В Native
core-ir buildпревращает точный исходник в разрешённый каноническийlispex.core-ir/v1,core-ir validateстрого читает и перекодирует его, аcore-ir inspectдобавляет читаемую нормализованную проекцию. Все три команды ничего не исполняют и имеют границуintegrity-only. Прежнийlowerостаётся отдельной командой Meaning Graph. - В Native
bytecode buildпринимает строгий Core IR и записывает каноническийlispex.bytecode/v1;inspectиvalidateстрого читают его без выполнения;bytecode runпроверяет и выполняет его вlispex-rust-vm/v1.run --backend rust --engine vm— маршрут из исходника в памяти, а стандартным остаётся tree. Ошибка VM не повторяется через tree. - Native
vouch compiled build|inspect|validateсоздаёт, проверяет структуру или точно заново выводит.lpxvcaиз отдельно названного исходника либо доказанного изображения. Команды печатают JSON в stdout, не исполняют правило и указываютauthority: integrity-only. Исполняют артефакт только явныеverify --reexecute --compiled-artifactиgate --compiled-artifact. compare-engines --receipt REPORT SOURCEзапускает оба Rust-движка, пишет неперезаписываемыйlispex.rust-engine-comparison/v1и завершает работу с кодом 1 при семантическом расхождении. Это регрессионное свидетельство одной линии, а не независимая квитанция или полномочие.bytecode run --engine topaz --topaz-vm ROOTвыбирает только точный установленный продукт Topaz 5.11 для macOS ARM64.compare-vms --topaz-vm ROOT --receipt REPORT SOURCEодин раз выводит байткод и записывает обе VM. Проверяются продукт, запрос, результат, полный ресурсu64и fallback; ошибка Topaz не повторяется другим движком.- Native
aot buildопускает точный исходник через Core IR и байткод в читаемый Topaz, требует абсолютные точные пути Topaz/Rust и новый каталог.aot inspect|validateне выполняют продукт, аaot runне компилирует. Source-free продукт macOS ARM64 и результаты не имеют fallback и помеченыexecution-material-only. compare-routes --topaz-vm TVM --aot-product AOT --receipt REPORT SOURCEодин раз выводит Core IR и байткод, проверяет точное соответствие AOT, валидирует оба установленных продукта Topaz и явно запускает tree, Rust VM, Topaz VM и AOT. Неперезаписываемая диагностика разделяет семантические и сопоставимые ресурсные оси и не входит в Vouch.- Native предоставляет полную namespaced-цепочку:
vouch issue,vouch verifyбез флагов,vouch verify --reexecute,vouch gate --require-decisionиvouch inspect. npm предоставляет аутентифицированныйvouch verifyбез флагов, структурныйvouch inspectи корпусныйvouch replay, отклоняя issue,--reexecuteи gate до I/O артефактов. - Для аутентифицированного verify без флагов код 0 означает аутентификацию и диагностическую eligibility, 10 — аутентификацию без неё, 1 — отказ, 2 — ошибку использования до I/O артефакта, 3 — ошибку ввода/вывода или публикации отчёта. Коды 0 и 10 оба означают аутентификацию и не дают полномочий.
- Плоская команда npm
lispex verify RECEIPTостаётся неподписанной структурной командой совместимости и не является псевдонимом namespaced-аутентификацииlispex vouch verify. - Успешный отчёт
--reexecuteсодержитauthentication.status=authenticated,reexecution.status=execution-agreed, фиксированныйobservation_scope=csk.vouch-complete-transcript/v0иcomparison.current_vs_signed=agree. vouch gateтребует все пути исходного контекста,--require-decision approve|deny|review|invalid-inputи--report-out. Отчётcsk.native-gate-report/v0разделяет аутентификацию, повторное выполнение и статус gate и записывает фиксированный basiscsk.current-native-agreement/v0.- Идентичность файла и stdin записывается явно там, где этого требует контракт артефакта.
- Используйте
lispex vouch policy createс одним именованным SPKI-файлом, повторяемыми явными флагами engine/source и новым выходом, затемpolicy checkдля точных байтов. Успех не пишет stdout. Код 2 — usage, 3 — ошибка I/O/resource/publication, 1 — некорректная конфигурация. - Для полномочий Native с bundle команды
vouch verify --reexecuteиvouch gateтребуют одновременно--source RULEи--input INPUT. Отсутствующая или неполная пара даёт usage-код 2 до открытия любого именованного artifact.vouch verify --bundleбез флагов остаётся поддерживаемой аутентификацией-only в Native и npm. - Команды изображений Native и npm используют именованные пути:
image encode --source SOURCE --out IMAGE,image inspect --image IMAGE,image decode --image IMAGE --out SOURCEиrun --image IMAGE. Encode требует.lspx.pngдля одной страницы или.lspx-images.zipдля набора. Usage даёт код 2, validation или suffix — 1, I/O, resource или no-clobber publication — 3. - В командах Vouch с контекстом source выберите ровно одно:
--source RULEили--source-image IMAGE. Изображение читается в пределах image-bound и полностью доказывается до передачи восстановленных байтов в identity, policy, issuance, authentication, request binding, re-execution или gate. - Для pinned verify bundle, Native re-execution и gate флаг
--source-image IMAGEвсё равно требует отдельный--input INPUT. Unpinned bundle остаётся только аутентификацией и не достигает выполнения или grant.
Границы команд
| Команда | Читает | Пишет / не устанавливает |
|---|---|---|
| lispex [FILE|-] | байты исходника Lispex | канонический результат/stdout и диагностика; без квитанции |
| lispex fmt [--check|--write] [FILE|-] | корректный исходник Lispex в UTF-8 | форматированный исходник, тихий статус или безопасная замена файла; без выполнения |
| lispex receipt FILE | байты исходника | native execution receipt; не differential Vouch |
| lispex core-ir build --source S --out O | точные байты исходника | канонический разрешённый Core IR и отчёт для именованного файла; без выполнения и полномочий |
| lispex core-ir validate --ir IR | канонические байты Core IR | итог строгой проверки; без выполнения |
| lispex core-ir inspect --ir IR | канонические байты Core IR | читаемая разрешённая проекция и идентификаторы; отчёт не является исполняемым артефактом |
| lispex bytecode build --ir IR --out O | строгий канонический Core IR | канонические проверенные байты .lpxbc и итог для именованного файла; без выполнения и полномочий |
| lispex bytecode inspect --bytecode BC | канонический байткод | identity, размеры, требования, opcode, roots и покрытие source map; без выполнения |
| lispex bytecode validate --bytecode BC | канонический байткод | результат strict decode, verify и re-encode; без выполнения |
| lispex bytecode run --bytecode BC [--input I] | проверенный байткод и необязательный datum | stdout, предупреждения или диагностика VM; без полномочий Vouch |
| lispex bytecode run --engine topaz --topaz-vm ROOT --bytecode BC [--input I] | точный продукт Topaz, байткод и необязательный datum | ограниченное наблюдение Topaz; без discovery, fallback и Vouch |
| lispex run --backend rust --engine tree|vm FILE | исходник Лиспекса | выбранный Rust-движок; tree по умолчанию, без fallback VM |
| lispex compare-engines --receipt R FILE | исходник Лиспекса | точный отчёт сравнения tree/VM одной линии; без перезаписи и полномочий |
| lispex compare-vms --topaz-vm ROOT --receipt R FILE | исходник и точный продукт Topaz | неперезаписываемое сравнение Rust/Topaz; только differential evidence |
| lispex aot build --source S --topaz-compiler T --rust-tool-bin R --out O | точный исходник и точные абсолютные build tools | закрытый source-free Native-продукт; без перезаписи, fallback и полномочий Vouch |
| lispex aot inspect|validate --product P | абсолютный установленный AOT-продукт | строгий невыполняющий результат inventory и identity |
| lispex aot run --product P [--input I] [--json] | установленный продукт, необязательный datum, канонические лимиты u64 | прямое наблюдение executable; без компиляции, discovery, fallback и полномочий |
| lispex compare-routes --topaz-vm TVM --aot-product AOT --receipt R [--input I] SOURCE | один точный запрос исходника/входа и два точных установленных продукта Topaz | неперезаписываемая квитанция четырёх маршрутов; семантические/ресурсные оси, линии и fallback без повторов и Vouch |
| lispex vouch compiled build (--source S|--source-image IMG) --out A | точные байты исходника | канонический неперезаписываемый .lpxvca и JSON-итог; без аутентификации, выполнения и полномочий |
| lispex vouch compiled inspect --artifact A | канонический контейнер и встроенный проверенный байткод | итог целостности; выведение из исходника и выполнение не проверяются |
| lispex vouch compiled validate --artifact A (--source S|--source-image IMG) | контейнер и отдельно переданный точный исходник | точный результат source→Core IR→bytecode; без аутентификации, выполнения и полномочий |
| lispex vouch verify ... --reexecute --compiled-artifact A | аутентифицированный внешний закреплённый запрос и точно выведенный артефакт | csk.native-compiled-reexecution-report/v1; согласие tree/Meaning и проверенной VM, но не grant |
| lispex vouch gate ... --compiled-artifact A | то же живое compiled-свидетельство и требуемое решение | csk.native-compiled-gate-report/v1; локальный grant/отказ, отчёт не является capability |
| lispex diff-receipt --input I RULE | правило профиля и datum | csk.differential-receipt/v0; не подлинность |
| lispex verify RECEIPT | JSON квитанции и optional source | вердикт согласованности; не перезапускает политику |
| lispex issue-native ... | правило профиля, закреплённый ввод, профиль и handle локального PKCS#8-ключа | атомарные payload, конверт DSSE и отчёт выдачи; только нативный release-бинарник |
| lispex verify-native ... | конверт DSSE, политика доверия потребителя, исходник, ввод, профиль и ожидаемый контекст движка | отчёт аутентификации точного проверенного контекста; не доказательство identity, времени, развёртывания или корректности политики |
| lispex verify-bridge REPORT | отчёт Bridge и связанные артефакты | вердикт Bridge; внешний движок не запускается |
Частая ошибка
fmt не канонизирует значения литералов и не выполняет программу. Написание
2/4, 1.00, комментариев и pragma ;! сохраняется точно. Некорректный
исходник диагностируется до вывода в stdout или замены файла. Форматирование
доступно только в Native: расширение не переходит на npm, WASM или Песочницу.
Для команд Core IR код 0 означает успешную сборку или строгое чтение, а не выполнение правила. Ошибка использования даёт код 2, ошибка исходника или проверки — 1, превышение предела либо ошибка ввода-вывода и публикации — 3.
Для байткода код 0 означает успешные build, строгую проверку, inspection или выполнение. Некорректный Core IR, malformed bytecode, неверный ввод и обычная runtime-диагностика дают 1; ошибки использования, engine и resource — 2; I/O артефакта или ввода, превышение входного предела и ошибка публикации именованного выхода или отчёта — 3. Ошибка terminal при записи результата исполнения даёт 2. Artifact stdout содержит только байты, именованные выходы не перезаписываются, а байткод и ввод не могут одновременно читать stdin.
Для Topaz нужен абсолютный корень допущенного продукта macOS ARM64. Ошибки
identity, timeout, malformed result, resource и mismatch видимы без запуска
Rust/tree/LIL/LIT или другой Topaz. npm явно отклоняет core-ir, bytecode,
aot, compare-engines, compare-vms и compare-routes как Native-only, а
не принимает их за имена исходников.
Для vouch gate код 0 означает совпадение живого grant с требуемым решением; 10 — успешную аутентификацию без grant; 1 — отказ аутентификации; 2 — ошибку использования; 3 — ошибку I/O, выполнения или публикации отчёта. Отчёт является диагностическим выводом и не принимается как вход gate.
Для vouch compiled код 0 означает успешные build, канонический inspect или
проверку точного повторного выведения. Ошибка исходника, профиля, контейнера,
байткода или вывода даёт 1; дубликат, отсутствие, конфликт или неизвестный
флаг — 2 до работы с артефактом; ограниченный I/O и отказ неперезаписываемой
публикации — 3. Build не заменяет существующий файл. Inspect не проверяет
выведение из исходника: для восстановления используйте validate с точным
исходником. --compiled-artifact без --reexecute даёт usage 2.
Куда дальше
Держите эту страницу рядом при написании кода. За последовательным объяснением вернитесь к карте синтаксиса или соответствующей главе.
Байткод и Rust VM · Контракт Core IR · Выбор среды выполнения