Commit graph

18 commits

Author SHA1 Message Date
joerg
2e161e0716 Disable single compilation unit by default, it will dramatically
increase memory use during compilation for poor man's LTO.
2018-12-27 15:15:22 +00:00
nros
70dbf52695 Updated lang/qore to version 0.8.13.5 .
New features in Qore:
* the sqlutil script has been updated with the –select option
  to allow dumped table rows to be filtered
* "thread list", "backtrace all" commands implemented for
  the debugger
* QUnit: overloaded the testAssertionValue() method to support
  auto/number/float and more verbose output when a difference
  in number/float values is found
* qdbg-remote supports ConnectionProvider connections
* new method: Breakpoint::getProgram()

* improved debugging support:
 - added support for a Visual Studio Code debug adapter for Qore
 - the debugger can now retrieve sources when running from a remote
   debug server
 - debugger options can now be set from command line (verbosity etc.)
 - the onAttach() event is now executed synchronously when
   the program thread context starts
 - the onDetach() event is executed properly when program thread
   contexts terminate
 - the onStep() now provides the breakpointId value if available
 - the onExit() event was added for greater control over
   code execution in the debugger
 - the onException() event was improved
 - server commands now support frameid as a parameter

Bug fixes:
 to many to list.
2018-06-08 18:38:29 +00:00
wiz
58a2a977a7 recursive bump after mpfr shlib major bump 2018-01-28 16:24:10 +00:00
nros
8f112d4eac Updated lang/qore to version 0.8.13.
New features in Qore:

* Input/Output stream APIs
* Vastly improved type system with complex type support
* Improved operators; list, string, binary slice operators,
  the ".." range operator, improved new, cast<>, and instanceof
  operators, lazy evaluation of functional and list operators
* Improved encryption support including AES encryption,
  encryption/decryption streams, support for AAD and MACs
* Improved HTTPS and SSL security support with addition X.509
  certificate support including automatic certificate
  verification in client and server contexts
* Universal connection API
* Support for binding output placeholder buffers for result sets
  that return an SQLStatement object for more efficient piecewise
  processing of DB stored procedure/function calls that return
  very large result sets
* Strong encapsulation support (ex: private:internal)
* Deterministic garbage collection performance improvements with
  large cycles
* Debugging support and APIs including remote network debugging
* Language Server Protocol support for Qore in the new astparser
  module for rich language support in IDEs such as the
  Visual Studio Code Qore Extension

Bug Fixes in Qore:

* fixed a bug causing AbstractQuantifiedBidirectionalIterator not
  being available (issue 968)
* BulkSqlUtil module fixes:
    -fixed the module to work properly even with DB drivers that
     do not support parameter array binding (issue 1154)
* CsvUtil module fixes:
    -fixed a bug in an error message validating input data
     (issue 1062)
    -added an exception when detected headers do not match the
     fields option (issue 2179)
* HttpServer module fixes:
    -added logic to attempt to mask passwords in log messages
     (issue 1086)
* HttpServerUtil module fixes:
    -fixed a bug where the msg arg to AbstractAuthenticator::do401()
     was ignored (issue 1047)
* RestHandler module fixes:
    -added logic to allow sensitive data to be masked in log messages
     (issue 1086)
* SqlUtil module fixes:
    -fixed a bug in update and upsert statement generation when the
     given data does not have enough columns to use the unique index
     found, an error message is generated that contains all the
     columns names instead of just the column names required by the
     index (issue 1013)
* WebSocketClient module fixes:
    -fixed a thread lock starvation race condition (issue 2130)
* UTF-16 fixes:
    -fixed a bug comparing strings in UTF-16 encodings (issue 1579)
    -fixed Qore::substr() and <string>::substr() with strings in
     UTF-16 encodings (issue 1586)
    -fixed Qore::trim(), Qore::ltrim(), Qore::rtrim() and the trim
     operator with strings with UTF-16 encodings (issue 1775)
* fixed a bug where break and continue statements were accepted
  outside of loops (issue 976)
* fixed a bug compiling on Solaris SPARC with g++ where
  MPFR_DECL_INIT() is compiled incorrectly with -O1 or greater
  (issue 958)
* fixed a bug causing an infinite loop in decompression functions
  (issue 966)
