summary refs log tree commit diff
path: root/gnu/packages/lisp.scm
diff options
context:
space:
mode:
authorPierre Neidhardt <mail@ambrevar.xyz>2020-04-02 11:45:16 +0200
committerPierre Neidhardt <mail@ambrevar.xyz>2020-04-02 11:47:52 +0200
commit12d0bd26acec1d7865a5699a1e29445168e1171b (patch)
treeb6626ba9f263b92d8b230f510724cd576141fa1c /gnu/packages/lisp.scm
parent0ad7e703c9adbb14f05378d5e25573d859829991 (diff)
downloadguix-12d0bd26acec1d7865a5699a1e29445168e1171b.tar.gz
gnu: Add ccl-1.12.
* gnu/packages/lisp.scm (ccl-1.12): New variable.
Diffstat (limited to 'gnu/packages/lisp.scm')
-rw-r--r--gnu/packages/lisp.scm47
1 files changed, 47 insertions, 0 deletions
diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm
index a65eb19e0c..ddd2c37eca 100644
--- a/gnu/packages/lisp.scm
+++ b/gnu/packages/lisp.scm
@@ -687,6 +687,53 @@ interface.")
     (license (list license:lgpl2.1
                    license:clarified-artistic)))) ;TRIVIAL-LDAP package
 
+(define-public ccl-1.12
+  ;; This is a development snapshot.  The last stable version is from November
+  ;; 2017 and does not support package-local-nicknames, which prevents CCL
+  ;; from compiling some third-party packages.
+  ;; The main drawback of 1.12 is that ARM is not supported for now.
+  (package
+    (inherit ccl)
+    (version "1.12-dev.5")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/Clozure/ccl/")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name "ccl" version))
+              (sha256
+               (base32
+                "1za5j4ll4hk1vi1i7v1bmqhaqbsgc16izn46qmry7dnbig0rdqm0"))))
+    ;; CCL consists of a "lisp kernel" and "heap image".
+    ;; See comment in `ccl' package.
+    (inputs
+     `(("ccl-bootstrap"
+        ,(origin
+           (method url-fetch)
+           (uri (string-append
+                 "https://github.com/Clozure/ccl/releases/download/v" version "/"
+                 (match (%current-system)
+                   ((or "i686-linux" "x86_64-linux") "linuxx86")
+                   ;; Prevent errors when querying this package on unsupported
+                   ;; platforms, e.g. when running "guix package --search="
+                   (_ "UNSUPPORTED"))
+                 ".tar.gz"))
+           (sha256
+            (base32
+             (match (%current-system)
+               ((or "i686-linux" "x86_64-linux")
+                "1pqiybxxv4wx5zlp1i60nim3njaczwl5321bdwq6frjsl3s95xmb")
+               (_ ""))))))))
+    (arguments
+     (substitute-keyword-arguments (package-arguments ccl)
+       ((#:phases phases)
+        `(modify-phases ,phases
+           (replace 'unpack (assoc-ref %standard-phases 'unpack))
+           (add-after 'unpack 'unpack-image
+             (lambda* (#:key inputs #:allow-other-keys)
+               (invoke "tar" "xzvf" (assoc-ref inputs "ccl-bootstrap"))))))))
+    (supported-systems '("i686-linux" "x86_64-linux"))))
+
 (define-public lush2
   (package
     (name "lush2")