# Release notes

This chapter contains the release notes for the standard release. Release notes are given in descending order for a particular version. The standard notation is major.minor.patch which represents respectively, the major, minor and patch number. A major version number changes indicates a substantial change in the distribution, including new tools, application interface and license. A minor version number change indicates noticeable change, with or without new tools but without application interface change nor license change. Finally, a patch number change indicates a simple change to fix problem. There is no additional features in a patch nor an application interface change.

## Release 1.6

### Release features

The core engine has been seriously modified to accomodate for a new object collection system (aka garbage colelction). The new system is more robust and provides new mechanism that will permit to reclaim cyclic structure as well as detroying global object on demand.
The core engine has been adapted to support the new MACOS X Leopard operating system.

### Release history

AFNIX 1.6.0 has been released. This release provides is an intermediate candidate toward another major release. The most important thing is that the object collection engine has been redesigned and that MACOS X Leopard is now supported.

## Release 1.5

### Release features

The core engine continues to be updated in order to better support the Unicode 5.0 standard. With this release, the string normalization scheme is now in place and used by default internally. This implies among other things, a better support for multiple diacritics as well as the beginning of the standard collation algorithm.
The `Logger` base class has been enhanced to support the generation of a log file. An output stream can now be bound to the object.
The concept of class defer object has been added to the `Class` object. The `defer` mode is the opposite of the `infer` mode and provides a mechanism for base class creation.
The `PrintTable` object has been enhanced to support the concept of table header.
The exception object `what` can be thrown with the reserved keyword `throw`. This provides a mechanism to re-throw an exception.
A critical bug in the core engine affecting the behavior of the `return` reserved keyword in a `try` block has been fixed. A return form inside a try block was incorrectly generating an exception which was subsequently catched by the try block.
The base network module has been enhanced to better operate with IPV6. In particular, when both IPV4 and IPV6 stacks are present and a host name (typically localhost) have an address entry, the socket constructor make sure it can build an object. The IPV6 address display has been rewritten.
A new object called `Pathname` has been added to support the manipulation of system path. In addition, two new functions `mkdir` and `mhdir` have been also added to support the directory creation, both normally and hierarchically.
The `Uri` has been dramatically enhanced to conform to the RFC 3986. In particular, the path representation for urn is now working properly. The cookie object has been massaged to support the cookie version 1, although it does not seem to be supported (yet!) by the browsers.
The xml module has been enhanced with a new parsing system called the simple model. In the simple model, nodes are parsed in a linear fashion. The node content is available in the form of a string and its interpretation is at the user discretion.
The `afnix-wam` service has been renamed as `afnix-wax`. The service has also been updated with two new objects, namely the `XmlMime` and `XhtmlMime` which permits to build a mime representation of an xml tree. Several xhtml objects have also been added to complete the collection. This include the `XhtmlScript` for example.
The `afnix-xpe` service has been added as a new service. The xml processing environment (xpe) provides a xml processor that permits manipulate the whole xml tree with the help of various xml processor features. In particular, the service provides the support for the xml include extension.
This release incorporates for the first time, the concept of core project, which represents a librarian or an application written in . The first project is the AFNIX protocol extension or apx which is a message based protocol designed to transport request/reply messages within a client/server environment. The message is built with the xml library and the librarian provides the encapsulation layer.
The AFNIX media dumper or amd project is a complete application designed to illustrate the design of an application inside . The application permits to dump an uri content into a file.

### Release history

AFNIX 1.5.2 has been released. This is a minor release that fixes the build process with GCC 4.2.
AFNIX 1.5.1 has been released. This is a minor release that fixes the documentation targets during the build process.
AFNIX 1.5.0 has been released. This release provides a xml processor in the form of a new service module called 'xml processing environment'or xpe. The whole documentation generation is now fully automated, thanks to the new xml processor. This release also provides a better support for the 'web application extension' or wax service. The support for the GNU/FreeBSD platform has also been added in this release. As usual, this release comes with its wagon of bug fixes, notably this time in the network field especially with IPV6 on the FreeBSD platform.

## Release 1.4

### Release features

The core engine has been substantially changed to support the new Unicode 5.0 standard. As of now, the engine is in place internally, but not fully activated. In particular, the string normalization is implemented but not activated. The next release should incorporate the full system with a change that should be transparent to the user.
An instance inference mechanism -- which is equivalent to the concept of virtual constructor -- has been added to the core engine. Such system permits to derive top instance from a base instance construction.
The `PrintTable` object has been enhanced with a `dump` method similar to the `format` method.
The `Property` and the `Plist` objects have been added to the standard library. a property is name/value pair. The property list object is an iterable object that stores property objects.
A new module called `afnix-xml` has been added. The module provides the foundation for a full xml 1.0/1.1 support. The module also includes a parser that permits to build xml tree. A xml tree writer is also part of the module functionality. A xml processor is not yet available and is expected in the next release.
A new module called `afnix-nwg` has been added. The module provides the support for the network working group objects such like `Uri` object. The module also provides the foundation for the mime support.
The `afnix-web` module has been removed and replaced by the `afnix-wam` service.
The `afnix-wam` service has been added as the first service into the core distribution. A service differs from a module in the sense that it is a combination of different modules. The web application management service depends on the xml and nwg modules. The service provides all the functionality to support a http session, including xhtml page generation and cgi request reply.

