Subject: [Ecls-list] segmentation fault with Maxima/ECL
From: Robert Dodier
Date: Wed, 24 Sep 2008 20:57:25 -0600
On Wed, Sep 24, 2008 at 2:29 PM, Juan Jose Garcia-Ripoll
<juanjose.garciaripoll at googlemail.com> wrote:
> Robert, I do not get anything like your backtrace. I ran that proram
> within GDB using the latest ECL and the C stack simply overflows. The
> GDB backgrace is 6065 calls deep!
The Maxima call stack itself is a small multiple of 248 calls deep;
it's somewhat annoying that the depth of the C call stack, which has
triggered this error, is an artifact of the Lisp implementation.
By the way, since the depth of the C stack is greatly increased
because of the way ECL is implemented, maybe ECL should
arrange for the default stack size to be larger. It won't fix the
underlying problem but it would make it less frequently encountered.
> The problem is that there is no
> portable way of detecting a stack overflow so my question is ...
>
>> (2) I hope someone from the ECL team can look at this problem.
>
> ...what are we expected to do?
Oh, I don't know. Maybe manage the call stack within ECL.
Or devise methods to detect C stack overflows on a best-effort basis.
(If you have some methods that work on the most popular platforms,
that's better than nothing.)
I wouldn't be surprised if there are various tactics used by other
Lisp implementations.
I hope you'll do something, anyway; a segfault in Lisp seems like bad
form to me.
FWIW
Robert Dodier