prometeu-studio/docs/compiler/pbs/pull-requests/PR-09.6-isa-intrinsic-registry-single-source-artifact.md
2026-03-24 13:42:37 +00:00

2.6 KiB

PR-09.6 - ISA-Scoped Intrinsic Registry as Single Source of Truth

Briefing

Hoje o mapeamento canonicalName@version -> finalId ainda e mantido em dois lugares (compiler e runtime), com teste de paridade. Isso reduz risco, mas ainda nao elimina dual-authoring.

Motivation

Dor atual que esta PR resolve

  1. Fonte duplicada para IDs finais de intrinsic.
  2. Risco operacional de drift entre compiler e runtime.
  3. Evolucao de intrinsics depende de sincronizacao manual.

Target

Definir um artefato unico, versionado e vinculado ao profile ISA para o registry de intrinsics:

  1. artefato canonico de registry (intrinsic-registry-v1),
  2. ownership normativo no boundary ISA/profile,
  3. consumo por compiler e runtime a partir da mesma fonte.

Dependencies

Prerequisitos diretos:

  1. PR-08.5 (paridade compiler-runtime existente)
  2. PR-09.7 (normalizacao de consumo no compiler)

Scope

  1. Definir formato normativo do artefato (CSV/TOML/JSON) no boundary ISA.
  2. Definir local canonico e versionamento do artefato.
  3. Definir contrato de evolucao:
    • adicao de intrinsic,
    • deprecacao,
    • compatibilidade de IDs.
  4. Definir gate de paridade contra consumidores.

Non-Goals

  1. Nao alterar semantica de opcode INTRINSIC.
  2. Nao redesenhar toda a arquitetura de builtins do runtime nesta PR.

Method

O que deve ser feito explicitamente

  1. Criar documento de formato canonico do registry:
    • chave canonica,
    • versao canonica,
    • final id,
    • constraints de unicidade.
  2. Declarar ownership do artefato no profile ISA.
  3. Definir pipeline de validacao:
    • parser estrito,
    • check de unicidade de identity e final id,
    • check de ordenacao deterministica.
  4. Definir workflow de manutencao para adicao de intrinsic.

Acceptance Criteria

  1. Existe uma unica fonte versionada para IDs finais de intrinsic.
  2. Runtime e compiler referenciam formalmente essa fonte.
  3. Processo de evolucao de intrinsics fica deterministico e auditavel.

Tests

  1. Testes de parser/validacao do artefato canonico.
  2. Testes de paridade de consumidores contra o artefato.
  3. Gate de CI que falha em divergia do mapping.

Affected Documents

  1. docs/general/specs/20. IRBackend to IRVM Lowering Specification.md
  2. docs/general/specs/15. Bytecode and PBX Mapping Specification.md
  3. docs/pbs/specs/6.1. Intrinsics and Builtin Types Specification.md
  4. docs/general/specs/22. Backend Spec-to-Test Conformance Matrix.md
  5. Runtime specs correspondentes (ajuste posterior no repo runtime).

Open Questions

  1. Local canonico final do artefato: runtime (recomendado) ou shared-metadata dedicado. runtime