STD-US-NOTES(7)

๐Ÿ“ฆ
version 3.8.0 ยท 3 versions
, in debian trixie, ubuntu noble, ubuntu resolute, ubuntu stonking

โœจ STD-US-NOTES(7) โœจ

okay so bestie, welcome to STD-US-NOTES(7) from the Miscellaneous Information Manual โ€” it's literally the afnix installation guide and I'm gonna walk you through it ๐Ÿ’… no cap. this is part 1 of 7 so buckle up ๐ŸŽ€

๐ŸŒธ NAME ๐ŸŒธ

std-us-notes - afnix installation guide


๐Ÿ’– INSTALLATION GUIDE ๐Ÿ’–

okay so this chapter describes the installation procedures for the AFNIX writing system distribution. it explains how to set and compile this distribution. periodt. ๐Ÿซถ

๐Ÿฆ‹ Software distribution ๐Ÿฆ‹

the complete distribution can be downloaded from the AFNIX home page. the result is a complete source tree that's ready for compilation. the distribution also contains the documentation as well as examples. it's supported on a variety of platforms as indicated below โ€” can be either 32 bits or 64 bits machines. the distribution is also available at the FreeBSD port collection. iykyk ๐Ÿ’–

  • Linux โ€” processors: X86-32, X86-64; operating system: Linux 3.x, 4.x, 5.x
  • FreeBSD โ€” processors: X86-32, X86-64; operating system: FreeBSD 8.x, 9.x, 10.x.x, 11.x.x, 12.x.x
  • Gnu โ€” processors: X86-32, X86-64; operating system: 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. fr fr ๐Ÿ’œ

๐ŸŒˆ 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 successfully tested. you'll 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. (make sure you catch that -jGNU bestie, no cap) ๐Ÿ‘‘

๐ŸŽ€ 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. slay ๐Ÿ’…

๐Ÿ’œ 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. it's giving very demure, very mindful โœจ

  • -h โ€” print a help message. default: n/a
  • -v โ€” set the verbose mode. default: n/a
  • -g โ€” set the debug mode. default: yes
  • -o โ€” set the optimized mode. default: no
  • --help โ€” same as -h. default: n/a
  • --prefix โ€” set the target install directory. default: /usr/local
  • --shrdir โ€” set the shared install directory. default: /usr/local/share
  • --altdir โ€” set the alternate install directory. default: /usr/local
  • --sdknam โ€” set the target sdk by name. default: platform dependent
  • --sdkdir โ€” set the target sdk directory. default: platform dependent
  • --ccname โ€” set the default compiler. default: platform dependent
  • --shared โ€” compile and link dynamically. default: yes
  • --static โ€” compile and link statically. default: no
  • --openmp โ€” enable the optional openmp compilation. default: 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. obsessed. ๐ŸŽ€

  • --pkgnam โ€” set the distribution package. default: none
  • --pkgbin โ€” set the optional package bin directory. default: none
  • --pkglib โ€” set the optional package lib directory. default: none
  • --pkgprj โ€” set the optional package prj directory. default: none
  • --pkghdr โ€” set the optional package hdr directory. default: none
  • --pkgetc โ€” set the optional package etc directory. default: none
  • --pkgman โ€” set the optional package man directory. default: none
  • --pkgdoc โ€” set the optional package doc directory. default: none
  • --pkgwww โ€” set the optional package www directory. default: none
  • --pkgsrv โ€” set the optional package srv directory. default: 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. don't be shy bestie, they wanna know ๐Ÿ’Œ

๐ŸŒธ 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. highkey iconic. ๐Ÿฆ‹

๐Ÿ“ 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. main character energy fr. ๐Ÿ’…

  • PREFIX โ€” the root install directory. default: /usr/local
  • SHRDIR โ€” the shared install directory. default: /usr/local/share
  • ALTDIR โ€” the shared alternate directory. default: /usr/local/etc
  • SDKDIR โ€” the system kit directory. default: platform dependent
  • BINDIR โ€” the binary install directory. default: prefix/bin
  • LIBDIR โ€” the library install directory. default: prefix/lib
  • HDRDIR โ€” the header files install directory. default: prefix/include/afnix
  • ETCDIR โ€” the extra files install directory. default: 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. periodt. ๐Ÿ’–

  • DOCDIR โ€” the documentation install directory. default: shrdir/doc/afnix
  • MANDIR โ€” the manual pages install directory. default: 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. not me being dramatic but it's giving fresh start โœจ

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. lowkey easy. ๐Ÿซถ

