globals and synthetic inits

This commit is contained in:
bQUARKz 2026-03-23 00:12:15 +00:00
parent 42255c38d0
commit 2c13b3db8b
Signed by: bquarkz
SSH Key Fingerprint: SHA256:Z7dgqoglWwoK6j6u4QC87OveEq74WOhFN+gitsxtkf8
10 changed files with 693 additions and 0 deletions

View File

@ -195,3 +195,17 @@ Foco: reduzir complexidade estrutural de `PbsFlowBodyAnalyzer` sem alterar regra
3. `PR-13.3-flow-body-analyzer-statement-analysis-splitting.md`
4. `PR-13.4-flow-body-analyzer-assignment-target-resolution-decomposition.md`
5. `PR-13.5-flow-body-analyzer-regression-hardening-and-final-cleanup.md`
### Onda O19 - Globals, Lifecycle, Published Wrapper, and Conformance
Foco: implementar a familia `19` em sequencia executavel, com runtime boot protocol ja alinhado e `learn` deliberadamente postergado para fechamento posterior.
1. `PR-19.1-pbs-topic-19-spec-propagation-and-normative-cutover.md`
2. `PR-19.2-infra-dependencygraphanaliser-extraction-and-module-cutover.md`
3. `PR-19.3-pbs-parser-ast-globals-barrel-and-lifecycle-markers.md`
4. `PR-19.4-pbs-semantics-global-surface-identity-and-collision-validation.md`
5. `PR-19.5-pbs-semantics-global-dependency-graph-and-cycle-validation.md`
6. `PR-19.6-pbs-semantics-lifecycle-init-frame-and-initallowed-validation.md`
7. `PR-19.7-pbs-lowering-irbackend-globals-and-synthetic-callable-model.md`
8. `PR-19.8-pbs-lowering-published-wrapper-entrypoint-zero-and-frame-ret.md`
9. `PR-19.9-pbs-conformance-fixtures-diagnostics-and-gate-closure.md`

View File

@ -0,0 +1,98 @@
# 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.

View File

@ -0,0 +1,74 @@
# PR-19.2 - Infra DependencyGraphAnaliser Extraction and Module Cutover
## Briefing
As decisions da familia `19` fixaram que modules e globals compartilham o mesmo kernel estrutural de analise de dependencias, vindo de um refactor do algoritmo atual de modules para `DependencyGraphAnaliser` em `util.structures`.
Esta PR faz somente esse corte de infra:
1. extrair o kernel estrutural reutilizavel;
2. migrar o uso atual de modules para esse novo componente;
3. deixar a superficie pronta para a futura aplicacao no graph de globals.
## Target
Introduzir um analizador estrutural generico para:
1. topological ordering,
2. deterministic traversal,
3. cycle detection,
4. e, quando util, exposicao de SCC/path para diagnostics.
## Dependencies
Prerequisitos diretos:
1. `Globals Surface, Identity, and Module Boundaries Decision.md`
## Scope
1. Extrair o algoritmo atual de dependency ordering de modules para `DependencyGraphAnaliser`.
2. Definir uma API estrutural baseada em nos canonicos e edges preconstruidas.
3. Migrar a linha atual de modules para usar esse componente comum.
4. Preservar comportamento observavel dos diagnostics de modules.
## Non-Goals
1. Nao introduzir ainda globals no pipeline semantico.
2. Nao misturar semantica de modules com semantica de globals.
3. Nao alterar parser ou AST.
4. Nao alterar diagnostics user-facing da linha de globals nesta PR.
## Method
1. Extrair apenas o kernel estrutural; sem abstrair semantica de descoberta de edges.
2. Manter cada dominio responsavel por:
- nos canonicos,
- edges,
- mapeamento para diagnostics.
3. Garantir regressao zero para a linha atual de dependency ordering de modules.
## Acceptance Criteria
1. Existe um `DependencyGraphAnaliser` reutilizavel em infra `util.structures`.
2. Modules passam a usar esse componente sem mudar o contrato observavel atual.
3. O componente nao carrega conhecimento de modulo, global ou PBS-specific semantics.
4. A futura linha de globals consegue consumir o novo kernel sem novo refactor estrutural.
## Tests
1. Testes atuais de dependency ordering e cycle detection de modules permanecem verdes.
2. Testes unitarios diretos do `DependencyGraphAnaliser` cobrem:
- DAG simples,
- ciclo,
- ordering deterministico,
- graph desconexo.
## Affected Artifacts
1. `prometeu-deps` e/ou infra estrutural equivalente
2. fases atuais que usam o algoritmo de dependency ordering de modules
## Open Questions
1. A exposicao de SCC/path pode ser minima nesta PR, desde que nao force novo refactor na PR-19.5.

