NEWS

#+
#§  \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



libmsgque project on SF: Get libmsgque at SourceForge.net. Fast, secure and Free Open Source software downloads    Generated on Mon Nov 9 16:57:38 2009 by doxygen 1.5.8