• last updated 23 hours ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates

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.
- 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.
Merging back to HEAD branch oacs-5-8 (using tag vg-merge-oacs-5-8-from-20141027).

  1. … 2547 more files in changeset.
- document apm_bootstrap_upgrade

- improve error reporting during bootstrap loader: list dependency order in a human oriented manner, report more errors from sourcing files http://openacs.org/forums/message-view?message_id=4172245

  1. … 1 more file in changeset.
- allow error propagation also from bootstrap loader

- white space change: replace tabs by spaces

  1. … 3 more files in changeset.
- add error reporting to package reloader (many thanks to Andrew Helsley, see: http://openacs.org/forums/message-view?message_id=4166397)

  1. … 4 more files in changeset.
- allow to upgrade basic startup files (openacs-4/tcl/*tcl)

to be upgraded via "install from repository" by adding

and after-upgrade callback to bootstrap-installer and

copying the files from there.

- move initialization of nsv_arrays for apm to -init file in acs-tcl

(as suggested by Peter Marklund, but never implemented)

- use double colon prefix rather than "global" statement

to denote global variables

- bump version number to 5.8.1d3

  1. … 3 more files in changeset.
- use lock-free ::acs::rootdir variable instead of nsv variable

  1. … 1 more file 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.
- use tcl 8.5 idioms to improve readability and performance

- apm_get_package_files: add flag "-all", otherwise .apm file generation on openacs.org leads to incomplete package files

apm_include_file_p wont ignore anymore the upgrade directory in case data_model_files flag is set.

apm_get_package_files has new boolean switch -include_data_model_files in order to allow including/excluding sql files when looking for files within a package.

Taking .sql out of the list of ignored file extensions. Otherwise create/upgrade sql scripts are not loaded while installing/upgrading.

- 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.
- add git to the list of ignored directories for apm loading

- apm_file loader: ignore directories www/resources/, catalog/, upgrade/

- apm_file loader: ignore extensions .html .gif .png .jpg .ico .pdf .js .css .xsl .tgz .zip .gz .java .sql

- align implementation of apm_backup_file_p with documentation

- 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.
change all core proc_doc calls to ad_proc calls

  1. … 7 more files 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.
merge of changes between oacs-5-0-0b4 and oacs-5-0-0-final to HEAD

  1. … 286 more files in changeset.
add -public and -private for some procs, minor bug in acs_object::get some @see notes

  1. … 12 more files in changeset.
Recognize files in lib as include_pages

fixing typo in tcl file loading printout

requiring tcl files (of type tcl_procs, tcl_init, test_procs, test_init, or tcl_util) to reside under package-key/tcl

bug 335 - making sure it's possible to install from .apm files again. The UI needs improvement. Robustness could also be improved. May need to handle the case when there is a later version of a package in the packages directory than in the apm_workspace dir

  1. … 6 more files in changeset.