025ddbebdd
cl: Phase 6 stdlib — sequence/list/string functions, 508/508 tests
...
Test, Build, and Deploy / test-build-deploy (push) Failing after 44s
mapc/mapcan/reduce/find/find-if/position/count/every/some/notany/
notevery/remove/remove-if/subst/member; assoc/rassoc/getf/last/
butlast/nthcdr/list*/cadr/caddr/cadddr; subseq/coerce/make-list.
44 new tests in tests/stdlib.sx. Helpers: cl-member-helper,
cl-subst-helper, cl-position-helper.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-05 12:17:13 +00:00
f449f82fdd
cl: Phase 5 macros+LOOP + Phase 2 dynamic vars — 464/464 tests
...
Test, Build, and Deploy / test-build-deploy (push) Failing after 44s
defmacro/macrolet/symbol-macrolet/macroexpand, gensym/gentemp, full
LOOP macro (loop.sx) with all clause types. Phase 2 dynamic variables:
cl-apply-dyn, cl-letstar-bind, cl-mark-special!/cl-special? for
defvar/defparameter specials with let-based dynamic rebinding.
27 macro+LOOP tests; 182 eval tests (8 new dynamic var tests).
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-05 12:04:37 +00:00
0e426cfea8
cl: Phase 4 CLOS complete — generic functions, multi-dispatch, method qualifiers, 437/437 tests
...
- lib/common-lisp/clos.sx (27 forms): class registry (8 built-in classes),
defclass/make-instance/slot-value/slot-boundp/change-class, defgeneric/defmethod
with :before/:after/:around, clos-call-generic (standard combination: sort by
specificity, fire befores, call primary chain, fire afters reversed),
call-next-method/next-method-p, with-slots, deferred accessor installation
- lib/common-lisp/tests/clos.sx: 41 tests (class-of, subclass-of?, defclass,
make-instance, slot ops, inheritance, method specificity, qualifiers, accessors,
with-slots, change-class)
- lib/common-lisp/tests/programs/geometry.sx: 12 tests — intersect generic
dispatching on geo-point×geo-point, geo-point×geo-line, geo-line×geo-line,
geo-line×geo-plane (multi-dispatch by class precedence)
- lib/common-lisp/tests/programs/mop-trace.sx: 13 tests — :before/:after
tracing on area and describe-shape generics, call-next-method in circle/rect
- eval.sx: dynamic variables — cl-apply-dyn saves/restores global slot for
specials; cl-mark-special!/cl-special?/cl-dyn-unbound; defvar now marks
specials; let/let* rebind via cl-apply-dyn; 8 new tests (182 eval total)
- conformance.sh + test.sh: Phase 4 suites wired in
- plans/common-lisp-on-sx.md: Phase 4 + dynamic variable boxes ticked
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-05 11:38:37 +00:00
4cd8773766
cl: multiple values — 15 new tests (174 eval, 346 total green)
...
Test, Build, and Deploy / test-build-deploy (push) Failing after 46s
VALUES wraps 2+ values in {:cl-type "mv"}; cl-mv-primary strips to
primary in IF/AND/OR/COND/cl-call-fn single-value contexts; cl-mv-vals
expands for MULTIPLE-VALUE-BIND, MULTIPLE-VALUE-CALL, NTH-VALUE.
2026-05-05 11:23:12 +00:00
fd16776dd2
cl: unwind-protect — cleanup frame in cl-eval-ast, 8 new tests (159 eval)
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-05 11:13:53 +00:00
a12a6a11cb
cl: tagbody + go — 11 new tests (151 eval, 323 total green)
...
Sentinel-based tagbody: cl-build-tag-map indexes tags by str-normalised key
(handles integer tags); cl-eval-tagbody loops with go-jump restart;
go-tag propagates through cl-eval-body alongside block-return.
2026-05-05 11:07:43 +00:00
ce7243a1fb
cl: block + return-from — 13 new tests (140 eval, 312 total green)
...
Sentinel propagation in cl-eval-body; cl-eval-block catches matching
sentinels; BLOCK/RETURN-FROM/RETURN dispatch added to cl-eval-list.
Parser: CL strings now {:cl-type "string"} dicts for proper CL semantics.
2026-05-05 10:57:33 +00:00
4da91bb9b4
cl: Phase 2 eval — 127 tests, 299 total green
...
Test, Build, and Deploy / test-build-deploy (push) Failing after 12s
lib/common-lisp/eval.sx: cl-eval-ast implementing quote, if, progn,
let/let*, flet, labels, setq/setf, function, lambda, the, locally,
eval-when, defun, defvar/defparameter/defconstant, built-in arithmetic
(+/-/*//, min/max/abs/evenp/oddp), comparisons, predicates, list ops,
string ops, funcall/apply/mapcar.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-25 18:58:48 +00:00