Песочница

Запуск правила с профилем ресурсов

Выберите Native-вычислитель профиля решений или полного профиля, задайте значения подготовки и вычисления и изучите portable core, связывающий правило, ввод, ресурсы и результат.

Выберите вычислитель

lispex embed выполняет профиль решений lispex/r7rs-rule-embedded-core/1. lispex embed full выполняет все 205 строк примитивов в lispex/r7rs-rule-current-profile-bounded/1. Оба продукта создают новый экземпляр для каждой операции и разделяют ресурсы подготовки и вычисления.

Полный профиль использует ту же форму команд.

SH
lispex embed full prepare --source policy.lspx --limits prepare-limits.json --out policy.lpxfull
lispex embed full evaluate --prepared policy.lpxfull --input input.lpxvalue --limits evaluation-limits.json --out result.lpxfull
lispex embed full inspect --artifact result.lpxfull
lispex embed full verify --artifact result.lpxfull
lispex embed full replay --artifact result.lpxfull

1. Подготовьте правило

Создайте prepare-limits.json.

JSON
{
  "raw_source_bytes": 4096,
  "prepare_work": 1000000,
  "logical_allocation": 1000000,
  "syntax_depth": 64
}

Подготовьте исходный код.

SH
lispex embed prepare \
  --source policy.lspx \
  --limits prepare-limits.json \
  --out policy.lpxembed

Подготовка читает UTF-8, нормализует программу, строит и проверяет канонический байткод, проверяет выбранный профиль и записывает идентификаторы исходника, семантического правила, набора функций, байткода, вычислителя и ресурсов.

2. Выполните подготовленное правило

Ввод представляет собой одно каноническое значение lispex.embed-value/v1. Создайте evaluation-limits.json.

JSON
{
  "canonical_input_bytes": 4096,
  "eval_work": 1000000,
  "logical_allocation": 1000000,
  "semantic_frames": 1000,
  "traversal_depth": 256,
  "output_bytes": 1000000,
  "diagnostic_bytes": 1000000,
  "transcript_bytes": 1000000,
  "transcript_events": 100,
  "result_bytes": 1000000
}

Выполните подготовленный артефакт.

SH
lispex embed evaluate \
  --prepared policy.lpxembed \
  --input input.lpxvalue \
  --limits evaluation-limits.json \
  --out result.lpxembed

Результат хранит расход подготовки и вычисления раздельно. Portable core связывает правило, ввод, выбранные ресурсы, артефакт вычислителя, transcript и результат.

3. Изучите, проверьте и повторите

SH
lispex embed inspect --artifact result.lpxembed
lispex embed verify --artifact result.lpxembed
lispex embed replay --artifact result.lpxembed

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

Роли продуктов

Артефакт embed записывает детерминированные семантические исходы, отказы запросов и статус движка. Обмен решениями добавляет конверты издателя и политику получателя. Ваучер аутентифицирует подписанное свидетельство и вычисляет локальный шлюз решения. Хост-приложение владеет сетевым доступом и деловыми действиями.

Куда дальше

Точные идентификаторы и конечные классы описаны в контракте вычислителя с управлением ресурсами.

Запуск правила с профилем ресурсов · Лиспекс