๐ŸŽ€ 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. no cap, it's adorable. ๐ŸŒˆ

zsh> axi EXP0501
major version number   : 3
minor version number   : 8
patch version number   : 0
interpreter version    : 3.8.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. iykyk. ๐Ÿ’œ

๐Ÿ”ฅ 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. ate that. ๐Ÿ’…

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. iconic. ๐ŸŽ€

๐Ÿ› ๏ธ MAINTAINER NOTES ๐Ÿ› ๏ธ

Okay bestie, this chapter is the behind-the-scenes content for the package maintainer ๐Ÿ’… It's also lowkey essential for anyone whose job is shoving this distribution into a build process. We're gonna walk the whole distribution tree, no skips. ๐ŸŽ€

๐ŸŒณ The distribution tree ๐ŸŒณ

The distribution tree is made up of a bunch of directories, fr fr. Each one has its own Makefile that you can call locally or from the top level. Let's meet them ๐Ÿฆ‹

  • cnf โ€” this one holds the configuration distribution plus a bunch of utilities. Bestie, normally you do not touch it, unless you're using a compiler that isn't gcc.
  • src โ€” the complete source tree lives here. The source code is written in C++. Normally this directory stays untouched. If you have genuinely good reasons to modify it, please contact the development team. ๐Ÿ™
  • tst โ€” the complete test suites. Various programs use them, including the main interpreter, the compiler and the debugger. Worth noting: the library distribution also ships its own specific test suites.
  • doc โ€” the complete documentation, written in XML with a special DTD. Leave it alone, periodt.
  • etc โ€” various files associated with the distribution. Some of them are genuinely useful to copy.
  • exp โ€” various examples, included for illustration purposes. โœจ

The whole process of building a package depends solely on the distribution type. Most likely, the standard distribution should contain the binary executables, plus some configuration file and the manual pages. The documentation and the development header files can go in separate packages. ๐ŸŒธ

โš™๏ธ Configuration and setup โš™๏ธ

The configuration process involves the afnix-setup command, which lives in the cnf/bin directory. This command configures the distribution. Package maintainers are encouraged to use it with specific options. ๐Ÿ‘‘

๐Ÿ” Platform detection ๐Ÿ”

The afnix-guess command is used during configuration to detect a supported platform. It can also be run in stand-alone mode. There are various options to tune what kind of info you're asking for:

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

With no option at all, the utility prints a platform and processor description string. Like this ๐Ÿ’ซ

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

๐Ÿงฌ Platform defaults ๐Ÿงฌ

The directory cnf/def contains a platform specific default file. This file decides what the default compiler and linking mode are, and it's used by the afnix-setup command. For example, the afnix-darwin.def file contains:

compiler: gcc
lktype  : dynamic
lkmode  : dylib

So those options tell the configuration utility that the default compiler is gcc and that the linking mode should operate in dynamic mode using the dylib rule. These default values can be overwritten with the equivalent option of the afnix-setup command. Ngl, 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 .cxx extension, and the second type has the .cpp extension.

The .cxx files โ€” and their associated .hxx files โ€” are only used to indicate a system dependency. You'll find these files only in the src/lib/plt directory. The .cxx extension means the file might use system specific include files.

The .cpp files โ€” and their associated .hpp files โ€” are the normal C++ source files. The .cpp extension indicates 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 that don't authorize such access. ๐Ÿ”ฅ

๐Ÿ“ Configuration files ๐Ÿ“

The configuration files are located in the cnf/mak directory. Normally they should be left untouched. The most important one is the afnix-rule.mak file, which defines most of the compilation and linking rules.

Also, during the setup operation, the afnix-setup command creates several files in the bld/cnf directory. (bld is the build directory, iykyk.) The afnix-plat.mak file is the platform configuration file, and afnix-comp.mak is a link to the appropriate compiler configuration file. โœจ

๐Ÿ”จ Compilation ๐Ÿ”จ

Normally the compilation process is immediate โ€” just invoking the make command does the job. But some package maintainers want to overwrite some flags, so here are some options to make that easier:

  • EXTCPPFLAGS โ€” this flag adds compilation flags for all .cpp files.
  • EXTCXXFLAGS โ€” this flag adds compilation flags for all .cxx files.
  • EXTCCDEFINE โ€” this flag adds compilation definitions for all source files.
  • EXTINCLUDES โ€” this flag adds compilation paths for the .cxx files.

For example, it's common for a maintainer to compile with both the debug and optimize flags. That looks like this (assuming an optimized configuration):

make EXTCPPFLAGS=-g EXTCXXFLAGS=-g

All include files, compiled libraries and executables are placed in the bld directory. Inside it you'll find bld/bin for binaries, bld/lib for libraries and bld/hdr for the header files. ๐Ÿ’–

๐Ÿ“ฆ Building the package ๐Ÿ“ฆ

You can build the package 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. Here's a sample list:

  • 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 shows the configuration status for each parameter, 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 compiles the whole distribution. The default install directory is /usr/local.
  • world โ€” this rule invokes the default configuration in optimized mode and compiles 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 keeps the configuration.
  • reset โ€” this rule resets the distribution including the configuration.

๐ŸŽ‰ RELEASE NOTES ๐ŸŽ‰

This chapter holds the release notes for the different releases. They're given in descending order for a particular version. The standard notation is major.minor.patch, which represents the major, minor and patch number respectively. Here's how to read it, bestie:

  • A major version number change means a substantial change in the distribution, including new tools, application interface and license.
  • A minor version number change means a noticeable change, with or without new tools, but without an application interface change and without a license change.
  • A patch number change means a simple change to fix a problem. There are no additional features in a patch, and no application interface change either.

โญ Release 3.8 โญ

  • Core engine: release 3.8.0 โ€” this is a medium release, in line with the previous release, which integrates some fundamental restructuring of the core interpreter in preparation for distributed execution. The module object has been refactored as well as the debugger.
  • Core engine: hyper threaded interpreter โ€” a new object called a hyper-threaded interpreter, which operates with a grid, provides a mechanism to execute modules inside an executing interpreter. This is still an experimental technology, ngl. ๐Ÿงช
  • Core modules: tcz service โ€” the csm service has been refactored as a transmutable content zone service.

โญ Release 3.7 โญ

  • Core engine: release 3.7.0 โ€” this is a medium release, in line with the previous release, which integrates various extensions and cleanup before major release 3.8, scheduled for the end of the year.
  • Core engine: new special forms and continue โ€” two new special forms, break and continue, have been added to control loops. ๐Ÿ”ฅ
  • Core modules: gfx module โ€” the graph module has been revisited with numerous cleanup. A new state machine object called Automaton has been added.
  • Core modules: sys module โ€” an absolute wait time call has been added to act as a timer.
  • Core modules: nwg module โ€” a new class called Iso has been added. In particular, support for ISO 3166 has been added. ๐ŸŒˆ

โญ Release 3.6 โญ

  • Core engine: release 3.6.0 โ€” this is a medium release which integrates a lot of cleanup as well as the beginning of the integration of the tls service. The unicode database has been updated to the latest 14.0.0 release. Some objects have been completely refactored, including base string vector.
  • Core modules: mth module โ€” algebra with complex number has been added, including computation algorithm with Hilbert space.
  • Core modules: nwg module โ€” the json reader/writer has been enhanced to support plist.
  • Core modules: sec module โ€” the pkcs signature algorithm has been added. It is designed for the support of ephemeral Diffie-Hellman in the tls service. ๐Ÿ‘‘

๐ŸŒธ Core services: tls service ๐ŸŒธ

bestie the tls service got a GLOW UP โ€” it now supports ephemeral Diffie-Hellman. The integration of the tls inside applications will be able to start. ๐Ÿ’…


โœจ Release 3.5 โœจ

๐Ÿ’– Core engine: release 3.5.0 ๐Ÿ’–

okay so this one is a important release and it integrates numerous objects that were long overdue, including the support for complex numbers and numerous code cleanup. ๐Ÿซถ

and bestie. an undetected (until now) interlocking bug in the string split method has been discovered and fixed. we love a late-night bug catch. 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 โ€” we circled back and revisited the socket options and parameters. lowkey a glow-up for sockets ๐Ÿ’…
  • Core services: csm service โ€” minor fixes with the agent accessor. small but mighty ๐Ÿซถ

๐ŸŒธ Release 2.6 ๐ŸŒธ

