prometeu-studio/docs/compiler/pbs/pull-requests/PR-19.1-pbs-topic-19-spec-propagation-and-normative-cutover.md

99 lines
3.3 KiB
Markdown

# PR-19.1 - PBS Topic 19 Spec Propagation and Normative Cutover
## Briefing
As decisions `19.1` a `19.5` fecharam a arquitetura de globals, lifecycle markers, published wrapper, lowering e conformance para PBS v1.
Esta PR abre a execucao da familia `19` pela frente editorial normativa:
1. propagar as decisions para specs PBS e specs gerais relevantes;
2. remover lacunas documentais entre source model, lowering e publication contract;
3. alinhar o contrato final com entrypoint fisico `0` e sem autoridade de `entrypoint` no `manifest.json`.
## Target
Atualizar o baseline normativo para o modelo final de topic `19` em:
1. syntax and AST,
2. static semantics,
3. dynamic semantics,
4. diagnostics,
5. lowering,
6. bytecode/publication handoff.
## Dependencies
Prerequisitos diretos:
1. `Globals Surface, Identity, and Module Boundaries Decision.md`
2. `Lifecycle Markers, Program Init, and Frame Root Semantics Decision.md`
3. `Published Entrypoint, Synthetic Wrapper, and FRAME_RET Ownership Decision.md`
4. `Globals and Lifecycle Lowering to IRBackend and IRVM Decision.md`
5. `Diagnostics, Manifest Propagation, and Conformance Coverage Decision.md`
## Scope
1. Atualizar:
- PBS 3,
- PBS 4,
- PBS 7,
- PBS 9,
- PBS 11,
- PBS 12,
- PBS 13.
2. Atualizar:
- General 15,
- General 20.
3. Fixar normativamente:
- `declare global`,
- `[Init]`,
- `[Frame]`,
- `[InitAllowed]`,
- wrapper publicado,
- `FRAME_RET` no wrapper,
- entrypoint fisico `0`,
- `manifest.json` sem `entrypoint`.
## Non-Goals
1. Nao alterar parser, AST classes ou semantics code.
2. Nao implementar lowering.
3. Nao adicionar fixtures executaveis nesta PR.
4. Nao produzir `learn`.
## Method
1. Aplicar as decisions 19.x sem reabrir arquitetura.
2. Escrever os contratos em ingles normativo e com terminologia uniforme.
3. Fazer o corte documental completo do antigo modelo nominal de entrypoint.
4. Nomear explicitamente dependencias cross-domain quando a spec PBS depender do runtime protocol ja aceito.
## Acceptance Criteria
1. Nenhuma spec normativa relevante da linha PBS/general contradiz as decisions 19.x.
2. `declare global`, `[Init]`, `[Frame]` e `[InitAllowed]` aparecem com semantica consistente entre syntax, AST e static semantics.
3. O publication contract normativo aponta para wrapper sintetico em `func_id = 0`.
4. O `manifest.json` deixa de carregar autoridade de entrypoint nas specs PBS.
5. As specs gerais de handoff refletem o wrapper e o entrypoint fisico `0`.
## Tests
1. Revisao editorial integral dos documentos afetados.
2. Se houver harness de spec-to-test matrix para as specs gerais/pbs, mantelo verde.
## Affected Documents
1. `docs/compiler/pbs/specs/3. Core Syntax Specification.md`
2. `docs/compiler/pbs/specs/4. Static Semantics Specification.md`
3. `docs/compiler/pbs/specs/7. Cartridge Manifest and Runtime Capabilities Specification.md`
4. `docs/compiler/pbs/specs/9. Dynamic Semantics Specification.md`
5. `docs/compiler/pbs/specs/11. AST Specification.md`
6. `docs/compiler/pbs/specs/12. Diagnostics Specification.md`
7. `docs/compiler/pbs/specs/13. Lowering IRBackend Specification.md`
8. `docs/compiler/general/specs/15. Bytecode and PBX Mapping Specification.md`
9. `docs/compiler/general/specs/20. IRBackend to IRVM Lowering Specification.md`
## Open Questions
1. Nenhuma. Esta PR e de propagacao normativa.