RX0030

Domaine: Moteur

Message d'erreur

le vecteur de charge utile de %s a atteint son plafond (%s)

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

L'histoire

Un verbe a reçu plus d'opérandes que sa cellule ne peut en porter, et le moteur l'a refusé net. Voyons pourquoi il ne coupe pas simplement l'excédent. Une cellule de l'ExecHeap a un nombre fixe d'emplacements pour ses opérandes, et chaque emplacement a une taille maximale. Quand on dépasse, le moteur pourrait abandonner les derniers opérandes et continuer. Mais regardez ce qui arriverait : le verbe répondrait quand même, avec assurance, mais à partir de mauvais opérandes, et rien ne signalerait le problème. Imaginez une addition où l'on aurait oublié trois nombres : le total s'affiche, il a l'air normal, et il est faux. C'est exactement le mode d'échec que le refus de type de paramètre tue un cran plus haut : une réponse fausse qui prétend réussir est pire qu'un refus, car rien en aval ne peut la détecter. Le message nomme la cellule et le plafond atteint. Si votre calcul a vraiment besoin de plus d'opérandes, relevez la constante RUSH_RUNHEAP_OPERAND_MAX dans le fichier run.h. Sinon, regroupez vos valeurs dans un conteneur, et passez-en la référence. Un refus clair vaut mieux qu'un total faux.

Texte issu du catalogue d'erreurs du moteur Rush.