56 lines
2.0 KiB
Markdown
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`
|
|
|