* fixed an issue where an internal C++ API
  (QoreProgram::parseCmdLineDefines()) performed a needless copy
  of a data structure (issue 1099)
* fixed a stack corruption bug with asynchronous I/O on UNIX
  systems with ReadOnlyFile methods (issue 1106)
* fixed bugs with inconsistent conversions of int, float, and
  boolean values to date/time values, now they are all converted
  uniformly to relative date/time values (issue 1156)
* fixed a bug where Qore allowed code to be declared both public
  and private without a warning (issue 1187)
* fixed a bug where the instanceof operator would return True with
  objects that did not publically inherit the given class or where
  the given class is not accessible (issue 1191)
* fixed a bug in qpp support of the 'final' class flag (issue 1222)
* fixed a bug where the + operator provided access to private
  members from outside the class (issue 1209)
* fixed a bug where different overloaded method variant resolution
  rules were used at parse time (best match in hierarchy) and
  runtime (best match in first matching class) in a class hierarchy
  (issue 1229)
* fixed a bug where exceptions in base class constructor calls did
  not reflect the actual source location (issue 1230)
* fixed a bug where runtime function/method variant matching was
  incorrectly biased towards default matches for missing arguments
  (issue 1231)
* fixed bugs where calls to Socket::upgradeClientToSSL() and
  Socket::upgradeServerToSSL() were ignored with no exception
  thrown if the socket was not connected (issue 1258)
* fixed a bug where a closure created in an object scope could not be
  called if the object had been deleted, even if the closure did not
  refer to the object (issue 1303)
* fixed a bug where ord() would return negative numbers for bytes
  with the high bit set with compilers where char is the same as
  signed char (issue 1385)
* fixed a bug where int(number) returned rounded value instead of the
  integer part (while int(float) behaved correctly; also
  cf. initializing a softint value from a number vs. from a float)
  (issue 1463)
* File::read() now uses character semantics for the length argument
  (issue 1548)
* fixed a bug with strongly-typed lvalue assignments with classes
  created in different Program objects (issue 1551)
* fixed a bug where an ASCII string and the same string in a different
  encoding and with diacritics could incorrectly be marked as equal
  (issue 1579)
* fixed bugs in HTTPClient methods where string message bodies were
  not converted to the object's character encoding before transmission
  (issue 1813)
* fixed a bug in the reference and *reference assignment restrictions;
  previously any value was accepted, now only references are accepted
  as the initial assignment values (issue 1819)
* fixed a bug in handling the SqlUtil::BLOB type in the FreetdsSqlUtil
  module (issue 1852)
* fixed a bug in overloaded call variant matching where missing
  arguments were counted towards the match (issue 1897)
* fixed many bugs where parse-time errors could be reported at an
  incorrect source location; parse-time error location reporting has
  been completely overhauled and reimplemented for correctness
  (issue 1930)
* fixed a bug where code signatures would accept parameter variables
  without "$" signs even when %allow-bare-refs was not in effect
  (issue 1941)
* fixed memory leaks in the scanner related to EOF conditions
  (issue 1976)
* rewrote Qore functions gethostbyname(), gethostbyname_long() and
  gethostbyaddr() to use standard C functions getaddrinfo(3) and
  getnameinfo(3) internally instead of the deprecated gethostbyname(3)
  and gethostbyaddr(3) (issue 1952)
* fixed cmake builds on Darwin (issue 1980)
* fixed a bug where immediate date-time values were not marked with
  their type at parse time (issue 2001)
* fixed a bug where the *data type restriction would allow all types
  to be assigned at runtime (issue 2002)
* Qore::RangeIterator::constructor(int) and Qore::xrange(int) were
  updated; the second arguments were removed to avoid ambiguity with
  the other overloaded variants (issue 2016)
* fixed a bug where Qore::replace() could get in an infinite loop
  with arguments with embededed nulls (issue 2098)
* fixed a bug in regular expression extraction where an infinite loop
  could occur (issue 2083)
* fixed a bug where a call reference to an object method that crosses
  Program boundaries could result in a core dump when called due to an
  error managing thread-local data (issue 2145)
* fixed crashes in scanner due to EOF in comments (issue 2175)
2017-10-12 18:17:46 +00:00
nros
01dfcbe035 Update Qore to version 0.8.12.11.
This is a bugfix release so no buildlink change.

