@@ -338,6 +338,40 @@ (define-public clojure-core-match
(home-page "https://github.com/clojure/core.match")
(license license:epl1.0))))
+(define-public clojure-core-memoize
+ (package
+ (name "clojure-core-memoize")
+ (version "1.0.253")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/clojure/core.memoize")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1qky54v114sh3xn0lffwy7xx3wnnayk07fr2nvhd4lih84sv6rdz"))))
+ (build-system clojure-build-system)
+ (arguments
+ '(#:source-dirs '("src/main/clojure")
+ #:test-dirs '("src/test/clojure")
+ #:doc-dirs '("docs")
+ ;; Tests fail when AOT'd.
+ #:aot-exclude '(#:all)))
+ (propagated-inputs (list clojure-core-cache))
+ (home-page "https://github.com/clojure/core.memoize")
+ (synopsis "Customisable memoization library supporting automatic removal")
+ (description "This memoization library supports various cache replacement
+strategies:
+
+ @itemize
+ @item @acronym{FIFO, first in first out}
+ @item @acronym{LRU, least recently used}
+ @item @acronym{TLL, time to live}
+ @item no replacement, the memoisation cache can grow indefinitely
+ @end itemize")
+ (license license:epl1.0)))
+
(define-public clojure-data-codec
(package
(name "clojure-data-codec")