[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Chicken-janitors] Re: #531: "Snowdigest" egg causes stack overflow erro
From: |
Chicken Trac |
Subject: |
[Chicken-janitors] Re: #531: "Snowdigest" egg causes stack overflow error in tests with experimental |
Date: |
Thu, 31 Mar 2011 10:34:13 -0000 |
#531: "Snowdigest" egg causes stack overflow error in tests with experimental
-----------------------------+----------------------------------------------
Reporter: sjamaan | Owner: felix
Type: defect | Status: closed
Priority: critical | Milestone: 4.7.0
Component: core libraries | Version: 4.6.x
Resolution: fixed | Keywords: stack overflow
-----------------------------+----------------------------------------------
Changes (by felix):
* status: new => closed
* resolution: => fixed
Comment:
The problem appears to be that the internal calculation-routines in
snowdigest are optimized into non-CPS "direct" calls (this code is very
tight and does lots of fixnum-arithmetic). It is also recursive, so,
depending on initial stack size, it may happen that the recursive direct-
style part is running while the stack is already relatively near to the
limit (i.e. shortly before CPS-code would trigger a minor GC). I have
raised the size of the "reserve" area on the stack for this situation (it
was 4096 bytes before, now it's 64k).
There also was a problem with garbage bits in character values for which
the internal comparison routines didn't work correctly.
See "experimental" branch for the fix. The char-comparison change will
only propagate by compiling the compiler with itself and then rebuilding.
--
Ticket URL: <http://bugs.call-cc.org/ticket/531#comment:1>
Chicken Scheme <http://www.call-with-current-continuation.org/>
Chicken Scheme is a compiler for the Scheme programming language.