Skip to content

Releases: clojurewasm/ClojureWasm

v0.5.0 — Zig 0.16.0 migration

26 Apr 18:21
184c873

Choose a tag to compare

Highlights

  • Zig 0.16.0 + zwasm v1.11.0 — full toolchain bump (D111). All std.Io reshapes centralized behind src/runtime/io_default.zig, so module-level mutexes / condvars / sleeps / env lookups don't have to thread io through every call site.
  • Performance (ReleaseSafe, macOS aarch64): Binary 4.12 MB / Startup 4.1 ms / RSS 8.2 MB
  • Green gate: 1324/1324 unit tests, 83 cljw test namespaces, 6 wasm e2e, deps.edn e2e — all passing.

Toolchain

  • build.zig.zon minimum_zig_version0.16.0
  • flake.nix pin → 0.16.0 (sha256 mirrored from zwasm)
  • .github/workflows/{ci,nightly,release}.yml setup-zig version pin → 0.16.0
  • link_libc = true enabled (inherited from zwasm v1.11.0). Several stdlib removals (std.posix.{getenv,write,isatty,mprotect}, std.fs.cwd().realpath) bridged to libc via std.c.*. Stripping libc back out is tracked as F146.

Temporarily disabled (Phase 7 follow-ups)

The 0.16 stdlib reshapes were large enough that four features were collapsed to runtime-error stubs to land the migration cleanly. Each prints a clear error pointing at the F## item, and the original code is preserved in source or git history.

F## Feature Reason
F140 cljw.http/run-server std.net.{Server,Stream} removed; needs std.Io.net rewrite
F141 cljw.http/get|post|put|delete std.http.Client now requires .io field
F142 --nrepl-server (nREPL) Same std.Io.net work + std.posix.poll replacement
F143 Raw-mode line editor runRepl falls through to runReplSimple (functional)
F144 cljw build self-bundling Needs std.fs.selfExePath replacement
F145 OrbStack Ubuntu re-validation --seed 0 workaround needs re-test on 0.16
F146 Strip link_libc = true After std.c.* shims have pure-Zig replacements

Full list in .dev/checklist.md.

See also

v0.4.0

25 Feb 03:11

Choose a tag to compare

Full Changelog: v0.3.0...v0.4.0

Full Changelog: v0.3.0...v0.4.0

v0.3.0

20 Feb 02:34

Choose a tag to compare

Full Changelog: v0.2.0...v0.3.0

v0.2.0

13 Feb 17:00

Choose a tag to compare

Full Changelog: v0.1.0...v0.2.0

Full Changelog: v0.1.0...v0.2.0

v0.1.0

13 Feb 10:33

Choose a tag to compare