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
79 lines
2.5 KiB
Markdown
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.
|
|
|