diff options
Diffstat (limited to 'gnu/packages/lisp-xyz.scm')
-rw-r--r-- | gnu/packages/lisp-xyz.scm | 428 |
1 files changed, 377 insertions, 51 deletions
diff --git a/gnu/packages/lisp-xyz.scm b/gnu/packages/lisp-xyz.scm index 3fefccf1e8..7cfd4b2a6b 100644 --- a/gnu/packages/lisp-xyz.scm +++ b/gnu/packages/lisp-xyz.scm @@ -69,6 +69,7 @@ #:use-module (gnu packages libffi) #:use-module (gnu packages lisp) #:use-module (gnu packages maths) + #:use-module (gnu packages mp3) #:use-module (gnu packages networking) #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) @@ -459,6 +460,39 @@ compatible with ANSI-compliant Common Lisp implementations.") (define-public ecl-cl-ppcre (sbcl-package->ecl-package sbcl-cl-ppcre)) +(define-public sbcl-ubiquitous + (let ((commit "35eb7bd9e1b3daee1705f6b41260775180cce8af") + (revision "1")) + (package + (name "sbcl-ubiquitous") + (version (git-version "2.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/Shinmera/ubiquitous") + (commit commit))) + (file-name (git-file-name "ubiquitous" version)) + (sha256 + (base32 "1xlkaqmjcpkiv2xl2s2pvvrv976dlc846wm16s1lj62iy1315i49")))) + (build-system asdf-build-system/sbcl) + (inputs + `(("bordeaux-threads" ,sbcl-bordeaux-threads))) + (home-page "https://shinmera.github.io/ubiquitous/") + (synopsis "Application configuration mechanism for Common Lisp") + (description + "@code{UBIQUITOUS} is a very easy-to-use library for persistent +configuration storage. It automatically takes care of finding a suitable place +to save your data, and provides simple functions to access and modify the data +within.") + (license license:zlib)))) + +(define-public ecl-ubiquitous + (sbcl-package->ecl-package sbcl-ubiquitous)) + +(define-public cl-ubiquitous + (sbcl-package->cl-source-package sbcl-ubiquitous)) + (define-public sbcl-uax-15 (package (name "sbcl-uax-15") @@ -799,40 +833,11 @@ antialiased TrueType font rendering using CLX and XRender extension.") (commit commit))) (sha256 (base32 "0vv185gz3rkfng5y79dijfnc11p92qdz2kdza05avjbpqfs6l0zn")) - (file-name (git-file-name "slynk" version)) - (modules '((guix build utils) - (ice-9 ftw))) - (snippet - '(begin - ;; Move the contribs into the main source directory for easier - ;; access - (substitute* "slynk/slynk.asd" - (("\\.\\./contrib") - "contrib")) - (rename-file "contrib" "slynk/contrib") - ;; Move slynk's contents into the base directory for easier - ;; access - (for-each (lambda (file) - (unless (string-prefix? "." file) - (rename-file (string-append "slynk/" file) - (string-append "./" (basename file))))) - (scandir "slynk")) - #t)))) + (file-name (git-file-name "slynk" version)))) (build-system asdf-build-system/sbcl) (outputs '("out" "image")) (arguments - `(#:tests? #f ; No test suite - #:asd-systems '("slynk" - "slynk/arglists" - "slynk/fancy-inspector" - "slynk/package-fu" - "slynk/mrepl" - "slynk/trace-dialog" - "slynk/profiler" - "slynk/stickers" - "slynk/indentation" - "slynk/retro") - #:phases + `(#:phases (modify-phases %standard-phases (add-after 'create-asdf-configuration 'build-image (lambda* (#:key outputs #:allow-other-keys) @@ -1318,6 +1323,34 @@ and macros, primarily for software projects written in CL by the author.") (define-public ecl-jpl-util (sbcl-package->ecl-package sbcl-jpl-util)) +(define-public sbcl-piping + (let ((commit "c7a4163c00dea7e72bf6ad33d6abac0d5826a656") + (revision "1")) + (package + (name "sbcl-piping") + (version (git-version "2.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/Shinmera/piping/") + (commit commit))) + (file-name (git-file-name "piping" version)) + (sha256 + (base32 "0in84qnfkynm36d4n4d6v87vprpi27xrydnga462wfhplji6klv5")))) + (build-system asdf-build-system/sbcl) + (home-page "https://shinmera.github.io/piping/") + (synopsis "Library to enable simple message pipelines") + (description + "This is a Common Lisp library to enable simple message pipelines.") + (license license:zlib)))) + +(define-public ecl-piping + (sbcl-package->ecl-package sbcl-piping)) + +(define-public cl-piping + (sbcl-package->cl-source-package sbcl-piping)) + (define-public sbcl-jpl-queues (package (name "sbcl-jpl-queues") @@ -2403,8 +2436,8 @@ tester module.") (sbcl-package->ecl-package sbcl-ptester)) (define-public sbcl-puri - (let ((commit "ef5afb9e5286c8e952d4344f019c1a636a717b97") - (revision "1")) + (let ((commit "4bbab89d9ccbb26346899d1f496c97604fec567b") + (revision "2")) (package (name "sbcl-puri") (version (git-version "1.5.7" revision commit)) @@ -2414,13 +2447,13 @@ tester module.") (uri (git-reference (url "http://git.kpe.io/puri.git") (commit commit))) - (file-name (git-file-name name version)) + (file-name (git-file-name "puri" version)) (sha256 - (base32 "1vm25pdl92laj72p5vyd538kf3cjy2655z6bdc99h20ana2p231s")))) + (base32 "0gq2rsr0aihs0z20v4zqvmdl4szq53b52rh97pvnmwrlbn4mapmd")))) (build-system asdf-build-system/sbcl) (native-inputs `(("ptester" ,sbcl-ptester))) - (home-page "http://quickdocs.org/puri/") + (home-page "http://puri.kpe.io/") (synopsis "Portable URI Library") (description "This is a portable Universal Resource Identifier library for Common @@ -3235,6 +3268,34 @@ client and server.") (define-public ecl-s-xml-rpc (sbcl-package->ecl-package sbcl-s-xml-rpc)) +(define-public sbcl-trivial-arguments + (let ((commit "ecd84ed9cf9ef8f1e873d7409e6bd04979372aa7") + (revision "1")) + (package + (name "sbcl-trivial-arguments") + (version (git-version "1.1.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/Shinmera/trivial-arguments") + (commit commit))) + (file-name (git-file-name "trivial-arguments" version)) + (sha256 + (base32 "02vaqfavhj8jqxnr68nnzvzshm8jbgcy6m9lvyv4daa6f7ihqf88")))) + (build-system asdf-build-system/sbcl) + (home-page "https://github.com/Shinmera/trivial-arguments") + (synopsis "Common Lisp library to retrieve a function's lambda-list") + (description + "This is a simple library to retrieve the argument list of a function.") + (license license:zlib)))) + +(define-public ecl-trivial-arguments + (sbcl-package->ecl-package sbcl-trivial-arguments)) + +(define-public cl-trivial-arguments + (sbcl-package->cl-source-package sbcl-trivial-arguments)) + (define-public sbcl-trivial-clipboard (let ((commit "afcd3743b842f5a81fc86dba60f9db59970f49c5")) (package @@ -4641,6 +4702,41 @@ various levels and mix text with expressions.") (define-public ecl-log4cl (sbcl-package->ecl-package sbcl-log4cl)) +(define-public sbcl-verbose + (let ((commit "c5b7ecd465be61b35af17ef57564697b88397174") + (revision "1")) + (package + (name "sbcl-verbose") + (version (git-version "2.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/Shinmera/verbose/") + (commit commit))) + (file-name (git-file-name "verbose" version)) + (sha256 + (base32 "0r51ydj5v7afi2jrlscbhxprv13d9vzg5316g1yzwaxc1kzsdsw6")))) + (build-system asdf-build-system/sbcl) + (inputs + `(("bordeaux-threads" ,sbcl-bordeaux-threads) + ("dissect" ,sbcl-dissect) + ("documentation-utils" ,sbcl-documentation-utils) + ("local-time" ,sbcl-local-time) + ("piping" ,sbcl-piping))) + (home-page "https://shinmera.github.io/verbose/") + (synopsis "Logging framework using the piping library") + (description + "This is a Common Lisp library providing logging faciltiy similar to +@code{CL-LOG} and @code{LOG4CL}.") + (license license:zlib)))) + +(define-public ecl-verbose + (sbcl-package->ecl-package sbcl-verbose)) + +(define-public cl-verbose + (sbcl-package->cl-source-package sbcl-verbose)) + (define-public sbcl-find-port (let ((commit "00c96a25af93a0f8681d34ec548861f2d7485478") (revision "1")) @@ -9686,6 +9782,115 @@ PascalCase, snake_case, param-case, CONSTANT_CASE and more.") (define-public ecl-cl-change-case (sbcl-package->ecl-package sbcl-cl-change-case)) +(define-public sbcl-modularize + (let ((commit "86c5d9a11fbd2df9f0f03ac10b5d71837c8934ba") + (revision "1")) + (package + (name "sbcl-modularize") + (version (git-version "1.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/Shinmera/modularize") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1zys29rfkb649rkgl3snxhajk8d5yf7ryxkrwy020kwdh7zdsg7d")))) + (build-system asdf-build-system/sbcl) + (arguments + `(#:test-asd-file "modularize-test-module.asd" + #:asd-files '("modularize.asd" "modularize-test-module.asd") + #:asd-systems '("modularize" "modularize-test-module"))) + (inputs + `(("documentation-utils" ,sbcl-documentation-utils) + ("trivial-package-local-nicknames" ,sbcl-trivial-package-local-nicknames))) + (home-page "https://shinmera.github.io/modularize/") + (synopsis "Common Lisp modularization framework") + (description + "@code{MODULARIZE} is an attempt at providing a common interface to +segregate major application components. This is achieved by adding special +treatment to packages. Each module is a package that is specially registered, +which allows it to interact and co-exist with other modules in better ways. For +instance, by adding module definition options you can introduce mechanisms to +tie modules together in functionality, hook into each other and so on.") + (license license:zlib)))) + +(define-public ecl-modularize + (sbcl-package->ecl-package sbcl-modularize)) + +(define-public cl-modularize + (sbcl-package->cl-source-package sbcl-modularize)) + +(define-public sbcl-modularize-hooks + (let ((commit "e0348ed3ffd59a9ec31ca4ab28289e748bfbf96a") + (revision "1")) + (package + (name "sbcl-modularize-hooks") + (version (git-version "1.0.2" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/Shinmera/modularize-hooks") + (commit commit))) + (file-name (git-file-name "modularize-hooks" version)) + (sha256 + (base32 "12kjvin8hxidwkzfb7inqv5b6g5qzcssnj9wc497v2ixc56fqdz7")))) + (build-system asdf-build-system/sbcl) + (inputs + `(("closer-mop" ,sbcl-closer-mop) + ("lambda-fiddle" ,sbcl-lambda-fiddle) + ("modularize" ,sbcl-modularize) + ("trivial-arguments" ,sbcl-trivial-arguments))) + (home-page "https://shinmera.github.io/modularize-hooks/") + (synopsis "Generic hooks and triggers extension for Modularize") + (description + "This is a simple extension to @code{MODULARIZE} that allows modules to +define and trigger hooks, which other modules can hook on to.") + (license license:zlib)))) + +(define-public ecl-modularize-hooks + (sbcl-package->ecl-package sbcl-modularize-hooks)) + +(define-public cl-modularize-hooks + (sbcl-package->cl-source-package sbcl-modularize-hooks)) + +(define-public sbcl-modularize-interfaces + (let ((commit "96353657afb8c7aeba7ef5b51eb04c5ed3bcb6ef") + (revision "1")) + (package + (name "sbcl-modularize-interfaces") + (version (git-version "0.9.3" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/Shinmera/modularize-interfaces") + (commit commit))) + (file-name (git-file-name "modularize-interfaces" version)) + (sha256 + (base32 "0bjf4wy39cwf75m7vh0r7mmcchs09yz2lrbyap98hnq8blq70fhc")))) + (build-system asdf-build-system/sbcl) + (inputs + `(("lambda-fiddle" ,sbcl-lambda-fiddle) + ("modularize" ,sbcl-modularize) + ("trivial-arguments" ,sbcl-trivial-arguments) + ("trivial-indent" ,sbcl-trivial-indent))) + (home-page "https://shinmera.github.io/modularize-interfaces/") + (synopsis "Programmatical interfaces extension for Modularize") + (description + "This is an extension to @code{MODULARIZE} that allows your application +to define interfaces in-code that serve both as a primary documentation and as +compliance control.") + (license license:zlib)))) + +(define-public ecl-modularize-interfaces + (sbcl-package->ecl-package sbcl-modularize-interfaces)) + +(define-public cl-modularize-interfaces + (sbcl-package->cl-source-package sbcl-modularize-interfaces)) + (define-public sbcl-moptilities (let ((commit "a436f16b357c96b82397ec018ea469574c10dd41")) (package @@ -10282,8 +10487,8 @@ format.") (sbcl-package->ecl-package sbcl-cl-libsvm-format)) (define-public sbcl-cl-online-learning - (let ((commit "fc7a34f4f161cd1c7dd747d2ed8f698947781423") - (revision "0")) + (let ((commit "87fbef8a340219e853adb3a5bf44a0470da76964") + (revision "1")) (package (name "sbcl-cl-online-learning") (version (git-version "0.5" revision commit)) @@ -10293,10 +10498,10 @@ format.") (uri (git-reference (url "https://github.com/masatoi/cl-online-learning") (commit commit))) - (file-name (git-file-name name version)) + (file-name (git-file-name "cl-online-learning" version)) (sha256 (base32 - "14x95rlg80ay5hv645ki57pqvy12v28hz4k1w0f6bsfi2rmpxchq")))) + "1lfq04lnxivx59nq5dd02glyqsqzf3vdn4s9b8wnaln5fs8g2ph9")))) (build-system asdf-build-system/sbcl) (native-inputs `(("prove" ,sbcl-prove))) @@ -10304,13 +10509,14 @@ format.") `(("cl-libsvm-format" ,sbcl-cl-libsvm-format) ("cl-store" ,sbcl-cl-store))) (arguments - `(;; FIXME: Tests pass but then the check phase crashes - #:tests? #f)) + `(#:test-asd-file "cl-online-learning-test.asd" + #:asd-systems '("cl-online-learning-test" + "cl-online-learning"))) + (home-page "https://github.com/masatoi/cl-online-learning") (synopsis "Online Machine Learning for Common Lisp") (description "This library contains a collection of machine learning algorithms for online linear classification written in Common Lisp.") - (home-page "https://github.com/masatoi/cl-online-learning") (license license:expat)))) (define-public cl-online-learning @@ -10319,6 +10525,121 @@ online linear classification written in Common Lisp.") (define-public ecl-cl-online-learning (sbcl-package->ecl-package sbcl-cl-online-learning)) +(define-public sbcl-cl-mpg123 + (let ((commit "5f042c839d2ea4a2ff2a7b60c839d8633d64161d") + (revision "1")) + (package + (name "sbcl-cl-mpg123") + (version (git-version "1.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/Shirakumo/cl-mpg123") + (commit commit))) + (file-name (git-file-name "cl-mpg123" version)) + (sha256 + (base32 "1hl721xaczxck008ax2y3jpkm509ry1sg3lklh2k76764m3ndrjf")) + (modules '((guix build utils))) + (snippet + '(begin + ;; Remove bundled pre-compiled libraries. + (delete-file-recursively "static") + #t)))) + (build-system asdf-build-system/sbcl) + (arguments + `(#:asd-files '("cl-mpg123.asd" "cl-mpg123-example.asd") + #:asd-systems '("cl-mpg123" "cl-mpg123-example") + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-paths + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "low-level.lisp" + (("libmpg123.so" all) + (string-append (assoc-ref inputs "libmpg123") + "/lib/" all)))))))) + (inputs + `(("cffi" ,sbcl-cffi) + ("cl-out123" ,sbcl-cl-out123) + ("documentation-utils" ,sbcl-documentation-utils) + ("libmpg123" ,mpg123) + ("trivial-features" ,sbcl-trivial-features) + ("trivial-garbage" ,sbcl-trivial-garbage) + ("verbose" ,sbcl-verbose))) + (home-page "https://shirakumo.github.io/cl-mpg123/") + (synopsis "Common Lisp bindings to libmpg123") + (description + "This is a bindings and wrapper library to @code{libmpg123} allowing for +convenient, extensive, and fast decoding of MPEG1/2/3 (most prominently mp3) +files.") + (license license:zlib)))) + +(define-public ecl-cl-mpg123 + (sbcl-package->ecl-package sbcl-cl-mpg123)) + +(define-public cl-mpg123 + (sbcl-package->cl-source-package sbcl-cl-mpg123)) + +(define-public sbcl-cl-out123 + (let ((commit "6b58d3f8c2a28ad09059ac4c60fb3c781b9b421b") + (revision "1")) + (package + (name "sbcl-cl-out123") + (version (git-version "1.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/Shirakumo/cl-out123") + (commit commit))) + (file-name (git-file-name "cl-out123" version)) + (sha256 + (base32 "0mdwgfax6sq68wvdgjjp78i40ah7wqkpqnvaq8a1c509k7ghdgv1")) + (modules '((guix build utils))) + (snippet + '(begin + ;; Remove bundled pre-compiled libraries. + (delete-file-recursively "static") + #t)))) + (build-system asdf-build-system/sbcl) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-paths + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "low-level.lisp" + (("libout123.so" all) + (string-append (assoc-ref inputs "libout123") + "/lib/" all))))) + ;; NOTE: (Sharlatan-20210129T134529+0000): ECL package `ext' has no + ;; exported macro `without-interrupts' it's moved to `mp' package + ;; https://github.com/Shirakumo/cl-out123/issues/2 + ;; https://gitlab.com/embeddable-common-lisp/ecl/-/blob/develop/src/lsp/mp.lsp + (add-after 'unpack 'fix-ecl-package-name + (lambda _ + (substitute* "wrapper.lisp" + (("ext:without-interrupts.*") "mp:without-interrupts\n")) + #t))))) + (inputs + `(("bordeaux-threads" ,sbcl-bordeaux-threads) + ("cffi" ,sbcl-cffi) + ("documentation-utils" ,sbcl-documentation-utils) + ("libout123" ,mpg123) + ("trivial-features" ,sbcl-trivial-features) + ("trivial-garbage" ,sbcl-trivial-garbage))) + (home-page "https://shirakumo.github.io/cl-out123/") + (synopsis "Common Lisp bindings to libout123") + (description + "This is a bindings library to @code{libout123} which allows easy +cross-platform audio playback.") + (license license:zlib)))) + +(define-public ecl-cl-out123 + (sbcl-package->ecl-package sbcl-cl-out123)) + +(define-public cl-out123 + (sbcl-package->cl-source-package sbcl-cl-out123)) + (define-public sbcl-cl-random-forest (let ((commit "fedb36ce99bb6f4d7e3a7dd6d8b058f331308f91") (revision "1")) @@ -12069,9 +12390,8 @@ predictable cross-platform behavior and some utilities useful for versioning.") (sbcl-package->ecl-package sbcl-defpackage-plus)) (define-public sbcl-deploy - ;; tagged branch is outdated - (let ((revision "1") - (commit "59fd49719ef651a8fc11750bcfb337f132cff75f")) + (let ((commit "9b20e64fe924b9e31832304d87a3a72c383dc6d8") + (revision "2")) (package (name "sbcl-deploy") (version (git-version "1.0.0" revision commit)) @@ -12081,15 +12401,21 @@ predictable cross-platform behavior and some utilities useful for versioning.") (uri (git-reference (url "https://github.com/Shinmera/deploy") (commit commit))) - (file-name (git-file-name name version)) + (file-name (git-file-name "deploy" version)) (sha256 - (base32 "1vl2116z4kw2pd3qd3n6mmg8g0mnwxr9dgddk86g7j1bis1z8k9a")))) + (base32 "07pfkibaridihg8lbq2czwa4iqifqk24n6rx7bfnv7i49p1ppja1")))) (build-system asdf-build-system/sbcl) + (arguments + `(#:test-asd-file "deploy-test.asd" + #:asd-files '("deploy.asd" + "deploy-test.asd"))) + (native-inputs + `(("cl-mpg123" ,sbcl-cl-mpg123) + ("cl-out123" ,sbcl-cl-out123))) (inputs `(("cffi" ,sbcl-cffi) - ("documentation-utils" ,sbcl-documentation-utils))) - (arguments - '(#:asd-files '("deploy.asd"))) + ("documentation-utils" ,sbcl-documentation-utils) + ("trivial-features" ,sbcl-trivial-features))) (home-page "https://shinmera.github.io/deploy/") (synopsis "Deployment tools for standalone Common Lisp application") (description |