prometeu-studio/discussion/workflow/agendas/AGD-0065-multi-frontend-pvm-neutrality.md
bQUARKz 35b65bb524
All checks were successful
JaCoCo Coverage #### Project Overview No changes detected, that affect the code coverage. * Line Coverage: 61.37% (17351/28272) * Branch Coverage: 52.31% (6722/12850) * Lines of Code: 28272 * Cyclomatic Complexity: 11325 #### Quality Gates Summary Output truncated.
Test / Build skipped: 15, passed: 601
Intrepid/Prometeu/Studio/pipeline/head This commit looks good
multi FE adjustment agendas
2026-07-15 07:58:23 +01:00

79 lines
2.5 KiB
Markdown

---
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.