• v0.26.0 Stable

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

    Universal differential fuzzing: gasm verify --fuzz needs no hand-written
    reference. It parses the // func signature from the assembly source,
    generates typed random inputs (slices with random content, ints, pointers to
    fixed arrays), JIT-executes BOTH the gasm-assembled and the go-tool-asm-
    assembled versions with independent buffer copies, and compares the result
    area bit-for-bit.

    Added

    • verify: FuzzFunc / ExtractSignatures / parseFuncSig — universal
      differential fuzz driven by the conventional // func comment. Each
      version gets its own buffer set (deep copy) so functions that write to
      their arguments (histogram increments) don't corrupt the other's input.
    • gasm verify --fuzz [-n N]: runs the differential fuzz for every function
      with a parseable signature. Total functions (wideCopy, pack16, decorrelate,
      analyze, autocorr) pass; partial functions (decoders that fault on malformed
      input) should use --ground-truth instead.

    Known limitation

    --fuzz crashes the process for partial functions (e.g. LZ4 decoders) whose
    over-copy paths read past the buffer on random garbage input. Subprocess
    isolation (fork per function) is planned. Use --ground-truth for decoders.

    Downloads