Hugs Bug !
Alastair Reid
reid@cs.utah.edu
22 Mar 2002 16:48:56 +0000
Ahn Ki-yung <kyagrd@bawi.org> reports:
> {Apparently inessential details of program supressed]
>
> in unix/linux proper error msg comes out and back to interpreter.
>
> ERROR - Control stack overflow
>
> ===========
> but in windows 2000
>
> Then suddnly interpreter fails and
> the red (X) popup window pops up.
>
> hugs.exe - application programm error
>
> unknown software exception (0xc000fd) ... blabla
This is a known problem in Hugs to do with overflows of the C stack.
The problem is:
- Hugs evaluation is done on the C stack and so some kinds of
evaluation can cause stack overflows.
- OSs and C are pretty poor at detecting or avoiding stack overflows.
The reason you didn't see this in Unix is:
- Unix apparently assigns a different stack-size limit to Hugs.
(I think you can tune stack size in Windows but forget how.)
- Hugs uses a 2nd stack 'the control stack' during evaluation.
This is a normal C array which Hugs knows the size of so it can
detect overflow in that stack.
Often, when you run out of C stack space, you were about to run out
of control stack space anyway and when you run out of control stack
space you were about to run out of C stack space. (In other words,
running out of either usually indicates a problem in your program
which will not be solved by tweaking stack sizes.)
Hope this helps.
--
Alastair Reid reid@cs.utah.edu http://www.cs.utah.edu/~reid/