40 lines
1.5 KiB
Markdown
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`
|
|
|