prometeu-studio/docs/pbs/pull-requests/PR-038-irbackend-v2-executable-contract-model.md
2026-03-24 13:42:24 +00:00

40 lines
1.5 KiB
Markdown

# PR-038 - IRBackend v2 Executable Contract Model
## Briefing
Evoluir `IRBackend` para contrato executavel v2, adicionando corpo lowerable, classificacao de callsites e metadado canonico para host/intrinsic sem heuristica textual no backend.
## Target
- Expandir modelos em `prometeu-frontend-api` para incluir:
- callable identity estavel,
- corpo lowerable,
- callsites com categoria explicita (`CALL_FUNC`, `CALL_HOST`, `CALL_INTRINSIC`),
- metadado canonico host/intrinsic por callsite.
- Preservar compatibilidade de agregacao e ordenacao deterministica.
## Method
- Introduzir novas records/classes v2 e adaptar agregador de `IRBackend`.
- Manter fronteira clara entre metadado reservado global e metadado operacional por callsite.
- Introduzir chave deterministica de ordenacao de funcao: `(module_key, callable_name, source_start)`.
## Acceptance Criteria
1. `IRBackend` v2 carrega informacao suficiente para `LowerToIRVM` sem heuristica textual.
2. Cada callsite executavel pertence a exatamente uma categoria.
3. Identidade canonica host/intrinsic fica preservada por callsite.
4. Agregacao multi-arquivo continua deterministica.
## Tests
1. Testes unitarios de modelo para classificacao de callsites.
2. Testes unitarios de agregacao deterministica de funcoes.
3. Testes unitarios de preservacao de metadados host/intrinsic.
## Affected Documents
- `docs/pbs/specs/13. Lowering IRBackend Specification.md`
- `docs/general/specs/20. IRBackend to IRVM Lowering Specification.md`