75 lines
2.8 KiB
Markdown
75 lines
2.8 KiB
Markdown
# PR-07.2 - PBS Callsite Category Without Textual Heuristics (Regression Fixtures)
|
|
|
|
## Briefing
|
|
|
|
A matriz de conformidade ainda marca `PBS13-12.2.2` como `partial`.
|
|
|
|
Ja existe enforce de metadados no contrato executavel, mas falta fixture regressiva dedicada para provar que o frontend/backend nao classifica callsite por heuristica textual quando identidades entram em colisao.
|
|
|
|
## Motivation
|
|
|
|
### Dor atual que esta PR resolve
|
|
|
|
1. Ambiguidade residual na evidencia de `CALL_FUNC/CALL_HOST/CALL_INTRINSIC`.
|
|
2. Risco de regressao para classificacao por nome textual em casos limítrofes.
|
|
3. `PBS13-12.2.2` permanece `partial` por falta de caso dedicado de identidade ambigua.
|
|
|
|
## Target
|
|
|
|
Fechar `PBS13-12.2.2` com fixtures explicitas de identidade e ambiguidade, garantindo que categoria de callsite e derivada de identidade semantica/admitida, nao de heuristica textual.
|
|
|
|
## Dependencies
|
|
|
|
Prerequisitos diretos:
|
|
|
|
1. `PR-05.2` (classificacao de callsite por identidade semantica).
|
|
2. `PR-05.0.1` e `PR-05.0.6` (name/host identity foundation).
|
|
|
|
## Scope
|
|
|
|
1. Fixture positiva:
|
|
- nome textual com "cara de host", mas identidade resolvida como callable local -> deve lower para `CALL_FUNC`.
|
|
2. Fixture positiva:
|
|
- nome textual sobreposto entre dominios, com identidade univoca admitida para host ou intrinsic -> deve lower categoria correta.
|
|
3. Fixture negativa dedicada:
|
|
- colisao real entre categorias (callable/host/intrinsic) para o mesmo callsite -> rejeicao deterministica por ambiguidade.
|
|
4. Atualizacao de matriz para converter `PBS13-12.2.2` de `partial` para `pass`.
|
|
|
|
## Non-Goals
|
|
|
|
1. Nao altera gramatica PBS.
|
|
2. Nao redefine regras de admission de host/intrinsics fora do escopo desta prova.
|
|
|
|
## Method
|
|
|
|
### O que deve ser feito explicitamente
|
|
|
|
1. Adicionar testes em `PbsFrontendCompilerTest` (ou suite semantica correlata) para os tres cenarios acima.
|
|
2. Assertar `InstructionKind` resultante (`CALL_FUNC`, `CALL_HOST`, `CALL_INTRINSIC`) em casos positivos.
|
|
3. Assertar codigo diagnostico deterministico em caso ambiguo.
|
|
4. Garantir que nao ha branch de fallback por string pattern no caminho de lowering executavel.
|
|
5. Atualizar matriz de conformidade com referencias dos novos testes.
|
|
|
|
## Acceptance Criteria
|
|
|
|
1. Existe fixture dedicada cobrindo ambiguidade de categoria por identidade.
|
|
2. Casos positivos provam classificacao correta mesmo quando nome textual engana.
|
|
3. Caso ambiguo falha deterministicamente com diagnostico estavel.
|
|
4. `PBS13-12.2.2` evolui para `pass`.
|
|
|
|
## Tests
|
|
|
|
1. Novos testes no frontend PBS:
|
|
- `:prometeu-compiler:frontends:prometeu-frontend-pbs:test`
|
|
2. Reexecucao obrigatoria de integracao backend:
|
|
- `:prometeu-compiler:prometeu-build-pipeline:test`
|
|
|
|
## Affected Documents
|
|
|
|
1. `docs/pbs/specs/13. Lowering IRBackend Specification.md`
|
|
2. `docs/general/specs/22. Backend Spec-to-Test Conformance Matrix.md`
|
|
|
|
## Open Questions
|
|
|
|
Sem bloqueios arquiteturais.
|