Diff for /parser3/ChangeLog between versions 1.220 and 1.245

version 1.220, 2025/07/07 02:05:13 version 1.245, 2026/10/12 02:05:39
Line 1 Line 1
   2026-10-11  moko
   
           * tests/: 467.html, results/467.processed: ^sse[] demo for
             ^response:send[] added (related to feature #1306)
   
           * tests/httpd/: run_tests.cmd, run_tests.ps1:
             run_tests.cmd/run_tests.ps1 added to test httpd under Windows
   
           * src/main/: pa_common.C, pa_dir.C, pa_file.C: pa_utf16_encode no
             longer throws exception on bad UTF-8 to avoid undesired file
             functions exceptions under Windows (errno is set instead)
   
           * tests/httpd/: ok.log, run_tests.sh, site/config.p,
             site/run_server.sh: httpd run_tests.sh now runs/stops parser
             webserver, default auto.p used
   
           * etc/auto.p.in: $CHARSETS fully commented to allow redefinition in
             tests
   
           * src/main/pa_http.C: socket timeout used not only under windows,
             but also in linux threaded mode, where alarm is not available
   
   2026-10-10  moko
   
           * tests/redis/: config.p, ok.log: minor code cleanup in tests
   
           * tests/: 464.html, 465.html, 466.html, results/464.processed,
             results/465.processed, results/466.processed: tests for
             ^response:send[part] added (related to feature #1306)
   
           * src/: classes/response.C, include/pa_request.h,
             main/pa_request.C: ^response:send[part] added (implements feature
             #1306)
   
           * src/: include/pa_request.h, main/pa_request.C,
             targets/apache/mod_parser3_core.C, targets/cgi/parser3.C,
             targets/isapi/parser3isapi.C: header_only param optimized out
   
           * src/classes/amqp.C: more correct amqp exception handling
   
           * src/: classes/amqp.C, lib/memcached/pa_memcached.C,
             lib/memcached/pa_memcached.h, types/pa_vmemcached.C: minor memory
             licks fixed, memcached get uses mget to avoid memory leak
   
           * src/targets/cgi/parser3.C: pooled fix for memcached
   
           * src/: classes/amqp.C, classes/memcached.C, classes/redis.C,
             types/pa_vamqp.h, types/pa_vmemcached.h, types/pa_vredis.h: amqp,
             redis, memcached are now Pooled - to close connection if no
             release was called
   
   2026-10-09  moko
   
           * tests/: 463.html, results/463.processed: tests for a constructor
             called as a method of a created object
   
           * src/: classes/hashfile.C, types/pa_vhashfile.C,
             types/pa_vhashfile.h, types/pa_vimage.h, types/pa_vmemcached.C,
             types/pa_vregex.C: more checks for a constructor called as a
             method of a created object
   
           * operators.ru.txt, operators.txt: amqp and redis documented
             (related to feature #1288 and #1304)
   
           * src/: classes/amqp.C, types/pa_vamqp.h: warning war:
             librabbitmq>0.12 by default, PA_AMQP_COMPAT added for older
             versions (related to feature #1288)
   
           * src/: classes/classes.vcproj, include/pa_config_fixed.h,
             lib/pcre/pcre_internal.vcproj, main/main.vcproj,
             main/pa_globals.C, targets/apache/ApacheModuleParser3.vcproj,
             targets/apache/ApacheModuleParser3Core.vcproj,
             targets/cgi/parser3.vcproj, targets/isapi/parser3isapi.vcproj,
             types/types.vcproj: msvc: hiredis added, pcre2 added under
             windows (related to feature #1304)
   
           * buildall: pcre jit is not used anyway
   
           * tests/redis/: 001.html, 002.html, 003.html, 004.html, 005.html,
             config.p, ok.log, run_tests.sh: tests for redis integration added
             (related to feature #1304)
   
           * src/: classes/redis.C, types/pa_vredis.h: redis SSL support
             added, similar to AMQP (related to feature #1304)
   
   2026-10-08  moko
   
           * configure.ac: WITH_AMQP_SSL check tuned
   
           * src/classes/amqp.C, src/include/pa_config_auto.h.in,
             src/include/pa_config_fixed.h, src/include/pa_version.h,
             configure.ac: +WITH_REDIS_SSL, WITHOUT_AMQP_SSL -> WITH_AMQP_SSL
   
           * buildall: use gmake under FreeBSD
   
           * configure.ac: configure: Checks for libraries moved before
             features as redis require -lm on FreeBSD
   
   2026-10-07  moko
   
           * tests/460.html: sort added
   
           * tests/results/425.processed: PCRE2 10.44 -> PCRE2 10.49
   
           * src/: classes/file.C, include/pa_version.h,
             targets/cgi/parser3.C, targets/isapi/parser3isapi.C,
             types/pa_venv.C: PARSER_VERSION_WITH_FEATURES added and used
             (implements feature #1305)
   
           * buildall: --with-amqp, --with-redis added, --with-pic now by
             default, gc: libatomic_ops-7.6.2 -> libatomic_ops-7.10.0,
             gc-8.0.4 -> gc-8.2.12, pcre2-10.44 -> pcre2-10.49 gc, pcre,
             rabbitmq-c, hiredis - now all in lib folder (related to feature
             #1268)
   
           * src/classes/redis.C: redis file commands prefix changed to f-
             (related to feature #1304)
   
           * configure.ac: hiredis is build without libtool (related to
             feature #1304)
   
           * configure.ac: amqp_ssl_socket.h check added to defune
             WITHOUT_AMQP_SSL (related to feature #1288)
   
           * src/classes/redis.C: file- prefix implemented to get file result
             from any redis command (related to feature #1304)
   
           * src/classes/: amqp.C, file.C, redis.C: more headers reoder and
             cleanup
   
           * src/classes/redis.C: headers cleanup and reorder (related to
             feature #1304)
   
           * configure: autoreconf after redis was added (related to feature
             #1304)
   
           * tests/results/: 323.processed, 421.processed: tests results
             updated after redis class was added (related to feature #1304)
   
           * buildall, configure.ac: --with-redis option added to enable redis
             support using hiredis (related to feature #1304)
   
           * src/: classes/Makefile.am, classes/classes.C,
             classes/classes.vcproj, classes/redis.C,
             include/pa_config_auto.h.in, targets/apache/Makefile.am,
             targets/cgi/Makefile.am, types/Makefile.am, types/pa_vredis.h:
             class with redis support added (implements feature #1304)
   
   2026-10-06  moko
   
           * src/types/pa_vtable.C: compile fix with FEATURE_GET_ELEMENT4CALL
             undefined
   
           * tests/httpd/code-cache/: ok.log, run_tests.sh, site/cached.p,
             site/config.p, site/extend.p, site/late.p, site/tests.p: tests
             for code caching in httpd mode (related to feature #1302)
   
           * tests/: 182.html, results/182.processed: test for
             ^reflection:used[] added (related to feature #1303)
   
           * tests/results/415.processed: actualized after Bison upgrade
   
   2026-10-05  moko
   
           * src/classes/reflection.C: ^reflection:used[] added, list of
             @USE-d files (implements feature #1303)
   
           * src/: include/Makefile.am, include/pa_code_cache.h,
             include/pa_request.h, main/Makefile.am, main/compile.C,
             main/compile.y, main/compile_tools.h, main/main.vcproj,
             main/pa_code_cache.C, main/pa_request.C, targets/cgi/parser3.C,
             types/pa_vstateless_class.C: code caching implemented for httpd
             mode: it records and then replays the compilation using the
             cached methods (implements feature #1302), pa_code_cache.h/.C
             added
   
           * src/main/compile.tab.C: updated with Bison 3.8.2 from Debian 13
   
           * src/main/compile.y: define parse.error verbose used for newer
             Bison
   
   2026-10-03  moko
   
           * tests/: 436.html, 462.html, results/436.processed,
             results/462.processed: ", actual filename" tested (related to
             feature #1299)
   
           * src/: classes/file.C, include/pa_file.h, main/pa_exec.C,
             main/pa_file.C: avoid the duplicated <name> ", actual filename
             <name>" when untainting did not change the original <name>
             (related to feature #1299)
   
           * tests/results/293.processed: test result updated after js
             tainting tuning (related to feature #1301)
   
           * tests/: 462.html, results/462.processed: test for tuned json
             tainting added (related to feature #1301)
   
           * src/main/untaint.C: json tainting tuned (implements feature
             #1301)
   
   2026-10-02  moko
   
           * tests/: 461.html, results/461.processed: test for ^file:list[
             $.exception(true) ] feature added (related to feature #1084)
   
           * src/: classes/file.C, include/pa_dir.h, main/pa_dir.C:
             ^file:list[no-such-directory] throws exception if
             $.exception(true) is passed (implements feature #1084)
   
           * src/: include/pa_os.h, main/pa_os.C: pa_set_errno added which
             sets errno as CRT functions for unix compatibility (related to
             feature #1084)
   
           * src/: classes/file.C, include/pa_file.h, main/pa_file.C,
             main/pa_request.C: path_cmp added with strncasecmp under Windows
             (related to feature #1300)
   
   2026-10-01  moko
   
           * src/classes/file.C, tests/460.html, tests/results/460.processed:
             ^file:diskpath[] added, returns full disk for web or relative
             path; file:// and C:\ resolved as well, tests updated
             (implemented feature #58)
   
           * tests/: 460.html, results/460.processed: tests for filenames
             tainting and that path scheme should not be tainted (related to
             feature #1299)
   
           * src/: include/pa_file.h, include/pa_request.h, main/pa_file.C,
             main/pa_request.C: tainting check in file:// added for -f and
             similar as well (related to feature #1299)
   
           * src/: include/pa_common.h, include/pa_file.h,
             include/pa_string.h, main/pa_common.C, main/pa_file.C,
             main/pa_string.C: file:// and others schemes should not be from
             external sources aka tainted (related to feature #1299)
   
           * src/main/untaint.C: '\' is a path separator everywhere, tainting
             updated (related to feature #1300)
   
           * tests/console/: ok.log, run_tests.sh, 001/config.p, 001/lib.p,
             001/page.html, 002/auto.p, 002/page.html: tests for args handling
             in console mode (related to feature #1300)
   
           * src/targets/cgi/parser3.C: '\' as a path separator for config and
             log options (related to feature #1300)
   
   2026-09-30  moko
   
           * tests/: 459.html, results/459.processed: tests added for '\' is a
             path separator on all platforms (related to feature #1300)
   
           * src/main/: pa_file.C, pa_request.C: file://server/share/path
             support under windows added (related to feature #1299)
   
           * src/include/: pa_file.h, pa_request.h, pa_request_info.h:
             '/'-normalization documented (related to feature #1300)
   
           * src/: classes/file.C, include/pa_common.h,
             include/pa_request_info.h, main/pa_common.C, main/pa_file.C,
             main/pa_request.C, targets/apache/mod_parser3_core.C,
             targets/cgi/parser3.C, targets/isapi/parser3isapi.C,
             types/pa_vrequest.C: '\' was a path separator on Linux for file
             path functions only, now for file operations as well; file names
             are '/' separated internally, document root is also kept without
             the trailing '/' (implements feature #1300)
   
           * src/include/pa_string.h: strrchr added
   
   2026-09-29  moko
   
           * tests/: 459.html, results/459.processed: tests for file functions
             prefix checks added; file:// prefix tests (related to feature
             #1299)
   
           * src/: classes/file.C, classes/table.C, classes/xdoc.C,
             include/pa_file.h, include/pa_request.h, main/execute.C,
             main/pa_file.C, main/pa_request.C, targets/cgi/parser3.C: all
             file functions now check prefix, http:// and parser:// is
             accepted only where allowed; file:// prefix added to specify OS
             disk path (implements feature #1299)
   
   2026-09-28  moko
   
           * src/lib/ltdl/: configure.ac, ltdl.vcproj: ltdl: assertions now
             disabled in a release build, NDEBUG added to MSVC release build
   
           * src/main/: pa_request.C, pa_xml_io.C: http:// and file:// must be
             tested as prefixes, last rsplit(hpath, '/') documented as OK.
   
           * src/main/: pa_file.C, pa_request.C: regression: / should be
             checked first (related to feature #941)
   
           * src/main/pa_file.C: whitespace
   
           * src/main/pa_request.C, tests/458.html,
             tests/results/458.processed: comments and test for MSVC win64
             exception handling added
   
           * src/targets/cgi/parser3.vcproj: StackReserveSize changed to 40Mb
             for MSVC, to allow full 3 levels of win64 Exception Handling
   
           * tests/450-curl.html: windows support
   
           * src/: main/pa_request.C, targets/cgi/parser3.vcproj:
             StackReserveSize changed to 32Mb for MSVC, stack usage
             calculations documented (inluding ~10Kb for win64 Exception
             Handling)
   
   2026-09-27  moko
   
           * src/targets/: apache/mod_parser3_core.C, cgi/parser3.C,
             isapi/parser3isapi.C: fixed ExceptionAddress output for Windows
             x64
   
           * src/lib/ltdl/ltdl.c: restored local libltdl patch "fixes for
             Win32 and broken FreeBSD (issue #45)" which was list during ltdl
             update
   
           * src/lib/ltdl/: lt__argz.h, ltdl.vcproj: Windows build fix
   
           * src/: classes/image.C, main/pa_file.C, main/pa_request.C: minor:
             %.15g + double replaced with %s + pa_(u)itoa.
   
           * src/main/pa_dir.C: file related functions moved to pa_file
             (related to feature #941)
   
           * src/main/pa_dir.C: file related functions moved to pa_file
             (related to feature #941)
   
           * src/: include/Makefile.am, main/Makefile.am, include/pa_common.h,
             include/pa_dir.h, include/pa_exec.h, include/pa_request.h,
             main/main.vcproj, main/pa_charset.C, main/pa_common.C,
             main/pa_dir.C, main/pa_http.C, main/pa_request.C,
             targets/cgi/parser3.C, types/pa_vhashfile.C, include/pa_file.h,
             main/pa_file.C: file related functions moved to pa_file (related
             to feature #941)
   
           * src/lib/ltdl/m4/argz.m4: no longer used
   
           * aclocal.m4, compile, config.guess, config.sub, configure,
             depcomp, install-sh, ltmain.sh, missing,
             src/include/pa_config_auto.h.in, src/lib/ltdl/COPYING.LIB,
             src/lib/ltdl/Makefile.am, src/lib/ltdl/README,
             src/lib/ltdl/aclocal.m4, src/lib/ltdl/argz.c,
             src/lib/ltdl/argz_.h, src/lib/ltdl/config-h.in,
             src/lib/ltdl/configure, src/lib/ltdl/configure.ac,
             src/lib/ltdl/lt__alloc.c, src/lib/ltdl/lt__argz.c,
             src/lib/ltdl/lt__dirent.c, src/lib/ltdl/lt__strl.c,
             src/lib/ltdl/lt_dlloader.c, src/lib/ltdl/lt_error.c,
             src/lib/ltdl/ltdl.c, src/lib/ltdl/ltdl.h, src/lib/ltdl/slist.c,
             src/lib/ltdl/libltdl/lt__alloc.h,
             src/lib/ltdl/libltdl/lt__argz_.h,
             src/lib/ltdl/libltdl/lt__dirent.h,
             src/lib/ltdl/libltdl/lt__glibc.h,
             src/lib/ltdl/libltdl/lt__private.h,
             src/lib/ltdl/libltdl/lt__strl.h,
             src/lib/ltdl/libltdl/lt_dlloader.h,
             src/lib/ltdl/libltdl/lt_error.h,
             src/lib/ltdl/libltdl/lt_system.h, src/lib/ltdl/libltdl/slist.h,
             src/lib/ltdl/loaders/dld_link.c, src/lib/ltdl/loaders/dlopen.c,
             src/lib/ltdl/loaders/dyld.c, src/lib/ltdl/loaders/load_add_on.c,
             src/lib/ltdl/loaders/loadlibrary.c,
             src/lib/ltdl/loaders/preopen.c, src/lib/ltdl/loaders/shl_load.c,
             src/lib/ltdl/m4/libtool.m4, src/lib/ltdl/m4/ltargz.m4,
             src/lib/ltdl/m4/ltdl.m4, src/lib/ltdl/m4/ltoptions.m4,
             src/lib/ltdl/m4/ltsugar.m4, src/lib/ltdl/m4/ltversion.m4,
             src/lib/ltdl/m4/lt~obsolete.m4: autotools regenerated with
             autoconf 2.72 and automake 1.17, bundled libltdl updated to the
             one from libtool 2.5.4 (autoreconf -fi under Debian 13)
   
           * tests/results/457.processed: test results updated after
             recursion_limit_try_restore added (related to feature #1298)
   
           * src/main/pa_request.C: const uint changed to more correct int
   
           * src/: main/execute.C, types/pa_vmethod_frame.h:
             SINGLE_METHOD_FRAME implemented to reduce execute() stack frame.
             Without it, compiler reserves stack frame for each ot 8 parser
             frame variants (related to feature #1293)
   
   2026-09-26  moko
   
           * tests/: 457.html, results/457.processed: test and it's results
             updated after recursion_limit_try_restore added (related to
             feature #1298)
   
           * src/: classes/op.C, include/pa_request.h, types/pa_vxdoc.C:
             recursion_limit_try_restore added to even more improve endless
             recursion handling (related to feature #1298)
   
           * tests/: 456.html, 457.html, results/456.processed,
             results/457.processed: tests for EXECUTE_RECURSION_RESERVE added
             (related to feature #1298)
   
           * src/: classes/op.C, include/pa_exception.h, include/pa_request.h,
             main/pa_request.C: to improve endless recursion handling
             EXECUTE_RECURSION_RESERVE was added and used (implements feature
             #1298)
   
   2026-09-25  moko
   
           * tests/: 455.html, results/455.processed: test for
             ^reflection:stack[$exception] added (related to feature #1145)
   
           * src/: classes/op.C, classes/reflection.C, include/pa_request.h,
             main/pa_request.C: ^reflection:stack[$exception] now supported
             within catch code (implements feature #1145)
   
           * src/main/pa_common.C: writing big files using chunks to bypass
             Windows 2Gb limit (fixes bug #1297)
   
           * tests/: 453.html, 454.html, results/453.processed,
             results/454.processed: tests for bug #1082 added: preserving the
             original stack trace after handling a nested exception in catch;
             reporting the correct stack trace for a new exception thrown from
             finally.
   
           * tests/run_parser.sh: Moscow timezone is set by default (not
             required to be set on test server)
   
           * src/: classes/op.C, include/pa_request.h, main/pa_request.C: work
             with exception_trace redesigned, Request_context_save no longer
             touches exception_trace (fixes bug #1082)
   
   2026-09-24  moko
   
           * tests/: 452.html, results/452.processed: checks for exception is
             still hash compatible added (related to feature #1145)
   
           * src/: classes/op.C, include/pa_request.h, main/pa_request.C:
             Exception_details is replaced with efficient VException, hash is
             created only on demand (related to feature #1145)
   
           * src/: include/pa_symbols.h, main/pa_symbols.C: exceptions symbols
             added (related to feature #1145)
   
           * src/types/pa_vhash.h: fhash-> hash() - a bit slower, but
             simplifies inherihance (related to feature #1145)
   
   2026-09-20  moko
   
           * src/include/pa_config_fixed.h: Windows: librabbitmq TLS support
             how-to added (related to feature #1288)
   
           * src/: classes/amqp.C, classes/classes.vcproj, main/pa_globals.C,
             types/types.vcproj: precompiled rabbitmq added to win32
   
           * src/: classes/amqp.C, types/pa_vamqp.h: warnings war (related to
             feature #1288)
   
           * src/: classes/amqp.C, include/pa_config_fixed.h: WITHOUT_AMQP_SSL
             feature added to avoid dependency on OpenSSL DLLs when TLS is not
             required (related to feature #1288)
   
           * src/lib/ltdl/ltdl.vcproj: vs2026 warning war
   
           * src/lib/sdbm/sdbm.vcproj: vs 2026 warning war
   
           * src/: classes/xnode.C, lib/json/pa_json.C: vs 2026 warning war
   
           * src/include/pa_config_includes.h: vs warning war
   
           * src/main/compile.tab.C: vs2026 compilation fixes
   
           * src/: classes/amqp.C, classes/curl.C, classes/inet.C,
             include/pa_config_includes.h, main/compile.tab.C: vs2026
             compilation fixes
   
           * src/main/compile.y: vs2026 build fixes
   
   2026-09-18  moko
   
           * src/main/pa_common.C: strrpbrk used once more
   
           * src/main/pa_dir.C: new code moved to the end
   
           * src/: include/pa_common.h, include/pa_dir.h, main/pa_common.C,
             main/pa_dir.C, main/pa_exec.C, main/pa_request.C,
             targets/cgi/parser3.C, targets/isapi/parser3isapi.C: strrpbrk,
             rsplit for delims, is_os_absolute_path added and used (related to
             feature #941)
   
           * src/: classes/amqp.C, include/pa_config_fixed.h: Add AMQP support
             for Windows builds (related to feature #1288)
   
   2026-09-16  moko
   
           * src/classes/amqp.C: Bugfix: leftover unacked messages got stuck
             after a listen-mode consume[] (related to feature #1288)
             ----------------------------------------------------------------
   
   2026-09-15  moko
   
           * src/: classes/amqp.C, classes/math.C, include/pa_int.h,
             main/pa_int.C: Temp_amqp_consumer added for exceptions handling,
             ulp_distance used and moved to pa_int (related to feature #1288)
   
           * src/classes/amqp.C: headers/arguments now processed in both
             directions, no_ack -> ack as default changed (related to feature
             #1288)
   
           * src/: classes/amqp.C, types/pa_vamqp.h: error handling and
             $.auto_reconnect(N) option implemented (related to feature #1288)
   
           * src/classes/amqp.C: allow both [] and () delivery tag (related to
             feature #1288)
   
           * src/classes/amqp.C: _consume - pull and listen more more clearly
             separated; both have timeout(N) count(N) options (related to
             feature #1288)
   
   2026-09-07  moko
   
           * tests/: 346-curl.html, 451-curl.html, results/346-curl.processed,
             results/451-curl.processed: test for curl and file::load accept a
             hash or array as a form field value (related to feature #1296)
   
           * src/: classes/curl.C, main/pa_http.C: curl and file::load accept
             a hash or array as a form field value (implements multiple files
             per field support, feature #1296)
   
   2026-07-19  moko
   
           * src/classes/curl.C: win32 compatibility (related to feature
             #1295)
   
           * tests/: 450-curl.html, results/450-curl.processed:
             $.resolve[^hash::create[]] test added (related to feature #1295)
   
           * tests/results/379-curl.processed: curl test results actualized
             after ERRORBUFFER was used
   
           * src/classes/curl.C: check for empty hash added (related to
             feature #1295)
   
           * src/lib/curl/curl.h: curl_slist + CURLOPT_RESOLVE added (related
             to feature #1295)
   
           * tests/: 450-curl.html, results/450-curl.processed: tests for curl
             $.resolve option added (related to feature #1295)
   
           * src/classes/curl.C: curl $.resolve[curl|parser] parser option
             added to avoid getaddrinfo() curl thread creation; $.resolve[
             $.[domain.name][ip] or $.[domain.name:port][ip] ] curl option
             also added (implements feature #1295)
   
           * src/classes/inet.C: pa_name2ip extracted to be used in curl.C
             (related to feature #1295)
   
   2026-07-14  moko
   
           * src/: classes/curl.C, lib/curl/curl.h: CURLOPT_ERRORBUFFER used
             to get more detailed error description (related to feature #1295)
   
   2026-07-11  moko
   
           * tests/: 030.html, results/030.processed: cookie $.expires(0) test
             added (code coverage)
   
           * operators.txt: translation fixed
   
   2026-05-28  moko
   
           * src/include/pa_config_includes.h: warnings war
   
           * src/classes/classes.h: warnings war
   
           * src/include/pa_inline_hash.h: fix for old gcc
   
   2026-05-24  moko
   
           * src/main/pa_request.C, tests/httpd/041.txt, tests/httpd/042.txt,
             tests/httpd/043.txt, tests/httpd/ok.log: more range check tests
             added
   
   2026-05-06  moko
   
           * operators.ru.txt, operators.txt: ^int/double.++[] and
             ^int/double.--[] documented (related to feature #1294)
   
           * tests/: 063.html, results/063.processed: test for
             ^int/double.++[]  and ^int/double.--[] added (related to feature
             #1294)
   
           * src/classes/: double.C, int.C: ^int/double.++[]  and
             ^int/double.--[] added (adopted Sumo patch, implements feature
             #1294)
   
           * src/main/main.vcproj: pa_inline_hash.h added (related to feature
             #1293)
   
   2026-04-30  moko
   
           * src/include/pa_inline_hash.h: PA_PROBE_LIMIT added (related to
             feature #1293)
   
           * src/include/pa_inline_hash.h: First lookup optimization added
             (related to feature #1293)
   
           * src/include/pa_inline_hash.h: upgrade to linear-probing hash
             (related to feature #1293)
   
   2026-04-25  moko
   
           * INSTALL, NEWS, README, buildall, src/classes/amqp.C,
             src/classes/array.C, src/classes/bool.C, src/classes/classes.C,
             src/classes/classes.h, src/classes/curl.C, src/classes/date.C,
             src/classes/double.C, src/classes/file.C, src/classes/form.C,
             src/classes/hash.C, src/classes/hashfile.C, src/classes/image.C,
             src/classes/inet.C, src/classes/int.C, src/classes/json.C,
             src/classes/mail.C, src/classes/math.C, src/classes/memcached.C,
             src/classes/memory.C, src/classes/op.C, src/classes/reflection.C,
             src/classes/regex.C, src/classes/response.C,
             src/classes/string.C, src/classes/table.C, src/classes/void.C,
             src/classes/xdoc.C, src/classes/xnode.C, src/classes/xnode.h,
             src/include/pa_array.h, src/include/pa_base64.h,
             src/include/pa_cache_managers.h, src/include/pa_charset.h,
             src/include/pa_charsets.h, src/include/pa_common.h,
             src/include/pa_config_fixed.h, src/include/pa_config_includes.h,
             src/include/pa_dictionary.h, src/include/pa_dir.h,
             src/include/pa_exception.h, src/include/pa_exec.h,
             src/include/pa_globals.h, src/include/pa_hash.h,
             src/include/pa_http.h, src/include/pa_inline_hash.h,
             src/include/pa_int.h, src/include/pa_memory.h,
             src/include/pa_opcode.h, src/include/pa_operation.h,
             src/include/pa_os.h, src/include/pa_pool.h,
             src/include/pa_random.h, src/include/pa_request.h,
             src/include/pa_request_charsets.h, src/include/pa_request_info.h,
             src/include/pa_sapi.h, src/include/pa_socks.h,
             src/include/pa_sql_connection.h,
             src/include/pa_sql_driver_manager.h, src/include/pa_stack.h,
             src/include/pa_string.h, src/include/pa_stylesheet_connection.h,
             src/include/pa_stylesheet_manager.h, src/include/pa_symbols.h,
             src/include/pa_table.h, src/include/pa_threads.h,
             src/include/pa_types.h, src/include/pa_uue.h,
             src/include/pa_xml_exception.h, src/include/pa_xml_io.h,
             src/lib/gd/gif.C, src/lib/gd/gif.h, src/lib/gd/gifio.C,
             src/lib/md5/pa_md5.h, src/lib/md5/pa_md5c.c,
             src/lib/memcached/pa_memcached.C,
             src/lib/memcached/pa_memcached.h, src/lib/punycode/pa_idna.c,
             src/lib/punycode/pa_idna.h, src/lib/sdbm/pa_file_io.C,
             src/lib/sdbm/pa_strings.C, src/lib/smtp/comms.C,
             src/lib/smtp/smtp.C, src/lib/smtp/smtp.h, src/main/compile.C,
             src/main/compile.tab.C, src/main/compile.y,
             src/main/compile_tools.C, src/main/compile_tools.h,
             src/main/execute.C, src/main/pa_base64.C,
             src/main/pa_cache_managers.C, src/main/pa_charset.C,
             src/main/pa_charsets.C, src/main/pa_common.C,
             src/main/pa_dictionary.C, src/main/pa_dir.C,
             src/main/pa_exception.C, src/main/pa_exec.C,
             src/main/pa_globals.C, src/main/pa_http.C, src/main/pa_int.C,
             src/main/pa_memory.C, src/main/pa_os.C, src/main/pa_pool.C,
             src/main/pa_random.C, src/main/pa_request.C, src/main/pa_socks.C,
             src/main/pa_sql_driver_manager.C, src/main/pa_string.C,
             src/main/pa_stylesheet_connection.C,
             src/main/pa_stylesheet_manager.C, src/main/pa_symbols.C,
             src/main/pa_table.C, src/main/pa_threads.C, src/main/pa_uue.C,
             src/main/pa_xml_exception.C, src/main/pa_xml_io.C,
             src/main/untaint.C, src/main/helpers/simple_folding.pl,
             src/sql/pa_sql_driver.h, src/targets/apache/mod_parser3.c,
             src/targets/apache/mod_parser3_core.C,
             src/targets/apache/pa_httpd.h, src/targets/cgi/parser3.C,
             src/targets/isapi/parser3isapi.C, src/types/pa_junction.h,
             src/types/pa_method.h, src/types/pa_property.h,
             src/types/pa_value.C, src/types/pa_value.h, src/types/pa_vamqp.h,
             src/types/pa_varray.C, src/types/pa_varray.h,
             src/types/pa_vbool.h, src/types/pa_vcaller_wrapper.h,
             src/types/pa_vclass.C, src/types/pa_vclass.h,
             src/types/pa_vcode_frame.h, src/types/pa_vconsole.h,
             src/types/pa_vcookie.C, src/types/pa_vcookie.h,
             src/types/pa_vdate.C, src/types/pa_vdate.h,
             src/types/pa_vdouble.h, src/types/pa_venv.C, src/types/pa_venv.h,
             src/types/pa_vfile.C, src/types/pa_vfile.h, src/types/pa_vform.C,
             src/types/pa_vform.h, src/types/pa_vhash.C, src/types/pa_vhash.h,
             src/types/pa_vhashfile.C, src/types/pa_vhashfile.h,
             src/types/pa_vimage.C, src/types/pa_vimage.h,
             src/types/pa_vint.h, src/types/pa_vjunction.C,
             src/types/pa_vjunction.h, src/types/pa_vmail.C,
             src/types/pa_vmail.h, src/types/pa_vmath.C, src/types/pa_vmath.h,
             src/types/pa_vmemcached.C, src/types/pa_vmemcached.h,
             src/types/pa_vmemory.h, src/types/pa_vmethod_frame.C,
             src/types/pa_vmethod_frame.h, src/types/pa_vobject.C,
             src/types/pa_vobject.h, src/types/pa_vregex.C,
             src/types/pa_vregex.h, src/types/pa_vrequest.C,
             src/types/pa_vrequest.h, src/types/pa_vresponse.C,
             src/types/pa_vresponse.h, src/types/pa_vstateless_class.C,
             src/types/pa_vstateless_class.h,
             src/types/pa_vstateless_object.h, src/types/pa_vstatus.C,
             src/types/pa_vstatus.h, src/types/pa_vstring.C,
             src/types/pa_vstring.h, src/types/pa_vtable.C,
             src/types/pa_vtable.h, src/types/pa_vvoid.C,
             src/types/pa_vvoid.h, src/types/pa_vxdoc.C, src/types/pa_vxdoc.h,
             src/types/pa_vxnode.C, src/types/pa_vxnode.h,
             src/types/pa_wcontext.C, src/types/pa_wcontext.h,
             src/types/pa_wwrapper.h: Copyright year updated, websites links
             changed to https://
   
           * src/include/pa_inline_hash.h: delete added (related to feature
             #1293)
   
   2026-04-24  moko
   
           * src/: classes/reflection.C, main/pa_common.C, types/pa_method.h,
             types/pa_vmethod_frame.h: inline-storage hash used to avoid
             allocations for MethodFrame args and locals (imlpements feature
             #1293) _stack uses for_each to avoid Iterator for
             InlineHashString
   
           * src/include/: Makefile.am, pa_inline_hash.h: inline-storage hash
             added to avoid allocations for MethodFrame args and locals
             (related to feature #1293)
   
           * tests/: 337.html, 434.html, results/320.processed,
             results/434.processed: test for ^A[v1;v2]=^array::create[v1;v2]
             added (related to feature #1282)
   
           * src/classes/op.C: ^A[v1;v2]=^array::create[v1;v2] added
             (implements feature #1282)
   
           * tests/: 447.html, results/447.processed: exceptions tests added
             (related to feature #1286)
   
           * src/classes/reflection.C: native method exception added (related
             to feature #1286)
   
           * src/main/execute.C: removes irrelevant lines from exception stack
             trace when exception occur in array assigment (related to bug
             #1165) + useless #define removed
   
           * src/: include/pa_request.h, main/compile.y: warnings war
   
   2026-04-23  moko
   
           * src/main/: compile.y, compile_tools.C, compile_tools.h:
             maybe_append_simple_diving_code() is not related to
             OPTIMIZE_BYTECODE_GET_ELEMENT__SPECIAL
   
   2026-03-01  moko
   
           * src/: classes/classes.C, classes/classes.h, classes/mail.C,
             main/pa_request.C: configure_user removed, $MAIN:MAIL now
             processed inside ^mail:send[] (implements feature #1290)
   
   2026-02-25  moko
   
           * tests/: 182.html, 182_dir/a7.p, results/182.processed: test for
             array redefinition added
   
           * src/main/pa_request.C: array redefinition fixed
   
           * tests/: 182.html, results/182.processed: test for
             ^reflection:classes[] order (related to feature #1289)
   
           * src/: classes/reflection.C, include/pa_request.h,
             main/pa_request.C: classes now OrderedHashString, implements
             feature #1289
   
   2026-02-02  moko
   
           * tests/: 307.html, results/307.processed: more "junction used
             outside of context" tests added
   
   2026-01-09  moko
   
           * src/classes/amqp.C: auto_delete is better false by default
             (related to feature #1288)
   
           * src/classes/amqp.C: more methods bool args fixes, nowait removed
             (related to feature #1288)
   
           * src/classes/amqp.C: nowait was mixed up with exclusive in consume
   
           * src/classes/amqp.C: amqp_basic_cancel added to consume, purge
             returns purged messages count (related to feature #1288)
   
           * tests/: 449.html, results/449.processed, results/auto.p: test for
             table size limit added (related to feature #1276)
   
           * src/classes/table.C: $MAIN:LIMITS.max_array_size now used to
             limit table size; note: for append and insert operations only
             (implements feature #1276)
   
   2026-01-08  moko
   
           * src/classes/amqp.C: addition to feature #1288: declare_exchange +
             declare_queue = declare; delete_exchange + delete_queue = delete;
             bind_queue -> bind; unbind_queue -> unbind; + purge, + info;
             consume can be called without callback with optional $.count(N),
             returns array of messages;
   
   2026-01-07  moko
   
           * tests/: 448.html, results/448.processed: avoid 500, show
             exception where not supported
   
           * src/include/pa_int.h: warnings war
   
           * tests/: 422.html, results/422.processed: test updated after wide
             int implemented (feature #1273)
   
           * src/main/pa_int.C: warnings war
   
           * src/classes/classes.vcproj: +amqp.C
   
           * src/classes/: int.C, string.C: warnings war
   
           * src/classes/: op.C: warnings war
   
           * src/: classes/op.C, main/pa_int.C: warnings war
   
           * src/types/pa_vdate.h: warnings war
   
           * src/main/pa_int.C: warnings war continues
   
           * src/: include/pa_int.h, main/pa_int.C, types/pa_vint.h: warnings
             war
   
           * src/types/pa_vdate.C: reverted, format_double still required here
   
           * src/: include/pa_int.h, main/pa_int.C, types/pa_vmath.C:
             format_double now supports wint, $math:int_max and $math:int_min
             added, PA_WIDE_INT is finally enabled by default (implements
             feature #1273)
   
           * tests/: 275.html, results/275.processed: preparing tests for int
             extension
   
           * tests/: 424.html, results/424.processed: actualized and prepared
             for wide int
   
   2026-01-06  moko
   
           * src/: classes/double.C, classes/int.C, classes/string.C,
             include/pa_common.h, include/pa_int.h, include/pa_string.h,
             main/execute.C, main/pa_common.C, main/pa_int.C,
             types/pa_value.h, types/pa_vdate.C, types/pa_vdate.h,
             types/pa_vdouble.h, types/pa_vint.h, types/pa_vmethod_frame.h,
             types/pa_vstring.h: feature #1273 core implementation:
             value::as_wint added, implemented for int/double/string, and used
             where applicable; vint now holds pa_wint type; format_double
             moved to pa_int
   
           * src/: include/pa_array.h, include/pa_string.h, main/main.vcproj:
             pa_int includes tuning, vcproj updated (related to feature #1273)
   
           * src/main/pa_int.C: build fix
   
           * src/: include/Makefile.am, main/Makefile.am: pa_int.h/pa_int.C
             added, another preparation for feature #1273
   
           * src/: include/pa_array.h, include/pa_int.h, include/pa_string.h,
             include/pa_types.h, main/pa_int.C, main/pa_string.C,
             types/pa_vint.h: pa_int.h/pa_int.C added and all related code
             moved there, pa_wint and related functions added, another
             preparation for feature #1273
   
   2025-12-17  moko
   
           * src/classes/json.C: optimization: String::Empty used and avoided
             using passed length.
   
   2025-12-16  moko
   
           * src/classes/string.C: sync _int with _double, avoid int usage
             (related to #1273)
   
   2025-12-08  moko
   
           * src/include/pa_memory.h: PA_CHECK_REGULAR_ALLOC_UNAVAILABLE
             define added and used for OS X as well
   
   2025-11-30  moko
   
           * configure, configure.ac, src/include/pa_config_auto.h.in,
             src/include/pa_config_fixed.h: int64_t added in preparation to
             feature #1273
   
   2025-11-22  moko
   
           * src/classes/amqp.C: delivery_tag changed from string to double
             (related to feature #1288)
   
   2025-11-14  moko
   
           * src/types/pa_vstatus.C, tests/448.html,
             tests/results/448.processed: $status:limit-cpu,
             $status:limit-mem, $status:limit-nproc unlimited support added,
             test added (related to feature #1280)
   
           * src/types/: pa_vstatus.C, pa_vstatus.h: r/w $status:limit-cpu,
             $status:limit-mem, $status:limit-nproc added (implements feature
             #1280)
   
   2025-11-12  moko
   
           * tests/results/: 323.processed, 421.processed: tests results
             updated after amqp class added
   
   2025-11-08  moko
   
           * src/classes/amqp.C: tls support added, errors reporting improved
             (related to feature #1288)
   
           * src/classes/amqp.C: tls support added (related to feature #1288)
   
           * src/classes/amqp.C: exceptions text now printed (related to
             feature #1288)
   
           * src/classes/amqp.C: properties hash simplified (related to
             feature #1288)
   
   2025-11-07  moko
   
           * src/classes/amqp.C: consume fixed (related to feature #1288)
   
           * src/classes/classes.C: + amqp class
   
           * buildall, configure, configure.ac, src/classes/Makefile.am,
             src/include/pa_config_auto.h.in, src/targets/apache/Makefile.am,
             src/targets/cgi/Makefile.am, src/types/Makefile.am: build scripts
             updated for librabbitmq support (relates to feature #1288)
   
           * src/: classes/amqp.C, types/pa_vamqp.h: amqp class draft with
             basic RabbitMQ C library (librabbitmq) support (partially
             implements #1288)
   
   2025-10-05  moko
   
           * src/classes/: array.C, file.C, hash.C, image.C, json.C, op.C,
             reflection.C, string.C: Optimization: valid_options optimized
             where HashStringValue::Iterator used
   
           * tests/results/224.processed: test result updated after date
             functions updated (related to #1287)
   
   2025-10-04  moko
   
           * operators.ru.txt, operators.txt: actualized
   
           * operators.ru.txt, operators.txt: actualized after #1285 and #1286
   
           * tests/: 447.html, results/447.processed: tests for
             ^reflection:override[$method] added (related to feature #1286)
   
           * tests/: 446.html, results/446.processed: tests for $n1 eq n2
             added (related to feature #1285)
   
           * src/classes/reflection.C:
             ^reflection:override[$method[;$.to[class] $.name[another_name]]]
             added (implements feature #1286)
   
           * src/main/execute.C: bugfix: when method is attached from another
             class, it's  junction_template is initialized with another class,
             thus get_vjunction should be used (related to feature #1286)
   
           * src/classes/date.C: ^date:sql-string[], ^date:gmt-string[],
             ^date:iso-string[] - static call now formats current date
             (implements feature #1287)
   
   2025-10-01  moko
   
           * buildall: built-in mailreceive path actualized
   
   2025-09-01  moko
   
           * src/classes/math.C: old compilers support in ^math:eq
   
   2025-08-31  moko
   
           * tests/: 446.html, results/446.processed: tests for
             ^math:eq(a;b[;max URL distance]) added (related to feature #1285)
   
           * src/classes/math.C: ^math:eq(a;b[;precision]) added (partly
             implements #1285)
   
   2025-08-30  moko
   
           * operators.ru.txt, operators.txt: actualized
   
           * tests/: 230.html, results/230.processed: test for ^file.save
             $.append(false|true) option added (related to feature #1284)
   
           * src/: classes/file.C, types/pa_vfile.C, types/pa_vfile.h:
             ^file.save $.append(false|true) option added (implements feature
             #1284)
   
   2025-08-16  moko
   
           * etc/auto.p.in: LIMIT max_array_size actualized
   
   2025-08-01  moko
   
           * src/: lib/gc/include/gc.h, main/pa_globals.C, main/pa_memory.C:
             pa_GC_abort_func added and used (implements feature #1283)
   
           * src/include/: pa_array.h, pa_config_includes.h:
             PA_DEBUG_DISABLE_GC mode fixed for sparse array
   
 2025-07-04  moko  2025-07-04  moko
   
         * src/main/pa_common.C: typo fixed (related to bug #1282)          * src/main/pa_common.C: typo fixed (related to bug #1282)

Removed from v.1.220  
changed lines
  Added in v.1.245


E-mail: