gnu: Add cl-fset.
[jackhill/guix/guix.git] / gnu / packages / lisp-xyz.scm
index c0ea27a..49b2518 100644 (file)
@@ -5,7 +5,7 @@
 ;;; Copyright © 2016 Federico Beffa <beffa@fbengineering.ch>
 ;;; Copyright © 2016, 2017 ng0 <ng0@n0.is>
 ;;; Copyright © 2016, 2017 Andy Patterson <ajpatter@uwaterloo.ca>
-;;; Copyright © 2017, 2019 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2017, 2019, 2020 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2017, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Benjamin Slade <slade@jnanam.net>
@@ -371,6 +371,219 @@ ANSI-compliant Common Lisp implementations.")
 (define-public cl-unicode
   (sbcl-package->cl-source-package sbcl-cl-unicode))
 
+(define-public sbcl-zpb-ttf
+  (package
+    (name "sbcl-zpb-ttf")
+    (version "1.0.3")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/xach/zpb-ttf.git")
+             (commit (string-append "release-" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "1wh66vjijzqlydnrihynpwp6796917xwrh0i9li93c17kyxa74ih"))))
+    (build-system asdf-build-system/sbcl)
+    (home-page "https://github.com/xach/zpb-ttf")
+    (synopsis "TrueType font file access for Common Lisp")
+    (description
+     "ZPB-TTF is a TrueType font file parser that provides an interface for
+reading typographic metrics, glyph outlines, and other information from the
+file.")
+    (license license:bsd-2)))
+
+(define-public ecl-zpb-ttf
+  (sbcl-package->ecl-package sbcl-zpb-ttf))
+
+(define-public cl-zpb-ttf
+  (sbcl-package->cl-source-package sbcl-zpb-ttf))
+
+(define-public sbcl-cl-aa
+  (package
+    (name "sbcl-cl-aa")
+    (version "0.1.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "http://projects.tuxee.net/cl-vectors/"
+                           "files/cl-vectors-" version ".tar.gz"))
+       (sha256
+        (base32
+         "04lhwi0kq8pkwhgd885pk80m1cp9sfvjjn5zj70s1dnckibhdmqh"))))
+    (build-system asdf-build-system/sbcl)
+    (arguments '(#:asd-file "cl-aa.asd"))
+    (home-page "http://projects.tuxee.net/cl-vectors/")
+    (synopsis "Polygon rasterizer")
+    (description
+     "This is a Common Lisp library implementing the AA polygon rasterization
+algorithm from the @url{http://antigrain.com, Antigrain} project.")
+    (license license:expat)))
+
+(define-public ecl-cl-aa
+  (sbcl-package->ecl-package sbcl-cl-aa))
+
+(define-public cl-aa
+  (sbcl-package->cl-source-package sbcl-cl-aa))
+
+(define-public sbcl-cl-paths
+  (package
+    (inherit sbcl-cl-aa)
+    (name "sbcl-cl-paths")
+    (arguments '(#:asd-file "cl-paths.asd"))
+    (synopsis "Facilities to create and manipulate vectorial paths")
+    (description
+     "This package provides facilities to create and manipulate vectorial
+paths.")))
+
+(define-public ecl-cl-paths
+  (sbcl-package->ecl-package sbcl-cl-paths))
+
+(define-public cl-paths
+  (sbcl-package->cl-source-package sbcl-cl-paths))
+
+(define-public sbcl-cl-paths-ttf
+  (package
+    (inherit sbcl-cl-aa)
+    (name "sbcl-cl-paths-ttf")
+    (arguments '(#:asd-file "cl-paths-ttf.asd"))
+    (inputs
+     `(("cl-paths" ,sbcl-cl-paths)
+       ("zpb-ttf" ,sbcl-zpb-ttf)))
+    (synopsis "Facilities to create and manipulate vectorial paths")
+    (description
+     "This package provides facilities to create and manipulate vectorial
+paths.")))
+
+(define-public ecl-cl-paths-ttf
+  (sbcl-package->ecl-package sbcl-cl-paths-ttf))
+
+(define-public cl-paths-ttf
+  (sbcl-package->cl-source-package sbcl-cl-paths-ttf))
+
+(define-public sbcl-cl-vectors
+  (package
+    (inherit sbcl-cl-aa)
+    (name "sbcl-cl-vectors")
+    (arguments '(#:asd-file "cl-vectors.asd"))
+    (inputs
+     `(("cl-aa" ,sbcl-cl-aa)
+       ("cl-paths" ,sbcl-cl-paths)))
+    (synopsis "Create, transform and render anti-aliased vectorial paths")
+    (description
+     "This is a pure Common Lisp library to create, transform and render
+anti-aliased vectorial paths.")))
+
+(define-public ecl-cl-vectors
+  (sbcl-package->ecl-package sbcl-cl-vectors))
+
+(define-public cl-vectors
+  (sbcl-package->cl-source-package sbcl-cl-vectors))
+
+(define-public sbcl-spatial-trees
+  ;; There have been no releases.
+  (let ((commit "81fdad0a0bf109c80a53cc96eca2e093823400ba")
+        (revision "1"))
+    (package
+      (name "sbcl-spatial-trees")
+      (version (git-version "0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/rpav/spatial-trees.git")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "11rhc6h501dwcik2igkszz7b9n515cr99m5pjh4r2qfwgiri6ysa"))))
+      (build-system asdf-build-system/sbcl)
+      (arguments
+       '(#:tests? #f           ; spatial-trees.test requires spatial-trees.nns
+         #:asd-file "spatial-trees.asd"
+         #:test-asd-file "spatial-trees.test.asd"))
+      (native-inputs
+       `(("fiveam" ,sbcl-fiveam)))
+      (home-page "https://github.com/rpav/spatial-trees")
+      (synopsis "Dynamic index data structures for spatially-extended data")
+      (description
+       "Spatial-trees is a set of dynamic index data structures for
+spatially-extended data.")
+      (license license:bsd-3))))
+
+(define-public ecl-spatial-trees
+  (sbcl-package->ecl-package sbcl-spatial-trees))
+
+(define-public cl-spatial-trees
+  (sbcl-package->cl-source-package sbcl-spatial-trees))
+
+(define-public sbcl-flexichain
+  ;; There are no releases.
+  (let ((commit "13d2a6c505ed0abfcd4c4ec7d7145059b06855d6")
+        (revision "1"))
+    (package
+      (name "sbcl-flexichain")
+      (version "1.5.1")
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/robert-strandh/Flexichain.git")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "0pfyvhsfbjd2sjb30grfs52r51a428xglv7bwydvpg2lc117qimg"))))
+      (build-system asdf-build-system/sbcl)
+      (home-page "https://github.com/robert-strandh/Flexichain.git")
+      (synopsis "Dynamically add elements to or remove them from sequences")
+      (description
+       "This package provides an implementation of the flexichain protocol,
+allowing client code to dynamically add elements to, and delete elements from
+a sequence (or chain) of such elements.")
+      (license license:lgpl2.1+))))
+
+(define-public ecl-flexichain
+  (sbcl-package->ecl-package sbcl-flexichain))
+
+(define-public cl-flexichain
+  (sbcl-package->cl-source-package sbcl-flexichain))
+
+(define-public sbcl-cl-pdf
+  ;; There are no releases
+  (let ((commit "752e337e6d6fc206f09d091a982e7f8e5c404e4e")
+        (revision "1"))
+    (package
+      (name "sbcl-cl-pdf")
+      (version (git-version "0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/mbattyani/cl-pdf.git")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "1cg3k3m3r11ipb8j008y8ipynj97l3xjlpi2knqc9ndmx4r3kb1r"))))
+      (build-system asdf-build-system/sbcl)
+      (inputs
+       `(("iterate" ,sbcl-iterate)
+         ("zpb-ttf" ,sbcl-zpb-ttf)))
+      (home-page "https://github.com/mbattyani/cl-pdf")
+      (synopsis "Common Lisp library for generating PDF files")
+      (description
+       "CL-PDF is a cross-platform Common Lisp library for generating PDF
+files.")
+      (license license:bsd-2))))
+
+(define-public ecl-cl-pdf
+  (sbcl-package->ecl-package sbcl-cl-pdf))
+
+(define-public cl-pdf
+  (sbcl-package->cl-source-package sbcl-cl-pdf))
+
 (define-public sbcl-clx
   (package
     (name "sbcl-clx")
@@ -3163,6 +3376,19 @@ client and server.")
      (build-system asdf-build-system/sbcl)
      (inputs
       `(("sbcl-lift" ,sbcl-lift)))
+     (arguments
+      `(#:phases
+        (modify-phases %standard-phases
+          (add-after 'check 'delete-test-results
+            (lambda* (#:key outputs #:allow-other-keys)
+              (let ((test-results (string-append (assoc-ref outputs "out")
+                                                 "/share/common-lisp/"
+                                                 (%lisp-type) "-source"
+                                                 "/trivial-backtrace"
+                                                 "/test-results")))
+                (when (file-exists? test-results)
+                  (delete-file-recursively test-results)))
+              #t)))))
      (home-page "https://common-lisp.net/project/trivial-backtrace/")
      (synopsis "Portable simple API to work with backtraces in Common Lisp")
      (description
@@ -8567,3 +8793,510 @@ visualization.")
 
 (define-public cl-ana.histogram
   (sbcl-package->cl-source-package sbcl-cl-ana.histogram))
+
+(define-public sbcl-cl-ana.file-utils
+  (package
+    (inherit sbcl-cl-ana-boot0)
+    (name "sbcl-cl-ana.file-utils")
+    (inputs
+     `(("external-program" ,sbcl-external-program)
+       ("split-sequence" ,sbcl-split-sequence)))
+    (arguments
+     (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
+       ((#:asd-file _ "") "file-utils/cl-ana.file-utils.asd")
+       ((#:asd-system-name _ #f) "cl-ana.file-utils")))))
+
+(define-public cl-ana.file-utils
+  (sbcl-package->cl-source-package sbcl-cl-ana.file-utils))
+
+(define-public ecl-cl-ana.file-utils
+  (sbcl-package->ecl-package sbcl-cl-ana.file-utils))
+
+(define-public sbcl-cl-ana.statistics
+  (package
+    (inherit sbcl-cl-ana-boot0)
+    (name "sbcl-cl-ana.statistics")
+    (inputs
+     `(("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
+       ("cl-ana.histogram" ,sbcl-cl-ana.histogram)
+       ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
+       ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
+       ("cl-ana.map" ,sbcl-cl-ana.map)))
+    (arguments
+     (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
+       ((#:asd-file _ "") "statistics/cl-ana.statistics.asd")
+       ((#:asd-system-name _ #f) "cl-ana.statistics")))))
+
+(define-public cl-ana.statistics
+  (sbcl-package->cl-source-package sbcl-cl-ana.statistics))
+
+(define-public sbcl-cl-ana.gnuplot-interface
+  (package
+    (inherit sbcl-cl-ana-boot0)
+    (name "sbcl-cl-ana.gnuplot-interface")
+    (inputs
+     `(("external-program" ,sbcl-external-program)))
+    (arguments
+     (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
+       ((#:asd-file _ "") "gnuplot-interface/cl-ana.gnuplot-interface.asd")
+       ((#:asd-system-name _ #f) "cl-ana.gnuplot-interface")))))
+
+(define-public cl-ana.gnuplot-interface
+  (sbcl-package->cl-source-package sbcl-cl-ana.gnuplot-interface))
+
+(define-public ecl-cl-ana.gnuplot-interface
+  (sbcl-package->ecl-package sbcl-cl-ana.gnuplot-interface))
+
+(define-public sbcl-cl-ana.plotting
+  (package
+    (inherit sbcl-cl-ana-boot0)
+    (name "sbcl-cl-ana.plotting")
+    (inputs
+     `(("alexandria" ,sbcl-alexandria)
+       ("cl-ana.error-propogation" ,sbcl-cl-ana.error-propogation)
+       ("cl-ana.functional-utils" ,sbcl-cl-ana.functional-utils)
+       ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
+       ("cl-ana.gnuplot-interface" ,sbcl-cl-ana.gnuplot-interface)
+       ("cl-ana.histogram" ,sbcl-cl-ana.histogram)
+       ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
+       ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
+       ("cl-ana.map" ,sbcl-cl-ana.map)
+       ("cl-ana.math-functions" ,sbcl-cl-ana.math-functions)
+       ("cl-ana.pathname-utils" ,sbcl-cl-ana.pathname-utils)
+       ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
+       ("cl-ana.tensor" ,sbcl-cl-ana.tensor)
+       ("external-program" ,sbcl-external-program)
+       ("split-sequence" ,sbcl-split-sequence)))
+    (arguments
+     (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
+       ((#:asd-file _ "") "plotting/cl-ana.plotting.asd")
+       ((#:asd-system-name _ #f) "cl-ana.plotting")))))
+
+(define-public cl-ana.plotting
+  (sbcl-package->cl-source-package sbcl-cl-ana.plotting))
+
+(define-public sbcl-cl-ana.table-viewing
+  (package
+    (inherit sbcl-cl-ana-boot0)
+    (name "sbcl-cl-ana.table-viewing")
+    (inputs
+     `(("alexandria" ,sbcl-alexandria)
+       ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
+       ("cl-ana.histogram" ,sbcl-cl-ana.histogram)
+       ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
+       ("cl-ana.plotting" ,sbcl-cl-ana.plotting)
+       ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
+       ("cl-ana.table" ,sbcl-cl-ana.table)))
+    (arguments
+     (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
+       ((#:asd-file _ "") "table-viewing/cl-ana.table-viewing.asd")
+       ((#:asd-system-name _ #f) "cl-ana.table-viewing")))))
+
+(define-public cl-ana.table-viewing
+  (sbcl-package->cl-source-package sbcl-cl-ana.table-viewing))
+
+(define-public sbcl-cl-ana.serialization
+  (package
+    (inherit sbcl-cl-ana-boot0)
+    (name "sbcl-cl-ana.serialization")
+    (inputs
+     `(("cl-ana.error-propogation" ,sbcl-cl-ana.error-propogation)
+       ("cl-ana.hdf-utils" ,sbcl-cl-ana.hdf-utils)
+       ("cl-ana.hdf-table" ,sbcl-cl-ana.hdf-table)
+       ("cl-ana.histogram" ,sbcl-cl-ana.histogram)
+       ("cl-ana.int-char" ,sbcl-cl-ana.int-char)
+       ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
+       ("cl-ana.typespec" ,sbcl-cl-ana.typespec)))
+    (arguments
+     (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
+       ((#:asd-file _ "") "serialization/cl-ana.serialization.asd")
+       ((#:asd-system-name _ #f) "cl-ana.serialization")))))
+
+(define-public cl-ana.serialization
+  (sbcl-package->cl-source-package sbcl-cl-ana.serialization))
+
+(define-public sbcl-cl-ana.makeres
+  (package
+    (inherit sbcl-cl-ana-boot0)
+    (name "sbcl-cl-ana.makeres")
+    (inputs
+     `(("alexandria" ,sbcl-alexandria)
+       ("cl-ana.error-propogation" ,sbcl-cl-ana.error-propogation)
+       ("cl-ana.file-utils" ,sbcl-cl-ana.file-utils)
+       ("cl-ana.functional-utils" ,sbcl-cl-ana.functional-utils)
+       ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
+       ("cl-ana.hash-table-utils" ,sbcl-cl-ana.hash-table-utils)
+       ("cl-ana.hdf-utils" ,sbcl-cl-ana.hdf-utils)
+       ("cl-ana.histogram" ,sbcl-cl-ana.histogram)
+       ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
+       ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
+       ("cl-ana.map" ,sbcl-cl-ana.map)
+       ("cl-ana.memoization" ,sbcl-cl-ana.memoization)
+       ("cl-ana.pathname-utils" ,sbcl-cl-ana.pathname-utils)
+       ("cl-ana.plotting" ,sbcl-cl-ana.plotting)
+       ("cl-ana.reusable-table" ,sbcl-cl-ana.reusable-table)
+       ("cl-ana.serialization" ,sbcl-cl-ana.serialization)
+       ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
+       ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)
+       ("cl-ana.table" ,sbcl-cl-ana.table)
+       ("external-program" ,sbcl-external-program)))
+    (native-inputs
+     `(("cl-fad" ,sbcl-cl-fad)))
+    (arguments
+     (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
+       ((#:asd-file _ "") "makeres/cl-ana.makeres.asd")
+       ((#:asd-system-name _ #f) "cl-ana.makeres")))))
+
+(define-public cl-ana.makeres
+  (sbcl-package->cl-source-package sbcl-cl-ana.makeres))
+
+(define-public sbcl-cl-ana.makeres-macro
+  (package
+    (inherit sbcl-cl-ana-boot0)
+    (name "sbcl-cl-ana.makeres-macro")
+    (inputs
+     `(("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
+       ("cl-ana.makeres" ,sbcl-cl-ana.makeres)))
+    (arguments
+     (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
+       ((#:asd-file _ "") "makeres-macro/cl-ana.makeres-macro.asd")
+       ((#:asd-system-name _ #f) "cl-ana.makeres-macro")))))
+
+(define-public cl-ana.makeres-macro
+  (sbcl-package->cl-source-package sbcl-cl-ana.makeres-macro))
+
+(define-public sbcl-cl-ana.makeres-block
+  (package
+    (inherit sbcl-cl-ana-boot0)
+    (name "sbcl-cl-ana.makeres-block")
+    (inputs
+     `(("alexandria" ,sbcl-alexandria)
+       ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
+       ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
+       ("cl-ana.makeres" ,sbcl-cl-ana.makeres)))
+    (arguments
+     (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
+       ((#:asd-file _ "") "makeres-block/cl-ana.makeres-block.asd")
+       ((#:asd-system-name _ #f) "cl-ana.makeres-block")))))
+
+(define-public cl-ana.makeres-block
+  (sbcl-package->cl-source-package sbcl-cl-ana.makeres-block))
+
+(define-public sbcl-cl-ana.makeres-progress
+  (package
+    (inherit sbcl-cl-ana-boot0)
+    (name "sbcl-cl-ana.makeres-progress")
+    (inputs
+     `(("alexandria" ,sbcl-alexandria)
+       ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
+       ("cl-ana.makeres" ,sbcl-cl-ana.makeres)))
+    (arguments
+     (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
+       ((#:asd-file _ "") "makeres-progress/cl-ana.makeres-progress.asd")
+       ((#:asd-system-name _ #f) "cl-ana.makeres-progress")))))
+
+(define-public cl-ana.makeres-progress
+  (sbcl-package->cl-source-package sbcl-cl-ana.makeres-progress))
+
+(define-public sbcl-cl-ana.makeres-table
+  (package
+    (inherit sbcl-cl-ana-boot0)
+    (name "sbcl-cl-ana.makeres-table")
+    (inputs
+     `(("cl-ana.csv-table" ,sbcl-cl-ana.csv-table)
+       ("cl-ana.hash-table-utils" ,sbcl-cl-ana.hash-table-utils)
+       ("cl-ana.hdf-table" ,sbcl-cl-ana.hdf-table)
+       ("cl-ana.hdf-utils" ,sbcl-cl-ana.hdf-utils)
+       ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
+       ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
+       ("cl-ana.makeres" ,sbcl-cl-ana.makeres)
+       ("cl-ana.makeres-macro" ,sbcl-cl-ana.makeres-macro)
+       ("cl-ana.memoization" ,sbcl-cl-ana.memoization)
+       ("cl-ana.ntuple-table" ,sbcl-cl-ana.ntuple-table)
+       ("cl-ana.reusable-table" ,sbcl-cl-ana.reusable-table)
+       ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
+       ("cl-ana.table" ,sbcl-cl-ana.table)))
+    (native-inputs
+     `(("cl-fad" ,sbcl-cl-fad)))
+    (arguments
+     (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
+       ((#:asd-file _ "") "makeres-table/cl-ana.makeres-table.asd")
+       ((#:asd-system-name _ #f) "cl-ana.makeres-table")))))
+
+(define-public cl-ana.makeres-table
+  (sbcl-package->cl-source-package sbcl-cl-ana.makeres-table))
+
+(define-public sbcl-cl-ana.makeres-graphviz
+  (package
+    (inherit sbcl-cl-ana-boot0)
+    (name "sbcl-cl-ana.makeres-graphviz")
+    (inputs
+     `(("cl-ana.makeres" ,sbcl-cl-ana.makeres)
+       ("external-program" ,sbcl-external-program)))
+    (arguments
+     (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
+       ((#:asd-file _ "") "makeres-graphviz/cl-ana.makeres-graphviz.asd")
+       ((#:asd-system-name _ #f) "cl-ana.makeres-graphviz")))))
+
+(define-public cl-ana.makeres-graphviz
+  (sbcl-package->cl-source-package sbcl-cl-ana.makeres-graphviz))
+
+(define-public sbcl-cl-ana.makeres-branch
+  (package
+    (inherit sbcl-cl-ana-boot0)
+    (name "sbcl-cl-ana.makeres-branch")
+    (inputs
+     `(("alexandria" ,sbcl-alexandria)
+       ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
+       ("cl-ana.hash-table-utils" ,sbcl-cl-ana.hash-table-utils)
+       ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
+       ("cl-ana.map" ,sbcl-cl-ana.map)
+       ("cl-ana.makeres" ,sbcl-cl-ana.makeres)))
+    (arguments
+     (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
+       ((#:asd-file _ "") "makeres-branch/cl-ana.makeres-branch.asd")
+       ((#:asd-system-name _ #f) "cl-ana.makeres-branch")))))
+
+(define-public cl-ana.makeres-branch
+  (sbcl-package->cl-source-package sbcl-cl-ana.makeres-branch))
+
+(define-public sbcl-cl-ana.makeres-utils
+  (package
+    (inherit sbcl-cl-ana-boot0)
+    (name "sbcl-cl-ana.makeres-utils")
+    (inputs
+     `(("alexandria" ,sbcl-alexandria)
+       ("cl-ana.file-utils" ,sbcl-cl-ana.file-utils)
+       ("cl-ana.fitting" ,sbcl-cl-ana.fitting)
+       ("cl-ana.functional-utils" ,sbcl-cl-ana.functional-utils)
+       ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
+       ("cl-ana.histogram" ,sbcl-cl-ana.histogram)
+       ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
+       ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
+       ("cl-ana.makeres" ,sbcl-cl-ana.makeres)
+       ("cl-ana.map" ,sbcl-cl-ana.map)
+       ("cl-ana.pathname-utils" ,sbcl-cl-ana.pathname-utils)
+       ("cl-ana.plotting" ,sbcl-cl-ana.plotting)
+       ("cl-ana.reusable-table" ,sbcl-cl-ana.reusable-table)
+       ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
+       ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)
+       ("cl-ana.table" ,sbcl-cl-ana.table)))
+    (native-inputs
+     `(("cl-fad" ,sbcl-cl-fad)))
+    (arguments
+     (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
+       ((#:asd-file _ "") "makeres-utils/cl-ana.makeres-utils.asd")
+       ((#:asd-system-name _ #f) "cl-ana.makeres-utils")))))
+
+(define-public cl-ana.makeres-utils
+  (sbcl-package->cl-source-package sbcl-cl-ana.makeres-utils))
+
+(define-public sbcl-cl-ana.statistical-learning
+  (package
+    (inherit sbcl-cl-ana-boot0)
+    (name "sbcl-cl-ana.statistical-learning")
+    (inputs
+     `(("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
+       ("cl-ana.functional-utils" ,sbcl-cl-ana.functional-utils)
+       ("cl-ana.histogram" ,sbcl-cl-ana.histogram)
+       ("cl-ana.linear-algebra" ,sbcl-cl-ana.linear-algebra)
+       ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
+       ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
+       ("cl-ana.math-functions" ,sbcl-cl-ana.math-functions)
+       ("cl-ana.map" ,sbcl-cl-ana.map)
+       ("cl-ana.statistics" ,sbcl-cl-ana.statistics)))
+    (native-inputs
+     `(("cl-fad" ,sbcl-cl-fad)))
+    (arguments
+     (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
+       ((#:asd-file _ "")
+        "statistical-learning/cl-ana.statistical-learning.asd")
+       ((#:asd-system-name _ #f) "cl-ana.statistical-learning")))))
+
+(define-public cl-ana.statistical-learning
+  (sbcl-package->cl-source-package sbcl-cl-ana.statistical-learning))
+
+(define-public sbcl-cl-ana
+  (package
+    (inherit sbcl-cl-ana-boot0)
+    (name "sbcl-cl-ana")
+    (inputs
+     `(("cl-ana.binary-tree" ,sbcl-cl-ana.binary-tree)
+       ("cl-ana.calculus" ,sbcl-cl-ana.calculus)
+       ("cl-ana.clos-utils" ,sbcl-cl-ana.clos-utils)
+       ("cl-ana.csv-table" ,sbcl-cl-ana.csv-table)
+       ("cl-ana.error-propogation" ,sbcl-cl-ana.error-propogation)
+       ("cl-ana.file-utils" ,sbcl-cl-ana.file-utils)
+       ("cl-ana.fitting" ,sbcl-cl-ana.fitting)
+       ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
+       ("cl-ana.hash-table-utils" ,sbcl-cl-ana.hash-table-utils)
+       ("cl-ana.hdf-table" ,sbcl-cl-ana.hdf-table)
+       ("cl-ana.histogram" ,sbcl-cl-ana.histogram)
+       ("cl-ana.int-char" ,sbcl-cl-ana.int-char)
+       ("cl-ana.linear-algebra" ,sbcl-cl-ana.linear-algebra)
+       ("cl-ana.lorentz" ,sbcl-cl-ana.lorentz)
+       ("cl-ana.map" ,sbcl-cl-ana.map)
+       ("cl-ana.makeres" ,sbcl-cl-ana.makeres)
+       ("cl-ana.makeres-block" ,sbcl-cl-ana.makeres-block)
+       ("cl-ana.makeres-branch" ,sbcl-cl-ana.makeres-branch)
+       ("cl-ana.makeres-graphviz" ,sbcl-cl-ana.makeres-graphviz)
+       ("cl-ana.makeres-macro" ,sbcl-cl-ana.makeres-macro)
+       ("cl-ana.makeres-progress" ,sbcl-cl-ana.makeres-progress)
+       ("cl-ana.makeres-table" ,sbcl-cl-ana.makeres-table)
+       ("cl-ana.makeres-utils" ,sbcl-cl-ana.makeres-utils)
+       ("cl-ana.math-functions" ,sbcl-cl-ana.math-functions)
+       ("cl-ana.ntuple-table" ,sbcl-cl-ana.ntuple-table)
+       ("cl-ana.package-utils" ,sbcl-cl-ana.package-utils)
+       ("cl-ana.pathname-utils" ,sbcl-cl-ana.pathname-utils)
+       ("cl-ana.plotting" ,sbcl-cl-ana.plotting)
+       ("cl-ana.quantity" ,sbcl-cl-ana.quantity)
+       ("cl-ana.reusable-table" ,sbcl-cl-ana.reusable-table)
+       ("cl-ana.serialization" ,sbcl-cl-ana.serialization)
+       ("cl-ana.statistics" ,sbcl-cl-ana.statistics)
+       ("cl-ana.statistical-learning" ,sbcl-cl-ana.statistical-learning)
+       ("cl-ana.table" ,sbcl-cl-ana.table)
+       ("cl-ana.table-utils" ,sbcl-cl-ana.table-utils)
+       ("cl-ana.table-viewing" ,sbcl-cl-ana.table-viewing)
+       ("cl-ana.tensor" ,sbcl-cl-ana.tensor)
+       ("libffi" ,libffi)))
+    (native-inputs
+     `(("cl-fad" ,sbcl-cl-fad)))
+    (arguments
+     (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
+       ((#:asd-file _ "") "cl-ana.asd")
+       ((#:asd-system-name _ #f) "cl-ana")))))
+
+(define-public cl-ana
+  (sbcl-package->cl-source-package sbcl-cl-ana))
+
+(define-public sbcl-archive
+  (let ((commit "631271c091ed02994bec3980cb288a2cf32c7cdc")
+        (revision "1"))
+    (package
+      (name "sbcl-archive")
+      (version (git-version "0.9" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/sharplispers/archive.git")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "0pvsc9fmybx7rxd0kmzq4shi6hszdpwdc1sfy7jwyfxf8n3hnv4p"))))
+      (build-system asdf-build-system/sbcl)
+      (inputs
+       `(("cl-fad" ,sbcl-cl-fad)
+         ("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
+      (synopsis "Common Lisp library for tar and cpio archives")
+      (description
+       "This is a Common Lisp library to read and write disk-based file
+archives such as those generated by the tar and cpio programs on Unix.")
+      (home-page "https://github.com/sharplispers/archive")
+      (license license:bsd-3))))
+
+(define-public cl-archive
+  (sbcl-package->cl-source-package sbcl-archive))
+
+(define-public ecl-archive
+  (sbcl-package->ecl-package sbcl-archive))
+
+(define-public sbcl-misc-extensions
+  (let ((commit "101c05112bf2f1e1bbf527396822d2f50ca6327a")
+        (revision "1"))
+    (package
+      (name "sbcl-misc-extensions")
+      (version (git-version "3.3" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://gitlab.common-lisp.net/misc-extensions/devel.git")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "0gz5f4p70qzilnxsnf5lih2n9m4wjcw8hlw4w8mpn9jyhyppyyv0"))))
+      (build-system asdf-build-system/sbcl)
+      (synopsis "Collection of small macros and extensions for Common Lisp")
+      (description
+       "This project is intended as a catchall for small, general-purpose
+extensions to Common Lisp.  It contains:
+
+@itemize
+@item @code{new-let}, a macro that combines and generalizes @code{let},
+@code{let*} and @code{multiple-value-bind},
+@item @code{gmap}, an iteration macro that generalizes @code{map}.
+@end itemize\n")
+      (home-page "https://common-lisp.net/project/misc-extensions/")
+      (license license:public-domain))))
+
+(define-public cl-misc-extensions
+  (sbcl-package->cl-source-package sbcl-misc-extensions))
+
+(define-public ecl-misc-extensions
+  (sbcl-package->ecl-package sbcl-misc-extensions))
+
+(define-public sbcl-mt19937
+  (package
+    (name "sbcl-mt19937")
+    (version "1.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://common-lisp.net/project/asdf-packaging/"
+                           "mt19937-latest.tar.gz"))
+       (sha256
+        (base32
+         "1iw636b0iw5ygkv02y8i41lh7xj0acglv0hg5agryn0zzi2nf1xv"))))
+    (build-system asdf-build-system/sbcl)
+    (synopsis "Mersenne Twister pseudo-random number generator")
+    (description
+     "MT19937 is a portable Mersenne Twister pseudo-random number generator
+for Common Lisp.")
+    (home-page "https://www.cliki.net/mt19937")
+    (license license:public-domain)))
+
+(define-public cl-mt19937
+  (sbcl-package->cl-source-package sbcl-mt19937))
+
+(define-public ecl-mt19937
+  (sbcl-package->ecl-package sbcl-mt19937))
+
+(define-public sbcl-fset
+  (let ((commit "6d2f9ded8934d2b42f2571a0ba5bda091037d852")
+        (revision "1"))
+    (package
+      (name "sbcl-fset")
+      (version (git-version "1.3.2" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/slburson/fset")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "127acblwrbqicx47h6sgvknz1cqyfn8p4xkhkn1m7hxh8w5gk1zy"))
+         (snippet '(begin
+                     ;; Remove obsolete copy of system definition.
+                     (delete-file "Code/fset.asd")
+                     #t))))
+      (build-system asdf-build-system/sbcl)
+      (inputs
+       `(("misc-extensions" ,sbcl-misc-extensions)
+         ("mt19937" ,sbcl-mt19937)
+         ("named-readtables" ,sbcl-named-readtables)))
+      (synopsis "Functional set-theoretic collections library")
+      (description
+       "FSet is a functional set-theoretic collections library for Common Lisp.
+Functional means that all update operations return a new collection rather than
+modifying an existing one in place.  Set-theoretic means that collections may
+be nested arbitrarily with no additional programmer effort; for instance, sets
+may contain sets, maps may be keyed by sets, etc.")
+      (home-page "https://common-lisp.net/project/fset/Site/index.html")
+      (license license:llgpl))))
+
+(define-public cl-fset
+  (sbcl-package->cl-source-package sbcl-fset))