ChangeLog:

New Features in Qore
 * added broken-logic-precedence warning.

Bug Fixes in Qore
 * fixed documentation regarding escaping of characters in
   strings and added a parse exception in case of trying
   to escape octal values in range 400-777 (issue 50)
 * fixed a crashing bug where Datasource::getConfigString()
   was called without a connection, also could crash in an
   implicit internal call to this method with the
   DatasourcePool class when connections were lost and the
   warning callback should be called (issue 1992)
 * fixed a bug where Datasource::getConfigHash() returned
   different values depending on if the object was
   connected or not (issue 1994)
2017-07-30 19:27:08 +00:00
joerg
03f704711c Retire CLANG_NO_VALUE_PROPAGATION_PASS. CVP has been fixed in LLVM to
require much less memory.
2017-07-11 19:41:20 +00:00
nros
e00c54f1ab Update qore to version 0.8.12.10.
Changelog from release notes:

New Features since Qore 0.8.12.4:
* added the SalesforceRestClient module for communicating with
  Salesforce.com using the REST APIs
* module SqlUtil
    -has support for native default values in tables
     (issue 1428)
    -has support for Oracle named types (eg. spatial types) for
     Schema.qm and SchemaReverse.qm. (issue 1465)

Bug Fixes since Qore 0.8.12.4:
* module fixes:
    -FixedLengthUtil: fixes and improvements to errors and
     exceptions (issue 1828)
    -HttpServerUtil: eliminated excess logging of all HTTP
     chunks sent and received (issue 1832)
    -PgsqlSqlUtil: fixed a bug in setting a comment for a
     table column (issue 1886)
    -SqlUtil: fixed a bug in the offset query hash argument
     in SQL operation methods (issue 1880), fixed a bug
     that prohibited only columns from the main query to be
     selected when joins are used (issue 1909)
    -TableMapper: fixed a bug in flush messages in the
     InboundTableMapper class (issue 1849)
* fixed a bug that could cause spurious parse-time exceptions
  to be thrown when matching call variants with multiple
  return types for the same callable object (issue 1928)
* fixed the process return code in the output reference in
  backquote() on Unix/Linux platforms (issue 1884)
* fixed a bug where connections were not immediately released
  back to the DatasourcePool in case of an SQLSTATEMENT-ERROR
  exception (issue 1836)
* eliminated a spurious exception in the SQLStatement class in
  case of a DatasourcePool timeout (issue 1832)
* fixed a crash when the incorrect type was passed to a
  parameter declared *reference (issue 1815)
* fixed a crash when the Qore library exits caused by an error
  in handling module dependencies with injected modules
  (issue 1805)
* fixed segfault crashes caused by calling object methods with
  null pointers (issue 1791)
* added internal API support to make it easier for DBI drivers
  to handle lost connections and to allow DBI drivers that must
  close all open handles before a connection is closed
  (such as the oracle driver); due to this change, SQLStatement
  objects based on a DatasourcePool are closed automatically
  whenever the datasource is returned to the pool (issue 1250)
* implemented new parse options to revert the effect of parse
  options that affect code safety (issue 1895):
    -%correct-list-parsing
    -%correct-logic-precedence
    -%correct-int-assignments
    -%correct-operators
    -%loose-args
* fixed parse locations of strings and regexes (issue 1905)
* fixed a memory leak where references participate in recursive
  references (issue 1774)
* fixed a build issue with clang++ (issue 1768)
* fixed a memory leak in the Queue copy constructor when the
  Queue was used in other objects (such as an event queue,
  etc; issue 1749)
* Mapper module fixes:
    -fixed bugs handling the allow_dot and allow_output_dot
     options (issue 1690)
    -fixed TableMapper bugs introduced in Qore 0.8.12.7
     (issue 1754)
* fixed a memory leak in %try-module error handling (issue 1690)
* fixed a bug in trunc_str() when the string has an invalid
  multi-byte character at the end of the string and the string
  is exactly the byte width requested (issue 1693)
* fixed a bug where ReadOnlyFile::getchar() did not respect
  character semantics as documented (issue 1574)
* OracleSqlUtil module fixes:
    -fixed a bug in character_semantics for standalone column
     (issue 1688)
