Фиксированные идентификаторы
| Ось | Идентификатор |
|---|---|
| схема артефакта | lispex.core-ir/v1 |
| семантический профиль | lispex-profile-1.5 |
| реестр примитивов | lispex.primitive-registry/v1 |
| модель стоимости | lispex.core-ir-cost/v1 |
| семейство производителя | lispex-rust-core-ir/v1 |
| домен хэша артефакта | lispex/core-ir-hash/v1 |
| домен хэша реестра | lispex/primitive-registry-hash/v1 |
Реестр назначает каждому из 205 исполняемых встроенных имён стабильный числовой ID. Скрытый intrinsic нормализатора ссылается прямо на ID примитива. Видимый в исходнике builtin остаётся обычной изменяемой глобальной ячейкой, изначально содержащей этот ID, поэтому затенение и переопределение верхнего уровня сохраняют нынешний смысл.
От исходника к разрешённому смыслу
точные байты исходника
→ reader
→ гигиенически нормализованный Core
→ разрешение bindings и closures
→ канонические байты Core IRАртефакт удаляет синтаксический сахар и записывает:
- идентификаторы лексических и глобальных ячеек вместо поиска по имени;
- фиксированные и rest-параметры,
let,letrec, внутренние определения и forwarding-ячейки, активируемые динамическим определением; - общие изменяемые захваты замыканий, включая транзитивные;
- обычные и хвостовые вызовы без повторного вывода хвостовой позиции;
- контексты нуля, одного и нескольких значений;
- границы guard, исключений, continuations и dynamic-wind;
- канонические literal datum и позиции исходника с единицы;
- явные требования к входам среды;
- идентификаторы реестра примитивов и модели стоимости.
Аудиторская проекция обязана точно восстановить байты нормализованного Canonical Core до lowering. Это свидетельство сохранения внутри одной линии Rust, а не независимая реализация и не доказательство эквивалентности.
Одно допустимое кодирование
Артефакт — канонический UTF-8 JSON с фиксированным порядком полей, тегированными массивами, минимальными неотрицательными десятичными числами, точными строками Unicode и ровно одним завершающим LF. Globals, requirements, captures, bindings и functions подчиняются детерминированному порядку и непрерывности.
Строгий reader отклоняет повторные, отсутствующие, неожиданные или переставленные поля; альтернативную запись чисел и datum; неизвестные теги и ID; повреждённые ссылки, захваты и хвостовые позиции; неверные координаты; лишние байты и любой артефакт, который не перекодируется побайтно.
Пределы проверяются до неограниченной работы:
| Предел | Максимум |
|---|---|
| входной исходник | 4 MiB |
| артефакт Core IR | 16 MiB |
| узлы выражений | 100 000 |
| bindings | 100 000 |
| functions | 100 000 |
| globals | 100 000 |
| структурная глубина | 1 024 |
source_sha256 — существующий разделённый доменом идентификатор точных байтов
исходника. core_ir_sha256 — разделённый доменом идентификатор полного
канонического артефакта. Их нельзя заменять обычным хэшем файла или хэшем
удобного для чтения inspection JSON.
Отчёты команд Native
core-ir buildпри записи именованного артефакта выдаётlispex.core-ir-build/v1; с--out -выдаются только байты артефакта.core-ir validateпосле строгого чтения и повторного кодирования выдаётlispex.core-ir-validation/v1.core-ir inspectвыдаётlispex.core-ir-inspection/v1с идентификаторами, счётчиками, globals, requirements и читаемыми нормализованными корнями.- Ошибка использования завершается кодом 2, ошибка исходника или проверки — кодом 1, превышение предела либо ошибка ввода-вывода и публикации — кодом 3.
Все три команды доступны только в Native и ничего не исполняют. npm, открытый WASM и Песочница не предоставляют reader или команд Core IR.
Сосуществование с Meaning Graph
Core IR — не новое имя csk.meaning-graph/v0. Meaning Graph остаётся
именным форматом проверяемого подмножества для lower, eval-graph и
diff-receipt. Core IR охватывает весь текущий нормализованный профиль и
содержит разрешённые ячейки и сведения о замыканиях. Существующие байты, хэши,
квитанции и утверждения Meaning Graph не меняются.
Граница полномочий
Core IR — материал компиляции класса integrity-only. Канонические байты,
успешное чтение, inspection-отчёт или совпавший хэш не устанавливают авторство,
происхождение, доверие, свежесть, намерение запроса, выполнение, правильность
или grant решения. Команды Core IR не входят в Vouch, а отчёт не может
повысить себя до свидетельства Vouch или полномочия gate.
Куда дальше
Короткий процесс команд описан в руководстве, а поверхности продукта сравниваются на странице сред выполнения.
Сборка и проверка Core IR · Среды выполнения и интерпретаторы