Announcing core.memoize v0.5.1
core.memoize is a new Clojure contrib library providing the following features:
An underlying
PluggableMemoization
protocol that allows the use of customizable and swappable memoization caches that adhere to the synchronousCacheProtocol
found in core.cacheMemoization builders for implementations of common caching strategies, including:
- First-in-first-out (
memo-fifo
) - Least-recently-used (
memo-lru
) - Least-used (
memo-lu
) - Time-to-live (
memo-ttl
) - Naive cache (
memo
) that duplicates the functionality of Clojure’smemoize
function
- First-in-first-out (
Functions for manipulating the memoization cache of
core.memoize
backed functions
core.memoize is based on a library named Unk, found at http://github.com/fogus/unk that is planned for deprecation.
Absorb
You can use core.memoize in your Leiningen and Cake projects with the following :dependencies
directive in your project.clj
file:
[org.clojure/core.memoize "0.5.1"]
For Maven-driven projects, use the following slice of XML in your pom.xml
‘s <dependencies>
section:
<dependency>
<groupId>org.clojure</groupId>
<artifactId>core.memoize</artifactId>
<version>0.5.1</version>
</dependency>
Enjoy!
Places
- Source code
- Ticket system
- Announcement
- Examples and documentation — in progress
Whither Unk
The v0.5.1 version of core.memoize is based almost wholly on the final version of Unk, with the following changes:
- All cache factory functions have been moved to core.cache
- The
SoftCache
backed implementation was buggy and removed for now
Plans
The following capabilities are under design, development, or consideration for future versions of core.memoize:
- LIRS backed memoization
- A defn-memo macro
- A MapMaker style ctor interface
- Reimplementation of a cache based on soft references
- test.generative usage
- Deprecation of Unk
- Documentation and examples
More planning is needed around capabilities not listed nor thought of.
:F
No Comments, Comment or Ping
Reply to “Announcing core.memoize v0.5.1”