Clause
← Toda la documentación

Traducido del original en inglés · a8c3f8f6 · 2026-10-17 · Leer en inglés

Notificación de características diferidas

El Erlang legal que necesita una característica no implementada falla con un único mensaje explícito, distinto de los errores ordinarios de entrada no válida. La alternativa genérica admitida (por ejemplo, una especialización omitida) es silenciosa y no constituye un fallo.

[pattern matching] notimpl: src/example.erl:12:5 [module="example"] [target="native"] [operation="match argument"]

Catálogo

features.hpp asigna identificadores estables y nunca reutilizados y nombres de diagnóstico, con responsable y estado por entrada. Una entrada se retira o se refina cuando llega su característica; su identificador queda reservado.

ResponsableDónde informa
Análisis semántico del compiladorComprobaciones de capacidad sobre todas las funciones, incluido el código no usado
Lowering del compiladorRechazo defensivo en las operaciones alcanzadas; descarta los artefactos preparados
DriverNada diferido: executable linking está implementado (enlazado)
Servicios del runtimeVéanse los servicios diferidos del runtime

Características diferidas del compilador hoy, cada una cubierta por codegen_placeholders:

CaracterísticaEjemplo que la notifica
heap expressionsAsignaciones en comprehensions compr_assign ([Y || X <- L, Y = X])
dynamic callsUn fun builtin de apply (fun erlang:apply/2)
behavior-changing attributes-on_load, -nifs, opciones -compile no inertes, módulos parametrizados (subconjunto aceptado)

Reglas de los mensajes