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

Re: LOAD-TIME-EVAL



I don't like either of the proposals LOAD-TIME-EVAL:QUOTED-MAGIC-TOKEN or
LOAD-TIME-EVAL:NEW-SPECIAL-FORM, although I agree that the capability is
something desirable.  Both proposals seem unnecessarily complicated, and
the NEW-SPECIAL-FORM proposal is objectionable because it makes an
incompatible change to existing practice without any good reason.
I agree with Moon that the READ-ONLY-P argument should be dropped; if you
want data that can be modified, then that's what variables are for.

I also have a problem with this:

>    Note, however, that in the case of quoted code (processed by explicit
>    use of EVAL), each call to EVAL is treated like a load. Caching may not
>    be implemented by having LOAD-TIME-CONSTANT displace its source level
>    call. 

These seems like an unnecessary and undesirable restriction; the point is
to make this feature possible; I don't see why the the implementation
should be overly constrained.


Here is something that we have been using internally (with the name
changed to match the proposal) that seems to be quite sufficient:

   LOAD-TIME-CONSTANT form			[Special Form]

'#,form   <==>  (LOAD-TIME-CONSTANT form)
'(a ... #,form ... z)   <==>  (LOAD-TIME-CONSTANT (LIST 'a ... form ... 'z))



  -- David Gray