2.6 KiB
2.6 KiB
18.0. Backend VM Pipeline - Orchestration Agenda
Status: Active (Draft)
Purpose
Definir a ordem de fechamento arquitetural para o backend executável:
- contrato de entrada
IRBackendvindo do frontend, - lowering
IRBackend -> IRVM, - marshaling
IRVM -> bytecode/PBXexecutável no runtime.
Context
- O pipeline já prevê
LowerToVMPipelineStageeEmitBytecodePipelineStage, mas ambos estão vazios. - O runtime já impõe contratos concretos de loader/verifier/VM que precisam ser respeitados pelo backend.
- Nesta rodada,
packerestá explicitamente fora de escopo.
Decisions to Produce
- Ordem oficial de workshops e critérios de saída por etapa.
- Fronteiras normativas entre:
- frontend (
IRBackend), - backend (
IRVM+ emissão), - runtime (loader/verifier/execução).
- frontend (
- Critérios de “backend integration-ready” para um artefato bytecode mínimo rodar no runtime.
- Estratégia de fechamento em docs (
agendas -> decisions -> specs -> PR).
Core Questions
- Quais decisões precisam ser fechadas antes de qualquer implementação de
LowerToVM? - Quais invariantes são obrigatórias na fronteira
IRBackendpara evitar ambiguidade no backend? - Quais invariantes são obrigatórias na fronteira
IRVMpara emissão determinística? - Quais verificações devem ocorrer no compilador antes de delegar ao loader/verifier do runtime?
- Como organizar testes de integração sem introduzir dependência de packer?
Expected Spec Material
- Nova spec de contrato
IRBackend -> IRVM(backend-facing). - Nova spec de contrato de
IRVM(shape, invariantes, diagnóstico). - Atualização de
docs/general/specs/15. Bytecode and PBX Mapping Specification.md. - Atualização de
docs/general/specs/19. Verification and Safety Checks Specification.md.
Non-Goals
- Definir formato final de packer/cartucho.
- Redesenhar ISA do runtime.
- Redesenhar loader/verifier do runtime.
- Fechar otimizações de backend (peephole, SSA, etc.).
Inputs
prometeu-compiler/prometeu-build-pipeline/src/main/java/p/studio/compiler/workspaces/stages/LowerToVMPipelineStage.javaprometeu-compiler/prometeu-build-pipeline/src/main/java/p/studio/compiler/workspaces/stages/EmitBytecodePipelineStage.javadocs/pbs/specs/13. Lowering IRBackend Specification.mddocs/general/specs/15. Bytecode and PBX Mapping Specification.mddocs/pbs/specs/6.2. Host ABI Binding and Loader Resolution Specification.md../runtime/docs/runtime/virtual-machine/ISA_CORE.md../runtime/crates/console/prometeu-vm/src/virtual_machine/loader.rs../runtime/crates/console/prometeu-vm/src/verifier.rs