[Python-Dev] Re: Another test_compiler mystery

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