• last updated 8 hours ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
- add "protection" element instread of public_p or private_p

  1. … 1 more file in changeset.
- add editor hints to keep spaces/tabs in the furture more consistent

  1. … 754 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. … 9 more files in changeset.
Merging back to HEAD branch oacs-5-8 (using tag vg-merge-oacs-5-8-from-20141027).

  1. … 2547 more files in changeset.
- fix invalid @param declaration for API browser

  1. … 5 more files in changeset.
- fix spelling of @param

  1. … 1 more file in changeset.
- move deprecated proc_doc to depreacted utilities file

  1. … 1 more file in changeset.
- change 'util_memoize "..."' into 'util_memoize [list ...]' as pointe out by Frank for security reason and correctness

  1. … 6 more files in changeset.
- add a warning about loading old-style argument lists for ad_proc

- use lock-free ::acs::rootdir variable instead of nsv variable

  1. … 1 more file in changeset.
- reduce number of remaining "string equal" operations

  1. … 1 more file in changeset.
- replace "eval" by expand operator

  1. … 11 more files in changeset.
- brace expressions to allow for tcl compilation

- use "in" or not in (ni) operator instead of lsearch (for readability and performance)

  1. … 10 more files in changeset.
- use "in" or not in (ni) operator instead of lsearch (for readability and performance)

  1. … 2 more files in changeset.
- simply string comparisons

- use tcl 8.5 extended index format for "lindex" and "lrange"

  1. … 3 more files in changeset.
- modernize tcl

- remove unneeded "expr" in side if-expressions

  1. … 13 more files in changeset.
- change deprecated message from "Debug" to "Notice" level

Moving handling NaviServer deprecated ns_info subcommands to 0-acs-init.tcl.

  1. … 2 more files in changeset.
- turn on warning for using deprecated commands, at least during the release phase

- added victor's patch to omit deprecated messages of "ns_info tcllib". Background: naviserver supports multiple (virtual) servers, which might have different tcllibs. Therefore, the preferred command to query this was moved to "ns_server ?-server s? tcllib" and "ns_info tcllib" was deprecated. From the OpenACS point of view, one wants to locate the actual library. Since the variable does not change, it is fine to store it in a per-thread variable which can be efficiently accessed.

  1. … 21 more files in changeset.
- abstract in check for existance of a command whether this is scripted or not

- use a more modern tcl command set

  1. … 12 more files in changeset.
- Fix for Tcl 8.5: OpenACS did overwrite the Tcl built-in command

"::apply" and broke therefore all scripts/libraries using it.

Changed the name of the OpenACS function to "ad_apply" and altered

the few occurances. The fix works as well with Tcl 8.4. The proper

fix for 8.5 would be to use instead of the function the expand

operator {*}

  1. … 3 more files in changeset.
- Fix for Tcl 8.5: OpenACS did overwrite the Tcl built-in command

"::apply" and broke therefore all scripts/libraries using it.

Changed the name of the OpenACS function to "ad_apply" and altered

the few occurances. The fix works as well with Tcl 8.4. The proper

fix for 8.5 would be to use instead of the function the expand

operator {*}

  1. … 3 more files in changeset.
- fix for Tcl 8.5: OpenACS did overwrite the Tcl built-in command "::apply" and broke therefore all scripts/libraries using it.

Changed the name of the OpenACS function to "ad_apply" and altered the few occurances.

The fix works as well with Tcl 8.4. The proper fix for 8.5 would be to use instead of the function the expand operator {*}

  1. … 3 more files in changeset.
print a call stack when emitting a deprecated/warn message

  1. … 1 more file in changeset.
Normalizing string comparison operations into tcl 8.4 operations, enabling byte-code compilation for expressions and many conditionals

  1. … 367 more files in changeset.
OK did it right this time. Damnation!

Make ad_proc default to the function being public. This decision was made

by Don and Dave and a couple of others during the current bugbash.

Why not TIP it? There's no semantic meaning to the switch, and ad_proc

doesn't require you to declare a procedure to be either -public or -private.

This was enforced in an automated test, but if we WERE to insist on it,

ad_proc should cause failure to declare a proc public or private and error.

That would be too harsh (would break a lot of client code, too). Assuming

functions are public by default seems reasonable. The only effect is to

change the behavior of the API browser if you've chosen private or public

viewing modes.

Merged acs-core oacs-5-2 (currently 5.2.3) -> HEAD.

TODO:

1. Bump acs-core package version numbers to 5.3.0d1

2. Would be nice to do a test install, wouldn't it?

  1. … 721 more files in changeset.