Интеграция

Вычислитель Lispex и LIT

Запуск установленного ограниченного вычислителя Lispex и его отличие от свидетельств LIT, написанного на Топазе.

Эта страница описывает Топаз v5.17. Прежде чем считать её актуальной, сверьте поле version в /version.json со значением 5.17.

В Топазе есть две намеренно раздельные границы Lispex. Установленный ограниченный вычислитель выполняет один закрытый запрос через точные байты компонента. LIT — интерпретатор, написанный на Топазе и используемый для внутренней и интеграционной проверки общего происхождения. Ни один из них не является бэкендом Топаза и не означает эквивалентность языков целиком.

Какой путь выбрать

  • Для одного запроса к установленному ограниченному вычислителю используйте topaz lispex embed run.
  • Для выпуска приложения на Топазе выберите одну из поддерживаемых целей Топаза.
  • Чтобы понять назначение LIT, рассматривайте его как свидетельство совместной работы нескольких частей инструментария на крупной программе Lispex.
  • Чтобы пользоваться Lispex как продуктом, обратитесь к документации Lispex. Здесь описана только граница, наблюдаемая со стороны Топаза.

Выполните один ограниченный запрос

Подготовьте обычный файл правила Lispex, канонический вход lispex.embed-value/v1 и закрытый файл лимитов. Затем выберите новый каталог результата:

BASH
topaz lispex embed run \
  --source rule.lspx \
  --input value.lpxvalue \
  --limits limits.json \
  --output lispex-result

Документ лимитов должен иметь точную форму ниже. Значения можно уменьшать, но поля нельзя удалять или добавлять.

JSON
{
  "schema": "topaz.lispex-embed-limits/v1",
  "prepare": {
    "raw_source_bytes": 4096,
    "prepare_work": 1000000,
    "logical_allocation": 1000000,
    "syntax_depth": 64
  },
  "evaluate": {
    "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
  }
}

При успехе каталог lispex-result содержит result.lpxvalue и report.json. Детерминированная семантическая ошибка или исчерпание лимита оставляет только отчёт. При отказе запроса или ошибке движка каталог не создаётся. Точный компонент и политику без fallback можно проверить командой:

BASH
topaz lispex embed info --json

Команда не принимает выбор вычислителя, профиля, среды выполнения или маршрута. Она не ищет и не загружает компонент, не вызывает Топаз обратно и не переходит на LIT. Отчёт фиксирует выполнение и допуск продукта Топаза, но не является переносимой квитанцией поставщика.

Что означают свидетельства LIT

Одна и та же эталонная версия исходного кода LIT выполняется напрямую, через сгенерированные программы Rust и Python, а также в браузере. Такая требовательная программа помогает находить дефекты проверки, генерации кода, среды выполнения и взаимодействия с окружением.

Успешная проверка LIT означает, что указанная программа в пределах выбранных возможностей и маршрутов выполнилась ожидаемым образом. Неподдерживаемые возможности завершаются явной ошибкой. Все четыре маршрута происходят из одной линии исходного кода, поэтому их согласие помогает находить регрессии, но не является свидетельством четырёх независимых реализаций и не доказывает эквивалентность языков целиком.

Граница продукта

Ограниченный вычислитель входит в установленный бинарный файл Топаза, но допускает только документированные компонент, профиль, файловые входы, лимиты и контракт результата. Это не --target lispex, не универсальный инструментарий Lispex и не эквивалентность языков.

LIT не входит в установку Топаза и не является целью сборки; пути --target lit не существует. Его проверки не превращают любую программу Lispex в поддерживаемое приложение на Топазе.

Связанные разделы