diff mbox series

[bug#52387,2/5] gnu: Add cl-random-state.

Message ID CACy6W0B27bTxe2Hcd7DaUeoUhA3wAu3kn58i9vZ=s-htUU6t3A@mail.gmail.com
State Accepted
Headers show
Series None | expand

Commit Message

Jacob MacDonald Dec. 13, 2021, 6:41 p.m. UTC

diff mbox series

Patch

From 35696cd20737a0f7d6b9e0714658dd66da630dca Mon Sep 17 00:00:00 2001
From: Jacob MacDonald <jaccarmac@gmail.com>
Date: Mon, 13 Dec 2021 12:10:07 -0600
Subject: [PATCH 2/5] gnu: Add cl-random-state.

* gnu/packages/lisp-xyz.scm (sbcl-random-state, cl-random-state,
  ecl-random-state): New variables.
---
 gnu/packages/lisp-xyz.scm | 39 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 39 insertions(+)

diff --git a/gnu/packages/lisp-xyz.scm b/gnu/packages/lisp-xyz.scm
index 9cfd67d591..11c78a306c 100644
--- a/gnu/packages/lisp-xyz.scm
+++ b/gnu/packages/lisp-xyz.scm
@@ -20293,3 +20293,42 @@  (define-public cl-maxpc
 
 (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 name version))
+         (sha256
+          (base32 "0r3bk6hqpr0qmpza93pknl8wpsd6y0yy9qg7vz751a7gzzww9vj6"))))
+      (build-system asdf-build-system/sbcl)
+      (inputs
+       `(("documentation-utils" ,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))
-- 
2.34.0