- (alist
- (mapcar
- #'(lambda (slot)
- (let ((attr-list (mapcar #'(lambda (attr) (cons attr nil))
- (esd-attributes slot))))
- (when attr-list
- (cons (kmr-mop:slot-definition-name slot) attr-list))))
- normal-slots)))
- (setq alist (delete nil alist))
- (cons (make-instance 'kmr-mop:standard-effective-slot-definition
- :name 'all-attributes
- :initform `',alist
- :initfunction #'(lambda () alist))
+ (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 bucker"
+ :type t
+ #-lispworks :class #-lispworks class
+ ;; This is an attempted work-around -- lispworks doesn't work
+ ;; it appears to setup storage someplace
+ ;; #+lispworks :location #+lispworks (length normal-slots)
+ )