VariablePackage: compilerToCDocOverviewCGDocRelNotesFAQIndexPermutedIndex
Allegro CL version 8.1
This page is new in 8.1.


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.

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.

Created 2007.4.30.

Allegro CL version 8.1
This page is new in 8.1.