Diff for /parser3/ChangeLog between versions 1.154 and 1.207

version 1.154, 2021/01/04 02:05:11 version 1.207, 2024/11/25 02:05:13
Line 1 Line 1
   2024-11-25  moko
   
           * src/main/pa_exec.C: separated cmd_quote and exe_quote (related to
             bug #1239)
   
   2024-11-24  moko
   
           * src/main/pa_exec.C: added cmd.exe specific
   
           * tests/: 441.html, cat-windows.sh, cat.sh, results/441.processed:
             tests for ^file::exec env and args tainting tests (related to bug
             #1239)
   
           * src/main/pa_exec.C: shell_quote added (partial fix for bug #1239)
   
           * src/include/pa_config_includes.h: added recommendations for
             libxslt.a and and libexslt.a compilation under cygwin
   
           * tests/results/102.processed: $form:fields.value is now writable,
             as $form:value (related to feature #1254)
   
           * src/include/pa_config_includes.h: cigwin compilation fixes
   
   2024-11-23  moko
   
           * tests/httpd/site/run_server.sh: to simplify testing
   
           * tests/httpd/: 030.txt, 031.curl, 040.txt, ok.log, run_tests.sh,
             site/form.html: $form:files and $form:elements tests added, tests
             with curl supported (related to feature #1254)
   
           * src/: include/pa_symbols.h, main/pa_symbols.C, types/pa_vform.C,
             types/pa_vform.h: $form:elements implemented, VForm::get_element
             uses faster SYMBOLS_EQ, hashes no longer copied when using
             $form:fields/tables/files/imap and can be edited (implements
             feature #1254)
   
           * src/main/pa_http.C: pa_send added to handle partial writes (fixes
             bug #1261)
   
   2024-11-17  moko
   
           * tests/: 440.html, results/440.processed: tests for
             ^table.array[], offset restoration, iterators robust tests
             (related to bug #1258, features #1259 and #1260)
   
           * tests/: 439.html, results/439.processed: array and hash iterators
             robust tests (related to feature #1260)
   
           * src/: classes/array.C, classes/table.C, include/pa_array.h,
             include/pa_table.h: Array_robust_iterator added and used in cases
             where array can be modified during iteration (implements feature
             #1260)
   
           * src/classes/table.C: ^table.array[], ^table.array[column name],
             ^table.array{code} added (implements feature #1259)
   
   2024-11-16  moko
   
           * src/: classes/table.C, include/pa_table.h, main/pa_table.C: fixed
             table current row restoration after exception and table changes
             (fixes bug #1258)
   
   2024-11-13  moko
   
           * src/classes/table.C: minor optimization
   
           * src/main/pa_string.C: \r added to default ^string.trim chars list
             (https://www.parser.ru/forum/?id=86648)
   
   2024-11-11  moko
   
           * src/classes/classes.C: set_base commented
   
           * src/classes/: classes.C, xdoc.C: cleanup after classes.awk
             deleted
   
           * src/classes/classes.vcproj: no more classes.awk and classes.inc
   
           * src/classes/: Makefile.am, classes.awk: no more classes.awk and
             classes.inc
   
           * src/: classes/classes.C, classes/classes.awk, classes/classes.h,
             main/pa_globals.C: classes.awk is useless, preparing to delete it
   
           * src/classes/classes.h: temp fix
   
   2024-11-10  moko
   
           * src/: classes/date.C, classes/file.C, classes/image.C,
             classes/op.C, main/pa_string.C: minor optimization
   
           * src/: classes/date.C, classes/file.C, classes/image.C,
             classes/op.C, main/pa_string.C: typo fixed
   
           * src/: classes/classes.awk, classes/classes.h, classes/date.C,
             classes/file.C, classes/image.C, classes/op.C,
             main/pa_charsets.C, main/pa_string.C: singletones used to reduce
             memory allocation befor main(). Only 3 allocations in chatsets
             left (implements feature #1257)
   
           * src/targets/: apache/mod_parser3_core.C, isapi/parser3isapi.C:
             minor naming convention fix
   
           * tests/: 437.html, 438.html, httpd/ok.log, httpd/site/029.html,
             results/436.processed, results/437.processed,
             results/438.processed: tests for @unhandled_exception processing
             (related to feature #1256)
   
           * src/: main/pa_request.C, targets/apache/mod_parser3_core.C,
             targets/cgi/pa_sapi_info.h, targets/cgi/parser3.C,
             targets/isapi/parser3isapi.C: Exceptions in @unhandled_exception
             are now processed in request::core for correct logging and
             reporting (feature #1256)
   
           * src/: include/pa_sapi.h, main/pa_request.C,
             targets/apache/mod_parser3_core.C, targets/cgi/parser3.C,
             targets/isapi/parser3isapi.C: unhandled exception now called if
             exception occures during $response:download processing (related
             to bug #1255)
   
           * etc/auto.p.in: better 404 error reporting
   
   2024-11-09  moko
   
           * src/main/pa_memory.C: more detailed usage comment
   
           * src/main/pa_memory.C: usage commented
   
           * src/main/pa_memory.C: minor cleanup
   
           * src/types/: pa_varray.h, pa_vregex.h: warnings war
   
           * tests/: 436.html, httpd/029.txt, httpd/ok.log,
             httpd/site/029.html, results/436.processed: test for exception in
             $response:download[] added
   
           * src/targets/cgi/parser3.C: sync CGI mode behavior with httpd mode
             and avoid exit status 1 on die
   
           * tests/results/: 007.processed, 019.processed, 098.processed,
             103.processed, 233.processed: windows headers matter for binary
             files
   
           * tests/httpd/ok.log: tests results updated as extra headers now
             cleared on error (related to bug #1255)
   
           * src/: include/pa_sapi.h, targets/apache/mod_parser3_core.C,
             targets/cgi/pa_sapi_info.h, targets/cgi/parser3.C,
             targets/isapi/parser3isapi.C: headers buffering to avoid extra
             headers in errors, custom send_error in cgi/httpd mode to avoid
             memory allocations (fixes bug #1255)
   
   2024-11-07  moko
   
           * tests/: 264.html, results/264.processed: tests updated to test
             removal of only trailing empty arguments for backward
             compatibility (related to feature #1252)
   
           * src/classes/file.C: remove trailing empty arguments for backward
             compatibility (related to feature #1252)
   
   2024-11-05  moko
   
           * src/targets/cgi/: pa_sapi_info.h, parser3.C: avoid GPF in very
             low memory case, when static initialization failed even before
             main() start
   
   2024-11-04  moko
   
           * configure, src/include/pa_config_auto.h.in,
             src/include/pa_config_fixed.h: _locking no longer used
   
           * configure.ac: _locking no longer used (related to bug #1231)
   
           * src/main/pa_os.C: lock error fine-tuning (related to bug #1231)
   
           * src/main/pa_os.C: lock errors tuning (related to bug #1231)
   
           * src/lib/sdbm/: pa_file_io.C, pa-include/pa_file_io.h: remove
             unused
   
           * src/: lib/sdbm/pa_file_io.C, main/pa_common.C: errno should not
             be used on locking errors (related to bug #1231)
   
           * src/main/pa_os.C: GetLastError used as errno is not set (related
             to bug #1231)
   
           * src/main/pa_os.C: under windows _locking replaced with LockFileEx
             allowing shared lock to work (fixes bug #1231)
   
           * INSTALL: actualized, minor fixes
   
           * etc/auto.p.in: default LIMITS added
   
           * AUTHORS: links actualized
   
           * src/: classes/array.C, classes/bool.C, classes/classes.C,
             classes/classes.awk, classes/classes.h, classes/curl.C,
             classes/date.C, classes/double.C, classes/file.C, classes/form.C,
             classes/hash.C, classes/hashfile.C, classes/image.C,
             classes/inet.C, classes/int.C, classes/json.C, classes/mail.C,
             classes/math.C, classes/memcached.C, classes/memory.C,
             classes/op.C, classes/reflection.C, classes/regex.C,
             classes/response.C, classes/string.C, classes/table.C,
             classes/void.C, classes/xdoc.C, classes/xnode.C, classes/xnode.h,
             include/pa_array.h, include/pa_base64.h,
             include/pa_cache_managers.h, include/pa_charset.h,
             include/pa_charsets.h, include/pa_common.h,
             include/pa_config_fixed.h, include/pa_config_includes.h,
             include/pa_dictionary.h, include/pa_dir.h,
             include/pa_exception.h, include/pa_exec.h, include/pa_globals.h,
             include/pa_hash.h, include/pa_http.h, include/pa_memory.h,
             include/pa_opcode.h, include/pa_operation.h, include/pa_os.h,
             include/pa_pool.h, include/pa_random.h, include/pa_request.h,
             include/pa_request_charsets.h, include/pa_request_info.h,
             include/pa_sapi.h, include/pa_socks.h,
             include/pa_sql_connection.h, include/pa_sql_driver_manager.h,
             include/pa_stack.h, include/pa_string.h,
             include/pa_stylesheet_connection.h,
             include/pa_stylesheet_manager.h, include/pa_symbols.h,
             include/pa_table.h, include/pa_threads.h, include/pa_types.h,
             include/pa_uue.h, include/pa_xml_exception.h,
             include/pa_xml_io.h, lib/gd/gif.C, lib/gd/gif.h, lib/gd/gifio.C,
             lib/md5/pa_md5.h, lib/md5/pa_md5c.c,
             lib/memcached/pa_memcached.C, lib/memcached/pa_memcached.h,
             lib/punycode/pa_idna.c, lib/punycode/pa_idna.h,
             lib/sdbm/pa_file_io.C, lib/sdbm/pa_strings.C, lib/smtp/comms.C,
             lib/smtp/smtp.C, lib/smtp/smtp.h, main/compile.C,
             main/compile.tab.C, main/compile.y, main/compile_tools.C,
             main/compile_tools.h, main/execute.C, main/pa_base64.C,
             main/pa_cache_managers.C, main/pa_charset.C, main/pa_charsets.C,
             main/pa_common.C, main/pa_dictionary.C, main/pa_dir.C,
             main/pa_exception.C, main/pa_exec.C, main/pa_globals.C,
             main/pa_http.C, main/pa_memory.C, main/pa_os.C, main/pa_pool.C,
             main/pa_random.C, main/pa_request.C, main/pa_socks.C,
             main/pa_sql_driver_manager.C, main/pa_string.C,
             main/pa_stylesheet_connection.C, main/pa_stylesheet_manager.C,
             main/pa_symbols.C, main/pa_table.C, main/pa_threads.C,
             main/pa_uue.C, main/pa_xml_exception.C, main/pa_xml_io.C,
             main/untaint.C, sql/pa_sql_driver.h,
             targets/apache/mod_parser3.c, targets/apache/mod_parser3_core.C,
             targets/apache/pa_httpd.h, targets/cgi/parser3.C,
             targets/isapi/parser3isapi.C, types/pa_junction.h,
             types/pa_method.h, types/pa_property.h, types/pa_value.C,
             types/pa_value.h, types/pa_varray.C, types/pa_varray.h,
             types/pa_vbool.h, types/pa_vcaller_wrapper.h, types/pa_vclass.C,
             types/pa_vclass.h, types/pa_vcode_frame.h, types/pa_vconsole.h,
             types/pa_vcookie.C, types/pa_vcookie.h, types/pa_vdate.C,
             types/pa_vdate.h, types/pa_vdouble.h, types/pa_venv.C,
             types/pa_venv.h, types/pa_vfile.C, types/pa_vfile.h,
             types/pa_vform.C, types/pa_vform.h, types/pa_vhash.C,
             types/pa_vhash.h, types/pa_vhashfile.C, types/pa_vhashfile.h,
             types/pa_vimage.C, types/pa_vimage.h, types/pa_vint.h,
             types/pa_vjunction.C, types/pa_vjunction.h, types/pa_vmail.C,
             types/pa_vmail.h, types/pa_vmath.C, types/pa_vmath.h,
             types/pa_vmemcached.C, types/pa_vmemcached.h, types/pa_vmemory.h,
             types/pa_vmethod_frame.C, types/pa_vmethod_frame.h,
             types/pa_vobject.C, types/pa_vobject.h, types/pa_vregex.C,
             types/pa_vregex.h, types/pa_vrequest.C, types/pa_vrequest.h,
             types/pa_vresponse.C, types/pa_vresponse.h,
             types/pa_vstateless_class.C, types/pa_vstateless_class.h,
             types/pa_vstateless_object.h, types/pa_vstatus.C,
             types/pa_vstatus.h, types/pa_vstring.C, types/pa_vstring.h,
             types/pa_vtable.C, types/pa_vtable.h, types/pa_vvoid.C,
             types/pa_vvoid.h, types/pa_vxdoc.C, types/pa_vxdoc.h,
             types/pa_vxnode.C, types/pa_vxnode.h, types/pa_wcontext.C,
             types/pa_wcontext.h, types/pa_wwrapper.h: Copyright year updated
   
   2024-10-28  moko
   
           * src/classes/array.C: avoid invalidate()
   
           * src/: classes/array.C, types/pa_varray.h: minor optimization for
             fused to survive in ^array::copy[$a] (related to feature #930)
   
           * src/types/pa_varray.h: minor optimization as last element is
             allways defined if present
   
           * tests/: 435.html, results/435.processed: tests for
             ^hash.set[first|last;value], ^hash.set([-+]index)[value] and same
             for array added (related to feature #1253)
   
           * src/classes/array.C: typo fixed
   
           * src/classes/: array.C, hash.C: ^hash.set[first|last;value] +
             ^hash.set([-+]index)[value], and same for array added (implements
             feature #1253)
   
           * tests/results/: 246.processed, 298.processed, 342.processed,
             389.processed, 397.processed, 430.processed, 432.processed: tests
             results update after minor exceptions texts fixes
   
   2024-10-27  moko
   
           * src/: classes/array.C, classes/hash.C, classes/math.C,
             classes/reflection.C, classes/string.C, classes/table.C,
             main/pa_string.C, types/pa_varray.h, types/pa_vfile.C,
             types/pa_vmethod_frame.h: handy as_index() added, several
             exceptions texts fixed (related to feature #930)
   
           * src/: classes/array.C, types/pa_varray.h: non-working
             $array.fields removed, ^array.delete[index] supported (related to
             feature #930)
   
           * tests/: 431.html, results/431.processed: tests updated after
             ^a.delete[3] supported
   
           * tests/: 431.html, 434.html, results/434.processed: tests for last
             element used, push/pop, exceptions during arguments processing
             and used caching (related to feature #930)
   
           * src/: classes/array.C, types/pa_varray.h: change_used added for
             better used caching and now no issues if exception occures during
             append arguments processing (related to feature #930)
   
           * src/: classes/array.C, types/pa_varray.h: ^array.push[] /
             ^array.pop[] added, last element is allways used (related to
             feature #930)
   
   2024-10-26  moko
   
           * src/: classes/array.C, include/pa_array.h, types/pa_varray.C,
             types/pa_varray.h: confirm_all_used added where possible (related
             to feature #930)
   
           * src/: classes/array.C, include/pa_array.h, types/pa_varray.h:
             small array optimizations (related to feature #930)
   
           * src/types/pa_varray.h: DEBUG_ARRAY_USED added to simplify testing
   
           * tests/: 431.html, results/431.processed: test for
             ^array.compact[undef] added
   
           * src/classes/array.C: ^array.compact[] now have optional 'undef'
             argument to also compact undefined elements (related to feature
             #930)
   
   2024-10-24  moko
   
           * src/: classes/array.C, types/pa_varray.C, types/pa_varray.h:
             VArray::hash is used rarery, no longer caching the result
   
           * tests/results/432.processed: testing removed from tests
   
   2024-10-23  moko
   
           * tests/: 431.html, results/431.processed: ^array.compact[] test
             added
   
           * src/: classes/array.C, types/pa_varray.h: ^array.compact[] added
   
           * tests/: 432.html, results/432.processed: testing ^array.at[] for
             both "solid" and "sparse" arrays
   
           * src/classes/array.C: ^array.at[] speedup for "solid" arrays
   
   2024-10-22  moko
   
           * tests/results/264.processed: spelling
   
           * src/classes/file.C: spelling
   
           * tests/: 264.html, cat-windows.sh, cat.sh, results/264.processed:
             tests updated after ^file::exec[cmd;;$array] implemented and
             empty arguments not skipped (related to feature #1252)
   
           * src/classes/file.C: ^file::exec[cmd;;$array] supported
             (implements feature #1252) bugfix: empty arguments no longer
             skipped
   
   2024-10-21  moko
   
           * tests/httpd/: 001.txt, 002.txt, 003.txt, 004.txt, 005.txt,
             007.txt, 008.txt, 009.txt, 010.txt, 011.txt, 012.txt, 013.txt,
             014.txt, 015.txt, 016.txt, 017.txt, 018.txt, 019.txt, 020.txt,
             021.txt, 022.txt, 023.txt, 024.txt, 025.txt, 026.txt, 027.txt,
             028.txt, 030.txt, ok.log, run_tests.sh, site/httpd.p,
             site/index.html, site/test.txt: httpd tests added
   
   2024-10-20  moko
   
           * src/classes/string.C: warnings war
   
           * src/: main/pa_string.C, classes/array.C: warnings war
   
           * src/classes/json.C: warnings war
   
           * src/classes/image.C: warnings war
   
           * src/: classes/table.C, types/pa_varray.C: warnings war
   
           * src/classes/array.C: warning war
   
           * src/: classes/classes.vcproj, types/types.vcproj: vcproj: +=array
   
           * src/main/main.vcproj: warnings war
   
   2024-10-19  moko
   
           * tests/427.html: test updated after constructors renamed
   
   2024-10-18  moko
   
           * tests/: 421.html, 430.html, 431.html, 432.html, 433.html,
             results/421.processed, results/430.processed,
             results/431.processed: test updated after constructors renamed
   
           * src/classes/array.C: create -> copy, new -> create according to
             https://www.parser.ru/forum/?id=86603 discussion (related to
             feature #930)
   
   2024-10-16  moko
   
           * src/classes/json.C: $json:array[array or hash] added to provide
             more backward compatibility (implements feature #1251)
   
   2024-10-15  moko
   
           * tests/: 421.html, results/421.processed: test results updated
             after missing constuctor error check added and array is_index
             check added
   
           * src/main/execute.C: absent constructor message fixed
   
   2024-10-13  moko
   
           * src/types/pa_varray.h: ^array.$i[arg] is rare, thus checking i
             with is_index() before calling index() for better error reporting
             in method name typo (was invalid number, not method not found
             exception).
   
   2024-10-08  moko
   
           * src/types/pa_varray.C: Visual Studio compatibilty issues fixed
   
           * src/include/pa_array.h: warnings war
   
   2024-10-05  moko
   
           * src/classes/table.C: ^table.cells[] / ^table.cells(limit) added,
             returns current row cells array (implements feature #1250)
   
           * tests/: 405.html, results/169.processed, results/405.processed:
             tests updated after ^string.split[;a] implemented (related to
             feature #1249)
   
           * src/classes/string.C: ^string.split[] - 'a' option added for
             splitting into an array (implements feature #1249)
   
   2024-10-04  moko
   
           * tests/: 431.html, results/431.processed: final code coverage
             array tests
   
           * src/: classes/array.C, include/pa_array.h, types/pa_varray.h:
             array: confirm_all_used() added and used where possible, expand()
             now expends faster
   
   2024-10-03  moko
   
           * tests/: 357.html, results/auto.p: max_recoursion -> max_recursion
   
           * tests/: 256.html, results/256.processed: test for
             $.date[unix-timestamp] handling large dates
   
           * src/: classes/file.C, classes/op.C, classes/reflection.C,
             classes/string.C, classes/table.C, include/pa_common.h,
             main/pa_common.C, main/pa_http.C, main/pa_request.C,
             types/pa_vdate.C, types/pa_vmethod_frame.h, types/pa_vtable.C:
             format replaced with pa_uitoa where applicable,
             $.date[unix-timestamp] fixed for handling large dates
   
           * tests/: 433.html, results/433.processed: more tests, including
             test for possible endless recursion in ^o.GET[]
   
           * src/types/pa_vobject.C: bugfix: detecting possible endless
             recursion in get_scalar_value inside ^o.GET[]
   
           * src/: classes/json.C, include/pa_request.h, main/execute.C,
             main/pa_request.C, types/pa_value.h, types/pa_vmethod_frame.C:
             Temp_recursion class added; spelling: $LIMITS.max_recoursion ->
             $LIMITS.max_recursion
   
   2024-10-02  moko
   
           * tests/: 253.html, 287.html, 430.html, 431.html, 433.html,
             results/253.processed, results/287.processed,
             results/430.processed, results/433.processed: more tests for full
             array and json code coverage
   
           * tests/: 433.html, results/433.processed: tests for hash functions
             with array param
   
           * src/classes/: array.C, hash.C: ^hash::create[$array] optimized
   
           * tests/: 432.html, results/432.processed: modified ^hash.at tests
             in 246.html used to test ^array.at, same result produced
   
           * tests/: 430.html, 431.html, results/430.processed,
             results/431.processed: more array tests for 100% code coverage
             (related to feature #930)
   
           * tests/: 427.html, 430.html, results/427.processed,
             results/430.processed: first portion of array tests added
             (related to feature #930)
   
           * src/classes/array.C: allow only whitespace string as argument for
             add and join
   
           * src/classes/array.C: add behavour for array synced with hash
   
   2024-09-30  moko
   
           * tests/: 429-sql.html, results/429-sql.processed: code coverage
             tests added
   
           * src/classes/array.C: $.distinct should not be used unless
             $.sparse(true)
   
           * tests/: 429-sql.html, results/388-sql.processed,
             results/429-sql.processed: tests for ^array::sql{}, including
             multi_statements mode (related to feature #930)
   
   2024-09-29  moko
   
           * src/classes/array.C: synced ^array::sql multi_statements logic
             with ^hash::sql new behavour
   
   2024-09-28  moko
   
           * tests/: 428-sql.html, results/388-sql.processed,
             results/428-sql.processed: tests updated after column names were
             fixed in multi_statements mode (related to feature #1197)
   
           * src/classes/hash.C: column names are fixed for most cases in
             multi_statements mode (related to feature #1197)
   
           * tests/: 428-sql.html, results/195.processed,
             results/224.processed, results/239.processed,
             results/254.processed, results/261.processed,
             results/306.processed, results/333.processed,
             results/341.processed, results/343.processed,
             results/344.processed, results/348.processed,
             results/364.processed, results/389.processed,
             results/390.processed, results/415.processed,
             results/420.processed, results/421.processed: tests results
             updated after error messages spelling minor fixes
   
           * src/types/: pa_value.h, pa_vstateless_class.h: a bit more
             spelling
   
           * src/: classes/curl.C, classes/file.C, classes/hash.C,
             classes/image.C, classes/math.C, classes/string.C,
             classes/table.C, lib/memcached/pa_memcached.C, main/compile.y,
             main/execute.C, main/pa_charset.C, main/pa_common.C,
             main/pa_http.C, main/pa_request.C, main/pa_socks.C,
             main/pa_sql_driver_manager.C, types/pa_value.C, types/pa_value.h,
             types/pa_vmail.C, types/pa_vobject.C,
             types/pa_vstateless_class.C, types/pa_vstateless_class.h,
             types/pa_vxdoc.C: minor error messages spelling fixes
   
           * src/: classes/array.C, types/pa_varray.h: initial ^array::sql{}
             implementation (related to feature #930)
   
           * tests/: 388-sql.html, results/388-sql.processed: test results
             updated after rows number ^file::sql{} check added
   
           * src/classes/file.C: rows number now checked in ^file::sql{}
   
           * tests/: 428-sql.html, results/428-sql.processed: more tests
   
           * tests/: 428-sql.html, results/428-sql.processed: more
             multi_statements testing before bugfix
   
           * tests/: 388-sql.html, 428-sql.html, results/388-sql.processed,
             results/428-sql.processed: support for multiple sql test files
             added
   
           * tests/: 388-sql.html, results/388-sql.processed: more sql testing
   
           * src/classes/hash.C: more accurate one_bool_column processing
   
           * tests/: 427.html, results/427.processed: Constructors as methods
             behavour documented in test
   
           * src/classes/hash.C: HashStringValue::Iterator used for options
   
           * tests/: 388-sql.html, results/388-sql.processed: even more tests
   
           * tests/: 388-sql.html, results/388-sql.processed: a bit more
             testing
   
           * tests/results/367-curl.processed: test result updated after
             server charset changed
   
           * tests/results/347-curl.processed: error messages updated
   
           * tests/results/: 346-curl.processed, 379-curl.processed,
             394-curl.processed: tests results updated after Type -> Exception
             type replacement
   
           * tests/results/388-sql.processed: tests result updated after Type
             -> Exception type
   
   2024-09-27  moko
   
           * src/classes/hash.C: minor simplification
   
   2024-09-24  moko
   
           * src/main/pa_string.C: atoui error messages improved
   
           * tests/: 165.html, 312.html, results/165.processed,
             results/312.processed, results/379.processed: tests updated after
             default endless loop limit increased, atoi error messages
             improved
   
           * src/classes/hash.C: VBool::get used, unification
   
   2024-09-22  moko
   
           * src/classes/array.C: minor simplification
   
           * src/classes/array.C: ^array.left(N),
             ^array.right(N),^array.mid(P;N) added (related to feature #930)
   
           * src/: classes/array.C, include/pa_request.h, main/pa_request.C,
             types/pa_varray.C, types/pa_varray.h: $MAIN:LIMITS.max_array_size
             added, default 1000000 (related to feature #930)
   
           * tests/: 426.html, results/426.processed: test for negative limit
             and offset processing for table options added
   
           * src/: classes/table.C, include/pa_array.h, main/pa_table.C:
             bugfix: negative limit and offset processing for table options
             fixed
   
   2024-09-21  moko
   
           * src/: classes/array.C, types/pa_varray.h: join supports hash;
             ^for added that also iterates holes; ^remove added (related to
             feature #930)
   
           * src/classes/array.C: ^array.join[$another_array; $.limit(N)
             $.offset(M) ] added (related to feature #930)
   
   2024-09-20  moko
   
           * src/: classes/array.C, types/pa_varray.h: array:
             +foreach[value]{code}, + add[hash with numeric keys] (related to
             feature #930)
   
   2024-09-19  moko
   
           * src/: include/pa_opcode.h, main/compile.y, main/compile_tools.h,
             main/execute.C, types/pa_varray.h: OP_CONSTRUCT_ARRAY added to
             support $a[v1;v2;...] syntax (related to feature #930)
   
   2024-09-17  moko
   
           * src/: classes/reflection.C, include/pa_request.h,
             main/compile_tools.h, main/pa_request.C:
             ^reflection:class_alias[existing class name;alias class name]
             added. The array class can now be redefined regardless of the
             $.replace(bool) option value (related to feature #930)
   
           * src/main/: compile.y, compile_tools.h: class_add return value
             inverted to add it to request class
   
           * src/: classes/array.C, include/pa_array.h, include/pa_request.h,
             include/pa_stack.h, types/pa_varray.C, types/pa_varray.h,
             types/pa_vmethod_frame.h: array: fused -> fsize, fit(index) to
             resize if required. spared array - added fused, append.
   
   2024-09-16  moko
   
           * src/types/pa_varray.h: get moved to where it belongs
   
   2024-09-15  moko
   
           * src/: include/pa_array.h, types/pa_varray.h: more agressive
             expansion to minimize reallocs: fallocated/32 -> fallocated/4
   
           * tests/: 421.html, results/323.processed, results/421.processed:
             tests updated after 'spared-array' class renamed to 'array'
             following a discussion on the forum (related to feature #930)
   
           * src/: include/pa_array.h, types/pa_value.h, types/pa_varray.h,
             types/pa_vmail.C: initial SparseArray separation from Array,
             parser class now 'array'
   
   2024-09-14  moko
   
           * tests/: 030.html, results/030.processed: out of range expires
             check added
   
           * src/types/pa_vcookie.C: VDate range is narrower than gmtime, thus
             checking expires time using VDate
   
   2024-09-13  moko
   
           * src/: classes/array.C, classes/curl.C, classes/date.C,
             classes/file.C, classes/hash.C, classes/image.C, classes/json.C,
             classes/memcached.C, classes/op.C, classes/regex.C,
             classes/string.C, classes/xdoc.C, classes/xnode.C,
             main/execute.C, main/pa_http.C, main/pa_request.C,
             types/pa_value.C, types/pa_value.h, types/pa_vclass.C,
             types/pa_vclass.h, types/pa_vcookie.C, types/pa_vhashfile.C,
             types/pa_vmail.C, types/pa_vobject.C, types/pa_vobject.h,
             types/pa_vxdoc.C, types/pa_vxdoc.h: optimization: Value::as()
             removed as dynamic_cast is faster, Value::is() is still required
             for is operator.
   
   2024-09-12  moko
   
           * src/: classes/file.C, classes/image.C, classes/reflection.C,
             classes/table.C, classes/xnode.C, include/pa_array.h,
             include/pa_string.h, main/pa_common.C, main/pa_request.C,
             main/pa_string.C, targets/cgi/pa_sapi_info.h, types/pa_vform.C,
             types/pa_vhash.h, types/pa_vtable.C, types/pa_vxnode.C: faster
             templated pa_itoa/pa_uitoa added to work with any integer type,
             String::Body::Format removed
   
   2024-09-10  moko
   
           * src/classes/array.C: append and insert methods added to
             sparse-array (related to feature #930)
   
           * tests/: 253.html, 255.html, 421.html, results/421.processed:
             tests updated after sparse-array was added to avoid ^json:parse[]
             using it in old tests (related to feature #930)
   
           * src/: classes/array.C, classes/json.C, types/pa_varray.C,
             types/pa_varray.h: sparse-array class added (initial feature #930
             implementation)
   
           * src/: classes/Makefile.am, types/Makefile.am: Makefiles update
             for sparse-array class files (related to feature #930)
   
           * src/: classes/json.C, include/pa_array.h, types/pa_value.h,
             types/pa_vhash.h: VArray support functions without actual VArray
             files (related to feature #930)
   
   2024-09-07  moko
   
           * src/: classes/curl.C, classes/string.C, classes/table.C,
             include/pa_array.h, main/execute.C, main/pa_dictionary.C,
             main/pa_http.C, main/pa_sql_driver_manager.C,
             main/pa_stylesheet_manager.C, main/pa_table.C, types/pa_vclass.C,
             types/pa_vmethod_frame.C, types/pa_vstateless_class.C,
             types/pa_vtable.C, types/pa_wcontext.C: Array::Iterator unified
             with Hash::Iterator, has_next() replaced with operator bool
             (related to feature #930)
   
           * src/: classes/string.C, include/pa_array.h, main/pa_http.C,
             main/pa_table.C, types/pa_vclass.C, types/pa_vmethod_frame.C,
             types/pa_vstateless_class.C: Array class extended,
             Array::Iterator added and used (related to feature #930)
   
   2024-08-26  moko
   
           * src/targets/cgi/parser3.C: under Windows back_slashes_to_slashes
             should be used on argv[0] as well to match document root.
   
   2024-08-25  moko
   
           * src/main/pa_request.C: be more specific
   
           * src/targets/cgi/parser3.C: parser3 t.html now behaves identically
             to /usr/bin/parser3 t.html in terms of /etc/parser3/auto.p load
             (fixes bug #1244)
   
           * src/targets/cgi/parser3.C: avoid "parser allready configured"
             exception when ./parser3.cgi <file> is used; rsplit(..., '/') ||
             rsplit(..., '\\') is not correct when / and \ are mixed in path
   
           * src/targets/cgi/parser3.C: full_disk_path now uses pa_strcat()
   
   2024-07-24  moko
   
           * src/: include/pa_config_includes.h, lib/gd/gifio.C,
             main/execute.C, main/pa_string.C: Warning war: clang changed
             -Wdeprecated-register warning to -Wregister, it's easier to
             remove all register vars then continue this fight. :)
   
           * src/main/: compile.y, compile.tab.C: warning war: register
             removed
   
   2024-07-14  moko
   
           * src/targets/cgi/pa_sapi_info.h: When accessing $env:name,
             checking the HTTP request environment; if the variable is not
             present, checking the web server process environment (implements
             feature #1242)
   
   2024-05-26  moko
   
           * tests/: 195.html, 229.html, results/096.processed,
             results/097.processed, results/158.processed,
             results/186.processed, results/273.processed,
             results/293.processed, results/317.processed,
             results/389.processed, results/402.processed: tests updated as
             single quote now escaped with &apos; in HTML tainting mode
             (related to feature #1241)
   
           * src/main/untaint.C: single quote now escaped with &apos; in HTML
             tainting mode (implements feature #1241)
   
           * tests/results/: 020.processed, 021.processed, 026.processed,
             042.processed, 043.processed, 057.processed, 110.processed,
             115.processed, 116.processed, 117.processed, 118.processed,
             119.processed, 120.processed, 125.processed, 126.processed,
             128.processed, 130.processed, 131.processed, 132.processed,
             133.processed, 135.processed, 136.processed, 138.processed,
             139.processed, 140.processed, 145.processed, 150.processed,
             151.processed, 165.processed, 174.processed, 181.processed,
             182.processed, 192.processed, 193.processed, 201.processed,
             213.processed, 224.processed, 226.processed, 230.processed,
             239.processed, 240.processed, 244.processed, 253.processed,
             254.processed, 261.processed, 264.processed, 269.processed,
             274.processed, 275.processed, 288.processed, 294.processed,
             296.processed, 303.processed, 306.processed, 307.processed,
             308.processed, 311.processed, 312.processed, 314.processed,
             315.processed, 316.processed, 320.processed, 323.processed,
             324.processed, 325.processed, 328.processed, 330.processed,
             332.processed, 333.processed, 337.processed, 338.processed,
             341.processed, 342.processed, 343.processed, 344.processed,
             345.processed, 348.processed, 352.processed, 356.processed,
             357.processed, 363.processed, 364.processed, 368.processed,
             372.processed, 373.processed, 376.processed, 378.processed,
             379.processed, 385.processed, 386.processed, 387.processed,
             389.processed, 390.processed, 395.processed, 397.processed,
             398.processed, 399.processed, 404.processed, 406.processed,
             413.processed, 414.processed, 420.processed, 421.processed,
             424.processed, auto.p: Type -> Exception type for readability
   
           * tests/: 119.html, 165.html, 175.html, 192.html, 213.html,
             217.html, 230.html, 240.html, 298.html, 380.html, 415.html,
             results/119.processed, results/165.processed,
             results/175.processed, results/192.processed,
             results/213.processed, results/217.processed,
             results/230.processed, results/240.processed,
             results/298.processed, results/380.processed,
             results/415.processed: try-catch, try-catch-comment used
   
   2024-05-21  moko
   
           * tests/: 169.html, 180.html, 195.html, 224.html, 246.html,
             results/180.processed, results/195.processed,
             results/224.processed, results/auto.p: @try-catch-comment added
             and used
   
           * tests/: 175.html, 256.html, 269.html, 283.html, 341.html,
             415.html, results/269.processed, results/283.processed,
             results/auto.p: more tests are updated to prepare for apostrophe
             escaping in HTML tainting
   
           * tests/results/: 181.processed, 294.processed, 296.processed,
             315.processed, 379.processed, 389.processed, auto.p:
             $exception.comment printed as-is for whitespace reporting and to
             prepare for apostrophe escaping in HTML mode
   
   2024-05-11  moko
   
           * tests/: 099.html, 100.html, results/099.processed,
             results/100.processed: a test for non-UTF-8 filename* added
             (related to feature #1240)
   
           * tests/: 293.html, results/293.processed: tainting modes tests
             added
   
           * tests/results/: 099.processed, 100.processed, 205.processed,
             309.processed, 310.processed, 419.processed: tests results
             updated after filename* added (related to feature #1240)
   
           * src/: include/pa_common.h, main/pa_request.C: The filename*
             parameter was added to the Content-Disposition header to conform
             with RFC 6266, with code provided by Sumo (implements feature
             #1240)
   
   2024-05-10  moko
   
           * src/main/pa_http.C: Testing shows that TCP_NODELAY has no
             positive performance effect in our case
   
   2024-03-27  moko
   
           * src/lib/pcre/pcre_internal.vcproj: pa_config_includes.h used
             (related to feature #1236)
   
   2024-03-15  moko
   
           * tests/: 413.html, results/413.processed: test for object still
             can be used as file parameter (related to bug #1218)
   
           * src/types/: pa_vobject.C, pa_vobject.h: regression fix: object
             still can be used in file context (fixes bug #1218)
   
   2024-03-14  moko
   
           * src/include/pa_string.h: ArrayString get() null result assert
             also added (related to bug #1238)
   
           * src/types/: pa_vstring.h, pa_vtable.C: VString() optimized;
             VString::empty() used instead of new VString()
   
   2024-03-12  moko
   
           * tests/: 379-curl.html, 379.html, results/379-curl.processed,
             results/379.processed: test added for cookie without value
             (related to bug #1238)
   
           * src/include/pa_string.h: In assertions enabled mode, ArrayString
             values are now required to be non-null (related to bug #1238)
   
           * src/main/pa_http.C: cookies without value are now parsed
             correctly (fixed bug #1238)
   
   2024-03-11  moko
   
           * tests/run_parser.sh: for better error reporting
   
   2023-12-30  moko
   
           * tests/: 038.html, results/038.processed: test for atan2 added
   
   2023-12-29  moko
   
           * src/classes/math.C: atan2(y,x) math function added
   
   2023-12-14  moko
   
           * tests/212.html: pcre2 compatibility (related to feature #1236)
   
           * tests/: 425.html, results/425.processed: test for pcre/pcre2
             exceptions and behavour added (related to feature #1236)
   
   2023-12-13  moko
   
           * buildall: by default parser is now bundled with pcre2 10.42,
             --without-pcre2 option added to build with pcre-8.45 (related to
             feature #1236)
   
   2023-12-12  moko
   
           * configure.ac, src/include/pa_config_auto.h.in: pcre2 library
             support added (implements feature #1236)
   
           * src/: include/pa_charset.h, include/pa_config_includes.h,
             lib/pcre/pa_pcre_internal.h, lib/pcre/pa_pcre_valid_utf8.c,
             main/pa_common.C, main/pa_globals.C, types/pa_vregex.C,
             types/pa_vregex.h: Adopted patch from Yavor Doganov
             <yavor@gnu.org> to add pcre2 library support (implements feature
             #1236)
   
   2023-11-28  moko
   
           * src/include/pa_config_includes.h: warnings war continues
   
           * src/include/pa_config_includes.h: warning war
   
           * tests/: 424.html, results/424.processed: tests for '+' and '-'
             number strings, whitespace and sign in exception messages
             (related to bug #1234)
   
   2023-11-26  moko
   
           * tests/: 274.html, results/224.processed, results/274.processed:
             tests for date double, int, bool added (related to feature #1235)
   
           * src/: classes/date.C, types/pa_vdate.h: double,int,bool methods
             added for date class (implements feature #1235)
   
   2023-11-23  moko
   
           * src/: classes/math.C, include/pa_string.h, main/pa_string.C: '+'
             and '-' strings are no longer can be treated as number 0,
             exception thrown (fixes bug #1234)
   
   2023-11-18  moko
   
           * src/include/pa_types.h: minor
   
           * src/include/pa_dir.h: MAXPATH in UTF-16 chars, not bytes
   
           * tests/: 389.html, results/389.processed: error messages for some
             OS differs a bit, reducing failing tests for them
   
   2023-11-17  moko
   
           * tests/: 423.html, results/423.processed: test for optional
             @auto[] inheritance added (related to feature #1233)
   
           * src/: include/pa_request.h, main/execute.C, main/pa_request.C,
             types/pa_vstateless_class.C: optional @auto[] inheritance
             implemented if defined with two args (path, class name)
             (implements feature #1233)
   
           * src/: classes/double.C, classes/int.C, classes/math.C,
             include/pa_random.h, include/pa_types.h, main/pa_common.C,
             types/pa_vdouble.h, types/pa_vint.h: clip2int,clip2uint added to
             sync double->int overflow behavour under different architectures
             (fixes bug #1232)
   
           * tests/: 422.html, results/422.processed: int clipping added
   
   2023-11-16  moko
   
           * tests/: 422.html, results/422.processed: test for int and uint
             overflow in ^n.format[d/u/x]
   
           * src/classes/math.C: bugfix: crc32 should not be negative (under
             Apple M1 when negative double converts to uint the result is 0)
             and crc32 should be 32 bits
   
           * src/main/pa_common.C: avoid (uint)<negative double> conversion as
             on Apple M1 it's 0
   
           * src/classes/file.C: bugfix: crc32 should not be negative (under
             Apple M1 when negative double converts to uint the result is 0)
             and crc32 should be 32 bits
   
   2023-10-07  moko
   
           * src/: main/execute.C, types/pa_vdate.h: volatile added to sync
             behavour with other OP_NUM_*, related to bug #1230
   
   2023-10-06  moko
   
           * tests/: 338.html, results/338.processed: test for bug #1230 added
   
           * src/: main/execute.C, types/pa_vdate.h: force double operands to
             be converted to double to avoid 80 bit operations in x87 mode
             (fixes bug #1230)
   
   2023-10-05  moko
   
           * tests/420.html: add feature FEATURE_GET_ELEMENT4CALL disabled
             compatibility
   
           * tests/337.html: 2work without FEATURE_GET_ELEMENT4CALL
   
           * tests/: 421.html, results/421.processed: test to cover all
             classes and objects nonexistent method and field exceptions
             (related to feature #1080 and #1227)
   
           * tests/results/: 182.processed, 324.processed: undefined method ->
             <type> method not found exception (related to feature #1080)
   
           * src/types/: pa_vbool.h, pa_vconsole.h, pa_vdouble.h, pa_vint.h,
             pa_vregex.C, pa_vstateless_object.h: + VSimple_stateless_object,
             "element can not be fetched from" for them, "field not found" for
             all other types (related to bug #1227)
   
   2023-10-03  moko
   
           * src/types/pa_vstateless_class.h: "Source: <method name>, Comment:
             <type> method not found" exception now thrown for static calls
             instead of "undefined method" without class name (related to
             feature #1080)
   
   2023-10-02  moko
   
           * src/types/: pa_vdouble.h, pa_vhash.h, pa_vint.h, pa_vobject.C,
             pa_vstateless_object.h, pa_vstring.h, pa_vtable.C: "Source:
             <method name>, Comment: <type> method not found" exception now
             thrown for all dynamic objects instead of "undefined method"
             without class name (implements feature #1080)
   
   2023-10-01  moko
   
           * src/classes/json.C: we don't have a dynamic json object.
   
   2023-09-28  moko
   
           * tests/: 420.html, results/261.processed, results/420.processed:
             tests updated after bug #1228 fix reverted
   
           * src/types/pa_vstring.h: revering fix for bug #1228, as empty or
             whitespace string is hash compatible, so we don't want $s.key to
             return a junction
   
           * tests/: 261.html, 420.html, results/261.processed,
             results/420.processed: test for bug #1227 added, test updated
             after bug #1228 fixed
   
           * src/types/: pa_vdouble.h, pa_vint.h: $int.field and $double.field
             now throws exception as $non-empty-string.field (fixes bug #1227)
   
           * src/types/pa_vstring.h: allow $string.method access (fixes bug
             #1228)
   
   2023-09-26  moko
   
           * AUTHORS, aclocal.m4, configure, src/classes/bool.C,
             src/classes/classes.C, src/classes/classes.awk,
             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_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/ltdl/configure, 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_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_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, authors actualized
   
   2023-08-20  moko
   
           * tests/: 141.html, results/141.processed: test for ^math:uuid7[]
             commited (related to feature #1219)
   
   2023-08-16  moko
   
           * src/main/pa_random.C: replaced clock precision with monotonicity
             counter, good for Windows version with low clock frequency
             (related to feature #1229)
   
   2023-08-15  moko
   
           * src/: main/pa_random.C, types/pa_vstatus.C: win32 compatibility
             fixes related to feature #1229
   
           * src/: classes/math.C, include/pa_random.h, main/pa_random.C,
             types/pa_vstatus.C: ^math:uuid7 added, code provided by Sumo
             (implements feature #1229)
   
   2023-08-02  moko
   
           * tests/: results/417.processed, 417.html: test for empty string
             match after last char added (related to bug #1224)
   
           * src/main/pa_string.C: avoid prestart++ after last char on zero
             length match (related to bug #1224)
   
   2022-11-22  moko
   
           * tests/: 419.html, results/419.processed: test for L_URI and path
             removeal from filename added (related to bug #1204)
   
           * src/main/pa_request.C: bugfix: pa_filename was lost in 1.394
             commit (related to bug #1204), L_HTTP_HEADER is incorrect for
             attribute value, L_URI should be used
   
   2022-09-21  moko
   
           * src/targets/cgi/parser3.C: more clear error messages
   
           * src/targets/cgi/parser3.C: only SAPI_Info_CGI can read POST,
             SAPI_Info will return 0 in read_post and post_size !=
             content_length will be thrown
   
   2022-08-23  moko
   
           * src/types/pa_vmail.C: .tables addes as .raw contains only last
             header value
   
   2022-08-22  moko
   
           * tests/: 418.html, results/418.processed: test for
             ^hash_a.intersection[hash_b; $.order[self|arg] ] added (related
             to #1225)
   
           * src/classes/hash.C: keep old behavoir by default
   
           * src/classes/hash.C: ^hash_a.intersection[hash_b;
             $.order[self|arg] ] added (implements #1215)
   
   2022-03-21  moko
   
           * src/main/pa_charset.C: bugfix: +static xml_encoding_handlers as
             xmlInitCharEncodingHandlers is called in libxml static
             initializers before gc_substitute_memory_management_functions in
             pa_globals and thus gc may not see reference to our
             xmlCharEncodingHandler and free it.
   
   2022-01-26  moko
   
           * src/targets/cgi/parser3.C: argv[0] -> parser3_filespec
   
   2021-12-28  moko
   
           * tests/: 417.html, results/417.processed: test for empty string
             match added (related to bug #1224)
   
           * src/main/pa_string.C: empty string match now works (fixes bug
             #1224)
   
   2021-12-24  moko
   
           * tests/: 415_dir/29.p, results/415.processed: yet another test
   
   2021-12-23  moko
   
           * src/: classes/table.C, main/pa_request.C: warnings war
   
           * src/: include/pa_common.h, include/pa_http.h, main/pa_common.C,
             main/pa_http.C, targets/cgi/parser3.C: MSVC SOCKET warnings war
   
   2021-12-21  moko
   
           * tests/: 416.html, results/416.processed: test for ^break[] in
             ^hash/table.select[] (related to feature #1222)
   
           * src/classes/: hash.C, table.C: ^break[] support for
             ^hash/table.select[] (implements feature #1222)
   
   2021-11-30  moko
   
           * src/targets/cgi/parser3.C: default sock_ready interval changed to
             0.5 sec
   
   2021-11-10  moko
   
           * tests/results/415.processed: more syntax errors tests added
   
           * tests/415_dir/: 20.p, 21.p, 22.p, 23.p, 24.p, 25.p, 26.p, 27.p,
             28.p: minor syntax error tests
   
           * src/main/pa_exception.C: pa_strdup added for compatibility
   
           * src/classes/curl.C: hint to call ^curl:options[
             $.library[correct.libcurl.so.name] ] added if default load fails.
   
   2021-11-09  moko
   
           * src/main/compile.y: error message can be on stack
   
           * src/main/pa_xml_io.C: strcat replaced with pa_strcat
   
           * src/main/pa_charset.C: memcpy is more correct and efficient in
             this case then strncpy
   
           * src/: classes/image.C, types/pa_vrequest.C: pa_strdup used
             instead of strcpy where possible
   
           * src/: classes/op.C, main/pa_exception.C: "%s" format now can be
             used to avoid MAX_STRING limit in Exception comment
   
           * tests/results/415.processed: compiler exceptions are no longer
             limited to MAX_STRING
   
           * src/main/: compile.y, compile_tools.h: Parse_control uses const
             char * instead of fixed buffer
   
           * tests/: 415.html, 415_dir/01.p, 415_dir/02.p, 415_dir/03.p,
             415_dir/04.p, 415_dir/05.p, 415_dir/06.p, 415_dir/07.p,
             415_dir/08.p, 415_dir/09.p, 415_dir/10.p, 415_dir/11.p,
             415_dir/12.p, 415_dir/13.p, 415_dir/14.p, 415_dir/15.p,
             results/415.processed: tests for parser.compile exceptions added
   
   2021-11-08  moko
   
           * src/: classes/math.C, include/pa_common.h, main/compile.y,
             main/pa_common.C, main/pa_dir.C, main/pa_exec.C, main/pa_http.C,
             targets/cgi/parser3.C, targets/isapi/parser3isapi.C,
             types/pa_vdate.C: pa_strncpy added ans used to avoid strncpy
             drawbacks
   
   2021-11-06  moko
   
           * src/classes/inet.C: ^inet:hostname[] added by sumo@ patch
             (implements feature #1219)
   
           * tests/: 414.html, results/414.processed: test for
             ^hash.rename[from;to] added (related to feature #1144)
   
   2021-11-05  moko
   
           * src/classes/hash.C: ^hash.rename[ $.from[to] ... ] support added
             (related to feature #1144)
   
   2021-11-04  moko
   
           * src/: classes/hash.C, include/pa_hash.h: ^hash.rename[from;to]
             added (implements feature #1144)
   
   2021-10-19  moko
   
           * tests/: 413.html, results/413.processed: test for hash no longer
             is accepted as file parameter (related to bug #1218)
   
           * src/: classes/curl.C, classes/file.C, classes/image.C,
             classes/math.C, classes/xdoc.C, types/pa_value.C,
             types/pa_value.h, types/pa_vfile.h, types/pa_vmail.C: hash no
             longer is accepted as file parameter (fixes bug #1218)
   
   2021-07-19  moko
   
           * src/targets/cgi/parser3.C: waitpid in file::exec returned "No
             child processes" when SIGCHLD was SIG_IGN (fixes bug #1215)
   
   2021-04-16  moko
   
           * src/types/pa_vmail.C: message can be null when e-mail is broken,
             processing it leads to assertions.
   
   2021-03-25  moko
   
           * tests/: 412.html, results/412.processed: test to demonstrate bug
             #1213
   
   2021-02-12  moko
   
           * tests/: 360.html, results/360.processed, results/363.processed:
             parser method call in expression mode no longer differs from call
             in string mode (related to feature #1211)
   
   2021-02-11  moko
   
           * src/types/pa_vmail.C: mail parsing with Windows line endings
             fixed (bug #1212)
   
           * src/types/pa_vmethod_frame.h: no more difference inside @test[]
             when called $v[^test[]] vs $v(^test[]), numbers are converted to
             strings in both calls (implements feature #1211)
   
   2021-01-28  moko
   
           * buildall, etc/auto.p.in: to remove last patch in debian package
   
           * configure, configure.ac, src/include/pa_version.h: 3.4.6 ->
             3.4.7b
   
   2021-01-21  moko
   
           * src/main/pa_http.C: no alarm() in file::load when web server mode
             is MULTITHREADED
   
   2021-01-20  moko
   
           * src/targets/apache/mod_parser3.c: it is more correct to recommend
             'a2enmod mpm_prefork'
   
           * src/targets/apache/mod_parser3.c: prefork name is now
             'libapache2-mpm-itk'
   
           * src/targets/apache/mod_parser3_core.C: last regular malloc
             removed
   
           * src/targets/isapi/Makefile.am: -pa_threads.C
   
           * configure, configure.ac, src/include/pa_version.h: 3.4.6rc ->
             3.4.6
   
           * etc/auto.p.in: post_max_size 10Mb -> 64Mb. It's 2021 year now. :)
   
           * etc/auto.p.in: @config[result] added to simplify $cfg change in
             /httpd.p
   
           * etc/auto.p.in: httpd fine-tune: + @OPTIONS partial, +
             ^use[/httpd.p] + optional ^preprocess[] (related to feature
             #1203)
   
   2021-01-19  moko
   
           * buildall: --disable-parallel-mark added to avoid "number of
             processors" threads creation for heap marking as it conflicts
             with RLimitNProc in apache (on Linux setrlimit RLIMIT_NPROC
             limits threads)
   
   2021-01-16  moko
   
           * src/: classes/memory.C, include/pa_memory.h, lib/gc/include/gc.h,
             main/pa_globals.C, main/pa_memory.C,
             targets/apache/mod_parser3_core.C, targets/isapi/parser3isapi.C,
             types/pa_vhashfile.C: ^memory:auto-compact(N) added (implements
             feature #1209)
   
   2021-01-15  moko
   
           * configure, configure.ac, src/include/pa_version.h: 3.4.6b ->
             3.4.6rc
   
           * src/classes/json.C: get_delim added for delimiter caching (10%
             faster on large json)
   
   2021-01-14  moko
   
           * operators.txt: updated with 3.4.6 changes
   
           * tests/results/224.processed: test result modified after
             today(shift) implemented
   
           * tests/: 407.html, results/407.processed: test for ^hash.select
             option $.default(bool) added (related to feature #1172)
   
           * src/classes/hash.C: ^hash.select option $.default(bool) added
             (related to feature #1172)
   
           * tests/: 141.html, results/141.processed: test modified for
             feature #1185.
   
           * src/: classes/math.C, include/pa_random.h, main/pa_random.C:
             ^math:uuid options $.lower(bool) $.solid(bool), ^math:uid64
             options $.lower(bool) (implements feature #1185)
   
   2021-01-11  moko
   
           * src/classes/date.C: ^date::today(N) by gz@ (implements feature
             #1192)
   
           * tests/: 411.html, results/411.processed: test for ^date::today(N)
             added (related to feature #1192)
   
   2021-01-05  moko
   
           * tests/: 270.html, results/270.processed: test modified to work
             under Windows
   
           * tests/: 390.html, 395.html, results/395.processed: tests updated
             4 windows
   
           * tests/: 410.html, results/410.processed: test for
             $CLASS-GETTER-PROTECTED(false) added
   
   2021-01-04  moko
   
           * tests/: 409.html, results/409.processed, results/auto.p: test for
             $MAIN:LOCALS(true) added
   
 2021-01-03  moko  2021-01-03  moko
   
         * src/: main/pa_http.C, main/pa_request.C, types/pa_vclass.C,          * src/: main/pa_http.C, main/pa_request.C, types/pa_vclass.C,

Removed from v.1.154  
changed lines
  Added in v.1.207


E-mail: