Совместимость

Язык и совместимость

Использование спецификации, средств проверки, целей сборки, примеров и ограниченных свидетельств.

Различные компоненты Топаза отвечают за разные задачи. Смысл программы определяется языком, допустимость исходного файла проверяет инструментарий, а фактическое поведение подтверждают наблюдения в конкретной среде.

Какой источник отвечает на ваш вопрос?

ИсточникЧто он устанавливаетЧего он не устанавливает
Спецификация языка SPECКанонический синтаксис, типы, семантику и наблюдаемые границы языкаОтсутствие ошибок в реализации или поддержку каждой возможности всеми целями
Средство статической проверкиРазбор исходного кода, разрешение имён и типов, а также допустимость программы для выбранного примененияПоведение при выполнении, равенство результатов разных целей или корректность внешней программы
Интерпретатор и цели сборкиНепосредственное поведение или сформированный продукт для цели; неподдерживаемое поведение явно отклоняетсяИдентичность внутреннего устройства, одинаковую производительность или повсеместную поддержку возможностей
Канонические примерыЕдиный поддерживаемый способ записи или рабочий процесс с наблюдаемым результатомИсчерпывающее покрытие или допустимость синтаксиса, отсутствующего в спецификации
Тесты и отчёты о проверкеНаблюдения для указанных входных данных, инструментария, сред, профилей и ограниченийФормальную верификацию, полное равенство реализаций или отсутствие расхождений вне проведённой проверки

Практический порядок проверки

  1. Выберите нужную форму в текущем справочнике по языку и канонических примерах.
  2. Выполните topaz check, чтобы найти ошибки синтаксиса, имён, типов и выбранного профиля.
  3. Запустите программу и тесты. Зафиксируйте вывод, диагностику, изменения файлов и код завершения.
  4. Соберите нужную цель и проверьте её документированные ограничения. Цель должна явно завершаться ошибкой, если не может сохранить требуемое поведение.
  5. При чтении результатов теста или отчёта о проверке учитывайте точные входные данные, среду и пределы проверки.

Стандартная последовательность команд:

BASH
topaz check main.tpz
topaz run main.tpz
topaz build main.tpz --out-dir build

Сравнение свидетельств компилятора

Канонические наблюдения позволяют сравнивать зафиксированные границы двух запусков, не распространяя утверждение за пределы выбранных свидетельств. semantic сравнивает по порядку набор исходных файлов, этапы компилятора, диагностику и результат. generated-source — точный созданный код Rust. provenance — идентичность производителя. native-binary — точные байты исполняемых файлов для одной цели. Равенство одного слоя не означает равенства другого, а успешный прогон рабочей нагрузки является ограниченным свидетельством, но не доказательством эквивалентности всего языка.

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