1.9 KiB
1.9 KiB
PR-05.0.4 - Callable Shape and Signature Interning
Briefing
O FE ainda monta chaves semanticas por concat string (name#arity, signatureSurface, typeShape).
Esta PR cria internacao para superfícies de assinatura/shape e remove concatenação textual como identidade primaria.
Motivation
Dor que esta PR resolve
- Chave textual e fragil para evolucao de formato.
- Custo de alocacao/hash desnecessario em caminhos quentes.
- Risco de colisao logica por normalizacao incompleta.
Target
Internar shapes de callable e superfícies de assinatura em tabela dedicada, com ID estavel.
Scope
- Estruturas de assinatura do linking e lowering.
CallableSignatureRefcom suporte a referencia internada de shape.- Remocao gradual de
callableArityKeye derivados string.
Non-Goals
- Nao altera regra de overload.
- Nao altera formato externo de diagnostico.
Method
O que deve ser feito explicitamente
- Introduzir tabela de shapes (ex.:
CallableShapeTable/TypeSurfaceTable). - Representar identidade de callable por tupla tipada (
NameId, aridade,ShapeId). - Atualizar:
- linking (
FunctionSymbolKey), - FE lowering executavel (
callableIdsByNameAndArity), - referencias em
CallableSignatureRef.
- linking (
- Manter conversao para string apenas para logs/debug.
Acceptance Criteria
- Fluxo principal de resolução de callable nao depende de concat string.
- Determinismo de shape/signature comprovado por ID internado.
- Nenhuma regressao de resolução de overload/documentada.
Tests
- Teste de internacao idempotente para shape identico.
- Testes de distinção para shapes diferentes com mesmo nome/arity.
Affected Documents
docs/pbs/specs/13. Lowering IRBackend Specification.mddocs/general/specs/20. IRBackend to IRVM Lowering Specification.md
Open Questions
Sem bloqueios arquiteturais.