Naming of Compiler Macros (original) (raw)
3 Evaluation and Compilation 3.2 Compilation
3.2.2 Compilation Semantics
3.2.2.1 Compiler Macros
3.2.2.1.2 Naming of Compiler Macros
Compiler macros may be defined for function names that name_macros_ as well as functions.
Compiler macro definitions are strictly global. There is no provision for defining local compiler macros in the way that macroletdefines local macros. Lexical bindings of a function name shadow any compiler macro definition associated with the name as well as its global function or macro definition.
Note that the presence of a compiler macro definition does not affect the values returned by functions that access function definitions (e.g., fboundp) or macro definitions (e.g., macroexpand). Compiler macros are global, and the functioncompiler-macro-function is sufficient to resolve their interaction with other lexical and global definitions.