ambrevar pushed a commit to branch wip-next-browser
in repository guix.
commit 0d2fcb5132e549b1b1915306a0bd7690b57c7d41
Author: Pierre Neidhardt <[email protected]>
Date: Fri Aug 24 11:24:21 2018 +0200
gnu: Add jpl-queues.
* gnu/packages/lisp.scm (cl-jpl-queues, ecl-jpl-queues, sbcl-jpl-queues):
New variables.
---
gnu/packages/lisp.scm | 45 +++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 45 insertions(+)
diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm
index bf5eb08..7841c99 100644
--- a/gnu/packages/lisp.scm
+++ b/gnu/packages/lisp.scm
@@ -1657,3 +1657,48 @@ and macros, primarily for software projects written in
CL by the author.")
(define-public ecl-jpl-util
(sbcl-package->ecl-package sbcl-jpl-util))
+
+(define-public sbcl-jpl-queues
+ (package
+ (name "sbcl-jpl-queues")
+ (version "0.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "http://www.thoughtcrime.us/software/jpl-queues/jpl-queues-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "1wvvv7j117h9a42qaj1g4fh4mji28xqs7s60rn6d11gk9jl76h96"))))
+ (build-system asdf-build-system/sbcl)
+ (inputs
+ `(("jpl-util" ,sbcl-jpl-util)
+ ("bordeaux-threads" ,sbcl-bordeaux-threads)))
+ (arguments
+ ;; Tests seem to be broken.
+ `(#:tests? #f))
+ (synopsis "Common Lisp library implementing a few different kinds of
queues")
+ (description
+ "A Common Lisp library implementing a few different kinds of queues:
+
+@itemize
+@item Bounded and unbounded FIFO queues.
+@item Lossy bounded FIFO queues that drop elements when full.
+@item Unbounded random-order queues that use less memory than unbounded FIFO
queues.
+@end itemize
+
+Additionally, a synchronization wrapper is provided to make any queue
+conforming to the @command{jpl-queues} API thread-safe for lightweight
+multithreading applications. (See Calispel for a more sophisticated CL
+multithreaded message-passing library with timeouts and alternation among
+several blockable channels.)")
+ (home-page "https://www.thoughtcrime.us/software/jpl-queues/")
+ (license license:isc)))
+
+(define-public cl-jpl-queues
+ (sbcl-package->cl-source-package sbcl-jpl-queues))
+
+(define-public ecl-jpl-queues
+ (sbcl-package->ecl-package sbcl-jpl-queues))