View File

@ -0,0 +1,70 @@
# PR-19.3 - PBS Parser and AST for Globals, Barrel, and Lifecycle Markers
## Briefing
Depois do corte normativo e do refactor estrutural do dependency graph, PBS precisa aceitar a nova surface da familia `19` no frontend sintatico e no AST:
1. `declare global`,
2. entradas `global` em `mod.barrel`,
3. atributos `[Init]` e `[Frame]`.
Esta PR faz o corte parser+AST, sem ainda fechar toda a semantica.
## Target
Estender parser e AST para suportar:
1. declaracoes `global`,
2. barrel declarations `mod global` / `pub global`,
3. markers `[Init]` e `[Frame]` sobre `fn name() -> void`.
## Dependencies
Prerequisitos diretos:
1. `PR-19.1`
2. `PR-19.2`
## Scope
1. Atualizar lexer/parser/top-level declaration parsing conforme necessario.
2. Atualizar AST model para representar globals e markers de lifecycle.
3. Atualizar barrel AST para distinguir `global` de `const`.
4. Preservar spans e attribution adequados.
## Non-Goals
1. Nao validar ainda dependency graph de globals.
2. Nao validar ainda `[InitAllowed]` em host methods.
3. Nao implementar lowering.
4. Nao implementar published wrapper.
## Method
1. Introduzir novos nodes/surfaces com identidade explicita no AST.
2. Reusar padroes atuais de attributes/markers sem heuristicas textuais.
3. Preservar recovery e diagnosticos sintaticos existentes.
## Acceptance Criteria
1. Parser aceita `declare global Name: T = expr;`.
2. Parser aceita `mod global Name;` e `pub global Name;`.
3. AST distingue `global` de `const`.
4. AST registra `[Init]` e `[Frame]` como markers explicitos.
5. Spans e recovery permanecem defensaveis.
## Tests
1. Fixtures positivas de parse para `declare global`, barrel `global`, `[Init]` e `[Frame]`.
2. Fixtures negativas de parse para formas claramente malformed.
3. Regressao do conjunto atual de parser/AST.
## Affected Artifacts
1. parser PBS
2. AST model PBS
3. testes de parser/AST
## Open Questions
1. Nenhuma. A semantica fina fica para as PRs 19.4 a 19.6.

View File

@ -0,0 +1,76 @@
# PR-19.4 - PBS Semantics for Global Surface, Identity, and Collision Validation
## Briefing
Com parser e AST aceitando a nova surface, a primeira frente semantica precisa fechar o contrato local de `declare global`:
1. categoria declarativa distinta de `const`,
2. regras de namespace e colisao,
3. barrel/import visibility,
4. admissibilidade local do initializer.
Esta PR nao fecha ainda ordering nem ciclo entre globals.
## Target
Implementar validacao semantica para:
1. `declare global` como categoria propria,
2. barrel `global`,
3. colisao entre `fn`, `service`, `global` e `const`,
4. alias obrigatorio em imports quando houver conflito,
5. formas suportadas e nao suportadas no initializer.
## Dependencies
Prerequisitos diretos:
1. `PR-19.1`
2. `PR-19.3`
## Scope
1. Resolver `global` no value namespace sem colapsar categoria com `const`.
2. Enforcar collisions compile-time entre top-level visible symbols.
3. Validar import through `global` barrel entry.
4. Validar formas proibidas no initializer de `global`.
## Non-Goals
1. Nao construir ainda o dependency graph entre globals.
2. Nao validar lifecycle markers.
3. Nao implementar lowering.
## Method
1. Introduzir validacao de declaracao e linking local antes do graph global.
2. Emitir diagnosticos diretamente nos spans reais do codigo do usuario.
3. Tratar barrel/import como autoridade de visibilidade para globals.
## Acceptance Criteria
1. `global` e `const` permanecem semanticamente distintos.
2. Collisions entre `fn` / `service` / `global` / `const` geram erro compile-time.
3. Alias e exigido quando import criaria shadowing invalido.
4. Initializers proibidos de `global` sao rejeitados com diagnostico especifico.
5. Imports de global so resolvem via barrel `global`.
## Tests
1. Fixtures positivas para globals simples, `new`, member-value e import por barrel `global`.
2. Fixtures negativas para:
- collision cross-category,
- import sem alias quando exigido,
- `fn` no initializer,
- `if` no initializer,
- `some(...)` / `none`.
## Affected Artifacts
1. validadores semanticos PBS
2. linking/import resolution PBS
3. testes de semantics/declarations
## Open Questions
1. Nenhuma. Dependency graph fica para `PR-19.5`.

