[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Compilation implications
- To: Jon L White <jonl@lucid.com>
- Subject: Re: Compilation implications
- From: David N Gray <Gray@DSG.csc.ti.com>
- Date: Fri, 6 Jan 89 11:17:49 CST
- Cc: Moon@STONY-BROOK.SCRC.Symbolics.COM, Common-Lisp-Object-System@SAIL.STANFORD.EDU
- In-reply-to: Msg of Fri, 6 Jan 89 00:31:37 PST from Jon L White <jonl@lucid.com>
- Sender: GRAY@Kelvin.csc.ti.com
> -- 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.