* Mapper module fixes:
    -fixed a bug in handling "list mode" data such as submitted by
     InboundTableMapper::queueData() (issue 1736, bug introduced
     in Qore 0.8.12.7 with the fix for issue 1626)
* SqlUtil module fixes:
    -fixed schema alignment skipping column with name "driver"
     (issue 1684)
    -fixed sqlutil schema management: functional indexes are
     rejected without () in name (issue 1610)
* TableMapper module fixes:
    -fixed a bug in handling "list mode" data with optimized
     inserts (issue 1736, bug introduced in Qore 0.8.12.7 with
     the fix for issue 1626)
* WebSocketClient module fixes:
    -added timeout values to Socket and HTTPClient calls
     (issue 1725)
* WebSocketHandler module fixes:
    -added timeout values to Socket calls (issue 1725)
* WebSocketUtil module fixes:
    -added timeout values to Socket calls (issue 1725)
* fixed a bug where a type conversion error in an lvalue
  assignment could generate a confusing unrelated runtime
  exception (issue 1697)
* fixed a bug where invalid characters in the port
  specification in a URL were ignored (issue 1728)
* fixed a bug with SSL socket communication the remote closing
  the connection during a send operation could cause the
  current thread to go into an infinite loop consuming
  100% CPU (issue 1729)
* fixed a bug in the HashListIterator class iterating hashes
  with a mix of lists and single values such as used by bulk
  DML binds; now the single values will appear as the current
  value for all list elements as per the original design
  instead of throwing a runtime exception (issue 1738)
* fixed bug in internal string generation with size_t arguments
  that could cause invalid data to be output or crashes on
  32-bit platforms (issue 1640)
* fixed a runtime memory leak and invalid runtime behavior with
  undetected recursive lvalue references (issue 1617)
* improved prompt collection performance with large graphs of
  objects by eliminating additional unnecessary graph scans,
  resulting in further large performance improvements in the
  garbage collector (issue 1363)
* improved InboundTableMapper::queueData() performance
  (in the TableMapper module) when used with data in hash of
  lists format to use bulk DML in input and output without
  internal data conversions (issue 1626)
* OracleSqlUtil module fixes:
    -worked around ORA-22165 from op_in() caused by Oracle's
     limit on number of collection elements (issue 1660)
    -fixed a bug in the force option (i.e. cascade) for
     dropping types (issue 1683)
    -improved %try-module error reporting and documentation
     (issue 1648)
* fixed a bug in Qore::parse_url() parsing single-character
  hostnames (issue 1524)
* fixed a bug where PO_LOCKDOWN was not set when parsing init
  and del attributes in user module headers (issue 1535)
* fixed a bug parsing exception catch block parameter errors
  (in debug builds only; issue 1558)
* fixed a bug dereferencing binary values with the [] operator;
  the behavior now corresponds to the documentation (issue 1566)
* fixed a bug that would result in a crash if a method were
  declared both static and abstract (issue 1590)
* fixed performance issues with the Mapper module (and by
  extension the TableMapper module) for mappers with many
  identity (i.e. 1:1) and constant mappings (issue 1620)
* fixed a bug in the BulkInsertOperation class in the
  BulkSqlUtil module where inserts would fail or silently
  insert invalid data in the second or later blocks when
  constant hashes were used (issue 1625)
* Mime module:
    -added support for URL form-encoded messages (issue 1436)
* RestClient module:
    -added support for URL form-encoded messages (issue 1436)
    -added support for the "rawxml" message body encoding
     (issue 1437)
* fixed handling of invalid compressed data in the following
  functions (issue 1432):
    -Qore::gunzip_to_binary()
    -Qore::gunzip_to_string()
    -Qore::uncompress_to_binary()
    -Qore::uncompress_to_string()
* fixed @inf@ on Windows (issue 1442):
* fixed Qore::parse_url() with single-character usernames
  (issue 1455)
* corrected the error message with SSL reads when the server
  closes the connection prematurely (issue 1488)
* fixed the Host header in HTTP requests to not include the port
  if the port is the default port for the scheme because it
  causes some servers to reject the request (issue 1489)
2017-06-13 19:23:31 +00:00
nros
ab7df7e495 Updated qore to version 0.8.12.4.
Changelog from release notes:

Bug Fixes in Qore:

* fixed a reference bug in the Queue class introduced in the last release
  (issue 1309)
