aboutsummaryrefslogtreecommitdiff
path: root/tests/discovery.scm
blob: 753e6a897972feb276e81abbcf2c7aef7db27c6a (about) (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2017 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.

(define-module (test-discovery)
  #:use-module (guix discovery)
  #:use-module (guix build-system)
  #:use-module (guix utils)
  #:use-module (srfi srfi-64)
  #:use-module (ice-9 match))

(define %top-srcdir
  (dirname (search-path %load-path "guix.scm")))

(test-begin "discovery")

(test-assert "scheme-modules"
  (match (map module-name (scheme-modules %top-srcdir "guix/import"))
    ((('guix 'import _ ...) ..1)
     #t)))

(test-assert "scheme-modules recurses in symlinks to directories"
  (call-with-temporary-directory
   (lambda (directory)
     (mkdir (string-append directory "/guix"))
     (symlink (string-append %top-srcdir "/guix/import")
              (string-append directory "/guix/import"))

     ;; DIRECTORY/guix/import is a symlink but we want to make sure
     ;; 'scheme-modules' recurses into it.
     (match (map module-name (scheme-modules directory))
       ((('guix 'import _ ...) ..1)
        #t)))))

(test-equal "scheme-modules, non-existent directory"
  '()
  (scheme-modules "/does/not/exist"))

(test-assert "all-modules"
  (match (map module-name
              (all-modules `((,%top-srcdir . "guix/build-system"))))
    ((('guix 'build-system names) ..1)
     names)))

(test-assert "fold-module-public-variables"
  (let ((modules (all-modules `((,%top-srcdir . "guix/build-system")))))
    (match (fold-module-public-variables (lambda (obj result)
                                           (if (build-system? obj)
                                               (cons obj result)
                                               result))
                                         '()
                                         modules)
      (((? build-system? bs) ..1)
       bs))))

(test-end "discovery")
ck) #:use-module (gnu packages maths) #:use-module (gnu packages mp3) #:use-module (gnu packages mpi) #:use-module (gnu packages ncurses) #:use-module (gnu packages networking) #:use-module (gnu packages package-management) #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) #:use-module (gnu packages python-xyz) #:use-module (gnu packages readline) #:use-module (gnu packages rsync) #:use-module (gnu packages sdl) #:use-module (gnu packages serialization) #:use-module (gnu packages sqlite) #:use-module (gnu packages statistics) #:use-module (gnu packages tcl) #:use-module (gnu packages tls) #:use-module (gnu packages version-control) #:use-module (gnu packages video) #:use-module (gnu packages web) #:use-module (gnu packages webkit) #:use-module (gnu packages xdisorg) #:use-module (gnu packages xiph) #:use-module (gnu packages xml) #:use-module (gnu packages xorg) #:use-module (ice-9 match) #:use-module (srfi srfi-1) #:use-module (srfi srfi-19)) (define-public sbcl-3b-bmfont (let ((commit "332c2262705f161627fc18add0310451a42799af") (revision "3")) (package (name "sbcl-3b-bmfont") (version (git-version "0.0.1" revision commit)) (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/3b/3b-bmfont/") (commit commit))) (file-name (git-file-name "cl-3b-bmfont" version)) (sha256 (base32 "11wnqa1wx9vji6cmxl5m5qnf12mqc6n7d5g8038r1wayq88bxia6")))) (build-system asdf-build-system/sbcl) (arguments `(#:asd-systems '("3b-bmfont" "3b-bmfont/common" "3b-bmfont/json" "3b-bmfont/text" "3b-bmfont/xml"))) (inputs (list sbcl-alexandria sbcl-cxml sbcl-flexi-streams sbcl-jsown sbcl-parse-number sbcl-split-sequence)) (home-page "https://github.com/3b/3b-bmfont/") (synopsis "Read/write bmfont metadata files") (description "This is a Common Lisp library which provides functionality to read/write Bit Map Font (BMF) into text, JSON and XML.") (license license:expat)))) (define-public ecl-3b-bmfont (sbcl-package->ecl-package sbcl-3b-bmfont)) (define-public cl-3b-bmfont (sbcl-package->cl-source-package sbcl-3b-bmfont)) (define sbcl-3b-bmfont/shinmera (let ((commit "58e529d24b7799d56b4b3f9c8a953b585d42c7d2") (revision "1")) (package (inherit sbcl-3b-bmfont) (version (git-version "0.0.1" revision commit)) (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/Shinmera/3b-bmfont/") (commit commit))) (file-name (git-file-name "3b-bmfont2" version)) (sha256 (base32 "17zby669b64rhxhk2szamzdgvispimh6ici05xa6x2vz4rvk71jq"))))))) (define-public sbcl-3bmd (let ((commit "e68b2d442f29b4534c1c8e2f2cdf7583643a2fc5") (revision "4")) (package (name "sbcl-3bmd") (version (git-version "0.0.0" revision commit)) (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/3b/3bmd") (commit commit))) (sha256 (base32 "12xqih1gnwsn1baqm7bq3kxss73phn06gvd0v1h1vwsjd1xgpq3g")) (file-name (git-file-name "cl-3bmd" version)))) (build-system asdf-build-system/sbcl) (arguments `(#:asd-systems '("3bmd" "3bmd-ext-definition-lists" "3bmd-ext-math" "3bmd-ext-tables" "3bmd-ext-wiki-links" "3bmd-youtube" "3bmd-ext-code-blocks") #:phases (modify-phases %standard-phases (add-after 'unpack 'fix-python3-path (lambda _ (substitute* "code-blocks.lisp" (("python3") (which "python3")))))))) (native-inputs (list sbcl-fiasco)) (inputs (list python python-pygments sbcl-alexandria sbcl-colorize sbcl-split-sequence sbcl-esrap)) (home-page "https://github.com/3b/3bmd") (synopsis "Markdown processor in Command Lisp using esrap parser") (description "This is a Common Lisp Markdown to HTML converter, using @command{esrap} for parsing, and grammar based on @command{peg-markdown}.") (license license:expat)))) (define-public cl-3bmd (sbcl-package->cl-source-package sbcl-3bmd)) (define-public ecl-3bmd (sbcl-package->ecl-package sbcl-3bmd)) (define-public sbcl-3bz (let ((commit "569614c40408f3aefc77ba233e0e4bd66d3850ad") (revision "1")) (package (name "sbcl-3bz") (version (git-version "0.0.0" revision commit)) (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/3b/3bz") (commit commit))) (file-name (git-file-name name version)) (sha256 (base32 "0kvvlvf50jhhw1s510f3clpr1a68632bq6d698yxcrx722igcrg4")))) (build-system asdf-build-system/sbcl) (inputs (list sbcl-alexandria sbcl-babel sbcl-cffi sbcl-mmap sbcl-nibbles sbcl-trivial-features)) (home-page "https://github.com/3b/3bz") (synopsis "Deflate decompression for Common Lisp") (description "3bz is an implementation of Deflate decompression (RFC 1951) optionally with zlib (RFC 1950) or gzip (RFC 1952) wrappers, with support for reading from foreign pointers (for use with mmap and similar, etc), and from CL octet vectors and streams.") (license license:expat)))) (define-public cl-3bz (sbcl-package->cl-source-package sbcl-3bz)) (define-public ecl-3bz (sbcl-package->ecl-package sbcl-3bz)) (define-public sbcl-3d-math (let ((commit "3831b1706d225def95a7301ef48b393b563f0114") (revision "0")) (package (name "sbcl-3d-math") (version (git-version "1.0.0" revision commit)) (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/Shinmera/3d-math") (commit commit))) (file-name (git-file-name "cl-3d-math" version)) (sha256 (base32 "052vzx5j7bag9dxvl0j0wrm244js1djldyn31rwxgkq7965rmi5r")))) (build-system asdf-build-system/sbcl) (native-inputs (list sbcl-parachute)) (inputs (list sbcl-documentation-utils sbcl-type-templates)) (home-page "https://shinmera.github.io/3d-math/") (synopsis "Linear algebra for 2D and 3D computations") (description "The @code{3d-math} library implements types, operators, and algorithms commonly used in math for 2D and 3D graphics. It supersedes and combines the prior libraries @code{3d-vectors}, @code{3d-matrices}, @code{3d-quaternions}, and @code{3d-transforms}. The new API is largely but not entirely backwards compatible, and adds new functionality.") (license license:zlib)))) (define-public cl-3d-math (sbcl-package->cl-source-package sbcl-3d-math)) (define-public ecl-3d-math (sbcl-package->ecl-package sbcl-3d-math)) (define-public sbcl-3d-matrices (let ((commit "b4f5a58299f8437fad2d77f0879c374e3430f4b5") (revision "2")) (package (name "sbcl-3d-matrices") (version (git-version "1.0.0" revision commit)) (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/Shinmera/3d-matrices") (commit commit))) (file-name (git-file-name "cl-3d-matrices" version)) (sha256 (base32 "1s8b4zlmqwyplghs73riz1khf0c5sk64w6b12jd599091d5nr6sr")))) (build-system asdf-build-system/sbcl) (native-inputs (list sbcl-parachute)) (inputs (list sbcl-3d-vectors sbcl-documentation-utils)) (home-page "https://shinmera.github.io/3d-matrices/") (synopsis "Utility library implementing 2x2, 3x3, 4x4 and NxM matrices") (description "@code{3D-MATRICES} is a library implementing common matrix operations, mainly intended as the counterpiece to @code{3d-vectors} and thus being aimed at operations in 3D space.") (license license:zlib)))) (define-public cl-3d-matrices (sbcl-package->cl-source-package sbcl-3d-matrices)) (define-public ecl-3d-matrices (sbcl-package->ecl-package sbcl-3d-matrices)) (define-public sbcl-3d-quaternions (let ((commit "b79c15cca8d9c409216a6cee8ec9e182dcdec9e2") (revision "0")) (package (name "sbcl-3d-quaternions") (version (git-version "1.0.0" revision commit)) (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/Shinmera/3d-quaternions") (commit commit))) (file-name (git-file-name "cl-3d-quaternions" version)) (sha256 (base32 "1mrq6yhb90mhvxdkg3fx58ci5yj5xlixbbzf1q6p76wyq40qjv76")))) (build-system asdf-build-system/sbcl) (native-inputs (list sbcl-parachute)) (inputs (list sbcl-3d-matrices sbcl-3d-vectors sbcl-documentation-utils)) (home-page "https://shinmera.github.io/3d-quaternions/") (synopsis "Quaternion and dual-quaternion functionality in Common Lisp") (description "This is a library for quaternions. It contains most of the quaternion operations one would usually expect out of such a library and offers them both in non-modifying and modifying versions where applicable. It also tries to be efficient where plausible. Each quaternion is made up of @code{float}s, which by default are @code{single-float}s, as they do not require value boxing on most modern systems and compilers.") (license license:zlib)))) (define-public cl-3d-quaternions (sbcl-package->cl-source-package sbcl-3d-quaternions)) ;; TODO: Build failure: ;; https://github.com/Shinmera/3d-quaternions/issues/2 ;; ;; (define-public ecl-3d-quaternions ;; (sbcl-package->ecl-package sbcl-3d-quaternions)) (define-public sbcl-3d-spaces (let ((commit "a93f4915affcf65617366297ad8bd2ec77bae702") (revision "0")) (package (name "sbcl-3d-spaces") (version (git-version "1.0.0" revision commit)) (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/Shirakumo/3d-spaces") (commit commit))) (file-name (git-file-name "cl-3d-spaces" version)) (sha256 (base32 "1m5cg5zy1731dcgkm1p4m53z1zsp387xligxh32pdrnrhc2lzhmf")))) (build-system asdf-build-system/sbcl) (native-inputs (list sbcl-parachute)) (inputs (list sbcl-3d-math sbcl-documentation-utils sbcl-for sbcl-trivial-extensible-sequences)) (home-page "https://shirakumo.github.io/3d-spaces/") (synopsis "Implementations of various spatial query structures") (description "The 3D-Spaces library implements a number of spatial query data structures; structures that can answer spatial range queries for optimized lookup, particularly suited for games.") (license license:zlib)))) (define-public cl-3d-spaces (sbcl-package->cl-source-package sbcl-3d-spaces)) (define-public ecl-3d-spaces (sbcl-package->ecl-package sbcl-3d-spaces)) (define-public sbcl-3d-transforms (let ((commit "1d44509387d0747cd0351e95a533eca609058632") (revision "0")) (package (name "sbcl-3d-transforms") (version (git-version "1.0.0" revision commit)) (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/Shinmera/3d-transforms") (commit commit))) (file-name (git-file-name "cl-3d-transforms" version)) (sha256 (base32 "03pmv7dh1j6kl16ch6lnvxzjrld4jbr3jx8slzkiipgzdxg74pcx")))) (build-system asdf-build-system/sbcl) (native-inputs (list sbcl-parachute)) (inputs (list sbcl-3d-matrices sbcl-3d-quaternions sbcl-3d-vectors sbcl-documentation-utils)) (home-page "https://shinmera.github.io/3d-transforms/") (synopsis "Common structure to encapsulate spatial transformations in Common Lisp") (description "This is a library that uses the other 3d-* math libraries to present an encapsulation for a spatial transformation. It offers convenience functions for operating on such transformations and for converting between them and the alternative 4x4 matrix representation.") (license license:zlib)))) (define-public cl-3d-transforms (sbcl-package->cl-source-package sbcl-3d-transforms)) ;; TODO: Build failure: ;; https://github.com/Shinmera/3d-quaternions/issues/2 ;; ;; (define-public ecl-3d-transforms ;; (sbcl-package->ecl-package sbcl-3d-transforms)) (define-public sbcl-3d-vectors (let ((commit "257969402864ac3859d77b981abf0aa5373c4e78") (revision "2")) (package (name "sbcl-3d-vectors") (version (git-version "3.1.0" revision commit)) (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/Shinmera/3d-vectors") (commit commit))) (file-name (git-file-name "cl-3d-vectors" version)) (sha256 (base32 "0vmf7nycc49ydcy0dfs25cgs655kwjc6jcjvpwxw61jq4gl2fh7x")))) (build-system asdf-build-system/sbcl) (native-inputs (list sbcl-parachute)) (inputs (list sbcl-documentation-utils)) (home-page "https://shinmera.github.io/3d-vectors/") (synopsis "Utility library implementing 2D, 3D, and 4D vectors") (description "@code{3D-VECTORS} is a library for vector math in 3D space. It contains most of the vector operations one would usually expect out of such a library and offers them both in non-modifying and modifying versions where applicable.") (license license:zlib)))) (define-public cl-3d-vectors (sbcl-package->cl-source-package sbcl-3d-vectors)) (define-public ecl-3d-vectors (sbcl-package->ecl-package sbcl-3d-vectors)) (define-public sbcl-40ants-doc (let ((commit "7725ff67a380e9ebfc6155e14d91e650f256711b") (revision "0")) (package (name "sbcl-40ants-doc") (version (git-version "0.1.0" revision commit)) (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/40ants/doc") (commit commit))) (sha256 (base32 "1v6gnhrk02vsixmprzk4wvvj7vh11vp5waxyih0qz2ih8d38r5pg")) (file-name (git-file-name "cl-40ants-doc" version)))) (build-system asdf-build-system/sbcl) (arguments ;; TODO: Add remaining dependencies of 40ants-doc-full and ;; 40ants-doc-test missing from Guix. '(#:asd-systems '("40ants-doc" ;;"40ants-doc-full" ) #:tests? #f)) ;;(native-inputs ;; (list sbcl-rove)) (inputs (list sbcl-named-readtables sbcl-pythonic-string-reader ;; For 40ants-doc-full: ;;sbcl-3bmd ;;sbcl-alexandria ;;sbcl-babel ;;sbcl-cl-cookie ;;sbcl-cl-fad ;;sbcl-cl-ppcre ;;sbcl-common-doc ; Missing from Guix ;;sbcl-common-html ; Missing from Guix ;;sbcl-commondoc-markdown ; Missing from Guix ;;sbcl-dexador ;;sbcl-docs-builder ; Missing from Guix ;;sbcl-fare-utils ;;sbcl-jonathan ;;sbcl-lass ;;sbcl-local-time ;;sbcl-log4cl ;;sbcl-slime-swank ;;sbcl-slynk ;;sbcl-spinneret ;;sbcl-stem ; Missing from Guix; also, license is unconfirmed ;;sbcl-str ;;sbcl-tmpdir ; Missing from Guix ;;sbcl-trivial-extract ; Missing from Guix ;;sbcl-xml-emitter )) (home-page "https://40ants.com/doc/") (synopsis "Exploratory programming environment and documentation generator") (description "@code{40ants-doc} provides a rudimentary explorable programming environment. The narrative primarily lives in so-called sections that mix Markdown docstrings with references to functions, variables, etc., all of which should probably have their own docstrings. The primary focus is on making code easily explorable by using SLIME's @kbd{M-.} (@code{slime-edit-definition}). Generating documentation in Markdown or HTML format from sections and all the referenced items is also implemented. With the simplistic tools provided, one may obtain results similar to literate programming, but documentation is generated from code, not the other way around, and there is no support for chunking. Code comes first, code must look pretty, documentation is code. @code{40ants-doc} is a fork of MGL-PAX with fewer dependencies (only @code{named-readtables} and @code{pythonic-string-reader}) for the core system, and additional features in the full system.") (license license:expat)))) (define-public cl-40ants-doc (sbcl-package->cl-source-package sbcl-40ants-doc)) (define-public ecl-40ants-doc (sbcl-package->ecl-package sbcl-40ants-doc)) (define-public sbcl-abstract-classes (let ((commit "7fa74f1e057f9ba7c1ffecff14f049f979e45267") (revision "1")) (package (name "sbcl-abstract-classes") (version (git-version "1.7.0" revision commit)) (source (origin (method git-fetch) (uri (git-reference (url "https://bitbucket.org/eeeickythump/cl-abstract-classes") (commit commit))) (file-name (git-file-name "cl-abstract-classes" version)) (sha256 (base32 "06lby4i6xbbgs7kgb0f3fqybvyskyg6djhrf967lnysv7hn3zpg9")))) (build-system asdf-build-system/sbcl) (inputs `(("closer-mop" ,sbcl-closer-mop))) (arguments `(#:asd-systems '("abstract-classes" "singleton-classes"))) (home-page "https://bitbucket.org/eeeickythump/cl-abstract-classes") (synopsis "Abstract, final, and singleton metaclasses for CLOS") (description "This package provides Common Lisp extension to the MOP to allow abstract, final and singleton classes.") (license license:public-domain)))) (define-public ecl-abstract-classes (sbcl-package->ecl-package sbcl-abstract-classes)) (define-public cl-abstract-classes (sbcl-package->cl-source-package sbcl-abstract-classes)) (define-public sbcl-access (let ((commit "a4f87fc1007f5c9a0a2abfddc1c23a77e87096f8") (revision "1")) (package (name "sbcl-access") (version (git-version "1.6.0" revision commit)) (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/AccelerationNet/access") (commit commit))) (file-name (git-file-name "cl-access" version)) (sha256 (base32 "0zdjqhb9rvnlq6nzmsp7372gi91k1rq9bz510m6hcki7g3r01iv5")))) (build-system asdf-build-system/sbcl) (native-inputs (list sbcl-lisp-unit2)) (inputs (list sbcl-alexandria sbcl-cl-ppcre sbcl-closer-mop sbcl-iterate)) (synopsis "Common lisp library to unify access to dictionary-like structures") (description "This is a Common lisp library to unify access to the most common dictionary-like data structures.") (home-page "https://github.com/AccelerationNet/access") (license license:bsd-3)))) (define-public ecl-access (sbcl-package->ecl-package sbcl-access)) (define-public cl-access (sbcl-package->cl-source-package sbcl-access)) (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 ecl-acclimation (sbcl-package->ecl-package sbcl-acclimation)) (define-public sbcl-acl-compat ;; There does not seem to be proper releases. (let ((commit "cac1d6920998ddcbee8310a873414732e707d8e5")) (package (name "sbcl-acl-compat") (version (git-version "0.1.1" "1" commit)) (source (origin (method git-fetch) (uri (git-reference (url "git://git.code.sf.net/p/portableaserve/git") (commit commit))) (file-name (git-file-name "acl-compat" version)) (sha256 (base32 "0ak6mqp84sjr0a7h5svr16vra4bf4fcx6wpir0n88dc1vjwy5xqa")))) (build-system asdf-build-system/sbcl) (arguments `(#:phases (modify-phases %standard-phases (add-after 'unpack 'cd-acl-compat (lambda _ (chdir "acl-compat") #t))))) (inputs `(("puri" ,sbcl-puri) ("cl-ppcre" ,sbcl-cl-ppcre) ("ironclad" ,sbcl-ironclad) ("cl-fad" ,sbcl-cl-fad))) (home-page "https://sourceforge.net/projects/portableaserve/") (synopsis "AllegroServe, a web server written in Common Lisp") (description "The server part of AllegroServe can be used either as a standalone web server or a module loaded into an application to provide a user interface to the application. AllegroServe's proxy ability allows it to run on the gateway machine between some internal network and the Internet. AllegroServe's client functions allow Lisp programs to explore the web.") (license license:llgpl)))) (define-public cl-acl-compat (sbcl-package->cl-source-package sbcl-acl-compat)) (define-public sbcl-adopt (package (name "sbcl-adopt") (version "1.2.0") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/sjl/adopt") (commit (string-append "v" version)))) (file-name (git-file-name "cl-adopt" version)) (sha256 (base32 "16kzkai96qk7vmclp8wxc9aghhnisw8gg9s7hra68300bgj86wzr")))) (build-system asdf-build-system/sbcl) (native-inputs (list sbcl-1am)) (inputs (list sbcl-bobbin sbcl-split-sequence)) (home-page "https://hg.stevelosh.com/adopt") (synopsis "Common Lisp option parsing library") (description "@acronym{ADOPT, A Damn OPTion} is a simple UNIX-style option parser in Common Lisp, heavily influenced by Python's @code{optparse} and @code{argparse}.") (license license:expat))) (define-public cl-adopt (sbcl-package->cl-source-package sbcl-adopt)) (define-public ecl-adopt (sbcl-package->ecl-package sbcl-adopt)) (define-public sbcl-agnostic-lizard (let ((commit "fe1a1d7d80c8b56163754e0e5b3653fd750ad298") (revision "2")) (package (name "sbcl-agnostic-lizard") (version (git-version "0.0.0" revision commit)) (source (origin (method git-fetch) (uri (git-reference (url "https://gitlab.common-lisp.net/mraskin/agnostic-lizard") (commit commit))) (file-name (git-file-name "cl-agnostic-lizard" version)) (sha256 (base32 "0amzshh6v3mp24j0h2cinv4zvdlg4kih04md5biakwhnmcw4j4pr")))) (build-system asdf-build-system/sbcl) (synopsis "Almost correct portable code walker for Common Lisp") (description "Agnostic Lizard is a portable implementation of a code walker and in particular of the macroexpand-all function (and macro) that makes a best effort to be correct while not expecting much beyond what the Common Lisp standard requires. It aims to be implementation-agnostic and to climb the syntax trees.") (home-page "https://gitlab.common-lisp.net/mraskin/agnostic-lizard") (license license:gpl3+)))) (define-public cl-agnostic-lizard (sbcl-package->cl-source-package sbcl-agnostic-lizard)) (define-public ecl-agnostic-lizard (sbcl-package->ecl-package sbcl-agnostic-lizard)) (define-public sbcl-agutil (let ((commit "df188d754d472da9faa1601a48f1f37bb7b34d68")) (package (name "sbcl-agutil") (version (git-version "0.0.1" "1" commit)) (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/alex-gutev/agutil/") (commit commit))) (file-name (git-file-name name version)) (sha256 (base32 "1xpnyzksk2xld64b6lw6rw0gn5zxlb77jwna59sd4yl7kxhxlfpf")))) (build-system asdf-build-system/sbcl) (inputs (list sbcl-alexandria sbcl-trivia)) (home-page "https://github.com/alex-gutev/agutil/") (synopsis "Collection of Common Lisp utilities") (description "A collection of Common Lisp utility functions and macros mostly not found in other utility packages.") (license license:expat)))) (define-public cl-agutil (sbcl-package->cl-source-package sbcl-agutil)) (define-public ecl-agutil (sbcl-package->ecl-package sbcl-agutil)) (define-public sbcl-alea (package (name "sbcl-alea") (version "1.0") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/eXodiquas/alea") (commit (string-append "v" version)))) (file-name (git-file-name "cl-alea" version)) (sha256 (base32 "0nd9fdjli22ygfw3c8k9nh7d36c92866hics5aij6x7ly1q781gz")))) (build-system asdf-build-system/sbcl) (native-inputs (list sbcl-fiveam)) (synopsis "Dice rolling library") (description "This package provides a Common Lisp library for dice rolling and working with dice-roll statistics.") (home-page "https://github.com/eXodiquas/alea") (license license:expat))) (define-public cl-alea (sbcl-package->cl-source-package sbcl-alea)) (define-public ecl-alea (sbcl-package->ecl-package sbcl-alea)) (define-public sbcl-alexa (package (name "sbcl-alexa") (version "2.1.1") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/quil-lang/alexa") (commit (string-append "v" version)))) (file-name (git-file-name "cl-alexa" version)) (sha256 (base32 "1y9jyz9gfmd02h492kf7v3mmpbhc0yfh4ka2rzd1vczq6fl8qgqv")))) (build-system asdf-build-system/sbcl) (native-inputs (list sbcl-fiasco)) (inputs (list sbcl-alexandria sbcl-cl-ppcre)) (synopsis "Lexical Analyzer Generator for Common Lisp") (description "ALEXA is a tool similar to lex or flex for generating lexical analyzers. Unlike tools like lex, however, ALEXA defines a domain-specific language within your Lisp program, so you don't need to invoke a separate tool.") (home-page "https://github.com/quil-lang/alexa") (license license:bsd-3))) (define-public ecl-alexa (sbcl-package->ecl-package sbcl-alexa)) (define-public cl-alexa (sbcl-package->cl-source-package sbcl-alexa)) (define-public sbcl-alexandria (let ((commit "009b7e532071d9777bdbd63b82d776555da95916") (revision "0")) (package (name "sbcl-alexandria") (version (git-version "1.4" revision commit)) (source (origin (method git-fetch) (uri (git-reference (url "https://gitlab.common-lisp.net/alexandria/alexandria.git") (commit commit))) (file-name (git-file-name "cl-alexandria" version)) (sha256 (base32 "0pdj779j3nwzn8f1661vf00rrjrbks1xgiq0rvwjw6qyxsfqfnl9")))) (build-system asdf-build-system/sbcl) (native-inputs (list sbcl-rt)) (synopsis "Collection of portable utilities for Common Lisp") (description "Alexandria is a collection of portable utilities. It does not contain conceptual extensions to Common Lisp. It is conservative in scope, and portable between implementations.") (home-page "https://common-lisp.net/project/alexandria/") (license license:public-domain)))) (define-public cl-alexandria (sbcl-package->cl-source-package sbcl-alexandria)) (define-public ecl-alexandria (sbcl-package->ecl-package sbcl-alexandria)) (define-public sbcl-alexandria-plus (let ((commit "adafb09838a84895bedb119f8253b89b6a04a2c5") (revision "0")) (package (name "sbcl-alexandria-plus") ;; Version is stated in the ASD file. (version (git-version "1.1.0" revision commit)) (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/Symbolics/alexandria-plus") (commit commit))) (file-name (git-file-name "cl-alexandria-plus" version)) (sha256 (base32 "1w9r19610h599303gqlx2x5n8mmdynss2gyl7xilg5h6v8z3hkfl")))) (build-system asdf-build-system/sbcl) (arguments '(#:asd-systems '("alexandria+"))) (native-inputs (list sbcl-parachute)) (inputs (list sbcl-alexandria)) (home-page "https://symbolics.github.io/alexandria-plus/") (synopsis "Conservative set of extensions to Alexandria utilities") (description "@code{cl-alexandria-plus} is a conservative set of extensions to @code{cl-alexandria} utilities.") (license license:ms-pl)))) (define-public cl-alexandria-plus (sbcl-package->cl-source-package sbcl-alexandria-plus)) (define-public ecl-alexandria-plus (sbcl-package->ecl-package sbcl-alexandria-plus)) (define-public sbcl-alloy (let ((commit "628974de537affb5b44ad548347f67c16efffcfc") (revision "3")) (package (name "sbcl-alloy") (version (git-version "0.0.0" revision commit)) (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/Shirakumo/alloy") (commit commit))) (file-name (git-file-name "cl-alloy" version)) (sha256 (base32 "0fx294qwxshgijss000pbjbnbwxqvxyw6p3mva36qljhbbkw2fxy")))) (build-system asdf-build-system/sbcl) (native-inputs (list sbcl-alexandria sbcl-parachute)) (inputs (list sbcl-array-utils sbcl-closer-mop sbcl-documentation-utils sbcl-float-features sbcl-colored sbcl-stealth-mixin sbcl-cl-opengl sbcl-font-discovery sbcl-uax-14 sbcl-sdf)) (arguments ;; Dismiss alloy-svg, since it is not completed: ;; https://github.com/Shirakumo/alloy/issues/24 '(#:asd-systems '("alloy" "alloy-animation" "alloy-opengl" "alloy-opengl-msdf" "alloy-opengl-png" "alloy-simple" "alloy-simple-presentations" "alloy-windowing"))) (home-page "https://shirakumo.github.io/alloy/") (synopsis "Common Lisp user interface protocol and toolkit implementation") (description "Alloy is a user interface toolkit. It is defined through a set of protocols that allow for a clear interface, as well as a standardised way to integrate Alloy into a target backend.") (license license:zlib)))) (define-public cl-alloy (sbcl-package->cl-source-package sbcl-alloy)) (define-public ecl-alloy (sbcl-package->ecl-package sbcl-alloy)) (define-public sbcl-amb (let ((commit "884bef69a1ea02f3b9deae0341e1a038ff31b896") (revision "0")) (package (name "sbcl-amb") (version (git-version "1.0.0" revision commit)) (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/phoe/amb") (commit commit))) (file-name (git-file-name "cl-amb" version)) (sha256 (base32 "1klh1aakklj1famrff0sccnwlv8238b1q446288aqnqgxxw6pf21")))) (build-system asdf-build-system/sbcl) (inputs (list sbcl-alexandria)) (native-inputs (list sbcl-parachute)) (synopsis "Implementation of John McCarthy's ambiguous operator") (description "@code{cl-amb} provides an implementation of John McCarthy's ambiguous operator in portable Common Lisp.") (home-page "https://github.com/phoe/amb/") (license license:expat)))) (define-public cl-amb (sbcl-package->cl-source-package sbcl-amb)) (define-public ecl-amb (sbcl-package->ecl-package sbcl-amb)) (define-public sbcl-anaphora (package (name "sbcl-anaphora") (version "0.9.8") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/tokenrove/anaphora") (commit version))) (sha256 (base32 "1ds5ab0rzkrhfl29xpvmvyxmkdyj9mi19p330pz603lx95njjc0b")) (file-name (git-file-name "cl-anaphora" version)))) (build-system asdf-build-system/sbcl) (native-inputs (list sbcl-rt)) (synopsis "The anaphoric macro collection from Hell") (description "Anaphora is the anaphoric macro collection from Hell: it includes many new fiends in addition to old friends like @command{aif} and @command{awhen}.") (home-page "https://github.com/tokenrove/anaphora") (license license:public-domain))) (define-public cl-anaphora (sbcl-package->cl-source-package sbcl-anaphora)) (define-public ecl-anaphora (sbcl-package->ecl-package sbcl-anaphora)) ;;; Split the antik package in two to work around the circular dependency ;;; between antik/antik and antik/gsll. (define-public sbcl-antik-base (let ((commit "e4711a69b3d6bf37b5727af05c3cfd03e8428ba3") (revision "1")) (package (name "sbcl-antik-base") (version (git-version "0.0.0" revision commit)) (source (origin (method git-fetch) (uri (git-reference (url "https://gitlab.common-lisp.net/antik/antik.git") (commit commit))) (file-name (git-file-name name version)) (sha256 (base32 "047ga2c38par2xbgg4qx6hwv06qhf1c1f67as8xvir6s80lip1km")))) (build-system asdf-build-system/sbcl) (inputs `(("alexandria" ,sbcl-alexandria) ("cffi" ,sbcl-cffi) ("cl-ppcre" ,sbcl-cl-ppcre) ("drakma" ,sbcl-drakma) ("fare-utils" ,sbcl-fare-utils) ("iterate" ,sbcl-iterate) ("metabang-bind" ,sbcl-metabang-bind) ("named-readtables" ,sbcl-named-readtables) ("split-sequence" ,sbcl-split-sequence) ("static-vectors" ,sbcl-static-vectors) ("trivial-garbage" ,sbcl-trivial-garbage) ("trivial-utf-8" ,sbcl-trivial-utf-8))) (native-inputs (list sbcl-lisp-unit)) (arguments '(#:asd-systems '("antik-base" "foreign-array") #:phases (modify-phases %standard-phases (add-after 'unpack 'fix-build (lambda _ (for-each delete-file '("antik.asd" "physical-dimension.asd" "science-data.asd")) #t))))) (synopsis "Scientific and engineering computation in Common Lisp") (description "Antik provides a foundation for scientific and engineering computation in Common Lisp. It is designed not only to facilitate numerical computations, but to permit the use of numerical computation libraries and the interchange of data and procedures, whether foreign (non-Lisp) or Lisp libraries. It is named after the Antikythera mechanism, one of the oldest examples of a scientific computer known.") (home-page "https://common-lisp.net/project/antik/") (license license:gpl3)))) (define-public cl-antik-base (sbcl-package->cl-source-package sbcl-antik-base)) (define-public ecl-antik-base (let ((pkg (sbcl-package->ecl-package sbcl-antik-base))) (package (inherit pkg) (arguments (substitute-keyword-arguments (package-arguments pkg) ((#:phases phases) `(modify-phases ,phases (add-after 'unpack 'fix-readtable (lambda _ (substitute* "input-output/readtable.lisp" (("#-ccl") "#-(or ccl ecl)")) #t))))))))) (define-public sbcl-antik (package (inherit sbcl-antik-base) (name "sbcl-antik") (inputs `(("antik-base" ,sbcl-antik-base) ("gsll" ,sbcl-gsll))) (arguments '(#:asd-systems '("antik" "science-data") #:phases (modify-phases %standard-phases (add-after 'unpack 'fix-build (lambda _ (for-each delete-file '("antik-base.asd" "foreign-array.asd")) #t))))))) (define-public cl-antik (sbcl-package->cl-source-package sbcl-antik)) (define-public sbcl-anypool (let ((commit "5389ec945882e87f2fc1d3e852c91aaf176556e5") (revision "1")) (package (name "sbcl-anypool") (version (git-version "0.1.0" revision commit)) (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/fukamachi/anypool") (commit commit))) (file-name (git-file-name "cl-anypool" version)) (sha256 (base32 "1ffssc5fzh7gj0z94xxfb3mk5cwja65lrhxyfgib15a6yxqf1kk1")))) (build-system asdf-build-system/sbcl) (native-inputs (list sbcl-rove)) (inputs (list sbcl-bordeaux-threads sbcl-cl-speedy-queue)) (arguments '(#:asd-systems '("anypool" "anypool/middleware"))) (home-page "https://github.com/fukamachi/anypool") (synopsis "General-purpose connection pooling library") (description "This package provides a general-purpose connection pooling library for Common Lisp.") (license license:bsd-2)))) (define-public cl-anypool (sbcl-package->cl-source-package sbcl-anypool)) (define-public ecl-anypool (sbcl-package->ecl-package sbcl-anypool)) (define-public sbcl-april (let ((commit "bdd74f168ec82f28fe4ab692f2c0af39441a5701") (revision "3")) (package (name "sbcl-april") (version (git-version "1.0" revision commit)) (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/phantomics/april") (commit commit))) (file-name (git-file-name "cl-april" version)) (sha256 (base32 "0hvlp2286z1ksa7jr7r661kdr0lpfv25n5chl72jrzq5zz70lidx")) (modules '((guix build utils))) (snippet '(begin ;; Remove bundled Apache-relicensed MaxPC. (delete-file-recursively "maxpc-apache") ;; Ensure references are to upstream MaxPC. (substitute* "vex/vex.asd" (("maxpc-apache") "maxpc")))))) (build-system asdf-build-system/sbcl) (inputs (list sbcl-alexandria sbcl-array-operations sbcl-cl-ppcre sbcl-cl-unicode sbcl-lparallel sbcl-maxpc sbcl-parse-number sbcl-prove sbcl-random-state sbcl-serapeum sbcl-simple-date-time sbcl-symbol-munger sbcl-trivia)) (home-page "https://github.com/phantomics/april") (synopsis "Array Programming Re-Imagined in Lisp") (description "April compiles a subset of the APL programming language into Common Lisp. Leveraging Lisp's powerful macros and numeric processing faculties, it brings APL's expressive potential to bear for Lisp developers. Replace hundreds of lines of number-crunching code with a single line of APL.") (license license:asl2.0)))) (define-public cl-april (sbcl-package->cl-source-package sbcl-april)) (define-public ecl-april (sbcl-package->ecl-package sbcl-april)) (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") (commit commit))) (file-name (git-file-name name version)) (sha256 (base32 "0pvsc9fmybx7rxd0kmzq4shi6hszdpwdc1sfy7jwyfxf8n3hnv4p")))) (build-system asdf-build-system/sbcl) (inputs (list sbcl-cl-fad 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-arnesi (let ((commit "1e7dc4cb2cad8599113c7492c78f4925e839522e") (revision "1")) (package (name "sbcl-arnesi") (version (git-version "2.0.0" revision commit)) (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/AccelerationNet/arnesi") (commit commit))) (file-name (git-file-name "arnesi" version)) (sha256 (base32 "0jgj2xgd1gq6rf8ia43lkmbrbxnp8rgs053br9azfa25ygk3ikbh")))) (build-system asdf-build-system/sbcl) (arguments ;; FIXME: (Sharlatan-20210523T190315+0100): Tests failed on ;; special-lisp-var-rebount-in/cc ;; ;; ; processing (TEST SPECIAL-LISP-VAR-REBOUND-IN/CC ...) ;; ; wrote .../sbcl/arnesi/t/call-cc-tmp5GEXGEG5.fasl ;; ; compilation finished in 0:00:00.028 ;; Unhandled SIMPLE-ERROR in thread ;; #<SB-THREAD:THREAD "main thread" RUNNING {100B768173}>: ;; Sorry, No walker for the special operater DECLARE defined. ;; ;; Backtrace for: #<SB-THREAD:THREAD "main thread" RUNNING {100B768173}> ;; 0: (SB-DEBUG::DEBUGGER-DISABLED-HOOK #<SIMPLE-ERROR "Sorry, ;; No walker for the special operater ~S defined." ;; {1001FAF9D3}> #<unused argument> :QUIT T) ;; `(#:tests? #f)) (native-inputs (list sbcl-fiveam)) (inputs `(("cl-ppcre" ,sbcl-cl-ppcre) ("collectors" ,sbcl-collectors) ("swank" ,sbcl-slime-swank))) (home-page "https://github.com/AccelerationNet/arnesi") (synopsis "Common Lisp utility suite") (description "ARNESI is Common Lisp utilities library similar to ALEXANDRIA, ANAPHORA or GOLDEN-UTILS.") (license license:bsd-3)))) (define-public ecl-arnesi (sbcl-package->ecl-package sbcl-arnesi)) (define-public cl-arnesi (sbcl-package->cl-source-package sbcl-arnesi)) (define-public sbcl-array-operations (let ((commit "75cbc3b1adb2e3ce2109489753d0f290b071e81b") (revision "0")) (package (name "sbcl-array-operations") (version (git-version "0.0.0" revision commit)) (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/bendudson/array-operations") (commit commit))) (file-name (git-file-name "array-operations" version)) (sha256 (base32 "0ip49hhq32w80qsc7jmspyda5r2rsszvw0mk2r3341cld78sz9ya")))) (build-system asdf-build-system/sbcl) (native-inputs (list sbcl-alexandria sbcl-clunit2)) (inputs (list sbcl-let-plus)) (synopsis "Simple array operations library for Common Lisp") (description "This library is a collection of functions and macros for manipulating Common Lisp arrays and performing numerical calculations with them.") (home-page "https://github.com/bendudson/array-operations") (license license:expat)))) (define-public cl-array-operations (sbcl-package->cl-source-package sbcl-array-operations)) (define-public ecl-array-operations (sbcl-package->ecl-package sbcl-array-operations)) (define-public sbcl-array-utils (let ((commit "29da8fccf6093fe8f8c7b2daef7de1a428ef1834") (revision "0")) (package (name "sbcl-array-utils") (version (git-version "1.2.0" revision commit)) (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/Shinmera/array-utils") (commit commit))) (file-name (git-file-name "cl-array-utils" version)) (sha256 (base32 "1d66s2inb9hpw27hdb20x27dychmpn1mn35v0mlsib848qdz87az")))) (build-system asdf-build-system/sbcl) (native-inputs (list sbcl-parachute)) (inputs (list 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 ecl-array-utils (sbcl-package->ecl-package sbcl-array-utils)) (define-public sbcl-arrow-macros ;; The latest upstream version tag is dated (pushed in 2020), use the latest ;; commit instead. (let ((commit "16bdfd31298182099c7d70df4598104e5a38b05e") (revision "0")) (package (name "sbcl-arrow-macros") (version (git-version "0.2.7" revision commit)) (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/hipeta/arrow-macros") (commit commit))) (file-name (git-file-name "arrow-macros" version)) (sha256 (base32 "0q4vpysk4h9ghs5zmnzzilky9jyz7i8n0x0p98nq528crbrkh6c4")))) (build-system asdf-build-system/sbcl) (native-inputs (list sbcl-fiveam)) (home-page "https://github.com/hipeta/arrow-macros/") (synopsis "Clojure-like arrow macros in Common Lisp") (description "Arrow-macros provides clojure-like arrow macros (ex. ->, ->>) and diamond wands in swiss-arrows.") (license license:expat)))) (define-public cl-arrow-macros (sbcl-package->cl-source-package sbcl-arrow-macros)) (define-public ecl-arrow-macros (sbcl-package->ecl-package sbcl-arrow-macros)) (define-public sbcl-arrows (let ((commit "df7cf0067e0132d9697ac8b1a4f1b9c88d4f5382") (revision "0")) (package (name "sbcl-arrows") (version (git-version "0.2.0" revision commit)) (source (origin (method git-fetch) (uri (git-reference (url "https://gitlab.com/Harleqin/arrows.git") (commit commit))) (file-name (git-file-name name version)) (sha256 (base32 "042k9vkssrqx9nhp14wdzm942zgdxvp35mba0p2syz98i75im2yy")))) (build-system asdf-build-system/sbcl) (native-inputs (list sbcl-hu.dwim.stefil)) (synopsis "Clojure-like arrow macros for Common Lisp") (description "This library implements the @code{->} and @code{->>} macros from Clojure, as well as several expansions on the idea.") (home-page "https://gitlab.com/Harleqin/arrows") (license license:public-domain)))) (define-public cl-arrows (sbcl-package->cl-source-package sbcl-arrows)) (define-public ecl-arrows (sbcl-package->ecl-package sbcl-arrows)) (define-public sbcl-asdf-finalizers (let ((commit "7f537f6c598b662ae987c6acc268dd27c25977e0") (revision "1")) (package (name "sbcl-asdf-finalizers") (version (git-version "0.0.0" revision commit)) (source (origin (method git-fetch) (uri (git-reference (url "https://gitlab.common-lisp.net/asdf/asdf-finalizers") (commit commit))) (file-name (git-file-name name version)) (sha256 (base32 "1w56c9yjjydjshsgqxz57qlp2v3r4ilbisnsgiqphvxnhvd41y0v")))) (build-system asdf-build-system/sbcl) (native-inputs `(("fare-utils" ,sbcl-fare-utils) ("hu.dwim.stefil" ,sbcl-hu.dwim.stefil))) (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 finalization of compile-time constructs while building Lisp source files. It produces two systems: asdf-finalizers and list-of.") (license license:expat)))) (define-public cl-asdf-finalizers (sbcl-package->cl-source-package sbcl-asdf-finalizers)) (define-public ecl-asdf-finalizers (sbcl-package->ecl-package sbcl-asdf-finalizers)) (define-public sbcl-asd-generator (let ((commit "27f94971a7c68c4dcb51e3f6be4142743d0c44e8") (revision "0")) (package (name "sbcl-asd-generator") (version (git-version "1.0" revision commit)) (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/phoe/asd-generator") (commit commit))) (sha256 (base32 "0yiybl7b9x1f85v0drj0yw9821y3yfhya4n6gycnv5vvx6jp9by4")) (file-name (git-file-name "cl-asd-generator" commit)))) (build-system asdf-build-system/sbcl) (inputs (list sbcl-cl-fad sbcl-iterate sbcl-alexandria sbcl-trivia)) (home-page "https://github.com/phoe/asd-generator") (synopsis "Automatic generator for .asd files") (description "This package provides an automatic generator for ASDF's .asd files.") (license license:gpl3+)))) (define-public cl-asd-generator (sbcl-package->cl-source-package sbcl-asd-generator)) (define-public ecl-asd-generator (sbcl-package->ecl-package sbcl-asd-generator)) (define-public sbcl-asdf-system-connections (let ((commit "9f085240febccccff99d9d3bb687fcaafffd3f5e") (revision "1")) (package (name "sbcl-asdf-system-connections") (version (git-version "0.8.4" revision commit)) (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/gwkkwg/asdf-system-connections") (commit commit))) (file-name (git-file-name "cl-asdf-system-connections" version)) (sha256 (base32 "06kg0m8bv383qq3r34x0f8hz6p6zxcw02qn7kj960vcnrp5a5b3y")))) (build-system asdf-build-system/sbcl) (home-page "https://github.com/gwkkwg/asdf-system-connections") (synopsis "Common Lisp ASDF system auto-loading extension") (description "This package provides a Common Lisp ASDF system auto-loading extension.") (license license:expat)))) (define-public cl-asdf-system-connections (sbcl-package->cl-source-package sbcl-asdf-system-connections)) (define-public ecl-asdf-system-connections (sbcl-package->ecl-package sbcl-asdf-system-connections)) (define-public sbcl-aserve ;; There does not seem to be proper releases. (let ((commit "cac1d6920998ddcbee8310a873414732e707d8e5") (revision "2")) (package (name "sbcl-aserve") (version (git-version "1.2.50" revision commit)) (source (origin (method git-fetch) (uri (git-reference ;; https://github.com/franzinc/aserve/ seems to be incompatible ;; with SBCL, etc. (url "git://git.code.sf.net/p/portableaserve/git") (commit commit))) (file-name (git-file-name "aserve" version)) (sha256 (base32 "0ak6mqp84sjr0a7h5svr16vra4bf4fcx6wpir0n88dc1vjwy5xqa")) (patches (search-patches ;; Add HTML5 elements to htmlgen. ;; Adapted from https://github.com/franzinc/aserve/ commits: ;; * e47bd763: "rfe12668: add HTML 5 elements to htmlgen" ;; * 7371ce59: "fix bugs in rfe12668 implementation" "sbcl-aserve-add-HTML-5-elements.patch" "sbcl-aserve-fix-rfe12668.patch")))) (build-system asdf-build-system/sbcl) (arguments `(#:phases (modify-phases %standard-phases (add-after 'unpack 'cd-aserve (lambda _ (chdir "aserve") #t)) (add-after 'cd-aserve 'fix-asd (lambda _ (substitute* "aserve.asd" ((" :force t") "")) #t)) (add-after 'cd-aserve 'fix-tests (lambda _ (substitute* "test/t-aserve.cl" (("\\(asdf:oos 'asdf:load-op :ptester\\)") "")) #t))))) (inputs `(("acl-compat" ,sbcl-acl-compat))) (home-page "https://franz.com/support/documentation/current/doc/aserve/aserve.html") (synopsis "AllegroServe, a web server written in Common Lisp") (description "The server part of AllegroServe can be used either as a standalone web server or a module loaded into an application to provide a user interface to the application. AllegroServe's proxy ability allows it to run on the gateway machine between some internal network and the Internet. AllegroServe's client functions allow Lisp programs to explore the web.") (license license:llgpl)))) (define-public cl-aserve (sbcl-package->cl-source-package sbcl-aserve)) (define-public sbcl-asn1 (let ((commit "b0388fa98878b20069ef266cc9cbd5aac13c4a69") (revision "0")) (package (name "sbcl-asn1") (build-system asdf-build-system/sbcl) (version (git-version "0.1.0" revision commit)) (home-page "https://github.com/fukamachi/asn1") (source (origin (method git-fetch) (uri (git-reference (url home-page) (commit commit))) (file-name (git-file-name "cl-asn1" version)) (sha256 (base32 "16gs4xznmg19ii0cg7g2yxrk9ls5vah8ynjj80s99rv8wi3789z1")))) (native-inputs (list sbcl-cl-base64 sbcl-rove)) (inputs (list sbcl-trivia sbcl-fast-io sbcl-ironclad)) (synopsis "ASN.1 decoder for Common Lisp") (description "This package provides an ASN.1 encoder/decoder for Common Lisp.") (license license:bsd-2)))) (define-public cl-asn1 (sbcl-package->cl-source-package sbcl-asn1)) (define-public ecl-asn1 (sbcl-package->ecl-package sbcl-asn1)) (define-public sbcl-assoc-utils (let ((commit "74af16a3c0f10ad35e406167de02984744fc7854") (revision "1")) (package (name "sbcl-assoc-utils") (version (git-version "0.1" revision commit)) (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/fukamachi/assoc-utils") (commit commit))) (file-name (git-file-name "cl-assoc-utils" version)) (sha256 (base32 "1yac1v7zmdxj0p6rvwrrhyqvy7yjfhmqbchkwqhhr89gpjvvaick")))) (build-system asdf-build-system/sbcl) (arguments '(#:asd-systems '("assoc-utils-test" "assoc-utils"))) (native-inputs (list sbcl-prove)) (home-page "https://github.com/fukamachi/assoc-utils") (synopsis "Utilities for manipulating association lists in Common Lisp") (description "@code{assoc-utils} provides utilities for manipulating association lists in Common Lisp.") (license license:public-domain)))) (define-public cl-assoc-utils (sbcl-package->cl-source-package sbcl-assoc-utils)) (define-public ecl-assoc-utils (sbcl-package->ecl-package sbcl-assoc-utils)) (define-public sbcl-atomichron (let ((commit "5b3578bbad8c37ab559e56924d98c373efe11de5") (revision "0")) (package (name "sbcl-atomichron") (version (git-version "0.0.0" revision commit)) (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/no-defun-allowed/atomichron") (commit commit))) (file-name (git-file-name "cl-atomichron" version)) (sha256 (base32 "1fmmhb3pbv7j4d1cc02zv24bpd0kd2agfjjcj46w3gmv1bb0hva1")))) (build-system asdf-build-system/sbcl) (inputs (list sbcl-atomics sbcl-bordeaux-threads)) (home-page "https://github.com/no-defun-allowed/atomichron") (synopsis "Atomic metering library for Common Lisp") (description "@code{atomichron} is a Common Lisp library which implements a time meter which tracks how many times a form is evaluated, and how long evaluation takes. It uses atomic instructions so that meters will present correct results in the presence of multiple threads, while trying to minimize synchronization latency.") (license license:bsd-2)))) (define-public cl-atomichron (sbcl-package->cl-source-package sbcl-atomichron)) (define-public ecl-atomichron (sbcl-package->ecl-package sbcl-atomichron)) (define-public sbcl-atomics ;; No release in years. (let ((commit "b7477024894e322bff9c85e6d81e5e8d1d4eae59") (revision "2")) (package (name "sbcl-atomics") (version (git-version "1.0.0" revision commit)) (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/Shinmera/atomics") (commit commit))) (file-name (git-file-name "cl-atomics" version)) (sha256 (base32 "1ah6fgvfva0axnhj4sp1qy6gjyw41fkhpnv998di0wbp6hls8j39")))) (build-system asdf-build-system/sbcl) (inputs (list sbcl-documentation-utils)) (native-inputs (list sbcl-parachute)) (home-page "https://shinmera.github.io/atomics/") (synopsis "Common Lisp portability layer for atomic operations") (description "This is a library for access to atomic operation primitives such as compare-and-swap. It aims to be a rather thin layer over what the implementations offer.") (license license:zlib)))) (define-public cl-atomics (sbcl-package->cl-source-package sbcl-atomics)) (define-public ecl-atomics (sbcl-package->ecl-package sbcl-atomics)) (define-public sbcl-authentic (let ((commit "4e9194dda227b98f56dda1c2a2480efcc2d1f973") (revision "2")) (package (name "sbcl-authentic") (version (git-version "0.1.2" revision commit)) (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/charje/cl-authentic") (commit commit))) (file-name (git-file-name "cl-authentic" version)) (sha256 (base32 "0ncsxrybnx0pjsndv3j8w4lphlpcsld8sxg3c5b46fb3a8nd4ssf")))) (build-system asdf-build-system/sbcl) (native-inputs (list sbcl-fiveam)) (inputs (list sbcl-clsql sbcl-ironclad)) (home-page "https://github.com/charje/cl-authentic") (synopsis "User/password management for Common Lisp applications") (description "Authentic provides a light-weight and extendible solution to user/password management for Common Lisp applications. It has features such as safe password storage in a database, password reset, user confirmation tokens, and user authentication.") (license license:llgpl)))) (define-public ecl-authentic (sbcl-package->ecl-package sbcl-authentic)) (define-public cl-authentic (sbcl-package->cl-source-package sbcl-authentic)) (define-public sbcl-babel ;; No release since 2014. (let ((commit "627d6a60d0ffc82a3687b39ba8a99128031504d9") (revision "3")) (package (name "sbcl-babel") (version (git-version "0.5.0" revision commit)) (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/cl-babel/babel") (commit commit))) (file-name (git-file-name "cl-babel" version)) (sha256 (base32 "1sndap9ykyyvrzlqm9smgqy49r3n67l926yg0hb7pm00plj0y380")))) (build-system asdf-build-system/sbcl) (native-inputs (list sbcl-hu.dwim.stefil)) (inputs (list sbcl-alexandria sbcl-trivial-features)) (home-page "https://common-lisp.net/project/babel/") (synopsis "Charset encoding and decoding library") (description "Babel is a charset encoding and decoding library, not unlike GNU libiconv, but completely written in Common Lisp.") (license (list license:bsd-2 license:expat))))) (define-public cl-babel (sbcl-package->cl-source-package sbcl-babel)) (define-public ecl-babel (sbcl-package->ecl-package sbcl-babel)) (define-public sbcl-binary-types (let ((commit "9ec42042a50403961c08179a892ae3de725b1d7a")) (package (name "sbcl-binary-types") (version (git-version "1.2" "1" commit)) (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/frodef/binary-types/") (commit commit))) (file-name (git-file-name "binary-types" version)) (sha256 (base32 "0kp4xwblfxh7gmgqc38k9xzrqlcr0q1jm5167ma1pajdxd3182j8")))) (build-system asdf-build-system/sbcl) (home-page "https://github.com/frodef/binary-types/") (synopsis "Read and write binary records for Common Lisp") (description "Binary-types is a Common Lisp package for reading and writing binary files. Binary-types provides macros that are used to declare the mapping between Lisp objects and some binary (i.e. octet-based) representation.") (license license:bsd-3)))) (define-public cl-binary-types (sbcl-package->cl-source-package sbcl-binary-types)) (define-public ecl-binary-types (sbcl-package->ecl-package sbcl-binary-types)) (define-public sbcl-binascii (let ((commit "0fb0a9e5773148fd04d50efef08c1cc10f6fc487") (revision "1")) (package (name "sbcl-binascii") (version (git-version "1.0" revision commit)) (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/sharplispers/binascii") (commit commit))) (file-name (git-file-name "cl-binascii" version)) (sha256 (base32 "000rcdl8qshr7n48zq9bzrc4lkjx4ylb3r3w9x9syhiwfla9j4b7")) (modules '((guix build utils))) (snippet ;; Unbundle the RT test framework. '(begin (delete-file "tests/rt.lisp") (substitute* "binascii.asd" ((":depends-on \\(binascii\\)") ":depends-on (binascii rt)") (("\\(:file \"rt\"\\)") "") (("\\(:file \"tests\" :depends-on \\(\"rt\"\\)\\)") "(:file \"tests\")")))))) (build-system asdf-build-system/sbcl) (native-inputs (list sbcl-rt)) (home-page "https://github.com/sharplispers/binascii") (synopsis "Common Lisp library of ASCII encoding schemes for binary data") (description "@code{binascii} is a Common Lisp library for converting binary data to ASCII text of some kind. Such conversions are common in email protocols (for encoding attachments to support old non-8-bit clean transports) or encoding binary data in HTTP and XML applications. @code{binascii} supports the encodings described in RFC 4648: base64, base32, base16, and variants. It also supports base85, used in Adobe's PostScript and PDF document formats, and a variant called ascii85, used by git for binary diff files.") (license license:bsd-3)))) (define-public cl-binascii (sbcl-package->cl-source-package sbcl-binascii)) (define-public sbcl-binding-arrows ;; Fork of sbcl-arrows that does not have a new tag. (let ((commit "46bcba8bb1ff27cd5caab3bda36f000d0489a4f2") (revision "2")) (package (name "sbcl-binding-arrows") (version (git-version "1.0.0" revision commit)) (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/phoe/binding-arrows") (commit commit))) (file-name (git-file-name "cl-binding-arrows" version)) (sha256 (base32 "0kzybw5qlb49czh9v2lnxniz9jzqx306a6lnarfv59x48a7cch22")))) (build-system asdf-build-system/sbcl) (native-inputs (list sbcl-hu.dwim.stefil)) (home-page "https://github.com/phoe/binding-arrows") (synopsis "Threading macros based on binding anonymous variables") (description "This system implements binding threading macros -- a kind of threading macros with different semantics than classical, Clojure core threading macros or their extension, swiss-arrows. Two Common Lisp implementations of those are @code{arrows} and @code{arrow-macros}. This system is a fork of @code{arrows} with changes in semantics that make it impossible to merge back upstream.") (license license:expat)))) (define-public ecl-binding-arrows (sbcl-package->ecl-package sbcl-binding-arrows)) (define-public cl-binding-arrows (sbcl-package->cl-source-package sbcl-binding-arrows)) (define-public sbcl-binpack (let ((commit "e67f56bb697bdeac81e28e1cca4a5d117a9cf125") (revision "1")) (package (name "sbcl-binpack") (version (git-version "0.0.1" revision commit)) (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/lispgames/binpack") (commit commit))) (file-name (git-file-name "binpack" version)) (sha256 (base32 "1pcnsg60pqywd3k72m5pwimq01sm3jyvc1c3rbkij740r7grdxi1")))) (build-system asdf-build-system/sbcl) (native-inputs (list sbcl-parachute)) (inputs (list sbcl-alexandria)) (home-page "https://github.com/lispgames/binpack") (synopsis "Common Lisp rectangle packer for sprite/texture atlases") (description "This library features a rectangle packer for sprite and texture atlases.") (license license:expat)))) (define-public cl-binpack (sbcl-package->cl-source-package sbcl-binpack)) (define-public ecl-binpack (sbcl-package->ecl-package sbcl-binpack)) (define-public sbcl-birch (let ((commit "30cd24260675c6c4e276daaf28be8d02ac15dd8f") (revision "0")) (package (name "sbcl-birch") (version (git-version "1.0.1" revision commit)) (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/jorams/birch") (commit commit))) (file-name (git-file-name "cl-birch" version)) (sha256 (base32 "1b24xng92ra7420s3zy44pybk4h7xg4kjwdk35arl46badgi28r1")))) (build-system asdf-build-system/sbcl) (inputs (list sbcl-alexandria sbcl-cl+ssl sbcl-flexi-streams sbcl-split-sequence sbcl-usocket)) (native-inputs (list sbcl-prove)) (home-page "https://github.com/jorams/birch") (synopsis "Common Lisp IRC client library") (description "Birch is a simple Common Lisp IRC client library. It makes use of CLOS for event handling.") (license (list license:expat))))) (define-public cl-birch (sbcl-package->cl-source-package sbcl-birch)) (define-public ecl-birch (sbcl-package->ecl-package sbcl-birch)) (define-public sbcl-bit-smasher ;; No release. (let ((commit "c2dcb3b5ec0e485484be681fe17c4e81e58790d9")) (package (name "sbcl-bit-smasher") (version (git-version "1.0.2" "1" commit)) (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/thephoeron/bit-smasher/") (commit commit))) (file-name (git-file-name name version)) (sha256 (base32 "0wjmwn06fjpw0rlpaksf3ab727p8fnzj58z7jajl3m0wqd4ii74w")))) (build-system asdf-build-system/sbcl) (inputs `(("cl-base64" ,sbcl-cl-base64) ("cl-base58" ,sbcl-cl-base58))) (home-page "https://github.com/thephoeron/bit-smasher/") (synopsis "Handle bit vectors, bit vector arithmetic, and type conversions") (description "Utility library for handling bit vectors, bit vector arithmetic, and universal integer type conversions between bit-vectors, byte-vectors, octals, decimals, and hexadecimal notation.") (license license:expat)))) (define-public cl-bit-smasher (sbcl-package->cl-source-package sbcl-bit-smasher)) (define-public ecl-bit-smasher (sbcl-package->ecl-package sbcl-bit-smasher)) (define-public sbcl-bknr-datastore (let ((commit "c98d44f47cc88d19ff91ca3eefbd9719a8ace022") (revision "1")) (package (name "sbcl-bknr-datastore") (version (git-version "0.0.0" revision commit)) (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/hanshuebner/bknr-datastore") (commit commit))) (file-name (git-file-name "bknr-datastore" version)) (sha256 (base32 "1vi3w65fnczqvswkm381n6liqfrzjrg40y698qvj7skj28dm5vrm")))) (build-system asdf-build-system/sbcl) (arguments `(#:asd-systems '("bknr.datastore" "bknr.impex" "bknr.indices" "bknr.skip-list" "bknr.utils" "bknr.xml") #:phases (modify-phases %standard-phases (add-after 'unpack 'enter-source-directory (lambda _ (chdir "src") #t))))) (native-inputs `(("cl-store" ,sbcl-cl-store) ("fiveam" ,sbcl-fiveam) ("unit-test" ,sbcl-unit-test))) (inputs `(("alexandria" ,sbcl-alexandria) ("bordeaux-threads" ,sbcl-bordeaux-threads) ("closer-mop" ,sbcl-closer-mop) ("cl-interpol" ,sbcl-cl-interpol) ("cl-ppcre" ,sbcl-cl-ppcre) ("cxml" ,sbcl-cxml) ("flexi-streams" ,sbcl-flexi-streams) ("md5" ,sbcl-md5) ("trivial-utf-8" ,sbcl-trivial-utf-8) ("yason" ,sbcl-yason))) (home-page "https://github.com/hanshuebner/bknr-datastore") (synopsis "In-memory database for Common Lisp") (description "BKNR.DATASTORE is an in-memory CLOS based database with transactions for Common Lisp.") (license license:bsd-0)))) (define-public cl-bknr-datastore (sbcl-package->cl-source-package sbcl-bknr-datastore)) ;; NOTE: (Sharlatan-20210429T191426+0100): ;; There is no port for ECL in upstream yet ;; (define-public ecl-bknr-datastore ;; (sbcl-package->ecl-package sbcl-bknr-datastore)) (define-public sbcl-blackbird (let ((commit "d361f81c1411dec07f6c2dcb11c78f7aea9aaca8") (revision "1")) (package (name "sbcl-blackbird") (version (git-version "0.5.2" revision commit)) (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/orthecreedence/blackbird") (commit commit))) (file-name (git-file-name name version)) (sha256 (base32 "0xfds5yaya64arzr7w1x38karyz11swzbhxx1afldpradj9dh19c")))) (build-system asdf-build-system/sbcl) (inputs (list sbcl-vom)) (native-inputs (list sbcl-cl-async sbcl-fiveam)) (synopsis "Promise implementation for Common Lisp") (description "This is a standalone promise implementation for Common Lisp. It is the successor to the now-deprecated cl-async-future project.") (home-page "https://orthecreedence.github.io/blackbird/") (license license:expat)))) (define-public cl-blackbird (sbcl-package->cl-source-package sbcl-blackbird)) (define-public ecl-blackbird (sbcl-package->ecl-package sbcl-blackbird)) (define-public sbcl-bobbin (let ((commit "b454e8241b24ceab674eeeae464c8082b1b6d8ce") (revision "0")) (package (name "sbcl-bobbin") (version (git-version "1.0.1" revision commit)) (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/sjl/bobbin") (commit commit))) (file-name (git-file-name "cl-bobbin" version)) (sha256 (base32 "02lw7w8cbvnxw5acbz405rb5lcqsf4fx7dvj5ldr0lhgbyv1mjnm")))) (build-system asdf-build-system/sbcl) (native-inputs (list sbcl-1am)) (inputs (list sbcl-split-sequence)) (home-page "https://docs.stevelosh.com/bobbin/") (synopsis "Simple (word) wrapping utilities for strings") (description "Bobbin is a simple word-wrapping library for strings in Common Lisp. It aims to be simple, work nicely for the majority of cases, and degrade gracefully for edge cases. It is not particularly concerned with speed — if you need very high-performance word wrapping, Bobbin is not for you.") (license license:expat)))) (define-public cl-bobbin (sbcl-package->cl-source-package sbcl-bobbin)) (define-public ecl-bobbin (sbcl-package->ecl-package sbcl-bobbin)) (define-public sbcl-bodge-blobs-support (let ((commit "c5034ca5f4fc3a44dbadeba215a09afd59a404b0") (revision "1")) (package (name "sbcl-bodge-blobs-support") (version (git-version "1.0.0" revision commit)) (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/borodust/bodge-blobs-support") (commit commit))) (file-name (git-file-name "bodge-blobs-support" version)) (sha256 (base32 "02nd1x6y1akp1ymv1y4z9ympwbnpd1drwi4f86xbjszxqff6jyj8")))) (build-system asdf-build-system/sbcl) (native-inputs (list sbcl-trivial-features)) (inputs (list sbcl-cffi sbcl-alexandria)) (home-page "https://github.com/borodust/bodge-blobs-support") (synopsis "Common Lisp utilities for blob packages") (description "This is a Common Lisp library for simplifying packaging and loading of compiled foreign library collection.") (license license:unlicense)))) (define-public cl-bodge-blobs-support (sbcl-package->cl-source-package sbcl-bodge-blobs-support)) (define-public ecl-bodge-blobs-support (sbcl-package->ecl-package sbcl-bodge-blobs-support)) (define-public sbcl-bodge-math (let ((commit "9159b7faf88d440024c07110dbef2abddb20b9af") (revision "1")) (package (name "sbcl-bodge-math") (version (git-version "1.0.0" revision commit)) (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/borodust/bodge-math") (commit commit))) (file-name (git-file-name "bodge-math" version)) (sha256 (base32 "0r3vnl9lywn4ksy34apcv6j825qp7l1naddawr14v4lwacndb80v")))) (build-system asdf-build-system/sbcl) (inputs (list sbcl-bodge-utilities sbcl-rtg-math)) (home-page "https://github.com/borodust/bodge-math") (synopsis "Common Lisp core math utilities of BODGE library collection") (description "This Common Lisp package contains the core math utilities of the @emph{Bodge} library collection.") (license license:expat)))) (define-public ecl-bodge-math (sbcl-package->ecl-package sbcl-bodge-math)) (define-public cl-bodge-math (sbcl-package->cl-source-package sbcl-bodge-math)) (define-public sbcl-bodge-queue (let ((commit "948c9a501dcd412689952d09eb7453ec2722336a") (revision "0")) (package (name "sbcl-bodge-queue") (version (git-version "0.0.0" revision commit)) (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/borodust/bodge-queue") (commit commit))) (file-name (git-file-name "bodge-queue" version)) (sha256 (base32 "148hjikqk8v2m30mj15xh89zni6szf9z3prav580qk9dqr8djjdr")))) (build-system asdf-build-system/sbcl) (native-inputs (list sbcl-fiveam)) (home-page "https://github.com/borodust/bodge-queue") (synopsis "Simple queue for Common Lisp") (description "This Common Lisp library provides a simple FIFO implementation with no external dependencies.") (license license:expat)))) (define-public cl-bodge-queue (sbcl-package->cl-source-package sbcl-bodge-queue)) (define-public ecl-bodge-queue (sbcl-package->ecl-package sbcl-bodge-queue)) (define-public sbcl-bodge-utilities (let ((commit "6304bac4abe06d53579e2c0fc4437d14ff077d9f") (revision "1")) (package (name "sbcl-bodge-utilities") (version (git-version "1.0.0" revision commit)) (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/borodust/bodge-utilities") (commit commit))) (file-name (git-file-name "bodge-utilities" version)) (sha256 (base32 "1z1blj05q71vzh323qwyn9p3xs7v0mq2yhwfyzza5libp37wqm3c")))) (build-system asdf-build-system/sbcl) (inputs (list sbcl-alexandria sbcl-cffi sbcl-claw sbcl-dissect sbcl-local-time sbcl-log4cl sbcl-split-sequence sbcl-static-vectors sbcl-trivial-gray-streams)) (home-page "https://github.com/borodust/bodge-utilities") (synopsis "Common Lisp utilities library for CL-BODGE") (description "This Common Lisp library provides utilities for the @emph{Bodge} library collection.") (license license:expat)))) (define-public cl-bodge-utilities (sbcl-package->cl-source-package sbcl-bodge-utilities)) (define-public ecl-bodge-utilities (sbcl-package->ecl-package sbcl-bodge-utilities)) (define-public sbcl-boost-json (let ((commit "eca166f5ff1f10bad14e00b9fd5bf9fcf3691a47") (revision "0")) (package (name "sbcl-boost-json") (version (git-version "1.1" revision commit)) (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/cl-boost/json") (commit commit))) (file-name (git-file-name "cl-boost-json" version)) (sha256 (base32 "12k0470899qsll2qixksxf2vrhjmskk3nzp1di9k04n1b29nrakd")))) (build-system asdf-build-system/sbcl) (arguments '(#:phases (modify-phases %standard-phases ;; See <https://github.com/cl-boost/json/pull/2>. (add-after 'unpack 'fix-decode-symbol (lambda _ (substitute* '("decode.lisp" "encode.lisp") (("formfeed") "page"))))))) (home-page "https://github.com/cl-boost/json") (synopsis "JSON encoding and decoding for Common Lisp") (description "BOOST-JSON is a simple JSON parsing library for Common Lisp.") (license license:asl2.0)))) (define-public cl-boost-json (sbcl-package->cl-source-package sbcl-boost-json)) (define-public ecl-boost-json (sbcl-package->ecl-package sbcl-boost-json)) (define-public sbcl-boost-lexer (let ((commit "139ca9e9580f890698deec05061e495376b7735a") (revision "0")) (package (name "sbcl-boost-lexer") (version (git-version "1.0" revision commit)) (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/cl-boost/lexer") (commit commit))) (file-name (git-file-name "cl-boost-lexer" version)) (sha256 (base32 "01vsczb5cn62k2hkkn39xwh5fjn2x0b507n7afia98jnhhk3d5x4")))) (build-system asdf-build-system/sbcl) (inputs (list sbcl-boost-re)) (home-page "https://github.com/cl-boost/lexer") (synopsis "String tokenizing for Common Lisp") (description "BOOST-LEXER is a tokenizer for Common Lisp that makes heavy use of BOOST-RE.") (license license:asl2.0)))) (define-public cl-boost-lexer (sbcl-package->cl-source-package sbcl-boost-lexer)) (define-public ecl-boost-lexer (sbcl-package->ecl-package sbcl-boost-lexer)) (define-public sbcl-boost-parse (let ((commit "c8f7e536b950752f3e35003e7ee0446e0fd51b50") (revision "0")) (package (name "sbcl-boost-parse") (version (git-version "1.0" revision commit)) (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/cl-boost/parse") (commit commit))) (file-name (git-file-name "cl-boost-parse" version)) (sha256 (base32 "0djnp392n9wgpr9r2ycnwkglad5mn285yvr53jx3g7anm2p8r0vf")))) (build-system asdf-build-system/sbcl) (home-page "https://github.com/cl-boost/parse") (synopsis "Monadic parsing for Common Lisp") (description "BOOST-PARSE is a simple token parsing library for Common Lisp.") (license license:asl2.0)))) (define-public cl-boost-parse (sbcl-package->cl-source-package sbcl-boost-parse)) (define-public ecl-boost-parse (sbcl-package->ecl-package sbcl-boost-parse)) (define-public sbcl-boost-re (let ((commit "d279fc58abf76d0c40aa6cde42e17a0591bc2c5d") (revision "0")) (package (name "sbcl-boost-re") (version (git-version "1.0" revision commit)) (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/cl-boost/re") (commit commit))) (file-name (git-file-name "cl-boost-re" version)) (sha256 (base32 "1h9c2rdhw6m1pm67gqbj46y2vb1kc3i1c9y3l4qhgfz14dbk80a2")))) (build-system asdf-build-system/sbcl) (inputs (list sbcl-boost-parse)) (home-page "https://github.com/cl-boost/re") (synopsis "Lua-style string pattern matching for Common Lisp") (description "BOOST-RE is a small, portable, lightweight, and quick, regular expression library for Common Lisp. It is a non-recursive, backtracking VM.") (license license:asl2.0)))) (define-public cl-boost-re (sbcl-package->cl-source-package sbcl-boost-re)) (define-public ecl-boost-re (sbcl-package->ecl-package sbcl-boost-re)) (define-public sbcl-bordeaux-fft (let ((commit "4a1f5600cae59bdabcb32de4ee2d7d73a9450d6e") (revision "0")) (package (name "sbcl-bordeaux-fft") (version (git-version "1.0.1" revision commit)) (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/ahefner/bordeaux-fft") (commit commit))) (file-name (git-file-name name version)) (sha256 (base32 "0j584w6kq2k6r8lp2i14f9605rxhp3r15s33xs08iz1pndn6iwqf")))) (build-system asdf-build-system/sbcl) (home-page "http://vintage-digital.com/hefner/software/bordeaux-fft/") (synopsis "Fast Fourier Transform for Common Lisp") (description "The Bordeaux-FFT library provides a reasonably efficient implementation of the Fast Fourier Transform and its inverse for complex-valued inputs, in portable Common Lisp.") (license license:gpl2+)))) (define-public cl-bordeaux-fft (sbcl-package->cl-source-package sbcl-bordeaux-fft)) (define-public ecl-bordeaux-fft (sbcl-package->ecl-package sbcl-bordeaux-fft)) (define-public sbcl-bordeaux-threads (package (name "sbcl-bordeaux-threads") (version "0.9.3") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/sionescu/bordeaux-threads") (commit (string-append "v" version)))) (sha256 (base32 "0pp3w5hsph47sqagr4j2pbg3ddb29jx93zg8kvxsp2c4flp0qz0f")) (file-name (git-file-name "cl-bordeaux-threads" version)))) (inputs (list sbcl-alexandria sbcl-global-vars sbcl-trivial-features sbcl-trivial-garbage)) (native-inputs (list sbcl-fiveam)) (build-system asdf-build-system/sbcl) (arguments (list #:phases #~(modify-phases %standard-phases (add-after 'unpack 'adjust-test-sleep (lambda _ ;; 0.001 is too short for some slower machines. (substitute* '("test/tests-v1.lisp" "test/tests-v2.lisp") (("sleep 0\\.001") "sleep 0.002"))))))) (synopsis "Portable shared-state concurrency library for Common Lisp") (description "BORDEAUX-THREADS is a proposed standard for a minimal MP/Threading interface. It is similar to the CLIM-SYS threading and lock support.") (home-page "https://common-lisp.net/project/bordeaux-threads/") (license license:x11))) (define-public cl-bordeaux-threads (sbcl-package->cl-source-package sbcl-bordeaux-threads)) (define-public ecl-bordeaux-threads (sbcl-package->ecl-package sbcl-bordeaux-threads)) (define-public sbcl-bst (let ((commit "8545aed0d504df2829ad139566feeabe22305388") (revision "0")) (package (name "sbcl-bst") (version (git-version "2.0" revision commit)) (source (origin (method git-fetch) (uri (git-reference (url "https://codeberg.org/glv/bst") (commit commit))) (file-name (git-file-name name version)) (sha256 (base32 "18ig7rvxcra69437g0i8sxyv7c5dg26jqnx1rc2f9pxmihdprgk8")))) (build-system asdf-build-system/sbcl) (native-inputs (list sbcl-alexandria sbcl-fiveam)) (synopsis "Binary search tree for Common Lisp") (description "BST is a Common Lisp library for working with binary search trees that can contain any kind of values.") (home-page "https://codeberg.org/glv/bst") (license license:gpl3)))) (define-public cl-bst (sbcl-package->cl-source-package sbcl-bst)) (define-public ecl-bst (sbcl-package->ecl-package sbcl-bst)) (define-public sbcl-bt-semaphore (let ((commit "46b4bf315590f510d2d4ec5ca8908efbe68007e9") (revision "0")) (package (name "sbcl-bt-semaphore") (version (git-version "0.6.3" revision commit)) (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/r-moeritz/bt-semaphore") (commit commit))) (sha256 (base32 "0rl7yp36225z975hg069pywwlpchwn4086cgxwsi2db5mhghpr7l")) (file-name (git-file-name "cl-bt-semaphore" version)))) (build-system asdf-build-system/sbcl) (inputs (list sbcl-bordeaux-threads)) (native-inputs (list sbcl-clunit)) (synopsis "Semaphore implementation for @code{bordeaux-threads}") (description "@code{bt-semaphore} is a semaphore implementation for use with @code{bordeaux-threads}.") (home-page "https://github.com/r-moeritz/bt-semaphore") (license license:expat)))) (define-public cl-bt-semaphore (sbcl-package->cl-source-package sbcl-bt-semaphore)) (define-public ecl-bt-semaphore (sbcl-package->ecl-package sbcl-bt-semaphore)) (define-public sbcl-bubble-operator-upwards (let ((commit "846275a318b960de81b62caecb1e31930f70aef6") (revision "0")) (package (name "sbcl-bubble-operator-upwards") (version (git-version "1.0" revision commit)) (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/Hexstream/bubble-operator-upwards") (commit commit))) (file-name (git-file-name "cl-bubble-operator-upwards" version)) (sha256 (base32 "0ybsy29ms3yrxgr7f2146lr6z4vm070dvdyzvwwxjh4dgm9na7bi")))) (build-system asdf-build-system/sbcl) (native-inputs (list sbcl-parachute)) (home-page "https://www.hexstreamsoft.com/libraries/bubble-operator-upwards/") (synopsis "Function that bubbles an operator upwards in a form") (description "@code{bubble-operator-upwards} is a function that bubbles an operator upwards in a form, demultiplexing all alternative branches by way of cartesian product.") (license license:unlicense)))) (define-public cl-bubble-operator-upwards (sbcl-package->cl-source-package sbcl-bubble-operator-upwards)) (define-public ecl-bubble-operator-upwards (sbcl-package->ecl-package sbcl-bubble-operator-upwards)) (define-public sbcl-burgled-batteries3 (let ((commit "f65f454d13bb6c40e17e9ec62e41eb5069e09760") (revision "2")) (package (name "sbcl-burgled-batteries3") (version (git-version "0.0.0" revision commit)) (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/snmsts/burgled-batteries3") (commit commit))) (file-name (git-file-name "cl-burgled-batteries3" version)) (sha256 (base32 "1nzn7jawrfajyzwfnzrg2cmn9xxadcqh4szbpg0jggkhdkdzz4wa")) (patches (search-patches "sbcl-burgled-batteries3-fix-signals.patch")))) (build-system asdf-build-system/sbcl) (arguments `(#:tests? #f #:modules (((guix build python-build-system) #:select (python-version)) ,@%asdf-build-system-modules) #:imported-modules ((guix build python-build-system) ,@%asdf-build-system-modules) #:phases (modify-phases (@ (guix build asdf-build-system) %standard-phases) (add-after 'unpack 'set-*cpython-include-dir*-var (lambda* (#:key inputs #:allow-other-keys) (let ((python (assoc-ref inputs "python"))) (setenv "BB_PYTHON3_INCLUDE_DIR" (string-append python "/include/python" (python-version python))) (setenv "BB_PYTHON3_DYLIB" (string-append python "/lib/libpython3.so")) #t))) (add-after 'unpack 'adjust-for-python-3.10 (lambda _ ;; These methods are no longer part of the public API. (substitute* "ffi-interface.lisp" ((".*PyEval_ReInitThreads.*") "") ((".*\"PyErr_Warn\".*") "") ((".*\"PyFloat_ClearFreeList\".*") "") ((".*\"PyParser_SimpleParseString\".*") "") ((".*\"PyParser_SimpleParseStringFlags\".*") "") ((".*\"PyParser_SimpleParseStringFlagsFilename\".*") "") ((".*\"PyParser_SimpleParseFile\".*") "") ((".*\"PyParser_SimpleParseFileFlags\".*") "") ((".*\"PyLong_FromUnicode\".*") ""))))))) (native-inputs (list sbcl-cl-fad sbcl-lift sbcl-cl-quickcheck)) (inputs (list python sbcl-alexandria sbcl-cffi sbcl-parse-declarations sbcl-trivial-garbage)) (synopsis "Bridge between Python and Lisp (FFI bindings, etc.)") (description "This package provides a shim between Python3 (specifically, the CPython implementation of Python) and Common Lisp.") (home-page "https://github.com/snmsts/burgled-batteries3") (license license:expat)))) (define-public cl-burgled-batteries3 (sbcl-package->cl-source-package sbcl-burgled-batteries3)) (define-public ecl-burgled-batteries3 (sbcl-package->ecl-package sbcl-burgled-batteries3)) (define-public sbcl-cache-while (let ((commit "38e9ffbdb2c894670c366c1e5802ffcc8cfd43a7") (revision "1")) (package (name "sbcl-cache-while") (version (git-version "0.0.0" revision commit)) (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/charje/cache-while") (commit commit))) (file-name (git-file-name "cache-while" version)) (sha256 (base32 "1qil68rfn5irmkb0jk1f6g1zy80wgc3skl8cr4rfgh7ywgm5izx3")))) (build-system asdf-build-system/sbcl) (home-page "https://github.com/charje/cache-while") (synopsis "Temporary / one-time caching macro for Common Lisp") (description "This is a Common Lisp macro for defining temporary caches that invalidate based on expressions evaluating to different values.") (license license:llgpl)))) (define-public cl-cache-while (sbcl-package->cl-source-package sbcl-cache-while)) (define-public ecl-cache-while (sbcl-package->ecl-package sbcl-cache-while)) (define-public sbcl-cacle (let ((commit "4cbe8cfe227d2e097eaced14766f4f37aa05e617") (revision "1")) (package (name "sbcl-cacle") (version (git-version "1.0.1" revision commit)) (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/jlahd/cacle") (commit commit))) (file-name (git-file-name "cl-cacle" version)) (sha256 (base32 "0h0dk0sfkfl8g0sbrs76ydb9l4znssqhx8nc5k1sg7zxpni5a4qy")))) (build-system asdf-build-system/sbcl) (inputs (list sbcl-bordeaux-threads)) (home-page "https://github.com/jlahd/cacle") (synopsis "Extensible cache services for Common Lisp") (description "This package provides a generic cache management facility with configurable and extensible cache replacement policies. The actual cached data can be stored anywhere, with cacle taking charge of keeping track of which entry is to be discarded next when more space is needed for a new entry.") (license (list license:expat))))) (define-public cl-cacle (sbcl-package->cl-source-package sbcl-cacle)) (define-public ecl-cacle (sbcl-package->ecl-package sbcl-cacle)) (define-public sbcl-calispel (let ((commit "e9f2f9c1af97f4d7bb4c8ac25fb2a8f3e8fada7a")) (package (name "sbcl-calispel") (version (git-version "0.1" "1" commit)) (source (origin (method git-fetch) (uri (git-reference ;; This fork replaces the dependency on the obsolete ;; eager-future with eager-future2. (url "https://github.com/hawkir/calispel") (commit commit))) (file-name (git-file-name name version)) (sha256 (base32 "08bmf3pi7n5hadpmqqkg65cxcj6kbvm997wcs1f53ml1nb79d9z8")))) (build-system asdf-build-system/sbcl) (inputs (list sbcl-jpl-queues sbcl-bordeaux-threads)) (native-inputs (list sbcl-eager-future2)) (synopsis "Thread-safe message-passing channels in Common Lisp") (description "Calispel is a Common Lisp library for thread-safe message-passing channels, in the style of the occam programming language, also known as communicating sequential processes (CSP). See @url{https://en.wikipedia.org/wiki/Communicating_sequential_processes}. Calispel channels let one thread communicate with another, facilitating unidirectional communication of any Lisp object. Channels may be unbuffered, where a sender waits for a receiver (or vice versa) before either operation can continue, or channels may be buffered with flexible policy options. Because sending and receiving on a channel may block, either operation can time out after a specified amount of time. A syntax for alternation is provided (like @code{ALT} in occam, or Unix @code{select()}): given a sequence of operations, any or all of which may block, alternation selects the first operation that doesn't block and executes associated code. Alternation can also time out, executing an \"otherwise\" clause if no operation becomes available within a set amount of time. Calispel is a message-passing library, and as such leaves the role of threading abstractions and utilities left to be filled by complementary libraries such as Bordeaux-Threads and Eager Future.") (home-page "https://www.thoughtcrime.us/software/calispel/") (license license:isc)))) (define-public cl-calispel (sbcl-package->cl-source-package sbcl-calispel)) (define-public ecl-calispel (sbcl-package->ecl-package sbcl-calispel)) (define-public sbcl-calm (package (name "sbcl-calm") (version "0.0.35") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/VitoVan/calm") (commit version))) (file-name (git-file-name "cl-calm" version)) (sha256 (base32 "1k1kwpiq7ikk1mgfi26sd968d623jl6xffngd9vwswnaiwihk4dp")))) (build-system asdf-build-system/sbcl) (inputs (list sbcl-cl-cairo2 sbcl-cl-str sbcl-sdl2 sbcl-sdl2-image sbcl-sdl2-mixer sbcl-slime-swank)) (home-page "https://github.com/VitoVan/calm") (synopsis "Vector graphic library for Common Lisp") (description "This package provides a SDL2 based vector graphic library for Common Lisp.") (license license:gpl2))) (define-public cl-calm (sbcl-package->cl-source-package sbcl-calm)) (define-public ecl-calm (sbcl-package->ecl-package sbcl-calm)) (define-public sbcl-cambl (let ((commit "7016d1a98215f82605d1c158e7a16504ca1f4636") (revision "1")) (package (name "sbcl-cambl") (version (git-version "4.0.0" revision commit)) (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/jwiegley/cambl") (commit commit))) (file-name (git-file-name "cambl" version)) (sha256 (base32 "103mry04j2k9vznsxm7wcvccgxkil92cdrv52miwcmxl8daa4jiz")))) (build-system asdf-build-system/sbcl) (native-inputs (list sbcl-xlunit)) (inputs `(("alexandria" ,sbcl-alexandria) ("cl-containers" ,sbcl-cl-containers) ("local-time" ,sbcl-local-time) ("periods" ,sbcl-periods))) (synopsis "Commoditized amounts and balances for Common Lisp") (description "CAMBL is a Common Lisp library providing a convenient facility for working with commoditized values. It does not allow compound units (and so is not suited for scientific operations) but does work rather nicely for the purpose of financial calculations.") (home-page "https://github.com/jwiegley/cambl") (license license:bsd-3)))) (define-public cl-cambl (sbcl-package->cl-source-package sbcl-cambl)) (define-public ecl-cambl (sbcl-package->ecl-package sbcl-cambl)) (define-public sbcl-canonicalized-initargs (package (name "sbcl-canonicalized-initargs") (version "2.0") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/Hexstream/canonicalized-initargs") (commit (string-append "v" version)))) (file-name (git-file-name "cl-canonicalized-initargs" version)) (sha256 (base32 "0jmmjw86x9mmlfla4kdmdqf1fjrj0p2fmv1lc4k555mcf67mj2fq")))) (build-system asdf-build-system/sbcl) (native-inputs (list sbcl-parachute)) (inputs (list sbcl-cesdi sbcl-closer-mop sbcl-compatible-metaclasses sbcl-enhanced-defclass sbcl-enhanced-typep)) (home-page "https://www.hexstreamsoft.com/libraries/canonicalized-initargs/") (synopsis "Standard way to canonicalize slot values") (description "This package provides a standard way to canonicalize slot values.") (license license:unlicense))) (define-public cl-canonicalized-initargs (sbcl-package->cl-source-package sbcl-canonicalized-initargs)) (define-public ecl-canonicalized-initargs (sbcl-package->ecl-package sbcl-canonicalized-initargs)) (define-public sbcl-caveman (let ((commit "35cd8bc6c322f9d88498405fc26168a1fb42ae1c") ; No release since 2012 (revision "2")) (package (name "sbcl-caveman") (version (git-version "2.4.0" revision commit)) (home-page "https://8arrow.org/caveman/") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/fukamachi/caveman/") (commit commit))) (file-name (git-file-name "cl-caveman" version)) (sha256 (base32 "1wvjm9m1fnapg0r9imhhcwgnhhqkkccnj3c0iw9yg1f72d7zhm2w")))) (build-system asdf-build-system/sbcl) (inputs `(("ningle" ,cl-ningle) ("lack" ,sbcl-lack) ("cl-project" ,sbcl-cl-project) ("dbi" ,sbcl-dbi) ("sxql" ,sbcl-sxql) ("cl-syntax" ,sbcl-cl-syntax) ("myway" ,sbcl-myway) ("quri" ,sbcl-quri))) (native-inputs `(("usocket" ,sbcl-usocket) ("dexador" ,sbcl-dexador) ("lack" ,sbcl-lack) ("trivial-types" ,sbcl-trivial-types) ("prove" ,sbcl-prove))) (arguments `(#:asd-systems '("caveman2" "caveman2-db" "caveman2-test" "caveman-middleware-dbimanager") ;; TODO: Tests fail with: ;; writing /gnu/store/...-sbcl-caveman-2.4.0-1.faa5f7e/share/common-lisp/sbcl-source/caveman2/v2/t/tmp/myapp573/tests/myapp573.lisp ;; While evaluating the form starting at line 38, column 0 ;; of #P"/tmp/guix-build-sbcl-caveman-2.4.0-1.faa5f7e.drv-0/source/v2/t/caveman.lisp": ;; Unhandled ASDF/FIND-COMPONENT:MISSING-COMPONENT in thread #<SB-THREAD:THREAD "main thread" RUNNING ;; {10009F8083}>: ;; Component "myapp573" not found ;; ;; The above myapp573 component name is randomly generated by ;; gensym on each test run. `(asdf:load-system *app-name*)` tries ;; to load this component and fails. ;; TODO: Ask fukamachi how to go around this. #:tests? #f)) (synopsis "Lightweight web application framework in Common Lisp") (description "Caveman is intended to be a collection of common parts for web applications. Caveman2 has three design goals: @itemize @item Be extensible. @item Be practical. @item Don't force anything. @end itemize\n") (license license:llgpl)))) (define-public cl-caveman (package (inherit (sbcl-package->cl-source-package sbcl-caveman)) (propagated-inputs `(("ningle" ,cl-ningle))))) (define-public ecl-caveman (sbcl-package->ecl-package sbcl-caveman)) (define-public sbcl-cblas (let ((commit "1eb97919ccf0ec3add7724e1a21872580bd0cdc6") (revision "1")) (package (name "sbcl-cblas") (version (git-version "0.0.0" revision commit)) (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/digikar99/cl-cblas") (commit commit))) (file-name (git-file-name "cl-cblas" version)) (sha256 (base32 "1bd2w51r71pgm6sc6m2fms4j1bbnli023j4w3rbxw9cln0g7badp")))) (build-system asdf-build-system/sbcl) (inputs (list openblas sbcl-cffi sbcl-cl-autowrap)) (arguments (list #:phases #~(modify-phases %standard-phases (add-after 'unpack 'fix-paths (lambda* (#:key inputs #:allow-other-keys) (substitute* "src/shared-object.lisp" (("/usr/.*/libopenblas\\.so") (search-input-file inputs "/lib/libopenblas.so")) (("\"libopenblas\\.so\"") (string-append "\"" (search-input-file inputs "/lib/libopenblas.so") "\"")))))))) (synopsis "Common Lisp bindings for CBLAS") (description "This package provides Common Lisp bindings to access the linear algebra libraries using the CBLAS API. Currently the OpenBLAS implementation is used.") (home-page "https://github.com/digikar99/cl-cblas") (license license:expat)))) (define-public cl-cblas (sbcl-package->cl-source-package sbcl-cblas)) (define-public sbcl-cells (let ((commit "e8542b17fddd6340c1e237ce482a52327c8ead8e")) (package (name "sbcl-cells") (version (git-version "3.0" "1" commit)) (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/kennytilton/cells") (commit commit))) (file-name (git-file-name "cl-cells" version)) (sha256 (base32 "0rkzvwq38lwb1045w54kw020pb9i63hxiawwhqkf8k1inhak3fdk")))) (build-system asdf-build-system/sbcl) (inputs (list sbcl-utils-kt)) (arguments ;; Tests fail with #<TYPE-ERROR expected-type: STREAM datum: NIL>. '(#:tests? #f)) (home-page "https://github.com/kennytilton/cells") (synopsis "Common Lisp implementation of the dataflow programming paradigm") (description "Cells is a mature, stable extension to CLOS allowing one to create classes whose instances can have slot values determined by instance-specific formulas.") (license license:llgpl)))) (define-public cl-cells (sbcl-package->cl-source-package sbcl-cells)) (define-public ecl-cells (sbcl-package->ecl-package sbcl-cells)) (define-public sbcl-cephes (let ((commit "d87146fa38c8425ffb5fe425eee5eb3e818bacd4") (revision "0")) (package (name "sbcl-cephes") (version (git-version "1.2" revision commit)) (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/Lisp-Stat/cephes.cl") (commit commit))) (file-name (git-file-name "cl-cephes" version)) (sha256 (base32 "09adls1lwwzwm1jmvhf11arwlsy5w0bi2rmniahas824mysv77lr")))) (build-system asdf-build-system/sbcl) (inputs (list sbcl-cffi)) (arguments (list #:phases #~(modify-phases %standard-phases ;; ECL has issues making the shared library automatically, ;; so we make it explicitly. (add-before 'build 'build-shared-library (lambda _ (with-directory-excursion (string-append #$output "/share/common-lisp/" (%lisp-type) "/cephes/scipy-cephes") (invoke "make") ;; Remove temporary object files. (for-each delete-file (find-files "." "\\.o$")))))))) (home-page "https://lisp-stat.github.io/cephes.cl/") (synopsis "Common Lisp wrapper for the Cephes Mathematical Library") (description "This package provides a common lisp CFFI wrapper for the SciPy version of Cephes special functions.") (license license:ms-pl)))) (define-public cl-cephes (sbcl-package->cl-source-package sbcl-cephes)) (define-public ecl-cephes (sbcl-package->ecl-package sbcl-cephes)) (define-public sbcl-cepl (let ((commit "d1a10b6c8f4cedc07493bf06aef3a56c7b6f8d5b") (revision "1")) (package (name "sbcl-cepl") (version (git-version "0.0.0" revision commit)) (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/cbaggers/cepl") (commit commit))) (file-name (git-file-name "cepl" version)) (sha256 (base32 "0izbw2advqm3wailj3dpq6zqfrfirwn14pw5qmqh8i71r51xwmm2")))) (build-system asdf-build-system/sbcl) (inputs `(("alexandria" ,sbcl-alexandria) ("bordeaux-threads" ,sbcl-bordeaux-threads) ("cffi" ,sbcl-cffi) ("cl-opengl" ,sbcl-cl-opengl) ("cl-ppcre" ,sbcl-cl-ppcre) ("documentation-utils" ,sbcl-documentation-utils) ("float-features" ,sbcl-float-features) ("ieee-floats" ,sbcl-ieee-floats) ("split-sequence" ,sbcl-split-sequence) ("varjo" ,sbcl-varjo))) (propagated-inputs (list sbcl-quickproject)) (home-page "https://github.com/cbaggers/cepl") (synopsis "Development playground to work with OpenGL") (description "CEPL (Code Evaluate Play Loop ) is a lispy and REPL-friendly Common Lisp library for working with OpenGL. Its definition of success is making the user feel that GPU programming has always been part of the languages standard. The usual approach to using CEPL is to start it at the beginning of your Lisp session and leave it open for the duration of your work. You can then treat the window it creates as just another output for your graphics, analogous to how @code{*standard-output*} is treated for text.") (license license:bsd-2)))) (define-public cl-cepl (sbcl-package->cl-source-package sbcl-cepl)) (define-public ecl-cepl (sbcl-package->ecl-package sbcl-cepl)) (define-public sbcl-cesdi (package (name "sbcl-cesdi") (version "1.0.1") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/Hexstream/cesdi") (commit version))) (file-name (git-file-name "cl-cesdi" version)) (sha256 (base32 "02f2pz5rw79ljkkx1ywh8nkpjj4g3z3s1lyvzqb8krbnx11wl0q9")))) (build-system asdf-build-system/sbcl) (native-inputs (list sbcl-parachute)) (inputs (list sbcl-closer-mop)) (home-page "https://www.hexstreamsoft.com/libraries/cesdi/") (synopsis "Ergonomic initialization of effective slot definition objects") (description "This package provides a @code{compute-effective-slot-definition-initargs} generic function that allows for more ergonomic initialization of effective slot definition objects.") (license license:unlicense))) (define-public cl-cesdi (sbcl-package->cl-source-package sbcl-cesdi)) (define-public ecl-cesdi (sbcl-package->ecl-package sbcl-cesdi)) (define-public sbcl-cf (let ((commit "0aa0dd67f59f88e0dbd50ebe25690fcdaafee4c5") (revision "0")) (package (name "sbcl-cf") (version (git-version "1.1" revision commit)) (source (origin (method git-fetch) (uri (git-reference (url "https://codeberg.org/glv/cl-cf") (commit commit))) (file-name (git-file-name "cl-cf" version)) (sha256 (base32 "0bacgspfqvkdr430yax9dk61pavcajz9kv9lb12rg5qcrqd1vpmb")))) (build-system asdf-build-system/sbcl) (native-inputs (list sbcl-fiveam)) (synopsis "Continued fractions library") (description "CF is a Common Lisp library for doing computations using continued fractions.") (home-page "https://codeberg.org/glv/cl-cf") (license license:gpl3+)))) (define-public cl-cf (sbcl-package->cl-source-package sbcl-cf)) (define-public ecl-cf (sbcl-package->ecl-package sbcl-cf)) (define-public sbcl-cffi (let ((commit "32c90d4a9a01e809f591276c058e5b3c7f39b154") (revision "2")) (package (name "sbcl-cffi") (version (git-version "0.24.1" revision commit)) (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/cffi/cffi") (commit commit))) (file-name (git-file-name "cl-cffi" version)) (sha256 (base32 "1b2j32rapgw8rn7m9sm2k8r8x9jds7vshkm90i5lw9v4xnp8x4m7")))) (build-system asdf-build-system/sbcl) (inputs (list libffi sbcl-alexandria sbcl-babel sbcl-trivial-features)) (native-inputs (list pkg-config sbcl-bordeaux-threads sbcl-rt)) (arguments (list ;; Some tests will not work on riscv64 because a function of SBCL ;; is not implemented yet for riscv. ;; See <https://bugs.launchpad.net/sbcl/+bug/2069265> #:tests? (not (target-riscv64?)) #:phases #~(modify-phases %standard-phases (add-after 'unpack 'fix-paths (lambda* (#:key inputs #:allow-other-keys) (substitute* "libffi/libffi.lisp" (("libffi.so.8" all) (search-input-file inputs (string-append "/lib/" all)))) (substitute* "toolchain/c-toolchain.lisp" (("\"cc\"") (format #f "~S" (which "gcc")))))) (add-after 'build 'install-headers (lambda _ (install-file "grovel/common.h" (string-append #$output "/include/grovel"))))) #:asd-systems ''("cffi" "cffi-libffi" "cffi-uffi-compat"))) (home-page "https://common-lisp.net/project/cffi/") (synopsis "Common Foreign Function Interface for Common Lisp") (description "The Common Foreign Function Interface (CFFI) purports to be a portable foreign function interface for Common Lisp. The CFFI library is composed of a Lisp-implementation-specific backend in the CFFI-SYS package, and a portable frontend in the CFFI package.") (license license:expat)))) (define-public cl-cffi (sbcl-package->cl-source-package sbcl-cffi)) (define-public ecl-cffi (sbcl-package->ecl-package sbcl-cffi)) (define-public sbcl-cffi-c-ref (let ((commit "8123cbb6034c5f7921a0766107cfb8c4e8efd5ce") (revision "0")) (package (name "sbcl-cffi-c-ref") (version (git-version "1.0" revision commit)) (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/borodust/cffi-c-ref") (commit commit))) (sha256 (base32 "1a3pp6xcisabqir3rp1gvvjfdxcvpm8yr35p38nri9azsinmmc7z")) (file-name (git-file-name "cffi-c-ref" version)))) (build-system asdf-build-system/sbcl) (inputs (list sbcl-alexandria sbcl-cffi)) (synopsis "Streamlined access to foreign memory") (description "This Common Lisp library provides macros to access foreign memory.") (home-page "https://github.com/borodust/cffi-c-ref") (license license:expat)))) (define-public cl-cffi-c-ref (sbcl-package->cl-source-package sbcl-cffi-c-ref)) (define-public ecl-cffi-c-ref (sbcl-package->ecl-package sbcl-cffi-c-ref)) (define-public sbcl-chanl (let ((commit "56e90a126c78b39bb621a01585e8d3b985238e8c") (revision "1")) (package (name "sbcl-chanl") (version (git-version "0.4.1" revision commit)) (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/zkat/chanl") (commit commit))) (file-name (git-file-name name version)) (sha256 (base32 "0b1cf6c12qx5cy1fw2z42jgh566rp3l8nv5qf0qqc569s7bgmrh4")))) (build-system asdf-build-system/sbcl) (native-inputs (list sbcl-fiveam)) (inputs (list sbcl-bordeaux-threads)) (arguments ;; Disable flaky tests (list #:tests? #f)) (synopsis "Portable channel-based concurrency for Common Lisp") (description "Common Lisp library for channel-based concurrency. In a nutshell, you create various threads sequentially executing tasks you need done, and use channel objects to communicate and synchronize the state of these threads.") (home-page "https://github.com/zkat/chanl") (license (list license:expat license:bsd-3))))) (define-public cl-chanl (sbcl-package->cl-source-package sbcl-chanl)) (define-public ecl-chanl (sbcl-package->ecl-package sbcl-chanl)) (define-public sbcl-charje.documentation (package (name "sbcl-charje.documentation") (version "0.0.0") (source (origin (method git-fetch) (uri (git-reference (url "https://git.sr.ht/~charje/documentation") (commit (string-append "v" version)))) (sha256 (base32 "149r9qdz5dyxsamhf5miaa9njr7kn7nc0ic448k133rs3nnwagqc")) (file-name (git-file-name "cl-charje.documentation" version)))) (build-system asdf-build-system/sbcl) (inputs (list sbcl-alexandria)) (home-page "https://git.sr.ht/~charje/documentation") (synopsis "Docstring parsing library for Common Lisp") (description "Charje.documentation can used to parse Common Lisp docstrings the charje way, or it can be used to create custom docstring parsers. Docstring parsers are composed using mixin classes and initialization methods.") (license license:agpl3+))) (define-public cl-charje.documentation (sbcl-package->cl-source-package sbcl-charje.documentation)) (define-public ecl-charje.documentation (sbcl-package->ecl-package sbcl-charje.documentation)) (define-public sbcl-charje.loop (package (name "sbcl-charje.loop") (version "0.0.1") (source (origin (method git-fetch) (uri (git-reference (url "https://git.sr.ht/~charje/loop") (commit (string-append "v" version)))) (file-name (git-file-name "cl-charje.loop" version)) (sha256 (base32 "13353ycjm4jyczlqxh5r7f7q8g679pyfx91w4hj9p6mp7paqsn16")))) (build-system asdf-build-system/sbcl) (inputs (list sbcl-alexandria sbcl-binding-arrows sbcl-parse-declarations)) (home-page "https://git.sr.ht/~charje/loop") (synopsis "Loop abstraction for Common Lisp that is consistent for different kinds of data") (description "Loop is a joy to use and has a consistent interface unlike other looping abstractions and ANSI list operations. You can define your own iterators and aggregators that integrate tightly into other operations. All operations are non-consing when possible.") (license license:agpl3+))) (define-public cl-charje.loop (sbcl-package->cl-source-package sbcl-charje.loop)) (define-public ecl-charje.loop (sbcl-package->ecl-package sbcl-charje.loop)) (define-public sbcl-chemboy (package (name "sbcl-chemboy") (version "0.3") (source (origin (method url-fetch) (uri (string-append "https://common-lisp.net/project/chemboy/chemboy-" version ".tar.gz")) (sha256 (base32 "0lr134l16mjcgdj3fm2yff4chlfbihn1sji7q80y7lnr176zgs7d")))) (build-system asdf-build-system/sbcl) (inputs `(("chemical-compounds" ,sbcl-chemical-compounds) ("periodic-table" ,sbcl-periodic-table))) (arguments `(#:phases (modify-phases %standard-phases (add-after 'unpack 'fix-files (lambda _ ;; Fix incorrect version number. (substitute* "chemboy.asd" ((":version \"0.2\"") (string-append ":version \"" ,version "\""))) ;; Remove incorrect declaration of string type. (substitute* "query-parsing.lisp" (("\\(declare \\(simple-base-string string\\)") "(declare")) ;; Fix incorrect function calls. (substitute* "conversions.lisp" (("\\(pprint-compound element s\\)") "(pprint-compound element :stream s)") (("\\(pprint-compound parsed-compound s\\)") "(pprint-compound parsed-compound :stream s)"))))))) (home-page "https://common-lisp.net/project/chemboy/") (synopsis "Common Lisp program for doing basic chemistry calculations") (description "Chemboy is a Common Lisp program for doing basic chemistry calculations. This package provides the text-based interface for Chemboy.") (license license:llgpl))) (define-public cl-chemboy (sbcl-package->cl-source-package sbcl-chemboy)) (define-public ecl-chemboy (sbcl-package->ecl-package sbcl-chemboy)) (define-public sbcl-chemical-compounds (package (name "sbcl-chemical-compounds") (version "1.0.2") (source (origin (method url-fetch) (uri (string-append "https://common-lisp.net/project/chemboy/chemical-compounds-" version ".tar.gz")) (sha256 (base32 "12fd8a6ay5qlsq4givzgh9d55mbg4ci2vvmymig6pjl2ms64v0pf")))) (build-system asdf-build-system/sbcl) (inputs `(("periodic-table" ,sbcl-periodic-table))) (arguments `(#:phases (modify-phases %standard-phases (add-after 'unpack 'fix-files (lambda _ ;; Fix incorrect version number. (substitute* "chemical-compounds.asd" ((":version \"1.0.1\"") (string-append ":version \"" ,version "\""))) ;; Remove incorrect declaration of string type. (substitute* "parsing.lisp" (("\\(declare \\(simple-base-string string\\)") "(declare"))))))) (home-page "https://common-lisp.net/project/chemboy/") (synopsis "Chemical formula parser and pretty-printer for Common Lisp") (description "It can sometimes be useful to be able to parse chemical compounds in a user-friendly syntax into easy-to-manipulate s-expressions. You also want to be able to go in reverse. You could probably write your own parser — or you could just install the chemical-compounds package.") (license license:llgpl))) (define-public cl-chemical-compounds (sbcl-package->cl-source-package sbcl-chemical-compounds)) (define-public ecl-chemical-compounds (sbcl-package->ecl-package sbcl-chemical-compounds)) (define-public sbcl-chipz (let ((version "0.8") (commit "82a17d39c78d91f6ea63a03aca8f9aa6069a5e11") (revision "2")) (package (name "sbcl-chipz") (version (git-version version revision commit)) (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/sharplispers/chipz") (commit commit))) (file-name (git-file-name "cl-chipz" version)) (sha256 (base32 "1n4f22i9j8iapjd6yx1z348rggcybvg9h794kx9libjgz4bs371h")))) (build-system asdf-build-system/sbcl) (native-inputs (list sbcl-flexi-streams)) (home-page "http://method-combination.net/lisp/chipz/") (synopsis "Common Lisp library for decompressing deflate, zlib, gzip, and bzip2 data") (description "DEFLATE data, defined in RFC1951, forms the core of popular compression formats such as zlib (RFC 1950) and gzip (RFC 1952). As such, Chipz also provides for decompressing data in those formats as well. BZIP2 is the format used by the popular compression tool bzip2.") ;; The author describes it as "MIT-like" (license license:expat)))) (define-public cl-chipz (sbcl-package->cl-source-package sbcl-chipz)) (define-public ecl-chipz (sbcl-package->ecl-package sbcl-chipz)) (define-public sbcl-chirp (let ((commit "01c79fa41939688216d1f86d0766a687becb0654") (revision "1")) (package (name "sbcl-chirp") (version (git-version "0.2.0" revision commit)) (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/Shinmera/chirp") (commit commit))) (file-name (git-file-name "chirp" version)) (sha256 (base32 "10xlz1vw