tcl-documentation-procs.tcl

  • last updated 20 hours ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
use the right message key

VS: ----------------------------------------------------------------------

Added page_contract filter "object_id"

This change adds the page_contract filter "object_id", which validates

values whether these are syntactically acceptable as object_ids in

PostgreSQL and Oracle.

Note that before one is able to use the filter, the server has to be

restarted. Otherwise, when e.g. "apm/version_reload.tcl" would be

executed with the new filter, it would fail. So, one has to be careful

on update scripts, when people upgrade from old version not to create

a blocking mutual blocking condition.

  1. … 4 more files in changeset.
Remove non-functional "double click protection" in order to remove a potential attack vector

  1. … 1 more file in changeset.
added page contract filter "printable" to avoid passing of binary values to certain pages

  1. … 2 more files in changeset.
provide name for mutexes to ease spotting potential locks

  1. … 1 more file in changeset.
Important, although very simple reform in the page-contract filters: do not kill the case in the filter specs, or filters such as "w:oneof(One|Two)" or "locale:oneof(en_US|de_DE)" would not have a chance to match

Note that this makes the contracts stricter with respect to case, which might break obscure use cases...

fix typo

improve spelling: move closer to the linux documentation recommendations

  1. … 34 more files in changeset.
make minus sign optional again

fix typos

  1. … 1 more file in changeset.
Make number checking more strict (allow just number literals, which are OK for Tcl and SQL)

Deprecated get_referrer and NsSettoTclString, replace them with versions that respect OpenACS naming convention

  1. … 7 more files in changeset.
Avoid double flagging for non-optional values having "notnull" specified.

Previously, there was a complaint from "notnull" and one from "not optional"

improve spelling

  1. … 15 more files in changeset.
Fix parameter name and rework proc doc

Simplify expressions

Whitespace changes

make former private functions, used in several packages to public functions

  1. … 4 more files in changeset.
Fix parenthesis and simplify idiom

Allow themeing of /packages/acs-tcl/lib/complain

improve spelling

  1. … 12 more files in changeset.
fix documentation (fix for #3345)

improve wording

  1. … 7 more files in changeset.
Revert massive replacement of empty list creation sentences. The use of '[list]' instead of '{}' adds semantics that could be used for performance improvements in the future, such as using a different internal representation. There is already work in this direction, avoiding the generation of the string representation during comparison of empty strings (huge thanks to Stefan Sobernig for the pointer: https://core.tcl.tk/tcl/info/44527c632ed609c2).

  1. … 475 more files in changeset.
Prefer '{}' to '[list]' when creating empty lists

  1. … 71 more files in changeset.
fix typos

  1. … 7 more files in changeset.
Fix typos

  1. … 31 more files in changeset.
Part 3 of scalability improvement: provide lock-free implementation of

ad_page_contract_filter_rules. If nothing bad shows up, the

underlaying nsv-arrays can be removed completely.

If one looks at the top 10 nsv mutex locks of a rather busy site

(nsd running for 3 days), one can see the ad_page_contract_filters

and ad_page_contract_filter_rules belong to the most frequent

mutex locks, which can be avoided at completely. These two

arrays make up of nearly 40% of the top 10 nsv locks.

ad_page_contract_filters 38042679

api_proc_doc 37717019

ad_page_contract_filter_rules 26036060

::xotcl::THREAD 18628540

OACS_FULLQUERIES 17771146

ds_properties 7855339

rp_extension_handlers 6837414

apm_subsite_packages_list 3524672

apm_reload_watch 3514474

apm_properties 3514472

Part 2 of scalability improvement: provide lock-free implementation of ad_page_contract_filters (*rules are still missing)

fix documentation