Too Many if Statements?

Alan Morgan amorgan at xenon.Stanford.EDU
Tue Feb 7 18:06:26 EST 2006


In article <GU8Gf.22899$Jd.6095 at newssvr25.news.prodigy.net>,
Bryan Olson  <fakeaddress at nowhere.org> wrote:
>Alan Morgan wrote:
>> slogging_away wrote:
>> 
>>>Hi - I'm running Python 2.4.2 (#67, Sep 28 2005, 12:41:11) [MSC v.1310
>>>32 bit (Intel)] on win32, and have a script that makes numerous checks
>>>on text files, (configuration files), so discrepancies can be reported.
>>>The script works fine but it appears that I may have hit a wall with
>>>'if' statements.
>>>
>> I generated files with 10000, 25000, and 50000 simple if statements and ran
>> them.  10000 was okay, 25000 gave a bizarre internal error, and 50000 segfaulted
>> and died.  My system has plenty of memory and it isn't obvious to me why python
>> should be so bothered about this.  I'm not sure why I can have 10x the number of
>> if statements that cause you trouble.  There might be some overall limitation
>> on the number of statements in a file.
>
>I made a script with 100,000 if's, (code below) and it appears
>to work on a couple systems, including Python 2.4.2 on Win32-XP.
>So at first cut, it doesn't seem to be just the if-count that
>triggers the bug.

Mine was a simple

#!/usr/local/bin/python

zot=24999
if zot == 0:
  print "It's 0"

if zot == 1:
  print "It's 1"

....

if zot == 24999:
  print "It's 24999"

generated (I'm ashamed to admit) by a perl script.  Is there any good reason why
it is failing?  I'd prefer a "Too many silly walks in your program.  Reduce!" to
a crash.  I could experiment with putting the matching 'if' at the beginning 
rather than at the end, but I'm not sure what that would tell me.

Alan
-- 
Defendit numerus



More information about the Python-list mailing list