prometeu-studio/docs/pbs/pull-requests/PR-O4.1-callable-signature-identity-and-dense-symbol-table.md
2026-03-24 13:42:27 +00:00

1.3 KiB

PR-O4.1 - Callable Signature Identity and Dense Symbol Table

Briefing

Eliminar ambiguidade de callsites no backend substituindo resolucao por nome simples por identidade canônica de callable baseada em assinatura.

Target

  • Modelo IRBackend/IRBackendExecutableFunction.
  • Lowering PBS para callsites CALL_FUNC.
  • Backend LowerToIRVM no mapeamento de callee.
  • Infra source/tables para simbolos de callable.

Method

  • Introduzir CallableId e CallableSignatureRef usando DenseTable/InternTable em source/tables.
  • FE emite calleeCallableId para CALL_FUNC em vez de lookup textual por nome.
  • Chave canônica de assinatura: module + callable + arity + type-shape.
  • Backend resolve CALL_FUNC por id canônico, sem heuristica putIfAbsent(name).

Acceptance Criteria

  • Overloads válidos com mesmo nome e assinaturas diferentes chamam alvo correto.
  • Não há resolução de callee por nome simples no caminho executável.
  • Mesmo grafo de entrada gera mesma tabela densa de callables.
  • Falha de resolução gera erro determinístico de lowering.

Tests

  • Fixtures com overloads por aridade e por shape de tipo.
  • Regressão negativa para callsite sem CallableId válido.
  • Teste de determinismo de IDs de callable entre execuções.