@@ -5,6 +5,38 @@ All notable changes to ClojureWasm are documented here. The format follows
55[ SemVer] ( https://semver.org/ ) . SemVer compatibility guarantees start at the
66first stable ` 1.0.0 ` tag; pre-1.0 ` alpha ` / ` rc ` tags may still change surfaces.
77
8+ ## [ 1.0.1] - 2026-07-02
9+
10+ Patch release: memory-safety fixes found by a post-release audit. No API
11+ changes. Users on 1.0.0 should upgrade — the first item is reachable from
12+ ordinary code.
13+
14+ ### Fixed
15+
16+ - ** Stack overflow on deep lazy chains** — realizing or counting a lazy
17+ sequence / cons chain longer than ~ 400k elements (e.g.
18+ ` (count (repeat 1000000 1)) ` ) crashed the process: the GC mark phase
19+ descended the object graph recursively on the native stack. Marking now
20+ uses an explicit gray worklist (O(1) stack for any depth).
21+ - ** Use-after-free family during analysis/compilation** — GC values created
22+ while a form is analyzed, compiled, or AOT-deserialized (literal strings,
23+ quoted data, chunk constants, macro-expansion intermediates) were not GC
24+ roots until execution, so a collection mid-analysis (large file loads,
25+ user-macro expansion) could recycle them — surfacing as per-run-varying
26+ ` Unable to resolve symbol: '<garbage>' ` errors, index-out-of-bounds
27+ panics, or spurious "host-marker method not yet wired" errors when
28+ loading bigger libraries (instaparse, math.combinatorics). A per-thread
29+ analysis-roots frame now keeps them alive; ` deftype ` / ` reify ` method
30+ tables are also traced (their method functions could be collected out
31+ from under a live type).
32+ - ** Namespace reflection errors are now catchable** — ` ns-resolve ` ,
33+ ` ns-map ` , ` ns-name ` , ` intern ` , ` create-ns ` , ` alias ` , ` find-var ` and
34+ friends raised an uncatchable "not supported" error on a missing
35+ namespace or wrong-typed argument; Clojure raises a plain catchable
36+ exception there, and libraries rely on that for capability probes
37+ (` (try (ns-resolve …) (catch Exception e nil)) ` ). They now match
38+ Clojure's exception classes.
39+
840## [ 1.0.0] - 2026-07-01
941
1042The first ** stable** release. ClojureWasm is a JVM-free Clojure runtime written
0 commit comments