Provided by: afnix_3.5.0-3_amd64 bug

NAME

       std-us-notes - afnix installation guide

INSTALLATION GUIDE

       This  chapter  describes  the  installation  procedures  for  the   AFNIX   writing system
       distribution. This chapter explains how to set and compile this distribution.

       Software distribution
       The complete distribution can be downloaded from the AFNIX home  page.  The  result  is  a
       complete  source  tree  that  is ready for compilation. The distribution contains also the
       documentation as well as examples. The distribution is supported on a variety of platforms
       as  indicated  below  that  can be either 32 bits or 64 bits machines. The distribution is
       also available at the FreeBSD port collection.

       Platform   Processor        Operating system
       Linux      X86-32, X86-64   Linux 3.x, 4.x, 5.x
       FreeBSD    X86-32, X86-64   FreeBSD 8.x, 9.x, 10.x.x, 11.x.x, 12.x.x
       Gnu        X86-32, X86-64   GNU KBSD, GNU Hurd

       Specific processors like the Alpha, M68K, ARM, MIPS, RISCV and SUPERH are  also  supported
       on  certain  distributions. The PowerPC (PPC) processor has been discontinued. The Solaris
       SPARC platform has been discontinued. Do not hesitate to contact the development team  for
       specific processor or platform support.

       Installation procedure
       The  core  software  is written in C++. It has been successfully built with the latest GNU
       GCC 10. The clang compiler has also been succesfully tested. You will also  need  the  GNU
       Make  package. With some distributions the command is called gmake. Note that the Makefile
       hierarchy is designed to operate safely with the -jGNU Make option.

       Unpacking the distribution
       The distribution is available as a compressed tar file. Note  that  the  documentation  is
       distributed in a separate file. The following command unpacks the distribution.

       zsh> gzip -d afnix-src-[version].tar.gz
       zsh> tar  xf afnix-src-[version].tar

       Quick command reference
       The  list of commands to execute is given in the example below. A detailed description for
       each command is given hereafter. The make world command is the default command that builds
       the whole tree with the default compiler.

       zsh> ./cnf/bin/afnix-setup -o --prefix=/usr/local/afnix
       zsh> make status
       zsh> make [-j]
       zsh> make test
       zsh> make install
       zsh> make clean

       With  some  platforms,  the make command should be replaced by the gmake command. The make
       status command is optional and can be used to  report  the  internal  value  contents.  In
       particular, the version and the installation parameters are reported.

       Configuration
       The  afnix-setup  command  can  be invoked to setup a particular configuration. You should
       have your compiler on your search path. Normally, the command given below is enough.

       zsh> ./cnf/bin/afnix-setup -o --prefix=/usr/local/afnix

       This command checks that the target platform can be detected and configured. The -o option
       configures  the  compilation in optimized mode. Use the -g option can be used to configure
       the build process in debug mode. The --prefix option sets the installation directory. Note
       that the compilation process is done in the distribution tree and that the --prefix option
       affects only the installation operations. The -v  option  is  the  verbose  option.  Other
       options are available for fine tuning.

       Option     Description                              Default
       -h         Print a help message                     n/a
       -v         Set the verbose mode                     n/a
       -g         Set the debug mode                       yes
       -o         Set the optimized mode                   no
       --help     Same as -h                               n/a
       --prefix   Set the target install directory         /usr/local
       --shrdir   Set the shared install directory         /usr/local/share
       --altdir   Set the alternate install directory      /usr/local
       --sdknam   Set the target sdk by name               platform dependent
       --sdkdir   Set the target sdk directory             platform dependent
       --ccname   Set the default compiler                 platform dependent
       --shared   Compile and link dynamically             yes
       --static   Compile and link statically              no
       --openmp   Enable the optional openmp compilation   no

       The prefix option set the root installation directory. The binary and library installation
       directories are derived from it. The shrdir set the shared installation directory which is
       normally used for the installation of the manual pages on most popular systems. the altdir
       sets the alternate installation directory. Normally  this  path  should  be  empty  as  it
       affects  the  path  for the etc directory. This flag should be used when using a prefix to
       unusual destination. The ccname option can be used to force a particular compiler with the
       help  of  a  compiler configuration file. The -s or --static option can be used to build a
       static executable. Normally, this option should not be used since it restrict the  use  of
       extension  modules.  The  shared  controls  whether or not the dynamic libraries should be
       built. This option is detected automatically for a particular platform and should be  used
       only  by  package  maintainer.  There  exists  also  specific options which are mostly for
       package maintainers. At this time, the build process integrates  the  Debian,  Ubuntu  and
       Fedora specific packaging mechanism.

       Option     Description                              Default
       --pkgnam   Set the distribution package             none
       --pkgbin   Set the optional package bin directory   none
       --pkglib   Set the optional package lib directory   none
       --pkgprj   Set the optional package prj directory   none
       --pkghdr   Set the optional package hdr directory   none
       --pkgetc   Set the optional package etc directory   none
       --pkgman   Set the optional package man directory   none
       --pkgdoc   Set the optional package doc directory   none
       --pkgwww   Set the optional package www directory   none
       --pkgsrv   Set the optional package srv directory   none

       Compiling the distribution
       The  compilation  process is straightforward. With some platforms, the make accepts the -j
       that enables concurrent operations.

       zsh> make [-j]

       This will build the complete distribution locally. If an  error  occurs,  it  is  best  to
       report it at the (bugs@afnix.org) AFNIX bug report mail address.

       Testing the distribution
       The  distribution contains all test suites. The test suites are compiled and executed with
       the following command.

       zsh> make test

       This command run the test suites for each library as well as  the  test  suites  for  each
       application  client.  Most  of  the  base  library test suites are written in C++ with the
       application test suites written in the core writing system.

       Installing the distribution
       Once the system has  been  built  and  tested,  it  can  be  installed.  By  default,  the
       distribution tree is installed into the /usr/local directory. This can be overwritten with
       the --prefix option during the configuration process.

       zsh> make install

       There are several variables that controls the behavior of the install rule. Each  variable
       has its default value sets during the setup configuration. However, this variable can also
       be altered during the installation process

       Variable   Description                          Default
       PREFIX     The root install directory           /usr/local
       SHRDIR     The shared install directory         /usr/local/share
       ALTDIR     The shared alternate directory       /usr/local/etc
       SDKDIR     The system  kit directory            platform dependent
       BINDIR     The binary install directory         prefix/bin
       LIBDIR     The library install directory        prefix/lib
       HDRDIR     The header files install directory   prefix/include/afnix
       ETCDIR     The extra files install directory    altdir/etc/afnix

       Installing the documentation
       The documentation is installed independently of the software.  The  doc  rule  builds  the
       documentation  and  the  publish  rule  installs the documentation. Several variables also
       control the documentation installation path.

       Variable   Description                           Default
       DOCDIR     The documentation install directory   shrdir/doc/afnix
       MANDIR     The manual pages install directory    shrdir/man

       Cleaning the distribution
       The distribution is cleaned with the clean rule.

       zsh> make clean

       This rule does not clean the configuration. For a complete cleaning the reset rule is more
       appropriate.

       zsh> make reset

       Running AFNIX
       The axi command invokes the interpreter. In order to operate properly, the LD_LIBRARY_PATH
       environment  variable  must  be  configured  with  the  directory  containing  the  shared
       libraries.   If   the   libraries   have  been  installed  in  a  standard  location  like
       /usr/local/lib, there is nothing to do.

       Running some examples
       The directory exp contains various examples which can be  run.  Each  example  is  labeled
       according  to  their use in the volume 1 of the documentation set. Example 0101.als prints
       the message hello world. Example 0501.als prints  various  information  about  the  system
       configuration.

       zsh> axi EXP0501
       major version number   : 3
       minor version number   : 5
       patch version number   : 0
       interpreter version    : 3.5.0
       program name           : axi
       operating system name  : linux
       operating system type  : unix
       machine size           : 64
       afnix official uri     : http://www.afnix.org

       Special features
       The  build  process  provides  several  features that permits to customize the compilation
       process as well as the nature of the final executable. Most of the time, these options are
       reserved for the package maintainer and are given below for illustration purpose.

       Special target extensions
       Extensions  are specific libraries or executables which are not build automatically during
       the build process. The user is responsible to decide which extension  is  needed  for  the
       system  All  extensions  are  located  under  the src/ext directory. Simply going into the
       appropriate directory and running the make command will  build  the  extension.   The  asi
       extension  creates  a  static interpreter with all libraries automatically included in the
       final executable. The extension is simply build with the following command. Note that this
       extension overwrite the previous executable in the bld/bin directory.

       zsh> make -C src/ext/asi

       Extra files
       The  distribution comes with some extra files. The most important is the Emacs mode afnix-
       mode. The original source file is written in Emacs  Lisp  and  is  available  in  the  etc
       directory  of  the  distribution.  This  file should be installed according to the current
       Emacs installation.

