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

Re: issue LOAD-TIME-EVAL



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