* fixed a bug where database types could not be correctly aligned if they had
  dependencies (issue 1314); entailed updates in the following modules:
    SqlUtil
    FreetdsSqlUtil
    MysqlSqlUtil
    OracleSqlUtil
    PgsqlSqlUtil
    Schema
* fixed a bug in trunc_str() where an infinite loop could be triggered with
  certain arguments and multi-byte character encodings (issue 1327)
* improved prompt collection performance with larger graphs of objects by
  eliminating unnecessary graph scans made during object method calls
  (issue 1363)
* fixed bugs in date(string) and date(string, string) where invalid input data
  was ignored and invalid dates were returned (issue 1369)
* CsvUtil.qm module:
    fixed a bug in AbstractCsvIterator::identifyTypeImpl() generating an
    error message (issue 1355)
* MailMessage.qm module:
    fixed a bug using the default encoding in Message::attach()
    (issue issue 1352)
* SqlUtil.qm module:
  * fixed the ignored character_semantics column option in schema alignmed
    (issue 1379)
  * implemented the cop_length() column function (issue 1395)
* OracleSqlUtil.qm module:
    OraclePackage attribute body_src is now public to access package bodies
* Qorize.qm module:
    Qorize module: new qorize_val() set of functions; qorize_named()
    introduced; qorize tests
* TableMapper.qm module:
  * fixed runtime option propagation to
    TableMapper::SqlStatementMapperIterator from
    TableMapper::AbstractSqlStatementOutboundMapper::iterator()
    (issue 1418)
  * fixed SqlStatementMapperIterator::getCount() (issue 1417)
  * added the following methods:
        TableMapper::AbstractSqlStatementOutboundMapper::getRowIterator()
        TableMapper::InboundTableMapper::iterator()
        TableMapper::InboundTableMapperIterator::getRuntime()
        TableMapper::InboundTableMapperIterator::replaceRuntime()
        TableMapper::InboundTableMapperIterator::setRuntime()
        TableMapper::SqlStatementMapperIterator::getRuntime()
        TableMapper::SqlStatementMapperIterator::replaceRuntime()
        TableMapper::SqlStatementMapperIterator::setRuntime()
* QUnit.qm module:
    fixed showing the assertion location when there are test modules on
    top of QUnit.qm (issue 1046)
* fixed inconsistency between list splice operator and splice function
  (issue 1380)
* fixed the documentation (and DB modules) where
  SQLStatement::fetchColumns() was inconsistent; now it will return a
  empty hash when no more rows are available to fetch (issue 1241)
* added I/O timeout support to the FtpClient class (issue 1252)
* fixed bugs in Socket::recv() and Socket::recvBinary() with size = 0
  where NOTHING could be returned which is invalid according to the
  methods' declared return types (issue 1260)
* fixed a bug where FtpClient:get() would fail with an exception when
  retrieving an empty file (issue 1255)
* fixed a bug where executing a call reference to a deleted object
  method would cause a crash (issue 1268)
* fixed a bug where Qore would allow methods to be called on already
  deleted objects under certain conditions (issue 1270)
* fixed a bug where calling exit() in a multithreaded program could
  result in a segmentation fault (issue 1215)
* fixed a bug where HttpServer::addListener() could not accept a bind on
  port 0 to mean any random port (issue 1284)
* fixed a race condition in prompt collection that could lead to a crash
  (issue 1084)
* fixed a bug clearing Socket event queues when the Socket goes out of
  scope that could lead to a crash (issue 1292)
* fixed a bug with FtpClient::setWarningQueue() that could cause a crash
  (issue 1293)
* fixed a bug where Qore::FtpClient::pwd() returned invalid directory
  names (issue 1295)
* fixed bugs in handling websocket close status codes in the
  WebSocketUtil, WebSocketClient, and WebSocketHandler modules
  (issue 1216)

* TableMapper module fixes:
  * fixed a bug with the SqlStatementOutboundMapper::iterator() method;
    corrected the iterator object return value which was causing
    AbstractMapperIterator::mapBulk() to fail (issue 979)
  * fixed a bug with SqlStatementOutboundMapper; it would throw an error
    if the required "table" or "sh" options were used and only worked
    with subclasses that declared these options (issue 981)
  * fixed a bug where AbstractSqlStatementOutboundMapper::iterator()
    failed to use options when creating the new Mapper object
    (issue 1088)
