From c27e23f2e8698b2eccf68eb13b87c3641caa4edb Mon Sep 17 00:00:00 2001 From: Nathan Binkert Date: Sat, 28 Jul 2007 16:49:20 -0700 Subject: [PATCH 1/3] style: Check/Fix whitespace on SCons files --HG-- extra : convert_revision : 46e6b2dd8e1984cbab0ea24c94760794734c0f95 --- SConstruct | 46 +++++++++++++++++++++---------------------- ext/libelf/SConscript | 2 +- src/arch/SConscript | 30 ++++++++++++++-------------- tests/SConscript | 4 ++-- util/style.py | 26 ++++++++++++++++++------ 5 files changed, 61 insertions(+), 47 deletions(-) diff --git a/SConstruct b/SConstruct index a2760c4a4..1569ce182 100644 --- a/SConstruct +++ b/SConstruct @@ -86,7 +86,7 @@ except: print "Error checking current SCons version." print "SCons", ".".join(map(str,min_scons_version)), "or greater required." Exit(2) - + # The absolute path to the current directory (where this file lives). ROOT = Dir('.').abspath @@ -211,7 +211,7 @@ env = Environment(ENV = os.environ, # inherit user's environment vars ROOT = ROOT, SRCDIR = SRCDIR) -#Parse CC/CXX early so that we use the correct compiler for +#Parse CC/CXX early so that we use the correct compiler for # to test for dependencies/versions/libraries/includes if ARGUMENTS.get('CC', None): env['CC'] = ARGUMENTS.get('CC') @@ -240,14 +240,14 @@ env.Append(ENV = { 'M5_PLY' : Dir('ext/ply') }) env['GCC'] = False env['SUNCC'] = False env['ICC'] = False -env['GCC'] = subprocess.Popen(env['CXX'] + ' --version', shell=True, - stdout=subprocess.PIPE, stderr=subprocess.STDOUT, +env['GCC'] = subprocess.Popen(env['CXX'] + ' --version', shell=True, + stdout=subprocess.PIPE, stderr=subprocess.STDOUT, close_fds=True).communicate()[0].find('GCC') >= 0 -env['SUNCC'] = subprocess.Popen(env['CXX'] + ' -V', shell=True, - stdout=subprocess.PIPE, stderr=subprocess.STDOUT, +env['SUNCC'] = subprocess.Popen(env['CXX'] + ' -V', shell=True, + stdout=subprocess.PIPE, stderr=subprocess.STDOUT, close_fds=True).communicate()[0].find('Sun C++') >= 0 -env['ICC'] = subprocess.Popen(env['CXX'] + ' -V', shell=True, - stdout=subprocess.PIPE, stderr=subprocess.STDOUT, +env['ICC'] = subprocess.Popen(env['CXX'] + ' -V', shell=True, + stdout=subprocess.PIPE, stderr=subprocess.STDOUT, close_fds=True).communicate()[0].find('Intel') >= 0 if env['GCC'] + env['SUNCC'] + env['ICC'] > 1: print 'Error: How can we have two at the same time?' @@ -309,7 +309,7 @@ for scanner in env['SCANNERS']: skeys = scanner.skeys if skeys == '.i': continue - + if isinstance(skeys, (list, tuple)) and '.i' in skeys: continue @@ -528,7 +528,7 @@ def config_emitter(target, source, env): val = int(val) elif isinstance(val, str): val = '"' + val + '"' - + # Sources are option name & value (packaged in SCons Value nodes) return ([target], [Value(option), Value(val)]) @@ -585,22 +585,22 @@ def make_switching_dir(dirname, switch_headers, env): # header to generate. 'source' is a dummy variable, since we get the # list of ISAs from env['ALL_ISA_LIST']. def gen_switch_hdr(target, source, env): - fname = str(target[0]) - basename = os.path.basename(fname) - f = open(fname, 'w') - f.write('#include "arch/isa_specific.hh"\n') - cond = '#if' - for isa in all_isa_list: - f.write('%s THE_ISA == %s_ISA\n#include "%s/%s/%s"\n' - % (cond, isa.upper(), dirname, isa, basename)) - cond = '#elif' - f.write('#else\n#error "THE_ISA not set"\n#endif\n') - f.close() - return 0 + fname = str(target[0]) + basename = os.path.basename(fname) + f = open(fname, 'w') + f.write('#include "arch/isa_specific.hh"\n') + cond = '#if' + for isa in all_isa_list: + f.write('%s THE_ISA == %s_ISA\n#include "%s/%s/%s"\n' + % (cond, isa.upper(), dirname, isa, basename)) + cond = '#elif' + f.write('#else\n#error "THE_ISA not set"\n#endif\n') + f.close() + return 0 # String to print when generating header def gen_switch_hdr_string(target, source, env): - return "Generating switch header " + str(target[0]) + return "Generating switch header " + str(target[0]) # Build SCons Action object. 'varlist' specifies env vars that this # action depends on; when env['ALL_ISA_LIST'] changes these actions diff --git a/ext/libelf/SConscript b/ext/libelf/SConscript index 31e570396..99c5a4f99 100644 --- a/ext/libelf/SConscript +++ b/ext/libelf/SConscript @@ -35,7 +35,7 @@ Import('env') elf_files = [] def ElfFile(filename): elf_files.append(File(filename)) - + ElfFile('elf_begin.c') ElfFile('elf_cntl.c') ElfFile('elf_data.c') diff --git a/src/arch/SConscript b/src/arch/SConscript index 0ac25b6c7..e051c44af 100644 --- a/src/arch/SConscript +++ b/src/arch/SConscript @@ -43,23 +43,23 @@ Import('*') # List of headers to generate isa_switch_hdrs = Split(''' - arguments.hh - faults.hh - interrupts.hh - isa_traits.hh - kernel_stats.hh + arguments.hh + faults.hh + interrupts.hh + isa_traits.hh + kernel_stats.hh locked_mem.hh mmaped_ipr.hh - process.hh - predecoder.hh - regfile.hh - remote_gdb.hh - stacktrace.hh - syscallreturn.hh - tlb.hh - types.hh - utility.hh - vtophys.hh + process.hh + predecoder.hh + regfile.hh + remote_gdb.hh + stacktrace.hh + syscallreturn.hh + tlb.hh + types.hh + utility.hh + vtophys.hh ''') # Set up this directory to support switching headers diff --git a/tests/SConscript b/tests/SConscript index 24e2cad7f..472fa3f4c 100644 --- a/tests/SConscript +++ b/tests/SConscript @@ -173,7 +173,7 @@ def test_builder(env, ref_dir): '-o', cmd_stdout, '-e', cmd_stderr, base_cmd] else: cmd = [base_cmd, '>', cmd_stdout, '2>', cmd_stderr] - + env.Command([tgt('stdout'), tgt('stderr'), new_stats], [env.M5Binary, 'run.py'], ' '.join(cmd)) @@ -202,7 +202,7 @@ if env['FULL_SYSTEM']: 'tsunami-simple-timing', 'tsunami-simple-atomic-dual', 'tsunami-simple-timing-dual', - 'twosys-tsunami-simple-atomic'] + 'twosys-tsunami-simple-atomic'] if env['TARGET_ISA'] == 'sparc': configs += ['t1000-simple-atomic', 't1000-simple-timing'] diff --git a/util/style.py b/util/style.py index 2512d6920..77c08307b 100644 --- a/util/style.py +++ b/util/style.py @@ -51,14 +51,28 @@ lang_types = { 'c' : "C", 's' : "asm", 'S' : "asm", 'isa' : "isa" } -whitespace_types = ('C', 'C++', 'swig', 'python', 'asm', 'isa') -format_types = ( 'C', 'C++' ) - def file_type(filename): extension = filename.split('.') extension = len(extension) > 1 and extension[-1] return lang_types.get(extension, None) +whitespace_types = ('C', 'C++', 'swig', 'python', 'asm', 'isa') +def whitespace_file(filename): + if file_type(filename) in whitespace_types: + return True + + if filename.startswith("SCons"): + return True + + return False + +format_types = ( 'C', 'C++' ) +def format_file(filename): + if file_type(filename) in format_types: + return True + + return False + def checkwhite_line(line): match = lead.search(line) if match and match.group(1).find('\t') != -1: @@ -71,7 +85,7 @@ def checkwhite_line(line): return True def checkwhite(filename): - if file_type(filename) not in whitespace_types: + if not whitespace_file(filename) return try: @@ -101,7 +115,7 @@ def fixwhite_line(line, tabsize): return line.rstrip() + '\n' def fixwhite(filename, tabsize, fixonly=None): - if file_type(filename) not in whitespace_types: + if not whitespace_file(filename) return try: @@ -159,7 +173,7 @@ class ValidationStats(object): self.trailwhite or self.badcontrol or self.cret def validate(filename, stats, verbose, exit_code): - if file_type(filename) not in format_types: + if not format_file(filename): return def msg(lineno, line, message): From 9aed27efb39d3a842adc9e4832afe7bfed4be9e7 Mon Sep 17 00:00:00 2001 From: Nathan Binkert Date: Sat, 28 Jul 2007 16:55:51 -0700 Subject: [PATCH 2/3] style: fix stupid bugs --HG-- extra : convert_revision : ef3dcc3a160eb19a6c4fcdcd411d392aa42e4efe --- util/style.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/util/style.py b/util/style.py index 77c08307b..897617779 100644 --- a/util/style.py +++ b/util/style.py @@ -85,7 +85,7 @@ def checkwhite_line(line): return True def checkwhite(filename): - if not whitespace_file(filename) + if not whitespace_file(filename): return try: @@ -115,7 +115,7 @@ def fixwhite_line(line, tabsize): return line.rstrip() + '\n' def fixwhite(filename, tabsize, fixonly=None): - if not whitespace_file(filename) + if not whitespace_file(filename): return try: @@ -390,9 +390,10 @@ if __name__ == '__main__': fixwhite(filename, tabsize) elif command == 'chkwhite': for filename in args: - line = checkwhite(filename) - if line: - print 'invalid whitespace at %s:%d' % (filename, line) + for line,num in checkwhite(filename): + print 'invalid whitespace: %s:%d' % (filename, num) + if verbose: + print '>>%s<<' % line[:-1] elif command == 'chkformat': stats = ValidationStats() for filename in files: