Meldung zurückgestellter Features
Zulässiges Erlang, das ein nicht implementiertes Feature braucht, schlägt mit genau einer expliziten Meldung fehl, die sich von gewöhnlichen Fehlern wegen ungültiger Eingabe unterscheidet. Ein unterstützter generischer Rückfall (zum Beispiel eine übersprungene Spezialisierung) ist still und kein Fehlschlag.
[pattern matching] notimpl: src/example.erl:12:5 [module="example"] [target="native"] [operation="match argument"]
Katalog
features.hpp vergibt stabile, nie wiederverwendete IDs und Diagnosenamen, mit Zuständigem und Status pro Eintrag. Einen Eintrag zurückziehen oder verfeinern, wenn sein Feature umgesetzt ist; seine ID bleibt reserviert.
| Zuständig | Wo gemeldet wird |
|---|---|
| Semantische Analyse des Compilers | Capability-Prüfungen über jede Funktion, auch ungenutzten Code |
| Lowering im Compiler | Defensive Abweisung an erreichten Operationen; verwirft bereitgestellte Artefakte |
| Treiber | -o/--output linkt positionale Eingaben oder ein Projektziel; Projekt-Builds linken jedes ausführbare Ziel zu seinem Manifest-output |
| Runtime-Dienste | Siehe zurückgestellte Runtime-Dienste |
Regeln für Meldungen
- Der gemeinsame Formatierer
lässt unbekannten Kontext weg, maskiert Steuerbytes als
\xHHund maskiert Anführungszeichen und Backslashes, sodass Kontext keine Zeilen einschleusen kann. UTF-8 bleibt erhalten. - Genau eine Meldung pro fehlgeschlagener Operation, unabhängig von
--verbose. - Compiler: reject_feature meldet den
ersten Fehlschlag eines Batches, hält den Fehlschlag fest, verwirft
bereitgestellte Ausgaben und markiert die Diagnose als
reported, damit Treiber sie nicht erneut ausgeben. - Runtime: FeatureFailure
meldet einmal pro Operation über eine geliehene Senke (null → stderr). Spätere
Aufrufe geben den festgehaltenen Status zurück. Fehler der Senke oder beim
Formatieren werden zu
diagnostic_failure; Ausnahmen werden abgefangen. - Aufrufer reichen den Fehlschlag weiter, ohne ihn erneut zu melden; ein Host sollte mit einem Exit-Code ungleich null enden und normal abbauen.
Clause