As with all compiler switch variables, the value of this variable
can be t
, nil
, or a
function object that accepts four arguments and returns t
or nil
. The arguments
passed to the function will be the values of the safety, space, speed,
and debug optimization qualities, in that order. nil
is equivalent to a function that always returns
nil
and t
to a
function that always returns t
. When the
value is a function and we say t
(or true) or
nil
(or false) in the text below, we mean
that the function returns, respectively, t
or
nil
.
If true, code will be added to ensure that a symbol is bound before the value of that symbol is used. The result (as shown in Bound symbol example) is a guaranteed error and a better error message in code compiled with this switch true. Initially true if speed is less than 3 or safety is greater than 1.
In code compiled when this switch returns nil
, when a symbol is evaluated, the contents of the
symbol-value slot of the symbol object are accessed. If the symbol is
unbound, those contents may nonetheless be apparently valid and will
be used without further checking. This can lead to mysterious failures
later in execution or in apparently valid but in fact invalid
results.
See compiling.htm for information on the compiler.
The documentation is described in introduction.htm and the index is in index.htm.
Copyright (c) 1998-2000, Franz Inc. Berkeley, CA., USA. All rights reserved.
Created 2000.10.5.