summary refs log tree commit diff
path: root/gnu/packages/lisp-xyz.scm
diff options
context:
space:
mode:
authorMarius Bakke <mbakke@fastmail.com>2020-01-03 19:41:05 +0100
committerMarius Bakke <mbakke@fastmail.com>2020-01-03 19:41:05 +0100
commit982eff9e841f3539e4ecf93669435a290bfde571 (patch)
treeb1e3f6fc85c6c35c264f091eb2fc5cff8514c230 /gnu/packages/lisp-xyz.scm
parent7ba6d70e4528201151195e1ed2175ee4828bdb2f (diff)
parent7158fe4ded47a599ceb8d556132ba83fcc686962 (diff)
downloadguix-982eff9e841f3539e4ecf93669435a290bfde571.tar.gz
Merge branch 'master' into staging
Diffstat (limited to 'gnu/packages/lisp-xyz.scm')
-rw-r--r--gnu/packages/lisp-xyz.scm244
1 files changed, 240 insertions, 4 deletions
diff --git a/gnu/packages/lisp-xyz.scm b/gnu/packages/lisp-xyz.scm
index a798eb156e..0aa7a21ec5 100644
--- a/gnu/packages/lisp-xyz.scm
+++ b/gnu/packages/lisp-xyz.scm
@@ -15,6 +15,7 @@
 ;;; Copyright © 2019 Katherine Cox-Buday <cox.katherine.e@gmail.com>
 ;;; Copyright © 2019 Jesse Gildersleve <jessejohngildersleve@protonmail.com>
 ;;; Copyright © 2019 Guillaume Le Vaillant <glv@posteo.net>
+;;; Copyright © 2019 Brett Gilio <brettg@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -822,6 +823,53 @@ compressor.  It works on data produced by @code{parse-js} to generate a
 (define-public cl-uglify-js
   (sbcl-package->cl-source-package sbcl-cl-uglify-js))
 