MAINTAINER NOTES

       This chapter contains additional notes for the package maintainer. They  are  also  useful
       for  anybody  who  is  in  charge  of integrating the distribution in a build process. The
       chapter describes the distribution tree with more details.

       The distribution tree
       The distribution tree is composed of various directories. Each  of  them  has  a  Makefile
       which can be called locally or from the top level.

              cnf
              This  directory  contains  the  configuration  distribution  and various utilities.
              Normally you should not touch it, unless you are using a  compiler  different  than
              gcc.

              src
              This  directory  contains  the  complete source tree. The source code is written in
              C++. Normally this directory is left untouched. If there are good reasons to modify
              it, please contact the development team.

              tst
              This  directory  contains  the  complete  test  suites. The test suites are used by
              various programs including the main interpreter, the compiler and the debugger.  It
              shall be noted that the library distribution also includes specific test suites.

              doc
              This directory contains the complete documentation written in in XML with a special
              DTD. It should be left untouched.

              etc
              This directory contains various files associated with the distribution. Some  files
              are useful to be copied.

              exp
              This  directory  contains  various  examples.  They  are  included for illustration
              purpose.

       The process of building a package solely depends on the distribution  type.  Most  likely,
       the  standard  distribution  should  contain  the  binary  executables  as  well  as  some
       configuration file and the manual pages. The  documentation  and  the  development  header
       files can put in separate packages.

       Configuration and setup
       The  configuration  process  involves  the  use  of the afnix-setup command located in the
       cnf/bin directory. This command is used to configure the distribution. Package maintainers
       are encouraged to use it with specific options.

       Platform detection
       The  afnix-guess  command  is  used during the configuration process to detect a supported
       platform. This command can be run in stand-alone mode. Various options can be used to tune
       the type of information requested.

       Option   Description
       -h       Print a help message
       -n       Print the platform name
       -v       Print the platform version
       -M       Print the platform major number
       -m       Print the platform minor number
       -p       Print the processor name

       Without option, the utility prints a platform and processor description string.

       zsh> ./cnf/bin/afnix-guess
       linux-5.4-x64

       Platform defaults
       The  directory cnf/def contains a platform specific default file. The file determines what
       is the default compiler and linking mode. This file is used by  the  afnix-setup  command.
       For example, the afnix-darwin.def file contains:

       compiler: gcc
       lktype  : dynamic
       lkmode  : dylib

       Such options instructs the configuration utility, that the default compiler is gcc and the
       linking mode should operates in dynamic mode by using the dylib rule. These default values
       can  be  overwritten  with the equivalent option of the afnix-setup command. Note that the
       compiler version is automatically detected by the system.  The  afnix-vcomp  command  will
       return the appropriate compiler version running on the target system.

       C++ source file conventions
       THe  source tree has two types of C++ files. The first type has the extension .cxx and the
       second type has the extension .cpp. The .cxx -- and the associated .hxx -- files are  only
       used  to  indicate  a  system  dependency.  These  files are found only in the src/lib/plt
       directory. The .cxx extension indicates that the file might use  system  specific  include
       files.  The  .cpp -- and the associated .hpp -- files are the normal C++ source files. The
       .cpp extension is used to indicate that these files will not use a system  specific  file.
       By  default  this  rule  is enforced in the compiler configuration file by specifying some
       compiler flags which do not authorize such access.

       Configuration files
       The configurations files are located in the cnf/mak directory.  Normally  they  should  be
       left untouched. The most important one is the afnix-rule.mak file that defines most of the
       compilation and linking rules. Additionally, during the setup operation,  the  afnix-setup
       command  creates  several  files in the bld/cnf directory. The bld is the build directory.
       The afnix-plat.mak file is the platform configuration file and  the  afnix-comp.mak  is  a
       link to the appropriate compiler configuration file.

       Compilation
       Normally, the compilation process is immediate. Just invoking the make command will do the
       job. However, some package maintainer have  the  desire  to  overwrite  some  flags.  Some
       options are provided to facilitate this task.

              EXTCPPFLAGS
              This flag can be used to add some compilation flags for all .cpp files.

              EXTCXXFLAGS
              This flag can be used to add some compilation flags for all .cxx files.

              EXTCCDEFINE
              This flag can be used to add some compilation definitions for all source files.

              EXTINCLUDES
              This flag can be used to add some compilation paths for the .cxx files.

       For  example,  it  is  common  to  have some maintainer to compile with both the debug and
       optimize flags. This can be  done  with  the  following  command  (assuming  an  optimized
       configuration):

       make EXTCPPFLAGS=-g EXTCXXFLAGS=-g

       All  include  files,  compiled  libraries and executables are placed in the bld directory.
       This directory contains the bld/bin for binaries, bld/lib for libraries  and  bld/hdr  for
       the header files.

       Building the package
       The  package  can be built by accessing the bld directory or by invoking the install rule.
       The second method is not recommended for package construction, since it might trigger some
       file  installation without any control.  The etc/unx directory contains some special files
       that might be used for the package construction. A sample list of them is given hereafter.

              afnix-mode.el
              This file is the Emacs mode.

              afnix-gud.el
              This file is the debugger Emacs gud mode.

       Specific makefile rules
       The top level Makefile contains several  rules  that  might  be  useful  for  the  package
       maintainer.

              status
              This rule show the configuration status for each parameters with the version.

              debug
              This rule invokes the default configuration in debug mode.

              optimized
              This rule invokes the default configuration in optimized mode.

              build
              This  rule  invokes  the  default configuration in debug mode and compile the whole
              distribution. The default install directory is /usr/local.

              world
              This rule invokes the default configuration in optimized mode and compile the whole
              distribution. The default install directory is /usr/local.

              test
              This rule runs all test suites.

              doc
              This rule builds the documentation.

              distri
              This rule builds the distribution.

              install
              This rule installs the distribution.

              publish
              This rule installs the documentation.

              clean
              This rule cleans the distribution but keep the configuration.

              reset
              This rule resets the distribution including the configuration.

