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


    Date: 17 JUN 1978 1449-EDT
    From: JONL at MIT-MC (Jon L White)
    Subject: RMS
    To: (BUG LISP) at MIT-MC

    The poooooor compiler must intercept any flavor of DISPLACE and imitate
    it without actually doing the RPLAC's, but rather by copying.  The reason
    is that ocasionally the complr likes to "back-up", and any munging of the
    original code (as read in) would be bad.  Even if there are multiple
    pointers to a given cell in code, it would not be bad to run the
    macro expander twice or more, since the macro-expansion occurs only
    once per instance in code (rather than once per use in normal lisp
    running enviromnent).  Apparently the expansion of macros more than once
    (due to the "backing-up") has caused some consternation to some 
    people, so it is apparently something a compiler user will have to
    live with, or else use read-time macros (instead of eval-time macros
    which BLAIR calls "meta-composition").
It seems to me that the compiler could back up properly by noticing the
DISPLACED form, if DISPLACE/DISPLACED were institutionalized.  On the othher
hand, there are other goood reasons why re-performing a macro shouldn't
cause screewwage.