- 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>
18 lines
724 B
JSON
18 lines
724 B
JSON
{
|
|
"generated": "2026-05-05T11:37:47Z",
|
|
"total_pass": 437,
|
|
"total_fail": 0,
|
|
"suites": [
|
|
{"name": "Phase 1: tokenizer/reader", "pass": 79, "fail": 0},
|
|
{"name": "Phase 1: parser/lambda-lists", "pass": 31, "fail": 0},
|
|
{"name": "Phase 2: evaluator", "pass": 182, "fail": 0},
|
|
{"name": "Phase 3: condition system", "pass": 59, "fail": 0},
|
|
{"name": "Phase 3: restart-demo", "pass": 7, "fail": 0},
|
|
{"name": "Phase 3: parse-recover", "pass": 6, "fail": 0},
|
|
{"name": "Phase 3: interactive-debugger", "pass": 7, "fail": 0},
|
|
{"name": "Phase 4: CLOS", "pass": 41, "fail": 0},
|
|
{"name": "Phase 4: geometry", "pass": 12, "fail": 0},
|
|
{"name": "Phase 4: mop-trace", "pass": 13, "fail": 0}
|
|
]
|
|
}
|