* fixed a bug where optional arguments were not handled correctly in
  some rare cases (issue 974)
* fixed a bug causing a crash when parse_base64_string_to_string() was
  called with an empty string (issue 996)
* fixed a bug resolving base class method calls during parse
  initialization (issue 1075)
* fixed thread memory handling bug with some operator expressions and
  the background operator (issue 1096)
* fixed a race condition in the prompt collection of closure-bound local
  variables in the garbage collector (issue 1103)
* fixed a bug where HTTPClient class method variants such as
  HTTPClient::get() without a callback would fail to return the message
  body when the server sent a reply with chunked transfer encoding
  (issue 1117)
* fixed a bug in CsvUtil where backward compatibility was broken for
  single-row-type format (issue 1124)
* fixed bugs where declared public functions were missing from the
  library ABI (issue 1126)
* fixed bugs where Qore::format_number() and <float>::format() gave
  incorrect results when rounding to the significant decimals given in
  the format string (issue 1149)
* fixed a bug referencing self in base class constructor arguments
  (issue 1169)
* fixed a bug where the incorrect class destructor was called in the
  openldap module (issue 1174)
* fixed a bug where declaring a copy() method as synchronized would
  result in a crash when the method was called (issue 1188)
* fixed bugs in <string>::getEncoded() and <string>::getDecoded()
  regarding CE_XML and CE_NONASCII (issue 1193)
* fixed bugs where Qore::call_object_method() and
  Qore::call_object_method_args() allowed private methods to be called
  from outside the class (issue 1194)
* fixed a bug where "Deprecated" Functions methods were being internally
  registered as RUNTIME_NOOP (issue 1197)
* fixed bugs where the Datasource class would open a connection to the
  server in the constructor before options were set and where a server
  connection was required to call Datasource::getOption() or
  Datasource::setOption() (issue 1201)
* fixed memory errors in the Queue class where spurious exceptions could
  be raised (issue 1202)
* fixed a memory leak with static class member initializers (issue 1206)
2016-12-09 19:00:18 +00:00
nros
f8053075bb email style fix 2016-08-07 10:12:58 +00:00
wiz
c1dc7f6505 Needs bash to build. 2016-07-25 21:56:04 +00:00
jperkin
8b1d2a2b34 Needs C99 (sets _XOPEN_SOURCE=600). 2016-07-22 10:34:45 +00:00
nros
9314f3ea1e Update Qore to version 0.8.12.
Qore 0.8.12 is a major new release with many new features and hundreds of bug
fixes as well as packaging fixes. Highlights include:

* The most significant innovation in this release comes in the form of support
  for Prompt Collection

* Support for Bulk DML (large volume SQL operations in one server round-trip)
  in the Mapper, TableMapper, SqlUtil and the new BulkSqlUtil modules

* Standardized function naming convention, many significant design and
  implementation fixes and improvements

* Numerous new functions, methods, constants, operators, and user modules

* Hundreds of bug fixes
2016-07-20 11:58:40 +00:00
nros
403f364da8 Update qore to build with open/libressl versions that miss evp_SHA.
Bump PKGREVISION.
2016-03-09 21:32:41 +00:00
jperkin
17661ff9a5 Bump PKGREVISION for security/openssl ABI bump. 2016-03-05 11:27:40 +00:00
jperkin
db1332a441 Use OPSYSVARS. 2016-02-25 14:42:55 +00:00
joerg
8e50ffaa74 LLVM's correlated value propagation pass is known to require a lot of
memory and CPU time for certain input. Provide a variable
(CLANG_NO_VALUE_PROPAGATION_PASS) for selectively disabling it in those
places known to trigger it.
2015-03-02 19:59:06 +00:00
wiz
b19ccf34ed Fix build on SmartOS. From Nicolas Rosenvik in private mail. 2015-01-16 10:23:24 +00:00
wiz
32776f45dd Import qore-0.8.11nb2 as lang/qore, packaged for wip by nros.
Qore is a modular, multi-threaded, SQL-integrated dynamically typed
scripting language with optional hard typing and procedural and
object-oriented features, powerful and easy-to-use data types,
structures, and operators, a clean and easy-to-lean/read syntax.
2014-12-30 15:39:51 +00:00