gnu: Add cl-base32.
[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 libevent)
55 #:use-module (gnu packages libffi)
56 #:use-module (gnu packages lisp)
57 #:use-module (gnu packages maths)
58 #:use-module (gnu packages pkg-config)
59 #:use-module (gnu packages python)
60 #:use-module (gnu packages python-xyz)
61 #:use-module (gnu packages sqlite)
62 #:use-module (gnu packages tls)
63 #:use-module (gnu packages webkit)
64 #:use-module (gnu packages xdisorg)
65 #:use-module (ice-9 match)
66 #:use-module (srfi srfi-19))
67
68 (define-public sbcl-alexandria
69 (let ((revision "1")
70 (commit "3b849bc0116ea70f215ee6b2fbf354e862aaa9dd"))
71 (package
72 (name "sbcl-alexandria")
73 (version (git-version "1.0.0" revision commit))
74 (source
75 (origin
76 (method git-fetch)
77 (uri (git-reference
78 (url "https://gitlab.common-lisp.net/alexandria/alexandria.git")
79 (commit commit)))
80 (sha256
81 (base32
82 "04amwvx2vl691f0plcfbqqwxgib9zimih7jrn5zl7mbwvrxy022b"))
83 (file-name (git-file-name name version))))
84 (build-system asdf-build-system/sbcl)
85 (native-inputs
86 `(("rt" ,sbcl-rt)))
87 (synopsis "Collection of portable utilities for Common Lisp")
88 (description
89 "Alexandria is a collection of portable utilities. It does not contain
90 conceptual extensions to Common Lisp. It is conservative in scope, and
91 portable between implementations.")
92 (home-page "https://common-lisp.net/project/alexandria/")
93 (license license:public-domain))))
94
95 (define-public cl-alexandria
96 (sbcl-package->cl-source-package sbcl-alexandria))
97
98 (define-public ecl-alexandria
99 (sbcl-package->ecl-package sbcl-alexandria))
100
101 (define-public sbcl-net.didierverna.asdf-flv
102 (package
103 (name "sbcl-net.didierverna.asdf-flv")
104 (version "2.1")
105 (source
106 (origin
107 (method git-fetch)
108 (uri (git-reference
109 (url "https://github.com/didierverna/asdf-flv")
110 (commit (string-append "version-" version))))
111 (file-name (git-file-name "asdf-flv" version))
112 (sha256
113 (base32 "1fi2y4baxan103jbg4idjddzihy03kwnj2mzbwrknw4d4x7xlgwj"))))
114 (build-system asdf-build-system/sbcl)
115 (synopsis "Common Lisp ASDF extension to provide support for file-local variables")
116 (description "ASDF-FLV provides support for file-local variables through
117 ASDF. A file-local variable behaves like @code{*PACKAGE*} and
118 @code{*READTABLE*} with respect to @code{LOAD} and @code{COMPILE-FILE}: a new
119 dynamic binding is created before processing the file, so that any
120 modification to the variable becomes essentially file-local.
121
122 In order to make one or several variables file-local, use the macros
123 @code{SET-FILE-LOCAL-VARIABLE(S)}.")
124 (home-page "https://www.lrde.epita.fr/~didier/software/lisp/misc.php#asdf-flv")
125 (license (license:non-copyleft
126 "https://www.gnu.org/prep/maintain/html_node/License-Notices-for-Other-Files.html"
127 "GNU All-Permissive License"))))
128
129 (define-public cl-net.didierverna.asdf-flv
130 (sbcl-package->cl-source-package sbcl-net.didierverna.asdf-flv))
131
132 (define-public ecl-net.didierverna.asdf-flv
133 (sbcl-package->ecl-package sbcl-net.didierverna.asdf-flv))
134
135 (define-public sbcl-fiveam
136 (package
137 (name "sbcl-fiveam")
138 (version "1.4.1")
139 (source
140 (origin
141 (method git-fetch)
142 (uri (git-reference
143 (url "https://github.com/sionescu/fiveam.git")
144 (commit (string-append "v" version))))
145 (file-name (git-file-name "fiveam" version))
146 (sha256
147 (base32 "1q3d38pwafnwnw42clq0f8g5xw7pbzr287jl9jsqmb1vb0n1vrli"))))
148 (inputs
149 `(("alexandria" ,sbcl-alexandria)
150 ("net.didierverna.asdf-flv" ,sbcl-net.didierverna.asdf-flv)
151 ("trivial-backtrace" ,sbcl-trivial-backtrace)))
152 (build-system asdf-build-system/sbcl)
153 (synopsis "Common Lisp testing framework")
154 (description "FiveAM is a simple (as far as writing and running tests
155 goes) regression testing framework. It has been designed with Common Lisp's
156 interactive development model in mind.")
157 (home-page "https://common-lisp.net/project/fiveam/")
158 (license license:bsd-3)))
159
160 (define-public cl-fiveam
161 (sbcl-package->cl-source-package sbcl-fiveam))
162
163 (define-public ecl-fiveam
164 (sbcl-package->ecl-package sbcl-fiveam))
165
166 (define-public sbcl-bordeaux-threads
167 (let ((commit "5dce49fbc829f4d136a734f5ef4f5d599660984f")
168 (revision "1"))
169 (package
170 (name "sbcl-bordeaux-threads")
171 (version (git-version "0.8.6" revision commit))
172 (source (origin
173 (method git-fetch)
174 (uri (git-reference
175 (url "https://github.com/sionescu/bordeaux-threads.git")
176 (commit commit)))
177 (sha256
178 (base32 "1gkh9rz7zw57n3110ikcf4835950wr4hgp8l79id5ai6nd86x7wv"))
179 (file-name
180 (git-file-name "bordeaux-threads" version))))
181 (inputs `(("alexandria" ,sbcl-alexandria)))
182 (native-inputs `(("fiveam" ,sbcl-fiveam)))
183 (build-system asdf-build-system/sbcl)
184 (synopsis "Portable shared-state concurrency library for Common Lisp")
185 (description "BORDEAUX-THREADS is a proposed standard for a minimal
186 MP/Threading interface. It is similar to the CLIM-SYS threading and lock
187 support.")
188 (home-page "https://common-lisp.net/project/bordeaux-threads/")
189 (license license:x11))))
190
191 (define-public cl-bordeaux-threads
192 (sbcl-package->cl-source-package sbcl-bordeaux-threads))
193
194 (define-public ecl-bordeaux-threads
195 (sbcl-package->ecl-package sbcl-bordeaux-threads))
196
197 (define-public sbcl-trivial-gray-streams
198 (let ((revision "1")
199 (commit "0483ade330508b4b2edeabdb47d16ec9437ee1cb"))
200 (package
201 (name "sbcl-trivial-gray-streams")
202 (version (string-append "0.0.0-" revision "." (string-take commit 7)))
203 (source
204 (origin
205 (method git-fetch)
206 (uri
207 (git-reference
208 (url "https://github.com/trivial-gray-streams/trivial-gray-streams.git")
209 (commit commit)))
210 (sha256
211 (base32 "0m3rpf2x0zmdk3nf1qfa01j6a55vj7gkwhyw78qslcgbjlgh8p4d"))
212 (file-name
213 (string-append "trivial-gray-streams-" version "-checkout"))))
214 (build-system asdf-build-system/sbcl)
215 (synopsis "Compatibility layer for Gray streams implementations")
216 (description "Gray streams is an interface proposed for inclusion with
217 ANSI CL by David N. Gray. The proposal did not make it into ANSI CL, but most
218 popular CL implementations implement it. This package provides an extremely
219 thin compatibility layer for gray streams.")
220 (home-page "http://www.cliki.net/trivial-gray-streams")
221 (license license:x11))))
222
223 (define-public cl-trivial-gray-streams
224 (sbcl-package->cl-source-package sbcl-trivial-gray-streams))
225
226 (define-public ecl-trivial-gray-streams
227 (sbcl-package->ecl-package sbcl-trivial-gray-streams))
228
229 (define-public sbcl-fiasco
230 (let ((commit "d62f7558b21addc89f87e306f65d7f760632655f")
231 (revision "1"))
232 (package
233 (name "sbcl-fiasco")
234 (version (git-version "0.0.1" revision commit))
235 (source
236 (origin
237 (method git-fetch)
238 (uri (git-reference
239 (url "https://github.com/joaotavora/fiasco.git")
240 (commit commit)))
241 (file-name (git-file-name "fiasco" version))
242 (sha256
243 (base32
244 "1zwxs3d6iswayavcmb49z2892xhym7n556d8dnmvalc32pm9bkjh"))))
245 (build-system asdf-build-system/sbcl)
246 (inputs
247 `(("alexandria" ,sbcl-alexandria)
248 ("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
249 (synopsis "Simple and powerful test framework for Common Lisp")
250 (description "A Common Lisp test framework that treasures your failures,
251 logical continuation of Stefil. It focuses on interactive debugging.")
252 (home-page "https://github.com/joaotavora/fiasco")
253 ;; LICENCE specifies this is public-domain unless the legislation
254 ;; doesn't allow or recognize it. In that case it falls back to a
255 ;; permissive licence.
256 (license (list license:public-domain
257 (license:x11-style "file://LICENCE"))))))
258
259 (define-public cl-fiasco
260 (sbcl-package->cl-source-package sbcl-fiasco))
261
262 (define-public ecl-fiasco
263 (sbcl-package->ecl-package sbcl-fiasco))
264
265 (define-public sbcl-flexi-streams
266 (package
267 (name "sbcl-flexi-streams")
268 (version "1.0.16")
269 (source
270 (origin
271 (method git-fetch)
272 (uri (git-reference
273 (url "https://github.com/edicl/flexi-streams.git")
274 (commit (string-append "v" version))))
275 (file-name (git-file-name "flexi-streams" version))
276 (sha256
277 (base32 "0gvykjlmja060zqq6nn6aqxlshh6r6ijahmmgf20q0d839rwpgxc"))))
278 (build-system asdf-build-system/sbcl)
279 (arguments
280 `(#:phases
281 (modify-phases %standard-phases
282 (add-after 'unpack 'make-git-checkout-writable
283 (lambda _
284 (for-each make-file-writable (find-files "."))
285 #t)))))
286 (inputs `(("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
287 (synopsis "Implementation of virtual bivalent streams for Common Lisp")
288 (description "Flexi-streams is an implementation of \"virtual\" bivalent
289 streams that can be layered atop real binary or bivalent streams and that can
290 be used to read and write character data in various single- or multi-octet
291 encodings which can be changed on the fly. It also supplies in-memory binary
292 streams which are similar to string streams.")
293 (home-page "http://weitz.de/flexi-streams/")
294 (license license:bsd-3)))
295
296 (define-public cl-flexi-streams
297 (sbcl-package->cl-source-package sbcl-flexi-streams))
298
299 (define-public ecl-flexi-streams
300 (sbcl-package->ecl-package sbcl-flexi-streams))
301
302 (define-public sbcl-cl-ppcre
303 (package
304 (name "sbcl-cl-ppcre")
305 (version "2.0.11")
306 (source
307 (origin
308 (method git-fetch)
309 (uri (git-reference
310 (url "https://github.com/edicl/cl-ppcre.git")
311 (commit (string-append "v" version))))
312 (file-name (git-file-name "cl-ppcre" version))
313 (sha256
314 (base32 "0q3iany07vgqm144lw6pj0af2d3vsikpbkwcxr30fci3kzsq4f49"))))
315 (build-system asdf-build-system/sbcl)
316 (native-inputs `(("flexi-streams" ,sbcl-flexi-streams)))
317 (synopsis "Portable regular expression library for Common Lisp")
318 (description "CL-PPCRE is a portable regular expression library for Common
319 Lisp, which is compatible with perl. It is pretty fast, thread-safe, and
320 compatible with ANSI-compliant Common Lisp implementations.")
321 (home-page "http://weitz.de/cl-ppcre/")
322 (license license:bsd-2)))
323
324 (define-public cl-ppcre
325 (sbcl-package->cl-source-package sbcl-cl-ppcre))
326
327 (define-public ecl-cl-ppcre
328 (sbcl-package->ecl-package sbcl-cl-ppcre))
329
330 (define sbcl-cl-unicode-base
331 (let ((revision "1")
332 (commit "9fcd06fba1ddc9e66aed2f2d6c32dc9b764f03ea"))
333 (package
334 (name "sbcl-cl-unicode-base")
335 (version (string-append "0.1.5-" revision "." (string-take commit 7)))
336 (source (origin
337 (method git-fetch)
338 (uri (git-reference
339 (url "https://github.com/edicl/cl-unicode.git")
340 (commit commit)))
341 (file-name (string-append "cl-unicode-" version "-checkout"))
342 (sha256
343 (base32
344 "1jicprb5b3bv57dy1kg03572gxkcaqdjhak00426s76g0plmx5ki"))))
345 (build-system asdf-build-system/sbcl)
346 (arguments
347 '(#:asd-file "cl-unicode.asd"
348 #:asd-system-name "cl-unicode/base"))
349 (inputs
350 `(("cl-ppcre" ,sbcl-cl-ppcre)))
351 (home-page "http://weitz.de/cl-unicode/")
352 (synopsis "Portable Unicode library for Common Lisp")
353 (description "CL-UNICODE is a portable Unicode library Common Lisp, which
354 is compatible with perl. It is pretty fast, thread-safe, and compatible with
355 ANSI-compliant Common Lisp implementations.")
356 (license license:bsd-2))))
357
358 (define-public sbcl-cl-unicode
359 (package
360 (inherit sbcl-cl-unicode-base)
361 (name "sbcl-cl-unicode")
362 (inputs
363 `(("cl-unicode/base" ,sbcl-cl-unicode-base)
364 ,@(package-inputs sbcl-cl-unicode-base)))
365 (native-inputs
366 `(("flexi-streams" ,sbcl-flexi-streams)))
367 (arguments '())))
368
369 (define-public ecl-cl-unicode
370 (sbcl-package->ecl-package sbcl-cl-unicode))
371
372 (define-public cl-unicode
373 (sbcl-package->cl-source-package sbcl-cl-unicode))
374
375 (define-public sbcl-zpb-ttf
376 (package
377 (name "sbcl-zpb-ttf")
378 (version "1.0.3")
379 (source
380 (origin
381 (method git-fetch)
382 (uri (git-reference
383 (url "https://github.com/xach/zpb-ttf.git")
384 (commit (string-append "release-" version))))
385 (file-name (git-file-name name version))
386 (sha256
387 (base32
388 "1wh66vjijzqlydnrihynpwp6796917xwrh0i9li93c17kyxa74ih"))))
389 (build-system asdf-build-system/sbcl)
390 (home-page "https://github.com/xach/zpb-ttf")
391 (synopsis "TrueType font file access for Common Lisp")
392 (description
393 "ZPB-TTF is a TrueType font file parser that provides an interface for
394 reading typographic metrics, glyph outlines, and other information from the
395 file.")
396 (license license:bsd-2)))
397
398 (define-public ecl-zpb-ttf
399 (sbcl-package->ecl-package sbcl-zpb-ttf))
400
401 (define-public cl-zpb-ttf
402 (sbcl-package->cl-source-package sbcl-zpb-ttf))
403
404 (define-public sbcl-cl-aa
405 (package
406 (name "sbcl-cl-aa")
407 (version "0.1.5")
408 (source
409 (origin
410 (method url-fetch)
411 (uri (string-append "http://projects.tuxee.net/cl-vectors/"
412 "files/cl-vectors-" version ".tar.gz"))
413 (sha256
414 (base32
415 "04lhwi0kq8pkwhgd885pk80m1cp9sfvjjn5zj70s1dnckibhdmqh"))))
416 (build-system asdf-build-system/sbcl)
417 (arguments '(#:asd-file "cl-aa.asd"))
418 (home-page "http://projects.tuxee.net/cl-vectors/")
419 (synopsis "Polygon rasterizer")
420 (description
421 "This is a Common Lisp library implementing the AA polygon rasterization
422 algorithm from the @url{http://antigrain.com, Antigrain} project.")
423 (license license:expat)))
424
425 (define-public ecl-cl-aa
426 (sbcl-package->ecl-package sbcl-cl-aa))
427
428 (define-public cl-aa
429 (sbcl-package->cl-source-package sbcl-cl-aa))
430
431 (define-public sbcl-cl-paths
432 (package
433 (inherit sbcl-cl-aa)
434 (name "sbcl-cl-paths")
435 (arguments '(#:asd-file "cl-paths.asd"))
436 (synopsis "Facilities to create and manipulate vectorial paths")
437 (description
438 "This package provides facilities to create and manipulate vectorial
439 paths.")))
440
441 (define-public ecl-cl-paths
442 (sbcl-package->ecl-package sbcl-cl-paths))
443
444 (define-public cl-paths
445 (sbcl-package->cl-source-package sbcl-cl-paths))
446
447 (define-public sbcl-cl-paths-ttf
448 (package
449 (inherit sbcl-cl-aa)
450 (name "sbcl-cl-paths-ttf")
451 (arguments '(#:asd-file "cl-paths-ttf.asd"))
452 (inputs
453 `(("cl-paths" ,sbcl-cl-paths)
454 ("zpb-ttf" ,sbcl-zpb-ttf)))
455 (synopsis "Facilities to create and manipulate vectorial paths")
456 (description
457 "This package provides facilities to create and manipulate vectorial
458 paths.")))
459
460 (define-public ecl-cl-paths-ttf
461 (sbcl-package->ecl-package sbcl-cl-paths-ttf))
462
463 (define-public cl-paths-ttf
464 (sbcl-package->cl-source-package sbcl-cl-paths-ttf))
465
466 (define-public sbcl-cl-vectors
467 (package
468 (inherit sbcl-cl-aa)
469 (name "sbcl-cl-vectors")
470 (arguments '(#:asd-file "cl-vectors.asd"))
471 (inputs
472 `(("cl-aa" ,sbcl-cl-aa)
473 ("cl-paths" ,sbcl-cl-paths)))
474 (synopsis "Create, transform and render anti-aliased vectorial paths")
475 (description
476 "This is a pure Common Lisp library to create, transform and render
477 anti-aliased vectorial paths.")))
478
479 (define-public ecl-cl-vectors
480 (sbcl-package->ecl-package sbcl-cl-vectors))
481
482 (define-public cl-vectors
483 (sbcl-package->cl-source-package sbcl-cl-vectors))
484
485 (define-public sbcl-spatial-trees
486 ;; There have been no releases.
487 (let ((commit "81fdad0a0bf109c80a53cc96eca2e093823400ba")
488 (revision "1"))
489 (package
490 (name "sbcl-spatial-trees")
491 (version (git-version "0" revision commit))
492 (source
493 (origin
494 (method git-fetch)
495 (uri (git-reference
496 (url "https://github.com/rpav/spatial-trees.git")
497 (commit commit)))
498 (file-name (git-file-name name version))
499 (sha256
500 (base32
501 "11rhc6h501dwcik2igkszz7b9n515cr99m5pjh4r2qfwgiri6ysa"))))
502 (build-system asdf-build-system/sbcl)
503 (arguments
504 '(#:tests? #f ; spatial-trees.test requires spatial-trees.nns
505 #:asd-file "spatial-trees.asd"
506 #:test-asd-file "spatial-trees.test.asd"))
507 (native-inputs
508 `(("fiveam" ,sbcl-fiveam)))
509 (home-page "https://github.com/rpav/spatial-trees")
510 (synopsis "Dynamic index data structures for spatially-extended data")
511 (description
512 "Spatial-trees is a set of dynamic index data structures for
513 spatially-extended data.")
514 (license license:bsd-3))))
515
516 (define-public ecl-spatial-trees
517 (sbcl-package->ecl-package sbcl-spatial-trees))
518
519 (define-public cl-spatial-trees
520 (sbcl-package->cl-source-package sbcl-spatial-trees))
521
522 (define-public sbcl-flexichain
523 ;; There are no releases.
524 (let ((commit "13d2a6c505ed0abfcd4c4ec7d7145059b06855d6")
525 (revision "1"))
526 (package
527 (name "sbcl-flexichain")
528 (version "1.5.1")
529 (source
530 (origin
531 (method git-fetch)
532 (uri (git-reference
533 (url "https://github.com/robert-strandh/Flexichain.git")
534 (commit commit)))
535 (file-name (git-file-name name version))
536 (sha256
537 (base32
538 "0pfyvhsfbjd2sjb30grfs52r51a428xglv7bwydvpg2lc117qimg"))))
539 (build-system asdf-build-system/sbcl)
540 (home-page "https://github.com/robert-strandh/Flexichain.git")
541 (synopsis "Dynamically add elements to or remove them from sequences")
542 (description
543 "This package provides an implementation of the flexichain protocol,
544 allowing client code to dynamically add elements to, and delete elements from
545 a sequence (or chain) of such elements.")
546 (license license:lgpl2.1+))))
547
548 (define-public ecl-flexichain
549 (sbcl-package->ecl-package sbcl-flexichain))
550
551 (define-public cl-flexichain
552 (sbcl-package->cl-source-package sbcl-flexichain))
553
554 (define-public sbcl-cl-pdf
555 ;; There are no releases
556 (let ((commit "752e337e6d6fc206f09d091a982e7f8e5c404e4e")
557 (revision "1"))
558 (package
559 (name "sbcl-cl-pdf")
560 (version (git-version "0" revision commit))
561 (source
562 (origin
563 (method git-fetch)
564 (uri (git-reference
565 (url "https://github.com/mbattyani/cl-pdf.git")
566 (commit commit)))
567 (file-name (git-file-name name version))
568 (sha256
569 (base32
570 "1cg3k3m3r11ipb8j008y8ipynj97l3xjlpi2knqc9ndmx4r3kb1r"))))
571 (build-system asdf-build-system/sbcl)
572 (inputs
573 `(("iterate" ,sbcl-iterate)
574 ("zpb-ttf" ,sbcl-zpb-ttf)))
575 (home-page "https://github.com/mbattyani/cl-pdf")
576 (synopsis "Common Lisp library for generating PDF files")
577 (description
578 "CL-PDF is a cross-platform Common Lisp library for generating PDF
579 files.")
580 (license license:bsd-2))))
581
582 (define-public ecl-cl-pdf
583 (sbcl-package->ecl-package sbcl-cl-pdf))
584
585 (define-public cl-pdf
586 (sbcl-package->cl-source-package sbcl-cl-pdf))
587
588 (define-public sbcl-clx
589 (package
590 (name "sbcl-clx")
591 (version "0.7.5")
592 (source
593 (origin
594 (method git-fetch)
595 (uri
596 (git-reference
597 (url "https://github.com/sharplispers/clx.git")
598 (commit version)))
599 (sha256
600 (base32
601 "1vi67z9hpj5rr4xcmfbfwzmlcc0ah7hzhrmfid6lqdkva238v2wf"))
602 (file-name (string-append "clx-" version))))
603 (build-system asdf-build-system/sbcl)
604 (native-inputs
605 `(("fiasco" ,sbcl-fiasco)))
606 (home-page "http://www.cliki.net/portable-clx")
607 (synopsis "X11 client library for Common Lisp")
608 (description "CLX is an X11 client library for Common Lisp. The code was
609 originally taken from a CMUCL distribution, was modified somewhat in order to
610 make it compile and run under SBCL, then a selection of patches were added
611 from other CLXes around the net.")
612 (license license:x11)))
613
614 (define-public cl-clx
615 (sbcl-package->cl-source-package sbcl-clx))
616
617 (define-public ecl-clx
618 (sbcl-package->ecl-package sbcl-clx))
619
620 (define-public sbcl-cl-ppcre-unicode
621 (package (inherit sbcl-cl-ppcre)
622 (name "sbcl-cl-ppcre-unicode")
623 (arguments
624 `(#:tests? #f ; tests fail with "Component :CL-PPCRE-TEST not found"
625 #:asd-file "cl-ppcre-unicode.asd"))
626 (inputs
627 `(("sbcl-cl-ppcre" ,sbcl-cl-ppcre)
628 ("sbcl-cl-unicode" ,sbcl-cl-unicode)))))
629
630 ;; The slynk that users expect to install includes all of slynk's contrib
631 ;; modules. Therefore, we build the base module and all contribs first; then
632 ;; we expose the union of these as `sbcl-slynk'. The following variable
633 ;; describes the base module.
634 (define sbcl-slynk-boot0
635 (let ((revision "2")
636 (commit "cbf84c36c4eca8b032e3fd16177a7bc02df3ec4c"))
637 (package
638 (name "sbcl-slynk-boot0")
639 (version (string-append "1.0.0-beta-" revision "." (string-take commit 7)))
640 (source
641 (origin
642 (method git-fetch)
643 (uri
644 (git-reference
645 (url "https://github.com/joaotavora/sly.git")
646 (commit commit)))
647 (sha256
648 (base32 "13dyhsravn591p7g6is01mp2ynzjnnj7pwgi57r6xqmd4611y9vh"))
649 (file-name (string-append "slynk-" version "-checkout"))
650 (modules '((guix build utils)
651 (ice-9 ftw)))
652 (snippet
653 '(begin
654 ;; Move the contribs into the main source directory for easier
655 ;; access
656 (substitute* "slynk/slynk.asd"
657 (("\\.\\./contrib")
658 "contrib")
659 (("\\(defsystem :slynk/util")
660 "(defsystem :slynk/util :depends-on (:slynk)")
661 ((":depends-on \\(:slynk :slynk/util\\)")
662 ":depends-on (:slynk :slynk-util)"))
663 (substitute* "contrib/slynk-trace-dialog.lisp"
664 (("\\(slynk::reset-inspector\\)") ; Causes problems on load
665 "nil"))
666 (substitute* "contrib/slynk-profiler.lisp"
667 (("slynk:to-line")
668 "slynk-pprint-to-line"))
669 (substitute* "contrib/slynk-fancy-inspector.lisp"
670 (("slynk/util") "slynk-util")
671 ((":compile-toplevel :load-toplevel") ""))
672 (rename-file "contrib" "slynk/contrib")
673 ;; Move slynk's contents into the base directory for easier
674 ;; access
675 (for-each (lambda (file)
676 (unless (string-prefix? "." file)
677 (rename-file (string-append "slynk/" file)
678 (string-append "./" (basename file)))))
679 (scandir "slynk"))
680 #t))))
681 (build-system asdf-build-system/sbcl)
682 (arguments
683 `(#:tests? #f ; No test suite
684 #:asd-system-name "slynk"))
685 (synopsis "Common Lisp IDE for Emacs")
686 (description "SLY is a fork of SLIME, an IDE backend for Common Lisp.
687 It also features a completely redesigned REPL based on Emacs's own
688 full-featured comint.el, live code annotations, and a consistent interactive
689 button interface. Everything can be copied to the REPL. One can create
690 multiple inspectors with independent history.")
691 (home-page "https://github.com/joaotavora/sly")
692 (license license:public-domain)
693 (properties `((cl-source-variant . ,(delay cl-slynk)))))))
694
695 (define-public cl-slynk
696 (package
697 (inherit (sbcl-package->cl-source-package sbcl-slynk-boot0))
698 (name "cl-slynk")))
699
700 (define ecl-slynk-boot0
701 (sbcl-package->ecl-package sbcl-slynk-boot0))
702
703 (define sbcl-slynk-arglists
704 (package
705 (inherit sbcl-slynk-boot0)
706 (name "sbcl-slynk-arglists")
707 (inputs `(("slynk" ,sbcl-slynk-boot0)))
708 (arguments
709 (substitute-keyword-arguments (package-arguments sbcl-slynk-boot0)
710 ((#:asd-file _ "") "slynk.asd")
711 ((#:asd-system-name _ #f) "slynk/arglists")))))
712
713 (define ecl-slynk-arglists
714 (sbcl-package->ecl-package sbcl-slynk-arglists))
715
716 (define sbcl-slynk-util
717 (package
718 (inherit sbcl-slynk-boot0)
719 (name "sbcl-slynk-util")
720 (inputs `(("slynk" ,sbcl-slynk-boot0)))
721 (arguments
722 (substitute-keyword-arguments (package-arguments sbcl-slynk-boot0)
723 ((#:asd-file _ "") "slynk.asd")
724 ((#:asd-system-name _ #f) "slynk/util")))))
725
726 (define ecl-slynk-util
727 (sbcl-package->ecl-package sbcl-slynk-util))
728
729 (define sbcl-slynk-fancy-inspector
730 (package
731 (inherit sbcl-slynk-arglists)
732 (name "sbcl-slynk-fancy-inspector")
733 (inputs `(("slynk-util" ,sbcl-slynk-util)
734 ,@(package-inputs sbcl-slynk-arglists)))
735 (arguments
736 (substitute-keyword-arguments (package-arguments sbcl-slynk-arglists)
737 ((#:asd-system-name _ #f) "slynk/fancy-inspector")))))
738
739 (define ecl-slynk-fancy-inspector
740 (sbcl-package->ecl-package sbcl-slynk-fancy-inspector))
741
742 (define sbcl-slynk-package-fu
743 (package
744 (inherit sbcl-slynk-arglists)
745 (name "sbcl-slynk-package-fu")
746 (arguments
747 (substitute-keyword-arguments (package-arguments sbcl-slynk-arglists)
748 ((#:asd-system-name _ #f) "slynk/package-fu")))))
749
750 (define ecl-slynk-package-fu
751 (sbcl-package->ecl-package sbcl-slynk-package-fu))
752
753 (define sbcl-slynk-mrepl
754 (package
755 (inherit sbcl-slynk-fancy-inspector)
756 (name "sbcl-slynk-mrepl")
757 (arguments
758 (substitute-keyword-arguments (package-arguments sbcl-slynk-arglists)
759 ((#:asd-system-name _ #f) "slynk/mrepl")))))
760
761 (define ecl-slynk-mrepl
762 (sbcl-package->ecl-package sbcl-slynk-mrepl))
763
764 (define sbcl-slynk-trace-dialog
765 (package
766 (inherit sbcl-slynk-arglists)
767 (name "sbcl-slynk-trace-dialog")
768 (arguments
769 (substitute-keyword-arguments (package-arguments sbcl-slynk-arglists)
770 ((#:asd-system-name _ #f) "slynk/trace-dialog")))))
771
772 (define ecl-slynk-trace-dialog
773 (sbcl-package->ecl-package sbcl-slynk-trace-dialog))
774
775 (define sbcl-slynk-profiler
776 (package
777 (inherit sbcl-slynk-arglists)
778 (name "sbcl-slynk-profiler")
779 (arguments
780 (substitute-keyword-arguments (package-arguments sbcl-slynk-arglists)
781 ((#:asd-system-name _ #f) "slynk/profiler")))))
782
783 (define ecl-slynk-profiler
784 (sbcl-package->ecl-package sbcl-slynk-profiler))
785
786 (define sbcl-slynk-stickers
787 (package
788 (inherit sbcl-slynk-arglists)
789 (name "sbcl-slynk-stickers")
790 (arguments
791 (substitute-keyword-arguments (package-arguments sbcl-slynk-arglists)
792 ((#:asd-system-name _ #f) "slynk/stickers")))))
793
794 (define ecl-slynk-stickers
795 (sbcl-package->ecl-package sbcl-slynk-stickers))
796
797 (define sbcl-slynk-indentation
798 (package
799 (inherit sbcl-slynk-arglists)
800 (name "sbcl-slynk-indentation")
801 (arguments
802 (substitute-keyword-arguments (package-arguments sbcl-slynk-arglists)
803 ((#:asd-system-name _ #f) "slynk/indentation")))))
804
805 (define ecl-slynk-indentation
806 (sbcl-package->ecl-package sbcl-slynk-indentation))
807
808 (define sbcl-slynk-retro
809 (package
810 (inherit sbcl-slynk-arglists)
811 (name "sbcl-slynk-retro")
812 (arguments
813 (substitute-keyword-arguments (package-arguments sbcl-slynk-arglists)
814 ((#:asd-system-name _ #f) "slynk/retro")))))
815
816 (define ecl-slynk-retro
817 (sbcl-package->ecl-package sbcl-slynk-retro))
818
819 (define slynk-systems
820 '("slynk"
821 "slynk-util"
822 "slynk-arglists"
823 "slynk-fancy-inspector"
824 "slynk-package-fu"
825 "slynk-mrepl"
826 "slynk-profiler"
827 "slynk-trace-dialog"
828 "slynk-stickers"
829 "slynk-indentation"
830 "slynk-retro"))
831
832 (define-public sbcl-slynk
833 (package
834 (inherit sbcl-slynk-boot0)
835 (name "sbcl-slynk")
836 (inputs
837 `(("slynk" ,sbcl-slynk-boot0)
838 ("slynk-util" ,sbcl-slynk-util)
839 ("slynk-arglists" ,sbcl-slynk-arglists)
840 ("slynk-fancy-inspector" ,sbcl-slynk-fancy-inspector)
841 ("slynk-package-fu" ,sbcl-slynk-package-fu)
842 ("slynk-mrepl" ,sbcl-slynk-mrepl)
843 ("slynk-profiler" ,sbcl-slynk-profiler)
844 ("slynk-trace-dialog" ,sbcl-slynk-trace-dialog)
845 ("slynk-stickers" ,sbcl-slynk-stickers)
846 ("slynk-indentation" ,sbcl-slynk-indentation)
847 ("slynk-retro" ,sbcl-slynk-retro)))
848 (native-inputs `(("sbcl" ,sbcl)))
849 (build-system trivial-build-system)
850 (source #f)
851 (outputs '("out" "image"))
852 (arguments
853 `(#:modules ((guix build union)
854 (guix build utils)
855 (guix build lisp-utils))
856 #:builder
857 (begin
858 (use-modules (ice-9 match)
859 (srfi srfi-1)
860 (guix build union)
861 (guix build lisp-utils))
862
863 (union-build
864 (assoc-ref %outputs "out")
865 (filter-map
866 (match-lambda
867 ((name . path)
868 (if (string-prefix? "slynk" name) path #f)))
869 %build-inputs))
870
871 (prepend-to-source-registry
872 (string-append (assoc-ref %outputs "out") "//"))
873
874 (parameterize ((%lisp-type "sbcl")
875 (%lisp (string-append (assoc-ref %build-inputs "sbcl")
876 "/bin/sbcl")))
877 (build-image (string-append
878 (assoc-ref %outputs "image")
879 "/bin/slynk")
880 %outputs
881 #:dependencies ',slynk-systems))
882 #t)))))
883
884 (define-public ecl-slynk
885 (package
886 (inherit sbcl-slynk)
887 (name "ecl-slynk")
888 (inputs
889 (map (match-lambda
890 ((name pkg . _)
891 (list name (sbcl-package->ecl-package pkg))))
892 (package-inputs sbcl-slynk)))
893 (native-inputs '())
894 (outputs '("out"))
895 (arguments
896 '(#:modules ((guix build union))
897 #:builder
898 (begin
899 (use-modules (ice-9 match)
900 (guix build union))
901 (match %build-inputs
902 (((names . paths) ...)
903 (union-build (assoc-ref %outputs "out")
904 paths)
905 #t)))))))
906
907 (define-public sbcl-parse-js
908 (let ((commit "fbadc6029bec7039602abfc06c73bb52970998f6")
909 (revision "1"))
910 (package
911 (name "sbcl-parse-js")
912 (version (string-append "0.0.0-" revision "." (string-take commit 9)))
913 (source
914 (origin
915 (method git-fetch)
916 (uri (git-reference
917 (url "http://marijn.haverbeke.nl/git/parse-js")
918 (commit commit)))
919 (file-name (string-append name "-" commit "-checkout"))
920 (sha256
921 (base32
922 "1wddrnr5kiya5s3gp4cdq6crbfy9fqcz7fr44p81502sj3bvdv39"))))
923 (build-system asdf-build-system/sbcl)
924 (home-page "http://marijnhaverbeke.nl/parse-js/")
925 (synopsis "Parse JavaScript")
926 (description "Parse-js is a Common Lisp package for parsing
927 JavaScript (ECMAScript 3). It has basic support for ECMAScript 5.")
928 (license license:zlib))))
929
930 (define-public cl-parse-js
931 (sbcl-package->cl-source-package sbcl-parse-js))
932
933 (define-public sbcl-parse-number
934 (package
935 (name "sbcl-parse-number")
936 (version "1.7")
937 (source
938 (origin
939 (method git-fetch)
940 (uri (git-reference
941 (url "https://github.com/sharplispers/parse-number/")
942 (commit (string-append "v" version))))
943 (file-name (git-file-name name version))
944 (sha256
945 (base32
946 "0sk06ib1bhqv9y39vwnnw44vmbc4b0kvqm37xxmkxd4dwchq82d7"))))
947 (build-system asdf-build-system/sbcl)
948 (home-page "http://www.cliki.net/PARSE-NUMBER")
949 (synopsis "Parse numbers")
950 (description "@code{parse-number} is a library of functions for parsing
951 strings into one of the standard Common Lisp number types without using the
952 reader. @code{parse-number} accepts an arbitrary string and attempts to parse
953 the string into one of the standard Common Lisp number types, if possible, or
954 else @code{parse-number} signals an error of type @code{invalid-number}.")
955 (license license:bsd-3)))
956
957 (define-public cl-parse-number
958 (sbcl-package->cl-source-package sbcl-parse-number))
959
960 (define-public sbcl-iterate
961 (package
962 (name "sbcl-iterate")
963 ;; The latest official release (1.4.3) fails to build so we have to take
964 ;; the current darcs tarball from quicklisp.
965 (version "20160825")
966 (source
967 (origin
968 (method url-fetch)
969 (uri (string-append "http://beta.quicklisp.org/archive/iterate/"
970 "2016-08-25/iterate-"
971 version "-darcs.tgz"))
972 (sha256
973 (base32
974 "0kvz16gnxnkdz0fy1x8y5yr28nfm7i2qpvix7mgwccdpjmsb4pgm"))))
975 (build-system asdf-build-system/sbcl)
976 (native-inputs
977 `(("rt" ,sbcl-rt)))
978 (home-page "https://common-lisp.net/project/iterate/")
979 (synopsis "Iteration construct for Common Lisp")
980 (description "@code{iterate} is an iteration construct for Common Lisp.
981 It is similar to the @code{CL:LOOP} macro, with these distinguishing marks:
982
983 @itemize
984 @item it is extensible,
985 @item it helps editors like Emacs indent iterate forms by having a more
986 lisp-like syntax, and
987 @item it isn't part of the ANSI standard for Common Lisp.
988 @end itemize\n")
989 (license license:expat)))
990
991 (define-public cl-iterate
992 (sbcl-package->cl-source-package sbcl-iterate))
993
994 (define-public ecl-iterate
995 (sbcl-package->ecl-package sbcl-iterate))
996
997 (define-public sbcl-cl-uglify-js
998 ;; There have been many bug fixes since the 2010 release.
999 (let ((commit "429c5e1d844e2f96b44db8fccc92d6e8e28afdd5")
1000 (revision "1"))
1001 (package
1002 (name "sbcl-cl-uglify-js")
1003 (version (string-append "0.1-" revision "." (string-take commit 9)))
1004 (source
1005 (origin
1006 (method git-fetch)
1007 (uri (git-reference
1008 (url "https://github.com/mishoo/cl-uglify-js.git")
1009 (commit commit)))
1010 (file-name (git-file-name name version))
1011 (sha256
1012 (base32
1013 "0k39y3c93jgxpr7gwz7w0d8yknn1fdnxrjhd03057lvk5w8js27a"))))
1014 (build-system asdf-build-system/sbcl)
1015 (inputs
1016 `(("sbcl-parse-js" ,sbcl-parse-js)
1017 ("sbcl-cl-ppcre" ,sbcl-cl-ppcre)
1018 ("sbcl-cl-ppcre-unicode" ,sbcl-cl-ppcre-unicode)
1019 ("sbcl-parse-number" ,sbcl-parse-number)
1020 ("sbcl-iterate" ,sbcl-iterate)))
1021 (home-page "https://github.com/mishoo/cl-uglify-js")
1022 (synopsis "JavaScript compressor library for Common Lisp")
1023 (description "This is a Common Lisp version of UglifyJS, a JavaScript
1024 compressor. It works on data produced by @code{parse-js} to generate a
1025 @dfn{minified} version of the code. Currently it can:
1026
1027 @itemize
1028 @item reduce variable names (usually to single letters)
1029 @item join consecutive @code{var} statements
1030 @item resolve simple binary expressions
1031 @item group most consecutive statements using the @code{sequence} operator (comma)
1032 @item remove unnecessary blocks
1033 @item convert @code{IF} expressions in various ways that result in smaller code
1034 @item remove some unreachable code
1035 @end itemize\n")
1036 (license license:zlib))))
1037
1038 (define-public cl-uglify-js
1039 (sbcl-package->cl-source-package sbcl-cl-uglify-js))
1040
1041 (define-public uglify-js
1042 (package
1043 (inherit sbcl-cl-uglify-js)
1044 (name "uglify-js")
1045 (build-system trivial-build-system)
1046 (arguments
1047 `(#:modules ((guix build utils))
1048 #:builder
1049 (let* ((bin (string-append (assoc-ref %outputs "out") "/bin/"))
1050 (script (string-append bin "uglify-js")))
1051 (use-modules (guix build utils))
1052 (mkdir-p bin)
1053 (with-output-to-file script
1054 (lambda _
1055 (format #t "#!~a/bin/sbcl --script
1056 (require :asdf)
1057 (push (truename \"~a/lib/sbcl\") asdf:*central-registry*)"
1058 (assoc-ref %build-inputs "sbcl")
1059 (assoc-ref %build-inputs "sbcl-cl-uglify-js"))
1060 ;; FIXME: cannot use progn here because otherwise it fails to
1061 ;; find cl-uglify-js.
1062 (for-each
1063 write
1064 '(;; Quiet, please!
1065 (let ((*standard-output* (make-broadcast-stream))
1066 (*error-output* (make-broadcast-stream)))
1067 (asdf:load-system :cl-uglify-js))
1068 (let ((file (cadr *posix-argv*)))
1069 (if file
1070 (format t "~a"
1071 (cl-uglify-js:ast-gen-code
1072 (cl-uglify-js:ast-mangle
1073 (cl-uglify-js:ast-squeeze
1074 (with-open-file (in file)
1075 (parse-js:parse-js in))))
1076 :beautify nil))
1077 (progn
1078 (format *error-output*
1079 "Please provide a JavaScript file.~%")
1080 (sb-ext:exit :code 1))))))))
1081 (chmod script #o755)
1082 #t)))
1083 (inputs
1084 `(("sbcl" ,sbcl)
1085 ("sbcl-cl-uglify-js" ,sbcl-cl-uglify-js)))
1086 (synopsis "JavaScript compressor")))
1087
1088 (define-public sbcl-cl-strings
1089 (let ((revision "1")
1090 (commit "c5c5cbafbf3e6181d03c354d66e41a4f063f00ae"))
1091 (package
1092 (name "sbcl-cl-strings")
1093 (version (git-version "0.0.0" revision commit))
1094 (source
1095 (origin
1096 (method git-fetch)
1097 (uri (git-reference
1098 (url "https://github.com/diogoalexandrefranco/cl-strings")
1099 (commit commit)))
1100 (sha256
1101 (base32
1102 "00754mfaqallj480lwd346nkfb6ra8pa8xcxcylf4baqn604zlmv"))
1103 (file-name (string-append "cl-strings-" version "-checkout"))))
1104 (build-system asdf-build-system/sbcl)
1105 (synopsis "Portable, dependency-free set of utilities to manipulate strings in Common Lisp")
1106 (description
1107 "@command{cl-strings} is a small, portable, dependency-free set of
1108 utilities that make it even easier to manipulate text in Common Lisp. It has
1109 100% test coverage and works at least on sbcl, ecl, ccl, abcl and clisp.")
1110 (home-page "https://github.com/diogoalexandrefranco/cl-strings")
1111 (license license:expat))))
1112
1113 (define-public cl-strings
1114 (sbcl-package->cl-source-package sbcl-cl-strings))
1115
1116 (define-public ecl-cl-strings
1117 (sbcl-package->ecl-package sbcl-cl-strings))
1118
1119 (define-public sbcl-trivial-features
1120 (package
1121 (name "sbcl-trivial-features")
1122 (version "0.8")
1123 (source
1124 (origin
1125 (method git-fetch)
1126 (uri (git-reference
1127 (url "https://github.com/trivial-features/trivial-features.git")
1128 (commit (string-append "v" version))))
1129 (file-name (git-file-name "trivial-features" version))
1130 (sha256
1131 (base32 "0ccv7dqyrk55xga78i5vzlic7mdwp28in3g1a8fqhlk6626scsq9"))))
1132 (build-system asdf-build-system/sbcl)
1133 (arguments '(#:tests? #f))
1134 (home-page "http://cliki.net/trivial-features")
1135 (synopsis "Ensures consistency of @code{*FEATURES*} in Common Lisp")
1136 (description "Trivial-features ensures that @code{*FEATURES*} is
1137 consistent across multiple Common Lisp implementations.")
1138 (license license:expat)))
1139
1140 (define-public cl-trivial-features
1141 (sbcl-package->cl-source-package sbcl-trivial-features))
1142
1143 (define-public ecl-trivial-features
1144 (sbcl-package->ecl-package sbcl-trivial-features))
1145
1146 (define-public sbcl-hu.dwim.asdf
1147 (package
1148 (name "sbcl-hu.dwim.asdf")
1149 (version "20190521")
1150 (source
1151 (origin
1152 (method url-fetch)
1153 (uri (string-append "http://beta.quicklisp.org/archive/hu.dwim.asdf/"
1154 "2019-05-21/hu.dwim.asdf-" version "-darcs.tgz"))
1155 (sha256
1156 (base32
1157 "0rsbv71vyszy8w35yjwb5h6zcmknjq223hkzir79y72qdsc6sabn"))))
1158 (build-system asdf-build-system/sbcl)
1159 (home-page "https://hub.darcs.net/hu.dwim/hu.dwim.asdf")
1160 (synopsis "Extensions to ASDF")
1161 (description "Various ASDF extensions such as attached test and
1162 documentation system, explicit development support, etc.")
1163 (license license:public-domain)))
1164
1165 (define-public cl-hu.dwim.asdf
1166 (sbcl-package->cl-source-package sbcl-hu.dwim.asdf))
1167
1168 (define-public ecl-hu.dwim.asdf
1169 (sbcl-package->ecl-package sbcl-hu.dwim.asdf))
1170
1171 (define-public sbcl-hu.dwim.stefil
1172 (let ((commit "ab6d1aa8995878a1b66d745dfd0ba021090bbcf9"))
1173 (package
1174 (name "sbcl-hu.dwim.stefil")
1175 (version (git-version "0.0.0" "1" commit))
1176 (source
1177 (origin
1178 (method git-fetch)
1179 (uri
1180 (git-reference
1181 (url "https://gitlab.common-lisp.net/xcvb/hu.dwim.stefil.git")
1182 (commit commit)))
1183 (sha256
1184 (base32 "1d8yccw65zj3zh46cbi3x6nmn1dwdb76s9d0av035077mvyirqqp"))
1185 (file-name (git-file-name "hu.dwim.stefil" version))))
1186 (build-system asdf-build-system/sbcl)
1187 (native-inputs
1188 `(("asdf:cl-hu.dwim.asdf" ,sbcl-hu.dwim.asdf)))
1189 (inputs
1190 `(("sbcl-alexandria" ,sbcl-alexandria)))
1191 (home-page "https://hub.darcs.net/hu.dwim/hu.dwim.stefil")
1192 (synopsis "Simple test framework")
1193 (description "Stefil is a simple test framework for Common Lisp,
1194 with a focus on interactive development.")
1195 (license license:public-domain))))
1196
1197 (define-public cl-hu.dwim.stefil
1198 (sbcl-package->cl-source-package sbcl-hu.dwim.stefil))
1199
1200 (define-public ecl-hu.dwim.stefil
1201 (sbcl-package->ecl-package sbcl-hu.dwim.stefil))
1202
1203 (define-public sbcl-babel
1204 (package
1205 (name "sbcl-babel")
1206 (version "0.5.0")
1207 (source
1208 (origin
1209 (method git-fetch)
1210 (uri (git-reference
1211 (url "https://github.com/cl-babel/babel.git")
1212 (commit (string-append "v" version))))
1213 (file-name (git-file-name "babel" version))
1214 (sha256
1215 (base32 "139a8rn2gnhj082n8jg01gc8fyr63hkj57hgrnmb3d1r327yc77f"))))
1216 (build-system asdf-build-system/sbcl)
1217 (native-inputs
1218 `(("tests:cl-hu.dwim.stefil" ,sbcl-hu.dwim.stefil)))
1219 (inputs
1220 `(("sbcl-alexandria" ,sbcl-alexandria)
1221 ("sbcl-trivial-features" ,sbcl-trivial-features)))
1222 (home-page "https://common-lisp.net/project/babel/")
1223 (synopsis "Charset encoding and decoding library")
1224 (description "Babel is a charset encoding and decoding library, not unlike
1225 GNU libiconv, but completely written in Common Lisp.")
1226 (license license:expat)))
1227
1228 (define-public cl-babel
1229 (sbcl-package->cl-source-package sbcl-babel))
1230
1231 (define-public ecl-babel
1232 (sbcl-package->ecl-package sbcl-babel))
1233
1234 (define-public sbcl-cl-yacc
1235 (package
1236 (name "sbcl-cl-yacc")
1237 (version "0.3")
1238 (source
1239 (origin
1240 (method git-fetch)
1241 (uri (git-reference
1242 (url "https://github.com/jech/cl-yacc")
1243 (commit (string-append "cl-yacc-" version))))
1244 (sha256
1245 (base32
1246 "16946pzf8vvadnyfayvj8rbh4zjzw90h0azz2qk1mxrvhh5wklib"))
1247 (file-name (string-append "cl-yacc-" version "-checkout"))))
1248 (build-system asdf-build-system/sbcl)
1249 (arguments
1250 `(#:asd-file "yacc.asd"
1251 #:asd-system-name "yacc"))
1252 (synopsis "LALR(1) parser generator for Common Lisp, similar in spirit to Yacc")
1253 (description
1254 "CL-Yacc is a LALR(1) parser generator for Common Lisp, similar in spirit
1255 to AT&T Yacc, Berkeley Yacc, GNU Bison, Zebu, lalr.cl or lalr.scm.
1256
1257 CL-Yacc uses the algorithm due to Aho and Ullman, which is the one also used
1258 by AT&T Yacc, Berkeley Yacc and Zebu. It does not use the faster algorithm due
1259 to DeRemer and Pennello, which is used by Bison and lalr.scm (not lalr.cl).")
1260 (home-page "https://www.irif.fr/~jch//software/cl-yacc/")
1261 (license license:expat)))
1262
1263 (define-public cl-yacc
1264 (sbcl-package->cl-source-package sbcl-cl-yacc))
1265
1266 (define-public ecl-cl-yacc
1267 (sbcl-package->ecl-package sbcl-cl-yacc))
1268
1269 (define-public sbcl-jpl-util
1270 (let ((commit "0311ed374e19a49d43318064d729fe3abd9a3b62"))
1271 (package
1272 (name "sbcl-jpl-util")
1273 (version "20151005")
1274 (source
1275 (origin
1276 (method git-fetch)
1277 (uri (git-reference
1278 ;; Quicklisp uses this fork.
1279 (url "https://github.com/hawkir/cl-jpl-util")
1280 (commit commit)))
1281 (file-name
1282 (git-file-name "jpl-util" version))
1283 (sha256
1284 (base32
1285 "0nc0rk9n8grkg3045xsw34whmcmddn2sfrxki4268g7kpgz0d2yz"))))
1286 (build-system asdf-build-system/sbcl)
1287 (synopsis "Collection of Common Lisp utility functions and macros")
1288 (description
1289 "@command{cl-jpl-util} is a collection of Common Lisp utility functions
1290 and macros, primarily for software projects written in CL by the author.")
1291 (home-page "https://www.thoughtcrime.us/software/cl-jpl-util/")
1292 (license license:isc))))
1293
1294 (define-public cl-jpl-util
1295 (sbcl-package->cl-source-package sbcl-jpl-util))
1296
1297 (define-public ecl-jpl-util
1298 (sbcl-package->ecl-package sbcl-jpl-util))
1299
1300 (define-public sbcl-jpl-queues
1301 (package
1302 (name "sbcl-jpl-queues")
1303 (version "0.1")
1304 (source
1305 (origin
1306 (method url-fetch)
1307 (uri (string-append
1308 "http://www.thoughtcrime.us/software/jpl-queues/jpl-queues-"
1309 version
1310 ".tar.gz"))
1311 (sha256
1312 (base32
1313 "1wvvv7j117h9a42qaj1g4fh4mji28xqs7s60rn6d11gk9jl76h96"))))
1314 (build-system asdf-build-system/sbcl)
1315 (inputs
1316 `(("jpl-util" ,sbcl-jpl-util)
1317 ("bordeaux-threads" ,sbcl-bordeaux-threads)))
1318 (arguments
1319 ;; Tests seem to be broken.
1320 `(#:tests? #f))
1321 (synopsis "Common Lisp library implementing a few different kinds of queues")
1322 (description
1323 "A Common Lisp library implementing a few different kinds of queues:
1324
1325 @itemize
1326 @item Bounded and unbounded FIFO queues.
1327 @item Lossy bounded FIFO queues that drop elements when full.
1328 @item Unbounded random-order queues that use less memory than unbounded FIFO queues.
1329 @end itemize
1330
1331 Additionally, a synchronization wrapper is provided to make any queue
1332 conforming to the @command{jpl-queues} API thread-safe for lightweight
1333 multithreading applications. (See Calispel for a more sophisticated CL
1334 multithreaded message-passing library with timeouts and alternation among
1335 several blockable channels.)")
1336 (home-page "https://www.thoughtcrime.us/software/jpl-queues/")
1337 (license license:isc)))
1338
1339 (define-public cl-jpl-queues
1340 (sbcl-package->cl-source-package sbcl-jpl-queues))
1341
1342 (define-public ecl-jpl-queues
1343 (sbcl-package->ecl-package sbcl-jpl-queues))
1344
1345 (define-public sbcl-eos
1346 (let ((commit "b0faca83781ead9a588661e37bd47f90362ccd94"))
1347 (package
1348 (name "sbcl-eos")
1349 (version (git-version "0.0.0" "1" commit))
1350 (source
1351 (origin
1352 (method git-fetch)
1353 (uri (git-reference
1354 (url "https://github.com/adlai/Eos")
1355 (commit commit)))
1356 (sha256
1357 (base32
1358 "1bq8cfg087iyxmxi1mwgx5cfgy3b8ydrf81xljcis8qbgb2vszph"))
1359 (file-name (git-file-name "eos" version))))
1360 (build-system asdf-build-system/sbcl)
1361 (synopsis "Unit Testing for Common Lisp")
1362 (description
1363 "Eos was a unit testing library for Common Lisp.
1364 It began as a fork of FiveAM; however, FiveAM development has continued, while
1365 that of Eos has not. Thus, Eos is now deprecated in favor of FiveAM.")
1366 (home-page "https://github.com/adlai/Eos")
1367 (license license:expat))))
1368
1369 (define-public cl-eos
1370 (sbcl-package->cl-source-package sbcl-eos))
1371
1372 (define-public ecl-eos
1373 (sbcl-package->ecl-package sbcl-eos))
1374
1375 (define-public sbcl-esrap
1376 (let ((commit "133be8b05c2aae48696fe5b739eea2fa573fa48d"))
1377 (package
1378 (name "sbcl-esrap")
1379 (version (git-version "0.0.0" "1" commit))
1380 (source
1381 (origin
1382 (method git-fetch)
1383 (uri (git-reference
1384 (url "https://github.com/nikodemus/esrap")
1385 (commit commit)))
1386 (sha256
1387 (base32
1388 "02d5clihsdryhf7pix8c5di2571fdsffh75d40fkzhws90r5mksl"))
1389 (file-name (git-file-name "esrap" version))))
1390 (build-system asdf-build-system/sbcl)
1391 (native-inputs
1392 `(("eos" ,sbcl-eos))) ;For testing only.
1393 (inputs
1394 `(("alexandria" ,sbcl-alexandria)))
1395 (synopsis "Common Lisp packrat parser")
1396 (description
1397 "A packrat parser for Common Lisp.
1398 In addition to regular Packrat / Parsing Grammar / TDPL features ESRAP supports:
1399
1400 @itemize
1401 @item dynamic redefinition of nonterminals
1402 @item inline grammars
1403 @item semantic predicates
1404 @item introspective facilities (describing grammars, tracing, setting breaks)
1405 @end itemize\n")
1406 (home-page "https://nikodemus.github.io/esrap/")
1407 (license license:expat))))
1408
1409 (define-public cl-esrap
1410 (sbcl-package->cl-source-package sbcl-esrap))
1411
1412 (define-public ecl-esrap
1413 (sbcl-package->ecl-package sbcl-esrap))
1414
1415 (define-public sbcl-split-sequence
1416 (package
1417 (name "sbcl-split-sequence")
1418 (version "1.4.1")
1419 (source
1420 (origin
1421 (method git-fetch)
1422 (uri (git-reference
1423 (url "https://github.com/sharplispers/split-sequence")
1424 (commit (string-append "v" version))))
1425 (sha256
1426 (base32
1427 "0c3zp6b7fmmp93sfhq112ind4zkld49ycw68z409xpnz3gc0wpf0"))
1428 (file-name (git-file-name "split-sequence" version))))
1429 (build-system asdf-build-system/sbcl)
1430 (arguments
1431 ;; TODO: Tests seem to be broken.
1432 ;; https://github.com/sharplispers/split-sequence/issues/8
1433 `(#:tests? #f))
1434 (synopsis "Member of the Common Lisp Utilities family of programs")
1435 (description
1436 "Splits sequence into a list of subsequences delimited by objects
1437 satisfying the test.")
1438 (home-page "https://cliki.net/split-sequence")
1439 (license license:expat)))
1440
1441 (define-public cl-split-sequence
1442 (sbcl-package->cl-source-package sbcl-split-sequence))
1443
1444 (define-public ecl-split-sequence
1445 (sbcl-package->ecl-package sbcl-split-sequence))
1446
1447 (define-public sbcl-html-encode
1448 (package
1449 (name "sbcl-html-encode")
1450 (version "1.2")
1451 (source
1452 (origin
1453 (method url-fetch)
1454 (uri (string-append
1455 "http://beta.quicklisp.org/archive/html-encode/2010-10-06/html-encode-"
1456 version ".tgz"))
1457 (sha256
1458 (base32
1459 "06mf8wn95yf5swhmzk4vp0xr4ylfl33dgfknkabbkd8n6jns8gcf"))
1460 (file-name (string-append "colorize" version "-checkout"))))
1461 (build-system asdf-build-system/sbcl)
1462 (synopsis "Common Lisp library for encoding text in various web-savvy encodings")
1463 (description
1464 "A library for encoding text in various web-savvy encodings.")
1465 (home-page "http://quickdocs.org/html-encode/")
1466 (license license:expat)))
1467
1468 (define-public cl-html-encode
1469 (sbcl-package->cl-source-package sbcl-html-encode))
1470
1471 (define-public ecl-html-encode
1472 (sbcl-package->ecl-package sbcl-html-encode))
1473
1474 (define-public sbcl-colorize
1475 (let ((commit "ea676b584e0899cec82f21a9e6871172fe3c0eb5"))
1476 (package
1477 (name "sbcl-colorize")
1478 (version (git-version "0.0.0" "1" commit))
1479 (source
1480 (origin
1481 (method git-fetch)
1482 (uri (git-reference
1483 (url "https://github.com/kingcons/colorize")
1484 (commit commit)))
1485 (sha256
1486 (base32
1487 "1pdg4kiaczmr3ivffhirp7m3lbr1q27rn7dhaay0vwghmi31zcw9"))
1488 (file-name (git-file-name "colorize" version))))
1489 (build-system asdf-build-system/sbcl)
1490 (inputs
1491 `(("alexandria" ,sbcl-alexandria)
1492 ("split-sequence" ,sbcl-split-sequence)
1493 ("html-encode" ,sbcl-html-encode)))
1494 (synopsis "Common Lisp for syntax highlighting")
1495 (description
1496 "@command{colorize} is a Lisp library for syntax highlighting
1497 supporting the following languages: Common Lisp, Emacs Lisp, Scheme, Clojure,
1498 C, C++, Java, Python, Erlang, Haskell, Objective-C, Diff, Webkit.")
1499 (home-page "https://github.com/kingcons/colorize")
1500 ;; TODO: Missing license?
1501 (license license:expat))))
1502
1503 (define-public cl-colorize
1504 (sbcl-package->cl-source-package sbcl-colorize))
1505
1506 (define-public ecl-colorize
1507 (sbcl-package->ecl-package sbcl-colorize))
1508
1509 (define-public sbcl-3bmd
1510 (let ((commit "192ea13435b605a96ef607df51317056914cabbd"))
1511 (package
1512 (name "sbcl-3bmd")
1513 (version (git-version "0.0.0" "1" commit))
1514 (source
1515 (origin
1516 (method git-fetch)
1517 (uri (git-reference
1518 (url "https://github.com/3b/3bmd")
1519 (commit commit)))
1520 (sha256
1521 (base32
1522 "1rgv3gi7wf963ikmmpk132wgn0icddf226gq3bmcnk1fr3v9gf2f"))
1523 (file-name (git-file-name "3bmd" version))))
1524 (build-system asdf-build-system/sbcl)
1525 (arguments
1526 ;; FIXME: We need to specify the name because the build-system thinks
1527 ;; "3" is a version marker.
1528 `(#:asd-system-name "3bmd"))
1529 (inputs
1530 `(("esrap" ,sbcl-esrap)
1531 ("split-sequence" ,sbcl-split-sequence)))
1532 (synopsis "Markdown processor in Command Lisp using esrap parser")
1533 (description
1534 "Common Lisp Markdown -> HTML converter, using @command{esrap} for
1535 parsing, and grammar based on @command{peg-markdown}.")
1536 (home-page "https://github.com/3b/3bmd")
1537 (license license:expat))))
1538
1539 (define-public cl-3bmd
1540 (sbcl-package->cl-source-package sbcl-3bmd))
1541
1542 (define-public ecl-3bmd
1543 (sbcl-package->ecl-package sbcl-3bmd))
1544
1545 (define-public sbcl-3bmd-ext-code-blocks
1546 (let ((commit "192ea13435b605a96ef607df51317056914cabbd"))
1547 (package
1548 (inherit sbcl-3bmd)
1549 (name "sbcl-3bmd-ext-code-blocks")
1550 (arguments
1551 `(#:asd-system-name "3bmd-ext-code-blocks"
1552 #:asd-file "3bmd-ext-code-blocks.asd"))
1553 (inputs
1554 `(("3bmd" ,sbcl-3bmd)
1555 ("colorize" ,sbcl-colorize)))
1556 (synopsis "3bmd extension which adds support for GitHub-style fenced
1557 code blocks")
1558 (description
1559 "3bmd extension which adds support for GitHub-style fenced code blocks,
1560 with @command{colorize} support."))))
1561
1562 (define-public cl-3bmd-ext-code-blocks
1563 (sbcl-package->cl-source-package sbcl-3bmd-ext-code-blocks))
1564
1565 (define-public ecl-3bmd-ext-code-blocks
1566 (sbcl-package->ecl-package sbcl-3bmd-ext-code-blocks))
1567
1568 (define-public sbcl-cl-fad
1569 (package
1570 (name "sbcl-cl-fad")
1571 (version "0.7.5")
1572 (source
1573 (origin
1574 (method git-fetch)
1575 (uri (git-reference
1576 (url "https://github.com/edicl/cl-fad/")
1577 (commit (string-append "v" version))))
1578 (sha256
1579 (base32
1580 "1l1qmk9z57q84bz5r04sxsksggsnd7dgkxlybzh9imz6ma7sm52m"))
1581 (file-name (string-append "cl-fad" version "-checkout"))))
1582 (build-system asdf-build-system/sbcl)
1583 (inputs
1584 `(("bordeaux-threads" ,sbcl-bordeaux-threads)))
1585 (synopsis "Portable pathname library for Common Lisp")
1586 (description
1587 "CL-FAD (for \"Files and Directories\") is a thin layer atop Common
1588 Lisp's standard pathname functions. It is intended to provide some
1589 unification between current CL implementations on Windows, OS X, Linux, and
1590 Unix. Most of the code was written by Peter Seibel for his book Practical
1591 Common Lisp.")
1592 (home-page "https://edicl.github.io/cl-fad/")
1593 (license license:bsd-2)))
1594
1595 (define-public cl-fad
1596 (sbcl-package->cl-source-package sbcl-cl-fad))
1597
1598 (define-public ecl-cl-fad
1599 (sbcl-package->ecl-package sbcl-cl-fad))
1600
1601 (define-public sbcl-rt
1602 (package
1603 (name "sbcl-rt")
1604 (version "1990.12.19")
1605 (source
1606 (origin
1607 (method url-fetch)
1608 (uri (string-append "http://beta.quicklisp.org/archive/rt/2010-10-06/rt-"
1609 "20101006-git" ".tgz"))
1610 (sha256
1611 (base32
1612 "1jncar0xwkqk8yrc2dln389ivvgzs7ijdhhs3zpfyi5d21f0qa1v"))))
1613 (build-system asdf-build-system/sbcl)
1614 (synopsis "MIT Regression Tester")
1615 (description
1616 "RT provides a framework for writing regression test suites.")
1617 (home-page "https://github.com/sharplispers/nibbles")
1618 (license license:unlicense)))
1619
1620 (define-public cl-rt
1621 (sbcl-package->cl-source-package sbcl-rt))
1622
1623 (define-public ecl-rt
1624 (sbcl-package->ecl-package sbcl-rt))
1625
1626 (define-public sbcl-nibbles
1627 (package
1628 (name "sbcl-nibbles")
1629 (version "0.14")
1630 (source
1631 (origin
1632 (method git-fetch)
1633 (uri (git-reference
1634 (url "https://github.com/sharplispers/nibbles/")
1635 (commit (string-append "v" version))))
1636 (sha256
1637 (base32
1638 "1v7qfgpvdr6nz7v63dj69d26dis0kff3rd8xamr1llfdvza2pm8f"))
1639 (file-name (git-file-name "nibbles" version))))
1640 (build-system asdf-build-system/sbcl)
1641 (native-inputs
1642 ;; Tests only.
1643 `(("rt" ,sbcl-rt)))
1644 (synopsis "Common Lisp library for accessing octet-addressed blocks of data")
1645 (description
1646 "When dealing with network protocols and file formats, it's common to
1647 have to read or write 16-, 32-, or 64-bit datatypes in signed or unsigned
1648 flavors. Common Lisp sort of supports this by specifying :element-type for
1649 streams, but that facility is underspecified and there's nothing similar for
1650 read/write from octet vectors. What most people wind up doing is rolling their
1651 own small facility for their particular needs and calling it a day.
1652
1653 This library attempts to be comprehensive and centralize such
1654 facilities. Functions to read 16-, 32-, and 64-bit quantities from octet
1655 vectors in signed or unsigned flavors are provided; these functions are also
1656 SETFable. Since it's sometimes desirable to read/write directly from streams,
1657 functions for doing so are also provided. On some implementations,
1658 reading/writing IEEE singles/doubles (i.e. single-float and double-float) will
1659 also be supported.")
1660 (home-page "https://github.com/sharplispers/nibbles")
1661 (license license:bsd-3)))
1662
1663 (define-public cl-nibbles
1664 (sbcl-package->cl-source-package sbcl-nibbles))
1665
1666 (define-public ecl-nibbles
1667 (sbcl-package->ecl-package sbcl-nibbles))
1668
1669 (define-public sbcl-ironclad
1670 (package
1671 (name "sbcl-ironclad")
1672 (version "0.48")
1673 (source
1674 (origin
1675 (method git-fetch)
1676 (uri (git-reference
1677 (url "https://github.com/sharplispers/ironclad/")
1678 (commit (string-append "v" version))))
1679 (sha256
1680 (base32
1681 "1wzczpgvgjc5h8ghz75kxi7iykmqxqchdhgdhkif9j99kyqvbyam"))
1682 (file-name (git-file-name name version))))
1683 (build-system asdf-build-system/sbcl)
1684 (native-inputs
1685 ;; Tests only.
1686 `(("rt" ,sbcl-rt)))
1687 (inputs
1688 `(("bordeaux-threads" ,sbcl-bordeaux-threads)
1689 ("flexi-streams" ,sbcl-flexi-streams)))
1690 (synopsis "Cryptographic toolkit written in Common Lisp")
1691 (description
1692 "Ironclad is a cryptography library written entirely in Common Lisp.
1693 It includes support for several popular ciphers, digests, MACs and public key
1694 cryptography algorithms. For several implementations that support Gray
1695 streams, support is included for convenient stream wrappers.")
1696 (home-page "https://github.com/sharplispers/ironclad")
1697 (license license:bsd-3)))
1698
1699 (define-public cl-ironclad
1700 (sbcl-package->cl-source-package sbcl-ironclad))
1701
1702 (define-public ecl-ironclad
1703 (sbcl-package->ecl-package sbcl-ironclad))
1704
1705 (define-public sbcl-named-readtables
1706 (let ((commit "4dfb89fa1af6b305b6492b8af042f5190c11e9fc")
1707 (revision "1"))
1708 (package
1709 (name "sbcl-named-readtables")
1710 (version (string-append "0.9-" revision "." (string-take commit 7)))
1711 (source
1712 (origin
1713 (method git-fetch)
1714 (uri (git-reference
1715 (url "https://github.com/melisgl/named-readtables.git")
1716 (commit commit)))
1717 (sha256
1718 (base32 "083kgh5462iqbb4px6kq8s7sggvpvkm36hx4qi9rnaw53b6ilqkk"))
1719 (file-name (git-file-name "named-readtables" version))))
1720 (build-system asdf-build-system/sbcl)
1721 (arguments
1722 ;; Tests seem to be broken.
1723 `(#:tests? #f))
1724 (home-page "https://github.com/melisgl/named-readtables/")
1725 (synopsis "Library that creates a namespace for named readtables")
1726 (description "Named readtables is a library that creates a namespace for
1727 named readtables, which is akin to package namespacing in Common Lisp.")
1728 (license license:bsd-3))))
1729
1730 (define-public cl-named-readtables
1731 (sbcl-package->cl-source-package sbcl-named-readtables))
1732
1733 (define-public ecl-named-readtables
1734 (sbcl-package->ecl-package sbcl-named-readtables))
1735
1736 (define-public sbcl-pythonic-string-reader
1737 (let ((commit "47a70ba1e32362e03dad6ef8e6f36180b560f86a"))
1738 (package
1739 (name "sbcl-pythonic-string-reader")
1740 (version (git-version "0.0.0" "1" commit))
1741 (source
1742 (origin
1743 (method git-fetch)
1744 (uri (git-reference
1745 (url "https://github.com/smithzvk/pythonic-string-reader/")
1746 (commit commit)))
1747 (sha256
1748 (base32 "1b5iryqw8xsh36swckmz8rrngmc39k92si33fgy5pml3n9l5rq3j"))
1749 (file-name (git-file-name "pythonic-string-reader" version))))
1750 (build-system asdf-build-system/sbcl)
1751 (inputs
1752 `(("named-readtables" ,sbcl-named-readtables)))
1753 (home-page "https://github.com/smithzvk/pythonic-string-reader")
1754 (synopsis "Read table modification inspired by Python's three quote strings")
1755 (description "This piece of code sets up some reader macros that make it
1756 simpler to input string literals which contain backslashes and double quotes
1757 This is very useful for writing complicated docstrings and, as it turns out,
1758 writing code that contains string literals that contain code themselves.")
1759 (license license:bsd-3))))
1760
1761 (define-public cl-pythonic-string-reader
1762 (sbcl-package->cl-source-package sbcl-pythonic-string-reader))
1763
1764 (define-public ecl-pythonic-string-reader
1765 (sbcl-package->ecl-package sbcl-pythonic-string-reader))
1766
1767 ;; SLIME does not have a ASDF system definition to build all of Swank. As a
1768 ;; result, the asdf-build-system/sbcl will produce an almost empty package.
1769 ;; Some work was done to fix this at
1770 ;; https://github.com/sionescu/slime/tree/swank-asdf but it was never merged
1771 ;; and is now lagging behind. Building SBCL fasls might not be worth the
1772 ;; hassle, so let's just ship the source then.
1773 (define-public cl-slime-swank
1774 (package
1775 (name "cl-slime-swank")
1776 (version "2.24")
1777 (source
1778 (origin
1779 (file-name (string-append name "-" version ".tar.gz"))
1780 (method git-fetch)
1781 (uri (git-reference
1782 (url "https://github.com/slime/slime/")
1783 (commit (string-append "v" version))))
1784 (sha256
1785 (base32
1786 "0js24x42m7b5iymb4rxz501dff19vav5pywnzv50b673rbkaaqvh"))))
1787 (build-system asdf-build-system/source)
1788 (home-page "https://github.com/slime/slime")
1789 (synopsis "Common Lisp Swank server")
1790 (description
1791 "This is only useful if you want to start a Swank server in a Lisp
1792 processes that doesn't run under Emacs. Lisp processes created by
1793 @command{M-x slime} automatically start the server.")
1794 (license (list license:gpl2+ license:public-domain))))
1795
1796 (define-public sbcl-slime-swank
1797 (deprecated-package "sbcl-slime-swank" cl-slime-swank))
1798
1799 (define-public sbcl-mgl-pax
1800 (let ((commit "818448418d6b9de74620f606f5b23033c6082769"))
1801 (package
1802 (name "sbcl-mgl-pax")
1803 (version (git-version "0.0.0" "1" commit))
1804 (source
1805 (origin
1806 (method git-fetch)
1807 (uri (git-reference
1808 (url "https://github.com/melisgl/mgl-pax")
1809 (commit commit)))
1810 (sha256
1811 (base32
1812 "1p97zfkh130bdxqqxwaw2j9psv58751wakx7czbfpq410lg7dd7i"))
1813 (file-name (git-file-name "mgl-pax" version))))
1814 (build-system asdf-build-system/sbcl)
1815 (inputs
1816 `(("3bmd" ,sbcl-3bmd)
1817 ("3bmd-ext-code-blocks" ,sbcl-3bmd-ext-code-blocks)
1818 ("babel" ,sbcl-babel)
1819 ("cl-fad" ,sbcl-cl-fad)
1820 ("ironclad" ,sbcl-ironclad)
1821 ("named-readtables" ,sbcl-named-readtables)
1822 ("pythonic-string-reader" ,sbcl-pythonic-string-reader)
1823 ("swank" ,cl-slime-swank)))
1824 (synopsis "Exploratory programming environment and documentation generator")
1825 (description
1826 "PAX provides an extremely poor man's Explorable Programming
1827 environment. Narrative primarily lives in so called sections that mix markdown
1828 docstrings with references to functions, variables, etc, all of which should
1829 probably have their own docstrings.
1830
1831 The primary focus is on making code easily explorable by using SLIME's
1832 @command{M-.} (@command{slime-edit-definition}). See how to enable some
1833 fanciness in Emacs Integration. Generating documentation from sections and all
1834 the referenced items in Markdown or HTML format is also implemented.
1835
1836 With the simplistic tools provided, one may accomplish similar effects as with
1837 Literate Programming, but documentation is generated from code, not vice versa
1838 and there is no support for chunking yet. Code is first, code must look
1839 pretty, documentation is code.")
1840 (home-page "http://quotenil.com/")
1841 (license license:expat))))
1842
1843 (define-public cl-mgl-pax
1844 (sbcl-package->cl-source-package sbcl-mgl-pax))
1845
1846 (define-public ecl-mgl-pax
1847 (sbcl-package->ecl-package sbcl-mgl-pax))
1848
1849 (define-public sbcl-lisp-unit
1850 (let ((commit "89653a232626b67400bf9a941f9b367da38d3815"))
1851 (package
1852 (name "sbcl-lisp-unit")
1853 (version (git-version "0.0.0" "1" commit))
1854 (source
1855 (origin
1856 (method git-fetch)
1857 (uri (git-reference
1858 (url "https://github.com/OdonataResearchLLC/lisp-unit")
1859 (commit commit)))
1860 (sha256
1861 (base32
1862 "0p6gdmgr7p383nvd66c9y9fp2bjk4jx1lpa5p09g43hr9y9pp9ry"))
1863 (file-name (git-file-name "lisp-unit" version))))
1864 (build-system asdf-build-system/sbcl)
1865 (synopsis "Common Lisp Test framework inspired by JUnit to be simple of use")
1866 (description
1867 "@command{lisp-unit} is a Common Lisp library that supports unit
1868 testing. It is an extension of the library written by Chris Riesbeck.")
1869 (home-page "https://github.com/OdonataResearchLLC/lisp-unit")
1870 (license license:expat))))
1871
1872 (define-public cl-lisp-unit
1873 (sbcl-package->cl-source-package sbcl-lisp-unit))
1874
1875 (define-public ecl-lisp-unit
1876 (sbcl-package->ecl-package sbcl-lisp-unit))
1877
1878 (define-public sbcl-anaphora
1879 (package
1880 (name "sbcl-anaphora")
1881 (version "0.9.6")
1882 (source
1883 (origin
1884 (method git-fetch)
1885 (uri (git-reference
1886 (url "https://github.com/tokenrove/anaphora")
1887 (commit version)))
1888 (sha256
1889 (base32
1890 "19wfrk3asimznkli0x2rfy637hwpdgqyvwj3vhq9x7vjvyf5vv6x"))
1891 (file-name (git-file-name "anaphora" version))))
1892 (build-system asdf-build-system/sbcl)
1893 (native-inputs
1894 `(("rt" ,sbcl-rt)))
1895 (synopsis "The anaphoric macro collection from Hell")
1896 (description
1897 "Anaphora is the anaphoric macro collection from Hell: it includes many
1898 new fiends in addition to old friends like @command{aif} and
1899 @command{awhen}.")
1900 (home-page "https://github.com/tokenrove/anaphora")
1901 (license license:public-domain)))
1902
1903 (define-public cl-anaphora
1904 (sbcl-package->cl-source-package sbcl-anaphora))
1905
1906 (define-public ecl-anaphora
1907 (sbcl-package->ecl-package sbcl-anaphora))
1908
1909 (define-public sbcl-lift
1910 (let ((commit "7d49a66c62759535624037826891152223d4206c"))
1911 (package
1912 (name "sbcl-lift")
1913 (version (git-version "1.7.1" "1" commit))
1914 (source
1915 (origin
1916 (method git-fetch)
1917 (uri (git-reference
1918 (url "https://github.com/gwkkwg/lift")
1919 (commit commit)))
1920 (sha256
1921 (base32
1922 "127v5avpz1i4m0lkaxqrq8hrl69rdazqaxf6s8awf0nd7wj2g4dp"))
1923 (file-name (git-file-name "lift" version))
1924 (modules '((guix build utils)))
1925 (snippet
1926 ;; Don't keep the bundled website
1927 `(begin
1928 (delete-file-recursively "website")
1929 #t))))
1930 (build-system asdf-build-system/sbcl)
1931 (arguments
1932 ;; The tests require a debugger, but we run with the debugger disabled.
1933 '(#:tests? #f))
1934 (synopsis "LIsp Framework for Testing")
1935 (description
1936 "The LIsp Framework for Testing (LIFT) is a unit and system test tool for LISP.
1937 Though inspired by SUnit and JUnit, it's built with Lisp in mind. In LIFT,
1938 testcases are organized into hierarchical testsuites each of which can have
1939 its own fixture. When run, a testcase can succeed, fail, or error. LIFT
1940 supports randomized testing, benchmarking, profiling, and reporting.")
1941 (home-page "https://github.com/gwkkwg/lift")
1942 (license license:expat))))
1943
1944 (define-public cl-lift
1945 (sbcl-package->cl-source-package sbcl-lift))
1946
1947 (define-public ecl-lift
1948 (sbcl-package->ecl-package sbcl-lift))
1949
1950 (define-public sbcl-let-plus
1951 (let ((commit "5f14af61d501ecead02ec6b5a5c810efc0c9fdbb"))
1952 (package
1953 (name "sbcl-let-plus")
1954 (version (git-version "0.0.0" "1" commit))
1955 (source
1956 (origin
1957 (method git-fetch)
1958 (uri (git-reference
1959 (url "https://github.com/sharplispers/let-plus")
1960 (commit commit)))
1961 (sha256
1962 (base32
1963 "0i050ca2iys9f5mb7dgqgqdxfnc3b0rnjdwv95sqd490vkiwrsaj"))
1964 (file-name (git-file-name "let-plus" version))))
1965 (build-system asdf-build-system/sbcl)
1966 (inputs
1967 `(("alexandria" ,sbcl-alexandria)
1968 ("anaphora" ,sbcl-anaphora)))
1969 (native-inputs
1970 `(("lift" ,sbcl-lift)))
1971 (synopsis "Destructuring extension of let*")
1972 (description
1973 "This library implements the let+ macro, which is a dectructuring
1974 extension of let*. It features:
1975
1976 @itemize
1977 @item Clean, consistent syntax and small implementation (less than 300 LOC,
1978 not counting tests)
1979 @item Placeholder macros allow editor hints and syntax highlighting
1980 @item @command{&ign} for ignored values (in forms where that makes sense)
1981 @item Very easy to extend
1982 @end itemize\n")
1983 (home-page "https://github.com/sharplispers/let-plus")
1984 (license license:boost1.0))))
1985
1986 (define-public cl-let-plus
1987 (sbcl-package->cl-source-package sbcl-let-plus))
1988
1989 (define-public ecl-let-plus
1990 (sbcl-package->ecl-package sbcl-let-plus))
1991
1992 (define-public sbcl-cl-colors
1993 (let ((commit "827410584553f5c717eec6182343b7605f707f75"))
1994 (package
1995 (name "sbcl-cl-colors")
1996 (version (git-version "0.0.0" "1" commit))
1997 (source
1998 (origin
1999 (method git-fetch)
2000 (uri (git-reference
2001 (url "https://github.com/tpapp/cl-colors")
2002 (commit commit)))
2003 (sha256
2004 (base32
2005 "0l446lday4hybsm9bq3jli97fvv8jb1d33abg79vbylpwjmf3y9a"))
2006 (file-name (git-file-name "cl-colors" version))))
2007 (build-system asdf-build-system/sbcl)
2008 (inputs
2009 `(("alexandria" ,sbcl-alexandria)
2010 ("let-plus" ,sbcl-let-plus)))
2011 (synopsis "Simple color library for Common Lisp")
2012 (description
2013 "This is a very simple color library for Common Lisp, providing
2014
2015 @itemize
2016 @item Types for representing colors in HSV and RGB spaces.
2017 @item Simple conversion functions between the above types (and also
2018 hexadecimal representation for RGB).
2019 @item Some predefined colors (currently X11 color names – of course the
2020 library does not depend on X11).Because color in your terminal is nice.
2021 @end itemize
2022
2023 This library is no longer supported by its author.")
2024 (home-page "https://github.com/tpapp/cl-colors")
2025 (license license:boost1.0))))
2026
2027 (define-public cl-colors
2028 (sbcl-package->cl-source-package sbcl-cl-colors))
2029
2030 (define-public ecl-cl-colors
2031 (sbcl-package->ecl-package sbcl-cl-colors))
2032
2033 (define-public sbcl-cl-ansi-text
2034 (let ((commit "53badf7878f27f22f2d4a2a43e6df458e43acbe9"))
2035 (package
2036 (name "sbcl-cl-ansi-text")
2037 (version (git-version "1.0.0" "1" commit))
2038 (source
2039 (origin
2040 (method git-fetch)
2041 (uri (git-reference
2042 (url "https://github.com/pnathan/cl-ansi-text")
2043 (commit commit)))
2044 (sha256
2045 (base32
2046 "11i27n0dbz5lmygiw65zzr8lx0rac6b6yysqranphn31wls6ja3v"))
2047 (file-name (git-file-name "cl-ansi-text" version))))
2048 (build-system asdf-build-system/sbcl)
2049 (inputs
2050 `(("alexandria" ,sbcl-alexandria)
2051 ("cl-colors" ,sbcl-cl-colors)))
2052 (native-inputs
2053 `(("fiveam" ,sbcl-fiveam)))
2054 (synopsis "ANSI terminal color implementation for Common Lisp")
2055 (description
2056 "@command{cl-ansi-text} provides utilities which enable printing to an
2057 ANSI terminal with colored text. It provides the macro @command{with-color}
2058 which causes everything printed in the body to be displayed with the provided
2059 color. It further provides functions which will print the argument with the
2060 named color.")
2061 (home-page "https://github.com/pnathan/cl-ansi-text")
2062 (license license:llgpl))))
2063
2064 (define-public cl-ansi-text
2065 (sbcl-package->cl-source-package sbcl-cl-ansi-text))
2066
2067 (define-public ecl-cl-ansi-text
2068 (sbcl-package->ecl-package sbcl-cl-ansi-text))
2069
2070 (define-public sbcl-prove-asdf
2071 (let ((commit "4f9122bd393e63c5c70c1fba23070622317cfaa0"))
2072 (package
2073 (name "sbcl-prove-asdf")
2074 (version (git-version "1.0.0" "1" commit))
2075 (source
2076 (origin
2077 (method git-fetch)
2078 (uri (git-reference
2079 (url "https://github.com/fukamachi/prove")
2080 (commit commit)))
2081 (sha256
2082 (base32
2083 "07sbfw459z8bbjvx1qlmfa8qk2mvbjnnzi2mi0x72blaj8bkl4vc"))
2084 (file-name (git-file-name "prove" version))))
2085 (build-system asdf-build-system/sbcl)
2086 (arguments
2087 `(#:asd-file "prove-asdf.asd"))
2088 (synopsis "Test requirement for the Common Lisp 'prove' library")
2089 (description
2090 "Test requirement for the Common Lisp @command{prove} library.")
2091 (home-page "https://github.com/fukamachi/prove")
2092 (license license:expat))))
2093
2094 (define-public cl-prove-asdf
2095 (sbcl-package->cl-source-package sbcl-prove-asdf))
2096
2097 (define-public ecl-prove-asdf
2098 (sbcl-package->ecl-package sbcl-prove-asdf))
2099
2100 (define-public sbcl-prove
2101 (package
2102 (inherit sbcl-prove-asdf)
2103 (name "sbcl-prove")
2104 (inputs
2105 `(("alexandria" ,sbcl-alexandria)
2106 ("cl-ppcre" ,sbcl-cl-ppcre)
2107 ("cl-ansi-text" ,sbcl-cl-ansi-text)))
2108 (native-inputs
2109 `(("prove-asdf" ,sbcl-prove-asdf)))
2110 (arguments
2111 `(#:asd-file "prove.asd"))
2112 (synopsis "Yet another unit testing framework for Common Lisp")
2113 (description
2114 "This project was originally called @command{cl-test-more}.
2115 @command{prove} is yet another unit testing framework for Common Lisp. The
2116 advantages of @command{prove} are:
2117
2118 @itemize
2119 @item Various simple functions for testing and informative error messages
2120 @item ASDF integration
2121 @item Extensible test reporters
2122 @item Colorizes the report if it's available (note for SLIME)
2123 @item Reports test durations
2124 @end itemize\n")))
2125
2126 (define-public cl-prove
2127 (sbcl-package->cl-source-package sbcl-prove))
2128
2129 (define-public ecl-prove
2130 (sbcl-package->ecl-package sbcl-prove))
2131
2132 (define-public sbcl-proc-parse
2133 (let ((commit "ac3636834d561bdc2686c956dbd82494537285fd"))
2134 (package
2135 (name "sbcl-proc-parse")
2136 (version (git-version "0.0.0" "1" commit))
2137 (source
2138 (origin
2139 (method git-fetch)
2140 (uri (git-reference
2141 (url "https://github.com/fukamachi/proc-parse")
2142 (commit commit)))
2143 (sha256
2144 (base32
2145 "06rnl0h4cx6xv2wj3jczmmcxqn2703inmmvg1s4npbghmijsybfh"))
2146 (file-name (git-file-name "proc-parse" version))))
2147 (build-system asdf-build-system/sbcl)
2148 (inputs
2149 `(("alexandria" ,sbcl-alexandria)
2150 ("babel" ,sbcl-babel)))
2151 (native-inputs
2152 `(("prove" ,sbcl-prove)
2153 ("prove-asdf" ,sbcl-prove-asdf)))
2154 (arguments
2155 ;; TODO: Tests don't find "proc-parse-test", why?
2156 `(#:tests? #f))
2157 (synopsis "Procedural vector parser")
2158 (description
2159 "This is a string/octets parser library for Common Lisp with speed and
2160 readability in mind. Unlike other libraries, the code is not a
2161 pattern-matching-like, but a char-by-char procedural parser.")
2162 (home-page "https://github.com/fukamachi/proc-parse")
2163 (license license:bsd-2))))
2164
2165 (define-public cl-proc-parse
2166 (sbcl-package->cl-source-package sbcl-proc-parse))
2167
2168 (define-public ecl-proc-parse
2169 (sbcl-package->ecl-package sbcl-proc-parse))
2170
2171 (define-public sbcl-parse-float
2172 (let ((commit "2aae569f2a4b2eb3bfb5401a959425dcf151b09c"))
2173 (package
2174 (name "sbcl-parse-float")
2175 (version (git-version "0.0.0" "1" commit))
2176 (source
2177 (origin
2178 (method git-fetch)
2179 (uri (git-reference
2180 (url "https://github.com/soemraws/parse-float")
2181 (commit commit)))
2182 (sha256
2183 (base32
2184 "08xw8cchhmqcc0byng69m3f5a2izc9y2290jzz2k0qrbibp1fdk7"))
2185 (file-name (git-file-name "proc-parse" version))))
2186 (build-system asdf-build-system/sbcl)
2187 (inputs
2188 `(("alexandria" ,sbcl-alexandria)
2189 ("babel" ,sbcl-babel)))
2190 (native-inputs
2191 `(("prove" ,sbcl-prove)
2192 ("prove-asdf" ,sbcl-prove-asdf)))
2193 (arguments
2194 ;; TODO: Tests don't find "proc-parse-test", why?
2195 `(#:tests? #f))
2196 (synopsis "Parse a floating point value from a string in Common Lisp")
2197 (description
2198 "This package exports the following function to parse floating-point
2199 values from a string in Common Lisp.")
2200 (home-page "https://github.com/soemraws/parse-float")
2201 (license license:public-domain))))
2202
2203 (define-public cl-parse-float
2204 (sbcl-package->cl-source-package sbcl-parse-float))
2205
2206 (define-public ecl-parse-float
2207 (sbcl-package->ecl-package sbcl-parse-float))
2208
2209 (define-public sbcl-ascii-strings
2210 (let ((revision "1")
2211 (changeset "5048480a61243e6f1b02884012c8f25cdbee6d97"))
2212 (package
2213 (name "sbcl-ascii-strings")
2214 (version (string-append "0-" revision "." (string-take changeset 7)))
2215 (source
2216 (origin
2217 (method hg-fetch)
2218 (uri (hg-reference
2219 (url "https://bitbucket.org/vityok/cl-string-match/")
2220 (changeset changeset)))
2221 (sha256
2222 (base32
2223 "01wn5qx562w43ssy92xlfgv79w7p0nv0wbl76mpmba131n9ziq2y"))
2224 (file-name (git-file-name "cl-string-match" version))))
2225 (build-system asdf-build-system/sbcl)
2226 (inputs
2227 `(("alexandria" ,sbcl-alexandria)
2228 ("babel" ,sbcl-babel)))
2229 (arguments
2230 `(#:asd-file "ascii-strings.asd"))
2231 (synopsis "Operations on ASCII strings")
2232 (description
2233 "Operations on ASCII strings. Essentially this can be any kind of
2234 single-byte encoded strings.")
2235 (home-page "https://bitbucket.org/vityok/cl-string-match/")
2236 (license license:bsd-3))))
2237
2238 (define-public cl-ascii-strings
2239 (sbcl-package->cl-source-package sbcl-ascii-strings))
2240
2241 (define-public ecl-ascii-strings
2242 (sbcl-package->ecl-package sbcl-ascii-strings))
2243
2244 (define-public sbcl-simple-scanf
2245 (package
2246 (inherit sbcl-ascii-strings)
2247 (name "sbcl-simple-scanf")
2248 (inputs
2249 `(("alexandria" ,sbcl-alexandria)
2250 ("iterate" ,sbcl-iterate)
2251 ("proc-parse" ,sbcl-proc-parse)
2252 ("parse-float" ,sbcl-parse-float)))
2253 (arguments
2254 `(#:asd-file "simple-scanf.asd"))
2255 (synopsis "Simple scanf-like functionality implementation")
2256 (description
2257 "A simple scanf-like functionality implementation.")))
2258
2259 (define-public cl-simple-scanf
2260 (sbcl-package->cl-source-package sbcl-simple-scanf))
2261
2262 (define-public ecl-simple-scanf
2263 (sbcl-package->ecl-package sbcl-simple-scanf))
2264
2265 (define-public sbcl-cl-string-match
2266 (package
2267 (inherit sbcl-ascii-strings)
2268 (name "sbcl-cl-string-match")
2269 (inputs
2270 `(("alexandria" ,sbcl-alexandria)
2271 ("ascii-strings" ,sbcl-ascii-strings)
2272 ("yacc" ,sbcl-cl-yacc)
2273 ("jpl-util" ,sbcl-jpl-util)
2274 ("jpl-queues" ,sbcl-jpl-queues)
2275 ("mgl-pax" ,sbcl-mgl-pax)
2276 ("iterate" ,sbcl-iterate)))
2277 ;; TODO: Tests are not evaluated properly.
2278 (native-inputs
2279 ;; For testing:
2280 `(("lisp-unit" ,sbcl-lisp-unit)
2281 ("simple-scanf" ,sbcl-simple-scanf)))
2282 (arguments
2283 `(#:tests? #f
2284 #:asd-file "cl-string-match.asd"))
2285 (synopsis "Portable, dependency-free set of utilities to manipulate strings in Common Lisp")
2286 (description
2287 "@command{cl-strings} is a small, portable, dependency-free set of
2288 utilities that make it even easier to manipulate text in Common Lisp. It has
2289 100% test coverage and works at least on sbcl, ecl, ccl, abcl and clisp.")))
2290
2291 (define-public cl-string-match
2292 (sbcl-package->cl-source-package sbcl-cl-string-match))
2293
2294 (define-public ecl-cl-string-match
2295 (sbcl-package->ecl-package sbcl-cl-string-match))
2296
2297 (define-public sbcl-ptester
2298 (package
2299 (name "sbcl-ptester")
2300 (version "20160929")
2301 (source
2302 (origin
2303 (method url-fetch)
2304 (uri (string-append "http://beta.quicklisp.org/archive/ptester/"
2305 (date->string (string->date version "~Y~m~d") "~Y-~m-~d")
2306 "/ptester-"
2307 version
2308 "-git.tgz"))
2309 (sha256
2310 (base32
2311 "04rlq1zljhxc65pm31bah3sq3as24l0sdivz440s79qlnnyh13hz"))))
2312 (build-system asdf-build-system/sbcl)
2313 (home-page "http://quickdocs.org/ptester/")
2314 (synopsis "Portable test harness package")
2315 (description
2316 "@command{ptester} is a portable testing framework based on Franz's
2317 tester module.")
2318 (license license:lgpl3+)))
2319
2320 (define-public cl-ptester
2321 (sbcl-package->cl-source-package sbcl-ptester))
2322
2323 (define-public ecl-ptester
2324 (sbcl-package->ecl-package sbcl-ptester))
2325
2326 (define-public sbcl-puri
2327 (package
2328 (name "sbcl-puri")
2329 (version "20180228")
2330 (source
2331 (origin
2332 (method url-fetch)
2333 (uri (string-append "http://beta.quicklisp.org/archive/puri/"
2334 (date->string (string->date version "~Y~m~d") "~Y-~m-~d")
2335 "/puri-"
2336 version
2337 "-git.tgz"))
2338 (sha256
2339 (base32
2340 "1s4r5adrjy5asry45xbcbklxhdjydvf6n55z897nvyw33bigrnbz"))))
2341 (build-system asdf-build-system/sbcl)
2342 ;; REVIEW: Webiste down?
2343 (native-inputs
2344 `(("ptester" ,sbcl-ptester)))
2345 (home-page "http://files.kpe.io/puri/")
2346 (synopsis "Portable URI Library")
2347 (description
2348 "This is portable Universal Resource Identifier library for Common Lisp
2349 programs. It parses URI according to the RFC 2396 specification")
2350 (license license:lgpl3+)))
2351
2352 (define-public cl-puri
2353 (sbcl-package->cl-source-package sbcl-puri))
2354
2355 (define-public ecl-puri
2356 (sbcl-package->ecl-package sbcl-puri))
2357
2358 (define-public sbcl-queues
2359 (let ((commit "47d4da65e9ea20953b74aeeab7e89a831b66bc94"))
2360 (package
2361 (name "sbcl-queues")
2362 (version (git-version "0.0.0" "1" commit))
2363 (source
2364 (origin
2365 (method git-fetch)
2366 (uri (git-reference
2367 (url "https://github.com/oconnore/queues")
2368 (commit commit)))
2369 (file-name (git-file-name "queues" version))
2370 (sha256
2371 (base32
2372 "0wdhfnzi4v6d97pggzj2aw55si94w4327br94jrmyvwf351wqjvv"))))
2373 (build-system asdf-build-system/sbcl)
2374 (home-page "https://github.com/oconnore/queues")
2375 (synopsis "Common Lisp queue library")
2376 (description
2377 "This is a simple queue library for Common Lisp with features such as
2378 non-consing thread safe queues and fibonacci priority queues.")
2379 (license license:expat))))
2380
2381 (define-public cl-queues
2382 (sbcl-package->cl-source-package sbcl-queues))
2383
2384 (define-public ecl-queues
2385 (sbcl-package->ecl-package sbcl-queues))
2386
2387 (define-public sbcl-queues.simple-queue
2388 (package
2389 (inherit sbcl-queues)
2390 (name "sbcl-queues.simple-queue")
2391 (inputs
2392 `(("sbcl-queues" ,sbcl-queues)))
2393 (arguments
2394 `(#:asd-file "queues.simple-queue.asd"))
2395 (synopsis "Simple queue implementation")
2396 (description
2397 "This is a simple queue library for Common Lisp with features such as
2398 non-consing thread safe queues and fibonacci priority queues.")
2399 (license license:expat)))
2400
2401 (define-public cl-queues.simple-queue
2402 (sbcl-package->cl-source-package sbcl-queues.simple-queue))
2403
2404 (define-public ecl-queues.simple-queue
2405 (sbcl-package->ecl-package sbcl-queues.simple-queue))
2406
2407 (define-public sbcl-queues.simple-cqueue
2408 (package
2409 (inherit sbcl-queues)
2410 (name "sbcl-queues.simple-cqueue")
2411 (inputs
2412 `(("sbcl-queues" ,sbcl-queues)
2413 ("sbcl-queues.simple-queue" ,sbcl-queues.simple-queue)
2414 ("bordeaux-threads" ,sbcl-bordeaux-threads)))
2415 (arguments
2416 `(#:asd-file "queues.simple-cqueue.asd"))
2417 (synopsis "Thread safe queue implementation")
2418 (description
2419 "This is a simple queue library for Common Lisp with features such as
2420 non-consing thread safe queues and fibonacci priority queues.")
2421 (license license:expat)))
2422
2423 (define-public cl-queues.simple-cqueue
2424 (sbcl-package->cl-source-package sbcl-queues.simple-cqueue))
2425
2426 (define-public ecl-queues.simple-cqueue
2427 (sbcl-package->ecl-package sbcl-queues.simple-cqueue))
2428
2429 (define-public sbcl-queues.priority-queue
2430 (package
2431 (inherit sbcl-queues)
2432 (name "sbcl-queues.priority-queue")
2433 (inputs
2434 `(("sbcl-queues" ,sbcl-queues)))
2435 (arguments
2436 `(#:asd-file "queues.priority-queue.asd"))
2437 (synopsis "Priority queue (Fibonacci) implementation")
2438 (description
2439 "This is a simple queue library for Common Lisp with features such as
2440 non-consing thread safe queues and fibonacci priority queues.")
2441 (license license:expat)))
2442
2443 (define-public cl-queues.priority-queue
2444 (sbcl-package->cl-source-package sbcl-queues.priority-queue))
2445
2446 (define-public ecl-queues.priority-queue
2447 (sbcl-package->ecl-package sbcl-queues.priority-queue))
2448
2449 (define-public sbcl-queues.priority-cqueue
2450 (package
2451 (inherit sbcl-queues)
2452 (name "sbcl-queues.priority-cqueue")
2453 (inputs
2454 `(("sbcl-queues" ,sbcl-queues)
2455 ("sbcl-queues.priority-queue" ,sbcl-queues.priority-queue)
2456 ("bordeaux-threads" ,sbcl-bordeaux-threads)))
2457 (arguments
2458 `(#:asd-file "queues.priority-cqueue.asd"))
2459 (synopsis "Thread safe fibonacci priority queue implementation")
2460 (description
2461 "This is a simple queue library for Common Lisp with features such as
2462 non-consing thread safe queues and fibonacci priority queues.")
2463 (license license:expat)))
2464
2465 (define-public cl-queues.priority-cqueue
2466 (sbcl-package->cl-source-package sbcl-queues.priority-cqueue))
2467
2468 (define-public ecl-queues.priority-cqueue
2469 (sbcl-package->ecl-package sbcl-queues.priority-cqueue))
2470
2471 (define sbcl-cffi-bootstrap
2472 (package
2473 (name "sbcl-cffi-bootstrap")
2474 (version "0.19.0")
2475 (source
2476 (origin
2477 (method git-fetch)
2478 (uri (git-reference
2479 (url "https://github.com/cffi/cffi.git")
2480 (commit (string-append "v" version))))
2481 (file-name (git-file-name "cffi-bootstrap" version))
2482 (sha256
2483 (base32 "09sfgc6r7ihmbkwfpvkq5fxc7h45cabpvgbvs47i5cvnmv3k72xy"))))
2484 (build-system asdf-build-system/sbcl)
2485 (inputs
2486 `(("libffi" ,libffi)
2487 ("alexandria" ,sbcl-alexandria)
2488 ("babel" ,sbcl-babel)
2489 ("trivial-features" ,sbcl-trivial-features)))
2490 (native-inputs
2491 `(("pkg-config" ,pkg-config)))
2492 (arguments
2493 '(#:phases
2494 (modify-phases %standard-phases
2495 (add-after 'unpack 'fix-paths
2496 (lambda* (#:key inputs #:allow-other-keys)
2497 (substitute* "libffi/libffi.lisp"
2498 (("libffi.so.6" all) (string-append
2499 (assoc-ref inputs "libffi")
2500 "/lib/" all)))
2501 (substitute* "toolchain/c-toolchain.lisp"
2502 (("\"cc\"") (format #f "~S" (which "gcc")))))))
2503 #:asd-system-name "cffi"
2504 #:tests? #f))
2505 (home-page "https://common-lisp.net/project/cffi/")
2506 (synopsis "Common Foreign Function Interface for Common Lisp")
2507 (description "The Common Foreign Function Interface (CFFI)
2508 purports to be a portable foreign function interface for Common Lisp.
2509 The CFFI library is composed of a Lisp-implementation-specific backend
2510 in the CFFI-SYS package, and a portable frontend in the CFFI
2511 package.")
2512 (license license:expat)))
2513
2514 (define-public sbcl-cffi-toolchain
2515 (package
2516 (inherit sbcl-cffi-bootstrap)
2517 (name "sbcl-cffi-toolchain")
2518 (inputs
2519 `(("libffi" ,libffi)
2520 ("sbcl-cffi" ,sbcl-cffi-bootstrap)))
2521 (arguments
2522 (substitute-keyword-arguments (package-arguments sbcl-cffi-bootstrap)
2523 ((#:asd-system-name _) #f)
2524 ((#:tests? _) #t)))))
2525
2526 (define-public sbcl-cffi-libffi
2527 (package
2528 (inherit sbcl-cffi-toolchain)
2529 (name "sbcl-cffi-libffi")
2530 (inputs
2531 `(("cffi" ,sbcl-cffi-bootstrap)
2532 ("cffi-grovel" ,sbcl-cffi-grovel)
2533 ("trivial-features" ,sbcl-trivial-features)
2534 ("libffi" ,libffi)))))
2535
2536 (define-public sbcl-cffi-grovel
2537 (package
2538 (inherit sbcl-cffi-toolchain)
2539 (name "sbcl-cffi-grovel")
2540 (inputs
2541 `(("libffi" ,libffi)
2542 ("cffi" ,sbcl-cffi-bootstrap)
2543 ("cffi-toolchain" ,sbcl-cffi-toolchain)
2544 ("alexandria" ,sbcl-alexandria)))
2545 (arguments
2546 (substitute-keyword-arguments (package-arguments sbcl-cffi-toolchain)
2547 ((#:phases phases)
2548 `(modify-phases ,phases
2549 (add-after 'build 'install-headers
2550 (lambda* (#:key outputs #:allow-other-keys)
2551 (install-file "grovel/common.h"
2552 (string-append
2553 (assoc-ref outputs "out")
2554 "/include/grovel"))))))))))
2555
2556 (define-public sbcl-cffi
2557 (package
2558 (inherit sbcl-cffi-toolchain)
2559 (name "sbcl-cffi")
2560 (inputs (package-inputs sbcl-cffi-bootstrap))
2561 (native-inputs
2562 `(("cffi-grovel" ,sbcl-cffi-grovel)
2563 ("cffi-libffi" ,sbcl-cffi-libffi)
2564 ("rt" ,sbcl-rt)
2565 ("bordeaux-threads" ,sbcl-bordeaux-threads)
2566 ,@(package-native-inputs sbcl-cffi-bootstrap)))))
2567
2568 (define-public cl-cffi
2569 (sbcl-package->cl-source-package sbcl-cffi))
2570
2571 (define-public sbcl-cl-sqlite
2572 (let ((commit "c738e66d4266ef63a1debc4ef4a1b871a068c112"))
2573 (package
2574 (name "sbcl-cl-sqlite")
2575 (version (git-version "0.2" "1" commit))
2576 (source
2577 (origin
2578 (method git-fetch)
2579 (uri (git-reference
2580 (url "https://github.com/dmitryvk/cl-sqlite")
2581 (commit commit)))
2582 (file-name (git-file-name "cl-sqlite" version))
2583 (sha256
2584 (base32
2585 "1ng45k1hdb84sqjryrfx93g66bsbybmpy301wd0fdybnc5jzr36q"))))
2586 (build-system asdf-build-system/sbcl)
2587 (inputs
2588 `(("iterate" ,sbcl-iterate)
2589 ("cffi" ,sbcl-cffi)
2590 ("sqlite" ,sqlite)))
2591 (native-inputs
2592 `(("fiveam" ,sbcl-fiveam)
2593 ("bordeaux-threads" ,sbcl-bordeaux-threads)))
2594 (arguments
2595 `(#:tests? #f ; Upstream seems to have issues with tests: https://github.com/dmitryvk/cl-sqlite/issues/7
2596 #:asd-file "sqlite.asd"
2597 #:asd-system-name "sqlite"
2598 #:phases
2599 (modify-phases %standard-phases
2600 (add-after 'unpack 'fix-paths
2601 (lambda* (#:key inputs #:allow-other-keys)
2602 (substitute* "sqlite-ffi.lisp"
2603 (("libsqlite3" all) (string-append
2604 (assoc-ref inputs "sqlite")"/lib/" all))))))))
2605 (home-page "https://common-lisp.net/project/cl-sqlite/")
2606 (synopsis "Common Lisp binding for SQLite")
2607 (description
2608 "The @command{cl-sqlite} package is an interface to the SQLite embedded
2609 relational database engine.")
2610 (license license:public-domain))))
2611
2612 (define-public cl-sqlite
2613 (sbcl-package->cl-source-package sbcl-cl-sqlite))
2614
2615 (define-public sbcl-parenscript
2616 (let ((commit "061d8e286c81c3f45c84fb2b11ee7d83f590a8f8"))
2617 (package
2618 (name "sbcl-parenscript")
2619 (version (git-version "2.6" "1" commit))
2620 (source
2621 (origin
2622 (method git-fetch)
2623 (uri (git-reference
2624 (url "https://gitlab.common-lisp.net/parenscript/parenscript")
2625 (commit commit)))
2626 (file-name (git-file-name "parenscript" version))
2627 (sha256
2628 (base32
2629 "1kbhgsjbikc73m5cwdp4d4fdafyqcr1b7b630qjrziql0nh6mi3k"))))
2630 (build-system asdf-build-system/sbcl)
2631 (inputs
2632 `(("cl-ppcre" ,sbcl-cl-ppcre)
2633 ("anaphora" ,sbcl-anaphora)
2634 ("named-readtables" ,sbcl-named-readtables)))
2635 (home-page "https://common-lisp.net/project/parenscript/")
2636 (synopsis "Translator from a subset of Common Lisp to JavaScript")
2637 (description
2638 "Parenscript is a translator from an extended subset of Common Lisp to
2639 JavaScript. Parenscript code can run almost identically on both the
2640 browser (as JavaScript) and server (as Common Lisp).
2641
2642 Parenscript code is treated the same way as Common Lisp code, making the full
2643 power of Lisp macros available for JavaScript. This provides a web
2644 development environment that is unmatched in its ability to reduce code
2645 duplication and provide advanced meta-programming facilities to web
2646 developers.
2647
2648 At the same time, Parenscript is different from almost all other \"language
2649 X\" to JavaScript translators in that it imposes almost no overhead:
2650
2651 @itemize
2652 @item No run-time dependencies: Any piece of Parenscript code is runnable
2653 as-is. There are no JavaScript files to include.
2654 @item Native types: Parenscript works entirely with native JavaScript data
2655 types. There are no new types introduced, and object prototypes are not
2656 touched.
2657 @item Native calling convention: Any JavaScript code can be called without the
2658 need for bindings. Likewise, Parenscript can be used to make efficient,
2659 self-contained JavaScript libraries.
2660 @item Readable code: Parenscript generates concise, formatted, idiomatic
2661 JavaScript code. Identifier names are preserved. This enables seamless
2662 debugging in tools like Firebug.
2663 @item Efficiency: Parenscript introduces minimal overhead for advanced Common
2664 Lisp features. The generated code is almost as fast as hand-written
2665 JavaScript.
2666 @end itemize\n")
2667 (license license:bsd-3))))
2668
2669 (define-public cl-parenscript
2670 (sbcl-package->cl-source-package sbcl-parenscript))
2671
2672 (define-public ecl-parenscript
2673 (sbcl-package->ecl-package sbcl-parenscript))
2674
2675 (define-public sbcl-cl-json
2676 (let ((commit "6dfebb9540bfc3cc33582d0c03c9ec27cb913e79"))
2677 (package
2678 (name "sbcl-cl-json")
2679 (version (git-version "0.5" "1" commit))
2680 (source
2681 (origin
2682 (method git-fetch)
2683 (uri (git-reference
2684 (url "https://github.com/hankhero/cl-json")
2685 (commit commit)))
2686 (file-name (git-file-name "cl-json" version))
2687 (sha256
2688 (base32
2689 "0fx3m3x3s5ji950yzpazz4s0img3l6b3d6l3jrfjv0lr702496lh"))))
2690 (build-system asdf-build-system/sbcl)
2691 (native-inputs
2692 `(("fiveam" ,sbcl-fiveam)))
2693 (home-page "https://github.com/hankhero/cl-json")
2694 (synopsis "JSON encoder and decoder for Common-Lisp")
2695 (description
2696 "@command{cl-json} provides an encoder of Lisp objects to JSON format
2697 and a corresponding decoder of JSON data to Lisp objects. Both the encoder
2698 and the decoder are highly customizable; at the same time, the default
2699 settings ensure a very simple mode of operation, similar to that provided by
2700 @command{yason} or @command{st-json}.")
2701 (license license:expat))))
2702
2703 (define-public cl-json
2704 (sbcl-package->cl-source-package sbcl-cl-json))
2705
2706 (define-public ecl-cl-json
2707 (sbcl-package->ecl-package sbcl-cl-json))
2708
2709 (define-public sbcl-unix-opts
2710 (package
2711 (name "sbcl-unix-opts")
2712 (version "0.1.7")
2713 (source
2714 (origin
2715 (method git-fetch)
2716 (uri (git-reference
2717 (url "https://github.com/libre-man/unix-opts")
2718 (commit version)))
2719 (file-name (git-file-name "unix-opts" version))
2720 (sha256
2721 (base32
2722 "08djdi1ard09fijb7w9bdmhmwd98b1hzmcnjw9fqjiqa0g3b44rr"))))
2723 (build-system asdf-build-system/sbcl)
2724 (home-page "https://github.com/hankhero/cl-json")
2725 (synopsis "Unix-style command line options parser")
2726 (description
2727 "This is a minimalistic parser of command line options. The main
2728 advantage of the library is the ability to concisely define command line
2729 options once and then use this definition for parsing and extraction of
2730 command line arguments, as well as printing description of command line
2731 options (you get --help for free). This way you don't need to repeat
2732 yourself. Also, @command{unix-opts} doesn't depend on anything and allows to
2733 precisely control behavior of the parser via Common Lisp restarts.")
2734 (license license:expat)))
2735
2736 (define-public cl-unix-opts
2737 (sbcl-package->cl-source-package sbcl-unix-opts))
2738
2739 (define-public ecl-unix-opts
2740 (sbcl-package->ecl-package sbcl-unix-opts))
2741
2742 (define-public sbcl-trivial-garbage
2743 (package
2744 (name "sbcl-trivial-garbage")
2745 (version "0.21")
2746 (source
2747 (origin
2748 (method git-fetch)
2749 (uri (git-reference
2750 (url "https://github.com/trivial-garbage/trivial-garbage.git")
2751 (commit (string-append "v" version))))
2752 (file-name (git-file-name "trivial-garbage" version))
2753 (sha256
2754 (base32 "0122jicfg7pca1wxw8zak1n92h5friqy60988ns0ysksj3fphw9n"))))
2755 (build-system asdf-build-system/sbcl)
2756 (native-inputs
2757 `(("rt" ,sbcl-rt)))
2758 (home-page "https://common-lisp.net/project/trivial-garbage/")
2759 (synopsis "Portable GC-related APIs for Common Lisp")
2760 (description "@command{trivial-garbage} provides a portable API to
2761 finalizers, weak hash-tables and weak pointers on all major implementations of
2762 the Common Lisp programming language.")
2763 (license license:public-domain)))
2764
2765 (define-public cl-trivial-garbage
2766 (sbcl-package->cl-source-package sbcl-trivial-garbage))
2767
2768 (define-public ecl-trivial-garbage
2769 (sbcl-package->ecl-package sbcl-trivial-garbage))
2770
2771 (define-public sbcl-closer-mop
2772 (let ((commit "fac29ce90e3a46e1fc6cf182190e193526fa9dbc"))
2773 (package
2774 (name "sbcl-closer-mop")
2775 (version (git-version "1.0.0" "1" commit))
2776 (source
2777 (origin
2778 (method git-fetch)
2779 (uri (git-reference
2780 (url "https://github.com/pcostanza/closer-mop")
2781 (commit commit)))
2782 (sha256
2783 (base32 "0hvh77y869h8fg9di5snyg85fxq6fdh9gj1igmx1g6j6j5x915dl"))
2784 (file-name (git-file-name "closer-mop" version ))))
2785 (build-system asdf-build-system/sbcl)
2786 (home-page "https://github.com/pcostanza/closer-mop")
2787 (synopsis "Rectifies absent or incorrect CLOS MOP features")
2788 (description "Closer to MOP is a compatibility layer that rectifies many
2789 of the absent or incorrect CLOS MOP features across a broad range of Common
2790 Lisp implementations.")
2791 (license license:expat))))
2792
2793 (define-public cl-closer-mop
2794 (sbcl-package->cl-source-package sbcl-closer-mop))
2795
2796 (define-public ecl-closer-mop
2797 (sbcl-package->ecl-package sbcl-closer-mop))
2798
2799 (define sbcl-cl-cffi-gtk-boot0
2800 (let ((commit "29443c5aaca975709df8025c4649366d882033cb"))
2801 (package
2802 (name "sbcl-cl-cffi-gtk-boot0")
2803 (version (git-version "0.11.2" "1" commit))
2804 (source
2805 (origin
2806 (method git-fetch)
2807 (uri (git-reference
2808 (url "https://github.com/Ferada/cl-cffi-gtk/")
2809 (commit commit)))
2810 (file-name (git-file-name "cl-cffi-gtk" version))
2811 (sha256
2812 (base32
2813 "0f6s92sf8xyzh1yksqx8bsy1sv0zmy0c13j3b8bavaba5hlxpxah"))))
2814 (build-system asdf-build-system/sbcl)
2815 (inputs
2816 `(("iterate" ,sbcl-iterate)
2817 ("cffi" ,sbcl-cffi)
2818 ("trivial-features" ,sbcl-trivial-features)))
2819 (home-page "https://github.com/Ferada/cl-cffi-gtk/")
2820 (synopsis "Common Lisp binding for GTK+3")
2821 (description
2822 "@command{cl-cffi-gtk} is a Lisp binding to GTK+ 3 (GIMP Toolkit) which
2823 is a library for creating graphical user interfaces.")
2824 (license license:lgpl3))))
2825
2826 (define-public sbcl-cl-cffi-gtk-glib
2827 (package
2828 (inherit sbcl-cl-cffi-gtk-boot0)
2829 (name "sbcl-cl-cffi-gtk-glib")
2830 (inputs
2831 `(("glib" ,glib)
2832 ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
2833 (arguments
2834 `(#:asd-file "glib/cl-cffi-gtk-glib.asd"
2835 #:phases
2836 (modify-phases %standard-phases
2837 (add-after 'unpack 'fix-paths
2838 (lambda* (#:key inputs #:allow-other-keys)
2839 (substitute* "glib/glib.init.lisp"
2840 (("libglib|libgthread" all) (string-append
2841 (assoc-ref inputs "glib") "/lib/" all))))))))))
2842
2843 (define-public sbcl-cl-cffi-gtk-gobject
2844 (package
2845 (inherit sbcl-cl-cffi-gtk-boot0)
2846 (name "sbcl-cl-cffi-gtk-gobject")
2847 (inputs
2848 `(("glib" ,glib)
2849 ("cl-cffi-gtk-glib" ,sbcl-cl-cffi-gtk-glib)
2850 ("trivial-garbage" ,sbcl-trivial-garbage)
2851 ("bordeaux-threads" ,sbcl-bordeaux-threads)
2852 ("closer-mop" ,sbcl-closer-mop)
2853 ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
2854 (arguments
2855 `(#:asd-file "gobject/cl-cffi-gtk-gobject.asd"
2856 #:phases
2857 (modify-phases %standard-phases
2858 (add-after 'unpack 'fix-paths
2859 (lambda* (#:key inputs #:allow-other-keys)
2860 (substitute* "gobject/gobject.init.lisp"
2861 (("libgobject" all) (string-append
2862 (assoc-ref inputs "glib") "/lib/" all))))))))))
2863
2864 (define-public sbcl-cl-cffi-gtk-gio
2865 (package
2866 (inherit sbcl-cl-cffi-gtk-boot0)
2867 (name "sbcl-cl-cffi-gtk-gio")
2868 (inputs
2869 `(("glib" ,glib)
2870 ("cl-cffi-gtk-glib" ,sbcl-cl-cffi-gtk-glib)
2871 ("cl-cffi-gtk-gobject" ,sbcl-cl-cffi-gtk-gobject)
2872 ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
2873 (arguments
2874 `(#:asd-file "gio/cl-cffi-gtk-gio.asd"
2875 #:phases
2876 (modify-phases %standard-phases
2877 (add-after 'unpack 'fix-paths
2878 (lambda* (#:key inputs #:allow-other-keys)
2879 (substitute* "gio/gio.init.lisp"
2880 (("libgio" all)
2881 (string-append
2882 (assoc-ref inputs "glib") "/lib/" all))))))))))
2883
2884 (define-public sbcl-cl-cffi-gtk-cairo
2885 (package
2886 (inherit sbcl-cl-cffi-gtk-boot0)
2887 (name "sbcl-cl-cffi-gtk-cairo")
2888 (inputs
2889 `(("cairo" ,cairo)
2890 ("cl-cffi-gtk-glib" ,sbcl-cl-cffi-gtk-glib)
2891 ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
2892 (arguments
2893 `(#:asd-file "cairo/cl-cffi-gtk-cairo.asd"
2894 #:phases
2895 (modify-phases %standard-phases
2896 (add-after 'unpack 'fix-paths
2897 (lambda* (#:key inputs #:allow-other-keys)
2898 (substitute* "cairo/cairo.init.lisp"
2899 (("libcairo" all)
2900 (string-append
2901 (assoc-ref inputs "cairo") "/lib/" all))))))))))
2902
2903 (define-public sbcl-cl-cffi-gtk-pango
2904 (package
2905 (inherit sbcl-cl-cffi-gtk-boot0)
2906 (name "sbcl-cl-cffi-gtk-pango")
2907 (inputs
2908 `(("pango" ,pango)
2909 ("cl-cffi-gtk-glib" ,sbcl-cl-cffi-gtk-glib)
2910 ("cl-cffi-gtk-gobject" ,sbcl-cl-cffi-gtk-gobject)
2911 ("cl-cffi-gtk-cairo" ,sbcl-cl-cffi-gtk-cairo)
2912 ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
2913 (arguments
2914 `(#:asd-file "pango/cl-cffi-gtk-pango.asd"
2915 #:phases
2916 (modify-phases %standard-phases
2917 (add-after 'unpack 'fix-paths
2918 (lambda* (#:key inputs #:allow-other-keys)
2919 (substitute* "pango/pango.init.lisp"
2920 (("libpango" all)
2921 (string-append
2922 (assoc-ref inputs "pango") "/lib/" all))))))))))
2923
2924 (define-public sbcl-cl-cffi-gtk-gdk-pixbuf
2925 (package
2926 (inherit sbcl-cl-cffi-gtk-boot0)
2927 (name "sbcl-cl-cffi-gtk-gdk-pixbuf")
2928 (inputs
2929 `(("gdk-pixbuf" ,gdk-pixbuf)
2930 ("cl-cffi-gtk-gobject" ,sbcl-cl-cffi-gtk-gobject)
2931 ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
2932 (arguments
2933 `(#:asd-file "gdk-pixbuf/cl-cffi-gtk-gdk-pixbuf.asd"
2934 #:phases
2935 (modify-phases %standard-phases
2936 (add-after 'unpack 'fix-paths
2937 (lambda* (#:key inputs #:allow-other-keys)
2938 (substitute* "gdk-pixbuf/gdk-pixbuf.init.lisp"
2939 (("libgdk_pixbuf" all)
2940 (string-append
2941 (assoc-ref inputs "gdk-pixbuf") "/lib/" all))))))))))
2942
2943 (define-public sbcl-cl-cffi-gtk-gdk
2944 (package
2945 (inherit sbcl-cl-cffi-gtk-boot0)
2946 (name "sbcl-cl-cffi-gtk-gdk")
2947 (inputs
2948 `(("gtk" ,gtk+)
2949 ("cl-cffi-gtk-gobject" ,sbcl-cl-cffi-gtk-gobject)
2950 ("cl-cffi-gtk-gio" ,sbcl-cl-cffi-gtk-gio)
2951 ("cl-cffi-gtk-gdk-pixbuf" ,sbcl-cl-cffi-gtk-gdk-pixbuf)
2952 ("cl-cffi-gtk-cairo" ,sbcl-cl-cffi-gtk-cairo)
2953 ("cl-cffi-gtk-pango" ,sbcl-cl-cffi-gtk-pango)
2954 ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
2955 (arguments
2956 `(#:asd-file "gdk/cl-cffi-gtk-gdk.asd"
2957 #:phases
2958 (modify-phases %standard-phases
2959 (add-after 'unpack 'fix-paths
2960 (lambda* (#:key inputs #:allow-other-keys)
2961 (substitute* "gdk/gdk.init.lisp"
2962 (("libgdk" all)
2963 (string-append
2964 (assoc-ref inputs "gtk") "/lib/" all)))
2965 (substitute* "gdk/gdk.package.lisp"
2966 (("libgtk" all)
2967 (string-append
2968 (assoc-ref inputs "gtk") "/lib/" all))))))))))
2969
2970 (define-public sbcl-cl-cffi-gtk
2971 (package
2972 (inherit sbcl-cl-cffi-gtk-boot0)
2973 (name "sbcl-cl-cffi-gtk")
2974 (inputs
2975 `(("cl-cffi-gtk-glib" ,sbcl-cl-cffi-gtk-glib)
2976 ("cl-cffi-gtk-gobject" ,sbcl-cl-cffi-gtk-gobject)
2977 ("cl-cffi-gtk-gio" ,sbcl-cl-cffi-gtk-gio)
2978 ("cl-cffi-gtk-gdk" ,sbcl-cl-cffi-gtk-gdk)
2979 ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
2980 (native-inputs
2981 `(("fiveam" ,sbcl-fiveam)))
2982 (arguments
2983 `(#:asd-file "gtk/cl-cffi-gtk.asd"
2984 #:test-asd-file "test/cl-cffi-gtk-test.asd"
2985 ;; TODO: Tests fail with memory fault.
2986 ;; See https://github.com/Ferada/cl-cffi-gtk/issues/24.
2987 #:tests? #f))))
2988
2989 (define-public cl-cffi-gtk
2990 (sbcl-package->cl-source-package sbcl-cl-cffi-gtk))
2991
2992 (define-public sbcl-cl-webkit
2993 (let ((commit "cd2a9008e0c152e54755e8a7f07b050fe36bab31"))
2994 (package
2995 (name "sbcl-cl-webkit")
2996 (version (git-version "2.4" "1" commit))
2997 (source
2998 (origin
2999 (method git-fetch)
3000 (uri (git-reference
3001 (url "https://github.com/jmercouris/cl-webkit")
3002 (commit commit)))
3003 (file-name (git-file-name "cl-webkit" version))
3004 (sha256
3005 (base32
3006 "0f5lyn9i7xrn3g1bddga377mcbawkbxydijpg389q4n04gqj0vwf"))))
3007 (build-system asdf-build-system/sbcl)
3008 (inputs
3009 `(("cffi" ,sbcl-cffi)
3010 ("cl-cffi-gtk" ,sbcl-cl-cffi-gtk)
3011 ("webkitgtk" ,webkitgtk)))
3012 (arguments
3013 `(#:asd-file "webkit2/cl-webkit2.asd"
3014 #:asd-system-name "cl-webkit2"
3015 #:phases
3016 (modify-phases %standard-phases
3017 (add-after 'unpack 'fix-paths
3018 (lambda* (#:key inputs #:allow-other-keys)
3019 (substitute* "webkit2/webkit2.init.lisp"
3020 (("libwebkit2gtk" all)
3021 (string-append
3022 (assoc-ref inputs "webkitgtk") "/lib/" all))))))))
3023 (home-page "https://github.com/jmercouris/cl-webkit")
3024 (synopsis "Binding to WebKitGTK+ for Common Lisp")
3025 (description
3026 "@command{cl-webkit} is a binding to WebKitGTK+ for Common Lisp,
3027 currently targeting WebKit version 2. The WebKitGTK+ library adds web
3028 browsing capabilities to an application, leveraging the full power of the
3029 WebKit browsing engine.")
3030 (license license:expat))))
3031
3032 (define-public cl-webkit
3033 (sbcl-package->cl-source-package sbcl-cl-webkit))
3034
3035 (define-public sbcl-lparallel
3036 (package
3037 (name "sbcl-lparallel")
3038 (version "2.8.4")
3039 (source
3040 (origin
3041 (method git-fetch)
3042 (uri (git-reference
3043 (url "https://github.com/lmj/lparallel/")
3044 (commit (string-append "lparallel-" version))))
3045 (file-name (git-file-name "lparallel" version))
3046 (sha256
3047 (base32
3048 "0g0aylrbbrqsz0ahmwhvnk4cmc2931fllbpcfgzsprwnqqd7vwq9"))))
3049 (build-system asdf-build-system/sbcl)
3050 (inputs
3051 `(("alexandria" ,sbcl-alexandria)
3052 ("bordeaux-threads" ,sbcl-bordeaux-threads)
3053 ("trivial-garbage" ,sbcl-trivial-garbage)))
3054 (home-page "https://lparallel.org/")
3055 (synopsis "Parallelism for Common Lisp")
3056 (description
3057 "@command{lparallel} is a library for parallel programming in Common
3058 Lisp, featuring:
3059
3060 @itemize
3061 @item a simple model of task submission with receiving queue,
3062 @item constructs for expressing fine-grained parallelism,
3063 @item asynchronous condition handling across thread boundaries,
3064 @item parallel versions of map, reduce, sort, remove, and many others,
3065 @item promises, futures, and delayed evaluation constructs,
3066 @item computation trees for parallelizing interconnected tasks,
3067 @item bounded and unbounded FIFO queues,
3068 @item high and low priority tasks,
3069 @item task killing by category,
3070 @item integrated timeouts.
3071 @end itemize\n")
3072 (license license:expat)))
3073
3074 (define-public cl-lparallel
3075 (sbcl-package->cl-source-package sbcl-lparallel))
3076
3077 (define-public ecl-lparallel
3078 (sbcl-package->ecl-package sbcl-lparallel))
3079
3080 (define-public sbcl-cl-markup
3081 (let ((commit "e0eb7debf4bdff98d1f49d0f811321a6a637b390"))
3082 (package
3083 (name "sbcl-cl-markup")
3084 (version (git-version "0.1" "1" commit))
3085 (source
3086 (origin
3087 (method git-fetch)
3088 (uri (git-reference
3089 (url "https://github.com/arielnetworks/cl-markup/")
3090 (commit commit)))
3091 (file-name (git-file-name "cl-markup" version))
3092 (sha256
3093 (base32
3094 "10l6k45971dl13fkdmva7zc6i453lmq9j4xax2ci6pjzlc6xjhp7"))))
3095 (build-system asdf-build-system/sbcl)
3096 (home-page "https://github.com/arielnetworks/cl-markup/")
3097 (synopsis "Markup generation library for Common Lisp")
3098 (description
3099 "A modern markup generation library for Common Lisp that features:
3100
3101 @itemize
3102 @item Fast (even faster through compiling the code)
3103 @item Safety
3104 @item Support for multiple document types (markup, xml, html, html5, xhtml)
3105 @item Output with doctype
3106 @item Direct output to stream
3107 @end itemize\n")
3108 (license license:lgpl3+))))
3109
3110 (define-public cl-markup
3111 (sbcl-package->cl-source-package sbcl-cl-markup))
3112
3113 (define-public ecl-cl-markup
3114 (sbcl-package->ecl-package sbcl-cl-markup))
3115
3116 (define-public sbcl-cl-css
3117 (let ((commit "8fe654c8f0cf95b300718101cce4feb517f78e2f"))
3118 (package
3119 (name "sbcl-cl-css")
3120 (version (git-version "0.1" "1" commit))
3121 (source
3122 (origin
3123 (method git-fetch)
3124 (uri (git-reference
3125 (url "https://github.com/inaimathi/cl-css/")
3126 (commit commit)))
3127 (file-name (git-file-name "cl-css" version))
3128 (sha256
3129 (base32
3130 "1lc42zi2sw11fl2589sc19nr5sd2p0wy7wgvgwaggxa5f3ajhsmd"))))
3131 (build-system asdf-build-system/sbcl)
3132 (home-page "https://github.com/inaimathi/cl-css/")
3133 (synopsis "Non-validating, inline CSS generator for Common Lisp")
3134 (description
3135 "This is a dead-simple, non validating, inline CSS generator for Common
3136 Lisp. Its goals are axiomatic syntax, simple implementation to support
3137 portability, and boilerplate reduction in CSS.")
3138 (license license:expat))))
3139
3140 (define-public cl-css
3141 (sbcl-package->cl-source-package sbcl-cl-css))
3142
3143 (define-public ecl-cl-css
3144 (sbcl-package->ecl-package sbcl-cl-css))
3145
3146 (define-public sbcl-portable-threads
3147 (let ((commit "c0e61a1faeb0583c80fd3f20b16cc4c555226920"))
3148 (package
3149 (name "sbcl-portable-threads")
3150 (version (git-version "2.3" "1" commit))
3151 (source
3152 (origin
3153 (method git-fetch)
3154 (uri (git-reference
3155 (url "https://github.com/binghe/portable-threads/")
3156 (commit commit)))
3157 (file-name (git-file-name "portable-threads" version))
3158 (sha256
3159 (base32
3160 "03fmxyarc0xf4kavwkfa0a2spkyfrz6hbgbi9y4q7ny5aykdyfaq"))))
3161 (build-system asdf-build-system/sbcl)
3162 (arguments
3163 `(;; Tests seem broken.
3164 #:tests? #f))
3165 (home-page "https://github.com/binghe/portable-threads")
3166 (synopsis "Portable threads (and scheduled and periodic functions) API for Common Lisp")
3167 (description
3168 "Portable Threads (and Scheduled and Periodic Functions) API for Common
3169 Lisp (from GBBopen project).")
3170 (license license:asl2.0))))
3171
3172 (define-public cl-portable-threads
3173 (sbcl-package->cl-source-package sbcl-portable-threads))
3174
3175 (define-public ecl-portable-threada
3176 (sbcl-package->ecl-package sbcl-portable-threads))
3177
3178 (define-public sbcl-usocket-boot0
3179 ;; usocket's test rely on usocket-server which depends on usocket itself.
3180 ;; We break this cyclic dependency with -boot0 that packages usocket.
3181 (let ((commit "86e7efbfe50101931edf4b67cdcfa7e221ecfde9"))
3182 (package
3183 (name "sbcl-usocket-boot0")
3184 (version (git-version "0.7.1" "1" commit))
3185 (source
3186 (origin
3187 (method git-fetch)
3188 (uri (git-reference
3189 (url "https://github.com/usocket/usocket/")
3190 (commit commit)))
3191 (file-name (git-file-name "usocket" version))
3192 (sha256
3193 (base32
3194 "1lk6ipakrib7kdgzw44hrgmls9akp5pz4h35yynw0k5zwmmq6374"))))
3195 (build-system asdf-build-system/sbcl)
3196 (inputs
3197 `(("split-sequence" ,sbcl-split-sequence)))
3198 (arguments
3199 `(#:tests? #f
3200 #:asd-system-name "usocket"))
3201 (home-page "https://common-lisp.net/project/usocket/")
3202 (synopsis "Universal socket library for Common Lisp (server side)")
3203 (description
3204 "This library strives to provide a portable TCP/IP and UDP/IP socket
3205 interface for as many Common Lisp implementations as possible, while keeping
3206 the abstraction and portability layer as thin as possible.")
3207 (license license:expat))))
3208
3209 (define-public sbcl-usocket-server
3210 (package
3211 (inherit sbcl-usocket-boot0)
3212 (name "sbcl-usocket-server")
3213 (inputs
3214 `(("usocket" ,sbcl-usocket-boot0)
3215 ("portable-threads" ,sbcl-portable-threads)))
3216 (arguments
3217 '(#:asd-system-name "usocket-server"))
3218 (synopsis "Universal socket library for Common Lisp (server side)")))
3219
3220 (define-public cl-usocket-server
3221 (sbcl-package->cl-source-package sbcl-usocket-server))
3222
3223 (define-public ecl-socket-server
3224 (sbcl-package->ecl-package sbcl-usocket-server))
3225
3226 (define-public sbcl-usocket
3227 (package
3228 (inherit sbcl-usocket-boot0)
3229 (name "sbcl-usocket")
3230 (arguments
3231 ;; FIXME: Tests need network access?
3232 `(#:tests? #f))
3233 (native-inputs
3234 ;; Testing only.
3235 `(("usocket-server" ,sbcl-usocket-server)
3236 ("rt" ,sbcl-rt)))))
3237
3238 (define-public cl-usocket
3239 (sbcl-package->cl-source-package sbcl-usocket))
3240
3241 (define-public ecl-socket
3242 (sbcl-package->ecl-package sbcl-usocket))
3243
3244 (define-public sbcl-s-xml
3245 (package
3246 (name "sbcl-s-xml")
3247 (version "3")
3248 (source
3249 (origin
3250 (method url-fetch)
3251 (uri "https://common-lisp.net/project/s-xml/s-xml.tgz")
3252 (sha256
3253 (base32
3254 "061qcr0dzshsa38s5ma4ay924cwak2nq9gy59dw6v9p0qb58nzjf"))))
3255 (build-system asdf-build-system/sbcl)
3256 (home-page "https://common-lisp.net/project/s-xml/")
3257 (synopsis "Simple XML parser implemented in Common Lisp")
3258 (description
3259 "S-XML is a simple XML parser implemented in Common Lisp. This XML
3260 parser implementation has the following features:
3261
3262 @itemize
3263 @item It works (handling many common XML usages).
3264 @item It is very small (the core is about 700 lines of code, including
3265 comments and whitespace).
3266 @item It has a core API that is simple, efficient and pure functional, much
3267 like that from SSAX (see also http://ssax.sourceforge.net).
3268 @item It supports different DOM models: an XSML-based one, an LXML-based one
3269 and a classic xml-element struct based one.
3270 @item It is reasonably time and space efficient (internally avoiding garbage
3271 generatation as much as possible).
3272 @item It does support CDATA.
3273 @item It should support the same character sets as your Common Lisp
3274 implementation.
3275 @item It does support XML name spaces.
3276 @end itemize
3277
3278 This XML parser implementation has the following limitations:
3279
3280 @itemize
3281 @item It does not support any special tags (like processing instructions).
3282 @item It is not validating, even skips DTD's all together.
3283 @end itemize\n")
3284 (license license:lgpl3+)))
3285
3286 (define-public cl-s-xml
3287 (sbcl-package->cl-source-package sbcl-s-xml))
3288
3289 (define-public ecl-s-xml
3290 (sbcl-package->ecl-package sbcl-s-xml))
3291
3292 (define-public sbcl-s-xml-rpc
3293 (package
3294 (name "sbcl-s-xml-rpc")
3295 (version "7")
3296 (source
3297 (origin
3298 (method url-fetch)
3299 (uri "https://common-lisp.net/project/s-xml-rpc/s-xml-rpc.tgz")
3300 (sha256
3301 (base32
3302 "02z7k163d51v0pzk8mn1xb6h5s6x64gjqkslhwm3a5x26k2gfs11"))))
3303 (build-system asdf-build-system/sbcl)
3304 (inputs
3305 `(("s-xml" ,sbcl-s-xml)))
3306 (home-page "https://common-lisp.net/project/s-xml-rpc/")
3307 (synopsis "Implementation of XML-RPC in Common Lisp for both client and server")
3308 (description
3309 "S-XML-RPC is an implementation of XML-RPC in Common Lisp for both
3310 client and server.")
3311 (license license:lgpl3+)))
3312
3313 (define-public cl-s-xml-rpc
3314 (sbcl-package->cl-source-package sbcl-s-xml-rpc))
3315
3316 (define-public ecl-s-xml-rpc
3317 (sbcl-package->ecl-package sbcl-s-xml-rpc))
3318
3319 (define-public sbcl-trivial-clipboard
3320 (let ((commit "5af3415d1484e6d69a1b5c178f24680d9fd01796"))
3321 (package
3322 (name "sbcl-trivial-clipboard")
3323 (version (git-version "0.0.0.0" "2" commit))
3324 (source
3325 (origin
3326 (method git-fetch)
3327 (uri (git-reference
3328 (url "https://github.com/snmsts/trivial-clipboard")
3329 (commit commit)))
3330 (file-name (git-file-name "trivial-clipboard" version))
3331 (sha256
3332 (base32
3333 "1gb515z5yq6h5548pb1fwhmb0hhq1ssyb78pvxh4alq799xipxs9"))))
3334 (build-system asdf-build-system/sbcl)
3335 (inputs
3336 `(("xclip" ,xclip)))
3337 (native-inputs
3338 `(("fiveam" ,sbcl-fiveam)))
3339 (arguments
3340 `(#:phases
3341 (modify-phases %standard-phases
3342 (add-after 'unpack 'fix-paths
3343 (lambda* (#:key inputs #:allow-other-keys)
3344 (substitute* "src/text.lisp"
3345 (("\\(executable-find \"xclip\"\\)")
3346 (string-append "(executable-find \""
3347 (assoc-ref inputs "xclip")
3348 "/bin/xclip\")"))))))))
3349 (home-page "https://github.com/snmsts/trivial-clipboard")
3350 (synopsis "Access system clipboard in Common Lisp")
3351 (description
3352 "@command{trivial-clipboard} gives access to the system clipboard.")
3353 (license license:expat))))
3354
3355 (define-public cl-trivial-clipboard
3356 (sbcl-package->cl-source-package sbcl-trivial-clipboard))
3357
3358 (define-public ecl-trivial-clipboard
3359 (sbcl-package->ecl-package sbcl-trivial-clipboard))
3360
3361 (define-public sbcl-trivial-backtrace
3362 (let ((commit "ca81c011b86424a381a7563cea3b924f24e6fbeb")
3363 (revision "1"))
3364 (package
3365 (name "sbcl-trivial-backtrace")
3366 (version (git-version "0.0.0" revision commit))
3367 (source
3368 (origin
3369 (method git-fetch)
3370 (uri (git-reference
3371 (url "https://github.com/gwkkwg/trivial-backtrace.git")
3372 (commit commit)))
3373 (file-name (git-file-name "trivial-backtrace" version))
3374 (sha256
3375 (base32 "10p41p43skj6cimdg8skjy7372s8v2xpkg8djjy0l8rm45i654k1"))))
3376 (build-system asdf-build-system/sbcl)
3377 (inputs
3378 `(("sbcl-lift" ,sbcl-lift)))
3379 (arguments
3380 `(#:phases
3381 (modify-phases %standard-phases
3382 (add-after 'check 'delete-test-results
3383 (lambda* (#:key outputs #:allow-other-keys)
3384 (let ((test-results (string-append (assoc-ref outputs "out")
3385 "/share/common-lisp/"
3386 (%lisp-type) "-source"
3387 "/trivial-backtrace"
3388 "/test-results")))
3389 (when (file-exists? test-results)
3390 (delete-file-recursively test-results)))
3391 #t)))))
3392 (home-page "https://common-lisp.net/project/trivial-backtrace/")
3393 (synopsis "Portable simple API to work with backtraces in Common Lisp")
3394 (description
3395 "On of the many things that didn't quite get into the Common Lisp
3396 standard was how to get a Lisp to output its call stack when something has
3397 gone wrong. As such, each Lisp has developed its own notion of what to
3398 display, how to display it, and what sort of arguments can be used to
3399 customize it. @code{trivial-backtrace} is a simple solution to generating a
3400 backtrace portably.")
3401 (license license:expat))))
3402
3403 (define-public cl-trivial-backtrace
3404 (sbcl-package->cl-source-package sbcl-trivial-backtrace))
3405
3406 (define-public sbcl-rfc2388
3407 (let ((commit "591bcf7e77f2c222c43953a80f8c297751dc0c4e")
3408 (revision "1"))
3409 (package
3410 (name "sbcl-rfc2388")
3411 (version (git-version "0.0.0" revision commit))
3412 (source
3413 (origin
3414 (method git-fetch)
3415 (uri (git-reference
3416 (url "https://github.com/jdz/rfc2388.git")
3417 (commit commit)))
3418 (file-name (git-file-name "rfc2388" version))
3419 (sha256
3420 (base32 "0phh5n3clhl9ji8jaxrajidn22d3f0aq87mlbfkkxlnx2pnw694k"))))
3421 (build-system asdf-build-system/sbcl)
3422 (home-page "https://github.com/jdz/rfc2388/")
3423 (synopsis "An implementation of RFC 2388 in Common Lisp")
3424 (description
3425 "This package contains an implementation of RFC 2388, which is used to
3426 process form data posted with HTTP POST method using enctype
3427 \"multipart/form-data\".")
3428 (license license:bsd-2))))
3429
3430 (define-public cl-rfc2388
3431 (sbcl-package->cl-source-package sbcl-rfc2388))
3432
3433 (define-public sbcl-md5
3434 (package
3435 (name "sbcl-md5")
3436 (version "2.0.4")
3437 (source
3438 (origin
3439 (method url-fetch)
3440 (uri (string-append
3441 "https://github.com/pmai/md5/archive/release-" version ".tar.gz"))
3442 (sha256
3443 (base32 "19yl9n0pjdz5gw4qi711lka97xcd9f81ylg434hk7jwn9f2s6w11"))))
3444 (build-system asdf-build-system/sbcl)
3445 (home-page "https://github.com/pmai/md5")
3446 (synopsis
3447 "Common Lisp implementation of the MD5 Message-Digest Algorithm (RFC 1321)")
3448 (description
3449 "This package implements The MD5 Message-Digest Algorithm, as defined in
3450 RFC 1321 by R. Rivest, published April 1992.")
3451 (license license:public-domain)))
3452
3453 (define-public cl-md5
3454 (sbcl-package->cl-source-package sbcl-md5))
3455
3456 (define-public sbcl-cl+ssl
3457 (let ((commit "141ae91416bc40f1618dc07e48429b84388aa599")
3458 (revision "1"))
3459 (package
3460 (name "sbcl-cl+ssl")
3461 (version (git-version "0.0.0" revision commit))
3462 (source
3463 (origin
3464 (method git-fetch)
3465 (uri (git-reference
3466 (url "https://github.com/cl-plus-ssl/cl-plus-ssl.git")
3467 (commit commit)))
3468 (file-name (git-file-name "cl+ssl" version))
3469 (sha256
3470 (base32 "1s0hg1h9sf8q89v0yrxmzg5f5sng29rgx3n21r9h9yql8351myan"))))
3471 (build-system asdf-build-system/sbcl)
3472 (arguments
3473 '(#:phases
3474 (modify-phases %standard-phases
3475 (add-after 'unpack 'fix-paths
3476 (lambda* (#:key inputs #:allow-other-keys)
3477 (substitute* "src/reload.lisp"
3478 (("libssl.so" all)
3479 (string-append
3480 (assoc-ref inputs "openssl") "/lib/" all))))))))
3481 (inputs
3482 `(("openssl" ,openssl)
3483 ("sbcl-cffi" ,sbcl-cffi)
3484 ("sbcl-trivial-gray-streams" ,sbcl-trivial-gray-streams)
3485 ("sbcl-flexi-streams" ,sbcl-flexi-streams)
3486 ("sbcl-bordeaux-threads" ,sbcl-bordeaux-threads)
3487 ("sbcl-trivial-garbage" ,sbcl-trivial-garbage)
3488 ("sbcl-alexandria" ,sbcl-alexandria)
3489 ("sbcl-trivial-features" ,sbcl-trivial-features)))
3490 (home-page "http://common-lisp.net/project/cl-plus-ssl/")
3491 (synopsis "Common Lisp bindings to OpenSSL")
3492 (description
3493 "This library is a fork of SSL-CMUCL. The original SSL-CMUCL source
3494 code was written by Eric Marsden and includes contributions by Jochen Schmidt.
3495 Development into CL+SSL was done by David Lichteblau.")
3496 (license license:expat))))
3497
3498 (define-public cl-cl+ssl
3499 (sbcl-package->cl-source-package sbcl-cl+ssl))
3500
3501 (define-public sbcl-kmrcl
3502 (let ((version "1.109.0")
3503 (commit "5260068b2eb735af6796740c2db4955afac21636")
3504 (revision "1"))
3505 (package
3506 (name "sbcl-kmrcl")
3507 (version (git-version version revision commit))
3508 (source
3509 (origin
3510 (method git-fetch)
3511 (uri (git-reference
3512 (url "http://git.kpe.io/kmrcl.git/")
3513 (commit commit)))
3514 (file-name (git-file-name name version))
3515 (sha256
3516 (base32 "1va7xjgzfv674bpsli674i7zj3f7wg5kxic41kz18r6hh4n52dfv"))))
3517 (build-system asdf-build-system/sbcl)
3518 (arguments
3519 ;; Tests fail with: :FORCE and :FORCE-NOT arguments not allowed in a
3520 ;; nested call to ASDF/OPERATE:OPERATE unless identically to toplevel
3521 '(#:tests? #f))
3522 (inputs
3523 `(("sbcl-rt" ,sbcl-rt)))
3524 (home-page "http://files.kpe.io/kmrcl/")
3525 (synopsis "General utilities for Common Lisp programs")
3526 (description
3527 "KMRCL is a collection of utilities used by a number of Kevin
3528 Rosenberg's CL packages.")
3529 (license license:llgpl))))
3530
3531 (define-public cl-kmrcl
3532 (sbcl-package->cl-source-package sbcl-kmrcl))
3533
3534 (define-public sbcl-cl-base64
3535 (let ((version "3.3.3"))
3536 (package
3537 (name "sbcl-cl-base64")
3538 (version version)
3539 (source
3540 (origin
3541 (method git-fetch)
3542 (uri (git-reference
3543 (url "http://git.kpe.io/cl-base64.git")
3544 (commit (string-append "v" version))))
3545 (file-name (git-file-name "cl-base64" version))
3546 (sha256
3547 (base32 "1dw6j7n6gsd2qa0p0rbsjxj00acxx3i9ca1qkgl0liy8lpnwkypl"))))
3548 (build-system asdf-build-system/sbcl)
3549 (arguments
3550 ;; Tests fail with: :FORCE and :FORCE-NOT arguments not allowed
3551 ;; in a nested call to ASDF/OPERATE:OPERATE unless identically
3552 ;; to toplevel
3553 '(#:tests? #f))
3554 (inputs
3555 `(("sbcl-ptester" ,sbcl-ptester)
3556 ("sbcl-kmrcl" ,sbcl-kmrcl)))
3557 (home-page "http://files.kpe.io/cl-base64/")
3558 (synopsis
3559 "Common Lisp package to encode and decode base64 with URI support")
3560 (description
3561 "This package provides highly optimized base64 encoding and decoding.
3562 Besides conversion to and from strings, integer conversions are supported.
3563 Encoding with Uniform Resource Identifiers is supported by using a modified
3564 encoding table that uses only URI-compatible characters.")
3565 (license license:bsd-3))))
3566
3567 (define-public cl-base64
3568 (sbcl-package->cl-source-package sbcl-cl-base64))
3569
3570 (define-public sbcl-chunga
3571 (package
3572 (name "sbcl-chunga")
3573 (version "1.1.7")
3574 (source
3575 (origin
3576 (method git-fetch)
3577 (uri (git-reference
3578 (url "https://github.com/edicl/chunga.git")
3579 (commit (string-append "v" version))))
3580 (file-name (git-file-name name version))
3581 (sha256
3582 (base32 "0jzn3nyb3f22gm983rfk99smqs3mhb9ivjmasvhq9qla5cl9pyhd"))))
3583 (build-system asdf-build-system/sbcl)
3584 (inputs
3585 `(("sbcl-trivial-gray-streams" ,sbcl-trivial-gray-streams)))
3586 (home-page "https://edicl.github.io/chunga/")
3587 (synopsis "Portable chunked streams for Common Lisp")
3588 (description
3589 "Chunga implements streams capable of chunked encoding on demand as
3590 defined in RFC 2616.")
3591 (license license:bsd-2)))
3592
3593 (define-public cl-chunga
3594 (sbcl-package->cl-source-package sbcl-chunga))
3595
3596 (define-public sbcl-cl-who
3597 (let ((version "1.1.4")
3598 (commit "2c08caa4bafba720409af9171feeba3f32e86d32")
3599 (revision "1"))
3600 (package
3601 (name "sbcl-cl-who")
3602 (version (git-version version revision commit))
3603 (source
3604 (origin
3605 (method git-fetch)
3606 (uri (git-reference
3607 (url "https://github.com/edicl/cl-who.git")
3608 (commit commit)))
3609 (file-name (git-file-name name version))
3610 (sha256
3611 (base32
3612 "0yjb6sr3yazm288m318kqvj9xk8rm9n1lpimgf65ymqv0i5agxsb"))))
3613 (build-system asdf-build-system/sbcl)
3614 (native-inputs
3615 `(("sbcl-flexi-streams" ,sbcl-flexi-streams)))
3616 (home-page "https://edicl.github.io/cl-who/")
3617 (synopsis "Yet another Lisp markup language")
3618 (description
3619 "There are plenty of Lisp Markup Languages out there - every Lisp
3620 programmer seems to write at least one during his career - and CL-WHO (where
3621 WHO means \"with-html-output\" for want of a better acronym) is probably just
3622 as good or bad as the next one.")
3623 (license license:bsd-2))))
3624
3625 (define-public cl-cl-who
3626 (sbcl-package->cl-source-package sbcl-cl-who))
3627
3628 (define-public sbcl-chipz
3629 (let ((version "0.8")
3630 (commit "75dfbc660a5a28161c57f115adf74c8a926bfc4d")
3631 (revision "1"))
3632 (package
3633 (name "sbcl-chipz")
3634 (version (git-version version revision commit))
3635 (source
3636 (origin
3637 (method git-fetch)
3638 (uri (git-reference
3639 (url "https://github.com/froydnj/chipz.git")
3640 (commit commit)))
3641 (file-name (git-file-name name version))
3642 (sha256
3643 (base32
3644 "0plx4rs39zbs4gjk77h4a2q11zpy75fh9v8hnxrvsf8fnakajhwg"))))
3645 (build-system asdf-build-system/sbcl)
3646 (native-inputs
3647 `(("sbcl-flexi-streams" ,sbcl-flexi-streams)))
3648 (home-page "http://method-combination.net/lisp/chipz/")
3649 (synopsis
3650 "Common Lisp library for decompressing deflate, zlib, gzip, and bzip2
3651 data")
3652 (description
3653 "DEFLATE data, defined in RFC1951, forms the core of popular
3654 compression formats such as zlib (RFC 1950) and gzip (RFC 1952). As such,
3655 Chipz also provides for decompressing data in those formats as well. BZIP2 is
3656 the format used by the popular compression tool bzip2.")
3657 ;; The author describes it as "MIT-like"
3658 (license license:expat))))
3659
3660 (define-public cl-chipz
3661 (sbcl-package->cl-source-package sbcl-chipz))
3662
3663 (define-public sbcl-drakma
3664 (let ((version "2.0.4")
3665 (commit "7647c0ae842ff2058624e53979c7f297760c97a7")
3666 (revision "1"))
3667 (package
3668 (name "sbcl-drakma")
3669 (version (git-version version revision commit))
3670 (source
3671 (origin
3672 (method git-fetch)
3673 (uri (git-reference
3674 (url "https://github.com/edicl/drakma.git")
3675 (commit commit)))
3676 (file-name (git-file-name name version))
3677 (sha256
3678 (base32
3679 "1c4i9wakhj5pxfyyykxshdmv3180sbkrx6fcyynikmc0jd0rh84r"))))
3680 (build-system asdf-build-system/sbcl)
3681 (inputs
3682 `(("sbcl-puri" ,sbcl-puri)
3683 ("sbcl-cl-base64" ,sbcl-cl-base64)
3684 ("sbcl-chunga" ,sbcl-chunga)
3685 ("sbcl-flexi-streams" ,sbcl-flexi-streams)
3686 ("sbcl-cl-ppcre" ,sbcl-cl-ppcre)
3687 ("sbcl-chipz" ,sbcl-chipz)
3688 ("sbcl-usocket" ,sbcl-usocket)
3689 ("sbcl-cl+ssl" ,sbcl-cl+ssl)))
3690 (native-inputs
3691 `(("sbcl-fiveam" ,sbcl-fiveam)))
3692 (home-page "https://edicl.github.io/drakma/")
3693 (synopsis "HTTP client written in Common Lisp")
3694 (description
3695 "Drakma is a full-featured HTTP client implemented in Common Lisp. It
3696 knows how to handle HTTP/1.1 chunking, persistent connections, re-usable
3697 sockets, SSL, continuable uploads, file uploads, cookies, and more.")
3698 (license license:bsd-2))))
3699
3700 (define-public cl-drakma
3701 (sbcl-package->cl-source-package sbcl-drakma))
3702
3703 (define-public sbcl-hunchentoot
3704 (package
3705 (name "sbcl-hunchentoot")
3706 (version "1.2.38")
3707 (source
3708 (origin
3709 (method git-fetch)
3710 (uri (git-reference
3711 (url "https://github.com/edicl/hunchentoot.git")
3712 (commit (string-append "v" version))))
3713 (file-name (git-file-name "hunchentoot" version))
3714 (sha256
3715 (base32 "1anpcad7w045m4rsjs1f3xdhjwx5cppq1h0vlb3q7dz81fi3i6yq"))))
3716 (build-system asdf-build-system/sbcl)
3717 (native-inputs
3718 `(("sbcl-cl-who" ,sbcl-cl-who)
3719 ("sbcl-drakma" ,sbcl-drakma)))
3720 (inputs
3721 `(("sbcl-chunga" ,sbcl-chunga)
3722 ("sbcl-cl-base64" ,sbcl-cl-base64)
3723 ("sbcl-cl-fad" ,sbcl-cl-fad)
3724 ("sbcl-cl-ppcre" ,sbcl-cl-ppcre)
3725 ("sbcl-flexi-streams" ,sbcl-flexi-streams)
3726 ("sbcl-cl+ssl" ,sbcl-cl+ssl)
3727 ("sbcl-md5" ,sbcl-md5)
3728 ("sbcl-rfc2388" ,sbcl-rfc2388)
3729 ("sbcl-trivial-backtrace" ,sbcl-trivial-backtrace)
3730 ("sbcl-usocket" ,sbcl-usocket)))
3731 (home-page "https://edicl.github.io/hunchentoot/")
3732 (synopsis "Web server written in Common Lisp")
3733 (description
3734 "Hunchentoot is a web server written in Common Lisp and at the same
3735 time a toolkit for building dynamic websites. As a stand-alone web server,
3736 Hunchentoot is capable of HTTP/1.1 chunking (both directions), persistent
3737 connections (keep-alive), and SSL.")
3738 (license license:bsd-2)))
3739
3740 (define-public cl-hunchentoot
3741 (sbcl-package->cl-source-package sbcl-hunchentoot))
3742
3743 (define-public sbcl-trivial-types
3744 (package
3745 (name "sbcl-trivial-types")
3746 (version "0.0.1")
3747 (source
3748 (origin
3749 (method git-fetch)
3750 (uri (git-reference
3751 (url "https://github.com/m2ym/trivial-types.git")
3752 (commit "ee869f2b7504d8aa9a74403641a5b42b16f47d88")))
3753 (file-name (git-file-name name version))
3754 (sha256
3755 (base32 "1s4cp9bdlbn8447q7w7f1wkgwrbvfzp20mgs307l5pxvdslin341"))))
3756 (build-system asdf-build-system/sbcl)
3757 (home-page "https://github.com/m2ym/trivial-types")
3758 (synopsis "Trivial type definitions for Common Lisp")
3759 (description
3760 "TRIVIAL-TYPES provides missing but important type definitions such as
3761 PROPER-LIST, ASSOCIATION-LIST, PROPERTY-LIST and TUPLE.")
3762 (license license:llgpl)))
3763
3764 (define-public cl-trivial-types
3765 (sbcl-package->cl-source-package sbcl-trivial-types))
3766
3767 (define-public sbcl-cl-syntax
3768 (package
3769 (name "sbcl-cl-syntax")
3770 (version "0.0.3")
3771 (source
3772 (origin
3773 (method git-fetch)
3774 (uri (git-reference
3775 (url "https://github.com/m2ym/cl-syntax.git")
3776 (commit "03f0c329bbd55b8622c37161e6278366525e2ccc")))
3777 (file-name (git-file-name "cl-syntax" version))
3778 (sha256
3779 (base32 "17ran8xp77asagl31xv8w819wafh6whwfc9p6dgx22ca537gyl4y"))))
3780 (build-system asdf-build-system/sbcl)
3781 (arguments
3782 '(#:asd-file "cl-syntax.asd"
3783 #:asd-system-name "cl-syntax"))
3784 (inputs `(("sbcl-trivial-types" ,sbcl-trivial-types)
3785 ("sbcl-named-readtables" ,sbcl-named-readtables)))
3786 (home-page "https://github.com/m2ym/cl-syntax")
3787 (synopsis "Reader Syntax Coventions for Common Lisp and SLIME")
3788 (description
3789 "CL-SYNTAX provides Reader Syntax Coventions for Common Lisp and SLIME.")
3790 (license license:llgpl)))
3791
3792 (define-public cl-syntax
3793 (sbcl-package->cl-source-package sbcl-cl-syntax))
3794
3795 (define-public sbcl-cl-annot
3796 (let ((commit "c99e69c15d935eabc671b483349a406e0da9518d")
3797 (revision "1"))
3798 (package
3799 (name "sbcl-cl-annot")
3800 (version (git-version "0.0.0" revision commit))
3801 (source
3802 (origin
3803 (method git-fetch)
3804 (uri (git-reference
3805 (url "https://github.com/m2ym/cl-annot.git")
3806 (commit commit)))
3807 (file-name (git-file-name name version))
3808 (sha256
3809 (base32 "1wq1gs9jjd5m6iwrv06c2d7i5dvqsfjcljgbspfbc93cg5xahk4n"))))
3810 (build-system asdf-build-system/sbcl)
3811 (arguments
3812 '(#:asd-file "cl-annot.asd"
3813 #:asd-system-name "cl-annot"))
3814 (inputs
3815 `(("sbcl-alexandria" ,sbcl-alexandria)))
3816 (home-page "https://github.com/m2ym/cl-annot")
3817 (synopsis "Python-like Annotation Syntax for Common Lisp.")
3818 (description
3819 "@code{cl-annot} is an general annotation library for Common Lisp.")
3820 (license license:llgpl))))
3821
3822 (define-public cl-annot
3823 (sbcl-package->cl-source-package sbcl-cl-annot))
3824
3825 (define-public sbcl-cl-syntax-annot
3826 (package
3827 (name "sbcl-cl-syntax-annot")
3828 (version "0.0.3")
3829 (source
3830 (origin
3831 (method git-fetch)
3832 (uri (git-reference
3833 (url "https://github.com/m2ym/cl-syntax.git")
3834 (commit "03f0c329bbd55b8622c37161e6278366525e2ccc")))
3835 (file-name (git-file-name name version))
3836 (sha256
3837 (base32 "17ran8xp77asagl31xv8w819wafh6whwfc9p6dgx22ca537gyl4y"))))
3838 (build-system asdf-build-system/sbcl)
3839 (arguments
3840 '(#:asd-file "cl-syntax-annot.asd"
3841 #:asd-system-name "cl-syntax-annot"))
3842 (inputs
3843 `(("sbcl-cl-syntax" ,sbcl-cl-syntax)
3844 ("sbcl-cl-annot" ,sbcl-cl-annot)))
3845 (home-page "https://github.com/m2ym/cl-syntax")
3846 (synopsis "Reader Syntax Coventions for Common Lisp and SLIME")
3847 (description
3848 "CL-SYNTAX provides Reader Syntax Coventions for Common Lisp and
3849 SLIME.")
3850 (license license:llgpl)))
3851
3852 (define-public cl-syntax-annot
3853 (sbcl-package->cl-source-package sbcl-cl-syntax-annot))
3854
3855 (define-public sbcl-cl-utilities
3856 (let ((commit "dce2d2f6387091ea90357a130fa6d13a6776884b")
3857 (revision "1"))
3858 (package
3859 (name "sbcl-cl-utilities")
3860 (version (git-version "0.0.0" revision commit))
3861 (source
3862 (origin
3863 (method url-fetch)
3864 (uri
3865 (string-append
3866 "https://gitlab.common-lisp.net/cl-utilities/cl-utilities/-/"
3867 "archive/" commit "/cl-utilities-" commit ".tar.gz"))
3868 (sha256
3869 (base32 "1r46v730yf96nk2vb24qmagv9x96xvd08abqwhf02ghgydv1a7z2"))))
3870 (build-system asdf-build-system/sbcl)
3871 (arguments
3872 '(#:asd-file "cl-utilities.asd"
3873 #:asd-system-name "cl-utilities"
3874 #:phases
3875 (modify-phases %standard-phases
3876 (add-after 'unpack 'fix-paths
3877 (lambda* (#:key inputs #:allow-other-keys)
3878 (substitute* "rotate-byte.lisp"
3879 (("in-package :cl-utilities)" all)
3880 "in-package :cl-utilities)\n\n#+sbcl\n(require :sb-rotate-byte)")))))))
3881 (home-page "http://common-lisp.net/project/cl-utilities")
3882 (synopsis "A collection of semi-standard utilities")
3883 (description
3884 "On Cliki.net <http://www.cliki.net/Common%20Lisp%20Utilities>, there
3885 is a collection of Common Lisp Utilities, things that everybody writes since
3886 they're not part of the official standard. There are some very useful things
3887 there; the only problems are that they aren't implemented as well as you'd
3888 like (some aren't implemented at all) and they aren't conveniently packaged
3889 and maintained. It takes quite a bit of work to carefully implement utilities
3890 for common use, commented and documented, with error checking placed
3891 everywhere some dumb user might make a mistake.")
3892 (license license:public-domain))))
3893
3894 (define-public cl-utilities
3895 (sbcl-package->cl-source-package sbcl-cl-utilities))
3896
3897 (define-public sbcl-map-set
3898 (let ((commit "7b4b545b68b8")
3899 (revision "1"))
3900 (package
3901 (name "sbcl-map-set")
3902 (version (git-version "0.0.0" revision commit))
3903 (source
3904 (origin
3905 (method url-fetch)
3906 (uri (string-append
3907 "https://bitbucket.org/tarballs_are_good/map-set/get/"
3908 commit ".tar.gz"))
3909 (sha256
3910 (base32 "1sx5j5qdsy5fklspfammwb16kjrhkggdavm922a9q86jm5l0b239"))))
3911 (build-system asdf-build-system/sbcl)
3912 (home-page "https://bitbucket.org/tarballs_are_good/map-set")
3913 (synopsis "Set-like data structure")
3914 (description
3915 "Implementation of a set-like data structure with constant time
3916 addition, removal, and random selection.")
3917 (license license:bsd-3))))
3918
3919 (define-public cl-map-set
3920 (sbcl-package->cl-source-package sbcl-map-set))
3921
3922 (define-public sbcl-quri
3923 (let ((commit "76b75103f21ead092c9f715512fa82441ef61185")
3924 (revision "1"))
3925 (package
3926 (name "sbcl-quri")
3927 (version (git-version "0.1.0" revision commit))
3928 (source
3929 (origin
3930 (method git-fetch)
3931 (uri (git-reference
3932 (url "https://github.com/fukamachi/quri.git")
3933 (commit commit)))
3934 (file-name (git-file-name name version))
3935 (sha256
3936 (base32 "1ccbxsgzdibmzq33mmbmmz9vwl6l03xh6nbpsh1hkdvdcl7q0a60"))))
3937 (build-system asdf-build-system/sbcl)
3938 (arguments
3939 ;; Tests fail with: Component QURI-ASD::QURI-TEST not found,
3940 ;; required by #<SYSTEM "quri">. Why?
3941 '(#:tests? #f))
3942 (native-inputs `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
3943 ("sbcl-prove" ,sbcl-prove)))
3944 (inputs `(("sbcl-babel" ,sbcl-babel)
3945 ("sbcl-split-sequence" ,sbcl-split-sequence)
3946 ("sbcl-cl-utilities" ,sbcl-cl-utilities)
3947 ("sbcl-alexandria" ,sbcl-alexandria)))
3948 (home-page "https://github.com/fukamachi/quri")
3949 (synopsis "Yet another URI library for Common Lisp")
3950 (description
3951 "QURI (pronounced \"Q-ree\") is yet another URI library for Common
3952 Lisp. It is intended to be a replacement of PURI.")
3953 (license license:bsd-3))))
3954
3955 (define-public cl-quri
3956 (sbcl-package->cl-source-package sbcl-quri))
3957
3958 (define-public sbcl-myway
3959 (let ((commit "286230082a11f879c18b93f17ca571c5f676bfb7")
3960 (revision "1"))
3961 (package
3962 (name "sbcl-myway")
3963 (version (git-version "0.1.0" revision commit))
3964 (source
3965 (origin
3966 (method git-fetch)
3967 (uri (git-reference
3968 (url "https://github.com/fukamachi/myway.git")
3969 (commit commit)))
3970 (file-name (git-file-name "myway" version))
3971 (sha256
3972 (base32 "0briia9bk3lbr0frnx39d1qg6i38dm4j6z9w3yga3d40k6df4a90"))))
3973 (build-system asdf-build-system/sbcl)
3974 (arguments
3975 ;; Tests fail with: Component MYWAY-ASD::MYWAY-TEST not found, required
3976 ;; by #<SYSTEM "myway">. Why?
3977 '(#:tests? #f))
3978 (native-inputs
3979 `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
3980 ("sbcl-prove" ,sbcl-prove)))
3981 (inputs
3982 `(("sbcl-cl-ppcre" ,sbcl-cl-ppcre)
3983 ("sbcl-quri" ,sbcl-quri)
3984 ("sbcl-map-set" ,sbcl-map-set)))
3985 (home-page "https://github.com/fukamachi/myway")
3986 (synopsis "Sinatra-compatible URL routing library for Common Lisp")
3987 (description "My Way is a Sinatra-compatible URL routing library.")
3988 (license license:llgpl))))
3989
3990 (define-public cl-myway
3991 (sbcl-package->cl-source-package sbcl-myway))
3992
3993 (define-public sbcl-xsubseq
3994 (let ((commit "5ce430b3da5cda3a73b9cf5cee4df2843034422b")
3995 (revision "1"))
3996 (package
3997 (name "sbcl-xsubseq")
3998 (version (git-version "0.0.1" revision commit))
3999 (source
4000 (origin
4001 (method git-fetch)
4002 (uri (git-reference
4003 (url "https://github.com/fukamachi/xsubseq")
4004 (commit commit)))
4005 (file-name (git-file-name name version))
4006 (sha256
4007 (base32 "1xz79q0p2mclf3sqjiwf6izdpb6xrsr350bv4mlmdlm6rg5r99px"))))
4008 (build-system asdf-build-system/sbcl)
4009 (arguments
4010 ;; Tests fail with: Component XSUBSEQ-ASD::XSUBSEQ-TEST not found,
4011 ;; required by #<SYSTEM "xsubseq">. Why?
4012 '(#:tests? #f))
4013 (native-inputs
4014 `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
4015 ("sbcl-prove" ,sbcl-prove)))
4016 (home-page "https://github.com/fukamachi/xsubseq")
4017 (synopsis "Efficient way to use \"subseq\"s in Common Lisp")
4018 (description
4019 "XSubseq provides functions to be able to handle \"subseq\"s more
4020 effieiently.")
4021 (license license:bsd-2))))
4022
4023 (define-public cl-xsubseq
4024 (sbcl-package->cl-source-package sbcl-xsubseq))
4025
4026 (define-public sbcl-smart-buffer
4027 (let ((commit "09b9a9a0b3abaa37abe9a730f5aac2643dca4e62")
4028 (revision "1"))
4029 (package
4030 (name "sbcl-smart-buffer")
4031 (version (git-version "0.0.1" revision commit))
4032 (source
4033 (origin
4034 (method git-fetch)
4035 (uri (git-reference
4036 (url "https://github.com/fukamachi/smart-buffer")
4037 (commit commit)))
4038 (file-name (git-file-name name version))
4039 (sha256
4040 (base32 "0qz1zzxx0wm5ff7gpgsq550a59p0qj594zfmm2rglj97dahj54l7"))))
4041 (build-system asdf-build-system/sbcl)
4042 (arguments
4043 ;; Tests fail with: Component SMART-BUFFER-ASD::SMART-BUFFER-TEST not
4044 ;; found, required by #<SYSTEM "smart-buffer">. Why?
4045 `(#:tests? #f))
4046 (native-inputs
4047 `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
4048 ("sbcl-prove" ,sbcl-prove)))
4049 (inputs
4050 `(("sbcl-xsubseq" ,sbcl-xsubseq)
4051 ("sbcl-flexi-streams" ,sbcl-flexi-streams)))
4052 (home-page "https://github.com/fukamachi/smart-buffer")
4053 (synopsis "Smart octets buffer")
4054 (description
4055 "Smart-buffer provides an output buffer which changes the destination
4056 depending on content size.")
4057 (license license:bsd-3))))
4058
4059 (define-public cl-smart-buffer
4060 (sbcl-package->cl-source-package sbcl-smart-buffer))
4061
4062 (define-public sbcl-fast-http
4063 (let ((commit "f9e7597191bae380503e20724fd493a24d024935")
4064 (revision "1"))
4065 (package
4066 (name "sbcl-fast-http")
4067 (version (git-version "0.2.0" revision commit))
4068 (source
4069 (origin
4070 (method git-fetch)
4071 (uri (git-reference
4072 (url "https://github.com/fukamachi/fast-http")
4073 (commit commit)))
4074 (file-name (git-file-name name version))
4075 (sha256
4076 (base32 "0qdmwv2zm0sizxdb8nnclgwl0nfjcbjaimbakavikijw7lr9b4jp"))))
4077 (build-system asdf-build-system/sbcl)
4078 (arguments
4079 ;; Tests fail with: Component FAST-HTTP-ASD::FAST-HTTP-TEST not found,
4080 ;; required by #<SYSTEM "fast-http">. Why?
4081 `(#:tests? #f))
4082 (native-inputs
4083 `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
4084 ("sbcl-prove" ,sbcl-prove)))
4085 (inputs
4086 `(("sbcl-alexandria" ,sbcl-alexandria)
4087 ("sbcl-proc-parse" ,sbcl-proc-parse)
4088 ("sbcl-xsubseq" ,sbcl-xsubseq)
4089 ("sbcl-smart-buffer" ,sbcl-smart-buffer)
4090 ("sbcl-cl-utilities" ,sbcl-cl-utilities)))
4091 (home-page "https://github.com/fukamachi/fast-http")
4092 (synopsis "HTTP request/response parser for Common Lisp")
4093 (description
4094 "@code{fast-http} is a HTTP request/response protocol parser for Common
4095 Lisp.")
4096 ;; Author specified the MIT license
4097 (license license:expat))))
4098
4099 (define-public cl-fast-http
4100 (sbcl-package->cl-source-package sbcl-fast-http))
4101
4102 (define-public sbcl-static-vectors
4103 (let ((commit "0681eac1f49370cde03e64b077251e8abf47d702")
4104 (revision "1"))
4105 (package
4106 (name "sbcl-static-vectors")
4107 (version (git-version "1.8.3" revision commit))
4108 (source
4109 (origin
4110 (method git-fetch)
4111 (uri (git-reference
4112 (url "https://github.com/sionescu/static-vectors.git")
4113 (commit commit)))
4114 (file-name (git-file-name name version))
4115 (sha256
4116 (base32 "138nlsq14hv8785ycjm6jw3i6ablhq8vcwys7q09y80arcgrg6r3"))))
4117 (native-inputs
4118 `(("sbcl-fiveam" ,sbcl-fiveam)))
4119 (inputs
4120 `(("sbcl-cffi-grovel" ,sbcl-cffi-grovel)
4121 ("sbcl-cffi" ,sbcl-cffi)))
4122 (build-system asdf-build-system/sbcl)
4123 (home-page "http://common-lisp.net/projects/iolib/")
4124 (synopsis "Allocate SIMPLE-ARRAYs in static memory")
4125 (description
4126 "With @code{static-vectors}, you can create vectors allocated in static
4127 memory.")
4128 (license license:expat))))
4129
4130 (define-public cl-static-vectors
4131 (sbcl-package->cl-source-package sbcl-static-vectors))
4132
4133 (define-public sbcl-marshal
4134 (let ((commit "eff1b15f2b0af2f26f71ad6a4dd5c4beab9299ec")
4135 (revision "1"))
4136 (package
4137 (name "sbcl-marshal")
4138 (version (git-version "1.3.0" revision commit))
4139 (source
4140 (origin
4141 (method git-fetch)
4142 (uri (git-reference
4143 (url "https://github.com/wlbr/cl-marshal.git")
4144 (commit commit)))
4145 (file-name (git-file-name name version))
4146 (sha256
4147 (base32 "08qs6fhk38xpkkjkpcj92mxx0lgy4ygrbbzrmnivdx281syr0gwh"))))
4148 (build-system asdf-build-system/sbcl)
4149 (home-page "https://github.com/wlbr/cl-marshal")
4150 (synopsis "Simple (de)serialization of Lisp datastructures")
4151 (description
4152 "Simple and fast marshalling of Lisp datastructures. Convert any object
4153 into a string representation, put it on a stream an revive it from there.
4154 Only minimal changes required to make your CLOS objects serializable.")
4155 (license license:expat))))
4156
4157 (define-public cl-marshal
4158 (sbcl-package->cl-source-package sbcl-marshal))
4159
4160 (define-public sbcl-checkl
4161 (let ((commit "80328800d047fef9b6e32dfe6bdc98396aee3cc9")
4162 (revision "1"))
4163 (package
4164 (name "sbcl-checkl")
4165 (version (git-version "0.0.0" revision commit))
4166 (source
4167 (origin
4168 (method git-fetch)
4169 (uri (git-reference
4170 (url "https://github.com/rpav/CheckL.git")
4171 (commit commit)))
4172 (file-name (git-file-name name version))
4173 (sha256
4174 (base32 "0bpisihx1gay44xmyr1dmhlwh00j0zzi04rp9fy35i95l2r4xdlx"))))
4175 (build-system asdf-build-system/sbcl)
4176 (arguments
4177 ;; Error while trying to load definition for system checkl-test from
4178 ;; pathname [...]/checkl-test.asd: The function CHECKL:DEFINE-TEST-OP
4179 ;; is undefined.
4180 '(#:tests? #f))
4181 (native-inputs
4182 `(("sbcl-fiveam" ,sbcl-fiveam)))
4183 (inputs
4184 `(("sbcl-marshal" ,sbcl-marshal)))
4185 (home-page "https://github.com/rpav/CheckL/")
4186 (synopsis "Dynamic testing for Common Lisp")
4187 (description
4188 "CheckL lets you write tests dynamically, it checks resulting values
4189 against the last run.")
4190 ;; The author specifies both LLGPL and "BSD", but the "BSD" license
4191 ;; isn't specified anywhere, so I don't know which kind. LLGPL is the
4192 ;; stronger of the two and so I think only listing this should suffice.
4193 (license license:llgpl))))
4194
4195 (define-public cl-checkl
4196 (sbcl-package->cl-source-package sbcl-checkl))
4197
4198 (define-public sbcl-fast-io
4199 (let ((commit "dc3a71db7e9b756a88781ae9c342fe9d4bbab51c")
4200 (revision "1"))
4201 (package
4202 (name "sbcl-fast-io")
4203 (version (git-version "1.0.0" revision commit))
4204 (source
4205 (origin
4206 (method git-fetch)
4207 (uri (git-reference
4208 (url "https://github.com/rpav/fast-io.git")
4209 (commit commit)))
4210 (file-name (git-file-name name version))
4211 (sha256
4212 (base32 "1jsp6xvi26ln6fdy5j5zi05xvan8jsqdhisv552dy6xg6ws8i1yq"))))
4213 (build-system asdf-build-system/sbcl)
4214 (arguments
4215 ;; Error while trying to load definition for system fast-io-test from
4216 ;; pathname [...]/fast-io-test.asd: The function CHECKL:DEFINE-TEST-OP
4217 ;; is undefined.
4218 '(#:tests? #f))
4219 (native-inputs
4220 `(("sbcl-fiveam" ,sbcl-fiveam)
4221 ("sbcl-checkl" ,sbcl-checkl)))
4222 (inputs
4223 `(("sbcl-alexandria" ,sbcl-alexandria)
4224 ("sbcl-trivial-gray-streams" ,sbcl-trivial-gray-streams)
4225 ("sbcl-static-vectors" ,sbcl-static-vectors)))
4226 (home-page "https://github.com/rpav/fast-io")
4227 (synopsis "Fast octet-vector/stream I/O for Common Lisp")
4228 (description
4229 "Fast-io is about improving performance to octet-vectors and octet
4230 streams (though primarily the former, while wrapping the latter).")
4231 ;; Author specifies this as NewBSD which is an alias
4232 (license license:bsd-3))))
4233
4234 (define-public cl-fast-io
4235 (sbcl-package->cl-source-package sbcl-fast-io))
4236
4237 (define-public sbcl-jonathan
4238 (let ((commit "1f448b4f7ac8265e56e1c02b32ce383e65316300")
4239 (revision "1"))
4240 (package
4241 (name "sbcl-jonathan")
4242 (version (git-version "0.1.0" revision commit))
4243 (source
4244 (origin
4245 (method git-fetch)
4246 (uri (git-reference
4247 (url "https://github.com/Rudolph-Miller/jonathan.git")
4248 (commit commit)))
4249 (file-name (git-file-name name version))
4250 (sha256
4251 (base32 "14x4iwz3mbag5jzzzr4sb6ai0m9r4q4kyypbq32jmsk2dx1hi807"))))
4252 (build-system asdf-build-system/sbcl)
4253 (arguments
4254 ;; Tests fail with: Component JONATHAN-ASD::JONATHAN-TEST not found,
4255 ;; required by #<SYSTEM "jonathan">. Why?
4256 `(#:tests? #f))
4257 (native-inputs
4258 `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
4259 ("sbcl-prove" ,sbcl-prove)))
4260 (inputs
4261 `(("sbcl-cl-syntax" ,sbcl-cl-syntax)
4262 ("sbcl-cl-syntax-annot" ,sbcl-cl-syntax-annot)
4263 ("sbcl-fast-io" ,sbcl-fast-io)
4264 ("sbcl-proc-parse" ,sbcl-proc-parse)
4265 ("sbcl-cl-ppcre" ,sbcl-cl-ppcre)))
4266 (home-page "http://rudolph-miller.github.io/jonathan/overview.html")
4267 (synopsis "JSON encoder and decoder")
4268 (description
4269 "High performance JSON encoder and decoder. Currently support: SBCL,
4270 CCL.")
4271 ;; Author specifies the MIT license
4272 (license license:expat))))
4273
4274 (define-public cl-jonathan
4275 (sbcl-package->cl-source-package sbcl-jonathan))
4276
4277 (define-public sbcl-http-body
4278 (let ((commit "dd01dc4f5842e3d29728552e5163acce8386eb73")
4279 (revision "1"))
4280 (package
4281 (name "sbcl-http-body")
4282 (version (git-version "0.1.0" revision commit))
4283 (source
4284 (origin
4285 (method git-fetch)
4286 (uri (git-reference
4287 (url "https://github.com/fukamachi/http-body")
4288 (commit commit)))
4289 (file-name (git-file-name name version))
4290 (sha256
4291 (base32 "1jd06snjvxcprhapgfq8sx0y5lrldkvhf206ix6d5a23dd6zcmr0"))))
4292 (build-system asdf-build-system/sbcl)
4293 (arguments
4294 ;; Tests fail with: Component HTTP-BODY-ASD::HTTP-BODY-TEST not
4295 ;; found, required by #<SYSTEM "http-body">. Why?
4296 `(#:tests? #f))
4297 (native-inputs
4298 `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
4299 ("sbcl-prove" ,sbcl-prove)))
4300 (inputs
4301 `(("sbcl-fast-http" ,sbcl-fast-http)
4302 ("sbcl-jonathan" ,sbcl-jonathan)
4303 ("sbcl-quri" ,sbcl-quri)))
4304 (home-page "https://github.com/fukamachi/http-body")
4305 (synopsis "HTTP POST data parser")
4306 (description
4307 "HTTP-Body parses HTTP POST data and returns POST parameters. It
4308 supports application/x-www-form-urlencoded, application/json, and
4309 multipart/form-data.")
4310 (license license:bsd-2))))
4311
4312 (define-public cl-http-body
4313 (sbcl-package->cl-source-package sbcl-http-body))
4314
4315 (define-public sbcl-circular-streams
4316 (let ((commit "e770bade1919c5e8533dd2078c93c3d3bbeb38df")
4317 (revision "1"))
4318 (package
4319 (name "sbcl-circular-streams")
4320 (version (git-version "0.1.0" revision commit))
4321 (source
4322 (origin
4323 (method git-fetch)
4324 (uri (git-reference
4325 (url "https://github.com/fukamachi/circular-streams")
4326 (commit commit)))
4327 (file-name (git-file-name name version))
4328 (sha256
4329 (base32 "1wpw6d5cciyqcf92f7mvihak52pd5s47kk4qq6f0r2z2as68p5rs"))))
4330 (build-system asdf-build-system/sbcl)
4331 (arguments
4332 ;; The tests depend on cl-test-more which is now prove. Prove
4333 ;; tests aren't working for some reason.
4334 `(#:tests? #f))
4335 (inputs
4336 `(("sbcl-fast-io" ,sbcl-fast-io)
4337 ("sbcl-trivial-gray-streams" ,sbcl-trivial-gray-streams)))
4338 (home-page "https://github.com/fukamachi/circular-streams")
4339 (synopsis "Circularly readable streams for Common Lisp")
4340 (description
4341 "Circular-Streams allows you to read streams circularly by wrapping real
4342 streams. Once you reach end-of-file of a stream, it's file position will be
4343 reset to 0 and you're able to read it again.")
4344 (license license:llgpl))))
4345
4346 (define-public cl-circular-streams
4347 (sbcl-package->cl-source-package sbcl-circular-streams))
4348
4349 (define-public sbcl-lack-request
4350 (let ((commit "abff8efeb0c3a848e6bb0022f2b8b7fa3a1bc88b")
4351 (revision "1"))
4352 (package
4353 (name "sbcl-lack-request")
4354 (version (git-version "0.1.0" revision commit))
4355 (source
4356 (origin
4357 (method git-fetch)
4358 (uri (git-reference
4359 (url "https://github.com/fukamachi/lack.git")
4360 (commit commit)))
4361 (file-name (git-file-name "lack-request" version))
4362 (sha256
4363 (base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85"))))
4364 (build-system asdf-build-system/sbcl)
4365 (arguments
4366 '(#:asd-file "lack-request.asd"
4367 #:asd-system-name "lack-request"
4368 #:test-asd-file "t-lack-request.asd"
4369 ;; XXX: Component :CLACK-TEST not found
4370 #:tests? #f))
4371 (native-inputs
4372 `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
4373 ("sbcl-prove" ,sbcl-prove)))
4374 (inputs
4375 `(("sbcl-quri" ,sbcl-quri)
4376 ("sbcl-http-body" ,sbcl-http-body)
4377 ("sbcl-circular-streams" ,sbcl-circular-streams)))
4378 (home-page "https://github.com/fukamachi/lack")
4379 (synopsis "Lack, the core of Clack")
4380 (description
4381 "Lack is a Common Lisp library which allows web applications to be
4382 constructed of modular components. It was originally a part of Clack, however
4383 it's going to be rewritten as an individual project since Clack v2 with
4384 performance and simplicity in mind.")
4385 (license license:llgpl))))
4386
4387 (define-public cl-lack-request
4388 (sbcl-package->cl-source-package sbcl-lack-request))
4389
4390 (define-public sbcl-local-time
4391 (let ((commit "beac054eef428552b63d4ae7820c32ffef9a3015")
4392 (revision "1"))
4393 (package
4394 (name "sbcl-local-time")
4395 (version (git-version "1.0.6" revision commit))
4396 (source
4397 (origin
4398 (method git-fetch)
4399 (uri (git-reference
4400 (url "https://github.com/dlowe-net/local-time.git")
4401 (commit commit)))
4402 (file-name (git-file-name name version))
4403 (sha256
4404 (base32 "0xhkmgxh41dg2wwlsp0h2l41jp144xn4gpxhh0lna6kh0560w2cc"))))
4405 (build-system asdf-build-system/sbcl)
4406 (arguments
4407 ;; TODO: Component :STEFIL not found, required by #<SYSTEM
4408 ;; "local-time/test">
4409 '(#:tests? #f))
4410 (native-inputs
4411 `(("stefil" ,sbcl-hu.dwim.stefil)))
4412 (inputs
4413 `(("sbcl-cl-fad" ,sbcl-cl-fad)))
4414 (home-page "https://common-lisp.net/project/local-time/")
4415 (synopsis "Time manipulation library for Common Lisp")
4416 (description
4417 "The LOCAL-TIME library is a Common Lisp library for the manipulation of
4418 dates and times. It is based almost entirely upon Erik Naggum's paper \"The
4419 Long Painful History of Time\".")
4420 (license license:expat))))
4421
4422 (define-public cl-local-time
4423 (sbcl-package->cl-source-package sbcl-local-time))
4424
4425 (define-public sbcl-lack-response
4426 (let ((commit "abff8efeb0c3a848e6bb0022f2b8b7fa3a1bc88b")
4427 (revision "1"))
4428 (package
4429 (name "sbcl-lack-response")
4430 (version (git-version "0.1.0" revision commit))
4431 (source
4432 (origin
4433 (method git-fetch)
4434 (uri (git-reference
4435 (url "https://github.com/fukamachi/lack.git")
4436 (commit commit)))
4437 (file-name (git-file-name name version))
4438 (sha256
4439 (base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85"))))
4440 (build-system asdf-build-system/sbcl)
4441 (arguments
4442 '(#:asd-file "lack-response.asd"
4443 #:asd-system-name "lack-response"
4444 ;; XXX: no tests for lack-response.
4445 #:tests? #f))
4446 (native-inputs
4447 `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
4448 ("sbcl-prove" ,sbcl-prove)))
4449 (inputs
4450 `(("sbcl-quri" ,sbcl-quri)
4451 ("sbcl-http-body" ,sbcl-http-body)
4452 ("sbcl-circular-streams" ,sbcl-circular-streams)
4453 ("sbcl-local-time" ,sbcl-local-time)))
4454 (home-page "https://github.com/fukamachi/lack")
4455 (synopsis "Lack, the core of Clack")
4456 (description
4457 "Lack is a Common Lisp library which allows web applications to be
4458 constructed of modular components. It was originally a part of Clack, however
4459 it's going to be rewritten as an individual project since Clack v2 with
4460 performance and simplicity in mind.")
4461 (license license:llgpl))))
4462
4463 (define-public cl-lack-response
4464 (sbcl-package->cl-source-package sbcl-lack-response))
4465
4466 (define-public sbcl-lack-component
4467 (let ((commit "abff8efeb0c3a848e6bb0022f2b8b7fa3a1bc88b")
4468 (revision "1"))
4469 (package
4470 (name "sbcl-lack-component")
4471 (version (git-version "0.0.0" revision commit))
4472 (source
4473 (origin
4474 (method git-fetch)
4475 (uri (git-reference
4476 (url "https://github.com/fukamachi/lack.git")
4477 (commit commit)))
4478 (file-name (git-file-name "lack-component" version))
4479 (sha256
4480 (base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85"))))
4481 (build-system asdf-build-system/sbcl)
4482 (arguments
4483 '(#:asd-file "lack-component.asd"
4484 #:asd-system-name "lack-component"
4485 #:test-asd-file "t-lack-component.asd"
4486 ;; XXX: Component :LACK-TEST not found
4487 #:tests? #f))
4488 (native-inputs
4489 `(("prove-asdf" ,sbcl-prove-asdf)))
4490 (home-page "https://github.com/fukamachi/lack")
4491 (synopsis "Lack, the core of Clack")
4492 (description
4493 "Lack is a Common Lisp library which allows web applications to be
4494 constructed of modular components. It was originally a part of Clack, however
4495 it's going to be rewritten as an individual project since Clack v2 with
4496 performance and simplicity in mind.")
4497 (license license:llgpl))))
4498
4499 (define-public cl-lack-component
4500 (sbcl-package->cl-source-package sbcl-lack-component))
4501
4502 (define-public sbcl-lack-util
4503 (let ((commit "abff8efeb0c3a848e6bb0022f2b8b7fa3a1bc88b")
4504 (revision "1"))
4505 (package
4506 (name "sbcl-lack-util")
4507 (version (git-version "0.1.0" revision commit))
4508 (source
4509 (origin
4510 (method git-fetch)
4511 (uri (git-reference
4512 (url "https://github.com/fukamachi/lack.git")
4513 (commit commit)))
4514 (file-name (git-file-name "lack-util" version))
4515 (sha256
4516 (base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85"))))
4517 (build-system asdf-build-system/sbcl)
4518 (arguments
4519 '(#:asd-file "lack-util.asd"
4520 #:asd-system-name "lack-util"
4521 #:test-asd-file "t-lack-util.asd"
4522 ;; XXX: Component :LACK-TEST not found
4523 #:tests? #f))
4524 (native-inputs
4525 `(("prove-asdf" ,sbcl-prove-asdf)))
4526 (inputs
4527 `(("sbcl-ironclad" ,sbcl-ironclad)))
4528 (home-page "https://github.com/fukamachi/lack")
4529 (synopsis "Lack, the core of Clack")
4530 (description
4531 "Lack is a Common Lisp library which allows web applications to be
4532 constructed of modular components. It was originally a part of Clack, however
4533 it's going to be rewritten as an individual project since Clack v2 with
4534 performance and simplicity in mind.")
4535 (license license:llgpl))))
4536
4537 (define-public cl-lack-util
4538 (sbcl-package->cl-source-package sbcl-lack-util))
4539
4540 (define-public sbcl-lack-middleware-backtrace
4541 (let ((commit "abff8efeb0c3a848e6bb0022f2b8b7fa3a1bc88b")
4542 (revision "1"))
4543 (package
4544 (name "sbcl-lack-middleware-backtrace")
4545 (version (git-version "0.1.0" revision commit))
4546 (source
4547 (origin
4548 (method git-fetch)
4549 (uri (git-reference
4550 (url "https://github.com/fukamachi/lack.git")
4551 (commit commit)))
4552 (file-name (git-file-name "lack-middleware-backtrace" version))
4553 (sha256
4554 (base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85"))))
4555 (build-system asdf-build-system/sbcl)
4556 (arguments
4557 '(#:asd-file "lack-middleware-backtrace.asd"
4558 #:asd-system-name "lack-middleware-backtrace"
4559 #:test-asd-file "t-lack-middleware-backtrace.asd"
4560 ;; XXX: Component :LACK not found
4561 #:tests? #f))
4562 (native-inputs
4563 `(("prove-asdf" ,sbcl-prove-asdf)))
4564 (home-page "https://github.com/fukamachi/lack")
4565 (synopsis "Lack, the core of Clack")
4566 (description
4567 "Lack is a Common Lisp library which allows web applications to be
4568 constructed of modular components. It was originally a part of Clack, however
4569 it's going to be rewritten as an individual project since Clack v2 with
4570 performance and simplicity in mind.")
4571 (license license:llgpl))))
4572
4573 (define-public cl-lack-middleware-backtrace
4574 (sbcl-package->cl-source-package sbcl-lack-middleware-backtrace))
4575
4576 (define-public sbcl-trivial-mimes
4577 (let ((commit "303f8ac0aa6ca0bc139aa3c34822e623c3723fab")
4578 (revision "1"))
4579 (package
4580 (name "sbcl-trivial-mimes")
4581 (version (git-version "1.1.0" revision commit))
4582 (source
4583 (origin
4584 (method git-fetch)
4585 (uri (git-reference
4586 (url "https://github.com/Shinmera/trivial-mimes.git")
4587 (commit commit)))
4588 (file-name (git-file-name name version))
4589 (sha256
4590 (base32 "17jxgl47r695bvsb7wi3n2ws5rp1zzgvw0zii8cy5ggw4b4ayv6m"))))
4591 (build-system asdf-build-system/sbcl)
4592 (arguments
4593 '(#:phases
4594 (modify-phases %standard-phases
4595 (add-after
4596 'unpack 'fix-paths
4597 (lambda* (#:key inputs #:allow-other-keys)
4598 (let ((anchor "#p\"/etc/mime.types\""))
4599 (substitute* "mime-types.lisp"
4600 ((anchor all)
4601 (string-append
4602 anchor "\n"
4603 "(asdf:system-relative-pathname :trivial-mimes "
4604 "\"../../share/common-lisp/" (%lisp-type)
4605 "-source/trivial-mimes/mime.types\")")))))))))
4606 (native-inputs
4607 `(("stefil" ,sbcl-hu.dwim.stefil)))
4608 (inputs
4609 `(("sbcl-cl-fad" ,sbcl-cl-fad)))
4610 (home-page "http://shinmera.github.io/trivial-mimes/")
4611 (synopsis "Tiny Common Lisp library to detect mime types in files")
4612 (description
4613 "This is a teensy library that provides some functions to determine the
4614 mime-type of a file.")
4615 (license license:artistic2.0))))
4616
4617 (define-public cl-trivial-mimes
4618 (sbcl-package->cl-source-package sbcl-trivial-mimes))
4619
4620 (define-public ecl-trivial-mimes
4621 (sbcl-package->ecl-package sbcl-trivial-mimes))
4622
4623 (define-public sbcl-lack-middleware-static
4624 (let ((commit "abff8efeb0c3a848e6bb0022f2b8b7fa3a1bc88b")
4625 (revision "1"))
4626 (package
4627 (name "sbcl-lack-middleware-static")
4628 (version (git-version "0.1.0" revision commit))
4629 (source
4630 (origin
4631 (method git-fetch)
4632 (uri (git-reference
4633 (url "https://github.com/fukamachi/lack.git")
4634 (commit commit)))
4635 (file-name (git-file-name "lack-middleware-static" version))
4636 (sha256
4637 (base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85"))))
4638 (build-system asdf-build-system/sbcl)
4639 (arguments
4640 '(#:asd-file "lack-middleware-static.asd"
4641 #:asd-system-name "lack-middleware-static"
4642 #:test-asd-file "t-lack-middleware-static.asd"
4643 ;; XXX: Component :LACK not found
4644 #:tests? #f))
4645 (native-inputs
4646 `(("prove-asdf" ,sbcl-prove-asdf)))
4647 (inputs
4648 `(("sbcl-ironclad" ,sbcl-ironclad)
4649 ("sbcl-trivial-mimes" ,sbcl-trivial-mimes)
4650 ("sbcl-local-time" ,sbcl-local-time)))
4651 (home-page "https://github.com/fukamachi/lack")
4652 (synopsis "Lack, the core of Clack")
4653 (description
4654 "Lack is a Common Lisp library which allows web applications to be
4655 constructed of modular components. It was originally a part of Clack, however
4656 it's going to be rewritten as an individual project since Clack v2 with
4657 performance and simplicity in mind.")
4658 (license license:llgpl))))
4659
4660 (define-public cl-lack-middleware-static
4661 (sbcl-package->cl-source-package sbcl-lack-middleware-static))
4662
4663 (define-public sbcl-lack
4664 (let ((commit "abff8efeb0c3a848e6bb0022f2b8b7fa3a1bc88b")
4665 (revision "1"))
4666 (package
4667 (name "sbcl-lack")
4668 (version (git-version "0.1.0" revision commit))
4669 (source
4670 (origin
4671 (method git-fetch)
4672 (uri (git-reference
4673 (url "https://github.com/fukamachi/lack.git")
4674 (commit commit)))
4675 (file-name (git-file-name "lack" version))
4676 (sha256
4677 (base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85"))))
4678 (build-system asdf-build-system/sbcl)
4679 (arguments
4680 '(#:test-asd-file "t-lack.asd"
4681 ;; XXX: Component :CLACK not found
4682 #:tests? #f))
4683 (native-inputs
4684 `(("prove-asdf" ,sbcl-prove-asdf)))
4685 (inputs
4686 `(("sbcl-lack-component" ,sbcl-lack-component)
4687 ("sbcl-lack-util" ,sbcl-lack-util)))
4688 (home-page "https://github.com/fukamachi/lack")
4689 (synopsis "Lack, the core of Clack")
4690 (description
4691 "Lack is a Common Lisp library which allows web applications to be
4692 constructed of modular components. It was originally a part of Clack, however
4693 it's going to be rewritten as an individual project since Clack v2 with
4694 performance and simplicity in mind.")
4695 (license license:llgpl))))
4696
4697 (define-public cl-lack
4698 (sbcl-package->cl-source-package sbcl-lack))
4699
4700 (define-public sbcl-ningle
4701 (let ((commit "50bd4f09b5a03a7249bd4d78265d6451563b25ad")
4702 (revision "1"))
4703 (package
4704 (name "sbcl-ningle")
4705 (version (git-version "0.3.0" revision commit))
4706 (source
4707 (origin
4708 (method git-fetch)
4709 (uri (git-reference
4710 (url "https://github.com/fukamachi/ningle.git")
4711 (commit commit)))
4712 (file-name (git-file-name name version))
4713 (sha256
4714 (base32 "1bsl8cnxhacb8p92z9n89vhk1ikmij5zavk0m2zvmj7iqm79jzgw"))))
4715 (build-system asdf-build-system/sbcl)
4716 (arguments
4717 ;; TODO: pull in clack-test
4718 '(#:tests? #f
4719 #:phases
4720 (modify-phases %standard-phases
4721 (delete 'cleanup-files)
4722 (delete 'cleanup)
4723 (add-before 'cleanup 'combine-fasls
4724 (lambda* (#:key outputs #:allow-other-keys)
4725 (let* ((out (assoc-ref outputs "out"))
4726 (lib (string-append out "/lib/sbcl"))
4727 (ningle-path (string-append lib "/ningle"))
4728 (fasl-files (find-files out "\\.fasl$")))
4729 (mkdir-p ningle-path)
4730 (let ((fasl-path (lambda (name)
4731 (string-append ningle-path
4732 "/"
4733 (basename name)
4734 "--system.fasl"))))
4735 (for-each (lambda (file)
4736 (rename-file file
4737 (fasl-path
4738 (basename file ".fasl"))))
4739 fasl-files))
4740 fasl-files)
4741 #t)))))
4742 (native-inputs
4743 `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
4744 ("sbcl-prove" ,sbcl-prove)))
4745 (inputs
4746 `(("sbcl-cl-syntax" ,sbcl-cl-syntax)
4747 ("sbcl-cl-syntax-annot" ,sbcl-cl-syntax-annot)
4748 ("sbcl-myway" ,sbcl-myway)
4749 ("sbcl-lack-request" ,sbcl-lack-request)
4750 ("sbcl-lack-response" ,sbcl-lack-response)
4751 ("sbcl-lack-component" ,sbcl-lack-component)
4752 ("sbcl-alexandria" ,sbcl-alexandria)
4753 ("sbcl-babel" ,sbcl-babel)))
4754 (home-page "http://8arrow.org/ningle/")
4755 (synopsis "Super micro framework for Common Lisp")
4756 (description
4757 "Ningle is a lightweight web application framework for Common Lisp.")
4758 (license license:llgpl))))
4759
4760 (define-public cl-ningle
4761 (sbcl-package->cl-source-package sbcl-ningle))
4762
4763 (define-public sbcl-clack
4764 (let ((commit "e3e032843bb1220ab96263c411aa7f2feb4746e0")
4765 (revision "1"))
4766 (package
4767 (name "sbcl-clack")
4768 (version (git-version "2.0.0" revision commit))
4769 (source
4770 (origin
4771 (method git-fetch)
4772 (uri (git-reference
4773 (url "https://github.com/fukamachi/clack.git")
4774 (commit commit)))
4775 (file-name (git-file-name name version))
4776 (sha256
4777 (base32 "1ymzs6qyrwhlj6cgqsnpyn6g5cbp7a3s1vgxwna20y2q7y4iacy0"))))
4778 (build-system asdf-build-system/sbcl)
4779 (inputs
4780 `(("sbcl-lack" ,sbcl-lack)
4781 ("sbcl-lack-middleware-backtrace" ,sbcl-lack-middleware-backtrace)
4782 ("sbcl-bordeaux-threads" ,sbcl-bordeaux-threads)))
4783 (home-page "https://github.com/fukamachi/clack")
4784 (synopsis "Web Application Environment for Common Lisp")
4785 (description
4786 "Clack is a web application environment for Common Lisp inspired by
4787 Python's WSGI and Ruby's Rack.")
4788 (license license:llgpl))))
4789
4790 (define-public cl-clack
4791 (sbcl-package->cl-source-package sbcl-clack))
4792
4793 (define-public sbcl-log4cl
4794 (let ((commit "611e094458504b938d49de904eab141285328c7c")
4795 (revision "1"))
4796 (package
4797 (name "sbcl-log4cl")
4798 (build-system asdf-build-system/sbcl)
4799 (version "1.1.2")
4800 (source
4801 (origin
4802 (method git-fetch)
4803 (uri (git-reference
4804 (url "https://github.com/sharplispers/log4cl")
4805 (commit commit)))
4806 (file-name (git-file-name name version))
4807 (sha256
4808 (base32
4809 "08jly0s0g26b56hhpfizxsb4j0yvbh946sd205gr42dkzv8l7dsc"))))
4810 ;; FIXME: tests require stefil, sbcl-hu.dwim.stefil wont work
4811 (arguments
4812 `(#:tests? #f))
4813 (inputs `(("bordeaux-threads" ,sbcl-bordeaux-threads)))
4814 (synopsis "Common Lisp logging framework, modeled after Log4J")
4815 (home-page "https://github.com/7max/log4cl")
4816 (description "This is a Common Lisp logging framework that can log at
4817 various levels and mix text with expressions.")
4818 (license license:asl2.0))))
4819
4820 (define-public cl-log4cl
4821 (sbcl-package->cl-source-package sbcl-log4cl))
4822
4823 (define-public ecl-log4cl
4824 (sbcl-package->ecl-package sbcl-log4cl))
4825
4826 (define-public sbcl-find-port
4827 (let ((commit "00c96a25af93a0f8681d34ec548861f2d7485478")
4828 (revision "1"))
4829 (package
4830 (name "sbcl-find-port")
4831 (build-system asdf-build-system/sbcl)
4832 (version "0.1")
4833 (home-page "https://github.com/eudoxia0/find-port")
4834 (source
4835 (origin
4836 (method git-fetch)
4837 (uri (git-reference
4838 (url home-page)
4839 (commit commit)))
4840 (file-name (git-file-name name version))
4841 (sha256
4842 (base32
4843 "0d6dzbb45jh0rx90wgs6v020k2xa87mvzas3mvfzvivjvqqlpryq"))))
4844 (native-inputs
4845 `(("fiveam" ,sbcl-fiveam)))
4846 (inputs
4847 `(("sbcl-usocket" ,sbcl-usocket)))
4848 (synopsis "Find open ports programmatically in Common Lisp")
4849 (description "This is a small Common Lisp library that finds an open
4850 port within a range.")
4851 (license license:expat))))
4852
4853 (define-public cl-find-port
4854 (sbcl-package->cl-source-package sbcl-find-port))
4855
4856 (define-public ecl-find-port
4857 (sbcl-package->ecl-package sbcl-find-port))
4858
4859 (define-public sbcl-clunit
4860 (let ((commit "6f6d72873f0e1207f037470105969384f8380628")
4861 (revision "1"))
4862 (package
4863 (name "sbcl-clunit")
4864 (version (git-version "0.2.3" revision commit))
4865 (source
4866 (origin
4867 (method git-fetch)
4868 (uri (git-reference
4869 (url "https://github.com/tgutu/clunit.git")
4870 (commit commit)))
4871 (file-name (git-file-name name version))
4872 (sha256
4873 (base32
4874 "1idf2xnqzlhi8rbrqmzpmb3i1l6pbdzhhajkmhwbp6qjkmxa4h85"))))
4875 (build-system asdf-build-system/sbcl)
4876 (synopsis "CLUnit is a Common Lisp unit testing framework")
4877 (description
4878 "CLUnit is a Common Lisp unit testing framework. It is designed
4879 to be easy to use so that you can quickly start testing. CLUnit
4880 provides a rich set of features aimed at improving your unit testing
4881 experience.")
4882 (home-page "http://tgutu.github.io/clunit/")
4883 ;; MIT License
4884 (license license:expat))))
4885
4886 (define-public cl-clunit
4887 (sbcl-package->cl-source-package sbcl-clunit))
4888
4889 (define-public ecl-clunit
4890 (sbcl-package->ecl-package sbcl-clunit))
4891
4892 (define-public sbcl-py4cl
4893 (let ((commit "4c8a2b0814fd311f978964f825ce012290f60136")
4894 (revision "1"))
4895 (package
4896 (name "sbcl-py4cl")
4897 (version (git-version "0.0.0" revision commit))
4898 (source
4899 (origin
4900 (method git-fetch)
4901 (uri (git-reference
4902 (url "https://github.com/bendudson/py4cl.git")
4903 (commit commit)))
4904 (file-name (git-file-name name version))
4905 (sha256
4906 (base32
4907 "15mk7qdqjkj56gdnbyrdyz6r7m1h26ldvn6ch96pmvg5vmr1m45r"))
4908 (modules '((guix build utils)))))
4909 (build-system asdf-build-system/sbcl)
4910 (native-inputs
4911 `(("sbcl-clunit" ,sbcl-clunit)))
4912 (inputs
4913 `(("sbcl-trivial-garbage" ,sbcl-trivial-garbage)))
4914 (propagated-inputs
4915 ;; This package doesn't do anything without python available
4916 `(("python" ,python)
4917 ;; For multi-dimensional array support
4918 ("python-numpy" ,python-numpy)))
4919 (arguments
4920 '(#:phases
4921 (modify-phases %standard-phases
4922 (add-after 'unpack 'replace-*base-directory*-var
4923 (lambda* (#:key outputs #:allow-other-keys)
4924 ;; In the ASD, the author makes an attempt to
4925 ;; programatically determine the location of the
4926 ;; source-code so lisp can call into "py4cl.py". We can
4927 ;; hard-code this since we know where this file will
4928 ;; reside.
4929 (substitute* "src/callpython.lisp"
4930 (("py4cl/config:\\*base-directory\\*")
4931 (string-append
4932 "\""
4933 (assoc-ref outputs "out")
4934 "/share/common-lisp/sbcl-source/py4cl/"
4935 "\""))))))))
4936 (synopsis "Call python from Common Lisp")
4937 (description
4938 "Py4CL is a bridge between Common Lisp and Python, which enables Common
4939 Lisp to interact with Python code. It uses streams to communicate with a
4940 separate python process, the approach taken by cl4py. This is different to
4941 the CFFI approach used by burgled-batteries, but has the same goal.")
4942 (home-page "https://github.com/bendudson/py4cl")
4943 ;; MIT License
4944 (license license:expat))))
4945
4946 (define-public cl-py4cl
4947 (sbcl-package->cl-source-package sbcl-py4cl))
4948
4949 (define-public ecl-py4cl
4950 (sbcl-package->ecl-package sbcl-py4cl))
4951
4952 (define-public sbcl-parse-declarations
4953 (package
4954 (name "sbcl-parse-declarations")
4955 (version "1.0.0")
4956 (source
4957 (origin
4958 (method url-fetch)
4959 (uri (string-append
4960 "http://beta.quicklisp.org/archive/parse-declarations/"
4961 "2010-10-06/parse-declarations-20101006-darcs.tgz"))
4962 (sha256
4963 (base32
4964 "0r85b0jfacd28kr65kw9c13dx4i6id1dpmby68zjy63mqbnyawrd"))))
4965 (build-system asdf-build-system/sbcl)
4966 (arguments
4967 `(#:asd-file "parse-declarations-1.0.asd"
4968 #:asd-system-name "parse-declarations-1.0"))
4969 (home-page "https://common-lisp.net/project/parse-declarations/")
4970 (synopsis "Parse, filter, and build declarations")
4971 (description
4972 "Parse-Declarations is a Common Lisp library to help writing
4973 macros which establish bindings. To be semantically correct, such
4974 macros must take user declarations into account, as these may affect
4975 the bindings they establish. Yet the ANSI standard of Common Lisp does
4976 not provide any operators to work with declarations in a convenient,
4977 high-level way. This library provides such operators.")
4978 ;; MIT License
4979 (license license:expat)))
4980
4981 (define-public cl-parse-declarations
4982 (sbcl-package->cl-source-package sbcl-parse-declarations))
4983
4984 (define-public ecl-parse-declarations
4985 (sbcl-package->ecl-package sbcl-parse-declarations))
4986
4987 (define-public sbcl-cl-quickcheck
4988 (let ((commit "807b2792a30c883a2fbecea8e7db355b50ba662f")
4989 (revision "1"))
4990 (package
4991 (name "sbcl-cl-quickcheck")
4992 (version (git-version "0.0.4" revision commit))
4993 (source
4994 (origin
4995 (method git-fetch)
4996 (uri (git-reference
4997 (url "https://github.com/mcandre/cl-quickcheck.git")
4998 (commit commit)))
4999 (file-name (git-file-name name version))
5000 (sha256
5001 (base32
5002 "165lhypq5xkcys6hvzb3jq7ywnmqvzaflda29qk2cbs3ggas4767"))))
5003 (build-system asdf-build-system/sbcl)
5004 (synopsis
5005 "Common Lisp port of the QuickCheck unit test framework")
5006 (description
5007 "Common Lisp port of the QuickCheck unit test framework")
5008 (home-page "https://github.com/mcandre/cl-quickcheck")
5009 ;; MIT
5010 (license license:expat))))
5011
5012 (define-public cl-cl-quickcheck
5013 (sbcl-package->cl-source-package sbcl-cl-quickcheck))
5014
5015 (define-public ecl-cl-quickcheck
5016 (sbcl-package->ecl-package sbcl-cl-quickcheck))
5017
5018 (define-public sbcl-burgled-batteries3
5019 (let ((commit "9c0f6667e1a71ddf77e21793a0bea524710fef6e")
5020 (revision "1"))
5021 (package
5022 (name "sbcl-burgled-batteries3")
5023 (version (git-version "0.0.0" revision commit))
5024 (source
5025 (origin
5026 (method git-fetch)
5027 (uri (git-reference
5028 (url "https://github.com/snmsts/burgled-batteries3.git")
5029 (commit commit)))
5030 (file-name (git-file-name name version))
5031 (sha256
5032 (base32
5033 "0b726kz2xxcg5l930gz035rsdvhxrzmp05iwfwympnb4z4ammicb"))))
5034 (build-system asdf-build-system/sbcl)
5035 (arguments
5036 '(#:tests? #f
5037 #:phases
5038 (modify-phases %standard-phases
5039 (add-after 'unpack 'set-*cpython-include-dir*-var
5040 (lambda* (#:key inputs #:allow-other-keys)
5041 (substitute* "grovel-include-dir.lisp"
5042 (("\\(defparameter \\*cpython-include-dir\\* \\(detect-python\\)\\)")
5043 (string-append
5044 "(defparameter *cpython-include-dir* \""
5045 (assoc-ref inputs "python")
5046 "/include/python3.7m"
5047 "\")")))
5048 (substitute* "ffi-interface.lisp"
5049 (("\\*cpython-lib\\*")
5050 (format #f "'(\"~a/lib/libpython3.so\")"
5051 (assoc-ref inputs "python"))))
5052 #t)))))
5053 (native-inputs
5054 `(("python" ,python)
5055 ("sbcl-cl-fad" ,sbcl-cl-fad)
5056 ("sbcl-lift" ,sbcl-lift)
5057 ("sbcl-cl-quickcheck" ,sbcl-cl-quickcheck)))
5058 (inputs
5059 `(("sbcl-cffi" ,sbcl-cffi)
5060 ("sbcl-cffi-grovel" ,sbcl-cffi-grovel)
5061 ("sbcl-alexandria" , sbcl-alexandria)
5062 ("sbcl-parse-declarations-1.0" ,sbcl-parse-declarations)
5063 ("sbcl-trivial-garbage" ,sbcl-trivial-garbage)))
5064 (synopsis "Bridge between Python and Lisp (FFI bindings, etc.)")
5065 (description
5066 "This package provides a shim between Python3 (specifically, the
5067 CPython implementation of Python) and Common Lisp.")
5068 (home-page "https://github.com/snmsts/burgled-batteries3")
5069 ;; MIT
5070 (license license:expat))))
5071
5072 (define-public cl-burgled-batteries3
5073 (sbcl-package->cl-source-package sbcl-burgled-batteries3))
5074
5075 (define-public ecl-burgled-batteries3
5076 (sbcl-package->ecl-package sbcl-burgled-batteries3))
5077
5078 (define-public sbcl-metabang-bind
5079 (let ((commit "c93b7f7e1c18c954c2283efd6a7fdab36746ab5e")
5080 (revision "1"))
5081 (package
5082 (name "sbcl-metabang-bind")
5083 (version (git-version "0.8.0" revision commit))
5084 (source
5085 (origin
5086 (method git-fetch)
5087 (uri (git-reference
5088 (url "https://github.com/gwkkwg/metabang-bind.git")
5089 (commit commit)))
5090 (file-name (git-file-name name version))
5091 (sha256
5092 (base32
5093 "0hd0kr91795v77akpbcyqiss9p0p7ypa9dznrllincnmgvsxlmf0"))))
5094 (build-system asdf-build-system/sbcl)
5095 (native-inputs
5096 `(("sbcl-lift" ,sbcl-lift)))
5097 (synopsis "Macro that generalizes @code{multiple-value-bind} etc.")
5098 (description
5099 "Bind extends the idea of of let and destructing to provide a uniform
5100 syntax for all your accessor needs. It combines @code{let},
5101 @code{destructuring-bind}, @code{with-slots}, @code{with-accessors}, structure
5102 editing, property or association-lists, and @code{multiple-value-bind} and a
5103 whole lot more into a single form.")
5104 (home-page "https://common-lisp.net/project/metabang-bind/")
5105 ;; MIT License
5106 (license license:expat))))
5107
5108 (define-public cl-metabang-bind
5109 (sbcl-package->cl-source-package sbcl-metabang-bind))
5110
5111 (define-public ecl-metabang-bind
5112 (sbcl-package->ecl-package sbcl-metabang-bind))
5113
5114 (define-public sbcl-fare-utils
5115 (let ((commit "66e9c6f1499140bc00ccc22febf2aa528cbb5724")
5116 (revision "1"))
5117 (package
5118 (name "sbcl-fare-utils")
5119 (version (git-version "1.0.0.5" revision commit))
5120 (source
5121 (origin
5122 (method git-fetch)
5123 (uri
5124 (git-reference
5125 (url
5126 "https://gitlab.common-lisp.net/frideau/fare-utils.git")
5127 (commit commit)))
5128 (file-name (git-file-name name version))
5129 (sha256
5130 (base32
5131 "01wsr1aap3jdzhn4hrqjbhsjx6qci9dbd3gh4gayv1p49rbg8aqr"))))
5132 (build-system asdf-build-system/sbcl)
5133 (arguments
5134 `(#:test-asd-file "test/fare-utils-test.asd"))
5135 (native-inputs
5136 `(("sbcl-hu.dwim.stefil" ,sbcl-hu.dwim.stefil)))
5137 (synopsis "Collection of utilities and data structures")
5138 (description
5139 "fare-utils is a small collection of utilities. It contains a lot of
5140 basic everyday functions and macros.")
5141 (home-page "https://gitlab.common-lisp.net/frideau/fare-utils")
5142 ;; MIT License
5143 (license license:expat))))
5144
5145 (define-public cl-fare-utils
5146 (sbcl-package->cl-source-package sbcl-fare-utils))
5147
5148 (define-public ecl-fare-utils
5149 (sbcl-package->ecl-package sbcl-fare-utils))
5150
5151 (define-public sbcl-trivial-utf-8
5152 (let ((commit "4d427cfbb1c452436a0efb71c3205c9da67f718f")
5153 (revision "1"))
5154 (package
5155 (name "sbcl-trivial-utf-8")
5156 (version (git-version "0.0.0" revision commit))
5157 (source
5158 (origin
5159 (method git-fetch)
5160 (uri
5161 (git-reference
5162 (url (string-append "https://gitlab.common-lisp.net/"
5163 "trivial-utf-8/trivial-utf-8.git"))
5164 (commit commit)))
5165 (file-name (git-file-name name version))
5166 (sha256
5167 (base32
5168 "1jz27gz8gvqdmvp3k9bxschs6d5b3qgk94qp2bj6nv1d0jc3m1l1"))))
5169 (arguments
5170 ;; Guix incorrectly assumes the "8" is part of the version
5171 ;; number and lobs it off.
5172 `(#:asd-file "trivial-utf-8.asd"
5173 #:asd-system-name "trivial-utf-8"))
5174 (build-system asdf-build-system/sbcl)
5175 (synopsis "UTF-8 input/output library")
5176 (description
5177 "The Babel library solves a similar problem while understanding more
5178 encodings. Trivial UTF-8 was written before Babel existed, but for new
5179 projects you might be better off going with Babel. The one plus that Trivial
5180 UTF-8 has is that it doesn't depend on any other libraries.")
5181 (home-page "https://common-lisp.net/project/trivial-utf-8/")
5182 (license license:bsd-3))))
5183
5184 (define-public cl-trivial-utf-8
5185 (sbcl-package->cl-source-package sbcl-trivial-utf-8))
5186
5187 (define-public ecl-trivial-utf-8
5188 (sbcl-package->ecl-package sbcl-trivial-utf-8))
5189
5190 (define-public sbcl-idna
5191 (package
5192 (name "sbcl-idna")
5193 (build-system asdf-build-system/sbcl)
5194 (version "0.2.2")
5195 (home-page "https://github.com/antifuchs/idna")
5196 (source
5197 (origin
5198 (method git-fetch)
5199 (uri (git-reference
5200 (url home-page)
5201 (commit version)))
5202 (file-name (git-file-name name version))
5203 (sha256
5204 (base32
5205 "00nbr3mffxhlq14gg9d16pa6691s4qh35inyw76v906s77khm5a2"))))
5206 (inputs
5207 `(("split-sequence" ,sbcl-split-sequence)))
5208 (synopsis "IDNA string encoding and decoding routines for Common Lisp")
5209 (description "This Common Lisp library provides string encoding and
5210 decoding routines for IDNA, the International Domain Names in Applications.")
5211 (license license:expat)))
5212
5213 (define-public cl-idna
5214 (sbcl-package->cl-source-package sbcl-idna))
5215
5216 (define-public ecl-idna
5217 (sbcl-package->ecl-package sbcl-idna))
5218
5219 (define-public sbcl-swap-bytes
5220 (package
5221 (name "sbcl-swap-bytes")
5222 (build-system asdf-build-system/sbcl)
5223 (version "1.1")
5224 (home-page "https://github.com/sionescu/swap-bytes")
5225 (source
5226 (origin
5227 (method git-fetch)
5228 (uri (git-reference
5229 (url home-page)
5230 (commit (string-append "v" version))))
5231 (file-name (git-file-name name version))
5232 (sha256
5233 (base32
5234 "1qysbv0jngdfkv53y874qjhcxc4qi8ixaqq6j8bzxh5z0931wv55"))))
5235 (inputs
5236 `(("trivial-features" ,sbcl-trivial-features)))
5237 (native-inputs
5238 `(("fiveam" ,sbcl-fiveam)))
5239 (arguments
5240 ;; TODO: Tests fail, why?
5241 `(#:tests? #f))
5242 (synopsis "Efficient endianness conversion for Common Lisp")
5243 (description "This Common Lisp library provides optimized byte-swapping
5244 primitives. The library can change endianness of unsigned integers of length
5245 1/2/4/8. Very useful in implementing various network protocols and file
5246 formats.")
5247 (license license:expat)))
5248
5249 (define-public cl-swap-bytes
5250 (sbcl-package->cl-source-package sbcl-swap-bytes))
5251
5252 (define-public ecl-swap-bytes
5253 (sbcl-package->ecl-package sbcl-swap-bytes))
5254
5255 (define-public sbcl-iolib.asdf
5256 ;; Latest release is from June 2017.
5257 (let ((commit "81e20614c0d27f9605bf9766214e236fd31b99b4")
5258 (revision "1"))
5259 (package
5260 (name "sbcl-iolib.asdf")
5261 (build-system asdf-build-system/sbcl)
5262 (version "0.8.3")
5263 (home-page "https://github.com/sionescu/iolib")
5264 (source
5265 (origin
5266 (method git-fetch)
5267 (uri (git-reference
5268 (url home-page)
5269 (commit commit)))
5270 (file-name (git-file-name name version))
5271 (sha256
5272 (base32
5273 "1j81r0wm7nfbwl991f26s4npcy7kybzybd3m47rbxy31h0cfcmdm"))))
5274 (inputs
5275 `(("alexandria" ,sbcl-alexandria)))
5276 (arguments
5277 '(#:asd-file "iolib.asdf.asd"))
5278 (synopsis "ASDF component classes for IOLib, a Common Lisp I/O library")
5279 (description "IOlib is to be a better and more modern I/O library than
5280 the standard Common Lisp library. It contains a socket library, a DNS
5281 resolver, an I/O multiplexer(which supports @code{select(2)}, @code{epoll(4)}
5282 and @code{kqueue(2)}), a pathname library and file-system utilities.")
5283 (license license:expat))))
5284
5285 (define-public sbcl-iolib.conf
5286 (package
5287 (inherit sbcl-iolib.asdf)
5288 (name "sbcl-iolib.conf")
5289 (inputs
5290 `(("iolib.asdf" ,sbcl-iolib.asdf)))
5291 (arguments
5292 '(#:asd-file "iolib.conf.asd"))
5293 (synopsis "Compile-time configuration for IOLib, a Common Lisp I/O library")))
5294
5295 (define-public sbcl-iolib.common-lisp
5296 (package
5297 (inherit sbcl-iolib.asdf)
5298 (name "sbcl-iolib.common-lisp")
5299 (inputs
5300 `(("iolib.asdf" ,sbcl-iolib.asdf)
5301 ("iolib.conf" ,sbcl-iolib.conf)))
5302 (arguments
5303 '(#:asd-file "iolib.common-lisp.asd"))
5304 (synopsis "Slightly modified Common Lisp for IOLib, a Common Lisp I/O library")))
5305
5306 (define-public sbcl-iolib.base
5307 (package
5308 (inherit sbcl-iolib.asdf)
5309 (name "sbcl-iolib.base")
5310 (inputs
5311 `(("iolib.asdf" ,sbcl-iolib.asdf)
5312 ("iolib.conf" ,sbcl-iolib.conf)
5313 ("iolib.common-lisp" ,sbcl-iolib.common-lisp)
5314 ("split-sequence" ,sbcl-split-sequence)))
5315 (arguments
5316 '(#:asd-file "iolib.base.asd"))
5317 (synopsis "Base package for IOLib, a Common Lisp I/O library")))
5318
5319 (define-public sbcl-iolib.grovel
5320 (package
5321 (inherit sbcl-iolib.asdf)
5322 (name "sbcl-iolib.grovel")
5323 (inputs
5324 `(("iolib.asdf" ,sbcl-iolib.asdf)
5325 ("iolib.conf" ,sbcl-iolib.conf)
5326 ("iolib.base", sbcl-iolib.base)
5327 ("cffi", sbcl-cffi)))
5328 (arguments
5329 '(#:asd-file "iolib.grovel.asd"
5330 #:phases
5331 (modify-phases %standard-phases
5332 (add-after 'install 'install-header
5333 (lambda* (#:key outputs #:allow-other-keys)
5334 ;; This header is required by sbcl-iolib.
5335 (install-file "src/grovel/grovel-common.h"
5336 (string-append (assoc-ref outputs "out")
5337 "/lib/sbcl"))
5338 #t)))))
5339 (synopsis "CFFI Groveller for IOLib, a Common Lisp I/O library")))
5340
5341 (define-public sbcl-iolib
5342 (package
5343 (inherit sbcl-iolib.asdf)
5344 (name "sbcl-iolib")
5345 (inputs
5346 `(("iolib.asdf" ,sbcl-iolib.asdf)
5347 ("iolib.conf" ,sbcl-iolib.conf)
5348 ("iolib.grovel" ,sbcl-iolib.grovel)
5349 ("iolib.base" ,sbcl-iolib.base)
5350 ("bordeaux-threads" ,sbcl-bordeaux-threads)
5351 ("idna" ,sbcl-idna)
5352 ("swap-bytes" ,sbcl-swap-bytes)
5353 ("libfixposix" ,libfixposix)
5354 ("cffi" ,sbcl-cffi)))
5355 (native-inputs
5356 `(("fiveam" ,sbcl-fiveam)))
5357 (arguments
5358 '(#:asd-file "iolib.asd"
5359 #:asd-system-name "iolib"
5360 #:test-asd-file "iolib.tests.asd"
5361 #:phases
5362 (modify-phases %standard-phases
5363 (add-after 'unpack 'fix-paths
5364 (lambda* (#:key inputs #:allow-other-keys)
5365 (substitute* "src/syscalls/ffi-functions-unix.lisp"
5366 (("\\(:default \"libfixposix\"\\)")
5367 (string-append
5368 "(:default \""
5369 (assoc-ref inputs "libfixposix") "/lib/libfixposix\")")))
5370 ;; Socket tests need Internet access, disable them.
5371 (substitute* "iolib.tests.asd"
5372 (("\\(:file \"sockets\" :depends-on \\(\"pkgdcl\" \"defsuites\"\\)\\)")
5373 "")))))))
5374 (synopsis "Common Lisp I/O library")))
5375
5376 (define-public cl-iolib
5377 (sbcl-package->cl-source-package sbcl-iolib))
5378
5379 (define sbcl-iolib+multiplex
5380 (package
5381 (inherit sbcl-iolib)
5382 (name "sbcl-iolib+multiplex")
5383 (arguments
5384 (substitute-keyword-arguments (package-arguments sbcl-iolib)
5385 ((#:asd-system-name _) "iolib/multiplex")))))
5386
5387 (define sbcl-iolib+syscalls
5388 (package
5389 (inherit sbcl-iolib)
5390 (name "sbcl-iolib+syscalls")
5391 (arguments
5392 (substitute-keyword-arguments (package-arguments sbcl-iolib)
5393 ((#:asd-system-name _) "iolib/syscalls")))))
5394
5395 (define sbcl-iolib+streams
5396 (package
5397 (inherit sbcl-iolib)
5398 (name "sbcl-iolib+streams")
5399 (arguments
5400 (substitute-keyword-arguments (package-arguments sbcl-iolib)
5401 ((#:asd-system-name _) "iolib/streams")))))
5402
5403 (define sbcl-iolib+sockets
5404 (package
5405 (inherit sbcl-iolib)
5406 (name "sbcl-iolib+sockets")
5407 (arguments
5408 (substitute-keyword-arguments (package-arguments sbcl-iolib)
5409 ((#:asd-system-name _) "iolib/sockets")))))
5410
5411 (define-public sbcl-ieee-floats
5412 (let ((commit "566b51a005e81ff618554b9b2f0b795d3b29398d")
5413 (revision "1"))
5414 (package
5415 (name "sbcl-ieee-floats")
5416 (build-system asdf-build-system/sbcl)
5417 (version (git-version "20170924" revision commit))
5418 (home-page "https://github.com/marijnh/ieee-floats/")
5419 (source
5420 (origin
5421 (method git-fetch)
5422 (uri (git-reference
5423 (url home-page)
5424 (commit commit)))
5425 (file-name (git-file-name name version))
5426 (sha256
5427 (base32
5428 "1xyj49j9x3lc84cv3dhbf9ja34ywjk1c46dklx425fxw9mkwm83m"))))
5429 (native-inputs
5430 `(("fiveam" ,sbcl-fiveam)))
5431 (synopsis "IEEE 754 binary representation for floats in Common Lisp")
5432 (description "This is a Common Lisp library that allows to convert
5433 floating point values to IEEE 754 binary representation.")
5434 (license license:bsd-3))))
5435
5436 (define-public cl-ieee-floats
5437 (sbcl-package->cl-source-package sbcl-ieee-floats))
5438
5439 (define sbcl-closure-common
5440 (let ((commit "e3c5f5f454b72b01b89115e581c3c52a7e201e5c")
5441 (revision "1"))
5442 (package
5443 (name "sbcl-closure-common")
5444 (build-system asdf-build-system/sbcl)
5445 (version (git-version "20101006" revision commit))
5446 (home-page "https://common-lisp.net/project/cxml/")
5447 (source
5448 (origin
5449 (method git-fetch)
5450 (uri (git-reference
5451 (url "https://github.com/sharplispers/closure-common")
5452 (commit commit)))
5453 (file-name (git-file-name name version))
5454 (sha256
5455 (base32
5456 "0k5r2qxn122pxi301ijir3nayi9sg4d7yiy276l36qmzwhp4mg5n"))))
5457 (inputs
5458 `(("trivial-gray-streams" ,sbcl-trivial-gray-streams)
5459 ("babel" ,sbcl-babel)))
5460 (synopsis "Support Common Lisp library for CXML")
5461 (description "Closure-common is an internal helper library. The name
5462 Closure is a reference to the web browser it was originally written for.")
5463 ;; TODO: License?
5464 (license #f))))
5465
5466 (define-public sbcl-cxml+xml
5467 (let ((commit "00b22bf4c4cf11c993d5866fae284f95ab18e6bf")
5468 (revision "1"))
5469 (package
5470 (name "sbcl-cxml+xml")
5471 (build-system asdf-build-system/sbcl)
5472 (version (git-version "0.0.0" revision commit))
5473 (home-page "https://common-lisp.net/project/cxml/")
5474 (source
5475 (origin
5476 (method git-fetch)
5477 (uri (git-reference
5478 (url "https://github.com/sharplispers/cxml")
5479 (commit commit)))
5480 (file-name (git-file-name name version))
5481 (sha256
5482 (base32
5483 "13kif7rf3gqdycsk9zq0d7y0g9y81krkl0z87k0p2fkbjfgrph37"))))
5484 (inputs
5485 `(("closure-common" ,sbcl-closure-common)
5486 ("puri" ,sbcl-puri)
5487 ("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
5488 (arguments
5489 `(#:asd-file "cxml.asd"
5490 #:asd-system-name "cxml/xml"))
5491 (synopsis "Common Lisp XML parser")
5492 (description "CXML implements a namespace-aware, validating XML 1.0
5493 parser as well as the DOM Level 2 Core interfaces. Two parser interfaces are
5494 offered, one SAX-like, the other similar to StAX.")
5495 (license license:llgpl))))
5496
5497 (define sbcl-cxml+dom
5498 (package
5499 (inherit sbcl-cxml+xml)
5500 (name "sbcl-cxml+dom")
5501 (inputs
5502 `(("closure-common" ,sbcl-closure-common)
5503 ("puri" ,sbcl-puri)
5504 ("cxml+xml" ,sbcl-cxml+xml)))
5505 (arguments
5506 `(#:asd-file "cxml.asd"
5507 #:asd-system-name "cxml/dom"))))
5508
5509 (define sbcl-cxml+klacks
5510 (package
5511 (inherit sbcl-cxml+xml)
5512 (name "sbcl-cxml+klacks")
5513 (inputs
5514 `(("closure-common" ,sbcl-closure-common)
5515 ("puri" ,sbcl-puri)
5516 ("cxml+xml" ,sbcl-cxml+xml)))
5517 (arguments
5518 `(#:asd-file "cxml.asd"
5519 #:asd-system-name "cxml/klacks"))))
5520
5521 (define sbcl-cxml+test
5522 (package
5523 (inherit sbcl-cxml+xml)
5524 (name "sbcl-cxml+test")
5525 (inputs
5526 `(("closure-common" ,sbcl-closure-common)
5527 ("puri" ,sbcl-puri)
5528 ("cxml+xml" ,sbcl-cxml+xml)))
5529 (arguments
5530 `(#:asd-file "cxml.asd"
5531 #:asd-system-name "cxml/test"))))
5532
5533 (define-public sbcl-cxml
5534 (package
5535 (inherit sbcl-cxml+xml)
5536 (name "sbcl-cxml")
5537 (inputs
5538 `(("closure-common" ,sbcl-closure-common)
5539 ("puri" ,sbcl-puri)
5540 ("trivial-gray-streams" ,sbcl-trivial-gray-streams)
5541 ("cxml+dom" ,sbcl-cxml+dom)
5542 ("cxml+klacks" ,sbcl-cxml+klacks)
5543 ("cxml+test" ,sbcl-cxml+test)))
5544 (arguments
5545 `(#:asd-file "cxml.asd"
5546 #:asd-system-name "cxml"
5547 #:phases
5548 (modify-phases %standard-phases
5549 (add-after 'build 'install-dtd
5550 (lambda* (#:key outputs #:allow-other-keys)
5551 (install-file "catalog.dtd"
5552 (string-append
5553 (assoc-ref outputs "out")
5554 "/lib/" (%lisp-type)))))
5555 (add-after 'create-asd 'remove-component
5556 ;; XXX: The original .asd has no components, but our build system
5557 ;; creates an entry nonetheless. We need to remove it for the
5558 ;; generated .asd to load properly. See trivia.trivial for a
5559 ;; similar problem.
5560 (lambda* (#:key outputs #:allow-other-keys)
5561 (let* ((out (assoc-ref outputs "out"))
5562 (asd (string-append out "/lib/sbcl/cxml.asd")))
5563 (substitute* asd
5564 ((" :components
5565 ")
5566 ""))
5567 (substitute* asd
5568 ((" *\\(\\(:compiled-file \"cxml--system\"\\)\\)")
5569 ""))))))))))
5570
5571 (define-public cl-cxml
5572 (sbcl-package->cl-source-package sbcl-cxml))
5573
5574 (define-public sbcl-cl-reexport
5575 (let ((commit "312f3661bbe187b5f28536cd7ec2956e91366c3b")
5576 (revision "1"))
5577 (package
5578 (name "sbcl-cl-reexport")
5579 (build-system asdf-build-system/sbcl)
5580 (version (git-version "0.1" revision commit))
5581 (home-page "https://github.com/takagi/cl-reexport")
5582 (source
5583 (origin
5584 (method git-fetch)
5585 (uri (git-reference
5586 (url home-page)
5587 (commit commit)))
5588 (file-name (git-file-name name version))
5589 (sha256
5590 (base32
5591 "1cwpn1m3wrl0fl9plznn7p464db646gnfc8zkyk97dyxski2aq0x"))))
5592 (inputs
5593 `(("alexandria" ,sbcl-alexandria)))
5594 (arguments
5595 ;; TODO: Tests fail because cl-test-more is missing, but I can't find it online.
5596 `(#:tests? #f))
5597 (synopsis "HTTP cookie manager for Common Lisp")
5598 (description "cl-cookie is a Common Lisp library featuring parsing of
5599 cookie headers, cookie creation, cookie jar creation and more.")
5600 (license license:llgpl))))
5601
5602 (define-public cl-reexport
5603 (sbcl-package->cl-source-package sbcl-cl-reexport))
5604
5605 (define-public sbcl-cl-cookie
5606 (let ((commit "cea55aed8b9ad25fafd13defbcb9fe8f41b29546")
5607 (revision "1"))
5608 (package
5609 (name "sbcl-cl-cookie")
5610 (build-system asdf-build-system/sbcl)
5611 (version (git-version "0.9.10" revision commit))
5612 (home-page "https://github.com/fukamachi/cl-cookie")
5613 (source
5614 (origin
5615 (method git-fetch)
5616 (uri (git-reference
5617 (url home-page)
5618 (commit commit)))
5619 (file-name (git-file-name name version))
5620 (sha256
5621 (base32
5622 "090g7z75h98zvc1ldx0vh4jn4086dhjm2w30jcwkq553qmyxwl8h"))))
5623 (inputs
5624 `(("proc-parse" ,sbcl-proc-parse)
5625 ("alexandria" ,sbcl-alexandria)
5626 ("quri" ,sbcl-quri)
5627 ("cl-ppcre" ,sbcl-cl-ppcre)
5628 ("local-time" ,sbcl-local-time)))
5629 (native-inputs
5630 `(("prove-asdf" ,sbcl-prove-asdf)
5631 ("prove" ,sbcl-prove)))
5632 (arguments
5633 ;; TODO: Tests fail because cl-cookie depends on cl-cookie-test.
5634 `(#:tests? #f))
5635 (synopsis "HTTP cookie manager for Common Lisp")
5636 (description "cl-cookie is a Common Lisp library featuring parsing of
5637 cookie headers, cookie creation, cookie jar creation and more.")
5638 (license license:bsd-2))))
5639
5640 (define-public cl-cookie
5641 (sbcl-package->cl-source-package sbcl-cl-cookie))
5642
5643 (define-public sbcl-dexador
5644 (let ((commit "a2714d126cc94bc7a9a6e1e3c08de455b3a66378")
5645 (revision "1"))
5646 (package
5647 (name "sbcl-dexador")
5648 (build-system asdf-build-system/sbcl)
5649 (version (git-version "0.9.10" revision commit))
5650 (home-page "https://github.com/fukamachi/dexador")
5651 (source
5652 (origin
5653 (method git-fetch)
5654 (uri (git-reference
5655 (url home-page)
5656 (commit commit)))
5657 (file-name (git-file-name name version))
5658 (sha256
5659 (base32
5660 "0nbqgn4v3l2z6m1k1bdxfnqpfrk84nxdmz7csz11zzcfs4flkv79"))))
5661 (inputs
5662 `(("trivial-gray-streams" ,sbcl-trivial-gray-streams)
5663 ("babel" ,sbcl-babel)
5664 ("usocket" ,sbcl-usocket)
5665 ("fast-http" ,sbcl-fast-http)
5666 ("quri" ,sbcl-quri)
5667 ("fast-io" ,sbcl-fast-io)
5668 ("chunga" ,sbcl-chunga)
5669 ("cl-ppcre" ,sbcl-cl-ppcre)
5670 ("cl-cookie" ,sbcl-cl-cookie)
5671 ("trivial-mimes" ,sbcl-trivial-mimes)
5672 ("chipz" ,sbcl-chipz)
5673 ("cl-base64" ,sbcl-cl-base64)
5674 ("cl-reexport" ,sbcl-cl-reexport)
5675 ("cl+ssl" ,sbcl-cl+ssl)
5676 ("bordeaux-threads" ,sbcl-bordeaux-threads)
5677 ("alexandria" ,sbcl-alexandria)))
5678 (native-inputs
5679 `(("prove" ,sbcl-prove)
5680 ("prove-asdf" ,sbcl-prove-asdf)
5681 ("lack-request" ,sbcl-lack-request)
5682 ("clack" ,sbcl-clack)
5683 ("babel" ,sbcl-babel)
5684 ("alexandria" ,sbcl-alexandria)
5685 ("cl-ppcre" ,sbcl-cl-ppcre)
5686 ("local-time" ,sbcl-local-time)))
5687 (arguments
5688 ;; TODO: Circular dependency: tests depend on clack-test which depends on dexador.
5689 `(#:tests? #f
5690 #:phases
5691 (modify-phases %standard-phases
5692 (add-after 'unpack 'fix-permissions
5693 (lambda _ (make-file-writable "t/data/test.gz") #t)))))
5694 (synopsis "Yet another HTTP client for Common Lisp")
5695 (description "Dexador is yet another HTTP client for Common Lisp with
5696 neat APIs and connection-pooling. It is meant to supersede Drakma.")
5697 (license license:expat))))
5698
5699 (define-public cl-dexador
5700 (package
5701 (inherit (sbcl-package->cl-source-package sbcl-dexador))
5702 (arguments
5703 `(#:phases
5704 ;; asdf-build-system/source has its own phases and does not inherit
5705 ;; from asdf-build-system/sbcl phases.
5706 (modify-phases %standard-phases/source
5707 (add-after 'unpack 'fix-permissions
5708 (lambda _ (make-file-writable "t/data/test.gz") #t)))))))
5709
5710 (define-public ecl-dexador
5711 (sbcl-package->ecl-package sbcl-dexador))
5712
5713 (define-public sbcl-lisp-namespace
5714 (let ((commit "28107cafe34e4c1c67490fde60c7f92dc610b2e0")
5715 (revision "1"))
5716 (package
5717 (name "sbcl-lisp-namespace")
5718 (build-system asdf-build-system/sbcl)
5719 (version (git-version "0.1" revision commit))
5720 (home-page "https://github.com/guicho271828/lisp-namespace")
5721 (source
5722 (origin
5723 (method git-fetch)
5724 (uri (git-reference
5725 (url home-page)
5726 (commit commit)))
5727 (file-name (git-file-name name version))
5728 (sha256
5729 (base32
5730 "1jw2wykp06z2afb9nm1lgfzll5cjlj36pnknjx614057zkkxq4iy"))))
5731 (inputs
5732 `(("alexandria" ,sbcl-alexandria)))
5733 (native-inputs
5734 `(("fiveam" ,sbcl-fiveam)))
5735 (arguments
5736 `(#:test-asd-file "lisp-namespace.test.asd"
5737 ;; XXX: Component LISP-NAMESPACE-ASD::LISP-NAMESPACE.TEST not found
5738 #:tests? #f))
5739 (synopsis "LISP-N, or extensible namespaces in Common Lisp")
5740 (description "Common Lisp already has major 2 namespaces, function
5741 namespace and value namespace (or variable namespace), but there are actually
5742 more — e.g., class namespace.
5743 This library offers macros to deal with symbols from any namespace.")
5744 (license license:llgpl))))
5745
5746 (define-public cl-lisp-namespace
5747 (sbcl-package->cl-source-package sbcl-lisp-namespace))
5748
5749 (define-public sbcl-trivial-cltl2
5750 (let ((commit "8eec8407df833e8f27df8a388bc10913f16d9e83")
5751 (revision "1"))
5752 (package
5753 (name "sbcl-trivial-cltl2")
5754 (build-system asdf-build-system/sbcl)
5755 (version (git-version "0.1.1" revision commit))
5756 (home-page "https://github.com/Zulu-Inuoe/trivial-cltl2")
5757 (source
5758 (origin
5759 (method git-fetch)
5760 (uri (git-reference
5761 (url home-page)
5762 (commit commit)))
5763 (file-name (git-file-name name version))
5764 (sha256
5765 (base32
5766 "1dyyxz17vqv8hlfwq287gl8xxbvcnq798ajb7p5jdjz91wqf4bgk"))))
5767 (synopsis "Simple CLtL2 compatibility layer for Common Lisp")
5768 (description "This library is a portable compatibility layer around
5769 \"Common Lisp the Language, 2nd
5770 Edition\" (@url{https://www.cs.cmu.edu/Groups/AI/html/cltl/clm/node102.html})
5771 and it exports symbols from implementation-specific packages.")
5772 (license license:llgpl))))
5773
5774 (define-public cl-trivial-cltl2
5775 (sbcl-package->cl-source-package sbcl-trivial-cltl2))
5776
5777 (define-public sbcl-introspect-environment
5778 (let ((commit "fff42f8f8fd0d99db5ad6c5812e53de7d660020b")
5779 (revision "1"))
5780 (package
5781 (name "sbcl-introspect-environment")
5782 (build-system asdf-build-system/sbcl)
5783 (version (git-version "0.1" revision commit))
5784 (home-page "https://github.com/Bike/introspect-environment")
5785 (source
5786 (origin
5787 (method git-fetch)
5788 (uri (git-reference
5789 (url home-page)
5790 (commit commit)))
5791 (file-name (git-file-name name version))
5792 (sha256
5793 (base32
5794 "1i305n0wfmpac63ni4i3vixnnkl8daw5ncxy0k3dv92krgx6qzhp"))))
5795 (native-inputs
5796 `(("fiveam" ,sbcl-fiveam)))
5797 (synopsis "Common Lisp environment introspection portability layer")
5798 (description "This library is a small interface to portable but
5799 nonstandard introspection of Common Lisp environments. It is intended to
5800 allow a bit more compile-time introspection of environments in Common Lisp.
5801
5802 Quite a bit of information is available at the time a macro or compiler-macro
5803 runs; inlining info, type declarations, that sort of thing. This information
5804 is all standard - any Common Lisp program can @code{(declare (integer x))} and
5805 such.
5806
5807 This info ought to be accessible through the standard @code{&environment}
5808 parameters, but it is not. Several implementations keep the information for
5809 their own purposes but do not make it available to user programs, because
5810 there is no standard mechanism to do so.
5811
5812 This library uses implementation-specific hooks to make information available
5813 to users. This is currently supported on SBCL, CCL, and CMUCL. Other
5814 implementations have implementations of the functions that do as much as they
5815 can and/or provide reasonable defaults.")
5816 (license license:wtfpl2))))
5817
5818 (define-public cl-introspect-environment
5819 (sbcl-package->cl-source-package sbcl-introspect-environment))
5820
5821 (define-public sbcl-type-i
5822 (let ((commit "dea233f45f94064105ec09f0767de338f67dcbe2")
5823 (revision "1"))
5824 (package
5825 (name "sbcl-type-i")
5826 (build-system asdf-build-system/sbcl)
5827 (version (git-version "0.1" revision commit))
5828 (home-page "https://github.com/guicho271828/type-i")
5829 (source
5830 (origin
5831 (method git-fetch)
5832 (uri (git-reference
5833 (url home-page)
5834 (commit commit)))
5835 (file-name (git-file-name name version))
5836 (sha256
5837 (base32
5838 "039g5pbrhh65s0bhr9314gmd2nwc2y5lp2377c5qrc2lxky89qs3"))))
5839 (inputs
5840 `(("alexandria" ,sbcl-alexandria)
5841 ("introspect-environment" ,sbcl-introspect-environment)
5842 ("trivia.trivial" ,sbcl-trivia.trivial)))
5843 (native-inputs
5844 `(("fiveam" ,sbcl-fiveam)))
5845 (arguments
5846 `(#:test-asd-file "type-i.test.asd"))
5847 (synopsis "Type inference utility on unary predicates for Common Lisp")
5848 (description "This library tries to provide a way to detect what kind of
5849 type the given predicate is trying to check. This is different from inferring
5850 the return type of a function.")
5851 (license license:llgpl))))
5852
5853 (define-public cl-type-i
5854 (sbcl-package->cl-source-package sbcl-type-i))
5855
5856 (define-public sbcl-optima
5857 (let ((commit "373b245b928c1a5cce91a6cb5bfe5dd77eb36195")
5858 (revision "1"))
5859 (package
5860 (name "sbcl-optima")
5861 (build-system asdf-build-system/sbcl)
5862 (version (git-version "1.0" revision commit))
5863 (home-page "https://github.com/m2ym/optima")
5864 (source
5865 (origin
5866 (method git-fetch)
5867 (uri (git-reference
5868 (url home-page)
5869 (commit commit)))
5870 (file-name (git-file-name name version))
5871 (sha256
5872 (base32
5873 "1yw4ymq7ms89342kkvb3aqxgv0w38m9kd8ikdqxxzyybnkjhndal"))))
5874 (inputs
5875 `(("alexandria" ,sbcl-alexandria)
5876 ("closer-mop" ,sbcl-closer-mop)))
5877 (native-inputs
5878 `(("eos" ,sbcl-eos)))
5879 (arguments
5880 ;; XXX: Circular dependencies: tests depend on optima.ppcre which depends on optima.
5881 `(#:tests? #f
5882 #:test-asd-file "optima.test.asd"))
5883 (synopsis "Optimized pattern matching library for Common Lisp")
5884 (description "Optima is a fast pattern matching library which uses
5885 optimizing techniques widely used in the functional programming world.")
5886 (license license:expat))))
5887
5888 (define-public cl-optima
5889 (sbcl-package->cl-source-package sbcl-optima))
5890
5891 (define-public sbcl-fare-quasiquote
5892 (package
5893 (name "sbcl-fare-quasiquote")
5894 (build-system asdf-build-system/sbcl)
5895 (version "20171130")
5896 (home-page "http://common-lisp.net/project/fare-quasiquote")
5897 (source
5898 (origin
5899 (method url-fetch)
5900 (uri (string-append "http://beta.quicklisp.org/archive/fare-quasiquote/"
5901 (date->string (string->date version "~Y~m~d") "~Y-~m-~d")
5902 "/fare-quasiquote-"
5903 version
5904 "-git.tgz"))
5905 (sha256
5906 (base32
5907 "00brmh7ndsi0c97nibi8cy10j3l4gmkyrfrr5jr5lzkfb7ngyfqa"))))
5908 (inputs
5909 `(("fare-utils" ,sbcl-fare-utils)))
5910 (arguments
5911 ;; XXX: Circular dependencies: Tests depend on subsystems, which depend on the main systems.
5912 `(#:tests? #f
5913 #:phases
5914 (modify-phases %standard-phases
5915 ;; XXX: Require 1.0.0 version of fare-utils, and we package some
5916 ;; commits after 1.0.0.5, but ASDF fails to read the
5917 ;; "-REVISION-COMMIT" part generated by Guix.
5918 (add-after 'unpack 'patch-requirement
5919 (lambda _
5920 (substitute* "fare-quasiquote.asd"
5921 (("\\(:version \"fare-utils\" \"1.0.0\"\\)") "\"fare-utils\"")))))))
5922 (synopsis "Pattern-matching friendly implementation of quasiquote for Common Lisp")
5923 (description "The main purpose of this n+2nd reimplementation of
5924 quasiquote is enable matching of quasiquoted patterns, using Optima or
5925 Trivia.")
5926 (license license:expat)))
5927
5928 (define-public cl-fare-quasiquote
5929 (sbcl-package->cl-source-package sbcl-fare-quasiquote))
5930
5931 (define-public sbcl-fare-quasiquote-optima
5932 (package
5933 (inherit sbcl-fare-quasiquote)
5934 (name "sbcl-fare-quasiquote-optima")
5935 (inputs
5936 `(("optima" ,sbcl-optima)
5937 ("fare-quasiquote" ,sbcl-fare-quasiquote)))
5938 (arguments
5939 '(#:phases
5940 (modify-phases %standard-phases
5941 (add-after 'unpack 'patch-requirement
5942 (lambda _
5943 (substitute* "fare-quasiquote-optima.asd"
5944 (("\\(:version \"optima\" \"1\\.0\"\\)")
5945 "\"optima\""))
5946 #t)))))))
5947
5948 (define-public cl-fare-quasiquote-optima
5949 (sbcl-package->cl-source-package sbcl-fare-quasiquote-optima))
5950
5951 (define-public sbcl-fare-quasiquote-readtable
5952 (package
5953 (inherit sbcl-fare-quasiquote)
5954 (name "sbcl-fare-quasiquote-readtable")
5955 (inputs
5956 `(("fare-quasiquote" ,sbcl-fare-quasiquote)
5957 ("named-readtables" ,sbcl-named-readtables)))
5958 (description "The main purpose of this n+2nd reimplementation of
5959 quasiquote is enable matching of quasiquoted patterns, using Optima or
5960 Trivia.
5961
5962 This package uses fare-quasiquote with named-readtable.")))
5963
5964 (define-public cl-fare-quasiquote-readtable
5965 (sbcl-package->cl-source-package sbcl-fare-quasiquote-readtable))
5966
5967 ;; TODO: Add support for component-less system in asdf-build-system/sbcl.
5968 (define-public cl-fare-quasiquote-extras
5969 (package
5970 (inherit cl-fare-quasiquote)
5971 (name "cl-fare-quasiquote-extras")
5972 (build-system asdf-build-system/source)
5973 (propagated-inputs
5974 `(("fare-quasiquote" ,cl-fare-quasiquote)
5975 ("fare-quasiquote-optima" ,cl-fare-quasiquote-optima)
5976 ("fare-quasiquote-readtable" ,cl-fare-quasiquote-readtable)))
5977 (description "This library combines @code{fare-quasiquote-readtable} and
5978 @code{fare-quasiquote-optima}.")))
5979
5980 (define-public sbcl-trivia.level0
5981 (let ((commit "902e0c65602bbfe96ae82e679330b3771ddc7603")
5982 (revision "1"))
5983 (package
5984 (name "sbcl-trivia.level0")
5985 (build-system asdf-build-system/sbcl)
5986 (version (git-version "0.0.0" revision commit))
5987 (home-page "https://github.com/guicho271828/trivia")
5988 (source
5989 (origin
5990 (method git-fetch)
5991 (uri (git-reference
5992 (url home-page)
5993 (commit commit)))
5994 (file-name (git-file-name name version))
5995 (sha256
5996 (base32
5997 "11qbab30qqnfy9mx3x9fvgcw1jbvh1qn2cqv3p8xdn2m8981jvhr"))))
5998 (inputs
5999 `(("alexandria" ,sbcl-alexandria)))
6000 (synopsis "Pattern matching in Common Lisp")
6001 (description "Trivia is a pattern matching compiler that is compatible
6002 with Optima, another pattern matching library for Common Lisp. It is meant to
6003 be faster and more extensible than Optima.")
6004 (license license:llgpl))))
6005
6006 (define-public sbcl-trivia.level1
6007 (package
6008 (inherit sbcl-trivia.level0)
6009 (name "sbcl-trivia.level1")
6010 (inputs
6011 `(("trivia.level0" ,sbcl-trivia.level0)))
6012 (description "Trivia is a pattern matching compiler that is compatible
6013 with Optima, another pattern matching library for Common Lisp. It is meant to
6014 be faster and more extensible than Optima.
6015
6016 This system contains the core patterns of Trivia.")))
6017
6018 (define-public sbcl-trivia.level2
6019 (package
6020 (inherit sbcl-trivia.level0)
6021 (name "sbcl-trivia.level2")
6022 (inputs
6023 `(("trivia.level1" ,sbcl-trivia.level1)
6024 ("lisp-namespace" ,sbcl-lisp-namespace)
6025 ("trivial-cltl2" ,sbcl-trivial-cltl2)
6026 ("closer-mop" ,sbcl-closer-mop)))
6027 (description "Trivia is a pattern matching compiler that is compatible
6028 with Optima, another pattern matching library for Common Lisp. It is meant to
6029 be faster and more extensible than Optima.
6030
6031 This system contains a non-optimized pattern matcher compatible with Optima,
6032 with extensible optimizer interface.")))
6033
6034 (define-public sbcl-trivia.trivial
6035 (package
6036 (inherit sbcl-trivia.level0)
6037 (name "sbcl-trivia.trivial")
6038 (inputs
6039 `(("trivia.level2" ,sbcl-trivia.level2)))
6040 (arguments
6041 `(#:phases
6042 (modify-phases %standard-phases
6043 (replace 'create-asd-file
6044 (lambda* (#:key outputs inputs #:allow-other-keys)
6045 (let* ((out (assoc-ref outputs "out"))
6046 (lib (string-append out "/lib/" (%lisp-type)))
6047 (level2 (assoc-ref inputs "trivia.level2")))
6048 (mkdir-p lib)
6049 (install-file "trivia.trivial.asd" lib)
6050 ;; XXX: This .asd does not have any component and the build
6051 ;; system fails to work in this case. We should update the
6052 ;; build system to handle component-less .asd.
6053 ;; TODO: How do we append to file in Guile? It seems that
6054 ;; (open-file ... "a") gets a "Permission denied".
6055 (substitute* (string-append lib "/trivia.trivial.asd")
6056 (("\"\\)")
6057 (string-append "\")
6058
6059 (progn (asdf/source-registry:ensure-source-registry)
6060 (setf (gethash
6061 \"trivia.level2\"
6062 asdf/source-registry:*source-registry*)
6063 #p\""
6064 level2
6065 "/share/common-lisp/sbcl-bundle-systems/trivia.level2.asd\"))")))))))))
6066 (description "Trivia is a pattern matching compiler that is compatible
6067 with Optima, another pattern matching library for Common Lisp. It is meant to
6068 be faster and more extensible than Optima.
6069
6070 This system contains the base level system of Trivia with a trivial optimizer.")))
6071
6072 (define-public sbcl-trivia.balland2006
6073 (package
6074 (inherit sbcl-trivia.level0)
6075 (name "sbcl-trivia.balland2006")
6076 (inputs
6077 `(("trivia.trivial" ,sbcl-trivia.trivial)
6078 ("iterate" ,sbcl-iterate)
6079 ("type-i" ,sbcl-type-i)
6080 ("alexandria" ,sbcl-alexandria)))
6081 (arguments
6082 ;; Tests are done in trivia itself.
6083 `(#:tests? #f))
6084 (description "Trivia is a pattern matching compiler that is compatible
6085 with Optima, another pattern matching library for Common Lisp. It is meant to
6086 be faster and more extensible than Optima.
6087
6088 This system contains the base level system of Trivia with a trivial optimizer.")))
6089
6090 (define-public sbcl-trivia.ppcre
6091 (package
6092 (inherit sbcl-trivia.level0)
6093 (name "sbcl-trivia.ppcre")
6094 (inputs
6095 `(("trivia.trivial" ,sbcl-trivia.trivial)
6096 ("cl-ppcre" ,sbcl-cl-ppcre)))
6097 (description "Trivia is a pattern matching compiler that is compatible
6098 with Optima, another pattern matching library for Common Lisp. It is meant to
6099 be faster and more extensible than Optima.
6100
6101 This system contains the PPCRE extension.")))
6102
6103 (define-public sbcl-trivia.quasiquote
6104 (package
6105 (inherit sbcl-trivia.level0)
6106 (name "sbcl-trivia.quasiquote")
6107 (inputs
6108 `(("trivia.trivial" ,sbcl-trivia.trivial)
6109 ("fare-quasiquote" ,sbcl-fare-quasiquote)
6110 ("fare-quasiquote-readtable" ,sbcl-fare-quasiquote-readtable)))
6111 (description "Trivia is a pattern matching compiler that is compatible
6112 with Optima, another pattern matching library for Common Lisp. It is meant to
6113 be faster and more extensible than Optima.
6114
6115 This system contains the fare-quasiquote extension.")))
6116
6117 (define-public sbcl-trivia.cffi
6118 (package
6119 (inherit sbcl-trivia.level0)
6120 (name "sbcl-trivia.cffi")
6121 (inputs
6122 `(("cffi" ,sbcl-cffi)
6123 ("trivia.trivial" ,sbcl-trivia.trivial)))
6124 (description "Trivia is a pattern matching compiler that is compatible
6125 with Optima, another pattern matching library for Common Lisp. It is meant to
6126 be faster and more extensible than Optima.
6127
6128 This system contains the CFFI foreign slot access extension.")))
6129
6130 (define-public sbcl-trivia
6131 (package
6132 (inherit sbcl-trivia.level0)
6133 (name "sbcl-trivia")
6134 (inputs
6135 `(("trivia.balland2006" ,sbcl-trivia.balland2006)))
6136 (native-inputs
6137 `(("fiveam" ,sbcl-fiveam)
6138 ("trivia.ppcre" ,sbcl-trivia.ppcre)
6139 ("trivia.quasiquote" ,sbcl-trivia.quasiquote)
6140 ("trivia.cffi" ,sbcl-trivia.cffi)
6141 ("optima" ,sbcl-optima)))
6142 (arguments
6143 `(#:test-asd-file "trivia.test.asd"
6144 #:phases
6145 (modify-phases %standard-phases
6146 (add-after 'create-asd 'remove-component
6147 ;; XXX: The original .asd has no components, but our build system
6148 ;; creates an entry nonetheless. We need to remove it for the
6149 ;; generated .asd to load properly. See trivia.trivial for a
6150 ;; similar problem.
6151 (lambda* (#:key outputs #:allow-other-keys)
6152 (let* ((out (assoc-ref outputs "out"))
6153 (asd (string-append out "/lib/" (%lisp-type) "/trivia.asd")))
6154 (substitute* asd
6155 ((" :components
6156 ")
6157 ""))
6158 (substitute* asd
6159 ((" *\\(\\(:compiled-file \"trivia--system\"\\)\\)")
6160 ""))))))))
6161 (description "Trivia is a pattern matching compiler that is compatible
6162 with Optima, another pattern matching library for Common Lisp. It is meant to
6163 be faster and more extensible than Optima.")))
6164
6165 (define-public cl-trivia
6166 (sbcl-package->cl-source-package sbcl-trivia))
6167
6168 (define-public sbcl-mk-string-metrics
6169 (package
6170 (name "sbcl-mk-string-metrics")
6171 (version "0.1.2")
6172 (home-page "https://github.com/cbaggers/mk-string-metrics/")
6173 (source (origin
6174 (method git-fetch)
6175 (uri (git-reference
6176 (url home-page)
6177 (commit version)))
6178 (sha256
6179 (base32 "0bg0bv2mfd4k0g3x72x563hvmrx18xavaffr6xk5rh4if5j7kcf6"))
6180 (file-name (git-file-name name version))))
6181 (build-system asdf-build-system/sbcl)
6182 (synopsis "Calculate various string metrics efficiently in Common Lisp")
6183 (description "This library implements efficient algorithms that calculate
6184 various string metrics in Common Lisp:
6185
6186 @itemize
6187 @item Damerau-Levenshtein distance
6188 @item Hamming distance
6189 @item Jaccard similarity coefficient
6190 @item Jaro distance
6191 @item Jaro-Winkler distance
6192 @item Levenshtein distance
6193 @item Normalized Damerau-Levenshtein distance
6194 @item Normalized Levenshtein distance
6195 @item Overlap coefficient
6196 @end itemize\n")
6197 (license license:x11)))
6198
6199 (define-public cl-mk-string-metrics
6200 (sbcl-package->cl-source-package sbcl-mk-string-metrics))
6201
6202 (define-public sbcl-cl-str
6203 (let ((commit "3d5ec86e3a0199e5973aacde951086dfd754b5e5"))
6204 (package
6205 (name "sbcl-cl-str")
6206 (version (git-version "0.8" "1" commit))
6207 (home-page "https://github.com/vindarel/cl-str")
6208 (source (origin
6209 (method git-fetch)
6210 (uri (git-reference
6211 (url home-page)
6212 (commit commit)))
6213 (sha256
6214 (base32 "0szzzbygw9h985yxz909vvqrp69pmpcpahn7hn350lnyjislk9ga"))
6215 (file-name (git-file-name name version))))
6216 (build-system asdf-build-system/sbcl)
6217 (inputs
6218 `(("cl-ppcre" ,sbcl-cl-ppcre)
6219 ("cl-ppcre-unicode" ,sbcl-cl-ppcre-unicode)))
6220 (native-inputs
6221 `(("prove" ,sbcl-prove)
6222 ("prove-asdf" ,sbcl-prove-asdf)))
6223 (arguments
6224 `(#:asd-file "str.asd"
6225 #:asd-system-name "str"
6226 #:test-asd-file "str.test.asd"))
6227 (synopsis "Modern, consistent and terse Common Lisp string manipulation library")
6228 (description "A modern and consistent Common Lisp string manipulation
6229 library that focuses on modernity, simplicity and discoverability:
6230 @code{(str:trim s)} instead of @code{(string-trim '(#\\Space ...) s)}), or
6231 @code{str:concat strings} instead of an unusual format construct; one
6232 discoverable library instead of many; consistency and composability, where
6233 @code{s} is always the last argument, which makes it easier to feed pipes and
6234 arrows.")
6235 (license license:expat))))
6236
6237 (define-public cl-str
6238 (sbcl-package->cl-source-package sbcl-cl-str))
6239
6240 (define-public sbcl-cl-xmlspam
6241 (let ((commit "ea06abcca2a73a9779bcfb09081e56665f94e22a"))
6242 (package
6243 (name "sbcl-cl-xmlspam")
6244 (build-system asdf-build-system/sbcl)
6245 (version (git-version "0.0.0" "1" commit))
6246 (home-page "https://github.com/rogpeppe/cl-xmlspam")
6247 (source
6248 (origin
6249 (method git-fetch)
6250 (uri (git-reference
6251 (url home-page)
6252 (commit commit)))
6253 (file-name (string-append name "-" version))
6254 (sha256
6255 (base32
6256 "0w4rqvrgdgk3fwfq3kx4r7wwdr2bv3b6n3bdqwsiriw9psqzpz2s"))))
6257 (inputs
6258 `(("cxml" ,sbcl-cxml)
6259 ("cl-ppcre" ,sbcl-cl-ppcre)))
6260 (synopsis "Concise, regexp-like pattern matching on streaming XML for Common Lisp")
6261 (description "CXML does an excellent job at parsing XML elements, but what
6262 do you do when you have a XML file that's larger than you want to fit in
6263 memory, and you want to extract some information from it? Writing code to deal
6264 with SAX events, or even using Klacks, quickly becomes tedious.
6265 @code{cl-xmlspam} (for XML Stream PAttern Matcher) is designed to make it easy
6266 to write code that mirrors the structure of the XML that it's parsing. It
6267 also makes it easy to shift paradigms when necessary - the usual Lisp control
6268 constructs can be used interchangeably with pattern matching, and the full
6269 power of CXML is available when necessary.")
6270 (license license:bsd-3))))
6271
6272 ;; TODO: dbus uses ASDF's package-inferred-system which is not supported by
6273 ;; asdf-build-system/sbcl as of 2019-08-02. We should fix
6274 ;; asdf-build-system/sbcl.
6275 (define-public cl-dbus
6276 (let ((commit "24b452df3a45ca5dc95015500f34baad175c981a")
6277 (revision "1"))
6278 (package
6279 (name "cl-dbus")
6280 (build-system asdf-build-system/source)
6281 (version (git-version "20190408" revision commit))
6282 (home-page "https://github.com/death/dbus")
6283 (source
6284 (origin
6285 (method git-fetch)
6286 (uri (git-reference
6287 (url home-page)
6288 (commit commit)))
6289 (file-name (git-file-name name version))
6290 (sha256
6291 (base32
6292 "0fw2q866yddbf23nk9pxphm9gsasx35vjyss82xzvndnjmzlqfl5"))))
6293 ;; Inputs must be propagated or else packages depending on this won't have the necessary packages.
6294 (propagated-inputs
6295 `(("alexandria" ,sbcl-alexandria)
6296 ("trivial-garbage" ,sbcl-trivial-garbage)
6297 ("babel" ,sbcl-babel)
6298 ("iolib" ,sbcl-iolib)
6299 ("iolib+multiplex" ,(@@ (gnu packages lisp-xyz) sbcl-iolib+multiplex))
6300 ("iolib+syscalls" ,(@@ (gnu packages lisp-xyz) sbcl-iolib+syscalls))
6301 ("iolib+streams" ,(@@ (gnu packages lisp-xyz) sbcl-iolib+streams))
6302 ("iolib+sockets" ,(@@ (gnu packages lisp-xyz) sbcl-iolib+sockets))
6303 ("ieee-floats" ,sbcl-ieee-floats)
6304 ("flexi-streams" ,sbcl-flexi-streams)
6305 ("cl-xmlspam" ,sbcl-cl-xmlspam)
6306 ("ironclad" ,sbcl-ironclad)))
6307 (synopsis "D-Bus client library for Common Lisp")
6308 (description "This is a Common Lisp library that allows to publish D-Bus
6309 objects as well as send and notify other objects connected to a bus.")
6310 (license license:bsd-2))))
6311
6312 (define-public sbcl-cl-hooks
6313 (let ((commit "5b638083f3b4f1221a52631d9c8a0a265565cac7")
6314 (revision "1"))
6315 (package
6316 (name "sbcl-cl-hooks")
6317 (build-system asdf-build-system/sbcl)
6318 (version (git-version "0.2.1" revision commit))
6319 (home-page "https://github.com/scymtym/architecture.hooks")
6320 (source
6321 (origin
6322 (method git-fetch)
6323 (uri (git-reference
6324 (url home-page)
6325 (commit commit)))
6326 (file-name (git-file-name name version))
6327 (sha256
6328 (base32
6329 "0bg3l0a28lw5gqqjp6p6b5nhwqk46sgkb7184w5qbfngw1hk8x9y"))))
6330 (inputs
6331 `(("alexandria" ,sbcl-alexandria)
6332 ("let-plus" ,sbcl-let-plus)
6333 ("trivial-garbage" ,sbcl-trivial-garbage)
6334 ("closer-mop" ,sbcl-closer-mop)))
6335 (native-inputs
6336 `(("fiveam" ,sbcl-fiveam)))
6337 (synopsis "Hooks extension point mechanism (as in Emacs) for Common Lisp")
6338 (description "A hook, in the present context, is a certain kind of
6339 extension point in a program that allows interleaving the execution of
6340 arbitrary code with the execution of a the program without introducing any
6341 coupling between the two. Hooks are used extensively in the extensible editor
6342 Emacs.
6343
6344 In the Common LISP Object System (CLOS), a similar kind of extensibility is
6345 possible using the flexible multi-method dispatch mechanism. It may even seem
6346 that the concept of hooks does not provide any benefits over the possibilities
6347 of CLOS. However, there are some differences:
6348
6349 @itemize
6350
6351 @item There can be only one method for each combination of specializers and
6352 qualifiers. As a result this kind of extension point cannot be used by
6353 multiple extensions independently.
6354 @item Removing code previously attached via a @code{:before}, @code{:after} or
6355 @code{:around} method can be cumbersome.
6356 @item There could be other or even multiple extension points besides @code{:before}
6357 and @code{:after} in a single method.
6358 @item Attaching codes to individual objects using eql specializers can be
6359 cumbersome.
6360 @item Introspection of code attached a particular extension point is
6361 cumbersome since this requires enumerating and inspecting the methods of a
6362 generic function.
6363 @end itemize
6364
6365 This library tries to complement some of these weaknesses of method-based
6366 extension-points via the concept of hooks.")
6367 (license license:llgpl))))
6368
6369 (define-public cl-hooks
6370 (sbcl-package->cl-source-package sbcl-cl-hooks))
6371
6372 (define-public ecl-cl-hooks
6373 (sbcl-package->ecl-package sbcl-cl-hooks))
6374
6375 (define-public sbcl-s-sysdeps
6376 (let ((commit "d28246b5dffef9e73a0e0e6cfbc4e878006fe34d")
6377 (revision "1"))
6378 (package
6379 (name "sbcl-s-sysdeps")
6380 (build-system asdf-build-system/sbcl)
6381 (version (git-version "1" revision commit))
6382 (home-page "https://github.com/svenvc/s-sysdeps")
6383 (source
6384 (origin
6385 (method git-fetch)
6386 (uri (git-reference
6387 (url home-page)
6388 (commit commit)))
6389 (file-name (git-file-name name version))
6390 (sha256
6391 (base32
6392 "14b69b81yrxmjlvmm3lfxk04x5v7hqz4fql121334wh72czznfh9"))))
6393 (synopsis "Common Lisp abstraction layer over platform dependent functionality")
6394 (description "@code{s-sysdeps} is an abstraction layer over platform
6395 dependent functionality. This simple package is used as a building block in a
6396 number of other open source projects.
6397
6398 @code{s-sysdeps} abstracts:
6399
6400 @itemize
6401 @item managing processes,
6402 @item implementing a standard TCP/IP server,
6403 @item opening a client TCP/IP socket stream,
6404 @item working with process locks.
6405 @end itemize\n")
6406 (license license:llgpl))))
6407
6408 (define-public cl-s-sysdeps
6409 (sbcl-package->cl-source-package sbcl-s-sysdeps))
6410
6411 (define-public ecl-s-sysdeps
6412 (sbcl-package->ecl-package sbcl-s-sysdeps))
6413
6414 (define-public sbcl-cl-prevalence
6415 (let ((commit "c163c227ed85d430b82cb1e3502f72d4f88e3cfa")
6416 (revision "1"))
6417 (package
6418 (name "sbcl-cl-prevalence")
6419 (build-system asdf-build-system/sbcl)
6420 (version (git-version "5" revision commit))
6421 (home-page "https://github.com/40ants/cl-prevalence")
6422 (source
6423 (origin
6424 (method git-fetch)
6425 (uri (git-reference
6426 (url home-page)
6427 (commit commit)))
6428 (file-name (git-file-name name version))
6429 (sha256
6430 (base32
6431 "1i9zj1q2ahgwch56an21yzbgkynz0kab9fyxkq9mg8p3xrv38jjn"))))
6432 (inputs
6433 `(("s-sysdeps" ,sbcl-s-sysdeps)
6434 ("s-xml" ,sbcl-s-xml)))
6435 (synopsis "Implementation of object prevalence for Common Lisp")
6436 (description "This Common Lisp library implements object prevalence (see
6437 @url{https://en.wikipedia.org/wiki/System_prevalence}). It allows
6438 for (de)serializing to and from s-exps as well as XML. Serialization of arbitrary
6439 classes and cyclic data structures are supported.")
6440 (license license:llgpl))))
6441
6442 (define-public cl-prevalence
6443 (sbcl-package->cl-source-package sbcl-cl-prevalence))
6444
6445 (define-public ecl-cl-prevalence
6446 (sbcl-package->ecl-package sbcl-cl-prevalence))
6447
6448 (define-public sbcl-series
6449 (let ((commit "da9061b336119d1e5214aff9117171d494d5a58a")
6450 (revision "1"))
6451 (package
6452 (name "sbcl-series")
6453 (version (git-version "2.2.11" revision commit))
6454 (source
6455 (origin
6456 (method git-fetch)
6457 (uri (git-reference
6458 (url "git://git.code.sf.net/p/series/series")
6459 (commit commit)))
6460 (file-name (git-file-name name version))
6461 (sha256
6462 (base32
6463 "07hk2lhfx42zk018pxqvn4gs77vd4n4g8m4xxbqaxgca76mifwfw"))))
6464 (build-system asdf-build-system/sbcl)
6465 (arguments
6466 ;; Disable the tests, they are apparently buggy and I didn't find
6467 ;; a simple way to make them run and pass.
6468 '(#:tests? #f))
6469 (synopsis "Series data structure for Common Lisp")
6470 (description
6471 "This Common Lisp library provides a series data structure much like
6472 a sequence, with similar kinds of operations. The difference is that in many
6473 situations, operations on series may be composed functionally and yet execute
6474 iteratively, without the need to construct intermediate series values
6475 explicitly. In this manner, series provide both the clarity of a functional
6476 programming style and the efficiency of an iterative programming style.")
6477 (home-page "http://series.sourceforge.net/")
6478 (license license:expat))))
6479
6480 (define-public cl-series
6481 (sbcl-package->cl-source-package sbcl-series))
6482
6483 (define-public ecl-series
6484 (sbcl-package->ecl-package sbcl-series))
6485
6486 (define-public sbcl-periods
6487 (let ((commit "983d4a57325db3c8def942f163133cec5391ec28")
6488 (revision "1"))
6489 (package
6490 (name "sbcl-periods")
6491 (version (git-version "0.0.2" revision commit))
6492 (source
6493 (origin
6494 (method git-fetch)
6495 (uri (git-reference
6496 (url "https://github.com/jwiegley/periods.git")
6497 (commit commit)))
6498 (file-name (git-file-name name version))
6499 (sha256
6500 (base32
6501 "0z30jr3lxz3cmi019fsl4lgcgwf0yqpn95v9zkkkwgymdrkd4lga"))))
6502 (build-system asdf-build-system/sbcl)
6503 (inputs
6504 `(("local-time" ,sbcl-local-time)))
6505 (synopsis "Common Lisp library for manipulating date/time objects")
6506 (description
6507 "Periods is a Common Lisp library providing a set of utilities for
6508 manipulating times, distances between times, and both contiguous and
6509 discontiguous ranges of time.")
6510 (home-page "https://github.com/jwiegley/periods")
6511 (license license:bsd-3))))
6512
6513 (define-public cl-periods
6514 (sbcl-package->cl-source-package sbcl-periods))
6515
6516 (define-public ecl-periods
6517 (sbcl-package->ecl-package sbcl-periods))
6518
6519 (define-public sbcl-periods-series
6520 (package
6521 (inherit sbcl-periods)
6522 (name "sbcl-periods-series")
6523 (inputs
6524 `(("periods" ,sbcl-periods)
6525 ("series" ,sbcl-series)))
6526 (arguments
6527 '(#:asd-file "periods-series.asd"
6528 #:asd-system-name "periods-series"))
6529 (description
6530 "Periods-series is an extension of the periods Common Lisp library
6531 providing functions compatible with the series Common Lisp library.")))
6532
6533 (define-public cl-periods-series
6534 (sbcl-package->cl-source-package sbcl-periods-series))
6535
6536 (define-public ecl-periods-series
6537 (sbcl-package->ecl-package sbcl-periods-series))
6538
6539 (define-public sbcl-metatilities-base
6540 (let ((commit "6eaa9e3ff0939a93a92109dd0fcd218de85417d5")
6541 (revision "1"))
6542 (package
6543 (name "sbcl-metatilities-base")
6544 (version (git-version "0.6.6" revision commit))
6545 (source
6546 (origin
6547 (method git-fetch)
6548 (uri (git-reference
6549 (url "https://github.com/gwkkwg/metatilities-base.git")
6550 (commit commit)))
6551 (file-name (git-file-name name version))
6552 (sha256
6553 (base32
6554 "0xpa86pdzlnf4v5g64j3ifaplx71sx2ha8b7vvakswi652679ma0"))))
6555 (build-system asdf-build-system/sbcl)
6556 (native-inputs
6557 `(("lift" ,sbcl-lift)))
6558 (synopsis "Core of the metatilities Common Lisp library")
6559 (description
6560 "Metatilities-base is the core of the metatilities Common Lisp library
6561 which implements a set of utilities.")
6562 (home-page "https://common-lisp.net/project/metatilities-base/")
6563 (license license:expat))))
6564
6565 (define-public cl-metatilities-base
6566 (sbcl-package->cl-source-package sbcl-metatilities-base))
6567
6568 (define-public ecl-metatilities-base
6569 (sbcl-package->ecl-package sbcl-metatilities-base))
6570
6571 (define-public sbcl-cl-containers
6572 (let ((commit "810927e19d933bcf38ffeb7a23ce521efc432d45")
6573 (revision "1"))
6574 (package
6575 (name "sbcl-cl-containers")
6576 (version (git-version "0.12.1" revision commit))
6577 (source
6578 (origin
6579 (method git-fetch)
6580 (uri (git-reference
6581 (url "https://github.com/gwkkwg/cl-containers.git")
6582 (commit commit)))
6583 (file-name (git-file-name name version))
6584 (sha256
6585 (base32
6586 "1s9faxw7svhbjpkhfrz2qxgjm3cvyjb8wpyb4m8dx4i5g7vvprkv"))))
6587 (build-system asdf-build-system/sbcl)
6588 (native-inputs
6589 `(("lift" ,sbcl-lift)))
6590 (inputs
6591 `(("metatilities-base" ,sbcl-metatilities-base)))
6592 (arguments
6593 '(#:phases
6594 (modify-phases %standard-phases
6595 (add-after 'unpack 'relax-version-checks
6596 (lambda _
6597 (substitute* "cl-containers.asd"
6598 (("\\(:version \"metatilities-base\" \"0\\.6\\.6\"\\)")
6599 "\"metatilities-base\""))
6600 (substitute* "cl-containers-test.asd"
6601 (("\\(:version \"lift\" \"1\\.7\\.0\"\\)")
6602 "\"lift\""))
6603 #t)))))
6604 (synopsis "Container library for Common Lisp")
6605 (description
6606 "Common Lisp ships with a set of powerful built in data structures
6607 including the venerable list, full featured arrays, and hash-tables.
6608 CL-containers enhances and builds on these structures by adding containers
6609 that are not available in native Lisp (for example: binary search trees,
6610 red-black trees, sparse arrays and so on), and by providing a standard
6611 interface so that they are simpler to use and so that changing design
6612 decisions becomes significantly easier.")
6613 (home-page "https://common-lisp.net/project/cl-containers/")
6614 (license license:expat))))
6615
6616 (define-public cl-containers
6617 (sbcl-package->cl-source-package sbcl-cl-containers))
6618
6619 (define-public ecl-cl-containers
6620 (sbcl-package->ecl-package sbcl-cl-containers))
6621
6622 (define-public sbcl-xlunit
6623 (let ((commit "3805d34b1d8dc77f7e0ee527a2490194292dd0fc")
6624 (revision "1"))
6625 (package
6626 (name "sbcl-xlunit")
6627 (version (git-version "0.6.3" revision commit))
6628 (source
6629 (origin
6630 (method git-fetch)
6631 (uri (git-reference
6632 (url "http://git.kpe.io/xlunit.git")
6633 (commit commit)))
6634 (file-name (git-file-name name version))
6635 (sha256
6636 (base32
6637 "0argfmp9nghs4sihyj3f8ch9qfib2b7ll07v5m9ziajgzsfl5xw3"))))
6638 (build-system asdf-build-system/sbcl)
6639 (arguments
6640 '(#:phases
6641 (modify-phases %standard-phases
6642 (add-after 'unpack 'fix-tests
6643 (lambda _
6644 (substitute* "xlunit.asd"
6645 ((" :force t") ""))
6646 #t)))))
6647 (synopsis "Unit testing package for Common Lisp")
6648 (description
6649 "The XLUnit package is a toolkit for building test suites. It is based
6650 on the XPTest package by Craig Brozensky and the JUnit package by Kent Beck.")
6651 (home-page "http://quickdocs.org/xlunit/")
6652 (license license:bsd-3))))
6653
6654 (define-public cl-xlunit
6655 (sbcl-package->cl-source-package sbcl-xlunit))
6656
6657 (define-public ecl-xlunit
6658 (sbcl-package->ecl-package sbcl-xlunit))
6659
6660 (define-public sbcl-fprog
6661 (let ((commit "7016d1a98215f82605d1c158e7a16504ca1f4636")
6662 (revision "1"))
6663 (package
6664 (name "sbcl-fprog")
6665 (version (git-version "1.0.0" revision commit))
6666 (source
6667 (origin
6668 (method git-fetch)
6669 (uri (git-reference
6670 (url "https://github.com/jwiegley/cambl.git")
6671 (commit commit)))
6672 (file-name (git-file-name name version))
6673 (sha256
6674 (base32
6675 "103mry04j2k9vznsxm7wcvccgxkil92cdrv52miwcmxl8daa4jiz"))))
6676 (build-system asdf-build-system/sbcl)
6677 (synopsis "Functional programming utilities for Common Lisp")
6678 (description
6679 "@code{fprog} is a Common Lisp library allowing iteration over
6680 immutable lists sharing identical sublists.")
6681 (home-page "https://github.com/jwiegley/cambl")
6682 (license license:bsd-3))))
6683
6684 (define-public cl-fprog
6685 (sbcl-package->cl-source-package sbcl-fprog))
6686
6687 (define-public ecl-fprog
6688 (sbcl-package->ecl-package sbcl-fprog))
6689
6690 (define-public sbcl-cambl
6691 (let ((commit "7016d1a98215f82605d1c158e7a16504ca1f4636")
6692 (revision "1"))
6693 (package
6694 (inherit sbcl-fprog)
6695 (name "sbcl-cambl")
6696 (version (git-version "4.0.0" revision commit))
6697 (native-inputs
6698 `(("xlunit" ,sbcl-xlunit)))
6699 (inputs
6700 `(("alexandria" ,sbcl-alexandria)
6701 ("cl-containers" ,sbcl-cl-containers)
6702 ("local-time" ,sbcl-local-time)
6703 ("periods" ,sbcl-periods)
6704 ("fprog" ,sbcl-fprog)))
6705 (synopsis "Commoditized amounts and balances for Common Lisp")
6706 (description
6707 "CAMBL is a Common Lisp library providing a convenient facility for
6708 working with commoditized values. It does not allow compound units (and so is
6709 not suited for scientific operations) but does work rather nicely for the
6710 purpose of financial calculations."))))
6711
6712 (define-public cl-cambl
6713 (sbcl-package->cl-source-package sbcl-cambl))
6714
6715 (define-public ecl-cambl
6716 (sbcl-package->ecl-package sbcl-cambl))
6717
6718 (define-public sbcl-cl-ledger
6719 (let ((commit "08e0be41795e804cd36142e51756ad0b1caa377b")
6720 (revision "1"))
6721 (package
6722 (name "sbcl-cl-ledger")
6723 (version (git-version "4.0.0" revision commit))
6724 (source
6725 (origin
6726 (method git-fetch)
6727 (uri (git-reference
6728 (url "https://github.com/ledger/cl-ledger.git")
6729 (commit commit)))
6730 (file-name (git-file-name name version))
6731 (sha256
6732 (base32
6733 "1via0qf6wjcyxnfbmfxjvms0ik9j8rqbifgpmnhrzvkhrq9pv8h1"))))
6734 (build-system asdf-build-system/sbcl)
6735 (inputs
6736 `(("cambl" ,sbcl-cambl)
6737 ("cl-ppcre" ,sbcl-cl-ppcre)
6738 ("local-time" ,sbcl-local-time)
6739 ("periods-series" ,sbcl-periods-series)))
6740 (arguments
6741 '(#:phases
6742 (modify-phases %standard-phases
6743 (add-after 'unpack 'fix-system-definition
6744 (lambda _
6745 (substitute* "cl-ledger.asd"
6746 ((" :build-operation program-op") "")
6747 ((" :build-pathname \"cl-ledger\"") "")
6748 ((" :entry-point \"ledger::main\"") ""))
6749 #t)))))
6750 (synopsis "Common Lisp port of the Ledger accounting system")
6751 (description
6752 "CL-Ledger is a Common Lisp port of the Ledger double-entry accounting
6753 system.")
6754 (home-page "https://github.com/ledger/cl-ledger")
6755 (license license:bsd-3))))
6756
6757 (define-public cl-ledger
6758 (sbcl-package->cl-source-package sbcl-cl-ledger))
6759
6760 (define-public ecl-cl-ledger
6761 (sbcl-package->ecl-package sbcl-cl-ledger))
6762
6763 (define-public sbcl-bst
6764 (let ((commit "34f9c7e8e0a9f2c952fe310ab36cb630d5d9c15a")
6765 (revision "1"))
6766 (package
6767 (name "sbcl-bst")
6768 (version (git-version "1.1" revision commit))
6769 (source
6770 (origin
6771 (method git-fetch)
6772 (uri (git-reference
6773 (url "https://github.com/glv2/bst.git")
6774 (commit commit)))
6775 (file-name (git-file-name name version))
6776 (sha256
6777 (base32
6778 "1amxns7hvvh4arwbh8ciwfzplg127vh37dnbamv1m1kmmnmihfc8"))))
6779 (build-system asdf-build-system/sbcl)
6780 (native-inputs
6781 `(("alexandria" ,sbcl-alexandria)
6782 ("fiveam" ,sbcl-fiveam)))
6783 (synopsis "Binary search tree for Common Lisp")
6784 (description
6785 "BST is a Common Lisp library for working with binary search trees that
6786 can contain any kind of values.")
6787 (home-page "https://github.com/glv2/bst")
6788 (license license:gpl3))))
6789
6790 (define-public cl-bst
6791 (sbcl-package->cl-source-package sbcl-bst))
6792
6793 (define-public ecl-bst
6794 (sbcl-package->ecl-package sbcl-bst))
6795
6796 (define-public sbcl-cl-octet-streams
6797 (package
6798 (name "sbcl-cl-octet-streams")
6799 (version "1.0")
6800 (source
6801 (origin
6802 (method git-fetch)
6803 (uri (git-reference
6804 (url "https://github.com/glv2/cl-octet-streams.git")
6805 (commit (string-append "v" version))))
6806 (file-name (git-file-name name version))
6807 (sha256
6808 (base32
6809 "1d7mn6ydv0j2x4r7clpc9ijjwrnfpxmvhifv8n5j7jh7s744sf8d"))))
6810 (build-system asdf-build-system/sbcl)
6811 (native-inputs
6812 `(("fiveam" ,sbcl-fiveam)))
6813 (inputs
6814 `(("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
6815 (synopsis "In-memory octet streams for Common Lisp")
6816 (description
6817 "CL-octet-streams is a library implementing in-memory octet
6818 streams for Common Lisp. It was inspired by the trivial-octet-streams and
6819 cl-plumbing libraries.")
6820 (home-page "https://github.com/glv2/cl-octet-streams")
6821 (license license:gpl3+)))
6822
6823 (define-public cl-octet-streams
6824 (sbcl-package->cl-source-package sbcl-cl-octet-streams))
6825
6826 (define-public ecl-cl-octet-streams
6827 (sbcl-package->ecl-package sbcl-cl-octet-streams))
6828
6829 (define-public sbcl-lzlib
6830 (let ((commit "0de1db7129fef9a58a059d35a2fa2ecfc5b47b47")
6831 (revision "1"))
6832 (package
6833 (name "sbcl-lzlib")
6834 (version (git-version "1.0" revision commit))
6835 (source
6836 (origin
6837 (method git-fetch)
6838 (uri (git-reference
6839 (url "https://github.com/glv2/cl-lzlib.git")
6840 (commit commit)))
6841 (file-name (git-file-name name version))
6842 (sha256
6843 (base32
6844 "12ny7vj52fgnd8hb8fc8mry92vq4c1x72x2350191m4476j95clz"))))
6845 (build-system asdf-build-system/sbcl)
6846 (native-inputs
6847 `(("fiveam" ,sbcl-fiveam)))
6848 (inputs
6849 `(("cffi" ,sbcl-cffi)
6850 ("cl-octet-streams" ,sbcl-cl-octet-streams)
6851 ("lzlib" ,lzlib)))
6852 (arguments
6853 '(#:phases
6854 (modify-phases %standard-phases
6855 (add-after 'unpack 'fix-paths
6856 (lambda* (#:key inputs #:allow-other-keys)
6857 (substitute* "src/lzlib.lisp"
6858 (("liblz\\.so")
6859 (string-append (assoc-ref inputs "lzlib") "/lib/liblz.so")))
6860 #t)))))
6861 (synopsis "Common Lisp library for lzip (de)compression")
6862 (description
6863 "This Common Lisp library provides functions for lzip (LZMA)
6864 compression/decompression using bindings to the lzlib C library.")
6865 (home-page "https://github.com/glv2/cl-lzlib")
6866 (license license:gpl3+))))
6867
6868 (define-public cl-lzlib
6869 (sbcl-package->cl-source-package sbcl-lzlib))
6870
6871 (define-public ecl-lzlib
6872 (sbcl-package->ecl-package sbcl-lzlib))
6873
6874 (define-public sbcl-chanl
6875 (let ((commit "2362b57550c2c9238cc882d03553aaa1040b7340")
6876 (revision "0"))
6877 (package
6878 (name "sbcl-chanl")
6879 (version (git-version "0.4.1" revision commit))
6880 (source
6881 (origin
6882 (method git-fetch)
6883 (uri (git-reference
6884 (url "https://github.com/zkat/chanl.git")
6885 (commit commit)))
6886 (file-name (git-file-name name version))
6887 (sha256
6888 (base32
6889 "0ag3wz7yrqwp0s5069wwda98z3rrqd25spg8sa8rdqghj084w28w"))))
6890 (build-system asdf-build-system/sbcl)
6891 (native-inputs
6892 `(("fiveam" ,sbcl-fiveam)))
6893 (inputs
6894 `(("bordeaux-threads" ,sbcl-bordeaux-threads)))
6895 (synopsis "Portable channel-based concurrency for Common Lisp")
6896 (description "Common Lisp library for channel-based concurrency. In
6897 a nutshell, you create various threads sequentially executing tasks you need
6898 done, and use channel objects to communicate and synchronize the state of these
6899 threads.")
6900 (home-page "https://github.com/zkat/chanl")
6901 (license (list license:expat license:bsd-3)))))
6902
6903 (define-public cl-chanl
6904 (sbcl-package->cl-source-package sbcl-chanl))
6905
6906 (define-public ecl-chanl
6907 (let ((base (sbcl-package->ecl-package sbcl-chanl)))
6908 (package
6909 (inherit base)
6910 (arguments
6911 (substitute-keyword-arguments (package-arguments base)
6912 ;; The CHANL.ACTORS package uses the :ARGUMENTS option of
6913 ;; DEFINE-METHOD-COMBINATION, which is not implemented in ECL yet
6914 ;; (see https://gitlab.com/embeddable-common-lisp/ecl/issues/305).
6915 ;; So let's disable it for now, as it allows compiling the library
6916 ;; and using the rest of it.
6917 ((#:phases phases '%standard-phases)
6918 `(modify-phases ,phases
6919 (add-after 'unpack 'disable-chanl-actors
6920 (lambda _
6921 (substitute* "chanl.asd"
6922 (("\\(:file \"actors\"\\)") ""))
6923 #t))))
6924 ;; Disable the tests for now, as the SEND-SEQUENCE test seems to
6925 ;; never end.
6926 ((#:tests? _ #f) #f))))))
6927
6928 (define-public sbcl-cl-store
6929 (let ((commit "c787337a16ea8cf8a06227f35933a4ec774746b3")
6930 (revision "1"))
6931 (package
6932 (name "sbcl-cl-store")
6933 (version (git-version "0.8.11" revision commit))
6934 (source
6935 (origin
6936 (method git-fetch)
6937 (uri (git-reference
6938 (url "https://github.com/skypher/cl-store.git")
6939 (commit commit)))
6940 (file-name (git-file-name name version))
6941 (sha256
6942 (base32
6943 "194srkg8nrym19c6i7zbnkzshc1qhqa82m53qnkirz9fw928bqxr"))))
6944 (build-system asdf-build-system/sbcl)
6945 (native-inputs
6946 `(("rt" ,sbcl-rt)))
6947 (synopsis "Common Lisp library to serialize data")
6948 (description
6949 "CL-STORE is a portable serialization package which should give you the
6950 ability to store all Common Lisp data types into streams.")
6951 (home-page "https://www.common-lisp.net/project/cl-store/")
6952 (license license:expat))))
6953
6954 (define-public cl-store
6955 (sbcl-package->cl-source-package sbcl-cl-store))
6956
6957 (define-public ecl-cl-store
6958 (sbcl-package->ecl-package sbcl-cl-store))
6959
6960 (define-public sbcl-cl-gobject-introspection
6961 (let ((commit "7b703e2384945ea0ac39d9b766de434a08d81560")
6962 (revision "0"))
6963 (package
6964 (name "sbcl-cl-gobject-introspection")
6965 (version (git-version "0.3" revision commit))
6966 (home-page "https://github.com/andy128k/cl-gobject-introspection")
6967 (source
6968 (origin
6969 (method git-fetch)
6970 (uri (git-reference
6971 (url home-page)
6972 (commit commit)))
6973 (file-name (git-file-name name version))
6974 (sha256
6975 (base32
6976 "1zcqd2qj14f6b38vys8gr89s6cijsp9r8j43xa8lynilwva7bwyh"))))
6977 (build-system asdf-build-system/sbcl)
6978 (inputs
6979 `(("alexandria" ,sbcl-alexandria)
6980 ("cffi" ,sbcl-cffi)
6981 ("iterate" ,sbcl-iterate)
6982 ("trivial-garbage" ,sbcl-trivial-garbage)
6983 ("glib" ,glib)
6984 ("gobject-introspection" ,gobject-introspection)))
6985 (native-inputs
6986 `(("fiveam" ,sbcl-fiveam)))
6987 (arguments
6988 ;; TODO: Tests fail, see
6989 ;; https://github.com/andy128k/cl-gobject-introspection/issues/70.
6990 '(#:tests? #f
6991 #:phases
6992 (modify-phases %standard-phases
6993 (add-after (quote unpack) (quote fix-paths)
6994 (lambda* (#:key inputs #:allow-other-keys)
6995 (substitute* "src/init.lisp"
6996 (("libgobject-2\\.0\\.so")
6997 (string-append (assoc-ref inputs "glib") "/lib/libgobject-2.0.so"))
6998 (("libgirepository-1\\.0\\.so")
6999 (string-append (assoc-ref inputs "gobject-introspection")
7000 "/lib/libgirepository-1.0.so")))
7001 #t)))))
7002 (synopsis "Common Lisp bindings to GObject Introspection")
7003 (description
7004 "This library is a bridge between Common Lisp and GObject
7005 Introspection, which enables Common Lisp programs to access the full interface
7006 of C+GObject libraries without the need of writing dedicated bindings.")
7007 (license (list license:bsd-3
7008 ;; Tests are under a different license.
7009 license:llgpl)))))
7010
7011 (define-public cl-gobject-introspection
7012 (sbcl-package->cl-source-package sbcl-cl-gobject-introspection))
7013
7014 (define-public sbcl-string-case
7015 (let ((commit "718c761e33749e297cd2809c7ba3ade1985c49f7")
7016 (revision "0"))
7017 (package
7018 (name "sbcl-string-case")
7019 (version (git-version "0.0.2" revision commit))
7020 (home-page "https://github.com/pkhuong/string-case")
7021 (source
7022 (origin
7023 (method git-fetch)
7024 (uri (git-reference
7025 (url home-page)
7026 (commit commit)))
7027 (file-name (git-file-name name version))
7028 (sha256
7029 (base32
7030 "1n5i3yh0h5s636rcnwn7jwqy3rjflikra04lymimhpcshhjsk0md"))))
7031 (build-system asdf-build-system/sbcl)
7032 (synopsis "Efficient string= case in Common Lisp")
7033 (description
7034 "@code{string-case} is a Common Lisp macro that generates specialised decision
7035 trees to dispatch on string equality.")
7036 (license license:bsd-3))))
7037
7038 (define-public cl-string-case
7039 (sbcl-package->cl-source-package sbcl-string-case))
7040
7041 (define-public ecl-string-case
7042 (sbcl-package->ecl-package sbcl-string-case))
7043
7044 (define-public sbcl-global-vars
7045 (let ((commit "c749f32c9b606a1457daa47d59630708ac0c266e")
7046 (revision "0"))
7047 (package
7048 (name "sbcl-global-vars")
7049 (version (git-version "1.0.0" revision commit))
7050 (home-page "https://github.com/lmj/global-vars")
7051 (source
7052 (origin
7053 (method git-fetch)
7054 (uri (git-reference
7055 (url home-page)
7056 (commit commit)))
7057 (file-name (git-file-name name version))
7058 (sha256
7059 (base32
7060 "06m3xc8l3pgsapl8fvsi9wf6y46zs75cp9zn7zh6dc65v4s5wz3d"))))
7061 (build-system asdf-build-system/sbcl)
7062 (synopsis "Efficient global variables in Common Lisp")
7063 (description
7064 "In Common Lisp, a special variable that is never dynamically bound
7065 typically serves as a stand-in for a global variable. The @code{global-vars}
7066 library provides true global variables that are implemented by some compilers.
7067 An attempt to rebind a global variable properly results in a compiler error.
7068 That is, a global variable cannot be dynamically bound.
7069
7070 Global variables therefore allow us to communicate an intended usage that
7071 differs from special variables. Global variables are also more efficient than
7072 special variables, especially in the presence of threads.")
7073 (license license:expat))))
7074
7075 (define-public cl-global-vars
7076 (sbcl-package->cl-source-package sbcl-global-vars))
7077
7078 (define-public ecl-global-vars
7079 (sbcl-package->ecl-package sbcl-global-vars))
7080
7081 (define-public sbcl-trivial-file-size
7082 (let ((commit "1c1d672a01a446ba0391dbb4ffc40be3b0476f23")
7083 (revision "0"))
7084 (package
7085 (name "sbcl-trivial-file-size")
7086 (version (git-version "0.0.0" revision commit))
7087 (home-page "https://github.com/ruricolist/trivial-file-size")
7088 (source
7089 (origin
7090 (method git-fetch)
7091 (uri (git-reference
7092 (url home-page)
7093 (commit commit)))
7094 (file-name (git-file-name name version))
7095 (sha256
7096 (base32
7097 "17pp86c9zs4y7i1sh7q9gbfw9iqv6655k7fz8qbj9ly1ypgxp4qs"))))
7098 (build-system asdf-build-system/sbcl)
7099 (native-inputs
7100 `(("fiveam" ,sbcl-fiveam)))
7101 (synopsis "Size of a file in bytes in Common Lisp")
7102 (description
7103 "The canonical way to determine the size of a file in bytes, using Common Lisp,
7104 is to open the file with an element type of (unsigned-byte 8) and then
7105 calculate the length of the stream. This is less than ideal. In most cases
7106 it is better to get the size of the file from its metadata, using a system
7107 call.
7108
7109 This library exports a single function, file-size-in-octets. It returns the
7110 size of a file in bytes, using system calls when possible.")
7111 (license license:expat))))
7112
7113 (define-public cl-trivial-file-size
7114 (sbcl-package->cl-source-package sbcl-trivial-file-size))
7115
7116 (define-public ecl-trivial-file-size
7117 (sbcl-package->ecl-package sbcl-trivial-file-size))
7118
7119 (define-public sbcl-trivial-macroexpand-all
7120 (let ((commit "933270ac7107477de1bc92c1fd641fe646a7a8a9")
7121 (revision "0"))
7122 (package
7123 (name "sbcl-trivial-macroexpand-all")
7124 (version (git-version "0.0.0" revision commit))
7125 (home-page "https://github.com/cbaggers/trivial-macroexpand-all")
7126 (source
7127 (origin
7128 (method git-fetch)
7129 (uri (git-reference
7130 (url home-page)
7131 (commit commit)))
7132 (file-name (git-file-name name version))
7133 (sha256
7134 (base32
7135 "191hnn4b5j4i3crydmlzbm231kj0h7l8zj6mzj69r1npbzkas4bd"))))
7136 (build-system asdf-build-system/sbcl)
7137 (native-inputs
7138 `(("fiveam" ,sbcl-fiveam)))
7139 (synopsis "Portable macroexpand-all for Common Lisp")
7140 (description
7141 "This library provides a macroexpand-all function that calls the
7142 implementation specific equivalent.")
7143 (license license:unlicense))))
7144
7145 (define-public cl-trivial-macroexpand-all
7146 (sbcl-package->cl-source-package sbcl-trivial-macroexpand-all))
7147
7148 (define-public ecl-trivial-macroexpand-all
7149 (sbcl-package->ecl-package sbcl-trivial-macroexpand-all))
7150
7151 (define-public sbcl-serapeum
7152 (let ((commit "65837f8a0d65b36369ec8d000fff5c29a395b5fe")
7153 (revision "0"))
7154 (package
7155 (name "sbcl-serapeum")
7156 (version (git-version "0.0.0" revision commit))
7157 (home-page "https://github.com/ruricolist/serapeum")
7158 (source
7159 (origin
7160 (method git-fetch)
7161 (uri (git-reference
7162 (url home-page)
7163 (commit commit)))
7164 (file-name (git-file-name name version))
7165 (sha256
7166 (base32
7167 "0clwf81r2lvk1rbfvk91s9zmbkas9imf57ilqclw12mxaxlfsnbw"))))
7168 (build-system asdf-build-system/sbcl)
7169 (inputs
7170 `(("alexandria" ,sbcl-alexandria)
7171 ("trivia" ,sbcl-trivia)
7172 ("trivia.quasiquote" ,sbcl-trivia.quasiquote)
7173 ("split-sequence" ,sbcl-split-sequence)
7174 ("string-case" ,sbcl-string-case)
7175 ("parse-number" ,sbcl-parse-number)
7176 ("trivial-garbage" ,sbcl-trivial-garbage)
7177 ("bordeaux-threads" ,sbcl-bordeaux-threads)
7178 ("named-readtables" ,sbcl-named-readtables)
7179 ("fare-quasiquote-extras" ,cl-fare-quasiquote-extras)
7180 ("parse-declarations-1.0" ,sbcl-parse-declarations)
7181 ("global-vars" ,sbcl-global-vars)
7182 ("trivial-file-size" ,sbcl-trivial-file-size)
7183 ("trivial-macroexpand-all" ,sbcl-trivial-macroexpand-all)))
7184 (native-inputs
7185 `(("fiveam" ,sbcl-fiveam)
7186 ("local-time" ,sbcl-local-time)))
7187 (arguments
7188 '(#:phases
7189 (modify-phases %standard-phases
7190 (add-after 'unpack 'disable-failing-tests
7191 (lambda* (#:key inputs #:allow-other-keys)
7192 (substitute* "serapeum.asd"
7193 ;; Guix does not have Quicklisp, and probably never will.
7194 (("\\(:file \"quicklisp\"\\)") ""))
7195 #t)))))
7196 (synopsis "Common Lisp utility library beyond Alexandria")
7197 (description
7198 "Serapeum is a conservative library of Common Lisp utilities. It is a
7199 supplement, not a competitor, to Alexandria.")
7200 (license license:expat))))
7201
7202 (define-public cl-serapeum
7203 (sbcl-package->cl-source-package sbcl-serapeum))
7204
7205 (define-public sbcl-arrows
7206 (let ((commit "df7cf0067e0132d9697ac8b1a4f1b9c88d4f5382")
7207 (revision "0"))
7208 (package
7209 (name "sbcl-arrows")
7210 (version (git-version "0.2.0" revision commit))
7211 (source
7212 (origin
7213 (method git-fetch)
7214 (uri (git-reference
7215 (url "https://gitlab.com/Harleqin/arrows.git")
7216 (commit commit)))
7217 (file-name (git-file-name name version))
7218 (sha256
7219 (base32
7220 "042k9vkssrqx9nhp14wdzm942zgdxvp35mba0p2syz98i75im2yy"))))
7221 (build-system asdf-build-system/sbcl)
7222 (native-inputs
7223 `(("hu.dwim.stefil" ,sbcl-hu.dwim.stefil)))
7224 (synopsis "Clojure-like arrow macros for Common Lisp")
7225 (description
7226 "This library implements the @code{->} and @code{->>} macros from
7227 Clojure, as well as several expansions on the idea.")
7228 (home-page "https://gitlab.com/Harleqin/arrows")
7229 (license license:public-domain))))
7230
7231 (define-public cl-arrows
7232 (sbcl-package->cl-source-package sbcl-arrows))
7233
7234 (define-public ecl-arrows
7235 (sbcl-package->ecl-package sbcl-arrows))
7236
7237 (define-public sbcl-simple-parallel-tasks
7238 (let ((commit "db460f7a3f7bbfe2d3a2223ed21e162068d04dda")
7239 (revision "0"))
7240 (package
7241 (name "sbcl-simple-parallel-tasks")
7242 (version (git-version "1.0" revision commit))
7243 (source
7244 (origin
7245 (method git-fetch)
7246 (uri (git-reference
7247 (url "https://github.com/glv2/simple-parallel-tasks.git")
7248 (commit commit)))
7249 (file-name (git-file-name name version))
7250 (sha256
7251 (base32
7252 "0amw3qk23wnlyrsgzszs6rs7y4zvxv8dr03rnqhc60mnm8ds4dd5"))))
7253 (build-system asdf-build-system/sbcl)
7254 (native-inputs
7255 `(("fiveam" ,sbcl-fiveam)))
7256 (inputs
7257 `(("chanl" ,sbcl-chanl)))
7258 (synopsis "Common Lisp library to evaluate some forms in parallel")
7259 (description "This is a simple Common Lisp library to evaluate some
7260 forms in parallel.")
7261 (home-page "https://github.com/glv2/simple-parallel-tasks")
7262 (license license:gpl3))))
7263
7264 (define-public cl-simple-parallel-tasks
7265 (sbcl-package->cl-source-package sbcl-simple-parallel-tasks))
7266
7267 (define-public ecl-simple-parallel-tasks
7268 (sbcl-package->ecl-package sbcl-simple-parallel-tasks))
7269
7270 (define-public sbcl-cl-heap
7271 (package
7272 (name "sbcl-cl-heap")
7273 (version "0.1.6")
7274 (source
7275 (origin
7276 (method url-fetch)
7277 (uri (string-append "https://common-lisp.net/project/cl-heap/releases/"
7278 "cl-heap_" version ".tar.gz"))
7279 (sha256
7280 (base32
7281 "163hb07p2nxz126rpq3cj5dyala24n0by5i5786n2qcr1w0bak4i"))))
7282 (build-system asdf-build-system/sbcl)
7283 (native-inputs
7284 `(("xlunit" ,sbcl-xlunit)))
7285 (arguments
7286 `(#:test-asd-file "cl-heap-tests.asd"))
7287 (synopsis "Heap and priority queue data structures for Common Lisp")
7288 (description
7289 "CL-HEAP provides various implementations of heap data structures (a
7290 binary heap and a Fibonacci heap) as well as an efficient priority queue.")
7291 (home-page "https://common-lisp.net/project/cl-heap/")
7292 (license license:gpl3+)))
7293
7294 (define-public cl-heap
7295 (sbcl-package->cl-source-package sbcl-cl-heap))
7296
7297 (define-public ecl-cl-heap
7298 (sbcl-package->ecl-package sbcl-cl-heap))
7299
7300 (define-public sbcl-curry-compose-reader-macros
7301 (let ((commit "beaa92dedf392726c042184bfd6149fa8d9e6ac2")
7302 (revision "0"))
7303 (package
7304 (name "sbcl-curry-compose-reader-macros")
7305 (version (git-version "1.0.0" revision commit))
7306 (source
7307 (origin
7308 (method git-fetch)
7309 (uri
7310 (git-reference
7311 (url "https://github.com/eschulte/curry-compose-reader-macros.git")
7312 (commit commit)))
7313 (file-name (git-file-name name version))
7314 (sha256
7315 (base32
7316 "0rv9bl8xrad5wfcg5zs1dazvnpmvqz6297lbn8bywsrcfnlf7h98"))))
7317 (build-system asdf-build-system/sbcl)
7318 (inputs
7319 `(("alexandria" ,sbcl-alexandria)
7320 ("named-readtables" ,sbcl-named-readtables)))
7321 (synopsis "Reader macros for partial application and composition")
7322 (description
7323 "This Common Lisp library provides reader macros for concise expression
7324 of function partial application and composition.")
7325 (home-page "https://eschulte.github.io/curry-compose-reader-macros/")
7326 (license license:public-domain))))
7327
7328 (define-public cl-curry-compose-reader-macros
7329 (sbcl-package->cl-source-package sbcl-curry-compose-reader-macros))
7330
7331 (define-public ecl-curry-compose-reader-macros
7332 (sbcl-package->ecl-package sbcl-curry-compose-reader-macros))
7333
7334 (define-public sbcl-yason
7335 (package
7336 (name "sbcl-yason")
7337 (version "0.7.7")
7338 (source
7339 (origin
7340 (method git-fetch)
7341 (uri (git-reference
7342 (url "https://github.com/phmarek/yason.git")
7343 (commit (string-append "v" version))))
7344 (file-name (git-file-name name version))
7345 (sha256
7346 (base32
7347 "0479rbjgbj80jpk5bby18inlv1kfp771a82rlcq5psrz65qqa9bj"))))
7348 (build-system asdf-build-system/sbcl)
7349 (inputs
7350 `(("alexandria" ,sbcl-alexandria)
7351 ("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
7352 (synopsis "Common Lisp JSON parser/encoder")
7353 (description
7354 "YASON is a Common Lisp library for encoding and decoding data in the
7355 JSON interchange format.")
7356 (home-page "https://github.com/phmarek/yason")
7357 (license license:bsd-3)))
7358
7359 (define-public cl-yason
7360 (sbcl-package->cl-source-package sbcl-yason))
7361
7362 (define-public ecl-yason
7363 (sbcl-package->ecl-package sbcl-yason))
7364
7365 (define-public sbcl-stefil
7366 (let ((commit "0398548ec95dceb50fc2c2c03e5fb0ce49b86c7a")
7367 (revision "0"))
7368 (package
7369 (name "sbcl-stefil")
7370 (version (git-version "0.1" revision commit))
7371 (source
7372 (origin
7373 (method git-fetch)
7374 (uri (git-reference
7375 (url "https://gitlab.common-lisp.net/stefil/stefil.git")
7376 (commit commit)))
7377 (file-name (git-file-name name version))
7378 (sha256
7379 (base32
7380 "0bqz64q2szzhf91zyqyssmvrz7da6442rs01808pf3wrdq28bclh"))))
7381 (build-system asdf-build-system/sbcl)
7382 (inputs
7383 `(("alexandria" ,sbcl-alexandria)
7384 ("iterate" ,sbcl-iterate)
7385 ("metabang-bind" ,sbcl-metabang-bind)))
7386 (propagated-inputs
7387 ;; Swank doesn't have a pre-compiled package, therefore we must
7388 ;; propagate its sources.
7389 `(("swank" ,cl-slime-swank)))
7390 (arguments
7391 '(#:phases
7392 (modify-phases %standard-phases
7393 (add-after 'unpack 'drop-unnecessary-dependency
7394 (lambda _
7395 (substitute* "package.lisp"
7396 ((":stefil-system") ""))
7397 #t)))))
7398 (home-page "https://common-lisp.net/project/stefil/index-old.shtml")
7399 (synopsis "Simple test framework")
7400 (description
7401 "Stefil is a simple test framework for Common Lisp, with a focus on
7402 interactive development.")
7403 (license license:public-domain))))
7404
7405 (define-public cl-stefil
7406 (sbcl-package->cl-source-package sbcl-stefil))
7407
7408 (define-public sbcl-graph
7409 (let ((commit "78bf9ec930d8eae4f0861b5be76765fb1e45e24f")
7410 (revision "0"))
7411 (package
7412 (name "sbcl-graph")
7413 (version (git-version "0.0.0" revision commit))
7414 (source
7415 (origin
7416 (method git-fetch)
7417 (uri
7418 (git-reference
7419 (url "https://github.com/eschulte/graph.git")
7420 (commit commit)))
7421 (file-name (git-file-name name version))
7422 (sha256
7423 (base32
7424 "1qpij4xh8bqwc2myahpilcbh916v7vg0acz2fij14d3y0jm02h0g"))
7425 (patches (search-patches "sbcl-graph-asdf-definitions.patch"))))
7426 (build-system asdf-build-system/sbcl)
7427 (native-inputs
7428 `(("stefil" ,sbcl-stefil)))
7429 (inputs
7430 `(("alexandria" ,sbcl-alexandria)
7431 ("cl-heap" ,sbcl-cl-heap)
7432 ("curry-compose-reader-macros" ,sbcl-curry-compose-reader-macros)
7433 ("metabang-bind" ,sbcl-metabang-bind)
7434 ("named-readtables" ,sbcl-named-readtables)))
7435 (arguments
7436 '(#:test-asd-file "graph.test.asd"))
7437 (synopsis "Graph data structure and algorithms for Common Lisp")
7438 (description
7439 "The GRAPH Common Lisp library provides a data structures to represent
7440 graphs, as well as some graph manipulation and analysis algorithms (shortest
7441 path, maximum flow, minimum spanning tree, etc.).")
7442 (home-page "https://eschulte.github.io/graph/")
7443 (license license:gpl3+))))
7444
7445 (define-public cl-graph
7446 (sbcl-package->cl-source-package sbcl-graph))
7447
7448 (define-public sbcl-graph-dot
7449 (package
7450 (inherit sbcl-graph)
7451 (name "sbcl-graph-dot")
7452 (inputs
7453 `(("alexandria" ,sbcl-alexandria)
7454 ("cl-ppcre" ,sbcl-cl-ppcre)
7455 ("curry-compose-reader-macros" ,sbcl-curry-compose-reader-macros)
7456 ("graph" ,sbcl-graph)
7457 ("metabang-bind" ,sbcl-metabang-bind)
7458 ("named-readtables" ,sbcl-named-readtables)))
7459 (arguments
7460 (substitute-keyword-arguments (package-arguments sbcl-graph)
7461 ((#:asd-file _ "") "graph.dot.asd")
7462 ((#:asd-system-name _ #f) "graph-dot")))
7463 (synopsis "Serialize graphs to and from DOT format")))
7464
7465 (define-public sbcl-graph-json
7466 (package
7467 (inherit sbcl-graph)
7468 (name "sbcl-graph-json")
7469 (inputs
7470 `(("alexandria" ,sbcl-alexandria)
7471 ("curry-compose-reader-macros" ,sbcl-curry-compose-reader-macros)
7472 ("graph" ,sbcl-graph)
7473 ("metabang-bind" ,sbcl-metabang-bind)
7474 ("named-readtables" ,sbcl-named-readtables)
7475 ("yason" ,sbcl-yason)))
7476 (arguments
7477 (substitute-keyword-arguments (package-arguments sbcl-graph)
7478 ((#:asd-file _ "") "graph.json.asd")
7479 ((#:asd-system-name _ #f) "graph-json")))
7480 (synopsis "Serialize graphs to and from JSON format")))
7481
7482 (define-public sbcl-trivial-indent
7483 (let ((commit "2d016941751647c6cc5bd471751c2cf68861c94a")
7484 (revision "0"))
7485 (package
7486 (name "sbcl-trivial-indent")
7487 (version (git-version "1.0.0" revision commit))
7488 (source
7489 (origin
7490 (method git-fetch)
7491 (uri
7492 (git-reference
7493 (url "https://github.com/Shinmera/trivial-indent")
7494 (commit commit)))
7495 (file-name (git-file-name name version))
7496 (sha256
7497 (base32
7498 "1sj90nqz17w4jq0ixz00gb9g5g6d2s7l8r17zdby27gxxh51w266"))))
7499 (build-system asdf-build-system/sbcl)
7500 (synopsis "Simple Common Lisp library to allow indentation hints for SWANK")
7501 (description
7502 "This library allows you to define custom indentation hints for your
7503 macros if the one recognised by SLIME automatically produces unwanted
7504 results.")
7505 (home-page "https://shinmera.github.io/trivial-indent/")
7506 (license license:zlib))))
7507
7508 (define-public cl-trivial-indent
7509 (sbcl-package->cl-source-package sbcl-trivial-indent))
7510
7511 (define-public sbcl-documentation-utils
7512 (let ((commit "98630dd5f7e36ae057fa09da3523f42ccb5d1f55")
7513 (revision "0"))
7514 (package
7515 (name "sbcl-documentation-utils")
7516 (version (git-version "1.2.0" revision commit))
7517 (source
7518 (origin
7519 (method git-fetch)
7520 (uri
7521 (git-reference
7522 (url "https://github.com/Shinmera/documentation-utils.git")
7523 (commit commit)))
7524 (file-name (git-file-name name version))
7525 (sha256
7526 (base32
7527 "098qhkqskmmrh4wix34mawf7p5c87yql28r51r75yjxj577k5idq"))))
7528 (build-system asdf-build-system/sbcl)
7529 (inputs
7530 `(("trivial-indent" ,sbcl-trivial-indent)))
7531 (synopsis "Few simple tools to document Common Lisp libraries")
7532 (description
7533 "This is a small library to help you with managing the Common Lisp
7534 docstrings for your library.")
7535 (home-page "https://shinmera.github.io/documentation-utils/")
7536 (license license:zlib))))
7537
7538 (define-public cl-documentation-utils
7539 (sbcl-package->cl-source-package sbcl-documentation-utils))
7540
7541 (define-public sbcl-form-fiddle
7542 (let ((commit "e0c23599dbb8cff3e83e012f3d86d0764188ad18")
7543 (revision "0"))
7544 (package
7545 (name "sbcl-form-fiddle")
7546 (version (git-version "1.1.0" revision commit))
7547 (source
7548 (origin
7549 (method git-fetch)
7550 (uri
7551 (git-reference
7552 (url "https://github.com/Shinmera/form-fiddle")
7553 (commit commit)))
7554 (file-name (git-file-name name version))
7555 (sha256
7556 (base32
7557 "041iznc9mpfyrl0sv5893ys9pbb2pvbn9g3clarqi7gsfj483jln"))))
7558 (build-system asdf-build-system/sbcl)
7559 (inputs
7560 `(("documentation-utils" ,sbcl-documentation-utils)))
7561 (synopsis "Utilities to destructure Common Lisp lambda forms")
7562 (description
7563 "Often times we need to destructure a form definition in a Common Lisp
7564 macro. This library provides a set of simple utilities to help with that.")
7565 (home-page "https://shinmera.github.io/form-fiddle/")
7566 (license license:zlib))))
7567
7568 (define-public cl-form-fiddle
7569 (sbcl-package->cl-source-package sbcl-form-fiddle))
7570
7571 (define-public sbcl-parachute
7572 (let ((commit "ca04dd8e43010a6dfffa26dbe1d62af86008d666")
7573 (revision "0"))
7574 (package
7575 (name "sbcl-parachute")
7576 (version (git-version "1.1.1" revision commit))
7577 (source
7578 (origin
7579 (method git-fetch)
7580 (uri
7581 (git-reference
7582 (url "https://github.com/Shinmera/parachute")
7583 (commit commit)))
7584 (file-name (git-file-name name version))
7585 (sha256
7586 (base32
7587 "1mvsm3r0r6a2bg75nw0q7n9vlby3ch45qjl7hnb5k1z2n5x5lh60"))))
7588 (build-system asdf-build-system/sbcl)
7589 (inputs
7590 `(("documentation-utils" ,sbcl-documentation-utils)
7591 ("form-fiddle" ,sbcl-form-fiddle)))
7592 (synopsis "Extensible and cross-compatible testing framework for Common Lisp")
7593 (description
7594 "Parachute is a simple-to-use and extensible testing framework.
7595 In Parachute, things are organised as a bunch of named tests within a package.
7596 Each test can contain a bunch of test forms that make up its body.")
7597 (home-page "https://shinmera.github.io/parachute/")
7598 (license license:zlib))))
7599
7600 (define-public cl-parachute
7601 (sbcl-package->cl-source-package sbcl-parachute))
7602
7603 (define-public sbcl-array-utils
7604 (let ((commit "f90eb9070d0b2205af51126a35033574725e5c56")
7605 (revision "0"))
7606 (package
7607 (name "sbcl-array-utils")
7608 (version (git-version "1.1.1" revision commit))
7609 (source
7610 (origin
7611 (method git-fetch)
7612 (uri
7613 (git-reference
7614 (url "https://github.com/Shinmera/array-utils")
7615 (commit commit)))
7616 (file-name (git-file-name name version))
7617 (sha256
7618 (base32
7619 "0zhwfbpr53vs1ii4sx75dz2k9yhh1xpwdqqpg8nmfndxkmhpbi3x"))))
7620 (build-system asdf-build-system/sbcl)
7621 (native-inputs
7622 `(("parachute" ,sbcl-parachute)))
7623 (inputs
7624 `(("documentation-utils" ,sbcl-documentation-utils)))
7625 (synopsis "Tiny collection of array and vector utilities for Common Lisp")
7626 (description
7627 "A miniature toolkit that contains some useful shifting/popping/pushing
7628 functions for arrays and vectors. Originally from Plump.")
7629 (home-page "https://shinmera.github.io/array-utils/")
7630 (license license:zlib))))
7631
7632 (define-public cl-array-utils
7633 (sbcl-package->cl-source-package sbcl-array-utils))
7634
7635 (define-public sbcl-plump
7636 (let ((commit "16f1231bf706cfbc54d9e55a853ca945e4452a08")
7637 (revision "0"))
7638 (package
7639 (name "sbcl-plump")
7640 (version (git-version "2.0.0" revision commit))
7641 (source
7642 (origin
7643 (method git-fetch)
7644 (uri
7645 (git-reference
7646 (url "https://github.com/Shinmera/plump")
7647 (commit commit)))
7648 (file-name (git-file-name name version))
7649 (sha256
7650 (base32
7651 "0705k8pbip51v74rccgwscwph439f2pma9f915qf1h4bhjx999ip"))))
7652 (build-system asdf-build-system/sbcl)
7653 (inputs
7654 `(("array-utils" ,sbcl-array-utils)
7655 ("documentation-utils" ,sbcl-documentation-utils)))
7656 (synopsis "Lenient XML / XHTML / HTML parser for Common Lisp")
7657 (description
7658 "Plump is a parser for HTML/XML-like documents, focusing on being
7659 lenient towards invalid markup. It can handle things like invalid attributes,
7660 bad closing tag order, unencoded entities, inexistent tag types, self-closing
7661 tags and so on. It parses documents to a class representation and offers a
7662 small set of DOM functions to manipulate it. It can be extended to parse to
7663 your own classes.")
7664 (home-page "https://shinmera.github.io/plump/")
7665 (license license:zlib))))
7666
7667 (define-public cl-plump
7668 (sbcl-package->cl-source-package sbcl-plump))
7669
7670 (define-public sbcl-antik-base
7671 (let ((commit "e4711a69b3d6bf37b5727af05c3cfd03e8428ba3")
7672 (revision "1"))
7673 (package
7674 (name "sbcl-antik-base")
7675 (version (git-version "0.0.0" revision commit))
7676 (source
7677 (origin
7678 (method git-fetch)
7679 (uri (git-reference
7680 (url "https://gitlab.common-lisp.net/antik/antik.git")
7681 (commit commit)))
7682 (file-name (git-file-name name version))
7683 (sha256
7684 (base32
7685 "047ga2c38par2xbgg4qx6hwv06qhf1c1f67as8xvir6s80lip1km"))))
7686 (build-system asdf-build-system/sbcl)
7687 (inputs
7688 `(("alexandria" ,sbcl-alexandria)
7689 ("cl-ppcre" ,sbcl-cl-ppcre)
7690 ("iterate" ,sbcl-iterate)
7691 ("metabang-bind" ,sbcl-metabang-bind)
7692 ("named-readtables" ,sbcl-named-readtables)
7693 ("split-sequence" ,sbcl-split-sequence)))
7694 (native-inputs
7695 `(("lisp-unit" ,sbcl-lisp-unit)))
7696 (synopsis "Scientific and engineering computation in Common Lisp")
7697 (description
7698 "Antik provides a foundation for scientific and engineering
7699 computation in Common Lisp. It is designed not only to facilitate
7700 numerical computations, but to permit the use of numerical computation
7701 libraries and the interchange of data and procedures, whether
7702 foreign (non-Lisp) or Lisp libraries. It is named after the
7703 Antikythera mechanism, one of the oldest examples of a scientific
7704 computer known.")
7705 (home-page "https://common-lisp.net/project/antik/")
7706 (license license:gpl3))))
7707
7708 (define-public cl-antik-base
7709 (sbcl-package->cl-source-package sbcl-antik-base))
7710
7711 (define-public ecl-antik-base
7712 (sbcl-package->ecl-package sbcl-antik-base))
7713
7714 (define-public sbcl-foreign-array
7715 (package
7716 (inherit sbcl-antik-base)
7717 (name "sbcl-foreign-array")
7718 (arguments
7719 (substitute-keyword-arguments (package-arguments sbcl-antik-base)
7720 ((#:asd-file _ "") "foreign-array.asd")
7721 ((#:asd-system-name _ #f) "foreign-array")))
7722 (inputs
7723 `(("antik-base" ,sbcl-antik-base)
7724 ("cffi" ,sbcl-cffi)
7725 ("trivial-garbage" ,sbcl-trivial-garbage)
7726 ("static-vectors" ,sbcl-static-vectors)))
7727 (synopsis "Common Lisp library providing access to foreign arrays")))
7728
7729 (define-public cl-foreign-array
7730 (sbcl-package->cl-source-package sbcl-foreign-array))
7731
7732 (define-public ecl-foreign-array
7733 (sbcl-package->ecl-package sbcl-foreign-array))
7734
7735 (define-public sbcl-physical-dimension
7736 (package
7737 (inherit sbcl-antik-base)
7738 (name "sbcl-physical-dimension")
7739 (inputs
7740 `(("fare-utils" ,sbcl-fare-utils)
7741 ("foreign-array" ,sbcl-foreign-array)
7742 ("trivial-utf-8" ,sbcl-trivial-utf-8)))
7743 (arguments
7744 (substitute-keyword-arguments (package-arguments sbcl-antik-base)
7745 ((#:asd-file _ "") "physical-dimension.asd")
7746 ((#:asd-system-name _ #f) "physical-dimension")))
7747 (synopsis
7748 "Common Lisp library providing computations with physical units")))
7749
7750 (define-public cl-physical-dimension
7751 (sbcl-package->cl-source-package sbcl-physical-dimension))
7752
7753 (define-public sbcl-science-data
7754 (package
7755 (inherit sbcl-antik-base)
7756 (name "sbcl-science-data")
7757 (inputs
7758 `(("physical-dimension" ,sbcl-physical-dimension)
7759 ("drakma" ,sbcl-drakma)))
7760 (arguments
7761 (substitute-keyword-arguments (package-arguments sbcl-antik-base)
7762 ((#:asd-file _ "") "science-data.asd")
7763 ((#:asd-system-name _ #f) "science-data")))
7764 (synopsis
7765 "Common Lisp library for scientific and engineering numerical data")))
7766
7767 (define-public cl-science-data
7768 (sbcl-package->cl-source-package sbcl-science-data))
7769
7770 (define-public sbcl-gsll
7771 (let ((commit "1a8ada22f9cf5ed7372d352b2317f4ccdb6ab308")
7772 (revision "1"))
7773 (package
7774 (name "sbcl-gsll")
7775 (version (git-version "0.0.0" revision commit))
7776 (source
7777 (origin
7778 (method git-fetch)
7779 (uri (git-reference
7780 (url "https://gitlab.common-lisp.net/antik/gsll.git")
7781 (commit commit)))
7782 (file-name (git-file-name name version))
7783 (sha256
7784 (base32
7785 "0z5nypfk26hxihb08p085644afawicrgb4xvadh3lmrn46qbjfn4"))))
7786 (build-system asdf-build-system/sbcl)
7787 (native-inputs
7788 `(("lisp-unit" ,sbcl-lisp-unit)))
7789 (inputs
7790 `(("alexandria" ,sbcl-alexandria)
7791 ("cffi-grovel" ,sbcl-cffi-grovel)
7792 ("cffi-libffi" ,sbcl-cffi-libffi)
7793 ("foreign-array" ,sbcl-foreign-array)
7794 ("gsl" ,gsl)
7795 ("metabang-bind" ,sbcl-metabang-bind)
7796 ("trivial-features" ,sbcl-trivial-features)
7797 ("trivial-garbage" ,sbcl-trivial-garbage)))
7798 (arguments
7799 `(#:tests? #f
7800 #:phases
7801 (modify-phases %standard-phases
7802 (add-after 'unpack 'fix-cffi-paths
7803 (lambda* (#:key inputs #:allow-other-keys)
7804 (substitute* "gsll.asd"
7805 ((":depends-on \\(#:foreign-array")
7806 ":depends-on (#:foreign-array #:cffi-libffi"))
7807 (substitute* "init/init.lisp"
7808 (("libgslcblas.so" all)
7809 (string-append
7810 (assoc-ref inputs "gsl") "/lib/" all)))
7811 (substitute* "init/init.lisp"
7812 (("libgsl.so" all)
7813 (string-append
7814 (assoc-ref inputs "gsl") "/lib/" all))))))))
7815 (synopsis "GNU Scientific Library for Lisp")
7816 (description
7817 "The GNU Scientific Library for Lisp (GSLL) allows the use of the
7818 GNU Scientific Library (GSL) from Common Lisp. This library provides a
7819 full range of common mathematical operations useful to scientific and
7820 engineering applications. The design of the GSLL interface is such
7821 that access to most of the GSL library is possible in a Lisp-natural
7822 way; the intent is that the user not be hampered by the restrictions
7823 of the C language in which GSL has been written. GSLL thus provides
7824 interactive use of GSL for getting quick answers, even for someone not
7825 intending to program in Lisp.")
7826 (home-page "https://common-lisp.net/project/gsll/")
7827 (license license:gpl3))))
7828
7829 (define-public cl-gsll
7830 (sbcl-package->cl-source-package sbcl-gsll))
7831
7832 (define-public sbcl-antik
7833 (package
7834 (inherit sbcl-antik-base)
7835 (name "sbcl-antik")
7836 (inputs
7837 `(("gsll" ,sbcl-gsll)
7838 ("physical-dimension" ,sbcl-physical-dimension)))
7839 (arguments
7840 (substitute-keyword-arguments (package-arguments sbcl-antik-base)
7841 ((#:asd-file _ "") "antik.asd")
7842 ((#:asd-system-name _ #f) "antik")))))
7843
7844 (define-public cl-antik
7845 (sbcl-package->cl-source-package sbcl-antik))
7846
7847 (define-public sbcl-cl-interpol
7848 (let ((commit "1fd288d861db85bc4677cff3cdd6af75fda1afb4")
7849 (revision "1"))
7850 (package
7851 (name "sbcl-cl-interpol")
7852 (version (git-version "0.2.6" revision commit))
7853 (source
7854 (origin
7855 (method git-fetch)
7856 (uri (git-reference
7857 (url "https://github.com/edicl/cl-interpol.git")
7858 (commit commit)))
7859 (file-name (git-file-name name version))
7860 (sha256
7861 (base32
7862 "1hnikak52hmcq1r5f616m6qq1108qnkw80pja950nv1fq5p0ppjn"))))
7863 (build-system asdf-build-system/sbcl)
7864 (inputs
7865 `(("cl-unicode" ,sbcl-cl-unicode)
7866 ("named-readtables" ,sbcl-named-readtables)))
7867 (native-inputs
7868 `(("flexi-streams" ,sbcl-flexi-streams)))
7869 (synopsis "String interpolation for Common Lisp")
7870 (description
7871 "CL-INTERPOL is a library for Common Lisp which modifies the
7872 reader so that you can have interpolation within strings similar to
7873 Perl or Unix Shell scripts. It also provides various ways to insert
7874 arbitrary characters into literal strings even if your editor/IDE
7875 doesn't support them.")
7876 (home-page "https://edicl.github.io/cl-interpol/")
7877 (license license:bsd-3))))
7878
7879 (define-public cl-interpol
7880 (sbcl-package->cl-source-package sbcl-cl-interpol))
7881
7882 (define-public ecl-cl-interpol
7883 (sbcl-package->ecl-package sbcl-cl-interpol))
7884
7885 (define sbcl-symbol-munger-boot0
7886 ;; There is a cyclical dependency between symbol-munger and lisp-unit2.
7887 ;; See https://github.com/AccelerationNet/symbol-munger/issues/4
7888 (let ((commit "cc2bb4b7acd454d756484aec81ba487648385fc3")
7889 (revision "1"))
7890 (package
7891 (name "sbcl-symbol-munger-boot0")
7892 (version (git-version "0.0.1" revision commit))
7893 (source
7894 (origin
7895 (method git-fetch)
7896 (uri (git-reference
7897 (url "https://github.com/AccelerationNet/symbol-munger.git")
7898 (commit commit)))
7899 (file-name (git-file-name name version))
7900 (sha256
7901 (base32
7902 "0diav5ricqsybqvbp4bkxyj3bn3v9n7xb2pqqc4vg1algsw2pyjl"))))
7903 (build-system asdf-build-system/sbcl)
7904 (arguments
7905 `(#:asd-file "symbol-munger.asd"
7906 #:asd-system-name "symbol-munger"))
7907 (inputs
7908 `(("iterate" ,sbcl-iterate)
7909 ("alexandria" ,sbcl-alexandria)))
7910 (native-inputs
7911 `(("lisp-unit" ,sbcl-lisp-unit)))
7912 (synopsis
7913 "Capitalization and spacing conversion functions for Common Lisp")
7914 (description
7915 "This is a Common Lisp library to change the capitalization and spacing
7916 of a string or a symbol. It can convert to and from Lisp, english, underscore
7917 and camel-case rules.")
7918 (home-page "https://github.com/AccelerationNet/symbol-munger")
7919 ;; The package declares a BSD license, but all of the license
7920 ;; text is MIT.
7921 ;; See https://github.com/AccelerationNet/symbol-munger/issues/5
7922 (license license:expat))))
7923
7924 (define sbcl-lisp-unit2-boot0
7925 ;; There is a cyclical dependency between symbol-munger and lisp-unit2.
7926 ;; See https://github.com/AccelerationNet/symbol-munger/issues/4
7927 (let ((commit "fb9721524d1e4e73abb223ee036d74ce14a5505c")
7928 (revision "1"))
7929 (package
7930 (name "sbcl-lisp-unit2-boot0")
7931 (version (git-version "0.2.0" revision commit))
7932 (source
7933 (origin
7934 (method git-fetch)
7935 (uri (git-reference
7936 (url "https://github.com/AccelerationNet/lisp-unit2.git")
7937 (commit commit)))
7938 (file-name (git-file-name name version))
7939 (sha256
7940 (base32
7941 "1rsqy8y0jqll6xn9a593848f5wvd5ribv4csry1ly0hmdhfnqzlp"))))
7942 (build-system asdf-build-system/sbcl)
7943 (arguments
7944 `(#:asd-file "lisp-unit2.asd"
7945 #:asd-system-name "lisp-unit2"))
7946 (inputs
7947 `(("alexandria" ,sbcl-alexandria)
7948 ("cl-interpol" ,sbcl-cl-interpol)
7949 ("iterate" ,sbcl-iterate)
7950 ("symbol-munger-boot0" ,sbcl-symbol-munger-boot0)))
7951 (synopsis "Test Framework for Common Lisp")
7952 (description
7953 "LISP-UNIT2 is a Common Lisp library that supports unit testing in the
7954 style of JUnit for Java. It is a new version of the lisp-unit library written
7955 by Chris Riesbeck.")
7956 (home-page "https://github.com/AccelerationNet/lisp-unit2")
7957 (license license:expat))))
7958
7959 (define-public sbcl-symbol-munger
7960 (let ((commit "97598d4c3c53fd5da72ab78908fbd5d8c7a13416")
7961 (revision "1"))
7962 (package
7963 (name "sbcl-symbol-munger")
7964 (version (git-version "0.0.1" revision commit))
7965 (source
7966 (origin
7967 (method git-fetch)
7968 (uri (git-reference
7969 (url "https://github.com/AccelerationNet/symbol-munger.git")
7970 (commit commit)))
7971 (file-name (git-file-name name version))
7972 (sha256
7973 (base32
7974 "0y8jywjy0ldyhp7bxf16fdvdd2qgqnd7nlhlqfpfnzxcqk4xy1km"))))
7975 (build-system asdf-build-system/sbcl)
7976 (inputs
7977 `(("alexandria" ,sbcl-alexandria)
7978 ("iterate" ,sbcl-iterate)))
7979 (native-inputs
7980 `(("lisp-unit2-boot0" ,sbcl-lisp-unit2-boot0)))
7981 (synopsis
7982 "Capitalization and spacing conversion functions for Common Lisp")
7983 (description
7984 "This is a Common Lisp library to change the capitalization and spacing
7985 of a string or a symbol. It can convert to and from Lisp, english, underscore
7986 and camel-case rules.")
7987 (home-page "https://github.com/AccelerationNet/symbol-munger")
7988 ;; The package declares a BSD license, but all of the license
7989 ;; text is MIT.
7990 ;; See https://github.com/AccelerationNet/symbol-munger/issues/5
7991 (license license:expat))))
7992
7993 (define-public cl-symbol-munger
7994 (sbcl-package->cl-source-package sbcl-symbol-munger))
7995
7996 (define-public ecl-symbol-munger
7997 (sbcl-package->ecl-package sbcl-symbol-munger))
7998
7999 (define-public sbcl-lisp-unit2
8000 (package
8001 (inherit sbcl-lisp-unit2-boot0)
8002 (name "sbcl-lisp-unit2")
8003 (inputs
8004 `(("alexandria" ,sbcl-alexandria)
8005 ("cl-interpol" ,sbcl-cl-interpol)
8006 ("iterate" ,sbcl-iterate)
8007 ("symbol-munger" ,sbcl-symbol-munger)))))
8008
8009 (define-public cl-lisp-unit2
8010 (sbcl-package->cl-source-package sbcl-lisp-unit2))
8011
8012 (define-public ecl-lisp-unit2
8013 (sbcl-package->ecl-package sbcl-lisp-unit2))
8014
8015 (define-public sbcl-cl-csv
8016 (let ((commit "3eba29c8364b033fbe0d189c2500559278b6a362")
8017 (revision "1"))
8018 (package
8019 (name "sbcl-cl-csv")
8020 (version (git-version "1.0.6" revision commit))
8021 (source
8022 (origin
8023 (method git-fetch)
8024 (uri (git-reference
8025 (url "https://github.com/AccelerationNet/cl-csv.git")
8026 (commit commit)))
8027 (file-name (git-file-name name version))
8028 (sha256
8029 (base32
8030 "07h4ni89jzx93clx453hlnnb5g53hhlcmz5hghqv6ysam48lc8g6"))))
8031 (build-system asdf-build-system/sbcl)
8032 (arguments
8033 ;; See: https://github.com/AccelerationNet/cl-csv/pull/34
8034 `(#:tests? #f))
8035 (inputs
8036 `(("alexandria" ,sbcl-alexandria)
8037 ("cl-interpol" ,sbcl-cl-interpol)
8038 ("iterate" ,sbcl-iterate)))
8039 (native-inputs
8040 `(("lisp-unit2" ,sbcl-lisp-unit2)))
8041 (synopsis "Common lisp library for comma-separated values")
8042 (description
8043 "This is a Common Lisp library providing functions to read/write CSV
8044 from/to strings, streams and files.")
8045 (home-page "https://github.com/AccelerationNet/cl-csv")
8046 (license license:bsd-3))))
8047
8048 (define-public cl-csv
8049 (sbcl-package->cl-source-package sbcl-cl-csv))
8050
8051 (define-public ecl-cl-csv
8052 (sbcl-package->ecl-package sbcl-cl-csv))
8053
8054 (define-public sbcl-external-program
8055 (let ((commit "5888b8f1fd3953feeeacecbba4384ddda584a749")
8056 (revision "1"))
8057 (package
8058 (name "sbcl-external-program")
8059 (version (git-version "0.0.6" revision commit))
8060 (source
8061 (origin
8062 (method git-fetch)
8063 (uri (git-reference
8064 (url "https://github.com/sellout/external-program.git")
8065 (commit commit)))
8066 (file-name (git-file-name name version))
8067 (sha256
8068 (base32
8069 "0vww1x3yilb3bjwg6k184vaj4vxyxw4vralhnlm6lk4xac67kc9z"))))
8070 (build-system asdf-build-system/sbcl)
8071 (inputs
8072 `(("trivial-features" ,sbcl-trivial-features)))
8073 (native-inputs
8074 `(("fiveam" ,sbcl-fiveam)))
8075 (synopsis "Common Lisp library for running external programs")
8076 (description
8077 "EXTERNAL-PROGRAM enables running programs outside the Lisp
8078 process. It is an attempt to make the RUN-PROGRAM functionality in
8079 implementations like SBCL and CCL as portable as possible without
8080 sacrificing much in the way of power.")
8081 (home-page "https://github.com/sellout/external-program")
8082 (license license:llgpl))))
8083
8084 (define-public cl-external-program
8085 (sbcl-package->cl-source-package sbcl-external-program))
8086
8087 (define-public ecl-external-program
8088 (sbcl-package->ecl-package sbcl-external-program))
8089
8090 (define sbcl-cl-ana-boot0
8091 (let ((commit "fa7cee4c50aa1c859652813049ba0da7c18a0df9")
8092 (revision "1"))
8093 (package
8094 (name "sbcl-cl-ana-boot0")
8095 (version (git-version "0.0.0" revision commit))
8096 (source
8097 (origin
8098 (method git-fetch)
8099 (uri (git-reference
8100 (url "https://github.com/ghollisjr/cl-ana.git")
8101 (commit commit)))
8102 (file-name (git-file-name name version))
8103 (sha256
8104 (base32
8105 "0mr47l57m276dbpap7irr4fcnk5fgknhf6mgv4043s8h73amk5qh"))))
8106 (build-system asdf-build-system/sbcl)
8107 (synopsis "Common Lisp data analysis library")
8108 (description
8109 "CL-ANA is a data analysis library in Common Lisp providing tabular and
8110 binned data analysis along with nonlinear least squares fitting and
8111 visualization.")
8112 (home-page "https://github.com/ghollisjr/cl-ana")
8113 (license license:gpl3))))
8114
8115 (define-public sbcl-cl-ana.pathname-utils
8116 (package
8117 (inherit sbcl-cl-ana-boot0)
8118 (name "sbcl-cl-ana.pathname-utils")
8119 (arguments
8120 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8121 ((#:asd-file _ "") "pathname-utils/cl-ana.pathname-utils.asd")
8122 ((#:asd-system-name _ #f) "cl-ana.pathname-utils")))))
8123
8124 (define-public cl-ana.pathname-utils
8125 (sbcl-package->cl-source-package sbcl-cl-ana.pathname-utils))
8126
8127 (define-public ecl-cl-ana.pathname-utils
8128 (sbcl-package->ecl-package sbcl-cl-ana.pathname-utils))
8129
8130 (define-public sbcl-cl-ana.package-utils
8131 (package
8132 (inherit sbcl-cl-ana-boot0)
8133 (name "sbcl-cl-ana.package-utils")
8134 (inputs
8135 `(("alexandria" ,sbcl-alexandria)))
8136 (arguments
8137 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8138 ((#:asd-file _ "") "package-utils/cl-ana.package-utils.asd")
8139 ((#:asd-system-name _ #f) "cl-ana.package-utils")))))
8140
8141 (define-public cl-ana.package-utils
8142 (sbcl-package->cl-source-package sbcl-cl-ana.package-utils))
8143
8144 (define-public ecl-cl-ana.package-utils
8145 (sbcl-package->ecl-package sbcl-cl-ana.package-utils))
8146
8147 (define-public sbcl-cl-ana.string-utils
8148 (package
8149 (inherit sbcl-cl-ana-boot0)
8150 (name "sbcl-cl-ana.string-utils")
8151 (inputs
8152 `(("split-sequence" ,sbcl-split-sequence)))
8153 (arguments
8154 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8155 ((#:asd-file _ "") "string-utils/cl-ana.string-utils.asd")
8156 ((#:asd-system-name _ #f) "cl-ana.string-utils")))))
8157
8158 (define-public cl-ana.string-utils
8159 (sbcl-package->cl-source-package sbcl-cl-ana.string-utils))
8160
8161 (define-public ecl-cl-ana.string-utils
8162 (sbcl-package->ecl-package sbcl-cl-ana.string-utils))
8163
8164 (define-public sbcl-cl-ana.functional-utils
8165 (package
8166 (inherit sbcl-cl-ana-boot0)
8167 (name "sbcl-cl-ana.functional-utils")
8168 (arguments
8169 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8170 ((#:asd-file _ "") "functional-utils/cl-ana.functional-utils.asd")
8171 ((#:asd-system-name _ #f) "cl-ana.functional-utils")))))
8172
8173 (define-public cl-ana.functional-utils
8174 (sbcl-package->cl-source-package sbcl-cl-ana.functional-utils))
8175
8176 (define-public ecl-cl-ana.functional-utils
8177 (sbcl-package->ecl-package sbcl-cl-ana.functional-utils))
8178
8179 (define-public sbcl-cl-ana.list-utils
8180 (package
8181 (inherit sbcl-cl-ana-boot0)
8182 (name "sbcl-cl-ana.list-utils")
8183 (inputs
8184 `(("alexandria" ,sbcl-alexandria)
8185 ("cl-ana.functional-utils" ,sbcl-cl-ana.functional-utils)
8186 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)))
8187 (arguments
8188 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8189 ((#:asd-file _ "") "list-utils/cl-ana.list-utils.asd")
8190 ((#:asd-system-name _ #f) "cl-ana.list-utils")))))
8191
8192 (define-public cl-ana.list-utils
8193 (sbcl-package->cl-source-package sbcl-cl-ana.list-utils))
8194
8195 (define-public ecl-cl-ana.list-utils
8196 (sbcl-package->ecl-package sbcl-cl-ana.list-utils))
8197
8198 (define-public sbcl-cl-ana.generic-math
8199 (package
8200 (inherit sbcl-cl-ana-boot0)
8201 (name "sbcl-cl-ana.generic-math")
8202 (inputs
8203 `(("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8204 ("cl-ana.package-utils" ,sbcl-cl-ana.package-utils)))
8205 (arguments
8206 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8207 ((#:asd-file _ "") "generic-math/cl-ana.generic-math.asd")
8208 ((#:asd-system-name _ #f) "cl-ana.generic-math")))))
8209
8210 (define-public cl-ana.generic-math
8211 (sbcl-package->cl-source-package sbcl-cl-ana.generic-math))
8212
8213 (define-public ecl-cl-ana.generic-math
8214 (sbcl-package->ecl-package sbcl-cl-ana.generic-math))
8215
8216 (define-public sbcl-cl-ana.math-functions
8217 (package
8218 (inherit sbcl-cl-ana-boot0)
8219 (name "sbcl-cl-ana.math-functions")
8220 (inputs
8221 `(("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
8222 ("gsll" ,sbcl-gsll)))
8223 (arguments
8224 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8225 ((#:asd-file _ "") "math-functions/cl-ana.math-functions.asd")
8226 ((#:asd-system-name _ #f) "cl-ana.math-functions")))))
8227
8228 (define-public cl-ana.math-functions
8229 (sbcl-package->cl-source-package sbcl-cl-ana.math-functions))
8230
8231 (define-public sbcl-cl-ana.calculus
8232 (package
8233 (inherit sbcl-cl-ana-boot0)
8234 (name "sbcl-cl-ana.calculus")
8235 (inputs
8236 `(("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)))
8237 (arguments
8238 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8239 ((#:asd-file _ "") "calculus/cl-ana.calculus.asd")
8240 ((#:asd-system-name _ #f) "cl-ana.calculus")))))
8241
8242 (define-public cl-ana.calculus
8243 (sbcl-package->cl-source-package sbcl-cl-ana.calculus))
8244
8245 (define-public ecl-cl-ana.calculus
8246 (sbcl-package->ecl-package sbcl-cl-ana.calculus))
8247
8248 (define-public sbcl-cl-ana.symbol-utils
8249 (package
8250 (inherit sbcl-cl-ana-boot0)
8251 (name "sbcl-cl-ana.symbol-utils")
8252 (inputs
8253 `(("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)))
8254 (arguments
8255 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8256 ((#:asd-file _ "") "symbol-utils/cl-ana.symbol-utils.asd")
8257 ((#:asd-system-name _ #f) "cl-ana.symbol-utils")))))
8258
8259 (define-public cl-ana.symbol-utils
8260 (sbcl-package->cl-source-package sbcl-cl-ana.symbol-utils))
8261
8262 (define-public ecl-cl-ana.symbol-utils
8263 (sbcl-package->ecl-package sbcl-cl-ana.symbol-utils))
8264
8265 (define-public sbcl-cl-ana.macro-utils
8266 (package
8267 (inherit sbcl-cl-ana-boot0)
8268 (name "sbcl-cl-ana.macro-utils")
8269 (inputs
8270 `(("alexandria" ,sbcl-alexandria)
8271 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8272 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
8273 ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)
8274 ("split-sequence" ,sbcl-split-sequence)))
8275 (arguments
8276 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8277 ((#:asd-file _ "") "macro-utils/cl-ana.macro-utils.asd")
8278 ((#:asd-system-name _ #f) "cl-ana.macro-utils")))))
8279
8280 (define-public cl-ana.macro-utils
8281 (sbcl-package->cl-source-package sbcl-cl-ana.macro-utils))
8282
8283 (define-public ecl-cl-ana.macro-utils
8284 (sbcl-package->ecl-package sbcl-cl-ana.macro-utils))
8285
8286 (define-public sbcl-cl-ana.binary-tree
8287 (package
8288 (inherit sbcl-cl-ana-boot0)
8289 (name "sbcl-cl-ana.binary-tree")
8290 (inputs
8291 `(("cl-ana.functional-utils" ,sbcl-cl-ana.functional-utils)
8292 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8293 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)))
8294 (arguments
8295 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8296 ((#:asd-file _ "") "binary-tree/cl-ana.binary-tree.asd")
8297 ((#:asd-system-name _ #f) "cl-ana.binary-tree")))))
8298
8299 (define-public cl-ana.binary-tree
8300 (sbcl-package->cl-source-package sbcl-cl-ana.binary-tree))
8301
8302 (define-public ecl-cl-ana.binary-tree
8303 (sbcl-package->ecl-package sbcl-cl-ana.binary-tree))
8304
8305 (define-public sbcl-cl-ana.tensor
8306 (package
8307 (inherit sbcl-cl-ana-boot0)
8308 (name "sbcl-cl-ana.tensor")
8309 (inputs
8310 `(("alexandria" ,sbcl-alexandria)
8311 ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
8312 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8313 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
8314 ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)))
8315 (arguments
8316 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8317 ((#:asd-file _ "") "tensor/cl-ana.tensor.asd")
8318 ((#:asd-system-name _ #f) "cl-ana.tensor")))))
8319
8320 (define-public cl-ana.tensor
8321 (sbcl-package->cl-source-package sbcl-cl-ana.tensor))
8322
8323 (define-public ecl-cl-ana.tensor
8324 (sbcl-package->ecl-package sbcl-cl-ana.tensor))
8325
8326 (define-public sbcl-cl-ana.error-propogation
8327 (package
8328 (inherit sbcl-cl-ana-boot0)
8329 (name "sbcl-cl-ana.error-propogation")
8330 (inputs
8331 `(("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
8332 ("cl-ana.math-functions" ,sbcl-cl-ana.math-functions)))
8333 (arguments
8334 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8335 ((#:asd-file _ "") "error-propogation/cl-ana.error-propogation.asd")
8336 ((#:asd-system-name _ #f) "cl-ana.error-propogation")))))
8337
8338 (define-public cl-ana.error-propogation
8339 (sbcl-package->cl-source-package sbcl-cl-ana.error-propogation))
8340
8341 (define-public sbcl-cl-ana.quantity
8342 (package
8343 (inherit sbcl-cl-ana-boot0)
8344 (name "sbcl-cl-ana.quantity")
8345 (inputs
8346 `(("alexandria" ,sbcl-alexandria)
8347 ("cl-ana.error-propogation" ,sbcl-cl-ana.error-propogation)
8348 ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
8349 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8350 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
8351 ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)))
8352 (arguments
8353 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8354 ((#:asd-file _ "") "quantity/cl-ana.quantity.asd")
8355 ((#:asd-system-name _ #f) "cl-ana.quantity")))))
8356
8357 (define-public cl-ana.quantity
8358 (sbcl-package->cl-source-package sbcl-cl-ana.quantity))
8359
8360 (define-public sbcl-cl-ana.table
8361 (package
8362 (inherit sbcl-cl-ana-boot0)
8363 (name "sbcl-cl-ana.table")
8364 (inputs
8365 `(("alexandria" ,sbcl-alexandria)
8366 ("cl-ana.functional-utils" ,sbcl-cl-ana.functional-utils)
8367 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8368 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
8369 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
8370 ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)))
8371 (arguments
8372 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8373 ((#:asd-file _ "") "table/cl-ana.table.asd")
8374 ((#:asd-system-name _ #f) "cl-ana.table")))))
8375
8376 (define-public cl-ana.table
8377 (sbcl-package->cl-source-package sbcl-cl-ana.table))
8378
8379 (define-public ecl-cl-ana.table
8380 (sbcl-package->ecl-package sbcl-cl-ana.table))
8381
8382 (define-public sbcl-cl-ana.table-utils
8383 (package
8384 (inherit sbcl-cl-ana-boot0)
8385 (name "sbcl-cl-ana.table-utils")
8386 (inputs
8387 `(("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
8388 ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)
8389 ("cl-ana.table" ,sbcl-cl-ana.table)))
8390 (arguments
8391 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8392 ((#:asd-file _ "") "table-utils/cl-ana.table-utils.asd")
8393 ((#:asd-system-name _ #f) "cl-ana.table-utils")))))
8394
8395 (define-public cl-ana.table-utils
8396 (sbcl-package->cl-source-package sbcl-cl-ana.table-utils))
8397
8398 (define-public ecl-cl-ana.table-utils
8399 (sbcl-package->ecl-package sbcl-cl-ana.table-utils))
8400
8401 (define-public sbcl-cl-ana.hdf-cffi
8402 (package
8403 (inherit sbcl-cl-ana-boot0)
8404 (name "sbcl-cl-ana.hdf-cffi")
8405 (inputs
8406 `(("cffi" ,sbcl-cffi)
8407 ("hdf5" ,hdf5-parallel-openmpi)))
8408 (arguments
8409 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8410 ((#:asd-file _ "") "hdf-cffi/cl-ana.hdf-cffi.asd")
8411 ((#:asd-system-name _ #f) "cl-ana.hdf-cffi")
8412 ((#:phases phases '%standard-phases)
8413 `(modify-phases ,phases
8414 (add-after 'unpack 'fix-paths
8415 (lambda* (#:key inputs #:allow-other-keys)
8416 (substitute* "hdf-cffi/hdf-cffi.lisp"
8417 (("/usr/lib/i386-linux-gnu/hdf5/serial/libhdf5.so")
8418 (string-append
8419 (assoc-ref inputs "hdf5")
8420 "/lib/libhdf5.so")))))))))))
8421
8422 (define-public cl-ana.hdf-cffi
8423 (sbcl-package->cl-source-package sbcl-cl-ana.hdf-cffi))
8424
8425 (define-public ecl-cl-ana.hdf-cffi
8426 (sbcl-package->ecl-package sbcl-cl-ana.hdf-cffi))
8427
8428 (define-public sbcl-cl-ana.int-char
8429 (package
8430 (inherit sbcl-cl-ana-boot0)
8431 (name "sbcl-cl-ana.int-char")
8432 (arguments
8433 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8434 ((#:asd-file _ "") "int-char/cl-ana.int-char.asd")
8435 ((#:asd-system-name _ #f) "cl-ana.int-char")))))
8436
8437 (define-public cl-ana.int-char
8438 (sbcl-package->cl-source-package sbcl-cl-ana.int-char))
8439
8440 (define-public ecl-cl-ana.int-char
8441 (sbcl-package->ecl-package sbcl-cl-ana.int-char))
8442
8443 (define-public sbcl-cl-ana.memoization
8444 (package
8445 (inherit sbcl-cl-ana-boot0)
8446 (name "sbcl-cl-ana.memoization")
8447 (inputs
8448 `(("alexandria" ,sbcl-alexandria)))
8449 (arguments
8450 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8451 ((#:asd-file _ "") "memoization/cl-ana.memoization.asd")
8452 ((#:asd-system-name _ #f) "cl-ana.memoization")))))
8453
8454 (define-public cl-ana.memoization
8455 (sbcl-package->cl-source-package sbcl-cl-ana.memoization))
8456
8457 (define-public ecl-cl-ana.memoization
8458 (sbcl-package->ecl-package sbcl-cl-ana.memoization))
8459
8460 (define-public sbcl-cl-ana.typespec
8461 (package
8462 (inherit sbcl-cl-ana-boot0)
8463 (name "sbcl-cl-ana.typespec")
8464 (inputs
8465 `(("alexandria" ,sbcl-alexandria)
8466 ("cffi" ,sbcl-cffi)
8467 ("cl-ana.int-char" ,sbcl-cl-ana.int-char)
8468 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8469 ("cl-ana.memoization" ,sbcl-cl-ana.memoization)
8470 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
8471 ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)
8472 ("cl-ana.tensor" ,sbcl-cl-ana.tensor)))
8473 (arguments
8474 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8475 ((#:asd-file _ "") "typespec/cl-ana.typespec.asd")
8476 ((#:asd-system-name _ #f) "cl-ana.typespec")))))
8477
8478 (define-public cl-ana.typespec
8479 (sbcl-package->cl-source-package sbcl-cl-ana.typespec))
8480
8481 (define-public ecl-cl-ana.typespec
8482 (sbcl-package->ecl-package sbcl-cl-ana.typespec))
8483
8484 (define-public sbcl-cl-ana.hdf-typespec
8485 (package
8486 (inherit sbcl-cl-ana-boot0)
8487 (name "sbcl-cl-ana.hdf-typespec")
8488 (inputs
8489 `(("alexandria" ,sbcl-alexandria)
8490 ("cffi" ,sbcl-cffi)
8491 ("cl-ana.hdf-cffi" ,sbcl-cl-ana.hdf-cffi)
8492 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8493 ("cl-ana.memoization" ,sbcl-cl-ana.memoization)
8494 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
8495 ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)
8496 ("cl-ana.typespec" ,sbcl-cl-ana.typespec)))
8497 (arguments
8498 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8499 ((#:asd-file _ "") "hdf-typespec/cl-ana.hdf-typespec.asd")
8500 ((#:asd-system-name _ #f) "cl-ana.hdf-typespec")))))
8501
8502 (define-public cl-ana.hdf-typespec
8503 (sbcl-package->cl-source-package sbcl-cl-ana.hdf-typespec))
8504
8505 (define-public ecl-cl-ana.hdf-typespec
8506 (sbcl-package->ecl-package sbcl-cl-ana.hdf-typespec))
8507
8508 (define-public sbcl-cl-ana.hdf-utils
8509 (package
8510 (inherit sbcl-cl-ana-boot0)
8511 (name "sbcl-cl-ana.hdf-utils")
8512 (inputs
8513 `(("alexandria" ,sbcl-alexandria)
8514 ("cffi" ,sbcl-cffi)
8515 ("cl-ana.hdf-cffi" ,sbcl-cl-ana.hdf-cffi)
8516 ("cl-ana.hdf-typespec" ,sbcl-cl-ana.hdf-typespec)
8517 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
8518 ("cl-ana.memoization" ,sbcl-cl-ana.memoization)
8519 ("cl-ana.pathname-utils" ,sbcl-cl-ana.pathname-utils)
8520 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
8521 ("cl-ana.typespec" ,sbcl-cl-ana.typespec)))
8522 (arguments
8523 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8524 ((#:asd-file _ "") "hdf-utils/cl-ana.hdf-utils.asd")
8525 ((#:asd-system-name _ #f) "cl-ana.hdf-utils")))))
8526
8527 (define-public cl-ana.hdf-utils
8528 (sbcl-package->cl-source-package sbcl-cl-ana.hdf-utils))
8529
8530 (define-public ecl-cl-ana.hdf-utils
8531 (sbcl-package->ecl-package sbcl-cl-ana.hdf-utils))
8532
8533 (define-public sbcl-cl-ana.typed-table
8534 (package
8535 (inherit sbcl-cl-ana-boot0)
8536 (name "sbcl-cl-ana.typed-table")
8537 (inputs
8538 `(("alexandria" ,sbcl-alexandria)
8539 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8540 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
8541 ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)
8542 ("cl-ana.table" ,sbcl-cl-ana.table)
8543 ("cl-ana.typespec" ,sbcl-cl-ana.typespec)))
8544 (arguments
8545 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8546 ((#:asd-file _ "") "typed-table/cl-ana.typed-table.asd")
8547 ((#:asd-system-name _ #f) "cl-ana.typed-table")))))
8548
8549 (define-public cl-ana.typed-table
8550 (sbcl-package->cl-source-package sbcl-cl-ana.typed-table))
8551
8552 (define-public ecl-cl-ana.typed-table
8553 (sbcl-package->ecl-package sbcl-cl-ana.typed-table))
8554
8555 (define-public sbcl-cl-ana.hdf-table
8556 (package
8557 (inherit sbcl-cl-ana-boot0)
8558 (name "sbcl-cl-ana.hdf-table")
8559 (inputs
8560 `(("alexandria" ,sbcl-alexandria)
8561 ("cl-ana.binary-tree" ,sbcl-cl-ana.binary-tree)
8562 ("cl-ana.hdf-cffi" ,sbcl-cl-ana.hdf-cffi)
8563 ("cl-ana.hdf-typespec" ,sbcl-cl-ana.hdf-typespec)
8564 ("cl-ana.hdf-utils" ,sbcl-cl-ana.hdf-utils)
8565 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8566 ("cl-ana.memoization" ,sbcl-cl-ana.memoization)
8567 ("cl-ana.table" ,sbcl-cl-ana.table)
8568 ("cl-ana.typed-table" ,sbcl-cl-ana.typed-table)
8569 ("cl-ana.typespec" ,sbcl-cl-ana.typespec)))
8570 (arguments
8571 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8572 ((#:asd-file _ "") "hdf-table/cl-ana.hdf-table.asd")
8573 ((#:asd-system-name _ #f) "cl-ana.hdf-table")))))
8574
8575 (define-public cl-ana.hdf-table
8576 (sbcl-package->cl-source-package sbcl-cl-ana.hdf-table))
8577
8578 (define-public ecl-cl-ana.hdf-table
8579 (sbcl-package->ecl-package sbcl-cl-ana.hdf-table))
8580
8581 (define-public sbcl-cl-ana.gsl-cffi
8582 (package
8583 (inherit sbcl-cl-ana-boot0)
8584 (name "sbcl-cl-ana.gsl-cffi")
8585 (inputs
8586 `(("cffi" ,sbcl-cffi)
8587 ("gsl" ,gsl)))
8588 (arguments
8589 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8590 ((#:asd-file _ "") "gsl-cffi/cl-ana.gsl-cffi.asd")
8591 ((#:asd-system-name _ #f) "cl-ana.gsl-cffi")
8592 ((#:phases phases '%standard-phases)
8593 `(modify-phases ,phases
8594 (add-after 'unpack 'fix-paths
8595 (lambda* (#:key inputs #:allow-other-keys)
8596 (substitute* "gsl-cffi/gsl-cffi.lisp"
8597 (("define-foreign-library gsl-cffi" all)
8598 (string-append all " (:unix "
8599 (assoc-ref inputs "gsl")
8600 "/lib/libgsl.so)")))))))))))
8601
8602 (define-public cl-ana.gsl-cffi
8603 (sbcl-package->cl-source-package sbcl-cl-ana.gsl-cffi))
8604
8605 (define-public ecl-cl-ana.gsl-cffi
8606 (sbcl-package->ecl-package sbcl-cl-ana.gsl-cffi))
8607
8608 (define-public sbcl-cl-ana.ntuple-table
8609 (package
8610 (inherit sbcl-cl-ana-boot0)
8611 (name "sbcl-cl-ana.ntuple-table")
8612 (inputs
8613 `(("alexandria" ,sbcl-alexandria)
8614 ("cffi" ,sbcl-cffi)
8615 ("cl-ana.gsl-cffi" ,sbcl-cl-ana.gsl-cffi)
8616 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8617 ("cl-ana.table" ,sbcl-cl-ana.table)
8618 ("cl-ana.typed-table" ,sbcl-cl-ana.typed-table)
8619 ("cl-ana.typespec" ,sbcl-cl-ana.typespec)
8620 ("gsll" ,sbcl-gsll)))
8621 (arguments
8622 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8623 ((#:asd-file _ "") "ntuple-table/cl-ana.ntuple-table.asd")
8624 ((#:asd-system-name _ #f) "cl-ana.ntuple-table")))))
8625
8626 (define-public cl-ana.ntuple-table
8627 (sbcl-package->cl-source-package sbcl-cl-ana.ntuple-table))
8628
8629 (define-public sbcl-cl-ana.csv-table
8630 (package
8631 (inherit sbcl-cl-ana-boot0)
8632 (name "sbcl-cl-ana.csv-table")
8633 (inputs
8634 `(("alexandria" ,sbcl-alexandria)
8635 ("antik" ,sbcl-antik)
8636 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8637 ("cl-ana.table" ,sbcl-cl-ana.table)
8638 ("cl-csv" ,sbcl-cl-csv)
8639 ("iterate" ,sbcl-iterate)))
8640 (arguments
8641 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8642 ((#:asd-file _ "") "csv-table/cl-ana.csv-table.asd")
8643 ((#:asd-system-name _ #f) "cl-ana.csv-table")))))
8644
8645 (define-public cl-ana.csv-table
8646 (sbcl-package->cl-source-package sbcl-cl-ana.csv-table))
8647
8648 (define-public sbcl-cl-ana.reusable-table
8649 (package
8650 (inherit sbcl-cl-ana-boot0)
8651 (name "sbcl-cl-ana.reusable-table")
8652 (inputs
8653 `(("alexandria" ,sbcl-alexandria)
8654 ("cl-ana.table" ,sbcl-cl-ana.table)))
8655 (arguments
8656 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8657 ((#:asd-file _ "") "reusable-table/cl-ana.reusable-table.asd")
8658 ((#:asd-system-name _ #f) "cl-ana.reusable-table")))))
8659
8660 (define-public cl-ana.reusable-table
8661 (sbcl-package->cl-source-package sbcl-cl-ana.reusable-table))
8662
8663 (define-public ecl-cl-ana.reusable-table
8664 (sbcl-package->ecl-package sbcl-cl-ana.reusable-table))
8665
8666 (define-public sbcl-cl-ana.linear-algebra
8667 (package
8668 (inherit sbcl-cl-ana-boot0)
8669 (name "sbcl-cl-ana.linear-algebra")
8670 (inputs
8671 `(("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
8672 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8673 ("cl-ana.math-functions" ,sbcl-cl-ana.math-functions)
8674 ("cl-ana.tensor" ,sbcl-cl-ana.tensor)
8675 ("gsll" ,sbcl-gsll)))
8676 (arguments
8677 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8678 ((#:asd-file _ "") "linear-algebra/cl-ana.linear-algebra.asd")
8679 ((#:asd-system-name _ #f) "cl-ana.linear-algebra")))))
8680
8681 (define-public cl-ana.linear-algebra
8682 (sbcl-package->cl-source-package sbcl-cl-ana.linear-algebra))
8683
8684 (define-public sbcl-cl-ana.lorentz
8685 (package
8686 (inherit sbcl-cl-ana-boot0)
8687 (name "sbcl-cl-ana.lorentz")
8688 (inputs
8689 `(("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
8690 ("cl-ana.linear-algebra" ,sbcl-cl-ana.linear-algebra)
8691 ("cl-ana.tensor" ,sbcl-cl-ana.tensor)
8692 ("iterate" ,sbcl-iterate)))
8693 (arguments
8694 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8695 ((#:asd-file _ "") "lorentz/cl-ana.lorentz.asd")
8696 ((#:asd-system-name _ #f) "cl-ana.lorentz")))))
8697
8698 (define-public cl-ana.lorentz
8699 (sbcl-package->cl-source-package sbcl-cl-ana.lorentz))
8700
8701 (define-public sbcl-cl-ana.clos-utils
8702 (package
8703 (inherit sbcl-cl-ana-boot0)
8704 (name "sbcl-cl-ana.clos-utils")
8705 (inputs
8706 `(("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8707 ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)
8708 ("cl-ana.tensor" ,sbcl-cl-ana.tensor)
8709 ("closer-mop" ,sbcl-closer-mop)))
8710 (arguments
8711 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8712 ((#:asd-file _ "") "clos-utils/cl-ana.clos-utils.asd")
8713 ((#:asd-system-name _ #f) "cl-ana.clos-utils")))))
8714
8715 (define-public cl-ana.clos-utils
8716 (sbcl-package->cl-source-package sbcl-cl-ana.clos-utils))
8717
8718 (define-public ecl-cl-ana.clos-utils
8719 (sbcl-package->ecl-package sbcl-cl-ana.clos-utils))
8720
8721 (define-public sbcl-cl-ana.hash-table-utils
8722 (package
8723 (inherit sbcl-cl-ana-boot0)
8724 (name "sbcl-cl-ana.hash-table-utils")
8725 (arguments
8726 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8727 ((#:asd-file _ "") "hash-table-utils/cl-ana.hash-table-utils.asd")
8728 ((#:asd-system-name _ #f) "cl-ana.hash-table-utils")))))
8729
8730 (define-public cl-ana.hash-table-utils
8731 (sbcl-package->cl-source-package sbcl-cl-ana.hash-table-utils))
8732
8733 (define-public ecl-cl-ana.hash-table-utils
8734 (sbcl-package->ecl-package sbcl-cl-ana.hash-table-utils))
8735
8736 (define-public sbcl-cl-ana.map
8737 (package
8738 (inherit sbcl-cl-ana-boot0)
8739 (name "sbcl-cl-ana.map")
8740 (inputs
8741 `(("cl-ana.hash-table-utils" ,sbcl-cl-ana.hash-table-utils)))
8742 (arguments
8743 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8744 ((#:asd-file _ "") "map/cl-ana.map.asd")
8745 ((#:asd-system-name _ #f) "cl-ana.map")))))
8746
8747 (define-public cl-ana.map
8748 (sbcl-package->cl-source-package sbcl-cl-ana.map))
8749
8750 (define-public ecl-cl-ana.map
8751 (sbcl-package->ecl-package sbcl-cl-ana.map))
8752
8753 (define-public sbcl-cl-ana.fitting
8754 (package
8755 (inherit sbcl-cl-ana-boot0)
8756 (name "sbcl-cl-ana.fitting")
8757 (inputs
8758 `(("alexandria" ,sbcl-alexandria)
8759 ("cl-ana.error-propogation" ,sbcl-cl-ana.error-propogation)
8760 ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
8761 ("cl-ana.map" ,sbcl-cl-ana.map)
8762 ("cl-ana.math-functions" ,sbcl-cl-ana.math-functions)
8763 ("gsll" ,sbcl-gsll)))
8764 (arguments
8765 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8766 ((#:asd-file _ "") "fitting/cl-ana.fitting.asd")
8767 ((#:asd-system-name _ #f) "cl-ana.fitting")))))
8768
8769 (define-public cl-ana.fitting
8770 (sbcl-package->cl-source-package sbcl-cl-ana.fitting))
8771
8772 (define-public sbcl-cl-ana.histogram
8773 (package
8774 (inherit sbcl-cl-ana-boot0)
8775 (name "sbcl-cl-ana.histogram")
8776 (inputs
8777 `(("alexandria" ,sbcl-alexandria)
8778 ("iterate" ,sbcl-iterate)
8779 ("cl-ana.binary-tree" ,sbcl-cl-ana.binary-tree)
8780 ("cl-ana.clos-utils" ,sbcl-cl-ana.clos-utils)
8781 ("cl-ana.fitting" ,sbcl-cl-ana.fitting)
8782 ("cl-ana.functional-utils" ,sbcl-cl-ana.functional-utils)
8783 ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
8784 ("cl-ana.hash-table-utils" ,sbcl-cl-ana.hash-table-utils)
8785 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8786 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
8787 ("cl-ana.map" ,sbcl-cl-ana.map)
8788 ("cl-ana.tensor" ,sbcl-cl-ana.tensor)))
8789 (arguments
8790 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8791 ((#:asd-file _ "") "histogram/cl-ana.histogram.asd")
8792 ((#:asd-system-name _ #f) "cl-ana.histogram")))))
8793
8794 (define-public cl-ana.histogram
8795 (sbcl-package->cl-source-package sbcl-cl-ana.histogram))
8796
8797 (define-public sbcl-cl-ana.file-utils
8798 (package
8799 (inherit sbcl-cl-ana-boot0)
8800 (name "sbcl-cl-ana.file-utils")
8801 (inputs
8802 `(("external-program" ,sbcl-external-program)
8803 ("split-sequence" ,sbcl-split-sequence)))
8804 (arguments
8805 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8806 ((#:asd-file _ "") "file-utils/cl-ana.file-utils.asd")
8807 ((#:asd-system-name _ #f) "cl-ana.file-utils")))))
8808
8809 (define-public cl-ana.file-utils
8810 (sbcl-package->cl-source-package sbcl-cl-ana.file-utils))
8811
8812 (define-public ecl-cl-ana.file-utils
8813 (sbcl-package->ecl-package sbcl-cl-ana.file-utils))
8814
8815 (define-public sbcl-cl-ana.statistics
8816 (package
8817 (inherit sbcl-cl-ana-boot0)
8818 (name "sbcl-cl-ana.statistics")
8819 (inputs
8820 `(("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
8821 ("cl-ana.histogram" ,sbcl-cl-ana.histogram)
8822 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8823 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
8824 ("cl-ana.map" ,sbcl-cl-ana.map)))
8825 (arguments
8826 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8827 ((#:asd-file _ "") "statistics/cl-ana.statistics.asd")
8828 ((#:asd-system-name _ #f) "cl-ana.statistics")))))
8829
8830 (define-public cl-ana.statistics
8831 (sbcl-package->cl-source-package sbcl-cl-ana.statistics))
8832
8833 (define-public sbcl-cl-ana.gnuplot-interface
8834 (package
8835 (inherit sbcl-cl-ana-boot0)
8836 (name "sbcl-cl-ana.gnuplot-interface")
8837 (inputs
8838 `(("external-program" ,sbcl-external-program)))
8839 (arguments
8840 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8841 ((#:asd-file _ "") "gnuplot-interface/cl-ana.gnuplot-interface.asd")
8842 ((#:asd-system-name _ #f) "cl-ana.gnuplot-interface")))))
8843
8844 (define-public cl-ana.gnuplot-interface
8845 (sbcl-package->cl-source-package sbcl-cl-ana.gnuplot-interface))
8846
8847 (define-public ecl-cl-ana.gnuplot-interface
8848 (sbcl-package->ecl-package sbcl-cl-ana.gnuplot-interface))
8849
8850 (define-public sbcl-cl-ana.plotting
8851 (package
8852 (inherit sbcl-cl-ana-boot0)
8853 (name "sbcl-cl-ana.plotting")
8854 (inputs
8855 `(("alexandria" ,sbcl-alexandria)
8856 ("cl-ana.error-propogation" ,sbcl-cl-ana.error-propogation)
8857 ("cl-ana.functional-utils" ,sbcl-cl-ana.functional-utils)
8858 ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
8859 ("cl-ana.gnuplot-interface" ,sbcl-cl-ana.gnuplot-interface)
8860 ("cl-ana.histogram" ,sbcl-cl-ana.histogram)
8861 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8862 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
8863 ("cl-ana.map" ,sbcl-cl-ana.map)
8864 ("cl-ana.math-functions" ,sbcl-cl-ana.math-functions)
8865 ("cl-ana.pathname-utils" ,sbcl-cl-ana.pathname-utils)
8866 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
8867 ("cl-ana.tensor" ,sbcl-cl-ana.tensor)
8868 ("external-program" ,sbcl-external-program)
8869 ("split-sequence" ,sbcl-split-sequence)))
8870 (arguments
8871 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8872 ((#:asd-file _ "") "plotting/cl-ana.plotting.asd")
8873 ((#:asd-system-name _ #f) "cl-ana.plotting")))))
8874
8875 (define-public cl-ana.plotting
8876 (sbcl-package->cl-source-package sbcl-cl-ana.plotting))
8877
8878 (define-public sbcl-cl-ana.table-viewing
8879 (package
8880 (inherit sbcl-cl-ana-boot0)
8881 (name "sbcl-cl-ana.table-viewing")
8882 (inputs
8883 `(("alexandria" ,sbcl-alexandria)
8884 ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
8885 ("cl-ana.histogram" ,sbcl-cl-ana.histogram)
8886 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
8887 ("cl-ana.plotting" ,sbcl-cl-ana.plotting)
8888 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
8889 ("cl-ana.table" ,sbcl-cl-ana.table)))
8890 (arguments
8891 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8892 ((#:asd-file _ "") "table-viewing/cl-ana.table-viewing.asd")
8893 ((#:asd-system-name _ #f) "cl-ana.table-viewing")))))
8894
8895 (define-public cl-ana.table-viewing
8896 (sbcl-package->cl-source-package sbcl-cl-ana.table-viewing))
8897
8898 (define-public sbcl-cl-ana.serialization
8899 (package
8900 (inherit sbcl-cl-ana-boot0)
8901 (name "sbcl-cl-ana.serialization")
8902 (inputs
8903 `(("cl-ana.error-propogation" ,sbcl-cl-ana.error-propogation)
8904 ("cl-ana.hdf-utils" ,sbcl-cl-ana.hdf-utils)
8905 ("cl-ana.hdf-table" ,sbcl-cl-ana.hdf-table)
8906 ("cl-ana.histogram" ,sbcl-cl-ana.histogram)
8907 ("cl-ana.int-char" ,sbcl-cl-ana.int-char)
8908 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
8909 ("cl-ana.typespec" ,sbcl-cl-ana.typespec)))
8910 (arguments
8911 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8912 ((#:asd-file _ "") "serialization/cl-ana.serialization.asd")
8913 ((#:asd-system-name _ #f) "cl-ana.serialization")))))
8914
8915 (define-public cl-ana.serialization
8916 (sbcl-package->cl-source-package sbcl-cl-ana.serialization))
8917
8918 (define-public sbcl-cl-ana.makeres
8919 (package
8920 (inherit sbcl-cl-ana-boot0)
8921 (name "sbcl-cl-ana.makeres")
8922 (inputs
8923 `(("alexandria" ,sbcl-alexandria)
8924 ("cl-ana.error-propogation" ,sbcl-cl-ana.error-propogation)
8925 ("cl-ana.file-utils" ,sbcl-cl-ana.file-utils)
8926 ("cl-ana.functional-utils" ,sbcl-cl-ana.functional-utils)
8927 ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
8928 ("cl-ana.hash-table-utils" ,sbcl-cl-ana.hash-table-utils)
8929 ("cl-ana.hdf-utils" ,sbcl-cl-ana.hdf-utils)
8930 ("cl-ana.histogram" ,sbcl-cl-ana.histogram)
8931 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8932 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
8933 ("cl-ana.map" ,sbcl-cl-ana.map)
8934 ("cl-ana.memoization" ,sbcl-cl-ana.memoization)
8935 ("cl-ana.pathname-utils" ,sbcl-cl-ana.pathname-utils)
8936 ("cl-ana.plotting" ,sbcl-cl-ana.plotting)
8937 ("cl-ana.reusable-table" ,sbcl-cl-ana.reusable-table)
8938 ("cl-ana.serialization" ,sbcl-cl-ana.serialization)
8939 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
8940 ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)
8941 ("cl-ana.table" ,sbcl-cl-ana.table)
8942 ("external-program" ,sbcl-external-program)))
8943 (native-inputs
8944 `(("cl-fad" ,sbcl-cl-fad)))
8945 (arguments
8946 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8947 ((#:asd-file _ "") "makeres/cl-ana.makeres.asd")
8948 ((#:asd-system-name _ #f) "cl-ana.makeres")))))
8949
8950 (define-public cl-ana.makeres
8951 (sbcl-package->cl-source-package sbcl-cl-ana.makeres))
8952
8953 (define-public sbcl-cl-ana.makeres-macro
8954 (package
8955 (inherit sbcl-cl-ana-boot0)
8956 (name "sbcl-cl-ana.makeres-macro")
8957 (inputs
8958 `(("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8959 ("cl-ana.makeres" ,sbcl-cl-ana.makeres)))
8960 (arguments
8961 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8962 ((#:asd-file _ "") "makeres-macro/cl-ana.makeres-macro.asd")
8963 ((#:asd-system-name _ #f) "cl-ana.makeres-macro")))))
8964
8965 (define-public cl-ana.makeres-macro
8966 (sbcl-package->cl-source-package sbcl-cl-ana.makeres-macro))
8967
8968 (define-public sbcl-cl-ana.makeres-block
8969 (package
8970 (inherit sbcl-cl-ana-boot0)
8971 (name "sbcl-cl-ana.makeres-block")
8972 (inputs
8973 `(("alexandria" ,sbcl-alexandria)
8974 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8975 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
8976 ("cl-ana.makeres" ,sbcl-cl-ana.makeres)))
8977 (arguments
8978 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8979 ((#:asd-file _ "") "makeres-block/cl-ana.makeres-block.asd")
8980 ((#:asd-system-name _ #f) "cl-ana.makeres-block")))))
8981
8982 (define-public cl-ana.makeres-block
8983 (sbcl-package->cl-source-package sbcl-cl-ana.makeres-block))
8984
8985 (define-public sbcl-cl-ana.makeres-progress
8986 (package
8987 (inherit sbcl-cl-ana-boot0)
8988 (name "sbcl-cl-ana.makeres-progress")
8989 (inputs
8990 `(("alexandria" ,sbcl-alexandria)
8991 ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
8992 ("cl-ana.makeres" ,sbcl-cl-ana.makeres)))
8993 (arguments
8994 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8995 ((#:asd-file _ "") "makeres-progress/cl-ana.makeres-progress.asd")
8996 ((#:asd-system-name _ #f) "cl-ana.makeres-progress")))))
8997
8998 (define-public cl-ana.makeres-progress
8999 (sbcl-package->cl-source-package sbcl-cl-ana.makeres-progress))
9000
9001 (define-public sbcl-cl-ana.makeres-table
9002 (package
9003 (inherit sbcl-cl-ana-boot0)
9004 (name "sbcl-cl-ana.makeres-table")
9005 (inputs
9006 `(("cl-ana.csv-table" ,sbcl-cl-ana.csv-table)
9007 ("cl-ana.hash-table-utils" ,sbcl-cl-ana.hash-table-utils)
9008 ("cl-ana.hdf-table" ,sbcl-cl-ana.hdf-table)
9009 ("cl-ana.hdf-utils" ,sbcl-cl-ana.hdf-utils)
9010 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
9011 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
9012 ("cl-ana.makeres" ,sbcl-cl-ana.makeres)
9013 ("cl-ana.makeres-macro" ,sbcl-cl-ana.makeres-macro)
9014 ("cl-ana.memoization" ,sbcl-cl-ana.memoization)
9015 ("cl-ana.ntuple-table" ,sbcl-cl-ana.ntuple-table)
9016 ("cl-ana.reusable-table" ,sbcl-cl-ana.reusable-table)
9017 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
9018 ("cl-ana.table" ,sbcl-cl-ana.table)))
9019 (native-inputs
9020 `(("cl-fad" ,sbcl-cl-fad)))
9021 (arguments
9022 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9023 ((#:asd-file _ "") "makeres-table/cl-ana.makeres-table.asd")
9024 ((#:asd-system-name _ #f) "cl-ana.makeres-table")))))
9025
9026 (define-public cl-ana.makeres-table
9027 (sbcl-package->cl-source-package sbcl-cl-ana.makeres-table))
9028
9029 (define-public sbcl-cl-ana.makeres-graphviz
9030 (package
9031 (inherit sbcl-cl-ana-boot0)
9032 (name "sbcl-cl-ana.makeres-graphviz")
9033 (inputs
9034 `(("cl-ana.makeres" ,sbcl-cl-ana.makeres)
9035 ("external-program" ,sbcl-external-program)))
9036 (arguments
9037 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9038 ((#:asd-file _ "") "makeres-graphviz/cl-ana.makeres-graphviz.asd")
9039 ((#:asd-system-name _ #f) "cl-ana.makeres-graphviz")))))
9040
9041 (define-public cl-ana.makeres-graphviz
9042 (sbcl-package->cl-source-package sbcl-cl-ana.makeres-graphviz))
9043
9044 (define-public sbcl-cl-ana.makeres-branch
9045 (package
9046 (inherit sbcl-cl-ana-boot0)
9047 (name "sbcl-cl-ana.makeres-branch")
9048 (inputs
9049 `(("alexandria" ,sbcl-alexandria)
9050 ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
9051 ("cl-ana.hash-table-utils" ,sbcl-cl-ana.hash-table-utils)
9052 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
9053 ("cl-ana.map" ,sbcl-cl-ana.map)
9054 ("cl-ana.makeres" ,sbcl-cl-ana.makeres)))
9055 (arguments
9056 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9057 ((#:asd-file _ "") "makeres-branch/cl-ana.makeres-branch.asd")
9058 ((#:asd-system-name _ #f) "cl-ana.makeres-branch")))))
9059
9060 (define-public cl-ana.makeres-branch
9061 (sbcl-package->cl-source-package sbcl-cl-ana.makeres-branch))
9062
9063 (define-public sbcl-cl-ana.makeres-utils
9064 (package
9065 (inherit sbcl-cl-ana-boot0)
9066 (name "sbcl-cl-ana.makeres-utils")
9067 (inputs
9068 `(("alexandria" ,sbcl-alexandria)
9069 ("cl-ana.file-utils" ,sbcl-cl-ana.file-utils)
9070 ("cl-ana.fitting" ,sbcl-cl-ana.fitting)
9071 ("cl-ana.functional-utils" ,sbcl-cl-ana.functional-utils)
9072 ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
9073 ("cl-ana.histogram" ,sbcl-cl-ana.histogram)
9074 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
9075 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
9076 ("cl-ana.makeres" ,sbcl-cl-ana.makeres)
9077 ("cl-ana.map" ,sbcl-cl-ana.map)
9078 ("cl-ana.pathname-utils" ,sbcl-cl-ana.pathname-utils)
9079 ("cl-ana.plotting" ,sbcl-cl-ana.plotting)
9080 ("cl-ana.reusable-table" ,sbcl-cl-ana.reusable-table)
9081 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
9082 ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)
9083 ("cl-ana.table" ,sbcl-cl-ana.table)))
9084 (native-inputs
9085 `(("cl-fad" ,sbcl-cl-fad)))
9086 (arguments
9087 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9088 ((#:asd-file _ "") "makeres-utils/cl-ana.makeres-utils.asd")
9089 ((#:asd-system-name _ #f) "cl-ana.makeres-utils")))))
9090
9091 (define-public cl-ana.makeres-utils
9092 (sbcl-package->cl-source-package sbcl-cl-ana.makeres-utils))
9093
9094 (define-public sbcl-cl-ana.statistical-learning
9095 (package
9096 (inherit sbcl-cl-ana-boot0)
9097 (name "sbcl-cl-ana.statistical-learning")
9098 (inputs
9099 `(("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
9100 ("cl-ana.functional-utils" ,sbcl-cl-ana.functional-utils)
9101 ("cl-ana.histogram" ,sbcl-cl-ana.histogram)
9102 ("cl-ana.linear-algebra" ,sbcl-cl-ana.linear-algebra)
9103 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
9104 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
9105 ("cl-ana.math-functions" ,sbcl-cl-ana.math-functions)
9106 ("cl-ana.map" ,sbcl-cl-ana.map)
9107 ("cl-ana.statistics" ,sbcl-cl-ana.statistics)))
9108 (native-inputs
9109 `(("cl-fad" ,sbcl-cl-fad)))
9110 (arguments
9111 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9112 ((#:asd-file _ "")
9113 "statistical-learning/cl-ana.statistical-learning.asd")
9114 ((#:asd-system-name _ #f) "cl-ana.statistical-learning")))))
9115
9116 (define-public cl-ana.statistical-learning
9117 (sbcl-package->cl-source-package sbcl-cl-ana.statistical-learning))
9118
9119 (define-public sbcl-cl-ana
9120 (package
9121 (inherit sbcl-cl-ana-boot0)
9122 (name "sbcl-cl-ana")
9123 (inputs
9124 `(("cl-ana.binary-tree" ,sbcl-cl-ana.binary-tree)
9125 ("cl-ana.calculus" ,sbcl-cl-ana.calculus)
9126 ("cl-ana.clos-utils" ,sbcl-cl-ana.clos-utils)
9127 ("cl-ana.csv-table" ,sbcl-cl-ana.csv-table)
9128 ("cl-ana.error-propogation" ,sbcl-cl-ana.error-propogation)
9129 ("cl-ana.file-utils" ,sbcl-cl-ana.file-utils)
9130 ("cl-ana.fitting" ,sbcl-cl-ana.fitting)
9131 ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
9132 ("cl-ana.hash-table-utils" ,sbcl-cl-ana.hash-table-utils)
9133 ("cl-ana.hdf-table" ,sbcl-cl-ana.hdf-table)
9134 ("cl-ana.histogram" ,sbcl-cl-ana.histogram)
9135 ("cl-ana.int-char" ,sbcl-cl-ana.int-char)
9136 ("cl-ana.linear-algebra" ,sbcl-cl-ana.linear-algebra)
9137 ("cl-ana.lorentz" ,sbcl-cl-ana.lorentz)
9138 ("cl-ana.map" ,sbcl-cl-ana.map)
9139 ("cl-ana.makeres" ,sbcl-cl-ana.makeres)
9140 ("cl-ana.makeres-block" ,sbcl-cl-ana.makeres-block)
9141 ("cl-ana.makeres-branch" ,sbcl-cl-ana.makeres-branch)
9142 ("cl-ana.makeres-graphviz" ,sbcl-cl-ana.makeres-graphviz)
9143 ("cl-ana.makeres-macro" ,sbcl-cl-ana.makeres-macro)
9144 ("cl-ana.makeres-progress" ,sbcl-cl-ana.makeres-progress)
9145 ("cl-ana.makeres-table" ,sbcl-cl-ana.makeres-table)
9146 ("cl-ana.makeres-utils" ,sbcl-cl-ana.makeres-utils)
9147 ("cl-ana.math-functions" ,sbcl-cl-ana.math-functions)
9148 ("cl-ana.ntuple-table" ,sbcl-cl-ana.ntuple-table)
9149 ("cl-ana.package-utils" ,sbcl-cl-ana.package-utils)
9150 ("cl-ana.pathname-utils" ,sbcl-cl-ana.pathname-utils)
9151 ("cl-ana.plotting" ,sbcl-cl-ana.plotting)
9152 ("cl-ana.quantity" ,sbcl-cl-ana.quantity)
9153 ("cl-ana.reusable-table" ,sbcl-cl-ana.reusable-table)
9154 ("cl-ana.serialization" ,sbcl-cl-ana.serialization)
9155 ("cl-ana.statistics" ,sbcl-cl-ana.statistics)
9156 ("cl-ana.statistical-learning" ,sbcl-cl-ana.statistical-learning)
9157 ("cl-ana.table" ,sbcl-cl-ana.table)
9158 ("cl-ana.table-utils" ,sbcl-cl-ana.table-utils)
9159 ("cl-ana.table-viewing" ,sbcl-cl-ana.table-viewing)
9160 ("cl-ana.tensor" ,sbcl-cl-ana.tensor)
9161 ("libffi" ,libffi)))
9162 (native-inputs
9163 `(("cl-fad" ,sbcl-cl-fad)))
9164 (arguments
9165 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9166 ((#:asd-file _ "") "cl-ana.asd")
9167 ((#:asd-system-name _ #f) "cl-ana")))))
9168
9169 (define-public cl-ana
9170 (sbcl-package->cl-source-package sbcl-cl-ana))
9171
9172 (define-public sbcl-archive
9173 (let ((commit "631271c091ed02994bec3980cb288a2cf32c7cdc")
9174 (revision "1"))
9175 (package
9176 (name "sbcl-archive")
9177 (version (git-version "0.9" revision commit))
9178 (source (origin
9179 (method git-fetch)
9180 (uri (git-reference
9181 (url "https://github.com/sharplispers/archive.git")
9182 (commit commit)))
9183 (file-name (git-file-name name version))
9184 (sha256
9185 (base32
9186 "0pvsc9fmybx7rxd0kmzq4shi6hszdpwdc1sfy7jwyfxf8n3hnv4p"))))
9187 (build-system asdf-build-system/sbcl)
9188 (inputs
9189 `(("cl-fad" ,sbcl-cl-fad)
9190 ("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
9191 (synopsis "Common Lisp library for tar and cpio archives")
9192 (description
9193 "This is a Common Lisp library to read and write disk-based file
9194 archives such as those generated by the tar and cpio programs on Unix.")
9195 (home-page "https://github.com/sharplispers/archive")
9196 (license license:bsd-3))))
9197
9198 (define-public cl-archive
9199 (sbcl-package->cl-source-package sbcl-archive))
9200
9201 (define-public ecl-archive
9202 (sbcl-package->ecl-package sbcl-archive))
9203
9204 (define-public sbcl-misc-extensions
9205 (let ((commit "101c05112bf2f1e1bbf527396822d2f50ca6327a")
9206 (revision "1"))
9207 (package
9208 (name "sbcl-misc-extensions")
9209 (version (git-version "3.3" revision commit))
9210 (source
9211 (origin
9212 (method git-fetch)
9213 (uri (git-reference
9214 (url "https://gitlab.common-lisp.net/misc-extensions/devel.git")
9215 (commit commit)))
9216 (file-name (git-file-name name version))
9217 (sha256
9218 (base32
9219 "0gz5f4p70qzilnxsnf5lih2n9m4wjcw8hlw4w8mpn9jyhyppyyv0"))))
9220 (build-system asdf-build-system/sbcl)
9221 (synopsis "Collection of small macros and extensions for Common Lisp")
9222 (description
9223 "This project is intended as a catchall for small, general-purpose
9224 extensions to Common Lisp. It contains:
9225
9226 @itemize
9227 @item @code{new-let}, a macro that combines and generalizes @code{let},
9228 @code{let*} and @code{multiple-value-bind},
9229 @item @code{gmap}, an iteration macro that generalizes @code{map}.
9230 @end itemize\n")
9231 (home-page "https://common-lisp.net/project/misc-extensions/")
9232 (license license:public-domain))))
9233
9234 (define-public cl-misc-extensions
9235 (sbcl-package->cl-source-package sbcl-misc-extensions))
9236
9237 (define-public ecl-misc-extensions
9238 (sbcl-package->ecl-package sbcl-misc-extensions))
9239
9240 (define-public sbcl-mt19937
9241 (package
9242 (name "sbcl-mt19937")
9243 (version "1.1")
9244 (source
9245 (origin
9246 (method url-fetch)
9247 (uri (string-append "https://common-lisp.net/project/asdf-packaging/"
9248 "mt19937-latest.tar.gz"))
9249 (sha256
9250 (base32
9251 "1iw636b0iw5ygkv02y8i41lh7xj0acglv0hg5agryn0zzi2nf1xv"))))
9252 (build-system asdf-build-system/sbcl)
9253 (synopsis "Mersenne Twister pseudo-random number generator")
9254 (description
9255 "MT19937 is a portable Mersenne Twister pseudo-random number generator
9256 for Common Lisp.")
9257 (home-page "https://www.cliki.net/mt19937")
9258 (license license:public-domain)))
9259
9260 (define-public cl-mt19937
9261 (sbcl-package->cl-source-package sbcl-mt19937))
9262
9263 (define-public ecl-mt19937
9264 (sbcl-package->ecl-package sbcl-mt19937))
9265
9266 (define-public sbcl-fset
9267 (let ((commit "6d2f9ded8934d2b42f2571a0ba5bda091037d852")
9268 (revision "1"))
9269 (package
9270 (name "sbcl-fset")
9271 (version (git-version "1.3.2" revision commit))
9272 (source
9273 (origin
9274 (method git-fetch)
9275 (uri (git-reference
9276 (url "https://github.com/slburson/fset")
9277 (commit commit)))
9278 (file-name (git-file-name name version))
9279 (sha256
9280 (base32
9281 "127acblwrbqicx47h6sgvknz1cqyfn8p4xkhkn1m7hxh8w5gk1zy"))
9282 (snippet '(begin
9283 ;; Remove obsolete copy of system definition.
9284 (delete-file "Code/fset.asd")
9285 #t))))
9286 (build-system asdf-build-system/sbcl)
9287 (inputs
9288 `(("misc-extensions" ,sbcl-misc-extensions)
9289 ("mt19937" ,sbcl-mt19937)
9290 ("named-readtables" ,sbcl-named-readtables)))
9291 (synopsis "Functional set-theoretic collections library")
9292 (description
9293 "FSet is a functional set-theoretic collections library for Common Lisp.
9294 Functional means that all update operations return a new collection rather than
9295 modifying an existing one in place. Set-theoretic means that collections may
9296 be nested arbitrarily with no additional programmer effort; for instance, sets
9297 may contain sets, maps may be keyed by sets, etc.")
9298 (home-page "https://common-lisp.net/project/fset/Site/index.html")
9299 (license license:llgpl))))
9300
9301 (define-public cl-fset
9302 (sbcl-package->cl-source-package sbcl-fset))
9303
9304 (define-public sbcl-cl-cont
9305 (let ((commit "fc1fa7e6eb64894fdca13e688e6015fad5290d2a")
9306 (revision "1"))
9307 (package
9308 (name "sbcl-cl-cont")
9309 (version (git-version "0.3.8" revision commit))
9310 (source
9311 (origin
9312 (method git-fetch)
9313 (uri (git-reference
9314 (url "https://gitlab.common-lisp.net/cl-cont/cl-cont.git")
9315 (commit commit)))
9316 (file-name (git-file-name name version))
9317 (sha256
9318 (base32
9319 "1zf8zvb0i6jm3hhfks4w74hibm6avgc6f9s1qwgjrn2bcik8lrvz"))))
9320 (build-system asdf-build-system/sbcl)
9321 (inputs
9322 `(("alexandria" ,sbcl-alexandria)
9323 ("closer-mop" ,sbcl-closer-mop)))
9324 (native-inputs
9325 `(("rt" ,sbcl-rt)))
9326 (synopsis "Delimited continuations for Common Lisp")
9327 (description
9328 "This is a library that implements delimited continuations by
9329 transforming Common Lisp code to continuation passing style.")
9330 (home-page "https://common-lisp.net/project/cl-cont/")
9331 (license license:llgpl))))
9332
9333 (define-public cl-cont
9334 (sbcl-package->cl-source-package sbcl-cl-cont))
9335
9336 (define-public ecl-cl-cont
9337 (sbcl-package->ecl-package sbcl-cl-cont))
9338
9339 (define-public sbcl-cl-coroutine
9340 (let ((commit "de098f8d5debd8b14ef6864b5bdcbbf5ddbcfd72")
9341 (revision "1"))
9342 (package
9343 (name "sbcl-cl-coroutine")
9344 (version (git-version "0.1" revision commit))
9345 (source
9346 (origin
9347 (method git-fetch)
9348 (uri (git-reference
9349 (url "https://github.com/takagi/cl-coroutine.git")
9350 (commit commit)))
9351 (file-name (git-file-name name version))
9352 (sha256
9353 (base32
9354 "1cqdhdjxffgfs116l1swjlsmcbly0xgcgrckvaajd566idj9yj4l"))))
9355 (build-system asdf-build-system/sbcl)
9356 (inputs
9357 `(("alexandria" ,sbcl-alexandria)
9358 ("cl-cont" ,sbcl-cl-cont)))
9359 (native-inputs
9360 `(("prove" ,sbcl-prove)))
9361 (arguments
9362 `(;; TODO: Fix the tests. They fail with:
9363 ;; "Component CL-COROUTINE-ASD::CL-COROUTINE-TEST not found"
9364 #:tests? #f
9365 #:phases
9366 (modify-phases %standard-phases
9367 (add-after 'unpack 'fix-tests
9368 (lambda _
9369 (substitute* "cl-coroutine-test.asd"
9370 (("cl-test-more")
9371 "prove"))
9372 #t)))))
9373 (synopsis "Coroutine library for Common Lisp")
9374 (description
9375 "This is a coroutine library for Common Lisp implemented using the
9376 continuations of the @code{cl-cont} library.")
9377 (home-page "https://github.com/takagi/cl-coroutine")
9378 (license license:llgpl))))
9379
9380 (define-public cl-coroutine
9381 (sbcl-package->cl-source-package sbcl-cl-coroutine))
9382
9383 (define-public ecl-cl-coroutine
9384 (sbcl-package->ecl-package sbcl-cl-coroutine))
9385
9386 (define-public sbcl-vom
9387 (let ((commit "1aeafeb5b74c53741b79497e0ef4acf85c92ff24")
9388 (revision "1"))
9389 (package
9390 (name "sbcl-vom")
9391 (version (git-version "0.1.4" revision commit))
9392 (source
9393 (origin
9394 (method git-fetch)
9395 (uri (git-reference
9396 (url "https://github.com/orthecreedence/vom.git")
9397 (commit commit)))
9398 (file-name (git-file-name name version))
9399 (sha256
9400 (base32
9401 "0536kppj76ax4lrxhv42npkfjsmx45km2g439vf9jmw3apinz9cy"))))
9402 (build-system asdf-build-system/sbcl)
9403 (synopsis "Tiny logging utility for Common Lisp")
9404 (description
9405 "Vom is a logging library for Common Lisp. It's goal is to be useful
9406 and small. It does not provide a lot of features as other loggers do, but
9407 has a small codebase that's easy to understand and use.")
9408 (home-page "https://github.com/orthecreedence/vom")
9409 (license license:expat))))
9410
9411 (define-public cl-vom
9412 (sbcl-package->cl-source-package sbcl-vom))
9413
9414 (define-public ecl-vom
9415 (sbcl-package->ecl-package sbcl-vom))
9416
9417 (define-public sbcl-cl-libuv
9418 (let ((commit "32100c023c518038d0670a103eaa4d50dd785d29")
9419 (revision "1"))
9420 (package
9421 (name "sbcl-cl-libuv")
9422 (version (git-version "0.1.6" revision commit))
9423 (source
9424 (origin
9425 (method git-fetch)
9426 (uri (git-reference
9427 (url "https://github.com/orthecreedence/cl-libuv.git")
9428 (commit commit)))
9429 (file-name (git-file-name name version))
9430 (sha256
9431 (base32
9432 "1kwix4si8a8hza34ab2k7whrh7z0yrmx39v2wc3qblv9m244jkh1"))))
9433 (build-system asdf-build-system/sbcl)
9434 (inputs
9435 `(("alexandria" ,sbcl-alexandria)
9436 ("cffi" ,sbcl-cffi)
9437 ("cffi-grovel" ,sbcl-cffi-grovel)
9438 ("libuv" ,libuv)))
9439 (arguments
9440 `(#:phases
9441 (modify-phases %standard-phases
9442 (add-after 'unpack 'fix-paths
9443 (lambda* (#:key inputs #:allow-other-keys)
9444 (substitute* "lib.lisp"
9445 (("/usr/lib/libuv.so")
9446 (string-append (assoc-ref inputs "libuv")
9447 "/lib/libuv.so")))
9448 #t))
9449 (add-after 'fix-paths 'fix-system-definition
9450 (lambda _
9451 (substitute* "cl-libuv.asd"
9452 (("#:cffi #:alexandria")
9453 "#:cffi #:cffi-grovel #:alexandria"))
9454 #t)))))
9455 (synopsis "Common Lisp bindings to libuv")
9456 (description
9457 "This library provides low-level libuv bindings for Common Lisp.")
9458 (home-page "https://github.com/orthecreedence/cl-libuv")
9459 (license license:expat))))
9460
9461 (define-public cl-libuv
9462 (sbcl-package->cl-source-package sbcl-cl-libuv))
9463
9464 (define-public ecl-cl-libuv
9465 (sbcl-package->ecl-package sbcl-cl-libuv))
9466
9467 (define-public sbcl-cl-async-base
9468 (let ((commit "f6423e44404a44434d803605e0d2e17199158e28")
9469 (revision "1"))
9470 (package
9471 (name "sbcl-cl-async-base")
9472 (version (git-version "0.6.1" revision commit))
9473 (source
9474 (origin
9475 (method git-fetch)
9476 (uri (git-reference
9477 (url "https://github.com/orthecreedence/cl-async.git")
9478 (commit commit)))
9479 (file-name (git-file-name name version))
9480 (sha256
9481 (base32
9482 "11xi9dxb8mjgwzrkj88i0xkgk26z9w9ddxzbv6xsvfc1d4x5cf4x"))))
9483 (build-system asdf-build-system/sbcl)
9484 (inputs
9485 `(("bordeaux-threads" ,sbcl-bordeaux-threads)
9486 ("cffi" ,sbcl-cffi)
9487 ("cl-libuv" ,sbcl-cl-libuv)))
9488 (arguments
9489 `(#:asd-file "cl-async.asd"))
9490 (synopsis "Base system for cl-async")
9491 (description
9492 "Cl-async is a library for general purpose, non-blocking programming in
9493 Common Lisp. It uses the libuv library as backend.")
9494 (home-page "https://orthecreedence.github.io/cl-async/")
9495 (license license:expat))))
9496
9497 (define-public cl-async-base
9498 (sbcl-package->cl-source-package sbcl-cl-async-base))
9499
9500 (define-public ecl-cl-async-base
9501 (sbcl-package->ecl-package sbcl-cl-async-base))
9502
9503 (define-public sbcl-cl-async-util
9504 (package
9505 (inherit sbcl-cl-async-base)
9506 (name "sbcl-cl-async-util")
9507 (inputs
9508 `(("bordeaux-threads" ,sbcl-bordeaux-threads)
9509 ("cffi" ,sbcl-cffi)
9510 ("cl-async-base" ,sbcl-cl-async-base)
9511 ("cl-libuv" ,sbcl-cl-libuv)
9512 ("cl-ppcre" ,sbcl-cl-ppcre)
9513 ("fast-io" ,sbcl-fast-io)
9514 ("vom" ,sbcl-vom)))
9515 (synopsis "Internal utilities for cl-async")))
9516
9517 (define-public cl-async-util
9518 (sbcl-package->cl-source-package sbcl-cl-async-util))
9519
9520 (define-public ecl-cl-async-util
9521 (sbcl-package->ecl-package sbcl-cl-async-util))
9522
9523 (define-public sbcl-cl-async
9524 (package
9525 (inherit sbcl-cl-async-base)
9526 (name "sbcl-cl-async")
9527 (inputs
9528 `(("babel" ,sbcl-babel)
9529 ("cffi" ,sbcl-cffi)
9530 ("cl-async-base" ,sbcl-cl-async-base)
9531 ("cl-async-util" ,sbcl-cl-async-util)
9532 ("cl-libuv" ,sbcl-cl-libuv)
9533 ("cl-ppcre" ,sbcl-cl-ppcre)
9534 ("static-vectors" ,sbcl-static-vectors)
9535 ("trivial-features" ,sbcl-trivial-features)
9536 ("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
9537 (synopsis "Asynchronous operations for Common Lisp")))
9538
9539 (define-public cl-async
9540 (sbcl-package->cl-source-package sbcl-cl-async))
9541
9542 (define-public ecl-cl-async
9543 (sbcl-package->ecl-package sbcl-cl-async))
9544
9545 (define-public sbcl-cl-async-repl
9546 (package
9547 (inherit sbcl-cl-async-base)
9548 (name "sbcl-cl-async-repl")
9549 (inputs
9550 `(("bordeaux-threads" ,sbcl-bordeaux-threads)
9551 ("cl-async" ,sbcl-cl-async)))
9552 (arguments
9553 (substitute-keyword-arguments (package-arguments sbcl-cl-async-base)
9554 ((#:asd-file _ "") "cl-async-repl.asd")))
9555 (synopsis "REPL integration for cl-async")))
9556
9557 (define-public cl-async-repl
9558 (sbcl-package->cl-source-package sbcl-cl-async-repl))
9559
9560 (define-public ecl-cl-async-repl
9561 (sbcl-package->ecl-package sbcl-cl-async-repl))
9562
9563 (define-public sbcl-cl-async-ssl
9564 (package
9565 (inherit sbcl-cl-async-base)
9566 (name "sbcl-cl-async-ssl")
9567 (inputs
9568 `(("cffi" ,sbcl-cffi)
9569 ("cl-async" ,sbcl-cl-async)
9570 ("openssl" ,openssl)
9571 ("vom" ,sbcl-vom)))
9572 (arguments
9573 (substitute-keyword-arguments (package-arguments sbcl-cl-async-base)
9574 ((#:asd-file _ "") "cl-async-ssl.asd")
9575 ((#:phases phases '%standard-phases)
9576 `(modify-phases ,phases
9577 (add-after 'unpack 'fix-paths
9578 (lambda* (#:key inputs #:allow-other-keys)
9579 (substitute* "src/ssl/package.lisp"
9580 (("libcrypto\\.so")
9581 (string-append (assoc-ref inputs "openssl")
9582 "/lib/libcrypto.so"))
9583 (("libssl\\.so")
9584 (string-append (assoc-ref inputs "openssl")
9585 "/lib/libssl.so")))
9586 #t))))))
9587 (synopsis "SSL wrapper around cl-async socket implementation")))
9588
9589 (define-public cl-async-ssl
9590 (sbcl-package->cl-source-package sbcl-cl-async-ssl))
9591
9592 (define-public ecl-cl-async-ssl
9593 (sbcl-package->ecl-package sbcl-cl-async-ssl))
9594
9595 (define-public sbcl-blackbird
9596 (let ((commit "d361f81c1411dec07f6c2dcb11c78f7aea9aaca8")
9597 (revision "1"))
9598 (package
9599 (name "sbcl-blackbird")
9600 (version (git-version "0.5.2" revision commit))
9601 (source
9602 (origin
9603 (method git-fetch)
9604 (uri (git-reference
9605 (url "https://github.com/orthecreedence/blackbird.git")
9606 (commit commit)))
9607 (file-name (git-file-name name version))
9608 (sha256
9609 (base32
9610 "0xfds5yaya64arzr7w1x38karyz11swzbhxx1afldpradj9dh19c"))))
9611 (build-system asdf-build-system/sbcl)
9612 (inputs
9613 `(("vom" ,sbcl-vom)))
9614 (native-inputs
9615 `(("cl-async" ,sbcl-cl-async)
9616 ("fiveam" ,sbcl-fiveam)))
9617 (synopsis "Promise implementation for Common Lisp")
9618 (description
9619 "This is a standalone promise implementation for Common Lisp. It is
9620 the successor to the now-deprecated cl-async-future project.")
9621 (home-page "http://orthecreedence.github.io/blackbird/")
9622 (license license:expat))))
9623
9624 (define-public cl-blackbird
9625 (sbcl-package->cl-source-package sbcl-blackbird))
9626
9627 (define-public ecl-blackbird
9628 (sbcl-package->ecl-package sbcl-blackbird))
9629
9630 (define-public sbcl-cl-async-future
9631 (let ((commit "ee36c22a69a9516407458d2ed8b475f1fc473959")
9632 (revision "1"))
9633 (package
9634 (name "sbcl-cl-async-future")
9635 (version (git-version "0.4.4.1" revision commit))
9636 (source
9637 (origin
9638 (method git-fetch)
9639 (uri (git-reference
9640 (url "https://github.com/orthecreedence/cl-async-future.git")
9641 (commit commit)))
9642 (file-name (git-file-name name version))
9643 (sha256
9644 (base32
9645 "0z0sc7qlzzxk99f4l26zp6rai9kv0kj0f599sxai5s44p17zbbvh"))))
9646 (build-system asdf-build-system/sbcl)
9647 (inputs
9648 `(("blackbird" ,sbcl-blackbird)))
9649 (native-inputs
9650 `(("cl-async" ,sbcl-cl-async)
9651 ("eos" ,sbcl-eos)))
9652 (synopsis "Futures implementation for Common Lisp")
9653 (description
9654 "This is futures implementation for Common Lisp. It plugs in nicely
9655 to cl-async.")
9656 (home-page "http://orthecreedence.github.io/cl-async/future")
9657 (license license:expat))))
9658
9659 (define-public cl-async-future
9660 (sbcl-package->cl-source-package sbcl-cl-async-future))
9661
9662 (define-public ecl-cl-async-future
9663 (sbcl-package->ecl-package sbcl-cl-async-future))
9664
9665 (define-public sbcl-green-threads
9666 (let ((commit "fff5ebecb441a37e5c511773716aafd84a3c5840")
9667 (revision "1"))
9668 (package
9669 (name "sbcl-green-threads")
9670 (version (git-version "0.3" revision commit))
9671 (source
9672 (origin
9673 (method git-fetch)
9674 (uri (git-reference
9675 (url "https://github.com/thezerobit/green-threads.git")
9676 (commit commit)))
9677 (file-name (git-file-name name version))
9678 (sha256
9679 (base32
9680 "1czw7nr0dwfps76h8hjvglk1wdh53yqbfbvv30whwbgqx33iippz"))))
9681 (build-system asdf-build-system/sbcl)
9682 (inputs
9683 `(("cl-async-future" ,sbcl-cl-async-future)
9684 ("cl-cont" ,sbcl-cl-cont)))
9685 (native-inputs
9686 `(("prove" ,sbcl-prove)))
9687 (arguments
9688 `(;; TODO: Fix the tests. They fail with:
9689 ;; "The function BLACKBIRD::PROMISE-VALUES is undefined"
9690 #:tests? #f
9691 #:phases
9692 (modify-phases %standard-phases
9693 (add-after 'unpack 'fix-tests
9694 (lambda _
9695 (substitute* "green-threads-test.asd"
9696 (("cl-test-more")
9697 "prove"))
9698 #t)))))
9699 (synopsis "Cooperative multitasking library for Common Lisp")
9700 (description
9701 "This library allows for cooperative multitasking with help of cl-cont
9702 for continuations. It tries to mimic the API of bordeaux-threads as much as
9703 possible.")
9704 (home-page "https://github.com/thezerobit/green-threads")
9705 (license license:bsd-3))))
9706
9707 (define-public cl-green-threads
9708 (sbcl-package->cl-source-package sbcl-green-threads))
9709
9710 (define-public ecl-green-threads
9711 (sbcl-package->ecl-package sbcl-green-threads))
9712
9713 (define-public sbcl-cl-base32
9714 (let ((commit "8cdee06fab397f7b0a19583b57e7f0c98405be85")
9715 (revision "1"))
9716 (package
9717 (name "sbcl-cl-base32")
9718 (version (git-version "0.1" revision commit))
9719 (source
9720 (origin
9721 (method git-fetch)
9722 (uri (git-reference
9723 (url "https://github.com/hargettp/cl-base32.git")
9724 (commit commit)))
9725 (file-name (git-file-name name version))
9726 (sha256
9727 (base32 "17jrng8jb05d64ggyd11hp308c2fl5drvf9g175blgrkkl8l4mf8"))))
9728 (build-system asdf-build-system/sbcl)
9729 (native-inputs
9730 `(("lisp-unit" ,sbcl-lisp-unit)))
9731 (synopsis "Common Lisp library for base32 encoding and decoding")
9732 (description
9733 "This package provides functions for base32 encoding and decoding as
9734 defined in RFC4648.")
9735 (home-page "https://github.com/hargettp/cl-base32")
9736 (license license:expat))))
9737
9738 (define-public cl-base32
9739 (sbcl-package->cl-source-package sbcl-cl-base32))
9740
9741 (define-public ecl-cl-base32
9742 (sbcl-package->ecl-package sbcl-cl-base32))