gnu: Add cl-nodgui.
[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 imagemagick)
55 #:use-module (gnu packages libevent)
56 #:use-module (gnu packages libffi)
57 #:use-module (gnu packages lisp)
58 #:use-module (gnu packages maths)
59 #:use-module (gnu packages pkg-config)
60 #:use-module (gnu packages python)
61 #:use-module (gnu packages python-xyz)
62 #:use-module (gnu packages sqlite)
63 #:use-module (gnu packages tcl)
64 #:use-module (gnu packages tls)
65 #:use-module (gnu packages webkit)
66 #:use-module (gnu packages xdisorg)
67 #:use-module (ice-9 match)
68 #:use-module (srfi srfi-19))
69
70 (define-public sbcl-alexandria
71 (let ((revision "1")
72 (commit "3b849bc0116ea70f215ee6b2fbf354e862aaa9dd"))
73 (package
74 (name "sbcl-alexandria")
75 (version (git-version "1.0.0" revision commit))
76 (source
77 (origin
78 (method git-fetch)
79 (uri (git-reference
80 (url "https://gitlab.common-lisp.net/alexandria/alexandria.git")
81 (commit commit)))
82 (sha256
83 (base32
84 "04amwvx2vl691f0plcfbqqwxgib9zimih7jrn5zl7mbwvrxy022b"))
85 (file-name (git-file-name name version))))
86 (build-system asdf-build-system/sbcl)
87 (native-inputs
88 `(("rt" ,sbcl-rt)))
89 (synopsis "Collection of portable utilities for Common Lisp")
90 (description
91 "Alexandria is a collection of portable utilities. It does not contain
92 conceptual extensions to Common Lisp. It is conservative in scope, and
93 portable between implementations.")
94 (home-page "https://common-lisp.net/project/alexandria/")
95 (license license:public-domain))))
96
97 (define-public cl-alexandria
98 (sbcl-package->cl-source-package sbcl-alexandria))
99
100 (define-public ecl-alexandria
101 (sbcl-package->ecl-package sbcl-alexandria))
102
103 (define-public sbcl-net.didierverna.asdf-flv
104 (package
105 (name "sbcl-net.didierverna.asdf-flv")
106 (version "2.1")
107 (source
108 (origin
109 (method git-fetch)
110 (uri (git-reference
111 (url "https://github.com/didierverna/asdf-flv")
112 (commit (string-append "version-" version))))
113 (file-name (git-file-name "asdf-flv" version))
114 (sha256
115 (base32 "1fi2y4baxan103jbg4idjddzihy03kwnj2mzbwrknw4d4x7xlgwj"))))
116 (build-system asdf-build-system/sbcl)
117 (synopsis "Common Lisp ASDF extension to provide support for file-local variables")
118 (description "ASDF-FLV provides support for file-local variables through
119 ASDF. A file-local variable behaves like @code{*PACKAGE*} and
120 @code{*READTABLE*} with respect to @code{LOAD} and @code{COMPILE-FILE}: a new
121 dynamic binding is created before processing the file, so that any
122 modification to the variable becomes essentially file-local.
123
124 In order to make one or several variables file-local, use the macros
125 @code{SET-FILE-LOCAL-VARIABLE(S)}.")
126 (home-page "https://www.lrde.epita.fr/~didier/software/lisp/misc.php#asdf-flv")
127 (license (license:non-copyleft
128 "https://www.gnu.org/prep/maintain/html_node/License-Notices-for-Other-Files.html"
129 "GNU All-Permissive License"))))
130
131 (define-public cl-net.didierverna.asdf-flv
132 (sbcl-package->cl-source-package sbcl-net.didierverna.asdf-flv))
133
134 (define-public ecl-net.didierverna.asdf-flv
135 (sbcl-package->ecl-package sbcl-net.didierverna.asdf-flv))
136
137 (define-public sbcl-fiveam
138 (package
139 (name "sbcl-fiveam")
140 (version "1.4.1")
141 (source
142 (origin
143 (method git-fetch)
144 (uri (git-reference
145 (url "https://github.com/sionescu/fiveam.git")
146 (commit (string-append "v" version))))
147 (file-name (git-file-name "fiveam" version))
148 (sha256
149 (base32 "1q3d38pwafnwnw42clq0f8g5xw7pbzr287jl9jsqmb1vb0n1vrli"))))
150 (inputs
151 `(("alexandria" ,sbcl-alexandria)
152 ("net.didierverna.asdf-flv" ,sbcl-net.didierverna.asdf-flv)
153 ("trivial-backtrace" ,sbcl-trivial-backtrace)))
154 (build-system asdf-build-system/sbcl)
155 (synopsis "Common Lisp testing framework")
156 (description "FiveAM is a simple (as far as writing and running tests
157 goes) regression testing framework. It has been designed with Common Lisp's
158 interactive development model in mind.")
159 (home-page "https://common-lisp.net/project/fiveam/")
160 (license license:bsd-3)))
161
162 (define-public cl-fiveam
163 (sbcl-package->cl-source-package sbcl-fiveam))
164
165 (define-public ecl-fiveam
166 (sbcl-package->ecl-package sbcl-fiveam))
167
168 (define-public sbcl-bordeaux-threads
169 (let ((commit "5dce49fbc829f4d136a734f5ef4f5d599660984f")
170 (revision "1"))
171 (package
172 (name "sbcl-bordeaux-threads")
173 (version (git-version "0.8.6" revision commit))
174 (source (origin
175 (method git-fetch)
176 (uri (git-reference
177 (url "https://github.com/sionescu/bordeaux-threads.git")
178 (commit commit)))
179 (sha256
180 (base32 "1gkh9rz7zw57n3110ikcf4835950wr4hgp8l79id5ai6nd86x7wv"))
181 (file-name
182 (git-file-name "bordeaux-threads" version))))
183 (inputs `(("alexandria" ,sbcl-alexandria)))
184 (native-inputs `(("fiveam" ,sbcl-fiveam)))
185 (build-system asdf-build-system/sbcl)
186 (synopsis "Portable shared-state concurrency library for Common Lisp")
187 (description "BORDEAUX-THREADS is a proposed standard for a minimal
188 MP/Threading interface. It is similar to the CLIM-SYS threading and lock
189 support.")
190 (home-page "https://common-lisp.net/project/bordeaux-threads/")
191 (license license:x11))))
192
193 (define-public cl-bordeaux-threads
194 (sbcl-package->cl-source-package sbcl-bordeaux-threads))
195
196 (define-public ecl-bordeaux-threads
197 (sbcl-package->ecl-package sbcl-bordeaux-threads))
198
199 (define-public sbcl-trivial-gray-streams
200 (let ((revision "1")
201 (commit "0483ade330508b4b2edeabdb47d16ec9437ee1cb"))
202 (package
203 (name "sbcl-trivial-gray-streams")
204 (version (string-append "0.0.0-" revision "." (string-take commit 7)))
205 (source
206 (origin
207 (method git-fetch)
208 (uri
209 (git-reference
210 (url "https://github.com/trivial-gray-streams/trivial-gray-streams.git")
211 (commit commit)))
212 (sha256
213 (base32 "0m3rpf2x0zmdk3nf1qfa01j6a55vj7gkwhyw78qslcgbjlgh8p4d"))
214 (file-name
215 (string-append "trivial-gray-streams-" version "-checkout"))))
216 (build-system asdf-build-system/sbcl)
217 (synopsis "Compatibility layer for Gray streams implementations")
218 (description "Gray streams is an interface proposed for inclusion with
219 ANSI CL by David N. Gray. The proposal did not make it into ANSI CL, but most
220 popular CL implementations implement it. This package provides an extremely
221 thin compatibility layer for gray streams.")
222 (home-page "http://www.cliki.net/trivial-gray-streams")
223 (license license:x11))))
224
225 (define-public cl-trivial-gray-streams
226 (sbcl-package->cl-source-package sbcl-trivial-gray-streams))
227
228 (define-public ecl-trivial-gray-streams
229 (sbcl-package->ecl-package sbcl-trivial-gray-streams))
230
231 (define-public sbcl-fiasco
232 (let ((commit "d62f7558b21addc89f87e306f65d7f760632655f")
233 (revision "1"))
234 (package
235 (name "sbcl-fiasco")
236 (version (git-version "0.0.1" revision commit))
237 (source
238 (origin
239 (method git-fetch)
240 (uri (git-reference
241 (url "https://github.com/joaotavora/fiasco.git")
242 (commit commit)))
243 (file-name (git-file-name "fiasco" version))
244 (sha256
245 (base32
246 "1zwxs3d6iswayavcmb49z2892xhym7n556d8dnmvalc32pm9bkjh"))))
247 (build-system asdf-build-system/sbcl)
248 (inputs
249 `(("alexandria" ,sbcl-alexandria)
250 ("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
251 (synopsis "Simple and powerful test framework for Common Lisp")
252 (description "A Common Lisp test framework that treasures your failures,
253 logical continuation of Stefil. It focuses on interactive debugging.")
254 (home-page "https://github.com/joaotavora/fiasco")
255 ;; LICENCE specifies this is public-domain unless the legislation
256 ;; doesn't allow or recognize it. In that case it falls back to a
257 ;; permissive licence.
258 (license (list license:public-domain
259 (license:x11-style "file://LICENCE"))))))
260
261 (define-public cl-fiasco
262 (sbcl-package->cl-source-package sbcl-fiasco))
263
264 (define-public ecl-fiasco
265 (sbcl-package->ecl-package sbcl-fiasco))
266
267 (define-public sbcl-flexi-streams
268 (package
269 (name "sbcl-flexi-streams")
270 (version "1.0.16")
271 (source
272 (origin
273 (method git-fetch)
274 (uri (git-reference
275 (url "https://github.com/edicl/flexi-streams.git")
276 (commit (string-append "v" version))))
277 (file-name (git-file-name "flexi-streams" version))
278 (sha256
279 (base32 "0gvykjlmja060zqq6nn6aqxlshh6r6ijahmmgf20q0d839rwpgxc"))))
280 (build-system asdf-build-system/sbcl)
281 (arguments
282 `(#:phases
283 (modify-phases %standard-phases
284 (add-after 'unpack 'make-git-checkout-writable
285 (lambda _
286 (for-each make-file-writable (find-files "."))
287 #t)))))
288 (inputs `(("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
289 (synopsis "Implementation of virtual bivalent streams for Common Lisp")
290 (description "Flexi-streams is an implementation of \"virtual\" bivalent
291 streams that can be layered atop real binary or bivalent streams and that can
292 be used to read and write character data in various single- or multi-octet
293 encodings which can be changed on the fly. It also supplies in-memory binary
294 streams which are similar to string streams.")
295 (home-page "http://weitz.de/flexi-streams/")
296 (license license:bsd-3)))
297
298 (define-public cl-flexi-streams
299 (sbcl-package->cl-source-package sbcl-flexi-streams))
300
301 (define-public ecl-flexi-streams
302 (sbcl-package->ecl-package sbcl-flexi-streams))
303
304 (define-public sbcl-cl-ppcre
305 (package
306 (name "sbcl-cl-ppcre")
307 (version "2.0.11")
308 (source
309 (origin
310 (method git-fetch)
311 (uri (git-reference
312 (url "https://github.com/edicl/cl-ppcre.git")
313 (commit (string-append "v" version))))
314 (file-name (git-file-name "cl-ppcre" version))
315 (sha256
316 (base32 "0q3iany07vgqm144lw6pj0af2d3vsikpbkwcxr30fci3kzsq4f49"))))
317 (build-system asdf-build-system/sbcl)
318 (native-inputs `(("flexi-streams" ,sbcl-flexi-streams)))
319 (synopsis "Portable regular expression library for Common Lisp")
320 (description "CL-PPCRE is a portable regular expression library for Common
321 Lisp, which is compatible with perl. It is pretty fast, thread-safe, and
322 compatible with ANSI-compliant Common Lisp implementations.")
323 (home-page "http://weitz.de/cl-ppcre/")
324 (license license:bsd-2)))
325
326 (define-public cl-ppcre
327 (sbcl-package->cl-source-package sbcl-cl-ppcre))
328
329 (define-public ecl-cl-ppcre
330 (sbcl-package->ecl-package sbcl-cl-ppcre))
331
332 (define sbcl-cl-unicode-base
333 (let ((revision "1")
334 (commit "9fcd06fba1ddc9e66aed2f2d6c32dc9b764f03ea"))
335 (package
336 (name "sbcl-cl-unicode-base")
337 (version (string-append "0.1.5-" revision "." (string-take commit 7)))
338 (source (origin
339 (method git-fetch)
340 (uri (git-reference
341 (url "https://github.com/edicl/cl-unicode.git")
342 (commit commit)))
343 (file-name (string-append "cl-unicode-" version "-checkout"))
344 (sha256
345 (base32
346 "1jicprb5b3bv57dy1kg03572gxkcaqdjhak00426s76g0plmx5ki"))))
347 (build-system asdf-build-system/sbcl)
348 (arguments
349 '(#:asd-file "cl-unicode.asd"
350 #:asd-system-name "cl-unicode/base"))
351 (inputs
352 `(("cl-ppcre" ,sbcl-cl-ppcre)))
353 (home-page "http://weitz.de/cl-unicode/")
354 (synopsis "Portable Unicode library for Common Lisp")
355 (description "CL-UNICODE is a portable Unicode library Common Lisp, which
356 is compatible with perl. It is pretty fast, thread-safe, and compatible with
357 ANSI-compliant Common Lisp implementations.")
358 (license license:bsd-2))))
359
360 (define-public sbcl-cl-unicode
361 (package
362 (inherit sbcl-cl-unicode-base)
363 (name "sbcl-cl-unicode")
364 (inputs
365 `(("cl-unicode/base" ,sbcl-cl-unicode-base)
366 ,@(package-inputs sbcl-cl-unicode-base)))
367 (native-inputs
368 `(("flexi-streams" ,sbcl-flexi-streams)))
369 (arguments '())))
370
371 (define-public ecl-cl-unicode
372 (sbcl-package->ecl-package sbcl-cl-unicode))
373
374 (define-public cl-unicode
375 (sbcl-package->cl-source-package sbcl-cl-unicode))
376
377 (define-public sbcl-zpb-ttf
378 (package
379 (name "sbcl-zpb-ttf")
380 (version "1.0.3")
381 (source
382 (origin
383 (method git-fetch)
384 (uri (git-reference
385 (url "https://github.com/xach/zpb-ttf.git")
386 (commit (string-append "release-" version))))
387 (file-name (git-file-name name version))
388 (sha256
389 (base32
390 "1wh66vjijzqlydnrihynpwp6796917xwrh0i9li93c17kyxa74ih"))))
391 (build-system asdf-build-system/sbcl)
392 (home-page "https://github.com/xach/zpb-ttf")
393 (synopsis "TrueType font file access for Common Lisp")
394 (description
395 "ZPB-TTF is a TrueType font file parser that provides an interface for
396 reading typographic metrics, glyph outlines, and other information from the
397 file.")
398 (license license:bsd-2)))
399
400 (define-public ecl-zpb-ttf
401 (sbcl-package->ecl-package sbcl-zpb-ttf))
402
403 (define-public cl-zpb-ttf
404 (sbcl-package->cl-source-package sbcl-zpb-ttf))
405
406 (define-public sbcl-cl-aa
407 (package
408 (name "sbcl-cl-aa")
409 (version "0.1.5")
410 (source
411 (origin
412 (method url-fetch)
413 (uri (string-append "http://projects.tuxee.net/cl-vectors/"
414 "files/cl-vectors-" version ".tar.gz"))
415 (sha256
416 (base32
417 "04lhwi0kq8pkwhgd885pk80m1cp9sfvjjn5zj70s1dnckibhdmqh"))))
418 (build-system asdf-build-system/sbcl)
419 (arguments '(#:asd-file "cl-aa.asd"))
420 (home-page "http://projects.tuxee.net/cl-vectors/")
421 (synopsis "Polygon rasterizer")
422 (description
423 "This is a Common Lisp library implementing the AA polygon rasterization
424 algorithm from the @url{http://antigrain.com, Antigrain} project.")
425 (license license:expat)))
426
427 (define-public ecl-cl-aa
428 (sbcl-package->ecl-package sbcl-cl-aa))
429
430 (define-public cl-aa
431 (sbcl-package->cl-source-package sbcl-cl-aa))
432
433 (define-public sbcl-cl-paths
434 (package
435 (inherit sbcl-cl-aa)
436 (name "sbcl-cl-paths")
437 (arguments '(#:asd-file "cl-paths.asd"))
438 (synopsis "Facilities to create and manipulate vectorial paths")
439 (description
440 "This package provides facilities to create and manipulate vectorial
441 paths.")))
442
443 (define-public ecl-cl-paths
444 (sbcl-package->ecl-package sbcl-cl-paths))
445
446 (define-public cl-paths
447 (sbcl-package->cl-source-package sbcl-cl-paths))
448
449 (define-public sbcl-cl-paths-ttf
450 (package
451 (inherit sbcl-cl-aa)
452 (name "sbcl-cl-paths-ttf")
453 (arguments '(#:asd-file "cl-paths-ttf.asd"))
454 (inputs
455 `(("cl-paths" ,sbcl-cl-paths)
456 ("zpb-ttf" ,sbcl-zpb-ttf)))
457 (synopsis "Facilities to create and manipulate vectorial paths")
458 (description
459 "This package provides facilities to create and manipulate vectorial
460 paths.")))
461
462 (define-public ecl-cl-paths-ttf
463 (sbcl-package->ecl-package sbcl-cl-paths-ttf))
464
465 (define-public cl-paths-ttf
466 (sbcl-package->cl-source-package sbcl-cl-paths-ttf))
467
468 (define-public sbcl-cl-vectors
469 (package
470 (inherit sbcl-cl-aa)
471 (name "sbcl-cl-vectors")
472 (arguments '(#:asd-file "cl-vectors.asd"))
473 (inputs
474 `(("cl-aa" ,sbcl-cl-aa)
475 ("cl-paths" ,sbcl-cl-paths)))
476 (synopsis "Create, transform and render anti-aliased vectorial paths")
477 (description
478 "This is a pure Common Lisp library to create, transform and render
479 anti-aliased vectorial paths.")))
480
481 (define-public ecl-cl-vectors
482 (sbcl-package->ecl-package sbcl-cl-vectors))
483
484 (define-public cl-vectors
485 (sbcl-package->cl-source-package sbcl-cl-vectors))
486
487 (define-public sbcl-spatial-trees
488 ;; There have been no releases.
489 (let ((commit "81fdad0a0bf109c80a53cc96eca2e093823400ba")
490 (revision "1"))
491 (package
492 (name "sbcl-spatial-trees")
493 (version (git-version "0" revision commit))
494 (source
495 (origin
496 (method git-fetch)
497 (uri (git-reference
498 (url "https://github.com/rpav/spatial-trees.git")
499 (commit commit)))
500 (file-name (git-file-name name version))
501 (sha256
502 (base32
503 "11rhc6h501dwcik2igkszz7b9n515cr99m5pjh4r2qfwgiri6ysa"))))
504 (build-system asdf-build-system/sbcl)
505 (arguments
506 '(#:tests? #f ; spatial-trees.test requires spatial-trees.nns
507 #:asd-file "spatial-trees.asd"
508 #:test-asd-file "spatial-trees.test.asd"))
509 (native-inputs
510 `(("fiveam" ,sbcl-fiveam)))
511 (home-page "https://github.com/rpav/spatial-trees")
512 (synopsis "Dynamic index data structures for spatially-extended data")
513 (description
514 "Spatial-trees is a set of dynamic index data structures for
515 spatially-extended data.")
516 (license license:bsd-3))))
517
518 (define-public ecl-spatial-trees
519 (sbcl-package->ecl-package sbcl-spatial-trees))
520
521 (define-public cl-spatial-trees
522 (sbcl-package->cl-source-package sbcl-spatial-trees))
523
524 (define-public sbcl-flexichain
525 ;; There are no releases.
526 (let ((commit "13d2a6c505ed0abfcd4c4ec7d7145059b06855d6")
527 (revision "1"))
528 (package
529 (name "sbcl-flexichain")
530 (version "1.5.1")
531 (source
532 (origin
533 (method git-fetch)
534 (uri (git-reference
535 (url "https://github.com/robert-strandh/Flexichain.git")
536 (commit commit)))
537 (file-name (git-file-name name version))
538 (sha256
539 (base32
540 "0pfyvhsfbjd2sjb30grfs52r51a428xglv7bwydvpg2lc117qimg"))))
541 (build-system asdf-build-system/sbcl)
542 (home-page "https://github.com/robert-strandh/Flexichain.git")
543 (synopsis "Dynamically add elements to or remove them from sequences")
544 (description
545 "This package provides an implementation of the flexichain protocol,
546 allowing client code to dynamically add elements to, and delete elements from
547 a sequence (or chain) of such elements.")
548 (license license:lgpl2.1+))))
549
550 (define-public ecl-flexichain
551 (sbcl-package->ecl-package sbcl-flexichain))
552
553 (define-public cl-flexichain
554 (sbcl-package->cl-source-package sbcl-flexichain))
555
556 (define-public sbcl-cl-pdf
557 ;; There are no releases
558 (let ((commit "752e337e6d6fc206f09d091a982e7f8e5c404e4e")
559 (revision "1"))
560 (package
561 (name "sbcl-cl-pdf")
562 (version (git-version "0" revision commit))
563 (source
564 (origin
565 (method git-fetch)
566 (uri (git-reference
567 (url "https://github.com/mbattyani/cl-pdf.git")
568 (commit commit)))
569 (file-name (git-file-name name version))
570 (sha256
571 (base32
572 "1cg3k3m3r11ipb8j008y8ipynj97l3xjlpi2knqc9ndmx4r3kb1r"))))
573 (build-system asdf-build-system/sbcl)
574 (inputs
575 `(("iterate" ,sbcl-iterate)
576 ("zpb-ttf" ,sbcl-zpb-ttf)))
577 (home-page "https://github.com/mbattyani/cl-pdf")
578 (synopsis "Common Lisp library for generating PDF files")
579 (description
580 "CL-PDF is a cross-platform Common Lisp library for generating PDF
581 files.")
582 (license license:bsd-2))))
583
584 (define-public ecl-cl-pdf
585 (sbcl-package->ecl-package sbcl-cl-pdf))
586
587 (define-public cl-pdf
588 (sbcl-package->cl-source-package sbcl-cl-pdf))
589
590 (define-public sbcl-clx
591 (package
592 (name "sbcl-clx")
593 (version "0.7.5")
594 (source
595 (origin
596 (method git-fetch)
597 (uri
598 (git-reference
599 (url "https://github.com/sharplispers/clx.git")
600 (commit version)))
601 (sha256
602 (base32
603 "1vi67z9hpj5rr4xcmfbfwzmlcc0ah7hzhrmfid6lqdkva238v2wf"))
604 (file-name (string-append "clx-" version))))
605 (build-system asdf-build-system/sbcl)
606 (native-inputs
607 `(("fiasco" ,sbcl-fiasco)))
608 (home-page "http://www.cliki.net/portable-clx")
609 (synopsis "X11 client library for Common Lisp")
610 (description "CLX is an X11 client library for Common Lisp. The code was
611 originally taken from a CMUCL distribution, was modified somewhat in order to
612 make it compile and run under SBCL, then a selection of patches were added
613 from other CLXes around the net.")
614 (license license:x11)))
615
616 (define-public cl-clx
617 (sbcl-package->cl-source-package sbcl-clx))
618
619 (define-public ecl-clx
620 (sbcl-package->ecl-package sbcl-clx))
621
622 (define-public sbcl-cl-ppcre-unicode
623 (package (inherit sbcl-cl-ppcre)
624 (name "sbcl-cl-ppcre-unicode")
625 (arguments
626 `(#:tests? #f ; tests fail with "Component :CL-PPCRE-TEST not found"
627 #:asd-file "cl-ppcre-unicode.asd"))
628 (inputs
629 `(("sbcl-cl-ppcre" ,sbcl-cl-ppcre)
630 ("sbcl-cl-unicode" ,sbcl-cl-unicode)))))
631
632 ;; The slynk that users expect to install includes all of slynk's contrib
633 ;; modules. Therefore, we build the base module and all contribs first; then
634 ;; we expose the union of these as `sbcl-slynk'. The following variable
635 ;; describes the base module.
636 (define sbcl-slynk-boot0
637 (let ((revision "2")
638 (commit "cbf84c36c4eca8b032e3fd16177a7bc02df3ec4c"))
639 (package
640 (name "sbcl-slynk-boot0")
641 (version (string-append "1.0.0-beta-" revision "." (string-take commit 7)))
642 (source
643 (origin
644 (method git-fetch)
645 (uri
646 (git-reference
647 (url "https://github.com/joaotavora/sly.git")
648 (commit commit)))
649 (sha256
650 (base32 "13dyhsravn591p7g6is01mp2ynzjnnj7pwgi57r6xqmd4611y9vh"))
651 (file-name (string-append "slynk-" version "-checkout"))
652 (modules '((guix build utils)
653 (ice-9 ftw)))
654 (snippet
655 '(begin
656 ;; Move the contribs into the main source directory for easier
657 ;; access
658 (substitute* "slynk/slynk.asd"
659 (("\\.\\./contrib")
660 "contrib")
661 (("\\(defsystem :slynk/util")
662 "(defsystem :slynk/util :depends-on (:slynk)")
663 ((":depends-on \\(:slynk :slynk/util\\)")
664 ":depends-on (:slynk :slynk-util)"))
665 (substitute* "contrib/slynk-trace-dialog.lisp"
666 (("\\(slynk::reset-inspector\\)") ; Causes problems on load
667 "nil"))
668 (substitute* "contrib/slynk-profiler.lisp"
669 (("slynk:to-line")
670 "slynk-pprint-to-line"))
671 (substitute* "contrib/slynk-fancy-inspector.lisp"
672 (("slynk/util") "slynk-util")
673 ((":compile-toplevel :load-toplevel") ""))
674 (rename-file "contrib" "slynk/contrib")
675 ;; Move slynk's contents into the base directory for easier
676 ;; access
677 (for-each (lambda (file)
678 (unless (string-prefix? "." file)
679 (rename-file (string-append "slynk/" file)
680 (string-append "./" (basename file)))))
681 (scandir "slynk"))
682 #t))))
683 (build-system asdf-build-system/sbcl)
684 (arguments
685 `(#:tests? #f ; No test suite
686 #:asd-system-name "slynk"))
687 (synopsis "Common Lisp IDE for Emacs")
688 (description "SLY is a fork of SLIME, an IDE backend for Common Lisp.
689 It also features a completely redesigned REPL based on Emacs's own
690 full-featured comint.el, live code annotations, and a consistent interactive
691 button interface. Everything can be copied to the REPL. One can create
692 multiple inspectors with independent history.")
693 (home-page "https://github.com/joaotavora/sly")
694 (license license:public-domain)
695 (properties `((cl-source-variant . ,(delay cl-slynk)))))))
696
697 (define-public cl-slynk
698 (package
699 (inherit (sbcl-package->cl-source-package sbcl-slynk-boot0))
700 (name "cl-slynk")))
701
702 (define ecl-slynk-boot0
703 (sbcl-package->ecl-package sbcl-slynk-boot0))
704
705 (define sbcl-slynk-arglists
706 (package
707 (inherit sbcl-slynk-boot0)
708 (name "sbcl-slynk-arglists")
709 (inputs `(("slynk" ,sbcl-slynk-boot0)))
710 (arguments
711 (substitute-keyword-arguments (package-arguments sbcl-slynk-boot0)
712 ((#:asd-file _ "") "slynk.asd")
713 ((#:asd-system-name _ #f) "slynk/arglists")))))
714
715 (define ecl-slynk-arglists
716 (sbcl-package->ecl-package sbcl-slynk-arglists))
717
718 (define sbcl-slynk-util
719 (package
720 (inherit sbcl-slynk-boot0)
721 (name "sbcl-slynk-util")
722 (inputs `(("slynk" ,sbcl-slynk-boot0)))
723 (arguments
724 (substitute-keyword-arguments (package-arguments sbcl-slynk-boot0)
725 ((#:asd-file _ "") "slynk.asd")
726 ((#:asd-system-name _ #f) "slynk/util")))))
727
728 (define ecl-slynk-util
729 (sbcl-package->ecl-package sbcl-slynk-util))
730
731 (define sbcl-slynk-fancy-inspector
732 (package
733 (inherit sbcl-slynk-arglists)
734 (name "sbcl-slynk-fancy-inspector")
735 (inputs `(("slynk-util" ,sbcl-slynk-util)
736 ,@(package-inputs sbcl-slynk-arglists)))
737 (arguments
738 (substitute-keyword-arguments (package-arguments sbcl-slynk-arglists)
739 ((#:asd-system-name _ #f) "slynk/fancy-inspector")))))
740
741 (define ecl-slynk-fancy-inspector
742 (sbcl-package->ecl-package sbcl-slynk-fancy-inspector))
743
744 (define sbcl-slynk-package-fu
745 (package
746 (inherit sbcl-slynk-arglists)
747 (name "sbcl-slynk-package-fu")
748 (arguments
749 (substitute-keyword-arguments (package-arguments sbcl-slynk-arglists)
750 ((#:asd-system-name _ #f) "slynk/package-fu")))))
751
752 (define ecl-slynk-package-fu
753 (sbcl-package->ecl-package sbcl-slynk-package-fu))
754
755 (define sbcl-slynk-mrepl
756 (package
757 (inherit sbcl-slynk-fancy-inspector)
758 (name "sbcl-slynk-mrepl")
759 (arguments
760 (substitute-keyword-arguments (package-arguments sbcl-slynk-arglists)
761 ((#:asd-system-name _ #f) "slynk/mrepl")))))
762
763 (define ecl-slynk-mrepl
764 (sbcl-package->ecl-package sbcl-slynk-mrepl))
765
766 (define sbcl-slynk-trace-dialog
767 (package
768 (inherit sbcl-slynk-arglists)
769 (name "sbcl-slynk-trace-dialog")
770 (arguments
771 (substitute-keyword-arguments (package-arguments sbcl-slynk-arglists)
772 ((#:asd-system-name _ #f) "slynk/trace-dialog")))))
773
774 (define ecl-slynk-trace-dialog
775 (sbcl-package->ecl-package sbcl-slynk-trace-dialog))
776
777 (define sbcl-slynk-profiler
778 (package
779 (inherit sbcl-slynk-arglists)
780 (name "sbcl-slynk-profiler")
781 (arguments
782 (substitute-keyword-arguments (package-arguments sbcl-slynk-arglists)
783 ((#:asd-system-name _ #f) "slynk/profiler")))))
784
785 (define ecl-slynk-profiler
786 (sbcl-package->ecl-package sbcl-slynk-profiler))
787
788 (define sbcl-slynk-stickers
789 (package
790 (inherit sbcl-slynk-arglists)
791 (name "sbcl-slynk-stickers")
792 (arguments
793 (substitute-keyword-arguments (package-arguments sbcl-slynk-arglists)
794 ((#:asd-system-name _ #f) "slynk/stickers")))))
795
796 (define ecl-slynk-stickers
797 (sbcl-package->ecl-package sbcl-slynk-stickers))
798
799 (define sbcl-slynk-indentation
800 (package
801 (inherit sbcl-slynk-arglists)
802 (name "sbcl-slynk-indentation")
803 (arguments
804 (substitute-keyword-arguments (package-arguments sbcl-slynk-arglists)
805 ((#:asd-system-name _ #f) "slynk/indentation")))))
806
807 (define ecl-slynk-indentation
808 (sbcl-package->ecl-package sbcl-slynk-indentation))
809
810 (define sbcl-slynk-retro
811 (package
812 (inherit sbcl-slynk-arglists)
813 (name "sbcl-slynk-retro")
814 (arguments
815 (substitute-keyword-arguments (package-arguments sbcl-slynk-arglists)
816 ((#:asd-system-name _ #f) "slynk/retro")))))
817
818 (define ecl-slynk-retro
819 (sbcl-package->ecl-package sbcl-slynk-retro))
820
821 (define slynk-systems
822 '("slynk"
823 "slynk-util"
824 "slynk-arglists"
825 "slynk-fancy-inspector"
826 "slynk-package-fu"
827 "slynk-mrepl"
828 "slynk-profiler"
829 "slynk-trace-dialog"
830 "slynk-stickers"
831 "slynk-indentation"
832 "slynk-retro"))
833
834 (define-public sbcl-slynk
835 (package
836 (inherit sbcl-slynk-boot0)
837 (name "sbcl-slynk")
838 (inputs
839 `(("slynk" ,sbcl-slynk-boot0)
840 ("slynk-util" ,sbcl-slynk-util)
841 ("slynk-arglists" ,sbcl-slynk-arglists)
842 ("slynk-fancy-inspector" ,sbcl-slynk-fancy-inspector)
843 ("slynk-package-fu" ,sbcl-slynk-package-fu)
844 ("slynk-mrepl" ,sbcl-slynk-mrepl)
845 ("slynk-profiler" ,sbcl-slynk-profiler)
846 ("slynk-trace-dialog" ,sbcl-slynk-trace-dialog)
847 ("slynk-stickers" ,sbcl-slynk-stickers)
848 ("slynk-indentation" ,sbcl-slynk-indentation)
849 ("slynk-retro" ,sbcl-slynk-retro)))
850 (native-inputs `(("sbcl" ,sbcl)))
851 (build-system trivial-build-system)
852 (source #f)
853 (outputs '("out" "image"))
854 (arguments
855 `(#:modules ((guix build union)
856 (guix build utils)
857 (guix build lisp-utils))
858 #:builder
859 (begin
860 (use-modules (ice-9 match)
861 (srfi srfi-1)
862 (guix build union)
863 (guix build lisp-utils))
864
865 (union-build
866 (assoc-ref %outputs "out")
867 (filter-map
868 (match-lambda
869 ((name . path)
870 (if (string-prefix? "slynk" name) path #f)))
871 %build-inputs))
872
873 (prepend-to-source-registry
874 (string-append (assoc-ref %outputs "out") "//"))
875
876 (parameterize ((%lisp-type "sbcl")
877 (%lisp (string-append (assoc-ref %build-inputs "sbcl")
878 "/bin/sbcl")))
879 (build-image (string-append
880 (assoc-ref %outputs "image")
881 "/bin/slynk")
882 %outputs
883 #:dependencies ',slynk-systems))
884 #t)))))
885
886 (define-public ecl-slynk
887 (package
888 (inherit sbcl-slynk)
889 (name "ecl-slynk")
890 (inputs
891 (map (match-lambda
892 ((name pkg . _)
893 (list name (sbcl-package->ecl-package pkg))))
894 (package-inputs sbcl-slynk)))
895 (native-inputs '())
896 (outputs '("out"))
897 (arguments
898 '(#:modules ((guix build union))
899 #:builder
900 (begin
901 (use-modules (ice-9 match)
902 (guix build union))
903 (match %build-inputs
904 (((names . paths) ...)
905 (union-build (assoc-ref %outputs "out")
906 paths)
907 #t)))))))
908
909 (define-public sbcl-parse-js
910 (let ((commit "fbadc6029bec7039602abfc06c73bb52970998f6")
911 (revision "1"))
912 (package
913 (name "sbcl-parse-js")
914 (version (string-append "0.0.0-" revision "." (string-take commit 9)))
915 (source
916 (origin
917 (method git-fetch)
918 (uri (git-reference
919 (url "http://marijn.haverbeke.nl/git/parse-js")
920 (commit commit)))
921 (file-name (string-append name "-" commit "-checkout"))
922 (sha256
923 (base32
924 "1wddrnr5kiya5s3gp4cdq6crbfy9fqcz7fr44p81502sj3bvdv39"))))
925 (build-system asdf-build-system/sbcl)
926 (home-page "http://marijnhaverbeke.nl/parse-js/")
927 (synopsis "Parse JavaScript")
928 (description "Parse-js is a Common Lisp package for parsing
929 JavaScript (ECMAScript 3). It has basic support for ECMAScript 5.")
930 (license license:zlib))))
931
932 (define-public cl-parse-js
933 (sbcl-package->cl-source-package sbcl-parse-js))
934
935 (define-public sbcl-parse-number
936 (package
937 (name "sbcl-parse-number")
938 (version "1.7")
939 (source
940 (origin
941 (method git-fetch)
942 (uri (git-reference
943 (url "https://github.com/sharplispers/parse-number/")
944 (commit (string-append "v" version))))
945 (file-name (git-file-name name version))
946 (sha256
947 (base32
948 "0sk06ib1bhqv9y39vwnnw44vmbc4b0kvqm37xxmkxd4dwchq82d7"))))
949 (build-system asdf-build-system/sbcl)
950 (home-page "http://www.cliki.net/PARSE-NUMBER")
951 (synopsis "Parse numbers")
952 (description "@code{parse-number} is a library of functions for parsing
953 strings into one of the standard Common Lisp number types without using the
954 reader. @code{parse-number} accepts an arbitrary string and attempts to parse
955 the string into one of the standard Common Lisp number types, if possible, or
956 else @code{parse-number} signals an error of type @code{invalid-number}.")
957 (license license:bsd-3)))
958
959 (define-public cl-parse-number
960 (sbcl-package->cl-source-package sbcl-parse-number))
961
962 (define-public sbcl-iterate
963 (package
964 (name "sbcl-iterate")
965 ;; The latest official release (1.4.3) fails to build so we have to take
966 ;; the current darcs tarball from quicklisp.
967 (version "20160825")
968 (source
969 (origin
970 (method url-fetch)
971 (uri (string-append "http://beta.quicklisp.org/archive/iterate/"
972 "2016-08-25/iterate-"
973 version "-darcs.tgz"))
974 (sha256
975 (base32
976 "0kvz16gnxnkdz0fy1x8y5yr28nfm7i2qpvix7mgwccdpjmsb4pgm"))))
977 (build-system asdf-build-system/sbcl)
978 (native-inputs
979 `(("rt" ,sbcl-rt)))
980 (home-page "https://common-lisp.net/project/iterate/")
981 (synopsis "Iteration construct for Common Lisp")
982 (description "@code{iterate} is an iteration construct for Common Lisp.
983 It is similar to the @code{CL:LOOP} macro, with these distinguishing marks:
984
985 @itemize
986 @item it is extensible,
987 @item it helps editors like Emacs indent iterate forms by having a more
988 lisp-like syntax, and
989 @item it isn't part of the ANSI standard for Common Lisp.
990 @end itemize\n")
991 (license license:expat)))
992
993 (define-public cl-iterate
994 (sbcl-package->cl-source-package sbcl-iterate))
995
996 (define-public ecl-iterate
997 (sbcl-package->ecl-package sbcl-iterate))
998
999 (define-public sbcl-cl-uglify-js
1000 ;; There have been many bug fixes since the 2010 release.
1001 (let ((commit "429c5e1d844e2f96b44db8fccc92d6e8e28afdd5")
1002 (revision "1"))
1003 (package
1004 (name "sbcl-cl-uglify-js")
1005 (version (string-append "0.1-" revision "." (string-take commit 9)))
1006 (source
1007 (origin
1008 (method git-fetch)
1009 (uri (git-reference
1010 (url "https://github.com/mishoo/cl-uglify-js.git")
1011 (commit commit)))
1012 (file-name (git-file-name name version))
1013 (sha256
1014 (base32
1015 "0k39y3c93jgxpr7gwz7w0d8yknn1fdnxrjhd03057lvk5w8js27a"))))
1016 (build-system asdf-build-system/sbcl)
1017 (inputs
1018 `(("sbcl-parse-js" ,sbcl-parse-js)
1019 ("sbcl-cl-ppcre" ,sbcl-cl-ppcre)
1020 ("sbcl-cl-ppcre-unicode" ,sbcl-cl-ppcre-unicode)
1021 ("sbcl-parse-number" ,sbcl-parse-number)
1022 ("sbcl-iterate" ,sbcl-iterate)))
1023 (home-page "https://github.com/mishoo/cl-uglify-js")
1024 (synopsis "JavaScript compressor library for Common Lisp")
1025 (description "This is a Common Lisp version of UglifyJS, a JavaScript
1026 compressor. It works on data produced by @code{parse-js} to generate a
1027 @dfn{minified} version of the code. Currently it can:
1028
1029 @itemize
1030 @item reduce variable names (usually to single letters)
1031 @item join consecutive @code{var} statements
1032 @item resolve simple binary expressions
1033 @item group most consecutive statements using the @code{sequence} operator (comma)
1034 @item remove unnecessary blocks
1035 @item convert @code{IF} expressions in various ways that result in smaller code
1036 @item remove some unreachable code
1037 @end itemize\n")
1038 (license license:zlib))))
1039
1040 (define-public cl-uglify-js
1041 (sbcl-package->cl-source-package sbcl-cl-uglify-js))
1042
1043 (define-public uglify-js
1044 (package
1045 (inherit sbcl-cl-uglify-js)
1046 (name "uglify-js")
1047 (build-system trivial-build-system)
1048 (arguments
1049 `(#:modules ((guix build utils))
1050 #:builder
1051 (let* ((bin (string-append (assoc-ref %outputs "out") "/bin/"))
1052 (script (string-append bin "uglify-js")))
1053 (use-modules (guix build utils))
1054 (mkdir-p bin)
1055 (with-output-to-file script
1056 (lambda _
1057 (format #t "#!~a/bin/sbcl --script
1058 (require :asdf)
1059 (push (truename \"~a/lib/sbcl\") asdf:*central-registry*)"
1060 (assoc-ref %build-inputs "sbcl")
1061 (assoc-ref %build-inputs "sbcl-cl-uglify-js"))
1062 ;; FIXME: cannot use progn here because otherwise it fails to
1063 ;; find cl-uglify-js.
1064 (for-each
1065 write
1066 '(;; Quiet, please!
1067 (let ((*standard-output* (make-broadcast-stream))
1068 (*error-output* (make-broadcast-stream)))
1069 (asdf:load-system :cl-uglify-js))
1070 (let ((file (cadr *posix-argv*)))
1071 (if file
1072 (format t "~a"
1073 (cl-uglify-js:ast-gen-code
1074 (cl-uglify-js:ast-mangle
1075 (cl-uglify-js:ast-squeeze
1076 (with-open-file (in file)
1077 (parse-js:parse-js in))))
1078 :beautify nil))
1079 (progn
1080 (format *error-output*
1081 "Please provide a JavaScript file.~%")
1082 (sb-ext:exit :code 1))))))))
1083 (chmod script #o755)
1084 #t)))
1085 (inputs
1086 `(("sbcl" ,sbcl)
1087 ("sbcl-cl-uglify-js" ,sbcl-cl-uglify-js)))
1088 (synopsis "JavaScript compressor")))
1089
1090 (define-public sbcl-cl-strings
1091 (let ((revision "1")
1092 (commit "c5c5cbafbf3e6181d03c354d66e41a4f063f00ae"))
1093 (package
1094 (name "sbcl-cl-strings")
1095 (version (git-version "0.0.0" revision commit))
1096 (source
1097 (origin
1098 (method git-fetch)
1099 (uri (git-reference
1100 (url "https://github.com/diogoalexandrefranco/cl-strings")
1101 (commit commit)))
1102 (sha256
1103 (base32
1104 "00754mfaqallj480lwd346nkfb6ra8pa8xcxcylf4baqn604zlmv"))
1105 (file-name (string-append "cl-strings-" version "-checkout"))))
1106 (build-system asdf-build-system/sbcl)
1107 (synopsis "Portable, dependency-free set of utilities to manipulate strings in Common Lisp")
1108 (description
1109 "@command{cl-strings} is a small, portable, dependency-free set of
1110 utilities that make it even easier to manipulate text in Common Lisp. It has
1111 100% test coverage and works at least on sbcl, ecl, ccl, abcl and clisp.")
1112 (home-page "https://github.com/diogoalexandrefranco/cl-strings")
1113 (license license:expat))))
1114
1115 (define-public cl-strings
1116 (sbcl-package->cl-source-package sbcl-cl-strings))
1117
1118 (define-public ecl-cl-strings
1119 (sbcl-package->ecl-package sbcl-cl-strings))
1120
1121 (define-public sbcl-trivial-features
1122 (package
1123 (name "sbcl-trivial-features")
1124 (version "0.8")
1125 (source
1126 (origin
1127 (method git-fetch)
1128 (uri (git-reference
1129 (url "https://github.com/trivial-features/trivial-features.git")
1130 (commit (string-append "v" version))))
1131 (file-name (git-file-name "trivial-features" version))
1132 (sha256
1133 (base32 "0ccv7dqyrk55xga78i5vzlic7mdwp28in3g1a8fqhlk6626scsq9"))))
1134 (build-system asdf-build-system/sbcl)
1135 (arguments '(#:tests? #f))
1136 (home-page "http://cliki.net/trivial-features")
1137 (synopsis "Ensures consistency of @code{*FEATURES*} in Common Lisp")
1138 (description "Trivial-features ensures that @code{*FEATURES*} is
1139 consistent across multiple Common Lisp implementations.")
1140 (license license:expat)))
1141
1142 (define-public cl-trivial-features
1143 (sbcl-package->cl-source-package sbcl-trivial-features))
1144
1145 (define-public ecl-trivial-features
1146 (sbcl-package->ecl-package sbcl-trivial-features))
1147
1148 (define-public sbcl-hu.dwim.asdf
1149 (package
1150 (name "sbcl-hu.dwim.asdf")
1151 (version "20190521")
1152 (source
1153 (origin
1154 (method url-fetch)
1155 (uri (string-append "http://beta.quicklisp.org/archive/hu.dwim.asdf/"
1156 "2019-05-21/hu.dwim.asdf-" version "-darcs.tgz"))
1157 (sha256
1158 (base32
1159 "0rsbv71vyszy8w35yjwb5h6zcmknjq223hkzir79y72qdsc6sabn"))))
1160 (build-system asdf-build-system/sbcl)
1161 (home-page "https://hub.darcs.net/hu.dwim/hu.dwim.asdf")
1162 (synopsis "Extensions to ASDF")
1163 (description "Various ASDF extensions such as attached test and
1164 documentation system, explicit development support, etc.")
1165 (license license:public-domain)))
1166
1167 (define-public cl-hu.dwim.asdf
1168 (sbcl-package->cl-source-package sbcl-hu.dwim.asdf))
1169
1170 (define-public ecl-hu.dwim.asdf
1171 (sbcl-package->ecl-package sbcl-hu.dwim.asdf))
1172
1173 (define-public sbcl-hu.dwim.stefil
1174 (let ((commit "ab6d1aa8995878a1b66d745dfd0ba021090bbcf9"))
1175 (package
1176 (name "sbcl-hu.dwim.stefil")
1177 (version (git-version "0.0.0" "1" commit))
1178 (source
1179 (origin
1180 (method git-fetch)
1181 (uri
1182 (git-reference
1183 (url "https://gitlab.common-lisp.net/xcvb/hu.dwim.stefil.git")
1184 (commit commit)))
1185 (sha256
1186 (base32 "1d8yccw65zj3zh46cbi3x6nmn1dwdb76s9d0av035077mvyirqqp"))
1187 (file-name (git-file-name "hu.dwim.stefil" version))))
1188 (build-system asdf-build-system/sbcl)
1189 (native-inputs
1190 `(("asdf:cl-hu.dwim.asdf" ,sbcl-hu.dwim.asdf)))
1191 (inputs
1192 `(("sbcl-alexandria" ,sbcl-alexandria)))
1193 (home-page "https://hub.darcs.net/hu.dwim/hu.dwim.stefil")
1194 (synopsis "Simple test framework")
1195 (description "Stefil is a simple test framework for Common Lisp,
1196 with a focus on interactive development.")
1197 (license license:public-domain))))
1198
1199 (define-public cl-hu.dwim.stefil
1200 (sbcl-package->cl-source-package sbcl-hu.dwim.stefil))
1201
1202 (define-public ecl-hu.dwim.stefil
1203 (sbcl-package->ecl-package sbcl-hu.dwim.stefil))
1204
1205 (define-public sbcl-babel
1206 (package
1207 (name "sbcl-babel")
1208 (version "0.5.0")
1209 (source
1210 (origin
1211 (method git-fetch)
1212 (uri (git-reference
1213 (url "https://github.com/cl-babel/babel.git")
1214 (commit (string-append "v" version))))
1215 (file-name (git-file-name "babel" version))
1216 (sha256
1217 (base32 "139a8rn2gnhj082n8jg01gc8fyr63hkj57hgrnmb3d1r327yc77f"))))
1218 (build-system asdf-build-system/sbcl)
1219 (native-inputs
1220 `(("tests:cl-hu.dwim.stefil" ,sbcl-hu.dwim.stefil)))
1221 (inputs
1222 `(("sbcl-alexandria" ,sbcl-alexandria)
1223 ("sbcl-trivial-features" ,sbcl-trivial-features)))
1224 (home-page "https://common-lisp.net/project/babel/")
1225 (synopsis "Charset encoding and decoding library")
1226 (description "Babel is a charset encoding and decoding library, not unlike
1227 GNU libiconv, but completely written in Common Lisp.")
1228 (license license:expat)))
1229
1230 (define-public cl-babel
1231 (sbcl-package->cl-source-package sbcl-babel))
1232
1233 (define-public ecl-babel
1234 (sbcl-package->ecl-package sbcl-babel))
1235
1236 (define-public sbcl-cl-yacc
1237 (package
1238 (name "sbcl-cl-yacc")
1239 (version "0.3")
1240 (source
1241 (origin
1242 (method git-fetch)
1243 (uri (git-reference
1244 (url "https://github.com/jech/cl-yacc")
1245 (commit (string-append "cl-yacc-" version))))
1246 (sha256
1247 (base32
1248 "16946pzf8vvadnyfayvj8rbh4zjzw90h0azz2qk1mxrvhh5wklib"))
1249 (file-name (string-append "cl-yacc-" version "-checkout"))))
1250 (build-system asdf-build-system/sbcl)
1251 (arguments
1252 `(#:asd-file "yacc.asd"
1253 #:asd-system-name "yacc"))
1254 (synopsis "LALR(1) parser generator for Common Lisp, similar in spirit to Yacc")
1255 (description
1256 "CL-Yacc is a LALR(1) parser generator for Common Lisp, similar in spirit
1257 to AT&T Yacc, Berkeley Yacc, GNU Bison, Zebu, lalr.cl or lalr.scm.
1258
1259 CL-Yacc uses the algorithm due to Aho and Ullman, which is the one also used
1260 by AT&T Yacc, Berkeley Yacc and Zebu. It does not use the faster algorithm due
1261 to DeRemer and Pennello, which is used by Bison and lalr.scm (not lalr.cl).")
1262 (home-page "https://www.irif.fr/~jch//software/cl-yacc/")
1263 (license license:expat)))
1264
1265 (define-public cl-yacc
1266 (sbcl-package->cl-source-package sbcl-cl-yacc))
1267
1268 (define-public ecl-cl-yacc
1269 (sbcl-package->ecl-package sbcl-cl-yacc))
1270
1271 (define-public sbcl-jpl-util
1272 (let ((commit "0311ed374e19a49d43318064d729fe3abd9a3b62"))
1273 (package
1274 (name "sbcl-jpl-util")
1275 (version "20151005")
1276 (source
1277 (origin
1278 (method git-fetch)
1279 (uri (git-reference
1280 ;; Quicklisp uses this fork.
1281 (url "https://github.com/hawkir/cl-jpl-util")
1282 (commit commit)))
1283 (file-name
1284 (git-file-name "jpl-util" version))
1285 (sha256
1286 (base32
1287 "0nc0rk9n8grkg3045xsw34whmcmddn2sfrxki4268g7kpgz0d2yz"))))
1288 (build-system asdf-build-system/sbcl)
1289 (synopsis "Collection of Common Lisp utility functions and macros")
1290 (description
1291 "@command{cl-jpl-util} is a collection of Common Lisp utility functions
1292 and macros, primarily for software projects written in CL by the author.")
1293 (home-page "https://www.thoughtcrime.us/software/cl-jpl-util/")
1294 (license license:isc))))
1295
1296 (define-public cl-jpl-util
1297 (sbcl-package->cl-source-package sbcl-jpl-util))
1298
1299 (define-public ecl-jpl-util
1300 (sbcl-package->ecl-package sbcl-jpl-util))
1301
1302 (define-public sbcl-jpl-queues
1303 (package
1304 (name "sbcl-jpl-queues")
1305 (version "0.1")
1306 (source
1307 (origin
1308 (method url-fetch)
1309 (uri (string-append
1310 "http://www.thoughtcrime.us/software/jpl-queues/jpl-queues-"
1311 version
1312 ".tar.gz"))
1313 (sha256
1314 (base32
1315 "1wvvv7j117h9a42qaj1g4fh4mji28xqs7s60rn6d11gk9jl76h96"))))
1316 (build-system asdf-build-system/sbcl)
1317 (inputs
1318 `(("jpl-util" ,sbcl-jpl-util)
1319 ("bordeaux-threads" ,sbcl-bordeaux-threads)))
1320 (arguments
1321 ;; Tests seem to be broken.
1322 `(#:tests? #f))
1323 (synopsis "Common Lisp library implementing a few different kinds of queues")
1324 (description
1325 "A Common Lisp library implementing a few different kinds of queues:
1326
1327 @itemize
1328 @item Bounded and unbounded FIFO queues.
1329 @item Lossy bounded FIFO queues that drop elements when full.
1330 @item Unbounded random-order queues that use less memory than unbounded FIFO queues.
1331 @end itemize
1332
1333 Additionally, a synchronization wrapper is provided to make any queue
1334 conforming to the @command{jpl-queues} API thread-safe for lightweight
1335 multithreading applications. (See Calispel for a more sophisticated CL
1336 multithreaded message-passing library with timeouts and alternation among
1337 several blockable channels.)")
1338 (home-page "https://www.thoughtcrime.us/software/jpl-queues/")
1339 (license license:isc)))
1340
1341 (define-public cl-jpl-queues
1342 (sbcl-package->cl-source-package sbcl-jpl-queues))
1343
1344 (define-public ecl-jpl-queues
1345 (sbcl-package->ecl-package sbcl-jpl-queues))
1346
1347 (define-public sbcl-eos
1348 (let ((commit "b0faca83781ead9a588661e37bd47f90362ccd94"))
1349 (package
1350 (name "sbcl-eos")
1351 (version (git-version "0.0.0" "1" commit))
1352 (source
1353 (origin
1354 (method git-fetch)
1355 (uri (git-reference
1356 (url "https://github.com/adlai/Eos")
1357 (commit commit)))
1358 (sha256
1359 (base32
1360 "1bq8cfg087iyxmxi1mwgx5cfgy3b8ydrf81xljcis8qbgb2vszph"))
1361 (file-name (git-file-name "eos" version))))
1362 (build-system asdf-build-system/sbcl)
1363 (synopsis "Unit Testing for Common Lisp")
1364 (description
1365 "Eos was a unit testing library for Common Lisp.
1366 It began as a fork of FiveAM; however, FiveAM development has continued, while
1367 that of Eos has not. Thus, Eos is now deprecated in favor of FiveAM.")
1368 (home-page "https://github.com/adlai/Eos")
1369 (license license:expat))))
1370
1371 (define-public cl-eos
1372 (sbcl-package->cl-source-package sbcl-eos))
1373
1374 (define-public ecl-eos
1375 (sbcl-package->ecl-package sbcl-eos))
1376
1377 (define-public sbcl-esrap
1378 (let ((commit "133be8b05c2aae48696fe5b739eea2fa573fa48d"))
1379 (package
1380 (name "sbcl-esrap")
1381 (version (git-version "0.0.0" "1" commit))
1382 (source
1383 (origin
1384 (method git-fetch)
1385 (uri (git-reference
1386 (url "https://github.com/nikodemus/esrap")
1387 (commit commit)))
1388 (sha256
1389 (base32
1390 "02d5clihsdryhf7pix8c5di2571fdsffh75d40fkzhws90r5mksl"))
1391 (file-name (git-file-name "esrap" version))))
1392 (build-system asdf-build-system/sbcl)
1393 (native-inputs
1394 `(("eos" ,sbcl-eos))) ;For testing only.
1395 (inputs
1396 `(("alexandria" ,sbcl-alexandria)))
1397 (synopsis "Common Lisp packrat parser")
1398 (description
1399 "A packrat parser for Common Lisp.
1400 In addition to regular Packrat / Parsing Grammar / TDPL features ESRAP supports:
1401
1402 @itemize
1403 @item dynamic redefinition of nonterminals
1404 @item inline grammars
1405 @item semantic predicates
1406 @item introspective facilities (describing grammars, tracing, setting breaks)
1407 @end itemize\n")
1408 (home-page "https://nikodemus.github.io/esrap/")
1409 (license license:expat))))
1410
1411 (define-public cl-esrap
1412 (sbcl-package->cl-source-package sbcl-esrap))
1413
1414 (define-public ecl-esrap
1415 (sbcl-package->ecl-package sbcl-esrap))
1416
1417 (define-public sbcl-split-sequence
1418 (package
1419 (name "sbcl-split-sequence")
1420 (version "1.4.1")
1421 (source
1422 (origin
1423 (method git-fetch)
1424 (uri (git-reference
1425 (url "https://github.com/sharplispers/split-sequence")
1426 (commit (string-append "v" version))))
1427 (sha256
1428 (base32
1429 "0c3zp6b7fmmp93sfhq112ind4zkld49ycw68z409xpnz3gc0wpf0"))
1430 (file-name (git-file-name "split-sequence" version))))
1431 (build-system asdf-build-system/sbcl)
1432 (arguments
1433 ;; TODO: Tests seem to be broken.
1434 ;; https://github.com/sharplispers/split-sequence/issues/8
1435 `(#:tests? #f))
1436 (synopsis "Member of the Common Lisp Utilities family of programs")
1437 (description
1438 "Splits sequence into a list of subsequences delimited by objects
1439 satisfying the test.")
1440 (home-page "https://cliki.net/split-sequence")
1441 (license license:expat)))
1442
1443 (define-public cl-split-sequence
1444 (sbcl-package->cl-source-package sbcl-split-sequence))
1445
1446 (define-public ecl-split-sequence
1447 (sbcl-package->ecl-package sbcl-split-sequence))
1448
1449 (define-public sbcl-html-encode
1450 (package
1451 (name "sbcl-html-encode")
1452 (version "1.2")
1453 (source
1454 (origin
1455 (method url-fetch)
1456 (uri (string-append
1457 "http://beta.quicklisp.org/archive/html-encode/2010-10-06/html-encode-"
1458 version ".tgz"))
1459 (sha256
1460 (base32
1461 "06mf8wn95yf5swhmzk4vp0xr4ylfl33dgfknkabbkd8n6jns8gcf"))
1462 (file-name (string-append "colorize" version "-checkout"))))
1463 (build-system asdf-build-system/sbcl)
1464 (synopsis "Common Lisp library for encoding text in various web-savvy encodings")
1465 (description
1466 "A library for encoding text in various web-savvy encodings.")
1467 (home-page "http://quickdocs.org/html-encode/")
1468 (license license:expat)))
1469
1470 (define-public cl-html-encode
1471 (sbcl-package->cl-source-package sbcl-html-encode))
1472
1473 (define-public ecl-html-encode
1474 (sbcl-package->ecl-package sbcl-html-encode))
1475
1476 (define-public sbcl-colorize
1477 (let ((commit "ea676b584e0899cec82f21a9e6871172fe3c0eb5"))
1478 (package
1479 (name "sbcl-colorize")
1480 (version (git-version "0.0.0" "1" commit))
1481 (source
1482 (origin
1483 (method git-fetch)
1484 (uri (git-reference
1485 (url "https://github.com/kingcons/colorize")
1486 (commit commit)))
1487 (sha256
1488 (base32
1489 "1pdg4kiaczmr3ivffhirp7m3lbr1q27rn7dhaay0vwghmi31zcw9"))
1490 (file-name (git-file-name "colorize" version))))
1491 (build-system asdf-build-system/sbcl)
1492 (inputs
1493 `(("alexandria" ,sbcl-alexandria)
1494 ("split-sequence" ,sbcl-split-sequence)
1495 ("html-encode" ,sbcl-html-encode)))
1496 (synopsis "Common Lisp for syntax highlighting")
1497 (description
1498 "@command{colorize} is a Lisp library for syntax highlighting
1499 supporting the following languages: Common Lisp, Emacs Lisp, Scheme, Clojure,
1500 C, C++, Java, Python, Erlang, Haskell, Objective-C, Diff, Webkit.")
1501 (home-page "https://github.com/kingcons/colorize")
1502 ;; TODO: Missing license?
1503 (license license:expat))))
1504
1505 (define-public cl-colorize
1506 (sbcl-package->cl-source-package sbcl-colorize))
1507
1508 (define-public ecl-colorize
1509 (sbcl-package->ecl-package sbcl-colorize))
1510
1511 (define-public sbcl-3bmd
1512 (let ((commit "192ea13435b605a96ef607df51317056914cabbd"))
1513 (package
1514 (name "sbcl-3bmd")
1515 (version (git-version "0.0.0" "1" commit))
1516 (source
1517 (origin
1518 (method git-fetch)
1519 (uri (git-reference
1520 (url "https://github.com/3b/3bmd")
1521 (commit commit)))
1522 (sha256
1523 (base32
1524 "1rgv3gi7wf963ikmmpk132wgn0icddf226gq3bmcnk1fr3v9gf2f"))
1525 (file-name (git-file-name "3bmd" version))))
1526 (build-system asdf-build-system/sbcl)
1527 (arguments
1528 ;; FIXME: We need to specify the name because the build-system thinks
1529 ;; "3" is a version marker.
1530 `(#:asd-system-name "3bmd"))
1531 (inputs
1532 `(("esrap" ,sbcl-esrap)
1533 ("split-sequence" ,sbcl-split-sequence)))
1534 (synopsis "Markdown processor in Command Lisp using esrap parser")
1535 (description
1536 "Common Lisp Markdown -> HTML converter, using @command{esrap} for
1537 parsing, and grammar based on @command{peg-markdown}.")
1538 (home-page "https://github.com/3b/3bmd")
1539 (license license:expat))))
1540
1541 (define-public cl-3bmd
1542 (sbcl-package->cl-source-package sbcl-3bmd))
1543
1544 (define-public ecl-3bmd
1545 (sbcl-package->ecl-package sbcl-3bmd))
1546
1547 (define-public sbcl-3bmd-ext-code-blocks
1548 (let ((commit "192ea13435b605a96ef607df51317056914cabbd"))
1549 (package
1550 (inherit sbcl-3bmd)
1551 (name "sbcl-3bmd-ext-code-blocks")
1552 (arguments
1553 `(#:asd-system-name "3bmd-ext-code-blocks"
1554 #:asd-file "3bmd-ext-code-blocks.asd"))
1555 (inputs
1556 `(("3bmd" ,sbcl-3bmd)
1557 ("colorize" ,sbcl-colorize)))
1558 (synopsis "3bmd extension which adds support for GitHub-style fenced
1559 code blocks")
1560 (description
1561 "3bmd extension which adds support for GitHub-style fenced code blocks,
1562 with @command{colorize} support."))))
1563
1564 (define-public cl-3bmd-ext-code-blocks
1565 (sbcl-package->cl-source-package sbcl-3bmd-ext-code-blocks))
1566
1567 (define-public ecl-3bmd-ext-code-blocks
1568 (sbcl-package->ecl-package sbcl-3bmd-ext-code-blocks))
1569
1570 (define-public sbcl-cl-fad
1571 (package
1572 (name "sbcl-cl-fad")
1573 (version "0.7.5")
1574 (source
1575 (origin
1576 (method git-fetch)
1577 (uri (git-reference
1578 (url "https://github.com/edicl/cl-fad/")
1579 (commit (string-append "v" version))))
1580 (sha256
1581 (base32
1582 "1l1qmk9z57q84bz5r04sxsksggsnd7dgkxlybzh9imz6ma7sm52m"))
1583 (file-name (string-append "cl-fad" version "-checkout"))))
1584 (build-system asdf-build-system/sbcl)
1585 (inputs
1586 `(("bordeaux-threads" ,sbcl-bordeaux-threads)))
1587 (synopsis "Portable pathname library for Common Lisp")
1588 (description
1589 "CL-FAD (for \"Files and Directories\") is a thin layer atop Common
1590 Lisp's standard pathname functions. It is intended to provide some
1591 unification between current CL implementations on Windows, OS X, Linux, and
1592 Unix. Most of the code was written by Peter Seibel for his book Practical
1593 Common Lisp.")
1594 (home-page "https://edicl.github.io/cl-fad/")
1595 (license license:bsd-2)))
1596
1597 (define-public cl-fad
1598 (sbcl-package->cl-source-package sbcl-cl-fad))
1599
1600 (define-public ecl-cl-fad
1601 (sbcl-package->ecl-package sbcl-cl-fad))
1602
1603 (define-public sbcl-rt
1604 (package
1605 (name "sbcl-rt")
1606 (version "1990.12.19")
1607 (source
1608 (origin
1609 (method url-fetch)
1610 (uri (string-append "http://beta.quicklisp.org/archive/rt/2010-10-06/rt-"
1611 "20101006-git" ".tgz"))
1612 (sha256
1613 (base32
1614 "1jncar0xwkqk8yrc2dln389ivvgzs7ijdhhs3zpfyi5d21f0qa1v"))))
1615 (build-system asdf-build-system/sbcl)
1616 (synopsis "MIT Regression Tester")
1617 (description
1618 "RT provides a framework for writing regression test suites.")
1619 (home-page "https://github.com/sharplispers/nibbles")
1620 (license license:unlicense)))
1621
1622 (define-public cl-rt
1623 (sbcl-package->cl-source-package sbcl-rt))
1624
1625 (define-public ecl-rt
1626 (sbcl-package->ecl-package sbcl-rt))
1627
1628 (define-public sbcl-nibbles
1629 (package
1630 (name "sbcl-nibbles")
1631 (version "0.14")
1632 (source
1633 (origin
1634 (method git-fetch)
1635 (uri (git-reference
1636 (url "https://github.com/sharplispers/nibbles/")
1637 (commit (string-append "v" version))))
1638 (sha256
1639 (base32
1640 "1v7qfgpvdr6nz7v63dj69d26dis0kff3rd8xamr1llfdvza2pm8f"))
1641 (file-name (git-file-name "nibbles" version))))
1642 (build-system asdf-build-system/sbcl)
1643 (native-inputs
1644 ;; Tests only.
1645 `(("rt" ,sbcl-rt)))
1646 (synopsis "Common Lisp library for accessing octet-addressed blocks of data")
1647 (description
1648 "When dealing with network protocols and file formats, it's common to
1649 have to read or write 16-, 32-, or 64-bit datatypes in signed or unsigned
1650 flavors. Common Lisp sort of supports this by specifying :element-type for
1651 streams, but that facility is underspecified and there's nothing similar for
1652 read/write from octet vectors. What most people wind up doing is rolling their
1653 own small facility for their particular needs and calling it a day.
1654
1655 This library attempts to be comprehensive and centralize such
1656 facilities. Functions to read 16-, 32-, and 64-bit quantities from octet
1657 vectors in signed or unsigned flavors are provided; these functions are also
1658 SETFable. Since it's sometimes desirable to read/write directly from streams,
1659 functions for doing so are also provided. On some implementations,
1660 reading/writing IEEE singles/doubles (i.e. single-float and double-float) will
1661 also be supported.")
1662 (home-page "https://github.com/sharplispers/nibbles")
1663 (license license:bsd-3)))
1664
1665 (define-public cl-nibbles
1666 (sbcl-package->cl-source-package sbcl-nibbles))
1667
1668 (define-public ecl-nibbles
1669 (sbcl-package->ecl-package sbcl-nibbles))
1670
1671 (define-public sbcl-ironclad
1672 (package
1673 (name "sbcl-ironclad")
1674 (version "0.48")
1675 (source
1676 (origin
1677 (method git-fetch)
1678 (uri (git-reference
1679 (url "https://github.com/sharplispers/ironclad/")
1680 (commit (string-append "v" version))))
1681 (sha256
1682 (base32
1683 "1wzczpgvgjc5h8ghz75kxi7iykmqxqchdhgdhkif9j99kyqvbyam"))
1684 (file-name (git-file-name name version))))
1685 (build-system asdf-build-system/sbcl)
1686 (native-inputs
1687 ;; Tests only.
1688 `(("rt" ,sbcl-rt)))
1689 (inputs
1690 `(("bordeaux-threads" ,sbcl-bordeaux-threads)
1691 ("flexi-streams" ,sbcl-flexi-streams)))
1692 (synopsis "Cryptographic toolkit written in Common Lisp")
1693 (description
1694 "Ironclad is a cryptography library written entirely in Common Lisp.
1695 It includes support for several popular ciphers, digests, MACs and public key
1696 cryptography algorithms. For several implementations that support Gray
1697 streams, support is included for convenient stream wrappers.")
1698 (home-page "https://github.com/sharplispers/ironclad")
1699 (license license:bsd-3)))
1700
1701 (define-public cl-ironclad
1702 (sbcl-package->cl-source-package sbcl-ironclad))
1703
1704 (define-public ecl-ironclad
1705 (sbcl-package->ecl-package sbcl-ironclad))
1706
1707 (define-public sbcl-named-readtables
1708 (let ((commit "4dfb89fa1af6b305b6492b8af042f5190c11e9fc")
1709 (revision "1"))
1710 (package
1711 (name "sbcl-named-readtables")
1712 (version (string-append "0.9-" revision "." (string-take commit 7)))
1713 (source
1714 (origin
1715 (method git-fetch)
1716 (uri (git-reference
1717 (url "https://github.com/melisgl/named-readtables.git")
1718 (commit commit)))
1719 (sha256
1720 (base32 "083kgh5462iqbb4px6kq8s7sggvpvkm36hx4qi9rnaw53b6ilqkk"))
1721 (file-name (git-file-name "named-readtables" version))))
1722 (build-system asdf-build-system/sbcl)
1723 (arguments
1724 ;; Tests seem to be broken.
1725 `(#:tests? #f))
1726 (home-page "https://github.com/melisgl/named-readtables/")
1727 (synopsis "Library that creates a namespace for named readtables")
1728 (description "Named readtables is a library that creates a namespace for
1729 named readtables, which is akin to package namespacing in Common Lisp.")
1730 (license license:bsd-3))))
1731
1732 (define-public cl-named-readtables
1733 (sbcl-package->cl-source-package sbcl-named-readtables))
1734
1735 (define-public ecl-named-readtables
1736 (sbcl-package->ecl-package sbcl-named-readtables))
1737
1738 (define-public sbcl-pythonic-string-reader
1739 (let ((commit "47a70ba1e32362e03dad6ef8e6f36180b560f86a"))
1740 (package
1741 (name "sbcl-pythonic-string-reader")
1742 (version (git-version "0.0.0" "1" commit))
1743 (source
1744 (origin
1745 (method git-fetch)
1746 (uri (git-reference
1747 (url "https://github.com/smithzvk/pythonic-string-reader/")
1748 (commit commit)))
1749 (sha256
1750 (base32 "1b5iryqw8xsh36swckmz8rrngmc39k92si33fgy5pml3n9l5rq3j"))
1751 (file-name (git-file-name "pythonic-string-reader" version))))
1752 (build-system asdf-build-system/sbcl)
1753 (inputs
1754 `(("named-readtables" ,sbcl-named-readtables)))
1755 (home-page "https://github.com/smithzvk/pythonic-string-reader")
1756 (synopsis "Read table modification inspired by Python's three quote strings")
1757 (description "This piece of code sets up some reader macros that make it
1758 simpler to input string literals which contain backslashes and double quotes
1759 This is very useful for writing complicated docstrings and, as it turns out,
1760 writing code that contains string literals that contain code themselves.")
1761 (license license:bsd-3))))
1762
1763 (define-public cl-pythonic-string-reader
1764 (sbcl-package->cl-source-package sbcl-pythonic-string-reader))
1765
1766 (define-public ecl-pythonic-string-reader
1767 (sbcl-package->ecl-package sbcl-pythonic-string-reader))
1768
1769 ;; SLIME does not have a ASDF system definition to build all of Swank. As a
1770 ;; result, the asdf-build-system/sbcl will produce an almost empty package.
1771 ;; Some work was done to fix this at
1772 ;; https://github.com/sionescu/slime/tree/swank-asdf but it was never merged
1773 ;; and is now lagging behind. Building SBCL fasls might not be worth the
1774 ;; hassle, so let's just ship the source then.
1775 (define-public cl-slime-swank
1776 (package
1777 (name "cl-slime-swank")
1778 (version "2.24")
1779 (source
1780 (origin
1781 (file-name (string-append name "-" version ".tar.gz"))
1782 (method git-fetch)
1783 (uri (git-reference
1784 (url "https://github.com/slime/slime/")
1785 (commit (string-append "v" version))))
1786 (sha256
1787 (base32
1788 "0js24x42m7b5iymb4rxz501dff19vav5pywnzv50b673rbkaaqvh"))))
1789 (build-system asdf-build-system/source)
1790 (home-page "https://github.com/slime/slime")
1791 (synopsis "Common Lisp Swank server")
1792 (description
1793 "This is only useful if you want to start a Swank server in a Lisp
1794 processes that doesn't run under Emacs. Lisp processes created by
1795 @command{M-x slime} automatically start the server.")
1796 (license (list license:gpl2+ license:public-domain))))
1797
1798 (define-public sbcl-slime-swank
1799 (deprecated-package "sbcl-slime-swank" cl-slime-swank))
1800
1801 (define-public sbcl-mgl-pax
1802 (let ((commit "818448418d6b9de74620f606f5b23033c6082769"))
1803 (package
1804 (name "sbcl-mgl-pax")
1805 (version (git-version "0.0.0" "1" commit))
1806 (source
1807 (origin
1808 (method git-fetch)
1809 (uri (git-reference
1810 (url "https://github.com/melisgl/mgl-pax")
1811 (commit commit)))
1812 (sha256
1813 (base32
1814 "1p97zfkh130bdxqqxwaw2j9psv58751wakx7czbfpq410lg7dd7i"))
1815 (file-name (git-file-name "mgl-pax" version))))
1816 (build-system asdf-build-system/sbcl)
1817 (inputs
1818 `(("3bmd" ,sbcl-3bmd)
1819 ("3bmd-ext-code-blocks" ,sbcl-3bmd-ext-code-blocks)
1820 ("babel" ,sbcl-babel)
1821 ("cl-fad" ,sbcl-cl-fad)
1822 ("ironclad" ,sbcl-ironclad)
1823 ("named-readtables" ,sbcl-named-readtables)
1824 ("pythonic-string-reader" ,sbcl-pythonic-string-reader)
1825 ("swank" ,cl-slime-swank)))
1826 (synopsis "Exploratory programming environment and documentation generator")
1827 (description
1828 "PAX provides an extremely poor man's Explorable Programming
1829 environment. Narrative primarily lives in so called sections that mix markdown
1830 docstrings with references to functions, variables, etc, all of which should
1831 probably have their own docstrings.
1832
1833 The primary focus is on making code easily explorable by using SLIME's
1834 @command{M-.} (@command{slime-edit-definition}). See how to enable some
1835 fanciness in Emacs Integration. Generating documentation from sections and all
1836 the referenced items in Markdown or HTML format is also implemented.
1837
1838 With the simplistic tools provided, one may accomplish similar effects as with
1839 Literate Programming, but documentation is generated from code, not vice versa
1840 and there is no support for chunking yet. Code is first, code must look
1841 pretty, documentation is code.")
1842 (home-page "http://quotenil.com/")
1843 (license license:expat))))
1844
1845 (define-public cl-mgl-pax
1846 (sbcl-package->cl-source-package sbcl-mgl-pax))
1847
1848 (define-public ecl-mgl-pax
1849 (sbcl-package->ecl-package sbcl-mgl-pax))
1850
1851 (define-public sbcl-lisp-unit
1852 (let ((commit "89653a232626b67400bf9a941f9b367da38d3815"))
1853 (package
1854 (name "sbcl-lisp-unit")
1855 (version (git-version "0.0.0" "1" commit))
1856 (source
1857 (origin
1858 (method git-fetch)
1859 (uri (git-reference
1860 (url "https://github.com/OdonataResearchLLC/lisp-unit")
1861 (commit commit)))
1862 (sha256
1863 (base32
1864 "0p6gdmgr7p383nvd66c9y9fp2bjk4jx1lpa5p09g43hr9y9pp9ry"))
1865 (file-name (git-file-name "lisp-unit" version))))
1866 (build-system asdf-build-system/sbcl)
1867 (synopsis "Common Lisp Test framework inspired by JUnit to be simple of use")
1868 (description
1869 "@command{lisp-unit} is a Common Lisp library that supports unit
1870 testing. It is an extension of the library written by Chris Riesbeck.")
1871 (home-page "https://github.com/OdonataResearchLLC/lisp-unit")
1872 (license license:expat))))
1873
1874 (define-public cl-lisp-unit
1875 (sbcl-package->cl-source-package sbcl-lisp-unit))
1876
1877 (define-public ecl-lisp-unit
1878 (sbcl-package->ecl-package sbcl-lisp-unit))
1879
1880 (define-public sbcl-anaphora
1881 (package
1882 (name "sbcl-anaphora")
1883 (version "0.9.6")
1884 (source
1885 (origin
1886 (method git-fetch)
1887 (uri (git-reference
1888 (url "https://github.com/tokenrove/anaphora")
1889 (commit version)))
1890 (sha256
1891 (base32
1892 "19wfrk3asimznkli0x2rfy637hwpdgqyvwj3vhq9x7vjvyf5vv6x"))
1893 (file-name (git-file-name "anaphora" version))))
1894 (build-system asdf-build-system/sbcl)
1895 (native-inputs
1896 `(("rt" ,sbcl-rt)))
1897 (synopsis "The anaphoric macro collection from Hell")
1898 (description
1899 "Anaphora is the anaphoric macro collection from Hell: it includes many
1900 new fiends in addition to old friends like @command{aif} and
1901 @command{awhen}.")
1902 (home-page "https://github.com/tokenrove/anaphora")
1903 (license license:public-domain)))
1904
1905 (define-public cl-anaphora
1906 (sbcl-package->cl-source-package sbcl-anaphora))
1907
1908 (define-public ecl-anaphora
1909 (sbcl-package->ecl-package sbcl-anaphora))
1910
1911 (define-public sbcl-lift
1912 (let ((commit "7d49a66c62759535624037826891152223d4206c"))
1913 (package
1914 (name "sbcl-lift")
1915 (version (git-version "1.7.1" "1" commit))
1916 (source
1917 (origin
1918 (method git-fetch)
1919 (uri (git-reference
1920 (url "https://github.com/gwkkwg/lift")
1921 (commit commit)))
1922 (sha256
1923 (base32
1924 "127v5avpz1i4m0lkaxqrq8hrl69rdazqaxf6s8awf0nd7wj2g4dp"))
1925 (file-name (git-file-name "lift" version))
1926 (modules '((guix build utils)))
1927 (snippet
1928 ;; Don't keep the bundled website
1929 `(begin
1930 (delete-file-recursively "website")
1931 #t))))
1932 (build-system asdf-build-system/sbcl)
1933 (arguments
1934 ;; The tests require a debugger, but we run with the debugger disabled.
1935 '(#:tests? #f))
1936 (synopsis "LIsp Framework for Testing")
1937 (description
1938 "The LIsp Framework for Testing (LIFT) is a unit and system test tool for LISP.
1939 Though inspired by SUnit and JUnit, it's built with Lisp in mind. In LIFT,
1940 testcases are organized into hierarchical testsuites each of which can have
1941 its own fixture. When run, a testcase can succeed, fail, or error. LIFT
1942 supports randomized testing, benchmarking, profiling, and reporting.")
1943 (home-page "https://github.com/gwkkwg/lift")
1944 (license license:expat))))
1945
1946 (define-public cl-lift
1947 (sbcl-package->cl-source-package sbcl-lift))
1948
1949 (define-public ecl-lift
1950 (sbcl-package->ecl-package sbcl-lift))
1951
1952 (define-public sbcl-let-plus
1953 (let ((commit "5f14af61d501ecead02ec6b5a5c810efc0c9fdbb"))
1954 (package
1955 (name "sbcl-let-plus")
1956 (version (git-version "0.0.0" "1" commit))
1957 (source
1958 (origin
1959 (method git-fetch)
1960 (uri (git-reference
1961 (url "https://github.com/sharplispers/let-plus")
1962 (commit commit)))
1963 (sha256
1964 (base32
1965 "0i050ca2iys9f5mb7dgqgqdxfnc3b0rnjdwv95sqd490vkiwrsaj"))
1966 (file-name (git-file-name "let-plus" version))))
1967 (build-system asdf-build-system/sbcl)
1968 (inputs
1969 `(("alexandria" ,sbcl-alexandria)
1970 ("anaphora" ,sbcl-anaphora)))
1971 (native-inputs
1972 `(("lift" ,sbcl-lift)))
1973 (synopsis "Destructuring extension of let*")
1974 (description
1975 "This library implements the let+ macro, which is a dectructuring
1976 extension of let*. It features:
1977
1978 @itemize
1979 @item Clean, consistent syntax and small implementation (less than 300 LOC,
1980 not counting tests)
1981 @item Placeholder macros allow editor hints and syntax highlighting
1982 @item @command{&ign} for ignored values (in forms where that makes sense)
1983 @item Very easy to extend
1984 @end itemize\n")
1985 (home-page "https://github.com/sharplispers/let-plus")
1986 (license license:boost1.0))))
1987
1988 (define-public cl-let-plus
1989 (sbcl-package->cl-source-package sbcl-let-plus))
1990
1991 (define-public ecl-let-plus
1992 (sbcl-package->ecl-package sbcl-let-plus))
1993
1994 (define-public sbcl-cl-colors
1995 (let ((commit "827410584553f5c717eec6182343b7605f707f75"))
1996 (package
1997 (name "sbcl-cl-colors")
1998 (version (git-version "0.0.0" "1" commit))
1999 (source
2000 (origin
2001 (method git-fetch)
2002 (uri (git-reference
2003 (url "https://github.com/tpapp/cl-colors")
2004 (commit commit)))
2005 (sha256
2006 (base32
2007 "0l446lday4hybsm9bq3jli97fvv8jb1d33abg79vbylpwjmf3y9a"))
2008 (file-name (git-file-name "cl-colors" version))))
2009 (build-system asdf-build-system/sbcl)
2010 (inputs
2011 `(("alexandria" ,sbcl-alexandria)
2012 ("let-plus" ,sbcl-let-plus)))
2013 (synopsis "Simple color library for Common Lisp")
2014 (description
2015 "This is a very simple color library for Common Lisp, providing
2016
2017 @itemize
2018 @item Types for representing colors in HSV and RGB spaces.
2019 @item Simple conversion functions between the above types (and also
2020 hexadecimal representation for RGB).
2021 @item Some predefined colors (currently X11 color names – of course the
2022 library does not depend on X11).Because color in your terminal is nice.
2023 @end itemize
2024
2025 This library is no longer supported by its author.")
2026 (home-page "https://github.com/tpapp/cl-colors")
2027 (license license:boost1.0))))
2028
2029 (define-public cl-colors
2030 (sbcl-package->cl-source-package sbcl-cl-colors))
2031
2032 (define-public ecl-cl-colors
2033 (sbcl-package->ecl-package sbcl-cl-colors))
2034
2035 (define-public sbcl-cl-ansi-text
2036 (let ((commit "53badf7878f27f22f2d4a2a43e6df458e43acbe9"))
2037 (package
2038 (name "sbcl-cl-ansi-text")
2039 (version (git-version "1.0.0" "1" commit))
2040 (source
2041 (origin
2042 (method git-fetch)
2043 (uri (git-reference
2044 (url "https://github.com/pnathan/cl-ansi-text")
2045 (commit commit)))
2046 (sha256
2047 (base32
2048 "11i27n0dbz5lmygiw65zzr8lx0rac6b6yysqranphn31wls6ja3v"))
2049 (file-name (git-file-name "cl-ansi-text" version))))
2050 (build-system asdf-build-system/sbcl)
2051 (inputs
2052 `(("alexandria" ,sbcl-alexandria)
2053 ("cl-colors" ,sbcl-cl-colors)))
2054 (native-inputs
2055 `(("fiveam" ,sbcl-fiveam)))
2056 (synopsis "ANSI terminal color implementation for Common Lisp")
2057 (description
2058 "@command{cl-ansi-text} provides utilities which enable printing to an
2059 ANSI terminal with colored text. It provides the macro @command{with-color}
2060 which causes everything printed in the body to be displayed with the provided
2061 color. It further provides functions which will print the argument with the
2062 named color.")
2063 (home-page "https://github.com/pnathan/cl-ansi-text")
2064 (license license:llgpl))))
2065
2066 (define-public cl-ansi-text
2067 (sbcl-package->cl-source-package sbcl-cl-ansi-text))
2068
2069 (define-public ecl-cl-ansi-text
2070 (sbcl-package->ecl-package sbcl-cl-ansi-text))
2071
2072 (define-public sbcl-prove-asdf
2073 (let ((commit "4f9122bd393e63c5c70c1fba23070622317cfaa0"))
2074 (package
2075 (name "sbcl-prove-asdf")
2076 (version (git-version "1.0.0" "1" commit))
2077 (source
2078 (origin
2079 (method git-fetch)
2080 (uri (git-reference
2081 (url "https://github.com/fukamachi/prove")
2082 (commit commit)))
2083 (sha256
2084 (base32
2085 "07sbfw459z8bbjvx1qlmfa8qk2mvbjnnzi2mi0x72blaj8bkl4vc"))
2086 (file-name (git-file-name "prove" version))))
2087 (build-system asdf-build-system/sbcl)
2088 (arguments
2089 `(#:asd-file "prove-asdf.asd"))
2090 (synopsis "Test requirement for the Common Lisp 'prove' library")
2091 (description
2092 "Test requirement for the Common Lisp @command{prove} library.")
2093 (home-page "https://github.com/fukamachi/prove")
2094 (license license:expat))))
2095
2096 (define-public cl-prove-asdf
2097 (sbcl-package->cl-source-package sbcl-prove-asdf))
2098
2099 (define-public ecl-prove-asdf
2100 (sbcl-package->ecl-package sbcl-prove-asdf))
2101
2102 (define-public sbcl-prove
2103 (package
2104 (inherit sbcl-prove-asdf)
2105 (name "sbcl-prove")
2106 (inputs
2107 `(("alexandria" ,sbcl-alexandria)
2108 ("cl-ppcre" ,sbcl-cl-ppcre)
2109 ("cl-ansi-text" ,sbcl-cl-ansi-text)))
2110 (native-inputs
2111 `(("prove-asdf" ,sbcl-prove-asdf)))
2112 (arguments
2113 `(#:asd-file "prove.asd"))
2114 (synopsis "Yet another unit testing framework for Common Lisp")
2115 (description
2116 "This project was originally called @command{cl-test-more}.
2117 @command{prove} is yet another unit testing framework for Common Lisp. The
2118 advantages of @command{prove} are:
2119
2120 @itemize
2121 @item Various simple functions for testing and informative error messages
2122 @item ASDF integration
2123 @item Extensible test reporters
2124 @item Colorizes the report if it's available (note for SLIME)
2125 @item Reports test durations
2126 @end itemize\n")))
2127
2128 (define-public cl-prove
2129 (sbcl-package->cl-source-package sbcl-prove))
2130
2131 (define-public ecl-prove
2132 (sbcl-package->ecl-package sbcl-prove))
2133
2134 (define-public sbcl-proc-parse
2135 (let ((commit "ac3636834d561bdc2686c956dbd82494537285fd"))
2136 (package
2137 (name "sbcl-proc-parse")
2138 (version (git-version "0.0.0" "1" commit))
2139 (source
2140 (origin
2141 (method git-fetch)
2142 (uri (git-reference
2143 (url "https://github.com/fukamachi/proc-parse")
2144 (commit commit)))
2145 (sha256
2146 (base32
2147 "06rnl0h4cx6xv2wj3jczmmcxqn2703inmmvg1s4npbghmijsybfh"))
2148 (file-name (git-file-name "proc-parse" version))))
2149 (build-system asdf-build-system/sbcl)
2150 (inputs
2151 `(("alexandria" ,sbcl-alexandria)
2152 ("babel" ,sbcl-babel)))
2153 (native-inputs
2154 `(("prove" ,sbcl-prove)
2155 ("prove-asdf" ,sbcl-prove-asdf)))
2156 (arguments
2157 ;; TODO: Tests don't find "proc-parse-test", why?
2158 `(#:tests? #f))
2159 (synopsis "Procedural vector parser")
2160 (description
2161 "This is a string/octets parser library for Common Lisp with speed and
2162 readability in mind. Unlike other libraries, the code is not a
2163 pattern-matching-like, but a char-by-char procedural parser.")
2164 (home-page "https://github.com/fukamachi/proc-parse")
2165 (license license:bsd-2))))
2166
2167 (define-public cl-proc-parse
2168 (sbcl-package->cl-source-package sbcl-proc-parse))
2169
2170 (define-public ecl-proc-parse
2171 (sbcl-package->ecl-package sbcl-proc-parse))
2172
2173 (define-public sbcl-parse-float
2174 (let ((commit "2aae569f2a4b2eb3bfb5401a959425dcf151b09c"))
2175 (package
2176 (name "sbcl-parse-float")
2177 (version (git-version "0.0.0" "1" commit))
2178 (source
2179 (origin
2180 (method git-fetch)
2181 (uri (git-reference
2182 (url "https://github.com/soemraws/parse-float")
2183 (commit commit)))
2184 (sha256
2185 (base32
2186 "08xw8cchhmqcc0byng69m3f5a2izc9y2290jzz2k0qrbibp1fdk7"))
2187 (file-name (git-file-name "proc-parse" version))))
2188 (build-system asdf-build-system/sbcl)
2189 (inputs
2190 `(("alexandria" ,sbcl-alexandria)
2191 ("babel" ,sbcl-babel)))
2192 (native-inputs
2193 `(("prove" ,sbcl-prove)
2194 ("prove-asdf" ,sbcl-prove-asdf)))
2195 (arguments
2196 ;; TODO: Tests don't find "proc-parse-test", why?
2197 `(#:tests? #f))
2198 (synopsis "Parse a floating point value from a string in Common Lisp")
2199 (description
2200 "This package exports the following function to parse floating-point
2201 values from a string in Common Lisp.")
2202 (home-page "https://github.com/soemraws/parse-float")
2203 (license license:public-domain))))
2204
2205 (define-public cl-parse-float
2206 (sbcl-package->cl-source-package sbcl-parse-float))
2207
2208 (define-public ecl-parse-float
2209 (sbcl-package->ecl-package sbcl-parse-float))
2210
2211 (define-public sbcl-ascii-strings
2212 (let ((revision "1")
2213 (changeset "5048480a61243e6f1b02884012c8f25cdbee6d97"))
2214 (package
2215 (name "sbcl-ascii-strings")
2216 (version (string-append "0-" revision "." (string-take changeset 7)))
2217 (source
2218 (origin
2219 (method hg-fetch)
2220 (uri (hg-reference
2221 (url "https://bitbucket.org/vityok/cl-string-match/")
2222 (changeset changeset)))
2223 (sha256
2224 (base32
2225 "01wn5qx562w43ssy92xlfgv79w7p0nv0wbl76mpmba131n9ziq2y"))
2226 (file-name (git-file-name "cl-string-match" version))))
2227 (build-system asdf-build-system/sbcl)
2228 (inputs
2229 `(("alexandria" ,sbcl-alexandria)
2230 ("babel" ,sbcl-babel)))
2231 (arguments
2232 `(#:asd-file "ascii-strings.asd"))
2233 (synopsis "Operations on ASCII strings")
2234 (description
2235 "Operations on ASCII strings. Essentially this can be any kind of
2236 single-byte encoded strings.")
2237 (home-page "https://bitbucket.org/vityok/cl-string-match/")
2238 (license license:bsd-3))))
2239
2240 (define-public cl-ascii-strings
2241 (sbcl-package->cl-source-package sbcl-ascii-strings))
2242
2243 (define-public ecl-ascii-strings
2244 (sbcl-package->ecl-package sbcl-ascii-strings))
2245
2246 (define-public sbcl-simple-scanf
2247 (package
2248 (inherit sbcl-ascii-strings)
2249 (name "sbcl-simple-scanf")
2250 (inputs
2251 `(("alexandria" ,sbcl-alexandria)
2252 ("iterate" ,sbcl-iterate)
2253 ("proc-parse" ,sbcl-proc-parse)
2254 ("parse-float" ,sbcl-parse-float)))
2255 (arguments
2256 `(#:asd-file "simple-scanf.asd"))
2257 (synopsis "Simple scanf-like functionality implementation")
2258 (description
2259 "A simple scanf-like functionality implementation.")))
2260
2261 (define-public cl-simple-scanf
2262 (sbcl-package->cl-source-package sbcl-simple-scanf))
2263
2264 (define-public ecl-simple-scanf
2265 (sbcl-package->ecl-package sbcl-simple-scanf))
2266
2267 (define-public sbcl-cl-string-match
2268 (package
2269 (inherit sbcl-ascii-strings)
2270 (name "sbcl-cl-string-match")
2271 (inputs
2272 `(("alexandria" ,sbcl-alexandria)
2273 ("ascii-strings" ,sbcl-ascii-strings)
2274 ("yacc" ,sbcl-cl-yacc)
2275 ("jpl-util" ,sbcl-jpl-util)
2276 ("jpl-queues" ,sbcl-jpl-queues)
2277 ("mgl-pax" ,sbcl-mgl-pax)
2278 ("iterate" ,sbcl-iterate)))
2279 ;; TODO: Tests are not evaluated properly.
2280 (native-inputs
2281 ;; For testing:
2282 `(("lisp-unit" ,sbcl-lisp-unit)
2283 ("simple-scanf" ,sbcl-simple-scanf)))
2284 (arguments
2285 `(#:tests? #f
2286 #:asd-file "cl-string-match.asd"))
2287 (synopsis "Portable, dependency-free set of utilities to manipulate strings in Common Lisp")
2288 (description
2289 "@command{cl-strings} is a small, portable, dependency-free set of
2290 utilities that make it even easier to manipulate text in Common Lisp. It has
2291 100% test coverage and works at least on sbcl, ecl, ccl, abcl and clisp.")))
2292
2293 (define-public cl-string-match
2294 (sbcl-package->cl-source-package sbcl-cl-string-match))
2295
2296 (define-public ecl-cl-string-match
2297 (sbcl-package->ecl-package sbcl-cl-string-match))
2298
2299 (define-public sbcl-ptester
2300 (package
2301 (name "sbcl-ptester")
2302 (version "20160929")
2303 (source
2304 (origin
2305 (method url-fetch)
2306 (uri (string-append "http://beta.quicklisp.org/archive/ptester/"
2307 (date->string (string->date version "~Y~m~d") "~Y-~m-~d")
2308 "/ptester-"
2309 version
2310 "-git.tgz"))
2311 (sha256
2312 (base32
2313 "04rlq1zljhxc65pm31bah3sq3as24l0sdivz440s79qlnnyh13hz"))))
2314 (build-system asdf-build-system/sbcl)
2315 (home-page "http://quickdocs.org/ptester/")
2316 (synopsis "Portable test harness package")
2317 (description
2318 "@command{ptester} is a portable testing framework based on Franz's
2319 tester module.")
2320 (license license:lgpl3+)))
2321
2322 (define-public cl-ptester
2323 (sbcl-package->cl-source-package sbcl-ptester))
2324
2325 (define-public ecl-ptester
2326 (sbcl-package->ecl-package sbcl-ptester))
2327
2328 (define-public sbcl-puri
2329 (package
2330 (name "sbcl-puri")
2331 (version "20180228")
2332 (source
2333 (origin
2334 (method url-fetch)
2335 (uri (string-append "http://beta.quicklisp.org/archive/puri/"
2336 (date->string (string->date version "~Y~m~d") "~Y-~m-~d")
2337 "/puri-"
2338 version
2339 "-git.tgz"))
2340 (sha256
2341 (base32
2342 "1s4r5adrjy5asry45xbcbklxhdjydvf6n55z897nvyw33bigrnbz"))))
2343 (build-system asdf-build-system/sbcl)
2344 ;; REVIEW: Webiste down?
2345 (native-inputs
2346 `(("ptester" ,sbcl-ptester)))
2347 (home-page "http://files.kpe.io/puri/")
2348 (synopsis "Portable URI Library")
2349 (description
2350 "This is portable Universal Resource Identifier library for Common Lisp
2351 programs. It parses URI according to the RFC 2396 specification")
2352 (license license:lgpl3+)))
2353
2354 (define-public cl-puri
2355 (sbcl-package->cl-source-package sbcl-puri))
2356
2357 (define-public ecl-puri
2358 (sbcl-package->ecl-package sbcl-puri))
2359
2360 (define-public sbcl-queues
2361 (let ((commit "47d4da65e9ea20953b74aeeab7e89a831b66bc94"))
2362 (package
2363 (name "sbcl-queues")
2364 (version (git-version "0.0.0" "1" commit))
2365 (source
2366 (origin
2367 (method git-fetch)
2368 (uri (git-reference
2369 (url "https://github.com/oconnore/queues")
2370 (commit commit)))
2371 (file-name (git-file-name "queues" version))
2372 (sha256
2373 (base32
2374 "0wdhfnzi4v6d97pggzj2aw55si94w4327br94jrmyvwf351wqjvv"))))
2375 (build-system asdf-build-system/sbcl)
2376 (home-page "https://github.com/oconnore/queues")
2377 (synopsis "Common Lisp queue library")
2378 (description
2379 "This is a simple queue library for Common Lisp with features such as
2380 non-consing thread safe queues and fibonacci priority queues.")
2381 (license license:expat))))
2382
2383 (define-public cl-queues
2384 (sbcl-package->cl-source-package sbcl-queues))
2385
2386 (define-public ecl-queues
2387 (sbcl-package->ecl-package sbcl-queues))
2388
2389 (define-public sbcl-queues.simple-queue
2390 (package
2391 (inherit sbcl-queues)
2392 (name "sbcl-queues.simple-queue")
2393 (inputs
2394 `(("sbcl-queues" ,sbcl-queues)))
2395 (arguments
2396 `(#:asd-file "queues.simple-queue.asd"))
2397 (synopsis "Simple queue implementation")
2398 (description
2399 "This is a simple queue library for Common Lisp with features such as
2400 non-consing thread safe queues and fibonacci priority queues.")
2401 (license license:expat)))
2402
2403 (define-public cl-queues.simple-queue
2404 (sbcl-package->cl-source-package sbcl-queues.simple-queue))
2405
2406 (define-public ecl-queues.simple-queue
2407 (sbcl-package->ecl-package sbcl-queues.simple-queue))
2408
2409 (define-public sbcl-queues.simple-cqueue
2410 (package
2411 (inherit sbcl-queues)
2412 (name "sbcl-queues.simple-cqueue")
2413 (inputs
2414 `(("sbcl-queues" ,sbcl-queues)
2415 ("sbcl-queues.simple-queue" ,sbcl-queues.simple-queue)
2416 ("bordeaux-threads" ,sbcl-bordeaux-threads)))
2417 (arguments
2418 `(#:asd-file "queues.simple-cqueue.asd"))
2419 (synopsis "Thread safe queue implementation")
2420 (description
2421 "This is a simple queue library for Common Lisp with features such as
2422 non-consing thread safe queues and fibonacci priority queues.")
2423 (license license:expat)))
2424
2425 (define-public cl-queues.simple-cqueue
2426 (sbcl-package->cl-source-package sbcl-queues.simple-cqueue))
2427
2428 (define-public ecl-queues.simple-cqueue
2429 (sbcl-package->ecl-package sbcl-queues.simple-cqueue))
2430
2431 (define-public sbcl-queues.priority-queue
2432 (package
2433 (inherit sbcl-queues)
2434 (name "sbcl-queues.priority-queue")
2435 (inputs
2436 `(("sbcl-queues" ,sbcl-queues)))
2437 (arguments
2438 `(#:asd-file "queues.priority-queue.asd"))
2439 (synopsis "Priority queue (Fibonacci) implementation")
2440 (description
2441 "This is a simple queue library for Common Lisp with features such as
2442 non-consing thread safe queues and fibonacci priority queues.")
2443 (license license:expat)))
2444
2445 (define-public cl-queues.priority-queue
2446 (sbcl-package->cl-source-package sbcl-queues.priority-queue))
2447
2448 (define-public ecl-queues.priority-queue
2449 (sbcl-package->ecl-package sbcl-queues.priority-queue))
2450
2451 (define-public sbcl-queues.priority-cqueue
2452 (package
2453 (inherit sbcl-queues)
2454 (name "sbcl-queues.priority-cqueue")
2455 (inputs
2456 `(("sbcl-queues" ,sbcl-queues)
2457 ("sbcl-queues.priority-queue" ,sbcl-queues.priority-queue)
2458 ("bordeaux-threads" ,sbcl-bordeaux-threads)))
2459 (arguments
2460 `(#:asd-file "queues.priority-cqueue.asd"))
2461 (synopsis "Thread safe fibonacci priority queue implementation")
2462 (description
2463 "This is a simple queue library for Common Lisp with features such as
2464 non-consing thread safe queues and fibonacci priority queues.")
2465 (license license:expat)))
2466
2467 (define-public cl-queues.priority-cqueue
2468 (sbcl-package->cl-source-package sbcl-queues.priority-cqueue))
2469
2470 (define-public ecl-queues.priority-cqueue
2471 (sbcl-package->ecl-package sbcl-queues.priority-cqueue))
2472
2473 (define sbcl-cffi-bootstrap
2474 (package
2475 (name "sbcl-cffi-bootstrap")
2476 (version "0.19.0")
2477 (source
2478 (origin
2479 (method git-fetch)
2480 (uri (git-reference
2481 (url "https://github.com/cffi/cffi.git")
2482 (commit (string-append "v" version))))
2483 (file-name (git-file-name "cffi-bootstrap" version))
2484 (sha256
2485 (base32 "09sfgc6r7ihmbkwfpvkq5fxc7h45cabpvgbvs47i5cvnmv3k72xy"))))
2486 (build-system asdf-build-system/sbcl)
2487 (inputs
2488 `(("libffi" ,libffi)
2489 ("alexandria" ,sbcl-alexandria)
2490 ("babel" ,sbcl-babel)
2491 ("trivial-features" ,sbcl-trivial-features)))
2492 (native-inputs
2493 `(("pkg-config" ,pkg-config)))
2494 (arguments
2495 '(#:phases
2496 (modify-phases %standard-phases
2497 (add-after 'unpack 'fix-paths
2498 (lambda* (#:key inputs #:allow-other-keys)
2499 (substitute* "libffi/libffi.lisp"
2500 (("libffi.so.6" all) (string-append
2501 (assoc-ref inputs "libffi")
2502 "/lib/" all)))
2503 (substitute* "toolchain/c-toolchain.lisp"
2504 (("\"cc\"") (format #f "~S" (which "gcc")))))))
2505 #:asd-system-name "cffi"
2506 #:tests? #f))
2507 (home-page "https://common-lisp.net/project/cffi/")
2508 (synopsis "Common Foreign Function Interface for Common Lisp")
2509 (description "The Common Foreign Function Interface (CFFI)
2510 purports to be a portable foreign function interface for Common Lisp.
2511 The CFFI library is composed of a Lisp-implementation-specific backend
2512 in the CFFI-SYS package, and a portable frontend in the CFFI
2513 package.")
2514 (license license:expat)))
2515
2516 (define-public sbcl-cffi-toolchain
2517 (package
2518 (inherit sbcl-cffi-bootstrap)
2519 (name "sbcl-cffi-toolchain")
2520 (inputs
2521 `(("libffi" ,libffi)
2522 ("sbcl-cffi" ,sbcl-cffi-bootstrap)))
2523 (arguments
2524 (substitute-keyword-arguments (package-arguments sbcl-cffi-bootstrap)
2525 ((#:asd-system-name _) #f)
2526 ((#:tests? _) #t)))))
2527
2528 (define-public sbcl-cffi-libffi
2529 (package
2530 (inherit sbcl-cffi-toolchain)
2531 (name "sbcl-cffi-libffi")
2532 (inputs
2533 `(("cffi" ,sbcl-cffi-bootstrap)
2534 ("cffi-grovel" ,sbcl-cffi-grovel)
2535 ("trivial-features" ,sbcl-trivial-features)
2536 ("libffi" ,libffi)))))
2537
2538 (define-public sbcl-cffi-grovel
2539 (package
2540 (inherit sbcl-cffi-toolchain)
2541 (name "sbcl-cffi-grovel")
2542 (inputs
2543 `(("libffi" ,libffi)
2544 ("cffi" ,sbcl-cffi-bootstrap)
2545 ("cffi-toolchain" ,sbcl-cffi-toolchain)
2546 ("alexandria" ,sbcl-alexandria)))
2547 (arguments
2548 (substitute-keyword-arguments (package-arguments sbcl-cffi-toolchain)
2549 ((#:phases phases)
2550 `(modify-phases ,phases
2551 (add-after 'build 'install-headers
2552 (lambda* (#:key outputs #:allow-other-keys)
2553 (install-file "grovel/common.h"
2554 (string-append
2555 (assoc-ref outputs "out")
2556 "/include/grovel"))))))))))
2557
2558 (define-public sbcl-cffi
2559 (package
2560 (inherit sbcl-cffi-toolchain)
2561 (name "sbcl-cffi")
2562 (inputs (package-inputs sbcl-cffi-bootstrap))
2563 (native-inputs
2564 `(("cffi-grovel" ,sbcl-cffi-grovel)
2565 ("cffi-libffi" ,sbcl-cffi-libffi)
2566 ("rt" ,sbcl-rt)
2567 ("bordeaux-threads" ,sbcl-bordeaux-threads)
2568 ,@(package-native-inputs sbcl-cffi-bootstrap)))))
2569
2570 (define-public cl-cffi
2571 (sbcl-package->cl-source-package sbcl-cffi))
2572
2573 (define-public sbcl-cl-sqlite
2574 (let ((commit "c738e66d4266ef63a1debc4ef4a1b871a068c112"))
2575 (package
2576 (name "sbcl-cl-sqlite")
2577 (version (git-version "0.2" "1" commit))
2578 (source
2579 (origin
2580 (method git-fetch)
2581 (uri (git-reference
2582 (url "https://github.com/dmitryvk/cl-sqlite")
2583 (commit commit)))
2584 (file-name (git-file-name "cl-sqlite" version))
2585 (sha256
2586 (base32
2587 "1ng45k1hdb84sqjryrfx93g66bsbybmpy301wd0fdybnc5jzr36q"))))
2588 (build-system asdf-build-system/sbcl)
2589 (inputs
2590 `(("iterate" ,sbcl-iterate)
2591 ("cffi" ,sbcl-cffi)
2592 ("sqlite" ,sqlite)))
2593 (native-inputs
2594 `(("fiveam" ,sbcl-fiveam)
2595 ("bordeaux-threads" ,sbcl-bordeaux-threads)))
2596 (arguments
2597 `(#:tests? #f ; Upstream seems to have issues with tests: https://github.com/dmitryvk/cl-sqlite/issues/7
2598 #:asd-file "sqlite.asd"
2599 #:asd-system-name "sqlite"
2600 #:phases
2601 (modify-phases %standard-phases
2602 (add-after 'unpack 'fix-paths
2603 (lambda* (#:key inputs #:allow-other-keys)
2604 (substitute* "sqlite-ffi.lisp"
2605 (("libsqlite3" all) (string-append
2606 (assoc-ref inputs "sqlite")"/lib/" all))))))))
2607 (home-page "https://common-lisp.net/project/cl-sqlite/")
2608 (synopsis "Common Lisp binding for SQLite")
2609 (description
2610 "The @command{cl-sqlite} package is an interface to the SQLite embedded
2611 relational database engine.")
2612 (license license:public-domain))))
2613
2614 (define-public cl-sqlite
2615 (sbcl-package->cl-source-package sbcl-cl-sqlite))
2616
2617 (define-public sbcl-parenscript
2618 (let ((commit "061d8e286c81c3f45c84fb2b11ee7d83f590a8f8"))
2619 (package
2620 (name "sbcl-parenscript")
2621 (version (git-version "2.6" "1" commit))
2622 (source
2623 (origin
2624 (method git-fetch)
2625 (uri (git-reference
2626 (url "https://gitlab.common-lisp.net/parenscript/parenscript")
2627 (commit commit)))
2628 (file-name (git-file-name "parenscript" version))
2629 (sha256
2630 (base32
2631 "1kbhgsjbikc73m5cwdp4d4fdafyqcr1b7b630qjrziql0nh6mi3k"))))
2632 (build-system asdf-build-system/sbcl)
2633 (inputs
2634 `(("cl-ppcre" ,sbcl-cl-ppcre)
2635 ("anaphora" ,sbcl-anaphora)
2636 ("named-readtables" ,sbcl-named-readtables)))
2637 (home-page "https://common-lisp.net/project/parenscript/")
2638 (synopsis "Translator from a subset of Common Lisp to JavaScript")
2639 (description
2640 "Parenscript is a translator from an extended subset of Common Lisp to
2641 JavaScript. Parenscript code can run almost identically on both the
2642 browser (as JavaScript) and server (as Common Lisp).
2643
2644 Parenscript code is treated the same way as Common Lisp code, making the full
2645 power of Lisp macros available for JavaScript. This provides a web
2646 development environment that is unmatched in its ability to reduce code
2647 duplication and provide advanced meta-programming facilities to web
2648 developers.
2649
2650 At the same time, Parenscript is different from almost all other \"language
2651 X\" to JavaScript translators in that it imposes almost no overhead:
2652
2653 @itemize
2654 @item No run-time dependencies: Any piece of Parenscript code is runnable
2655 as-is. There are no JavaScript files to include.
2656 @item Native types: Parenscript works entirely with native JavaScript data
2657 types. There are no new types introduced, and object prototypes are not
2658 touched.
2659 @item Native calling convention: Any JavaScript code can be called without the
2660 need for bindings. Likewise, Parenscript can be used to make efficient,
2661 self-contained JavaScript libraries.
2662 @item Readable code: Parenscript generates concise, formatted, idiomatic
2663 JavaScript code. Identifier names are preserved. This enables seamless
2664 debugging in tools like Firebug.
2665 @item Efficiency: Parenscript introduces minimal overhead for advanced Common
2666 Lisp features. The generated code is almost as fast as hand-written
2667 JavaScript.
2668 @end itemize\n")
2669 (license license:bsd-3))))
2670
2671 (define-public cl-parenscript
2672 (sbcl-package->cl-source-package sbcl-parenscript))
2673
2674 (define-public ecl-parenscript
2675 (sbcl-package->ecl-package sbcl-parenscript))
2676
2677 (define-public sbcl-cl-json
2678 (let ((commit "6dfebb9540bfc3cc33582d0c03c9ec27cb913e79"))
2679 (package
2680 (name "sbcl-cl-json")
2681 (version (git-version "0.5" "1" commit))
2682 (source
2683 (origin
2684 (method git-fetch)
2685 (uri (git-reference
2686 (url "https://github.com/hankhero/cl-json")
2687 (commit commit)))
2688 (file-name (git-file-name "cl-json" version))
2689 (sha256
2690 (base32
2691 "0fx3m3x3s5ji950yzpazz4s0img3l6b3d6l3jrfjv0lr702496lh"))))
2692 (build-system asdf-build-system/sbcl)
2693 (native-inputs
2694 `(("fiveam" ,sbcl-fiveam)))
2695 (home-page "https://github.com/hankhero/cl-json")
2696 (synopsis "JSON encoder and decoder for Common-Lisp")
2697 (description
2698 "@command{cl-json} provides an encoder of Lisp objects to JSON format
2699 and a corresponding decoder of JSON data to Lisp objects. Both the encoder
2700 and the decoder are highly customizable; at the same time, the default
2701 settings ensure a very simple mode of operation, similar to that provided by
2702 @command{yason} or @command{st-json}.")
2703 (license license:expat))))
2704
2705 (define-public cl-json
2706 (sbcl-package->cl-source-package sbcl-cl-json))
2707
2708 (define-public ecl-cl-json
2709 (sbcl-package->ecl-package sbcl-cl-json))
2710
2711 (define-public sbcl-unix-opts
2712 (package
2713 (name "sbcl-unix-opts")
2714 (version "0.1.7")
2715 (source
2716 (origin
2717 (method git-fetch)
2718 (uri (git-reference
2719 (url "https://github.com/libre-man/unix-opts")
2720 (commit version)))
2721 (file-name (git-file-name "unix-opts" version))
2722 (sha256
2723 (base32
2724 "08djdi1ard09fijb7w9bdmhmwd98b1hzmcnjw9fqjiqa0g3b44rr"))))
2725 (build-system asdf-build-system/sbcl)
2726 (home-page "https://github.com/hankhero/cl-json")
2727 (synopsis "Unix-style command line options parser")
2728 (description
2729 "This is a minimalistic parser of command line options. The main
2730 advantage of the library is the ability to concisely define command line
2731 options once and then use this definition for parsing and extraction of
2732 command line arguments, as well as printing description of command line
2733 options (you get --help for free). This way you don't need to repeat
2734 yourself. Also, @command{unix-opts} doesn't depend on anything and allows to
2735 precisely control behavior of the parser via Common Lisp restarts.")
2736 (license license:expat)))
2737
2738 (define-public cl-unix-opts
2739 (sbcl-package->cl-source-package sbcl-unix-opts))
2740
2741 (define-public ecl-unix-opts
2742 (sbcl-package->ecl-package sbcl-unix-opts))
2743
2744 (define-public sbcl-trivial-garbage
2745 (package
2746 (name "sbcl-trivial-garbage")
2747 (version "0.21")
2748 (source
2749 (origin
2750 (method git-fetch)
2751 (uri (git-reference
2752 (url "https://github.com/trivial-garbage/trivial-garbage.git")
2753 (commit (string-append "v" version))))
2754 (file-name (git-file-name "trivial-garbage" version))
2755 (sha256
2756 (base32 "0122jicfg7pca1wxw8zak1n92h5friqy60988ns0ysksj3fphw9n"))))
2757 (build-system asdf-build-system/sbcl)
2758 (native-inputs
2759 `(("rt" ,sbcl-rt)))
2760 (home-page "https://common-lisp.net/project/trivial-garbage/")
2761 (synopsis "Portable GC-related APIs for Common Lisp")
2762 (description "@command{trivial-garbage} provides a portable API to
2763 finalizers, weak hash-tables and weak pointers on all major implementations of
2764 the Common Lisp programming language.")
2765 (license license:public-domain)))
2766
2767 (define-public cl-trivial-garbage
2768 (sbcl-package->cl-source-package sbcl-trivial-garbage))
2769
2770 (define-public ecl-trivial-garbage
2771 (sbcl-package->ecl-package sbcl-trivial-garbage))
2772
2773 (define-public sbcl-closer-mop
2774 (let ((commit "fac29ce90e3a46e1fc6cf182190e193526fa9dbc"))
2775 (package
2776 (name "sbcl-closer-mop")
2777 (version (git-version "1.0.0" "1" commit))
2778 (source
2779 (origin
2780 (method git-fetch)
2781 (uri (git-reference
2782 (url "https://github.com/pcostanza/closer-mop")
2783 (commit commit)))
2784 (sha256
2785 (base32 "0hvh77y869h8fg9di5snyg85fxq6fdh9gj1igmx1g6j6j5x915dl"))
2786 (file-name (git-file-name "closer-mop" version ))))
2787 (build-system asdf-build-system/sbcl)
2788 (home-page "https://github.com/pcostanza/closer-mop")
2789 (synopsis "Rectifies absent or incorrect CLOS MOP features")
2790 (description "Closer to MOP is a compatibility layer that rectifies many
2791 of the absent or incorrect CLOS MOP features across a broad range of Common
2792 Lisp implementations.")
2793 (license license:expat))))
2794
2795 (define-public cl-closer-mop
2796 (sbcl-package->cl-source-package sbcl-closer-mop))
2797
2798 (define-public ecl-closer-mop
2799 (sbcl-package->ecl-package sbcl-closer-mop))
2800
2801 (define sbcl-cl-cffi-gtk-boot0
2802 (let ((commit "29443c5aaca975709df8025c4649366d882033cb"))
2803 (package
2804 (name "sbcl-cl-cffi-gtk-boot0")
2805 (version (git-version "0.11.2" "1" commit))
2806 (source
2807 (origin
2808 (method git-fetch)
2809 (uri (git-reference
2810 (url "https://github.com/Ferada/cl-cffi-gtk/")
2811 (commit commit)))
2812 (file-name (git-file-name "cl-cffi-gtk" version))
2813 (sha256
2814 (base32
2815 "0f6s92sf8xyzh1yksqx8bsy1sv0zmy0c13j3b8bavaba5hlxpxah"))))
2816 (build-system asdf-build-system/sbcl)
2817 (inputs
2818 `(("iterate" ,sbcl-iterate)
2819 ("cffi" ,sbcl-cffi)
2820 ("trivial-features" ,sbcl-trivial-features)))
2821 (home-page "https://github.com/Ferada/cl-cffi-gtk/")
2822 (synopsis "Common Lisp binding for GTK+3")
2823 (description
2824 "@command{cl-cffi-gtk} is a Lisp binding to GTK+ 3 (GIMP Toolkit) which
2825 is a library for creating graphical user interfaces.")
2826 (license license:lgpl3))))
2827
2828 (define-public sbcl-cl-cffi-gtk-glib
2829 (package
2830 (inherit sbcl-cl-cffi-gtk-boot0)
2831 (name "sbcl-cl-cffi-gtk-glib")
2832 (inputs
2833 `(("glib" ,glib)
2834 ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
2835 (arguments
2836 `(#:asd-file "glib/cl-cffi-gtk-glib.asd"
2837 #:phases
2838 (modify-phases %standard-phases
2839 (add-after 'unpack 'fix-paths
2840 (lambda* (#:key inputs #:allow-other-keys)
2841 (substitute* "glib/glib.init.lisp"
2842 (("libglib|libgthread" all) (string-append
2843 (assoc-ref inputs "glib") "/lib/" all))))))))))
2844
2845 (define-public sbcl-cl-cffi-gtk-gobject
2846 (package
2847 (inherit sbcl-cl-cffi-gtk-boot0)
2848 (name "sbcl-cl-cffi-gtk-gobject")
2849 (inputs
2850 `(("glib" ,glib)
2851 ("cl-cffi-gtk-glib" ,sbcl-cl-cffi-gtk-glib)
2852 ("trivial-garbage" ,sbcl-trivial-garbage)
2853 ("bordeaux-threads" ,sbcl-bordeaux-threads)
2854 ("closer-mop" ,sbcl-closer-mop)
2855 ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
2856 (arguments
2857 `(#:asd-file "gobject/cl-cffi-gtk-gobject.asd"
2858 #:phases
2859 (modify-phases %standard-phases
2860 (add-after 'unpack 'fix-paths
2861 (lambda* (#:key inputs #:allow-other-keys)
2862 (substitute* "gobject/gobject.init.lisp"
2863 (("libgobject" all) (string-append
2864 (assoc-ref inputs "glib") "/lib/" all))))))))))
2865
2866 (define-public sbcl-cl-cffi-gtk-gio
2867 (package
2868 (inherit sbcl-cl-cffi-gtk-boot0)
2869 (name "sbcl-cl-cffi-gtk-gio")
2870 (inputs
2871 `(("glib" ,glib)
2872 ("cl-cffi-gtk-glib" ,sbcl-cl-cffi-gtk-glib)
2873 ("cl-cffi-gtk-gobject" ,sbcl-cl-cffi-gtk-gobject)
2874 ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
2875 (arguments
2876 `(#:asd-file "gio/cl-cffi-gtk-gio.asd"
2877 #:phases
2878 (modify-phases %standard-phases
2879 (add-after 'unpack 'fix-paths
2880 (lambda* (#:key inputs #:allow-other-keys)
2881 (substitute* "gio/gio.init.lisp"
2882 (("libgio" all)
2883 (string-append
2884 (assoc-ref inputs "glib") "/lib/" all))))))))))
2885
2886 (define-public sbcl-cl-cffi-gtk-cairo
2887 (package
2888 (inherit sbcl-cl-cffi-gtk-boot0)
2889 (name "sbcl-cl-cffi-gtk-cairo")
2890 (inputs
2891 `(("cairo" ,cairo)
2892 ("cl-cffi-gtk-glib" ,sbcl-cl-cffi-gtk-glib)
2893 ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
2894 (arguments
2895 `(#:asd-file "cairo/cl-cffi-gtk-cairo.asd"
2896 #:phases
2897 (modify-phases %standard-phases
2898 (add-after 'unpack 'fix-paths
2899 (lambda* (#:key inputs #:allow-other-keys)
2900 (substitute* "cairo/cairo.init.lisp"
2901 (("libcairo" all)
2902 (string-append
2903 (assoc-ref inputs "cairo") "/lib/" all))))))))))
2904
2905 (define-public sbcl-cl-cffi-gtk-pango
2906 (package
2907 (inherit sbcl-cl-cffi-gtk-boot0)
2908 (name "sbcl-cl-cffi-gtk-pango")
2909 (inputs
2910 `(("pango" ,pango)
2911 ("cl-cffi-gtk-glib" ,sbcl-cl-cffi-gtk-glib)
2912 ("cl-cffi-gtk-gobject" ,sbcl-cl-cffi-gtk-gobject)
2913 ("cl-cffi-gtk-cairo" ,sbcl-cl-cffi-gtk-cairo)
2914 ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
2915 (arguments
2916 `(#:asd-file "pango/cl-cffi-gtk-pango.asd"
2917 #:phases
2918 (modify-phases %standard-phases
2919 (add-after 'unpack 'fix-paths
2920 (lambda* (#:key inputs #:allow-other-keys)
2921 (substitute* "pango/pango.init.lisp"
2922 (("libpango" all)
2923 (string-append
2924 (assoc-ref inputs "pango") "/lib/" all))))))))))
2925
2926 (define-public sbcl-cl-cffi-gtk-gdk-pixbuf
2927 (package
2928 (inherit sbcl-cl-cffi-gtk-boot0)
2929 (name "sbcl-cl-cffi-gtk-gdk-pixbuf")
2930 (inputs
2931 `(("gdk-pixbuf" ,gdk-pixbuf)
2932 ("cl-cffi-gtk-gobject" ,sbcl-cl-cffi-gtk-gobject)
2933 ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
2934 (arguments
2935 `(#:asd-file "gdk-pixbuf/cl-cffi-gtk-gdk-pixbuf.asd"
2936 #:phases
2937 (modify-phases %standard-phases
2938 (add-after 'unpack 'fix-paths
2939 (lambda* (#:key inputs #:allow-other-keys)
2940 (substitute* "gdk-pixbuf/gdk-pixbuf.init.lisp"
2941 (("libgdk_pixbuf" all)
2942 (string-append
2943 (assoc-ref inputs "gdk-pixbuf") "/lib/" all))))))))))
2944
2945 (define-public sbcl-cl-cffi-gtk-gdk
2946 (package
2947 (inherit sbcl-cl-cffi-gtk-boot0)
2948 (name "sbcl-cl-cffi-gtk-gdk")
2949 (inputs
2950 `(("gtk" ,gtk+)
2951 ("cl-cffi-gtk-gobject" ,sbcl-cl-cffi-gtk-gobject)
2952 ("cl-cffi-gtk-gio" ,sbcl-cl-cffi-gtk-gio)
2953 ("cl-cffi-gtk-gdk-pixbuf" ,sbcl-cl-cffi-gtk-gdk-pixbuf)
2954 ("cl-cffi-gtk-cairo" ,sbcl-cl-cffi-gtk-cairo)
2955 ("cl-cffi-gtk-pango" ,sbcl-cl-cffi-gtk-pango)
2956 ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
2957 (arguments
2958 `(#:asd-file "gdk/cl-cffi-gtk-gdk.asd"
2959 #:phases
2960 (modify-phases %standard-phases
2961 (add-after 'unpack 'fix-paths
2962 (lambda* (#:key inputs #:allow-other-keys)
2963 (substitute* "gdk/gdk.init.lisp"
2964 (("libgdk" all)
2965 (string-append
2966 (assoc-ref inputs "gtk") "/lib/" all)))
2967 (substitute* "gdk/gdk.package.lisp"
2968 (("libgtk" all)
2969 (string-append
2970 (assoc-ref inputs "gtk") "/lib/" all))))))))))
2971
2972 (define-public sbcl-cl-cffi-gtk
2973 (package
2974 (inherit sbcl-cl-cffi-gtk-boot0)
2975 (name "sbcl-cl-cffi-gtk")
2976 (inputs
2977 `(("cl-cffi-gtk-glib" ,sbcl-cl-cffi-gtk-glib)
2978 ("cl-cffi-gtk-gobject" ,sbcl-cl-cffi-gtk-gobject)
2979 ("cl-cffi-gtk-gio" ,sbcl-cl-cffi-gtk-gio)
2980 ("cl-cffi-gtk-gdk" ,sbcl-cl-cffi-gtk-gdk)
2981 ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
2982 (native-inputs
2983 `(("fiveam" ,sbcl-fiveam)))
2984 (arguments
2985 `(#:asd-file "gtk/cl-cffi-gtk.asd"
2986 #:test-asd-file "test/cl-cffi-gtk-test.asd"
2987 ;; TODO: Tests fail with memory fault.
2988 ;; See https://github.com/Ferada/cl-cffi-gtk/issues/24.
2989 #:tests? #f))))
2990
2991 (define-public cl-cffi-gtk
2992 (sbcl-package->cl-source-package sbcl-cl-cffi-gtk))
2993
2994 (define-public sbcl-cl-webkit
2995 (let ((commit "cd2a9008e0c152e54755e8a7f07b050fe36bab31"))
2996 (package
2997 (name "sbcl-cl-webkit")
2998 (version (git-version "2.4" "1" commit))
2999 (source
3000 (origin
3001 (method git-fetch)
3002 (uri (git-reference
3003 (url "https://github.com/jmercouris/cl-webkit")
3004 (commit commit)))
3005 (file-name (git-file-name "cl-webkit" version))
3006 (sha256
3007 (base32
3008 "0f5lyn9i7xrn3g1bddga377mcbawkbxydijpg389q4n04gqj0vwf"))))
3009 (build-system asdf-build-system/sbcl)
3010 (inputs
3011 `(("cffi" ,sbcl-cffi)
3012 ("cl-cffi-gtk" ,sbcl-cl-cffi-gtk)
3013 ("webkitgtk" ,webkitgtk)))
3014 (arguments
3015 `(#:asd-file "webkit2/cl-webkit2.asd"
3016 #:asd-system-name "cl-webkit2"
3017 #:phases
3018 (modify-phases %standard-phases
3019 (add-after 'unpack 'fix-paths
3020 (lambda* (#:key inputs #:allow-other-keys)
3021 (substitute* "webkit2/webkit2.init.lisp"
3022 (("libwebkit2gtk" all)
3023 (string-append
3024 (assoc-ref inputs "webkitgtk") "/lib/" all))))))))
3025 (home-page "https://github.com/jmercouris/cl-webkit")
3026 (synopsis "Binding to WebKitGTK+ for Common Lisp")
3027 (description
3028 "@command{cl-webkit} is a binding to WebKitGTK+ for Common Lisp,
3029 currently targeting WebKit version 2. The WebKitGTK+ library adds web
3030 browsing capabilities to an application, leveraging the full power of the
3031 WebKit browsing engine.")
3032 (license license:expat))))
3033
3034 (define-public cl-webkit
3035 (sbcl-package->cl-source-package sbcl-cl-webkit))
3036
3037 (define-public sbcl-lparallel
3038 (package
3039 (name "sbcl-lparallel")
3040 (version "2.8.4")
3041 (source
3042 (origin
3043 (method git-fetch)
3044 (uri (git-reference
3045 (url "https://github.com/lmj/lparallel/")
3046 (commit (string-append "lparallel-" version))))
3047 (file-name (git-file-name "lparallel" version))
3048 (sha256
3049 (base32
3050 "0g0aylrbbrqsz0ahmwhvnk4cmc2931fllbpcfgzsprwnqqd7vwq9"))))
3051 (build-system asdf-build-system/sbcl)
3052 (inputs
3053 `(("alexandria" ,sbcl-alexandria)
3054 ("bordeaux-threads" ,sbcl-bordeaux-threads)
3055 ("trivial-garbage" ,sbcl-trivial-garbage)))
3056 (home-page "https://lparallel.org/")
3057 (synopsis "Parallelism for Common Lisp")
3058 (description
3059 "@command{lparallel} is a library for parallel programming in Common
3060 Lisp, featuring:
3061
3062 @itemize
3063 @item a simple model of task submission with receiving queue,
3064 @item constructs for expressing fine-grained parallelism,
3065 @item asynchronous condition handling across thread boundaries,
3066 @item parallel versions of map, reduce, sort, remove, and many others,
3067 @item promises, futures, and delayed evaluation constructs,
3068 @item computation trees for parallelizing interconnected tasks,
3069 @item bounded and unbounded FIFO queues,
3070 @item high and low priority tasks,
3071 @item task killing by category,
3072 @item integrated timeouts.
3073 @end itemize\n")
3074 (license license:expat)))
3075
3076 (define-public cl-lparallel
3077 (sbcl-package->cl-source-package sbcl-lparallel))
3078
3079 (define-public ecl-lparallel
3080 (sbcl-package->ecl-package sbcl-lparallel))
3081
3082 (define-public sbcl-cl-markup
3083 (let ((commit "e0eb7debf4bdff98d1f49d0f811321a6a637b390"))
3084 (package
3085 (name "sbcl-cl-markup")
3086 (version (git-version "0.1" "1" commit))
3087 (source
3088 (origin
3089 (method git-fetch)
3090 (uri (git-reference
3091 (url "https://github.com/arielnetworks/cl-markup/")
3092 (commit commit)))
3093 (file-name (git-file-name "cl-markup" version))
3094 (sha256
3095 (base32
3096 "10l6k45971dl13fkdmva7zc6i453lmq9j4xax2ci6pjzlc6xjhp7"))))
3097 (build-system asdf-build-system/sbcl)
3098 (home-page "https://github.com/arielnetworks/cl-markup/")
3099 (synopsis "Markup generation library for Common Lisp")
3100 (description
3101 "A modern markup generation library for Common Lisp that features:
3102
3103 @itemize
3104 @item Fast (even faster through compiling the code)
3105 @item Safety
3106 @item Support for multiple document types (markup, xml, html, html5, xhtml)
3107 @item Output with doctype
3108 @item Direct output to stream
3109 @end itemize\n")
3110 (license license:lgpl3+))))
3111
3112 (define-public cl-markup
3113 (sbcl-package->cl-source-package sbcl-cl-markup))
3114
3115 (define-public ecl-cl-markup
3116 (sbcl-package->ecl-package sbcl-cl-markup))
3117
3118 (define-public sbcl-cl-css
3119 (let ((commit "8fe654c8f0cf95b300718101cce4feb517f78e2f"))
3120 (package
3121 (name "sbcl-cl-css")
3122 (version (git-version "0.1" "1" commit))
3123 (source
3124 (origin
3125 (method git-fetch)
3126 (uri (git-reference
3127 (url "https://github.com/inaimathi/cl-css/")
3128 (commit commit)))
3129 (file-name (git-file-name "cl-css" version))
3130 (sha256
3131 (base32
3132 "1lc42zi2sw11fl2589sc19nr5sd2p0wy7wgvgwaggxa5f3ajhsmd"))))
3133 (build-system asdf-build-system/sbcl)
3134 (home-page "https://github.com/inaimathi/cl-css/")
3135 (synopsis "Non-validating, inline CSS generator for Common Lisp")
3136 (description
3137 "This is a dead-simple, non validating, inline CSS generator for Common
3138 Lisp. Its goals are axiomatic syntax, simple implementation to support
3139 portability, and boilerplate reduction in CSS.")
3140 (license license:expat))))
3141
3142 (define-public cl-css
3143 (sbcl-package->cl-source-package sbcl-cl-css))
3144
3145 (define-public ecl-cl-css
3146 (sbcl-package->ecl-package sbcl-cl-css))
3147
3148 (define-public sbcl-portable-threads
3149 (let ((commit "c0e61a1faeb0583c80fd3f20b16cc4c555226920"))
3150 (package
3151 (name "sbcl-portable-threads")
3152 (version (git-version "2.3" "1" commit))
3153 (source
3154 (origin
3155 (method git-fetch)
3156 (uri (git-reference
3157 (url "https://github.com/binghe/portable-threads/")
3158 (commit commit)))
3159 (file-name (git-file-name "portable-threads" version))
3160 (sha256
3161 (base32
3162 "03fmxyarc0xf4kavwkfa0a2spkyfrz6hbgbi9y4q7ny5aykdyfaq"))))
3163 (build-system asdf-build-system/sbcl)
3164 (arguments
3165 `(;; Tests seem broken.
3166 #:tests? #f))
3167 (home-page "https://github.com/binghe/portable-threads")
3168 (synopsis "Portable threads (and scheduled and periodic functions) API for Common Lisp")
3169 (description
3170 "Portable Threads (and Scheduled and Periodic Functions) API for Common
3171 Lisp (from GBBopen project).")
3172 (license license:asl2.0))))
3173
3174 (define-public cl-portable-threads
3175 (sbcl-package->cl-source-package sbcl-portable-threads))
3176
3177 (define-public ecl-portable-threada
3178 (sbcl-package->ecl-package sbcl-portable-threads))
3179
3180 (define-public sbcl-usocket-boot0
3181 ;; usocket's test rely on usocket-server which depends on usocket itself.
3182 ;; We break this cyclic dependency with -boot0 that packages usocket.
3183 (let ((commit "86e7efbfe50101931edf4b67cdcfa7e221ecfde9"))
3184 (package
3185 (name "sbcl-usocket-boot0")
3186 (version (git-version "0.7.1" "1" commit))
3187 (source
3188 (origin
3189 (method git-fetch)
3190 (uri (git-reference
3191 (url "https://github.com/usocket/usocket/")
3192 (commit commit)))
3193 (file-name (git-file-name "usocket" version))
3194 (sha256
3195 (base32
3196 "1lk6ipakrib7kdgzw44hrgmls9akp5pz4h35yynw0k5zwmmq6374"))))
3197 (build-system asdf-build-system/sbcl)
3198 (inputs
3199 `(("split-sequence" ,sbcl-split-sequence)))
3200 (arguments
3201 `(#:tests? #f
3202 #:asd-system-name "usocket"))
3203 (home-page "https://common-lisp.net/project/usocket/")
3204 (synopsis "Universal socket library for Common Lisp (server side)")
3205 (description
3206 "This library strives to provide a portable TCP/IP and UDP/IP socket
3207 interface for as many Common Lisp implementations as possible, while keeping
3208 the abstraction and portability layer as thin as possible.")
3209 (license license:expat))))
3210
3211 (define-public sbcl-usocket-server
3212 (package
3213 (inherit sbcl-usocket-boot0)
3214 (name "sbcl-usocket-server")
3215 (inputs
3216 `(("usocket" ,sbcl-usocket-boot0)
3217 ("portable-threads" ,sbcl-portable-threads)))
3218 (arguments
3219 '(#:asd-system-name "usocket-server"))
3220 (synopsis "Universal socket library for Common Lisp (server side)")))
3221
3222 (define-public cl-usocket-server
3223 (sbcl-package->cl-source-package sbcl-usocket-server))
3224
3225 (define-public ecl-socket-server
3226 (sbcl-package->ecl-package sbcl-usocket-server))
3227
3228 (define-public sbcl-usocket
3229 (package
3230 (inherit sbcl-usocket-boot0)
3231 (name "sbcl-usocket")
3232 (arguments
3233 ;; FIXME: Tests need network access?
3234 `(#:tests? #f))
3235 (native-inputs
3236 ;; Testing only.
3237 `(("usocket-server" ,sbcl-usocket-server)
3238 ("rt" ,sbcl-rt)))))
3239
3240 (define-public cl-usocket
3241 (sbcl-package->cl-source-package sbcl-usocket))
3242
3243 (define-public ecl-socket
3244 (sbcl-package->ecl-package sbcl-usocket))
3245
3246 (define-public sbcl-s-xml
3247 (package
3248 (name "sbcl-s-xml")
3249 (version "3")
3250 (source
3251 (origin
3252 (method url-fetch)
3253 (uri "https://common-lisp.net/project/s-xml/s-xml.tgz")
3254 (sha256
3255 (base32
3256 "061qcr0dzshsa38s5ma4ay924cwak2nq9gy59dw6v9p0qb58nzjf"))))
3257 (build-system asdf-build-system/sbcl)
3258 (home-page "https://common-lisp.net/project/s-xml/")
3259 (synopsis "Simple XML parser implemented in Common Lisp")
3260 (description
3261 "S-XML is a simple XML parser implemented in Common Lisp. This XML
3262 parser implementation has the following features:
3263
3264 @itemize
3265 @item It works (handling many common XML usages).
3266 @item It is very small (the core is about 700 lines of code, including
3267 comments and whitespace).
3268 @item It has a core API that is simple, efficient and pure functional, much
3269 like that from SSAX (see also http://ssax.sourceforge.net).
3270 @item It supports different DOM models: an XSML-based one, an LXML-based one
3271 and a classic xml-element struct based one.
3272 @item It is reasonably time and space efficient (internally avoiding garbage
3273 generatation as much as possible).
3274 @item It does support CDATA.
3275 @item It should support the same character sets as your Common Lisp
3276 implementation.
3277 @item It does support XML name spaces.
3278 @end itemize
3279
3280 This XML parser implementation has the following limitations:
3281
3282 @itemize
3283 @item It does not support any special tags (like processing instructions).
3284 @item It is not validating, even skips DTD's all together.
3285 @end itemize\n")
3286 (license license:lgpl3+)))
3287
3288 (define-public cl-s-xml
3289 (sbcl-package->cl-source-package sbcl-s-xml))
3290
3291 (define-public ecl-s-xml
3292 (sbcl-package->ecl-package sbcl-s-xml))
3293
3294 (define-public sbcl-s-xml-rpc
3295 (package
3296 (name "sbcl-s-xml-rpc")
3297 (version "7")
3298 (source
3299 (origin
3300 (method url-fetch)
3301 (uri "https://common-lisp.net/project/s-xml-rpc/s-xml-rpc.tgz")
3302 (sha256
3303 (base32
3304 "02z7k163d51v0pzk8mn1xb6h5s6x64gjqkslhwm3a5x26k2gfs11"))))
3305 (build-system asdf-build-system/sbcl)
3306 (inputs
3307 `(("s-xml" ,sbcl-s-xml)))
3308 (home-page "https://common-lisp.net/project/s-xml-rpc/")
3309 (synopsis "Implementation of XML-RPC in Common Lisp for both client and server")
3310 (description
3311 "S-XML-RPC is an implementation of XML-RPC in Common Lisp for both
3312 client and server.")
3313 (license license:lgpl3+)))
3314
3315 (define-public cl-s-xml-rpc
3316 (sbcl-package->cl-source-package sbcl-s-xml-rpc))
3317
3318 (define-public ecl-s-xml-rpc
3319 (sbcl-package->ecl-package sbcl-s-xml-rpc))
3320
3321 (define-public sbcl-trivial-clipboard
3322 (let ((commit "5af3415d1484e6d69a1b5c178f24680d9fd01796"))
3323 (package
3324 (name "sbcl-trivial-clipboard")
3325 (version (git-version "0.0.0.0" "2" commit))
3326 (source
3327 (origin
3328 (method git-fetch)
3329 (uri (git-reference
3330 (url "https://github.com/snmsts/trivial-clipboard")
3331 (commit commit)))
3332 (file-name (git-file-name "trivial-clipboard" version))
3333 (sha256
3334 (base32
3335 "1gb515z5yq6h5548pb1fwhmb0hhq1ssyb78pvxh4alq799xipxs9"))))
3336 (build-system asdf-build-system/sbcl)
3337 (inputs
3338 `(("xclip" ,xclip)))
3339 (native-inputs
3340 `(("fiveam" ,sbcl-fiveam)))
3341 (arguments
3342 `(#:phases
3343 (modify-phases %standard-phases
3344 (add-after 'unpack 'fix-paths
3345 (lambda* (#:key inputs #:allow-other-keys)
3346 (substitute* "src/text.lisp"
3347 (("\\(executable-find \"xclip\"\\)")
3348 (string-append "(executable-find \""
3349 (assoc-ref inputs "xclip")
3350 "/bin/xclip\")"))))))))
3351 (home-page "https://github.com/snmsts/trivial-clipboard")
3352 (synopsis "Access system clipboard in Common Lisp")
3353 (description
3354 "@command{trivial-clipboard} gives access to the system clipboard.")
3355 (license license:expat))))
3356
3357 (define-public cl-trivial-clipboard
3358 (sbcl-package->cl-source-package sbcl-trivial-clipboard))
3359
3360 (define-public ecl-trivial-clipboard
3361 (sbcl-package->ecl-package sbcl-trivial-clipboard))
3362
3363 (define-public sbcl-trivial-backtrace
3364 (let ((commit "ca81c011b86424a381a7563cea3b924f24e6fbeb")
3365 (revision "1"))
3366 (package
3367 (name "sbcl-trivial-backtrace")
3368 (version (git-version "0.0.0" revision commit))
3369 (source
3370 (origin
3371 (method git-fetch)
3372 (uri (git-reference
3373 (url "https://github.com/gwkkwg/trivial-backtrace.git")
3374 (commit commit)))
3375 (file-name (git-file-name "trivial-backtrace" version))
3376 (sha256
3377 (base32 "10p41p43skj6cimdg8skjy7372s8v2xpkg8djjy0l8rm45i654k1"))))
3378 (build-system asdf-build-system/sbcl)
3379 (inputs
3380 `(("sbcl-lift" ,sbcl-lift)))
3381 (arguments
3382 `(#:phases
3383 (modify-phases %standard-phases
3384 (add-after 'check 'delete-test-results
3385 (lambda* (#:key outputs #:allow-other-keys)
3386 (let ((test-results (string-append (assoc-ref outputs "out")
3387 "/share/common-lisp/"
3388 (%lisp-type) "-source"
3389 "/trivial-backtrace"
3390 "/test-results")))
3391 (when (file-exists? test-results)
3392 (delete-file-recursively test-results)))
3393 #t)))))
3394 (home-page "https://common-lisp.net/project/trivial-backtrace/")
3395 (synopsis "Portable simple API to work with backtraces in Common Lisp")
3396 (description
3397 "On of the many things that didn't quite get into the Common Lisp
3398 standard was how to get a Lisp to output its call stack when something has
3399 gone wrong. As such, each Lisp has developed its own notion of what to
3400 display, how to display it, and what sort of arguments can be used to
3401 customize it. @code{trivial-backtrace} is a simple solution to generating a
3402 backtrace portably.")
3403 (license license:expat))))
3404
3405 (define-public cl-trivial-backtrace
3406 (sbcl-package->cl-source-package sbcl-trivial-backtrace))
3407
3408 (define-public sbcl-rfc2388
3409 (let ((commit "591bcf7e77f2c222c43953a80f8c297751dc0c4e")
3410 (revision "1"))
3411 (package
3412 (name "sbcl-rfc2388")
3413 (version (git-version "0.0.0" revision commit))
3414 (source
3415 (origin
3416 (method git-fetch)
3417 (uri (git-reference
3418 (url "https://github.com/jdz/rfc2388.git")
3419 (commit commit)))
3420 (file-name (git-file-name "rfc2388" version))
3421 (sha256
3422 (base32 "0phh5n3clhl9ji8jaxrajidn22d3f0aq87mlbfkkxlnx2pnw694k"))))
3423 (build-system asdf-build-system/sbcl)
3424 (home-page "https://github.com/jdz/rfc2388/")
3425 (synopsis "An implementation of RFC 2388 in Common Lisp")
3426 (description
3427 "This package contains an implementation of RFC 2388, which is used to
3428 process form data posted with HTTP POST method using enctype
3429 \"multipart/form-data\".")
3430 (license license:bsd-2))))
3431
3432 (define-public cl-rfc2388
3433 (sbcl-package->cl-source-package sbcl-rfc2388))
3434
3435 (define-public sbcl-md5
3436 (package
3437 (name "sbcl-md5")
3438 (version "2.0.4")
3439 (source
3440 (origin
3441 (method url-fetch)
3442 (uri (string-append
3443 "https://github.com/pmai/md5/archive/release-" version ".tar.gz"))
3444 (sha256
3445 (base32 "19yl9n0pjdz5gw4qi711lka97xcd9f81ylg434hk7jwn9f2s6w11"))))
3446 (build-system asdf-build-system/sbcl)
3447 (home-page "https://github.com/pmai/md5")
3448 (synopsis
3449 "Common Lisp implementation of the MD5 Message-Digest Algorithm (RFC 1321)")
3450 (description
3451 "This package implements The MD5 Message-Digest Algorithm, as defined in
3452 RFC 1321 by R. Rivest, published April 1992.")
3453 (license license:public-domain)))
3454
3455 (define-public cl-md5
3456 (sbcl-package->cl-source-package sbcl-md5))
3457
3458 (define-public sbcl-cl+ssl
3459 (let ((commit "141ae91416bc40f1618dc07e48429b84388aa599")
3460 (revision "1"))
3461 (package
3462 (name "sbcl-cl+ssl")
3463 (version (git-version "0.0.0" revision commit))
3464 (source
3465 (origin
3466 (method git-fetch)
3467 (uri (git-reference
3468 (url "https://github.com/cl-plus-ssl/cl-plus-ssl.git")
3469 (commit commit)))
3470 (file-name (git-file-name "cl+ssl" version))
3471 (sha256
3472 (base32 "1s0hg1h9sf8q89v0yrxmzg5f5sng29rgx3n21r9h9yql8351myan"))))
3473 (build-system asdf-build-system/sbcl)
3474 (arguments
3475 '(#:phases
3476 (modify-phases %standard-phases
3477 (add-after 'unpack 'fix-paths
3478 (lambda* (#:key inputs #:allow-other-keys)
3479 (substitute* "src/reload.lisp"
3480 (("libssl.so" all)
3481 (string-append
3482 (assoc-ref inputs "openssl") "/lib/" all))))))))
3483 (inputs
3484 `(("openssl" ,openssl)
3485 ("sbcl-cffi" ,sbcl-cffi)
3486 ("sbcl-trivial-gray-streams" ,sbcl-trivial-gray-streams)
3487 ("sbcl-flexi-streams" ,sbcl-flexi-streams)
3488 ("sbcl-bordeaux-threads" ,sbcl-bordeaux-threads)
3489 ("sbcl-trivial-garbage" ,sbcl-trivial-garbage)
3490 ("sbcl-alexandria" ,sbcl-alexandria)
3491 ("sbcl-trivial-features" ,sbcl-trivial-features)))
3492 (home-page "http://common-lisp.net/project/cl-plus-ssl/")
3493 (synopsis "Common Lisp bindings to OpenSSL")
3494 (description
3495 "This library is a fork of SSL-CMUCL. The original SSL-CMUCL source
3496 code was written by Eric Marsden and includes contributions by Jochen Schmidt.
3497 Development into CL+SSL was done by David Lichteblau.")
3498 (license license:expat))))
3499
3500 (define-public cl-cl+ssl
3501 (sbcl-package->cl-source-package sbcl-cl+ssl))
3502
3503 (define-public sbcl-kmrcl
3504 (let ((version "1.109.0")
3505 (commit "5260068b2eb735af6796740c2db4955afac21636")
3506 (revision "1"))
3507 (package
3508 (name "sbcl-kmrcl")
3509 (version (git-version version revision commit))
3510 (source
3511 (origin
3512 (method git-fetch)
3513 (uri (git-reference
3514 (url "http://git.kpe.io/kmrcl.git/")
3515 (commit commit)))
3516 (file-name (git-file-name name version))
3517 (sha256
3518 (base32 "1va7xjgzfv674bpsli674i7zj3f7wg5kxic41kz18r6hh4n52dfv"))))
3519 (build-system asdf-build-system/sbcl)
3520 (arguments
3521 ;; Tests fail with: :FORCE and :FORCE-NOT arguments not allowed in a
3522 ;; nested call to ASDF/OPERATE:OPERATE unless identically to toplevel
3523 '(#:tests? #f))
3524 (inputs
3525 `(("sbcl-rt" ,sbcl-rt)))
3526 (home-page "http://files.kpe.io/kmrcl/")
3527 (synopsis "General utilities for Common Lisp programs")
3528 (description
3529 "KMRCL is a collection of utilities used by a number of Kevin
3530 Rosenberg's CL packages.")
3531 (license license:llgpl))))
3532
3533 (define-public cl-kmrcl
3534 (sbcl-package->cl-source-package sbcl-kmrcl))
3535
3536 (define-public sbcl-cl-base64
3537 (let ((version "3.3.3"))
3538 (package
3539 (name "sbcl-cl-base64")
3540 (version version)
3541 (source
3542 (origin
3543 (method git-fetch)
3544 (uri (git-reference
3545 (url "http://git.kpe.io/cl-base64.git")
3546 (commit (string-append "v" version))))
3547 (file-name (git-file-name "cl-base64" version))
3548 (sha256
3549 (base32 "1dw6j7n6gsd2qa0p0rbsjxj00acxx3i9ca1qkgl0liy8lpnwkypl"))))
3550 (build-system asdf-build-system/sbcl)
3551 (arguments
3552 ;; Tests fail with: :FORCE and :FORCE-NOT arguments not allowed
3553 ;; in a nested call to ASDF/OPERATE:OPERATE unless identically
3554 ;; to toplevel
3555 '(#:tests? #f))
3556 (inputs
3557 `(("sbcl-ptester" ,sbcl-ptester)
3558 ("sbcl-kmrcl" ,sbcl-kmrcl)))
3559 (home-page "http://files.kpe.io/cl-base64/")
3560 (synopsis
3561 "Common Lisp package to encode and decode base64 with URI support")
3562 (description
3563 "This package provides highly optimized base64 encoding and decoding.
3564 Besides conversion to and from strings, integer conversions are supported.
3565 Encoding with Uniform Resource Identifiers is supported by using a modified
3566 encoding table that uses only URI-compatible characters.")
3567 (license license:bsd-3))))
3568
3569 (define-public cl-base64
3570 (sbcl-package->cl-source-package sbcl-cl-base64))
3571
3572 (define-public sbcl-chunga
3573 (package
3574 (name "sbcl-chunga")
3575 (version "1.1.7")
3576 (source
3577 (origin
3578 (method git-fetch)
3579 (uri (git-reference
3580 (url "https://github.com/edicl/chunga.git")
3581 (commit (string-append "v" version))))
3582 (file-name (git-file-name name version))
3583 (sha256
3584 (base32 "0jzn3nyb3f22gm983rfk99smqs3mhb9ivjmasvhq9qla5cl9pyhd"))))
3585 (build-system asdf-build-system/sbcl)
3586 (inputs
3587 `(("sbcl-trivial-gray-streams" ,sbcl-trivial-gray-streams)))
3588 (home-page "https://edicl.github.io/chunga/")
3589 (synopsis "Portable chunked streams for Common Lisp")
3590 (description
3591 "Chunga implements streams capable of chunked encoding on demand as
3592 defined in RFC 2616.")
3593 (license license:bsd-2)))
3594
3595 (define-public cl-chunga
3596 (sbcl-package->cl-source-package sbcl-chunga))
3597
3598 (define-public sbcl-cl-who
3599 (let ((version "1.1.4")
3600 (commit "2c08caa4bafba720409af9171feeba3f32e86d32")
3601 (revision "1"))
3602 (package
3603 (name "sbcl-cl-who")
3604 (version (git-version version revision commit))
3605 (source
3606 (origin
3607 (method git-fetch)
3608 (uri (git-reference
3609 (url "https://github.com/edicl/cl-who.git")
3610 (commit commit)))
3611 (file-name (git-file-name name version))
3612 (sha256
3613 (base32
3614 "0yjb6sr3yazm288m318kqvj9xk8rm9n1lpimgf65ymqv0i5agxsb"))))
3615 (build-system asdf-build-system/sbcl)
3616 (native-inputs
3617 `(("sbcl-flexi-streams" ,sbcl-flexi-streams)))
3618 (home-page "https://edicl.github.io/cl-who/")
3619 (synopsis "Yet another Lisp markup language")
3620 (description
3621 "There are plenty of Lisp Markup Languages out there - every Lisp
3622 programmer seems to write at least one during his career - and CL-WHO (where
3623 WHO means \"with-html-output\" for want of a better acronym) is probably just
3624 as good or bad as the next one.")
3625 (license license:bsd-2))))
3626
3627 (define-public cl-cl-who
3628 (sbcl-package->cl-source-package sbcl-cl-who))
3629
3630 (define-public sbcl-chipz
3631 (let ((version "0.8")
3632 (commit "75dfbc660a5a28161c57f115adf74c8a926bfc4d")
3633 (revision "1"))
3634 (package
3635 (name "sbcl-chipz")
3636 (version (git-version version revision commit))
3637 (source
3638 (origin
3639 (method git-fetch)
3640 (uri (git-reference
3641 (url "https://github.com/froydnj/chipz.git")
3642 (commit commit)))
3643 (file-name (git-file-name name version))
3644 (sha256
3645 (base32
3646 "0plx4rs39zbs4gjk77h4a2q11zpy75fh9v8hnxrvsf8fnakajhwg"))))
3647 (build-system asdf-build-system/sbcl)
3648 (native-inputs
3649 `(("sbcl-flexi-streams" ,sbcl-flexi-streams)))
3650 (home-page "http://method-combination.net/lisp/chipz/")
3651 (synopsis
3652 "Common Lisp library for decompressing deflate, zlib, gzip, and bzip2
3653 data")
3654 (description
3655 "DEFLATE data, defined in RFC1951, forms the core of popular
3656 compression formats such as zlib (RFC 1950) and gzip (RFC 1952). As such,
3657 Chipz also provides for decompressing data in those formats as well. BZIP2 is
3658 the format used by the popular compression tool bzip2.")
3659 ;; The author describes it as "MIT-like"
3660 (license license:expat))))
3661
3662 (define-public cl-chipz
3663 (sbcl-package->cl-source-package sbcl-chipz))
3664
3665 (define-public sbcl-drakma
3666 (let ((version "2.0.4")
3667 (commit "7647c0ae842ff2058624e53979c7f297760c97a7")
3668 (revision "1"))
3669 (package
3670 (name "sbcl-drakma")
3671 (version (git-version version revision commit))
3672 (source
3673 (origin
3674 (method git-fetch)
3675 (uri (git-reference
3676 (url "https://github.com/edicl/drakma.git")
3677 (commit commit)))
3678 (file-name (git-file-name name version))
3679 (sha256
3680 (base32
3681 "1c4i9wakhj5pxfyyykxshdmv3180sbkrx6fcyynikmc0jd0rh84r"))))
3682 (build-system asdf-build-system/sbcl)
3683 (inputs
3684 `(("sbcl-puri" ,sbcl-puri)
3685 ("sbcl-cl-base64" ,sbcl-cl-base64)
3686 ("sbcl-chunga" ,sbcl-chunga)
3687 ("sbcl-flexi-streams" ,sbcl-flexi-streams)
3688 ("sbcl-cl-ppcre" ,sbcl-cl-ppcre)
3689 ("sbcl-chipz" ,sbcl-chipz)
3690 ("sbcl-usocket" ,sbcl-usocket)
3691 ("sbcl-cl+ssl" ,sbcl-cl+ssl)))
3692 (native-inputs
3693 `(("sbcl-fiveam" ,sbcl-fiveam)))
3694 (home-page "https://edicl.github.io/drakma/")
3695 (synopsis "HTTP client written in Common Lisp")
3696 (description
3697 "Drakma is a full-featured HTTP client implemented in Common Lisp. It
3698 knows how to handle HTTP/1.1 chunking, persistent connections, re-usable
3699 sockets, SSL, continuable uploads, file uploads, cookies, and more.")
3700 (license license:bsd-2))))
3701
3702 (define-public cl-drakma
3703 (sbcl-package->cl-source-package sbcl-drakma))
3704
3705 (define-public sbcl-hunchentoot
3706 (package
3707 (name "sbcl-hunchentoot")
3708 (version "1.2.38")
3709 (source
3710 (origin
3711 (method git-fetch)
3712 (uri (git-reference
3713 (url "https://github.com/edicl/hunchentoot.git")
3714 (commit (string-append "v" version))))
3715 (file-name (git-file-name "hunchentoot" version))
3716 (sha256
3717 (base32 "1anpcad7w045m4rsjs1f3xdhjwx5cppq1h0vlb3q7dz81fi3i6yq"))))
3718 (build-system asdf-build-system/sbcl)
3719 (native-inputs
3720 `(("sbcl-cl-who" ,sbcl-cl-who)
3721 ("sbcl-drakma" ,sbcl-drakma)))
3722 (inputs
3723 `(("sbcl-chunga" ,sbcl-chunga)
3724 ("sbcl-cl-base64" ,sbcl-cl-base64)
3725 ("sbcl-cl-fad" ,sbcl-cl-fad)
3726 ("sbcl-cl-ppcre" ,sbcl-cl-ppcre)
3727 ("sbcl-flexi-streams" ,sbcl-flexi-streams)
3728 ("sbcl-cl+ssl" ,sbcl-cl+ssl)
3729 ("sbcl-md5" ,sbcl-md5)
3730 ("sbcl-rfc2388" ,sbcl-rfc2388)
3731 ("sbcl-trivial-backtrace" ,sbcl-trivial-backtrace)
3732 ("sbcl-usocket" ,sbcl-usocket)))
3733 (home-page "https://edicl.github.io/hunchentoot/")
3734 (synopsis "Web server written in Common Lisp")
3735 (description
3736 "Hunchentoot is a web server written in Common Lisp and at the same
3737 time a toolkit for building dynamic websites. As a stand-alone web server,
3738 Hunchentoot is capable of HTTP/1.1 chunking (both directions), persistent
3739 connections (keep-alive), and SSL.")
3740 (license license:bsd-2)))
3741
3742 (define-public cl-hunchentoot
3743 (sbcl-package->cl-source-package sbcl-hunchentoot))
3744
3745 (define-public sbcl-trivial-types
3746 (package
3747 (name "sbcl-trivial-types")
3748 (version "0.0.1")
3749 (source
3750 (origin
3751 (method git-fetch)
3752 (uri (git-reference
3753 (url "https://github.com/m2ym/trivial-types.git")
3754 (commit "ee869f2b7504d8aa9a74403641a5b42b16f47d88")))
3755 (file-name (git-file-name name version))
3756 (sha256
3757 (base32 "1s4cp9bdlbn8447q7w7f1wkgwrbvfzp20mgs307l5pxvdslin341"))))
3758 (build-system asdf-build-system/sbcl)
3759 (home-page "https://github.com/m2ym/trivial-types")
3760 (synopsis "Trivial type definitions for Common Lisp")
3761 (description
3762 "TRIVIAL-TYPES provides missing but important type definitions such as
3763 PROPER-LIST, ASSOCIATION-LIST, PROPERTY-LIST and TUPLE.")
3764 (license license:llgpl)))
3765
3766 (define-public cl-trivial-types
3767 (sbcl-package->cl-source-package sbcl-trivial-types))
3768
3769 (define-public sbcl-cl-syntax
3770 (package
3771 (name "sbcl-cl-syntax")
3772 (version "0.0.3")
3773 (source
3774 (origin
3775 (method git-fetch)
3776 (uri (git-reference
3777 (url "https://github.com/m2ym/cl-syntax.git")
3778 (commit "03f0c329bbd55b8622c37161e6278366525e2ccc")))
3779 (file-name (git-file-name "cl-syntax" version))
3780 (sha256
3781 (base32 "17ran8xp77asagl31xv8w819wafh6whwfc9p6dgx22ca537gyl4y"))))
3782 (build-system asdf-build-system/sbcl)
3783 (arguments
3784 '(#:asd-file "cl-syntax.asd"
3785 #:asd-system-name "cl-syntax"))
3786 (inputs `(("sbcl-trivial-types" ,sbcl-trivial-types)
3787 ("sbcl-named-readtables" ,sbcl-named-readtables)))
3788 (home-page "https://github.com/m2ym/cl-syntax")
3789 (synopsis "Reader Syntax Coventions for Common Lisp and SLIME")
3790 (description
3791 "CL-SYNTAX provides Reader Syntax Coventions for Common Lisp and SLIME.")
3792 (license license:llgpl)))
3793
3794 (define-public cl-syntax
3795 (sbcl-package->cl-source-package sbcl-cl-syntax))
3796
3797 (define-public sbcl-cl-annot
3798 (let ((commit "c99e69c15d935eabc671b483349a406e0da9518d")
3799 (revision "1"))
3800 (package
3801 (name "sbcl-cl-annot")
3802 (version (git-version "0.0.0" revision commit))
3803 (source
3804 (origin
3805 (method git-fetch)
3806 (uri (git-reference
3807 (url "https://github.com/m2ym/cl-annot.git")
3808 (commit commit)))
3809 (file-name (git-file-name name version))
3810 (sha256
3811 (base32 "1wq1gs9jjd5m6iwrv06c2d7i5dvqsfjcljgbspfbc93cg5xahk4n"))))
3812 (build-system asdf-build-system/sbcl)
3813 (arguments
3814 '(#:asd-file "cl-annot.asd"
3815 #:asd-system-name "cl-annot"))
3816 (inputs
3817 `(("sbcl-alexandria" ,sbcl-alexandria)))
3818 (home-page "https://github.com/m2ym/cl-annot")
3819 (synopsis "Python-like Annotation Syntax for Common Lisp.")
3820 (description
3821 "@code{cl-annot} is an general annotation library for Common Lisp.")
3822 (license license:llgpl))))
3823
3824 (define-public cl-annot
3825 (sbcl-package->cl-source-package sbcl-cl-annot))
3826
3827 (define-public sbcl-cl-syntax-annot
3828 (package
3829 (name "sbcl-cl-syntax-annot")
3830 (version "0.0.3")
3831 (source
3832 (origin
3833 (method git-fetch)
3834 (uri (git-reference
3835 (url "https://github.com/m2ym/cl-syntax.git")
3836 (commit "03f0c329bbd55b8622c37161e6278366525e2ccc")))
3837 (file-name (git-file-name name version))
3838 (sha256
3839 (base32 "17ran8xp77asagl31xv8w819wafh6whwfc9p6dgx22ca537gyl4y"))))
3840 (build-system asdf-build-system/sbcl)
3841 (arguments
3842 '(#:asd-file "cl-syntax-annot.asd"
3843 #:asd-system-name "cl-syntax-annot"))
3844 (inputs
3845 `(("sbcl-cl-syntax" ,sbcl-cl-syntax)
3846 ("sbcl-cl-annot" ,sbcl-cl-annot)))
3847 (home-page "https://github.com/m2ym/cl-syntax")
3848 (synopsis "Reader Syntax Coventions for Common Lisp and SLIME")
3849 (description
3850 "CL-SYNTAX provides Reader Syntax Coventions for Common Lisp and
3851 SLIME.")
3852 (license license:llgpl)))
3853
3854 (define-public cl-syntax-annot
3855 (sbcl-package->cl-source-package sbcl-cl-syntax-annot))
3856
3857 (define-public sbcl-cl-utilities
3858 (let ((commit "dce2d2f6387091ea90357a130fa6d13a6776884b")
3859 (revision "1"))
3860 (package
3861 (name "sbcl-cl-utilities")
3862 (version (git-version "0.0.0" revision commit))
3863 (source
3864 (origin
3865 (method url-fetch)
3866 (uri
3867 (string-append
3868 "https://gitlab.common-lisp.net/cl-utilities/cl-utilities/-/"
3869 "archive/" commit "/cl-utilities-" commit ".tar.gz"))
3870 (sha256
3871 (base32 "1r46v730yf96nk2vb24qmagv9x96xvd08abqwhf02ghgydv1a7z2"))))
3872 (build-system asdf-build-system/sbcl)
3873 (arguments
3874 '(#:asd-file "cl-utilities.asd"
3875 #:asd-system-name "cl-utilities"
3876 #:phases
3877 (modify-phases %standard-phases
3878 (add-after 'unpack 'fix-paths
3879 (lambda* (#:key inputs #:allow-other-keys)
3880 (substitute* "rotate-byte.lisp"
3881 (("in-package :cl-utilities)" all)
3882 "in-package :cl-utilities)\n\n#+sbcl\n(require :sb-rotate-byte)")))))))
3883 (home-page "http://common-lisp.net/project/cl-utilities")
3884 (synopsis "A collection of semi-standard utilities")
3885 (description
3886 "On Cliki.net <http://www.cliki.net/Common%20Lisp%20Utilities>, there
3887 is a collection of Common Lisp Utilities, things that everybody writes since
3888 they're not part of the official standard. There are some very useful things
3889 there; the only problems are that they aren't implemented as well as you'd
3890 like (some aren't implemented at all) and they aren't conveniently packaged
3891 and maintained. It takes quite a bit of work to carefully implement utilities
3892 for common use, commented and documented, with error checking placed
3893 everywhere some dumb user might make a mistake.")
3894 (license license:public-domain))))
3895
3896 (define-public cl-utilities
3897 (sbcl-package->cl-source-package sbcl-cl-utilities))
3898
3899 (define-public sbcl-map-set
3900 (let ((commit "7b4b545b68b8")
3901 (revision "1"))
3902 (package
3903 (name "sbcl-map-set")
3904 (version (git-version "0.0.0" revision commit))
3905 (source
3906 (origin
3907 (method url-fetch)
3908 (uri (string-append
3909 "https://bitbucket.org/tarballs_are_good/map-set/get/"
3910 commit ".tar.gz"))
3911 (sha256
3912 (base32 "1sx5j5qdsy5fklspfammwb16kjrhkggdavm922a9q86jm5l0b239"))))
3913 (build-system asdf-build-system/sbcl)
3914 (home-page "https://bitbucket.org/tarballs_are_good/map-set")
3915 (synopsis "Set-like data structure")
3916 (description
3917 "Implementation of a set-like data structure with constant time
3918 addition, removal, and random selection.")
3919 (license license:bsd-3))))
3920
3921 (define-public cl-map-set
3922 (sbcl-package->cl-source-package sbcl-map-set))
3923
3924 (define-public sbcl-quri
3925 (let ((commit "76b75103f21ead092c9f715512fa82441ef61185")
3926 (revision "1"))
3927 (package
3928 (name "sbcl-quri")
3929 (version (git-version "0.1.0" revision commit))
3930 (source
3931 (origin
3932 (method git-fetch)
3933 (uri (git-reference
3934 (url "https://github.com/fukamachi/quri.git")
3935 (commit commit)))
3936 (file-name (git-file-name name version))
3937 (sha256
3938 (base32 "1ccbxsgzdibmzq33mmbmmz9vwl6l03xh6nbpsh1hkdvdcl7q0a60"))))
3939 (build-system asdf-build-system/sbcl)
3940 (arguments
3941 ;; Tests fail with: Component QURI-ASD::QURI-TEST not found,
3942 ;; required by #<SYSTEM "quri">. Why?
3943 '(#:tests? #f))
3944 (native-inputs `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
3945 ("sbcl-prove" ,sbcl-prove)))
3946 (inputs `(("sbcl-babel" ,sbcl-babel)
3947 ("sbcl-split-sequence" ,sbcl-split-sequence)
3948 ("sbcl-cl-utilities" ,sbcl-cl-utilities)
3949 ("sbcl-alexandria" ,sbcl-alexandria)))
3950 (home-page "https://github.com/fukamachi/quri")
3951 (synopsis "Yet another URI library for Common Lisp")
3952 (description
3953 "QURI (pronounced \"Q-ree\") is yet another URI library for Common
3954 Lisp. It is intended to be a replacement of PURI.")
3955 (license license:bsd-3))))
3956
3957 (define-public cl-quri
3958 (sbcl-package->cl-source-package sbcl-quri))
3959
3960 (define-public sbcl-myway
3961 (let ((commit "286230082a11f879c18b93f17ca571c5f676bfb7")
3962 (revision "1"))
3963 (package
3964 (name "sbcl-myway")
3965 (version (git-version "0.1.0" revision commit))
3966 (source
3967 (origin
3968 (method git-fetch)
3969 (uri (git-reference
3970 (url "https://github.com/fukamachi/myway.git")
3971 (commit commit)))
3972 (file-name (git-file-name "myway" version))
3973 (sha256
3974 (base32 "0briia9bk3lbr0frnx39d1qg6i38dm4j6z9w3yga3d40k6df4a90"))))
3975 (build-system asdf-build-system/sbcl)
3976 (arguments
3977 ;; Tests fail with: Component MYWAY-ASD::MYWAY-TEST not found, required
3978 ;; by #<SYSTEM "myway">. Why?
3979 '(#:tests? #f))
3980 (native-inputs
3981 `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
3982 ("sbcl-prove" ,sbcl-prove)))
3983 (inputs
3984 `(("sbcl-cl-ppcre" ,sbcl-cl-ppcre)
3985 ("sbcl-quri" ,sbcl-quri)
3986 ("sbcl-map-set" ,sbcl-map-set)))
3987 (home-page "https://github.com/fukamachi/myway")
3988 (synopsis "Sinatra-compatible URL routing library for Common Lisp")
3989 (description "My Way is a Sinatra-compatible URL routing library.")
3990 (license license:llgpl))))
3991
3992 (define-public cl-myway
3993 (sbcl-package->cl-source-package sbcl-myway))
3994
3995 (define-public sbcl-xsubseq
3996 (let ((commit "5ce430b3da5cda3a73b9cf5cee4df2843034422b")
3997 (revision "1"))
3998 (package
3999 (name "sbcl-xsubseq")
4000 (version (git-version "0.0.1" revision commit))
4001 (source
4002 (origin
4003 (method git-fetch)
4004 (uri (git-reference
4005 (url "https://github.com/fukamachi/xsubseq")
4006 (commit commit)))
4007 (file-name (git-file-name name version))
4008 (sha256
4009 (base32 "1xz79q0p2mclf3sqjiwf6izdpb6xrsr350bv4mlmdlm6rg5r99px"))))
4010 (build-system asdf-build-system/sbcl)
4011 (arguments
4012 ;; Tests fail with: Component XSUBSEQ-ASD::XSUBSEQ-TEST not found,
4013 ;; required by #<SYSTEM "xsubseq">. Why?
4014 '(#:tests? #f))
4015 (native-inputs
4016 `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
4017 ("sbcl-prove" ,sbcl-prove)))
4018 (home-page "https://github.com/fukamachi/xsubseq")
4019 (synopsis "Efficient way to use \"subseq\"s in Common Lisp")
4020 (description
4021 "XSubseq provides functions to be able to handle \"subseq\"s more
4022 effieiently.")
4023 (license license:bsd-2))))
4024
4025 (define-public cl-xsubseq
4026 (sbcl-package->cl-source-package sbcl-xsubseq))
4027
4028 (define-public sbcl-smart-buffer
4029 (let ((commit "09b9a9a0b3abaa37abe9a730f5aac2643dca4e62")
4030 (revision "1"))
4031 (package
4032 (name "sbcl-smart-buffer")
4033 (version (git-version "0.0.1" revision commit))
4034 (source
4035 (origin
4036 (method git-fetch)
4037 (uri (git-reference
4038 (url "https://github.com/fukamachi/smart-buffer")
4039 (commit commit)))
4040 (file-name (git-file-name name version))
4041 (sha256
4042 (base32 "0qz1zzxx0wm5ff7gpgsq550a59p0qj594zfmm2rglj97dahj54l7"))))
4043 (build-system asdf-build-system/sbcl)
4044 (arguments
4045 ;; Tests fail with: Component SMART-BUFFER-ASD::SMART-BUFFER-TEST not
4046 ;; found, required by #<SYSTEM "smart-buffer">. Why?
4047 `(#:tests? #f))
4048 (native-inputs
4049 `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
4050 ("sbcl-prove" ,sbcl-prove)))
4051 (inputs
4052 `(("sbcl-xsubseq" ,sbcl-xsubseq)
4053 ("sbcl-flexi-streams" ,sbcl-flexi-streams)))
4054 (home-page "https://github.com/fukamachi/smart-buffer")
4055 (synopsis "Smart octets buffer")
4056 (description
4057 "Smart-buffer provides an output buffer which changes the destination
4058 depending on content size.")
4059 (license license:bsd-3))))
4060
4061 (define-public cl-smart-buffer
4062 (sbcl-package->cl-source-package sbcl-smart-buffer))
4063
4064 (define-public sbcl-fast-http
4065 (let ((commit "f9e7597191bae380503e20724fd493a24d024935")
4066 (revision "1"))
4067 (package
4068 (name "sbcl-fast-http")
4069 (version (git-version "0.2.0" revision commit))
4070 (source
4071 (origin
4072 (method git-fetch)
4073 (uri (git-reference
4074 (url "https://github.com/fukamachi/fast-http")
4075 (commit commit)))
4076 (file-name (git-file-name name version))
4077 (sha256
4078 (base32 "0qdmwv2zm0sizxdb8nnclgwl0nfjcbjaimbakavikijw7lr9b4jp"))))
4079 (build-system asdf-build-system/sbcl)
4080 (arguments
4081 ;; Tests fail with: Component FAST-HTTP-ASD::FAST-HTTP-TEST not found,
4082 ;; required by #<SYSTEM "fast-http">. Why?
4083 `(#:tests? #f))
4084 (native-inputs
4085 `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
4086 ("sbcl-prove" ,sbcl-prove)))
4087 (inputs
4088 `(("sbcl-alexandria" ,sbcl-alexandria)
4089 ("sbcl-proc-parse" ,sbcl-proc-parse)
4090 ("sbcl-xsubseq" ,sbcl-xsubseq)
4091 ("sbcl-smart-buffer" ,sbcl-smart-buffer)
4092 ("sbcl-cl-utilities" ,sbcl-cl-utilities)))
4093 (home-page "https://github.com/fukamachi/fast-http")
4094 (synopsis "HTTP request/response parser for Common Lisp")
4095 (description
4096 "@code{fast-http} is a HTTP request/response protocol parser for Common
4097 Lisp.")
4098 ;; Author specified the MIT license
4099 (license license:expat))))
4100
4101 (define-public cl-fast-http
4102 (sbcl-package->cl-source-package sbcl-fast-http))
4103
4104 (define-public sbcl-static-vectors
4105 (let ((commit "0681eac1f49370cde03e64b077251e8abf47d702")
4106 (revision "1"))
4107 (package
4108 (name "sbcl-static-vectors")
4109 (version (git-version "1.8.3" revision commit))
4110 (source
4111 (origin
4112 (method git-fetch)
4113 (uri (git-reference
4114 (url "https://github.com/sionescu/static-vectors.git")
4115 (commit commit)))
4116 (file-name (git-file-name name version))
4117 (sha256
4118 (base32 "138nlsq14hv8785ycjm6jw3i6ablhq8vcwys7q09y80arcgrg6r3"))))
4119 (native-inputs
4120 `(("sbcl-fiveam" ,sbcl-fiveam)))
4121 (inputs
4122 `(("sbcl-cffi-grovel" ,sbcl-cffi-grovel)
4123 ("sbcl-cffi" ,sbcl-cffi)))
4124 (build-system asdf-build-system/sbcl)
4125 (home-page "http://common-lisp.net/projects/iolib/")
4126 (synopsis "Allocate SIMPLE-ARRAYs in static memory")
4127 (description
4128 "With @code{static-vectors}, you can create vectors allocated in static
4129 memory.")
4130 (license license:expat))))
4131
4132 (define-public cl-static-vectors
4133 (sbcl-package->cl-source-package sbcl-static-vectors))
4134
4135 (define-public sbcl-marshal
4136 (let ((commit "eff1b15f2b0af2f26f71ad6a4dd5c4beab9299ec")
4137 (revision "1"))
4138 (package
4139 (name "sbcl-marshal")
4140 (version (git-version "1.3.0" revision commit))
4141 (source
4142 (origin
4143 (method git-fetch)
4144 (uri (git-reference
4145 (url "https://github.com/wlbr/cl-marshal.git")
4146 (commit commit)))
4147 (file-name (git-file-name name version))
4148 (sha256
4149 (base32 "08qs6fhk38xpkkjkpcj92mxx0lgy4ygrbbzrmnivdx281syr0gwh"))))
4150 (build-system asdf-build-system/sbcl)
4151 (home-page "https://github.com/wlbr/cl-marshal")
4152 (synopsis "Simple (de)serialization of Lisp datastructures")
4153 (description
4154 "Simple and fast marshalling of Lisp datastructures. Convert any object
4155 into a string representation, put it on a stream an revive it from there.
4156 Only minimal changes required to make your CLOS objects serializable.")
4157 (license license:expat))))
4158
4159 (define-public cl-marshal
4160 (sbcl-package->cl-source-package sbcl-marshal))
4161
4162 (define-public sbcl-checkl
4163 (let ((commit "80328800d047fef9b6e32dfe6bdc98396aee3cc9")
4164 (revision "1"))
4165 (package
4166 (name "sbcl-checkl")
4167 (version (git-version "0.0.0" revision commit))
4168 (source
4169 (origin
4170 (method git-fetch)
4171 (uri (git-reference
4172 (url "https://github.com/rpav/CheckL.git")
4173 (commit commit)))
4174 (file-name (git-file-name name version))
4175 (sha256
4176 (base32 "0bpisihx1gay44xmyr1dmhlwh00j0zzi04rp9fy35i95l2r4xdlx"))))
4177 (build-system asdf-build-system/sbcl)
4178 (arguments
4179 ;; Error while trying to load definition for system checkl-test from
4180 ;; pathname [...]/checkl-test.asd: The function CHECKL:DEFINE-TEST-OP
4181 ;; is undefined.
4182 '(#:tests? #f))
4183 (native-inputs
4184 `(("sbcl-fiveam" ,sbcl-fiveam)))
4185 (inputs
4186 `(("sbcl-marshal" ,sbcl-marshal)))
4187 (home-page "https://github.com/rpav/CheckL/")
4188 (synopsis "Dynamic testing for Common Lisp")
4189 (description
4190 "CheckL lets you write tests dynamically, it checks resulting values
4191 against the last run.")
4192 ;; The author specifies both LLGPL and "BSD", but the "BSD" license
4193 ;; isn't specified anywhere, so I don't know which kind. LLGPL is the
4194 ;; stronger of the two and so I think only listing this should suffice.
4195 (license license:llgpl))))
4196
4197 (define-public cl-checkl
4198 (sbcl-package->cl-source-package sbcl-checkl))
4199
4200 (define-public sbcl-fast-io
4201 (let ((commit "dc3a71db7e9b756a88781ae9c342fe9d4bbab51c")
4202 (revision "1"))
4203 (package
4204 (name "sbcl-fast-io")
4205 (version (git-version "1.0.0" revision commit))
4206 (source
4207 (origin
4208 (method git-fetch)
4209 (uri (git-reference
4210 (url "https://github.com/rpav/fast-io.git")
4211 (commit commit)))
4212 (file-name (git-file-name name version))
4213 (sha256
4214 (base32 "1jsp6xvi26ln6fdy5j5zi05xvan8jsqdhisv552dy6xg6ws8i1yq"))))
4215 (build-system asdf-build-system/sbcl)
4216 (arguments
4217 ;; Error while trying to load definition for system fast-io-test from
4218 ;; pathname [...]/fast-io-test.asd: The function CHECKL:DEFINE-TEST-OP
4219 ;; is undefined.
4220 '(#:tests? #f))
4221 (native-inputs
4222 `(("sbcl-fiveam" ,sbcl-fiveam)
4223 ("sbcl-checkl" ,sbcl-checkl)))
4224 (inputs
4225 `(("sbcl-alexandria" ,sbcl-alexandria)
4226 ("sbcl-trivial-gray-streams" ,sbcl-trivial-gray-streams)
4227 ("sbcl-static-vectors" ,sbcl-static-vectors)))
4228 (home-page "https://github.com/rpav/fast-io")
4229 (synopsis "Fast octet-vector/stream I/O for Common Lisp")
4230 (description
4231 "Fast-io is about improving performance to octet-vectors and octet
4232 streams (though primarily the former, while wrapping the latter).")
4233 ;; Author specifies this as NewBSD which is an alias
4234 (license license:bsd-3))))
4235
4236 (define-public cl-fast-io
4237 (sbcl-package->cl-source-package sbcl-fast-io))
4238
4239 (define-public sbcl-jonathan
4240 (let ((commit "1f448b4f7ac8265e56e1c02b32ce383e65316300")
4241 (revision "1"))
4242 (package
4243 (name "sbcl-jonathan")
4244 (version (git-version "0.1.0" revision commit))
4245 (source
4246 (origin
4247 (method git-fetch)
4248 (uri (git-reference
4249 (url "https://github.com/Rudolph-Miller/jonathan.git")
4250 (commit commit)))
4251 (file-name (git-file-name name version))
4252 (sha256
4253 (base32 "14x4iwz3mbag5jzzzr4sb6ai0m9r4q4kyypbq32jmsk2dx1hi807"))))
4254 (build-system asdf-build-system/sbcl)
4255 (arguments
4256 ;; Tests fail with: Component JONATHAN-ASD::JONATHAN-TEST not found,
4257 ;; required by #<SYSTEM "jonathan">. Why?
4258 `(#:tests? #f))
4259 (native-inputs
4260 `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
4261 ("sbcl-prove" ,sbcl-prove)))
4262 (inputs
4263 `(("sbcl-cl-syntax" ,sbcl-cl-syntax)
4264 ("sbcl-cl-syntax-annot" ,sbcl-cl-syntax-annot)
4265 ("sbcl-fast-io" ,sbcl-fast-io)
4266 ("sbcl-proc-parse" ,sbcl-proc-parse)
4267 ("sbcl-cl-ppcre" ,sbcl-cl-ppcre)))
4268 (home-page "http://rudolph-miller.github.io/jonathan/overview.html")
4269 (synopsis "JSON encoder and decoder")
4270 (description
4271 "High performance JSON encoder and decoder. Currently support: SBCL,
4272 CCL.")
4273 ;; Author specifies the MIT license
4274 (license license:expat))))
4275
4276 (define-public cl-jonathan
4277 (sbcl-package->cl-source-package sbcl-jonathan))
4278
4279 (define-public sbcl-http-body
4280 (let ((commit "dd01dc4f5842e3d29728552e5163acce8386eb73")
4281 (revision "1"))
4282 (package
4283 (name "sbcl-http-body")
4284 (version (git-version "0.1.0" revision commit))
4285 (source
4286 (origin
4287 (method git-fetch)
4288 (uri (git-reference
4289 (url "https://github.com/fukamachi/http-body")
4290 (commit commit)))
4291 (file-name (git-file-name name version))
4292 (sha256
4293 (base32 "1jd06snjvxcprhapgfq8sx0y5lrldkvhf206ix6d5a23dd6zcmr0"))))
4294 (build-system asdf-build-system/sbcl)
4295 (arguments
4296 ;; Tests fail with: Component HTTP-BODY-ASD::HTTP-BODY-TEST not
4297 ;; found, required by #<SYSTEM "http-body">. Why?
4298 `(#:tests? #f))
4299 (native-inputs
4300 `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
4301 ("sbcl-prove" ,sbcl-prove)))
4302 (inputs
4303 `(("sbcl-fast-http" ,sbcl-fast-http)
4304 ("sbcl-jonathan" ,sbcl-jonathan)
4305 ("sbcl-quri" ,sbcl-quri)))
4306 (home-page "https://github.com/fukamachi/http-body")
4307 (synopsis "HTTP POST data parser")
4308 (description
4309 "HTTP-Body parses HTTP POST data and returns POST parameters. It
4310 supports application/x-www-form-urlencoded, application/json, and
4311 multipart/form-data.")
4312 (license license:bsd-2))))
4313
4314 (define-public cl-http-body
4315 (sbcl-package->cl-source-package sbcl-http-body))
4316
4317 (define-public sbcl-circular-streams
4318 (let ((commit "e770bade1919c5e8533dd2078c93c3d3bbeb38df")
4319 (revision "1"))
4320 (package
4321 (name "sbcl-circular-streams")
4322 (version (git-version "0.1.0" revision commit))
4323 (source
4324 (origin
4325 (method git-fetch)
4326 (uri (git-reference
4327 (url "https://github.com/fukamachi/circular-streams")
4328 (commit commit)))
4329 (file-name (git-file-name name version))
4330 (sha256
4331 (base32 "1wpw6d5cciyqcf92f7mvihak52pd5s47kk4qq6f0r2z2as68p5rs"))))
4332 (build-system asdf-build-system/sbcl)
4333 (arguments
4334 ;; The tests depend on cl-test-more which is now prove. Prove
4335 ;; tests aren't working for some reason.
4336 `(#:tests? #f))
4337 (inputs
4338 `(("sbcl-fast-io" ,sbcl-fast-io)
4339 ("sbcl-trivial-gray-streams" ,sbcl-trivial-gray-streams)))
4340 (home-page "https://github.com/fukamachi/circular-streams")
4341 (synopsis "Circularly readable streams for Common Lisp")
4342 (description
4343 "Circular-Streams allows you to read streams circularly by wrapping real
4344 streams. Once you reach end-of-file of a stream, it's file position will be
4345 reset to 0 and you're able to read it again.")
4346 (license license:llgpl))))
4347
4348 (define-public cl-circular-streams
4349 (sbcl-package->cl-source-package sbcl-circular-streams))
4350
4351 (define-public sbcl-lack-request
4352 (let ((commit "abff8efeb0c3a848e6bb0022f2b8b7fa3a1bc88b")
4353 (revision "1"))
4354 (package
4355 (name "sbcl-lack-request")
4356 (version (git-version "0.1.0" revision commit))
4357 (source
4358 (origin
4359 (method git-fetch)
4360 (uri (git-reference
4361 (url "https://github.com/fukamachi/lack.git")
4362 (commit commit)))
4363 (file-name (git-file-name "lack-request" version))
4364 (sha256
4365 (base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85"))))
4366 (build-system asdf-build-system/sbcl)
4367 (arguments
4368 '(#:asd-file "lack-request.asd"
4369 #:asd-system-name "lack-request"
4370 #:test-asd-file "t-lack-request.asd"
4371 ;; XXX: Component :CLACK-TEST not found
4372 #:tests? #f))
4373 (native-inputs
4374 `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
4375 ("sbcl-prove" ,sbcl-prove)))
4376 (inputs
4377 `(("sbcl-quri" ,sbcl-quri)
4378 ("sbcl-http-body" ,sbcl-http-body)
4379 ("sbcl-circular-streams" ,sbcl-circular-streams)))
4380 (home-page "https://github.com/fukamachi/lack")
4381 (synopsis "Lack, the core of Clack")
4382 (description
4383 "Lack is a Common Lisp library which allows web applications to be
4384 constructed of modular components. It was originally a part of Clack, however
4385 it's going to be rewritten as an individual project since Clack v2 with
4386 performance and simplicity in mind.")
4387 (license license:llgpl))))
4388
4389 (define-public cl-lack-request
4390 (sbcl-package->cl-source-package sbcl-lack-request))
4391
4392 (define-public sbcl-local-time
4393 (let ((commit "beac054eef428552b63d4ae7820c32ffef9a3015")
4394 (revision "1"))
4395 (package
4396 (name "sbcl-local-time")
4397 (version (git-version "1.0.6" revision commit))
4398 (source
4399 (origin
4400 (method git-fetch)
4401 (uri (git-reference
4402 (url "https://github.com/dlowe-net/local-time.git")
4403 (commit commit)))
4404 (file-name (git-file-name name version))
4405 (sha256
4406 (base32 "0xhkmgxh41dg2wwlsp0h2l41jp144xn4gpxhh0lna6kh0560w2cc"))))
4407 (build-system asdf-build-system/sbcl)
4408 (arguments
4409 ;; TODO: Component :STEFIL not found, required by #<SYSTEM
4410 ;; "local-time/test">
4411 '(#:tests? #f))
4412 (native-inputs
4413 `(("stefil" ,sbcl-hu.dwim.stefil)))
4414 (inputs
4415 `(("sbcl-cl-fad" ,sbcl-cl-fad)))
4416 (home-page "https://common-lisp.net/project/local-time/")
4417 (synopsis "Time manipulation library for Common Lisp")
4418 (description
4419 "The LOCAL-TIME library is a Common Lisp library for the manipulation of
4420 dates and times. It is based almost entirely upon Erik Naggum's paper \"The
4421 Long Painful History of Time\".")
4422 (license license:expat))))
4423
4424 (define-public cl-local-time
4425 (sbcl-package->cl-source-package sbcl-local-time))
4426
4427 (define-public sbcl-lack-response
4428 (let ((commit "abff8efeb0c3a848e6bb0022f2b8b7fa3a1bc88b")
4429 (revision "1"))
4430 (package
4431 (name "sbcl-lack-response")
4432 (version (git-version "0.1.0" revision commit))
4433 (source
4434 (origin
4435 (method git-fetch)
4436 (uri (git-reference
4437 (url "https://github.com/fukamachi/lack.git")
4438 (commit commit)))
4439 (file-name (git-file-name name version))
4440 (sha256
4441 (base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85"))))
4442 (build-system asdf-build-system/sbcl)
4443 (arguments
4444 '(#:asd-file "lack-response.asd"
4445 #:asd-system-name "lack-response"
4446 ;; XXX: no tests for lack-response.
4447 #:tests? #f))
4448 (native-inputs
4449 `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
4450 ("sbcl-prove" ,sbcl-prove)))
4451 (inputs
4452 `(("sbcl-quri" ,sbcl-quri)
4453 ("sbcl-http-body" ,sbcl-http-body)
4454 ("sbcl-circular-streams" ,sbcl-circular-streams)
4455 ("sbcl-local-time" ,sbcl-local-time)))
4456 (home-page "https://github.com/fukamachi/lack")
4457 (synopsis "Lack, the core of Clack")
4458 (description
4459 "Lack is a Common Lisp library which allows web applications to be
4460 constructed of modular components. It was originally a part of Clack, however
4461 it's going to be rewritten as an individual project since Clack v2 with
4462 performance and simplicity in mind.")
4463 (license license:llgpl))))
4464
4465 (define-public cl-lack-response
4466 (sbcl-package->cl-source-package sbcl-lack-response))
4467
4468 (define-public sbcl-lack-component
4469 (let ((commit "abff8efeb0c3a848e6bb0022f2b8b7fa3a1bc88b")
4470 (revision "1"))
4471 (package
4472 (name "sbcl-lack-component")
4473 (version (git-version "0.0.0" revision commit))
4474 (source
4475 (origin
4476 (method git-fetch)
4477 (uri (git-reference
4478 (url "https://github.com/fukamachi/lack.git")
4479 (commit commit)))
4480 (file-name (git-file-name "lack-component" version))
4481 (sha256
4482 (base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85"))))
4483 (build-system asdf-build-system/sbcl)
4484 (arguments
4485 '(#:asd-file "lack-component.asd"
4486 #:asd-system-name "lack-component"
4487 #:test-asd-file "t-lack-component.asd"
4488 ;; XXX: Component :LACK-TEST not found
4489 #:tests? #f))
4490 (native-inputs
4491 `(("prove-asdf" ,sbcl-prove-asdf)))
4492 (home-page "https://github.com/fukamachi/lack")
4493 (synopsis "Lack, the core of Clack")
4494 (description
4495 "Lack is a Common Lisp library which allows web applications to be
4496 constructed of modular components. It was originally a part of Clack, however
4497 it's going to be rewritten as an individual project since Clack v2 with
4498 performance and simplicity in mind.")
4499 (license license:llgpl))))
4500
4501 (define-public cl-lack-component
4502 (sbcl-package->cl-source-package sbcl-lack-component))
4503
4504 (define-public sbcl-lack-util
4505 (let ((commit "abff8efeb0c3a848e6bb0022f2b8b7fa3a1bc88b")
4506 (revision "1"))
4507 (package
4508 (name "sbcl-lack-util")
4509 (version (git-version "0.1.0" revision commit))
4510 (source
4511 (origin
4512 (method git-fetch)
4513 (uri (git-reference
4514 (url "https://github.com/fukamachi/lack.git")
4515 (commit commit)))
4516 (file-name (git-file-name "lack-util" version))
4517 (sha256
4518 (base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85"))))
4519 (build-system asdf-build-system/sbcl)
4520 (arguments
4521 '(#:asd-file "lack-util.asd"
4522 #:asd-system-name "lack-util"
4523 #:test-asd-file "t-lack-util.asd"
4524 ;; XXX: Component :LACK-TEST not found
4525 #:tests? #f))
4526 (native-inputs
4527 `(("prove-asdf" ,sbcl-prove-asdf)))
4528 (inputs
4529 `(("sbcl-ironclad" ,sbcl-ironclad)))
4530 (home-page "https://github.com/fukamachi/lack")
4531 (synopsis "Lack, the core of Clack")
4532 (description
4533 "Lack is a Common Lisp library which allows web applications to be
4534 constructed of modular components. It was originally a part of Clack, however
4535 it's going to be rewritten as an individual project since Clack v2 with
4536 performance and simplicity in mind.")
4537 (license license:llgpl))))
4538
4539 (define-public cl-lack-util
4540 (sbcl-package->cl-source-package sbcl-lack-util))
4541
4542 (define-public sbcl-lack-middleware-backtrace
4543 (let ((commit "abff8efeb0c3a848e6bb0022f2b8b7fa3a1bc88b")
4544 (revision "1"))
4545 (package
4546 (name "sbcl-lack-middleware-backtrace")
4547 (version (git-version "0.1.0" revision commit))
4548 (source
4549 (origin
4550 (method git-fetch)
4551 (uri (git-reference
4552 (url "https://github.com/fukamachi/lack.git")
4553 (commit commit)))
4554 (file-name (git-file-name "lack-middleware-backtrace" version))
4555 (sha256
4556 (base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85"))))
4557 (build-system asdf-build-system/sbcl)
4558 (arguments
4559 '(#:asd-file "lack-middleware-backtrace.asd"
4560 #:asd-system-name "lack-middleware-backtrace"
4561 #:test-asd-file "t-lack-middleware-backtrace.asd"
4562 ;; XXX: Component :LACK not found
4563 #:tests? #f))
4564 (native-inputs
4565 `(("prove-asdf" ,sbcl-prove-asdf)))
4566 (home-page "https://github.com/fukamachi/lack")
4567 (synopsis "Lack, the core of Clack")
4568 (description
4569 "Lack is a Common Lisp library which allows web applications to be
4570 constructed of modular components. It was originally a part of Clack, however
4571 it's going to be rewritten as an individual project since Clack v2 with
4572 performance and simplicity in mind.")
4573 (license license:llgpl))))
4574
4575 (define-public cl-lack-middleware-backtrace
4576 (sbcl-package->cl-source-package sbcl-lack-middleware-backtrace))
4577
4578 (define-public sbcl-trivial-mimes
4579 (let ((commit "303f8ac0aa6ca0bc139aa3c34822e623c3723fab")
4580 (revision "1"))
4581 (package
4582 (name "sbcl-trivial-mimes")
4583 (version (git-version "1.1.0" revision commit))
4584 (source
4585 (origin
4586 (method git-fetch)
4587 (uri (git-reference
4588 (url "https://github.com/Shinmera/trivial-mimes.git")
4589 (commit commit)))
4590 (file-name (git-file-name name version))
4591 (sha256
4592 (base32 "17jxgl47r695bvsb7wi3n2ws5rp1zzgvw0zii8cy5ggw4b4ayv6m"))))
4593 (build-system asdf-build-system/sbcl)
4594 (arguments
4595 '(#:phases
4596 (modify-phases %standard-phases
4597 (add-after
4598 'unpack 'fix-paths
4599 (lambda* (#:key inputs #:allow-other-keys)
4600 (let ((anchor "#p\"/etc/mime.types\""))
4601 (substitute* "mime-types.lisp"
4602 ((anchor all)
4603 (string-append
4604 anchor "\n"
4605 "(asdf:system-relative-pathname :trivial-mimes "
4606 "\"../../share/common-lisp/" (%lisp-type)
4607 "-source/trivial-mimes/mime.types\")")))))))))
4608 (native-inputs
4609 `(("stefil" ,sbcl-hu.dwim.stefil)))
4610 (inputs
4611 `(("sbcl-cl-fad" ,sbcl-cl-fad)))
4612 (home-page "http://shinmera.github.io/trivial-mimes/")
4613 (synopsis "Tiny Common Lisp library to detect mime types in files")
4614 (description
4615 "This is a teensy library that provides some functions to determine the
4616 mime-type of a file.")
4617 (license license:artistic2.0))))
4618
4619 (define-public cl-trivial-mimes
4620 (sbcl-package->cl-source-package sbcl-trivial-mimes))
4621
4622 (define-public ecl-trivial-mimes
4623 (sbcl-package->ecl-package sbcl-trivial-mimes))
4624
4625 (define-public sbcl-lack-middleware-static
4626 (let ((commit "abff8efeb0c3a848e6bb0022f2b8b7fa3a1bc88b")
4627 (revision "1"))
4628 (package
4629 (name "sbcl-lack-middleware-static")
4630 (version (git-version "0.1.0" revision commit))
4631 (source
4632 (origin
4633 (method git-fetch)
4634 (uri (git-reference
4635 (url "https://github.com/fukamachi/lack.git")
4636 (commit commit)))
4637 (file-name (git-file-name "lack-middleware-static" version))
4638 (sha256
4639 (base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85"))))
4640 (build-system asdf-build-system/sbcl)
4641 (arguments
4642 '(#:asd-file "lack-middleware-static.asd"
4643 #:asd-system-name "lack-middleware-static"
4644 #:test-asd-file "t-lack-middleware-static.asd"
4645 ;; XXX: Component :LACK not found
4646 #:tests? #f))
4647 (native-inputs
4648 `(("prove-asdf" ,sbcl-prove-asdf)))
4649 (inputs
4650 `(("sbcl-ironclad" ,sbcl-ironclad)
4651 ("sbcl-trivial-mimes" ,sbcl-trivial-mimes)
4652 ("sbcl-local-time" ,sbcl-local-time)))
4653 (home-page "https://github.com/fukamachi/lack")
4654 (synopsis "Lack, the core of Clack")
4655 (description
4656 "Lack is a Common Lisp library which allows web applications to be
4657 constructed of modular components. It was originally a part of Clack, however
4658 it's going to be rewritten as an individual project since Clack v2 with
4659 performance and simplicity in mind.")
4660 (license license:llgpl))))
4661
4662 (define-public cl-lack-middleware-static
4663 (sbcl-package->cl-source-package sbcl-lack-middleware-static))
4664
4665 (define-public sbcl-lack
4666 (let ((commit "abff8efeb0c3a848e6bb0022f2b8b7fa3a1bc88b")
4667 (revision "1"))
4668 (package
4669 (name "sbcl-lack")
4670 (version (git-version "0.1.0" revision commit))
4671 (source
4672 (origin
4673 (method git-fetch)
4674 (uri (git-reference
4675 (url "https://github.com/fukamachi/lack.git")
4676 (commit commit)))
4677 (file-name (git-file-name "lack" version))
4678 (sha256
4679 (base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85"))))
4680 (build-system asdf-build-system/sbcl)
4681 (arguments
4682 '(#:test-asd-file "t-lack.asd"
4683 ;; XXX: Component :CLACK not found
4684 #:tests? #f))
4685 (native-inputs
4686 `(("prove-asdf" ,sbcl-prove-asdf)))
4687 (inputs
4688 `(("sbcl-lack-component" ,sbcl-lack-component)
4689 ("sbcl-lack-util" ,sbcl-lack-util)))
4690 (home-page "https://github.com/fukamachi/lack")
4691 (synopsis "Lack, the core of Clack")
4692 (description
4693 "Lack is a Common Lisp library which allows web applications to be
4694 constructed of modular components. It was originally a part of Clack, however
4695 it's going to be rewritten as an individual project since Clack v2 with
4696 performance and simplicity in mind.")
4697 (license license:llgpl))))
4698
4699 (define-public cl-lack
4700 (sbcl-package->cl-source-package sbcl-lack))
4701
4702 (define-public sbcl-ningle
4703 (let ((commit "50bd4f09b5a03a7249bd4d78265d6451563b25ad")
4704 (revision "1"))
4705 (package
4706 (name "sbcl-ningle")
4707 (version (git-version "0.3.0" revision commit))
4708 (source
4709 (origin
4710 (method git-fetch)
4711 (uri (git-reference
4712 (url "https://github.com/fukamachi/ningle.git")
4713 (commit commit)))
4714 (file-name (git-file-name name version))
4715 (sha256
4716 (base32 "1bsl8cnxhacb8p92z9n89vhk1ikmij5zavk0m2zvmj7iqm79jzgw"))))
4717 (build-system asdf-build-system/sbcl)
4718 (arguments
4719 ;; TODO: pull in clack-test
4720 '(#:tests? #f
4721 #:phases
4722 (modify-phases %standard-phases
4723 (delete 'cleanup-files)
4724 (delete 'cleanup)
4725 (add-before 'cleanup 'combine-fasls
4726 (lambda* (#:key outputs #:allow-other-keys)
4727 (let* ((out (assoc-ref outputs "out"))
4728 (lib (string-append out "/lib/sbcl"))
4729 (ningle-path (string-append lib "/ningle"))
4730 (fasl-files (find-files out "\\.fasl$")))
4731 (mkdir-p ningle-path)
4732 (let ((fasl-path (lambda (name)
4733 (string-append ningle-path
4734 "/"
4735 (basename name)
4736 "--system.fasl"))))
4737 (for-each (lambda (file)
4738 (rename-file file
4739 (fasl-path
4740 (basename file ".fasl"))))
4741 fasl-files))
4742 fasl-files)
4743 #t)))))
4744 (native-inputs
4745 `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
4746 ("sbcl-prove" ,sbcl-prove)))
4747 (inputs
4748 `(("sbcl-cl-syntax" ,sbcl-cl-syntax)
4749 ("sbcl-cl-syntax-annot" ,sbcl-cl-syntax-annot)
4750 ("sbcl-myway" ,sbcl-myway)
4751 ("sbcl-lack-request" ,sbcl-lack-request)
4752 ("sbcl-lack-response" ,sbcl-lack-response)
4753 ("sbcl-lack-component" ,sbcl-lack-component)
4754 ("sbcl-alexandria" ,sbcl-alexandria)
4755 ("sbcl-babel" ,sbcl-babel)))
4756 (home-page "http://8arrow.org/ningle/")
4757 (synopsis "Super micro framework for Common Lisp")
4758 (description
4759 "Ningle is a lightweight web application framework for Common Lisp.")
4760 (license license:llgpl))))
4761
4762 (define-public cl-ningle
4763 (sbcl-package->cl-source-package sbcl-ningle))
4764
4765 (define-public sbcl-clack
4766 (let ((commit "e3e032843bb1220ab96263c411aa7f2feb4746e0")
4767 (revision "1"))
4768 (package
4769 (name "sbcl-clack")
4770 (version (git-version "2.0.0" revision commit))
4771 (source
4772 (origin
4773 (method git-fetch)
4774 (uri (git-reference
4775 (url "https://github.com/fukamachi/clack.git")
4776 (commit commit)))
4777 (file-name (git-file-name name version))
4778 (sha256
4779 (base32 "1ymzs6qyrwhlj6cgqsnpyn6g5cbp7a3s1vgxwna20y2q7y4iacy0"))))
4780 (build-system asdf-build-system/sbcl)
4781 (inputs
4782 `(("sbcl-lack" ,sbcl-lack)
4783 ("sbcl-lack-middleware-backtrace" ,sbcl-lack-middleware-backtrace)
4784 ("sbcl-bordeaux-threads" ,sbcl-bordeaux-threads)))
4785 (home-page "https://github.com/fukamachi/clack")
4786 (synopsis "Web Application Environment for Common Lisp")
4787 (description
4788 "Clack is a web application environment for Common Lisp inspired by
4789 Python's WSGI and Ruby's Rack.")
4790 (license license:llgpl))))
4791
4792 (define-public cl-clack
4793 (sbcl-package->cl-source-package sbcl-clack))
4794
4795 (define-public sbcl-log4cl
4796 (let ((commit "611e094458504b938d49de904eab141285328c7c")
4797 (revision "1"))
4798 (package
4799 (name "sbcl-log4cl")
4800 (build-system asdf-build-system/sbcl)
4801 (version "1.1.2")
4802 (source
4803 (origin
4804 (method git-fetch)
4805 (uri (git-reference
4806 (url "https://github.com/sharplispers/log4cl")
4807 (commit commit)))
4808 (file-name (git-file-name name version))
4809 (sha256
4810 (base32
4811 "08jly0s0g26b56hhpfizxsb4j0yvbh946sd205gr42dkzv8l7dsc"))))
4812 ;; FIXME: tests require stefil, sbcl-hu.dwim.stefil wont work
4813 (arguments
4814 `(#:tests? #f))
4815 (inputs `(("bordeaux-threads" ,sbcl-bordeaux-threads)))
4816 (synopsis "Common Lisp logging framework, modeled after Log4J")
4817 (home-page "https://github.com/7max/log4cl")
4818 (description "This is a Common Lisp logging framework that can log at
4819 various levels and mix text with expressions.")
4820 (license license:asl2.0))))
4821
4822 (define-public cl-log4cl
4823 (sbcl-package->cl-source-package sbcl-log4cl))
4824
4825 (define-public ecl-log4cl
4826 (sbcl-package->ecl-package sbcl-log4cl))
4827
4828 (define-public sbcl-find-port
4829 (let ((commit "00c96a25af93a0f8681d34ec548861f2d7485478")
4830 (revision "1"))
4831 (package
4832 (name "sbcl-find-port")
4833 (build-system asdf-build-system/sbcl)
4834 (version "0.1")
4835 (home-page "https://github.com/eudoxia0/find-port")
4836 (source
4837 (origin
4838 (method git-fetch)
4839 (uri (git-reference
4840 (url home-page)
4841 (commit commit)))
4842 (file-name (git-file-name name version))
4843 (sha256
4844 (base32
4845 "0d6dzbb45jh0rx90wgs6v020k2xa87mvzas3mvfzvivjvqqlpryq"))))
4846 (native-inputs
4847 `(("fiveam" ,sbcl-fiveam)))
4848 (inputs
4849 `(("sbcl-usocket" ,sbcl-usocket)))
4850 (synopsis "Find open ports programmatically in Common Lisp")
4851 (description "This is a small Common Lisp library that finds an open
4852 port within a range.")
4853 (license license:expat))))
4854
4855 (define-public cl-find-port
4856 (sbcl-package->cl-source-package sbcl-find-port))
4857
4858 (define-public ecl-find-port
4859 (sbcl-package->ecl-package sbcl-find-port))
4860
4861 (define-public sbcl-clunit
4862 (let ((commit "6f6d72873f0e1207f037470105969384f8380628")
4863 (revision "1"))
4864 (package
4865 (name "sbcl-clunit")
4866 (version (git-version "0.2.3" revision commit))
4867 (source
4868 (origin
4869 (method git-fetch)
4870 (uri (git-reference
4871 (url "https://github.com/tgutu/clunit.git")
4872 (commit commit)))
4873 (file-name (git-file-name name version))
4874 (sha256
4875 (base32
4876 "1idf2xnqzlhi8rbrqmzpmb3i1l6pbdzhhajkmhwbp6qjkmxa4h85"))))
4877 (build-system asdf-build-system/sbcl)
4878 (synopsis "CLUnit is a Common Lisp unit testing framework")
4879 (description
4880 "CLUnit is a Common Lisp unit testing framework. It is designed
4881 to be easy to use so that you can quickly start testing. CLUnit
4882 provides a rich set of features aimed at improving your unit testing
4883 experience.")
4884 (home-page "http://tgutu.github.io/clunit/")
4885 ;; MIT License
4886 (license license:expat))))
4887
4888 (define-public cl-clunit
4889 (sbcl-package->cl-source-package sbcl-clunit))
4890
4891 (define-public ecl-clunit
4892 (sbcl-package->ecl-package sbcl-clunit))
4893
4894 (define-public sbcl-py4cl
4895 (let ((commit "4c8a2b0814fd311f978964f825ce012290f60136")
4896 (revision "1"))
4897 (package
4898 (name "sbcl-py4cl")
4899 (version (git-version "0.0.0" revision commit))
4900 (source
4901 (origin
4902 (method git-fetch)
4903 (uri (git-reference
4904 (url "https://github.com/bendudson/py4cl.git")
4905 (commit commit)))
4906 (file-name (git-file-name name version))
4907 (sha256
4908 (base32
4909 "15mk7qdqjkj56gdnbyrdyz6r7m1h26ldvn6ch96pmvg5vmr1m45r"))
4910 (modules '((guix build utils)))))
4911 (build-system asdf-build-system/sbcl)
4912 (native-inputs
4913 `(("sbcl-clunit" ,sbcl-clunit)))
4914 (inputs
4915 `(("sbcl-trivial-garbage" ,sbcl-trivial-garbage)))
4916 (propagated-inputs
4917 ;; This package doesn't do anything without python available
4918 `(("python" ,python)
4919 ;; For multi-dimensional array support
4920 ("python-numpy" ,python-numpy)))
4921 (arguments
4922 '(#:phases
4923 (modify-phases %standard-phases
4924 (add-after 'unpack 'replace-*base-directory*-var
4925 (lambda* (#:key outputs #:allow-other-keys)
4926 ;; In the ASD, the author makes an attempt to
4927 ;; programatically determine the location of the
4928 ;; source-code so lisp can call into "py4cl.py". We can
4929 ;; hard-code this since we know where this file will
4930 ;; reside.
4931 (substitute* "src/callpython.lisp"
4932 (("py4cl/config:\\*base-directory\\*")
4933 (string-append
4934 "\""
4935 (assoc-ref outputs "out")
4936 "/share/common-lisp/sbcl-source/py4cl/"
4937 "\""))))))))
4938 (synopsis "Call python from Common Lisp")
4939 (description
4940 "Py4CL is a bridge between Common Lisp and Python, which enables Common
4941 Lisp to interact with Python code. It uses streams to communicate with a
4942 separate python process, the approach taken by cl4py. This is different to
4943 the CFFI approach used by burgled-batteries, but has the same goal.")
4944 (home-page "https://github.com/bendudson/py4cl")
4945 ;; MIT License
4946 (license license:expat))))
4947
4948 (define-public cl-py4cl
4949 (sbcl-package->cl-source-package sbcl-py4cl))
4950
4951 (define-public ecl-py4cl
4952 (sbcl-package->ecl-package sbcl-py4cl))
4953
4954 (define-public sbcl-parse-declarations
4955 (package
4956 (name "sbcl-parse-declarations")
4957 (version "1.0.0")
4958 (source
4959 (origin
4960 (method url-fetch)
4961 (uri (string-append
4962 "http://beta.quicklisp.org/archive/parse-declarations/"
4963 "2010-10-06/parse-declarations-20101006-darcs.tgz"))
4964 (sha256
4965 (base32
4966 "0r85b0jfacd28kr65kw9c13dx4i6id1dpmby68zjy63mqbnyawrd"))))
4967 (build-system asdf-build-system/sbcl)
4968 (arguments
4969 `(#:asd-file "parse-declarations-1.0.asd"
4970 #:asd-system-name "parse-declarations-1.0"))
4971 (home-page "https://common-lisp.net/project/parse-declarations/")
4972 (synopsis "Parse, filter, and build declarations")
4973 (description
4974 "Parse-Declarations is a Common Lisp library to help writing
4975 macros which establish bindings. To be semantically correct, such
4976 macros must take user declarations into account, as these may affect
4977 the bindings they establish. Yet the ANSI standard of Common Lisp does
4978 not provide any operators to work with declarations in a convenient,
4979 high-level way. This library provides such operators.")
4980 ;; MIT License
4981 (license license:expat)))
4982
4983 (define-public cl-parse-declarations
4984 (sbcl-package->cl-source-package sbcl-parse-declarations))
4985
4986 (define-public ecl-parse-declarations
4987 (sbcl-package->ecl-package sbcl-parse-declarations))
4988
4989 (define-public sbcl-cl-quickcheck
4990 (let ((commit "807b2792a30c883a2fbecea8e7db355b50ba662f")
4991 (revision "1"))
4992 (package
4993 (name "sbcl-cl-quickcheck")
4994 (version (git-version "0.0.4" revision commit))
4995 (source
4996 (origin
4997 (method git-fetch)
4998 (uri (git-reference
4999 (url "https://github.com/mcandre/cl-quickcheck.git")
5000 (commit commit)))
5001 (file-name (git-file-name name version))
5002 (sha256
5003 (base32
5004 "165lhypq5xkcys6hvzb3jq7ywnmqvzaflda29qk2cbs3ggas4767"))))
5005 (build-system asdf-build-system/sbcl)
5006 (synopsis
5007 "Common Lisp port of the QuickCheck unit test framework")
5008 (description
5009 "Common Lisp port of the QuickCheck unit test framework")
5010 (home-page "https://github.com/mcandre/cl-quickcheck")
5011 ;; MIT
5012 (license license:expat))))
5013
5014 (define-public cl-cl-quickcheck
5015 (sbcl-package->cl-source-package sbcl-cl-quickcheck))
5016
5017 (define-public ecl-cl-quickcheck
5018 (sbcl-package->ecl-package sbcl-cl-quickcheck))
5019
5020 (define-public sbcl-burgled-batteries3
5021 (let ((commit "9c0f6667e1a71ddf77e21793a0bea524710fef6e")
5022 (revision "1"))
5023 (package
5024 (name "sbcl-burgled-batteries3")
5025 (version (git-version "0.0.0" revision commit))
5026 (source
5027 (origin
5028 (method git-fetch)
5029 (uri (git-reference
5030 (url "https://github.com/snmsts/burgled-batteries3.git")
5031 (commit commit)))
5032 (file-name (git-file-name name version))
5033 (sha256
5034 (base32
5035 "0b726kz2xxcg5l930gz035rsdvhxrzmp05iwfwympnb4z4ammicb"))))
5036 (build-system asdf-build-system/sbcl)
5037 (arguments
5038 '(#:tests? #f
5039 #:phases
5040 (modify-phases %standard-phases
5041 (add-after 'unpack 'set-*cpython-include-dir*-var
5042 (lambda* (#:key inputs #:allow-other-keys)
5043 (substitute* "grovel-include-dir.lisp"
5044 (("\\(defparameter \\*cpython-include-dir\\* \\(detect-python\\)\\)")
5045 (string-append
5046 "(defparameter *cpython-include-dir* \""
5047 (assoc-ref inputs "python")
5048 "/include/python3.7m"
5049 "\")")))
5050 (substitute* "ffi-interface.lisp"
5051 (("\\*cpython-lib\\*")
5052 (format #f "'(\"~a/lib/libpython3.so\")"
5053 (assoc-ref inputs "python"))))
5054 #t)))))
5055 (native-inputs
5056 `(("python" ,python)
5057 ("sbcl-cl-fad" ,sbcl-cl-fad)
5058 ("sbcl-lift" ,sbcl-lift)
5059 ("sbcl-cl-quickcheck" ,sbcl-cl-quickcheck)))
5060 (inputs
5061 `(("sbcl-cffi" ,sbcl-cffi)
5062 ("sbcl-cffi-grovel" ,sbcl-cffi-grovel)
5063 ("sbcl-alexandria" , sbcl-alexandria)
5064 ("sbcl-parse-declarations-1.0" ,sbcl-parse-declarations)
5065 ("sbcl-trivial-garbage" ,sbcl-trivial-garbage)))
5066 (synopsis "Bridge between Python and Lisp (FFI bindings, etc.)")
5067 (description
5068 "This package provides a shim between Python3 (specifically, the
5069 CPython implementation of Python) and Common Lisp.")
5070 (home-page "https://github.com/snmsts/burgled-batteries3")
5071 ;; MIT
5072 (license license:expat))))
5073
5074 (define-public cl-burgled-batteries3
5075 (sbcl-package->cl-source-package sbcl-burgled-batteries3))
5076
5077 (define-public ecl-burgled-batteries3
5078 (sbcl-package->ecl-package sbcl-burgled-batteries3))
5079
5080 (define-public sbcl-metabang-bind
5081 (let ((commit "c93b7f7e1c18c954c2283efd6a7fdab36746ab5e")
5082 (revision "1"))
5083 (package
5084 (name "sbcl-metabang-bind")
5085 (version (git-version "0.8.0" revision commit))
5086 (source
5087 (origin
5088 (method git-fetch)
5089 (uri (git-reference
5090 (url "https://github.com/gwkkwg/metabang-bind.git")
5091 (commit commit)))
5092 (file-name (git-file-name name version))
5093 (sha256
5094 (base32
5095 "0hd0kr91795v77akpbcyqiss9p0p7ypa9dznrllincnmgvsxlmf0"))))
5096 (build-system asdf-build-system/sbcl)
5097 (native-inputs
5098 `(("sbcl-lift" ,sbcl-lift)))
5099 (synopsis "Macro that generalizes @code{multiple-value-bind} etc.")
5100 (description
5101 "Bind extends the idea of of let and destructing to provide a uniform
5102 syntax for all your accessor needs. It combines @code{let},
5103 @code{destructuring-bind}, @code{with-slots}, @code{with-accessors}, structure
5104 editing, property or association-lists, and @code{multiple-value-bind} and a
5105 whole lot more into a single form.")
5106 (home-page "https://common-lisp.net/project/metabang-bind/")
5107 ;; MIT License
5108 (license license:expat))))
5109
5110 (define-public cl-metabang-bind
5111 (sbcl-package->cl-source-package sbcl-metabang-bind))
5112
5113 (define-public ecl-metabang-bind
5114 (sbcl-package->ecl-package sbcl-metabang-bind))
5115
5116 (define-public sbcl-fare-utils
5117 (let ((commit "66e9c6f1499140bc00ccc22febf2aa528cbb5724")
5118 (revision "1"))
5119 (package
5120 (name "sbcl-fare-utils")
5121 (version (git-version "1.0.0.5" revision commit))
5122 (source
5123 (origin
5124 (method git-fetch)
5125 (uri
5126 (git-reference
5127 (url
5128 "https://gitlab.common-lisp.net/frideau/fare-utils.git")
5129 (commit commit)))
5130 (file-name (git-file-name name version))
5131 (sha256
5132 (base32
5133 "01wsr1aap3jdzhn4hrqjbhsjx6qci9dbd3gh4gayv1p49rbg8aqr"))))
5134 (build-system asdf-build-system/sbcl)
5135 (arguments
5136 `(#:test-asd-file "test/fare-utils-test.asd"))
5137 (native-inputs
5138 `(("sbcl-hu.dwim.stefil" ,sbcl-hu.dwim.stefil)))
5139 (synopsis "Collection of utilities and data structures")
5140 (description
5141 "fare-utils is a small collection of utilities. It contains a lot of
5142 basic everyday functions and macros.")
5143 (home-page "https://gitlab.common-lisp.net/frideau/fare-utils")
5144 ;; MIT License
5145 (license license:expat))))
5146
5147 (define-public cl-fare-utils
5148 (sbcl-package->cl-source-package sbcl-fare-utils))
5149
5150 (define-public ecl-fare-utils
5151 (sbcl-package->ecl-package sbcl-fare-utils))
5152
5153 (define-public sbcl-trivial-utf-8
5154 (let ((commit "4d427cfbb1c452436a0efb71c3205c9da67f718f")
5155 (revision "1"))
5156 (package
5157 (name "sbcl-trivial-utf-8")
5158 (version (git-version "0.0.0" revision commit))
5159 (source
5160 (origin
5161 (method git-fetch)
5162 (uri
5163 (git-reference
5164 (url (string-append "https://gitlab.common-lisp.net/"
5165 "trivial-utf-8/trivial-utf-8.git"))
5166 (commit commit)))
5167 (file-name (git-file-name name version))
5168 (sha256
5169 (base32
5170 "1jz27gz8gvqdmvp3k9bxschs6d5b3qgk94qp2bj6nv1d0jc3m1l1"))))
5171 (arguments
5172 ;; Guix incorrectly assumes the "8" is part of the version
5173 ;; number and lobs it off.
5174 `(#:asd-file "trivial-utf-8.asd"
5175 #:asd-system-name "trivial-utf-8"))
5176 (build-system asdf-build-system/sbcl)
5177 (synopsis "UTF-8 input/output library")
5178 (description
5179 "The Babel library solves a similar problem while understanding more
5180 encodings. Trivial UTF-8 was written before Babel existed, but for new
5181 projects you might be better off going with Babel. The one plus that Trivial
5182 UTF-8 has is that it doesn't depend on any other libraries.")
5183 (home-page "https://common-lisp.net/project/trivial-utf-8/")
5184 (license license:bsd-3))))
5185
5186 (define-public cl-trivial-utf-8
5187 (sbcl-package->cl-source-package sbcl-trivial-utf-8))
5188
5189 (define-public ecl-trivial-utf-8
5190 (sbcl-package->ecl-package sbcl-trivial-utf-8))
5191
5192 (define-public sbcl-idna
5193 (package
5194 (name "sbcl-idna")
5195 (build-system asdf-build-system/sbcl)
5196 (version "0.2.2")
5197 (home-page "https://github.com/antifuchs/idna")
5198 (source
5199 (origin
5200 (method git-fetch)
5201 (uri (git-reference
5202 (url home-page)
5203 (commit version)))
5204 (file-name (git-file-name name version))
5205 (sha256
5206 (base32
5207 "00nbr3mffxhlq14gg9d16pa6691s4qh35inyw76v906s77khm5a2"))))
5208 (inputs
5209 `(("split-sequence" ,sbcl-split-sequence)))
5210 (synopsis "IDNA string encoding and decoding routines for Common Lisp")
5211 (description "This Common Lisp library provides string encoding and
5212 decoding routines for IDNA, the International Domain Names in Applications.")
5213 (license license:expat)))
5214
5215 (define-public cl-idna
5216 (sbcl-package->cl-source-package sbcl-idna))
5217
5218 (define-public ecl-idna
5219 (sbcl-package->ecl-package sbcl-idna))
5220
5221 (define-public sbcl-swap-bytes
5222 (package
5223 (name "sbcl-swap-bytes")
5224 (build-system asdf-build-system/sbcl)
5225 (version "1.1")
5226 (home-page "https://github.com/sionescu/swap-bytes")
5227 (source
5228 (origin
5229 (method git-fetch)
5230 (uri (git-reference
5231 (url home-page)
5232 (commit (string-append "v" version))))
5233 (file-name (git-file-name name version))
5234 (sha256
5235 (base32
5236 "1qysbv0jngdfkv53y874qjhcxc4qi8ixaqq6j8bzxh5z0931wv55"))))
5237 (inputs
5238 `(("trivial-features" ,sbcl-trivial-features)))
5239 (native-inputs
5240 `(("fiveam" ,sbcl-fiveam)))
5241 (arguments
5242 ;; TODO: Tests fail, why?
5243 `(#:tests? #f))
5244 (synopsis "Efficient endianness conversion for Common Lisp")
5245 (description "This Common Lisp library provides optimized byte-swapping
5246 primitives. The library can change endianness of unsigned integers of length
5247 1/2/4/8. Very useful in implementing various network protocols and file
5248 formats.")
5249 (license license:expat)))
5250
5251 (define-public cl-swap-bytes
5252 (sbcl-package->cl-source-package sbcl-swap-bytes))
5253
5254 (define-public ecl-swap-bytes
5255 (sbcl-package->ecl-package sbcl-swap-bytes))
5256
5257 (define-public sbcl-iolib.asdf
5258 ;; Latest release is from June 2017.
5259 (let ((commit "81e20614c0d27f9605bf9766214e236fd31b99b4")
5260 (revision "1"))
5261 (package
5262 (name "sbcl-iolib.asdf")
5263 (build-system asdf-build-system/sbcl)
5264 (version "0.8.3")
5265 (home-page "https://github.com/sionescu/iolib")
5266 (source
5267 (origin
5268 (method git-fetch)
5269 (uri (git-reference
5270 (url home-page)
5271 (commit commit)))
5272 (file-name (git-file-name name version))
5273 (sha256
5274 (base32
5275 "1j81r0wm7nfbwl991f26s4npcy7kybzybd3m47rbxy31h0cfcmdm"))))
5276 (inputs
5277 `(("alexandria" ,sbcl-alexandria)))
5278 (arguments
5279 '(#:asd-file "iolib.asdf.asd"))
5280 (synopsis "ASDF component classes for IOLib, a Common Lisp I/O library")
5281 (description "IOlib is to be a better and more modern I/O library than
5282 the standard Common Lisp library. It contains a socket library, a DNS
5283 resolver, an I/O multiplexer(which supports @code{select(2)}, @code{epoll(4)}
5284 and @code{kqueue(2)}), a pathname library and file-system utilities.")
5285 (license license:expat))))
5286
5287 (define-public sbcl-iolib.conf
5288 (package
5289 (inherit sbcl-iolib.asdf)
5290 (name "sbcl-iolib.conf")
5291 (inputs
5292 `(("iolib.asdf" ,sbcl-iolib.asdf)))
5293 (arguments
5294 '(#:asd-file "iolib.conf.asd"))
5295 (synopsis "Compile-time configuration for IOLib, a Common Lisp I/O library")))
5296
5297 (define-public sbcl-iolib.common-lisp
5298 (package
5299 (inherit sbcl-iolib.asdf)
5300 (name "sbcl-iolib.common-lisp")
5301 (inputs
5302 `(("iolib.asdf" ,sbcl-iolib.asdf)
5303 ("iolib.conf" ,sbcl-iolib.conf)))
5304 (arguments
5305 '(#:asd-file "iolib.common-lisp.asd"))
5306 (synopsis "Slightly modified Common Lisp for IOLib, a Common Lisp I/O library")))
5307
5308 (define-public sbcl-iolib.base
5309 (package
5310 (inherit sbcl-iolib.asdf)
5311 (name "sbcl-iolib.base")
5312 (inputs
5313 `(("iolib.asdf" ,sbcl-iolib.asdf)
5314 ("iolib.conf" ,sbcl-iolib.conf)
5315 ("iolib.common-lisp" ,sbcl-iolib.common-lisp)
5316 ("split-sequence" ,sbcl-split-sequence)))
5317 (arguments
5318 '(#:asd-file "iolib.base.asd"))
5319 (synopsis "Base package for IOLib, a Common Lisp I/O library")))
5320
5321 (define-public sbcl-iolib.grovel
5322 (package
5323 (inherit sbcl-iolib.asdf)
5324 (name "sbcl-iolib.grovel")
5325 (inputs
5326 `(("iolib.asdf" ,sbcl-iolib.asdf)
5327 ("iolib.conf" ,sbcl-iolib.conf)
5328 ("iolib.base", sbcl-iolib.base)
5329 ("cffi", sbcl-cffi)))
5330 (arguments
5331 '(#:asd-file "iolib.grovel.asd"
5332 #:phases
5333 (modify-phases %standard-phases
5334 (add-after 'install 'install-header
5335 (lambda* (#:key outputs #:allow-other-keys)
5336 ;; This header is required by sbcl-iolib.
5337 (install-file "src/grovel/grovel-common.h"
5338 (string-append (assoc-ref outputs "out")
5339 "/lib/sbcl"))
5340 #t)))))
5341 (synopsis "CFFI Groveller for IOLib, a Common Lisp I/O library")))
5342
5343 (define-public sbcl-iolib
5344 (package
5345 (inherit sbcl-iolib.asdf)
5346 (name "sbcl-iolib")
5347 (inputs
5348 `(("iolib.asdf" ,sbcl-iolib.asdf)
5349 ("iolib.conf" ,sbcl-iolib.conf)
5350 ("iolib.grovel" ,sbcl-iolib.grovel)
5351 ("iolib.base" ,sbcl-iolib.base)
5352 ("bordeaux-threads" ,sbcl-bordeaux-threads)
5353 ("idna" ,sbcl-idna)
5354 ("swap-bytes" ,sbcl-swap-bytes)
5355 ("libfixposix" ,libfixposix)
5356 ("cffi" ,sbcl-cffi)))
5357 (native-inputs
5358 `(("fiveam" ,sbcl-fiveam)))
5359 (arguments
5360 '(#:asd-file "iolib.asd"
5361 #:asd-system-name "iolib"
5362 #:test-asd-file "iolib.tests.asd"
5363 #:phases
5364 (modify-phases %standard-phases
5365 (add-after 'unpack 'fix-paths
5366 (lambda* (#:key inputs #:allow-other-keys)
5367 (substitute* "src/syscalls/ffi-functions-unix.lisp"
5368 (("\\(:default \"libfixposix\"\\)")
5369 (string-append
5370 "(:default \""
5371 (assoc-ref inputs "libfixposix") "/lib/libfixposix\")")))
5372 ;; Socket tests need Internet access, disable them.
5373 (substitute* "iolib.tests.asd"
5374 (("\\(:file \"sockets\" :depends-on \\(\"pkgdcl\" \"defsuites\"\\)\\)")
5375 "")))))))
5376 (synopsis "Common Lisp I/O library")))
5377
5378 (define-public cl-iolib
5379 (sbcl-package->cl-source-package sbcl-iolib))
5380
5381 (define sbcl-iolib+multiplex
5382 (package
5383 (inherit sbcl-iolib)
5384 (name "sbcl-iolib+multiplex")
5385 (arguments
5386 (substitute-keyword-arguments (package-arguments sbcl-iolib)
5387 ((#:asd-system-name _) "iolib/multiplex")))))
5388
5389 (define sbcl-iolib+syscalls
5390 (package
5391 (inherit sbcl-iolib)
5392 (name "sbcl-iolib+syscalls")
5393 (arguments
5394 (substitute-keyword-arguments (package-arguments sbcl-iolib)
5395 ((#:asd-system-name _) "iolib/syscalls")))))
5396
5397 (define sbcl-iolib+streams
5398 (package
5399 (inherit sbcl-iolib)
5400 (name "sbcl-iolib+streams")
5401 (arguments
5402 (substitute-keyword-arguments (package-arguments sbcl-iolib)
5403 ((#:asd-system-name _) "iolib/streams")))))
5404
5405 (define sbcl-iolib+sockets
5406 (package
5407 (inherit sbcl-iolib)
5408 (name "sbcl-iolib+sockets")
5409 (arguments
5410 (substitute-keyword-arguments (package-arguments sbcl-iolib)
5411 ((#:asd-system-name _) "iolib/sockets")))))
5412
5413 (define-public sbcl-ieee-floats
5414 (let ((commit "566b51a005e81ff618554b9b2f0b795d3b29398d")
5415 (revision "1"))
5416 (package
5417 (name "sbcl-ieee-floats")
5418 (build-system asdf-build-system/sbcl)
5419 (version (git-version "20170924" revision commit))
5420 (home-page "https://github.com/marijnh/ieee-floats/")
5421 (source
5422 (origin
5423 (method git-fetch)
5424 (uri (git-reference
5425 (url home-page)
5426 (commit commit)))
5427 (file-name (git-file-name name version))
5428 (sha256
5429 (base32
5430 "1xyj49j9x3lc84cv3dhbf9ja34ywjk1c46dklx425fxw9mkwm83m"))))
5431 (native-inputs
5432 `(("fiveam" ,sbcl-fiveam)))
5433 (synopsis "IEEE 754 binary representation for floats in Common Lisp")
5434 (description "This is a Common Lisp library that allows to convert
5435 floating point values to IEEE 754 binary representation.")
5436 (license license:bsd-3))))
5437
5438 (define-public cl-ieee-floats
5439 (sbcl-package->cl-source-package sbcl-ieee-floats))
5440
5441 (define sbcl-closure-common
5442 (let ((commit "e3c5f5f454b72b01b89115e581c3c52a7e201e5c")
5443 (revision "1"))
5444 (package
5445 (name "sbcl-closure-common")
5446 (build-system asdf-build-system/sbcl)
5447 (version (git-version "20101006" revision commit))
5448 (home-page "https://common-lisp.net/project/cxml/")
5449 (source
5450 (origin
5451 (method git-fetch)
5452 (uri (git-reference
5453 (url "https://github.com/sharplispers/closure-common")
5454 (commit commit)))
5455 (file-name (git-file-name name version))
5456 (sha256
5457 (base32
5458 "0k5r2qxn122pxi301ijir3nayi9sg4d7yiy276l36qmzwhp4mg5n"))))
5459 (inputs
5460 `(("trivial-gray-streams" ,sbcl-trivial-gray-streams)
5461 ("babel" ,sbcl-babel)))
5462 (synopsis "Support Common Lisp library for CXML")
5463 (description "Closure-common is an internal helper library. The name
5464 Closure is a reference to the web browser it was originally written for.")
5465 ;; TODO: License?
5466 (license #f))))
5467
5468 (define-public sbcl-cxml+xml
5469 (let ((commit "00b22bf4c4cf11c993d5866fae284f95ab18e6bf")
5470 (revision "1"))
5471 (package
5472 (name "sbcl-cxml+xml")
5473 (build-system asdf-build-system/sbcl)
5474 (version (git-version "0.0.0" revision commit))
5475 (home-page "https://common-lisp.net/project/cxml/")
5476 (source
5477 (origin
5478 (method git-fetch)
5479 (uri (git-reference
5480 (url "https://github.com/sharplispers/cxml")
5481 (commit commit)))
5482 (file-name (git-file-name name version))
5483 (sha256
5484 (base32
5485 "13kif7rf3gqdycsk9zq0d7y0g9y81krkl0z87k0p2fkbjfgrph37"))))
5486 (inputs
5487 `(("closure-common" ,sbcl-closure-common)
5488 ("puri" ,sbcl-puri)
5489 ("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
5490 (arguments
5491 `(#:asd-file "cxml.asd"
5492 #:asd-system-name "cxml/xml"))
5493 (synopsis "Common Lisp XML parser")
5494 (description "CXML implements a namespace-aware, validating XML 1.0
5495 parser as well as the DOM Level 2 Core interfaces. Two parser interfaces are
5496 offered, one SAX-like, the other similar to StAX.")
5497 (license license:llgpl))))
5498
5499 (define sbcl-cxml+dom
5500 (package
5501 (inherit sbcl-cxml+xml)
5502 (name "sbcl-cxml+dom")
5503 (inputs
5504 `(("closure-common" ,sbcl-closure-common)
5505 ("puri" ,sbcl-puri)
5506 ("cxml+xml" ,sbcl-cxml+xml)))
5507 (arguments
5508 `(#:asd-file "cxml.asd"
5509 #:asd-system-name "cxml/dom"))))
5510
5511 (define sbcl-cxml+klacks
5512 (package
5513 (inherit sbcl-cxml+xml)
5514 (name "sbcl-cxml+klacks")
5515 (inputs
5516 `(("closure-common" ,sbcl-closure-common)
5517 ("puri" ,sbcl-puri)
5518 ("cxml+xml" ,sbcl-cxml+xml)))
5519 (arguments
5520 `(#:asd-file "cxml.asd"
5521 #:asd-system-name "cxml/klacks"))))
5522
5523 (define sbcl-cxml+test
5524 (package
5525 (inherit sbcl-cxml+xml)
5526 (name "sbcl-cxml+test")
5527 (inputs
5528 `(("closure-common" ,sbcl-closure-common)
5529 ("puri" ,sbcl-puri)
5530 ("cxml+xml" ,sbcl-cxml+xml)))
5531 (arguments
5532 `(#:asd-file "cxml.asd"
5533 #:asd-system-name "cxml/test"))))
5534
5535 (define-public sbcl-cxml
5536 (package
5537 (inherit sbcl-cxml+xml)
5538 (name "sbcl-cxml")
5539 (inputs
5540 `(("closure-common" ,sbcl-closure-common)
5541 ("puri" ,sbcl-puri)
5542 ("trivial-gray-streams" ,sbcl-trivial-gray-streams)
5543 ("cxml+dom" ,sbcl-cxml+dom)
5544 ("cxml+klacks" ,sbcl-cxml+klacks)
5545 ("cxml+test" ,sbcl-cxml+test)))
5546 (arguments
5547 `(#:asd-file "cxml.asd"
5548 #:asd-system-name "cxml"
5549 #:phases
5550 (modify-phases %standard-phases
5551 (add-after 'build 'install-dtd
5552 (lambda* (#:key outputs #:allow-other-keys)
5553 (install-file "catalog.dtd"
5554 (string-append
5555 (assoc-ref outputs "out")
5556 "/lib/" (%lisp-type)))))
5557 (add-after 'create-asd 'remove-component
5558 ;; XXX: The original .asd has no components, but our build system
5559 ;; creates an entry nonetheless. We need to remove it for the
5560 ;; generated .asd to load properly. See trivia.trivial for a
5561 ;; similar problem.
5562 (lambda* (#:key outputs #:allow-other-keys)
5563 (let* ((out (assoc-ref outputs "out"))
5564 (asd (string-append out "/lib/sbcl/cxml.asd")))
5565 (substitute* asd
5566 ((" :components
5567 ")
5568 ""))
5569 (substitute* asd
5570 ((" *\\(\\(:compiled-file \"cxml--system\"\\)\\)")
5571 ""))))))))))
5572
5573 (define-public cl-cxml
5574 (sbcl-package->cl-source-package sbcl-cxml))
5575
5576 (define-public sbcl-cl-reexport
5577 (let ((commit "312f3661bbe187b5f28536cd7ec2956e91366c3b")
5578 (revision "1"))
5579 (package
5580 (name "sbcl-cl-reexport")
5581 (build-system asdf-build-system/sbcl)
5582 (version (git-version "0.1" revision commit))
5583 (home-page "https://github.com/takagi/cl-reexport")
5584 (source
5585 (origin
5586 (method git-fetch)
5587 (uri (git-reference
5588 (url home-page)
5589 (commit commit)))
5590 (file-name (git-file-name name version))
5591 (sha256
5592 (base32
5593 "1cwpn1m3wrl0fl9plznn7p464db646gnfc8zkyk97dyxski2aq0x"))))
5594 (inputs
5595 `(("alexandria" ,sbcl-alexandria)))
5596 (arguments
5597 ;; TODO: Tests fail because cl-test-more is missing, but I can't find it online.
5598 `(#:tests? #f))
5599 (synopsis "HTTP cookie manager for Common Lisp")
5600 (description "cl-cookie is a Common Lisp library featuring parsing of
5601 cookie headers, cookie creation, cookie jar creation and more.")
5602 (license license:llgpl))))
5603
5604 (define-public cl-reexport
5605 (sbcl-package->cl-source-package sbcl-cl-reexport))
5606
5607 (define-public sbcl-cl-cookie
5608 (let ((commit "cea55aed8b9ad25fafd13defbcb9fe8f41b29546")
5609 (revision "1"))
5610 (package
5611 (name "sbcl-cl-cookie")
5612 (build-system asdf-build-system/sbcl)
5613 (version (git-version "0.9.10" revision commit))
5614 (home-page "https://github.com/fukamachi/cl-cookie")
5615 (source
5616 (origin
5617 (method git-fetch)
5618 (uri (git-reference
5619 (url home-page)
5620 (commit commit)))
5621 (file-name (git-file-name name version))
5622 (sha256
5623 (base32
5624 "090g7z75h98zvc1ldx0vh4jn4086dhjm2w30jcwkq553qmyxwl8h"))))
5625 (inputs
5626 `(("proc-parse" ,sbcl-proc-parse)
5627 ("alexandria" ,sbcl-alexandria)
5628 ("quri" ,sbcl-quri)
5629 ("cl-ppcre" ,sbcl-cl-ppcre)
5630 ("local-time" ,sbcl-local-time)))
5631 (native-inputs
5632 `(("prove-asdf" ,sbcl-prove-asdf)
5633 ("prove" ,sbcl-prove)))
5634 (arguments
5635 ;; TODO: Tests fail because cl-cookie depends on cl-cookie-test.
5636 `(#:tests? #f))
5637 (synopsis "HTTP cookie manager for Common Lisp")
5638 (description "cl-cookie is a Common Lisp library featuring parsing of
5639 cookie headers, cookie creation, cookie jar creation and more.")
5640 (license license:bsd-2))))
5641
5642 (define-public cl-cookie
5643 (sbcl-package->cl-source-package sbcl-cl-cookie))
5644
5645 (define-public sbcl-dexador
5646 (let ((commit "a2714d126cc94bc7a9a6e1e3c08de455b3a66378")
5647 (revision "1"))
5648 (package
5649 (name "sbcl-dexador")
5650 (build-system asdf-build-system/sbcl)
5651 (version (git-version "0.9.10" revision commit))
5652 (home-page "https://github.com/fukamachi/dexador")
5653 (source
5654 (origin
5655 (method git-fetch)
5656 (uri (git-reference
5657 (url home-page)
5658 (commit commit)))
5659 (file-name (git-file-name name version))
5660 (sha256
5661 (base32
5662 "0nbqgn4v3l2z6m1k1bdxfnqpfrk84nxdmz7csz11zzcfs4flkv79"))))
5663 (inputs
5664 `(("trivial-gray-streams" ,sbcl-trivial-gray-streams)
5665 ("babel" ,sbcl-babel)
5666 ("usocket" ,sbcl-usocket)
5667 ("fast-http" ,sbcl-fast-http)
5668 ("quri" ,sbcl-quri)
5669 ("fast-io" ,sbcl-fast-io)
5670 ("chunga" ,sbcl-chunga)
5671 ("cl-ppcre" ,sbcl-cl-ppcre)
5672 ("cl-cookie" ,sbcl-cl-cookie)
5673 ("trivial-mimes" ,sbcl-trivial-mimes)
5674 ("chipz" ,sbcl-chipz)
5675 ("cl-base64" ,sbcl-cl-base64)
5676 ("cl-reexport" ,sbcl-cl-reexport)
5677 ("cl+ssl" ,sbcl-cl+ssl)
5678 ("bordeaux-threads" ,sbcl-bordeaux-threads)
5679 ("alexandria" ,sbcl-alexandria)))
5680 (native-inputs
5681 `(("prove" ,sbcl-prove)
5682 ("prove-asdf" ,sbcl-prove-asdf)
5683 ("lack-request" ,sbcl-lack-request)
5684 ("clack" ,sbcl-clack)
5685 ("babel" ,sbcl-babel)
5686 ("alexandria" ,sbcl-alexandria)
5687 ("cl-ppcre" ,sbcl-cl-ppcre)
5688 ("local-time" ,sbcl-local-time)))
5689 (arguments
5690 ;; TODO: Circular dependency: tests depend on clack-test which depends on dexador.
5691 `(#:tests? #f
5692 #:phases
5693 (modify-phases %standard-phases
5694 (add-after 'unpack 'fix-permissions
5695 (lambda _ (make-file-writable "t/data/test.gz") #t)))))
5696 (synopsis "Yet another HTTP client for Common Lisp")
5697 (description "Dexador is yet another HTTP client for Common Lisp with
5698 neat APIs and connection-pooling. It is meant to supersede Drakma.")
5699 (license license:expat))))
5700
5701 (define-public cl-dexador
5702 (package
5703 (inherit (sbcl-package->cl-source-package sbcl-dexador))
5704 (arguments
5705 `(#:phases
5706 ;; asdf-build-system/source has its own phases and does not inherit
5707 ;; from asdf-build-system/sbcl phases.
5708 (modify-phases %standard-phases/source
5709 (add-after 'unpack 'fix-permissions
5710 (lambda _ (make-file-writable "t/data/test.gz") #t)))))))
5711
5712 (define-public ecl-dexador
5713 (sbcl-package->ecl-package sbcl-dexador))
5714
5715 (define-public sbcl-lisp-namespace
5716 (let ((commit "28107cafe34e4c1c67490fde60c7f92dc610b2e0")
5717 (revision "1"))
5718 (package
5719 (name "sbcl-lisp-namespace")
5720 (build-system asdf-build-system/sbcl)
5721 (version (git-version "0.1" revision commit))
5722 (home-page "https://github.com/guicho271828/lisp-namespace")
5723 (source
5724 (origin
5725 (method git-fetch)
5726 (uri (git-reference
5727 (url home-page)
5728 (commit commit)))
5729 (file-name (git-file-name name version))
5730 (sha256
5731 (base32
5732 "1jw2wykp06z2afb9nm1lgfzll5cjlj36pnknjx614057zkkxq4iy"))))
5733 (inputs
5734 `(("alexandria" ,sbcl-alexandria)))
5735 (native-inputs
5736 `(("fiveam" ,sbcl-fiveam)))
5737 (arguments
5738 `(#:test-asd-file "lisp-namespace.test.asd"
5739 ;; XXX: Component LISP-NAMESPACE-ASD::LISP-NAMESPACE.TEST not found
5740 #:tests? #f))
5741 (synopsis "LISP-N, or extensible namespaces in Common Lisp")
5742 (description "Common Lisp already has major 2 namespaces, function
5743 namespace and value namespace (or variable namespace), but there are actually
5744 more — e.g., class namespace.
5745 This library offers macros to deal with symbols from any namespace.")
5746 (license license:llgpl))))
5747
5748 (define-public cl-lisp-namespace
5749 (sbcl-package->cl-source-package sbcl-lisp-namespace))
5750
5751 (define-public sbcl-trivial-cltl2
5752 (let ((commit "8eec8407df833e8f27df8a388bc10913f16d9e83")
5753 (revision "1"))
5754 (package
5755 (name "sbcl-trivial-cltl2")
5756 (build-system asdf-build-system/sbcl)
5757 (version (git-version "0.1.1" revision commit))
5758 (home-page "https://github.com/Zulu-Inuoe/trivial-cltl2")
5759 (source
5760 (origin
5761 (method git-fetch)
5762 (uri (git-reference
5763 (url home-page)
5764 (commit commit)))
5765 (file-name (git-file-name name version))
5766 (sha256
5767 (base32
5768 "1dyyxz17vqv8hlfwq287gl8xxbvcnq798ajb7p5jdjz91wqf4bgk"))))
5769 (synopsis "Simple CLtL2 compatibility layer for Common Lisp")
5770 (description "This library is a portable compatibility layer around
5771 \"Common Lisp the Language, 2nd
5772 Edition\" (@url{https://www.cs.cmu.edu/Groups/AI/html/cltl/clm/node102.html})
5773 and it exports symbols from implementation-specific packages.")
5774 (license license:llgpl))))
5775
5776 (define-public cl-trivial-cltl2
5777 (sbcl-package->cl-source-package sbcl-trivial-cltl2))
5778
5779 (define-public sbcl-introspect-environment
5780 (let ((commit "fff42f8f8fd0d99db5ad6c5812e53de7d660020b")
5781 (revision "1"))
5782 (package
5783 (name "sbcl-introspect-environment")
5784 (build-system asdf-build-system/sbcl)
5785 (version (git-version "0.1" revision commit))
5786 (home-page "https://github.com/Bike/introspect-environment")
5787 (source
5788 (origin
5789 (method git-fetch)
5790 (uri (git-reference
5791 (url home-page)
5792 (commit commit)))
5793 (file-name (git-file-name name version))
5794 (sha256
5795 (base32
5796 "1i305n0wfmpac63ni4i3vixnnkl8daw5ncxy0k3dv92krgx6qzhp"))))
5797 (native-inputs
5798 `(("fiveam" ,sbcl-fiveam)))
5799 (synopsis "Common Lisp environment introspection portability layer")
5800 (description "This library is a small interface to portable but
5801 nonstandard introspection of Common Lisp environments. It is intended to
5802 allow a bit more compile-time introspection of environments in Common Lisp.
5803
5804 Quite a bit of information is available at the time a macro or compiler-macro
5805 runs; inlining info, type declarations, that sort of thing. This information
5806 is all standard - any Common Lisp program can @code{(declare (integer x))} and
5807 such.
5808
5809 This info ought to be accessible through the standard @code{&environment}
5810 parameters, but it is not. Several implementations keep the information for
5811 their own purposes but do not make it available to user programs, because
5812 there is no standard mechanism to do so.
5813
5814 This library uses implementation-specific hooks to make information available
5815 to users. This is currently supported on SBCL, CCL, and CMUCL. Other
5816 implementations have implementations of the functions that do as much as they
5817 can and/or provide reasonable defaults.")
5818 (license license:wtfpl2))))
5819
5820 (define-public cl-introspect-environment
5821 (sbcl-package->cl-source-package sbcl-introspect-environment))
5822
5823 (define-public sbcl-type-i
5824 (let ((commit "dea233f45f94064105ec09f0767de338f67dcbe2")
5825 (revision "1"))
5826 (package
5827 (name "sbcl-type-i")
5828 (build-system asdf-build-system/sbcl)
5829 (version (git-version "0.1" revision commit))
5830 (home-page "https://github.com/guicho271828/type-i")
5831 (source
5832 (origin
5833 (method git-fetch)
5834 (uri (git-reference
5835 (url home-page)
5836 (commit commit)))
5837 (file-name (git-file-name name version))
5838 (sha256
5839 (base32
5840 "039g5pbrhh65s0bhr9314gmd2nwc2y5lp2377c5qrc2lxky89qs3"))))
5841 (inputs
5842 `(("alexandria" ,sbcl-alexandria)
5843 ("introspect-environment" ,sbcl-introspect-environment)
5844 ("trivia.trivial" ,sbcl-trivia.trivial)))
5845 (native-inputs
5846 `(("fiveam" ,sbcl-fiveam)))
5847 (arguments
5848 `(#:test-asd-file "type-i.test.asd"))
5849 (synopsis "Type inference utility on unary predicates for Common Lisp")
5850 (description "This library tries to provide a way to detect what kind of
5851 type the given predicate is trying to check. This is different from inferring
5852 the return type of a function.")
5853 (license license:llgpl))))
5854
5855 (define-public cl-type-i
5856 (sbcl-package->cl-source-package sbcl-type-i))
5857
5858 (define-public sbcl-optima
5859 (let ((commit "373b245b928c1a5cce91a6cb5bfe5dd77eb36195")
5860 (revision "1"))
5861 (package
5862 (name "sbcl-optima")
5863 (build-system asdf-build-system/sbcl)
5864 (version (git-version "1.0" revision commit))
5865 (home-page "https://github.com/m2ym/optima")
5866 (source
5867 (origin
5868 (method git-fetch)
5869 (uri (git-reference
5870 (url home-page)
5871 (commit commit)))
5872 (file-name (git-file-name name version))
5873 (sha256
5874 (base32
5875 "1yw4ymq7ms89342kkvb3aqxgv0w38m9kd8ikdqxxzyybnkjhndal"))))
5876 (inputs
5877 `(("alexandria" ,sbcl-alexandria)
5878 ("closer-mop" ,sbcl-closer-mop)))
5879 (native-inputs
5880 `(("eos" ,sbcl-eos)))
5881 (arguments
5882 ;; XXX: Circular dependencies: tests depend on optima.ppcre which depends on optima.
5883 `(#:tests? #f
5884 #:test-asd-file "optima.test.asd"))
5885 (synopsis "Optimized pattern matching library for Common Lisp")
5886 (description "Optima is a fast pattern matching library which uses
5887 optimizing techniques widely used in the functional programming world.")
5888 (license license:expat))))
5889
5890 (define-public cl-optima
5891 (sbcl-package->cl-source-package sbcl-optima))
5892
5893 (define-public sbcl-fare-quasiquote
5894 (package
5895 (name "sbcl-fare-quasiquote")
5896 (build-system asdf-build-system/sbcl)
5897 (version "20171130")
5898 (home-page "http://common-lisp.net/project/fare-quasiquote")
5899 (source
5900 (origin
5901 (method url-fetch)
5902 (uri (string-append "http://beta.quicklisp.org/archive/fare-quasiquote/"
5903 (date->string (string->date version "~Y~m~d") "~Y-~m-~d")
5904 "/fare-quasiquote-"
5905 version
5906 "-git.tgz"))
5907 (sha256
5908 (base32
5909 "00brmh7ndsi0c97nibi8cy10j3l4gmkyrfrr5jr5lzkfb7ngyfqa"))))
5910 (inputs
5911 `(("fare-utils" ,sbcl-fare-utils)))
5912 (arguments
5913 ;; XXX: Circular dependencies: Tests depend on subsystems, which depend on the main systems.
5914 `(#:tests? #f
5915 #:phases
5916 (modify-phases %standard-phases
5917 ;; XXX: Require 1.0.0 version of fare-utils, and we package some
5918 ;; commits after 1.0.0.5, but ASDF fails to read the
5919 ;; "-REVISION-COMMIT" part generated by Guix.
5920 (add-after 'unpack 'patch-requirement
5921 (lambda _
5922 (substitute* "fare-quasiquote.asd"
5923 (("\\(:version \"fare-utils\" \"1.0.0\"\\)") "\"fare-utils\"")))))))
5924 (synopsis "Pattern-matching friendly implementation of quasiquote for Common Lisp")
5925 (description "The main purpose of this n+2nd reimplementation of
5926 quasiquote is enable matching of quasiquoted patterns, using Optima or
5927 Trivia.")
5928 (license license:expat)))
5929
5930 (define-public cl-fare-quasiquote
5931 (sbcl-package->cl-source-package sbcl-fare-quasiquote))
5932
5933 (define-public sbcl-fare-quasiquote-optima
5934 (package
5935 (inherit sbcl-fare-quasiquote)
5936 (name "sbcl-fare-quasiquote-optima")
5937 (inputs
5938 `(("optima" ,sbcl-optima)
5939 ("fare-quasiquote" ,sbcl-fare-quasiquote)))
5940 (arguments
5941 '(#:phases
5942 (modify-phases %standard-phases
5943 (add-after 'unpack 'patch-requirement
5944 (lambda _
5945 (substitute* "fare-quasiquote-optima.asd"
5946 (("\\(:version \"optima\" \"1\\.0\"\\)")
5947 "\"optima\""))
5948 #t)))))))
5949
5950 (define-public cl-fare-quasiquote-optima
5951 (sbcl-package->cl-source-package sbcl-fare-quasiquote-optima))
5952
5953 (define-public sbcl-fare-quasiquote-readtable
5954 (package
5955 (inherit sbcl-fare-quasiquote)
5956 (name "sbcl-fare-quasiquote-readtable")
5957 (inputs
5958 `(("fare-quasiquote" ,sbcl-fare-quasiquote)
5959 ("named-readtables" ,sbcl-named-readtables)))
5960 (description "The main purpose of this n+2nd reimplementation of
5961 quasiquote is enable matching of quasiquoted patterns, using Optima or
5962 Trivia.
5963
5964 This package uses fare-quasiquote with named-readtable.")))
5965
5966 (define-public cl-fare-quasiquote-readtable
5967 (sbcl-package->cl-source-package sbcl-fare-quasiquote-readtable))
5968
5969 ;; TODO: Add support for component-less system in asdf-build-system/sbcl.
5970 (define-public cl-fare-quasiquote-extras
5971 (package
5972 (inherit cl-fare-quasiquote)
5973 (name "cl-fare-quasiquote-extras")
5974 (build-system asdf-build-system/source)
5975 (propagated-inputs
5976 `(("fare-quasiquote" ,cl-fare-quasiquote)
5977 ("fare-quasiquote-optima" ,cl-fare-quasiquote-optima)
5978 ("fare-quasiquote-readtable" ,cl-fare-quasiquote-readtable)))
5979 (description "This library combines @code{fare-quasiquote-readtable} and
5980 @code{fare-quasiquote-optima}.")))
5981
5982 (define-public sbcl-trivia.level0
5983 (let ((commit "902e0c65602bbfe96ae82e679330b3771ddc7603")
5984 (revision "1"))
5985 (package
5986 (name "sbcl-trivia.level0")
5987 (build-system asdf-build-system/sbcl)
5988 (version (git-version "0.0.0" revision commit))
5989 (home-page "https://github.com/guicho271828/trivia")
5990 (source
5991 (origin
5992 (method git-fetch)
5993 (uri (git-reference
5994 (url home-page)
5995 (commit commit)))
5996 (file-name (git-file-name name version))
5997 (sha256
5998 (base32
5999 "11qbab30qqnfy9mx3x9fvgcw1jbvh1qn2cqv3p8xdn2m8981jvhr"))))
6000 (inputs
6001 `(("alexandria" ,sbcl-alexandria)))
6002 (synopsis "Pattern matching in Common Lisp")
6003 (description "Trivia is a pattern matching compiler that is compatible
6004 with Optima, another pattern matching library for Common Lisp. It is meant to
6005 be faster and more extensible than Optima.")
6006 (license license:llgpl))))
6007
6008 (define-public sbcl-trivia.level1
6009 (package
6010 (inherit sbcl-trivia.level0)
6011 (name "sbcl-trivia.level1")
6012 (inputs
6013 `(("trivia.level0" ,sbcl-trivia.level0)))
6014 (description "Trivia is a pattern matching compiler that is compatible
6015 with Optima, another pattern matching library for Common Lisp. It is meant to
6016 be faster and more extensible than Optima.
6017
6018 This system contains the core patterns of Trivia.")))
6019
6020 (define-public sbcl-trivia.level2
6021 (package
6022 (inherit sbcl-trivia.level0)
6023 (name "sbcl-trivia.level2")
6024 (inputs
6025 `(("trivia.level1" ,sbcl-trivia.level1)
6026 ("lisp-namespace" ,sbcl-lisp-namespace)
6027 ("trivial-cltl2" ,sbcl-trivial-cltl2)
6028 ("closer-mop" ,sbcl-closer-mop)))
6029 (description "Trivia is a pattern matching compiler that is compatible
6030 with Optima, another pattern matching library for Common Lisp. It is meant to
6031 be faster and more extensible than Optima.
6032
6033 This system contains a non-optimized pattern matcher compatible with Optima,
6034 with extensible optimizer interface.")))
6035
6036 (define-public sbcl-trivia.trivial
6037 (package
6038 (inherit sbcl-trivia.level0)
6039 (name "sbcl-trivia.trivial")
6040 (inputs
6041 `(("trivia.level2" ,sbcl-trivia.level2)))
6042 (arguments
6043 `(#:phases
6044 (modify-phases %standard-phases
6045 (replace 'create-asd-file
6046 (lambda* (#:key outputs inputs #:allow-other-keys)
6047 (let* ((out (assoc-ref outputs "out"))
6048 (lib (string-append out "/lib/" (%lisp-type)))
6049 (level2 (assoc-ref inputs "trivia.level2")))
6050 (mkdir-p lib)
6051 (install-file "trivia.trivial.asd" lib)
6052 ;; XXX: This .asd does not have any component and the build
6053 ;; system fails to work in this case. We should update the
6054 ;; build system to handle component-less .asd.
6055 ;; TODO: How do we append to file in Guile? It seems that
6056 ;; (open-file ... "a") gets a "Permission denied".
6057 (substitute* (string-append lib "/trivia.trivial.asd")
6058 (("\"\\)")
6059 (string-append "\")
6060
6061 (progn (asdf/source-registry:ensure-source-registry)
6062 (setf (gethash
6063 \"trivia.level2\"
6064 asdf/source-registry:*source-registry*)
6065 #p\""
6066 level2
6067 "/share/common-lisp/sbcl-bundle-systems/trivia.level2.asd\"))")))))))))
6068 (description "Trivia is a pattern matching compiler that is compatible
6069 with Optima, another pattern matching library for Common Lisp. It is meant to
6070 be faster and more extensible than Optima.
6071
6072 This system contains the base level system of Trivia with a trivial optimizer.")))
6073
6074 (define-public sbcl-trivia.balland2006
6075 (package
6076 (inherit sbcl-trivia.level0)
6077 (name "sbcl-trivia.balland2006")
6078 (inputs
6079 `(("trivia.trivial" ,sbcl-trivia.trivial)
6080 ("iterate" ,sbcl-iterate)
6081 ("type-i" ,sbcl-type-i)
6082 ("alexandria" ,sbcl-alexandria)))
6083 (arguments
6084 ;; Tests are done in trivia itself.
6085 `(#:tests? #f))
6086 (description "Trivia is a pattern matching compiler that is compatible
6087 with Optima, another pattern matching library for Common Lisp. It is meant to
6088 be faster and more extensible than Optima.
6089
6090 This system contains the base level system of Trivia with a trivial optimizer.")))
6091
6092 (define-public sbcl-trivia.ppcre
6093 (package
6094 (inherit sbcl-trivia.level0)
6095 (name "sbcl-trivia.ppcre")
6096 (inputs
6097 `(("trivia.trivial" ,sbcl-trivia.trivial)
6098 ("cl-ppcre" ,sbcl-cl-ppcre)))
6099 (description "Trivia is a pattern matching compiler that is compatible
6100 with Optima, another pattern matching library for Common Lisp. It is meant to
6101 be faster and more extensible than Optima.
6102
6103 This system contains the PPCRE extension.")))
6104
6105 (define-public sbcl-trivia.quasiquote
6106 (package
6107 (inherit sbcl-trivia.level0)
6108 (name "sbcl-trivia.quasiquote")
6109 (inputs
6110 `(("trivia.trivial" ,sbcl-trivia.trivial)
6111 ("fare-quasiquote" ,sbcl-fare-quasiquote)
6112 ("fare-quasiquote-readtable" ,sbcl-fare-quasiquote-readtable)))
6113 (description "Trivia is a pattern matching compiler that is compatible
6114 with Optima, another pattern matching library for Common Lisp. It is meant to
6115 be faster and more extensible than Optima.
6116
6117 This system contains the fare-quasiquote extension.")))
6118
6119 (define-public sbcl-trivia.cffi
6120 (package
6121 (inherit sbcl-trivia.level0)
6122 (name "sbcl-trivia.cffi")
6123 (inputs
6124 `(("cffi" ,sbcl-cffi)
6125 ("trivia.trivial" ,sbcl-trivia.trivial)))
6126 (description "Trivia is a pattern matching compiler that is compatible
6127 with Optima, another pattern matching library for Common Lisp. It is meant to
6128 be faster and more extensible than Optima.
6129
6130 This system contains the CFFI foreign slot access extension.")))
6131
6132 (define-public sbcl-trivia
6133 (package
6134 (inherit sbcl-trivia.level0)
6135 (name "sbcl-trivia")
6136 (inputs
6137 `(("trivia.balland2006" ,sbcl-trivia.balland2006)))
6138 (native-inputs
6139 `(("fiveam" ,sbcl-fiveam)
6140 ("trivia.ppcre" ,sbcl-trivia.ppcre)
6141 ("trivia.quasiquote" ,sbcl-trivia.quasiquote)
6142 ("trivia.cffi" ,sbcl-trivia.cffi)
6143 ("optima" ,sbcl-optima)))
6144 (arguments
6145 `(#:test-asd-file "trivia.test.asd"
6146 #:phases
6147 (modify-phases %standard-phases
6148 (add-after 'create-asd 'remove-component
6149 ;; XXX: The original .asd has no components, but our build system
6150 ;; creates an entry nonetheless. We need to remove it for the
6151 ;; generated .asd to load properly. See trivia.trivial for a
6152 ;; similar problem.
6153 (lambda* (#:key outputs #:allow-other-keys)
6154 (let* ((out (assoc-ref outputs "out"))
6155 (asd (string-append out "/lib/" (%lisp-type) "/trivia.asd")))
6156 (substitute* asd
6157 ((" :components
6158 ")
6159 ""))
6160 (substitute* asd
6161 ((" *\\(\\(:compiled-file \"trivia--system\"\\)\\)")
6162 ""))))))))
6163 (description "Trivia is a pattern matching compiler that is compatible
6164 with Optima, another pattern matching library for Common Lisp. It is meant to
6165 be faster and more extensible than Optima.")))
6166
6167 (define-public cl-trivia
6168 (sbcl-package->cl-source-package sbcl-trivia))
6169
6170 (define-public sbcl-mk-string-metrics
6171 (package
6172 (name "sbcl-mk-string-metrics")
6173 (version "0.1.2")
6174 (home-page "https://github.com/cbaggers/mk-string-metrics/")
6175 (source (origin
6176 (method git-fetch)
6177 (uri (git-reference
6178 (url home-page)
6179 (commit version)))
6180 (sha256
6181 (base32 "0bg0bv2mfd4k0g3x72x563hvmrx18xavaffr6xk5rh4if5j7kcf6"))
6182 (file-name (git-file-name name version))))
6183 (build-system asdf-build-system/sbcl)
6184 (synopsis "Calculate various string metrics efficiently in Common Lisp")
6185 (description "This library implements efficient algorithms that calculate
6186 various string metrics in Common Lisp:
6187
6188 @itemize
6189 @item Damerau-Levenshtein distance
6190 @item Hamming distance
6191 @item Jaccard similarity coefficient
6192 @item Jaro distance
6193 @item Jaro-Winkler distance
6194 @item Levenshtein distance
6195 @item Normalized Damerau-Levenshtein distance
6196 @item Normalized Levenshtein distance
6197 @item Overlap coefficient
6198 @end itemize\n")
6199 (license license:x11)))
6200
6201 (define-public cl-mk-string-metrics
6202 (sbcl-package->cl-source-package sbcl-mk-string-metrics))
6203
6204 (define-public sbcl-cl-str
6205 (let ((commit "3d5ec86e3a0199e5973aacde951086dfd754b5e5"))
6206 (package
6207 (name "sbcl-cl-str")
6208 (version (git-version "0.8" "1" commit))
6209 (home-page "https://github.com/vindarel/cl-str")
6210 (source (origin
6211 (method git-fetch)
6212 (uri (git-reference
6213 (url home-page)
6214 (commit commit)))
6215 (sha256
6216 (base32 "0szzzbygw9h985yxz909vvqrp69pmpcpahn7hn350lnyjislk9ga"))
6217 (file-name (git-file-name name version))))
6218 (build-system asdf-build-system/sbcl)
6219 (inputs
6220 `(("cl-ppcre" ,sbcl-cl-ppcre)
6221 ("cl-ppcre-unicode" ,sbcl-cl-ppcre-unicode)))
6222 (native-inputs
6223 `(("prove" ,sbcl-prove)
6224 ("prove-asdf" ,sbcl-prove-asdf)))
6225 (arguments
6226 `(#:asd-file "str.asd"
6227 #:asd-system-name "str"
6228 #:test-asd-file "str.test.asd"))
6229 (synopsis "Modern, consistent and terse Common Lisp string manipulation library")
6230 (description "A modern and consistent Common Lisp string manipulation
6231 library that focuses on modernity, simplicity and discoverability:
6232 @code{(str:trim s)} instead of @code{(string-trim '(#\\Space ...) s)}), or
6233 @code{str:concat strings} instead of an unusual format construct; one
6234 discoverable library instead of many; consistency and composability, where
6235 @code{s} is always the last argument, which makes it easier to feed pipes and
6236 arrows.")
6237 (license license:expat))))
6238
6239 (define-public cl-str
6240 (sbcl-package->cl-source-package sbcl-cl-str))
6241
6242 (define-public sbcl-cl-xmlspam
6243 (let ((commit "ea06abcca2a73a9779bcfb09081e56665f94e22a"))
6244 (package
6245 (name "sbcl-cl-xmlspam")
6246 (build-system asdf-build-system/sbcl)
6247 (version (git-version "0.0.0" "1" commit))
6248 (home-page "https://github.com/rogpeppe/cl-xmlspam")
6249 (source
6250 (origin
6251 (method git-fetch)
6252 (uri (git-reference
6253 (url home-page)
6254 (commit commit)))
6255 (file-name (string-append name "-" version))
6256 (sha256
6257 (base32
6258 "0w4rqvrgdgk3fwfq3kx4r7wwdr2bv3b6n3bdqwsiriw9psqzpz2s"))))
6259 (inputs
6260 `(("cxml" ,sbcl-cxml)
6261 ("cl-ppcre" ,sbcl-cl-ppcre)))
6262 (synopsis "Concise, regexp-like pattern matching on streaming XML for Common Lisp")
6263 (description "CXML does an excellent job at parsing XML elements, but what
6264 do you do when you have a XML file that's larger than you want to fit in
6265 memory, and you want to extract some information from it? Writing code to deal
6266 with SAX events, or even using Klacks, quickly becomes tedious.
6267 @code{cl-xmlspam} (for XML Stream PAttern Matcher) is designed to make it easy
6268 to write code that mirrors the structure of the XML that it's parsing. It
6269 also makes it easy to shift paradigms when necessary - the usual Lisp control
6270 constructs can be used interchangeably with pattern matching, and the full
6271 power of CXML is available when necessary.")
6272 (license license:bsd-3))))
6273
6274 ;; TODO: dbus uses ASDF's package-inferred-system which is not supported by
6275 ;; asdf-build-system/sbcl as of 2019-08-02. We should fix
6276 ;; asdf-build-system/sbcl.
6277 (define-public cl-dbus
6278 (let ((commit "24b452df3a45ca5dc95015500f34baad175c981a")
6279 (revision "1"))
6280 (package
6281 (name "cl-dbus")
6282 (build-system asdf-build-system/source)
6283 (version (git-version "20190408" revision commit))
6284 (home-page "https://github.com/death/dbus")
6285 (source
6286 (origin
6287 (method git-fetch)
6288 (uri (git-reference
6289 (url home-page)
6290 (commit commit)))
6291 (file-name (git-file-name name version))
6292 (sha256
6293 (base32
6294 "0fw2q866yddbf23nk9pxphm9gsasx35vjyss82xzvndnjmzlqfl5"))))
6295 ;; Inputs must be propagated or else packages depending on this won't have the necessary packages.
6296 (propagated-inputs
6297 `(("alexandria" ,sbcl-alexandria)
6298 ("trivial-garbage" ,sbcl-trivial-garbage)
6299 ("babel" ,sbcl-babel)
6300 ("iolib" ,sbcl-iolib)
6301 ("iolib+multiplex" ,(@@ (gnu packages lisp-xyz) sbcl-iolib+multiplex))
6302 ("iolib+syscalls" ,(@@ (gnu packages lisp-xyz) sbcl-iolib+syscalls))
6303 ("iolib+streams" ,(@@ (gnu packages lisp-xyz) sbcl-iolib+streams))
6304 ("iolib+sockets" ,(@@ (gnu packages lisp-xyz) sbcl-iolib+sockets))
6305 ("ieee-floats" ,sbcl-ieee-floats)
6306 ("flexi-streams" ,sbcl-flexi-streams)
6307 ("cl-xmlspam" ,sbcl-cl-xmlspam)
6308 ("ironclad" ,sbcl-ironclad)))
6309 (synopsis "D-Bus client library for Common Lisp")
6310 (description "This is a Common Lisp library that allows to publish D-Bus
6311 objects as well as send and notify other objects connected to a bus.")
6312 (license license:bsd-2))))
6313
6314 (define-public sbcl-cl-hooks
6315 (let ((commit "5b638083f3b4f1221a52631d9c8a0a265565cac7")
6316 (revision "1"))
6317 (package
6318 (name "sbcl-cl-hooks")
6319 (build-system asdf-build-system/sbcl)
6320 (version (git-version "0.2.1" revision commit))
6321 (home-page "https://github.com/scymtym/architecture.hooks")
6322 (source
6323 (origin
6324 (method git-fetch)
6325 (uri (git-reference
6326 (url home-page)
6327 (commit commit)))
6328 (file-name (git-file-name name version))
6329 (sha256
6330 (base32
6331 "0bg3l0a28lw5gqqjp6p6b5nhwqk46sgkb7184w5qbfngw1hk8x9y"))))
6332 (inputs
6333 `(("alexandria" ,sbcl-alexandria)
6334 ("let-plus" ,sbcl-let-plus)
6335 ("trivial-garbage" ,sbcl-trivial-garbage)
6336 ("closer-mop" ,sbcl-closer-mop)))
6337 (native-inputs
6338 `(("fiveam" ,sbcl-fiveam)))
6339 (synopsis "Hooks extension point mechanism (as in Emacs) for Common Lisp")
6340 (description "A hook, in the present context, is a certain kind of
6341 extension point in a program that allows interleaving the execution of
6342 arbitrary code with the execution of a the program without introducing any
6343 coupling between the two. Hooks are used extensively in the extensible editor
6344 Emacs.
6345
6346 In the Common LISP Object System (CLOS), a similar kind of extensibility is
6347 possible using the flexible multi-method dispatch mechanism. It may even seem
6348 that the concept of hooks does not provide any benefits over the possibilities
6349 of CLOS. However, there are some differences:
6350
6351 @itemize
6352
6353 @item There can be only one method for each combination of specializers and
6354 qualifiers. As a result this kind of extension point cannot be used by
6355 multiple extensions independently.
6356 @item Removing code previously attached via a @code{:before}, @code{:after} or
6357 @code{:around} method can be cumbersome.
6358 @item There could be other or even multiple extension points besides @code{:before}
6359 and @code{:after} in a single method.
6360 @item Attaching codes to individual objects using eql specializers can be
6361 cumbersome.
6362 @item Introspection of code attached a particular extension point is
6363 cumbersome since this requires enumerating and inspecting the methods of a
6364 generic function.
6365 @end itemize
6366
6367 This library tries to complement some of these weaknesses of method-based
6368 extension-points via the concept of hooks.")
6369 (license license:llgpl))))
6370
6371 (define-public cl-hooks
6372 (sbcl-package->cl-source-package sbcl-cl-hooks))
6373
6374 (define-public ecl-cl-hooks
6375 (sbcl-package->ecl-package sbcl-cl-hooks))
6376
6377 (define-public sbcl-s-sysdeps
6378 (let ((commit "d28246b5dffef9e73a0e0e6cfbc4e878006fe34d")
6379 (revision "1"))
6380 (package
6381 (name "sbcl-s-sysdeps")
6382 (build-system asdf-build-system/sbcl)
6383 (version (git-version "1" revision commit))
6384 (home-page "https://github.com/svenvc/s-sysdeps")
6385 (source
6386 (origin
6387 (method git-fetch)
6388 (uri (git-reference
6389 (url home-page)
6390 (commit commit)))
6391 (file-name (git-file-name name version))
6392 (sha256
6393 (base32
6394 "14b69b81yrxmjlvmm3lfxk04x5v7hqz4fql121334wh72czznfh9"))))
6395 (synopsis "Common Lisp abstraction layer over platform dependent functionality")
6396 (description "@code{s-sysdeps} is an abstraction layer over platform
6397 dependent functionality. This simple package is used as a building block in a
6398 number of other open source projects.
6399
6400 @code{s-sysdeps} abstracts:
6401
6402 @itemize
6403 @item managing processes,
6404 @item implementing a standard TCP/IP server,
6405 @item opening a client TCP/IP socket stream,
6406 @item working with process locks.
6407 @end itemize\n")
6408 (license license:llgpl))))
6409
6410 (define-public cl-s-sysdeps
6411 (sbcl-package->cl-source-package sbcl-s-sysdeps))
6412
6413 (define-public ecl-s-sysdeps
6414 (sbcl-package->ecl-package sbcl-s-sysdeps))
6415
6416 (define-public sbcl-cl-prevalence
6417 (let ((commit "c163c227ed85d430b82cb1e3502f72d4f88e3cfa")
6418 (revision "1"))
6419 (package
6420 (name "sbcl-cl-prevalence")
6421 (build-system asdf-build-system/sbcl)
6422 (version (git-version "5" revision commit))
6423 (home-page "https://github.com/40ants/cl-prevalence")
6424 (source
6425 (origin
6426 (method git-fetch)
6427 (uri (git-reference
6428 (url home-page)
6429 (commit commit)))
6430 (file-name (git-file-name name version))
6431 (sha256
6432 (base32
6433 "1i9zj1q2ahgwch56an21yzbgkynz0kab9fyxkq9mg8p3xrv38jjn"))))
6434 (inputs
6435 `(("s-sysdeps" ,sbcl-s-sysdeps)
6436 ("s-xml" ,sbcl-s-xml)))
6437 (synopsis "Implementation of object prevalence for Common Lisp")
6438 (description "This Common Lisp library implements object prevalence (see
6439 @url{https://en.wikipedia.org/wiki/System_prevalence}). It allows
6440 for (de)serializing to and from s-exps as well as XML. Serialization of arbitrary
6441 classes and cyclic data structures are supported.")
6442 (license license:llgpl))))
6443
6444 (define-public cl-prevalence
6445 (sbcl-package->cl-source-package sbcl-cl-prevalence))
6446
6447 (define-public ecl-cl-prevalence
6448 (sbcl-package->ecl-package sbcl-cl-prevalence))
6449
6450 (define-public sbcl-series
6451 (let ((commit "da9061b336119d1e5214aff9117171d494d5a58a")
6452 (revision "1"))
6453 (package
6454 (name "sbcl-series")
6455 (version (git-version "2.2.11" revision commit))
6456 (source
6457 (origin
6458 (method git-fetch)
6459 (uri (git-reference
6460 (url "git://git.code.sf.net/p/series/series")
6461 (commit commit)))
6462 (file-name (git-file-name name version))
6463 (sha256
6464 (base32
6465 "07hk2lhfx42zk018pxqvn4gs77vd4n4g8m4xxbqaxgca76mifwfw"))))
6466 (build-system asdf-build-system/sbcl)
6467 (arguments
6468 ;; Disable the tests, they are apparently buggy and I didn't find
6469 ;; a simple way to make them run and pass.
6470 '(#:tests? #f))
6471 (synopsis "Series data structure for Common Lisp")
6472 (description
6473 "This Common Lisp library provides a series data structure much like
6474 a sequence, with similar kinds of operations. The difference is that in many
6475 situations, operations on series may be composed functionally and yet execute
6476 iteratively, without the need to construct intermediate series values
6477 explicitly. In this manner, series provide both the clarity of a functional
6478 programming style and the efficiency of an iterative programming style.")
6479 (home-page "http://series.sourceforge.net/")
6480 (license license:expat))))
6481
6482 (define-public cl-series
6483 (sbcl-package->cl-source-package sbcl-series))
6484
6485 (define-public ecl-series
6486 (sbcl-package->ecl-package sbcl-series))
6487
6488 (define-public sbcl-periods
6489 (let ((commit "983d4a57325db3c8def942f163133cec5391ec28")
6490 (revision "1"))
6491 (package
6492 (name "sbcl-periods")
6493 (version (git-version "0.0.2" revision commit))
6494 (source
6495 (origin
6496 (method git-fetch)
6497 (uri (git-reference
6498 (url "https://github.com/jwiegley/periods.git")
6499 (commit commit)))
6500 (file-name (git-file-name name version))
6501 (sha256
6502 (base32
6503 "0z30jr3lxz3cmi019fsl4lgcgwf0yqpn95v9zkkkwgymdrkd4lga"))))
6504 (build-system asdf-build-system/sbcl)
6505 (inputs
6506 `(("local-time" ,sbcl-local-time)))
6507 (synopsis "Common Lisp library for manipulating date/time objects")
6508 (description
6509 "Periods is a Common Lisp library providing a set of utilities for
6510 manipulating times, distances between times, and both contiguous and
6511 discontiguous ranges of time.")
6512 (home-page "https://github.com/jwiegley/periods")
6513 (license license:bsd-3))))
6514
6515 (define-public cl-periods
6516 (sbcl-package->cl-source-package sbcl-periods))
6517
6518 (define-public ecl-periods
6519 (sbcl-package->ecl-package sbcl-periods))
6520
6521 (define-public sbcl-periods-series
6522 (package
6523 (inherit sbcl-periods)
6524 (name "sbcl-periods-series")
6525 (inputs
6526 `(("periods" ,sbcl-periods)
6527 ("series" ,sbcl-series)))
6528 (arguments
6529 '(#:asd-file "periods-series.asd"
6530 #:asd-system-name "periods-series"))
6531 (description
6532 "Periods-series is an extension of the periods Common Lisp library
6533 providing functions compatible with the series Common Lisp library.")))
6534
6535 (define-public cl-periods-series
6536 (sbcl-package->cl-source-package sbcl-periods-series))
6537
6538 (define-public ecl-periods-series
6539 (sbcl-package->ecl-package sbcl-periods-series))
6540
6541 (define-public sbcl-metatilities-base
6542 (let ((commit "6eaa9e3ff0939a93a92109dd0fcd218de85417d5")
6543 (revision "1"))
6544 (package
6545 (name "sbcl-metatilities-base")
6546 (version (git-version "0.6.6" revision commit))
6547 (source
6548 (origin
6549 (method git-fetch)
6550 (uri (git-reference
6551 (url "https://github.com/gwkkwg/metatilities-base.git")
6552 (commit commit)))
6553 (file-name (git-file-name name version))
6554 (sha256
6555 (base32
6556 "0xpa86pdzlnf4v5g64j3ifaplx71sx2ha8b7vvakswi652679ma0"))))
6557 (build-system asdf-build-system/sbcl)
6558 (native-inputs
6559 `(("lift" ,sbcl-lift)))
6560 (synopsis "Core of the metatilities Common Lisp library")
6561 (description
6562 "Metatilities-base is the core of the metatilities Common Lisp library
6563 which implements a set of utilities.")
6564 (home-page "https://common-lisp.net/project/metatilities-base/")
6565 (license license:expat))))
6566
6567 (define-public cl-metatilities-base
6568 (sbcl-package->cl-source-package sbcl-metatilities-base))
6569
6570 (define-public ecl-metatilities-base
6571 (sbcl-package->ecl-package sbcl-metatilities-base))
6572
6573 (define-public sbcl-cl-containers
6574 (let ((commit "810927e19d933bcf38ffeb7a23ce521efc432d45")
6575 (revision "1"))
6576 (package
6577 (name "sbcl-cl-containers")
6578 (version (git-version "0.12.1" revision commit))
6579 (source
6580 (origin
6581 (method git-fetch)
6582 (uri (git-reference
6583 (url "https://github.com/gwkkwg/cl-containers.git")
6584 (commit commit)))
6585 (file-name (git-file-name name version))
6586 (sha256
6587 (base32
6588 "1s9faxw7svhbjpkhfrz2qxgjm3cvyjb8wpyb4m8dx4i5g7vvprkv"))))
6589 (build-system asdf-build-system/sbcl)
6590 (native-inputs
6591 `(("lift" ,sbcl-lift)))
6592 (inputs
6593 `(("metatilities-base" ,sbcl-metatilities-base)))
6594 (arguments
6595 '(#:phases
6596 (modify-phases %standard-phases
6597 (add-after 'unpack 'relax-version-checks
6598 (lambda _
6599 (substitute* "cl-containers.asd"
6600 (("\\(:version \"metatilities-base\" \"0\\.6\\.6\"\\)")
6601 "\"metatilities-base\""))
6602 (substitute* "cl-containers-test.asd"
6603 (("\\(:version \"lift\" \"1\\.7\\.0\"\\)")
6604 "\"lift\""))
6605 #t)))))
6606 (synopsis "Container library for Common Lisp")
6607 (description
6608 "Common Lisp ships with a set of powerful built in data structures
6609 including the venerable list, full featured arrays, and hash-tables.
6610 CL-containers enhances and builds on these structures by adding containers
6611 that are not available in native Lisp (for example: binary search trees,
6612 red-black trees, sparse arrays and so on), and by providing a standard
6613 interface so that they are simpler to use and so that changing design
6614 decisions becomes significantly easier.")
6615 (home-page "https://common-lisp.net/project/cl-containers/")
6616 (license license:expat))))
6617
6618 (define-public cl-containers
6619 (sbcl-package->cl-source-package sbcl-cl-containers))
6620
6621 (define-public ecl-cl-containers
6622 (sbcl-package->ecl-package sbcl-cl-containers))
6623
6624 (define-public sbcl-xlunit
6625 (let ((commit "3805d34b1d8dc77f7e0ee527a2490194292dd0fc")
6626 (revision "1"))
6627 (package
6628 (name "sbcl-xlunit")
6629 (version (git-version "0.6.3" revision commit))
6630 (source
6631 (origin
6632 (method git-fetch)
6633 (uri (git-reference
6634 (url "http://git.kpe.io/xlunit.git")
6635 (commit commit)))
6636 (file-name (git-file-name name version))
6637 (sha256
6638 (base32
6639 "0argfmp9nghs4sihyj3f8ch9qfib2b7ll07v5m9ziajgzsfl5xw3"))))
6640 (build-system asdf-build-system/sbcl)
6641 (arguments
6642 '(#:phases
6643 (modify-phases %standard-phases
6644 (add-after 'unpack 'fix-tests
6645 (lambda _
6646 (substitute* "xlunit.asd"
6647 ((" :force t") ""))
6648 #t)))))
6649 (synopsis "Unit testing package for Common Lisp")
6650 (description
6651 "The XLUnit package is a toolkit for building test suites. It is based
6652 on the XPTest package by Craig Brozensky and the JUnit package by Kent Beck.")
6653 (home-page "http://quickdocs.org/xlunit/")
6654 (license license:bsd-3))))
6655
6656 (define-public cl-xlunit
6657 (sbcl-package->cl-source-package sbcl-xlunit))
6658
6659 (define-public ecl-xlunit
6660 (sbcl-package->ecl-package sbcl-xlunit))
6661
6662 (define-public sbcl-fprog
6663 (let ((commit "7016d1a98215f82605d1c158e7a16504ca1f4636")
6664 (revision "1"))
6665 (package
6666 (name "sbcl-fprog")
6667 (version (git-version "1.0.0" revision commit))
6668 (source
6669 (origin
6670 (method git-fetch)
6671 (uri (git-reference
6672 (url "https://github.com/jwiegley/cambl.git")
6673 (commit commit)))
6674 (file-name (git-file-name name version))
6675 (sha256
6676 (base32
6677 "103mry04j2k9vznsxm7wcvccgxkil92cdrv52miwcmxl8daa4jiz"))))
6678 (build-system asdf-build-system/sbcl)
6679 (synopsis "Functional programming utilities for Common Lisp")
6680 (description
6681 "@code{fprog} is a Common Lisp library allowing iteration over
6682 immutable lists sharing identical sublists.")
6683 (home-page "https://github.com/jwiegley/cambl")
6684 (license license:bsd-3))))
6685
6686 (define-public cl-fprog
6687 (sbcl-package->cl-source-package sbcl-fprog))
6688
6689 (define-public ecl-fprog
6690 (sbcl-package->ecl-package sbcl-fprog))
6691
6692 (define-public sbcl-cambl
6693 (let ((commit "7016d1a98215f82605d1c158e7a16504ca1f4636")
6694 (revision "1"))
6695 (package
6696 (inherit sbcl-fprog)
6697 (name "sbcl-cambl")
6698 (version (git-version "4.0.0" revision commit))
6699 (native-inputs
6700 `(("xlunit" ,sbcl-xlunit)))
6701 (inputs
6702 `(("alexandria" ,sbcl-alexandria)
6703 ("cl-containers" ,sbcl-cl-containers)
6704 ("local-time" ,sbcl-local-time)
6705 ("periods" ,sbcl-periods)
6706 ("fprog" ,sbcl-fprog)))
6707 (synopsis "Commoditized amounts and balances for Common Lisp")
6708 (description
6709 "CAMBL is a Common Lisp library providing a convenient facility for
6710 working with commoditized values. It does not allow compound units (and so is
6711 not suited for scientific operations) but does work rather nicely for the
6712 purpose of financial calculations."))))
6713
6714 (define-public cl-cambl
6715 (sbcl-package->cl-source-package sbcl-cambl))
6716
6717 (define-public ecl-cambl
6718 (sbcl-package->ecl-package sbcl-cambl))
6719
6720 (define-public sbcl-cl-ledger
6721 (let ((commit "08e0be41795e804cd36142e51756ad0b1caa377b")
6722 (revision "1"))
6723 (package
6724 (name "sbcl-cl-ledger")
6725 (version (git-version "4.0.0" revision commit))
6726 (source
6727 (origin
6728 (method git-fetch)
6729 (uri (git-reference
6730 (url "https://github.com/ledger/cl-ledger.git")
6731 (commit commit)))
6732 (file-name (git-file-name name version))
6733 (sha256
6734 (base32
6735 "1via0qf6wjcyxnfbmfxjvms0ik9j8rqbifgpmnhrzvkhrq9pv8h1"))))
6736 (build-system asdf-build-system/sbcl)
6737 (inputs
6738 `(("cambl" ,sbcl-cambl)
6739 ("cl-ppcre" ,sbcl-cl-ppcre)
6740 ("local-time" ,sbcl-local-time)
6741 ("periods-series" ,sbcl-periods-series)))
6742 (arguments
6743 '(#:phases
6744 (modify-phases %standard-phases
6745 (add-after 'unpack 'fix-system-definition
6746 (lambda _
6747 (substitute* "cl-ledger.asd"
6748 ((" :build-operation program-op") "")
6749 ((" :build-pathname \"cl-ledger\"") "")
6750 ((" :entry-point \"ledger::main\"") ""))
6751 #t)))))
6752 (synopsis "Common Lisp port of the Ledger accounting system")
6753 (description
6754 "CL-Ledger is a Common Lisp port of the Ledger double-entry accounting
6755 system.")
6756 (home-page "https://github.com/ledger/cl-ledger")
6757 (license license:bsd-3))))
6758
6759 (define-public cl-ledger
6760 (sbcl-package->cl-source-package sbcl-cl-ledger))
6761
6762 (define-public ecl-cl-ledger
6763 (sbcl-package->ecl-package sbcl-cl-ledger))
6764
6765 (define-public sbcl-bst
6766 (let ((commit "34f9c7e8e0a9f2c952fe310ab36cb630d5d9c15a")
6767 (revision "1"))
6768 (package
6769 (name "sbcl-bst")
6770 (version (git-version "1.1" revision commit))
6771 (source
6772 (origin
6773 (method git-fetch)
6774 (uri (git-reference
6775 (url "https://github.com/glv2/bst.git")
6776 (commit commit)))
6777 (file-name (git-file-name name version))
6778 (sha256
6779 (base32
6780 "1amxns7hvvh4arwbh8ciwfzplg127vh37dnbamv1m1kmmnmihfc8"))))
6781 (build-system asdf-build-system/sbcl)
6782 (native-inputs
6783 `(("alexandria" ,sbcl-alexandria)
6784 ("fiveam" ,sbcl-fiveam)))
6785 (synopsis "Binary search tree for Common Lisp")
6786 (description
6787 "BST is a Common Lisp library for working with binary search trees that
6788 can contain any kind of values.")
6789 (home-page "https://github.com/glv2/bst")
6790 (license license:gpl3))))
6791
6792 (define-public cl-bst
6793 (sbcl-package->cl-source-package sbcl-bst))
6794
6795 (define-public ecl-bst
6796 (sbcl-package->ecl-package sbcl-bst))
6797
6798 (define-public sbcl-cl-octet-streams
6799 (package
6800 (name "sbcl-cl-octet-streams")
6801 (version "1.0")
6802 (source
6803 (origin
6804 (method git-fetch)
6805 (uri (git-reference
6806 (url "https://github.com/glv2/cl-octet-streams.git")
6807 (commit (string-append "v" version))))
6808 (file-name (git-file-name name version))
6809 (sha256
6810 (base32
6811 "1d7mn6ydv0j2x4r7clpc9ijjwrnfpxmvhifv8n5j7jh7s744sf8d"))))
6812 (build-system asdf-build-system/sbcl)
6813 (native-inputs
6814 `(("fiveam" ,sbcl-fiveam)))
6815 (inputs
6816 `(("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
6817 (synopsis "In-memory octet streams for Common Lisp")
6818 (description
6819 "CL-octet-streams is a library implementing in-memory octet
6820 streams for Common Lisp. It was inspired by the trivial-octet-streams and
6821 cl-plumbing libraries.")
6822 (home-page "https://github.com/glv2/cl-octet-streams")
6823 (license license:gpl3+)))
6824
6825 (define-public cl-octet-streams
6826 (sbcl-package->cl-source-package sbcl-cl-octet-streams))
6827
6828 (define-public ecl-cl-octet-streams
6829 (sbcl-package->ecl-package sbcl-cl-octet-streams))
6830
6831 (define-public sbcl-lzlib
6832 (let ((commit "0de1db7129fef9a58a059d35a2fa2ecfc5b47b47")
6833 (revision "1"))
6834 (package
6835 (name "sbcl-lzlib")
6836 (version (git-version "1.0" revision commit))
6837 (source
6838 (origin
6839 (method git-fetch)
6840 (uri (git-reference
6841 (url "https://github.com/glv2/cl-lzlib.git")
6842 (commit commit)))
6843 (file-name (git-file-name name version))
6844 (sha256
6845 (base32
6846 "12ny7vj52fgnd8hb8fc8mry92vq4c1x72x2350191m4476j95clz"))))
6847 (build-system asdf-build-system/sbcl)
6848 (native-inputs
6849 `(("fiveam" ,sbcl-fiveam)))
6850 (inputs
6851 `(("cffi" ,sbcl-cffi)
6852 ("cl-octet-streams" ,sbcl-cl-octet-streams)
6853 ("lzlib" ,lzlib)))
6854 (arguments
6855 '(#:phases
6856 (modify-phases %standard-phases
6857 (add-after 'unpack 'fix-paths
6858 (lambda* (#:key inputs #:allow-other-keys)
6859 (substitute* "src/lzlib.lisp"
6860 (("liblz\\.so")
6861 (string-append (assoc-ref inputs "lzlib") "/lib/liblz.so")))
6862 #t)))))
6863 (synopsis "Common Lisp library for lzip (de)compression")
6864 (description
6865 "This Common Lisp library provides functions for lzip (LZMA)
6866 compression/decompression using bindings to the lzlib C library.")
6867 (home-page "https://github.com/glv2/cl-lzlib")
6868 (license license:gpl3+))))
6869
6870 (define-public cl-lzlib
6871 (sbcl-package->cl-source-package sbcl-lzlib))
6872
6873 (define-public ecl-lzlib
6874 (sbcl-package->ecl-package sbcl-lzlib))
6875
6876 (define-public sbcl-chanl
6877 (let ((commit "2362b57550c2c9238cc882d03553aaa1040b7340")
6878 (revision "0"))
6879 (package
6880 (name "sbcl-chanl")
6881 (version (git-version "0.4.1" revision commit))
6882 (source
6883 (origin
6884 (method git-fetch)
6885 (uri (git-reference
6886 (url "https://github.com/zkat/chanl.git")
6887 (commit commit)))
6888 (file-name (git-file-name name version))
6889 (sha256
6890 (base32
6891 "0ag3wz7yrqwp0s5069wwda98z3rrqd25spg8sa8rdqghj084w28w"))))
6892 (build-system asdf-build-system/sbcl)
6893 (native-inputs
6894 `(("fiveam" ,sbcl-fiveam)))
6895 (inputs
6896 `(("bordeaux-threads" ,sbcl-bordeaux-threads)))
6897 (synopsis "Portable channel-based concurrency for Common Lisp")
6898 (description "Common Lisp library for channel-based concurrency. In
6899 a nutshell, you create various threads sequentially executing tasks you need
6900 done, and use channel objects to communicate and synchronize the state of these
6901 threads.")
6902 (home-page "https://github.com/zkat/chanl")
6903 (license (list license:expat license:bsd-3)))))
6904
6905 (define-public cl-chanl
6906 (sbcl-package->cl-source-package sbcl-chanl))
6907
6908 (define-public ecl-chanl
6909 (let ((base (sbcl-package->ecl-package sbcl-chanl)))
6910 (package
6911 (inherit base)
6912 (arguments
6913 (substitute-keyword-arguments (package-arguments base)
6914 ;; The CHANL.ACTORS package uses the :ARGUMENTS option of
6915 ;; DEFINE-METHOD-COMBINATION, which is not implemented in ECL yet
6916 ;; (see https://gitlab.com/embeddable-common-lisp/ecl/issues/305).
6917 ;; So let's disable it for now, as it allows compiling the library
6918 ;; and using the rest of it.
6919 ((#:phases phases '%standard-phases)
6920 `(modify-phases ,phases
6921 (add-after 'unpack 'disable-chanl-actors
6922 (lambda _
6923 (substitute* "chanl.asd"
6924 (("\\(:file \"actors\"\\)") ""))
6925 #t))))
6926 ;; Disable the tests for now, as the SEND-SEQUENCE test seems to
6927 ;; never end.
6928 ((#:tests? _ #f) #f))))))
6929
6930 (define-public sbcl-cl-store
6931 (let ((commit "c787337a16ea8cf8a06227f35933a4ec774746b3")
6932 (revision "1"))
6933 (package
6934 (name "sbcl-cl-store")
6935 (version (git-version "0.8.11" revision commit))
6936 (source
6937 (origin
6938 (method git-fetch)
6939 (uri (git-reference
6940 (url "https://github.com/skypher/cl-store.git")
6941 (commit commit)))
6942 (file-name (git-file-name name version))
6943 (sha256
6944 (base32
6945 "194srkg8nrym19c6i7zbnkzshc1qhqa82m53qnkirz9fw928bqxr"))))
6946 (build-system asdf-build-system/sbcl)
6947 (native-inputs
6948 `(("rt" ,sbcl-rt)))
6949 (synopsis "Common Lisp library to serialize data")
6950 (description
6951 "CL-STORE is a portable serialization package which should give you the
6952 ability to store all Common Lisp data types into streams.")
6953 (home-page "https://www.common-lisp.net/project/cl-store/")
6954 (license license:expat))))
6955
6956 (define-public cl-store
6957 (sbcl-package->cl-source-package sbcl-cl-store))
6958
6959 (define-public ecl-cl-store
6960 (sbcl-package->ecl-package sbcl-cl-store))
6961
6962 (define-public sbcl-cl-gobject-introspection
6963 (let ((commit "7b703e2384945ea0ac39d9b766de434a08d81560")
6964 (revision "0"))
6965 (package
6966 (name "sbcl-cl-gobject-introspection")
6967 (version (git-version "0.3" revision commit))
6968 (home-page "https://github.com/andy128k/cl-gobject-introspection")
6969 (source
6970 (origin
6971 (method git-fetch)
6972 (uri (git-reference
6973 (url home-page)
6974 (commit commit)))
6975 (file-name (git-file-name name version))
6976 (sha256
6977 (base32
6978 "1zcqd2qj14f6b38vys8gr89s6cijsp9r8j43xa8lynilwva7bwyh"))))
6979 (build-system asdf-build-system/sbcl)
6980 (inputs
6981 `(("alexandria" ,sbcl-alexandria)
6982 ("cffi" ,sbcl-cffi)
6983 ("iterate" ,sbcl-iterate)
6984 ("trivial-garbage" ,sbcl-trivial-garbage)
6985 ("glib" ,glib)
6986 ("gobject-introspection" ,gobject-introspection)))
6987 (native-inputs
6988 `(("fiveam" ,sbcl-fiveam)))
6989 (arguments
6990 ;; TODO: Tests fail, see
6991 ;; https://github.com/andy128k/cl-gobject-introspection/issues/70.
6992 '(#:tests? #f
6993 #:phases
6994 (modify-phases %standard-phases
6995 (add-after (quote unpack) (quote fix-paths)
6996 (lambda* (#:key inputs #:allow-other-keys)
6997 (substitute* "src/init.lisp"
6998 (("libgobject-2\\.0\\.so")
6999 (string-append (assoc-ref inputs "glib") "/lib/libgobject-2.0.so"))
7000 (("libgirepository-1\\.0\\.so")
7001 (string-append (assoc-ref inputs "gobject-introspection")
7002 "/lib/libgirepository-1.0.so")))
7003 #t)))))
7004 (synopsis "Common Lisp bindings to GObject Introspection")
7005 (description
7006 "This library is a bridge between Common Lisp and GObject
7007 Introspection, which enables Common Lisp programs to access the full interface
7008 of C+GObject libraries without the need of writing dedicated bindings.")
7009 (license (list license:bsd-3
7010 ;; Tests are under a different license.
7011 license:llgpl)))))
7012
7013 (define-public cl-gobject-introspection
7014 (sbcl-package->cl-source-package sbcl-cl-gobject-introspection))
7015
7016 (define-public sbcl-string-case
7017 (let ((commit "718c761e33749e297cd2809c7ba3ade1985c49f7")
7018 (revision "0"))
7019 (package
7020 (name "sbcl-string-case")
7021 (version (git-version "0.0.2" revision commit))
7022 (home-page "https://github.com/pkhuong/string-case")
7023 (source
7024 (origin
7025 (method git-fetch)
7026 (uri (git-reference
7027 (url home-page)
7028 (commit commit)))
7029 (file-name (git-file-name name version))
7030 (sha256
7031 (base32
7032 "1n5i3yh0h5s636rcnwn7jwqy3rjflikra04lymimhpcshhjsk0md"))))
7033 (build-system asdf-build-system/sbcl)
7034 (synopsis "Efficient string= case in Common Lisp")
7035 (description
7036 "@code{string-case} is a Common Lisp macro that generates specialised decision
7037 trees to dispatch on string equality.")
7038 (license license:bsd-3))))
7039
7040 (define-public cl-string-case
7041 (sbcl-package->cl-source-package sbcl-string-case))
7042
7043 (define-public ecl-string-case
7044 (sbcl-package->ecl-package sbcl-string-case))
7045
7046 (define-public sbcl-global-vars
7047 (let ((commit "c749f32c9b606a1457daa47d59630708ac0c266e")
7048 (revision "0"))
7049 (package
7050 (name "sbcl-global-vars")
7051 (version (git-version "1.0.0" revision commit))
7052 (home-page "https://github.com/lmj/global-vars")
7053 (source
7054 (origin
7055 (method git-fetch)
7056 (uri (git-reference
7057 (url home-page)
7058 (commit commit)))
7059 (file-name (git-file-name name version))
7060 (sha256
7061 (base32
7062 "06m3xc8l3pgsapl8fvsi9wf6y46zs75cp9zn7zh6dc65v4s5wz3d"))))
7063 (build-system asdf-build-system/sbcl)
7064 (synopsis "Efficient global variables in Common Lisp")
7065 (description
7066 "In Common Lisp, a special variable that is never dynamically bound
7067 typically serves as a stand-in for a global variable. The @code{global-vars}
7068 library provides true global variables that are implemented by some compilers.
7069 An attempt to rebind a global variable properly results in a compiler error.
7070 That is, a global variable cannot be dynamically bound.
7071
7072 Global variables therefore allow us to communicate an intended usage that
7073 differs from special variables. Global variables are also more efficient than
7074 special variables, especially in the presence of threads.")
7075 (license license:expat))))
7076
7077 (define-public cl-global-vars
7078 (sbcl-package->cl-source-package sbcl-global-vars))
7079
7080 (define-public ecl-global-vars
7081 (sbcl-package->ecl-package sbcl-global-vars))
7082
7083 (define-public sbcl-trivial-file-size
7084 (let ((commit "1c1d672a01a446ba0391dbb4ffc40be3b0476f23")
7085 (revision "0"))
7086 (package
7087 (name "sbcl-trivial-file-size")
7088 (version (git-version "0.0.0" revision commit))
7089 (home-page "https://github.com/ruricolist/trivial-file-size")
7090 (source
7091 (origin
7092 (method git-fetch)
7093 (uri (git-reference
7094 (url home-page)
7095 (commit commit)))
7096 (file-name (git-file-name name version))
7097 (sha256
7098 (base32
7099 "17pp86c9zs4y7i1sh7q9gbfw9iqv6655k7fz8qbj9ly1ypgxp4qs"))))
7100 (build-system asdf-build-system/sbcl)
7101 (native-inputs
7102 `(("fiveam" ,sbcl-fiveam)))
7103 (synopsis "Size of a file in bytes in Common Lisp")
7104 (description
7105 "The canonical way to determine the size of a file in bytes, using Common Lisp,
7106 is to open the file with an element type of (unsigned-byte 8) and then
7107 calculate the length of the stream. This is less than ideal. In most cases
7108 it is better to get the size of the file from its metadata, using a system
7109 call.
7110
7111 This library exports a single function, file-size-in-octets. It returns the
7112 size of a file in bytes, using system calls when possible.")
7113 (license license:expat))))
7114
7115 (define-public cl-trivial-file-size
7116 (sbcl-package->cl-source-package sbcl-trivial-file-size))
7117
7118 (define-public ecl-trivial-file-size
7119 (sbcl-package->ecl-package sbcl-trivial-file-size))
7120
7121 (define-public sbcl-trivial-macroexpand-all
7122 (let ((commit "933270ac7107477de1bc92c1fd641fe646a7a8a9")
7123 (revision "0"))
7124 (package
7125 (name "sbcl-trivial-macroexpand-all")
7126 (version (git-version "0.0.0" revision commit))
7127 (home-page "https://github.com/cbaggers/trivial-macroexpand-all")
7128 (source
7129 (origin
7130 (method git-fetch)
7131 (uri (git-reference
7132 (url home-page)
7133 (commit commit)))
7134 (file-name (git-file-name name version))
7135 (sha256
7136 (base32
7137 "191hnn4b5j4i3crydmlzbm231kj0h7l8zj6mzj69r1npbzkas4bd"))))
7138 (build-system asdf-build-system/sbcl)
7139 (native-inputs
7140 `(("fiveam" ,sbcl-fiveam)))
7141 (synopsis "Portable macroexpand-all for Common Lisp")
7142 (description
7143 "This library provides a macroexpand-all function that calls the
7144 implementation specific equivalent.")
7145 (license license:unlicense))))
7146
7147 (define-public cl-trivial-macroexpand-all
7148 (sbcl-package->cl-source-package sbcl-trivial-macroexpand-all))
7149
7150 (define-public ecl-trivial-macroexpand-all
7151 (sbcl-package->ecl-package sbcl-trivial-macroexpand-all))
7152
7153 (define-public sbcl-serapeum
7154 (let ((commit "65837f8a0d65b36369ec8d000fff5c29a395b5fe")
7155 (revision "0"))
7156 (package
7157 (name "sbcl-serapeum")
7158 (version (git-version "0.0.0" revision commit))
7159 (home-page "https://github.com/ruricolist/serapeum")
7160 (source
7161 (origin
7162 (method git-fetch)
7163 (uri (git-reference
7164 (url home-page)
7165 (commit commit)))
7166 (file-name (git-file-name name version))
7167 (sha256
7168 (base32
7169 "0clwf81r2lvk1rbfvk91s9zmbkas9imf57ilqclw12mxaxlfsnbw"))))
7170 (build-system asdf-build-system/sbcl)
7171 (inputs
7172 `(("alexandria" ,sbcl-alexandria)
7173 ("trivia" ,sbcl-trivia)
7174 ("trivia.quasiquote" ,sbcl-trivia.quasiquote)
7175 ("split-sequence" ,sbcl-split-sequence)
7176 ("string-case" ,sbcl-string-case)
7177 ("parse-number" ,sbcl-parse-number)
7178 ("trivial-garbage" ,sbcl-trivial-garbage)
7179 ("bordeaux-threads" ,sbcl-bordeaux-threads)
7180 ("named-readtables" ,sbcl-named-readtables)
7181 ("fare-quasiquote-extras" ,cl-fare-quasiquote-extras)
7182 ("parse-declarations-1.0" ,sbcl-parse-declarations)
7183 ("global-vars" ,sbcl-global-vars)
7184 ("trivial-file-size" ,sbcl-trivial-file-size)
7185 ("trivial-macroexpand-all" ,sbcl-trivial-macroexpand-all)))
7186 (native-inputs
7187 `(("fiveam" ,sbcl-fiveam)
7188 ("local-time" ,sbcl-local-time)))
7189 (arguments
7190 '(#:phases
7191 (modify-phases %standard-phases
7192 (add-after 'unpack 'disable-failing-tests
7193 (lambda* (#:key inputs #:allow-other-keys)
7194 (substitute* "serapeum.asd"
7195 ;; Guix does not have Quicklisp, and probably never will.
7196 (("\\(:file \"quicklisp\"\\)") ""))
7197 #t)))))
7198 (synopsis "Common Lisp utility library beyond Alexandria")
7199 (description
7200 "Serapeum is a conservative library of Common Lisp utilities. It is a
7201 supplement, not a competitor, to Alexandria.")
7202 (license license:expat))))
7203
7204 (define-public cl-serapeum
7205 (sbcl-package->cl-source-package sbcl-serapeum))
7206
7207 (define-public sbcl-arrows
7208 (let ((commit "df7cf0067e0132d9697ac8b1a4f1b9c88d4f5382")
7209 (revision "0"))
7210 (package
7211 (name "sbcl-arrows")
7212 (version (git-version "0.2.0" revision commit))
7213 (source
7214 (origin
7215 (method git-fetch)
7216 (uri (git-reference
7217 (url "https://gitlab.com/Harleqin/arrows.git")
7218 (commit commit)))
7219 (file-name (git-file-name name version))
7220 (sha256
7221 (base32
7222 "042k9vkssrqx9nhp14wdzm942zgdxvp35mba0p2syz98i75im2yy"))))
7223 (build-system asdf-build-system/sbcl)
7224 (native-inputs
7225 `(("hu.dwim.stefil" ,sbcl-hu.dwim.stefil)))
7226 (synopsis "Clojure-like arrow macros for Common Lisp")
7227 (description
7228 "This library implements the @code{->} and @code{->>} macros from
7229 Clojure, as well as several expansions on the idea.")
7230 (home-page "https://gitlab.com/Harleqin/arrows")
7231 (license license:public-domain))))
7232
7233 (define-public cl-arrows
7234 (sbcl-package->cl-source-package sbcl-arrows))
7235
7236 (define-public ecl-arrows
7237 (sbcl-package->ecl-package sbcl-arrows))
7238
7239 (define-public sbcl-simple-parallel-tasks
7240 (let ((commit "db460f7a3f7bbfe2d3a2223ed21e162068d04dda")
7241 (revision "0"))
7242 (package
7243 (name "sbcl-simple-parallel-tasks")
7244 (version (git-version "1.0" revision commit))
7245 (source
7246 (origin
7247 (method git-fetch)
7248 (uri (git-reference
7249 (url "https://github.com/glv2/simple-parallel-tasks.git")
7250 (commit commit)))
7251 (file-name (git-file-name name version))
7252 (sha256
7253 (base32
7254 "0amw3qk23wnlyrsgzszs6rs7y4zvxv8dr03rnqhc60mnm8ds4dd5"))))
7255 (build-system asdf-build-system/sbcl)
7256 (native-inputs
7257 `(("fiveam" ,sbcl-fiveam)))
7258 (inputs
7259 `(("chanl" ,sbcl-chanl)))
7260 (synopsis "Common Lisp library to evaluate some forms in parallel")
7261 (description "This is a simple Common Lisp library to evaluate some
7262 forms in parallel.")
7263 (home-page "https://github.com/glv2/simple-parallel-tasks")
7264 (license license:gpl3))))
7265
7266 (define-public cl-simple-parallel-tasks
7267 (sbcl-package->cl-source-package sbcl-simple-parallel-tasks))
7268
7269 (define-public ecl-simple-parallel-tasks
7270 (sbcl-package->ecl-package sbcl-simple-parallel-tasks))
7271
7272 (define-public sbcl-cl-heap
7273 (package
7274 (name "sbcl-cl-heap")
7275 (version "0.1.6")
7276 (source
7277 (origin
7278 (method url-fetch)
7279 (uri (string-append "https://common-lisp.net/project/cl-heap/releases/"
7280 "cl-heap_" version ".tar.gz"))
7281 (sha256
7282 (base32
7283 "163hb07p2nxz126rpq3cj5dyala24n0by5i5786n2qcr1w0bak4i"))))
7284 (build-system asdf-build-system/sbcl)
7285 (native-inputs
7286 `(("xlunit" ,sbcl-xlunit)))
7287 (arguments
7288 `(#:test-asd-file "cl-heap-tests.asd"))
7289 (synopsis "Heap and priority queue data structures for Common Lisp")
7290 (description
7291 "CL-HEAP provides various implementations of heap data structures (a
7292 binary heap and a Fibonacci heap) as well as an efficient priority queue.")
7293 (home-page "https://common-lisp.net/project/cl-heap/")
7294 (license license:gpl3+)))
7295
7296 (define-public cl-heap
7297 (sbcl-package->cl-source-package sbcl-cl-heap))
7298
7299 (define-public ecl-cl-heap
7300 (sbcl-package->ecl-package sbcl-cl-heap))
7301
7302 (define-public sbcl-curry-compose-reader-macros
7303 (let ((commit "beaa92dedf392726c042184bfd6149fa8d9e6ac2")
7304 (revision "0"))
7305 (package
7306 (name "sbcl-curry-compose-reader-macros")
7307 (version (git-version "1.0.0" revision commit))
7308 (source
7309 (origin
7310 (method git-fetch)
7311 (uri
7312 (git-reference
7313 (url "https://github.com/eschulte/curry-compose-reader-macros.git")
7314 (commit commit)))
7315 (file-name (git-file-name name version))
7316 (sha256
7317 (base32
7318 "0rv9bl8xrad5wfcg5zs1dazvnpmvqz6297lbn8bywsrcfnlf7h98"))))
7319 (build-system asdf-build-system/sbcl)
7320 (inputs
7321 `(("alexandria" ,sbcl-alexandria)
7322 ("named-readtables" ,sbcl-named-readtables)))
7323 (synopsis "Reader macros for partial application and composition")
7324 (description
7325 "This Common Lisp library provides reader macros for concise expression
7326 of function partial application and composition.")
7327 (home-page "https://eschulte.github.io/curry-compose-reader-macros/")
7328 (license license:public-domain))))
7329
7330 (define-public cl-curry-compose-reader-macros
7331 (sbcl-package->cl-source-package sbcl-curry-compose-reader-macros))
7332
7333 (define-public ecl-curry-compose-reader-macros
7334 (sbcl-package->ecl-package sbcl-curry-compose-reader-macros))
7335
7336 (define-public sbcl-yason
7337 (package
7338 (name "sbcl-yason")
7339 (version "0.7.7")
7340 (source
7341 (origin
7342 (method git-fetch)
7343 (uri (git-reference
7344 (url "https://github.com/phmarek/yason.git")
7345 (commit (string-append "v" version))))
7346 (file-name (git-file-name name version))
7347 (sha256
7348 (base32
7349 "0479rbjgbj80jpk5bby18inlv1kfp771a82rlcq5psrz65qqa9bj"))))
7350 (build-system asdf-build-system/sbcl)
7351 (inputs
7352 `(("alexandria" ,sbcl-alexandria)
7353 ("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
7354 (synopsis "Common Lisp JSON parser/encoder")
7355 (description
7356 "YASON is a Common Lisp library for encoding and decoding data in the
7357 JSON interchange format.")
7358 (home-page "https://github.com/phmarek/yason")
7359 (license license:bsd-3)))
7360
7361 (define-public cl-yason
7362 (sbcl-package->cl-source-package sbcl-yason))
7363
7364 (define-public ecl-yason
7365 (sbcl-package->ecl-package sbcl-yason))
7366
7367 (define-public sbcl-stefil
7368 (let ((commit "0398548ec95dceb50fc2c2c03e5fb0ce49b86c7a")
7369 (revision "0"))
7370 (package
7371 (name "sbcl-stefil")
7372 (version (git-version "0.1" revision commit))
7373 (source
7374 (origin
7375 (method git-fetch)
7376 (uri (git-reference
7377 (url "https://gitlab.common-lisp.net/stefil/stefil.git")
7378 (commit commit)))
7379 (file-name (git-file-name name version))
7380 (sha256
7381 (base32
7382 "0bqz64q2szzhf91zyqyssmvrz7da6442rs01808pf3wrdq28bclh"))))
7383 (build-system asdf-build-system/sbcl)
7384 (inputs
7385 `(("alexandria" ,sbcl-alexandria)
7386 ("iterate" ,sbcl-iterate)
7387 ("metabang-bind" ,sbcl-metabang-bind)))
7388 (propagated-inputs
7389 ;; Swank doesn't have a pre-compiled package, therefore we must
7390 ;; propagate its sources.
7391 `(("swank" ,cl-slime-swank)))
7392 (arguments
7393 '(#:phases
7394 (modify-phases %standard-phases
7395 (add-after 'unpack 'drop-unnecessary-dependency
7396 (lambda _
7397 (substitute* "package.lisp"
7398 ((":stefil-system") ""))
7399 #t)))))
7400 (home-page "https://common-lisp.net/project/stefil/index-old.shtml")
7401 (synopsis "Simple test framework")
7402 (description
7403 "Stefil is a simple test framework for Common Lisp, with a focus on
7404 interactive development.")
7405 (license license:public-domain))))
7406
7407 (define-public cl-stefil
7408 (sbcl-package->cl-source-package sbcl-stefil))
7409
7410 (define-public sbcl-graph
7411 (let ((commit "78bf9ec930d8eae4f0861b5be76765fb1e45e24f")
7412 (revision "0"))
7413 (package
7414 (name "sbcl-graph")
7415 (version (git-version "0.0.0" revision commit))
7416 (source
7417 (origin
7418 (method git-fetch)
7419 (uri
7420 (git-reference
7421 (url "https://github.com/eschulte/graph.git")
7422 (commit commit)))
7423 (file-name (git-file-name name version))
7424 (sha256
7425 (base32
7426 "1qpij4xh8bqwc2myahpilcbh916v7vg0acz2fij14d3y0jm02h0g"))
7427 (patches (search-patches "sbcl-graph-asdf-definitions.patch"))))
7428 (build-system asdf-build-system/sbcl)
7429 (native-inputs
7430 `(("stefil" ,sbcl-stefil)))
7431 (inputs
7432 `(("alexandria" ,sbcl-alexandria)
7433 ("cl-heap" ,sbcl-cl-heap)
7434 ("curry-compose-reader-macros" ,sbcl-curry-compose-reader-macros)
7435 ("metabang-bind" ,sbcl-metabang-bind)
7436 ("named-readtables" ,sbcl-named-readtables)))
7437 (arguments
7438 '(#:test-asd-file "graph.test.asd"))
7439 (synopsis "Graph data structure and algorithms for Common Lisp")
7440 (description
7441 "The GRAPH Common Lisp library provides a data structures to represent
7442 graphs, as well as some graph manipulation and analysis algorithms (shortest
7443 path, maximum flow, minimum spanning tree, etc.).")
7444 (home-page "https://eschulte.github.io/graph/")
7445 (license license:gpl3+))))
7446
7447 (define-public cl-graph
7448 (sbcl-package->cl-source-package sbcl-graph))
7449
7450 (define-public sbcl-graph-dot
7451 (package
7452 (inherit sbcl-graph)
7453 (name "sbcl-graph-dot")
7454 (inputs
7455 `(("alexandria" ,sbcl-alexandria)
7456 ("cl-ppcre" ,sbcl-cl-ppcre)
7457 ("curry-compose-reader-macros" ,sbcl-curry-compose-reader-macros)
7458 ("graph" ,sbcl-graph)
7459 ("metabang-bind" ,sbcl-metabang-bind)
7460 ("named-readtables" ,sbcl-named-readtables)))
7461 (arguments
7462 (substitute-keyword-arguments (package-arguments sbcl-graph)
7463 ((#:asd-file _ "") "graph.dot.asd")
7464 ((#:asd-system-name _ #f) "graph-dot")))
7465 (synopsis "Serialize graphs to and from DOT format")))
7466
7467 (define-public sbcl-graph-json
7468 (package
7469 (inherit sbcl-graph)
7470 (name "sbcl-graph-json")
7471 (inputs
7472 `(("alexandria" ,sbcl-alexandria)
7473 ("curry-compose-reader-macros" ,sbcl-curry-compose-reader-macros)
7474 ("graph" ,sbcl-graph)
7475 ("metabang-bind" ,sbcl-metabang-bind)
7476 ("named-readtables" ,sbcl-named-readtables)
7477 ("yason" ,sbcl-yason)))
7478 (arguments
7479 (substitute-keyword-arguments (package-arguments sbcl-graph)
7480 ((#:asd-file _ "") "graph.json.asd")
7481 ((#:asd-system-name _ #f) "graph-json")))
7482 (synopsis "Serialize graphs to and from JSON format")))
7483
7484 (define-public sbcl-trivial-indent
7485 (let ((commit "2d016941751647c6cc5bd471751c2cf68861c94a")
7486 (revision "0"))
7487 (package
7488 (name "sbcl-trivial-indent")
7489 (version (git-version "1.0.0" revision commit))
7490 (source
7491 (origin
7492 (method git-fetch)
7493 (uri
7494 (git-reference
7495 (url "https://github.com/Shinmera/trivial-indent")
7496 (commit commit)))
7497 (file-name (git-file-name name version))
7498 (sha256
7499 (base32
7500 "1sj90nqz17w4jq0ixz00gb9g5g6d2s7l8r17zdby27gxxh51w266"))))
7501 (build-system asdf-build-system/sbcl)
7502 (synopsis "Simple Common Lisp library to allow indentation hints for SWANK")
7503 (description
7504 "This library allows you to define custom indentation hints for your
7505 macros if the one recognised by SLIME automatically produces unwanted
7506 results.")
7507 (home-page "https://shinmera.github.io/trivial-indent/")
7508 (license license:zlib))))
7509
7510 (define-public cl-trivial-indent
7511 (sbcl-package->cl-source-package sbcl-trivial-indent))
7512
7513 (define-public sbcl-documentation-utils
7514 (let ((commit "98630dd5f7e36ae057fa09da3523f42ccb5d1f55")
7515 (revision "0"))
7516 (package
7517 (name "sbcl-documentation-utils")
7518 (version (git-version "1.2.0" revision commit))
7519 (source
7520 (origin
7521 (method git-fetch)
7522 (uri
7523 (git-reference
7524 (url "https://github.com/Shinmera/documentation-utils.git")
7525 (commit commit)))
7526 (file-name (git-file-name name version))
7527 (sha256
7528 (base32
7529 "098qhkqskmmrh4wix34mawf7p5c87yql28r51r75yjxj577k5idq"))))
7530 (build-system asdf-build-system/sbcl)
7531 (inputs
7532 `(("trivial-indent" ,sbcl-trivial-indent)))
7533 (synopsis "Few simple tools to document Common Lisp libraries")
7534 (description
7535 "This is a small library to help you with managing the Common Lisp
7536 docstrings for your library.")
7537 (home-page "https://shinmera.github.io/documentation-utils/")
7538 (license license:zlib))))
7539
7540 (define-public cl-documentation-utils
7541 (sbcl-package->cl-source-package sbcl-documentation-utils))
7542
7543 (define-public sbcl-form-fiddle
7544 (let ((commit "e0c23599dbb8cff3e83e012f3d86d0764188ad18")
7545 (revision "0"))
7546 (package
7547 (name "sbcl-form-fiddle")
7548 (version (git-version "1.1.0" revision commit))
7549 (source
7550 (origin
7551 (method git-fetch)
7552 (uri
7553 (git-reference
7554 (url "https://github.com/Shinmera/form-fiddle")
7555 (commit commit)))
7556 (file-name (git-file-name name version))
7557 (sha256
7558 (base32
7559 "041iznc9mpfyrl0sv5893ys9pbb2pvbn9g3clarqi7gsfj483jln"))))
7560 (build-system asdf-build-system/sbcl)
7561 (inputs
7562 `(("documentation-utils" ,sbcl-documentation-utils)))
7563 (synopsis "Utilities to destructure Common Lisp lambda forms")
7564 (description
7565 "Often times we need to destructure a form definition in a Common Lisp
7566 macro. This library provides a set of simple utilities to help with that.")
7567 (home-page "https://shinmera.github.io/form-fiddle/")
7568 (license license:zlib))))
7569
7570 (define-public cl-form-fiddle
7571 (sbcl-package->cl-source-package sbcl-form-fiddle))
7572
7573 (define-public sbcl-parachute
7574 (let ((commit "ca04dd8e43010a6dfffa26dbe1d62af86008d666")
7575 (revision "0"))
7576 (package
7577 (name "sbcl-parachute")
7578 (version (git-version "1.1.1" revision commit))
7579 (source
7580 (origin
7581 (method git-fetch)
7582 (uri
7583 (git-reference
7584 (url "https://github.com/Shinmera/parachute")
7585 (commit commit)))
7586 (file-name (git-file-name name version))
7587 (sha256
7588 (base32
7589 "1mvsm3r0r6a2bg75nw0q7n9vlby3ch45qjl7hnb5k1z2n5x5lh60"))))
7590 (build-system asdf-build-system/sbcl)
7591 (inputs
7592 `(("documentation-utils" ,sbcl-documentation-utils)
7593 ("form-fiddle" ,sbcl-form-fiddle)))
7594 (synopsis "Extensible and cross-compatible testing framework for Common Lisp")
7595 (description
7596 "Parachute is a simple-to-use and extensible testing framework.
7597 In Parachute, things are organised as a bunch of named tests within a package.
7598 Each test can contain a bunch of test forms that make up its body.")
7599 (home-page "https://shinmera.github.io/parachute/")
7600 (license license:zlib))))
7601
7602 (define-public cl-parachute
7603 (sbcl-package->cl-source-package sbcl-parachute))
7604
7605 (define-public sbcl-array-utils
7606 (let ((commit "f90eb9070d0b2205af51126a35033574725e5c56")
7607 (revision "0"))
7608 (package
7609 (name "sbcl-array-utils")
7610 (version (git-version "1.1.1" revision commit))
7611 (source
7612 (origin
7613 (method git-fetch)
7614 (uri
7615 (git-reference
7616 (url "https://github.com/Shinmera/array-utils")
7617 (commit commit)))
7618 (file-name (git-file-name name version))
7619 (sha256
7620 (base32
7621 "0zhwfbpr53vs1ii4sx75dz2k9yhh1xpwdqqpg8nmfndxkmhpbi3x"))))
7622 (build-system asdf-build-system/sbcl)
7623 (native-inputs
7624 `(("parachute" ,sbcl-parachute)))
7625 (inputs
7626 `(("documentation-utils" ,sbcl-documentation-utils)))
7627 (synopsis "Tiny collection of array and vector utilities for Common Lisp")
7628 (description
7629 "A miniature toolkit that contains some useful shifting/popping/pushing
7630 functions for arrays and vectors. Originally from Plump.")
7631 (home-page "https://shinmera.github.io/array-utils/")
7632 (license license:zlib))))
7633
7634 (define-public cl-array-utils
7635 (sbcl-package->cl-source-package sbcl-array-utils))
7636
7637 (define-public sbcl-plump
7638 (let ((commit "16f1231bf706cfbc54d9e55a853ca945e4452a08")
7639 (revision "0"))
7640 (package
7641 (name "sbcl-plump")
7642 (version (git-version "2.0.0" revision commit))
7643 (source
7644 (origin
7645 (method git-fetch)
7646 (uri
7647 (git-reference
7648 (url "https://github.com/Shinmera/plump")
7649 (commit commit)))
7650 (file-name (git-file-name name version))
7651 (sha256
7652 (base32
7653 "0705k8pbip51v74rccgwscwph439f2pma9f915qf1h4bhjx999ip"))))
7654 (build-system asdf-build-system/sbcl)
7655 (inputs
7656 `(("array-utils" ,sbcl-array-utils)
7657 ("documentation-utils" ,sbcl-documentation-utils)))
7658 (synopsis "Lenient XML / XHTML / HTML parser for Common Lisp")
7659 (description
7660 "Plump is a parser for HTML/XML-like documents, focusing on being
7661 lenient towards invalid markup. It can handle things like invalid attributes,
7662 bad closing tag order, unencoded entities, inexistent tag types, self-closing
7663 tags and so on. It parses documents to a class representation and offers a
7664 small set of DOM functions to manipulate it. It can be extended to parse to
7665 your own classes.")
7666 (home-page "https://shinmera.github.io/plump/")
7667 (license license:zlib))))
7668
7669 (define-public cl-plump
7670 (sbcl-package->cl-source-package sbcl-plump))
7671
7672 (define-public sbcl-antik-base
7673 (let ((commit "e4711a69b3d6bf37b5727af05c3cfd03e8428ba3")
7674 (revision "1"))
7675 (package
7676 (name "sbcl-antik-base")
7677 (version (git-version "0.0.0" revision commit))
7678 (source
7679 (origin
7680 (method git-fetch)
7681 (uri (git-reference
7682 (url "https://gitlab.common-lisp.net/antik/antik.git")
7683 (commit commit)))
7684 (file-name (git-file-name name version))
7685 (sha256
7686 (base32
7687 "047ga2c38par2xbgg4qx6hwv06qhf1c1f67as8xvir6s80lip1km"))))
7688 (build-system asdf-build-system/sbcl)
7689 (inputs
7690 `(("alexandria" ,sbcl-alexandria)
7691 ("cl-ppcre" ,sbcl-cl-ppcre)
7692 ("iterate" ,sbcl-iterate)
7693 ("metabang-bind" ,sbcl-metabang-bind)
7694 ("named-readtables" ,sbcl-named-readtables)
7695 ("split-sequence" ,sbcl-split-sequence)))
7696 (native-inputs
7697 `(("lisp-unit" ,sbcl-lisp-unit)))
7698 (synopsis "Scientific and engineering computation in Common Lisp")
7699 (description
7700 "Antik provides a foundation for scientific and engineering
7701 computation in Common Lisp. It is designed not only to facilitate
7702 numerical computations, but to permit the use of numerical computation
7703 libraries and the interchange of data and procedures, whether
7704 foreign (non-Lisp) or Lisp libraries. It is named after the
7705 Antikythera mechanism, one of the oldest examples of a scientific
7706 computer known.")
7707 (home-page "https://common-lisp.net/project/antik/")
7708 (license license:gpl3))))
7709
7710 (define-public cl-antik-base
7711 (sbcl-package->cl-source-package sbcl-antik-base))
7712
7713 (define-public ecl-antik-base
7714 (sbcl-package->ecl-package sbcl-antik-base))
7715
7716 (define-public sbcl-foreign-array
7717 (package
7718 (inherit sbcl-antik-base)
7719 (name "sbcl-foreign-array")
7720 (arguments
7721 (substitute-keyword-arguments (package-arguments sbcl-antik-base)
7722 ((#:asd-file _ "") "foreign-array.asd")
7723 ((#:asd-system-name _ #f) "foreign-array")))
7724 (inputs
7725 `(("antik-base" ,sbcl-antik-base)
7726 ("cffi" ,sbcl-cffi)
7727 ("trivial-garbage" ,sbcl-trivial-garbage)
7728 ("static-vectors" ,sbcl-static-vectors)))
7729 (synopsis "Common Lisp library providing access to foreign arrays")))
7730
7731 (define-public cl-foreign-array
7732 (sbcl-package->cl-source-package sbcl-foreign-array))
7733
7734 (define-public ecl-foreign-array
7735 (sbcl-package->ecl-package sbcl-foreign-array))
7736
7737 (define-public sbcl-physical-dimension
7738 (package
7739 (inherit sbcl-antik-base)
7740 (name "sbcl-physical-dimension")
7741 (inputs
7742 `(("fare-utils" ,sbcl-fare-utils)
7743 ("foreign-array" ,sbcl-foreign-array)
7744 ("trivial-utf-8" ,sbcl-trivial-utf-8)))
7745 (arguments
7746 (substitute-keyword-arguments (package-arguments sbcl-antik-base)
7747 ((#:asd-file _ "") "physical-dimension.asd")
7748 ((#:asd-system-name _ #f) "physical-dimension")))
7749 (synopsis
7750 "Common Lisp library providing computations with physical units")))
7751
7752 (define-public cl-physical-dimension
7753 (sbcl-package->cl-source-package sbcl-physical-dimension))
7754
7755 (define-public sbcl-science-data
7756 (package
7757 (inherit sbcl-antik-base)
7758 (name "sbcl-science-data")
7759 (inputs
7760 `(("physical-dimension" ,sbcl-physical-dimension)
7761 ("drakma" ,sbcl-drakma)))
7762 (arguments
7763 (substitute-keyword-arguments (package-arguments sbcl-antik-base)
7764 ((#:asd-file _ "") "science-data.asd")
7765 ((#:asd-system-name _ #f) "science-data")))
7766 (synopsis
7767 "Common Lisp library for scientific and engineering numerical data")))
7768
7769 (define-public cl-science-data
7770 (sbcl-package->cl-source-package sbcl-science-data))
7771
7772 (define-public sbcl-gsll
7773 (let ((commit "1a8ada22f9cf5ed7372d352b2317f4ccdb6ab308")
7774 (revision "1"))
7775 (package
7776 (name "sbcl-gsll")
7777 (version (git-version "0.0.0" revision commit))
7778 (source
7779 (origin
7780 (method git-fetch)
7781 (uri (git-reference
7782 (url "https://gitlab.common-lisp.net/antik/gsll.git")
7783 (commit commit)))
7784 (file-name (git-file-name name version))
7785 (sha256
7786 (base32
7787 "0z5nypfk26hxihb08p085644afawicrgb4xvadh3lmrn46qbjfn4"))))
7788 (build-system asdf-build-system/sbcl)
7789 (native-inputs
7790 `(("lisp-unit" ,sbcl-lisp-unit)))
7791 (inputs
7792 `(("alexandria" ,sbcl-alexandria)
7793 ("cffi-grovel" ,sbcl-cffi-grovel)
7794 ("cffi-libffi" ,sbcl-cffi-libffi)
7795 ("foreign-array" ,sbcl-foreign-array)
7796 ("gsl" ,gsl)
7797 ("metabang-bind" ,sbcl-metabang-bind)
7798 ("trivial-features" ,sbcl-trivial-features)
7799 ("trivial-garbage" ,sbcl-trivial-garbage)))
7800 (arguments
7801 `(#:tests? #f
7802 #:phases
7803 (modify-phases %standard-phases
7804 (add-after 'unpack 'fix-cffi-paths
7805 (lambda* (#:key inputs #:allow-other-keys)
7806 (substitute* "gsll.asd"
7807 ((":depends-on \\(#:foreign-array")
7808 ":depends-on (#:foreign-array #:cffi-libffi"))
7809 (substitute* "init/init.lisp"
7810 (("libgslcblas.so" all)
7811 (string-append
7812 (assoc-ref inputs "gsl") "/lib/" all)))
7813 (substitute* "init/init.lisp"
7814 (("libgsl.so" all)
7815 (string-append
7816 (assoc-ref inputs "gsl") "/lib/" all))))))))
7817 (synopsis "GNU Scientific Library for Lisp")
7818 (description
7819 "The GNU Scientific Library for Lisp (GSLL) allows the use of the
7820 GNU Scientific Library (GSL) from Common Lisp. This library provides a
7821 full range of common mathematical operations useful to scientific and
7822 engineering applications. The design of the GSLL interface is such
7823 that access to most of the GSL library is possible in a Lisp-natural
7824 way; the intent is that the user not be hampered by the restrictions
7825 of the C language in which GSL has been written. GSLL thus provides
7826 interactive use of GSL for getting quick answers, even for someone not
7827 intending to program in Lisp.")
7828 (home-page "https://common-lisp.net/project/gsll/")
7829 (license license:gpl3))))
7830
7831 (define-public cl-gsll
7832 (sbcl-package->cl-source-package sbcl-gsll))
7833
7834 (define-public sbcl-antik
7835 (package
7836 (inherit sbcl-antik-base)
7837 (name "sbcl-antik")
7838 (inputs
7839 `(("gsll" ,sbcl-gsll)
7840 ("physical-dimension" ,sbcl-physical-dimension)))
7841 (arguments
7842 (substitute-keyword-arguments (package-arguments sbcl-antik-base)
7843 ((#:asd-file _ "") "antik.asd")
7844 ((#:asd-system-name _ #f) "antik")))))
7845
7846 (define-public cl-antik
7847 (sbcl-package->cl-source-package sbcl-antik))
7848
7849 (define-public sbcl-cl-interpol
7850 (let ((commit "1fd288d861db85bc4677cff3cdd6af75fda1afb4")
7851 (revision "1"))
7852 (package
7853 (name "sbcl-cl-interpol")
7854 (version (git-version "0.2.6" revision commit))
7855 (source
7856 (origin
7857 (method git-fetch)
7858 (uri (git-reference
7859 (url "https://github.com/edicl/cl-interpol.git")
7860 (commit commit)))
7861 (file-name (git-file-name name version))
7862 (sha256
7863 (base32
7864 "1hnikak52hmcq1r5f616m6qq1108qnkw80pja950nv1fq5p0ppjn"))))
7865 (build-system asdf-build-system/sbcl)
7866 (inputs
7867 `(("cl-unicode" ,sbcl-cl-unicode)
7868 ("named-readtables" ,sbcl-named-readtables)))
7869 (native-inputs
7870 `(("flexi-streams" ,sbcl-flexi-streams)))
7871 (synopsis "String interpolation for Common Lisp")
7872 (description
7873 "CL-INTERPOL is a library for Common Lisp which modifies the
7874 reader so that you can have interpolation within strings similar to
7875 Perl or Unix Shell scripts. It also provides various ways to insert
7876 arbitrary characters into literal strings even if your editor/IDE
7877 doesn't support them.")
7878 (home-page "https://edicl.github.io/cl-interpol/")
7879 (license license:bsd-3))))
7880
7881 (define-public cl-interpol
7882 (sbcl-package->cl-source-package sbcl-cl-interpol))
7883
7884 (define-public ecl-cl-interpol
7885 (sbcl-package->ecl-package sbcl-cl-interpol))
7886
7887 (define sbcl-symbol-munger-boot0
7888 ;; There is a cyclical dependency between symbol-munger and lisp-unit2.
7889 ;; See https://github.com/AccelerationNet/symbol-munger/issues/4
7890 (let ((commit "cc2bb4b7acd454d756484aec81ba487648385fc3")
7891 (revision "1"))
7892 (package
7893 (name "sbcl-symbol-munger-boot0")
7894 (version (git-version "0.0.1" revision commit))
7895 (source
7896 (origin
7897 (method git-fetch)
7898 (uri (git-reference
7899 (url "https://github.com/AccelerationNet/symbol-munger.git")
7900 (commit commit)))
7901 (file-name (git-file-name name version))
7902 (sha256
7903 (base32
7904 "0diav5ricqsybqvbp4bkxyj3bn3v9n7xb2pqqc4vg1algsw2pyjl"))))
7905 (build-system asdf-build-system/sbcl)
7906 (arguments
7907 `(#:asd-file "symbol-munger.asd"
7908 #:asd-system-name "symbol-munger"))
7909 (inputs
7910 `(("iterate" ,sbcl-iterate)
7911 ("alexandria" ,sbcl-alexandria)))
7912 (native-inputs
7913 `(("lisp-unit" ,sbcl-lisp-unit)))
7914 (synopsis
7915 "Capitalization and spacing conversion functions for Common Lisp")
7916 (description
7917 "This is a Common Lisp library to change the capitalization and spacing
7918 of a string or a symbol. It can convert to and from Lisp, english, underscore
7919 and camel-case rules.")
7920 (home-page "https://github.com/AccelerationNet/symbol-munger")
7921 ;; The package declares a BSD license, but all of the license
7922 ;; text is MIT.
7923 ;; See https://github.com/AccelerationNet/symbol-munger/issues/5
7924 (license license:expat))))
7925
7926 (define sbcl-lisp-unit2-boot0
7927 ;; There is a cyclical dependency between symbol-munger and lisp-unit2.
7928 ;; See https://github.com/AccelerationNet/symbol-munger/issues/4
7929 (let ((commit "fb9721524d1e4e73abb223ee036d74ce14a5505c")
7930 (revision "1"))
7931 (package
7932 (name "sbcl-lisp-unit2-boot0")
7933 (version (git-version "0.2.0" revision commit))
7934 (source
7935 (origin
7936 (method git-fetch)
7937 (uri (git-reference
7938 (url "https://github.com/AccelerationNet/lisp-unit2.git")
7939 (commit commit)))
7940 (file-name (git-file-name name version))
7941 (sha256
7942 (base32
7943 "1rsqy8y0jqll6xn9a593848f5wvd5ribv4csry1ly0hmdhfnqzlp"))))
7944 (build-system asdf-build-system/sbcl)
7945 (arguments
7946 `(#:asd-file "lisp-unit2.asd"
7947 #:asd-system-name "lisp-unit2"))
7948 (inputs
7949 `(("alexandria" ,sbcl-alexandria)
7950 ("cl-interpol" ,sbcl-cl-interpol)
7951 ("iterate" ,sbcl-iterate)
7952 ("symbol-munger-boot0" ,sbcl-symbol-munger-boot0)))
7953 (synopsis "Test Framework for Common Lisp")
7954 (description
7955 "LISP-UNIT2 is a Common Lisp library that supports unit testing in the
7956 style of JUnit for Java. It is a new version of the lisp-unit library written
7957 by Chris Riesbeck.")
7958 (home-page "https://github.com/AccelerationNet/lisp-unit2")
7959 (license license:expat))))
7960
7961 (define-public sbcl-symbol-munger
7962 (let ((commit "97598d4c3c53fd5da72ab78908fbd5d8c7a13416")
7963 (revision "1"))
7964 (package
7965 (name "sbcl-symbol-munger")
7966 (version (git-version "0.0.1" revision commit))
7967 (source
7968 (origin
7969 (method git-fetch)
7970 (uri (git-reference
7971 (url "https://github.com/AccelerationNet/symbol-munger.git")
7972 (commit commit)))
7973 (file-name (git-file-name name version))
7974 (sha256
7975 (base32
7976 "0y8jywjy0ldyhp7bxf16fdvdd2qgqnd7nlhlqfpfnzxcqk4xy1km"))))
7977 (build-system asdf-build-system/sbcl)
7978 (inputs
7979 `(("alexandria" ,sbcl-alexandria)
7980 ("iterate" ,sbcl-iterate)))
7981 (native-inputs
7982 `(("lisp-unit2-boot0" ,sbcl-lisp-unit2-boot0)))
7983 (synopsis
7984 "Capitalization and spacing conversion functions for Common Lisp")
7985 (description
7986 "This is a Common Lisp library to change the capitalization and spacing
7987 of a string or a symbol. It can convert to and from Lisp, english, underscore
7988 and camel-case rules.")
7989 (home-page "https://github.com/AccelerationNet/symbol-munger")
7990 ;; The package declares a BSD license, but all of the license
7991 ;; text is MIT.
7992 ;; See https://github.com/AccelerationNet/symbol-munger/issues/5
7993 (license license:expat))))
7994
7995 (define-public cl-symbol-munger
7996 (sbcl-package->cl-source-package sbcl-symbol-munger))
7997
7998 (define-public ecl-symbol-munger
7999 (sbcl-package->ecl-package sbcl-symbol-munger))
8000
8001 (define-public sbcl-lisp-unit2
8002 (package
8003 (inherit sbcl-lisp-unit2-boot0)
8004 (name "sbcl-lisp-unit2")
8005 (inputs
8006 `(("alexandria" ,sbcl-alexandria)
8007 ("cl-interpol" ,sbcl-cl-interpol)
8008 ("iterate" ,sbcl-iterate)
8009 ("symbol-munger" ,sbcl-symbol-munger)))))
8010
8011 (define-public cl-lisp-unit2
8012 (sbcl-package->cl-source-package sbcl-lisp-unit2))
8013
8014 (define-public ecl-lisp-unit2
8015 (sbcl-package->ecl-package sbcl-lisp-unit2))
8016
8017 (define-public sbcl-cl-csv
8018 (let ((commit "3eba29c8364b033fbe0d189c2500559278b6a362")
8019 (revision "1"))
8020 (package
8021 (name "sbcl-cl-csv")
8022 (version (git-version "1.0.6" revision commit))
8023 (source
8024 (origin
8025 (method git-fetch)
8026 (uri (git-reference
8027 (url "https://github.com/AccelerationNet/cl-csv.git")
8028 (commit commit)))
8029 (file-name (git-file-name name version))
8030 (sha256
8031 (base32
8032 "07h4ni89jzx93clx453hlnnb5g53hhlcmz5hghqv6ysam48lc8g6"))))
8033 (build-system asdf-build-system/sbcl)
8034 (arguments
8035 ;; See: https://github.com/AccelerationNet/cl-csv/pull/34
8036 `(#:tests? #f))
8037 (inputs
8038 `(("alexandria" ,sbcl-alexandria)
8039 ("cl-interpol" ,sbcl-cl-interpol)
8040 ("iterate" ,sbcl-iterate)))
8041 (native-inputs
8042 `(("lisp-unit2" ,sbcl-lisp-unit2)))
8043 (synopsis "Common lisp library for comma-separated values")
8044 (description
8045 "This is a Common Lisp library providing functions to read/write CSV
8046 from/to strings, streams and files.")
8047 (home-page "https://github.com/AccelerationNet/cl-csv")
8048 (license license:bsd-3))))
8049
8050 (define-public cl-csv
8051 (sbcl-package->cl-source-package sbcl-cl-csv))
8052
8053 (define-public ecl-cl-csv
8054 (sbcl-package->ecl-package sbcl-cl-csv))
8055
8056 (define-public sbcl-external-program
8057 (let ((commit "5888b8f1fd3953feeeacecbba4384ddda584a749")
8058 (revision "1"))
8059 (package
8060 (name "sbcl-external-program")
8061 (version (git-version "0.0.6" revision commit))
8062 (source
8063 (origin
8064 (method git-fetch)
8065 (uri (git-reference
8066 (url "https://github.com/sellout/external-program.git")
8067 (commit commit)))
8068 (file-name (git-file-name name version))
8069 (sha256
8070 (base32
8071 "0vww1x3yilb3bjwg6k184vaj4vxyxw4vralhnlm6lk4xac67kc9z"))))
8072 (build-system asdf-build-system/sbcl)
8073 (inputs
8074 `(("trivial-features" ,sbcl-trivial-features)))
8075 (native-inputs
8076 `(("fiveam" ,sbcl-fiveam)))
8077 (synopsis "Common Lisp library for running external programs")
8078 (description
8079 "EXTERNAL-PROGRAM enables running programs outside the Lisp
8080 process. It is an attempt to make the RUN-PROGRAM functionality in
8081 implementations like SBCL and CCL as portable as possible without
8082 sacrificing much in the way of power.")
8083 (home-page "https://github.com/sellout/external-program")
8084 (license license:llgpl))))
8085
8086 (define-public cl-external-program
8087 (sbcl-package->cl-source-package sbcl-external-program))
8088
8089 (define-public ecl-external-program
8090 (sbcl-package->ecl-package sbcl-external-program))
8091
8092 (define sbcl-cl-ana-boot0
8093 (let ((commit "fa7cee4c50aa1c859652813049ba0da7c18a0df9")
8094 (revision "1"))
8095 (package
8096 (name "sbcl-cl-ana-boot0")
8097 (version (git-version "0.0.0" revision commit))
8098 (source
8099 (origin
8100 (method git-fetch)
8101 (uri (git-reference
8102 (url "https://github.com/ghollisjr/cl-ana.git")
8103 (commit commit)))
8104 (file-name (git-file-name name version))
8105 (sha256
8106 (base32
8107 "0mr47l57m276dbpap7irr4fcnk5fgknhf6mgv4043s8h73amk5qh"))))
8108 (build-system asdf-build-system/sbcl)
8109 (synopsis "Common Lisp data analysis library")
8110 (description
8111 "CL-ANA is a data analysis library in Common Lisp providing tabular and
8112 binned data analysis along with nonlinear least squares fitting and
8113 visualization.")
8114 (home-page "https://github.com/ghollisjr/cl-ana")
8115 (license license:gpl3))))
8116
8117 (define-public sbcl-cl-ana.pathname-utils
8118 (package
8119 (inherit sbcl-cl-ana-boot0)
8120 (name "sbcl-cl-ana.pathname-utils")
8121 (arguments
8122 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8123 ((#:asd-file _ "") "pathname-utils/cl-ana.pathname-utils.asd")
8124 ((#:asd-system-name _ #f) "cl-ana.pathname-utils")))))
8125
8126 (define-public cl-ana.pathname-utils
8127 (sbcl-package->cl-source-package sbcl-cl-ana.pathname-utils))
8128
8129 (define-public ecl-cl-ana.pathname-utils
8130 (sbcl-package->ecl-package sbcl-cl-ana.pathname-utils))
8131
8132 (define-public sbcl-cl-ana.package-utils
8133 (package
8134 (inherit sbcl-cl-ana-boot0)
8135 (name "sbcl-cl-ana.package-utils")
8136 (inputs
8137 `(("alexandria" ,sbcl-alexandria)))
8138 (arguments
8139 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8140 ((#:asd-file _ "") "package-utils/cl-ana.package-utils.asd")
8141 ((#:asd-system-name _ #f) "cl-ana.package-utils")))))
8142
8143 (define-public cl-ana.package-utils
8144 (sbcl-package->cl-source-package sbcl-cl-ana.package-utils))
8145
8146 (define-public ecl-cl-ana.package-utils
8147 (sbcl-package->ecl-package sbcl-cl-ana.package-utils))
8148
8149 (define-public sbcl-cl-ana.string-utils
8150 (package
8151 (inherit sbcl-cl-ana-boot0)
8152 (name "sbcl-cl-ana.string-utils")
8153 (inputs
8154 `(("split-sequence" ,sbcl-split-sequence)))
8155 (arguments
8156 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8157 ((#:asd-file _ "") "string-utils/cl-ana.string-utils.asd")
8158 ((#:asd-system-name _ #f) "cl-ana.string-utils")))))
8159
8160 (define-public cl-ana.string-utils
8161 (sbcl-package->cl-source-package sbcl-cl-ana.string-utils))
8162
8163 (define-public ecl-cl-ana.string-utils
8164 (sbcl-package->ecl-package sbcl-cl-ana.string-utils))
8165
8166 (define-public sbcl-cl-ana.functional-utils
8167 (package
8168 (inherit sbcl-cl-ana-boot0)
8169 (name "sbcl-cl-ana.functional-utils")
8170 (arguments
8171 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8172 ((#:asd-file _ "") "functional-utils/cl-ana.functional-utils.asd")
8173 ((#:asd-system-name _ #f) "cl-ana.functional-utils")))))
8174
8175 (define-public cl-ana.functional-utils
8176 (sbcl-package->cl-source-package sbcl-cl-ana.functional-utils))
8177
8178 (define-public ecl-cl-ana.functional-utils
8179 (sbcl-package->ecl-package sbcl-cl-ana.functional-utils))
8180
8181 (define-public sbcl-cl-ana.list-utils
8182 (package
8183 (inherit sbcl-cl-ana-boot0)
8184 (name "sbcl-cl-ana.list-utils")
8185 (inputs
8186 `(("alexandria" ,sbcl-alexandria)
8187 ("cl-ana.functional-utils" ,sbcl-cl-ana.functional-utils)
8188 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)))
8189 (arguments
8190 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8191 ((#:asd-file _ "") "list-utils/cl-ana.list-utils.asd")
8192 ((#:asd-system-name _ #f) "cl-ana.list-utils")))))
8193
8194 (define-public cl-ana.list-utils
8195 (sbcl-package->cl-source-package sbcl-cl-ana.list-utils))
8196
8197 (define-public ecl-cl-ana.list-utils
8198 (sbcl-package->ecl-package sbcl-cl-ana.list-utils))
8199
8200 (define-public sbcl-cl-ana.generic-math
8201 (package
8202 (inherit sbcl-cl-ana-boot0)
8203 (name "sbcl-cl-ana.generic-math")
8204 (inputs
8205 `(("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8206 ("cl-ana.package-utils" ,sbcl-cl-ana.package-utils)))
8207 (arguments
8208 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8209 ((#:asd-file _ "") "generic-math/cl-ana.generic-math.asd")
8210 ((#:asd-system-name _ #f) "cl-ana.generic-math")))))
8211
8212 (define-public cl-ana.generic-math
8213 (sbcl-package->cl-source-package sbcl-cl-ana.generic-math))
8214
8215 (define-public ecl-cl-ana.generic-math
8216 (sbcl-package->ecl-package sbcl-cl-ana.generic-math))
8217
8218 (define-public sbcl-cl-ana.math-functions
8219 (package
8220 (inherit sbcl-cl-ana-boot0)
8221 (name "sbcl-cl-ana.math-functions")
8222 (inputs
8223 `(("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
8224 ("gsll" ,sbcl-gsll)))
8225 (arguments
8226 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8227 ((#:asd-file _ "") "math-functions/cl-ana.math-functions.asd")
8228 ((#:asd-system-name _ #f) "cl-ana.math-functions")))))
8229
8230 (define-public cl-ana.math-functions
8231 (sbcl-package->cl-source-package sbcl-cl-ana.math-functions))
8232
8233 (define-public sbcl-cl-ana.calculus
8234 (package
8235 (inherit sbcl-cl-ana-boot0)
8236 (name "sbcl-cl-ana.calculus")
8237 (inputs
8238 `(("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)))
8239 (arguments
8240 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8241 ((#:asd-file _ "") "calculus/cl-ana.calculus.asd")
8242 ((#:asd-system-name _ #f) "cl-ana.calculus")))))
8243
8244 (define-public cl-ana.calculus
8245 (sbcl-package->cl-source-package sbcl-cl-ana.calculus))
8246
8247 (define-public ecl-cl-ana.calculus
8248 (sbcl-package->ecl-package sbcl-cl-ana.calculus))
8249
8250 (define-public sbcl-cl-ana.symbol-utils
8251 (package
8252 (inherit sbcl-cl-ana-boot0)
8253 (name "sbcl-cl-ana.symbol-utils")
8254 (inputs
8255 `(("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)))
8256 (arguments
8257 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8258 ((#:asd-file _ "") "symbol-utils/cl-ana.symbol-utils.asd")
8259 ((#:asd-system-name _ #f) "cl-ana.symbol-utils")))))
8260
8261 (define-public cl-ana.symbol-utils
8262 (sbcl-package->cl-source-package sbcl-cl-ana.symbol-utils))
8263
8264 (define-public ecl-cl-ana.symbol-utils
8265 (sbcl-package->ecl-package sbcl-cl-ana.symbol-utils))
8266
8267 (define-public sbcl-cl-ana.macro-utils
8268 (package
8269 (inherit sbcl-cl-ana-boot0)
8270 (name "sbcl-cl-ana.macro-utils")
8271 (inputs
8272 `(("alexandria" ,sbcl-alexandria)
8273 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8274 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
8275 ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)
8276 ("split-sequence" ,sbcl-split-sequence)))
8277 (arguments
8278 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8279 ((#:asd-file _ "") "macro-utils/cl-ana.macro-utils.asd")
8280 ((#:asd-system-name _ #f) "cl-ana.macro-utils")))))
8281
8282 (define-public cl-ana.macro-utils
8283 (sbcl-package->cl-source-package sbcl-cl-ana.macro-utils))
8284
8285 (define-public ecl-cl-ana.macro-utils
8286 (sbcl-package->ecl-package sbcl-cl-ana.macro-utils))
8287
8288 (define-public sbcl-cl-ana.binary-tree
8289 (package
8290 (inherit sbcl-cl-ana-boot0)
8291 (name "sbcl-cl-ana.binary-tree")
8292 (inputs
8293 `(("cl-ana.functional-utils" ,sbcl-cl-ana.functional-utils)
8294 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8295 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)))
8296 (arguments
8297 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8298 ((#:asd-file _ "") "binary-tree/cl-ana.binary-tree.asd")
8299 ((#:asd-system-name _ #f) "cl-ana.binary-tree")))))
8300
8301 (define-public cl-ana.binary-tree
8302 (sbcl-package->cl-source-package sbcl-cl-ana.binary-tree))
8303
8304 (define-public ecl-cl-ana.binary-tree
8305 (sbcl-package->ecl-package sbcl-cl-ana.binary-tree))
8306
8307 (define-public sbcl-cl-ana.tensor
8308 (package
8309 (inherit sbcl-cl-ana-boot0)
8310 (name "sbcl-cl-ana.tensor")
8311 (inputs
8312 `(("alexandria" ,sbcl-alexandria)
8313 ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
8314 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8315 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
8316 ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)))
8317 (arguments
8318 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8319 ((#:asd-file _ "") "tensor/cl-ana.tensor.asd")
8320 ((#:asd-system-name _ #f) "cl-ana.tensor")))))
8321
8322 (define-public cl-ana.tensor
8323 (sbcl-package->cl-source-package sbcl-cl-ana.tensor))
8324
8325 (define-public ecl-cl-ana.tensor
8326 (sbcl-package->ecl-package sbcl-cl-ana.tensor))
8327
8328 (define-public sbcl-cl-ana.error-propogation
8329 (package
8330 (inherit sbcl-cl-ana-boot0)
8331 (name "sbcl-cl-ana.error-propogation")
8332 (inputs
8333 `(("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
8334 ("cl-ana.math-functions" ,sbcl-cl-ana.math-functions)))
8335 (arguments
8336 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8337 ((#:asd-file _ "") "error-propogation/cl-ana.error-propogation.asd")
8338 ((#:asd-system-name _ #f) "cl-ana.error-propogation")))))
8339
8340 (define-public cl-ana.error-propogation
8341 (sbcl-package->cl-source-package sbcl-cl-ana.error-propogation))
8342
8343 (define-public sbcl-cl-ana.quantity
8344 (package
8345 (inherit sbcl-cl-ana-boot0)
8346 (name "sbcl-cl-ana.quantity")
8347 (inputs
8348 `(("alexandria" ,sbcl-alexandria)
8349 ("cl-ana.error-propogation" ,sbcl-cl-ana.error-propogation)
8350 ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
8351 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8352 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
8353 ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)))
8354 (arguments
8355 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8356 ((#:asd-file _ "") "quantity/cl-ana.quantity.asd")
8357 ((#:asd-system-name _ #f) "cl-ana.quantity")))))
8358
8359 (define-public cl-ana.quantity
8360 (sbcl-package->cl-source-package sbcl-cl-ana.quantity))
8361
8362 (define-public sbcl-cl-ana.table
8363 (package
8364 (inherit sbcl-cl-ana-boot0)
8365 (name "sbcl-cl-ana.table")
8366 (inputs
8367 `(("alexandria" ,sbcl-alexandria)
8368 ("cl-ana.functional-utils" ,sbcl-cl-ana.functional-utils)
8369 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8370 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
8371 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
8372 ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)))
8373 (arguments
8374 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8375 ((#:asd-file _ "") "table/cl-ana.table.asd")
8376 ((#:asd-system-name _ #f) "cl-ana.table")))))
8377
8378 (define-public cl-ana.table
8379 (sbcl-package->cl-source-package sbcl-cl-ana.table))
8380
8381 (define-public ecl-cl-ana.table
8382 (sbcl-package->ecl-package sbcl-cl-ana.table))
8383
8384 (define-public sbcl-cl-ana.table-utils
8385 (package
8386 (inherit sbcl-cl-ana-boot0)
8387 (name "sbcl-cl-ana.table-utils")
8388 (inputs
8389 `(("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
8390 ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)
8391 ("cl-ana.table" ,sbcl-cl-ana.table)))
8392 (arguments
8393 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8394 ((#:asd-file _ "") "table-utils/cl-ana.table-utils.asd")
8395 ((#:asd-system-name _ #f) "cl-ana.table-utils")))))
8396
8397 (define-public cl-ana.table-utils
8398 (sbcl-package->cl-source-package sbcl-cl-ana.table-utils))
8399
8400 (define-public ecl-cl-ana.table-utils
8401 (sbcl-package->ecl-package sbcl-cl-ana.table-utils))
8402
8403 (define-public sbcl-cl-ana.hdf-cffi
8404 (package
8405 (inherit sbcl-cl-ana-boot0)
8406 (name "sbcl-cl-ana.hdf-cffi")
8407 (inputs
8408 `(("cffi" ,sbcl-cffi)
8409 ("hdf5" ,hdf5-parallel-openmpi)))
8410 (arguments
8411 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8412 ((#:asd-file _ "") "hdf-cffi/cl-ana.hdf-cffi.asd")
8413 ((#:asd-system-name _ #f) "cl-ana.hdf-cffi")
8414 ((#:phases phases '%standard-phases)
8415 `(modify-phases ,phases
8416 (add-after 'unpack 'fix-paths
8417 (lambda* (#:key inputs #:allow-other-keys)
8418 (substitute* "hdf-cffi/hdf-cffi.lisp"
8419 (("/usr/lib/i386-linux-gnu/hdf5/serial/libhdf5.so")
8420 (string-append
8421 (assoc-ref inputs "hdf5")
8422 "/lib/libhdf5.so")))))))))))
8423
8424 (define-public cl-ana.hdf-cffi
8425 (sbcl-package->cl-source-package sbcl-cl-ana.hdf-cffi))
8426
8427 (define-public ecl-cl-ana.hdf-cffi
8428 (sbcl-package->ecl-package sbcl-cl-ana.hdf-cffi))
8429
8430 (define-public sbcl-cl-ana.int-char
8431 (package
8432 (inherit sbcl-cl-ana-boot0)
8433 (name "sbcl-cl-ana.int-char")
8434 (arguments
8435 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8436 ((#:asd-file _ "") "int-char/cl-ana.int-char.asd")
8437 ((#:asd-system-name _ #f) "cl-ana.int-char")))))
8438
8439 (define-public cl-ana.int-char
8440 (sbcl-package->cl-source-package sbcl-cl-ana.int-char))
8441
8442 (define-public ecl-cl-ana.int-char
8443 (sbcl-package->ecl-package sbcl-cl-ana.int-char))
8444
8445 (define-public sbcl-cl-ana.memoization
8446 (package
8447 (inherit sbcl-cl-ana-boot0)
8448 (name "sbcl-cl-ana.memoization")
8449 (inputs
8450 `(("alexandria" ,sbcl-alexandria)))
8451 (arguments
8452 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8453 ((#:asd-file _ "") "memoization/cl-ana.memoization.asd")
8454 ((#:asd-system-name _ #f) "cl-ana.memoization")))))
8455
8456 (define-public cl-ana.memoization
8457 (sbcl-package->cl-source-package sbcl-cl-ana.memoization))
8458
8459 (define-public ecl-cl-ana.memoization
8460 (sbcl-package->ecl-package sbcl-cl-ana.memoization))
8461
8462 (define-public sbcl-cl-ana.typespec
8463 (package
8464 (inherit sbcl-cl-ana-boot0)
8465 (name "sbcl-cl-ana.typespec")
8466 (inputs
8467 `(("alexandria" ,sbcl-alexandria)
8468 ("cffi" ,sbcl-cffi)
8469 ("cl-ana.int-char" ,sbcl-cl-ana.int-char)
8470 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8471 ("cl-ana.memoization" ,sbcl-cl-ana.memoization)
8472 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
8473 ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)
8474 ("cl-ana.tensor" ,sbcl-cl-ana.tensor)))
8475 (arguments
8476 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8477 ((#:asd-file _ "") "typespec/cl-ana.typespec.asd")
8478 ((#:asd-system-name _ #f) "cl-ana.typespec")))))
8479
8480 (define-public cl-ana.typespec
8481 (sbcl-package->cl-source-package sbcl-cl-ana.typespec))
8482
8483 (define-public ecl-cl-ana.typespec
8484 (sbcl-package->ecl-package sbcl-cl-ana.typespec))
8485
8486 (define-public sbcl-cl-ana.hdf-typespec
8487 (package
8488 (inherit sbcl-cl-ana-boot0)
8489 (name "sbcl-cl-ana.hdf-typespec")
8490 (inputs
8491 `(("alexandria" ,sbcl-alexandria)
8492 ("cffi" ,sbcl-cffi)
8493 ("cl-ana.hdf-cffi" ,sbcl-cl-ana.hdf-cffi)
8494 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8495 ("cl-ana.memoization" ,sbcl-cl-ana.memoization)
8496 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
8497 ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)
8498 ("cl-ana.typespec" ,sbcl-cl-ana.typespec)))
8499 (arguments
8500 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8501 ((#:asd-file _ "") "hdf-typespec/cl-ana.hdf-typespec.asd")
8502 ((#:asd-system-name _ #f) "cl-ana.hdf-typespec")))))
8503
8504 (define-public cl-ana.hdf-typespec
8505 (sbcl-package->cl-source-package sbcl-cl-ana.hdf-typespec))
8506
8507 (define-public ecl-cl-ana.hdf-typespec
8508 (sbcl-package->ecl-package sbcl-cl-ana.hdf-typespec))
8509
8510 (define-public sbcl-cl-ana.hdf-utils
8511 (package
8512 (inherit sbcl-cl-ana-boot0)
8513 (name "sbcl-cl-ana.hdf-utils")
8514 (inputs
8515 `(("alexandria" ,sbcl-alexandria)
8516 ("cffi" ,sbcl-cffi)
8517 ("cl-ana.hdf-cffi" ,sbcl-cl-ana.hdf-cffi)
8518 ("cl-ana.hdf-typespec" ,sbcl-cl-ana.hdf-typespec)
8519 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
8520 ("cl-ana.memoization" ,sbcl-cl-ana.memoization)
8521 ("cl-ana.pathname-utils" ,sbcl-cl-ana.pathname-utils)
8522 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
8523 ("cl-ana.typespec" ,sbcl-cl-ana.typespec)))
8524 (arguments
8525 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8526 ((#:asd-file _ "") "hdf-utils/cl-ana.hdf-utils.asd")
8527 ((#:asd-system-name _ #f) "cl-ana.hdf-utils")))))
8528
8529 (define-public cl-ana.hdf-utils
8530 (sbcl-package->cl-source-package sbcl-cl-ana.hdf-utils))
8531
8532 (define-public ecl-cl-ana.hdf-utils
8533 (sbcl-package->ecl-package sbcl-cl-ana.hdf-utils))
8534
8535 (define-public sbcl-cl-ana.typed-table
8536 (package
8537 (inherit sbcl-cl-ana-boot0)
8538 (name "sbcl-cl-ana.typed-table")
8539 (inputs
8540 `(("alexandria" ,sbcl-alexandria)
8541 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8542 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
8543 ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)
8544 ("cl-ana.table" ,sbcl-cl-ana.table)
8545 ("cl-ana.typespec" ,sbcl-cl-ana.typespec)))
8546 (arguments
8547 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8548 ((#:asd-file _ "") "typed-table/cl-ana.typed-table.asd")
8549 ((#:asd-system-name _ #f) "cl-ana.typed-table")))))
8550
8551 (define-public cl-ana.typed-table
8552 (sbcl-package->cl-source-package sbcl-cl-ana.typed-table))
8553
8554 (define-public ecl-cl-ana.typed-table
8555 (sbcl-package->ecl-package sbcl-cl-ana.typed-table))
8556
8557 (define-public sbcl-cl-ana.hdf-table
8558 (package
8559 (inherit sbcl-cl-ana-boot0)
8560 (name "sbcl-cl-ana.hdf-table")
8561 (inputs
8562 `(("alexandria" ,sbcl-alexandria)
8563 ("cl-ana.binary-tree" ,sbcl-cl-ana.binary-tree)
8564 ("cl-ana.hdf-cffi" ,sbcl-cl-ana.hdf-cffi)
8565 ("cl-ana.hdf-typespec" ,sbcl-cl-ana.hdf-typespec)
8566 ("cl-ana.hdf-utils" ,sbcl-cl-ana.hdf-utils)
8567 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8568 ("cl-ana.memoization" ,sbcl-cl-ana.memoization)
8569 ("cl-ana.table" ,sbcl-cl-ana.table)
8570 ("cl-ana.typed-table" ,sbcl-cl-ana.typed-table)
8571 ("cl-ana.typespec" ,sbcl-cl-ana.typespec)))
8572 (arguments
8573 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8574 ((#:asd-file _ "") "hdf-table/cl-ana.hdf-table.asd")
8575 ((#:asd-system-name _ #f) "cl-ana.hdf-table")))))
8576
8577 (define-public cl-ana.hdf-table
8578 (sbcl-package->cl-source-package sbcl-cl-ana.hdf-table))
8579
8580 (define-public ecl-cl-ana.hdf-table
8581 (sbcl-package->ecl-package sbcl-cl-ana.hdf-table))
8582
8583 (define-public sbcl-cl-ana.gsl-cffi
8584 (package
8585 (inherit sbcl-cl-ana-boot0)
8586 (name "sbcl-cl-ana.gsl-cffi")
8587 (inputs
8588 `(("cffi" ,sbcl-cffi)
8589 ("gsl" ,gsl)))
8590 (arguments
8591 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8592 ((#:asd-file _ "") "gsl-cffi/cl-ana.gsl-cffi.asd")
8593 ((#:asd-system-name _ #f) "cl-ana.gsl-cffi")
8594 ((#:phases phases '%standard-phases)
8595 `(modify-phases ,phases
8596 (add-after 'unpack 'fix-paths
8597 (lambda* (#:key inputs #:allow-other-keys)
8598 (substitute* "gsl-cffi/gsl-cffi.lisp"
8599 (("define-foreign-library gsl-cffi" all)
8600 (string-append all " (:unix "
8601 (assoc-ref inputs "gsl")
8602 "/lib/libgsl.so)")))))))))))
8603
8604 (define-public cl-ana.gsl-cffi
8605 (sbcl-package->cl-source-package sbcl-cl-ana.gsl-cffi))
8606
8607 (define-public ecl-cl-ana.gsl-cffi
8608 (sbcl-package->ecl-package sbcl-cl-ana.gsl-cffi))
8609
8610 (define-public sbcl-cl-ana.ntuple-table
8611 (package
8612 (inherit sbcl-cl-ana-boot0)
8613 (name "sbcl-cl-ana.ntuple-table")
8614 (inputs
8615 `(("alexandria" ,sbcl-alexandria)
8616 ("cffi" ,sbcl-cffi)
8617 ("cl-ana.gsl-cffi" ,sbcl-cl-ana.gsl-cffi)
8618 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8619 ("cl-ana.table" ,sbcl-cl-ana.table)
8620 ("cl-ana.typed-table" ,sbcl-cl-ana.typed-table)
8621 ("cl-ana.typespec" ,sbcl-cl-ana.typespec)
8622 ("gsll" ,sbcl-gsll)))
8623 (arguments
8624 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8625 ((#:asd-file _ "") "ntuple-table/cl-ana.ntuple-table.asd")
8626 ((#:asd-system-name _ #f) "cl-ana.ntuple-table")))))
8627
8628 (define-public cl-ana.ntuple-table
8629 (sbcl-package->cl-source-package sbcl-cl-ana.ntuple-table))
8630
8631 (define-public sbcl-cl-ana.csv-table
8632 (package
8633 (inherit sbcl-cl-ana-boot0)
8634 (name "sbcl-cl-ana.csv-table")
8635 (inputs
8636 `(("alexandria" ,sbcl-alexandria)
8637 ("antik" ,sbcl-antik)
8638 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8639 ("cl-ana.table" ,sbcl-cl-ana.table)
8640 ("cl-csv" ,sbcl-cl-csv)
8641 ("iterate" ,sbcl-iterate)))
8642 (arguments
8643 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8644 ((#:asd-file _ "") "csv-table/cl-ana.csv-table.asd")
8645 ((#:asd-system-name _ #f) "cl-ana.csv-table")))))
8646
8647 (define-public cl-ana.csv-table
8648 (sbcl-package->cl-source-package sbcl-cl-ana.csv-table))
8649
8650 (define-public sbcl-cl-ana.reusable-table
8651 (package
8652 (inherit sbcl-cl-ana-boot0)
8653 (name "sbcl-cl-ana.reusable-table")
8654 (inputs
8655 `(("alexandria" ,sbcl-alexandria)
8656 ("cl-ana.table" ,sbcl-cl-ana.table)))
8657 (arguments
8658 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8659 ((#:asd-file _ "") "reusable-table/cl-ana.reusable-table.asd")
8660 ((#:asd-system-name _ #f) "cl-ana.reusable-table")))))
8661
8662 (define-public cl-ana.reusable-table
8663 (sbcl-package->cl-source-package sbcl-cl-ana.reusable-table))
8664
8665 (define-public ecl-cl-ana.reusable-table
8666 (sbcl-package->ecl-package sbcl-cl-ana.reusable-table))
8667
8668 (define-public sbcl-cl-ana.linear-algebra
8669 (package
8670 (inherit sbcl-cl-ana-boot0)
8671 (name "sbcl-cl-ana.linear-algebra")
8672 (inputs
8673 `(("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
8674 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8675 ("cl-ana.math-functions" ,sbcl-cl-ana.math-functions)
8676 ("cl-ana.tensor" ,sbcl-cl-ana.tensor)
8677 ("gsll" ,sbcl-gsll)))
8678 (arguments
8679 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8680 ((#:asd-file _ "") "linear-algebra/cl-ana.linear-algebra.asd")
8681 ((#:asd-system-name _ #f) "cl-ana.linear-algebra")))))
8682
8683 (define-public cl-ana.linear-algebra
8684 (sbcl-package->cl-source-package sbcl-cl-ana.linear-algebra))
8685
8686 (define-public sbcl-cl-ana.lorentz
8687 (package
8688 (inherit sbcl-cl-ana-boot0)
8689 (name "sbcl-cl-ana.lorentz")
8690 (inputs
8691 `(("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
8692 ("cl-ana.linear-algebra" ,sbcl-cl-ana.linear-algebra)
8693 ("cl-ana.tensor" ,sbcl-cl-ana.tensor)
8694 ("iterate" ,sbcl-iterate)))
8695 (arguments
8696 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8697 ((#:asd-file _ "") "lorentz/cl-ana.lorentz.asd")
8698 ((#:asd-system-name _ #f) "cl-ana.lorentz")))))
8699
8700 (define-public cl-ana.lorentz
8701 (sbcl-package->cl-source-package sbcl-cl-ana.lorentz))
8702
8703 (define-public sbcl-cl-ana.clos-utils
8704 (package
8705 (inherit sbcl-cl-ana-boot0)
8706 (name "sbcl-cl-ana.clos-utils")
8707 (inputs
8708 `(("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8709 ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)
8710 ("cl-ana.tensor" ,sbcl-cl-ana.tensor)
8711 ("closer-mop" ,sbcl-closer-mop)))
8712 (arguments
8713 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8714 ((#:asd-file _ "") "clos-utils/cl-ana.clos-utils.asd")
8715 ((#:asd-system-name _ #f) "cl-ana.clos-utils")))))
8716
8717 (define-public cl-ana.clos-utils
8718 (sbcl-package->cl-source-package sbcl-cl-ana.clos-utils))
8719
8720 (define-public ecl-cl-ana.clos-utils
8721 (sbcl-package->ecl-package sbcl-cl-ana.clos-utils))
8722
8723 (define-public sbcl-cl-ana.hash-table-utils
8724 (package
8725 (inherit sbcl-cl-ana-boot0)
8726 (name "sbcl-cl-ana.hash-table-utils")
8727 (arguments
8728 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8729 ((#:asd-file _ "") "hash-table-utils/cl-ana.hash-table-utils.asd")
8730 ((#:asd-system-name _ #f) "cl-ana.hash-table-utils")))))
8731
8732 (define-public cl-ana.hash-table-utils
8733 (sbcl-package->cl-source-package sbcl-cl-ana.hash-table-utils))
8734
8735 (define-public ecl-cl-ana.hash-table-utils
8736 (sbcl-package->ecl-package sbcl-cl-ana.hash-table-utils))
8737
8738 (define-public sbcl-cl-ana.map
8739 (package
8740 (inherit sbcl-cl-ana-boot0)
8741 (name "sbcl-cl-ana.map")
8742 (inputs
8743 `(("cl-ana.hash-table-utils" ,sbcl-cl-ana.hash-table-utils)))
8744 (arguments
8745 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8746 ((#:asd-file _ "") "map/cl-ana.map.asd")
8747 ((#:asd-system-name _ #f) "cl-ana.map")))))
8748
8749 (define-public cl-ana.map
8750 (sbcl-package->cl-source-package sbcl-cl-ana.map))
8751
8752 (define-public ecl-cl-ana.map
8753 (sbcl-package->ecl-package sbcl-cl-ana.map))
8754
8755 (define-public sbcl-cl-ana.fitting
8756 (package
8757 (inherit sbcl-cl-ana-boot0)
8758 (name "sbcl-cl-ana.fitting")
8759 (inputs
8760 `(("alexandria" ,sbcl-alexandria)
8761 ("cl-ana.error-propogation" ,sbcl-cl-ana.error-propogation)
8762 ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
8763 ("cl-ana.map" ,sbcl-cl-ana.map)
8764 ("cl-ana.math-functions" ,sbcl-cl-ana.math-functions)
8765 ("gsll" ,sbcl-gsll)))
8766 (arguments
8767 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8768 ((#:asd-file _ "") "fitting/cl-ana.fitting.asd")
8769 ((#:asd-system-name _ #f) "cl-ana.fitting")))))
8770
8771 (define-public cl-ana.fitting
8772 (sbcl-package->cl-source-package sbcl-cl-ana.fitting))
8773
8774 (define-public sbcl-cl-ana.histogram
8775 (package
8776 (inherit sbcl-cl-ana-boot0)
8777 (name "sbcl-cl-ana.histogram")
8778 (inputs
8779 `(("alexandria" ,sbcl-alexandria)
8780 ("iterate" ,sbcl-iterate)
8781 ("cl-ana.binary-tree" ,sbcl-cl-ana.binary-tree)
8782 ("cl-ana.clos-utils" ,sbcl-cl-ana.clos-utils)
8783 ("cl-ana.fitting" ,sbcl-cl-ana.fitting)
8784 ("cl-ana.functional-utils" ,sbcl-cl-ana.functional-utils)
8785 ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
8786 ("cl-ana.hash-table-utils" ,sbcl-cl-ana.hash-table-utils)
8787 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8788 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
8789 ("cl-ana.map" ,sbcl-cl-ana.map)
8790 ("cl-ana.tensor" ,sbcl-cl-ana.tensor)))
8791 (arguments
8792 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8793 ((#:asd-file _ "") "histogram/cl-ana.histogram.asd")
8794 ((#:asd-system-name _ #f) "cl-ana.histogram")))))
8795
8796 (define-public cl-ana.histogram
8797 (sbcl-package->cl-source-package sbcl-cl-ana.histogram))
8798
8799 (define-public sbcl-cl-ana.file-utils
8800 (package
8801 (inherit sbcl-cl-ana-boot0)
8802 (name "sbcl-cl-ana.file-utils")
8803 (inputs
8804 `(("external-program" ,sbcl-external-program)
8805 ("split-sequence" ,sbcl-split-sequence)))
8806 (arguments
8807 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8808 ((#:asd-file _ "") "file-utils/cl-ana.file-utils.asd")
8809 ((#:asd-system-name _ #f) "cl-ana.file-utils")))))
8810
8811 (define-public cl-ana.file-utils
8812 (sbcl-package->cl-source-package sbcl-cl-ana.file-utils))
8813
8814 (define-public ecl-cl-ana.file-utils
8815 (sbcl-package->ecl-package sbcl-cl-ana.file-utils))
8816
8817 (define-public sbcl-cl-ana.statistics
8818 (package
8819 (inherit sbcl-cl-ana-boot0)
8820 (name "sbcl-cl-ana.statistics")
8821 (inputs
8822 `(("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
8823 ("cl-ana.histogram" ,sbcl-cl-ana.histogram)
8824 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8825 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
8826 ("cl-ana.map" ,sbcl-cl-ana.map)))
8827 (arguments
8828 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8829 ((#:asd-file _ "") "statistics/cl-ana.statistics.asd")
8830 ((#:asd-system-name _ #f) "cl-ana.statistics")))))
8831
8832 (define-public cl-ana.statistics
8833 (sbcl-package->cl-source-package sbcl-cl-ana.statistics))
8834
8835 (define-public sbcl-cl-ana.gnuplot-interface
8836 (package
8837 (inherit sbcl-cl-ana-boot0)
8838 (name "sbcl-cl-ana.gnuplot-interface")
8839 (inputs
8840 `(("external-program" ,sbcl-external-program)))
8841 (arguments
8842 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8843 ((#:asd-file _ "") "gnuplot-interface/cl-ana.gnuplot-interface.asd")
8844 ((#:asd-system-name _ #f) "cl-ana.gnuplot-interface")))))
8845
8846 (define-public cl-ana.gnuplot-interface
8847 (sbcl-package->cl-source-package sbcl-cl-ana.gnuplot-interface))
8848
8849 (define-public ecl-cl-ana.gnuplot-interface
8850 (sbcl-package->ecl-package sbcl-cl-ana.gnuplot-interface))
8851
8852 (define-public sbcl-cl-ana.plotting
8853 (package
8854 (inherit sbcl-cl-ana-boot0)
8855 (name "sbcl-cl-ana.plotting")
8856 (inputs
8857 `(("alexandria" ,sbcl-alexandria)
8858 ("cl-ana.error-propogation" ,sbcl-cl-ana.error-propogation)
8859 ("cl-ana.functional-utils" ,sbcl-cl-ana.functional-utils)
8860 ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
8861 ("cl-ana.gnuplot-interface" ,sbcl-cl-ana.gnuplot-interface)
8862 ("cl-ana.histogram" ,sbcl-cl-ana.histogram)
8863 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8864 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
8865 ("cl-ana.map" ,sbcl-cl-ana.map)
8866 ("cl-ana.math-functions" ,sbcl-cl-ana.math-functions)
8867 ("cl-ana.pathname-utils" ,sbcl-cl-ana.pathname-utils)
8868 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
8869 ("cl-ana.tensor" ,sbcl-cl-ana.tensor)
8870 ("external-program" ,sbcl-external-program)
8871 ("split-sequence" ,sbcl-split-sequence)))
8872 (arguments
8873 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8874 ((#:asd-file _ "") "plotting/cl-ana.plotting.asd")
8875 ((#:asd-system-name _ #f) "cl-ana.plotting")))))
8876
8877 (define-public cl-ana.plotting
8878 (sbcl-package->cl-source-package sbcl-cl-ana.plotting))
8879
8880 (define-public sbcl-cl-ana.table-viewing
8881 (package
8882 (inherit sbcl-cl-ana-boot0)
8883 (name "sbcl-cl-ana.table-viewing")
8884 (inputs
8885 `(("alexandria" ,sbcl-alexandria)
8886 ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
8887 ("cl-ana.histogram" ,sbcl-cl-ana.histogram)
8888 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
8889 ("cl-ana.plotting" ,sbcl-cl-ana.plotting)
8890 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
8891 ("cl-ana.table" ,sbcl-cl-ana.table)))
8892 (arguments
8893 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8894 ((#:asd-file _ "") "table-viewing/cl-ana.table-viewing.asd")
8895 ((#:asd-system-name _ #f) "cl-ana.table-viewing")))))
8896
8897 (define-public cl-ana.table-viewing
8898 (sbcl-package->cl-source-package sbcl-cl-ana.table-viewing))
8899
8900 (define-public sbcl-cl-ana.serialization
8901 (package
8902 (inherit sbcl-cl-ana-boot0)
8903 (name "sbcl-cl-ana.serialization")
8904 (inputs
8905 `(("cl-ana.error-propogation" ,sbcl-cl-ana.error-propogation)
8906 ("cl-ana.hdf-utils" ,sbcl-cl-ana.hdf-utils)
8907 ("cl-ana.hdf-table" ,sbcl-cl-ana.hdf-table)
8908 ("cl-ana.histogram" ,sbcl-cl-ana.histogram)
8909 ("cl-ana.int-char" ,sbcl-cl-ana.int-char)
8910 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
8911 ("cl-ana.typespec" ,sbcl-cl-ana.typespec)))
8912 (arguments
8913 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8914 ((#:asd-file _ "") "serialization/cl-ana.serialization.asd")
8915 ((#:asd-system-name _ #f) "cl-ana.serialization")))))
8916
8917 (define-public cl-ana.serialization
8918 (sbcl-package->cl-source-package sbcl-cl-ana.serialization))
8919
8920 (define-public sbcl-cl-ana.makeres
8921 (package
8922 (inherit sbcl-cl-ana-boot0)
8923 (name "sbcl-cl-ana.makeres")
8924 (inputs
8925 `(("alexandria" ,sbcl-alexandria)
8926 ("cl-ana.error-propogation" ,sbcl-cl-ana.error-propogation)
8927 ("cl-ana.file-utils" ,sbcl-cl-ana.file-utils)
8928 ("cl-ana.functional-utils" ,sbcl-cl-ana.functional-utils)
8929 ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
8930 ("cl-ana.hash-table-utils" ,sbcl-cl-ana.hash-table-utils)
8931 ("cl-ana.hdf-utils" ,sbcl-cl-ana.hdf-utils)
8932 ("cl-ana.histogram" ,sbcl-cl-ana.histogram)
8933 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8934 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
8935 ("cl-ana.map" ,sbcl-cl-ana.map)
8936 ("cl-ana.memoization" ,sbcl-cl-ana.memoization)
8937 ("cl-ana.pathname-utils" ,sbcl-cl-ana.pathname-utils)
8938 ("cl-ana.plotting" ,sbcl-cl-ana.plotting)
8939 ("cl-ana.reusable-table" ,sbcl-cl-ana.reusable-table)
8940 ("cl-ana.serialization" ,sbcl-cl-ana.serialization)
8941 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
8942 ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)
8943 ("cl-ana.table" ,sbcl-cl-ana.table)
8944 ("external-program" ,sbcl-external-program)))
8945 (native-inputs
8946 `(("cl-fad" ,sbcl-cl-fad)))
8947 (arguments
8948 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8949 ((#:asd-file _ "") "makeres/cl-ana.makeres.asd")
8950 ((#:asd-system-name _ #f) "cl-ana.makeres")))))
8951
8952 (define-public cl-ana.makeres
8953 (sbcl-package->cl-source-package sbcl-cl-ana.makeres))
8954
8955 (define-public sbcl-cl-ana.makeres-macro
8956 (package
8957 (inherit sbcl-cl-ana-boot0)
8958 (name "sbcl-cl-ana.makeres-macro")
8959 (inputs
8960 `(("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8961 ("cl-ana.makeres" ,sbcl-cl-ana.makeres)))
8962 (arguments
8963 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8964 ((#:asd-file _ "") "makeres-macro/cl-ana.makeres-macro.asd")
8965 ((#:asd-system-name _ #f) "cl-ana.makeres-macro")))))
8966
8967 (define-public cl-ana.makeres-macro
8968 (sbcl-package->cl-source-package sbcl-cl-ana.makeres-macro))
8969
8970 (define-public sbcl-cl-ana.makeres-block
8971 (package
8972 (inherit sbcl-cl-ana-boot0)
8973 (name "sbcl-cl-ana.makeres-block")
8974 (inputs
8975 `(("alexandria" ,sbcl-alexandria)
8976 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8977 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
8978 ("cl-ana.makeres" ,sbcl-cl-ana.makeres)))
8979 (arguments
8980 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8981 ((#:asd-file _ "") "makeres-block/cl-ana.makeres-block.asd")
8982 ((#:asd-system-name _ #f) "cl-ana.makeres-block")))))
8983
8984 (define-public cl-ana.makeres-block
8985 (sbcl-package->cl-source-package sbcl-cl-ana.makeres-block))
8986
8987 (define-public sbcl-cl-ana.makeres-progress
8988 (package
8989 (inherit sbcl-cl-ana-boot0)
8990 (name "sbcl-cl-ana.makeres-progress")
8991 (inputs
8992 `(("alexandria" ,sbcl-alexandria)
8993 ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
8994 ("cl-ana.makeres" ,sbcl-cl-ana.makeres)))
8995 (arguments
8996 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8997 ((#:asd-file _ "") "makeres-progress/cl-ana.makeres-progress.asd")
8998 ((#:asd-system-name _ #f) "cl-ana.makeres-progress")))))
8999
9000 (define-public cl-ana.makeres-progress
9001 (sbcl-package->cl-source-package sbcl-cl-ana.makeres-progress))
9002
9003 (define-public sbcl-cl-ana.makeres-table
9004 (package
9005 (inherit sbcl-cl-ana-boot0)
9006 (name "sbcl-cl-ana.makeres-table")
9007 (inputs
9008 `(("cl-ana.csv-table" ,sbcl-cl-ana.csv-table)
9009 ("cl-ana.hash-table-utils" ,sbcl-cl-ana.hash-table-utils)
9010 ("cl-ana.hdf-table" ,sbcl-cl-ana.hdf-table)
9011 ("cl-ana.hdf-utils" ,sbcl-cl-ana.hdf-utils)
9012 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
9013 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
9014 ("cl-ana.makeres" ,sbcl-cl-ana.makeres)
9015 ("cl-ana.makeres-macro" ,sbcl-cl-ana.makeres-macro)
9016 ("cl-ana.memoization" ,sbcl-cl-ana.memoization)
9017 ("cl-ana.ntuple-table" ,sbcl-cl-ana.ntuple-table)
9018 ("cl-ana.reusable-table" ,sbcl-cl-ana.reusable-table)
9019 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
9020 ("cl-ana.table" ,sbcl-cl-ana.table)))
9021 (native-inputs
9022 `(("cl-fad" ,sbcl-cl-fad)))
9023 (arguments
9024 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9025 ((#:asd-file _ "") "makeres-table/cl-ana.makeres-table.asd")
9026 ((#:asd-system-name _ #f) "cl-ana.makeres-table")))))
9027
9028 (define-public cl-ana.makeres-table
9029 (sbcl-package->cl-source-package sbcl-cl-ana.makeres-table))
9030
9031 (define-public sbcl-cl-ana.makeres-graphviz
9032 (package
9033 (inherit sbcl-cl-ana-boot0)
9034 (name "sbcl-cl-ana.makeres-graphviz")
9035 (inputs
9036 `(("cl-ana.makeres" ,sbcl-cl-ana.makeres)
9037 ("external-program" ,sbcl-external-program)))
9038 (arguments
9039 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9040 ((#:asd-file _ "") "makeres-graphviz/cl-ana.makeres-graphviz.asd")
9041 ((#:asd-system-name _ #f) "cl-ana.makeres-graphviz")))))
9042
9043 (define-public cl-ana.makeres-graphviz
9044 (sbcl-package->cl-source-package sbcl-cl-ana.makeres-graphviz))
9045
9046 (define-public sbcl-cl-ana.makeres-branch
9047 (package
9048 (inherit sbcl-cl-ana-boot0)
9049 (name "sbcl-cl-ana.makeres-branch")
9050 (inputs
9051 `(("alexandria" ,sbcl-alexandria)
9052 ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
9053 ("cl-ana.hash-table-utils" ,sbcl-cl-ana.hash-table-utils)
9054 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
9055 ("cl-ana.map" ,sbcl-cl-ana.map)
9056 ("cl-ana.makeres" ,sbcl-cl-ana.makeres)))
9057 (arguments
9058 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9059 ((#:asd-file _ "") "makeres-branch/cl-ana.makeres-branch.asd")
9060 ((#:asd-system-name _ #f) "cl-ana.makeres-branch")))))
9061
9062 (define-public cl-ana.makeres-branch
9063 (sbcl-package->cl-source-package sbcl-cl-ana.makeres-branch))
9064
9065 (define-public sbcl-cl-ana.makeres-utils
9066 (package
9067 (inherit sbcl-cl-ana-boot0)
9068 (name "sbcl-cl-ana.makeres-utils")
9069 (inputs
9070 `(("alexandria" ,sbcl-alexandria)
9071 ("cl-ana.file-utils" ,sbcl-cl-ana.file-utils)
9072 ("cl-ana.fitting" ,sbcl-cl-ana.fitting)
9073 ("cl-ana.functional-utils" ,sbcl-cl-ana.functional-utils)
9074 ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
9075 ("cl-ana.histogram" ,sbcl-cl-ana.histogram)
9076 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
9077 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
9078 ("cl-ana.makeres" ,sbcl-cl-ana.makeres)
9079 ("cl-ana.map" ,sbcl-cl-ana.map)
9080 ("cl-ana.pathname-utils" ,sbcl-cl-ana.pathname-utils)
9081 ("cl-ana.plotting" ,sbcl-cl-ana.plotting)
9082 ("cl-ana.reusable-table" ,sbcl-cl-ana.reusable-table)
9083 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
9084 ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)
9085 ("cl-ana.table" ,sbcl-cl-ana.table)))
9086 (native-inputs
9087 `(("cl-fad" ,sbcl-cl-fad)))
9088 (arguments
9089 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9090 ((#:asd-file _ "") "makeres-utils/cl-ana.makeres-utils.asd")
9091 ((#:asd-system-name _ #f) "cl-ana.makeres-utils")))))
9092
9093 (define-public cl-ana.makeres-utils
9094 (sbcl-package->cl-source-package sbcl-cl-ana.makeres-utils))
9095
9096 (define-public sbcl-cl-ana.statistical-learning
9097 (package
9098 (inherit sbcl-cl-ana-boot0)
9099 (name "sbcl-cl-ana.statistical-learning")
9100 (inputs
9101 `(("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
9102 ("cl-ana.functional-utils" ,sbcl-cl-ana.functional-utils)
9103 ("cl-ana.histogram" ,sbcl-cl-ana.histogram)
9104 ("cl-ana.linear-algebra" ,sbcl-cl-ana.linear-algebra)
9105 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
9106 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
9107 ("cl-ana.math-functions" ,sbcl-cl-ana.math-functions)
9108 ("cl-ana.map" ,sbcl-cl-ana.map)
9109 ("cl-ana.statistics" ,sbcl-cl-ana.statistics)))
9110 (native-inputs
9111 `(("cl-fad" ,sbcl-cl-fad)))
9112 (arguments
9113 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9114 ((#:asd-file _ "")
9115 "statistical-learning/cl-ana.statistical-learning.asd")
9116 ((#:asd-system-name _ #f) "cl-ana.statistical-learning")))))
9117
9118 (define-public cl-ana.statistical-learning
9119 (sbcl-package->cl-source-package sbcl-cl-ana.statistical-learning))
9120
9121 (define-public sbcl-cl-ana
9122 (package
9123 (inherit sbcl-cl-ana-boot0)
9124 (name "sbcl-cl-ana")
9125 (inputs
9126 `(("cl-ana.binary-tree" ,sbcl-cl-ana.binary-tree)
9127 ("cl-ana.calculus" ,sbcl-cl-ana.calculus)
9128 ("cl-ana.clos-utils" ,sbcl-cl-ana.clos-utils)
9129 ("cl-ana.csv-table" ,sbcl-cl-ana.csv-table)
9130 ("cl-ana.error-propogation" ,sbcl-cl-ana.error-propogation)
9131 ("cl-ana.file-utils" ,sbcl-cl-ana.file-utils)
9132 ("cl-ana.fitting" ,sbcl-cl-ana.fitting)
9133 ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
9134 ("cl-ana.hash-table-utils" ,sbcl-cl-ana.hash-table-utils)
9135 ("cl-ana.hdf-table" ,sbcl-cl-ana.hdf-table)
9136 ("cl-ana.histogram" ,sbcl-cl-ana.histogram)
9137 ("cl-ana.int-char" ,sbcl-cl-ana.int-char)
9138 ("cl-ana.linear-algebra" ,sbcl-cl-ana.linear-algebra)
9139 ("cl-ana.lorentz" ,sbcl-cl-ana.lorentz)
9140 ("cl-ana.map" ,sbcl-cl-ana.map)
9141 ("cl-ana.makeres" ,sbcl-cl-ana.makeres)
9142 ("cl-ana.makeres-block" ,sbcl-cl-ana.makeres-block)
9143 ("cl-ana.makeres-branch" ,sbcl-cl-ana.makeres-branch)
9144 ("cl-ana.makeres-graphviz" ,sbcl-cl-ana.makeres-graphviz)
9145 ("cl-ana.makeres-macro" ,sbcl-cl-ana.makeres-macro)
9146 ("cl-ana.makeres-progress" ,sbcl-cl-ana.makeres-progress)
9147 ("cl-ana.makeres-table" ,sbcl-cl-ana.makeres-table)
9148 ("cl-ana.makeres-utils" ,sbcl-cl-ana.makeres-utils)
9149 ("cl-ana.math-functions" ,sbcl-cl-ana.math-functions)
9150 ("cl-ana.ntuple-table" ,sbcl-cl-ana.ntuple-table)
9151 ("cl-ana.package-utils" ,sbcl-cl-ana.package-utils)
9152 ("cl-ana.pathname-utils" ,sbcl-cl-ana.pathname-utils)
9153 ("cl-ana.plotting" ,sbcl-cl-ana.plotting)
9154 ("cl-ana.quantity" ,sbcl-cl-ana.quantity)
9155 ("cl-ana.reusable-table" ,sbcl-cl-ana.reusable-table)
9156 ("cl-ana.serialization" ,sbcl-cl-ana.serialization)
9157 ("cl-ana.statistics" ,sbcl-cl-ana.statistics)
9158 ("cl-ana.statistical-learning" ,sbcl-cl-ana.statistical-learning)
9159 ("cl-ana.table" ,sbcl-cl-ana.table)
9160 ("cl-ana.table-utils" ,sbcl-cl-ana.table-utils)
9161 ("cl-ana.table-viewing" ,sbcl-cl-ana.table-viewing)
9162 ("cl-ana.tensor" ,sbcl-cl-ana.tensor)
9163 ("libffi" ,libffi)))
9164 (native-inputs
9165 `(("cl-fad" ,sbcl-cl-fad)))
9166 (arguments
9167 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9168 ((#:asd-file _ "") "cl-ana.asd")
9169 ((#:asd-system-name _ #f) "cl-ana")))))
9170
9171 (define-public cl-ana
9172 (sbcl-package->cl-source-package sbcl-cl-ana))
9173
9174 (define-public sbcl-archive
9175 (let ((commit "631271c091ed02994bec3980cb288a2cf32c7cdc")
9176 (revision "1"))
9177 (package
9178 (name "sbcl-archive")
9179 (version (git-version "0.9" revision commit))
9180 (source (origin
9181 (method git-fetch)
9182 (uri (git-reference
9183 (url "https://github.com/sharplispers/archive.git")
9184 (commit commit)))
9185 (file-name (git-file-name name version))
9186 (sha256
9187 (base32
9188 "0pvsc9fmybx7rxd0kmzq4shi6hszdpwdc1sfy7jwyfxf8n3hnv4p"))))
9189 (build-system asdf-build-system/sbcl)
9190 (inputs
9191 `(("cl-fad" ,sbcl-cl-fad)
9192 ("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
9193 (synopsis "Common Lisp library for tar and cpio archives")
9194 (description
9195 "This is a Common Lisp library to read and write disk-based file
9196 archives such as those generated by the tar and cpio programs on Unix.")
9197 (home-page "https://github.com/sharplispers/archive")
9198 (license license:bsd-3))))
9199
9200 (define-public cl-archive
9201 (sbcl-package->cl-source-package sbcl-archive))
9202
9203 (define-public ecl-archive
9204 (sbcl-package->ecl-package sbcl-archive))
9205
9206 (define-public sbcl-misc-extensions
9207 (let ((commit "101c05112bf2f1e1bbf527396822d2f50ca6327a")
9208 (revision "1"))
9209 (package
9210 (name "sbcl-misc-extensions")
9211 (version (git-version "3.3" revision commit))
9212 (source
9213 (origin
9214 (method git-fetch)
9215 (uri (git-reference
9216 (url "https://gitlab.common-lisp.net/misc-extensions/devel.git")
9217 (commit commit)))
9218 (file-name (git-file-name name version))
9219 (sha256
9220 (base32
9221 "0gz5f4p70qzilnxsnf5lih2n9m4wjcw8hlw4w8mpn9jyhyppyyv0"))))
9222 (build-system asdf-build-system/sbcl)
9223 (synopsis "Collection of small macros and extensions for Common Lisp")
9224 (description
9225 "This project is intended as a catchall for small, general-purpose
9226 extensions to Common Lisp. It contains:
9227
9228 @itemize
9229 @item @code{new-let}, a macro that combines and generalizes @code{let},
9230 @code{let*} and @code{multiple-value-bind},
9231 @item @code{gmap}, an iteration macro that generalizes @code{map}.
9232 @end itemize\n")
9233 (home-page "https://common-lisp.net/project/misc-extensions/")
9234 (license license:public-domain))))
9235
9236 (define-public cl-misc-extensions
9237 (sbcl-package->cl-source-package sbcl-misc-extensions))
9238
9239 (define-public ecl-misc-extensions
9240 (sbcl-package->ecl-package sbcl-misc-extensions))
9241
9242 (define-public sbcl-mt19937
9243 (package
9244 (name "sbcl-mt19937")
9245 (version "1.1")
9246 (source
9247 (origin
9248 (method url-fetch)
9249 (uri (string-append "https://common-lisp.net/project/asdf-packaging/"
9250 "mt19937-latest.tar.gz"))
9251 (sha256
9252 (base32
9253 "1iw636b0iw5ygkv02y8i41lh7xj0acglv0hg5agryn0zzi2nf1xv"))))
9254 (build-system asdf-build-system/sbcl)
9255 (synopsis "Mersenne Twister pseudo-random number generator")
9256 (description
9257 "MT19937 is a portable Mersenne Twister pseudo-random number generator
9258 for Common Lisp.")
9259 (home-page "https://www.cliki.net/mt19937")
9260 (license license:public-domain)))
9261
9262 (define-public cl-mt19937
9263 (sbcl-package->cl-source-package sbcl-mt19937))
9264
9265 (define-public ecl-mt19937
9266 (sbcl-package->ecl-package sbcl-mt19937))
9267
9268 (define-public sbcl-fset
9269 (let ((commit "6d2f9ded8934d2b42f2571a0ba5bda091037d852")
9270 (revision "1"))
9271 (package
9272 (name "sbcl-fset")
9273 (version (git-version "1.3.2" revision commit))
9274 (source
9275 (origin
9276 (method git-fetch)
9277 (uri (git-reference
9278 (url "https://github.com/slburson/fset")
9279 (commit commit)))
9280 (file-name (git-file-name name version))
9281 (sha256
9282 (base32
9283 "127acblwrbqicx47h6sgvknz1cqyfn8p4xkhkn1m7hxh8w5gk1zy"))
9284 (snippet '(begin
9285 ;; Remove obsolete copy of system definition.
9286 (delete-file "Code/fset.asd")
9287 #t))))
9288 (build-system asdf-build-system/sbcl)
9289 (inputs
9290 `(("misc-extensions" ,sbcl-misc-extensions)
9291 ("mt19937" ,sbcl-mt19937)
9292 ("named-readtables" ,sbcl-named-readtables)))
9293 (synopsis "Functional set-theoretic collections library")
9294 (description
9295 "FSet is a functional set-theoretic collections library for Common Lisp.
9296 Functional means that all update operations return a new collection rather than
9297 modifying an existing one in place. Set-theoretic means that collections may
9298 be nested arbitrarily with no additional programmer effort; for instance, sets
9299 may contain sets, maps may be keyed by sets, etc.")
9300 (home-page "https://common-lisp.net/project/fset/Site/index.html")
9301 (license license:llgpl))))
9302
9303 (define-public cl-fset
9304 (sbcl-package->cl-source-package sbcl-fset))
9305
9306 (define-public sbcl-cl-cont
9307 (let ((commit "fc1fa7e6eb64894fdca13e688e6015fad5290d2a")
9308 (revision "1"))
9309 (package
9310 (name "sbcl-cl-cont")
9311 (version (git-version "0.3.8" revision commit))
9312 (source
9313 (origin
9314 (method git-fetch)
9315 (uri (git-reference
9316 (url "https://gitlab.common-lisp.net/cl-cont/cl-cont.git")
9317 (commit commit)))
9318 (file-name (git-file-name name version))
9319 (sha256
9320 (base32
9321 "1zf8zvb0i6jm3hhfks4w74hibm6avgc6f9s1qwgjrn2bcik8lrvz"))))
9322 (build-system asdf-build-system/sbcl)
9323 (inputs
9324 `(("alexandria" ,sbcl-alexandria)
9325 ("closer-mop" ,sbcl-closer-mop)))
9326 (native-inputs
9327 `(("rt" ,sbcl-rt)))
9328 (synopsis "Delimited continuations for Common Lisp")
9329 (description
9330 "This is a library that implements delimited continuations by
9331 transforming Common Lisp code to continuation passing style.")
9332 (home-page "https://common-lisp.net/project/cl-cont/")
9333 (license license:llgpl))))
9334
9335 (define-public cl-cont
9336 (sbcl-package->cl-source-package sbcl-cl-cont))
9337
9338 (define-public ecl-cl-cont
9339 (sbcl-package->ecl-package sbcl-cl-cont))
9340
9341 (define-public sbcl-cl-coroutine
9342 (let ((commit "de098f8d5debd8b14ef6864b5bdcbbf5ddbcfd72")
9343 (revision "1"))
9344 (package
9345 (name "sbcl-cl-coroutine")
9346 (version (git-version "0.1" revision commit))
9347 (source
9348 (origin
9349 (method git-fetch)
9350 (uri (git-reference
9351 (url "https://github.com/takagi/cl-coroutine.git")
9352 (commit commit)))
9353 (file-name (git-file-name name version))
9354 (sha256
9355 (base32
9356 "1cqdhdjxffgfs116l1swjlsmcbly0xgcgrckvaajd566idj9yj4l"))))
9357 (build-system asdf-build-system/sbcl)
9358 (inputs
9359 `(("alexandria" ,sbcl-alexandria)
9360 ("cl-cont" ,sbcl-cl-cont)))
9361 (native-inputs
9362 `(("prove" ,sbcl-prove)))
9363 (arguments
9364 `(;; TODO: Fix the tests. They fail with:
9365 ;; "Component CL-COROUTINE-ASD::CL-COROUTINE-TEST not found"
9366 #:tests? #f
9367 #:phases
9368 (modify-phases %standard-phases
9369 (add-after 'unpack 'fix-tests
9370 (lambda _
9371 (substitute* "cl-coroutine-test.asd"
9372 (("cl-test-more")
9373 "prove"))
9374 #t)))))
9375 (synopsis "Coroutine library for Common Lisp")
9376 (description
9377 "This is a coroutine library for Common Lisp implemented using the
9378 continuations of the @code{cl-cont} library.")
9379 (home-page "https://github.com/takagi/cl-coroutine")
9380 (license license:llgpl))))
9381
9382 (define-public cl-coroutine
9383 (sbcl-package->cl-source-package sbcl-cl-coroutine))
9384
9385 (define-public ecl-cl-coroutine
9386 (sbcl-package->ecl-package sbcl-cl-coroutine))
9387
9388 (define-public sbcl-vom
9389 (let ((commit "1aeafeb5b74c53741b79497e0ef4acf85c92ff24")
9390 (revision "1"))
9391 (package
9392 (name "sbcl-vom")
9393 (version (git-version "0.1.4" revision commit))
9394 (source
9395 (origin
9396 (method git-fetch)
9397 (uri (git-reference
9398 (url "https://github.com/orthecreedence/vom.git")
9399 (commit commit)))
9400 (file-name (git-file-name name version))
9401 (sha256
9402 (base32
9403 "0536kppj76ax4lrxhv42npkfjsmx45km2g439vf9jmw3apinz9cy"))))
9404 (build-system asdf-build-system/sbcl)
9405 (synopsis "Tiny logging utility for Common Lisp")
9406 (description
9407 "Vom is a logging library for Common Lisp. It's goal is to be useful
9408 and small. It does not provide a lot of features as other loggers do, but
9409 has a small codebase that's easy to understand and use.")
9410 (home-page "https://github.com/orthecreedence/vom")
9411 (license license:expat))))
9412
9413 (define-public cl-vom
9414 (sbcl-package->cl-source-package sbcl-vom))
9415
9416 (define-public ecl-vom
9417 (sbcl-package->ecl-package sbcl-vom))
9418
9419 (define-public sbcl-cl-libuv
9420 (let ((commit "32100c023c518038d0670a103eaa4d50dd785d29")
9421 (revision "1"))
9422 (package
9423 (name "sbcl-cl-libuv")
9424 (version (git-version "0.1.6" revision commit))
9425 (source
9426 (origin
9427 (method git-fetch)
9428 (uri (git-reference
9429 (url "https://github.com/orthecreedence/cl-libuv.git")
9430 (commit commit)))
9431 (file-name (git-file-name name version))
9432 (sha256
9433 (base32
9434 "1kwix4si8a8hza34ab2k7whrh7z0yrmx39v2wc3qblv9m244jkh1"))))
9435 (build-system asdf-build-system/sbcl)
9436 (inputs
9437 `(("alexandria" ,sbcl-alexandria)
9438 ("cffi" ,sbcl-cffi)
9439 ("cffi-grovel" ,sbcl-cffi-grovel)
9440 ("libuv" ,libuv)))
9441 (arguments
9442 `(#:phases
9443 (modify-phases %standard-phases
9444 (add-after 'unpack 'fix-paths
9445 (lambda* (#:key inputs #:allow-other-keys)
9446 (substitute* "lib.lisp"
9447 (("/usr/lib/libuv.so")
9448 (string-append (assoc-ref inputs "libuv")
9449 "/lib/libuv.so")))
9450 #t))
9451 (add-after 'fix-paths 'fix-system-definition
9452 (lambda _
9453 (substitute* "cl-libuv.asd"
9454 (("#:cffi #:alexandria")
9455 "#:cffi #:cffi-grovel #:alexandria"))
9456 #t)))))
9457 (synopsis "Common Lisp bindings to libuv")
9458 (description
9459 "This library provides low-level libuv bindings for Common Lisp.")
9460 (home-page "https://github.com/orthecreedence/cl-libuv")
9461 (license license:expat))))
9462
9463 (define-public cl-libuv
9464 (sbcl-package->cl-source-package sbcl-cl-libuv))
9465
9466 (define-public ecl-cl-libuv
9467 (sbcl-package->ecl-package sbcl-cl-libuv))
9468
9469 (define-public sbcl-cl-async-base
9470 (let ((commit "f6423e44404a44434d803605e0d2e17199158e28")
9471 (revision "1"))
9472 (package
9473 (name "sbcl-cl-async-base")
9474 (version (git-version "0.6.1" revision commit))
9475 (source
9476 (origin
9477 (method git-fetch)
9478 (uri (git-reference
9479 (url "https://github.com/orthecreedence/cl-async.git")
9480 (commit commit)))
9481 (file-name (git-file-name name version))
9482 (sha256
9483 (base32
9484 "11xi9dxb8mjgwzrkj88i0xkgk26z9w9ddxzbv6xsvfc1d4x5cf4x"))))
9485 (build-system asdf-build-system/sbcl)
9486 (inputs
9487 `(("bordeaux-threads" ,sbcl-bordeaux-threads)
9488 ("cffi" ,sbcl-cffi)
9489 ("cl-libuv" ,sbcl-cl-libuv)))
9490 (arguments
9491 `(#:asd-file "cl-async.asd"))
9492 (synopsis "Base system for cl-async")
9493 (description
9494 "Cl-async is a library for general purpose, non-blocking programming in
9495 Common Lisp. It uses the libuv library as backend.")
9496 (home-page "https://orthecreedence.github.io/cl-async/")
9497 (license license:expat))))
9498
9499 (define-public cl-async-base
9500 (sbcl-package->cl-source-package sbcl-cl-async-base))
9501
9502 (define-public ecl-cl-async-base
9503 (sbcl-package->ecl-package sbcl-cl-async-base))
9504
9505 (define-public sbcl-cl-async-util
9506 (package
9507 (inherit sbcl-cl-async-base)
9508 (name "sbcl-cl-async-util")
9509 (inputs
9510 `(("bordeaux-threads" ,sbcl-bordeaux-threads)
9511 ("cffi" ,sbcl-cffi)
9512 ("cl-async-base" ,sbcl-cl-async-base)
9513 ("cl-libuv" ,sbcl-cl-libuv)
9514 ("cl-ppcre" ,sbcl-cl-ppcre)
9515 ("fast-io" ,sbcl-fast-io)
9516 ("vom" ,sbcl-vom)))
9517 (synopsis "Internal utilities for cl-async")))
9518
9519 (define-public cl-async-util
9520 (sbcl-package->cl-source-package sbcl-cl-async-util))
9521
9522 (define-public ecl-cl-async-util
9523 (sbcl-package->ecl-package sbcl-cl-async-util))
9524
9525 (define-public sbcl-cl-async
9526 (package
9527 (inherit sbcl-cl-async-base)
9528 (name "sbcl-cl-async")
9529 (inputs
9530 `(("babel" ,sbcl-babel)
9531 ("cffi" ,sbcl-cffi)
9532 ("cl-async-base" ,sbcl-cl-async-base)
9533 ("cl-async-util" ,sbcl-cl-async-util)
9534 ("cl-libuv" ,sbcl-cl-libuv)
9535 ("cl-ppcre" ,sbcl-cl-ppcre)
9536 ("static-vectors" ,sbcl-static-vectors)
9537 ("trivial-features" ,sbcl-trivial-features)
9538 ("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
9539 (synopsis "Asynchronous operations for Common Lisp")))
9540
9541 (define-public cl-async
9542 (sbcl-package->cl-source-package sbcl-cl-async))
9543
9544 (define-public ecl-cl-async
9545 (sbcl-package->ecl-package sbcl-cl-async))
9546
9547 (define-public sbcl-cl-async-repl
9548 (package
9549 (inherit sbcl-cl-async-base)
9550 (name "sbcl-cl-async-repl")
9551 (inputs
9552 `(("bordeaux-threads" ,sbcl-bordeaux-threads)
9553 ("cl-async" ,sbcl-cl-async)))
9554 (arguments
9555 (substitute-keyword-arguments (package-arguments sbcl-cl-async-base)
9556 ((#:asd-file _ "") "cl-async-repl.asd")))
9557 (synopsis "REPL integration for cl-async")))
9558
9559 (define-public cl-async-repl
9560 (sbcl-package->cl-source-package sbcl-cl-async-repl))
9561
9562 (define-public ecl-cl-async-repl
9563 (sbcl-package->ecl-package sbcl-cl-async-repl))
9564
9565 (define-public sbcl-cl-async-ssl
9566 (package
9567 (inherit sbcl-cl-async-base)
9568 (name "sbcl-cl-async-ssl")
9569 (inputs
9570 `(("cffi" ,sbcl-cffi)
9571 ("cl-async" ,sbcl-cl-async)
9572 ("openssl" ,openssl)
9573 ("vom" ,sbcl-vom)))
9574 (arguments
9575 (substitute-keyword-arguments (package-arguments sbcl-cl-async-base)
9576 ((#:asd-file _ "") "cl-async-ssl.asd")
9577 ((#:phases phases '%standard-phases)
9578 `(modify-phases ,phases
9579 (add-after 'unpack 'fix-paths
9580 (lambda* (#:key inputs #:allow-other-keys)
9581 (substitute* "src/ssl/package.lisp"
9582 (("libcrypto\\.so")
9583 (string-append (assoc-ref inputs "openssl")
9584 "/lib/libcrypto.so"))
9585 (("libssl\\.so")
9586 (string-append (assoc-ref inputs "openssl")
9587 "/lib/libssl.so")))
9588 #t))))))
9589 (synopsis "SSL wrapper around cl-async socket implementation")))
9590
9591 (define-public cl-async-ssl
9592 (sbcl-package->cl-source-package sbcl-cl-async-ssl))
9593
9594 (define-public ecl-cl-async-ssl
9595 (sbcl-package->ecl-package sbcl-cl-async-ssl))
9596
9597 (define-public sbcl-blackbird
9598 (let ((commit "d361f81c1411dec07f6c2dcb11c78f7aea9aaca8")
9599 (revision "1"))
9600 (package
9601 (name "sbcl-blackbird")
9602 (version (git-version "0.5.2" revision commit))
9603 (source
9604 (origin
9605 (method git-fetch)
9606 (uri (git-reference
9607 (url "https://github.com/orthecreedence/blackbird.git")
9608 (commit commit)))
9609 (file-name (git-file-name name version))
9610 (sha256
9611 (base32
9612 "0xfds5yaya64arzr7w1x38karyz11swzbhxx1afldpradj9dh19c"))))
9613 (build-system asdf-build-system/sbcl)
9614 (inputs
9615 `(("vom" ,sbcl-vom)))
9616 (native-inputs
9617 `(("cl-async" ,sbcl-cl-async)
9618 ("fiveam" ,sbcl-fiveam)))
9619 (synopsis "Promise implementation for Common Lisp")
9620 (description
9621 "This is a standalone promise implementation for Common Lisp. It is
9622 the successor to the now-deprecated cl-async-future project.")
9623 (home-page "http://orthecreedence.github.io/blackbird/")
9624 (license license:expat))))
9625
9626 (define-public cl-blackbird
9627 (sbcl-package->cl-source-package sbcl-blackbird))
9628
9629 (define-public ecl-blackbird
9630 (sbcl-package->ecl-package sbcl-blackbird))
9631
9632 (define-public sbcl-cl-async-future
9633 (let ((commit "ee36c22a69a9516407458d2ed8b475f1fc473959")
9634 (revision "1"))
9635 (package
9636 (name "sbcl-cl-async-future")
9637 (version (git-version "0.4.4.1" revision commit))
9638 (source
9639 (origin
9640 (method git-fetch)
9641 (uri (git-reference
9642 (url "https://github.com/orthecreedence/cl-async-future.git")
9643 (commit commit)))
9644 (file-name (git-file-name name version))
9645 (sha256
9646 (base32
9647 "0z0sc7qlzzxk99f4l26zp6rai9kv0kj0f599sxai5s44p17zbbvh"))))
9648 (build-system asdf-build-system/sbcl)
9649 (inputs
9650 `(("blackbird" ,sbcl-blackbird)))
9651 (native-inputs
9652 `(("cl-async" ,sbcl-cl-async)
9653 ("eos" ,sbcl-eos)))
9654 (synopsis "Futures implementation for Common Lisp")
9655 (description
9656 "This is futures implementation for Common Lisp. It plugs in nicely
9657 to cl-async.")
9658 (home-page "http://orthecreedence.github.io/cl-async/future")
9659 (license license:expat))))
9660
9661 (define-public cl-async-future
9662 (sbcl-package->cl-source-package sbcl-cl-async-future))
9663
9664 (define-public ecl-cl-async-future
9665 (sbcl-package->ecl-package sbcl-cl-async-future))
9666
9667 (define-public sbcl-green-threads
9668 (let ((commit "fff5ebecb441a37e5c511773716aafd84a3c5840")
9669 (revision "1"))
9670 (package
9671 (name "sbcl-green-threads")
9672 (version (git-version "0.3" revision commit))
9673 (source
9674 (origin
9675 (method git-fetch)
9676 (uri (git-reference
9677 (url "https://github.com/thezerobit/green-threads.git")
9678 (commit commit)))
9679 (file-name (git-file-name name version))
9680 (sha256
9681 (base32
9682 "1czw7nr0dwfps76h8hjvglk1wdh53yqbfbvv30whwbgqx33iippz"))))
9683 (build-system asdf-build-system/sbcl)
9684 (inputs
9685 `(("cl-async-future" ,sbcl-cl-async-future)
9686 ("cl-cont" ,sbcl-cl-cont)))
9687 (native-inputs
9688 `(("prove" ,sbcl-prove)))
9689 (arguments
9690 `(;; TODO: Fix the tests. They fail with:
9691 ;; "The function BLACKBIRD::PROMISE-VALUES is undefined"
9692 #:tests? #f
9693 #:phases
9694 (modify-phases %standard-phases
9695 (add-after 'unpack 'fix-tests
9696 (lambda _
9697 (substitute* "green-threads-test.asd"
9698 (("cl-test-more")
9699 "prove"))
9700 #t)))))
9701 (synopsis "Cooperative multitasking library for Common Lisp")
9702 (description
9703 "This library allows for cooperative multitasking with help of cl-cont
9704 for continuations. It tries to mimic the API of bordeaux-threads as much as
9705 possible.")
9706 (home-page "https://github.com/thezerobit/green-threads")
9707 (license license:bsd-3))))
9708
9709 (define-public cl-green-threads
9710 (sbcl-package->cl-source-package sbcl-green-threads))
9711
9712 (define-public ecl-green-threads
9713 (sbcl-package->ecl-package sbcl-green-threads))
9714
9715 (define-public sbcl-cl-base32
9716 (let ((commit "8cdee06fab397f7b0a19583b57e7f0c98405be85")
9717 (revision "1"))
9718 (package
9719 (name "sbcl-cl-base32")
9720 (version (git-version "0.1" revision commit))
9721 (source
9722 (origin
9723 (method git-fetch)
9724 (uri (git-reference
9725 (url "https://github.com/hargettp/cl-base32.git")
9726 (commit commit)))
9727 (file-name (git-file-name name version))
9728 (sha256
9729 (base32 "17jrng8jb05d64ggyd11hp308c2fl5drvf9g175blgrkkl8l4mf8"))))
9730 (build-system asdf-build-system/sbcl)
9731 (native-inputs
9732 `(("lisp-unit" ,sbcl-lisp-unit)))
9733 (synopsis "Common Lisp library for base32 encoding and decoding")
9734 (description
9735 "This package provides functions for base32 encoding and decoding as
9736 defined in RFC4648.")
9737 (home-page "https://github.com/hargettp/cl-base32")
9738 (license license:expat))))
9739
9740 (define-public cl-base32
9741 (sbcl-package->cl-source-package sbcl-cl-base32))
9742
9743 (define-public ecl-cl-base32
9744 (sbcl-package->ecl-package sbcl-cl-base32))
9745
9746 (define-public sbcl-cl-z85
9747 (let ((commit "85b3951a9cfa2603acb6aee15567684f9a108098")
9748 (revision "1"))
9749 (package
9750 (name "sbcl-cl-z85")
9751 (version (git-version "1.0" revision commit))
9752 (source
9753 (origin
9754 (method git-fetch)
9755 (uri (git-reference
9756 (url "https://github.com/glv2/cl-z85.git")
9757 (commit commit)))
9758 (file-name (git-file-name name version))
9759 (sha256
9760 (base32 "0r27pidjaxbm7k1rr90nnajwl5xm2kp65g1fv0fva17lzy45z1mp"))))
9761 (build-system asdf-build-system/sbcl)
9762 (native-inputs
9763 `(("cl-octet-streams" ,sbcl-cl-octet-streams)
9764 ("fiveam" ,sbcl-fiveam)))
9765 (synopsis "Common Lisp library for Z85 encoding and decoding")
9766 (description
9767 "This package provides functions to encode or decode byte vectors or
9768 byte streams using the Z85 format, which is a base-85 encoding used by
9769 ZeroMQ.")
9770 (home-page "https://github.com/glv2/cl-z85")
9771 (license license:gpl3+))))
9772
9773 (define-public cl-z85
9774 (sbcl-package->cl-source-package sbcl-cl-z85))
9775
9776 (define-public ecl-cl-z85
9777 (sbcl-package->ecl-package sbcl-cl-z85))
9778
9779 (define-public sbcl-ltk
9780 (package
9781 (name "sbcl-ltk")
9782 (version "0.992")
9783 (source
9784 (origin
9785 (method git-fetch)
9786 (uri (git-reference
9787 (url "https://github.com/herth/ltk.git")
9788 (commit version)))
9789 (file-name (git-file-name name version))
9790 (sha256
9791 (base32 "13l2q4mskzilya9xh5wy2xvy30lwn104bd8wrq6ifds56r82iy3x"))))
9792 (build-system asdf-build-system/sbcl)
9793 (inputs
9794 `(("imagemagick" ,imagemagick)
9795 ("tk" ,tk)))
9796 (arguments
9797 `(#:asd-file "ltk/ltk.asd"
9798 #:tests? #f
9799 #:phases (modify-phases %standard-phases
9800 (add-after 'unpack 'fix-paths
9801 (lambda* (#:key inputs #:allow-other-keys)
9802 (substitute* "ltk/ltk.lisp"
9803 (("#-freebsd \"wish\"")
9804 (string-append "#-freebsd \""
9805 (assoc-ref inputs "tk")
9806 "/bin/wish\""))
9807 (("do-execute \"convert\"")
9808 (string-append "do-execute \""
9809 (assoc-ref inputs "imagemagick")
9810 "/bin/convert\"")))
9811 #t)))))
9812 (synopsis "Common Lisp bindings for the Tk GUI toolkit")
9813 (description
9814 "LTK is a Common Lisp binding for the Tk graphics toolkit. It is written
9815 in pure Common Lisp and does not require any Tk knowledge for its usage.")
9816 (home-page "http://www.peter-herth.de/ltk/")
9817 (license license:llgpl)))
9818
9819 (define-public cl-ltk
9820 (sbcl-package->cl-source-package sbcl-ltk))
9821
9822 (define-public ecl-ltk
9823 (sbcl-package->ecl-package sbcl-ltk))
9824
9825 (define-public sbcl-ltk-mw
9826 (package
9827 (inherit sbcl-ltk)
9828 (name "sbcl-ltk-mw")
9829 (inputs
9830 `(("ltk" ,sbcl-ltk)))
9831 (arguments
9832 (substitute-keyword-arguments (package-arguments sbcl-ltk)
9833 ((#:asd-file _) "ltk/ltk-mw.asd")
9834 ((#:phases _) '%standard-phases)))
9835 (synopsis "Extra widgets for LTK")
9836 (description
9837 "This is a collection of higher-level widgets built on top of LTK.")))
9838
9839 (define-public cl-ltk-mw
9840 (sbcl-package->cl-source-package sbcl-ltk-mw))
9841
9842 (define-public ecl-ltk-mw
9843 (sbcl-package->ecl-package sbcl-ltk-mw))
9844
9845 (define-public sbcl-ltk-remote
9846 (package
9847 (inherit sbcl-ltk)
9848 (name "sbcl-ltk-remote")
9849 (inputs
9850 `(("ltk" ,sbcl-ltk)))
9851 (arguments
9852 (substitute-keyword-arguments (package-arguments sbcl-ltk)
9853 ((#:asd-file _) "ltk/ltk-remote.asd")
9854 ((#:phases _) '%standard-phases)))
9855 (synopsis "Remote GUI support for LTK")
9856 (description
9857 "This LTK extension allows the GUI to be displayed on a computer different
9858 from the one running the Lisp program by using a TCP connection.")))
9859
9860 (define-public cl-ltk-remote
9861 (sbcl-package->cl-source-package sbcl-ltk-remote))
9862
9863 (define-public sbcl-cl-lex
9864 (let ((commit "f2dbbe25ef553005fb402d9a6203180c3fa1093b")
9865 (revision "1"))
9866 (package
9867 (name "sbcl-cl-lex")
9868 (version (git-version "1.1.3" revision commit))
9869 (source
9870 (origin
9871 (method git-fetch)
9872 (uri (git-reference
9873 (url "https://github.com/djr7C4/cl-lex.git")
9874 (commit commit)))
9875 (file-name (git-file-name name version))
9876 (sha256
9877 (base32 "1kg50f76bfpfxcv4dfivq1n9a0xlsra2ajb0vd68lxwgbidgyc2y"))))
9878 (build-system asdf-build-system/sbcl)
9879 (inputs
9880 `(("cl-ppcre" ,sbcl-cl-ppcre)))
9881 (synopsis "Common Lisp macros for generating lexical analyzers")
9882 (description
9883 "This is a Common Lisp library providing a set of macros for generating
9884 lexical analyzers automatically. The lexers generated using @code{cl-lex} can
9885 be used with @code{cl-yacc}.")
9886 (home-page "https://github.com/djr7C4/cl-lex")
9887 (license license:gpl3))))
9888
9889 (define-public cl-lex
9890 (sbcl-package->cl-source-package sbcl-cl-lex))
9891
9892 (define-public ecl-cl-lex
9893 (sbcl-package->ecl-package sbcl-cl-lex))
9894
9895 (define-public sbcl-clunit2
9896 (let ((commit "5e28343734eb9b7aee39306a614af92c1062d50b")
9897 (revision "1"))
9898 (package
9899 (name "sbcl-clunit2")
9900 (version (git-version "0.2.4" revision commit))
9901 (source
9902 (origin
9903 (method git-fetch)
9904 (uri (git-reference
9905 (url "https://notabug.org/cage/clunit2.git")
9906 (commit commit)))
9907 (file-name (git-file-name name version))
9908 (sha256
9909 (base32 "1ngiapfki6nm8a555mzhb5p7ch79i3w665za5bmb5j7q34fy80vw"))))
9910 (build-system asdf-build-system/sbcl)
9911 (synopsis "Unit testing framework for Common Lisp")
9912 (description
9913 "CLUnit is a Common Lisp unit testing framework. It is designed to be
9914 easy to use so that you can quickly start testing.")
9915 (home-page "https://notabug.org/cage/clunit2")
9916 (license license:expat))))
9917
9918 (define-public cl-clunit2
9919 (sbcl-package->cl-source-package sbcl-clunit2))
9920
9921 (define-public ecl-clunit2
9922 (sbcl-package->ecl-package sbcl-clunit2))
9923
9924 (define-public sbcl-cl-colors2
9925 (let ((commit "795aedee593b095fecde574bd999b520dd03ed24")
9926 (revision "1"))
9927 (package
9928 (name "sbcl-cl-colors2")
9929 (version (git-version "0.2.1" revision commit))
9930 (source
9931 (origin
9932 (method git-fetch)
9933 (uri (git-reference
9934 (url "https://notabug.org/cage/cl-colors2.git")
9935 (commit commit)))
9936 (file-name (git-file-name name version))
9937 (sha256
9938 (base32 "0hlyf4h5chkjdp9armla5w4kw5acikk159sym7y8c4jbjp9x47ih"))))
9939 (build-system asdf-build-system/sbcl)
9940 (native-inputs
9941 `(("clunit2" ,sbcl-clunit2)))
9942 (inputs
9943 `(("alexandria" ,sbcl-alexandria)
9944 ("cl-ppcre" ,sbcl-cl-ppcre)))
9945 (synopsis "Color library for Common Lisp")
9946 (description
9947 "This is a very simple color library for Common Lisp, providing:
9948
9949 @itemize
9950 @item Types for representing colors in HSV and RGB spaces.
9951 @item Simple conversion functions between the above types (and also
9952 hexadecimal representation for RGB).
9953 @item Some predefined colors (currently X11 color names -- of course
9954 the library does not depend on X11).
9955 @end itemize\n")
9956 (home-page "https://notabug.org/cage/cl-colors2")
9957 (license license:boost1.0))))
9958
9959 (define-public cl-colors2
9960 (sbcl-package->cl-source-package sbcl-cl-colors2))
9961
9962 (define-public ecl-cl-colors2
9963 (sbcl-package->ecl-package sbcl-cl-colors2))
9964
9965 (define-public sbcl-cl-jpeg
9966 (let ((commit "ec557038128df6895fbfb743bfe8faf8ec2534af")
9967 (revision "1"))
9968 (package
9969 (name "sbcl-cl-jpeg")
9970 (version (git-version "2.8" revision commit))
9971 (source
9972 (origin
9973 (method git-fetch)
9974 (uri (git-reference
9975 (url "https://github.com/sharplispers/cl-jpeg.git")
9976 (commit commit)))
9977 (file-name (git-file-name name version))
9978 (sha256
9979 (base32 "1bkkiqz8fqldlj1wbmrccjsvxcwj98h6s4b6gslr3cg2wmdv5xmy"))))
9980 (build-system asdf-build-system/sbcl)
9981 (synopsis "JPEG image library for Common Lisp")
9982 (description
9983 "This is a baseline JPEG codec written in Common Lisp. It can be used
9984 for reading and writing JPEG image files.")
9985 (home-page "https://github.com/sharplispers/cl-jpeg")
9986 (license license:bsd-3))))
9987
9988 (define-public cl-jpeg
9989 (sbcl-package->cl-source-package sbcl-cl-jpeg))
9990
9991 (define-public ecl-cl-jpeg
9992 (sbcl-package->ecl-package sbcl-cl-jpeg))
9993
9994 (define-public sbcl-nodgui
9995 (let ((commit "bc59ed9b787dfc9e68ae3bd7f7e8507c5c619212")
9996 (revision "1"))
9997 (package
9998 (name "sbcl-nodgui")
9999 (version (git-version "0.0.5" revision commit))
10000 (source
10001 (origin
10002 (method git-fetch)
10003 (uri (git-reference
10004 (url "https://notabug.org/cage/nodgui.git")
10005 (commit commit)))
10006 (file-name (git-file-name name version))
10007 (sha256
10008 (base32 "0xx0dk54d882i598ydnwmy7mnfk0b7vib3ddsgpqxhjck1rwq8l8"))))
10009 (build-system asdf-build-system/sbcl)
10010 (inputs
10011 `(("alexandria" ,sbcl-alexandria)
10012 ("bordeaux-threads" ,sbcl-bordeaux-threads)
10013 ("cl-colors2" ,sbcl-cl-colors2)
10014 ("cl-jpeg" ,sbcl-cl-jpeg)
10015 ("cl-lex" ,sbcl-cl-lex)
10016 ("cl-ppcre-unicode" ,sbcl-cl-ppcre-unicode)
10017 ("cl-unicode" ,sbcl-cl-unicode)
10018 ("cl-yacc" ,sbcl-cl-yacc)
10019 ("clunit2" ,sbcl-clunit2)
10020 ("named-readtables" ,sbcl-named-readtables)
10021 ("parse-number" ,sbcl-parse-number)
10022 ("tk" ,tk)))
10023 (arguments
10024 `(#:phases (modify-phases %standard-phases
10025 (add-after 'unpack 'fix-paths
10026 (lambda* (#:key inputs #:allow-other-keys)
10027 (substitute* "src/wish-communication.lisp"
10028 (("#-freebsd \"wish\"")
10029 (string-append "#-freebsd \""
10030 (assoc-ref inputs "tk")
10031 "/bin/wish\"")))
10032 #t)))))
10033 (synopsis "Common Lisp bindings for the Tk GUI toolkit")
10034 (description
10035 "Nodgui (@emph{No Drama GUI}) is a Common Lisp binding for the Tk GUI
10036 toolkit. It also provides a few additional widgets more than the standard Tk
10037 ones.")
10038 (home-page "https://www.autistici.org/interzona/nodgui.html")
10039 (license license:llgpl))))
10040
10041 (define-public cl-nodgui
10042 (sbcl-package->cl-source-package sbcl-nodgui))
10043
10044 (define-public ecl-nodgui
10045 (sbcl-package->ecl-package sbcl-nodgui))