more get-slot-value issues

Marco Baringer <[email protected]> Wed, 25 Aug 2004 16:27:44 +0200
Newsgroups gmane.lisp.uffi.devel
Message-ID <[email protected]>
what the various implementations do with the arguments passed to
get-slot-value:

allegro: uses and evals both the type and slot arguments.

lispworks: ignores type, evals (afaict) and uses the slot argument.

cmucl: ignores type, evals slot.

sbcl: ignores type, evals slot.

mcl: uses type and slot, evals _neither_.

all is not well in get-slot-value land.

i'd like to change get-slot-value for sbcl so that it uses the type
information (currently ignored) and avoids sap-alien allocation where
possible, i'd like to change get-slot-value for mcl so that it evals
all of its arguments. hopefully this should allow the same
uffi:get-slot-value form to work everywhere, however:

1) on sbcl we'd only use the type argument when it was a constant and
   we'd eval it at compile time.

2) on mcl we'd do the eval'ing at compile time if both args are
   constants, otherwise we'll take the speed penatly and do the
   eval'ing (and intern'ing) at runtime.

any issues with this? how often are non constant type and slot
specifiers used with get-slot-value?

p.s. - is the svn repository up?

-- 
-Marco
Ring the bells that still can ring.
Forget your perfect offering.
There is a crack in everything.
That's how the light gets in.
     -Leonard Cohen