Mensaje de error
En el mensaje, %s marca un valor que el motor completa cuando lanza el error.
La historia
El motor no arrancó porque hay más builtins declarados de los que caben. Te cuento la aritmética, que es corta. La ley de ejecución es un conjunto de contratos de tungsten, con un contrato por builtin. Pero cada builtin entra dos veces: una por su propio contrato y otra por su contrato de efecto. Un conjunto tiene un máximo de miembros, llamado W_MAX_CONTRACTS, así que el tope de builtins es la mitad de ese número. Ese cálculo está escrito una sola vez, para que el tope declarado y el real no se separen jamás. Cuando builtins.feml se pasa del tope, el motor no recorta la lista a escondidas, porque entonces diría que un builtin no existe cuando está declarado a plena vista. Prefiere negarse a nacer. El mensaje te dice el límite y el builtin en el que se alcanzó. La solución está del lado del motor: sube W_MAX_CONTRACTS en tungsten, o reparte la declaración en varios conjuntos de contratos. Un ejemplo: si el tope es de cien builtins y declaras ciento uno, el último dispara este rechazo. Memoriza esto: un tope se anuncia, no se disimula.
Texto del catálogo de errores del motor de Rush.
