VariablePackage: compilerToCDocOverviewCGDocRelNotesFAQIndexPermutedIndex
Allegro CL version 10.1
Unrevised from 10.0 to 10.1.
10.0 version

verify-stack-switch

As with most 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.

This switch only has effect on platforms with :verify-stack on the *features* list. On such platforms, checking whether the stack pointer has gone beyond the stack cushion is expensive. (A stack cushion is an artifical stack limit.If Lisp can detect when this limit is reached, it can warn that the stack is about to be exhausted -- if the stack truly runs out, Lisp will fail.) If this switch is nil, code is not added to check the stack cushion.

Highly recursive functions, at least, should be compiled with this switch true since they might cause unrecoverable stack overflow. In general, we do not recommend globally setting speed to 3 and safety to 0, which is what causes this switch to be nil, but instead selectively compiling functions at that setting when it is known that having this switch nil will not cause a problem.

See compiling.htm for information on the compiler.


Copyright (c) 1998-2022, Franz Inc. Lafayette, CA., USA. All rights reserved.
This page was not revised from the 10.0 page.
Created 2019.8.20.

ToCDocOverviewCGDocRelNotesFAQIndexPermutedIndex
Allegro CL version 10.1
Unrevised from 10.0 to 10.1.
10.0 version