Re/Unresolved bug?

Steven Taschuk staschuk at telusplanet.net
Sun Jun 29 14:48:33 EDT 2003


Quoth Xavier:
  [top-posting fixed]
> From: "Steven Taschuk" <staschuk at telusplanet.net>
> > Could you post a minimal example of code which provokes this
> > behaviour?
  [...]
> Thanks for your reply.  Here is the exact, waiting to be fixed code:
> http://sabu.net/routekill.py

That is very far from a minimal example.  What you should do is
cut out some code, verify that the problem still exists, and
repeat until you can't cut out anything without making the problem
go away.  Doing so has two advantages: first, a short example is
much more likely to provoke responses here, and second, the
process itself might teach you what the problem is.

Having had some spare time today, I've done this for you.  Here's
the (not *quite* minimal, actually) result:

    def addroutes(IP, METHOD):
        global METHOD

    def main():
        global VERBOSE
        VERBOSE = '1'
        global VERBOSE

    print 'foo'

On my machine, with 2.2.2 this code issues the SyntaxWarning and
then segfaults, and on 2.3 issues the SyntaxWarning and dies
without printing 'foo'.

There are two things wrong with this code.  To get it running,
first remove the second global statement for VERBOSE.  Once that's
done, the code will start producing
    SyntaxError: name 'METHOD' is local and global
Thus the second thing you need to do is to decide whether you want
METHOD to be an argument to addroutes() or a global variable to
that function, and then either remove the global statement or
emend the argument list.

Once you've done these two things the code will run; I leave
determining whether it works to you.

(Python's reaction to this code *is* buggy -- it seems that the
SyntaxWarning interferes with the SyntaxError somehow.  (My
original suspicion that the SyntaxWarning was irrelevant was
wrong.)  I'll be looking into this today.)

-- 
Steven Taschuk                               staschuk at telusplanet.net
"What I find most baffling about that song is that it was not a hit."
                                          -- Tony Dylan Davis (CKUA)





More information about the Python-list mailing list