Releases: hh696-wq/hhy-vm
Release list
HHY Language 1.3.10
Full Changelog: v1.3.9...v1.3.10
HHY Language 1.3.9
Full Changelog: v1.3.8...v1.3.9
HHY Language 1.3.8
Full Changelog: v1.3.7...v1.3.8
HHY Language 1.3.7
Full Changelog: v1.3.6...v1.3.7
HHY Language 1.3.6
HHY Language v1.3.6
HHY v1.3.6 reduces the verified Bytecode VM's scalar Stream overhead while preserving the AST oracle and --engine ast fallback.
- Safely fuses Bytecode
map -> where -> distinct -> collectpipelines backed by bounded Range/List sources. - Executes compiler-recognized Int multiply and modulo/equality closure shapes through fixed local/constant operands and checked Int operations.
- Keeps dynamic closures, effects, unknown calls, parallel/error pipelines, and unsupported Stream kinds on the general runtime path.
- Retains cancellation safepoints, collection and memory limits, overflow/division checks, Stream claiming, close propagation, and profiler fidelity.
No public language semantics, extension protocol, or Bytecode persistence format changed.
HHY Language 1.3.5
HHY Language v1.3.5
HHY v1.3.5 makes the verified Bytecode VM the default execution engine for run, profile, and script shorthand.
Highlights
- Executes verified Opcode trees directly without routing normal Bytecode execution through the AST evaluator.
- Covers expressions, declarations, control flow, functions, closures, errors, Pipes, collections, imports, and module exports.
- Adds verified subtree navigation, resolved local-slot metadata, reusable call frames, low-allocation Stream closure calls, and typed integer fast paths.
- Keeps
--engine astandHHY_ENGINE=astas permanent rollback paths and retains AST as the semantic oracle in CI. - Passes the measured default-switch gates: 1M CPU workload ratio ≤ 0.90, short-script ratio ≤ 1.25, and JSON/I/O ratio ≤ 1.10.
Compatibility
Language syntax, Value/Stream/Error semantics, extension protocol, resource limits, diagnostics, stack traces, cancellation, and dry-run contracts are unchanged.
Verification
The release workflow builds and tests macOS arm64, Linux x86_64, Linux arm64, and Windows x86_64 archives. Each archive has a dedicated SHA-256 file and is included in SHA256SUMS.
HHY Language 1.3.2
HHY v1.3.2
HHY v1.3.2 stabilizes the internal Bytecode VM boundary and makes the AST
semantic oracle a permanent regression gate for the v1.3 train.
Stabilized internal boundary
- Introduces
src/bytecode_runtime.has the only preparation boundary visible
to the semantic Runtime. - Moves compilation, fault injection, verification, structural frame planning,
and Chunk lifetime ownership intosrc/bytecode_runtime.c. - Prevents
runtime.cfrom directly accessingHhyBytecodeChunkor calling the
Compiler, Verifier, or execution planner. - Versions this internal contract with
HHY_BYTECODE_RUNTIME_BOUNDARY_VERSION = 1. - Extends static Runtime governance so boundary bypasses fail CI.
Continuous semantic oracle
- Runs the complete language/runtime suite once with AST and once with Bytecode.
- Preserves deterministic malformed-Bytecode fault injection.
- Runs official real workloads under both engines and records capability skips.
- Uploads benchmark, default-engine decision, and workload evidence from CI.
- Keeps AST as the default because the CPU performance switch gate remains unmet.
Compatibility
- No v1.0 language semantic, extension protocol, lockfile, diagnostic, or exit
status contract changes. - No persistent Bytecode format, external loader, JIT, Native ABI, or public VM ABI.
--engine astremains an explicit fallback and semantic oracle.
HHY Language 1.3.1
HHY v1.3.1
HHY v1.3.1 hardens the opt-in Bytecode path against official real workloads
without changing the frozen language contract or the AST default.
Real-workload compatibility
- Adds
make workload-testand a machine-readable workload evidence report. - Runs each selected official project self-test under both AST and Bytecode.
- Always validates the local Asset Governance filesystem workflow.
- On hosts with loopback socket capability, also validates DataFlow ETL,
FlowGuard, Hong Kong Film Companies, Multi-API Data Collector, my-crawler,
and SiteGraph Auditor. - Preserves every project's existing report assertions, expected failure paths,
dry-run behavior, extension usage, cancellation, and resource boundaries.
CI integration
- Linux arm64/x86_64 and macOS arm64 release suites run the real-workload matrix.
- The release workflow runs the same matrix before archives can be published.
- Capability-based skips are recorded explicitly instead of silently passing.
Compatibility
hhy runremains AST by default.hhy run --engine bytecoderemains source- and diagnostic-compatible.- No Bytecode disk format or public ABI is introduced.
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.
HHY Language 1.3.0-alpha
HHY 1.3.0-alpha
HHY 1.3.0-alpha introduces the first verifiable Bytecode compiler skeleton while
keeping the AST evaluator as the only execution engine and default runtime path.
Bytecode compiler skeleton
- Defines an internal Chunk with bounded instruction and constant storage.
- Lowers every current AST node kind to an explicit Opcode instruction.
- Deduplicates token text in a constant pool.
- Preserves source line and column on every instruction.
- Adds
hhy bytecode <file.hhy>to compile, verify, and disassemble the internal IR.
Verifier
- Rejects unknown opcodes and out-of-range constant references.
- Validates the complete preorder node structure and declared child counts.
- Enforces instruction, constant, and nesting limits.
- Requires one canonical final
HALTand rejects trailing instructions. - Runs against all valid examples and receives direct malformed-chunk and fuzz coverage.
Compatibility boundary
hhy runcontinues to use the AST evaluator.- Parser, Checker, Resolver, Runtime values, Streams, Errors, effects, cancellation,
extensions, and resource limits are unchanged. - Opcode numeric values and Chunk layout are internal alpha details.
- No Bytecode VM, persistent
.hhyc, disk cache, external Bytecode loader, Native ABI,
or default-engine switch is included.
Release policy
This is a prerelease. Linux x86_64, Linux arm64, macOS arm64, and Windows x86_64
must pass before publishing the corresponding archives and checksums. The stable
v1.2.2 release remains the recommended production release.