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

Re: In search of the compatible DEFMACRO



How serious is this "compatibility" argument?
  Date: 4 February 1981 02:43-EST
  From: Robert W. Kerns <RWK at MIT-MC>
  Subject: DEFMACRO incompatible
    Date:  3 FEB 1981 2349-EST
    From: Moon at MIT-AI (David A. Moon)
    Subject: DEFMACRO incompatible
    It would be unreasonable to change the Lisp machine one, since that would
    make DEFMACRO incompatible with DEFUN and all other function-defining 
    special forms.  Why can't DEFMACRO put its declarations in the body where 
    all other function-defining things put them?
  I really don't understand any of this.  The options you can supply to
  DEFMACRO are like the options you can supply to DEFSTRUCT.  Declarations,
  at least as I think of them, are information for the compiler.
In addition to Bob's comment about parallels with DEFSTRUCT, I might ask
what DEFUN ever accepts argument syntax like 
	(DEFmumble FOO (X . Y)  (something-to-do))
??  Well DEFMACRO does.   The "name" argument, in this example FOO, can
be replaced by a list of name and options;  at least it can with
DEFSTRUCT, DEFVST, and the NIL/MacLISP DEFMACRO (but not the LISPM 
DEFMACRO).  Is there any reason for this gratuitous incompatibility?