+(define-public uglify-js
+  (package
+    (inherit sbcl-cl-uglify-js)
+    (name "uglify-js")
+    (build-system trivial-build-system)
+    (arguments
+     `(#:modules ((guix build utils))
+       #:builder
+       (let* ((bin    (string-append (assoc-ref %outputs "out") "/bin/"))
+              (script (string-append bin "uglify-js")))
+         (use-modules (guix build utils))
+         (mkdir-p bin)
+         (with-output-to-file script
+           (lambda _
+             (format #t "#!~a/bin/sbcl --script
+ (require :asdf)
+ (push (truename \"~a/lib/sbcl\") asdf:*central-registry*)"
+                     (assoc-ref %build-inputs "sbcl")
+                     (assoc-ref %build-inputs "sbcl-cl-uglify-js"))
+             ;; FIXME: cannot use progn here because otherwise it fails to
+             ;; find cl-uglify-js.
+             (for-each
+              write
+              '(;; Quiet, please!
+                (let ((*standard-output* (make-broadcast-stream))
+                      (*error-output* (make-broadcast-stream)))
+                  (asdf:load-system :cl-uglify-js))
+                (let ((file (cadr *posix-argv*)))
+                  (if file
+                      (format t "~a"
+                              (cl-uglify-js:ast-gen-code
+                               (cl-uglify-js:ast-mangle
+                                (cl-uglify-js:ast-squeeze
+                                 (with-open-file (in file)
+                                                 (parse-js:parse-js in))))
+                               :beautify nil))
+                      (progn
+                       (format *error-output*
+                               "Please provide a JavaScript file.~%")
+                       (sb-ext:exit :code 1))))))))
+         (chmod script #o755)
+         #t)))
+    (inputs
+     `(("sbcl" ,sbcl)
+       ("sbcl-cl-uglify-js" ,sbcl-cl-uglify-js)))
+    (synopsis "JavaScript compressor")))
+
 (define-public sbcl-cl-strings
   (let ((revision "1")
         (commit "c5c5cbafbf3e6181d03c354d66e41a4f063f00ae"))
@@ -6651,8 +6699,8 @@ threads.")
          ((#:tests? _ #f) #f))))))
 
 (define-public sbcl-cl-store
-  (let ((commit "cd01f2610d3360dc01ab972bd9317407aaea7745")
-        (revision "0"))
+  (let ((commit "c787337a16ea8cf8a06227f35933a4ec774746b3")
+        (revision "1"))
     (package
       (name "sbcl-cl-store")
       (version (git-version "0.8.11" revision commit))
@@ -6665,7 +6713,7 @@ threads.")
          (file-name (git-file-name name version))
          (sha256
           (base32
-           "05b7kh5af2ax7vlmphpac4vbqr84j5ivppj96qzb64fxpjpqglm4"))))
+           "194srkg8nrym19c6i7zbnkzshc1qhqa82m53qnkirz9fw928bqxr"))))
       (build-system asdf-build-system/sbcl)
       (native-inputs
        `(("rt" ,sbcl-rt)))
@@ -6673,7 +6721,7 @@ threads.")
       (description
        "CL-STORE is a portable serialization package which should give you the
 ability to store all Common Lisp data types into streams.")
-      (home-page "http://www.common-lisp.net/project/cl-store/")
+      (home-page "https://www.common-lisp.net/project/cl-store/")
       (license license:expat))))
 
 (define-public cl-store
@@ -7203,3 +7251,191 @@ path, maximum flow, minimum spanning tree, etc.).")
        ((#:asd-file _ "") "graph.json.asd")
        ((#:asd-system-name _ #f) "graph-json")))
     (synopsis "Serialize graphs to and from JSON format")))
+
+(define-public sbcl-trivial-indent
+  (let ((commit "2d016941751647c6cc5bd471751c2cf68861c94a")
+        (revision "0"))
+    (package
+      (name "sbcl-trivial-indent")
+      (version (git-version "1.0.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri
+          (git-reference
+           (url "https://github.com/Shinmera/trivial-indent")
+           (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "1sj90nqz17w4jq0ixz00gb9g5g6d2s7l8r17zdby27gxxh51w266"))))
+      (build-system asdf-build-system/sbcl)
+      (synopsis "Simple Common Lisp library to allow indentation hints for SWANK")
+      (description
+       "This library allows you to define custom indentation hints for your
+macros if the one recognised by SLIME automatically produces unwanted
+results.")
+      (home-page "https://shinmera.github.io/trivial-indent/")
+      (license license:zlib))))
+
+(define-public cl-trivial-indent
+  (sbcl-package->cl-source-package sbcl-trivial-indent))
+
+(define-public sbcl-documentation-utils
+  (let ((commit "98630dd5f7e36ae057fa09da3523f42ccb5d1f55")
+        (revision "0"))
+    (package
+      (name "sbcl-documentation-utils")
+      (version (git-version "1.2.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri
+          (git-reference
+           (url "https://github.com/Shinmera/documentation-utils.git")
+           (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "098qhkqskmmrh4wix34mawf7p5c87yql28r51r75yjxj577k5idq"))))
+      (build-system asdf-build-system/sbcl)
+      (inputs
+       `(("trivial-indent" ,sbcl-trivial-indent)))
+      (synopsis "Few simple tools to document Common Lisp libraries")
+      (description
+       "This is a small library to help you with managing the Common Lisp
+docstrings for your library.")
+      (home-page "https://shinmera.github.io/documentation-utils/")
+      (license license:zlib))))
+
+(define-public cl-documentation-utils
+  (sbcl-package->cl-source-package sbcl-documentation-utils))
+
+(define-public sbcl-form-fiddle
+  (let ((commit "e0c23599dbb8cff3e83e012f3d86d0764188ad18")
+        (revision "0"))
+    (package
+      (name "sbcl-form-fiddle")
+      (version (git-version "1.1.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri
+          (git-reference
+           (url "https://github.com/Shinmera/form-fiddle")
+           (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "041iznc9mpfyrl0sv5893ys9pbb2pvbn9g3clarqi7gsfj483jln"))))
+      (build-system asdf-build-system/sbcl)
+      (inputs
+       `(("documentation-utils" ,sbcl-documentation-utils)))
+      (synopsis "Utilities to destructure Common Lisp lambda forms")
+      (description
+       "Often times we need to destructure a form definition in a Common Lisp
+macro.  This library provides a set of simple utilities to help with that.")
+      (home-page "https://shinmera.github.io/form-fiddle/")
+      (license license:zlib))))
+
+(define-public cl-form-fiddle
+  (sbcl-package->cl-source-package sbcl-form-fiddle))
+
+(define-public sbcl-parachute
+  (let ((commit "ca04dd8e43010a6dfffa26dbe1d62af86008d666")
+        (revision "0"))
+    (package
+      (name "sbcl-parachute")
+      (version (git-version "1.1.1" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri
+          (git-reference
+           (url "https://github.com/Shinmera/parachute")
+           (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "1mvsm3r0r6a2bg75nw0q7n9vlby3ch45qjl7hnb5k1z2n5x5lh60"))))
+      (build-system asdf-build-system/sbcl)
+      (inputs
+       `(("documentation-utils" ,sbcl-documentation-utils)
+         ("form-fiddle" ,sbcl-form-fiddle)))
+      (synopsis "Extensible and cross-compatible testing framework for Common Lisp")
+      (description
+       "Parachute is a simple-to-use and extensible testing framework.
+In Parachute, things are organised as a bunch of named tests within a package.
+Each test can contain a bunch of test forms that make up its body.")
+      (home-page "https://shinmera.github.io/parachute/")
+      (license license:zlib))))
+
+(define-public cl-parachute
+  (sbcl-package->cl-source-package sbcl-parachute))
+
+(define-public sbcl-array-utils
+  (let ((commit "f90eb9070d0b2205af51126a35033574725e5c56")
+        (revision "0"))
+    (package
+      (name "sbcl-array-utils")
+      (version (git-version "1.1.1" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri
+          (git-reference
+           (url "https://github.com/Shinmera/array-utils")
+           (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "0zhwfbpr53vs1ii4sx75dz2k9yhh1xpwdqqpg8nmfndxkmhpbi3x"))))
+      (build-system asdf-build-system/sbcl)
+      (native-inputs
+       `(("parachute" ,sbcl-parachute)))
+      (inputs
+       `(("documentation-utils" ,sbcl-documentation-utils)))
+      (synopsis "Tiny collection of array and vector utilities for Common Lisp")
+      (description
+       "A miniature toolkit that contains some useful shifting/popping/pushing
+functions for arrays and vectors.  Originally from Plump.")
+      (home-page "https://shinmera.github.io/array-utils/")
+      (license license:zlib))))
+
+(define-public cl-array-utils
+  (sbcl-package->cl-source-package sbcl-array-utils))
+
+(define-public sbcl-plump
+  (let ((commit "16f1231bf706cfbc54d9e55a853ca945e4452a08")
+        (revision "0"))
+    (package
+      (name "sbcl-plump")
+      (version (git-version "2.0.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri
+          (git-reference
+           (url "https://github.com/Shinmera/plump")
+           (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "0705k8pbip51v74rccgwscwph439f2pma9f915qf1h4bhjx999ip"))))
+      (build-system asdf-build-system/sbcl)
+      (inputs
+       `(("array-utils" ,sbcl-array-utils)
+         ("documentation-utils" ,sbcl-documentation-utils)))
+      (synopsis "Lenient XML / XHTML / HTML parser for Common Lisp")
+      (description
+       "Plump is a parser for HTML/XML-like documents, focusing on being
+lenient towards invalid markup.  It can handle things like invalid attributes,
+bad closing tag order, unencoded entities, inexistent tag types, self-closing
+tags and so on.  It parses documents to a class representation and offers a
+small set of DOM functions to manipulate it.  It can be extended to parse to
+your own classes.")
+      (home-page "https://shinmera.github.io/plump/")
+      (license license:zlib))))
+
+(define-public cl-plump
+  (sbcl-package->cl-source-package sbcl-plump))