[Bese-devel] Class-slots direct and effective

Nathan Bird nathan at acceleration.net
Mon Apr 3 22:08:51 UTC 2006


<Birdman>	in arnesi>>walk.lisp>> make-load-form
(http://paste.lisp.org/display/18580) : as far as I can tell, the code there
should just be building up the list of effective slots which is what
class-slots does. am I missing something?

<Birdman>	The reason it is important is that ACL apparently doesn't
finalize all classes in that chain (namely form and application-form) b/c
they are never instantiated. but when that function recurses up hitting
class-slots it causes a problem.

<segv>	almost. the code in arnesi only saves those slots defined by form or
one of its subclasses, unlike class-slots whcih returns all slots.
<segv>	would it not be sufficent to add in finalinze-inheritence at
opportune places? (like just before the call to class-slots?)
<segv>	i'm also under the impression that class-slots retuns direct slots
only, not effective slots.


The definition given at http://www.lisp.org/mop/dictionary.html#class-slots
and experimentally in ACL and SBCL all indicate that class-slots gives the
effective slots. There is a class-direct-slots that might be more in line
with what you want.

Yes adding finalize-inheritance is enough to solve the problem I was having,
but I think we have stumbled upon a separate one here. Should it only be
getting slots derived from form (as you apparently intended) or should it be
getting effective-slots? I still haven't been able to fully grok what all is
going on here.  




More information about the bese-devel mailing list