- (alist (delete
- nil
- (mapcar
- #'(lambda (slot)
- (let ((attr-list (mapcar #'(lambda (attr) (list attr))
- (esd-attributes slot))))
- (when attr-list
- (cons (kmr-mop:slot-definition-name slot) attr-list))))
- normal-slots))))
- (let ((attrib-slot (make-instance 'attributes-esd
- :name 'all-attributes
- :initform `',alist
- :initfunction #'(lambda () alist)
- :allocation :instance
- :class class
- :documentation ""
- :type t
- ;; This is an attempted work-around -- lispworks doesn't work
- ;; it appears to setup storage someplace
- #+lispworks :location #+lispworks (length normal-slots)
- )))
- (append normal-slots (list attrib-slot)))))
+ (alist (mapcar
+ #'(lambda (slot)
+ (cons (kmr-mop:slot-definition-name slot)
+ (mapcar #'(lambda (attr) (list attr))
+ (esd-attributes slot))))
+ normal-slots)))
+
+ (cons (make-instance
+ 'attributes-esd
+ :name 'all-attributes
+ :initform `',alist
+ :initfunction #'(lambda () alist)
+ :allocation :instance
+ :documentation "Attribute bucket"
+ :type t
+ )
+ normal-slots)))