2021-01-XX   1.6.2:
-------------------
  * use `Py_SET_TYPE()` and `Py_SET_SIZE()` for Python 3.10, #109
  * add official Python 3.10 support
  * fix slice assignement to same object, e.g. a[2::] = a or a[::-1] = a, #112
  * add bitarray.h, #110


2020-11-05   1.6.1:
-------------------
  * use PyType_Ready for all types: bitarray, bitarrayiterator,
    decodeiterator, decodetree, searchiterator


2020-10-17   1.6.0:
-------------------
  * add `decodetree` object, for speeding up consecutive calls
    to `.decode()` and `.iterdecode()`, in particular when dealing
    with large prefix codes, see #103
  * add optional parameter to `.tolist()` which changes the items in the
    returned list to integers (0 or 1), as opposed to Booleans
  * remove deprecated `bitdiff()`, which has been deprecated since version
    1.2.0, use `bitarray.util.count_xor()` instead
  * drop Python 2.6 support
  * update license file, #104


2020-08-24   1.5.3:
-------------------
  * add optional index parameter to `.index()` to invert single bit
  * fix `sys.getsizeof(bitarray)` by adding `.__sizeof__()`, see issue #100


2020-08-16   1.5.2:
-------------------
  * add PyType_Ready usage, issue #66
  * speedup search() for bitarrays with length 1 in sparse bitarrays,
    see issue #67
  * add tests


2020-08-10   1.5.1:
-------------------
  * support signed integers in `util.ba2int()` and `util.int2ba()`,
    see issue #85
  * deprecate `.length()` in favor of `len()`


2020-08-05   1.5.0:
-------------------
  * Use `Py_ssize_t` for bitarray index.  This means that on 32bit
    systems, the maximun number of elements in a bitarray is 2 GBits.
    We used to have a special 64bit index type for all architectures, but
    this prevented us from using Python's sequence, mapping and number
    methods, and made those method lookups slow.
  * speedup slice operations when step size = 1 (if alignment allows
    copying whole bytes)
  * Require equal endianness for operations: `&`, `|`, `^`, `&=`, `|=`, `^=`.
    This should have always been the case but was overlooked in the past.
  * raise TypeError when tring to create bitarray from boolean
  * This will be last release to still support Python 2.6 (which was retired
    in 2013).  We do NOT plan to stop support for Python 2.7 anytime soon.


2020-07-15   1.4.2:
-------------------
  * add more tests
  * C-level:
      - simplify pack/unpack code
      - fix memory leak in `~` operation (bitarray_cpinvert)


2020-07-14   1.4.1:
-------------------
  * add official Python 3.9 support
  * improve many docstrings
  * add DeprecationWarning for `bitdiff()`
  * add DeprecationWarning when trying to extend bitarrays
    from bytes on Python 3 (`bitarrays(b'011')` and `.extend(b'110')`)
  * C-level:
      - Rewrote `.fromfile()` and `.tofile()` implementation,
        such that now the same code is used for Python 2 and 3.
        The new implementation is more memoery efficient on
        Python 3.
      - use memcmp() in richcompare to shortcut EQ/NE, when
        comparing two very large bitarrays for equality the
        speedup can easily be 100x
      - simplify how unpacking is handled
  * add more tests


2020-07-11   1.4.0:
-------------------
  * add `.clear()` method (Python 3.3 added this method to lists)
  * avoid overallocation when bitarray objects are initially created
  * raise BufferError when resizing bitarrays which is exporting buffers
  * add example to study the resize() function
  * improve some error messages
  * add more tests
  * raise `NotImplementedError` with (useful message) when trying to call
    the `.fromstring()` or `.tostring()` methods, which have been removed
    in the last release


2020-07-06   1.3.0:
-------------------
  * add `bitarray.util.make_endian()`
  * `util.ba2hex()` and `util.hex2ba()` now also support little-endian
  * add `bitarray.get_default_endian()`
  * made first argument of initializer a positional-only parameter
  * remove `.fromstring()` and `.tostring()` methods, these have been
    deprecated 8 years ago, since version 0.4.0
  * add `__all__` in `bitarray/__init__.py`
  * drop Python 3.3 and 3.4 support


