# 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 `. - 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`