RX0034

Domaine: Moteur

Message d'erreur

le builtin %s ne déclare aucun effet sur le tas (%s)

Dans le message, %s marque une valeur que le moteur remplit au moment où il lève l'erreur.

L'histoire

Le moteur refuse de démarrer parce qu'un builtin n'a pas dit ce qu'il a le droit de faire au tas. Voyons pourquoi ce silence compte. Autrefois, un builtin recevait des valeurs et en rendait une, sans pouvoir toucher la mémoire du moteur : l'absence de déclaration disait la vérité. Mais depuis que les builtins ont accès aux portes du fedex, cette absence devient un trou. Plus rien n'indique si ce builtin peut écrire, ni où, et le registre qui surveille chaque exécution n'a aucune règle déclarée pour juger ce que le builtin a fait. Le moteur pourrait supposer que le builtin n'écrit rien. Il refuse, parce qu'un effet par défaut est un effet que personne n'a déclaré, et l'intérêt de mettre l'effet dans l'algèbre, c'est que la portée d'un builtin fait partie de ce qu'il est. Le message nomme le builtin fautif. Pour réparer, ajoutez à sa ligne une déclaration d'effet, avec les mots pour chaque axe : ce qu'il lit, ce qu'il écrit, la partition et ce qu'il touche. Les mots admis sont listés dans effect.feml, et en ajouter un ne coûte aucune modification du code C.

Texte issu du catalogue d'erreurs du moteur Rush.