in CLISP, many functions which are going (are likely) to allocate large =
things on the stack call CHECK_SP() or CHECK_STACK() at function entry.
To me it always seemed like it would be better to do this after the big =
alloca() or whatever was put on the stack, in an attempt to detect as =
early as possible that it actually did overflow.
Why is this so (at function entry)?
E.g., I wondered about this when implementing =
FFI:with-foreign-object/string. Def-call-out, using stack allocation, =
can also put huge amounts of data on the C stack. And others.
Thanks for enlightening me,