Stavros Macrakis <macrakis at alum.mit.edu> wrote:
So you're saying that other Lisp implementations on Linux/Debian/Ubuntu have the same problem? or pay a heavy
efficiency price because they solve it?
I have no idea about the several lisp implementations. Stack overflow
detection is a delicate cooperation between the processor, memory
management architecture, and the low-level OS. The reliability of
detection can depend on all three. If a pverflowing stack frame is
huge, or overflows by just the right boundaries, various other
exceptions can happen (including nothing at all) that aren't necessarily
reported as a stack overflow.
The circumstances are different on different hardware and different OS.
For example, x86-32 and x86-64 Linux have different capabilities. My
point was that you need to check across all kinds of hardware and all OS
(and all Lisps), for various kinds of overflows, not _just_ a single
simple overflow (e.g. a small-frame recursion) just across the several
Lisps. This would be a big ugly job...
From my perspective at least, clean recovery from stack overflow is a basic correctness issue and not one that I
want to trade off for efficiency.
You'll have to discuss that with your lisp providers...