View File

@ -0,0 +1,66 @@
# 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:
1. nos canonicos de globals por owner module,
2. edges derivadas de leitura de globals em initializers,
3. ordering deterministico independente de source-file order,
4. diagnostico de ciclo entre globals.
## Dependencies
Prerequisitos diretos:
1. `PR-19.2`
2. `PR-19.4`
## Scope
1. Construir o graph semantico de globals.
2. Resolver alias/import para owner canonico.
3. Reusar `DependencyGraphAnaliser` como kernel estrutural.
4. Emitir diagnostico de ciclo com caminho canonicamente util quando possivel.
## Non-Goals
1. Nao validar ainda `[Init]` / `[Frame]`.
2. Nao implementar init sintetico de modulo.
3. Nao implementar lowering.
## Method
1. Modelar cada global como no canonico `(module, global_name)` ou equivalente interno estavel.
2. Criar edge quando initializer depende do valor materializado de outro global.
3. Usar ordering deterministico para fixar ordem de materializacao.
4. Manter source-file order fora da semantica.
## Acceptance Criteria
1. Ordering de globals e estavel e independe de ordem textual de arquivos.
2. Imports e aliases nao quebram identidade canonica do storage owner.
3. Ciclos intra-modulo e inter-modulo sao detectados como compile-time error.
4. Diagnostics apontam para globals reais, nao para estrutura sintetica.
## Tests
1. Fixtures positivas para dependency chains intra e inter-modulo.
2. Fixtures que provem mesma ordem mesmo com source-file order trocada.
3. Fixtures negativas para ciclos simples e ciclos via import/alias.
## Affected Artifacts
1. semantica de globals PBS
2. `DependencyGraphAnaliser` consumers
3. testes de dependency ordering/cycle diagnostics
## Open Questions
1. Nenhuma. A integracao com module/project init fica para `PR-19.6`.

View File

@ -0,0 +1,82 @@
# PR-19.6 - PBS Semantics for Lifecycle Markers, Init Ordering, and InitAllowed Validation
## Briefing
Com globals e seu dependency graph fechados, a ultima frente semantica da familia `19` precisa validar a camada de lifecycle:
1. `[Init]`,
2. `[Frame]`,
3. ordenacao por arquivo/modulo/projeto,
4. e admissibilidade de host calls via `[InitAllowed]`.
## Target
Implementar a validacao de:
1. signatures de `[Init]` e `[Frame]`,
2. unicidade e colocacao de `[Frame]`,
3. um `[Init]` por arquivo,
4. elevacao do `[Init]` co-localizado com `[Frame]` para project init,
5. restricao de host calls durante init.
## Dependencies
Prerequisitos diretos:
1. `PR-19.3`
2. `PR-19.5`
## Scope
1. Validar `fn name() -> void` para `[Init]` e `[Frame]`.
2. Validar unicidade de `[Frame]` por projeto executavel.
3. Validar que project init e o `[Init]` no mesmo arquivo do `[Frame]`.
4. Validar que arquivos podem ter no maximo um `[Init]`.
5. Validar host call em init apenas quando o target SDK carregar `[InitAllowed]`.
## Non-Goals
1. Nao implementar ainda wrapper publicado.
2. Nao implementar ainda callables sinteticos de lowering.
3. Nao produzir ainda artifacts de conformance finais.
## Method
1. Construir a semantica de lifecycle em cima do ordering ja definido para globals.
2. Tratar module init e project init como diferenca de ordenacao e papel, nao de syntax.
3. Validar `[InitAllowed]` somente em host methods da SDK.
## Acceptance Criteria
1. `[Init]` e `[Frame]` exigem `fn name() -> void`.
2. Existe exatamente um `[Frame]` por projeto executavel.
3. `project init` e identificado apenas no arquivo do `[Frame]`.
4. Um arquivo nao pode declarar mais de um `[Init]`.
5. Host calls em init sem `[InitAllowed]` sao rejeitadas.
6. Uso invalido de `[InitAllowed]` e rejeitado.
## Tests
1. Fixtures positivas para:
- file `[Init]`,
- project `[Init]`,
- `[Frame]`,
- loops em init,
- host call admissivel com `[InitAllowed]`.
2. Fixtures negativas para:
- assinatura invalida,
- multiplos `[Frame]`,
- project init fora do arquivo do `[Frame]`,
- multiplos `[Init]` no arquivo,
- host call sem `[InitAllowed]`,
- `[InitAllowed]` em target invalido.
## Affected Artifacts
1. validadores semanticos/lifecycle PBS
2. admission de host methods em init
3. testes de lifecycle e diagnostics
## Open Questions
1. Nenhuma. O passo seguinte e lowering.

