Skip to content

Releases

HitSimple v0.3.10 Beta

Pre-release

Choose a tag to compare

@github-actions github-actions released this 15 Oct 12:14
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.

HitSimple v0.3.9

Choose a tag to compare

@github-actions github-actions released this 13 Oct 11:45
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.

HitSimple v0.3.8

Choose a tag to compare

@github-actions github-actions released this 31 Jul 09:20

HitSimple 0.3.8 is a beta patch release.

Highlights:

  • Hardened semantic diagnostics for invalid return byte lengths and address-of operands.
  • Bounded lowering of large Views and oversized integer representations to keep LLVM IR generation tractable.
  • Added fuzz regression seeds and a scheduled mutation campaign covering semantic, codegen, and checked-runtime behavior.

Release assets include Linux tarballs and DEBs, macOS tarballs, Fedora 44 and EL9 RPMs, Windows full/slim ZIPs, the VS Code extension VSIX, and SHA256SUMS.

HitSimple v0.3.7

Choose a tag to compare

@github-actions github-actions released this 24 Jul 14:24

HitSimple 0.3.7 is a beta release.

Highlights:

  • The compiler now runs the LLVM optimization pipeline and emits native object files through a unified TargetMachine, without a temporary LLVM IR round trip.
  • Direct object and static-library emission no longer require Clang; Clang remains the linker driver and is used for external C or C++ sources.
  • GitHub-hosted Linux, macOS, and Windows validation now covers native object emission, sanitizer and PGO paths, debug metadata, and C ABI interoperability.
  • Native AArch64 performance baselines and regression gates cover nine representative workloads with reproducible artifacts.
  • Release assets include 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.

C compatibility struct-by-value ABI remains limited to supported x86_64 SysV ELF layouts. Windows and Darwin reject that ABI explicitly.

HitSimple v0.3.6

Choose a tag to compare

@github-actions github-actions released this 23 Jul 02:06

HitSimple 0.3.6 is a beta release.

Highlights:

  • Differential testing now covers output files, checksums, safety modes, and all supported optimization levels.
  • Native AArch64 semantic regression coverage verifies strict-alignment and platform-specific behavior on GitHub-hosted ARM runners.
  • Reference differential tests and scheduled sanitizer-backed fuzz campaigns provide reproducible artifacts, replay instructions, and minimized failures.
  • Release assets include 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.

C compatibility struct-by-value ABI remains limited to supported x86_64 SysV ELF layouts. Windows and Darwin reject that ABI explicitly.

HitSimple v0.3.5

Choose a tag to compare

@github-actions github-actions released this 21 Jul 13:53

HitSimple 0.3.5 is a beta release.

Highlights:

  • Sema and HIR now preserve complete View semantics and explicit conversion plans across operations, assignments, calls, returns, and ternaries.
  • Checked and static-checked analysis tracks lifetimes and address facts across scope exits, control-flow edges, indirect writes, and calls; static locals now initialize only once.
  • LLVM lowering retains pointer provenance where possible and runs the embedded LLVM optimization pipeline with PGO and optimization remarks.
  • Release assets include 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.

C compatibility struct-by-value ABI remains limited to supported x86_64 SysV ELF layouts. Windows and Darwin reject that ABI explicitly.

HitSimple v0.3.4

Choose a tag to compare

@github-actions github-actions released this 19 Jul 14:37

HitSimple 0.3.4 is a beta release.

Highlights:

  • Checked runtime failures now carry source locations on Linux, macOS, and Windows. Windows functions that use software omit those writes to keep format/scan stable.
  • Release assets include 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; the slim package and macOS/RPM packages require a compatible external Clang 18 or later.

C compatibility struct-by-value ABI remains limited to supported x86_64 SysV ELF layouts. Windows and Darwin reject that ABI explicitly.

HitSimple v0.3.3

Choose a tag to compare

@github-actions github-actions released this 19 Jul 08:27
35ea47c

HitSimple 0.3.3 是正式 release。

发布附件包括 Linux x86_64/aarch64 tar.gz、Linux amd64/arm64 DEB、macOS arm64/x86_64 tar.gz、Fedora 44 与 EL9 的 x86_64/aarch64 RPM、Windows x64 full/slim ZIP、VS Code 扩展 VSIX 和 SHA256SUMS。

Chapter 14 标准库现在以 作为唯一合同真源:75 个 具备生成的公开头、具体 View overload、provider 和 safety obligations。 可选择 manifest 声明的参考实现;当前 reference module 覆盖 、 和 三种 safety mode。

Windows full 包内置 llvm-mingw-20240619-ucrt-x86_64,可直接编译当前 Windows x64 程序;slim 包需要通过 --clang、HITSIMPLE_CLANG 或 PATH 提供兼容的 llvm-mingw/Clang 18。Windows f128 使用 Boost 1.85.0 的 113-bit software backend,并按 IEEE binary128 位模式与 runtime 交互。

DEB 安装到 /usr/bin、/usr/libexec/hitsimple、/usr/lib/hitsimple 和 /usr/share/hitsimple。Ubuntu 22.04 与 Debian 12 需要从 apt.llvm.org 安装 Clang 18;软件包不会自动添加软件源。

