* Changed function annotations: - %an:deterministic: disables caching (previously %an:no-cache) - %an:strictlydeterministic: enables caching for deterministic and non-deterministic functions. Cache is only within the same snapshot. - %an:cache enables caching for deterministic, non-deterministic and sequential functions. Caches is across snapshots. (unchanged) - %an:exclude-from-cache-key(n) specifies that a function argument has to be ignored when computing the cache key - %an:compare-with-deep-equal(n) specifies that a function argument has to be compared with deep-equal semantics
* Changed criteria for default annotations of internal and external functions: - Functions which have no %an:deterministic, %an:nondeterministic or %an:strictlydeterministic annotations and all their parameter and the return types are atomics are now automatically annotated %an:strictlydeterministic - All the other functions are annotated %an:deterministic * Added snapshot id in global dynamic context * Added dynamic context xquery module * Added strict equality hashmap * Reimplemented %an:cache * Enabled caching for function that have non atomic arguments * Whenever the eager evaluation of a function arguments raises an error, the evaluation is retried without cache. The function cache is then disabled if it was automatically detected. Approved: Matthias Brantner, Federico Cavalieri