Skip to content

Commit b6d4a3e

Browse files
committed
release: v1.10.0 — the final release, on zwasm v2.5.0
Smell-audited: 1: the zwasm capability ledger's head + Pin section still claimed v2.4.0 while build.zig.zon had been on v2.4.1 since 673b082 — corrected in the same edit rather than layering a third version on top of a stale record. `.zwasm` pin v2.4.1 → **v2.5.0** (`278587f6`): full WASI 0.3 coverage plus the 81 declared-but-unexported C-API symbols in `libzwasm.a`. Neither reaches cljw's embedding surface — cljw drives Engine/Module/Instance through Zig on the JIT-default `.auto` engine, not the C API — so this is hygiene that lands the last release on zwasm's current stable, not a behaviour follow. Verified: the five phase16 wasm e2e (ffi / component / component_multiexport / engine_select / require_component) green on the new pin, then the full gate 435/435. Version 1.9.0 → 1.10.0. MINOR rather than PATCH because `repl` and `nrepl` gain a `-cp` / `-A:alias` surface and `cljw repl` now rejects unknown arguments it used to silently ignore — the same reasoning v1.9.0 used. The CHANGELOG section says plainly that this is the final release and why, and credits @BuddhiLW for the three reports it is mostly made of. The zwasm ledger records that its watch duty ends here: cljw stops, zwasm continues under separate maintainership.
1 parent 3fa87f4 commit b6d4a3e

3 files changed

Lines changed: 75 additions & 23 deletions

File tree

‎.dev/zwasm_capabilities.md‎

Lines changed: 33 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,14 @@
22

33
> **SSOT for "what does the zwasm we embed offer, and what has cljw adopted".**
44
> cljw embeds **zwasm v2** (F-001, unavoidable). The dep is a **tag pin** —
5-
> **v2.4.0** (see § Pin), pinned 2026-08-03 — the external-consumer release,
6-
> none of which reaches cljw; prior v2.3.0 (2026-07-17) was the
7-
> WASI-0.3.0-official inventory sweep, v2.2.1 (2026-07-16) the binary-size
8-
> campaign, v2.2.0 (`cf5d20d7`, 2026-07-09)
9-
> the AOT-full-fidelity release (ADR-0203). zwasm is itself under active
10-
> co-development (`~/Documents/MyProducts/zwasm`) and its embedding API is
5+
> **v2.5.0** (see § Pin), pinned 2026-08-12, and this is cljw's **final** pin:
6+
> the runtime is no longer maintained (README), so this ledger stops tracking
7+
> zwasm's growth here. Prior pins: v2.4.1 (2026-08-04) the two cljw-found
8+
> component/output fixes, v2.4.0 (2026-08-03) the external-consumer release,
9+
> v2.3.0 (2026-07-17) the WASI-0.3.0-official inventory sweep, v2.2.1
10+
> (2026-07-16) the binary-size campaign, v2.2.0 (`cf5d20d7`, 2026-07-09)
11+
> the AOT-full-fidelity release (ADR-0203). zwasm continues under active
12+
> co-development (`~/Documents/MyProducts/zwasm`) and its embedding API keeps
1113
> *growing* — notably a **JIT-backed
1214
> engine** (the cljw north star, ROADMAP §9.0 gap area II × III). cljw has **adopted
1315
> the JIT as its default** (`.auto`, D-488 discharged); the remaining north-star step
@@ -45,9 +47,23 @@ a cljw-side shim.
4547

4648
## Pin
4749

48-
- **TAG PIN — v2.4.0, pinned 2026-08-03.** `build.zig.zon`
49-
`.zwasm` = `.url = "git+…/zwasm.git#v2.4.0"` + `.hash = "zwasm-2.4.0-FT1Fv9E0…"`,
50-
resolved from GitHub. The external-consumer release: `-Dcompiler-rt`
50+
- **TAG PIN — v2.5.0, pinned 2026-08-12. FINAL.** `build.zig.zon`
51+
`.zwasm` = `.url = "git+…/zwasm.git?ref=v2.5.0#278587f6"` +
52+
`.hash = "zwasm-2.5.0-FT1Fv4KP…"`. Brings full **WASI 0.3** coverage (all
53+
six proposals, 45/45 on the official `wasm32-wasip3` corpus across
54+
macOS/Linux/Windows) and the 81 declared-but-unexported C-API symbols in
55+
`libzwasm.a` (zwasm #161). **Neither reaches cljw's embedding surface**:
56+
cljw drives Engine/Module/Instance through Zig on `.auto` (JIT-default,
57+
D-488), not the C API, and its WASI use is the component/`wasm/run` path
58+
the previous pins already served. So this is a hygiene follow that lands
59+
cljw's last release on zwasm's current stable rather than a behaviour
60+
change; no cljw-side delta is claimed. Verified: `zig build -Dwasm` +
61+
the five phase16 wasm e2e (ffi / component / component_multiexport /
62+
engine_select / require_component) green on the new pin, then the full
63+
gate. Prior: **v2.4.1** (2026-08-04), the two fixes found FROM cljw —
64+
component multi-export validation (#157) and the captured-run output
65+
bound (#158/#159). Prior: **v2.4.0** (2026-08-03), the external-consumer
66+
release: `-Dcompiler-rt`
5167
bundles Zig's compiler-rt into `libzwasm.a` for non-Zig linkers
5268
(zwasm #153/#154), and a DCE fix keeps the WasmGC cohort out of
5369
sub-3.0 builds (zwasm #150). **Neither reaches cljw, structurally**:
@@ -235,3 +251,11 @@ have surfaced it.
235251
catchable error rather than hiding it. Discharges half of D-404's "BLOCKED on
236252
a typed component FIXTURE" — the fixture now exists and is checked in; what
237253
remains is the engine accepting it.
254+
255+
- **2026-08-12** — **PIN BUMP v2.4.1 → v2.5.0 (`278587f6`), the FINAL pin.**
256+
User-directed, to land cljw's last release on zwasm's current stable. zwasm
257+
2.5.0 is full WASI 0.3 coverage + the `libzwasm.a` C-API export fix; neither
258+
touches cljw's Zig embedding surface, so this is hygiene rather than a
259+
behaviour follow (five phase16 wasm e2e + the full gate green on it). This
260+
ledger's watch duty ends here: cljw is no longer maintained, while zwasm
261+
continues under separate maintainership.

‎CHANGELOG.md‎

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,21 @@ first stable `1.0.0` tag; pre-1.0 `alpha` / `rc` tags may still change surfaces.
77

88
## [Unreleased]
99

10+
## [1.10.0] - 2026-08-12
11+
12+
**The final release.** ClojureWasm is no longer maintained — a from-scratch
13+
Clojure runtime turned out to be more than one person can sustain, and this
14+
release exists so it stops at a working, fully-tested state rather than
15+
mid-stream. The code stays up under EPL-2.0; fork it and build on it, no
16+
permission needed. See the README for the full notice.
17+
18+
Everything here is a fix, and three of the four were found by @BuddhiLW,
19+
who reported them with diagnoses and working branches — thank you. Each
20+
one's *class* was then swept, which is where the rest of the fixes came
21+
from. MINOR rather than PATCH because `repl` and `nrepl` gain a `-cp` /
22+
`-A:alias` surface, and `cljw repl` now rejects unknown arguments it used
23+
to ignore.
24+
1025
### Fixed
1126

1227
- **A top-level `(do …)` that requires before it uses now works in every
@@ -55,6 +70,15 @@ first stable `1.0.0` tag; pre-1.0 `alpha` / `rc` tags may still change surfaces.
5570
to be classified and reach the shared classpath resolution, so a
5671
future subcommand cannot repeat the nREPL omission.
5772

73+
### Changed
74+
75+
- The embedded Wasm runtime is pinned to **zwasm v2.5.0** (was v2.4.1),
76+
which brings full WASI 0.3 coverage and completes `libzwasm.a`'s C-API
77+
exports. Neither reaches cljw's embedding surface — cljw drives
78+
Engine/Module/Instance through Zig on the JIT-default `.auto` engine —
79+
so this lands the final release on zwasm's current stable rather than
80+
changing behaviour. zwasm continues under separate maintainership.
81+
5882
## [1.9.0] - 2026-08-05
5983

6084
**Upgrade if you run untrusted code under `cljw.eval/with-budget`, parse

‎build.zig.zon‎

Lines changed: 18 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
.{
22
.name = .cljw,
3-
.version = "1.9.0",
3+
.version = "1.10.0",
44
.fingerprint = 0x1869d207073beffa,
55
.minimum_zig_version = "0.16.0",
66
.dependencies = .{
@@ -11,24 +11,28 @@
1111
// zwasm v2 embedding API (F-001 / D-037). `lazy` so the DEFAULT build +
1212
// gate never resolve it — only `-Dwasm` (b.lazyDependency) does.
1313
//
14-
// PINNED to STABLE tag **v2.4.1** (2026-08-04). Unlike the pin-hygiene
15-
// bumps before it, this one is load-bearing twice over — both fixes were
16-
// found FROM cljw and neither was reachable by zwasm's own fixtures:
17-
// #157 a component with 2+ exports failed validation, so
18-
// `(:require ["x.wasm" :as x])` could only ever load a
19-
// single-function component — the headline feature, blocked.
20-
// #158/#159 a captured run had no output bound. Measured here: 64 MB
21-
// per 1e6 fuel, ~64 GB under the default fuel budget. `wasm/run`
22-
// passes `:max-output-bytes` (D-349).
14+
// PINNED to STABLE tag **v2.5.0** (2026-08-11) — cljw's final pin.
15+
// It brings full WASI 0.3 coverage (all six proposals, 45/45 on the
16+
// official wasm32-wasip3 corpus across macOS/Linux/Windows) plus the
17+
// 81 missing C-API symbols in `libzwasm.a` (#161). Neither changes
18+
// cljw's embedding surface: Engine/Module/Instance on `.auto` (=
19+
// JIT-default, D-488) is the same API it was at v2.2.0.
20+
//
21+
// The v2.4.1 pin before it was load-bearing twice over, both found
22+
// FROM cljw and neither reachable by zwasm's own fixtures: #157 (a
23+
// component with 2+ exports failed validation, so
24+
// `(:require ["x.wasm" :as x])` could only load a single-function
25+
// component — the headline feature, blocked) and #158/#159 (a captured
26+
// run had no output bound: 64 MB per 1e6 fuel, ~64 GB under the default
27+
// budget; `wasm/run` passes `:max-output-bytes`, D-349).
2328
//
2429
// Tag history: v2.4.0 (2026-08-03) external-consumer release
2530
// (`-Dcompiler-rt`, sub-3.0 DCE); v2.3.0 (2026-07-17) WASI-0.3.0 sweep;
2631
// v2.2.1 (2026-07-16) binary-size campaign; v2.2.0 (2026-07-09) AOT
27-
// full fidelity. cljw's embedding surface (Engine/Module/Instance via
28-
// `.auto` = JIT-default, D-488) is unchanged by all of them.
32+
// full fidelity.
2933
.zwasm = .{
30-
.url = "git+https://github.com/clojurewasm/zwasm.git?ref=v2.4.1#c45188a639aba8ee7298209539134a61643b2bd4",
31-
.hash = "zwasm-2.4.1-FT1Fv0J0jQDowvbJuWRyBg6N0aX7lj52ldrm7T7HWzBr",
34+
.url = "git+https://github.com/clojurewasm/zwasm.git?ref=v2.5.0#278587f608a7564d8f2dfa53f567aab70f661296",
35+
.hash = "zwasm-2.5.0-FT1Fv4KPkgCaKsDmsn05BTYsoEhH7RCUreSX8a3mwFha",
3236
.lazy = true,
3337
},
3438
},

0 commit comments

Comments
 (0)