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