• v0.17.0 Stable

    petrbalvin released this 2026-08-02 21:11:30 +00:00 | 262 commits to main since this release

    Phase 3 begins: dynamic analysis. A JIT execution substrate that assembles
    Plan 9 amd64 kernels into executable memory and calls them directly — pure Go
    (stdlib only, syscall.Mmap + an assembly trampoline), no cgo, no external
    toolchain.

    Added

    • verify package: JIT infrastructure — Map copies machine code into a
      W^X memory mapping, Call invokes it through an ABI0 trampoline that
      switches to a prepared stack and back. Load/LoadSource/LoadAST
      parse, assemble and map a .s file in one step; Kernel.CallFunc
      marshals the argument block and returns results.
    • gasm verify subcommand: assembles a file, JIT-loads it and reports the
      available functions; with -smoke, calls each NOSPLIT function with
      zeroed arguments to confirm the trampoline works end-to-end.
    • Integration tests: the go-lz4 decodeBlockAVX2 and wideCopyAVX2
      kernels (699 and 146 bytes) assemble, map and execute correctly —
      known-answer LZ4 blocks decode bit-for-bit, wide copies of 0–1024 bytes
      match, malformed input returns the correct error codes.

    Verified

    • just test (race, 84.6 % total coverage, verify 82.2 %).
    • gasm verify on both go-lz4 kernels: all functions JIT-load and
      smoke-test clean.
    Downloads