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