X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=equal.lisp;h=0d6ea59cebeeca44fc3b190bcd5666c875baf9a1;hb=8bf1e821e49e22d0e8ae724d00ae1802e69c0056;hp=8049ed1045f5ccd21cdc1c7aa74e2a0a5ddcaeee;hpb=aab275e8e82b4a4a4af4749d79ca49d2dd596c1c;p=kmrcl.git diff --git a/equal.lisp b/equal.lisp index 8049ed1..0d6ea59 100644 --- a/equal.lisp +++ b/equal.lisp @@ -7,7 +7,7 @@ ;;;; Programmer: Kevin M. Rosenberg ;;;; Date Started: Apr 2000 ;;;; -;;;; $Id: equal.lisp,v 1.2 2002/11/25 07:45:36 kevin Exp $ +;;;; $Id: equal.lisp,v 1.4 2003/03/25 04:26:47 kevin Exp $ ;;;; ;;;; This file, part of KMRCL, is Copyright (c) 2002 by Kevin M. Rosenberg ;;;; @@ -92,14 +92,18 @@ #+(or allegro lispworks scl) (mapcar #'clos:slot-definition-name (clos:class-slots (find-class c-name))) - #+sbcl (mapcar #'sb-pcl::slot-definition-name - (sb-pcl:class-slots (sb-pcl:find-class c-name))) + #+sbcl (if (find-package 'sb-mop) + (mapcar #'sb-mop::slot-definition-name + (sb-mop:class-slots (find-class c-name))) + (mapcar #'sb-pcl::slot-definition-name + (sb-pcl:class-slots (sb-pcl:find-class c-name)))) #+cmu (mapcar #'pcl::slot-definition-name (pcl:class-slots (pcl:find-class c-name))) #+mcl - (let* ((class (find-class class-name nil))) + (let* ((class (find-class c-name nil))) (when (typep class 'standard-class) - (map 'list #'car (ccl::%class-instance-slotds class)))) + (nconc (mapcar #'car (ccl:class-instance-slots class)) + (mapcar #'car (ccl:class-class-slots class))))) #-(or allegro lispworks cmu mcl sbcl scl) (error "class-slot-names is not defined on this platform") ) @@ -109,8 +113,11 @@ #+allegro (class-slot-names s-name) #+lispworks (structure:structure-class-slot-names (find-class s-name)) - #+sbcl (mapcar #'sb-pcl::slot-definition-name - (sb-pcl:class-slots (sb-pcl:find-class s-name))) + #+sbcl (if (find-package 'sb-mop) + (mapcar #'sb-mop::slot-definition-name + (sb-mop:class-slots (find-class s-name))) + (mapcar #'sb-pcl::slot-definition-name + (sb-pcl:class-slots (sb-pcl:find-class s-name))) #+cmu (mapcar #'pcl::slot-definition-name (pcl:class-slots (pcl:find-class s-name))) #+scl (mapcar #'kernel:dsd-name