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.