38 lines
1.5 KiB
Markdown
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`
|
|
|