2.2 KiB
2.2 KiB
PR-09.2 - PBS Frontend Lowering: ModuleId-Only (No moduleKey in lowering surfaces)
Briefing
Mesmo apos o contrato aceitar ModuleId, o lowering PBS ainda trafega moduleKey em estruturas internas (ImportedCallableSurface, indices auxiliares e fixtures).
Motivation
Dor atual que esta PR resolve
- FE ainda acopla resolucao de callable/import a string de modulo.
- A remocao de
moduleKeyno contrato quebra se FE nao migrar totalmente. - Risco de divergencia entre metadado textual e identidade internada.
Target
Migrar lowering PBS para ModuleId como identidade unica:
ImportedCallableSurfacesemmoduleKey,- callsite/callable lookup por ids internados,
- diagnosticos e logs usando renderizacao derivada de
modulePoolapenas quando necessario.
Dependencies
Prerequisito direto:
PR-09.1
Scope
- Atualizar
PbsFrontendCompilerpara operar comModuleIdnas superfices de import/callable. - Atualizar
PBSFrontendPhaseServicepara fornecer metadados densos sem string estrutural. - Atualizar testes PBS e artifacts golden.
Non-Goals
- Nao alterar parser PBS.
- Nao alterar admission de host capabilities.
Method
O que deve ser feito explicitamente
- Remover
moduleKeydeImportedCallableSurface. - Em
collect/lower callsites, propagarcalleeModuleIdvia assinatura internada. - Ajustar renderizacao de debug para usar
modulePoolquando mostrar modulo. - Atualizar golden printer para mostrar
moduleId(e opcionalmente nome renderizado derivado).
Acceptance Criteria
- FE PBS nao depende de
moduleKeystring para resolver/importar/lower callables. - Todas as callsites
CALL_FUNCcarregamcalleeModuleIdcoerente. - Testes PBS passam sem acessos estruturais a chave textual.
Tests
:prometeu-compiler:frontends:prometeu-frontend-pbs:test:prometeu-compiler:prometeu-frontend-api:test --tests *IRBackendExecutableContractTest*
Affected Documents
docs/pbs/specs/13. Lowering IRBackend Specification.mddocs/general/specs/14. Name Resolution and Module Linking Specification.mddocs/general/specs/22. Backend Spec-to-Test Conformance Matrix.md
Open Questions
- Nenhuma. Regra fica
ModuleId-only para identidade estrutural.