View File

@ -0,0 +1,70 @@
# PR-19.7 - PBS Lowering for IRBackend Globals and Synthetic Callable Model
## Briefing
As decisions de topic `19` fixaram que globals e artifacts de lifecycle precisam ficar explicitos no `IRBackend`, sem materializacao tardia implicita.
Esta PR faz o primeiro corte de lowering:
1. introduz globals explicitos no handoff,
2. introduz callables sinteticos com kind proprio,
3. introduz origin metadata sintetica suficiente para remapear diagnosticos.
## Target
Implementar no lowering PBS -> `IRBackend`:
1. modelagem explicita de backend globals,
2. distincao entre callables userland e callables sinteticos,
3. kinds sinteticos obrigatorios,
4. attribution/origin metadata para artifacts sinteticos.
## Dependencies
Prerequisitos diretos:
1. `PR-19.1`
2. `PR-19.5`
3. `PR-19.6`
## Scope
1. Introduzir globals explicitos no `IRBackend`.
2. Introduzir `FILE_INIT_FRAGMENT`, `MODULE_INIT`, `PROJECT_INIT` e `PUBLISHED_FRAME_WRAPPER` como identidade estrutural.
3. Introduzir `SyntheticOrigin` ou equivalente.
4. Preservar remap para spans reais quando houver origem defensavel.
## Non-Goals
1. Nao publicar ainda o wrapper final em `func_id = 0`.
2. Nao fechar ainda `FRAME_RET` ownership path.
3. Nao fechar ainda conformance final.
## Method
1. Modelar globals e callables sinteticos como first-class artifacts.
2. Evitar conventions baseadas apenas em nome textual.
3. Garantir que diagnosticos prefiram spans reais em vez de spans sinteticos.
## Acceptance Criteria
1. `IRBackend` passa a carregar globals explicitamente.
2. Callables sinteticos possuem class identity observavel.
3. Artifacts sinteticos carregam attribution suficiente para remap de diagnosticos.
4. O lowering nao depende de magic late-stage para globals/lifecycle.
## Tests
1. Fixtures de lowering com inspecao do `IRBackend`.
2. Verificacao de kinds sinteticos presentes.
3. Verificacao de origin metadata e remap defensavel.
## Affected Artifacts
1. lowering PBS -> `IRBackend`
2. modelo `IRBackend`
3. testes de lowering/attribution
## Open Questions
1. Nenhuma. Wrapper publication fica para `PR-19.8`.

View File

