misc: Make exception handling python3 compliant
authorGiacomo Travaglini <giacomo.travaglini@arm.com>
Mon, 2 Mar 2020 15:18:56 +0000 (15:18 +0000)
committerGiacomo Travaglini <giacomo.travaglini@arm.com>
Fri, 13 Mar 2020 14:24:07 +0000 (14:24 +0000)
Change-Id: I37d0e97e9762e21c7a0ad315cf7684a19119b5b4
Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/26251
Tested-by: kokoro <noreply+kokoro@google.com>
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Maintainer: Jason Lowe-Power <jason@lowepower.com>

16 files changed:
src/SConscript
src/arch/arm/isa/insts/mem.isa
src/arch/arm/isa/insts/mult.isa
src/arch/isa_parser.py
src/arch/micro_asm.py
src/arch/sparc/isa/base.isa
src/arch/x86/isa/macroop.isa
src/arch/x86/isa/microops/debug.isa
src/arch/x86/isa/microops/mediaop.isa
src/arch/x86/isa/microops/regop.isa
src/arch/x86/isa/microops/seqop.isa
src/arch/x86/isa/microops/specop.isa
src/arch/x86/isa/specialize.isa
src/mem/ruby/protocol/SConscript
src/mem/slicc/parser.py
src/mem/slicc/util.py