okay so 2.6 was busy, bestie. sit down, hydrate, we're going through it ๐Ÿ’–

  • Core engine: release 2.6.3 โ€” incorporated patches for GCC 6. periodt.
  • Core engine: release 2.6.2 โ€” incorporated patches for Debian, issued by the maintainer. ty for your service ๐Ÿซก
  • Core engine: release 2.6.1 โ€” fixed the FreBSD build. (yes, that's what it says, no I'm not touching it, it's in the notes ๐Ÿ˜ญ)
  • Core engine: release 2.6.0 โ€” this is the release 2.6.0. the code has been updated to better support c++/11 for both gcc and clang. glow up fr fr โœจ
  • Core modules: xml module โ€” the processing of character entity reference has been substantially changed so it adheres fully with the xml specification. no half measures, we're being correct now ๐Ÿ‘‘
  • Core modules: sps module โ€” the spreadsheet importer has been updated and a csv reader has been added. the importation process has also been revisited. so many new toys ๐ŸŽ€
  • Core modules: sec module โ€” the security module has been updated to support the tls. this includes moving to a 6 bits mersenne-twister and adding a certificate block. secure girl summer ๐Ÿ”
  • Core modules: mth module โ€” the normal deviate has been added. math girlies stay winning ๐ŸŒธ
  • Core services: geo service โ€” a new geometry service has been added to the distribution. it provides support for modeling various shapes and solids. shapes!! solids!! ๐Ÿ”ฅ
  • Core services: cda service โ€” the streamable objects have been added to the crowd data analytics service. stream it, bestie ๐ŸŒˆ

๐Ÿฆ‹ Release 2.5 ๐Ÿฆ‹

  • Core engine: release 2.5.2 โ€” this is the release 2.5.2. it includes support for the GCC 5 / CLANG 5 compilers suite. thank's to Martin Michlmayr for pointing this out. shoutout king ๐Ÿ‘‘
  • Core engine: release 2.5.1 โ€” this is the release 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. emergency!! ๐Ÿšจ
  • 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. spring cleaning but make it compilers ๐Ÿงนโœจ
  • Core engine: standard library โ€” a Style object was added to support, in a generic way, the formatting 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. obsessed with a tidy table honestly ๐Ÿ’…
  • Core modules: mth module โ€” the ln method is now the standard preferred 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. also note that the direct solver interface has been updated. math glow-up, no cap ๐ŸŒŸ
  • Core modules: nwg module โ€” the Uri class has been enhanced to support partial uri path extraction. slay ๐Ÿ”—
  • 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 formatting has also been revisited to make profit of the new Style object as well as the printable transformation. a whole renovation era ๐Ÿ—๏ธ
  • Core modules: sys module โ€” the Meter object has been added as a mean to help for the performance measurements. we're measuring things now ๐Ÿ“
  • 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. physics besties, this one's for you โ˜ข๏ธ๐Ÿ’–
  • 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. js girlies rise ๐ŸŒˆ

๐ŸŽ€ 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. name mapping, but make it cute ๐Ÿ—‚๏ธ
  • 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.
bestie listen: this option must be enabled explicitelly in the build setup to be effective. it will not just turn on by itself, okay?? turn it on yourself ๐Ÿ’€
  • Core engine: crowd service โ€” the session user registration id has been enhanced. the concept of crowd service is available through the generic Xaas object, and more specifically with the Saas object. the Workspace object has been enhanced with a public zone. as a service ๐Ÿซถ
  • Core modules: sio module โ€” the Intercom object has been enhanced to support a buffered serialization which was somehow mandatory when operating in udp mode. mandatory!! ๐Ÿ˜ค
  • Core modules: net module โ€” numerous deadlocks in the socket class have been fixed, as well as udp inconsistencies. deadlocks are so not the vibe, we fixed them ๐Ÿ’€โžก๏ธ๐Ÿ’–
  • 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. this entire bullet is main character energy ๐Ÿ”ฅ๐Ÿ‘‘

๐Ÿ’œ Release 2.3 ๐Ÿ’œ

  • Core engine: release 2.3.2 โ€” this is the release 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. it was shy, we don't talk about it ๐Ÿ™ˆ
  • 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. streamlined โœจ
  • 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. mapping files like it's nothing ๐Ÿ—บ๏ธ
  • Core engine: property list โ€” the Plist object has been enhanced to better support the merging operation. merge merge merge ๐Ÿ’…
  • 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. redesigned, restyled, reborn ๐Ÿฆ‹
  • Core services: csm module โ€” the crowd object set has been 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. cookies!! ๐Ÿช but make them sessions
  • 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. chemistry girls, this one's yours ๐Ÿงช
  • Core services: wax service โ€” the xhtml form elements have been added to the service. a base element class has also been added to almost all elements. the base class provides support for setting the common element attributes. forms!! but make them aesthetic ๐ŸŽ€

โญ 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. new platform drop, ty contributor ๐Ÿซก๐Ÿ’–
  • 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. independent icon behavior โœจ
  • 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. math math math, we love to see it ๐Ÿ”ฅ
  • 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 support for intrinsic carrier concentration is now available. this is a cryptic feature for people working on semiconductors. semiconductors iykyk ๐Ÿงช๐Ÿ‘‘

๐ŸŒˆ Release 2.1 ๐ŸŒˆ

  • Core engine: superh processor โ€” the SuperH processor is now supported in this release. the SuperH is a 32 bits processor. 32 bits of pure vibes ๐Ÿ’…
  • 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. not a number, but fully a moment ๐Ÿ˜ญ
  • 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. rebrand!! ๐Ÿ’–

Core modules: mth module

okay so the math module? literally got a dramatic glow-up, no cap. The Rsamples object? added, bestie, for storing data samples. Function and polynomial objects? also added to support generic function computation. And the non-linear Newton system solver? added as an object. periodt. ๐Ÿงฎโœจ

Core services: svg service

The Scalable Vector Graphic service? added. It provides support for the SVG 1.1 standard and allows the automatic generation of SVG compliant code. it's giving vector realness. ๐ŸŽจ๐Ÿ’…

Core services: phy service

The Physics service? added. It provides support for standard physics operations. In particular? the most common physical constants are defined in this service. physics but make it slay. โš›๏ธ๐ŸŒธ

Release 2.0

Core engine: standard objects

The BlockBuffer object? 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? 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? renamed to Bitset and the interface has been cleaned. The Vector? cleaned. The object-p predicate? fixed. we love a cleanup era. ๐Ÿงผโœจ

Core engine: thread engine

The thread engine? completely redesigned and extensively tested on 32 and 64 bits platforms. It is no longer a problem to operate with more than 32K threads simultaneously. Furthermore? the concept of thread pool has been added to the engine. The end-p predicate? added to the thread object to indicate a successful thread completion. threading but make it iconic. ๐Ÿงต๐Ÿ”ฅ

Core engine: form reader

The Reader object? 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. reading is fundamental, bestie. ๐Ÿ“–๐Ÿ’–

Core engine: default librarian module

The Librarian object? enhanced to support the concept of default execution module. When such module? and when the interpreter is requested to do so? the module is automatically loaded during the execution. auto-load? we love to see it. ๐Ÿง โœจ

Core modules: nwg module

The HttpProto default version? moved to 1.1 for both the request and response objects. http/1.1 era. ๐ŸŒ๐Ÿ’…

Core modules: sio module

The InputMapped class? enhanced to provide the facility for mapping buffer as well as acting as a null character generator. The OuputBuffer object? added as a buffer output stream. With the addition of a form reader? the interpreter communication class Intercom? added to the standard i/o module. i/o but make it cute. ๐Ÿ’พ๐Ÿฆ‹

Core modules: xml module

The XneCond object? enhanced to support various xml object. The XmlPi? enhanced to support attributes derivation from the string value. xml said let me upgrade. ๐Ÿงฌโœจ

Core modules: itu module

The itu module? 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. certificates? we love a secure queen. ๐Ÿชช๐Ÿ”

Core clients: axs client

The axs client? removed from the core distribution. All of the client functionalities? now available in the spreadsheet module. rip boo, but also move on. ๐Ÿ˜ญ๐Ÿ“Š


Release 1.9

Core engine: object unreference

The long awaited unref reserved keyword? added as a mechanism to unreference a symbol. finally! the wait is over. ๐Ÿ™Œโœจ

Core engine: object predicate

The object-p predicate? added as a standard predicate. The predicate is the negation of the nil-p standard predicate. The method-p predicate? also added as a standard predicate. predicates said slay. โœ…

Core engine: stop/resume parsing

The file stream parsing? enhanced with the help of the stop โ—€ and resume โ–ถ characters. When the stop character is found? all parsing operations are suspended until a resume character is found. pause and play, bestie. โธ๏ธโ–ถ๏ธ

Core engine: extended exception attribute

The about symbol? 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. now you know where it went wrong. ๐Ÿ”๐Ÿ’…

Core engine: string objects

The Strvec string vector class? 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. string theory but make it practical. ๐Ÿงตโœจ

Core engine: counter object

The Counter object? added as a reserved object. The counter is designed to be used directly in loop. loops? we love a good loop. ๐Ÿ”ข๐Ÿ’–

Core engine: library cleaning

The core library? 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? also discovered and fixed during this process. spring cleaning, but for code. ๐Ÿงนโœจ

Core module: sio module

The Pathname object? enhanced to detect the type of path associated with the object. Additionally? a normalize method has been added. paths but make them self-aware. ๐Ÿ“๐Ÿฆ‹

Core module: sio module

The FileInfo object? added to the module. The class provides an immediate access to the principal file parameters such like its size or its modification time. file gossip, but useful. ๐Ÿ“„๐Ÿ’…

Core module: sio module

The NamedFifo object? added to the module. The class provides the support for a large string based fifo with file saving capabilities. fifo but make it save. ๐Ÿšฐโœจ

Core modules: nwg module

Several predicates and functions related to media type conversion? added to the module. In particular? a media type extension conversion has been implemented. The HttpResponse class? enhanced with several methods for status code checking. media types? we love a conversion. ๐Ÿ“ก๐Ÿ’–

Core modules: sec module

Support for the Digital Standard Algorithm? (aka DSA) as specified by FIPS-PUB 186-3? added to the library. The implementation incorporates several new objects to manipulate signatures. signatures? secure. ๐Ÿ”โœจ

Core modules: sec module

The RC2 block cipher algorithm? added to the module. another cipher? we love to see it. ๐Ÿ”’

Distribution: documentation

The documentation distribution rules? rewritten and the "publish" rule? added. docs said let me get an upgrade. ๐Ÿ“š๐Ÿ’…


Release 1.8

Build process: reset rule

The distclean top level makefile rule? renamed as reset. reset era. ๐Ÿ”„โœจ

Core engine: stream object

The stream engine? cleaned with a new architecture. Two new objects InputStream and OutputStream? act as the foundation of this new design. streams but make them foundational. ๐ŸŒŠ๐Ÿ’–

Core modules: nwg module

The HttpProto, HttpRequest and HttpResponse objects? completely rewritten. In the new model? both objects can operate on the server and client side. The HttpReply object? removed. http glow-up. ๐Ÿ—‘๏ธโœจ

Core modules: sec module

The Sha224 hash function? added. This class concludes the implementation of all SHA family hash functions. The Des class? that supports the DES stream cipher? added to the library. hashing but make it complete. ๐Ÿ”‘

Core modules: xml module

The XmlRoot class? enhanced in order to ease the declaration node existence verification as well as the encoding mode extraction. xml root said self-care. ๐Ÿท๏ธ๐Ÿ’…


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. randomness but make it controlled. ๐ŸŽฒโœจ

Core engine: base number object

The long awaited base number object? added. The Number object? serves the Integer, Real, and Relatif objects. The base number object is designed to ease the task of formatting numbers. numbers but make them serve. ๐Ÿ”ข๐Ÿ’–

Core engine: relatif number enhancements

The relatif number object? 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. math but make it crypto. โž—๐Ÿ”

Core engine: unicode database

The core engine? updated with the new Unicode 5.1.0 database. unicode said new drop. ๐ŸŒโœจ

Core engine: serious bugs

A serious bug in the form synchronize engine? that would cause an engine crash when a form is nil? fixed. not the crash bug! glad it's gone. ๐Ÿ’€๐Ÿฉน

Core modules: sio module

A new object called Pathlist? 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? also extensively cleaned. path list but make it organized. ๐Ÿงญ๐Ÿ’…

Core modules: mth module

A new module called afnix-mth? 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. math module? iconic. ๐Ÿ”ขโœจ

Core modules: sec module

A new module called afnix-sec? added to the standard distribution. The module is designed to integrate the security functions and cryptographic objects. Two new hasher objects? 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? added to the security module. The asymmetric cipher RSA? also added to the security module and the Key object? updated to reflect this. security module? we love a secure era. ๐Ÿ”๐Ÿ‘‘


Release 1.6

๐Ÿ—‘๏ธ Core engine: object collection redesign ๐Ÿ’–

okay so the core engine got a serious glow-up to make room for a brand new object collection system (aka garbage collection). The new system is more robust, no cap, and it brings a new mechanism that lets you reclaim cyclic structure as well as destroying global object on demand. it's giving responsible memory management ๐Ÿ’…

๐ŸŽ Core engine: macos x support

The core engine has been adapted to support the new MACOS X Leopard operating system. slay, bestie, we're cross-platform now โœจ


๐ŸŽ€ Release 1.5 ๐ŸŽ€

๐Ÿ”ค Core engine: unicode 5.0 support

The core engine keeps getting updated so it can better support the Unicode 5.0 standard. With this release, the string normalization scheme is now in place and used by default internally โ€” which lowkey means better support for multiple diacritics, plus the beginning of the standard collation algorithm. we love to see it ๐ŸŒธ

๐Ÿ“ 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. journaling era fr fr ๐Ÿซถ

๐Ÿงฌ 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 it provides a mechanism for base class creation. it's giving origin story ๐Ÿ‘‘

๐Ÿ“Š Core engine: print table header

The PrintTable object has been enhanced to support the concept of table header. aesthetic AND functional ๐Ÿ’…

๐Ÿ” 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. catch it, throw it back, main character energy only ๐Ÿ˜Œ

๐Ÿ›๐Ÿ’€ Core engine: critical bug with return form

A critical bug in the core engine affecting the behavior of the return reserved keyword inside a try block has been fixed. So like โ€” a return form inside a try block was incorrectly generating an exception, which was then subsequently caught by the try block. absolute chaos. anyway it's fixed now, we're healed ๐Ÿ™

๐ŸŒ 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) has an address entry, the socket constructor makes sure it can build an object. The IPV6 address display has been rewritten. dual-stack bestie behavior, obsessed ๐Ÿ”ฅ

