Common Lisp the Language, 2nd Edition
If a form is a list and the first element is not the name of a special form, it may be the name of a macro; if so, the form is said to be a macro call. A macro is essentially a function from forms to forms that will, given a call to that macro, compute a new form to be evaluated in place of the macro call. (This computation is sometimes referred to as macro expansion.) For example, the macro named return will take a form such as (return x) and from that form compute a new form (return-from nil x). We say that the old form expands into the new form. The new form is then evaluated in place of the original form; the value of the new form is returned as the value of the original form.
X3J13 voted in January 1989 (DOTTED-MACRO-FORMS) to clarify that macro calls, and subforms of macro calls, need not be proper lists, but that use of dotted forms requires the macro definition to use ``. var'' or ``&rest var'' in order to match them properly. It is then the responsibility of the macro definition to recognize and appropriately handle such dotted forms or subforms.
There are a number of standard macros in Common Lisp, and the user can define more by using defmacro.
Macros provided by a Common Lisp implementation as described herein may expand into code that is not portable among differing implementations. That is, a macro call may be implementation-independent because the macro is defined in this book, but the expansion need not be.