Separate value caches and resource caches. The two distinct intended use are now given separate names and signatures. Resource caches are careful about resource ownership.
Switch from First Class Module API to functor API.
Note that this version is a complete rewrite with new package names, new module names, new APIs, new concepts. These changes are too numerous to be listed here: only the most important feature change is listed above. Refer to the README and the documentation which contain up-to-date information on the library as it stands.
Compatible with OCaml 5.0.0. The previous version used functions of the Ephemeron module that were removed in OCaml version 5.
Support for empty and singleton caches in ringo-lwt
Add specialised 0-sized and 1-sized caches
Improved test coverage
Fix leakiness of Lwt-wrapped caches (clean-up functions would hold onto bindings)
Fix race condition in Lwt-wrapped caches (rejection of a non-held promise cannot cause removal of a held promise)
Folding in Lwt-wrapped caches ignores failed promises (aligns semantics with automatic cleaning)
Improve documentation of Lwt-wrapped caches
Handle reinsertion as promotion
bugfix: do not hard-fail when removing the single element of a collection
Wrappers for Lwt, Lwt-Option, and Lwt-Result
rename Strict to Strong (as opposed to Weak)
CACHE_MAP(and associated name changes) to hint at key-value storage
introduce set-caches (
CACHE_SET) which are simple value caches (not key-value caches)
clearto empty caches entirely
fix singleton-collection bug
simplify code in main entry module
complete rewrite: the library pivots towards caches
v0.1: Initial release
Archaeology: Raw import from the Tezos project