Repository navigation
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.