Overview of changes from Cattle 1.0.0 to 1.0.1
==============================================

  * CattleInterpreter:
    - fix a double free for programs with embedded input.


Overview of changes from Cattle 0.9.4 to 1.0.0
==============================================

  * CattleInterpreter:
    - check for unbalanced brackets at runtime;
    - use callbacks instead of signals for I/O;
    - return a generic error if an I/O handler has failed without
      providing detailed information about the error;
    - check input for UTF-8 correctness;
    - check input for non-ASCII characters.

  * CattleTape:
    - add a current-value property.

  * CattleError: merge the CattleProgramError and CattleInterpreterError
                 enumerations into a single enumeration.

  * Enable GObject Introspection support.

  * Various bug fixes.


Overview of changes from Cattle 0.9.3 to 0.9.4
==============================================

  * CattleInstruction: rename CATTLE_INSTRUCTION_DUMP_TAPE to
                       CATTLE_INSTRUCTION_DEBUG, since the corresponding
                       handler might do more than dumping the tape's
                       contents.

  * CattleTape:

    - add fast bulk increase/decrease/move operations;
    - implement current value wrapping on increase/decrease.

  * CattleInterpreter: use bulk operations for speed increase.

  * Add runtime and compile-time version information.

  * Examples:

    - use GIO to read contents of files;
    - add a simple Brainfuck source code minimizer.


Overview of changes from Cattle 0.9.2 to 0.9.3
==============================================

  * CattleInterpreter:

    - provide a default implementations for all the I/O operations;
    - invoke only one handler on I/O signal emission;
    - remove the signal prototypes from the class structure;
    - add an error domain for runtime errors.

  * CattleProgram: use a single error code for both unmatched and
                   unbalanced brackets.

  * The caller owns the object returned by a method call, and must
    unreference it when finished to avoid memory leaks.

  * Enforce single header includes.

  * Expand the test suite and use the GTest framework.

  * Various bug fixes.


Overview of changes from Cattle 0.9.1 to 0.9.2
==============================================

  * CattleTape: implement bookmarks.

  * CattleInterpreter: add the "debug-request" signal, which behaves like
                       the existing I/O signals, and obsoletes the
                       CattleTape.dump() method.

  * Cache the object's private structure, to avoid looking it up for
    every single method call.

  * Various bug fixes.


Overview of changes from Cattle 0.9.0 to 0.9.1
==============================================

  * CattleTape: use memory chunks instead of allocating each cell
                separately, reducing memory usage and improving
                performances.

  * CattleInterpreter: support flexible I/O using signals and callbacks.

  * Make all the structures completely opaque.

  * Some bug fixes.


Overview of changes in Cattle 0.9.0
===================================

  * First release.
