summaryrefslogtreecommitdiff
path: root/gnu/packages/lisp-xyz.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/lisp-xyz.scm')
-rw-r--r--gnu/packages/lisp-xyz.scm385
1 files changed, 167 insertions, 218 deletions
diff --git a/gnu/packages/lisp-xyz.scm b/gnu/packages/lisp-xyz.scm
index 51d74bd8af..03e474831d 100644
--- a/gnu/packages/lisp-xyz.scm
+++ b/gnu/packages/lisp-xyz.scm
@@ -10,7 +10,7 @@
;;; Copyright © 2017, 2019 Tobias Geerinckx-Rice <[email protected]>
;;; Copyright © 2018 Benjamin Slade <[email protected]>
;;; Copyright © 2018 Alex Vong <[email protected]>
-;;; Copyright © 2018, 2020, 2021 Pierre Neidhardt <[email protected]>
+;;; Copyright © 2018, 2020, 2021, 2022 Pierre Neidhardt <[email protected]>
;;; Copyright © 2018, 2019 Pierre Langlois <[email protected]>
;;; Copyright © 2019, 2020 Katherine Cox-Buday <[email protected]>
;;; Copyright © 2019 Jesse Gildersleve <[email protected]>
@@ -266,12 +266,6 @@ implementation with no external dependencies.")
(native-inputs
`(("fare-utils" ,sbcl-fare-utils)
("hu.dwim.stefil" ,sbcl-hu.dwim.stefil)))
- (arguments
- `(#:asd-files '("asdf-finalizers.asd"
- "list-of.asd"
- "asdf-finalizers-test.asd")
- #:asd-systems '("asdf-finalizers"
- "list-of")))
(home-page "https://gitlab.common-lisp.net/asdf/asdf-finalizers")
(synopsis "Enforced calling of finalizers for Lisp code")
(description "This library allows you to implement and enforce proper
@@ -366,7 +360,6 @@ or cl-launch for portable processing of command-line arguments.")
(base32 "1b3nqbb4pj377lxl47rfgrs82pidadnrc65l48bk553c2f59b52w"))))
(build-system asdf-build-system/sbcl)
(native-inputs
- ;; Tests only.
(list sbcl-rt))
(inputs
`(("cl+ssl" ,sbcl-cl+ssl)
@@ -374,10 +367,7 @@ or cl-launch for portable processing of command-line arguments.")
("split-sequence" ,sbcl-split-sequence)
("usocket" ,sbcl-usocket)))
(arguments
- `(#:asd-systems '("cl-irc") ;; Some inexisting "c" system is
- ;; found by guix otherwise.
- #:asd-files '("cl-irc.asd")
- #:test-asd-file "test/cl-irc-test.asd"))
+ `(#:asd-test-systems '("cl-irc-test")))
(synopsis "IRC client library for Common Lisp")
(description "@code{cl-irc} is a Common Lisp IRC client library that
features (partial) DCC, CTCP and all relevant commands from the IRC
@@ -868,8 +858,7 @@ ANSI-compliant Common Lisp implementations.")
(inputs
(list sbcl-cl-ppcre sbcl-cl-unicode))
(arguments
- `(#:tests? #f ; tests fail with "Component :CL-PPCRE-TEST not found"
- #:phases
+ `(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'disable-ppcre
;; cl-ppcre and cl-ppcre-unicode are put in different packages
@@ -997,8 +986,11 @@ anti-aliased vectorial paths.")
"11rhc6h501dwcik2igkszz7b9n515cr99m5pjh4r2qfwgiri6ysa"))))
(build-system asdf-build-system/sbcl)
(arguments
- '(#:tests? #f ; spatial-trees.test requires spatial-trees.nns
- #:test-asd-file "spatial-trees.test.asd"))
+ ;; We cannot build "spatial-trees-viz" here because it depends on
+ ;; mcclim which depends on spatial-trees. FIXME: Break the circle.
+ '(#:asd-systems '("spatial-trees" "spatial-trees.nns")))
+ (inputs
+ (list sbcl-alexandria sbcl-optima sbcl-iterate))
(native-inputs
(list sbcl-fiveam))
(home-page "https://github.com/rpav/spatial-trees")
@@ -1450,8 +1442,7 @@ utilities that make it even easier to manipulate text in Common Lisp. It has
(base32 "0jsqah1znzqilxnw5vannb083ayk0d7phkackqzwwqkyg5hpn6pq"))))
(build-system asdf-build-system/sbcl)
(arguments
- '(#:asd-files '("trivial-features.asd")
- ;; FIXME: Tests disabled because of a circular dependency between
+ '(;; FIXME: Tests disabled because of a circular dependency between
;; trivial-features and cffi.
#:tests? #f))
;; (native-inputs
@@ -2383,9 +2374,7 @@ processes that doesn't run under Emacs. Lisp processes created by
sbcl-pythonic-string-reader
sbcl-slime-swank))
(arguments
- `(#:asd-files '("mgl-pax.asdf.asd"
- "mgl-pax.asd")
- #:asd-systems '("mgl-pax"
+ `(#:asd-systems '("mgl-pax"
"mgl-pax/navigate"
"mgl-pax/document"
"mgl-pax/transcribe")
@@ -3032,11 +3021,6 @@ is statically typed so there are differences.")
(string-append
(assoc-ref outputs "out")
"/include/grovel")))))
- #:asd-files '("cffi.asd"
- "cffi-toolchain.asd"
- "cffi-grovel.asd"
- "cffi-libffi.asd"
- "cffi-uffi-compat.asd")
#:asd-systems '("cffi"
"cffi-libffi"
"cffi-uffi-compat")))
@@ -3397,16 +3381,7 @@ Lisp implementations.")
("trivial-features" ,sbcl-trivial-features)
("trivial-garbage" ,sbcl-trivial-garbage)))
(arguments
- `(#:asd-files '("gtk/cl-cffi-gtk.asd"
- "glib/cl-cffi-gtk-glib.asd"
- "gobject/cl-cffi-gtk-gobject.asd"
- "gio/cl-cffi-gtk-gio.asd"
- "cairo/cl-cffi-gtk-cairo.asd"
- "pango/cl-cffi-gtk-pango.asd"
- "gdk-pixbuf/cl-cffi-gtk-gdk-pixbuf.asd"
- "gdk/cl-cffi-gtk-gdk.asd")
- #:test-asd-file "test/cl-cffi-gtk-test.asd"
- ;; TODO: Tests fail with memory fault.
+ `(;; TODO: Tests fail with memory fault.
;; See https://github.com/Ferada/cl-cffi-gtk/issues/24.
#:tests? #f
#:phases
@@ -4534,12 +4509,6 @@ addition, removal, and random selection.")
(sha256
(base32 "1wrrhbj3r4lph5y3hhfbv4g2pvg24hbgl06irq9lyiycy3bgai4w"))))
(build-system asdf-build-system/sbcl)
- (arguments
- ;; Test system must be loaded before, otherwise tests fail with:
- ;; Component QURI-ASD::QURI-TEST not found, required by #<SYSTEM
- ;; "quri">.
- '(#:asd-systems '("quri-test"
- "quri")))
(native-inputs (list sbcl-prove))
(inputs (list sbcl-babel sbcl-split-sequence sbcl-cl-utilities
sbcl-alexandria))
@@ -4777,8 +4746,7 @@ Only minimal changes required to make your CLOS objects serializable.")
;; Error while trying to load definition for system fast-io-test from
;; pathname [...]/fast-io-test.asd: The function CHECKL:DEFINE-TEST-OP
;; is undefined.
- '(#:tests? #f
- #:asd-files '("fast-io.asd")))
+ '(#:tests? #f))
(native-inputs
(list sbcl-fiveam sbcl-checkl))
(inputs
@@ -4797,6 +4765,45 @@ streams (though primarily the former, while wrapping the latter).")
(define-public ecl-fast-io
(sbcl-package->ecl-package sbcl-fast-io))
+(define-public sbcl-legion
+ (let ((commit "599cca19f0e34246814621f7fe90322221c2e263")
+ (revision "1"))
+ (package
+ (name "sbcl-legion")
+ (version (git-version "0.1.1" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/fukamachi/legion/")
+ (commit commit)))
+ (file-name (git-file-name "cl-legion" version))
+ (sha256
+ (base32 "0583pw0mf8bd4dj42w2xrlzcwfkl8q28n1bh8dpxxfg93crx4si6"))))
+ (build-system asdf-build-system/sbcl)
+ (native-inputs
+ (list sbcl-prove sbcl-local-time))
+ (inputs
+ (list
+ sbcl-bordeaux-threads
+ sbcl-cl-speedy-queue
+ sbcl-vom))
+ (home-page "https://github.com/fukamachi/legion")
+ (synopsis "Simple multithreading worker mechanism for Common Lisp")
+ (description
+ "This library provides a simple multithreading worker mechanism.")
+ (license license:bsd-3))))
+
+(define-public cl-legion
+ (sbcl-package->cl-source-package sbcl-legion))
+
+(define-public ecl-legion
+ (package
+ (inherit (sbcl-package->ecl-package sbcl-legion))
+ (arguments
+ ;; Tests get stuck forever
+ (list #:tests? #f))))
+
(define-public sbcl-jonathan
(let ((commit "1f448b4f7ac8265e56e1c02b32ce383e65316300")
(revision "1"))
@@ -4813,12 +4820,8 @@ streams (though primarily the former, while wrapping the latter).")
(sha256
(base32 "14x4iwz3mbag5jzzzr4sb6ai0m9r4q4kyypbq32jmsk2dx1hi807"))))
(build-system asdf-build-system/sbcl)
- (arguments
- ;; Tests fail with: Component JONATHAN-ASD::JONATHAN-TEST not found,
- ;; required by #<SYSTEM "jonathan">. Why?
- `(#:tests? #f))
(native-inputs
- (list sbcl-prove))
+ (list sbcl-prove sbcl-legion))
(inputs
(list sbcl-cl-syntax sbcl-fast-io sbcl-proc-parse sbcl-cl-ppcre))
(home-page "https://rudolph-miller.github.io/jonathan/overview.html")
@@ -4947,7 +4950,6 @@ reset to 0 and you're able to read it again.")
"lack-util"
"lack-middleware-backtrace"
"lack-middleware-static")
- #:test-asd-file "t-lack.asd"
;; XXX: Component :CLACK not found
#:tests? #f))
(home-page "https://github.com/fukamachi/lack")
@@ -5675,8 +5677,6 @@ whole lot more into a single form.")
(base32
"01wsr1aap3jdzhn4hrqjbhsjx6qci9dbd3gh4gayv1p49rbg8aqr"))))
(build-system asdf-build-system/sbcl)
- (arguments
- `(#:test-asd-file "test/fare-utils-test.asd"))
(native-inputs
(list sbcl-hu.dwim.stefil))
(synopsis "Collection of utilities and data structures")
@@ -5887,12 +5887,7 @@ formats.")
("split-sequence" ,sbcl-split-sequence)
("swap-bytes" ,sbcl-swap-bytes)))
(arguments
- '(#:asd-files '("iolib.asdf.asd"
- "iolib.conf.asd"
- "iolib.common-lisp.asd"
- "iolib.base.asd"
- "iolib.asd")
- #:asd-systems '("iolib"
+ '(#:asd-systems '("iolib"
"iolib/os")
#:phases
(modify-phases %standard-phases
@@ -6075,11 +6070,6 @@ XSD type library.")
(list sbcl-alexandria))
(native-inputs
(list sbcl-prove))
- (arguments
- ;; FIXME: Test fails with the following, why?
- ;; Component "cl-reexport-test" not found, required by
- ;; #<SYSTEM "cl-reexport-test">
- `(#:tests? #f))
(synopsis "Reexport external symbols in other Common Lisp packages")
(description
"Cl-reexport makes a package reexport symbols which are external
@@ -6223,10 +6213,6 @@ neat APIs and connection-pooling. It is meant to supersede Drakma.")
`(("alexandria" ,sbcl-alexandria)))
(native-inputs
(list sbcl-fiveam))
- (arguments
- `(#:test-asd-file "lisp-namespace.test.asd"
- ;; XXX: Component LISP-NAMESPACE-ASD::LISP-NAMESPACE.TEST not found
- #:tests? #f))
(synopsis "LISP-N, or extensible namespaces in Common Lisp")
(description "Common Lisp already has major 2 namespaces, function
namespace and value namespace (or variable namespace), but there are actually
@@ -6378,8 +6364,6 @@ to support this, especially for reasoning on types, are also included.")
("trivia.trivial" ,sbcl-trivia.trivial)))
(native-inputs
(list sbcl-fiveam))
- (arguments
- `(#:test-asd-file "type-i.test.asd"))
(synopsis "Type inference utility on unary predicates for Common Lisp")
(description "This library tries to provide a way to detect what kind of
type the given predicate is trying to check. This is different from inferring
@@ -6421,8 +6405,7 @@ the return type of a function.")
(list sbcl-eos))
(arguments
;; XXX: Circular dependencies: tests depend on optima.ppcre which depends on optima.
- `(#:tests? #f
- #:test-asd-file "optima.test.asd"))
+ `(#:tests? #f))
(synopsis "Optimized pattern matching library for Common Lisp")
(description "Optima is a fast pattern matching library which uses
optimizing techniques widely used in the functional programming world.")
@@ -6560,7 +6543,6 @@ be faster and more extensible than Optima.")
"trivia.quasiquote"
"trivia.cffi"
"trivia.fset")
- #:test-asd-file "trivia.test.asd"
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'fix-build
@@ -6635,8 +6617,7 @@ various string metrics in Common Lisp:
(native-inputs
(list sbcl-prove))
(arguments
- `(#:asd-systems '("str")
- #:test-asd-file "str.test.asd"))
+ `(#:asd-systems '("str")))
(synopsis "Modern, consistent and terse Common Lisp string manipulation library")
(description "A modern and consistent Common Lisp string manipulation
library that focuses on modernity, simplicity and discoverability:
@@ -7032,8 +7013,7 @@ which implements a set of utilities.")
(inputs
`(("metatilities-base" ,sbcl-metatilities-base)))
(arguments
- '(#:asd-files '("cl-containers.asd")
- #:phases
+ '(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'relax-version-checks
(lambda _
@@ -7085,9 +7065,6 @@ decisions becomes significantly easier.")
("cl-containers" ,sbcl-cl-containers)
("local-time" ,sbcl-local-time)
("periods" ,sbcl-periods)))
- (arguments
- '(#:asd-files '("fprog.asd"
- "cambl.asd")))
(synopsis "Commoditized amounts and balances for Common Lisp")
(description
"CAMBL is a Common Lisp library providing a convenient facility for
@@ -7429,9 +7406,6 @@ of C+GObject libraries without the need of writing dedicated bindings.")
(sha256
(base32 "1asdq6xllmsvfw5fky9wblqcx9isac9jrrlkfl7vyxcq1wxrnflx"))))
(build-system asdf-build-system/sbcl)
- (arguments
- `(#:asd-files '("cl-slug-test.asd" "cl-slug.asd")
- #:asd-systems '("cl-slug-test" "cl-slug")))
(native-inputs
(list sbcl-prove))
(inputs
@@ -7790,7 +7764,7 @@ forms in parallel.")
(native-inputs
(list sbcl-xlunit))
(arguments
- `(#:test-asd-file "cl-heap-tests.asd"))
+ '(#:asd-test-systems '("cl-heap-tests")))
(synopsis "Heap and priority queue data structures for Common Lisp")
(description
"CL-HEAP provides various implementations of heap data structures (a
@@ -8762,7 +8736,17 @@ continuations of the @code{cl-cont} library.")
(base32 "11fcnd03ybzz37rkg3z0wsb727yqgcd9gn70sccfb34l89ia279k"))))
(build-system asdf-build-system/sbcl)
(arguments
- `(#:test-asd-file "test.vas-string-metrics.asd"))
+ '(#:asd-test-systems '("test.vas-string-metrics")
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'fix-test-asd
+ (lambda _
+ (substitute* "test.vas-string-metrics.asd"
+ ((":depends-on")
+ (string-append
+ ":perform (test-op (op c) (symbol-call :vas-string-metrics :run-tests))"
+ "\n"
+ " :depends-on"))))))))
(home-page "https://github.com/vsedach/vas-string-metrics")
(synopsis "String distance algorithms for Common Lisp")
(description
@@ -9595,12 +9579,7 @@ them as PNG files.")
(native-inputs
(list sbcl-fiveam))
(arguments
- `(#:test-asd-file "hdf5-cffi.test.asd"
- ;; Tests depend on hdf5-cffi.examples.asd in addition to hdf5-cffi.asd,
- ;; I don't know if there is a way to tell asdf-build-system to load
- ;; an additional system first, so tests are disabled.
- #:tests? #f
- #:phases
+ `(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'fix-paths
(lambda* (#:key inputs #:allow-other-keys)
@@ -9782,9 +9761,7 @@ the elements in compound type specifier, e.g. @code{dimensions} in
`(("trivia" ,sbcl-trivia)
("alexandria" ,sbcl-alexandria)))
(native-inputs
- (list sbcl-fiveam))
- (arguments
- `(#:test-asd-file "type-r.test.asd")))))
+ (list sbcl-fiveam)))))
(define-public cl-type-r
(sbcl-package->cl-source-package sbcl-type-r))
@@ -9824,8 +9801,7 @@ correctly.")
(native-inputs
(list sbcl-fiveam))
(arguments
- `(#:asd-systems '("trivialib.type-unify")
- #:test-asd-file "trivialib.type-unify.test.asd")))))
+ `(#:asd-systems '("trivialib.type-unify"))))))
(define-public cl-trivialib-type-unify
(sbcl-package->cl-source-package sbcl-trivialib-type-unify))
@@ -9907,10 +9883,7 @@ code. The main target of this macro is speed.")
("trivial-cltl2" ,sbcl-trivial-cltl2)
("type-r" ,sbcl-type-r)))
(native-inputs
- (list sbcl-fiveam))
- (arguments
- `(#:asd-files '("specialized-function.asd")
- #:test-asd-file "specialized-function.test.asd")))))
+ (list sbcl-fiveam)))))
(define-public cl-specialized-function
(sbcl-package->cl-source-package sbcl-specialized-function))
@@ -9947,10 +9920,7 @@ additional form that is considered as a candidate for a constant.")
("iterate" ,sbcl-iterate)
("lisp-namespace" ,sbcl-lisp-namespace)))
(native-inputs
- (list sbcl-fiveam))
- (arguments
- `(#:asd-files '("constantfold.asd")
- #:test-asd-file "constantfold.test.asd")))))
+ (list sbcl-fiveam)))))
(define-public cl-constantfold
(sbcl-package->cl-source-package sbcl-constantfold))
@@ -9988,10 +9958,7 @@ type correctness in Common Lisp. It is based on CLtL2 extensions.")
("iterate" ,sbcl-iterate)
("type-r" ,sbcl-type-r)))
(native-inputs
- (list sbcl-fiveam))
- (arguments
- `(#:asd-files '("gtype.asd")
- #:test-asd-file "gtype.test.asd")))))
+ (list sbcl-fiveam)))))
(define-public cl-gtype
(sbcl-package->cl-source-package sbcl-gtype))
@@ -10022,9 +9989,7 @@ type correctness in Common Lisp. It is based on CLtL2 extensions.")
(base32 "15m4spbgayawnw5jjz04zfp0jnk9g6hgq5fmr648hzjzj50j1d78"))))
(build-system asdf-build-system/sbcl)
(arguments
- `(#:test-asd-file "numcl.test.asd"
- #:asd-files '("numcl.asd")
- ;; Tests often fail because they require a dynamic-space-size much
+ `(;; Tests often fail because they require a dynamic-space-size much
;; bigger than the default one. Disable them for now.
#:tests? #f))
(native-inputs
@@ -10099,8 +10064,8 @@ lightweight messaging kernel.")
(sbcl-package->ecl-package sbcl-pzmq))
(define-public sbcl-clss
- (let ((revision "1")
- (commit "2a8e8615ab55870d4ca01928f3ed3bbeb4e75c8d"))
+ (let ((revision "2")
+ (commit "f62b849189c5d1be378f0bd3d403cda8d4fe310b"))
(package
(name "sbcl-clss")
(version (git-version "0.3.1" revision commit))
@@ -10112,7 +10077,7 @@ lightweight messaging kernel.")
(url "https://github.com/Shinmera/clss")
(commit commit)))
(sha256
- (base32 "0la4dbcda78x29szanylccrsljqrn9d1mhh569sqkyp44ni5fv91"))
+ (base32 "1033dchpanhcgxl5qfhr80aw9adbp9bvllhzvvy5p9mrfnidd1fv"))
(file-name (git-file-name name version))))
(inputs
(list sbcl-array-utils sbcl-plump))
@@ -10412,7 +10377,6 @@ interface for MySQL, PostgreSQL and SQLite.")
(build-system asdf-build-system/sbcl)
(arguments
`(#:tests? #f ; TODO: Fix use of deprecated ASDF functions
- #:asd-files '("uffi.asd")
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'fix-permissions
@@ -10487,13 +10451,8 @@ interface for MySQL, PostgreSQL and SQLite.")
("uffi" ,sbcl-uffi)
("zlib" ,zlib)))
(arguments
- `(#:asd-files '("clsql.asd"
- "clsql-uffi.asd"
- "clsql-sqlite3.asd"
- "clsql-postgresql.asd"
- "clsql-postgresql-socket3.asd"
- "clsql-mysql.asd")
- #:asd-systems '("clsql"
+ `(#:asd-systems '("clsql"
+ "clsql-uffi"
"clsql-sqlite3"
"clsql-postgresql"
"clsql-postgresql-socket3"
@@ -10596,8 +10555,8 @@ interfaces as well as a functional and an object oriented interface.")
(alist-delete "uffi" (package-inputs pkg)))
(arguments
(substitute-keyword-arguments (package-arguments pkg)
- ((#:asd-files asd-files '())
- `(cons "clsql-cffi.asd" ,asd-files)))))))
+ ((#:asd-systems asd-systems '())
+ `(cons "clsql-cffi" ,asd-systems)))))))
(define-public sbcl-sycamore
(let ((commit "fd2820fec165ad514493426dea209728f64e6d18"))
@@ -10788,10 +10747,6 @@ camelCase, PascalCase, snake_case, param-case, CONSTANT_CASE and more.")
(sha256
(base32 "1zys29rfkb649rkgl3snxhajk8d5yf7ryxkrwy020kwdh7zdsg7d"))))
(build-system asdf-build-system/sbcl)
- (arguments
- `(#:test-asd-file "modularize-test-module.asd"
- #:asd-files '("modularize.asd" "modularize-test-module.asd")
- #:asd-systems '("modularize" "modularize-test-module")))
(inputs
`(("documentation-utils" ,sbcl-documentation-utils)
("trivial-package-local-nicknames" ,sbcl-trivial-package-local-nicknames)))
@@ -10996,6 +10951,58 @@ accompaniment to the standard ANSI facilities.")
(define-public ecl-clx-xembed
(sbcl-package->ecl-package sbcl-clx-xembed))
+(define-public sbcl-mw-equiv
+ (let ((commit "3ae871458685b1ef7cd6a996ee22c8c5e738a03d")
+ (revision "1"))
+ (package
+ (name "sbcl-mw-equiv")
+ (version (git-version "0.1.2" revision commit))
+ (home-page "https://github.com/sharplispers/mw-equiv/")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/sharplispers/mw-equiv/")
+ (commit commit)))
+ (file-name (git-file-name "cl-mw-equiv" version))
+ (sha256
+ (base32 "1fl90wp0jp7l90mps53fq0kzb28f10qfr739527h03xwqccyylad"))))
+ (build-system asdf-build-system/sbcl)
+ (synopsis "Extensible object equivalence protocol for Common Lisp")
+ (description "Common Lisp comes with quite some functions to compare
+objects for equality, yet none is applicable in every situation and in general
+this is hard, as equality of objects depends on the semantics of operations on
+them. As consequence, users find themselves regularly in a situation where
+they have to roll their own specialized equality test.
+
+This module provides one of many possible equivalence relations between
+standard Common Lisp objects. However, it can be extended for new objects
+through a simple CLOS protocol. The rules when two objects are considered
+equivalent distinguish between @emph{mutating} and @emph{frozen objects}. A
+frozen object is promised not to be mutated in the future in a way that
+operations on it can notice the difference.
+
+We have chosen to compare mutating objects only for identity (pointer
+equality), to avoid various problems. Equivalence for frozen objects on the
+other hand is established by recursing on the objects' constituent parts and
+checking their equivalence. Hence, two objects are equivalent under the
+@code{OBJECT=} relation, if they are either identical, or if they are frozen
+and structurally equivalent, i.e. their constituents are point-wise
+equivalent.
+
+Since many objects are potentially mutable, but are not necessarily mutated
+from a certain point in their life time on, it is possible to promise to the
+equivalence relation that they remain frozen for the rest of their life time,
+thus enabling coarser equivalence than the often too fine-grained pointer
+equality.")
+ (license license:bsd-2))))
+
+(define-public cl-mw-equiv
+ (sbcl-package->cl-source-package sbcl-mw-equiv))
+
+(define-public ecl-mw-equiv
+ (sbcl-package->ecl-package sbcl-mw-equiv))
+
(define-public sbcl-quantile-estimator
(package
(name "sbcl-quantile-estimator")
@@ -11012,9 +11019,11 @@ accompaniment to the standard ANSI facilities.")
"0rlswkf0siaabsvvch3dgxmg45fw5w8pd9b7ri2w7a298aya52z9"))))
(build-system asdf-build-system/sbcl)
(arguments
- '(#:asd-files '("quantile-estimator.asd")))
+ '(#:asd-test-systems '("quantile-estimator.test")))
(inputs
- `(("alexandria" ,sbcl-alexandria)))
+ (list sbcl-alexandria))
+ (native-inputs
+ (list sbcl-mw-equiv sbcl-prove sbcl-log4cl))
(home-page "https://github.com/deadtrickster/quantile-estimator.cl")
(synopsis
"Effective computation of biased quantiles over data streams")
@@ -11059,13 +11068,7 @@ Streams in ICDE’05.")
("split-sequence" ,sbcl-split-sequence)
("trivial-utf-8" ,sbcl-trivial-utf-8)))
(arguments
- '(#:asd-files '("prometheus.asd"
- "prometheus.collectors.sbcl.asd"
- "prometheus.collectors.process.asd"
- "prometheus.formats.text.asd"
- "prometheus.exposers.hunchentoot.asd"
- "prometheus.pushgateway.asd")
- #:asd-systems '("prometheus"
+ '(#:asd-systems '("prometheus"
"prometheus.collectors.sbcl"
"prometheus.collectors.process"
"prometheus.formats.text"
@@ -11459,10 +11462,6 @@ format.")
(inputs
`(("cl-libsvm-format" ,sbcl-cl-libsvm-format)
("cl-store" ,sbcl-cl-store)))
- (arguments
- `(#:test-asd-file "cl-online-learning-test.asd"
- #:asd-systems '("cl-online-learning-test"
- "cl-online-learning")))
(home-page "https://github.com/masatoi/cl-online-learning")
(synopsis "Online Machine Learning for Common Lisp")
(description
@@ -11499,8 +11498,7 @@ online linear classification written in Common Lisp.")
#t))))
(build-system asdf-build-system/sbcl)
(arguments
- `(#:asd-files '("cl-mpg123.asd" "cl-mpg123-example.asd")
- #:asd-systems '("cl-mpg123" "cl-mpg123-example")
+ `(#:asd-systems '("cl-mpg123" "cl-mpg123-example")
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'fix-paths
@@ -12099,8 +12097,6 @@ both from files on disk, or streams in memory.")
sbcl-retrospectiff
sbcl-skippy
sbcl-zpng))
- (arguments
- '(#:asd-files '("opticl.asd")))
(home-page "https://github.com/slyrus/opticl")
(synopsis "Image processing library for Common Lisp")
(description
@@ -12477,8 +12473,7 @@ hu.dwim systems.")
;; ("hu.dwim.stefil" ,cl-hu.dwim.stefil)
sbcl-hu.dwim.asdf))
(arguments
- `(#:test-asd-file "hu.dwim.defclass-star.test.asd"
- ;; Tests require a circular dependency: hu.dwim.stefil -> hu.dwim.def
+ `(;; Tests require a circular dependency: hu.dwim.stefil -> hu.dwim.def
;; -> hu.dwim.util -> hu.dwim.defclass-star.
#:tests? #f))
(home-page "https://github.com/hu-dwim/hu.dwim.defclass-star")
@@ -12820,8 +12815,7 @@ that and not limited to a certain server or text format.")
("prove" ,sbcl-prove)))
(arguments
;; Tests depend on caveman, which in turns depends on cl-project.
- '(#:tests? #f
- #:asd-files '("cl-project.asd")))
+ '(#:tests? #f))
(synopsis "Generate a skeleton for modern Common Lisp projects")
(description "This library provides a modern project skeleton generator.
In contract with other generators, CL-Project generates one package per file
@@ -12868,12 +12862,7 @@ can begin writing unit tests as soon as the project is generated.")
("trivial-types" ,sbcl-trivial-types)
("prove" ,sbcl-prove)))
(arguments
- `(#:asd-files '("caveman2.asd"
- "caveman2-db.asd"
- "caveman2-test.asd"
- "caveman-middleware-dbimanager.asd")
- #:test-asd-file "caveman2-test.asd"
- #:asd-systems '("caveman2"
+ `(#:asd-systems '("caveman2"
"caveman2-db"
"caveman2-test"
"caveman-middleware-dbimanager")
@@ -13127,8 +13116,7 @@ mostly not found in other utility packages.")
(base32 "1k4mvrpbqqds2fwjxp1bxmrfmr8ch4dkwhnkbw559knbqshvrlj5"))))
(build-system asdf-build-system/sbcl)
(arguments
- '(#:asd-files '("cl-custom-hash-table.asd")
- #:asd-systems '("cl-custom-hash-table")))
+ '(#:asd-systems '("cl-custom-hash-table")))
(home-page "https://github.com/metawilm/cl-custom-hash-table")
(synopsis "Custom hash tables for Common Lisp")
(description "This library allows creation of hash tables with arbitrary
@@ -13391,10 +13379,6 @@ predictable cross-platform behavior and some utilities useful for versioning.")
(sha256
(base32 "07pfkibaridihg8lbq2czwa4iqifqk24n6rx7bfnv7i49p1ppja1"))))
(build-system asdf-build-system/sbcl)
- (arguments
- `(#:test-asd-file "deploy-test.asd"
- #:asd-files '("deploy.asd"
- "deploy-test.asd")))
(native-inputs
`(("cl-mpg123" ,sbcl-cl-mpg123)
("cl-out123" ,sbcl-cl-out123)))
@@ -15098,8 +15082,7 @@ attributes not supported by the Common Lisp standard functions.")
;; Due to the age of this library tests use some deprecated
;; functionality and keep failing.
(arguments
- '(#:tests? #f
- #:asd-files '("cl-difflib.asd")))
+ '(#:tests? #f))
(home-page "https://github.com/wiseman/cl-difflib")
(synopsis "Compute differences between pairs of sequences")
(description
@@ -15715,8 +15698,6 @@ immediately.")
(inputs
`(("cl-fad" ,sbcl-cl-fad)
("html-template" ,sbcl-html-template)))
- (arguments
- '(#:asd-files '("quickproject.asd")))
(home-page "https://xach.com/lisp/quickproject/")
(synopsis "Create Common Lisp project skeletons")
(description
@@ -15821,7 +15802,7 @@ compiled foreign library collection.")
;; failing test where it's in use.
(arguments
'(#:tests? #f
- #:asd-files '("cl-conspack.asd")))
+ #:asd-test-systems '("cl-conspack-test")))
(native-inputs
(list sbcl-checkl))
(inputs
@@ -16971,8 +16952,7 @@ Common Lisp without any C library bindings.")
(arguments
;; FIXME: (Sharlatan-20210523T184237+0100): Tests require `femlisp', which
;; is quite chunky not packaged system yet, enable them when it's packed.
- `(#:tests? #f
- #:test-asd-file "parser-combinators-tests.asd"))
+ `(#:tests? #f))
;; (native-inputs
;; `(("hu.dwim.stefil" ,sbcl-hu.dwim.stefil)
;; ("infix" ,sbcl-femlisp)))
@@ -17277,11 +17257,9 @@ needed. The low-level command API is fully mapped however.")
(sha256
(base32 "0ysw1kwiqlf8kzllhnz8v3q40dmvwf83fzq8bfkbmwy5hfjh3pxp"))))
(build-system asdf-build-system/sbcl)
- (arguments
- ;; FIXME: (Sharlatan-20210527T203118+0100): FLOW-VISUALIZER requires
- ;; COMMONQT which is not packed yet and required tweaks with QT. Remove
- ;; this when it's ready.
- `(#:asd-files '("flow.asd")))
+ ;; FIXME: (Sharlatan-20210527T203118+0100): FLOW-VISUALIZER requires
+ ;; COMMONQT which is not packed yet and required tweaks with QT. Remove
+ ;; this when it's ready.
(inputs
`(("closer-mop" ,sbcl-closer-mop)
("documentation-utils" ,sbcl-documentation-utils)))
@@ -17410,8 +17388,6 @@ coverage.")
(sha256
(base32 "0izbw2advqm3wailj3dpq6zqfrfirwn14pw5qmqh8i71r51xwmm2"))))
(build-system asdf-build-system/sbcl)
- (arguments
- `(#:asd-files '("cepl.asd" "cepl.build.asd")))
(inputs
`(("alexandria" ,sbcl-alexandria)
("bordeaux-threads" ,sbcl-bordeaux-threads)
@@ -17809,8 +17785,7 @@ Lisp.")
(base32 "04519rg8vc782z097dzlb8nx0skab2fy2zd0m60r6mz2nw8xdvh6"))))
(build-system asdf-build-system/sbcl)
(arguments
- `(#:test-asd-file "cl-posix-mqueue-tests.asd"
- #:phases
+ `(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'patch-librt-path
(lambda* (#:key inputs #:allow-other-keys)
@@ -17857,8 +17832,7 @@ to setup.")
(base32 "1nm35kvigflfjlmsa8zwdajc61f02fh4sq08jv0wnqylhx8yg2bv"))))
(build-system asdf-build-system/sbcl)
(arguments
- (list #:test-asd-file "glop-test.asd"
- #:phases
+ (list #:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'patch-lib-paths
(lambda* (#:key inputs #:allow-other-keys)
@@ -18072,35 +18046,7 @@ tested (as shown in the examples).")
(substitute* "evdev-cffi.lisp"
(("libevdev.so" all)
(string-append (assoc-ref inputs "libevdev")
- "/lib/" all)))))
- ;; Here we use a custom build phase to work around a compilation bug.
- ;; Using 'asdf:compile-system' fails, but using 'asdf:load-system'
- ;; succeeds (and also compiles the system).
- ;; See https://github.com/Shirakumo/cl-gamepad/issues/8
- (replace 'build
- (lambda* (#:key outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (source-path (string-append out
- "/share/common-lisp/"
- (%lisp-type)))
- (translations `((,source-path
- :**/ :*.*.*)
- (,(string-append out
- "/lib/common-lisp/"
- (%lisp-type))
- :**/ :*.*.*))))
- (setenv "ASDF_OUTPUT_TRANSLATIONS"
- (format #f "~S" `(:output-translations
- ,translations
- :inherit-configuration)))
- (setenv "HOME" (assoc-ref outputs "out"))
- (with-directory-excursion (string-append source-path
- "/cl-gamepad")
- (invoke (%lisp-type)
- "--eval" "(require :asdf)"
- "--eval" "(asdf:load-asd (truename \"cl-gamepad.asd\"))"
- "--eval" "(asdf:load-system :cl-gamepad)"
- "--eval" "(quit)"))))))))
+ "/lib/" all))))))))
(inputs
`(("cffi" ,sbcl-cffi)
("documentation-utils" ,sbcl-documentation-utils)
@@ -20158,10 +20104,6 @@ reference.")
(inputs
`(("cl-base64" ,sbcl-cl-base64)
("cl-base58" ,sbcl-cl-base58)))
- ;; Load order matters for tests, both for file reading and evaluation.
- (arguments
- `(#:asd-systems '("bit-smasher-test" "bit-smasher")
- #:asd-files '("bit-smasher.asd" "bit-smasher-test.asd")))
(home-page "https://github.com/thephoeron/bit-smasher/")
(synopsis "Handle bit vectors, bit vector arithmetic, and type conversions")
(description
@@ -20215,8 +20157,7 @@ decimals, and hexadecimal notation.")
(native-inputs
(list sbcl-fiveam))
(arguments
- `(#:asd-files '("overlord.asd")
- #:phases
+ `(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'include-overlord/net
(lambda _
@@ -20974,9 +20915,6 @@ rendering of the XML Infoset.")
(base32 "0yiybl7b9x1f85v0drj0yw9821y3yfhya4n6gycnv5vvx6jp9by4"))
(file-name (git-file-name "cl-asd-generator" commit))))
(build-system asdf-build-system/sbcl)
- (arguments
- `(#:asd-systems '("asd-generator")
- #:asd-files '("asd-generator.asd")))
(inputs
(list sbcl-cl-fad
sbcl-iterate
@@ -21456,8 +21394,19 @@ implementation for Common Lisp.")
(base32 "1048f6prz2lp859nxwcgghn6n38pc2pb580azzxpdhfcdi0034mj"))))
(build-system asdf-build-system/sbcl)
(arguments
- '(#:asd-files '("src/com.inuoe.jzon.asd" "test/com.inuoe.jzon-tests.asd")
- #:asd-systems '("com.inuoe.jzon" "com.inuoe.jzon-tests")))
+ '(#:asd-systems '("com.inuoe.jzon")
+ #:asd-test-systems '("com.inuoe.jzon-tests")
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'fix-test-asd
+ (lambda _
+ (substitute* "test/com.inuoe.jzon-tests.asd"
+ ((":depends-on")
+ (string-append
+ ":perform (test-op (op c) (symbol-call :fiveam :run!"
+ " (find-symbol \"JZON\" :com.inuoe.jzon-tests)))"
+ "\n"
+ " :depends-on"))))))))
(native-inputs
(list sbcl-alexandria
sbcl-fiveam