wat iter-1: special forms + 35 primitives toward asm/lumbda.s parity

Special forms added:
  let*, letrec, when, unless, case, named-let

Primitives added (IDs 25-60):
  quotient, remainder, min, max, expt
  even?, odd?, positive?, negative?
  set-car!, set-cdr!, equal?, eqv?
  number?, integer?, symbol?, string?, procedure?, boolean?
  caar, cadr, cdar, cddr, caddr, cadddr
  reverse, append, apply, error
  member, memq, assoc, assq
  list-ref, list-tail, void

Plus helpers: equal_p (deep structural), append2, member_eq, assoc_eq.

39/39 wasm tests pass (20 unit + 8 integration + 11 functional).
Footer language softened — no more "minimal subset" disclaimer.
This commit is contained in:
russell@unturf.com 2026-06-14 12:30:01 -04:00
parent 1b7de2c9c6
commit 73dc042ea8
No known key found for this signature in database
5 changed files with 716 additions and 13 deletions

View file

@ -71,11 +71,11 @@
<footer>
<p>
<strong>asm tier note:</strong> the wat implementation ships a minimal lisp
subset (special forms, arithmetic, list ops, recursion) &mdash; enough for the
four demos above. symbol lookup is linear; would be moad-0001 at scale,
documented in <code>asm/lumbda.wat</code>.
see <a href="../">lumbda.</a>
same lisp source, three implementations &mdash; verify yourself by
eyeballing each tier's output, or by running
<code>make wasm-test</code> against the cross-tier suite.
asm tier (<code>asm/lumbda.wat</code>) is growing toward feature parity
with <code>asm/lumbda.s</code>; see <a href="../">lumbda.</a>
</p>
</footer>