๐Ÿ“ Core modules: sio module

A new object called Pathname has been added to support the manipulation of system path. Plus, two new functions, mkdir and mhdir, have also been added to support directory creation โ€” both normally and hierarchically. make a folder, make ALL the folders ๐Ÿงš

๐Ÿ”— 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. ๐Ÿช not the browsers being behind, embarrassing for them honestly

๐ŸŒณ 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. you get a string, you do what you want with it โ€” freedom ๐Ÿ’œ

๐Ÿ•ฏ๏ธ 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 permit you to build a mime representation of an xml tree. Several xhtml objects have also been added to complete the collection โ€” this includes the XhtmlScript for example. glow-up + rebrand, iconic โœจ

๐Ÿงช Core service: xpe service

The afnix-xpe service has been added as a new service. The xml processing environment (xpe) provides an xml processor that permits you to 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. tree traversal but make it chic ๐ŸŒˆ

๐Ÿ“ฆ 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. whole new category just dropped ๐Ÿ‘‘

๐ŸŽฌ 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 you to dump an uri content into a file. demo app that actually eats ๐Ÿ’…


๐ŸŒŸ 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. so it's there, it's just vibing in the background rn ๐Ÿฆ‹

๐Ÿชž 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 a system permits you to derive a top instance from a base instance construction. inheritance but make it self-aware ๐Ÿ’–

