You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 596ebac
Browse filesBrowse the repository at this point in the historyBrowse files
Copy file name to clipboardExpand all lines: .dev/mutation_equivalent.jsonl
-1Lines changed: 0 additions & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -3,4 +3,3 @@
3
3
# can distinguish the mutant. run.sh reports an entry that matches nothing as STALE.
4
4
{"file": "src/runtime/collection/vector.zig", "op": "const_bump_in_arith", "before": "const new_tail_leaf = arrayFor(old, old.count - 2);", "reason": "Reached only when the tail holds exactly one element, i.e. count = 32m+1. arrayFor selects a 32-element leaf by i >> SHIFT_BITS, and (32m-1) >> 5 == (32m-2) >> 5, so `count - 2` and `count - 3` always name the same leaf. No input distinguishes them."}
5
5
{"file": "src/runtime/collection/vector.zig", "op": "const_bump_in_arith", "before": "const sub_index = ((new_count - 1) >> @as(u5, @intCast(level))) & MASK;", "reason": "popTail is entered only with new_count = 32m (a full-leaf boundary) and level >= SHIFT_BITS. new_count-1 and new_count-2 differ only in bit 0, which every level's >> level discards, so sub_index is identical at every level of the descent."}
6
-
{"file": "src/runtime/print.zig", "op": "cmp_gt_to_ge", "before": "while (ks.tag() == .list and list_collection.countOf(ks) > 0) : (ks = list_collection.rest(ks)) {", "reason": "Ranges of every callee in the predicate, which is what decides this. map_collection.keys returns Value.nil_val for an empty map (the .array_map arm via keysArrayMap's `am.count == 0` guard, the .hash_map arm via `phm.root orelse`, and the .nil arm directly), and otherwise a chain built only by list_mod.consHeap seeded from Value.nil_val; sorted_collection.keys is the same shape, seeding keysInto with Value.nil_val. consHeap sets .count = countPrepending(tail), whose whole range is {1, n+1, COUNT_UNKNOWN} - every value >= 1. list_collection.rest of such a cell returns cell.rest, which in that chain is either another consHeap cell or the nil_val seed. So for every ks this loop can hold, ks.tag() == .list implies countOf(ks) >= 1: the conjunct is never the reason the loop stops, and >= 0 cannot change the iteration count. NOT the general claim that no empty .list exists - one does (rt.empty_list, list.zig, .count = 0, which is what '() evaluates to; verified: (list? '()) is true and (count '()) is 0). The equivalence is specifically that keys never returns it. If keys is ever changed to return the empty-list singleton for an empty map, re-derive this. One entry covers both loops (.array_map/.hash_map and .sorted_map) - the line text is identical and matching is on file+op+before."}
Both demos are a `cljw` server and a ClojureScript page, one container each,
66
+
tracking the latest release.
67
+
68
+
| Demo | What it shows | Source |
69
+
|---|---|---|
70
+
|[Playground](https://cljw.buddhilw.com/playground/)| Evaluate Clojure under a step, time and heap budget; call Rust and Go Wasm modules |[cw-playground](https://github.com/clojurewasm/cw-playground)|
71
+
|[Bookshelf](https://cljw.buddhilw.com/bookshelf/)| SQLite compiled to Wasm as the store, a Rust module for cover colours |[cw-serverless-demo](https://github.com/clojurewasm/cw-serverless-demo)|
72
+
55
73
## Call C from Clojure
56
74
57
75
A C function, compiled to Wasm, called with ordinary Clojure interop.
@@ -215,7 +233,8 @@ Created by [Shota Kudo (@chaploud)](https://github.com/chaploud), who built it
215
233
from nothing to a working JVM-free Clojure with a Wasm FFI through v1.10.1. In
216
234
2026-10 the project passed to [@BuddhiLW](https://github.com/BuddhiLW); the
217
235
fork's work (v1.11 to v1.15.0) is merged back into
218
-
[clojurewasm/ClojureWasm](https://github.com/clojurewasm/ClojureWasm), while
219
-
releases and the Homebrew tap publish from
220
-
[BuddhiLW/ClojureWasm](https://github.com/BuddhiLW/ClojureWasm). The engine is
0 commit comments