<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en"><title>Recent changes to news</title><link href="http://sourceforge.net/p/qore/news/" rel="alternate"></link><id>http://sourceforge.net/p/qore/news/</id><updated>2012-09-14T21:47:40Z</updated><entry><title>new home page for news: http://qore.org</title><link href="http://sourceforge.net/p/qore/news/2008/03/new-home-page-for-news-httpqoreorg/" rel="alternate"></link><updated>2012-09-14T21:47:40Z</updated><published>2012-09-14T21:47:40Z</published><author><name>David Nichols</name><uri>http://sourceforge.net/u/userid-1353092/</uri></author><id>http://sourceforge.netf543b718a42829a2abd0ecbcef090ce0681a90c0</id><summary type="html">new home page for the Qore Programming Language: http://qore.org</summary></entry><entry><title>0.6.2 release and new Qore Home Page</title><link href="http://sourceforge.net/p/qore/news/2007/06/062-release-and-new-qore-home-page/" rel="alternate"></link><updated>2012-09-14T21:47:40Z</updated><published>2012-09-14T21:47:40Z</published><author><name>David Nichols</name><uri>http://sourceforge.net/u/userid-1353092/</uri></author><id>http://sourceforge.netecaa41bcafcd1b12b3472f74d2e69681b8692cb2</id><summary type="html">Qore 0.6.2 is now available for immediate download, and Qore has a new web site: http://qoretechnologies.com/qore
 
The 0.6.2 is a major release, featuring new PostgreSQL, Sybase, and FreeTDS (for open source MS SQL Server and Sybase connectivity), safe signal handling support, major performance improvements, HTTPClient improvements (redirections, basic authentication, proxy support), deadlock detection, new support for exception-safe programming, improved support for database-driver independent SQL programming, MySQL and Oracle driver improvements, new operators, functions, classes, methods, and a lot more.
 
Additionally the documentation has been extensively expanded (also many more examples have been added) and many corrections have been made. 

Note that the tibae module is no longer delivered with i386 Linux RPMs as the compiler requirements (the latest version requires g++ 3.2) are non-standard.  If you need TIBCO AE/Adapter support, please compile from source. 
</summary></entry><entry><title>0.6.0 release - major new features</title><link href="http://sourceforge.net/p/qore/news/2007/01/060-release---major-new-features/" rel="alternate"></link><updated>2012-09-14T21:47:40Z</updated><published>2012-09-14T21:47:40Z</published><author><name>David Nichols</name><uri>http://sourceforge.net/u/userid-1353092/</uri></author><id>http://sourceforge.netbbb347a3bc89958ae60282eb7ee290dea9903173</id><summary type="html">Qore 0.6.0 has just been released.  qore is a modular, multithreaded, embeddable, db-integrated, weakly-typed, object-oriented programming language with XML &amp;amp; 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 &amp;lt;qore&amp;gt; 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 &amp;quot;single compilation unit&amp;quot; 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 &amp;gt; &amp;quot;ABC&amp;quot;: ... } )

* 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...

https://sourceforge.net/projects/qore</summary></entry><entry><title>0.5.3 released, tons of fixes</title><link href="http://sourceforge.net/p/qore/news/2006/10/053-released-tons-of-fixes/" rel="alternate"></link><updated>2012-09-14T21:47:39Z</updated><published>2012-09-14T21:47:39Z</published><author><name>David Nichols</name><uri>http://sourceforge.net/u/userid-1353092/</uri></author><id>http://sourceforge.netbc92a01db3c1191c20420be9c03608836216c463</id><summary type="html">qore 0.5.3 is available for download - some of the fixes include: ncurses module fix, solaris shared build fixes, lots of deadlocks fixed (Datasource, SingleExitGate, Queue classes), reduced unnecesary object reference locking (which could cause deadlocks in some complex scenarios), memory errors and memory leaks fixed, linked list errors fixed in QoreQueue class (qore-language Queue class), fixed circular reference with thread-local storage and the QoreProgram class, implemented some new functions and support for directly specifying binary constants (ex: const bin = &amp;lt;0ab5217feab4&amp;gt;;), more use of STL containers where appropriate, lots of other bug fixes...

in the meantime, work continues on qore 0.6.0...
</summary></entry><entry><title>0.6.1 bugfix release</title><link href="http://sourceforge.net/p/qore/news/2007/02/061-bugfix-release/" rel="alternate"></link><updated>2012-09-14T21:47:39Z</updated><published>2012-09-14T21:47:39Z</published><author><name>David Nichols</name><uri>http://sourceforge.net/u/userid-1353092/</uri></author><id>http://sourceforge.net938fec42aa1617d6f3366809cf341478def1060b</id><summary type="html">0.6.1 source and binary packages are available for download.

