Diff for /parser3/ChangeLog between versions 1.150 and 1.163

version 1.150, 2020/12/14 02:05:13 version 1.163, 2021/01/25 12:22:56
Line 1 Line 1
   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  2020-12-11  moko
   
         * configure.ac: gettid() check added          * configure.ac: gettid() check added

Removed from v.1.150  
changed lines
  Added in v.1.163


E-mail: