Skip to content

release: v0.5.0#6

Merged
chaploud merged 1 commit into
mainfrom
develop/release-v0.5.0
Apr 26, 2026
Merged

release: v0.5.0#6
chaploud merged 1 commit into
mainfrom
develop/release-v0.5.0

Conversation

@chaploud
Copy link
Copy Markdown
Contributor

Summary

  • Promote the Zig 0.16.0 migration's Unreleased CHANGELOG section to v0.5.0 (2026-04-27)
  • Bump build.zig.zon version from the stale "0.3.0" placeholder to "0.5.0" (matches the existing tag sequence — v0.4.0 was the last release)

Test plan

  • zig build -Doptimize=ReleaseSafe succeeds
  • cljw --version reports ClojureWasm v0.5.0
  • Smoke: cljw -e '(println "v0.5.0")'v0.5.0

Promote the Zig 0.16.0 migration's `Unreleased` CHANGELOG section to
`v0.5.0 (2026-04-27)` and bump `build.zig.zon` `version` from the stale
"0.3.0" placeholder to "0.5.0" (matching the existing tag sequence —
v0.4.0 was the last release).

Migration highlights (full list in CHANGELOG):
- Zig 0.15.2 → 0.16.0
- zwasm v1.9.1 → v1.11.0
- New `runtime/io_default.zig` for the std.Io reshape
- Binary 4.12 MB / startup 4.1 ms / RSS 8.2 MB
- 1324/1324 unit tests + 83 cljw test namespaces + 6 wasm e2e all green
- Four features (HTTP server/client, nREPL, raw line editor,
  `cljw build`) temporarily stubbed; tracked as F140-F144.
@chaploud chaploud merged commit 6faadc5 into main Apr 26, 2026
1 of 6 checks passed
@chaploud chaploud deleted the develop/release-v0.5.0 branch April 26, 2026 16:08
chaploud added a commit that referenced this pull request May 27, 2026
…ADR-0027 number collision resolved (renumbered to ADR-0044)

Smell-audited: 2: depth-2 ADR-number-collision repair. Bench-schema ADR (commit 8678052, 2026-05-27 row 8.2) was minted as ADR-0027 but slot 0027 was already held by the NaN-box second-generation ADR (2026-05-24 row 5.2.b). Audit_scaffolding flagged this as the only block-severity finding at the Phase 8 → 9 boundary. ADR numbers are time-ordered max+1 at issue per CLAUDE.md § Project spirit — bench schema renumbered to next free slot ADR-0044.

Changes:
- `.dev/decisions/0027_bench_history_schema.md` → `0044_bench_history_schema.md`. Title flipped to "0044 — …" with an "ADR-number history note" preamble preserving the original 0027 mention so commit-message archaeology (`8678052`) stays interpretable.
- Caller updates (5 sites):
  * `.dev/ROADMAP.md` §9.10 Entry ADRs + Deliverables + row 8.2 description + status cell.
  * `.dev/handover.md` Guardrail refresh history landmark.
  * `bench/history.yaml` header comment + first lock entry's reason field.
  * `.dev/decisions/0021_test_taxonomy.md` Bench-full row + Related list.
  * `test/e2e/phase8_compare_cli.sh` ADR co-citation in the header comment.

Other audit findings deferred to Phase 9 opportunistic cycles (per Phase 9 entry owner discretion; not block-severity):
- ROADMAP §11.6 "Planned" gates #6/#7 already landed (rows 8.3/8.4) → move to Active.
- `.dev/structure_plan.md` src/app/ entries still flagged "Phase 8" for repl/self_host_loader.
- 12 debt rows with stale "Phase 7 entry" / "Phase 7+ target" — Step 0.5 sweep at Phase 9 entry handles these.
- D-007 (self-host viability) still scheduled "Phase 8 target" but Phase 8 closed without touching it — reschedule at Phase 9 entry.
- 8 stale "Phase 8+" references in ROADMAP / ADRs / source comments (cosmetic; opportunistic).

Simplify report (~2 recommendations) + security review report (0 critical, 4 medium hardening candidates) absorbed as future debt candidates; tracked inline in the boundary review subagent outputs (not committed — per `.claude/skills/audit_scaffolding/SKILL.md` the boundary chain produces reports, not commits).

Test gate: Mac 65/65 green (audit absorption is doc-only + filename rename, no source change).
chaploud added a commit that referenced this pull request Jun 4, 2026
chaploud added a commit that referenced this pull request Jun 4, 2026
…R-0092 Option A)

Smell-audited: 1: lands the locking surface over a new object_monitor.zig per
ADR-0092 (Option A = Option C's fast path). A header lock_state-bit spinlock
(CAS the whole gc_and_lock u32 to preserve gc_mark) + a threadlocal [32] held-set
for reentrancy + a safepoint-polling spin (the #1 GC-safety rule: a non-polling
spinner hangs a stop-the-world collect forever). The `locking` macro expands to
`(__locking obj (fn* [] body))`; the primitive holds the monitor across the body
thunk with a defer release. `(locking <immediate>)` errors (AD-014). clj-verified:
basic 42, reentrant 99 (no deadlock), body-env 15, mutual-exclusion 400 (a
non-atomic RMW under the lock loses no updates). Also corrects a stale stm.zig
docstring (STM is implemented, not pending). Contended waiters spin not park —
the blocking inflation is D-245.
chaploud added a commit that referenced this pull request Jun 4, 2026
… first slice (ADR-0093)

Smell-audited: 1: serial async agents over a new runtime/agent.zig engine. Actions
on one agent run one-at-a-time in send order via a single-drainer handoff (the
thread that transitions the queue empty→non-empty spawns the sole drainer; the
drainer drains to empty then exits; draining is checked/set under cell.mutex so
the handoff is race-free). cell.mutex is a LEAF lock (held only across the gpa
queue push/pop, never across callFn/alloc/park — the GC-deadlock invariant), so
the queue is an off-heap gpa list traced by traceGc. `@agent` is a non-blocking
atomic state read; `await` (core.clj) is a sentinel action delivering a promise
(clj's latch). clj-verified: send 100 → 100, (+5 then *3) → 15, send-off conj →
(2 1), 4×100 concurrent sends → 400 (30/30 ReleaseSafe), 8 agents each +50 → all
50. Option kwargs / send to non-agent error cleanly. Error modes / watches /
restart / send-via / *agent* / shutdown-agents / await-for are later slices.
chaploud added a commit that referenced this pull request Jun 6, 2026
Convergence Campaign Stage 0.4 (probe-backed against a fresh HEAD binary).
Phase B (ADR-0090) is IMPLEMENTED at HEAD — verified: two 300ms-sleep
futures finish <500ms (real OS-thread parallelism); full STM/agent/
locking/atom-CAS all probe-green; git log shows the #4..#6 Phase B
campaign landed 2026-06-04→06.

- DISCHARGE D-009 (STM, fold→D-242), D-010 (locking, fold→D-245),
  D-012 (atom+watch), D-013 (STM barge, fold→D-242), D-211 (`'`-arith
  family, stale-LIE + DUP of D-260/ADR-0100).
- FLIP→now: D-224 (pmap recall fired — threading landed; now a perf item),
  D-046 (LazySeq.force mutex barrier met).
- De-stale D-242 anchor: "unimplemented core" → "concurrency hardening"
  (core landed; tracks D-244#4 torture + pmap/LazySeq/per-item residuals).

Net: −5 active (132→127 non-DISCHARGED). LIE lens: 0 (D-177 already
self-corrected + corpus-backed). DUP: 5 folded. D-105/106/243 (java.time/
net/crypto) confirmed legitimately open.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant