[Python-Dev] Re: Another test_compiler mystery (original) (raw)

Armin Rigo arigo at tunes.org
Tue Aug 10 21:16:38 CEST 2004


Hello Tim,

On Mon, Aug 09, 2004 at 09:48:37PM -0400, Tim Peters wrote:

Has anyone on Linux tried this yet?

I get this: in a release build,

... 120 ok 121 ok 122 ok 123 exceptions.RuntimeError maximum recursion depth exceeded 124 exceptions.RuntimeError maximum recursion depth exceeded 125 exceptions.RuntimeError maximum recursion depth exceeded 126 exceptions.RuntimeError maximum recursion depth exceeded 127 exceptions.RuntimeError maximum recursion depth exceeded 128 exceptions.RuntimeError maximum recursion depth exceeded ...

In a release 21st of March version with the fresh generator expression patch applied,

... 120 ok 121 ok 122 ok 123 exceptions.RuntimeError maximum recursion depth exceeded 124 exceptions.RuntimeError maximum recursion depth exceeded 125 exceptions.RuntimeError maximum recursion depth exceeded 126 exceptions.KeyError 305 127 exceptions.RuntimeError maximum recursion depth exceeded 128 exceptions.KeyError 304 129 exceptions.RuntimeError maximum recursion depth exceeded ...

In a recent debug build,

... 120 ok 121 ok 122 ok 123 exceptions.RuntimeError maximum recursion depth exceeded 124 exceptions.RuntimeError maximum recursion depth exceeded 125 exceptions.RuntimeError maximum recursion depth exceeded 126 exceptions.KeyError 307 127 exceptions.RuntimeError maximum recursion depth exceeded 128 exceptions.KeyError 306 129 exceptions.RuntimeError maximum recursion depth exceeded 130 exceptions.KeyError 305 131 exceptions.RuntimeError maximum recursion depth exceeded ...

So there is no particular problem running debug builds under Linux, but still why we get this behavior is anybody's guess.

Also note that even though the compiler package may only have changed a bit, the parser C module definitely has, e.g. when genexprs and decorators were introduced. I wonder what effect this has on the depth of concrete syntax trees. I also wonder if the parser module tries to be safe again C stack overflow when building hugely nested data structures.

Armin



More information about the Python-Dev mailing list