Стабильная диагностика индексируется по фазе и коду, чтобы различать reader, нормализацию, runtime, предупреждения и ресурсы.
Текущие гарантии
- E300–E340 охватывают несвязанные имена, применение, арность, присваивание, пары/диапазоны/типы/числа, value contexts, letrec, user errors, исключения и устаревшие escapes.
- E1xx относится к reader/статической нормализации; W2xx/W3xx — к упорядоченным предупреждениям.
- ResourceLimit намеренно находится вне перехватываемых E3xx и сообщается отдельным outcome.
Стабильные коды runtime
| Код | Условие | Фаза / перехват |
|---|---|---|
| E300 / E303 | несвязанное чтение / set! | runtime / перехватывается |
| E301 / E302 | применение непроцедуры / арность | runtime / перехватывается |
| E310 / E311 / E312 | пара-список / диапазон / тип примитива | runtime / перехватывается |
| E313 / E314 | деление на ноль / не конечный результат | runtime / перехватывается |
| E320 / E321 | неверное число значений / чтение letrec | runtime / перехватывается |
| E330 / E331 / E332 | user error / uncaught raise / возврат handler | runtime / зависит от signal |
| E340 | escape continuation больше не активно | runtime / перехватываемая ошибка после потребления |
| ResourceLimit | объявленный предел рекурсии/ресурсов | resource / не перехватывается как E3xx |
Границы
- Коды являются стабильными контрактами только там, где они закреплены runtime SSOT.