Skip to content

v0.2.0

Choose a tag to compare

@celox-bot celox-bot released this 17 Aug 09:33
ef74868

0.2.0 (2026-08-17)

⚠ BREAKING CHANGES

  • frontend: diagnose mutable for loop bounds

Features

  • arm64: add bootstrap backend and shared regalloc (e4c7c50)
  • arm64: add experimental native backend (e7e8b2b)
  • arm64: gate experimental backend (82924f2)
  • arm64: integrate native scalar backend (1c2c67c)
  • arm64: own final register coloring (655a303)
  • arm64: own spill insertion (f54df10)
  • arm64: verify target allocation facts (9f138a6)
  • frontend: diagnose mutable for loop bounds (e4f3af3)
  • testbench: inject TypeScript components (d19e9da)
  • testbench: inject TypeScript components (af09819)
  • testbench: support Veryl components (b64208b)
  • testbench: support Veryl components (5f48c08)
  • testbench: support Veryl random methods (df3052f)
  • testbench: support Veryl random methods (d4704a4)
  • veryl: support hierarchical testbench reads (c182952)
  • veryl: support hierarchical testbench reads (50de288)
  • vite: expose injected components to Veryl LSP (c4725f7)

Bug Fixes

  • arm64: preserve spilled phi copies (3a54676)
  • bench: keep CodSpeed compilation suite opt-in (f5debc3)
  • ci: address benchmark matrix review (9453945)
  • ci: address Veryl lane review feedback (8f7393c)
  • ci: allow stable develop transition (2e3b1ac)
  • ci: allow stable develop transition (e5ca907)
  • ci: build playground before browser tests (7b14669)
  • ci: guard develop sync branch reset (272d2eb)
  • ci: isolate fixed gate Cargo features (dd004cf)
  • ci: keep Heliodor host metadata outside checkout (c00dbee)
  • ci: keep Heliodor host metadata outside checkout (40953bd)
  • ci: make Heliodor benchmarks non-blocking (9933f65)
  • ci: make release publication recoverable (829f547)
  • ci: make release publication recoverable (3d9622b)
  • ci: preserve nightly and converter coverage (d10516f)
  • ci: preserve Veryl promotion overlays (3850cd2)
  • ci: reconcile develop lockfile during sync (d0a57ce)
  • ci: reconcile develop lockfile during sync (e08da72)
  • ci: refine ARM64 Heliodor scheduling (a06b92b)
  • ci: restore Heliodor on pull requests (3f8530a)
  • ci: restore Heliodor on pull requests (7795d8f)
  • ci: skip CodSpeed for merge groups (2ed7233)
  • ci: skip CodSpeed for merge groups (d688c24)
  • ci: stop repeated Veryl lockfile rolls (982b0c8)
  • ci: stop repeated Veryl lockfile rolls (70e8432)
  • ci: sync develop from checked-out master (1dbf0c2)
  • ci: use FxHashMap alias in builder (af71811)
  • cranelift: boot Linux correctly (65c3fd0)
  • cranelift: boot Linux correctly (3bdc7dc)
  • deps: update napi-rs and emnapi compatibility (2959f19)
  • deps: update napi-rs and emnapi compatibility (ed36df1)
  • deps: update napi-rs and emnapi compatibility (b9542c6)
  • deps: update napi-rs and emnapi compatibility (614baba)
  • deps: update rust crate wasm-encoder to 0.255 (7bfabb7)
  • deps: update rust crate wasm-encoder to 0.255 (bcae53d)
  • deps: update rust crate wasm-encoder to 0.256 (d931980)
  • deps: update rust crate wasm-encoder to 0.256 (e339949)
  • frontend: adapt call analysis to Veryl 0.20.3 (6f369fc)
  • frontend: address remaining output observer cases (ab897a9)
  • frontend: align connection effect previews (38b227d)
  • frontend: allow outputless comb statement calls (75f50ed)
  • frontend: allow outputless comb statement calls (0e37b31)
  • frontend: allow reverse exclusive sentinel (6cd2572)
  • frontend: classify missing function bindings as invalid (23ef912)
  • frontend: classify missing function bindings as invalid (fe2a0c0)
  • frontend: close remaining loop-width gaps (eaf938c)
  • frontend: collect nested comb runtime effects (cd2f5d7)
  • frontend: complete ordered effect collection (c96b5ca)
  • frontend: compose instance connection effects (872709a)
  • frontend: cover mutable for-bound edge cases (7e72d05)
  • frontend: enforce i32 bitwise loop steps (fb15dba)
  • frontend: guard ordered comb effects (61f1b08)
  • frontend: harden fixed-width loop progress (3ad4c4e)
  • frontend: harden observer effect collection (cb37859)
  • frontend: isolate connection observer state (dfef593)
  • frontend: isolate nested observer captures (ba447cf)
  • frontend: lower comb output calls in expressions (e135f6a)
  • frontend: lower comb output calls in expressions (658e9ad)
  • frontend: lower instance connection outputs (dd4ae06)
  • frontend: lower output connection index effects (bf5a0d3)
  • frontend: preserve bitwise loop step width (3797d78)
  • frontend: preserve conditional comb effects (564d059)
  • frontend: preserve event operand evaluation order (f98ab94)
  • frontend: preserve fixed-width loop progress (3ede429)
  • frontend: preserve function loop effect control (9f0ff8e)
  • frontend: preserve function output contexts (62841f2)
  • frontend: preserve function return effect control (5ba0e71)
  • frontend: preserve guarded call evaluation (1463135)
  • frontend: preserve i32 loop step overflow (77ab12f)
  • frontend: preserve instance connection effects (5264795)
  • frontend: preserve observer capture positions (67e8750)
  • frontend: preserve ordered comb effects (905b521)
  • frontend: preserve ordered comb expression effects (a2639fc)
  • frontend: preserve ordered output connections (d0b0821)
  • frontend: preserve output and const expression order (ecc7328)
  • frontend: propagate comb output calls across contexts (a73ffff)
  • frontend: skip inactive connection writes (d0aca85)
  • frontend: support bitwise for-loop steps (06f1635)
  • frontend: support bitwise for-loop steps (8526717)
  • frontend: trigger connection effects on transitions (08afb04)
  • frontend: use converted constant values (982844d)
  • frontend: warn on time-advancing loop bounds (eae78c7)
  • napi: synchronize CLI and emnapi versions (9641615)
  • napi: synchronize Rust and emnapi compatibility (f7a4ba3)
  • native: preserve four-state constant masks (ace4863)
  • native: preserve four-state constant masks (0ca402c)
  • optimizer: preserve entry-live fused state (488010f)
  • playground: isolate preview server (1205727)
  • playground: restore browser startup (621469a)
  • playground: restore browser startup (463890c)
  • preserve required compiler validation (bd83f0a)
  • restore Heliodor boot compatibility (28c4a66)
  • restore Heliodor boot compatibility (b1781c9)
  • simulator: defer authorized loop validation (2cd40e3)
  • simulator: preserve tests for named projects (4153897)
  • slt: map addresses without recursion (18190c9)
  • stage overlapping FF write ranges together (0be0f57)
  • testbench: address component review feedback (ac02dc6)
  • testbench: address component scheduling review (db81516)
  • testbench: address follow-up review (69568c8)
  • testbench: address injected component review (ce7452e)
  • testbench: address latest component review (92e8085)
  • testbench: address latest component review feedback (b989e6a)
  • testbench: draw implicit seeds at execution (b7e0d77)
  • testbench: evaluate dynamic reset durations (8b4eb86)
  • testbench: flatten packed hierarchical selects (12b11ee)
  • testbench: handle hierarchical select geometry (08c15d1)
  • testbench: honor selected destination geometry (8019bd0)
  • testbench: preserve dynamic resets and clocked child state (6dced49)
  • testbench: preserve random seed accessor API (5da3bd7)
  • testbench: preserve selected destinations (8e8bb42)
  • testbench: preserve selected destinations (8c8966d)
  • testbench: preserve signed random result width (1f59dd1)
  • testbench: reject dynamic reset durations (54e2314)
  • testbench: reject runtime values as static timing (7a22a67)
  • testbench: reject selected destinations and randomize unset seeds (db3c7ea)
  • testbench: reject unsupported selected helper writes (a0979b4)
  • testbench: respect layout and argument widths (9191526)
  • testbench: validate selected random returns (d4d5b1a)
  • veryl: address 0.20.3 integration regressions (63f510e)
  • veryl: address hierarchical read feedback (f361b5e)
  • veryl: carry lazy array item caches across branches (caa9e93)
  • veryl: check hierarchical immediate writes (06e5662)
  • veryl: coerce FF function results (e0594fe)
  • veryl: detect callee array alias writes (79b7a1c)
  • veryl: detect nested FF runtime effects (872ed71)
  • veryl: evaluate unused array input effects (b6e2107)
  • veryl: execute conditional FF runtime effects (f65630c)
  • veryl: guard FF function state transitions (2a4aca8)
  • veryl: guard nonlocal function writes (c5bba52)
  • veryl: limit hierarchical names to module scope (76435af)
  • veryl: lower dynamic nonlocal function stores (b17bae1)
  • veryl: materialize array literal function arguments (a13d8f8)
  • veryl: materialize array literal function arguments (0f066fb)
  • veryl: materialize array views at access sites (e84d0c5)
  • veryl: merge forwarded array cache state (177970f)
  • veryl: merge nested array state at cache joins (9a7842e)
  • veryl: order nonlocal function copyout (07f6259)
  • veryl: preserve array literal evaluation semantics (729907e)
  • veryl: preserve array literal views across calls (1c66f61)
  • veryl: preserve array views through output assignment (99aa6a5)
  • veryl: preserve dynamic function copyouts (397cb72)
  • veryl: preserve eager FF assertion effects (eb489df)
  • veryl: preserve eager FF assertion effects (3578cd1)
  • veryl: preserve FF array input snapshots (631f1a4)
  • veryl: preserve FF call-time inputs (7b9892a)
  • veryl: preserve FF case evaluation order (5475af6)
  • veryl: preserve FF case return paths (3c93218)
  • veryl: preserve FF control effects lazily (dfe8ae7)
  • veryl: preserve FF effect evaluation order (cd9bef5)
  • veryl: preserve FF evaluation order (4475a44)
  • veryl: preserve FF expression evaluation order (9f28386)
  • veryl: preserve FF function observation semantics (149b393)
  • veryl: preserve guarded function effects (b10cda3)
  • veryl: preserve lazy array argument evaluation (c264ea2)
  • veryl: preserve lazy array views across branches (8867382)
  • veryl: preserve nested FF copy-out semantics (802fa24)
  • veryl: preserve nested FF effect paths (bd497c0)
  • veryl: preserve nested FF effect state (272fcac)
  • veryl: preserve nested nonlocal state (98a3f15)
  • veryl: preserve nonlocal copyout semantics (f0c1d68)
  • veryl: preserve nonlocal function snapshots (928dc52)
  • veryl: preserve ordered nonlocal state (be15f5c)
  • veryl: preserve snapshots after master merge (3e4aa13)
  • veryl: preserve unevaluated expression state (2c0d887)
  • veryl: preserve unknown FF expression effects (2c09834)
  • veryl: preserve unpacked argument dependencies (a4bd550)
  • veryl: propagate evaluated call state (c18db04)
  • veryl: propagate FF runtime effect state (cbfaaf2)
  • veryl: reconcile FF eager evaluation with array views (c0a7ae2)
  • veryl: reject aliased lazy array inputs (af64a68)
  • veryl: reject aliased lazy array literals (20a3f3e)
  • veryl: restore nearest reentrant array view last (541b553)
  • veryl: snapshot array inputs before callee writes (c7a4188)
  • veryl: snapshot FF control expressions (ae1c110)
  • veryl: snapshot FF function assignment state (d4a3f89)
  • veryl: snapshot helper call inputs (719922d)
  • veryl: snapshot nonlocal function writes (369e4b2)
  • veryl: stabilize FF effect evaluation (b1fc2d8)
  • veryl: stabilize nested FF output state (0eaefcf)
  • veryl: track array views in bound literals (26c08ee)
  • veryl: track nested reads in output indices (e769063)
  • veryl: track precise array merge state (603d33d)
  • veryl: type FF symbolic function state (5c765f4)
  • vite: normalize component dependency paths (1590b1d)

Performance Improvements

  • arm64: reuse spill storage (53c79d7)
  • native: match Heliodor compile time to Veryl (02b58aa)
  • native: match Heliodor compile time to Veryl (86b4775)
  • optimizer: index redundant load ranges (61467ee)
  • optimizer: reduce compile-time analysis overhead (32b1f45)
  • optimizer: reduce repeated scheduling work (4efa080)
  • optimizer: skip redundant store analysis (37eb2c6)
  • optimizer: skip redundant store analysis (4cd92b4)
  • reduce Heliodor O2 compile time (c32ae63)
  • reduce Heliodor O2 compile time (9908e72)