๐Ÿ“Š Core language: print table object

The PrintTable object has been enhanced with a dump method similar to the format method. twin methods, matching energy โœจ

๐Ÿท๏ธ Core language: property list object

The Property and the Plist objects have been added to the standard library. A property is a name/value pair. The property list object is an iterable object that stores property objects. iterable AND organized, we stan a structured queen ๐Ÿ‘‘

๐ŸŒณ 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 you to build an 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. coming soon to a release near you ๐Ÿ˜ญ

๐Ÿ”— 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 the Uri object. The module also provides the foundation for the mime support. networking lore unlocked ๐ŸŒ

๐Ÿšซ Core modules: web module

The afnix-web module has been removed and replaced by the afnix-wam service. out with the old, in with the 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. it's giving full-stack but in a 2007 way ๐ŸŒธ


๐Ÿ’ซ Release 1.3 ๐Ÿ’ซ

๐Ÿ”ก Core language: ISO-8859 transcoding support

The core engine has been modified to integrate a character transcoder that permits you to 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. locale-aware king behavior ๐Ÿ‘‘

๐Ÿ“ 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. timestamped receipts, we love ๐Ÿซถ

๐Ÿ—ป 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. sort it however you want bestie ๐Ÿ’…

โš™๏ธ Core language: Option class

