• last updated 19 hours ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
modernize code

Added per-request-cache for parameter::get similar to parameter handling in xotcl-core

This change improves scalability especially on sites with high numbers

of concurrent requests by reducing the number of required locks in

general. This change keeps the parameter dict in a per-request cache

to reduce potentially high number of nsv locks, when parameters of a

package are queried a often per request. Without this change we see on

some sites > 100 locks on the ad_param-nsv per request. Alone the

request-procesor queries a larger set of parameters from the acs-core

package, which requires now a single lock operation.

Using the per-request cache has the advantave of avoiding locks and

keeping the internal representations of tcl-objs (whereas ns_cache or

nsvs use plain strings).

Improving ad_parameter_cache:

- added handling of cachingmode "none"

- added implementation via "nsv_dict" (cluster aware)

- execute parameter callbacks cluster-wide

- version number bumped to 5.10.1d4

  1. … 3 more files in changeset.
ad_return_url: experimental change to produce per default a proper encoded result

Background: before this change, ad_return_url encoded always the query

variables but not the URL path. This mixed result is complex to handle

to achieve ex-post a proper encoding. The function has a flag

"-urlencode", which is nowhere used in OpenACS. Other functions like

e.g. export_vars, or pretty_link return per default as well the

encoded URL. "ad_return_url" has a new flag "-path_encode=false" to

obtain the previous behavior (similar to the other mentioned

functions).

remove protection "private", since function has to be called from other packages

  1. … 6 more files in changeset.
acs::per_request_cache: standardize per-request caching

- added per-request cache verfsy similar to acs::per_thread_cache

- use per-request-cache on several occasions

- bump version number of acs-tcl to 5.10.0d35

  1. … 9 more files in changeset.
fix for issue #3387: ad_return_complaint can reveal error call stacks to end users

Prefer api to retrieve csp nonce, as it performs useful existance checks

  1. … 5 more files in changeset.
fix for issue #3434

Rename ReturnHeaders proc to comply with OpenACS naming convention, create deprecated wrapper, replace occurrences

  1. … 10 more files in changeset.
Revert cache flushing, as it was solved differently downstream

Force a complete flush also when setting a global parameter, other than when deleting

This operation seems superfluous upstream, but downstream code has some specific flushing behavior that would otherwise be applied only at deletion. The change is supposed to be merged in a way that will enable such specific flushing downstream

improve spelling and deactivate changes that were probably needed only for Firefox 2

  1. … 9 more files in changeset.
prefer inline SQL over generic xql to make apm code usable during initialization

  1. … 1 more file in changeset.
ad_return_url: change default value for default_url to "."

this is not terribly important, but probably a better approximation

Allow ad_return_url to be called also, when connection is closed.

This might be the case e.g. for the search renderer. In this case, a default_url is used

  1. … 3 more files in changeset.
Use localized message when returning 403 and no custom message is specified

Whitespace changeds

  1. … 3 more files in changeset.
Harmonize parameter names in proc documentation removing unnecessary hyphens

  1. … 4 more files in changeset.
Fix typos

  1. … 11 more files in changeset.
Use more API

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.
reduce stress on util_memoize_cache by using per-thread cache for acs::version number

Fix for bug #3335 (as suggested by Michael Aram)

  1. … 1 more file in changeset.
Move deprecated procs into deprecated-procs.tcl

  1. … 1 more file in changeset.
Fix more typos

  1. … 11 more files in changeset.
merged changes from the oacs-5-9 branch and resolved conflicts

  1. … 7834 more files in changeset.
Standardize spellings of names

  1. … 6 more files in changeset.
- Refactor ad_get_login_url reduce replicated code and to make semantics clearer

- ad_get_login_url handles now as well cases, where a subsite is mapped to an application package on a subsite

- fix a bug in util_current_location in connection with hostnode map

  1. … 2 more files in changeset.