[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: issue LOAD-TIME-EVAL
- To: Jon L White <jonl%lucid.com@NSS.Cs.Ucl.AC.UK>,     sandra <@cs.utah.edu:sandra@defun>
 
- Subject: Re: issue LOAD-TIME-EVAL
 
- From: Jeff Dalton <jeff%aiai.edinburgh.ac.uk@NSS.Cs.Ucl.AC.UK>
 
- Date: Tue, 10 Jan 89 01:59:55 GMT
 
- Cc: cl-compiler@sail.stanford.edu, alarson@altura.honeywell.com
 
- In-reply-to: Jon L White's message of Sat, 7 Jan 89 01:21:27 PST
 
> At least one "wizard" at Lucid was thoroughly confused by the
>     (CONS #1=(LOAD-TIME-VALUE (COMPUTE-IT)) #1#)
> example.  Perhaps it needs to be fleshed out.
> 
> I liked Aaron Larson's comment on the matter:
>    "I was under the impression that the only loophole permitting the 
>     compiler to copy/substitute otherwise non EQ forms was with regard 
>     to QUOTE."
> That is, one might conceivable think of coalescing the two calls to
> LOAD-TIME-VALUE  because of a sort of similarity to QUOTE.
I started editing a reply to this and then decided I was wrong.
But my mailer mananged to send it anyway.  (My fault really, but
I thought I had another chance to say "no".)  Sorry.
But I still think this issue could be better explained.  I never
thought that #= was guaranteed to work with code after the =, but I
did think it could say "put the same object here".  So it might be
that something like (EQ '#1=(A B) '#1#) would work, or even -- using
self-evaluating objects -- (EQ #1="abc" #1).  And LOAD-TIME-VALUE is
sort of like an object rather than an expression.  So I think a
closer analogy may be to (EQ #1="abc" #1) rather than to
>    (EQ #1=(CONS 'A 'B) #1#)
What I would like is a simple explanation that suggest any of this
reasoning.