RX0029

Domínio: Motor

Mensagem de erro

o ExecHeap recebeu o tipo que a resposta inerte deriva: %s

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

A história

O ExecHeap, a casa das execuções, recebeu um valor inerte e recusou. É o espelho exato da recusa do DataHeap. A regra de moradia é simples: um Noun, que é um valor, mora no DataHeap, e verbos e fluxos moram no ExecHeap. A porta de colocação do ExecHeap admite todo tipo que a resposta inerte não deriva. Então, se alguém oferece a ela o tipo inerte, é um valor tentando morar na casa das execuções. A mensagem traz o detalhe do tipo oferecido. O motor decide isso do mesmo jeito que na outra porta: ele refaz a pergunta única, executar isso produz um valor?, em vez de reconhecer uma palavra. Assim as duas casas dependem de um único critério e nunca de dois que possam discordar. Por que a recusa acontece em tempo de execução e não na compilação? Porque o tipo é lido do trinity.feml no nascimento, e nenhum compilador sabe de que tipo é um ponteiro. Se você constrói o motor, descubra por que um valor foi enviado ao ExecHeap e mande-o ao DataHeap, que é a casa dele.

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