--- id: AGD-0065 ticket: multi-frontend-pvm-neutrality title: Neutralidade da PVM e identificacao PBX independente de PBS status: open created: 2026-07-15 resolved: decision: tags: [vm-arch, runtime, pvm, pbx, compiler, multi-frontend] --- # Agenda - Manter a PVM neutra ## Objetivo Domain owner: `vm-arch`, com impacto em `compiler/general`. Garantir que a PVM conheca apenas PBX/IRVM e conceitos runtime neutros, incluindo identificacao correta do formato como `PBX`/`PBX\0`, nao `PBS`. ## Contexto atual O documento e focado no Studio, mas runtime neutrality e uma fronteira transversal. A PVM nao deve conhecer `PBS service`, `PBS struct`, `PBS optional` ou qualquer conceito de linguagem. ## Escopo - Auditar nomenclatura e imports runtime/PVM disponiveis no repo. - Verificar magic/header de PBX quando o codigo estiver no workspace. - Confirmar que linguagem e convertida antes da execucao. ## Fora de escopo - Modificar a PVM se o acoplamento estiver apenas no Studio ou compiler. - Alterar ISA sem necessidade. - Adicionar suporte a qualquer linguagem nova. ## Arquivos e componentes a inspecionar - `docs/vm-arch/ARCHITECTURE.md` - `docs/vm-arch/ISA_CORE.md` - `docs/specs/compiler/15. Bytecode and PBX Mapping Specification.md` - `prometeu-compiler/prometeu-build-pipeline/src/main/java/p/studio/compiler/backend/bytecode/...` - runtime/PVM em repositorio ou modulo relacionado, quando presente ## Alteracoes propostas Opcao A: auditoria documental e de codigo para nomes PBS indevidos em runtime/bytecode. Opcao B: corrigir imediatamente apenas identificacao `PBS` vs `PBX` se houver bug confirmado e isolado. Recomendacao inicial: auditar primeiro; corrigir somente caso a fronteira esteja claramente violada e a mudanca seja pequena. ## Estrategia de implementacao Buscar termos PBS no runtime, bytecode e specs VM; classificar ocorrencias validas de docs historicas vs erros de contrato. ## Testes necessarios - Teste de magic/header PBX. - Teste arquitetural impedindo imports PBS no runtime/PVM. - Teste de carregamento/verificacao de programa sem dependencia de linguagem. ## Criterios de aceitacao - PVM nao depende de conceitos PBS. - Formato executavel e tratado como PBX. - Qualquer correcao runtime necessaria fica separada de refactors Studio/compiler. ## Riscos - Confundir nomenclatura documental antiga com acoplamento real. - Expandir escopo para VM quando o problema pertence ao compiler. ## Decisoes que devem ser registradas - Lista de conceitos permitidos na PVM. - Politica de nomenclatura PBX/PBS. - Onde ficam testes de neutralidade runtime.