An option class has been added in order to ease the option capture when designing an application. The class permits you to define the valid options and offers a powerful retrieval mechanism. parsing CLI args but make it cute โœจ

๐Ÿ“… 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, increases the date range, and authorizes the support for multiple calendar. glow-up of the century ๐ŸŽ€

๐Ÿ“ˆ Client: cross spreadsheet client

The axs client has been modified to support the axs:insert-marker, axs:insert-header and insert-footer control commands. new commands just dropped ๐Ÿ”ฅ

๐Ÿ“Š 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. so much going on and every bit of it ate ๐Ÿ’–

๐Ÿ•ธ๏ธ 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. strict conformance era, no more vibes-based html ๐Ÿ˜ค

๐Ÿ—‚๏ธ 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. calendar bestie has entered the chat ๐Ÿ“…

๐ŸŽจ 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. moved out, got its own place, growth ๐Ÿ’œ


๐ŸŽ Release 1.2 ๐ŸŽ

๐Ÿฆ‹ Core language: Unicode support ๐Ÿฆ‹

okay so the core engine got a major glow-up to fold in support for Unicode characters, no cap. Depending on the system settings, the reader automatically adjusts itself to run in byte mode or in UTF-8 mode โ€” it literally reads the room. ๐Ÿ’…

The String and Character classes are now operating with a Unicode representation. And because a Unicode-based engine touches everything, it also shakes up a bunch of classes like the Regex, Buffer and stream classes. There's a brand new class called Byte designed to handle byte character, and a whole new stream model got added with a base Stream class. โœจ

