Author: Ronan Lamy <ronan.l...@gmail.com>
Branch: py3k
Changeset: r84152:ecb21bf4a68d
Date: 2016-05-03 00:59 +0100
http://bitbucket.org/pypy/pypy/changeset/ecb21bf4a68d/

Log:    hg merge default

diff too long, truncating to 2000 out of 3805 lines

diff --git a/TODO b/TODO
deleted file mode 100644
--- a/TODO
+++ /dev/null
@@ -1,2 +0,0 @@
-* reduce size of generated c code from slot definitions in slotdefs.
-* remove broken DEBUG_REFCOUNT from pyobject.py
diff --git a/pypy/doc/tool/mydot.py b/pypy/doc/tool/mydot.py
--- a/pypy/doc/tool/mydot.py
+++ b/pypy/doc/tool/mydot.py
@@ -68,7 +68,7 @@
                       help="output format")
     options, args = parser.parse_args()
     if len(args) != 1:
-        raise ValueError, "need exactly one argument"
+        raise ValueError("need exactly one argument")
     epsfile = process_dot(py.path.local(args[0]))
     if options.format == "ps" or options.format == "eps":
         print epsfile.read()
diff --git a/pypy/interpreter/argument.py b/pypy/interpreter/argument.py
--- a/pypy/interpreter/argument.py
+++ b/pypy/interpreter/argument.py
@@ -27,7 +27,6 @@
         self.space = space
         assert isinstance(args_w, list)
         self.arguments_w = args_w
-        
         self.keywords = keywords
         self.keywords_w = keywords_w
         self.keyword_names_w = keyword_names_w  # matches the tail of .keywords
@@ -137,11 +136,11 @@
         """The simplest argument parsing: get the 'argcount' arguments,
         or raise a real ValueError if the length is wrong."""
         if self.keywords:
-            raise ValueError, "no keyword arguments expected"
+            raise ValueError("no keyword arguments expected")
         if len(self.arguments_w) > argcount:
-            raise ValueError, "too many arguments (%d expected)" % argcount
+            raise ValueError("too many arguments (%d expected)" % argcount)
         elif len(self.arguments_w) < argcount:
-            raise ValueError, "not enough arguments (%d expected)" % argcount
+            raise ValueError("not enough arguments (%d expected)" % argcount)
         return self.arguments_w
 
     def firstarg(self):
@@ -520,7 +519,6 @@
         msg = "takes %s but %s given" % (takes_str, given_str)
         return msg
 
-
 class ArgErrMultipleValues(ArgErr):
 
     def __init__(self, argname):
@@ -530,7 +528,6 @@
         msg = "got multiple values for argument '%s'" % self.argname
         return msg
 
