ToC | DocOverview | CGDoc | RelNotes | Index | PermutedIndex
| Allegro CL

| ANSI Common Lisp 3 Evaluation and Compilation 3.8 Dictionary Evaluation and Compilation
3.8.25 optimize | Declaration
  Syntax: `(optimize `{`quality | (quality value)`}`*)` Arguments: quality - an optimize quality. value - one of the integers `0`, `1`, `2`, or `3`. Valid Context: declaration or proclamation Description: Advises the compiler that each quality should be given attention according to the specified corresponding value. Each quality must be a symbol naming an optimize quality; the names and meanings of the standard optimize qualities are shown in the next figure.
  Optimize qualities
  Name | Meaning
  --- | ---
  compilation-speed | speed of the compilation process
  debug | ease of debugging
  safety | run-time error checking
  space | both code size and run-time space
  speed | speed of the object code
  There may be other, implementation-defined optimize qualities. A value `0` means that the corresponding quality is totally unimportant, and `3` that the quality is extremely important; `1` and `2` are intermediate values, with `1` the neutral value. `(quality 3)` can be abbreviated to quality. Note that code which has the optimization `(safety 3)`, or just safety, is called safe code. The consequences are unspecified if a quality appears more than once with different values. Examples:
       (defun often-used-subroutine (x y)
         (declare (optimize (safety 2)))
         (error-check x y)
         (hairy-setup x)
         (do ((i 0 (+ i 1))
              (z x (cdr z)))
             ((null z))
           ;; This inner loop really needs to burn.
           (declare (optimize speed))
           (declare (fixnum i))
           ))
See Also: declare, declaim, proclaim, Section 3.3.4 Declaration Scope Notes: An optimize declaration never applies to either a variable or a function binding. An optimize declaration can only be a free declaration. For more information, see Section 3.3.4 Declaration Scope. Allegro CL Implementation Details: None.

© Franz Inc. All Rights Reserved - File last updated 2022-07-25