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

Re: Compatible? with whom?



I presume your note below wanted to go to LISP-FORUM rather than BUG-LISP.
    Date: 30 January 1981 00:34-EST
    From: Richard M. Stallman <RMS at MIT-AI>
    I hear that Maclisp now has something like the Lisp machine's
    user-supplied compiler optimizers.  But it is not compatible
    with the Lisp machine.
    I think it ought to be changed to be compatible,
    especially since it isn't in use by users yet.
How about letting the LISPM fix its idea of "optimizers" first?  
For example,  
  1) each "optimizing/trans' function should return two values, the second 
     saying whether or not it did anything.  (displacing macros are still 
     used in the MacLISP world, so EQ tests can't be relied upon.)
  2) Let's get a common DEFTRANS name, which not only push's something onto
     the appropriate property of a symbol, but also takes some other action
     if the symbol is not FBOUNDP (e.g. defining a MACRO for it which warns
     you in interpretive code when you try to use it; subsequent SUBR 
     definitions would 'wipe-out' this warning macro).
  3) DEFMACRO could check for "optimizers/trans" properties;  or alternatively
     the DEFTRANS feature could put a MACRO property (in MacLISP).
  4) "optimizers" is a bad misnomer -- these things are purely source to 
     source transformations, and have nothing to do with optimizing
     (and in fact aren't even limited to compilation, although that seems
     to be a reasonable convention for now).  How about SOURCE-TRANS?
     or maybe even COMPILATION-MACRO?
In fact, if item 2 is adopted, then it doesn't matter what the property 
name is called, since it should remain invisible to the user.