diff options
Diffstat (limited to 'gnu/packages/lisp-xyz.scm')
-rw-r--r-- | gnu/packages/lisp-xyz.scm | 257 |
1 files changed, 180 insertions, 77 deletions
diff --git a/gnu/packages/lisp-xyz.scm b/gnu/packages/lisp-xyz.scm index 025d1bc9ef..c89ad4aef9 100644 --- a/gnu/packages/lisp-xyz.scm +++ b/gnu/packages/lisp-xyz.scm @@ -5719,22 +5719,7 @@ offered, one SAX-like, the other similar to StAX.") (install-file "catalog.dtd" (string-append (assoc-ref outputs "out") - "/lib/" (%lisp-type))))) - (add-after 'create-asd 'remove-component - ;; XXX: The original .asd has no components, but our build system - ;; creates an entry nonetheless. We need to remove it for the - ;; generated .asd to load properly. See trivia.trivial for a - ;; similar problem. - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (asd (string-append out "/lib/sbcl/cxml.asd"))) - (substitute* asd - ((" :components -") - "")) - (substitute* asd - ((" *\\(\\(:compiled-file \"cxml--system\"\\)\\)") - "")))))))))) + "/lib/" (%lisp-type)))))))))) (define-public cl-cxml (sbcl-package->cl-source-package sbcl-cxml)) @@ -6136,7 +6121,6 @@ This package uses fare-quasiquote with named-readtable."))) (define-public cl-fare-quasiquote-readtable (sbcl-package->cl-source-package sbcl-fare-quasiquote-readtable)) -;; TODO: Add support for component-less system in asdf-build-system/sbcl. (define-public sbcl-fare-quasiquote-extras (package (inherit sbcl-fare-quasiquote) @@ -6156,22 +6140,7 @@ This package uses fare-quasiquote with named-readtable."))) (install-file "fare-quasiquote-extras.asd" lib) (make-file-writable (string-append lib "/fare-quasiquote-extras.asd")) - #t))) - (add-after 'create-asd-file 'fix-asd-file - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (lib (string-append out "/lib/" (%lisp-type))) - (asd (string-append lib "/fare-quasiquote-extras.asd"))) - (substitute* asd - ((":class") - "") - (("asdf/bundle:prebuilt-system") - "") - ((":components") - "") - (("\\(\\(:compiled-file \"fare-quasiquote-extras--system\"\\)\\)") - ""))) - #t))))) + #t)))))) (description "This library combines @code{fare-quasiquote-readtable} and @code{fare-quasiquote-optima}."))) @@ -6247,32 +6216,6 @@ with extensible optimizer interface."))) (name "sbcl-trivia.trivial") (inputs `(("trivia.level2" ,sbcl-trivia.level2))) - (arguments - `(#:phases - (modify-phases %standard-phases - (replace 'create-asd-file - (lambda* (#:key outputs inputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (lib (string-append out "/lib/" (%lisp-type))) - (level2 (assoc-ref inputs "trivia.level2"))) - (mkdir-p lib) - (install-file "trivia.trivial.asd" lib) - ;; XXX: This .asd does not have any component and the build - ;; system fails to work in this case. We should update the - ;; build system to handle component-less .asd. - ;; TODO: How do we append to file in Guile? It seems that - ;; (open-file ... "a") gets a "Permission denied". - (substitute* (string-append lib "/trivia.trivial.asd") - (("\"\\)") - (string-append "\") - -(progn (asdf/source-registry:ensure-source-registry) - (setf (gethash - \"trivia.level2\" - asdf/source-registry:*source-registry*) - #p\"" - level2 - "/share/common-lisp/sbcl-bundle-systems/trivia.level2.asd\"))"))))))))) (description "Trivia is a pattern matching compiler that is compatible with Optima, another pattern matching library for Common Lisp. It is meant to be faster and more extensible than Optima. @@ -6350,24 +6293,7 @@ This system contains the CFFI foreign slot access extension."))) ("trivia.cffi" ,sbcl-trivia.cffi) ("optima" ,sbcl-optima))) (arguments - `(#:test-asd-file "trivia.test.asd" - #:phases - (modify-phases %standard-phases - (add-after 'create-asd 'remove-component - ;; XXX: The original .asd has no components, but our build system - ;; creates an entry nonetheless. We need to remove it for the - ;; generated .asd to load properly. See trivia.trivial for a - ;; similar problem. - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (asd (string-append out "/lib/" (%lisp-type) "/trivia.asd"))) - (substitute* asd - ((" :components -") - "")) - (substitute* asd - ((" *\\(\\(:compiled-file \"trivia--system\"\\)\\)") - "")))))))) + `(#:test-asd-file "trivia.test.asd")) (description "Trivia is a pattern matching compiler that is compatible with Optima, another pattern matching library for Common Lisp. It is meant to be faster and more extensible than Optima."))) @@ -12018,3 +11944,180 @@ tables.") (define-public cl-rdkafka (sbcl-package->cl-source-package sbcl-cl-rdkafka)) + +(define-public sbcl-acclimation + (let ((commit "4d51150902568fcd59335f4cc4cfa022df6116a5")) + (package + (name "sbcl-acclimation") + (version (git-version "0.0.0" "1" commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/robert-strandh/Acclimation") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1aw7rarjl8ai57h0jxnp9hr3dka7qrs55mmbl1p6rhd6xj8mp9wq")))) + (build-system asdf-build-system/sbcl) + (home-page "https://github.com/robert-strandh/Acclimation") + (synopsis "Internationalization library for Common Lisp") + (description "This project is meant to provide tools for +internationalizing Common Lisp programs. + +One important aspect of internationalization is of course the language used in +error messages, documentation strings, etc. But with this project we provide +tools for all other aspects of internationalization as well, including dates, +weight, temperature, names of physical quantitites, etc.") + (license license:bsd-2)))) + +(define-public cl-acclimation + (sbcl-package->cl-source-package sbcl-acclimation)) + +(define-public sbcl-clump-2-3-tree + (let ((commit "1ea4dbac1cb86713acff9ae58727dd187d21048a")) + (package + (name "sbcl-clump-2-3-tree") + (version (git-version "0.0.0" "1" commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/robert-strandh/Clump") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1639msyagsswj85gc0wd90jgh8588j3qg5q70by9s2brf2q6w4lh")))) + (arguments + '(#:asd-file "2-3-tree/clump-2-3-tree.asd" + #:asd-system-name "clump-2-3-tree")) + (inputs + `(("acclimation" ,sbcl-acclimation))) + (build-system asdf-build-system/sbcl) + (home-page "https://github.com/robert-strandh/Clump") + (synopsis "Implementation of 2-3 trees for Common Lisp") + (description "The purpose of this library is to provide a collection of +implementations of trees. + +In contrast to existing libraries such as cl-containers, it does not impose a +particular use for the trees. Instead, it aims for a stratified design, +allowing client code to choose between different levels of abstraction. + +As a consequence of this policy, low-level interfaces are provided where +the concrete representation is exposed, but also high level interfaces +where the trees can be used as search trees or as trees that represent +sequences of objects.") + (license license:bsd-2)))) + +(define-public sbcl-clump-binary-tree + (package + (inherit sbcl-clump-2-3-tree) + (name "sbcl-clump-binary-tree") + (arguments + '(#:asd-file "Binary-tree/clump-binary-tree.asd" + #:asd-system-name "clump-binary-tree")) + (synopsis "Implementation of binary trees for Common Lisp"))) + +(define-public sbcl-clump + (package + (inherit sbcl-clump-2-3-tree) + (name "sbcl-clump") + (arguments + '(#:asd-file "clump.asd" + #:asd-system-name "clump")) + (inputs + `(("clump-2-3-tree" ,sbcl-clump-2-3-tree) + ("clump-binary-tree" ,sbcl-clump-binary-tree))) + (synopsis "Collection of tree implementations for Common Lisp"))) + +(define-public cl-clump + (sbcl-package->cl-source-package sbcl-clump)) + +(define-public sbcl-cluffer-base + (let ((commit "4aad29c276a58a593064e79972ee4d77cae0af4a")) + (package + (name "sbcl-cluffer-base") + (version (git-version "0.0.0" "1" commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/robert-strandh/cluffer") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1bcg13g7qb3dr8z50aihdjqa6miz5ivlc9wsj2csgv1km1mak2kj")))) + (arguments + '(#:asd-file "Base/cluffer-base.asd" + #:asd-system-name "cluffer-base")) + (inputs + `(("acclimation" ,sbcl-acclimation))) + (build-system asdf-build-system/sbcl) + (home-page "https://github.com/robert-strandh/cluffer") + (synopsis "Common Lisp library providing a protocol for text-editor buffers") + (description "Cluffer is a library for representing the buffer of a text +editor. As such, it defines a set of CLOS protocols for client code to +interact with the buffer contents in various ways, and it supplies different +implementations of those protocols for different purposes.") + (license license:bsd-2)))) + +(define-public sbcl-cluffer-standard-line + (package + (inherit sbcl-cluffer-base) + (name "sbcl-cluffer-standard-line") + (arguments + '(#:asd-file "Standard-line/cluffer-standard-line.asd" + #:asd-system-name "cluffer-standard-line")) + (inputs + `(("cluffer-base" ,sbcl-cluffer-base))))) + +(define-public sbcl-cluffer-standard-buffer + (package + (inherit sbcl-cluffer-base) + (name "sbcl-cluffer-standard-buffer") + (arguments + '(#:asd-file "Standard-buffer/cluffer-standard-buffer.asd" + #:asd-system-name "cluffer-standard-buffer")) + (inputs + `(("cluffer-base" ,sbcl-cluffer-base) + ("clump" ,sbcl-clump))))) + +(define-public sbcl-cluffer-simple-line + (package + (inherit sbcl-cluffer-base) + (name "sbcl-cluffer-simple-line") + (arguments + '(#:asd-file "Simple-line/cluffer-simple-line.asd" + #:asd-system-name "cluffer-simple-line")) + (inputs + `(("cluffer-base" ,sbcl-cluffer-base))))) + +(define-public sbcl-cluffer-simple-buffer + (package + (inherit sbcl-cluffer-base) + (name "sbcl-cluffer-simple-buffer") + (arguments + '(#:asd-file "Simple-buffer/cluffer-simple-buffer.asd" + #:asd-system-name "cluffer-simple-buffer")) + (inputs + `(("cluffer-base" ,sbcl-cluffer-base))))) + +(define-public sbcl-cluffer + (package + (inherit sbcl-cluffer-base) + (name "sbcl-cluffer") + (arguments + '(#:asd-file "cluffer.asd" + #:asd-system-name "cluffer")) + (inputs + `(("cluffer-base" ,sbcl-cluffer-base) + ("cluffer-standard-line" ,sbcl-cluffer-standard-line) + ("cluffer-standard-buffer" ,sbcl-cluffer-standard-buffer) + ("cluffer-simple-line" ,sbcl-cluffer-simple-line) + ("cluffer-simple-buffer" ,sbcl-cluffer-simple-buffer))))) + +(define-public cl-cluffer + (sbcl-package->cl-source-package sbcl-cluffer)) |