- Fix deftype tests: use (list ...) instead of bare (...) for type
bodies in dict literals. CEK evaluates dict values, so bare lists
are treated as function calls. Tree-walk was more permissive.
- Fix dotimes macro: use for-each+range instead of named-let+set!
(named-let + set! has a scope chain issue under CEK env-merge)
- Remaining 6 failures are CEK multi-shot continuation limitations:
k invoked multiple times, scope/provide across shift boundaries.
These need frame copying for multi-shot support (future work).
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
New test files expose fundamental evaluator issues:
- define doesn't create self-referencing closures (13 failures)
- let doesn't isolate scope from parent env (2 failures)
- set! doesn't walk scope chain for closed-over vars (3 failures)
- Component calls return kwargs object instead of evaluating body (10 failures)
485/516 passing (94%). Parser tests: 100% pass. Macro tests: 96% pass.
These failures map the exact work needed for tree-walk removal.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>