#+
#§ \file NEWS
#§ \brief \$Id: NEWS 488 2009-11-09 12:22:11Z dev1usr $
#§
#§ (C) 2007 - LibMsgque - Project - Group - 2
#§
#§ \version \$Rev: 488 $
#§ \author EMail: aotto1968 at users.sourceforge.net
#§ \attention this software has GPL permissions to copy
#§ please contact AUTHORS for additional information
#§
v 3.8
- BUG fix and CODE cleanup release
complete the design of the configuration interface to "libmsgque"
> now, all command-line configuration options are available as functions <
Example: define an TCP server in the source with MqConfigSetIoTcp
> configuration modifications are now possible at any time <
v 3.7
- Add new programming language "VB.NET"
Well "VB.NET" is using the CLR runtime and one goal was to prove if the
promise of "Language Independent Programming" works -> YES
Now supporting: C, C++, C#, Java, Python, Tcl, Perl, VB.NET
- Not surprising is the "VB.NET" has the same performance figures as "C#"
and -> outperform <- Java, Python, Tcl, Perl
- PHP support was skipped because no "public" documentation is available
for the "Zend Engine 2.0" software (the base of PHP). This is interesting
because "Zend" is a "commercial" company and it seems that the clause:
"NO results are better than BAD results" is used.
- After adding of "VB.NET" was so easy I spend my time to improve the
BUILD environment. Now language independent files like JAVA "class"
and "jar" files or CLR "exe" and "dll" files were added to the distribution.
- Now I had to "convince" automake to use this files, even for a VPATH
build. Automake does not do this by default but I was able to "teach"
automake to do this.
- The rest of the time I used to add a new documentation block called
"Tutorial" and is available for every supported programming languages.
v 3.6
- Add new programming language "Perl"
The new language is added if the "--enable-perl" configure switch is used.
Create and Install new perl module "Net::PerlMsgque".
Use native perl "MakeMaker" build environment to create Perl-Conform build
and perform a Perl_Conform installation.
- The dependency for Tcl is now optional
The Tcl language is added if the "--enable-tcl" configure switch is used.
Be aware that the test-environment depend on Tcl
- Add asynchronous background handler
This handler is used to process errors not belonging to a transaction in
a centralized manner. The feature was implemented as Interface (C++,Java
,C#) or as configuration option (C,Perl,Python,Tcl).
- Add signature based type checking
Non-Typed languages without usable class or inheritance type checking now
using this feature to create type-save code. This feature is used for Tcl
and Perl.
- Add new Performance Test environment
The new environment using a separated directory "performance" and does
create better results combined with a clearly arranged result-table. Read
more in "performance/README"
v 3.5
- Add new programming language "C++" :
The new language is added if the "--enable-cxx" configure switch is used.
- C++ add a new design pattern to libmsgque based on the language requirements:
1. In "C++" a constructor can not call a "virtual" method. This is the main
difference between "C++" and "C#" or "JAVA". This require that
"Object" creation/deletion and "Link" creation/deletion have to be se-
parated into two different tasks. The former (C# and JAVA) implementation
was to use a "feature-rich" constructor to setup a "Link" during object
creation. This was changed.
A new methods "LinkCreate(..)" and "LinkCreateChild(..)" are introduced
for "Link" setup as counterpart for the "LinkDelete()" method. A new method
"ConfigGetIsConnected()" return the "Link-Status" of the Object-Instance.
With the new "Pattern" it is now possible to "reuse" a object-instance.
2. In "C++" a RTTI based Object-Creation is not possible. This task was
shifted into a "Factory" pattern. A "virtual" method called:
"virtual MqC* Factory() const"
is used to return a new object instance of the top-most class.
The "Factory" pattern was used as "default" design pattern because of:
- far more easy as the RTTI design pattern
- available for every programming language
- change the default visibility for GCC functions to hidden "-fvisibility=hidden".
-> This support the "Windows" binary design on Linux to create faster code.
- redesign of the main "struct MqS" and delete many of the data pointers
-> create smarter and faster code
-> only *one* pointer is used to used the entire API
- the "Filter" mode was redesigned and is using now the "Master/Slave" pattern
-> code cleanup and standardization
-> the IFilterFTR / IFilterEOF does now support a "pipelining" as "default"
- the "Error" handling was redesigned and moved into an independent "object"
or "class". This was necessary to "transport" an "error" through the error
stack of the "embedded" programming language.
v 3.4 28 June 2009
- Mayor Feature Improvement, add MASTER - SLAVE - GRID
Now able to Create, Manage and Control a MESH of
Processes or Threads.
- Mayor Feature Improvement, add WORKER jobs
Distribute work on multiple jobs of the same kind
- Mayor Bug-Fix, improve process shutdown and cleanup
v 3.3 12 June 2009
- Add new programming language "C#"
- Add new method "Init" to initialize the spawn startup executable
-> now JAVA got the long missing "--spawn" support
- Add new method "ErrorC" to create a libmsgque conform error
- Improve Event-Loop to cleanup items on Io error
- Update the performance figures including new C# results
- Add native windows build using "Visual C# 2008 Express Edition"
v 3.2 21 May 2009
- Switch windows build from GNU to Visual C++ 2008 Express
- Improved libmsgque performance
- Misc bug fixes and feature updates
v 3.1 12 May 2009
- Add Python 3.01 support
- New Tcl and Java Library binding
- C library improvement including better error checking support
- Add new test hardware, apple iBook (ppc) running Debian 5
- Re-Add big/little endian support
- Improve 32Bit/64Bit support
- Add new documentation
v 3.0 9 Apr 2009
- Add JAVA 1.6 support
- Add support for additional native types
signed char, boolean, signed short and float
- Add more type-save interface functions to the programmer interface
- Delete link between libmsgque and MqBufferS and MqBufferLS
- No external transaction pointer required anymore
- Embedded list data type
- Update of documentation
Add JAVA tutorial and JAVA examples to other documentation
Update performance overview
V 2.8 11 Mar 2009
- add "callback" support to do an asynchronous service-call
libmsgque: MqSendEND_AND_CALLBACK(...)
tclmsgque: $ctx send -callback tclProc ....
- add the options "buffersize" and "timeout" to "MqConfigS"
- add function "MqCurrentTokenIs"
- disable the tclmsqque event integration:
- delete the "MqEventCheck" and "MqEventCheckAll" functions.
- libmsgque events are only processed using the following tasks:
1. using send wait: "$ctx send -wait ..."
2. using event loop: "$ctx processEvent ..."
3. if a server was defined: "msgque create -server ..."
- delete the "checktime" configuration option
V 2.7 28 Feb 2009
- Add "thread" support, a new entity can now be created with
one of "--thread", "--fork" or "--spawn".
- The tool "astarter" was replaced with the option "--spawn":
OLD: astarter 7777 myserver ...
NEW: myserver --tcp --port 7777 --spawn
- To start a sub-command, "atool" uses "--fork" on UNIX
and "--thread" on WINDOWS as default.
- A lot of internal code cleanup and API improvements
V 2.6 28 Jan 2009
- add new tool "atool" to supersede the tools "aplit", "ajoin",
"acut" and "asort"
- change default-value to check the connection between "server"
and "client" to 1h
- add new option "--srvname" to the client startup options
to prefix all log and error messages with a client specific
identifier
- add new options to the performance measurement tool "client"
- "--transaction-perf" measure the transaction performance
- "--parent-perf" measure the parent-context-setup performance
- "--child-perf" measure the child-context-setup performance
- fix BUG in tclmsgque to crash in application cleanup
- fix BUG in libmsgque to not cleanup events under high load
V 2.5 20 Jan 2009
- minor feature release with support for:
- pipes (based on socketpair)
- fork (for a server listen on a tcp port or an uds file)
- and a lot of new documentation
V 2.4 23 aug 2007
- major release with support for native windows and alignment
V 2.3 8 mar 2007
- first public release
- setup GNU build environment but use doxygen for docs