this is primarily a bugfix release:
HTTPClient class: fixed connections to HTTP 1.1 servers (set the Host: header properly), implemented reading chunked transfer-encoding, implemented 'deflate' and 'gzip' content-encoding handling

Datasource class: fixed core dump when a thread exits after the datasource object is deleted when a transaction was in progress

JSON fixes: escape code parsing in JSON strings was fixed, unicode numeric character sequences are handled in JSON strings (and when decoding HTML strings)

XML fix: CDATA is handled properly when parsing and generating XML strings

There are a few new features: min() and max() functions for lists with optional callback functions to process lists of complex user-defined data structures, new gzip() and gunzip_*() functions implemented...
</summary></entry><entry><title>v0.5.2 release imminent, compatibility warnings</title><link href="http://sourceforge.net/p/qore/news/2006/09/v052-release-imminent-compatibility-warnings/" rel="alternate"></link><updated>2012-09-14T21:47:39Z</updated><published>2012-09-14T21:47:39Z</published><author><name>David Nichols</name><uri>http://sourceforge.net/u/userid-1353092/</uri></author><id>http://sourceforge.net384e60f1084dd50aaa00cac6af0269a80eae4a1e</id><summary type="html">The 0.5.2 release has some major functional and design improvements, but also contains a few changes that could potentially break backwards compatibility with some programs.

*** The &amp;quot;tibco&amp;quot; module has been renamed to &amp;quot;tibae&amp;quot;.  
Be aware that to use TIBCO Active Enterprise functionality in v0.5.2 you have to include &amp;quot;%requires tibae&amp;quot; instead of &amp;quot;%requires tibco&amp;quot; in your qore scripts.  This was done to avoid confusion with the new &amp;quot;tibrv&amp;quot; module in v0.5.2 which provides TIBCO Rendezvous support.

*** int &amp;lt;-&amp;gt; date conversions are now based on a 64-bit second offset from Jan 1, 1970
*** date arithmetic no longer takes daylight savings time into consideration
There are a lot of improvements in date handling and lots of additional date functionality in this release, but the int/date conversion choice was made despite the fact that it could break backwards-compatibility because it makes finding the difference between two dates much easier (i.e. 2006-01-01 - 2005-12-31 will give a value of 86400 - for the 86400 seconds in one day).
DST is no longer taken into consideration because internally date arithmetic is based on the internal conversion to a 64-bit second offset from Jan 1, 1970 instead of using the mktime() function - so date arithmetic now works with dates far outside the 32-bit time_t range.
A full list of the date-related changes is included in the release notes in SVN, but quickly some other changes include millisecond support, direct absolute date difference support (giving a relative date value), all functions and methods taking timeout values accept relative date values in addition to integer values to make time units clear (i.e. sleep(10) can also be written as sleep(10s) or sleep(10000ms), etc), functions to work with ISO-8601 calendar weeks

Other changes should only provide additional capabilities, sich as: transparent TLS/SSL support for sockets, classes for manipulating X.509 certificates and private keys, RFC-4217 support for the FtpClient class (FTPS support), functions supporting strong encryption/decryption, message digest calculation functions, a &amp;quot;tibrv&amp;quot; module providing support for TIBCO Rendezvous functionality (including secure daemons, certified messaging, fault tolerant group monitoring and membership, distributed queues, etc), oracle driver improvements (direct data binding in the Datasource::select() method), mysql driver improvements (direct data binding in exec and select, stored procedure execution support), XML improvements (support for serializing and deserializing multiple out-of-order keys), 64-bit build support on x86_64 platforms, a warning framework, much simpler/streamlined qore c++ class development, and a lot of bug fixes, and more...
</summary></entry><entry><title>subversion migration complete</title><link href="http://sourceforge.net/p/qore/news/2006/06/subversion-migration-complete/" rel="alternate"></link><updated>2012-09-14T21:47:39Z</updated><published>2012-09-14T21:47:39Z</published><author><name>David Nichols</name><uri>http://sourceforge.net/u/userid-1353092/</uri></author><id>http://sourceforge.net0fbc66b86f4c1babb7db61e980c1ee2982eb44b7</id><summary type="html">CVS will no longer be updated - please use subversion from now on...

To check out a working copy from subversion:
svn co https://svn.sourceforge.net/svnroot/qore

