CLI применяет одинаковые разбор, разрешение модулей и статическую проверку к одному файлу и пакету. Команда выбирает действие после этого общего барьера.
Форматирование перед проверкой
В рецензировании и автоматизации используйте fmt --check. Команда сообщает
обо всех файлах, отличных от канонического форматирования, завершается
ненулевым кодом и ничего не записывает.
topaz fmt --check --root my-app
topaz fmt --root my-app
Вторая команда применяет форматирование; после неё повторите первую. В пакетном режиме пропускаются зависимости, скопированные в проект, и результаты сборки.
Проверка без запуска
topaz check main.tpz
topaz check --root my-app --locked
topaz check --format json main.tpz
Чистая проверка завершается с кодом 0. Диагностика содержит место в исходнике,
стабильный код TPZ####, краткое сообщение и нужные подробности. Режим JSON
выдаёт стабильные данные для инструментов. Пользовательский код не запускается,
продукт развёртывания не записывается.
topaz explain TPZ5021
topaz explain TPZ5021 --json
Исправьте первую диагностику и снова запустите check: последующие ошибки
могут быть её следствием. explain раскрывает известный код, но не меняет
исходник.
Тестирование и запуск
topaz test --root my-app --locked
topaz test tests/summary.tpz --root my-app --locked
topaz run --root my-app --locked
topaz run main.tpz -- arg1 arg2
test использует проверенную детерминированную тестовую среду. Неудачное
утверждение, статическая диагностика или ошибка среды выполнения дают
ненулевой код. Выбранный с --root тестовый файл сохраняет манифест, файл
блокировки, модули и зависимости пакета.
run выполняет проверенный командный вход в интерпретаторе. Аргументы после
-- передаются в main. Пакеты Web Application и HTTP используют для
разработки на адресе обратной петли команду topaz dev, потому что их
наблюдаемый продукт — браузерное приложение или сервис, а не команда.
Сборка одной цели поставки
topaz build main.tpz --out-dir native-product
topaz build --target python --root my-app --locked --out-dir python-product
topaz build --root my-app --locked --release --out-dir product
build сначала проверяет программу, затем записывает запрошенный управляемый
продукт. Для платформенной, браузерной и HTTP-сборки нужны соответствующие
внешние компоненты Rust; Python требуется при запуске Python-продукта.
Статическая ошибка останавливает создание артефакта. Ошибка внешнего
инструмента сообщается после основного этапа Топаза и также даёт ненулевой код.
Если каталог вывода содержит другую цель, неверный манифест артефакта или
изменённые управляемые байты, Топаз не угадывает владельца. Сохраните каталог
для анализа и выберите новый пустой --out-dir.
Границы пакета и машинного интерфейса
Если опустить входной файл и передать --root, используется точка входа из
topaz.toml. --locked требует соответствия текущего манифеста и локального
содержимого зависимостей файлу topaz.lock. Аргументы программы всегда идут
после --.
--unchecked — обходной путь для исследования компилятора, а не обычная
команда приложения. Он снимает статический барьер и не должен использоваться,
чтобы представить неудачную проверенную сборку успешной.