### Release history

This release is a minor release that fixes the "install" rule in the etc directory.
This release is a minor release that fixes the tcp socket read method that incorrectly handles a connection reset by the peer. The `Time` class also incorporates a small fix for the `to-rfc` method.
This release is a minor release that fixes the lexer for not parsing correctly some floating point numbers. The standard i/o documentation is also fixed. A print media support is now available in the documentation.
This release incorporates the Unicode 5.0 standard as well as a brand new xml module. This release also introduces the concept of service module, which provides additional functionalities on top of regular modules. A new service module called web application management or wam is also introduced with this release. This service module is based on the newly created xml module and replaces the old web module which has been obsoleted immediately.

## Release 1.3

### Release features

The core engine has been modified to integrate a character transcoder that permits the support all ISO-8859 codesets which are mostly used for the encoding of european and arabic characters. Depending on the locale settings, the transcoder automatically remaps the 8 bits characters into their respective unicode character. All clients have been updated to detect their associated locale and to set automatically the appropriate transcoder. A new option `-e` has been added to force a particular encoding.
A logging base class has been added. The logging facility provides the interface to store messages by time and level. This class is further extended in the modules.
A heap class has been added. The heap can operate in ascending or descending mode. This class can be used to support priority queue.
An option class has been added in order to ease the option capture when designing an application. The class permits to define the valid options and offer a powerful retrieval mechanism.
The `Time` class has been completely changed and a new `Date` class has been added. The new mechanism provides a better separation between the time and the date, increase the date range and authorizes the support for multiple calendar.
The `axs` client has been modified to support the `axs:insert-marker`, `axs:insert-header` and `insert-footer` control commands.
The `Folio` and `Sheet` classes have been substantially updated to support additional information. The `Sheet` also supports the concept of markers that marks the sheet columns by literals. The concept of column tagging has been added with the associated search methods. All classes also contain an information field. The importation mechanism now supports a cons cell that defines both the cell name and the cell value.
The `Table` class has been modified to support the concept of table data header. The associated methods have been added to the class and a new `HtmlTh` has been added. The concept of tag propagation has also been added. If a tag element already exists, this one is not added. This is particularly true for the class tag that is now part of the class constructor. The `HtmlPage` class has been put in strict conformance with xhtml 1.1 and the `XHtmlpage` class has been removed.
A new module called the `afnix-pim` module has been added to the base distribution. The personal information management or pim module is designed to ease the management of personal information and agenda.
A new module called the `afnix-gfx` module has been added to the base distribution. The module contains the base class that supports the graph data structure which was previously part of the standard library.

## Release 1.2

### Release features

The core engine has been substantially modified to integrate the support for Unicode characters. Depending on the system settings the reader automatically adjust itself to operate in byte mode or in UTF-8 mode. The `String` and `Character` classes are now operating with a Unicode representation. The design of an Unicode based engine also impacts several classes like the `Regex`, `Buffer` and stream classes. A new class called `Byte` is also designed to handle byte character. A new stream model with a base `Stream` class has also been added. The full support with Unicode character is not yet completed. In particular, certain codesets are not supported at all. This is particularly true with case-conversion functions.
The object model now supports the creation of orphan instance which is an instance without a class attached to it. The instance can be later bound to a class and such class can even be changed during the course of the program execution.
The `Address` class has been updated to reflect the access to address aliases.
The `Literate` class has been updated to reflect the support of Unicode characters. The class can operate both in byte mode or in Unicode character mode.

## Release 1.1

### Release features

Support for the large file system has been added in the base distribution. All input/output operations as long as they are supported by the operating system are now done in 64 bits mode.
The cryptographic library incorporates the support for the SHA-1, SHA-256, SHA-384 and SHA-512 hash algorithms.
The cryptographic library incorporates the support for the Advanced Encryption Standard (AES) as a symmetric cipher.
The ODC library has been renamed to SPS which stands for spreadsheet library. This new name is considered more appropriate for the function the library achieves.
The XhtmlPara class is now configured to support XHTML 1.1 with utf-8 encoding.
The documentation has been rewritten completely in XML. An DTD as well as the necessary XSLT style sheets have also been designed to produce a professional documentation which can be used for printing or for online browsing.

### Release history

This release incorporates a fix for a terminal capability error.
This release incorporates fixes for several build problems with the FreeBSD platform.
The 1.1 release is yet another milestone that incorporates a full redesign of the documentation tree as well as the inclusion of the cryptographic library that features some original implementations. The full documentation is now available in XML format and can be accessed online.

## Release 1.0

The 1.0 release is the initial release. This release replaces the old `ALEPH programming language` which has been discontinued.

### Release history

This release incorporates the necessary files that support `GCC 4`. It also provides some minor fixes that were preventing the compilation on some 64 bits platforms.
This release incorporates a minor fix that could cause the build process to fail.
This release incorporates a minor fix that could cause the build process to fail.
This is the primary release 1.0.0 which originated from the `ALEPH programming language` and which has been discontinued. A complete history of the language is provided in the description page.