When ECL surpasses or approaches the memory limits it will signal a Common Lisp condition. There are two types of conditions, ext:stack-overflow and ext:storage-exhausted, for stack and heap overflows, respectively. Both errors are correctable, as the following session shows:
> (defun foo (x) (foo x)) FOO > (foo 1) C-STACK overflow at size 1654784. Stack can probably be resized. Broken at SI:BYTECODES.Available restarts: 1. (CONTINUE) Extend stack size Broken at FOO. >> :r1 C-STACK overflow at size 2514944. Stack can probably be resized. Broken at SI:BYTECODES.Available restarts: 1. (CONTINUE) Extend stack size Broken at FOO. >> :q Top level.