2.1 KiB
2.1 KiB
PR-19.5 - PBS Semantics for Global Dependency Graph and Cycle Validation
Briefing
Depois da superficie semantica local de global, PBS precisa implementar o ordering deterministico e a deteccao de ciclos entre globals usando o kernel compartilhado DependencyGraphAnaliser.
Esta PR fecha a parte de semantica que transforma leituras em initializers no graph canonico de globals.
Target
Implementar:
- nos canonicos de globals por owner module,
- edges derivadas de leitura de globals em initializers,
- ordering deterministico independente de source-file order,
- diagnostico de ciclo entre globals.
Dependencies
Prerequisitos diretos:
PR-19.2PR-19.4
Scope
- Construir o graph semantico de globals.
- Resolver alias/import para owner canonico.
- Reusar
DependencyGraphAnalisercomo kernel estrutural. - Emitir diagnostico de ciclo com caminho canonicamente util quando possivel.
Non-Goals
- Nao validar ainda
[Init]/[Frame]. - Nao implementar init sintetico de modulo.
- Nao implementar lowering.
Method
- Modelar cada global como no canonico
(module, global_name)ou equivalente interno estavel. - Criar edge quando initializer depende do valor materializado de outro global.
- Usar ordering deterministico para fixar ordem de materializacao.
- Manter source-file order fora da semantica.
Acceptance Criteria
- Ordering de globals e estavel e independe de ordem textual de arquivos.
- Imports e aliases nao quebram identidade canonica do storage owner.
- Ciclos intra-modulo e inter-modulo sao detectados como compile-time error.
- Diagnostics apontam para globals reais, nao para estrutura sintetica.
Tests
- Fixtures positivas para dependency chains intra e inter-modulo.
- Fixtures que provem mesma ordem mesmo com source-file order trocada.
- Fixtures negativas para ciclos simples e ciclos via import/alias.
Affected Artifacts
- semantica de globals PBS
DependencyGraphAnaliserconsumers- testes de dependency ordering/cycle diagnostics
Open Questions
- Nenhuma. A integracao com module/project init fica para
PR-19.6.