-
v0.19.0 Stable
released this
2026-08-02 21:11:30 +00:00 | 260 commits to main since this releaseRuntime ABI checks: the second pillar of Phase 3. The JIT trampoline now
has an ABI-checking variant that sets sentinels in the callee-saved registers
(BP, R14) before entering the assembled function and verifies they survive on
return, plus a red-zone canary (128 bytes below SP filled with 0xA5) that
detects any illegal write below the stack pointer.Added
verify:CallChecked/Kernel.CallFuncChecked— ABI-checking JIT call
with sentinel registers and red-zone canary; returns anABIReport
(BPClobbered, R14Clobbered, RedZoneHit).verify: the rawleaveJITCheckedRawtrampoline — a TEXT symbol with no
ABIInternal wrapper (address obtained via GLOBL/DATA), so the JIT
function's RET lands directly in the check code and sees the registers
exactly as the function left them.- Tests: deliberate BP/R14 clobberers detected; both go-lz4 kernels
confirmed ABI-clean (BP preserved, R14 preserved, red zone intact).
Downloads