OxL Справочник OxL
РусскийEnglish

0.1 Нормативные термины

ТерминЗначение
ДОЛЖЕН / ОБЯЗАНтребование; нарушение — несоответствие стандарту
НЕ ДОЛЖЕНзапрет
СЛЕДУЕТрекомендация; отступление допустимо при обосновании
МОЖЕТразрешение, поведение необязательно
ошибка компиляцииреализация ОБЯЗАНА отвергнуть программу с диагностикой
предупреждениереализация ДОЛЖНА выдать диагностику и МОЖЕТ продолжить
паниканевосстановимый сбой задачи (§6.6)
определяется реализациейреализация ДОЛЖНА документировать выбор

Неопределённого поведения в безопасном коде нет. Оно возможно только внутри блоков unsafe и в FFI (§16).

Пункты «определяется реализацией». Каждый такой пункт помечен в тексте примечанием Определяется реализацией со стабильным якорем impl-… и ссылкой на решение (D-id) и запись реестра расхождений (DIV, docs/divergences.md); все пункты собраны в приложении D вместе с выбором данной реализации — это и есть документация, которой требует таблица выше. Различаются два случая:

  • поведение определяется реализацией — Стандарт допускает несколько вариантов, реализация выбирает один и документирует его (например, правило проверки заимствований, §7.2);
  • необязательная возможность — часть Стандарта, которую реализация МОЖЕТ не поддерживать (например, QUIC, §13.1). Реализация ДОЛЖНА документировать, что она не поддерживает, и НЕ ДОЛЖНА подменять возможность другим поведением без сообщения. Программа, использующая неподдерживаемую возможность, не обязана компилироваться или запускаться на такой реализации.

См. также

Исходник: docs/spec/oxl-standard.md