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

Re: proposal LOAD-TIME-EVAL:REVISED-NEW-SPECIAL-FORM



    Date: Tue, 20 Sep 88 19:19:01 PDT
    From: Jim McDonald <jlm@lucid.com>

    Excuse me for being pedantic, but how can either of you claim to know
    what EB has seen?  If *you* have seen such uses, that's interesting,
    but doesn't invalidate his observation, which is (I think) intended to
    lend support to the argument that such uses are very rare or
    non-existant. 

Actually, I can know that EB has seen this case.  I have talked with him
about it before.

      ... I could say:

      (defun a-little-function (x)
	(aref #,(get-table-for 'a-little-function '(x))
	      x))

    But would you, or has anyone?  That's the real question.  

Yes, I would if only I could.  In writing PCL, the fact that there
isn't a load-time-eval facility in the language has caused me a great
deal of pain.  The little code fragment above is the distillation of
what I have wanted to do in several places.  As an example, one way to
implement permutation vectors is to have the PV cache just be in the
method functions that need them, this requires load time eval facility.
As another example, one way to provide certain kinds of programming
environment hook is to have method functions point back at the method
object they are associated with, load-time-eval can help arrange this.
							      
							      The last
    time I looked, there were exactly two uses of #, in Lucid's product--
    both to setup something like *software-version* (I forget the exact
    details).  Surely #, is overkill for such uses.

I must admit that this datapoint doesn't mean too much too me, since #,
doesn't work in Lucid Lisp.
-------