• last updated 16 hours ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
Fix typos

  1. … 42 more files in changeset.
fix typos

  1. … 4 more files in changeset.
fix typos

  1. … 4 more files in changeset.
Provide new function "ad_with_deprecated_code_p" to check config file if we should load deprecated code.

Bump version number to 5.10.0d3

  1. … 1 more file in changeset.
fix typos

  1. … 1 more file in changeset.
Improve variable names

merged changes from the oacs-5-9 branch and resolved conflicts

    • -16
    • +16
    ./40-db-query-dispatcher-procs.tcl
  1. … 7830 more files in changeset.
We can't source the current setup files, since these perform as well the master loading of OpenACS.

Use "file tail" instead of full path for sourcing tcl file

(re)source top-level tcl-files when copying it

Don't add per default the contents of .bak directories

Use per-thread caching instead of nsv for never-changing variable (use ::acs::database_type instead of nsv ad_database_type; when available)

This improves concurrency and performance for tight loops (e.g. in developer support)

  1. … 1 more file in changeset.
Improve spelling

  1. … 8 more files in changeset.
Fix spelling errors, use OpenACS

  1. … 4 more files in changeset.
Fix spelling errors

  1. … 13 more files in changeset.
Improve robustness of file operations against names starting with a "-"

  1. … 8 more files in changeset.
Ease debugging

- modernize tcl

- remove unneeded braces

- copy the body of ad_get_tcl_call_stack from acs-tcl/tcl/utilities-procs to achive consistent behavior, when acs-bootstrap installer is reloaded.

bootstrap installer:

- added csp policy to the files upgradeable via apm

- bumped version number to 5.9.1d5

  1. … 3 more files in changeset.
- truncate overlong lines in ad_get_tcl_call_stack

  1. … 1 more file in changeset.
- add missing doc string

- add "protection" element instread of public_p or private_p

  1. … 1 more file in changeset.
- Use global variables to reduce lock contention on busy sites:

* $::acs::default_database replaces [nsv_get db_default_database .]

* $::acs::known_database_types replaces [nsv_get ad_known_database_types .]

- Cache db_driverkey per-thread (variable ::acs::db_driverkey($dbn))

to reduce high number of locks

  1. … 3 more files in changeset.
- improve linebreak

- keep error message

- add editor hints to keep spaces/tabs in the furture more consistent

  1. … 752 more files in changeset.
- optional performance boost for site-nodes:

the site-node code contains an optional performance booster,

that speeds up site-node operations froma factor of 2 to

several thousand times. The performance boost ist just

available for the time being for PostgreSQL, XOTcl2 and

NaviServer and is only activated, when these componentes

are available.

- bump version numbers

  1. … 4 more files in changeset.

ad_proc reform:

- use nsf::proc for defining ad_procs, when nsf::proc is available

- nsf::proc is part of the environment of XOTcl2 and provides

an efficient, C-implemented argument parser that can replace

the scripted *__arg_parser of OpenACS.

- The benefits are performance and reduced memory consumption.

* Simple functions (where the calling overhead was a large

part of the execution times can become several times faster

(e.g. db_name is 3x faster, cookie handling is 2x faster),

for functions with much db-activities the percentage will

be less.

* The memory consumption (RSS) of a site like OpenACS.org

is reduced by about 15%.

NEW (with nsf::proc)

::ad_get_cookie x: 10.93 microseconds per iteration

::ad_get_cookie ad_session_id: 21.95 microseconds per iteration

::dt_systime: 24.89 microseconds per iteration

::db_name: 8.70 microseconds per iteration

::db_string dbqd.null.g "select version() from dual": 316.66 microseconds per iteration

::ad_convert_to_html "hello world": 102.29 microseconds per iteration

OLD (without nsf::proc)

::ad_get_cookie x: 19.42 microseconds per iteration

::ad_get_cookie ad_session_id: 30.10 microseconds per iteration

::dt_systime: 27.55 microseconds per iteration

::db_name: 32.28 microseconds per iteration

::db_string dbqd.null.g "select version() from dual": 366.69 microseconds per iteration

::ad_convert_to_html "hello world": 160.51 microseconds per iteration

======================================================================

proc mtime cmd {set c 5000

set t [time [list time $cmd $c]];

regexp {^(-?[0-9]+) +} $t _ mS1;

set ms [expr {$mS1*1.0/$c}];

return "[format %6.2f $ms] microseconds per iteration"

}

set tests {

{::ad_get_cookie x} {::ad_get_cookie ad_session_id} {::dt_systime}

{::db_name} {::db_string dbqd.null.g "select version() from dual"}

{::ad_convert_to_html "hello world"}

}

foreach t $tests {append ::_ $t ": " [mtime $t] \n}

set ::_

======================================================================

  1. … 7 more files in changeset.
- allow upgrade of blank-master.{tcl,adp} via install-from-repository. This files should be free of site-specific customizations

  1. … 3 more files in changeset.