RX0010

Domínio: Motor

Mensagem de erro

types.feml declara mais tipos do que este motor consegue materializar (limite %s, atingido no tipo %s)

Na mensagem, %s marca um valor que o motor preenche quando levanta o erro.

A história

O motor não nasceu porque o arquivo de tipos ficou grande demais. Aqui está o que acontece. A lei de tipos é uma tabela estática, com um número máximo de linhas que está declarado, não improvisado. Cada tipo ganha sua peça, e todas as peças moram numa única arena de memória fixa do lawmaker. Isso é bom: o tamanho do motor é um fato conhecido, não uma esperança. Desta vez, o types.feml declarou mais tipos do que a tabela comporta. A mensagem diz qual é o limite e em qual tipo ele foi atingido. Agora, por que o motor recusa nascer em vez de simplesmente ignorar os tipos que sobraram? Porque um vocabulário cortado esconde um perigo: um tipo que ficou de fora é um parâmetro que não consegue ser julgado. É como uma estante com dez prateleiras e onze caixas: a décima primeira não pode ficar largada no chão, fingindo que está guardada. A correção é aumentar o teto. Abra src/engine/lawmaker/lawmaker.h, suba o valor de LAWMAKER_TYPE_MAX, reconstrua, e todos os tipos terão seu lugar.

Texto do catálogo de erros do motor do Rush.