RX0010

Dominio: Motor

Mensaje de error

types.feml declara más tipos de los que este motor puede materializar (límite %s, alcanzado en el tipo %s)

En el mensaje, %s marca un valor que el motor completa cuando lanza el error.

La historia

Tu motor se negó a nacer porque tienes demasiados tipos declarados. Parece una tontería, pero tiene su razón. La ley de tipos vive en una tabla estática con un tope fijo de filas. Ese tope es un hecho conocido, no una apuesta sobre cuánta memoria habrá. Cada tipo declarado se convierte en una pieza dentro de una única arena de memoria, y esa arena tiene un tamaño calculado. Cuando types.feml declara más tipos que el tope, el motor podría callarse y quedarse con los primeros. Pero entonces los tipos sobrantes desaparecerían sin avisar, y un tipo que desaparece es un tipo que no juzga: se colaría cualquier valor. Prefiere decirlo en voz alta y no arrancar. El mensaje trae dos datos: el límite y el tipo en el que se alcanzó. La solución está en el código del motor: sube la constante LAWMAKER_TYPE_MAX, en el archivo lawmaker.h, y recompila. Así el motor cabe con todos sus tipos. La enseñanza es simple: un límite que se rompe se anuncia, nunca se esconde.

Texto del catálogo de errores del motor de Rush.