summaryrefslogtreecommitdiff
path: root/gnu/packages/lisp-xyz.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/lisp-xyz.scm')
-rw-r--r--gnu/packages/lisp-xyz.scm852
1 files changed, 767 insertions, 85 deletions
diff --git a/gnu/packages/lisp-xyz.scm b/gnu/packages/lisp-xyz.scm
index f0881bdfb7..3fefccf1e8 100644
--- a/gnu/packages/lisp-xyz.scm
+++ b/gnu/packages/lisp-xyz.scm
@@ -19,8 +19,10 @@
;;; Copyright © 2020 Konrad Hinsen <konrad.hinsen@fastmail.net>
;;; Copyright © 2020 Dimakis Dimakakos <me@bendersteed.tech>
;;; Copyright © 2020 Oleg Pykhalov <go.wigust@gmail.com>
-;;; Copyright © 2020 Adam Kandur <rndd@tuta.io>
+;;; Copyright © 2020, 2021 Adam Kandur <rndd@tuta.io>
;;; Copyright © 2020, 2021 Sharlatan Hellseher <sharlatanus@gmail.com>
+;;; Copyright © 2021 Aurora <rind38@disroot.org>
+;;; Copyright © 2021 Matthew Kraai <kraai@ftbfs.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -52,10 +54,12 @@
#:use-module (guix utils)
#:use-module (guix build-system asdf)
#:use-module (guix build-system trivial)
+ #:use-module (gnu packages base)
#:use-module (gnu packages c)
#:use-module (gnu packages compression)
#:use-module (gnu packages databases)
#:use-module (gnu packages enchant)
+ #:use-module (gnu packages file)
#:use-module (gnu packages fonts)
#:use-module (gnu packages fontutils)
#:use-module (gnu packages glib)
@@ -456,33 +460,33 @@ compatible with ANSI-compliant Common Lisp implementations.")
(sbcl-package->ecl-package sbcl-cl-ppcre))
(define-public sbcl-uax-15
- (let ((commit "e7439a91b72f533fcf736643e3ff0677b56c2e7d")
- (revision "1"))
- (package
- (name "sbcl-uax-15")
- (version (git-version "0.1" revision commit))
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/sabracrolleton/uax-15")
- (commit commit)))
- (file-name (git-file-name "uax-15" version))
- (sha256
- (base32 "1vf8a2aikgx0l5bsq0z9s0dw3sgx1887xhagdlf66fwffa5jskg6"))))
- (build-system asdf-build-system/sbcl)
- (native-inputs
- `(("fiveam" ,sbcl-fiveam)))
- (inputs
- `(("cl-ppcre" ,sbcl-cl-ppcre)
- ("split-sequence" ,sbcl-split-sequence)))
- (arguments
- `(#:asd-systems '("uax-15")))
- (home-page "https://github.com/sabracrolleton/uax-15")
- (synopsis "Common Lisp implementation of unicode normalization functions")
- (description "This package provides supports for unicode normalization,
-RFC8264 and RFC7564.")
- (license license:expat))))
+ (package
+ (name "sbcl-uax-15")
+ (version "0.1.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/sabracrolleton/uax-15")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name "uax-15" version))
+ (sha256
+ (base32 "0p2ckw7mzxhwa9vbwj2q2dzayz9dl94d9yqd2ynp0pc5v8i0n2fr"))))
+ (build-system asdf-build-system/sbcl)
+ (arguments
+ `(#:asd-systems
+ '("uax-15")))
+ (native-inputs
+ `(("fiveam" ,sbcl-fiveam)))
+ (inputs
+ `(("cl-ppcre" ,sbcl-cl-ppcre)
+ ("split-sequence" ,sbcl-split-sequence)))
+ (home-page "https://github.com/sabracrolleton/uax-15")
+ (synopsis "Common Lisp implementation of unicode normalization functions")
+ (description
+ "This package provides supports for unicode normalization, RFC8264 and
+RFC7564.")
+ (license license:expat)))
(define-public cl-uax-15
(sbcl-package->cl-source-package sbcl-uax-15))
@@ -1939,6 +1943,51 @@ pretty, documentation is code.")
;; TODO: Find why the tests fail on ECL.
((#:tests? _ #f) #f))))))
+(define-public sbcl-mssql
+ (let ((commit "045602a19a32254108f2b75871049293f49731eb")
+ (revision "1"))
+ (package
+ (name "sbcl-mssql")
+ (version (git-version "0.0.3" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/archimag/cl-mssql")
+ (commit commit)))
+ (file-name (git-file-name "cl-mssql" version))
+ (sha256
+ (base32 "09i50adppgc1ybm3ka9vbindhwa2x29f9n3n0jkrryymdhb8zknm"))))
+ (build-system asdf-build-system/sbcl)
+ (inputs
+ `(("cffi" ,sbcl-cffi)
+ ("freetds" ,freetds)
+ ("garbage-pools" ,sbcl-garbage-pools)
+ ("iterate" ,sbcl-iterate)
+ ("parse-number" ,sbcl-parse-number)))
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'fix-paths
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "src/mssql.lisp"
+ (("libsybdb" all)
+ (string-append (assoc-ref inputs "freetds") "/lib/" all)))
+ #t)))))
+ (home-page "https://github.com/archimag/cl-mssql")
+ (synopsis "Common Lisp library to interact with MS SQL Server databases")
+ (description
+ "@code{cl-mssql} provides an interface to connect to Microsoft SQL
+server. It uses the @code{libsybdb} foreign library provided by the FreeTDS
+project.")
+ (license license:llgpl))))
+
+(define-public ecl-mssql
+ (sbcl-package->ecl-package sbcl-mssql))
+
+(define-public cl-mssql
+ (sbcl-package->cl-source-package sbcl-mssql))
+
(define-public sbcl-lisp-unit
(let ((commit "89653a232626b67400bf9a941f9b367da38d3815"))
(package
@@ -2465,7 +2514,7 @@ non-consing thread safe queues and fibonacci priority queues.")
(define-public sbcl-cffi
(package
(name "sbcl-cffi")
- (version "0.21.0")
+ (version "0.23.0")
(source
(origin
(method git-fetch)
@@ -2474,7 +2523,7 @@ non-consing thread safe queues and fibonacci priority queues.")
(commit (string-append "v" version))))
(file-name (git-file-name "cffi-bootstrap" version))
(sha256
- (base32 "1qalargz9bhp850qv60ffwpdqi4xirzar4l3g6qcg8yc6xqf2cjk"))))
+ (base32 "03s98imc5niwnpj3hhrafl7dmxq45g74h96sm68976k7ahi3vl5b"))))
(build-system asdf-build-system/sbcl)
(inputs
`(("alexandria" ,sbcl-alexandria)
@@ -4343,8 +4392,8 @@ Long Painful History of Time\".")
(sbcl-package->ecl-package sbcl-local-time))
(define-public sbcl-trivial-mimes
- (let ((commit "303f8ac0aa6ca0bc139aa3c34822e623c3723fab")
- (revision "1"))
+ (let ((commit "a741fc2f567a4f86b853fd4677d75e62c03e51d9")
+ (revision "2"))
(package
(name "sbcl-trivial-mimes")
(version (git-version "1.1.0" revision commit))
@@ -4356,7 +4405,7 @@ Long Painful History of Time\".")
(commit commit)))
(file-name (git-file-name name version))
(sha256
- (base32 "17jxgl47r695bvsb7wi3n2ws5rp1zzgvw0zii8cy5ggw4b4ayv6m"))))
+ (base32 "00kcm17q5plpzdj1qwg83ldhxksilgpcdkf3m9azxcdr968xs9di"))))
(build-system asdf-build-system/sbcl)
(native-inputs
`(("stefil" ,sbcl-hu.dwim.stefil)))
@@ -4367,7 +4416,7 @@ Long Painful History of Time\".")
(description
"This is a teensy library that provides some functions to determine the
mime-type of a file.")
- (license license:artistic2.0))))
+ (license license:zlib))))
(define-public cl-trivial-mimes
(sbcl-package->cl-source-package sbcl-trivial-mimes))
@@ -6032,8 +6081,8 @@ programming style and the efficiency of an iterative programming style.")
(sbcl-package->ecl-package sbcl-series))
(define-public sbcl-periods
- (let ((commit "983d4a57325db3c8def942f163133cec5391ec28")
- (revision "1"))
+ (let ((commit "60383dcef88a1ac11f82804ae7a33c361dcd2949")
+ (revision "2"))
(package
(name "sbcl-periods")
(version (git-version "0.0.2" revision commit))
@@ -6046,7 +6095,7 @@ programming style and the efficiency of an iterative programming style.")
(file-name (git-file-name name version))
(sha256
(base32
- "0z30jr3lxz3cmi019fsl4lgcgwf0yqpn95v9zkkkwgymdrkd4lga"))))
+ "1ym2j4an9ig2hl210jg91gpf7xfnp6mlhkw3n9kkdnwiji3ipqlk"))))
(build-system asdf-build-system/sbcl)
(inputs
`(("local-time" ,sbcl-local-time)
@@ -6453,8 +6502,8 @@ ability to store all Common Lisp data types into streams.")
(sbcl-package->ecl-package sbcl-cl-store))
(define-public sbcl-cl-gobject-introspection
- (let ((commit "7b703e2384945ea0ac39d9b766de434a08d81560")
- (revision "0"))
+ (let ((commit "d0136c8d9ade2560123af1fc55bbf70d2e3db539")
+ (revision "1"))
(package
(name "sbcl-cl-gobject-introspection")
(version (git-version "0.3" revision commit))
@@ -6468,7 +6517,7 @@ ability to store all Common Lisp data types into streams.")
(file-name (git-file-name name version))
(sha256
(base32
- "1zcqd2qj14f6b38vys8gr89s6cijsp9r8j43xa8lynilwva7bwyh"))))
+ "0dz0r73pq7yhz2iq2jnkq977awx2zws2qfxdcy33329sys1ii32p"))))
(build-system asdf-build-system/sbcl)
(inputs
`(("alexandria" ,sbcl-alexandria)
@@ -6480,12 +6529,9 @@ ability to store all Common Lisp data types into streams.")
(native-inputs
`(("fiveam" ,sbcl-fiveam)))
(arguments
- ;; TODO: Tests fail, see
- ;; https://github.com/andy128k/cl-gobject-introspection/issues/70.
- '(#:tests? #f
- #:phases
+ '(#:phases
(modify-phases %standard-phases
- (add-after (quote unpack) (quote fix-paths)
+ (add-after 'unpack 'fix-paths
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "src/init.lisp"
(("libgobject-2\\.0\\.so")
@@ -9124,40 +9170,56 @@ approach to templating.")
(sbcl-package->ecl-package sbcl-cl-mysql))
(define-public sbcl-postmodern
- (let ((commit "74469b25bbda990ec9b77e0d0eccdba0cd7e721a")
- (revision "1"))
- (package
- (name "sbcl-postmodern")
- (version (git-version "1.19" revision commit))
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/marijnh/Postmodern")
- (commit commit)))
- (file-name (git-file-name name version))
- (sha256
- (base32 "0im7ymnyxjhn2w74jfg76k5gpr0gl33n31akx33hl28722ljd0hd"))))
- (build-system asdf-build-system/sbcl)
- (native-inputs
- `(("fiveam" ,sbcl-fiveam)))
- (inputs
- `(("alexandria" ,sbcl-alexandria)
- ("bordeaux-threads" ,sbcl-bordeaux-threads)
- ("closer-mop" ,sbcl-closer-mop)
- ("global-vars" ,sbcl-global-vars)
- ("md5" ,sbcl-md5)
- ("split-sequence" ,sbcl-split-sequence)
- ("usocket" ,sbcl-usocket)))
- (arguments
- ;; TODO: Fix missing dependency errors for simple-date/postgres-glue,
- ;; cl-postgres/tests and s-sql/tests.
- `(#:tests? #f
- #:asd-systems '("postmodern"
- "simple-date/postgres-glue")))
- (synopsis "Common Lisp library for interacting with PostgreSQL")
- (description
- "@code{postmodern} is a Common Lisp library for interacting with
+ (package
+ (name "sbcl-postmodern")
+ (version "1.32.8")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/marijnh/Postmodern")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0vr5inbr8dldf6dsl0qj3h2yrnnsayzfwxfzwkn1pk7xbns2l78q"))))
+ (build-system asdf-build-system/sbcl)
+ (native-inputs
+ `(("fiveam" ,sbcl-fiveam)))
+ (inputs
+ `(("alexandria" ,sbcl-alexandria)
+ ("bordeaux-threads" ,sbcl-bordeaux-threads)
+ ("cl-base64" ,sbcl-cl-base64)
+ ("cl-unicode" ,sbcl-cl-unicode)
+ ("closer-mop" ,sbcl-closer-mop)
+ ("global-vars" ,sbcl-global-vars)
+ ("ironclad" ,sbcl-ironclad)
+ ("local-time" ,sbcl-local-time)
+ ("md5" ,sbcl-md5)
+ ("split-sequence" ,sbcl-split-sequence)
+ ("uax-15" ,sbcl-uax-15)
+ ("usocket" ,sbcl-usocket)))
+ (arguments
+ ;; TODO: (Sharlatan-20210114T171037+0000) tests still failing but on other
+ ;; step, some functionality in `local-time' prevents passing tests.
+ ;; Error:
+ ;;
+ ;; Can't create directory
+ ;; /gnu/store
+ ;; /4f47agf1kyiz057ppy6x5p98i7mcbfsv-sbcl-local-time-1.0.6-2.a177eb9
+ ;; /lib/common-lisp/sbcl/local-time/src/integration/
+ ;;
+ ;; NOTE: (Sharlatan-20210124T191940+0000): When set env HOME to /tmp above
+ ;; issue is resolved but it required live test database to connect to now.
+ ;; Keep tests switched off.
+ `(#:tests? #f
+ #:asd-systems '("cl-postgres"
+ "s-sql"
+ "postmodern"
+ "simple-date"
+ "simple-date/postgres-glue")))
+ (synopsis "Common Lisp library for interacting with PostgreSQL")
+ (description
+ "@code{postmodern} is a Common Lisp library for interacting with
PostgreSQL databases. It provides the following features:
@itemize
@@ -9167,9 +9229,27 @@ foreign libraries.
@item A syntax for mixing SQL and Lisp code.
@item Convenient support for prepared statements and stored procedures.
@item A metaclass for simple database-access objects.
-@end itemize\n")
- (home-page "https://marijnhaverbeke.nl/postmodern/")
- (license license:zlib))))
+@end itemize\n
+
+This package produces 4 systems: postmodern, cl-postgres, s-sql, simple-date
+
+@code{SIMPLE-DATE} is a very basic implementation of date and time objects, used
+to support storing and retrieving time-related SQL types. It is not loaded by
+default and you can use local-time (which has support for timezones) instead.
+
+@code{S-SQL} is used to compile s-expressions to strings of SQL code, escaping
+any Lisp values inside, and doing as much as possible of the work at compile
+time.
+
+@code{CL-POSTGRES} is the low-level library used for interfacing with a PostgreSQL
+server over a socket.
+
+@code{POSTMODERN} itself is a wrapper around these packages and provides higher
+level functions, a very simple data access object that can be mapped directly to
+database tables and some convient utilities. It then tries to put all these
+things together into a convenient programming interface")
+ (home-page "https://marijnhaverbeke.nl/postmodern/")
+ (license license:zlib)))
(define-public cl-postmodern
(sbcl-package->cl-source-package sbcl-postmodern))
@@ -9179,15 +9259,18 @@ foreign libraries.
(inherit (sbcl-package->ecl-package sbcl-postmodern))
(arguments
`(#:tests? #f
- #:asd-systems '("postmodern"
+ #:asd-systems '("cl-postgres"
+ "s-sql"
+ "postmodern"
+ "simple-date"
"simple-date/postgres-glue")
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'fix-build
(lambda _
(substitute* "cl-postgres.asd"
- (("\\) \"usocket\"")
- " :ecl) \"usocket\""))
+ ((":or :sbcl :allegro :ccl :clisp" all)
+ (string-append all " :ecl")))
#t)))))))
(define-public sbcl-db3
@@ -12113,6 +12196,77 @@ package.")
(define-public ecl-claw-support
(sbcl-package->ecl-package sbcl-claw-support))
+(define-public sbcl-claw
+ (let ((revision "0")
+ (commit "3cd4a96fca95eb9e8d5d069426694669f81b2250"))
+ (package
+ (name "sbcl-claw")
+ (version (git-version "1.0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/borodust/claw")
+ (commit commit)))
+ (file-name (git-file-name "claw" version))
+ (sha256
+ (base32 "146yv0hc4hmk72562ssj2d41143pp84dcbd1h7f4nx1c7hf2bb0d"))))
+ (build-system asdf-build-system/sbcl)
+ (inputs
+ `(("alexandria" ,sbcl-alexandria)
+ ("cffi" ,sbcl-cffi)
+ ("cl-json" ,sbcl-cl-json)
+ ("cl-ppcre" ,sbcl-cl-ppcre)
+ ("claw-support" ,sbcl-claw-support)
+ ("local-time" ,sbcl-local-time)
+ ("trivial-features" ,sbcl-trivial-features)))
+ (home-page "https://github.com/borodust/claw")
+ (synopsis "Autowrapper for Common Lisp")
+ (description
+ "This is a Common Lisp autowrapping facility for quickly creating clean
+and lean bindings to C libraries.")
+ (license license:bsd-2))))
+
+(define-public cl-claw
+ (sbcl-package->cl-source-package sbcl-claw))
+
+(define-public ecl-claw
+ (sbcl-package->ecl-package sbcl-claw))
+
+(define-public sbcl-claw-utils
+ (let ((revision "0")
+ (commit "efe25016501973dc369f067a64c7d225802bc56f"))
+ (package
+ (name "sbcl-claw-utils")
+ ;; version is not specified
+ (version (git-version "0.0.0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/borodust/claw-utils")
+ (commit commit)))
+ (file-name (git-file-name "claw-utils" version))
+ (sha256
+ (base32 "01df3kyf2qs3czi332dnz2s35x2j0fq46vgmsw7wjrrvnqc22mk5"))))
+ (build-system asdf-build-system/sbcl)
+ (inputs
+ `(("alexandria" ,sbcl-alexandria)
+ ("cffi" ,sbcl-cffi)
+ ("claw" ,sbcl-claw)))
+ (home-page "https://github.com/borodust/claw-utils")
+ (synopsis "Utilities for easier autowrapping")
+ (description
+ "This Common Lisp library contains various handy utilties to help
+autowrapping with @code{claw}.")
+ (license license:expat))))
+
+(define-public cl-claw-utils
+ (sbcl-package->cl-source-package sbcl-claw-utils))
+
+(define-public ecl-claw-utils
+ (sbcl-package->ecl-package sbcl-claw-utils))
+
(define-public sbcl-array-operations
(let ((commit "75cbc3b1adb2e3ce2109489753d0f290b071e81b")
(revision "0"))
@@ -12967,3 +13121,531 @@ bringing dynamism to class definition.")
(define-public cl-markdown
(sbcl-package->cl-source-package sbcl-cl-markdown))
+
+(define-public sbcl-magicffi
+ (let ((commit "d88f2f280c31f639e4e05be75215d8a8dce6aef2"))
+ (package
+ (name "sbcl-magicffi")
+ (version (git-version "0.0.0" "1" commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/dochang/magicffi/")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0p6ysa92fk34bhxpw7bycbfgw150fv11z9x8jr9xb4lh8cm2hvp6"))))
+ (build-system asdf-build-system/sbcl)
+ (native-inputs
+ `(("alexandria" ,sbcl-alexandria)))
+ (inputs
+ `(("cffi" ,sbcl-cffi)
+ ("ppcre" ,sbcl-cl-ppcre)
+ ("libmagic" ,file)))
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'fix-paths
+ (lambda* (#:key inputs #:allow-other-keys)
+ (let ((magic (assoc-ref inputs "libmagic")))
+ (substitute* "grovel.lisp"
+ (("/usr/include/magic.h")
+ (string-append magic "/include/magic.h")))
+ (substitute* "api.lisp"
+ ((":default \"libmagic\"" all)
+ (string-append ":default \"" magic "/lib/libmagic\"")))))))))
+ (home-page "https://common-lisp.net/project/magicffi/")
+ (synopsis "Common Lisp interface to libmagic based on CFFI")
+ (description
+ "MAGICFFI is a Common Lisp CFFI interface to libmagic(3), the file type
+determination library using @emph{magic} numbers.")
+ (license license:bsd-2))))
+
+(define-public ecl-magicffi
+ (sbcl-package->ecl-package sbcl-magicffi))
+
+(define-public cl-magicffi
+ (sbcl-package->cl-source-package sbcl-magicffi))
+
+(define-public sbcl-shlex
+ (let ((commit "c5616dffca0d4d8ddbc1cd6f37a96d88477b2740"))
+ (package
+ (name "sbcl-shlex")
+ (version (git-version "0.0.0" "1" commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/ruricolist/cl-shlex")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1nas024n4wv319bf40aal96g72bgi9nkapj2chywj2cc6r8hzkfg"))))
+ (build-system asdf-build-system/sbcl)
+ (inputs
+ `(("alexandria" ,sbcl-alexandria)
+ ("serapeum" ,sbcl-serapeum)
+ ("ppcre" ,sbcl-cl-ppcre)
+ ("unicode" ,sbcl-cl-unicode)))
+ (home-page "https://github.com/ruricolist/cl-shlex")
+ (synopsis "Common Lisp lexical analyzer for shell-like syntaxes")
+ (description
+ "This library contains a lexer for syntaxes that use shell-like rules
+for quoting and commenting. It is a port of the @code{shlex} module from Python’s
+standard library.")
+ (license license:expat))))
+
+(define-public ecl-shlex
+ (sbcl-package->ecl-package sbcl-shlex))
+
+(define-public cl-shlex
+ (sbcl-package->cl-source-package sbcl-shlex))
+
+(define-public sbcl-cmd
+ (let ((commit "e6a54dbf660bf229c80abc124fa47e7bb6d20c93"))
+ (package
+ (name "sbcl-cmd")
+ (version (git-version "0.0.1" "2" commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/ruricolist/cmd/")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1i0l8ci4cnkx84q4afmpkq51nxah24fqpi6k9kgjbxz6li3zp8hy"))))
+ (build-system asdf-build-system/sbcl)
+ (inputs
+ `(("alexandria" ,sbcl-alexandria)
+ ("coreutils" ,coreutils)
+ ("serapeum" ,sbcl-serapeum)
+ ("shlex" ,sbcl-shlex)
+ ("trivia" ,sbcl-trivia)))
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'fix-paths
+ (lambda* (#:key inputs #:allow-other-keys)
+ (let ((bin (string-append (assoc-ref inputs "coreutils") "/bin")))
+ (substitute* "cmd.lisp"
+ (("\"env\"") (format #f "\"~a/env\"" bin))
+ (("\"pwd\"") (format #f "\"~a/pwd\"" bin)))))))))
+ (home-page "https://github.com/ruricolist/cmd")
+ (synopsis "Conveniently run external programs from Common Lisp")
+ (description
+ "A utility for running external programs, built on UIOP.
+Cmd is designed to be natural to use, protect against shell interpolation and
+be usable from multi-threaded programs.")
+ (license license:expat))))
+
+(define-public ecl-cmd
+ (sbcl-package->ecl-package sbcl-cmd))
+
+(define-public cl-cmd
+ (sbcl-package->cl-source-package sbcl-cmd))
+
+(define-public sbcl-ppath
+ (let ((commit "eb1a8173b4d1d691ea9a7699412123462f58c3ce"))
+ (package
+ (name "sbcl-ppath")
+ (version (git-version "0.1" "1" commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/fourier/ppath/")
+ (commit commit)))
+ (file-name (git-file-name name commit))
+ (sha256
+ (base32 "1c46q9lmzqv14z80d3fwdawgn3pn4922x31fyqvsvbcjm4hd16fb"))))
+ (build-system asdf-build-system/sbcl)
+ (inputs
+ `(("alexandria" ,sbcl-alexandria)
+ ("cffi" ,sbcl-cffi)
+ ("osicat" ,sbcl-osicat)
+ ("ppcre" ,sbcl-cl-ppcre)
+ ("split-sequence" ,sbcl-split-sequence)
+ ("trivial-features" ,sbcl-trivial-features)))
+ (native-inputs
+ `(("cl-fad" ,sbcl-cl-fad)
+ ("prove" ,sbcl-prove)))
+ (home-page "https://github.com/fourier/ppath")
+ (synopsis "Common Lisp's implementation of the Python's os.path module")
+ (description
+ "This library is a path strings manipulation library inspired by
+Python's @code{os.path}. All functionality from @code{os.path} is supported on
+major operation systems.
+
+The philosophy behind is to use simple strings and \"dumb\" string
+manipulation functions to handle paths and filenames. Where possible the
+corresponding OS system functions are called.")
+ (license license:bsd-2))))
+
+(define-public ecl-ppath
+ (sbcl-package->ecl-package sbcl-ppath))
+
+(define-public cl-ppath
+ (sbcl-package->cl-source-package sbcl-ppath))
+
+(define-public sbcl-trivial-escapes
+ (let ((commit "1eca78da2078495d09893be58c28b3aa7b8cc4d1"))
+ (package
+ (name "sbcl-trivial-escapes")
+ (version (git-version "1.2.0" "1" commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/williamyaoh/trivial-escapes")
+ (commit commit)))
+ (file-name (git-file-name name commit))
+ (sha256
+ (base32 "0v6h8lk17iqv1qkxgqjyzn8gi6v0hvq2vmfbb01md3zjvjqxn6lr"))))
+ (build-system asdf-build-system/sbcl)
+ (inputs
+ `(("named-readtables" ,sbcl-named-readtables)))
+ (native-inputs
+ `(("fiveam" ,sbcl-fiveam)))
+ (home-page "https://github.com/williamyaoh/trivial-escapes")
+ (synopsis "C-style escape directives for Common Lisp")
+ (description
+ "This Common Lisp library interprets escape characters the same way that
+most other programming language do.
+It provides four readtables. The default one lets you write strings like this:
+@code{#\"This string has\na newline in it!\"}.")
+ (license license:public-domain))))
+
+(define-public ecl-trivial-escapes
+ (sbcl-package->ecl-package sbcl-trivial-escapes))
+
+(define-public cl-trivial-escapes
+ (sbcl-package->cl-source-package sbcl-trivial-escapes))
+
+(define-public sbcl-cl-indentify
+ (let ((commit "eb770f434defa4cd41d84bca822428dfd0dbac53"))
+ (package
+ (name "sbcl-cl-indentify")
+ (version (git-version "0.1" "1" commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/yitzchak/cl-indentify")
+ (commit commit)))
+ (file-name (git-file-name name commit))
+ (sha256
+ (base32 "0ha36bhg474vr76vfhr13szc8cfdj1ickg92k1icz791bqaqg67p"))))
+ (build-system asdf-build-system/sbcl)
+ (inputs
+ `(("alexandria" ,sbcl-alexandria)
+ ("command-line-arguments" ,sbcl-command-line-arguments)
+ ("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
+ (native-inputs
+ `(("trivial-escapes" ,sbcl-trivial-escapes)
+ ("rove" ,sbcl-rove)))
+ (home-page "https://github.com/yitzchak/cl-indentify")
+ (synopsis "Code beautifier for Common Lisp")
+ (description
+ "A library and command line utility to automatically indent Common Lisp
+source files.")
+ (license license:expat))))
+
+(define-public ecl-cl-indentify
+ (sbcl-package->ecl-package sbcl-cl-indentify))
+
+(define-public cl-indentify
+ (sbcl-package->cl-source-package sbcl-cl-indentify))
+
+(define-public sbcl-concrete-syntax-tree
+ (let ((commit "abd242a59dadc5452aa9dbc1d313c83ec2c11f46"))
+ (package
+ (name "sbcl-concrete-syntax-tree")
+ (version (git-version "0.0.0" "1" commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/s-expressionists/Concrete-Syntax-Tree")
+ (commit commit)))
+ (file-name (git-file-name name commit))
+ (sha256
+ (base32 "1lyrglc3h1if44gxd9cwv90wa90nrdjvb7fry39b1xn8ywdfa7di"))))
+ (build-system asdf-build-system/sbcl)
+ (inputs
+ `(("acclimation" ,sbcl-acclimation)))
+ (home-page "https://github.com/s-expressionists/Concrete-Syntax-Tree")
+ (synopsis "Parse Common Lisp code into a concrete syntax tree")
+ (description
+ "This library is intended to solve the problem of source tracking for
+Common Lisp code.
+
+By \"source tracking\", it is meant that code elements that have a known
+origin in the form of a position in a file or in an editor buffer are
+associated with some kind of information about this origin.
+
+Since the exact nature of such origin information depends on the Common Lisp
+implementation and the purpose of wanting to track that origin, the library
+does not impose a particular structure of this information. Instead, it
+provides utilities for manipulating source code in the form of what is called
+concrete syntax trees (CSTs for short) that preserve this information about
+the origin.")
+ (license license:bsd-2))))
+
+(define-public ecl-concrete-syntax-tree
+ (sbcl-package->ecl-package sbcl-concrete-syntax-tree))
+
+(define-public cl-concrete-syntax-tree
+ (sbcl-package->cl-source-package sbcl-concrete-syntax-tree))
+
+(define-public sbcl-eclector
+ (package
+ (name "sbcl-eclector")
+ (version "0.5.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/s-expressionists/Eclector")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0bwkla0jdp5bg0q1zca5wg22b0nbdmglgax345nrhsf8bdrh47wm"))))
+ (build-system asdf-build-system/sbcl)
+ (inputs
+ `(("acclimation" ,sbcl-acclimation)
+ ("alexandria" ,sbcl-alexandria)
+ ("closer-mop" ,sbcl-closer-mop)
+ ("concrete-syntax-tree" ,sbcl-concrete-syntax-tree)))
+ (native-inputs
+ `(("fiveam" ,sbcl-fiveam)))
+ (arguments
+ '(#:asd-systems '("eclector"
+ "eclector-concrete-syntax-tree")))
+ (home-page "https://s-expressionists.github.io/Eclector/")
+ (synopsis "Highly customizable, portable Common Lisp reader")
+ (description
+ "Eclector is a portable Common Lisp reader that is highly customizable,
+can recover from errors and can return concrete syntax trees.
+
+In contrast to many other reader implementations, eclector can recover from
+most errors in the input supplied to it and continue reading. This capability
+is realized as a restart.
+
+It can also produce instances of the concrete syntax tree classes provided by
+the concrete syntax tree library.")
+ (license license:bsd-2)))
+
+(define-public ecl-eclector
+ (sbcl-package->ecl-package sbcl-eclector))
+
+(define-public cl-eclector
+ (sbcl-package->cl-source-package sbcl-eclector))
+
+(define-public sbcl-jsown
+ (let ((commit "744c4407bef58dfa876d9da0b5c0205d869e7977"))
+ (package
+ (name "sbcl-jsown")
+ (version (git-version "1.0.1" "1" commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/madnificent/jsown")
+ (commit commit)))
+ (file-name (git-file-name name commit))
+ (sha256
+ (base32 "0gadvmf1d9bq35s61z76psrsnzwwk12svi66jigf491hv48wigw7"))))
+ (build-system asdf-build-system/sbcl)
+ (home-page "https://github.com/madnificent/jsown")
+ (synopsis "Fast JSON reader / writer library for Common Lisp")
+ (description
+ "@code{jsown} is a high performance Common Lisp JSON parser. Its aim
+is to allow for the fast parsing of JSON objects in Common Lisp. Recently,
+functions and macros have been added to ease the burden of writing and editing
+@code{jsown} objects.
+
+@code{jsown} allows you to parse JSON objects quickly to a modifiable Lisp
+list and write them back. If you only need partial retrieval of objects,
+@code{jsown} allows you to select the keys which you would like to see parsed.
+@code{jsown} also has a JSON writer and some helper methods to alter the JSON
+objects themselves.")
+ (license license:expat))))
+
+(define-public ecl-jsown
+ (sbcl-package->ecl-package sbcl-jsown))
+
+(define-public cl-jsown
+ (sbcl-package->cl-source-package sbcl-jsown))
+
+(define-public sbcl-system-locale
+ (let ((commit "4b334bc2fa45651bcaa28ae7d9331095d6bf0a17"))
+ (package
+ (name "sbcl-system-locale")
+ (version (git-version "1.0.0" "1" commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/Shinmera/system-locale/")
+ (commit commit)))
+ (file-name (git-file-name name commit))
+ (sha256
+ (base32 "00p5c053kmgq4ks6l9mxsqz6g3bjcybvkvj0bh3r90qgpkaawm1p"))))
+ (build-system asdf-build-system/sbcl)
+ (inputs
+ `(("documentation-utils" ,sbcl-documentation-utils)))
+ (home-page "https://shinmera.github.io/system-locale/")
+ (synopsis "Get the system's locale and language settings in Common Lisp")
+ (description
+ "This library retrieves locale information configured on the
+system. This is helpful if you want to write applications and libraries that
+display messages in the user's native language.")
+ (license license:zlib))))
+
+(define-public ecl-system-locale
+ (sbcl-package->ecl-package sbcl-system-locale))
+
+(define-public cl-system-locale
+ (sbcl-package->cl-source-package sbcl-system-locale))
+
+(define-public sbcl-language-codes
+ (let ((commit "e7aa0e37cb97a3d37d6bc7316b479d01bff8f42e"))
+ (package
+ (name "sbcl-language-codes")
+ (version (git-version "1.0.0" "1" commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/Shinmera/language-codes")
+ (commit commit)))
+ (file-name (git-file-name name commit))
+ (sha256
+ (base32 "0py176ibmsc01n5r0q1bs1ykqf5jwdbh8kx0j1a814l9y51241v0"))))
+ (build-system asdf-build-system/sbcl)
+ (inputs
+ `(("documentation-utils" ,sbcl-documentation-utils)))
+ (home-page "https://shinmera.github.io/language-codes/")
+ (synopsis "Map ISO language codes to language names in Common Lisp")
+ (description
+ "This is a small library providing the ISO-639 language code to
+language name mapping.")
+ (license license:zlib))))
+
+(define-public ecl-language-codes
+ (sbcl-package->ecl-package sbcl-language-codes))
+
+(define-public cl-language-codes
+ (sbcl-package->cl-source-package sbcl-language-codes))
+
+(define-public sbcl-multilang-documentation
+ (let ((commit "59e798a07e949e8957a20927f52aca425d84e4a0"))
+ (package
+ (name "sbcl-multilang-documentation")
+ (version (git-version "1.0.0" "1" commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/Shinmera/multilang-documentation")
+ (commit commit)))
+ (file-name (git-file-name name commit))
+ (sha256
+ (base32 "13y5jskx8n2b7kimpfarr8v777w3b7zj5swg1b99nj3hk0843ixw"))))
+ (build-system asdf-build-system/sbcl)
+ (inputs
+ `(("documentation-utils" ,sbcl-documentation-utils)
+ ("language-codes" ,sbcl-language-codes)
+ ("system-locale" ,sbcl-system-locale)))
+ (home-page "https://shinmera.github.io/multilang-documentation/")
+ (synopsis "Add multiple languages support to Common Lisp documentation")
+ (description
+ "This library provides a drop-in replacement function for
+cl:documentation that supports multiple docstrings per-language, allowing you
+to write documentation that can be internationalised.")
+ (license license:zlib))))
+
+(define-public ecl-multilang-documentation
+ (sbcl-package->ecl-package sbcl-multilang-documentation))
+
+(define-public cl-multilang-documentation
+ (sbcl-package->cl-source-package sbcl-multilang-documentation))
+
+(define-public sbcl-trivial-do
+ (let ((commit "03a1729f1e71bad3ebcf6cf098a0cce52dfa1163"))
+ (package
+ (name "sbcl-trivial-do")
+ (version (git-version "0.1" "1" commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/yitzchak/trivial-do")
+ (commit commit)))
+ (file-name (git-file-name name commit))
+ (sha256
+ (base32 "1ffva79nkicc7wc8c2ic5nayis3b2rk5sxzj74yjkymkjgbpcrgd"))))
+ (build-system asdf-build-system/sbcl)
+ (home-page "https://github.com/yitzchak/trivial-do")
+ (synopsis "Additional dolist style macros for Common Lisp")
+ (description
+ "Additional dolist style macros for Common Lisp, such as
+@code{doalist}, @code{dohash}, @code{dolist*}, @code{doplist}, @code{doseq}
+and @code{doseq*}.")
+ (license license:zlib))))
+
+(define-public ecl-trivial-do
+ (sbcl-package->ecl-package sbcl-trivial-do))
+
+(define-public cl-trivial-do
+ (sbcl-package->cl-source-package sbcl-trivial-do))
+
+(define-public sbcl-common-lisp-jupyter
+ (let ((commit "61a9a8e7a18e2abd7af7c697ba5146fd19bd9d62"))
+ (package
+ (name "sbcl-common-lisp-jupyter")
+ (version (git-version "0.1" "1" commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/yitzchak/common-lisp-jupyter")
+ (commit commit)))
+ (file-name (git-file-name name commit))
+ (sha256
+ (base32 "0zyzl55l45w9z65ygi5pcwda5w5p1j1bb0p2zg2n5cpv8344dkh2"))))
+ (build-system asdf-build-system/sbcl)
+ (inputs
+ `(("alexandria" ,sbcl-alexandria)
+ ("babel" ,sbcl-babel)
+ ("bordeaux-threads" ,sbcl-bordeaux-threads)
+ ("cl-base64" ,sbcl-cl-base64)
+ ("cl-indentify" ,sbcl-cl-indentify)
+ ("closer-mop" ,sbcl-closer-mop)
+ ("eclector" ,sbcl-eclector)
+ ("ironclad" ,sbcl-ironclad)
+ ("iterate" ,sbcl-iterate)
+ ("jsown" ,sbcl-jsown)
+ ("multilang-documentation" ,sbcl-multilang-documentation)
+ ("pzmq" ,sbcl-pzmq)
+ ("puri" ,sbcl-puri)
+ ("static-vectors" ,sbcl-static-vectors)
+ ("trivial-do" ,sbcl-trivial-do)
+ ("trivial-garbage" ,sbcl-trivial-garbage)
+ ("trivial-gray-streams" ,sbcl-trivial-gray-streams)
+ ("trivial-mimes" ,sbcl-trivial-mimes)))
+ (home-page "https://yitzchak.github.io/common-lisp-jupyter/")
+ (synopsis "Common Lisp kernel for Jupyter")
+ (description
+ "This is a Common Lisp kernel for Jupyter along with a library for
+building Jupyter kernels, based on Maxima-Jupyter which was based on
+@code{cl-jupyter}.")
+ (license license:zlib))))
+
+(define-public ecl-common-lisp-jupyter
+ (sbcl-package->ecl-package sbcl-common-lisp-jupyter))
+
+(define-public cl-common-lisp-jupyter
+ (sbcl-package->cl-source-package sbcl-common-lisp-jupyter))