69 lines
2.3 KiB
Markdown
69 lines
2.3 KiB
Markdown
# PR-05.4 - IRVM Program Coherence Without Bypass
|
|
|
|
## Briefing
|
|
|
|
Existe bypass de coerência no `IRVMProgram` em presença de `RAW_SYSCALL` e derivação com placeholders (`__unknown__`).
|
|
|
|
Esta PR remove esses atalhos do fluxo canônico e endurece o contrato de coerência `IRVM <-> EmissionPlan`.
|
|
|
|
## Motivation
|
|
|
|
### Dor atual que esta PR resolve
|
|
|
|
1. Programa pode aparentar coerente e mesmo assim carregar informação inválida para emissão.
|
|
2. Brecha para mascarar erro estrutural antes do Gate de emissão/verificação.
|
|
3. Diagnóstico tardio e pouco preciso para falhas de marshaling.
|
|
|
|
## Target
|
|
|
|
`IRVMProgram` com coerência obrigatória, sem exceção silenciosa para formas proibidas no pipeline canônico.
|
|
|
|
## Dependencies
|
|
|
|
Prerequisito direto:
|
|
|
|
1. `PR-05.0.3` (payload de IDs tipados no contrato executável).
|
|
|
|
## Scope
|
|
|
|
1. Regras de coerência no construtor e no `coherentEmissionPlan()`.
|
|
2. Eliminação de placeholder de syscall desconhecida em caminho de derivação canônico.
|
|
3. Taxonomia de erro para incoerência estrutural.
|
|
|
|
## Non-Goals
|
|
|
|
1. Não muda verificador runtime.
|
|
2. Não muda decisão de proibir `RAW_SYSCALL` em pre-load.
|
|
|
|
## Method
|
|
|
|
### O que deve ser feito explicitamente
|
|
|
|
1. Remover condição que pula validação de coerência quando detecta `RAW_SYSCALL`.
|
|
2. Tornar inválido no caminho canônico qualquer plano com operação proibida para pre-load.
|
|
3. Remover geração de `HOSTCALL` com `SyscallDecl("__unknown__",...)` em derivação automática.
|
|
4. Falhar cedo com erro determinístico e mensagem orientada a ação.
|
|
|
|
## Acceptance Criteria
|
|
|
|
1. `IRVMProgram` nunca retorna plano incoerente no fluxo canônico.
|
|
2. Não existe mais derivação com placeholders desconhecidos para hostcall.
|
|
3. Erros de coerência aparecem antes da emissão binária.
|
|
4. Coerência valida vínculos de IDs de call/intrinsic com tipo correto de domínio.
|
|
|
|
## Tests
|
|
|
|
1. Testes negativos para `RAW_SYSCALL` no plano e para hostcall sem metadado válido.
|
|
2. Testes de regressão para caminhos válidos existentes.
|
|
3. Testes de estabilidade de códigos de erro.
|
|
|
|
## Affected Documents
|
|
|
|
1. `docs/general/specs/15. Bytecode and PBX Mapping Specification.md`
|
|
2. `docs/general/specs/20. IRBackend to IRVM Lowering Specification.md`
|
|
3. `docs/general/specs/19. Verification and Safety Checks Specification.md`
|
|
|
|
## Open Questions
|
|
|
|
Sem bloqueios arquiteturais.
|