macOS 使用 Boost software binary128 backend,要求外部 Clang 18 或更高版本。Fedora 44 和 EL9 RPM 也要求外部 clang >= 18,不内置 Clang。

VS Code 扩展的 Debug Current File 以一个 -g 构建当前 .hs 文件:Linux x86_64/aarch64 通过 Microsoft C/C++ 扩展的 cppdbg 与 GDB 启动,macOS arm64/x86_64 通过 cppdbg 与 LLDB 启动,Windows x64 通过 cppvsdbg 与 CodeView/PDB 启动。远程、交叉目标和自定义 DAP 仍不在此支持范围内。

当前仍是实验性 Beta。C compatibility 的 struct 传值 ABI 只支持 x86_64 SysV ELF;Windows 和 Darwin 会明确拒绝该范围。

HitSimple v0.3.1

Choose a tag to compare

@github-actions github-actions released this 19 Jul 07:19

HitSimple 0.3.1 是正式 release。

发布附件包括 Linux x86_64/aarch64 tar.gz、Linux amd64/arm64 DEB、macOS arm64/x86_64 tar.gz、Fedora 44 与 EL9 的 x86_64/aarch64 RPM、Windows x64 full/slim ZIP、VS Code 扩展 VSIX 和 SHA256SUMS。

Chapter 14 标准库现在以 作为唯一合同真源:75 个 具备生成的公开头、具体 View overload、provider 和 safety obligations。 可选择 manifest 声明的参考实现;当前 reference module 覆盖 、 和 三种 safety mode。

Windows full 包内置 llvm-mingw-20240619-ucrt-x86_64,可直接编译当前 Windows x64 程序;slim 包需要通过 --clang、HITSIMPLE_CLANG 或 PATH 提供兼容的 llvm-mingw/Clang 18。Windows f128 使用 Boost 1.85.0 的 113-bit software backend,并按 IEEE binary128 位模式与 runtime 交互。

DEB 安装到 /usr/bin、/usr/libexec/hitsimple、/usr/lib/hitsimple 和 /usr/share/hitsimple。Ubuntu 22.04 与 Debian 12 需要从 apt.llvm.org 安装 Clang 18;软件包不会自动添加软件源。

macOS 使用 Boost software binary128 backend,要求外部 Clang 18 或更高版本。Fedora 44 和 EL9 RPM 也要求外部 clang >= 18,不内置 Clang。

VS Code 扩展的 Debug Current File 以一个 -g 构建当前 .hs 文件:Linux x86_64/aarch64 通过 Microsoft C/C++ 扩展的 cppdbg 与 GDB 启动,macOS arm64/x86_64 通过 cppdbg 与 LLDB 启动,Windows x64 通过 cppvsdbg 与 CodeView/PDB 启动。远程、交叉目标和自定义 DAP 仍不在此支持范围内。

当前仍是实验性 Beta。C compatibility 的 struct 传值 ABI 只支持 x86_64 SysV ELF;Windows 和 Darwin 会明确拒绝该范围。

HitSimple v0.3.0

Choose a tag to compare

@github-actions github-actions released this 17 Jul 14:01

HitSimple 0.3.0 是正式 release。

发布附件包括 Linux x86_64/aarch64 tar.gz、Linux amd64/arm64 DEB、macOS arm64/x86_64 tar.gz、Fedora 44 与 EL9 的 x86_64/aarch64 RPM、Windows x64 full/slim ZIP、VS Code 扩展 VSIX 和 SHA256SUMS。

新增的 C ABI 互操作支持可将 HitSimple、C、C++ 与 Rust staticlib 组合到同一程序。稳定边界仅为显式 ;C++ 必须使用 C wrapper,Rust 必须使用无修饰的 导出。C++ exception、Rust panic 和 HitSimple / 不得跨越该边界。该能力正式支持 Linux x86_64/AArch64。

Windows full 包内置 llvm-mingw-20240619-ucrt-x86_64,可直接编译当前 Windows x64 程序;slim 包需要通过 --clang、HITSIMPLE_CLANG 或 PATH 提供兼容的 llvm-mingw/Clang 18。Windows f128 使用 Boost 1.85.0 的 113-bit software backend,并按 IEEE binary128 位模式与 runtime 交互。

DEB 安装到 /usr/bin、/usr/libexec/hitsimple、/usr/lib/hitsimple 和 /usr/share/hitsimple。Ubuntu 22.04 与 Debian 12 需要从 apt.llvm.org 安装 Clang 18;软件包不会自动添加软件源。

macOS 使用 Boost software binary128 backend,要求外部 Clang 18 或更高版本。Fedora 44 和 EL9 RPM 也要求外部 clang >= 18,不内置 Clang。

VS Code 扩展的 Debug Current File 以一个 -g 构建当前 .hs 文件:Linux x86_64/aarch64 通过 Microsoft C/C++ 扩展的 cppdbg 与 GDB 启动,macOS arm64/x86_64 通过 cppdbg 与 LLDB 启动,Windows x64 通过 cppvsdbg 与 CodeView/PDB 启动。远程、交叉目标和自定义 DAP 仍不在此支持范围内。

当前仍是实验性 Beta。C compatibility 的 struct 传值 ABI 只支持 x86_64 SysV ELF;Windows 和 Darwin 会明确拒绝该范围。