Найдите команду для своей задачи и по диагностике определите, какой файл нужно исправить. В каждом разделе указано, что меняется после успешного выполнения.
Установите topaz по руководству Первая программа. Команды для отдельного файла используют его first-program.tpz. Команды пакета выполняйте в готовом проекте study-plan из Первого приложения.
Отформатируйте код перед проверкой
topaz fmt --check --root .
topaz fmt --root .fmt --check сообщает о файлах, которые отличаются от формата Топаза, и завершается с ненулевым кодом. Файлы остаются без изменений. Вторая команда применяет форматирование. Повторите первую и убедитесь, что код завершения равен 0. При форматировании пакета пропускаются скопированные зависимости и результаты сборки.
Проверьте код без запуска
Выберите команду для своего входа. Первая и третья используют файл. Вторая читает точку входа пакета из topaz.toml.
topaz check first-program.tpz
topaz check --root . --locked
topaz check --format json first-program.tpzУспешная проверка завершается с кодом 0. Она не запускает пользовательский код и не создаёт результат сборки для развёртывания. Диагностика содержит место в исходном коде, стабильный код TPZ####, краткое описание и необходимые подробности. Для обработки диагностики инструментами используйте JSON.
topaz explain TPZ5021
topaz explain TPZ5021 --jsonЭти команды печатают объяснение TPZ5021 в текстовом формате или JSON, оставляя исходники без изменений. Исправьте первую ошибку и повторите check. Последующие ошибки могут быть её следствием.
При ошибке импорта проверьте путь файла, выбранный корень и экспортированное имя по разделу Модули и видимость. При несовпадении файла блокировки следуйте разделу Пакеты и распространение.
Проверьте профиль применения
Профиль применения добавляет правила для определённого вида кода. Выполните первую команду для отдельного файла или вторую внутри пакета учебного планировщика.
topaz check --profile agent-pack first-program.tpz
topaz check --profile test-profile tests/plan.tpz --root .| Конструкция | agent-pack | test-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 для исходников ядра компилятора описан в разделе Состояние инструментария.
Выполните тест и запустите программу
Внутри пакета учебного планировщика укажите тестовый файл, затем запустите приложение.
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.
Соберите результат для распространения
Первая команда собирает отдельный файл. Вторая собирает пакет учебного планировщика.
topaz build first-program.tpz --out-dir native-product
topaz build --root . --locked --release --out-dir productbuild создаёт выбранный каталог с результатом для запуска и файлом topaz-artifact.json. Нативная и Web-сборка используют инструментарий Rust для выбранной цели. Исходный код проверяется перед выполнением или созданием артефактов. Статическая ошибка останавливает команду до создания исполняемого артефакта.
Ошибки внешних инструментов также дают ненулевой код завершения. Исправьте указанную проблему инструментария. Если каталог вывода содержит другую цель, неверный манифест или изменённые созданные файлы, Топаз останавливается. Сохраните каталог для анализа и выберите новый пустой --out-dir.
Связанная документация
- Обзор инструментария описывает рабочий процесс и настройку редактора.
- Пакеты и распространение объясняет манифесты, зависимости и файлы блокировки.
- Состояние инструментария описывает компилятор self по умолчанию и сведения об установке.