@ -0,0 +1,70 @@
# PR-19.8 - PBS Lowering for Published Wrapper, Entrypoint Zero, and FRAME_RET
## Briefing
Com globals e callables sinteticos explicitos no `IRBackend`, a proxima PR fecha a publicacao executavel da linha `19`:
1. wrapper sintetico publicado,
2. boot guard one-shot,
3. project/module init orchestration,
4. `[Frame]` do usuario como root logico,
5. `FRAME_RET` no wrapper,
6. entrypoint fisico `0`.
## Target
Implementar a publicacao executavel final alinhada as decisions `19.2`, `19.3` e `19.4`.
## Dependencies
Prerequisitos diretos:
1. `PR-19.7`
2. runtime boot protocol ja implementado/alinhado fora deste dominio
## Scope
1. Materializar `BOOT_GUARD` oculto.
2. Compor file init fragments, module init, project init e user `[Frame]` no wrapper final.
3. Publicar o wrapper como root fisico em `func_id = 0`.
4. Mover `FRAME_RET` para o wrapper.
5. Remover qualquer dependencia restante de autoridade de entrypoint em `FrontendSpec` para PBS.
## Non-Goals
1. Nao alterar runtime nesta PR.
2. Nao produzir `learn`.
3. Nao fechar sozinho toda a matriz de conformance final.
## Method
1. Compor o wrapper em ordem semantica fechada nas decisions.
2. Garantir one-shot boot via hidden guard.
3. Tratar `[Frame]` como callable logical-root invocado pelo wrapper, nao como entrypoint fisico publicado.
## Acceptance Criteria
1. O wrapper sintetico publicado existe no artifact executavel.
2. O wrapper ocupa `func_id = 0`.
3. `FRAME_RET` aparece no wrapper path, nao no final do body do user `[Frame]`.
4. Boot/inits executam uma unica vez.
5. O pipeline PBS deixa de depender de autoridade de entrypoint em `FrontendSpec`.
## Tests
1. Fixtures de artifact/lowering provando:
- wrapper publicado,
- boot guard,
- entrypoint `0`,
- `FRAME_RET` no wrapper.
2. Integracao compiler/runtime se o harness local ja estiver disponivel no studio.
## Affected Artifacts
1. lowering PBS -> `IRBackend`/`IRVM`
2. publication contract no pipeline do compiler
3. pontos PBS que ainda assumam `FrontendSpec` como autoridade de entrypoint
## Open Questions
1. Nenhuma. A evidencia final fica para `PR-19.9`.

View File

@ -0,0 +1,73 @@
# PR-19.9 - PBS Conformance Fixtures, Diagnostics, and Gate Closure for Topic 19
## Briefing
Depois da propagacao normativa, da superficie parser/AST, da semantica e do lowering com wrapper, a familia `19` precisa de uma PR final de fechamento operacional:
1. consolidar fixtures,
2. endurecer diagnostics observaveis,
3. fechar gates de conformance,
4. e provar a linha end-to-end.
`learn` permanece fora desta PR e sera tratado depois, quando a implementacao ja estiver estavel.
## Target
Fechar a evidencia executavel e o gate de aceitacao da familia `19`.
## Dependencies
Prerequisitos diretos:
1. `PR-19.1`
2. `PR-19.4`
3. `PR-19.5`
4. `PR-19.6`
5. `PR-19.7`
6. `PR-19.8`
## Scope
1. Consolidar fixtures positivas da linha `19`.
2. Consolidar fixtures negativas de frontend/static semantics.
3. Consolidar fixtures negativas de lowering/structural validation.
4. Ligar a matrix/gates para evitar regressao.
5. Verificar integracao com runtime protocol ja alinhado.
## Non-Goals
1. Nao reabrir semantics ou lowering.
2. Nao alterar arquitetura.
3. Nao produzir ainda `learn`.
## Method
1. Seguir exatamente a matriz aceita em `Diagnostics, Manifest Propagation, and Conformance Coverage Decision.md`.
2. Preferir fixtures pequenas e isoladas por failure mode.
3. Tornar obrigatorios os checks estruturais da linha `19`.
## Acceptance Criteria
1. Existe fixture positiva cobrindo globals + file `[Init]` + project `[Init]` + `[Frame]`.
2. Existe cobertura negativa para os diagnostics obrigatorios da familia `19`.
3. Existe cobertura negativa para wrapper ausente, entrypoint fora de `0`, boot guard ausente e origin metadata ausente.
4. A linha de gates/conformance falha em regressao real desses contratos.
5. O resultado deixa a familia `19` pronta para `learn`.
## Tests
1. Suite de frontend semantics relevante para globals/lifecycle.
2. Suite de lowering/artifact relevante para wrapper/entrypoint.
3. Gate/spec-to-test/conformance harness aplicavel no repo.
4. Integracao compiler/runtime quando o harness local existir.
## Affected Artifacts
1. testes de frontend
2. testes de lowering
3. fixtures de artifact/conformance
4. gates CI/conformance relevantes
## Open Questions
1. Nenhuma. Esta PR e de fechamento e endurecimento.