diff options
Diffstat (limited to 'src/python')
-rw-r--r-- | src/python/m5/SimObject.py | 31 | ||||
-rw-r--r-- | src/python/m5/debug.py | 14 | ||||
-rw-r--r-- | src/python/m5/event.py | 4 | ||||
-rw-r--r-- | src/python/m5/main.py | 82 | ||||
-rw-r--r-- | src/python/m5/params.py | 12 | ||||
-rw-r--r-- | src/python/m5/simulate.py | 8 | ||||
-rw-r--r-- | src/python/m5/ticks.py | 4 | ||||
-rw-r--r-- | src/python/m5/util/__init__.py | 14 | ||||
-rw-r--r-- | src/python/m5/util/attrdict.py | 26 | ||||
-rw-r--r-- | src/python/m5/util/code_formatter.py | 4 | ||||
-rw-r--r-- | src/python/m5/util/jobfile.py | 30 | ||||
-rw-r--r-- | src/python/m5/util/multidict.py | 44 | ||||
-rw-r--r-- | src/python/m5/util/sorteddict.py | 26 | ||||
-rw-r--r-- | src/python/m5/util/terminal.py | 18 |
14 files changed, 173 insertions, 144 deletions
diff --git a/src/python/m5/SimObject.py b/src/python/m5/SimObject.py index 919c0e852..6e61961bd 100644 --- a/src/python/m5/SimObject.py +++ b/src/python/m5/SimObject.py @@ -43,6 +43,8 @@ # Andreas Hansson # Andreas Sandberg +from __future__ import print_function + import sys from types import FunctionType, MethodType, ModuleType from functools import wraps @@ -768,8 +770,8 @@ module_init(py::module &m_internal) try: ptypes = [p.ptype for p in params] except: - print cls, p, p.ptype_str - print params + print(cls, p, p.ptype_str) + print(params) raise class_path = cls._value_dict['cxx_class'].split('::') @@ -962,7 +964,7 @@ class SimObject(object): def enumerateParams(self, flags_dict = {}, cmd_line_str = "", access_str = ""): if hasattr(self, "_paramEnumed"): - print "Cycle detected enumerating params" + print("Cycle detected enumerating params") else: self._paramEnumed = True # Scan the children first to pick up all the objects in this SimObj @@ -1334,8 +1336,8 @@ class SimObject(object): try: value = value.unproxy(self) except: - print "Error in unproxying param '%s' of %s" % \ - (param, self.path()) + print("Error in unproxying param '%s' of %s" % + (param, self.path())) raise setattr(self, param, value) @@ -1349,30 +1351,31 @@ class SimObject(object): port.unproxy(self) def print_ini(self, ini_file): - print >>ini_file, '[' + self.path() + ']' # .ini section header + print('[' + self.path() + ']', file=ini_file) # .ini section header instanceDict[self.path()] = self if hasattr(self, 'type'): - print >>ini_file, 'type=%s' % self.type + print('type=%s' % self.type, file=ini_file) if len(self._children.keys()): - print >>ini_file, 'children=%s' % \ - ' '.join(self._children[n].get_name() \ - for n in sorted(self._children.keys())) + print('children=%s' % + ' '.join(self._children[n].get_name() + for n in sorted(self._children.keys())), + file=ini_file) for param in sorted(self._params.keys()): value = self._values.get(param) if value != None: - print >>ini_file, '%s=%s' % (param, - self._values[param].ini_str()) + print('%s=%s' % (param, self._values[param].ini_str()), + file=ini_file) for port_name in sorted(self._ports.keys()): port = self._port_refs.get(port_name, None) if port != None: - print >>ini_file, '%s=%s' % (port_name, port.ini_str()) + print('%s=%s' % (port_name, port.ini_str()), file=ini_file) - print >>ini_file # blank line between objects + print(file=ini_file) # blank line between objects # generate a tree of dictionaries expressing all the parameters in the # instantiated system for use by scripts that want to do power, thermal diff --git a/src/python/m5/debug.py b/src/python/m5/debug.py index 839c32d98..f7e34a728 100644 --- a/src/python/m5/debug.py +++ b/src/python/m5/debug.py @@ -26,6 +26,8 @@ # # Authors: Nathan Binkert +from __future__ import print_function + from UserDict import DictMixin import _m5.debug @@ -34,25 +36,25 @@ from _m5.debug import schedBreak, setRemoteGDBPort from m5.util import printList def help(): - print "Base Flags:" + print("Base Flags:") for name in sorted(flags): if name == 'All': continue flag = flags[name] children = [c for c in flag.kids() ] if not children: - print " %s: %s" % (name, flag.desc()) - print - print "Compound Flags:" + print(" %s: %s" % (name, flag.desc())) + print() + print("Compound Flags:") for name in sorted(flags): if name == 'All': continue flag = flags[name] children = [c for c in flag.kids() ] if children: - print " %s: %s" % (name, flag.desc()) + print(" %s: %s" % (name, flag.desc())) printList([ c.name() for c in children ], indent=8) - print + print() class AllFlags(DictMixin): def __init__(self): diff --git a/src/python/m5/event.py b/src/python/m5/event.py index 59d18b6fe..74863a953 100644 --- a/src/python/m5/event.py +++ b/src/python/m5/event.py @@ -40,6 +40,8 @@ # # Authors: Nathan Binkert +from __future__ import print_function + import m5 import _m5.event @@ -76,7 +78,7 @@ class ProgressEvent(Event): self.eventq.schedule(self, m5.curTick() + self.period) def __call__(self): - print "Progress! Time now %fs" % (m5.curTick()/1e12) + print("Progress! Time now %fs" % (m5.curTick()/1e12)) self.eventq.schedule(self, m5.curTick() + self.period) diff --git a/src/python/m5/main.py b/src/python/m5/main.py index ad452886a..9d46d4331 100644 --- a/src/python/m5/main.py +++ b/src/python/m5/main.py @@ -38,6 +38,8 @@ # # Authors: Nathan Binkert +from __future__ import print_function + import code import datetime import os @@ -230,12 +232,12 @@ def main(*args): # Print redirection notices here before doing any redirection if options.redirect_stdout and not options.redirect_stderr: - print "Redirecting stdout and stderr to", stdout_file + print("Redirecting stdout and stderr to", stdout_file) else: if options.redirect_stdout: - print "Redirecting stdout to", stdout_file + print("Redirecting stdout to", stdout_file) if options.redirect_stderr: - print "Redirecting stderr to", stderr_file + print("Redirecting stderr to", stderr_file) # Now redirect stdout/stderr as desired if options.redirect_stdout: @@ -252,28 +254,28 @@ def main(*args): if options.build_info: done = True - print 'Build information:' - print - print 'compiled %s' % defines.compileDate; - print 'build options:' + print('Build information:') + print() + print('compiled %s' % defines.compileDate) + print('build options:') keys = defines.buildEnv.keys() keys.sort() for key in keys: val = defines.buildEnv[key] - print ' %s = %s' % (key, val) - print + print(' %s = %s' % (key, val)) + print() if options.copyright: done = True - print info.COPYING - print + print(info.COPYING) + print() if options.readme: done = True - print 'Readme:' - print - print info.README - print + print('Readme:') + print() + print(info.README) + print() if options.debug_help: done = True @@ -283,23 +285,23 @@ def main(*args): if options.list_sim_objects: import SimObject done = True - print "SimObjects:" + print("SimObjects:") objects = SimObject.allClasses.keys() objects.sort() for name in objects: obj = SimObject.allClasses[name] - print " %s" % obj + print(" %s" % obj) params = obj._params.keys() params.sort() for pname in params: param = obj._params[pname] default = getattr(param, 'default', '') - print " %s" % pname + print(" %s" % pname) if default: - print " default: %s" % default - print " desc: %s" % param.desc - print - print + print(" default: %s" % default) + print(" desc: %s" % param.desc) + print() + print() if done: sys.exit(0) @@ -310,26 +312,26 @@ def main(*args): verbose = options.verbose - options.quiet if verbose >= 0: - print "gem5 Simulator System. http://gem5.org" - print brief_copyright - print + print("gem5 Simulator System. http://gem5.org") + print(brief_copyright) + print() - print "gem5 compiled %s" % defines.compileDate; + print("gem5 compiled %s" % defines.compileDate) - print "gem5 started %s" % \ - datetime.datetime.now().strftime("%b %e %Y %X") - print "gem5 executing on %s, pid %d" % \ - (socket.gethostname(), os.getpid()) + print("gem5 started %s" % + datetime.datetime.now().strftime("%b %e %Y %X")) + print("gem5 executing on %s, pid %d" % + (socket.gethostname(), os.getpid())) # in Python 3 pipes.quote() is moved to shlex.quote() import pipes - print "command line:", " ".join(map(pipes.quote, sys.argv)) - print + print("command line:", " ".join(map(pipes.quote, sys.argv))) + print() # check to make sure we can find the listed script if not arguments or not os.path.isfile(arguments[0]): if arguments and not os.path.isfile(arguments[0]): - print "Script %s not found" % arguments[0] + print("Script %s not found" % arguments[0]) options.usage(2) @@ -375,7 +377,7 @@ def main(*args): off = True if flag not in debug.flags: - print >>sys.stderr, "invalid debug flag '%s'" % flag + print("invalid debug flag '%s'" % flag, file=sys.stderr) sys.exit(1) if off: @@ -420,11 +422,11 @@ def main(*args): try: pdb.run(filecode, scope) except SystemExit: - print "The program exited via sys.exit(). Exit status: ", - print sys.exc_info()[1] + print("The program exited via sys.exit(). Exit status: ", end=' ') + print(sys.exc_info()[1]) except: traceback.print_exc() - print "Uncaught exception. Entering post mortem debugging" + print("Uncaught exception. Entering post mortem debugging") t = sys.exc_info()[2] while t.tb_next is not None: t = t.tb_next @@ -441,9 +443,9 @@ if __name__ == '__main__': options, arguments = parse_options() - print 'opts:' + print('opts:') pprint(options, indent=4) - print + print() - print 'args:' + print('args:') pprint(arguments, indent=4) diff --git a/src/python/m5/params.py b/src/python/m5/params.py index 11a55e558..483e632f5 100644 --- a/src/python/m5/params.py +++ b/src/python/m5/params.py @@ -59,6 +59,8 @@ # ##################################################################### +from __future__ import print_function + import copy import datetime import re @@ -311,7 +313,7 @@ class SimObjectVector(VectorParamValue): cmd_line_str = "", access_str = ""): if hasattr(self, "_paramEnumed"): - print "Cycle detected enumerating params at %s?!" % (cmd_line_str) + print("Cycle detected enumerating params at %s?!" % (cmd_line_str)) else: x = 0 for vals in self: @@ -1826,8 +1828,8 @@ class PortRef(object): try: realPeer = self.peer.unproxy(self.simobj) except: - print "Error in unproxying port '%s' of %s" % \ - (self.name, self.simobj.path()) + print("Error in unproxying port '%s' of %s" % + (self.name, self.simobj.path())) raise self.connect(realPeer) @@ -1856,9 +1858,9 @@ class PortRef(object): connectPorts(self.simobj.getCCObject(), self.name, self.index, peer.simobj.getCCObject(), peer.name, peer.index) except: - print "Error connecting port %s.%s to %s.%s" % \ + print("Error connecting port %s.%s to %s.%s" % (self.simobj.path(), self.name, - peer.simobj.path(), peer.name) + peer.simobj.path(), peer.name)) raise self.ccConnected = True peer.ccConnected = True diff --git a/src/python/m5/simulate.py b/src/python/m5/simulate.py index c47dd2250..0e1a67e47 100644 --- a/src/python/m5/simulate.py +++ b/src/python/m5/simulate.py @@ -40,6 +40,8 @@ # Authors: Nathan Binkert # Steve Reinhardt +from __future__ import print_function + import atexit import os import sys @@ -223,7 +225,7 @@ def checkpoint(dir): drain() memWriteback(root) - print "Writing checkpoint" + print("Writing checkpoint") _m5.core.serializeAll(dir) def _changeMemoryMode(system, mode): @@ -233,7 +235,7 @@ def _changeMemoryMode(system, mode): if system.getMemoryMode() != mode: system.setMemoryMode(mode) else: - print "System already in target mode. Memory mode unchanged." + print("System already in target mode. Memory mode unchanged.") def switchCpus(system, cpuList, verbose=True): """Switch CPUs in a system. @@ -248,7 +250,7 @@ def switchCpus(system, cpuList, verbose=True): """ if verbose: - print "switching cpus" + print("switching cpus") if not isinstance(cpuList, list): raise RuntimeError, "Must pass a list to this function" diff --git a/src/python/m5/ticks.py b/src/python/m5/ticks.py index ce9459f2a..582c65cac 100644 --- a/src/python/m5/ticks.py +++ b/src/python/m5/ticks.py @@ -26,6 +26,8 @@ # # Authors: Nathan Binkert +from __future__ import print_function + import sys from m5.util import warn @@ -39,7 +41,7 @@ def fixGlobalFrequency(): if not tps_fixed: tps_fixed = True _m5.core.setClockFrequency(int(tps)) - print "Global frequency set at %d ticks per second" % int(tps) + print("Global frequency set at %d ticks per second" % int(tps)) def setGlobalFrequency(ticksPerSecond): from m5.util import convert diff --git a/src/python/m5/util/__init__.py b/src/python/m5/util/__init__.py index 573674879..2ad9c5627 100644 --- a/src/python/m5/util/__init__.py +++ b/src/python/m5/util/__init__.py @@ -39,6 +39,8 @@ # # Authors: Nathan Binkert +from __future__ import print_function + import os import re import sys @@ -57,26 +59,26 @@ from sorteddict import SortedDict # ever happen regardless of what the user does (i.e., an acutal m5 # bug). def panic(fmt, *args): - print >>sys.stderr, 'panic:', fmt % args + print('panic:', fmt % args, file=sys.stderr) sys.exit(1) # fatal() should be called when the simulation cannot continue due to # some condition that is the user's fault (bad configuration, invalid # arguments, etc.) and not a simulator bug. def fatal(fmt, *args): - print >>sys.stderr, 'fatal:', fmt % args + print('fatal:', fmt % args, file=sys.stderr) sys.exit(1) # warn() should be called when the user should be warned about some condition # that may or may not be the user's fault, but that they should be made aware # of as it may affect the simulation or results. def warn(fmt, *args): - print >>sys.stderr, 'warn:', fmt % args + print('warn:', fmt % args, file=sys.stderr) # inform() should be called when the user should be informed about some # condition that they may be interested in. def inform(fmt, *args): - print >>sys.stdout, 'info:', fmt % args + print('info:', fmt % args, file=sys.stdout) class Singleton(type): def __call__(cls, *args, **kwargs): @@ -166,14 +168,14 @@ def printList(items, indent=4): line = ' ' * indent for i,item in enumerate(items): if len(line) + len(item) > 76: - print line + print(line) line = ' ' * indent if i < len(items) - 1: line += '%s, ' % item else: line += item - print line + print(line) def readCommand(cmd, **kwargs): """run the command cmd, read the results and return them diff --git a/src/python/m5/util/attrdict.py b/src/python/m5/util/attrdict.py index cb83e9e24..d444d5d99 100644 --- a/src/python/m5/util/attrdict.py +++ b/src/python/m5/util/attrdict.py @@ -26,6 +26,8 @@ # # Authors: Nathan Binkert +from __future__ import print_function + __all__ = [ 'attrdict', 'multiattrdict', 'optiondict' ] class attrdict(dict): @@ -77,24 +79,24 @@ if __name__ == '__main__': x = attrdict() x.y = 1 x['z'] = 2 - print x['y'], x.y - print x['z'], x.z - print dir(x) - print x + print(x['y'], x.y) + print(x['z'], x.z) + print(dir(x)) + print(x) - print + print() del x['y'] del x.z - print dir(x) + print(dir(x)) print(x) - print - print "multiattrdict" + print() + print("multiattrdict") x = multiattrdict() x.x.x.x = 9 x.y.z = 9 - print x - print x.y - print x.y.z - print x.z.z + print(x) + print(x.y) + print(x.y.z) + print(x.z.z) diff --git a/src/python/m5/util/code_formatter.py b/src/python/m5/util/code_formatter.py index 023e189cd..a11c9d3d0 100644 --- a/src/python/m5/util/code_formatter.py +++ b/src/python/m5/util/code_formatter.py @@ -24,6 +24,8 @@ # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +from __future__ import print_function + import __builtin__ import inspect import os @@ -312,4 +314,4 @@ if __name__ == '__main__': } ''', 1, 9) - print f, + print(f, end=' ') diff --git a/src/python/m5/util/jobfile.py b/src/python/m5/util/jobfile.py index 9c59778e5..d8c09afd4 100644 --- a/src/python/m5/util/jobfile.py +++ b/src/python/m5/util/jobfile.py @@ -26,6 +26,8 @@ # # Authors: Nathan Binkert +from __future__ import print_function + import sys class Data(object): @@ -69,12 +71,12 @@ class Data(object): def printinfo(self): if self.name: - print 'name: %s' % self.name + print('name: %s' % self.name) if self.desc: - print 'desc: %s' % self.desc + print('desc: %s' % self.desc) try: if self.system: - print 'system: %s' % self.system + print('system: %s' % self.system) except AttributeError: pass @@ -84,8 +86,8 @@ class Data(object): if isinstance(val, dict): import pprint val = pprint.pformat(val) - print '%-20s = %s' % (key, val) - print + print('%-20s = %s' % (key, val)) + print() def __contains__(self, attr): if attr.startswith('_'): @@ -186,10 +188,10 @@ class Job(Data): def printinfo(self): super(Job, self).printinfo() if self._checkpoint: - print 'checkpoint: %s' % self._checkpoint.name - print 'config: %s' % self._config.name - print 'groups: %s' % [ g.name for g in self._groups ] - print 'options: %s' % [ o.name for o in self._options ] + print('checkpoint: %s' % self._checkpoint.name) + print('config: %s' % self._config.name) + print('groups: %s' % [ g.name for g in self._groups ]) + print('options: %s' % [ o.name for o in self._options ]) super(Job, self).printverbose() class SubOption(Data): @@ -253,7 +255,7 @@ class Option(Data): def printinfo(self): super(Option, self).printinfo() - print 'config: %s' % self._config.name + print('config: %s' % self._config.name) super(Option, self).printverbose() class Group(Data): @@ -283,8 +285,8 @@ class Group(Data): def printinfo(self): super(Group, self).printinfo() - print 'config: %s' % self._config.name - print 'options: %s' % [ o.name for o in self._options ] + print('config: %s' % self._config.name) + print('options: %s' % [ o.name for o in self._options ]) super(Group, self).printverbose() class Configuration(Data): @@ -397,7 +399,7 @@ class Configuration(Data): def printinfo(self): super(Configuration, self).printinfo() - print 'groups: %s' % [ g.name for g in self._groups ] + print('groups: %s' % [ g.name for g in self._groups ]) super(Configuration, self).printverbose() def JobFile(jobfile): @@ -466,7 +468,7 @@ def main(conf=None): cpt = '' if job._checkpoint: cpt = job._checkpoint.name - print job.name, cpt + print(job.name, cpt) if __name__ == '__main__': main() diff --git a/src/python/m5/util/multidict.py b/src/python/m5/util/multidict.py index b5cd700ef..d22b1cbbc 100644 --- a/src/python/m5/util/multidict.py +++ b/src/python/m5/util/multidict.py @@ -26,6 +26,8 @@ # # Authors: Nathan Binkert +from __future__ import print_function + __all__ = [ 'multidict' ] class multidict(object): @@ -116,10 +118,10 @@ class multidict(object): return default def _dump(self): - print 'multidict dump' + print('multidict dump') node = self while isinstance(node, multidict): - print ' ', node.local + print(' ', node.local) node = node.parent def _dumpkey(self, key): @@ -129,7 +131,7 @@ class multidict(object): if key in node.local: values.append(node.local[key]) node = node.parent - print key, values + print(key, values) if __name__ == '__main__': test1 = multidict() @@ -150,33 +152,33 @@ if __name__ == '__main__': test2.setdefault('f', multidict) - print 'test1>', test1.items() - print 'test2>', test2.items() - #print test1['a'] - print test1['b'] - print test1['c'] - print test1['d'] - print test1['e'] + print('test1>', test1.items()) + print('test2>', test2.items()) + #print(test1['a']) + print(test1['b']) + print(test1['c']) + print(test1['d']) + print(test1['e']) - print test2['a'] - #print test2['b'] - print test2['c'] - print test2['d'] - print test2['e'] + print(test2['a']) + #print(test2['b']) + print(test2['c']) + print(test2['d']) + print(test2['e']) for key in test2.iterkeys(): - print key + print(key) test2.get('g', 'foo') #test2.get('b') test2.get('b', 'bar') test2.setdefault('b', 'blah') - print test1 - print test2 - print `test2` + print(test1) + print(test2) + print(`test2`) - print len(test2) + print(len(test2)) test3['a'] = [ 0, 1, 2, 3 ] - print test4 + print(test4) diff --git a/src/python/m5/util/sorteddict.py b/src/python/m5/util/sorteddict.py index ef32be3af..abe28376d 100644 --- a/src/python/m5/util/sorteddict.py +++ b/src/python/m5/util/sorteddict.py @@ -24,6 +24,8 @@ # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +from __future__ import print_function + from bisect import bisect_left, bisect_right class SortedDict(dict): @@ -181,21 +183,21 @@ class SortedDict(dict): if __name__ == '__main__': def display(d): - print d - print d.keys() - print list(d.iterkeys()) - print d.values() - print list(d.itervalues()) - print d.items() - print list(d.iteritems()) + print(d) + print(d.keys()) + print(list(d.iterkeys())) + print(d.values()) + print(list(d.itervalues())) + print(d.items()) + print(list(d.iteritems())) d = SortedDict(x=24,e=5,j=4,b=2,z=26,d=4) display(d) - print 'popitem', d.popitem() + print('popitem', d.popitem()) display(d) - print 'pop j' + print('pop j') d.pop('j') display(d) @@ -212,9 +214,9 @@ if __name__ == '__main__': d['y'] = 26 display(d) - print `d` + print(`d`) - print d.copy() + print(d.copy()) for k,v in d.itemrange('d', 'z', inclusive=True): - print k,v + print(k, v) diff --git a/src/python/m5/util/terminal.py b/src/python/m5/util/terminal.py index 6bf85f14d..9dc5d9850 100644 --- a/src/python/m5/util/terminal.py +++ b/src/python/m5/util/terminal.py @@ -26,6 +26,8 @@ # # Author: Steve Reinhardt +from __future__ import print_function + import sys # Intended usage example: @@ -36,7 +38,7 @@ import sys # from m5.util.terminal import no_termcap as termcap # else: # from m5.util.terminal import tty_termcap as termcap -# print termcap.Blue + "This could be blue!" + termcap.Normal +# print(termcap.Blue + "This could be blue!" + termcap.Normal) # ANSI color names in index order color_names = "Black Red Green Yellow Blue Magenta Cyan".split() @@ -105,18 +107,18 @@ def get_termcap(use_colors = None): def test_termcap(obj): for c_name in color_names: c_str = getattr(obj, c_name) - print c_str + c_name + obj.Normal + print(c_str + c_name + obj.Normal) for attr_name in capability_names: if attr_name == 'Normal': continue attr_str = getattr(obj, attr_name) - print attr_str + c_str + attr_name + " " + c_name + obj.Normal - print obj.Bold + obj.Underline + \ - c_name + "Bold Underline " + c + obj.Normal + print(attr_str + c_str + attr_name + " " + c_name + obj.Normal) + print(obj.Bold + obj.Underline + + c_name + "Bold Underline " + c + obj.Normal) if __name__ == '__main__': - print "=== termcap enabled ===" + print("=== termcap enabled ===") test_termcap(termcap) - print termcap.Normal - print "=== termcap disabled ===" + print(termcap.Normal) + print("=== termcap disabled ===") test_termcap(no_termcap) |