#+kmr-cmucl-mop #:mop
#+allegro #:mop
#+lispworks #:clos
+ #+clisp #:clos
#+scl #:clos
#+openmcl #:openmcl-mop
)
(defun intern-eql-specializer (slot)
`(eql ,slot))
- (defmacro process-class-option (metaclass slot-name &optional required)
- #+lispworks
- `(defmethod clos:process-a-class-option ((class ,metaclass)
- (name (eql ,slot-name))
- value)
- (when (and ,required (null value))
- (error "metaclass ~A class slot ~A must have a value" (quote ,metaclass) name))
- (list name `',value))
- #-lispworks
- (declare (ignore metaclass slot-name required))
- )
+(defmacro process-class-option (metaclass slot-name &optional required)
+ #+lispworks
+ `(defmethod clos:process-a-class-option ((class ,metaclass)
+ (name (eql ,slot-name))
+ value)
+ (when (and ,required (null value))
+ (error "metaclass ~A class slot ~A must have a value" (quote ,metaclass) name))
+ (list name `',value))
+ #-lispworks
+ (declare (ignore metaclass slot-name required))
+ )
- (defmacro process-slot-option (metaclass slot-name)
- #+lispworks
- `(defmethod clos:process-a-slot-option ((class ,metaclass)
- (option (eql ,slot-name))
- value
- already-processed-options
- slot)
- (list* option `',value already-processed-options))
- #-lispworks
- (declare (ignore metaclass slot-name))
- )
+(defmacro process-slot-option (metaclass slot-name)
+ #+lispworks
+ `(defmethod clos:process-a-slot-option ((class ,metaclass)
+ (option (eql ,slot-name))
+ value
+ already-processed-options
+ slot)
+ (list* option `',value already-processed-options))
+ #-lispworks
+ (declare (ignore metaclass slot-name))
+ )
(eval-when (:compile-toplevel :load-toplevel :execute)
'(excl::compute-effective-slot-definition-initargs)
#+lispworks
'(clos::compute-effective-slot-definition-initargs)
+ #+clisp
+ '(clos::compute-effective-slot-definition-initargs)
#+sbcl
'(#+kmr-sbcl-mop class-of #-kmr-sbcl-mop sb-pcl:class-of
#+kmr-sbcl-mop class-name #-kmr-sbcl-mop sb-pcl:class-name