gnu: Add ccl-1.12.
authorPierre Neidhardt <mail@ambrevar.xyz>
Thu, 2 Apr 2020 09:45:16 +0000 (11:45 +0200)
committerPierre Neidhardt <mail@ambrevar.xyz>
Thu, 2 Apr 2020 09:47:52 +0000 (11:47 +0200)
* gnu/packages/lisp.scm (ccl-1.12): New variable.

gnu/packages/lisp.scm

index a65eb19..ddd2c37 100644 (file)
@@ -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")