0.8.2 -> 0.9.0

- IMPORTANT: Int2IntArrayMap and Int2LongArrayMap no longer exist: offsets and
  sizes now are type-specific array lists (and they can be easily generated using
  fastutil wrappers).

- Fixed stupid, stupid bug in state handling in IndexReader. Sequential
  reads of an entire index would have thrown an IllegalStateException.

- Changed a few array static methods to faster fastutil counterparts.

- Fixed small glitch in lastIndexOf() semantics--searches from negative
  offset of the empty string would have returned 0 instead of -1.

- Bunch of new methods in MutableString ((last)indexOfAnyBut, (co)span).

- Golomb read/write methods now support modulus 0, 0 being the only valid
  argument (and the result returned upon reads).

- Minimal perfect hashes support lists with less then 16 elements, by
  storing them transparently in a vector.

- Signed hashes have an incompatible format (sorry).

- Minimal perfect hashes support optimal weight length computation for
  sorted term collections.

- New left/right trim methods. Moreover, trim methods preverve looseness
  and compactness.

- Literally zillions of new features, everywhere.

- Experimental support for multi-index minimal-interval semantics and
  skipping towers.

0.8.1 -> 0.8.2

- New methods for starting and stopping a progress meter with messages.

- New FastMultiByteArrayInputStream class that can hold 256 PiB (256 PiB = 2^28
  GiB) and expose them as a repositionable stream.
 
0.8 -> 0.8.1

- Modified imports and class name for compliance with fastutil 3.0.

- Relicensed under the LGPL.

0.7.1 -> 0.8

- New NullInputStream to support new InputBitStream direct array wrapping.

- position() in InputBitStream will always work if the new position is
  within the current buffer.

- Removed unused buffer in InputBitStream, and made unget buffer allocation
on-demand.

- Eliminated finalizers from streams.

- New debugging class.

- Fixed bug in position().

- Now the ProgressMeter gives items/s at the first printout.

- New methods for variable-length nibble coding.

- New methods for zeta coding (a new code!).

- Fixed erroneous serialisation of CRC32SignedMinimalPerfectHash.

- Completely renewed hashing scheme for minimal perfect hashing: supports
  the empty string and it is faster to compute. Moreover, MinimalPerfectHash
  now has an offline builder that never loads the words actually in RAM,
  thus allowing to hash very large sets (albeit slowly), and checks 
  a suitable system property to provide optional verbose logging. The
  serialisation, unfortunately, is incompatible.


0.7 -> 0.7.1

- Removed experimental classes.

- Fixed two bad bugs introduced during the in 0.7 during optimisation.

0.6 -> 0.7

- IMPORTANT: MG4J now uses the new fastutil package name (i.e., no
  more fastutil). If you use parts of MG4J that require fastutil, you
  should upgrade.

- New replace() methods for MutableString that entirely replace
  the string content. New copy() method to obtain easily a compact
  copy of a mutable string.

- New RepositionableStream interface to mark streams that can
  be repositioned by bit streams.

- New FastByteArrayInputStream to read memory blocks as bit
  streams.

- New unsynchronised FastBufferedReader.

- ProgressMeter count value has now setters and getters.

- Programmable meter quantum for FirstPass.

- Some optimisations.

0.5 -> 0.6

- IMPORTANT: streams and self-delimiting string formats are not
  binary compatible with previous versions. Please read the docs.

- Fixed bug with serialisation of empty strings and set serialVersionUID.

- Too many addition to be described in a file, but in short: optimised
  indexOf() family of methods, flexible index construction, QuickSearch
  fast searches.

0.4 -> 0.5

- MutableString has now a more coherent policy for compactness and looseness.
  They are preserved by all operations.

- StringBuffer-specific methods have been killed to reduce code duplication.
  You need to recompile so that java uses the alternative CharSequence-specific
  methods.

- Several new methods such as startsWith, endsWith etc.

0.3 -> 0.4

IMPORTANT: the hash computation functions in 
MinimalPerfectHash have been changed. Please regenerate your maps.

MinimalPerfectHash has been reimplemented to use CharSequence, so
it is more general. Moreover, we have a new SignedMinimalPerfectHash
that can be used to avoid false positives.

- New replace methods in mutable strings.

- Now we try to return a reference to this in all mutable string methods.

- Various fixes to documentation.

0.2 -> 0.3
- Introduced new class MutableString.

0.1 -> 0.2
- By mistake writeLongDelta() was really called writeDelta().
