53 lines
2.0 KiB
Markdown
53 lines
2.0 KiB
Markdown
# PR-027 - PBS Builtin Metadata Extraction and IR Lowering Admission
|
|
|
|
## Briefing
|
|
|
|
Com interface modules e SDK minimo ativos, precisamos fechar a fronteira entre metadata reservada e lowering frontend (`IRBackend`), sem degradacao silenciosa.
|
|
|
|
## Motivation
|
|
|
|
As specs exigem que metadata reservada seja compilacao-only e consumivel por lowering posterior.
|
|
Tambem exigem rejeicao deterministica quando suporte ainda nao cobre algum caso.
|
|
|
|
## Target
|
|
|
|
- Extracao de metadata de attributes reservadas no grafo de interface.
|
|
- Regras de admissao/rejeicao no lowering frontend (`IRBackend` boundary).
|
|
|
|
## Scope
|
|
|
|
- Extrair e armazenar canonical metadata de `Host`, `BuiltinType`, `IntrinsicCall`, `Slot`, `BuiltinConst`.
|
|
- Preservar informacao minima necessaria no contrato de lowering frontend.
|
|
- Emitir diagnostico deterministico para formas nao suportadas pela fronteira atual.
|
|
|
|
## Method
|
|
|
|
- Introduzir modelo interno de metadata reservada desacoplado da sintaxe bruta.
|
|
- Atualizar contrato de admissao do frontend para recusar deterministicamente casos fora da fatia implementada.
|
|
- Garantir fase/codigo/template/attribution estaveis nos diagnosticos de rejeicao.
|
|
|
|
## Acceptance Criteria
|
|
|
|
- Metadata reservada valida e acessivel apos parse+semantica+linking.
|
|
- Nenhum caso nao suportado passa silenciosamente para `IRBackend` com comportamento alterado.
|
|
- Rejeicoes de lowering frontend sao deterministicas e rastreaveis.
|
|
|
|
## Tests
|
|
|
|
- Fixtures positivas para extracao de metadata de `Color`/`Gfx`.
|
|
- Fixtures negativas com metadata invalida e rejeicao deterministica.
|
|
- Asserts de contrato diagnostico (phase, code, templateId, span).
|
|
|
|
## Non-Goals
|
|
|
|
- Implementar `IRBackend -> IRVM`.
|
|
- Definir encoding final de artifact/PBX.
|
|
|
|
## Affected Documents
|
|
|
|
- `docs/pbs/specs/12. Diagnostics Specification.md`
|
|
- `docs/pbs/specs/13. Lowering IRBackend 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`
|
|
|