prometeu-studio/docs/pbs/pull-requests/PR-032-backend-bytecode-module-serializer-baseline.md
2026-03-24 13:42:24 +00:00

38 lines
1.5 KiB
Markdown

# PR-032 - Backend BytecodeModule Serializer Baseline
## Briefing
Implementar a base de marshaling binario de `BytecodeModule` no compilador, alinhada ao contrato v1 de `const_pool`, `functions`, `code`, `exports`, `syscalls` e secao `SYSC` obrigatoria.
## Target
- Criar modelo interno de emissao de `BytecodeModule` no backend Java.
- Implementar serializacao little-endian com tabela de secoes deterministica.
- Garantir `SYSC` sempre presente no artefato pre-load, inclusive vazia.
## Method
- Introduzir pacote backend de bytecode com modelos equivalentes aos campos normativos da spec 15.
- Implementar serializer com layout de header e secoes deterministico.
- Introduzir erros deterministas de formato (`MARSHAL_FORMAT_*`) para falhas detectaveis antes da escrita final.
- Referenciar comportamento-alvo dos contratos existentes em `../runtime/crates/console/prometeu-bytecode/src/model.rs`.
## Acceptance Criteria
1. O backend serializa `BytecodeModule` sempre em little-endian.
2. A secao `SYSC` e sempre emitida.
3. Mesma entrada produz bytes identicos.
4. Erros de formato em dados invalidos sao deterministicos e estaveis.
## Tests
1. Teste unitario de serializacao minima (sem syscalls) com `SYSC` vazio presente.
2. Teste unitario de determinismo de bytes para mesma entrada.
3. Teste unitario de rejeicao `MARSHAL_FORMAT_*` para dados malformados detectaveis no emitter.
## Affected Documents
- `docs/general/specs/15. Bytecode and PBX Mapping Specification.md`
- `docs/general/specs/19. Verification and Safety Checks Specification.md`