prometeu-studio/docs/pbs/pull-requests/PR-025-pbs-interface-module-semantics-and-linking.md
2026-03-24 13:42:22 +00:00

56 lines
2.0 KiB
Markdown

# PR-025 - PBS Interface-Module Semantics and Linking Rules
## Briefing
Depois de parsear forms reservadas, o frontend precisa validar regras semanticas especificas de interface modules e integrar host/builtin shells ao linking.
## Motivation
Sem essa etapa:
- declarations reservadas entram sem contrato semantico,
- host owners nao entram corretamente no namespace/linking,
- e o barrel contract para `host` nao fecha.
## Target
- Validadores semanticos (`declaration`, `flow` quando aplicavel).
- `PbsNamespaceBinder` e `PbsModuleVisibilityValidator`.
## Scope
- Validar restricoes declarativas de interface module (nao executavel, assinatura-only onde requerido).
- Validar posicionamento/shape de `Host`, `BuiltinType`, `BuiltinConst`, `IntrinsicCall`, `Slot`.
- Incluir host owners em namespace e linking (incluindo barrel host entry resolution).
## Method
- Adicionar caminho semantico para `SDK_INTERFACE` com regras de admissao dedicadas.
- Reusar estrutura de diagnosticos com codigos estaveis.
- Garantir ownership de fase para erros de linking vs static semantics.
## Acceptance Criteria
- `host` barrel entries resolvem quando `declare host` existe no modulo reservado.
- Violacoes de posicionamento/shape de attributes reservadas sao rejeitadas deterministicamente.
- Modulos ordinarios continuam com as regras atuais e sem regressao.
## Tests
- Fixtures positivos de interface module valido com host/builtin declarations.
- Fixtures negativos de attributes mal posicionadas e host/builtin invalido.
- Fixtures de linking para barrel host item resolvido e nao resolvido.
## Non-Goals
- Materializacao final de metadata no artifact/lowering.
- Politica completa de runtime capabilities.
## Affected Documents
- `docs/pbs/specs/4. Static Semantics Specification.md`
- `docs/pbs/specs/6.1. Intrinsics and Builtin Types Specification.md`
- `docs/pbs/specs/6.2. Host ABI Binding and Loader Resolution Specification.md`
- `docs/pbs/specs/12. Diagnostics Specification.md`