rinha-compiler
rinha-compiler copied to clipboard
TCO - JIT
A resolução da #7 fez perceber que é possível trabalhar com tail call optimization: não preciso criar um novo frame para toda vez carregar aquilo, basta sobrescrever a base da stack com os valores passados pra função e chamar a nova função sem cadastrar uma nova continuation
Isso poderia ser fornecido pelo compilador, mas seria muito arriscado. Seria melhor uma abordagem em runtime para decidir se deve seguir como TCO ou não
Sugestão:
mudar as chamadas de funções de C e X para c e x na leitura do bytecode e sobrescrever a função original