70 lines
2.1 KiB
Markdown
70 lines
2.1 KiB
Markdown
# PR-06.3 - IRVM_EXT Contract and Elimination Fixtures
|
|
|
|
## Briefing
|
|
|
|
O contrato de `IRVM_EXT` esta parcialmente coberto apenas pelo `INTERNAL_EXT` atual.
|
|
|
|
Esta PR amplia cobertura para garantir metadados estruturais e eliminacao antes da emissao.
|
|
|
|
## Motivation
|
|
|
|
### Dor atual que esta PR resolve
|
|
|
|
1. Requisito `G20-6.2` permanece `partial`.
|
|
2. Falta evidencia para mais de um formato de extensao interna.
|
|
3. Dificuldade de evoluir extensoes com seguranca sem regressao de precheck.
|
|
|
|
## Target
|
|
|
|
Suite de fixtures para contrato de `IRVM_EXT` e precondicao de eliminacao no caminho de emissao.
|
|
|
|
## Dependencies
|
|
|
|
Prerequisitos diretos:
|
|
|
|
1. `PR-05.6` (otimizador ativo).
|
|
2. `PR-05.4` (coerencia de programa sem bypass).
|
|
|
|
## Scope
|
|
|
|
1. Fixtures com multiplas op variantes internas (ou metadados distintos equivalentes).
|
|
2. Validacao explicita de metadados estruturais (`pops/pushes/branch/terminator`).
|
|
3. Prova de rejeicao quando opcode interno residual chega ao emit.
|
|
|
|
## Non-Goals
|
|
|
|
1. Nao define novas extensoes de runtime.
|
|
2. Nao altera ISA core publicado.
|
|
|
|
## Method
|
|
|
|
### O que deve ser feito explicitamente
|
|
|
|
1. Adicionar cenarios de teste para `IRVM_EXT` alem do caso trivial existente.
|
|
2. Verificar que `OptimizeIRVM` elimina extensoes internas em caminho canônico.
|
|
3. Verificar que `EmitBytecode` falha deterministicamente quando extensao residual permanece.
|
|
4. Atualizar a matriz para `G20-6.2` conforme cobertura final.
|
|
|
|
## Acceptance Criteria
|
|
|
|
1. Contrato estrutural de `IRVM_EXT` fica provado por testes dedicados.
|
|
2. Caminho de eliminacao pre-emissao e coberto com positivo/negativo.
|
|
3. `G20-6.2` evolui para `pass` se cobertura completa.
|
|
|
|
## Tests
|
|
|
|
1. `IRVMValidatorTest` e `OptimizeIRVMServiceTest` com novos casos.
|
|
2. `EmitBytecodePipelineStageTest` para residual interno.
|
|
3. Reexecucao:
|
|
- `:prometeu-compiler:prometeu-build-pipeline:test`
|
|
|
|
## Affected Documents
|
|
|
|
1. `docs/general/specs/20. IRBackend to IRVM Lowering Specification.md`
|
|
2. `docs/general/specs/21. IRVM Optimization Pipeline Specification.md`
|
|
3. `docs/general/specs/22. Backend Spec-to-Test Conformance Matrix.md`
|
|
|
|
## Open Questions
|
|
|
|
Sem bloqueios arquiteturais.
|