#
# This file represents a record of user-visible changes to cybop.
#
# The format is not strict, but the changes to the most recent version
# should appear at the top of the file.
#
# Cybernetics Oriented Programming (CYBOP) <http://www.cybop.org/>
# Christian Heller <christian.heller@tuxtax.de>
#
# @version CYBOP 0.13.0 2013-03-29
# @author Christian Heller <christian.heller@tuxtax.de>
#

CYBOP 0.13.0, 2013-03-29, Christian Heller  <christian.heller@tuxtax.de>
        * CYBOI:
            - Implement new version of xdt deserialiser, needed for German medical data formats bdt/gdt/ldt
            - Add character encodings: ascii, iso-8859-1, iso-8859-15, windows-1252, c0 and c1 control codes of iso 6429
            - Adjust reference counting to make rubbish (garbage) collection work correctly
            - Add communication channel "serial_port" for talking to microcontroller device via usb
            - Add terminal mode line speed serialiser necessary for converting integer to POSIX.1 baudrate symbols
        * CYBOL:
            - Simplify cybol files by removing attributes like "encoding" and "language"
            - Add new operations: run/sleep-second, run/sleep-nano, modify/fill, cast/character, cast/double, cast/integer
            - Add format "number/byte" in addition to "text/ascii", both internally mapped to "unsigned char"
            - Add example applications: indoor_climate
        * Project:
            - Add cybol editor of Benjamin Teßmar and Sebastian Brückner
            - Add cybop-python comparison article of Max Brauer

CYBOP 0.12.0, 2012-08-22, Christian Heller  <christian.heller@tuxtax.de>
        * CYBOI:
            - Advance ansi escape code generator
            - Add or update container functions: get, count, indicate (empty or exists), insert, remove
            - Improve terminal input and -output
            - Replace optionaliser with command line deserialiser
            - Simplify cyboi command line so that "--knowledge" argument is the default
            - Update html serialiser with switchable formatting
            - Implement handling of index in knowledge path
            - Implement character reference de-/serialiser for numeric character reference (hexadecimal and decimal) and entity reference
            - Prepare percent encoding de-/serialiser
            - Add decimal fraction de-/serialiser and calculator of Falk Müller
        * CYBOL:
            - Make cybol example application "ui_control" work again
            - Add example applications: get_count, addition_using_indices, index_usage, knowledge_tree_access, addition_using_serialisation, wui, tui, double
            - Generate cybol application programming interface (api) specification from cybol files using html format, contributed by Enrico Gallus
            - Add new operations: represent/serialise, represent/deserialise, access/get-name
        * Project:
            - Add "cybol_extension" tutorial of Falk Müller

CYBOP 0.11.0, 2012-06-08, Christian Heller  <christian.heller@tuxtax.de>
        * CYBOI:
            - Restructure executor directory
            - Redesign modules for comparison, calculation
            - Reimplement container framework using compound hierarchy part-item-dataarray-value
            - Provide functions for copy/get/overwrite/append/insert/remove
            - Split translation into representer for de-/serialisation and converter for de-/encoding
            - Distinguish between language (e.g. text/cybol) and data format (e.g. number/integer) valid within the language
            - Increase execution speed by using integer values instead of strings for runtime cybol meta attributes
            - Restructure many constants into state- and logic directories
            - Implement rubbish (garbage) collector in directory executor/referencer/ using new part field
            - Debug a number of logical errors
            - Debug memory allocation errors occuring on 64 Bit machines, using the valgrind memcheck tool
            - Move test files into testing directory
            - Simplify creation of model diagram output using special test function calls
        * CYBOL:
            - Add example applications: counter, addition, time_output, shell_output (for sequence, branch, loop)
            - Complete list of cybol meta attributes: name, channel, encoding, language, format, model
            - Decide that operations are distinguished by their format (type) and NOT model any longer
        * Project:
            - Add (German language) beginner's manual written by two students
            - Move project to GNU Savannah developer portal, since berliOS announced to close end of 2011
            - Move website documents from directory doc to www
            - Add directory www to CVS, as required by GNU Savannah

CYBOP 0.10.0, 2011-02-27, Christian Heller  <christian.heller@tuxtax.de>
        * CYBOI:
            - Provide more specific global variables of primitive data type sizes
            - Add new primitive functions (assign, compare, add)
            - Unify array functions for all primitive data types
            - Restructure and clean up various container functions (append, replace etc.)
            - Factor out some controller functionality into sub directories (globaliser, checker etc.)
            - Restructure test functions
            - Complete tcp socket handling for web user interfaces
            - Optimise xml decoder functions
            - Add http request decoder
            - Add uri decoder (including percent-encoded characters)
            - Add html encoder
            - Add http response encoder
        * CYBOL:
            - Add cybol example application http_communication
        * Project:
            - Convert source code repository from Concurrent Versions System (CVS) to Subversion (SVN)

CYBOP 0.9.0, 2009-02-07, Christian Heller  <christian.heller@tuxtax.de>
        * CYBOI:
            - Complete interrupt mechanism and sleeping for different communication channels (CYBOI-internal signal, text- or graphical user interface, socket)
            - Use Unicode (instead of formerly ASCII-) character code, UTF-8 encoding, wide characters
            - Restructure constants into four categories name, channel, abstraction, model
            - Change abstraction constants to follow MIME type-like style
            - Replace libxml2 with a self-written XML parser
            - Add a corresponding CYBOL parser, to be called right after the XML parser (like two filters called in a sequence)
        * CYBOL:
            - Use MIME type-like values for the abstraction xml attribute
        * Project:
            - Switch from 32 Bit- to 64 Bit architecture by adapting autoconf/ make files

CYBOP 0.8.0, 2007-05-28, Christian Heller  <christian.heller@tuxtax.de>
        * Internal improvements and bugfixes
        * A first version of web user interfaces (wui) using tcp socket (not usable yet)
        * A parser converting the German X Datentraeger (xDT) medical exchange format into cybop knowledge models (structure complete, but more keywords need to be added)
        * A serialiser converting cybop knowledge models into xhtml
        * A serialiser converting cybop knowledge models into structured text output (good for debugging cybop knowledge models)
        * Shell output
        * File output

CYBOP 0.7.0, 2006-09-09, Christian Heller  <christian.heller@tuxtax.de>
        * X window system gui event handling
        * Wide character handling in textual user interface (tui)
        * Windowing technique for textual user interface (tui)
        * Selective repaint in textual user interface (tui)
        * Better handling of cpu idle times
        * Threads using mutexes (atomic flags) for reception of signals via x window system and gnu_linux console (terminal)
        * Access to meta hierarchy elements via the # separator character (and to the whole-part hierarchy via the . character, as before)
        * Unified get_universal_compound_element_by_name function for compound element retrieval
        * Use of the system function to run external commands/ programs in an own child process
        * Unix shell command processing to be able to use CYBOL for scripting
