2.6 KiB
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
- Fonte duplicada para IDs finais de intrinsic.
- Risco operacional de drift entre compiler e runtime.
- Evolucao de intrinsics depende de sincronizacao manual.
Target
Definir um artefato unico, versionado e vinculado ao profile ISA para o registry de intrinsics:
- artefato canonico de registry (
intrinsic-registry-v1), - ownership normativo no boundary ISA/profile,
- consumo por compiler e runtime a partir da mesma fonte.
Dependencies
Prerequisitos diretos:
PR-08.5(paridade compiler-runtime existente)PR-09.7(normalizacao de consumo no compiler)
Scope
- Definir formato normativo do artefato (CSV/TOML/JSON) no boundary ISA.
- Definir local canonico e versionamento do artefato.
- Definir contrato de evolucao:
- adicao de intrinsic,
- deprecacao,
- compatibilidade de IDs.
- Definir gate de paridade contra consumidores.
Non-Goals
- Nao alterar semantica de opcode
INTRINSIC. - Nao redesenhar toda a arquitetura de builtins do runtime nesta PR.
Method
O que deve ser feito explicitamente
- Criar documento de formato canonico do registry:
- chave canonica,
- versao canonica,
- final id,
- constraints de unicidade.
- Declarar ownership do artefato no profile ISA.
- Definir pipeline de validacao:
- parser estrito,
- check de unicidade de identity e final id,
- check de ordenacao deterministica.
- Definir workflow de manutencao para adicao de intrinsic.
Acceptance Criteria
- Existe uma unica fonte versionada para IDs finais de intrinsic.
- Runtime e compiler referenciam formalmente essa fonte.
- Processo de evolucao de intrinsics fica deterministico e auditavel.
Tests
- Testes de parser/validacao do artefato canonico.
- Testes de paridade de consumidores contra o artefato.
- Gate de CI que falha em divergia do mapping.
Affected Documents
docs/general/specs/20. IRBackend to IRVM Lowering Specification.mddocs/general/specs/15. Bytecode and PBX Mapping Specification.mddocs/pbs/specs/6.1. Intrinsics and Builtin Types Specification.mddocs/general/specs/22. Backend Spec-to-Test Conformance Matrix.md- Runtime specs correspondentes (ajuste posterior no repo runtime).
Open Questions
- Local canonico final do artefato:
runtime(recomendado) oushared-metadatadedicado. runtime