8f112d4eac
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) |
||
---|---|---|
.. | ||
patches | ||
application.mk | ||
buildlink3.mk | ||
DESCR | ||
distinfo | ||
Makefile | ||
module.mk | ||
options.mk | ||
PLIST |