# 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