[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Chicken-users] Unbounded stack growth
From: |
Marc Feeley |
Subject: |
Re: [Chicken-users] Unbounded stack growth |
Date: |
Wed, 11 Jul 2012 15:45:28 -0400 |
On 2012-07-11, at 2:31 PM, John Cowan wrote:
> Marc Feeley scripsit:
>
>> In this example, there will be an arbitrarily long sequence of C calls
>> (in the unwinding of the recursion to even) with no Scheme call, so
>> stack size checks will not be performed during the unwinding, yet the
>> C stack grows during the unwinding. There is no stack overflow during
>> the winding phase of the recursion because the stack size checks are
>> performed at regular intervals (at each entry to even).
>
> While you're right, it's not clear that this matters enough to fix.
> It's not a *correctness* error,
Saying that this is not a correctness error is lawyer-speak.
> since every implementation will blow up
> on excessive recursion sooner or later when memory is exhausted.
Part of the problem is that it truly "blows up". A high-level language should
never give a segment violation. If there isn't enough memory, a software
exception should be raised (possibly catchable), or at a bare minimum a
readable error message (such as "stack overflow").
> If the overflow check were done, the maximum recursion depth would be
> bounded by the C heap, not the C stack.
On my 64 bit machine, the C heap is several orders of magnitude larger than the
C stack.
> However, inserting all those
> checks has a cost. So it would be a question of measuring the added cost
> of the checks over a large variety of programs. If it's consistently
> small, they should be added; if not, there should be an option to provide
> them or to turn them off.
Performance should not trump safety and correctness.
Marc
- [Chicken-users] Unbounded stack growth, Marc Feeley, 2012/07/11
- Re: [Chicken-users] Unbounded stack growth, John Cowan, 2012/07/11
- Re: [Chicken-users] Unbounded stack growth,
Marc Feeley <=
- Re: [Chicken-users] Unbounded stack growth, Felix, 2012/07/11
- Re: [Chicken-users] Unbounded stack growth, Marc Feeley, 2012/07/11
- Re: [Chicken-users] Unbounded stack growth, Alex Shinn, 2012/07/11
- Re: [Chicken-users] Unbounded stack growth, Matthew Flatt, 2012/07/11
- Re: [Chicken-users] Unbounded stack growth, John Cowan, 2012/07/11
- Re: [Chicken-users] Unbounded stack growth, Alex Shinn, 2012/07/11
- Re: [Chicken-users] Unbounded stack growth, cjtenny, 2012/07/12
- Re: [Chicken-users] Unbounded stack growth, Alex Queiroz, 2012/07/12
- Re: [Chicken-users] Unbounded stack growth, Alex Shinn, 2012/07/12
- Re: [Chicken-users] Unbounded stack growth, Alex Queiroz, 2012/07/12