โš ๏ธ bestie, hear me: the full support for 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 an orphan instance, which is exactly what it sounds like โ€” an instance with no class attached to it. It's giving unclaimed. ๐Ÿ˜ญ

But plot twist: the instance can later be bound to a class, and that class can even be changed during the course of the program execution. Reparenting era fr fr. ๐Ÿ‘‘


๐ŸŽ€ Core modules: network module ๐ŸŽ€

The Address class has been updated to reflect the access to address aliases. Short and sweet, she ate. โœจ


๐Ÿงš Core modules: text processing module ๐Ÿงš

The Literate class has been updated to reflect the support of Unicode characters, and the class can operate both in byte mode or in Unicode character mode. Flexible queen behavior honestly. ๐Ÿ’–


โญ 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. Big files, big energy. ๐Ÿ’…

๐Ÿ“ Core libraries: Secure hash algorithm ๐Ÿ“

The cryptographic library incorporates the support for the SHA-1, SHA-256, SHA-384 and SHA-512 hash algorithms. Four for the price of one, we love a bundle. โœจ

๐Ÿ’œ Core libraries: Standard symmetric cipher ๐Ÿ’œ

The cryptographic library incorporates the support for the Advanced Encryption Standard (AES) as a symmetric cipher. Secured and slaying. ๐Ÿ”ฅ

๐Ÿฆ‹ 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. Rebrand era, and honestly? The new name is iconic. ๐Ÿ’…

๐ŸŒธ Core libraries: xhtml 1.1 support ๐ŸŒธ

The XhtmlPara class is now configured to support XHTML 1.1 with utf-8 encoding. Look at her, all standards-compliant. ๐ŸŽ€

โœจ 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. main character documentation energy, periodt. ๐Ÿ‘‘


๐Ÿ‘‘ Release 1.0 ๐Ÿ‘‘

The 1.0 release is the initial release. This release replaces the old ALEPH programming language which has been discontinued. RIP to a real one, but the new era is here. ๐Ÿซถ

๐ŸŽ€ 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. Little fixes, big saves. ๐Ÿ˜ญ

๐Ÿ’– 03/02/2005: release 1.0.2 ๐Ÿ’–

This release incorporates a minor fix that could cause the build process to fail. Build process said "not today" and she said "actually, today." ๐Ÿ’…

๐Ÿฆ‹ 02/16/2005: release 1.0.1 ๐Ÿฆ‹

This release incorporates a minor fix that could cause the build process to fail. Same vibe, different date, we respect the consistency. โœจ

๐ŸŒˆ 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. The origin story, bestie. Go read it. ๐Ÿ“–


and that's a wrap on this page, babes ๐Ÿซถ the footer is doing its little source/version/date thing โ€” it credits the AFNIX Users Manual as the source, AFNIX as the version, and this page lives at STD-US-NOTES(7). That's the whole page, all 7 parts, no notes left behind. slay, go compile something. ๐Ÿ’…โœจ

๐Ÿ“ฆ where this page comes from