[Piglit] [PATCH 00/12] cleanup dispatch generation code

Dylan Baker baker.dylan.c at gmail.com
Tue Jan 13 17:48:10 PST 2015


This series is mainly aimed at removing the obsolete cmp function and
corresponding __cmp__ method, and replace them with rich comparison
methods (__lt__, __eq__, etc). It also makes some opportunistic cleanups
of the code, mostly errors in the code, or style changes that are prone
to turning into surprising behavior.

Getting rid of cmp is good for a couple of reasons. First it is a very
course comparison method, it can only know if something is <, >, or ==,
which it does by returning -1, 1, or 0 (respectively), while rich
comparisons provide support for <, =<, ==, !=, >=, and >, each as an
individual method (or, by using functools.total_orderings, with just
__eq__ and one other method). Second, __cmp__ and cmp were deprecated in
python 2.1, and are removed in 3.0, so it's a very old spec. Finally, it
allows objects to be sorted without the use of a key or cmp call to
sorted(), which makes the code cleaner and easier to understand.

I have verified that this produces the same output (white space
unchecked) as before, and that running quick.py all tests were the same,
except for two known sporadic tests. The only exception is that the
first patch results in comments changing, but in a way that makes them
deterministic rather than random.

This is available at my github:
https://github.com/dcbaker/piglit submit/remove-registry-cmp

Dylan Baker (12):
  piglit-displatch-gen.h.mako: sort comments
  regirsry/gl.py: remove unused import
  registry/gl.py: fix no-attribute error
  registry/gl.py: Replace __cmp__ methods with rich comparison methods
  registry/gl.py: Strip superfluous parens from the assert keyword
  registry/gl.py: remove unused variable
  regsitry/gl.py: Make Error class inherit from Exception
  gen_dispatch.py: remove unused imports
  gen_dispatch.py: sort imports into groups
  gen_dispatch.py: remove use of cmp.
  gen_dispatch.py: Remove unnecessary parens from assert keyword
  gen_dispatch.py: silence error

 registry/gl.py                        | 238 +++++++++++++++++++++++-----------
 tests/util/gen_dispatch.py            |  60 ++-------
 tests/util/piglit-dispatch-gen.h.mako |   2 +-
 3 files changed, 172 insertions(+), 128 deletions(-)

-- 
2.2.1



More information about the Piglit mailing list