Песочница

Контракт вычислителя с управлением ресурсами

Точные профили вычислителя, модели работы и выделения, интерфейс WebAssembly без импортов, portable core, жизненный цикл и поставка.

Набор контрактов

КонтрактИдентификатор
профиль решенийlispex/r7rs-rule-embedded-core/1
модель работы и логического выделенияlispex-vm-meter/1
полный профиль языкаlispex/r7rs-rule-current-profile-bounded/1
полная модель работыlispex-full-vm-meter/1
кодек значенийlispex.embed-value/v1
transcriptlispex.embed-transcript/v1
интерфейс WebAssemblylispex.embed-wasm-abi/v1
portable corelispex.embed-receipt-core/v1

Манифест пакета идентифицирует provider по точному SHA-256 WebAssembly. Эта идентичность сопровождает байты в архивах выпуска и у потребителей.

Два компонента вычислителя

Компонент решений выполняет закрытый набор операций из своего пакета. Full component выполняет все 205 сгенерированных строк примитивов с нулём Deferred под идентичностью lispex-evaluator/rust-vm-current-profile/1. Full-артефакты используют конверт LPXFAR01, а артефакты решений — LPXART01.

Оба компонента сохраняют общие контракты v1 интерфейса, кодека значений, transcript и portable core. Native выбирает Full component явными командами embed full.

Интерфейс и жизненный цикл

Модуль имеет ноль импортов, одну memory с 18 начальными и 256 максимальными страницами и экспортирует функции allocation, deallocation, interface-version, prepare и evaluate со стандартными memory boundary globals. Запросы используют length-delimited big-endian fields и значения байтов, заданные вызывающей стороной.

Каждая операция создаёт новые Wasmtime Store, Instance, memory, allocator, guest heap, interner, cells, continuations, work counter, transcript и result buffer. Неизменяемый compiled Module можно разделять по точной идентичности WebAssembly.

Области ресурсов

Подготовка владеет raw_source_bytes, prepare_work, prepare_logical_allocation и syntax_depth. Вычисление владеет canonical_input_bytes, eval_work, eval_logical_allocation, semantic_frames, traversal_depth, output_bytes, diagnostic_bytes, transcript_bytes, transcript_events и result_bytes.

Работа использует версионированный детерминированный тариф. Логическое выделение использует единицы модели. Стоимость начисляется до эффекта, использует полный u64 и останавливается на первом резервировании сверх выбранного значения. Правильные хвостовые вызовы повторно используют текущее семантическое продолжение.

Идентичность и результаты

Portable core связывает точный отправленный исходник, канонический исходник, семантическое правило, канонический ввод, контракт ресурсов, запрос, артефакт вычислителя, вычисление, transcript и результат через length-delimited SHA-256 конструкцию lispex.evaluation-identity/v1.

Конечный классЗапись продукта
детерминированный семантический исходрезультат, transcript и portable core
детерминированный отказ запросаотказ, transcript и portable core
эксплуатационное прерываниеконечный статус движка
сбой движкаконечный статус движка и диагностика

Издатель может подписать готовые байты portable core в процессах обмена решениями и Ваучера.

Каталог решения Native

Процесс Native выглядит так:

rule run -> inspect -> verify -> replay

rule run принимает точный исходник и строгие JSON-файлы вместе с отдельными значениями подготовки и вычисления. Объекты JSON становятся records, массивы — vectors, строки, логические значения и exact integers сохраняют виды значений, а null становится пустым списком.

Завершённый запуск создаёт пять файлов в новом выходном каталоге.

ЧленРоль
prepared.lpxembedточный подготовленный артефакт правила
canonical-input.lpxvalueканонический ввод
result.lpxembedдетерминированный исход и привязка запроса
receipt-core.lpxreceiptportable core
summary.jsonчитаемая проекция канонических членов

inspect сводит каталог, verify проверяет набор членов и привязки байтов, а replay вычисляет записанный запрос в новом экземпляре и сопоставляет результат и portable core.

Поставка и владение продуктами

Native содержит точные байты provider. Выпуск также публикует пакет WebAssembly, манифест, vectors, материалы verifier, состав программного обеспечения, dependency dispositions, safety evidence и append-only записи release DAG. Сохранённые байты provider поддерживают чтение исторических квитанций.

Хост-приложение владеет хранением исходника, сетевым доступом, деловой политикой, актуальностью, предотвращением повторного использования и внешними действиями. Обмен решениями владеет конвертами издателя и политикой получателя. Ваучер владеет подписанным свидетельством и локальным шлюзом решения. Компоненты Топаза сохраняют свои идентификаторы compiler и admission.

Куда дальше

Процесс Native описан в руководстве Встраивание Лиспекса.

Контракт вычислителя с управлением ресурсами · Лиспекс