Errors, Warnings, and Diagnostics

Reader, normalization, runtime, warning, and resource outcomes have distinct phases and deterministic channels.

At a glance

LISPEX
(guard (e (else (error-object-message e))) (car 1))

Result

OUTPUT
"car: expected a pair, got 1"

Current guarantees

  • Runtime errors use E3xx codes, stable templates, deterministic irritant rendering, and the enclosing call-site span.
  • Warnings are ordered observations; deprecated %, list-first, and list-rest emit their pinned W3xx warnings.
  • The first uncaught error aborts without a host stack trace; resource exhaustion remains outside catchable E3xx.

Boundaries

  • A warning is not stdout and must not be reordered or merged into a diagnostic.
  • Platform panic, blank crash, and nondeterministic host text are not valid guest diagnostics.