prometeu-studio/docs/pbs/pull-requests/PR-027-pbs-builtin-metadata-extraction-and-ir-lowering-admission.md
2026-03-24 13:42:22 +00:00

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`