HHY Language 1.3.0
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; plainhhy runremains AST by default. - Compiles and verifies every Bytecode run before execution planning.
- Enforces bounded structural frames and keeps function recursion governed by
the sharedRuntimeLimits.max_recursioncall 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|bytecodewith 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
.hhycformat, 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.