index 552235a66b8979cae1cb1808225b1c18b01a8d0f..2cdf6cb0c673c644bd83f47be15c0a6e219cf953 100644 (file)
@@ -382,7 +382,7 @@ class SimObject(PySource):
         the m5.objects package)'''
         super(SimObject, self).__init__('m5.objects', source, tags, add_tags)
         if self.fixed:
-            raise AttributeError, "Too late to call SimObject now."
+            raise AttributeError("Too late to call SimObject now.")
 
         bisect.insort_right(SimObject.modnames, self.modname)
 
@@ -552,12 +552,12 @@ Export('GTest')
 debug_flags = {}
 def DebugFlag(name, desc=None):
     if name in debug_flags:
-        raise AttributeError, "Flag %s already specified" % name
+        raise AttributeError("Flag {} already specified".format(name))
     debug_flags[name] = (name, (), desc)
 
 def CompoundFlag(name, flags, desc=None):
     if name in debug_flags:
-        raise AttributeError, "Flag %s already specified" % name
+        raise AttributeError("Flag {} already specified".format(name))
 
     compound = tuple(flags)
     debug_flags[name] = (name, compound, desc)
index 0087a24dc1f3742caf73fe4db10c719f21e9659e..0605d7bbf205e1efd14be88fd182f957be85da0c 100644 (file)
@@ -214,7 +214,7 @@ let {{
             else:
                 memSuffix = '_ub'
         else:
-            raise Exception, "Unrecognized size for access %d" % size
+            raise Exception("Unrecognized size for access {}".format(size))
 
         return memSuffix
 
@@ -226,7 +226,7 @@ let {{
         elif not post and not writeback:
             base = "MemoryOffset<%s>" % base
         else:
-            raise Exception, "Illegal combination of post and writeback"
+            raise Exception("Illegal combination of post and writeback")
         return base
 }};
 
index 2d889a11a7e55d1249e092640a80665301fc5b10..6885be150958cbe28a7a3bd3976977ff10b692ab 100644 (file)
@@ -73,8 +73,8 @@ let {{
             }
 
         if not regs in (3, 4):
-            raise Exception, "Multiplication instructions with %d " + \
-                             "registers are not implemented"
+            raise Exception("Multiplication instructions with {} ".format(
+                regs) + "registers are not implemented")
 
         if regs == 3:
             base = 'Mult3'
index ef655d3cc8be54033c29e55d7f9735b4da123a37..b33517485430d10942e165df1984a22fc046fce1 100755 (executable)
@@ -210,7 +210,7 @@ class Template(object):
             # if the argument is an object, we use its attribute map.
             myDict.update(d.__dict__)
         else:
-            raise TypeError, "Template.subst() arg must be or have dictionary"
+            raise TypeError("Template.subst() arg must be or have dictionary")
         return template % myDict
 
     # Convert to string.
@@ -249,7 +249,7 @@ class Format(object):
         context.update({ 'name' : name, 'Name' : Name })
         try:
             vars = self.func(self.user_code, context, *args[0], **args[1])
-        except Exception, exc:
+        except Exception as exc:
             if debug:
                 raise
             error(lineno, 'error defining "%s": %s.' % (name, exc))
@@ -2037,7 +2037,7 @@ del wrap
         # emission-in-progress.
         try:
             exec split_setup+fixPythonIndentation(t[2]) in self.exportContext
-        except Exception, exc:
+        except Exception as exc:
             traceback.print_exc(file=sys.stdout)
             if debug:
                 raise
@@ -2054,7 +2054,7 @@ del wrap
         'def_operand_types : DEF OPERAND_TYPES CODELIT SEMI'
         try:
             self.operandTypeMap = eval('{' + t[3] + '}')
-        except Exception, exc:
+        except Exception as exc:
             if debug:
                 raise
             error(t.lineno(1),
@@ -2069,7 +2069,7 @@ del wrap
                   'error: operand types must be defined before operands')
         try:
             user_dict = eval('{' + t[3] + '}', self.exportContext)
-        except Exception, exc:
+        except Exception as exc:
             if debug:
                 raise
             error(t.lineno(1), 'In def operands: %s' % exc)
@@ -2709,7 +2709,7 @@ StaticInstPtr
     def parse_isa_desc(self, *args, **kwargs):
         try:
             self._parse_isa_desc(*args, **kwargs)
-        except ISAParserError, e:
+        except ISAParserError as e:
             print(backtrace(self.fileNameStack))
             print("At %s:" % e.lineno)
             print(e)
index 536f70994a9fc7775257c3ccf843cb1cb40f595e..53026c16f473807633940b5e0492a9c04bd81cc0 100644 (file)
@@ -123,7 +123,8 @@ def print_error(message):
 def handle_statement(parser, container, statement):
     if statement.is_microop:
         if statement.mnemonic not in parser.microops.keys():
-            raise Exception, "Unrecognized mnemonic: %s" % statement.mnemonic
+            raise Exception("Unrecognized mnemonic: {}".format(
+                statement.mnemonic))
         parser.symbols["__microopClassFromInsideTheAssembler"] = \
             parser.microops[statement.mnemonic]
         try:
@@ -144,7 +145,8 @@ def handle_statement(parser, container, statement):
             raise
     elif statement.is_directive:
         if statement.name not in container.directives.keys():
-            raise Exception, "Unrecognized directive: %s" % statement.name
+            raise Exception("Unrecognized directive: {}".format(
+                statement.name))
         parser.symbols["__directiveFunctionFromInsideTheAssembler"] = \
             container.directives[statement.name]
         try:
@@ -155,7 +157,8 @@ def handle_statement(parser, container, statement):
             print(container.directives)
             raise
     else:
-        raise Exception, "Didn't recognize the type of statement", statement
+        raise Exception("Didn't recognize the type of statement {}".format(
+            statement))
 
 ##########################################################################
 #
@@ -330,7 +333,7 @@ def p_rom_block(t):
     'rom_block : DEF ROM block SEMI'
     if not t.parser.rom:
         print_error("Rom block found, but no Rom object specified.")
-        raise TypeError, "Rom block found, but no Rom object was specified."
+        raise TypeError("Rom block found, but no Rom object was specified.")
     for statement in t[3].statements:
         handle_statement(t.parser, t.parser.rom, statement)
     t[0] = t.parser.rom
@@ -339,8 +342,10 @@ def p_rom_block(t):
 def p_macroop_def_0(t):
     'macroop_def : DEF MACROOP ID LPAREN ID RPAREN SEMI'
     if not t.parser.rom_macroop_type:
-        print_error("ROM based macroop found, but no ROM macroop class was specified.")
-        raise TypeError, "ROM based macroop found, but no ROM macroop class was specified."
+        print_error("ROM based macroop found, but no ROM macroop " +
+            "class was specified.")
+        raise TypeError("ROM based macroop found, but no ROM macroop " +
+            "class was specified.")
     macroop = t.parser.rom_macroop_type(t[3], t[5])
     t.parser.macroops[t[3]] = macroop
 
index c0087d6ef78c3a2195ed20d0e523aa2460444804..4c9bd25b70be985f4c78710dc811d16585770c18 100644 (file)
@@ -75,7 +75,7 @@ let {{
                 is_dest = is_dest or is_dest_local
                 is_src = is_src or not is_dest_local
                 if extension and extension != op_ext:
-                    raise Exception, "Inconsistent extensions in double filter."
+                    raise Exception("Inconsistent extensions in double filter")
                 extension = op_ext
                 next_pos = match.end()
             if foundOne:
index e8cf9b5639be7db01be779bcf32b0b044af4f037..8ca176ce88a128f20953febbb5f2da938dca862a 100644 (file)
@@ -302,7 +302,7 @@ let {{
             elif self.size == 'z':
                 self.dataSize = "((OPSIZE == 8) ? 4 : OPSIZE)"
             elif self.size:
-                raise Exception, "Unrecognized size type %s!" % self.size
+                raise Exception("Unrecognized size type {}!".format(self.size))
             return '''EmulEnv(%(reg)s,
                               %(regm)s,
                               %(dataSize)s,
@@ -318,14 +318,15 @@ let {{
                 self.regm = reg
                 self.regmUsed = True
             else:
-                raise Exception, "EmulEnv is out of register specialization spots."
+                raise Exception("EmulEnv is out of register specialization " +
+                    "spots.")
         def setSize(self, size):
             if not self.size:
                 self.size = size
             else:
                 if self.size != size:
-                    raise Exception, "Conflicting register sizes %s and %s!" %\
-                        (self.size, size)
+                    raise Exception("Conflicting register sizes " +
+                        "{} and {}!".format(self.size, size))
 }};
 
 let {{
@@ -334,7 +335,7 @@ let {{
     def genMacroop(Name, env):
         blocks = OutputBlocks()
         if not Name in macroopDict:
-            raise Exception, "Unrecognized instruction: %s" % Name
+            raise Exception("Unrecognized instruction: {}".format(Name))
         macroop = macroopDict[Name]
         if not macroop.declared:
             if env.doModRM:
index 8615d428e1fe9c7d937309bc3500571ca02698da..d488cdb602a08f387197cb8a005e4a2073cdb83f 100644 (file)
@@ -137,7 +137,7 @@ let {{
             self.once = once
             self.flags = flags
             if flags and not isinstance(flags, (list, tuple)):
-                raise Exception, "flags must be a list or tuple of flags"
+                raise Exception("flags must be a list or tuple of flags")
 
             self.className = "MicroDebugFlags" if flags else "MicroDebug"
 
index 6ef263a07aec8d2cb716cc8182323afade0fd605..48867901219216ad312212775d8a87cdf3eab0bf 100644 (file)
@@ -212,9 +212,9 @@ let {{
             if destSize is not None:
                 self.destSize = destSize
             if self.srcSize is None:
-                raise Exception, "Source size not set."
+                raise Exception("Source size not set.")
             if self.destSize is None:
-                raise Exception, "Dest size not set."
+                raise Exception("Dest size not set.")
             if ext is None:
                 self.ext = 0
             else:
index d64ace4fa3c58c5a86f171ad9734c2c3648a4875..06ffaea85def359b64d3bf7172beb4cf37883deb 100644 (file)
@@ -396,7 +396,7 @@ let {{
                 self.ext = 0
             else:
                 if not isinstance(flags, (list, tuple)):
-                    raise Exception, "flags must be a list or tuple of flags"
+                    raise Exception("flags must be a list or tuple of flags")
                 self.ext = " | ".join(flags)
                 self.className += "Flags"
 
index f2285f6af485370e72d4e3fda0995b5df4e022f1..66b863921f0b482635d07dc909a81098922356a7 100644 (file)
@@ -122,7 +122,7 @@ let {{
             self.target = target
             if flags:
                 if not isinstance(flags, (list, tuple)):
-                    raise Exception, "flags must be a list or tuple of flags"
+                    raise Exception("flags must be a list or tuple of flags")
                 self.cond = " | ".join(flags)
                 self.className += "Flags"
             else:
@@ -154,7 +154,7 @@ let {{
         def __init__(self, flags=None):
             if flags:
                 if not isinstance(flags, (list, tuple)):
-                    raise Exception, "flags must be a list or tuple of flags"
+                    raise Exception("flags must be a list or tuple of flags")
                 self.cond = " | ".join(flags)
                 self.className += "Flags"
             else:
index 4c71bd1eb32115c16ddfc786043fe79f823048a4..55de0f3c2d16baaf250b02a156509a4591d9e4c8 100644 (file)
@@ -162,7 +162,7 @@ let {{
             self.fault = fault
             if flags:
                 if not isinstance(flags, (list, tuple)):
-                    raise Exception, "flags must be a list or tuple of flags"
+                    raise Exception("flags must be a list or tuple of flags")
                 self.cond = " | ".join(flags)
                 self.className += "Flags"
             else:
index 52b3e604e34777a3a682dd5a87ed3df002943e5e..946732f2603c808737cc505020a45b2ea0be2e00 100644 (file)
@@ -108,7 +108,8 @@ let {{
         def __init__(self, opTypeString):
             match = OpType.parser.search(opTypeString)
             if match == None:
-                raise Exception, "Problem parsing operand type %s" % opTypeString
+                raise Exception("Problem parsing operand type {}".format(
+                    opTypeString))
             self.reg = match.group("reg")
             self.tag = match.group("tag")
             self.size = match.group("size")
@@ -163,7 +164,8 @@ let {{
                         {"3" : (doBadInstDecode,) },
                         (doRipRelativeDecode, Name, opTypes, env))
             elif opType.tag == None or opType.size == None:
-                raise Exception, "Problem parsing operand tag: %s" % opType.tag
+                raise Exception("Problem parsing operand tag: {}".format(
+                    opType.tag))
             elif opType.tag == "C":
                 # A control register indexed by the "reg" field
                 env.addReg(ModRMRegIndex)
@@ -257,7 +259,7 @@ let {{
                                 env.addressSize, false);''')
                 Name += "_M"
             else:
-                raise Exception, "Unrecognized tag %s." % opType.tag
+                raise Exception("Unrecognized tag {}.".format(opType.tag))
 
         # Generate code to return a macroop of the given name which will
         # operate in the "emulation environment" env
index 958cfaa819c072d302b057d35732230929716a7f..c037b851c4e958404817a5cf32913ff2e3a1ffa0 100644 (file)
@@ -96,7 +96,8 @@ for path in protocol_dirs:
         break
 
 if not protocol_dir:
-    raise ValueError, "Could not find %s.slicc in protocol_dirs" % protocol
+    raise ValueError("Could not find {}.slicc in protocol_dirs".format(
+        protocol))
 
 sources = [ protocol_dir.File("%s.slicc" % protocol) ]
 
index 6e36bdafc771c7dc239e585492404484d609edef..846a74f030ad9684ac5f93fdd163766aac0787ed 100644 (file)
@@ -46,7 +46,7 @@ class SLICC(Grammar):
 
         try:
             self.decl_list = self.parse_file(filename, **kwargs)
-        except ParseError, e:
+        except ParseError as e:
             if not self.traceback:
                 sys.exit(str(e))
             raise
index dcb780d6b344a29dc03127326099f6a1e4dd472e..7afa4f88e906b16814a61de1f7fcab26895f0ff2 100644 (file)
@@ -51,11 +51,11 @@ class PairContainer(object):
 class Location(object):
     def __init__(self, filename, lineno, no_warning=False):
         if not isinstance(filename, string_types):
-            raise AttributeError, \
-                "filename must be a string, found '%s'" % (type(filename), )
-        if not isinstance(lineno, (int, long)):
-            raise AttributeError, \
-                "filename must be an integer, found '%s'" % (type(lineno), )
+            raise AttributeError(
+                "filename must be a string, found {}".format(type(filename)))
+        if not isinstance(lineno, int):
+            raise AttributeError(
+                "filename must be an integer, found {}".format(type(lineno)))
         self.filename = filename
         self.lineno = lineno
         self.no_warning = no_warning
@@ -74,7 +74,7 @@ class Location(object):
     def error(self, message, *args):
         if args:
             message = message % args
-        raise Exception, "%s: Error: %s" % (self, message)
+        raise Exception("{}: Error: {}".format(self, message))
         sys.exit("\n%s: Error: %s" % (self, message))
 
 __all__ = [ 'PairContainer', 'Location' ]