Patchwork [02/12] gnu: Add alexandria.

login
register
mail settings
Submitter Andy Patterson
Date Sept. 27, 2016, 4:15 a.m.
Message ID <20160927041532.27097-3-ajpatter@uwaterloo.ca>
Download mbox | patch
Permalink /patch/16036/
State New
Headers show

Comments

Andy Patterson - Sept. 27, 2016, 4:15 a.m.
* gnu/packages/lisp.scm (alexandria, alexandria-sbcl, alexandria-ecl):
  New variables.
---
 gnu/packages/lisp.scm | 38 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 38 insertions(+)
Ludovic Courtès - Oct. 8, 2016, 12:43 p.m.
Andy Patterson <ajpatter@uwaterloo.ca> skribis:

> * gnu/packages/lisp.scm (alexandria, alexandria-sbcl, alexandria-ecl):
>   New variables.

[...]

> +(define-public alexandria
> +  (let ((revision "1")
> +        (commit "926a066611b7b11cb71e26c827a271e500888c30"))
> +    (package
> +      (name "alexandria")
> +      (version (string-append "0.0.0-" revision "." (string-take commit 7)))
> +      (source (origin
> +                (method git-fetch)
> +                (uri
> +                 (git-reference
> +                  (url "https://gitlab.common-lisp.net/alexandria/alexandria.git")
> +                  (commit commit)))
> +                (sha256
> +                 (base32 "18yncicdkh294j05rhgm23gzi36y9qy6vrfba8vg69jrxjp1hx8l"))
> +                (file-name (string-append name "-" version "-checkout"))))
> +      (build-system asdf-build-system/source)
> +      (synopsis "Collection of portable utilities for Common Lisp")
> +      (description "Alexandria is a collection of portable utilities.  It does
> +not contain conceptual extensions to Common Lisp.  It is conservative in
> +scope, and portable between implementations.")
> +      (home-page "https://common-lisp.net/project/alexandria/")
> +      (license license:public-domain))))
> +
> +(define-public alexandria-sbcl
> +  (package
> +    (inherit alexandria)
> +    (name "alexandria-sbcl")
> +    (build-system asdf-build-system/sbcl)
> +    (inputs `(("alexandria" ,alexandria)))))
> +
> +(define-public alexandria-ecl
> +  (package
> +    (inherit alexandria)
> +    (name "alexandria-ecl")
> +    (build-system asdf-build-system/ecl)
> +    (inputs `(("alexandria" ,alexandria)))))

It’s unusual that the “alexandria” package provides the source and that
the others depend on it rather than have an ‘origin’ as their source.
But as you wrote in the build system code, the raw source can be
interpreted by CL implementations other than SBCL or ECL, right?

Otherwise LGTM.

Thanks,
Ludo’.

Patch

diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm
index d1180a7..e6e69a2 100644
--- a/gnu/packages/lisp.scm
+++ b/gnu/packages/lisp.scm
@@ -33,6 +33,7 @@ 
   #:use-module (guix git-download)
   #:use-module (guix utils)
   #:use-module (guix build-system gnu)
+  #:use-module (guix build-system asdf)
   #:use-module (gnu packages base)
   #:use-module (gnu packages multiprecision)
   #:use-module (gnu packages bdw-gc)
@@ -530,3 +531,40 @@  simple, elegant Scheme dialect.  It is a lisp-1 with lexical scope.
 The core is 12 builtin special forms and 33 builtin functions.")
       (home-page "https://github.com/JeffBezanson/femtolisp")
       (license license:bsd-3))))
+
+(define-public alexandria
+  (let ((revision "1")
+        (commit "926a066611b7b11cb71e26c827a271e500888c30"))
+    (package
+      (name "alexandria")
+      (version (string-append "0.0.0-" revision "." (string-take commit 7)))
+      (source (origin
+                (method git-fetch)
+                (uri
+                 (git-reference
+                  (url "https://gitlab.common-lisp.net/alexandria/alexandria.git")
+                  (commit commit)))
+                (sha256
+                 (base32 "18yncicdkh294j05rhgm23gzi36y9qy6vrfba8vg69jrxjp1hx8l"))
+                (file-name (string-append name "-" version "-checkout"))))
+      (build-system asdf-build-system/source)
+      (synopsis "Collection of portable utilities for Common Lisp")
+      (description "Alexandria is a collection of portable utilities.  It does
+not contain conceptual extensions to Common Lisp.  It is conservative in
+scope, and portable between implementations.")
+      (home-page "https://common-lisp.net/project/alexandria/")
+      (license license:public-domain))))
+
+(define-public alexandria-sbcl
+  (package
+    (inherit alexandria)
+    (name "alexandria-sbcl")
+    (build-system asdf-build-system/sbcl)
+    (inputs `(("alexandria" ,alexandria)))))
+
+(define-public alexandria-ecl
+  (package
+    (inherit alexandria)
+    (name "alexandria-ecl")
+    (build-system asdf-build-system/ecl)
+    (inputs `(("alexandria" ,alexandria)))))