Armin Rigo <[email protected]> added the comment:

The reason is in rpython/translator/c/src/stack.h: you need a macro
PYPY_INHIBIT_TAIL_CALL().  Without it, the C code compiles too many tail calls.
 This test is precisely checking a particular path that does only tail calls at
the C levels.  An optimizing compiler replaces them all with jumps, and then
runs the seemingly infinite number of nested C calls in a finite amount of C 
stack.

There are probably portable ways to write the macro.

----------
nosy: +arigo

________________________________________
PyPy bug tracker <[email protected]>
<https://bugs.pypy.org/issue1461>
________________________________________
_______________________________________________
pypy-issue mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-issue

Reply via email to