Cópia estática
Copiado de docs/decisions/adp-013.md em https://github.com/poppy-team/aipo-lang (MIT). Fixado na revisão ce47c4e070404fc41722ccd8e2b7b808b99062a8, blob 5685d87ff203932dad1461d354dda41607566458. 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 o desenvolvimento da release v0.1.0 da linguagem Aipo, foram implementadas e medidas empiricamente otimizações profundas no interpretador de bytecode (P1 compactação de layout de Value, P2 despacho direto de métodos de structs, P4 superinstruções GetLocal0..7 e Call0..4, e E1 falhas estruturadas tipadas).
Apesar dos ganhos expressivos mensurados em benchmarks pareados (até -13,94% de CPU), a análise microarquitetural de hardware comprovou a existência de um piso de despacho físico de ~100ns por opcode no interpretador baseado em pilha (Stack VM):
match opcode) em Rust seguro provoca uma taxa de erro de previsão de salto (branch misprediction) superior a 60%, custando 15 a 20 ciclos de clock de penalidade pura por instrução executada (pipeline stall).aipo-vm), com a C ABI (aipo-c-abi), o test runner (aipo test) e todos os 506+ testes verdes, é formalmente congelada na branch legacy/v0.1.0-stack-vm e tagueada como v0.1.0-stack-vm-final..wasm padronizado, executado com performance nativa via JIT do Wasmtime (usando o backend Cranelift) em ambientes desktop/servidor, e executado nativamente em navegadores e runtimes JavaScript (Node.js, Deno, Bun, Cloudflare Workers).aipo-source (mapeamento de código, spans e localizações).aipo-diagnostics (códigos de erro, severidade e relatórios).aipo-lexer e aipo-syntax (tokens, parser e árvore sintática abstrata).aipo-hir e aipo-sema (checagem de tipos, escopos, contratos de interface e semântica).aipo-ir) aipo-ir é adaptado para gerar Structured Control Flow (block, loop, if ... else, br, br_if, br_table), eliminando saltos arbitrários em favor de uma representação compatível com o modelo formal do WebAssembly.aipo-wasm aipo-bytecode (formato proprietário .aibc) é sucedida pela crate aipo-wasm.aipo-wasm gera diretamente arquivos binários .wasm utilizando a biblioteca Rust pura e de alta performance wasm-encoder.aipo-host e WASI CapabilitySet, deny-by-default) mapeia-se de forma direta para a arquitetura de capacidades do WASI (WebAssembly System Interface) e do Wasm Component Model, garantindo isolamento criptográfico e segurança de execução..wasm funcionais executados via runtime Wasmtime integrado ao CLI.aipo-in-aipo), aproveitando os tipos de dados nativos (Bytes, List, Dict, Struct).aipo-compiler.wasm. A partir deste marco, o compilador torna-se auto-hospedado, verificável por determinismo estrito bit-a-bit (bit-for-bit identity check)..wasm roda identicamente no terminal, na web, em servidores e em engines nativas (como a Poppy)..wasm a partir da Aipo requer zero pontes C-ABI ou dependências de bibliotecas de baixo nível.aipo-js deixa de ser um transpilador de código-fonte complexo e torna-se um loader nativo de módulos Wasm.aipo-ir (Relooper/Stackifier).