| Allegro CL version 8.2 Significantly revised from 8.1. 8.1 version |
As with all compiler switch variables, the value of this variable
can be t
, nil
, or a
function object that accepts five arguments and returns t
or nil
. The arguments
passed to the function will be the values of the safety, space, speed,
debug, and compilation-speed 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, and if the compiler trusts declarations (that is
trust-declarations-switch
is true), the
compiler will trust dynamic-extent declarations in code and produce
code (when it can) that is optimized given the declarations. Having a
switch which controls dynamic-extent declarations when declarations
are trusted (via the general trust-declarations-switch
) allows
dynamic-extent declarations to be ignored while other declarations are
trusted. When using multiprocessing, trusting
dynamic-extent
declarations may be unsafe when
trusting other declarations is
safe. See Stack
consing, avoiding consing using apply, and stack allocation
in compiling.htm for a discussion of the issues
surrounding multiprocessing and dynamic extent.
If trust-declarations-switch
is nil
, this switch is ignored.
Initially true when speed is greater than or equal to safety, which
means that this switch will be true in the default when
the trust-declarations-switch
is true in the
default (which is when speed is greater than safety). If there is an
issue with multiprocessing, you should bind or set this switch
to nil
, or design your own
function.
See compiling.htm for information on the compiler.
Copyright (c) 1998-2016, Franz Inc. Oakland, CA., USA. All rights reserved.
This page has had significant revisions compared to the 8.1 page.
Created 2016.6.21.
| Allegro CL version 8.2 Significantly revised from 8.1. 8.1 version |