summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJacob MacDonald <jaccarmac@gmail.com>2021-12-13 12:10:07 -0600
committerGuillaume Le Vaillant <glv@posteo.net>2021-12-16 11:02:25 +0100
commitd1269c65d3ab36bd9a9a10af5eb085b92f710280 (patch)
tree2c9aeb4efd65d3506a443762c1772d38f7d55a41
parentabd2aed92681594251f11cf65db813767c9552af (diff)
gnu: Add cl-random-state.
* gnu/packages/lisp-xyz.scm (sbcl-random-state, cl-random-state, ecl-random-state): New variables. Signed-off-by: Guillaume Le Vaillant <glv@posteo.net>
-rw-r--r--gnu/packages/lisp-xyz.scm39
1 files changed, 39 insertions, 0 deletions
diff --git a/gnu/packages/lisp-xyz.scm b/gnu/packages/lisp-xyz.scm
index 4120e551ba..77f8defb6f 100644
--- a/gnu/packages/lisp-xyz.scm
+++ b/gnu/packages/lisp-xyz.scm
@@ -20030,3 +20030,42 @@ parsers.")
(define-public ecl-maxpc
(sbcl-package->ecl-package sbcl-maxpc))
+
+(define-public sbcl-random-state
+ (let ((commit "c270d4f15e0b66ba9680ca8734a5de56959cb118")
+ (revision "1"))
+ (package
+ (name "sbcl-random-state")
+ (version (git-version "0.1.0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/Shinmera/random-state")
+ (commit commit)))
+ (file-name (git-file-name "cl-random-state" version))
+ (sha256
+ (base32 "0r3bk6hqpr0qmpza93pknl8wpsd6y0yy9qg7vz751a7gzzww9vj6"))))
+ (build-system asdf-build-system/sbcl)
+ (inputs
+ (list sbcl-documentation-utils))
+ (home-page "https://shinmera.github.io/random-state/")
+ (synopsis "Portable random number generation")
+ (description
+ "This library is a collection of @dfn{pseudo random number generators}.
+
+While Common Lisp does provide a @code{RANDOM} function, it does not allow the
+user to pass an explicit @code{SEED}, nor to portably exchange the random
+state between implementations. This can be a headache in cases like games,
+where a controlled seeding process can be very useful.
+
+For both curiosity and convenience, this library offers multiple algorithms to
+generate random numbers, as well as a bunch of generally useful methods to
+produce desired ranges.")
+ (license license:zlib))))
+
+(define-public cl-random-state
+ (sbcl-package->cl-source-package sbcl-random-state))
+
+(define-public ecl-random-state
+ (sbcl-package->ecl-package sbcl-random-state))