0.6.0 release - major new features

Qore 0.6.0 has just been released. qore is a modular, multithreaded, embeddable, db-integrated, weakly-typed, object-oriented programming language with XML & perl5-regex support, oracle, mysql, TIBCO Rendezvous and AE modules, suitable for interface development, application scripting, etc.

new features include:
* significant performance increases on SMP platforms
this is one of the most important updates so far - basically work has been done to reduce the number of cache invalidations (meaning mostly locking and atomic updates for referenced-counted objects, but also Operator optimizations and more) which has resulted in a more than 2x speed improvement for the code paths where the optimization has been implemented (on SMP platforms)

  • stable shared library interface
    headers have been cleaned up significantly and all excessive inlining removed. Qore c++ clients just need to #include <qore> instead of a long list of possible header files, tons of API cleanups, use of g++ visibility tags on all objects (with g++ 4.0 or higher) to formally define the shared library interface, use of "single compilation unit" in the build to allow the compiler to do global optimizations (among other things)

  • tuxedo module covering the entire BEA Tuxedo(R) client API

  • switch case statement now accepts simple operators
    instead of just values (i.e.: switch ($value) { case > "ABC": ... } )

  • use of single compilation unit compiles
    allows the optimizer to optimize the entire code at one time (also speeds up compile time up to 5x or more)

  • new functions
    like is_file(), is_dir(), is_link(), is_writable(), is_readable(), etc

  • new sorting functions, callbacks for sorting lists of non-trivial data types
    new functions: sortStable(), sortStableDescending()

  • support for inheritance of builtin classes

  • class implementation and object performance improvements
    it's now easier to implement qore classes in c++ and the resulting objects are faster than with previous versions of qore

  • JSON support
    easy serialization/deserialization between qore data structures and JSON strings as with the existing XML support.

  • internal HTTPClient, XmlRpcClient, and JsonRpcClient classes
    Note that the qore-language example files XmlRpcClient.qc and HTTPClient.qc have been
    removed in favor of the internal implementations.

  • TIBCO ActiveEnterprise Adapter client-side synchronous operation call support

  • miscellaneous bugfixes and improvements

  • and last but not least: finally fixed the line-number reporting bug with multi-line statements...


Posted by David Nichols 2007-01-31