February 25th, 2013
· This version adds lots of new features and bugfixes.
· Code inheritance between Program objects has been greatly improved, and declarations tagged as public are now inherited by default in child Program objects.
· Lots of new functions, methods, and type (pseudo) methods have been implemented, particularly to make iterators more powerful and to make developing iterators easier.
November 10th, 2012
· This release includes bugfixes for Qore and also includes some minor new features.
October 27th, 2012
· This version adds major new features and also contains many bugfixes.
· The highlights of this release are the new arbitrary-precision numeric support, much improved support for iterators, much improved support for text file processing, improved database API support, including an option API for database drivers, and the ability to handle module loading errors at parse time directly in Qore source code.
· Perl compatibility was improved due to the new default intuitive Boolean context evaluation behavior.
September 25th, 2012
· fixed a race condition accessing global and closure-bound thread-local variables in multithreaded contexts
· fixed a bug in transaction management with the DatasourcePool class when used with the SQLStatement class
· fixed an error in the MailMessage.qm user module where mail headers requiring encoding were not encoded and those not requiring encoding were encoded with Q encoding
· fixed an error in the Mime.qm user module where "_" characters in q-encoded headers were not encoded correctly
May 29th, 2012
· This major update adds support for user modules, where modules that extend the language at runtime can now be written in Qore itself.
· Additionally, Qore now supports pseudo-classes bound to value types, which provide methods that can be run on any Qore value, allowing any value to be treated as an object.
· Namespace handling was rewritten, and is now more consistently applied and more comprehensive.
· The language documentation has been greatly improved.
· This release contains many bugfixes and optimizations, as well as build fixes and many new functions, methods, and constants.
October 18th, 2011
· This version supports building native Windows binaries and other minor enhancements (including conditional parsing).
· Additionally, 33 bugs have been fixed.
December 27th, 2010
· This version includes 36 bugfixes and major new features including a much improved type system, class constants and static class variables, an SQL prepared statement API, support for declaring return types before the function or method signature, parser and name resolution support for writing Qore scripts without "%CONTENT%amp;quot; signs for variables or class method calls or object member references, and much more.
July 13th, 2009
· BUG FIX: fixed localtime() when called with no argument to return the current date and time as per documentation
· BUG FIX: fixed a race condition that could cause a deadlock when calling pthread_join() when Qore code calls "exit()" when multiple threads are running
· BUG FIX: fixed the Dir::listFiles() method; the mask used would not filter out directories
· BUG FIX: fixed crashes in the File class due to unsigned data type being used and the comparison (< 0) that signaled an error always failed; the crash would happen when a non-File object was read
· BUG FIX: fixed outputting recursive data structures with the %n and %N printf format specifiers (would otherwise result in a crash - for example, when an object contains a list that also contains the object, etc)
· BUG FIX: fixed object access deadlock scenarios
· BUG FIX: fixed the "-" operator with: hash-string and hash-list (also hash-=string and hash-=list) to remove the value(s) from the hash, not call the delete operator
· BUG FIX: NULL values are serialized as "null" JSON values
· BUG FIX: fixed parsing of a corner case of marginally valid XML-RPC
· BUG FIX: fixed XML-RPC serialization to handle NOTHING (no value) and NULL identically
· BUG FIX: fixed XML-RPC serialization to never output an empty element, as it could potentially break some implementations (the XML-RPC spec is not very clear on this). Note: we send empty value elements: when serializing NOTHING or NULL, which may not be correct either
· BUG FIX: do not assume that a trailing null should terminate the string when reading string data from files; include the trailing null in the string
· BUG FIX: fixed a bug parsing base64 strings when newlines and/or linefeeds trailed the base64-encoded data
· BUG FIX: fixed outputting '%%' as '%' in *printf*() functions
· BUG FIX: fixed a bug parsing hashes where the hash key was given as a constant
· BUG FIX: fixed a bug in the delete operator where shared data was being updated in place instead of copied and then updated
· BUG FIX: fixed some race conditions that could cause deadlocks with the getAllThreadCallStacks() function (not normally enabled by default)
· BUG FIX: ignore '
· ' and '
' when parsing base64-encoded strings
· BUG FIX: fixed a crashing bug when trying to copy member elements of a deleted object
· BUG FIX: fixed the foreach statement when used with a reference and the break statement is used
· BUG FIX: fixed a rare reference dependency bug where system classes were being destroyed while still referenced in user code
· BUG FIX: fixed %= with a modula operand of 0 to set the lvalue to 0 (previously the expression was ignored if the modula operand was 0)
· added the abilty for a Condition variable to wait on RWLock objects as well as Mutex objects
· dereferencing a hash or object with a list will return a slice of the hash or object as a hash: ex: $hash.("key1", "key2")
· allow %include parse directives to quote the file names (ignore leading and trailing quotes around the file name)
· new Socket class methods: + Socket::isWriteFinished(): for future support for non-blocking writes + Socket::setNoDelay(): to set the TCP_NODELAY option + Socket::getNoDelay(): returns value of the TCP_NODELAY option
· new functions to allow for explicitly specifying the encoding when serializing XML-RPC strings: + makeXMLRPCCallStringWithEncoding() + makeXMLRPCCallStringArgsWithEncoding() + makeXMLRPCResponseStringWithEncoding() + makeXMLRPCFaultResponseStringWithEncoding() + makeFormattedXMLRPCCallStringWithEncoding() + makeFormattedXMLRPCCallStringArgsWithEncoding() + makeFormattedXMLRPCResponseStringWithEncoding() + makeFormattedXMLRPCFaultResponseStringWithEncoding()
· added new HTTPClient methods for manipulating the TCP_NODELAY setting: + HTTPClient::setNoDelay() + HTTPClient::getNoDelay()
· now the XmlRpcClient and JsonRpcClient constructors accept an optional second argument that, when True, will inhibit the immediate connection attempt on the socket and instead allow the socket connections to be either manually established or established on demand with the first request
June 9th, 2009
· Minor feature improvements over 0.7.3 and twenty-two bug fixes.
February 14th, 2009
· Minor bugfixes and minor feature improvements.
· An optional timeout was added to the Socket::connect() and HTTPClient connect methods.
· New XML parsing functions were added, and the getcwd() function was corrected and the documentation was updated.
· Additionally, two fixes for the use of GLIBC-only functions were included, as well as fixes for the binary() function, PPC build fixes, and a fix for handling negative date arithmetic.
December 4th, 2008
· This release fixes eight crashing bugs and addresses packaging issues from the previous release.
· Additionally, terminal attributes may be manipulated with the new TermIOS class and new File methods (with the stdin, stdout, and sterrr constants).
· The Socket class now supports timeouts on connect*() methods.
· The File class was extended to support event generation and non-blocking reads.
· A Portfile is available for MacPorts, supporting building Universal binaries.
November 22nd, 2008
· This release updates the ABI to 5.0 due to problems with the last ABI/API; several crashing bugs were fixed.
· This version supports building Universal binaries on Darwin and Mac OS X.
· Atomic operations and stack guard are supported on 64-bit builds on Itanium processors.
· Module handling was updated, and network event notification support was added.
· Many other bugs were fixed.
October 15th, 2008
· The initial 0.7.0 release was missing CPU support for x86_64 CPUs; this caused an ABI incompatibility problem and also a lack of atomic operation support and missing stack guard for 64-bit x86_64 builds.
· The source package and all RPMs were affected.
· The release has been repackaged and the repaired release is available for download.