Skip to content

HitSimple v0.3.9

Latest

Choose a tag to compare

@github-actions github-actions released this 13 Oct 11:45
· 49 commits to master since this release
26c5a5c

HitSimple 0.3.9

HitSimple 0.3.9 is a beta patch release. It preserves the existing language
standard and supported platform scope.

Changes since 0.3.8

  • Diagnose non-addressable index and slice bases during semantic analysis,
    including the invalid input discovered by the weekly sema fuzz campaign.
  • Register declared extern globals with the checked runtime, so in-bounds
    dereferences of C-defined globals use the declared object boundary.
  • Add executable regression coverage for successful checked file-handle I/O
    and for deterministic rejection of unregistered raw FFI addresses.
  • Repair scheduled mutation-campaign argument handling, stabilize the
    HS-Smith mutation baseline under parallel tests, and leave build headroom
    for the complete daily and weekly sanitizer-backed fuzz campaigns.

Compatibility and limits

  • A declared extern global's size remains an ABI contract supplied by the
    declaration. Raw addresses returned by FFI functions do not carry boundary
    metadata and are conservatively rejected by checked dereferences.
  • The checked handle-I/O regression covers a successful use path. File-handle
    ownership and lifetime validation are not added by this patch.
  • C compatibility struct-by-value ABI remains limited to supported x86_64
    SysV ELF layouts; Windows and Darwin reject that ABI explicitly.

Distribution

The release asset set comprises Linux tarballs and DEBs, macOS tarballs,
Fedora 44 and EL9 RPMs, Windows full/slim ZIPs, the VS Code extension VSIX,
and SHA256SUMS. The Windows full package bundles llvm-mingw. Slim and macOS
packages require a Clang 18 toolchain matching their embedded LLVM; RPM
packages require the matching system Clang major. Existing unsigned package
and macOS notarization limitations remain unchanged.

A pull-request or default manually dispatched Release workflow validates
packages without publishing them. Publication uses either an existing version
tag or an explicitly requested, exact-commit manual run on master. Both paths
require the complete package matrix and downloaded-checksum checks before
publication. See the repository's docs/releasing.md for the guarded manual
procedure and its recovery limits.