0bff3110cc420fc2bb87f5e26d195c7f4ea8a3a6
[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 ;;; Copyright © 2020 Konrad Hinsen <konrad.hinsen@fastmail.net>
20 ;;;
21 ;;; This file is part of GNU Guix.
22 ;;;
23 ;;; GNU Guix is free software; you can redistribute it and/or modify it
24 ;;; under the terms of the GNU General Public License as published by
25 ;;; the Free Software Foundation; either version 3 of the License, or (at
26 ;;; your option) any later version.
27 ;;;
28 ;;; GNU Guix is distributed in the hope that it will be useful, but
29 ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
30 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
31 ;;; GNU General Public License for more details.
32 ;;;
33 ;;; You should have received a copy of the GNU General Public License
34 ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
35
36 ;;; This file only contains Common Lisp libraries.
37 ;;; Common Lisp compilers and tooling go to lisp.scm.
38 ;;; Common Lisp applications should go to the most appropriate file,
39 ;;; e.g. StumpWM is in wm.scm.
40
41 (define-module (gnu packages lisp-xyz)
42 #:use-module (gnu packages)
43 #:use-module ((guix licenses) #:prefix license:)
44 #:use-module (guix packages)
45 #:use-module (guix download)
46 #:use-module (guix git-download)
47 #:use-module (guix hg-download)
48 #:use-module (guix utils)
49 #:use-module (guix build-system asdf)
50 #:use-module (guix build-system trivial)
51 #:use-module (gnu packages c)
52 #:use-module (gnu packages compression)
53 #:use-module (gnu packages glib)
54 #:use-module (gnu packages gtk)
55 #:use-module (gnu packages imagemagick)
56 #:use-module (gnu packages libevent)
57 #:use-module (gnu packages libffi)
58 #:use-module (gnu packages lisp)
59 #:use-module (gnu packages maths)
60 #:use-module (gnu packages pkg-config)
61 #:use-module (gnu packages python)
62 #:use-module (gnu packages python-xyz)
63 #:use-module (gnu packages sqlite)
64 #:use-module (gnu packages tcl)
65 #:use-module (gnu packages tls)
66 #:use-module (gnu packages webkit)
67 #:use-module (gnu packages xdisorg)
68 #:use-module (ice-9 match)
69 #:use-module (srfi srfi-19))
70
71 (define-public sbcl-alexandria
72 (let ((revision "1")
73 (commit "3b849bc0116ea70f215ee6b2fbf354e862aaa9dd"))
74 (package
75 (name "sbcl-alexandria")
76 (version (git-version "1.0.0" revision commit))
77 (source
78 (origin
79 (method git-fetch)
80 (uri (git-reference
81 (url "https://gitlab.common-lisp.net/alexandria/alexandria.git")
82 (commit commit)))
83 (sha256
84 (base32
85 "04amwvx2vl691f0plcfbqqwxgib9zimih7jrn5zl7mbwvrxy022b"))
86 (file-name (git-file-name name version))))
87 (build-system asdf-build-system/sbcl)
88 (native-inputs
89 `(("rt" ,sbcl-rt)))
90 (synopsis "Collection of portable utilities for Common Lisp")
91 (description
92 "Alexandria is a collection of portable utilities. It does not contain
93 conceptual extensions to Common Lisp. It is conservative in scope, and
94 portable between implementations.")
95 (home-page "https://common-lisp.net/project/alexandria/")
96 (license license:public-domain))))
97
98 (define-public cl-alexandria
99 (sbcl-package->cl-source-package sbcl-alexandria))
100
101 (define-public ecl-alexandria
102 (sbcl-package->ecl-package sbcl-alexandria))
103
104 (define-public sbcl-net.didierverna.asdf-flv
105 (package
106 (name "sbcl-net.didierverna.asdf-flv")
107 (version "2.1")
108 (source
109 (origin
110 (method git-fetch)
111 (uri (git-reference
112 (url "https://github.com/didierverna/asdf-flv")
113 (commit (string-append "version-" version))))
114 (file-name (git-file-name "asdf-flv" version))
115 (sha256
116 (base32 "1fi2y4baxan103jbg4idjddzihy03kwnj2mzbwrknw4d4x7xlgwj"))))
117 (build-system asdf-build-system/sbcl)
118 (synopsis "Common Lisp ASDF extension to provide support for file-local variables")
119 (description "ASDF-FLV provides support for file-local variables through
120 ASDF. A file-local variable behaves like @code{*PACKAGE*} and
121 @code{*READTABLE*} with respect to @code{LOAD} and @code{COMPILE-FILE}: a new
122 dynamic binding is created before processing the file, so that any
123 modification to the variable becomes essentially file-local.
124
125 In order to make one or several variables file-local, use the macros
126 @code{SET-FILE-LOCAL-VARIABLE(S)}.")
127 (home-page "https://www.lrde.epita.fr/~didier/software/lisp/misc.php#asdf-flv")
128 (license (license:non-copyleft
129 "https://www.gnu.org/prep/maintain/html_node/License-Notices-for-Other-Files.html"
130 "GNU All-Permissive License"))))
131
132 (define-public cl-net.didierverna.asdf-flv
133 (sbcl-package->cl-source-package sbcl-net.didierverna.asdf-flv))
134
135 (define-public ecl-net.didierverna.asdf-flv
136 (sbcl-package->ecl-package sbcl-net.didierverna.asdf-flv))
137
138 (define-public sbcl-fiveam
139 (package
140 (name "sbcl-fiveam")
141 (version "1.4.1")
142 (source
143 (origin
144 (method git-fetch)
145 (uri (git-reference
146 (url "https://github.com/sionescu/fiveam.git")
147 (commit (string-append "v" version))))
148 (file-name (git-file-name "fiveam" version))
149 (sha256
150 (base32 "1q3d38pwafnwnw42clq0f8g5xw7pbzr287jl9jsqmb1vb0n1vrli"))))
151 (inputs
152 `(("alexandria" ,sbcl-alexandria)
153 ("net.didierverna.asdf-flv" ,sbcl-net.didierverna.asdf-flv)
154 ("trivial-backtrace" ,sbcl-trivial-backtrace)))
155 (build-system asdf-build-system/sbcl)
156 (synopsis "Common Lisp testing framework")
157 (description "FiveAM is a simple (as far as writing and running tests
158 goes) regression testing framework. It has been designed with Common Lisp's
159 interactive development model in mind.")
160 (home-page "https://common-lisp.net/project/fiveam/")
161 (license license:bsd-3)))
162
163 (define-public cl-fiveam
164 (sbcl-package->cl-source-package sbcl-fiveam))
165
166 (define-public ecl-fiveam
167 (sbcl-package->ecl-package sbcl-fiveam))
168
169 (define-public sbcl-bordeaux-threads
170 (package
171 (name "sbcl-bordeaux-threads")
172 (version "0.8.7")
173 (source (origin
174 (method git-fetch)
175 (uri (git-reference
176 (url "https://github.com/sionescu/bordeaux-threads.git")
177 (commit (string-append "v" version))))
178 (sha256
179 (base32 "1whpfmyxp2fsw6viqj45fqgsifgr534c575bfh5vaqw5m84b6alp"))
180 (file-name
181 (git-file-name "bordeaux-threads" version))))
182 (inputs `(("alexandria" ,sbcl-alexandria)))
183 (native-inputs `(("fiveam" ,sbcl-fiveam)))
184 (build-system asdf-build-system/sbcl)
185 (synopsis "Portable shared-state concurrency library for Common Lisp")
186 (description "BORDEAUX-THREADS is a proposed standard for a minimal
187 MP/Threading interface. It is similar to the CLIM-SYS threading and lock
188 support.")
189 (home-page "https://common-lisp.net/project/bordeaux-threads/")
190 (license license:x11)))
191
192 (define-public cl-bordeaux-threads
193 (sbcl-package->cl-source-package sbcl-bordeaux-threads))
194
195 (define-public ecl-bordeaux-threads
196 (sbcl-package->ecl-package sbcl-bordeaux-threads))
197
198 (define-public sbcl-trivial-gray-streams
199 (let ((revision "1")
200 (commit "0483ade330508b4b2edeabdb47d16ec9437ee1cb"))
201 (package
202 (name "sbcl-trivial-gray-streams")
203 (version (string-append "0.0.0-" revision "." (string-take commit 7)))
204 (source
205 (origin
206 (method git-fetch)
207 (uri
208 (git-reference
209 (url "https://github.com/trivial-gray-streams/trivial-gray-streams.git")
210 (commit commit)))
211 (sha256
212 (base32 "0m3rpf2x0zmdk3nf1qfa01j6a55vj7gkwhyw78qslcgbjlgh8p4d"))
213 (file-name
214 (string-append "trivial-gray-streams-" version "-checkout"))))
215 (build-system asdf-build-system/sbcl)
216 (synopsis "Compatibility layer for Gray streams implementations")
217 (description "Gray streams is an interface proposed for inclusion with
218 ANSI CL by David N. Gray. The proposal did not make it into ANSI CL, but most
219 popular CL implementations implement it. This package provides an extremely
220 thin compatibility layer for gray streams.")
221 (home-page "http://www.cliki.net/trivial-gray-streams")
222 (license license:x11))))
223
224 (define-public cl-trivial-gray-streams
225 (sbcl-package->cl-source-package sbcl-trivial-gray-streams))
226
227 (define-public ecl-trivial-gray-streams
228 (sbcl-package->ecl-package sbcl-trivial-gray-streams))
229
230 (define-public sbcl-fiasco
231 (let ((commit "d62f7558b21addc89f87e306f65d7f760632655f")
232 (revision "1"))
233 (package
234 (name "sbcl-fiasco")
235 (version (git-version "0.0.1" revision commit))
236 (source
237 (origin
238 (method git-fetch)
239 (uri (git-reference
240 (url "https://github.com/joaotavora/fiasco.git")
241 (commit commit)))
242 (file-name (git-file-name "fiasco" version))
243 (sha256
244 (base32
245 "1zwxs3d6iswayavcmb49z2892xhym7n556d8dnmvalc32pm9bkjh"))))
246 (build-system asdf-build-system/sbcl)
247 (inputs
248 `(("alexandria" ,sbcl-alexandria)
249 ("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
250 (synopsis "Simple and powerful test framework for Common Lisp")
251 (description "A Common Lisp test framework that treasures your failures,
252 logical continuation of Stefil. It focuses on interactive debugging.")
253 (home-page "https://github.com/joaotavora/fiasco")
254 ;; LICENCE specifies this is public-domain unless the legislation
255 ;; doesn't allow or recognize it. In that case it falls back to a
256 ;; permissive licence.
257 (license (list license:public-domain
258 (license:x11-style "file://LICENCE"))))))
259
260 (define-public cl-fiasco
261 (sbcl-package->cl-source-package sbcl-fiasco))
262
263 (define-public ecl-fiasco
264 (sbcl-package->ecl-package sbcl-fiasco))
265
266 (define-public sbcl-flexi-streams
267 (package
268 (name "sbcl-flexi-streams")
269 (version "1.0.18")
270 (source
271 (origin
272 (method git-fetch)
273 (uri (git-reference
274 (url "https://github.com/edicl/flexi-streams.git")
275 (commit (string-append "v" version))))
276 (file-name (git-file-name "flexi-streams" version))
277 (sha256
278 (base32 "0bjv7fd2acknidc5dyi3h85pn10krxv5jyxs1xg8jya2rlfv7f1j"))))
279 (build-system asdf-build-system/sbcl)
280 (arguments
281 `(#:phases
282 (modify-phases %standard-phases
283 (add-after 'unpack 'make-git-checkout-writable
284 (lambda _
285 (for-each make-file-writable (find-files "."))
286 #t)))))
287 (inputs `(("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
288 (synopsis "Implementation of virtual bivalent streams for Common Lisp")
289 (description "Flexi-streams is an implementation of \"virtual\" bivalent
290 streams that can be layered atop real binary or bivalent streams and that can
291 be used to read and write character data in various single- or multi-octet
292 encodings which can be changed on the fly. It also supplies in-memory binary
293 streams which are similar to string streams.")
294 (home-page "http://weitz.de/flexi-streams/")
295 (license license:bsd-3)))
296
297 (define-public cl-flexi-streams
298 (sbcl-package->cl-source-package sbcl-flexi-streams))
299
300 (define-public ecl-flexi-streams
301 (sbcl-package->ecl-package sbcl-flexi-streams))
302
303 (define-public sbcl-cl-ppcre
304 (package
305 (name "sbcl-cl-ppcre")
306 (version "2.1.1")
307 (source
308 (origin
309 (method git-fetch)
310 (uri (git-reference
311 (url "https://github.com/edicl/cl-ppcre.git")
312 (commit (string-append "v" version))))
313 (file-name (git-file-name "cl-ppcre" version))
314 (sha256
315 (base32 "0dwvr29diqzcg5n6jvbk2rnd90i05l7n828hhw99khmqd0kz7xsi"))))
316 (build-system asdf-build-system/sbcl)
317 (native-inputs `(("flexi-streams" ,sbcl-flexi-streams)))
318 (synopsis "Portable regular expression library for Common Lisp")
319 (description "CL-PPCRE is a portable regular expression library for Common
320 Lisp, which is compatible with perl. It is pretty fast, thread-safe, and
321 compatible with ANSI-compliant Common Lisp implementations.")
322 (home-page "http://weitz.de/cl-ppcre/")
323 (license license:bsd-2)))
324
325 (define-public cl-ppcre
326 (sbcl-package->cl-source-package sbcl-cl-ppcre))
327
328 (define-public ecl-cl-ppcre
329 (sbcl-package->ecl-package sbcl-cl-ppcre))
330
331 (define sbcl-cl-unicode-base
332 (package
333 (name "sbcl-cl-unicode-base")
334 (version "0.1.6")
335 (source (origin
336 (method git-fetch)
337 (uri (git-reference
338 (url "https://github.com/edicl/cl-unicode.git")
339 (commit (string-append "v" version))))
340 (file-name (git-file-name name version))
341 (sha256
342 (base32
343 "0ykx2s9lqfl74p1px0ik3l2izd1fc9jd1b4ra68s5x34rvjy0hza"))))
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-cl-vectors
466 (package
467 (inherit sbcl-cl-aa)
468 (name "sbcl-cl-vectors")
469 (arguments '(#:asd-file "cl-vectors.asd"))
470 (inputs
471 `(("cl-aa" ,sbcl-cl-aa)
472 ("cl-paths" ,sbcl-cl-paths)))
473 (synopsis "Create, transform and render anti-aliased vectorial paths")
474 (description
475 "This is a pure Common Lisp library to create, transform and render
476 anti-aliased vectorial paths.")))
477
478 (define-public ecl-cl-vectors
479 (sbcl-package->ecl-package sbcl-cl-vectors))
480
481 (define-public cl-vectors
482 (sbcl-package->cl-source-package sbcl-cl-vectors))
483
484 (define-public sbcl-spatial-trees
485 ;; There have been no releases.
486 (let ((commit "81fdad0a0bf109c80a53cc96eca2e093823400ba")
487 (revision "1"))
488 (package
489 (name "sbcl-spatial-trees")
490 (version (git-version "0" revision commit))
491 (source
492 (origin
493 (method git-fetch)
494 (uri (git-reference
495 (url "https://github.com/rpav/spatial-trees.git")
496 (commit commit)))
497 (file-name (git-file-name name version))
498 (sha256
499 (base32
500 "11rhc6h501dwcik2igkszz7b9n515cr99m5pjh4r2qfwgiri6ysa"))))
501 (build-system asdf-build-system/sbcl)
502 (arguments
503 '(#:tests? #f ; spatial-trees.test requires spatial-trees.nns
504 #:asd-file "spatial-trees.asd"
505 #:test-asd-file "spatial-trees.test.asd"))
506 (native-inputs
507 `(("fiveam" ,sbcl-fiveam)))
508 (home-page "https://github.com/rpav/spatial-trees")
509 (synopsis "Dynamic index data structures for spatially-extended data")
510 (description
511 "Spatial-trees is a set of dynamic index data structures for
512 spatially-extended data.")
513 (license license:bsd-3))))
514
515 (define-public ecl-spatial-trees
516 (sbcl-package->ecl-package sbcl-spatial-trees))
517
518 (define-public cl-spatial-trees
519 (sbcl-package->cl-source-package sbcl-spatial-trees))
520
521 (define-public sbcl-flexichain
522 ;; There are no releases.
523 (let ((commit "13d2a6c505ed0abfcd4c4ec7d7145059b06855d6")
524 (revision "1"))
525 (package
526 (name "sbcl-flexichain")
527 (version "1.5.1")
528 (source
529 (origin
530 (method git-fetch)
531 (uri (git-reference
532 (url "https://github.com/robert-strandh/Flexichain.git")
533 (commit commit)))
534 (file-name (git-file-name name version))
535 (sha256
536 (base32
537 "0pfyvhsfbjd2sjb30grfs52r51a428xglv7bwydvpg2lc117qimg"))))
538 (build-system asdf-build-system/sbcl)
539 (home-page "https://github.com/robert-strandh/Flexichain.git")
540 (synopsis "Dynamically add elements to or remove them from sequences")
541 (description
542 "This package provides an implementation of the flexichain protocol,
543 allowing client code to dynamically add elements to, and delete elements from
544 a sequence (or chain) of such elements.")
545 (license license:lgpl2.1+))))
546
547 (define-public ecl-flexichain
548 (sbcl-package->ecl-package sbcl-flexichain))
549
550 (define-public cl-flexichain
551 (sbcl-package->cl-source-package sbcl-flexichain))
552
553 (define-public sbcl-cl-pdf
554 ;; There are no releases
555 (let ((commit "752e337e6d6fc206f09d091a982e7f8e5c404e4e")
556 (revision "1"))
557 (package
558 (name "sbcl-cl-pdf")
559 (version (git-version "0" revision commit))
560 (source
561 (origin
562 (method git-fetch)
563 (uri (git-reference
564 (url "https://github.com/mbattyani/cl-pdf.git")
565 (commit commit)))
566 (file-name (git-file-name name version))
567 (sha256
568 (base32
569 "1cg3k3m3r11ipb8j008y8ipynj97l3xjlpi2knqc9ndmx4r3kb1r"))))
570 (build-system asdf-build-system/sbcl)
571 (inputs
572 `(("iterate" ,sbcl-iterate)
573 ("zpb-ttf" ,sbcl-zpb-ttf)))
574 (home-page "https://github.com/mbattyani/cl-pdf")
575 (synopsis "Common Lisp library for generating PDF files")
576 (description
577 "CL-PDF is a cross-platform Common Lisp library for generating PDF
578 files.")
579 (license license:bsd-2))))
580
581 (define-public ecl-cl-pdf
582 (sbcl-package->ecl-package sbcl-cl-pdf))
583
584 (define-public cl-pdf
585 (sbcl-package->cl-source-package sbcl-cl-pdf))
586
587 (define-public sbcl-clx
588 (package
589 (name "sbcl-clx")
590 (version "0.7.5")
591 (source
592 (origin
593 (method git-fetch)
594 (uri
595 (git-reference
596 (url "https://github.com/sharplispers/clx.git")
597 (commit version)))
598 (sha256
599 (base32
600 "1vi67z9hpj5rr4xcmfbfwzmlcc0ah7hzhrmfid6lqdkva238v2wf"))
601 (file-name (string-append "clx-" version))))
602 (build-system asdf-build-system/sbcl)
603 (native-inputs
604 `(("fiasco" ,sbcl-fiasco)))
605 (home-page "http://www.cliki.net/portable-clx")
606 (synopsis "X11 client library for Common Lisp")
607 (description "CLX is an X11 client library for Common Lisp. The code was
608 originally taken from a CMUCL distribution, was modified somewhat in order to
609 make it compile and run under SBCL, then a selection of patches were added
610 from other CLXes around the net.")
611 (license license:x11)))
612
613 (define-public cl-clx
614 (sbcl-package->cl-source-package sbcl-clx))
615
616 (define-public ecl-clx
617 (sbcl-package->ecl-package sbcl-clx))
618
619 (define-public sbcl-cl-ppcre-unicode
620 (package (inherit sbcl-cl-ppcre)
621 (name "sbcl-cl-ppcre-unicode")
622 (arguments
623 `(#:tests? #f ; tests fail with "Component :CL-PPCRE-TEST not found"
624 #:asd-file "cl-ppcre-unicode.asd"))
625 (inputs
626 `(("sbcl-cl-ppcre" ,sbcl-cl-ppcre)
627 ("sbcl-cl-unicode" ,sbcl-cl-unicode)))))
628
629 (define-public ecl-cl-ppcre-unicode
630 (sbcl-package->ecl-package sbcl-cl-ppcre-unicode))
631
632 ;; The slynk that users expect to install includes all of slynk's contrib
633 ;; modules. Therefore, we build the base module and all contribs first; then
634 ;; we expose the union of these as `sbcl-slynk'. The following variable
635 ;; describes the base module.
636 (define sbcl-slynk-boot0
637 (let ((revision "2")
638 (commit "cbf84c36c4eca8b032e3fd16177a7bc02df3ec4c"))
639 (package
640 (name "sbcl-slynk-boot0")
641 (version (string-append "1.0.0-beta-" revision "." (string-take commit 7)))
642 (source
643 (origin
644 (method git-fetch)
645 (uri
646 (git-reference
647 (url "https://github.com/joaotavora/sly.git")
648 (commit commit)))
649 (sha256
650 (base32 "13dyhsravn591p7g6is01mp2ynzjnnj7pwgi57r6xqmd4611y9vh"))
651 (file-name (string-append "slynk-" version "-checkout"))
652 (modules '((guix build utils)
653 (ice-9 ftw)))
654 (snippet
655 '(begin
656 ;; Move the contribs into the main source directory for easier
657 ;; access
658 (substitute* "slynk/slynk.asd"
659 (("\\.\\./contrib")
660 "contrib")
661 (("\\(defsystem :slynk/util")
662 "(defsystem :slynk/util :depends-on (:slynk)")
663 ((":depends-on \\(:slynk :slynk/util\\)")
664 ":depends-on (:slynk :slynk-util)"))
665 (substitute* "contrib/slynk-trace-dialog.lisp"
666 (("\\(slynk::reset-inspector\\)") ; Causes problems on load
667 "nil"))
668 (substitute* "contrib/slynk-profiler.lisp"
669 (("slynk:to-line")
670 "slynk-pprint-to-line"))
671 (substitute* "contrib/slynk-fancy-inspector.lisp"
672 (("slynk/util") "slynk-util")
673 ((":compile-toplevel :load-toplevel") ""))
674 (rename-file "contrib" "slynk/contrib")
675 ;; Move slynk's contents into the base directory for easier
676 ;; access
677 (for-each (lambda (file)
678 (unless (string-prefix? "." file)
679 (rename-file (string-append "slynk/" file)
680 (string-append "./" (basename file)))))
681 (scandir "slynk"))
682 #t))))
683 (build-system asdf-build-system/sbcl)
684 (arguments
685 `(#:tests? #f ; No test suite
686 #:asd-system-name "slynk"))
687 (synopsis "Common Lisp IDE for Emacs")
688 (description "SLY is a fork of SLIME, an IDE backend for Common Lisp.
689 It also features a completely redesigned REPL based on Emacs's own
690 full-featured comint.el, live code annotations, and a consistent interactive
691 button interface. Everything can be copied to the REPL. One can create
692 multiple inspectors with independent history.")
693 (home-page "https://github.com/joaotavora/sly")
694 (license license:public-domain)
695 (properties `((cl-source-variant . ,(delay cl-slynk)))))))
696
697 (define-public cl-slynk
698 (package
699 (inherit (sbcl-package->cl-source-package sbcl-slynk-boot0))
700 (name "cl-slynk")))
701
702 (define ecl-slynk-boot0
703 (sbcl-package->ecl-package sbcl-slynk-boot0))
704
705 (define sbcl-slynk-arglists
706 (package
707 (inherit sbcl-slynk-boot0)
708 (name "sbcl-slynk-arglists")
709 (inputs `(("slynk" ,sbcl-slynk-boot0)))
710 (arguments
711 (substitute-keyword-arguments (package-arguments sbcl-slynk-boot0)
712 ((#:asd-file _ "") "slynk.asd")
713 ((#:asd-system-name _ #f) "slynk/arglists")))))
714
715 (define ecl-slynk-arglists
716 (sbcl-package->ecl-package sbcl-slynk-arglists))
717
718 (define sbcl-slynk-util
719 (package
720 (inherit sbcl-slynk-boot0)
721 (name "sbcl-slynk-util")
722 (inputs `(("slynk" ,sbcl-slynk-boot0)))
723 (arguments
724 (substitute-keyword-arguments (package-arguments sbcl-slynk-boot0)
725 ((#:asd-file _ "") "slynk.asd")
726 ((#:asd-system-name _ #f) "slynk/util")))))
727
728 (define ecl-slynk-util
729 (sbcl-package->ecl-package sbcl-slynk-util))
730
731 (define sbcl-slynk-fancy-inspector
732 (package
733 (inherit sbcl-slynk-arglists)
734 (name "sbcl-slynk-fancy-inspector")
735 (inputs `(("slynk-util" ,sbcl-slynk-util)
736 ,@(package-inputs sbcl-slynk-arglists)))
737 (arguments
738 (substitute-keyword-arguments (package-arguments sbcl-slynk-arglists)
739 ((#:asd-system-name _ #f) "slynk/fancy-inspector")))))
740
741 (define ecl-slynk-fancy-inspector
742 (sbcl-package->ecl-package sbcl-slynk-fancy-inspector))
743
744 (define sbcl-slynk-package-fu
745 (package
746 (inherit sbcl-slynk-arglists)
747 (name "sbcl-slynk-package-fu")
748 (arguments
749 (substitute-keyword-arguments (package-arguments sbcl-slynk-arglists)
750 ((#:asd-system-name _ #f) "slynk/package-fu")))))
751
752 (define ecl-slynk-package-fu
753 (sbcl-package->ecl-package sbcl-slynk-package-fu))
754
755 (define sbcl-slynk-mrepl
756 (package
757 (inherit sbcl-slynk-fancy-inspector)
758 (name "sbcl-slynk-mrepl")
759 (arguments
760 (substitute-keyword-arguments (package-arguments sbcl-slynk-arglists)
761 ((#:asd-system-name _ #f) "slynk/mrepl")))))
762
763 (define ecl-slynk-mrepl
764 (sbcl-package->ecl-package sbcl-slynk-mrepl))
765
766 (define sbcl-slynk-trace-dialog
767 (package
768 (inherit sbcl-slynk-arglists)
769 (name "sbcl-slynk-trace-dialog")
770 (arguments
771 (substitute-keyword-arguments (package-arguments sbcl-slynk-arglists)
772 ((#:asd-system-name _ #f) "slynk/trace-dialog")))))
773
774 (define ecl-slynk-trace-dialog
775 (sbcl-package->ecl-package sbcl-slynk-trace-dialog))
776
777 (define sbcl-slynk-profiler
778 (package
779 (inherit sbcl-slynk-arglists)
780 (name "sbcl-slynk-profiler")
781 (arguments
782 (substitute-keyword-arguments (package-arguments sbcl-slynk-arglists)
783 ((#:asd-system-name _ #f) "slynk/profiler")))))
784
785 (define ecl-slynk-profiler
786 (sbcl-package->ecl-package sbcl-slynk-profiler))
787
788 (define sbcl-slynk-stickers
789 (package
790 (inherit sbcl-slynk-arglists)
791 (name "sbcl-slynk-stickers")
792 (arguments
793 (substitute-keyword-arguments (package-arguments sbcl-slynk-arglists)
794 ((#:asd-system-name _ #f) "slynk/stickers")))))
795
796 (define ecl-slynk-stickers
797 (sbcl-package->ecl-package sbcl-slynk-stickers))
798
799 (define sbcl-slynk-indentation
800 (package
801 (inherit sbcl-slynk-arglists)
802 (name "sbcl-slynk-indentation")
803 (arguments
804 (substitute-keyword-arguments (package-arguments sbcl-slynk-arglists)
805 ((#:asd-system-name _ #f) "slynk/indentation")))))
806
807 (define ecl-slynk-indentation
808 (sbcl-package->ecl-package sbcl-slynk-indentation))
809
810 (define sbcl-slynk-retro
811 (package
812 (inherit sbcl-slynk-arglists)
813 (name "sbcl-slynk-retro")
814 (arguments
815 (substitute-keyword-arguments (package-arguments sbcl-slynk-arglists)
816 ((#:asd-system-name _ #f) "slynk/retro")))))
817
818 (define ecl-slynk-retro
819 (sbcl-package->ecl-package sbcl-slynk-retro))
820
821 (define slynk-systems
822 '("slynk"
823 "slynk-util"
824 "slynk-arglists"
825 "slynk-fancy-inspector"
826 "slynk-package-fu"
827 "slynk-mrepl"
828 "slynk-profiler"
829 "slynk-trace-dialog"
830 "slynk-stickers"
831 "slynk-indentation"
832 "slynk-retro"))
833
834 (define-public sbcl-slynk
835 (package
836 (inherit sbcl-slynk-boot0)
837 (name "sbcl-slynk")
838 (inputs
839 `(("slynk" ,sbcl-slynk-boot0)
840 ("slynk-util" ,sbcl-slynk-util)
841 ("slynk-arglists" ,sbcl-slynk-arglists)
842 ("slynk-fancy-inspector" ,sbcl-slynk-fancy-inspector)
843 ("slynk-package-fu" ,sbcl-slynk-package-fu)
844 ("slynk-mrepl" ,sbcl-slynk-mrepl)
845 ("slynk-profiler" ,sbcl-slynk-profiler)
846 ("slynk-trace-dialog" ,sbcl-slynk-trace-dialog)
847 ("slynk-stickers" ,sbcl-slynk-stickers)
848 ("slynk-indentation" ,sbcl-slynk-indentation)
849 ("slynk-retro" ,sbcl-slynk-retro)))
850 (native-inputs `(("sbcl" ,sbcl)))
851 (build-system trivial-build-system)
852 (source #f)
853 (outputs '("out" "image"))
854 (arguments
855 `(#:modules ((guix build union)
856 (guix build utils)
857 (guix build lisp-utils))
858 #:builder
859 (begin
860 (use-modules (ice-9 match)
861 (srfi srfi-1)
862 (guix build union)
863 (guix build lisp-utils))
864
865 (union-build
866 (assoc-ref %outputs "out")
867 (filter-map
868 (match-lambda
869 ((name . path)
870 (if (string-prefix? "slynk" name) path #f)))
871 %build-inputs))
872
873 (prepend-to-source-registry
874 (string-append (assoc-ref %outputs "out") "//"))
875
876 (parameterize ((%lisp-type "sbcl")
877 (%lisp (string-append (assoc-ref %build-inputs "sbcl")
878 "/bin/sbcl")))
879 (build-image (string-append
880 (assoc-ref %outputs "image")
881 "/bin/slynk")
882 %outputs
883 #:dependencies ',slynk-systems))
884 #t)))))
885
886 (define-public ecl-slynk
887 (package
888 (inherit sbcl-slynk)
889 (name "ecl-slynk")
890 (inputs
891 (map (match-lambda
892 ((name pkg . _)
893 (list name (sbcl-package->ecl-package pkg))))
894 (package-inputs sbcl-slynk)))
895 (native-inputs '())
896 (outputs '("out"))
897 (arguments
898 '(#:modules ((guix build union))
899 #:builder
900 (begin
901 (use-modules (ice-9 match)
902 (guix build union))
903 (match %build-inputs
904 (((names . paths) ...)
905 (union-build (assoc-ref %outputs "out")
906 paths)
907 #t)))))))
908
909 (define-public sbcl-parse-js
910 (let ((commit "fbadc6029bec7039602abfc06c73bb52970998f6")
911 (revision "1"))
912 (package
913 (name "sbcl-parse-js")
914 (version (string-append "0.0.0-" revision "." (string-take commit 9)))
915 (source
916 (origin
917 (method git-fetch)
918 (uri (git-reference
919 (url "http://marijn.haverbeke.nl/git/parse-js")
920 (commit commit)))
921 (file-name (string-append name "-" commit "-checkout"))
922 (sha256
923 (base32
924 "1wddrnr5kiya5s3gp4cdq6crbfy9fqcz7fr44p81502sj3bvdv39"))))
925 (build-system asdf-build-system/sbcl)
926 (home-page "http://marijnhaverbeke.nl/parse-js/")
927 (synopsis "Parse JavaScript")
928 (description "Parse-js is a Common Lisp package for parsing
929 JavaScript (ECMAScript 3). It has basic support for ECMAScript 5.")
930 (license license:zlib))))
931
932 (define-public cl-parse-js
933 (sbcl-package->cl-source-package sbcl-parse-js))
934
935 (define-public sbcl-parse-number
936 (package
937 (name "sbcl-parse-number")
938 (version "1.7")
939 (source
940 (origin
941 (method git-fetch)
942 (uri (git-reference
943 (url "https://github.com/sharplispers/parse-number/")
944 (commit (string-append "v" version))))
945 (file-name (git-file-name name version))
946 (sha256
947 (base32
948 "0sk06ib1bhqv9y39vwnnw44vmbc4b0kvqm37xxmkxd4dwchq82d7"))))
949 (build-system asdf-build-system/sbcl)
950 (home-page "http://www.cliki.net/PARSE-NUMBER")
951 (synopsis "Parse numbers")
952 (description "@code{parse-number} is a library of functions for parsing
953 strings into one of the standard Common Lisp number types without using the
954 reader. @code{parse-number} accepts an arbitrary string and attempts to parse
955 the string into one of the standard Common Lisp number types, if possible, or
956 else @code{parse-number} signals an error of type @code{invalid-number}.")
957 (license license:bsd-3)))
958
959 (define-public cl-parse-number
960 (sbcl-package->cl-source-package sbcl-parse-number))
961
962 (define-public sbcl-iterate
963 (package
964 (name "sbcl-iterate")
965 ;; The latest official release (1.4.3) fails to build so we have to take
966 ;; the current darcs tarball from quicklisp.
967 (version "20160825")
968 (source
969 (origin
970 (method url-fetch)
971 (uri (string-append "http://beta.quicklisp.org/archive/iterate/"
972 "2016-08-25/iterate-"
973 version "-darcs.tgz"))
974 (sha256
975 (base32
976 "0kvz16gnxnkdz0fy1x8y5yr28nfm7i2qpvix7mgwccdpjmsb4pgm"))))
977 (build-system asdf-build-system/sbcl)
978 (native-inputs
979 `(("rt" ,sbcl-rt)))
980 (home-page "https://common-lisp.net/project/iterate/")
981 (synopsis "Iteration construct for Common Lisp")
982 (description "@code{iterate} is an iteration construct for Common Lisp.
983 It is similar to the @code{CL:LOOP} macro, with these distinguishing marks:
984
985 @itemize
986 @item it is extensible,
987 @item it helps editors like Emacs indent iterate forms by having a more
988 lisp-like syntax, and
989 @item it isn't part of the ANSI standard for Common Lisp.
990 @end itemize\n")
991 (license license:expat)))
992
993 (define-public cl-iterate
994 (sbcl-package->cl-source-package sbcl-iterate))
995
996 (define-public ecl-iterate
997 (sbcl-package->ecl-package sbcl-iterate))
998
999 (define-public sbcl-cl-uglify-js
1000 ;; There have been many bug fixes since the 2010 release.
1001 (let ((commit "429c5e1d844e2f96b44db8fccc92d6e8e28afdd5")
1002 (revision "1"))
1003 (package
1004 (name "sbcl-cl-uglify-js")
1005 (version (string-append "0.1-" revision "." (string-take commit 9)))
1006 (source
1007 (origin
1008 (method git-fetch)
1009 (uri (git-reference
1010 (url "https://github.com/mishoo/cl-uglify-js.git")
1011 (commit commit)))
1012 (file-name (git-file-name name version))
1013 (sha256
1014 (base32
1015 "0k39y3c93jgxpr7gwz7w0d8yknn1fdnxrjhd03057lvk5w8js27a"))))
1016 (build-system asdf-build-system/sbcl)
1017 (inputs
1018 `(("sbcl-parse-js" ,sbcl-parse-js)
1019 ("sbcl-cl-ppcre" ,sbcl-cl-ppcre)
1020 ("sbcl-cl-ppcre-unicode" ,sbcl-cl-ppcre-unicode)
1021 ("sbcl-parse-number" ,sbcl-parse-number)
1022 ("sbcl-iterate" ,sbcl-iterate)))
1023 (home-page "https://github.com/mishoo/cl-uglify-js")
1024 (synopsis "JavaScript compressor library for Common Lisp")
1025 (description "This is a Common Lisp version of UglifyJS, a JavaScript
1026 compressor. It works on data produced by @code{parse-js} to generate a
1027 @dfn{minified} version of the code. Currently it can:
1028
1029 @itemize
1030 @item reduce variable names (usually to single letters)
1031 @item join consecutive @code{var} statements
1032 @item resolve simple binary expressions
1033 @item group most consecutive statements using the @code{sequence} operator (comma)
1034 @item remove unnecessary blocks
1035 @item convert @code{IF} expressions in various ways that result in smaller code
1036 @item remove some unreachable code
1037 @end itemize\n")
1038 (license license:zlib))))
1039
1040 (define-public cl-uglify-js
1041 (sbcl-package->cl-source-package sbcl-cl-uglify-js))
1042
1043 (define-public uglify-js
1044 (package
1045 (inherit sbcl-cl-uglify-js)
1046 (name "uglify-js")
1047 (build-system trivial-build-system)
1048 (arguments
1049 `(#:modules ((guix build utils))
1050 #:builder
1051 (let* ((bin (string-append (assoc-ref %outputs "out") "/bin/"))
1052 (script (string-append bin "uglify-js")))
1053 (use-modules (guix build utils))
1054 (mkdir-p bin)
1055 (with-output-to-file script
1056 (lambda _
1057 (format #t "#!~a/bin/sbcl --script
1058 (require :asdf)
1059 (push (truename \"~a/lib/sbcl\") asdf:*central-registry*)"
1060 (assoc-ref %build-inputs "sbcl")
1061 (assoc-ref %build-inputs "sbcl-cl-uglify-js"))
1062 ;; FIXME: cannot use progn here because otherwise it fails to
1063 ;; find cl-uglify-js.
1064 (for-each
1065 write
1066 '(;; Quiet, please!
1067 (let ((*standard-output* (make-broadcast-stream))
1068 (*error-output* (make-broadcast-stream)))
1069 (asdf:load-system :cl-uglify-js))
1070 (let ((file (cadr *posix-argv*)))
1071 (if file
1072 (format t "~a"
1073 (cl-uglify-js:ast-gen-code
1074 (cl-uglify-js:ast-mangle
1075 (cl-uglify-js:ast-squeeze
1076 (with-open-file (in file)
1077 (parse-js:parse-js in))))
1078 :beautify nil))
1079 (progn
1080 (format *error-output*
1081 "Please provide a JavaScript file.~%")
1082 (sb-ext:exit :code 1))))))))
1083 (chmod script #o755)
1084 #t)))
1085 (inputs
1086 `(("sbcl" ,sbcl)
1087 ("sbcl-cl-uglify-js" ,sbcl-cl-uglify-js)))
1088 (synopsis "JavaScript compressor")))
1089
1090 (define-public sbcl-cl-strings
1091 (let ((revision "1")
1092 (commit "c5c5cbafbf3e6181d03c354d66e41a4f063f00ae"))
1093 (package
1094 (name "sbcl-cl-strings")
1095 (version (git-version "0.0.0" revision commit))
1096 (source
1097 (origin
1098 (method git-fetch)
1099 (uri (git-reference
1100 (url "https://github.com/diogoalexandrefranco/cl-strings")
1101 (commit commit)))
1102 (sha256
1103 (base32
1104 "00754mfaqallj480lwd346nkfb6ra8pa8xcxcylf4baqn604zlmv"))
1105 (file-name (string-append "cl-strings-" version "-checkout"))))
1106 (build-system asdf-build-system/sbcl)
1107 (synopsis "Portable, dependency-free set of utilities to manipulate strings in Common Lisp")
1108 (description
1109 "@command{cl-strings} is a small, portable, dependency-free set of
1110 utilities that make it even easier to manipulate text in Common Lisp. It has
1111 100% test coverage and works at least on sbcl, ecl, ccl, abcl and clisp.")
1112 (home-page "https://github.com/diogoalexandrefranco/cl-strings")
1113 (license license:expat))))
1114
1115 (define-public cl-strings
1116 (sbcl-package->cl-source-package sbcl-cl-strings))
1117
1118 (define-public ecl-cl-strings
1119 (sbcl-package->ecl-package sbcl-cl-strings))
1120
1121 (define-public sbcl-trivial-features
1122 (package
1123 (name "sbcl-trivial-features")
1124 (version "0.8")
1125 (source
1126 (origin
1127 (method git-fetch)
1128 (uri (git-reference
1129 (url "https://github.com/trivial-features/trivial-features.git")
1130 (commit (string-append "v" version))))
1131 (file-name (git-file-name "trivial-features" version))
1132 (sha256
1133 (base32 "0ccv7dqyrk55xga78i5vzlic7mdwp28in3g1a8fqhlk6626scsq9"))))
1134 (build-system asdf-build-system/sbcl)
1135 (arguments '(#:tests? #f))
1136 (home-page "http://cliki.net/trivial-features")
1137 (synopsis "Ensures consistency of @code{*FEATURES*} in Common Lisp")
1138 (description "Trivial-features ensures that @code{*FEATURES*} is
1139 consistent across multiple Common Lisp implementations.")
1140 (license license:expat)))
1141
1142 (define-public cl-trivial-features
1143 (sbcl-package->cl-source-package sbcl-trivial-features))
1144
1145 (define-public ecl-trivial-features
1146 (sbcl-package->ecl-package sbcl-trivial-features))
1147
1148 (define-public sbcl-hu.dwim.asdf
1149 (package
1150 (name "sbcl-hu.dwim.asdf")
1151 (version "20190521")
1152 (source
1153 (origin
1154 (method url-fetch)
1155 (uri (string-append "http://beta.quicklisp.org/archive/hu.dwim.asdf/"
1156 "2019-05-21/hu.dwim.asdf-" version "-darcs.tgz"))
1157 (sha256
1158 (base32
1159 "0rsbv71vyszy8w35yjwb5h6zcmknjq223hkzir79y72qdsc6sabn"))))
1160 (build-system asdf-build-system/sbcl)
1161 (home-page "https://hub.darcs.net/hu.dwim/hu.dwim.asdf")
1162 (synopsis "Extensions to ASDF")
1163 (description "Various ASDF extensions such as attached test and
1164 documentation system, explicit development support, etc.")
1165 (license license:public-domain)))
1166
1167 (define-public cl-hu.dwim.asdf
1168 (sbcl-package->cl-source-package sbcl-hu.dwim.asdf))
1169
1170 (define-public ecl-hu.dwim.asdf
1171 (sbcl-package->ecl-package sbcl-hu.dwim.asdf))
1172
1173 (define-public sbcl-hu.dwim.stefil
1174 (let ((commit "ab6d1aa8995878a1b66d745dfd0ba021090bbcf9"))
1175 (package
1176 (name "sbcl-hu.dwim.stefil")
1177 (version (git-version "0.0.0" "1" commit))
1178 (source
1179 (origin
1180 (method git-fetch)
1181 (uri
1182 (git-reference
1183 (url "https://gitlab.common-lisp.net/xcvb/hu.dwim.stefil.git")
1184 (commit commit)))
1185 (sha256
1186 (base32 "1d8yccw65zj3zh46cbi3x6nmn1dwdb76s9d0av035077mvyirqqp"))
1187 (file-name (git-file-name "hu.dwim.stefil" version))))
1188 (build-system asdf-build-system/sbcl)
1189 (native-inputs
1190 `(("asdf:cl-hu.dwim.asdf" ,sbcl-hu.dwim.asdf)))
1191 (inputs
1192 `(("sbcl-alexandria" ,sbcl-alexandria)))
1193 (home-page "https://hub.darcs.net/hu.dwim/hu.dwim.stefil")
1194 (synopsis "Simple test framework")
1195 (description "Stefil is a simple test framework for Common Lisp,
1196 with a focus on interactive development.")
1197 (license license:public-domain))))
1198
1199 (define-public cl-hu.dwim.stefil
1200 (sbcl-package->cl-source-package sbcl-hu.dwim.stefil))
1201
1202 (define-public ecl-hu.dwim.stefil
1203 (sbcl-package->ecl-package sbcl-hu.dwim.stefil))
1204
1205 (define-public sbcl-babel
1206 (package
1207 (name "sbcl-babel")
1208 (version "0.5.0")
1209 (source
1210 (origin
1211 (method git-fetch)
1212 (uri (git-reference
1213 (url "https://github.com/cl-babel/babel.git")
1214 (commit (string-append "v" version))))
1215 (file-name (git-file-name "babel" version))
1216 (sha256
1217 (base32 "139a8rn2gnhj082n8jg01gc8fyr63hkj57hgrnmb3d1r327yc77f"))))
1218 (build-system asdf-build-system/sbcl)
1219 (native-inputs
1220 `(("tests:cl-hu.dwim.stefil" ,sbcl-hu.dwim.stefil)))
1221 (inputs
1222 `(("sbcl-alexandria" ,sbcl-alexandria)
1223 ("sbcl-trivial-features" ,sbcl-trivial-features)))
1224 (home-page "https://common-lisp.net/project/babel/")
1225 (synopsis "Charset encoding and decoding library")
1226 (description "Babel is a charset encoding and decoding library, not unlike
1227 GNU libiconv, but completely written in Common Lisp.")
1228 (license license:expat)))
1229
1230 (define-public cl-babel
1231 (sbcl-package->cl-source-package sbcl-babel))
1232
1233 (define-public ecl-babel
1234 (sbcl-package->ecl-package sbcl-babel))
1235
1236 (define-public sbcl-cl-yacc
1237 (package
1238 (name "sbcl-cl-yacc")
1239 (version "0.3")
1240 (source
1241 (origin
1242 (method git-fetch)
1243 (uri (git-reference
1244 (url "https://github.com/jech/cl-yacc")
1245 (commit (string-append "cl-yacc-" version))))
1246 (sha256
1247 (base32
1248 "16946pzf8vvadnyfayvj8rbh4zjzw90h0azz2qk1mxrvhh5wklib"))
1249 (file-name (string-append "cl-yacc-" version "-checkout"))))
1250 (build-system asdf-build-system/sbcl)
1251 (arguments
1252 `(#:asd-file "yacc.asd"
1253 #:asd-system-name "yacc"))
1254 (synopsis "LALR(1) parser generator for Common Lisp, similar in spirit to Yacc")
1255 (description
1256 "CL-Yacc is a LALR(1) parser generator for Common Lisp, similar in spirit
1257 to AT&T Yacc, Berkeley Yacc, GNU Bison, Zebu, lalr.cl or lalr.scm.
1258
1259 CL-Yacc uses the algorithm due to Aho and Ullman, which is the one also used
1260 by AT&T Yacc, Berkeley Yacc and Zebu. It does not use the faster algorithm due
1261 to DeRemer and Pennello, which is used by Bison and lalr.scm (not lalr.cl).")
1262 (home-page "https://www.irif.fr/~jch//software/cl-yacc/")
1263 (license license:expat)))
1264
1265 (define-public cl-yacc
1266 (sbcl-package->cl-source-package sbcl-cl-yacc))
1267
1268 (define-public ecl-cl-yacc
1269 (sbcl-package->ecl-package sbcl-cl-yacc))
1270
1271 (define-public sbcl-jpl-util
1272 (let ((commit "0311ed374e19a49d43318064d729fe3abd9a3b62"))
1273 (package
1274 (name "sbcl-jpl-util")
1275 (version "20151005")
1276 (source
1277 (origin
1278 (method git-fetch)
1279 (uri (git-reference
1280 ;; Quicklisp uses this fork.
1281 (url "https://github.com/hawkir/cl-jpl-util")
1282 (commit commit)))
1283 (file-name
1284 (git-file-name "jpl-util" version))
1285 (sha256
1286 (base32
1287 "0nc0rk9n8grkg3045xsw34whmcmddn2sfrxki4268g7kpgz0d2yz"))))
1288 (build-system asdf-build-system/sbcl)
1289 (synopsis "Collection of Common Lisp utility functions and macros")
1290 (description
1291 "@command{cl-jpl-util} is a collection of Common Lisp utility functions
1292 and macros, primarily for software projects written in CL by the author.")
1293 (home-page "https://www.thoughtcrime.us/software/cl-jpl-util/")
1294 (license license:isc))))
1295
1296 (define-public cl-jpl-util
1297 (sbcl-package->cl-source-package sbcl-jpl-util))
1298
1299 (define-public ecl-jpl-util
1300 (sbcl-package->ecl-package sbcl-jpl-util))
1301
1302 (define-public sbcl-jpl-queues
1303 (package
1304 (name "sbcl-jpl-queues")
1305 (version "0.1")
1306 (source
1307 (origin
1308 (method url-fetch)
1309 (uri (string-append
1310 "http://www.thoughtcrime.us/software/jpl-queues/jpl-queues-"
1311 version
1312 ".tar.gz"))
1313 (sha256
1314 (base32
1315 "1wvvv7j117h9a42qaj1g4fh4mji28xqs7s60rn6d11gk9jl76h96"))))
1316 (build-system asdf-build-system/sbcl)
1317 (inputs
1318 `(("jpl-util" ,sbcl-jpl-util)
1319 ("bordeaux-threads" ,sbcl-bordeaux-threads)))
1320 (arguments
1321 ;; Tests seem to be broken.
1322 `(#:tests? #f))
1323 (synopsis "Common Lisp library implementing a few different kinds of queues")
1324 (description
1325 "A Common Lisp library implementing a few different kinds of queues:
1326
1327 @itemize
1328 @item Bounded and unbounded FIFO queues.
1329 @item Lossy bounded FIFO queues that drop elements when full.
1330 @item Unbounded random-order queues that use less memory than unbounded FIFO queues.
1331 @end itemize
1332
1333 Additionally, a synchronization wrapper is provided to make any queue
1334 conforming to the @command{jpl-queues} API thread-safe for lightweight
1335 multithreading applications. (See Calispel for a more sophisticated CL
1336 multithreaded message-passing library with timeouts and alternation among
1337 several blockable channels.)")
1338 (home-page "https://www.thoughtcrime.us/software/jpl-queues/")
1339 (license license:isc)))
1340
1341 (define-public cl-jpl-queues
1342 (sbcl-package->cl-source-package sbcl-jpl-queues))
1343
1344 (define-public ecl-jpl-queues
1345 (sbcl-package->ecl-package sbcl-jpl-queues))
1346
1347 (define-public sbcl-eos
1348 (let ((commit "b0faca83781ead9a588661e37bd47f90362ccd94"))
1349 (package
1350 (name "sbcl-eos")
1351 (version (git-version "0.0.0" "1" commit))
1352 (source
1353 (origin
1354 (method git-fetch)
1355 (uri (git-reference
1356 (url "https://github.com/adlai/Eos")
1357 (commit commit)))
1358 (sha256
1359 (base32
1360 "1bq8cfg087iyxmxi1mwgx5cfgy3b8ydrf81xljcis8qbgb2vszph"))
1361 (file-name (git-file-name "eos" version))))
1362 (build-system asdf-build-system/sbcl)
1363 (synopsis "Unit Testing for Common Lisp")
1364 (description
1365 "Eos was a unit testing library for Common Lisp.
1366 It began as a fork of FiveAM; however, FiveAM development has continued, while
1367 that of Eos has not. Thus, Eos is now deprecated in favor of FiveAM.")
1368 (home-page "https://github.com/adlai/Eos")
1369 (license license:expat))))
1370
1371 (define-public cl-eos
1372 (sbcl-package->cl-source-package sbcl-eos))
1373
1374 (define-public ecl-eos
1375 (sbcl-package->ecl-package sbcl-eos))
1376
1377 (define-public sbcl-esrap
1378 (let ((commit "133be8b05c2aae48696fe5b739eea2fa573fa48d"))
1379 (package
1380 (name "sbcl-esrap")
1381 (version (git-version "0.0.0" "1" commit))
1382 (source
1383 (origin
1384 (method git-fetch)
1385 (uri (git-reference
1386 (url "https://github.com/nikodemus/esrap")
1387 (commit commit)))
1388 (sha256
1389 (base32
1390 "02d5clihsdryhf7pix8c5di2571fdsffh75d40fkzhws90r5mksl"))
1391 (file-name (git-file-name "esrap" version))))
1392 (build-system asdf-build-system/sbcl)
1393 (native-inputs
1394 `(("eos" ,sbcl-eos))) ;For testing only.
1395 (inputs
1396 `(("alexandria" ,sbcl-alexandria)))
1397 (synopsis "Common Lisp packrat parser")
1398 (description
1399 "A packrat parser for Common Lisp.
1400 In addition to regular Packrat / Parsing Grammar / TDPL features ESRAP supports:
1401
1402 @itemize
1403 @item dynamic redefinition of nonterminals
1404 @item inline grammars
1405 @item semantic predicates
1406 @item introspective facilities (describing grammars, tracing, setting breaks)
1407 @end itemize\n")
1408 (home-page "https://nikodemus.github.io/esrap/")
1409 (license license:expat))))
1410
1411 (define-public cl-esrap
1412 (sbcl-package->cl-source-package sbcl-esrap))
1413
1414 (define-public ecl-esrap
1415 (sbcl-package->ecl-package sbcl-esrap))
1416
1417 (define-public sbcl-split-sequence
1418 (package
1419 (name "sbcl-split-sequence")
1420 (version "2.0.0")
1421 (source
1422 (origin
1423 (method git-fetch)
1424 (uri (git-reference
1425 (url "https://github.com/sharplispers/split-sequence")
1426 (commit (string-append "v" version))))
1427 (sha256
1428 (base32
1429 "0jcpnx21hkfwqj5fvp7kc6pn1qcz9hk7g2s5x8h0349x1j2irln0"))
1430 (file-name (git-file-name "split-sequence" version))))
1431 (build-system asdf-build-system/sbcl)
1432 (native-inputs
1433 `(("fiveam" ,sbcl-fiveam)))
1434 (synopsis "Member of the Common Lisp Utilities family of programs")
1435 (description
1436 "Splits sequence into a list of subsequences delimited by objects
1437 satisfying the test.")
1438 (home-page "https://cliki.net/split-sequence")
1439 (license license:expat)))
1440
1441 (define-public cl-split-sequence
1442 (sbcl-package->cl-source-package sbcl-split-sequence))
1443
1444 (define-public ecl-split-sequence
1445 (sbcl-package->ecl-package sbcl-split-sequence))
1446
1447 (define-public sbcl-html-encode
1448 (package
1449 (name "sbcl-html-encode")
1450 (version "1.2")
1451 (source
1452 (origin
1453 (method url-fetch)
1454 (uri (string-append
1455 "http://beta.quicklisp.org/archive/html-encode/2010-10-06/html-encode-"
1456 version ".tgz"))
1457 (sha256
1458 (base32
1459 "06mf8wn95yf5swhmzk4vp0xr4ylfl33dgfknkabbkd8n6jns8gcf"))
1460 (file-name (string-append "colorize" version "-checkout"))))
1461 (build-system asdf-build-system/sbcl)
1462 (synopsis "Common Lisp library for encoding text in various web-savvy encodings")
1463 (description
1464 "A library for encoding text in various web-savvy encodings.")
1465 (home-page "http://quickdocs.org/html-encode/")
1466 (license license:expat)))
1467
1468 (define-public cl-html-encode
1469 (sbcl-package->cl-source-package sbcl-html-encode))
1470
1471 (define-public ecl-html-encode
1472 (sbcl-package->ecl-package sbcl-html-encode))
1473
1474 (define-public sbcl-colorize
1475 (let ((commit "ea676b584e0899cec82f21a9e6871172fe3c0eb5"))
1476 (package
1477 (name "sbcl-colorize")
1478 (version (git-version "0.0.0" "1" commit))
1479 (source
1480 (origin
1481 (method git-fetch)
1482 (uri (git-reference
1483 (url "https://github.com/kingcons/colorize")
1484 (commit commit)))
1485 (sha256
1486 (base32
1487 "1pdg4kiaczmr3ivffhirp7m3lbr1q27rn7dhaay0vwghmi31zcw9"))
1488 (file-name (git-file-name "colorize" version))))
1489 (build-system asdf-build-system/sbcl)
1490 (inputs
1491 `(("alexandria" ,sbcl-alexandria)
1492 ("split-sequence" ,sbcl-split-sequence)
1493 ("html-encode" ,sbcl-html-encode)))
1494 (synopsis "Common Lisp for syntax highlighting")
1495 (description
1496 "@command{colorize} is a Lisp library for syntax highlighting
1497 supporting the following languages: Common Lisp, Emacs Lisp, Scheme, Clojure,
1498 C, C++, Java, Python, Erlang, Haskell, Objective-C, Diff, Webkit.")
1499 (home-page "https://github.com/kingcons/colorize")
1500 ;; TODO: Missing license?
1501 (license license:expat))))
1502
1503 (define-public cl-colorize
1504 (sbcl-package->cl-source-package sbcl-colorize))
1505
1506 (define-public ecl-colorize
1507 (sbcl-package->ecl-package sbcl-colorize))
1508
1509 (define-public sbcl-3bmd
1510 (let ((commit "192ea13435b605a96ef607df51317056914cabbd"))
1511 (package
1512 (name "sbcl-3bmd")
1513 (version (git-version "0.0.0" "1" commit))
1514 (source
1515 (origin
1516 (method git-fetch)
1517 (uri (git-reference
1518 (url "https://github.com/3b/3bmd")
1519 (commit commit)))
1520 (sha256
1521 (base32
1522 "1rgv3gi7wf963ikmmpk132wgn0icddf226gq3bmcnk1fr3v9gf2f"))
1523 (file-name (git-file-name "3bmd" version))))
1524 (build-system asdf-build-system/sbcl)
1525 (arguments
1526 ;; FIXME: We need to specify the name because the build-system thinks
1527 ;; "3" is a version marker.
1528 `(#:asd-system-name "3bmd"))
1529 (inputs
1530 `(("esrap" ,sbcl-esrap)
1531 ("split-sequence" ,sbcl-split-sequence)))
1532 (synopsis "Markdown processor in Command Lisp using esrap parser")
1533 (description
1534 "Common Lisp Markdown -> HTML converter, using @command{esrap} for
1535 parsing, and grammar based on @command{peg-markdown}.")
1536 (home-page "https://github.com/3b/3bmd")
1537 (license license:expat))))
1538
1539 (define-public cl-3bmd
1540 (sbcl-package->cl-source-package sbcl-3bmd))
1541
1542 (define-public ecl-3bmd
1543 (sbcl-package->ecl-package sbcl-3bmd))
1544
1545 (define-public sbcl-3bmd-ext-code-blocks
1546 (let ((commit "192ea13435b605a96ef607df51317056914cabbd"))
1547 (package
1548 (inherit sbcl-3bmd)
1549 (name "sbcl-3bmd-ext-code-blocks")
1550 (arguments
1551 `(#:asd-system-name "3bmd-ext-code-blocks"
1552 #:asd-file "3bmd-ext-code-blocks.asd"))
1553 (inputs
1554 `(("3bmd" ,sbcl-3bmd)
1555 ("colorize" ,sbcl-colorize)))
1556 (synopsis "3bmd extension which adds support for GitHub-style fenced
1557 code blocks")
1558 (description
1559 "3bmd extension which adds support for GitHub-style fenced code blocks,
1560 with @command{colorize} support."))))
1561
1562 (define-public cl-3bmd-ext-code-blocks
1563 (sbcl-package->cl-source-package sbcl-3bmd-ext-code-blocks))
1564
1565 (define-public ecl-3bmd-ext-code-blocks
1566 (sbcl-package->ecl-package sbcl-3bmd-ext-code-blocks))
1567
1568 (define-public sbcl-cl-fad
1569 (package
1570 (name "sbcl-cl-fad")
1571 (version "0.7.6")
1572 (source
1573 (origin
1574 (method git-fetch)
1575 (uri (git-reference
1576 (url "https://github.com/edicl/cl-fad/")
1577 (commit (string-append "v" version))))
1578 (sha256
1579 (base32
1580 "1gc8i82v6gks7g0lnm54r4prk2mklidv2flm5fvbr0a7rsys0vpa"))
1581 (file-name (string-append "cl-fad" version "-checkout"))))
1582 (build-system asdf-build-system/sbcl)
1583 (inputs
1584 `(("bordeaux-threads" ,sbcl-bordeaux-threads)))
1585 (synopsis "Portable pathname library for Common Lisp")
1586 (description
1587 "CL-FAD (for \"Files and Directories\") is a thin layer atop Common
1588 Lisp's standard pathname functions. It is intended to provide some
1589 unification between current CL implementations on Windows, OS X, Linux, and
1590 Unix. Most of the code was written by Peter Seibel for his book Practical
1591 Common Lisp.")
1592 (home-page "https://edicl.github.io/cl-fad/")
1593 (license license:bsd-2)))
1594
1595 (define-public cl-fad
1596 (sbcl-package->cl-source-package sbcl-cl-fad))
1597
1598 (define-public ecl-cl-fad
1599 (sbcl-package->ecl-package sbcl-cl-fad))
1600
1601 (define-public sbcl-rt
1602 (package
1603 (name "sbcl-rt")
1604 (version "1990.12.19")
1605 (source
1606 (origin
1607 (method url-fetch)
1608 (uri (string-append "http://beta.quicklisp.org/archive/rt/2010-10-06/rt-"
1609 "20101006-git" ".tgz"))
1610 (sha256
1611 (base32
1612 "1jncar0xwkqk8yrc2dln389ivvgzs7ijdhhs3zpfyi5d21f0qa1v"))))
1613 (build-system asdf-build-system/sbcl)
1614 (synopsis "MIT Regression Tester")
1615 (description
1616 "RT provides a framework for writing regression test suites.")
1617 (home-page "https://github.com/sharplispers/nibbles")
1618 (license license:unlicense)))
1619
1620 (define-public cl-rt
1621 (sbcl-package->cl-source-package sbcl-rt))
1622
1623 (define-public ecl-rt
1624 (sbcl-package->ecl-package sbcl-rt))
1625
1626 (define-public sbcl-nibbles
1627 (package
1628 (name "sbcl-nibbles")
1629 (version "0.14")
1630 (source
1631 (origin
1632 (method git-fetch)
1633 (uri (git-reference
1634 (url "https://github.com/sharplispers/nibbles/")
1635 (commit (string-append "v" version))))
1636 (sha256
1637 (base32
1638 "1v7qfgpvdr6nz7v63dj69d26dis0kff3rd8xamr1llfdvza2pm8f"))
1639 (file-name (git-file-name "nibbles" version))))
1640 (build-system asdf-build-system/sbcl)
1641 (native-inputs
1642 ;; Tests only.
1643 `(("rt" ,sbcl-rt)))
1644 (synopsis "Common Lisp library for accessing octet-addressed blocks of data")
1645 (description
1646 "When dealing with network protocols and file formats, it's common to
1647 have to read or write 16-, 32-, or 64-bit datatypes in signed or unsigned
1648 flavors. Common Lisp sort of supports this by specifying :element-type for
1649 streams, but that facility is underspecified and there's nothing similar for
1650 read/write from octet vectors. What most people wind up doing is rolling their
1651 own small facility for their particular needs and calling it a day.
1652
1653 This library attempts to be comprehensive and centralize such
1654 facilities. Functions to read 16-, 32-, and 64-bit quantities from octet
1655 vectors in signed or unsigned flavors are provided; these functions are also
1656 SETFable. Since it's sometimes desirable to read/write directly from streams,
1657 functions for doing so are also provided. On some implementations,
1658 reading/writing IEEE singles/doubles (i.e. single-float and double-float) will
1659 also be supported.")
1660 (home-page "https://github.com/sharplispers/nibbles")
1661 (license license:bsd-3)))
1662
1663 (define-public cl-nibbles
1664 (sbcl-package->cl-source-package sbcl-nibbles))
1665
1666 (define-public ecl-nibbles
1667 (sbcl-package->ecl-package sbcl-nibbles))
1668
1669 (define-public sbcl-ironclad
1670 (package
1671 (name "sbcl-ironclad")
1672 (version "0.48")
1673 (source
1674 (origin
1675 (method git-fetch)
1676 (uri (git-reference
1677 (url "https://github.com/sharplispers/ironclad/")
1678 (commit (string-append "v" version))))
1679 (sha256
1680 (base32
1681 "1wzczpgvgjc5h8ghz75kxi7iykmqxqchdhgdhkif9j99kyqvbyam"))
1682 (file-name (git-file-name name version))))
1683 (build-system asdf-build-system/sbcl)
1684 (native-inputs
1685 ;; Tests only.
1686 `(("rt" ,sbcl-rt)))
1687 (inputs
1688 `(("bordeaux-threads" ,sbcl-bordeaux-threads)
1689 ("flexi-streams" ,sbcl-flexi-streams)))
1690 (synopsis "Cryptographic toolkit written in Common Lisp")
1691 (description
1692 "Ironclad is a cryptography library written entirely in Common Lisp.
1693 It includes support for several popular ciphers, digests, MACs and public key
1694 cryptography algorithms. For several implementations that support Gray
1695 streams, support is included for convenient stream wrappers.")
1696 (home-page "https://github.com/sharplispers/ironclad")
1697 (license license:bsd-3)))
1698
1699 (define-public cl-ironclad
1700 (sbcl-package->cl-source-package sbcl-ironclad))
1701
1702 (define-public ecl-ironclad
1703 (sbcl-package->ecl-package sbcl-ironclad))
1704
1705 (define-public sbcl-named-readtables
1706 (let ((commit "4dfb89fa1af6b305b6492b8af042f5190c11e9fc")
1707 (revision "1"))
1708 (package
1709 (name "sbcl-named-readtables")
1710 (version (string-append "0.9-" revision "." (string-take commit 7)))
1711 (source
1712 (origin
1713 (method git-fetch)
1714 (uri (git-reference
1715 (url "https://github.com/melisgl/named-readtables.git")
1716 (commit commit)))
1717 (sha256
1718 (base32 "083kgh5462iqbb4px6kq8s7sggvpvkm36hx4qi9rnaw53b6ilqkk"))
1719 (file-name (git-file-name "named-readtables" version))))
1720 (build-system asdf-build-system/sbcl)
1721 (arguments
1722 ;; Tests seem to be broken.
1723 `(#:tests? #f))
1724 (home-page "https://github.com/melisgl/named-readtables/")
1725 (synopsis "Library that creates a namespace for named readtables")
1726 (description "Named readtables is a library that creates a namespace for
1727 named readtables, which is akin to package namespacing in Common Lisp.")
1728 (license license:bsd-3))))
1729
1730 (define-public cl-named-readtables
1731 (sbcl-package->cl-source-package sbcl-named-readtables))
1732
1733 (define-public ecl-named-readtables
1734 (sbcl-package->ecl-package sbcl-named-readtables))
1735
1736 (define-public sbcl-pythonic-string-reader
1737 (let ((commit "47a70ba1e32362e03dad6ef8e6f36180b560f86a"))
1738 (package
1739 (name "sbcl-pythonic-string-reader")
1740 (version (git-version "0.0.0" "1" commit))
1741 (source
1742 (origin
1743 (method git-fetch)
1744 (uri (git-reference
1745 (url "https://github.com/smithzvk/pythonic-string-reader/")
1746 (commit commit)))
1747 (sha256
1748 (base32 "1b5iryqw8xsh36swckmz8rrngmc39k92si33fgy5pml3n9l5rq3j"))
1749 (file-name (git-file-name "pythonic-string-reader" version))))
1750 (build-system asdf-build-system/sbcl)
1751 (inputs
1752 `(("named-readtables" ,sbcl-named-readtables)))
1753 (home-page "https://github.com/smithzvk/pythonic-string-reader")
1754 (synopsis "Read table modification inspired by Python's three quote strings")
1755 (description "This piece of code sets up some reader macros that make it
1756 simpler to input string literals which contain backslashes and double quotes
1757 This is very useful for writing complicated docstrings and, as it turns out,
1758 writing code that contains string literals that contain code themselves.")
1759 (license license:bsd-3))))
1760
1761 (define-public cl-pythonic-string-reader
1762 (sbcl-package->cl-source-package sbcl-pythonic-string-reader))
1763
1764 (define-public ecl-pythonic-string-reader
1765 (sbcl-package->ecl-package sbcl-pythonic-string-reader))
1766
1767 ;; SLIME does not have a ASDF system definition to build all of Swank. As a
1768 ;; result, the asdf-build-system/sbcl will produce an almost empty package.
1769 ;; Some work was done to fix this at
1770 ;; https://github.com/sionescu/slime/tree/swank-asdf but it was never merged
1771 ;; and is now lagging behind. Building SBCL fasls might not be worth the
1772 ;; hassle, so let's just ship the source then.
1773 (define-public cl-slime-swank
1774 (package
1775 (name "cl-slime-swank")
1776 (version "2.24")
1777 (source
1778 (origin
1779 (file-name (string-append name "-" version ".tar.gz"))
1780 (method git-fetch)
1781 (uri (git-reference
1782 (url "https://github.com/slime/slime/")
1783 (commit (string-append "v" version))))
1784 (sha256
1785 (base32
1786 "0js24x42m7b5iymb4rxz501dff19vav5pywnzv50b673rbkaaqvh"))))
1787 (build-system asdf-build-system/source)
1788 (home-page "https://github.com/slime/slime")
1789 (synopsis "Common Lisp Swank server")
1790 (description
1791 "This is only useful if you want to start a Swank server in a Lisp
1792 processes that doesn't run under Emacs. Lisp processes created by
1793 @command{M-x slime} automatically start the server.")
1794 (license (list license:gpl2+ license:public-domain))))
1795
1796 (define-public sbcl-slime-swank
1797 (deprecated-package "sbcl-slime-swank" cl-slime-swank))
1798
1799 (define-public sbcl-mgl-pax
1800 (let ((commit "818448418d6b9de74620f606f5b23033c6082769"))
1801 (package
1802 (name "sbcl-mgl-pax")
1803 (version (git-version "0.0.0" "1" commit))
1804 (source
1805 (origin
1806 (method git-fetch)
1807 (uri (git-reference
1808 (url "https://github.com/melisgl/mgl-pax")
1809 (commit commit)))
1810 (sha256
1811 (base32
1812 "1p97zfkh130bdxqqxwaw2j9psv58751wakx7czbfpq410lg7dd7i"))
1813 (file-name (git-file-name "mgl-pax" version))))
1814 (build-system asdf-build-system/sbcl)
1815 (inputs
1816 `(("3bmd" ,sbcl-3bmd)
1817 ("3bmd-ext-code-blocks" ,sbcl-3bmd-ext-code-blocks)
1818 ("babel" ,sbcl-babel)
1819 ("cl-fad" ,sbcl-cl-fad)
1820 ("ironclad" ,sbcl-ironclad)
1821 ("named-readtables" ,sbcl-named-readtables)
1822 ("pythonic-string-reader" ,sbcl-pythonic-string-reader)))
1823 (propagated-inputs
1824 ;; Packages having mgl-pax as input complain that it can't find
1825 ;; swank if we put it in inputs, so let's put it in propageted-inputs.
1826 `(("swank" ,cl-slime-swank)))
1827 (synopsis "Exploratory programming environment and documentation generator")
1828 (description
1829 "PAX provides an extremely poor man's Explorable Programming
1830 environment. Narrative primarily lives in so called sections that mix markdown
1831 docstrings with references to functions, variables, etc, all of which should
1832 probably have their own docstrings.
1833
1834 The primary focus is on making code easily explorable by using SLIME's
1835 @command{M-.} (@command{slime-edit-definition}). See how to enable some
1836 fanciness in Emacs Integration. Generating documentation from sections and all
1837 the referenced items in Markdown or HTML format is also implemented.
1838
1839 With the simplistic tools provided, one may accomplish similar effects as with
1840 Literate Programming, but documentation is generated from code, not vice versa
1841 and there is no support for chunking yet. Code is first, code must look
1842 pretty, documentation is code.")
1843 (home-page "http://quotenil.com/")
1844 (license license:expat))))
1845
1846 (define-public cl-mgl-pax
1847 (sbcl-package->cl-source-package sbcl-mgl-pax))
1848
1849 (define-public ecl-mgl-pax
1850 (sbcl-package->ecl-package sbcl-mgl-pax))
1851
1852 (define-public sbcl-lisp-unit
1853 (let ((commit "89653a232626b67400bf9a941f9b367da38d3815"))
1854 (package
1855 (name "sbcl-lisp-unit")
1856 (version (git-version "0.0.0" "1" commit))
1857 (source
1858 (origin
1859 (method git-fetch)
1860 (uri (git-reference
1861 (url "https://github.com/OdonataResearchLLC/lisp-unit")
1862 (commit commit)))
1863 (sha256
1864 (base32
1865 "0p6gdmgr7p383nvd66c9y9fp2bjk4jx1lpa5p09g43hr9y9pp9ry"))
1866 (file-name (git-file-name "lisp-unit" version))))
1867 (build-system asdf-build-system/sbcl)
1868 (synopsis "Common Lisp Test framework inspired by JUnit to be simple of use")
1869 (description
1870 "@command{lisp-unit} is a Common Lisp library that supports unit
1871 testing. It is an extension of the library written by Chris Riesbeck.")
1872 (home-page "https://github.com/OdonataResearchLLC/lisp-unit")
1873 (license license:expat))))
1874
1875 (define-public cl-lisp-unit
1876 (sbcl-package->cl-source-package sbcl-lisp-unit))
1877
1878 (define-public ecl-lisp-unit
1879 (sbcl-package->ecl-package sbcl-lisp-unit))
1880
1881 (define-public sbcl-anaphora
1882 (package
1883 (name "sbcl-anaphora")
1884 (version "0.9.6")
1885 (source
1886 (origin
1887 (method git-fetch)
1888 (uri (git-reference
1889 (url "https://github.com/tokenrove/anaphora")
1890 (commit version)))
1891 (sha256
1892 (base32
1893 "19wfrk3asimznkli0x2rfy637hwpdgqyvwj3vhq9x7vjvyf5vv6x"))
1894 (file-name (git-file-name "anaphora" version))))
1895 (build-system asdf-build-system/sbcl)
1896 (native-inputs
1897 `(("rt" ,sbcl-rt)))
1898 (synopsis "The anaphoric macro collection from Hell")
1899 (description
1900 "Anaphora is the anaphoric macro collection from Hell: it includes many
1901 new fiends in addition to old friends like @command{aif} and
1902 @command{awhen}.")
1903 (home-page "https://github.com/tokenrove/anaphora")
1904 (license license:public-domain)))
1905
1906 (define-public cl-anaphora
1907 (sbcl-package->cl-source-package sbcl-anaphora))
1908
1909 (define-public ecl-anaphora
1910 (sbcl-package->ecl-package sbcl-anaphora))
1911
1912 (define-public sbcl-lift
1913 (let ((commit "7d49a66c62759535624037826891152223d4206c"))
1914 (package
1915 (name "sbcl-lift")
1916 (version (git-version "1.7.1" "1" commit))
1917 (source
1918 (origin
1919 (method git-fetch)
1920 (uri (git-reference
1921 (url "https://github.com/gwkkwg/lift")
1922 (commit commit)))
1923 (sha256
1924 (base32
1925 "127v5avpz1i4m0lkaxqrq8hrl69rdazqaxf6s8awf0nd7wj2g4dp"))
1926 (file-name (git-file-name "lift" version))
1927 (modules '((guix build utils)))
1928 (snippet
1929 ;; Don't keep the bundled website
1930 `(begin
1931 (delete-file-recursively "website")
1932 #t))))
1933 (build-system asdf-build-system/sbcl)
1934 (arguments
1935 ;; The tests require a debugger, but we run with the debugger disabled.
1936 '(#:tests? #f))
1937 (synopsis "LIsp Framework for Testing")
1938 (description
1939 "The LIsp Framework for Testing (LIFT) is a unit and system test tool for LISP.
1940 Though inspired by SUnit and JUnit, it's built with Lisp in mind. In LIFT,
1941 testcases are organized into hierarchical testsuites each of which can have
1942 its own fixture. When run, a testcase can succeed, fail, or error. LIFT
1943 supports randomized testing, benchmarking, profiling, and reporting.")
1944 (home-page "https://github.com/gwkkwg/lift")
1945 (license license:expat))))
1946
1947 (define-public cl-lift
1948 (sbcl-package->cl-source-package sbcl-lift))
1949
1950 (define-public ecl-lift
1951 (sbcl-package->ecl-package sbcl-lift))
1952
1953 (define-public sbcl-let-plus
1954 (let ((commit "5f14af61d501ecead02ec6b5a5c810efc0c9fdbb"))
1955 (package
1956 (name "sbcl-let-plus")
1957 (version (git-version "0.0.0" "1" commit))
1958 (source
1959 (origin
1960 (method git-fetch)
1961 (uri (git-reference
1962 (url "https://github.com/sharplispers/let-plus")
1963 (commit commit)))
1964 (sha256
1965 (base32
1966 "0i050ca2iys9f5mb7dgqgqdxfnc3b0rnjdwv95sqd490vkiwrsaj"))
1967 (file-name (git-file-name "let-plus" version))))
1968 (build-system asdf-build-system/sbcl)
1969 (inputs
1970 `(("alexandria" ,sbcl-alexandria)
1971 ("anaphora" ,sbcl-anaphora)))
1972 (native-inputs
1973 `(("lift" ,sbcl-lift)))
1974 (synopsis "Destructuring extension of let*")
1975 (description
1976 "This library implements the let+ macro, which is a dectructuring
1977 extension of let*. It features:
1978
1979 @itemize
1980 @item Clean, consistent syntax and small implementation (less than 300 LOC,
1981 not counting tests)
1982 @item Placeholder macros allow editor hints and syntax highlighting
1983 @item @command{&ign} for ignored values (in forms where that makes sense)
1984 @item Very easy to extend
1985 @end itemize\n")
1986 (home-page "https://github.com/sharplispers/let-plus")
1987 (license license:boost1.0))))
1988
1989 (define-public cl-let-plus
1990 (sbcl-package->cl-source-package sbcl-let-plus))
1991
1992 (define-public ecl-let-plus
1993 (sbcl-package->ecl-package sbcl-let-plus))
1994
1995 (define-public sbcl-cl-colors
1996 (let ((commit "827410584553f5c717eec6182343b7605f707f75"))
1997 (package
1998 (name "sbcl-cl-colors")
1999 (version (git-version "0.0.0" "1" commit))
2000 (source
2001 (origin
2002 (method git-fetch)
2003 (uri (git-reference
2004 (url "https://github.com/tpapp/cl-colors")
2005 (commit commit)))
2006 (sha256
2007 (base32
2008 "0l446lday4hybsm9bq3jli97fvv8jb1d33abg79vbylpwjmf3y9a"))
2009 (file-name (git-file-name "cl-colors" version))))
2010 (build-system asdf-build-system/sbcl)
2011 (inputs
2012 `(("alexandria" ,sbcl-alexandria)
2013 ("let-plus" ,sbcl-let-plus)))
2014 (synopsis "Simple color library for Common Lisp")
2015 (description
2016 "This is a very simple color library for Common Lisp, providing
2017
2018 @itemize
2019 @item Types for representing colors in HSV and RGB spaces.
2020 @item Simple conversion functions between the above types (and also
2021 hexadecimal representation for RGB).
2022 @item Some predefined colors (currently X11 color names – of course the
2023 library does not depend on X11).Because color in your terminal is nice.
2024 @end itemize
2025
2026 This library is no longer supported by its author.")
2027 (home-page "https://github.com/tpapp/cl-colors")
2028 (license license:boost1.0))))
2029
2030 (define-public cl-colors
2031 (sbcl-package->cl-source-package sbcl-cl-colors))
2032
2033 (define-public ecl-cl-colors
2034 (sbcl-package->ecl-package sbcl-cl-colors))
2035
2036 (define-public sbcl-cl-ansi-text
2037 (let ((commit "53badf7878f27f22f2d4a2a43e6df458e43acbe9"))
2038 (package
2039 (name "sbcl-cl-ansi-text")
2040 (version (git-version "1.0.0" "1" commit))
2041 (source
2042 (origin
2043 (method git-fetch)
2044 (uri (git-reference
2045 (url "https://github.com/pnathan/cl-ansi-text")
2046 (commit commit)))
2047 (sha256
2048 (base32
2049 "11i27n0dbz5lmygiw65zzr8lx0rac6b6yysqranphn31wls6ja3v"))
2050 (file-name (git-file-name "cl-ansi-text" version))))
2051 (build-system asdf-build-system/sbcl)
2052 (inputs
2053 `(("alexandria" ,sbcl-alexandria)
2054 ("cl-colors" ,sbcl-cl-colors)))
2055 (native-inputs
2056 `(("fiveam" ,sbcl-fiveam)))
2057 (synopsis "ANSI terminal color implementation for Common Lisp")
2058 (description
2059 "@command{cl-ansi-text} provides utilities which enable printing to an
2060 ANSI terminal with colored text. It provides the macro @command{with-color}
2061 which causes everything printed in the body to be displayed with the provided
2062 color. It further provides functions which will print the argument with the
2063 named color.")
2064 (home-page "https://github.com/pnathan/cl-ansi-text")
2065 (license license:llgpl))))
2066
2067 (define-public cl-ansi-text
2068 (sbcl-package->cl-source-package sbcl-cl-ansi-text))
2069
2070 (define-public ecl-cl-ansi-text
2071 (sbcl-package->ecl-package sbcl-cl-ansi-text))
2072
2073 (define-public sbcl-prove-asdf
2074 (let ((commit "4f9122bd393e63c5c70c1fba23070622317cfaa0"))
2075 (package
2076 (name "sbcl-prove-asdf")
2077 (version (git-version "1.0.0" "1" commit))
2078 (source
2079 (origin
2080 (method git-fetch)
2081 (uri (git-reference
2082 (url "https://github.com/fukamachi/prove")
2083 (commit commit)))
2084 (sha256
2085 (base32
2086 "07sbfw459z8bbjvx1qlmfa8qk2mvbjnnzi2mi0x72blaj8bkl4vc"))
2087 (file-name (git-file-name "prove" version))))
2088 (build-system asdf-build-system/sbcl)
2089 (arguments
2090 `(#:asd-file "prove-asdf.asd"))
2091 (synopsis "Test requirement for the Common Lisp 'prove' library")
2092 (description
2093 "Test requirement for the Common Lisp @command{prove} library.")
2094 (home-page "https://github.com/fukamachi/prove")
2095 (license license:expat))))
2096
2097 (define-public cl-prove-asdf
2098 (sbcl-package->cl-source-package sbcl-prove-asdf))
2099
2100 (define-public ecl-prove-asdf
2101 (sbcl-package->ecl-package sbcl-prove-asdf))
2102
2103 (define-public sbcl-prove
2104 (package
2105 (inherit sbcl-prove-asdf)
2106 (name "sbcl-prove")
2107 (inputs
2108 `(("alexandria" ,sbcl-alexandria)
2109 ("cl-ppcre" ,sbcl-cl-ppcre)
2110 ("cl-ansi-text" ,sbcl-cl-ansi-text)))
2111 (native-inputs
2112 `(("prove-asdf" ,sbcl-prove-asdf)))
2113 (arguments
2114 `(#:asd-file "prove.asd"))
2115 (synopsis "Yet another unit testing framework for Common Lisp")
2116 (description
2117 "This project was originally called @command{cl-test-more}.
2118 @command{prove} is yet another unit testing framework for Common Lisp. The
2119 advantages of @command{prove} are:
2120
2121 @itemize
2122 @item Various simple functions for testing and informative error messages
2123 @item ASDF integration
2124 @item Extensible test reporters
2125 @item Colorizes the report if it's available (note for SLIME)
2126 @item Reports test durations
2127 @end itemize\n")))
2128
2129 (define-public cl-prove
2130 (sbcl-package->cl-source-package sbcl-prove))
2131
2132 (define-public ecl-prove
2133 (sbcl-package->ecl-package sbcl-prove))
2134
2135 (define-public sbcl-proc-parse
2136 (let ((commit "ac3636834d561bdc2686c956dbd82494537285fd"))
2137 (package
2138 (name "sbcl-proc-parse")
2139 (version (git-version "0.0.0" "1" commit))
2140 (source
2141 (origin
2142 (method git-fetch)
2143 (uri (git-reference
2144 (url "https://github.com/fukamachi/proc-parse")
2145 (commit commit)))
2146 (sha256
2147 (base32
2148 "06rnl0h4cx6xv2wj3jczmmcxqn2703inmmvg1s4npbghmijsybfh"))
2149 (file-name (git-file-name "proc-parse" version))))
2150 (build-system asdf-build-system/sbcl)
2151 (inputs
2152 `(("alexandria" ,sbcl-alexandria)
2153 ("babel" ,sbcl-babel)))
2154 (native-inputs
2155 `(("prove" ,sbcl-prove)
2156 ("prove-asdf" ,sbcl-prove-asdf)))
2157 (arguments
2158 ;; TODO: Tests don't find "proc-parse-test", why?
2159 `(#:tests? #f))
2160 (synopsis "Procedural vector parser")
2161 (description
2162 "This is a string/octets parser library for Common Lisp with speed and
2163 readability in mind. Unlike other libraries, the code is not a
2164 pattern-matching-like, but a char-by-char procedural parser.")
2165 (home-page "https://github.com/fukamachi/proc-parse")
2166 (license license:bsd-2))))
2167
2168 (define-public cl-proc-parse
2169 (sbcl-package->cl-source-package sbcl-proc-parse))
2170
2171 (define-public ecl-proc-parse
2172 (sbcl-package->ecl-package sbcl-proc-parse))
2173
2174 (define-public sbcl-parse-float
2175 (let ((commit "2aae569f2a4b2eb3bfb5401a959425dcf151b09c"))
2176 (package
2177 (name "sbcl-parse-float")
2178 (version (git-version "0.0.0" "1" commit))
2179 (source
2180 (origin
2181 (method git-fetch)
2182 (uri (git-reference
2183 (url "https://github.com/soemraws/parse-float")
2184 (commit commit)))
2185 (sha256
2186 (base32
2187 "08xw8cchhmqcc0byng69m3f5a2izc9y2290jzz2k0qrbibp1fdk7"))
2188 (file-name (git-file-name "proc-parse" version))))
2189 (build-system asdf-build-system/sbcl)
2190 (inputs
2191 `(("alexandria" ,sbcl-alexandria)
2192 ("babel" ,sbcl-babel)))
2193 (native-inputs
2194 `(("prove" ,sbcl-prove)
2195 ("prove-asdf" ,sbcl-prove-asdf)))
2196 (arguments
2197 ;; TODO: Tests don't find "proc-parse-test", why?
2198 `(#:tests? #f))
2199 (synopsis "Parse a floating point value from a string in Common Lisp")
2200 (description
2201 "This package exports the following function to parse floating-point
2202 values from a string in Common Lisp.")
2203 (home-page "https://github.com/soemraws/parse-float")
2204 (license license:public-domain))))
2205
2206 (define-public cl-parse-float
2207 (sbcl-package->cl-source-package sbcl-parse-float))
2208
2209 (define-public ecl-parse-float
2210 (sbcl-package->ecl-package sbcl-parse-float))
2211
2212 (define-public sbcl-ascii-strings
2213 (let ((revision "1")
2214 (changeset "5048480a61243e6f1b02884012c8f25cdbee6d97"))
2215 (package
2216 (name "sbcl-ascii-strings")
2217 (version (string-append "0-" revision "." (string-take changeset 7)))
2218 (source
2219 (origin
2220 (method hg-fetch)
2221 (uri (hg-reference
2222 (url "https://bitbucket.org/vityok/cl-string-match/")
2223 (changeset changeset)))
2224 (sha256
2225 (base32
2226 "01wn5qx562w43ssy92xlfgv79w7p0nv0wbl76mpmba131n9ziq2y"))
2227 (file-name (git-file-name "cl-string-match" version))))
2228 (build-system asdf-build-system/sbcl)
2229 (inputs
2230 `(("alexandria" ,sbcl-alexandria)
2231 ("babel" ,sbcl-babel)))
2232 (arguments
2233 `(#:asd-file "ascii-strings.asd"))
2234 (synopsis "Operations on ASCII strings")
2235 (description
2236 "Operations on ASCII strings. Essentially this can be any kind of
2237 single-byte encoded strings.")
2238 (home-page "https://bitbucket.org/vityok/cl-string-match/")
2239 (license license:bsd-3))))
2240
2241 (define-public cl-ascii-strings
2242 (sbcl-package->cl-source-package sbcl-ascii-strings))
2243
2244 (define-public ecl-ascii-strings
2245 (sbcl-package->ecl-package sbcl-ascii-strings))
2246
2247 (define-public sbcl-simple-scanf
2248 (package
2249 (inherit sbcl-ascii-strings)
2250 (name "sbcl-simple-scanf")
2251 (inputs
2252 `(("alexandria" ,sbcl-alexandria)
2253 ("iterate" ,sbcl-iterate)
2254 ("proc-parse" ,sbcl-proc-parse)
2255 ("parse-float" ,sbcl-parse-float)))
2256 (arguments
2257 `(#:asd-file "simple-scanf.asd"))
2258 (synopsis "Simple scanf-like functionality implementation")
2259 (description
2260 "A simple scanf-like functionality implementation.")))
2261
2262 (define-public cl-simple-scanf
2263 (sbcl-package->cl-source-package sbcl-simple-scanf))
2264
2265 (define-public ecl-simple-scanf
2266 (sbcl-package->ecl-package sbcl-simple-scanf))
2267
2268 (define-public sbcl-cl-string-match
2269 (package
2270 (inherit sbcl-ascii-strings)
2271 (name "sbcl-cl-string-match")
2272 (inputs
2273 `(("alexandria" ,sbcl-alexandria)
2274 ("ascii-strings" ,sbcl-ascii-strings)
2275 ("yacc" ,sbcl-cl-yacc)
2276 ("jpl-util" ,sbcl-jpl-util)
2277 ("jpl-queues" ,sbcl-jpl-queues)
2278 ("mgl-pax" ,sbcl-mgl-pax)
2279 ("iterate" ,sbcl-iterate)))
2280 ;; TODO: Tests are not evaluated properly.
2281 (native-inputs
2282 ;; For testing:
2283 `(("lisp-unit" ,sbcl-lisp-unit)
2284 ("simple-scanf" ,sbcl-simple-scanf)))
2285 (arguments
2286 `(#:tests? #f
2287 #:asd-file "cl-string-match.asd"))
2288 (synopsis "Portable, dependency-free set of utilities to manipulate strings in Common Lisp")
2289 (description
2290 "@command{cl-strings} is a small, portable, dependency-free set of
2291 utilities that make it even easier to manipulate text in Common Lisp. It has
2292 100% test coverage and works at least on sbcl, ecl, ccl, abcl and clisp.")))
2293
2294 (define-public cl-string-match
2295 (sbcl-package->cl-source-package sbcl-cl-string-match))
2296
2297 (define-public ecl-cl-string-match
2298 (sbcl-package->ecl-package sbcl-cl-string-match))
2299
2300 (define-public sbcl-ptester
2301 (package
2302 (name "sbcl-ptester")
2303 (version "20160929")
2304 (source
2305 (origin
2306 (method url-fetch)
2307 (uri (string-append "http://beta.quicklisp.org/archive/ptester/"
2308 (date->string (string->date version "~Y~m~d") "~Y-~m-~d")
2309 "/ptester-"
2310 version
2311 "-git.tgz"))
2312 (sha256
2313 (base32
2314 "04rlq1zljhxc65pm31bah3sq3as24l0sdivz440s79qlnnyh13hz"))))
2315 (build-system asdf-build-system/sbcl)
2316 (home-page "http://quickdocs.org/ptester/")
2317 (synopsis "Portable test harness package")
2318 (description
2319 "@command{ptester} is a portable testing framework based on Franz's
2320 tester module.")
2321 (license license:lgpl3+)))
2322
2323 (define-public cl-ptester
2324 (sbcl-package->cl-source-package sbcl-ptester))
2325
2326 (define-public ecl-ptester
2327 (sbcl-package->ecl-package sbcl-ptester))
2328
2329 (define-public sbcl-puri
2330 (package
2331 (name "sbcl-puri")
2332 (version "20180228")
2333 (source
2334 (origin
2335 (method url-fetch)
2336 (uri (string-append "http://beta.quicklisp.org/archive/puri/"
2337 (date->string (string->date version "~Y~m~d") "~Y-~m-~d")
2338 "/puri-"
2339 version
2340 "-git.tgz"))
2341 (sha256
2342 (base32
2343 "1s4r5adrjy5asry45xbcbklxhdjydvf6n55z897nvyw33bigrnbz"))))
2344 (build-system asdf-build-system/sbcl)
2345 ;; REVIEW: Webiste down?
2346 (native-inputs
2347 `(("ptester" ,sbcl-ptester)))
2348 (home-page "http://files.kpe.io/puri/")
2349 (synopsis "Portable URI Library")
2350 (description
2351 "This is portable Universal Resource Identifier library for Common Lisp
2352 programs. It parses URI according to the RFC 2396 specification")
2353 (license license:lgpl3+)))
2354
2355 (define-public cl-puri
2356 (sbcl-package->cl-source-package sbcl-puri))
2357
2358 (define-public ecl-puri
2359 (sbcl-package->ecl-package sbcl-puri))
2360
2361 (define-public sbcl-queues
2362 (let ((commit "47d4da65e9ea20953b74aeeab7e89a831b66bc94"))
2363 (package
2364 (name "sbcl-queues")
2365 (version (git-version "0.0.0" "1" commit))
2366 (source
2367 (origin
2368 (method git-fetch)
2369 (uri (git-reference
2370 (url "https://github.com/oconnore/queues")
2371 (commit commit)))
2372 (file-name (git-file-name "queues" version))
2373 (sha256
2374 (base32
2375 "0wdhfnzi4v6d97pggzj2aw55si94w4327br94jrmyvwf351wqjvv"))))
2376 (build-system asdf-build-system/sbcl)
2377 (home-page "https://github.com/oconnore/queues")
2378 (synopsis "Common Lisp queue library")
2379 (description
2380 "This is a simple queue library for Common Lisp with features such as
2381 non-consing thread safe queues and fibonacci priority queues.")
2382 (license license:expat))))
2383
2384 (define-public cl-queues
2385 (sbcl-package->cl-source-package sbcl-queues))
2386
2387 (define-public ecl-queues
2388 (sbcl-package->ecl-package sbcl-queues))
2389
2390 (define-public sbcl-queues.simple-queue
2391 (package
2392 (inherit sbcl-queues)
2393 (name "sbcl-queues.simple-queue")
2394 (inputs
2395 `(("sbcl-queues" ,sbcl-queues)))
2396 (arguments
2397 `(#:asd-file "queues.simple-queue.asd"))
2398 (synopsis "Simple queue implementation")
2399 (description
2400 "This is a simple queue library for Common Lisp with features such as
2401 non-consing thread safe queues and fibonacci priority queues.")
2402 (license license:expat)))
2403
2404 (define-public cl-queues.simple-queue
2405 (sbcl-package->cl-source-package sbcl-queues.simple-queue))
2406
2407 (define-public ecl-queues.simple-queue
2408 (sbcl-package->ecl-package sbcl-queues.simple-queue))
2409
2410 (define-public sbcl-queues.simple-cqueue
2411 (package
2412 (inherit sbcl-queues)
2413 (name "sbcl-queues.simple-cqueue")
2414 (inputs
2415 `(("sbcl-queues" ,sbcl-queues)
2416 ("sbcl-queues.simple-queue" ,sbcl-queues.simple-queue)
2417 ("bordeaux-threads" ,sbcl-bordeaux-threads)))
2418 (arguments
2419 `(#:asd-file "queues.simple-cqueue.asd"))
2420 (synopsis "Thread safe queue implementation")
2421 (description
2422 "This is a simple queue library for Common Lisp with features such as
2423 non-consing thread safe queues and fibonacci priority queues.")
2424 (license license:expat)))
2425
2426 (define-public cl-queues.simple-cqueue
2427 (sbcl-package->cl-source-package sbcl-queues.simple-cqueue))
2428
2429 (define-public ecl-queues.simple-cqueue
2430 (sbcl-package->ecl-package sbcl-queues.simple-cqueue))
2431
2432 (define-public sbcl-queues.priority-queue
2433 (package
2434 (inherit sbcl-queues)
2435 (name "sbcl-queues.priority-queue")
2436 (inputs
2437 `(("sbcl-queues" ,sbcl-queues)))
2438 (arguments
2439 `(#:asd-file "queues.priority-queue.asd"))
2440 (synopsis "Priority queue (Fibonacci) implementation")
2441 (description
2442 "This is a simple queue library for Common Lisp with features such as
2443 non-consing thread safe queues and fibonacci priority queues.")
2444 (license license:expat)))
2445
2446 (define-public cl-queues.priority-queue
2447 (sbcl-package->cl-source-package sbcl-queues.priority-queue))
2448
2449 (define-public ecl-queues.priority-queue
2450 (sbcl-package->ecl-package sbcl-queues.priority-queue))
2451
2452 (define-public sbcl-queues.priority-cqueue
2453 (package
2454 (inherit sbcl-queues)
2455 (name "sbcl-queues.priority-cqueue")
2456 (inputs
2457 `(("sbcl-queues" ,sbcl-queues)
2458 ("sbcl-queues.priority-queue" ,sbcl-queues.priority-queue)
2459 ("bordeaux-threads" ,sbcl-bordeaux-threads)))
2460 (arguments
2461 `(#:asd-file "queues.priority-cqueue.asd"))
2462 (synopsis "Thread safe fibonacci priority queue implementation")
2463 (description
2464 "This is a simple queue library for Common Lisp with features such as
2465 non-consing thread safe queues and fibonacci priority queues.")
2466 (license license:expat)))
2467
2468 (define-public cl-queues.priority-cqueue
2469 (sbcl-package->cl-source-package sbcl-queues.priority-cqueue))
2470
2471 (define-public ecl-queues.priority-cqueue
2472 (sbcl-package->ecl-package sbcl-queues.priority-cqueue))
2473
2474 (define sbcl-cffi-bootstrap
2475 (package
2476 (name "sbcl-cffi-bootstrap")
2477 (version "0.21.0")
2478 (source
2479 (origin
2480 (method git-fetch)
2481 (uri (git-reference
2482 (url "https://github.com/cffi/cffi.git")
2483 (commit (string-append "v" version))))
2484 (file-name (git-file-name "cffi-bootstrap" version))
2485 (sha256
2486 (base32 "1qalargz9bhp850qv60ffwpdqi4xirzar4l3g6qcg8yc6xqf2cjk"))))
2487 (build-system asdf-build-system/sbcl)
2488 (inputs
2489 `(("libffi" ,libffi)
2490 ("alexandria" ,sbcl-alexandria)
2491 ("babel" ,sbcl-babel)
2492 ("trivial-features" ,sbcl-trivial-features)))
2493 (native-inputs
2494 `(("pkg-config" ,pkg-config)))
2495 (arguments
2496 '(#:phases
2497 (modify-phases %standard-phases
2498 (add-after 'unpack 'fix-paths
2499 (lambda* (#:key inputs #:allow-other-keys)
2500 (substitute* "libffi/libffi.lisp"
2501 (("libffi.so.6" all) (string-append
2502 (assoc-ref inputs "libffi")
2503 "/lib/" all)))
2504 (substitute* "toolchain/c-toolchain.lisp"
2505 (("\"cc\"") (format #f "~S" (which "gcc")))))))
2506 #:asd-system-name "cffi"
2507 #:tests? #f))
2508 (home-page "https://common-lisp.net/project/cffi/")
2509 (synopsis "Common Foreign Function Interface for Common Lisp")
2510 (description "The Common Foreign Function Interface (CFFI)
2511 purports to be a portable foreign function interface for Common Lisp.
2512 The CFFI library is composed of a Lisp-implementation-specific backend
2513 in the CFFI-SYS package, and a portable frontend in the CFFI
2514 package.")
2515 (license license:expat)))
2516
2517 (define-public sbcl-cffi-toolchain
2518 (package
2519 (inherit sbcl-cffi-bootstrap)
2520 (name "sbcl-cffi-toolchain")
2521 (inputs
2522 `(("libffi" ,libffi)
2523 ("sbcl-cffi" ,sbcl-cffi-bootstrap)))
2524 (arguments
2525 (substitute-keyword-arguments (package-arguments sbcl-cffi-bootstrap)
2526 ((#:asd-system-name _) #f)
2527 ((#:tests? _) #t)))))
2528
2529 (define-public sbcl-cffi-libffi
2530 (package
2531 (inherit sbcl-cffi-toolchain)
2532 (name "sbcl-cffi-libffi")
2533 (inputs
2534 `(("cffi" ,sbcl-cffi-bootstrap)
2535 ("cffi-grovel" ,sbcl-cffi-grovel)
2536 ("trivial-features" ,sbcl-trivial-features)
2537 ("libffi" ,libffi)))))
2538
2539 (define-public sbcl-cffi-grovel
2540 (package
2541 (inherit sbcl-cffi-toolchain)
2542 (name "sbcl-cffi-grovel")
2543 (inputs
2544 `(("libffi" ,libffi)
2545 ("cffi" ,sbcl-cffi-bootstrap)
2546 ("cffi-toolchain" ,sbcl-cffi-toolchain)
2547 ("alexandria" ,sbcl-alexandria)))
2548 (arguments
2549 (substitute-keyword-arguments (package-arguments sbcl-cffi-toolchain)
2550 ((#:phases phases)
2551 `(modify-phases ,phases
2552 (add-after 'build 'install-headers
2553 (lambda* (#:key outputs #:allow-other-keys)
2554 (install-file "grovel/common.h"
2555 (string-append
2556 (assoc-ref outputs "out")
2557 "/include/grovel"))))))))))
2558
2559 (define-public sbcl-cffi
2560 (package
2561 (inherit sbcl-cffi-toolchain)
2562 (name "sbcl-cffi")
2563 (inputs (package-inputs sbcl-cffi-bootstrap))
2564 (native-inputs
2565 `(("cffi-grovel" ,sbcl-cffi-grovel)
2566 ("cffi-libffi" ,sbcl-cffi-libffi)
2567 ("rt" ,sbcl-rt)
2568 ("bordeaux-threads" ,sbcl-bordeaux-threads)
2569 ,@(package-native-inputs sbcl-cffi-bootstrap)))))
2570
2571 (define-public cl-cffi
2572 (sbcl-package->cl-source-package sbcl-cffi))
2573
2574 (define-public sbcl-cl-sqlite
2575 (let ((commit "c738e66d4266ef63a1debc4ef4a1b871a068c112"))
2576 (package
2577 (name "sbcl-cl-sqlite")
2578 (version (git-version "0.2" "1" commit))
2579 (source
2580 (origin
2581 (method git-fetch)
2582 (uri (git-reference
2583 (url "https://github.com/dmitryvk/cl-sqlite")
2584 (commit commit)))
2585 (file-name (git-file-name "cl-sqlite" version))
2586 (sha256
2587 (base32
2588 "1ng45k1hdb84sqjryrfx93g66bsbybmpy301wd0fdybnc5jzr36q"))))
2589 (build-system asdf-build-system/sbcl)
2590 (inputs
2591 `(("iterate" ,sbcl-iterate)
2592 ("cffi" ,sbcl-cffi)
2593 ("sqlite" ,sqlite)))
2594 (native-inputs
2595 `(("fiveam" ,sbcl-fiveam)
2596 ("bordeaux-threads" ,sbcl-bordeaux-threads)))
2597 (arguments
2598 `(#:tests? #f ; Upstream seems to have issues with tests: https://github.com/dmitryvk/cl-sqlite/issues/7
2599 #:asd-file "sqlite.asd"
2600 #:asd-system-name "sqlite"
2601 #:phases
2602 (modify-phases %standard-phases
2603 (add-after 'unpack 'fix-paths
2604 (lambda* (#:key inputs #:allow-other-keys)
2605 (substitute* "sqlite-ffi.lisp"
2606 (("libsqlite3" all) (string-append
2607 (assoc-ref inputs "sqlite")"/lib/" all))))))))
2608 (home-page "https://common-lisp.net/project/cl-sqlite/")
2609 (synopsis "Common Lisp binding for SQLite")
2610 (description
2611 "The @command{cl-sqlite} package is an interface to the SQLite embedded
2612 relational database engine.")
2613 (license license:public-domain))))
2614
2615 (define-public cl-sqlite
2616 (sbcl-package->cl-source-package sbcl-cl-sqlite))
2617
2618 (define-public sbcl-parenscript
2619 (let ((commit "061d8e286c81c3f45c84fb2b11ee7d83f590a8f8"))
2620 (package
2621 (name "sbcl-parenscript")
2622 (version (git-version "2.6" "1" commit))
2623 (source
2624 (origin
2625 (method git-fetch)
2626 (uri (git-reference
2627 (url "https://gitlab.common-lisp.net/parenscript/parenscript")
2628 (commit commit)))
2629 (file-name (git-file-name "parenscript" version))
2630 (sha256
2631 (base32
2632 "1kbhgsjbikc73m5cwdp4d4fdafyqcr1b7b630qjrziql0nh6mi3k"))))
2633 (build-system asdf-build-system/sbcl)
2634 (inputs
2635 `(("cl-ppcre" ,sbcl-cl-ppcre)
2636 ("anaphora" ,sbcl-anaphora)
2637 ("named-readtables" ,sbcl-named-readtables)))
2638 (home-page "https://common-lisp.net/project/parenscript/")
2639 (synopsis "Translator from a subset of Common Lisp to JavaScript")
2640 (description
2641 "Parenscript is a translator from an extended subset of Common Lisp to
2642 JavaScript. Parenscript code can run almost identically on both the
2643 browser (as JavaScript) and server (as Common Lisp).
2644
2645 Parenscript code is treated the same way as Common Lisp code, making the full
2646 power of Lisp macros available for JavaScript. This provides a web
2647 development environment that is unmatched in its ability to reduce code
2648 duplication and provide advanced meta-programming facilities to web
2649 developers.
2650
2651 At the same time, Parenscript is different from almost all other \"language
2652 X\" to JavaScript translators in that it imposes almost no overhead:
2653
2654 @itemize
2655 @item No run-time dependencies: Any piece of Parenscript code is runnable
2656 as-is. There are no JavaScript files to include.
2657 @item Native types: Parenscript works entirely with native JavaScript data
2658 types. There are no new types introduced, and object prototypes are not
2659 touched.
2660 @item Native calling convention: Any JavaScript code can be called without the
2661 need for bindings. Likewise, Parenscript can be used to make efficient,
2662 self-contained JavaScript libraries.
2663 @item Readable code: Parenscript generates concise, formatted, idiomatic
2664 JavaScript code. Identifier names are preserved. This enables seamless
2665 debugging in tools like Firebug.
2666 @item Efficiency: Parenscript introduces minimal overhead for advanced Common
2667 Lisp features. The generated code is almost as fast as hand-written
2668 JavaScript.
2669 @end itemize\n")
2670 (license license:bsd-3))))
2671
2672 (define-public cl-parenscript
2673 (sbcl-package->cl-source-package sbcl-parenscript))
2674
2675 (define-public ecl-parenscript
2676 (sbcl-package->ecl-package sbcl-parenscript))
2677
2678 (define-public sbcl-cl-json
2679 (let ((commit "6dfebb9540bfc3cc33582d0c03c9ec27cb913e79"))
2680 (package
2681 (name "sbcl-cl-json")
2682 (version (git-version "0.5" "1" commit))
2683 (source
2684 (origin
2685 (method git-fetch)
2686 (uri (git-reference
2687 (url "https://github.com/hankhero/cl-json")
2688 (commit commit)))
2689 (file-name (git-file-name "cl-json" version))
2690 (sha256
2691 (base32
2692 "0fx3m3x3s5ji950yzpazz4s0img3l6b3d6l3jrfjv0lr702496lh"))))
2693 (build-system asdf-build-system/sbcl)
2694 (native-inputs
2695 `(("fiveam" ,sbcl-fiveam)))
2696 (home-page "https://github.com/hankhero/cl-json")
2697 (synopsis "JSON encoder and decoder for Common-Lisp")
2698 (description
2699 "@command{cl-json} provides an encoder of Lisp objects to JSON format
2700 and a corresponding decoder of JSON data to Lisp objects. Both the encoder
2701 and the decoder are highly customizable; at the same time, the default
2702 settings ensure a very simple mode of operation, similar to that provided by
2703 @command{yason} or @command{st-json}.")
2704 (license license:expat))))
2705
2706 (define-public cl-json
2707 (sbcl-package->cl-source-package sbcl-cl-json))
2708
2709 (define-public ecl-cl-json
2710 (sbcl-package->ecl-package sbcl-cl-json))
2711
2712 (define-public sbcl-unix-opts
2713 (package
2714 (name "sbcl-unix-opts")
2715 (version "0.1.7")
2716 (source
2717 (origin
2718 (method git-fetch)
2719 (uri (git-reference
2720 (url "https://github.com/libre-man/unix-opts")
2721 (commit version)))
2722 (file-name (git-file-name "unix-opts" version))
2723 (sha256
2724 (base32
2725 "08djdi1ard09fijb7w9bdmhmwd98b1hzmcnjw9fqjiqa0g3b44rr"))))
2726 (build-system asdf-build-system/sbcl)
2727 (home-page "https://github.com/hankhero/cl-json")
2728 (synopsis "Unix-style command line options parser")
2729 (description
2730 "This is a minimalistic parser of command line options. The main
2731 advantage of the library is the ability to concisely define command line
2732 options once and then use this definition for parsing and extraction of
2733 command line arguments, as well as printing description of command line
2734 options (you get --help for free). This way you don't need to repeat
2735 yourself. Also, @command{unix-opts} doesn't depend on anything and allows to
2736 precisely control behavior of the parser via Common Lisp restarts.")
2737 (license license:expat)))
2738
2739 (define-public cl-unix-opts
2740 (sbcl-package->cl-source-package sbcl-unix-opts))
2741
2742 (define-public ecl-unix-opts
2743 (sbcl-package->ecl-package sbcl-unix-opts))
2744
2745 (define-public sbcl-trivial-garbage
2746 (package
2747 (name "sbcl-trivial-garbage")
2748 (version "0.21")
2749 (source
2750 (origin
2751 (method git-fetch)
2752 (uri (git-reference
2753 (url "https://github.com/trivial-garbage/trivial-garbage.git")
2754 (commit (string-append "v" version))))
2755 (file-name (git-file-name "trivial-garbage" version))
2756 (sha256
2757 (base32 "0122jicfg7pca1wxw8zak1n92h5friqy60988ns0ysksj3fphw9n"))))
2758 (build-system asdf-build-system/sbcl)
2759 (native-inputs
2760 `(("rt" ,sbcl-rt)))
2761 (home-page "https://common-lisp.net/project/trivial-garbage/")
2762 (synopsis "Portable GC-related APIs for Common Lisp")
2763 (description "@command{trivial-garbage} provides a portable API to
2764 finalizers, weak hash-tables and weak pointers on all major implementations of
2765 the Common Lisp programming language.")
2766 (license license:public-domain)))
2767
2768 (define-public cl-trivial-garbage
2769 (sbcl-package->cl-source-package sbcl-trivial-garbage))
2770
2771 (define-public ecl-trivial-garbage
2772 (sbcl-package->ecl-package sbcl-trivial-garbage))
2773
2774 (define-public sbcl-closer-mop
2775 (let ((commit "fac29ce90e3a46e1fc6cf182190e193526fa9dbc"))
2776 (package
2777 (name "sbcl-closer-mop")
2778 (version (git-version "1.0.0" "1" commit))
2779 (source
2780 (origin
2781 (method git-fetch)
2782 (uri (git-reference
2783 (url "https://github.com/pcostanza/closer-mop")
2784 (commit commit)))
2785 (sha256
2786 (base32 "0hvh77y869h8fg9di5snyg85fxq6fdh9gj1igmx1g6j6j5x915dl"))
2787 (file-name (git-file-name "closer-mop" version ))))
2788 (build-system asdf-build-system/sbcl)
2789 (home-page "https://github.com/pcostanza/closer-mop")
2790 (synopsis "Rectifies absent or incorrect CLOS MOP features")
2791 (description "Closer to MOP is a compatibility layer that rectifies many
2792 of the absent or incorrect CLOS MOP features across a broad range of Common
2793 Lisp implementations.")
2794 (license license:expat))))
2795
2796 (define-public cl-closer-mop
2797 (sbcl-package->cl-source-package sbcl-closer-mop))
2798
2799 (define-public ecl-closer-mop
2800 (sbcl-package->ecl-package sbcl-closer-mop))
2801
2802 (define sbcl-cl-cffi-gtk-boot0
2803 (let ((commit "29443c5aaca975709df8025c4649366d882033cb"))
2804 (package
2805 (name "sbcl-cl-cffi-gtk-boot0")
2806 (version (git-version "0.11.2" "1" commit))
2807 (source
2808 (origin
2809 (method git-fetch)
2810 (uri (git-reference
2811 (url "https://github.com/Ferada/cl-cffi-gtk/")
2812 (commit commit)))
2813 (file-name (git-file-name "cl-cffi-gtk" version))
2814 (sha256
2815 (base32
2816 "0f6s92sf8xyzh1yksqx8bsy1sv0zmy0c13j3b8bavaba5hlxpxah"))))
2817 (build-system asdf-build-system/sbcl)
2818 (inputs
2819 `(("iterate" ,sbcl-iterate)
2820 ("cffi" ,sbcl-cffi)
2821 ("trivial-features" ,sbcl-trivial-features)))
2822 (home-page "https://github.com/Ferada/cl-cffi-gtk/")
2823 (synopsis "Common Lisp binding for GTK+3")
2824 (description
2825 "@command{cl-cffi-gtk} is a Lisp binding to GTK+ 3 (GIMP Toolkit) which
2826 is a library for creating graphical user interfaces.")
2827 (license license:lgpl3))))
2828
2829 (define-public sbcl-cl-cffi-gtk-glib
2830 (package
2831 (inherit sbcl-cl-cffi-gtk-boot0)
2832 (name "sbcl-cl-cffi-gtk-glib")
2833 (inputs
2834 `(("glib" ,glib)
2835 ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
2836 (arguments
2837 `(#:asd-file "glib/cl-cffi-gtk-glib.asd"
2838 #:phases
2839 (modify-phases %standard-phases
2840 (add-after 'unpack 'fix-paths
2841 (lambda* (#:key inputs #:allow-other-keys)
2842 (substitute* "glib/glib.init.lisp"
2843 (("libglib|libgthread" all) (string-append
2844 (assoc-ref inputs "glib") "/lib/" all))))))))))
2845
2846 (define-public sbcl-cl-cffi-gtk-gobject
2847 (package
2848 (inherit sbcl-cl-cffi-gtk-boot0)
2849 (name "sbcl-cl-cffi-gtk-gobject")
2850 (inputs
2851 `(("glib" ,glib)
2852 ("cl-cffi-gtk-glib" ,sbcl-cl-cffi-gtk-glib)
2853 ("trivial-garbage" ,sbcl-trivial-garbage)
2854 ("bordeaux-threads" ,sbcl-bordeaux-threads)
2855 ("closer-mop" ,sbcl-closer-mop)
2856 ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
2857 (arguments
2858 `(#:asd-file "gobject/cl-cffi-gtk-gobject.asd"
2859 #:phases
2860 (modify-phases %standard-phases
2861 (add-after 'unpack 'fix-paths
2862 (lambda* (#:key inputs #:allow-other-keys)
2863 (substitute* "gobject/gobject.init.lisp"
2864 (("libgobject" all) (string-append
2865 (assoc-ref inputs "glib") "/lib/" all))))))))))
2866
2867 (define-public sbcl-cl-cffi-gtk-gio
2868 (package
2869 (inherit sbcl-cl-cffi-gtk-boot0)
2870 (name "sbcl-cl-cffi-gtk-gio")
2871 (inputs
2872 `(("glib" ,glib)
2873 ("cl-cffi-gtk-glib" ,sbcl-cl-cffi-gtk-glib)
2874 ("cl-cffi-gtk-gobject" ,sbcl-cl-cffi-gtk-gobject)
2875 ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
2876 (arguments
2877 `(#:asd-file "gio/cl-cffi-gtk-gio.asd"
2878 #:phases
2879 (modify-phases %standard-phases
2880 (add-after 'unpack 'fix-paths
2881 (lambda* (#:key inputs #:allow-other-keys)
2882 (substitute* "gio/gio.init.lisp"
2883 (("libgio" all)
2884 (string-append
2885 (assoc-ref inputs "glib") "/lib/" all))))))))))
2886
2887 (define-public sbcl-cl-cffi-gtk-cairo
2888 (package
2889 (inherit sbcl-cl-cffi-gtk-boot0)
2890 (name "sbcl-cl-cffi-gtk-cairo")
2891 (inputs
2892 `(("cairo" ,cairo)
2893 ("cl-cffi-gtk-glib" ,sbcl-cl-cffi-gtk-glib)
2894 ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
2895 (arguments
2896 `(#:asd-file "cairo/cl-cffi-gtk-cairo.asd"
2897 #:phases
2898 (modify-phases %standard-phases
2899 (add-after 'unpack 'fix-paths
2900 (lambda* (#:key inputs #:allow-other-keys)
2901 (substitute* "cairo/cairo.init.lisp"
2902 (("libcairo" all)
2903 (string-append
2904 (assoc-ref inputs "cairo") "/lib/" all))))))))))
2905
2906 (define-public sbcl-cl-cffi-gtk-pango
2907 (package
2908 (inherit sbcl-cl-cffi-gtk-boot0)
2909 (name "sbcl-cl-cffi-gtk-pango")
2910 (inputs
2911 `(("pango" ,pango)
2912 ("cl-cffi-gtk-glib" ,sbcl-cl-cffi-gtk-glib)
2913 ("cl-cffi-gtk-gobject" ,sbcl-cl-cffi-gtk-gobject)
2914 ("cl-cffi-gtk-cairo" ,sbcl-cl-cffi-gtk-cairo)
2915 ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
2916 (arguments
2917 `(#:asd-file "pango/cl-cffi-gtk-pango.asd"
2918 #:phases
2919 (modify-phases %standard-phases
2920 (add-after 'unpack 'fix-paths
2921 (lambda* (#:key inputs #:allow-other-keys)
2922 (substitute* "pango/pango.init.lisp"
2923 (("libpango" all)
2924 (string-append
2925 (assoc-ref inputs "pango") "/lib/" all))))))))))
2926
2927 (define-public sbcl-cl-cffi-gtk-gdk-pixbuf
2928 (package
2929 (inherit sbcl-cl-cffi-gtk-boot0)
2930 (name "sbcl-cl-cffi-gtk-gdk-pixbuf")
2931 (inputs
2932 `(("gdk-pixbuf" ,gdk-pixbuf)
2933 ("cl-cffi-gtk-gobject" ,sbcl-cl-cffi-gtk-gobject)
2934 ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
2935 (arguments
2936 `(#:asd-file "gdk-pixbuf/cl-cffi-gtk-gdk-pixbuf.asd"
2937 #:phases
2938 (modify-phases %standard-phases
2939 (add-after 'unpack 'fix-paths
2940 (lambda* (#:key inputs #:allow-other-keys)
2941 (substitute* "gdk-pixbuf/gdk-pixbuf.init.lisp"
2942 (("libgdk_pixbuf" all)
2943 (string-append
2944 (assoc-ref inputs "gdk-pixbuf") "/lib/" all))))))))))
2945
2946 (define-public sbcl-cl-cffi-gtk-gdk
2947 (package
2948 (inherit sbcl-cl-cffi-gtk-boot0)
2949 (name "sbcl-cl-cffi-gtk-gdk")
2950 (inputs
2951 `(("gtk" ,gtk+)
2952 ("cl-cffi-gtk-gobject" ,sbcl-cl-cffi-gtk-gobject)
2953 ("cl-cffi-gtk-gio" ,sbcl-cl-cffi-gtk-gio)
2954 ("cl-cffi-gtk-gdk-pixbuf" ,sbcl-cl-cffi-gtk-gdk-pixbuf)
2955 ("cl-cffi-gtk-cairo" ,sbcl-cl-cffi-gtk-cairo)
2956 ("cl-cffi-gtk-pango" ,sbcl-cl-cffi-gtk-pango)
2957 ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
2958 (arguments
2959 `(#:asd-file "gdk/cl-cffi-gtk-gdk.asd"
2960 #:phases
2961 (modify-phases %standard-phases
2962 (add-after 'unpack 'fix-paths
2963 (lambda* (#:key inputs #:allow-other-keys)
2964 (substitute* "gdk/gdk.init.lisp"
2965 (("libgdk" all)
2966 (string-append
2967 (assoc-ref inputs "gtk") "/lib/" all)))
2968 (substitute* "gdk/gdk.package.lisp"
2969 (("libgtk" all)
2970 (string-append
2971 (assoc-ref inputs "gtk") "/lib/" all))))))))))
2972
2973 (define-public sbcl-cl-cffi-gtk
2974 (package
2975 (inherit sbcl-cl-cffi-gtk-boot0)
2976 (name "sbcl-cl-cffi-gtk")
2977 (inputs
2978 `(("cl-cffi-gtk-glib" ,sbcl-cl-cffi-gtk-glib)
2979 ("cl-cffi-gtk-gobject" ,sbcl-cl-cffi-gtk-gobject)
2980 ("cl-cffi-gtk-gio" ,sbcl-cl-cffi-gtk-gio)
2981 ("cl-cffi-gtk-gdk" ,sbcl-cl-cffi-gtk-gdk)
2982 ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
2983 (native-inputs
2984 `(("fiveam" ,sbcl-fiveam)))
2985 (arguments
2986 `(#:asd-file "gtk/cl-cffi-gtk.asd"
2987 #:test-asd-file "test/cl-cffi-gtk-test.asd"
2988 ;; TODO: Tests fail with memory fault.
2989 ;; See https://github.com/Ferada/cl-cffi-gtk/issues/24.
2990 #:tests? #f))))
2991
2992 (define-public cl-cffi-gtk
2993 (sbcl-package->cl-source-package sbcl-cl-cffi-gtk))
2994
2995 (define-public sbcl-cl-webkit
2996 (let ((commit "cd2a9008e0c152e54755e8a7f07b050fe36bab31"))
2997 (package
2998 (name "sbcl-cl-webkit")
2999 (version (git-version "2.4" "1" commit))
3000 (source
3001 (origin
3002 (method git-fetch)
3003 (uri (git-reference
3004 (url "https://github.com/jmercouris/cl-webkit")
3005 (commit commit)))
3006 (file-name (git-file-name "cl-webkit" version))
3007 (sha256
3008 (base32
3009 "0f5lyn9i7xrn3g1bddga377mcbawkbxydijpg389q4n04gqj0vwf"))))
3010 (build-system asdf-build-system/sbcl)
3011 (inputs
3012 `(("cffi" ,sbcl-cffi)
3013 ("cl-cffi-gtk" ,sbcl-cl-cffi-gtk)
3014 ("webkitgtk" ,webkitgtk)))
3015 (arguments
3016 `(#:asd-file "webkit2/cl-webkit2.asd"
3017 #:asd-system-name "cl-webkit2"
3018 #:phases
3019 (modify-phases %standard-phases
3020 (add-after 'unpack 'fix-paths
3021 (lambda* (#:key inputs #:allow-other-keys)
3022 (substitute* "webkit2/webkit2.init.lisp"
3023 (("libwebkit2gtk" all)
3024 (string-append
3025 (assoc-ref inputs "webkitgtk") "/lib/" all))))))))
3026 (home-page "https://github.com/jmercouris/cl-webkit")
3027 (synopsis "Binding to WebKitGTK+ for Common Lisp")
3028 (description
3029 "@command{cl-webkit} is a binding to WebKitGTK+ for Common Lisp,
3030 currently targeting WebKit version 2. The WebKitGTK+ library adds web
3031 browsing capabilities to an application, leveraging the full power of the
3032 WebKit browsing engine.")
3033 (license license:expat))))
3034
3035 (define-public cl-webkit
3036 (sbcl-package->cl-source-package sbcl-cl-webkit))
3037
3038 (define-public sbcl-lparallel
3039 (package
3040 (name "sbcl-lparallel")
3041 (version "2.8.4")
3042 (source
3043 (origin
3044 (method git-fetch)
3045 (uri (git-reference
3046 (url "https://github.com/lmj/lparallel/")
3047 (commit (string-append "lparallel-" version))))
3048 (file-name (git-file-name "lparallel" version))
3049 (sha256
3050 (base32
3051 "0g0aylrbbrqsz0ahmwhvnk4cmc2931fllbpcfgzsprwnqqd7vwq9"))))
3052 (build-system asdf-build-system/sbcl)
3053 (inputs
3054 `(("alexandria" ,sbcl-alexandria)
3055 ("bordeaux-threads" ,sbcl-bordeaux-threads)
3056 ("trivial-garbage" ,sbcl-trivial-garbage)))
3057 (home-page "https://lparallel.org/")
3058 (synopsis "Parallelism for Common Lisp")
3059 (description
3060 "@command{lparallel} is a library for parallel programming in Common
3061 Lisp, featuring:
3062
3063 @itemize
3064 @item a simple model of task submission with receiving queue,
3065 @item constructs for expressing fine-grained parallelism,
3066 @item asynchronous condition handling across thread boundaries,
3067 @item parallel versions of map, reduce, sort, remove, and many others,
3068 @item promises, futures, and delayed evaluation constructs,
3069 @item computation trees for parallelizing interconnected tasks,
3070 @item bounded and unbounded FIFO queues,
3071 @item high and low priority tasks,
3072 @item task killing by category,
3073 @item integrated timeouts.
3074 @end itemize\n")
3075 (license license:expat)))
3076
3077 (define-public cl-lparallel
3078 (sbcl-package->cl-source-package sbcl-lparallel))
3079
3080 (define-public ecl-lparallel
3081 (sbcl-package->ecl-package sbcl-lparallel))
3082
3083 (define-public sbcl-cl-markup
3084 (let ((commit "e0eb7debf4bdff98d1f49d0f811321a6a637b390"))
3085 (package
3086 (name "sbcl-cl-markup")
3087 (version (git-version "0.1" "1" commit))
3088 (source
3089 (origin
3090 (method git-fetch)
3091 (uri (git-reference
3092 (url "https://github.com/arielnetworks/cl-markup/")
3093 (commit commit)))
3094 (file-name (git-file-name "cl-markup" version))
3095 (sha256
3096 (base32
3097 "10l6k45971dl13fkdmva7zc6i453lmq9j4xax2ci6pjzlc6xjhp7"))))
3098 (build-system asdf-build-system/sbcl)
3099 (home-page "https://github.com/arielnetworks/cl-markup/")
3100 (synopsis "Markup generation library for Common Lisp")
3101 (description
3102 "A modern markup generation library for Common Lisp that features:
3103
3104 @itemize
3105 @item Fast (even faster through compiling the code)
3106 @item Safety
3107 @item Support for multiple document types (markup, xml, html, html5, xhtml)
3108 @item Output with doctype
3109 @item Direct output to stream
3110 @end itemize\n")
3111 (license license:lgpl3+))))
3112
3113 (define-public cl-markup
3114 (sbcl-package->cl-source-package sbcl-cl-markup))
3115
3116 (define-public ecl-cl-markup
3117 (sbcl-package->ecl-package sbcl-cl-markup))
3118
3119 (define-public sbcl-cl-css
3120 (let ((commit "8fe654c8f0cf95b300718101cce4feb517f78e2f"))
3121 (package
3122 (name "sbcl-cl-css")
3123 (version (git-version "0.1" "1" commit))
3124 (source
3125 (origin
3126 (method git-fetch)
3127 (uri (git-reference
3128 (url "https://github.com/inaimathi/cl-css/")
3129 (commit commit)))
3130 (file-name (git-file-name "cl-css" version))
3131 (sha256
3132 (base32
3133 "1lc42zi2sw11fl2589sc19nr5sd2p0wy7wgvgwaggxa5f3ajhsmd"))))
3134 (build-system asdf-build-system/sbcl)
3135 (home-page "https://github.com/inaimathi/cl-css/")
3136 (synopsis "Non-validating, inline CSS generator for Common Lisp")
3137 (description
3138 "This is a dead-simple, non validating, inline CSS generator for Common
3139 Lisp. Its goals are axiomatic syntax, simple implementation to support
3140 portability, and boilerplate reduction in CSS.")
3141 (license license:expat))))
3142
3143 (define-public cl-css
3144 (sbcl-package->cl-source-package sbcl-cl-css))
3145
3146 (define-public ecl-cl-css
3147 (sbcl-package->ecl-package sbcl-cl-css))
3148
3149 (define-public sbcl-portable-threads
3150 (let ((commit "c0e61a1faeb0583c80fd3f20b16cc4c555226920"))
3151 (package
3152 (name "sbcl-portable-threads")
3153 (version (git-version "2.3" "1" commit))
3154 (source
3155 (origin
3156 (method git-fetch)
3157 (uri (git-reference
3158 (url "https://github.com/binghe/portable-threads/")
3159 (commit commit)))
3160 (file-name (git-file-name "portable-threads" version))
3161 (sha256
3162 (base32
3163 "03fmxyarc0xf4kavwkfa0a2spkyfrz6hbgbi9y4q7ny5aykdyfaq"))))
3164 (build-system asdf-build-system/sbcl)
3165 (arguments
3166 `(;; Tests seem broken.
3167 #:tests? #f))
3168 (home-page "https://github.com/binghe/portable-threads")
3169 (synopsis "Portable threads (and scheduled and periodic functions) API for Common Lisp")
3170 (description
3171 "Portable Threads (and Scheduled and Periodic Functions) API for Common
3172 Lisp (from GBBopen project).")
3173 (license license:asl2.0))))
3174
3175 (define-public cl-portable-threads
3176 (sbcl-package->cl-source-package sbcl-portable-threads))
3177
3178 (define-public ecl-portable-threada
3179 (sbcl-package->ecl-package sbcl-portable-threads))
3180
3181 (define sbcl-usocket-boot0
3182 ;; usocket's test rely on usocket-server which depends on usocket itself.
3183 ;; We break this cyclic dependency with -boot0 that packages usocket.
3184 (package
3185 (name "sbcl-usocket-boot0")
3186 (version "0.8.3")
3187 (source
3188 (origin
3189 (method git-fetch)
3190 (uri (git-reference
3191 (url "https://github.com/usocket/usocket/")
3192 (commit (string-append "v" version))))
3193 (file-name (git-file-name "usocket" version))
3194 (sha256
3195 (base32
3196 "0x746wr2324l6bn7skqzgkzcbj5kd0zp2ck0c8rldrw0rzabg826"))))
3197 (build-system asdf-build-system/sbcl)
3198 (inputs
3199 `(("split-sequence" ,sbcl-split-sequence)))
3200 (arguments
3201 `(#:tests? #f
3202 #:asd-system-name "usocket"))
3203 (home-page "https://common-lisp.net/project/usocket/")
3204 (synopsis "Universal socket library for Common Lisp (server side)")
3205 (description
3206 "This library strives to provide a portable TCP/IP and UDP/IP socket
3207 interface for as many Common Lisp implementations as possible, while keeping
3208 the abstraction and portability layer as thin as possible.")
3209 (license license:expat)))
3210
3211 (define-public sbcl-usocket-server
3212 (package
3213 (inherit sbcl-usocket-boot0)
3214 (name "sbcl-usocket-server")
3215 (inputs
3216 `(("bordeaux-threads" ,sbcl-bordeaux-threads)
3217 ("usocket" ,sbcl-usocket-boot0)))
3218 (arguments
3219 '(#:asd-system-name "usocket-server"))
3220 (synopsis "Universal socket library for Common Lisp (server side)")))
3221
3222 (define-public cl-usocket-server
3223 (sbcl-package->cl-source-package sbcl-usocket-server))
3224
3225 (define-public ecl-socket-server
3226 (sbcl-package->ecl-package sbcl-usocket-server))
3227
3228 (define-public sbcl-usocket
3229 (package
3230 (inherit sbcl-usocket-boot0)
3231 (name "sbcl-usocket")
3232 (arguments
3233 ;; FIXME: Tests need network access?
3234 `(#:tests? #f))
3235 (native-inputs
3236 ;; Testing only.
3237 `(("usocket-server" ,sbcl-usocket-server)
3238 ("rt" ,sbcl-rt)))))
3239
3240 (define-public cl-usocket
3241 (sbcl-package->cl-source-package sbcl-usocket))
3242
3243 (define-public ecl-usocket
3244 (sbcl-package->ecl-package sbcl-usocket))
3245
3246 (define-public sbcl-s-xml
3247 (package
3248 (name "sbcl-s-xml")
3249 (version "3")
3250 (source
3251 (origin
3252 (method url-fetch)
3253 (uri "https://common-lisp.net/project/s-xml/s-xml.tgz")
3254 (sha256
3255 (base32
3256 "061qcr0dzshsa38s5ma4ay924cwak2nq9gy59dw6v9p0qb58nzjf"))))
3257 (build-system asdf-build-system/sbcl)
3258 (home-page "https://common-lisp.net/project/s-xml/")
3259 (synopsis "Simple XML parser implemented in Common Lisp")
3260 (description
3261 "S-XML is a simple XML parser implemented in Common Lisp. This XML
3262 parser implementation has the following features:
3263
3264 @itemize
3265 @item It works (handling many common XML usages).
3266 @item It is very small (the core is about 700 lines of code, including
3267 comments and whitespace).
3268 @item It has a core API that is simple, efficient and pure functional, much
3269 like that from SSAX (see also http://ssax.sourceforge.net).
3270 @item It supports different DOM models: an XSML-based one, an LXML-based one
3271 and a classic xml-element struct based one.
3272 @item It is reasonably time and space efficient (internally avoiding garbage
3273 generatation as much as possible).
3274 @item It does support CDATA.
3275 @item It should support the same character sets as your Common Lisp
3276 implementation.
3277 @item It does support XML name spaces.
3278 @end itemize
3279
3280 This XML parser implementation has the following limitations:
3281
3282 @itemize
3283 @item It does not support any special tags (like processing instructions).
3284 @item It is not validating, even skips DTD's all together.
3285 @end itemize\n")
3286 (license license:lgpl3+)))
3287
3288 (define-public cl-s-xml
3289 (sbcl-package->cl-source-package sbcl-s-xml))
3290
3291 (define-public ecl-s-xml
3292 (sbcl-package->ecl-package sbcl-s-xml))
3293
3294 (define-public sbcl-s-xml-rpc
3295 (package
3296 (name "sbcl-s-xml-rpc")
3297 (version "7")
3298 (source
3299 (origin
3300 (method url-fetch)
3301 (uri "https://common-lisp.net/project/s-xml-rpc/s-xml-rpc.tgz")
3302 (sha256
3303 (base32
3304 "02z7k163d51v0pzk8mn1xb6h5s6x64gjqkslhwm3a5x26k2gfs11"))))
3305 (build-system asdf-build-system/sbcl)
3306 (inputs
3307 `(("s-xml" ,sbcl-s-xml)))
3308 (home-page "https://common-lisp.net/project/s-xml-rpc/")
3309 (synopsis "Implementation of XML-RPC in Common Lisp for both client and server")
3310 (description
3311 "S-XML-RPC is an implementation of XML-RPC in Common Lisp for both
3312 client and server.")
3313 (license license:lgpl3+)))
3314
3315 (define-public cl-s-xml-rpc
3316 (sbcl-package->cl-source-package sbcl-s-xml-rpc))
3317
3318 (define-public ecl-s-xml-rpc
3319 (sbcl-package->ecl-package sbcl-s-xml-rpc))
3320
3321 (define-public sbcl-trivial-clipboard
3322 (let ((commit "5af3415d1484e6d69a1b5c178f24680d9fd01796"))
3323 (package
3324 (name "sbcl-trivial-clipboard")
3325 (version (git-version "0.0.0.0" "2" commit))
3326 (source
3327 (origin
3328 (method git-fetch)
3329 (uri (git-reference
3330 (url "https://github.com/snmsts/trivial-clipboard")
3331 (commit commit)))
3332 (file-name (git-file-name "trivial-clipboard" version))
3333 (sha256
3334 (base32
3335 "1gb515z5yq6h5548pb1fwhmb0hhq1ssyb78pvxh4alq799xipxs9"))))
3336 (build-system asdf-build-system/sbcl)
3337 (inputs
3338 `(("xclip" ,xclip)))
3339 (native-inputs
3340 `(("fiveam" ,sbcl-fiveam)))
3341 (arguments
3342 `(#:phases
3343 (modify-phases %standard-phases
3344 (add-after 'unpack 'fix-paths
3345 (lambda* (#:key inputs #:allow-other-keys)
3346 (substitute* "src/text.lisp"
3347 (("\\(executable-find \"xclip\"\\)")
3348 (string-append "(executable-find \""
3349 (assoc-ref inputs "xclip")
3350 "/bin/xclip\")"))))))))
3351 (home-page "https://github.com/snmsts/trivial-clipboard")
3352 (synopsis "Access system clipboard in Common Lisp")
3353 (description
3354 "@command{trivial-clipboard} gives access to the system clipboard.")
3355 (license license:expat))))
3356
3357 (define-public cl-trivial-clipboard
3358 (sbcl-package->cl-source-package sbcl-trivial-clipboard))
3359
3360 (define-public ecl-trivial-clipboard
3361 (sbcl-package->ecl-package sbcl-trivial-clipboard))
3362
3363 (define-public sbcl-trivial-backtrace
3364 (let ((commit "ca81c011b86424a381a7563cea3b924f24e6fbeb")
3365 (revision "1"))
3366 (package
3367 (name "sbcl-trivial-backtrace")
3368 (version (git-version "0.0.0" revision commit))
3369 (source
3370 (origin
3371 (method git-fetch)
3372 (uri (git-reference
3373 (url "https://github.com/gwkkwg/trivial-backtrace.git")
3374 (commit commit)))
3375 (file-name (git-file-name "trivial-backtrace" version))
3376 (sha256
3377 (base32 "10p41p43skj6cimdg8skjy7372s8v2xpkg8djjy0l8rm45i654k1"))))
3378 (build-system asdf-build-system/sbcl)
3379 (inputs
3380 `(("sbcl-lift" ,sbcl-lift)))
3381 (arguments
3382 `(#:phases
3383 (modify-phases %standard-phases
3384 (add-after 'check 'delete-test-results
3385 (lambda* (#:key outputs #:allow-other-keys)
3386 (let ((test-results (string-append (assoc-ref outputs "out")
3387 "/share/common-lisp/"
3388 (%lisp-type) "-source"
3389 "/trivial-backtrace"
3390 "/test-results")))
3391 (when (file-exists? test-results)
3392 (delete-file-recursively test-results)))
3393 #t)))))
3394 (home-page "https://common-lisp.net/project/trivial-backtrace/")
3395 (synopsis "Portable simple API to work with backtraces in Common Lisp")
3396 (description
3397 "On of the many things that didn't quite get into the Common Lisp
3398 standard was how to get a Lisp to output its call stack when something has
3399 gone wrong. As such, each Lisp has developed its own notion of what to
3400 display, how to display it, and what sort of arguments can be used to
3401 customize it. @code{trivial-backtrace} is a simple solution to generating a
3402 backtrace portably.")
3403 (license license:expat))))
3404
3405 (define-public cl-trivial-backtrace
3406 (sbcl-package->cl-source-package sbcl-trivial-backtrace))
3407
3408 (define-public sbcl-rfc2388
3409 (let ((commit "591bcf7e77f2c222c43953a80f8c297751dc0c4e")
3410 (revision "1"))
3411 (package
3412 (name "sbcl-rfc2388")
3413 (version (git-version "0.0.0" revision commit))
3414 (source
3415 (origin
3416 (method git-fetch)
3417 (uri (git-reference
3418 (url "https://github.com/jdz/rfc2388.git")
3419 (commit commit)))
3420 (file-name (git-file-name "rfc2388" version))
3421 (sha256
3422 (base32 "0phh5n3clhl9ji8jaxrajidn22d3f0aq87mlbfkkxlnx2pnw694k"))))
3423 (build-system asdf-build-system/sbcl)
3424 (home-page "https://github.com/jdz/rfc2388/")
3425 (synopsis "An implementation of RFC 2388 in Common Lisp")
3426 (description
3427 "This package contains an implementation of RFC 2388, which is used to
3428 process form data posted with HTTP POST method using enctype
3429 \"multipart/form-data\".")
3430 (license license:bsd-2))))
3431
3432 (define-public cl-rfc2388
3433 (sbcl-package->cl-source-package sbcl-rfc2388))
3434
3435 (define-public sbcl-md5
3436 (package
3437 (name "sbcl-md5")
3438 (version "2.0.4")
3439 (source
3440 (origin
3441 (method url-fetch)
3442 (uri (string-append
3443 "https://github.com/pmai/md5/archive/release-" version ".tar.gz"))
3444 (sha256
3445 (base32 "19yl9n0pjdz5gw4qi711lka97xcd9f81ylg434hk7jwn9f2s6w11"))))
3446 (build-system asdf-build-system/sbcl)
3447 (home-page "https://github.com/pmai/md5")
3448 (synopsis
3449 "Common Lisp implementation of the MD5 Message-Digest Algorithm (RFC 1321)")
3450 (description
3451 "This package implements The MD5 Message-Digest Algorithm, as defined in
3452 RFC 1321 by R. Rivest, published April 1992.")
3453 (license license:public-domain)))
3454
3455 (define-public cl-md5
3456 (sbcl-package->cl-source-package sbcl-md5))
3457
3458 (define-public sbcl-cl+ssl
3459 (let ((commit "141ae91416bc40f1618dc07e48429b84388aa599")
3460 (revision "1"))
3461 (package
3462 (name "sbcl-cl+ssl")
3463 (version (git-version "0.0.0" revision commit))
3464 (source
3465 (origin
3466 (method git-fetch)
3467 (uri (git-reference
3468 (url "https://github.com/cl-plus-ssl/cl-plus-ssl.git")
3469 (commit commit)))
3470 (file-name (git-file-name "cl+ssl" version))
3471 (sha256
3472 (base32 "1s0hg1h9sf8q89v0yrxmzg5f5sng29rgx3n21r9h9yql8351myan"))))
3473 (build-system asdf-build-system/sbcl)
3474 (arguments
3475 '(#:phases
3476 (modify-phases %standard-phases
3477 (add-after 'unpack 'fix-paths
3478 (lambda* (#:key inputs #:allow-other-keys)
3479 (substitute* "src/reload.lisp"
3480 (("libssl.so" all)
3481 (string-append
3482 (assoc-ref inputs "openssl") "/lib/" all))))))))
3483 (inputs
3484 `(("openssl" ,openssl)
3485 ("sbcl-cffi" ,sbcl-cffi)
3486 ("sbcl-trivial-gray-streams" ,sbcl-trivial-gray-streams)
3487 ("sbcl-flexi-streams" ,sbcl-flexi-streams)
3488 ("sbcl-bordeaux-threads" ,sbcl-bordeaux-threads)
3489 ("sbcl-trivial-garbage" ,sbcl-trivial-garbage)
3490 ("sbcl-alexandria" ,sbcl-alexandria)
3491 ("sbcl-trivial-features" ,sbcl-trivial-features)))
3492 (home-page "http://common-lisp.net/project/cl-plus-ssl/")
3493 (synopsis "Common Lisp bindings to OpenSSL")
3494 (description
3495 "This library is a fork of SSL-CMUCL. The original SSL-CMUCL source
3496 code was written by Eric Marsden and includes contributions by Jochen Schmidt.
3497 Development into CL+SSL was done by David Lichteblau.")
3498 (license license:expat))))
3499
3500 (define-public cl-cl+ssl
3501 (sbcl-package->cl-source-package sbcl-cl+ssl))
3502
3503 (define-public sbcl-kmrcl
3504 (let ((version "1.109.0")
3505 (commit "5260068b2eb735af6796740c2db4955afac21636")
3506 (revision "1"))
3507 (package
3508 (name "sbcl-kmrcl")
3509 (version (git-version version revision commit))
3510 (source
3511 (origin
3512 (method git-fetch)
3513 (uri (git-reference
3514 (url "http://git.kpe.io/kmrcl.git/")
3515 (commit commit)))
3516 (file-name (git-file-name name version))
3517 (sha256
3518 (base32 "1va7xjgzfv674bpsli674i7zj3f7wg5kxic41kz18r6hh4n52dfv"))))
3519 (build-system asdf-build-system/sbcl)
3520 (arguments
3521 ;; Tests fail with: :FORCE and :FORCE-NOT arguments not allowed in a
3522 ;; nested call to ASDF/OPERATE:OPERATE unless identically to toplevel
3523 '(#:tests? #f))
3524 (inputs
3525 `(("sbcl-rt" ,sbcl-rt)))
3526 (home-page "http://files.kpe.io/kmrcl/")
3527 (synopsis "General utilities for Common Lisp programs")
3528 (description
3529 "KMRCL is a collection of utilities used by a number of Kevin
3530 Rosenberg's CL packages.")
3531 (license license:llgpl))))
3532
3533 (define-public cl-kmrcl
3534 (sbcl-package->cl-source-package sbcl-kmrcl))
3535
3536 (define-public sbcl-cl-base64
3537 (let ((version "3.3.3"))
3538 (package
3539 (name "sbcl-cl-base64")
3540 (version version)
3541 (source
3542 (origin
3543 (method git-fetch)
3544 (uri (git-reference
3545 (url "http://git.kpe.io/cl-base64.git")
3546 (commit (string-append "v" version))))
3547 (file-name (git-file-name "cl-base64" version))
3548 (sha256
3549 (base32 "1dw6j7n6gsd2qa0p0rbsjxj00acxx3i9ca1qkgl0liy8lpnwkypl"))))
3550 (build-system asdf-build-system/sbcl)
3551 (arguments
3552 ;; Tests fail with: :FORCE and :FORCE-NOT arguments not allowed
3553 ;; in a nested call to ASDF/OPERATE:OPERATE unless identically
3554 ;; to toplevel
3555 '(#:tests? #f))
3556 (inputs
3557 `(("sbcl-ptester" ,sbcl-ptester)
3558 ("sbcl-kmrcl" ,sbcl-kmrcl)))
3559 (home-page "http://files.kpe.io/cl-base64/")
3560 (synopsis
3561 "Common Lisp package to encode and decode base64 with URI support")
3562 (description
3563 "This package provides highly optimized base64 encoding and decoding.
3564 Besides conversion to and from strings, integer conversions are supported.
3565 Encoding with Uniform Resource Identifiers is supported by using a modified
3566 encoding table that uses only URI-compatible characters.")
3567 (license license:bsd-3))))
3568
3569 (define-public cl-base64
3570 (sbcl-package->cl-source-package sbcl-cl-base64))
3571
3572 (define-public sbcl-chunga
3573 (package
3574 (name "sbcl-chunga")
3575 (version "1.1.7")
3576 (source
3577 (origin
3578 (method git-fetch)
3579 (uri (git-reference
3580 (url "https://github.com/edicl/chunga.git")
3581 (commit (string-append "v" version))))
3582 (file-name (git-file-name name version))
3583 (sha256
3584 (base32 "0jzn3nyb3f22gm983rfk99smqs3mhb9ivjmasvhq9qla5cl9pyhd"))))
3585 (build-system asdf-build-system/sbcl)
3586 (inputs
3587 `(("sbcl-trivial-gray-streams" ,sbcl-trivial-gray-streams)))
3588 (home-page "https://edicl.github.io/chunga/")
3589 (synopsis "Portable chunked streams for Common Lisp")
3590 (description
3591 "Chunga implements streams capable of chunked encoding on demand as
3592 defined in RFC 2616.")
3593 (license license:bsd-2)))
3594
3595 (define-public cl-chunga
3596 (sbcl-package->cl-source-package sbcl-chunga))
3597
3598 (define-public sbcl-cl-who
3599 (let ((version "1.1.4")
3600 (commit "2c08caa4bafba720409af9171feeba3f32e86d32")
3601 (revision "1"))
3602 (package
3603 (name "sbcl-cl-who")
3604 (version (git-version version revision commit))
3605 (source
3606 (origin
3607 (method git-fetch)
3608 (uri (git-reference
3609 (url "https://github.com/edicl/cl-who.git")
3610 (commit commit)))
3611 (file-name (git-file-name name version))
3612 (sha256
3613 (base32
3614 "0yjb6sr3yazm288m318kqvj9xk8rm9n1lpimgf65ymqv0i5agxsb"))))
3615 (build-system asdf-build-system/sbcl)
3616 (native-inputs
3617 `(("sbcl-flexi-streams" ,sbcl-flexi-streams)))
3618 (home-page "https://edicl.github.io/cl-who/")
3619 (synopsis "Yet another Lisp markup language")
3620 (description
3621 "There are plenty of Lisp Markup Languages out there - every Lisp
3622 programmer seems to write at least one during his career - and CL-WHO (where
3623 WHO means \"with-html-output\" for want of a better acronym) is probably just
3624 as good or bad as the next one.")
3625 (license license:bsd-2))))
3626
3627 (define-public cl-cl-who
3628 (sbcl-package->cl-source-package sbcl-cl-who))
3629
3630 (define-public sbcl-chipz
3631 (let ((version "0.8")
3632 (commit "75dfbc660a5a28161c57f115adf74c8a926bfc4d")
3633 (revision "1"))
3634 (package
3635 (name "sbcl-chipz")
3636 (version (git-version version revision commit))
3637 (source
3638 (origin
3639 (method git-fetch)
3640 (uri (git-reference
3641 (url "https://github.com/froydnj/chipz.git")
3642 (commit commit)))
3643 (file-name (git-file-name name version))
3644 (sha256
3645 (base32
3646 "0plx4rs39zbs4gjk77h4a2q11zpy75fh9v8hnxrvsf8fnakajhwg"))))
3647 (build-system asdf-build-system/sbcl)
3648 (native-inputs
3649 `(("sbcl-flexi-streams" ,sbcl-flexi-streams)))
3650 (home-page "http://method-combination.net/lisp/chipz/")
3651 (synopsis
3652 "Common Lisp library for decompressing deflate, zlib, gzip, and bzip2
3653 data")
3654 (description
3655 "DEFLATE data, defined in RFC1951, forms the core of popular
3656 compression formats such as zlib (RFC 1950) and gzip (RFC 1952). As such,
3657 Chipz also provides for decompressing data in those formats as well. BZIP2 is
3658 the format used by the popular compression tool bzip2.")
3659 ;; The author describes it as "MIT-like"
3660 (license license:expat))))
3661
3662 (define-public cl-chipz
3663 (sbcl-package->cl-source-package sbcl-chipz))
3664
3665 (define-public sbcl-drakma
3666 (package
3667 (name "sbcl-drakma")
3668 (version "2.0.7")
3669 (source
3670 (origin
3671 (method git-fetch)
3672 (uri (git-reference
3673 (url "https://github.com/edicl/drakma.git")
3674 (commit (string-append "v" version))))
3675 (file-name (git-file-name name version))
3676 (sha256
3677 (base32
3678 "1441idnyif9xzx3ln1p3fg36k2v9h4wasjqrzc8y52j61420qpci"))))
3679 (build-system asdf-build-system/sbcl)
3680 (inputs
3681 `(("sbcl-puri" ,sbcl-puri)
3682 ("sbcl-cl-base64" ,sbcl-cl-base64)
3683 ("sbcl-chunga" ,sbcl-chunga)
3684 ("sbcl-flexi-streams" ,sbcl-flexi-streams)
3685 ("sbcl-cl-ppcre" ,sbcl-cl-ppcre)
3686 ("sbcl-chipz" ,sbcl-chipz)
3687 ("sbcl-usocket" ,sbcl-usocket)
3688 ("sbcl-cl+ssl" ,sbcl-cl+ssl)))
3689 (native-inputs
3690 `(("sbcl-fiveam" ,sbcl-fiveam)))
3691 (home-page "https://edicl.github.io/drakma/")
3692 (synopsis "HTTP client written in Common Lisp")
3693 (description
3694 "Drakma is a full-featured HTTP client implemented in Common Lisp. It
3695 knows how to handle HTTP/1.1 chunking, persistent connections, re-usable
3696 sockets, SSL, continuable uploads, file uploads, cookies, and more.")
3697 (license license:bsd-2)))
3698
3699 (define-public cl-drakma
3700 (sbcl-package->cl-source-package sbcl-drakma))
3701
3702 (define-public ecl-drakma
3703 (sbcl-package->ecl-package sbcl-drakma))
3704
3705 (define-public sbcl-hunchentoot
3706 (package
3707 (name "sbcl-hunchentoot")
3708 (version "1.2.38")
3709 (source
3710 (origin
3711 (method git-fetch)
3712 (uri (git-reference
3713 (url "https://github.com/edicl/hunchentoot.git")
3714 (commit (string-append "v" version))))
3715 (file-name (git-file-name "hunchentoot" version))
3716 (sha256
3717 (base32 "1anpcad7w045m4rsjs1f3xdhjwx5cppq1h0vlb3q7dz81fi3i6yq"))))
3718 (build-system asdf-build-system/sbcl)
3719 (native-inputs
3720 `(("sbcl-cl-who" ,sbcl-cl-who)
3721 ("sbcl-drakma" ,sbcl-drakma)))
3722 (inputs
3723 `(("sbcl-chunga" ,sbcl-chunga)
3724 ("sbcl-cl-base64" ,sbcl-cl-base64)
3725 ("sbcl-cl-fad" ,sbcl-cl-fad)
3726 ("sbcl-cl-ppcre" ,sbcl-cl-ppcre)
3727 ("sbcl-flexi-streams" ,sbcl-flexi-streams)
3728 ("sbcl-cl+ssl" ,sbcl-cl+ssl)
3729 ("sbcl-md5" ,sbcl-md5)
3730 ("sbcl-rfc2388" ,sbcl-rfc2388)
3731 ("sbcl-trivial-backtrace" ,sbcl-trivial-backtrace)
3732 ("sbcl-usocket" ,sbcl-usocket)))
3733 (home-page "https://edicl.github.io/hunchentoot/")
3734 (synopsis "Web server written in Common Lisp")
3735 (description
3736 "Hunchentoot is a web server written in Common Lisp and at the same
3737 time a toolkit for building dynamic websites. As a stand-alone web server,
3738 Hunchentoot is capable of HTTP/1.1 chunking (both directions), persistent
3739 connections (keep-alive), and SSL.")
3740 (license license:bsd-2)))
3741
3742 (define-public cl-hunchentoot
3743 (sbcl-package->cl-source-package sbcl-hunchentoot))
3744
3745 (define-public sbcl-trivial-types
3746 (package
3747 (name "sbcl-trivial-types")
3748 (version "0.0.1")
3749 (source
3750 (origin
3751 (method git-fetch)
3752 (uri (git-reference
3753 (url "https://github.com/m2ym/trivial-types.git")
3754 (commit "ee869f2b7504d8aa9a74403641a5b42b16f47d88")))
3755 (file-name (git-file-name name version))
3756 (sha256
3757 (base32 "1s4cp9bdlbn8447q7w7f1wkgwrbvfzp20mgs307l5pxvdslin341"))))
3758 (build-system asdf-build-system/sbcl)
3759 (home-page "https://github.com/m2ym/trivial-types")
3760 (synopsis "Trivial type definitions for Common Lisp")
3761 (description
3762 "TRIVIAL-TYPES provides missing but important type definitions such as
3763 PROPER-LIST, ASSOCIATION-LIST, PROPERTY-LIST and TUPLE.")
3764 (license license:llgpl)))
3765
3766 (define-public cl-trivial-types
3767 (sbcl-package->cl-source-package sbcl-trivial-types))
3768
3769 (define-public sbcl-cl-syntax
3770 (package
3771 (name "sbcl-cl-syntax")
3772 (version "0.0.3")
3773 (source
3774 (origin
3775 (method git-fetch)
3776 (uri (git-reference
3777 (url "https://github.com/m2ym/cl-syntax.git")
3778 (commit "03f0c329bbd55b8622c37161e6278366525e2ccc")))
3779 (file-name (git-file-name "cl-syntax" version))
3780 (sha256
3781 (base32 "17ran8xp77asagl31xv8w819wafh6whwfc9p6dgx22ca537gyl4y"))))
3782 (build-system asdf-build-system/sbcl)
3783 (arguments
3784 '(#:asd-file "cl-syntax.asd"
3785 #:asd-system-name "cl-syntax"))
3786 (inputs `(("sbcl-trivial-types" ,sbcl-trivial-types)
3787 ("sbcl-named-readtables" ,sbcl-named-readtables)))
3788 (home-page "https://github.com/m2ym/cl-syntax")
3789 (synopsis "Reader Syntax Coventions for Common Lisp and SLIME")
3790 (description
3791 "CL-SYNTAX provides Reader Syntax Coventions for Common Lisp and SLIME.")
3792 (license license:llgpl)))
3793
3794 (define-public cl-syntax
3795 (sbcl-package->cl-source-package sbcl-cl-syntax))
3796
3797 (define-public sbcl-cl-annot
3798 (let ((commit "c99e69c15d935eabc671b483349a406e0da9518d")
3799 (revision "1"))
3800 (package
3801 (name "sbcl-cl-annot")
3802 (version (git-version "0.0.0" revision commit))
3803 (source
3804 (origin
3805 (method git-fetch)
3806 (uri (git-reference
3807 (url "https://github.com/m2ym/cl-annot.git")
3808 (commit commit)))
3809 (file-name (git-file-name name version))
3810 (sha256
3811 (base32 "1wq1gs9jjd5m6iwrv06c2d7i5dvqsfjcljgbspfbc93cg5xahk4n"))))
3812 (build-system asdf-build-system/sbcl)
3813 (arguments
3814 '(#:asd-file "cl-annot.asd"
3815 #:asd-system-name "cl-annot"))
3816 (inputs
3817 `(("sbcl-alexandria" ,sbcl-alexandria)))
3818 (home-page "https://github.com/m2ym/cl-annot")
3819 (synopsis "Python-like Annotation Syntax for Common Lisp.")
3820 (description
3821 "@code{cl-annot} is an general annotation library for Common Lisp.")
3822 (license license:llgpl))))
3823
3824 (define-public cl-annot
3825 (sbcl-package->cl-source-package sbcl-cl-annot))
3826
3827 (define-public sbcl-cl-syntax-annot
3828 (package
3829 (name "sbcl-cl-syntax-annot")
3830 (version "0.0.3")
3831 (source
3832 (origin
3833 (method git-fetch)
3834 (uri (git-reference
3835 (url "https://github.com/m2ym/cl-syntax.git")
3836 (commit "03f0c329bbd55b8622c37161e6278366525e2ccc")))
3837 (file-name (git-file-name name version))
3838 (sha256
3839 (base32 "17ran8xp77asagl31xv8w819wafh6whwfc9p6dgx22ca537gyl4y"))))
3840 (build-system asdf-build-system/sbcl)
3841 (arguments
3842 '(#:asd-file "cl-syntax-annot.asd"
3843 #:asd-system-name "cl-syntax-annot"))
3844 (inputs
3845 `(("sbcl-cl-syntax" ,sbcl-cl-syntax)
3846 ("sbcl-cl-annot" ,sbcl-cl-annot)))
3847 (home-page "https://github.com/m2ym/cl-syntax")
3848 (synopsis "Reader Syntax Coventions for Common Lisp and SLIME")
3849 (description
3850 "CL-SYNTAX provides Reader Syntax Coventions for Common Lisp and
3851 SLIME.")
3852 (license license:llgpl)))
3853
3854 (define-public cl-syntax-annot
3855 (sbcl-package->cl-source-package sbcl-cl-syntax-annot))
3856
3857 (define-public sbcl-cl-utilities
3858 (let ((commit "dce2d2f6387091ea90357a130fa6d13a6776884b")
3859 (revision "1"))
3860 (package
3861 (name "sbcl-cl-utilities")
3862 (version (git-version "0.0.0" revision commit))
3863 (source
3864 (origin
3865 (method url-fetch)
3866 (uri
3867 (string-append
3868 "https://gitlab.common-lisp.net/cl-utilities/cl-utilities/-/"
3869 "archive/" commit "/cl-utilities-" commit ".tar.gz"))
3870 (sha256
3871 (base32 "1r46v730yf96nk2vb24qmagv9x96xvd08abqwhf02ghgydv1a7z2"))))
3872 (build-system asdf-build-system/sbcl)
3873 (arguments
3874 '(#:asd-file "cl-utilities.asd"
3875 #:asd-system-name "cl-utilities"
3876 #:phases
3877 (modify-phases %standard-phases
3878 (add-after 'unpack 'fix-paths
3879 (lambda* (#:key inputs #:allow-other-keys)
3880 (substitute* "rotate-byte.lisp"
3881 (("in-package :cl-utilities)" all)
3882 "in-package :cl-utilities)\n\n#+sbcl\n(require :sb-rotate-byte)")))))))
3883 (home-page "http://common-lisp.net/project/cl-utilities")
3884 (synopsis "A collection of semi-standard utilities")
3885 (description
3886 "On Cliki.net <http://www.cliki.net/Common%20Lisp%20Utilities>, there
3887 is a collection of Common Lisp Utilities, things that everybody writes since
3888 they're not part of the official standard. There are some very useful things
3889 there; the only problems are that they aren't implemented as well as you'd
3890 like (some aren't implemented at all) and they aren't conveniently packaged
3891 and maintained. It takes quite a bit of work to carefully implement utilities
3892 for common use, commented and documented, with error checking placed
3893 everywhere some dumb user might make a mistake.")
3894 (license license:public-domain))))
3895
3896 (define-public cl-utilities
3897 (sbcl-package->cl-source-package sbcl-cl-utilities))
3898
3899 (define-public sbcl-map-set
3900 (let ((commit "7b4b545b68b8")
3901 (revision "1"))
3902 (package
3903 (name "sbcl-map-set")
3904 (version (git-version "0.0.0" revision commit))
3905 (source
3906 (origin
3907 (method url-fetch)
3908 (uri (string-append
3909 "https://bitbucket.org/tarballs_are_good/map-set/get/"
3910 commit ".tar.gz"))
3911 (sha256
3912 (base32 "1sx5j5qdsy5fklspfammwb16kjrhkggdavm922a9q86jm5l0b239"))))
3913 (build-system asdf-build-system/sbcl)
3914 (home-page "https://bitbucket.org/tarballs_are_good/map-set")
3915 (synopsis "Set-like data structure")
3916 (description
3917 "Implementation of a set-like data structure with constant time
3918 addition, removal, and random selection.")
3919 (license license:bsd-3))))
3920
3921 (define-public cl-map-set
3922 (sbcl-package->cl-source-package sbcl-map-set))
3923
3924 (define-public sbcl-quri
3925 (let ((commit "76b75103f21ead092c9f715512fa82441ef61185")
3926 (revision "1"))
3927 (package
3928 (name "sbcl-quri")
3929 (version (git-version "0.1.0" revision commit))
3930 (source
3931 (origin
3932 (method git-fetch)
3933 (uri (git-reference
3934 (url "https://github.com/fukamachi/quri.git")
3935 (commit commit)))
3936 (file-name (git-file-name name version))
3937 (sha256
3938 (base32 "1ccbxsgzdibmzq33mmbmmz9vwl6l03xh6nbpsh1hkdvdcl7q0a60"))))
3939 (build-system asdf-build-system/sbcl)
3940 (arguments
3941 ;; Tests fail with: Component QURI-ASD::QURI-TEST not found,
3942 ;; required by #<SYSTEM "quri">. Why?
3943 '(#:tests? #f))
3944 (native-inputs `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
3945 ("sbcl-prove" ,sbcl-prove)))
3946 (inputs `(("sbcl-babel" ,sbcl-babel)
3947 ("sbcl-split-sequence" ,sbcl-split-sequence)
3948 ("sbcl-cl-utilities" ,sbcl-cl-utilities)
3949 ("sbcl-alexandria" ,sbcl-alexandria)))
3950 (home-page "https://github.com/fukamachi/quri")
3951 (synopsis "Yet another URI library for Common Lisp")
3952 (description
3953 "QURI (pronounced \"Q-ree\") is yet another URI library for Common
3954 Lisp. It is intended to be a replacement of PURI.")
3955 (license license:bsd-3))))
3956
3957 (define-public cl-quri
3958 (sbcl-package->cl-source-package sbcl-quri))
3959
3960 (define-public sbcl-myway
3961 (let ((commit "286230082a11f879c18b93f17ca571c5f676bfb7")
3962 (revision "1"))
3963 (package
3964 (name "sbcl-myway")
3965 (version (git-version "0.1.0" revision commit))
3966 (source
3967 (origin
3968 (method git-fetch)
3969 (uri (git-reference
3970 (url "https://github.com/fukamachi/myway.git")
3971 (commit commit)))
3972 (file-name (git-file-name "myway" version))
3973 (sha256
3974 (base32 "0briia9bk3lbr0frnx39d1qg6i38dm4j6z9w3yga3d40k6df4a90"))))
3975 (build-system asdf-build-system/sbcl)
3976 (arguments
3977 ;; Tests fail with: Component MYWAY-ASD::MYWAY-TEST not found, required
3978 ;; by #<SYSTEM "myway">. Why?
3979 '(#:tests? #f))
3980 (native-inputs
3981 `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
3982 ("sbcl-prove" ,sbcl-prove)))
3983 (inputs
3984 `(("sbcl-cl-ppcre" ,sbcl-cl-ppcre)
3985 ("sbcl-quri" ,sbcl-quri)
3986 ("sbcl-map-set" ,sbcl-map-set)))
3987 (home-page "https://github.com/fukamachi/myway")
3988 (synopsis "Sinatra-compatible URL routing library for Common Lisp")
3989 (description "My Way is a Sinatra-compatible URL routing library.")
3990 (license license:llgpl))))
3991
3992 (define-public cl-myway
3993 (sbcl-package->cl-source-package sbcl-myway))
3994
3995 (define-public sbcl-xsubseq
3996 (let ((commit "5ce430b3da5cda3a73b9cf5cee4df2843034422b")
3997 (revision "1"))
3998 (package
3999 (name "sbcl-xsubseq")
4000 (version (git-version "0.0.1" revision commit))
4001 (source
4002 (origin
4003 (method git-fetch)
4004 (uri (git-reference
4005 (url "https://github.com/fukamachi/xsubseq")
4006 (commit commit)))
4007 (file-name (git-file-name name version))
4008 (sha256
4009 (base32 "1xz79q0p2mclf3sqjiwf6izdpb6xrsr350bv4mlmdlm6rg5r99px"))))
4010 (build-system asdf-build-system/sbcl)
4011 (arguments
4012 ;; Tests fail with: Component XSUBSEQ-ASD::XSUBSEQ-TEST not found,
4013 ;; required by #<SYSTEM "xsubseq">. Why?
4014 '(#:tests? #f))
4015 (native-inputs
4016 `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
4017 ("sbcl-prove" ,sbcl-prove)))
4018 (home-page "https://github.com/fukamachi/xsubseq")
4019 (synopsis "Efficient way to use \"subseq\"s in Common Lisp")
4020 (description
4021 "XSubseq provides functions to be able to handle \"subseq\"s more
4022 effieiently.")
4023 (license license:bsd-2))))
4024
4025 (define-public cl-xsubseq
4026 (sbcl-package->cl-source-package sbcl-xsubseq))
4027
4028 (define-public sbcl-smart-buffer
4029 (let ((commit "09b9a9a0b3abaa37abe9a730f5aac2643dca4e62")
4030 (revision "1"))
4031 (package
4032 (name "sbcl-smart-buffer")
4033 (version (git-version "0.0.1" revision commit))
4034 (source
4035 (origin
4036 (method git-fetch)
4037 (uri (git-reference
4038 (url "https://github.com/fukamachi/smart-buffer")
4039 (commit commit)))
4040 (file-name (git-file-name name version))
4041 (sha256
4042 (base32 "0qz1zzxx0wm5ff7gpgsq550a59p0qj594zfmm2rglj97dahj54l7"))))
4043 (build-system asdf-build-system/sbcl)
4044 (arguments
4045 ;; Tests fail with: Component SMART-BUFFER-ASD::SMART-BUFFER-TEST not
4046 ;; found, required by #<SYSTEM "smart-buffer">. Why?
4047 `(#:tests? #f))
4048 (native-inputs
4049 `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
4050 ("sbcl-prove" ,sbcl-prove)))
4051 (inputs
4052 `(("sbcl-xsubseq" ,sbcl-xsubseq)
4053 ("sbcl-flexi-streams" ,sbcl-flexi-streams)))
4054 (home-page "https://github.com/fukamachi/smart-buffer")
4055 (synopsis "Smart octets buffer")
4056 (description
4057 "Smart-buffer provides an output buffer which changes the destination
4058 depending on content size.")
4059 (license license:bsd-3))))
4060
4061 (define-public cl-smart-buffer
4062 (sbcl-package->cl-source-package sbcl-smart-buffer))
4063
4064 (define-public sbcl-fast-http
4065 (let ((commit "f9e7597191bae380503e20724fd493a24d024935")
4066 (revision "1"))
4067 (package
4068 (name "sbcl-fast-http")
4069 (version (git-version "0.2.0" revision commit))
4070 (source
4071 (origin
4072 (method git-fetch)
4073 (uri (git-reference
4074 (url "https://github.com/fukamachi/fast-http")
4075 (commit commit)))
4076 (file-name (git-file-name name version))
4077 (sha256
4078 (base32 "0qdmwv2zm0sizxdb8nnclgwl0nfjcbjaimbakavikijw7lr9b4jp"))))
4079 (build-system asdf-build-system/sbcl)
4080 (arguments
4081 ;; Tests fail with: Component FAST-HTTP-ASD::FAST-HTTP-TEST not found,
4082 ;; required by #<SYSTEM "fast-http">. Why?
4083 `(#:tests? #f))
4084 (native-inputs
4085 `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
4086 ("sbcl-prove" ,sbcl-prove)))
4087 (inputs
4088 `(("sbcl-alexandria" ,sbcl-alexandria)
4089 ("sbcl-proc-parse" ,sbcl-proc-parse)
4090 ("sbcl-xsubseq" ,sbcl-xsubseq)
4091 ("sbcl-smart-buffer" ,sbcl-smart-buffer)
4092 ("sbcl-cl-utilities" ,sbcl-cl-utilities)))
4093 (home-page "https://github.com/fukamachi/fast-http")
4094 (synopsis "HTTP request/response parser for Common Lisp")
4095 (description
4096 "@code{fast-http} is a HTTP request/response protocol parser for Common
4097 Lisp.")
4098 ;; Author specified the MIT license
4099 (license license:expat))))
4100
4101 (define-public cl-fast-http
4102 (sbcl-package->cl-source-package sbcl-fast-http))
4103
4104 (define-public sbcl-static-vectors
4105 (package
4106 (name "sbcl-static-vectors")
4107 (version "1.8.4")
4108 (source
4109 (origin
4110 (method git-fetch)
4111 (uri (git-reference
4112 (url "https://github.com/sionescu/static-vectors.git")
4113 (commit (string-append "v" version))))
4114 (file-name (git-file-name name version))
4115 (sha256
4116 (base32 "0qvf9z6bhwhm8n45fjwkm7j8dcb58szfvndky65cyn4lpdval7m1"))))
4117 (native-inputs
4118 `(("sbcl-fiveam" ,sbcl-fiveam)))
4119 (inputs
4120 `(("sbcl-cffi-grovel" ,sbcl-cffi-grovel)
4121 ("sbcl-cffi" ,sbcl-cffi)))
4122 (build-system asdf-build-system/sbcl)
4123 (home-page "https://github.com/sionescu/static-vectors")
4124 (synopsis "Allocate SIMPLE-ARRAYs in static memory")
4125 (description
4126 "With @code{static-vectors}, you can create vectors allocated in static
4127 memory.")
4128 (license license:expat)))
4129
4130 (define-public cl-static-vectors
4131 (sbcl-package->cl-source-package sbcl-static-vectors))
4132
4133 (define-public ecl-static-vectors
4134 (sbcl-package->ecl-package sbcl-static-vectors))
4135
4136 (define-public sbcl-marshal
4137 (let ((commit "eff1b15f2b0af2f26f71ad6a4dd5c4beab9299ec")
4138 (revision "1"))
4139 (package
4140 (name "sbcl-marshal")
4141 (version (git-version "1.3.0" revision commit))
4142 (source
4143 (origin
4144 (method git-fetch)
4145 (uri (git-reference
4146 (url "https://github.com/wlbr/cl-marshal.git")
4147 (commit commit)))
4148 (file-name (git-file-name name version))
4149 (sha256
4150 (base32 "08qs6fhk38xpkkjkpcj92mxx0lgy4ygrbbzrmnivdx281syr0gwh"))))
4151 (build-system asdf-build-system/sbcl)
4152 (home-page "https://github.com/wlbr/cl-marshal")
4153 (synopsis "Simple (de)serialization of Lisp datastructures")
4154 (description
4155 "Simple and fast marshalling of Lisp datastructures. Convert any object
4156 into a string representation, put it on a stream an revive it from there.
4157 Only minimal changes required to make your CLOS objects serializable.")
4158 (license license:expat))))
4159
4160 (define-public cl-marshal
4161 (sbcl-package->cl-source-package sbcl-marshal))
4162
4163 (define-public sbcl-checkl
4164 (let ((commit "80328800d047fef9b6e32dfe6bdc98396aee3cc9")
4165 (revision "1"))
4166 (package
4167 (name "sbcl-checkl")
4168 (version (git-version "0.0.0" revision commit))
4169 (source
4170 (origin
4171 (method git-fetch)
4172 (uri (git-reference
4173 (url "https://github.com/rpav/CheckL.git")
4174 (commit commit)))
4175 (file-name (git-file-name name version))
4176 (sha256
4177 (base32 "0bpisihx1gay44xmyr1dmhlwh00j0zzi04rp9fy35i95l2r4xdlx"))))
4178 (build-system asdf-build-system/sbcl)
4179 (arguments
4180 ;; Error while trying to load definition for system checkl-test from
4181 ;; pathname [...]/checkl-test.asd: The function CHECKL:DEFINE-TEST-OP
4182 ;; is undefined.
4183 '(#:tests? #f))
4184 (native-inputs
4185 `(("sbcl-fiveam" ,sbcl-fiveam)))
4186 (inputs
4187 `(("sbcl-marshal" ,sbcl-marshal)))
4188 (home-page "https://github.com/rpav/CheckL/")
4189 (synopsis "Dynamic testing for Common Lisp")
4190 (description
4191 "CheckL lets you write tests dynamically, it checks resulting values
4192 against the last run.")
4193 ;; The author specifies both LLGPL and "BSD", but the "BSD" license
4194 ;; isn't specified anywhere, so I don't know which kind. LLGPL is the
4195 ;; stronger of the two and so I think only listing this should suffice.
4196 (license license:llgpl))))
4197
4198 (define-public cl-checkl
4199 (sbcl-package->cl-source-package sbcl-checkl))
4200
4201 (define-public sbcl-fast-io
4202 (let ((commit "dc3a71db7e9b756a88781ae9c342fe9d4bbab51c")
4203 (revision "1"))
4204 (package
4205 (name "sbcl-fast-io")
4206 (version (git-version "1.0.0" revision commit))
4207 (source
4208 (origin
4209 (method git-fetch)
4210 (uri (git-reference
4211 (url "https://github.com/rpav/fast-io.git")
4212 (commit commit)))
4213 (file-name (git-file-name name version))
4214 (sha256
4215 (base32 "1jsp6xvi26ln6fdy5j5zi05xvan8jsqdhisv552dy6xg6ws8i1yq"))))
4216 (build-system asdf-build-system/sbcl)
4217 (arguments
4218 ;; Error while trying to load definition for system fast-io-test from
4219 ;; pathname [...]/fast-io-test.asd: The function CHECKL:DEFINE-TEST-OP
4220 ;; is undefined.
4221 '(#:tests? #f))
4222 (native-inputs
4223 `(("sbcl-fiveam" ,sbcl-fiveam)
4224 ("sbcl-checkl" ,sbcl-checkl)))
4225 (inputs
4226 `(("sbcl-alexandria" ,sbcl-alexandria)
4227 ("sbcl-trivial-gray-streams" ,sbcl-trivial-gray-streams)
4228 ("sbcl-static-vectors" ,sbcl-static-vectors)))
4229 (home-page "https://github.com/rpav/fast-io")
4230 (synopsis "Fast octet-vector/stream I/O for Common Lisp")
4231 (description
4232 "Fast-io is about improving performance to octet-vectors and octet
4233 streams (though primarily the former, while wrapping the latter).")
4234 ;; Author specifies this as NewBSD which is an alias
4235 (license license:bsd-3))))
4236
4237 (define-public cl-fast-io
4238 (sbcl-package->cl-source-package sbcl-fast-io))
4239
4240 (define-public sbcl-jonathan
4241 (let ((commit "1f448b4f7ac8265e56e1c02b32ce383e65316300")
4242 (revision "1"))
4243 (package
4244 (name "sbcl-jonathan")
4245 (version (git-version "0.1.0" revision commit))
4246 (source
4247 (origin
4248 (method git-fetch)
4249 (uri (git-reference
4250 (url "https://github.com/Rudolph-Miller/jonathan.git")
4251 (commit commit)))
4252 (file-name (git-file-name name version))
4253 (sha256
4254 (base32 "14x4iwz3mbag5jzzzr4sb6ai0m9r4q4kyypbq32jmsk2dx1hi807"))))
4255 (build-system asdf-build-system/sbcl)
4256 (arguments
4257 ;; Tests fail with: Component JONATHAN-ASD::JONATHAN-TEST not found,
4258 ;; required by #<SYSTEM "jonathan">. Why?
4259 `(#:tests? #f))
4260 (native-inputs
4261 `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
4262 ("sbcl-prove" ,sbcl-prove)))
4263 (inputs
4264 `(("sbcl-cl-syntax" ,sbcl-cl-syntax)
4265 ("sbcl-cl-syntax-annot" ,sbcl-cl-syntax-annot)
4266 ("sbcl-fast-io" ,sbcl-fast-io)
4267 ("sbcl-proc-parse" ,sbcl-proc-parse)
4268 ("sbcl-cl-ppcre" ,sbcl-cl-ppcre)))
4269 (home-page "http://rudolph-miller.github.io/jonathan/overview.html")
4270 (synopsis "JSON encoder and decoder")
4271 (description
4272 "High performance JSON encoder and decoder. Currently support: SBCL,
4273 CCL.")
4274 ;; Author specifies the MIT license
4275 (license license:expat))))
4276
4277 (define-public cl-jonathan
4278 (sbcl-package->cl-source-package sbcl-jonathan))
4279
4280 (define-public sbcl-http-body
4281 (let ((commit "dd01dc4f5842e3d29728552e5163acce8386eb73")
4282 (revision "1"))
4283 (package
4284 (name "sbcl-http-body")
4285 (version (git-version "0.1.0" revision commit))
4286 (source
4287 (origin
4288 (method git-fetch)
4289 (uri (git-reference
4290 (url "https://github.com/fukamachi/http-body")
4291 (commit commit)))
4292 (file-name (git-file-name name version))
4293 (sha256
4294 (base32 "1jd06snjvxcprhapgfq8sx0y5lrldkvhf206ix6d5a23dd6zcmr0"))))
4295 (build-system asdf-build-system/sbcl)
4296 (arguments
4297 ;; Tests fail with: Component HTTP-BODY-ASD::HTTP-BODY-TEST not
4298 ;; found, required by #<SYSTEM "http-body">. Why?
4299 `(#:tests? #f))
4300 (native-inputs
4301 `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
4302 ("sbcl-prove" ,sbcl-prove)))
4303 (inputs
4304 `(("sbcl-fast-http" ,sbcl-fast-http)
4305 ("sbcl-jonathan" ,sbcl-jonathan)
4306 ("sbcl-quri" ,sbcl-quri)))
4307 (home-page "https://github.com/fukamachi/http-body")
4308 (synopsis "HTTP POST data parser")
4309 (description
4310 "HTTP-Body parses HTTP POST data and returns POST parameters. It
4311 supports application/x-www-form-urlencoded, application/json, and
4312 multipart/form-data.")
4313 (license license:bsd-2))))
4314
4315 (define-public cl-http-body
4316 (sbcl-package->cl-source-package sbcl-http-body))
4317
4318 (define-public sbcl-circular-streams
4319 (let ((commit "e770bade1919c5e8533dd2078c93c3d3bbeb38df")
4320 (revision "1"))
4321 (package
4322 (name "sbcl-circular-streams")
4323 (version (git-version "0.1.0" revision commit))
4324 (source
4325 (origin
4326 (method git-fetch)
4327 (uri (git-reference
4328 (url "https://github.com/fukamachi/circular-streams")
4329 (commit commit)))
4330 (file-name (git-file-name name version))
4331 (sha256
4332 (base32 "1wpw6d5cciyqcf92f7mvihak52pd5s47kk4qq6f0r2z2as68p5rs"))))
4333 (build-system asdf-build-system/sbcl)
4334 (arguments
4335 ;; The tests depend on cl-test-more which is now prove. Prove
4336 ;; tests aren't working for some reason.
4337 `(#:tests? #f))
4338 (inputs
4339 `(("sbcl-fast-io" ,sbcl-fast-io)
4340 ("sbcl-trivial-gray-streams" ,sbcl-trivial-gray-streams)))
4341 (home-page "https://github.com/fukamachi/circular-streams")
4342 (synopsis "Circularly readable streams for Common Lisp")
4343 (description
4344 "Circular-Streams allows you to read streams circularly by wrapping real
4345 streams. Once you reach end-of-file of a stream, it's file position will be
4346 reset to 0 and you're able to read it again.")
4347 (license license:llgpl))))
4348
4349 (define-public cl-circular-streams
4350 (sbcl-package->cl-source-package sbcl-circular-streams))
4351
4352 (define-public sbcl-lack-request
4353 (let ((commit "abff8efeb0c3a848e6bb0022f2b8b7fa3a1bc88b")
4354 (revision "1"))
4355 (package
4356 (name "sbcl-lack-request")
4357 (version (git-version "0.1.0" revision commit))
4358 (source
4359 (origin
4360 (method git-fetch)
4361 (uri (git-reference
4362 (url "https://github.com/fukamachi/lack.git")
4363 (commit commit)))
4364 (file-name (git-file-name "lack-request" version))
4365 (sha256
4366 (base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85"))))
4367 (build-system asdf-build-system/sbcl)
4368 (arguments
4369 '(#:asd-file "lack-request.asd"
4370 #:asd-system-name "lack-request"
4371 #:test-asd-file "t-lack-request.asd"
4372 ;; XXX: Component :CLACK-TEST not found
4373 #:tests? #f))
4374 (native-inputs
4375 `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
4376 ("sbcl-prove" ,sbcl-prove)))
4377 (inputs
4378 `(("sbcl-quri" ,sbcl-quri)
4379 ("sbcl-http-body" ,sbcl-http-body)
4380 ("sbcl-circular-streams" ,sbcl-circular-streams)))
4381 (home-page "https://github.com/fukamachi/lack")
4382 (synopsis "Lack, the core of Clack")
4383 (description
4384 "Lack is a Common Lisp library which allows web applications to be
4385 constructed of modular components. It was originally a part of Clack, however
4386 it's going to be rewritten as an individual project since Clack v2 with
4387 performance and simplicity in mind.")
4388 (license license:llgpl))))
4389
4390 (define-public cl-lack-request
4391 (sbcl-package->cl-source-package sbcl-lack-request))
4392
4393 (define-public sbcl-local-time
4394 (let ((commit "beac054eef428552b63d4ae7820c32ffef9a3015")
4395 (revision "1"))
4396 (package
4397 (name "sbcl-local-time")
4398 (version (git-version "1.0.6" revision commit))
4399 (source
4400 (origin
4401 (method git-fetch)
4402 (uri (git-reference
4403 (url "https://github.com/dlowe-net/local-time.git")
4404 (commit commit)))
4405 (file-name (git-file-name name version))
4406 (sha256
4407 (base32 "0xhkmgxh41dg2wwlsp0h2l41jp144xn4gpxhh0lna6kh0560w2cc"))))
4408 (build-system asdf-build-system/sbcl)
4409 (arguments
4410 ;; TODO: Component :STEFIL not found, required by #<SYSTEM
4411 ;; "local-time/test">
4412 '(#:tests? #f))
4413 (native-inputs
4414 `(("stefil" ,sbcl-hu.dwim.stefil)))
4415 (inputs
4416 `(("sbcl-cl-fad" ,sbcl-cl-fad)))
4417 (home-page "https://common-lisp.net/project/local-time/")
4418 (synopsis "Time manipulation library for Common Lisp")
4419 (description
4420 "The LOCAL-TIME library is a Common Lisp library for the manipulation of
4421 dates and times. It is based almost entirely upon Erik Naggum's paper \"The
4422 Long Painful History of Time\".")
4423 (license license:expat))))
4424
4425 (define-public cl-local-time
4426 (sbcl-package->cl-source-package sbcl-local-time))
4427
4428 (define-public sbcl-lack-response
4429 (let ((commit "abff8efeb0c3a848e6bb0022f2b8b7fa3a1bc88b")
4430 (revision "1"))
4431 (package
4432 (name "sbcl-lack-response")
4433 (version (git-version "0.1.0" revision commit))
4434 (source
4435 (origin
4436 (method git-fetch)
4437 (uri (git-reference
4438 (url "https://github.com/fukamachi/lack.git")
4439 (commit commit)))
4440 (file-name (git-file-name name version))
4441 (sha256
4442 (base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85"))))
4443 (build-system asdf-build-system/sbcl)
4444 (arguments
4445 '(#:asd-file "lack-response.asd"
4446 #:asd-system-name "lack-response"
4447 ;; XXX: no tests for lack-response.
4448 #:tests? #f))
4449 (native-inputs
4450 `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
4451 ("sbcl-prove" ,sbcl-prove)))
4452 (inputs
4453 `(("sbcl-quri" ,sbcl-quri)
4454 ("sbcl-http-body" ,sbcl-http-body)
4455 ("sbcl-circular-streams" ,sbcl-circular-streams)
4456 ("sbcl-local-time" ,sbcl-local-time)))
4457 (home-page "https://github.com/fukamachi/lack")
4458 (synopsis "Lack, the core of Clack")
4459 (description
4460 "Lack is a Common Lisp library which allows web applications to be
4461 constructed of modular components. It was originally a part of Clack, however
4462 it's going to be rewritten as an individual project since Clack v2 with
4463 performance and simplicity in mind.")
4464 (license license:llgpl))))
4465
4466 (define-public cl-lack-response
4467 (sbcl-package->cl-source-package sbcl-lack-response))
4468
4469 (define-public sbcl-lack-component
4470 (let ((commit "abff8efeb0c3a848e6bb0022f2b8b7fa3a1bc88b")
4471 (revision "1"))
4472 (package
4473 (name "sbcl-lack-component")
4474 (version (git-version "0.0.0" revision commit))
4475 (source
4476 (origin
4477 (method git-fetch)
4478 (uri (git-reference
4479 (url "https://github.com/fukamachi/lack.git")
4480 (commit commit)))
4481 (file-name (git-file-name "lack-component" version))
4482 (sha256
4483 (base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85"))))
4484 (build-system asdf-build-system/sbcl)
4485 (arguments
4486 '(#:asd-file "lack-component.asd"
4487 #:asd-system-name "lack-component"
4488 #:test-asd-file "t-lack-component.asd"
4489 ;; XXX: Component :LACK-TEST not found
4490 #:tests? #f))
4491 (native-inputs
4492 `(("prove-asdf" ,sbcl-prove-asdf)))
4493 (home-page "https://github.com/fukamachi/lack")
4494 (synopsis "Lack, the core of Clack")
4495 (description
4496 "Lack is a Common Lisp library which allows web applications to be
4497 constructed of modular components. It was originally a part of Clack, however
4498 it's going to be rewritten as an individual project since Clack v2 with
4499 performance and simplicity in mind.")
4500 (license license:llgpl))))
4501
4502 (define-public cl-lack-component
4503 (sbcl-package->cl-source-package sbcl-lack-component))
4504
4505 (define-public sbcl-lack-util
4506 (let ((commit "abff8efeb0c3a848e6bb0022f2b8b7fa3a1bc88b")
4507 (revision "1"))
4508 (package
4509 (name "sbcl-lack-util")
4510 (version (git-version "0.1.0" revision commit))
4511 (source
4512 (origin
4513 (method git-fetch)
4514 (uri (git-reference
4515 (url "https://github.com/fukamachi/lack.git")
4516 (commit commit)))
4517 (file-name (git-file-name "lack-util" version))
4518 (sha256
4519 (base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85"))))
4520 (build-system asdf-build-system/sbcl)
4521 (arguments
4522 '(#:asd-file "lack-util.asd"
4523 #:asd-system-name "lack-util"
4524 #:test-asd-file "t-lack-util.asd"
4525 ;; XXX: Component :LACK-TEST not found
4526 #:tests? #f))
4527 (native-inputs
4528 `(("prove-asdf" ,sbcl-prove-asdf)))
4529 (inputs
4530 `(("sbcl-ironclad" ,sbcl-ironclad)))
4531 (home-page "https://github.com/fukamachi/lack")
4532 (synopsis "Lack, the core of Clack")
4533 (description
4534 "Lack is a Common Lisp library which allows web applications to be
4535 constructed of modular components. It was originally a part of Clack, however
4536 it's going to be rewritten as an individual project since Clack v2 with
4537 performance and simplicity in mind.")
4538 (license license:llgpl))))
4539
4540 (define-public cl-lack-util
4541 (sbcl-package->cl-source-package sbcl-lack-util))
4542
4543 (define-public sbcl-lack-middleware-backtrace
4544 (let ((commit "abff8efeb0c3a848e6bb0022f2b8b7fa3a1bc88b")
4545 (revision "1"))
4546 (package
4547 (name "sbcl-lack-middleware-backtrace")
4548 (version (git-version "0.1.0" revision commit))
4549 (source
4550 (origin
4551 (method git-fetch)
4552 (uri (git-reference
4553 (url "https://github.com/fukamachi/lack.git")
4554 (commit commit)))
4555 (file-name (git-file-name "lack-middleware-backtrace" version))
4556 (sha256
4557 (base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85"))))
4558 (build-system asdf-build-system/sbcl)
4559 (arguments
4560 '(#:asd-file "lack-middleware-backtrace.asd"
4561 #:asd-system-name "lack-middleware-backtrace"
4562 #:test-asd-file "t-lack-middleware-backtrace.asd"
4563 ;; XXX: Component :LACK not found
4564 #:tests? #f))
4565 (native-inputs
4566 `(("prove-asdf" ,sbcl-prove-asdf)))
4567 (home-page "https://github.com/fukamachi/lack")
4568 (synopsis "Lack, the core of Clack")
4569 (description
4570 "Lack is a Common Lisp library which allows web applications to be
4571 constructed of modular components. It was originally a part of Clack, however
4572 it's going to be rewritten as an individual project since Clack v2 with
4573 performance and simplicity in mind.")
4574 (license license:llgpl))))
4575
4576 (define-public cl-lack-middleware-backtrace
4577 (sbcl-package->cl-source-package sbcl-lack-middleware-backtrace))
4578
4579 (define-public sbcl-trivial-mimes
4580 (let ((commit "303f8ac0aa6ca0bc139aa3c34822e623c3723fab")
4581 (revision "1"))
4582 (package
4583 (name "sbcl-trivial-mimes")
4584 (version (git-version "1.1.0" revision commit))
4585 (source
4586 (origin
4587 (method git-fetch)
4588 (uri (git-reference
4589 (url "https://github.com/Shinmera/trivial-mimes.git")
4590 (commit commit)))
4591 (file-name (git-file-name name version))
4592 (sha256
4593 (base32 "17jxgl47r695bvsb7wi3n2ws5rp1zzgvw0zii8cy5ggw4b4ayv6m"))))
4594 (build-system asdf-build-system/sbcl)
4595 (arguments
4596 '(#:phases
4597 (modify-phases %standard-phases
4598 (add-after
4599 'unpack 'fix-paths
4600 (lambda* (#:key inputs #:allow-other-keys)
4601 (let ((anchor "#p\"/etc/mime.types\""))
4602 (substitute* "mime-types.lisp"
4603 ((anchor all)
4604 (string-append
4605 anchor "\n"
4606 "(asdf:system-relative-pathname :trivial-mimes "
4607 "\"../../share/common-lisp/" (%lisp-type)
4608 "-source/trivial-mimes/mime.types\")")))))))))
4609 (native-inputs
4610 `(("stefil" ,sbcl-hu.dwim.stefil)))
4611 (inputs
4612 `(("sbcl-cl-fad" ,sbcl-cl-fad)))
4613 (home-page "http://shinmera.github.io/trivial-mimes/")
4614 (synopsis "Tiny Common Lisp library to detect mime types in files")
4615 (description
4616 "This is a teensy library that provides some functions to determine the
4617 mime-type of a file.")
4618 (license license:artistic2.0))))
4619
4620 (define-public cl-trivial-mimes
4621 (sbcl-package->cl-source-package sbcl-trivial-mimes))
4622
4623 (define-public ecl-trivial-mimes
4624 (sbcl-package->ecl-package sbcl-trivial-mimes))
4625
4626 (define-public sbcl-lack-middleware-static
4627 (let ((commit "abff8efeb0c3a848e6bb0022f2b8b7fa3a1bc88b")
4628 (revision "1"))
4629 (package
4630 (name "sbcl-lack-middleware-static")
4631 (version (git-version "0.1.0" revision commit))
4632 (source
4633 (origin
4634 (method git-fetch)
4635 (uri (git-reference
4636 (url "https://github.com/fukamachi/lack.git")
4637 (commit commit)))
4638 (file-name (git-file-name "lack-middleware-static" version))
4639 (sha256
4640 (base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85"))))
4641 (build-system asdf-build-system/sbcl)
4642 (arguments
4643 '(#:asd-file "lack-middleware-static.asd"
4644 #:asd-system-name "lack-middleware-static"
4645 #:test-asd-file "t-lack-middleware-static.asd"
4646 ;; XXX: Component :LACK not found
4647 #:tests? #f))
4648 (native-inputs
4649 `(("prove-asdf" ,sbcl-prove-asdf)))
4650 (inputs
4651 `(("sbcl-ironclad" ,sbcl-ironclad)
4652 ("sbcl-trivial-mimes" ,sbcl-trivial-mimes)
4653 ("sbcl-local-time" ,sbcl-local-time)))
4654 (home-page "https://github.com/fukamachi/lack")
4655 (synopsis "Lack, the core of Clack")
4656 (description
4657 "Lack is a Common Lisp library which allows web applications to be
4658 constructed of modular components. It was originally a part of Clack, however
4659 it's going to be rewritten as an individual project since Clack v2 with
4660 performance and simplicity in mind.")
4661 (license license:llgpl))))
4662
4663 (define-public cl-lack-middleware-static
4664 (sbcl-package->cl-source-package sbcl-lack-middleware-static))
4665
4666 (define-public sbcl-lack
4667 (let ((commit "abff8efeb0c3a848e6bb0022f2b8b7fa3a1bc88b")
4668 (revision "1"))
4669 (package
4670 (name "sbcl-lack")
4671 (version (git-version "0.1.0" revision commit))
4672 (source
4673 (origin
4674 (method git-fetch)
4675 (uri (git-reference
4676 (url "https://github.com/fukamachi/lack.git")
4677 (commit commit)))
4678 (file-name (git-file-name "lack" version))
4679 (sha256
4680 (base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85"))))
4681 (build-system asdf-build-system/sbcl)
4682 (arguments
4683 '(#:test-asd-file "t-lack.asd"
4684 ;; XXX: Component :CLACK not found
4685 #:tests? #f))
4686 (native-inputs
4687 `(("prove-asdf" ,sbcl-prove-asdf)))
4688 (inputs
4689 `(("sbcl-lack-component" ,sbcl-lack-component)
4690 ("sbcl-lack-util" ,sbcl-lack-util)))
4691 (home-page "https://github.com/fukamachi/lack")
4692 (synopsis "Lack, the core of Clack")
4693 (description
4694 "Lack is a Common Lisp library which allows web applications to be
4695 constructed of modular components. It was originally a part of Clack, however
4696 it's going to be rewritten as an individual project since Clack v2 with
4697 performance and simplicity in mind.")
4698 (license license:llgpl))))
4699
4700 (define-public cl-lack
4701 (sbcl-package->cl-source-package sbcl-lack))
4702
4703 (define-public sbcl-ningle
4704 (let ((commit "50bd4f09b5a03a7249bd4d78265d6451563b25ad")
4705 (revision "1"))
4706 (package
4707 (name "sbcl-ningle")
4708 (version (git-version "0.3.0" revision commit))
4709 (source
4710 (origin
4711 (method git-fetch)
4712 (uri (git-reference
4713 (url "https://github.com/fukamachi/ningle.git")
4714 (commit commit)))
4715 (file-name (git-file-name name version))
4716 (sha256
4717 (base32 "1bsl8cnxhacb8p92z9n89vhk1ikmij5zavk0m2zvmj7iqm79jzgw"))))
4718 (build-system asdf-build-system/sbcl)
4719 (arguments
4720 ;; TODO: pull in clack-test
4721 '(#:tests? #f
4722 #:phases
4723 (modify-phases %standard-phases
4724 (delete 'cleanup-files)
4725 (delete 'cleanup)
4726 (add-before 'cleanup 'combine-fasls
4727 (lambda* (#:key outputs #:allow-other-keys)
4728 (let* ((out (assoc-ref outputs "out"))
4729 (lib (string-append out "/lib/sbcl"))
4730 (ningle-path (string-append lib "/ningle"))
4731 (fasl-files (find-files out "\\.fasl$")))
4732 (mkdir-p ningle-path)
4733 (let ((fasl-path (lambda (name)
4734 (string-append ningle-path
4735 "/"
4736 (basename name)
4737 "--system.fasl"))))
4738 (for-each (lambda (file)
4739 (rename-file file
4740 (fasl-path
4741 (basename file ".fasl"))))
4742 fasl-files))
4743 fasl-files)
4744 #t)))))
4745 (native-inputs
4746 `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
4747 ("sbcl-prove" ,sbcl-prove)))
4748 (inputs
4749 `(("sbcl-cl-syntax" ,sbcl-cl-syntax)
4750 ("sbcl-cl-syntax-annot" ,sbcl-cl-syntax-annot)
4751 ("sbcl-myway" ,sbcl-myway)
4752 ("sbcl-lack-request" ,sbcl-lack-request)
4753 ("sbcl-lack-response" ,sbcl-lack-response)
4754 ("sbcl-lack-component" ,sbcl-lack-component)
4755 ("sbcl-alexandria" ,sbcl-alexandria)
4756 ("sbcl-babel" ,sbcl-babel)))
4757 (home-page "http://8arrow.org/ningle/")
4758 (synopsis "Super micro framework for Common Lisp")
4759 (description
4760 "Ningle is a lightweight web application framework for Common Lisp.")
4761 (license license:llgpl))))
4762
4763 (define-public cl-ningle
4764 (sbcl-package->cl-source-package sbcl-ningle))
4765
4766 (define-public sbcl-clack
4767 (let ((commit "e3e032843bb1220ab96263c411aa7f2feb4746e0")
4768 (revision "1"))
4769 (package
4770 (name "sbcl-clack")
4771 (version (git-version "2.0.0" revision commit))
4772 (source
4773 (origin
4774 (method git-fetch)
4775 (uri (git-reference
4776 (url "https://github.com/fukamachi/clack.git")
4777 (commit commit)))
4778 (file-name (git-file-name name version))
4779 (sha256
4780 (base32 "1ymzs6qyrwhlj6cgqsnpyn6g5cbp7a3s1vgxwna20y2q7y4iacy0"))))
4781 (build-system asdf-build-system/sbcl)
4782 (inputs
4783 `(("sbcl-lack" ,sbcl-lack)
4784 ("sbcl-lack-middleware-backtrace" ,sbcl-lack-middleware-backtrace)
4785 ("sbcl-bordeaux-threads" ,sbcl-bordeaux-threads)))
4786 (home-page "https://github.com/fukamachi/clack")
4787 (synopsis "Web Application Environment for Common Lisp")
4788 (description
4789 "Clack is a web application environment for Common Lisp inspired by
4790 Python's WSGI and Ruby's Rack.")
4791 (license license:llgpl))))
4792
4793 (define-public cl-clack
4794 (sbcl-package->cl-source-package sbcl-clack))
4795
4796 (define-public sbcl-log4cl
4797 (let ((commit "611e094458504b938d49de904eab141285328c7c")
4798 (revision "1"))
4799 (package
4800 (name "sbcl-log4cl")
4801 (build-system asdf-build-system/sbcl)
4802 (version "1.1.2")
4803 (source
4804 (origin
4805 (method git-fetch)
4806 (uri (git-reference
4807 (url "https://github.com/sharplispers/log4cl")
4808 (commit commit)))
4809 (file-name (git-file-name name version))
4810 (sha256
4811 (base32
4812 "08jly0s0g26b56hhpfizxsb4j0yvbh946sd205gr42dkzv8l7dsc"))))
4813 ;; FIXME: tests require stefil, sbcl-hu.dwim.stefil wont work
4814 (arguments
4815 `(#:tests? #f))
4816 (inputs `(("bordeaux-threads" ,sbcl-bordeaux-threads)))
4817 (synopsis "Common Lisp logging framework, modeled after Log4J")
4818 (home-page "https://github.com/7max/log4cl")
4819 (description "This is a Common Lisp logging framework that can log at
4820 various levels and mix text with expressions.")
4821 (license license:asl2.0))))
4822
4823 (define-public cl-log4cl
4824 (sbcl-package->cl-source-package sbcl-log4cl))
4825
4826 (define-public ecl-log4cl
4827 (sbcl-package->ecl-package sbcl-log4cl))
4828
4829 (define-public sbcl-find-port
4830 (let ((commit "00c96a25af93a0f8681d34ec548861f2d7485478")
4831 (revision "1"))
4832 (package
4833 (name "sbcl-find-port")
4834 (build-system asdf-build-system/sbcl)
4835 (version "0.1")
4836 (home-page "https://github.com/eudoxia0/find-port")
4837 (source
4838 (origin
4839 (method git-fetch)
4840 (uri (git-reference
4841 (url home-page)
4842 (commit commit)))
4843 (file-name (git-file-name name version))
4844 (sha256
4845 (base32
4846 "0d6dzbb45jh0rx90wgs6v020k2xa87mvzas3mvfzvivjvqqlpryq"))))
4847 (native-inputs
4848 `(("fiveam" ,sbcl-fiveam)))
4849 (inputs
4850 `(("sbcl-usocket" ,sbcl-usocket)))
4851 (synopsis "Find open ports programmatically in Common Lisp")
4852 (description "This is a small Common Lisp library that finds an open
4853 port within a range.")
4854 (license license:expat))))
4855
4856 (define-public cl-find-port
4857 (sbcl-package->cl-source-package sbcl-find-port))
4858
4859 (define-public ecl-find-port
4860 (sbcl-package->ecl-package sbcl-find-port))
4861
4862 (define-public sbcl-clunit
4863 (let ((commit "6f6d72873f0e1207f037470105969384f8380628")
4864 (revision "1"))
4865 (package
4866 (name "sbcl-clunit")
4867 (version (git-version "0.2.3" revision commit))
4868 (source
4869 (origin
4870 (method git-fetch)
4871 (uri (git-reference
4872 (url "https://github.com/tgutu/clunit.git")
4873 (commit commit)))
4874 (file-name (git-file-name name version))
4875 (sha256
4876 (base32
4877 "1idf2xnqzlhi8rbrqmzpmb3i1l6pbdzhhajkmhwbp6qjkmxa4h85"))))
4878 (build-system asdf-build-system/sbcl)
4879 (synopsis "CLUnit is a Common Lisp unit testing framework")
4880 (description
4881 "CLUnit is a Common Lisp unit testing framework. It is designed
4882 to be easy to use so that you can quickly start testing. CLUnit
4883 provides a rich set of features aimed at improving your unit testing
4884 experience.")
4885 (home-page "http://tgutu.github.io/clunit/")
4886 ;; MIT License
4887 (license license:expat))))
4888
4889 (define-public cl-clunit
4890 (sbcl-package->cl-source-package sbcl-clunit))
4891
4892 (define-public ecl-clunit
4893 (sbcl-package->ecl-package sbcl-clunit))
4894
4895 (define-public sbcl-py4cl
4896 (let ((commit "4c8a2b0814fd311f978964f825ce012290f60136")
4897 (revision "1"))
4898 (package
4899 (name "sbcl-py4cl")
4900 (version (git-version "0.0.0" revision commit))
4901 (source
4902 (origin
4903 (method git-fetch)
4904 (uri (git-reference
4905 (url "https://github.com/bendudson/py4cl.git")
4906 (commit commit)))
4907 (file-name (git-file-name name version))
4908 (sha256
4909 (base32
4910 "15mk7qdqjkj56gdnbyrdyz6r7m1h26ldvn6ch96pmvg5vmr1m45r"))
4911 (modules '((guix build utils)))))
4912 (build-system asdf-build-system/sbcl)
4913 (native-inputs
4914 `(("sbcl-clunit" ,sbcl-clunit)))
4915 (inputs
4916 `(("sbcl-trivial-garbage" ,sbcl-trivial-garbage)))
4917 (propagated-inputs
4918 ;; This package doesn't do anything without python available
4919 `(("python" ,python)
4920 ;; For multi-dimensional array support
4921 ("python-numpy" ,python-numpy)))
4922 (arguments
4923 '(#:phases
4924 (modify-phases %standard-phases
4925 (add-after 'unpack 'replace-*base-directory*-var
4926 (lambda* (#:key outputs #:allow-other-keys)
4927 ;; In the ASD, the author makes an attempt to
4928 ;; programatically determine the location of the
4929 ;; source-code so lisp can call into "py4cl.py". We can
4930 ;; hard-code this since we know where this file will
4931 ;; reside.
4932 (substitute* "src/callpython.lisp"
4933 (("py4cl/config:\\*base-directory\\*")
4934 (string-append
4935 "\""
4936 (assoc-ref outputs "out")
4937 "/share/common-lisp/sbcl-source/py4cl/"
4938 "\""))))))))
4939 (synopsis "Call python from Common Lisp")
4940 (description
4941 "Py4CL is a bridge between Common Lisp and Python, which enables Common
4942 Lisp to interact with Python code. It uses streams to communicate with a
4943 separate python process, the approach taken by cl4py. This is different to
4944 the CFFI approach used by burgled-batteries, but has the same goal.")
4945 (home-page "https://github.com/bendudson/py4cl")
4946 ;; MIT License
4947 (license license:expat))))
4948
4949 (define-public cl-py4cl
4950 (sbcl-package->cl-source-package sbcl-py4cl))
4951
4952 (define-public ecl-py4cl
4953 (sbcl-package->ecl-package sbcl-py4cl))
4954
4955 (define-public sbcl-parse-declarations
4956 (package
4957 (name "sbcl-parse-declarations")
4958 (version "1.0.0")
4959 (source
4960 (origin
4961 (method url-fetch)
4962 (uri (string-append
4963 "http://beta.quicklisp.org/archive/parse-declarations/"
4964 "2010-10-06/parse-declarations-20101006-darcs.tgz"))
4965 (sha256
4966 (base32
4967 "0r85b0jfacd28kr65kw9c13dx4i6id1dpmby68zjy63mqbnyawrd"))))
4968 (build-system asdf-build-system/sbcl)
4969 (arguments
4970 `(#:asd-file "parse-declarations-1.0.asd"
4971 #:asd-system-name "parse-declarations-1.0"))
4972 (home-page "https://common-lisp.net/project/parse-declarations/")
4973 (synopsis "Parse, filter, and build declarations")
4974 (description
4975 "Parse-Declarations is a Common Lisp library to help writing
4976 macros which establish bindings. To be semantically correct, such
4977 macros must take user declarations into account, as these may affect
4978 the bindings they establish. Yet the ANSI standard of Common Lisp does
4979 not provide any operators to work with declarations in a convenient,
4980 high-level way. This library provides such operators.")
4981 ;; MIT License
4982 (license license:expat)))
4983
4984 (define-public cl-parse-declarations
4985 (sbcl-package->cl-source-package sbcl-parse-declarations))
4986
4987 (define-public ecl-parse-declarations
4988 (sbcl-package->ecl-package sbcl-parse-declarations))
4989
4990 (define-public sbcl-cl-quickcheck
4991 (let ((commit "807b2792a30c883a2fbecea8e7db355b50ba662f")
4992 (revision "1"))
4993 (package
4994 (name "sbcl-cl-quickcheck")
4995 (version (git-version "0.0.4" revision commit))
4996 (source
4997 (origin
4998 (method git-fetch)
4999 (uri (git-reference
5000 (url "https://github.com/mcandre/cl-quickcheck.git")
5001 (commit commit)))
5002 (file-name (git-file-name name version))
5003 (sha256
5004 (base32
5005 "165lhypq5xkcys6hvzb3jq7ywnmqvzaflda29qk2cbs3ggas4767"))))
5006 (build-system asdf-build-system/sbcl)
5007 (synopsis
5008 "Common Lisp port of the QuickCheck unit test framework")
5009 (description
5010 "Common Lisp port of the QuickCheck unit test framework")
5011 (home-page "https://github.com/mcandre/cl-quickcheck")
5012 ;; MIT
5013 (license license:expat))))
5014
5015 (define-public cl-cl-quickcheck
5016 (sbcl-package->cl-source-package sbcl-cl-quickcheck))
5017
5018 (define-public ecl-cl-quickcheck
5019 (sbcl-package->ecl-package sbcl-cl-quickcheck))
5020
5021 (define-public sbcl-burgled-batteries3
5022 (let ((commit "9c0f6667e1a71ddf77e21793a0bea524710fef6e")
5023 (revision "1"))
5024 (package
5025 (name "sbcl-burgled-batteries3")
5026 (version (git-version "0.0.0" revision commit))
5027 (source
5028 (origin
5029 (method git-fetch)
5030 (uri (git-reference
5031 (url "https://github.com/snmsts/burgled-batteries3.git")
5032 (commit commit)))
5033 (file-name (git-file-name name version))
5034 (sha256
5035 (base32
5036 "0b726kz2xxcg5l930gz035rsdvhxrzmp05iwfwympnb4z4ammicb"))))
5037 (build-system asdf-build-system/sbcl)
5038 (arguments
5039 '(#:tests? #f
5040 #:phases
5041 (modify-phases %standard-phases
5042 (add-after 'unpack 'set-*cpython-include-dir*-var
5043 (lambda* (#:key inputs #:allow-other-keys)
5044 (substitute* "grovel-include-dir.lisp"
5045 (("\\(defparameter \\*cpython-include-dir\\* \\(detect-python\\)\\)")
5046 (string-append
5047 "(defparameter *cpython-include-dir* \""
5048 (assoc-ref inputs "python")
5049 "/include/python3.7m"
5050 "\")")))
5051 (substitute* "ffi-interface.lisp"
5052 (("\\*cpython-lib\\*")
5053 (format #f "'(\"~a/lib/libpython3.so\")"
5054 (assoc-ref inputs "python"))))
5055 #t)))))
5056 (native-inputs
5057 `(("python" ,python)
5058 ("sbcl-cl-fad" ,sbcl-cl-fad)
5059 ("sbcl-lift" ,sbcl-lift)
5060 ("sbcl-cl-quickcheck" ,sbcl-cl-quickcheck)))
5061 (inputs
5062 `(("sbcl-cffi" ,sbcl-cffi)
5063 ("sbcl-cffi-grovel" ,sbcl-cffi-grovel)
5064 ("sbcl-alexandria" , sbcl-alexandria)
5065 ("sbcl-parse-declarations-1.0" ,sbcl-parse-declarations)
5066 ("sbcl-trivial-garbage" ,sbcl-trivial-garbage)))
5067 (synopsis "Bridge between Python and Lisp (FFI bindings, etc.)")
5068 (description
5069 "This package provides a shim between Python3 (specifically, the
5070 CPython implementation of Python) and Common Lisp.")
5071 (home-page "https://github.com/snmsts/burgled-batteries3")
5072 ;; MIT
5073 (license license:expat))))
5074
5075 (define-public cl-burgled-batteries3
5076 (sbcl-package->cl-source-package sbcl-burgled-batteries3))
5077
5078 (define-public ecl-burgled-batteries3
5079 (sbcl-package->ecl-package sbcl-burgled-batteries3))
5080
5081 (define-public sbcl-metabang-bind
5082 (let ((commit "c93b7f7e1c18c954c2283efd6a7fdab36746ab5e")
5083 (revision "1"))
5084 (package
5085 (name "sbcl-metabang-bind")
5086 (version (git-version "0.8.0" revision commit))
5087 (source
5088 (origin
5089 (method git-fetch)
5090 (uri (git-reference
5091 (url "https://github.com/gwkkwg/metabang-bind.git")
5092 (commit commit)))
5093 (file-name (git-file-name name version))
5094 (sha256
5095 (base32
5096 "0hd0kr91795v77akpbcyqiss9p0p7ypa9dznrllincnmgvsxlmf0"))))
5097 (build-system asdf-build-system/sbcl)
5098 (native-inputs
5099 `(("sbcl-lift" ,sbcl-lift)))
5100 (synopsis "Macro that generalizes @code{multiple-value-bind} etc.")
5101 (description
5102 "Bind extends the idea of of let and destructing to provide a uniform
5103 syntax for all your accessor needs. It combines @code{let},
5104 @code{destructuring-bind}, @code{with-slots}, @code{with-accessors}, structure
5105 editing, property or association-lists, and @code{multiple-value-bind} and a
5106 whole lot more into a single form.")
5107 (home-page "https://common-lisp.net/project/metabang-bind/")
5108 ;; MIT License
5109 (license license:expat))))
5110
5111 (define-public cl-metabang-bind
5112 (sbcl-package->cl-source-package sbcl-metabang-bind))
5113
5114 (define-public ecl-metabang-bind
5115 (sbcl-package->ecl-package sbcl-metabang-bind))
5116
5117 (define-public sbcl-fare-utils
5118 (let ((commit "66e9c6f1499140bc00ccc22febf2aa528cbb5724")
5119 (revision "1"))
5120 (package
5121 (name "sbcl-fare-utils")
5122 (version (git-version "1.0.0.5" revision commit))
5123 (source
5124 (origin
5125 (method git-fetch)
5126 (uri
5127 (git-reference
5128 (url
5129 "https://gitlab.common-lisp.net/frideau/fare-utils.git")
5130 (commit commit)))
5131 (file-name (git-file-name name version))
5132 (sha256
5133 (base32
5134 "01wsr1aap3jdzhn4hrqjbhsjx6qci9dbd3gh4gayv1p49rbg8aqr"))))
5135 (build-system asdf-build-system/sbcl)
5136 (arguments
5137 `(#:test-asd-file "test/fare-utils-test.asd"))
5138 (native-inputs
5139 `(("sbcl-hu.dwim.stefil" ,sbcl-hu.dwim.stefil)))
5140 (synopsis "Collection of utilities and data structures")
5141 (description
5142 "fare-utils is a small collection of utilities. It contains a lot of
5143 basic everyday functions and macros.")
5144 (home-page "https://gitlab.common-lisp.net/frideau/fare-utils")
5145 ;; MIT License
5146 (license license:expat))))
5147
5148 (define-public cl-fare-utils
5149 (sbcl-package->cl-source-package sbcl-fare-utils))
5150
5151 (define-public ecl-fare-utils
5152 (sbcl-package->ecl-package sbcl-fare-utils))
5153
5154 (define-public sbcl-trivial-utf-8
5155 (let ((commit "4d427cfbb1c452436a0efb71c3205c9da67f718f")
5156 (revision "1"))
5157 (package
5158 (name "sbcl-trivial-utf-8")
5159 (version (git-version "0.0.0" revision commit))
5160 (source
5161 (origin
5162 (method git-fetch)
5163 (uri
5164 (git-reference
5165 (url (string-append "https://gitlab.common-lisp.net/"
5166 "trivial-utf-8/trivial-utf-8.git"))
5167 (commit commit)))
5168 (file-name (git-file-name name version))
5169 (sha256
5170 (base32
5171 "1jz27gz8gvqdmvp3k9bxschs6d5b3qgk94qp2bj6nv1d0jc3m1l1"))))
5172 (arguments
5173 ;; Guix incorrectly assumes the "8" is part of the version
5174 ;; number and lobs it off.
5175 `(#:asd-file "trivial-utf-8.asd"
5176 #:asd-system-name "trivial-utf-8"))
5177 (build-system asdf-build-system/sbcl)
5178 (synopsis "UTF-8 input/output library")
5179 (description
5180 "The Babel library solves a similar problem while understanding more
5181 encodings. Trivial UTF-8 was written before Babel existed, but for new
5182 projects you might be better off going with Babel. The one plus that Trivial
5183 UTF-8 has is that it doesn't depend on any other libraries.")
5184 (home-page "https://common-lisp.net/project/trivial-utf-8/")
5185 (license license:bsd-3))))
5186
5187 (define-public cl-trivial-utf-8
5188 (sbcl-package->cl-source-package sbcl-trivial-utf-8))
5189
5190 (define-public ecl-trivial-utf-8
5191 (sbcl-package->ecl-package sbcl-trivial-utf-8))
5192
5193 (define-public sbcl-idna
5194 (package
5195 (name "sbcl-idna")
5196 (build-system asdf-build-system/sbcl)
5197 (version "0.2.2")
5198 (home-page "https://github.com/antifuchs/idna")
5199 (source
5200 (origin
5201 (method git-fetch)
5202 (uri (git-reference
5203 (url home-page)
5204 (commit version)))
5205 (file-name (git-file-name name version))
5206 (sha256
5207 (base32
5208 "00nbr3mffxhlq14gg9d16pa6691s4qh35inyw76v906s77khm5a2"))))
5209 (inputs
5210 `(("split-sequence" ,sbcl-split-sequence)))
5211 (synopsis "IDNA string encoding and decoding routines for Common Lisp")
5212 (description "This Common Lisp library provides string encoding and
5213 decoding routines for IDNA, the International Domain Names in Applications.")
5214 (license license:expat)))
5215
5216 (define-public cl-idna
5217 (sbcl-package->cl-source-package sbcl-idna))
5218
5219 (define-public ecl-idna
5220 (sbcl-package->ecl-package sbcl-idna))
5221
5222 (define-public sbcl-swap-bytes
5223 (package
5224 (name "sbcl-swap-bytes")
5225 (build-system asdf-build-system/sbcl)
5226 (version "1.2")
5227 (home-page "https://github.com/sionescu/swap-bytes")
5228 (source
5229 (origin
5230 (method git-fetch)
5231 (uri (git-reference
5232 (url home-page)
5233 (commit (string-append "v" version))))
5234 (file-name (git-file-name name version))
5235 (sha256
5236 (base32
5237 "1hw1v1lw26rifyznpnj1csphha9jgzwpiic16ni3pvs6hcsni9rz"))))
5238 (inputs
5239 `(("trivial-features" ,sbcl-trivial-features)))
5240 (native-inputs
5241 `(("fiveam" ,sbcl-fiveam)))
5242 (synopsis "Efficient endianness conversion for Common Lisp")
5243 (description "This Common Lisp library provides optimized byte-swapping
5244 primitives. The library can change endianness of unsigned integers of length
5245 1/2/4/8. Very useful in implementing various network protocols and file
5246 formats.")
5247 (license license:expat)))
5248
5249 (define-public cl-swap-bytes
5250 (sbcl-package->cl-source-package sbcl-swap-bytes))
5251
5252 (define-public ecl-swap-bytes
5253 (sbcl-package->ecl-package sbcl-swap-bytes))
5254
5255 (define-public sbcl-iolib.asdf
5256 ;; Latest release is from June 2017.
5257 (let ((commit "81e20614c0d27f9605bf9766214e236fd31b99b4")
5258 (revision "1"))
5259 (package
5260 (name "sbcl-iolib.asdf")
5261 (build-system asdf-build-system/sbcl)
5262 (version "0.8.3")
5263 (home-page "https://github.com/sionescu/iolib")
5264 (source
5265 (origin
5266 (method git-fetch)
5267 (uri (git-reference
5268 (url home-page)
5269 (commit commit)))
5270 (file-name (git-file-name name version))
5271 (sha256
5272 (base32
5273 "1j81r0wm7nfbwl991f26s4npcy7kybzybd3m47rbxy31h0cfcmdm"))))
5274 (inputs
5275 `(("alexandria" ,sbcl-alexandria)))
5276 (arguments
5277 '(#:asd-file "iolib.asdf.asd"))
5278 (synopsis "ASDF component classes for IOLib, a Common Lisp I/O library")
5279 (description "IOlib is to be a better and more modern I/O library than
5280 the standard Common Lisp library. It contains a socket library, a DNS
5281 resolver, an I/O multiplexer(which supports @code{select(2)}, @code{epoll(4)}
5282 and @code{kqueue(2)}), a pathname library and file-system utilities.")
5283 (license license:expat))))
5284
5285 (define-public sbcl-iolib.conf
5286 (package
5287 (inherit sbcl-iolib.asdf)
5288 (name "sbcl-iolib.conf")
5289 (inputs
5290 `(("iolib.asdf" ,sbcl-iolib.asdf)))
5291 (arguments
5292 '(#:asd-file "iolib.conf.asd"))
5293 (synopsis "Compile-time configuration for IOLib, a Common Lisp I/O library")))
5294
5295 (define-public sbcl-iolib.common-lisp
5296 (package
5297 (inherit sbcl-iolib.asdf)
5298 (name "sbcl-iolib.common-lisp")
5299 (inputs
5300 `(("iolib.asdf" ,sbcl-iolib.asdf)
5301 ("iolib.conf" ,sbcl-iolib.conf)))
5302 (arguments
5303 '(#:asd-file "iolib.common-lisp.asd"))
5304 (synopsis "Slightly modified Common Lisp for IOLib, a Common Lisp I/O library")))
5305
5306 (define-public sbcl-iolib.base
5307 (package
5308 (inherit sbcl-iolib.asdf)
5309 (name "sbcl-iolib.base")
5310 (inputs
5311 `(("iolib.asdf" ,sbcl-iolib.asdf)
5312 ("iolib.conf" ,sbcl-iolib.conf)
5313 ("iolib.common-lisp" ,sbcl-iolib.common-lisp)
5314 ("split-sequence" ,sbcl-split-sequence)))
5315 (arguments
5316 '(#:asd-file "iolib.base.asd"))
5317 (synopsis "Base package for IOLib, a Common Lisp I/O library")))
5318
5319 (define-public sbcl-iolib.grovel
5320 (package
5321 (inherit sbcl-iolib.asdf)
5322 (name "sbcl-iolib.grovel")
5323 (inputs
5324 `(("iolib.asdf" ,sbcl-iolib.asdf)
5325 ("iolib.conf" ,sbcl-iolib.conf)
5326 ("iolib.base", sbcl-iolib.base)
5327 ("cffi", sbcl-cffi)))
5328 (arguments
5329 '(#:asd-file "iolib.grovel.asd"
5330 #:phases
5331 (modify-phases %standard-phases
5332 (add-after 'install 'install-header
5333 (lambda* (#:key outputs #:allow-other-keys)
5334 ;; This header is required by sbcl-iolib.
5335 (install-file "src/grovel/grovel-common.h"
5336 (string-append (assoc-ref outputs "out")
5337 "/lib/sbcl"))
5338 #t)))))
5339 (synopsis "CFFI Groveller for IOLib, a Common Lisp I/O library")))
5340
5341 (define-public sbcl-iolib
5342 (package
5343 (inherit sbcl-iolib.asdf)
5344 (name "sbcl-iolib")
5345 (inputs
5346 `(("iolib.asdf" ,sbcl-iolib.asdf)
5347 ("iolib.conf" ,sbcl-iolib.conf)
5348 ("iolib.grovel" ,sbcl-iolib.grovel)
5349 ("iolib.base" ,sbcl-iolib.base)
5350 ("bordeaux-threads" ,sbcl-bordeaux-threads)
5351 ("idna" ,sbcl-idna)
5352 ("swap-bytes" ,sbcl-swap-bytes)
5353 ("libfixposix" ,libfixposix)
5354 ("cffi" ,sbcl-cffi)))
5355 (native-inputs
5356 `(("fiveam" ,sbcl-fiveam)))
5357 (arguments
5358 '(#:asd-file "iolib.asd"
5359 #:asd-system-name "iolib"
5360 #:test-asd-file "iolib.tests.asd"
5361 #:phases
5362 (modify-phases %standard-phases
5363 (add-after 'unpack 'fix-paths
5364 (lambda* (#:key inputs #:allow-other-keys)
5365 (substitute* "src/syscalls/ffi-functions-unix.lisp"
5366 (("\\(:default \"libfixposix\"\\)")
5367 (string-append
5368 "(:default \""
5369 (assoc-ref inputs "libfixposix") "/lib/libfixposix\")")))
5370 ;; Socket tests need Internet access, disable them.
5371 (substitute* "iolib.tests.asd"
5372 (("\\(:file \"sockets\" :depends-on \\(\"pkgdcl\" \"defsuites\"\\)\\)")
5373 "")))))))
5374 (synopsis "Common Lisp I/O library")))
5375
5376 (define-public cl-iolib
5377 (sbcl-package->cl-source-package sbcl-iolib))
5378
5379 (define sbcl-iolib+multiplex
5380 (package
5381 (inherit sbcl-iolib)
5382 (name "sbcl-iolib+multiplex")
5383 (arguments
5384 (substitute-keyword-arguments (package-arguments sbcl-iolib)
5385 ((#:asd-system-name _) "iolib/multiplex")))))
5386
5387 (define sbcl-iolib+syscalls
5388 (package
5389 (inherit sbcl-iolib)
5390 (name "sbcl-iolib+syscalls")
5391 (arguments
5392 (substitute-keyword-arguments (package-arguments sbcl-iolib)
5393 ((#:asd-system-name _) "iolib/syscalls")))))
5394
5395 (define sbcl-iolib+streams
5396 (package
5397 (inherit sbcl-iolib)
5398 (name "sbcl-iolib+streams")
5399 (arguments
5400 (substitute-keyword-arguments (package-arguments sbcl-iolib)
5401 ((#:asd-system-name _) "iolib/streams")))))
5402
5403 (define sbcl-iolib+sockets
5404 (package
5405 (inherit sbcl-iolib)
5406 (name "sbcl-iolib+sockets")
5407 (arguments
5408 (substitute-keyword-arguments (package-arguments sbcl-iolib)
5409 ((#:asd-system-name _) "iolib/sockets")))))
5410
5411 (define-public sbcl-ieee-floats
5412 (let ((commit "566b51a005e81ff618554b9b2f0b795d3b29398d")
5413 (revision "1"))
5414 (package
5415 (name "sbcl-ieee-floats")
5416 (build-system asdf-build-system/sbcl)
5417 (version (git-version "20170924" revision commit))
5418 (home-page "https://github.com/marijnh/ieee-floats/")
5419 (source
5420 (origin
5421 (method git-fetch)
5422 (uri (git-reference
5423 (url home-page)
5424 (commit commit)))
5425 (file-name (git-file-name name version))
5426 (sha256
5427 (base32
5428 "1xyj49j9x3lc84cv3dhbf9ja34ywjk1c46dklx425fxw9mkwm83m"))))
5429 (native-inputs
5430 `(("fiveam" ,sbcl-fiveam)))
5431 (synopsis "IEEE 754 binary representation for floats in Common Lisp")
5432 (description "This is a Common Lisp library that allows to convert
5433 floating point values to IEEE 754 binary representation.")
5434 (license license:bsd-3))))
5435
5436 (define-public cl-ieee-floats
5437 (sbcl-package->cl-source-package sbcl-ieee-floats))
5438
5439 (define sbcl-closure-common
5440 (let ((commit "e3c5f5f454b72b01b89115e581c3c52a7e201e5c")
5441 (revision "1"))
5442 (package
5443 (name "sbcl-closure-common")
5444 (build-system asdf-build-system/sbcl)
5445 (version (git-version "20101006" revision commit))
5446 (home-page "https://common-lisp.net/project/cxml/")
5447 (source
5448 (origin
5449 (method git-fetch)
5450 (uri (git-reference
5451 (url "https://github.com/sharplispers/closure-common")
5452 (commit commit)))
5453 (file-name (git-file-name name version))
5454 (sha256
5455 (base32
5456 "0k5r2qxn122pxi301ijir3nayi9sg4d7yiy276l36qmzwhp4mg5n"))))
5457 (inputs
5458 `(("trivial-gray-streams" ,sbcl-trivial-gray-streams)
5459 ("babel" ,sbcl-babel)))
5460 (synopsis "Support Common Lisp library for CXML")
5461 (description "Closure-common is an internal helper library. The name
5462 Closure is a reference to the web browser it was originally written for.")
5463 ;; TODO: License?
5464 (license #f))))
5465
5466 (define-public sbcl-cxml+xml
5467 (let ((commit "00b22bf4c4cf11c993d5866fae284f95ab18e6bf")
5468 (revision "1"))
5469 (package
5470 (name "sbcl-cxml+xml")
5471 (build-system asdf-build-system/sbcl)
5472 (version (git-version "0.0.0" revision commit))
5473 (home-page "https://common-lisp.net/project/cxml/")
5474 (source
5475 (origin
5476 (method git-fetch)
5477 (uri (git-reference
5478 (url "https://github.com/sharplispers/cxml")
5479 (commit commit)))
5480 (file-name (git-file-name name version))
5481 (sha256
5482 (base32
5483 "13kif7rf3gqdycsk9zq0d7y0g9y81krkl0z87k0p2fkbjfgrph37"))))
5484 (inputs
5485 `(("closure-common" ,sbcl-closure-common)
5486 ("puri" ,sbcl-puri)
5487 ("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
5488 (arguments
5489 `(#:asd-file "cxml.asd"
5490 #:asd-system-name "cxml/xml"))
5491 (synopsis "Common Lisp XML parser")
5492 (description "CXML implements a namespace-aware, validating XML 1.0
5493 parser as well as the DOM Level 2 Core interfaces. Two parser interfaces are
5494 offered, one SAX-like, the other similar to StAX.")
5495 (license license:llgpl))))
5496
5497 (define sbcl-cxml+dom
5498 (package
5499 (inherit sbcl-cxml+xml)
5500 (name "sbcl-cxml+dom")
5501 (inputs
5502 `(("closure-common" ,sbcl-closure-common)
5503 ("puri" ,sbcl-puri)
5504 ("cxml+xml" ,sbcl-cxml+xml)))
5505 (arguments
5506 `(#:asd-file "cxml.asd"
5507 #:asd-system-name "cxml/dom"))))
5508
5509 (define sbcl-cxml+klacks
5510 (package
5511 (inherit sbcl-cxml+xml)
5512 (name "sbcl-cxml+klacks")
5513 (inputs
5514 `(("closure-common" ,sbcl-closure-common)
5515 ("puri" ,sbcl-puri)
5516 ("cxml+xml" ,sbcl-cxml+xml)))
5517 (arguments
5518 `(#:asd-file "cxml.asd"
5519 #:asd-system-name "cxml/klacks"))))
5520
5521 (define sbcl-cxml+test
5522 (package
5523 (inherit sbcl-cxml+xml)
5524 (name "sbcl-cxml+test")
5525 (inputs
5526 `(("closure-common" ,sbcl-closure-common)
5527 ("puri" ,sbcl-puri)
5528 ("cxml+xml" ,sbcl-cxml+xml)))
5529 (arguments
5530 `(#:asd-file "cxml.asd"
5531 #:asd-system-name "cxml/test"))))
5532
5533 (define-public sbcl-cxml
5534 (package
5535 (inherit sbcl-cxml+xml)
5536 (name "sbcl-cxml")
5537 (inputs
5538 `(("closure-common" ,sbcl-closure-common)
5539 ("puri" ,sbcl-puri)
5540 ("trivial-gray-streams" ,sbcl-trivial-gray-streams)
5541 ("cxml+dom" ,sbcl-cxml+dom)
5542 ("cxml+klacks" ,sbcl-cxml+klacks)
5543 ("cxml+test" ,sbcl-cxml+test)))
5544 (arguments
5545 `(#:asd-file "cxml.asd"
5546 #:asd-system-name "cxml"
5547 #:phases
5548 (modify-phases %standard-phases
5549 (add-after 'build 'install-dtd
5550 (lambda* (#:key outputs #:allow-other-keys)
5551 (install-file "catalog.dtd"
5552 (string-append
5553 (assoc-ref outputs "out")
5554 "/lib/" (%lisp-type)))))
5555 (add-after 'create-asd 'remove-component
5556 ;; XXX: The original .asd has no components, but our build system
5557 ;; creates an entry nonetheless. We need to remove it for the
5558 ;; generated .asd to load properly. See trivia.trivial for a
5559 ;; similar problem.
5560 (lambda* (#:key outputs #:allow-other-keys)
5561 (let* ((out (assoc-ref outputs "out"))
5562 (asd (string-append out "/lib/sbcl/cxml.asd")))
5563 (substitute* asd
5564 ((" :components
5565 ")
5566 ""))
5567 (substitute* asd
5568 ((" *\\(\\(:compiled-file \"cxml--system\"\\)\\)")
5569 ""))))))))))
5570
5571 (define-public cl-cxml
5572 (sbcl-package->cl-source-package sbcl-cxml))
5573
5574 (define-public sbcl-cl-reexport
5575 (let ((commit "312f3661bbe187b5f28536cd7ec2956e91366c3b")
5576 (revision "1"))
5577 (package
5578 (name "sbcl-cl-reexport")
5579 (build-system asdf-build-system/sbcl)
5580 (version (git-version "0.1" revision commit))
5581 (home-page "https://github.com/takagi/cl-reexport")
5582 (source
5583 (origin
5584 (method git-fetch)
5585 (uri (git-reference
5586 (url home-page)
5587 (commit commit)))
5588 (file-name (git-file-name name version))
5589 (sha256
5590 (base32
5591 "1cwpn1m3wrl0fl9plznn7p464db646gnfc8zkyk97dyxski2aq0x"))))
5592 (inputs
5593 `(("alexandria" ,sbcl-alexandria)))
5594 (arguments
5595 ;; TODO: Tests fail because cl-test-more is missing, but I can't find it online.
5596 `(#:tests? #f))
5597 (synopsis "HTTP cookie manager for Common Lisp")
5598 (description "cl-cookie is a Common Lisp library featuring parsing of
5599 cookie headers, cookie creation, cookie jar creation and more.")
5600 (license license:llgpl))))
5601
5602 (define-public cl-reexport
5603 (sbcl-package->cl-source-package sbcl-cl-reexport))
5604
5605 (define-public sbcl-cl-cookie
5606 (let ((commit "cea55aed8b9ad25fafd13defbcb9fe8f41b29546")
5607 (revision "1"))
5608 (package
5609 (name "sbcl-cl-cookie")
5610 (build-system asdf-build-system/sbcl)
5611 (version (git-version "0.9.10" revision commit))
5612 (home-page "https://github.com/fukamachi/cl-cookie")
5613 (source
5614 (origin
5615 (method git-fetch)
5616 (uri (git-reference
5617 (url home-page)
5618 (commit commit)))
5619 (file-name (git-file-name name version))
5620 (sha256
5621 (base32
5622 "090g7z75h98zvc1ldx0vh4jn4086dhjm2w30jcwkq553qmyxwl8h"))))
5623 (inputs
5624 `(("proc-parse" ,sbcl-proc-parse)
5625 ("alexandria" ,sbcl-alexandria)
5626 ("quri" ,sbcl-quri)
5627 ("cl-ppcre" ,sbcl-cl-ppcre)
5628 ("local-time" ,sbcl-local-time)))
5629 (native-inputs
5630 `(("prove-asdf" ,sbcl-prove-asdf)
5631 ("prove" ,sbcl-prove)))
5632 (arguments
5633 ;; TODO: Tests fail because cl-cookie depends on cl-cookie-test.
5634 `(#:tests? #f))
5635 (synopsis "HTTP cookie manager for Common Lisp")
5636 (description "cl-cookie is a Common Lisp library featuring parsing of
5637 cookie headers, cookie creation, cookie jar creation and more.")
5638 (license license:bsd-2))))
5639
5640 (define-public cl-cookie
5641 (sbcl-package->cl-source-package sbcl-cl-cookie))
5642
5643 (define-public sbcl-dexador
5644 (let ((commit "a2714d126cc94bc7a9a6e1e3c08de455b3a66378")
5645 (revision "1"))
5646 (package
5647 (name "sbcl-dexador")
5648 (build-system asdf-build-system/sbcl)
5649 (version (git-version "0.9.10" revision commit))
5650 (home-page "https://github.com/fukamachi/dexador")
5651 (source
5652 (origin
5653 (method git-fetch)
5654 (uri (git-reference
5655 (url home-page)
5656 (commit commit)))
5657 (file-name (git-file-name name version))
5658 (sha256
5659 (base32
5660 "0nbqgn4v3l2z6m1k1bdxfnqpfrk84nxdmz7csz11zzcfs4flkv79"))))
5661 (inputs
5662 `(("trivial-gray-streams" ,sbcl-trivial-gray-streams)
5663 ("babel" ,sbcl-babel)
5664 ("usocket" ,sbcl-usocket)
5665 ("fast-http" ,sbcl-fast-http)
5666 ("quri" ,sbcl-quri)
5667 ("fast-io" ,sbcl-fast-io)
5668 ("chunga" ,sbcl-chunga)
5669 ("cl-ppcre" ,sbcl-cl-ppcre)
5670 ("cl-cookie" ,sbcl-cl-cookie)
5671 ("trivial-mimes" ,sbcl-trivial-mimes)
5672 ("chipz" ,sbcl-chipz)
5673 ("cl-base64" ,sbcl-cl-base64)
5674 ("cl-reexport" ,sbcl-cl-reexport)
5675 ("cl+ssl" ,sbcl-cl+ssl)
5676 ("bordeaux-threads" ,sbcl-bordeaux-threads)
5677 ("alexandria" ,sbcl-alexandria)))
5678 (native-inputs
5679 `(("prove" ,sbcl-prove)
5680 ("prove-asdf" ,sbcl-prove-asdf)
5681 ("lack-request" ,sbcl-lack-request)
5682 ("clack" ,sbcl-clack)
5683 ("babel" ,sbcl-babel)
5684 ("alexandria" ,sbcl-alexandria)
5685 ("cl-ppcre" ,sbcl-cl-ppcre)
5686 ("local-time" ,sbcl-local-time)))
5687 (arguments
5688 ;; TODO: Circular dependency: tests depend on clack-test which depends on dexador.
5689 `(#:tests? #f
5690 #:phases
5691 (modify-phases %standard-phases
5692 (add-after 'unpack 'fix-permissions
5693 (lambda _ (make-file-writable "t/data/test.gz") #t)))))
5694 (synopsis "Yet another HTTP client for Common Lisp")
5695 (description "Dexador is yet another HTTP client for Common Lisp with
5696 neat APIs and connection-pooling. It is meant to supersede Drakma.")
5697 (license license:expat))))
5698
5699 (define-public cl-dexador
5700 (package
5701 (inherit (sbcl-package->cl-source-package sbcl-dexador))
5702 (arguments
5703 `(#:phases
5704 ;; asdf-build-system/source has its own phases and does not inherit
5705 ;; from asdf-build-system/sbcl phases.
5706 (modify-phases %standard-phases/source
5707 (add-after 'unpack 'fix-permissions
5708 (lambda _ (make-file-writable "t/data/test.gz") #t)))))))
5709
5710 (define-public ecl-dexador
5711 (sbcl-package->ecl-package sbcl-dexador))
5712
5713 (define-public sbcl-lisp-namespace
5714 (let ((commit "28107cafe34e4c1c67490fde60c7f92dc610b2e0")
5715 (revision "1"))
5716 (package
5717 (name "sbcl-lisp-namespace")
5718 (build-system asdf-build-system/sbcl)
5719 (version (git-version "0.1" revision commit))
5720 (home-page "https://github.com/guicho271828/lisp-namespace")
5721 (source
5722 (origin
5723 (method git-fetch)
5724 (uri (git-reference
5725 (url home-page)
5726 (commit commit)))
5727 (file-name (git-file-name name version))
5728 (sha256
5729 (base32
5730 "1jw2wykp06z2afb9nm1lgfzll5cjlj36pnknjx614057zkkxq4iy"))))
5731 (inputs
5732 `(("alexandria" ,sbcl-alexandria)))
5733 (native-inputs
5734 `(("fiveam" ,sbcl-fiveam)))
5735 (arguments
5736 `(#:test-asd-file "lisp-namespace.test.asd"
5737 ;; XXX: Component LISP-NAMESPACE-ASD::LISP-NAMESPACE.TEST not found
5738 #:tests? #f))
5739 (synopsis "LISP-N, or extensible namespaces in Common Lisp")
5740 (description "Common Lisp already has major 2 namespaces, function
5741 namespace and value namespace (or variable namespace), but there are actually
5742 more — e.g., class namespace.
5743 This library offers macros to deal with symbols from any namespace.")
5744 (license license:llgpl))))
5745
5746 (define-public cl-lisp-namespace
5747 (sbcl-package->cl-source-package sbcl-lisp-namespace))
5748
5749 (define-public sbcl-trivial-cltl2
5750 (let ((commit "8eec8407df833e8f27df8a388bc10913f16d9e83")
5751 (revision "1"))
5752 (package
5753 (name "sbcl-trivial-cltl2")
5754 (build-system asdf-build-system/sbcl)
5755 (version (git-version "0.1.1" revision commit))
5756 (home-page "https://github.com/Zulu-Inuoe/trivial-cltl2")
5757 (source
5758 (origin
5759 (method git-fetch)
5760 (uri (git-reference
5761 (url home-page)
5762 (commit commit)))
5763 (file-name (git-file-name name version))
5764 (sha256
5765 (base32
5766 "1dyyxz17vqv8hlfwq287gl8xxbvcnq798ajb7p5jdjz91wqf4bgk"))))
5767 (synopsis "Simple CLtL2 compatibility layer for Common Lisp")
5768 (description "This library is a portable compatibility layer around
5769 \"Common Lisp the Language, 2nd
5770 Edition\" (@url{https://www.cs.cmu.edu/Groups/AI/html/cltl/clm/node102.html})
5771 and it exports symbols from implementation-specific packages.")
5772 (license license:llgpl))))
5773
5774 (define-public cl-trivial-cltl2
5775 (sbcl-package->cl-source-package sbcl-trivial-cltl2))
5776
5777 (define-public sbcl-introspect-environment
5778 (let ((commit "fff42f8f8fd0d99db5ad6c5812e53de7d660020b")
5779 (revision "1"))
5780 (package
5781 (name "sbcl-introspect-environment")
5782 (build-system asdf-build-system/sbcl)
5783 (version (git-version "0.1" revision commit))
5784 (home-page "https://github.com/Bike/introspect-environment")
5785 (source
5786 (origin
5787 (method git-fetch)
5788 (uri (git-reference
5789 (url home-page)
5790 (commit commit)))
5791 (file-name (git-file-name name version))
5792 (sha256
5793 (base32
5794 "1i305n0wfmpac63ni4i3vixnnkl8daw5ncxy0k3dv92krgx6qzhp"))))
5795 (native-inputs
5796 `(("fiveam" ,sbcl-fiveam)))
5797 (synopsis "Common Lisp environment introspection portability layer")
5798 (description "This library is a small interface to portable but
5799 nonstandard introspection of Common Lisp environments. It is intended to
5800 allow a bit more compile-time introspection of environments in Common Lisp.
5801
5802 Quite a bit of information is available at the time a macro or compiler-macro
5803 runs; inlining info, type declarations, that sort of thing. This information
5804 is all standard - any Common Lisp program can @code{(declare (integer x))} and
5805 such.
5806
5807 This info ought to be accessible through the standard @code{&environment}
5808 parameters, but it is not. Several implementations keep the information for
5809 their own purposes but do not make it available to user programs, because
5810 there is no standard mechanism to do so.
5811
5812 This library uses implementation-specific hooks to make information available
5813 to users. This is currently supported on SBCL, CCL, and CMUCL. Other
5814 implementations have implementations of the functions that do as much as they
5815 can and/or provide reasonable defaults.")
5816 (license license:wtfpl2))))
5817
5818 (define-public cl-introspect-environment
5819 (sbcl-package->cl-source-package sbcl-introspect-environment))
5820
5821 (define-public sbcl-type-i
5822 (let ((commit "dea233f45f94064105ec09f0767de338f67dcbe2")
5823 (revision "1"))
5824 (package
5825 (name "sbcl-type-i")
5826 (build-system asdf-build-system/sbcl)
5827 (version (git-version "0.1" revision commit))
5828 (home-page "https://github.com/guicho271828/type-i")
5829 (source
5830 (origin
5831 (method git-fetch)
5832 (uri (git-reference
5833 (url home-page)
5834 (commit commit)))
5835 (file-name (git-file-name name version))
5836 (sha256
5837 (base32
5838 "039g5pbrhh65s0bhr9314gmd2nwc2y5lp2377c5qrc2lxky89qs3"))))
5839 (inputs
5840 `(("alexandria" ,sbcl-alexandria)
5841 ("introspect-environment" ,sbcl-introspect-environment)
5842 ("trivia.trivial" ,sbcl-trivia.trivial)))
5843 (native-inputs
5844 `(("fiveam" ,sbcl-fiveam)))
5845 (arguments
5846 `(#:test-asd-file "type-i.test.asd"))
5847 (synopsis "Type inference utility on unary predicates for Common Lisp")
5848 (description "This library tries to provide a way to detect what kind of
5849 type the given predicate is trying to check. This is different from inferring
5850 the return type of a function.")
5851 (license license:llgpl))))
5852
5853 (define-public cl-type-i
5854 (sbcl-package->cl-source-package sbcl-type-i))
5855
5856 (define-public sbcl-optima
5857 (let ((commit "373b245b928c1a5cce91a6cb5bfe5dd77eb36195")
5858 (revision "1"))
5859 (package
5860 (name "sbcl-optima")
5861 (build-system asdf-build-system/sbcl)
5862 (version (git-version "1.0" revision commit))
5863 (home-page "https://github.com/m2ym/optima")
5864 (source
5865 (origin
5866 (method git-fetch)
5867 (uri (git-reference
5868 (url home-page)
5869 (commit commit)))
5870 (file-name (git-file-name name version))
5871 (sha256
5872 (base32
5873 "1yw4ymq7ms89342kkvb3aqxgv0w38m9kd8ikdqxxzyybnkjhndal"))))
5874 (inputs
5875 `(("alexandria" ,sbcl-alexandria)
5876 ("closer-mop" ,sbcl-closer-mop)))
5877 (native-inputs
5878 `(("eos" ,sbcl-eos)))
5879 (arguments
5880 ;; XXX: Circular dependencies: tests depend on optima.ppcre which depends on optima.
5881 `(#:tests? #f
5882 #:test-asd-file "optima.test.asd"))
5883 (synopsis "Optimized pattern matching library for Common Lisp")
5884 (description "Optima is a fast pattern matching library which uses
5885 optimizing techniques widely used in the functional programming world.")
5886 (license license:expat))))
5887
5888 (define-public cl-optima
5889 (sbcl-package->cl-source-package sbcl-optima))
5890
5891 (define-public sbcl-fare-quasiquote
5892 (package
5893 (name "sbcl-fare-quasiquote")
5894 (build-system asdf-build-system/sbcl)
5895 (version "20171130")
5896 (home-page "http://common-lisp.net/project/fare-quasiquote")
5897 (source
5898 (origin
5899 (method url-fetch)
5900 (uri (string-append "http://beta.quicklisp.org/archive/fare-quasiquote/"
5901 (date->string (string->date version "~Y~m~d") "~Y-~m-~d")
5902 "/fare-quasiquote-"
5903 version
5904 "-git.tgz"))
5905 (sha256
5906 (base32
5907 "00brmh7ndsi0c97nibi8cy10j3l4gmkyrfrr5jr5lzkfb7ngyfqa"))))
5908 (inputs
5909 `(("fare-utils" ,sbcl-fare-utils)))
5910 (arguments
5911 ;; XXX: Circular dependencies: Tests depend on subsystems, which depend on the main systems.
5912 `(#:tests? #f
5913 #:phases
5914 (modify-phases %standard-phases
5915 ;; XXX: Require 1.0.0 version of fare-utils, and we package some
5916 ;; commits after 1.0.0.5, but ASDF fails to read the
5917 ;; "-REVISION-COMMIT" part generated by Guix.
5918 (add-after 'unpack 'patch-requirement
5919 (lambda _
5920 (substitute* "fare-quasiquote.asd"
5921 (("\\(:version \"fare-utils\" \"1.0.0\"\\)") "\"fare-utils\"")))))))
5922 (synopsis "Pattern-matching friendly implementation of quasiquote for Common Lisp")
5923 (description "The main purpose of this n+2nd reimplementation of
5924 quasiquote is enable matching of quasiquoted patterns, using Optima or
5925 Trivia.")
5926 (license license:expat)))
5927
5928 (define-public cl-fare-quasiquote
5929 (sbcl-package->cl-source-package sbcl-fare-quasiquote))
5930
5931 (define-public sbcl-fare-quasiquote-optima
5932 (package
5933 (inherit sbcl-fare-quasiquote)
5934 (name "sbcl-fare-quasiquote-optima")
5935 (inputs
5936 `(("optima" ,sbcl-optima)
5937 ("fare-quasiquote" ,sbcl-fare-quasiquote)))
5938 (arguments
5939 '(#:phases
5940 (modify-phases %standard-phases
5941 (add-after 'unpack 'patch-requirement
5942 (lambda _
5943 (substitute* "fare-quasiquote-optima.asd"
5944 (("\\(:version \"optima\" \"1\\.0\"\\)")
5945 "\"optima\""))
5946 #t)))))))
5947
5948 (define-public cl-fare-quasiquote-optima
5949 (sbcl-package->cl-source-package sbcl-fare-quasiquote-optima))
5950
5951 (define-public sbcl-fare-quasiquote-readtable
5952 (package
5953 (inherit sbcl-fare-quasiquote)
5954 (name "sbcl-fare-quasiquote-readtable")
5955 (inputs
5956 `(("fare-quasiquote" ,sbcl-fare-quasiquote)
5957 ("named-readtables" ,sbcl-named-readtables)))
5958 (description "The main purpose of this n+2nd reimplementation of
5959 quasiquote is enable matching of quasiquoted patterns, using Optima or
5960 Trivia.
5961
5962 This package uses fare-quasiquote with named-readtable.")))
5963
5964 (define-public cl-fare-quasiquote-readtable
5965 (sbcl-package->cl-source-package sbcl-fare-quasiquote-readtable))
5966
5967 ;; TODO: Add support for component-less system in asdf-build-system/sbcl.
5968 (define-public sbcl-fare-quasiquote-extras
5969 (package
5970 (inherit sbcl-fare-quasiquote)
5971 (name "sbcl-fare-quasiquote-extras")
5972 (build-system asdf-build-system/sbcl)
5973 (inputs
5974 `(("fare-quasiquote-optima" ,sbcl-fare-quasiquote-optima)
5975 ("fare-quasiquote-readtable" ,sbcl-fare-quasiquote-readtable)))
5976 (arguments
5977 `(#:phases
5978 (modify-phases %standard-phases
5979 (replace 'build
5980 (lambda* (#:key outputs #:allow-other-keys)
5981 (let* ((out (assoc-ref outputs "out"))
5982 (lib (string-append out "/lib/" (%lisp-type))))
5983 (mkdir-p lib)
5984 (install-file "fare-quasiquote-extras.asd" lib)
5985 #t)))
5986 (add-after 'create-asd-file 'fix-asd-file
5987 (lambda* (#:key outputs #:allow-other-keys)
5988 (let* ((out (assoc-ref outputs "out"))
5989 (lib (string-append out "/lib/" (%lisp-type)))
5990 (asd (string-append lib "/fare-quasiquote-extras.asd")))
5991 (substitute* asd
5992 ((":class")
5993 "")
5994 (("asdf/bundle:prebuilt-system")
5995 "")
5996 ((":components")
5997 "")
5998 (("\\(\\(:compiled-file \"fare-quasiquote-extras--system\"\\)\\)")
5999 "")))
6000 #t)))))
6001 (description "This library combines @code{fare-quasiquote-readtable} and
6002 @code{fare-quasiquote-optima}.")))
6003
6004 (define-public cl-fare-quasiquote-extras
6005 (package
6006 (inherit cl-fare-quasiquote)
6007 (name "cl-fare-quasiquote-extras")
6008 (build-system asdf-build-system/source)
6009 (propagated-inputs
6010 `(("fare-quasiquote" ,cl-fare-quasiquote)
6011 ("fare-quasiquote-optima" ,cl-fare-quasiquote-optima)
6012 ("fare-quasiquote-readtable" ,cl-fare-quasiquote-readtable)))
6013 (description "This library combines @code{fare-quasiquote-readtable} and
6014 @code{fare-quasiquote-optima}.")))
6015
6016 (define-public sbcl-trivia.level0
6017 (let ((commit "902e0c65602bbfe96ae82e679330b3771ddc7603")
6018 (revision "1"))
6019 (package
6020 (name "sbcl-trivia.level0")
6021 (build-system asdf-build-system/sbcl)
6022 (version (git-version "0.0.0" revision commit))
6023 (home-page "https://github.com/guicho271828/trivia")
6024 (source
6025 (origin
6026 (method git-fetch)
6027 (uri (git-reference
6028 (url home-page)
6029 (commit commit)))
6030 (file-name (git-file-name name version))
6031 (sha256
6032 (base32
6033 "11qbab30qqnfy9mx3x9fvgcw1jbvh1qn2cqv3p8xdn2m8981jvhr"))))
6034 (inputs
6035 `(("alexandria" ,sbcl-alexandria)))
6036 (synopsis "Pattern matching in Common Lisp")
6037 (description "Trivia is a pattern matching compiler that is compatible
6038 with Optima, another pattern matching library for Common Lisp. It is meant to
6039 be faster and more extensible than Optima.")
6040 (license license:llgpl))))
6041
6042 (define-public sbcl-trivia.level1
6043 (package
6044 (inherit sbcl-trivia.level0)
6045 (name "sbcl-trivia.level1")
6046 (inputs
6047 `(("trivia.level0" ,sbcl-trivia.level0)))
6048 (description "Trivia is a pattern matching compiler that is compatible
6049 with Optima, another pattern matching library for Common Lisp. It is meant to
6050 be faster and more extensible than Optima.
6051
6052 This system contains the core patterns of Trivia.")))
6053
6054 (define-public sbcl-trivia.level2
6055 (package
6056 (inherit sbcl-trivia.level0)
6057 (name "sbcl-trivia.level2")
6058 (inputs
6059 `(("trivia.level1" ,sbcl-trivia.level1)
6060 ("lisp-namespace" ,sbcl-lisp-namespace)
6061 ("trivial-cltl2" ,sbcl-trivial-cltl2)
6062 ("closer-mop" ,sbcl-closer-mop)))
6063 (description "Trivia is a pattern matching compiler that is compatible
6064 with Optima, another pattern matching library for Common Lisp. It is meant to
6065 be faster and more extensible than Optima.
6066
6067 This system contains a non-optimized pattern matcher compatible with Optima,
6068 with extensible optimizer interface.")))
6069
6070 (define-public sbcl-trivia.trivial
6071 (package
6072 (inherit sbcl-trivia.level0)
6073 (name "sbcl-trivia.trivial")
6074 (inputs
6075 `(("trivia.level2" ,sbcl-trivia.level2)))
6076 (arguments
6077 `(#:phases
6078 (modify-phases %standard-phases
6079 (replace 'create-asd-file
6080 (lambda* (#:key outputs inputs #:allow-other-keys)
6081 (let* ((out (assoc-ref outputs "out"))
6082 (lib (string-append out "/lib/" (%lisp-type)))
6083 (level2 (assoc-ref inputs "trivia.level2")))
6084 (mkdir-p lib)
6085 (install-file "trivia.trivial.asd" lib)
6086 ;; XXX: This .asd does not have any component and the build
6087 ;; system fails to work in this case. We should update the
6088 ;; build system to handle component-less .asd.
6089 ;; TODO: How do we append to file in Guile? It seems that
6090 ;; (open-file ... "a") gets a "Permission denied".
6091 (substitute* (string-append lib "/trivia.trivial.asd")
6092 (("\"\\)")
6093 (string-append "\")
6094
6095 (progn (asdf/source-registry:ensure-source-registry)
6096 (setf (gethash
6097 \"trivia.level2\"
6098 asdf/source-registry:*source-registry*)
6099 #p\""
6100 level2
6101 "/share/common-lisp/sbcl-bundle-systems/trivia.level2.asd\"))")))))))))
6102 (description "Trivia is a pattern matching compiler that is compatible
6103 with Optima, another pattern matching library for Common Lisp. It is meant to
6104 be faster and more extensible than Optima.
6105
6106 This system contains the base level system of Trivia with a trivial optimizer.")))
6107
6108 (define-public sbcl-trivia.balland2006
6109 (package
6110 (inherit sbcl-trivia.level0)
6111 (name "sbcl-trivia.balland2006")
6112 (inputs
6113 `(("trivia.trivial" ,sbcl-trivia.trivial)
6114 ("iterate" ,sbcl-iterate)
6115 ("type-i" ,sbcl-type-i)
6116 ("alexandria" ,sbcl-alexandria)))
6117 (arguments
6118 ;; Tests are done in trivia itself.
6119 `(#:tests? #f))
6120 (description "Trivia is a pattern matching compiler that is compatible
6121 with Optima, another pattern matching library for Common Lisp. It is meant to
6122 be faster and more extensible than Optima.
6123
6124 This system contains the base level system of Trivia with a trivial optimizer.")))
6125
6126 (define-public sbcl-trivia.ppcre
6127 (package
6128 (inherit sbcl-trivia.level0)
6129 (name "sbcl-trivia.ppcre")
6130 (inputs
6131 `(("trivia.trivial" ,sbcl-trivia.trivial)
6132 ("cl-ppcre" ,sbcl-cl-ppcre)))
6133 (description "Trivia is a pattern matching compiler that is compatible
6134 with Optima, another pattern matching library for Common Lisp. It is meant to
6135 be faster and more extensible than Optima.
6136
6137 This system contains the PPCRE extension.")))
6138
6139 (define-public sbcl-trivia.quasiquote
6140 (package
6141 (inherit sbcl-trivia.level0)
6142 (name "sbcl-trivia.quasiquote")
6143 (inputs
6144 `(("trivia.trivial" ,sbcl-trivia.trivial)
6145 ("fare-quasiquote" ,sbcl-fare-quasiquote)
6146 ("fare-quasiquote-readtable" ,sbcl-fare-quasiquote-readtable)))
6147 (description "Trivia is a pattern matching compiler that is compatible
6148 with Optima, another pattern matching library for Common Lisp. It is meant to
6149 be faster and more extensible than Optima.
6150
6151 This system contains the fare-quasiquote extension.")))
6152
6153 (define-public sbcl-trivia.cffi
6154 (package
6155 (inherit sbcl-trivia.level0)
6156 (name "sbcl-trivia.cffi")
6157 (inputs
6158 `(("cffi" ,sbcl-cffi)
6159 ("trivia.trivial" ,sbcl-trivia.trivial)))
6160 (description "Trivia is a pattern matching compiler that is compatible
6161 with Optima, another pattern matching library for Common Lisp. It is meant to
6162 be faster and more extensible than Optima.
6163
6164 This system contains the CFFI foreign slot access extension.")))
6165
6166 (define-public sbcl-trivia
6167 (package
6168 (inherit sbcl-trivia.level0)
6169 (name "sbcl-trivia")
6170 (inputs
6171 `(("trivia.balland2006" ,sbcl-trivia.balland2006)))
6172 (native-inputs
6173 `(("fiveam" ,sbcl-fiveam)
6174 ("trivia.ppcre" ,sbcl-trivia.ppcre)
6175 ("trivia.quasiquote" ,sbcl-trivia.quasiquote)
6176 ("trivia.cffi" ,sbcl-trivia.cffi)
6177 ("optima" ,sbcl-optima)))
6178 (arguments
6179 `(#:test-asd-file "trivia.test.asd"
6180 #:phases
6181 (modify-phases %standard-phases
6182 (add-after 'create-asd 'remove-component
6183 ;; XXX: The original .asd has no components, but our build system
6184 ;; creates an entry nonetheless. We need to remove it for the
6185 ;; generated .asd to load properly. See trivia.trivial for a
6186 ;; similar problem.
6187 (lambda* (#:key outputs #:allow-other-keys)
6188 (let* ((out (assoc-ref outputs "out"))
6189 (asd (string-append out "/lib/" (%lisp-type) "/trivia.asd")))
6190 (substitute* asd
6191 ((" :components
6192 ")
6193 ""))
6194 (substitute* asd
6195 ((" *\\(\\(:compiled-file \"trivia--system\"\\)\\)")
6196 ""))))))))
6197 (description "Trivia is a pattern matching compiler that is compatible
6198 with Optima, another pattern matching library for Common Lisp. It is meant to
6199 be faster and more extensible than Optima.")))
6200
6201 (define-public cl-trivia
6202 (sbcl-package->cl-source-package sbcl-trivia))
6203
6204 (define-public sbcl-mk-string-metrics
6205 (package
6206 (name "sbcl-mk-string-metrics")
6207 (version "0.1.2")
6208 (home-page "https://github.com/cbaggers/mk-string-metrics/")
6209 (source (origin
6210 (method git-fetch)
6211 (uri (git-reference
6212 (url home-page)
6213 (commit version)))
6214 (sha256
6215 (base32 "0bg0bv2mfd4k0g3x72x563hvmrx18xavaffr6xk5rh4if5j7kcf6"))
6216 (file-name (git-file-name name version))))
6217 (build-system asdf-build-system/sbcl)
6218 (synopsis "Calculate various string metrics efficiently in Common Lisp")
6219 (description "This library implements efficient algorithms that calculate
6220 various string metrics in Common Lisp:
6221
6222 @itemize
6223 @item Damerau-Levenshtein distance
6224 @item Hamming distance
6225 @item Jaccard similarity coefficient
6226 @item Jaro distance
6227 @item Jaro-Winkler distance
6228 @item Levenshtein distance
6229 @item Normalized Damerau-Levenshtein distance
6230 @item Normalized Levenshtein distance
6231 @item Overlap coefficient
6232 @end itemize\n")
6233 (license license:x11)))
6234
6235 (define-public cl-mk-string-metrics
6236 (sbcl-package->cl-source-package sbcl-mk-string-metrics))
6237
6238 (define-public sbcl-cl-str
6239 (let ((commit "3d5ec86e3a0199e5973aacde951086dfd754b5e5"))
6240 (package
6241 (name "sbcl-cl-str")
6242 (version (git-version "0.8" "1" commit))
6243 (home-page "https://github.com/vindarel/cl-str")
6244 (source (origin
6245 (method git-fetch)
6246 (uri (git-reference
6247 (url home-page)
6248 (commit commit)))
6249 (sha256
6250 (base32 "0szzzbygw9h985yxz909vvqrp69pmpcpahn7hn350lnyjislk9ga"))
6251 (file-name (git-file-name name version))))
6252 (build-system asdf-build-system/sbcl)
6253 (inputs
6254 `(("cl-ppcre" ,sbcl-cl-ppcre)
6255 ("cl-ppcre-unicode" ,sbcl-cl-ppcre-unicode)))
6256 (native-inputs
6257 `(("prove" ,sbcl-prove)
6258 ("prove-asdf" ,sbcl-prove-asdf)))
6259 (arguments
6260 `(#:asd-file "str.asd"
6261 #:asd-system-name "str"
6262 #:test-asd-file "str.test.asd"))
6263 (synopsis "Modern, consistent and terse Common Lisp string manipulation library")
6264 (description "A modern and consistent Common Lisp string manipulation
6265 library that focuses on modernity, simplicity and discoverability:
6266 @code{(str:trim s)} instead of @code{(string-trim '(#\\Space ...) s)}), or
6267 @code{str:concat strings} instead of an unusual format construct; one
6268 discoverable library instead of many; consistency and composability, where
6269 @code{s} is always the last argument, which makes it easier to feed pipes and
6270 arrows.")
6271 (license license:expat))))
6272
6273 (define-public cl-str
6274 (sbcl-package->cl-source-package sbcl-cl-str))
6275
6276 (define-public sbcl-cl-xmlspam
6277 (let ((commit "ea06abcca2a73a9779bcfb09081e56665f94e22a"))
6278 (package
6279 (name "sbcl-cl-xmlspam")
6280 (build-system asdf-build-system/sbcl)
6281 (version (git-version "0.0.0" "1" commit))
6282 (home-page "https://github.com/rogpeppe/cl-xmlspam")
6283 (source
6284 (origin
6285 (method git-fetch)
6286 (uri (git-reference
6287 (url home-page)
6288 (commit commit)))
6289 (file-name (string-append name "-" version))
6290 (sha256
6291 (base32
6292 "0w4rqvrgdgk3fwfq3kx4r7wwdr2bv3b6n3bdqwsiriw9psqzpz2s"))))
6293 (inputs
6294 `(("cxml" ,sbcl-cxml)
6295 ("cl-ppcre" ,sbcl-cl-ppcre)))
6296 (synopsis "Concise, regexp-like pattern matching on streaming XML for Common Lisp")
6297 (description "CXML does an excellent job at parsing XML elements, but what
6298 do you do when you have a XML file that's larger than you want to fit in
6299 memory, and you want to extract some information from it? Writing code to deal
6300 with SAX events, or even using Klacks, quickly becomes tedious.
6301 @code{cl-xmlspam} (for XML Stream PAttern Matcher) is designed to make it easy
6302 to write code that mirrors the structure of the XML that it's parsing. It
6303 also makes it easy to shift paradigms when necessary - the usual Lisp control
6304 constructs can be used interchangeably with pattern matching, and the full
6305 power of CXML is available when necessary.")
6306 (license license:bsd-3))))
6307
6308 ;; TODO: dbus uses ASDF's package-inferred-system which is not supported by
6309 ;; asdf-build-system/sbcl as of 2019-08-02. We should fix
6310 ;; asdf-build-system/sbcl.
6311 (define-public cl-dbus
6312 (let ((commit "24b452df3a45ca5dc95015500f34baad175c981a")
6313 (revision "1"))
6314 (package
6315 (name "cl-dbus")
6316 (build-system asdf-build-system/source)
6317 (version (git-version "20190408" revision commit))
6318 (home-page "https://github.com/death/dbus")
6319 (source
6320 (origin
6321 (method git-fetch)
6322 (uri (git-reference
6323 (url home-page)
6324 (commit commit)))
6325 (file-name (git-file-name name version))
6326 (sha256
6327 (base32
6328 "0fw2q866yddbf23nk9pxphm9gsasx35vjyss82xzvndnjmzlqfl5"))))
6329 ;; Inputs must be propagated or else packages depending on this won't have the necessary packages.
6330 (propagated-inputs
6331 `(("alexandria" ,sbcl-alexandria)
6332 ("trivial-garbage" ,sbcl-trivial-garbage)
6333 ("babel" ,sbcl-babel)
6334 ("iolib" ,sbcl-iolib)
6335 ("iolib+multiplex" ,(@@ (gnu packages lisp-xyz) sbcl-iolib+multiplex))
6336 ("iolib+syscalls" ,(@@ (gnu packages lisp-xyz) sbcl-iolib+syscalls))
6337 ("iolib+streams" ,(@@ (gnu packages lisp-xyz) sbcl-iolib+streams))
6338 ("iolib+sockets" ,(@@ (gnu packages lisp-xyz) sbcl-iolib+sockets))
6339 ("ieee-floats" ,sbcl-ieee-floats)
6340 ("flexi-streams" ,sbcl-flexi-streams)
6341 ("cl-xmlspam" ,sbcl-cl-xmlspam)
6342 ("ironclad" ,sbcl-ironclad)))
6343 (synopsis "D-Bus client library for Common Lisp")
6344 (description "This is a Common Lisp library that allows to publish D-Bus
6345 objects as well as send and notify other objects connected to a bus.")
6346 (license license:bsd-2))))
6347
6348 (define-public sbcl-cl-hooks
6349 (let ((commit "5b638083f3b4f1221a52631d9c8a0a265565cac7")
6350 (revision "1"))
6351 (package
6352 (name "sbcl-cl-hooks")
6353 (build-system asdf-build-system/sbcl)
6354 (version (git-version "0.2.1" revision commit))
6355 (home-page "https://github.com/scymtym/architecture.hooks")
6356 (source
6357 (origin
6358 (method git-fetch)
6359 (uri (git-reference
6360 (url home-page)
6361 (commit commit)))
6362 (file-name (git-file-name name version))
6363 (sha256
6364 (base32
6365 "0bg3l0a28lw5gqqjp6p6b5nhwqk46sgkb7184w5qbfngw1hk8x9y"))))
6366 (inputs
6367 `(("alexandria" ,sbcl-alexandria)
6368 ("let-plus" ,sbcl-let-plus)
6369 ("trivial-garbage" ,sbcl-trivial-garbage)
6370 ("closer-mop" ,sbcl-closer-mop)))
6371 (native-inputs
6372 `(("fiveam" ,sbcl-fiveam)))
6373 (synopsis "Hooks extension point mechanism (as in Emacs) for Common Lisp")
6374 (description "A hook, in the present context, is a certain kind of
6375 extension point in a program that allows interleaving the execution of
6376 arbitrary code with the execution of a the program without introducing any
6377 coupling between the two. Hooks are used extensively in the extensible editor
6378 Emacs.
6379
6380 In the Common LISP Object System (CLOS), a similar kind of extensibility is
6381 possible using the flexible multi-method dispatch mechanism. It may even seem
6382 that the concept of hooks does not provide any benefits over the possibilities
6383 of CLOS. However, there are some differences:
6384
6385 @itemize
6386
6387 @item There can be only one method for each combination of specializers and
6388 qualifiers. As a result this kind of extension point cannot be used by
6389 multiple extensions independently.
6390 @item Removing code previously attached via a @code{:before}, @code{:after} or
6391 @code{:around} method can be cumbersome.
6392 @item There could be other or even multiple extension points besides @code{:before}
6393 and @code{:after} in a single method.
6394 @item Attaching codes to individual objects using eql specializers can be
6395 cumbersome.
6396 @item Introspection of code attached a particular extension point is
6397 cumbersome since this requires enumerating and inspecting the methods of a
6398 generic function.
6399 @end itemize
6400
6401 This library tries to complement some of these weaknesses of method-based
6402 extension-points via the concept of hooks.")
6403 (license license:llgpl))))
6404
6405 (define-public cl-hooks
6406 (sbcl-package->cl-source-package sbcl-cl-hooks))
6407
6408 (define-public ecl-cl-hooks
6409 (sbcl-package->ecl-package sbcl-cl-hooks))
6410
6411 (define-public sbcl-s-sysdeps
6412 (let ((commit "d28246b5dffef9e73a0e0e6cfbc4e878006fe34d")
6413 (revision "1"))
6414 (package
6415 (name "sbcl-s-sysdeps")
6416 (build-system asdf-build-system/sbcl)
6417 (version (git-version "1" revision commit))
6418 (home-page "https://github.com/svenvc/s-sysdeps")
6419 (source
6420 (origin
6421 (method git-fetch)
6422 (uri (git-reference
6423 (url home-page)
6424 (commit commit)))
6425 (file-name (git-file-name name version))
6426 (sha256
6427 (base32
6428 "14b69b81yrxmjlvmm3lfxk04x5v7hqz4fql121334wh72czznfh9"))))
6429 (synopsis "Common Lisp abstraction layer over platform dependent functionality")
6430 (description "@code{s-sysdeps} is an abstraction layer over platform
6431 dependent functionality. This simple package is used as a building block in a
6432 number of other open source projects.
6433
6434 @code{s-sysdeps} abstracts:
6435
6436 @itemize
6437 @item managing processes,
6438 @item implementing a standard TCP/IP server,
6439 @item opening a client TCP/IP socket stream,
6440 @item working with process locks.
6441 @end itemize\n")
6442 (license license:llgpl))))
6443
6444 (define-public cl-s-sysdeps
6445 (sbcl-package->cl-source-package sbcl-s-sysdeps))
6446
6447 (define-public ecl-s-sysdeps
6448 (sbcl-package->ecl-package sbcl-s-sysdeps))
6449
6450 (define-public sbcl-cl-prevalence
6451 (let ((commit "c163c227ed85d430b82cb1e3502f72d4f88e3cfa")
6452 (revision "1"))
6453 (package
6454 (name "sbcl-cl-prevalence")
6455 (build-system asdf-build-system/sbcl)
6456 (version (git-version "5" revision commit))
6457 (home-page "https://github.com/40ants/cl-prevalence")
6458 (source
6459 (origin
6460 (method git-fetch)
6461 (uri (git-reference
6462 (url home-page)
6463 (commit commit)))
6464 (file-name (git-file-name name version))
6465 (sha256
6466 (base32
6467 "1i9zj1q2ahgwch56an21yzbgkynz0kab9fyxkq9mg8p3xrv38jjn"))))
6468 (inputs
6469 `(("s-sysdeps" ,sbcl-s-sysdeps)
6470 ("s-xml" ,sbcl-s-xml)))
6471 (synopsis "Implementation of object prevalence for Common Lisp")
6472 (description "This Common Lisp library implements object prevalence (see
6473 @url{https://en.wikipedia.org/wiki/System_prevalence}). It allows
6474 for (de)serializing to and from s-exps as well as XML. Serialization of arbitrary
6475 classes and cyclic data structures are supported.")
6476 (license license:llgpl))))
6477
6478 (define-public cl-prevalence
6479 (sbcl-package->cl-source-package sbcl-cl-prevalence))
6480
6481 (define-public ecl-cl-prevalence
6482 (sbcl-package->ecl-package sbcl-cl-prevalence))
6483
6484 (define-public sbcl-series
6485 (let ((commit "da9061b336119d1e5214aff9117171d494d5a58a")
6486 (revision "1"))
6487 (package
6488 (name "sbcl-series")
6489 (version (git-version "2.2.11" revision commit))
6490 (source
6491 (origin
6492 (method git-fetch)
6493 (uri (git-reference
6494 (url "git://git.code.sf.net/p/series/series")
6495 (commit commit)))
6496 (file-name (git-file-name name version))
6497 (sha256
6498 (base32
6499 "07hk2lhfx42zk018pxqvn4gs77vd4n4g8m4xxbqaxgca76mifwfw"))))
6500 (build-system asdf-build-system/sbcl)
6501 (arguments
6502 ;; Disable the tests, they are apparently buggy and I didn't find
6503 ;; a simple way to make them run and pass.
6504 '(#:tests? #f))
6505 (synopsis "Series data structure for Common Lisp")
6506 (description
6507 "This Common Lisp library provides a series data structure much like
6508 a sequence, with similar kinds of operations. The difference is that in many
6509 situations, operations on series may be composed functionally and yet execute
6510 iteratively, without the need to construct intermediate series values
6511 explicitly. In this manner, series provide both the clarity of a functional
6512 programming style and the efficiency of an iterative programming style.")
6513 (home-page "http://series.sourceforge.net/")
6514 (license license:expat))))
6515
6516 (define-public cl-series
6517 (sbcl-package->cl-source-package sbcl-series))
6518
6519 (define-public ecl-series
6520 (sbcl-package->ecl-package sbcl-series))
6521
6522 (define-public sbcl-periods
6523 (let ((commit "983d4a57325db3c8def942f163133cec5391ec28")
6524 (revision "1"))
6525 (package
6526 (name "sbcl-periods")
6527 (version (git-version "0.0.2" revision commit))
6528 (source
6529 (origin
6530 (method git-fetch)
6531 (uri (git-reference
6532 (url "https://github.com/jwiegley/periods.git")
6533 (commit commit)))
6534 (file-name (git-file-name name version))
6535 (sha256
6536 (base32
6537 "0z30jr3lxz3cmi019fsl4lgcgwf0yqpn95v9zkkkwgymdrkd4lga"))))
6538 (build-system asdf-build-system/sbcl)
6539 (inputs
6540 `(("local-time" ,sbcl-local-time)))
6541 (synopsis "Common Lisp library for manipulating date/time objects")
6542 (description
6543 "Periods is a Common Lisp library providing a set of utilities for
6544 manipulating times, distances between times, and both contiguous and
6545 discontiguous ranges of time.")
6546 (home-page "https://github.com/jwiegley/periods")
6547 (license license:bsd-3))))
6548
6549 (define-public cl-periods
6550 (sbcl-package->cl-source-package sbcl-periods))
6551
6552 (define-public ecl-periods
6553 (sbcl-package->ecl-package sbcl-periods))
6554
6555 (define-public sbcl-periods-series
6556 (package
6557 (inherit sbcl-periods)
6558 (name "sbcl-periods-series")
6559 (inputs
6560 `(("periods" ,sbcl-periods)
6561 ("series" ,sbcl-series)))
6562 (arguments
6563 '(#:asd-file "periods-series.asd"
6564 #:asd-system-name "periods-series"))
6565 (description
6566 "Periods-series is an extension of the periods Common Lisp library
6567 providing functions compatible with the series Common Lisp library.")))
6568
6569 (define-public cl-periods-series
6570 (sbcl-package->cl-source-package sbcl-periods-series))
6571
6572 (define-public ecl-periods-series
6573 (sbcl-package->ecl-package sbcl-periods-series))
6574
6575 (define-public sbcl-metatilities-base
6576 (let ((commit "6eaa9e3ff0939a93a92109dd0fcd218de85417d5")
6577 (revision "1"))
6578 (package
6579 (name "sbcl-metatilities-base")
6580 (version (git-version "0.6.6" revision commit))
6581 (source
6582 (origin
6583 (method git-fetch)
6584 (uri (git-reference
6585 (url "https://github.com/gwkkwg/metatilities-base.git")
6586 (commit commit)))
6587 (file-name (git-file-name name version))
6588 (sha256
6589 (base32
6590 "0xpa86pdzlnf4v5g64j3ifaplx71sx2ha8b7vvakswi652679ma0"))))
6591 (build-system asdf-build-system/sbcl)
6592 (native-inputs
6593 `(("lift" ,sbcl-lift)))
6594 (synopsis "Core of the metatilities Common Lisp library")
6595 (description
6596 "Metatilities-base is the core of the metatilities Common Lisp library
6597 which implements a set of utilities.")
6598 (home-page "https://common-lisp.net/project/metatilities-base/")
6599 (license license:expat))))
6600
6601 (define-public cl-metatilities-base
6602 (sbcl-package->cl-source-package sbcl-metatilities-base))
6603
6604 (define-public ecl-metatilities-base
6605 (sbcl-package->ecl-package sbcl-metatilities-base))
6606
6607 (define-public sbcl-cl-containers
6608 (let ((commit "810927e19d933bcf38ffeb7a23ce521efc432d45")
6609 (revision "1"))
6610 (package
6611 (name "sbcl-cl-containers")
6612 (version (git-version "0.12.1" revision commit))
6613 (source
6614 (origin
6615 (method git-fetch)
6616 (uri (git-reference
6617 (url "https://github.com/gwkkwg/cl-containers.git")
6618 (commit commit)))
6619 (file-name (git-file-name name version))
6620 (sha256
6621 (base32
6622 "1s9faxw7svhbjpkhfrz2qxgjm3cvyjb8wpyb4m8dx4i5g7vvprkv"))))
6623 (build-system asdf-build-system/sbcl)
6624 (native-inputs
6625 `(("lift" ,sbcl-lift)))
6626 (inputs
6627 `(("metatilities-base" ,sbcl-metatilities-base)))
6628 (arguments
6629 '(#:phases
6630 (modify-phases %standard-phases
6631 (add-after 'unpack 'relax-version-checks
6632 (lambda _
6633 (substitute* "cl-containers.asd"
6634 (("\\(:version \"metatilities-base\" \"0\\.6\\.6\"\\)")
6635 "\"metatilities-base\""))
6636 (substitute* "cl-containers-test.asd"
6637 (("\\(:version \"lift\" \"1\\.7\\.0\"\\)")
6638 "\"lift\""))
6639 #t)))))
6640 (synopsis "Container library for Common Lisp")
6641 (description
6642 "Common Lisp ships with a set of powerful built in data structures
6643 including the venerable list, full featured arrays, and hash-tables.
6644 CL-containers enhances and builds on these structures by adding containers
6645 that are not available in native Lisp (for example: binary search trees,
6646 red-black trees, sparse arrays and so on), and by providing a standard
6647 interface so that they are simpler to use and so that changing design
6648 decisions becomes significantly easier.")
6649 (home-page "https://common-lisp.net/project/cl-containers/")
6650 (license license:expat))))
6651
6652 (define-public cl-containers
6653 (sbcl-package->cl-source-package sbcl-cl-containers))
6654
6655 (define-public ecl-cl-containers
6656 (sbcl-package->ecl-package sbcl-cl-containers))
6657
6658 (define-public sbcl-xlunit
6659 (let ((commit "3805d34b1d8dc77f7e0ee527a2490194292dd0fc")
6660 (revision "1"))
6661 (package
6662 (name "sbcl-xlunit")
6663 (version (git-version "0.6.3" revision commit))
6664 (source
6665 (origin
6666 (method git-fetch)
6667 (uri (git-reference
6668 (url "http://git.kpe.io/xlunit.git")
6669 (commit commit)))
6670 (file-name (git-file-name name version))
6671 (sha256
6672 (base32
6673 "0argfmp9nghs4sihyj3f8ch9qfib2b7ll07v5m9ziajgzsfl5xw3"))))
6674 (build-system asdf-build-system/sbcl)
6675 (arguments
6676 '(#:phases
6677 (modify-phases %standard-phases
6678 (add-after 'unpack 'fix-tests
6679 (lambda _
6680 (substitute* "xlunit.asd"
6681 ((" :force t") ""))
6682 #t)))))
6683 (synopsis "Unit testing package for Common Lisp")
6684 (description
6685 "The XLUnit package is a toolkit for building test suites. It is based
6686 on the XPTest package by Craig Brozensky and the JUnit package by Kent Beck.")
6687 (home-page "http://quickdocs.org/xlunit/")
6688 (license license:bsd-3))))
6689
6690 (define-public cl-xlunit
6691 (sbcl-package->cl-source-package sbcl-xlunit))
6692
6693 (define-public ecl-xlunit
6694 (sbcl-package->ecl-package sbcl-xlunit))
6695
6696 (define-public sbcl-fprog
6697 (let ((commit "7016d1a98215f82605d1c158e7a16504ca1f4636")
6698 (revision "1"))
6699 (package
6700 (name "sbcl-fprog")
6701 (version (git-version "1.0.0" revision commit))
6702 (source
6703 (origin
6704 (method git-fetch)
6705 (uri (git-reference
6706 (url "https://github.com/jwiegley/cambl.git")
6707 (commit commit)))
6708 (file-name (git-file-name name version))
6709 (sha256
6710 (base32
6711 "103mry04j2k9vznsxm7wcvccgxkil92cdrv52miwcmxl8daa4jiz"))))
6712 (build-system asdf-build-system/sbcl)
6713 (synopsis "Functional programming utilities for Common Lisp")
6714 (description
6715 "@code{fprog} is a Common Lisp library allowing iteration over
6716 immutable lists sharing identical sublists.")
6717 (home-page "https://github.com/jwiegley/cambl")
6718 (license license:bsd-3))))
6719
6720 (define-public cl-fprog
6721 (sbcl-package->cl-source-package sbcl-fprog))
6722
6723 (define-public ecl-fprog
6724 (sbcl-package->ecl-package sbcl-fprog))
6725
6726 (define-public sbcl-cambl
6727 (let ((commit "7016d1a98215f82605d1c158e7a16504ca1f4636")
6728 (revision "1"))
6729 (package
6730 (inherit sbcl-fprog)
6731 (name "sbcl-cambl")
6732 (version (git-version "4.0.0" revision commit))
6733 (native-inputs
6734 `(("xlunit" ,sbcl-xlunit)))
6735 (inputs
6736 `(("alexandria" ,sbcl-alexandria)
6737 ("cl-containers" ,sbcl-cl-containers)
6738 ("local-time" ,sbcl-local-time)
6739 ("periods" ,sbcl-periods)
6740 ("fprog" ,sbcl-fprog)))
6741 (synopsis "Commoditized amounts and balances for Common Lisp")
6742 (description
6743 "CAMBL is a Common Lisp library providing a convenient facility for
6744 working with commoditized values. It does not allow compound units (and so is
6745 not suited for scientific operations) but does work rather nicely for the
6746 purpose of financial calculations."))))
6747
6748 (define-public cl-cambl
6749 (sbcl-package->cl-source-package sbcl-cambl))
6750
6751 (define-public ecl-cambl
6752 (sbcl-package->ecl-package sbcl-cambl))
6753
6754 (define-public sbcl-cl-ledger
6755 (let ((commit "08e0be41795e804cd36142e51756ad0b1caa377b")
6756 (revision "1"))
6757 (package
6758 (name "sbcl-cl-ledger")
6759 (version (git-version "4.0.0" revision commit))
6760 (source
6761 (origin
6762 (method git-fetch)
6763 (uri (git-reference
6764 (url "https://github.com/ledger/cl-ledger.git")
6765 (commit commit)))
6766 (file-name (git-file-name name version))
6767 (sha256
6768 (base32
6769 "1via0qf6wjcyxnfbmfxjvms0ik9j8rqbifgpmnhrzvkhrq9pv8h1"))))
6770 (build-system asdf-build-system/sbcl)
6771 (inputs
6772 `(("cambl" ,sbcl-cambl)
6773 ("cl-ppcre" ,sbcl-cl-ppcre)
6774 ("local-time" ,sbcl-local-time)
6775 ("periods-series" ,sbcl-periods-series)))
6776 (arguments
6777 '(#:phases
6778 (modify-phases %standard-phases
6779 (add-after 'unpack 'fix-system-definition
6780 (lambda _
6781 (substitute* "cl-ledger.asd"
6782 ((" :build-operation program-op") "")
6783 ((" :build-pathname \"cl-ledger\"") "")
6784 ((" :entry-point \"ledger::main\"") ""))
6785 #t)))))
6786 (synopsis "Common Lisp port of the Ledger accounting system")
6787 (description
6788 "CL-Ledger is a Common Lisp port of the Ledger double-entry accounting
6789 system.")
6790 (home-page "https://github.com/ledger/cl-ledger")
6791 (license license:bsd-3))))
6792
6793 (define-public cl-ledger
6794 (sbcl-package->cl-source-package sbcl-cl-ledger))
6795
6796 (define-public ecl-cl-ledger
6797 (sbcl-package->ecl-package sbcl-cl-ledger))
6798
6799 (define-public sbcl-bst
6800 (let ((commit "34f9c7e8e0a9f2c952fe310ab36cb630d5d9c15a")
6801 (revision "1"))
6802 (package
6803 (name "sbcl-bst")
6804 (version (git-version "1.1" revision commit))
6805 (source
6806 (origin
6807 (method git-fetch)
6808 (uri (git-reference
6809 (url "https://github.com/glv2/bst.git")
6810 (commit commit)))
6811 (file-name (git-file-name name version))
6812 (sha256
6813 (base32
6814 "1amxns7hvvh4arwbh8ciwfzplg127vh37dnbamv1m1kmmnmihfc8"))))
6815 (build-system asdf-build-system/sbcl)
6816 (native-inputs
6817 `(("alexandria" ,sbcl-alexandria)
6818 ("fiveam" ,sbcl-fiveam)))
6819 (synopsis "Binary search tree for Common Lisp")
6820 (description
6821 "BST is a Common Lisp library for working with binary search trees that
6822 can contain any kind of values.")
6823 (home-page "https://github.com/glv2/bst")
6824 (license license:gpl3))))
6825
6826 (define-public cl-bst
6827 (sbcl-package->cl-source-package sbcl-bst))
6828
6829 (define-public ecl-bst
6830 (sbcl-package->ecl-package sbcl-bst))
6831
6832 (define-public sbcl-cl-octet-streams
6833 (package
6834 (name "sbcl-cl-octet-streams")
6835 (version "1.0")
6836 (source
6837 (origin
6838 (method git-fetch)
6839 (uri (git-reference
6840 (url "https://github.com/glv2/cl-octet-streams.git")
6841 (commit (string-append "v" version))))
6842 (file-name (git-file-name name version))
6843 (sha256
6844 (base32
6845 "1d7mn6ydv0j2x4r7clpc9ijjwrnfpxmvhifv8n5j7jh7s744sf8d"))))
6846 (build-system asdf-build-system/sbcl)
6847 (native-inputs
6848 `(("fiveam" ,sbcl-fiveam)))
6849 (inputs
6850 `(("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
6851 (synopsis "In-memory octet streams for Common Lisp")
6852 (description
6853 "CL-octet-streams is a library implementing in-memory octet
6854 streams for Common Lisp. It was inspired by the trivial-octet-streams and
6855 cl-plumbing libraries.")
6856 (home-page "https://github.com/glv2/cl-octet-streams")
6857 (license license:gpl3+)))
6858
6859 (define-public cl-octet-streams
6860 (sbcl-package->cl-source-package sbcl-cl-octet-streams))
6861
6862 (define-public ecl-cl-octet-streams
6863 (sbcl-package->ecl-package sbcl-cl-octet-streams))
6864
6865 (define-public sbcl-lzlib
6866 (let ((commit "0de1db7129fef9a58a059d35a2fa2ecfc5b47b47")
6867 (revision "1"))
6868 (package
6869 (name "sbcl-lzlib")
6870 (version (git-version "1.0" revision commit))
6871 (source
6872 (origin
6873 (method git-fetch)
6874 (uri (git-reference
6875 (url "https://github.com/glv2/cl-lzlib.git")
6876 (commit commit)))
6877 (file-name (git-file-name name version))
6878 (sha256
6879 (base32
6880 "12ny7vj52fgnd8hb8fc8mry92vq4c1x72x2350191m4476j95clz"))))
6881 (build-system asdf-build-system/sbcl)
6882 (native-inputs
6883 `(("fiveam" ,sbcl-fiveam)))
6884 (inputs
6885 `(("cffi" ,sbcl-cffi)
6886 ("cl-octet-streams" ,sbcl-cl-octet-streams)
6887 ("lzlib" ,lzlib)))
6888 (arguments
6889 '(#:phases
6890 (modify-phases %standard-phases
6891 (add-after 'unpack 'fix-paths
6892 (lambda* (#:key inputs #:allow-other-keys)
6893 (substitute* "src/lzlib.lisp"
6894 (("liblz\\.so")
6895 (string-append (assoc-ref inputs "lzlib") "/lib/liblz.so")))
6896 #t)))))
6897 (synopsis "Common Lisp library for lzip (de)compression")
6898 (description
6899 "This Common Lisp library provides functions for lzip (LZMA)
6900 compression/decompression using bindings to the lzlib C library.")
6901 (home-page "https://github.com/glv2/cl-lzlib")
6902 (license license:gpl3+))))
6903
6904 (define-public cl-lzlib
6905 (sbcl-package->cl-source-package sbcl-lzlib))
6906
6907 (define-public ecl-lzlib
6908 (sbcl-package->ecl-package sbcl-lzlib))
6909
6910 (define-public sbcl-chanl
6911 (let ((commit "56e90a126c78b39bb621a01585e8d3b985238e8c")
6912 (revision "1"))
6913 (package
6914 (name "sbcl-chanl")
6915 (version (git-version "0.4.1" revision commit))
6916 (source
6917 (origin
6918 (method git-fetch)
6919 (uri (git-reference
6920 (url "https://github.com/zkat/chanl.git")
6921 (commit commit)))
6922 (file-name (git-file-name name version))
6923 (sha256
6924 (base32
6925 "0b1cf6c12qx5cy1fw2z42jgh566rp3l8nv5qf0qqc569s7bgmrh4"))))
6926 (build-system asdf-build-system/sbcl)
6927 (native-inputs
6928 `(("fiveam" ,sbcl-fiveam)))
6929 (inputs
6930 `(("bordeaux-threads" ,sbcl-bordeaux-threads)))
6931 (synopsis "Portable channel-based concurrency for Common Lisp")
6932 (description "Common Lisp library for channel-based concurrency. In
6933 a nutshell, you create various threads sequentially executing tasks you need
6934 done, and use channel objects to communicate and synchronize the state of these
6935 threads.")
6936 (home-page "https://github.com/zkat/chanl")
6937 (license (list license:expat license:bsd-3)))))
6938
6939 (define-public cl-chanl
6940 (sbcl-package->cl-source-package sbcl-chanl))
6941
6942 (define-public ecl-chanl
6943 (sbcl-package->ecl-package sbcl-chanl))
6944
6945 (define-public sbcl-cl-store
6946 (let ((commit "c787337a16ea8cf8a06227f35933a4ec774746b3")
6947 (revision "1"))
6948 (package
6949 (name "sbcl-cl-store")
6950 (version (git-version "0.8.11" revision commit))
6951 (source
6952 (origin
6953 (method git-fetch)
6954 (uri (git-reference
6955 (url "https://github.com/skypher/cl-store.git")
6956 (commit commit)))
6957 (file-name (git-file-name name version))
6958 (sha256
6959 (base32
6960 "194srkg8nrym19c6i7zbnkzshc1qhqa82m53qnkirz9fw928bqxr"))))
6961 (build-system asdf-build-system/sbcl)
6962 (native-inputs
6963 `(("rt" ,sbcl-rt)))
6964 (synopsis "Common Lisp library to serialize data")
6965 (description
6966 "CL-STORE is a portable serialization package which should give you the
6967 ability to store all Common Lisp data types into streams.")
6968 (home-page "https://www.common-lisp.net/project/cl-store/")
6969 (license license:expat))))
6970
6971 (define-public cl-store
6972 (sbcl-package->cl-source-package sbcl-cl-store))
6973
6974 (define-public ecl-cl-store
6975 (sbcl-package->ecl-package sbcl-cl-store))
6976
6977 (define-public sbcl-cl-gobject-introspection
6978 (let ((commit "7b703e2384945ea0ac39d9b766de434a08d81560")
6979 (revision "0"))
6980 (package
6981 (name "sbcl-cl-gobject-introspection")
6982 (version (git-version "0.3" revision commit))
6983 (home-page "https://github.com/andy128k/cl-gobject-introspection")
6984 (source
6985 (origin
6986 (method git-fetch)
6987 (uri (git-reference
6988 (url home-page)
6989 (commit commit)))
6990 (file-name (git-file-name name version))
6991 (sha256
6992 (base32
6993 "1zcqd2qj14f6b38vys8gr89s6cijsp9r8j43xa8lynilwva7bwyh"))))
6994 (build-system asdf-build-system/sbcl)
6995 (inputs
6996 `(("alexandria" ,sbcl-alexandria)
6997 ("cffi" ,sbcl-cffi)
6998 ("iterate" ,sbcl-iterate)
6999 ("trivial-garbage" ,sbcl-trivial-garbage)
7000 ("glib" ,glib)
7001 ("gobject-introspection" ,gobject-introspection)))
7002 (native-inputs
7003 `(("fiveam" ,sbcl-fiveam)))
7004 (arguments
7005 ;; TODO: Tests fail, see
7006 ;; https://github.com/andy128k/cl-gobject-introspection/issues/70.
7007 '(#:tests? #f
7008 #:phases
7009 (modify-phases %standard-phases
7010 (add-after (quote unpack) (quote fix-paths)
7011 (lambda* (#:key inputs #:allow-other-keys)
7012 (substitute* "src/init.lisp"
7013 (("libgobject-2\\.0\\.so")
7014 (string-append (assoc-ref inputs "glib") "/lib/libgobject-2.0.so"))
7015 (("libgirepository-1\\.0\\.so")
7016 (string-append (assoc-ref inputs "gobject-introspection")
7017 "/lib/libgirepository-1.0.so")))
7018 #t)))))
7019 (synopsis "Common Lisp bindings to GObject Introspection")
7020 (description
7021 "This library is a bridge between Common Lisp and GObject
7022 Introspection, which enables Common Lisp programs to access the full interface
7023 of C+GObject libraries without the need of writing dedicated bindings.")
7024 (license (list license:bsd-3
7025 ;; Tests are under a different license.
7026 license:llgpl)))))
7027
7028 (define-public cl-gobject-introspection
7029 (sbcl-package->cl-source-package sbcl-cl-gobject-introspection))
7030
7031 (define-public sbcl-string-case
7032 (let ((commit "718c761e33749e297cd2809c7ba3ade1985c49f7")
7033 (revision "0"))
7034 (package
7035 (name "sbcl-string-case")
7036 (version (git-version "0.0.2" revision commit))
7037 (home-page "https://github.com/pkhuong/string-case")
7038 (source
7039 (origin
7040 (method git-fetch)
7041 (uri (git-reference
7042 (url home-page)
7043 (commit commit)))
7044 (file-name (git-file-name name version))
7045 (sha256
7046 (base32
7047 "1n5i3yh0h5s636rcnwn7jwqy3rjflikra04lymimhpcshhjsk0md"))))
7048 (build-system asdf-build-system/sbcl)
7049 (synopsis "Efficient string= case in Common Lisp")
7050 (description
7051 "@code{string-case} is a Common Lisp macro that generates specialised decision
7052 trees to dispatch on string equality.")
7053 (license license:bsd-3))))
7054
7055 (define-public cl-string-case
7056 (sbcl-package->cl-source-package sbcl-string-case))
7057
7058 (define-public ecl-string-case
7059 (sbcl-package->ecl-package sbcl-string-case))
7060
7061 (define-public sbcl-global-vars
7062 (let ((commit "c749f32c9b606a1457daa47d59630708ac0c266e")
7063 (revision "0"))
7064 (package
7065 (name "sbcl-global-vars")
7066 (version (git-version "1.0.0" revision commit))
7067 (home-page "https://github.com/lmj/global-vars")
7068 (source
7069 (origin
7070 (method git-fetch)
7071 (uri (git-reference
7072 (url home-page)
7073 (commit commit)))
7074 (file-name (git-file-name name version))
7075 (sha256
7076 (base32
7077 "06m3xc8l3pgsapl8fvsi9wf6y46zs75cp9zn7zh6dc65v4s5wz3d"))))
7078 (build-system asdf-build-system/sbcl)
7079 (synopsis "Efficient global variables in Common Lisp")
7080 (description
7081 "In Common Lisp, a special variable that is never dynamically bound
7082 typically serves as a stand-in for a global variable. The @code{global-vars}
7083 library provides true global variables that are implemented by some compilers.
7084 An attempt to rebind a global variable properly results in a compiler error.
7085 That is, a global variable cannot be dynamically bound.
7086
7087 Global variables therefore allow us to communicate an intended usage that
7088 differs from special variables. Global variables are also more efficient than
7089 special variables, especially in the presence of threads.")
7090 (license license:expat))))
7091
7092 (define-public cl-global-vars
7093 (sbcl-package->cl-source-package sbcl-global-vars))
7094
7095 (define-public ecl-global-vars
7096 (sbcl-package->ecl-package sbcl-global-vars))
7097
7098 (define-public sbcl-trivial-file-size
7099 (let ((commit "1c1d672a01a446ba0391dbb4ffc40be3b0476f23")
7100 (revision "0"))
7101 (package
7102 (name "sbcl-trivial-file-size")
7103 (version (git-version "0.0.0" revision commit))
7104 (home-page "https://github.com/ruricolist/trivial-file-size")
7105 (source
7106 (origin
7107 (method git-fetch)
7108 (uri (git-reference
7109 (url home-page)
7110 (commit commit)))
7111 (file-name (git-file-name name version))
7112 (sha256
7113 (base32
7114 "17pp86c9zs4y7i1sh7q9gbfw9iqv6655k7fz8qbj9ly1ypgxp4qs"))))
7115 (build-system asdf-build-system/sbcl)
7116 (native-inputs
7117 `(("fiveam" ,sbcl-fiveam)))
7118 (synopsis "Size of a file in bytes in Common Lisp")
7119 (description
7120 "The canonical way to determine the size of a file in bytes, using Common Lisp,
7121 is to open the file with an element type of (unsigned-byte 8) and then
7122 calculate the length of the stream. This is less than ideal. In most cases
7123 it is better to get the size of the file from its metadata, using a system
7124 call.
7125
7126 This library exports a single function, file-size-in-octets. It returns the
7127 size of a file in bytes, using system calls when possible.")
7128 (license license:expat))))
7129
7130 (define-public cl-trivial-file-size
7131 (sbcl-package->cl-source-package sbcl-trivial-file-size))
7132
7133 (define-public ecl-trivial-file-size
7134 (sbcl-package->ecl-package sbcl-trivial-file-size))
7135
7136 (define-public sbcl-trivial-macroexpand-all
7137 (let ((commit "933270ac7107477de1bc92c1fd641fe646a7a8a9")
7138 (revision "0"))
7139 (package
7140 (name "sbcl-trivial-macroexpand-all")
7141 (version (git-version "0.0.0" revision commit))
7142 (home-page "https://github.com/cbaggers/trivial-macroexpand-all")
7143 (source
7144 (origin
7145 (method git-fetch)
7146 (uri (git-reference
7147 (url home-page)
7148 (commit commit)))
7149 (file-name (git-file-name name version))
7150 (sha256
7151 (base32
7152 "191hnn4b5j4i3crydmlzbm231kj0h7l8zj6mzj69r1npbzkas4bd"))))
7153 (build-system asdf-build-system/sbcl)
7154 (native-inputs
7155 `(("fiveam" ,sbcl-fiveam)))
7156 (synopsis "Portable macroexpand-all for Common Lisp")
7157 (description
7158 "This library provides a macroexpand-all function that calls the
7159 implementation specific equivalent.")
7160 (license license:unlicense))))
7161
7162 (define-public cl-trivial-macroexpand-all
7163 (sbcl-package->cl-source-package sbcl-trivial-macroexpand-all))
7164
7165 (define-public ecl-trivial-macroexpand-all
7166 (sbcl-package->ecl-package sbcl-trivial-macroexpand-all))
7167
7168 (define-public sbcl-serapeum
7169 (let ((commit "65837f8a0d65b36369ec8d000fff5c29a395b5fe")
7170 (revision "0"))
7171 (package
7172 (name "sbcl-serapeum")
7173 (version (git-version "0.0.0" revision commit))
7174 (home-page "https://github.com/ruricolist/serapeum")
7175 (source
7176 (origin
7177 (method git-fetch)
7178 (uri (git-reference
7179 (url home-page)
7180 (commit commit)))
7181 (file-name (git-file-name name version))
7182 (sha256
7183 (base32
7184 "0clwf81r2lvk1rbfvk91s9zmbkas9imf57ilqclw12mxaxlfsnbw"))))
7185 (build-system asdf-build-system/sbcl)
7186 (inputs
7187 `(("alexandria" ,sbcl-alexandria)
7188 ("trivia" ,sbcl-trivia)
7189 ("trivia.quasiquote" ,sbcl-trivia.quasiquote)
7190 ("split-sequence" ,sbcl-split-sequence)
7191 ("string-case" ,sbcl-string-case)
7192 ("parse-number" ,sbcl-parse-number)
7193 ("trivial-garbage" ,sbcl-trivial-garbage)
7194 ("bordeaux-threads" ,sbcl-bordeaux-threads)
7195 ("named-readtables" ,sbcl-named-readtables)
7196 ("fare-quasiquote-extras" ,sbcl-fare-quasiquote-extras)
7197 ("parse-declarations-1.0" ,sbcl-parse-declarations)
7198 ("global-vars" ,sbcl-global-vars)
7199 ("trivial-file-size" ,sbcl-trivial-file-size)
7200 ("trivial-macroexpand-all" ,sbcl-trivial-macroexpand-all)))
7201 (native-inputs
7202 `(("fiveam" ,sbcl-fiveam)
7203 ("local-time" ,sbcl-local-time)))
7204 (arguments
7205 '(#:phases
7206 (modify-phases %standard-phases
7207 (add-after 'unpack 'disable-failing-tests
7208 (lambda* (#:key inputs #:allow-other-keys)
7209 (substitute* "serapeum.asd"
7210 ;; Guix does not have Quicklisp, and probably never will.
7211 (("\\(:file \"quicklisp\"\\)") ""))
7212 #t)))))
7213 (synopsis "Common Lisp utility library beyond Alexandria")
7214 (description
7215 "Serapeum is a conservative library of Common Lisp utilities. It is a
7216 supplement, not a competitor, to Alexandria.")
7217 (license license:expat))))
7218
7219 (define-public cl-serapeum
7220 (sbcl-package->cl-source-package sbcl-serapeum))
7221
7222 (define-public sbcl-arrows
7223 (let ((commit "df7cf0067e0132d9697ac8b1a4f1b9c88d4f5382")
7224 (revision "0"))
7225 (package
7226 (name "sbcl-arrows")
7227 (version (git-version "0.2.0" revision commit))
7228 (source
7229 (origin
7230 (method git-fetch)
7231 (uri (git-reference
7232 (url "https://gitlab.com/Harleqin/arrows.git")
7233 (commit commit)))
7234 (file-name (git-file-name name version))
7235 (sha256
7236 (base32
7237 "042k9vkssrqx9nhp14wdzm942zgdxvp35mba0p2syz98i75im2yy"))))
7238 (build-system asdf-build-system/sbcl)
7239 (native-inputs
7240 `(("hu.dwim.stefil" ,sbcl-hu.dwim.stefil)))
7241 (synopsis "Clojure-like arrow macros for Common Lisp")
7242 (description
7243 "This library implements the @code{->} and @code{->>} macros from
7244 Clojure, as well as several expansions on the idea.")
7245 (home-page "https://gitlab.com/Harleqin/arrows")
7246 (license license:public-domain))))
7247
7248 (define-public cl-arrows
7249 (sbcl-package->cl-source-package sbcl-arrows))
7250
7251 (define-public ecl-arrows
7252 (sbcl-package->ecl-package sbcl-arrows))
7253
7254 (define-public sbcl-simple-parallel-tasks
7255 (let ((commit "db460f7a3f7bbfe2d3a2223ed21e162068d04dda")
7256 (revision "0"))
7257 (package
7258 (name "sbcl-simple-parallel-tasks")
7259 (version (git-version "1.0" revision commit))
7260 (source
7261 (origin
7262 (method git-fetch)
7263 (uri (git-reference
7264 (url "https://github.com/glv2/simple-parallel-tasks.git")
7265 (commit commit)))
7266 (file-name (git-file-name name version))
7267 (sha256
7268 (base32
7269 "0amw3qk23wnlyrsgzszs6rs7y4zvxv8dr03rnqhc60mnm8ds4dd5"))))
7270 (build-system asdf-build-system/sbcl)
7271 (native-inputs
7272 `(("fiveam" ,sbcl-fiveam)))
7273 (inputs
7274 `(("chanl" ,sbcl-chanl)))
7275 (synopsis "Common Lisp library to evaluate some forms in parallel")
7276 (description "This is a simple Common Lisp library to evaluate some
7277 forms in parallel.")
7278 (home-page "https://github.com/glv2/simple-parallel-tasks")
7279 (license license:gpl3))))
7280
7281 (define-public cl-simple-parallel-tasks
7282 (sbcl-package->cl-source-package sbcl-simple-parallel-tasks))
7283
7284 (define-public ecl-simple-parallel-tasks
7285 (sbcl-package->ecl-package sbcl-simple-parallel-tasks))
7286
7287 (define-public sbcl-cl-heap
7288 (package
7289 (name "sbcl-cl-heap")
7290 (version "0.1.6")
7291 (source
7292 (origin
7293 (method url-fetch)
7294 (uri (string-append "https://common-lisp.net/project/cl-heap/releases/"
7295 "cl-heap_" version ".tar.gz"))
7296 (sha256
7297 (base32
7298 "163hb07p2nxz126rpq3cj5dyala24n0by5i5786n2qcr1w0bak4i"))))
7299 (build-system asdf-build-system/sbcl)
7300 (native-inputs
7301 `(("xlunit" ,sbcl-xlunit)))
7302 (arguments
7303 `(#:test-asd-file "cl-heap-tests.asd"))
7304 (synopsis "Heap and priority queue data structures for Common Lisp")
7305 (description
7306 "CL-HEAP provides various implementations of heap data structures (a
7307 binary heap and a Fibonacci heap) as well as an efficient priority queue.")
7308 (home-page "https://common-lisp.net/project/cl-heap/")
7309 (license license:gpl3+)))
7310
7311 (define-public cl-heap
7312 (sbcl-package->cl-source-package sbcl-cl-heap))
7313
7314 (define-public ecl-cl-heap
7315 (sbcl-package->ecl-package sbcl-cl-heap))
7316
7317 (define-public sbcl-curry-compose-reader-macros
7318 (let ((commit "beaa92dedf392726c042184bfd6149fa8d9e6ac2")
7319 (revision "0"))
7320 (package
7321 (name "sbcl-curry-compose-reader-macros")
7322 (version (git-version "1.0.0" revision commit))
7323 (source
7324 (origin
7325 (method git-fetch)
7326 (uri
7327 (git-reference
7328 (url "https://github.com/eschulte/curry-compose-reader-macros.git")
7329 (commit commit)))
7330 (file-name (git-file-name name version))
7331 (sha256
7332 (base32
7333 "0rv9bl8xrad5wfcg5zs1dazvnpmvqz6297lbn8bywsrcfnlf7h98"))))
7334 (build-system asdf-build-system/sbcl)
7335 (inputs
7336 `(("alexandria" ,sbcl-alexandria)
7337 ("named-readtables" ,sbcl-named-readtables)))
7338 (synopsis "Reader macros for partial application and composition")
7339 (description
7340 "This Common Lisp library provides reader macros for concise expression
7341 of function partial application and composition.")
7342 (home-page "https://eschulte.github.io/curry-compose-reader-macros/")
7343 (license license:public-domain))))
7344
7345 (define-public cl-curry-compose-reader-macros
7346 (sbcl-package->cl-source-package sbcl-curry-compose-reader-macros))
7347
7348 (define-public ecl-curry-compose-reader-macros
7349 (sbcl-package->ecl-package sbcl-curry-compose-reader-macros))
7350
7351 (define-public sbcl-yason
7352 (package
7353 (name "sbcl-yason")
7354 (version "0.7.7")
7355 (source
7356 (origin
7357 (method git-fetch)
7358 (uri (git-reference
7359 (url "https://github.com/phmarek/yason.git")
7360 (commit (string-append "v" version))))
7361 (file-name (git-file-name name version))
7362 (sha256
7363 (base32
7364 "0479rbjgbj80jpk5bby18inlv1kfp771a82rlcq5psrz65qqa9bj"))))
7365 (build-system asdf-build-system/sbcl)
7366 (inputs
7367 `(("alexandria" ,sbcl-alexandria)
7368 ("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
7369 (synopsis "Common Lisp JSON parser/encoder")
7370 (description
7371 "YASON is a Common Lisp library for encoding and decoding data in the
7372 JSON interchange format.")
7373 (home-page "https://github.com/phmarek/yason")
7374 (license license:bsd-3)))
7375
7376 (define-public cl-yason
7377 (sbcl-package->cl-source-package sbcl-yason))
7378
7379 (define-public ecl-yason
7380 (sbcl-package->ecl-package sbcl-yason))
7381
7382 (define-public sbcl-stefil
7383 (let ((commit "0398548ec95dceb50fc2c2c03e5fb0ce49b86c7a")
7384 (revision "0"))
7385 (package
7386 (name "sbcl-stefil")
7387 (version (git-version "0.1" revision commit))
7388 (source
7389 (origin
7390 (method git-fetch)
7391 (uri (git-reference
7392 (url "https://gitlab.common-lisp.net/stefil/stefil.git")
7393 (commit commit)))
7394 (file-name (git-file-name name version))
7395 (sha256
7396 (base32
7397 "0bqz64q2szzhf91zyqyssmvrz7da6442rs01808pf3wrdq28bclh"))))
7398 (build-system asdf-build-system/sbcl)
7399 (inputs
7400 `(("alexandria" ,sbcl-alexandria)
7401 ("iterate" ,sbcl-iterate)
7402 ("metabang-bind" ,sbcl-metabang-bind)))
7403 (propagated-inputs
7404 ;; Swank doesn't have a pre-compiled package, therefore we must
7405 ;; propagate its sources.
7406 `(("swank" ,cl-slime-swank)))
7407 (arguments
7408 '(#:phases
7409 (modify-phases %standard-phases
7410 (add-after 'unpack 'drop-unnecessary-dependency
7411 (lambda _
7412 (substitute* "package.lisp"
7413 ((":stefil-system") ""))
7414 #t)))))
7415 (home-page "https://common-lisp.net/project/stefil/index-old.shtml")
7416 (synopsis "Simple test framework")
7417 (description
7418 "Stefil is a simple test framework for Common Lisp, with a focus on
7419 interactive development.")
7420 (license license:public-domain))))
7421
7422 (define-public cl-stefil
7423 (sbcl-package->cl-source-package sbcl-stefil))
7424
7425 (define-public sbcl-graph
7426 (let ((commit "78bf9ec930d8eae4f0861b5be76765fb1e45e24f")
7427 (revision "0"))
7428 (package
7429 (name "sbcl-graph")
7430 (version (git-version "0.0.0" revision commit))
7431 (source
7432 (origin
7433 (method git-fetch)
7434 (uri
7435 (git-reference
7436 (url "https://github.com/eschulte/graph.git")
7437 (commit commit)))
7438 (file-name (git-file-name name version))
7439 (sha256
7440 (base32
7441 "1qpij4xh8bqwc2myahpilcbh916v7vg0acz2fij14d3y0jm02h0g"))
7442 (patches (search-patches "sbcl-graph-asdf-definitions.patch"))))
7443 (build-system asdf-build-system/sbcl)
7444 (native-inputs
7445 `(("stefil" ,sbcl-stefil)))
7446 (inputs
7447 `(("alexandria" ,sbcl-alexandria)
7448 ("cl-heap" ,sbcl-cl-heap)
7449 ("curry-compose-reader-macros" ,sbcl-curry-compose-reader-macros)
7450 ("metabang-bind" ,sbcl-metabang-bind)
7451 ("named-readtables" ,sbcl-named-readtables)))
7452 (arguments
7453 '(#:test-asd-file "graph-test.asd"))
7454 (synopsis "Graph data structure and algorithms for Common Lisp")
7455 (description
7456 "The GRAPH Common Lisp library provides a data structures to represent
7457 graphs, as well as some graph manipulation and analysis algorithms (shortest
7458 path, maximum flow, minimum spanning tree, etc.).")
7459 (home-page "https://eschulte.github.io/graph/")
7460 (license license:gpl3+))))
7461
7462 (define-public cl-graph
7463 (sbcl-package->cl-source-package sbcl-graph))
7464
7465 (define-public sbcl-graph-dot
7466 (package
7467 (inherit sbcl-graph)
7468 (name "sbcl-graph-dot")
7469 (inputs
7470 `(("alexandria" ,sbcl-alexandria)
7471 ("cl-ppcre" ,sbcl-cl-ppcre)
7472 ("curry-compose-reader-macros" ,sbcl-curry-compose-reader-macros)
7473 ("graph" ,sbcl-graph)
7474 ("metabang-bind" ,sbcl-metabang-bind)
7475 ("named-readtables" ,sbcl-named-readtables)))
7476 (arguments
7477 (substitute-keyword-arguments (package-arguments sbcl-graph)
7478 ((#:asd-file _ "") "graph-dot.asd")
7479 ((#:asd-system-name _ #f) "graph-dot")))
7480 (synopsis "Serialize graphs to and from DOT format")))
7481
7482 (define-public sbcl-graph-json
7483 (package
7484 (inherit sbcl-graph)
7485 (name "sbcl-graph-json")
7486 (inputs
7487 `(("alexandria" ,sbcl-alexandria)
7488 ("curry-compose-reader-macros" ,sbcl-curry-compose-reader-macros)
7489 ("graph" ,sbcl-graph)
7490 ("metabang-bind" ,sbcl-metabang-bind)
7491 ("named-readtables" ,sbcl-named-readtables)
7492 ("yason" ,sbcl-yason)))
7493 (arguments
7494 (substitute-keyword-arguments (package-arguments sbcl-graph)
7495 ((#:asd-file _ "") "graph-json.asd")
7496 ((#:asd-system-name _ #f) "graph-json")))
7497 (synopsis "Serialize graphs to and from JSON format")))
7498
7499 (define-public sbcl-trivial-indent
7500 (let ((commit "2d016941751647c6cc5bd471751c2cf68861c94a")
7501 (revision "0"))
7502 (package
7503 (name "sbcl-trivial-indent")
7504 (version (git-version "1.0.0" revision commit))
7505 (source
7506 (origin
7507 (method git-fetch)
7508 (uri
7509 (git-reference
7510 (url "https://github.com/Shinmera/trivial-indent")
7511 (commit commit)))
7512 (file-name (git-file-name name version))
7513 (sha256
7514 (base32
7515 "1sj90nqz17w4jq0ixz00gb9g5g6d2s7l8r17zdby27gxxh51w266"))))
7516 (build-system asdf-build-system/sbcl)
7517 (synopsis "Simple Common Lisp library to allow indentation hints for SWANK")
7518 (description
7519 "This library allows you to define custom indentation hints for your
7520 macros if the one recognised by SLIME automatically produces unwanted
7521 results.")
7522 (home-page "https://shinmera.github.io/trivial-indent/")
7523 (license license:zlib))))
7524
7525 (define-public cl-trivial-indent
7526 (sbcl-package->cl-source-package sbcl-trivial-indent))
7527
7528 (define-public sbcl-documentation-utils
7529 (let ((commit "98630dd5f7e36ae057fa09da3523f42ccb5d1f55")
7530 (revision "0"))
7531 (package
7532 (name "sbcl-documentation-utils")
7533 (version (git-version "1.2.0" revision commit))
7534 (source
7535 (origin
7536 (method git-fetch)
7537 (uri
7538 (git-reference
7539 (url "https://github.com/Shinmera/documentation-utils.git")
7540 (commit commit)))
7541 (file-name (git-file-name name version))
7542 (sha256
7543 (base32
7544 "098qhkqskmmrh4wix34mawf7p5c87yql28r51r75yjxj577k5idq"))))
7545 (build-system asdf-build-system/sbcl)
7546 (inputs
7547 `(("trivial-indent" ,sbcl-trivial-indent)))
7548 (synopsis "Few simple tools to document Common Lisp libraries")
7549 (description
7550 "This is a small library to help you with managing the Common Lisp
7551 docstrings for your library.")
7552 (home-page "https://shinmera.github.io/documentation-utils/")
7553 (license license:zlib))))
7554
7555 (define-public cl-documentation-utils
7556 (sbcl-package->cl-source-package sbcl-documentation-utils))
7557
7558 (define-public ecl-documentation-utils
7559 (sbcl-package->ecl-package sbcl-documentation-utils))
7560
7561 (define-public sbcl-form-fiddle
7562 (let ((commit "e0c23599dbb8cff3e83e012f3d86d0764188ad18")
7563 (revision "0"))
7564 (package
7565 (name "sbcl-form-fiddle")
7566 (version (git-version "1.1.0" revision commit))
7567 (source
7568 (origin
7569 (method git-fetch)
7570 (uri
7571 (git-reference
7572 (url "https://github.com/Shinmera/form-fiddle")
7573 (commit commit)))
7574 (file-name (git-file-name name version))
7575 (sha256
7576 (base32
7577 "041iznc9mpfyrl0sv5893ys9pbb2pvbn9g3clarqi7gsfj483jln"))))
7578 (build-system asdf-build-system/sbcl)
7579 (inputs
7580 `(("documentation-utils" ,sbcl-documentation-utils)))
7581 (synopsis "Utilities to destructure Common Lisp lambda forms")
7582 (description
7583 "Often times we need to destructure a form definition in a Common Lisp
7584 macro. This library provides a set of simple utilities to help with that.")
7585 (home-page "https://shinmera.github.io/form-fiddle/")
7586 (license license:zlib))))
7587
7588 (define-public cl-form-fiddle
7589 (sbcl-package->cl-source-package sbcl-form-fiddle))
7590
7591 (define-public sbcl-parachute
7592 (let ((commit "ca04dd8e43010a6dfffa26dbe1d62af86008d666")
7593 (revision "0"))
7594 (package
7595 (name "sbcl-parachute")
7596 (version (git-version "1.1.1" revision commit))
7597 (source
7598 (origin
7599 (method git-fetch)
7600 (uri
7601 (git-reference
7602 (url "https://github.com/Shinmera/parachute")
7603 (commit commit)))
7604 (file-name (git-file-name name version))
7605 (sha256
7606 (base32
7607 "1mvsm3r0r6a2bg75nw0q7n9vlby3ch45qjl7hnb5k1z2n5x5lh60"))))
7608 (build-system asdf-build-system/sbcl)
7609 (inputs
7610 `(("documentation-utils" ,sbcl-documentation-utils)
7611 ("form-fiddle" ,sbcl-form-fiddle)))
7612 (synopsis "Extensible and cross-compatible testing framework for Common Lisp")
7613 (description
7614 "Parachute is a simple-to-use and extensible testing framework.
7615 In Parachute, things are organised as a bunch of named tests within a package.
7616 Each test can contain a bunch of test forms that make up its body.")
7617 (home-page "https://shinmera.github.io/parachute/")
7618 (license license:zlib))))
7619
7620 (define-public cl-parachute
7621 (sbcl-package->cl-source-package sbcl-parachute))
7622
7623 (define-public sbcl-array-utils
7624 (let ((commit "f90eb9070d0b2205af51126a35033574725e5c56")
7625 (revision "0"))
7626 (package
7627 (name "sbcl-array-utils")
7628 (version (git-version "1.1.1" revision commit))
7629 (source
7630 (origin
7631 (method git-fetch)
7632 (uri
7633 (git-reference
7634 (url "https://github.com/Shinmera/array-utils")
7635 (commit commit)))
7636 (file-name (git-file-name name version))
7637 (sha256
7638 (base32
7639 "0zhwfbpr53vs1ii4sx75dz2k9yhh1xpwdqqpg8nmfndxkmhpbi3x"))))
7640 (build-system asdf-build-system/sbcl)
7641 (native-inputs
7642 `(("parachute" ,sbcl-parachute)))
7643 (inputs
7644 `(("documentation-utils" ,sbcl-documentation-utils)))
7645 (synopsis "Tiny collection of array and vector utilities for Common Lisp")
7646 (description
7647 "A miniature toolkit that contains some useful shifting/popping/pushing
7648 functions for arrays and vectors. Originally from Plump.")
7649 (home-page "https://shinmera.github.io/array-utils/")
7650 (license license:zlib))))
7651
7652 (define-public cl-array-utils
7653 (sbcl-package->cl-source-package sbcl-array-utils))
7654
7655 (define-public sbcl-plump
7656 (let ((commit "16f1231bf706cfbc54d9e55a853ca945e4452a08")
7657 (revision "0"))
7658 (package
7659 (name "sbcl-plump")
7660 (version (git-version "2.0.0" revision commit))
7661 (source
7662 (origin
7663 (method git-fetch)
7664 (uri
7665 (git-reference
7666 (url "https://github.com/Shinmera/plump")
7667 (commit commit)))
7668 (file-name (git-file-name name version))
7669 (sha256
7670 (base32
7671 "0705k8pbip51v74rccgwscwph439f2pma9f915qf1h4bhjx999ip"))))
7672 (build-system asdf-build-system/sbcl)
7673 (inputs
7674 `(("array-utils" ,sbcl-array-utils)
7675 ("documentation-utils" ,sbcl-documentation-utils)))
7676 (synopsis "Lenient XML / XHTML / HTML parser for Common Lisp")
7677 (description
7678 "Plump is a parser for HTML/XML-like documents, focusing on being
7679 lenient towards invalid markup. It can handle things like invalid attributes,
7680 bad closing tag order, unencoded entities, inexistent tag types, self-closing
7681 tags and so on. It parses documents to a class representation and offers a
7682 small set of DOM functions to manipulate it. It can be extended to parse to
7683 your own classes.")
7684 (home-page "https://shinmera.github.io/plump/")
7685 (license license:zlib))))
7686
7687 (define-public cl-plump
7688 (sbcl-package->cl-source-package sbcl-plump))
7689
7690 (define-public sbcl-antik-base
7691 (let ((commit "e4711a69b3d6bf37b5727af05c3cfd03e8428ba3")
7692 (revision "1"))
7693 (package
7694 (name "sbcl-antik-base")
7695 (version (git-version "0.0.0" revision commit))
7696 (source
7697 (origin
7698 (method git-fetch)
7699 (uri (git-reference
7700 (url "https://gitlab.common-lisp.net/antik/antik.git")
7701 (commit commit)))
7702 (file-name (git-file-name name version))
7703 (sha256
7704 (base32
7705 "047ga2c38par2xbgg4qx6hwv06qhf1c1f67as8xvir6s80lip1km"))))
7706 (build-system asdf-build-system/sbcl)
7707 (inputs
7708 `(("alexandria" ,sbcl-alexandria)
7709 ("cl-ppcre" ,sbcl-cl-ppcre)
7710 ("iterate" ,sbcl-iterate)
7711 ("metabang-bind" ,sbcl-metabang-bind)
7712 ("named-readtables" ,sbcl-named-readtables)
7713 ("split-sequence" ,sbcl-split-sequence)))
7714 (native-inputs
7715 `(("lisp-unit" ,sbcl-lisp-unit)))
7716 (synopsis "Scientific and engineering computation in Common Lisp")
7717 (description
7718 "Antik provides a foundation for scientific and engineering
7719 computation in Common Lisp. It is designed not only to facilitate
7720 numerical computations, but to permit the use of numerical computation
7721 libraries and the interchange of data and procedures, whether
7722 foreign (non-Lisp) or Lisp libraries. It is named after the
7723 Antikythera mechanism, one of the oldest examples of a scientific
7724 computer known.")
7725 (home-page "https://common-lisp.net/project/antik/")
7726 (license license:gpl3))))
7727
7728 (define-public cl-antik-base
7729 (sbcl-package->cl-source-package sbcl-antik-base))
7730
7731 (define-public ecl-antik-base
7732 (sbcl-package->ecl-package sbcl-antik-base))
7733
7734 (define-public sbcl-foreign-array
7735 (package
7736 (inherit sbcl-antik-base)
7737 (name "sbcl-foreign-array")
7738 (arguments
7739 (substitute-keyword-arguments (package-arguments sbcl-antik-base)
7740 ((#:asd-file _ "") "foreign-array.asd")
7741 ((#:asd-system-name _ #f) "foreign-array")))
7742 (inputs
7743 `(("antik-base" ,sbcl-antik-base)
7744 ("cffi" ,sbcl-cffi)
7745 ("trivial-garbage" ,sbcl-trivial-garbage)
7746 ("static-vectors" ,sbcl-static-vectors)))
7747 (synopsis "Common Lisp library providing access to foreign arrays")))
7748
7749 (define-public cl-foreign-array
7750 (sbcl-package->cl-source-package sbcl-foreign-array))
7751
7752 (define-public ecl-foreign-array
7753 (sbcl-package->ecl-package sbcl-foreign-array))
7754
7755 (define-public sbcl-physical-dimension
7756 (package
7757 (inherit sbcl-antik-base)
7758 (name "sbcl-physical-dimension")
7759 (inputs
7760 `(("fare-utils" ,sbcl-fare-utils)
7761 ("foreign-array" ,sbcl-foreign-array)
7762 ("trivial-utf-8" ,sbcl-trivial-utf-8)))
7763 (arguments
7764 (substitute-keyword-arguments (package-arguments sbcl-antik-base)
7765 ((#:asd-file _ "") "physical-dimension.asd")
7766 ((#:asd-system-name _ #f) "physical-dimension")))
7767 (synopsis
7768 "Common Lisp library providing computations with physical units")))
7769
7770 (define-public cl-physical-dimension
7771 (sbcl-package->cl-source-package sbcl-physical-dimension))
7772
7773 (define-public sbcl-science-data
7774 (package
7775 (inherit sbcl-antik-base)
7776 (name "sbcl-science-data")
7777 (inputs
7778 `(("physical-dimension" ,sbcl-physical-dimension)
7779 ("drakma" ,sbcl-drakma)))
7780 (arguments
7781 (substitute-keyword-arguments (package-arguments sbcl-antik-base)
7782 ((#:asd-file _ "") "science-data.asd")
7783 ((#:asd-system-name _ #f) "science-data")))
7784 (synopsis
7785 "Common Lisp library for scientific and engineering numerical data")))
7786
7787 (define-public cl-science-data
7788 (sbcl-package->cl-source-package sbcl-science-data))
7789
7790 (define-public sbcl-gsll
7791 (let ((commit "1a8ada22f9cf5ed7372d352b2317f4ccdb6ab308")
7792 (revision "1"))
7793 (package
7794 (name "sbcl-gsll")
7795 (version (git-version "0.0.0" revision commit))
7796 (source
7797 (origin
7798 (method git-fetch)
7799 (uri (git-reference
7800 (url "https://gitlab.common-lisp.net/antik/gsll.git")
7801 (commit commit)))
7802 (file-name (git-file-name name version))
7803 (sha256
7804 (base32
7805 "0z5nypfk26hxihb08p085644afawicrgb4xvadh3lmrn46qbjfn4"))))
7806 (build-system asdf-build-system/sbcl)
7807 (native-inputs
7808 `(("lisp-unit" ,sbcl-lisp-unit)))
7809 (inputs
7810 `(("alexandria" ,sbcl-alexandria)
7811 ("cffi-grovel" ,sbcl-cffi-grovel)
7812 ("cffi-libffi" ,sbcl-cffi-libffi)
7813 ("foreign-array" ,sbcl-foreign-array)
7814 ("gsl" ,gsl)
7815 ("metabang-bind" ,sbcl-metabang-bind)
7816 ("trivial-features" ,sbcl-trivial-features)
7817 ("trivial-garbage" ,sbcl-trivial-garbage)))
7818 (arguments
7819 `(#:tests? #f
7820 #:phases
7821 (modify-phases %standard-phases
7822 (add-after 'unpack 'fix-cffi-paths
7823 (lambda* (#:key inputs #:allow-other-keys)
7824 (substitute* "gsll.asd"
7825 ((":depends-on \\(#:foreign-array")
7826 ":depends-on (#:foreign-array #:cffi-libffi"))
7827 (substitute* "init/init.lisp"
7828 (("libgslcblas.so" all)
7829 (string-append
7830 (assoc-ref inputs "gsl") "/lib/" all)))
7831 (substitute* "init/init.lisp"
7832 (("libgsl.so" all)
7833 (string-append
7834 (assoc-ref inputs "gsl") "/lib/" all))))))))
7835 (synopsis "GNU Scientific Library for Lisp")
7836 (description
7837 "The GNU Scientific Library for Lisp (GSLL) allows the use of the
7838 GNU Scientific Library (GSL) from Common Lisp. This library provides a
7839 full range of common mathematical operations useful to scientific and
7840 engineering applications. The design of the GSLL interface is such
7841 that access to most of the GSL library is possible in a Lisp-natural
7842 way; the intent is that the user not be hampered by the restrictions
7843 of the C language in which GSL has been written. GSLL thus provides
7844 interactive use of GSL for getting quick answers, even for someone not
7845 intending to program in Lisp.")
7846 (home-page "https://common-lisp.net/project/gsll/")
7847 (license license:gpl3))))
7848
7849 (define-public cl-gsll
7850 (sbcl-package->cl-source-package sbcl-gsll))
7851
7852 (define-public sbcl-antik
7853 (package
7854 (inherit sbcl-antik-base)
7855 (name "sbcl-antik")
7856 (inputs
7857 `(("gsll" ,sbcl-gsll)
7858 ("physical-dimension" ,sbcl-physical-dimension)))
7859 (arguments
7860 (substitute-keyword-arguments (package-arguments sbcl-antik-base)
7861 ((#:asd-file _ "") "antik.asd")
7862 ((#:asd-system-name _ #f) "antik")))))
7863
7864 (define-public cl-antik
7865 (sbcl-package->cl-source-package sbcl-antik))
7866
7867 (define-public sbcl-cl-interpol
7868 (let ((commit "1fd288d861db85bc4677cff3cdd6af75fda1afb4")
7869 (revision "1"))
7870 (package
7871 (name "sbcl-cl-interpol")
7872 (version (git-version "0.2.6" revision commit))
7873 (source
7874 (origin
7875 (method git-fetch)
7876 (uri (git-reference
7877 (url "https://github.com/edicl/cl-interpol.git")
7878 (commit commit)))
7879 (file-name (git-file-name name version))
7880 (sha256
7881 (base32
7882 "1hnikak52hmcq1r5f616m6qq1108qnkw80pja950nv1fq5p0ppjn"))))
7883 (build-system asdf-build-system/sbcl)
7884 (inputs
7885 `(("cl-unicode" ,sbcl-cl-unicode)
7886 ("named-readtables" ,sbcl-named-readtables)))
7887 (native-inputs
7888 `(("flexi-streams" ,sbcl-flexi-streams)))
7889 (synopsis "String interpolation for Common Lisp")
7890 (description
7891 "CL-INTERPOL is a library for Common Lisp which modifies the
7892 reader so that you can have interpolation within strings similar to
7893 Perl or Unix Shell scripts. It also provides various ways to insert
7894 arbitrary characters into literal strings even if your editor/IDE
7895 doesn't support them.")
7896 (home-page "https://edicl.github.io/cl-interpol/")
7897 (license license:bsd-3))))
7898
7899 (define-public cl-interpol
7900 (sbcl-package->cl-source-package sbcl-cl-interpol))
7901
7902 (define-public ecl-cl-interpol
7903 (sbcl-package->ecl-package sbcl-cl-interpol))
7904
7905 (define sbcl-symbol-munger-boot0
7906 ;; There is a cyclical dependency between symbol-munger and lisp-unit2.
7907 ;; See https://github.com/AccelerationNet/symbol-munger/issues/4
7908 (let ((commit "cc2bb4b7acd454d756484aec81ba487648385fc3")
7909 (revision "1"))
7910 (package
7911 (name "sbcl-symbol-munger-boot0")
7912 (version (git-version "0.0.1" revision commit))
7913 (source
7914 (origin
7915 (method git-fetch)
7916 (uri (git-reference
7917 (url "https://github.com/AccelerationNet/symbol-munger.git")
7918 (commit commit)))
7919 (file-name (git-file-name name version))
7920 (sha256
7921 (base32
7922 "0diav5ricqsybqvbp4bkxyj3bn3v9n7xb2pqqc4vg1algsw2pyjl"))))
7923 (build-system asdf-build-system/sbcl)
7924 (arguments
7925 `(#:asd-file "symbol-munger.asd"
7926 #:asd-system-name "symbol-munger"))
7927 (inputs
7928 `(("iterate" ,sbcl-iterate)
7929 ("alexandria" ,sbcl-alexandria)))
7930 (native-inputs
7931 `(("lisp-unit" ,sbcl-lisp-unit)))
7932 (synopsis
7933 "Capitalization and spacing conversion functions for Common Lisp")
7934 (description
7935 "This is a Common Lisp library to change the capitalization and spacing
7936 of a string or a symbol. It can convert to and from Lisp, english, underscore
7937 and camel-case rules.")
7938 (home-page "https://github.com/AccelerationNet/symbol-munger")
7939 ;; The package declares a BSD license, but all of the license
7940 ;; text is MIT.
7941 ;; See https://github.com/AccelerationNet/symbol-munger/issues/5
7942 (license license:expat))))
7943
7944 (define sbcl-lisp-unit2-boot0
7945 ;; There is a cyclical dependency between symbol-munger and lisp-unit2.
7946 ;; See https://github.com/AccelerationNet/symbol-munger/issues/4
7947 (let ((commit "fb9721524d1e4e73abb223ee036d74ce14a5505c")
7948 (revision "1"))
7949 (package
7950 (name "sbcl-lisp-unit2-boot0")
7951 (version (git-version "0.2.0" revision commit))
7952 (source
7953 (origin
7954 (method git-fetch)
7955 (uri (git-reference
7956 (url "https://github.com/AccelerationNet/lisp-unit2.git")
7957 (commit commit)))
7958 (file-name (git-file-name name version))
7959 (sha256
7960 (base32
7961 "1rsqy8y0jqll6xn9a593848f5wvd5ribv4csry1ly0hmdhfnqzlp"))))
7962 (build-system asdf-build-system/sbcl)
7963 (arguments
7964 `(#:asd-file "lisp-unit2.asd"
7965 #:asd-system-name "lisp-unit2"))
7966 (inputs
7967 `(("alexandria" ,sbcl-alexandria)
7968 ("cl-interpol" ,sbcl-cl-interpol)
7969 ("iterate" ,sbcl-iterate)
7970 ("symbol-munger-boot0" ,sbcl-symbol-munger-boot0)))
7971 (synopsis "Test Framework for Common Lisp")
7972 (description
7973 "LISP-UNIT2 is a Common Lisp library that supports unit testing in the
7974 style of JUnit for Java. It is a new version of the lisp-unit library written
7975 by Chris Riesbeck.")
7976 (home-page "https://github.com/AccelerationNet/lisp-unit2")
7977 (license license:expat))))
7978
7979 (define-public sbcl-symbol-munger
7980 (let ((commit "97598d4c3c53fd5da72ab78908fbd5d8c7a13416")
7981 (revision "1"))
7982 (package
7983 (name "sbcl-symbol-munger")
7984 (version (git-version "0.0.1" revision commit))
7985 (source
7986 (origin
7987 (method git-fetch)
7988 (uri (git-reference
7989 (url "https://github.com/AccelerationNet/symbol-munger.git")
7990 (commit commit)))
7991 (file-name (git-file-name name version))
7992 (sha256
7993 (base32
7994 "0y8jywjy0ldyhp7bxf16fdvdd2qgqnd7nlhlqfpfnzxcqk4xy1km"))))
7995 (build-system asdf-build-system/sbcl)
7996 (inputs
7997 `(("alexandria" ,sbcl-alexandria)
7998 ("iterate" ,sbcl-iterate)))
7999 (native-inputs
8000 `(("lisp-unit2-boot0" ,sbcl-lisp-unit2-boot0)))
8001 (synopsis
8002 "Capitalization and spacing conversion functions for Common Lisp")
8003 (description
8004 "This is a Common Lisp library to change the capitalization and spacing
8005 of a string or a symbol. It can convert to and from Lisp, english, underscore
8006 and camel-case rules.")
8007 (home-page "https://github.com/AccelerationNet/symbol-munger")
8008 ;; The package declares a BSD license, but all of the license
8009 ;; text is MIT.
8010 ;; See https://github.com/AccelerationNet/symbol-munger/issues/5
8011 (license license:expat))))
8012
8013 (define-public cl-symbol-munger
8014 (sbcl-package->cl-source-package sbcl-symbol-munger))
8015
8016 (define-public ecl-symbol-munger
8017 (sbcl-package->ecl-package sbcl-symbol-munger))
8018
8019 (define-public sbcl-lisp-unit2
8020 (package
8021 (inherit sbcl-lisp-unit2-boot0)
8022 (name "sbcl-lisp-unit2")
8023 (inputs
8024 `(("alexandria" ,sbcl-alexandria)
8025 ("cl-interpol" ,sbcl-cl-interpol)
8026 ("iterate" ,sbcl-iterate)
8027 ("symbol-munger" ,sbcl-symbol-munger)))))
8028
8029 (define-public cl-lisp-unit2
8030 (sbcl-package->cl-source-package sbcl-lisp-unit2))
8031
8032 (define-public ecl-lisp-unit2
8033 (sbcl-package->ecl-package sbcl-lisp-unit2))
8034
8035 (define-public sbcl-cl-csv
8036 (let ((commit "3eba29c8364b033fbe0d189c2500559278b6a362")
8037 (revision "1"))
8038 (package
8039 (name "sbcl-cl-csv")
8040 (version (git-version "1.0.6" revision commit))
8041 (source
8042 (origin
8043 (method git-fetch)
8044 (uri (git-reference
8045 (url "https://github.com/AccelerationNet/cl-csv.git")
8046 (commit commit)))
8047 (file-name (git-file-name name version))
8048 (sha256
8049 (base32
8050 "07h4ni89jzx93clx453hlnnb5g53hhlcmz5hghqv6ysam48lc8g6"))))
8051 (build-system asdf-build-system/sbcl)
8052 (arguments
8053 ;; See: https://github.com/AccelerationNet/cl-csv/pull/34
8054 `(#:tests? #f))
8055 (inputs
8056 `(("alexandria" ,sbcl-alexandria)
8057 ("cl-interpol" ,sbcl-cl-interpol)
8058 ("iterate" ,sbcl-iterate)))
8059 (native-inputs
8060 `(("lisp-unit2" ,sbcl-lisp-unit2)))
8061 (synopsis "Common lisp library for comma-separated values")
8062 (description
8063 "This is a Common Lisp library providing functions to read/write CSV
8064 from/to strings, streams and files.")
8065 (home-page "https://github.com/AccelerationNet/cl-csv")
8066 (license license:bsd-3))))
8067
8068 (define-public cl-csv
8069 (sbcl-package->cl-source-package sbcl-cl-csv))
8070
8071 (define-public ecl-cl-csv
8072 (sbcl-package->ecl-package sbcl-cl-csv))
8073
8074 (define-public sbcl-external-program
8075 (let ((commit "5888b8f1fd3953feeeacecbba4384ddda584a749")
8076 (revision "1"))
8077 (package
8078 (name "sbcl-external-program")
8079 (version (git-version "0.0.6" revision commit))
8080 (source
8081 (origin
8082 (method git-fetch)
8083 (uri (git-reference
8084 (url "https://github.com/sellout/external-program.git")
8085 (commit commit)))
8086 (file-name (git-file-name name version))
8087 (sha256
8088 (base32
8089 "0vww1x3yilb3bjwg6k184vaj4vxyxw4vralhnlm6lk4xac67kc9z"))))
8090 (build-system asdf-build-system/sbcl)
8091 (inputs
8092 `(("trivial-features" ,sbcl-trivial-features)))
8093 (native-inputs
8094 `(("fiveam" ,sbcl-fiveam)))
8095 (synopsis "Common Lisp library for running external programs")
8096 (description
8097 "EXTERNAL-PROGRAM enables running programs outside the Lisp
8098 process. It is an attempt to make the RUN-PROGRAM functionality in
8099 implementations like SBCL and CCL as portable as possible without
8100 sacrificing much in the way of power.")
8101 (home-page "https://github.com/sellout/external-program")
8102 (license license:llgpl))))
8103
8104 (define-public cl-external-program
8105 (sbcl-package->cl-source-package sbcl-external-program))
8106
8107 (define-public ecl-external-program
8108 (sbcl-package->ecl-package sbcl-external-program))
8109
8110 (define sbcl-cl-ana-boot0
8111 (let ((commit "fa7cee4c50aa1c859652813049ba0da7c18a0df9")
8112 (revision "1"))
8113 (package
8114 (name "sbcl-cl-ana-boot0")
8115 (version (git-version "0.0.0" revision commit))
8116 (source
8117 (origin
8118 (method git-fetch)
8119 (uri (git-reference
8120 (url "https://github.com/ghollisjr/cl-ana.git")
8121 (commit commit)))
8122 (file-name (git-file-name name version))
8123 (sha256
8124 (base32
8125 "0mr47l57m276dbpap7irr4fcnk5fgknhf6mgv4043s8h73amk5qh"))))
8126 (build-system asdf-build-system/sbcl)
8127 (synopsis "Common Lisp data analysis library")
8128 (description
8129 "CL-ANA is a data analysis library in Common Lisp providing tabular and
8130 binned data analysis along with nonlinear least squares fitting and
8131 visualization.")
8132 (home-page "https://github.com/ghollisjr/cl-ana")
8133 (license license:gpl3))))
8134
8135 (define-public sbcl-cl-ana.pathname-utils
8136 (package
8137 (inherit sbcl-cl-ana-boot0)
8138 (name "sbcl-cl-ana.pathname-utils")
8139 (arguments
8140 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8141 ((#:asd-file _ "") "pathname-utils/cl-ana.pathname-utils.asd")
8142 ((#:asd-system-name _ #f) "cl-ana.pathname-utils")))))
8143
8144 (define-public cl-ana.pathname-utils
8145 (sbcl-package->cl-source-package sbcl-cl-ana.pathname-utils))
8146
8147 (define-public ecl-cl-ana.pathname-utils
8148 (sbcl-package->ecl-package sbcl-cl-ana.pathname-utils))
8149
8150 (define-public sbcl-cl-ana.package-utils
8151 (package
8152 (inherit sbcl-cl-ana-boot0)
8153 (name "sbcl-cl-ana.package-utils")
8154 (inputs
8155 `(("alexandria" ,sbcl-alexandria)))
8156 (arguments
8157 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8158 ((#:asd-file _ "") "package-utils/cl-ana.package-utils.asd")
8159 ((#:asd-system-name _ #f) "cl-ana.package-utils")))))
8160
8161 (define-public cl-ana.package-utils
8162 (sbcl-package->cl-source-package sbcl-cl-ana.package-utils))
8163
8164 (define-public ecl-cl-ana.package-utils
8165 (sbcl-package->ecl-package sbcl-cl-ana.package-utils))
8166
8167 (define-public sbcl-cl-ana.string-utils
8168 (package
8169 (inherit sbcl-cl-ana-boot0)
8170 (name "sbcl-cl-ana.string-utils")
8171 (inputs
8172 `(("split-sequence" ,sbcl-split-sequence)))
8173 (arguments
8174 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8175 ((#:asd-file _ "") "string-utils/cl-ana.string-utils.asd")
8176 ((#:asd-system-name _ #f) "cl-ana.string-utils")))))
8177
8178 (define-public cl-ana.string-utils
8179 (sbcl-package->cl-source-package sbcl-cl-ana.string-utils))
8180
8181 (define-public ecl-cl-ana.string-utils
8182 (sbcl-package->ecl-package sbcl-cl-ana.string-utils))
8183
8184 (define-public sbcl-cl-ana.functional-utils
8185 (package
8186 (inherit sbcl-cl-ana-boot0)
8187 (name "sbcl-cl-ana.functional-utils")
8188 (arguments
8189 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8190 ((#:asd-file _ "") "functional-utils/cl-ana.functional-utils.asd")
8191 ((#:asd-system-name _ #f) "cl-ana.functional-utils")))))
8192
8193 (define-public cl-ana.functional-utils
8194 (sbcl-package->cl-source-package sbcl-cl-ana.functional-utils))
8195
8196 (define-public ecl-cl-ana.functional-utils
8197 (sbcl-package->ecl-package sbcl-cl-ana.functional-utils))
8198
8199 (define-public sbcl-cl-ana.list-utils
8200 (package
8201 (inherit sbcl-cl-ana-boot0)
8202 (name "sbcl-cl-ana.list-utils")
8203 (inputs
8204 `(("alexandria" ,sbcl-alexandria)
8205 ("cl-ana.functional-utils" ,sbcl-cl-ana.functional-utils)
8206 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)))
8207 (arguments
8208 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8209 ((#:asd-file _ "") "list-utils/cl-ana.list-utils.asd")
8210 ((#:asd-system-name _ #f) "cl-ana.list-utils")))))
8211
8212 (define-public cl-ana.list-utils
8213 (sbcl-package->cl-source-package sbcl-cl-ana.list-utils))
8214
8215 (define-public ecl-cl-ana.list-utils
8216 (sbcl-package->ecl-package sbcl-cl-ana.list-utils))
8217
8218 (define-public sbcl-cl-ana.generic-math
8219 (package
8220 (inherit sbcl-cl-ana-boot0)
8221 (name "sbcl-cl-ana.generic-math")
8222 (inputs
8223 `(("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8224 ("cl-ana.package-utils" ,sbcl-cl-ana.package-utils)))
8225 (arguments
8226 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8227 ((#:asd-file _ "") "generic-math/cl-ana.generic-math.asd")
8228 ((#:asd-system-name _ #f) "cl-ana.generic-math")))))
8229
8230 (define-public cl-ana.generic-math
8231 (sbcl-package->cl-source-package sbcl-cl-ana.generic-math))
8232
8233 (define-public ecl-cl-ana.generic-math
8234 (sbcl-package->ecl-package sbcl-cl-ana.generic-math))
8235
8236 (define-public sbcl-cl-ana.math-functions
8237 (package
8238 (inherit sbcl-cl-ana-boot0)
8239 (name "sbcl-cl-ana.math-functions")
8240 (inputs
8241 `(("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
8242 ("gsll" ,sbcl-gsll)))
8243 (arguments
8244 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8245 ((#:asd-file _ "") "math-functions/cl-ana.math-functions.asd")
8246 ((#:asd-system-name _ #f) "cl-ana.math-functions")))))
8247
8248 (define-public cl-ana.math-functions
8249 (sbcl-package->cl-source-package sbcl-cl-ana.math-functions))
8250
8251 (define-public sbcl-cl-ana.calculus
8252 (package
8253 (inherit sbcl-cl-ana-boot0)
8254 (name "sbcl-cl-ana.calculus")
8255 (inputs
8256 `(("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)))
8257 (arguments
8258 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8259 ((#:asd-file _ "") "calculus/cl-ana.calculus.asd")
8260 ((#:asd-system-name _ #f) "cl-ana.calculus")))))
8261
8262 (define-public cl-ana.calculus
8263 (sbcl-package->cl-source-package sbcl-cl-ana.calculus))
8264
8265 (define-public ecl-cl-ana.calculus
8266 (sbcl-package->ecl-package sbcl-cl-ana.calculus))
8267
8268 (define-public sbcl-cl-ana.symbol-utils
8269 (package
8270 (inherit sbcl-cl-ana-boot0)
8271 (name "sbcl-cl-ana.symbol-utils")
8272 (inputs
8273 `(("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)))
8274 (arguments
8275 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8276 ((#:asd-file _ "") "symbol-utils/cl-ana.symbol-utils.asd")
8277 ((#:asd-system-name _ #f) "cl-ana.symbol-utils")))))
8278
8279 (define-public cl-ana.symbol-utils
8280 (sbcl-package->cl-source-package sbcl-cl-ana.symbol-utils))
8281
8282 (define-public ecl-cl-ana.symbol-utils
8283 (sbcl-package->ecl-package sbcl-cl-ana.symbol-utils))
8284
8285 (define-public sbcl-cl-ana.macro-utils
8286 (package
8287 (inherit sbcl-cl-ana-boot0)
8288 (name "sbcl-cl-ana.macro-utils")
8289 (inputs
8290 `(("alexandria" ,sbcl-alexandria)
8291 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8292 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
8293 ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)
8294 ("split-sequence" ,sbcl-split-sequence)))
8295 (arguments
8296 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8297 ((#:asd-file _ "") "macro-utils/cl-ana.macro-utils.asd")
8298 ((#:asd-system-name _ #f) "cl-ana.macro-utils")))))
8299
8300 (define-public cl-ana.macro-utils
8301 (sbcl-package->cl-source-package sbcl-cl-ana.macro-utils))
8302
8303 (define-public ecl-cl-ana.macro-utils
8304 (sbcl-package->ecl-package sbcl-cl-ana.macro-utils))
8305
8306 (define-public sbcl-cl-ana.binary-tree
8307 (package
8308 (inherit sbcl-cl-ana-boot0)
8309 (name "sbcl-cl-ana.binary-tree")
8310 (inputs
8311 `(("cl-ana.functional-utils" ,sbcl-cl-ana.functional-utils)
8312 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8313 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)))
8314 (arguments
8315 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8316 ((#:asd-file _ "") "binary-tree/cl-ana.binary-tree.asd")
8317 ((#:asd-system-name _ #f) "cl-ana.binary-tree")))))
8318
8319 (define-public cl-ana.binary-tree
8320 (sbcl-package->cl-source-package sbcl-cl-ana.binary-tree))
8321
8322 (define-public ecl-cl-ana.binary-tree
8323 (sbcl-package->ecl-package sbcl-cl-ana.binary-tree))
8324
8325 (define-public sbcl-cl-ana.tensor
8326 (package
8327 (inherit sbcl-cl-ana-boot0)
8328 (name "sbcl-cl-ana.tensor")
8329 (inputs
8330 `(("alexandria" ,sbcl-alexandria)
8331 ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
8332 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8333 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
8334 ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)))
8335 (arguments
8336 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8337 ((#:asd-file _ "") "tensor/cl-ana.tensor.asd")
8338 ((#:asd-system-name _ #f) "cl-ana.tensor")))))
8339
8340 (define-public cl-ana.tensor
8341 (sbcl-package->cl-source-package sbcl-cl-ana.tensor))
8342
8343 (define-public ecl-cl-ana.tensor
8344 (sbcl-package->ecl-package sbcl-cl-ana.tensor))
8345
8346 (define-public sbcl-cl-ana.error-propogation
8347 (package
8348 (inherit sbcl-cl-ana-boot0)
8349 (name "sbcl-cl-ana.error-propogation")
8350 (inputs
8351 `(("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
8352 ("cl-ana.math-functions" ,sbcl-cl-ana.math-functions)))
8353 (arguments
8354 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8355 ((#:asd-file _ "") "error-propogation/cl-ana.error-propogation.asd")
8356 ((#:asd-system-name _ #f) "cl-ana.error-propogation")))))
8357
8358 (define-public cl-ana.error-propogation
8359 (sbcl-package->cl-source-package sbcl-cl-ana.error-propogation))
8360
8361 (define-public sbcl-cl-ana.quantity
8362 (package
8363 (inherit sbcl-cl-ana-boot0)
8364 (name "sbcl-cl-ana.quantity")
8365 (inputs
8366 `(("alexandria" ,sbcl-alexandria)
8367 ("cl-ana.error-propogation" ,sbcl-cl-ana.error-propogation)
8368 ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
8369 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8370 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
8371 ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)))
8372 (arguments
8373 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8374 ((#:asd-file _ "") "quantity/cl-ana.quantity.asd")
8375 ((#:asd-system-name _ #f) "cl-ana.quantity")))))
8376
8377 (define-public cl-ana.quantity
8378 (sbcl-package->cl-source-package sbcl-cl-ana.quantity))
8379
8380 (define-public sbcl-cl-ana.table
8381 (package
8382 (inherit sbcl-cl-ana-boot0)
8383 (name "sbcl-cl-ana.table")
8384 (inputs
8385 `(("alexandria" ,sbcl-alexandria)
8386 ("cl-ana.functional-utils" ,sbcl-cl-ana.functional-utils)
8387 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8388 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
8389 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
8390 ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)))
8391 (arguments
8392 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8393 ((#:asd-file _ "") "table/cl-ana.table.asd")
8394 ((#:asd-system-name _ #f) "cl-ana.table")))))
8395
8396 (define-public cl-ana.table
8397 (sbcl-package->cl-source-package sbcl-cl-ana.table))
8398
8399 (define-public ecl-cl-ana.table
8400 (sbcl-package->ecl-package sbcl-cl-ana.table))
8401
8402 (define-public sbcl-cl-ana.table-utils
8403 (package
8404 (inherit sbcl-cl-ana-boot0)
8405 (name "sbcl-cl-ana.table-utils")
8406 (inputs
8407 `(("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
8408 ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)
8409 ("cl-ana.table" ,sbcl-cl-ana.table)))
8410 (arguments
8411 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8412 ((#:asd-file _ "") "table-utils/cl-ana.table-utils.asd")
8413 ((#:asd-system-name _ #f) "cl-ana.table-utils")))))
8414
8415 (define-public cl-ana.table-utils
8416 (sbcl-package->cl-source-package sbcl-cl-ana.table-utils))
8417
8418 (define-public ecl-cl-ana.table-utils
8419 (sbcl-package->ecl-package sbcl-cl-ana.table-utils))
8420
8421 (define-public sbcl-cl-ana.hdf-cffi
8422 (package
8423 (inherit sbcl-cl-ana-boot0)
8424 (name "sbcl-cl-ana.hdf-cffi")
8425 (inputs
8426 `(("cffi" ,sbcl-cffi)
8427 ("hdf5" ,hdf5-parallel-openmpi)))
8428 (arguments
8429 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8430 ((#:asd-file _ "") "hdf-cffi/cl-ana.hdf-cffi.asd")
8431 ((#:asd-system-name _ #f) "cl-ana.hdf-cffi")
8432 ((#:phases phases '%standard-phases)
8433 `(modify-phases ,phases
8434 (add-after 'unpack 'fix-paths
8435 (lambda* (#:key inputs #:allow-other-keys)
8436 (substitute* "hdf-cffi/hdf-cffi.lisp"
8437 (("/usr/lib/i386-linux-gnu/hdf5/serial/libhdf5.so")
8438 (string-append
8439 (assoc-ref inputs "hdf5")
8440 "/lib/libhdf5.so")))))))))))
8441
8442 (define-public cl-ana.hdf-cffi
8443 (sbcl-package->cl-source-package sbcl-cl-ana.hdf-cffi))
8444
8445 (define-public ecl-cl-ana.hdf-cffi
8446 (sbcl-package->ecl-package sbcl-cl-ana.hdf-cffi))
8447
8448 (define-public sbcl-cl-ana.int-char
8449 (package
8450 (inherit sbcl-cl-ana-boot0)
8451 (name "sbcl-cl-ana.int-char")
8452 (arguments
8453 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8454 ((#:asd-file _ "") "int-char/cl-ana.int-char.asd")
8455 ((#:asd-system-name _ #f) "cl-ana.int-char")))))
8456
8457 (define-public cl-ana.int-char
8458 (sbcl-package->cl-source-package sbcl-cl-ana.int-char))
8459
8460 (define-public ecl-cl-ana.int-char
8461 (sbcl-package->ecl-package sbcl-cl-ana.int-char))
8462
8463 (define-public sbcl-cl-ana.memoization
8464 (package
8465 (inherit sbcl-cl-ana-boot0)
8466 (name "sbcl-cl-ana.memoization")
8467 (inputs
8468 `(("alexandria" ,sbcl-alexandria)))
8469 (arguments
8470 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8471 ((#:asd-file _ "") "memoization/cl-ana.memoization.asd")
8472 ((#:asd-system-name _ #f) "cl-ana.memoization")))))
8473
8474 (define-public cl-ana.memoization
8475 (sbcl-package->cl-source-package sbcl-cl-ana.memoization))
8476
8477 (define-public ecl-cl-ana.memoization
8478 (sbcl-package->ecl-package sbcl-cl-ana.memoization))
8479
8480 (define-public sbcl-cl-ana.typespec
8481 (package
8482 (inherit sbcl-cl-ana-boot0)
8483 (name "sbcl-cl-ana.typespec")
8484 (inputs
8485 `(("alexandria" ,sbcl-alexandria)
8486 ("cffi" ,sbcl-cffi)
8487 ("cl-ana.int-char" ,sbcl-cl-ana.int-char)
8488 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8489 ("cl-ana.memoization" ,sbcl-cl-ana.memoization)
8490 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
8491 ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)
8492 ("cl-ana.tensor" ,sbcl-cl-ana.tensor)))
8493 (arguments
8494 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8495 ((#:asd-file _ "") "typespec/cl-ana.typespec.asd")
8496 ((#:asd-system-name _ #f) "cl-ana.typespec")))))
8497
8498 (define-public cl-ana.typespec
8499 (sbcl-package->cl-source-package sbcl-cl-ana.typespec))
8500
8501 (define-public ecl-cl-ana.typespec
8502 (sbcl-package->ecl-package sbcl-cl-ana.typespec))
8503
8504 (define-public sbcl-cl-ana.hdf-typespec
8505 (package
8506 (inherit sbcl-cl-ana-boot0)
8507 (name "sbcl-cl-ana.hdf-typespec")
8508 (inputs
8509 `(("alexandria" ,sbcl-alexandria)
8510 ("cffi" ,sbcl-cffi)
8511 ("cl-ana.hdf-cffi" ,sbcl-cl-ana.hdf-cffi)
8512 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8513 ("cl-ana.memoization" ,sbcl-cl-ana.memoization)
8514 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
8515 ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)
8516 ("cl-ana.typespec" ,sbcl-cl-ana.typespec)))
8517 (arguments
8518 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8519 ((#:asd-file _ "") "hdf-typespec/cl-ana.hdf-typespec.asd")
8520 ((#:asd-system-name _ #f) "cl-ana.hdf-typespec")))))
8521
8522 (define-public cl-ana.hdf-typespec
8523 (sbcl-package->cl-source-package sbcl-cl-ana.hdf-typespec))
8524
8525 (define-public ecl-cl-ana.hdf-typespec
8526 (sbcl-package->ecl-package sbcl-cl-ana.hdf-typespec))
8527
8528 (define-public sbcl-cl-ana.hdf-utils
8529 (package
8530 (inherit sbcl-cl-ana-boot0)
8531 (name "sbcl-cl-ana.hdf-utils")
8532 (inputs
8533 `(("alexandria" ,sbcl-alexandria)
8534 ("cffi" ,sbcl-cffi)
8535 ("cl-ana.hdf-cffi" ,sbcl-cl-ana.hdf-cffi)
8536 ("cl-ana.hdf-typespec" ,sbcl-cl-ana.hdf-typespec)
8537 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
8538 ("cl-ana.memoization" ,sbcl-cl-ana.memoization)
8539 ("cl-ana.pathname-utils" ,sbcl-cl-ana.pathname-utils)
8540 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
8541 ("cl-ana.typespec" ,sbcl-cl-ana.typespec)))
8542 (arguments
8543 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8544 ((#:asd-file _ "") "hdf-utils/cl-ana.hdf-utils.asd")
8545 ((#:asd-system-name _ #f) "cl-ana.hdf-utils")))))
8546
8547 (define-public cl-ana.hdf-utils
8548 (sbcl-package->cl-source-package sbcl-cl-ana.hdf-utils))
8549
8550 (define-public ecl-cl-ana.hdf-utils
8551 (sbcl-package->ecl-package sbcl-cl-ana.hdf-utils))
8552
8553 (define-public sbcl-cl-ana.typed-table
8554 (package
8555 (inherit sbcl-cl-ana-boot0)
8556 (name "sbcl-cl-ana.typed-table")
8557 (inputs
8558 `(("alexandria" ,sbcl-alexandria)
8559 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8560 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
8561 ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)
8562 ("cl-ana.table" ,sbcl-cl-ana.table)
8563 ("cl-ana.typespec" ,sbcl-cl-ana.typespec)))
8564 (arguments
8565 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8566 ((#:asd-file _ "") "typed-table/cl-ana.typed-table.asd")
8567 ((#:asd-system-name _ #f) "cl-ana.typed-table")))))
8568
8569 (define-public cl-ana.typed-table
8570 (sbcl-package->cl-source-package sbcl-cl-ana.typed-table))
8571
8572 (define-public ecl-cl-ana.typed-table
8573 (sbcl-package->ecl-package sbcl-cl-ana.typed-table))
8574
8575 (define-public sbcl-cl-ana.hdf-table
8576 (package
8577 (inherit sbcl-cl-ana-boot0)
8578 (name "sbcl-cl-ana.hdf-table")
8579 (inputs
8580 `(("alexandria" ,sbcl-alexandria)
8581 ("cl-ana.binary-tree" ,sbcl-cl-ana.binary-tree)
8582 ("cl-ana.hdf-cffi" ,sbcl-cl-ana.hdf-cffi)
8583 ("cl-ana.hdf-typespec" ,sbcl-cl-ana.hdf-typespec)
8584 ("cl-ana.hdf-utils" ,sbcl-cl-ana.hdf-utils)
8585 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8586 ("cl-ana.memoization" ,sbcl-cl-ana.memoization)
8587 ("cl-ana.table" ,sbcl-cl-ana.table)
8588 ("cl-ana.typed-table" ,sbcl-cl-ana.typed-table)
8589 ("cl-ana.typespec" ,sbcl-cl-ana.typespec)))
8590 (arguments
8591 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8592 ((#:asd-file _ "") "hdf-table/cl-ana.hdf-table.asd")
8593 ((#:asd-system-name _ #f) "cl-ana.hdf-table")))))
8594
8595 (define-public cl-ana.hdf-table
8596 (sbcl-package->cl-source-package sbcl-cl-ana.hdf-table))
8597
8598 (define-public ecl-cl-ana.hdf-table
8599 (sbcl-package->ecl-package sbcl-cl-ana.hdf-table))
8600
8601 (define-public sbcl-cl-ana.gsl-cffi
8602 (package
8603 (inherit sbcl-cl-ana-boot0)
8604 (name "sbcl-cl-ana.gsl-cffi")
8605 (inputs
8606 `(("cffi" ,sbcl-cffi)
8607 ("gsl" ,gsl)))
8608 (arguments
8609 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8610 ((#:asd-file _ "") "gsl-cffi/cl-ana.gsl-cffi.asd")
8611 ((#:asd-system-name _ #f) "cl-ana.gsl-cffi")
8612 ((#:phases phases '%standard-phases)
8613 `(modify-phases ,phases
8614 (add-after 'unpack 'fix-paths
8615 (lambda* (#:key inputs #:allow-other-keys)
8616 (substitute* "gsl-cffi/gsl-cffi.lisp"
8617 (("define-foreign-library gsl-cffi" all)
8618 (string-append all " (:unix "
8619 (assoc-ref inputs "gsl")
8620 "/lib/libgsl.so)")))))))))))
8621
8622 (define-public cl-ana.gsl-cffi
8623 (sbcl-package->cl-source-package sbcl-cl-ana.gsl-cffi))
8624
8625 (define-public ecl-cl-ana.gsl-cffi
8626 (sbcl-package->ecl-package sbcl-cl-ana.gsl-cffi))
8627
8628 (define-public sbcl-cl-ana.ntuple-table
8629 (package
8630 (inherit sbcl-cl-ana-boot0)
8631 (name "sbcl-cl-ana.ntuple-table")
8632 (inputs
8633 `(("alexandria" ,sbcl-alexandria)
8634 ("cffi" ,sbcl-cffi)
8635 ("cl-ana.gsl-cffi" ,sbcl-cl-ana.gsl-cffi)
8636 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8637 ("cl-ana.table" ,sbcl-cl-ana.table)
8638 ("cl-ana.typed-table" ,sbcl-cl-ana.typed-table)
8639 ("cl-ana.typespec" ,sbcl-cl-ana.typespec)
8640 ("gsll" ,sbcl-gsll)))
8641 (arguments
8642 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8643 ((#:asd-file _ "") "ntuple-table/cl-ana.ntuple-table.asd")
8644 ((#:asd-system-name _ #f) "cl-ana.ntuple-table")))))
8645
8646 (define-public cl-ana.ntuple-table
8647 (sbcl-package->cl-source-package sbcl-cl-ana.ntuple-table))
8648
8649 (define-public sbcl-cl-ana.csv-table
8650 (package
8651 (inherit sbcl-cl-ana-boot0)
8652 (name "sbcl-cl-ana.csv-table")
8653 (inputs
8654 `(("alexandria" ,sbcl-alexandria)
8655 ("antik" ,sbcl-antik)
8656 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8657 ("cl-ana.table" ,sbcl-cl-ana.table)
8658 ("cl-csv" ,sbcl-cl-csv)
8659 ("iterate" ,sbcl-iterate)))
8660 (arguments
8661 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8662 ((#:asd-file _ "") "csv-table/cl-ana.csv-table.asd")
8663 ((#:asd-system-name _ #f) "cl-ana.csv-table")))))
8664
8665 (define-public cl-ana.csv-table
8666 (sbcl-package->cl-source-package sbcl-cl-ana.csv-table))
8667
8668 (define-public sbcl-cl-ana.reusable-table
8669 (package
8670 (inherit sbcl-cl-ana-boot0)
8671 (name "sbcl-cl-ana.reusable-table")
8672 (inputs
8673 `(("alexandria" ,sbcl-alexandria)
8674 ("cl-ana.table" ,sbcl-cl-ana.table)))
8675 (arguments
8676 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8677 ((#:asd-file _ "") "reusable-table/cl-ana.reusable-table.asd")
8678 ((#:asd-system-name _ #f) "cl-ana.reusable-table")))))
8679
8680 (define-public cl-ana.reusable-table
8681 (sbcl-package->cl-source-package sbcl-cl-ana.reusable-table))
8682
8683 (define-public ecl-cl-ana.reusable-table
8684 (sbcl-package->ecl-package sbcl-cl-ana.reusable-table))
8685
8686 (define-public sbcl-cl-ana.linear-algebra
8687 (package
8688 (inherit sbcl-cl-ana-boot0)
8689 (name "sbcl-cl-ana.linear-algebra")
8690 (inputs
8691 `(("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
8692 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8693 ("cl-ana.math-functions" ,sbcl-cl-ana.math-functions)
8694 ("cl-ana.tensor" ,sbcl-cl-ana.tensor)
8695 ("gsll" ,sbcl-gsll)))
8696 (arguments
8697 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8698 ((#:asd-file _ "") "linear-algebra/cl-ana.linear-algebra.asd")
8699 ((#:asd-system-name _ #f) "cl-ana.linear-algebra")))))
8700
8701 (define-public cl-ana.linear-algebra
8702 (sbcl-package->cl-source-package sbcl-cl-ana.linear-algebra))
8703
8704 (define-public sbcl-cl-ana.lorentz
8705 (package
8706 (inherit sbcl-cl-ana-boot0)
8707 (name "sbcl-cl-ana.lorentz")
8708 (inputs
8709 `(("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
8710 ("cl-ana.linear-algebra" ,sbcl-cl-ana.linear-algebra)
8711 ("cl-ana.tensor" ,sbcl-cl-ana.tensor)
8712 ("iterate" ,sbcl-iterate)))
8713 (arguments
8714 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8715 ((#:asd-file _ "") "lorentz/cl-ana.lorentz.asd")
8716 ((#:asd-system-name _ #f) "cl-ana.lorentz")))))
8717
8718 (define-public cl-ana.lorentz
8719 (sbcl-package->cl-source-package sbcl-cl-ana.lorentz))
8720
8721 (define-public sbcl-cl-ana.clos-utils
8722 (package
8723 (inherit sbcl-cl-ana-boot0)
8724 (name "sbcl-cl-ana.clos-utils")
8725 (inputs
8726 `(("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8727 ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)
8728 ("cl-ana.tensor" ,sbcl-cl-ana.tensor)
8729 ("closer-mop" ,sbcl-closer-mop)))
8730 (arguments
8731 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8732 ((#:asd-file _ "") "clos-utils/cl-ana.clos-utils.asd")
8733 ((#:asd-system-name _ #f) "cl-ana.clos-utils")))))
8734
8735 (define-public cl-ana.clos-utils
8736 (sbcl-package->cl-source-package sbcl-cl-ana.clos-utils))
8737
8738 (define-public ecl-cl-ana.clos-utils
8739 (sbcl-package->ecl-package sbcl-cl-ana.clos-utils))
8740
8741 (define-public sbcl-cl-ana.hash-table-utils
8742 (package
8743 (inherit sbcl-cl-ana-boot0)
8744 (name "sbcl-cl-ana.hash-table-utils")
8745 (arguments
8746 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8747 ((#:asd-file _ "") "hash-table-utils/cl-ana.hash-table-utils.asd")
8748 ((#:asd-system-name _ #f) "cl-ana.hash-table-utils")))))
8749
8750 (define-public cl-ana.hash-table-utils
8751 (sbcl-package->cl-source-package sbcl-cl-ana.hash-table-utils))
8752
8753 (define-public ecl-cl-ana.hash-table-utils
8754 (sbcl-package->ecl-package sbcl-cl-ana.hash-table-utils))
8755
8756 (define-public sbcl-cl-ana.map
8757 (package
8758 (inherit sbcl-cl-ana-boot0)
8759 (name "sbcl-cl-ana.map")
8760 (inputs
8761 `(("cl-ana.hash-table-utils" ,sbcl-cl-ana.hash-table-utils)))
8762 (arguments
8763 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8764 ((#:asd-file _ "") "map/cl-ana.map.asd")
8765 ((#:asd-system-name _ #f) "cl-ana.map")))))
8766
8767 (define-public cl-ana.map
8768 (sbcl-package->cl-source-package sbcl-cl-ana.map))
8769
8770 (define-public ecl-cl-ana.map
8771 (sbcl-package->ecl-package sbcl-cl-ana.map))
8772
8773 (define-public sbcl-cl-ana.fitting
8774 (package
8775 (inherit sbcl-cl-ana-boot0)
8776 (name "sbcl-cl-ana.fitting")
8777 (inputs
8778 `(("alexandria" ,sbcl-alexandria)
8779 ("cl-ana.error-propogation" ,sbcl-cl-ana.error-propogation)
8780 ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
8781 ("cl-ana.map" ,sbcl-cl-ana.map)
8782 ("cl-ana.math-functions" ,sbcl-cl-ana.math-functions)
8783 ("gsll" ,sbcl-gsll)))
8784 (arguments
8785 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8786 ((#:asd-file _ "") "fitting/cl-ana.fitting.asd")
8787 ((#:asd-system-name _ #f) "cl-ana.fitting")))))
8788
8789 (define-public cl-ana.fitting
8790 (sbcl-package->cl-source-package sbcl-cl-ana.fitting))
8791
8792 (define-public sbcl-cl-ana.histogram
8793 (package
8794 (inherit sbcl-cl-ana-boot0)
8795 (name "sbcl-cl-ana.histogram")
8796 (inputs
8797 `(("alexandria" ,sbcl-alexandria)
8798 ("iterate" ,sbcl-iterate)
8799 ("cl-ana.binary-tree" ,sbcl-cl-ana.binary-tree)
8800 ("cl-ana.clos-utils" ,sbcl-cl-ana.clos-utils)
8801 ("cl-ana.fitting" ,sbcl-cl-ana.fitting)
8802 ("cl-ana.functional-utils" ,sbcl-cl-ana.functional-utils)
8803 ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
8804 ("cl-ana.hash-table-utils" ,sbcl-cl-ana.hash-table-utils)
8805 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8806 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
8807 ("cl-ana.map" ,sbcl-cl-ana.map)
8808 ("cl-ana.tensor" ,sbcl-cl-ana.tensor)))
8809 (arguments
8810 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8811 ((#:asd-file _ "") "histogram/cl-ana.histogram.asd")
8812 ((#:asd-system-name _ #f) "cl-ana.histogram")))))
8813
8814 (define-public cl-ana.histogram
8815 (sbcl-package->cl-source-package sbcl-cl-ana.histogram))
8816
8817 (define-public sbcl-cl-ana.file-utils
8818 (package
8819 (inherit sbcl-cl-ana-boot0)
8820 (name "sbcl-cl-ana.file-utils")
8821 (inputs
8822 `(("external-program" ,sbcl-external-program)
8823 ("split-sequence" ,sbcl-split-sequence)))
8824 (arguments
8825 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8826 ((#:asd-file _ "") "file-utils/cl-ana.file-utils.asd")
8827 ((#:asd-system-name _ #f) "cl-ana.file-utils")))))
8828
8829 (define-public cl-ana.file-utils
8830 (sbcl-package->cl-source-package sbcl-cl-ana.file-utils))
8831
8832 (define-public ecl-cl-ana.file-utils
8833 (sbcl-package->ecl-package sbcl-cl-ana.file-utils))
8834
8835 (define-public sbcl-cl-ana.statistics
8836 (package
8837 (inherit sbcl-cl-ana-boot0)
8838 (name "sbcl-cl-ana.statistics")
8839 (inputs
8840 `(("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
8841 ("cl-ana.histogram" ,sbcl-cl-ana.histogram)
8842 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8843 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
8844 ("cl-ana.map" ,sbcl-cl-ana.map)))
8845 (arguments
8846 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8847 ((#:asd-file _ "") "statistics/cl-ana.statistics.asd")
8848 ((#:asd-system-name _ #f) "cl-ana.statistics")))))
8849
8850 (define-public cl-ana.statistics
8851 (sbcl-package->cl-source-package sbcl-cl-ana.statistics))
8852
8853 (define-public sbcl-cl-ana.gnuplot-interface
8854 (package
8855 (inherit sbcl-cl-ana-boot0)
8856 (name "sbcl-cl-ana.gnuplot-interface")
8857 (inputs
8858 `(("external-program" ,sbcl-external-program)))
8859 (arguments
8860 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8861 ((#:asd-file _ "") "gnuplot-interface/cl-ana.gnuplot-interface.asd")
8862 ((#:asd-system-name _ #f) "cl-ana.gnuplot-interface")))))
8863
8864 (define-public cl-ana.gnuplot-interface
8865 (sbcl-package->cl-source-package sbcl-cl-ana.gnuplot-interface))
8866
8867 (define-public ecl-cl-ana.gnuplot-interface
8868 (sbcl-package->ecl-package sbcl-cl-ana.gnuplot-interface))
8869
8870 (define-public sbcl-cl-ana.plotting
8871 (package
8872 (inherit sbcl-cl-ana-boot0)
8873 (name "sbcl-cl-ana.plotting")
8874 (inputs
8875 `(("alexandria" ,sbcl-alexandria)
8876 ("cl-ana.error-propogation" ,sbcl-cl-ana.error-propogation)
8877 ("cl-ana.functional-utils" ,sbcl-cl-ana.functional-utils)
8878 ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
8879 ("cl-ana.gnuplot-interface" ,sbcl-cl-ana.gnuplot-interface)
8880 ("cl-ana.histogram" ,sbcl-cl-ana.histogram)
8881 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8882 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
8883 ("cl-ana.map" ,sbcl-cl-ana.map)
8884 ("cl-ana.math-functions" ,sbcl-cl-ana.math-functions)
8885 ("cl-ana.pathname-utils" ,sbcl-cl-ana.pathname-utils)
8886 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
8887 ("cl-ana.tensor" ,sbcl-cl-ana.tensor)
8888 ("external-program" ,sbcl-external-program)
8889 ("split-sequence" ,sbcl-split-sequence)))
8890 (arguments
8891 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8892 ((#:asd-file _ "") "plotting/cl-ana.plotting.asd")
8893 ((#:asd-system-name _ #f) "cl-ana.plotting")))))
8894
8895 (define-public cl-ana.plotting
8896 (sbcl-package->cl-source-package sbcl-cl-ana.plotting))
8897
8898 (define-public sbcl-cl-ana.table-viewing
8899 (package
8900 (inherit sbcl-cl-ana-boot0)
8901 (name "sbcl-cl-ana.table-viewing")
8902 (inputs
8903 `(("alexandria" ,sbcl-alexandria)
8904 ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
8905 ("cl-ana.histogram" ,sbcl-cl-ana.histogram)
8906 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
8907 ("cl-ana.plotting" ,sbcl-cl-ana.plotting)
8908 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
8909 ("cl-ana.table" ,sbcl-cl-ana.table)))
8910 (arguments
8911 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8912 ((#:asd-file _ "") "table-viewing/cl-ana.table-viewing.asd")
8913 ((#:asd-system-name _ #f) "cl-ana.table-viewing")))))
8914
8915 (define-public cl-ana.table-viewing
8916 (sbcl-package->cl-source-package sbcl-cl-ana.table-viewing))
8917
8918 (define-public sbcl-cl-ana.serialization
8919 (package
8920 (inherit sbcl-cl-ana-boot0)
8921 (name "sbcl-cl-ana.serialization")
8922 (inputs
8923 `(("cl-ana.error-propogation" ,sbcl-cl-ana.error-propogation)
8924 ("cl-ana.hdf-utils" ,sbcl-cl-ana.hdf-utils)
8925 ("cl-ana.hdf-table" ,sbcl-cl-ana.hdf-table)
8926 ("cl-ana.histogram" ,sbcl-cl-ana.histogram)
8927 ("cl-ana.int-char" ,sbcl-cl-ana.int-char)
8928 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
8929 ("cl-ana.typespec" ,sbcl-cl-ana.typespec)))
8930 (arguments
8931 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8932 ((#:asd-file _ "") "serialization/cl-ana.serialization.asd")
8933 ((#:asd-system-name _ #f) "cl-ana.serialization")))))
8934
8935 (define-public cl-ana.serialization
8936 (sbcl-package->cl-source-package sbcl-cl-ana.serialization))
8937
8938 (define-public sbcl-cl-ana.makeres
8939 (package
8940 (inherit sbcl-cl-ana-boot0)
8941 (name "sbcl-cl-ana.makeres")
8942 (inputs
8943 `(("alexandria" ,sbcl-alexandria)
8944 ("cl-ana.error-propogation" ,sbcl-cl-ana.error-propogation)
8945 ("cl-ana.file-utils" ,sbcl-cl-ana.file-utils)
8946 ("cl-ana.functional-utils" ,sbcl-cl-ana.functional-utils)
8947 ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
8948 ("cl-ana.hash-table-utils" ,sbcl-cl-ana.hash-table-utils)
8949 ("cl-ana.hdf-utils" ,sbcl-cl-ana.hdf-utils)
8950 ("cl-ana.histogram" ,sbcl-cl-ana.histogram)
8951 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8952 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
8953 ("cl-ana.map" ,sbcl-cl-ana.map)
8954 ("cl-ana.memoization" ,sbcl-cl-ana.memoization)
8955 ("cl-ana.pathname-utils" ,sbcl-cl-ana.pathname-utils)
8956 ("cl-ana.plotting" ,sbcl-cl-ana.plotting)
8957 ("cl-ana.reusable-table" ,sbcl-cl-ana.reusable-table)
8958 ("cl-ana.serialization" ,sbcl-cl-ana.serialization)
8959 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
8960 ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)
8961 ("cl-ana.table" ,sbcl-cl-ana.table)
8962 ("external-program" ,sbcl-external-program)))
8963 (native-inputs
8964 `(("cl-fad" ,sbcl-cl-fad)))
8965 (arguments
8966 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8967 ((#:asd-file _ "") "makeres/cl-ana.makeres.asd")
8968 ((#:asd-system-name _ #f) "cl-ana.makeres")))))
8969
8970 (define-public cl-ana.makeres
8971 (sbcl-package->cl-source-package sbcl-cl-ana.makeres))
8972
8973 (define-public sbcl-cl-ana.makeres-macro
8974 (package
8975 (inherit sbcl-cl-ana-boot0)
8976 (name "sbcl-cl-ana.makeres-macro")
8977 (inputs
8978 `(("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8979 ("cl-ana.makeres" ,sbcl-cl-ana.makeres)))
8980 (arguments
8981 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8982 ((#:asd-file _ "") "makeres-macro/cl-ana.makeres-macro.asd")
8983 ((#:asd-system-name _ #f) "cl-ana.makeres-macro")))))
8984
8985 (define-public cl-ana.makeres-macro
8986 (sbcl-package->cl-source-package sbcl-cl-ana.makeres-macro))
8987
8988 (define-public sbcl-cl-ana.makeres-block
8989 (package
8990 (inherit sbcl-cl-ana-boot0)
8991 (name "sbcl-cl-ana.makeres-block")
8992 (inputs
8993 `(("alexandria" ,sbcl-alexandria)
8994 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8995 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
8996 ("cl-ana.makeres" ,sbcl-cl-ana.makeres)))
8997 (arguments
8998 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8999 ((#:asd-file _ "") "makeres-block/cl-ana.makeres-block.asd")
9000 ((#:asd-system-name _ #f) "cl-ana.makeres-block")))))
9001
9002 (define-public cl-ana.makeres-block
9003 (sbcl-package->cl-source-package sbcl-cl-ana.makeres-block))
9004
9005 (define-public sbcl-cl-ana.makeres-progress
9006 (package
9007 (inherit sbcl-cl-ana-boot0)
9008 (name "sbcl-cl-ana.makeres-progress")
9009 (inputs
9010 `(("alexandria" ,sbcl-alexandria)
9011 ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
9012 ("cl-ana.makeres" ,sbcl-cl-ana.makeres)))
9013 (arguments
9014 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9015 ((#:asd-file _ "") "makeres-progress/cl-ana.makeres-progress.asd")
9016 ((#:asd-system-name _ #f) "cl-ana.makeres-progress")))))
9017
9018 (define-public cl-ana.makeres-progress
9019 (sbcl-package->cl-source-package sbcl-cl-ana.makeres-progress))
9020
9021 (define-public sbcl-cl-ana.makeres-table
9022 (package
9023 (inherit sbcl-cl-ana-boot0)
9024 (name "sbcl-cl-ana.makeres-table")
9025 (inputs
9026 `(("cl-ana.csv-table" ,sbcl-cl-ana.csv-table)
9027 ("cl-ana.hash-table-utils" ,sbcl-cl-ana.hash-table-utils)
9028 ("cl-ana.hdf-table" ,sbcl-cl-ana.hdf-table)
9029 ("cl-ana.hdf-utils" ,sbcl-cl-ana.hdf-utils)
9030 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
9031 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
9032 ("cl-ana.makeres" ,sbcl-cl-ana.makeres)
9033 ("cl-ana.makeres-macro" ,sbcl-cl-ana.makeres-macro)
9034 ("cl-ana.memoization" ,sbcl-cl-ana.memoization)
9035 ("cl-ana.ntuple-table" ,sbcl-cl-ana.ntuple-table)
9036 ("cl-ana.reusable-table" ,sbcl-cl-ana.reusable-table)
9037 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
9038 ("cl-ana.table" ,sbcl-cl-ana.table)))
9039 (native-inputs
9040 `(("cl-fad" ,sbcl-cl-fad)))
9041 (arguments
9042 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9043 ((#:asd-file _ "") "makeres-table/cl-ana.makeres-table.asd")
9044 ((#:asd-system-name _ #f) "cl-ana.makeres-table")))))
9045
9046 (define-public cl-ana.makeres-table
9047 (sbcl-package->cl-source-package sbcl-cl-ana.makeres-table))
9048
9049 (define-public sbcl-cl-ana.makeres-graphviz
9050 (package
9051 (inherit sbcl-cl-ana-boot0)
9052 (name "sbcl-cl-ana.makeres-graphviz")
9053 (inputs
9054 `(("cl-ana.makeres" ,sbcl-cl-ana.makeres)
9055 ("external-program" ,sbcl-external-program)))
9056 (arguments
9057 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9058 ((#:asd-file _ "") "makeres-graphviz/cl-ana.makeres-graphviz.asd")
9059 ((#:asd-system-name _ #f) "cl-ana.makeres-graphviz")))))
9060
9061 (define-public cl-ana.makeres-graphviz
9062 (sbcl-package->cl-source-package sbcl-cl-ana.makeres-graphviz))
9063
9064 (define-public sbcl-cl-ana.makeres-branch
9065 (package
9066 (inherit sbcl-cl-ana-boot0)
9067 (name "sbcl-cl-ana.makeres-branch")
9068 (inputs
9069 `(("alexandria" ,sbcl-alexandria)
9070 ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
9071 ("cl-ana.hash-table-utils" ,sbcl-cl-ana.hash-table-utils)
9072 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
9073 ("cl-ana.map" ,sbcl-cl-ana.map)
9074 ("cl-ana.makeres" ,sbcl-cl-ana.makeres)))
9075 (arguments
9076 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9077 ((#:asd-file _ "") "makeres-branch/cl-ana.makeres-branch.asd")
9078 ((#:asd-system-name _ #f) "cl-ana.makeres-branch")))))
9079
9080 (define-public cl-ana.makeres-branch
9081 (sbcl-package->cl-source-package sbcl-cl-ana.makeres-branch))
9082
9083 (define-public sbcl-cl-ana.makeres-utils
9084 (package
9085 (inherit sbcl-cl-ana-boot0)
9086 (name "sbcl-cl-ana.makeres-utils")
9087 (inputs
9088 `(("alexandria" ,sbcl-alexandria)
9089 ("cl-ana.file-utils" ,sbcl-cl-ana.file-utils)
9090 ("cl-ana.fitting" ,sbcl-cl-ana.fitting)
9091 ("cl-ana.functional-utils" ,sbcl-cl-ana.functional-utils)
9092 ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
9093 ("cl-ana.histogram" ,sbcl-cl-ana.histogram)
9094 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
9095 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
9096 ("cl-ana.makeres" ,sbcl-cl-ana.makeres)
9097 ("cl-ana.map" ,sbcl-cl-ana.map)
9098 ("cl-ana.pathname-utils" ,sbcl-cl-ana.pathname-utils)
9099 ("cl-ana.plotting" ,sbcl-cl-ana.plotting)
9100 ("cl-ana.reusable-table" ,sbcl-cl-ana.reusable-table)
9101 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
9102 ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)
9103 ("cl-ana.table" ,sbcl-cl-ana.table)))
9104 (native-inputs
9105 `(("cl-fad" ,sbcl-cl-fad)))
9106 (arguments
9107 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9108 ((#:asd-file _ "") "makeres-utils/cl-ana.makeres-utils.asd")
9109 ((#:asd-system-name _ #f) "cl-ana.makeres-utils")))))
9110
9111 (define-public cl-ana.makeres-utils
9112 (sbcl-package->cl-source-package sbcl-cl-ana.makeres-utils))
9113
9114 (define-public sbcl-cl-ana.statistical-learning
9115 (package
9116 (inherit sbcl-cl-ana-boot0)
9117 (name "sbcl-cl-ana.statistical-learning")
9118 (inputs
9119 `(("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
9120 ("cl-ana.functional-utils" ,sbcl-cl-ana.functional-utils)
9121 ("cl-ana.histogram" ,sbcl-cl-ana.histogram)
9122 ("cl-ana.linear-algebra" ,sbcl-cl-ana.linear-algebra)
9123 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
9124 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
9125 ("cl-ana.math-functions" ,sbcl-cl-ana.math-functions)
9126 ("cl-ana.map" ,sbcl-cl-ana.map)
9127 ("cl-ana.statistics" ,sbcl-cl-ana.statistics)))
9128 (native-inputs
9129 `(("cl-fad" ,sbcl-cl-fad)))
9130 (arguments
9131 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9132 ((#:asd-file _ "")
9133 "statistical-learning/cl-ana.statistical-learning.asd")
9134 ((#:asd-system-name _ #f) "cl-ana.statistical-learning")))))
9135
9136 (define-public cl-ana.statistical-learning
9137 (sbcl-package->cl-source-package sbcl-cl-ana.statistical-learning))
9138
9139 (define-public sbcl-cl-ana
9140 (package
9141 (inherit sbcl-cl-ana-boot0)
9142 (name "sbcl-cl-ana")
9143 (inputs
9144 `(("cl-ana.binary-tree" ,sbcl-cl-ana.binary-tree)
9145 ("cl-ana.calculus" ,sbcl-cl-ana.calculus)
9146 ("cl-ana.clos-utils" ,sbcl-cl-ana.clos-utils)
9147 ("cl-ana.csv-table" ,sbcl-cl-ana.csv-table)
9148 ("cl-ana.error-propogation" ,sbcl-cl-ana.error-propogation)
9149 ("cl-ana.file-utils" ,sbcl-cl-ana.file-utils)
9150 ("cl-ana.fitting" ,sbcl-cl-ana.fitting)
9151 ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
9152 ("cl-ana.hash-table-utils" ,sbcl-cl-ana.hash-table-utils)
9153 ("cl-ana.hdf-table" ,sbcl-cl-ana.hdf-table)
9154 ("cl-ana.histogram" ,sbcl-cl-ana.histogram)
9155 ("cl-ana.int-char" ,sbcl-cl-ana.int-char)
9156 ("cl-ana.linear-algebra" ,sbcl-cl-ana.linear-algebra)
9157 ("cl-ana.lorentz" ,sbcl-cl-ana.lorentz)
9158 ("cl-ana.map" ,sbcl-cl-ana.map)
9159 ("cl-ana.makeres" ,sbcl-cl-ana.makeres)
9160 ("cl-ana.makeres-block" ,sbcl-cl-ana.makeres-block)
9161 ("cl-ana.makeres-branch" ,sbcl-cl-ana.makeres-branch)
9162 ("cl-ana.makeres-graphviz" ,sbcl-cl-ana.makeres-graphviz)
9163 ("cl-ana.makeres-macro" ,sbcl-cl-ana.makeres-macro)
9164 ("cl-ana.makeres-progress" ,sbcl-cl-ana.makeres-progress)
9165 ("cl-ana.makeres-table" ,sbcl-cl-ana.makeres-table)
9166 ("cl-ana.makeres-utils" ,sbcl-cl-ana.makeres-utils)
9167 ("cl-ana.math-functions" ,sbcl-cl-ana.math-functions)
9168 ("cl-ana.ntuple-table" ,sbcl-cl-ana.ntuple-table)
9169 ("cl-ana.package-utils" ,sbcl-cl-ana.package-utils)
9170 ("cl-ana.pathname-utils" ,sbcl-cl-ana.pathname-utils)
9171 ("cl-ana.plotting" ,sbcl-cl-ana.plotting)
9172 ("cl-ana.quantity" ,sbcl-cl-ana.quantity)
9173 ("cl-ana.reusable-table" ,sbcl-cl-ana.reusable-table)
9174 ("cl-ana.serialization" ,sbcl-cl-ana.serialization)
9175 ("cl-ana.statistics" ,sbcl-cl-ana.statistics)
9176 ("cl-ana.statistical-learning" ,sbcl-cl-ana.statistical-learning)
9177 ("cl-ana.table" ,sbcl-cl-ana.table)
9178 ("cl-ana.table-utils" ,sbcl-cl-ana.table-utils)
9179 ("cl-ana.table-viewing" ,sbcl-cl-ana.table-viewing)
9180 ("cl-ana.tensor" ,sbcl-cl-ana.tensor)
9181 ("libffi" ,libffi)))
9182 (native-inputs
9183 `(("cl-fad" ,sbcl-cl-fad)))
9184 (arguments
9185 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9186 ((#:asd-file _ "") "cl-ana.asd")
9187 ((#:asd-system-name _ #f) "cl-ana")))))
9188
9189 (define-public cl-ana
9190 (sbcl-package->cl-source-package sbcl-cl-ana))
9191
9192 (define-public sbcl-archive
9193 (let ((commit "631271c091ed02994bec3980cb288a2cf32c7cdc")
9194 (revision "1"))
9195 (package
9196 (name "sbcl-archive")
9197 (version (git-version "0.9" revision commit))
9198 (source (origin
9199 (method git-fetch)
9200 (uri (git-reference
9201 (url "https://github.com/sharplispers/archive.git")
9202 (commit commit)))
9203 (file-name (git-file-name name version))
9204 (sha256
9205 (base32
9206 "0pvsc9fmybx7rxd0kmzq4shi6hszdpwdc1sfy7jwyfxf8n3hnv4p"))))
9207 (build-system asdf-build-system/sbcl)
9208 (inputs
9209 `(("cl-fad" ,sbcl-cl-fad)
9210 ("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
9211 (synopsis "Common Lisp library for tar and cpio archives")
9212 (description
9213 "This is a Common Lisp library to read and write disk-based file
9214 archives such as those generated by the tar and cpio programs on Unix.")
9215 (home-page "https://github.com/sharplispers/archive")
9216 (license license:bsd-3))))
9217
9218 (define-public cl-archive
9219 (sbcl-package->cl-source-package sbcl-archive))
9220
9221 (define-public ecl-archive
9222 (sbcl-package->ecl-package sbcl-archive))
9223
9224 (define-public sbcl-misc-extensions
9225 (let ((commit "101c05112bf2f1e1bbf527396822d2f50ca6327a")
9226 (revision "1"))
9227 (package
9228 (name "sbcl-misc-extensions")
9229 (version (git-version "3.3" revision commit))
9230 (source
9231 (origin
9232 (method git-fetch)
9233 (uri (git-reference
9234 (url "https://gitlab.common-lisp.net/misc-extensions/devel.git")
9235 (commit commit)))
9236 (file-name (git-file-name name version))
9237 (sha256
9238 (base32
9239 "0gz5f4p70qzilnxsnf5lih2n9m4wjcw8hlw4w8mpn9jyhyppyyv0"))))
9240 (build-system asdf-build-system/sbcl)
9241 (synopsis "Collection of small macros and extensions for Common Lisp")
9242 (description
9243 "This project is intended as a catchall for small, general-purpose
9244 extensions to Common Lisp. It contains:
9245
9246 @itemize
9247 @item @code{new-let}, a macro that combines and generalizes @code{let},
9248 @code{let*} and @code{multiple-value-bind},
9249 @item @code{gmap}, an iteration macro that generalizes @code{map}.
9250 @end itemize\n")
9251 (home-page "https://common-lisp.net/project/misc-extensions/")
9252 (license license:public-domain))))
9253
9254 (define-public cl-misc-extensions
9255 (sbcl-package->cl-source-package sbcl-misc-extensions))
9256
9257 (define-public ecl-misc-extensions
9258 (sbcl-package->ecl-package sbcl-misc-extensions))
9259
9260 (define-public sbcl-mt19937
9261 (package
9262 (name "sbcl-mt19937")
9263 (version "1.1")
9264 (source
9265 (origin
9266 (method url-fetch)
9267 (uri (string-append "https://common-lisp.net/project/asdf-packaging/"
9268 "mt19937-latest.tar.gz"))
9269 (sha256
9270 (base32
9271 "1iw636b0iw5ygkv02y8i41lh7xj0acglv0hg5agryn0zzi2nf1xv"))))
9272 (build-system asdf-build-system/sbcl)
9273 (synopsis "Mersenne Twister pseudo-random number generator")
9274 (description
9275 "MT19937 is a portable Mersenne Twister pseudo-random number generator
9276 for Common Lisp.")
9277 (home-page "https://www.cliki.net/mt19937")
9278 (license license:public-domain)))
9279
9280 (define-public cl-mt19937
9281 (sbcl-package->cl-source-package sbcl-mt19937))
9282
9283 (define-public ecl-mt19937
9284 (sbcl-package->ecl-package sbcl-mt19937))
9285
9286 (define-public sbcl-fset
9287 (let ((commit "6d2f9ded8934d2b42f2571a0ba5bda091037d852")
9288 (revision "1"))
9289 (package
9290 (name "sbcl-fset")
9291 (version (git-version "1.3.2" revision commit))
9292 (source
9293 (origin
9294 (method git-fetch)
9295 (uri (git-reference
9296 (url "https://github.com/slburson/fset")
9297 (commit commit)))
9298 (file-name (git-file-name name version))
9299 (sha256
9300 (base32
9301 "127acblwrbqicx47h6sgvknz1cqyfn8p4xkhkn1m7hxh8w5gk1zy"))
9302 (snippet '(begin
9303 ;; Remove obsolete copy of system definition.
9304 (delete-file "Code/fset.asd")
9305 #t))))
9306 (build-system asdf-build-system/sbcl)
9307 (inputs
9308 `(("misc-extensions" ,sbcl-misc-extensions)
9309 ("mt19937" ,sbcl-mt19937)
9310 ("named-readtables" ,sbcl-named-readtables)))
9311 (synopsis "Functional set-theoretic collections library")
9312 (description
9313 "FSet is a functional set-theoretic collections library for Common Lisp.
9314 Functional means that all update operations return a new collection rather than
9315 modifying an existing one in place. Set-theoretic means that collections may
9316 be nested arbitrarily with no additional programmer effort; for instance, sets
9317 may contain sets, maps may be keyed by sets, etc.")
9318 (home-page "https://common-lisp.net/project/fset/Site/index.html")
9319 (license license:llgpl))))
9320
9321 (define-public cl-fset
9322 (sbcl-package->cl-source-package sbcl-fset))
9323
9324 (define-public sbcl-cl-cont
9325 (let ((commit "fc1fa7e6eb64894fdca13e688e6015fad5290d2a")
9326 (revision "1"))
9327 (package
9328 (name "sbcl-cl-cont")
9329 (version (git-version "0.3.8" revision commit))
9330 (source
9331 (origin
9332 (method git-fetch)
9333 (uri (git-reference
9334 (url "https://gitlab.common-lisp.net/cl-cont/cl-cont.git")
9335 (commit commit)))
9336 (file-name (git-file-name name version))
9337 (sha256
9338 (base32
9339 "1zf8zvb0i6jm3hhfks4w74hibm6avgc6f9s1qwgjrn2bcik8lrvz"))))
9340 (build-system asdf-build-system/sbcl)
9341 (inputs
9342 `(("alexandria" ,sbcl-alexandria)
9343 ("closer-mop" ,sbcl-closer-mop)))
9344 (native-inputs
9345 `(("rt" ,sbcl-rt)))
9346 (synopsis "Delimited continuations for Common Lisp")
9347 (description
9348 "This is a library that implements delimited continuations by
9349 transforming Common Lisp code to continuation passing style.")
9350 (home-page "https://common-lisp.net/project/cl-cont/")
9351 (license license:llgpl))))
9352
9353 (define-public cl-cont
9354 (sbcl-package->cl-source-package sbcl-cl-cont))
9355
9356 (define-public ecl-cl-cont
9357 (sbcl-package->ecl-package sbcl-cl-cont))
9358
9359 (define-public sbcl-cl-coroutine
9360 (let ((commit "de098f8d5debd8b14ef6864b5bdcbbf5ddbcfd72")
9361 (revision "1"))
9362 (package
9363 (name "sbcl-cl-coroutine")
9364 (version (git-version "0.1" revision commit))
9365 (source
9366 (origin
9367 (method git-fetch)
9368 (uri (git-reference
9369 (url "https://github.com/takagi/cl-coroutine.git")
9370 (commit commit)))
9371 (file-name (git-file-name name version))
9372 (sha256
9373 (base32
9374 "1cqdhdjxffgfs116l1swjlsmcbly0xgcgrckvaajd566idj9yj4l"))))
9375 (build-system asdf-build-system/sbcl)
9376 (inputs
9377 `(("alexandria" ,sbcl-alexandria)
9378 ("cl-cont" ,sbcl-cl-cont)))
9379 (native-inputs
9380 `(("prove" ,sbcl-prove)))
9381 (arguments
9382 `(;; TODO: Fix the tests. They fail with:
9383 ;; "Component CL-COROUTINE-ASD::CL-COROUTINE-TEST not found"
9384 #:tests? #f
9385 #:phases
9386 (modify-phases %standard-phases
9387 (add-after 'unpack 'fix-tests
9388 (lambda _
9389 (substitute* "cl-coroutine-test.asd"
9390 (("cl-test-more")
9391 "prove"))
9392 #t)))))
9393 (synopsis "Coroutine library for Common Lisp")
9394 (description
9395 "This is a coroutine library for Common Lisp implemented using the
9396 continuations of the @code{cl-cont} library.")
9397 (home-page "https://github.com/takagi/cl-coroutine")
9398 (license license:llgpl))))
9399
9400 (define-public cl-coroutine
9401 (sbcl-package->cl-source-package sbcl-cl-coroutine))
9402
9403 (define-public ecl-cl-coroutine
9404 (sbcl-package->ecl-package sbcl-cl-coroutine))
9405
9406 (define-public sbcl-vom
9407 (let ((commit "1aeafeb5b74c53741b79497e0ef4acf85c92ff24")
9408 (revision "1"))
9409 (package
9410 (name "sbcl-vom")
9411 (version (git-version "0.1.4" revision commit))
9412 (source
9413 (origin
9414 (method git-fetch)
9415 (uri (git-reference
9416 (url "https://github.com/orthecreedence/vom.git")
9417 (commit commit)))
9418 (file-name (git-file-name name version))
9419 (sha256
9420 (base32
9421 "0536kppj76ax4lrxhv42npkfjsmx45km2g439vf9jmw3apinz9cy"))))
9422 (build-system asdf-build-system/sbcl)
9423 (synopsis "Tiny logging utility for Common Lisp")
9424 (description
9425 "Vom is a logging library for Common Lisp. It's goal is to be useful
9426 and small. It does not provide a lot of features as other loggers do, but
9427 has a small codebase that's easy to understand and use.")
9428 (home-page "https://github.com/orthecreedence/vom")
9429 (license license:expat))))
9430
9431 (define-public cl-vom
9432 (sbcl-package->cl-source-package sbcl-vom))
9433
9434 (define-public ecl-vom
9435 (sbcl-package->ecl-package sbcl-vom))
9436
9437 (define-public sbcl-cl-libuv
9438 (let ((commit "32100c023c518038d0670a103eaa4d50dd785d29")
9439 (revision "1"))
9440 (package
9441 (name "sbcl-cl-libuv")
9442 (version (git-version "0.1.6" revision commit))
9443 (source
9444 (origin
9445 (method git-fetch)
9446 (uri (git-reference
9447 (url "https://github.com/orthecreedence/cl-libuv.git")
9448 (commit commit)))
9449 (file-name (git-file-name name version))
9450 (sha256
9451 (base32
9452 "1kwix4si8a8hza34ab2k7whrh7z0yrmx39v2wc3qblv9m244jkh1"))))
9453 (build-system asdf-build-system/sbcl)
9454 (inputs
9455 `(("alexandria" ,sbcl-alexandria)
9456 ("cffi" ,sbcl-cffi)
9457 ("cffi-grovel" ,sbcl-cffi-grovel)
9458 ("libuv" ,libuv)))
9459 (arguments
9460 `(#:phases
9461 (modify-phases %standard-phases
9462 (add-after 'unpack 'fix-paths
9463 (lambda* (#:key inputs #:allow-other-keys)
9464 (substitute* "lib.lisp"
9465 (("/usr/lib/libuv.so")
9466 (string-append (assoc-ref inputs "libuv")
9467 "/lib/libuv.so")))
9468 #t))
9469 (add-after 'fix-paths 'fix-system-definition
9470 (lambda _
9471 (substitute* "cl-libuv.asd"
9472 (("#:cffi #:alexandria")
9473 "#:cffi #:cffi-grovel #:alexandria"))
9474 #t)))))
9475 (synopsis "Common Lisp bindings to libuv")
9476 (description
9477 "This library provides low-level libuv bindings for Common Lisp.")
9478 (home-page "https://github.com/orthecreedence/cl-libuv")
9479 (license license:expat))))
9480
9481 (define-public cl-libuv
9482 (sbcl-package->cl-source-package sbcl-cl-libuv))
9483
9484 (define-public ecl-cl-libuv
9485 (sbcl-package->ecl-package sbcl-cl-libuv))
9486
9487 (define-public sbcl-cl-async-base
9488 (let ((commit "f6423e44404a44434d803605e0d2e17199158e28")
9489 (revision "1"))
9490 (package
9491 (name "sbcl-cl-async-base")
9492 (version (git-version "0.6.1" revision commit))
9493 (source
9494 (origin
9495 (method git-fetch)
9496 (uri (git-reference
9497 (url "https://github.com/orthecreedence/cl-async.git")
9498 (commit commit)))
9499 (file-name (git-file-name name version))
9500 (sha256
9501 (base32
9502 "11xi9dxb8mjgwzrkj88i0xkgk26z9w9ddxzbv6xsvfc1d4x5cf4x"))))
9503 (build-system asdf-build-system/sbcl)
9504 (inputs
9505 `(("bordeaux-threads" ,sbcl-bordeaux-threads)
9506 ("cffi" ,sbcl-cffi)
9507 ("cl-libuv" ,sbcl-cl-libuv)))
9508 (arguments
9509 `(#:asd-file "cl-async.asd"))
9510 (synopsis "Base system for cl-async")
9511 (description
9512 "Cl-async is a library for general purpose, non-blocking programming in
9513 Common Lisp. It uses the libuv library as backend.")
9514 (home-page "https://orthecreedence.github.io/cl-async/")
9515 (license license:expat))))
9516
9517 (define-public cl-async-base
9518 (sbcl-package->cl-source-package sbcl-cl-async-base))
9519
9520 (define-public ecl-cl-async-base
9521 (sbcl-package->ecl-package sbcl-cl-async-base))
9522
9523 (define-public sbcl-cl-async-util
9524 (package
9525 (inherit sbcl-cl-async-base)
9526 (name "sbcl-cl-async-util")
9527 (inputs
9528 `(("bordeaux-threads" ,sbcl-bordeaux-threads)
9529 ("cffi" ,sbcl-cffi)
9530 ("cl-async-base" ,sbcl-cl-async-base)
9531 ("cl-libuv" ,sbcl-cl-libuv)
9532 ("cl-ppcre" ,sbcl-cl-ppcre)
9533 ("fast-io" ,sbcl-fast-io)
9534 ("vom" ,sbcl-vom)))
9535 (synopsis "Internal utilities for cl-async")))
9536
9537 (define-public cl-async-util
9538 (sbcl-package->cl-source-package sbcl-cl-async-util))
9539
9540 (define-public ecl-cl-async-util
9541 (sbcl-package->ecl-package sbcl-cl-async-util))
9542
9543 (define-public sbcl-cl-async
9544 (package
9545 (inherit sbcl-cl-async-base)
9546 (name "sbcl-cl-async")
9547 (inputs
9548 `(("babel" ,sbcl-babel)
9549 ("cffi" ,sbcl-cffi)
9550 ("cl-async-base" ,sbcl-cl-async-base)
9551 ("cl-async-util" ,sbcl-cl-async-util)
9552 ("cl-libuv" ,sbcl-cl-libuv)
9553 ("cl-ppcre" ,sbcl-cl-ppcre)
9554 ("static-vectors" ,sbcl-static-vectors)
9555 ("trivial-features" ,sbcl-trivial-features)
9556 ("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
9557 (synopsis "Asynchronous operations for Common Lisp")))
9558
9559 (define-public cl-async
9560 (sbcl-package->cl-source-package sbcl-cl-async))
9561
9562 (define-public ecl-cl-async
9563 (sbcl-package->ecl-package sbcl-cl-async))
9564
9565 (define-public sbcl-cl-async-repl
9566 (package
9567 (inherit sbcl-cl-async-base)
9568 (name "sbcl-cl-async-repl")
9569 (inputs
9570 `(("bordeaux-threads" ,sbcl-bordeaux-threads)
9571 ("cl-async" ,sbcl-cl-async)))
9572 (arguments
9573 (substitute-keyword-arguments (package-arguments sbcl-cl-async-base)
9574 ((#:asd-file _ "") "cl-async-repl.asd")))
9575 (synopsis "REPL integration for cl-async")))
9576
9577 (define-public cl-async-repl
9578 (sbcl-package->cl-source-package sbcl-cl-async-repl))
9579
9580 (define-public ecl-cl-async-repl
9581 (sbcl-package->ecl-package sbcl-cl-async-repl))
9582
9583 (define-public sbcl-cl-async-ssl
9584 (package
9585 (inherit sbcl-cl-async-base)
9586 (name "sbcl-cl-async-ssl")
9587 (inputs
9588 `(("cffi" ,sbcl-cffi)
9589 ("cl-async" ,sbcl-cl-async)
9590 ("openssl" ,openssl)
9591 ("vom" ,sbcl-vom)))
9592 (arguments
9593 (substitute-keyword-arguments (package-arguments sbcl-cl-async-base)
9594 ((#:asd-file _ "") "cl-async-ssl.asd")
9595 ((#:phases phases '%standard-phases)
9596 `(modify-phases ,phases
9597 (add-after 'unpack 'fix-paths
9598 (lambda* (#:key inputs #:allow-other-keys)
9599 (substitute* "src/ssl/package.lisp"
9600 (("libcrypto\\.so")
9601 (string-append (assoc-ref inputs "openssl")
9602 "/lib/libcrypto.so"))
9603 (("libssl\\.so")
9604 (string-append (assoc-ref inputs "openssl")
9605 "/lib/libssl.so")))
9606 #t))))))
9607 (synopsis "SSL wrapper around cl-async socket implementation")))
9608
9609 (define-public cl-async-ssl
9610 (sbcl-package->cl-source-package sbcl-cl-async-ssl))
9611
9612 (define-public ecl-cl-async-ssl
9613 (sbcl-package->ecl-package sbcl-cl-async-ssl))
9614
9615 (define-public sbcl-blackbird
9616 (let ((commit "d361f81c1411dec07f6c2dcb11c78f7aea9aaca8")
9617 (revision "1"))
9618 (package
9619 (name "sbcl-blackbird")
9620 (version (git-version "0.5.2" revision commit))
9621 (source
9622 (origin
9623 (method git-fetch)
9624 (uri (git-reference
9625 (url "https://github.com/orthecreedence/blackbird.git")
9626 (commit commit)))
9627 (file-name (git-file-name name version))
9628 (sha256
9629 (base32
9630 "0xfds5yaya64arzr7w1x38karyz11swzbhxx1afldpradj9dh19c"))))
9631 (build-system asdf-build-system/sbcl)
9632 (inputs
9633 `(("vom" ,sbcl-vom)))
9634 (native-inputs
9635 `(("cl-async" ,sbcl-cl-async)
9636 ("fiveam" ,sbcl-fiveam)))
9637 (synopsis "Promise implementation for Common Lisp")
9638 (description
9639 "This is a standalone promise implementation for Common Lisp. It is
9640 the successor to the now-deprecated cl-async-future project.")
9641 (home-page "http://orthecreedence.github.io/blackbird/")
9642 (license license:expat))))
9643
9644 (define-public cl-blackbird
9645 (sbcl-package->cl-source-package sbcl-blackbird))
9646
9647 (define-public ecl-blackbird
9648 (sbcl-package->ecl-package sbcl-blackbird))
9649
9650 (define-public sbcl-cl-async-future
9651 (let ((commit "ee36c22a69a9516407458d2ed8b475f1fc473959")
9652 (revision "1"))
9653 (package
9654 (name "sbcl-cl-async-future")
9655 (version (git-version "0.4.4.1" revision commit))
9656 (source
9657 (origin
9658 (method git-fetch)
9659 (uri (git-reference
9660 (url "https://github.com/orthecreedence/cl-async-future.git")
9661 (commit commit)))
9662 (file-name (git-file-name name version))
9663 (sha256
9664 (base32
9665 "0z0sc7qlzzxk99f4l26zp6rai9kv0kj0f599sxai5s44p17zbbvh"))))
9666 (build-system asdf-build-system/sbcl)
9667 (inputs
9668 `(("blackbird" ,sbcl-blackbird)))
9669 (native-inputs
9670 `(("cl-async" ,sbcl-cl-async)
9671 ("eos" ,sbcl-eos)))
9672 (synopsis "Futures implementation for Common Lisp")
9673 (description
9674 "This is futures implementation for Common Lisp. It plugs in nicely
9675 to cl-async.")
9676 (home-page "http://orthecreedence.github.io/cl-async/future")
9677 (license license:expat))))
9678
9679 (define-public cl-async-future
9680 (sbcl-package->cl-source-package sbcl-cl-async-future))
9681
9682 (define-public ecl-cl-async-future
9683 (sbcl-package->ecl-package sbcl-cl-async-future))
9684
9685 (define-public sbcl-green-threads
9686 (let ((commit "fff5ebecb441a37e5c511773716aafd84a3c5840")
9687 (revision "1"))
9688 (package
9689 (name "sbcl-green-threads")
9690 (version (git-version "0.3" revision commit))
9691 (source
9692 (origin
9693 (method git-fetch)
9694 (uri (git-reference
9695 (url "https://github.com/thezerobit/green-threads.git")
9696 (commit commit)))
9697 (file-name (git-file-name name version))
9698 (sha256
9699 (base32
9700 "1czw7nr0dwfps76h8hjvglk1wdh53yqbfbvv30whwbgqx33iippz"))))
9701 (build-system asdf-build-system/sbcl)
9702 (inputs
9703 `(("cl-async-future" ,sbcl-cl-async-future)
9704 ("cl-cont" ,sbcl-cl-cont)))
9705 (native-inputs
9706 `(("prove" ,sbcl-prove)))
9707 (arguments
9708 `(;; TODO: Fix the tests. They fail with:
9709 ;; "The function BLACKBIRD::PROMISE-VALUES is undefined"
9710 #:tests? #f
9711 #:phases
9712 (modify-phases %standard-phases
9713 (add-after 'unpack 'fix-tests
9714 (lambda _
9715 (substitute* "green-threads-test.asd"
9716 (("cl-test-more")
9717 "prove"))
9718 #t)))))
9719 (synopsis "Cooperative multitasking library for Common Lisp")
9720 (description
9721 "This library allows for cooperative multitasking with help of cl-cont
9722 for continuations. It tries to mimic the API of bordeaux-threads as much as
9723 possible.")
9724 (home-page "https://github.com/thezerobit/green-threads")
9725 (license license:bsd-3))))
9726
9727 (define-public cl-green-threads
9728 (sbcl-package->cl-source-package sbcl-green-threads))
9729
9730 (define-public ecl-green-threads
9731 (sbcl-package->ecl-package sbcl-green-threads))
9732
9733 (define-public sbcl-cl-base32
9734 (let ((commit "8cdee06fab397f7b0a19583b57e7f0c98405be85")
9735 (revision "1"))
9736 (package
9737 (name "sbcl-cl-base32")
9738 (version (git-version "0.1" revision commit))
9739 (source
9740 (origin
9741 (method git-fetch)
9742 (uri (git-reference
9743 (url "https://github.com/hargettp/cl-base32.git")
9744 (commit commit)))
9745 (file-name (git-file-name name version))
9746 (sha256
9747 (base32 "17jrng8jb05d64ggyd11hp308c2fl5drvf9g175blgrkkl8l4mf8"))))
9748 (build-system asdf-build-system/sbcl)
9749 (native-inputs
9750 `(("lisp-unit" ,sbcl-lisp-unit)))
9751 (synopsis "Common Lisp library for base32 encoding and decoding")
9752 (description
9753 "This package provides functions for base32 encoding and decoding as
9754 defined in RFC4648.")
9755 (home-page "https://github.com/hargettp/cl-base32")
9756 (license license:expat))))
9757
9758 (define-public cl-base32
9759 (sbcl-package->cl-source-package sbcl-cl-base32))
9760
9761 (define-public ecl-cl-base32
9762 (sbcl-package->ecl-package sbcl-cl-base32))
9763
9764 (define-public sbcl-cl-z85
9765 (let ((commit "85b3951a9cfa2603acb6aee15567684f9a108098")
9766 (revision "1"))
9767 (package
9768 (name "sbcl-cl-z85")
9769 (version (git-version "1.0" revision commit))
9770 (source
9771 (origin
9772 (method git-fetch)
9773 (uri (git-reference
9774 (url "https://github.com/glv2/cl-z85.git")
9775 (commit commit)))
9776 (file-name (git-file-name name version))
9777 (sha256
9778 (base32 "0r27pidjaxbm7k1rr90nnajwl5xm2kp65g1fv0fva17lzy45z1mp"))))
9779 (build-system asdf-build-system/sbcl)
9780 (native-inputs
9781 `(("cl-octet-streams" ,sbcl-cl-octet-streams)
9782 ("fiveam" ,sbcl-fiveam)))
9783 (synopsis "Common Lisp library for Z85 encoding and decoding")
9784 (description
9785 "This package provides functions to encode or decode byte vectors or
9786 byte streams using the Z85 format, which is a base-85 encoding used by
9787 ZeroMQ.")
9788 (home-page "https://github.com/glv2/cl-z85")
9789 (license license:gpl3+))))
9790
9791 (define-public cl-z85
9792 (sbcl-package->cl-source-package sbcl-cl-z85))
9793
9794 (define-public ecl-cl-z85
9795 (sbcl-package->ecl-package sbcl-cl-z85))
9796
9797 (define-public sbcl-ltk
9798 (package
9799 (name "sbcl-ltk")
9800 (version "0.992")
9801 (source
9802 (origin
9803 (method git-fetch)
9804 (uri (git-reference
9805 (url "https://github.com/herth/ltk.git")
9806 (commit version)))
9807 (file-name (git-file-name name version))
9808 (sha256
9809 (base32 "13l2q4mskzilya9xh5wy2xvy30lwn104bd8wrq6ifds56r82iy3x"))))
9810 (build-system asdf-build-system/sbcl)
9811 (inputs
9812 `(("imagemagick" ,imagemagick)
9813 ("tk" ,tk)))
9814 (arguments
9815 `(#:asd-file "ltk/ltk.asd"
9816 #:tests? #f
9817 #:phases (modify-phases %standard-phases
9818 (add-after 'unpack 'fix-paths
9819 (lambda* (#:key inputs #:allow-other-keys)
9820 (substitute* "ltk/ltk.lisp"
9821 (("#-freebsd \"wish\"")
9822 (string-append "#-freebsd \""
9823 (assoc-ref inputs "tk")
9824 "/bin/wish\""))
9825 (("do-execute \"convert\"")
9826 (string-append "do-execute \""
9827 (assoc-ref inputs "imagemagick")
9828 "/bin/convert\"")))
9829 #t)))))
9830 (synopsis "Common Lisp bindings for the Tk GUI toolkit")
9831 (description
9832 "LTK is a Common Lisp binding for the Tk graphics toolkit. It is written
9833 in pure Common Lisp and does not require any Tk knowledge for its usage.")
9834 (home-page "http://www.peter-herth.de/ltk/")
9835 (license license:llgpl)))
9836
9837 (define-public cl-ltk
9838 (sbcl-package->cl-source-package sbcl-ltk))
9839
9840 (define-public ecl-ltk
9841 (sbcl-package->ecl-package sbcl-ltk))
9842
9843 (define-public sbcl-ltk-mw
9844 (package
9845 (inherit sbcl-ltk)
9846 (name "sbcl-ltk-mw")
9847 (inputs
9848 `(("ltk" ,sbcl-ltk)))
9849 (arguments
9850 (substitute-keyword-arguments (package-arguments sbcl-ltk)
9851 ((#:asd-file _) "ltk/ltk-mw.asd")
9852 ((#:phases _) '%standard-phases)))
9853 (synopsis "Extra widgets for LTK")
9854 (description
9855 "This is a collection of higher-level widgets built on top of LTK.")))
9856
9857 (define-public cl-ltk-mw
9858 (sbcl-package->cl-source-package sbcl-ltk-mw))
9859
9860 (define-public ecl-ltk-mw
9861 (sbcl-package->ecl-package sbcl-ltk-mw))
9862
9863 (define-public sbcl-ltk-remote
9864 (package
9865 (inherit sbcl-ltk)
9866 (name "sbcl-ltk-remote")
9867 (inputs
9868 `(("ltk" ,sbcl-ltk)))
9869 (arguments
9870 (substitute-keyword-arguments (package-arguments sbcl-ltk)
9871 ((#:asd-file _) "ltk/ltk-remote.asd")
9872 ((#:phases _) '%standard-phases)))
9873 (synopsis "Remote GUI support for LTK")
9874 (description
9875 "This LTK extension allows the GUI to be displayed on a computer different
9876 from the one running the Lisp program by using a TCP connection.")))
9877
9878 (define-public cl-ltk-remote
9879 (sbcl-package->cl-source-package sbcl-ltk-remote))
9880
9881 (define-public sbcl-cl-lex
9882 (let ((commit "f2dbbe25ef553005fb402d9a6203180c3fa1093b")
9883 (revision "1"))
9884 (package
9885 (name "sbcl-cl-lex")
9886 (version (git-version "1.1.3" revision commit))
9887 (source
9888 (origin
9889 (method git-fetch)
9890 (uri (git-reference
9891 (url "https://github.com/djr7C4/cl-lex.git")
9892 (commit commit)))
9893 (file-name (git-file-name name version))
9894 (sha256
9895 (base32 "1kg50f76bfpfxcv4dfivq1n9a0xlsra2ajb0vd68lxwgbidgyc2y"))))
9896 (build-system asdf-build-system/sbcl)
9897 (inputs
9898 `(("cl-ppcre" ,sbcl-cl-ppcre)))
9899 (synopsis "Common Lisp macros for generating lexical analyzers")
9900 (description
9901 "This is a Common Lisp library providing a set of macros for generating
9902 lexical analyzers automatically. The lexers generated using @code{cl-lex} can
9903 be used with @code{cl-yacc}.")
9904 (home-page "https://github.com/djr7C4/cl-lex")
9905 (license license:gpl3))))
9906
9907 (define-public cl-lex
9908 (sbcl-package->cl-source-package sbcl-cl-lex))
9909
9910 (define-public ecl-cl-lex
9911 (sbcl-package->ecl-package sbcl-cl-lex))
9912
9913 (define-public sbcl-clunit2
9914 (let ((commit "5e28343734eb9b7aee39306a614af92c1062d50b")
9915 (revision "1"))
9916 (package
9917 (name "sbcl-clunit2")
9918 (version (git-version "0.2.4" revision commit))
9919 (source
9920 (origin
9921 (method git-fetch)
9922 (uri (git-reference
9923 (url "https://notabug.org/cage/clunit2.git")
9924 (commit commit)))
9925 (file-name (git-file-name name version))
9926 (sha256
9927 (base32 "1ngiapfki6nm8a555mzhb5p7ch79i3w665za5bmb5j7q34fy80vw"))))
9928 (build-system asdf-build-system/sbcl)
9929 (synopsis "Unit testing framework for Common Lisp")
9930 (description
9931 "CLUnit is a Common Lisp unit testing framework. It is designed to be
9932 easy to use so that you can quickly start testing.")
9933 (home-page "https://notabug.org/cage/clunit2")
9934 (license license:expat))))
9935
9936 (define-public cl-clunit2
9937 (sbcl-package->cl-source-package sbcl-clunit2))
9938
9939 (define-public ecl-clunit2
9940 (sbcl-package->ecl-package sbcl-clunit2))
9941
9942 (define-public sbcl-cl-colors2
9943 (let ((commit "795aedee593b095fecde574bd999b520dd03ed24")
9944 (revision "1"))
9945 (package
9946 (name "sbcl-cl-colors2")
9947 (version (git-version "0.2.1" revision commit))
9948 (source
9949 (origin
9950 (method git-fetch)
9951 (uri (git-reference
9952 (url "https://notabug.org/cage/cl-colors2.git")
9953 (commit commit)))
9954 (file-name (git-file-name name version))
9955 (sha256
9956 (base32 "0hlyf4h5chkjdp9armla5w4kw5acikk159sym7y8c4jbjp9x47ih"))))
9957 (build-system asdf-build-system/sbcl)
9958 (native-inputs
9959 `(("clunit2" ,sbcl-clunit2)))
9960 (inputs
9961 `(("alexandria" ,sbcl-alexandria)
9962 ("cl-ppcre" ,sbcl-cl-ppcre)))
9963 (synopsis "Color library for Common Lisp")
9964 (description
9965 "This is a very simple color library for Common Lisp, providing:
9966
9967 @itemize
9968 @item Types for representing colors in HSV and RGB spaces.
9969 @item Simple conversion functions between the above types (and also
9970 hexadecimal representation for RGB).
9971 @item Some predefined colors (currently X11 color names -- of course
9972 the library does not depend on X11).
9973 @end itemize\n")
9974 (home-page "https://notabug.org/cage/cl-colors2")
9975 (license license:boost1.0))))
9976
9977 (define-public cl-colors2
9978 (sbcl-package->cl-source-package sbcl-cl-colors2))
9979
9980 (define-public ecl-cl-colors2
9981 (sbcl-package->ecl-package sbcl-cl-colors2))
9982
9983 (define-public sbcl-cl-jpeg
9984 (let ((commit "ec557038128df6895fbfb743bfe8faf8ec2534af")
9985 (revision "1"))
9986 (package
9987 (name "sbcl-cl-jpeg")
9988 (version (git-version "2.8" revision commit))
9989 (source
9990 (origin
9991 (method git-fetch)
9992 (uri (git-reference
9993 (url "https://github.com/sharplispers/cl-jpeg.git")
9994 (commit commit)))
9995 (file-name (git-file-name name version))
9996 (sha256
9997 (base32 "1bkkiqz8fqldlj1wbmrccjsvxcwj98h6s4b6gslr3cg2wmdv5xmy"))))
9998 (build-system asdf-build-system/sbcl)
9999 (synopsis "JPEG image library for Common Lisp")
10000 (description
10001 "This is a baseline JPEG codec written in Common Lisp. It can be used
10002 for reading and writing JPEG image files.")
10003 (home-page "https://github.com/sharplispers/cl-jpeg")
10004 (license license:bsd-3))))
10005
10006 (define-public cl-jpeg
10007 (sbcl-package->cl-source-package sbcl-cl-jpeg))
10008
10009 (define-public ecl-cl-jpeg
10010 (sbcl-package->ecl-package sbcl-cl-jpeg))
10011
10012 (define-public sbcl-nodgui
10013 (let ((commit "bc59ed9b787dfc9e68ae3bd7f7e8507c5c619212")
10014 (revision "1"))
10015 (package
10016 (name "sbcl-nodgui")
10017 (version (git-version "0.0.5" revision commit))
10018 (source
10019 (origin
10020 (method git-fetch)
10021 (uri (git-reference
10022 (url "https://notabug.org/cage/nodgui.git")
10023 (commit commit)))
10024 (file-name (git-file-name name version))
10025 (sha256
10026 (base32 "0xx0dk54d882i598ydnwmy7mnfk0b7vib3ddsgpqxhjck1rwq8l8"))))
10027 (build-system asdf-build-system/sbcl)
10028 (inputs
10029 `(("alexandria" ,sbcl-alexandria)
10030 ("bordeaux-threads" ,sbcl-bordeaux-threads)
10031 ("cl-colors2" ,sbcl-cl-colors2)
10032 ("cl-jpeg" ,sbcl-cl-jpeg)
10033 ("cl-lex" ,sbcl-cl-lex)
10034 ("cl-ppcre-unicode" ,sbcl-cl-ppcre-unicode)
10035 ("cl-unicode" ,sbcl-cl-unicode)
10036 ("cl-yacc" ,sbcl-cl-yacc)
10037 ("clunit2" ,sbcl-clunit2)
10038 ("named-readtables" ,sbcl-named-readtables)
10039 ("parse-number" ,sbcl-parse-number)
10040 ("tk" ,tk)))
10041 (arguments
10042 `(#:phases (modify-phases %standard-phases
10043 (add-after 'unpack 'fix-paths
10044 (lambda* (#:key inputs #:allow-other-keys)
10045 (substitute* "src/wish-communication.lisp"
10046 (("#-freebsd \"wish\"")
10047 (string-append "#-freebsd \""
10048 (assoc-ref inputs "tk")
10049 "/bin/wish\"")))
10050 #t)))))
10051 (synopsis "Common Lisp bindings for the Tk GUI toolkit")
10052 (description
10053 "Nodgui (@emph{No Drama GUI}) is a Common Lisp binding for the Tk GUI
10054 toolkit. It also provides a few additional widgets more than the standard Tk
10055 ones.")
10056 (home-page "https://www.autistici.org/interzona/nodgui.html")
10057 (license license:llgpl))))
10058
10059 (define-public cl-nodgui
10060 (sbcl-package->cl-source-package sbcl-nodgui))
10061
10062 (define-public ecl-nodgui
10063 (sbcl-package->ecl-package sbcl-nodgui))
10064
10065 (define-public sbcl-salza2
10066 (package
10067 (name "sbcl-salza2")
10068 (version "2.0.9")
10069 (source
10070 (origin
10071 (method git-fetch)
10072 (uri (git-reference
10073 (url "https://github.com/xach/salza2.git")
10074 (commit (string-append "release-" version))))
10075 (file-name (git-file-name name version))
10076 (sha256
10077 (base32 "0p38rj4gq7j5k807php7hrz7l2zyyfshv8i9yms7i8lkgg3433ki"))))
10078 (build-system asdf-build-system/sbcl)
10079 (synopsis "Common Lisp library for zlib, deflate and gzip compression")
10080 (description
10081 "Salza2 is a Common Lisp library for creating compressed data in the zlib,
10082 deflate, or gzip data formats, described in RFC 1950, RFC 1951, and RFC 1952,
10083 respectively.")
10084 (home-page "https://www.xach.com/lisp/salza2/")
10085 (license license:bsd-2)))
10086
10087 (define-public cl-salza2
10088 (sbcl-package->cl-source-package sbcl-salza2))
10089
10090 (define-public ecl-salza2
10091 (sbcl-package->ecl-package sbcl-salza2))
10092
10093 (define-public sbcl-png-read
10094 (let ((commit "ec29f38a689972b9f1373f13bbbcd6b05deada88")
10095 (revision "1"))
10096 (package
10097 (name "sbcl-png-read")
10098 (version (git-version "0.3.1" revision commit))
10099 (source
10100 (origin
10101 (method git-fetch)
10102 (uri (git-reference
10103 (url "https://github.com/Ramarren/png-read.git")
10104 (commit commit)))
10105 (file-name (git-file-name name version))
10106 (sha256
10107 (base32 "0vyczbcwskrygrf1hgrsnk0jil8skmvf1kiaalw5jps4fjrfdkw0"))))
10108 (build-system asdf-build-system/sbcl)
10109 (inputs
10110 `(("babel" ,sbcl-babel)
10111 ("chipz" ,sbcl-chipz)
10112 ("iterate" ,sbcl-iterate)))
10113 (synopsis "PNG decoder for Common Lisp")
10114 (description "This is a Common Lisp library for reading PNG images.")
10115 (home-page "https://github.com/Ramarren/png-read")
10116 (license license:bsd-3))))
10117
10118 (define-public cl-png-read
10119 (sbcl-package->cl-source-package sbcl-png-read))
10120
10121 (define-public ecl-png-read
10122 (sbcl-package->ecl-package sbcl-png-read))
10123
10124 (define-public sbcl-zpng
10125 (package
10126 (name "sbcl-zpng")
10127 (version "1.2.2")
10128 (source
10129 (origin
10130 (method git-fetch)
10131 (uri (git-reference
10132 (url "https://github.com/xach/zpng.git")
10133 (commit (string-append "release-" version))))
10134 (file-name (git-file-name name version))
10135 (sha256
10136 (base32 "0b3ag3jhl3z7kdls3ahdsdxsfhhw5qrizk769984f4wkxhb69rcm"))))
10137 (build-system asdf-build-system/sbcl)
10138 (inputs
10139 `(("salza2" ,sbcl-salza2)))
10140 (synopsis "PNG encoder for Common Lisp")
10141 (description "This is a Common Lisp library for creating PNG images.")
10142 (home-page "https://www.xach.com/lisp/zpng/")
10143 (license license:bsd-2)))
10144
10145 (define-public cl-zpng
10146 (sbcl-package->cl-source-package sbcl-zpng))
10147
10148 (define-public ecl-zpng
10149 (sbcl-package->ecl-package sbcl-zpng))
10150
10151 (define-public sbcl-cl-qrencode
10152 (package
10153 (name "sbcl-cl-qrencode")
10154 (version "0.1.2")
10155 (source
10156 (origin
10157 (method git-fetch)
10158 (uri (git-reference
10159 (url "https://github.com/jnjcc/cl-qrencode.git")
10160 (commit (string-append "v" version))))
10161 (file-name (git-file-name name version))
10162 (sha256
10163 (base32 "1l5k131dchbf6cj8a8xqa731790p01p3qa1kdy2wa9dawy3ymkxr"))))
10164 (build-system asdf-build-system/sbcl)
10165 (native-inputs
10166 `(("lisp-unit" ,sbcl-lisp-unit)))
10167 (inputs
10168 `(("zpng" ,sbcl-zpng)))
10169 (synopsis "QR code encoder for Common Lisp")
10170 (description
10171 "This Common Lisp library provides function to make QR codes and to save
10172 them as PNG files.")
10173 (home-page "https://github.com/jnjcc/cl-qrencode")
10174 (license license:gpl2+)))
10175
10176 (define-public cl-qrencode
10177 (sbcl-package->cl-source-package sbcl-cl-qrencode))
10178
10179 (define-public ecl-cl-qrencode
10180 (sbcl-package->ecl-package sbcl-cl-qrencode))
10181
10182 (define-public sbcl-hdf5-cffi
10183 (let ((commit "5b5c88f191e470e4fe96b462334e3ce0806eed5c")
10184 (revision "1"))
10185 (package
10186 (name "sbcl-hdf5-cffi")
10187 (version (git-version "1.8.18" revision commit))
10188 (source
10189 (origin
10190 (method git-fetch)
10191 (uri (git-reference
10192 (url "https://github.com/hdfgroup/hdf5-cffi.git")
10193 (commit commit)))
10194 (file-name (git-file-name name version))
10195 (sha256
10196 (base32
10197 "0vda3075423xz83qky998lpac5b04dwfv7bwgh9jq8cs5v0zrxjf"))))
10198 (build-system asdf-build-system/sbcl)
10199 (synopsis "Common Lisp bindings for the HDF5 library")
10200 (description
10201 "@code{hdf5-cffi} is a CFFI wrapper for the HDF5 library.")
10202 (home-page "https://github.com/hdfgroup/hdf5-cffi")
10203 (license (license:non-copyleft
10204 (string-append "https://github.com/HDFGroup/hdf5-cffi/raw/"
10205 commit
10206 "/LICENSE")))
10207 (inputs
10208 `(("cffi" ,sbcl-cffi)
10209 ("cffi-grovel" ,sbcl-cffi-grovel)
10210 ("hdf5" ,hdf5-1.10)))
10211 (native-inputs
10212 `(("fiveam" ,sbcl-fiveam)))
10213 (arguments
10214 `(#:asd-system-name "hdf5-cffi"
10215 #:asd-file "hdf5-cffi.asd"
10216 #:test-asd-file "hdf5-cffi.test.asd"
10217 ;; Tests depend on hdf5-cffi.examples.asd in addition to hdf5-cffi.asd,
10218 ;; I don't know if there is a way to tell asdf-build-system to load
10219 ;; an additional system first, so tests are disabled.
10220 #:tests? #f
10221 #:phases
10222 (modify-phases %standard-phases
10223 (add-after 'unpack 'fix-paths
10224 (lambda* (#:key inputs #:allow-other-keys)
10225 (substitute* "src/library.lisp"
10226 (("libhdf5.so")
10227 (string-append
10228 (assoc-ref inputs "hdf5")
10229 "/lib/libhdf5.so")))))
10230 (add-after 'unpack 'fix-dependencies
10231 (lambda* (#:key inputs #:allow-other-keys)
10232 (substitute* "hdf5-cffi.asd"
10233 ((":depends-on \\(:cffi\\)")
10234 ":depends-on (:cffi :cffi-grovel)"))
10235 (substitute* "hdf5-cffi.test.asd"
10236 ((":depends-on \\(:cffi :hdf5-cffi")
10237 ":depends-on (:cffi :cffi-grovel :hdf5-cffi"))))))))))
10238
10239 (define-public cl-hdf5-cffi
10240 (sbcl-package->cl-source-package sbcl-hdf5-cffi))
10241
10242 (define-public ecl-hdf5-cffi
10243 (sbcl-package->ecl-package sbcl-hdf5-cffi))
10244
10245 (define-public sbcl-cl-randist
10246 (package
10247 (name "sbcl-cl-randist")
10248 (version "0.4.2")
10249 (source
10250 (origin
10251 (method git-fetch)
10252 (uri (git-reference
10253 (url "https://github.com/lvaruzza/cl-randist.git")
10254 (commit "f088a54b540a7adefab7c04094a6103f9edda3d0")))
10255 (file-name (git-file-name name version))
10256 (sha256
10257 (base32
10258 "0l8hyd6nbxb7f50vyxz3rbbm7kgr1fnadc40jywy4xj5vi5kpj5g"))))
10259 (build-system asdf-build-system/sbcl)
10260 (synopsis "Random distributions for Common Lisp")
10261 (description
10262 "Manual translation from C to Common Lisp of some random number
10263 generation functions from the GSL library.")
10264 (home-page "https://github.com/lvaruzza/cl-randist")
10265 (license license:bsd-2)
10266 (arguments
10267 `(#:asd-system-name "cl-randist"
10268 #:asd-file "cl-randist.asd"
10269 #:tests? #f))))
10270
10271 (define-public cl-randist
10272 (sbcl-package->cl-source-package sbcl-cl-randist))
10273
10274 (define-public ecl-cl-randist
10275 (sbcl-package->ecl-package sbcl-cl-randist))