<?xml version="1.0" encoding="UTF-8"?>

<!-- ====================================================================== -->
<!-- = chapter-3.xml                                                      = -->
<!-- = afnix installation guide chapter 3                                 = -->
<!-- ====================================================================== -->
<!-- = This  program  is  free  software; you  can redistribute it and/or = -->
<!-- = modify it provided that this copyright notice is kept intact.      = -->
<!-- = This program is distributed in the hope that it will be useful but = -->
<!-- = without  any  warranty;  without  even  the  implied  warranty  of = -->
<!-- = merchantability or fitness for  a  particular purpose. In no event = -->
<!-- = shall  the  copyright  holder be liable for any  direct, indirect, = -->
<!-- = incidental  or special  damages arising  in any way out of the use = -->
<!-- = of this software.                                                  = -->
<!-- ====================================================================== -->
<!-- = copyright (c) 2005-2007 - amaury darsch                            = -->
<!-- ====================================================================== -->

<chapter id="vol-0-03">
 <title>Release notes</title>

 <p>
 This chapter contains  the release notes for the <afnix/> standard
 release. Release notes are given in descending order for a particular
 version. The standard notation is <em>major.minor.patch</em> 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.
 </p>

 <!-- release 1.4.x -->
 <section>
   <title>Release 1.4</title>

   <!--release features -->
   <subsect>
     <title>Release features</title>

     <list>
       <item ref="Core engine: unicode 5.0 support">
       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.
       </item>
       <item ref="Core language: instance inference">
       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. 
       </item>
       <item ref="Core language: print table object">
       The <code>PrintTable</code> object has been enhanced with a
       <code>dump</code> method similar to the <code>format</code> method.
       </item>
       <item ref="Core language: property list object">
       The <code>Property</code> and the <code>Plist</code> 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.
       </item>
       <item ref="Core modules: xml module">
       A new module called <code>afnix-xml</code> 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.
       </item>
       <item ref="Core modules: nwg module">
       A new module called <code>afnix-nwg</code> has been added. The module
       provides the support for the <em>network working group</em>
       objects such like <code>Uri</code> object. The module also
       provides the foundation for the mime support.
       </item>
       <item ref="Core modules: web module">
       The <code>afnix-web</code> module has been removed and replaced
       by the <code>afnix-wam</code> service.
       </item>
       <item ref="Core service: wam service">
       The <code>afnix-wam</code> 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 <em>web application management</em> 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.
       </item>
     </list>
   </subsect>

   <!-- release history -->
   <subsect>
     <title>Release history</title>

     <list>
       <item ref="01/28/2007: release 1.4.3">
       This release is a minor release that fixes  the "install" rule
       in the etc directory.
       </item>    
       <item ref="01/01/2007: release 1.4.2">
       This release is a minor release that fixes the tcp socket read
       method that incorrectly handles a connection reset by the
       peer. The <code>Time</code> class also incorporates a small fix
       for the <code>to-rfc</code> method.
       </item>    
       <item ref="11/09/2006: release 1.4.1">
       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.
       </item>       
       <item ref="11/06/2006: release 1.4.0">
       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 <em>web application management</em> or
       <em>wam</em> 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.
       </item>
     </list>
   </subsect>
 </section>

 <!-- release 1.3.x -->
 <section>
   <title>Release 1.3</title>

   <!--release features -->
   <subsect>
     <title>Release features</title>

     <list>
       <item ref="Core language: ISO-8859 transcoding support">
       The core engine has been modified to integrate a character transcoder
       that permits the support all <em>ISO-8859</em> 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 <option>-e</option> has been added to
       force a particular encoding.
       </item>
       <item ref="Core language: Logger base class">
       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.
       </item>
       <item ref="Core language: Heap class">
       A heap class has been added. The heap can operate in ascending or
       descending mode. This class can be used to support priority queue.
       </item>
       <item ref="Core language: Option class">
       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.
       </item>
       <item ref="Core language: Date class">
       The <code>Time</code> class has been completely changed and a new
       <code>Date</code> 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.
       </item>
       <item ref="Client: cross spreadsheet client">
       The <code>axs</code> client has been modified to support the
       <code>axs:insert-marker</code>, <code>axs:insert-header</code> and
       <code>insert-footer</code> control commands.
       </item>
       <item ref="Core modules: speadsheet module">
       The <code>Folio</code> and <code>Sheet</code> classes have been
       substantially updated to support additional information. The
       <code>Sheet</code> 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.
       </item>
       <item ref="Core modules: web module">
       The <code>Table</code> class has been modified to support the
       concept of table data header. The associated methods have been
       added to the class and a new <code>HtmlTh</code> 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 <tt>class</tt> tag that is now part of
       the class constructor. The <code>HtmlPage</code> class has been
       put in strict conformance with xhtml 1.1 and the
       <code>XHtmlpage</code> class has been removed.
       </item>
       <item ref="Core modules: pim module">
       A new module called the <code>afnix-pim</code> module has been
       added to the base distribution. The <em>personal information
       management or pim</em> module is designed to ease the management
       of personal information and agenda.
       </item>
       <item ref="Core modules: gfx module">
       A new module called the <code>afnix-gfx</code> 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.
       </item>
     </list>
   </subsect>
 </section>

 <!-- release 1.2.x -->
 <section>
   <title>Release 1.2</title>

   <!--release features -->
   <subsect>
     <title>Release features</title>

     <list>
       <item ref="Core language: Unicode support">
       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 <code>String</code> and <code>Character</code>
       classes are now operating with a Unicode representation. The
       design of an Unicode based engine also impacts several classes 
       like the <code>Regex</code>, <code>Buffer</code> and stream
       classes. A new class called <code>Byte</code> is also designed to
       handle byte character. A new stream model with a base
       <code>Stream</code> 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.
       </item>
       <item ref="Core language: orphan instance and reparenting">
       The <afnix/> object model now supports the creation of <em>orphan
       instance</em> 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.
       </item>
       <item ref="Core modules: network module">
       The <code>Address</code> class has been updated to reflect the
       access to address aliases.
       </item>
       <item ref="Core modules: text processing module">
       The <code>Literate</code> class has been updated to reflect the
       support of Unicode characters. The class can operate both in byte
       mode or in Unicode character mode.
       </item>
     </list>
   </subsect>
 </section>

 <!-- release 1.1.x -->
 <section>
   <title>Release 1.1</title>

   <!--release features -->
   <subsect>
     <title>Release features</title>

     <list>
       <item ref="Core language: Large file support">
       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.
       </item>
       <item ref="Core libraries: Secure hash algorithm">
       The cryptographic library incorporates the support for the SHA-1,
       SHA-256, SHA-384 and SHA-512 hash algorithms.
       </item>
       <item ref="Core libraries: Standard symmetric cipher">
       The cryptographic library incorporates the support for the
       Advanced Encryption Standard (AES) as a symmetric cipher.
       </item>
       <item ref="Core libraries: ODC library renamed">
       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.
       </item>
       <item ref="Core libraries: xhtml 1.1 support">
       The XhtmlPara class is now configured d to support XHTML 1.1 with
       utf-8 encoding.
       </item>
       <item ref="Documentation: XML based documentation">
       The documentation has been rewritten completely in XML. An
       <afnix/> 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.
       </item>
     </list>
   </subsect>

   <!-- release history -->
   <subsect>
     <title>Release history</title>

     <list>
       <item ref="10/04/2005: release 1.1.2">
       This release incorporates a fix for a terminal capability error.
       </item>
       <item ref="08/25/2005: release 1.1.1">
       This release incorporates fixes for several build problems with
       the FreeBSD platform.
       </item>
       <item ref="08/19/2005: release 1.1.0">
       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. 
       </item>
     </list>
   </subsect>
 </section>

 <!-- release 1.0.x -->
 <section>
   <title>Release 1.0</title>

   <p>
   The 1.0 release is the initial <afnix/> release. This release
   replaces the old <package>ALEPH programming language</package>
   which has been discontinued.
   </p>

   <!-- release history -->
   <subsect>
     <title>Release history</title>

     <list>
       <item ref="04/19/2005: release 1.0.3">
       This release incorporates the necessary files that support
       <package>GCC 4</package>. It also provides some minor fixes that
       were preventing the compilation on some 64 bits platforms.
       </item>
       <item ref="03/02/2005: release 1.0.2">
       This release incorporates a minor fix that could cause the build
       process to fail.
       </item>
       <item ref="02/16/2005: release 1.0.1">
       This release incorporates a minor fix that could cause the build
       process to fail.
       </item>
       <item ref="01/16/2005: release 1.0.0">
       This is the primary release 1.0.0 which originated from the
       <package>ALEPH programming language</package> and which has been
       discontinued. A complete history of the language is provided in
       the description page.
       </item>
     </list>
   </subsect>
 </section>
</chapter>
