Diff for /parser3/ChangeLog between versions 1.121 and 1.206

version 1.121, 2019/09/16 02:05:41 version 1.206, 2024/11/18 02:05:14
Line 1 Line 1
   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
   
           * src/: main/pa_http.C, main/pa_request.C, types/pa_vclass.C,
             types/pa_vclass.h, types/pa_vstateless_class.C,
             types/pa_vstateless_class.h: @conf[] +CLASS-GETTER-PROTECTED,
             +LOCALS. $main -> $MAIN in exception texts (implements feature
             #1207)
   
   2021-01-02  moko
   
           * etc/auto.p.in: minor
   
           * src/main/pa_request.C: sending headers only after opening file to
             allow error reporting if file was not opened (foreign group,
             etc).
   
   2020-12-31  moko
   
           * src/: include/pa_request.h, main/pa_request.C,
             targets/cgi/parser3.C: ^httpd-main[] -> ^httpd:main[]
   
           * src/: classes/reflection.C, include/pa_request.h, main/execute.C,
             main/pa_request.C: get_class_ref added and used
   
           * etc/auto.p.in: @CLASS httpd added
   
           * etc/auto.p.in: @auto[] is now first
   
   2020-12-30  moko
   
           * tests/: 408.html, results/408.processed: test for bug #1166
             (windows only) added
   
           * src/main/pa_common.C: create_dir_for_file should not create dir
             for trailing / (fixes bug #1166)
   
           * tests/: 341.html, results/341.processed: tests for
             ^nameless_table.hash[] added (related to feature #1138)
   
           * src/classes/table.C: ^nameless_table.hash[0;1] now supported
             (implements feature #1138), extra fields in named tables no
             longer ignored (implements feature #1138)
   
           * tests/results/390.processed: updated after exception text change
   
   2020-12-29  moko
   
           * tests/: 407.html, results/407.processed: +$._default check
   
           * src/classes/hash.C: keep $_default in ^hash.reverse[]
   
           * tests/: 407.html, results/407.processed: test for ^hash.select[]
             and ^hash.reverse[] added (releated to feature #1172)
   
           * src/classes/hash.C:
             ^hash.select[key;value](bool-condition)[options hash] +
             ^hash.reverse[] added (implements feature #1172)
   
           * src/types/pa_vtable.h: warning war
   
           * src/include/pa_config_fixed.h: win32 fix
   
   2020-12-27  moko
   
           * tests/: 406.html, results/406.processed: test results updated
   
           * src/: classes/table.C, main/pa_request.C, types/pa_vmail.C,
             types/pa_vmemcached.C: fine tuning in ^table.rename[], minor
             spelling
   
   2020-12-26  moko
   
           * tests/: 406.html, results/406.processed: tests for
             ^table.rename[] added (related to feature #1148)
   
           * src/: classes/table.C, include/pa_table.h, main/pa_table.C:
             ^table.rename[column name from;column name to], ^table.rename[
             $.[column name from][column name to] ... ] added (implements
             feature #1148)
   
   2020-12-25  moko
   
           * src/: include/pa_request_info.h, targets/cgi/parser3.C:
             request_info now on stack to avoid yet another THREAD_LOCAL
             memory deallocation issue (now with cookies), explained in #1203
   
           * src/types/pa_vcookie.C: fields should be inited
   
   2020-12-24  moko
   
           * src/include/pa_stylesheet_connection.h: looks like
             xsltFreeStylesheet leads to memory double-free. If so, it's for
             sure libxml bug, but we have GC anyway, so we just remove this
             call and see...
   
             * thread #1, name = 'parser.parser3.cgi', stop reason = signal
             SIGABRT   * frame #0: 0x0000000801ab50fa libc.so.7`__sys_thr_kill
             + 10     frame #2: 0x0000000801ab5039 libc.so.7`abort at
             abort.c:65:8     frame #3: 0x00000000004da663
             parser.parser3.cgi`GC_freehblk(hbp=<unavailable>) at
             allchblk.c:878:9     frame #4: 0x00000000004cb8c4
             parser.parser3.cgi`GC_free(p=0x0000000808b34000) at
             malloc.c:617:9     frame #5: 0x0000000000577f0c
             parser.parser3.cgi`xmlHashFree(table=0x0000000806991a80,
             f=<unavailable>) at hash.c:356:2     frame #6: 0x000000000051a7c2
             parser.parser3.cgi`xsltFreeTemplateHashes + 50     frame #7:
             0x000000000050cfac parser.parser3.cgi`xsltFreeStylesheet + 124
              frame #8: 0x000000000050d35c
             parser.parser3.cgi`xsltFreeStylesheetList + 44     frame #9:
             0x000000000050d1fa parser.parser3.cgi`xsltFreeStylesheet + 714
              frame #10: 0x00000000004436e5
             parser.parser3.cgi`Stylesheet_manager::maybe_expire_cache()
             [inlined]
             Stylesheet_connection::disconnect(this=0x0000000804676c80) at
             pa_stylesheet_connection.h:62:3
   
   2020-12-23  moko
   
           * src/classes/image.C: ^image::measure[; $.video() ] option added
   
           * tests/: 395.html, 395_dir/4.mp4, results/395.processed: test
             ^image::measure[; $.video(true) ] added
   
           * src/main/pa_exec.C: not cleared automatically in multithreaded
             httpd mode for unknown reasons
   
   2020-12-22  moko
   
           * src/targets/cgi/parser3.C: added by PAF in rev 201 to "write to
             error_log uri of currently processed document", but never used
             and conflicts with how libgc stops threads on FreeBSD (#define
             SIG_SUSPEND SIGUSR1), thus removed.
   
   2020-12-21  moko
   
           * src/main/pa_request.C: +comment
   
   2020-12-20  moko
   
           * src/: include/pa_common.h, include/pa_memory.h, main/pa_common.C:
             it is more safe to have versions of pa_strdup with one and two
             arguments, as helper_length=0 not always mean that strlen()
             should be called, but means zero.
   
           * src/targets/isapi/parser3isapi.C: minor
   
           * src/main/pa_http.C: +valid_http_method
   
           * src/: include/pa_http.h, main/pa_http.C,
             targets/cgi/pa_sapi_info.h: SERVER_PORT now available
   
   2020-12-17  moko
   
           * tests/: 405.html, results/405.processed: test for split by regex
             added (related to feature #1160)
   
           * src/classes/string.C: split by regex implemented (feature #1160)
   
           * src/classes/string.C: minor
   
           * tests/: 404.html, results/404.processed: test for whitespace
             string is now OK for table argument (related to feature #1169)
   
           * src/: classes/image.C, classes/string.C, classes/table.C,
             types/pa_vmethod_frame.C: whitespace string is now OK for table
             argument (as with hash) (implements feature #1169)
   
           * src/classes/op.C: Exception.add_comment used to avoid MAX_LENGTH
             limit for comment (fixes bug #1102)
   
           * src/targets/cgi/parser3.C: +HAVE_TLS check
   
           * src/main/pa_http.C: no HAVE_TLS -> no multithreads mode
   
           * src/include/pa_config_includes.h: HAVE_TLS used
   
           * configure.ac: +TLS check
   
           * src/main/pa_http.C: content logging added
   
           * src/targets/cgi/: pa_sapi_info.h, parser3.C:
             clear_response_headers added
   
   2020-12-16  moko
   
           * buildall: as we now use threads, libatomic_ops still required for
             some OS.
   
           * src/main/pa_request.C: whitespace
   
           * src/: include/pa_request.h, main/pa_request.C:
             Request::Exception_trace::table extracted and used
   
           * src/main/pa_request.C: moving output_result call outside of try
             as network exceptions should not be handled by parser code
   
           * src/: include/pa_http.h, main/pa_http.C: HTTPD_DEBUG added for
             logging network exchange
   
           * src/targets/cgi/: pa_sapi_info.h, parser3.C: do not send error
             via network if it was network write error.
   
           * src/targets/cgi/parser3.C: log -> pa_log
   
           * src/targets/cgi/parser3.C: pa_get_thread_id() used for logging
   
           * src/main/pa_threads.C: getpid() if no gettid() found
   
           * src/: include/pa_http.h, main/pa_http.C, targets/cgi/parser3.C:
             we need to ignore "void" connections from browsers (browsers open
             connections in advance and they will be empty if user does not
             request more pages)
   
   2020-12-15  moko
   
           * src/targets/cgi/parser3.C: avoid previous uri in logs
   
           * src/targets/cgi/: pa_sapi_info.h, parser3.C: global ::request and
             RequestController not needed in httpd mode
   
           * src/: 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_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
   
           * src/main/pa_request.C: old compilers support
   
           * tests/: 362.html, results/362.processed: test updated after
             changes after upgrade to libxml2-2.9.9 were made (related to bug
             #1108)
   
           * src/: classes/xdoc.C, types/pa_vxdoc.h: xsltStylesheet_auto_ptr
             removed, as xsltFreeStylesheet has side effects on original doc.
             compiled stylesheet no longer cached as with libxml2-2.9.9 it was
             not updated after xdoc modification (part 3 of test 362).
             (related to bug #1108)
   
           * src/targets/isapi/parser3isapi.C: +pa_strcat
   
           * src/: classes/memory.C, include/pa_memory.h,
             targets/apache/mod_parser3_core.C, targets/isapi/parser3isapi.C:
             PA_GC_GCOLLECT used
   
           * src/include/pa_memory.h: +PA_GC_COLLECT
   
           * src/targets/cgi/parser3.C: msvs support fixes
   
           * src/lib/gc/include/gc.h: more cleanup
   
           * src/: include/pa_threads.h, main/pa_threads.C: win32 fixes
   
           * src/: include/pa_http.h, main/pa_http.C, main/pa_request.C,
             targets/cgi/parser3.C: $main:HTTPD.mode implemented
   
           * src/include/pa_config_includes.h: +HAVE_PTHREAD_H
   
           * configure.ac: pthread.h added to checked headers
   
           * src/classes/table.C: string stream is back :)
   
           * src/classes/memory.C: GC_generate_random_backtrace no longer
             exists
   
           * src/main/pa_globals.C: GC_dont_gc replaced
   
           * src/lib/gc/include/gc.h: major cleanup, only used functions are
             left to simplify adding new functions.  depricated GC_dont_gc
             replaced with GC_disable and GC_enable calls.
   
           * src/lib/cord/: cordxtra.c, include/cord.h: cleanup:
             CORD_from_file* not used and thus removed
   
           * src/lib/gc/include/gc_allocator.h: minor cleanup
   
   2020-12-14  moko
   
           * src/classes/: curl.C, memory.C, table.C: every TLS should be
             referenced elsewhere, or GC will collect it.
   
           * src/: include/pa_xml_io.h, main/pa_stylesheet_connection.C,
             main/pa_xml_io.C: bugfix: TLS variables should be referenced
             elsewhere, or GC will collect them (and we'll get GPF in
             multithreaded enviroment).  May be it can be also fixed by some
             GC call, not sure. But this fix costs nothing (but hours of
             debugging to find the issue :).
   
   2020-12-11  moko
   
           * configure.ac: gettid() check added
   
           * src/main/pa_threads.C: HAVE_GETTID used
   
           * src/include/pa_config_auto.h.in: +HAVE_GETTID
   
           * src/: include/pa_threads.h, main/pa_threads.C: now unified
             version for isapi/cgi/apache
   
           * buildall: threads are now required.
   
           * src/: targets/apache/ApacheModuleParser3Core.vcproj,
             targets/cgi/parser3.vcproj, targets/isapi/parser3isapi.vcproj,
             main/main.vcproj: pa_threads.C moved to main
   
           * src/targets/: apache/pa_threads.C, cgi/pa_threads.C,
             isapi/pa_threads.C: pa_threads.C moved to main
   
           * src/: main/Makefile.am, targets/cgi/Makefile.am,
             targets/apache/Makefile.am: pa_threads.C moved to main
   
           * src/classes/xdoc.C: Stylesheet_connection_ptr changed a bit
   
           * src/: include/pa_stylesheet_connection.h,
             main/pa_stylesheet_manager.C: Stylesheet_connection_ptr simplfied
             and weird GPF in multithreaded httpd is gone
   
           * src/include/: pa_stylesheet_connection.h,
             pa_sql_driver_manager.h: whitespace
   
           * src/main/pa_sql_driver_manager.C: timeout 60 sec -> 10 sec
   
           * src/: include/pa_sql_connection.h, main/pa_sql_driver_manager.C,
             main/pa_stylesheet_manager.C: whitespace, warning war
   
           * src/: include/pa_threads.h, targets/apache/pa_threads.C,
             targets/cgi/pa_threads.C, targets/isapi/pa_threads.C:
             parser_multithreaded never used
   
           * src/main/pa_http.C: no ALARM in MULTITHREADED httpd server mode
   
   2020-12-10  moko
   
           * src/: include/pa_config_includes.h, include/pa_http.h,
             main/pa_http.C, targets/cgi/parser3.C: initial support for
             MULTITHREADED and PARALLEL httpd server modes
   
           * src/main/pa_globals.C: GC_java_finalization is depricated
   
   2020-12-09  moko
   
           * etc/auto.p.in: + @httpd-main
   
           * src/: include/pa_common.h, main/pa_request.C,
             targets/cgi/pa_sapi_info.h: Range Requests (rfc7233) now really
             work
   
           * src/: include/pa_common.h, main/pa_common.C, main/pa_request.C:
             slow file_read_binary no longer used, send_range added
   
   2020-12-08  moko
   
           * src/main/pa_request.C: >4Gb support
   
           * src/targets/cgi/parser3.C: msvc warning war
   
           * src/: include/pa_config_includes.h, main/pa_http.C,
             main/pa_request.C: msvc warnings war
   
           * src/classes/image.C: warning war
   
           * src/classes/table.C: MSVC warning war
   
           * src/targets/cgi/parser3.C: msvc warnings war
   
           * src/targets/apache/mod_parser3_core.C: SYSTEM_CONFIG_FILE support
             added
   
   2020-12-07  moko
   
           * configure.ac: SYSTEM_LOG_FILE no longer required as cheat used to
             avoid logging beside system-wide auto.p
   
           * src/targets/cgi/parser3.C: SYSTEM_CONFIG_FILE used
   
           * configure, configure.ac, src/include/pa_config_auto.h.in:
             configure options added:
   
             --with-system-cfg=FILE  to specify system-wide auto.p
             --with-system-log=FILE  to specify system-wide parser3.log
   
           * Makefile.am: bin no longer exists
   
           * configure, configure.ac: auto.p moved to etc to simplify debian
             package
   
           * buildall: auto.p and parser3.charsets moved to their default
             location after install
   
           * etc/: Makefile.am, auto.p.in: auto.p moved to etc directory
   
           * aclocal.m4, configure: automake 1.15 -> 1.16.1
   
           * src/targets/cgi/parser3.C: locate_config call returned to
             original place as it requires pa_thread_request() under Windows
   
           * src/targets/cgi/parser3.C: renaming
   
   2020-12-06  moko
   
           * src/: main/pa_globals.C, targets/cgi/parser3.C: thread request
             check added
   
   2020-12-04  moko
   
           * src/: classes/image.C, include/pa_common.h, main/pa_common.C,
             main/pa_request.C: unified uint64_t lseek implemented to support
             >4Gb files under x86, including Windows
   
   2020-12-02  moko
   
           * src/main/pa_common.C: minor bugfix: $.limit() should be checked
             with max_file_size
   
           * src/: include/pa_common.h, main/pa_common.C, main/pa_request.C:
             support for processing files sized >4Gb on 32 bit planforms
   
           * tests/399.html: file moved
   
           * src/: include/pa_string.h, main/pa_string.C: long long -> int64_t
   
           * src/targets/cgi/pa_sapi_info.h: warning war
   
           * src/: main/pa_http.C, targets/isapi/parser3isapi.C: windows
             warning war
   
   2020-12-01  moko
   
           * src/classes/image.C: mp4 extended size (>4Gb) support added
   
           * src/classes/image.C: for "size not found" exception to be shown
             if size not found until eof
   
           * src/classes/image.C: long -> off_t (which is 64 bits even on 32
             bit linux)
   
           * src/classes/image.C: ^image::measure[] now supports mp4 (feature
             #1188)
   
   2020-11-30  moko
   
           * src/classes/image.C: definitions moved closer to code
   
           * tests/: 395.bmp, 395.html, 396.html, 396.tiff, 395_dir/1.bmp,
             395_dir/2.tiff, 395_dir/3_VP8.webp, 395_dir/3_VP8L.webp,
             395_dir/3_VP8X.webp, results/395.processed,
             results/396.processed: tests for ^image::measure[] .webp support
             added, all image files moved into one directory (related to
             feature #1188)
   
           * src/classes/image.C: ^image::measure[] now supports webp (feature
             #1188)
   
   2020-11-29  moko
   
           * src/main/pa_request.C: CONF_OPTION added to unify @conf options
             processing, unnessesary defines removed
   
   2020-11-24  moko
   
           * tests/results/: 099.processed, 100.processed, 205.processed,
             309.processed, 310.processed: Content-Disposition: inline
             returned
   
           * tests/: 099.html, 237.html, 403.html, outputs/403.processed,
             results/auto.p: test for $response:body[ $.file[<file>] $.name[]
             ] added (related to bug #1204)
   
           * src/main/pa_request.C: $response:body[ $file[<file>.ext] $.name[]
             ] supported to avoid Content-Disposition: inline;
             filename="<file>.ext" but still set Content-Type for ext (related
             to bug #1204)
   
   2020-11-22  moko
   
           * src/: include/pa_common.h, main/pa_common.C, main/pa_request.C,
             types/pa_vfile.C: pa_filename added to avoid useless rsplit
   
           * src/main/pa_request.C: content_disposition_inline returned.
   
   2020-11-17  moko
   
           * src/main/pa_request.C: empty main method name support
   
           * src/: main/pa_common.C, targets/cgi/parser3.C: httpd
             config_handler added, stdout flush added.
   
   2020-11-16  moko
   
           * src/targets/cgi/parser3.C: filespec_4log added, pa_strcat used.
   
           * tests/results/: 099.processed, 205.processed, 237.processed,
             309.processed, 310.processed: Content-Disposition: inline is not
             required and should not contain filename="<name>"
   
           * src/: include/pa_common.h, main/pa_common.C, main/pa_exception.C,
             targets/apache/mod_parser3_core.C, targets/cgi/parser3.C,
             targets/isapi/parser3isapi.C: pa_strcat implemented and used
   
   2020-11-14  moko
   
           * src/targets/cgi/parser3.C: spelling
   
           * src/targets/cgi/parser3.C: renaming
   
           * src/targets/cgi/parser3.C: args_skip removed, locate_config
             relocated
   
           * src/targets/cgi/parser3.C: execution_canceled was for sigpipe
             before request processing, which is weired
   
   2020-11-13  moko
   
           * src/main/pa_http.C: pa_recv added with timeout support, thus read
             copied in httpd.
   
   2020-11-12  moko
   
           * src/main/pa_http.C: ALARM code unified to be used in httpd
   
           * src/: include/pa_request.h, main/pa_request.C,
             targets/cgi/pa_sapi_info.h: pa_httpd_timeout added
   
           * src/main/pa_http.C: URI validation added
   
           * src/targets/cgi/parser3.C: filespec_to_process now variable,
             can't be empty but can be null.  httpd-main is now main method
             name for httpd mode
   
   2020-11-11  moko
   
           * src/main/pa_request.C: path_translated can be null in httpd mode
   
           * src/: classes/curl.C, classes/file.C, classes/hashfile.C,
             classes/image.C, classes/op.C, classes/string.C, classes/table.C,
             classes/xdoc.C, include/pa_request.h, main/execute.C,
             main/pa_request.C: r.absolute -> r.full_disk_path
   
           * src/targets/cgi/parser3.C: if filename to process is not
             specified, auto.p should be present.
   
   2020-11-03  moko
   
           * src/: classes/op.C, include/pa_request.h: unused argument removed
   
           * src/main/pa_request.C: content_disposition_inline is the default,
             not required.
   
   2020-10-29  moko
   
           * src/: classes/op.C, include/pa_request.h, main/pa_request.C:
             ^use[file; $.main(true) ] implemented for auto.p processing and
             path_translated changing to correct relative files path
             calculation in httpd mode
   
           * src/: include/pa_request.h, main/pa_request.C:
             fail_on_read_problem removed, as it allways true, as if should
             be.
   
           * src/: include/pa_request.h, main/pa_request.C,
             targets/apache/mod_parser3_core.C, targets/cgi/parser3.C,
             targets/isapi/parser3isapi.C: clearing config_filespec when
             config was not found, thus flag not required and removed.
   
   2020-10-28  moko
   
           * tests/: 402.html, results/402.processed: error reporting test
   
           * src/main/execute.C: better error reporting when
             $result[^hash::create[]] in @main.
   
           * src/main/: execute.C, pa_request.C: frame.result() should be used
             + minor optimization
   
           * src/: include/pa_request.h, main/execute.C, main/pa_request.C,
             main/pa_xml_io.C: execute_*_method simplified and unified
   
   2020-10-27  moko
   
           * tests/: 306.html, results/306.processed: a bit more testing. :)
   
           * src/: main/execute.C, types/pa_value.h, types/pa_vclass.C,
             types/pa_vclass.h, types/pa_vconsole.h, types/pa_vcookie.C,
             types/pa_vdate.C, types/pa_venv.C, types/pa_vform.C,
             types/pa_vhash.h, types/pa_vimage.C, types/pa_vmemcached.C,
             types/pa_vmethod_frame.h, types/pa_vobject.C,
             types/pa_vrequest.C, types/pa_vresponse.C, types/pa_vtable.C,
             types/pa_vxnode.C: optimization: PUT_ELEMENT_REPLACED_ELEMENT no
             longer used in object-prototype mode
   
           * 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, types/pa_venv.C, types/pa_venv.h,
             types/pa_vform.C, types/pa_vform.h: + $env:name[value] and
             $form:name[value] features
   
   2020-10-18  moko
   
           * src/targets/cgi/Makefile.am: + pa_sapi_info.h
   
   2020-10-15  moko
   
           * src/main/pa_http.C: url no longer needed as
             ALTER_EXCEPTION_SOURCE is used
   
           * src/: classes/curl.C, include/pa_common.h, main/pa_common.C,
             main/pa_http.C: check_file_size filespec is now optional
   
           * src/: classes/curl.C, include/pa_exception.h,
             main/pa_exception.C, main/pa_http.C: ALTER_EXCEPTION_SOURCE and
             ALTER_EXCEPTION_COMMENT added for better error reporting
   
           * tests/: 379-curl.html, 379.html, results/223-curl.processed,
             results/346-curl.processed, results/379-curl.processed,
             results/379.processed: test results updated as load now provides
             better error reporting + curl responses updated
   
   2020-10-14  moko
   
           * src/: classes/date.C, include/pa_string.h, main/pa_http.C,
             main/pa_string.C, targets/apache/mod_parser3_core.C,
             targets/cgi/parser3.C: pa_atoi / pa_atoui / pa_atoul usage
             checked. 10 is now default base, no hex autodetect by default
   
           * src/: include/pa_http.h, main/pa_http.C, targets/cgi/parser3.C:
             connection socket closing in destructor + accept exception
             handling
   
           * src/targets/cgi/parser3.C: warning war
   
           * src/: include/pa_http.h, include/pa_sapi.h, main/pa_http.C,
             main/pa_request.C, targets/apache/mod_parser3_core.C,
             targets/cgi/pa_sapi_info.h, targets/cgi/parser3.C: global try
             exception handling unified
   
   2020-10-13  moko
   
           * src/targets/isapi/parser3isapi.C: reverted to atoi to avoid hex
             autodetection
   
           * src/targets/apache/mod_parser3_core.C: reverted to atoi
   
           * src/: main/pa_http.C, targets/cgi/pa_sapi_info.h: warning war
   
           * src/main/pa_http.C: warning war
   
   2020-10-12  moko
   
           * src/: main/pa_request.C, targets/apache/mod_parser3_core.C,
             targets/cgi/parser3.C, targets/isapi/parser3isapi.C: excaption in
             unhandled exception code optimization
   
           * src/targets/cgi/parser3.C: request_info now global variable
   
           * src/main/pa_http.C: http_read_response moved to HTTP_response
             class
   
           * src/: include/pa_http.h, main/pa_http.C,
             targets/cgi/pa_sapi_info.h: read_post implemented
   
           * src/: include/pa_http.h, main/pa_http.C, targets/cgi/parser3.C:
             [host:]port syntax support in httpd mode
   
           * src/: include/pa_http.h, targets/cgi/pa_sapi_info.h,
             targets/cgi/parser3.C: populate_env added
   
           * src/include/pa_hash.h: to make get(char *) compiling in
             HashStringString
   
   2020-10-10  moko
   
           * src/: classes/curl.C, include/pa_http.h, main/pa_http.C,
             targets/cgi/pa_sapi_info.h: ResponseHeaders -> HTTP_Headers
   
           * src/: include/pa_http.h, include/pa_request_info.h,
             main/pa_http.C, main/pa_string.C,
             targets/apache/mod_parser3_core.C, targets/cgi/pa_sapi_info.h,
             targets/cgi/parser3.C, targets/isapi/parser3isapi.C,
             types/pa_vrequest.C: initial httpd mode implementation
   
   2020-10-04  moko
   
           * src/targets/cgi/parser3.C: options together
   
   2020-09-30  moko
   
           * src/main/pa_http.C: renamed
   
   2020-08-14  moko
   
           * configure, configure.ac, parser3.sln, src/lib/Makefile.am,
             src/targets/cgi/Makefile.am: no httpd as separate library
   
   2020-08-13  moko
   
           * src/targets/cgi/parser3.C: SAPI::die used in exception in
             unhandled exception handler to report 500 instead of 200 it was
             before.
   
           * src/targets/apache/mod_parser3_core.C: minor cleanup
   
           * src/: include/pa_sapi.h, main/untaint.C,
             targets/apache/mod_parser3_core.C, targets/cgi/parser3.C,
             targets/isapi/parser3isapi.C: SAPI::abort was used only once,
             thus replaced with SAPI::die and removed
   
           * src/targets/: apache/mod_parser3_core.C, isapi/parser3isapi.C,
             cgi/parser3.C: whitespace
   
           * src/targets/cgi/parser3.C: locate_config() extracted, whitespace.
   
   2020-08-12  moko
   
           * src/targets/cgi/parser3.C: duplicate info in signal logging
             removed, whitespace was: SIGPIPE received while executing code.
             uri=/_tmp.html, method=GET, cl=0 [uri=/_tmp.html, method=GET,
             cl=0]
   
           * parser3.sln: + httpd.vcproj
   
   2020-08-11  moko
   
           * src/targets/cgi/Makefile.am: +libhttpd
   
           * configure.ac, src/lib/Makefile.am: +libhttpd
   
   2020-07-13  moko
   
           * tests/: 401.html, results/401.processed: test for hash key does
             not keep language, but tainted in foreach.
   
   2020-07-01  moko
   
           * tests/: 235.html, results/235.processed: test result updated as
             messages before attachments implemented (feature #1176)
   
   2020-06-27  moko
   
           * tests/: 400.html, results/400.processed: test updated to check
             ^return{code}
   
           * src/classes/op.C: bugfix: ^return{code} or ^return(expre+ssion)
             fixed
   
   2020-06-26  moko
   
           * tests/: 400.html, results/400.processed: test for OPTIMIZE_RESULT
             added (related to https://www.parser.ru/forum/?id=85319)
   
           * src/types/pa_vmethod_frame.h: bugfix: OPTIMIZE_RESULT failed,
             when $result assignment was last statement in the method
             (https://www.parser.ru/forum/?id=85319)
   
   2020-05-23  moko
   
           * src/: classes/mail.C, types/pa_vmail.C, types/pa_vmail.h:
             whitespace, unused level removed
   
   2020-05-19  moko
   
           * src/types/pa_vmail.C: whitespace
   
           * src/types/pa_vmail.C: files should be processed last (related to
             feature #1176)
   
   2020-05-12  moko
   
           * src/include/pa_memory.h: no new/delete checks for for FreeBSD1X.X
             due to https://bugs.llvm.org/show_bug.cgi?id=40161 bug
   
           * configure.ac: FreeBSD1X.X check added to avoid
             https://bugs.llvm.org/show_bug.cgi?id=40161 bug.
   
   2020-02-26  moko
   
           * src/main/pa_common.C: entry_exists -> entry_ifdir to fix Windows
             compilation issue (related to bug #1201)
   
           * src/main/pa_common.C: entry_readable -> entry_exists,
             undocumented access(fname, R_OK) call removed (fixes bug #1201)
             -f and -d now works under Windows in UTF-8 with Russian
             filenames.
   
           * src/types/pa_vmail.C: g_mime_stream_pipe_new used by gmime author
             advice (related to feature #1199)
   
   2020-02-25  moko
   
           * buildall: --silent removed
   
           * configure.ac: gmime-3.0 support
   
           * buildall: --with-system-mailreceive option added to build with
             system libgmime
   
           * src/types/pa_vmail.C: avoiding
             https://github.com/jstedfast/gmime/issues/83 "feature" (related
             to feature #1199)
   
   2020-02-18  moko
   
           * src/classes/op.C: windows x64 debug mode compile fix
   
           * src/main/pa_globals.C: no longer required due to -MD -> -MT
             change (releated to feature #1200)
   
           * src/: classes/classes.vcproj, lib/cord/cord.vcproj,
             lib/gd/gd.vcproj, lib/json/json.vcproj, lib/ltdl/ltdl.vcproj,
             lib/md5/md5.vcproj, lib/memcached/memcached.vcproj,
             lib/pcre/pcre_internal.vcproj, lib/punycode/punycode.vcproj,
             lib/sdbm/sdbm.vcproj, lib/smtp/smtp.vcproj, main/main.vcproj,
             targets/apache/ApacheModuleParser3.vcproj,
             targets/apache/ApacheModuleParser3Core.vcproj,
             targets/cgi/parser3.vcproj, targets/isapi/parser3isapi.vcproj,
             types/types.vcproj: -MD -> -MT to remove msvcp71.dll/etc
             dependency (related to feature #1200)
   
   2020-02-12  moko
   
           * src/types/pa_vmail.C: minimize diff
   
           * src/types/pa_vmail.C: libgmime 3.X support (implements feature
             #1199)
   
   2020-01-18  moko
   
           * tests/: 388-sql.html, results/388-sql.processed: +postprocess
   
   2019-12-28  moko
   
           * src/targets/cgi/parser3.C: avoid empty ?
   
   2019-12-27  moko
   
           * src/targets/cgi/parser3.C: PATH_INFO check in reinventing
             DOCUMENT_ROOT (related to feature #1164)
   
           * src/targets/cgi/parser3.C: IIS5 support removed to simplify
             fcgiwrap setup (implements feature #1164)
   
           * src/targets/cgi/parser3.C: real_parser_handler logic simplified,
             but no issues found (related to feature #1164)
   
           * src/targets/cgi/parser3.C: actualized
   
   2019-12-26  moko
   
           * src/targets/apache/ApacheModuleParser3.vcproj: apache stop/start
             removed
   
           * src/targets/isapi/parser3isapi.vcproj: inetinfo stop/start
             removed
   
           * src/: lib/gc/include/gc.h, main/pa_globals.C: As we log
             allocation errors, we don't want default gc warnings (without
             timestamp and URI).
   
           * src/: classes/memory.C, main/pa_globals.C,
             targets/apache/mod_parser3_core.C, targets/cgi/parser3.C,
             targets/isapi/parser3isapi.C: GC_dont_gc=1 moved to
             pa_globals_init
   
           * src/main/pa_globals.C: setup_hex_value() removed, static array
             initialization used (optimization)
   
           * src/: main/pa_globals.C, targets/apache/mod_parser3_core.C,
             targets/cgi/parser3.C, targets/isapi/parser3isapi.C:
             pa_socks_init/pa_socks_done moved inside pa_globals_init
             (optimization)
   
   2019-12-09  moko
   
           * src/include/pa_config_fixed.h: warning war
   
   2019-12-08  moko
   
           * src/main/main.vcproj: compile.y - ExcludedFromBuild, as we
             process grammar under Unix.
   
   2019-12-07  moko
   
           * tests/389.html: For Windows XP. :)
   
           * tests/388-sql.html: Windows compatibility added
   
   2019-12-06  moko
   
           * src/targets/cgi/parser3.C: warning war
   
           * src/main/pa_string.C: + COMPILE_ASSERT(sizeof(String::Languages)
             == sizeof(CORD)) to avoid aligning bugs in future
   
           * src/: include/pa_config_fixed.h, main/pa_globals.C: simplified to
             XML_STATIC
   
           * src/include/pa_request.h: StackItem() not required
   
           * src/include/pa_stack.h: warning war
   
           * src/include/pa_config_includes.h: GCC warning silenced
   
           * src/include/pa_memory.h: warning war: the program should also
             define 'void operator delete [](void*, std::size_t)'
             [-Wsized-deallocation]
   
           * src/types/: pa_vregex.h, pa_vtable.h: warning war
   
           * src/classes/string.C: not reqired cast removed
   
           * src/classes/string.C: not reqired cast removed
   
   2019-12-05  moko
   
           * src/lib/sdbm/pa_file_io.C: warning war
   
           * src/include/pa_string.h: bugfix for Windows x64: enum Language ->
             enum Language : size_t - required for VS2015+ to make
             sizeof(Languages::opt) == sizeof(CORD), will be 16 byte under x64
             without it (related to feature #1198)
   
   2019-12-04  moko
   
           * src/main/pa_base64.C: unsigned char -> uchar
   
           * src/main/: main.vcproj, pa_globals.C: libpcre now linked same way
             as other libs
   
           * src/include/pa_version.h: +amd64
   
   2019-12-03  moko
   
           * src/: classes/classes.vcproj, types/types.vcproj: sync debug with
             release
   
           * src/include/pa_config_includes.h: warning war
   
           * src/classes/image.C: warning war
   
           * src/main/pa_globals.C: x64 libs support
   
           * src/include/pa_config_includes.h: warning war
   
           * src/types/pa_method.h: warning war
   
   2019-11-28  moko
   
           * src/classes/math.C: vs2003 compatibility + warning war
   
           * buildall: libxslt-1.1.29 -> libxslt-1.1.34, libxml2-2.9.4 ->
             libxml2-2.9.9 (related to feature #1136)
   
           * src/classes/xdoc.C: xmlHashScanner declaration changed, using
             typecast for more compatibility (related to feature #1136)
   
           * buildall: --direct-download option added, gc-7.6.2 -> gc-8.0.4 +
             libatomic no longer required, pcre-8.40 -> pcre-8.43 (related to
             feature #1136)
   
   2019-11-26  moko
   
           * src/main/: compile_tools.C, compile_tools.h: invalid assert
             removed (it was failing in $$var case), condition added
   
   2019-11-25  moko
   
           * tests/: 397.html, 399.html, results/141.processed,
             results/399.processed: base64 options tested
   
           * src/: classes/math.C, main/pa_http.C: base64 options used
   
           * src/main/pa_base64.C: base64 encode rewritten, base64 options
             implemented (feature #986)
   
           * src/main/pa_cache_managers.C: whitespace
   
           * tests/: 397.html, 399.html, results/399.processed: tests for
             ^base64 encode options added (related to feature #986)
   
           * src/: classes/file.C, include/pa_base64.h, main/pa_base64.C:
             pa_base64_encode(file) removed - more memory, but faster and less
             code (related fo feature #986)
   
   2019-11-24  moko
   
           * tests/: 155.html, results/155.processed: limit and offset in
             ^table::load[] now supported, thus test added
   
           * src/: classes/file.C, classes/table.C, include/pa_common.h,
             main/pa_common.C: optimization: offset and limit options parsing
             moved inside file_load.
   
   2019-11-23  moko
   
           * src/: classes/file.C, classes/op.C, include/pa_common.h,
             main/pa_common.C, main/pa_request.C, types/pa_vform.C:
             optimization: file_read replaced with simplified file_read_binary
   
           * src/: classes/op.C, main/pa_common.C, main/pa_request.C,
             types/pa_vform.C: whitespace
   
           * src/: include/pa_common.h, main/pa_common.C: never used params
             removed
   
   2019-11-21  moko
   
           * tests/: 193.html, results/193.processed, results/389.processed:
             test results updated as now base64 does not discard tail without
             padding (related to feature #986)
   
   2019-11-20  moko
   
           * src/: classes/file.C, classes/string.C, include/pa_base64.h,
             main/pa_base64.C: optimization: void pa_base64_decode -> size_t
             pa_base64_decode (related to feature #986)
   
           * tests/398.html: tests for base64 decode added (related to feature
             #986)
   
           * src/main/pa_base64.C: base64_decode rewritten - padding option
             support, padding inside base 64 supported (related to feature
             #096)
   
   2019-11-19  moko
   
           * src/include/pa_memory.h: CHECK_DELETE_USAGE tested to work under
             FreeBSD 12
   
   2019-11-16  moko
   
           * src/main/pa_base64.C: base64_decode converted to C++, url-safe
             support added, step support removed (related to #986)
   
   2019-11-15  moko
   
           * src/classes/math.C: using log since log2 is not present on
             FreeBSD < 8.4 (related to feature #1177)
   
           * src/: include/pa_base64.h, main/pa_base64.C: whitespace,
             pa_base64_size extracted and used for files as well (related to
             feature 986)
   
   2019-11-14  moko
   
           * tests/: 397.html, results/397.processed: + content check
   
           * tests/: 141.html, results/141.processed: make test resuls more
             readable
   
           * tests/: 397.html, results/193.processed, results/397.processed:
             test results updated after \x00 character was disabled in
             math:convert string mode (related to feature #1177)
   
           * src/classes/: math.C, string.C: \\x00 character disabled while
             converting to string (as in base64, related to feature #1177)
   
           * src/classes/file.C: more correct arguments separation
   
           * src/: classes/file.C, classes/math.C, classes/string.C,
             include/pa_base64.h, include/pa_common.h, main/pa_base64.C,
             main/pa_http.C, types/pa_vfile.C, types/pa_vmail.C: base64
             options added, but not yet implemented (related to feature #986)
   
           * src/classes/math.C: whitespace
   
   2019-11-13  moko
   
           * tests/: 397.html, results/397.processed: +tainting test (related
             to feature #1177)
   
           * src/classes/math.C: as we now produce not only digits, result
             should be tainted (related to feature #1177)
   
           * src/main/pa_base64.C: whitespace
   
           * src/: include/Makefile.am, main/Makefile.am, main/main.vcproj,
             include/pa_base64.h, include/pa_common.h, main/pa_base64.C,
             main/pa_common.C: pa_base64.h and pa_base64.C added, base64
             implementation moved from pa_common.h and pa_common.C
   
   2019-11-12  moko
   
           * tests/: 275.html, results/275.processed: out of range test fixed,
             as ^math:convert now supports arbitrary precision
   
   2019-11-11  moko
   
           * tests/results/389.processed: uctualized error message
   
           * tests/: 389.html, 397.html, results/397.processed: tests for
             ^math:convert added (related to feature #1177)
   
           * src/classes/math.C: ^math:convert now supports arbitrary
             precision, alphabet support added (implements feature #1177)
   
   2019-11-06  moko
   
           * tests/: 181.html, results/181.processed: entities usage added,
             more entites load tests (related to bug #842 discussion)
   
   2019-11-05  moko
   
           * src/main/pa_xml_io.C: bugfix: no more extra http://localhost/
             call from xmlFileOpen if http://localhost/<file> was not found
             (related to bug #842)
   
           * src/main/pa_xml_io.C: rename
   
           * src/main/pa_xml_io.C: +MemoryStream constructor
   
           * src/main/pa_xml_io.C: whitespace
   
   2019-10-31  moko
   
           * src/classes/xdoc.C: XML_PARSE_OPTIONS (XML_PARSE_DTDLOAD |
             XML_PARSE_NOENT) added to fix entities load, (related to feature
             #1181)
   
   2019-10-25  moko
   
           * tests/: 388-sql.html, results/388-sql.processed: more multiple
             queries tests
   
   2019-10-24  moko
   
           * tests/: 388-sql.html, results/388-sql.processed: support for
             pgsql driver test
   
           * tests/: 388-sql.html, results/388-sql.processed:
             multi_statements=1 now tested, mysql test now supported
             (connection must be specified in [parser3] section in .my.cnf)
             related to issues #1195 and #1194
   
 2019-09-11  moko  2019-09-11  moko
   
         * src/classes/int.C: whitespace          * src/classes/int.C: whitespace
Line 129 Line 2784
   
 2018-01-11  moko  2018-01-11  moko
   
         * bin/auto.p.dist.in: sqlite3 -> libsqlite3  
   
         * src/classes/xdoc.C: xmlReadMemory/xmlReadFile now used with          * src/classes/xdoc.C: xmlReadMemory/xmlReadFile now used with
           XML_PARSE_HUGE option passed by default (implements feature            XML_PARSE_HUGE option passed by default (implements feature
           #1181)            #1181)
Line 3095 Line 5748
           main/pa_stylesheet_connection.C: forgotten to be replaced            main/pa_stylesheet_connection.C: forgotten to be replaced
           XmlException is now replaced (once again closes issue #938)            XmlException is now replaced (once again closes issue #938)
   
 2013-10-19  misha  
   
         * bin/auto.p.dist.in: - more mime-types are added  
   
 2013-10-18  moko  2013-10-18  moko
   
         * buildall: disable clock_gettime detection to avoid librt linking          * buildall: disable clock_gettime detection to avoid librt linking
Line 3397 Line 6046
   
         * src/types/pa_vmemcached.C: LT_MODULE_EXT used          * src/types/pa_vmemcached.C: LT_MODULE_EXT used
   
         * bin/auto.p.dist.in: libpq.so -> libpq.  
   
         * src/classes/curl.C: LT_MODULE_EXT used          * src/classes/curl.C: LT_MODULE_EXT used
   
         * src/include/pa_config_fixed.h: LT_MODULE_EXT defined          * src/include/pa_config_fixed.h: LT_MODULE_EXT defined
Line 3517 Line 6164
   
 2013-07-07  moko  2013-07-07  moko
   
         * bin/auto.p.dist.in: windows-1251 commented to remove auto.p  
           dependense from $charsetsdir directory existance and content (and  
           UTF-8 is default allready)  
   
         * AUTHORS: + misha + moko. :)          * AUTHORS: + misha + moko. :)
   
 2013-07-06  moko  2013-07-06  moko
Line 3970 Line 6613
   
         * src/targets/apache/Makefile.am: updated for libtool usage          * src/targets/apache/Makefile.am: updated for libtool usage
   
         * bin/auto.p.dist.in: .cfg removed from charset names.  
   
         * buildall-without-xml: --with-included-ltdl added          * buildall-without-xml: --with-included-ltdl added
   
         * buildall-without-xml: sync with buildall-with-xml          * buildall-without-xml: sync with buildall-with-xml
Line 4065 Line 6706
           debian/patches/101_pcre.patch - local copy of pcre_internal.h            debian/patches/101_pcre.patch - local copy of pcre_internal.h
           extracts now used old trash removed            extracts now used old trash removed
   
         * bin/auto.p.dist.in: all charsets are listed, utf-8 by default,  
           rare charsets/drivers are commented, sql driver quessing removed  
           (debian/patches/103_auto_p.patch)  
   
         * etc/parser3.charsets/Makefile.am: charsets now in share          * etc/parser3.charsets/Makefile.am: charsets now in share
           (debian/patches/104_automake.patch) + all charsets are copied            (debian/patches/104_automake.patch) + all charsets are copied
   
Line 8630 Line 11267
   
 2007-02-20  misha  2007-02-20  misha
   
         * bin/auto.p.dist.in: - added lines for sqlite  
   
         * configure.in: - added some strings for sqlite detection          * configure.in: - added some strings for sqlite detection
   
 2007-02-19  misha  2007-02-19  misha
Line 8891 Line 11526
   
         * src/classes/file.C: - empty args in file::exec removed now          * src/classes/file.C: - empty args in file::exec removed now
   
 2006-09-11  misha  
   
         * bin/auto.p.dist.in: - 2 errors were fixed - table::set was  
           replaced to table::create - some changes in text/code formatting  
   
 2006-09-03  paf  2006-09-03  paf
   
         * src/classes/file.C: proper tainting of          * src/classes/file.C: proper tainting of
Line 9838 Line 12468
   
 2005-08-08  paf  2005-08-08  paf
   
         * bin/auto.p.dist.in: merged . apache bad 404 handling workaround  
           integrated  
   
         * bin/auto.p.dist.in: . apache bad 404 handling workaround  
           integrated  
   
         * src/main/: compile.tab.C, compile.y, compile_tools.C,          * src/main/: compile.tab.C, compile.y, compile_tools.C,
           compile_tools.h: merged + optimized constants in expressions            compile_tools.h: merged + optimized constants in expressions
           vstring->vdouble + optimized ^call(vdouble), no junction            vstring->vdouble + optimized ^call(vdouble), no junction
Line 11175 Line 13799
           main/main.vcproj, main/pa_globals.C, main/pa_xml_io.C: change:            main/main.vcproj, main/pa_globals.C, main/pa_xml_io.C: change:
           .xsl.stamp now not used, introducing dependencies timestamp check            .xsl.stamp now not used, introducing dependencies timestamp check
   
         * configure.in, bin/auto.p.dist.in: auto.p: @conf made relative          * configure.in: auto.p: @conf made relative
   
 2004-02-12  paf  2004-02-12  paf
   
Line 11734 Line 14358
         * src/types/: pa_value.h, pa_vfile.h: more C++ compatible [HP C++          * src/types/: pa_value.h, pa_vfile.h: more C++ compatible [HP C++
           failed]            failed]
   
         * bin/auto.p.dist.in: colno  
   
 2003-11-10  paf  2003-11-10  paf
   
         * src/types/pa_vconsole.h: flush          * src/types/pa_vconsole.h: flush
Line 15893 Line 18515
         * src/main/pa_string.C: string.replace fixed [were missing words on          * src/main/pa_string.C: string.replace fixed [were missing words on
           pieces boundaries]            pieces boundaries]
   
         * bin/auto.p.dist.in: strange \n  
   
         * configure, configure.in: .so now detected [can be .sl on hpux,          * configure, configure.in: .so now detected [can be .sl on hpux,
           .dll on cygwin, .so in other cases)            .dll on cygwin, .so in other cases)
   
         * configure, configure.in, bin/auto.p.dist.in: .so now detected          * configure, configure.in: .so now detected [can be .sl on hpux,
           [can be .sl on hpux, .dll on cygwin, .so in other cases)            .dll on cygwin, .so in other cases)
   
         * operators.txt, src/classes/hash.C, src/classes/table.C,          * operators.txt, src/classes/hash.C, src/classes/table.C,
           src/include/pa_globals.h, src/main/pa_globals.C: table.sql            src/include/pa_globals.h, src/main/pa_globals.C: table.sql
Line 16100 Line 18720
   
         * src/: main/execute.C, types/pa_vobject.h: fixed virtual calls          * src/: main/execute.C, types/pa_vobject.h: fixed virtual calls
   
         * bin/auto.p.dist.in, src/targets/cgi/parser3.C,          * src/: targets/cgi/parser3.C, types/pa_vfile.C, types/pa_vmail.C:
           src/types/pa_vfile.C, src/types/pa_vmail.C:  
           $mail.received.file.value.content-type fixed            $mail.received.file.value.content-type fixed
   
 2002-08-20  paf  2002-08-20  paf
Line 16298 Line 18917
           VAliased [redundant], moved $CLASS to VObject only [parser class            VAliased [redundant], moved $CLASS to VObject only [parser class
           instance]            instance]
   
         * bin/auto.p.dist.in: more like in dist on parser.ru  
   
         * bin/auto.p.dist.in: fixed sendmail default comment  
   
         * src/main/pa_request.C: $response:body[file] content-type check          * src/main/pa_request.C: $response:body[file] content-type check
           fixed [were bad when content-type is hash]            fixed [were bad when content-type is hash]
   
Line 16385 Line 19000
   
         * src/main/pa_request.C: case insensitive mime_type_of          * src/main/pa_request.C: case insensitive mime_type_of
   
         * bin/auto.p.dist.in: jpeg  
   
 2002-08-05  paf  2002-08-05  paf
   
         * src/types/pa_vxnode.C: xnode.childNodes  now 0... [were 1...]          * src/types/pa_vxnode.C: xnode.childNodes  now 0... [were 1...]
Line 16413 Line 19026
         * configure, configure.in, src/include/pa_version.h: release          * configure, configure.in, src/include/pa_version.h: release
           3_0_0005            3_0_0005
   
         * bin/auto.p.dist.in: unhandled_exception comments  
   
         * src/types/: pa_vclass.h, pa_vform.C, pa_vobject.h: opera          * src/types/: pa_vclass.h, pa_vform.C, pa_vobject.h: opera
           multipart post fixed            multipart post fixed
   
Line 16641 Line 19252
   
         * src/main/pa_request.C: configure_admin forced if no @conf          * src/main/pa_request.C: configure_admin forced if no @conf
   
         * operators.txt, bin/auto.p.dist.in, src/classes/math.C,          * operators.txt, src/classes/math.C, src/types/pa_vmail.C:
           src/types/pa_vmail.C: ^math:crypt updated to generate random salt            ^math:crypt updated to generate random salt when needed and to
           when needed and to call system crypt() if not $apr1$ prefix            call system crypt() if not $apr1$ prefix
   
 2002-06-24  paf  2002-06-24  paf
   
Line 16722 Line 19333
   
 2002-06-20  paf  2002-06-20  paf
   
         * INSTALL, configure, configure.in, operators.txt, bin/Makefile.am,          * INSTALL, configure, configure.in, operators.txt,
           bin/auto.p.dist.in, src/classes/file.C, src/classes/op.C,            src/classes/file.C, src/classes/op.C, src/doc/doxygen.cfg,
           src/doc/doxygen.cfg, src/include/pa_globals.h,            src/include/pa_globals.h, src/include/pa_request.h,
           src/include/pa_request.h, src/main/execute.C,            src/main/execute.C, src/main/pa_request.C,
           src/main/pa_request.C, src/targets/cgi/parser3.C,            src/targets/cgi/parser3.C, src/targets/isapi/parser3isapi.C,
           src/targets/isapi/parser3isapi.C, src/types/pa_vmethod_frame.h:            src/types/pa_vmethod_frame.h: marged latest HEAD updates, mainly
           marged latest HEAD updates, mainly file:justname&co &            file:justname&co & @auto/conf[filespec
           @auto/conf[filespec  
   
         * operators.txt, src/classes/file.C:          * operators.txt, src/classes/file.C:
           !^file:dirname[/a/some.tar.gz]=/a            !^file:dirname[/a/some.tar.gz]=/a
Line 16742 Line 19352
           main/pa_request.C, types/pa_vmethod_frame.h: introducing            main/pa_request.C, types/pa_vmethod_frame.h: introducing
           @conf/auto[filespec]            @conf/auto[filespec]
   
         * bin/auto.p.dist.in: <noindex>  
   
         * configure: parser3.conf renamed to auto.p autoconf changes          * configure: parser3.conf renamed to auto.p autoconf changes
   
         * INSTALL, configure.in, operators.txt, bin/Makefile.am,          * INSTALL, configure.in, operators.txt, src/doc/doxygen.cfg,
           bin/auto.p.dist.in, src/doc/doxygen.cfg,  
           src/include/pa_globals.h, src/targets/cgi/parser3.C,            src/include/pa_globals.h, src/targets/cgi/parser3.C,
           src/targets/isapi/parser3isapi.C: parser3.conf renamed to auto.p            src/targets/isapi/parser3isapi.C: parser3.conf renamed to auto.p
   
Line 16758 Line 19365
   
         * INSTALL: reflected .conf.dist dir change          * INSTALL: reflected .conf.dist dir change
   
         * Makefile.am, configure, configure.in, bin/Makefile.am,          * Makefile.am, configure, configure.in,
           etc/parser3.charsets/Makefile.am: parser3.conf.dist moved to bin,            etc/parser3.charsets/Makefile.am: parser3.conf.dist moved to bin,
           .in & *.am updated            .in & *.am updated
   
Line 16766 Line 19373
   
         * src/classes/file.C: strcasecmp          * src/classes/file.C: strcasecmp
   
         * bin/Makefile.am, etc/Makefile.am: bin/parser3.conf.dist [moved          * etc/Makefile.am: bin/parser3.conf.dist [moved from etc
           from etc  
   
         * src/classes/file.C: ^file::exec[script;$.bad error case          * src/classes/file.C: ^file::exec[script;$.bad error case
           insensitive check now            insensitive check now

Removed from v.1.121  
changed lines
  Added in v.1.206


E-mail: