RX0034

Domínio: Motor

Mensagem de erro

o builtin %s não declara efeito sobre o heap (%s)

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

A história

O motor não nasceu porque um builtin esqueceu de declarar o que faz com o heap. Vamos entender o problema. Antigamente, um builtin só recebia valores já julgados e devolvia um resultado, e não conseguia tocar no heap de jeito nenhum. Então o silêncio sobre efeito era honesto. Agora os builtins têm acesso às portas do fedex, e o silêncio virou uma lacuna: ninguém sabe se este builtin pode escrever, e o registro do motor não teria o que comparar com a execução. A mensagem informa qual builtin e dá o detalhe. Por que não assumir um efeito padrão de não escrever nada? Porque um efeito assumido é um efeito que ninguém declarou, e o ponto de pôr o efeito na álgebra é que o alcance declarado faz parte do que a linha é. A correção: adicione na linha do builtin a declaração builtin ponto effect, com quatro palavras: o que lê, o que escreve, a partição e o que toca. As palavras válidas de cada eixo estão no effect.feml, e acrescentar uma palavra nova não exige nenhuma linha de C. Reconstrua e o motor sabe o alcance.

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