|   | 
 ANSI Common Lisp    3 Evaluation and Compilation    3.8 Dictionary Evaluation and Compilation
 
 - Syntax:
 - 
proclaim
declaration-specifier
  
  implementation-dependent
  - Arguments and Values:
 - 
declaration-specifier - a declaration specifier.
  - Description:
 - 
Establishes the declaration specified by declaration-specifier
in the global environment.
Such a declaration, sometimes called a global declaration 
or a proclamation, is always in force unless locally shadowed.
 
Names of variables and functions within 
declaration-specifier refer to dynamic variables 
and global function definitions, respectively.
 
The next figure shows a list of declaration identifiers 
that can be used with proclaim.
 
 
 
Global Declaration Specifiers
  
    | declaration | 
    inline | 
    optimize | 
    type | 
   
  
    | ftype | 
    notinline | 
    special | 
     | 
   
 
An implementation is free to support other (implementation-defined)
declaration identifiers as well.
 
  - Examples:
 - 
 (defun declare-variable-types-globally (type vars)
   (proclaim `(type ,type ,@vars))
   type)
 ;; Once this form is executed, the dynamic variable *TOLERANCE*
 ;; must always contain a float.
 (declare-variable-types-globally 'float '(*tolerance*))
   FLOAT
 
  - See Also:
 - 
declaim,
declare,
Section 3.2 Compilation
  - Notes:
 - 
Although the execution of a proclaim form 
has effects that might affect compilation, the compiler does not make
any attempt to recognize and specially process proclaim forms.
A proclamation such as the following, even if a top level form,
does not have any effect until it is executed:
 
(proclaim '(special *x*))
 
If compile time side effects are desired, eval-when may be useful.
For example:
 
 
 (eval-when (:execute :compile-toplevel :load-toplevel)
   (proclaim '(special *x*)))
 
In most such cases, however, it is preferrable to use declaim for
this purpose.
 
Since proclaim forms are ordinary function forms,
macro forms can expand into them.
 
  - Allegro CL Implementation Details:
 - 
 None.
  
 |