#
# Copyright (C) 1999-2016. Christian Heller.
#
# 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/>
# CYBOP Developers <cybop-developers@nongnu.org>
#
# @version CYBOP 0.18.0 2016-12-21
# @author Christian Heller <christian.heller@tuxtax.de>
#

CYBOP 0.18.0, 2016-12-21, Christian Heller  <christian.heller@tuxtax.de>
        * CYBOI:
            - Provide blocking input on channel "terminal" for "communicate/receive" operation
            - Add cyboi shell commands and cyboi operations of Christopher Stoneking, Christian Szech
            - Add cyboi shell commands of Leonard Franke, Jörg Broy, Richard Lüdtke
            - Add sort algorithms (quick, bubble) as cyboi operations of Alexander Heimann, Julius Krenkel, Paul Müller
            - Add new "chronology" language files for calendar systems
            - Clean up directory "tester/" and related constants and functionality
            - Introduce stack memory
            - Adapt cyboi functions to offer part search by FIFO or LIFO principle
            - Optimise file "knowledge_part_getter.c" using a recursive function call
            - Complete cloning functionality (deep copying)
        * CYBOL:
            - Update cybol schema files
            - Provide access to stack memory from within cybol via format "path/stack"
            - Add cybol example application "counter_stack" for testing stack variables
            - Add cybol example application "counter_stack_deep" for testing LIFO-principle with equally named stack variables within three nested loops
            - Add cybol example application "copier" for testing shallow- and deep copying
            - Add cybol example application "addition_user_input" for testing blocking terminal input
            - Add cybol example application game "minesweeper" [Minenräumer] of Matthias Thurow
            - Add cybol example application game "blackjack" [Siebzehn und Vier] of Dmitry Brodskiy, Sven Haueisen, Jan Wellner
            - Add cybol example application game "bullsandcows" (mastermind) of Ronny Zingler
            - Add cybol example application "password_generator" of Florian Aurich, Andre Noldin
            - Add cybol example application "webstat" of Markus Then, Stanley Sellig, Nico Schallehn
            - Create page links for retrieval of images and css file dynamically in cybol example application "presence", so that hostname (ip address) is correct
            - Replace format "text/plain" with "path/knowledge" for some parts of cybol example application "tui_control"
        * Project:
            - Add german cybop manual update of Sebastian Wolff, Tobias Thurow
            - Add cybol api update of Christian Schulz, Lena Braun
            - Add doxygen configuration files in directory "doxygen/", for automatically generating source code api documentation with module dependencies
            - Add ide "Code::Blocks" project file and user manual of Kevin Klein, Tobias Donix
            - Add benchmark tool comparing cybol with c++, java, python of Sebastian Kloppe, Patrick Hebner

CYBOP 0.17.0, 2015-04-20, Christian Heller  <christian.heller@tuxtax.de>
        * CYBOI:
            - Prepare gui serialiser and layout serialiser
            - Add randomise operations
            - Add more cyboi shell commands and -operations (Maximilian Brenner)
            - Complete socket functionality and keep client socket integer array internally
            - Define symbolic names as variable values at startup
            - Create input/output entry structure for all kinds of services
            - Optimise endless loop checking for signals/service interrupts in controller (eliminate some sensing threads)
            - Loop and close all services at shutdown
            - Merge input/output filters for various channels in chain (device|compression|encoding|language+format|knowledge)
            - Distinguish low-level reading/writing in directory "executor/streamer/" from "executor/communicator/" as central i/o point
            - Reactivate and update http-request/http-response/uri de-/serialiser
            - Implement xml serialiser
            - Implement cybol element/part serialiser
            - Introduce new channel "clock" for reading and adjusting time and date
            - Introduce new channel "randomiser" for sowing a seed and generating random numbers
        * CYBOL:
            - Update api generator
            - Provide example syntax files in XML, JSON, self-defined "short" notation in new directory "doc/books/cybol/syntax/"
            - Rename all xml tags (model, part, property, constraint) uniformly to just "node"
            - Add "string_comparison" cybol example application
            - Add "randomiser" cybol example application
            - Add "arithmetics" cybol example application
            - Rewrite "calculator" cybol example application (Sibylle Hebenstreit, Marc Jäkel, Andreas Burkhardt)
            - Add "tictactoe" cybol example application (Sandra Rum, Stephan Griese, Thomas Schulze)
            - Add "socket_server" and "socket_client" cybol example applications
            - Add "www_server_static" and "www_server_dynamic" cybol example applications
            - Continue "presence" cybol example application with css, calendar week navigation, favicon, uri generation
        * Project:
            - Update cybol api specification (Max Müller-Domhardt, Sebastian König)
            - Add "cybol_generator" gui designer based on C++/Qt (Pit Braunsdorf, Sophia Kledzinski)

