Skip to content

HitSimple v0.3.10 Beta

Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 15 Oct 12:14
· 37 commits to master since this release
97a9288

HitSimple 0.3.10

HitSimple 0.3.10 is a beta consolidation release covering PRs #18–#28 since
0.3.9. Compiler, VS Code extension and packages retain the numeric 0.3.10
version; GitHub marks the release as a prerelease with a Beta title. It is
not a stable release or a claim of complete Standard conformance.

Changes since 0.3.9

  • Diagnose file handles observed closed through checked runtime wrappers,
    including copied aliases, while retaining the native FILE* ABI (#18).
  • Add a reproducible, pinned-release performance comparison on one native
    AArch64 runner. Results describe that runner and workload, not a universal
    speed guarantee (#19).
  • Add six harness-verified practical recipes for C, C++, Rust, checked
    diagnostics, ctype providers and VS Code debugging (#20).
  • Preserve low-byte ctype semantics across providers and materialize canonical
    one-byte Boolean results (#21–#22).
  • Normalize Boolean value reads and return assignment, preserving the
    distinction between raw View bytes and Boolean consumers (#23).
  • Preserve explicit numeric return-conversion boundaries (#24).
  • Copy floating ternary Views without numeric conversion, and use validated
    ternary lengths for direct expression-level as (#25–#26).
  • Canonicalize explicit none call results for ordinary/core-extern functions,
    methods and untemplated user-operator results (#27).
  • Add a bounded Standard evidence crosswalk: 151 numbered headings, 75 manifest
    APIs and 14 inspected witnesses. These counts are navigation and inspection
    metadata, not percentages of conformance or execution results (#28).
  • Keep package README links to the practical guide and evidence report usable
    by pointing to this version's source tree. Those guides depend on repository
    fixtures and implementation sources that binary packages do not include.

Known beta limits

  • Some Standard-valid direct floating arguments to raw-memory builtins are
    rejected by argument metadata/lowering. Apply an explicit as bytes View
    when observing or copying the representation; this preserves bytes and does
    not perform numeric conversion.
  • Generic declaration-length inference is incomplete. An untyped declaration
    such as new flag = true or new bits = (choose ? left : right) as u64 may
    be rejected even when its explicitly typed equivalent is supported. Use
    new flag as bool = true and new bits as u64 = ..., or an explicit length
    for bytes or untemplated declarations (for example, new raw[8]). The
    direct ternary as correction does not
    generalize inference to every consumer or chained reinterpretation.
  • Named return signatures are accepted, but their names do not yet establish
    implicit local return-storage variables. Use explicit local variables and
    a return expression. Canonicalizing none call results does not implement
    named return-storage initialization.
  • The raw-memory, declaration-inference and named-return-storage failures above
    were observed rejecting valid programs at
    compile time; the focused probes did not demonstrate runtime corruption.
    That observation is limited to the tested programs, not a general safety
    guarantee. Separately, length() does not fully validate its operand:
    length(1 as NotATemplate) is currently accepted even though the template
    is invalid. Do not use length() as a check that an expression is valid.
    No compiler changes for these residual limits are included here.
  • Checked file handles are detected only when closure was observed through
    the runtime wrappers. Raw FFI addresses, external closes, address-reused
    stale aliases and concurrent runtime operations remain outside the detection
    guarantees. Declared extern-global sizes remain declaration-supplied ABI
    contracts; arbitrary FFI addresses do not gain bounds metadata.
  • C compatibility struct-by-value ABI remains limited to covered x86_64 SysV
    ELF layouts; Windows and Darwin reject it explicitly. mut parameters and
    mut self remain reserved. Platform-specific f128 arithmetic and NaN payload
    limits remain as documented in README and USAGE.

For the inspected scope and exact witness identities, see the
versioned Standard evidence map.
Committed witness rows record source inspection; execution is separate and
must be established from exact-candidate CI or local run reports.

Distribution and verification

The release contains 13 packages: Linux x86_64/aarch64 tarballs and DEBs,
macOS arm64/x86_64 tarballs, Fedora 44 and EL9 x86_64/aarch64 RPMs, Windows
x64 full/slim ZIPs and the VS Code VSIX, plus SHA256SUMS.
The Windows full package bundles llvm-mingw. Slim/macOS packages require
Clang 18 matching their embedded LLVM; Linux packages use the documented
system toolchain requirements. Packages remain unsigned; macOS archives
are not notarized. No new target or installer is introduced.

Publication remains create-only and exact-commit guarded. The complete native
platform/package matrix must pass; a draft's 13 packages are downloaded and
checked against SHA256SUMS before publication. A successful validation-only
workflow is not a published release. See the
release procedure.