From: Rick Busdiecker
Subject: No (was Re: Is this a lucid bug?)
Date: 
Message-ID: <RFB.92Oct1222943@H.cs.cmu.edu>
In article <·····················@cs.cornell.edu> ·····@cs.cornell.edu (T. V. Raman) writes:

   Lucid seems to behave in an unexpected way if you
   1) First compile a function that calls a macro
   and then

Macros are expanded rather than called.  If the macro were defined, it
would be expanded at compile time and future changes to the macro
definition should not affect the compiled function object.

   2) Compile the macro.

   . . .

   USER> (defun foo ()
     (moo))
   FOO
   USER> (compile 'foo)
   ;;; Warning: The following function is not known to be defined:
   ;;;          MOO was referenced by FOO
   FOO

Note that the compiler warning indicates that MOO is assumed to be an
undefined function, not a macro.

   USER> (defmacro moo()
     `(print 'foo))
   MOO

Now MOO is defined as a macro and FOO appears to be invoking the macro
expansion function which expects two arguments, a form and an
environment.

-- 
Rick Busdiecker <····@cs.cmu.edu>
``Beware of programmers carrying screwdrivers''
				- Unknown