summary refs log tree commit diff
diff options
context:
space:
mode:
authorPierre Neidhardt <ambrevar@gmail.com>2018-08-24 11:24:21 +0200
committerPierre Neidhardt <mail@ambrevar.xyz>2018-10-19 17:54:10 +0200
commit8f41fa066ec624146ace6052d718850ccaff5bcc (patch)
tree48a120996e48dfb05b767b6833538669521095e8
parent232e1abce7f5d949256bd851b8bf0c2d0c4830fa (diff)
downloadguix-8f41fa066ec624146ace6052d718850ccaff5bcc.tar.gz
gnu: Add jpl-queues.
* gnu/packages/lisp.scm (cl-jpl-queues, ecl-jpl-queues, sbcl-jpl-queues): New variables.
-rw-r--r--gnu/packages/lisp.scm45
1 files changed, 45 insertions, 0 deletions
diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm
index 9688e2c44d..72d6a6c991 100644
--- a/gnu/packages/lisp.scm
+++ b/gnu/packages/lisp.scm
@@ -1741,3 +1741,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))