[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Compatible? with whom?
- To: RMS at MIT-MC
- Subject: Re: Compatible? with whom?
- From: Jon L White <JONL at MIT-MC>
- Date: Fri ,30 Jan 81 11:00:00 EDT
- Cc: LISP-FORUM at MIT-MC
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?
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.