77 lines
2.5 KiB
Markdown
77 lines
2.5 KiB
Markdown
# PR-09.7 - Compiler Normalization to ISA Intrinsic Registry Artifact
|
|
|
|
## Briefing
|
|
|
|
Apos estabelecer o artefato unico do registry (PR-09.6), o compiler precisa consumir exclusivamente esse artefato e remover caminhos residuais de dual-authoring.
|
|
|
|
## Motivation
|
|
|
|
### Dor atual que esta PR resolve
|
|
|
|
1. Compiler ainda pode depender de representacao local paralela.
|
|
2. Teste de paridade atual com parse de `builtins.rs` e acoplamento fragil de formato.
|
|
3. Falta um caminho de consumo unico no pipeline backend.
|
|
|
|
## Target
|
|
|
|
Normalizar o lado compiler para source-of-truth unico:
|
|
|
|
1. `IRVMIntrinsicRegistry` carregando apenas o artefato canonico ISA,
|
|
2. remover/encapsular validacoes que dependem de parsing textual de runtime internals,
|
|
3. reforcar gate de consistencia do consumidor compiler.
|
|
|
|
## Dependencies
|
|
|
|
Prerequisito direto:
|
|
|
|
1. `PR-09.6`
|
|
|
|
## Scope
|
|
|
|
1. Ajustar `IRVMIntrinsicRegistry` para modo canonical-only.
|
|
2. Revisar testes de paridade:
|
|
- principal: paridade com artefato canonico,
|
|
- opcional/informativo: runtime-backed check separado.
|
|
3. Garantir mensagens de erro e diagnostico estaveis para registry invalido.
|
|
|
|
## Non-Goals
|
|
|
|
1. Nao alterar implementacao de intrinsics no runtime.
|
|
2. Nao mover ownership de docs runtime nesta PR.
|
|
|
|
## Method
|
|
|
|
### O que deve ser feito explicitamente
|
|
|
|
1. Consolidar parser/loader do registry no compiler com contrato estrito.
|
|
2. Substituir assercoes hardcoded por fixtures derivadas do artefato.
|
|
3. Separar teste de compatibilidade runtime:
|
|
- nao bloquear desenvolvimento local quando runtime repo ausente,
|
|
- bloquear em modo strict/CI quando configurado.
|
|
4. Atualizar docs de contribuicao do compiler para fluxo de update de intrinsics.
|
|
|
|
## Acceptance Criteria
|
|
|
|
1. Compiler nao tem mais fonte duplicada de mapping de intrinsic IDs.
|
|
2. `LowerToIRVMService` resolve IDs finais exclusivamente via artefato canonico.
|
|
3. Suite de testes backend cobre:
|
|
- carregamento valido,
|
|
- invalid registry,
|
|
- mismatch detectavel em strict mode.
|
|
|
|
## Tests
|
|
|
|
1. `:prometeu-compiler:prometeu-build-pipeline:test --tests *IRVMIntrinsicRegistry*`
|
|
2. `:prometeu-compiler:prometeu-build-pipeline:test --tests *LowerToIRVMServiceTest*`
|
|
3. `:prometeu-compiler:prometeu-build-pipeline:test --tests *BackendConformanceMatrixSpecTest*`
|
|
|
|
## Affected Documents
|
|
|
|
1. `docs/general/specs/20. IRBackend to IRVM Lowering Specification.md`
|
|
2. `docs/general/specs/22. Backend Spec-to-Test Conformance Matrix.md`
|
|
3. `docs/pbs/pull-requests/INDEX.md`
|
|
|
|
## Open Questions
|
|
|
|
1. Nenhuma bloqueante para lado compiler.
|