2.7 KiB
2.7 KiB
PR-05.2 - IRBackend Callsite Classification by Semantic Identity
Briefing
A classificação de callsites no frontend executável ainda depende de heurística textual de callee.
Esta PR torna obrigatória a classificação por identidade semântica resolvida no binding, eliminando inferência por nome/forma textual.
Motivation
Dor atual que esta PR resolve
- Risco de classificar callsite no bucket errado (
CALL_FUNC,CALL_HOST,CALL_INTRINSIC). - Ambiguidade em member/bind/group callee com nome coincidente.
- Falta de robustez em evolução de sintaxe semântica do FE.
Target
Fronteira PBS FE -> IRBackend com identidade de callsite estável e sem heurística textual para decisão de categoria.
Dependencies
Prerequisitos diretos:
PR-05.0.1(NameTable compartilhada).PR-05.0.2(ModuleId no FE).PR-05.0.3(CallableId/IntrinsicId tipados no contrato).PR-05.0.4(shape/signature internadas).
Scope
- Resultado de resolução semântica para chamadas.
- Estrutura de lowering para carregar identidade resolvida.
- Diagnósticos quando identidade não estiver resolvida no ponto exigido.
Non-Goals
- Não muda política de overload além do já definido em semântica.
- Não introduz novas categorias de callsite.
Method
O que deve ser feito explicitamente
- Propagar do analisador semântico para lowering um descritor explícito de destino de chamada.
- O descritor deve carregar identidade canônica tipada (ao menos categoria + id alvo), sem depender de nome textual.
- Remover dependência de
extractSimpleCalleeNamepara classificação. - Exigir que cada callsite emitido em
IRBackendesteja em exatamente uma categoria válida. - Emitir erro determinístico quando o FE não possuir identidade semântica suficiente para classificar o callsite.
- Validar compatibilidade de metadados obrigatórios por categoria no ato de emissão.
Acceptance Criteria
- Classificação de callsite não depende de parsing textual de callee.
- Cada callsite em
IRBackendpossui categoria única e metadados obrigatórios. - Casos ambíguos geram diagnóstico estável em fase correta, sem fallback heurístico.
- Não há regressão em casos já válidos.
- O payload de callsite no contrato executável é tipado por ID, não por inferência textual.
Tests
- Testes positivos para chamadas de função, host e intrínseco com diferentes formas sintáticas.
- Testes negativos de ambiguidade e callee não resolvido.
- Testes de estabilidade diagnóstica (code/phase/span).
Affected Documents
docs/pbs/specs/13. Lowering IRBackend Specification.mddocs/general/specs/20. IRBackend to IRVM Lowering Specification.md
Open Questions
Sem bloqueios arquiteturais.