CYBOP 0.16.0, 2014-03-31, Christian Heller  <christian.heller@tuxtax.de>
        * CYBOI:
            - Add new mime type constants (Franziska Wehner)
            - Add iso character set constants (Franziska Wehner)
            - Provide values for command line argument "--test", in order to call one test unit at a time
            - Restructure test units (Melanie Fricke, Philipp Engelmann, Paul Stengel)
            - Redesign compound copiers/setters/getters for complex/datetime/duration/fraction
            - Complete decimal- and vulgar fraction calculator and comparator
            - Add cartesian- and polar complex calculator and comparator (Tony Kreißl, Sascha Kühnel, Kevin Wettermann)
            - Add boolean and bitwise logic operations (Tony Kreißl, Sascha Kühnel, Kevin Wettermann)
            - Add directory "executor/container/" with operation comparing if a bounded area contains a given value
            - Add platform-independent shell commands (Alexander Müller, Kevin Glück)
            - Continue gui serialiser
            - Add layout serialiser
            - Add datetime compound structure based on julian day (int) and julian second (double)
            - Add time scale gregorian_date/julian_date/jd/mjd/tjd/tai calendar de-/serialiser
            - Add new entries to xdt de-/serialiser (Birgit Heller)
            - Extend xdt selectors following BDT/KVDT/GDT standard documents (Florian Pachel)
            - Add knowledge path extension for accessing node name using parentheses, e.g. .app.wui.(.app.var.page_name).body.table
            - Add visual studio c adaptations (Mike Feustel, Benno Schilling)
            - Add compilation changes for Apple Mac OSX (Markus Hinkelmann)
        * CYBOL:
            - Add "datetime" cybol example application for testing various date formats
            - Add "ui" cybol example application with tui, gui, wui
            - Add "calculator" application with tui (Cedric Thomas)
            - Create tool "tools/field_description_xdt_model_generator/"
            - Create tool "tools/xdt_field_description_serialiser_generator/"
        * Project:
            - Add slides for short lightning talk on cybop to directory "doc/lightning_talk/"
            - Add brochure to directory "doc/presentations/prospectus/"
            - Add shell script "dist/prepare_release.sh"

CYBOP 0.15.0, 2013-09-22, Christian Heller  <christian.heller@tuxtax.de>
        * CYBOI:
            - Improve channel interrupt detection outside threads in main loop
            - Complete x window system receiver
            - Complete win32 display receiver
            - Complete win32 console receiver
            - Add further "access/" cybol operations
            - Provide first working version of xdt deserialiser, to be used in Res Medicinae tool "xdt2html" (partly by Birgit Heller)
        * CYBOL:
            - Create tool "integer_number_generator" to generate integer number constants

