[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Issue: LOAD-TIME-EVAL (Version 8)
- To: Kent M Pitman <KMP@STONY-BROOK.SCRC.Symbolics.COM>
- Subject: Re: Issue: LOAD-TIME-EVAL (Version 8)
- From: sandra%defun@cs.utah.edu (Sandra J Loosemore)
- Date: Wed, 25 Jan 89 14:52:54 MST
- Cc: Gray@DSG.csc.ti.com, sandra%defun@cs.utah.edu, Moon@STONY-BROOK.SCRC.Symbolics.COM, CL-Compiler@SAIL.STANFORD.EDU
- In-reply-to: Kent M Pitman <KMP@STONY-BROOK.SCRC.Symbolics.COM>, Wed, 25 Jan 89 15:45 EST
> Which intuition are we talking about abandoning:
>
> Intuition #1: (DOTIMES (I 5) (PRINT (LOAD-TIME-VALUE (F))))
> evaluates the LOAD-TIME-VALUE expression only once.
â??â??â??â??
Don't you mean "at least" once here?
>
> Intuition #2: (DOTIMES (I 5) (PRINT (EVAL '(LOAD-TIME-VALUE (F)))))
> evaluates the LOAD-TIME-VALUE expression at least 5 times.
>
> I'm reluctant to abandon intuition #2 because I fear that it will complicate
> debugging tremendously. eg, if the dynamic state changes [eg, due to a bug
> fix] such that (F) can return a new value but it keeps returning an old value
> due to some hidden cache, I think the effects would be very frustrating.
I agree with you here. What I was envisioning as a solution to Moon's
objections is that if you had several references to the same (EQ)
LOAD-TIME-VALUE expression within a single call to EVAL, COMPILE, or
COMPILE-FILE, it would be OK to evaluate it only once, but that each call
to EVAL, COMPILE, or COMPILE-FILE would have to start out with a fresh
"cache". (No doubt somebody else can come up with some more elegant
verbiage to say this.)
-Sandra
-------