gnu: Properly move lisp libraries to lisp-xyz, uglify-js to javascript and stumpwm...
[jackhill/guix/guix.git] / gnu / packages / lisp-xyz.scm
CommitLineData
ac1ee30f
PN
1;;; GNU Guix --- Functional package management for GNU
2;;; Copyright © 2014 John Darrington <jmd@gnu.org>
3;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
4;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
5;;; Copyright © 2016 Federico Beffa <beffa@fbengineering.ch>
6;;; Copyright © 2016, 2017 ng0 <ng0@n0.is>
7;;; Copyright © 2016, 2017 Andy Patterson <ajpatter@uwaterloo.ca>
8;;; Copyright © 2017, 2019 Ricardo Wurmus <rekado@elephly.net>
9;;; Copyright © 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
10;;; Copyright © 2017, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
11;;; Copyright © 2018 Benjamin Slade <slade@jnanam.net>
12;;; Copyright © 2018 Alex Vong <alexvong1995@gmail.com>
13;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz>
14;;; Copyright © 2018, 2019 Pierre Langlois <pierre.langlois@gmx.com>
15;;; Copyright © 2019 Katherine Cox-Buday <cox.katherine.e@gmail.com>
16;;; Copyright © 2019 Jesse Gildersleve <jessejohngildersleve@protonmail.com>
17;;; Copyright © 2019 Guillaume Le Vaillant <glv@posteo.net>
18;;;
19;;; This file is part of GNU Guix.
20;;;
21;;; GNU Guix is free software; you can redistribute it and/or modify it
22;;; under the terms of the GNU General Public License as published by
23;;; the Free Software Foundation; either version 3 of the License, or (at
24;;; your option) any later version.
25;;;
26;;; GNU Guix is distributed in the hope that it will be useful, but
27;;; WITHOUT ANY WARRANTY; without even the implied warranty of
28;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
29;;; GNU General Public License for more details.
30;;;
31;;; You should have received a copy of the GNU General Public License
32;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
33
34;;; This file only contains Common Lisp libraries.
35;;; Common Lisp compilers and tooling go to lisp.scm.
36;;; Common Lisp applications should go to the most appropriate file,
37;;; e.g. StumpWM is in wm.scm.
38
39(define-module (gnu packages lisp-xyz)
40 #:use-module (gnu packages)
41 #:use-module ((guix licenses) #:prefix license:)
42 #:use-module (guix packages)
43 #:use-module (guix download)
44 #:use-module (guix git-download)
45 #:use-module (guix hg-download)
46 #:use-module (guix utils)
47 #:use-module (guix build-system asdf)
48 #:use-module (guix build-system trivial)
49 #:use-module (gnu packages c)
50 #:use-module (gnu packages compression)
51 #:use-module (gnu packages glib)
52 #:use-module (gnu packages gtk)
53 #:use-module (gnu packages libffi)
54 #:use-module (gnu packages lisp)
55 #:use-module (gnu packages pkg-config)
56 #:use-module (gnu packages python)
57 #:use-module (gnu packages python-xyz)
58 #:use-module (gnu packages sqlite)
59 #:use-module (gnu packages tls)
60 #:use-module (gnu packages webkit)
61 #:use-module (gnu packages xdisorg)
62 #:use-module (ice-9 match)
63 #:use-module (srfi srfi-19))
64
65(define-public sbcl-alexandria
66 (let ((revision "1")
67 (commit "3b849bc0116ea70f215ee6b2fbf354e862aaa9dd"))
68 (package
69 (name "sbcl-alexandria")
70 (version (git-version "1.0.0" revision commit))
71 (source
72 (origin
73 (method git-fetch)
74 (uri (git-reference
75 (url "https://gitlab.common-lisp.net/alexandria/alexandria.git")
76 (commit commit)))
77 (sha256
78 (base32
79 "04amwvx2vl691f0plcfbqqwxgib9zimih7jrn5zl7mbwvrxy022b"))
80 (file-name (git-file-name name version))))
81 (build-system asdf-build-system/sbcl)
82 (native-inputs
83 `(("rt" ,sbcl-rt)))
84 (synopsis "Collection of portable utilities for Common Lisp")
85 (description
86 "Alexandria is a collection of portable utilities. It does not contain
87conceptual extensions to Common Lisp. It is conservative in scope, and
88portable between implementations.")
89 (home-page "https://common-lisp.net/project/alexandria/")
90 (license license:public-domain))))
91
92(define-public cl-alexandria
93 (sbcl-package->cl-source-package sbcl-alexandria))
94
95(define-public ecl-alexandria
96 (sbcl-package->ecl-package sbcl-alexandria))
97
98(define-public sbcl-net.didierverna.asdf-flv
99 (package
100 (name "sbcl-net.didierverna.asdf-flv")
101 (version "2.1")
102 (source
103 (origin
104 (method git-fetch)
105 (uri (git-reference
106 (url "https://github.com/didierverna/asdf-flv")
107 (commit (string-append "version-" version))))
108 (file-name (git-file-name "asdf-flv" version))
109 (sha256
110 (base32 "1fi2y4baxan103jbg4idjddzihy03kwnj2mzbwrknw4d4x7xlgwj"))))
111 (build-system asdf-build-system/sbcl)
112 (synopsis "Common Lisp ASDF extension to provide support for file-local variables")
113 (description "ASDF-FLV provides support for file-local variables through
114ASDF. A file-local variable behaves like @code{*PACKAGE*} and
115@code{*READTABLE*} with respect to @code{LOAD} and @code{COMPILE-FILE}: a new
116dynamic binding is created before processing the file, so that any
117modification to the variable becomes essentially file-local.
118
119In order to make one or several variables file-local, use the macros
120@code{SET-FILE-LOCAL-VARIABLE(S)}.")
121 (home-page "https://www.lrde.epita.fr/~didier/software/lisp/misc.php#asdf-flv")
122 (license (license:non-copyleft
123 "https://www.gnu.org/prep/maintain/html_node/License-Notices-for-Other-Files.html"
124 "GNU All-Permissive License"))))
125
126(define-public cl-net.didierverna.asdf-flv
127 (sbcl-package->cl-source-package sbcl-net.didierverna.asdf-flv))
128
129(define-public ecl-net.didierverna.asdf-flv
130 (sbcl-package->ecl-package sbcl-net.didierverna.asdf-flv))
131
132(define-public sbcl-fiveam
133 (package
134 (name "sbcl-fiveam")
135 (version "1.4.1")
136 (source
137 (origin
138 (method git-fetch)
139 (uri (git-reference
140 (url "https://github.com/sionescu/fiveam.git")
141 (commit (string-append "v" version))))
142 (file-name (git-file-name "fiveam" version))
143 (sha256
144 (base32 "1q3d38pwafnwnw42clq0f8g5xw7pbzr287jl9jsqmb1vb0n1vrli"))))
145 (inputs
146 `(("alexandria" ,sbcl-alexandria)
147 ("net.didierverna.asdf-flv" ,sbcl-net.didierverna.asdf-flv)
148 ("trivial-backtrace" ,sbcl-trivial-backtrace)))
149 (build-system asdf-build-system/sbcl)
150 (synopsis "Common Lisp testing framework")
151 (description "FiveAM is a simple (as far as writing and running tests
152goes) regression testing framework. It has been designed with Common Lisp's
153interactive development model in mind.")
154 (home-page "https://common-lisp.net/project/fiveam/")
155 (license license:bsd-3)))
156
157(define-public cl-fiveam
158 (sbcl-package->cl-source-package sbcl-fiveam))
159
160(define-public ecl-fiveam
161 (sbcl-package->ecl-package sbcl-fiveam))
162
163(define-public sbcl-bordeaux-threads
164 (let ((commit "5dce49fbc829f4d136a734f5ef4f5d599660984f")
165 (revision "1"))
166 (package
167 (name "sbcl-bordeaux-threads")
168 (version (git-version "0.8.6" revision commit))
169 (source (origin
170 (method git-fetch)
171 (uri (git-reference
172 (url "https://github.com/sionescu/bordeaux-threads.git")
173 (commit commit)))
174 (sha256
175 (base32 "1gkh9rz7zw57n3110ikcf4835950wr4hgp8l79id5ai6nd86x7wv"))
176 (file-name
177 (git-file-name "bordeaux-threads" version))))
178 (inputs `(("alexandria" ,sbcl-alexandria)))
179 (native-inputs `(("fiveam" ,sbcl-fiveam)))
180 (build-system asdf-build-system/sbcl)
181 (synopsis "Portable shared-state concurrency library for Common Lisp")
182 (description "BORDEAUX-THREADS is a proposed standard for a minimal
183MP/Threading interface. It is similar to the CLIM-SYS threading and lock
184support.")
185 (home-page "https://common-lisp.net/project/bordeaux-threads/")
186 (license license:x11))))
187
188(define-public cl-bordeaux-threads
189 (sbcl-package->cl-source-package sbcl-bordeaux-threads))
190
191(define-public ecl-bordeaux-threads
192 (sbcl-package->ecl-package sbcl-bordeaux-threads))
193
194(define-public sbcl-trivial-gray-streams
195 (let ((revision "1")
196 (commit "0483ade330508b4b2edeabdb47d16ec9437ee1cb"))
197 (package
198 (name "sbcl-trivial-gray-streams")
199 (version (string-append "0.0.0-" revision "." (string-take commit 7)))
200 (source
201 (origin
202 (method git-fetch)
203 (uri
204 (git-reference
205 (url "https://github.com/trivial-gray-streams/trivial-gray-streams.git")
206 (commit commit)))
207 (sha256
208 (base32 "0m3rpf2x0zmdk3nf1qfa01j6a55vj7gkwhyw78qslcgbjlgh8p4d"))
209 (file-name
210 (string-append "trivial-gray-streams-" version "-checkout"))))
211 (build-system asdf-build-system/sbcl)
212 (synopsis "Compatibility layer for Gray streams implementations")
213 (description "Gray streams is an interface proposed for inclusion with
214ANSI CL by David N. Gray. The proposal did not make it into ANSI CL, but most
215popular CL implementations implement it. This package provides an extremely
216thin compatibility layer for gray streams.")
217 (home-page "http://www.cliki.net/trivial-gray-streams")
218 (license license:x11))))
219
220(define-public cl-trivial-gray-streams
221 (sbcl-package->cl-source-package sbcl-trivial-gray-streams))
222
223(define-public ecl-trivial-gray-streams
224 (sbcl-package->ecl-package sbcl-trivial-gray-streams))
225
226(define-public sbcl-fiasco
227 (let ((commit "d62f7558b21addc89f87e306f65d7f760632655f")
228 (revision "1"))
229 (package
230 (name "sbcl-fiasco")
231 (version (git-version "0.0.1" revision commit))
232 (source
233 (origin
234 (method git-fetch)
235 (uri (git-reference
236 (url "https://github.com/joaotavora/fiasco.git")
237 (commit commit)))
238 (file-name (git-file-name "fiasco" version))
239 (sha256
240 (base32
241 "1zwxs3d6iswayavcmb49z2892xhym7n556d8dnmvalc32pm9bkjh"))))
242 (build-system asdf-build-system/sbcl)
243 (inputs
244 `(("alexandria" ,sbcl-alexandria)
245 ("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
246 (synopsis "Simple and powerful test framework for Common Lisp")
247 (description "A Common Lisp test framework that treasures your failures,
248logical continuation of Stefil. It focuses on interactive debugging.")
249 (home-page "https://github.com/joaotavora/fiasco")
250 ;; LICENCE specifies this is public-domain unless the legislation
251 ;; doesn't allow or recognize it. In that case it falls back to a
252 ;; permissive licence.
253 (license (list license:public-domain
254 (license:x11-style "file://LICENCE"))))))
255
256(define-public cl-fiasco
257 (sbcl-package->cl-source-package sbcl-fiasco))
258
259(define-public ecl-fiasco
260 (sbcl-package->ecl-package sbcl-fiasco))
261
262(define-public sbcl-flexi-streams
263 (package
264 (name "sbcl-flexi-streams")
265 (version "1.0.16")
266 (source
267 (origin
268 (method git-fetch)
269 (uri (git-reference
270 (url "https://github.com/edicl/flexi-streams.git")
271 (commit (string-append "v" version))))
272 (file-name (git-file-name "flexi-streams" version))
273 (sha256
274 (base32 "0gvykjlmja060zqq6nn6aqxlshh6r6ijahmmgf20q0d839rwpgxc"))))
275 (build-system asdf-build-system/sbcl)
276 (arguments
277 `(#:phases
278 (modify-phases %standard-phases
279 (add-after 'unpack 'make-git-checkout-writable
280 (lambda _
281 (for-each make-file-writable (find-files "."))
282 #t)))))
283 (inputs `(("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
284 (synopsis "Implementation of virtual bivalent streams for Common Lisp")
285 (description "Flexi-streams is an implementation of \"virtual\" bivalent
286streams that can be layered atop real binary or bivalent streams and that can
287be used to read and write character data in various single- or multi-octet
288encodings which can be changed on the fly. It also supplies in-memory binary
289streams which are similar to string streams.")
290 (home-page "http://weitz.de/flexi-streams/")
291 (license license:bsd-3)))
292
293(define-public cl-flexi-streams
294 (sbcl-package->cl-source-package sbcl-flexi-streams))
295
296(define-public ecl-flexi-streams
297 (sbcl-package->ecl-package sbcl-flexi-streams))
298
299(define-public sbcl-cl-ppcre
300 (package
301 (name "sbcl-cl-ppcre")
302 (version "2.0.11")
303 (source
304 (origin
305 (method git-fetch)
306 (uri (git-reference
307 (url "https://github.com/edicl/cl-ppcre.git")
308 (commit (string-append "v" version))))
309 (file-name (git-file-name "cl-ppcre" version))
310 (sha256
311 (base32 "0q3iany07vgqm144lw6pj0af2d3vsikpbkwcxr30fci3kzsq4f49"))))
312 (build-system asdf-build-system/sbcl)
313 (native-inputs `(("flexi-streams" ,sbcl-flexi-streams)))
314 (synopsis "Portable regular expression library for Common Lisp")
315 (description "CL-PPCRE is a portable regular expression library for Common
316Lisp, which is compatible with perl. It is pretty fast, thread-safe, and
317compatible with ANSI-compliant Common Lisp implementations.")
318 (home-page "http://weitz.de/cl-ppcre/")
319 (license license:bsd-2)))
320
321(define-public cl-ppcre
322 (sbcl-package->cl-source-package sbcl-cl-ppcre))
323
324(define-public ecl-cl-ppcre
325 (sbcl-package->ecl-package sbcl-cl-ppcre))
326
327(define sbcl-cl-unicode-base
328 (let ((revision "1")
329 (commit "9fcd06fba1ddc9e66aed2f2d6c32dc9b764f03ea"))
330 (package
331 (name "sbcl-cl-unicode-base")
332 (version (string-append "0.1.5-" revision "." (string-take commit 7)))
333 (source (origin
334 (method git-fetch)
335 (uri (git-reference
336 (url "https://github.com/edicl/cl-unicode.git")
337 (commit commit)))
338 (file-name (string-append "cl-unicode-" version "-checkout"))
339 (sha256
340 (base32
341 "1jicprb5b3bv57dy1kg03572gxkcaqdjhak00426s76g0plmx5ki"))))
342 (build-system asdf-build-system/sbcl)
343 (arguments
344 '(#:asd-file "cl-unicode.asd"
345 #:asd-system-name "cl-unicode/base"))
346 (inputs
347 `(("cl-ppcre" ,sbcl-cl-ppcre)))
348 (home-page "http://weitz.de/cl-unicode/")
349 (synopsis "Portable Unicode library for Common Lisp")
350 (description "CL-UNICODE is a portable Unicode library Common Lisp, which
351is compatible with perl. It is pretty fast, thread-safe, and compatible with
352ANSI-compliant Common Lisp implementations.")
353 (license license:bsd-2))))
354
355(define-public sbcl-cl-unicode
356 (package
357 (inherit sbcl-cl-unicode-base)
358 (name "sbcl-cl-unicode")
359 (inputs
360 `(("cl-unicode/base" ,sbcl-cl-unicode-base)
361 ,@(package-inputs sbcl-cl-unicode-base)))
362 (native-inputs
363 `(("flexi-streams" ,sbcl-flexi-streams)))
364 (arguments '())))
365
366(define-public ecl-cl-unicode
367 (sbcl-package->ecl-package sbcl-cl-unicode))
368
369(define-public cl-unicode
370 (sbcl-package->cl-source-package sbcl-cl-unicode))
371
372(define-public sbcl-clx
373 (package
374 (name "sbcl-clx")
375 (version "0.7.5")
376 (source
377 (origin
378 (method git-fetch)
379 (uri
380 (git-reference
381 (url "https://github.com/sharplispers/clx.git")
382 (commit version)))
383 (sha256
384 (base32
385 "1vi67z9hpj5rr4xcmfbfwzmlcc0ah7hzhrmfid6lqdkva238v2wf"))
386 (file-name (string-append "clx-" version))))
387 (build-system asdf-build-system/sbcl)
388 (native-inputs
389 `(("fiasco" ,sbcl-fiasco)))
390 (home-page "http://www.cliki.net/portable-clx")
391 (synopsis "X11 client library for Common Lisp")
392 (description "CLX is an X11 client library for Common Lisp. The code was
393originally taken from a CMUCL distribution, was modified somewhat in order to
394make it compile and run under SBCL, then a selection of patches were added
395from other CLXes around the net.")
396 (license license:x11)))
397
398(define-public cl-clx
399 (sbcl-package->cl-source-package sbcl-clx))
400
401(define-public ecl-clx
402 (sbcl-package->ecl-package sbcl-clx))
403
404(define-public sbcl-cl-ppcre-unicode
405 (package (inherit sbcl-cl-ppcre)
406 (name "sbcl-cl-ppcre-unicode")
407 (arguments
408 `(#:tests? #f ; tests fail with "Component :CL-PPCRE-TEST not found"
409 #:asd-file "cl-ppcre-unicode.asd"))
410 (inputs
411 `(("sbcl-cl-ppcre" ,sbcl-cl-ppcre)
412 ("sbcl-cl-unicode" ,sbcl-cl-unicode)))))
413
414;; The slynk that users expect to install includes all of slynk's contrib
415;; modules. Therefore, we build the base module and all contribs first; then
416;; we expose the union of these as `sbcl-slynk'. The following variable
417;; describes the base module.
418(define sbcl-slynk-boot0
419 (let ((revision "2")
420 (commit "cbf84c36c4eca8b032e3fd16177a7bc02df3ec4c"))
421 (package
422 (name "sbcl-slynk-boot0")
423 (version (string-append "1.0.0-beta-" revision "." (string-take commit 7)))
424 (source
425 (origin
426 (method git-fetch)
427 (uri
428 (git-reference
429 (url "https://github.com/joaotavora/sly.git")
430 (commit commit)))
431 (sha256
432 (base32 "13dyhsravn591p7g6is01mp2ynzjnnj7pwgi57r6xqmd4611y9vh"))
433 (file-name (string-append "slynk-" version "-checkout"))
434 (modules '((guix build utils)
435 (ice-9 ftw)))
436 (snippet
437 '(begin
438 ;; Move the contribs into the main source directory for easier
439 ;; access
440 (substitute* "slynk/slynk.asd"
441 (("\\.\\./contrib")
442 "contrib")
443 (("\\(defsystem :slynk/util")
444 "(defsystem :slynk/util :depends-on (:slynk)")
445 ((":depends-on \\(:slynk :slynk/util\\)")
446 ":depends-on (:slynk :slynk-util)"))
447 (substitute* "contrib/slynk-trace-dialog.lisp"
448 (("\\(slynk::reset-inspector\\)") ; Causes problems on load
449 "nil"))
450 (substitute* "contrib/slynk-profiler.lisp"
451 (("slynk:to-line")
452 "slynk-pprint-to-line"))
453 (substitute* "contrib/slynk-fancy-inspector.lisp"
454 (("slynk/util") "slynk-util")
455 ((":compile-toplevel :load-toplevel") ""))
456 (rename-file "contrib" "slynk/contrib")
457 ;; Move slynk's contents into the base directory for easier
458 ;; access
459 (for-each (lambda (file)
460 (unless (string-prefix? "." file)
461 (rename-file (string-append "slynk/" file)
462 (string-append "./" (basename file)))))
463 (scandir "slynk"))
464 #t))))
465 (build-system asdf-build-system/sbcl)
466 (arguments
467 `(#:tests? #f ; No test suite
468 #:asd-system-name "slynk"))
469 (synopsis "Common Lisp IDE for Emacs")
470 (description "SLY is a fork of SLIME, an IDE backend for Common Lisp.
471It also features a completely redesigned REPL based on Emacs's own
472full-featured comint.el, live code annotations, and a consistent interactive
473button interface. Everything can be copied to the REPL. One can create
474multiple inspectors with independent history.")
475 (home-page "https://github.com/joaotavora/sly")
476 (license license:public-domain)
477 (properties `((cl-source-variant . ,(delay cl-slynk)))))))
478
479(define-public cl-slynk
480 (package
481 (inherit (sbcl-package->cl-source-package sbcl-slynk-boot0))
482 (name "cl-slynk")))
483
484(define ecl-slynk-boot0
485 (sbcl-package->ecl-package sbcl-slynk-boot0))
486
487(define sbcl-slynk-arglists
488 (package
489 (inherit sbcl-slynk-boot0)
490 (name "sbcl-slynk-arglists")
491 (inputs `(("slynk" ,sbcl-slynk-boot0)))
492 (arguments
493 (substitute-keyword-arguments (package-arguments sbcl-slynk-boot0)
494 ((#:asd-file _ "") "slynk.asd")
495 ((#:asd-system-name _ #f) "slynk/arglists")))))
496
497(define ecl-slynk-arglists
498 (sbcl-package->ecl-package sbcl-slynk-arglists))
499
500(define sbcl-slynk-util
501 (package
502 (inherit sbcl-slynk-boot0)
503 (name "sbcl-slynk-util")
504 (inputs `(("slynk" ,sbcl-slynk-boot0)))
505 (arguments
506 (substitute-keyword-arguments (package-arguments sbcl-slynk-boot0)
507 ((#:asd-file _ "") "slynk.asd")
508 ((#:asd-system-name _ #f) "slynk/util")))))
509
510(define ecl-slynk-util
511 (sbcl-package->ecl-package sbcl-slynk-util))
512
513(define sbcl-slynk-fancy-inspector
514 (package
515 (inherit sbcl-slynk-arglists)
516 (name "sbcl-slynk-fancy-inspector")
517 (inputs `(("slynk-util" ,sbcl-slynk-util)
518 ,@(package-inputs sbcl-slynk-arglists)))
519 (arguments
520 (substitute-keyword-arguments (package-arguments sbcl-slynk-arglists)
521 ((#:asd-system-name _ #f) "slynk/fancy-inspector")))))
522
523(define ecl-slynk-fancy-inspector
524 (sbcl-package->ecl-package sbcl-slynk-fancy-inspector))
525
526(define sbcl-slynk-package-fu
527 (package
528 (inherit sbcl-slynk-arglists)
529 (name "sbcl-slynk-package-fu")
530 (arguments
531 (substitute-keyword-arguments (package-arguments sbcl-slynk-arglists)
532 ((#:asd-system-name _ #f) "slynk/package-fu")))))
533
534(define ecl-slynk-package-fu
535 (sbcl-package->ecl-package sbcl-slynk-package-fu))
536
537(define sbcl-slynk-mrepl
538 (package
539 (inherit sbcl-slynk-fancy-inspector)
540 (name "sbcl-slynk-mrepl")
541 (arguments
542 (substitute-keyword-arguments (package-arguments sbcl-slynk-arglists)
543 ((#:asd-system-name _ #f) "slynk/mrepl")))))
544
545(define ecl-slynk-mrepl
546 (sbcl-package->ecl-package sbcl-slynk-mrepl))
547
548(define sbcl-slynk-trace-dialog
549 (package
550 (inherit sbcl-slynk-arglists)
551 (name "sbcl-slynk-trace-dialog")
552 (arguments
553 (substitute-keyword-arguments (package-arguments sbcl-slynk-arglists)
554 ((#:asd-system-name _ #f) "slynk/trace-dialog")))))
555
556(define ecl-slynk-trace-dialog
557 (sbcl-package->ecl-package sbcl-slynk-trace-dialog))
558
559(define sbcl-slynk-profiler
560 (package
561 (inherit sbcl-slynk-arglists)
562 (name "sbcl-slynk-profiler")
563 (arguments
564 (substitute-keyword-arguments (package-arguments sbcl-slynk-arglists)
565 ((#:asd-system-name _ #f) "slynk/profiler")))))
566
567(define ecl-slynk-profiler
568 (sbcl-package->ecl-package sbcl-slynk-profiler))
569
570(define sbcl-slynk-stickers
571 (package
572 (inherit sbcl-slynk-arglists)
573 (name "sbcl-slynk-stickers")
574 (arguments
575 (substitute-keyword-arguments (package-arguments sbcl-slynk-arglists)
576 ((#:asd-system-name _ #f) "slynk/stickers")))))
577
578(define ecl-slynk-stickers
579 (sbcl-package->ecl-package sbcl-slynk-stickers))
580
581(define sbcl-slynk-indentation
582 (package
583 (inherit sbcl-slynk-arglists)
584 (name "sbcl-slynk-indentation")
585 (arguments
586 (substitute-keyword-arguments (package-arguments sbcl-slynk-arglists)
587 ((#:asd-system-name _ #f) "slynk/indentation")))))
588
589(define ecl-slynk-indentation
590 (sbcl-package->ecl-package sbcl-slynk-indentation))
591
592(define sbcl-slynk-retro
593 (package
594 (inherit sbcl-slynk-arglists)
595 (name "sbcl-slynk-retro")
596 (arguments
597 (substitute-keyword-arguments (package-arguments sbcl-slynk-arglists)
598 ((#:asd-system-name _ #f) "slynk/retro")))))
599
600(define ecl-slynk-retro
601 (sbcl-package->ecl-package sbcl-slynk-retro))
602
603(define slynk-systems
604 '("slynk"
605 "slynk-util"
606 "slynk-arglists"
607 "slynk-fancy-inspector"
608 "slynk-package-fu"
609 "slynk-mrepl"
610 "slynk-profiler"
611 "slynk-trace-dialog"
612 "slynk-stickers"
613 "slynk-indentation"
614 "slynk-retro"))
615
616(define-public sbcl-slynk
617 (package
618 (inherit sbcl-slynk-boot0)
619 (name "sbcl-slynk")
620 (inputs
621 `(("slynk" ,sbcl-slynk-boot0)
622 ("slynk-util" ,sbcl-slynk-util)
623 ("slynk-arglists" ,sbcl-slynk-arglists)
624 ("slynk-fancy-inspector" ,sbcl-slynk-fancy-inspector)
625 ("slynk-package-fu" ,sbcl-slynk-package-fu)
626 ("slynk-mrepl" ,sbcl-slynk-mrepl)
627 ("slynk-profiler" ,sbcl-slynk-profiler)
628 ("slynk-trace-dialog" ,sbcl-slynk-trace-dialog)
629 ("slynk-stickers" ,sbcl-slynk-stickers)
630 ("slynk-indentation" ,sbcl-slynk-indentation)
631 ("slynk-retro" ,sbcl-slynk-retro)))
632 (native-inputs `(("sbcl" ,sbcl)))
633 (build-system trivial-build-system)
634 (source #f)
635 (outputs '("out" "image"))
636 (arguments
637 `(#:modules ((guix build union)
638 (guix build utils)
639 (guix build lisp-utils))
640 #:builder
641 (begin
642 (use-modules (ice-9 match)
643 (srfi srfi-1)
644 (guix build union)
645 (guix build lisp-utils))
646
647 (union-build
648 (assoc-ref %outputs "out")
649 (filter-map
650 (match-lambda
651 ((name . path)
652 (if (string-prefix? "slynk" name) path #f)))
653 %build-inputs))
654
655 (prepend-to-source-registry
656 (string-append (assoc-ref %outputs "out") "//"))
657
658 (parameterize ((%lisp-type "sbcl")
659 (%lisp (string-append (assoc-ref %build-inputs "sbcl")
660 "/bin/sbcl")))
661 (build-image (string-append
662 (assoc-ref %outputs "image")
663 "/bin/slynk")
664 %outputs
665 #:dependencies ',slynk-systems))
666 #t)))))
667
668(define-public ecl-slynk
669 (package
670 (inherit sbcl-slynk)
671 (name "ecl-slynk")
672 (inputs
673 (map (match-lambda
674 ((name pkg . _)
675 (list name (sbcl-package->ecl-package pkg))))
676 (package-inputs sbcl-slynk)))
677 (native-inputs '())
678 (outputs '("out"))
679 (arguments
680 '(#:modules ((guix build union))
681 #:builder
682 (begin
683 (use-modules (ice-9 match)
684 (guix build union))
685 (match %build-inputs
686 (((names . paths) ...)
687 (union-build (assoc-ref %outputs "out")
688 paths)
689 #t)))))))
690
691(define-public sbcl-parse-js
692 (let ((commit "fbadc6029bec7039602abfc06c73bb52970998f6")
693 (revision "1"))
694 (package
695 (name "sbcl-parse-js")
696 (version (string-append "0.0.0-" revision "." (string-take commit 9)))
697 (source
698 (origin
699 (method git-fetch)
700 (uri (git-reference
701 (url "http://marijn.haverbeke.nl/git/parse-js")
702 (commit commit)))
703 (file-name (string-append name "-" commit "-checkout"))
704 (sha256
705 (base32
706 "1wddrnr5kiya5s3gp4cdq6crbfy9fqcz7fr44p81502sj3bvdv39"))))
707 (build-system asdf-build-system/sbcl)
708 (home-page "http://marijnhaverbeke.nl/parse-js/")
709 (synopsis "Parse JavaScript")
710 (description "Parse-js is a Common Lisp package for parsing
711JavaScript (ECMAScript 3). It has basic support for ECMAScript 5.")
712 (license license:zlib))))
713
714(define-public cl-parse-js
715 (sbcl-package->cl-source-package sbcl-parse-js))
716
717(define-public sbcl-parse-number
718 (package
719 (name "sbcl-parse-number")
720 (version "1.7")
721 (source
722 (origin
723 (method git-fetch)
724 (uri (git-reference
725 (url "https://github.com/sharplispers/parse-number/")
726 (commit (string-append "v" version))))
727 (file-name (git-file-name name version))
728 (sha256
729 (base32
730 "0sk06ib1bhqv9y39vwnnw44vmbc4b0kvqm37xxmkxd4dwchq82d7"))))
731 (build-system asdf-build-system/sbcl)
732 (home-page "http://www.cliki.net/PARSE-NUMBER")
733 (synopsis "Parse numbers")
734 (description "@code{parse-number} is a library of functions for parsing
735strings into one of the standard Common Lisp number types without using the
736reader. @code{parse-number} accepts an arbitrary string and attempts to parse
737the string into one of the standard Common Lisp number types, if possible, or
738else @code{parse-number} signals an error of type @code{invalid-number}.")
739 (license license:bsd-3)))
740
741(define-public cl-parse-number
742 (sbcl-package->cl-source-package sbcl-parse-number))
743
744(define-public sbcl-iterate
745 (package
746 (name "sbcl-iterate")
747 ;; The latest official release (1.4.3) fails to build so we have to take
748 ;; the current darcs tarball from quicklisp.
749 (version "20160825")
750 (source
751 (origin
752 (method url-fetch)
753 (uri (string-append "http://beta.quicklisp.org/archive/iterate/"
754 "2016-08-25/iterate-"
755 version "-darcs.tgz"))
756 (sha256
757 (base32
758 "0kvz16gnxnkdz0fy1x8y5yr28nfm7i2qpvix7mgwccdpjmsb4pgm"))))
759 (build-system asdf-build-system/sbcl)
760 (native-inputs
761 `(("rt" ,sbcl-rt)))
762 (home-page "https://common-lisp.net/project/iterate/")
763 (synopsis "Iteration construct for Common Lisp")
764 (description "@code{iterate} is an iteration construct for Common Lisp.
765It is similar to the @code{CL:LOOP} macro, with these distinguishing marks:
766
767@itemize
768@item it is extensible,
769@item it helps editors like Emacs indent iterate forms by having a more
770 lisp-like syntax, and
771@item it isn't part of the ANSI standard for Common Lisp.
772@end itemize\n")
773 (license license:expat)))
774
775(define-public cl-iterate
776 (sbcl-package->cl-source-package sbcl-iterate))
777
778(define-public ecl-iterate
779 (sbcl-package->ecl-package sbcl-iterate))
780
781(define-public sbcl-cl-uglify-js
782 ;; There have been many bug fixes since the 2010 release.
783 (let ((commit "429c5e1d844e2f96b44db8fccc92d6e8e28afdd5")
784 (revision "1"))
785 (package
786 (name "sbcl-cl-uglify-js")
787 (version (string-append "0.1-" revision "." (string-take commit 9)))
788 (source
789 (origin
790 (method git-fetch)
791 (uri (git-reference
792 (url "https://github.com/mishoo/cl-uglify-js.git")
793 (commit commit)))
794 (file-name (git-file-name name version))
795 (sha256
796 (base32
797 "0k39y3c93jgxpr7gwz7w0d8yknn1fdnxrjhd03057lvk5w8js27a"))))
798 (build-system asdf-build-system/sbcl)
799 (inputs
800 `(("sbcl-parse-js" ,sbcl-parse-js)
801 ("sbcl-cl-ppcre" ,sbcl-cl-ppcre)
802 ("sbcl-cl-ppcre-unicode" ,sbcl-cl-ppcre-unicode)
803 ("sbcl-parse-number" ,sbcl-parse-number)
804 ("sbcl-iterate" ,sbcl-iterate)))
805 (home-page "https://github.com/mishoo/cl-uglify-js")
806 (synopsis "JavaScript compressor library for Common Lisp")
807 (description "This is a Common Lisp version of UglifyJS, a JavaScript
808compressor. It works on data produced by @code{parse-js} to generate a
809@dfn{minified} version of the code. Currently it can:
810
811@itemize
812@item reduce variable names (usually to single letters)
813@item join consecutive @code{var} statements
814@item resolve simple binary expressions
815@item group most consecutive statements using the @code{sequence} operator (comma)
816@item remove unnecessary blocks
817@item convert @code{IF} expressions in various ways that result in smaller code
818@item remove some unreachable code
819@end itemize\n")
820 (license license:zlib))))
821
822(define-public cl-uglify-js
823 (sbcl-package->cl-source-package sbcl-cl-uglify-js))
824
825(define-public sbcl-cl-strings
826 (let ((revision "1")
827 (commit "c5c5cbafbf3e6181d03c354d66e41a4f063f00ae"))
828 (package
829 (name "sbcl-cl-strings")
830 (version (git-version "0.0.0" revision commit))
831 (source
832 (origin
833 (method git-fetch)
834 (uri (git-reference
835 (url "https://github.com/diogoalexandrefranco/cl-strings")
836 (commit commit)))
837 (sha256
838 (base32
839 "00754mfaqallj480lwd346nkfb6ra8pa8xcxcylf4baqn604zlmv"))
840 (file-name (string-append "cl-strings-" version "-checkout"))))
841 (build-system asdf-build-system/sbcl)
842 (synopsis "Portable, dependency-free set of utilities to manipulate strings in Common Lisp")
843 (description
844 "@command{cl-strings} is a small, portable, dependency-free set of
845utilities that make it even easier to manipulate text in Common Lisp. It has
846100% test coverage and works at least on sbcl, ecl, ccl, abcl and clisp.")
847 (home-page "https://github.com/diogoalexandrefranco/cl-strings")
848 (license license:expat))))
849
850(define-public cl-strings
851 (sbcl-package->cl-source-package sbcl-cl-strings))
852
853(define-public ecl-cl-strings
854 (sbcl-package->ecl-package sbcl-cl-strings))
855
856(define-public sbcl-trivial-features
857 (package
858 (name "sbcl-trivial-features")
859 (version "0.8")
860 (source
861 (origin
862 (method git-fetch)
863 (uri (git-reference
864 (url "https://github.com/trivial-features/trivial-features.git")
865 (commit (string-append "v" version))))
866 (file-name (git-file-name "trivial-features" version))
867 (sha256
868 (base32 "0ccv7dqyrk55xga78i5vzlic7mdwp28in3g1a8fqhlk6626scsq9"))))
869 (build-system asdf-build-system/sbcl)
870 (arguments '(#:tests? #f))
871 (home-page "http://cliki.net/trivial-features")
872 (synopsis "Ensures consistency of @code{*FEATURES*} in Common Lisp")
873 (description "Trivial-features ensures that @code{*FEATURES*} is
874consistent across multiple Common Lisp implementations.")
875 (license license:expat)))
876
877(define-public cl-trivial-features
878 (sbcl-package->cl-source-package sbcl-trivial-features))
879
880(define-public ecl-trivial-features
881 (sbcl-package->ecl-package sbcl-trivial-features))
882
883(define-public sbcl-hu.dwim.asdf
884 (package
885 (name "sbcl-hu.dwim.asdf")
886 (version "20190521")
887 (source
888 (origin
889 (method url-fetch)
890 (uri (string-append "http://beta.quicklisp.org/archive/hu.dwim.asdf/"
891 "2019-05-21/hu.dwim.asdf-" version "-darcs.tgz"))
892 (sha256
893 (base32
894 "0rsbv71vyszy8w35yjwb5h6zcmknjq223hkzir79y72qdsc6sabn"))))
895 (build-system asdf-build-system/sbcl)
896 (home-page "https://hub.darcs.net/hu.dwim/hu.dwim.asdf")
897 (synopsis "Extensions to ASDF")
898 (description "Various ASDF extensions such as attached test and
899documentation system, explicit development support, etc.")
900 (license license:public-domain)))
901
902(define-public cl-hu.dwim.asdf
903 (sbcl-package->cl-source-package sbcl-hu.dwim.asdf))
904
905(define-public ecl-hu.dwim.asdf
906 (sbcl-package->ecl-package sbcl-hu.dwim.asdf))
907
908(define-public sbcl-hu.dwim.stefil
909 (let ((commit "ab6d1aa8995878a1b66d745dfd0ba021090bbcf9"))
910 (package
911 (name "sbcl-hu.dwim.stefil")
912 (version (git-version "0.0.0" "1" commit))
913 (source
914 (origin
915 (method git-fetch)
916 (uri
917 (git-reference
918 (url "https://gitlab.common-lisp.net/xcvb/hu.dwim.stefil.git")
919 (commit commit)))
920 (sha256
921 (base32 "1d8yccw65zj3zh46cbi3x6nmn1dwdb76s9d0av035077mvyirqqp"))
922 (file-name (git-file-name "hu.dwim.stefil" version))))
923 (build-system asdf-build-system/sbcl)
924 (native-inputs
925 `(("asdf:cl-hu.dwim.asdf" ,sbcl-hu.dwim.asdf)))
926 (inputs
927 `(("sbcl-alexandria" ,sbcl-alexandria)))
928 (home-page "https://hub.darcs.net/hu.dwim/hu.dwim.stefil")
929 (synopsis "Simple test framework")
930 (description "Stefil is a simple test framework for Common Lisp,
931with a focus on interactive development.")
932 (license license:public-domain))))
933
934(define-public cl-hu.dwim.stefil
935 (sbcl-package->cl-source-package sbcl-hu.dwim.stefil))
936
937(define-public ecl-hu.dwim.stefil
938 (sbcl-package->ecl-package sbcl-hu.dwim.stefil))
939
940(define-public sbcl-babel
941 (package
942 (name "sbcl-babel")
943 (version "0.5.0")
944 (source
945 (origin
946 (method git-fetch)
947 (uri (git-reference
948 (url "https://github.com/cl-babel/babel.git")
949 (commit (string-append "v" version))))
950 (file-name (git-file-name "babel" version))
951 (sha256
952 (base32 "139a8rn2gnhj082n8jg01gc8fyr63hkj57hgrnmb3d1r327yc77f"))))
953 (build-system asdf-build-system/sbcl)
954 (native-inputs
955 `(("tests:cl-hu.dwim.stefil" ,sbcl-hu.dwim.stefil)))
956 (inputs
957 `(("sbcl-alexandria" ,sbcl-alexandria)
958 ("sbcl-trivial-features" ,sbcl-trivial-features)))
959 (home-page "https://common-lisp.net/project/babel/")
960 (synopsis "Charset encoding and decoding library")
961 (description "Babel is a charset encoding and decoding library, not unlike
962GNU libiconv, but completely written in Common Lisp.")
963 (license license:expat)))
964
965(define-public cl-babel
966 (sbcl-package->cl-source-package sbcl-babel))
967
968(define-public ecl-babel
969 (sbcl-package->ecl-package sbcl-babel))
970
971(define-public sbcl-cl-yacc
972 (package
973 (name "sbcl-cl-yacc")
974 (version "0.3")
975 (source
976 (origin
977 (method git-fetch)
978 (uri (git-reference
979 (url "https://github.com/jech/cl-yacc")
980 (commit (string-append "cl-yacc-" version))))
981 (sha256
982 (base32
983 "16946pzf8vvadnyfayvj8rbh4zjzw90h0azz2qk1mxrvhh5wklib"))
984 (file-name (string-append "cl-yacc-" version "-checkout"))))
985 (build-system asdf-build-system/sbcl)
986 (arguments
987 `(#:asd-file "yacc.asd"
988 #:asd-system-name "yacc"))
989 (synopsis "LALR(1) parser generator for Common Lisp, similar in spirit to Yacc")
990 (description
991 "CL-Yacc is a LALR(1) parser generator for Common Lisp, similar in spirit
992to AT&T Yacc, Berkeley Yacc, GNU Bison, Zebu, lalr.cl or lalr.scm.
993
994CL-Yacc uses the algorithm due to Aho and Ullman, which is the one also used
995by AT&T Yacc, Berkeley Yacc and Zebu. It does not use the faster algorithm due
996to DeRemer and Pennello, which is used by Bison and lalr.scm (not lalr.cl).")
997 (home-page "https://www.irif.fr/~jch//software/cl-yacc/")
998 (license license:expat)))
999
1000(define-public cl-yacc
1001 (sbcl-package->cl-source-package sbcl-cl-yacc))
1002
1003(define-public ecl-cl-yacc
1004 (sbcl-package->ecl-package sbcl-cl-yacc))
1005
1006(define-public sbcl-jpl-util
1007 (let ((commit "0311ed374e19a49d43318064d729fe3abd9a3b62"))
1008 (package
1009 (name "sbcl-jpl-util")
1010 (version "20151005")
1011 (source
1012 (origin
1013 (method git-fetch)
1014 (uri (git-reference
1015 ;; Quicklisp uses this fork.
1016 (url "https://github.com/hawkir/cl-jpl-util")
1017 (commit commit)))
1018 (file-name
1019 (git-file-name "jpl-util" version))
1020 (sha256
1021 (base32
1022 "0nc0rk9n8grkg3045xsw34whmcmddn2sfrxki4268g7kpgz0d2yz"))))
1023 (build-system asdf-build-system/sbcl)
1024 (synopsis "Collection of Common Lisp utility functions and macros")
1025 (description
1026 "@command{cl-jpl-util} is a collection of Common Lisp utility functions
1027and macros, primarily for software projects written in CL by the author.")
1028 (home-page "https://www.thoughtcrime.us/software/cl-jpl-util/")
1029 (license license:isc))))
1030
1031(define-public cl-jpl-util
1032 (sbcl-package->cl-source-package sbcl-jpl-util))
1033
1034(define-public ecl-jpl-util
1035 (sbcl-package->ecl-package sbcl-jpl-util))
1036
1037(define-public sbcl-jpl-queues
1038 (package
1039 (name "sbcl-jpl-queues")
1040 (version "0.1")
1041 (source
1042 (origin
1043 (method url-fetch)
1044 (uri (string-append
1045 "http://www.thoughtcrime.us/software/jpl-queues/jpl-queues-"
1046 version
1047 ".tar.gz"))
1048 (sha256
1049 (base32
1050 "1wvvv7j117h9a42qaj1g4fh4mji28xqs7s60rn6d11gk9jl76h96"))))
1051 (build-system asdf-build-system/sbcl)
1052 (inputs
1053 `(("jpl-util" ,sbcl-jpl-util)
1054 ("bordeaux-threads" ,sbcl-bordeaux-threads)))
1055 (arguments
1056 ;; Tests seem to be broken.
1057 `(#:tests? #f))
1058 (synopsis "Common Lisp library implementing a few different kinds of queues")
1059 (description
1060 "A Common Lisp library implementing a few different kinds of queues:
1061
1062@itemize
1063@item Bounded and unbounded FIFO queues.
1064@item Lossy bounded FIFO queues that drop elements when full.
1065@item Unbounded random-order queues that use less memory than unbounded FIFO queues.
1066@end itemize
1067
1068Additionally, a synchronization wrapper is provided to make any queue
1069conforming to the @command{jpl-queues} API thread-safe for lightweight
1070multithreading applications. (See Calispel for a more sophisticated CL
1071multithreaded message-passing library with timeouts and alternation among
1072several blockable channels.)")
1073 (home-page "https://www.thoughtcrime.us/software/jpl-queues/")
1074 (license license:isc)))
1075
1076(define-public cl-jpl-queues
1077 (sbcl-package->cl-source-package sbcl-jpl-queues))
1078
1079(define-public ecl-jpl-queues
1080 (sbcl-package->ecl-package sbcl-jpl-queues))
1081
1082(define-public sbcl-eos
1083 (let ((commit "b0faca83781ead9a588661e37bd47f90362ccd94"))
1084 (package
1085 (name "sbcl-eos")
1086 (version (git-version "0.0.0" "1" commit))
1087 (source
1088 (origin
1089 (method git-fetch)
1090 (uri (git-reference
1091 (url "https://github.com/adlai/Eos")
1092 (commit commit)))
1093 (sha256
1094 (base32
1095 "1bq8cfg087iyxmxi1mwgx5cfgy3b8ydrf81xljcis8qbgb2vszph"))
1096 (file-name (git-file-name "eos" version))))
1097 (build-system asdf-build-system/sbcl)
1098 (synopsis "Unit Testing for Common Lisp")
1099 (description
1100 "Eos was a unit testing library for Common Lisp.
1101It began as a fork of FiveAM; however, FiveAM development has continued, while
1102that of Eos has not. Thus, Eos is now deprecated in favor of FiveAM.")
1103 (home-page "https://github.com/adlai/Eos")
1104 (license license:expat))))
1105
1106(define-public cl-eos
1107 (sbcl-package->cl-source-package sbcl-eos))
1108
1109(define-public ecl-eos
1110 (sbcl-package->ecl-package sbcl-eos))
1111
1112(define-public sbcl-esrap
1113 (let ((commit "133be8b05c2aae48696fe5b739eea2fa573fa48d"))
1114 (package
1115 (name "sbcl-esrap")
1116 (version (git-version "0.0.0" "1" commit))
1117 (source
1118 (origin
1119 (method git-fetch)
1120 (uri (git-reference
1121 (url "https://github.com/nikodemus/esrap")
1122 (commit commit)))
1123 (sha256
1124 (base32
1125 "02d5clihsdryhf7pix8c5di2571fdsffh75d40fkzhws90r5mksl"))
1126 (file-name (git-file-name "esrap" version))))
1127 (build-system asdf-build-system/sbcl)
1128 (native-inputs
1129 `(("eos" ,sbcl-eos))) ;For testing only.
1130 (inputs
1131 `(("alexandria" ,sbcl-alexandria)))
1132 (synopsis "Common Lisp packrat parser")
1133 (description
1134 "A packrat parser for Common Lisp.
1135In addition to regular Packrat / Parsing Grammar / TDPL features ESRAP supports:
1136
1137@itemize
1138@item dynamic redefinition of nonterminals
1139@item inline grammars
1140@item semantic predicates
1141@item introspective facilities (describing grammars, tracing, setting breaks)
1142@end itemize\n")
1143 (home-page "https://nikodemus.github.io/esrap/")
1144 (license license:expat))))
1145
1146(define-public cl-esrap
1147 (sbcl-package->cl-source-package sbcl-esrap))
1148
1149(define-public ecl-esrap
1150 (sbcl-package->ecl-package sbcl-esrap))
1151
1152(define-public sbcl-split-sequence
1153 (package
1154 (name "sbcl-split-sequence")
1155 (version "1.4.1")
1156 (source
1157 (origin
1158 (method git-fetch)
1159 (uri (git-reference
1160 (url "https://github.com/sharplispers/split-sequence")
1161 (commit (string-append "v" version))))
1162 (sha256
1163 (base32
1164 "0c3zp6b7fmmp93sfhq112ind4zkld49ycw68z409xpnz3gc0wpf0"))
1165 (file-name (git-file-name "split-sequence" version))))
1166 (build-system asdf-build-system/sbcl)
1167 (arguments
1168 ;; TODO: Tests seem to be broken.
1169 ;; https://github.com/sharplispers/split-sequence/issues/8
1170 `(#:tests? #f))
1171 (synopsis "Member of the Common Lisp Utilities family of programs")
1172 (description
1173 "Splits sequence into a list of subsequences delimited by objects
1174satisfying the test.")
1175 (home-page "https://cliki.net/split-sequence")
1176 (license license:expat)))
1177
1178(define-public cl-split-sequence
1179 (sbcl-package->cl-source-package sbcl-split-sequence))
1180
1181(define-public ecl-split-sequence
1182 (sbcl-package->ecl-package sbcl-split-sequence))
1183
1184(define-public sbcl-html-encode
1185 (package
1186 (name "sbcl-html-encode")
1187 (version "1.2")
1188 (source
1189 (origin
1190 (method url-fetch)
1191 (uri (string-append
1192 "http://beta.quicklisp.org/archive/html-encode/2010-10-06/html-encode-"
1193 version ".tgz"))
1194 (sha256
1195 (base32
1196 "06mf8wn95yf5swhmzk4vp0xr4ylfl33dgfknkabbkd8n6jns8gcf"))
1197 (file-name (string-append "colorize" version "-checkout"))))
1198 (build-system asdf-build-system/sbcl)
1199 (synopsis "Common Lisp library for encoding text in various web-savvy encodings")
1200 (description
1201 "A library for encoding text in various web-savvy encodings.")
1202 (home-page "http://quickdocs.org/html-encode/")
1203 (license license:expat)))
1204
1205(define-public cl-html-encode
1206 (sbcl-package->cl-source-package sbcl-html-encode))
1207
1208(define-public ecl-html-encode
1209 (sbcl-package->ecl-package sbcl-html-encode))
1210
1211(define-public sbcl-colorize
1212 (let ((commit "ea676b584e0899cec82f21a9e6871172fe3c0eb5"))
1213 (package
1214 (name "sbcl-colorize")
1215 (version (git-version "0.0.0" "1" commit))
1216 (source
1217 (origin
1218 (method git-fetch)
1219 (uri (git-reference
1220 (url "https://github.com/kingcons/colorize")
1221 (commit commit)))
1222 (sha256
1223 (base32
1224 "1pdg4kiaczmr3ivffhirp7m3lbr1q27rn7dhaay0vwghmi31zcw9"))
1225 (file-name (git-file-name "colorize" version))))
1226 (build-system asdf-build-system/sbcl)
1227 (inputs
1228 `(("alexandria" ,sbcl-alexandria)
1229 ("split-sequence" ,sbcl-split-sequence)
1230 ("html-encode" ,sbcl-html-encode)))
1231 (synopsis "Common Lisp for syntax highlighting")
1232 (description
1233 "@command{colorize} is a Lisp library for syntax highlighting
1234supporting the following languages: Common Lisp, Emacs Lisp, Scheme, Clojure,
1235C, C++, Java, Python, Erlang, Haskell, Objective-C, Diff, Webkit.")
1236 (home-page "https://github.com/kingcons/colorize")
1237 ;; TODO: Missing license?
1238 (license license:expat))))
1239
1240(define-public cl-colorize
1241 (sbcl-package->cl-source-package sbcl-colorize))
1242
1243(define-public ecl-colorize
1244 (sbcl-package->ecl-package sbcl-colorize))
1245
1246(define-public sbcl-3bmd
1247 (let ((commit "192ea13435b605a96ef607df51317056914cabbd"))
1248 (package
1249 (name "sbcl-3bmd")
1250 (version (git-version "0.0.0" "1" commit))
1251 (source
1252 (origin
1253 (method git-fetch)
1254 (uri (git-reference
1255 (url "https://github.com/3b/3bmd")
1256 (commit commit)))
1257 (sha256
1258 (base32
1259 "1rgv3gi7wf963ikmmpk132wgn0icddf226gq3bmcnk1fr3v9gf2f"))
1260 (file-name (git-file-name "3bmd" version))))
1261 (build-system asdf-build-system/sbcl)
1262 (arguments
1263 ;; FIXME: We need to specify the name because the build-system thinks
1264 ;; "3" is a version marker.
1265 `(#:asd-system-name "3bmd"))
1266 (inputs
1267 `(("esrap" ,sbcl-esrap)
1268 ("split-sequence" ,sbcl-split-sequence)))
1269 (synopsis "Markdown processor in Command Lisp using esrap parser")
1270 (description
1271 "Common Lisp Markdown -> HTML converter, using @command{esrap} for
1272parsing, and grammar based on @command{peg-markdown}.")
1273 (home-page "https://github.com/3b/3bmd")
1274 (license license:expat))))
1275
1276(define-public cl-3bmd
1277 (sbcl-package->cl-source-package sbcl-3bmd))
1278
1279(define-public ecl-3bmd
1280 (sbcl-package->ecl-package sbcl-3bmd))
1281
1282(define-public sbcl-3bmd-ext-code-blocks
1283 (let ((commit "192ea13435b605a96ef607df51317056914cabbd"))
1284 (package
1285 (inherit sbcl-3bmd)
1286 (name "sbcl-3bmd-ext-code-blocks")
1287 (arguments
1288 `(#:asd-system-name "3bmd-ext-code-blocks"
1289 #:asd-file "3bmd-ext-code-blocks.asd"))
1290 (inputs
1291 `(("3bmd" ,sbcl-3bmd)
1292 ("colorize" ,sbcl-colorize)))
1293 (synopsis "3bmd extension which adds support for GitHub-style fenced
1294code blocks")
1295 (description
1296 "3bmd extension which adds support for GitHub-style fenced code blocks,
1297with @command{colorize} support."))))
1298
1299(define-public cl-3bmd-ext-code-blocks
1300 (sbcl-package->cl-source-package sbcl-3bmd-ext-code-blocks))
1301
1302(define-public ecl-3bmd-ext-code-blocks
1303 (sbcl-package->ecl-package sbcl-3bmd-ext-code-blocks))
1304
1305(define-public sbcl-cl-fad
1306 (package
1307 (name "sbcl-cl-fad")
1308 (version "0.7.5")
1309 (source
1310 (origin
1311 (method git-fetch)
1312 (uri (git-reference
1313 (url "https://github.com/edicl/cl-fad/")
1314 (commit (string-append "v" version))))
1315 (sha256
1316 (base32
1317 "1l1qmk9z57q84bz5r04sxsksggsnd7dgkxlybzh9imz6ma7sm52m"))
1318 (file-name (string-append "cl-fad" version "-checkout"))))
1319 (build-system asdf-build-system/sbcl)
1320 (inputs
1321 `(("bordeaux-threads" ,sbcl-bordeaux-threads)))
1322 (synopsis "Portable pathname library for Common Lisp")
1323 (description
1324 "CL-FAD (for \"Files and Directories\") is a thin layer atop Common
1325Lisp's standard pathname functions. It is intended to provide some
1326unification between current CL implementations on Windows, OS X, Linux, and
1327Unix. Most of the code was written by Peter Seibel for his book Practical
1328Common Lisp.")
1329 (home-page "https://edicl.github.io/cl-fad/")
1330 (license license:bsd-2)))
1331
1332(define-public cl-fad
1333 (sbcl-package->cl-source-package sbcl-cl-fad))
1334
1335(define-public ecl-cl-fad
1336 (sbcl-package->ecl-package sbcl-cl-fad))
1337
1338(define-public sbcl-rt
1339 (package
1340 (name "sbcl-rt")
1341 (version "1990.12.19")
1342 (source
1343 (origin
1344 (method url-fetch)
1345 (uri (string-append "http://beta.quicklisp.org/archive/rt/2010-10-06/rt-"
1346 "20101006-git" ".tgz"))
1347 (sha256
1348 (base32
1349 "1jncar0xwkqk8yrc2dln389ivvgzs7ijdhhs3zpfyi5d21f0qa1v"))))
1350 (build-system asdf-build-system/sbcl)
1351 (synopsis "MIT Regression Tester")
1352 (description
1353 "RT provides a framework for writing regression test suites.")
1354 (home-page "https://github.com/sharplispers/nibbles")
1355 (license license:unlicense)))
1356
1357(define-public cl-rt
1358 (sbcl-package->cl-source-package sbcl-rt))
1359
1360(define-public ecl-rt
1361 (sbcl-package->ecl-package sbcl-rt))
1362
1363(define-public sbcl-nibbles
1364 (package
1365 (name "sbcl-nibbles")
1366 (version "0.14")
1367 (source
1368 (origin
1369 (method git-fetch)
1370 (uri (git-reference
1371 (url "https://github.com/sharplispers/nibbles/")
1372 (commit (string-append "v" version))))
1373 (sha256
1374 (base32
1375 "1v7qfgpvdr6nz7v63dj69d26dis0kff3rd8xamr1llfdvza2pm8f"))
1376 (file-name (git-file-name "nibbles" version))))
1377 (build-system asdf-build-system/sbcl)
1378 (native-inputs
1379 ;; Tests only.
1380 `(("rt" ,sbcl-rt)))
1381 (synopsis "Common Lisp library for accessing octet-addressed blocks of data")
1382 (description
1383 "When dealing with network protocols and file formats, it's common to
1384have to read or write 16-, 32-, or 64-bit datatypes in signed or unsigned
1385flavors. Common Lisp sort of supports this by specifying :element-type for
1386streams, but that facility is underspecified and there's nothing similar for
1387read/write from octet vectors. What most people wind up doing is rolling their
1388own small facility for their particular needs and calling it a day.
1389
1390This library attempts to be comprehensive and centralize such
1391facilities. Functions to read 16-, 32-, and 64-bit quantities from octet
1392vectors in signed or unsigned flavors are provided; these functions are also
1393SETFable. Since it's sometimes desirable to read/write directly from streams,
1394functions for doing so are also provided. On some implementations,
1395reading/writing IEEE singles/doubles (i.e. single-float and double-float) will
1396also be supported.")
1397 (home-page "https://github.com/sharplispers/nibbles")
1398 (license license:bsd-3)))
1399
1400(define-public cl-nibbles
1401 (sbcl-package->cl-source-package sbcl-nibbles))
1402
1403(define-public ecl-nibbles
1404 (sbcl-package->ecl-package sbcl-nibbles))
1405
1406(define-public sbcl-ironclad
1407 (package
1408 (name "sbcl-ironclad")
1409 (version "0.46")
1410 (source
1411 (origin
1412 (method git-fetch)
1413 (uri (git-reference
1414 (url "https://github.com/sharplispers/ironclad/")
1415 (commit (string-append "v" version))))
1416 (sha256
1417 (base32
1418 "1s391awi2lsl7m1dbjirgpkm4p9p8wd076pakgvsvpn1rrznisnd"))
1419 (file-name (git-file-name name version))))
1420 (build-system asdf-build-system/sbcl)
1421 (native-inputs
1422 ;; Tests only.
1423 `(("rt" ,sbcl-rt)))
1424 (inputs
1425 `(("bordeaux-threads" ,sbcl-bordeaux-threads)
1426 ("flexi-streams" ,sbcl-flexi-streams)
1427 ("nibbles" ,sbcl-nibbles)))
1428 (synopsis "Cryptographic toolkit written in Common Lisp")
1429 (description
1430 "Ironclad is a cryptography library written entirely in Common Lisp.
1431It includes support for several popular ciphers, digests, MACs and public key
1432cryptography algorithms. For several implementations that support Gray
1433streams, support is included for convenient stream wrappers.")
1434 (home-page "https://github.com/sharplispers/ironclad")
1435 (license license:bsd-3)))
1436
1437(define-public cl-ironclad
1438 (sbcl-package->cl-source-package sbcl-ironclad))
1439
1440(define-public ecl-ironclad
1441 (sbcl-package->ecl-package sbcl-ironclad))
1442
1443(define-public sbcl-named-readtables
1444 (let ((commit "4dfb89fa1af6b305b6492b8af042f5190c11e9fc")
1445 (revision "1"))
1446 (package
1447 (name "sbcl-named-readtables")
1448 (version (string-append "0.9-" revision "." (string-take commit 7)))
1449 (source
1450 (origin
1451 (method git-fetch)
1452 (uri (git-reference
1453 (url "https://github.com/melisgl/named-readtables.git")
1454 (commit commit)))
1455 (sha256
1456 (base32 "083kgh5462iqbb4px6kq8s7sggvpvkm36hx4qi9rnaw53b6ilqkk"))
1457 (file-name (git-file-name "named-readtables" version))))
1458 (build-system asdf-build-system/sbcl)
1459 (arguments
1460 ;; Tests seem to be broken.
1461 `(#:tests? #f))
1462 (home-page "https://github.com/melisgl/named-readtables/")
1463 (synopsis "Library that creates a namespace for named readtables")
1464 (description "Named readtables is a library that creates a namespace for
1465named readtables, which is akin to package namespacing in Common Lisp.")
1466 (license license:bsd-3))))
1467
1468(define-public cl-named-readtables
1469 (sbcl-package->cl-source-package sbcl-named-readtables))
1470
1471(define-public ecl-named-readtables
1472 (sbcl-package->ecl-package sbcl-named-readtables))
1473
1474(define-public sbcl-pythonic-string-reader
1475 (let ((commit "47a70ba1e32362e03dad6ef8e6f36180b560f86a"))
1476 (package
1477 (name "sbcl-pythonic-string-reader")
1478 (version (git-version "0.0.0" "1" commit))
1479 (source
1480 (origin
1481 (method git-fetch)
1482 (uri (git-reference
1483 (url "https://github.com/smithzvk/pythonic-string-reader/")
1484 (commit commit)))
1485 (sha256
1486 (base32 "1b5iryqw8xsh36swckmz8rrngmc39k92si33fgy5pml3n9l5rq3j"))
1487 (file-name (git-file-name "pythonic-string-reader" version))))
1488 (build-system asdf-build-system/sbcl)
1489 (inputs
1490 `(("named-readtables" ,sbcl-named-readtables)))
1491 (home-page "https://github.com/smithzvk/pythonic-string-reader")
1492 (synopsis "Read table modification inspired by Python's three quote strings")
1493 (description "This piece of code sets up some reader macros that make it
1494simpler to input string literals which contain backslashes and double quotes
1495This is very useful for writing complicated docstrings and, as it turns out,
1496writing code that contains string literals that contain code themselves.")
1497 (license license:bsd-3))))
1498
1499(define-public cl-pythonic-string-reader
1500 (sbcl-package->cl-source-package sbcl-pythonic-string-reader))
1501
1502(define-public ecl-pythonic-string-reader
1503 (sbcl-package->ecl-package sbcl-pythonic-string-reader))
1504
1505;; SLIME does not have a ASDF system definition to build all of Swank. As a
1506;; result, the asdf-build-system/sbcl will produce an almost empty package.
1507;; Some work was done to fix this at
1508;; https://github.com/sionescu/slime/tree/swank-asdf but it was never merged
1509;; and is now lagging behind. Building SBCL fasls might not be worth the
1510;; hassle, so let's just ship the source then.
1511(define-public cl-slime-swank
1512 (package
1513 (name "cl-slime-swank")
1514 (version "2.24")
1515 (source
1516 (origin
1517 (file-name (string-append name "-" version ".tar.gz"))
1518 (method git-fetch)
1519 (uri (git-reference
1520 (url "https://github.com/slime/slime/")
1521 (commit (string-append "v" version))))
1522 (sha256
1523 (base32
1524 "0js24x42m7b5iymb4rxz501dff19vav5pywnzv50b673rbkaaqvh"))))
1525 (build-system asdf-build-system/source)
1526 (home-page "https://github.com/slime/slime")
1527 (synopsis "Common Lisp Swank server")
1528 (description
1529 "This is only useful if you want to start a Swank server in a Lisp
1530processes that doesn't run under Emacs. Lisp processes created by
1531@command{M-x slime} automatically start the server.")
1532 (license (list license:gpl2+ license:public-domain))))
1533
1534(define-public sbcl-slime-swank
1535 (deprecated-package "sbcl-slime-swank" cl-slime-swank))
1536
1537(define-public sbcl-mgl-pax
1538 (let ((commit "818448418d6b9de74620f606f5b23033c6082769"))
1539 (package
1540 (name "sbcl-mgl-pax")
1541 (version (git-version "0.0.0" "1" commit))
1542 (source
1543 (origin
1544 (method git-fetch)
1545 (uri (git-reference
1546 (url "https://github.com/melisgl/mgl-pax")
1547 (commit commit)))
1548 (sha256
1549 (base32
1550 "1p97zfkh130bdxqqxwaw2j9psv58751wakx7czbfpq410lg7dd7i"))
1551 (file-name (git-file-name "mgl-pax" version))))
1552 (build-system asdf-build-system/sbcl)
1553 (inputs
1554 `(("3bmd" ,sbcl-3bmd)
1555 ("3bmd-ext-code-blocks" ,sbcl-3bmd-ext-code-blocks)
1556 ("babel" ,sbcl-babel)
1557 ("cl-fad" ,sbcl-cl-fad)
1558 ("ironclad" ,sbcl-ironclad)
1559 ("named-readtables" ,sbcl-named-readtables)
1560 ("pythonic-string-reader" ,sbcl-pythonic-string-reader)
1561 ("swank" ,cl-slime-swank)))
1562 (synopsis "Exploratory programming environment and documentation generator")
1563 (description
1564 "PAX provides an extremely poor man's Explorable Programming
1565environment. Narrative primarily lives in so called sections that mix markdown
1566docstrings with references to functions, variables, etc, all of which should
1567probably have their own docstrings.
1568
1569The primary focus is on making code easily explorable by using SLIME's
1570@command{M-.} (@command{slime-edit-definition}). See how to enable some
1571fanciness in Emacs Integration. Generating documentation from sections and all
1572the referenced items in Markdown or HTML format is also implemented.
1573
1574With the simplistic tools provided, one may accomplish similar effects as with
1575Literate Programming, but documentation is generated from code, not vice versa
1576and there is no support for chunking yet. Code is first, code must look
1577pretty, documentation is code.")
1578 (home-page "http://quotenil.com/")
1579 (license license:expat))))
1580
1581(define-public cl-mgl-pax
1582 (sbcl-package->cl-source-package sbcl-mgl-pax))
1583
1584(define-public ecl-mgl-pax
1585 (sbcl-package->ecl-package sbcl-mgl-pax))
1586
1587(define-public sbcl-lisp-unit
1588 (let ((commit "89653a232626b67400bf9a941f9b367da38d3815"))
1589 (package
1590 (name "sbcl-lisp-unit")
1591 (version (git-version "0.0.0" "1" commit))
1592 (source
1593 (origin
1594 (method git-fetch)
1595 (uri (git-reference
1596 (url "https://github.com/OdonataResearchLLC/lisp-unit")
1597 (commit commit)))
1598 (sha256
1599 (base32
1600 "0p6gdmgr7p383nvd66c9y9fp2bjk4jx1lpa5p09g43hr9y9pp9ry"))
1601 (file-name (git-file-name "lisp-unit" version))))
1602 (build-system asdf-build-system/sbcl)
1603 (synopsis "Common Lisp Test framework inspired by JUnit to be simple of use")
1604 (description
1605 "@command{lisp-unit} is a Common Lisp library that supports unit
1606testing. It is an extension of the library written by Chris Riesbeck.")
1607 (home-page "https://github.com/OdonataResearchLLC/lisp-unit")
1608 (license license:expat))))
1609
1610(define-public cl-lisp-unit
1611 (sbcl-package->cl-source-package sbcl-lisp-unit))
1612
1613(define-public ecl-lisp-unit
1614 (sbcl-package->ecl-package sbcl-lisp-unit))
1615
1616(define-public sbcl-anaphora
1617 (package
1618 (name "sbcl-anaphora")
1619 (version "0.9.6")
1620 (source
1621 (origin
1622 (method git-fetch)
1623 (uri (git-reference
1624 (url "https://github.com/tokenrove/anaphora")
1625 (commit version)))
1626 (sha256
1627 (base32
1628 "19wfrk3asimznkli0x2rfy637hwpdgqyvwj3vhq9x7vjvyf5vv6x"))
1629 (file-name (git-file-name "anaphora" version))))
1630 (build-system asdf-build-system/sbcl)
1631 (native-inputs
1632 `(("rt" ,sbcl-rt)))
1633 (synopsis "The anaphoric macro collection from Hell")
1634 (description
1635 "Anaphora is the anaphoric macro collection from Hell: it includes many
1636new fiends in addition to old friends like @command{aif} and
1637@command{awhen}.")
1638 (home-page "https://github.com/tokenrove/anaphora")
1639 (license license:public-domain)))
1640
1641(define-public cl-anaphora
1642 (sbcl-package->cl-source-package sbcl-anaphora))
1643
1644(define-public ecl-anaphora
1645 (sbcl-package->ecl-package sbcl-anaphora))
1646
1647(define-public sbcl-lift
1648 (let ((commit "7d49a66c62759535624037826891152223d4206c"))
1649 (package
1650 (name "sbcl-lift")
1651 (version (git-version "1.7.1" "1" commit))
1652 (source
1653 (origin
1654 (method git-fetch)
1655 (uri (git-reference
1656 (url "https://github.com/gwkkwg/lift")
1657 (commit commit)))
1658 (sha256
1659 (base32
1660 "127v5avpz1i4m0lkaxqrq8hrl69rdazqaxf6s8awf0nd7wj2g4dp"))
1661 (file-name (git-file-name "lift" version))
1662 (modules '((guix build utils)))
1663 (snippet
1664 ;; Don't keep the bundled website
1665 `(begin
1666 (delete-file-recursively "website")
1667 #t))))
1668 (build-system asdf-build-system/sbcl)
1669 (arguments
1670 ;; The tests require a debugger, but we run with the debugger disabled.
1671 '(#:tests? #f))
1672 (synopsis "LIsp Framework for Testing")
1673 (description
1674 "The LIsp Framework for Testing (LIFT) is a unit and system test tool for LISP.
1675Though inspired by SUnit and JUnit, it's built with Lisp in mind. In LIFT,
1676testcases are organized into hierarchical testsuites each of which can have
1677its own fixture. When run, a testcase can succeed, fail, or error. LIFT
1678supports randomized testing, benchmarking, profiling, and reporting.")
1679 (home-page "https://github.com/gwkkwg/lift")
1680 (license license:expat))))
1681
1682(define-public cl-lift
1683 (sbcl-package->cl-source-package sbcl-lift))
1684
1685(define-public ecl-lift
1686 (sbcl-package->ecl-package sbcl-lift))
1687
1688(define-public sbcl-let-plus
1689 (let ((commit "5f14af61d501ecead02ec6b5a5c810efc0c9fdbb"))
1690 (package
1691 (name "sbcl-let-plus")
1692 (version (git-version "0.0.0" "1" commit))
1693 (source
1694 (origin
1695 (method git-fetch)
1696 (uri (git-reference
1697 (url "https://github.com/sharplispers/let-plus")
1698 (commit commit)))
1699 (sha256
1700 (base32
1701 "0i050ca2iys9f5mb7dgqgqdxfnc3b0rnjdwv95sqd490vkiwrsaj"))
1702 (file-name (git-file-name "let-plus" version))))
1703 (build-system asdf-build-system/sbcl)
1704 (inputs
1705 `(("alexandria" ,sbcl-alexandria)
1706 ("anaphora" ,sbcl-anaphora)))
1707 (native-inputs
1708 `(("lift" ,sbcl-lift)))
1709 (synopsis "Destructuring extension of let*")
1710 (description
1711 "This library implements the let+ macro, which is a dectructuring
1712extension of let*. It features:
1713
1714@itemize
1715@item Clean, consistent syntax and small implementation (less than 300 LOC,
1716not counting tests)
1717@item Placeholder macros allow editor hints and syntax highlighting
1718@item @command{&ign} for ignored values (in forms where that makes sense)
1719@item Very easy to extend
1720@end itemize\n")
1721 (home-page "https://github.com/sharplispers/let-plus")
1722 (license license:boost1.0))))
1723
1724(define-public cl-let-plus
1725 (sbcl-package->cl-source-package sbcl-let-plus))
1726
1727(define-public ecl-let-plus
1728 (sbcl-package->ecl-package sbcl-let-plus))
1729
1730(define-public sbcl-cl-colors
1731 (let ((commit "827410584553f5c717eec6182343b7605f707f75"))
1732 (package
1733 (name "sbcl-cl-colors")
1734 (version (git-version "0.0.0" "1" commit))
1735 (source
1736 (origin
1737 (method git-fetch)
1738 (uri (git-reference
1739 (url "https://github.com/tpapp/cl-colors")
1740 (commit commit)))
1741 (sha256
1742 (base32
1743 "0l446lday4hybsm9bq3jli97fvv8jb1d33abg79vbylpwjmf3y9a"))
1744 (file-name (git-file-name "cl-colors" version))))
1745 (build-system asdf-build-system/sbcl)
1746 (inputs
1747 `(("alexandria" ,sbcl-alexandria)
1748 ("let-plus" ,sbcl-let-plus)))
1749 (synopsis "Simple color library for Common Lisp")
1750 (description
1751 "This is a very simple color library for Common Lisp, providing
1752
1753@itemize
1754@item Types for representing colors in HSV and RGB spaces.
1755@item Simple conversion functions between the above types (and also
1756hexadecimal representation for RGB).
1757@item Some predefined colors (currently X11 color names – of course the
1758library does not depend on X11).Because color in your terminal is nice.
1759@end itemize
1760
1761This library is no longer supported by its author.")
1762 (home-page "https://github.com/tpapp/cl-colors")
1763 (license license:boost1.0))))
1764
1765(define-public cl-colors
1766 (sbcl-package->cl-source-package sbcl-cl-colors))
1767
1768(define-public ecl-cl-colors
1769 (sbcl-package->ecl-package sbcl-cl-colors))
1770
1771(define-public sbcl-cl-ansi-text
1772 (let ((commit "53badf7878f27f22f2d4a2a43e6df458e43acbe9"))
1773 (package
1774 (name "sbcl-cl-ansi-text")
1775 (version (git-version "1.0.0" "1" commit))
1776 (source
1777 (origin
1778 (method git-fetch)
1779 (uri (git-reference
1780 (url "https://github.com/pnathan/cl-ansi-text")
1781 (commit commit)))
1782 (sha256
1783 (base32
1784 "11i27n0dbz5lmygiw65zzr8lx0rac6b6yysqranphn31wls6ja3v"))
1785 (file-name (git-file-name "cl-ansi-text" version))))
1786 (build-system asdf-build-system/sbcl)
1787 (inputs
1788 `(("alexandria" ,sbcl-alexandria)
1789 ("cl-colors" ,sbcl-cl-colors)))
1790 (native-inputs
1791 `(("fiveam" ,sbcl-fiveam)))
1792 (synopsis "ANSI terminal color implementation for Common Lisp")
1793 (description
1794 "@command{cl-ansi-text} provides utilities which enable printing to an
1795ANSI terminal with colored text. It provides the macro @command{with-color}
1796which causes everything printed in the body to be displayed with the provided
1797color. It further provides functions which will print the argument with the
1798named color.")
1799 (home-page "https://github.com/pnathan/cl-ansi-text")
1800 (license license:llgpl))))
1801
1802(define-public cl-ansi-text
1803 (sbcl-package->cl-source-package sbcl-cl-ansi-text))
1804
1805(define-public ecl-cl-ansi-text
1806 (sbcl-package->ecl-package sbcl-cl-ansi-text))
1807
1808(define-public sbcl-prove-asdf
1809 (let ((commit "4f9122bd393e63c5c70c1fba23070622317cfaa0"))
1810 (package
1811 (name "sbcl-prove-asdf")
1812 (version (git-version "1.0.0" "1" commit))
1813 (source
1814 (origin
1815 (method git-fetch)
1816 (uri (git-reference
1817 (url "https://github.com/fukamachi/prove")
1818 (commit commit)))
1819 (sha256
1820 (base32
1821 "07sbfw459z8bbjvx1qlmfa8qk2mvbjnnzi2mi0x72blaj8bkl4vc"))
1822 (file-name (git-file-name "prove" version))))
1823 (build-system asdf-build-system/sbcl)
1824 (arguments
1825 `(#:asd-file "prove-asdf.asd"))
1826 (synopsis "Test requirement for the Common Lisp 'prove' library")
1827 (description
1828 "Test requirement for the Common Lisp @command{prove} library.")
1829 (home-page "https://github.com/fukamachi/prove")
1830 (license license:expat))))
1831
1832(define-public cl-prove-asdf
1833 (sbcl-package->cl-source-package sbcl-prove-asdf))
1834
1835(define-public ecl-prove-asdf
1836 (sbcl-package->ecl-package sbcl-prove-asdf))
1837
1838(define-public sbcl-prove
1839 (package
1840 (inherit sbcl-prove-asdf)
1841 (name "sbcl-prove")
1842 (inputs
1843 `(("alexandria" ,sbcl-alexandria)
1844 ("cl-ppcre" ,sbcl-cl-ppcre)
1845 ("cl-ansi-text" ,sbcl-cl-ansi-text)))
1846 (native-inputs
1847 `(("prove-asdf" ,sbcl-prove-asdf)))
1848 (arguments
1849 `(#:asd-file "prove.asd"))
1850 (synopsis "Yet another unit testing framework for Common Lisp")
1851 (description
1852 "This project was originally called @command{cl-test-more}.
1853@command{prove} is yet another unit testing framework for Common Lisp. The
1854advantages of @command{prove} are:
1855
1856@itemize
1857@item Various simple functions for testing and informative error messages
1858@item ASDF integration
1859@item Extensible test reporters
1860@item Colorizes the report if it's available (note for SLIME)
1861@item Reports test durations
1862@end itemize\n")))
1863
1864(define-public cl-prove
1865 (sbcl-package->cl-source-package sbcl-prove))
1866
1867(define-public ecl-prove
1868 (sbcl-package->ecl-package sbcl-prove))
1869
1870(define-public sbcl-proc-parse
1871 (let ((commit "ac3636834d561bdc2686c956dbd82494537285fd"))
1872 (package
1873 (name "sbcl-proc-parse")
1874 (version (git-version "0.0.0" "1" commit))
1875 (source
1876 (origin
1877 (method git-fetch)
1878 (uri (git-reference
1879 (url "https://github.com/fukamachi/proc-parse")
1880 (commit commit)))
1881 (sha256
1882 (base32
1883 "06rnl0h4cx6xv2wj3jczmmcxqn2703inmmvg1s4npbghmijsybfh"))
1884 (file-name (git-file-name "proc-parse" version))))
1885 (build-system asdf-build-system/sbcl)
1886 (inputs
1887 `(("alexandria" ,sbcl-alexandria)
1888 ("babel" ,sbcl-babel)))
1889 (native-inputs
1890 `(("prove" ,sbcl-prove)
1891 ("prove-asdf" ,sbcl-prove-asdf)))
1892 (arguments
1893 ;; TODO: Tests don't find "proc-parse-test", why?
1894 `(#:tests? #f))
1895 (synopsis "Procedural vector parser")
1896 (description
1897 "This is a string/octets parser library for Common Lisp with speed and
1898readability in mind. Unlike other libraries, the code is not a
1899pattern-matching-like, but a char-by-char procedural parser.")
1900 (home-page "https://github.com/fukamachi/proc-parse")
1901 (license license:bsd-2))))
1902
1903(define-public cl-proc-parse
1904 (sbcl-package->cl-source-package sbcl-proc-parse))
1905
1906(define-public ecl-proc-parse
1907 (sbcl-package->ecl-package sbcl-proc-parse))
1908
1909(define-public sbcl-parse-float
1910 (let ((commit "2aae569f2a4b2eb3bfb5401a959425dcf151b09c"))
1911 (package
1912 (name "sbcl-parse-float")
1913 (version (git-version "0.0.0" "1" commit))
1914 (source
1915 (origin
1916 (method git-fetch)
1917 (uri (git-reference
1918 (url "https://github.com/soemraws/parse-float")
1919 (commit commit)))
1920 (sha256
1921 (base32
1922 "08xw8cchhmqcc0byng69m3f5a2izc9y2290jzz2k0qrbibp1fdk7"))
1923 (file-name (git-file-name "proc-parse" version))))
1924 (build-system asdf-build-system/sbcl)
1925 (inputs
1926 `(("alexandria" ,sbcl-alexandria)
1927 ("babel" ,sbcl-babel)))
1928 (native-inputs
1929 `(("prove" ,sbcl-prove)
1930 ("prove-asdf" ,sbcl-prove-asdf)))
1931 (arguments
1932 ;; TODO: Tests don't find "proc-parse-test", why?
1933 `(#:tests? #f))
1934 (synopsis "Parse a floating point value from a string in Common Lisp")
1935 (description
1936 "This package exports the following function to parse floating-point
1937values from a string in Common Lisp.")
1938 (home-page "https://github.com/soemraws/parse-float")
1939 (license license:public-domain))))
1940
1941(define-public cl-parse-float
1942 (sbcl-package->cl-source-package sbcl-parse-float))
1943
1944(define-public ecl-parse-float
1945 (sbcl-package->ecl-package sbcl-parse-float))
1946
1947(define-public sbcl-ascii-strings
1948 (let ((revision "1")
1949 (changeset "5048480a61243e6f1b02884012c8f25cdbee6d97"))
1950 (package
1951 (name "sbcl-ascii-strings")
1952 (version (string-append "0-" revision "." (string-take changeset 7)))
1953 (source
1954 (origin
1955 (method hg-fetch)
1956 (uri (hg-reference
1957 (url "https://bitbucket.org/vityok/cl-string-match/")
1958 (changeset changeset)))
1959 (sha256
1960 (base32
1961 "01wn5qx562w43ssy92xlfgv79w7p0nv0wbl76mpmba131n9ziq2y"))
1962 (file-name (git-file-name "cl-string-match" version))))
1963 (build-system asdf-build-system/sbcl)
1964 (inputs
1965 `(("alexandria" ,sbcl-alexandria)
1966 ("babel" ,sbcl-babel)))
1967 (arguments
1968 `(#:asd-file "ascii-strings.asd"))
1969 (synopsis "Operations on ASCII strings")
1970 (description
1971 "Operations on ASCII strings. Essentially this can be any kind of
1972single-byte encoded strings.")
1973 (home-page "https://bitbucket.org/vityok/cl-string-match/")
1974 (license license:bsd-3))))
1975
1976(define-public cl-ascii-strings
1977 (sbcl-package->cl-source-package sbcl-ascii-strings))
1978
1979(define-public ecl-ascii-strings
1980 (sbcl-package->ecl-package sbcl-ascii-strings))
1981
1982(define-public sbcl-simple-scanf
1983 (package
1984 (inherit sbcl-ascii-strings)
1985 (name "sbcl-simple-scanf")
1986 (inputs
1987 `(("alexandria" ,sbcl-alexandria)
1988 ("iterate" ,sbcl-iterate)
1989 ("proc-parse" ,sbcl-proc-parse)
1990 ("parse-float" ,sbcl-parse-float)))
1991 (arguments
1992 `(#:asd-file "simple-scanf.asd"))
1993 (synopsis "Simple scanf-like functionality implementation")
1994 (description
1995 "A simple scanf-like functionality implementation.")))
1996
1997(define-public cl-simple-scanf
1998 (sbcl-package->cl-source-package sbcl-simple-scanf))
1999
2000(define-public ecl-simple-scanf
2001 (sbcl-package->ecl-package sbcl-simple-scanf))
2002
2003(define-public sbcl-cl-string-match
2004 (package
2005 (inherit sbcl-ascii-strings)
2006 (name "sbcl-cl-string-match")
2007 (inputs
2008 `(("alexandria" ,sbcl-alexandria)
2009 ("ascii-strings" ,sbcl-ascii-strings)
2010 ("yacc" ,sbcl-cl-yacc)
2011 ("jpl-util" ,sbcl-jpl-util)
2012 ("jpl-queues" ,sbcl-jpl-queues)
2013 ("mgl-pax" ,sbcl-mgl-pax)
2014 ("iterate" ,sbcl-iterate)))
2015 ;; TODO: Tests are not evaluated properly.
2016 (native-inputs
2017 ;; For testing:
2018 `(("lisp-unit" ,sbcl-lisp-unit)
2019 ("simple-scanf" ,sbcl-simple-scanf)))
2020 (arguments
2021 `(#:tests? #f
2022 #:asd-file "cl-string-match.asd"))
2023 (synopsis "Portable, dependency-free set of utilities to manipulate strings in Common Lisp")
2024 (description
2025 "@command{cl-strings} is a small, portable, dependency-free set of
2026utilities that make it even easier to manipulate text in Common Lisp. It has
2027100% test coverage and works at least on sbcl, ecl, ccl, abcl and clisp.")))
2028
2029(define-public cl-string-match
2030 (sbcl-package->cl-source-package sbcl-cl-string-match))
2031
2032(define-public ecl-cl-string-match
2033 (sbcl-package->ecl-package sbcl-cl-string-match))
2034
2035(define-public sbcl-ptester
2036 (package
2037 (name "sbcl-ptester")
2038 (version "20160929")
2039 (source
2040 (origin
2041 (method url-fetch)
2042 (uri (string-append "http://beta.quicklisp.org/archive/ptester/"
2043 (date->string (string->date version "~Y~m~d") "~Y-~m-~d")
2044 "/ptester-"
2045 version
2046 "-git.tgz"))
2047 (sha256
2048 (base32
2049 "04rlq1zljhxc65pm31bah3sq3as24l0sdivz440s79qlnnyh13hz"))))
2050 (build-system asdf-build-system/sbcl)
2051 (home-page "http://quickdocs.org/ptester/")
2052 (synopsis "Portable test harness package")
2053 (description
2054 "@command{ptester} is a portable testing framework based on Franz's
2055tester module.")
2056 (license license:lgpl3+)))
2057
2058(define-public cl-ptester
2059 (sbcl-package->cl-source-package sbcl-ptester))
2060
2061(define-public ecl-ptester
2062 (sbcl-package->ecl-package sbcl-ptester))
2063
2064(define-public sbcl-puri
2065 (package
2066 (name "sbcl-puri")
2067 (version "20180228")
2068 (source
2069 (origin
2070 (method url-fetch)
2071 (uri (string-append "http://beta.quicklisp.org/archive/puri/"
2072 (date->string (string->date version "~Y~m~d") "~Y-~m-~d")
2073 "/puri-"
2074 version
2075 "-git.tgz"))
2076 (sha256
2077 (base32
2078 "1s4r5adrjy5asry45xbcbklxhdjydvf6n55z897nvyw33bigrnbz"))))
2079 (build-system asdf-build-system/sbcl)
2080 ;; REVIEW: Webiste down?
2081 (native-inputs
2082 `(("ptester" ,sbcl-ptester)))
2083 (home-page "http://files.kpe.io/puri/")
2084 (synopsis "Portable URI Library")
2085 (description
2086 "This is portable Universal Resource Identifier library for Common Lisp
2087programs. It parses URI according to the RFC 2396 specification")
2088 (license license:lgpl3+)))
2089
2090(define-public cl-puri
2091 (sbcl-package->cl-source-package sbcl-puri))
2092
2093(define-public ecl-puri
2094 (sbcl-package->ecl-package sbcl-puri))
2095
2096(define-public sbcl-queues
2097 (let ((commit "47d4da65e9ea20953b74aeeab7e89a831b66bc94"))
2098 (package
2099 (name "sbcl-queues")
2100 (version (git-version "0.0.0" "1" commit))
2101 (source
2102 (origin
2103 (method git-fetch)
2104 (uri (git-reference
2105 (url "https://github.com/oconnore/queues")
2106 (commit commit)))
2107 (file-name (git-file-name "queues" version))
2108 (sha256
2109 (base32
2110 "0wdhfnzi4v6d97pggzj2aw55si94w4327br94jrmyvwf351wqjvv"))))
2111 (build-system asdf-build-system/sbcl)
2112 (home-page "https://github.com/oconnore/queues")
2113 (synopsis "Common Lisp queue library")
2114 (description
2115 "This is a simple queue library for Common Lisp with features such as
2116non-consing thread safe queues and fibonacci priority queues.")
2117 (license license:expat))))
2118
2119(define-public cl-queues
2120 (sbcl-package->cl-source-package sbcl-queues))
2121
2122(define-public ecl-queues
2123 (sbcl-package->ecl-package sbcl-queues))
2124
2125(define-public sbcl-queues.simple-queue
2126 (package
2127 (inherit sbcl-queues)
2128 (name "sbcl-queues.simple-queue")
2129 (inputs
2130 `(("sbcl-queues" ,sbcl-queues)))
2131 (arguments
2132 `(#:asd-file "queues.simple-queue.asd"))
2133 (synopsis "Simple queue implementation")
2134 (description
2135 "This is a simple queue library for Common Lisp with features such as
2136non-consing thread safe queues and fibonacci priority queues.")
2137 (license license:expat)))
2138
2139(define-public cl-queues.simple-queue
2140 (sbcl-package->cl-source-package sbcl-queues.simple-queue))
2141
2142(define-public ecl-queues.simple-queue
2143 (sbcl-package->ecl-package sbcl-queues.simple-queue))
2144
2145(define-public sbcl-queues.simple-cqueue
2146 (package
2147 (inherit sbcl-queues)
2148 (name "sbcl-queues.simple-cqueue")
2149 (inputs
2150 `(("sbcl-queues" ,sbcl-queues)
2151 ("sbcl-queues.simple-queue" ,sbcl-queues.simple-queue)
2152 ("bordeaux-threads" ,sbcl-bordeaux-threads)))
2153 (arguments
2154 `(#:asd-file "queues.simple-cqueue.asd"))
2155 (synopsis "Thread safe queue implementation")
2156 (description
2157 "This is a simple queue library for Common Lisp with features such as
2158non-consing thread safe queues and fibonacci priority queues.")
2159 (license license:expat)))
2160
2161(define-public cl-queues.simple-cqueue
2162 (sbcl-package->cl-source-package sbcl-queues.simple-cqueue))
2163
2164(define-public ecl-queues.simple-cqueue
2165 (sbcl-package->ecl-package sbcl-queues.simple-cqueue))
2166
2167(define-public sbcl-queues.priority-queue
2168 (package
2169 (inherit sbcl-queues)
2170 (name "sbcl-queues.priority-queue")
2171 (inputs
2172 `(("sbcl-queues" ,sbcl-queues)))
2173 (arguments
2174 `(#:asd-file "queues.priority-queue.asd"))
2175 (synopsis "Priority queue (Fibonacci) implementation")
2176 (description
2177 "This is a simple queue library for Common Lisp with features such as
2178non-consing thread safe queues and fibonacci priority queues.")
2179 (license license:expat)))
2180
2181(define-public cl-queues.priority-queue
2182 (sbcl-package->cl-source-package sbcl-queues.priority-queue))
2183
2184(define-public ecl-queues.priority-queue
2185 (sbcl-package->ecl-package sbcl-queues.priority-queue))
2186
2187(define-public sbcl-queues.priority-cqueue
2188 (package
2189 (inherit sbcl-queues)
2190 (name "sbcl-queues.priority-cqueue")
2191 (inputs
2192 `(("sbcl-queues" ,sbcl-queues)
2193 ("sbcl-queues.priority-queue" ,sbcl-queues.priority-queue)
2194 ("bordeaux-threads" ,sbcl-bordeaux-threads)))
2195 (arguments
2196 `(#:asd-file "queues.priority-cqueue.asd"))
2197 (synopsis "Thread safe fibonacci priority queue implementation")
2198 (description
2199 "This is a simple queue library for Common Lisp with features such as
2200non-consing thread safe queues and fibonacci priority queues.")
2201 (license license:expat)))
2202
2203(define-public cl-queues.priority-cqueue
2204 (sbcl-package->cl-source-package sbcl-queues.priority-cqueue))
2205
2206(define-public ecl-queues.priority-cqueue
2207 (sbcl-package->ecl-package sbcl-queues.priority-cqueue))
2208
2209(define sbcl-cffi-bootstrap
2210 (package
2211 (name "sbcl-cffi-bootstrap")
2212 (version "0.19.0")
2213 (source
2214 (origin
2215 (method git-fetch)
2216 (uri (git-reference
2217 (url "https://github.com/cffi/cffi.git")
2218 (commit (string-append "v" version))))
2219 (file-name (git-file-name "cffi-bootstrap" version))
2220 (sha256
2221 (base32 "09sfgc6r7ihmbkwfpvkq5fxc7h45cabpvgbvs47i5cvnmv3k72xy"))))
2222 (build-system asdf-build-system/sbcl)
2223 (inputs
2224 `(("libffi" ,libffi)
2225 ("alexandria" ,sbcl-alexandria)
2226 ("babel" ,sbcl-babel)
2227 ("trivial-features" ,sbcl-trivial-features)))
2228 (native-inputs
2229 `(("pkg-config" ,pkg-config)))
2230 (arguments
2231 '(#:phases
2232 (modify-phases %standard-phases
2233 (add-after 'unpack 'fix-paths
2234 (lambda* (#:key inputs #:allow-other-keys)
2235 (substitute* "libffi/libffi.lisp"
2236 (("libffi.so.6" all) (string-append
2237 (assoc-ref inputs "libffi")
2238 "/lib/" all)))
2239 (substitute* "toolchain/c-toolchain.lisp"
2240 (("\"cc\"") (format #f "~S" (which "gcc")))))))
2241 #:asd-system-name "cffi"
2242 #:tests? #f))
2243 (home-page "https://common-lisp.net/project/cffi/")
2244 (synopsis "Common Foreign Function Interface for Common Lisp")
2245 (description "The Common Foreign Function Interface (CFFI)
2246purports to be a portable foreign function interface for Common Lisp.
2247The CFFI library is composed of a Lisp-implementation-specific backend
2248in the CFFI-SYS package, and a portable frontend in the CFFI
2249package.")
2250 (license license:expat)))
2251
2252(define-public sbcl-cffi-toolchain
2253 (package
2254 (inherit sbcl-cffi-bootstrap)
2255 (name "sbcl-cffi-toolchain")
2256 (inputs
2257 `(("libffi" ,libffi)
2258 ("sbcl-cffi" ,sbcl-cffi-bootstrap)))
2259 (arguments
2260 (substitute-keyword-arguments (package-arguments sbcl-cffi-bootstrap)
2261 ((#:asd-system-name _) #f)
2262 ((#:tests? _) #t)))))
2263
2264(define-public sbcl-cffi-libffi
2265 (package
2266 (inherit sbcl-cffi-toolchain)
2267 (name "sbcl-cffi-libffi")
2268 (inputs
2269 `(("cffi" ,sbcl-cffi-bootstrap)
2270 ("cffi-grovel" ,sbcl-cffi-grovel)
2271 ("trivial-features" ,sbcl-trivial-features)
2272 ("libffi" ,libffi)))))
2273
2274(define-public sbcl-cffi-grovel
2275 (package
2276 (inherit sbcl-cffi-toolchain)
2277 (name "sbcl-cffi-grovel")
2278 (inputs
2279 `(("libffi" ,libffi)
2280 ("cffi" ,sbcl-cffi-bootstrap)
2281 ("cffi-toolchain" ,sbcl-cffi-toolchain)
2282 ("alexandria" ,sbcl-alexandria)))
2283 (arguments
2284 (substitute-keyword-arguments (package-arguments sbcl-cffi-toolchain)
2285 ((#:phases phases)
2286 `(modify-phases ,phases
2287 (add-after 'build 'install-headers
2288 (lambda* (#:key outputs #:allow-other-keys)
2289 (install-file "grovel/common.h"
2290 (string-append
2291 (assoc-ref outputs "out")
2292 "/include/grovel"))))))))))
2293
2294(define-public sbcl-cffi
2295 (package
2296 (inherit sbcl-cffi-toolchain)
2297 (name "sbcl-cffi")
2298 (inputs (package-inputs sbcl-cffi-bootstrap))
2299 (native-inputs
2300 `(("cffi-grovel" ,sbcl-cffi-grovel)
2301 ("cffi-libffi" ,sbcl-cffi-libffi)
2302 ("rt" ,sbcl-rt)
2303 ("bordeaux-threads" ,sbcl-bordeaux-threads)
2304 ,@(package-native-inputs sbcl-cffi-bootstrap)))))
2305
2306(define-public cl-cffi
2307 (sbcl-package->cl-source-package sbcl-cffi))
2308
2309(define-public sbcl-cl-sqlite
2310 (let ((commit "c738e66d4266ef63a1debc4ef4a1b871a068c112"))
2311 (package
2312 (name "sbcl-cl-sqlite")
2313 (version (git-version "0.2" "1" commit))
2314 (source
2315 (origin
2316 (method git-fetch)
2317 (uri (git-reference
2318 (url "https://github.com/dmitryvk/cl-sqlite")
2319 (commit commit)))
2320 (file-name (git-file-name "cl-sqlite" version))
2321 (sha256
2322 (base32
2323 "1ng45k1hdb84sqjryrfx93g66bsbybmpy301wd0fdybnc5jzr36q"))))
2324 (build-system asdf-build-system/sbcl)
2325 (inputs
2326 `(("iterate" ,sbcl-iterate)
2327 ("cffi" ,sbcl-cffi)
2328 ("sqlite" ,sqlite)))
2329 (native-inputs
2330 `(("fiveam" ,sbcl-fiveam)
2331 ("bordeaux-threads" ,sbcl-bordeaux-threads)))
2332 (arguments
2333 `(#:tests? #f ; Upstream seems to have issues with tests: https://github.com/dmitryvk/cl-sqlite/issues/7
2334 #:asd-file "sqlite.asd"
2335 #:asd-system-name "sqlite"
2336 #:phases
2337 (modify-phases %standard-phases
2338 (add-after 'unpack 'fix-paths
2339 (lambda* (#:key inputs #:allow-other-keys)
2340 (substitute* "sqlite-ffi.lisp"
2341 (("libsqlite3" all) (string-append
2342 (assoc-ref inputs "sqlite")"/lib/" all))))))))
2343 (home-page "https://common-lisp.net/project/cl-sqlite/")
2344 (synopsis "Common Lisp binding for SQLite")
2345 (description
2346 "The @command{cl-sqlite} package is an interface to the SQLite embedded
2347relational database engine.")
2348 (license license:public-domain))))
2349
2350(define-public cl-sqlite
2351 (sbcl-package->cl-source-package sbcl-cl-sqlite))
2352
2353(define-public sbcl-parenscript
2354 (let ((commit "061d8e286c81c3f45c84fb2b11ee7d83f590a8f8"))
2355 (package
2356 (name "sbcl-parenscript")
2357 (version (git-version "2.6" "1" commit))
2358 (source
2359 (origin
2360 (method git-fetch)
2361 (uri (git-reference
2362 (url "https://gitlab.common-lisp.net/parenscript/parenscript")
2363 (commit commit)))
2364 (file-name (git-file-name "parenscript" version))
2365 (sha256
2366 (base32
2367 "1kbhgsjbikc73m5cwdp4d4fdafyqcr1b7b630qjrziql0nh6mi3k"))))
2368 (build-system asdf-build-system/sbcl)
2369 (inputs
2370 `(("cl-ppcre" ,sbcl-cl-ppcre)
2371 ("anaphora" ,sbcl-anaphora)
2372 ("named-readtables" ,sbcl-named-readtables)))
2373 (home-page "https://common-lisp.net/project/parenscript/")
2374 (synopsis "Translator from a subset of Common Lisp to JavaScript")
2375 (description
2376 "Parenscript is a translator from an extended subset of Common Lisp to
2377JavaScript. Parenscript code can run almost identically on both the
2378browser (as JavaScript) and server (as Common Lisp).
2379
2380Parenscript code is treated the same way as Common Lisp code, making the full
2381power of Lisp macros available for JavaScript. This provides a web
2382development environment that is unmatched in its ability to reduce code
2383duplication and provide advanced meta-programming facilities to web
2384developers.
2385
2386At the same time, Parenscript is different from almost all other \"language
2387X\" to JavaScript translators in that it imposes almost no overhead:
2388
2389@itemize
2390@item No run-time dependencies: Any piece of Parenscript code is runnable
2391as-is. There are no JavaScript files to include.
2392@item Native types: Parenscript works entirely with native JavaScript data
2393types. There are no new types introduced, and object prototypes are not
2394touched.
2395@item Native calling convention: Any JavaScript code can be called without the
2396need for bindings. Likewise, Parenscript can be used to make efficient,
2397self-contained JavaScript libraries.
2398@item Readable code: Parenscript generates concise, formatted, idiomatic
2399JavaScript code. Identifier names are preserved. This enables seamless
2400debugging in tools like Firebug.
2401@item Efficiency: Parenscript introduces minimal overhead for advanced Common
2402Lisp features. The generated code is almost as fast as hand-written
2403JavaScript.
2404@end itemize\n")
2405 (license license:bsd-3))))
2406
2407(define-public cl-parenscript
2408 (sbcl-package->cl-source-package sbcl-parenscript))
2409
2410(define-public ecl-parenscript
2411 (sbcl-package->ecl-package sbcl-parenscript))
2412
2413(define-public sbcl-cl-json
2414 (let ((commit "6dfebb9540bfc3cc33582d0c03c9ec27cb913e79"))
2415 (package
2416 (name "sbcl-cl-json")
2417 (version (git-version "0.5" "1" commit))
2418 (source
2419 (origin
2420 (method git-fetch)
2421 (uri (git-reference
2422 (url "https://github.com/hankhero/cl-json")
2423 (commit commit)))
2424 (file-name (git-file-name "cl-json" version))
2425 (sha256
2426 (base32
2427 "0fx3m3x3s5ji950yzpazz4s0img3l6b3d6l3jrfjv0lr702496lh"))))
2428 (build-system asdf-build-system/sbcl)
2429 (native-inputs
2430 `(("fiveam" ,sbcl-fiveam)))
2431 (home-page "https://github.com/hankhero/cl-json")
2432 (synopsis "JSON encoder and decoder for Common-Lisp")
2433 (description
2434 "@command{cl-json} provides an encoder of Lisp objects to JSON format
2435and a corresponding decoder of JSON data to Lisp objects. Both the encoder
2436and the decoder are highly customizable; at the same time, the default
2437settings ensure a very simple mode of operation, similar to that provided by
2438@command{yason} or @command{st-json}.")
2439 (license license:expat))))
2440
2441(define-public cl-json
2442 (sbcl-package->cl-source-package sbcl-cl-json))
2443
2444(define-public ecl-cl-json
2445 (sbcl-package->ecl-package sbcl-cl-json))
2446
2447(define-public sbcl-unix-opts
2448 (package
2449 (name "sbcl-unix-opts")
2450 (version "0.1.7")
2451 (source
2452 (origin
2453 (method git-fetch)
2454 (uri (git-reference
2455 (url "https://github.com/libre-man/unix-opts")
2456 (commit version)))
2457 (file-name (git-file-name "unix-opts" version))
2458 (sha256
2459 (base32
2460 "08djdi1ard09fijb7w9bdmhmwd98b1hzmcnjw9fqjiqa0g3b44rr"))))
2461 (build-system asdf-build-system/sbcl)
2462 (home-page "https://github.com/hankhero/cl-json")
2463 (synopsis "Unix-style command line options parser")
2464 (description
2465 "This is a minimalistic parser of command line options. The main
2466advantage of the library is the ability to concisely define command line
2467options once and then use this definition for parsing and extraction of
2468command line arguments, as well as printing description of command line
2469options (you get --help for free). This way you don't need to repeat
2470yourself. Also, @command{unix-opts} doesn't depend on anything and allows to
2471precisely control behavior of the parser via Common Lisp restarts.")
2472 (license license:expat)))
2473
2474(define-public cl-unix-opts
2475 (sbcl-package->cl-source-package sbcl-unix-opts))
2476
2477(define-public ecl-unix-opts
2478 (sbcl-package->ecl-package sbcl-unix-opts))
2479
2480(define-public sbcl-trivial-garbage
2481 (package
2482 (name "sbcl-trivial-garbage")
2483 (version "0.21")
2484 (source
2485 (origin
2486 (method git-fetch)
2487 (uri (git-reference
2488 (url "https://github.com/trivial-garbage/trivial-garbage.git")
2489 (commit (string-append "v" version))))
2490 (file-name (git-file-name "trivial-garbage" version))
2491 (sha256
2492 (base32 "0122jicfg7pca1wxw8zak1n92h5friqy60988ns0ysksj3fphw9n"))))
2493 (build-system asdf-build-system/sbcl)
2494 (native-inputs
2495 `(("rt" ,sbcl-rt)))
2496 (home-page "https://common-lisp.net/project/trivial-garbage/")
2497 (synopsis "Portable GC-related APIs for Common Lisp")
2498 (description "@command{trivial-garbage} provides a portable API to
2499finalizers, weak hash-tables and weak pointers on all major implementations of
2500the Common Lisp programming language.")
2501 (license license:public-domain)))
2502
2503(define-public cl-trivial-garbage
2504 (sbcl-package->cl-source-package sbcl-trivial-garbage))
2505
2506(define-public ecl-trivial-garbage
2507 (sbcl-package->ecl-package sbcl-trivial-garbage))
2508
2509(define-public sbcl-closer-mop
2510 (let ((commit "fac29ce90e3a46e1fc6cf182190e193526fa9dbc"))
2511 (package
2512 (name "sbcl-closer-mop")
2513 (version (git-version "1.0.0" "1" commit))
2514 (source
2515 (origin
2516 (method git-fetch)
2517 (uri (git-reference
2518 (url "https://github.com/pcostanza/closer-mop")
2519 (commit commit)))
2520 (sha256
2521 (base32 "0hvh77y869h8fg9di5snyg85fxq6fdh9gj1igmx1g6j6j5x915dl"))
2522 (file-name (git-file-name "closer-mop" version ))))
2523 (build-system asdf-build-system/sbcl)
2524 (home-page "https://github.com/pcostanza/closer-mop")
2525 (synopsis "Rectifies absent or incorrect CLOS MOP features")
2526 (description "Closer to MOP is a compatibility layer that rectifies many
2527of the absent or incorrect CLOS MOP features across a broad range of Common
2528Lisp implementations.")
2529 (license license:expat))))
2530
2531(define-public cl-closer-mop
2532 (sbcl-package->cl-source-package sbcl-closer-mop))
2533
2534(define-public ecl-closer-mop
2535 (sbcl-package->ecl-package sbcl-closer-mop))
2536
2537(define sbcl-cl-cffi-gtk-boot0
2538 (let ((commit "29443c5aaca975709df8025c4649366d882033cb"))
2539 (package
2540 (name "sbcl-cl-cffi-gtk-boot0")
2541 (version (git-version "0.11.2" "1" commit))
2542 (source
2543 (origin
2544 (method git-fetch)
2545 (uri (git-reference
2546 (url "https://github.com/Ferada/cl-cffi-gtk/")
2547 (commit commit)))
2548 (file-name (git-file-name "cl-cffi-gtk" version))
2549 (sha256
2550 (base32
2551 "0f6s92sf8xyzh1yksqx8bsy1sv0zmy0c13j3b8bavaba5hlxpxah"))))
2552 (build-system asdf-build-system/sbcl)
2553 (inputs
2554 `(("iterate" ,sbcl-iterate)
2555 ("cffi" ,sbcl-cffi)
2556 ("trivial-features" ,sbcl-trivial-features)))
2557 (home-page "https://github.com/Ferada/cl-cffi-gtk/")
2558 (synopsis "Common Lisp binding for GTK+3")
2559 (description
2560 "@command{cl-cffi-gtk} is a Lisp binding to GTK+ 3 (GIMP Toolkit) which
2561is a library for creating graphical user interfaces.")
2562 (license license:lgpl3))))
2563
2564(define-public sbcl-cl-cffi-gtk-glib
2565 (package
2566 (inherit sbcl-cl-cffi-gtk-boot0)
2567 (name "sbcl-cl-cffi-gtk-glib")
2568 (inputs
2569 `(("glib" ,glib)
2570 ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
2571 (arguments
2572 `(#:asd-file "glib/cl-cffi-gtk-glib.asd"
2573 #:phases
2574 (modify-phases %standard-phases
2575 (add-after 'unpack 'fix-paths
2576 (lambda* (#:key inputs #:allow-other-keys)
2577 (substitute* "glib/glib.init.lisp"
2578 (("libglib|libgthread" all) (string-append
2579 (assoc-ref inputs "glib") "/lib/" all))))))))))
2580
2581(define-public sbcl-cl-cffi-gtk-gobject
2582 (package
2583 (inherit sbcl-cl-cffi-gtk-boot0)
2584 (name "sbcl-cl-cffi-gtk-gobject")
2585 (inputs
2586 `(("glib" ,glib)
2587 ("cl-cffi-gtk-glib" ,sbcl-cl-cffi-gtk-glib)
2588 ("trivial-garbage" ,sbcl-trivial-garbage)
2589 ("bordeaux-threads" ,sbcl-bordeaux-threads)
2590 ("closer-mop" ,sbcl-closer-mop)
2591 ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
2592 (arguments
2593 `(#:asd-file "gobject/cl-cffi-gtk-gobject.asd"
2594 #:phases
2595 (modify-phases %standard-phases
2596 (add-after 'unpack 'fix-paths
2597 (lambda* (#:key inputs #:allow-other-keys)
2598 (substitute* "gobject/gobject.init.lisp"
2599 (("libgobject" all) (string-append
2600 (assoc-ref inputs "glib") "/lib/" all))))))))))
2601
2602(define-public sbcl-cl-cffi-gtk-gio
2603 (package
2604 (inherit sbcl-cl-cffi-gtk-boot0)
2605 (name "sbcl-cl-cffi-gtk-gio")
2606 (inputs
2607 `(("glib" ,glib)
2608 ("cl-cffi-gtk-glib" ,sbcl-cl-cffi-gtk-glib)
2609 ("cl-cffi-gtk-gobject" ,sbcl-cl-cffi-gtk-gobject)
2610 ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
2611 (arguments
2612 `(#:asd-file "gio/cl-cffi-gtk-gio.asd"
2613 #:phases
2614 (modify-phases %standard-phases
2615 (add-after 'unpack 'fix-paths
2616 (lambda* (#:key inputs #:allow-other-keys)
2617 (substitute* "gio/gio.init.lisp"
2618 (("libgio" all)
2619 (string-append
2620 (assoc-ref inputs "glib") "/lib/" all))))))))))
2621
2622(define-public sbcl-cl-cffi-gtk-cairo
2623 (package
2624 (inherit sbcl-cl-cffi-gtk-boot0)
2625 (name "sbcl-cl-cffi-gtk-cairo")
2626 (inputs
2627 `(("cairo" ,cairo)
2628 ("cl-cffi-gtk-glib" ,sbcl-cl-cffi-gtk-glib)
2629 ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
2630 (arguments
2631 `(#:asd-file "cairo/cl-cffi-gtk-cairo.asd"
2632 #:phases
2633 (modify-phases %standard-phases
2634 (add-after 'unpack 'fix-paths
2635 (lambda* (#:key inputs #:allow-other-keys)
2636 (substitute* "cairo/cairo.init.lisp"
2637 (("libcairo" all)
2638 (string-append
2639 (assoc-ref inputs "cairo") "/lib/" all))))))))))
2640
2641(define-public sbcl-cl-cffi-gtk-pango
2642 (package
2643 (inherit sbcl-cl-cffi-gtk-boot0)
2644 (name "sbcl-cl-cffi-gtk-pango")
2645 (inputs
2646 `(("pango" ,pango)
2647 ("cl-cffi-gtk-glib" ,sbcl-cl-cffi-gtk-glib)
2648 ("cl-cffi-gtk-gobject" ,sbcl-cl-cffi-gtk-gobject)
2649 ("cl-cffi-gtk-cairo" ,sbcl-cl-cffi-gtk-cairo)
2650 ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
2651 (arguments
2652 `(#:asd-file "pango/cl-cffi-gtk-pango.asd"
2653 #:phases
2654 (modify-phases %standard-phases
2655 (add-after 'unpack 'fix-paths
2656 (lambda* (#:key inputs #:allow-other-keys)
2657 (substitute* "pango/pango.init.lisp"
2658 (("libpango" all)
2659 (string-append
2660 (assoc-ref inputs "pango") "/lib/" all))))))))))
2661
2662(define-public sbcl-cl-cffi-gtk-gdk-pixbuf
2663 (package
2664 (inherit sbcl-cl-cffi-gtk-boot0)
2665 (name "sbcl-cl-cffi-gtk-gdk-pixbuf")
2666 (inputs
2667 `(("gdk-pixbuf" ,gdk-pixbuf)
2668 ("cl-cffi-gtk-gobject" ,sbcl-cl-cffi-gtk-gobject)
2669 ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
2670 (arguments
2671 `(#:asd-file "gdk-pixbuf/cl-cffi-gtk-gdk-pixbuf.asd"
2672 #:phases
2673 (modify-phases %standard-phases
2674 (add-after 'unpack 'fix-paths
2675 (lambda* (#:key inputs #:allow-other-keys)
2676 (substitute* "gdk-pixbuf/gdk-pixbuf.init.lisp"
2677 (("libgdk_pixbuf" all)
2678 (string-append
2679 (assoc-ref inputs "gdk-pixbuf") "/lib/" all))))))))))
2680
2681(define-public sbcl-cl-cffi-gtk-gdk
2682 (package
2683 (inherit sbcl-cl-cffi-gtk-boot0)
2684 (name "sbcl-cl-cffi-gtk-gdk")
2685 (inputs
2686 `(("gtk" ,gtk+)
2687 ("cl-cffi-gtk-gobject" ,sbcl-cl-cffi-gtk-gobject)
2688 ("cl-cffi-gtk-gio" ,sbcl-cl-cffi-gtk-gio)
2689 ("cl-cffi-gtk-gdk-pixbuf" ,sbcl-cl-cffi-gtk-gdk-pixbuf)
2690 ("cl-cffi-gtk-cairo" ,sbcl-cl-cffi-gtk-cairo)
2691 ("cl-cffi-gtk-pango" ,sbcl-cl-cffi-gtk-pango)
2692 ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
2693 (arguments
2694 `(#:asd-file "gdk/cl-cffi-gtk-gdk.asd"
2695 #:phases
2696 (modify-phases %standard-phases
2697 (add-after 'unpack 'fix-paths
2698 (lambda* (#:key inputs #:allow-other-keys)
2699 (substitute* "gdk/gdk.init.lisp"
2700 (("libgdk" all)
2701 (string-append
2702 (assoc-ref inputs "gtk") "/lib/" all)))
2703 (substitute* "gdk/gdk.package.lisp"
2704 (("libgtk" all)
2705 (string-append
2706 (assoc-ref inputs "gtk") "/lib/" all))))))))))
2707
2708(define-public sbcl-cl-cffi-gtk
2709 (package
2710 (inherit sbcl-cl-cffi-gtk-boot0)
2711 (name "sbcl-cl-cffi-gtk")
2712 (inputs
2713 `(("cl-cffi-gtk-glib" ,sbcl-cl-cffi-gtk-glib)
2714 ("cl-cffi-gtk-gobject" ,sbcl-cl-cffi-gtk-gobject)
2715 ("cl-cffi-gtk-gio" ,sbcl-cl-cffi-gtk-gio)
2716 ("cl-cffi-gtk-gdk" ,sbcl-cl-cffi-gtk-gdk)
2717 ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
2718 (native-inputs
2719 `(("fiveam" ,sbcl-fiveam)))
2720 (arguments
2721 `(#:asd-file "gtk/cl-cffi-gtk.asd"
2722 #:test-asd-file "test/cl-cffi-gtk-test.asd"
2723 ;; TODO: Tests fail with memory fault.
2724 ;; See https://github.com/Ferada/cl-cffi-gtk/issues/24.
2725 #:tests? #f))))
2726
2727(define-public cl-cffi-gtk
2728 (sbcl-package->cl-source-package sbcl-cl-cffi-gtk))
2729
2730(define-public sbcl-cl-webkit
2731 (let ((commit "cd2a9008e0c152e54755e8a7f07b050fe36bab31"))
2732 (package
2733 (name "sbcl-cl-webkit")
2734 (version (git-version "2.4" "1" commit))
2735 (source
2736 (origin
2737 (method git-fetch)
2738 (uri (git-reference
2739 (url "https://github.com/jmercouris/cl-webkit")
2740 (commit commit)))
2741 (file-name (git-file-name "cl-webkit" version))
2742 (sha256
2743 (base32
2744 "0f5lyn9i7xrn3g1bddga377mcbawkbxydijpg389q4n04gqj0vwf"))))
2745 (build-system asdf-build-system/sbcl)
2746 (inputs
2747 `(("cffi" ,sbcl-cffi)
2748 ("cl-cffi-gtk" ,sbcl-cl-cffi-gtk)
2749 ("webkitgtk" ,webkitgtk)))
2750 (arguments
2751 `(#:asd-file "webkit2/cl-webkit2.asd"
2752 #:asd-system-name "cl-webkit2"
2753 #:phases
2754 (modify-phases %standard-phases
2755 (add-after 'unpack 'fix-paths
2756 (lambda* (#:key inputs #:allow-other-keys)
2757 (substitute* "webkit2/webkit2.init.lisp"
2758 (("libwebkit2gtk" all)
2759 (string-append
2760 (assoc-ref inputs "webkitgtk") "/lib/" all))))))))
2761 (home-page "https://github.com/jmercouris/cl-webkit")
2762 (synopsis "Binding to WebKitGTK+ for Common Lisp")
2763 (description
2764 "@command{cl-webkit} is a binding to WebKitGTK+ for Common Lisp,
2765currently targeting WebKit version 2. The WebKitGTK+ library adds web
2766browsing capabilities to an application, leveraging the full power of the
2767WebKit browsing engine.")
2768 (license license:expat))))
2769
2770(define-public cl-webkit
2771 (sbcl-package->cl-source-package sbcl-cl-webkit))
2772
2773(define-public sbcl-lparallel
2774 (package
2775 (name "sbcl-lparallel")
2776 (version "2.8.4")
2777 (source
2778 (origin
2779 (method git-fetch)
2780 (uri (git-reference
2781 (url "https://github.com/lmj/lparallel/")
2782 (commit (string-append "lparallel-" version))))
2783 (file-name (git-file-name "lparallel" version))
2784 (sha256
2785 (base32
2786 "0g0aylrbbrqsz0ahmwhvnk4cmc2931fllbpcfgzsprwnqqd7vwq9"))))
2787 (build-system asdf-build-system/sbcl)
2788 (inputs
2789 `(("alexandria" ,sbcl-alexandria)
2790 ("bordeaux-threads" ,sbcl-bordeaux-threads)
2791 ("trivial-garbage" ,sbcl-trivial-garbage)))
2792 (home-page "https://lparallel.org/")
2793 (synopsis "Parallelism for Common Lisp")
2794 (description
2795 "@command{lparallel} is a library for parallel programming in Common
2796Lisp, featuring:
2797
2798@itemize
2799@item a simple model of task submission with receiving queue,
2800@item constructs for expressing fine-grained parallelism,
2801@item asynchronous condition handling across thread boundaries,
2802@item parallel versions of map, reduce, sort, remove, and many others,
2803@item promises, futures, and delayed evaluation constructs,
2804@item computation trees for parallelizing interconnected tasks,
2805@item bounded and unbounded FIFO queues,
2806@item high and low priority tasks,
2807@item task killing by category,
2808@item integrated timeouts.
2809@end itemize\n")
2810 (license license:expat)))
2811
2812(define-public cl-lparallel
2813 (sbcl-package->cl-source-package sbcl-lparallel))
2814
2815(define-public ecl-lparallel
2816 (sbcl-package->ecl-package sbcl-lparallel))
2817
2818(define-public sbcl-cl-markup
2819 (let ((commit "e0eb7debf4bdff98d1f49d0f811321a6a637b390"))
2820 (package
2821 (name "sbcl-cl-markup")
2822 (version (git-version "0.1" "1" commit))
2823 (source
2824 (origin
2825 (method git-fetch)
2826 (uri (git-reference
2827 (url "https://github.com/arielnetworks/cl-markup/")
2828 (commit commit)))
2829 (file-name (git-file-name "cl-markup" version))
2830 (sha256
2831 (base32
2832 "10l6k45971dl13fkdmva7zc6i453lmq9j4xax2ci6pjzlc6xjhp7"))))
2833 (build-system asdf-build-system/sbcl)
2834 (home-page "https://github.com/arielnetworks/cl-markup/")
2835 (synopsis "Markup generation library for Common Lisp")
2836 (description
2837 "A modern markup generation library for Common Lisp that features:
2838
2839@itemize
2840@item Fast (even faster through compiling the code)
2841@item Safety
2842@item Support for multiple document types (markup, xml, html, html5, xhtml)
2843@item Output with doctype
2844@item Direct output to stream
2845@end itemize\n")
2846 (license license:lgpl3+))))
2847
2848(define-public cl-markup
2849 (sbcl-package->cl-source-package sbcl-cl-markup))
2850
2851(define-public ecl-cl-markup
2852 (sbcl-package->ecl-package sbcl-cl-markup))
2853
2854(define-public sbcl-cl-css
2855 (let ((commit "8fe654c8f0cf95b300718101cce4feb517f78e2f"))
2856 (package
2857 (name "sbcl-cl-css")
2858 (version (git-version "0.1" "1" commit))
2859 (source
2860 (origin
2861 (method git-fetch)
2862 (uri (git-reference
2863 (url "https://github.com/inaimathi/cl-css/")
2864 (commit commit)))
2865 (file-name (git-file-name "cl-css" version))
2866 (sha256
2867 (base32
2868 "1lc42zi2sw11fl2589sc19nr5sd2p0wy7wgvgwaggxa5f3ajhsmd"))))
2869 (build-system asdf-build-system/sbcl)
2870 (home-page "https://github.com/inaimathi/cl-css/")
2871 (synopsis "Non-validating, inline CSS generator for Common Lisp")
2872 (description
2873 "This is a dead-simple, non validating, inline CSS generator for Common
2874Lisp. Its goals are axiomatic syntax, simple implementation to support
2875portability, and boilerplate reduction in CSS.")
2876 (license license:expat))))
2877
2878(define-public cl-css
2879 (sbcl-package->cl-source-package sbcl-cl-css))
2880
2881(define-public ecl-cl-css
2882 (sbcl-package->ecl-package sbcl-cl-css))
2883
2884(define-public sbcl-portable-threads
2885 (let ((commit "c0e61a1faeb0583c80fd3f20b16cc4c555226920"))
2886 (package
2887 (name "sbcl-portable-threads")
2888 (version (git-version "2.3" "1" commit))
2889 (source
2890 (origin
2891 (method git-fetch)
2892 (uri (git-reference
2893 (url "https://github.com/binghe/portable-threads/")
2894 (commit commit)))
2895 (file-name (git-file-name "portable-threads" version))
2896 (sha256
2897 (base32
2898 "03fmxyarc0xf4kavwkfa0a2spkyfrz6hbgbi9y4q7ny5aykdyfaq"))))
2899 (build-system asdf-build-system/sbcl)
2900 (arguments
2901 `(;; Tests seem broken.
2902 #:tests? #f))
2903 (home-page "https://github.com/binghe/portable-threads")
2904 (synopsis "Portable threads (and scheduled and periodic functions) API for Common Lisp")
2905 (description
2906 "Portable Threads (and Scheduled and Periodic Functions) API for Common
2907Lisp (from GBBopen project).")
2908 (license license:asl2.0))))
2909
2910(define-public cl-portable-threads
2911 (sbcl-package->cl-source-package sbcl-portable-threads))
2912
2913(define-public ecl-portable-threada
2914 (sbcl-package->ecl-package sbcl-portable-threads))
2915
2916(define-public sbcl-usocket-boot0
2917 ;; usocket's test rely on usocket-server which depends on usocket itself.
2918 ;; We break this cyclic dependency with -boot0 that packages usocket.
2919 (let ((commit "86e7efbfe50101931edf4b67cdcfa7e221ecfde9"))
2920 (package
2921 (name "sbcl-usocket-boot0")
2922 (version (git-version "0.7.1" "1" commit))
2923 (source
2924 (origin
2925 (method git-fetch)
2926 (uri (git-reference
2927 (url "https://github.com/usocket/usocket/")
2928 (commit commit)))
2929 (file-name (git-file-name "usocket" version))
2930 (sha256
2931 (base32
2932 "1lk6ipakrib7kdgzw44hrgmls9akp5pz4h35yynw0k5zwmmq6374"))))
2933 (build-system asdf-build-system/sbcl)
2934 (inputs
2935 `(("split-sequence" ,sbcl-split-sequence)))
2936 (arguments
2937 `(#:tests? #f
2938 #:asd-system-name "usocket"))
2939 (home-page "https://common-lisp.net/project/usocket/")
2940 (synopsis "Universal socket library for Common Lisp (server side)")
2941 (description
2942 "This library strives to provide a portable TCP/IP and UDP/IP socket
2943interface for as many Common Lisp implementations as possible, while keeping
2944the abstraction and portability layer as thin as possible.")
2945 (license license:expat))))
2946
2947(define-public sbcl-usocket-server
2948 (package
2949 (inherit sbcl-usocket-boot0)
2950 (name "sbcl-usocket-server")
2951 (inputs
2952 `(("usocket" ,sbcl-usocket-boot0)
2953 ("portable-threads" ,sbcl-portable-threads)))
2954 (arguments
2955 '(#:asd-system-name "usocket-server"))
2956 (synopsis "Universal socket library for Common Lisp (server side)")))
2957
2958(define-public cl-usocket-server
2959 (sbcl-package->cl-source-package sbcl-usocket-server))
2960
2961(define-public ecl-socket-server
2962 (sbcl-package->ecl-package sbcl-usocket-server))
2963
2964(define-public sbcl-usocket
2965 (package
2966 (inherit sbcl-usocket-boot0)
2967 (name "sbcl-usocket")
2968 (arguments
2969 ;; FIXME: Tests need network access?
2970 `(#:tests? #f))
2971 (native-inputs
2972 ;; Testing only.
2973 `(("usocket-server" ,sbcl-usocket-server)
2974 ("rt" ,sbcl-rt)))))
2975
2976(define-public cl-usocket
2977 (sbcl-package->cl-source-package sbcl-usocket))
2978
2979(define-public ecl-socket
2980 (sbcl-package->ecl-package sbcl-usocket))
2981
2982(define-public sbcl-s-xml
2983 (package
2984 (name "sbcl-s-xml")
2985 (version "3")
2986 (source
2987 (origin
2988 (method url-fetch)
2989 (uri "https://common-lisp.net/project/s-xml/s-xml.tgz")
2990 (sha256
2991 (base32
2992 "061qcr0dzshsa38s5ma4ay924cwak2nq9gy59dw6v9p0qb58nzjf"))))
2993 (build-system asdf-build-system/sbcl)
2994 (home-page "https://common-lisp.net/project/s-xml/")
2995 (synopsis "Simple XML parser implemented in Common Lisp")
2996 (description
2997 "S-XML is a simple XML parser implemented in Common Lisp. This XML
2998parser implementation has the following features:
2999
3000@itemize
3001@item It works (handling many common XML usages).
3002@item It is very small (the core is about 700 lines of code, including
3003comments and whitespace).
3004@item It has a core API that is simple, efficient and pure functional, much
3005like that from SSAX (see also http://ssax.sourceforge.net).
3006@item It supports different DOM models: an XSML-based one, an LXML-based one
3007and a classic xml-element struct based one.
3008@item It is reasonably time and space efficient (internally avoiding garbage
3009generatation as much as possible).
3010@item It does support CDATA.
3011@item It should support the same character sets as your Common Lisp
3012implementation.
3013@item It does support XML name spaces.
3014@end itemize
3015
3016This XML parser implementation has the following limitations:
3017
3018@itemize
3019@item It does not support any special tags (like processing instructions).
3020@item It is not validating, even skips DTD's all together.
3021@end itemize\n")
3022 (license license:lgpl3+)))
3023
3024(define-public cl-s-xml
3025 (sbcl-package->cl-source-package sbcl-s-xml))
3026
3027(define-public ecl-s-xml
3028 (sbcl-package->ecl-package sbcl-s-xml))
3029
3030(define-public sbcl-s-xml-rpc
3031 (package
3032 (name "sbcl-s-xml-rpc")
3033 (version "7")
3034 (source
3035 (origin
3036 (method url-fetch)
3037 (uri "https://common-lisp.net/project/s-xml-rpc/s-xml-rpc.tgz")
3038 (sha256
3039 (base32
3040 "02z7k163d51v0pzk8mn1xb6h5s6x64gjqkslhwm3a5x26k2gfs11"))))
3041 (build-system asdf-build-system/sbcl)
3042 (inputs
3043 `(("s-xml" ,sbcl-s-xml)))
3044 (home-page "https://common-lisp.net/project/s-xml-rpc/")
3045 (synopsis "Implementation of XML-RPC in Common Lisp for both client and server")
3046 (description
3047 "S-XML-RPC is an implementation of XML-RPC in Common Lisp for both
3048client and server.")
3049 (license license:lgpl3+)))
3050
3051(define-public cl-s-xml-rpc
3052 (sbcl-package->cl-source-package sbcl-s-xml-rpc))
3053
3054(define-public ecl-s-xml-rpc
3055 (sbcl-package->ecl-package sbcl-s-xml-rpc))
3056
3057(define-public sbcl-trivial-clipboard
3058 (let ((commit "5af3415d1484e6d69a1b5c178f24680d9fd01796"))
3059 (package
3060 (name "sbcl-trivial-clipboard")
3061 (version (git-version "0.0.0.0" "2" commit))
3062 (source
3063 (origin
3064 (method git-fetch)
3065 (uri (git-reference
3066 (url "https://github.com/snmsts/trivial-clipboard")
3067 (commit commit)))
3068 (file-name (git-file-name "trivial-clipboard" version))
3069 (sha256
3070 (base32
3071 "1gb515z5yq6h5548pb1fwhmb0hhq1ssyb78pvxh4alq799xipxs9"))))
3072 (build-system asdf-build-system/sbcl)
3073 (inputs
3074 `(("xclip" ,xclip)))
3075 (native-inputs
3076 `(("fiveam" ,sbcl-fiveam)))
3077 (arguments
3078 `(#:phases
3079 (modify-phases %standard-phases
3080 (add-after 'unpack 'fix-paths
3081 (lambda* (#:key inputs #:allow-other-keys)
3082 (substitute* "src/text.lisp"
3083 (("\\(executable-find \"xclip\"\\)")
3084 (string-append "(executable-find \""
3085 (assoc-ref inputs "xclip")
3086 "/bin/xclip\")"))))))))
3087 (home-page "https://github.com/snmsts/trivial-clipboard")
3088 (synopsis "Access system clipboard in Common Lisp")
3089 (description
3090 "@command{trivial-clipboard} gives access to the system clipboard.")
3091 (license license:expat))))
3092
3093(define-public cl-trivial-clipboard
3094 (sbcl-package->cl-source-package sbcl-trivial-clipboard))
3095
3096(define-public ecl-trivial-clipboard
3097 (sbcl-package->ecl-package sbcl-trivial-clipboard))
3098
3099(define-public sbcl-trivial-backtrace
3100 (let ((commit "ca81c011b86424a381a7563cea3b924f24e6fbeb")
3101 (revision "1"))
3102 (package
3103 (name "sbcl-trivial-backtrace")
3104 (version (git-version "0.0.0" revision commit))
3105 (source
3106 (origin
3107 (method git-fetch)
3108 (uri (git-reference
3109 (url "https://github.com/gwkkwg/trivial-backtrace.git")
3110 (commit commit)))
3111 (file-name (git-file-name "trivial-backtrace" version))
3112 (sha256
3113 (base32 "10p41p43skj6cimdg8skjy7372s8v2xpkg8djjy0l8rm45i654k1"))))
3114 (build-system asdf-build-system/sbcl)
3115 (inputs
3116 `(("sbcl-lift" ,sbcl-lift)))
3117 (home-page "https://common-lisp.net/project/trivial-backtrace/")
3118 (synopsis "Portable simple API to work with backtraces in Common Lisp")
3119 (description
3120 "On of the many things that didn't quite get into the Common Lisp
3121standard was how to get a Lisp to output its call stack when something has
3122gone wrong. As such, each Lisp has developed its own notion of what to
3123display, how to display it, and what sort of arguments can be used to
3124customize it. @code{trivial-backtrace} is a simple solution to generating a
3125backtrace portably.")
3126 (license license:expat))))
3127
3128(define-public cl-trivial-backtrace
3129 (sbcl-package->cl-source-package sbcl-trivial-backtrace))
3130
3131(define-public sbcl-rfc2388
3132 (let ((commit "591bcf7e77f2c222c43953a80f8c297751dc0c4e")
3133 (revision "1"))
3134 (package
3135 (name "sbcl-rfc2388")
3136 (version (git-version "0.0.0" revision commit))
3137 (source
3138 (origin
3139 (method git-fetch)
3140 (uri (git-reference
3141 (url "https://github.com/jdz/rfc2388.git")
3142 (commit commit)))
3143 (file-name (git-file-name "rfc2388" version))
3144 (sha256
3145 (base32 "0phh5n3clhl9ji8jaxrajidn22d3f0aq87mlbfkkxlnx2pnw694k"))))
3146 (build-system asdf-build-system/sbcl)
3147 (home-page "https://github.com/jdz/rfc2388/")
3148 (synopsis "An implementation of RFC 2388 in Common Lisp")
3149 (description
3150 "This package contains an implementation of RFC 2388, which is used to
3151process form data posted with HTTP POST method using enctype
3152\"multipart/form-data\".")
3153 (license license:bsd-2))))
3154
3155(define-public cl-rfc2388
3156 (sbcl-package->cl-source-package sbcl-rfc2388))
3157
3158(define-public sbcl-md5
3159 (package
3160 (name "sbcl-md5")
3161 (version "2.0.4")
3162 (source
3163 (origin
3164 (method url-fetch)
3165 (uri (string-append
3166 "https://github.com/pmai/md5/archive/release-" version ".tar.gz"))
3167 (sha256
3168 (base32 "19yl9n0pjdz5gw4qi711lka97xcd9f81ylg434hk7jwn9f2s6w11"))))
3169 (build-system asdf-build-system/sbcl)
3170 (home-page "https://github.com/pmai/md5")
3171 (synopsis
3172 "Common Lisp implementation of the MD5 Message-Digest Algorithm (RFC 1321)")
3173 (description
3174 "This package implements The MD5 Message-Digest Algorithm, as defined in
3175RFC 1321 by R. Rivest, published April 1992.")
3176 (license license:public-domain)))
3177
3178(define-public cl-md5
3179 (sbcl-package->cl-source-package sbcl-md5))
3180
3181(define-public sbcl-cl+ssl
3182 (let ((commit "141ae91416bc40f1618dc07e48429b84388aa599")
3183 (revision "1"))
3184 (package
3185 (name "sbcl-cl+ssl")
3186 (version (git-version "0.0.0" revision commit))
3187 (source
3188 (origin
3189 (method git-fetch)
3190 (uri (git-reference
3191 (url "https://github.com/cl-plus-ssl/cl-plus-ssl.git")
3192 (commit commit)))
3193 (file-name (git-file-name "cl+ssl" version))
3194 (sha256
3195 (base32 "1s0hg1h9sf8q89v0yrxmzg5f5sng29rgx3n21r9h9yql8351myan"))))
3196 (build-system asdf-build-system/sbcl)
3197 (arguments
3198 '(#:phases
3199 (modify-phases %standard-phases
3200 (add-after 'unpack 'fix-paths
3201 (lambda* (#:key inputs #:allow-other-keys)
3202 (substitute* "src/reload.lisp"
3203 (("libssl.so" all)
3204 (string-append
3205 (assoc-ref inputs "openssl") "/lib/" all))))))))
3206 (inputs
3207 `(("openssl" ,openssl)
3208 ("sbcl-cffi" ,sbcl-cffi)
3209 ("sbcl-trivial-gray-streams" ,sbcl-trivial-gray-streams)
3210 ("sbcl-flexi-streams" ,sbcl-flexi-streams)
3211 ("sbcl-bordeaux-threads" ,sbcl-bordeaux-threads)
3212 ("sbcl-trivial-garbage" ,sbcl-trivial-garbage)
3213 ("sbcl-alexandria" ,sbcl-alexandria)
3214 ("sbcl-trivial-features" ,sbcl-trivial-features)))
3215 (home-page "http://common-lisp.net/project/cl-plus-ssl/")
3216 (synopsis "Common Lisp bindings to OpenSSL")
3217 (description
3218 "This library is a fork of SSL-CMUCL. The original SSL-CMUCL source
3219code was written by Eric Marsden and includes contributions by Jochen Schmidt.
3220Development into CL+SSL was done by David Lichteblau.")
3221 (license license:expat))))
3222
3223(define-public cl-cl+ssl
3224 (sbcl-package->cl-source-package sbcl-cl+ssl))
3225
3226(define-public sbcl-kmrcl
3227 (let ((version "1.109.0")
3228 (commit "5260068b2eb735af6796740c2db4955afac21636")
3229 (revision "1"))
3230 (package
3231 (name "sbcl-kmrcl")
3232 (version (git-version version revision commit))
3233 (source
3234 (origin
3235 (method git-fetch)
3236 (uri (git-reference
3237 (url "http://git.kpe.io/kmrcl.git/")
3238 (commit commit)))
3239 (file-name (git-file-name name version))
3240 (sha256
3241 (base32 "1va7xjgzfv674bpsli674i7zj3f7wg5kxic41kz18r6hh4n52dfv"))))
3242 (build-system asdf-build-system/sbcl)
3243 (arguments
3244 ;; Tests fail with: :FORCE and :FORCE-NOT arguments not allowed in a
3245 ;; nested call to ASDF/OPERATE:OPERATE unless identically to toplevel
3246 '(#:tests? #f))
3247 (inputs
3248 `(("sbcl-rt" ,sbcl-rt)))
3249 (home-page "http://files.kpe.io/kmrcl/")
3250 (synopsis "General utilities for Common Lisp programs")
3251 (description
3252 "KMRCL is a collection of utilities used by a number of Kevin
3253Rosenberg's CL packages.")
3254 (license license:llgpl))))
3255
3256(define-public cl-kmrcl
3257 (sbcl-package->cl-source-package sbcl-kmrcl))
3258
3259(define-public sbcl-cl-base64
3260 (let ((version "3.3.3"))
3261 (package
3262 (name "sbcl-cl-base64")
3263 (version version)
3264 (source
3265 (origin
3266 (method git-fetch)
3267 (uri (git-reference
3268 (url "http://git.kpe.io/cl-base64.git")
3269 (commit (string-append "v" version))))
3270 (file-name (git-file-name "cl-base64" version))
3271 (sha256
3272 (base32 "1dw6j7n6gsd2qa0p0rbsjxj00acxx3i9ca1qkgl0liy8lpnwkypl"))))
3273 (build-system asdf-build-system/sbcl)
3274 (arguments
3275 ;; Tests fail with: :FORCE and :FORCE-NOT arguments not allowed
3276 ;; in a nested call to ASDF/OPERATE:OPERATE unless identically
3277 ;; to toplevel
3278 '(#:tests? #f))
3279 (inputs
3280 `(("sbcl-ptester" ,sbcl-ptester)
3281 ("sbcl-kmrcl" ,sbcl-kmrcl)))
3282 (home-page "http://files.kpe.io/cl-base64/")
3283 (synopsis
3284 "Common Lisp package to encode and decode base64 with URI support")
3285 (description
3286 "This package provides highly optimized base64 encoding and decoding.
3287Besides conversion to and from strings, integer conversions are supported.
3288Encoding with Uniform Resource Identifiers is supported by using a modified
3289encoding table that uses only URI-compatible characters.")
3290 (license license:bsd-3))))
3291
3292(define-public cl-base64
3293 (sbcl-package->cl-source-package sbcl-cl-base64))
3294
3295(define-public sbcl-chunga
3296 (package
3297 (name "sbcl-chunga")
3298 (version "1.1.7")
3299 (source
3300 (origin
3301 (method git-fetch)
3302 (uri (git-reference
3303 (url "https://github.com/edicl/chunga.git")
3304 (commit (string-append "v" version))))
3305 (file-name (git-file-name name version))
3306 (sha256
3307 (base32 "0jzn3nyb3f22gm983rfk99smqs3mhb9ivjmasvhq9qla5cl9pyhd"))))
3308 (build-system asdf-build-system/sbcl)
3309 (inputs
3310 `(("sbcl-trivial-gray-streams" ,sbcl-trivial-gray-streams)))
3311 (home-page "https://edicl.github.io/chunga/")
3312 (synopsis "Portable chunked streams for Common Lisp")
3313 (description
3314 "Chunga implements streams capable of chunked encoding on demand as
3315defined in RFC 2616.")
3316 (license license:bsd-2)))
3317
3318(define-public cl-chunga
3319 (sbcl-package->cl-source-package sbcl-chunga))
3320
3321(define-public sbcl-cl-who
3322 (let ((version "1.1.4")
3323 (commit "2c08caa4bafba720409af9171feeba3f32e86d32")
3324 (revision "1"))
3325 (package
3326 (name "sbcl-cl-who")
3327 (version (git-version version revision commit))
3328 (source
3329 (origin
3330 (method git-fetch)
3331 (uri (git-reference
3332 (url "https://github.com/edicl/cl-who.git")
3333 (commit commit)))
3334 (file-name (git-file-name name version))
3335 (sha256
3336 (base32
3337 "0yjb6sr3yazm288m318kqvj9xk8rm9n1lpimgf65ymqv0i5agxsb"))))
3338 (build-system asdf-build-system/sbcl)
3339 (native-inputs
3340 `(("sbcl-flexi-streams" ,sbcl-flexi-streams)))
3341 (home-page "https://edicl.github.io/cl-who/")
3342 (synopsis "Yet another Lisp markup language")
3343 (description
3344 "There are plenty of Lisp Markup Languages out there - every Lisp
3345programmer seems to write at least one during his career - and CL-WHO (where
3346WHO means \"with-html-output\" for want of a better acronym) is probably just
3347as good or bad as the next one.")
3348 (license license:bsd-2))))
3349
3350(define-public cl-cl-who
3351 (sbcl-package->cl-source-package sbcl-cl-who))
3352
3353(define-public sbcl-chipz
3354 (let ((version "0.8")
3355 (commit "75dfbc660a5a28161c57f115adf74c8a926bfc4d")
3356 (revision "1"))
3357 (package
3358 (name "sbcl-chipz")
3359 (version (git-version version revision commit))
3360 (source
3361 (origin
3362 (method git-fetch)
3363 (uri (git-reference
3364 (url "https://github.com/froydnj/chipz.git")
3365 (commit commit)))
3366 (file-name (git-file-name name version))
3367 (sha256
3368 (base32
3369 "0plx4rs39zbs4gjk77h4a2q11zpy75fh9v8hnxrvsf8fnakajhwg"))))
3370 (build-system asdf-build-system/sbcl)
3371 (native-inputs
3372 `(("sbcl-flexi-streams" ,sbcl-flexi-streams)))
3373 (home-page "http://method-combination.net/lisp/chipz/")
3374 (synopsis
3375 "Common Lisp library for decompressing deflate, zlib, gzip, and bzip2
3376data")
3377 (description
3378 "DEFLATE data, defined in RFC1951, forms the core of popular
3379compression formats such as zlib (RFC 1950) and gzip (RFC 1952). As such,
3380Chipz also provides for decompressing data in those formats as well. BZIP2 is
3381the format used by the popular compression tool bzip2.")
3382 ;; The author describes it as "MIT-like"
3383 (license license:expat))))
3384
3385(define-public cl-chipz
3386 (sbcl-package->cl-source-package sbcl-chipz))
3387
3388(define-public sbcl-drakma
3389 (let ((version "2.0.4")
3390 (commit "7647c0ae842ff2058624e53979c7f297760c97a7")
3391 (revision "1"))
3392 (package
3393 (name "sbcl-drakma")
3394 (version (git-version version revision commit))
3395 (source
3396 (origin
3397 (method git-fetch)
3398 (uri (git-reference
3399 (url "https://github.com/edicl/drakma.git")
3400 (commit commit)))
3401 (file-name (git-file-name name version))
3402 (sha256
3403 (base32
3404 "1c4i9wakhj5pxfyyykxshdmv3180sbkrx6fcyynikmc0jd0rh84r"))))
3405 (build-system asdf-build-system/sbcl)
3406 (inputs
3407 `(("sbcl-puri" ,sbcl-puri)
3408 ("sbcl-cl-base64" ,sbcl-cl-base64)
3409 ("sbcl-chunga" ,sbcl-chunga)
3410 ("sbcl-flexi-streams" ,sbcl-flexi-streams)
3411 ("sbcl-cl-ppcre" ,sbcl-cl-ppcre)
3412 ("sbcl-chipz" ,sbcl-chipz)
3413 ("sbcl-usocket" ,sbcl-usocket)
3414 ("sbcl-cl+ssl" ,sbcl-cl+ssl)))
3415 (native-inputs
3416 `(("sbcl-fiveam" ,sbcl-fiveam)))
3417 (home-page "https://edicl.github.io/drakma/")
3418 (synopsis "HTTP client written in Common Lisp")
3419 (description
3420 "Drakma is a full-featured HTTP client implemented in Common Lisp. It
3421knows how to handle HTTP/1.1 chunking, persistent connections, re-usable
3422sockets, SSL, continuable uploads, file uploads, cookies, and more.")
3423 (license license:bsd-2))))
3424
3425(define-public cl-drakma
3426 (sbcl-package->cl-source-package sbcl-drakma))
3427
3428(define-public sbcl-hunchentoot
3429 (package
3430 (name "sbcl-hunchentoot")
3431 (version "1.2.38")
3432 (source
3433 (origin
3434 (method git-fetch)
3435 (uri (git-reference
3436 (url "https://github.com/edicl/hunchentoot.git")
3437 (commit (string-append "v" version))))
3438 (file-name (git-file-name "hunchentoot" version))
3439 (sha256
3440 (base32 "1anpcad7w045m4rsjs1f3xdhjwx5cppq1h0vlb3q7dz81fi3i6yq"))))
3441 (build-system asdf-build-system/sbcl)
3442 (native-inputs
3443 `(("sbcl-cl-who" ,sbcl-cl-who)
3444 ("sbcl-drakma" ,sbcl-drakma)))
3445 (inputs
3446 `(("sbcl-chunga" ,sbcl-chunga)
3447 ("sbcl-cl-base64" ,sbcl-cl-base64)
3448 ("sbcl-cl-fad" ,sbcl-cl-fad)
3449 ("sbcl-cl-ppcre" ,sbcl-cl-ppcre)
3450 ("sbcl-flexi-streams" ,sbcl-flexi-streams)
3451 ("sbcl-cl+ssl" ,sbcl-cl+ssl)
3452 ("sbcl-md5" ,sbcl-md5)
3453 ("sbcl-rfc2388" ,sbcl-rfc2388)
3454 ("sbcl-trivial-backtrace" ,sbcl-trivial-backtrace)
3455 ("sbcl-usocket" ,sbcl-usocket)))
3456 (home-page "https://edicl.github.io/hunchentoot/")
3457 (synopsis "Web server written in Common Lisp")
3458 (description
3459 "Hunchentoot is a web server written in Common Lisp and at the same
3460time a toolkit for building dynamic websites. As a stand-alone web server,
3461Hunchentoot is capable of HTTP/1.1 chunking (both directions), persistent
3462connections (keep-alive), and SSL.")
3463 (license license:bsd-2)))
3464
3465(define-public cl-hunchentoot
3466 (sbcl-package->cl-source-package sbcl-hunchentoot))
3467
3468(define-public sbcl-trivial-types
3469 (package
3470 (name "sbcl-trivial-types")
3471 (version "0.0.1")
3472 (source
3473 (origin
3474 (method git-fetch)
3475 (uri (git-reference
3476 (url "https://github.com/m2ym/trivial-types.git")
3477 (commit "ee869f2b7504d8aa9a74403641a5b42b16f47d88")))
3478 (file-name (git-file-name name version))
3479 (sha256
3480 (base32 "1s4cp9bdlbn8447q7w7f1wkgwrbvfzp20mgs307l5pxvdslin341"))))
3481 (build-system asdf-build-system/sbcl)
3482 (home-page "https://github.com/m2ym/trivial-types")
3483 (synopsis "Trivial type definitions for Common Lisp")
3484 (description
3485 "TRIVIAL-TYPES provides missing but important type definitions such as
3486PROPER-LIST, ASSOCIATION-LIST, PROPERTY-LIST and TUPLE.")
3487 (license license:llgpl)))
3488
3489(define-public cl-trivial-types
3490 (sbcl-package->cl-source-package sbcl-trivial-types))
3491
3492(define-public sbcl-cl-syntax
3493 (package
3494 (name "sbcl-cl-syntax")
3495 (version "0.0.3")
3496 (source
3497 (origin
3498 (method git-fetch)
3499 (uri (git-reference
3500 (url "https://github.com/m2ym/cl-syntax.git")
3501 (commit "03f0c329bbd55b8622c37161e6278366525e2ccc")))
3502 (file-name (git-file-name "cl-syntax" version))
3503 (sha256
3504 (base32 "17ran8xp77asagl31xv8w819wafh6whwfc9p6dgx22ca537gyl4y"))))
3505 (build-system asdf-build-system/sbcl)
3506 (arguments
3507 '(#:asd-file "cl-syntax.asd"
3508 #:asd-system-name "cl-syntax"))
3509 (inputs `(("sbcl-trivial-types" ,sbcl-trivial-types)
3510 ("sbcl-named-readtables" ,sbcl-named-readtables)))
3511 (home-page "https://github.com/m2ym/cl-syntax")
3512 (synopsis "Reader Syntax Coventions for Common Lisp and SLIME")
3513 (description
3514 "CL-SYNTAX provides Reader Syntax Coventions for Common Lisp and SLIME.")
3515 (license license:llgpl)))
3516
3517(define-public cl-syntax
3518 (sbcl-package->cl-source-package sbcl-cl-syntax))
3519
3520(define-public sbcl-cl-annot
3521 (let ((commit "c99e69c15d935eabc671b483349a406e0da9518d")
3522 (revision "1"))
3523 (package
3524 (name "sbcl-cl-annot")
3525 (version (git-version "0.0.0" revision commit))
3526 (source
3527 (origin
3528 (method git-fetch)
3529 (uri (git-reference
3530 (url "https://github.com/m2ym/cl-annot.git")
3531 (commit commit)))
3532 (file-name (git-file-name name version))
3533 (sha256
3534 (base32 "1wq1gs9jjd5m6iwrv06c2d7i5dvqsfjcljgbspfbc93cg5xahk4n"))))
3535 (build-system asdf-build-system/sbcl)
3536 (arguments
3537 '(#:asd-file "cl-annot.asd"
3538 #:asd-system-name "cl-annot"))
3539 (inputs
3540 `(("sbcl-alexandria" ,sbcl-alexandria)))
3541 (home-page "https://github.com/m2ym/cl-annot")
3542 (synopsis "Python-like Annotation Syntax for Common Lisp.")
3543 (description
3544 "@code{cl-annot} is an general annotation library for Common Lisp.")
3545 (license license:llgpl))))
3546
3547(define-public cl-annot
3548 (sbcl-package->cl-source-package sbcl-cl-annot))
3549
3550(define-public sbcl-cl-syntax-annot
3551 (package
3552 (name "sbcl-cl-syntax-annot")
3553 (version "0.0.3")
3554 (source
3555 (origin
3556 (method git-fetch)
3557 (uri (git-reference
3558 (url "https://github.com/m2ym/cl-syntax.git")
3559 (commit "03f0c329bbd55b8622c37161e6278366525e2ccc")))
3560 (file-name (git-file-name name version))
3561 (sha256
3562 (base32 "17ran8xp77asagl31xv8w819wafh6whwfc9p6dgx22ca537gyl4y"))))
3563 (build-system asdf-build-system/sbcl)
3564 (arguments
3565 '(#:asd-file "cl-syntax-annot.asd"
3566 #:asd-system-name "cl-syntax-annot"))
3567 (inputs
3568 `(("sbcl-cl-syntax" ,sbcl-cl-syntax)
3569 ("sbcl-cl-annot" ,sbcl-cl-annot)))
3570 (home-page "https://github.com/m2ym/cl-syntax")
3571 (synopsis "Reader Syntax Coventions for Common Lisp and SLIME")
3572 (description
3573 "CL-SYNTAX provides Reader Syntax Coventions for Common Lisp and
3574SLIME.")
3575 (license license:llgpl)))
3576
3577(define-public cl-syntax-annot
3578 (sbcl-package->cl-source-package sbcl-cl-syntax-annot))
3579
3580(define-public sbcl-cl-utilities
3581 (let ((commit "dce2d2f6387091ea90357a130fa6d13a6776884b")
3582 (revision "1"))
3583 (package
3584 (name "sbcl-cl-utilities")
3585 (version (git-version "0.0.0" revision commit))
3586 (source
3587 (origin
3588 (method url-fetch)
3589 (uri
3590 (string-append
3591 "https://gitlab.common-lisp.net/cl-utilities/cl-utilities/-/"
3592 "archive/" commit "/cl-utilities-" commit ".tar.gz"))
3593 (sha256
3594 (base32 "1r46v730yf96nk2vb24qmagv9x96xvd08abqwhf02ghgydv1a7z2"))))
3595 (build-system asdf-build-system/sbcl)
3596 (arguments
3597 '(#:asd-file "cl-utilities.asd"
3598 #:asd-system-name "cl-utilities"
3599 #:phases
3600 (modify-phases %standard-phases
3601 (add-after 'unpack 'fix-paths
3602 (lambda* (#:key inputs #:allow-other-keys)
3603 (substitute* "rotate-byte.lisp"
3604 (("in-package :cl-utilities)" all)
3605 "in-package :cl-utilities)\n\n#+sbcl\n(require :sb-rotate-byte)")))))))
3606 (home-page "http://common-lisp.net/project/cl-utilities")
3607 (synopsis "A collection of semi-standard utilities")
3608 (description
3609 "On Cliki.net <http://www.cliki.net/Common%20Lisp%20Utilities>, there
3610is a collection of Common Lisp Utilities, things that everybody writes since
3611they're not part of the official standard. There are some very useful things
3612there; the only problems are that they aren't implemented as well as you'd
3613like (some aren't implemented at all) and they aren't conveniently packaged
3614and maintained. It takes quite a bit of work to carefully implement utilities
3615for common use, commented and documented, with error checking placed
3616everywhere some dumb user might make a mistake.")
3617 (license license:public-domain))))
3618
3619(define-public cl-utilities
3620 (sbcl-package->cl-source-package sbcl-cl-utilities))
3621
3622(define-public sbcl-map-set
3623 (let ((commit "7b4b545b68b8")
3624 (revision "1"))
3625 (package
3626 (name "sbcl-map-set")
3627 (version (git-version "0.0.0" revision commit))
3628 (source
3629 (origin
3630 (method url-fetch)
3631 (uri (string-append
3632 "https://bitbucket.org/tarballs_are_good/map-set/get/"
3633 commit ".tar.gz"))
3634 (sha256
3635 (base32 "1sx5j5qdsy5fklspfammwb16kjrhkggdavm922a9q86jm5l0b239"))))
3636 (build-system asdf-build-system/sbcl)
3637 (home-page "https://bitbucket.org/tarballs_are_good/map-set")
3638 (synopsis "Set-like data structure")
3639 (description
3640 "Implementation of a set-like data structure with constant time
3641addition, removal, and random selection.")
3642 (license license:bsd-3))))
3643
3644(define-public cl-map-set
3645 (sbcl-package->cl-source-package sbcl-map-set))
3646
3647(define-public sbcl-quri
3648 (let ((commit "76b75103f21ead092c9f715512fa82441ef61185")
3649 (revision "1"))
3650 (package
3651 (name "sbcl-quri")
3652 (version (git-version "0.1.0" revision commit))
3653 (source
3654 (origin
3655 (method git-fetch)
3656 (uri (git-reference
3657 (url "https://github.com/fukamachi/quri.git")
3658 (commit commit)))
3659 (file-name (git-file-name name version))
3660 (sha256
3661 (base32 "1ccbxsgzdibmzq33mmbmmz9vwl6l03xh6nbpsh1hkdvdcl7q0a60"))))
3662 (build-system asdf-build-system/sbcl)
3663 (arguments
3664 ;; Tests fail with: Component QURI-ASD::QURI-TEST not found,
3665 ;; required by #<SYSTEM "quri">. Why?
3666 '(#:tests? #f))
3667 (native-inputs `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
3668 ("sbcl-prove" ,sbcl-prove)))
3669 (inputs `(("sbcl-babel" ,sbcl-babel)
3670 ("sbcl-split-sequence" ,sbcl-split-sequence)
3671 ("sbcl-cl-utilities" ,sbcl-cl-utilities)
3672 ("sbcl-alexandria" ,sbcl-alexandria)))
3673 (home-page "https://github.com/fukamachi/quri")
3674 (synopsis "Yet another URI library for Common Lisp")
3675 (description
3676 "QURI (pronounced \"Q-ree\") is yet another URI library for Common
3677Lisp. It is intended to be a replacement of PURI.")
3678 (license license:bsd-3))))
3679
3680(define-public cl-quri
3681 (sbcl-package->cl-source-package sbcl-quri))
3682
3683(define-public sbcl-myway
3684 (let ((commit "286230082a11f879c18b93f17ca571c5f676bfb7")
3685 (revision "1"))
3686 (package
3687 (name "sbcl-myway")
3688 (version (git-version "0.1.0" revision commit))
3689 (source
3690 (origin
3691 (method git-fetch)
3692 (uri (git-reference
3693 (url "https://github.com/fukamachi/myway.git")
3694 (commit commit)))
3695 (file-name (git-file-name "myway" version))
3696 (sha256
3697 (base32 "0briia9bk3lbr0frnx39d1qg6i38dm4j6z9w3yga3d40k6df4a90"))))
3698 (build-system asdf-build-system/sbcl)
3699 (arguments
3700 ;; Tests fail with: Component MYWAY-ASD::MYWAY-TEST not found, required
3701 ;; by #<SYSTEM "myway">. Why?
3702 '(#:tests? #f))
3703 (native-inputs
3704 `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
3705 ("sbcl-prove" ,sbcl-prove)))
3706 (inputs
3707 `(("sbcl-cl-ppcre" ,sbcl-cl-ppcre)
3708 ("sbcl-quri" ,sbcl-quri)
3709 ("sbcl-map-set" ,sbcl-map-set)))
3710 (home-page "https://github.com/fukamachi/myway")
3711 (synopsis "Sinatra-compatible URL routing library for Common Lisp")
3712 (description "My Way is a Sinatra-compatible URL routing library.")
3713 (license license:llgpl))))
3714
3715(define-public cl-myway
3716 (sbcl-package->cl-source-package sbcl-myway))
3717
3718(define-public sbcl-xsubseq
3719 (let ((commit "5ce430b3da5cda3a73b9cf5cee4df2843034422b")
3720 (revision "1"))
3721 (package
3722 (name "sbcl-xsubseq")
3723 (version (git-version "0.0.1" revision commit))
3724 (source
3725 (origin
3726 (method git-fetch)
3727 (uri (git-reference
3728 (url "https://github.com/fukamachi/xsubseq")
3729 (commit commit)))
3730 (file-name (git-file-name name version))
3731 (sha256
3732 (base32 "1xz79q0p2mclf3sqjiwf6izdpb6xrsr350bv4mlmdlm6rg5r99px"))))
3733 (build-system asdf-build-system/sbcl)
3734 (arguments
3735 ;; Tests fail with: Component XSUBSEQ-ASD::XSUBSEQ-TEST not found,
3736 ;; required by #<SYSTEM "xsubseq">. Why?
3737 '(#:tests? #f))
3738 (native-inputs
3739 `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
3740 ("sbcl-prove" ,sbcl-prove)))
3741 (home-page "https://github.com/fukamachi/xsubseq")
3742 (synopsis "Efficient way to use \"subseq\"s in Common Lisp")
3743 (description
3744 "XSubseq provides functions to be able to handle \"subseq\"s more
3745effieiently.")
3746 (license license:bsd-2))))
3747
3748(define-public cl-xsubseq
3749 (sbcl-package->cl-source-package sbcl-xsubseq))
3750
3751(define-public sbcl-smart-buffer
3752 (let ((commit "09b9a9a0b3abaa37abe9a730f5aac2643dca4e62")
3753 (revision "1"))
3754 (package
3755 (name "sbcl-smart-buffer")
3756 (version (git-version "0.0.1" revision commit))
3757 (source
3758 (origin
3759 (method git-fetch)
3760 (uri (git-reference
3761 (url "https://github.com/fukamachi/smart-buffer")
3762 (commit commit)))
3763 (file-name (git-file-name name version))
3764 (sha256
3765 (base32 "0qz1zzxx0wm5ff7gpgsq550a59p0qj594zfmm2rglj97dahj54l7"))))
3766 (build-system asdf-build-system/sbcl)
3767 (arguments
3768 ;; Tests fail with: Component SMART-BUFFER-ASD::SMART-BUFFER-TEST not
3769 ;; found, required by #<SYSTEM "smart-buffer">. Why?
3770 `(#:tests? #f))
3771 (native-inputs
3772 `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
3773 ("sbcl-prove" ,sbcl-prove)))
3774 (inputs
3775 `(("sbcl-xsubseq" ,sbcl-xsubseq)
3776 ("sbcl-flexi-streams" ,sbcl-flexi-streams)))
3777 (home-page "https://github.com/fukamachi/smart-buffer")
3778 (synopsis "Smart octets buffer")
3779 (description
3780 "Smart-buffer provides an output buffer which changes the destination
3781depending on content size.")
3782 (license license:bsd-3))))
3783
3784(define-public cl-smart-buffer
3785 (sbcl-package->cl-source-package sbcl-smart-buffer))
3786
3787(define-public sbcl-fast-http
3788 (let ((commit "f9e7597191bae380503e20724fd493a24d024935")
3789 (revision "1"))
3790 (package
3791 (name "sbcl-fast-http")
3792 (version (git-version "0.2.0" revision commit))
3793 (source
3794 (origin
3795 (method git-fetch)
3796 (uri (git-reference
3797 (url "https://github.com/fukamachi/fast-http")
3798 (commit commit)))
3799 (file-name (git-file-name name version))
3800 (sha256
3801 (base32 "0qdmwv2zm0sizxdb8nnclgwl0nfjcbjaimbakavikijw7lr9b4jp"))))
3802 (build-system asdf-build-system/sbcl)
3803 (arguments
3804 ;; Tests fail with: Component FAST-HTTP-ASD::FAST-HTTP-TEST not found,
3805 ;; required by #<SYSTEM "fast-http">. Why?
3806 `(#:tests? #f))
3807 (native-inputs
3808 `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
3809 ("sbcl-prove" ,sbcl-prove)))
3810 (inputs
3811 `(("sbcl-alexandria" ,sbcl-alexandria)
3812 ("sbcl-proc-parse" ,sbcl-proc-parse)
3813 ("sbcl-xsubseq" ,sbcl-xsubseq)
3814 ("sbcl-smart-buffer" ,sbcl-smart-buffer)
3815 ("sbcl-cl-utilities" ,sbcl-cl-utilities)))
3816 (home-page "https://github.com/fukamachi/fast-http")
3817 (synopsis "HTTP request/response parser for Common Lisp")
3818 (description
3819 "@code{fast-http} is a HTTP request/response protocol parser for Common
3820Lisp.")
3821 ;; Author specified the MIT license
3822 (license license:expat))))
3823
3824(define-public cl-fast-http
3825 (sbcl-package->cl-source-package sbcl-fast-http))
3826
3827(define-public sbcl-static-vectors
3828 (let ((commit "0681eac1f49370cde03e64b077251e8abf47d702")
3829 (revision "1"))
3830 (package
3831 (name "sbcl-static-vectors")
3832 (version (git-version "1.8.3" revision commit))
3833 (source
3834 (origin
3835 (method git-fetch)
3836 (uri (git-reference
3837 (url "https://github.com/sionescu/static-vectors.git")
3838 (commit commit)))
3839 (file-name (git-file-name name version))
3840 (sha256
3841 (base32 "138nlsq14hv8785ycjm6jw3i6ablhq8vcwys7q09y80arcgrg6r3"))))
3842 (native-inputs
3843 `(("sbcl-fiveam" ,sbcl-fiveam)))
3844 (inputs
3845 `(("sbcl-cffi-grovel" ,sbcl-cffi-grovel)
3846 ("sbcl-cffi" ,sbcl-cffi)))
3847 (build-system asdf-build-system/sbcl)
3848 (home-page "http://common-lisp.net/projects/iolib/")
3849 (synopsis "Allocate SIMPLE-ARRAYs in static memory")
3850 (description
3851 "With @code{static-vectors}, you can create vectors allocated in static
3852memory.")
3853 (license license:expat))))
3854
3855(define-public cl-static-vectors
3856 (sbcl-package->cl-source-package sbcl-static-vectors))
3857
3858(define-public sbcl-marshal
3859 (let ((commit "eff1b15f2b0af2f26f71ad6a4dd5c4beab9299ec")
3860 (revision "1"))
3861 (package
3862 (name "sbcl-marshal")
3863 (version (git-version "1.3.0" revision commit))
3864 (source
3865 (origin
3866 (method git-fetch)
3867 (uri (git-reference
3868 (url "https://github.com/wlbr/cl-marshal.git")
3869 (commit commit)))
3870 (file-name (git-file-name name version))
3871 (sha256
3872 (base32 "08qs6fhk38xpkkjkpcj92mxx0lgy4ygrbbzrmnivdx281syr0gwh"))))
3873 (build-system asdf-build-system/sbcl)
3874 (home-page "https://github.com/wlbr/cl-marshal")
3875 (synopsis "Simple (de)serialization of Lisp datastructures")
3876 (description
3877 "Simple and fast marshalling of Lisp datastructures. Convert any object
3878into a string representation, put it on a stream an revive it from there.
3879Only minimal changes required to make your CLOS objects serializable.")
3880 (license license:expat))))
3881
3882(define-public cl-marshal
3883 (sbcl-package->cl-source-package sbcl-marshal))
3884
3885(define-public sbcl-checkl
3886 (let ((commit "80328800d047fef9b6e32dfe6bdc98396aee3cc9")
3887 (revision "1"))
3888 (package
3889 (name "sbcl-checkl")
3890 (version (git-version "0.0.0" revision commit))
3891 (source
3892 (origin
3893 (method git-fetch)
3894 (uri (git-reference
3895 (url "https://github.com/rpav/CheckL.git")
3896 (commit commit)))
3897 (file-name (git-file-name name version))
3898 (sha256
3899 (base32 "0bpisihx1gay44xmyr1dmhlwh00j0zzi04rp9fy35i95l2r4xdlx"))))
3900 (build-system asdf-build-system/sbcl)
3901 (arguments
3902 ;; Error while trying to load definition for system checkl-test from
3903 ;; pathname [...]/checkl-test.asd: The function CHECKL:DEFINE-TEST-OP
3904 ;; is undefined.
3905 '(#:tests? #f))
3906 (native-inputs
3907 `(("sbcl-fiveam" ,sbcl-fiveam)))
3908 (inputs
3909 `(("sbcl-marshal" ,sbcl-marshal)))
3910 (home-page "https://github.com/rpav/CheckL/")
3911 (synopsis "Dynamic testing for Common Lisp")
3912 (description
3913 "CheckL lets you write tests dynamically, it checks resulting values
3914against the last run.")
3915 ;; The author specifies both LLGPL and "BSD", but the "BSD" license
3916 ;; isn't specified anywhere, so I don't know which kind. LLGPL is the
3917 ;; stronger of the two and so I think only listing this should suffice.
3918 (license license:llgpl))))
3919
3920(define-public cl-checkl
3921 (sbcl-package->cl-source-package sbcl-checkl))
3922
3923(define-public sbcl-fast-io
3924 (let ((commit "dc3a71db7e9b756a88781ae9c342fe9d4bbab51c")
3925 (revision "1"))
3926 (package
3927 (name "sbcl-fast-io")
3928 (version (git-version "1.0.0" revision commit))
3929 (source
3930 (origin
3931 (method git-fetch)
3932 (uri (git-reference
3933 (url "https://github.com/rpav/fast-io.git")
3934 (commit commit)))
3935 (file-name (git-file-name name version))
3936 (sha256
3937 (base32 "1jsp6xvi26ln6fdy5j5zi05xvan8jsqdhisv552dy6xg6ws8i1yq"))))
3938 (build-system asdf-build-system/sbcl)
3939 (arguments
3940 ;; Error while trying to load definition for system fast-io-test from
3941 ;; pathname [...]/fast-io-test.asd: The function CHECKL:DEFINE-TEST-OP
3942 ;; is undefined.
3943 '(#:tests? #f))
3944 (native-inputs
3945 `(("sbcl-fiveam" ,sbcl-fiveam)
3946 ("sbcl-checkl" ,sbcl-checkl)))
3947 (inputs
3948 `(("sbcl-alexandria" ,sbcl-alexandria)
3949 ("sbcl-trivial-gray-streams" ,sbcl-trivial-gray-streams)
3950 ("sbcl-static-vectors" ,sbcl-static-vectors)))
3951 (home-page "https://github.com/rpav/fast-io")
3952 (synopsis "Fast octet-vector/stream I/O for Common Lisp")
3953 (description
3954 "Fast-io is about improving performance to octet-vectors and octet
3955streams (though primarily the former, while wrapping the latter).")
3956 ;; Author specifies this as NewBSD which is an alias
3957 (license license:bsd-3))))
3958
3959(define-public cl-fast-io
3960 (sbcl-package->cl-source-package sbcl-fast-io))
3961
3962(define-public sbcl-jonathan
3963 (let ((commit "1f448b4f7ac8265e56e1c02b32ce383e65316300")
3964 (revision "1"))
3965 (package
3966 (name "sbcl-jonathan")
3967 (version (git-version "0.1.0" revision commit))
3968 (source
3969 (origin
3970 (method git-fetch)
3971 (uri (git-reference
3972 (url "https://github.com/Rudolph-Miller/jonathan.git")
3973 (commit commit)))
3974 (file-name (git-file-name name version))
3975 (sha256
3976 (base32 "14x4iwz3mbag5jzzzr4sb6ai0m9r4q4kyypbq32jmsk2dx1hi807"))))
3977 (build-system asdf-build-system/sbcl)
3978 (arguments
3979 ;; Tests fail with: Component JONATHAN-ASD::JONATHAN-TEST not found,
3980 ;; required by #<SYSTEM "jonathan">. Why?
3981 `(#:tests? #f))
3982 (native-inputs
3983 `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
3984 ("sbcl-prove" ,sbcl-prove)))
3985 (inputs
3986 `(("sbcl-cl-syntax" ,sbcl-cl-syntax)
3987 ("sbcl-cl-syntax-annot" ,sbcl-cl-syntax-annot)
3988 ("sbcl-fast-io" ,sbcl-fast-io)
3989 ("sbcl-proc-parse" ,sbcl-proc-parse)
3990 ("sbcl-cl-ppcre" ,sbcl-cl-ppcre)))
3991 (home-page "http://rudolph-miller.github.io/jonathan/overview.html")
3992 (synopsis "JSON encoder and decoder")
3993 (description
3994 "High performance JSON encoder and decoder. Currently support: SBCL,
3995CCL.")
3996 ;; Author specifies the MIT license
3997 (license license:expat))))
3998
3999(define-public cl-jonathan
4000 (sbcl-package->cl-source-package sbcl-jonathan))
4001
4002(define-public sbcl-http-body
4003 (let ((commit "dd01dc4f5842e3d29728552e5163acce8386eb73")
4004 (revision "1"))
4005 (package
4006 (name "sbcl-http-body")
4007 (version (git-version "0.1.0" revision commit))
4008 (source
4009 (origin
4010 (method git-fetch)
4011 (uri (git-reference
4012 (url "https://github.com/fukamachi/http-body")
4013 (commit commit)))
4014 (file-name (git-file-name name version))
4015 (sha256
4016 (base32 "1jd06snjvxcprhapgfq8sx0y5lrldkvhf206ix6d5a23dd6zcmr0"))))
4017 (build-system asdf-build-system/sbcl)
4018 (arguments
4019 ;; Tests fail with: Component HTTP-BODY-ASD::HTTP-BODY-TEST not
4020 ;; found, required by #<SYSTEM "http-body">. Why?
4021 `(#:tests? #f))
4022 (native-inputs
4023 `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
4024 ("sbcl-prove" ,sbcl-prove)))
4025 (inputs
4026 `(("sbcl-fast-http" ,sbcl-fast-http)
4027 ("sbcl-jonathan" ,sbcl-jonathan)
4028 ("sbcl-quri" ,sbcl-quri)))
4029 (home-page "https://github.com/fukamachi/http-body")
4030 (synopsis "HTTP POST data parser")
4031 (description
4032 "HTTP-Body parses HTTP POST data and returns POST parameters. It
4033supports application/x-www-form-urlencoded, application/json, and
4034multipart/form-data.")
4035 (license license:bsd-2))))
4036
4037(define-public cl-http-body
4038 (sbcl-package->cl-source-package sbcl-http-body))
4039
4040(define-public sbcl-circular-streams
4041 (let ((commit "e770bade1919c5e8533dd2078c93c3d3bbeb38df")
4042 (revision "1"))
4043 (package
4044 (name "sbcl-circular-streams")
4045 (version (git-version "0.1.0" revision commit))
4046 (source
4047 (origin
4048 (method git-fetch)
4049 (uri (git-reference
4050 (url "https://github.com/fukamachi/circular-streams")
4051 (commit commit)))
4052 (file-name (git-file-name name version))
4053 (sha256
4054 (base32 "1wpw6d5cciyqcf92f7mvihak52pd5s47kk4qq6f0r2z2as68p5rs"))))
4055 (build-system asdf-build-system/sbcl)
4056 (arguments
4057 ;; The tests depend on cl-test-more which is now prove. Prove
4058 ;; tests aren't working for some reason.
4059 `(#:tests? #f))
4060 (inputs
4061 `(("sbcl-fast-io" ,sbcl-fast-io)
4062 ("sbcl-trivial-gray-streams" ,sbcl-trivial-gray-streams)))
4063 (home-page "https://github.com/fukamachi/circular-streams")
4064 (synopsis "Circularly readable streams for Common Lisp")
4065 (description
4066 "Circular-Streams allows you to read streams circularly by wrapping real
4067streams. Once you reach end-of-file of a stream, it's file position will be
4068reset to 0 and you're able to read it again.")
4069 (license license:llgpl))))
4070
4071(define-public cl-circular-streams
4072 (sbcl-package->cl-source-package sbcl-circular-streams))
4073
4074(define-public sbcl-lack-request
4075 (let ((commit "abff8efeb0c3a848e6bb0022f2b8b7fa3a1bc88b")
4076 (revision "1"))
4077 (package
4078 (name "sbcl-lack-request")
4079 (version (git-version "0.1.0" revision commit))
4080 (source
4081 (origin
4082 (method git-fetch)
4083 (uri (git-reference
4084 (url "https://github.com/fukamachi/lack.git")
4085 (commit commit)))
4086 (file-name (git-file-name "lack-request" version))
4087 (sha256
4088 (base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85"))))
4089 (build-system asdf-build-system/sbcl)
4090 (arguments
4091 '(#:asd-file "lack-request.asd"
4092 #:asd-system-name "lack-request"
4093 #:test-asd-file "t-lack-request.asd"
4094 ;; XXX: Component :CLACK-TEST not found
4095 #:tests? #f))
4096 (native-inputs
4097 `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
4098 ("sbcl-prove" ,sbcl-prove)))
4099 (inputs
4100 `(("sbcl-quri" ,sbcl-quri)
4101 ("sbcl-http-body" ,sbcl-http-body)
4102 ("sbcl-circular-streams" ,sbcl-circular-streams)))
4103 (home-page "https://github.com/fukamachi/lack")
4104 (synopsis "Lack, the core of Clack")
4105 (description
4106 "Lack is a Common Lisp library which allows web applications to be
4107constructed of modular components. It was originally a part of Clack, however
4108it's going to be rewritten as an individual project since Clack v2 with
4109performance and simplicity in mind.")
4110 (license license:llgpl))))
4111
4112(define-public cl-lack-request
4113 (sbcl-package->cl-source-package sbcl-lack-request))
4114
4115(define-public sbcl-local-time
4116 (let ((commit "beac054eef428552b63d4ae7820c32ffef9a3015")
4117 (revision "1"))
4118 (package
4119 (name "sbcl-local-time")
4120 (version (git-version "1.0.6" revision commit))
4121 (source
4122 (origin
4123 (method git-fetch)
4124 (uri (git-reference
4125 (url "https://github.com/dlowe-net/local-time.git")
4126 (commit commit)))
4127 (file-name (git-file-name name version))
4128 (sha256
4129 (base32 "0xhkmgxh41dg2wwlsp0h2l41jp144xn4gpxhh0lna6kh0560w2cc"))))
4130 (build-system asdf-build-system/sbcl)
4131 (arguments
4132 ;; TODO: Component :STEFIL not found, required by #<SYSTEM
4133 ;; "local-time/test">
4134 '(#:tests? #f))
4135 (native-inputs
4136 `(("stefil" ,sbcl-hu.dwim.stefil)))
4137 (inputs
4138 `(("sbcl-cl-fad" ,sbcl-cl-fad)))
4139 (home-page "https://common-lisp.net/project/local-time/")
4140 (synopsis "Time manipulation library for Common Lisp")
4141 (description
4142 "The LOCAL-TIME library is a Common Lisp library for the manipulation of
4143dates and times. It is based almost entirely upon Erik Naggum's paper \"The
4144Long Painful History of Time\".")
4145 (license license:expat))))
4146
4147(define-public cl-local-time
4148 (sbcl-package->cl-source-package sbcl-local-time))
4149
4150(define-public sbcl-lack-response
4151 (let ((commit "abff8efeb0c3a848e6bb0022f2b8b7fa3a1bc88b")
4152 (revision "1"))
4153 (package
4154 (name "sbcl-lack-response")
4155 (version (git-version "0.1.0" revision commit))
4156 (source
4157 (origin
4158 (method git-fetch)
4159 (uri (git-reference
4160 (url "https://github.com/fukamachi/lack.git")
4161 (commit commit)))
4162 (file-name (git-file-name name version))
4163 (sha256
4164 (base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85"))))
4165 (build-system asdf-build-system/sbcl)
4166 (arguments
4167 '(#:asd-file "lack-response.asd"
4168 #:asd-system-name "lack-response"
4169 ;; XXX: no tests for lack-response.
4170 #:tests? #f))
4171 (native-inputs
4172 `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
4173 ("sbcl-prove" ,sbcl-prove)))
4174 (inputs
4175 `(("sbcl-quri" ,sbcl-quri)
4176 ("sbcl-http-body" ,sbcl-http-body)
4177 ("sbcl-circular-streams" ,sbcl-circular-streams)
4178 ("sbcl-local-time" ,sbcl-local-time)))
4179 (home-page "https://github.com/fukamachi/lack")
4180 (synopsis "Lack, the core of Clack")
4181 (description
4182 "Lack is a Common Lisp library which allows web applications to be
4183constructed of modular components. It was originally a part of Clack, however
4184it's going to be rewritten as an individual project since Clack v2 with
4185performance and simplicity in mind.")
4186 (license license:llgpl))))
4187
4188(define-public cl-lack-response
4189 (sbcl-package->cl-source-package sbcl-lack-response))
4190
4191(define-public sbcl-lack-component
4192 (let ((commit "abff8efeb0c3a848e6bb0022f2b8b7fa3a1bc88b")
4193 (revision "1"))
4194 (package
4195 (name "sbcl-lack-component")
4196 (version (git-version "0.0.0" revision commit))
4197 (source
4198 (origin
4199 (method git-fetch)
4200 (uri (git-reference
4201 (url "https://github.com/fukamachi/lack.git")
4202 (commit commit)))
4203 (file-name (git-file-name "lack-component" version))
4204 (sha256
4205 (base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85"))))
4206 (build-system asdf-build-system/sbcl)
4207 (arguments
4208 '(#:asd-file "lack-component.asd"
4209 #:asd-system-name "lack-component"
4210 #:test-asd-file "t-lack-component.asd"
4211 ;; XXX: Component :LACK-TEST not found
4212 #:tests? #f))
4213 (native-inputs
4214 `(("prove-asdf" ,sbcl-prove-asdf)))
4215 (home-page "https://github.com/fukamachi/lack")
4216 (synopsis "Lack, the core of Clack")
4217 (description
4218 "Lack is a Common Lisp library which allows web applications to be
4219constructed of modular components. It was originally a part of Clack, however
4220it's going to be rewritten as an individual project since Clack v2 with
4221performance and simplicity in mind.")
4222 (license license:llgpl))))
4223
4224(define-public cl-lack-component
4225 (sbcl-package->cl-source-package sbcl-lack-component))
4226
4227(define-public sbcl-lack-util
4228 (let ((commit "abff8efeb0c3a848e6bb0022f2b8b7fa3a1bc88b")
4229 (revision "1"))
4230 (package
4231 (name "sbcl-lack-util")
4232 (version (git-version "0.1.0" revision commit))
4233 (source
4234 (origin
4235 (method git-fetch)
4236 (uri (git-reference
4237 (url "https://github.com/fukamachi/lack.git")
4238 (commit commit)))
4239 (file-name (git-file-name "lack-util" version))
4240 (sha256
4241 (base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85"))))
4242 (build-system asdf-build-system/sbcl)
4243 (arguments
4244 '(#:asd-file "lack-util.asd"
4245 #:asd-system-name "lack-util"
4246 #:test-asd-file "t-lack-util.asd"
4247 ;; XXX: Component :LACK-TEST not found
4248 #:tests? #f))
4249 (native-inputs
4250 `(("prove-asdf" ,sbcl-prove-asdf)))
4251 (inputs
4252 `(("sbcl-ironclad" ,sbcl-ironclad)))
4253 (home-page "https://github.com/fukamachi/lack")
4254 (synopsis "Lack, the core of Clack")
4255 (description
4256 "Lack is a Common Lisp library which allows web applications to be
4257constructed of modular components. It was originally a part of Clack, however
4258it's going to be rewritten as an individual project since Clack v2 with
4259performance and simplicity in mind.")
4260 (license license:llgpl))))
4261
4262(define-public cl-lack-util
4263 (sbcl-package->cl-source-package sbcl-lack-util))
4264
4265(define-public sbcl-lack-middleware-backtrace
4266 (let ((commit "abff8efeb0c3a848e6bb0022f2b8b7fa3a1bc88b")
4267 (revision "1"))
4268 (package
4269 (name "sbcl-lack-middleware-backtrace")
4270 (version (git-version "0.1.0" revision commit))
4271 (source
4272 (origin
4273 (method git-fetch)
4274 (uri (git-reference
4275 (url "https://github.com/fukamachi/lack.git")
4276 (commit commit)))
4277 (file-name (git-file-name "lack-middleware-backtrace" version))
4278 (sha256
4279 (base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85"))))
4280 (build-system asdf-build-system/sbcl)
4281 (arguments
4282 '(#:asd-file "lack-middleware-backtrace.asd"
4283 #:asd-system-name "lack-middleware-backtrace"
4284 #:test-asd-file "t-lack-middleware-backtrace.asd"
4285 ;; XXX: Component :LACK not found
4286 #:tests? #f))
4287 (native-inputs
4288 `(("prove-asdf" ,sbcl-prove-asdf)))
4289 (home-page "https://github.com/fukamachi/lack")
4290 (synopsis "Lack, the core of Clack")
4291 (description
4292 "Lack is a Common Lisp library which allows web applications to be
4293constructed of modular components. It was originally a part of Clack, however
4294it's going to be rewritten as an individual project since Clack v2 with
4295performance and simplicity in mind.")
4296 (license license:llgpl))))
4297
4298(define-public cl-lack-middleware-backtrace
4299 (sbcl-package->cl-source-package sbcl-lack-middleware-backtrace))
4300
4301(define-public sbcl-trivial-mimes
4302 (let ((commit "303f8ac0aa6ca0bc139aa3c34822e623c3723fab")
4303 (revision "1"))
4304 (package
4305 (name "sbcl-trivial-mimes")
4306 (version (git-version "1.1.0" revision commit))
4307 (source
4308 (origin
4309 (method git-fetch)
4310 (uri (git-reference
4311 (url "https://github.com/Shinmera/trivial-mimes.git")
4312 (commit commit)))
4313 (file-name (git-file-name name version))
4314 (sha256
4315 (base32 "17jxgl47r695bvsb7wi3n2ws5rp1zzgvw0zii8cy5ggw4b4ayv6m"))))
4316 (build-system asdf-build-system/sbcl)
4317 (arguments
4318 '(#:phases
4319 (modify-phases %standard-phases
4320 (add-after
4321 'unpack 'fix-paths
4322 (lambda* (#:key inputs #:allow-other-keys)
4323 (let ((anchor "#p\"/etc/mime.types\""))
4324 (substitute* "mime-types.lisp"
4325 ((anchor all)
4326 (string-append
4327 anchor "\n"
4328 "(asdf:system-relative-pathname :trivial-mimes "
4329 "\"../../share/common-lisp/" (%lisp-type)
4330 "-source/trivial-mimes/mime.types\")")))))))))
4331 (native-inputs
4332 `(("stefil" ,sbcl-hu.dwim.stefil)))
4333 (inputs
4334 `(("sbcl-cl-fad" ,sbcl-cl-fad)))
4335 (home-page "http://shinmera.github.io/trivial-mimes/")
4336 (synopsis "Tiny Common Lisp library to detect mime types in files")
4337 (description
4338 "This is a teensy library that provides some functions to determine the
4339mime-type of a file.")
4340 (license license:artistic2.0))))
4341
4342(define-public cl-trivial-mimes
4343 (sbcl-package->cl-source-package sbcl-trivial-mimes))
4344
4345(define-public ecl-trivial-mimes
4346 (sbcl-package->ecl-package sbcl-trivial-mimes))
4347
4348(define-public sbcl-lack-middleware-static
4349 (let ((commit "abff8efeb0c3a848e6bb0022f2b8b7fa3a1bc88b")
4350 (revision "1"))
4351 (package
4352 (name "sbcl-lack-middleware-static")
4353 (version (git-version "0.1.0" revision commit))
4354 (source
4355 (origin
4356 (method git-fetch)
4357 (uri (git-reference
4358 (url "https://github.com/fukamachi/lack.git")
4359 (commit commit)))
4360 (file-name (git-file-name "lack-middleware-static" version))
4361 (sha256
4362 (base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85"))))
4363 (build-system asdf-build-system/sbcl)
4364 (arguments
4365 '(#:asd-file "lack-middleware-static.asd"
4366 #:asd-system-name "lack-middleware-static"
4367 #:test-asd-file "t-lack-middleware-static.asd"
4368 ;; XXX: Component :LACK not found
4369 #:tests? #f))
4370 (native-inputs
4371 `(("prove-asdf" ,sbcl-prove-asdf)))
4372 (inputs
4373 `(("sbcl-ironclad" ,sbcl-ironclad)
4374 ("sbcl-trivial-mimes" ,sbcl-trivial-mimes)
4375 ("sbcl-local-time" ,sbcl-local-time)))
4376 (home-page "https://github.com/fukamachi/lack")
4377 (synopsis "Lack, the core of Clack")
4378 (description
4379 "Lack is a Common Lisp library which allows web applications to be
4380constructed of modular components. It was originally a part of Clack, however
4381it's going to be rewritten as an individual project since Clack v2 with
4382performance and simplicity in mind.")
4383 (license license:llgpl))))
4384
4385(define-public cl-lack-middleware-static
4386 (sbcl-package->cl-source-package sbcl-lack-middleware-static))
4387
4388(define-public sbcl-lack
4389 (let ((commit "abff8efeb0c3a848e6bb0022f2b8b7fa3a1bc88b")
4390 (revision "1"))
4391 (package
4392 (name "sbcl-lack")
4393 (version (git-version "0.1.0" revision commit))
4394 (source
4395 (origin
4396 (method git-fetch)
4397 (uri (git-reference
4398 (url "https://github.com/fukamachi/lack.git")
4399 (commit commit)))
4400 (file-name (git-file-name "lack" version))
4401 (sha256
4402 (base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85"))))
4403 (build-system asdf-build-system/sbcl)
4404 (arguments
4405 '(#:test-asd-file "t-lack.asd"
4406 ;; XXX: Component :CLACK not found
4407 #:tests? #f))
4408 (native-inputs
4409 `(("prove-asdf" ,sbcl-prove-asdf)))
4410 (inputs
4411 `(("sbcl-lack-component" ,sbcl-lack-component)
4412 ("sbcl-lack-util" ,sbcl-lack-util)))
4413 (home-page "https://github.com/fukamachi/lack")
4414 (synopsis "Lack, the core of Clack")
4415 (description
4416 "Lack is a Common Lisp library which allows web applications to be
4417constructed of modular components. It was originally a part of Clack, however
4418it's going to be rewritten as an individual project since Clack v2 with
4419performance and simplicity in mind.")
4420 (license license:llgpl))))
4421
4422(define-public cl-lack
4423 (sbcl-package->cl-source-package sbcl-lack))
4424
4425(define-public sbcl-ningle
4426 (let ((commit "50bd4f09b5a03a7249bd4d78265d6451563b25ad")
4427 (revision "1"))
4428 (package
4429 (name "sbcl-ningle")
4430 (version (git-version "0.3.0" revision commit))
4431 (source
4432 (origin
4433 (method git-fetch)
4434 (uri (git-reference
4435 (url "https://github.com/fukamachi/ningle.git")
4436 (commit commit)))
4437 (file-name (git-file-name name version))
4438 (sha256
4439 (base32 "1bsl8cnxhacb8p92z9n89vhk1ikmij5zavk0m2zvmj7iqm79jzgw"))))
4440 (build-system asdf-build-system/sbcl)
4441 (arguments
4442 ;; TODO: pull in clack-test
4443 '(#:tests? #f
4444 #:phases
4445 (modify-phases %standard-phases
4446 (delete 'cleanup-files)
4447 (delete 'cleanup)
4448 (add-before 'cleanup 'combine-fasls
4449 (lambda* (#:key outputs #:allow-other-keys)
4450 (let* ((out (assoc-ref outputs "out"))
4451 (lib (string-append out "/lib/sbcl"))
4452 (ningle-path (string-append lib "/ningle"))
4453 (fasl-files (find-files out "\\.fasl$")))
4454 (mkdir-p ningle-path)
4455 (let ((fasl-path (lambda (name)
4456 (string-append ningle-path
4457 "/"
4458 (basename name)
4459 "--system.fasl"))))
4460 (for-each (lambda (file)
4461 (rename-file file
4462 (fasl-path
4463 (basename file ".fasl"))))
4464 fasl-files))
4465 fasl-files)
4466 #t)))))
4467 (native-inputs
4468 `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
4469 ("sbcl-prove" ,sbcl-prove)))
4470 (inputs
4471 `(("sbcl-cl-syntax" ,sbcl-cl-syntax)
4472 ("sbcl-cl-syntax-annot" ,sbcl-cl-syntax-annot)
4473 ("sbcl-myway" ,sbcl-myway)
4474 ("sbcl-lack-request" ,sbcl-lack-request)
4475 ("sbcl-lack-response" ,sbcl-lack-response)
4476 ("sbcl-lack-component" ,sbcl-lack-component)
4477 ("sbcl-alexandria" ,sbcl-alexandria)
4478 ("sbcl-babel" ,sbcl-babel)))
4479 (home-page "http://8arrow.org/ningle/")
4480 (synopsis "Super micro framework for Common Lisp")
4481 (description
4482 "Ningle is a lightweight web application framework for Common Lisp.")
4483 (license license:llgpl))))
4484
4485(define-public cl-ningle
4486 (sbcl-package->cl-source-package sbcl-ningle))
4487
4488(define-public sbcl-clack
4489 (let ((commit "e3e032843bb1220ab96263c411aa7f2feb4746e0")
4490 (revision "1"))
4491 (package
4492 (name "sbcl-clack")
4493 (version (git-version "2.0.0" revision commit))
4494 (source
4495 (origin
4496 (method git-fetch)
4497 (uri (git-reference
4498 (url "https://github.com/fukamachi/clack.git")
4499 (commit commit)))
4500 (file-name (git-file-name name version))
4501 (sha256
4502 (base32 "1ymzs6qyrwhlj6cgqsnpyn6g5cbp7a3s1vgxwna20y2q7y4iacy0"))))
4503 (build-system asdf-build-system/sbcl)
4504 (inputs
4505 `(("sbcl-lack" ,sbcl-lack)
4506 ("sbcl-lack-middleware-backtrace" ,sbcl-lack-middleware-backtrace)
4507 ("sbcl-bordeaux-threads" ,sbcl-bordeaux-threads)))
4508 (home-page "https://github.com/fukamachi/clack")
4509 (synopsis "Web Application Environment for Common Lisp")
4510 (description
4511 "Clack is a web application environment for Common Lisp inspired by
4512Python's WSGI and Ruby's Rack.")
4513 (license license:llgpl))))
4514
4515(define-public cl-clack
4516 (sbcl-package->cl-source-package sbcl-clack))
4517
4518(define-public sbcl-log4cl
4519 (let ((commit "611e094458504b938d49de904eab141285328c7c")
4520 (revision "1"))
4521 (package
4522 (name "sbcl-log4cl")
4523 (build-system asdf-build-system/sbcl)
4524 (version "1.1.2")
4525 (source
4526 (origin
4527 (method git-fetch)
4528 (uri (git-reference
4529 (url "https://github.com/sharplispers/log4cl")
4530 (commit commit)))
4531 (file-name (git-file-name name version))
4532 (sha256
4533 (base32
4534 "08jly0s0g26b56hhpfizxsb4j0yvbh946sd205gr42dkzv8l7dsc"))))
4535 ;; FIXME: tests require stefil, sbcl-hu.dwim.stefil wont work
4536 (arguments
4537 `(#:tests? #f))
4538 (inputs `(("bordeaux-threads" ,sbcl-bordeaux-threads)))
4539 (synopsis "Common Lisp logging framework, modeled after Log4J")
4540 (home-page "https://github.com/7max/log4cl")
4541 (description "This is a Common Lisp logging framework that can log at
4542various levels and mix text with expressions.")
4543 (license license:asl2.0))))
4544
4545(define-public cl-log4cl
4546 (sbcl-package->cl-source-package sbcl-log4cl))
4547
4548(define-public ecl-log4cl
4549 (sbcl-package->ecl-package sbcl-log4cl))
4550
4551(define-public sbcl-find-port
4552 (let ((commit "00c96a25af93a0f8681d34ec548861f2d7485478")
4553 (revision "1"))
4554 (package
4555 (name "sbcl-find-port")
4556 (build-system asdf-build-system/sbcl)
4557 (version "0.1")
4558 (home-page "https://github.com/eudoxia0/find-port")
4559 (source
4560 (origin
4561 (method git-fetch)
4562 (uri (git-reference
4563 (url home-page)
4564 (commit commit)))
4565 (file-name (git-file-name name version))
4566 (sha256
4567 (base32
4568 "0d6dzbb45jh0rx90wgs6v020k2xa87mvzas3mvfzvivjvqqlpryq"))))
4569 (native-inputs
4570 `(("fiveam" ,sbcl-fiveam)))
4571 (inputs
4572 `(("sbcl-usocket" ,sbcl-usocket)))
4573 (synopsis "Find open ports programmatically in Common Lisp")
4574 (description "This is a small Common Lisp library that finds an open
4575port within a range.")
4576 (license license:expat))))
4577
4578(define-public cl-find-port
4579 (sbcl-package->cl-source-package sbcl-find-port))
4580
4581(define-public ecl-find-port
4582 (sbcl-package->ecl-package sbcl-find-port))
4583
4584(define-public sbcl-clunit
4585 (let ((commit "6f6d72873f0e1207f037470105969384f8380628")
4586 (revision "1"))
4587 (package
4588 (name "sbcl-clunit")
4589 (version (git-version "0.2.3" revision commit))
4590 (source
4591 (origin
4592 (method git-fetch)
4593 (uri (git-reference
4594 (url "https://github.com/tgutu/clunit.git")
4595 (commit commit)))
4596 (file-name (git-file-name name version))
4597 (sha256
4598 (base32
4599 "1idf2xnqzlhi8rbrqmzpmb3i1l6pbdzhhajkmhwbp6qjkmxa4h85"))))
4600 (build-system asdf-build-system/sbcl)
4601 (synopsis "CLUnit is a Common Lisp unit testing framework")
4602 (description
4603 "CLUnit is a Common Lisp unit testing framework. It is designed
4604to be easy to use so that you can quickly start testing. CLUnit
4605provides a rich set of features aimed at improving your unit testing
4606experience.")
4607 (home-page "http://tgutu.github.io/clunit/")
4608 ;; MIT License
4609 (license license:expat))))
4610
4611(define-public cl-clunit
4612 (sbcl-package->cl-source-package sbcl-clunit))
4613
4614(define-public ecl-clunit
4615 (sbcl-package->ecl-package sbcl-clunit))
4616
4617(define-public sbcl-py4cl
4618 (let ((commit "4c8a2b0814fd311f978964f825ce012290f60136")
4619 (revision "1"))
4620 (package
4621 (name "sbcl-py4cl")
4622 (version (git-version "0.0.0" revision commit))
4623 (source
4624 (origin
4625 (method git-fetch)
4626 (uri (git-reference
4627 (url "https://github.com/bendudson/py4cl.git")
4628 (commit commit)))
4629 (file-name (git-file-name name version))
4630 (sha256
4631 (base32
4632 "15mk7qdqjkj56gdnbyrdyz6r7m1h26ldvn6ch96pmvg5vmr1m45r"))
4633 (modules '((guix build utils)))))
4634 (build-system asdf-build-system/sbcl)
4635 (native-inputs
4636 `(("sbcl-clunit" ,sbcl-clunit)))
4637 (inputs
4638 `(("sbcl-trivial-garbage" ,sbcl-trivial-garbage)))
4639 (propagated-inputs
4640 ;; This package doesn't do anything without python available
4641 `(("python" ,python)
4642 ;; For multi-dimensional array support
4643 ("python-numpy" ,python-numpy)))
4644 (arguments
4645 '(#:phases
4646 (modify-phases %standard-phases
4647 (add-after 'unpack 'replace-*base-directory*-var
4648 (lambda* (#:key outputs #:allow-other-keys)
4649 ;; In the ASD, the author makes an attempt to
4650 ;; programatically determine the location of the
4651 ;; source-code so lisp can call into "py4cl.py". We can
4652 ;; hard-code this since we know where this file will
4653 ;; reside.
4654 (substitute* "src/callpython.lisp"
4655 (("py4cl/config:\\*base-directory\\*")
4656 (string-append
4657 "\""
4658 (assoc-ref outputs "out")
4659 "/share/common-lisp/sbcl-source/py4cl/"
4660 "\""))))))))
4661 (synopsis "Call python from Common Lisp")
4662 (description
4663 "Py4CL is a bridge between Common Lisp and Python, which enables Common
4664Lisp to interact with Python code. It uses streams to communicate with a
4665separate python process, the approach taken by cl4py. This is different to
4666the CFFI approach used by burgled-batteries, but has the same goal.")
4667 (home-page "https://github.com/bendudson/py4cl")
4668 ;; MIT License
4669 (license license:expat))))
4670
4671(define-public cl-py4cl
4672 (sbcl-package->cl-source-package sbcl-py4cl))
4673
4674(define-public ecl-py4cl
4675 (sbcl-package->ecl-package sbcl-py4cl))
4676
4677(define-public sbcl-parse-declarations
4678 (package
4679 (name "sbcl-parse-declarations")
4680 (version "1.0.0")
4681 (source
4682 (origin
4683 (method url-fetch)
4684 (uri (string-append
4685 "http://beta.quicklisp.org/archive/parse-declarations/"
4686 "2010-10-06/parse-declarations-20101006-darcs.tgz"))
4687 (sha256
4688 (base32
4689 "0r85b0jfacd28kr65kw9c13dx4i6id1dpmby68zjy63mqbnyawrd"))))
4690 (build-system asdf-build-system/sbcl)
4691 (arguments
4692 `(#:asd-file "parse-declarations-1.0.asd"
4693 #:asd-system-name "parse-declarations-1.0"))
4694 (home-page "https://common-lisp.net/project/parse-declarations/")
4695 (synopsis "Parse, filter, and build declarations")
4696 (description
4697 "Parse-Declarations is a Common Lisp library to help writing
4698macros which establish bindings. To be semantically correct, such
4699macros must take user declarations into account, as these may affect
4700the bindings they establish. Yet the ANSI standard of Common Lisp does
4701not provide any operators to work with declarations in a convenient,
4702high-level way. This library provides such operators.")
4703 ;; MIT License
4704 (license license:expat)))
4705
4706(define-public cl-parse-declarations
4707 (sbcl-package->cl-source-package sbcl-parse-declarations))
4708
4709(define-public ecl-parse-declarations
4710 (sbcl-package->ecl-package sbcl-parse-declarations))
4711
4712(define-public sbcl-cl-quickcheck
4713 (let ((commit "807b2792a30c883a2fbecea8e7db355b50ba662f")
4714 (revision "1"))
4715 (package
4716 (name "sbcl-cl-quickcheck")
4717 (version (git-version "0.0.4" revision commit))
4718 (source
4719 (origin
4720 (method git-fetch)
4721 (uri (git-reference
4722 (url "https://github.com/mcandre/cl-quickcheck.git")
4723 (commit commit)))
4724 (file-name (git-file-name name version))
4725 (sha256
4726 (base32
4727 "165lhypq5xkcys6hvzb3jq7ywnmqvzaflda29qk2cbs3ggas4767"))))
4728 (build-system asdf-build-system/sbcl)
4729 (synopsis
4730 "Common Lisp port of the QuickCheck unit test framework")
4731 (description
4732 "Common Lisp port of the QuickCheck unit test framework")
4733 (home-page "https://github.com/mcandre/cl-quickcheck")
4734 ;; MIT
4735 (license license:expat))))
4736
4737(define-public cl-cl-quickcheck
4738 (sbcl-package->cl-source-package sbcl-cl-quickcheck))
4739
4740(define-public ecl-cl-quickcheck
4741 (sbcl-package->ecl-package sbcl-cl-quickcheck))
4742
4743(define-public sbcl-burgled-batteries3
4744 (let ((commit "9c0f6667e1a71ddf77e21793a0bea524710fef6e")
4745 (revision "1"))
4746 (package
4747 (name "sbcl-burgled-batteries3")
4748 (version (git-version "0.0.0" revision commit))
4749 (source
4750 (origin
4751 (method git-fetch)
4752 (uri (git-reference
4753 (url "https://github.com/snmsts/burgled-batteries3.git")
4754 (commit commit)))
4755 (file-name (git-file-name name version))
4756 (sha256
4757 (base32
4758 "0b726kz2xxcg5l930gz035rsdvhxrzmp05iwfwympnb4z4ammicb"))))
4759 (build-system asdf-build-system/sbcl)
4760 (arguments
4761 '(#:tests? #f
4762 #:phases
4763 (modify-phases %standard-phases
4764 (add-after 'unpack 'set-*cpython-include-dir*-var
4765 (lambda* (#:key inputs #:allow-other-keys)
4766 (substitute* "grovel-include-dir.lisp"
4767 (("\\(defparameter \\*cpython-include-dir\\* \\(detect-python\\)\\)")
4768 (string-append
4769 "(defparameter *cpython-include-dir* \""
4770 (assoc-ref inputs "python")
4771 "/include/python3.7m"
4772 "\")")))
4773 (substitute* "ffi-interface.lisp"
4774 (("\\*cpython-lib\\*")
4775 (format #f "'(\"~a/lib/libpython3.so\")"
4776 (assoc-ref inputs "python"))))
4777 #t)))))
4778 (native-inputs
4779 `(("python" ,python)
4780 ("sbcl-cl-fad" ,sbcl-cl-fad)
4781 ("sbcl-lift" ,sbcl-lift)
4782 ("sbcl-cl-quickcheck" ,sbcl-cl-quickcheck)))
4783 (inputs
4784 `(("sbcl-cffi" ,sbcl-cffi)
4785 ("sbcl-cffi-grovel" ,sbcl-cffi-grovel)
4786 ("sbcl-alexandria" , sbcl-alexandria)
4787 ("sbcl-parse-declarations-1.0" ,sbcl-parse-declarations)
4788 ("sbcl-trivial-garbage" ,sbcl-trivial-garbage)))
4789 (synopsis "Bridge between Python and Lisp (FFI bindings, etc.)")
4790 (description
4791 "This package provides a shim between Python3 (specifically, the
4792CPython implementation of Python) and Common Lisp.")
4793 (home-page "https://github.com/snmsts/burgled-batteries3")
4794 ;; MIT
4795 (license license:expat))))
4796
4797(define-public cl-burgled-batteries3
4798 (sbcl-package->cl-source-package sbcl-burgled-batteries3))
4799
4800(define-public ecl-burgled-batteries3
4801 (sbcl-package->ecl-package sbcl-burgled-batteries3))
4802
4803(define-public sbcl-metabang-bind
4804 (let ((commit "c93b7f7e1c18c954c2283efd6a7fdab36746ab5e")
4805 (revision "1"))
4806 (package
4807 (name "sbcl-metabang-bind")
4808 (version (git-version "0.8.0" revision commit))
4809 (source
4810 (origin
4811 (method git-fetch)
4812 (uri (git-reference
4813 (url "https://github.com/gwkkwg/metabang-bind.git")
4814 (commit commit)))
4815 (file-name (git-file-name name version))
4816 (sha256
4817 (base32
4818 "0hd0kr91795v77akpbcyqiss9p0p7ypa9dznrllincnmgvsxlmf0"))))
4819 (build-system asdf-build-system/sbcl)
4820 (native-inputs
4821 `(("sbcl-lift" ,sbcl-lift)))
4822 (synopsis "Macro that generalizes @code{multiple-value-bind} etc.")
4823 (description
4824 "Bind extends the idea of of let and destructing to provide a uniform
4825syntax for all your accessor needs. It combines @code{let},
4826@code{destructuring-bind}, @code{with-slots}, @code{with-accessors}, structure
4827editing, property or association-lists, and @code{multiple-value-bind} and a
4828whole lot more into a single form.")
4829 (home-page "https://common-lisp.net/project/metabang-bind/")
4830 ;; MIT License
4831 (license license:expat))))
4832
4833(define-public cl-metabang-bind
4834 (sbcl-package->cl-source-package sbcl-metabang-bind))
4835
4836(define-public ecl-metabang-bind
4837 (sbcl-package->ecl-package sbcl-metabang-bind))
4838
4839(define-public sbcl-fare-utils
4840 (let ((commit "66e9c6f1499140bc00ccc22febf2aa528cbb5724")
4841 (revision "1"))
4842 (package
4843 (name "sbcl-fare-utils")
4844 (version (git-version "1.0.0.5" revision commit))
4845 (source
4846 (origin
4847 (method git-fetch)
4848 (uri
4849 (git-reference
4850 (url
4851 "https://gitlab.common-lisp.net/frideau/fare-utils.git")
4852 (commit commit)))
4853 (file-name (git-file-name name version))
4854 (sha256
4855 (base32
4856 "01wsr1aap3jdzhn4hrqjbhsjx6qci9dbd3gh4gayv1p49rbg8aqr"))))
4857 (build-system asdf-build-system/sbcl)
4858 (arguments
4859 `(#:test-asd-file "test/fare-utils-test.asd"))
4860 (native-inputs
4861 `(("sbcl-hu.dwim.stefil" ,sbcl-hu.dwim.stefil)))
4862 (synopsis "Collection of utilities and data structures")
4863 (description
4864 "fare-utils is a small collection of utilities. It contains a lot of
4865basic everyday functions and macros.")
4866 (home-page "https://gitlab.common-lisp.net/frideau/fare-utils")
4867 ;; MIT License
4868 (license license:expat))))
4869
4870(define-public cl-fare-utils
4871 (sbcl-package->cl-source-package sbcl-fare-utils))
4872
4873(define-public ecl-fare-utils
4874 (sbcl-package->ecl-package sbcl-fare-utils))
4875
4876(define-public sbcl-trivial-utf-8
4877 (let ((commit "4d427cfbb1c452436a0efb71c3205c9da67f718f")
4878 (revision "1"))
4879 (package
4880 (name "sbcl-trivial-utf-8")
4881 (version (git-version "0.0.0" revision commit))
4882 (source
4883 (origin
4884 (method git-fetch)
4885 (uri
4886 (git-reference
4887 (url (string-append "https://gitlab.common-lisp.net/"
4888 "trivial-utf-8/trivial-utf-8.git"))
4889 (commit commit)))
4890 (file-name (git-file-name name version))
4891 (sha256
4892 (base32
4893 "1jz27gz8gvqdmvp3k9bxschs6d5b3qgk94qp2bj6nv1d0jc3m1l1"))))
4894 (arguments
4895 ;; Guix incorrectly assumes the "8" is part of the version
4896 ;; number and lobs it off.
4897 `(#:asd-file "trivial-utf-8.asd"
4898 #:asd-system-name "trivial-utf-8"))
4899 (build-system asdf-build-system/sbcl)
4900 (synopsis "UTF-8 input/output library")
4901 (description
4902 "The Babel library solves a similar problem while understanding more
4903encodings. Trivial UTF-8 was written before Babel existed, but for new
4904projects you might be better off going with Babel. The one plus that Trivial
4905UTF-8 has is that it doesn't depend on any other libraries.")
4906 (home-page "https://common-lisp.net/project/trivial-utf-8/")
4907 (license license:bsd-3))))
4908
4909(define-public cl-trivial-utf-8
4910 (sbcl-package->cl-source-package sbcl-trivial-utf-8))
4911
4912(define-public ecl-trivial-utf-8
4913 (sbcl-package->ecl-package sbcl-trivial-utf-8))
4914
4915(define-public sbcl-idna
4916 (package
4917 (name "sbcl-idna")
4918 (build-system asdf-build-system/sbcl)
4919 (version "0.2.2")
4920 (home-page "https://github.com/antifuchs/idna")
4921 (source
4922 (origin
4923 (method git-fetch)
4924 (uri (git-reference
4925 (url home-page)
4926 (commit version)))
4927 (file-name (git-file-name name version))
4928 (sha256
4929 (base32
4930 "00nbr3mffxhlq14gg9d16pa6691s4qh35inyw76v906s77khm5a2"))))
4931 (inputs
4932 `(("split-sequence" ,sbcl-split-sequence)))
4933 (synopsis "IDNA string encoding and decoding routines for Common Lisp")
4934 (description "This Common Lisp library provides string encoding and
4935decoding routines for IDNA, the International Domain Names in Applications.")
4936 (license license:expat)))
4937
4938(define-public cl-idna
4939 (sbcl-package->cl-source-package sbcl-idna))
4940
4941(define-public ecl-idna
4942 (sbcl-package->ecl-package sbcl-idna))
4943
4944(define-public sbcl-swap-bytes
4945 (package
4946 (name "sbcl-swap-bytes")
4947 (build-system asdf-build-system/sbcl)
4948 (version "1.1")
4949 (home-page "https://github.com/sionescu/swap-bytes")
4950 (source
4951 (origin
4952 (method git-fetch)
4953 (uri (git-reference
4954 (url home-page)
4955 (commit (string-append "v" version))))
4956 (file-name (git-file-name name version))
4957 (sha256
4958 (base32
4959 "1qysbv0jngdfkv53y874qjhcxc4qi8ixaqq6j8bzxh5z0931wv55"))))
4960 (inputs
4961 `(("trivial-features" ,sbcl-trivial-features)))
4962 (native-inputs
4963 `(("fiveam" ,sbcl-fiveam)))
4964 (arguments
4965 ;; TODO: Tests fail, why?
4966 `(#:tests? #f))
4967 (synopsis "Efficient endianness conversion for Common Lisp")
4968 (description "This Common Lisp library provides optimized byte-swapping
4969primitives. The library can change endianness of unsigned integers of length
49701/2/4/8. Very useful in implementing various network protocols and file
4971formats.")
4972 (license license:expat)))
4973
4974(define-public cl-swap-bytes
4975 (sbcl-package->cl-source-package sbcl-swap-bytes))
4976
4977(define-public ecl-swap-bytes
4978 (sbcl-package->ecl-package sbcl-swap-bytes))
4979
4980(define-public sbcl-iolib.asdf
4981 ;; Latest release is from June 2017.
4982 (let ((commit "81e20614c0d27f9605bf9766214e236fd31b99b4")
4983 (revision "1"))
4984 (package
4985 (name "sbcl-iolib.asdf")
4986 (build-system asdf-build-system/sbcl)
4987 (version "0.8.3")
4988 (home-page "https://github.com/sionescu/iolib")
4989 (source
4990 (origin
4991 (method git-fetch)
4992 (uri (git-reference
4993 (url home-page)
4994 (commit commit)))
4995 (file-name (git-file-name name version))
4996 (sha256
4997 (base32
4998 "1j81r0wm7nfbwl991f26s4npcy7kybzybd3m47rbxy31h0cfcmdm"))))
4999 (inputs
5000 `(("alexandria" ,sbcl-alexandria)))
5001 (arguments
5002 '(#:asd-file "iolib.asdf.asd"))
5003 (synopsis "ASDF component classes for IOLib, a Common Lisp I/O library")
5004 (description "IOlib is to be a better and more modern I/O library than
5005the standard Common Lisp library. It contains a socket library, a DNS
5006resolver, an I/O multiplexer(which supports @code{select(2)}, @code{epoll(4)}
5007and @code{kqueue(2)}), a pathname library and file-system utilities.")
5008 (license license:expat))))
5009
5010(define-public sbcl-iolib.conf
5011 (package
5012 (inherit sbcl-iolib.asdf)
5013 (name "sbcl-iolib.conf")
5014 (inputs
5015 `(("iolib.asdf" ,sbcl-iolib.asdf)))
5016 (arguments
5017 '(#:asd-file "iolib.conf.asd"))
5018 (synopsis "Compile-time configuration for IOLib, a Common Lisp I/O library")))
5019
5020(define-public sbcl-iolib.common-lisp
5021 (package
5022 (inherit sbcl-iolib.asdf)
5023 (name "sbcl-iolib.common-lisp")
5024 (inputs
5025 `(("iolib.asdf" ,sbcl-iolib.asdf)
5026 ("iolib.conf" ,sbcl-iolib.conf)))
5027 (arguments
5028 '(#:asd-file "iolib.common-lisp.asd"))
5029 (synopsis "Slightly modified Common Lisp for IOLib, a Common Lisp I/O library")))
5030
5031(define-public sbcl-iolib.base
5032 (package
5033 (inherit sbcl-iolib.asdf)
5034 (name "sbcl-iolib.base")
5035 (inputs
5036 `(("iolib.asdf" ,sbcl-iolib.asdf)
5037 ("iolib.conf" ,sbcl-iolib.conf)
5038 ("iolib.common-lisp" ,sbcl-iolib.common-lisp)
5039 ("split-sequence" ,sbcl-split-sequence)))
5040 (arguments
5041 '(#:asd-file "iolib.base.asd"))
5042 (synopsis "Base package for IOLib, a Common Lisp I/O library")))
5043
5044(define-public sbcl-iolib.grovel
5045 (package
5046 (inherit sbcl-iolib.asdf)
5047 (name "sbcl-iolib.grovel")
5048 (inputs
5049 `(("iolib.asdf" ,sbcl-iolib.asdf)
5050 ("iolib.conf" ,sbcl-iolib.conf)
5051 ("iolib.base", sbcl-iolib.base)
5052 ("cffi", sbcl-cffi)))
5053 (arguments
5054 '(#:asd-file "iolib.grovel.asd"
5055 #:phases
5056 (modify-phases %standard-phases
5057 (add-after 'install 'install-header
5058 (lambda* (#:key outputs #:allow-other-keys)
5059 ;; This header is required by sbcl-iolib.
5060 (install-file "src/grovel/grovel-common.h"
5061 (string-append (assoc-ref outputs "out")
5062 "/lib/sbcl"))
5063 #t)))))
5064 (synopsis "CFFI Groveller for IOLib, a Common Lisp I/O library")))
5065
5066(define-public sbcl-iolib
5067 (package
5068 (inherit sbcl-iolib.asdf)
5069 (name "sbcl-iolib")
5070 (inputs
5071 `(("iolib.asdf" ,sbcl-iolib.asdf)
5072 ("iolib.conf" ,sbcl-iolib.conf)
5073 ("iolib.grovel" ,sbcl-iolib.grovel)
5074 ("iolib.base" ,sbcl-iolib.base)
5075 ("bordeaux-threads" ,sbcl-bordeaux-threads)
5076 ("idna" ,sbcl-idna)
5077 ("swap-bytes" ,sbcl-swap-bytes)
5078 ("libfixposix" ,libfixposix)
5079 ("cffi" ,sbcl-cffi)))
5080 (native-inputs
5081 `(("fiveam" ,sbcl-fiveam)))
5082 (arguments
5083 '(#:asd-file "iolib.asd"
5084 #:asd-system-name "iolib"
5085 #:test-asd-file "iolib.tests.asd"
5086 #:phases
5087 (modify-phases %standard-phases
5088 (add-after 'unpack 'fix-paths
5089 (lambda* (#:key inputs #:allow-other-keys)
5090 (substitute* "src/syscalls/ffi-functions-unix.lisp"
5091 (("\\(:default \"libfixposix\"\\)")
5092 (string-append
5093 "(:default \""
5094 (assoc-ref inputs "libfixposix") "/lib/libfixposix\")")))
5095 ;; Socket tests need Internet access, disable them.
5096 (substitute* "iolib.tests.asd"
5097 (("\\(:file \"sockets\" :depends-on \\(\"pkgdcl\" \"defsuites\"\\)\\)")
5098 "")))))))
5099 (synopsis "Common Lisp I/O library")))
5100
5101(define-public cl-iolib
5102 (sbcl-package->cl-source-package sbcl-iolib))
5103
5104(define sbcl-iolib+multiplex
5105 (package
5106 (inherit sbcl-iolib)
5107 (name "sbcl-iolib+multiplex")
5108 (arguments
5109 (substitute-keyword-arguments (package-arguments sbcl-iolib)
5110 ((#:asd-system-name _) "iolib/multiplex")))))
5111
5112(define sbcl-iolib+syscalls
5113 (package
5114 (inherit sbcl-iolib)
5115 (name "sbcl-iolib+syscalls")
5116 (arguments
5117 (substitute-keyword-arguments (package-arguments sbcl-iolib)
5118 ((#:asd-system-name _) "iolib/syscalls")))))
5119
5120(define sbcl-iolib+streams
5121 (package
5122 (inherit sbcl-iolib)
5123 (name "sbcl-iolib+streams")
5124 (arguments
5125 (substitute-keyword-arguments (package-arguments sbcl-iolib)
5126 ((#:asd-system-name _) "iolib/streams")))))
5127
5128(define sbcl-iolib+sockets
5129 (package
5130 (inherit sbcl-iolib)
5131 (name "sbcl-iolib+sockets")
5132 (arguments
5133 (substitute-keyword-arguments (package-arguments sbcl-iolib)
5134 ((#:asd-system-name _) "iolib/sockets")))))
5135
5136(define-public sbcl-ieee-floats
5137 (let ((commit "566b51a005e81ff618554b9b2f0b795d3b29398d")
5138 (revision "1"))
5139 (package
5140 (name "sbcl-ieee-floats")
5141 (build-system asdf-build-system/sbcl)
5142 (version (git-version "20170924" revision commit))
5143 (home-page "https://github.com/marijnh/ieee-floats/")
5144 (source
5145 (origin
5146 (method git-fetch)
5147 (uri (git-reference
5148 (url home-page)
5149 (commit commit)))
5150 (file-name (git-file-name name version))
5151 (sha256
5152 (base32
5153 "1xyj49j9x3lc84cv3dhbf9ja34ywjk1c46dklx425fxw9mkwm83m"))))
5154 (native-inputs
5155 `(("fiveam" ,sbcl-fiveam)))
5156 (synopsis "IEEE 754 binary representation for floats in Common Lisp")
5157 (description "This is a Common Lisp library that allows to convert
5158floating point values to IEEE 754 binary representation.")
5159 (license license:bsd-3))))
5160
5161(define-public cl-ieee-floats
5162 (sbcl-package->cl-source-package sbcl-ieee-floats))
5163
5164(define sbcl-closure-common
5165 (let ((commit "e3c5f5f454b72b01b89115e581c3c52a7e201e5c")
5166 (revision "1"))
5167 (package
5168 (name "sbcl-closure-common")
5169 (build-system asdf-build-system/sbcl)
5170 (version (git-version "20101006" revision commit))
5171 (home-page "https://common-lisp.net/project/cxml/")
5172 (source
5173 (origin
5174 (method git-fetch)
5175 (uri (git-reference
5176 (url "https://github.com/sharplispers/closure-common")
5177 (commit commit)))
5178 (file-name (git-file-name name version))
5179 (sha256
5180 (base32
5181 "0k5r2qxn122pxi301ijir3nayi9sg4d7yiy276l36qmzwhp4mg5n"))))
5182 (inputs
5183 `(("trivial-gray-streams" ,sbcl-trivial-gray-streams)
5184 ("babel" ,sbcl-babel)))
5185 (synopsis "Support Common Lisp library for CXML")
5186 (description "Closure-common is an internal helper library. The name
5187Closure is a reference to the web browser it was originally written for.")
5188 ;; TODO: License?
5189 (license #f))))
5190
5191(define-public sbcl-cxml+xml
5192 (let ((commit "00b22bf4c4cf11c993d5866fae284f95ab18e6bf")
5193 (revision "1"))
5194 (package
5195 (name "sbcl-cxml+xml")
5196 (build-system asdf-build-system/sbcl)
5197 (version (git-version "0.0.0" revision commit))
5198 (home-page "https://common-lisp.net/project/cxml/")
5199 (source
5200 (origin
5201 (method git-fetch)
5202 (uri (git-reference
5203 (url "https://github.com/sharplispers/cxml")
5204 (commit commit)))
5205 (file-name (git-file-name name version))
5206 (sha256
5207 (base32
5208 "13kif7rf3gqdycsk9zq0d7y0g9y81krkl0z87k0p2fkbjfgrph37"))))
5209 (inputs
5210 `(("closure-common" ,sbcl-closure-common)
5211 ("puri" ,sbcl-puri)
5212 ("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
5213 (arguments
5214 `(#:asd-file "cxml.asd"
5215 #:asd-system-name "cxml/xml"))
5216 (synopsis "Common Lisp XML parser")
5217 (description "CXML implements a namespace-aware, validating XML 1.0
5218parser as well as the DOM Level 2 Core interfaces. Two parser interfaces are
5219offered, one SAX-like, the other similar to StAX.")
5220 (license license:llgpl))))
5221
5222(define sbcl-cxml+dom
5223 (package
5224 (inherit sbcl-cxml+xml)
5225 (name "sbcl-cxml+dom")
5226 (inputs
5227 `(("closure-common" ,sbcl-closure-common)
5228 ("puri" ,sbcl-puri)
5229 ("cxml+xml" ,sbcl-cxml+xml)))
5230 (arguments
5231 `(#:asd-file "cxml.asd"
5232 #:asd-system-name "cxml/dom"))))
5233
5234(define sbcl-cxml+klacks
5235 (package
5236 (inherit sbcl-cxml+xml)
5237 (name "sbcl-cxml+klacks")
5238 (inputs
5239 `(("closure-common" ,sbcl-closure-common)
5240 ("puri" ,sbcl-puri)
5241 ("cxml+xml" ,sbcl-cxml+xml)))
5242 (arguments
5243 `(#:asd-file "cxml.asd"
5244 #:asd-system-name "cxml/klacks"))))
5245
5246(define sbcl-cxml+test
5247 (package
5248 (inherit sbcl-cxml+xml)
5249 (name "sbcl-cxml+test")
5250 (inputs
5251 `(("closure-common" ,sbcl-closure-common)
5252 ("puri" ,sbcl-puri)
5253 ("cxml+xml" ,sbcl-cxml+xml)))
5254 (arguments
5255 `(#:asd-file "cxml.asd"
5256 #:asd-system-name "cxml/test"))))
5257
5258(define-public sbcl-cxml
5259 (package
5260 (inherit sbcl-cxml+xml)
5261 (name "sbcl-cxml")
5262 (inputs
5263 `(("closure-common" ,sbcl-closure-common)
5264 ("puri" ,sbcl-puri)
5265 ("trivial-gray-streams" ,sbcl-trivial-gray-streams)
5266 ("cxml+dom" ,sbcl-cxml+dom)
5267 ("cxml+klacks" ,sbcl-cxml+klacks)
5268 ("cxml+test" ,sbcl-cxml+test)))
5269 (arguments
5270 `(#:asd-file "cxml.asd"
5271 #:asd-system-name "cxml"
5272 #:phases
5273 (modify-phases %standard-phases
5274 (add-after 'build 'install-dtd
5275 (lambda* (#:key outputs #:allow-other-keys)
5276 (install-file "catalog.dtd"
5277 (string-append
5278 (assoc-ref outputs "out")
5279 "/lib/" (%lisp-type)))))
5280 (add-after 'create-asd 'remove-component
5281 ;; XXX: The original .asd has no components, but our build system
5282 ;; creates an entry nonetheless. We need to remove it for the
5283 ;; generated .asd to load properly. See trivia.trivial for a
5284 ;; similar problem.
5285 (lambda* (#:key outputs #:allow-other-keys)
5286 (let* ((out (assoc-ref outputs "out"))
5287 (asd (string-append out "/lib/sbcl/cxml.asd")))
5288 (substitute* asd
5289 ((" :components
5290")
5291 ""))
5292 (substitute* asd
5293 ((" *\\(\\(:compiled-file \"cxml--system\"\\)\\)")
5294 ""))))))))))
5295
5296(define-public cl-cxml
5297 (sbcl-package->cl-source-package sbcl-cxml))
5298
5299(define-public sbcl-cl-reexport
5300 (let ((commit "312f3661bbe187b5f28536cd7ec2956e91366c3b")
5301 (revision "1"))
5302 (package
5303 (name "sbcl-cl-reexport")
5304 (build-system asdf-build-system/sbcl)
5305 (version (git-version "0.1" revision commit))
5306 (home-page "https://github.com/takagi/cl-reexport")
5307 (source
5308 (origin
5309 (method git-fetch)
5310 (uri (git-reference
5311 (url home-page)
5312 (commit commit)))
5313 (file-name (git-file-name name version))
5314 (sha256
5315 (base32
5316 "1cwpn1m3wrl0fl9plznn7p464db646gnfc8zkyk97dyxski2aq0x"))))
5317 (inputs
5318 `(("alexandria" ,sbcl-alexandria)))
5319 (arguments
5320 ;; TODO: Tests fail because cl-test-more is missing, but I can't find it online.
5321 `(#:tests? #f))
5322 (synopsis "HTTP cookie manager for Common Lisp")
5323 (description "cl-cookie is a Common Lisp library featuring parsing of
5324cookie headers, cookie creation, cookie jar creation and more.")
5325 (license license:llgpl))))
5326
5327(define-public cl-reexport
5328 (sbcl-package->cl-source-package sbcl-cl-reexport))
5329
5330(define-public sbcl-cl-cookie
5331 (let ((commit "cea55aed8b9ad25fafd13defbcb9fe8f41b29546")
5332 (revision "1"))
5333 (package
5334 (name "sbcl-cl-cookie")
5335 (build-system asdf-build-system/sbcl)
5336 (version (git-version "0.9.10" revision commit))
5337 (home-page "https://github.com/fukamachi/cl-cookie")
5338 (source
5339 (origin
5340 (method git-fetch)
5341 (uri (git-reference
5342 (url home-page)
5343 (commit commit)))
5344 (file-name (git-file-name name version))
5345 (sha256
5346 (base32
5347 "090g7z75h98zvc1ldx0vh4jn4086dhjm2w30jcwkq553qmyxwl8h"))))
5348 (inputs
5349 `(("proc-parse" ,sbcl-proc-parse)
5350 ("alexandria" ,sbcl-alexandria)
5351 ("quri" ,sbcl-quri)
5352 ("cl-ppcre" ,sbcl-cl-ppcre)
5353 ("local-time" ,sbcl-local-time)))
5354 (native-inputs
5355 `(("prove-asdf" ,sbcl-prove-asdf)
5356 ("prove" ,sbcl-prove)))
5357 (arguments
5358 ;; TODO: Tests fail because cl-cookie depends on cl-cookie-test.
5359 `(#:tests? #f))
5360 (synopsis "HTTP cookie manager for Common Lisp")
5361 (description "cl-cookie is a Common Lisp library featuring parsing of
5362cookie headers, cookie creation, cookie jar creation and more.")
5363 (license license:bsd-2))))
5364
5365(define-public cl-cookie
5366 (sbcl-package->cl-source-package sbcl-cl-cookie))
5367
5368(define-public sbcl-dexador
5369 (let ((commit "a2714d126cc94bc7a9a6e1e3c08de455b3a66378")
5370 (revision "1"))
5371 (package
5372 (name "sbcl-dexador")
5373 (build-system asdf-build-system/sbcl)
5374 (version (git-version "0.9.10" revision commit))
5375 (home-page "https://github.com/fukamachi/dexador")
5376 (source
5377 (origin
5378 (method git-fetch)
5379 (uri (git-reference
5380 (url home-page)
5381 (commit commit)))
5382 (file-name (git-file-name name version))
5383 (sha256
5384 (base32
5385 "0nbqgn4v3l2z6m1k1bdxfnqpfrk84nxdmz7csz11zzcfs4flkv79"))))
5386 (inputs
5387 `(("trivial-gray-streams" ,sbcl-trivial-gray-streams)
5388 ("babel" ,sbcl-babel)
5389 ("usocket" ,sbcl-usocket)
5390 ("fast-http" ,sbcl-fast-http)
5391 ("quri" ,sbcl-quri)
5392 ("fast-io" ,sbcl-fast-io)
5393 ("chunga" ,sbcl-chunga)
5394 ("cl-ppcre" ,sbcl-cl-ppcre)
5395 ("cl-cookie" ,sbcl-cl-cookie)
5396 ("trivial-mimes" ,sbcl-trivial-mimes)
5397 ("chipz" ,sbcl-chipz)
5398 ("cl-base64" ,sbcl-cl-base64)
5399 ("cl-reexport" ,sbcl-cl-reexport)
5400 ("cl+ssl" ,sbcl-cl+ssl)
5401 ("bordeaux-threads" ,sbcl-bordeaux-threads)
5402 ("alexandria" ,sbcl-alexandria)))
5403 (native-inputs
5404 `(("prove" ,sbcl-prove)
5405 ("prove-asdf" ,sbcl-prove-asdf)
5406 ("lack-request" ,sbcl-lack-request)
5407 ("clack" ,sbcl-clack)
5408 ("babel" ,sbcl-babel)
5409 ("alexandria" ,sbcl-alexandria)
5410 ("cl-ppcre" ,sbcl-cl-ppcre)
5411 ("local-time" ,sbcl-local-time)))
5412 (arguments
5413 ;; TODO: Circular dependency: tests depend on clack-test which depends on dexador.
5414 `(#:tests? #f
5415 #:phases
5416 (modify-phases %standard-phases
5417 (add-after 'unpack 'fix-permissions
5418 (lambda _ (make-file-writable "t/data/test.gz") #t)))))
5419 (synopsis "Yet another HTTP client for Common Lisp")
5420 (description "Dexador is yet another HTTP client for Common Lisp with
5421neat APIs and connection-pooling. It is meant to supersede Drakma.")
5422 (license license:expat))))
5423
5424(define-public cl-dexador
5425 (package
5426 (inherit (sbcl-package->cl-source-package sbcl-dexador))
5427 (arguments
5428 `(#:phases
5429 ;; asdf-build-system/source has its own phases and does not inherit
5430 ;; from asdf-build-system/sbcl phases.
5431 (modify-phases %standard-phases/source
5432 (add-after 'unpack 'fix-permissions
5433 (lambda _ (make-file-writable "t/data/test.gz") #t)))))))
5434
5435(define-public ecl-dexador
5436 (sbcl-package->ecl-package sbcl-dexador))
5437
5438(define-public sbcl-lisp-namespace
5439 (let ((commit "28107cafe34e4c1c67490fde60c7f92dc610b2e0")
5440 (revision "1"))
5441 (package
5442 (name "sbcl-lisp-namespace")
5443 (build-system asdf-build-system/sbcl)
5444 (version (git-version "0.1" revision commit))
5445 (home-page "https://github.com/guicho271828/lisp-namespace")
5446 (source
5447 (origin
5448 (method git-fetch)
5449 (uri (git-reference
5450 (url home-page)
5451 (commit commit)))
5452 (file-name (git-file-name name version))
5453 (sha256
5454 (base32
5455 "1jw2wykp06z2afb9nm1lgfzll5cjlj36pnknjx614057zkkxq4iy"))))
5456 (inputs
5457 `(("alexandria" ,sbcl-alexandria)))
5458 (native-inputs
5459 `(("fiveam" ,sbcl-fiveam)))
5460 (arguments
5461 `(#:test-asd-file "lisp-namespace.test.asd"
5462 ;; XXX: Component LISP-NAMESPACE-ASD::LISP-NAMESPACE.TEST not found
5463 #:tests? #f))
5464 (synopsis "LISP-N, or extensible namespaces in Common Lisp")
5465 (description "Common Lisp already has major 2 namespaces, function
5466namespace and value namespace (or variable namespace), but there are actually
5467more — e.g., class namespace.
5468This library offers macros to deal with symbols from any namespace.")
5469 (license license:llgpl))))
5470
5471(define-public cl-lisp-namespace
5472 (sbcl-package->cl-source-package sbcl-lisp-namespace))
5473
5474(define-public sbcl-trivial-cltl2
5475 (let ((commit "8eec8407df833e8f27df8a388bc10913f16d9e83")
5476 (revision "1"))
5477 (package
5478 (name "sbcl-trivial-cltl2")
5479 (build-system asdf-build-system/sbcl)
5480 (version (git-version "0.1.1" revision commit))
5481 (home-page "https://github.com/Zulu-Inuoe/trivial-cltl2")
5482 (source
5483 (origin
5484 (method git-fetch)
5485 (uri (git-reference
5486 (url home-page)
5487 (commit commit)))
5488 (file-name (git-file-name name version))
5489 (sha256
5490 (base32
5491 "1dyyxz17vqv8hlfwq287gl8xxbvcnq798ajb7p5jdjz91wqf4bgk"))))
5492 (synopsis "Simple CLtL2 compatibility layer for Common Lisp")
5493 (description "This library is a portable compatibility layer around
5494\"Common Lisp the Language, 2nd
5495Edition\" (@url{https://www.cs.cmu.edu/Groups/AI/html/cltl/clm/node102.html})
5496and it exports symbols from implementation-specific packages.")
5497 (license license:llgpl))))
5498
5499(define-public cl-trivial-cltl2
5500 (sbcl-package->cl-source-package sbcl-trivial-cltl2))
5501
5502(define-public sbcl-introspect-environment
5503 (let ((commit "fff42f8f8fd0d99db5ad6c5812e53de7d660020b")
5504 (revision "1"))
5505 (package
5506 (name "sbcl-introspect-environment")
5507 (build-system asdf-build-system/sbcl)
5508 (version (git-version "0.1" revision commit))
5509 (home-page "https://github.com/Bike/introspect-environment")
5510 (source
5511 (origin
5512 (method git-fetch)
5513 (uri (git-reference
5514 (url home-page)
5515 (commit commit)))
5516 (file-name (git-file-name name version))
5517 (sha256
5518 (base32
5519 "1i305n0wfmpac63ni4i3vixnnkl8daw5ncxy0k3dv92krgx6qzhp"))))
5520 (native-inputs
5521 `(("fiveam" ,sbcl-fiveam)))
5522 (synopsis "Common Lisp environment introspection portability layer")
5523 (description "This library is a small interface to portable but
5524nonstandard introspection of Common Lisp environments. It is intended to
5525allow a bit more compile-time introspection of environments in Common Lisp.
5526
5527Quite a bit of information is available at the time a macro or compiler-macro
5528runs; inlining info, type declarations, that sort of thing. This information
5529is all standard - any Common Lisp program can @code{(declare (integer x))} and
5530such.
5531
5532This info ought to be accessible through the standard @code{&environment}
5533parameters, but it is not. Several implementations keep the information for
5534their own purposes but do not make it available to user programs, because
5535there is no standard mechanism to do so.
5536
5537This library uses implementation-specific hooks to make information available
5538to users. This is currently supported on SBCL, CCL, and CMUCL. Other
5539implementations have implementations of the functions that do as much as they
5540can and/or provide reasonable defaults.")
5541 (license license:wtfpl2))))
5542
5543(define-public cl-introspect-environment
5544 (sbcl-package->cl-source-package sbcl-introspect-environment))
5545
5546(define-public sbcl-type-i
5547 (let ((commit "dea233f45f94064105ec09f0767de338f67dcbe2")
5548 (revision "1"))
5549 (package
5550 (name "sbcl-type-i")
5551 (build-system asdf-build-system/sbcl)
5552 (version (git-version "0.1" revision commit))
5553 (home-page "https://github.com/guicho271828/type-i")
5554 (source
5555 (origin
5556 (method git-fetch)
5557 (uri (git-reference
5558 (url home-page)
5559 (commit commit)))
5560 (file-name (git-file-name name version))
5561 (sha256
5562 (base32
5563 "039g5pbrhh65s0bhr9314gmd2nwc2y5lp2377c5qrc2lxky89qs3"))))
5564 (inputs
5565 `(("alexandria" ,sbcl-alexandria)
5566 ("introspect-environment" ,sbcl-introspect-environment)
5567 ("trivia.trivial" ,sbcl-trivia.trivial)))
5568 (native-inputs
5569 `(("fiveam" ,sbcl-fiveam)))
5570 (arguments
5571 `(#:test-asd-file "type-i.test.asd"))
5572 (synopsis "Type inference utility on unary predicates for Common Lisp")
5573 (description "This library tries to provide a way to detect what kind of
5574type the given predicate is trying to check. This is different from inferring
5575the return type of a function.")
5576 (license license:llgpl))))
5577
5578(define-public cl-type-i
5579 (sbcl-package->cl-source-package sbcl-type-i))
5580
5581(define-public sbcl-optima
5582 (let ((commit "373b245b928c1a5cce91a6cb5bfe5dd77eb36195")
5583 (revision "1"))
5584 (package
5585 (name "sbcl-optima")
5586 (build-system asdf-build-system/sbcl)
5587 (version (git-version "1.0" revision commit))
5588 (home-page "https://github.com/m2ym/optima")
5589 (source
5590 (origin
5591 (method git-fetch)
5592 (uri (git-reference
5593 (url home-page)
5594 (commit commit)))
5595 (file-name (git-file-name name version))
5596 (sha256
5597 (base32
5598 "1yw4ymq7ms89342kkvb3aqxgv0w38m9kd8ikdqxxzyybnkjhndal"))))
5599 (inputs
5600 `(("alexandria" ,sbcl-alexandria)
5601 ("closer-mop" ,sbcl-closer-mop)))
5602 (native-inputs
5603 `(("eos" ,sbcl-eos)))
5604 (arguments
5605 ;; XXX: Circular dependencies: tests depend on optima.ppcre which depends on optima.
5606 `(#:tests? #f
5607 #:test-asd-file "optima.test.asd"))
5608 (synopsis "Optimized pattern matching library for Common Lisp")
5609 (description "Optima is a fast pattern matching library which uses
5610optimizing techniques widely used in the functional programming world.")
5611 (license license:expat))))
5612
5613(define-public cl-optima
5614 (sbcl-package->cl-source-package sbcl-optima))
5615
5616(define-public sbcl-fare-quasiquote
5617 (package
5618 (name "sbcl-fare-quasiquote")
5619 (build-system asdf-build-system/sbcl)
5620 (version "20171130")
5621 (home-page "http://common-lisp.net/project/fare-quasiquote")
5622 (source
5623 (origin
5624 (method url-fetch)
5625 (uri (string-append "http://beta.quicklisp.org/archive/fare-quasiquote/"
5626 (date->string (string->date version "~Y~m~d") "~Y-~m-~d")
5627 "/fare-quasiquote-"
5628 version
5629 "-git.tgz"))
5630 (sha256
5631 (base32
5632 "00brmh7ndsi0c97nibi8cy10j3l4gmkyrfrr5jr5lzkfb7ngyfqa"))))
5633 (inputs
5634 `(("fare-utils" ,sbcl-fare-utils)))
5635 (arguments
5636 ;; XXX: Circular dependencies: Tests depend on subsystems, which depend on the main systems.
5637 `(#:tests? #f
5638 #:phases
5639 (modify-phases %standard-phases
5640 ;; XXX: Require 1.0.0 version of fare-utils, and we package some
5641 ;; commits after 1.0.0.5, but ASDF fails to read the
5642 ;; "-REVISION-COMMIT" part generated by Guix.
5643 (add-after 'unpack 'patch-requirement
5644 (lambda _
5645 (substitute* "fare-quasiquote.asd"
5646 (("\\(:version \"fare-utils\" \"1.0.0\"\\)") "\"fare-utils\"")))))))
5647 (synopsis "Pattern-matching friendly implementation of quasiquote for Common Lisp")
5648 (description "The main purpose of this n+2nd reimplementation of
5649quasiquote is enable matching of quasiquoted patterns, using Optima or
5650Trivia.")
5651 (license license:expat)))
5652
5653(define-public cl-fare-quasiquote
5654 (sbcl-package->cl-source-package sbcl-fare-quasiquote))
5655
5656(define-public sbcl-fare-quasiquote-optima
5657 (package
5658 (inherit sbcl-fare-quasiquote)
5659 (name "sbcl-fare-quasiquote-optima")
5660 (inputs
5661 `(("optima" ,sbcl-optima)
5662 ("fare-quasiquote" ,sbcl-fare-quasiquote)))
5663 (arguments
5664 '(#:phases
5665 (modify-phases %standard-phases
5666 (add-after 'unpack 'patch-requirement
5667 (lambda _
5668 (substitute* "fare-quasiquote-optima.asd"
5669 (("\\(:version \"optima\" \"1\\.0\"\\)")
5670 "\"optima\""))
5671 #t)))))))
5672
5673(define-public cl-fare-quasiquote-optima
5674 (sbcl-package->cl-source-package sbcl-fare-quasiquote-optima))
5675
5676(define-public sbcl-fare-quasiquote-readtable
5677 (package
5678 (inherit sbcl-fare-quasiquote)
5679 (name "sbcl-fare-quasiquote-readtable")
5680 (inputs
5681 `(("fare-quasiquote" ,sbcl-fare-quasiquote)
5682 ("named-readtables" ,sbcl-named-readtables)))
5683 (description "The main purpose of this n+2nd reimplementation of
5684quasiquote is enable matching of quasiquoted patterns, using Optima or
5685Trivia.
5686
5687This package uses fare-quasiquote with named-readtable.")))
5688
5689(define-public cl-fare-quasiquote-readtable
5690 (sbcl-package->cl-source-package sbcl-fare-quasiquote-readtable))
5691
5692;; TODO: Add support for component-less system in asdf-build-system/sbcl.
5693(define-public cl-fare-quasiquote-extras
5694 (package
5695 (inherit cl-fare-quasiquote)
5696 (name "cl-fare-quasiquote-extras")
5697 (build-system asdf-build-system/source)
5698 (propagated-inputs
5699 `(("fare-quasiquote" ,cl-fare-quasiquote)
5700 ("fare-quasiquote-optima" ,cl-fare-quasiquote-optima)
5701 ("fare-quasiquote-readtable" ,cl-fare-quasiquote-readtable)))
5702 (description "This library combines @code{fare-quasiquote-readtable} and
5703@code{fare-quasiquote-optima}.")))
5704
5705(define-public sbcl-trivia.level0
5706 (let ((commit "902e0c65602bbfe96ae82e679330b3771ddc7603")
5707 (revision "1"))
5708 (package
5709 (name "sbcl-trivia.level0")
5710 (build-system asdf-build-system/sbcl)
5711 (version (git-version "0.0.0" revision commit))
5712 (home-page "https://github.com/guicho271828/trivia")
5713 (source
5714 (origin
5715 (method git-fetch)
5716 (uri (git-reference
5717 (url home-page)
5718 (commit commit)))
5719 (file-name (git-file-name name version))
5720 (sha256
5721 (base32
5722 "11qbab30qqnfy9mx3x9fvgcw1jbvh1qn2cqv3p8xdn2m8981jvhr"))))
5723 (inputs
5724 `(("alexandria" ,sbcl-alexandria)))
5725 (synopsis "Pattern matching in Common Lisp")
5726 (description "Trivia is a pattern matching compiler that is compatible
5727with Optima, another pattern matching library for Common Lisp. It is meant to
5728be faster and more extensible than Optima.")
5729 (license license:llgpl))))
5730
5731(define-public sbcl-trivia.level1
5732 (package
5733 (inherit sbcl-trivia.level0)
5734 (name "sbcl-trivia.level1")
5735 (inputs
5736 `(("trivia.level0" ,sbcl-trivia.level0)))
5737 (description "Trivia is a pattern matching compiler that is compatible
5738with Optima, another pattern matching library for Common Lisp. It is meant to
5739be faster and more extensible than Optima.
5740
5741This system contains the core patterns of Trivia.")))
5742
5743(define-public sbcl-trivia.level2
5744 (package
5745 (inherit sbcl-trivia.level0)
5746 (name "sbcl-trivia.level2")
5747 (inputs
5748 `(("trivia.level1" ,sbcl-trivia.level1)
5749 ("lisp-namespace" ,sbcl-lisp-namespace)
5750 ("trivial-cltl2" ,sbcl-trivial-cltl2)
5751 ("closer-mop" ,sbcl-closer-mop)))
5752 (description "Trivia is a pattern matching compiler that is compatible
5753with Optima, another pattern matching library for Common Lisp. It is meant to
5754be faster and more extensible than Optima.
5755
5756This system contains a non-optimized pattern matcher compatible with Optima,
5757with extensible optimizer interface.")))
5758
5759(define-public sbcl-trivia.trivial
5760 (package
5761 (inherit sbcl-trivia.level0)
5762 (name "sbcl-trivia.trivial")
5763 (inputs
5764 `(("trivia.level2" ,sbcl-trivia.level2)))
5765 (arguments
5766 `(#:phases
5767 (modify-phases %standard-phases
5768 (replace 'create-asd-file
5769 (lambda* (#:key outputs inputs #:allow-other-keys)
5770 (let* ((out (assoc-ref outputs "out"))
5771 (lib (string-append out "/lib/" (%lisp-type)))
5772 (level2 (assoc-ref inputs "trivia.level2")))
5773 (mkdir-p lib)
5774 (install-file "trivia.trivial.asd" lib)
5775 ;; XXX: This .asd does not have any component and the build
5776 ;; system fails to work in this case. We should update the
5777 ;; build system to handle component-less .asd.
5778 ;; TODO: How do we append to file in Guile? It seems that
5779 ;; (open-file ... "a") gets a "Permission denied".
5780 (substitute* (string-append lib "/trivia.trivial.asd")
5781 (("\"\\)")
5782 (string-append "\")
5783
5784(progn (asdf/source-registry:ensure-source-registry)
5785 (setf (gethash
5786 \"trivia.level2\"
5787 asdf/source-registry:*source-registry*)
5788 #p\""
5789 level2
5790 "/share/common-lisp/sbcl-bundle-systems/trivia.level2.asd\"))")))))))))
5791 (description "Trivia is a pattern matching compiler that is compatible
5792with Optima, another pattern matching library for Common Lisp. It is meant to
5793be faster and more extensible than Optima.
5794
5795This system contains the base level system of Trivia with a trivial optimizer.")))
5796
5797(define-public sbcl-trivia.balland2006
5798 (package
5799 (inherit sbcl-trivia.level0)
5800 (name "sbcl-trivia.balland2006")
5801 (inputs
5802 `(("trivia.trivial" ,sbcl-trivia.trivial)
5803 ("iterate" ,sbcl-iterate)
5804 ("type-i" ,sbcl-type-i)
5805 ("alexandria" ,sbcl-alexandria)))
5806 (arguments
5807 ;; Tests are done in trivia itself.
5808 `(#:tests? #f))
5809 (description "Trivia is a pattern matching compiler that is compatible
5810with Optima, another pattern matching library for Common Lisp. It is meant to
5811be faster and more extensible than Optima.
5812
5813This system contains the base level system of Trivia with a trivial optimizer.")))
5814
5815(define-public sbcl-trivia.ppcre
5816 (package
5817 (inherit sbcl-trivia.level0)
5818 (name "sbcl-trivia.ppcre")
5819 (inputs
5820 `(("trivia.trivial" ,sbcl-trivia.trivial)
5821 ("cl-ppcre" ,sbcl-cl-ppcre)))
5822 (description "Trivia is a pattern matching compiler that is compatible
5823with Optima, another pattern matching library for Common Lisp. It is meant to
5824be faster and more extensible than Optima.
5825
5826This system contains the PPCRE extension.")))
5827
5828(define-public sbcl-trivia.quasiquote
5829 (package
5830 (inherit sbcl-trivia.level0)
5831 (name "sbcl-trivia.quasiquote")
5832 (inputs
5833 `(("trivia.trivial" ,sbcl-trivia.trivial)
5834 ("fare-quasiquote" ,sbcl-fare-quasiquote)
5835 ("fare-quasiquote-readtable" ,sbcl-fare-quasiquote-readtable)))
5836 (description "Trivia is a pattern matching compiler that is compatible
5837with Optima, another pattern matching library for Common Lisp. It is meant to
5838be faster and more extensible than Optima.
5839
5840This system contains the fare-quasiquote extension.")))
5841
5842(define-public sbcl-trivia.cffi
5843 (package
5844 (inherit sbcl-trivia.level0)
5845 (name "sbcl-trivia.cffi")
5846 (inputs
5847 `(("cffi" ,sbcl-cffi)
5848 ("trivia.trivial" ,sbcl-trivia.trivial)))
5849 (description "Trivia is a pattern matching compiler that is compatible
5850with Optima, another pattern matching library for Common Lisp. It is meant to
5851be faster and more extensible than Optima.
5852
5853This system contains the CFFI foreign slot access extension.")))
5854
5855(define-public sbcl-trivia
5856 (package
5857 (inherit sbcl-trivia.level0)
5858 (name "sbcl-trivia")
5859 (inputs
5860 `(("trivia.balland2006" ,sbcl-trivia.balland2006)))
5861 (native-inputs
5862 `(("fiveam" ,sbcl-fiveam)
5863 ("trivia.ppcre" ,sbcl-trivia.ppcre)
5864 ("trivia.quasiquote" ,sbcl-trivia.quasiquote)
5865 ("trivia.cffi" ,sbcl-trivia.cffi)
5866 ("optima" ,sbcl-optima)))
5867 (arguments
5868 `(#:test-asd-file "trivia.test.asd"
5869 #:phases
5870 (modify-phases %standard-phases
5871 (add-after 'create-asd 'remove-component
5872 ;; XXX: The original .asd has no components, but our build system
5873 ;; creates an entry nonetheless. We need to remove it for the
5874 ;; generated .asd to load properly. See trivia.trivial for a
5875 ;; similar problem.
5876 (lambda* (#:key outputs #:allow-other-keys)
5877 (let* ((out (assoc-ref outputs "out"))
5878 (asd (string-append out "/lib/" (%lisp-type) "/trivia.asd")))
5879 (substitute* asd
5880 ((" :components
5881")
5882 ""))
5883 (substitute* asd
5884 ((" *\\(\\(:compiled-file \"trivia--system\"\\)\\)")
5885 ""))))))))
5886 (description "Trivia is a pattern matching compiler that is compatible
5887with Optima, another pattern matching library for Common Lisp. It is meant to
5888be faster and more extensible than Optima.")))
5889
5890(define-public cl-trivia
5891 (sbcl-package->cl-source-package sbcl-trivia))
5892
5893(define-public sbcl-mk-string-metrics
5894 (package
5895 (name "sbcl-mk-string-metrics")
5896 (version "0.1.2")
5897 (home-page "https://github.com/cbaggers/mk-string-metrics/")
5898 (source (origin
5899 (method git-fetch)
5900 (uri (git-reference
5901 (url home-page)
5902 (commit version)))
5903 (sha256
5904 (base32 "0bg0bv2mfd4k0g3x72x563hvmrx18xavaffr6xk5rh4if5j7kcf6"))
5905 (file-name (git-file-name name version))))
5906 (build-system asdf-build-system/sbcl)
5907 (synopsis "Calculate various string metrics efficiently in Common Lisp")
5908 (description "This library implements efficient algorithms that calculate
5909various string metrics in Common Lisp:
5910
5911@itemize
5912@item Damerau-Levenshtein distance
5913@item Hamming distance
5914@item Jaccard similarity coefficient
5915@item Jaro distance
5916@item Jaro-Winkler distance
5917@item Levenshtein distance
5918@item Normalized Damerau-Levenshtein distance
5919@item Normalized Levenshtein distance
5920@item Overlap coefficient
5921@end itemize\n")
5922 (license license:x11)))
5923
5924(define-public cl-mk-string-metrics
5925 (sbcl-package->cl-source-package sbcl-mk-string-metrics))
5926
5927(define-public sbcl-cl-str
5928 (let ((commit "3d5ec86e3a0199e5973aacde951086dfd754b5e5"))
5929 (package
5930 (name "sbcl-cl-str")
5931 (version (git-version "0.8" "1" commit))
5932 (home-page "https://github.com/vindarel/cl-str")
5933 (source (origin
5934 (method git-fetch)
5935 (uri (git-reference
5936 (url home-page)
5937 (commit commit)))
5938 (sha256
5939 (base32 "0szzzbygw9h985yxz909vvqrp69pmpcpahn7hn350lnyjislk9ga"))
5940 (file-name (git-file-name name version))))
5941 (build-system asdf-build-system/sbcl)
5942 (inputs
5943 `(("cl-ppcre" ,sbcl-cl-ppcre)
5944 ("cl-ppcre-unicode" ,sbcl-cl-ppcre-unicode)))
5945 (native-inputs
5946 `(("prove" ,sbcl-prove)
5947 ("prove-asdf" ,sbcl-prove-asdf)))
5948 (arguments
5949 `(#:asd-file "str.asd"
5950 #:asd-system-name "str"
5951 #:test-asd-file "str.test.asd"))
5952 (synopsis "Modern, consistent and terse Common Lisp string manipulation library")
5953 (description "A modern and consistent Common Lisp string manipulation
5954library that focuses on modernity, simplicity and discoverability:
5955@code{(str:trim s)} instead of @code{(string-trim '(#\\Space ...) s)}), or
5956@code{str:concat strings} instead of an unusual format construct; one
5957discoverable library instead of many; consistency and composability, where
5958@code{s} is always the last argument, which makes it easier to feed pipes and
5959arrows.")
5960 (license license:expat))))
5961
5962(define-public cl-str
5963 (sbcl-package->cl-source-package sbcl-cl-str))
5964
5965(define-public sbcl-cl-xmlspam
5966 (let ((commit "ea06abcca2a73a9779bcfb09081e56665f94e22a"))
5967 (package
5968 (name "sbcl-cl-xmlspam")
5969 (build-system asdf-build-system/sbcl)
5970 (version (git-version "0.0.0" "1" commit))
5971 (home-page "https://github.com/rogpeppe/cl-xmlspam")
5972 (source
5973 (origin
5974 (method git-fetch)
5975 (uri (git-reference
5976 (url home-page)
5977 (commit commit)))
5978 (file-name (string-append name "-" version))
5979 (sha256
5980 (base32
5981 "0w4rqvrgdgk3fwfq3kx4r7wwdr2bv3b6n3bdqwsiriw9psqzpz2s"))))
5982 (inputs
5983 `(("cxml" ,sbcl-cxml)
5984 ("cl-ppcre" ,sbcl-cl-ppcre)))
5985 (synopsis "Concise, regexp-like pattern matching on streaming XML for Common Lisp")
5986 (description "CXML does an excellent job at parsing XML elements, but what
5987do you do when you have a XML file that's larger than you want to fit in
5988memory, and you want to extract some information from it? Writing code to deal
5989with SAX events, or even using Klacks, quickly becomes tedious.
5990@code{cl-xmlspam} (for XML Stream PAttern Matcher) is designed to make it easy
5991to write code that mirrors the structure of the XML that it's parsing. It
5992also makes it easy to shift paradigms when necessary - the usual Lisp control
5993constructs can be used interchangeably with pattern matching, and the full
5994power of CXML is available when necessary.")
5995 (license license:bsd-3))))
5996
5997;; TODO: dbus uses ASDF's package-inferred-system which is not supported by
5998;; asdf-build-system/sbcl as of 2019-08-02. We should fix
5999;; asdf-build-system/sbcl.
6000(define-public cl-dbus
6001 (let ((commit "24b452df3a45ca5dc95015500f34baad175c981a")
6002 (revision "1"))
6003 (package
6004 (name "cl-dbus")
6005 (build-system asdf-build-system/source)
6006 (version (git-version "20190408" revision commit))
6007 (home-page "https://github.com/death/dbus")
6008 (source
6009 (origin
6010 (method git-fetch)
6011 (uri (git-reference
6012 (url home-page)
6013 (commit commit)))
6014 (file-name (git-file-name name version))
6015 (sha256
6016 (base32
6017 "0fw2q866yddbf23nk9pxphm9gsasx35vjyss82xzvndnjmzlqfl5"))))
6018 ;; Inputs must be propagated or else packages depending on this won't have the necessary packages.
6019 (propagated-inputs
6020 `(("alexandria" ,sbcl-alexandria)
6021 ("trivial-garbage" ,sbcl-trivial-garbage)
6022 ("babel" ,sbcl-babel)
6023 ("iolib" ,sbcl-iolib)
6024 ("iolib+multiplex" ,(@@ (gnu packages lisp) sbcl-iolib+multiplex))
6025 ("iolib+syscalls" ,(@@ (gnu packages lisp) sbcl-iolib+syscalls))
6026 ("iolib+streams" ,(@@ (gnu packages lisp) sbcl-iolib+streams))
6027 ("iolib+sockets" ,(@@ (gnu packages lisp) sbcl-iolib+sockets))
6028 ("ieee-floats" ,sbcl-ieee-floats)
6029 ("flexi-streams" ,sbcl-flexi-streams)
6030 ("cl-xmlspam" ,sbcl-cl-xmlspam)
6031 ("ironclad" ,sbcl-ironclad)))
6032 (synopsis "D-Bus client library for Common Lisp")
6033 (description "This is a Common Lisp library that allows to publish D-Bus
6034objects as well as send and notify other objects connected to a bus.")
6035 (license license:bsd-2))))
6036
6037(define-public sbcl-cl-hooks
6038 (let ((commit "5b638083f3b4f1221a52631d9c8a0a265565cac7")
6039 (revision "1"))
6040 (package
6041 (name "sbcl-cl-hooks")
6042 (build-system asdf-build-system/sbcl)
6043 (version (git-version "0.2.1" revision commit))
6044 (home-page "https://github.com/scymtym/architecture.hooks")
6045 (source
6046 (origin
6047 (method git-fetch)
6048 (uri (git-reference
6049 (url home-page)
6050 (commit commit)))
6051 (file-name (git-file-name name version))
6052 (sha256
6053 (base32
6054 "0bg3l0a28lw5gqqjp6p6b5nhwqk46sgkb7184w5qbfngw1hk8x9y"))))
6055 (inputs
6056 `(("alexandria" ,sbcl-alexandria)
6057 ("let-plus" ,sbcl-let-plus)
6058 ("trivial-garbage" ,sbcl-trivial-garbage)
6059 ("closer-mop" ,sbcl-closer-mop)))
6060 (native-inputs
6061 `(("fiveam" ,sbcl-fiveam)))
6062 (synopsis "Hooks extension point mechanism (as in Emacs) for Common Lisp")
6063 (description "A hook, in the present context, is a certain kind of
6064extension point in a program that allows interleaving the execution of
6065arbitrary code with the execution of a the program without introducing any
6066coupling between the two. Hooks are used extensively in the extensible editor
6067Emacs.
6068
6069In the Common LISP Object System (CLOS), a similar kind of extensibility is
6070possible using the flexible multi-method dispatch mechanism. It may even seem
6071that the concept of hooks does not provide any benefits over the possibilities
6072of CLOS. However, there are some differences:
6073
6074@itemize
6075
6076@item There can be only one method for each combination of specializers and
6077qualifiers. As a result this kind of extension point cannot be used by
6078multiple extensions independently.
6079@item Removing code previously attached via a @code{:before}, @code{:after} or
6080@code{:around} method can be cumbersome.
6081@item There could be other or even multiple extension points besides @code{:before}
6082and @code{:after} in a single method.
6083@item Attaching codes to individual objects using eql specializers can be
6084cumbersome.
6085@item Introspection of code attached a particular extension point is
6086cumbersome since this requires enumerating and inspecting the methods of a
6087generic function.
6088@end itemize
6089
6090This library tries to complement some of these weaknesses of method-based
6091extension-points via the concept of hooks.")
6092 (license license:llgpl))))
6093
6094(define-public cl-hooks
6095 (sbcl-package->cl-source-package sbcl-cl-hooks))
6096
6097(define-public ecl-cl-hooks
6098 (sbcl-package->ecl-package sbcl-cl-hooks))
6099
6100(define-public sbcl-s-sysdeps
6101 (let ((commit "d28246b5dffef9e73a0e0e6cfbc4e878006fe34d")
6102 (revision "1"))
6103 (package
6104 (name "sbcl-s-sysdeps")
6105 (build-system asdf-build-system/sbcl)
6106 (version (git-version "1" revision commit))
6107 (home-page "https://github.com/svenvc/s-sysdeps")
6108 (source
6109 (origin
6110 (method git-fetch)
6111 (uri (git-reference
6112 (url home-page)
6113 (commit commit)))
6114 (file-name (git-file-name name version))
6115 (sha256
6116 (base32
6117 "14b69b81yrxmjlvmm3lfxk04x5v7hqz4fql121334wh72czznfh9"))))
6118 (synopsis "Common Lisp abstraction layer over platform dependent functionality")
6119 (description "@code{s-sysdeps} is an abstraction layer over platform
6120dependent functionality. This simple package is used as a building block in a
6121number of other open source projects.
6122
6123@code{s-sysdeps} abstracts:
6124
6125@itemize
6126@item managing processes,
6127@item implementing a standard TCP/IP server,
6128@item opening a client TCP/IP socket stream,
6129@item working with process locks.
6130@end itemize\n")
6131 (license license:llgpl))))
6132
6133(define-public cl-s-sysdeps
6134 (sbcl-package->cl-source-package sbcl-s-sysdeps))
6135
6136(define-public ecl-s-sysdeps
6137 (sbcl-package->ecl-package sbcl-s-sysdeps))
6138
6139(define-public sbcl-cl-prevalence
6140 (let ((commit "c163c227ed85d430b82cb1e3502f72d4f88e3cfa")
6141 (revision "1"))
6142 (package
6143 (name "sbcl-cl-prevalence")
6144 (build-system asdf-build-system/sbcl)
6145 (version (git-version "5" revision commit))
6146 (home-page "https://github.com/40ants/cl-prevalence")
6147 (source
6148 (origin
6149 (method git-fetch)
6150 (uri (git-reference
6151 (url home-page)
6152 (commit commit)))
6153 (file-name (git-file-name name version))
6154 (sha256
6155 (base32
6156 "1i9zj1q2ahgwch56an21yzbgkynz0kab9fyxkq9mg8p3xrv38jjn"))))
6157 (inputs
6158 `(("s-sysdeps" ,sbcl-s-sysdeps)
6159 ("s-xml" ,sbcl-s-xml)))
6160 (synopsis "Implementation of object prevalence for Common Lisp")
6161 (description "This Common Lisp library implements object prevalence (see
6162@url{https://en.wikipedia.org/wiki/System_prevalence}). It allows
6163for (de)serializing to and from s-exps as well as XML. Serialization of arbitrary
6164classes and cyclic data structures are supported.")
6165 (license license:llgpl))))
6166
6167(define-public cl-prevalence
6168 (sbcl-package->cl-source-package sbcl-cl-prevalence))
6169
6170(define-public ecl-cl-prevalence
6171 (sbcl-package->ecl-package sbcl-cl-prevalence))
6172
6173(define-public sbcl-series
6174 (let ((commit "da9061b336119d1e5214aff9117171d494d5a58a")
6175 (revision "1"))
6176 (package
6177 (name "sbcl-series")
6178 (version (git-version "2.2.11" revision commit))
6179 (source
6180 (origin
6181 (method git-fetch)
6182 (uri (git-reference
6183 (url "git://git.code.sf.net/p/series/series")
6184 (commit commit)))
6185 (file-name (git-file-name name version))
6186 (sha256
6187 (base32
6188 "07hk2lhfx42zk018pxqvn4gs77vd4n4g8m4xxbqaxgca76mifwfw"))))
6189 (build-system asdf-build-system/sbcl)
6190 (arguments
6191 ;; Disable the tests, they are apparently buggy and I didn't find
6192 ;; a simple way to make them run and pass.
6193 '(#:tests? #f))
6194 (synopsis "Series data structure for Common Lisp")
6195 (description
6196 "This Common Lisp library provides a series data structure much like
6197a sequence, with similar kinds of operations. The difference is that in many
6198situations, operations on series may be composed functionally and yet execute
6199iteratively, without the need to construct intermediate series values
6200explicitly. In this manner, series provide both the clarity of a functional
6201programming style and the efficiency of an iterative programming style.")
6202 (home-page "http://series.sourceforge.net/")
6203 (license license:expat))))
6204
6205(define-public cl-series
6206 (sbcl-package->cl-source-package sbcl-series))
6207
6208(define-public ecl-series
6209 (sbcl-package->ecl-package sbcl-series))
6210
6211(define-public sbcl-periods
6212 (let ((commit "983d4a57325db3c8def942f163133cec5391ec28")
6213 (revision "1"))
6214 (package
6215 (name "sbcl-periods")
6216 (version (git-version "0.0.2" revision commit))
6217 (source
6218 (origin
6219 (method git-fetch)
6220 (uri (git-reference
6221 (url "https://github.com/jwiegley/periods.git")
6222 (commit commit)))
6223 (file-name (git-file-name name version))
6224 (sha256
6225 (base32
6226 "0z30jr3lxz3cmi019fsl4lgcgwf0yqpn95v9zkkkwgymdrkd4lga"))))
6227 (build-system asdf-build-system/sbcl)
6228 (inputs
6229 `(("local-time" ,sbcl-local-time)))
6230 (synopsis "Common Lisp library for manipulating date/time objects")
6231 (description
6232 "Periods is a Common Lisp library providing a set of utilities for
6233manipulating times, distances between times, and both contiguous and
6234discontiguous ranges of time.")
6235 (home-page "https://github.com/jwiegley/periods")
6236 (license license:bsd-3))))
6237
6238(define-public cl-periods
6239 (sbcl-package->cl-source-package sbcl-periods))
6240
6241(define-public ecl-periods
6242 (sbcl-package->ecl-package sbcl-periods))
6243
6244(define-public sbcl-periods-series
6245 (package
6246 (inherit sbcl-periods)
6247 (name "sbcl-periods-series")
6248 (inputs
6249 `(("periods" ,sbcl-periods)
6250 ("series" ,sbcl-series)))
6251 (arguments
6252 '(#:asd-file "periods-series.asd"
6253 #:asd-system-name "periods-series"))
6254 (description
6255 "Periods-series is an extension of the periods Common Lisp library
6256providing functions compatible with the series Common Lisp library.")))
6257
6258(define-public cl-periods-series
6259 (sbcl-package->cl-source-package sbcl-periods-series))
6260
6261(define-public ecl-periods-series
6262 (sbcl-package->ecl-package sbcl-periods-series))
6263
6264(define-public sbcl-metatilities-base
6265 (let ((commit "6eaa9e3ff0939a93a92109dd0fcd218de85417d5")
6266 (revision "1"))
6267 (package
6268 (name "sbcl-metatilities-base")
6269 (version (git-version "0.6.6" revision commit))
6270 (source
6271 (origin
6272 (method git-fetch)
6273 (uri (git-reference
6274 (url "https://github.com/gwkkwg/metatilities-base.git")
6275 (commit commit)))
6276 (file-name (git-file-name name version))
6277 (sha256
6278 (base32
6279 "0xpa86pdzlnf4v5g64j3ifaplx71sx2ha8b7vvakswi652679ma0"))))
6280 (build-system asdf-build-system/sbcl)
6281 (native-inputs
6282 `(("lift" ,sbcl-lift)))
6283 (synopsis "Core of the metatilities Common Lisp library")
6284 (description
6285 "Metatilities-base is the core of the metatilities Common Lisp library
6286which implements a set of utilities.")
6287 (home-page "https://common-lisp.net/project/metatilities-base/")
6288 (license license:expat))))
6289
6290(define-public cl-metatilities-base
6291 (sbcl-package->cl-source-package sbcl-metatilities-base))
6292
6293(define-public ecl-metatilities-base
6294 (sbcl-package->ecl-package sbcl-metatilities-base))
6295
6296(define-public sbcl-cl-containers
6297 (let ((commit "810927e19d933bcf38ffeb7a23ce521efc432d45")
6298 (revision "1"))
6299 (package
6300 (name "sbcl-cl-containers")
6301 (version (git-version "0.12.1" revision commit))
6302 (source
6303 (origin
6304 (method git-fetch)
6305 (uri (git-reference
6306 (url "https://github.com/gwkkwg/cl-containers.git")
6307 (commit commit)))
6308 (file-name (git-file-name name version))
6309 (sha256
6310 (base32
6311 "1s9faxw7svhbjpkhfrz2qxgjm3cvyjb8wpyb4m8dx4i5g7vvprkv"))))
6312 (build-system asdf-build-system/sbcl)
6313 (native-inputs
6314 `(("lift" ,sbcl-lift)))
6315 (inputs
6316 `(("metatilities-base" ,sbcl-metatilities-base)))
6317 (arguments
6318 '(#:phases
6319 (modify-phases %standard-phases
6320 (add-after 'unpack 'relax-version-checks
6321 (lambda _
6322 (substitute* "cl-containers.asd"
6323 (("\\(:version \"metatilities-base\" \"0\\.6\\.6\"\\)")
6324 "\"metatilities-base\""))
6325 (substitute* "cl-containers-test.asd"
6326 (("\\(:version \"lift\" \"1\\.7\\.0\"\\)")
6327 "\"lift\""))
6328 #t)))))
6329 (synopsis "Container library for Common Lisp")
6330 (description
6331 "Common Lisp ships with a set of powerful built in data structures
6332including the venerable list, full featured arrays, and hash-tables.
6333CL-containers enhances and builds on these structures by adding containers
6334that are not available in native Lisp (for example: binary search trees,
6335red-black trees, sparse arrays and so on), and by providing a standard
6336interface so that they are simpler to use and so that changing design
6337decisions becomes significantly easier.")
6338 (home-page "https://common-lisp.net/project/cl-containers/")
6339 (license license:expat))))
6340
6341(define-public cl-containers
6342 (sbcl-package->cl-source-package sbcl-cl-containers))
6343
6344(define-public ecl-cl-containers
6345 (sbcl-package->ecl-package sbcl-cl-containers))
6346
6347(define-public sbcl-xlunit
6348 (let ((commit "3805d34b1d8dc77f7e0ee527a2490194292dd0fc")
6349 (revision "1"))
6350 (package
6351 (name "sbcl-xlunit")
6352 (version (git-version "0.6.3" revision commit))
6353 (source
6354 (origin
6355 (method git-fetch)
6356 (uri (git-reference
6357 (url "http://git.kpe.io/xlunit.git")
6358 (commit commit)))
6359 (file-name (git-file-name name version))
6360 (sha256
6361 (base32
6362 "0argfmp9nghs4sihyj3f8ch9qfib2b7ll07v5m9ziajgzsfl5xw3"))))
6363 (build-system asdf-build-system/sbcl)
6364 (arguments
6365 '(#:phases
6366 (modify-phases %standard-phases
6367 (add-after 'unpack 'fix-tests
6368 (lambda _
6369 (substitute* "xlunit.asd"
6370 ((" :force t") ""))
6371 #t)))))
6372 (synopsis "Unit testing package for Common Lisp")
6373 (description
6374 "The XLUnit package is a toolkit for building test suites. It is based
6375on the XPTest package by Craig Brozensky and the JUnit package by Kent Beck.")
6376 (home-page "http://quickdocs.org/xlunit/")
6377 (license license:bsd-3))))
6378
6379(define-public cl-xlunit
6380 (sbcl-package->cl-source-package sbcl-xlunit))
6381
6382(define-public ecl-xlunit
6383 (sbcl-package->ecl-package sbcl-xlunit))
6384
6385(define-public sbcl-fprog
6386 (let ((commit "7016d1a98215f82605d1c158e7a16504ca1f4636")
6387 (revision "1"))
6388 (package
6389 (name "sbcl-fprog")
6390 (version (git-version "1.0.0" revision commit))
6391 (source
6392 (origin
6393 (method git-fetch)
6394 (uri (git-reference
6395 (url "https://github.com/jwiegley/cambl.git")
6396 (commit commit)))
6397 (file-name (git-file-name name version))
6398 (sha256
6399 (base32
6400 "103mry04j2k9vznsxm7wcvccgxkil92cdrv52miwcmxl8daa4jiz"))))
6401 (build-system asdf-build-system/sbcl)
6402 (synopsis "Functional programming utilities for Common Lisp")
6403 (description
6404 "@code{fprog} is a Common Lisp library allowing iteration over
6405immutable lists sharing identical sublists.")
6406 (home-page "https://github.com/jwiegley/cambl")
6407 (license license:bsd-3))))
6408
6409(define-public cl-fprog
6410 (sbcl-package->cl-source-package sbcl-fprog))
6411
6412(define-public ecl-fprog
6413 (sbcl-package->ecl-package sbcl-fprog))
6414
6415(define-public sbcl-cambl
6416 (let ((commit "7016d1a98215f82605d1c158e7a16504ca1f4636")
6417 (revision "1"))
6418 (package
6419 (inherit sbcl-fprog)
6420 (name "sbcl-cambl")
6421 (version (git-version "4.0.0" revision commit))
6422 (native-inputs
6423 `(("xlunit" ,sbcl-xlunit)))
6424 (inputs
6425 `(("alexandria" ,sbcl-alexandria)
6426 ("cl-containers" ,sbcl-cl-containers)
6427 ("local-time" ,sbcl-local-time)
6428 ("periods" ,sbcl-periods)
6429 ("fprog" ,sbcl-fprog)))
6430 (synopsis "Commoditized amounts and balances for Common Lisp")
6431 (description
6432 "CAMBL is a Common Lisp library providing a convenient facility for
6433working with commoditized values. It does not allow compound units (and so is
6434not suited for scientific operations) but does work rather nicely for the
6435purpose of financial calculations."))))
6436
6437(define-public cl-cambl
6438 (sbcl-package->cl-source-package sbcl-cambl))
6439
6440(define-public ecl-cambl
6441 (sbcl-package->ecl-package sbcl-cambl))
6442
6443(define-public sbcl-cl-ledger
6444 (let ((commit "08e0be41795e804cd36142e51756ad0b1caa377b")
6445 (revision "1"))
6446 (package
6447 (name "sbcl-cl-ledger")
6448 (version (git-version "4.0.0" revision commit))
6449 (source
6450 (origin
6451 (method git-fetch)
6452 (uri (git-reference
6453 (url "https://github.com/ledger/cl-ledger.git")
6454 (commit commit)))
6455 (file-name (git-file-name name version))
6456 (sha256
6457 (base32
6458 "1via0qf6wjcyxnfbmfxjvms0ik9j8rqbifgpmnhrzvkhrq9pv8h1"))))
6459 (build-system asdf-build-system/sbcl)
6460 (inputs
6461 `(("cambl" ,sbcl-cambl)
6462 ("cl-ppcre" ,sbcl-cl-ppcre)
6463 ("local-time" ,sbcl-local-time)
6464 ("periods-series" ,sbcl-periods-series)))
6465 (arguments
6466 '(#:phases
6467 (modify-phases %standard-phases
6468 (add-after 'unpack 'fix-system-definition
6469 (lambda _
6470 (substitute* "cl-ledger.asd"
6471 ((" :build-operation program-op") "")
6472 ((" :build-pathname \"cl-ledger\"") "")
6473 ((" :entry-point \"ledger::main\"") ""))
6474 #t)))))
6475 (synopsis "Common Lisp port of the Ledger accounting system")
6476 (description
6477 "CL-Ledger is a Common Lisp port of the Ledger double-entry accounting
6478system.")
6479 (home-page "https://github.com/ledger/cl-ledger")
6480 (license license:bsd-3))))
6481
6482(define-public cl-ledger
6483 (sbcl-package->cl-source-package sbcl-cl-ledger))
6484
6485(define-public ecl-cl-ledger
6486 (sbcl-package->ecl-package sbcl-cl-ledger))
6487
6488(define-public sbcl-bst
6489 (let ((commit "34f9c7e8e0a9f2c952fe310ab36cb630d5d9c15a")
6490 (revision "1"))
6491 (package
6492 (name "sbcl-bst")
6493 (version (git-version "1.1" revision commit))
6494 (source
6495 (origin
6496 (method git-fetch)
6497 (uri (git-reference
6498 (url "https://github.com/glv2/bst.git")
6499 (commit commit)))
6500 (file-name (git-file-name name version))
6501 (sha256
6502 (base32
6503 "1amxns7hvvh4arwbh8ciwfzplg127vh37dnbamv1m1kmmnmihfc8"))))
6504 (build-system asdf-build-system/sbcl)
6505 (native-inputs
6506 `(("alexandria" ,sbcl-alexandria)
6507 ("fiveam" ,sbcl-fiveam)))
6508 (synopsis "Binary search tree for Common Lisp")
6509 (description
6510 "BST is a Common Lisp library for working with binary search trees that
6511can contain any kind of values.")
6512 (home-page "https://github.com/glv2/bst")
6513 (license license:gpl3))))
6514
6515(define-public cl-bst
6516 (sbcl-package->cl-source-package sbcl-bst))
6517
6518(define-public ecl-bst
6519 (sbcl-package->ecl-package sbcl-bst))
6520
6521(define-public sbcl-cl-octet-streams
6522 (package
6523 (name "sbcl-cl-octet-streams")
6524 (version "1.0")
6525 (source
6526 (origin
6527 (method git-fetch)
6528 (uri (git-reference
6529 (url "https://github.com/glv2/cl-octet-streams.git")
6530 (commit (string-append "v" version))))
6531 (file-name (git-file-name name version))
6532 (sha256
6533 (base32
6534 "1d7mn6ydv0j2x4r7clpc9ijjwrnfpxmvhifv8n5j7jh7s744sf8d"))))
6535 (build-system asdf-build-system/sbcl)
6536 (native-inputs
6537 `(("fiveam" ,sbcl-fiveam)))
6538 (inputs
6539 `(("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
6540 (synopsis "In-memory octet streams for Common Lisp")
6541 (description
6542 "CL-octet-streams is a library implementing in-memory octet
6543streams for Common Lisp. It was inspired by the trivial-octet-streams and
6544cl-plumbing libraries.")
6545 (home-page "https://github.com/glv2/cl-octet-streams")
6546 (license license:gpl3+)))
6547
6548(define-public cl-octet-streams
6549 (sbcl-package->cl-source-package sbcl-cl-octet-streams))
6550
6551(define-public ecl-cl-octet-streams
6552 (sbcl-package->ecl-package sbcl-cl-octet-streams))
6553
6554(define-public sbcl-lzlib
6555 (let ((commit "0de1db7129fef9a58a059d35a2fa2ecfc5b47b47")
6556 (revision "1"))
6557 (package
6558 (name "sbcl-lzlib")
6559 (version (git-version "1.0" revision commit))
6560 (source
6561 (origin
6562 (method git-fetch)
6563 (uri (git-reference
6564 (url "https://github.com/glv2/cl-lzlib.git")
6565 (commit commit)))
6566 (file-name (git-file-name name version))
6567 (sha256
6568 (base32
6569 "12ny7vj52fgnd8hb8fc8mry92vq4c1x72x2350191m4476j95clz"))))
6570 (build-system asdf-build-system/sbcl)
6571 (native-inputs
6572 `(("fiveam" ,sbcl-fiveam)))
6573 (inputs
6574 `(("cffi" ,sbcl-cffi)
6575 ("cl-octet-streams" ,sbcl-cl-octet-streams)
6576 ("lzlib" ,lzlib)))
6577 (arguments
6578 '(#:phases
6579 (modify-phases %standard-phases
6580 (add-after 'unpack 'fix-paths
6581 (lambda* (#:key inputs #:allow-other-keys)
6582 (substitute* "src/lzlib.lisp"
6583 (("liblz\\.so")
6584 (string-append (assoc-ref inputs "lzlib") "/lib/liblz.so")))
6585 #t)))))
6586 (synopsis "Common Lisp library for lzip (de)compression")
6587 (description
6588 "This Common Lisp library provides functions for lzip (LZMA)
6589compression/decompression using bindings to the lzlib C library.")
6590 (home-page "https://github.com/glv2/cl-lzlib")
6591 (license license:gpl3+))))
6592
6593(define-public cl-lzlib
6594 (sbcl-package->cl-source-package sbcl-lzlib))
6595
6596(define-public ecl-lzlib
6597 (sbcl-package->ecl-package sbcl-lzlib))
6598
6599(define-public sbcl-chanl
6600 (let ((commit "2362b57550c2c9238cc882d03553aaa1040b7340")
6601 (revision "0"))
6602 (package
6603 (name "sbcl-chanl")
6604 (version (git-version "0.4.1" revision commit))
6605 (source
6606 (origin
6607 (method git-fetch)
6608 (uri (git-reference
6609 (url "https://github.com/zkat/chanl.git")
6610 (commit commit)))
6611 (file-name (git-file-name name version))
6612 (sha256
6613 (base32
6614 "0ag3wz7yrqwp0s5069wwda98z3rrqd25spg8sa8rdqghj084w28w"))))
6615 (build-system asdf-build-system/sbcl)
6616 (native-inputs
6617 `(("fiveam" ,sbcl-fiveam)))
6618 (inputs
6619 `(("bordeaux-threads" ,sbcl-bordeaux-threads)))
6620 (synopsis "Portable channel-based concurrency for Common Lisp")
6621 (description "Common Lisp library for channel-based concurrency. In
6622a nutshell, you create various threads sequentially executing tasks you need
6623done, and use channel objects to communicate and synchronize the state of these
6624threads.")
6625 (home-page "https://github.com/zkat/chanl")
6626 (license (list license:expat license:bsd-3)))))
6627
6628(define-public cl-chanl
6629 (sbcl-package->cl-source-package sbcl-chanl))
6630
6631(define-public ecl-chanl
6632 (let ((base (sbcl-package->ecl-package sbcl-chanl)))
6633 (package
6634 (inherit base)
6635 (arguments
6636 (substitute-keyword-arguments (package-arguments base)
6637 ;; The CHANL.ACTORS package uses the :ARGUMENTS option of
6638 ;; DEFINE-METHOD-COMBINATION, which is not implemented in ECL yet
6639 ;; (see https://gitlab.com/embeddable-common-lisp/ecl/issues/305).
6640 ;; So let's disable it for now, as it allows compiling the library
6641 ;; and using the rest of it.
6642 ((#:phases phases '%standard-phases)
6643 `(modify-phases ,phases
6644 (add-after 'unpack 'disable-chanl-actors
6645 (lambda _
6646 (substitute* "chanl.asd"
6647 (("\\(:file \"actors\"\\)") ""))
6648 #t))))
6649 ;; Disable the tests for now, as the SEND-SEQUENCE test seems to
6650 ;; never end.
6651 ((#:tests? _ #f) #f))))))
6652
6653(define-public sbcl-cl-store
6654 (let ((commit "cd01f2610d3360dc01ab972bd9317407aaea7745")
6655 (revision "0"))
6656 (package
6657 (name "sbcl-cl-store")
6658 (version (git-version "0.8.11" revision commit))
6659 (source
6660 (origin
6661 (method git-fetch)
6662 (uri (git-reference
6663 (url "https://github.com/skypher/cl-store.git")
6664 (commit commit)))
6665 (file-name (git-file-name name version))
6666 (sha256
6667 (base32
6668 "05b7kh5af2ax7vlmphpac4vbqr84j5ivppj96qzb64fxpjpqglm4"))))
6669 (build-system asdf-build-system/sbcl)
6670 (native-inputs
6671 `(("rt" ,sbcl-rt)))
6672 (synopsis "Common Lisp library to serialize data")
6673 (description
6674 "CL-STORE is a portable serialization package which should give you the
6675ability to store all Common Lisp data types into streams.")
6676 (home-page "http://www.common-lisp.net/project/cl-store/")
6677 (license license:expat))))
6678
6679(define-public cl-store
6680 (sbcl-package->cl-source-package sbcl-cl-store))
6681
6682(define-public ecl-cl-store
6683 (sbcl-package->ecl-package sbcl-cl-store))
6684
6685(define-public sbcl-cl-gobject-introspection
6686 (let ((commit "7b703e2384945ea0ac39d9b766de434a08d81560")
6687 (revision "0"))
6688 (package
6689 (name "sbcl-cl-gobject-introspection")
6690 (version (git-version "0.3" revision commit))
6691 (home-page "https://github.com/andy128k/cl-gobject-introspection")
6692 (source
6693 (origin
6694 (method git-fetch)
6695 (uri (git-reference
6696 (url home-page)
6697 (commit commit)))
6698 (file-name (git-file-name name version))
6699 (sha256
6700 (base32
6701 "1zcqd2qj14f6b38vys8gr89s6cijsp9r8j43xa8lynilwva7bwyh"))))
6702 (build-system asdf-build-system/sbcl)
6703 (inputs
6704 `(("alexandria" ,sbcl-alexandria)
6705 ("cffi" ,sbcl-cffi)
6706 ("iterate" ,sbcl-iterate)
6707 ("trivial-garbage" ,sbcl-trivial-garbage)
6708 ("glib" ,glib)
6709 ("gobject-introspection" ,gobject-introspection)))
6710 (native-inputs
6711 `(("fiveam" ,sbcl-fiveam)))
6712 (arguments
6713 ;; TODO: Tests fail, see
6714 ;; https://github.com/andy128k/cl-gobject-introspection/issues/70.
6715 '(#:tests? #f
6716 #:phases
6717 (modify-phases %standard-phases
6718 (add-after (quote unpack) (quote fix-paths)
6719 (lambda* (#:key inputs #:allow-other-keys)
6720 (substitute* "src/init.lisp"
6721 (("libgobject-2\\.0\\.so")
6722 (string-append (assoc-ref inputs "glib") "/lib/libgobject-2.0.so"))
6723 (("libgirepository-1\\.0\\.so")
6724 (string-append (assoc-ref inputs "gobject-introspection")
6725 "/lib/libgirepository-1.0.so")))
6726 #t)))))
6727 (synopsis "Common Lisp bindings to GObject Introspection")
6728 (description
6729 "This library is a bridge between Common Lisp and GObject
6730Introspection, which enables Common Lisp programs to access the full interface
6731of C+GObject libraries without the need of writing dedicated bindings.")
6732 (license (list license:bsd-3
6733 ;; Tests are under a different license.
6734 license:llgpl)))))
6735
6736(define-public cl-gobject-introspection
6737 (sbcl-package->cl-source-package sbcl-cl-gobject-introspection))
6738
6739(define-public sbcl-string-case
6740 (let ((commit "718c761e33749e297cd2809c7ba3ade1985c49f7")
6741 (revision "0"))
6742 (package
6743 (name "sbcl-string-case")
6744 (version (git-version "0.0.2" revision commit))
6745 (home-page "https://github.com/pkhuong/string-case")
6746 (source
6747 (origin
6748 (method git-fetch)
6749 (uri (git-reference
6750 (url home-page)
6751 (commit commit)))
6752 (file-name (git-file-name name version))
6753 (sha256
6754 (base32
6755 "1n5i3yh0h5s636rcnwn7jwqy3rjflikra04lymimhpcshhjsk0md"))))
6756 (build-system asdf-build-system/sbcl)
6757 (synopsis "Efficient string= case in Common Lisp")
6758 (description
6759 "@code{string-case} is a Common Lisp macro that generates specialised decision
6760trees to dispatch on string equality.")
6761 (license license:bsd-3))))
6762
6763(define-public cl-string-case
6764 (sbcl-package->cl-source-package sbcl-string-case))
6765
6766(define-public ecl-string-case
6767 (sbcl-package->ecl-package sbcl-string-case))
6768
6769(define-public sbcl-global-vars
6770 (let ((commit "c749f32c9b606a1457daa47d59630708ac0c266e")
6771 (revision "0"))
6772 (package
6773 (name "sbcl-global-vars")
6774 (version (git-version "1.0.0" revision commit))
6775 (home-page "https://github.com/lmj/global-vars")
6776 (source
6777 (origin
6778 (method git-fetch)
6779 (uri (git-reference
6780 (url home-page)
6781 (commit commit)))
6782 (file-name (git-file-name name version))
6783 (sha256
6784 (base32
6785 "06m3xc8l3pgsapl8fvsi9wf6y46zs75cp9zn7zh6dc65v4s5wz3d"))))
6786 (build-system asdf-build-system/sbcl)
6787 (synopsis "Efficient global variables in Common Lisp")
6788 (description
6789 "In Common Lisp, a special variable that is never dynamically bound
6790typically serves as a stand-in for a global variable. The @code{global-vars}
6791library provides true global variables that are implemented by some compilers.
6792An attempt to rebind a global variable properly results in a compiler error.
6793That is, a global variable cannot be dynamically bound.
6794
6795Global variables therefore allow us to communicate an intended usage that
6796differs from special variables. Global variables are also more efficient than
6797special variables, especially in the presence of threads.")
6798 (license license:expat))))
6799
6800(define-public cl-global-vars
6801 (sbcl-package->cl-source-package sbcl-global-vars))
6802
6803(define-public ecl-global-vars
6804 (sbcl-package->ecl-package sbcl-global-vars))
6805
6806(define-public sbcl-trivial-file-size
6807 (let ((commit "1c1d672a01a446ba0391dbb4ffc40be3b0476f23")
6808 (revision "0"))
6809 (package
6810 (name "sbcl-trivial-file-size")
6811 (version (git-version "0.0.0" revision commit))
6812 (home-page "https://github.com/ruricolist/trivial-file-size")
6813 (source
6814 (origin
6815 (method git-fetch)
6816 (uri (git-reference
6817 (url home-page)
6818 (commit commit)))
6819 (file-name (git-file-name name version))
6820 (sha256
6821 (base32
6822 "17pp86c9zs4y7i1sh7q9gbfw9iqv6655k7fz8qbj9ly1ypgxp4qs"))))
6823 (build-system asdf-build-system/sbcl)
6824 (native-inputs
6825 `(("fiveam" ,sbcl-fiveam)))
6826 (synopsis "Size of a file in bytes in Common Lisp")
6827 (description
6828 "The canonical way to determine the size of a file in bytes, using Common Lisp,
6829is to open the file with an element type of (unsigned-byte 8) and then
6830calculate the length of the stream. This is less than ideal. In most cases
6831it is better to get the size of the file from its metadata, using a system
6832call.
6833
6834This library exports a single function, file-size-in-octets. It returns the
6835size of a file in bytes, using system calls when possible.")
6836 (license license:expat))))
6837
6838(define-public cl-trivial-file-size
6839 (sbcl-package->cl-source-package sbcl-trivial-file-size))
6840
6841(define-public ecl-trivial-file-size
6842 (sbcl-package->ecl-package sbcl-trivial-file-size))
6843
6844(define-public sbcl-trivial-macroexpand-all
6845 (let ((commit "933270ac7107477de1bc92c1fd641fe646a7a8a9")
6846 (revision "0"))
6847 (package
6848 (name "sbcl-trivial-macroexpand-all")
6849 (version (git-version "0.0.0" revision commit))
6850 (home-page "https://github.com/cbaggers/trivial-macroexpand-all")
6851 (source
6852 (origin
6853 (method git-fetch)
6854 (uri (git-reference
6855 (url home-page)
6856 (commit commit)))
6857 (file-name (git-file-name name version))
6858 (sha256
6859 (base32
6860 "191hnn4b5j4i3crydmlzbm231kj0h7l8zj6mzj69r1npbzkas4bd"))))
6861 (build-system asdf-build-system/sbcl)
6862 (native-inputs
6863 `(("fiveam" ,sbcl-fiveam)))
6864 (synopsis "Portable macroexpand-all for Common Lisp")
6865 (description
6866 "This library provides a macroexpand-all function that calls the
6867implementation specific equivalent.")
6868 (license license:unlicense))))
6869
6870(define-public cl-trivial-macroexpand-all
6871 (sbcl-package->cl-source-package sbcl-trivial-macroexpand-all))
6872
6873(define-public ecl-trivial-macroexpand-all
6874 (sbcl-package->ecl-package sbcl-trivial-macroexpand-all))
6875
6876(define-public sbcl-serapeum
6877 (let ((commit "65837f8a0d65b36369ec8d000fff5c29a395b5fe")
6878 (revision "0"))
6879 (package
6880 (name "sbcl-serapeum")
6881 (version (git-version "0.0.0" revision commit))
6882 (home-page "https://github.com/ruricolist/serapeum")
6883 (source
6884 (origin
6885 (method git-fetch)
6886 (uri (git-reference
6887 (url home-page)
6888 (commit commit)))
6889 (file-name (git-file-name name version))
6890 (sha256
6891 (base32
6892 "0clwf81r2lvk1rbfvk91s9zmbkas9imf57ilqclw12mxaxlfsnbw"))))
6893 (build-system asdf-build-system/sbcl)
6894 (inputs
6895 `(("alexandria" ,sbcl-alexandria)
6896 ("trivia" ,sbcl-trivia)
6897 ("trivia.quasiquote" ,sbcl-trivia.quasiquote)
6898 ("split-sequence" ,sbcl-split-sequence)
6899 ("string-case" ,sbcl-string-case)
6900 ("parse-number" ,sbcl-parse-number)
6901 ("trivial-garbage" ,sbcl-trivial-garbage)
6902 ("bordeaux-threads" ,sbcl-bordeaux-threads)
6903 ("named-readtables" ,sbcl-named-readtables)
6904 ("fare-quasiquote-extras" ,cl-fare-quasiquote-extras)
6905 ("parse-declarations-1.0" ,sbcl-parse-declarations)
6906 ("global-vars" ,sbcl-global-vars)
6907 ("trivial-file-size" ,sbcl-trivial-file-size)
6908 ("trivial-macroexpand-all" ,sbcl-trivial-macroexpand-all)))
6909 (native-inputs
6910 `(("fiveam" ,sbcl-fiveam)
6911 ("local-time" ,sbcl-local-time)))
6912 (arguments
6913 '(#:phases
6914 (modify-phases %standard-phases
6915 (add-after 'unpack 'disable-failing-tests
6916 (lambda* (#:key inputs #:allow-other-keys)
6917 (substitute* "serapeum.asd"
6918 ;; Guix does not have Quicklisp, and probably never will.
6919 (("\\(:file \"quicklisp\"\\)") ""))
6920 #t)))))
6921 (synopsis "Common Lisp utility library beyond Alexandria")
6922 (description
6923 "Serapeum is a conservative library of Common Lisp utilities. It is a
6924supplement, not a competitor, to Alexandria.")
6925 (license license:expat))))
6926
6927(define-public cl-serapeum
6928 (sbcl-package->cl-source-package sbcl-serapeum))
6929
6930(define-public sbcl-arrows
6931 (let ((commit "df7cf0067e0132d9697ac8b1a4f1b9c88d4f5382")
6932 (revision "0"))
6933 (package
6934 (name "sbcl-arrows")
6935 (version (git-version "0.2.0" revision commit))
6936 (source
6937 (origin
6938 (method git-fetch)
6939 (uri (git-reference
6940 (url "https://gitlab.com/Harleqin/arrows.git")
6941 (commit commit)))
6942 (file-name (git-file-name name version))
6943 (sha256
6944 (base32
6945 "042k9vkssrqx9nhp14wdzm942zgdxvp35mba0p2syz98i75im2yy"))))
6946 (build-system asdf-build-system/sbcl)
6947 (native-inputs
6948 `(("hu.dwim.stefil" ,sbcl-hu.dwim.stefil)))
6949 (synopsis "Clojure-like arrow macros for Common Lisp")
6950 (description
6951 "This library implements the @code{->} and @code{->>} macros from
6952Clojure, as well as several expansions on the idea.")
6953 (home-page "https://gitlab.com/Harleqin/arrows")
6954 (license license:public-domain))))
6955
6956(define-public cl-arrows
6957 (sbcl-package->cl-source-package sbcl-arrows))
6958
6959(define-public ecl-arrows
6960 (sbcl-package->ecl-package sbcl-arrows))
6961
6962(define-public sbcl-simple-parallel-tasks
6963 (let ((commit "db460f7a3f7bbfe2d3a2223ed21e162068d04dda")
6964 (revision "0"))
6965 (package
6966 (name "sbcl-simple-parallel-tasks")
6967 (version (git-version "1.0" revision commit))
6968 (source
6969 (origin
6970 (method git-fetch)
6971 (uri (git-reference
6972 (url "https://github.com/glv2/simple-parallel-tasks.git")
6973 (commit commit)))
6974 (file-name (git-file-name name version))
6975 (sha256
6976 (base32
6977 "0amw3qk23wnlyrsgzszs6rs7y4zvxv8dr03rnqhc60mnm8ds4dd5"))))
6978 (build-system asdf-build-system/sbcl)
6979 (native-inputs
6980 `(("fiveam" ,sbcl-fiveam)))
6981 (inputs
6982 `(("chanl" ,sbcl-chanl)))
6983 (synopsis "Common Lisp library to evaluate some forms in parallel")
6984 (description "This is a simple Common Lisp library to evaluate some
6985forms in parallel.")
6986 (home-page "https://github.com/glv2/simple-parallel-tasks")
6987 (license license:gpl3))))
6988
6989(define-public cl-simple-parallel-tasks
6990 (sbcl-package->cl-source-package sbcl-simple-parallel-tasks))
6991
6992(define-public ecl-simple-parallel-tasks
6993 (sbcl-package->ecl-package sbcl-simple-parallel-tasks))
6994
6995(define-public sbcl-cl-heap
6996 (package
6997 (name "sbcl-cl-heap")
6998 (version "0.1.6")
6999 (source
7000 (origin
7001 (method url-fetch)
7002 (uri (string-append "https://common-lisp.net/project/cl-heap/releases/"
7003 "cl-heap_" version ".tar.gz"))
7004 (sha256
7005 (base32
7006 "163hb07p2nxz126rpq3cj5dyala24n0by5i5786n2qcr1w0bak4i"))))
7007 (build-system asdf-build-system/sbcl)
7008 (native-inputs
7009 `(("xlunit" ,sbcl-xlunit)))
7010 (arguments
7011 `(#:test-asd-file "cl-heap-tests.asd"))
7012 (synopsis "Heap and priority queue data structures for Common Lisp")
7013 (description
7014 "CL-HEAP provides various implementations of heap data structures (a
7015binary heap and a Fibonacci heap) as well as an efficient priority queue.")
7016 (home-page "https://common-lisp.net/project/cl-heap/")
7017 (license license:gpl3+)))
7018
7019(define-public cl-heap
7020 (sbcl-package->cl-source-package sbcl-cl-heap))
7021
7022(define-public ecl-cl-heap
7023 (sbcl-package->ecl-package sbcl-cl-heap))
7024
7025(define-public sbcl-curry-compose-reader-macros
7026 (let ((commit "beaa92dedf392726c042184bfd6149fa8d9e6ac2")
7027 (revision "0"))
7028 (package
7029 (name "sbcl-curry-compose-reader-macros")
7030 (version (git-version "1.0.0" revision commit))
7031 (source
7032 (origin
7033 (method git-fetch)
7034 (uri
7035 (git-reference
7036 (url "https://github.com/eschulte/curry-compose-reader-macros.git")
7037 (commit commit)))
7038 (file-name (git-file-name name version))
7039 (sha256
7040 (base32
7041 "0rv9bl8xrad5wfcg5zs1dazvnpmvqz6297lbn8bywsrcfnlf7h98"))))
7042 (build-system asdf-build-system/sbcl)
7043 (inputs
7044 `(("alexandria" ,sbcl-alexandria)
7045 ("named-readtables" ,sbcl-named-readtables)))
7046 (synopsis "Reader macros for partial application and composition")
7047 (description
7048 "This Common Lisp library provides reader macros for concise expression
7049of function partial application and composition.")
7050 (home-page "https://eschulte.github.io/curry-compose-reader-macros/")
7051 (license license:public-domain))))
7052
7053(define-public cl-curry-compose-reader-macros
7054 (sbcl-package->cl-source-package sbcl-curry-compose-reader-macros))
7055
7056(define-public ecl-curry-compose-reader-macros
7057 (sbcl-package->ecl-package sbcl-curry-compose-reader-macros))
7058
7059(define-public sbcl-yason
7060 (package
7061 (name "sbcl-yason")
7062 (version "0.7.7")
7063 (source
7064 (origin
7065 (method git-fetch)
7066 (uri (git-reference
7067 (url "https://github.com/phmarek/yason.git")
7068 (commit (string-append "v" version))))
7069 (file-name (git-file-name name version))
7070 (sha256
7071 (base32
7072 "0479rbjgbj80jpk5bby18inlv1kfp771a82rlcq5psrz65qqa9bj"))))
7073 (build-system asdf-build-system/sbcl)
7074 (inputs
7075 `(("alexandria" ,sbcl-alexandria)
7076 ("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
7077 (synopsis "Common Lisp JSON parser/encoder")
7078 (description
7079 "YASON is a Common Lisp library for encoding and decoding data in the
7080JSON interchange format.")
7081 (home-page "https://github.com/phmarek/yason")
7082 (license license:bsd-3)))
7083
7084(define-public cl-yason
7085 (sbcl-package->cl-source-package sbcl-yason))
7086
7087(define-public ecl-yason
7088 (sbcl-package->ecl-package sbcl-yason))
7089
7090(define-public sbcl-stefil
7091 (let ((commit "0398548ec95dceb50fc2c2c03e5fb0ce49b86c7a")
7092 (revision "0"))
7093 (package
7094 (name "sbcl-stefil")
7095 (version (git-version "0.1" revision commit))
7096 (source
7097 (origin
7098 (method git-fetch)
7099 (uri (git-reference
7100 (url "https://gitlab.common-lisp.net/stefil/stefil.git")
7101 (commit commit)))
7102 (file-name (git-file-name name version))
7103 (sha256
7104 (base32
7105 "0bqz64q2szzhf91zyqyssmvrz7da6442rs01808pf3wrdq28bclh"))))
7106 (build-system asdf-build-system/sbcl)
7107 (inputs
7108 `(("alexandria" ,sbcl-alexandria)
7109 ("iterate" ,sbcl-iterate)
7110 ("metabang-bind" ,sbcl-metabang-bind)))
7111 (propagated-inputs
7112 ;; Swank doesn't have a pre-compiled package, therefore we must
7113 ;; propagate its sources.
7114 `(("swank" ,cl-slime-swank)))
7115 (arguments
7116 '(#:phases
7117 (modify-phases %standard-phases
7118 (add-after 'unpack 'drop-unnecessary-dependency
7119 (lambda _
7120 (substitute* "package.lisp"
7121 ((":stefil-system") ""))
7122 #t)))))
7123 (home-page "https://common-lisp.net/project/stefil/index-old.shtml")
7124 (synopsis "Simple test framework")
7125 (description
7126 "Stefil is a simple test framework for Common Lisp, with a focus on
7127interactive development.")
7128 (license license:public-domain))))
7129
7130(define-public cl-stefil
7131 (sbcl-package->cl-source-package sbcl-stefil))
7132
7133(define-public sbcl-graph
7134 (let ((commit "78bf9ec930d8eae4f0861b5be76765fb1e45e24f")
7135 (revision "0"))
7136 (package
7137 (name "sbcl-graph")
7138 (version (git-version "0.0.0" revision commit))
7139 (source
7140 (origin
7141 (method git-fetch)
7142 (uri
7143 (git-reference
7144 (url "https://github.com/eschulte/graph.git")
7145 (commit commit)))
7146 (file-name (git-file-name name version))
7147 (sha256
7148 (base32
7149 "1qpij4xh8bqwc2myahpilcbh916v7vg0acz2fij14d3y0jm02h0g"))
7150 (patches (search-patches "sbcl-graph-asdf-definitions.patch"))))
7151 (build-system asdf-build-system/sbcl)
7152 (native-inputs
7153 `(("stefil" ,sbcl-stefil)))
7154 (inputs
7155 `(("alexandria" ,sbcl-alexandria)
7156 ("cl-heap" ,sbcl-cl-heap)
7157 ("curry-compose-reader-macros" ,sbcl-curry-compose-reader-macros)
7158 ("metabang-bind" ,sbcl-metabang-bind)
7159 ("named-readtables" ,sbcl-named-readtables)))
7160 (arguments
7161 '(#:test-asd-file "graph.test.asd"))
7162 (synopsis "Graph data structure and algorithms for Common Lisp")
7163 (description
7164 "The GRAPH Common Lisp library provides a data structures to represent
7165graphs, as well as some graph manipulation and analysis algorithms (shortest
7166path, maximum flow, minimum spanning tree, etc.).")
7167 (home-page "https://eschulte.github.io/graph/")
7168 (license license:gpl3+))))
7169
7170(define-public cl-graph
7171 (sbcl-package->cl-source-package sbcl-graph))
7172
7173(define-public sbcl-graph-dot
7174 (package
7175 (inherit sbcl-graph)
7176 (name "sbcl-graph-dot")
7177 (inputs
7178 `(("alexandria" ,sbcl-alexandria)
7179 ("cl-ppcre" ,sbcl-cl-ppcre)
7180 ("curry-compose-reader-macros" ,sbcl-curry-compose-reader-macros)
7181 ("graph" ,sbcl-graph)
7182 ("metabang-bind" ,sbcl-metabang-bind)
7183 ("named-readtables" ,sbcl-named-readtables)))
7184 (arguments
7185 (substitute-keyword-arguments (package-arguments sbcl-graph)
7186 ((#:asd-file _ "") "graph.dot.asd")
7187 ((#:asd-system-name _ #f) "graph-dot")))
7188 (synopsis "Serialize graphs to and from DOT format")))
7189
7190(define-public sbcl-graph-json
7191 (package
7192 (inherit sbcl-graph)
7193 (name "sbcl-graph-json")
7194 (inputs
7195 `(("alexandria" ,sbcl-alexandria)
7196 ("curry-compose-reader-macros" ,sbcl-curry-compose-reader-macros)
7197 ("graph" ,sbcl-graph)
7198 ("metabang-bind" ,sbcl-metabang-bind)
7199 ("named-readtables" ,sbcl-named-readtables)
7200 ("yason" ,sbcl-yason)))
7201 (arguments
7202 (substitute-keyword-arguments (package-arguments sbcl-graph)
7203 ((#:asd-file _ "") "graph.json.asd")
7204 ((#:asd-system-name _ #f) "graph-json")))
7205 (synopsis "Serialize graphs to and from JSON format")))