developer access to CVS has been disabled - all further commits should be done to subversion.</summary></entry><entry><title>changes in next release</title><link href="http://sourceforge.net/p/qore/news/2006/04/changes-in-next-release/" rel="alternate"></link><updated>2012-09-14T21:47:39Z</updated><published>2012-09-14T21:47:39Z</published><author><name>David Nichols</name><uri>http://sourceforge.net/u/userid-1353092/</uri></author><id>http://sourceforge.net9db560957195de04b097180ca290150fc8d28122</id><summary type="html">I think that we came up with a good compromise that maximizes backwards compatibility while maintaining the ease of use for the programmer and keeping maximum flexibility for the future.

The idea goes like this:
throw statements would keep the same syntax; you can throw anything you want.
However, the throw arguments will be mapped in a systematic way to the exception hash (I mean the automatic catch variable we always called “$ex”).

the exception hash would have the following keys as before:
type
file
line
callstack
next (for chained exceptions)

and additionally would have the following new keys which would be populated depending on the throw arguments:
err
desc
arg

if the throw statement is a single value of any type, it’s mapped to $ex.err
If it’s a list, elements 0 and 1 are mapped to $ex.err and $ex.desc, whereas any further elements (or the rest of the list if there are more than 3) are mapped to $ex.arg

This means that no throw statements would have to be changed, only catch blocks (most of these should be in OM/Qore anyway, so it’s no problem).
Also for other applications that would like to throw only an integer, this would still be possible – throw 400; would just map to $ex.err == 400 with $ex.desc and $ex.arg set to NOTHING.

System exceptions would always have $ex.err and $ex.desc populated.

As before, there would be no automatic $argv assignment, and if you don’t put a single variable name in the catch block, you can’t access the exception information.

A rethrow statement will be executed which will allow the exception to be rethrown: rethrow $ex;
</summary></entry><entry><title>0.4.2 release &amp;amp; OO features</title><link href="http://sourceforge.net/p/qore/news/2005/12/042-release-amp-oo-features/" rel="alternate"></link><updated>2012-09-14T21:47:39Z</updated><published>2012-09-14T21:47:39Z</published><author><name>David Nichols</name><uri>http://sourceforge.net/u/userid-1353092/</uri></author><id>http://sourceforge.net2ee4efc4b4324ba474abf8295ed1d5073754b311</id><summary type="html">There were some errors in the RELEASE-NOTES included with the 0.4.2 release regarding object copying.

In 2 places in the RELEASE-NOTES it states that objects can never be copied.  This is not true.  Objects can be copied by explicitly cal\
ling the &amp;quot;copy()&amp;quot; method.  Otherwise they will be referenced by default.

INCORRECT example
$a = new Class();
$b = $a;      # $b holds a reference to object $a
delete $b;    # the single object is deleted
$a.method();  # throws an exception because the object was deleted

CORRECT example
$a = new Class();
$b = $a.copy();   # $b is a copy of $a
delete $b;        # the copy is deleted
$a.method();      # no exception is thrown

To prohibit an object from being copied, define a &amp;quot;copy()&amp;quot; method in the class, and throw an exception in the &amp;quot;copy()&amp;quot; method.

NOTE: you don't have to define a copy method to support copying in your object - by default the system generates a new object and then c\
opies all members to the new object, except members that are themselves objects are referenced.  In this case &amp;quot;copy()&amp;quot; does a shallow co\
py of the members (similar to the object.clone() method in Java).  However, unlike Java, if any copy methods exist (in the current class\
 or in base classes) they will be executed in the new object, with a reference to the original object passed as the first argument to th\
e &amp;quot;copy()&amp;quot; method.

Also, I forgot to include in the RELEASE-NOTES information about the new parse options, like:
%no-global-vars
%no-subroutine-defs
%no-threads
%no-top-level
%no-class-defs
%no-namespace-defs
%no-external-process
%lock-options
%no-process-control
%no-constant-defs
%no-new
%no-child-restrictions
%require-our
%exec-class

that can be used (if the parse options have not been locked - another new feature in this release) instead of command-line options to control how code is parsed.

thanks
david
</summary></entry><entry><title>migration to subversion</title><link href="http://sourceforge.net/p/qore/news/2006/04/migration-to-subversion/" rel="alternate"></link><updated>2012-09-14T21:47:39Z</updated><published>2012-09-14T21:47:39Z</published><author><name>David Nichols</name><uri>http://sourceforge.net/u/userid-1353092/</uri></author><id>http://sourceforge.net5bc82ee5be7003dc0b3da6f44be0bd5703750c27</id><summary type="html">If there are no objects from anyone in the next week, qore will be migrated to svn from cvs on sourceforge.

For any concerns or objects, please email me or post comments here. 

thanks
david
</summary></entry></feed>