Clause
← Toute la documentation

Traduit de l'original anglais · a8c3f8f6 · 2026-10-17 · Lire en anglais

Signalement des fonctionnalités différées

Un code Erlang légal qui requiert une fonctionnalité non implémentée échoue avec un unique message explicite, distinct des erreurs ordinaires d'entrée invalide. Le repli générique pris en charge (par exemple une spécialisation sautée) est silencieux et n'est pas un échec.

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

Catalogue

features.hpp attribue des identifiants stables, jamais réutilisés, et des noms de diagnostic, avec un responsable et un état par entrée. Retirer ou affiner une entrée quand sa fonctionnalité arrive ; garder son identifiant réservé.

ResponsableOù il signale
Analyse sémantique du compilateurVérifications de capacité sur toutes les fonctions, y compris le code inutilisé
Abaissement (lowering) du compilateurRejet défensif aux opérations atteintes ; supprime les artefacts préparés
PiloteRien de différé : executable linking est implémenté (édition de liens)
Services du runtimeVoir services différés du runtime

Fonctionnalités différées du compilateur aujourd'hui, chacune couverte par codegen_placeholders :

FonctionnalitéExemple qui la signale
heap expressionsAffectations dans les comprehensions compr_assign ([Y || X <- L, Y = X])
dynamic callsUne fun builtin de apply (fun erlang:apply/2)
behavior-changing attributes-on_load, -nifs, options -compile non inertes, modules paramétrés (sous-ensemble accepté)

Règles des messages