Skip to content

HHY Language 1.3.0

Choose a tag to compare

@github-actions github-actions released this 01 Sep 04:28
· 42 commits to main since this release

HHY v1.3.0

HHY v1.3.0 formally ships the opt-in verified Bytecode execution path while
preserving the frozen v1.0 language semantics and the AST fallback.

Bytecode execution

  • Adds hhy run --engine ast|bytecode; plain hhy run remains AST by default.
  • Compiles and verifies every Bytecode run before execution planning.
  • Enforces bounded structural frames and keeps function recursion governed by
    the shared RuntimeLimits.max_recursion call boundary.
  • Reuses the single Runtime implementation for Values, closure/upvalue
    lifetimes, structured errors, GC roots, cancellation, Streams, effects, and
    filesystem/process/HTTP/extension boundaries.
  • Rejects malformed opcodes, constants, trees, and HALT structure before runtime.

Diagnostics and evidence

  • Adds hhy profile --engine ast|bytecode with engine, HHY function, and source
    location reporting.
  • Adds bounded HHY call stacks to structured errors.
  • Runs the complete release suite independently with AST and Bytecode selected.
  • Adds deterministic invalid-opcode and missing-HALT fault injection.
  • Adds schema-2 engine benchmarks and a machine-readable default-switch decision.

Default-engine decision

The reviewed local RC evidence did not pass every performance gate: the measured
CPU-bound gain was below the required threshold and the JSON/I/O case regressed
beyond its limit. HHY therefore keeps AST as the default and Bytecode opt-in.
This is the intended evidence-driven behavior, not an incomplete silent switch.

Compatibility and release boundary

  • No persistent .hhyc format, external Bytecode loader, or public Bytecode ABI.
  • Existing source, extension protocol, lockfile, diagnostics, and exit-code
    contracts remain compatible.
  • Release archives continue to target macOS arm64, Linux x86_64, Linux arm64,
    and Windows x86_64 through MSYS2.