Cópia estática
Copiado de docs/decisions/adp-011.md em https://github.com/poppy-team/aipo-lang (MIT). Fixado na revisão ce47c4e070404fc41722ccd8e2b7b808b99062a8, blob 5b28735fbe630b55cc46e987e5d0e8f28b4b567d. O repositório de origem permanece canônico; esta cópia é atualizada por um pull request de sincronização, não em tempo real.
Durante a fase P04 e início de P05, sete experimentos locais de micro-otimização falharam em produzir ganhos reprodutíveis e foram devidamente revertidos.
A auditoria arquitetural comprovou que o interpretador da Aipo opera com um piso estrutural de custo por opcode de ~100ns (~300 ciclos de CPU). Micro-otimizações locais são incapazes de transpor esse piso. Medições comparativas com Wren 0.4.0 e Luau 0.739 revelaram gaps estruturais em computação aritmética e despacho de métodos.
Compactação de Value para 16/24 Bytes:
Value de 48 bytes para 16 a 24 bytes, reduzindo a pressão de banda de memória em até 66% e quadruplicando a densidade de valores por cache line L1.Fusão de Invocação de Método (InvokeMethod):
expr.method(args...) como o opcode fundido InvokeMethod (em vez de GetField + Call), eliminando 200.000 alocações efêmeras de BoundMethod.Laço de Despacho com Variáveis Hoisted:
ip, stack_base, code).Superinstruções e Especialização:
Call0..Call4 e GetLocal0..GetLocal3 sem operandos extras.fail aceite qualquer valor ou instância de struct como payload da falha com inspeção tipada.match expr com desestruturação de estruturas e coleções.aipo-sema para elidir asserções dinâmicas redundantes.