2020-05-18   1.2.2:
-------------------
  * `util.ba2hex` now always return a string object (instead of bytes object
    for Python 3), see issue #94
  * `util.hex2ba` allows a unicode object as input on Python 2
  * Determine 64-bitness of interpreter in a cross-platform fashion #91,
    in order to better support PyPy


2020-01-06   1.2.1:
-------------------
  * simplify markdown of readme so PyPI renders better
  * make tests for bitarray.util required (instead of warning when
    they cannot be imported)


2019-12-06   1.2.0:
-------------------
  * add bitarray.util module which provides useful utility functions
  * deprecate `bitarray.bitdiff` in favor of `bitarray.util.count_xor`
  * use markdown for documentation
  * fix bug in .count() on 32bit systems in special cases when array size
    is 2^29 bits or larger
  * simplified tests by using bytes syntax
  * update smallints and sieve example to use new utility module
  * simplified mandel example to use numba
  * use file context managers in tests


2019-11-07   1.1.0:
-------------------
  * add frozenbitarray object
  * add optional start and stop parameters to .count() method
  * add official Python 3.8 support
  * optimize setrange() C-function by using memset
  * fix issue #74, bitarray is hashable on Python 2
  * fix issue #68, `unittest.TestCase.assert_` deprecated
  * improved test suite - tests should run in about 1 second
  * update documentation to use positional-only syntax in docstrings
  * update readme to pass Python 3 doctest
  * add utils module to examples


2019-07-19   1.0.1:
-------------------
  * fix readme to pass `twine check`


2019-07-15   1.0.0:
-------------------
  * fix bitarrays beings created from unicode in Python 2
  * use `PyBytes_*` in C code, treating the Py3k function names as default,
    which also removes all redefinitions of `PyString_*`
  * handle negative arguments of .index() method consistently with how
    they are treated for lists
  * add a few more comments to the C code
  * move imports outside tests: pickle, io, etc.
  * drop Python 2.5 support


2019-05-20   0.9.3:
-------------------
  * refactor resize() - only shrink allocated memory if new size falls
    lower than half the allocated size
  * improve error message when trying to initialize from float or complex


2019-04-29   0.9.2:
-------------------
  * fix to compile on Windows with VS 2015, issue #72


2019-04-28   0.9.1:
-------------------
  * fix types to actually be types, #29
  * check for ambiguous prefix codes when building binary tree for decoding
  * remove Python level methods: encode, decode, iterdecode (in favor of
    having these implemented on the C-level along with check_codedict)
  * fix self tests for Python 2.5 and 2.6
  * move all Huffman code related example code into examples/huffman
  * add code to generate graphviz .dot file of Huffman tree to examples


2019-04-22   0.9.0:
-------------------
  * more efficient decode and iterdecode by using C-level binary tree
    instead of a python one, #54
  * added buffer protocol support for Python 3, #55
  * fixed invalid pointer exceptions in pypy, #47
  * made all examples Py3k compatible
  * add gene sequence example
  * add official Python 3.7 support
  * drop Python 2.4, 3.1 and 3.2 support


2018-07-06   0.8.3:
-------------------
  * add exception to setup.py when README.rst cannot be opened


2018-05-30   0.8.2:
-------------------
  * add official Python 3.6 support (although it was already working)
  * fix description of fill(), #52
  * handle extending self correctly, #28
  * copy_n: fast copy with memmove fixed, #43
  * minor clarity/wording changes to README, #23


2013-03-30   0.8.1:
-------------------
  * fix issue #10, i.e. int(bitarray()) segfault
  * added tests for using a bitarray object as an argument to functions
    like int, long (on Python 2), float, list, tuple, dict


2012-04-04   0.8.0:
-------------------
  * add Python 2.4 support
  * add (module level) function bitdiff for calculating the difference
    between two bitarrays


2012-02-15   0.7.0:
-------------------
  * add iterdecode method (C level), which returns an iterator but is
    otherwise like the decode method
  * improve memory efficiency and speed of pickling large bitarray objects


2012-02-06   0.6.0:
-------------------
  * add buffer protocol to bitarray objects (Python 2.7 only)
  * allow slice assignment to 0 or 1, e.g. a[::3] = 0  (in addition to
    booleans)
  * moved implementation of itersearch method to C level (Lluis Pamies)
  * search, itersearch now only except bitarray objects,
    whereas __contains__ excepts either booleans or bitarrays
  * use a priority queue for Huffman tree example (thanks to Ushma Bhatt)
  * improve documentation


2012-02-02   0.5.2:
-------------------
  * fixed MSVC compile error on Python 3 (thanks to Chris Gohlke)
  * add missing start and stop optional parameters to index() method
  * add examples/compress.py


2012-01-31   0.5.1:
-------------------
  * update documentation to use tobytes and frombytes, rather than tostring
    and fromstring (which are now deprecated)
  * simplified how tests are run


2012-01-23   0.5.0:
-------------------
  * added itersearch method
  * added Bloom filter example
  * minor fixes in docstrings, added more tests


2011-12-29   0.4.0:
-------------------
  * porting to Python 3.x (Roland Puntaier)
  * introduced tobytes, frombytes (tostring, fromstring are now deprecated)
  * updated development status
  * added sieve prime number example
  * moved project to github: https://github.com/ilanschnell/bitarray


2009-04-06   0.3.5:
-------------------
  * fixed reference counts bugs
  * added possibility to slice assign to True or False, e.g. a[::3] = True
    will set every third element to True


2009-01-15   0.3.4:
-------------------
  * Made C code less ambiguous, such that the package compiles on
    Visual Studio, with all tests passing.


2008-12-14   0.3.3:
-------------------
  * Made changes to the C code to allow compilation with more compilers.
    Compiles on Visual Studio, although there are still a few tests failing.


2008-10-19   0.3.2:
-------------------
  * Added sequential search method.
  * The special method __contains__ now also takes advantage of the
    sequential search.


2008-10-12   0.3.1:
-------------------
  * Simplified state information for pickling.  Argument for count is now
    optional, defaults to True.  Fixed typos.


2008-09-30   0.3.0:
-------------------
  * Fixed a severe bug for 64-bit machines.  Implemented all methods in C,
    improved tests.
  * Removed deprecated methods from01 and fromlist.


2008-09-23   0.2.5:
-------------------
  * Added section in README about prefix codes.  Implemented _multiply method
    for faster __mul__ and __imul__.  Fixed some typos.


2008-09-22   0.2.4:
-------------------
  * Implemented encode and decode method (in C) for variable-length prefix
    codes.
  * Added more examples, wrote README for the examples.
  * Added more tests, fixed some typos.


2008-09-16   0.2.3:
-------------------
  * Fixed a memory leak, implemented a number of methods in C.
    These include __getitem__, __setitem__, __delitem__, pop, remove,
    insert.  The methods implemented on the Python level is very limit now.
  * Implemented bitwise operations.


2008-09-09   0.2.2:
-------------------
  * Rewrote parts of the README
  * Implemented memory efficient algorithm for the reverse method
  * Fixed typos, added a few tests, more C refactoring.


2008-09-07   0.2.1:
-------------------
  * Improved tests, in particular added checking for memory leaks.
  * Refactored many things on the C level.
  * Implemented a few more methods.


2008-09-02   0.2.0:
-------------------
  * Added bit endianness property to the bitarray object
  * Added the examples to the release package.


2008-08-17   0.1.0:
-------------------
  * First official release; put project to
    http://pypi.python.org/pypi/bitarray/


May 2008:
---------
Wrote the initial code, and put it on my personal web-site:
http://ilan.schnell-web.net/prog/
