Scieneer Common Lisp 1.3.9 online documentation

with-compilation-unit options &parse-body body[Macro]

with-compilation-unit ({key value}*) form*

This form affects compilations that take place within its dynamic extent. It is intended to be wrapped around the compilation of all files in the same system. These keywords are defined:

:override boolean-form
One of the effects of this form is to delay undefined warnings until the end of the form, instead of giving them at the end of each compilation. If override is nil, which is the default, then the outermost with-compilation-unit form grabs the undefined warnings. Specifying override true causes that form to grab any enclosed warnings, even if it is enclosed by another with-compilation-unit.
:optimize decl-form
The decl-form should evaluate to an optimize declaration specifier. This declaration changes the `global' policy for compilations within the body.
:optimize-interface decl-form
Like optimize, except that it specifies the value of the extension optimize-interface policy - which controls argument type and syntax checking.
:context-declarations list-of-context-decls-form
This is an extension which allows compilation to be controlled by pattern matching on the context in which a definition appears. The argument should evaluate to a list of lists of the form: (context-spec declare-form+) In the indicated context, the specified declare forms are inserted at the head of each definition. The declare forms for all contexts that match are appended together, with earlier declarations getting predecence over later ones. A simple example: :context-declarations '((:external (declare (optimize (safety 2))))) This will cause all functions that are named by external symbols to be compiled with safety 2. The full syntax of context specs is:
:internal, :external
True if the symbol is internal or external respectively in its home package.
:uninterned
True if the symbol has no home package.
:anonymous
True if the function doesn't have any interesting name, not defmacro, defun, labels or flet.
:macro, :function
:macro is a global defmacro macro. :function is anything else.
:local, :global
:local is a labels or flet. :global is anything else.
(:or context-spec*)
True in any specified context.
(:and context-spec*)
True only when all specs are true.
(:not context-spec)
True when the spec is false.
(:member name*)
True when the name is one of these names - equal test.
(:match pattern*)
True when any of the patterns is a substring of the name. The name is wrapped with $'s, so $foo matches names beginning with foo, etc.