Skip to content

Latest commit

 

History

History
195 lines (106 loc) · 4.01 KB

NEWS.rst

File metadata and controls

195 lines (106 loc) · 4.01 KB

Release notes for Cattle

This document briefly describes the user-visible changes introduced in each release of Cattle.

Cattle 1.4.0 (2020-04-20)

  • Add g_autoptr() support.
    • All Cattle objects can now be automatically released when the scope they've been declared in terminates.
  • Fix off-by-one error in cattle_program_load().
    • The CattleBuffer returned by cattle_program_get_input() is now the correct size.
  • Various cleanups and improvements.

Cattle 1.2.2 (2017-01-11)

  • Enable compiler warnings.
    • Fix code quality issues uncovered by doing so.

Cattle 1.2.1 (2016-09-11)

  • Fix compilation with Clang (Baptiste Fontaine).
  • Install cattle-enums.h.
  • Build system cleanups and improvements.

Cattle 1.2.0 (2014-10-21)

  • CattleBuffer:
    • new object used to pass data around.
  • CattleInterpreter:
    • input is no longer checked for UTF-8 correctness: all input is processed as-is, null bytes included.
  • All offsets are now unsigned long integers.
  • Improved portability: Cattle should now run on most CPU architectures (tested on x86_64 and ARMv7).
  • Various bug fixes.

Cattle 1.0.1 (2011-03-27)

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

Cattle 1.0.0 (2011-02-28)

  • 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 the CattleTape:current-value property.
  • CattleError:
    • merge the CattleProgramError and CattleInterpreterError enumerations into a single enumeration.
  • Enable GObject Introspection support.
  • Various bug fixes.

Cattle 0.9.4 (2010-12-04)

  • 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.

Cattle 0.9.3 (2009-05-05)

  • 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.

Cattle 0.9.2 (2008-10-02)

  • CattleTape:
    • implement bookmarks.
  • CattleInterpreter:
    • add the CattleInterpreter::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.

Cattle 0.9.1 (2008-08-03)

  • 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 structures completely opaque.
  • Some bug fixes.

Cattle 0.9.0 (2008-04-16)

  • First release.