Topazdocs
Интеграция

Границы интеграции

Чёткая граница между модулями Topaz, созданными артефактами, внешними инструментами и преобразованием исходного кода.

Интеграция проходит через явно обозначенную границу сборки или создания артефакта, а не добавляет второй синтаксис внутрь Topaz. Канонический исходный код сохраняет обычные импорты, выражения, типы, шаблоны и диагностику Topaz. Код другого языка допустим в явно отмеченном артефакте среды выполнения или примере преобразования, но не определяет грамматику Topaz.

Контракт и компоненты

Интеграция Topaz проходит на границе модулей, созданных артефактов или преобразования исходного кода. Инструменты могут создавать Rust, Python, JavaScript, TypeScript и WASM, но синтаксис этих языков не становится допустимым синтаксисом Topaz.

Рабочий процесс

Оставляйте прикладную логику в проверяемых модулях Topaz. Переходите границу через выбранную цель сборки, созданный ABI или отдельный преобразователь. Сторону Topaz проверяйте командами check и эталонным выполнением, а среду выполнения — её собственными средствами сборки и тестирования. Сравнивайте только заранее определённые общие наблюдаемые результаты.

Текущая поддержка

Сборщики целей, проверки пакетов и Web ABI, дифференциальные сценарии Python, ограниченный набор проверок LIT и снимки преобразований Lena Code проверяют обозначенные границы. Основные ошибки по-прежнему выдаются как диагностика Topaz; сообщения компилятора среды выполнения могут служить только дополнительной информацией. Каноническая документация проверяет блоки кода Topaz на чужой и запрещённый синтаксис.

Границы и ограничения

В языке нет import rust, встроенных выражений Rust/Python/JavaScript, неявного ABI или автоматического преобразования владения. Импорт ради побочного эффекта и пути к внешним модулям также не поддерживаются. Внешние конвертеры публикуют собственный список языковых пар и график выпусков.

Справочник команд

topaz check --root . src/main.tpz
topaz build --root . src/main.tpz --out-dir build

Связанная документация