------------------
- Use a md5 hash of the provided key in RAMCacheAdapter, reducing the
memory footprint and speeding up lookup time.
[hannosch]
- Reword the volatile section a bit to indicate why the example does not
use anything from the volatile module.
[wichert]
- Use an exception `DontCache` instead of the DONT_CACHE marker return
value. Allow for no `ICacheChooser` to be registered.
[nouri]
- Add cache decorator for request (which can in fact be used for all
sorts of annotatable objects).
[nouri]
- Added decorator for storing cache values on the request as annotations.
[nouri]
- Always include the function's dotted name in the key.
[nouri]
- Added a new cache decorator which can memoize a the result of a method
call on the request and lets you specify which argument on the function
is the request.
[hannosch]
- Add MemcacheAdapter as an alternative to RAMCacheAdapter.
[nouri]
- Generalize `IRAMCacheChooser` to `ICacheChooser`, which doesn't return
an IRAMCache but a simple dict.
[nouri]
- Use a more sensible default for the maxAge of the new RAMCache.
[hannosch]
- Add cache storage for `plone.memoize.volatile` for use with
`zope.app.cache.ram.RAMCache`.
[nouri]
- Rolled in changes from memojito to fix recursively memoized
methods(fix by Rob Miller and Whit Morriss)
[whit]
- Made plone.memoize backwardly compatible with zope2.9 and remain
usable w/out zope.annotation. Minor wording changes to some docs.
[whit]
- Per default, use a volatile dict that cleans up after itself.
[nouri]
- This 'volatile' module defines a versatile caching decorator that
gives you total control of how the cache key is calculated and where
it is stored.
[nouri]