Diff for /parser3/ChangeLog between versions 1.152 and 1.197

version 1.152, 2020/12/21 02:05:11 version 1.197, 2024/09/16 02:05:14
Line 1 Line 1
   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  2020-12-20  moko
   
         * src/: include/pa_common.h, include/pa_memory.h, main/pa_common.C:          * src/: include/pa_common.h, include/pa_memory.h, main/pa_common.C:

Removed from v.1.152  
changed lines
  Added in v.1.197


E-mail: