------------------- * simplify `copy_n()` (remove special cases), see d2d6fd53 * add [word shift example C program](../examples/shift_r8.c), and simplify `shift_r8()` * improve documentation and testing * add [roadmap](https://github.com/ilanschnell/bitarray#roadmap)
2.8.3
------------------- * ensure readonly attribute is set correctly when creating new objects, see 211 * optimize sparse bitarray compression for raw block type * improve hash functions in Bloom filter example
2.8.2
------------------- * update cibuildwheel to 2.16.1 in order to provide cp312 wheels on PyPI * improve error messages for masked assignment * simplify test collection * added `pytest.ini` to allow running pytest with no additional arguments, see 208 * `util.sc_encode()`: avoid writing empty blocks at end of compressed stream, i.e. skip encoding when total population count is reached
2.8.1
------------------- * use reconstructor function for pickling, see 207 * simplify implementation of `.reverse()`
2.8.0
------------------- * allow [integer sequence indexing](indexing.rst) by list of indices, see 204 (addresses 156 and 190) * add [masked indexing](indexing.rst) by bitarray masks, see 205 (addresses 190) * improve `.bytereverse()` docstring, see issue 202