prometeu-studio/docs/pbs/pull-requests/PR-034-backend-emitter-hostcall-sysc-contract.md
2026-03-24 13:42:24 +00:00

1.4 KiB

PR-034 - Backend Emitter HOSTCALL and SYSC Contract

Briefing

Fechar o contrato de emissao host-backed e intrinsic no emitter: deduplicacao canonica de SYSC, ordenacao por primeira ocorrencia, HOSTCALL em pre-load e rejeicao de SYSCALL bruto.

Target

  • Implementar materializacao de syscalls no artefato.
  • Implementar map host binding -> sysc_index.
  • Preservar caminho de INTRINSIC distinto de host.

Method

  • Deduplicar SYSC por (module,name,version) e manter ordem da primeira ocorrencia.
  • Emitir chamadas host-backed como HOSTCALL <sysc_index>.
  • Rejeitar candidatas que contenham SYSCALL em imagem pre-load (MARSHAL_LINKAGE_*).
  • Validar mismatch detectavel de ABI (arg_slots, ret_slots) com metadado de compilacao.

Acceptance Criteria

  1. SYSC deduplicado e ordenado por primeira ocorrencia.
  2. Nao existe SYSCALL bruto no artefato pre-load emitido.
  3. Caminho intrinsic nao polui SYSC.
  4. Falhas de linkage sao deterministicas.

Tests

  1. Teste positivo com chamadas host repetidas gerando um unico SYSC.
  2. Teste negativo de SYSCALL bruto no pre-load.
  3. Teste negativo de mismatch ABI em host binding.
  4. Teste positivo de intrinsic sem entradas em SYSC.

Affected Documents

  • docs/general/specs/15. Bytecode and PBX Mapping Specification.md
  • docs/general/specs/19. Verification and Safety Checks Specification.md
  • docs/pbs/specs/6.2. Host ABI Binding and Loader Resolution Specification.md