[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.