From: Gabe Black Date: Tue, 6 Mar 2018 06:51:34 +0000 (-0800) Subject: config: Switch from the print statement to the print function. X-Git-Tag: v19.0.0.0~2255 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=659900aedd1b4fc69b61b5dbaee39dba26848637;p=gem5.git config: Switch from the print statement to the print function. Change-Id: I701fa58cfcfa2767ce9ad24da314a053889878d0 Reviewed-on: https://gem5-review.googlesource.com/8762 Reviewed-by: Andreas Sandberg Reviewed-by: Jason Lowe-Power Reviewed-by: Anthony Gutierrez Maintainer: Gabe Black --- diff --git a/configs/common/Benchmarks.py b/configs/common/Benchmarks.py index dec1e3e84..b7d10b563 100644 --- a/configs/common/Benchmarks.py +++ b/configs/common/Benchmarks.py @@ -26,6 +26,8 @@ # # Authors: Ali Saidi +from __future__ import print_function + from SysPaths import script, disk, binary from os import environ as env from m5.defines import buildEnv @@ -63,8 +65,8 @@ class SysConfig: elif buildEnv['TARGET_ISA'] == 'sparc': return env.get('LINUX_IMAGE', disk('disk.s10hw2')) else: - print "Don't know what default disk image to use for %s ISA" % \ - buildEnv['TARGET_ISA'] + print("Don't know what default disk image to use for %s ISA" % + buildEnv['TARGET_ISA']) exit(1) def rootdev(self): diff --git a/configs/common/CacheConfig.py b/configs/common/CacheConfig.py index a0a18a3aa..3fa3676b0 100644 --- a/configs/common/CacheConfig.py +++ b/configs/common/CacheConfig.py @@ -41,13 +41,15 @@ # Configure the M5 cache hierarchy config in one place # +from __future__ import print_function + import m5 from m5.objects import * from Caches import * def config_cache(options, system): if options.external_memory_system and (options.caches or options.l2cache): - print "External caches and internal caches are exclusive options.\n" + print("External caches and internal caches are exclusive options.\n") sys.exit(1) if options.external_memory_system: @@ -57,7 +59,7 @@ def config_cache(options, system): try: from cores.arm.O3_ARM_v7a import * except: - print "O3_ARM_v7a_3 is unavailable. Did you compile the O3 model?" + print("O3_ARM_v7a_3 is unavailable. Did you compile the O3 model?") sys.exit(1) dcache_class, icache_class, l2_cache_class, walk_cache_class = \ diff --git a/configs/common/CpuConfig.py b/configs/common/CpuConfig.py index 327c4318d..3f193ae60 100644 --- a/configs/common/CpuConfig.py +++ b/configs/common/CpuConfig.py @@ -35,6 +35,8 @@ # # Authors: Andreas Sandberg +from __future__ import print_function + from m5 import fatal import m5.objects import inspect @@ -64,23 +66,23 @@ def get(name): cpu_class = _cpu_classes[name] return cpu_class except KeyError: - print "%s is not a valid CPU model." % (name,) + print("%s is not a valid CPU model." % (name,)) sys.exit(1) def print_cpu_list(): """Print a list of available CPU classes including their aliases.""" - print "Available CPU classes:" + print("Available CPU classes:") doc_wrapper = TextWrapper(initial_indent="\t\t", subsequent_indent="\t\t") for name, cls in _cpu_classes.items(): - print "\t%s" % name + print("\t%s" % name) # Try to extract the class documentation from the class help # string. doc = inspect.getdoc(cls) if doc: for line in doc_wrapper.wrap(doc): - print line + print(line) def cpu_names(): """Return a list of valid CPU names.""" diff --git a/configs/common/FSConfig.py b/configs/common/FSConfig.py index fc8765b6c..42cfafed4 100644 --- a/configs/common/FSConfig.py +++ b/configs/common/FSConfig.py @@ -39,6 +39,8 @@ # # Authors: Kevin Lim +from __future__ import print_function + from m5.objects import * from Benchmarks import * from m5.util import * @@ -259,7 +261,8 @@ def makeArmSystem(mem_mode, machine_type, num_cpus=1, mdesc=None, if isinstance(self.realview, VExpress_EMM64): if os.path.split(mdesc.disk())[-1] == 'linux-aarch32-ael.img': - print "Selected 64-bit ARM architecture, updating default disk image..." + print("Selected 64-bit ARM architecture, updating default " + "disk image...") mdesc.diskname = 'linaro-minimal-aarch64.img' diff --git a/configs/common/GPUTLBConfig.py b/configs/common/GPUTLBConfig.py index b7ea6dcf1..00746ce31 100644 --- a/configs/common/GPUTLBConfig.py +++ b/configs/common/GPUTLBConfig.py @@ -33,6 +33,8 @@ # Author: Lisa Hsu # +from __future__ import print_function + # Configure the TLB hierarchy # Places which would probably need to be modified if you # want a different hierarchy are specified by a ' @@ -88,7 +90,7 @@ def config_tlb_hierarchy(options, system, shader_idx): elif options.TLB_config == "2CU": num_TLBs = n_cu >> 1 else: - print "Bad option for TLB Configuration." + print("Bad option for TLB Configuration.") sys.exit(1) #---------------------------------------------------------------------------------------- diff --git a/configs/common/MemConfig.py b/configs/common/MemConfig.py index 475bbeb32..36035800f 100644 --- a/configs/common/MemConfig.py +++ b/configs/common/MemConfig.py @@ -36,6 +36,8 @@ # Authors: Andreas Sandberg # Andreas Hansson +from __future__ import print_function + import m5.objects import inspect import sys @@ -64,23 +66,23 @@ def get(name): mem_class = _mem_classes[name] return mem_class except KeyError: - print "%s is not a valid memory controller." % (name,) + print("%s is not a valid memory controller." % (name,)) sys.exit(1) def print_mem_list(): """Print a list of available memory classes.""" - print "Available memory classes:" + print("Available memory classes:") doc_wrapper = TextWrapper(initial_indent="\t\t", subsequent_indent="\t\t") for name, cls in _mem_classes.items(): - print "\t%s" % name + print("\t%s" % name) # Try to extract the class documentation from the class help # string. doc = inspect.getdoc(cls) if doc: for line in doc_wrapper.wrap(doc): - print line + print(line) def mem_names(): """Return a list of valid memory names.""" @@ -223,8 +225,8 @@ def config_mem(options, system): if opt_elastic_trace_en: mem_ctrl.latency = '1ns' - print "For elastic trace, over-riding Simple Memory " \ - "latency to 1ns." + print("For elastic trace, over-riding Simple Memory " + "latency to 1ns.") mem_ctrls.append(mem_ctrl) diff --git a/configs/common/PlatformConfig.py b/configs/common/PlatformConfig.py index e2589c058..34325f315 100644 --- a/configs/common/PlatformConfig.py +++ b/configs/common/PlatformConfig.py @@ -38,6 +38,8 @@ # Authors: Andreas Sandberg # Pierre-Yves Peneau +from __future__ import print_function + import m5.objects import inspect import sys @@ -83,22 +85,22 @@ def get(name): def print_platform_list(): """Print a list of available Platform classes including their aliases.""" - print "Available Platform classes:" + print("Available Platform classes:") doc_wrapper = TextWrapper(initial_indent="\t\t", subsequent_indent="\t\t") for name, cls in _platform_classes.items(): - print "\t%s" % name + print("\t%s" % name) # Try to extract the class documentation from the class help # string. doc = inspect.getdoc(cls) if doc: for line in doc_wrapper.wrap(doc): - print line + print(line) if _platform_aliases: - print "\Platform aliases:" + print("\Platform aliases:") for alias, target in _platform_aliases.items(): - print "\t%s => %s" % (alias, target) + print("\t%s => %s" % (alias, target)) def platform_names(): """Return a list of valid Platform names.""" diff --git a/configs/common/Simulation.py b/configs/common/Simulation.py index 7c949b972..6df90cb6c 100644 --- a/configs/common/Simulation.py +++ b/configs/common/Simulation.py @@ -39,6 +39,8 @@ # # Authors: Lisa Hsu +from __future__ import print_function + import sys from os import getcwd from os.path import join as joinpath @@ -170,7 +172,7 @@ def findCptDir(options, cptdir, testsys): weight_inst = float(match.group(3)) interval_length = int(match.group(4)) warmup_length = int(match.group(5)) - print "Resuming from", checkpoint_dir + print("Resuming from", checkpoint_dir) simpoint_start_insts = [] simpoint_start_insts.append(warmup_length) simpoint_start_insts.append(warmup_length + interval_length) @@ -178,9 +180,9 @@ def findCptDir(options, cptdir, testsys): if testsys.switch_cpus != None: testsys.switch_cpus[0].simpoint_start_insts = simpoint_start_insts - print "Resuming from SimPoint", - print "#%d, start_inst:%d, weight:%f, interval:%d, warmup:%d" % \ - (index, start_inst, weight_inst, interval_length, warmup_length) + print("Resuming from SimPoint", end=' ') + print("#%d, start_inst:%d, weight:%f, interval:%d, warmup:%d" % + (index, start_inst, weight_inst, interval_length, warmup_length)) else: dirs = listdir(cptdir) @@ -210,10 +212,10 @@ def scriptCheckpoints(options, maxtick, cptdir): if options.checkpoint_restore != None: checkpoint_inst += options.checkpoint_restore - print "Creating checkpoint at inst:%d" % (checkpoint_inst) + print("Creating checkpoint at inst:%d" % (checkpoint_inst)) exit_event = m5.simulate() exit_cause = exit_event.getCause() - print "exit cause = %s" % exit_cause + print("exit cause = %s" % exit_cause) # skip checkpoint instructions should they exist while exit_cause == "checkpoint": @@ -223,7 +225,7 @@ def scriptCheckpoints(options, maxtick, cptdir): if exit_cause == "a thread reached the max instruction count": m5.checkpoint(joinpath(cptdir, "cpt.%s.%d" % \ (options.bench, checkpoint_inst))) - print "Checkpoint written." + print("Checkpoint written.") else: when, period = options.take_checkpoints.split(",", 1) @@ -288,10 +290,10 @@ def parseSimpointAnalysisFile(options, testsys): simpoint_filename, weight_filename, interval_length, warmup_length = \ options.take_simpoint_checkpoints.split(",", 3) - print "simpoint analysis file:", simpoint_filename - print "simpoint weight file:", weight_filename - print "interval length:", interval_length - print "warmup length:", warmup_length + print("simpoint analysis file:", simpoint_filename) + print("simpoint weight file:", weight_filename) + print("interval length:", interval_length) + print("warmup length:", warmup_length) interval_length = int(interval_length) warmup_length = int(warmup_length) @@ -339,11 +341,11 @@ def parseSimpointAnalysisFile(options, testsys): simpoints.sort(key=lambda obj: obj[2]) for s in simpoints: interval, weight, starting_inst_count, actual_warmup_length = s - print str(interval), str(weight), starting_inst_count, \ - actual_warmup_length + print(str(interval), str(weight), starting_inst_count, + actual_warmup_length) simpoint_start_insts.append(starting_inst_count) - print "Total # of simpoints:", len(simpoints) + print("Total # of simpoints:", len(simpoints)) testsys.cpu[0].simpoint_start_insts = simpoint_start_insts return (simpoints, interval_length) @@ -364,7 +366,7 @@ def takeSimpointCheckpoints(simpoints, interval_length, cptdir): # skip checkpoint instructions should they exist while exit_event.getCause() == "checkpoint": - print "Found 'checkpoint' exit event...ignoring..." + print("Found 'checkpoint' exit event...ignoring...") exit_event = m5.simulate() exit_cause = exit_event.getCause() @@ -375,16 +377,16 @@ def takeSimpointCheckpoints(simpoints, interval_length, cptdir): "cpt.simpoint_%02d_inst_%d_weight_%f_interval_%d_warmup_%d" % (index, starting_inst_count, weight, interval_length, actual_warmup_length))) - print "Checkpoint #%d written. start inst:%d weight:%f" % \ - (num_checkpoints, starting_inst_count, weight) + print("Checkpoint #%d written. start inst:%d weight:%f" % + (num_checkpoints, starting_inst_count, weight)) num_checkpoints += 1 last_chkpnt_inst_count = starting_inst_count else: break index += 1 - print 'Exiting @ tick %i because %s' % (m5.curTick(), exit_cause) - print "%d checkpoints taken" % num_checkpoints + print('Exiting @ tick %i because %s' % (m5.curTick(), exit_cause)) + print("%d checkpoints taken" % num_checkpoints) sys.exit(code) def restoreSimpointCheckpoint(): @@ -392,7 +394,7 @@ def restoreSimpointCheckpoint(): exit_cause = exit_event.getCause() if exit_cause == "simpoint starting point found": - print "Warmed up! Dumping and resetting stats!" + print("Warmed up! Dumping and resetting stats!") m5.stats.dump() m5.stats.reset() @@ -400,14 +402,14 @@ def restoreSimpointCheckpoint(): exit_cause = exit_event.getCause() if exit_cause == "simpoint starting point found": - print "Done running SimPoint!" + print("Done running SimPoint!") sys.exit(exit_event.getCode()) - print 'Exiting @ tick %i because %s' % (m5.curTick(), exit_cause) + print('Exiting @ tick %i because %s' % (m5.curTick(), exit_cause)) sys.exit(exit_event.getCode()) def repeatSwitch(testsys, repeat_switch_cpu_list, maxtick, switch_freq): - print "starting switch loop" + print("starting switch loop") while True: exit_event = m5.simulate(switch_freq) exit_cause = exit_event.getCause() @@ -489,10 +491,10 @@ def run(options, root, testsys, cpu_class): switch_class = getCPUClass(options.cpu_type)[0] if switch_class.require_caches() and \ not options.caches: - print "%s: Must be used with caches" % str(switch_class) + print("%s: Must be used with caches" % str(switch_class)) sys.exit(1) if not switch_class.support_take_over(): - print "%s: CPU switching not supported" % str(switch_class) + print("%s: CPU switching not supported" % str(switch_class)) sys.exit(1) repeat_switch_cpus = [switch_class(switched_out=True, \ @@ -641,32 +643,32 @@ def run(options, root, testsys, cpu_class): if options.standard_switch or cpu_class: if options.standard_switch: - print "Switch at instruction count:%s" % \ - str(testsys.cpu[0].max_insts_any_thread) + print("Switch at instruction count:%s" % + str(testsys.cpu[0].max_insts_any_thread)) exit_event = m5.simulate() elif cpu_class and options.fast_forward: - print "Switch at instruction count:%s" % \ - str(testsys.cpu[0].max_insts_any_thread) + print("Switch at instruction count:%s" % + str(testsys.cpu[0].max_insts_any_thread)) exit_event = m5.simulate() else: - print "Switch at curTick count:%s" % str(10000) + print("Switch at curTick count:%s" % str(10000)) exit_event = m5.simulate(10000) - print "Switched CPUS @ tick %s" % (m5.curTick()) + print("Switched CPUS @ tick %s" % (m5.curTick())) m5.switchCpus(testsys, switch_cpu_list) if options.standard_switch: - print "Switch at instruction count:%d" % \ - (testsys.switch_cpus[0].max_insts_any_thread) + print("Switch at instruction count:%d" % + (testsys.switch_cpus[0].max_insts_any_thread)) #warmup instruction count may have already been set if options.warmup_insts: exit_event = m5.simulate() else: exit_event = m5.simulate(options.standard_switch) - print "Switching CPUS @ tick %s" % (m5.curTick()) - print "Simulation ends instruction count:%d" % \ - (testsys.switch_cpus_1[0].max_insts_any_thread) + print("Switching CPUS @ tick %s" % (m5.curTick())) + print("Simulation ends instruction count:%d" % + (testsys.switch_cpus_1[0].max_insts_any_thread)) m5.switchCpus(testsys, switch_cpu_list1) # If we're taking and restoring checkpoints, use checkpoint_dir @@ -699,7 +701,7 @@ def run(options, root, testsys, cpu_class): else: if options.fast_forward: m5.stats.reset() - print "**** REAL SIMULATION ****" + print("**** REAL SIMULATION ****") # If checkpoints are being taken, then the checkpoint instruction # will occur in the benchmark code it self. @@ -709,7 +711,8 @@ def run(options, root, testsys, cpu_class): else: exit_event = benchCheckpoints(options, maxtick, cptdir) - print 'Exiting @ tick %i because %s' % (m5.curTick(), exit_event.getCause()) + print('Exiting @ tick %i because %s' % + (m5.curTick(), exit_event.getCause())) if options.checkpoint_at_end: m5.checkpoint(joinpath(cptdir, "cpt.%d")) diff --git a/configs/common/cores/arm/HPI.py b/configs/common/cores/arm/HPI.py index 03bad24c6..a6f77af7f 100644 --- a/configs/common/cores/arm/HPI.py +++ b/configs/common/cores/arm/HPI.py @@ -45,6 +45,8 @@ at: http://www.arm.com/ResearchEnablement/SystemModeling """ +from __future__ import print_function + from m5.objects import * # Simple function to allow a string of [01x_] to be converted into a @@ -71,7 +73,7 @@ def make_implicant(implicant_string): elif char == 'x': pass else: - print "Can't parse implicant character", char + print("Can't parse implicant character", char) return (ret_mask, ret_match) @@ -133,7 +135,7 @@ def ref(name): ret = TimingExprRef() ret.index = env[name] else: - print "Invalid expression name", name + print("Invalid expression name", name) ret = TimingExprNull() return ret return body diff --git a/configs/common/cpu2000.py b/configs/common/cpu2000.py index 3d01fe9da..da87507d9 100644 --- a/configs/common/cpu2000.py +++ b/configs/common/cpu2000.py @@ -26,6 +26,8 @@ # # Authors: Nathan Binkert +from __future__ import print_function + import os import sys from os.path import basename, exists, join as joinpath, normpath @@ -747,8 +749,8 @@ if __name__ == '__main__': from pprint import pprint for bench in all: for input_set in 'ref', 'test', 'train': - print 'class: %s' % bench.__name__ + print('class: %s' % bench.__name__) x = bench('alpha', 'tru64', input_set) - print '%s: %s' % (x, input_set) + print('%s: %s' % (x, input_set)) pprint(x.makeProcessArgs()) - print + print() diff --git a/configs/dram/lat_mem_rd.py b/configs/dram/lat_mem_rd.py index dc0cfcbb8..dc80bd287 100644 --- a/configs/dram/lat_mem_rd.py +++ b/configs/dram/lat_mem_rd.py @@ -35,6 +35,8 @@ # # Authors: Andreas Hansson +from __future__ import print_function + import gzip import optparse import os @@ -60,22 +62,22 @@ import protolib try: import packet_pb2 except: - print "Did not find packet proto definitions, attempting to generate" + print("Did not find packet proto definitions, attempting to generate") from subprocess import call error = call(['protoc', '--python_out=configs/dram', '--proto_path=src/proto', 'src/proto/packet.proto']) if not error: - print "Generated packet proto definitions" + print("Generated packet proto definitions") try: import google.protobuf except: - print "Please install the Python protobuf module" + print("Please install the Python protobuf module") exit(-1) import packet_pb2 else: - print "Failed to import packet proto definitions" + print("Failed to import packet proto definitions") exit(-1) parser = optparse.OptionParser() @@ -92,7 +94,7 @@ parser.add_option("--reuse-trace", action="store_true", (options, args) = parser.parse_args() if args: - print "Error: script doesn't take any positional arguments" + print("Error: script doesn't take any positional arguments") sys.exit(1) # start by creating the system itself, using a multi-layer 2.0 GHz @@ -171,7 +173,7 @@ def create_trace(filename, max_addr, burst_size, itt): try: proto_out = gzip.open(filename, 'wb') except IOError: - print "Failed to open ", filename, " for writing" + print("Failed to open ", filename, " for writing") exit(-1) # write the magic number in 4-byte Little Endian, similar to what @@ -208,7 +210,7 @@ def create_trace(filename, max_addr, burst_size, itt): proto_out.close() # this will take a while, so keep the user informed -print "Generating traces, please wait..." +print("Generating traces, please wait...") nxt_range = 0 nxt_state = 0 @@ -304,6 +306,6 @@ m5.instantiate() m5.simulate(nxt_state * period) # print all we need to make sense of the stats output -print "lat_mem_rd with %d iterations, ranges:" % iterations +print("lat_mem_rd with %d iterations, ranges:" % iterations) for r in ranges: - print r + print(r) diff --git a/configs/dram/low_power_sweep.py b/configs/dram/low_power_sweep.py index 9adfcaff0..2aa64906f 100644 --- a/configs/dram/low_power_sweep.py +++ b/configs/dram/low_power_sweep.py @@ -36,6 +36,8 @@ # Authors: Radhika Jagtap # Andreas Hansson +from __future__ import print_function + import argparse import m5 @@ -239,13 +241,13 @@ m5.instantiate() # Simulate for exactly as long as it takes to go through all the states # This is why sim exists. m5.simulate(nxt_state * period + idle_period) -print "--- Done DRAM low power sweep ---" -print "Fixed params - " -print "\tburst: %d, banks: %d, max stride: %d, itt min: %s ns" % \ - (burst_size, nbr_banks, max_stride, itt_min) -print "Swept params - " -print "\titt max multiples input:", itt_max_multiples -print "\titt max values", itt_max_values -print "\tbank utilization values", bank_util_values -print "\tstride values:", stride_values -print "Traffic gen config file:", cfg_file_name +print("--- Done DRAM low power sweep ---") +print("Fixed params - ") +print("\tburst: %d, banks: %d, max stride: %d, itt min: %s ns" % \ + (burst_size, nbr_banks, max_stride, itt_min)) +print("Swept params - ") +print("\titt max multiples input:", itt_max_multiples) +print("\titt max values", itt_max_values) +print("\tbank utilization values", bank_util_values) +print("\tstride values:", stride_values) +print("Traffic gen config file:", cfg_file_name) diff --git a/configs/dram/sweep.py b/configs/dram/sweep.py index 32cf00345..8380f74e3 100644 --- a/configs/dram/sweep.py +++ b/configs/dram/sweep.py @@ -35,6 +35,8 @@ # # Authors: Andreas Hansson +from __future__ import print_function + import optparse import m5 @@ -75,7 +77,7 @@ parser.add_option("--addr_map", type="int", default=1, (options, args) = parser.parse_args() if args: - print "Error: script doesn't take any positional arguments" + print("Error: script doesn't take any positional arguments") sys.exit(1) # at the moment we stay with the default open-adaptive page policy, @@ -204,5 +206,5 @@ root.system.mem_mode = 'timing' m5.instantiate() m5.simulate(nxt_state * period) -print "DRAM sweep with burst: %d, banks: %d, max stride: %d" % \ - (burst_size, nbr_banks, max_stride) +print("DRAM sweep with burst: %d, banks: %d, max stride: %d" % + (burst_size, nbr_banks, max_stride)) diff --git a/configs/example/apu_se.py b/configs/example/apu_se.py index 012fdd36b..da6305ff9 100644 --- a/configs/example/apu_se.py +++ b/configs/example/apu_se.py @@ -33,6 +33,8 @@ # Author: Sooraj Puthoor # +from __future__ import print_function + import optparse, os, re import math import glob @@ -385,7 +387,7 @@ else: kernel_path = os.path.dirname(executable) kernel_files = glob.glob(os.path.join(kernel_path, '*.asm')) if kernel_files: - print "Using GPU kernel code file(s)", ",".join(kernel_files) + print("Using GPU kernel code file(s)", ",".join(kernel_files)) else: fatal("Can't locate kernel code (.asm) in " + kernel_path) @@ -489,7 +491,7 @@ for i in xrange(n_cu): for i in xrange(n_cu): if i > 0 and not i % options.cu_per_sqc: - print "incrementing idx on ", i + print("incrementing idx on ", i) gpu_port_idx += 1 system.cpu[shader_idx].CUs[i].sqc_port = \ system.ruby._cpu_ports[gpu_port_idx].slave @@ -552,15 +554,14 @@ m5.instantiate(checkpoint_dir) host_cpu.workload[0].map(0x10000000, 0x200000000, 4096) if options.fast_forward: - print "Switch at instruction count: %d" % \ - cpu_list[0].max_insts_any_thread + print("Switch at instruction count: %d" % cpu_list[0].max_insts_any_thread) exit_event = m5.simulate(maxtick) if options.fast_forward: if exit_event.getCause() == "a thread reached the max instruction count": m5.switchCpus(system, switch_cpu_list) - print "Switched CPUS @ tick %s" % (m5.curTick()) + print("Switched CPUS @ tick %s" % (m5.curTick())) m5.stats.reset() exit_event = m5.simulate(maxtick - m5.curTick()) elif options.fast_forward_pseudo_op: @@ -568,15 +569,15 @@ elif options.fast_forward_pseudo_op: # If we are switching *to* kvm, then the current stats are meaningful # Note that we don't do any warmup by default if type(switch_cpu_list[0][0]) == FutureCpuClass: - print "Dumping stats..." + print("Dumping stats...") m5.stats.dump() m5.switchCpus(system, switch_cpu_list) - print "Switched CPUS @ tick %s" % (m5.curTick()) + print("Switched CPUS @ tick %s" % (m5.curTick())) m5.stats.reset() # This lets us switch back and forth without keeping a counter switch_cpu_list = [(x[1], x[0]) for x in switch_cpu_list] exit_event = m5.simulate(maxtick - m5.curTick()) -print "Ticks:", m5.curTick() -print 'Exiting because ', exit_event.getCause() +print("Ticks:", m5.curTick()) +print('Exiting because ', exit_event.getCause()) sys.exit(exit_event.getCode()) diff --git a/configs/example/arm/fs_bigLITTLE.py b/configs/example/arm/fs_bigLITTLE.py index 7e0555c00..7d66c03a6 100644 --- a/configs/example/arm/fs_bigLITTLE.py +++ b/configs/example/arm/fs_bigLITTLE.py @@ -40,6 +40,8 @@ # a generic ARM bigLITTLE system. +from __future__ import print_function + import argparse import os import sys @@ -311,12 +313,12 @@ def run(checkpoint_dir=m5.options.outdir): event = m5.simulate() exit_msg = event.getCause() if exit_msg == "checkpoint": - print "Dropping checkpoint at tick %d" % m5.curTick() + print("Dropping checkpoint at tick %d" % m5.curTick()) cpt_dir = os.path.join(checkpoint_dir, "cpt.%d" % m5.curTick()) m5.checkpoint(cpt_dir) - print "Checkpoint done." + print("Checkpoint done.") else: - print exit_msg, " @ ", m5.curTick() + print(exit_msg, " @ ", m5.curTick()) break sys.exit(event.getCode()) diff --git a/configs/example/arm/fs_power.py b/configs/example/arm/fs_power.py index 14dbae04a..b27455f13 100644 --- a/configs/example/arm/fs_power.py +++ b/configs/example/arm/fs_power.py @@ -39,6 +39,8 @@ # This configuration file extends the example ARM big.LITTLE(tm) # with example power models. +from __future__ import print_function + import argparse import os @@ -90,11 +92,11 @@ def main(): bL.instantiate(options) - print "*" * 70 - print "WARNING: The power numbers generated by this script are " \ - "examples. They are not representative of any particular " \ - "implementation or process." - print "*" * 70 + print("*" * 70) + print("WARNING: The power numbers generated by this script are " + "examples. They are not representative of any particular " + "implementation or process.") + print("*" * 70) # Dumping stats periodically m5.stats.periodicStatDump(m5.ticks.fromSeconds(0.1E-3)) diff --git a/configs/example/arm/starter_fs.py b/configs/example/arm/starter_fs.py index 2ca1cb800..a1997682e 100644 --- a/configs/example/arm/starter_fs.py +++ b/configs/example/arm/starter_fs.py @@ -43,6 +43,8 @@ Research Starter Kit on System Modeling. More information can be found at: http://www.arm.com/ResearchEnablement/SystemModeling """ +from __future__ import print_function + import os import m5 from m5.util import addToPath @@ -97,7 +99,7 @@ def create(args): dtb_file = args.dtb if args.script and not os.path.isfile(args.script): - print "Error: Bootscript %s does not exist" % args.script + print("Error: Bootscript %s does not exist" % args.script) sys.exit(1) cpu_class = cpu_types[args.cpu][0] @@ -175,18 +177,18 @@ def create(args): def run(args): cptdir = m5.options.outdir if args.checkpoint: - print "Checkpoint directory: %s" % cptdir + print("Checkpoint directory: %s" % cptdir) while True: event = m5.simulate() exit_msg = event.getCause() if exit_msg == "checkpoint": - print "Dropping checkpoint at tick %d" % m5.curTick() + print("Dropping checkpoint at tick %d" % m5.curTick()) cpt_dir = os.path.join(m5.options.outdir, "cpt.%d" % m5.curTick()) m5.checkpoint(os.path.join(cpt_dir)) - print "Checkpoint done." + print("Checkpoint done.") else: - print exit_msg, " @ ", m5.curTick() + print(exit_msg, " @ ", m5.curTick()) break sys.exit(event.getCode()) diff --git a/configs/example/arm/starter_se.py b/configs/example/arm/starter_se.py index 902e6e49a..ef218d978 100644 --- a/configs/example/arm/starter_se.py +++ b/configs/example/arm/starter_se.py @@ -43,6 +43,8 @@ Research Starter Kit on System Modeling. More information can be found at: http://www.arm.com/ResearchEnablement/SystemModeling """ +from __future__ import print_function + import os import m5 from m5.util import addToPath @@ -145,7 +147,7 @@ def get_processes(cmd): process = Process(pid=100 + idx, cwd=cwd, cmd=argv, executable=argv[0]) - print "info: %d. command and arguments: %s" % (idx + 1, process.cmd) + print("info: %d. command and arguments: %s" % (idx + 1, process.cmd)) multiprocesses.append(process) return multiprocesses @@ -168,8 +170,8 @@ def create(args): # that we can pass to gem5. processes = get_processes(args.commands_to_run) if len(processes) != args.num_cores: - print "Error: Cannot map %d command(s) onto %d " \ - "CPU(s)" % (len(processes), args.num_cores) + print("Error: Cannot map %d command(s) onto %d CPU(s)" % + (len(processes), args.num_cores)) sys.exit(1) # Assign one workload to each CPU @@ -225,7 +227,7 @@ def main(): # Print the reason for the simulation exit. Some exit codes are # requests for service (e.g., checkpoints) from the simulation # script. We'll just ignore them here and exit. - print event.getCause(), " @ ", m5.curTick() + print(event.getCause(), " @ ", m5.curTick()) sys.exit(event.getCode()) diff --git a/configs/example/etrace_replay.py b/configs/example/etrace_replay.py index f8586d62f..e64871af7 100644 --- a/configs/example/etrace_replay.py +++ b/configs/example/etrace_replay.py @@ -37,6 +37,8 @@ # Basic elastic traces replay script that configures a Trace CPU +from __future__ import print_function + import optparse from m5.util import addToPath, fatal @@ -53,14 +55,14 @@ parser = optparse.OptionParser() Options.addCommonOptions(parser) if '--ruby' in sys.argv: - print "This script does not support Ruby configuration, mainly"\ - " because Trace CPU has been tested only with classic memory system" + print("This script does not support Ruby configuration, mainly" + " because Trace CPU has been tested only with classic memory system") sys.exit(1) (options, args) = parser.parse_args() if args: - print "Error: script doesn't take any positional arguments" + print("Error: script doesn't take any positional arguments") sys.exit(1) numThreads = 1 diff --git a/configs/example/fs.py b/configs/example/fs.py index f7115eb48..0f87e2b3a 100644 --- a/configs/example/fs.py +++ b/configs/example/fs.py @@ -41,6 +41,8 @@ # Authors: Ali Saidi # Brad Beckmann +from __future__ import print_function + import optparse import sys @@ -74,8 +76,8 @@ def is_kvm_cpu(cpu_class): def cmd_line_template(): if options.command_line and options.command_line_file: - print "Error: --command-line and --command-line-file are " \ - "mutually exclusive" + print("Error: --command-line and --command-line-file are " + "mutually exclusive") sys.exit(1) if options.command_line: return options.command_line @@ -310,7 +312,7 @@ if '--ruby' in sys.argv: (options, args) = parser.parse_args() if args: - print "Error: script doesn't take any positional arguments" + print("Error: script doesn't take any positional arguments") sys.exit(1) # system under test can be any CPU @@ -323,8 +325,8 @@ if options.benchmark: try: bm = Benchmarks[options.benchmark] except KeyError: - print "Error benchmark %s has not been defined." % options.benchmark - print "Valid benchmarks are: %s" % DefinedBenchmarks + print("Error benchmark %s has not been defined." % options.benchmark) + print("Valid benchmarks are: %s" % DefinedBenchmarks) sys.exit(1) else: if options.dual: @@ -357,7 +359,7 @@ elif len(bm) == 1 and options.dist: elif len(bm) == 1: root = Root(full_system=True, system=test_sys) else: - print "Error I don't know how to create more than 2 systems." + print("Error I don't know how to create more than 2 systems.") sys.exit(1) if options.timesync: diff --git a/configs/example/garnet_synth_traffic.py b/configs/example/garnet_synth_traffic.py index 0cb1fae9f..92fb3a047 100644 --- a/configs/example/garnet_synth_traffic.py +++ b/configs/example/garnet_synth_traffic.py @@ -26,6 +26,8 @@ # # Author: Tushar Krishna +from __future__ import print_function + import m5 from m5.objects import * from m5.defines import buildEnv @@ -90,14 +92,13 @@ execfile(os.path.join(config_root, "common", "Options.py")) (options, args) = parser.parse_args() if args: - print "Error: script doesn't take any positional arguments" + print("Error: script doesn't take any positional arguments") sys.exit(1) if options.inj_vnet > 2: - print "Error: Injection vnet %d should be 0 (1-flit), 1 (1-flit) \ - or 2 (5-flit) or -1 (random)"\ - % (options.inj_vnet) + print("Error: Injection vnet %d should be 0 (1-flit), 1 (1-flit) " + "or 2 (5-flit) or -1 (random)" % (options.inj_vnet)) sys.exit(1) @@ -153,4 +154,4 @@ m5.instantiate() # simulate until program terminates exit_event = m5.simulate(options.abs_max_tick) -print 'Exiting @ tick', m5.curTick(), 'because', exit_event.getCause() +print('Exiting @ tick', m5.curTick(), 'because', exit_event.getCause()) diff --git a/configs/example/hmctest.py b/configs/example/hmctest.py index 9ed3ef45d..c370d0a84 100644 --- a/configs/example/hmctest.py +++ b/configs/example/hmctest.py @@ -1,3 +1,5 @@ +from __future__ import print_function + import sys import argparse import subprocess @@ -100,13 +102,13 @@ def main(): root = build_system(options) # instantiate all of the objects we've created so far m5.instantiate() - print "Beginning simulation!" + print("Beginning simulation!") event = m5.simulate(10000000000) m5.stats.dump() - print 'Exiting @ tick %i because %s (exit code is %i)' % (m5.curTick(), + print('Exiting @ tick %i because %s (exit code is %i)' % (m5.curTick(), event.getCause(), - event.getCode()) - print "Done" + event.getCode())) + print("Done") if __name__ == "__m5_main__": diff --git a/configs/example/memcheck.py b/configs/example/memcheck.py index 0bbcd2f7c..c2eed1959 100644 --- a/configs/example/memcheck.py +++ b/configs/example/memcheck.py @@ -39,6 +39,8 @@ # Authors: Ron Dreslinski # Andreas Hansson +from __future__ import print_function + import optparse import random import sys @@ -108,7 +110,7 @@ parser.add_option("--sys-clock", action="store", type="string", (options, args) = parser.parse_args() if args: - print "Error: script doesn't take any positional arguments" + print("Error: script doesn't take any positional arguments") sys.exit(1) # Start by parsing the command line options and do some basic sanity @@ -118,36 +120,36 @@ if options.random: tree_depth = random.randint(1, 4) cachespec = [random.randint(1, 3) for i in range(tree_depth)] testerspec = [random.randint(1, 3) for i in range(tree_depth + 1)] - print "Generated random tree -c", ':'.join(map(str, cachespec)), \ - "-t", ':'.join(map(str, testerspec)) + print("Generated random tree -c", ':'.join(map(str, cachespec)), + "-t", ':'.join(map(str, testerspec))) else: try: cachespec = [int(x) for x in options.caches.split(':')] testerspec = [int(x) for x in options.testers.split(':')] except: - print "Error: Unable to parse caches or testers option" + print("Error: Unable to parse caches or testers option") sys.exit(1) if len(cachespec) < 1: - print "Error: Must have at least one level of caches" + print("Error: Must have at least one level of caches") sys.exit(1) if len(cachespec) != len(testerspec) - 1: - print "Error: Testers must have one element more than caches" + print("Error: Testers must have one element more than caches") sys.exit(1) if testerspec[-1] == 0: - print "Error: Must have testers at the uppermost level" + print("Error: Must have testers at the uppermost level") sys.exit(1) for t in testerspec: if t < 0: - print "Error: Cannot have a negative number of testers" + print("Error: Cannot have a negative number of testers") sys.exit(1) for c in cachespec: if c < 1: - print "Error: Must have 1 or more caches at each level" + print("Error: Must have 1 or more caches at each level") sys.exit(1) # Determine the tester multiplier for each level as the string @@ -155,7 +157,7 @@ else: multiplier = [1] for c in cachespec: if c < 1: - print "Error: Must have at least one cache per level" + print("Error: Must have at least one cache per level") multiplier.append(multiplier[-1] * c) numtesters = 0 @@ -275,7 +277,7 @@ def make_cache_level(ncaches, prototypes, level, next_cache): cache.mem_side = xbar.slave else: if not next_cache: - print "Error: No next-level cache at top level" + print("Error: No next-level cache at top level") sys.exit(1) if ntesters > 1: @@ -315,4 +317,4 @@ m5.instantiate() # Simulate until program terminates exit_event = m5.simulate(options.maxtick) -print 'Exiting @ tick', m5.curTick(), 'because', exit_event.getCause() +print('Exiting @ tick', m5.curTick(), 'because', exit_event.getCause()) diff --git a/configs/example/memtest.py b/configs/example/memtest.py index d6f940e6b..df22609bd 100644 --- a/configs/example/memtest.py +++ b/configs/example/memtest.py @@ -39,6 +39,8 @@ # Authors: Ron Dreslinski # Andreas Hansson +from __future__ import print_function + import optparse import random import sys @@ -107,7 +109,7 @@ parser.add_option("--sys-clock", action="store", type="string", (options, args) = parser.parse_args() if args: - print "Error: script doesn't take any positional arguments" + print("Error: script doesn't take any positional arguments") sys.exit(1) # Get the total number of testers @@ -137,41 +139,41 @@ if options.random: if numtesters(cachespec, testerspec) < block_size: break - print "Generated random tree -c", ':'.join(map(str, cachespec)), \ - "-t", ':'.join(map(str, testerspec)) + print("Generated random tree -c", ':'.join(map(str, cachespec)), + "-t", ':'.join(map(str, testerspec))) else: try: cachespec = [int(x) for x in options.caches.split(':')] testerspec = [int(x) for x in options.testers.split(':')] except: - print "Error: Unable to parse caches or testers option" + print("Error: Unable to parse caches or testers option") sys.exit(1) if len(cachespec) < 1: - print "Error: Must have at least one level of caches" + print("Error: Must have at least one level of caches") sys.exit(1) if len(cachespec) != len(testerspec) - 1: - print "Error: Testers must have one element more than caches" + print("Error: Testers must have one element more than caches") sys.exit(1) if testerspec[-1] == 0: - print "Error: Must have testers at the uppermost level" + print("Error: Must have testers at the uppermost level") sys.exit(1) for t in testerspec: if t < 0: - print "Error: Cannot have a negative number of testers" + print("Error: Cannot have a negative number of testers") sys.exit(1) for c in cachespec: if c < 1: - print "Error: Must have 1 or more caches at each level" + print("Error: Must have 1 or more caches at each level") sys.exit(1) if numtesters(cachespec, testerspec) > block_size: - print "Error: Limited to %s testers because of false sharing" \ - % (block_size) + print("Error: Limited to %s testers because of false sharing" + % (block_size)) sys.exit(1) # Define a prototype L1 cache that we scale for all successive levels @@ -280,7 +282,7 @@ def make_cache_level(ncaches, prototypes, level, next_cache): cache.mem_side = xbar.slave else: if not next_cache: - print "Error: No next-level cache at top level" + print("Error: No next-level cache at top level") sys.exit(1) if ntesters > 1: @@ -318,4 +320,4 @@ m5.instantiate() # Simulate until program terminates exit_event = m5.simulate(options.maxtick) -print 'Exiting @ tick', m5.curTick(), 'because', exit_event.getCause() +print('Exiting @ tick', m5.curTick(), 'because', exit_event.getCause()) diff --git a/configs/example/read_config.py b/configs/example/read_config.py index 7569cd17d..3c17d4b9c 100644 --- a/configs/example/read_config.py +++ b/configs/example/read_config.py @@ -45,6 +45,8 @@ # between system construction and run control may allow better # debugging. +from __future__ import print_function + import argparse import ConfigParser import inspect @@ -540,5 +542,4 @@ mgr.find_all_objects() m5.instantiate(args.checkpoint_dir) exit_event = m5.simulate() -print 'Exiting @ tick %i because %s' % ( - m5.curTick(), exit_event.getCause()) +print('Exiting @ tick %i because %s' % (m5.curTick(), exit_event.getCause())) diff --git a/configs/example/ruby_direct_test.py b/configs/example/ruby_direct_test.py index 9e8c87a81..317fb47fd 100644 --- a/configs/example/ruby_direct_test.py +++ b/configs/example/ruby_direct_test.py @@ -28,6 +28,8 @@ # Authors: Ron Dreslinski # Brad Beckmann +from __future__ import print_function + import m5 from m5.objects import * from m5.defines import buildEnv @@ -65,7 +67,7 @@ Ruby.define_options(parser) (options, args) = parser.parse_args() if args: - print "Error: script doesn't take any positional arguments" + print("Error: script doesn't take any positional arguments") sys.exit(1) # @@ -83,7 +85,7 @@ elif options.test_type == "SeriesGetMixed": elif options.test_type == "Invalidate": generator = InvalidateGenerator(num_cpus = options.num_cpus) else: - print "Error: unknown direct test generator" + print("Error: unknown direct test generator") sys.exit(1) # Create the M5 system. @@ -130,4 +132,4 @@ m5.instantiate() # simulate until program terminates exit_event = m5.simulate(options.abs_max_tick) -print 'Exiting @ tick', m5.curTick(), 'because', exit_event.getCause() +print('Exiting @ tick', m5.curTick(), 'because', exit_event.getCause()) diff --git a/configs/example/ruby_gpu_random_test.py b/configs/example/ruby_gpu_random_test.py index 80aecf90e..4f71cd84a 100644 --- a/configs/example/ruby_gpu_random_test.py +++ b/configs/example/ruby_gpu_random_test.py @@ -33,6 +33,8 @@ # Author: Brad Beckmann # +from __future__ import print_function + import m5 from m5.objects import * from m5.defines import buildEnv @@ -100,7 +102,7 @@ n_cu = options.num_compute_units options.num_sqc = int((n_cu + options.cu_per_sqc - 1) / options.cu_per_sqc) if args: - print "Error: script doesn't take any positional arguments" + print("Error: script doesn't take any positional arguments") sys.exit(1) # @@ -183,4 +185,4 @@ m5.instantiate() # simulate until program terminates exit_event = m5.simulate(options.abs_max_tick) -print 'Exiting @ tick', m5.curTick(), 'because', exit_event.getCause() +print('Exiting @ tick', m5.curTick(), 'because', exit_event.getCause()) diff --git a/configs/example/ruby_mem_test.py b/configs/example/ruby_mem_test.py index 010c4a2bc..ab658f787 100644 --- a/configs/example/ruby_mem_test.py +++ b/configs/example/ruby_mem_test.py @@ -28,6 +28,8 @@ # Authors: Ron Dreslinski # Brad Beckmann +from __future__ import print_function + import m5 from m5.objects import * from m5.defines import buildEnv @@ -81,14 +83,14 @@ options.l2_assoc=2 options.l3_assoc=2 if args: - print "Error: script doesn't take any positional arguments" + print("Error: script doesn't take any positional arguments") sys.exit(1) block_size = 64 if options.num_cpus > block_size: - print "Error: Number of testers %d limited to %d because of false sharing" \ - % (options.num_cpus, block_size) + print("Error: Number of testers %d limited to %d because of false sharing" + % (options.num_cpus, block_size)) sys.exit(1) # @@ -183,4 +185,4 @@ m5.instantiate() # simulate until program terminates exit_event = m5.simulate(options.abs_max_tick) -print 'Exiting @ tick', m5.curTick(), 'because', exit_event.getCause() +print('Exiting @ tick', m5.curTick(), 'because', exit_event.getCause()) diff --git a/configs/example/ruby_random_test.py b/configs/example/ruby_random_test.py index d96905e2c..d6b53cf3e 100644 --- a/configs/example/ruby_random_test.py +++ b/configs/example/ruby_random_test.py @@ -28,6 +28,8 @@ # Authors: Ron Dreslinski # Brad Beckmann +from __future__ import print_function + import m5 from m5.objects import * from m5.defines import buildEnv @@ -75,7 +77,7 @@ options.l2_assoc=2 options.l3_assoc=2 if args: - print "Error: script doesn't take any positional arguments" + print("Error: script doesn't take any positional arguments") sys.exit(1) # @@ -156,4 +158,4 @@ m5.instantiate() # simulate until program terminates exit_event = m5.simulate(options.abs_max_tick) -print 'Exiting @ tick', m5.curTick(), 'because', exit_event.getCause() +print('Exiting @ tick', m5.curTick(), 'because', exit_event.getCause()) diff --git a/configs/example/se.py b/configs/example/se.py index 56e4753b9..99d79bc57 100644 --- a/configs/example/se.py +++ b/configs/example/se.py @@ -42,6 +42,8 @@ # # "m5 test.py" +from __future__ import print_function + import optparse import sys import os @@ -131,7 +133,7 @@ if '--ruby' in sys.argv: (options, args) = parser.parse_args() if args: - print "Error: script doesn't take any positional arguments" + print("Error: script doesn't take any positional arguments") sys.exit(1) multiprocesses = [] @@ -140,7 +142,7 @@ numThreads = 1 if options.bench: apps = options.bench.split("-") if len(apps) != options.num_cpus: - print "number of benchmarks not equal to set num_cpus!" + print("number of benchmarks not equal to set num_cpus!") sys.exit(1) for app in apps: @@ -156,13 +158,14 @@ if options.bench: app, options.spec_input)) multiprocesses.append(workload.makeProcess()) except: - print >>sys.stderr, "Unable to find workload for %s: %s" % ( - buildEnv['TARGET_ISA'], app) + print("Unable to find workload for %s: %s" % + (buildEnv['TARGET_ISA'], app), + file=sys.stderr) sys.exit(1) elif options.cmd: multiprocesses, numThreads = get_processes(options) else: - print >> sys.stderr, "No workload specified. Exiting!\n" + print("No workload specified. Exiting!\n", file=sys.stderr) sys.exit(1) diff --git a/configs/learning_gem5/part1/simple.py b/configs/learning_gem5/part1/simple.py index 31fdb0de8..5336b445b 100644 --- a/configs/learning_gem5/part1/simple.py +++ b/configs/learning_gem5/part1/simple.py @@ -37,6 +37,8 @@ IMPORTANT: If you modify this file, it's likely that the Learning gem5 book """ +from __future__ import print_function + # import the m5 (gem5) library created when gem5 is built import m5 # import all of the SimObjects @@ -102,6 +104,6 @@ root = Root(full_system = False, system = system) # instantiate all of the objects we've created above m5.instantiate() -print "Beginning simulation!" +print("Beginning simulation!") exit_event = m5.simulate() -print 'Exiting @ tick %i because %s' % (m5.curTick(), exit_event.getCause()) +print('Exiting @ tick %i because %s' % (m5.curTick(), exit_event.getCause())) diff --git a/configs/learning_gem5/part1/two_level.py b/configs/learning_gem5/part1/two_level.py index 1330d5d0c..51d51c474 100644 --- a/configs/learning_gem5/part1/two_level.py +++ b/configs/learning_gem5/part1/two_level.py @@ -40,6 +40,8 @@ IMPORTANT: If you modify this file, it's likely that the Learning gem5 book """ +from __future__ import print_function + # import the m5 (gem5) library created when gem5 is built import m5 # import all of the SimObjects @@ -146,6 +148,6 @@ root = Root(full_system = False, system = system) # instantiate all of the objects we've created above m5.instantiate() -print "Beginning simulation!" +print("Beginning simulation!") exit_event = m5.simulate() -print 'Exiting @ tick %i because %s' % (m5.curTick(), exit_event.getCause()) +print('Exiting @ tick %i because %s' % (m5.curTick(), exit_event.getCause())) diff --git a/configs/learning_gem5/part2/hello_goodbye.py b/configs/learning_gem5/part2/hello_goodbye.py index 6e82a63c7..e908ae0c3 100644 --- a/configs/learning_gem5/part2/hello_goodbye.py +++ b/configs/learning_gem5/part2/hello_goodbye.py @@ -36,6 +36,8 @@ IMPORTANT: If you modify this file, it's likely that the Learning gem5 book """ +from __future__ import print_function + # import the m5 (gem5) library created when gem5 is built import m5 # import all of the SimObjects @@ -51,6 +53,6 @@ root.hello.goodbye_object = GoodbyeObject(buffer_size='100B') # instantiate all of the objects we've created above m5.instantiate() -print "Beginning simulation!" +print("Beginning simulation!") exit_event = m5.simulate() -print 'Exiting @ tick %i because %s' % (m5.curTick(), exit_event.getCause()) +print('Exiting @ tick %i because %s' % (m5.curTick(), exit_event.getCause())) diff --git a/configs/learning_gem5/part2/run_simple.py b/configs/learning_gem5/part2/run_simple.py index 07b366aa9..1b729ae7c 100644 --- a/configs/learning_gem5/part2/run_simple.py +++ b/configs/learning_gem5/part2/run_simple.py @@ -35,6 +35,8 @@ system. Since there are no events, this "simulation" should finish immediately """ +from __future__ import print_function + # import the m5 (gem5) library created when gem5 is built import m5 # import all of the SimObjects @@ -49,6 +51,6 @@ root.hello = SimpleObject() # instantiate all of the objects we've created above m5.instantiate() -print "Beginning simulation!" +print("Beginning simulation!") exit_event = m5.simulate() -print 'Exiting @ tick %i because %s' % (m5.curTick(), exit_event.getCause()) +print('Exiting @ tick %i because %s' % (m5.curTick(), exit_event.getCause())) diff --git a/configs/learning_gem5/part2/simple_cache.py b/configs/learning_gem5/part2/simple_cache.py index a07147caf..98078df30 100644 --- a/configs/learning_gem5/part2/simple_cache.py +++ b/configs/learning_gem5/part2/simple_cache.py @@ -33,6 +33,8 @@ World application. Adds a simple cache between the CPU and the membus. This config file assumes that the x86 ISA was built. """ +from __future__ import print_function + # import the m5 (gem5) library created when gem5 is built import m5 # import all of the SimObjects @@ -96,6 +98,6 @@ root = Root(full_system = False, system = system) # instantiate all of the objects we've created above m5.instantiate() -print "Beginning simulation!" +print("Beginning simulation!") exit_event = m5.simulate() -print 'Exiting @ tick %i because %s' % (m5.curTick(), exit_event.getCause()) +print('Exiting @ tick %i because %s' % (m5.curTick(), exit_event.getCause())) diff --git a/configs/learning_gem5/part2/simple_memobj.py b/configs/learning_gem5/part2/simple_memobj.py index 8d3553dda..066bca08d 100644 --- a/configs/learning_gem5/part2/simple_memobj.py +++ b/configs/learning_gem5/part2/simple_memobj.py @@ -33,6 +33,8 @@ World application. Adds a simple memobj between the CPU and the membus. This config file assumes that the x86 ISA was built. """ +from __future__ import print_function + # import the m5 (gem5) library created when gem5 is built import m5 # import all of the SimObjects @@ -94,6 +96,6 @@ root = Root(full_system = False, system = system) # instantiate all of the objects we've created above m5.instantiate() -print "Beginning simulation!" +print("Beginning simulation!") exit_event = m5.simulate() -print 'Exiting @ tick %i because %s' % (m5.curTick(), exit_event.getCause()) +print('Exiting @ tick %i because %s' % (m5.curTick(), exit_event.getCause())) diff --git a/configs/ruby/Ruby.py b/configs/ruby/Ruby.py index 04eda5a39..9e110f84d 100644 --- a/configs/ruby/Ruby.py +++ b/configs/ruby/Ruby.py @@ -39,6 +39,8 @@ # # Authors: Brad Beckmann +from __future__ import print_function + import math import m5 from m5.objects import * @@ -151,7 +153,7 @@ def create_system(options, full_system, system, piobus = None, dma_ports = []): ruby)" % protocol) except: - print "Error: could not create sytem for ruby protocol %s" % protocol + print("Error: could not create sytem for ruby protocol %s" % protocol) raise # Create the network topology diff --git a/configs/splash2/cluster.py b/configs/splash2/cluster.py index a0423e6e3..f819bd19e 100644 --- a/configs/splash2/cluster.py +++ b/configs/splash2/cluster.py @@ -30,6 +30,8 @@ # # "m5 test.py" +from __future__ import print_function + import os import optparse import sys @@ -70,7 +72,7 @@ parser.add_option("-b", "--benchmark", (options, args) = parser.parse_args() if args: - print "Error: script doesn't take any positional arguments" + print("Error: script doesn't take any positional arguments") sys.exit(1) # -------------------- @@ -297,5 +299,5 @@ if options.maxtick: else: exit_event = m5.simulate(m5.MaxTick) -print 'Exiting @ tick', m5.curTick(), 'because', exit_event.getCause() +print('Exiting @ tick', m5.curTick(), 'because', exit_event.getCause()) diff --git a/configs/splash2/run.py b/configs/splash2/run.py index 0f374c17d..b17eb5400 100644 --- a/configs/splash2/run.py +++ b/configs/splash2/run.py @@ -29,6 +29,8 @@ # Splash2 Run Script # +from __future__ import print_function + import os import optparse import sys @@ -67,11 +69,11 @@ parser.add_option("-b", "--benchmark", (options, args) = parser.parse_args() if args: - print "Error: script doesn't take any positional arguments" + print("Error: script doesn't take any positional arguments") sys.exit(1) if not options.numcpus: - print "Specify the number of cpus with -n" + print("Specify the number of cpus with -n") sys.exit(1) # -------------------- @@ -253,9 +255,10 @@ elif options.benchmark == 'WaterNSquared': elif options.benchmark == 'WaterSpatial': root.workload = Water_spatial() else: - print >> sys.stderr, """The --benchmark environment variable was set to something improper. -Use Cholesky, FFT, LUContig, LUNoncontig, Radix, Barnes, FMM, OceanContig, -OceanNoncontig, Raytrace, WaterNSquared, or WaterSpatial""" + print("The --benchmark environment variable was set to something " + "improper. Use Cholesky, FFT, LUContig, LUNoncontig, Radix, " + "Barnes, FMM, OceanContig, OceanNoncontig, Raytrace, WaterNSquared, " + "or WaterSpatial", file=sys.stderr) sys.exit(1) # -------------------- @@ -281,5 +284,5 @@ if options.maxtick: else: exit_event = m5.simulate(m5.MaxTick) -print 'Exiting @ tick', m5.curTick(), 'because', exit_event.getCause() +print('Exiting @ tick', m5.curTick(), 'because', exit_event.getCause())