Repository navigation
HitSimple v0.3.10 Beta
Pre-releaseHitSimple 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 nativeFILE*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-levelas(#25–#26). - Canonicalize explicit
nonecall 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 explicitas bytesView
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 asnew flag = trueornew bits = (choose ? left : right) as u64may
be rejected even when its explicitly typed equivalent is supported. Use
new flag as bool = trueandnew bits as u64 = ..., or an explicit length
forbytesor untemplated declarations (for example,new raw[8]). The
direct ternaryascorrection 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
areturnexpression. Canonicalizingnonecall 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 uselength()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.mutparameters and
mut selfremain 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.