Subject: CVS commit: wip/qore
From: Niclas Rosenvik
Date: 2014-05-31 13:42:04
Message id: E1Wqhg6-0005L2-Ba@sfs-ml-3.v29.ch3.sourceforge.com

Log Message:
Updated to 0.8.10.

Changelog:
New Features in Qore

    better HTTP support; support for chunked sends and receives for 
streaming data over HTTP and other improvements:
        HTTPClient::sendWithSendCallback()
        HTTPClient::sendWithRecvCallback()
        HTTPClient::sendWithCallbacks()
        HTTPClient::setPersistent()
        Socket::readHTTPChunkedBodyBinaryWithCallback()
        Socket::readHTTPChunkedBodyWithCallback()
        Socket::sendHTTPMessageWithCallback()
        Socket::sendHTTPResponseWithCallback()
        Socket::pendingHttpChunkedBody()
    added a minimum body size threshold for compression to HttpServer
    RestClient module updates:
        configurable content encoding for send request message bodies is 
now supported (ie optional compression)
    new user modules:
        Schema: for DB-independent schema management
    new public C++ socket performance instrumentation API
    new functions:
        Qore::close_all_fd()
    new constants:
        ESRCH: search error
    getModuleHash() and getModuleList() no longer return the "filename" 
key when run in a Program context with Qore::PO_NO_EXTERNAL_INFO set
    SqlUtil updates:
        added insert operator support; for example, for inserting with 
values from sequences
        added new upsert constant maps
        added static SqlUtil::AbstractSqlUtilBase::getDatasourceDesc() 
method
        added new Table::insertFromSelect*() variants taking Table 
arguments
        added SqlUtil::Table::checkExistence() method
        added support for the "forupdate" select option
    OracleSqlUtil updates:
        fixed selects with "limit" but no "offset"
        convert date/time values to timestamps with microseconds 
resolution instead of dates with second resolution when dynamically 
inserting values as strings in SQL (binding by value not affected)
    CsvUtil module updates:
        added the "write-headers" option to CsvUtil::AbstractCsvWriter 
and subclasses to enable headers to be suppressed
        added the "optimal-quotes" option to CsvUtil::AbstractCsvWriter 
and subclasses to enable more efficient csv output (now the default)
    added AbstractDatasource::currentThreadInTransaction() which is 
reimplemented as Datasource::currentThreadInTransaction() and 
DatasourcePool::currentThreadInTransaction(); the base class method 
throws an exception when called; it was not added as an abstract method 
in order to not break existing subclasses of AbstractDatasource
    enhanced module license support
        module license strings may now be specified in binary and user 
modules
        Qore::getModuleHash() and Qore::getModuleList() now report 
license information for each module

Bug Fixes in Qore

    fixed an issue with class constant parse initialization where 
invalid recursive class constant definition parse exceptions could be 
raised and in some cases also crashes could result
    SmtpClient module: fixed missing username and missing password 
errors
    fixed a bug where a qore switch statement with no case conditions 
and only a default label would erroneously never have it's default code 
executed
    fixed a reference leak related to exception handling with invalid 
arguments with Qore::Socket::setWarningQueue() and 
Qore::HTTPClient::setWarningQueue()
    fixed several bugs where the parse location could be reported 
incorrectly for type errors regarding in-object variable references
    fixed a bug where an error could result with Condition::wait() with 
timeouts > 2147483648ms
    fixed bugs handling "bigint" and "double precision" \ 
column types 
with schema alignments with the PgsqlSqlUtil module
    fixed a bug handling parse initialization of constant values 
requiring run-time evaluation after other parse exceptions have been 
raised that could cause a parse-time crash
    fixed a bug where qore could crash on exit with certain openssl 
versions by calling ERR_remove_state(0) in the main thread's cleanup 
function
    fixed a bug where qore could crash on exit due to user module 
destruction not taking into consideration user module dependencies
    fixed a bug in schema management in SqlUtil where excessively 
verbose column aliases were used that caused errors when automatically 
updating columns with existing rows and new default values and non-null 
contraints with PostgreSQL databases
    fixed a bug where a call reference to an abstract object method 
returned from an abstract class could be executed even though it must 
have been instantiated by a concrete subclass
    fixed a bug where a valid call reference to a private object method 
was created within the class, then in some cases an object protection 
exception was raised when the call reference was called outside the 
class
    fixed a bug in the RestClient module when the yaml binary module is 
not available
    fixed programmatic select queries with "limit" but no \ 
"offset" in 
OracleSqlUtil
    fixed a bug in Qore::Program::importFunction() where only the 
committed function list was checked when importing functions with a 
specific target namespace path
    fixed a bug in Qore::Program::importClass() where only the committed 
class list was checked when importing functions with a specific target 
namespace path
    fixed a bug when parsing subnamespaces into a parent namespace where 
the subnamespace already exists (either in the committed list or in the 
pending list)
    fixed a memory and reference leak caused by recursive references 
when closures encapsulating an object's scope are assigned to or 
accessible from members of the object by making references to the object 
from within a closure encapsulating the object's state weak references 
instead of strong references
    fixed schema information classes when the "string-numbers" driver 
option is enabled
    fixed crashing bugs in Qore::get_thread_data() in certain use cases
    fixed a bug in SqlUtil where select and row iterator operations 
could fail with certain select hash arguments without a "columns" entry 
but where column names were otherwise required
    fixed a bug in HTTP response parsing where case-signficant 
comparisons where being made with certain critical header values
    fixed a bug handling thread cancellation with the ThreadPool class
    fixed several race conditions and potential deadlocks in ThreadPool 
destruction with active threads in the pool

Files:
RevisionActionfile
1.12modifywip/qore/Makefile
1.8modifywip/qore/PLIST
1.6modifywip/qore/distinfo
1.2modifywip/qore/patches/patch-Makefile.in