CHANGES
*******

0.8 (2014-08-28)
================

- Added a ``@reg.classgeneric``. This is like ``@reg.generic``, but
  the first argument is treated as a class, not as an instance. This
  makes it possible to replace ``@classmethod`` with a generic
  function too.

- Fix documentation on running documentation tests. For some reason
  this did not work properly anymore without running sphinxpython
  explicitly.

- Optimization: improve performance of generic function calls by
  employing ``lookup_mapply`` instead of general ``mapply``, as we
  only care about passing in the lookup argument when it's defined,
  and any other arguments should work as before. Also added a
  ``perf.py`` which is a simple generic function timing script.

0.7 (2014-06-17)
================

- Python 2.6 compatibility. (Ivo van der Wijk)

- Class maps (and thus generic function lookup) now works with old
  style classes as well.

- Marked as production/stable now in ``setup.py``.

0.6 (2014-04-08)
================

- Removed unused code from mapply.py.

- Typo fix in API docs.

0.5 (2014-01-21)
================

- Make ``reg.ANY`` public. Used for predicates that match any value.

0.4 (2014-01-14)
================

- arginfo has been totally rewritten and is now part of the public API of reg.

0.3 (2014-01-06)
================

- Experimental Python 3.3 support thanks to the future module.

0.2 (2013-12-19)
================

- If a generic function implementation defines a ``lookup`` argument
  that argument will be the lookup used to call it.

- Added ``reg.mapply()``. This allows you to call things with more
  keyword arguments than it accepts, ignoring those extra keyword
  args.

- A function that returns ``None`` is not assumed to fail, so no fallback
  to the original generic function is triggered anymore.

- An optional ``precalc`` facility is made available on ``Matcher`` to
  avoid some recalculation.

- Implement a specific ``PredicateMatcher`` that matches a value on
  predicate.

0.1 (2013-10-28)
================

- Initial public release.
