Текущее руководство описывает язык Topaz, на котором следует писать сегодня. Примеры используют ту же грамматику, которую принимает компилятор, а неподдерживаемые формы завершаются понятной ошибкой.
Определение языка
Справочник языка определяет синтаксис, типы, порядок вычисления, ошибки, модули и стандартную библиотеку. Метаданные covers помогают авторам синхронизировать страницы, но читателю не нужны внутренние документы разработки, чтобы понять язык.
Проверка программы
Используйте topaz check для статической проверки и topaz run для непосредственного выполнения. Для развёртывания соберите Rust-, Python- или web-цель, описанную для вашей среды.
Совместимость целей сборки
Поддерживаемые цели сравниваются с непосредственным выполнением для тех возможностей языка, которые они принимают. Если цель не может сохранить поведение функции, она должна явно отклонить сборку. Актуальный список целей и ограничений находится на странице Состояние инструментария.
Свидетельства интеграции Lispex
Репозиторий также использует интерпретатор Lispex, написанный на Topaz, как требовательную программу для сравнения целей. Это свидетельства интеграции, а не отдельный продукт Topaz или выпуск языка.
Проверки этапов реализации
| Граница реализации | Свидетельства выполнения и replay | Отклонённые мутации checker |
|---|---|---|
| Лексическая, числовая и хвостовая machine; 100 000 шагов self-, mutual- и apply-рекурсии с максимальной глубиной continuation 3, 3 и 4 | 66 случаев, 396 выполнений, 198 replay-проверок, 66 совпадений трёх hosts | 17 классов |
| Единая передача управления | 26 случаев, 156 выполнений, 78 replay-проверок, 26 совпадений трёх hosts | 23 класса |
| Версионированная основа primitives и общий dispatcher guest-вызовов | 40 случаев, 240 выполнений, 120 replay-проверок, 40 совпадений трёх hosts, 200 сравнений профилей | 32 класса |
| Независимые raw-byte UTF-8 reader и normalizer с ограниченным явным стеком | 64 случая, 384 выполнения, 192 replay-проверки, 64 совпадения трёх hosts, 192 проверки projection, 320 сравнений профилей | 66 классов: 46 result и 20 projection |
| Source-only путь backend без kernel producer и fallback к host apply/eval/control | 144 случая, 864 выполнения, 432 replay-проверки, 144 совпадения трёх hosts, 720 сравнений профилей | 49 классов |
Это поэтапные поверхности реализации; их количества случаев не складываются в более крупный denominator соответствия языка.
| Измеренная поверхность | Точный инвентарь | Записанный результат |
|---|---|---|
| Полная трёххостовая конструкция LIT | 144 случая для интерпретатора, generated Rust и generated Python | 864 свежих выполнения, 432 replay-проверки, 144 полных побайтных совпадения трёх hosts и ноль host fallback |
| Четырёххостовая запись интеграции LIT | Один канонический исходник для интерпретатора, generated Rust, generated Python и Web | Внутренние свидетельства фиксируют ограниченную четырёххостовую поверхность проверки |
| Граница primitive capabilities | 205 строк | Поддержаны 84 строки, включая 31 детерминированную delegation и 53 реализации machine; 121 завершается явно; поддержаны шесть из 18 guest-calling |
| Общее наблюдение Lispex v1.5 | Rust, LIL и один установленный маршрут LIT на 144 случаях | 432 выполнения; 59 совпадений всех семейств; 253 совпадения пар и 179 расхождений; Rust/LIL 61/83, Rust/LIT 65/79 и LIL/LIT 127/17 |
Четыре маршрута Topaz — варианты host одного канонического исходника LIT, а не независимые реализации, и независимость исходного кода LIT не заявляется. Общее наблюдение ограничено заявленными случаями и сохраняет измеренные расхождения; оно не устанавливает семантическую эквивалентность всего языка. Интеграционная запись остаётся внутренним свидетельством и не является публичным бэкендом Topaz.
Границы версий
Руководство следует последней языковой политике. Номер версии указывается там, где от него зависят установка, пакеты, создаваемые файлы или миграция. Подробные тематические руководства доступны в Классике.
Основные команды
topaz check main.tpz
topaz run main.tpz
topaz build main.tpz --out-dir build