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

Tim Peters tim.peters at gmail.com
Tue Aug 10 00:39:01 CEST 2004


Here's a cute one:

""" import compiler, sys

f = open('../Lib/test/test_parser.py') guts = f.read() f.close()

def ouch(n): if n == 0: return compiler.compile(guts, "", "exec") else: return ouch(n-1)

for n in range(100, 250): try: ouch(n) msg = 'ok' except Exception, msg: msg = str(sys.exc_info()[0]) + ' ' + str(msg) print n, msg """

Under 2.3.4, that works as expected: when n hit a large enough value, from then on it was all repetitions of recursion-depth exceptions:

,,, 147 ok 148 ok 149 ok 150 exceptions.RuntimeError maximum recursion depth exceeded 151 exceptions.RuntimeError maximum recursion depth exceeded 152 exceptions.RuntimeError maximum recursion depth exceeded ...

Under CVS, it's very different. Under a debug build, I get no output at all(!). Not even if I change the loop to start at 0. Under 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.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 132 exceptions.KeyError 304 133 exceptions.RuntimeError maximum recursion depth exceeded 134 exceptions.KeyError 303 135 exceptions.KeyError 302 136 exceptions.RuntimeError maximum recursion depth exceeded 137 exceptions.KeyError 301 138 exceptions.RuntimeError maximum recursion depth exceeded 139 exceptions.KeyError 300 140 exceptions.RuntimeError maximum recursion depth exceeded 141 exceptions.RuntimeError maximum recursion depth exceeded 142 exceptions.KeyError 299 143 exceptions.RuntimeError maximum recursion depth exceeded 144 exceptions.KeyError 297 145 exceptions.KeyError 296 146 exceptions.RuntimeError maximum recursion depth exceeded 147 exceptions.KeyError 295 148 exceptions.RuntimeError maximum recursion depth exceeded 149 exceptions.KeyError 294 150 exceptions.RuntimeError maximum recursion depth exceeded 151 exceptions.RuntimeError maximum recursion depth exceeded 152 exceptions.RuntimeError maximum recursion depth exceeded 153 exceptions.KeyError 309 154 exceptions.RuntimeError maximum recursion depth exceeded 155 exceptions.RuntimeError maximum recursion depth exceeded 156 exceptions.KeyError 307 157 exceptions.RuntimeError maximum recursion depth exceeded 158 exceptions.KeyError 306 159 exceptions.RuntimeError maximum recursion depth exceeded 160 exceptions.KeyError 305 161 exceptions.RuntimeError maximum recursion depth exceeded 162 exceptions.KeyError 304 163 exceptions.RuntimeError maximum recursion depth exceeded 164 exceptions.KeyError 303 165 exceptions.KeyError 302 166 exceptions.RuntimeError maximum recursion depth exceeded ...

and there's a seemingly non-random but hard-to-fathom jumble of recursion-depth and KeyError exceptions thereafter too.

So something's really hosed in CVS, or in MSVC 7.1, or ...



More information about the Python-Dev mailing list