Closed PuercoPop closed 9 years ago
Thanks. Crane's MOPery needed a cleanup. The build failed though:
; file: /home/travis/build/eudoxia0/crane/src/meta.lisp
; in: DEFCLASS TABLE-CLASS-EFFECTIVE-SLOT-DEFINTION
; (DEFCLASS CRANE.META::TABLE-CLASS-EFFECTIVE-SLOT-DEFINTION
; (CRANE.META::TABLE-CLASS-SLOT-DEFINITION-MIXIN
; SB-MOP:STANDARD-EFFECTIVE-SLOT-DEFINITION))
;
; caught ERROR:
; (during macroexpansion of (DEFCLASS TABLE-CLASS-EFFECTIVE-SLOT-DEFINTION ...))
; error while parsing arguments to DEFMACRO DEFCLASS:
; invalid number of elements in
; (TABLE-CLASS-EFFECTIVE-SLOT-DEFINTION
; (TABLE-CLASS-SLOT-DEFINITION-MIXIN
; SB-MOP:STANDARD-EFFECTIVE-SLOT-DEFINITION))
; to satisfy lambda list
; (&ENVIRONMENT SB-PCL::ENV SB-PCL::NAME SB-PCL::DIRECT-SUPERCLASSES
; SB-PCL::DIRECT-SLOTS &REST SB-PCL::OPTIONS):
; at least 3 expected, but 2 found
.Unhandled UIOP/LISP-BUILD:COMPILE-FILE-ERROR in thread #<SB-THREAD:THREAD
"main thread" RUNNING
{100302F0C3}>:
COMPILE-FILE-ERROR while compiling #<CL-SOURCE-FILE "crane" "src" "meta">
yeah it appears I forgot to add () signifying the empty slots to the effective slots definition.
Saw the use of mixin's in CLSQL and Rucksack's code. Although they use exactly the same definition for direct and effective slots. Another plus is that the differences between effective and direct sot definitions are easier to see