From: Reily Siegel <mail@reilysiegel.com>
To: 53765@debbugs.gnu.org
Cc: Maxime Devos <maximedevos@telenet.be>
Subject: [bug#53765] [PATCH v2 05/18] gnu: Add clojure-core-memoize.
Date: Wed, 16 Mar 2022 13:43:55 +0100 [thread overview]
Message-ID: <877d8udq44.fsf@reilysiegel.com> (raw)
In-Reply-To: <87y22r32hi.fsf@reilysiegel.com>
* gnu/packages/clojure.scm (clojure-core-memoize): New variable.
---
gnu/packages/clojure.scm | 51 ++++++++++++++++++++++++++++++++++++++++
1 file changed, 51 insertions(+)
diff --git a/gnu/packages/clojure.scm b/gnu/packages/clojure.scm
index 37cea74c95..d6c8218f93 100644
--- a/gnu/packages/clojure.scm
+++ b/gnu/packages/clojure.scm
@@ -341,6 +341,57 @@ (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")
+ (home-page "https://github.com/clojure/core.memoize")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url home-page)
+ (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))
+ (synopsis "Manipulable, pluggable, memoization framework for Clojure")
+ (description "@code{core.memoize} is a 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 synchronous
+CacheProtocol found in core.cache
+
+Memoization builders for implementations of common caching strategies,
+including:
+
+First-in-first-out (clojure.core.memoize/fifo)
+
+Least-recently-used (clojure.core.memoize/lru)
+
+Least-used (clojure.core.memoize/lu)
+
+Time-to-live (clojure.core.memoize/ttl)
+
+Naive cache (memo) that duplicates the functionality of Clojure's memoize
+function but, unlike the built-in memoize function, ensures that in the case
+of concurrent calls with the same arguments, the memoized function is only
+invoked once; in addition memo can use metadata from the memoized function to
+ignore certain arguments for the purpose of creating the cache key, e.g.,
+allowing you to memoize clojure.java.jdbc functions where the first argument
+includes a (mutable) JDBC Connection object by specifying
+:clojure.core.memoize/args-fn rest in the metadata")
+ (license license:epl1.0)))
+
(define-public clojure-data-codec
(package
(name "clojure-data-codec")
--
2.34.0
--
Reily Siegel
next prev parent reply other threads:[~2022-03-16 12:56 UTC|newest]
Thread overview: 166+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-02-04 0:22 [bug#53765] [PATCH 00/17] Remove limitations on clojure-tools Reily Siegel
2022-02-04 0:24 ` [bug#53765] [PATCH 01/17] gnu: Add clojure-data-priority-map Reily Siegel
2022-02-09 11:10 ` Maxime Devos
2022-02-09 11:18 ` Maxime Devos
2022-02-04 0:24 ` [bug#53765] [PATCH 02/17] gnu: Add clojure-data-json Reily Siegel
2022-02-10 17:52 ` Maxime Devos
2022-02-10 18:00 ` Maxime Devos
2022-02-04 0:24 ` [bug#53765] [PATCH 03/17] gnu: Add java-eclipse-jetty-client Reily Siegel
2022-02-04 0:24 ` [bug#53765] [PATCH 04/17] gnu: Add clojure-core-cache Reily Siegel
2022-03-17 20:44 ` Maxime Devos
2022-03-17 20:45 ` Maxime Devos
2022-03-17 20:47 ` Maxime Devos
2022-03-17 20:50 ` Maxime Devos
2022-03-17 20:57 ` Maxime Devos
2022-03-17 20:59 ` Maxime Devos
2022-03-17 21:00 ` Maxime Devos
2022-03-17 21:06 ` Maxime Devos
2022-03-17 21:08 ` Maxime Devos
2022-02-04 0:24 ` [bug#53765] [PATCH 05/17] gnu: Add clojure-core-memoize Reily Siegel
2022-02-04 0:24 ` [bug#53765] [PATCH 06/17] gnu: clojure-data-xml: Exclude failing tests Reily Siegel
2022-02-04 0:24 ` [bug#53765] [PATCH 07/17] gnu: Add clojure-http-kit Reily Siegel
2022-02-06 10:30 ` Maxime Devos
2022-02-04 0:25 ` [bug#53765] [PATCH 08/17] gnu: Add clojure-tools-analyzer Reily Siegel
2022-02-04 0:25 ` [bug#53765] [PATCH 09/17] gnu: Add clojure-tools-analyzer-jvm Reily Siegel
2022-02-06 10:46 ` Maxime Devos
2022-02-07 18:04 ` Reily Siegel
2022-02-07 19:01 ` Maxime Devos
2022-02-07 19:18 ` Reily Siegel
2022-02-04 0:25 ` [bug#53765] [PATCH 10/17] gnu: Add clojure-tools-logging Reily Siegel
2022-02-07 20:55 ` Maxime Devos
2022-02-07 22:19 ` Reily Siegel
2022-02-08 10:15 ` Maxime Devos
2022-02-08 10:22 ` Maxime Devos
2022-02-04 0:25 ` [bug#53765] [PATCH 11/17] gnu: Add clojure-core-async Reily Siegel
2022-02-07 20:32 ` Maxime Devos
2022-02-07 20:34 ` Maxime Devos
2022-02-07 20:37 ` Maxime Devos
2022-02-07 23:46 ` Reily Siegel
2022-02-07 20:53 ` Maxime Devos
2022-02-04 0:25 ` [bug#53765] [PATCH 12/17] gnu: Add clojure-com-cognitect-http-client Reily Siegel
2022-02-06 10:50 ` Maxime Devos
2022-02-07 18:06 ` Reily Siegel
2022-02-07 19:30 ` Maxime Devos
2022-02-07 19:50 ` Reily Siegel
2022-02-15 8:59 ` Maxime Devos
2022-02-07 20:21 ` Maxime Devos
2022-02-07 20:23 ` Maxime Devos
2022-02-07 20:31 ` Reily Siegel
2022-02-07 20:29 ` Maxime Devos
2022-02-04 0:25 ` [bug#53765] [PATCH 14/17] gnu: Add clojure-com-cognitect-aws-endpoints Reily Siegel
2022-02-07 19:53 ` Maxime Devos
2022-02-07 20:01 ` Reily Siegel
2022-02-04 0:26 ` [bug#53765] [PATCH 13/17] gnu: Add clojure-com-cognitect-aws-api Reily Siegel
2022-02-06 10:37 ` Maxime Devos
2022-02-06 10:39 ` Maxime Devos
2022-02-07 18:09 ` Reily Siegel
2022-02-07 19:19 ` Maxime Devos
2022-02-07 19:31 ` Reily Siegel
2022-02-06 10:45 ` Maxime Devos
2022-02-04 0:26 ` [bug#53765] [PATCH 15/17] gnu: Add clojure-com-cognitect-aws-s3 Reily Siegel
2022-02-06 10:35 ` Maxime Devos
2022-02-07 19:44 ` Maxime Devos
2022-02-07 19:56 ` Reily Siegel
2022-03-26 10:08 ` Maxime Devos
2022-03-26 10:13 ` Maxime Devos
2022-03-28 10:31 ` Reily Siegel
2022-03-28 11:50 ` Maxime Devos
2022-03-28 11:52 ` Maxime Devos
2022-04-05 13:50 ` Maxime Devos
2022-02-04 0:26 ` [bug#53765] [PATCH 16/17] gnu: clojure-tools-deps-alpha: Fix issues with S3 Reily Siegel
2022-02-04 0:26 ` [bug#53765] [PATCH 17/17] gnu: clojure-tools: Fix logging warning messages Reily Siegel
2022-03-16 12:39 ` [bug#53765] [PATCH v2 00/18] Reily Siegel
2022-03-16 12:43 ` [bug#53765] [PATCH v2 01/18] gnu: Add clojure-data-priority-map Reily Siegel
2022-03-16 12:43 ` [bug#53765] [PATCH v2 02/18] gnu: Add clojure-data-json Reily Siegel
2022-03-16 12:43 ` [bug#53765] [PATCH v2 03/18] gnu: Add java-eclipse-jetty-client Reily Siegel
2022-03-16 12:43 ` [bug#53765] [PATCH v2 04/18] gnu: Add clojure-core-cache Reily Siegel
2022-03-16 12:43 ` Reily Siegel [this message]
2022-03-17 21:10 ` [bug#53765] [PATCH v2 05/18] gnu: Add clojure-core-memoize Maxime Devos
2022-03-18 9:01 ` Reily Siegel
2022-03-18 13:22 ` Maxime Devos
2022-03-19 19:07 ` Reily Siegel
2022-03-19 19:15 ` Maxime Devos
2022-03-21 8:35 ` Reily Siegel
2022-03-21 9:06 ` Maxime Devos
2022-03-21 9:07 ` Maxime Devos
2022-03-21 9:51 ` Maxime Devos
2022-03-21 9:55 ` Maxime Devos
2022-03-21 11:27 ` Reily Siegel
2022-03-21 13:38 ` Maxime Devos
2022-03-19 19:23 ` Maxime Devos
2022-03-19 19:28 ` Maxime Devos
2022-03-19 19:34 ` Maxime Devos
2022-03-19 19:46 ` Maxime Devos
2022-03-19 19:56 ` Maxime Devos
2022-03-19 19:54 ` Maxime Devos
2022-03-17 21:11 ` Maxime Devos
2022-03-17 21:19 ` Maxime Devos
2022-03-17 21:26 ` Maxime Devos
2022-03-21 14:18 ` Maxime Devos
2022-03-16 12:43 ` [bug#53765] [PATCH v2 06/18] gnu: clojure-data-xml: Exclude failing tests Reily Siegel
2022-03-17 21:27 ` Maxime Devos
2022-03-17 21:30 ` Maxime Devos
2022-03-16 12:43 ` [bug#53765] [PATCH v2 07/18] gnu: Add clojure-http-kit Reily Siegel
2022-03-17 21:31 ` Maxime Devos
2022-03-17 21:32 ` Maxime Devos
2022-03-17 21:42 ` Maxime Devos
2022-03-17 21:44 ` Maxime Devos
2022-03-17 21:45 ` Maxime Devos
2022-03-16 12:44 ` [bug#53765] [PATCH v2 08/18] gnu: Add clojure-tools-analyzer Reily Siegel
2022-03-16 12:44 ` [bug#53765] [PATCH v2 09/18] gnu: Add clojure-tools-analyzer-jvm Reily Siegel
2022-03-16 12:44 ` [bug#53765] [PATCH v2 10/18] gnu: Add clojure-tools-reader Reily Siegel
2022-03-16 12:44 ` [bug#53765] [PATCH v2 11/18] gnu: Add clojure-tools-logging Reily Siegel
2022-03-16 12:44 ` [bug#53765] [PATCH v2 12/18] gnu: Add clojure-core-async Reily Siegel
2022-03-16 12:44 ` [bug#53765] [PATCH v2 13/18] gnu: Add clojure-com-cognitect-http-client Reily Siegel
2022-03-16 12:44 ` [bug#53765] [PATCH v2 14/18] gnu: Add clojure-com-cognitect-aws-api Reily Siegel
2022-03-16 12:44 ` [bug#53765] [PATCH v2 15/18] gnu: Add clojure-com-cognitect-aws-endpoints Reily Siegel
2022-03-16 12:44 ` [bug#53765] [PATCH v2 16/18] gnu: Add clojure-com-cognitect-aws-s3 Reily Siegel
2022-03-26 10:03 ` Maxime Devos
2022-03-28 9:41 ` Reily Siegel
2022-03-28 11:46 ` Maxime Devos
2022-03-28 11:57 ` Reily Siegel
2022-03-16 12:44 ` [bug#53765] [PATCH v2 17/18] gnu: clojure-tools-deps-alpha: Fix issues with S3 Reily Siegel
2022-03-26 9:51 ` Maxime Devos
2022-03-29 9:54 ` [bug#53765] [PATCH 00/17] Remove limitations on clojure-tools Ludovic Courtès
2022-03-29 10:39 ` Maxime Devos
2022-03-16 12:44 ` [bug#53765] [PATCH v2 18/18] gnu: clojure-tools: Fix logging warning messages Reily Siegel
2022-04-06 12:37 ` [bug#53765] [PATCH v3 00/17] Remove limitations on clojure-tools Reily Siegel
2022-01-15 22:30 ` [bug#53765] [PATCH v3 01/17] gnu: Add clojure-data-priority-map Reily Siegel
2022-01-15 22:32 ` [bug#53765] [PATCH v3 02/17] gnu: Add clojure-data-json Reily Siegel
2022-01-16 1:38 ` [bug#53765] [PATCH v3 03/17] gnu: Add java-eclipse-jetty-client Reily Siegel
2022-01-16 1:48 ` [bug#53765] [PATCH v3 04/17] gnu: Add clojure-core-cache Reily Siegel
2022-01-16 1:51 ` [bug#53765] [PATCH v3 05/17] gnu: Add clojure-core-memoize Reily Siegel
2022-01-16 2:06 ` [bug#53765] [PATCH v3 06/17] gnu: Add clojure-http-kit Reily Siegel
2022-01-16 2:40 ` [bug#53765] [PATCH v3 07/17] gnu: Add clojure-tools-analyzer Reily Siegel
2022-01-16 2:43 ` [bug#53765] [PATCH v3 08/17] gnu: Add clojure-tools-analyzer-jvm Reily Siegel
2022-01-21 23:43 ` [bug#53765] [PATCH v3 10/17] gnu: Add clojure-tools-logging Reily Siegel
2022-01-22 0:19 ` [bug#53765] [PATCH v3 11/17] gnu: Add clojure-core-async Reily Siegel
2022-01-22 0:32 ` [bug#53765] [PATCH v3 12/17] gnu: Add clojure-com-cognitect-http-client Reily Siegel
2022-01-22 0:35 ` [bug#53765] [PATCH v3 13/17] gnu: Add clojure-com-cognitect-aws-api Reily Siegel
2022-01-22 0:36 ` [bug#53765] [PATCH v3 14/17] gnu: Add clojure-com-cognitect-aws-endpoints Reily Siegel
2022-01-22 0:36 ` [bug#53765] [PATCH v3 15/17] gnu: Add clojure-com-cognitect-aws-s3 Reily Siegel
2022-01-25 18:37 ` [bug#53765] [PATCH v3 16/17] gnu: clojure-tools-deps-alpha: Fix issues with S3 Reily Siegel
2022-01-25 18:41 ` [bug#53765] [PATCH v3 17/17] gnu: clojure-tools: Fix logging warning messages Reily Siegel
2022-02-28 18:39 ` [bug#53765] [PATCH v3 09/17] gnu: Add clojure-tools-reader Reily Siegel
2022-04-15 13:54 ` [bug#53765] (no subject) Reily Siegel
2022-04-15 13:55 ` [bug#53765] V3 Patches Reily Siegel
2022-04-15 18:47 ` Maxime Devos
2022-04-15 19:03 ` Maxime Devos
2022-04-16 17:39 ` Reily Siegel
2022-04-16 19:16 ` Maxime Devos
2022-04-16 19:35 ` Reily Siegel
2022-04-16 19:45 ` Maxime Devos
2022-04-16 20:15 ` Reily Siegel
2022-04-16 20:47 ` Maxime Devos
2022-04-16 21:14 ` Reily Siegel
2022-04-16 19:45 ` Maxime Devos
2022-04-16 19:32 ` Maxime Devos
2022-04-16 20:11 ` Reily Siegel
2022-04-16 21:59 ` [bug#53765] [PATCH v5 1/2] gnu: clojure-tools-deps-alpha: Patch unpackageable deps warning Reily Siegel
2022-04-16 22:00 ` [bug#53765] [PATCH v5 2/2] gnu: clojure-tools: Fix logging warnings Reily Siegel
2022-04-16 23:00 ` [bug#53765] [PATCH v4 0/2] Simpler patch removing warnings Reily Siegel
2022-04-16 21:59 ` [bug#53765] [PATCH v4 1/2] gnu: clojure-tools-deps-alpha: Patch unpackageable Reily Siegel
2022-04-17 7:59 ` Maxime Devos
2022-04-17 11:33 ` Reily Siegel
2022-04-17 14:53 ` Maxime Devos
2022-04-16 22:00 ` [bug#53765] [PATCH v4 2/2] gnu: clojure-tools: Fix logging warnings Reily Siegel
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=877d8udq44.fsf@reilysiegel.com \
--to=mail@reilysiegel.com \
--cc=53765@debbugs.gnu.org \
--cc=maximedevos@telenet.be \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/guix.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.