summary refs log tree commit diff
diff options
context:
space:
mode:
authorPierre Neidhardt <mail@ambrevar.xyz>2020-11-10 09:58:44 +0100
committerPierre Neidhardt <mail@ambrevar.xyz>2020-11-10 09:59:49 +0100
commit94585fffb23079fe71110e2bf99782eb4ccfa12b (patch)
tree2a398e9534d29d47f5c2fcaf8fe1f2912ad6e682
parentebabcf236864ac892d201a12edd76ae7a6b1fe10 (diff)
downloadguix-94585fffb23079fe71110e2bf99782eb4ccfa12b.tar.gz
gnu: Add sbcl-contextl.
* gnu/packages/lisp-xyz.scm (cl-contextl, ecl-contextl, sbcl-contextl): New variables.
-rw-r--r--gnu/packages/lisp-xyz.scm36
1 files changed, 36 insertions, 0 deletions
diff --git a/gnu/packages/lisp-xyz.scm b/gnu/packages/lisp-xyz.scm
index 2d33c1880e..75195f9ea5 100644
--- a/gnu/packages/lisp-xyz.scm
+++ b/gnu/packages/lisp-xyz.scm
@@ -13580,6 +13580,42 @@ LispWorks library that are used in software such as ContextL.")
 (define-public ecl-lw-compat
   (sbcl-package->ecl-package sbcl-lw-compat))
 
+(define-public sbcl-contextl
+  ;; No release since 2013.
+  (let ((commit "5d18a71a85824f6c25a9f35a21052f967b8b6bb9"))
+    (package
+      (name "sbcl-contextl")
+      (version (git-version "1.0.0" "1" commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/pcostanza/contextl/")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "0gk1izx6l6g48nypmnm9r6mzjx0jixqjj2kc6klf8a88rr5xd226"))))
+      (build-system asdf-build-system/sbcl)
+      (inputs
+       `(("closer-mop" ,sbcl-closer-mop)
+         ("lw-compat" ,sbcl-lw-compat)))
+      (home-page "https://github.com/pcostanza/contextl")
+      (synopsis "Context-oriented programming for Common Lisp")
+      (description "ContextL is a CLOS extension for Context-Oriented
+Programming (COP).
+
+Find overview of ContextL's features in an overview paper:
+@url{http://www.p-cos.net/documents/contextl-soa.pdf}.  See also this general
+overview article about COP which also contains some ContextL examples:
+@url{http://www.jot.fm/issues/issue_2008_03/article4/}.")
+      (license license:expat))))
+
+(define-public cl-contextl
+  (sbcl-package->cl-source-package sbcl-contextl))
+
+(define-public ecl-contextl
+  (sbcl-package->ecl-package sbcl-contextl))
+
 (define-public sbcl-hu.dwim.common-lisp
   (package
     (name "sbcl-hu.dwim.common-lisp")