Handbook
Glossary
Stack checker errors
Factor handbook
»
The language
»
Stack effect checking
Prev:
Branch stack effects
Next:
Stack effect checking escape hatches
Stack effect checking failure conditions are reported in one of two ways:
•
Stack effect tools
report them when fed quotations interactively
•
The
Optimizing compiler
reports them while compiling words, via the
Batch error reporting
mechanism
Errors thrown when insufficient information is available to calculate the stack effect of a call to a combinator or macro (see
Combinator stack effects
):
do-not-compile
( word -- * )
unknown-macro-input
( macro -- * )
bad-macro-input
( macro -- * )
Error thrown when a word's stack effect declaration does not match the composition of the stack effects of its factors:
effect-error
( inferred declared -- * )
Error thrown when branches have incompatible stack effects (see
Branch stack effects
):
unbalanced-branches-error
( word quots declareds actuals -- * )
Inference errors for inline recursive words (see
Recursive combinator stack effects
):
undeclared-recursion-error
( word -- * )
diverging-recursion-error
( word -- * )
unbalanced-recursion-error
( word height -- * )
inconsistent-recursive-call-error
( word -- * )
More obscure errors that are unlikely to arise in ordinary code:
recursive-quotation-error
( quot -- * )
too-many->r
( -- * )
too-many-r>
( -- * )
missing-effect
( word -- * )