GNU.WIKI: The GNU/Linux Knowledge Base

  [HOME] [PHP Manual] [HowTo] [ABS] [MAN1] [MAN2] [MAN3] [MAN4] [MAN5] [MAN6] [MAN7] [MAN8] [MAN9]

  [0-9] [Aa] [Bb] [Cc] [Dd] [Ee] [Ff] [Gg] [Hh] [Ii] [Jj] [Kk] [Ll] [Mm] [Nn] [Oo] [Pp] [Qq] [Rr] [Ss] [Tt] [Uu] [Vv] [Ww] [Xx] [Yy] [Zz]


       vol-0 - afnix 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, IA64, SPARC-32, SPARC-64    Linux 2.4 and 2.6
       FreeBSD    X86-32, X86-64, IA-64, SPARC-32, SPARC-64   FreeBSD 6.x, 7.x, 8.x
       Darwin     PPC-32, PPC-64, X86-32, X86-64              MacOS X 10.4 Tiger, 10.5 Leopard, 10.6 S
       Gnu        X86-32, X86-64                              GNU KBSD, GNU Hurd

       Specific processors like the Alpha, M68K, ARM, MIPS and SUPERH are also
       supported  on  certain  distributions.  The  PowerPC (PPC) processor is
       primarily supported with  the  Darwin  platform  (MACOS)  and  is  also
       working  with  the  Linux platform. 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 GNU GCC 3 and GCC 4. No other compiler have been  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.

       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
       --sdkdir     Set the system kit directory          platform dependent
       --compiler   Set the default compiler              platform dependent
       --proctype   Set the processor type                generic
       --dynamic    Compile and link dynamically          yes
       --static     Compile and link statically           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 sdkdir option sets
       the path of the platform system development kit. This  option  is  only
       used with the Darwin platform. The compiler option can be used to force
       a particular compiler with the help of a compiler  configuration  file.
       The  proctype  option  can  be  used  to  force  a particular processor
       architecture. 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 dynamic 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.

       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 ( AFNIX bug report mail

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

       zsh> axi 0501
       major version number   : 2
       minor version number   : 2
       patch version number   : 0
       interpreter version    : 2.2.0
       operating system name  : linux
       operating system type  : unix
       afnix official uri     :

       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.

       Target customization
       The  distribution  can  be  configured to operate on a specific machine
       target. For example, a typical Linux box  will  be  compiled  with  the
       default  compiler target, which is the 386 processor. You can force the
       compilation to be optimized for a particular processor.  This  is  done
       with  the  --proctype  option of the afnix-setup command. Currently the
       distribution supports the 586  and  686  architectures  for  the  Intel
       platform. The ultra architecture is valid for the SPARC platform.

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

       This   command   will   configure   the  distribution  to  be  compiled
       specifically for the Pentium architecture.

       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.


       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.

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

              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.

              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

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

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

              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

       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

       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 platform patch number
       -t       Print the processor type

       Without option, the utility prints a platform and processor description

       zsh> ./cnf/bin/afnix-guess

       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.

       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.

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

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

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

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

       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):


       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 directory contains some special files that might be
       used for the package construction. A  sample  list  of  them  is  given

              This file is the Emacs mode.

              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.

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

              This rule invokes the default configuration in debug mode.

              This rule invokes the default configuration in optimized mode.

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

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

              This rule runs all test suites.

              This rule builds the documentation.

              This rule builds the distribution.

              This rule installs the distribution.

              This rule installs the documentation.

              This rule cleans the distribution but keep the configuration.

              This rule resets the distribution including the configuration.


       This  chapter  contains  the release notes for the differents 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 2.2

       Release features

              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

       Release features

              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

              Core modules: csm module
              The personnal information management  module  has  been  renamed
              into the cloud 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 history

              08/24/2011: release 2.1.1
              AFNIX 2.1.1 has been released. This is an emergency release that
              corrects a small problem in  the  clean  rule  with  the  static

       Release 2.0

       Release features

              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

              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

       Release features

              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

              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

              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

              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

              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

       Release features

              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

              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

              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

       Release features

              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

              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

              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 history

              09/01/2008: release 1.7.1
              AFNIX 1.7.1, the « An Armor release » has been released. This is
              an emergency release that corrects a major  problem  within  the
              evaluation  process.  Although,  the  problem has been fixed, it
              involves a large piece of code, with a  major  redesign  of  the
              evaluation  engine.  It  is therefore recommended to upgrade the
              engine immediately.

              08/08/2008: release 1.7.0
              AFNIX 1.7.0, the « An Armor release » has been released. This is
              a  major  release that incorporates numerous new features in the
              field of cryptography. The release also incorporates the  latest
              5.1.0 Unicode database.

       Release 1.6

       Release features

              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 history

              01/01/2008: release 1.6.0
              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

              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

              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 history

              06/08/2007: release 1.5.2
              AFNIX 1.5.2 has been released. This  is  a  minor  release  that
              fixes the build process with GCC 4.2.

              04/21/2007: release 1.5.1
              AFNIX  1.5.1  has  been  released.  This is a minor release that
              fixes the documentation targets during the build process.

              04/18/2007: release 1.5.0
              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

              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

              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

       Release history

              01/28/2007: release 1.4.3
              This release is a minor release that fixes the "install" rule in
              the etc directory.

              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 Time class also incorporates a  small  fix  for  the  to-rfc

              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.

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

       Release 1.3

       Release features

              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

              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

              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

              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

       Release features

              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

       Release features

              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 history

              10/04/2005: release 1.1.2
              This release incorporates a fix for a terminal capability error.

              08/25/2005: release 1.1.1
              This release incorporates fixes for several build problems  with
              the FreeBSD platform.

              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.

       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

              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

  All copyrights belong to their respective owners. Other content (c) 2014-2018, GNU.WIKI. Please report site errors to
Page load time: 0.116 seconds. Last modified: November 04 2018 12:49:43.