CYBOP 0.14.0, 2013-05-31, Christian Heller  <christian.heller@tuxtax.de>
        * CYBOI:
            - Port to win32 api using mingw and pre-processor defines (Tobias Köhler)
            - Enable terminal output under windows using win32 console functionality
            - Split logger into several files and add windows system error log function
            - Fix serial port interface (Tobias Köhler)
            - Migrate x window system event receiver from xlib to x c bindings (xcb)
            - Add bit manipulation functions, e.g. "clear", "set", "shift_left", "rotate_right"
            - Add bit logic operations, e.g. "and", "xor"
            - Add calculator and comparator for types double and pointer (Marcel Wesberg)
        * CYBOL:
            - Add unix- as well as windows shell commands in a platform independent manner (Falco Prescher)
            - Add language "message/cli" using command-line output, other than "message/tui" which uses whole screen terminal output
            - Update gui cybol example application
        * Project:
            - Update cybol api specification (Johannes David)
            - Update beginner's manual and translate into English (Tim Illner)
            - Add cybol source editor "Cybol-Eclipse-Plugin" (Michael Dietrich)
            - Add cybol source editor "cybol_web_creator" (Axel Petzka)
            - Add cybol source editor "Visual_Cybop" (Alexander Papenfuß)

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 (largely contributed by Enrico Gallus)
            - Add new operations: represent/serialise, represent/deserialise, access/get-name
        * Project:
            - Add "cybol_extension" tutorial (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>
        * CYBOI:
            - Restructure CYBOI command line argument handling to allow for dynamic log file, log level etc.
            - Recognise command line options: version, help, test
            - Implement file output of text, now available in CYBOL
            - Implement shell input, output, error output, now available in CYBOL
            - Complete serialiser converting cybop knowledge models into structured text called "model diagram" (good for debugging cybop knowledge models)
            - Generate formatted xhtml code, with tags and attributes, from CYBOL
            - Provide first version of web user interfaces (wui) using tcp socket (not usable yet)
            - Complete parser converting the German X Datentraeger (xDT) medical exchange format into CYBOI knowledge models
            - Add opengl startup and shutdown
            - Add new test procedures
            - Internal improvements and bugfixes
        * CYBOL:
            - Update cybol example applications
        * Project:
            - Add opengl/ mesa libraries to makefile

CYBOP 0.7.0, 2006-09-09, Christian Heller  <christian.heller@tuxtax.de>
        * CYBOI:
            - Update and add more things for wide character handling
            - Prepare access to meta elements of a compound double hierarchy; two knowledge tree separators are now possible: the part separator . and the meta separator #
            - Restructure compound handling, so that functions now get handed over the compound model and corresponding compound details (meta information)
            - Provide universal "get" function, so that CYBOL knowledge templates can be written much more flexibly, since models can be given as
                1 hard-coded inline value
                2 hierarchical name to a model (= encapsulated model)
                3 hierarchical name pointing to another hierarchical name containing a model (= double-encapsulated model)
            - Implement threads using mutexes (atomic flags) for reception of signals via x window system and linux console (terminal)
            - Interrupt (exit) and free resources of all receive service threads automatically at system shutdown, which is necessary in case a CYBOL application developer forgot to do that
            - Rework textual user interface (tui) handling; introduce windowing technique
            - Implement selective repaint; small areas instead of the whole textual user interface (tui) can be repainted now
            - Implement x window system gui event handling
            - Add unix shell command processing from within CYBOL
        * CYBOL:
            - Add a number of new model constants (boolean operations, bit manipulation operations etc.)
            - Remove CYBOL_ABSTRACTION everywhere and replace with COMPOUND_ABSTRACTION, which existed in parallel
        * Project:
            - Add libpthread library to Makefile, for linking
            - Add minor things to Makefile, for Linux-Windows platform compilations, so that conditional preprocessor directives like: #ifdef LINUX_OPERATING_SYSTEM can be used in the source code
            - Provide source code tar balls (tar.gz), as pre-condition
            - Update Debian packages
            - Sponsor Debian packages and upload to testing distribution

CYBOP 0.6.0, 2005-08-29, Christian Heller  <christian.heller@tuxtax.de>
        * Project:
            - Adapt Makefile to restructured source code directories
        * CYBOI:
            - Prepare terminal handling of Textual User Interfaces (TUI); (see Zemljanka and TurboVision)
            - Debug many errors caused by NULL_POINTER checks which tested the variables instead of their dereferenced values
                wrong: if (a != NULL_POINTER)
                right: if (*a != NULL_POINTER)
                this caused knowledge models not to be created/ added to the knowledge root/ whole model
            - Replace NULL_POINTER with &NULL_POINTER, where a local void** variable is initialised
            - Remove all const keywords before static variables and before parameters in headers of procedures, for less code, improved readability and because the const keyword is considered useless now:
                (1) pointers that were handed over do mostly not get manipulated directly anyway, only pointers within the array pointed to
                (2) arrays defined with = {} are constant anyway
            - Delete all character counts and replace them with just one count constant
            - Change and unify all comparisons, so that their if expressions now compare for equality with 0 instead of 1
            - Replace constant count variables with the already existing integer counts, to save redundant code and also some memory, e.g.:
                static const int COMMA_CHARACTER_COUNT_ARRAY[] = {1};
                static const int* COMMA_CHARACTER_COUNT = COMMA_CHARACTER_COUNT_ARRAY;
                replaced with:
                static const int* COMMA_CHARACTER_COUNT = NUMBER_1_INTEGER_ARRAY;
            - Delete superfluous source files for primitives; only vectors are used now everywhere
            - Rename string to character vector
            - Simplify source code by replacing POINTER_NULL_POINTER, INTEGER_NULL_POINTER, FILE_NULL_POINTER etc. in all source files with just NULL_POINTER
            - Replace allocate_integer and others with more general procedure allocate
            - Prepare send_terminal procedure for tui output
            - Rename low-level receive/ send into read/ write, to better distinguish them from the high-level receive/ send CYBOL operations
            - Rename low-level create/ destroy into allocate/ deallocate, to better distinguish them from the high-level create/ destroy CYBOL operations
            - Rename file set.c to copy.c
            - Add knowledge memory and signal memory to internal memory; this HAS TO BE DONE, because when using threads, ONLY ONE parameter (the internal memory) can be handed over to these
            - Hand over internal memory, knowledge memory and signal memory as parameters, instead of reading them every time from internal_memory
            - Rename internals_memory to internal_memory
            - Adapt some include paths and procedure names after restructuring
            - Delete memory managers and put code into general manager.c
            - Write log messages to a file instead of to console
            - Replace all American English (e.g. lize suffixes) with British (Commonwealth) English (e.g. lise) which is now consistently used throughout all source code
            - Move directories communicator, converter and translator from parent directory controller to parent directory memoriser
            - Rename directory computer to applicator
            - Restructure source code directories in relation to von Neumann computer architecture, i.e. consisting of the parts:
                memoriser (Memory, containing states)
                controller (Control Unit, coordinating flow)
                applicator (Arithmetic Logic Unit = ALU, containing logic)
                globals (additional, global constants and variables)
                tester (additional, for testing)
        * CYBOL:
            - Add some abstraction- and structure constants

CYBOP 0.5.0, 2005-06-28, Christian Heller  <christian.heller@tuxtax.de>
        * Project:
            - Create Debian Packages cybop, cybop-papers, cybop-presentations, cyboi-dev
            - Move additional application packages like resadmin etc. to Res Medicinae project
        * CYBOI:
            - Complete implementation of the loop operation
            - Correct bug in get_new_signal_id of signal_memory_accessor.c
            - Implement Web User Interface (WUI) handling by generating (translating) HTML from CYBOL (comparable to XUL/ UIML)
            - Extend sources for handing over string parameters in URL, using escape code sequences
            - Add url_refresh operation
            - Implement post operation for web communication
            - Add new abstraction knowledge for runtime access to knowledge model
            - Enable dynamically created logic models
            - Generalise handling of services using startup/ shutdown operations
            - Run tcp service in an own thread
            - Synchronise signal memory using Mutex
            - Use send operation for placing runtime signals read from a CYBOL source into the signal memory
            - Restructure source directories, following von Neumann architecture (controller, memory, computer, globals)
            - Remove /web directory (tcp procedures are now in receive_tcp_socket.c; client socket and signal numbers are in internals_memory_accessor.c)
            - Remove input_output_activator.c (now done by startup/ shutdown and receive/ interrupt/ send service calls in CYBOL)
            - Remove input_output_handler.c (activation/ blocking flags etc. are now created/ destroyed in corresponding startup/ shutdown procedure)
        * CYBOL:
            - Get Res Admin application with web frontend running
            - Remove all examples prefixes from model directory names in Res Admin application
            - Replace helloworld_with_shutdown through helloworld_dynamic_logic
            - Rename configuration.cybol to run.cybol in all CYBOL applications

CYBOP 0.4.0, 2005-03-01, Christian Heller  <christian.heller@tuxtax.de>
        * Project:
            - Debian Packages cyboi-doc and cybol-examples
        * CYBOI:
            - Move global variables and constants into special files
            - Use encapsulated primitives so that pointers can be handed through the system, instead of copies of char, int, double etc.; encapsulation is also necessary to preserve a primitive's value in memory -- otherwise, their value gets lost as soon as a parser procedure is left
            - Complete system lifecycle and waiting loop
            - Simplify configuration file which now consists of solely key-value pairs, on just one level, NOT hierarchically
            - Store configuration values internally in a simple pointer array instead of an extra data structure; it is not necessary to store additional type information in a second column of the internals memory, because internals are ALWAYS simple pointers to some date structure that was created outside the internals memory
            - Adapt whole system to new configuration handling
            - Factor out code from cyboi main function into separate files and procedures, for better overview
            - Change all get procedures in arrays, so that only references, but NOT copies are delivered back; change system accordingly
            - Change complete CYBOI system from unnecessary triple-referenced pointers to simple ones
            - Only hand over those variables as double reference which:
                (1) will carry a result to be delivered back
                (2) have to be treated as array
            - Remove signal from signal_memory only AFTER the signal has been handled
            - Correct A LOT OF bugs causing segmentation faults at runtime
            - Get Hello, World! application running
        * CYBOL:
            - Create first example applications exit and helloworld
            - Prepare resadmin application with web frontend

CYBOP 0.3.1.1, 2004-12-06, Christian Heller  <christian.heller@tuxtax.de>
        * CYBOI:
            - Mark /etc/cyboi/config.cybol as configuration file
            - Add CYBOI manpage cyboi.1.gz

CYBOP 0.3.1, 2004-11-23, Christian Heller  <christian.heller@tuxtax.de>
        * Project:
            - Debian Package for CYBOI interpreter
        * CYBOI:
            - Prepare TCP/IP sockets
            - Change handling of internals

CYBOP 0.3.0, 2004-09-13, Christian Heller  <christian.heller@tuxtax.de>
        * Project:
            - Compile CYBOI under Windows OS, using GNU C compiler and CYGWIN
        * CYBOI:
            - Communication over Sockets
            - Reimplement compound model, according to new CYBOL structure
            - Continue XML parser, using libxml2 as temporary solution
        * CYBOL Core:
            - Rethink CYBOL structure
            - Create simple CYBOL example file just exiting the application

CYBOP 0.2.2, 2004-06-23, Christian Heller  <christian.heller@tuxtax.de>
        * CYBOI:
            - Fix several bugs in model handling
            - Create transient copies of all persistent sources, instead of pointing to persistent sources which get freed after some time which resulted in null pointers
            - Extend number of command line parameters, providing more options for running CYBOI
            - Enable reading of sources from inline and file location

CYBOP 0.2.1, 2004-06-11, Christian Heller  <christian.heller@tuxtax.de>
        * CYBOI:
            - Correct determination of highest priority index in signal memory
            - Restructure project directories: /constants --> /constant; /model --> /array; /model --> /state; /statics --> /state; /dynamics --> /logic
            - Move operation (being state knowledge) to /state
            - Bundle all constants in just one place
            - Use more constants, instead of hard-coded values
            - Introduce constants for log messages
            - Improve logger; removed all dependencies from other project parts (like array)
            - Hand over size and count as parameters; do not keep them in one array with pointers
            - Prepare processing of compound signals
            - Factor out two procedures handle_create_model_signal and handle_send_signal from handle_operation_signal
            - Adapt create_model procedure to read cybol sources from several locations like inline|file|ftp
            - Add test procedures in an own testing module
            - Prepare processing of compound signals

CYBOP 0.2.0, 2004-04-29, Christian Heller  <christian.heller@tuxtax.de>
        * Project:
            - Write make files for building CYBOI interpreter from C sources
        * CYBOI:
            - Rewrite CYBOI in C programming language
            - Start writing or using an existing XML parser (like libxml)
            - Insert first graphics drawing routines (xlibs)
        * CYBOL Core:
            - Eliminate java object tags

CYBOP 0.1.0, 2003-09-11, Christian Heller  <christian.heller@tuxtax.de>
        * Project:
            - Split java sources into CYBOL and CYBOI
        * CYBOI:
            - CYBOI is an interpreter that can read CYBOL files and create systems
            - Write CYBOI in Java
            - Catch events from Java AWT event queue
            - Use the Apache Xerces XML parser
            - Create static structures of instances in memory
            - Run dynamic loop catching signals from internal signal memory (queue)
            - Create GUI using Java Swing (as temporary workaround)
            - Create CYBOI by renaming and altering the ResMedLib base library of the Res Medicinae project
        * CYBOL Core:
            - CYBOL is based on XML syntax
            - One file represents an abstract item/ category/ class/ hierarchy
            - Other files can be linked as complex data types
            - Primitive data types are treated as final abstraction
            - Include inheritance

CYBOP 0.0.7, 2003-06-23, Christian Heller  <christian.heller@tuxtax.de>
        * (no history)

CYBOP 0.0.6, 2003-04-28, Christian Heller  <christian.heller@tuxtax.de>
        * (no history)

CYBOP 0.0.5, 2003-03-15, Christian Heller  <christian.heller@tuxtax.de>
        * (no history)

CYBOP 0.0.1-0.0.4, 1999-2003, Christian Heller  <christian.heller@tuxtax.de>
        * See http://www.resmedicinae.org/
