[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
change to instance structure protocol
- To: Moon@stony-brook.scrc.symbolics.com, firstname.lastname@example.org
- Subject: change to instance structure protocol
- From: Scott Cyphers <Cyphers@jasper.scrc.symbolics.com>
- Date: Thu, 29 Nov 1990 13:23:00 PST
- Cc: MOP.PARC@xerox.com
- In-reply-to: <19901129203530.2.MOON@KENNETH-WILLIAMS.SCRC.Symbolics.COM>
Date: Thu, 29 Nov 1990 15:35 EST
Date: Thu, 22 Nov 1990 15:59 EST
From: Gregor Kiczales <Gregor@parc.xerox.com>
There is an elegant solution, but I have refrained from proposing it for
some time. Now, it really seems worth proposing.
The basic idea is to change the last (slot-name) argument to all of the
SLOT-XXX-USING-CLASS generic functions. The new value would be the
actual effective slot definition metaobject rather than the slot name.
In my opinion your proposal is clearly the right thing.
By the way, I verified that adopting this proposal would not slow down
SLOT-VALUE in the inline optimized case nor in the notinline optimized
case in Symbolics' implementation. I'm not sure why JonL thought it
would slow down the notinline case, although Lucid's implementation may
work differently. In Symbolics' implementation notinline SLOT-VALUE
does not call SLOT-VALUE-USING-CLASS for the standard metaclass.
In all this, remember that SLOT-VALUE-USING-CLASS can also have its
first argument EQL specialized on a particular class. We don't handle
that case correctly, but I think our optimizations could work around it
if they bothered to check for it.