Инструменты и выполнение

CLI и диагностика

Выберите команды для файла или пакета, прочитайте диагностику и найдите, где исправить код, импорт или файл блокировки.

Найдите команду для своей задачи и по диагностике определите, какой файл нужно исправить. В каждом разделе указано, что меняется после успешного выполнения.

Установите topaz по руководству Первая программа. Команды для отдельного файла используют его first-program.tpz. Команды пакета выполняйте в готовом проекте study-plan из Первого приложения.

Отформатируйте код перед проверкой

BASH
topaz fmt --check --root .
topaz fmt --root .

fmt --check сообщает о файлах, которые отличаются от формата Топаза, и завершается с ненулевым кодом. Файлы остаются без изменений. Вторая команда применяет форматирование. Повторите первую и убедитесь, что код завершения равен 0. При форматировании пакета пропускаются скопированные зависимости и результаты сборки.

Проверьте код без запуска

Выберите команду для своего входа. Первая и третья используют файл. Вторая читает точку входа пакета из topaz.toml.

BASH
topaz check first-program.tpz
topaz check --root . --locked
topaz check --format json first-program.tpz

Успешная проверка завершается с кодом 0. Она не запускает пользовательский код и не создаёт результат сборки для развёртывания. Диагностика содержит место в исходном коде, стабильный код TPZ####, краткое описание и необходимые подробности. Для обработки диагностики инструментами используйте JSON.

BASH
topaz explain TPZ5021
topaz explain TPZ5021 --json

Эти команды печатают объяснение TPZ5021 в текстовом формате или JSON, оставляя исходники без изменений. Исправьте первую ошибку и повторите check. Последующие ошибки могут быть её следствием.

При ошибке импорта проверьте путь файла, выбранный корень и экспортированное имя по разделу Модули и видимость. При несовпадении файла блокировки следуйте разделу Пакеты и распространение.

Проверьте профиль применения

Профиль применения добавляет правила для определённого вида кода. Выполните первую команду для отдельного файла или вторую внутри пакета учебного планировщика.

BASH
topaz check --profile agent-pack first-program.tpz
topaz check --profile test-profile tests/plan.tpz --root .
Конструкцияagent-packtest-profile
Встроенная assert, включая ссылки на неё как на значениеОтклоняетсяДопускается
Импорт std.test и члены Test.*ОтклоняютсяОтклоняются
Композиция функций >>ОтклоняетсяОтклоняется
Собственная функция с именем assertПроверяется как код приложенияПроверяется как код приложения

Успешная проверка профиля завершается с кодом 0. При недопустимой конструкции выводится TPZ5801 с пометкой правила, например agent-pack/no-composition. Тест учебного планировщика использует встроенную assert и проходит test-profile.

При --format json стандартный поток ошибок (stderr) содержит объект topaz.profile-diagnostic/v1 для каждой диагностики. Стандартный поток вывода (stdout) содержит сводку topaz.profile-check/v1. Используйте --profile с check и синтаксисом текущего режима Топаза. Сочетание с --exports-json недопустимо.

Профиль Bootstrap для исходников ядра компилятора описан в разделе Состояние инструментария.

Выполните тест и запустите программу

Внутри пакета учебного планировщика укажите тестовый файл, затем запустите приложение.

BASH
topaz test tests/plan.tpz --root . --locked
topaz run --root . --locked

Успешный тест выводит test-ok. Программа печатает tasks=2, remaining=25 minutes. Команда test выполняет проверенный код в детерминированной тестовой среде. Неудачное утверждение, статическая ошибка или ошибка выполнения дают ненулевой код завершения. С --root выбранный тест использует манифест, файл блокировки, модули и зависимости пакета.

Без аргумента файла test --root . выбирает точку входа из манифеста. Чтобы выполнить конкретный тест, укажите его путь.

Команда run выполняет проверенную точку входа через интерпретатор. Аргументы программы указывайте после --, например topaz run --root . --locked -- arg1 arg2. Они поступают в массив аргументов main. Учебный планировщик не использует эти аргументы и по-прежнему печатает tasks=2, remaining=25 minutes.

Соберите результат для распространения

Первая команда собирает отдельный файл. Вторая собирает пакет учебного планировщика.

BASH
topaz build first-program.tpz --out-dir native-product
topaz build --root . --locked --release --out-dir product

build создаёт выбранный каталог с результатом для запуска и файлом topaz-artifact.json. Нативная и Web-сборка используют инструментарий Rust для выбранной цели. Исходный код проверяется перед выполнением или созданием артефактов. Статическая ошибка останавливает команду до создания исполняемого артефакта.

Ошибки внешних инструментов также дают ненулевой код завершения. Исправьте указанную проблему инструментария. Если каталог вывода содержит другую цель, неверный манифест или изменённые созданные файлы, Топаз останавливается. Сохраните каталог для анализа и выберите новый пустой --out-dir.

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