[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Compilation implications



> -- Your code for the 'reconstruction-form' method never adds anything 
>    to the 'allocation-args' -- did you excise some TI-specific parts? 
>    or what is this ever supposed to be besides nil?

My version uses an implementation-dependent argument for the memory area;
I omitted that from the portable version I mailed out.

> -- What is 'finalize-inheritance'?  is it to fix up "stubs" that had
>    been created as "placeholder" classes merely so that some type
>    dispatch could make reference to the class?

It's defined in CLOS chapter 3; my intent was to perform any bookkeeping
needed if the class had not been instantiated before (such as computing
the class precedence list and effective slot list).  I haven't yet had a
chance to study the December edition of chapter 3 to make sure that's the
right way to do it.

> -- Why do you use 'slot-exists-p-using-class' instead of 'slot-exists-p'?
>    The class argument you are passing in for 'object' is simply the 
>    value obtained from (class-of object) anyway?

For efficiency -- since I already have the class object, I might as well
call SLOT-EXISTS-P-USING-CLASS directly instead of having SLOT-EXISTS-P do
it.  This has the effect of moving the call to CLASS-OF outside the loop.

> -- When you ran into some trouble with  the form:
> 
>     (DEFMETHOD MAKE-INSTANCE ((CLASS (EQL (FIND-CLASS 'MY-CLASS))) ...) ...)
> 
>    was it because your DEFMETHOD treats this form essentially the same as
> 
>     (DEFMETHOD MAKE-INSTANCE ((CLASS (EQL '#.(FIND-CLASS 'MY-CLASS))) ...) ...)
> 
>    Does your macro expander for DEFMETHOD call EVAL to get the object,
>    rather than returning a form to be evaluated later?

Yes, the evaluation is being done at macro expansion time.  If that's not
right, I'll need to change it.