summary refs log tree commit diff
path: root/gnu/packages/lisp-xyz.scm
diff options
context:
space:
mode:
authorPierre Neidhardt <mail@ambrevar.xyz>2022-06-30 15:54:09 +0200
committerPierre Neidhardt <mail@ambrevar.xyz>2022-06-30 20:01:36 +0200
commit657751669bee11f177963767eb2ae97ec29f4ede (patch)
tree4152af329356ec17da4d45021fe55ed989f47c3f /gnu/packages/lisp-xyz.scm
parent6a65f1615c75b32c327c135bd3e997237d31951d (diff)
downloadguix-657751669bee11f177963767eb2ae97ec29f4ede.tar.gz
gnu: Add screamer.
* gnu/packages/lisp-xyz.scm (cl-screamer, ecl-screamer, sbcl-screamer): New variables.
Diffstat (limited to 'gnu/packages/lisp-xyz.scm')
-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 2b9dd0b086..addada891d 100644
--- a/gnu/packages/lisp-xyz.scm
+++ b/gnu/packages/lisp-xyz.scm
@@ -21636,3 +21636,42 @@ operating on them.")
 
 (define-public ecl-algebraic-data-type
   (sbcl-package->ecl-package sbcl-cl-algebraic-data-type))
+
+(define-public sbcl-screamer
+  (let ((commit "ce50614024de090b376107668da5e53232540ec7"))
+    (package
+      (name "sbcl-screamer")
+      (version (git-version "0.0.1" "1" commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/nikodemus/screamer/")
+               (commit commit)))
+         (file-name (git-file-name "cl-screamer" version))
+         (sha256
+          (base32 "1jl42pl6kwkiq71d0naf3r1mn1qy89ndimfgiz58c4g66xbjb7kx"))))
+      (build-system asdf-build-system/sbcl)
+      (native-inputs
+       (list sbcl-iterate
+             sbcl-hu.dwim.stefil))
+      (home-page "http://nikodemus.github.io/screamer/")
+      (synopsis "Nondeterministic programming and constraint propagation")
+      (description
+       "Screamer is an extension of Common Lisp that adds support for
+nondeterministic programming.  Screamer consists of two levels.  The basic
+nondeterministic level adds support for backtracking and undoable side
+effects.  On top of this nondeterministic substrate, Screamer provides a
+comprehensive constraint programming language in which one can formulate and
+solve mixed systems of numeric and symbolic constraints.  Together, these two
+levels augment Common Lisp with practically all of the functionality of both
+Prolog and constraint logic programming languages such as CHiP and CLP(R).
+Furthermore, Screamer is fully integrated with Common Lisp.  Screamer programs
+can coexist and interoperate with other extensions to as CLIM and Iterate.")
+      (license license:expat))))
+
+(define-public cl-screamer
+  (sbcl-package->cl-source-package sbcl-screamer))
+
+(define-public ecl-screamer
+  (sbcl-package->ecl-package sbcl-screamer))