RELEASE NOTES

       This  chapter  contains  the  release  notes for the different releases. 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 3.5

              Core engine: release 3.5.0
              This is a important release  which  integrates  numerous  objects  that  were  long
              overdue,  including  the  support for complex numbers and numerous code cleanup. An
              undetected (until now) interlocking  bug  in  the  string  split  method  has  been
              discovered  and  fixed.  Various encoding bug have also been fixed including one in
              the readline method.

              Core modules: mth module
              Prime number generation has been improved for speed, especially  with  safe  prime.
              The quaternion object has been added.

              Core modules: nwg module
              Form  encoding  and  decoding has been enhanced. A json reader/writer has also been
              integrated.

              Core modules: sec module
              The dsa pki has been added with support for dsa parameters. The dh key support  has
              been added. The concept of key configuration and renewal has been added.

              Core modules: xml module
              The  module  has  been cleaned for simplex reader/writer design. The node formating
              generation has bee enhanced with indentation support.

              Core services: tls service
              Pkcs8 support has been added with a better integration of  key  generation.  Server
              name in extension is now supported.

              Core services: csm service
              Datum  and magma parts have been added along a general service cleanup. The concept
              of  transmuter  has  been  developped  as  a  mixture  interface.  The  blob   view
              construction has been revisited.

       Release 3.4

              Core engine: release 3.4.0
              This  is  a a minor release which integrates more support for the tls service. Safe
              prime number generation has been added. The assert special form has  been  enhanced
              to better support real testing.

              Core modules: mth module
              Real vector, point and matrix of size 1,2,2 and 4 has been added.

              Core modules: sec module
              The  gcm  mode  has  been  added.  The  elliptic  curve  objects and its associated
              arithmetic  has  been  integrated.  Tests  with  the  standard  curves  have   been
              incorporated.

              Core modules: sys module
              The  date  and  time  object  have been enhanced to support extended time with real
              precision below the second. A now  constant  is  also  available  for  setting  the
              current date and time.

              Core services: tls service
              The aes-gcm mode has been added as a cipher.

              Core services: phy service
              Direct  access to physical constants has been added. The unit string representation
              has been enhanced to support the scaling factor.

       Release 3.3

              Core engine: release 3.3.0
              This is a major release with a complete re-factoring of the interpreter  evaluation
              hierarchy.  Internally,  some  objects  are being rewritten with a c++/17 semantic.
              Many  objects  have  also  been  optimized  to  support  very  long  strings.   The
              serialization coding has also been revisited. A serious bug with negative proleptic
              date has been fixed. Another bug with the object iterator has also been fixed.

              Core engine: Unicode 13.0.0
              The Unicode standard, revision 13.0.0, has been incorporated in the core engine.

              Core engine: asynchronous evaluation
              The special form future creates a special object called a future which is  used  to
              evaluate an object asynchronously. The evaluation starts with the help of the force
              special form. The sync special form can be used to synchronize with the future.

              Core modules: mth module
              The numeral block has been enhanced to  support  row/column  order  and  line/block
              padding and the interface has been considerably enhanced.

              Core services: phy service
              The  Unit  object  has  been  added to support the definition of physical unit. The
              physic constants and the periodic table has been re-factored.

              Core services: dip service
              The geo service has been removed and the image objects have been  moved  to  a  new
              service called dip.

       Release 3.2

              Core engine: release 3.2.0
              This is a minor release issued for synchronization with other projects.

              Core engine: Numeral object
              The  numeral  object  has been completely re-factored including the api at the math
              module level.

              Core modules: nwg module
              A generic json writer has been implemented and the corresponding json  mime  object
              has been updated.

       Release 3.1

              Core engine: release 3.1.0
              This  is  a  major  release  which  new  standard  objects  as  well  as  the first
              distribution of the tls. Release 3.0 was an internal release which is will  not  be
              publicly  distributed.  The  debian  distribution has been fully integrated and the
              build system revisited to account for new platforms.

              Core engine: Unicode 12.1.0
              The Unicode revision 11.2.0 has been incorporated in the core engine.

              Core engine: Task and structure
              The core engine has been enhanced to support the concept of task. A Task is similar
              to  a  thread  object,  but  can be used directly at the api level. A new Structure
              object has been added to support object aggregation. engine.

              Core modules: net module
              The buffer read and socket sapf (socket address protocol family) have  been  fixed.
              The Autocom object has bee added to support socket re-connection.

              Core modules: nwg module
              The  IPV6  address  representation  in uri has been fixed. The Hyperlink object has
              been added.

              Core modules: geo module
              The Netpbm object has been fixed for inconsistent block delete. The  Pixmap  stride
              has been fixed.

              Core modules: sec module
              The Sha-3 family of hashers has been added. The Kdf2 function has bee refactored to
              support the Pbkdf2 standard. Support for Galois  field  has  been  added.  The  Gcm
              cipher has been added.

              Core modules: sps module
              The  csv  split  and  validation  process  has  been  added.  The  Transit has been
              revisited.

              Core modules: mth module
              The integer vector object Ivector has been added. The float vector Fvector has been
              added. Random vector generation has been added.

              Core modules: sys module
              System wait on kill has been added.

              Core services: csm service
              The  csm  objects  have  been  considerably  re-factored. Notably the Part and Blob
              objects.

              Core projects: adp project
              The standard documentation processor has been enhanced with more option for  better
              distribution support.

       Release 2.9

              Core engine: release 2.9.3
              Immediate release which fixes a potential deadlock in the output stream object.

              Core engine: release 2.9.2
              Small  revision  release  with  small allocator fixes, doc improvements and 32 bits
              inconsistencies removal. The support for 'clang' compiler has been updated as well.
              A patch with support for the RISCV processor has also been incorporated.

              Core engine: release 2.9.1
              Small revision release with minor improvements for IPV6 address support.

              Core modules: nwg module
              The  Uri  object  has  been  enhanced to support numerical ip address notation with
              brackets.

              Core modules: net module
              The Address object has been enhanced to support numerical ip address detection.

              Core engine: Unicode 11.0.0
              The Unicode revision 11.0.0 has been incorporated in the core engine.

              Core engine: serialization revisited
              The core engine serialization has been revisited to account for a larger number  of
              modules and services.

              Core engine: default hash revisited
              The core engine hash function is now based on the Fowler-Noll-Vo algorithm.

              Core engine: logger object revisited
              The  core  engine  logger  object  has  been  completely  redesigned with a simpler
              interface.

              Core modules: nwg module
              The base 64/32/16 codec have been added as a single object Basexx.

              Core modules: sec module
              The security module has been enhanced with a new signature base class.

              Core modules: wgt module
              The widget module has been added to the core distribution. At this time, the module
              contains expressable and conditional objects.

              Core services: csm service
              The content session management service has been largely refactored.

              Core services: geo service
              The  geometry  service  has  been  enhanced  to  support image and pixmap. A netpbm
              reader/writer has been added as well.

       Release 2.8

              Core engine: release 2.8.3
              Release with GCC 8 support.

              Core engine: release 2.8.2
              Intermediate release with GCC 8 support.

              Core engine: release 2.8.1
              Incorporated patches for GCC 7.

              Core engine: Unicode 9.0.0
              The Unicode revision 9.0.0 has been incorporated in the core engine.

              Core engine: Collectable objects
              The Collectable object is now being deployed inside the engine. A colletable object
              provides a release method which can be used to remove links between object.

              Core engine: full dupleix stream
              A  full dupleix object has been added as a generic object. A full dupleix stream is
              provided for certain class of object like the network socket. The default  mode  of
              operations  remains  the  half-dupleix  stream since stream access are protected by
              mutexes.

              Core modules: mth module
              The math module incorporates an infix notation parser module. This is a preliminray
              work  suppoosed to grow over the next releases. The mean, covariance and univariate
              regression has been added as objects.

              Core modules: sps module
              The bundle object literal index has been updated to follow the bundle length.

       Release 2.7

              Core engine: release 2.7.0
              Minor platform updates. This is an internal release in preparation  for  the  2.8.0
              release.

              Core modules: net module
              Revisit socket options and parameters

              Core services: csm service
              Minor fixes with the agent accessor.

       Release 2.6

              Core engine: release 2.6.3
              Incorporated patches for GCC 6.

              Core engine: release 2.6.2
              Incorporated patches for Debian issued by maintainer.

              Core engine: release 2.6.1
              Fixed the FreBSD build.

              Core engine: release 2.6.0
              This  is  the  relase 2.6.0. The code has been updated to better support c++/11 for
              both gcc and clang.

              Core modules: xml module
              The processing of character entity reference  has  been  substantially  changed  to
              adhere fully with the xml specification.

              Core modules: sps module
              The  spreadsheet  importer  has  been  updated and a csv reader has been added. The
              importation process has also been revisited.

              Core modules: sec module
              The security module has been updated to support the tls. This include moving to a 6
              bits mersenne-twister and adding a certificate block.

              Core modules: mth module
              The normal deviate has been added.

              Core services: geo service
              A  new  geometry  service has been adedd to the distribution. This provides support
              for modeling various shapes and solids.

              Core services: cda service
              The streamable objects has been added to the crowd data analytics service.

       Release 2.5

              Core engine: release 2.5.2
              This is the relase 2.5.2. The release includes support for the  GCC  5  /  CLANG  5
              compilers suite. Thank's to Martin Michlmayr for pointing this out.

              Core engine: release 2.5.1
              This  is the relase 2.5.1. This is an emergency release that fixes a bug in the uri
              percent encoding which can be downloaded from here . It's amazing that it  was  not
              found before.

              Core engine: clang compiler with C++11 support
              The  system infrastructure has been cleaned to support the clang compiler. The code
              has also been cleaned to support the C++11 standard which is  now  the  compilation
              default.

              Core engine: standard library
              A  Style  object to support ina generic way the formating operation for the literal
              objects. Consequently, most of the  literal  objects  have  been  cleaned  and  now
              support  a format method that operates with a Style argument. The PrintTable object
              has been enhanced to support column extension and column style.

              Core modules: mth module
              The ln method is now the standard prefered name for the natural logarithm.  Several
              bugs  have  been fixed in the real matrix implementation with respect to the openmp
              implementation. A new solver based on the Modified Gram-Schmidt algorithm. has been
              added. Note also that the direct solver interface has been updated.

              Core modules: nwg module
              The Uri class has been enhanced to support partial uri path extraction.

              Core modules: sps module
              The  spreadsheet  module  has been considerably overhauled. A new object Lstack has
              been added as a literal stack which can be bound to the cell as  a  literal  array.
              The  sheet formating has been also revisited to make profit of the new Style object
              has well as the printable transformation.

              Core modules: sys module
              The Meter object has been added as a mean to help for the performance measurements.

              Core module: xml module
              The unicode conversion with reference has been  updated  to  adapt  itself  to  the
              stream or buffer encoding during a write process.

              Core services: phy service
              A preliminary set of nuclear physics constants have been added.

              Core services: csm service
              The Workspace object has been enhanced to support output stream.

              Core services: web service
              A JsonMime object has been added. It is designed to translate various object into a
              Javascript object notation format.  At  this  time,  only  the  real  data  samples
              Rsamples object is supported.

       Release 2.4

              Core engine: unicode 6.3.0
              The Unicode 6.3.0 database is now supported in this release.

              Core engine: containers
              The  standard  object  incorporates  an  alias  table  which enables the mapping of
              property name in a plist. The Trie object has been enhanced to support a  reference
              index. The trie name mapping is now obtained with the to-names method.

              Core engine: parallel support
              This  release  incorporates  an experimental support for OpenMP. The OpenMP threads
              are compatible with the afnix threads and support is  initially  available  in  the
              math  module.  This  option  must  be enabled explicitelly in the build setup to be
              effective.

              Core engine: crowd service
              The session user registration id has been enhanced. The concept of crowd service is
              available  throuh  the  generic  Xaas  object,  and more specifically with the Saas
              object. The Workspace object has been enhanced with a public zone.

              Core modules: sio module
              The Intercom object has been enhanced to support a buffered serialization which was
              somehow mandatory when operating in udp mode.

              Core modules: net module
              Numerous   deadlocks   in  the  socket  class  have  been  fixed  as  well  as  udp
              inconsistencies.

              Core modules: mth module
              The Qmr Krylov solver has been added as part as the iterative  solver  family.  The
              krylov  convergence  test  has  also been improved. The Qr solver has been added as
              part as the direct solver family. The sparse matrix has been enhanced to support  a
              generic  iterator.  The  whole  solver architecture has been revisited and is now a
              class based architecture with a type driven factory. Numerous bugs have been fixed.
              Vector and matrix now support row permutations.

       Release 2.3

              Core engine: release 2.3.2
              This is the relase 2.3.2. The release fixes the real samples array serialization.

              Core engine: release 2.3.1
              This  is  the  release 2.3.1. Release 2.3.0 was an internal work which has not been
              distributed.

              Core engine: interpreter line read
              The interpreter object can read a line or a passphrase from the attached terminal.

              Core engine: interpreter daemon and librarian
              The interpreter can be put in daemon mode. This mean that a new detached  processed
              is  spawned  with the interpreter attached to it. The librarian has been simplified
              and the loader integrated inside the interpreter.

              Core engine: input stream
              The input steam nom implements a stream consumption method designed to accumulate a
              stream  content  into  the stream buffer. Subsequently, the buffer can be converted
              into a string. The serialization of eos has been fixed.

              Core engine: string resolver
              The resolver has been enhanced to map a file into a string. This  methodology  also
              applies to file present in a librarian.

              Core engine: property list
              The Plist object has been enhanced to better support the merging operation.

              Core engine: unicode 6.2.0
              The Unicode 6.2.0 database is now supported in this release.

              Core modules: mth module
              The  real  matrix and vector implementation has been redesigned to support a unique
              sparse representation. The serialization has also been added to these objects.

              Core services: csm module
              The crowd object set has enhanced with an intercom crowd object which simplify  the
              transmission  of  registered  crowd  object. A cart and a cart set object have been
              added as a mean to store crowd object. The session object and sessions set  objects
              have  been  added.  The  session object has been enhanced to produce the associated
              session cookie, with an augmented session closing mechanism.

              Core modules: nwg module
              The UriPath object has been added as a uri path manipulator for http server.

              Core services: phy service
              The silicon energy gap has been fixed to the standard  value.  The  periodic  table
              structure has been revisited.

              Core services: wax service
              The  xhtml  form  elements have been added to the service. A base element class has
              been also added to almost all elements. The base class provides support for setting
              the common element attributes.

       Release 2.2

              Core engine: hurd platform
              The  Hurd  platform is now supported in this release. Thanks to our contributor for
              delivering this new platform.

              Core engine: unicode 6.0.0
              The Unicode 6.0.0 database is now supported in this release.

              Core engine: object updates
              The lexical analyzer is now an object in its own. It can be used to construct other
              object from a string description.

              Core modules: mth module
              An automatic linear system verification has been added to the linear solver. Jacobi
              preconditionner have been added to the Krylov solvers and Newton solvers have  been
              improved.

              Core services: phy service
              The  periodic  table  of the elements is under construction and should be completed
              soon. The table will provides the information for each  elements,  including  name,
              symbol and other physical constants. The suport for intrinsic carrier concentration
              is now available. This is a cryptic feature for people working on semiconductors.

       Release 2.1

              Core engine: superh processor
              The SuperH processor is now supported in this release. The  SuperH  is  a  32  bits
              processor.

              Core engine: nan real number
              The  implementation  now supports the concepts of Not a Number or NAN as a whole. A
              real object can set and tested for NAN.

              Core engine: indirect librarian resolver
              The resolver has been enhanced to support indirect librarian reference.

              Core modules: csm module
              The personnal information management module has been renamed into the crowd session
              management or afnix-csm module.

              Core modules: mth module
              The  math module has been dramatically enhanced. The Rsamples object has been added
              for storing data samples. Function and polynomial objects  have  added  to  support
              generic function computation. The non-linear Newton system solver has been added as
              an object.

              Core services: svg service
              The Scalable Vector Graphic service  has  been  added.  The  service  provides  the
              support  for  the  SVG  1.1  standard  and  allows  the automatic generation of SVG
              compliant code.

              Core services: phy service
              The Physics service has been added. The service provides the support  for  standard
              physics  operations.  In particular, the most common physical constants are defined
              in this service.

       Release 2.0

              Core engine: standard objects
              The BlockBuffer object has been added to the standard object library.  Furthermore,
              the Buffer has been adapted to operate as a base class for the block buffer and the
              shl method has been added to the buffer object as a mean to shift  the  buffer.  As
              consequence,  the  default  operating  mode  for  a  buffer  is the BYTE mode. When
              operating with strings, the UTF8 mode might be more suitable. The BitSet object has
              been  renamed  to  Bitset  and  the interface has been cleaned. The Vector has been
              cleaned. The object-p predicate has been fixed.

              Core engine: thread engine
              The thread engine has been completly redesigned and extensivelly tested on  32  and
              64  bits platforms. It is no longer a problem to operate with more than 32K threads
              simultanesouly. Furthermore, the concept of thread  pool  has  been  added  to  the
              engine.  The  end-p  predicate  has  been  added to the thread object to indicate a
              succesful thread completion.

              Core engine: form reader
              The Reader object has been added as a form  reader.  The  reader  parses  an  input
              stream and produces a form until the end-of-stream. The Reader provides the support
              for string based execution.

              Core engine: default librarian module
              The Librarian object has been enhanced to support the concept of  default  exeution
              module. When such module and when the interpreter is requested to do so, the module
              is automatically loaded during the execution.

              Core modules: nwg module
              The HttpProto default version has been  move  to  1.1  for  both  the  request  and
              response objects.

              Core modules: sio module
              The  InputMapped class has been enhanced to provide the facility for mapping buffer
              as well as acting as a null character generator. The OuputBuffer  object  has  been
              added  as  a  buffer  output  stream.  With  the  addition  of  a  form reader, the
              interpreter communication class Intercom has been added to the standard i/o module.

              Core modules: xml module
              The XneCond object has been enhanced to support various xml object. The  XmlPi  has
              been enhanced to support attributes derivation from the string value.

              Core modules: itu module
              The  itu  module is a new module. It has been added with a complete support for the
              ASN.1 standard. ASN.1 is essential for the support of certificates.

              Core clients: axs client
              The axs client has been removed from the  core  distribution.  All  of  the  client
              functionalities are now available in the spreadsheet module.

       Release 1.9

              Core engine: object unreference
              The  long  awaited  unref  reserved  keyword  has  been  added  as  a  mechanism to
              unreference a symbol.

              Core engine: object predicate
              The object-p predicate has been added as a standard predicate. The predicate is the
              negation  of  the  nil-p  standard  predicate. The method-p predicate has also been
              added as a standard predicate.

              Core engine: stop/resume parsing
              The file stream parsing has been enhanced with the help of the stop « and resume  »
              characters. When the stop characters is found, all parsing operations are suspended
              until a resume character is found.

              Core engine: extended exception attribute
              The about symbol has been added to  the  exception  object  as  extended  exception
              reason. For a given reason, the file name and line number is added to the exception
              reason.

              Core engine: string objects
              The Strvec string vector class has been added to the core  library.  The  class  is
              similar  to  the  Vector  class  except  that it operates with strings and provides
              additional strings related methods.

              Core engine: counter object
              The Counter object has been added as a reserved object. The counter is designed  to
              be used directly in loop.

              Core engine: library cleaning
              The  core  library  has  been extensively cleaned in preparation for the next major
              release. In particular, numerous memory leaks have been removed  and  some  classes
              derivations  have been fixed. A major bug in the closure argument counting has also
              been discovered and fixed during this process.

              Core module: sio module
              The Pathname object has been enhanced to detect the type of  path  associated  with
              the object. Additionally, a normalize method has been added.

              Core module: sio module
              The  FileInfo  object has been added to the module. The class provides an immediate
              access to the principal file parameters such like it size or its modification time.

              Core module: sio module
              The NamedFifo object has been added to the module. The class provides  the  support
              for a large string based fifo with file saving capabilities.

              Core modules: nwg module
              Several  predicates  and functions related to media type conversion have been added
              to  the  module.  In  particular,  a  media  type  extension  conversion  has  been
              implemented.  The  HttpResponse  class  has  been enhanced with several methods for
              status code checking.

              Core modules: sec module
              Support for the Digital Standard Algorithm, (aka  DSA)  as  specified  by  FIPS-PUB
              186-3  has  been  added to the library. The implementation incorporates several new
              objects to manipulate signatures.

              Core modules: sec module
              The RC2 block cipher algorithm has been added to the module.

              Distribution: documentation
              The documentation distribution rules have been rewritten and the "publish" rule has
              been added.

       Release 1.8

              Build process: reset rule
              The distclean top level makefile rule has been renamed as reset.

              Core engine: stream object
              The  stream  engine  has  been  cleaned  with  a  new architecture. Two new objects
              InputStream and OutputStream acts as the foundation of this new design.

              Core modules: nwg module
              The HttpProto, HttpRequest and HttpResponse objects have been completely rewritten.
              In  the  new  model,  both  objects  can operate on the server and client side. The
              HttpReply object has been removed.

              Core modules: sec module
              The Sha224 hash function has been added. This class concludes the implementation of
              all  SHA  family  hash functions. The Des class that supports the DES stream cipher
              has been added to the library.

              Core modules: xml module
              The XmlRoot class has been enhanced in order to ease the declaration node existence
              verification as well as the encoding mode extraction.

       Release 1.7

              Core clients: random engine seeding
              A  new option controls the seeding of the random engine. By default, in debug mode,
              the random engine is not seeded unless requested by the user.  In  optimized  mode,
              which is the normal mode, the random engine is seeded at initialization.

              Core engine: base number object
              The  long  awaited  base number object has been added. The Number object serves the
              Integer, Real, and Relatif objects. The base number object is designed to ease  the
              task of formatting numbers.

              Core engine: relatif number enhancements
              The  relatif number object has been enhanced to support extra methods that are used
              for large number computation. This include the power and gcd computation which  are
              used  by the cryptographic engine. In addition, the base arithmetic relatif methods
              have been optimized and certain corner bugs in the division fixed.

              Core engine: unicode database
              The core engine has been updated with the new Unicode 5.1.0 database.

              Core engine: serious bugs
              A serious bug in the form synchronize engine that would cause an engine crash  when
              a form is nil has been fixed.

              Core modules: sio module
              A  new  object  called  Pathlist has been added to support the manipulation of path
              list. The object is designed to ease the file name resolution in  the  presence  of
              search path. The module has also been extensively cleaned.

              Core modules: mth module
              A  new  module  called  afnix-mth  has been added to the standard distribution. The
              module is designed  to  integrate  the  base  mathematical  functions  and  objects
              available  in  the engine. With such introduction, the random number generation has
              been moved into this module. Additionally, the functions needed to  generate  prime
              numbers have been added to this module.

              Core modules: sec module
              A  new  module  called  afnix-sec  has been added to the standard distribution. The
              module is designed to integrate the security functions and  cryptographic  objects.
              Two  new  hasher  objects  have  been  added to the security module. The Md2 object
              implements the MD2 message digest algorithm as  described  in  RFC  1319.  The  Md4
              object  implements  the  MD4 message digest algorithm as described in RFC 1320. The
              standard key derivation functions KDF1 and KDF2 have been  added  to  the  security
              module.  The  asymmetric  cipher RSA has also been added to the security module and
              the Key object has been updated to reflect this.

       Release 1.6

              Core engine: object collection redesign
              The core engine has been  seriously  modified  to  accommodate  for  a  new  object
              collection  system  (aka  garbage  collection).  The  new system is more robust and
              provides new mechanism that will permit to reclaim  cyclic  structure  as  well  as
              destroying global object on demand.

              Core engine: macos x support
              The  core  engine  has  been  adapted  to support the new MACOS X Leopard operating
              system.

       Release 1.5

              Core engine: unicode 5.0 support
              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.

              Core engine: log file support
              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.

              Core engine: class defer support
              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.

              Core engine: print table header
              The PrintTable object has been enhanced to support the concept of table header.

              Core engine: exception re-throwing
              The exception object what can be thrown  with  the  reserved  keyword  throw.  This
              provides a mechanism to re-throw an exception.

              Core engine: critical bug with return form
              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 caught by the try block.

              Core modules: net module
              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.

              Core modules: sio module
              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.

              Core modules: nwg module
              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.

              Core modules: xml module
              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.

              Core service: wax service
              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.

              Core service: xpe service
              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.

              Core projects: apx project
              This  release  incorporates  for the first time, the concept of core project, which
              represents a librarian or an application. 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.

              Core projects: amd project
              The  AFNIX  media  dumper  or  amd  project  is  a complete application designed to
              illustrate the design of an application. The application permits  to  dump  an  uri
              content into a file.

       Release 1.4

              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.

              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.

              Core language: print table object
              The  PrintTable  object  has been enhanced with a dump method similar to the format
              method.

              Core language: property list object
              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.

              Core modules: xml module
              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.

              Core modules: nwg module
              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.

              Core modules: web module
              The afnix-web module has been removed and replaced by the afnix-wam service.

              Core service: 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 1.3

              Core language: ISO-8859 transcoding support
              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.

              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.

              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.

              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.

              Core language: Date class
              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.

              Client: cross spreadsheet client
              The  axs  client  has  been  modified to support the axs:insert-marker, axs:insert-
              header and insert-footer control commands.

              Core modules: speadsheet module
              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.

              Core modules: web module
              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.

              Core modules: pim module
              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.

              Core modules: gfx module
              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

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

              Core language: orphan instance and reparenting
              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.

              Core modules: network module
              The Address class has been updated to reflect the access to address aliases.

              Core modules: text processing module
              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

              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.

              Core libraries: Secure hash algorithm
              The  cryptographic library incorporates the support for the SHA-1, SHA-256, SHA-384
              and SHA-512 hash algorithms.

              Core libraries: Standard symmetric cipher
              The cryptographic library incorporates the  support  for  the  Advanced  Encryption
              Standard (AES) as a symmetric cipher.

              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.

              Core libraries: xhtml 1.1 support
              The XhtmlPara class is now configured to support XHTML 1.1 with utf-8 encoding.

              Documentation: XML based documentation
              The documentation has been rewritten completely in  XML.  A  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 1.0
       The 1.0 release is the initial release. This release replaces the  old  ALEPH  programming
       language which has been discontinued.

              04/19/2005: release 1.0.3
              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.

              03/02/2005: release 1.0.2
              This release incorporates a minor fix that could cause the build process to fail.

              02/16/2005: release 1.0.1
              This release incorporates a minor fix that could cause the build process to fail.

              01/16/2005: release 1.0.0
              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.