changeset bcec568e403c in /z/repo/gem5
details: http://repo.gem5.org/gem5?cmd=changeset;node=bcec568e403c
description:
style: Remove style validators
Style validators provide a subset of the style verifier functionality
and are only exposed through the "hg m5format" command. This
functionality seems to be both redundant and unused.
Signed-off-by: Andreas Sandberg <[email protected]>
diffstat:
util/hgstyle.py | 101 +---------------------
util/style/validators.py | 212 -----------------------------------------------
2 files changed, 3 insertions(+), 310 deletions(-)
diffs (truncated from 355 to 300 lines):
diff -r 72b399971cbc -r bcec568e403c util/hgstyle.py
--- a/util/hgstyle.py Wed Mar 30 15:31:23 2016 +0100
+++ b/util/hgstyle.py Wed Mar 30 15:32:17 2016 +0100
@@ -50,8 +50,6 @@
sys.path.insert(0, current_dir)
from style.verifiers import all_verifiers
-from style.validators import all_validators
-from style.file_types import lang_type
from style.style import MercurialUI, check_ignores
from style.region import *
@@ -85,35 +83,6 @@
return mod_regions
-def validate(filename, verbose, exit_code):
- lang = lang_type(filename)
- if lang not in ('C', 'C++'):
- return
-
- def bad():
- if exit_code is not None:
- sys.exit(exit_code)
-
- try:
- f = file(filename, 'r')
- except OSError:
- if verbose > 0:
- print 'could not open file %s' % filename
- bad()
- return None
-
- vals = [ v(filename, verbose=(verbose > 1), language=lang)
- for v in all_validators ]
-
- for i, line in enumerate(f):
- line = line.rstrip('\n')
- for v in vals:
- v.validate_line(i, line)
-
-
- return vals
-
-
def _modified_regions(repo, patterns, **kwargs):
opt_all = kwargs.get('all', False)
opt_no_ignore = kwargs.get('no_ignore', False)
@@ -198,37 +167,6 @@
return False
-def do_check_format(hgui, repo, *pats, **opts):
- """check files for gem5 code formatting violations
-
- Without an argument, checks all modified and added files for gem5
- code formatting violations. A list of files can be specified to
- limit the checker to a subset of the repository. The style rules
- are normally applied on a diff of the repository state (i.e.,
- added files are checked in their entirety while only modifications
- of modified files are checked).
-
- The --all option can be specified to include clean files and check
- modified files in their entirety.
- """
- ui = MercurialUI(hgui, hgui.verbose)
-
- verbose = 0
- for fname, mod_regions in _modified_regions(repo, pats, **opts):
- vals = validate(joinpath(repo.root, fname), verbose, None)
- if vals is None:
- return True
- elif any([not v for v in vals]):
- print "%s:" % fname
- for v in vals:
- v.dump()
- result = ui.prompt("invalid formatting\n(i)gnore or (a)bort?",
- 'ai', 'a')
- if result == 'a':
- return True
-
- return False
-
def check_hook(hooktype):
if hooktype not in ('pretxncommit', 'pre-qrefresh'):
raise AttributeError, \
@@ -247,17 +185,6 @@
traceback.print_exc()
return True
-def check_format(ui, repo, hooktype, **kwargs):
- check_hook(hooktype)
- args = {}
-
- try:
- return do_check_format(ui, repo, **args)
- except Exception, e:
- import traceback
- traceback.print_exc()
- return True
-
try:
from mercurial.i18n import _
except ImportError:
@@ -287,31 +214,9 @@
'^m5style' : (
do_check_style, all_opts + _common_region_options + commands.walkopts,
_('hg m5style [-a] [FILE]...')),
- '^m5format' :
- ( do_check_format, [
- ] + _common_region_options + commands.walkopts,
- _('hg m5format [FILE]...')),
}
if __name__ == '__main__':
- import argparse
-
- parser = argparse.ArgumentParser(
- description="Check a file for style violations")
-
- parser.add_argument("--verbose", "-v", action="count",
- help="Produce verbose output")
-
- parser.add_argument("file", metavar="FILE", nargs="+",
- type=str,
- help="Source file to inspect")
-
- args = parser.parse_args()
-
- for filename in args.file:
- vals = validate(filename, verbose=args.verbose,
- exit_code=1)
-
- if args.verbose > 0 and vals is not None:
- for v in vals:
- v.dump()
+ print >> sys.stderr, "This file cannot be used from the command line. Use"
+ print >> sys.stderr, "style.py instead."
+ sys.exit(1)
diff -r 72b399971cbc -r bcec568e403c util/style/validators.py
--- a/util/style/validators.py Wed Mar 30 15:31:23 2016 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,212 +0,0 @@
-#!/usr/bin/env python
-#
-# Copyright (c) 2014, 2016 ARM Limited
-# All rights reserved
-#
-# The license below extends only to copyright in the software and shall
-# not be construed as granting a license to any other intellectual
-# property including but not limited to intellectual property relating
-# to a hardware implementation of the functionality of the software
-# licensed hereunder. You may use the software subject to the license
-# terms below provided that you ensure that this notice is replicated
-# unmodified and in its entirety in all distributions of the software,
-# modified or unmodified, in source code or in binary form.
-#
-# Copyright (c) 2006 The Regents of The University of Michigan
-# Copyright (c) 2007,2011 The Hewlett-Packard Development Company
-# Copyright (c) 2016 Advanced Micro Devices, Inc.
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are
-# met: redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer;
-# redistributions in binary form must reproduce the above copyright
-# notice, this list of conditions and the following disclaimer in the
-# documentation and/or other materials provided with the distribution;
-# neither the name of the copyright holders nor the names of its
-# contributors may be used to endorse or promote products derived from
-# this software without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#
-# Authors: Nathan Binkert
-# Steve Reinhardt
-# Andreas Sandberg
-
-from abc import ABCMeta, abstractmethod
-import inspect
-import re
-import sys
-
-import style
-
-tabsize = 8
-lead = re.compile(r'^([ \t]+)')
-trail = re.compile(r'([ \t]+)$')
-any_control = re.compile(r'\b(if|while|for)([ \t]*)\(')
-
-class Validator(object):
- """Base class for style validators
-
- Validators analyze source files for common style violations and
- produce source code style violation statistics. Unlike style
- verifiers (see verifiers.py), they do not try to fix any style
- violations violations.
-
- Deprecation warning: These classes are currently only used by the
- "hg m5format" command and not by any style hooks. New style
- checkers should inherit from Verifier instead of Validator.
-
- """
-
- __metaclass__ = ABCMeta
-
- def __init__(self, file_name, verbose=False, language=None):
- self.file_name = file_name
- self.verbose = verbose
- self.bad = 0
- self.language = language
-
- def fail_line(self, line_no, line, message):
- print '%s:%d>' % (self.file_name, line_no + 1), message
- if self.verbose:
- print line
- self.bad += 1
-
- def __nonzero__(self):
- return self.bad == 0
-
- @classmethod
- def supported_lang(cls, language):
- return True
-
- @abstractmethod
- def validate_line(self, line_no, line):
- pass
-
- @abstractmethod
- def dump(self):
- pass
-
-class SimpleValidator(Validator):
- supported_langs = set()
-
- def __init__(self, fail_message, dump_message, file_name, **kwargs):
- super(SimpleValidator, self).__init__(file_name, **kwargs)
-
- self.fail_message = fail_message
- self.dump_message = dump_message
-
- @classmethod
- def supported_lang(cls, language):
- return not cls.cupported_langs or language in cls.supported_langs
-
- def validate_line(self, line_no, line):
- if not self.simple_validate_line(line):
- self.fail_line(line_no, line, self.fail_message)
- return False
- else:
- return True
-
- @abstractmethod
- def simple_validate_line(self, line):
- pass
-
- def dump(self):
- print self.dump_message % {
- "bad" : self.bad
- }
-
-class LineLength(Validator):
- def __init__(self, *args, **kwargs):
- super(LineLength, self).__init__(*args, **kwargs)
-
- self.toolong80 = 0
-
- def validate_line(self, line_no, line):
- llen = style.normalized_len(line)
- if llen == 80:
- self.toolong80 += 1
-
- if llen > 79:
- self.fail_line(line_no, line, 'line too long (%d chars)' % llen)
- return False
- else:
- return True
-
- def dump(self):
- print "%d violations of lines over 79 chars. " \
- "%d of which are 80 chars exactly." % (self.bad, self.toolong80)
-
-class ControlSpacing(Validator):
- supported_langs = set(('C', 'C++'))
-
- def validate_line(self, line_no, line):
- match = any_control.search(line)
- if match and match.group(2) != " ":
_______________________________________________
gem5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/gem5-dev