prometeu-studio/docs/pbs/pull-requests/PR-05.5-irvm-validator-real-stack-effects-hostcall-intrinsic.md
2026-03-24 13:42:29 +00:00

2.1 KiB

PR-05.5 - IRVM Validator Real Stack Effects for HOSTCALL and INTRINSIC

Briefing

O validador IRVM hoje modela HOSTCALL e INTRINSIC com efeito de stack genérico insuficiente para rigor JVM-grade.

Esta PR passa a validar efeitos reais de stack por assinatura (arg_slots/ret_slots) nessas operações.

Motivation

Dor atual que esta PR resolve

  1. Possíveis underflow/overflow não detectados em chamadas host/intrínseco.
  2. Retorno efetivo divergente sem falha no precheck.
  3. Confiança excessiva na emissão sem validação semântica de pilha completa.

Target

IRVMValidator e metadados de operação com informação suficiente para calcular efeito real de stack.

Scope

  1. Modelo de metadados para chamadas host e intrínseco no estágio IRVM.
  2. Regras de validação de stack baseadas em assinatura.
  3. Diagnósticos determinísticos de mismatch.

Non-Goals

  1. Não define política de otimização.
  2. Não altera opcode wire format.

Method

O que deve ser feito explicitamente

  1. Introduzir acesso a arg_slots/ret_slots efetivos durante validação de HOSTCALL.
  2. Introduzir contrato equivalente para INTRINSIC (a partir de tabela canônica no pipeline).
  3. Aplicar stack effect real no data-flow do validador.
  4. Rejeitar mismatch de altura de retorno em joins e RET final.
  5. Preservar mensagens de erro estáveis na taxonomia MARSHAL_VERIFY_PRECHECK_*.

Acceptance Criteria

  1. HOSTCALL e INTRINSIC participam do cálculo real de pilha no validador.
  2. Casos de mismatch de assinatura falham no precheck com erro determinístico.
  3. Casos válidos seguem aprovando sem regressão.

Tests

  1. Testes positivos com combinações de arg/ret slots para host e intrínsecos.
  2. Testes negativos para underflow, overflow e retorno incompatível.
  3. Testes de join mismatch com chamadas em blocos ramificados.

Affected Documents

  1. docs/general/specs/20. IRBackend to IRVM Lowering Specification.md
  2. docs/general/specs/19. Verification and Safety Checks Specification.md

Open Questions

Sem bloqueios arquiteturais.