Интеграция проходит через явно обозначенную границу сборки или создания артефакта, а не добавляет второй синтаксис внутрь 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