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

(eval-when (compile load eval) ...)

I have a single file which first contains a function definition
FOO, then contains a macro definition BAR which use FOO, and then
contains a function BAZ which uses the macro BAR. Correct expansion
of the macro BAR while compiling BAZ requires than both FOO and BAR
be defined at the time BAZ is being compiled. At various points
during the history of Lisp, different mechanisms were available for
enforcing this, one being to wrap the definitions of FOO and BAR
inside an (EVAL-WHEN (COMPILE LOAD EVAL) ...) form. This currently
works but suffers from the problem that Zmacs no longer knows
about that FOO and BAR are definitions since the top level form
does not begin with "DEF" so things like m-sh-C don't work anymore.
Does anybody know what the "official Common Lisp way of doing this"
is and how do I get Zmacs to still recognize FOO and BAR as definitions.