[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Purcopied code which needs to macroexpand
- To: (BUG LISP) at MIT-MC
- Subject: Purcopied code which needs to macroexpand
- From: REES at MIT-MC (Jonathan A. Rees)
- Date: Sun, 16 Mar 80 19:04:00 GMT
- Original-date: 16 MAR 1980 1404-EST
Some macros like FBOUNDP that are defined using DEFBOTHMACRO can't
be called inside the compiler, because they consist of pure EXPR code
which hasn't been MACRO-EXPANDed. When a macro inside this code goes
to displace the call it tries to write on a pure page. Seems to me
that this is a bug in the DEFMACRO package (it should be more careful
when displacing - this is difficult since we lack a PUREP predicate),
although it could also be argued that either COMPLR (who is guilty of
PURCOPYing EXPR code) or DEFBOTHMACRO (who arranges to avoid the
MACRO-EXPANDsion) is at fault. I currently get around this by doing
(setq defmacro-displace-call 'macromemo), which I suppose is alright.
(For all you people out there who wonder what DEFBOTHMACRO is,
don't ask. It's a feeble Maclisp trick, in search of a better name,
that tries to be similar to the Lisp machine's DEFSUBST.)