Hi all,
Ruby 1.8.x (2,3,4)
Suse Linux 9.3
gcc 3.3.5
1 gb ram
Linux linux 2.6.11.4-21.9-default #1 Fri Aug 19 11:58:59 UTC 2005 i686
athlon i386 GNU/Linux
I notice that when I try a recursive function in an attempt to
deliberately raise a SystemStackError, it instead just goes into an
infinite loop, freezes my system, and is eventually killed (with no
error), by the OS.
def foo; foo; end # example
I don't see this behavior on my other (Solaris, Windows) machines.
What's up?
Thanks,
Dan
Raising SystemStackError if the stack gets too deep is a courtesy, not a
promise. Same goes for NoMemoryError and running out of memory.
It's possible, in either case, that raising the error would require more
of the resource that you just ran out of.
-mental
···
On Fri, 2005-11-04 at 14:22 +0900, Daniel Berger wrote:
I notice that when I try a recursive function in an attempt to
deliberately raise a SystemStackError, it instead just goes into an
infinite loop, freezes my system, and is eventually killed (with no
error), by the OS.
I don't see this behavior on my other (Solaris, Windows) machines.
What's up?
Still sounds like a bug. On OS X 10.3 and Gentoo (Linux Kernel 2.6)
I get an immediate SystemStackError after no halt running the code
Daniel posted. Both are running 1.8.2
I googled and saw that a miscalculated stack depth was supposedly
fixed a couple years a go in suse packages (with 1.8.0, i think)
···
On 11/4/05, MenTaLguY <mental@rydia.net> wrote:
On Fri, 2005-11-04 at 14:22 +0900, Daniel Berger wrote:
> I notice that when I try a recursive function in an attempt to
> deliberately raise a SystemStackError, it instead just goes into an
> infinite loop, freezes my system, and is eventually killed (with no
> error), by the OS.
>
> I don't see this behavior on my other (Solaris, Windows) machines.
> What's up?
Raising SystemStackError if the stack gets too deep is a courtesy, not a
promise. Same goes for NoMemoryError and running out of memory.
It's possible, in either case, that raising the error would require more
of the resource that you just ran out of.