-
 class ArgErrUnknownKwds(ArgErr):
 
     def __init__(self, space, num_remainingkwds, keywords, kwds_mapping,
diff --git a/pypy/interpreter/astcompiler/tools/asdl.py 
b/pypy/interpreter/astcompiler/tools/asdl.py
--- a/pypy/interpreter/astcompiler/tools/asdl.py
+++ b/pypy/interpreter/astcompiler/tools/asdl.py
@@ -96,7 +96,7 @@
 
     def t_default(self, s):
         r" . +"
-        raise ValueError, "unmatched input: %s" % `s`
+        raise ValueError("unmatched input: %s" % `s`)
 
 class ASDLParser(spark.GenericParser, object):
     def __init__(self):
diff --git a/pypy/interpreter/baseobjspace.py b/pypy/interpreter/baseobjspace.py
--- a/pypy/interpreter/baseobjspace.py
+++ b/pypy/interpreter/baseobjspace.py
@@ -476,7 +476,6 @@
     def getbuiltinmodule(self, name, force_init=False, reuse=True):
         w_name = self.wrap(name)
         w_modules = self.sys.get('modules')
-
         if not force_init:
             assert reuse
             try:
diff --git a/pypy/interpreter/pyframe.py b/pypy/interpreter/pyframe.py
--- a/pypy/interpreter/pyframe.py
+++ b/pypy/interpreter/pyframe.py
@@ -550,7 +550,7 @@
         where the order is according to self.pycode.signature()."""
         scope_len = len(scope_w)
         if scope_len > self.pycode.co_nlocals:
-            raise ValueError, "new fastscope is longer than the allocated area"
+            raise ValueError("new fastscope is longer than the allocated area")
         # don't assign directly to 'locals_cells_stack_w[:scope_len]' to be
         # virtualizable-friendly
         for i in range(scope_len):
diff --git a/pypy/interpreter/pyopcode.py b/pypy/interpreter/pyopcode.py
--- a/pypy/interpreter/pyopcode.py
+++ b/pypy/interpreter/pyopcode.py
@@ -1098,7 +1098,7 @@
         return next_instr
 
     def FOR_LOOP(self, oparg, next_instr):
-        raise BytecodeCorruption, "old opcode, no longer in use"
+        raise BytecodeCorruption("old opcode, no longer in use")
 
     def SETUP_LOOP(self, offsettoend, next_instr):
         block = LoopBlock(self.valuestackdepth,
diff --git a/pypy/module/cpyext/pyobject.py b/pypy/module/cpyext/pyobject.py
--- a/pypy/module/cpyext/pyobject.py
+++ b/pypy/module/cpyext/pyobject.py
@@ -152,17 +152,6 @@
 class InvalidPointerException(Exception):
     pass
 
-DEBUG_REFCOUNT = False
-
-def debug_refcount(*args, **kwargs):
-    frame_stackdepth = kwargs.pop("frame_stackdepth", 2)
-    assert not kwargs
-    frame = sys._getframe(frame_stackdepth)
-    print >>sys.stderr, "%25s" % (frame.f_code.co_name, ),
-    for arg in args:
-        print >>sys.stderr, arg,
-    print >>sys.stderr
-
 def create_ref(space, w_obj, itemcount=0):
     """
     Allocates a PyObject, and fills its fields with info from the given
@@ -192,10 +181,6 @@
     # XXX looks like a PyObject_GC_TRACK
     assert py_obj.c_ob_refcnt < rawrefcount.REFCNT_FROM_PYPY
     py_obj.c_ob_refcnt += rawrefcount.REFCNT_FROM_PYPY
-    if DEBUG_REFCOUNT:
-        debug_refcount("MAKREF", py_obj, w_obj)
-        assert w_obj
-        assert py_obj
     rawrefcount.create_link_pypy(w_obj, py_obj)
 
 
diff --git a/pypy/objspace/descroperation.py b/pypy/objspace/descroperation.py
--- a/pypy/objspace/descroperation.py
+++ b/pypy/objspace/descroperation.py
@@ -741,4 +741,4 @@
         elif _name not in ['is_', 'id','type','issubtype', 'int',
                            # not really to be defined in DescrOperation
                            'ord', 'unichr', 'unicode']:
-            raise Exception, "missing def for operation %s" % _name
+            raise Exception("missing def for operation %s" % _name)
diff --git a/pypy/objspace/std/dictmultiobject.py 
b/pypy/objspace/std/dictmultiobject.py
--- a/pypy/objspace/std/dictmultiobject.py
+++ b/pypy/objspace/std/dictmultiobject.py
@@ -749,9 +749,9 @@
                     return None
 
     class IterClassItems(BaseItemIterator):
-        def __init__(self, space, strategy, impl):
-            self.iterator = strategy.getiteritems_with_hash(impl)
-            BaseIteratorImplementation.__init__(self, space, strategy, impl)
+        def __init__(self, space, strategy, w_dict):
+            self.iterator = strategy.getiteritems_with_hash(w_dict)
+            BaseIteratorImplementation.__init__(self, space, strategy, w_dict)
 
         if override_next_item is not None:
             next_item_entry = override_next_item
@@ -764,9 +764,9 @@
                     return None, None
 
     class IterClassReversed(BaseKeyIterator):
-        def __init__(self, space, strategy, impl):
-            self.iterator = strategy.getiterreversed(impl)
-            BaseIteratorImplementation.__init__(self, space, strategy, impl)
+        def __init__(self, space, strategy, w_dict):
+            self.iterator = strategy.getiterreversed(w_dict)
+            BaseIteratorImplementation.__init__(self, space, strategy, w_dict)
 
         def next_key_entry(self):
             for key in self.iterator:
diff --git a/pypy/objspace/std/mapdict.py b/pypy/objspace/std/mapdict.py
--- a/pypy/objspace/std/mapdict.py
+++ b/pypy/objspace/std/mapdict.py
@@ -838,8 +838,7 @@
         self.orig_map = self.curr_map = w_obj._get_mapdict_map()
 
     def next_key_entry(self):
-        implementation = self.w_dict
-        assert isinstance(implementation.get_strategy(), MapDictStrategy)
+        assert isinstance(self.w_dict.get_strategy(), MapDictStrategy)
         if self.orig_map is not self.w_obj._get_mapdict_map():
             return None
         if self.curr_map:
@@ -860,8 +859,7 @@
         self.orig_map = self.curr_map = w_obj._get_mapdict_map()
 
     def next_value_entry(self):
-        implementation = self.w_dict
-        assert isinstance(implementation.get_strategy(), MapDictStrategy)
+        assert isinstance(self.w_dict.get_strategy(), MapDictStrategy)
         if self.orig_map is not self.w_obj._get_mapdict_map():
             return None
         if self.curr_map:
@@ -881,8 +879,7 @@
         self.orig_map = self.curr_map = w_obj._get_mapdict_map()
 
     def next_item_entry(self):
-        implementation = self.w_dict
-        assert isinstance(implementation.get_strategy(), MapDictStrategy)
+        assert isinstance(self.w_dict.get_strategy(), MapDictStrategy)
         if self.orig_map is not self.w_obj._get_mapdict_map():
             return None, None
         if self.curr_map:
diff --git a/pypy/objspace/std/objspace.py b/pypy/objspace/std/objspace.py
--- a/pypy/objspace/std/objspace.py
+++ b/pypy/objspace/std/objspace.py
@@ -142,7 +142,7 @@
         if x is None:
             return self.w_None
         if isinstance(x, OperationError):
-            raise TypeError, ("attempt to wrap already wrapped exception: %s"%
+            raise TypeError("attempt to wrap already wrapped exception: %s"%
                               (x,))
         if isinstance(x, int):
             if isinstance(x, bool):
diff --git a/pypy/tool/dis3.py b/pypy/tool/dis3.py
--- a/pypy/tool/dis3.py
+++ b/pypy/tool/dis3.py
@@ -44,9 +44,8 @@
     elif isinstance(x, str):
         disassemble_string(x)
     else:
-        raise TypeError, \
-              "don't know how to disassemble %s objects" % \
-              type(x).__name__
+        raise TypeError("don't know how to disassemble %s objects" % \
+              type(x).__name__)
 
 def distb(tb=None):
     """Disassemble a traceback (default: last traceback)."""
@@ -54,7 +53,7 @@
         try:
             tb = sys.last_traceback
         except AttributeError:
-            raise RuntimeError, "no last traceback to disassemble"
+            raise RuntimeError("no last traceback to disassemble")
         while tb.tb_next: tb = tb.tb_next
     disassemble(tb.tb_frame.f_code, tb.tb_lasti)
 
diff --git a/pypy/tool/importfun.py b/pypy/tool/importfun.py
--- a/pypy/tool/importfun.py
+++ b/pypy/tool/importfun.py
@@ -163,7 +163,7 @@
         if name in opcode.opmap:
             return opcode.opmap[name]
         else:
-            raise AttributeError, name
+            raise AttributeError(name)
 
 _op_ = _Op()
 
diff --git a/pypy/tool/isolate.py b/pypy/tool/isolate.py
--- a/pypy/tool/isolate.py
+++ b/pypy/tool/isolate.py
@@ -50,7 +50,7 @@
             if exc_type_module == 'exceptions':
                 raise getattr(exceptions, exc_type_name)
             else:
-                raise IsolateException, "%s.%s" % value 
+                raise IsolateException("%s.%s" % value) 
 
     def _close(self):
         if not self._closed:
diff --git a/pypy/tool/pydis.py b/pypy/tool/pydis.py
--- a/pypy/tool/pydis.py
+++ b/pypy/tool/pydis.py
@@ -96,8 +96,8 @@
         for bytecode in self.bytecodes:
             if bytecode.index == index:
                 return bytecode
-        raise ValueError, "no bytecode found on index %s in code \n%s" % (
-                index, pydis(self.code))
+        raise ValueError("no bytecode found on index %s in code \n%s" % (
+                index, pydis(self.code)))
 
     def format(self):
         lastlineno = -1
diff --git a/pypy/tool/rest/rst.py b/pypy/tool/rest/rst.py
--- a/pypy/tool/rest/rst.py
+++ b/pypy/tool/rest/rst.py
@@ -128,7 +128,7 @@
         outcome = []
         if (isinstance(self.children[0], Transition) or
                 isinstance(self.children[-1], Transition)):
-            raise ValueError, ('document must not begin or end with a '
+            raise ValueError('document must not begin or end with a '
                                'transition')
         for child in self.children:
             outcome.append(child.text())
diff --git a/pypy/tool/test/isolate_simple.py b/pypy/tool/test/isolate_simple.py
--- a/pypy/tool/test/isolate_simple.py
+++ b/pypy/tool/test/isolate_simple.py
@@ -3,13 +3,13 @@
     return a+b
 
 def g():
-    raise ValueError, "booh"
+    raise ValueError("booh")
 
 class FancyException(Exception):
     pass
 
 def h():
-    raise FancyException, "booh"
+    raise FancyException("booh")
 
 def bomb():
     raise KeyboardInterrupt
diff --git a/rpython/annotator/annrpython.py b/rpython/annotator/annrpython.py
--- a/rpython/annotator/annrpython.py
+++ b/rpython/annotator/annrpython.py
@@ -345,10 +345,10 @@
             del self.blocked_blocks[block]
         try:
             self.flowin(graph, block)
-        except BlockedInference, e:
+        except BlockedInference as e:
             self.annotated[block] = False   # failed, hopefully temporarily
             self.blocked_blocks[block] = (graph, e.opindex)
-        except Exception, e:
+        except Exception as e:
             # hack for debug tools only
             if not hasattr(e, '__annotator_block'):
                 setattr(e, '__annotator_block', block)
@@ -382,7 +382,7 @@
         oldcells = [self.binding(a) for a in block.inputargs]
         try:
             unions = [annmodel.unionof(c1,c2) for c1, c2 in 
zip(oldcells,inputcells)]
-        except annmodel.UnionError, e:
+        except annmodel.UnionError as e:
             # Add source code to the UnionError
             e.source = '\n'.join(source_lines(graph, block, None, long=True))
             raise
diff --git a/rpython/annotator/description.py b/rpython/annotator/description.py
--- a/rpython/annotator/description.py
+++ b/rpython/annotator/description.py
@@ -278,7 +278,7 @@
                     defs_s.append(self.bookkeeper.immutablevalue(x))
         try:
             inputcells = args.match_signature(signature, defs_s)
-        except ArgErr, e:
+        except ArgErr as e:
             raise AnnotatorError("signature mismatch: %s() %s" %
                             (self.name, e.getmsg()))
         return inputcells
diff --git a/rpython/annotator/test/test_annrpython.py 
b/rpython/annotator/test/test_annrpython.py
--- a/rpython/annotator/test/test_annrpython.py
+++ b/rpython/annotator/test/test_annrpython.py
@@ -902,7 +902,7 @@
         def f(l):
             try:
                 l[0]
-            except (KeyError, IndexError),e:
+            except (KeyError, IndexError) as e:
                 return e
             return None
 
diff --git a/rpython/bin/translatorshell.py b/rpython/bin/translatorshell.py
--- a/rpython/bin/translatorshell.py
+++ b/rpython/bin/translatorshell.py
@@ -61,7 +61,7 @@
 if __name__ == '__main__':
     try:
         setup_readline()
-    except ImportError, err:
+    except ImportError as err:
         print "Disabling readline support (%s)" % err
     from rpython.translator.test import snippet
     from rpython.rtyper.rtyper import RPythonTyper
diff --git a/rpython/flowspace/model.py b/rpython/flowspace/model.py
--- a/rpython/flowspace/model.py
+++ b/rpython/flowspace/model.py
@@ -677,7 +677,7 @@
             assert len(allexitcases) == len(block.exits)
             vars_previous_blocks.update(vars)
 
-    except AssertionError, e:
+    except AssertionError as e:
         # hack for debug tools only
         #graph.show()  # <== ENABLE THIS TO SEE THE BROKEN GRAPH
         if block and not hasattr(e, '__annotator_block'):
diff --git a/rpython/jit/backend/arm/test/support.py 
b/rpython/jit/backend/arm/test/support.py
--- a/rpython/jit/backend/arm/test/support.py
+++ b/rpython/jit/backend/arm/test/support.py
@@ -67,7 +67,7 @@
         func(*args, **kwargs)
         try:
             f_name = name[:name.index('_')]
-        except ValueError, e:
+        except ValueError as e:
             f_name = name
         self.assert_equal('%s%s %s' % (f_name, asm_ext, asm))
     return f
diff --git a/rpython/jit/backend/detect_cpu.py 
b/rpython/jit/backend/detect_cpu.py
--- a/rpython/jit/backend/detect_cpu.py
+++ b/rpython/jit/backend/detect_cpu.py
@@ -35,7 +35,7 @@
             if not getdefined(macro, ''):
                 continue
             return k
-    raise ProcessorAutodetectError, "Cannot detect processor using compiler 
macros"
+    raise ProcessorAutodetectError("Cannot detect processor using compiler 
macros")
 
 
 def detect_model_from_host_platform():
@@ -52,7 +52,7 @@
         # assume we have 'uname'
         mach = os.popen('uname -m', 'r').read().strip()
         if not mach:
-            raise ProcessorAutodetectError, "cannot run 'uname -m'"
+            raise ProcessorAutodetectError("cannot run 'uname -m'")
     #
     result ={'i386': MODEL_X86,
             'i486': MODEL_X86,
@@ -74,7 +74,7 @@
             }.get(mach)
 
     if result is None:
-        raise ProcessorAutodetectError, "unknown machine name %s" % mach
+        raise ProcessorAutodetectError("unknown machine name %s" % mach)
     #
     if result.startswith('x86'):
         from rpython.jit.backend.x86 import detect_feature as feature
@@ -128,7 +128,7 @@
     elif backend_name == MODEL_S390_64:
         return "rpython.jit.backend.zarch.runner", "CPU_S390_64"
     else:
-        raise ProcessorAutodetectError, (
+        raise ProcessorAutodetectError(
             "we have no JIT backend for this cpu: '%s'" % backend_name)
 
 def getcpuclass(backend_name="auto"):
diff --git a/rpython/jit/backend/llgraph/runner.py 
b/rpython/jit/backend/llgraph/runner.py
--- a/rpython/jit/backend/llgraph/runner.py
+++ b/rpython/jit/backend/llgraph/runner.py
@@ -404,7 +404,7 @@
         try:
             frame.execute(lltrace)
             assert False
-        except ExecutionFinished, e:
+        except ExecutionFinished as e:
             return e.deadframe
 
     def get_value_direct(self, deadframe, tp, index):
@@ -1097,7 +1097,7 @@
             execute = getattr(self, 'execute_' + op.getopname())
             try:
                 resval = execute(_getdescr(op), *args)
-            except Jump, j:
+            except Jump as j:
                 self.lltrace, i = j.jump_target
                 if i >= 0:
                     label_op = self.lltrace.operations[i]
@@ -1348,7 +1348,7 @@
         try:
             res = self.cpu.maybe_on_top_of_llinterp(func, call_args, TP.RESULT)
             self.last_exception = None
-        except LLException, lle:
+        except LLException as lle:
             self.last_exception = lle
             res = _example_res[getkind(TP.RESULT)[0]]
         return res
@@ -1444,7 +1444,7 @@
             assembler_helper_ptr = jd.assembler_helper_adr.ptr  # fish
             try:
                 result = assembler_helper_ptr(pframe, vable)
-            except LLException, lle:
+            except LLException as lle:
                 assert self.last_exception is None, "exception left behind"
                 self.last_exception = lle
                 # fish op
diff --git a/rpython/jit/backend/llsupport/llmodel.py 
b/rpython/jit/backend/llsupport/llmodel.py
--- a/rpython/jit/backend/llsupport/llmodel.py
+++ b/rpython/jit/backend/llsupport/llmodel.py
@@ -144,7 +144,7 @@
                 # all other fields are empty
                 llop.gc_writebarrier(lltype.Void, new_frame)
                 return lltype.cast_opaque_ptr(llmemory.GCREF, new_frame)
-            except Exception, e:
+            except Exception as e:
                 print "Unhandled exception", e, "in realloc_frame"
                 return lltype.nullptr(llmemory.GCREF.TO)
 
diff --git a/rpython/jit/backend/llsupport/test/zrpy_gc_test.py 
b/rpython/jit/backend/llsupport/test/zrpy_gc_test.py
--- a/rpython/jit/backend/llsupport/test/zrpy_gc_test.py
+++ b/rpython/jit/backend/llsupport/test/zrpy_gc_test.py
@@ -176,7 +176,7 @@
             cls.cbuilder = compile(get_entry(allfuncs), cls.gc,
                                    gcrootfinder=cls.gcrootfinder, jit=True,
                                    thread=True)
-        except ConfigError, e:        
+        except ConfigError as e:        
             assert str(e).startswith('invalid value asmgcc')
             py.test.skip('asmgcc not supported')
         finally:
diff --git a/rpython/jit/backend/llsupport/test/zrpy_vmprof_test.py 
b/rpython/jit/backend/llsupport/test/zrpy_vmprof_test.py
--- a/rpython/jit/backend/llsupport/test/zrpy_vmprof_test.py
+++ b/rpython/jit/backend/llsupport/test/zrpy_vmprof_test.py
@@ -34,7 +34,7 @@
 
         try:
             rvmprof.register_code_object_class(MyCode, get_name)
-        except rvmprof.VMProfPlatformUnsupported, e:
+        except rvmprof.VMProfPlatformUnsupported as e:
             py.test.skip(str(e))
 
         def get_unique_id(code):
diff --git a/rpython/jit/backend/llsupport/test/ztranslation_test.py 
b/rpython/jit/backend/llsupport/test/ztranslation_test.py
--- a/rpython/jit/backend/llsupport/test/ztranslation_test.py
+++ b/rpython/jit/backend/llsupport/test/ztranslation_test.py
@@ -288,7 +288,7 @@
         def main(i):
             try:
                 myportal(i)
-            except ImDone, e:
+            except ImDone as e:
                 return e.resvalue
 
         # XXX custom fishing, depends on the exact env var and format
@@ -297,7 +297,7 @@
         try:
             res = self.meta_interp(main, [400])
             assert res == main(400)
-        except ConfigError,e:
+        except ConfigError as e:
             assert str(e).startswith('invalid value asmgcc')
             py.test.skip('asmgcc not supported')
         finally:
diff --git a/rpython/jit/backend/ppc/form.py b/rpython/jit/backend/ppc/form.py
--- a/rpython/jit/backend/ppc/form.py
+++ b/rpython/jit/backend/ppc/form.py
@@ -48,7 +48,7 @@
     def __call__(self, *args, **kw):
         fieldvalues, sparefields = self.calc_fields(args, kw)
         if sparefields:
-            raise FormException, 'fields %s left'%sparefields
+            raise FormException('fields %s left'%sparefields)
         self.assembler.insts.append(Instruction(fieldvalues))
 
 
@@ -72,7 +72,7 @@
             self.boundtype = boundtype
         for field in specializations:
             if field not in fields:
-                raise FormException, field
+                raise FormException(field)
 
     def __get__(self, ob, cls=None):
         if ob is None: return self
@@ -91,14 +91,14 @@
         for fname, v in more_specializatons.iteritems():
             field = self.fieldmap[fname]
             if field not in self.fields:
-                raise FormException, "don't know about '%s' here" % field
+                raise FormException("don't know about '%s' here" % field)
             if isinstance(v, str):
                 ds[field] = self.fieldmap[v]
             else:
                 ms[field] = v
         s.update(ms)
         if len(s) != len(self.specializations) + len(ms):
-            raise FormException, "respecialization not currently allowed"
+            raise FormException("respecialization not currently allowed")
         if ds:
             fields = list(self.fields)
             for field in ds:
@@ -175,8 +175,8 @@
                 overlap = True
             for b in range(field.left, field.right+1):
                 if not overlap and b in bits:
-                    raise FormException, "'%s' and '%s' clash at bit '%s'"%(
-                        bits[b], fname, b)
+                    raise FormException("'%s' and '%s' clash at bit '%s'"%(
+                        bits[b], fname, b))
                 else:
                     bits[b] = fname
             self.fields.append(field)
@@ -186,7 +186,7 @@
         for fname in specializations:
             field = self.fieldmap[fname]
             if field not in self.fields:
-                raise FormException, "no nothin bout '%s'"%fname
+                raise FormException("no nothin bout '%s'"%fname)
             s[field] = specializations[fname]
         return IDesc(self.fieldmap, self.fields, s)
 
diff --git a/rpython/jit/codewriter/jtransform.py 
b/rpython/jit/codewriter/jtransform.py
--- a/rpython/jit/codewriter/jtransform.py
+++ b/rpython/jit/codewriter/jtransform.py
@@ -780,7 +780,7 @@
                 return [SpaceOperation('-live-', [], None),
                         SpaceOperation('getfield_vable_%s' % kind,
                                        [v_inst, descr], op.result)]
-        except VirtualizableArrayField, e:
+        except VirtualizableArrayField as e:
             # xxx hack hack hack
             vinfo = e.args[1]
             arrayindex = vinfo.array_field_counter[op.args[1].value]
diff --git a/rpython/jit/codewriter/policy.py b/rpython/jit/codewriter/policy.py
--- a/rpython/jit/codewriter/policy.py
+++ b/rpython/jit/codewriter/policy.py
@@ -103,7 +103,7 @@
                 getkind(v.concretetype, supports_floats,
                                         supports_longlong,
                                         supports_singlefloats)
-    except NotImplementedError, e:
+    except NotImplementedError as e:
         log.WARNING('%s, ignoring graph' % (e,))
         log.WARNING('  %s' % (graph,))
         return True
diff --git a/rpython/jit/codewriter/test/test_flatten.py 
b/rpython/jit/codewriter/test/test_flatten.py
--- a/rpython/jit/codewriter/test/test_flatten.py
+++ b/rpython/jit/codewriter/test/test_flatten.py
@@ -371,7 +371,7 @@
         def f(i):
             try:
                 g(i)
-            except FooError, e:
+            except FooError as e:
                 return e.num
             except Exception:
                 return 3
diff --git a/rpython/jit/codewriter/test/test_jtransform.py 
b/rpython/jit/codewriter/test/test_jtransform.py
--- a/rpython/jit/codewriter/test/test_jtransform.py
+++ b/rpython/jit/codewriter/test/test_jtransform.py
@@ -1363,7 +1363,7 @@
     tr = Transformer()
     try:
         tr.rewrite_operation(op)
-    except Exception, e:
+    except Exception as e:
         assert 'foobar' in str(e)
 
 def test_likely_unlikely():
diff --git a/rpython/jit/codewriter/test/test_regalloc.py 
b/rpython/jit/codewriter/test/test_regalloc.py
--- a/rpython/jit/codewriter/test/test_regalloc.py
+++ b/rpython/jit/codewriter/test/test_regalloc.py
@@ -272,7 +272,7 @@
             kref2 = bar(kref)
             try:
                 return g(n)
-            except FooError, e:
+            except FooError as e:
                 if foo(e):
                     return kref
                 else:
diff --git a/rpython/jit/metainterp/blackhole.py 
b/rpython/jit/metainterp/blackhole.py
--- a/rpython/jit/metainterp/blackhole.py
+++ b/rpython/jit/metainterp/blackhole.py
@@ -172,7 +172,7 @@
             # call the method bhimpl_xxx()
             try:
                 result = unboundmethod(*args)
-            except Exception, e:
+            except Exception as e:
                 if verbose and not we_are_translated():
                     print '-> %s!' % (e.__class__.__name__,)
                 if resulttype == 'i' or resulttype == 'r' or resulttype == 'f':
@@ -323,7 +323,7 @@
                 break
             except jitexc.JitException:
                 raise     # go through
-            except Exception, e:
+            except Exception as e:
                 lle = get_llexception(self.cpu, e)
                 self.handle_exception_in_frame(lle)
 
@@ -1540,9 +1540,9 @@
             # we now proceed to interpret the bytecode in this frame
             self.run()
         #
-        except jitexc.JitException, e:
+        except jitexc.JitException as e:
             raise     # go through
-        except Exception, e:
+        except Exception as e:
             # if we get an exception, return it to the caller frame
             current_exc = get_llexception(self.cpu, e)
             if not self.nextblackholeinterp:
@@ -1673,7 +1673,7 @@
     # We have reached a recursive portal level.
     try:
         blackholeinterp._handle_jitexception_in_portal(exc)
-    except Exception, e:
+    except Exception as e:
         # It raised a general exception (it should not be a JitException here).
         lle = get_llexception(blackholeinterp.cpu, e)
     else:
diff --git a/rpython/jit/metainterp/executor.py 
b/rpython/jit/metainterp/executor.py
--- a/rpython/jit/metainterp/executor.py
+++ b/rpython/jit/metainterp/executor.py
@@ -51,28 +51,28 @@
     if rettype == INT:
         try:
             result = cpu.bh_call_i(func, args_i, args_r, args_f, descr)
-        except Exception, e:
+        except Exception as e:
             metainterp.execute_raised(e)
             result = 0
         return result
     if rettype == REF:
         try:
             result = cpu.bh_call_r(func, args_i, args_r, args_f, descr)
-        except Exception, e:
+        except Exception as e:
             metainterp.execute_raised(e)
             result = NULL
         return result
     if rettype == FLOAT:
         try:
             result = cpu.bh_call_f(func, args_i, args_r, args_f, descr)
-        except Exception, e:
+        except Exception as e:
             metainterp.execute_raised(e)
             result = longlong.ZEROF
         return result
     if rettype == VOID:
         try:
             cpu.bh_call_v(func, args_i, args_r, args_f, descr)
-        except Exception, e:
+        except Exception as e:
             metainterp.execute_raised(e)
         return None
     raise AssertionError("bad rettype")
diff --git a/rpython/jit/metainterp/optimizeopt/test/test_zdisable_opts.py 
b/rpython/jit/metainterp/optimizeopt/test/test_zdisable_opts.py
--- a/rpython/jit/metainterp/optimizeopt/test/test_zdisable_opts.py
+++ b/rpython/jit/metainterp/optimizeopt/test/test_zdisable_opts.py
@@ -39,7 +39,7 @@
         def raises(self, e, fn, *args):
             try:
                 fn(*args)
-            except Exception, e:
+            except Exception as e:
                 return e
 
     opt = allopts[optnum]
diff --git a/rpython/jit/metainterp/optimizeopt/virtualstate.py 
b/rpython/jit/metainterp/optimizeopt/virtualstate.py
--- a/rpython/jit/metainterp/optimizeopt/virtualstate.py
+++ b/rpython/jit/metainterp/optimizeopt/virtualstate.py
@@ -91,7 +91,7 @@
             state.renum[self.position] = other.position
             try:
                 self._generate_guards(other, op, runtime_op, state)
-            except VirtualStatesCantMatch, e:
+            except VirtualStatesCantMatch as e:
                 state.bad[self] = state.bad[other] = None
                 if e.state is None:
                     e.state = state
diff --git a/rpython/jit/metainterp/pyjitpl.py 
b/rpython/jit/metainterp/pyjitpl.py
--- a/rpython/jit/metainterp/pyjitpl.py
+++ b/rpython/jit/metainterp/pyjitpl.py
@@ -2034,7 +2034,7 @@
         else:
             try:
                 self.compile_done_with_this_frame(resultbox)
-            except SwitchToBlackhole, stb:
+            except SwitchToBlackhole as stb:
                 self.aborted_tracing(stb.reason)
             sd = self.staticdata
             result_type = self.jitdriver_sd.result_type
@@ -2067,7 +2067,7 @@
             self.popframe()
         try:
             self.compile_exit_frame_with_exception(self.last_exc_box)
-        except SwitchToBlackhole, stb:
+        except SwitchToBlackhole as stb:
             self.aborted_tracing(stb.reason)
         raise jitexc.ExitFrameWithExceptionRef(self.cpu, 
lltype.cast_opaque_ptr(llmemory.GCREF, excvalue))
 
@@ -2100,7 +2100,7 @@
             guard_op = self.history.record(opnum, moreargs,
                                            lltype.nullptr(llmemory.GCREF.TO))
         else:
-            guard_op = self.history.record(opnum, moreargs, None)            
+            guard_op = self.history.record(opnum, moreargs, None)
         self.capture_resumedata(resumepc)
         # ^^^ records extra to history
         self.staticdata.profiler.count_ops(opnum, Counters.GUARDS)
@@ -2254,7 +2254,7 @@
 
     def execute_raised(self, exception, constant=False):
         if isinstance(exception, jitexc.JitException):
-            raise jitexc.JitException, exception      # go through
+            raise exception      # go through
         llexception = jitexc.get_llexception(self.cpu, exception)
         self.execute_ll_raised(llexception, constant)
 
@@ -2367,7 +2367,7 @@
         self.seen_loop_header_for_jdindex = -1
         try:
             self.interpret()
-        except SwitchToBlackhole, stb:
+        except SwitchToBlackhole as stb:
             self.run_blackhole_interp_to_cancel_tracing(stb)
         assert False, "should always raise"
 
@@ -2404,7 +2404,7 @@
             if self.resumekey_original_loop_token is None:   # very rare case
                 raise SwitchToBlackhole(Counters.ABORT_BRIDGE)
             self.interpret()
-        except SwitchToBlackhole, stb:
+        except SwitchToBlackhole as stb:
             self.run_blackhole_interp_to_cancel_tracing(stb)
         assert False, "should always raise"
 
@@ -3276,7 +3276,7 @@
                 print '\tpyjitpl: %s(%s)' % (name, ', '.join(map(repr, args))),
             try:
                 resultbox = unboundmethod(self, *args)
-            except Exception, e:
+            except Exception as e:
                 if self.debug:
                     print '-> %s!' % e.__class__.__name__
                 raise
diff --git a/rpython/jit/metainterp/test/test_blackhole.py 
b/rpython/jit/metainterp/test/test_blackhole.py
--- a/rpython/jit/metainterp/test/test_blackhole.py
+++ b/rpython/jit/metainterp/test/test_blackhole.py
@@ -205,7 +205,7 @@
                 myjitdriver.jit_merge_point(x=x, y=y)
                 try:
                     choices(x)
-                except FooError, e:
+                except FooError as e:
                     if e.num == 0:
                         break
                     y += e.num
diff --git a/rpython/jit/metainterp/test/test_compile.py 
b/rpython/jit/metainterp/test/test_compile.py
--- a/rpython/jit/metainterp/test/test_compile.py
+++ b/rpython/jit/metainterp/test/test_compile.py
@@ -164,7 +164,7 @@
     fail_descr = cpu.get_latest_descr(deadframe)
     try:
         fail_descr.handle_fail(deadframe, FakeMetaInterpSD(), None)
-    except jitexc.ExitFrameWithExceptionRef, e:
+    except jitexc.ExitFrameWithExceptionRef as e:
         assert lltype.cast_opaque_ptr(lltype.Ptr(EXC), e.value) == llexc
     else:
         assert 0, "should have raised"
diff --git a/rpython/jit/metainterp/test/test_exception.py 
b/rpython/jit/metainterp/test/test_exception.py
--- a/rpython/jit/metainterp/test/test_exception.py
+++ b/rpython/jit/metainterp/test/test_exception.py
@@ -17,7 +17,7 @@
         def f(n):
             try:
                 return g(n)
-            except MyError, e:
+            except MyError as e:
                 return e.n + 10
         res = self.interp_operations(f, [9])
         assert res == 8
@@ -141,7 +141,7 @@
             try:
                 b(n)
                 return 0
-            except MyError, e:
+            except MyError as e:
                 return e.n
         def f(n):
             return a(n)
@@ -161,7 +161,7 @@
                 myjitdriver.jit_merge_point(n=n)
                 try:
                     check(n, 0)
-                except MyError, e:
+                except MyError as e:
                     n = check(e.n, 1)
             return n
         assert f(53) == -2
@@ -290,7 +290,7 @@
                     myjitdriver.can_enter_jit(n=n)
                     myjitdriver.jit_merge_point(n=n)
                     n = n - check(n)
-            except MyError, e:
+            except MyError as e:
                 return e.n
         assert f(53) == -2
         res = self.meta_interp(f, [53], policy=StopAtXPolicy(check))
@@ -517,7 +517,7 @@
         def f(n):
             try:
                 portal(n)
-            except SomeException, e:
+            except SomeException as e:
                 return 3
             return 2
 
@@ -536,7 +536,7 @@
         def main(n):
             try:
                 f(n)
-            except MyError, e:
+            except MyError as e:
                 return e.n
 
         res = self.meta_interp(main, [41], repeat=7)
@@ -572,7 +572,7 @@
             try:
                 f(n)
                 return 3
-            except MyError, e:
+            except MyError as e:
                 return e.n
             except ValueError:
                 return 8
@@ -590,7 +590,7 @@
         def f(x):
             try:
                 return g(x)
-            except Exception, e:
+            except Exception as e:
                 if isinstance(e, OverflowError):
                     return -42
                 raise
diff --git a/rpython/jit/metainterp/test/test_recursive.py 
b/rpython/jit/metainterp/test/test_recursive.py
--- a/rpython/jit/metainterp/test/test_recursive.py
+++ b/rpython/jit/metainterp/test/test_recursive.py
@@ -729,7 +729,7 @@
                 if codeno == 2:
                     try:
                         portal(1)
-                    except MyException, me:
+                    except MyException as me:
                         i += me.x
                 i += 1
             if codeno == 1:
@@ -1092,7 +1092,7 @@
                 if codeno < 10:
                     try:
                         portal(codeno + 5, k+1)
-                    except GotValue, e:
+                    except GotValue as e:
                         i += e.result
                     codeno += 1
                 elif codeno == 10:
@@ -1106,7 +1106,7 @@
         def main(codeno, k):
             try:
                 portal(codeno, k)
-            except GotValue, e:
+            except GotValue as e:
                 return e.result
 
         assert main(0, 1) == 2095
diff --git a/rpython/jit/metainterp/test/test_virtualizable.py 
b/rpython/jit/metainterp/test/test_virtualizable.py
--- a/rpython/jit/metainterp/test/test_virtualizable.py
+++ b/rpython/jit/metainterp/test/test_virtualizable.py
@@ -665,7 +665,7 @@
                 jitdriver.jit_merge_point(frame=frame)
                 try:
                     g()
-                except FooError, e:
+                except FooError as e:
                     frame.x -= e.value
                 frame.y += 1
             return frame.x
diff --git a/rpython/jit/metainterp/test/test_warmspot.py 
b/rpython/jit/metainterp/test/test_warmspot.py
--- a/rpython/jit/metainterp/test/test_warmspot.py
+++ b/rpython/jit/metainterp/test/test_warmspot.py
@@ -45,7 +45,7 @@
         def main(a):
             try:
                 interpreter_loop(a)
-            except Exit, e:
+            except Exit as e:
                 return e.result
 
         res = self.meta_interp(main, [1])
@@ -674,7 +674,7 @@
         assert jd._assembler_call_helper(FakeDeadFrame(1), 0) == 10
         try:
             jd._assembler_call_helper(FakeDeadFrame(3), 0)
-        except LLException, lle:
+        except LLException as lle:
             assert lle[0] == self.exc_vtable
         else:
             py.test.fail("DID NOT RAISE")
diff --git a/rpython/jit/metainterp/warmspot.py 
b/rpython/jit/metainterp/warmspot.py
--- a/rpython/jit/metainterp/warmspot.py
+++ b/rpython/jit/metainterp/warmspot.py
@@ -82,7 +82,7 @@
                     backendopt=False, trace_limit=sys.maxint, inline=False,
                     loop_longevity=0, retrace_limit=5, function_threshold=4,
                     disable_unrolling=sys.maxint,
-                    enable_opts=ALL_OPTS_NAMES, max_retrace_guards=15, 
+                    enable_opts=ALL_OPTS_NAMES, max_retrace_guards=15,
                     max_unroll_recursion=7, vec=1, vec_all=0, vec_cost=0,
                     vec_length=60, vec_ratio=2, vec_guard_ratio=3, **kwds):
     from rpython.config.config import ConfigError
@@ -489,7 +489,7 @@
         if opencoder_model == 'big':
             self.metainterp_sd.opencoder_model = BigModel
         else:
-            self.metainterp_sd.opencoder_model = Model            
+            self.metainterp_sd.opencoder_model = Model
         self.stats.metainterp_sd = self.metainterp_sd
 
     def make_virtualizable_infos(self):
@@ -543,7 +543,7 @@
                 raise     # go through
             except StackOverflow:
                 raise     # go through
-            except Exception, e:
+            except Exception as e:
                 if not we_are_translated():
                     print "~~~ Crash in JIT!"
                     print '~~~ %s: %s' % (e.__class__, e)
@@ -908,7 +908,7 @@
                     # want to interrupt the whole interpreter loop.
                     return support.maybe_on_top_of_llinterp(rtyper,
                                                       portal_ptr)(*args)
-                except jitexc.ContinueRunningNormally, e:
+                except jitexc.ContinueRunningNormally as e:
                     args = ()
                     for ARGTYPE, attrname, count in portalfunc_ARGS:
                         x = getattr(e, attrname)[count]
@@ -919,28 +919,28 @@
                 except jitexc.DoneWithThisFrameVoid:
                     assert result_kind == 'void'
                     return
-                except jitexc.DoneWithThisFrameInt, e:
+                except jitexc.DoneWithThisFrameInt as e:
                     assert result_kind == 'int'
                     return specialize_value(RESULT, e.result)
-                except jitexc.DoneWithThisFrameRef, e:
+                except jitexc.DoneWithThisFrameRef as e:
                     assert result_kind == 'ref'
                     return specialize_value(RESULT, e.result)
-                except jitexc.DoneWithThisFrameFloat, e:
+                except jitexc.DoneWithThisFrameFloat as e:
                     assert result_kind == 'float'
                     return specialize_value(RESULT, e.result)
-                except jitexc.ExitFrameWithExceptionRef, e:
+                except jitexc.ExitFrameWithExceptionRef as e:
                     value = ts.cast_to_baseclass(e.value)
                     if not we_are_translated():
                         raise LLException(ts.get_typeptr(value), value)
                     else:
                         value = cast_base_ptr_to_instance(Exception, value)
-                        raise Exception, value
+                        raise value
 
         def handle_jitexception(e):
             # XXX the bulk of this function is mostly a copy-paste from above
             try:
                 raise e
-            except jitexc.ContinueRunningNormally, e:
+            except jitexc.ContinueRunningNormally as e:
                 args = ()
                 for ARGTYPE, attrname, count in portalfunc_ARGS:
                     x = getattr(e, attrname)[count]
@@ -953,22 +953,22 @@
             except jitexc.DoneWithThisFrameVoid:
                 assert result_kind == 'void'
                 return
-            except jitexc.DoneWithThisFrameInt, e:
+            except jitexc.DoneWithThisFrameInt as e:
                 assert result_kind == 'int'
                 return e.result
-            except jitexc.DoneWithThisFrameRef, e:
+            except jitexc.DoneWithThisFrameRef as e:
                 assert result_kind == 'ref'
                 return e.result
-            except jitexc.DoneWithThisFrameFloat, e:
+            except jitexc.DoneWithThisFrameFloat as e:
                 assert result_kind == 'float'
                 return e.result
-            except jitexc.ExitFrameWithExceptionRef, e:
+            except jitexc.ExitFrameWithExceptionRef as e:
                 value = ts.cast_to_baseclass(e.value)
                 if not we_are_translated():
                     raise LLException(ts.get_typeptr(value), value)
                 else:
                     value = cast_base_ptr_to_instance(Exception, value)
-                    raise Exception, value
+                    raise value
 
         jd._ll_portal_runner = ll_portal_runner # for debugging
         jd.portal_runner_ptr = self.helper_func(jd._PTR_PORTAL_FUNCTYPE,
@@ -986,7 +986,7 @@
             fail_descr = self.cpu.get_latest_descr(deadframe)
             try:
                 fail_descr.handle_fail(deadframe, self.metainterp_sd, jd)
-            except jitexc.JitException, e:
+            except jitexc.JitException as e:
                 return handle_jitexception(e)
             else:
                 assert 0, "should have raised"
diff --git a/rpython/jit/tl/test/test_pypyjit.py 
b/rpython/jit/tl/test/test_pypyjit.py
--- a/rpython/jit/tl/test/test_pypyjit.py
+++ b/rpython/jit/tl/test/test_pypyjit.py
@@ -21,7 +21,7 @@
 def check_crasher(func_name):
     try:
         JIT_EXECUTABLE.sysexec(CRASH_FILE, func_name)
-    except py.process.cmdexec.Error, e:
+    except py.process.cmdexec.Error as e:
         print "stderr"
         print "------"
         print e.err
diff --git a/rpython/memory/gc/incminimark.py b/rpython/memory/gc/incminimark.py
--- a/rpython/memory/gc/incminimark.py
+++ b/rpython/memory/gc/incminimark.py
@@ -639,13 +639,14 @@
             # Build the object.
             llarena.arena_reserve(result, totalsize)
             obj = result + size_gc_header
-            if is_finalizer_light:
-                self.young_objects_with_light_finalizers.append(obj)
             self.init_gc_object(result, typeid, flags=0)
-            #
-            # If it is a weakref, record it (check constant-folded).
-            if contains_weakptr:
-                self.young_objects_with_weakrefs.append(obj)
+        #
+        # If it is a weakref or has a lightweight finalizer, record it
+        # (checks constant-folded).
+        if is_finalizer_light:
+            self.young_objects_with_light_finalizers.append(obj)
+        if contains_weakptr:
+            self.young_objects_with_weakrefs.append(obj)
         #
         return llmemory.cast_adr_to_ptr(obj, llmemory.GCREF)
 
@@ -2899,7 +2900,7 @@
             # force the corresponding object to be alive
             intobj = self._pyobj(pyobject).ob_pypy_link
             singleaddr.address[0] = llmemory.cast_int_to_adr(intobj)
-            self._trace_drag_out(singleaddr, llmemory.NULL)
+            self._trace_drag_out1(singleaddr)
 
     def rrc_minor_collection_free(self):
         ll_assert(self.rrc_p_dict_nurs.length() == 0, "p_dict_nurs not empty 
1")
diff --git a/rpython/memory/gctransform/support.py 
b/rpython/memory/gctransform/support.py
--- a/rpython/memory/gctransform/support.py
+++ b/rpython/memory/gctransform/support.py
@@ -80,7 +80,7 @@
 def ll_call_destructor(destrptr, destr_v, typename):
     try:
         destrptr(destr_v)
-    except Exception, e:
+    except Exception as e:
         try:
             write(2, "a destructor of type ")
             write(2, typename)
diff --git a/rpython/memory/gctransform/transform.py 
b/rpython/memory/gctransform/transform.py
--- a/rpython/memory/gctransform/transform.py
+++ b/rpython/memory/gctransform/transform.py
@@ -129,7 +129,7 @@
                                            raise_analyzer,
                                            cleanup=False)
                     must_constfold = True
-                except inline.CannotInline, e:
+                except inline.CannotInline as e:
                     print 'CANNOT INLINE:', e
                     print '\t%s into %s' % (inline_graph, graph)
             cleanup_graph(graph)
diff --git a/rpython/rlib/parsing/main.py b/rpython/rlib/parsing/main.py
--- a/rpython/rlib/parsing/main.py
+++ b/rpython/rlib/parsing/main.py
@@ -7,7 +7,7 @@
     try:
         t = py.path.local(filename).read(mode='U')
         regexs, rules, ToAST = parse_ebnf(t)
-    except ParseError, e:
+    except ParseError as e:
         print e.nice_error_message(filename=filename, source=t)
         raise
     return make_parse_function(regexs, rules, eof=True)
diff --git a/rpython/rlib/parsing/makepackrat.py 
b/rpython/rlib/parsing/makepackrat.py
--- a/rpython/rlib/parsing/makepackrat.py
+++ b/rpython/rlib/parsing/makepackrat.py
@@ -632,7 +632,7 @@
         p = PyPackratSyntaxParser(source)
         try:
             t = p.file()
-        except BacktrackException, exc:
+        except BacktrackException as exc:
             print exc.error.nice_error_message("<docstring>", source)
             lineno, _ = exc.error.get_line_column(source)
             errorline = source.split("\n")[lineno]
diff --git a/rpython/rlib/parsing/pypackrat.py 
b/rpython/rlib/parsing/pypackrat.py
--- a/rpython/rlib/parsing/pypackrat.py
+++ b/rpython/rlib/parsing/pypackrat.py
@@ -29,7 +29,7 @@
             _status.result = _result
             _status.error = _error
             return _status
-        except BacktrackException, _exc:
+        except BacktrackException as _exc:
             _status.pos = -1
             _status.result = None
             _error = _exc.error
@@ -61,7 +61,7 @@
             _status.result = _result
             _status.error = _error
             return _status
-        except BacktrackException, _exc:
+        except BacktrackException as _exc:
             _status.pos = -1
             _status.result = None
             _error = _exc.error
@@ -93,7 +93,7 @@
             _status.result = _result
             _status.error = _error
             return _status
-        except BacktrackException, _exc:
+        except BacktrackException as _exc:
             _status.pos = -1
             _status.result = None
             _error = _exc.error
@@ -125,7 +125,7 @@
             _status.result = _result
             _status.error = _error
             return _status
-        except BacktrackException, _exc:
+        except BacktrackException as _exc:
             _status.pos = -1
             _status.result = None
             _error = _exc.error
@@ -167,14 +167,14 @@
                     _result = _call_status.result
                     _error = _call_status.error
                     break
-                except BacktrackException, _exc:
+                except BacktrackException as _exc:
                     _error = self._combine_errors(_error, _exc.error)
                     self._pos = _choice0
                 _choice1 = self._pos
                 try:
                     _result = self._regex299149370()
                     break
-                except BacktrackException, _exc:
+                except BacktrackException as _exc:
                     _error = self._combine_errors(_error, _exc.error)
                     self._pos = _choice1
                     raise BacktrackException(_error)
@@ -197,7 +197,7 @@
             _status.result = _result
             _status.error = _error
             return _status
-        except BacktrackException, _exc:
+        except BacktrackException as _exc:
             _status.pos = -1
             _status.result = None
             _error = self._combine_errors(_error, _exc.error)
@@ -231,7 +231,7 @@
             _status.result = _result
             _status.error = _error
             return _status
-        except BacktrackException, _exc:
+        except BacktrackException as _exc:
             _status.pos = -1
             _status.result = None
             _error = _exc.error
@@ -265,7 +265,7 @@
             _status.result = _result
             _status.error = _error
             return _status
-        except BacktrackException, _exc:
+        except BacktrackException as _exc:
             _status.pos = -1
             _status.result = None
             _error = _exc.error
@@ -299,7 +299,7 @@
             _status.result = _result
             _status.error = _error
             return _status
-        except BacktrackException, _exc:
+        except BacktrackException as _exc:
             _status.pos = -1
             _status.result = None
             _error = _exc.error
@@ -360,7 +360,7 @@
             _status.result = _result
             _status.error = _error
             return _status
-        except BacktrackException, _exc:
+        except BacktrackException as _exc:
             _status.pos = -1
             _status.result = None
             _error = _exc.error
@@ -403,7 +403,7 @@
                     _result = _call_status.result
                     _error = _call_status.error
                     _all0.append(_result)
-                except BacktrackException, _exc:
+                except BacktrackException as _exc:
                     _error = self._combine_errors(_error, _exc.error)
                     self._pos = _choice1
                     break
@@ -433,7 +433,7 @@
             _status.result = _result
             _status.error = _error
             return _status
-        except BacktrackException, _exc:
+        except BacktrackException as _exc:
             _status.pos = -1
             _status.result = None
             _error = self._combine_errors(_error, _exc.error)
@@ -480,7 +480,7 @@
                     _result = _call_status.result
                     _error = self._combine_errors(_error, _call_status.error)
                     _all0.append(_result)
-                except BacktrackException, _exc:
+                except BacktrackException as _exc:
                     _error = self._combine_errors(_error, _exc.error)
                     self._pos = _choice1
                     break
@@ -504,7 +504,7 @@
             _status.result = _result
             _status.error = _error
             return _status
-        except BacktrackException, _exc:
+        except BacktrackException as _exc:
             _status.pos = -1
             _status.result = None
             _error = self._combine_errors(_error, _exc.error)
@@ -551,7 +551,7 @@
                     _result = _call_status.result
                     _error = self._combine_errors(_error, _call_status.error)
                     _all0.append(_result)
-                except BacktrackException, _exc:
+                except BacktrackException as _exc:
                     _error = self._combine_errors(_error, _exc.error)
                     self._pos = _choice1
                     break
@@ -569,7 +569,7 @@
                     _result = _call_status.result
                     _error = self._combine_errors(_error, _call_status.error)
                     _all2.append(_result)
-                except BacktrackException, _exc:
+                except BacktrackException as _exc:
                     _error = self._combine_errors(_error, _exc.error)
                     self._pos = _choice3
                     break
@@ -586,7 +586,7 @@
                     _result = _call_status.result
                     _error = self._combine_errors(_error, _call_status.error)
                     _all4.append(_result)
-                except BacktrackException, _exc:
+                except BacktrackException as _exc:
                     _error = self._combine_errors(_error, _exc.error)
                     self._pos = _choice5
                     break
@@ -600,7 +600,7 @@
                     _result = _call_status.result
                     _error = self._combine_errors(_error, _call_status.error)
                     _all6.append(_result)
-                except BacktrackException, _exc:
+                except BacktrackException as _exc:
                     _error = self._combine_errors(_error, _exc.error)
                     self._pos = _choice7
                     break
@@ -623,7 +623,7 @@
             _status.result = _result
             _status.error = _error
             return _status
-        except BacktrackException, _exc:
+        except BacktrackException as _exc:
             _status.pos = -1
             _status.result = None
             _error = self._combine_errors(_error, _exc.error)
@@ -670,7 +670,7 @@
                             _result = _call_status.result
                             _error = _call_status.error
                             _all1.append(_result)
-                        except BacktrackException, _exc:
+                        except BacktrackException as _exc:
                             _error = self._combine_errors(_error, _exc.error)
                             self._pos = _choice2
                             break
@@ -691,7 +691,7 @@
                                     _result = _call_status.result
                                     _error = self._combine_errors(_error, 
_call_status.error)
                                     _all6.append(_result)
-                                except BacktrackException, _exc:
+                                except BacktrackException as _exc:
                                     _error = self._combine_errors(_error, 
_exc.error)
                                     self._pos = _choice7
                                     break
@@ -705,14 +705,14 @@
                                     _result = _call_status.result
                                     _error = self._combine_errors(_error, 
_call_status.error)
                                     _all8.append(_result)
-                                except BacktrackException, _exc:
+                                except BacktrackException as _exc:
                                     _error = self._combine_errors(_error, 
_exc.error)
                                     self._pos = _choice9
                                     break
                             _result = _all8
                             _result = _before_discard5
                             _all3.append(_result)
-                        except BacktrackException, _exc:
+                        except BacktrackException as _exc:
                             _error = self._combine_errors(_error, _exc.error)
                             self._pos = _choice4
                             break
@@ -730,7 +730,7 @@
                             _result = _call_status.result
                             _error = self._combine_errors(_error, 
_call_status.error)
                             _all10.append(_result)
-                        except BacktrackException, _exc:
+                        except BacktrackException as _exc:
                             _error = self._combine_errors(_error, _exc.error)
                             self._pos = _choice11
                             break
@@ -744,21 +744,21 @@
                             _result = _call_status.result
                             _error = self._combine_errors(_error, 
_call_status.error)
                             _all12.append(_result)
-                        except BacktrackException, _exc:
+                        except BacktrackException as _exc:
                             _error = self._combine_errors(_error, _exc.error)
                             self._pos = _choice13
                             break
                     _result = _all12
                     _result = (Nonterminal('productionargs', args + [arg]))
                     break
-                except BacktrackException, _exc:
+                except BacktrackException as _exc:
                     _error = self._combine_errors(_error, _exc.error)
                     self._pos = _choice0
                 _choice14 = self._pos
                 try:
                     _result = (Nonterminal('productionargs', []))
                     break
-                except BacktrackException, _exc:
+                except BacktrackException as _exc:
                     _error = self._combine_errors(_error, _exc.error)
                     self._pos = _choice14
                     raise BacktrackException(_error)
@@ -781,7 +781,7 @@
             _status.result = _result
             _status.error = _error
             return _status
-        except BacktrackException, _exc:
+        except BacktrackException as _exc:
             _status.pos = -1
             _status.result = None
             _error = self._combine_errors(_error, _exc.error)
@@ -833,7 +833,7 @@
                             _result = _call_status.result
                             _error = self._combine_errors(_error, 
_call_status.error)
                             _all3.append(_result)
-                        except BacktrackException, _exc:
+                        except BacktrackException as _exc:
                             _error = self._combine_errors(_error, _exc.error)
                             self._pos = _choice4
                             break
@@ -856,14 +856,14 @@
                                     _result = _call_status.result
                                     _error = self._combine_errors(_error, 
_call_status.error)
                                     _all7.append(_result)
-                                except BacktrackException, _exc:
+                                except BacktrackException as _exc:
                                     _error = self._combine_errors(_error, 
_exc.error)
                                     self._pos = _choice8
                                     break
                             _result = _all7
                             _result = _before_discard6
                             _all1.append(_result)
-                        except BacktrackException, _exc:
+                        except BacktrackException as _exc:
                             _error = self._combine_errors(_error, _exc.error)
                             self._pos = _choice5
                             break
@@ -875,7 +875,7 @@
                     last = _result
                     _result = (Nonterminal('or', l + [last]))
                     break
-                except BacktrackException, _exc:
+                except BacktrackException as _exc:
                     _error = self._combine_errors(_error, _exc.error)
                     self._pos = _choice0
                 _choice9 = self._pos
@@ -884,7 +884,7 @@
                     _result = _call_status.result
                     _error = self._combine_errors(_error, _call_status.error)
                     break
-                except BacktrackException, _exc:
+                except BacktrackException as _exc:
                     _error = self._combine_errors(_error, _exc.error)
                     self._pos = _choice9
                     raise BacktrackException(_error)
@@ -909,7 +909,7 @@
             _status.result = _result
             _status.error = _error
             return _status
-        except BacktrackException, _exc:
+        except BacktrackException as _exc:
             _status.pos = -1
             _status.result = None
             _error = self._combine_errors(_error, _exc.error)
@@ -976,7 +976,7 @@
                             _error = self._combine_errors(_error, 
_call_status.error)
                             _result = _before_discard4
                             _all1.append(_result)
-                        except BacktrackException, _exc:
+                        except BacktrackException as _exc:
                             _error = self._combine_errors(_error, _exc.error)
                             self._pos = _choice3
                             break
@@ -984,7 +984,7 @@
                     cmds = _result
                     _result = (Nonterminal('commands', [cmd] + cmds))
                     break
-                except BacktrackException, _exc:
+                except BacktrackException as _exc:
                     _error = self._combine_errors(_error, _exc.error)
                     self._pos = _choice0
                 _choice5 = self._pos
@@ -993,7 +993,7 @@
                     _result = _call_status.result
                     _error = self._combine_errors(_error, _call_status.error)
                     break
-                except BacktrackException, _exc:
+                except BacktrackException as _exc:
                     _error = self._combine_errors(_error, _exc.error)
                     self._pos = _choice5
                     raise BacktrackException(_error)
@@ -1018,7 +1018,7 @@
             _status.result = _result
             _status.error = _error
             return _status
-        except BacktrackException, _exc:
+        except BacktrackException as _exc:
             _status.pos = -1
             _status.result = None
             _error = self._combine_errors(_error, _exc.error)
@@ -1073,7 +1073,7 @@
             _status.result = _result
             _status.error = _error
             return _status
-        except BacktrackException, _exc:
+        except BacktrackException as _exc:
             _status.pos = -1
             _status.result = None
             _error = self._combine_errors(_error, _exc.error)
@@ -1115,7 +1115,7 @@
                     _result = _call_status.result
                     _error = _call_status.error
                     break
-                except BacktrackException, _exc:
+                except BacktrackException as _exc:
                     _error = self._combine_errors(_error, _exc.error)
                     self._pos = _choice0
                 _choice1 = self._pos
@@ -1124,7 +1124,7 @@
                     _result = _call_status.result
                     _error = self._combine_errors(_error, _call_status.error)
                     break
-                except BacktrackException, _exc:
+                except BacktrackException as _exc:
                     _error = self._combine_errors(_error, _exc.error)
                     self._pos = _choice1
                 _choice2 = self._pos
@@ -1133,7 +1133,7 @@
                     _result = _call_status.result
                     _error = self._combine_errors(_error, _call_status.error)
                     break
-                except BacktrackException, _exc:
+                except BacktrackException as _exc:
                     _error = self._combine_errors(_error, _exc.error)
                     self._pos = _choice2
                 _choice3 = self._pos
@@ -1142,7 +1142,7 @@
                     _result = _call_status.result
                     _error = self._combine_errors(_error, _call_status.error)
                     break
-                except BacktrackException, _exc:
+                except BacktrackException as _exc:
                     _error = self._combine_errors(_error, _exc.error)
                     self._pos = _choice3
                 _choice4 = self._pos
@@ -1151,7 +1151,7 @@
                     _result = _call_status.result
                     _error = self._combine_errors(_error, _call_status.error)
                     break
-                except BacktrackException, _exc:
+                except BacktrackException as _exc:
                     _error = self._combine_errors(_error, _exc.error)
                     self._pos = _choice4
                 _choice5 = self._pos
@@ -1160,7 +1160,7 @@
                     _result = _call_status.result
                     _error = self._combine_errors(_error, _call_status.error)
                     break
-                except BacktrackException, _exc:
+                except BacktrackException as _exc:
                     _error = self._combine_errors(_error, _exc.error)
                     self._pos = _choice5
                     raise BacktrackException(_error)
@@ -1185,7 +1185,7 @@
             _status.result = _result
             _status.error = _error
             return _status
-        except BacktrackException, _exc:
+        except BacktrackException as _exc:
             _status.pos = -1
             _status.result = None
             _error = self._combine_errors(_error, _exc.error)
@@ -1229,7 +1229,7 @@
                     _result = _call_status.result
                     _error = _call_status.error
                     _all0.append(_result)
-                except BacktrackException, _exc:
+                except BacktrackException as _exc:
                     _error = self._combine_errors(_error, _exc.error)
                     self._pos = _choice1
                     break
@@ -1246,7 +1246,7 @@
                     _result = _call_status.result
                     _error = self._combine_errors(_error, _call_status.error)
                     _all2.append(_result)
-                except BacktrackException, _exc:
+                except BacktrackException as _exc:
                     _error = self._combine_errors(_error, _exc.error)
                     self._pos = _choice3
                     break
@@ -1269,7 +1269,7 @@
             _status.result = _result
             _status.error = _error
             return _status
-        except BacktrackException, _exc:
+        except BacktrackException as _exc:
             _status.pos = -1
             _status.result = None
             _error = self._combine_errors(_error, _exc.error)
@@ -1323,7 +1323,7 @@
                             _result = _call_status.result
                             _error = self._combine_errors(_error, 
_call_status.error)
                             _all1.append(_result)
-                        except BacktrackException, _exc:
+                        except BacktrackException as _exc:
                             _error = self._combine_errors(_error, _exc.error)
                             self._pos = _choice2
                             break
@@ -1337,7 +1337,7 @@
                             _result = _call_status.result
                             _error = self._combine_errors(_error, 
_call_status.error)
                             _all3.append(_result)
-                        except BacktrackException, _exc:
+                        except BacktrackException as _exc:
                             _error = self._combine_errors(_error, _exc.error)
                             self._pos = _choice4
                             break
@@ -1354,14 +1354,14 @@
                             _result = _call_status.result
                             _error = self._combine_errors(_error, 
_call_status.error)
                             _all5.append(_result)
-                        except BacktrackException, _exc:
+                        except BacktrackException as _exc:
                             _error = self._combine_errors(_error, _exc.error)
                             self._pos = _choice6
                             break
                     _result = _all5
                     _result = (Nonterminal('if', [cmd, condition]))
                     break
-                except BacktrackException, _exc:
+                except BacktrackException as _exc:
                     _error = self._combine_errors(_error, _exc.error)
                     self._pos = _choice0
                 _choice7 = self._pos
@@ -1375,7 +1375,7 @@
                             _result = _call_status.result
                             _error = self._combine_errors(_error, 
_call_status.error)
                             _all8.append(_result)
-                        except BacktrackException, _exc:
+                        except BacktrackException as _exc:
                             _error = self._combine_errors(_error, _exc.error)
                             self._pos = _choice9
                             break
@@ -1392,14 +1392,14 @@
                             _result = _call_status.result
                             _error = self._combine_errors(_error, 
_call_status.error)
                             _all10.append(_result)
-                        except BacktrackException, _exc:
+                        except BacktrackException as _exc:
                             _error = self._combine_errors(_error, _exc.error)
                             self._pos = _choice11
                             break
                     _result = _all10
                     _result = (Nonterminal('if', [condition]))
                     break
-                except BacktrackException, _exc:
+                except BacktrackException as _exc:
                     _error = self._combine_errors(_error, _exc.error)
                     self._pos = _choice7
                     raise BacktrackException(_error)
@@ -1412,7 +1412,7 @@
                         _result = _call_status.result
                         _error = self._combine_errors(_error, 
_call_status.error)
                         _all12.append(_result)
-                    except BacktrackException, _exc:
+                    except BacktrackException as _exc:
                         _error = self._combine_errors(_error, _exc.error)
                         self._pos = _choice13
                         break
@@ -1429,7 +1429,7 @@
                         _result = _call_status.result
                         _error = self._combine_errors(_error, 
_call_status.error)
                         _all14.append(_result)
-                    except BacktrackException, _exc:
+                    except BacktrackException as _exc:
                         _error = self._combine_errors(_error, _exc.error)
                         self._pos = _choice15
                         break
@@ -1453,7 +1453,7 @@
             _status.result = _result
             _status.error = _error
             return _status
-        except BacktrackException, _exc:
+        except BacktrackException as _exc:
             _status.pos = -1
             _status.result = None
             _error = self._combine_errors(_error, _exc.error)
@@ -1497,7 +1497,7 @@
                     _result = _call_status.result
                     _error = _call_status.error
                     _all0.append(_result)
-                except BacktrackException, _exc:
+                except BacktrackException as _exc:
                     _error = self._combine_errors(_error, _exc.error)
                     self._pos = _choice1
                     break
@@ -1514,7 +1514,7 @@
                     _result = _call_status.result
                     _error = self._combine_errors(_error, _call_status.error)
                     _all2.append(_result)
-                except BacktrackException, _exc:
+                except BacktrackException as _exc:
                     _error = self._combine_errors(_error, _exc.error)
                     self._pos = _choice3
                     break
@@ -1528,7 +1528,7 @@
                     _result = _call_status.result
                     _error = self._combine_errors(_error, _call_status.error)
                     _all4.append(_result)
-                except BacktrackException, _exc:
+                except BacktrackException as _exc:
                     _error = self._combine_errors(_error, _exc.error)
                     self._pos = _choice5
                     break
@@ -1545,7 +1545,7 @@
                     _result = _call_status.result
                     _error = self._combine_errors(_error, _call_status.error)
                     _all6.append(_result)
-                except BacktrackException, _exc:
+                except BacktrackException as _exc:
                     _error = self._combine_errors(_error, _exc.error)
                     self._pos = _choice7
                     break
@@ -1572,7 +1572,7 @@
             _status.result = _result
             _status.error = _error
             return _status
-        except BacktrackException, _exc:
+        except BacktrackException as _exc:
             _status.pos = -1
             _status.result = None
             _error = self._combine_errors(_error, _exc.error)
@@ -1619,7 +1619,7 @@
                     _result = _call_status.result
                     _error = self._combine_errors(_error, _call_status.error)
                     _all0.append(_result)
-                except BacktrackException, _exc:
+                except BacktrackException as _exc:
                     _error = self._combine_errors(_error, _exc.error)
                     self._pos = _choice1
                     break
@@ -1643,7 +1643,7 @@
             _status.result = _result
             _status.error = _error
             return _status
-        except BacktrackException, _exc:
+        except BacktrackException as _exc:
             _status.pos = -1
             _status.result = None
             _error = self._combine_errors(_error, _exc.error)
@@ -1690,7 +1690,7 @@
                     _result = _call_status.result
                     _error = self._combine_errors(_error, _call_status.error)
                     _all0.append(_result)
-                except BacktrackException, _exc:
+                except BacktrackException as _exc:
                     _error = self._combine_errors(_error, _exc.error)
                     self._pos = _choice1
                     break
@@ -1704,7 +1704,7 @@
                     _result = _call_status.result
                     _error = self._combine_errors(_error, _call_status.error)
                     _all2.append(_result)
-                except BacktrackException, _exc:
+                except BacktrackException as _exc:
                     _error = self._combine_errors(_error, _exc.error)
                     self._pos = _choice3
                     break
@@ -1731,7 +1731,7 @@
             _status.result = _result
             _status.error = _error
             return _status
-        except BacktrackException, _exc:
+        except BacktrackException as _exc:
             _status.pos = -1
             _status.result = None
             _error = self._combine_errors(_error, _exc.error)
@@ -1781,7 +1781,7 @@
                             _result = _call_status.result
                             _error = self._combine_errors(_error, 
_call_status.error)
                             _all1.append(_result)
-                        except BacktrackException, _exc:
+                        except BacktrackException as _exc:
                             _error = self._combine_errors(_error, _exc.error)
                             self._pos = _choice2
                             break
@@ -1795,14 +1795,14 @@
                             _result = _call_status.result
                             _error = self._combine_errors(_error, 
_call_status.error)
                             _all3.append(_result)
-                        except BacktrackException, _exc:
+                        except BacktrackException as _exc:
                             _error = self._combine_errors(_error, _exc.error)
                             self._pos = _choice4
                             break
                     _result = _all3
                     _result = (Nonterminal('maybe', [what]))
                     break
-                except BacktrackException, _exc:
+                except BacktrackException as _exc:
                     _error = self._combine_errors(_error, _exc.error)
                     self._pos = _choice0
                 _choice5 = self._pos
@@ -1819,7 +1819,7 @@
                             _result = _call_status.result
                             _error = self._combine_errors(_error, 
_call_status.error)
                             _all6.append(_result)
-                        except BacktrackException, _exc:
+                        except BacktrackException as _exc:
                             _error = self._combine_errors(_error, _exc.error)
                             self._pos = _choice7
                             break
@@ -1829,14 +1829,14 @@
                         try:
                             _result = self.__chars__('*')
                             break
-                        except BacktrackException, _exc:
+                        except BacktrackException as _exc:
                             _error = self._combine_errors(_error, _exc.error)
                             self._pos = _choice8
                         _choice9 = self._pos
                         try:
                             _result = self.__chars__('+')
                             break
-                        except BacktrackException, _exc:
+                        except BacktrackException as _exc:
                             _error = self._combine_errors(_error, _exc.error)
                             self._pos = _choice9
                             raise BacktrackException(_error)
@@ -1851,14 +1851,14 @@
                             _result = _call_status.result
                             _error = self._combine_errors(_error, 
_call_status.error)
                             _all10.append(_result)
-                        except BacktrackException, _exc:
+                        except BacktrackException as _exc:
                             _error = self._combine_errors(_error, _exc.error)
                             self._pos = _choice11
                             break
                     _result = _all10
                     _result = (Nonterminal('repetition', [repetition, what]))
                     break
-                except BacktrackException, _exc:
+                except BacktrackException as _exc:
                     _error = self._combine_errors(_error, _exc.error)
                     self._pos = _choice5
                     raise BacktrackException(_error)
@@ -1874,7 +1874,7 @@
                         _result = _call_status.result
                         _error = self._combine_errors(_error, 
_call_status.error)
                         _all12.append(_result)
-                    except BacktrackException, _exc:
+                    except BacktrackException as _exc:
                         _error = self._combine_errors(_error, _exc.error)
                         self._pos = _choice13
                         break
@@ -1884,14 +1884,14 @@
                     try:
                         _result = self.__chars__('*')
                         break
-                    except BacktrackException, _exc:
+                    except BacktrackException as _exc:
                         _error = self._combine_errors(_error, _exc.error)
                         self._pos = _choice14
                     _choice15 = self._pos
                     try:
                         _result = self.__chars__('+')
                         break
-                    except BacktrackException, _exc:
+                    except BacktrackException as _exc:
                         _error = self._combine_errors(_error, _exc.error)
                         self._pos = _choice15
                         raise BacktrackException(_error)
@@ -1906,7 +1906,7 @@
                         _result = _call_status.result
                         _error = self._combine_errors(_error, 
_call_status.error)
                         _all16.append(_result)
-                    except BacktrackException, _exc:
+                    except BacktrackException as _exc:
                         _error = self._combine_errors(_error, _exc.error)
                         self._pos = _choice17
                         break
@@ -1930,7 +1930,7 @@
             _status.result = _result
             _status.error = _error
             return _status
-        except BacktrackException, _exc:
+        except BacktrackException as _exc:
             _status.pos = -1
             _status.result = None
             _error = self._combine_errors(_error, _exc.error)
@@ -1977,7 +1977,7 @@
                             _result = _call_status.result
                             _error = _call_status.error
                             _all1.append(_result)
-                        except BacktrackException, _exc:
+                        except BacktrackException as _exc:
                             _error = self._combine_errors(_error, _exc.error)
                             self._pos = _choice2
                             break
@@ -1994,14 +1994,14 @@
                             _result = _call_status.result
                             _error = self._combine_errors(_error, 
_call_status.error)
                             _all3.append(_result)
-                        except BacktrackException, _exc:
+                        except BacktrackException as _exc:
                             _error = self._combine_errors(_error, _exc.error)
                             self._pos = _choice4
                             break
                     _result = _all3
                     _result = (Nonterminal('negation', [what]))
                     break
-                except BacktrackException, _exc:
+                except BacktrackException as _exc:
                     _error = self._combine_errors(_error, _exc.error)
                     self._pos = _choice0
                 _choice5 = self._pos
@@ -2010,7 +2010,7 @@
                     _result = _call_status.result
                     _error = self._combine_errors(_error, _call_status.error)
                     break
-                except BacktrackException, _exc:
+                except BacktrackException as _exc:
                     _error = self._combine_errors(_error, _exc.error)
                     self._pos = _choice5
                     raise BacktrackException(_error)
@@ -2035,7 +2035,7 @@
             _status.result = _result
             _status.error = _error
             return _status
-        except BacktrackException, _exc:
+        except BacktrackException as _exc:
             _status.pos = -1
             _status.result = None
             _error = self._combine_errors(_error, _exc.error)
@@ -2082,7 +2082,7 @@
                             _result = _call_status.result
                             _error = _call_status.error
                             _all1.append(_result)
-                        except BacktrackException, _exc:
+                        except BacktrackException as _exc:
                             _error = self._combine_errors(_error, _exc.error)
                             self._pos = _choice2
                             break
@@ -2099,7 +2099,7 @@
                             _result = _call_status.result
                             _error = self._combine_errors(_error, 
_call_status.error)
                             _all3.append(_result)
-                        except BacktrackException, _exc:
+                        except BacktrackException as _exc:
                             _error = self._combine_errors(_error, _exc.error)
                             self._pos = _choice4
                             break
@@ -2113,14 +2113,14 @@
                             _result = _call_status.result
                             _error = self._combine_errors(_error, 
_call_status.error)
                             _all5.append(_result)
-                        except BacktrackException, _exc:
+                        except BacktrackException as _exc:
                             _error = self._combine_errors(_error, _exc.error)
                             self._pos = _choice6
                             break
                     _result = _all5
                     _result = (Nonterminal('exclusive', [what]))
_______________________________________________
pypy-commit mailing list
pypy-commit@python.org
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to