diff options
Diffstat (limited to 'gnu/packages/lisp-xyz.scm')
-rw-r--r-- | gnu/packages/lisp-xyz.scm | 549 |
1 files changed, 545 insertions, 4 deletions
diff --git a/gnu/packages/lisp-xyz.scm b/gnu/packages/lisp-xyz.scm index cffd43cfc7..d0cc685969 100644 --- a/gnu/packages/lisp-xyz.scm +++ b/gnu/packages/lisp-xyz.scm @@ -51,6 +51,7 @@ #:use-module (gnu packages compression) #:use-module (gnu packages glib) #:use-module (gnu packages gtk) + #:use-module (gnu packages libevent) #:use-module (gnu packages libffi) #:use-module (gnu packages lisp) #:use-module (gnu packages maths) @@ -1668,7 +1669,7 @@ also be supported.") (define-public sbcl-ironclad (package (name "sbcl-ironclad") - (version "0.46") + (version "0.48") (source (origin (method git-fetch) @@ -1677,7 +1678,7 @@ also be supported.") (commit (string-append "v" version)))) (sha256 (base32 - "1s391awi2lsl7m1dbjirgpkm4p9p8wd076pakgvsvpn1rrznisnd")) + "1wzczpgvgjc5h8ghz75kxi7iykmqxqchdhgdhkif9j99kyqvbyam")) (file-name (git-file-name name version)))) (build-system asdf-build-system/sbcl) (native-inputs @@ -1685,8 +1686,7 @@ also be supported.") `(("rt" ,sbcl-rt))) (inputs `(("bordeaux-threads" ,sbcl-bordeaux-threads) - ("flexi-streams" ,sbcl-flexi-streams) - ("nibbles" ,sbcl-nibbles))) + ("flexi-streams" ,sbcl-flexi-streams))) (synopsis "Cryptographic toolkit written in Common Lisp") (description "Ironclad is a cryptography library written entirely in Common Lisp. @@ -9168,3 +9168,544 @@ visualization.") (define-public cl-ana (sbcl-package->cl-source-package sbcl-cl-ana)) + +(define-public sbcl-archive + (let ((commit "631271c091ed02994bec3980cb288a2cf32c7cdc") + (revision "1")) + (package + (name "sbcl-archive") + (version (git-version "0.9" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/sharplispers/archive.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0pvsc9fmybx7rxd0kmzq4shi6hszdpwdc1sfy7jwyfxf8n3hnv4p")))) + (build-system asdf-build-system/sbcl) + (inputs + `(("cl-fad" ,sbcl-cl-fad) + ("trivial-gray-streams" ,sbcl-trivial-gray-streams))) + (synopsis "Common Lisp library for tar and cpio archives") + (description + "This is a Common Lisp library to read and write disk-based file +archives such as those generated by the tar and cpio programs on Unix.") + (home-page "https://github.com/sharplispers/archive") + (license license:bsd-3)))) + +(define-public cl-archive + (sbcl-package->cl-source-package sbcl-archive)) + +(define-public ecl-archive + (sbcl-package->ecl-package sbcl-archive)) + +(define-public sbcl-misc-extensions + (let ((commit "101c05112bf2f1e1bbf527396822d2f50ca6327a") + (revision "1")) + (package + (name "sbcl-misc-extensions") + (version (git-version "3.3" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.common-lisp.net/misc-extensions/devel.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0gz5f4p70qzilnxsnf5lih2n9m4wjcw8hlw4w8mpn9jyhyppyyv0")))) + (build-system asdf-build-system/sbcl) + (synopsis "Collection of small macros and extensions for Common Lisp") + (description + "This project is intended as a catchall for small, general-purpose +extensions to Common Lisp. It contains: + +@itemize +@item @code{new-let}, a macro that combines and generalizes @code{let}, +@code{let*} and @code{multiple-value-bind}, +@item @code{gmap}, an iteration macro that generalizes @code{map}. +@end itemize\n") + (home-page "https://common-lisp.net/project/misc-extensions/") + (license license:public-domain)))) + +(define-public cl-misc-extensions + (sbcl-package->cl-source-package sbcl-misc-extensions)) + +(define-public ecl-misc-extensions + (sbcl-package->ecl-package sbcl-misc-extensions)) + +(define-public sbcl-mt19937 + (package + (name "sbcl-mt19937") + (version "1.1") + (source + (origin + (method url-fetch) + (uri (string-append "https://common-lisp.net/project/asdf-packaging/" + "mt19937-latest.tar.gz")) + (sha256 + (base32 + "1iw636b0iw5ygkv02y8i41lh7xj0acglv0hg5agryn0zzi2nf1xv")))) + (build-system asdf-build-system/sbcl) + (synopsis "Mersenne Twister pseudo-random number generator") + (description + "MT19937 is a portable Mersenne Twister pseudo-random number generator +for Common Lisp.") + (home-page "https://www.cliki.net/mt19937") + (license license:public-domain))) + +(define-public cl-mt19937 + (sbcl-package->cl-source-package sbcl-mt19937)) + +(define-public ecl-mt19937 + (sbcl-package->ecl-package sbcl-mt19937)) + +(define-public sbcl-fset + (let ((commit "6d2f9ded8934d2b42f2571a0ba5bda091037d852") + (revision "1")) + (package + (name "sbcl-fset") + (version (git-version "1.3.2" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/slburson/fset") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "127acblwrbqicx47h6sgvknz1cqyfn8p4xkhkn1m7hxh8w5gk1zy")) + (snippet '(begin + ;; Remove obsolete copy of system definition. + (delete-file "Code/fset.asd") + #t)))) + (build-system asdf-build-system/sbcl) + (inputs + `(("misc-extensions" ,sbcl-misc-extensions) + ("mt19937" ,sbcl-mt19937) + ("named-readtables" ,sbcl-named-readtables))) + (synopsis "Functional set-theoretic collections library") + (description + "FSet is a functional set-theoretic collections library for Common Lisp. +Functional means that all update operations return a new collection rather than +modifying an existing one in place. Set-theoretic means that collections may +be nested arbitrarily with no additional programmer effort; for instance, sets +may contain sets, maps may be keyed by sets, etc.") + (home-page "https://common-lisp.net/project/fset/Site/index.html") + (license license:llgpl)))) + +(define-public cl-fset + (sbcl-package->cl-source-package sbcl-fset)) + +(define-public sbcl-cl-cont + (let ((commit "fc1fa7e6eb64894fdca13e688e6015fad5290d2a") + (revision "1")) + (package + (name "sbcl-cl-cont") + (version (git-version "0.3.8" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.common-lisp.net/cl-cont/cl-cont.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1zf8zvb0i6jm3hhfks4w74hibm6avgc6f9s1qwgjrn2bcik8lrvz")))) + (build-system asdf-build-system/sbcl) + (inputs + `(("alexandria" ,sbcl-alexandria) + ("closer-mop" ,sbcl-closer-mop))) + (native-inputs + `(("rt" ,sbcl-rt))) + (synopsis "Delimited continuations for Common Lisp") + (description + "This is a library that implements delimited continuations by +transforming Common Lisp code to continuation passing style.") + (home-page "https://common-lisp.net/project/cl-cont/") + (license license:llgpl)))) + +(define-public cl-cont + (sbcl-package->cl-source-package sbcl-cl-cont)) + +(define-public ecl-cl-cont + (sbcl-package->ecl-package sbcl-cl-cont)) + +(define-public sbcl-cl-coroutine + (let ((commit "de098f8d5debd8b14ef6864b5bdcbbf5ddbcfd72") + (revision "1")) + (package + (name "sbcl-cl-coroutine") + (version (git-version "0.1" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/takagi/cl-coroutine.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1cqdhdjxffgfs116l1swjlsmcbly0xgcgrckvaajd566idj9yj4l")))) + (build-system asdf-build-system/sbcl) + (inputs + `(("alexandria" ,sbcl-alexandria) + ("cl-cont" ,sbcl-cl-cont))) + (native-inputs + `(("prove" ,sbcl-prove))) + (arguments + `(;; TODO: Fix the tests. They fail with: + ;; "Component CL-COROUTINE-ASD::CL-COROUTINE-TEST not found" + #:tests? #f + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-tests + (lambda _ + (substitute* "cl-coroutine-test.asd" + (("cl-test-more") + "prove")) + #t))))) + (synopsis "Coroutine library for Common Lisp") + (description + "This is a coroutine library for Common Lisp implemented using the +continuations of the @code{cl-cont} library.") + (home-page "https://github.com/takagi/cl-coroutine") + (license license:llgpl)))) + +(define-public cl-coroutine + (sbcl-package->cl-source-package sbcl-cl-coroutine)) + +(define-public ecl-cl-coroutine + (sbcl-package->ecl-package sbcl-cl-coroutine)) + +(define-public sbcl-vom + (let ((commit "1aeafeb5b74c53741b79497e0ef4acf85c92ff24") + (revision "1")) + (package + (name "sbcl-vom") + (version (git-version "0.1.4" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/orthecreedence/vom.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0536kppj76ax4lrxhv42npkfjsmx45km2g439vf9jmw3apinz9cy")))) + (build-system asdf-build-system/sbcl) + (synopsis "Tiny logging utility for Common Lisp") + (description + "Vom is a logging library for Common Lisp. It's goal is to be useful +and small. It does not provide a lot of features as other loggers do, but +has a small codebase that's easy to understand and use.") + (home-page "https://github.com/orthecreedence/vom") + (license license:expat)))) + +(define-public cl-vom + (sbcl-package->cl-source-package sbcl-vom)) + +(define-public ecl-vom + (sbcl-package->ecl-package sbcl-vom)) + +(define-public sbcl-cl-libuv + (let ((commit "32100c023c518038d0670a103eaa4d50dd785d29") + (revision "1")) + (package + (name "sbcl-cl-libuv") + (version (git-version "0.1.6" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/orthecreedence/cl-libuv.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1kwix4si8a8hza34ab2k7whrh7z0yrmx39v2wc3qblv9m244jkh1")))) + (build-system asdf-build-system/sbcl) + (inputs + `(("alexandria" ,sbcl-alexandria) + ("cffi" ,sbcl-cffi) + ("cffi-grovel" ,sbcl-cffi-grovel) + ("libuv" ,libuv))) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-paths + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "lib.lisp" + (("/usr/lib/libuv.so") + (string-append (assoc-ref inputs "libuv") + "/lib/libuv.so"))) + #t)) + (add-after 'fix-paths 'fix-system-definition + (lambda _ + (substitute* "cl-libuv.asd" + (("#:cffi #:alexandria") + "#:cffi #:cffi-grovel #:alexandria")) + #t))))) + (synopsis "Common Lisp bindings to libuv") + (description + "This library provides low-level libuv bindings for Common Lisp.") + (home-page "https://github.com/orthecreedence/cl-libuv") + (license license:expat)))) + +(define-public cl-libuv + (sbcl-package->cl-source-package sbcl-cl-libuv)) + +(define-public ecl-cl-libuv + (sbcl-package->ecl-package sbcl-cl-libuv)) + +(define-public sbcl-cl-async-base + (let ((commit "f6423e44404a44434d803605e0d2e17199158e28") + (revision "1")) + (package + (name "sbcl-cl-async-base") + (version (git-version "0.6.1" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/orthecreedence/cl-async.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "11xi9dxb8mjgwzrkj88i0xkgk26z9w9ddxzbv6xsvfc1d4x5cf4x")))) + (build-system asdf-build-system/sbcl) + (inputs + `(("bordeaux-threads" ,sbcl-bordeaux-threads) + ("cffi" ,sbcl-cffi) + ("cl-libuv" ,sbcl-cl-libuv))) + (arguments + `(#:asd-file "cl-async.asd")) + (synopsis "Base system for cl-async") + (description + "Cl-async is a library for general purpose, non-blocking programming in +Common Lisp. It uses the libuv library as backend.") + (home-page "https://orthecreedence.github.io/cl-async/") + (license license:expat)))) + +(define-public cl-async-base + (sbcl-package->cl-source-package sbcl-cl-async-base)) + +(define-public ecl-cl-async-base + (sbcl-package->ecl-package sbcl-cl-async-base)) + +(define-public sbcl-cl-async-util + (package + (inherit sbcl-cl-async-base) + (name "sbcl-cl-async-util") + (inputs + `(("bordeaux-threads" ,sbcl-bordeaux-threads) + ("cffi" ,sbcl-cffi) + ("cl-async-base" ,sbcl-cl-async-base) + ("cl-libuv" ,sbcl-cl-libuv) + ("cl-ppcre" ,sbcl-cl-ppcre) + ("fast-io" ,sbcl-fast-io) + ("vom" ,sbcl-vom))) + (synopsis "Internal utilities for cl-async"))) + +(define-public cl-async-util + (sbcl-package->cl-source-package sbcl-cl-async-util)) + +(define-public ecl-cl-async-util + (sbcl-package->ecl-package sbcl-cl-async-util)) + +(define-public sbcl-cl-async + (package + (inherit sbcl-cl-async-base) + (name "sbcl-cl-async") + (inputs + `(("babel" ,sbcl-babel) + ("cffi" ,sbcl-cffi) + ("cl-async-base" ,sbcl-cl-async-base) + ("cl-async-util" ,sbcl-cl-async-util) + ("cl-libuv" ,sbcl-cl-libuv) + ("cl-ppcre" ,sbcl-cl-ppcre) + ("static-vectors" ,sbcl-static-vectors) + ("trivial-features" ,sbcl-trivial-features) + ("trivial-gray-streams" ,sbcl-trivial-gray-streams))) + (synopsis "Asynchronous operations for Common Lisp"))) + +(define-public cl-async + (sbcl-package->cl-source-package sbcl-cl-async)) + +(define-public ecl-cl-async + (sbcl-package->ecl-package sbcl-cl-async)) + +(define-public sbcl-cl-async-repl + (package + (inherit sbcl-cl-async-base) + (name "sbcl-cl-async-repl") + (inputs + `(("bordeaux-threads" ,sbcl-bordeaux-threads) + ("cl-async" ,sbcl-cl-async))) + (arguments + (substitute-keyword-arguments (package-arguments sbcl-cl-async-base) + ((#:asd-file _ "") "cl-async-repl.asd"))) + (synopsis "REPL integration for cl-async"))) + +(define-public cl-async-repl + (sbcl-package->cl-source-package sbcl-cl-async-repl)) + +(define-public ecl-cl-async-repl + (sbcl-package->ecl-package sbcl-cl-async-repl)) + +(define-public sbcl-cl-async-ssl + (package + (inherit sbcl-cl-async-base) + (name "sbcl-cl-async-ssl") + (inputs + `(("cffi" ,sbcl-cffi) + ("cl-async" ,sbcl-cl-async) + ("openssl" ,openssl) + ("vom" ,sbcl-vom))) + (arguments + (substitute-keyword-arguments (package-arguments sbcl-cl-async-base) + ((#:asd-file _ "") "cl-async-ssl.asd") + ((#:phases phases '%standard-phases) + `(modify-phases ,phases + (add-after 'unpack 'fix-paths + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "src/ssl/package.lisp" + (("libcrypto\\.so") + (string-append (assoc-ref inputs "openssl") + "/lib/libcrypto.so")) + (("libssl\\.so") + (string-append (assoc-ref inputs "openssl") + "/lib/libssl.so"))) + #t)))))) + (synopsis "SSL wrapper around cl-async socket implementation"))) + +(define-public cl-async-ssl + (sbcl-package->cl-source-package sbcl-cl-async-ssl)) + +(define-public ecl-cl-async-ssl + (sbcl-package->ecl-package sbcl-cl-async-ssl)) + +(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.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0xfds5yaya64arzr7w1x38karyz11swzbhxx1afldpradj9dh19c")))) + (build-system asdf-build-system/sbcl) + (inputs + `(("vom" ,sbcl-vom))) + (native-inputs + `(("cl-async" ,sbcl-cl-async) + ("fiveam" ,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 "http://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-cl-async-future + (let ((commit "ee36c22a69a9516407458d2ed8b475f1fc473959") + (revision "1")) + (package + (name "sbcl-cl-async-future") + (version (git-version "0.4.4.1" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/orthecreedence/cl-async-future.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0z0sc7qlzzxk99f4l26zp6rai9kv0kj0f599sxai5s44p17zbbvh")))) + (build-system asdf-build-system/sbcl) + (inputs + `(("blackbird" ,sbcl-blackbird))) + (native-inputs + `(("cl-async" ,sbcl-cl-async) + ("eos" ,sbcl-eos))) + (synopsis "Futures implementation for Common Lisp") + (description + "This is futures implementation for Common Lisp. It plugs in nicely +to cl-async.") + (home-page "http://orthecreedence.github.io/cl-async/future") + (license license:expat)))) + +(define-public cl-async-future + (sbcl-package->cl-source-package sbcl-cl-async-future)) + +(define-public ecl-cl-async-future + (sbcl-package->ecl-package sbcl-cl-async-future)) + +(define-public sbcl-green-threads + (let ((commit "fff5ebecb441a37e5c511773716aafd84a3c5840") + (revision "1")) + (package + (name "sbcl-green-threads") + (version (git-version "0.3" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/thezerobit/green-threads.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1czw7nr0dwfps76h8hjvglk1wdh53yqbfbvv30whwbgqx33iippz")))) + (build-system asdf-build-system/sbcl) + (inputs + `(("cl-async-future" ,sbcl-cl-async-future) + ("cl-cont" ,sbcl-cl-cont))) + (native-inputs + `(("prove" ,sbcl-prove))) + (arguments + `(;; TODO: Fix the tests. They fail with: + ;; "The function BLACKBIRD::PROMISE-VALUES is undefined" + #:tests? #f + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-tests + (lambda _ + (substitute* "green-threads-test.asd" + (("cl-test-more") + "prove")) + #t))))) + (synopsis "Cooperative multitasking library for Common Lisp") + (description + "This library allows for cooperative multitasking with help of cl-cont +for continuations. It tries to mimic the API of bordeaux-threads as much as +possible.") + (home-page "https://github.com/thezerobit/green-threads") + (license license:bsd-3)))) + +(define-public cl-green-threads + (sbcl-package->cl-source-package sbcl-green-threads)) + +(define-public ecl-green-threads + (sbcl-package->ecl-package sbcl-green-threads)) |