Сборка без выполнения
Core IR представляет собой промежуточную форму, в которую переводится
программа до любого выполнения. Начните с файла исходника, например
refund-window.lspx.
lispex core-ir build \
--source refund-window.lspx \
--out refund-window.lpxirКоманда читает и нормализует точный исходник, разрешает имена в ячейки,
отмечает хвостовые вызовы, записывает захваты замыканий и создаёт байты
lispex.core-ir/v1 в единственном допустимом виде. Правило при этом не
вычисляется. JSON-отчёт содержит хэши исходника, Core IR и реестра примитивов,
семантический профиль и счётчики, удерживаемые в заданных пределах.
Путь назначения должен быть новым, и существующий артефакт не
перезаписывается. В конвейере - означает стандартный ввод или вывод.
cat refund-window.lspx |
lispex core-ir build --source - --out - >refund-window.lpxirС --out - stdout содержит только байты артефакта в этом единственном
допустимом виде, а диагностика остаётся в stderr.
Проверка перед хранением или сравнением
lispex core-ir validate --ir refund-window.lpxirПроверяются предел байтов, структура JSON, фиксированные идентификаторы schema/profile/registry, позиции исходника, разрешённые ссылки, захваты, хвостовые позиции, текст datum в заданном виде, порядок и точное повторное кодирование. Даже безобидное изменение пробелов или порядка полей отклоняется, потому что у одного смыслового артефакта есть только одно допустимое представление.
Просмотр разрешённого смысла
lispex core-ir inspect --ir refund-window.lpxirОтчёт показывает следующее.
source_sha256точных входных байтов исходникаcore_ir_sha256всего артефакта- числа globals, requirements, roots, nodes, bindings и functions
- разрешённые глобальные ячейки и исходные идентификаторы примитивов
- требуемые явные входы среды
- читаемые корни нормализованного Core с позициями исходника
В отчёте явно указаны execution: "not-run" и
authority: "integrity-only". Отчёт используется для ревью и
детерминированного сравнения, а артефакт .lpxir продолжается в компиляцию
байткода и исполнение.
Переход к проверенному байткоду
Сам Core IR остаётся невыполняемым. Когда Native должен вместо этого выполнять скомпилированный байткод, переведите строго проверенный артефакт в байткод.
lispex bytecode build \
--ir refund-window.lpxir \
--out refund-window.lpxbc
lispex bytecode validate --bytecode refund-window.lpxbcОтдельный lispex.bytecode/v1 имеет собственные двоичную идентичность,
проверяющий модуль, модель ресурсов и виртуальную машину Rust. Компилятор
использует артефакт .lpxir, а отчёт inspection остаётся читаемой проекцией.
Core IR и Meaning Graph различаются
lispex lower без параметра версии по-прежнему создаёт именной
csk.meaning-graph/v0, а diff-receipt сохраняет замороженный путь квитанции
v0. Явный lower --graph-version v1 проецирует проверенный Core IR в
разрешённый csk.meaning-graph/v1; eval-graph выбирает версию по тегу, а
meaning-diff создаёт csk.meaning-differential-report/v1. Core IR
остаётся единственным источником разрешённых ячеек, захватов и хвостовых
позиций. Проекция прямо сохраняет эти идентификаторы. В v1.19 команды Meaning
v1 доступны в Native, а Ваучер продолжает процесс compiled artifact.
Выбор продукта
Команды Core IR и байткода доступны в Native. npm, WebAssembly и Песочница предоставляют документированные поверхности вычисления source, изображений, package API и проверки Ваучера.
Роли продуктов
Совпавший хэш и допустимый артефакт устанавливают целостность канонического Core IR. Подписанный конверт идентифицирует издателя, политика получателя записывает доверие, привязка запроса выбирает source и input, повторное выполнение наблюдает текущий результат, а шлюз Ваучера записывает требуемое локальное решение.
Куда дальше
Точный формат описан в справочнике контракта, а автоматизацию и коды завершения описывает справочник CLI.
Запуск проверенного байткода · Контракт Core IR · Native CLI