gnu: Add cl-async-future.
[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.46")
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 "1s391awi2lsl7m1dbjirgpkm4p9p8wd076pakgvsvpn1rrznisnd"))
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 ("nibbles" ,sbcl-nibbles)))
1691 (synopsis "Cryptographic toolkit written in Common Lisp")
1692 (description
1693 "Ironclad is a cryptography library written entirely in Common Lisp.
1694 It includes support for several popular ciphers, digests, MACs and public key
1695 cryptography algorithms. For several implementations that support Gray
1696 streams, support is included for convenient stream wrappers.")
1697 (home-page "https://github.com/sharplispers/ironclad")
1698 (license license:bsd-3)))
1699
1700 (define-public cl-ironclad
1701 (sbcl-package->cl-source-package sbcl-ironclad))
1702
1703 (define-public ecl-ironclad
1704 (sbcl-package->ecl-package sbcl-ironclad))
1705
1706 (define-public sbcl-named-readtables
1707 (let ((commit "4dfb89fa1af6b305b6492b8af042f5190c11e9fc")
1708 (revision "1"))
1709 (package
1710 (name "sbcl-named-readtables")
1711 (version (string-append "0.9-" revision "." (string-take commit 7)))
1712 (source
1713 (origin
1714 (method git-fetch)
1715 (uri (git-reference
1716 (url "https://github.com/melisgl/named-readtables.git")
1717 (commit commit)))
1718 (sha256
1719 (base32 "083kgh5462iqbb4px6kq8s7sggvpvkm36hx4qi9rnaw53b6ilqkk"))
1720 (file-name (git-file-name "named-readtables" version))))
1721 (build-system asdf-build-system/sbcl)
1722 (arguments
1723 ;; Tests seem to be broken.
1724 `(#:tests? #f))
1725 (home-page "https://github.com/melisgl/named-readtables/")
1726 (synopsis "Library that creates a namespace for named readtables")
1727 (description "Named readtables is a library that creates a namespace for
1728 named readtables, which is akin to package namespacing in Common Lisp.")
1729 (license license:bsd-3))))
1730
1731 (define-public cl-named-readtables
1732 (sbcl-package->cl-source-package sbcl-named-readtables))
1733
1734 (define-public ecl-named-readtables
1735 (sbcl-package->ecl-package sbcl-named-readtables))
1736
1737 (define-public sbcl-pythonic-string-reader
1738 (let ((commit "47a70ba1e32362e03dad6ef8e6f36180b560f86a"))
1739 (package
1740 (name "sbcl-pythonic-string-reader")
1741 (version (git-version "0.0.0" "1" commit))
1742 (source
1743 (origin
1744 (method git-fetch)
1745 (uri (git-reference
1746 (url "https://github.com/smithzvk/pythonic-string-reader/")
1747 (commit commit)))
1748 (sha256
1749 (base32 "1b5iryqw8xsh36swckmz8rrngmc39k92si33fgy5pml3n9l5rq3j"))
1750 (file-name (git-file-name "pythonic-string-reader" version))))
1751 (build-system asdf-build-system/sbcl)
1752 (inputs
1753 `(("named-readtables" ,sbcl-named-readtables)))
1754 (home-page "https://github.com/smithzvk/pythonic-string-reader")
1755 (synopsis "Read table modification inspired by Python's three quote strings")
1756 (description "This piece of code sets up some reader macros that make it
1757 simpler to input string literals which contain backslashes and double quotes
1758 This is very useful for writing complicated docstrings and, as it turns out,
1759 writing code that contains string literals that contain code themselves.")
1760 (license license:bsd-3))))
1761
1762 (define-public cl-pythonic-string-reader
1763 (sbcl-package->cl-source-package sbcl-pythonic-string-reader))
1764
1765 (define-public ecl-pythonic-string-reader
1766 (sbcl-package->ecl-package sbcl-pythonic-string-reader))
1767
1768 ;; SLIME does not have a ASDF system definition to build all of Swank. As a
1769 ;; result, the asdf-build-system/sbcl will produce an almost empty package.
1770 ;; Some work was done to fix this at
1771 ;; https://github.com/sionescu/slime/tree/swank-asdf but it was never merged
1772 ;; and is now lagging behind. Building SBCL fasls might not be worth the
1773 ;; hassle, so let's just ship the source then.
1774 (define-public cl-slime-swank
1775 (package
1776 (name "cl-slime-swank")
1777 (version "2.24")
1778 (source
1779 (origin
1780 (file-name (string-append name "-" version ".tar.gz"))
1781 (method git-fetch)
1782 (uri (git-reference
1783 (url "https://github.com/slime/slime/")
1784 (commit (string-append "v" version))))
1785 (sha256
1786 (base32
1787 "0js24x42m7b5iymb4rxz501dff19vav5pywnzv50b673rbkaaqvh"))))
1788 (build-system asdf-build-system/source)
1789 (home-page "https://github.com/slime/slime")
1790 (synopsis "Common Lisp Swank server")
1791 (description
1792 "This is only useful if you want to start a Swank server in a Lisp
1793 processes that doesn't run under Emacs. Lisp processes created by
1794 @command{M-x slime} automatically start the server.")
1795 (license (list license:gpl2+ license:public-domain))))
1796
1797 (define-public sbcl-slime-swank
1798 (deprecated-package "sbcl-slime-swank" cl-slime-swank))
1799
1800 (define-public sbcl-mgl-pax
1801 (let ((commit "818448418d6b9de74620f606f5b23033c6082769"))
1802 (package
1803 (name "sbcl-mgl-pax")
1804 (version (git-version "0.0.0" "1" commit))
1805 (source
1806 (origin
1807 (method git-fetch)
1808 (uri (git-reference
1809 (url "https://github.com/melisgl/mgl-pax")
1810 (commit commit)))
1811 (sha256
1812 (base32
1813 "1p97zfkh130bdxqqxwaw2j9psv58751wakx7czbfpq410lg7dd7i"))
1814 (file-name (git-file-name "mgl-pax" version))))
1815 (build-system asdf-build-system/sbcl)
1816 (inputs
1817 `(("3bmd" ,sbcl-3bmd)
1818 ("3bmd-ext-code-blocks" ,sbcl-3bmd-ext-code-blocks)
1819 ("babel" ,sbcl-babel)
1820 ("cl-fad" ,sbcl-cl-fad)
1821 ("ironclad" ,sbcl-ironclad)
1822 ("named-readtables" ,sbcl-named-readtables)
1823 ("pythonic-string-reader" ,sbcl-pythonic-string-reader)
1824 ("swank" ,cl-slime-swank)))
1825 (synopsis "Exploratory programming environment and documentation generator")
1826 (description
1827 "PAX provides an extremely poor man's Explorable Programming
1828 environment. Narrative primarily lives in so called sections that mix markdown
1829 docstrings with references to functions, variables, etc, all of which should
1830 probably have their own docstrings.
1831
1832 The primary focus is on making code easily explorable by using SLIME's
1833 @command{M-.} (@command{slime-edit-definition}). See how to enable some
1834 fanciness in Emacs Integration. Generating documentation from sections and all
1835 the referenced items in Markdown or HTML format is also implemented.
1836
1837 With the simplistic tools provided, one may accomplish similar effects as with
1838 Literate Programming, but documentation is generated from code, not vice versa
1839 and there is no support for chunking yet. Code is first, code must look
1840 pretty, documentation is code.")
1841 (home-page "http://quotenil.com/")
1842 (license license:expat))))
1843
1844 (define-public cl-mgl-pax
1845 (sbcl-package->cl-source-package sbcl-mgl-pax))
1846
1847 (define-public ecl-mgl-pax
1848 (sbcl-package->ecl-package sbcl-mgl-pax))
1849
1850 (define-public sbcl-lisp-unit
1851 (let ((commit "89653a232626b67400bf9a941f9b367da38d3815"))
1852 (package
1853 (name "sbcl-lisp-unit")
1854 (version (git-version "0.0.0" "1" commit))
1855 (source
1856 (origin
1857 (method git-fetch)
1858 (uri (git-reference
1859 (url "https://github.com/OdonataResearchLLC/lisp-unit")
1860 (commit commit)))
1861 (sha256
1862 (base32
1863 "0p6gdmgr7p383nvd66c9y9fp2bjk4jx1lpa5p09g43hr9y9pp9ry"))
1864 (file-name (git-file-name "lisp-unit" version))))
1865 (build-system asdf-build-system/sbcl)
1866 (synopsis "Common Lisp Test framework inspired by JUnit to be simple of use")
1867 (description
1868 "@command{lisp-unit} is a Common Lisp library that supports unit
1869 testing. It is an extension of the library written by Chris Riesbeck.")
1870 (home-page "https://github.com/OdonataResearchLLC/lisp-unit")
1871 (license license:expat))))
1872
1873 (define-public cl-lisp-unit
1874 (sbcl-package->cl-source-package sbcl-lisp-unit))
1875
1876 (define-public ecl-lisp-unit
1877 (sbcl-package->ecl-package sbcl-lisp-unit))
1878
1879 (define-public sbcl-anaphora
1880 (package
1881 (name "sbcl-anaphora")
1882 (version "0.9.6")
1883 (source
1884 (origin
1885 (method git-fetch)
1886 (uri (git-reference
1887 (url "https://github.com/tokenrove/anaphora")
1888 (commit version)))
1889 (sha256
1890 (base32
1891 "19wfrk3asimznkli0x2rfy637hwpdgqyvwj3vhq9x7vjvyf5vv6x"))
1892 (file-name (git-file-name "anaphora" version))))
1893 (build-system asdf-build-system/sbcl)
1894 (native-inputs
1895 `(("rt" ,sbcl-rt)))
1896 (synopsis "The anaphoric macro collection from Hell")
1897 (description
1898 "Anaphora is the anaphoric macro collection from Hell: it includes many
1899 new fiends in addition to old friends like @command{aif} and
1900 @command{awhen}.")
1901 (home-page "https://github.com/tokenrove/anaphora")
1902 (license license:public-domain)))
1903
1904 (define-public cl-anaphora
1905 (sbcl-package->cl-source-package sbcl-anaphora))
1906
1907 (define-public ecl-anaphora
1908 (sbcl-package->ecl-package sbcl-anaphora))
1909
1910 (define-public sbcl-lift
1911 (let ((commit "7d49a66c62759535624037826891152223d4206c"))
1912 (package
1913 (name "sbcl-lift")
1914 (version (git-version "1.7.1" "1" commit))
1915 (source
1916 (origin
1917 (method git-fetch)
1918 (uri (git-reference
1919 (url "https://github.com/gwkkwg/lift")
1920 (commit commit)))
1921 (sha256
1922 (base32
1923 "127v5avpz1i4m0lkaxqrq8hrl69rdazqaxf6s8awf0nd7wj2g4dp"))
1924 (file-name (git-file-name "lift" version))
1925 (modules '((guix build utils)))
1926 (snippet
1927 ;; Don't keep the bundled website
1928 `(begin
1929 (delete-file-recursively "website")
1930 #t))))
1931 (build-system asdf-build-system/sbcl)
1932 (arguments
1933 ;; The tests require a debugger, but we run with the debugger disabled.
1934 '(#:tests? #f))
1935 (synopsis "LIsp Framework for Testing")
1936 (description
1937 "The LIsp Framework for Testing (LIFT) is a unit and system test tool for LISP.
1938 Though inspired by SUnit and JUnit, it's built with Lisp in mind. In LIFT,
1939 testcases are organized into hierarchical testsuites each of which can have
1940 its own fixture. When run, a testcase can succeed, fail, or error. LIFT
1941 supports randomized testing, benchmarking, profiling, and reporting.")
1942 (home-page "https://github.com/gwkkwg/lift")
1943 (license license:expat))))
1944
1945 (define-public cl-lift
1946 (sbcl-package->cl-source-package sbcl-lift))
1947
1948 (define-public ecl-lift
1949 (sbcl-package->ecl-package sbcl-lift))
1950
1951 (define-public sbcl-let-plus
1952 (let ((commit "5f14af61d501ecead02ec6b5a5c810efc0c9fdbb"))
1953 (package
1954 (name "sbcl-let-plus")
1955 (version (git-version "0.0.0" "1" commit))
1956 (source
1957 (origin
1958 (method git-fetch)
1959 (uri (git-reference
1960 (url "https://github.com/sharplispers/let-plus")
1961 (commit commit)))
1962 (sha256
1963 (base32
1964 "0i050ca2iys9f5mb7dgqgqdxfnc3b0rnjdwv95sqd490vkiwrsaj"))
1965 (file-name (git-file-name "let-plus" version))))
1966 (build-system asdf-build-system/sbcl)
1967 (inputs
1968 `(("alexandria" ,sbcl-alexandria)
1969 ("anaphora" ,sbcl-anaphora)))
1970 (native-inputs
1971 `(("lift" ,sbcl-lift)))
1972 (synopsis "Destructuring extension of let*")
1973 (description
1974 "This library implements the let+ macro, which is a dectructuring
1975 extension of let*. It features:
1976
1977 @itemize
1978 @item Clean, consistent syntax and small implementation (less than 300 LOC,
1979 not counting tests)
1980 @item Placeholder macros allow editor hints and syntax highlighting
1981 @item @command{&ign} for ignored values (in forms where that makes sense)
1982 @item Very easy to extend
1983 @end itemize\n")
1984 (home-page "https://github.com/sharplispers/let-plus")
1985 (license license:boost1.0))))
1986
1987 (define-public cl-let-plus
1988 (sbcl-package->cl-source-package sbcl-let-plus))
1989
1990 (define-public ecl-let-plus
1991 (sbcl-package->ecl-package sbcl-let-plus))
1992
1993 (define-public sbcl-cl-colors
1994 (let ((commit "827410584553f5c717eec6182343b7605f707f75"))
1995 (package
1996 (name "sbcl-cl-colors")
1997 (version (git-version "0.0.0" "1" commit))
1998 (source
1999 (origin
2000 (method git-fetch)
2001 (uri (git-reference
2002 (url "https://github.com/tpapp/cl-colors")
2003 (commit commit)))
2004 (sha256
2005 (base32
2006 "0l446lday4hybsm9bq3jli97fvv8jb1d33abg79vbylpwjmf3y9a"))
2007 (file-name (git-file-name "cl-colors" version))))
2008 (build-system asdf-build-system/sbcl)
2009 (inputs
2010 `(("alexandria" ,sbcl-alexandria)
2011 ("let-plus" ,sbcl-let-plus)))
2012 (synopsis "Simple color library for Common Lisp")
2013 (description
2014 "This is a very simple color library for Common Lisp, providing
2015
2016 @itemize
2017 @item Types for representing colors in HSV and RGB spaces.
2018 @item Simple conversion functions between the above types (and also
2019 hexadecimal representation for RGB).
2020 @item Some predefined colors (currently X11 color names – of course the
2021 library does not depend on X11).Because color in your terminal is nice.
2022 @end itemize
2023
2024 This library is no longer supported by its author.")
2025 (home-page "https://github.com/tpapp/cl-colors")
2026 (license license:boost1.0))))
2027
2028 (define-public cl-colors
2029 (sbcl-package->cl-source-package sbcl-cl-colors))
2030
2031 (define-public ecl-cl-colors
2032 (sbcl-package->ecl-package sbcl-cl-colors))
2033
2034 (define-public sbcl-cl-ansi-text
2035 (let ((commit "53badf7878f27f22f2d4a2a43e6df458e43acbe9"))
2036 (package
2037 (name "sbcl-cl-ansi-text")
2038 (version (git-version "1.0.0" "1" commit))
2039 (source
2040 (origin
2041 (method git-fetch)
2042 (uri (git-reference
2043 (url "https://github.com/pnathan/cl-ansi-text")
2044 (commit commit)))
2045 (sha256
2046 (base32
2047 "11i27n0dbz5lmygiw65zzr8lx0rac6b6yysqranphn31wls6ja3v"))
2048 (file-name (git-file-name "cl-ansi-text" version))))
2049 (build-system asdf-build-system/sbcl)
2050 (inputs
2051 `(("alexandria" ,sbcl-alexandria)
2052 ("cl-colors" ,sbcl-cl-colors)))
2053 (native-inputs
2054 `(("fiveam" ,sbcl-fiveam)))
2055 (synopsis "ANSI terminal color implementation for Common Lisp")
2056 (description
2057 "@command{cl-ansi-text} provides utilities which enable printing to an
2058 ANSI terminal with colored text. It provides the macro @command{with-color}
2059 which causes everything printed in the body to be displayed with the provided
2060 color. It further provides functions which will print the argument with the
2061 named color.")
2062 (home-page "https://github.com/pnathan/cl-ansi-text")
2063 (license license:llgpl))))
2064
2065 (define-public cl-ansi-text
2066 (sbcl-package->cl-source-package sbcl-cl-ansi-text))
2067
2068 (define-public ecl-cl-ansi-text
2069 (sbcl-package->ecl-package sbcl-cl-ansi-text))
2070
2071 (define-public sbcl-prove-asdf
2072 (let ((commit "4f9122bd393e63c5c70c1fba23070622317cfaa0"))
2073 (package
2074 (name "sbcl-prove-asdf")
2075 (version (git-version "1.0.0" "1" commit))
2076 (source
2077 (origin
2078 (method git-fetch)
2079 (uri (git-reference
2080 (url "https://github.com/fukamachi/prove")
2081 (commit commit)))
2082 (sha256
2083 (base32
2084 "07sbfw459z8bbjvx1qlmfa8qk2mvbjnnzi2mi0x72blaj8bkl4vc"))
2085 (file-name (git-file-name "prove" version))))
2086 (build-system asdf-build-system/sbcl)
2087 (arguments
2088 `(#:asd-file "prove-asdf.asd"))
2089 (synopsis "Test requirement for the Common Lisp 'prove' library")
2090 (description
2091 "Test requirement for the Common Lisp @command{prove} library.")
2092 (home-page "https://github.com/fukamachi/prove")
2093 (license license:expat))))
2094
2095 (define-public cl-prove-asdf
2096 (sbcl-package->cl-source-package sbcl-prove-asdf))
2097
2098 (define-public ecl-prove-asdf
2099 (sbcl-package->ecl-package sbcl-prove-asdf))
2100
2101 (define-public sbcl-prove
2102 (package
2103 (inherit sbcl-prove-asdf)
2104 (name "sbcl-prove")
2105 (inputs
2106 `(("alexandria" ,sbcl-alexandria)
2107 ("cl-ppcre" ,sbcl-cl-ppcre)
2108 ("cl-ansi-text" ,sbcl-cl-ansi-text)))
2109 (native-inputs
2110 `(("prove-asdf" ,sbcl-prove-asdf)))
2111 (arguments
2112 `(#:asd-file "prove.asd"))
2113 (synopsis "Yet another unit testing framework for Common Lisp")
2114 (description
2115 "This project was originally called @command{cl-test-more}.
2116 @command{prove} is yet another unit testing framework for Common Lisp. The
2117 advantages of @command{prove} are:
2118
2119 @itemize
2120 @item Various simple functions for testing and informative error messages
2121 @item ASDF integration
2122 @item Extensible test reporters
2123 @item Colorizes the report if it's available (note for SLIME)
2124 @item Reports test durations
2125 @end itemize\n")))
2126
2127 (define-public cl-prove
2128 (sbcl-package->cl-source-package sbcl-prove))
2129
2130 (define-public ecl-prove
2131 (sbcl-package->ecl-package sbcl-prove))
2132
2133 (define-public sbcl-proc-parse
2134 (let ((commit "ac3636834d561bdc2686c956dbd82494537285fd"))
2135 (package
2136 (name "sbcl-proc-parse")
2137 (version (git-version "0.0.0" "1" commit))
2138 (source
2139 (origin
2140 (method git-fetch)
2141 (uri (git-reference
2142 (url "https://github.com/fukamachi/proc-parse")
2143 (commit commit)))
2144 (sha256
2145 (base32
2146 "06rnl0h4cx6xv2wj3jczmmcxqn2703inmmvg1s4npbghmijsybfh"))
2147 (file-name (git-file-name "proc-parse" version))))
2148 (build-system asdf-build-system/sbcl)
2149 (inputs
2150 `(("alexandria" ,sbcl-alexandria)
2151 ("babel" ,sbcl-babel)))
2152 (native-inputs
2153 `(("prove" ,sbcl-prove)
2154 ("prove-asdf" ,sbcl-prove-asdf)))
2155 (arguments
2156 ;; TODO: Tests don't find "proc-parse-test", why?
2157 `(#:tests? #f))
2158 (synopsis "Procedural vector parser")
2159 (description
2160 "This is a string/octets parser library for Common Lisp with speed and
2161 readability in mind. Unlike other libraries, the code is not a
2162 pattern-matching-like, but a char-by-char procedural parser.")
2163 (home-page "https://github.com/fukamachi/proc-parse")
2164 (license license:bsd-2))))
2165
2166 (define-public cl-proc-parse
2167 (sbcl-package->cl-source-package sbcl-proc-parse))
2168
2169 (define-public ecl-proc-parse
2170 (sbcl-package->ecl-package sbcl-proc-parse))
2171
2172 (define-public sbcl-parse-float
2173 (let ((commit "2aae569f2a4b2eb3bfb5401a959425dcf151b09c"))
2174 (package
2175 (name "sbcl-parse-float")
2176 (version (git-version "0.0.0" "1" commit))
2177 (source
2178 (origin
2179 (method git-fetch)
2180 (uri (git-reference
2181 (url "https://github.com/soemraws/parse-float")
2182 (commit commit)))
2183 (sha256
2184 (base32
2185 "08xw8cchhmqcc0byng69m3f5a2izc9y2290jzz2k0qrbibp1fdk7"))
2186 (file-name (git-file-name "proc-parse" version))))
2187 (build-system asdf-build-system/sbcl)
2188 (inputs
2189 `(("alexandria" ,sbcl-alexandria)
2190 ("babel" ,sbcl-babel)))
2191 (native-inputs
2192 `(("prove" ,sbcl-prove)
2193 ("prove-asdf" ,sbcl-prove-asdf)))
2194 (arguments
2195 ;; TODO: Tests don't find "proc-parse-test", why?
2196 `(#:tests? #f))
2197 (synopsis "Parse a floating point value from a string in Common Lisp")
2198 (description
2199 "This package exports the following function to parse floating-point
2200 values from a string in Common Lisp.")
2201 (home-page "https://github.com/soemraws/parse-float")
2202 (license license:public-domain))))
2203
2204 (define-public cl-parse-float
2205 (sbcl-package->cl-source-package sbcl-parse-float))
2206
2207 (define-public ecl-parse-float
2208 (sbcl-package->ecl-package sbcl-parse-float))
2209
2210 (define-public sbcl-ascii-strings
2211 (let ((revision "1")
2212 (changeset "5048480a61243e6f1b02884012c8f25cdbee6d97"))
2213 (package
2214 (name "sbcl-ascii-strings")
2215 (version (string-append "0-" revision "." (string-take changeset 7)))
2216 (source
2217 (origin
2218 (method hg-fetch)
2219 (uri (hg-reference
2220 (url "https://bitbucket.org/vityok/cl-string-match/")
2221 (changeset changeset)))
2222 (sha256
2223 (base32
2224 "01wn5qx562w43ssy92xlfgv79w7p0nv0wbl76mpmba131n9ziq2y"))
2225 (file-name (git-file-name "cl-string-match" version))))
2226 (build-system asdf-build-system/sbcl)
2227 (inputs
2228 `(("alexandria" ,sbcl-alexandria)
2229 ("babel" ,sbcl-babel)))
2230 (arguments
2231 `(#:asd-file "ascii-strings.asd"))
2232 (synopsis "Operations on ASCII strings")
2233 (description
2234 "Operations on ASCII strings. Essentially this can be any kind of
2235 single-byte encoded strings.")
2236 (home-page "https://bitbucket.org/vityok/cl-string-match/")
2237 (license license:bsd-3))))
2238
2239 (define-public cl-ascii-strings
2240 (sbcl-package->cl-source-package sbcl-ascii-strings))
2241
2242 (define-public ecl-ascii-strings
2243 (sbcl-package->ecl-package sbcl-ascii-strings))
2244
2245 (define-public sbcl-simple-scanf
2246 (package
2247 (inherit sbcl-ascii-strings)
2248 (name "sbcl-simple-scanf")
2249 (inputs
2250 `(("alexandria" ,sbcl-alexandria)
2251 ("iterate" ,sbcl-iterate)
2252 ("proc-parse" ,sbcl-proc-parse)
2253 ("parse-float" ,sbcl-parse-float)))
2254 (arguments
2255 `(#:asd-file "simple-scanf.asd"))
2256 (synopsis "Simple scanf-like functionality implementation")
2257 (description
2258 "A simple scanf-like functionality implementation.")))
2259
2260 (define-public cl-simple-scanf
2261 (sbcl-package->cl-source-package sbcl-simple-scanf))
2262
2263 (define-public ecl-simple-scanf
2264 (sbcl-package->ecl-package sbcl-simple-scanf))
2265
2266 (define-public sbcl-cl-string-match
2267 (package
2268 (inherit sbcl-ascii-strings)
2269 (name "sbcl-cl-string-match")
2270 (inputs
2271 `(("alexandria" ,sbcl-alexandria)
2272 ("ascii-strings" ,sbcl-ascii-strings)
2273 ("yacc" ,sbcl-cl-yacc)
2274 ("jpl-util" ,sbcl-jpl-util)
2275 ("jpl-queues" ,sbcl-jpl-queues)
2276 ("mgl-pax" ,sbcl-mgl-pax)
2277 ("iterate" ,sbcl-iterate)))
2278 ;; TODO: Tests are not evaluated properly.
2279 (native-inputs
2280 ;; For testing:
2281 `(("lisp-unit" ,sbcl-lisp-unit)
2282 ("simple-scanf" ,sbcl-simple-scanf)))
2283 (arguments
2284 `(#:tests? #f
2285 #:asd-file "cl-string-match.asd"))
2286 (synopsis "Portable, dependency-free set of utilities to manipulate strings in Common Lisp")
2287 (description
2288 "@command{cl-strings} is a small, portable, dependency-free set of
2289 utilities that make it even easier to manipulate text in Common Lisp. It has
2290 100% test coverage and works at least on sbcl, ecl, ccl, abcl and clisp.")))
2291
2292 (define-public cl-string-match
2293 (sbcl-package->cl-source-package sbcl-cl-string-match))
2294
2295 (define-public ecl-cl-string-match
2296 (sbcl-package->ecl-package sbcl-cl-string-match))
2297
2298 (define-public sbcl-ptester
2299 (package
2300 (name "sbcl-ptester")
2301 (version "20160929")
2302 (source
2303 (origin
2304 (method url-fetch)
2305 (uri (string-append "http://beta.quicklisp.org/archive/ptester/"
2306 (date->string (string->date version "~Y~m~d") "~Y-~m-~d")
2307 "/ptester-"
2308 version
2309 "-git.tgz"))
2310 (sha256
2311 (base32
2312 "04rlq1zljhxc65pm31bah3sq3as24l0sdivz440s79qlnnyh13hz"))))
2313 (build-system asdf-build-system/sbcl)
2314 (home-page "http://quickdocs.org/ptester/")
2315 (synopsis "Portable test harness package")
2316 (description
2317 "@command{ptester} is a portable testing framework based on Franz's
2318 tester module.")
2319 (license license:lgpl3+)))
2320
2321 (define-public cl-ptester
2322 (sbcl-package->cl-source-package sbcl-ptester))
2323
2324 (define-public ecl-ptester
2325 (sbcl-package->ecl-package sbcl-ptester))
2326
2327 (define-public sbcl-puri
2328 (package
2329 (name "sbcl-puri")
2330 (version "20180228")
2331 (source
2332 (origin
2333 (method url-fetch)
2334 (uri (string-append "http://beta.quicklisp.org/archive/puri/"
2335 (date->string (string->date version "~Y~m~d") "~Y-~m-~d")
2336 "/puri-"
2337 version
2338 "-git.tgz"))
2339 (sha256
2340 (base32
2341 "1s4r5adrjy5asry45xbcbklxhdjydvf6n55z897nvyw33bigrnbz"))))
2342 (build-system asdf-build-system/sbcl)
2343 ;; REVIEW: Webiste down?
2344 (native-inputs
2345 `(("ptester" ,sbcl-ptester)))
2346 (home-page "http://files.kpe.io/puri/")
2347 (synopsis "Portable URI Library")
2348 (description
2349 "This is portable Universal Resource Identifier library for Common Lisp
2350 programs. It parses URI according to the RFC 2396 specification")
2351 (license license:lgpl3+)))
2352
2353 (define-public cl-puri
2354 (sbcl-package->cl-source-package sbcl-puri))
2355
2356 (define-public ecl-puri
2357 (sbcl-package->ecl-package sbcl-puri))
2358
2359 (define-public sbcl-queues
2360 (let ((commit "47d4da65e9ea20953b74aeeab7e89a831b66bc94"))
2361 (package
2362 (name "sbcl-queues")
2363 (version (git-version "0.0.0" "1" commit))
2364 (source
2365 (origin
2366 (method git-fetch)
2367 (uri (git-reference
2368 (url "https://github.com/oconnore/queues")
2369 (commit commit)))
2370 (file-name (git-file-name "queues" version))
2371 (sha256
2372 (base32
2373 "0wdhfnzi4v6d97pggzj2aw55si94w4327br94jrmyvwf351wqjvv"))))
2374 (build-system asdf-build-system/sbcl)
2375 (home-page "https://github.com/oconnore/queues")
2376 (synopsis "Common Lisp queue library")
2377 (description
2378 "This is a simple queue library for Common Lisp with features such as
2379 non-consing thread safe queues and fibonacci priority queues.")
2380 (license license:expat))))
2381
2382 (define-public cl-queues
2383 (sbcl-package->cl-source-package sbcl-queues))
2384
2385 (define-public ecl-queues
2386 (sbcl-package->ecl-package sbcl-queues))
2387
2388 (define-public sbcl-queues.simple-queue
2389 (package
2390 (inherit sbcl-queues)
2391 (name "sbcl-queues.simple-queue")
2392 (inputs
2393 `(("sbcl-queues" ,sbcl-queues)))
2394 (arguments
2395 `(#:asd-file "queues.simple-queue.asd"))
2396 (synopsis "Simple queue implementation")
2397 (description
2398 "This is a simple queue library for Common Lisp with features such as
2399 non-consing thread safe queues and fibonacci priority queues.")
2400 (license license:expat)))
2401
2402 (define-public cl-queues.simple-queue
2403 (sbcl-package->cl-source-package sbcl-queues.simple-queue))
2404
2405 (define-public ecl-queues.simple-queue
2406 (sbcl-package->ecl-package sbcl-queues.simple-queue))
2407
2408 (define-public sbcl-queues.simple-cqueue
2409 (package
2410 (inherit sbcl-queues)
2411 (name "sbcl-queues.simple-cqueue")
2412 (inputs
2413 `(("sbcl-queues" ,sbcl-queues)
2414 ("sbcl-queues.simple-queue" ,sbcl-queues.simple-queue)
2415 ("bordeaux-threads" ,sbcl-bordeaux-threads)))
2416 (arguments
2417 `(#:asd-file "queues.simple-cqueue.asd"))
2418 (synopsis "Thread safe queue implementation")
2419 (description
2420 "This is a simple queue library for Common Lisp with features such as
2421 non-consing thread safe queues and fibonacci priority queues.")
2422 (license license:expat)))
2423
2424 (define-public cl-queues.simple-cqueue
2425 (sbcl-package->cl-source-package sbcl-queues.simple-cqueue))
2426
2427 (define-public ecl-queues.simple-cqueue
2428 (sbcl-package->ecl-package sbcl-queues.simple-cqueue))
2429
2430 (define-public sbcl-queues.priority-queue
2431 (package
2432 (inherit sbcl-queues)
2433 (name "sbcl-queues.priority-queue")
2434 (inputs
2435 `(("sbcl-queues" ,sbcl-queues)))
2436 (arguments
2437 `(#:asd-file "queues.priority-queue.asd"))
2438 (synopsis "Priority queue (Fibonacci) implementation")
2439 (description
2440 "This is a simple queue library for Common Lisp with features such as
2441 non-consing thread safe queues and fibonacci priority queues.")
2442 (license license:expat)))
2443
2444 (define-public cl-queues.priority-queue
2445 (sbcl-package->cl-source-package sbcl-queues.priority-queue))
2446
2447 (define-public ecl-queues.priority-queue
2448 (sbcl-package->ecl-package sbcl-queues.priority-queue))
2449
2450 (define-public sbcl-queues.priority-cqueue
2451 (package
2452 (inherit sbcl-queues)
2453 (name "sbcl-queues.priority-cqueue")
2454 (inputs
2455 `(("sbcl-queues" ,sbcl-queues)
2456 ("sbcl-queues.priority-queue" ,sbcl-queues.priority-queue)
2457 ("bordeaux-threads" ,sbcl-bordeaux-threads)))
2458 (arguments
2459 `(#:asd-file "queues.priority-cqueue.asd"))
2460 (synopsis "Thread safe fibonacci priority queue implementation")
2461 (description
2462 "This is a simple queue library for Common Lisp with features such as
2463 non-consing thread safe queues and fibonacci priority queues.")
2464 (license license:expat)))
2465
2466 (define-public cl-queues.priority-cqueue
2467 (sbcl-package->cl-source-package sbcl-queues.priority-cqueue))
2468
2469 (define-public ecl-queues.priority-cqueue
2470 (sbcl-package->ecl-package sbcl-queues.priority-cqueue))
2471
2472 (define sbcl-cffi-bootstrap
2473 (package
2474 (name "sbcl-cffi-bootstrap")
2475 (version "0.19.0")
2476 (source
2477 (origin
2478 (method git-fetch)
2479 (uri (git-reference
2480 (url "https://github.com/cffi/cffi.git")
2481 (commit (string-append "v" version))))
2482 (file-name (git-file-name "cffi-bootstrap" version))
2483 (sha256
2484 (base32 "09sfgc6r7ihmbkwfpvkq5fxc7h45cabpvgbvs47i5cvnmv3k72xy"))))
2485 (build-system asdf-build-system/sbcl)
2486 (inputs
2487 `(("libffi" ,libffi)
2488 ("alexandria" ,sbcl-alexandria)
2489 ("babel" ,sbcl-babel)
2490 ("trivial-features" ,sbcl-trivial-features)))
2491 (native-inputs
2492 `(("pkg-config" ,pkg-config)))
2493 (arguments
2494 '(#:phases
2495 (modify-phases %standard-phases
2496 (add-after 'unpack 'fix-paths
2497 (lambda* (#:key inputs #:allow-other-keys)
2498 (substitute* "libffi/libffi.lisp"
2499 (("libffi.so.6" all) (string-append
2500 (assoc-ref inputs "libffi")
2501 "/lib/" all)))
2502 (substitute* "toolchain/c-toolchain.lisp"
2503 (("\"cc\"") (format #f "~S" (which "gcc")))))))
2504 #:asd-system-name "cffi"
2505 #:tests? #f))
2506 (home-page "https://common-lisp.net/project/cffi/")
2507 (synopsis "Common Foreign Function Interface for Common Lisp")
2508 (description "The Common Foreign Function Interface (CFFI)
2509 purports to be a portable foreign function interface for Common Lisp.
2510 The CFFI library is composed of a Lisp-implementation-specific backend
2511 in the CFFI-SYS package, and a portable frontend in the CFFI
2512 package.")
2513 (license license:expat)))
2514
2515 (define-public sbcl-cffi-toolchain
2516 (package
2517 (inherit sbcl-cffi-bootstrap)
2518 (name "sbcl-cffi-toolchain")
2519 (inputs
2520 `(("libffi" ,libffi)
2521 ("sbcl-cffi" ,sbcl-cffi-bootstrap)))
2522 (arguments
2523 (substitute-keyword-arguments (package-arguments sbcl-cffi-bootstrap)
2524 ((#:asd-system-name _) #f)
2525 ((#:tests? _) #t)))))
2526
2527 (define-public sbcl-cffi-libffi
2528 (package
2529 (inherit sbcl-cffi-toolchain)
2530 (name "sbcl-cffi-libffi")
2531 (inputs
2532 `(("cffi" ,sbcl-cffi-bootstrap)
2533 ("cffi-grovel" ,sbcl-cffi-grovel)
2534 ("trivial-features" ,sbcl-trivial-features)
2535 ("libffi" ,libffi)))))
2536
2537 (define-public sbcl-cffi-grovel
2538 (package
2539 (inherit sbcl-cffi-toolchain)
2540 (name "sbcl-cffi-grovel")
2541 (inputs
2542 `(("libffi" ,libffi)
2543 ("cffi" ,sbcl-cffi-bootstrap)
2544 ("cffi-toolchain" ,sbcl-cffi-toolchain)
2545 ("alexandria" ,sbcl-alexandria)))
2546 (arguments
2547 (substitute-keyword-arguments (package-arguments sbcl-cffi-toolchain)
2548 ((#:phases phases)
2549 `(modify-phases ,phases
2550 (add-after 'build 'install-headers
2551 (lambda* (#:key outputs #:allow-other-keys)
2552 (install-file "grovel/common.h"
2553 (string-append
2554 (assoc-ref outputs "out")
2555 "/include/grovel"))))))))))
2556
2557 (define-public sbcl-cffi
2558 (package
2559 (inherit sbcl-cffi-toolchain)
2560 (name "sbcl-cffi")
2561 (inputs (package-inputs sbcl-cffi-bootstrap))
2562 (native-inputs
2563 `(("cffi-grovel" ,sbcl-cffi-grovel)
2564 ("cffi-libffi" ,sbcl-cffi-libffi)
2565 ("rt" ,sbcl-rt)
2566 ("bordeaux-threads" ,sbcl-bordeaux-threads)
2567 ,@(package-native-inputs sbcl-cffi-bootstrap)))))
2568
2569 (define-public cl-cffi
2570 (sbcl-package->cl-source-package sbcl-cffi))
2571
2572 (define-public sbcl-cl-sqlite
2573 (let ((commit "c738e66d4266ef63a1debc4ef4a1b871a068c112"))
2574 (package
2575 (name "sbcl-cl-sqlite")
2576 (version (git-version "0.2" "1" commit))
2577 (source
2578 (origin
2579 (method git-fetch)
2580 (uri (git-reference
2581 (url "https://github.com/dmitryvk/cl-sqlite")
2582 (commit commit)))
2583 (file-name (git-file-name "cl-sqlite" version))
2584 (sha256
2585 (base32
2586 "1ng45k1hdb84sqjryrfx93g66bsbybmpy301wd0fdybnc5jzr36q"))))
2587 (build-system asdf-build-system/sbcl)
2588 (inputs
2589 `(("iterate" ,sbcl-iterate)
2590 ("cffi" ,sbcl-cffi)
2591 ("sqlite" ,sqlite)))
2592 (native-inputs
2593 `(("fiveam" ,sbcl-fiveam)
2594 ("bordeaux-threads" ,sbcl-bordeaux-threads)))
2595 (arguments
2596 `(#:tests? #f ; Upstream seems to have issues with tests: https://github.com/dmitryvk/cl-sqlite/issues/7
2597 #:asd-file "sqlite.asd"
2598 #:asd-system-name "sqlite"
2599 #:phases
2600 (modify-phases %standard-phases
2601 (add-after 'unpack 'fix-paths
2602 (lambda* (#:key inputs #:allow-other-keys)
2603 (substitute* "sqlite-ffi.lisp"
2604 (("libsqlite3" all) (string-append
2605 (assoc-ref inputs "sqlite")"/lib/" all))))))))
2606 (home-page "https://common-lisp.net/project/cl-sqlite/")
2607 (synopsis "Common Lisp binding for SQLite")
2608 (description
2609 "The @command{cl-sqlite} package is an interface to the SQLite embedded
2610 relational database engine.")
2611 (license license:public-domain))))
2612
2613 (define-public cl-sqlite
2614 (sbcl-package->cl-source-package sbcl-cl-sqlite))
2615
2616 (define-public sbcl-parenscript
2617 (let ((commit "061d8e286c81c3f45c84fb2b11ee7d83f590a8f8"))
2618 (package
2619 (name "sbcl-parenscript")
2620 (version (git-version "2.6" "1" commit))
2621 (source
2622 (origin
2623 (method git-fetch)
2624 (uri (git-reference
2625 (url "https://gitlab.common-lisp.net/parenscript/parenscript")
2626 (commit commit)))
2627 (file-name (git-file-name "parenscript" version))
2628 (sha256
2629 (base32
2630 "1kbhgsjbikc73m5cwdp4d4fdafyqcr1b7b630qjrziql0nh6mi3k"))))
2631 (build-system asdf-build-system/sbcl)
2632 (inputs
2633 `(("cl-ppcre" ,sbcl-cl-ppcre)
2634 ("anaphora" ,sbcl-anaphora)
2635 ("named-readtables" ,sbcl-named-readtables)))
2636 (home-page "https://common-lisp.net/project/parenscript/")
2637 (synopsis "Translator from a subset of Common Lisp to JavaScript")
2638 (description
2639 "Parenscript is a translator from an extended subset of Common Lisp to
2640 JavaScript. Parenscript code can run almost identically on both the
2641 browser (as JavaScript) and server (as Common Lisp).
2642
2643 Parenscript code is treated the same way as Common Lisp code, making the full
2644 power of Lisp macros available for JavaScript. This provides a web
2645 development environment that is unmatched in its ability to reduce code
2646 duplication and provide advanced meta-programming facilities to web
2647 developers.
2648
2649 At the same time, Parenscript is different from almost all other \"language
2650 X\" to JavaScript translators in that it imposes almost no overhead:
2651
2652 @itemize
2653 @item No run-time dependencies: Any piece of Parenscript code is runnable
2654 as-is. There are no JavaScript files to include.
2655 @item Native types: Parenscript works entirely with native JavaScript data
2656 types. There are no new types introduced, and object prototypes are not
2657 touched.
2658 @item Native calling convention: Any JavaScript code can be called without the
2659 need for bindings. Likewise, Parenscript can be used to make efficient,
2660 self-contained JavaScript libraries.
2661 @item Readable code: Parenscript generates concise, formatted, idiomatic
2662 JavaScript code. Identifier names are preserved. This enables seamless
2663 debugging in tools like Firebug.
2664 @item Efficiency: Parenscript introduces minimal overhead for advanced Common
2665 Lisp features. The generated code is almost as fast as hand-written
2666 JavaScript.
2667 @end itemize\n")
2668 (license license:bsd-3))))
2669
2670 (define-public cl-parenscript
2671 (sbcl-package->cl-source-package sbcl-parenscript))
2672
2673 (define-public ecl-parenscript
2674 (sbcl-package->ecl-package sbcl-parenscript))
2675
2676 (define-public sbcl-cl-json
2677 (let ((commit "6dfebb9540bfc3cc33582d0c03c9ec27cb913e79"))
2678 (package
2679 (name "sbcl-cl-json")
2680 (version (git-version "0.5" "1" commit))
2681 (source
2682 (origin
2683 (method git-fetch)
2684 (uri (git-reference
2685 (url "https://github.com/hankhero/cl-json")
2686 (commit commit)))
2687 (file-name (git-file-name "cl-json" version))
2688 (sha256
2689 (base32
2690 "0fx3m3x3s5ji950yzpazz4s0img3l6b3d6l3jrfjv0lr702496lh"))))
2691 (build-system asdf-build-system/sbcl)
2692 (native-inputs
2693 `(("fiveam" ,sbcl-fiveam)))
2694 (home-page "https://github.com/hankhero/cl-json")
2695 (synopsis "JSON encoder and decoder for Common-Lisp")
2696 (description
2697 "@command{cl-json} provides an encoder of Lisp objects to JSON format
2698 and a corresponding decoder of JSON data to Lisp objects. Both the encoder
2699 and the decoder are highly customizable; at the same time, the default
2700 settings ensure a very simple mode of operation, similar to that provided by
2701 @command{yason} or @command{st-json}.")
2702 (license license:expat))))
2703
2704 (define-public cl-json
2705 (sbcl-package->cl-source-package sbcl-cl-json))
2706
2707 (define-public ecl-cl-json
2708 (sbcl-package->ecl-package sbcl-cl-json))
2709
2710 (define-public sbcl-unix-opts
2711 (package
2712 (name "sbcl-unix-opts")
2713 (version "0.1.7")
2714 (source
2715 (origin
2716 (method git-fetch)
2717 (uri (git-reference
2718 (url "https://github.com/libre-man/unix-opts")
2719 (commit version)))
2720 (file-name (git-file-name "unix-opts" version))
2721 (sha256
2722 (base32
2723 "08djdi1ard09fijb7w9bdmhmwd98b1hzmcnjw9fqjiqa0g3b44rr"))))
2724 (build-system asdf-build-system/sbcl)
2725 (home-page "https://github.com/hankhero/cl-json")
2726 (synopsis "Unix-style command line options parser")
2727 (description
2728 "This is a minimalistic parser of command line options. The main
2729 advantage of the library is the ability to concisely define command line
2730 options once and then use this definition for parsing and extraction of
2731 command line arguments, as well as printing description of command line
2732 options (you get --help for free). This way you don't need to repeat
2733 yourself. Also, @command{unix-opts} doesn't depend on anything and allows to
2734 precisely control behavior of the parser via Common Lisp restarts.")
2735 (license license:expat)))
2736
2737 (define-public cl-unix-opts
2738 (sbcl-package->cl-source-package sbcl-unix-opts))
2739
2740 (define-public ecl-unix-opts
2741 (sbcl-package->ecl-package sbcl-unix-opts))
2742
2743 (define-public sbcl-trivial-garbage
2744 (package
2745 (name "sbcl-trivial-garbage")
2746 (version "0.21")
2747 (source
2748 (origin
2749 (method git-fetch)
2750 (uri (git-reference
2751 (url "https://github.com/trivial-garbage/trivial-garbage.git")
2752 (commit (string-append "v" version))))
2753 (file-name (git-file-name "trivial-garbage" version))
2754 (sha256
2755 (base32 "0122jicfg7pca1wxw8zak1n92h5friqy60988ns0ysksj3fphw9n"))))
2756 (build-system asdf-build-system/sbcl)
2757 (native-inputs
2758 `(("rt" ,sbcl-rt)))
2759 (home-page "https://common-lisp.net/project/trivial-garbage/")
2760 (synopsis "Portable GC-related APIs for Common Lisp")
2761 (description "@command{trivial-garbage} provides a portable API to
2762 finalizers, weak hash-tables and weak pointers on all major implementations of
2763 the Common Lisp programming language.")
2764 (license license:public-domain)))
2765
2766 (define-public cl-trivial-garbage
2767 (sbcl-package->cl-source-package sbcl-trivial-garbage))
2768
2769 (define-public ecl-trivial-garbage
2770 (sbcl-package->ecl-package sbcl-trivial-garbage))
2771
2772 (define-public sbcl-closer-mop
2773 (let ((commit "fac29ce90e3a46e1fc6cf182190e193526fa9dbc"))
2774 (package
2775 (name "sbcl-closer-mop")
2776 (version (git-version "1.0.0" "1" commit))
2777 (source
2778 (origin
2779 (method git-fetch)
2780 (uri (git-reference
2781 (url "https://github.com/pcostanza/closer-mop")
2782 (commit commit)))
2783 (sha256
2784 (base32 "0hvh77y869h8fg9di5snyg85fxq6fdh9gj1igmx1g6j6j5x915dl"))
2785 (file-name (git-file-name "closer-mop" version ))))
2786 (build-system asdf-build-system/sbcl)
2787 (home-page "https://github.com/pcostanza/closer-mop")
2788 (synopsis "Rectifies absent or incorrect CLOS MOP features")
2789 (description "Closer to MOP is a compatibility layer that rectifies many
2790 of the absent or incorrect CLOS MOP features across a broad range of Common
2791 Lisp implementations.")
2792 (license license:expat))))
2793
2794 (define-public cl-closer-mop
2795 (sbcl-package->cl-source-package sbcl-closer-mop))
2796
2797 (define-public ecl-closer-mop
2798 (sbcl-package->ecl-package sbcl-closer-mop))
2799
2800 (define sbcl-cl-cffi-gtk-boot0
2801 (let ((commit "29443c5aaca975709df8025c4649366d882033cb"))
2802 (package
2803 (name "sbcl-cl-cffi-gtk-boot0")
2804 (version (git-version "0.11.2" "1" commit))
2805 (source
2806 (origin
2807 (method git-fetch)
2808 (uri (git-reference
2809 (url "https://github.com/Ferada/cl-cffi-gtk/")
2810 (commit commit)))
2811 (file-name (git-file-name "cl-cffi-gtk" version))
2812 (sha256
2813 (base32
2814 "0f6s92sf8xyzh1yksqx8bsy1sv0zmy0c13j3b8bavaba5hlxpxah"))))
2815 (build-system asdf-build-system/sbcl)
2816 (inputs
2817 `(("iterate" ,sbcl-iterate)
2818 ("cffi" ,sbcl-cffi)
2819 ("trivial-features" ,sbcl-trivial-features)))
2820 (home-page "https://github.com/Ferada/cl-cffi-gtk/")
2821 (synopsis "Common Lisp binding for GTK+3")
2822 (description
2823 "@command{cl-cffi-gtk} is a Lisp binding to GTK+ 3 (GIMP Toolkit) which
2824 is a library for creating graphical user interfaces.")
2825 (license license:lgpl3))))
2826
2827 (define-public sbcl-cl-cffi-gtk-glib
2828 (package
2829 (inherit sbcl-cl-cffi-gtk-boot0)
2830 (name "sbcl-cl-cffi-gtk-glib")
2831 (inputs
2832 `(("glib" ,glib)
2833 ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
2834 (arguments
2835 `(#:asd-file "glib/cl-cffi-gtk-glib.asd"
2836 #:phases
2837 (modify-phases %standard-phases
2838 (add-after 'unpack 'fix-paths
2839 (lambda* (#:key inputs #:allow-other-keys)
2840 (substitute* "glib/glib.init.lisp"
2841 (("libglib|libgthread" all) (string-append
2842 (assoc-ref inputs "glib") "/lib/" all))))))))))
2843
2844 (define-public sbcl-cl-cffi-gtk-gobject
2845 (package
2846 (inherit sbcl-cl-cffi-gtk-boot0)
2847 (name "sbcl-cl-cffi-gtk-gobject")
2848 (inputs
2849 `(("glib" ,glib)
2850 ("cl-cffi-gtk-glib" ,sbcl-cl-cffi-gtk-glib)
2851 ("trivial-garbage" ,sbcl-trivial-garbage)
2852 ("bordeaux-threads" ,sbcl-bordeaux-threads)
2853 ("closer-mop" ,sbcl-closer-mop)
2854 ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
2855 (arguments
2856 `(#:asd-file "gobject/cl-cffi-gtk-gobject.asd"
2857 #:phases
2858 (modify-phases %standard-phases
2859 (add-after 'unpack 'fix-paths
2860 (lambda* (#:key inputs #:allow-other-keys)
2861 (substitute* "gobject/gobject.init.lisp"
2862 (("libgobject" all) (string-append
2863 (assoc-ref inputs "glib") "/lib/" all))))))))))
2864
2865 (define-public sbcl-cl-cffi-gtk-gio
2866 (package
2867 (inherit sbcl-cl-cffi-gtk-boot0)
2868 (name "sbcl-cl-cffi-gtk-gio")
2869 (inputs
2870 `(("glib" ,glib)
2871 ("cl-cffi-gtk-glib" ,sbcl-cl-cffi-gtk-glib)
2872 ("cl-cffi-gtk-gobject" ,sbcl-cl-cffi-gtk-gobject)
2873 ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
2874 (arguments
2875 `(#:asd-file "gio/cl-cffi-gtk-gio.asd"
2876 #:phases
2877 (modify-phases %standard-phases
2878 (add-after 'unpack 'fix-paths
2879 (lambda* (#:key inputs #:allow-other-keys)
2880 (substitute* "gio/gio.init.lisp"
2881 (("libgio" all)
2882 (string-append
2883 (assoc-ref inputs "glib") "/lib/" all))))))))))
2884
2885 (define-public sbcl-cl-cffi-gtk-cairo
2886 (package
2887 (inherit sbcl-cl-cffi-gtk-boot0)
2888 (name "sbcl-cl-cffi-gtk-cairo")
2889 (inputs
2890 `(("cairo" ,cairo)
2891 ("cl-cffi-gtk-glib" ,sbcl-cl-cffi-gtk-glib)
2892 ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
2893 (arguments
2894 `(#:asd-file "cairo/cl-cffi-gtk-cairo.asd"
2895 #:phases
2896 (modify-phases %standard-phases
2897 (add-after 'unpack 'fix-paths
2898 (lambda* (#:key inputs #:allow-other-keys)
2899 (substitute* "cairo/cairo.init.lisp"
2900 (("libcairo" all)
2901 (string-append
2902 (assoc-ref inputs "cairo") "/lib/" all))))))))))
2903
2904 (define-public sbcl-cl-cffi-gtk-pango
2905 (package
2906 (inherit sbcl-cl-cffi-gtk-boot0)
2907 (name "sbcl-cl-cffi-gtk-pango")
2908 (inputs
2909 `(("pango" ,pango)
2910 ("cl-cffi-gtk-glib" ,sbcl-cl-cffi-gtk-glib)
2911 ("cl-cffi-gtk-gobject" ,sbcl-cl-cffi-gtk-gobject)
2912 ("cl-cffi-gtk-cairo" ,sbcl-cl-cffi-gtk-cairo)
2913 ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
2914 (arguments
2915 `(#:asd-file "pango/cl-cffi-gtk-pango.asd"
2916 #:phases
2917 (modify-phases %standard-phases
2918 (add-after 'unpack 'fix-paths
2919 (lambda* (#:key inputs #:allow-other-keys)
2920 (substitute* "pango/pango.init.lisp"
2921 (("libpango" all)
2922 (string-append
2923 (assoc-ref inputs "pango") "/lib/" all))))))))))
2924
2925 (define-public sbcl-cl-cffi-gtk-gdk-pixbuf
2926 (package
2927 (inherit sbcl-cl-cffi-gtk-boot0)
2928 (name "sbcl-cl-cffi-gtk-gdk-pixbuf")
2929 (inputs
2930 `(("gdk-pixbuf" ,gdk-pixbuf)
2931 ("cl-cffi-gtk-gobject" ,sbcl-cl-cffi-gtk-gobject)
2932 ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
2933 (arguments
2934 `(#:asd-file "gdk-pixbuf/cl-cffi-gtk-gdk-pixbuf.asd"
2935 #:phases
2936 (modify-phases %standard-phases
2937 (add-after 'unpack 'fix-paths
2938 (lambda* (#:key inputs #:allow-other-keys)
2939 (substitute* "gdk-pixbuf/gdk-pixbuf.init.lisp"
2940 (("libgdk_pixbuf" all)
2941 (string-append
2942 (assoc-ref inputs "gdk-pixbuf") "/lib/" all))))))))))
2943
2944 (define-public sbcl-cl-cffi-gtk-gdk
2945 (package
2946 (inherit sbcl-cl-cffi-gtk-boot0)
2947 (name "sbcl-cl-cffi-gtk-gdk")
2948 (inputs
2949 `(("gtk" ,gtk+)
2950 ("cl-cffi-gtk-gobject" ,sbcl-cl-cffi-gtk-gobject)
2951 ("cl-cffi-gtk-gio" ,sbcl-cl-cffi-gtk-gio)
2952 ("cl-cffi-gtk-gdk-pixbuf" ,sbcl-cl-cffi-gtk-gdk-pixbuf)
2953 ("cl-cffi-gtk-cairo" ,sbcl-cl-cffi-gtk-cairo)
2954 ("cl-cffi-gtk-pango" ,sbcl-cl-cffi-gtk-pango)
2955 ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
2956 (arguments
2957 `(#:asd-file "gdk/cl-cffi-gtk-gdk.asd"
2958 #:phases
2959 (modify-phases %standard-phases
2960 (add-after 'unpack 'fix-paths
2961 (lambda* (#:key inputs #:allow-other-keys)
2962 (substitute* "gdk/gdk.init.lisp"
2963 (("libgdk" all)
2964 (string-append
2965 (assoc-ref inputs "gtk") "/lib/" all)))
2966 (substitute* "gdk/gdk.package.lisp"
2967 (("libgtk" all)
2968 (string-append
2969 (assoc-ref inputs "gtk") "/lib/" all))))))))))
2970
2971 (define-public sbcl-cl-cffi-gtk
2972 (package
2973 (inherit sbcl-cl-cffi-gtk-boot0)
2974 (name "sbcl-cl-cffi-gtk")
2975 (inputs
2976 `(("cl-cffi-gtk-glib" ,sbcl-cl-cffi-gtk-glib)
2977 ("cl-cffi-gtk-gobject" ,sbcl-cl-cffi-gtk-gobject)
2978 ("cl-cffi-gtk-gio" ,sbcl-cl-cffi-gtk-gio)
2979 ("cl-cffi-gtk-gdk" ,sbcl-cl-cffi-gtk-gdk)
2980 ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
2981 (native-inputs
2982 `(("fiveam" ,sbcl-fiveam)))
2983 (arguments
2984 `(#:asd-file "gtk/cl-cffi-gtk.asd"
2985 #:test-asd-file "test/cl-cffi-gtk-test.asd"
2986 ;; TODO: Tests fail with memory fault.
2987 ;; See https://github.com/Ferada/cl-cffi-gtk/issues/24.
2988 #:tests? #f))))
2989
2990 (define-public cl-cffi-gtk
2991 (sbcl-package->cl-source-package sbcl-cl-cffi-gtk))
2992
2993 (define-public sbcl-cl-webkit
2994 (let ((commit "cd2a9008e0c152e54755e8a7f07b050fe36bab31"))
2995 (package
2996 (name "sbcl-cl-webkit")
2997 (version (git-version "2.4" "1" commit))
2998 (source
2999 (origin
3000 (method git-fetch)
3001 (uri (git-reference
3002 (url "https://github.com/jmercouris/cl-webkit")
3003 (commit commit)))
3004 (file-name (git-file-name "cl-webkit" version))
3005 (sha256
3006 (base32
3007 "0f5lyn9i7xrn3g1bddga377mcbawkbxydijpg389q4n04gqj0vwf"))))
3008 (build-system asdf-build-system/sbcl)
3009 (inputs
3010 `(("cffi" ,sbcl-cffi)
3011 ("cl-cffi-gtk" ,sbcl-cl-cffi-gtk)
3012 ("webkitgtk" ,webkitgtk)))
3013 (arguments
3014 `(#:asd-file "webkit2/cl-webkit2.asd"
3015 #:asd-system-name "cl-webkit2"
3016 #:phases
3017 (modify-phases %standard-phases
3018 (add-after 'unpack 'fix-paths
3019 (lambda* (#:key inputs #:allow-other-keys)
3020 (substitute* "webkit2/webkit2.init.lisp"
3021 (("libwebkit2gtk" all)
3022 (string-append
3023 (assoc-ref inputs "webkitgtk") "/lib/" all))))))))
3024 (home-page "https://github.com/jmercouris/cl-webkit")
3025 (synopsis "Binding to WebKitGTK+ for Common Lisp")
3026 (description
3027 "@command{cl-webkit} is a binding to WebKitGTK+ for Common Lisp,
3028 currently targeting WebKit version 2. The WebKitGTK+ library adds web
3029 browsing capabilities to an application, leveraging the full power of the
3030 WebKit browsing engine.")
3031 (license license:expat))))
3032
3033 (define-public cl-webkit
3034 (sbcl-package->cl-source-package sbcl-cl-webkit))
3035
3036 (define-public sbcl-lparallel
3037 (package
3038 (name "sbcl-lparallel")
3039 (version "2.8.4")
3040 (source
3041 (origin
3042 (method git-fetch)
3043 (uri (git-reference
3044 (url "https://github.com/lmj/lparallel/")
3045 (commit (string-append "lparallel-" version))))
3046 (file-name (git-file-name "lparallel" version))
3047 (sha256
3048 (base32
3049 "0g0aylrbbrqsz0ahmwhvnk4cmc2931fllbpcfgzsprwnqqd7vwq9"))))
3050 (build-system asdf-build-system/sbcl)
3051 (inputs
3052 `(("alexandria" ,sbcl-alexandria)
3053 ("bordeaux-threads" ,sbcl-bordeaux-threads)
3054 ("trivial-garbage" ,sbcl-trivial-garbage)))
3055 (home-page "https://lparallel.org/")
3056 (synopsis "Parallelism for Common Lisp")
3057 (description
3058 "@command{lparallel} is a library for parallel programming in Common
3059 Lisp, featuring:
3060
3061 @itemize
3062 @item a simple model of task submission with receiving queue,
3063 @item constructs for expressing fine-grained parallelism,
3064 @item asynchronous condition handling across thread boundaries,
3065 @item parallel versions of map, reduce, sort, remove, and many others,
3066 @item promises, futures, and delayed evaluation constructs,
3067 @item computation trees for parallelizing interconnected tasks,
3068 @item bounded and unbounded FIFO queues,
3069 @item high and low priority tasks,
3070 @item task killing by category,
3071 @item integrated timeouts.
3072 @end itemize\n")
3073 (license license:expat)))
3074
3075 (define-public cl-lparallel
3076 (sbcl-package->cl-source-package sbcl-lparallel))
3077
3078 (define-public ecl-lparallel
3079 (sbcl-package->ecl-package sbcl-lparallel))
3080
3081 (define-public sbcl-cl-markup
3082 (let ((commit "e0eb7debf4bdff98d1f49d0f811321a6a637b390"))
3083 (package
3084 (name "sbcl-cl-markup")
3085 (version (git-version "0.1" "1" commit))
3086 (source
3087 (origin
3088 (method git-fetch)
3089 (uri (git-reference
3090 (url "https://github.com/arielnetworks/cl-markup/")
3091 (commit commit)))
3092 (file-name (git-file-name "cl-markup" version))
3093 (sha256
3094 (base32
3095 "10l6k45971dl13fkdmva7zc6i453lmq9j4xax2ci6pjzlc6xjhp7"))))
3096 (build-system asdf-build-system/sbcl)
3097 (home-page "https://github.com/arielnetworks/cl-markup/")
3098 (synopsis "Markup generation library for Common Lisp")
3099 (description
3100 "A modern markup generation library for Common Lisp that features:
3101
3102 @itemize
3103 @item Fast (even faster through compiling the code)
3104 @item Safety
3105 @item Support for multiple document types (markup, xml, html, html5, xhtml)
3106 @item Output with doctype
3107 @item Direct output to stream
3108 @end itemize\n")
3109 (license license:lgpl3+))))
3110
3111 (define-public cl-markup
3112 (sbcl-package->cl-source-package sbcl-cl-markup))
3113
3114 (define-public ecl-cl-markup
3115 (sbcl-package->ecl-package sbcl-cl-markup))
3116
3117 (define-public sbcl-cl-css
3118 (let ((commit "8fe654c8f0cf95b300718101cce4feb517f78e2f"))
3119 (package
3120 (name "sbcl-cl-css")
3121 (version (git-version "0.1" "1" commit))
3122 (source
3123 (origin
3124 (method git-fetch)
3125 (uri (git-reference
3126 (url "https://github.com/inaimathi/cl-css/")
3127 (commit commit)))
3128 (file-name (git-file-name "cl-css" version))
3129 (sha256
3130 (base32
3131 "1lc42zi2sw11fl2589sc19nr5sd2p0wy7wgvgwaggxa5f3ajhsmd"))))
3132 (build-system asdf-build-system/sbcl)
3133 (home-page "https://github.com/inaimathi/cl-css/")
3134 (synopsis "Non-validating, inline CSS generator for Common Lisp")
3135 (description
3136 "This is a dead-simple, non validating, inline CSS generator for Common
3137 Lisp. Its goals are axiomatic syntax, simple implementation to support
3138 portability, and boilerplate reduction in CSS.")
3139 (license license:expat))))
3140
3141 (define-public cl-css
3142 (sbcl-package->cl-source-package sbcl-cl-css))
3143
3144 (define-public ecl-cl-css
3145 (sbcl-package->ecl-package sbcl-cl-css))
3146
3147 (define-public sbcl-portable-threads
3148 (let ((commit "c0e61a1faeb0583c80fd3f20b16cc4c555226920"))
3149 (package
3150 (name "sbcl-portable-threads")
3151 (version (git-version "2.3" "1" commit))
3152 (source
3153 (origin
3154 (method git-fetch)
3155 (uri (git-reference
3156 (url "https://github.com/binghe/portable-threads/")
3157 (commit commit)))
3158 (file-name (git-file-name "portable-threads" version))
3159 (sha256
3160 (base32
3161 "03fmxyarc0xf4kavwkfa0a2spkyfrz6hbgbi9y4q7ny5aykdyfaq"))))
3162 (build-system asdf-build-system/sbcl)
3163 (arguments
3164 `(;; Tests seem broken.
3165 #:tests? #f))
3166 (home-page "https://github.com/binghe/portable-threads")
3167 (synopsis "Portable threads (and scheduled and periodic functions) API for Common Lisp")
3168 (description
3169 "Portable Threads (and Scheduled and Periodic Functions) API for Common
3170 Lisp (from GBBopen project).")
3171 (license license:asl2.0))))
3172
3173 (define-public cl-portable-threads
3174 (sbcl-package->cl-source-package sbcl-portable-threads))
3175
3176 (define-public ecl-portable-threada
3177 (sbcl-package->ecl-package sbcl-portable-threads))
3178
3179 (define-public sbcl-usocket-boot0
3180 ;; usocket's test rely on usocket-server which depends on usocket itself.
3181 ;; We break this cyclic dependency with -boot0 that packages usocket.
3182 (let ((commit "86e7efbfe50101931edf4b67cdcfa7e221ecfde9"))
3183 (package
3184 (name "sbcl-usocket-boot0")
3185 (version (git-version "0.7.1" "1" commit))
3186 (source
3187 (origin
3188 (method git-fetch)
3189 (uri (git-reference
3190 (url "https://github.com/usocket/usocket/")
3191 (commit commit)))
3192 (file-name (git-file-name "usocket" version))
3193 (sha256
3194 (base32
3195 "1lk6ipakrib7kdgzw44hrgmls9akp5pz4h35yynw0k5zwmmq6374"))))
3196 (build-system asdf-build-system/sbcl)
3197 (inputs
3198 `(("split-sequence" ,sbcl-split-sequence)))
3199 (arguments
3200 `(#:tests? #f
3201 #:asd-system-name "usocket"))
3202 (home-page "https://common-lisp.net/project/usocket/")
3203 (synopsis "Universal socket library for Common Lisp (server side)")
3204 (description
3205 "This library strives to provide a portable TCP/IP and UDP/IP socket
3206 interface for as many Common Lisp implementations as possible, while keeping
3207 the abstraction and portability layer as thin as possible.")
3208 (license license:expat))))
3209
3210 (define-public sbcl-usocket-server
3211 (package
3212 (inherit sbcl-usocket-boot0)
3213 (name "sbcl-usocket-server")
3214 (inputs
3215 `(("usocket" ,sbcl-usocket-boot0)
3216 ("portable-threads" ,sbcl-portable-threads)))
3217 (arguments
3218 '(#:asd-system-name "usocket-server"))
3219 (synopsis "Universal socket library for Common Lisp (server side)")))
3220
3221 (define-public cl-usocket-server
3222 (sbcl-package->cl-source-package sbcl-usocket-server))
3223
3224 (define-public ecl-socket-server
3225 (sbcl-package->ecl-package sbcl-usocket-server))
3226
3227 (define-public sbcl-usocket
3228 (package
3229 (inherit sbcl-usocket-boot0)
3230 (name "sbcl-usocket")
3231 (arguments
3232 ;; FIXME: Tests need network access?
3233 `(#:tests? #f))
3234 (native-inputs
3235 ;; Testing only.
3236 `(("usocket-server" ,sbcl-usocket-server)
3237 ("rt" ,sbcl-rt)))))
3238
3239 (define-public cl-usocket
3240 (sbcl-package->cl-source-package sbcl-usocket))
3241
3242 (define-public ecl-socket
3243 (sbcl-package->ecl-package sbcl-usocket))
3244
3245 (define-public sbcl-s-xml
3246 (package
3247 (name "sbcl-s-xml")
3248 (version "3")
3249 (source
3250 (origin
3251 (method url-fetch)
3252 (uri "https://common-lisp.net/project/s-xml/s-xml.tgz")
3253 (sha256
3254 (base32
3255 "061qcr0dzshsa38s5ma4ay924cwak2nq9gy59dw6v9p0qb58nzjf"))))
3256 (build-system asdf-build-system/sbcl)
3257 (home-page "https://common-lisp.net/project/s-xml/")
3258 (synopsis "Simple XML parser implemented in Common Lisp")
3259 (description
3260 "S-XML is a simple XML parser implemented in Common Lisp. This XML
3261 parser implementation has the following features:
3262
3263 @itemize
3264 @item It works (handling many common XML usages).
3265 @item It is very small (the core is about 700 lines of code, including
3266 comments and whitespace).
3267 @item It has a core API that is simple, efficient and pure functional, much
3268 like that from SSAX (see also http://ssax.sourceforge.net).
3269 @item It supports different DOM models: an XSML-based one, an LXML-based one
3270 and a classic xml-element struct based one.
3271 @item It is reasonably time and space efficient (internally avoiding garbage
3272 generatation as much as possible).
3273 @item It does support CDATA.
3274 @item It should support the same character sets as your Common Lisp
3275 implementation.
3276 @item It does support XML name spaces.
3277 @end itemize
3278
3279 This XML parser implementation has the following limitations:
3280
3281 @itemize
3282 @item It does not support any special tags (like processing instructions).
3283 @item It is not validating, even skips DTD's all together.
3284 @end itemize\n")
3285 (license license:lgpl3+)))
3286
3287 (define-public cl-s-xml
3288 (sbcl-package->cl-source-package sbcl-s-xml))
3289
3290 (define-public ecl-s-xml
3291 (sbcl-package->ecl-package sbcl-s-xml))
3292
3293 (define-public sbcl-s-xml-rpc
3294 (package
3295 (name "sbcl-s-xml-rpc")
3296 (version "7")
3297 (source
3298 (origin
3299 (method url-fetch)
3300 (uri "https://common-lisp.net/project/s-xml-rpc/s-xml-rpc.tgz")
3301 (sha256
3302 (base32
3303 "02z7k163d51v0pzk8mn1xb6h5s6x64gjqkslhwm3a5x26k2gfs11"))))
3304 (build-system asdf-build-system/sbcl)
3305 (inputs
3306 `(("s-xml" ,sbcl-s-xml)))
3307 (home-page "https://common-lisp.net/project/s-xml-rpc/")
3308 (synopsis "Implementation of XML-RPC in Common Lisp for both client and server")
3309 (description
3310 "S-XML-RPC is an implementation of XML-RPC in Common Lisp for both
3311 client and server.")
3312 (license license:lgpl3+)))
3313
3314 (define-public cl-s-xml-rpc
3315 (sbcl-package->cl-source-package sbcl-s-xml-rpc))
3316
3317 (define-public ecl-s-xml-rpc
3318 (sbcl-package->ecl-package sbcl-s-xml-rpc))
3319
3320 (define-public sbcl-trivial-clipboard
3321 (let ((commit "5af3415d1484e6d69a1b5c178f24680d9fd01796"))
3322 (package
3323 (name "sbcl-trivial-clipboard")
3324 (version (git-version "0.0.0.0" "2" commit))
3325 (source
3326 (origin
3327 (method git-fetch)
3328 (uri (git-reference
3329 (url "https://github.com/snmsts/trivial-clipboard")
3330 (commit commit)))
3331 (file-name (git-file-name "trivial-clipboard" version))
3332 (sha256
3333 (base32
3334 "1gb515z5yq6h5548pb1fwhmb0hhq1ssyb78pvxh4alq799xipxs9"))))
3335 (build-system asdf-build-system/sbcl)
3336 (inputs
3337 `(("xclip" ,xclip)))
3338 (native-inputs
3339 `(("fiveam" ,sbcl-fiveam)))
3340 (arguments
3341 `(#:phases
3342 (modify-phases %standard-phases
3343 (add-after 'unpack 'fix-paths
3344 (lambda* (#:key inputs #:allow-other-keys)
3345 (substitute* "src/text.lisp"
3346 (("\\(executable-find \"xclip\"\\)")
3347 (string-append "(executable-find \""
3348 (assoc-ref inputs "xclip")
3349 "/bin/xclip\")"))))))))
3350 (home-page "https://github.com/snmsts/trivial-clipboard")
3351 (synopsis "Access system clipboard in Common Lisp")
3352 (description
3353 "@command{trivial-clipboard} gives access to the system clipboard.")
3354 (license license:expat))))
3355
3356 (define-public cl-trivial-clipboard
3357 (sbcl-package->cl-source-package sbcl-trivial-clipboard))
3358
3359 (define-public ecl-trivial-clipboard
3360 (sbcl-package->ecl-package sbcl-trivial-clipboard))
3361
3362 (define-public sbcl-trivial-backtrace
3363 (let ((commit "ca81c011b86424a381a7563cea3b924f24e6fbeb")
3364 (revision "1"))
3365 (package
3366 (name "sbcl-trivial-backtrace")
3367 (version (git-version "0.0.0" revision commit))
3368 (source
3369 (origin
3370 (method git-fetch)
3371 (uri (git-reference
3372 (url "https://github.com/gwkkwg/trivial-backtrace.git")
3373 (commit commit)))
3374 (file-name (git-file-name "trivial-backtrace" version))
3375 (sha256
3376 (base32 "10p41p43skj6cimdg8skjy7372s8v2xpkg8djjy0l8rm45i654k1"))))
3377 (build-system asdf-build-system/sbcl)
3378 (inputs
3379 `(("sbcl-lift" ,sbcl-lift)))
3380 (arguments
3381 `(#:phases
3382 (modify-phases %standard-phases
3383 (add-after 'check 'delete-test-results
3384 (lambda* (#:key outputs #:allow-other-keys)
3385 (let ((test-results (string-append (assoc-ref outputs "out")
3386 "/share/common-lisp/"
3387 (%lisp-type) "-source"
3388 "/trivial-backtrace"
3389 "/test-results")))
3390 (when (file-exists? test-results)
3391 (delete-file-recursively test-results)))
3392 #t)))))
3393 (home-page "https://common-lisp.net/project/trivial-backtrace/")
3394 (synopsis "Portable simple API to work with backtraces in Common Lisp")
3395 (description
3396 "On of the many things that didn't quite get into the Common Lisp
3397 standard was how to get a Lisp to output its call stack when something has
3398 gone wrong. As such, each Lisp has developed its own notion of what to
3399 display, how to display it, and what sort of arguments can be used to
3400 customize it. @code{trivial-backtrace} is a simple solution to generating a
3401 backtrace portably.")
3402 (license license:expat))))
3403
3404 (define-public cl-trivial-backtrace
3405 (sbcl-package->cl-source-package sbcl-trivial-backtrace))
3406
3407 (define-public sbcl-rfc2388
3408 (let ((commit "591bcf7e77f2c222c43953a80f8c297751dc0c4e")
3409 (revision "1"))
3410 (package
3411 (name "sbcl-rfc2388")
3412 (version (git-version "0.0.0" revision commit))
3413 (source
3414 (origin
3415 (method git-fetch)
3416 (uri (git-reference
3417 (url "https://github.com/jdz/rfc2388.git")
3418 (commit commit)))
3419 (file-name (git-file-name "rfc2388" version))
3420 (sha256
3421 (base32 "0phh5n3clhl9ji8jaxrajidn22d3f0aq87mlbfkkxlnx2pnw694k"))))
3422 (build-system asdf-build-system/sbcl)
3423 (home-page "https://github.com/jdz/rfc2388/")
3424 (synopsis "An implementation of RFC 2388 in Common Lisp")
3425 (description
3426 "This package contains an implementation of RFC 2388, which is used to
3427 process form data posted with HTTP POST method using enctype
3428 \"multipart/form-data\".")
3429 (license license:bsd-2))))
3430
3431 (define-public cl-rfc2388
3432 (sbcl-package->cl-source-package sbcl-rfc2388))
3433
3434 (define-public sbcl-md5
3435 (package
3436 (name "sbcl-md5")
3437 (version "2.0.4")
3438 (source
3439 (origin
3440 (method url-fetch)
3441 (uri (string-append
3442 "https://github.com/pmai/md5/archive/release-" version ".tar.gz"))
3443 (sha256
3444 (base32 "19yl9n0pjdz5gw4qi711lka97xcd9f81ylg434hk7jwn9f2s6w11"))))
3445 (build-system asdf-build-system/sbcl)
3446 (home-page "https://github.com/pmai/md5")
3447 (synopsis
3448 "Common Lisp implementation of the MD5 Message-Digest Algorithm (RFC 1321)")
3449 (description
3450 "This package implements The MD5 Message-Digest Algorithm, as defined in
3451 RFC 1321 by R. Rivest, published April 1992.")
3452 (license license:public-domain)))
3453
3454 (define-public cl-md5
3455 (sbcl-package->cl-source-package sbcl-md5))
3456
3457 (define-public sbcl-cl+ssl
3458 (let ((commit "141ae91416bc40f1618dc07e48429b84388aa599")
3459 (revision "1"))
3460 (package
3461 (name "sbcl-cl+ssl")
3462 (version (git-version "0.0.0" revision commit))
3463 (source
3464 (origin
3465 (method git-fetch)
3466 (uri (git-reference
3467 (url "https://github.com/cl-plus-ssl/cl-plus-ssl.git")
3468 (commit commit)))
3469 (file-name (git-file-name "cl+ssl" version))
3470 (sha256
3471 (base32 "1s0hg1h9sf8q89v0yrxmzg5f5sng29rgx3n21r9h9yql8351myan"))))
3472 (build-system asdf-build-system/sbcl)
3473 (arguments
3474 '(#:phases
3475 (modify-phases %standard-phases
3476 (add-after 'unpack 'fix-paths
3477 (lambda* (#:key inputs #:allow-other-keys)
3478 (substitute* "src/reload.lisp"
3479 (("libssl.so" all)
3480 (string-append
3481 (assoc-ref inputs "openssl") "/lib/" all))))))))
3482 (inputs
3483 `(("openssl" ,openssl)
3484 ("sbcl-cffi" ,sbcl-cffi)
3485 ("sbcl-trivial-gray-streams" ,sbcl-trivial-gray-streams)
3486 ("sbcl-flexi-streams" ,sbcl-flexi-streams)
3487 ("sbcl-bordeaux-threads" ,sbcl-bordeaux-threads)
3488 ("sbcl-trivial-garbage" ,sbcl-trivial-garbage)
3489 ("sbcl-alexandria" ,sbcl-alexandria)
3490 ("sbcl-trivial-features" ,sbcl-trivial-features)))
3491 (home-page "http://common-lisp.net/project/cl-plus-ssl/")
3492 (synopsis "Common Lisp bindings to OpenSSL")
3493 (description
3494 "This library is a fork of SSL-CMUCL. The original SSL-CMUCL source
3495 code was written by Eric Marsden and includes contributions by Jochen Schmidt.
3496 Development into CL+SSL was done by David Lichteblau.")
3497 (license license:expat))))
3498
3499 (define-public cl-cl+ssl
3500 (sbcl-package->cl-source-package sbcl-cl+ssl))
3501
3502 (define-public sbcl-kmrcl
3503 (let ((version "1.109.0")
3504 (commit "5260068b2eb735af6796740c2db4955afac21636")
3505 (revision "1"))
3506 (package
3507 (name "sbcl-kmrcl")
3508 (version (git-version version revision commit))
3509 (source
3510 (origin
3511 (method git-fetch)
3512 (uri (git-reference
3513 (url "http://git.kpe.io/kmrcl.git/")
3514 (commit commit)))
3515 (file-name (git-file-name name version))
3516 (sha256
3517 (base32 "1va7xjgzfv674bpsli674i7zj3f7wg5kxic41kz18r6hh4n52dfv"))))
3518 (build-system asdf-build-system/sbcl)
3519 (arguments
3520 ;; Tests fail with: :FORCE and :FORCE-NOT arguments not allowed in a
3521 ;; nested call to ASDF/OPERATE:OPERATE unless identically to toplevel
3522 '(#:tests? #f))
3523 (inputs
3524 `(("sbcl-rt" ,sbcl-rt)))
3525 (home-page "http://files.kpe.io/kmrcl/")
3526 (synopsis "General utilities for Common Lisp programs")
3527 (description
3528 "KMRCL is a collection of utilities used by a number of Kevin
3529 Rosenberg's CL packages.")
3530 (license license:llgpl))))
3531
3532 (define-public cl-kmrcl
3533 (sbcl-package->cl-source-package sbcl-kmrcl))
3534
3535 (define-public sbcl-cl-base64
3536 (let ((version "3.3.3"))
3537 (package
3538 (name "sbcl-cl-base64")
3539 (version version)
3540 (source
3541 (origin
3542 (method git-fetch)
3543 (uri (git-reference
3544 (url "http://git.kpe.io/cl-base64.git")
3545 (commit (string-append "v" version))))
3546 (file-name (git-file-name "cl-base64" version))
3547 (sha256
3548 (base32 "1dw6j7n6gsd2qa0p0rbsjxj00acxx3i9ca1qkgl0liy8lpnwkypl"))))
3549 (build-system asdf-build-system/sbcl)
3550 (arguments
3551 ;; Tests fail with: :FORCE and :FORCE-NOT arguments not allowed
3552 ;; in a nested call to ASDF/OPERATE:OPERATE unless identically
3553 ;; to toplevel
3554 '(#:tests? #f))
3555 (inputs
3556 `(("sbcl-ptester" ,sbcl-ptester)
3557 ("sbcl-kmrcl" ,sbcl-kmrcl)))
3558 (home-page "http://files.kpe.io/cl-base64/")
3559 (synopsis
3560 "Common Lisp package to encode and decode base64 with URI support")
3561 (description
3562 "This package provides highly optimized base64 encoding and decoding.
3563 Besides conversion to and from strings, integer conversions are supported.
3564 Encoding with Uniform Resource Identifiers is supported by using a modified
3565 encoding table that uses only URI-compatible characters.")
3566 (license license:bsd-3))))
3567
3568 (define-public cl-base64
3569 (sbcl-package->cl-source-package sbcl-cl-base64))
3570
3571 (define-public sbcl-chunga
3572 (package
3573 (name "sbcl-chunga")
3574 (version "1.1.7")
3575 (source
3576 (origin
3577 (method git-fetch)
3578 (uri (git-reference
3579 (url "https://github.com/edicl/chunga.git")
3580 (commit (string-append "v" version))))
3581 (file-name (git-file-name name version))
3582 (sha256
3583 (base32 "0jzn3nyb3f22gm983rfk99smqs3mhb9ivjmasvhq9qla5cl9pyhd"))))
3584 (build-system asdf-build-system/sbcl)
3585 (inputs
3586 `(("sbcl-trivial-gray-streams" ,sbcl-trivial-gray-streams)))
3587 (home-page "https://edicl.github.io/chunga/")
3588 (synopsis "Portable chunked streams for Common Lisp")
3589 (description
3590 "Chunga implements streams capable of chunked encoding on demand as
3591 defined in RFC 2616.")
3592 (license license:bsd-2)))
3593
3594 (define-public cl-chunga
3595 (sbcl-package->cl-source-package sbcl-chunga))
3596
3597 (define-public sbcl-cl-who
3598 (let ((version "1.1.4")
3599 (commit "2c08caa4bafba720409af9171feeba3f32e86d32")
3600 (revision "1"))
3601 (package
3602 (name "sbcl-cl-who")
3603 (version (git-version version revision commit))
3604 (source
3605 (origin
3606 (method git-fetch)
3607 (uri (git-reference
3608 (url "https://github.com/edicl/cl-who.git")
3609 (commit commit)))
3610 (file-name (git-file-name name version))
3611 (sha256
3612 (base32
3613 "0yjb6sr3yazm288m318kqvj9xk8rm9n1lpimgf65ymqv0i5agxsb"))))
3614 (build-system asdf-build-system/sbcl)
3615 (native-inputs
3616 `(("sbcl-flexi-streams" ,sbcl-flexi-streams)))
3617 (home-page "https://edicl.github.io/cl-who/")
3618 (synopsis "Yet another Lisp markup language")
3619 (description
3620 "There are plenty of Lisp Markup Languages out there - every Lisp
3621 programmer seems to write at least one during his career - and CL-WHO (where
3622 WHO means \"with-html-output\" for want of a better acronym) is probably just
3623 as good or bad as the next one.")
3624 (license license:bsd-2))))
3625
3626 (define-public cl-cl-who
3627 (sbcl-package->cl-source-package sbcl-cl-who))
3628
3629 (define-public sbcl-chipz
3630 (let ((version "0.8")
3631 (commit "75dfbc660a5a28161c57f115adf74c8a926bfc4d")
3632 (revision "1"))
3633 (package
3634 (name "sbcl-chipz")
3635 (version (git-version version revision commit))
3636 (source
3637 (origin
3638 (method git-fetch)
3639 (uri (git-reference
3640 (url "https://github.com/froydnj/chipz.git")
3641 (commit commit)))
3642 (file-name (git-file-name name version))
3643 (sha256
3644 (base32
3645 "0plx4rs39zbs4gjk77h4a2q11zpy75fh9v8hnxrvsf8fnakajhwg"))))
3646 (build-system asdf-build-system/sbcl)
3647 (native-inputs
3648 `(("sbcl-flexi-streams" ,sbcl-flexi-streams)))
3649 (home-page "http://method-combination.net/lisp/chipz/")
3650 (synopsis
3651 "Common Lisp library for decompressing deflate, zlib, gzip, and bzip2
3652 data")
3653 (description
3654 "DEFLATE data, defined in RFC1951, forms the core of popular
3655 compression formats such as zlib (RFC 1950) and gzip (RFC 1952). As such,
3656 Chipz also provides for decompressing data in those formats as well. BZIP2 is
3657 the format used by the popular compression tool bzip2.")
3658 ;; The author describes it as "MIT-like"
3659 (license license:expat))))
3660
3661 (define-public cl-chipz
3662 (sbcl-package->cl-source-package sbcl-chipz))
3663
3664 (define-public sbcl-drakma
3665 (let ((version "2.0.4")
3666 (commit "7647c0ae842ff2058624e53979c7f297760c97a7")
3667 (revision "1"))
3668 (package
3669 (name "sbcl-drakma")
3670 (version (git-version version revision commit))
3671 (source
3672 (origin
3673 (method git-fetch)
3674 (uri (git-reference
3675 (url "https://github.com/edicl/drakma.git")
3676 (commit commit)))
3677 (file-name (git-file-name name version))
3678 (sha256
3679 (base32
3680 "1c4i9wakhj5pxfyyykxshdmv3180sbkrx6fcyynikmc0jd0rh84r"))))
3681 (build-system asdf-build-system/sbcl)
3682 (inputs
3683 `(("sbcl-puri" ,sbcl-puri)
3684 ("sbcl-cl-base64" ,sbcl-cl-base64)
3685 ("sbcl-chunga" ,sbcl-chunga)
3686 ("sbcl-flexi-streams" ,sbcl-flexi-streams)
3687 ("sbcl-cl-ppcre" ,sbcl-cl-ppcre)
3688 ("sbcl-chipz" ,sbcl-chipz)
3689 ("sbcl-usocket" ,sbcl-usocket)
3690 ("sbcl-cl+ssl" ,sbcl-cl+ssl)))
3691 (native-inputs
3692 `(("sbcl-fiveam" ,sbcl-fiveam)))
3693 (home-page "https://edicl.github.io/drakma/")
3694 (synopsis "HTTP client written in Common Lisp")
3695 (description
3696 "Drakma is a full-featured HTTP client implemented in Common Lisp. It
3697 knows how to handle HTTP/1.1 chunking, persistent connections, re-usable
3698 sockets, SSL, continuable uploads, file uploads, cookies, and more.")
3699 (license license:bsd-2))))
3700
3701 (define-public cl-drakma
3702 (sbcl-package->cl-source-package sbcl-drakma))
3703
3704 (define-public sbcl-hunchentoot
3705 (package
3706 (name "sbcl-hunchentoot")
3707 (version "1.2.38")
3708 (source
3709 (origin
3710 (method git-fetch)
3711 (uri (git-reference
3712 (url "https://github.com/edicl/hunchentoot.git")
3713 (commit (string-append "v" version))))
3714 (file-name (git-file-name "hunchentoot" version))
3715 (sha256
3716 (base32 "1anpcad7w045m4rsjs1f3xdhjwx5cppq1h0vlb3q7dz81fi3i6yq"))))
3717 (build-system asdf-build-system/sbcl)
3718 (native-inputs
3719 `(("sbcl-cl-who" ,sbcl-cl-who)
3720 ("sbcl-drakma" ,sbcl-drakma)))
3721 (inputs
3722 `(("sbcl-chunga" ,sbcl-chunga)
3723 ("sbcl-cl-base64" ,sbcl-cl-base64)
3724 ("sbcl-cl-fad" ,sbcl-cl-fad)
3725 ("sbcl-cl-ppcre" ,sbcl-cl-ppcre)
3726 ("sbcl-flexi-streams" ,sbcl-flexi-streams)
3727 ("sbcl-cl+ssl" ,sbcl-cl+ssl)
3728 ("sbcl-md5" ,sbcl-md5)
3729 ("sbcl-rfc2388" ,sbcl-rfc2388)
3730 ("sbcl-trivial-backtrace" ,sbcl-trivial-backtrace)
3731 ("sbcl-usocket" ,sbcl-usocket)))
3732 (home-page "https://edicl.github.io/hunchentoot/")
3733 (synopsis "Web server written in Common Lisp")
3734 (description
3735 "Hunchentoot is a web server written in Common Lisp and at the same
3736 time a toolkit for building dynamic websites. As a stand-alone web server,
3737 Hunchentoot is capable of HTTP/1.1 chunking (both directions), persistent
3738 connections (keep-alive), and SSL.")
3739 (license license:bsd-2)))
3740
3741 (define-public cl-hunchentoot
3742 (sbcl-package->cl-source-package sbcl-hunchentoot))
3743
3744 (define-public sbcl-trivial-types
3745 (package
3746 (name "sbcl-trivial-types")
3747 (version "0.0.1")
3748 (source
3749 (origin
3750 (method git-fetch)
3751 (uri (git-reference
3752 (url "https://github.com/m2ym/trivial-types.git")
3753 (commit "ee869f2b7504d8aa9a74403641a5b42b16f47d88")))
3754 (file-name (git-file-name name version))
3755 (sha256
3756 (base32 "1s4cp9bdlbn8447q7w7f1wkgwrbvfzp20mgs307l5pxvdslin341"))))
3757 (build-system asdf-build-system/sbcl)
3758 (home-page "https://github.com/m2ym/trivial-types")
3759 (synopsis "Trivial type definitions for Common Lisp")
3760 (description
3761 "TRIVIAL-TYPES provides missing but important type definitions such as
3762 PROPER-LIST, ASSOCIATION-LIST, PROPERTY-LIST and TUPLE.")
3763 (license license:llgpl)))
3764
3765 (define-public cl-trivial-types
3766 (sbcl-package->cl-source-package sbcl-trivial-types))
3767
3768 (define-public sbcl-cl-syntax
3769 (package
3770 (name "sbcl-cl-syntax")
3771 (version "0.0.3")
3772 (source
3773 (origin
3774 (method git-fetch)
3775 (uri (git-reference
3776 (url "https://github.com/m2ym/cl-syntax.git")
3777 (commit "03f0c329bbd55b8622c37161e6278366525e2ccc")))
3778 (file-name (git-file-name "cl-syntax" version))
3779 (sha256
3780 (base32 "17ran8xp77asagl31xv8w819wafh6whwfc9p6dgx22ca537gyl4y"))))
3781 (build-system asdf-build-system/sbcl)
3782 (arguments
3783 '(#:asd-file "cl-syntax.asd"
3784 #:asd-system-name "cl-syntax"))
3785 (inputs `(("sbcl-trivial-types" ,sbcl-trivial-types)
3786 ("sbcl-named-readtables" ,sbcl-named-readtables)))
3787 (home-page "https://github.com/m2ym/cl-syntax")
3788 (synopsis "Reader Syntax Coventions for Common Lisp and SLIME")
3789 (description
3790 "CL-SYNTAX provides Reader Syntax Coventions for Common Lisp and SLIME.")
3791 (license license:llgpl)))
3792
3793 (define-public cl-syntax
3794 (sbcl-package->cl-source-package sbcl-cl-syntax))
3795
3796 (define-public sbcl-cl-annot
3797 (let ((commit "c99e69c15d935eabc671b483349a406e0da9518d")
3798 (revision "1"))
3799 (package
3800 (name "sbcl-cl-annot")
3801 (version (git-version "0.0.0" revision commit))
3802 (source
3803 (origin
3804 (method git-fetch)
3805 (uri (git-reference
3806 (url "https://github.com/m2ym/cl-annot.git")
3807 (commit commit)))
3808 (file-name (git-file-name name version))
3809 (sha256
3810 (base32 "1wq1gs9jjd5m6iwrv06c2d7i5dvqsfjcljgbspfbc93cg5xahk4n"))))
3811 (build-system asdf-build-system/sbcl)
3812 (arguments
3813 '(#:asd-file "cl-annot.asd"
3814 #:asd-system-name "cl-annot"))
3815 (inputs
3816 `(("sbcl-alexandria" ,sbcl-alexandria)))
3817 (home-page "https://github.com/m2ym/cl-annot")
3818 (synopsis "Python-like Annotation Syntax for Common Lisp.")
3819 (description
3820 "@code{cl-annot} is an general annotation library for Common Lisp.")
3821 (license license:llgpl))))
3822
3823 (define-public cl-annot
3824 (sbcl-package->cl-source-package sbcl-cl-annot))
3825
3826 (define-public sbcl-cl-syntax-annot
3827 (package
3828 (name "sbcl-cl-syntax-annot")
3829 (version "0.0.3")
3830 (source
3831 (origin
3832 (method git-fetch)
3833 (uri (git-reference
3834 (url "https://github.com/m2ym/cl-syntax.git")
3835 (commit "03f0c329bbd55b8622c37161e6278366525e2ccc")))
3836 (file-name (git-file-name name version))
3837 (sha256
3838 (base32 "17ran8xp77asagl31xv8w819wafh6whwfc9p6dgx22ca537gyl4y"))))
3839 (build-system asdf-build-system/sbcl)
3840 (arguments
3841 '(#:asd-file "cl-syntax-annot.asd"
3842 #:asd-system-name "cl-syntax-annot"))
3843 (inputs
3844 `(("sbcl-cl-syntax" ,sbcl-cl-syntax)
3845 ("sbcl-cl-annot" ,sbcl-cl-annot)))
3846 (home-page "https://github.com/m2ym/cl-syntax")
3847 (synopsis "Reader Syntax Coventions for Common Lisp and SLIME")
3848 (description
3849 "CL-SYNTAX provides Reader Syntax Coventions for Common Lisp and
3850 SLIME.")
3851 (license license:llgpl)))
3852
3853 (define-public cl-syntax-annot
3854 (sbcl-package->cl-source-package sbcl-cl-syntax-annot))
3855
3856 (define-public sbcl-cl-utilities
3857 (let ((commit "dce2d2f6387091ea90357a130fa6d13a6776884b")
3858 (revision "1"))
3859 (package
3860 (name "sbcl-cl-utilities")
3861 (version (git-version "0.0.0" revision commit))
3862 (source
3863 (origin
3864 (method url-fetch)
3865 (uri
3866 (string-append
3867 "https://gitlab.common-lisp.net/cl-utilities/cl-utilities/-/"
3868 "archive/" commit "/cl-utilities-" commit ".tar.gz"))
3869 (sha256
3870 (base32 "1r46v730yf96nk2vb24qmagv9x96xvd08abqwhf02ghgydv1a7z2"))))
3871 (build-system asdf-build-system/sbcl)
3872 (arguments
3873 '(#:asd-file "cl-utilities.asd"
3874 #:asd-system-name "cl-utilities"
3875 #:phases
3876 (modify-phases %standard-phases
3877 (add-after 'unpack 'fix-paths
3878 (lambda* (#:key inputs #:allow-other-keys)
3879 (substitute* "rotate-byte.lisp"
3880 (("in-package :cl-utilities)" all)
3881 "in-package :cl-utilities)\n\n#+sbcl\n(require :sb-rotate-byte)")))))))
3882 (home-page "http://common-lisp.net/project/cl-utilities")
3883 (synopsis "A collection of semi-standard utilities")
3884 (description
3885 "On Cliki.net <http://www.cliki.net/Common%20Lisp%20Utilities>, there
3886 is a collection of Common Lisp Utilities, things that everybody writes since
3887 they're not part of the official standard. There are some very useful things
3888 there; the only problems are that they aren't implemented as well as you'd
3889 like (some aren't implemented at all) and they aren't conveniently packaged
3890 and maintained. It takes quite a bit of work to carefully implement utilities
3891 for common use, commented and documented, with error checking placed
3892 everywhere some dumb user might make a mistake.")
3893 (license license:public-domain))))
3894
3895 (define-public cl-utilities
3896 (sbcl-package->cl-source-package sbcl-cl-utilities))
3897
3898 (define-public sbcl-map-set
3899 (let ((commit "7b4b545b68b8")
3900 (revision "1"))
3901 (package
3902 (name "sbcl-map-set")
3903 (version (git-version "0.0.0" revision commit))
3904 (source
3905 (origin
3906 (method url-fetch)
3907 (uri (string-append
3908 "https://bitbucket.org/tarballs_are_good/map-set/get/"
3909 commit ".tar.gz"))
3910 (sha256
3911 (base32 "1sx5j5qdsy5fklspfammwb16kjrhkggdavm922a9q86jm5l0b239"))))
3912 (build-system asdf-build-system/sbcl)
3913 (home-page "https://bitbucket.org/tarballs_are_good/map-set")
3914 (synopsis "Set-like data structure")
3915 (description
3916 "Implementation of a set-like data structure with constant time
3917 addition, removal, and random selection.")
3918 (license license:bsd-3))))
3919
3920 (define-public cl-map-set
3921 (sbcl-package->cl-source-package sbcl-map-set))
3922
3923 (define-public sbcl-quri
3924 (let ((commit "76b75103f21ead092c9f715512fa82441ef61185")
3925 (revision "1"))
3926 (package
3927 (name "sbcl-quri")
3928 (version (git-version "0.1.0" revision commit))
3929 (source
3930 (origin
3931 (method git-fetch)
3932 (uri (git-reference
3933 (url "https://github.com/fukamachi/quri.git")
3934 (commit commit)))
3935 (file-name (git-file-name name version))
3936 (sha256
3937 (base32 "1ccbxsgzdibmzq33mmbmmz9vwl6l03xh6nbpsh1hkdvdcl7q0a60"))))
3938 (build-system asdf-build-system/sbcl)
3939 (arguments
3940 ;; Tests fail with: Component QURI-ASD::QURI-TEST not found,
3941 ;; required by #<SYSTEM "quri">. Why?
3942 '(#:tests? #f))
3943 (native-inputs `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
3944 ("sbcl-prove" ,sbcl-prove)))
3945 (inputs `(("sbcl-babel" ,sbcl-babel)
3946 ("sbcl-split-sequence" ,sbcl-split-sequence)
3947 ("sbcl-cl-utilities" ,sbcl-cl-utilities)
3948 ("sbcl-alexandria" ,sbcl-alexandria)))
3949 (home-page "https://github.com/fukamachi/quri")
3950 (synopsis "Yet another URI library for Common Lisp")
3951 (description
3952 "QURI (pronounced \"Q-ree\") is yet another URI library for Common
3953 Lisp. It is intended to be a replacement of PURI.")
3954 (license license:bsd-3))))
3955
3956 (define-public cl-quri
3957 (sbcl-package->cl-source-package sbcl-quri))
3958
3959 (define-public sbcl-myway
3960 (let ((commit "286230082a11f879c18b93f17ca571c5f676bfb7")
3961 (revision "1"))
3962 (package
3963 (name "sbcl-myway")
3964 (version (git-version "0.1.0" revision commit))
3965 (source
3966 (origin
3967 (method git-fetch)
3968 (uri (git-reference
3969 (url "https://github.com/fukamachi/myway.git")
3970 (commit commit)))
3971 (file-name (git-file-name "myway" version))
3972 (sha256
3973 (base32 "0briia9bk3lbr0frnx39d1qg6i38dm4j6z9w3yga3d40k6df4a90"))))
3974 (build-system asdf-build-system/sbcl)
3975 (arguments
3976 ;; Tests fail with: Component MYWAY-ASD::MYWAY-TEST not found, required
3977 ;; by #<SYSTEM "myway">. Why?
3978 '(#:tests? #f))
3979 (native-inputs
3980 `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
3981 ("sbcl-prove" ,sbcl-prove)))
3982 (inputs
3983 `(("sbcl-cl-ppcre" ,sbcl-cl-ppcre)
3984 ("sbcl-quri" ,sbcl-quri)
3985 ("sbcl-map-set" ,sbcl-map-set)))
3986 (home-page "https://github.com/fukamachi/myway")
3987 (synopsis "Sinatra-compatible URL routing library for Common Lisp")
3988 (description "My Way is a Sinatra-compatible URL routing library.")
3989 (license license:llgpl))))
3990
3991 (define-public cl-myway
3992 (sbcl-package->cl-source-package sbcl-myway))
3993
3994 (define-public sbcl-xsubseq
3995 (let ((commit "5ce430b3da5cda3a73b9cf5cee4df2843034422b")
3996 (revision "1"))
3997 (package
3998 (name "sbcl-xsubseq")
3999 (version (git-version "0.0.1" revision commit))
4000 (source
4001 (origin
4002 (method git-fetch)
4003 (uri (git-reference
4004 (url "https://github.com/fukamachi/xsubseq")
4005 (commit commit)))
4006 (file-name (git-file-name name version))
4007 (sha256
4008 (base32 "1xz79q0p2mclf3sqjiwf6izdpb6xrsr350bv4mlmdlm6rg5r99px"))))
4009 (build-system asdf-build-system/sbcl)
4010 (arguments
4011 ;; Tests fail with: Component XSUBSEQ-ASD::XSUBSEQ-TEST not found,
4012 ;; required by #<SYSTEM "xsubseq">. Why?
4013 '(#:tests? #f))
4014 (native-inputs
4015 `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
4016 ("sbcl-prove" ,sbcl-prove)))
4017 (home-page "https://github.com/fukamachi/xsubseq")
4018 (synopsis "Efficient way to use \"subseq\"s in Common Lisp")
4019 (description
4020 "XSubseq provides functions to be able to handle \"subseq\"s more
4021 effieiently.")
4022 (license license:bsd-2))))
4023
4024 (define-public cl-xsubseq
4025 (sbcl-package->cl-source-package sbcl-xsubseq))
4026
4027 (define-public sbcl-smart-buffer
4028 (let ((commit "09b9a9a0b3abaa37abe9a730f5aac2643dca4e62")
4029 (revision "1"))
4030 (package
4031 (name "sbcl-smart-buffer")
4032 (version (git-version "0.0.1" revision commit))
4033 (source
4034 (origin
4035 (method git-fetch)
4036 (uri (git-reference
4037 (url "https://github.com/fukamachi/smart-buffer")
4038 (commit commit)))
4039 (file-name (git-file-name name version))
4040 (sha256
4041 (base32 "0qz1zzxx0wm5ff7gpgsq550a59p0qj594zfmm2rglj97dahj54l7"))))
4042 (build-system asdf-build-system/sbcl)
4043 (arguments
4044 ;; Tests fail with: Component SMART-BUFFER-ASD::SMART-BUFFER-TEST not
4045 ;; found, required by #<SYSTEM "smart-buffer">. Why?
4046 `(#:tests? #f))
4047 (native-inputs
4048 `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
4049 ("sbcl-prove" ,sbcl-prove)))
4050 (inputs
4051 `(("sbcl-xsubseq" ,sbcl-xsubseq)
4052 ("sbcl-flexi-streams" ,sbcl-flexi-streams)))
4053 (home-page "https://github.com/fukamachi/smart-buffer")
4054 (synopsis "Smart octets buffer")
4055 (description
4056 "Smart-buffer provides an output buffer which changes the destination
4057 depending on content size.")
4058 (license license:bsd-3))))
4059
4060 (define-public cl-smart-buffer
4061 (sbcl-package->cl-source-package sbcl-smart-buffer))
4062
4063 (define-public sbcl-fast-http
4064 (let ((commit "f9e7597191bae380503e20724fd493a24d024935")
4065 (revision "1"))
4066 (package
4067 (name "sbcl-fast-http")
4068 (version (git-version "0.2.0" revision commit))
4069 (source
4070 (origin
4071 (method git-fetch)
4072 (uri (git-reference
4073 (url "https://github.com/fukamachi/fast-http")
4074 (commit commit)))
4075 (file-name (git-file-name name version))
4076 (sha256
4077 (base32 "0qdmwv2zm0sizxdb8nnclgwl0nfjcbjaimbakavikijw7lr9b4jp"))))
4078 (build-system asdf-build-system/sbcl)
4079 (arguments
4080 ;; Tests fail with: Component FAST-HTTP-ASD::FAST-HTTP-TEST not found,
4081 ;; required by #<SYSTEM "fast-http">. Why?
4082 `(#:tests? #f))
4083 (native-inputs
4084 `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
4085 ("sbcl-prove" ,sbcl-prove)))
4086 (inputs
4087 `(("sbcl-alexandria" ,sbcl-alexandria)
4088 ("sbcl-proc-parse" ,sbcl-proc-parse)
4089 ("sbcl-xsubseq" ,sbcl-xsubseq)
4090 ("sbcl-smart-buffer" ,sbcl-smart-buffer)
4091 ("sbcl-cl-utilities" ,sbcl-cl-utilities)))
4092 (home-page "https://github.com/fukamachi/fast-http")
4093 (synopsis "HTTP request/response parser for Common Lisp")
4094 (description
4095 "@code{fast-http} is a HTTP request/response protocol parser for Common
4096 Lisp.")
4097 ;; Author specified the MIT license
4098 (license license:expat))))
4099
4100 (define-public cl-fast-http
4101 (sbcl-package->cl-source-package sbcl-fast-http))
4102
4103 (define-public sbcl-static-vectors
4104 (let ((commit "0681eac1f49370cde03e64b077251e8abf47d702")
4105 (revision "1"))
4106 (package
4107 (name "sbcl-static-vectors")
4108 (version (git-version "1.8.3" revision commit))
4109 (source
4110 (origin
4111 (method git-fetch)
4112 (uri (git-reference
4113 (url "https://github.com/sionescu/static-vectors.git")
4114 (commit commit)))
4115 (file-name (git-file-name name version))
4116 (sha256
4117 (base32 "138nlsq14hv8785ycjm6jw3i6ablhq8vcwys7q09y80arcgrg6r3"))))
4118 (native-inputs
4119 `(("sbcl-fiveam" ,sbcl-fiveam)))
4120 (inputs
4121 `(("sbcl-cffi-grovel" ,sbcl-cffi-grovel)
4122 ("sbcl-cffi" ,sbcl-cffi)))
4123 (build-system asdf-build-system/sbcl)
4124 (home-page "http://common-lisp.net/projects/iolib/")
4125 (synopsis "Allocate SIMPLE-ARRAYs in static memory")
4126 (description
4127 "With @code{static-vectors}, you can create vectors allocated in static
4128 memory.")
4129 (license license:expat))))
4130
4131 (define-public cl-static-vectors
4132 (sbcl-package->cl-source-package sbcl-static-vectors))
4133
4134 (define-public sbcl-marshal
4135 (let ((commit "eff1b15f2b0af2f26f71ad6a4dd5c4beab9299ec")
4136 (revision "1"))
4137 (package
4138 (name "sbcl-marshal")
4139 (version (git-version "1.3.0" revision commit))
4140 (source
4141 (origin
4142 (method git-fetch)
4143 (uri (git-reference
4144 (url "https://github.com/wlbr/cl-marshal.git")
4145 (commit commit)))
4146 (file-name (git-file-name name version))
4147 (sha256
4148 (base32 "08qs6fhk38xpkkjkpcj92mxx0lgy4ygrbbzrmnivdx281syr0gwh"))))
4149 (build-system asdf-build-system/sbcl)
4150 (home-page "https://github.com/wlbr/cl-marshal")
4151 (synopsis "Simple (de)serialization of Lisp datastructures")
4152 (description
4153 "Simple and fast marshalling of Lisp datastructures. Convert any object
4154 into a string representation, put it on a stream an revive it from there.
4155 Only minimal changes required to make your CLOS objects serializable.")
4156 (license license:expat))))
4157
4158 (define-public cl-marshal
4159 (sbcl-package->cl-source-package sbcl-marshal))
4160
4161 (define-public sbcl-checkl
4162 (let ((commit "80328800d047fef9b6e32dfe6bdc98396aee3cc9")
4163 (revision "1"))
4164 (package
4165 (name "sbcl-checkl")
4166 (version (git-version "0.0.0" revision commit))
4167 (source
4168 (origin
4169 (method git-fetch)
4170 (uri (git-reference
4171 (url "https://github.com/rpav/CheckL.git")
4172 (commit commit)))
4173 (file-name (git-file-name name version))
4174 (sha256
4175 (base32 "0bpisihx1gay44xmyr1dmhlwh00j0zzi04rp9fy35i95l2r4xdlx"))))
4176 (build-system asdf-build-system/sbcl)
4177 (arguments
4178 ;; Error while trying to load definition for system checkl-test from
4179 ;; pathname [...]/checkl-test.asd: The function CHECKL:DEFINE-TEST-OP
4180 ;; is undefined.
4181 '(#:tests? #f))
4182 (native-inputs
4183 `(("sbcl-fiveam" ,sbcl-fiveam)))
4184 (inputs
4185 `(("sbcl-marshal" ,sbcl-marshal)))
4186 (home-page "https://github.com/rpav/CheckL/")
4187 (synopsis "Dynamic testing for Common Lisp")
4188 (description
4189 "CheckL lets you write tests dynamically, it checks resulting values
4190 against the last run.")
4191 ;; The author specifies both LLGPL and "BSD", but the "BSD" license
4192 ;; isn't specified anywhere, so I don't know which kind. LLGPL is the
4193 ;; stronger of the two and so I think only listing this should suffice.
4194 (license license:llgpl))))
4195
4196 (define-public cl-checkl
4197 (sbcl-package->cl-source-package sbcl-checkl))
4198
4199 (define-public sbcl-fast-io
4200 (let ((commit "dc3a71db7e9b756a88781ae9c342fe9d4bbab51c")
4201 (revision "1"))
4202 (package
4203 (name "sbcl-fast-io")
4204 (version (git-version "1.0.0" revision commit))
4205 (source
4206 (origin
4207 (method git-fetch)
4208 (uri (git-reference
4209 (url "https://github.com/rpav/fast-io.git")
4210 (commit commit)))
4211 (file-name (git-file-name name version))
4212 (sha256
4213 (base32 "1jsp6xvi26ln6fdy5j5zi05xvan8jsqdhisv552dy6xg6ws8i1yq"))))
4214 (build-system asdf-build-system/sbcl)
4215 (arguments
4216 ;; Error while trying to load definition for system fast-io-test from
4217 ;; pathname [...]/fast-io-test.asd: The function CHECKL:DEFINE-TEST-OP
4218 ;; is undefined.
4219 '(#:tests? #f))
4220 (native-inputs
4221 `(("sbcl-fiveam" ,sbcl-fiveam)
4222 ("sbcl-checkl" ,sbcl-checkl)))
4223 (inputs
4224 `(("sbcl-alexandria" ,sbcl-alexandria)
4225 ("sbcl-trivial-gray-streams" ,sbcl-trivial-gray-streams)
4226 ("sbcl-static-vectors" ,sbcl-static-vectors)))
4227 (home-page "https://github.com/rpav/fast-io")
4228 (synopsis "Fast octet-vector/stream I/O for Common Lisp")
4229 (description
4230 "Fast-io is about improving performance to octet-vectors and octet
4231 streams (though primarily the former, while wrapping the latter).")
4232 ;; Author specifies this as NewBSD which is an alias
4233 (license license:bsd-3))))
4234
4235 (define-public cl-fast-io
4236 (sbcl-package->cl-source-package sbcl-fast-io))
4237
4238 (define-public sbcl-jonathan
4239 (let ((commit "1f448b4f7ac8265e56e1c02b32ce383e65316300")
4240 (revision "1"))
4241 (package
4242 (name "sbcl-jonathan")
4243 (version (git-version "0.1.0" revision commit))
4244 (source
4245 (origin
4246 (method git-fetch)
4247 (uri (git-reference
4248 (url "https://github.com/Rudolph-Miller/jonathan.git")
4249 (commit commit)))
4250 (file-name (git-file-name name version))
4251 (sha256
4252 (base32 "14x4iwz3mbag5jzzzr4sb6ai0m9r4q4kyypbq32jmsk2dx1hi807"))))
4253 (build-system asdf-build-system/sbcl)
4254 (arguments
4255 ;; Tests fail with: Component JONATHAN-ASD::JONATHAN-TEST not found,
4256 ;; required by #<SYSTEM "jonathan">. Why?
4257 `(#:tests? #f))
4258 (native-inputs
4259 `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
4260 ("sbcl-prove" ,sbcl-prove)))
4261 (inputs
4262 `(("sbcl-cl-syntax" ,sbcl-cl-syntax)
4263 ("sbcl-cl-syntax-annot" ,sbcl-cl-syntax-annot)
4264 ("sbcl-fast-io" ,sbcl-fast-io)
4265 ("sbcl-proc-parse" ,sbcl-proc-parse)
4266 ("sbcl-cl-ppcre" ,sbcl-cl-ppcre)))
4267 (home-page "http://rudolph-miller.github.io/jonathan/overview.html")
4268 (synopsis "JSON encoder and decoder")
4269 (description
4270 "High performance JSON encoder and decoder. Currently support: SBCL,
4271 CCL.")
4272 ;; Author specifies the MIT license
4273 (license license:expat))))
4274
4275 (define-public cl-jonathan
4276 (sbcl-package->cl-source-package sbcl-jonathan))
4277
4278 (define-public sbcl-http-body
4279 (let ((commit "dd01dc4f5842e3d29728552e5163acce8386eb73")
4280 (revision "1"))
4281 (package
4282 (name "sbcl-http-body")
4283 (version (git-version "0.1.0" revision commit))
4284 (source
4285 (origin
4286 (method git-fetch)
4287 (uri (git-reference
4288 (url "https://github.com/fukamachi/http-body")
4289 (commit commit)))
4290 (file-name (git-file-name name version))
4291 (sha256
4292 (base32 "1jd06snjvxcprhapgfq8sx0y5lrldkvhf206ix6d5a23dd6zcmr0"))))
4293 (build-system asdf-build-system/sbcl)
4294 (arguments
4295 ;; Tests fail with: Component HTTP-BODY-ASD::HTTP-BODY-TEST not
4296 ;; found, required by #<SYSTEM "http-body">. Why?
4297 `(#:tests? #f))
4298 (native-inputs
4299 `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
4300 ("sbcl-prove" ,sbcl-prove)))
4301 (inputs
4302 `(("sbcl-fast-http" ,sbcl-fast-http)
4303 ("sbcl-jonathan" ,sbcl-jonathan)
4304 ("sbcl-quri" ,sbcl-quri)))
4305 (home-page "https://github.com/fukamachi/http-body")
4306 (synopsis "HTTP POST data parser")
4307 (description
4308 "HTTP-Body parses HTTP POST data and returns POST parameters. It
4309 supports application/x-www-form-urlencoded, application/json, and
4310 multipart/form-data.")
4311 (license license:bsd-2))))
4312
4313 (define-public cl-http-body
4314 (sbcl-package->cl-source-package sbcl-http-body))
4315
4316 (define-public sbcl-circular-streams
4317 (let ((commit "e770bade1919c5e8533dd2078c93c3d3bbeb38df")
4318 (revision "1"))
4319 (package
4320 (name "sbcl-circular-streams")
4321 (version (git-version "0.1.0" revision commit))
4322 (source
4323 (origin
4324 (method git-fetch)
4325 (uri (git-reference
4326 (url "https://github.com/fukamachi/circular-streams")
4327 (commit commit)))
4328 (file-name (git-file-name name version))
4329 (sha256
4330 (base32 "1wpw6d5cciyqcf92f7mvihak52pd5s47kk4qq6f0r2z2as68p5rs"))))
4331 (build-system asdf-build-system/sbcl)
4332 (arguments
4333 ;; The tests depend on cl-test-more which is now prove. Prove
4334 ;; tests aren't working for some reason.
4335 `(#:tests? #f))
4336 (inputs
4337 `(("sbcl-fast-io" ,sbcl-fast-io)
4338 ("sbcl-trivial-gray-streams" ,sbcl-trivial-gray-streams)))
4339 (home-page "https://github.com/fukamachi/circular-streams")
4340 (synopsis "Circularly readable streams for Common Lisp")
4341 (description
4342 "Circular-Streams allows you to read streams circularly by wrapping real
4343 streams. Once you reach end-of-file of a stream, it's file position will be
4344 reset to 0 and you're able to read it again.")
4345 (license license:llgpl))))
4346
4347 (define-public cl-circular-streams
4348 (sbcl-package->cl-source-package sbcl-circular-streams))
4349
4350 (define-public sbcl-lack-request
4351 (let ((commit "abff8efeb0c3a848e6bb0022f2b8b7fa3a1bc88b")
4352 (revision "1"))
4353 (package
4354 (name "sbcl-lack-request")
4355 (version (git-version "0.1.0" revision commit))
4356 (source
4357 (origin
4358 (method git-fetch)
4359 (uri (git-reference
4360 (url "https://github.com/fukamachi/lack.git")
4361 (commit commit)))
4362 (file-name (git-file-name "lack-request" version))
4363 (sha256
4364 (base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85"))))
4365 (build-system asdf-build-system/sbcl)
4366 (arguments
4367 '(#:asd-file "lack-request.asd"
4368 #:asd-system-name "lack-request"
4369 #:test-asd-file "t-lack-request.asd"
4370 ;; XXX: Component :CLACK-TEST not found
4371 #:tests? #f))
4372 (native-inputs
4373 `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
4374 ("sbcl-prove" ,sbcl-prove)))
4375 (inputs
4376 `(("sbcl-quri" ,sbcl-quri)
4377 ("sbcl-http-body" ,sbcl-http-body)
4378 ("sbcl-circular-streams" ,sbcl-circular-streams)))
4379 (home-page "https://github.com/fukamachi/lack")
4380 (synopsis "Lack, the core of Clack")
4381 (description
4382 "Lack is a Common Lisp library which allows web applications to be
4383 constructed of modular components. It was originally a part of Clack, however
4384 it's going to be rewritten as an individual project since Clack v2 with
4385 performance and simplicity in mind.")
4386 (license license:llgpl))))
4387
4388 (define-public cl-lack-request
4389 (sbcl-package->cl-source-package sbcl-lack-request))
4390
4391 (define-public sbcl-local-time
4392 (let ((commit "beac054eef428552b63d4ae7820c32ffef9a3015")
4393 (revision "1"))
4394 (package
4395 (name "sbcl-local-time")
4396 (version (git-version "1.0.6" revision commit))
4397 (source
4398 (origin
4399 (method git-fetch)
4400 (uri (git-reference
4401 (url "https://github.com/dlowe-net/local-time.git")
4402 (commit commit)))
4403 (file-name (git-file-name name version))
4404 (sha256
4405 (base32 "0xhkmgxh41dg2wwlsp0h2l41jp144xn4gpxhh0lna6kh0560w2cc"))))
4406 (build-system asdf-build-system/sbcl)
4407 (arguments
4408 ;; TODO: Component :STEFIL not found, required by #<SYSTEM
4409 ;; "local-time/test">
4410 '(#:tests? #f))
4411 (native-inputs
4412 `(("stefil" ,sbcl-hu.dwim.stefil)))
4413 (inputs
4414 `(("sbcl-cl-fad" ,sbcl-cl-fad)))
4415 (home-page "https://common-lisp.net/project/local-time/")
4416 (synopsis "Time manipulation library for Common Lisp")
4417 (description
4418 "The LOCAL-TIME library is a Common Lisp library for the manipulation of
4419 dates and times. It is based almost entirely upon Erik Naggum's paper \"The
4420 Long Painful History of Time\".")
4421 (license license:expat))))
4422
4423 (define-public cl-local-time
4424 (sbcl-package->cl-source-package sbcl-local-time))
4425
4426 (define-public sbcl-lack-response
4427 (let ((commit "abff8efeb0c3a848e6bb0022f2b8b7fa3a1bc88b")
4428 (revision "1"))
4429 (package
4430 (name "sbcl-lack-response")
4431 (version (git-version "0.1.0" revision commit))
4432 (source
4433 (origin
4434 (method git-fetch)
4435 (uri (git-reference
4436 (url "https://github.com/fukamachi/lack.git")
4437 (commit commit)))
4438 (file-name (git-file-name name version))
4439 (sha256
4440 (base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85"))))
4441 (build-system asdf-build-system/sbcl)
4442 (arguments
4443 '(#:asd-file "lack-response.asd"
4444 #:asd-system-name "lack-response"
4445 ;; XXX: no tests for lack-response.
4446 #:tests? #f))
4447 (native-inputs
4448 `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
4449 ("sbcl-prove" ,sbcl-prove)))
4450 (inputs
4451 `(("sbcl-quri" ,sbcl-quri)
4452 ("sbcl-http-body" ,sbcl-http-body)
4453 ("sbcl-circular-streams" ,sbcl-circular-streams)
4454 ("sbcl-local-time" ,sbcl-local-time)))
4455 (home-page "https://github.com/fukamachi/lack")
4456 (synopsis "Lack, the core of Clack")
4457 (description
4458 "Lack is a Common Lisp library which allows web applications to be
4459 constructed of modular components. It was originally a part of Clack, however
4460 it's going to be rewritten as an individual project since Clack v2 with
4461 performance and simplicity in mind.")
4462 (license license:llgpl))))
4463
4464 (define-public cl-lack-response
4465 (sbcl-package->cl-source-package sbcl-lack-response))
4466
4467 (define-public sbcl-lack-component
4468 (let ((commit "abff8efeb0c3a848e6bb0022f2b8b7fa3a1bc88b")
4469 (revision "1"))
4470 (package
4471 (name "sbcl-lack-component")
4472 (version (git-version "0.0.0" revision commit))
4473 (source
4474 (origin
4475 (method git-fetch)
4476 (uri (git-reference
4477 (url "https://github.com/fukamachi/lack.git")
4478 (commit commit)))
4479 (file-name (git-file-name "lack-component" version))
4480 (sha256
4481 (base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85"))))
4482 (build-system asdf-build-system/sbcl)
4483 (arguments
4484 '(#:asd-file "lack-component.asd"
4485 #:asd-system-name "lack-component"
4486 #:test-asd-file "t-lack-component.asd"
4487 ;; XXX: Component :LACK-TEST not found
4488 #:tests? #f))
4489 (native-inputs
4490 `(("prove-asdf" ,sbcl-prove-asdf)))
4491 (home-page "https://github.com/fukamachi/lack")
4492 (synopsis "Lack, the core of Clack")
4493 (description
4494 "Lack is a Common Lisp library which allows web applications to be
4495 constructed of modular components. It was originally a part of Clack, however
4496 it's going to be rewritten as an individual project since Clack v2 with
4497 performance and simplicity in mind.")
4498 (license license:llgpl))))
4499
4500 (define-public cl-lack-component
4501 (sbcl-package->cl-source-package sbcl-lack-component))
4502
4503 (define-public sbcl-lack-util
4504 (let ((commit "abff8efeb0c3a848e6bb0022f2b8b7fa3a1bc88b")
4505 (revision "1"))
4506 (package
4507 (name "sbcl-lack-util")
4508 (version (git-version "0.1.0" revision commit))
4509 (source
4510 (origin
4511 (method git-fetch)
4512 (uri (git-reference
4513 (url "https://github.com/fukamachi/lack.git")
4514 (commit commit)))
4515 (file-name (git-file-name "lack-util" version))
4516 (sha256
4517 (base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85"))))
4518 (build-system asdf-build-system/sbcl)
4519 (arguments
4520 '(#:asd-file "lack-util.asd"
4521 #:asd-system-name "lack-util"
4522 #:test-asd-file "t-lack-util.asd"
4523 ;; XXX: Component :LACK-TEST not found
4524 #:tests? #f))
4525 (native-inputs
4526 `(("prove-asdf" ,sbcl-prove-asdf)))
4527 (inputs
4528 `(("sbcl-ironclad" ,sbcl-ironclad)))
4529 (home-page "https://github.com/fukamachi/lack")
4530 (synopsis "Lack, the core of Clack")
4531 (description
4532 "Lack is a Common Lisp library which allows web applications to be
4533 constructed of modular components. It was originally a part of Clack, however
4534 it's going to be rewritten as an individual project since Clack v2 with
4535 performance and simplicity in mind.")
4536 (license license:llgpl))))
4537
4538 (define-public cl-lack-util
4539 (sbcl-package->cl-source-package sbcl-lack-util))
4540
4541 (define-public sbcl-lack-middleware-backtrace
4542 (let ((commit "abff8efeb0c3a848e6bb0022f2b8b7fa3a1bc88b")
4543 (revision "1"))
4544 (package
4545 (name "sbcl-lack-middleware-backtrace")
4546 (version (git-version "0.1.0" revision commit))
4547 (source
4548 (origin
4549 (method git-fetch)
4550 (uri (git-reference
4551 (url "https://github.com/fukamachi/lack.git")
4552 (commit commit)))
4553 (file-name (git-file-name "lack-middleware-backtrace" version))
4554 (sha256
4555 (base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85"))))
4556 (build-system asdf-build-system/sbcl)
4557 (arguments
4558 '(#:asd-file "lack-middleware-backtrace.asd"
4559 #:asd-system-name "lack-middleware-backtrace"
4560 #:test-asd-file "t-lack-middleware-backtrace.asd"
4561 ;; XXX: Component :LACK not found
4562 #:tests? #f))
4563 (native-inputs
4564 `(("prove-asdf" ,sbcl-prove-asdf)))
4565 (home-page "https://github.com/fukamachi/lack")
4566 (synopsis "Lack, the core of Clack")
4567 (description
4568 "Lack is a Common Lisp library which allows web applications to be
4569 constructed of modular components. It was originally a part of Clack, however
4570 it's going to be rewritten as an individual project since Clack v2 with
4571 performance and simplicity in mind.")
4572 (license license:llgpl))))
4573
4574 (define-public cl-lack-middleware-backtrace
4575 (sbcl-package->cl-source-package sbcl-lack-middleware-backtrace))
4576
4577 (define-public sbcl-trivial-mimes
4578 (let ((commit "303f8ac0aa6ca0bc139aa3c34822e623c3723fab")
4579 (revision "1"))
4580 (package
4581 (name "sbcl-trivial-mimes")
4582 (version (git-version "1.1.0" revision commit))
4583 (source
4584 (origin
4585 (method git-fetch)
4586 (uri (git-reference
4587 (url "https://github.com/Shinmera/trivial-mimes.git")
4588 (commit commit)))
4589 (file-name (git-file-name name version))
4590 (sha256
4591 (base32 "17jxgl47r695bvsb7wi3n2ws5rp1zzgvw0zii8cy5ggw4b4ayv6m"))))
4592 (build-system asdf-build-system/sbcl)
4593 (arguments
4594 '(#:phases
4595 (modify-phases %standard-phases
4596 (add-after
4597 'unpack 'fix-paths
4598 (lambda* (#:key inputs #:allow-other-keys)
4599 (let ((anchor "#p\"/etc/mime.types\""))
4600 (substitute* "mime-types.lisp"
4601 ((anchor all)
4602 (string-append
4603 anchor "\n"
4604 "(asdf:system-relative-pathname :trivial-mimes "
4605 "\"../../share/common-lisp/" (%lisp-type)
4606 "-source/trivial-mimes/mime.types\")")))))))))
4607 (native-inputs
4608 `(("stefil" ,sbcl-hu.dwim.stefil)))
4609 (inputs
4610 `(("sbcl-cl-fad" ,sbcl-cl-fad)))
4611 (home-page "http://shinmera.github.io/trivial-mimes/")
4612 (synopsis "Tiny Common Lisp library to detect mime types in files")
4613 (description
4614 "This is a teensy library that provides some functions to determine the
4615 mime-type of a file.")
4616 (license license:artistic2.0))))
4617
4618 (define-public cl-trivial-mimes
4619 (sbcl-package->cl-source-package sbcl-trivial-mimes))
4620
4621 (define-public ecl-trivial-mimes
4622 (sbcl-package->ecl-package sbcl-trivial-mimes))
4623
4624 (define-public sbcl-lack-middleware-static
4625 (let ((commit "abff8efeb0c3a848e6bb0022f2b8b7fa3a1bc88b")
4626 (revision "1"))
4627 (package
4628 (name "sbcl-lack-middleware-static")
4629 (version (git-version "0.1.0" revision commit))
4630 (source
4631 (origin
4632 (method git-fetch)
4633 (uri (git-reference
4634 (url "https://github.com/fukamachi/lack.git")
4635 (commit commit)))
4636 (file-name (git-file-name "lack-middleware-static" version))
4637 (sha256
4638 (base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85"))))
4639 (build-system asdf-build-system/sbcl)
4640 (arguments
4641 '(#:asd-file "lack-middleware-static.asd"
4642 #:asd-system-name "lack-middleware-static"
4643 #:test-asd-file "t-lack-middleware-static.asd"
4644 ;; XXX: Component :LACK not found
4645 #:tests? #f))
4646 (native-inputs
4647 `(("prove-asdf" ,sbcl-prove-asdf)))
4648 (inputs
4649 `(("sbcl-ironclad" ,sbcl-ironclad)
4650 ("sbcl-trivial-mimes" ,sbcl-trivial-mimes)
4651 ("sbcl-local-time" ,sbcl-local-time)))
4652 (home-page "https://github.com/fukamachi/lack")
4653 (synopsis "Lack, the core of Clack")
4654 (description
4655 "Lack is a Common Lisp library which allows web applications to be
4656 constructed of modular components. It was originally a part of Clack, however
4657 it's going to be rewritten as an individual project since Clack v2 with
4658 performance and simplicity in mind.")
4659 (license license:llgpl))))
4660
4661 (define-public cl-lack-middleware-static
4662 (sbcl-package->cl-source-package sbcl-lack-middleware-static))
4663
4664 (define-public sbcl-lack
4665 (let ((commit "abff8efeb0c3a848e6bb0022f2b8b7fa3a1bc88b")
4666 (revision "1"))
4667 (package
4668 (name "sbcl-lack")
4669 (version (git-version "0.1.0" revision commit))
4670 (source
4671 (origin
4672 (method git-fetch)
4673 (uri (git-reference
4674 (url "https://github.com/fukamachi/lack.git")
4675 (commit commit)))
4676 (file-name (git-file-name "lack" version))
4677 (sha256
4678 (base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85"))))
4679 (build-system asdf-build-system/sbcl)
4680 (arguments
4681 '(#:test-asd-file "t-lack.asd"
4682 ;; XXX: Component :CLACK not found
4683 #:tests? #f))
4684 (native-inputs
4685 `(("prove-asdf" ,sbcl-prove-asdf)))
4686 (inputs
4687 `(("sbcl-lack-component" ,sbcl-lack-component)
4688 ("sbcl-lack-util" ,sbcl-lack-util)))
4689 (home-page "https://github.com/fukamachi/lack")
4690 (synopsis "Lack, the core of Clack")
4691 (description
4692 "Lack is a Common Lisp library which allows web applications to be
4693 constructed of modular components. It was originally a part of Clack, however
4694 it's going to be rewritten as an individual project since Clack v2 with
4695 performance and simplicity in mind.")
4696 (license license:llgpl))))
4697
4698 (define-public cl-lack
4699 (sbcl-package->cl-source-package sbcl-lack))
4700
4701 (define-public sbcl-ningle
4702 (let ((commit "50bd4f09b5a03a7249bd4d78265d6451563b25ad")
4703 (revision "1"))
4704 (package
4705 (name "sbcl-ningle")
4706 (version (git-version "0.3.0" revision commit))
4707 (source
4708 (origin
4709 (method git-fetch)
4710 (uri (git-reference
4711 (url "https://github.com/fukamachi/ningle.git")
4712 (commit commit)))
4713 (file-name (git-file-name name version))
4714 (sha256
4715 (base32 "1bsl8cnxhacb8p92z9n89vhk1ikmij5zavk0m2zvmj7iqm79jzgw"))))
4716 (build-system asdf-build-system/sbcl)
4717 (arguments
4718 ;; TODO: pull in clack-test
4719 '(#:tests? #f
4720 #:phases
4721 (modify-phases %standard-phases
4722 (delete 'cleanup-files)
4723 (delete 'cleanup)
4724 (add-before 'cleanup 'combine-fasls
4725 (lambda* (#:key outputs #:allow-other-keys)
4726 (let* ((out (assoc-ref outputs "out"))
4727 (lib (string-append out "/lib/sbcl"))
4728 (ningle-path (string-append lib "/ningle"))
4729 (fasl-files (find-files out "\\.fasl$")))
4730 (mkdir-p ningle-path)
4731 (let ((fasl-path (lambda (name)
4732 (string-append ningle-path
4733 "/"
4734 (basename name)
4735 "--system.fasl"))))
4736 (for-each (lambda (file)
4737 (rename-file file
4738 (fasl-path
4739 (basename file ".fasl"))))
4740 fasl-files))
4741 fasl-files)
4742 #t)))))
4743 (native-inputs
4744 `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
4745 ("sbcl-prove" ,sbcl-prove)))
4746 (inputs
4747 `(("sbcl-cl-syntax" ,sbcl-cl-syntax)
4748 ("sbcl-cl-syntax-annot" ,sbcl-cl-syntax-annot)
4749 ("sbcl-myway" ,sbcl-myway)
4750 ("sbcl-lack-request" ,sbcl-lack-request)
4751 ("sbcl-lack-response" ,sbcl-lack-response)
4752 ("sbcl-lack-component" ,sbcl-lack-component)
4753 ("sbcl-alexandria" ,sbcl-alexandria)
4754 ("sbcl-babel" ,sbcl-babel)))
4755 (home-page "http://8arrow.org/ningle/")
4756 (synopsis "Super micro framework for Common Lisp")
4757 (description
4758 "Ningle is a lightweight web application framework for Common Lisp.")
4759 (license license:llgpl))))
4760
4761 (define-public cl-ningle
4762 (sbcl-package->cl-source-package sbcl-ningle))
4763
4764 (define-public sbcl-clack
4765 (let ((commit "e3e032843bb1220ab96263c411aa7f2feb4746e0")
4766 (revision "1"))
4767 (package
4768 (name "sbcl-clack")
4769 (version (git-version "2.0.0" revision commit))
4770 (source
4771 (origin
4772 (method git-fetch)
4773 (uri (git-reference
4774 (url "https://github.com/fukamachi/clack.git")
4775 (commit commit)))
4776 (file-name (git-file-name name version))
4777 (sha256
4778 (base32 "1ymzs6qyrwhlj6cgqsnpyn6g5cbp7a3s1vgxwna20y2q7y4iacy0"))))
4779 (build-system asdf-build-system/sbcl)
4780 (inputs
4781 `(("sbcl-lack" ,sbcl-lack)
4782 ("sbcl-lack-middleware-backtrace" ,sbcl-lack-middleware-backtrace)
4783 ("sbcl-bordeaux-threads" ,sbcl-bordeaux-threads)))
4784 (home-page "https://github.com/fukamachi/clack")
4785 (synopsis "Web Application Environment for Common Lisp")
4786 (description
4787 "Clack is a web application environment for Common Lisp inspired by
4788 Python's WSGI and Ruby's Rack.")
4789 (license license:llgpl))))
4790
4791 (define-public cl-clack
4792 (sbcl-package->cl-source-package sbcl-clack))
4793
4794 (define-public sbcl-log4cl
4795 (let ((commit "611e094458504b938d49de904eab141285328c7c")
4796 (revision "1"))
4797 (package
4798 (name "sbcl-log4cl")
4799 (build-system asdf-build-system/sbcl)
4800 (version "1.1.2")
4801 (source
4802 (origin
4803 (method git-fetch)
4804 (uri (git-reference
4805 (url "https://github.com/sharplispers/log4cl")
4806 (commit commit)))
4807 (file-name (git-file-name name version))
4808 (sha256
4809 (base32
4810 "08jly0s0g26b56hhpfizxsb4j0yvbh946sd205gr42dkzv8l7dsc"))))
4811 ;; FIXME: tests require stefil, sbcl-hu.dwim.stefil wont work
4812 (arguments
4813 `(#:tests? #f))
4814 (inputs `(("bordeaux-threads" ,sbcl-bordeaux-threads)))
4815 (synopsis "Common Lisp logging framework, modeled after Log4J")
4816 (home-page "https://github.com/7max/log4cl")
4817 (description "This is a Common Lisp logging framework that can log at
4818 various levels and mix text with expressions.")
4819 (license license:asl2.0))))
4820
4821 (define-public cl-log4cl
4822 (sbcl-package->cl-source-package sbcl-log4cl))
4823
4824 (define-public ecl-log4cl
4825 (sbcl-package->ecl-package sbcl-log4cl))
4826
4827 (define-public sbcl-find-port
4828 (let ((commit "00c96a25af93a0f8681d34ec548861f2d7485478")
4829 (revision "1"))
4830 (package
4831 (name "sbcl-find-port")
4832 (build-system asdf-build-system/sbcl)
4833 (version "0.1")
4834 (home-page "https://github.com/eudoxia0/find-port")
4835 (source
4836 (origin
4837 (method git-fetch)
4838 (uri (git-reference
4839 (url home-page)
4840 (commit commit)))
4841 (file-name (git-file-name name version))
4842 (sha256
4843 (base32
4844 "0d6dzbb45jh0rx90wgs6v020k2xa87mvzas3mvfzvivjvqqlpryq"))))
4845 (native-inputs
4846 `(("fiveam" ,sbcl-fiveam)))
4847 (inputs
4848 `(("sbcl-usocket" ,sbcl-usocket)))
4849 (synopsis "Find open ports programmatically in Common Lisp")
4850 (description "This is a small Common Lisp library that finds an open
4851 port within a range.")
4852 (license license:expat))))
4853
4854 (define-public cl-find-port
4855 (sbcl-package->cl-source-package sbcl-find-port))
4856
4857 (define-public ecl-find-port
4858 (sbcl-package->ecl-package sbcl-find-port))
4859
4860 (define-public sbcl-clunit
4861 (let ((commit "6f6d72873f0e1207f037470105969384f8380628")
4862 (revision "1"))
4863 (package
4864 (name "sbcl-clunit")
4865 (version (git-version "0.2.3" revision commit))
4866 (source
4867 (origin
4868 (method git-fetch)
4869 (uri (git-reference
4870 (url "https://github.com/tgutu/clunit.git")
4871 (commit commit)))
4872 (file-name (git-file-name name version))
4873 (sha256
4874 (base32
4875 "1idf2xnqzlhi8rbrqmzpmb3i1l6pbdzhhajkmhwbp6qjkmxa4h85"))))
4876 (build-system asdf-build-system/sbcl)
4877 (synopsis "CLUnit is a Common Lisp unit testing framework")
4878 (description
4879 "CLUnit is a Common Lisp unit testing framework. It is designed
4880 to be easy to use so that you can quickly start testing. CLUnit
4881 provides a rich set of features aimed at improving your unit testing
4882 experience.")
4883 (home-page "http://tgutu.github.io/clunit/")
4884 ;; MIT License
4885 (license license:expat))))
4886
4887 (define-public cl-clunit
4888 (sbcl-package->cl-source-package sbcl-clunit))
4889
4890 (define-public ecl-clunit
4891 (sbcl-package->ecl-package sbcl-clunit))
4892
4893 (define-public sbcl-py4cl
4894 (let ((commit "4c8a2b0814fd311f978964f825ce012290f60136")
4895 (revision "1"))
4896 (package
4897 (name "sbcl-py4cl")
4898 (version (git-version "0.0.0" revision commit))
4899 (source
4900 (origin
4901 (method git-fetch)
4902 (uri (git-reference
4903 (url "https://github.com/bendudson/py4cl.git")
4904 (commit commit)))
4905 (file-name (git-file-name name version))
4906 (sha256
4907 (base32
4908 "15mk7qdqjkj56gdnbyrdyz6r7m1h26ldvn6ch96pmvg5vmr1m45r"))
4909 (modules '((guix build utils)))))
4910 (build-system asdf-build-system/sbcl)
4911 (native-inputs
4912 `(("sbcl-clunit" ,sbcl-clunit)))
4913 (inputs
4914 `(("sbcl-trivial-garbage" ,sbcl-trivial-garbage)))
4915 (propagated-inputs
4916 ;; This package doesn't do anything without python available
4917 `(("python" ,python)
4918 ;; For multi-dimensional array support
4919 ("python-numpy" ,python-numpy)))
4920 (arguments
4921 '(#:phases
4922 (modify-phases %standard-phases
4923 (add-after 'unpack 'replace-*base-directory*-var
4924 (lambda* (#:key outputs #:allow-other-keys)
4925 ;; In the ASD, the author makes an attempt to
4926 ;; programatically determine the location of the
4927 ;; source-code so lisp can call into "py4cl.py". We can
4928 ;; hard-code this since we know where this file will
4929 ;; reside.
4930 (substitute* "src/callpython.lisp"
4931 (("py4cl/config:\\*base-directory\\*")
4932 (string-append
4933 "\""
4934 (assoc-ref outputs "out")
4935 "/share/common-lisp/sbcl-source/py4cl/"
4936 "\""))))))))
4937 (synopsis "Call python from Common Lisp")
4938 (description
4939 "Py4CL is a bridge between Common Lisp and Python, which enables Common
4940 Lisp to interact with Python code. It uses streams to communicate with a
4941 separate python process, the approach taken by cl4py. This is different to
4942 the CFFI approach used by burgled-batteries, but has the same goal.")
4943 (home-page "https://github.com/bendudson/py4cl")
4944 ;; MIT License
4945 (license license:expat))))
4946
4947 (define-public cl-py4cl
4948 (sbcl-package->cl-source-package sbcl-py4cl))
4949
4950 (define-public ecl-py4cl
4951 (sbcl-package->ecl-package sbcl-py4cl))
4952
4953 (define-public sbcl-parse-declarations
4954 (package
4955 (name "sbcl-parse-declarations")
4956 (version "1.0.0")
4957 (source
4958 (origin
4959 (method url-fetch)
4960 (uri (string-append
4961 "http://beta.quicklisp.org/archive/parse-declarations/"
4962 "2010-10-06/parse-declarations-20101006-darcs.tgz"))
4963 (sha256
4964 (base32
4965 "0r85b0jfacd28kr65kw9c13dx4i6id1dpmby68zjy63mqbnyawrd"))))
4966 (build-system asdf-build-system/sbcl)
4967 (arguments
4968 `(#:asd-file "parse-declarations-1.0.asd"
4969 #:asd-system-name "parse-declarations-1.0"))
4970 (home-page "https://common-lisp.net/project/parse-declarations/")
4971 (synopsis "Parse, filter, and build declarations")
4972 (description
4973 "Parse-Declarations is a Common Lisp library to help writing
4974 macros which establish bindings. To be semantically correct, such
4975 macros must take user declarations into account, as these may affect
4976 the bindings they establish. Yet the ANSI standard of Common Lisp does
4977 not provide any operators to work with declarations in a convenient,
4978 high-level way. This library provides such operators.")
4979 ;; MIT License
4980 (license license:expat)))
4981
4982 (define-public cl-parse-declarations
4983 (sbcl-package->cl-source-package sbcl-parse-declarations))
4984
4985 (define-public ecl-parse-declarations
4986 (sbcl-package->ecl-package sbcl-parse-declarations))
4987
4988 (define-public sbcl-cl-quickcheck
4989 (let ((commit "807b2792a30c883a2fbecea8e7db355b50ba662f")
4990 (revision "1"))
4991 (package
4992 (name "sbcl-cl-quickcheck")
4993 (version (git-version "0.0.4" revision commit))
4994 (source
4995 (origin
4996 (method git-fetch)
4997 (uri (git-reference
4998 (url "https://github.com/mcandre/cl-quickcheck.git")
4999 (commit commit)))
5000 (file-name (git-file-name name version))
5001 (sha256
5002 (base32
5003 "165lhypq5xkcys6hvzb3jq7ywnmqvzaflda29qk2cbs3ggas4767"))))
5004 (build-system asdf-build-system/sbcl)
5005 (synopsis
5006 "Common Lisp port of the QuickCheck unit test framework")
5007 (description
5008 "Common Lisp port of the QuickCheck unit test framework")
5009 (home-page "https://github.com/mcandre/cl-quickcheck")
5010 ;; MIT
5011 (license license:expat))))
5012
5013 (define-public cl-cl-quickcheck
5014 (sbcl-package->cl-source-package sbcl-cl-quickcheck))
5015
5016 (define-public ecl-cl-quickcheck
5017 (sbcl-package->ecl-package sbcl-cl-quickcheck))
5018
5019 (define-public sbcl-burgled-batteries3
5020 (let ((commit "9c0f6667e1a71ddf77e21793a0bea524710fef6e")
5021 (revision "1"))
5022 (package
5023 (name "sbcl-burgled-batteries3")
5024 (version (git-version "0.0.0" revision commit))
5025 (source
5026 (origin
5027 (method git-fetch)
5028 (uri (git-reference
5029 (url "https://github.com/snmsts/burgled-batteries3.git")
5030 (commit commit)))
5031 (file-name (git-file-name name version))
5032 (sha256
5033 (base32
5034 "0b726kz2xxcg5l930gz035rsdvhxrzmp05iwfwympnb4z4ammicb"))))
5035 (build-system asdf-build-system/sbcl)
5036 (arguments
5037 '(#:tests? #f
5038 #:phases
5039 (modify-phases %standard-phases
5040 (add-after 'unpack 'set-*cpython-include-dir*-var
5041 (lambda* (#:key inputs #:allow-other-keys)
5042 (substitute* "grovel-include-dir.lisp"
5043 (("\\(defparameter \\*cpython-include-dir\\* \\(detect-python\\)\\)")
5044 (string-append
5045 "(defparameter *cpython-include-dir* \""
5046 (assoc-ref inputs "python")
5047 "/include/python3.7m"
5048 "\")")))
5049 (substitute* "ffi-interface.lisp"
5050 (("\\*cpython-lib\\*")
5051 (format #f "'(\"~a/lib/libpython3.so\")"
5052 (assoc-ref inputs "python"))))
5053 #t)))))
5054 (native-inputs
5055 `(("python" ,python)
5056 ("sbcl-cl-fad" ,sbcl-cl-fad)
5057 ("sbcl-lift" ,sbcl-lift)
5058 ("sbcl-cl-quickcheck" ,sbcl-cl-quickcheck)))
5059 (inputs
5060 `(("sbcl-cffi" ,sbcl-cffi)
5061 ("sbcl-cffi-grovel" ,sbcl-cffi-grovel)
5062 ("sbcl-alexandria" , sbcl-alexandria)
5063 ("sbcl-parse-declarations-1.0" ,sbcl-parse-declarations)
5064 ("sbcl-trivial-garbage" ,sbcl-trivial-garbage)))
5065 (synopsis "Bridge between Python and Lisp (FFI bindings, etc.)")
5066 (description
5067 "This package provides a shim between Python3 (specifically, the
5068 CPython implementation of Python) and Common Lisp.")
5069 (home-page "https://github.com/snmsts/burgled-batteries3")
5070 ;; MIT
5071 (license license:expat))))
5072
5073 (define-public cl-burgled-batteries3
5074 (sbcl-package->cl-source-package sbcl-burgled-batteries3))
5075
5076 (define-public ecl-burgled-batteries3
5077 (sbcl-package->ecl-package sbcl-burgled-batteries3))
5078
5079 (define-public sbcl-metabang-bind
5080 (let ((commit "c93b7f7e1c18c954c2283efd6a7fdab36746ab5e")
5081 (revision "1"))
5082 (package
5083 (name "sbcl-metabang-bind")
5084 (version (git-version "0.8.0" revision commit))
5085 (source
5086 (origin
5087 (method git-fetch)
5088 (uri (git-reference
5089 (url "https://github.com/gwkkwg/metabang-bind.git")
5090 (commit commit)))
5091 (file-name (git-file-name name version))
5092 (sha256
5093 (base32
5094 "0hd0kr91795v77akpbcyqiss9p0p7ypa9dznrllincnmgvsxlmf0"))))
5095 (build-system asdf-build-system/sbcl)
5096 (native-inputs
5097 `(("sbcl-lift" ,sbcl-lift)))
5098 (synopsis "Macro that generalizes @code{multiple-value-bind} etc.")
5099 (description
5100 "Bind extends the idea of of let and destructing to provide a uniform
5101 syntax for all your accessor needs. It combines @code{let},
5102 @code{destructuring-bind}, @code{with-slots}, @code{with-accessors}, structure
5103 editing, property or association-lists, and @code{multiple-value-bind} and a
5104 whole lot more into a single form.")
5105 (home-page "https://common-lisp.net/project/metabang-bind/")
5106 ;; MIT License
5107 (license license:expat))))
5108
5109 (define-public cl-metabang-bind
5110 (sbcl-package->cl-source-package sbcl-metabang-bind))
5111
5112 (define-public ecl-metabang-bind
5113 (sbcl-package->ecl-package sbcl-metabang-bind))
5114
5115 (define-public sbcl-fare-utils
5116 (let ((commit "66e9c6f1499140bc00ccc22febf2aa528cbb5724")
5117 (revision "1"))
5118 (package
5119 (name "sbcl-fare-utils")
5120 (version (git-version "1.0.0.5" revision commit))
5121 (source
5122 (origin
5123 (method git-fetch)
5124 (uri
5125 (git-reference
5126 (url
5127 "https://gitlab.common-lisp.net/frideau/fare-utils.git")
5128 (commit commit)))
5129 (file-name (git-file-name name version))
5130 (sha256
5131 (base32
5132 "01wsr1aap3jdzhn4hrqjbhsjx6qci9dbd3gh4gayv1p49rbg8aqr"))))
5133 (build-system asdf-build-system/sbcl)
5134 (arguments
5135 `(#:test-asd-file "test/fare-utils-test.asd"))
5136 (native-inputs
5137 `(("sbcl-hu.dwim.stefil" ,sbcl-hu.dwim.stefil)))
5138 (synopsis "Collection of utilities and data structures")
5139 (description
5140 "fare-utils is a small collection of utilities. It contains a lot of
5141 basic everyday functions and macros.")
5142 (home-page "https://gitlab.common-lisp.net/frideau/fare-utils")
5143 ;; MIT License
5144 (license license:expat))))
5145
5146 (define-public cl-fare-utils
5147 (sbcl-package->cl-source-package sbcl-fare-utils))
5148
5149 (define-public ecl-fare-utils
5150 (sbcl-package->ecl-package sbcl-fare-utils))
5151
5152 (define-public sbcl-trivial-utf-8
5153 (let ((commit "4d427cfbb1c452436a0efb71c3205c9da67f718f")
5154 (revision "1"))
5155 (package
5156 (name "sbcl-trivial-utf-8")
5157 (version (git-version "0.0.0" revision commit))
5158 (source
5159 (origin
5160 (method git-fetch)
5161 (uri
5162 (git-reference
5163 (url (string-append "https://gitlab.common-lisp.net/"
5164 "trivial-utf-8/trivial-utf-8.git"))
5165 (commit commit)))
5166 (file-name (git-file-name name version))
5167 (sha256
5168 (base32
5169 "1jz27gz8gvqdmvp3k9bxschs6d5b3qgk94qp2bj6nv1d0jc3m1l1"))))
5170 (arguments
5171 ;; Guix incorrectly assumes the "8" is part of the version
5172 ;; number and lobs it off.
5173 `(#:asd-file "trivial-utf-8.asd"
5174 #:asd-system-name "trivial-utf-8"))
5175 (build-system asdf-build-system/sbcl)
5176 (synopsis "UTF-8 input/output library")
5177 (description
5178 "The Babel library solves a similar problem while understanding more
5179 encodings. Trivial UTF-8 was written before Babel existed, but for new
5180 projects you might be better off going with Babel. The one plus that Trivial
5181 UTF-8 has is that it doesn't depend on any other libraries.")
5182 (home-page "https://common-lisp.net/project/trivial-utf-8/")
5183 (license license:bsd-3))))
5184
5185 (define-public cl-trivial-utf-8
5186 (sbcl-package->cl-source-package sbcl-trivial-utf-8))
5187
5188 (define-public ecl-trivial-utf-8
5189 (sbcl-package->ecl-package sbcl-trivial-utf-8))
5190
5191 (define-public sbcl-idna
5192 (package
5193 (name "sbcl-idna")
5194 (build-system asdf-build-system/sbcl)
5195 (version "0.2.2")
5196 (home-page "https://github.com/antifuchs/idna")
5197 (source
5198 (origin
5199 (method git-fetch)
5200 (uri (git-reference
5201 (url home-page)
5202 (commit version)))
5203 (file-name (git-file-name name version))
5204 (sha256
5205 (base32
5206 "00nbr3mffxhlq14gg9d16pa6691s4qh35inyw76v906s77khm5a2"))))
5207 (inputs
5208 `(("split-sequence" ,sbcl-split-sequence)))
5209 (synopsis "IDNA string encoding and decoding routines for Common Lisp")
5210 (description "This Common Lisp library provides string encoding and
5211 decoding routines for IDNA, the International Domain Names in Applications.")
5212 (license license:expat)))
5213
5214 (define-public cl-idna
5215 (sbcl-package->cl-source-package sbcl-idna))
5216
5217 (define-public ecl-idna
5218 (sbcl-package->ecl-package sbcl-idna))
5219
5220 (define-public sbcl-swap-bytes
5221 (package
5222 (name "sbcl-swap-bytes")
5223 (build-system asdf-build-system/sbcl)
5224 (version "1.1")
5225 (home-page "https://github.com/sionescu/swap-bytes")
5226 (source
5227 (origin
5228 (method git-fetch)
5229 (uri (git-reference
5230 (url home-page)
5231 (commit (string-append "v" version))))
5232 (file-name (git-file-name name version))
5233 (sha256
5234 (base32
5235 "1qysbv0jngdfkv53y874qjhcxc4qi8ixaqq6j8bzxh5z0931wv55"))))
5236 (inputs
5237 `(("trivial-features" ,sbcl-trivial-features)))
5238 (native-inputs
5239 `(("fiveam" ,sbcl-fiveam)))
5240 (arguments
5241 ;; TODO: Tests fail, why?
5242 `(#:tests? #f))
5243 (synopsis "Efficient endianness conversion for Common Lisp")
5244 (description "This Common Lisp library provides optimized byte-swapping
5245 primitives. The library can change endianness of unsigned integers of length
5246 1/2/4/8. Very useful in implementing various network protocols and file
5247 formats.")
5248 (license license:expat)))
5249
5250 (define-public cl-swap-bytes
5251 (sbcl-package->cl-source-package sbcl-swap-bytes))
5252
5253 (define-public ecl-swap-bytes
5254 (sbcl-package->ecl-package sbcl-swap-bytes))
5255
5256 (define-public sbcl-iolib.asdf
5257 ;; Latest release is from June 2017.
5258 (let ((commit "81e20614c0d27f9605bf9766214e236fd31b99b4")
5259 (revision "1"))
5260 (package
5261 (name "sbcl-iolib.asdf")
5262 (build-system asdf-build-system/sbcl)
5263 (version "0.8.3")
5264 (home-page "https://github.com/sionescu/iolib")
5265 (source
5266 (origin
5267 (method git-fetch)
5268 (uri (git-reference
5269 (url home-page)
5270 (commit commit)))
5271 (file-name (git-file-name name version))
5272 (sha256
5273 (base32
5274 "1j81r0wm7nfbwl991f26s4npcy7kybzybd3m47rbxy31h0cfcmdm"))))
5275 (inputs
5276 `(("alexandria" ,sbcl-alexandria)))
5277 (arguments
5278 '(#:asd-file "iolib.asdf.asd"))
5279 (synopsis "ASDF component classes for IOLib, a Common Lisp I/O library")
5280 (description "IOlib is to be a better and more modern I/O library than
5281 the standard Common Lisp library. It contains a socket library, a DNS
5282 resolver, an I/O multiplexer(which supports @code{select(2)}, @code{epoll(4)}
5283 and @code{kqueue(2)}), a pathname library and file-system utilities.")
5284 (license license:expat))))
5285
5286 (define-public sbcl-iolib.conf
5287 (package
5288 (inherit sbcl-iolib.asdf)
5289 (name "sbcl-iolib.conf")
5290 (inputs
5291 `(("iolib.asdf" ,sbcl-iolib.asdf)))
5292 (arguments
5293 '(#:asd-file "iolib.conf.asd"))
5294 (synopsis "Compile-time configuration for IOLib, a Common Lisp I/O library")))
5295
5296 (define-public sbcl-iolib.common-lisp
5297 (package
5298 (inherit sbcl-iolib.asdf)
5299 (name "sbcl-iolib.common-lisp")
5300 (inputs
5301 `(("iolib.asdf" ,sbcl-iolib.asdf)
5302 ("iolib.conf" ,sbcl-iolib.conf)))
5303 (arguments
5304 '(#:asd-file "iolib.common-lisp.asd"))
5305 (synopsis "Slightly modified Common Lisp for IOLib, a Common Lisp I/O library")))
5306
5307 (define-public sbcl-iolib.base
5308 (package
5309 (inherit sbcl-iolib.asdf)
5310 (name "sbcl-iolib.base")
5311 (inputs
5312 `(("iolib.asdf" ,sbcl-iolib.asdf)
5313 ("iolib.conf" ,sbcl-iolib.conf)
5314 ("iolib.common-lisp" ,sbcl-iolib.common-lisp)
5315 ("split-sequence" ,sbcl-split-sequence)))
5316 (arguments
5317 '(#:asd-file "iolib.base.asd"))
5318 (synopsis "Base package for IOLib, a Common Lisp I/O library")))
5319
5320 (define-public sbcl-iolib.grovel
5321 (package
5322 (inherit sbcl-iolib.asdf)
5323 (name "sbcl-iolib.grovel")
5324 (inputs
5325 `(("iolib.asdf" ,sbcl-iolib.asdf)
5326 ("iolib.conf" ,sbcl-iolib.conf)
5327 ("iolib.base", sbcl-iolib.base)
5328 ("cffi", sbcl-cffi)))
5329 (arguments
5330 '(#:asd-file "iolib.grovel.asd"
5331 #:phases
5332 (modify-phases %standard-phases
5333 (add-after 'install 'install-header
5334 (lambda* (#:key outputs #:allow-other-keys)
5335 ;; This header is required by sbcl-iolib.
5336 (install-file "src/grovel/grovel-common.h"
5337 (string-append (assoc-ref outputs "out")
5338 "/lib/sbcl"))
5339 #t)))))
5340 (synopsis "CFFI Groveller for IOLib, a Common Lisp I/O library")))
5341
5342 (define-public sbcl-iolib
5343 (package
5344 (inherit sbcl-iolib.asdf)
5345 (name "sbcl-iolib")
5346 (inputs
5347 `(("iolib.asdf" ,sbcl-iolib.asdf)
5348 ("iolib.conf" ,sbcl-iolib.conf)
5349 ("iolib.grovel" ,sbcl-iolib.grovel)
5350 ("iolib.base" ,sbcl-iolib.base)
5351 ("bordeaux-threads" ,sbcl-bordeaux-threads)
5352 ("idna" ,sbcl-idna)
5353 ("swap-bytes" ,sbcl-swap-bytes)
5354 ("libfixposix" ,libfixposix)
5355 ("cffi" ,sbcl-cffi)))
5356 (native-inputs
5357 `(("fiveam" ,sbcl-fiveam)))
5358 (arguments
5359 '(#:asd-file "iolib.asd"
5360 #:asd-system-name "iolib"
5361 #:test-asd-file "iolib.tests.asd"
5362 #:phases
5363 (modify-phases %standard-phases
5364 (add-after 'unpack 'fix-paths
5365 (lambda* (#:key inputs #:allow-other-keys)
5366 (substitute* "src/syscalls/ffi-functions-unix.lisp"
5367 (("\\(:default \"libfixposix\"\\)")
5368 (string-append
5369 "(:default \""
5370 (assoc-ref inputs "libfixposix") "/lib/libfixposix\")")))
5371 ;; Socket tests need Internet access, disable them.
5372 (substitute* "iolib.tests.asd"
5373 (("\\(:file \"sockets\" :depends-on \\(\"pkgdcl\" \"defsuites\"\\)\\)")
5374 "")))))))
5375 (synopsis "Common Lisp I/O library")))
5376
5377 (define-public cl-iolib
5378 (sbcl-package->cl-source-package sbcl-iolib))
5379
5380 (define sbcl-iolib+multiplex
5381 (package
5382 (inherit sbcl-iolib)
5383 (name "sbcl-iolib+multiplex")
5384 (arguments
5385 (substitute-keyword-arguments (package-arguments sbcl-iolib)
5386 ((#:asd-system-name _) "iolib/multiplex")))))
5387
5388 (define sbcl-iolib+syscalls
5389 (package
5390 (inherit sbcl-iolib)
5391 (name "sbcl-iolib+syscalls")
5392 (arguments
5393 (substitute-keyword-arguments (package-arguments sbcl-iolib)
5394 ((#:asd-system-name _) "iolib/syscalls")))))
5395
5396 (define sbcl-iolib+streams
5397 (package
5398 (inherit sbcl-iolib)
5399 (name "sbcl-iolib+streams")
5400 (arguments
5401 (substitute-keyword-arguments (package-arguments sbcl-iolib)
5402 ((#:asd-system-name _) "iolib/streams")))))
5403
5404 (define sbcl-iolib+sockets
5405 (package
5406 (inherit sbcl-iolib)
5407 (name "sbcl-iolib+sockets")
5408 (arguments
5409 (substitute-keyword-arguments (package-arguments sbcl-iolib)
5410 ((#:asd-system-name _) "iolib/sockets")))))
5411
5412 (define-public sbcl-ieee-floats
5413 (let ((commit "566b51a005e81ff618554b9b2f0b795d3b29398d")
5414 (revision "1"))
5415 (package
5416 (name "sbcl-ieee-floats")
5417 (build-system asdf-build-system/sbcl)
5418 (version (git-version "20170924" revision commit))
5419 (home-page "https://github.com/marijnh/ieee-floats/")
5420 (source
5421 (origin
5422 (method git-fetch)
5423 (uri (git-reference
5424 (url home-page)
5425 (commit commit)))
5426 (file-name (git-file-name name version))
5427 (sha256
5428 (base32
5429 "1xyj49j9x3lc84cv3dhbf9ja34ywjk1c46dklx425fxw9mkwm83m"))))
5430 (native-inputs
5431 `(("fiveam" ,sbcl-fiveam)))
5432 (synopsis "IEEE 754 binary representation for floats in Common Lisp")
5433 (description "This is a Common Lisp library that allows to convert
5434 floating point values to IEEE 754 binary representation.")
5435 (license license:bsd-3))))
5436
5437 (define-public cl-ieee-floats
5438 (sbcl-package->cl-source-package sbcl-ieee-floats))
5439
5440 (define sbcl-closure-common
5441 (let ((commit "e3c5f5f454b72b01b89115e581c3c52a7e201e5c")
5442 (revision "1"))
5443 (package
5444 (name "sbcl-closure-common")
5445 (build-system asdf-build-system/sbcl)
5446 (version (git-version "20101006" revision commit))
5447 (home-page "https://common-lisp.net/project/cxml/")
5448 (source
5449 (origin
5450 (method git-fetch)
5451 (uri (git-reference
5452 (url "https://github.com/sharplispers/closure-common")
5453 (commit commit)))
5454 (file-name (git-file-name name version))
5455 (sha256
5456 (base32
5457 "0k5r2qxn122pxi301ijir3nayi9sg4d7yiy276l36qmzwhp4mg5n"))))
5458 (inputs
5459 `(("trivial-gray-streams" ,sbcl-trivial-gray-streams)
5460 ("babel" ,sbcl-babel)))
5461 (synopsis "Support Common Lisp library for CXML")
5462 (description "Closure-common is an internal helper library. The name
5463 Closure is a reference to the web browser it was originally written for.")
5464 ;; TODO: License?
5465 (license #f))))
5466
5467 (define-public sbcl-cxml+xml
5468 (let ((commit "00b22bf4c4cf11c993d5866fae284f95ab18e6bf")
5469 (revision "1"))
5470 (package
5471 (name "sbcl-cxml+xml")
5472 (build-system asdf-build-system/sbcl)
5473 (version (git-version "0.0.0" revision commit))
5474 (home-page "https://common-lisp.net/project/cxml/")
5475 (source
5476 (origin
5477 (method git-fetch)
5478 (uri (git-reference
5479 (url "https://github.com/sharplispers/cxml")
5480 (commit commit)))
5481 (file-name (git-file-name name version))
5482 (sha256
5483 (base32
5484 "13kif7rf3gqdycsk9zq0d7y0g9y81krkl0z87k0p2fkbjfgrph37"))))
5485 (inputs
5486 `(("closure-common" ,sbcl-closure-common)
5487 ("puri" ,sbcl-puri)
5488 ("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
5489 (arguments
5490 `(#:asd-file "cxml.asd"
5491 #:asd-system-name "cxml/xml"))
5492 (synopsis "Common Lisp XML parser")
5493 (description "CXML implements a namespace-aware, validating XML 1.0
5494 parser as well as the DOM Level 2 Core interfaces. Two parser interfaces are
5495 offered, one SAX-like, the other similar to StAX.")
5496 (license license:llgpl))))
5497
5498 (define sbcl-cxml+dom
5499 (package
5500 (inherit sbcl-cxml+xml)
5501 (name "sbcl-cxml+dom")
5502 (inputs
5503 `(("closure-common" ,sbcl-closure-common)
5504 ("puri" ,sbcl-puri)
5505 ("cxml+xml" ,sbcl-cxml+xml)))
5506 (arguments
5507 `(#:asd-file "cxml.asd"
5508 #:asd-system-name "cxml/dom"))))
5509
5510 (define sbcl-cxml+klacks
5511 (package
5512 (inherit sbcl-cxml+xml)
5513 (name "sbcl-cxml+klacks")
5514 (inputs
5515 `(("closure-common" ,sbcl-closure-common)
5516 ("puri" ,sbcl-puri)
5517 ("cxml+xml" ,sbcl-cxml+xml)))
5518 (arguments
5519 `(#:asd-file "cxml.asd"
5520 #:asd-system-name "cxml/klacks"))))
5521
5522 (define sbcl-cxml+test
5523 (package
5524 (inherit sbcl-cxml+xml)
5525 (name "sbcl-cxml+test")
5526 (inputs
5527 `(("closure-common" ,sbcl-closure-common)
5528 ("puri" ,sbcl-puri)
5529 ("cxml+xml" ,sbcl-cxml+xml)))
5530 (arguments
5531 `(#:asd-file "cxml.asd"
5532 #:asd-system-name "cxml/test"))))
5533
5534 (define-public sbcl-cxml
5535 (package
5536 (inherit sbcl-cxml+xml)
5537 (name "sbcl-cxml")
5538 (inputs
5539 `(("closure-common" ,sbcl-closure-common)
5540 ("puri" ,sbcl-puri)
5541 ("trivial-gray-streams" ,sbcl-trivial-gray-streams)
5542 ("cxml+dom" ,sbcl-cxml+dom)
5543 ("cxml+klacks" ,sbcl-cxml+klacks)
5544 ("cxml+test" ,sbcl-cxml+test)))
5545 (arguments
5546 `(#:asd-file "cxml.asd"
5547 #:asd-system-name "cxml"
5548 #:phases
5549 (modify-phases %standard-phases
5550 (add-after 'build 'install-dtd
5551 (lambda* (#:key outputs #:allow-other-keys)
5552 (install-file "catalog.dtd"
5553 (string-append
5554 (assoc-ref outputs "out")
5555 "/lib/" (%lisp-type)))))
5556 (add-after 'create-asd 'remove-component
5557 ;; XXX: The original .asd has no components, but our build system
5558 ;; creates an entry nonetheless. We need to remove it for the
5559 ;; generated .asd to load properly. See trivia.trivial for a
5560 ;; similar problem.
5561 (lambda* (#:key outputs #:allow-other-keys)
5562 (let* ((out (assoc-ref outputs "out"))
5563 (asd (string-append out "/lib/sbcl/cxml.asd")))
5564 (substitute* asd
5565 ((" :components
5566 ")
5567 ""))
5568 (substitute* asd
5569 ((" *\\(\\(:compiled-file \"cxml--system\"\\)\\)")
5570 ""))))))))))
5571
5572 (define-public cl-cxml
5573 (sbcl-package->cl-source-package sbcl-cxml))
5574
5575 (define-public sbcl-cl-reexport
5576 (let ((commit "312f3661bbe187b5f28536cd7ec2956e91366c3b")
5577 (revision "1"))
5578 (package
5579 (name "sbcl-cl-reexport")
5580 (build-system asdf-build-system/sbcl)
5581 (version (git-version "0.1" revision commit))
5582 (home-page "https://github.com/takagi/cl-reexport")
5583 (source
5584 (origin
5585 (method git-fetch)
5586 (uri (git-reference
5587 (url home-page)
5588 (commit commit)))
5589 (file-name (git-file-name name version))
5590 (sha256
5591 (base32
5592 "1cwpn1m3wrl0fl9plznn7p464db646gnfc8zkyk97dyxski2aq0x"))))
5593 (inputs
5594 `(("alexandria" ,sbcl-alexandria)))
5595 (arguments
5596 ;; TODO: Tests fail because cl-test-more is missing, but I can't find it online.
5597 `(#:tests? #f))
5598 (synopsis "HTTP cookie manager for Common Lisp")
5599 (description "cl-cookie is a Common Lisp library featuring parsing of
5600 cookie headers, cookie creation, cookie jar creation and more.")
5601 (license license:llgpl))))
5602
5603 (define-public cl-reexport
5604 (sbcl-package->cl-source-package sbcl-cl-reexport))
5605
5606 (define-public sbcl-cl-cookie
5607 (let ((commit "cea55aed8b9ad25fafd13defbcb9fe8f41b29546")
5608 (revision "1"))
5609 (package
5610 (name "sbcl-cl-cookie")
5611 (build-system asdf-build-system/sbcl)
5612 (version (git-version "0.9.10" revision commit))
5613 (home-page "https://github.com/fukamachi/cl-cookie")
5614 (source
5615 (origin
5616 (method git-fetch)
5617 (uri (git-reference
5618 (url home-page)
5619 (commit commit)))
5620 (file-name (git-file-name name version))
5621 (sha256
5622 (base32
5623 "090g7z75h98zvc1ldx0vh4jn4086dhjm2w30jcwkq553qmyxwl8h"))))
5624 (inputs
5625 `(("proc-parse" ,sbcl-proc-parse)
5626 ("alexandria" ,sbcl-alexandria)
5627 ("quri" ,sbcl-quri)
5628 ("cl-ppcre" ,sbcl-cl-ppcre)
5629 ("local-time" ,sbcl-local-time)))
5630 (native-inputs
5631 `(("prove-asdf" ,sbcl-prove-asdf)
5632 ("prove" ,sbcl-prove)))
5633 (arguments
5634 ;; TODO: Tests fail because cl-cookie depends on cl-cookie-test.
5635 `(#:tests? #f))
5636 (synopsis "HTTP cookie manager for Common Lisp")
5637 (description "cl-cookie is a Common Lisp library featuring parsing of
5638 cookie headers, cookie creation, cookie jar creation and more.")
5639 (license license:bsd-2))))
5640
5641 (define-public cl-cookie
5642 (sbcl-package->cl-source-package sbcl-cl-cookie))
5643
5644 (define-public sbcl-dexador
5645 (let ((commit "a2714d126cc94bc7a9a6e1e3c08de455b3a66378")
5646 (revision "1"))
5647 (package
5648 (name "sbcl-dexador")
5649 (build-system asdf-build-system/sbcl)
5650 (version (git-version "0.9.10" revision commit))
5651 (home-page "https://github.com/fukamachi/dexador")
5652 (source
5653 (origin
5654 (method git-fetch)
5655 (uri (git-reference
5656 (url home-page)
5657 (commit commit)))
5658 (file-name (git-file-name name version))
5659 (sha256
5660 (base32
5661 "0nbqgn4v3l2z6m1k1bdxfnqpfrk84nxdmz7csz11zzcfs4flkv79"))))
5662 (inputs
5663 `(("trivial-gray-streams" ,sbcl-trivial-gray-streams)
5664 ("babel" ,sbcl-babel)
5665 ("usocket" ,sbcl-usocket)
5666 ("fast-http" ,sbcl-fast-http)
5667 ("quri" ,sbcl-quri)
5668 ("fast-io" ,sbcl-fast-io)
5669 ("chunga" ,sbcl-chunga)
5670 ("cl-ppcre" ,sbcl-cl-ppcre)
5671 ("cl-cookie" ,sbcl-cl-cookie)
5672 ("trivial-mimes" ,sbcl-trivial-mimes)
5673 ("chipz" ,sbcl-chipz)
5674 ("cl-base64" ,sbcl-cl-base64)
5675 ("cl-reexport" ,sbcl-cl-reexport)
5676 ("cl+ssl" ,sbcl-cl+ssl)
5677 ("bordeaux-threads" ,sbcl-bordeaux-threads)
5678 ("alexandria" ,sbcl-alexandria)))
5679 (native-inputs
5680 `(("prove" ,sbcl-prove)
5681 ("prove-asdf" ,sbcl-prove-asdf)
5682 ("lack-request" ,sbcl-lack-request)
5683 ("clack" ,sbcl-clack)
5684 ("babel" ,sbcl-babel)
5685 ("alexandria" ,sbcl-alexandria)
5686 ("cl-ppcre" ,sbcl-cl-ppcre)
5687 ("local-time" ,sbcl-local-time)))
5688 (arguments
5689 ;; TODO: Circular dependency: tests depend on clack-test which depends on dexador.
5690 `(#:tests? #f
5691 #:phases
5692 (modify-phases %standard-phases
5693 (add-after 'unpack 'fix-permissions
5694 (lambda _ (make-file-writable "t/data/test.gz") #t)))))
5695 (synopsis "Yet another HTTP client for Common Lisp")
5696 (description "Dexador is yet another HTTP client for Common Lisp with
5697 neat APIs and connection-pooling. It is meant to supersede Drakma.")
5698 (license license:expat))))
5699
5700 (define-public cl-dexador
5701 (package
5702 (inherit (sbcl-package->cl-source-package sbcl-dexador))
5703 (arguments
5704 `(#:phases
5705 ;; asdf-build-system/source has its own phases and does not inherit
5706 ;; from asdf-build-system/sbcl phases.
5707 (modify-phases %standard-phases/source
5708 (add-after 'unpack 'fix-permissions
5709 (lambda _ (make-file-writable "t/data/test.gz") #t)))))))
5710
5711 (define-public ecl-dexador
5712 (sbcl-package->ecl-package sbcl-dexador))
5713
5714 (define-public sbcl-lisp-namespace
5715 (let ((commit "28107cafe34e4c1c67490fde60c7f92dc610b2e0")
5716 (revision "1"))
5717 (package
5718 (name "sbcl-lisp-namespace")
5719 (build-system asdf-build-system/sbcl)
5720 (version (git-version "0.1" revision commit))
5721 (home-page "https://github.com/guicho271828/lisp-namespace")
5722 (source
5723 (origin
5724 (method git-fetch)
5725 (uri (git-reference
5726 (url home-page)
5727 (commit commit)))
5728 (file-name (git-file-name name version))
5729 (sha256
5730 (base32
5731 "1jw2wykp06z2afb9nm1lgfzll5cjlj36pnknjx614057zkkxq4iy"))))
5732 (inputs
5733 `(("alexandria" ,sbcl-alexandria)))
5734 (native-inputs
5735 `(("fiveam" ,sbcl-fiveam)))
5736 (arguments
5737 `(#:test-asd-file "lisp-namespace.test.asd"
5738 ;; XXX: Component LISP-NAMESPACE-ASD::LISP-NAMESPACE.TEST not found
5739 #:tests? #f))
5740 (synopsis "LISP-N, or extensible namespaces in Common Lisp")
5741 (description "Common Lisp already has major 2 namespaces, function
5742 namespace and value namespace (or variable namespace), but there are actually
5743 more — e.g., class namespace.
5744 This library offers macros to deal with symbols from any namespace.")
5745 (license license:llgpl))))
5746
5747 (define-public cl-lisp-namespace
5748 (sbcl-package->cl-source-package sbcl-lisp-namespace))
5749
5750 (define-public sbcl-trivial-cltl2
5751 (let ((commit "8eec8407df833e8f27df8a388bc10913f16d9e83")
5752 (revision "1"))
5753 (package
5754 (name "sbcl-trivial-cltl2")
5755 (build-system asdf-build-system/sbcl)
5756 (version (git-version "0.1.1" revision commit))
5757 (home-page "https://github.com/Zulu-Inuoe/trivial-cltl2")
5758 (source
5759 (origin
5760 (method git-fetch)
5761 (uri (git-reference
5762 (url home-page)
5763 (commit commit)))
5764 (file-name (git-file-name name version))
5765 (sha256
5766 (base32
5767 "1dyyxz17vqv8hlfwq287gl8xxbvcnq798ajb7p5jdjz91wqf4bgk"))))
5768 (synopsis "Simple CLtL2 compatibility layer for Common Lisp")
5769 (description "This library is a portable compatibility layer around
5770 \"Common Lisp the Language, 2nd
5771 Edition\" (@url{https://www.cs.cmu.edu/Groups/AI/html/cltl/clm/node102.html})
5772 and it exports symbols from implementation-specific packages.")
5773 (license license:llgpl))))
5774
5775 (define-public cl-trivial-cltl2
5776 (sbcl-package->cl-source-package sbcl-trivial-cltl2))
5777
5778 (define-public sbcl-introspect-environment
5779 (let ((commit "fff42f8f8fd0d99db5ad6c5812e53de7d660020b")
5780 (revision "1"))
5781 (package
5782 (name "sbcl-introspect-environment")
5783 (build-system asdf-build-system/sbcl)
5784 (version (git-version "0.1" revision commit))
5785 (home-page "https://github.com/Bike/introspect-environment")
5786 (source
5787 (origin
5788 (method git-fetch)
5789 (uri (git-reference
5790 (url home-page)
5791 (commit commit)))
5792 (file-name (git-file-name name version))
5793 (sha256
5794 (base32
5795 "1i305n0wfmpac63ni4i3vixnnkl8daw5ncxy0k3dv92krgx6qzhp"))))
5796 (native-inputs
5797 `(("fiveam" ,sbcl-fiveam)))
5798 (synopsis "Common Lisp environment introspection portability layer")
5799 (description "This library is a small interface to portable but
5800 nonstandard introspection of Common Lisp environments. It is intended to
5801 allow a bit more compile-time introspection of environments in Common Lisp.
5802
5803 Quite a bit of information is available at the time a macro or compiler-macro
5804 runs; inlining info, type declarations, that sort of thing. This information
5805 is all standard - any Common Lisp program can @code{(declare (integer x))} and
5806 such.
5807
5808 This info ought to be accessible through the standard @code{&environment}
5809 parameters, but it is not. Several implementations keep the information for
5810 their own purposes but do not make it available to user programs, because
5811 there is no standard mechanism to do so.
5812
5813 This library uses implementation-specific hooks to make information available
5814 to users. This is currently supported on SBCL, CCL, and CMUCL. Other
5815 implementations have implementations of the functions that do as much as they
5816 can and/or provide reasonable defaults.")
5817 (license license:wtfpl2))))
5818
5819 (define-public cl-introspect-environment
5820 (sbcl-package->cl-source-package sbcl-introspect-environment))
5821
5822 (define-public sbcl-type-i
5823 (let ((commit "dea233f45f94064105ec09f0767de338f67dcbe2")
5824 (revision "1"))
5825 (package
5826 (name "sbcl-type-i")
5827 (build-system asdf-build-system/sbcl)
5828 (version (git-version "0.1" revision commit))
5829 (home-page "https://github.com/guicho271828/type-i")
5830 (source
5831 (origin
5832 (method git-fetch)
5833 (uri (git-reference
5834 (url home-page)
5835 (commit commit)))
5836 (file-name (git-file-name name version))
5837 (sha256
5838 (base32
5839 "039g5pbrhh65s0bhr9314gmd2nwc2y5lp2377c5qrc2lxky89qs3"))))
5840 (inputs
5841 `(("alexandria" ,sbcl-alexandria)
5842 ("introspect-environment" ,sbcl-introspect-environment)
5843 ("trivia.trivial" ,sbcl-trivia.trivial)))
5844 (native-inputs
5845 `(("fiveam" ,sbcl-fiveam)))
5846 (arguments
5847 `(#:test-asd-file "type-i.test.asd"))
5848 (synopsis "Type inference utility on unary predicates for Common Lisp")
5849 (description "This library tries to provide a way to detect what kind of
5850 type the given predicate is trying to check. This is different from inferring
5851 the return type of a function.")
5852 (license license:llgpl))))
5853
5854 (define-public cl-type-i
5855 (sbcl-package->cl-source-package sbcl-type-i))
5856
5857 (define-public sbcl-optima
5858 (let ((commit "373b245b928c1a5cce91a6cb5bfe5dd77eb36195")
5859 (revision "1"))
5860 (package
5861 (name "sbcl-optima")
5862 (build-system asdf-build-system/sbcl)
5863 (version (git-version "1.0" revision commit))
5864 (home-page "https://github.com/m2ym/optima")
5865 (source
5866 (origin
5867 (method git-fetch)
5868 (uri (git-reference
5869 (url home-page)
5870 (commit commit)))
5871 (file-name (git-file-name name version))
5872 (sha256
5873 (base32
5874 "1yw4ymq7ms89342kkvb3aqxgv0w38m9kd8ikdqxxzyybnkjhndal"))))
5875 (inputs
5876 `(("alexandria" ,sbcl-alexandria)
5877 ("closer-mop" ,sbcl-closer-mop)))
5878 (native-inputs
5879 `(("eos" ,sbcl-eos)))
5880 (arguments
5881 ;; XXX: Circular dependencies: tests depend on optima.ppcre which depends on optima.
5882 `(#:tests? #f
5883 #:test-asd-file "optima.test.asd"))
5884 (synopsis "Optimized pattern matching library for Common Lisp")
5885 (description "Optima is a fast pattern matching library which uses
5886 optimizing techniques widely used in the functional programming world.")
5887 (license license:expat))))
5888
5889 (define-public cl-optima
5890 (sbcl-package->cl-source-package sbcl-optima))
5891
5892 (define-public sbcl-fare-quasiquote
5893 (package
5894 (name "sbcl-fare-quasiquote")
5895 (build-system asdf-build-system/sbcl)
5896 (version "20171130")
5897 (home-page "http://common-lisp.net/project/fare-quasiquote")
5898 (source
5899 (origin
5900 (method url-fetch)
5901 (uri (string-append "http://beta.quicklisp.org/archive/fare-quasiquote/"
5902 (date->string (string->date version "~Y~m~d") "~Y-~m-~d")
5903 "/fare-quasiquote-"
5904 version
5905 "-git.tgz"))
5906 (sha256
5907 (base32
5908 "00brmh7ndsi0c97nibi8cy10j3l4gmkyrfrr5jr5lzkfb7ngyfqa"))))
5909 (inputs
5910 `(("fare-utils" ,sbcl-fare-utils)))
5911 (arguments
5912 ;; XXX: Circular dependencies: Tests depend on subsystems, which depend on the main systems.
5913 `(#:tests? #f
5914 #:phases
5915 (modify-phases %standard-phases
5916 ;; XXX: Require 1.0.0 version of fare-utils, and we package some
5917 ;; commits after 1.0.0.5, but ASDF fails to read the
5918 ;; "-REVISION-COMMIT" part generated by Guix.
5919 (add-after 'unpack 'patch-requirement
5920 (lambda _
5921 (substitute* "fare-quasiquote.asd"
5922 (("\\(:version \"fare-utils\" \"1.0.0\"\\)") "\"fare-utils\"")))))))
5923 (synopsis "Pattern-matching friendly implementation of quasiquote for Common Lisp")
5924 (description "The main purpose of this n+2nd reimplementation of
5925 quasiquote is enable matching of quasiquoted patterns, using Optima or
5926 Trivia.")
5927 (license license:expat)))
5928
5929 (define-public cl-fare-quasiquote
5930 (sbcl-package->cl-source-package sbcl-fare-quasiquote))
5931
5932 (define-public sbcl-fare-quasiquote-optima
5933 (package
5934 (inherit sbcl-fare-quasiquote)
5935 (name "sbcl-fare-quasiquote-optima")
5936 (inputs
5937 `(("optima" ,sbcl-optima)
5938 ("fare-quasiquote" ,sbcl-fare-quasiquote)))
5939 (arguments
5940 '(#:phases
5941 (modify-phases %standard-phases
5942 (add-after 'unpack 'patch-requirement
5943 (lambda _
5944 (substitute* "fare-quasiquote-optima.asd"
5945 (("\\(:version \"optima\" \"1\\.0\"\\)")
5946 "\"optima\""))
5947 #t)))))))
5948
5949 (define-public cl-fare-quasiquote-optima
5950 (sbcl-package->cl-source-package sbcl-fare-quasiquote-optima))
5951
5952 (define-public sbcl-fare-quasiquote-readtable
5953 (package
5954 (inherit sbcl-fare-quasiquote)
5955 (name "sbcl-fare-quasiquote-readtable")
5956 (inputs
5957 `(("fare-quasiquote" ,sbcl-fare-quasiquote)
5958 ("named-readtables" ,sbcl-named-readtables)))
5959 (description "The main purpose of this n+2nd reimplementation of
5960 quasiquote is enable matching of quasiquoted patterns, using Optima or
5961 Trivia.
5962
5963 This package uses fare-quasiquote with named-readtable.")))
5964
5965 (define-public cl-fare-quasiquote-readtable
5966 (sbcl-package->cl-source-package sbcl-fare-quasiquote-readtable))
5967
5968 ;; TODO: Add support for component-less system in asdf-build-system/sbcl.
5969 (define-public cl-fare-quasiquote-extras
5970 (package
5971 (inherit cl-fare-quasiquote)
5972 (name "cl-fare-quasiquote-extras")
5973 (build-system asdf-build-system/source)
5974 (propagated-inputs
5975 `(("fare-quasiquote" ,cl-fare-quasiquote)
5976 ("fare-quasiquote-optima" ,cl-fare-quasiquote-optima)
5977 ("fare-quasiquote-readtable" ,cl-fare-quasiquote-readtable)))
5978 (description "This library combines @code{fare-quasiquote-readtable} and
5979 @code{fare-quasiquote-optima}.")))
5980
5981 (define-public sbcl-trivia.level0
5982 (let ((commit "902e0c65602bbfe96ae82e679330b3771ddc7603")
5983 (revision "1"))
5984 (package
5985 (name "sbcl-trivia.level0")
5986 (build-system asdf-build-system/sbcl)
5987 (version (git-version "0.0.0" revision commit))
5988 (home-page "https://github.com/guicho271828/trivia")
5989 (source
5990 (origin
5991 (method git-fetch)
5992 (uri (git-reference
5993 (url home-page)
5994 (commit commit)))
5995 (file-name (git-file-name name version))
5996 (sha256
5997 (base32
5998 "11qbab30qqnfy9mx3x9fvgcw1jbvh1qn2cqv3p8xdn2m8981jvhr"))))
5999 (inputs
6000 `(("alexandria" ,sbcl-alexandria)))
6001 (synopsis "Pattern matching in Common Lisp")
6002 (description "Trivia is a pattern matching compiler that is compatible
6003 with Optima, another pattern matching library for Common Lisp. It is meant to
6004 be faster and more extensible than Optima.")
6005 (license license:llgpl))))
6006
6007 (define-public sbcl-trivia.level1
6008 (package
6009 (inherit sbcl-trivia.level0)
6010 (name "sbcl-trivia.level1")
6011 (inputs
6012 `(("trivia.level0" ,sbcl-trivia.level0)))
6013 (description "Trivia is a pattern matching compiler that is compatible
6014 with Optima, another pattern matching library for Common Lisp. It is meant to
6015 be faster and more extensible than Optima.
6016
6017 This system contains the core patterns of Trivia.")))
6018
6019 (define-public sbcl-trivia.level2
6020 (package
6021 (inherit sbcl-trivia.level0)
6022 (name "sbcl-trivia.level2")
6023 (inputs
6024 `(("trivia.level1" ,sbcl-trivia.level1)
6025 ("lisp-namespace" ,sbcl-lisp-namespace)
6026 ("trivial-cltl2" ,sbcl-trivial-cltl2)
6027 ("closer-mop" ,sbcl-closer-mop)))
6028 (description "Trivia is a pattern matching compiler that is compatible
6029 with Optima, another pattern matching library for Common Lisp. It is meant to
6030 be faster and more extensible than Optima.
6031
6032 This system contains a non-optimized pattern matcher compatible with Optima,
6033 with extensible optimizer interface.")))
6034
6035 (define-public sbcl-trivia.trivial
6036 (package
6037 (inherit sbcl-trivia.level0)
6038 (name "sbcl-trivia.trivial")
6039 (inputs
6040 `(("trivia.level2" ,sbcl-trivia.level2)))
6041 (arguments
6042 `(#:phases
6043 (modify-phases %standard-phases
6044 (replace 'create-asd-file
6045 (lambda* (#:key outputs inputs #:allow-other-keys)
6046 (let* ((out (assoc-ref outputs "out"))
6047 (lib (string-append out "/lib/" (%lisp-type)))
6048 (level2 (assoc-ref inputs "trivia.level2")))
6049 (mkdir-p lib)
6050 (install-file "trivia.trivial.asd" lib)
6051 ;; XXX: This .asd does not have any component and the build
6052 ;; system fails to work in this case. We should update the
6053 ;; build system to handle component-less .asd.
6054 ;; TODO: How do we append to file in Guile? It seems that
6055 ;; (open-file ... "a") gets a "Permission denied".
6056 (substitute* (string-append lib "/trivia.trivial.asd")
6057 (("\"\\)")
6058 (string-append "\")
6059
6060 (progn (asdf/source-registry:ensure-source-registry)
6061 (setf (gethash
6062 \"trivia.level2\"
6063 asdf/source-registry:*source-registry*)
6064 #p\""
6065 level2
6066 "/share/common-lisp/sbcl-bundle-systems/trivia.level2.asd\"))")))))))))
6067 (description "Trivia is a pattern matching compiler that is compatible
6068 with Optima, another pattern matching library for Common Lisp. It is meant to
6069 be faster and more extensible than Optima.
6070
6071 This system contains the base level system of Trivia with a trivial optimizer.")))
6072
6073 (define-public sbcl-trivia.balland2006
6074 (package
6075 (inherit sbcl-trivia.level0)
6076 (name "sbcl-trivia.balland2006")
6077 (inputs
6078 `(("trivia.trivial" ,sbcl-trivia.trivial)
6079 ("iterate" ,sbcl-iterate)
6080 ("type-i" ,sbcl-type-i)
6081 ("alexandria" ,sbcl-alexandria)))
6082 (arguments
6083 ;; Tests are done in trivia itself.
6084 `(#:tests? #f))
6085 (description "Trivia is a pattern matching compiler that is compatible
6086 with Optima, another pattern matching library for Common Lisp. It is meant to
6087 be faster and more extensible than Optima.
6088
6089 This system contains the base level system of Trivia with a trivial optimizer.")))
6090
6091 (define-public sbcl-trivia.ppcre
6092 (package
6093 (inherit sbcl-trivia.level0)
6094 (name "sbcl-trivia.ppcre")
6095 (inputs
6096 `(("trivia.trivial" ,sbcl-trivia.trivial)
6097 ("cl-ppcre" ,sbcl-cl-ppcre)))
6098 (description "Trivia is a pattern matching compiler that is compatible
6099 with Optima, another pattern matching library for Common Lisp. It is meant to
6100 be faster and more extensible than Optima.
6101
6102 This system contains the PPCRE extension.")))
6103
6104 (define-public sbcl-trivia.quasiquote
6105 (package
6106 (inherit sbcl-trivia.level0)
6107 (name "sbcl-trivia.quasiquote")
6108 (inputs
6109 `(("trivia.trivial" ,sbcl-trivia.trivial)
6110 ("fare-quasiquote" ,sbcl-fare-quasiquote)
6111 ("fare-quasiquote-readtable" ,sbcl-fare-quasiquote-readtable)))
6112 (description "Trivia is a pattern matching compiler that is compatible
6113 with Optima, another pattern matching library for Common Lisp. It is meant to
6114 be faster and more extensible than Optima.
6115
6116 This system contains the fare-quasiquote extension.")))
6117
6118 (define-public sbcl-trivia.cffi
6119 (package
6120 (inherit sbcl-trivia.level0)
6121 (name "sbcl-trivia.cffi")
6122 (inputs
6123 `(("cffi" ,sbcl-cffi)
6124 ("trivia.trivial" ,sbcl-trivia.trivial)))
6125 (description "Trivia is a pattern matching compiler that is compatible
6126 with Optima, another pattern matching library for Common Lisp. It is meant to
6127 be faster and more extensible than Optima.
6128
6129 This system contains the CFFI foreign slot access extension.")))
6130
6131 (define-public sbcl-trivia
6132 (package
6133 (inherit sbcl-trivia.level0)
6134 (name "sbcl-trivia")
6135 (inputs
6136 `(("trivia.balland2006" ,sbcl-trivia.balland2006)))
6137 (native-inputs
6138 `(("fiveam" ,sbcl-fiveam)
6139 ("trivia.ppcre" ,sbcl-trivia.ppcre)
6140 ("trivia.quasiquote" ,sbcl-trivia.quasiquote)
6141 ("trivia.cffi" ,sbcl-trivia.cffi)
6142 ("optima" ,sbcl-optima)))
6143 (arguments
6144 `(#:test-asd-file "trivia.test.asd"
6145 #:phases
6146 (modify-phases %standard-phases
6147 (add-after 'create-asd 'remove-component
6148 ;; XXX: The original .asd has no components, but our build system
6149 ;; creates an entry nonetheless. We need to remove it for the
6150 ;; generated .asd to load properly. See trivia.trivial for a
6151 ;; similar problem.
6152 (lambda* (#:key outputs #:allow-other-keys)
6153 (let* ((out (assoc-ref outputs "out"))
6154 (asd (string-append out "/lib/" (%lisp-type) "/trivia.asd")))
6155 (substitute* asd
6156 ((" :components
6157 ")
6158 ""))
6159 (substitute* asd
6160 ((" *\\(\\(:compiled-file \"trivia--system\"\\)\\)")
6161 ""))))))))
6162 (description "Trivia is a pattern matching compiler that is compatible
6163 with Optima, another pattern matching library for Common Lisp. It is meant to
6164 be faster and more extensible than Optima.")))
6165
6166 (define-public cl-trivia
6167 (sbcl-package->cl-source-package sbcl-trivia))
6168
6169 (define-public sbcl-mk-string-metrics
6170 (package
6171 (name "sbcl-mk-string-metrics")
6172 (version "0.1.2")
6173 (home-page "https://github.com/cbaggers/mk-string-metrics/")
6174 (source (origin
6175 (method git-fetch)
6176 (uri (git-reference
6177 (url home-page)
6178 (commit version)))
6179 (sha256
6180 (base32 "0bg0bv2mfd4k0g3x72x563hvmrx18xavaffr6xk5rh4if5j7kcf6"))
6181 (file-name (git-file-name name version))))
6182 (build-system asdf-build-system/sbcl)
6183 (synopsis "Calculate various string metrics efficiently in Common Lisp")
6184 (description "This library implements efficient algorithms that calculate
6185 various string metrics in Common Lisp:
6186
6187 @itemize
6188 @item Damerau-Levenshtein distance
6189 @item Hamming distance
6190 @item Jaccard similarity coefficient
6191 @item Jaro distance
6192 @item Jaro-Winkler distance
6193 @item Levenshtein distance
6194 @item Normalized Damerau-Levenshtein distance
6195 @item Normalized Levenshtein distance
6196 @item Overlap coefficient
6197 @end itemize\n")
6198 (license license:x11)))
6199
6200 (define-public cl-mk-string-metrics
6201 (sbcl-package->cl-source-package sbcl-mk-string-metrics))
6202
6203 (define-public sbcl-cl-str
6204 (let ((commit "3d5ec86e3a0199e5973aacde951086dfd754b5e5"))
6205 (package
6206 (name "sbcl-cl-str")
6207 (version (git-version "0.8" "1" commit))
6208 (home-page "https://github.com/vindarel/cl-str")
6209 (source (origin
6210 (method git-fetch)
6211 (uri (git-reference
6212 (url home-page)
6213 (commit commit)))
6214 (sha256
6215 (base32 "0szzzbygw9h985yxz909vvqrp69pmpcpahn7hn350lnyjislk9ga"))
6216 (file-name (git-file-name name version))))
6217 (build-system asdf-build-system/sbcl)
6218 (inputs
6219 `(("cl-ppcre" ,sbcl-cl-ppcre)
6220 ("cl-ppcre-unicode" ,sbcl-cl-ppcre-unicode)))
6221 (native-inputs
6222 `(("prove" ,sbcl-prove)
6223 ("prove-asdf" ,sbcl-prove-asdf)))
6224 (arguments
6225 `(#:asd-file "str.asd"
6226 #:asd-system-name "str"
6227 #:test-asd-file "str.test.asd"))
6228 (synopsis "Modern, consistent and terse Common Lisp string manipulation library")
6229 (description "A modern and consistent Common Lisp string manipulation
6230 library that focuses on modernity, simplicity and discoverability:
6231 @code{(str:trim s)} instead of @code{(string-trim '(#\\Space ...) s)}), or
6232 @code{str:concat strings} instead of an unusual format construct; one
6233 discoverable library instead of many; consistency and composability, where
6234 @code{s} is always the last argument, which makes it easier to feed pipes and
6235 arrows.")
6236 (license license:expat))))
6237
6238 (define-public cl-str
6239 (sbcl-package->cl-source-package sbcl-cl-str))
6240
6241 (define-public sbcl-cl-xmlspam
6242 (let ((commit "ea06abcca2a73a9779bcfb09081e56665f94e22a"))
6243 (package
6244 (name "sbcl-cl-xmlspam")
6245 (build-system asdf-build-system/sbcl)
6246 (version (git-version "0.0.0" "1" commit))
6247 (home-page "https://github.com/rogpeppe/cl-xmlspam")
6248 (source
6249 (origin
6250 (method git-fetch)
6251 (uri (git-reference
6252 (url home-page)
6253 (commit commit)))
6254 (file-name (string-append name "-" version))
6255 (sha256
6256 (base32
6257 "0w4rqvrgdgk3fwfq3kx4r7wwdr2bv3b6n3bdqwsiriw9psqzpz2s"))))
6258 (inputs
6259 `(("cxml" ,sbcl-cxml)
6260 ("cl-ppcre" ,sbcl-cl-ppcre)))
6261 (synopsis "Concise, regexp-like pattern matching on streaming XML for Common Lisp")
6262 (description "CXML does an excellent job at parsing XML elements, but what
6263 do you do when you have a XML file that's larger than you want to fit in
6264 memory, and you want to extract some information from it? Writing code to deal
6265 with SAX events, or even using Klacks, quickly becomes tedious.
6266 @code{cl-xmlspam} (for XML Stream PAttern Matcher) is designed to make it easy
6267 to write code that mirrors the structure of the XML that it's parsing. It
6268 also makes it easy to shift paradigms when necessary - the usual Lisp control
6269 constructs can be used interchangeably with pattern matching, and the full
6270 power of CXML is available when necessary.")
6271 (license license:bsd-3))))
6272
6273 ;; TODO: dbus uses ASDF's package-inferred-system which is not supported by
6274 ;; asdf-build-system/sbcl as of 2019-08-02. We should fix
6275 ;; asdf-build-system/sbcl.
6276 (define-public cl-dbus
6277 (let ((commit "24b452df3a45ca5dc95015500f34baad175c981a")
6278 (revision "1"))
6279 (package
6280 (name "cl-dbus")
6281 (build-system asdf-build-system/source)
6282 (version (git-version "20190408" revision commit))
6283 (home-page "https://github.com/death/dbus")
6284 (source
6285 (origin
6286 (method git-fetch)
6287 (uri (git-reference
6288 (url home-page)
6289 (commit commit)))
6290 (file-name (git-file-name name version))
6291 (sha256
6292 (base32
6293 "0fw2q866yddbf23nk9pxphm9gsasx35vjyss82xzvndnjmzlqfl5"))))
6294 ;; Inputs must be propagated or else packages depending on this won't have the necessary packages.
6295 (propagated-inputs
6296 `(("alexandria" ,sbcl-alexandria)
6297 ("trivial-garbage" ,sbcl-trivial-garbage)
6298 ("babel" ,sbcl-babel)
6299 ("iolib" ,sbcl-iolib)
6300 ("iolib+multiplex" ,(@@ (gnu packages lisp-xyz) sbcl-iolib+multiplex))
6301 ("iolib+syscalls" ,(@@ (gnu packages lisp-xyz) sbcl-iolib+syscalls))
6302 ("iolib+streams" ,(@@ (gnu packages lisp-xyz) sbcl-iolib+streams))
6303 ("iolib+sockets" ,(@@ (gnu packages lisp-xyz) sbcl-iolib+sockets))
6304 ("ieee-floats" ,sbcl-ieee-floats)
6305 ("flexi-streams" ,sbcl-flexi-streams)
6306 ("cl-xmlspam" ,sbcl-cl-xmlspam)
6307 ("ironclad" ,sbcl-ironclad)))
6308 (synopsis "D-Bus client library for Common Lisp")
6309 (description "This is a Common Lisp library that allows to publish D-Bus
6310 objects as well as send and notify other objects connected to a bus.")
6311 (license license:bsd-2))))
6312
6313 (define-public sbcl-cl-hooks
6314 (let ((commit "5b638083f3b4f1221a52631d9c8a0a265565cac7")
6315 (revision "1"))
6316 (package
6317 (name "sbcl-cl-hooks")
6318 (build-system asdf-build-system/sbcl)
6319 (version (git-version "0.2.1" revision commit))
6320 (home-page "https://github.com/scymtym/architecture.hooks")
6321 (source
6322 (origin
6323 (method git-fetch)
6324 (uri (git-reference
6325 (url home-page)
6326 (commit commit)))
6327 (file-name (git-file-name name version))
6328 (sha256
6329 (base32
6330 "0bg3l0a28lw5gqqjp6p6b5nhwqk46sgkb7184w5qbfngw1hk8x9y"))))
6331 (inputs
6332 `(("alexandria" ,sbcl-alexandria)
6333 ("let-plus" ,sbcl-let-plus)
6334 ("trivial-garbage" ,sbcl-trivial-garbage)
6335 ("closer-mop" ,sbcl-closer-mop)))
6336 (native-inputs
6337 `(("fiveam" ,sbcl-fiveam)))
6338 (synopsis "Hooks extension point mechanism (as in Emacs) for Common Lisp")
6339 (description "A hook, in the present context, is a certain kind of
6340 extension point in a program that allows interleaving the execution of
6341 arbitrary code with the execution of a the program without introducing any
6342 coupling between the two. Hooks are used extensively in the extensible editor
6343 Emacs.
6344
6345 In the Common LISP Object System (CLOS), a similar kind of extensibility is
6346 possible using the flexible multi-method dispatch mechanism. It may even seem
6347 that the concept of hooks does not provide any benefits over the possibilities
6348 of CLOS. However, there are some differences:
6349
6350 @itemize
6351
6352 @item There can be only one method for each combination of specializers and
6353 qualifiers. As a result this kind of extension point cannot be used by
6354 multiple extensions independently.
6355 @item Removing code previously attached via a @code{:before}, @code{:after} or
6356 @code{:around} method can be cumbersome.
6357 @item There could be other or even multiple extension points besides @code{:before}
6358 and @code{:after} in a single method.
6359 @item Attaching codes to individual objects using eql specializers can be
6360 cumbersome.
6361 @item Introspection of code attached a particular extension point is
6362 cumbersome since this requires enumerating and inspecting the methods of a
6363 generic function.
6364 @end itemize
6365
6366 This library tries to complement some of these weaknesses of method-based
6367 extension-points via the concept of hooks.")
6368 (license license:llgpl))))
6369
6370 (define-public cl-hooks
6371 (sbcl-package->cl-source-package sbcl-cl-hooks))
6372
6373 (define-public ecl-cl-hooks
6374 (sbcl-package->ecl-package sbcl-cl-hooks))
6375
6376 (define-public sbcl-s-sysdeps
6377 (let ((commit "d28246b5dffef9e73a0e0e6cfbc4e878006fe34d")
6378 (revision "1"))
6379 (package
6380 (name "sbcl-s-sysdeps")
6381 (build-system asdf-build-system/sbcl)
6382 (version (git-version "1" revision commit))
6383 (home-page "https://github.com/svenvc/s-sysdeps")
6384 (source
6385 (origin
6386 (method git-fetch)
6387 (uri (git-reference
6388 (url home-page)
6389 (commit commit)))
6390 (file-name (git-file-name name version))
6391 (sha256
6392 (base32
6393 "14b69b81yrxmjlvmm3lfxk04x5v7hqz4fql121334wh72czznfh9"))))
6394 (synopsis "Common Lisp abstraction layer over platform dependent functionality")
6395 (description "@code{s-sysdeps} is an abstraction layer over platform
6396 dependent functionality. This simple package is used as a building block in a
6397 number of other open source projects.
6398
6399 @code{s-sysdeps} abstracts:
6400
6401 @itemize
6402 @item managing processes,
6403 @item implementing a standard TCP/IP server,
6404 @item opening a client TCP/IP socket stream,
6405 @item working with process locks.
6406 @end itemize\n")
6407 (license license:llgpl))))
6408
6409 (define-public cl-s-sysdeps
6410 (sbcl-package->cl-source-package sbcl-s-sysdeps))
6411
6412 (define-public ecl-s-sysdeps
6413 (sbcl-package->ecl-package sbcl-s-sysdeps))
6414
6415 (define-public sbcl-cl-prevalence
6416 (let ((commit "c163c227ed85d430b82cb1e3502f72d4f88e3cfa")
6417 (revision "1"))
6418 (package
6419 (name "sbcl-cl-prevalence")
6420 (build-system asdf-build-system/sbcl)
6421 (version (git-version "5" revision commit))
6422 (home-page "https://github.com/40ants/cl-prevalence")
6423 (source
6424 (origin
6425 (method git-fetch)
6426 (uri (git-reference
6427 (url home-page)
6428 (commit commit)))
6429 (file-name (git-file-name name version))
6430 (sha256
6431 (base32
6432 "1i9zj1q2ahgwch56an21yzbgkynz0kab9fyxkq9mg8p3xrv38jjn"))))
6433 (inputs
6434 `(("s-sysdeps" ,sbcl-s-sysdeps)
6435 ("s-xml" ,sbcl-s-xml)))
6436 (synopsis "Implementation of object prevalence for Common Lisp")
6437 (description "This Common Lisp library implements object prevalence (see
6438 @url{https://en.wikipedia.org/wiki/System_prevalence}). It allows
6439 for (de)serializing to and from s-exps as well as XML. Serialization of arbitrary
6440 classes and cyclic data structures are supported.")
6441 (license license:llgpl))))
6442
6443 (define-public cl-prevalence
6444 (sbcl-package->cl-source-package sbcl-cl-prevalence))
6445
6446 (define-public ecl-cl-prevalence
6447 (sbcl-package->ecl-package sbcl-cl-prevalence))
6448
6449 (define-public sbcl-series
6450 (let ((commit "da9061b336119d1e5214aff9117171d494d5a58a")
6451 (revision "1"))
6452 (package
6453 (name "sbcl-series")
6454 (version (git-version "2.2.11" revision commit))
6455 (source
6456 (origin
6457 (method git-fetch)
6458 (uri (git-reference
6459 (url "git://git.code.sf.net/p/series/series")
6460 (commit commit)))
6461 (file-name (git-file-name name version))
6462 (sha256
6463 (base32
6464 "07hk2lhfx42zk018pxqvn4gs77vd4n4g8m4xxbqaxgca76mifwfw"))))
6465 (build-system asdf-build-system/sbcl)
6466 (arguments
6467 ;; Disable the tests, they are apparently buggy and I didn't find
6468 ;; a simple way to make them run and pass.
6469 '(#:tests? #f))
6470 (synopsis "Series data structure for Common Lisp")
6471 (description
6472 "This Common Lisp library provides a series data structure much like
6473 a sequence, with similar kinds of operations. The difference is that in many
6474 situations, operations on series may be composed functionally and yet execute
6475 iteratively, without the need to construct intermediate series values
6476 explicitly. In this manner, series provide both the clarity of a functional
6477 programming style and the efficiency of an iterative programming style.")
6478 (home-page "http://series.sourceforge.net/")
6479 (license license:expat))))
6480
6481 (define-public cl-series
6482 (sbcl-package->cl-source-package sbcl-series))
6483
6484 (define-public ecl-series
6485 (sbcl-package->ecl-package sbcl-series))
6486
6487 (define-public sbcl-periods
6488 (let ((commit "983d4a57325db3c8def942f163133cec5391ec28")
6489 (revision "1"))
6490 (package
6491 (name "sbcl-periods")
6492 (version (git-version "0.0.2" revision commit))
6493 (source
6494 (origin
6495 (method git-fetch)
6496 (uri (git-reference
6497 (url "https://github.com/jwiegley/periods.git")
6498 (commit commit)))
6499 (file-name (git-file-name name version))
6500 (sha256
6501 (base32
6502 "0z30jr3lxz3cmi019fsl4lgcgwf0yqpn95v9zkkkwgymdrkd4lga"))))
6503 (build-system asdf-build-system/sbcl)
6504 (inputs
6505 `(("local-time" ,sbcl-local-time)))
6506 (synopsis "Common Lisp library for manipulating date/time objects")
6507 (description
6508 "Periods is a Common Lisp library providing a set of utilities for
6509 manipulating times, distances between times, and both contiguous and
6510 discontiguous ranges of time.")
6511 (home-page "https://github.com/jwiegley/periods")
6512 (license license:bsd-3))))
6513
6514 (define-public cl-periods
6515 (sbcl-package->cl-source-package sbcl-periods))
6516
6517 (define-public ecl-periods
6518 (sbcl-package->ecl-package sbcl-periods))
6519
6520 (define-public sbcl-periods-series
6521 (package
6522 (inherit sbcl-periods)
6523 (name "sbcl-periods-series")
6524 (inputs
6525 `(("periods" ,sbcl-periods)
6526 ("series" ,sbcl-series)))
6527 (arguments
6528 '(#:asd-file "periods-series.asd"
6529 #:asd-system-name "periods-series"))
6530 (description
6531 "Periods-series is an extension of the periods Common Lisp library
6532 providing functions compatible with the series Common Lisp library.")))
6533
6534 (define-public cl-periods-series
6535 (sbcl-package->cl-source-package sbcl-periods-series))
6536
6537 (define-public ecl-periods-series
6538 (sbcl-package->ecl-package sbcl-periods-series))
6539
6540 (define-public sbcl-metatilities-base
6541 (let ((commit "6eaa9e3ff0939a93a92109dd0fcd218de85417d5")
6542 (revision "1"))
6543 (package
6544 (name "sbcl-metatilities-base")
6545 (version (git-version "0.6.6" revision commit))
6546 (source
6547 (origin
6548 (method git-fetch)
6549 (uri (git-reference
6550 (url "https://github.com/gwkkwg/metatilities-base.git")
6551 (commit commit)))
6552 (file-name (git-file-name name version))
6553 (sha256
6554 (base32
6555 "0xpa86pdzlnf4v5g64j3ifaplx71sx2ha8b7vvakswi652679ma0"))))
6556 (build-system asdf-build-system/sbcl)
6557 (native-inputs
6558 `(("lift" ,sbcl-lift)))
6559 (synopsis "Core of the metatilities Common Lisp library")
6560 (description
6561 "Metatilities-base is the core of the metatilities Common Lisp library
6562 which implements a set of utilities.")
6563 (home-page "https://common-lisp.net/project/metatilities-base/")
6564 (license license:expat))))
6565
6566 (define-public cl-metatilities-base
6567 (sbcl-package->cl-source-package sbcl-metatilities-base))
6568
6569 (define-public ecl-metatilities-base
6570 (sbcl-package->ecl-package sbcl-metatilities-base))
6571
6572 (define-public sbcl-cl-containers
6573 (let ((commit "810927e19d933bcf38ffeb7a23ce521efc432d45")
6574 (revision "1"))
6575 (package
6576 (name "sbcl-cl-containers")
6577 (version (git-version "0.12.1" revision commit))
6578 (source
6579 (origin
6580 (method git-fetch)
6581 (uri (git-reference
6582 (url "https://github.com/gwkkwg/cl-containers.git")
6583 (commit commit)))
6584 (file-name (git-file-name name version))
6585 (sha256
6586 (base32
6587 "1s9faxw7svhbjpkhfrz2qxgjm3cvyjb8wpyb4m8dx4i5g7vvprkv"))))
6588 (build-system asdf-build-system/sbcl)
6589 (native-inputs
6590 `(("lift" ,sbcl-lift)))
6591 (inputs
6592 `(("metatilities-base" ,sbcl-metatilities-base)))
6593 (arguments
6594 '(#:phases
6595 (modify-phases %standard-phases
6596 (add-after 'unpack 'relax-version-checks
6597 (lambda _
6598 (substitute* "cl-containers.asd"
6599 (("\\(:version \"metatilities-base\" \"0\\.6\\.6\"\\)")
6600 "\"metatilities-base\""))
6601 (substitute* "cl-containers-test.asd"
6602 (("\\(:version \"lift\" \"1\\.7\\.0\"\\)")
6603 "\"lift\""))
6604 #t)))))
6605 (synopsis "Container library for Common Lisp")
6606 (description
6607 "Common Lisp ships with a set of powerful built in data structures
6608 including the venerable list, full featured arrays, and hash-tables.
6609 CL-containers enhances and builds on these structures by adding containers
6610 that are not available in native Lisp (for example: binary search trees,
6611 red-black trees, sparse arrays and so on), and by providing a standard
6612 interface so that they are simpler to use and so that changing design
6613 decisions becomes significantly easier.")
6614 (home-page "https://common-lisp.net/project/cl-containers/")
6615 (license license:expat))))
6616
6617 (define-public cl-containers
6618 (sbcl-package->cl-source-package sbcl-cl-containers))
6619
6620 (define-public ecl-cl-containers
6621 (sbcl-package->ecl-package sbcl-cl-containers))
6622
6623 (define-public sbcl-xlunit
6624 (let ((commit "3805d34b1d8dc77f7e0ee527a2490194292dd0fc")
6625 (revision "1"))
6626 (package
6627 (name "sbcl-xlunit")
6628 (version (git-version "0.6.3" revision commit))
6629 (source
6630 (origin
6631 (method git-fetch)
6632 (uri (git-reference
6633 (url "http://git.kpe.io/xlunit.git")
6634 (commit commit)))
6635 (file-name (git-file-name name version))
6636 (sha256
6637 (base32
6638 "0argfmp9nghs4sihyj3f8ch9qfib2b7ll07v5m9ziajgzsfl5xw3"))))
6639 (build-system asdf-build-system/sbcl)
6640 (arguments
6641 '(#:phases
6642 (modify-phases %standard-phases
6643 (add-after 'unpack 'fix-tests
6644 (lambda _
6645 (substitute* "xlunit.asd"
6646 ((" :force t") ""))
6647 #t)))))
6648 (synopsis "Unit testing package for Common Lisp")
6649 (description
6650 "The XLUnit package is a toolkit for building test suites. It is based
6651 on the XPTest package by Craig Brozensky and the JUnit package by Kent Beck.")
6652 (home-page "http://quickdocs.org/xlunit/")
6653 (license license:bsd-3))))
6654
6655 (define-public cl-xlunit
6656 (sbcl-package->cl-source-package sbcl-xlunit))
6657
6658 (define-public ecl-xlunit
6659 (sbcl-package->ecl-package sbcl-xlunit))
6660
6661 (define-public sbcl-fprog
6662 (let ((commit "7016d1a98215f82605d1c158e7a16504ca1f4636")
6663 (revision "1"))
6664 (package
6665 (name "sbcl-fprog")
6666 (version (git-version "1.0.0" revision commit))
6667 (source
6668 (origin
6669 (method git-fetch)
6670 (uri (git-reference
6671 (url "https://github.com/jwiegley/cambl.git")
6672 (commit commit)))
6673 (file-name (git-file-name name version))
6674 (sha256
6675 (base32
6676 "103mry04j2k9vznsxm7wcvccgxkil92cdrv52miwcmxl8daa4jiz"))))
6677 (build-system asdf-build-system/sbcl)
6678 (synopsis "Functional programming utilities for Common Lisp")
6679 (description
6680 "@code{fprog} is a Common Lisp library allowing iteration over
6681 immutable lists sharing identical sublists.")
6682 (home-page "https://github.com/jwiegley/cambl")
6683 (license license:bsd-3))))
6684
6685 (define-public cl-fprog
6686 (sbcl-package->cl-source-package sbcl-fprog))
6687
6688 (define-public ecl-fprog
6689 (sbcl-package->ecl-package sbcl-fprog))
6690
6691 (define-public sbcl-cambl
6692 (let ((commit "7016d1a98215f82605d1c158e7a16504ca1f4636")
6693 (revision "1"))
6694 (package
6695 (inherit sbcl-fprog)
6696 (name "sbcl-cambl")
6697 (version (git-version "4.0.0" revision commit))
6698 (native-inputs
6699 `(("xlunit" ,sbcl-xlunit)))
6700 (inputs
6701 `(("alexandria" ,sbcl-alexandria)
6702 ("cl-containers" ,sbcl-cl-containers)
6703 ("local-time" ,sbcl-local-time)
6704 ("periods" ,sbcl-periods)
6705 ("fprog" ,sbcl-fprog)))
6706 (synopsis "Commoditized amounts and balances for Common Lisp")
6707 (description
6708 "CAMBL is a Common Lisp library providing a convenient facility for
6709 working with commoditized values. It does not allow compound units (and so is
6710 not suited for scientific operations) but does work rather nicely for the
6711 purpose of financial calculations."))))
6712
6713 (define-public cl-cambl
6714 (sbcl-package->cl-source-package sbcl-cambl))
6715
6716 (define-public ecl-cambl
6717 (sbcl-package->ecl-package sbcl-cambl))
6718
6719 (define-public sbcl-cl-ledger
6720 (let ((commit "08e0be41795e804cd36142e51756ad0b1caa377b")
6721 (revision "1"))
6722 (package
6723 (name "sbcl-cl-ledger")
6724 (version (git-version "4.0.0" revision commit))
6725 (source
6726 (origin
6727 (method git-fetch)
6728 (uri (git-reference
6729 (url "https://github.com/ledger/cl-ledger.git")
6730 (commit commit)))
6731 (file-name (git-file-name name version))
6732 (sha256
6733 (base32
6734 "1via0qf6wjcyxnfbmfxjvms0ik9j8rqbifgpmnhrzvkhrq9pv8h1"))))
6735 (build-system asdf-build-system/sbcl)
6736 (inputs
6737 `(("cambl" ,sbcl-cambl)
6738 ("cl-ppcre" ,sbcl-cl-ppcre)
6739 ("local-time" ,sbcl-local-time)
6740 ("periods-series" ,sbcl-periods-series)))
6741 (arguments
6742 '(#:phases
6743 (modify-phases %standard-phases
6744 (add-after 'unpack 'fix-system-definition
6745 (lambda _
6746 (substitute* "cl-ledger.asd"
6747 ((" :build-operation program-op") "")
6748 ((" :build-pathname \"cl-ledger\"") "")
6749 ((" :entry-point \"ledger::main\"") ""))
6750 #t)))))
6751 (synopsis "Common Lisp port of the Ledger accounting system")
6752 (description
6753 "CL-Ledger is a Common Lisp port of the Ledger double-entry accounting
6754 system.")
6755 (home-page "https://github.com/ledger/cl-ledger")
6756 (license license:bsd-3))))
6757
6758 (define-public cl-ledger
6759 (sbcl-package->cl-source-package sbcl-cl-ledger))
6760
6761 (define-public ecl-cl-ledger
6762 (sbcl-package->ecl-package sbcl-cl-ledger))
6763
6764 (define-public sbcl-bst
6765 (let ((commit "34f9c7e8e0a9f2c952fe310ab36cb630d5d9c15a")
6766 (revision "1"))
6767 (package
6768 (name "sbcl-bst")
6769 (version (git-version "1.1" revision commit))
6770 (source
6771 (origin
6772 (method git-fetch)
6773 (uri (git-reference
6774 (url "https://github.com/glv2/bst.git")
6775 (commit commit)))
6776 (file-name (git-file-name name version))
6777 (sha256
6778 (base32
6779 "1amxns7hvvh4arwbh8ciwfzplg127vh37dnbamv1m1kmmnmihfc8"))))
6780 (build-system asdf-build-system/sbcl)
6781 (native-inputs
6782 `(("alexandria" ,sbcl-alexandria)
6783 ("fiveam" ,sbcl-fiveam)))
6784 (synopsis "Binary search tree for Common Lisp")
6785 (description
6786 "BST is a Common Lisp library for working with binary search trees that
6787 can contain any kind of values.")
6788 (home-page "https://github.com/glv2/bst")
6789 (license license:gpl3))))
6790
6791 (define-public cl-bst
6792 (sbcl-package->cl-source-package sbcl-bst))
6793
6794 (define-public ecl-bst
6795 (sbcl-package->ecl-package sbcl-bst))
6796
6797 (define-public sbcl-cl-octet-streams
6798 (package
6799 (name "sbcl-cl-octet-streams")
6800 (version "1.0")
6801 (source
6802 (origin
6803 (method git-fetch)
6804 (uri (git-reference
6805 (url "https://github.com/glv2/cl-octet-streams.git")
6806 (commit (string-append "v" version))))
6807 (file-name (git-file-name name version))
6808 (sha256
6809 (base32
6810 "1d7mn6ydv0j2x4r7clpc9ijjwrnfpxmvhifv8n5j7jh7s744sf8d"))))
6811 (build-system asdf-build-system/sbcl)
6812 (native-inputs
6813 `(("fiveam" ,sbcl-fiveam)))
6814 (inputs
6815 `(("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
6816 (synopsis "In-memory octet streams for Common Lisp")
6817 (description
6818 "CL-octet-streams is a library implementing in-memory octet
6819 streams for Common Lisp. It was inspired by the trivial-octet-streams and
6820 cl-plumbing libraries.")
6821 (home-page "https://github.com/glv2/cl-octet-streams")
6822 (license license:gpl3+)))
6823
6824 (define-public cl-octet-streams
6825 (sbcl-package->cl-source-package sbcl-cl-octet-streams))
6826
6827 (define-public ecl-cl-octet-streams
6828 (sbcl-package->ecl-package sbcl-cl-octet-streams))
6829
6830 (define-public sbcl-lzlib
6831 (let ((commit "0de1db7129fef9a58a059d35a2fa2ecfc5b47b47")
6832 (revision "1"))
6833 (package
6834 (name "sbcl-lzlib")
6835 (version (git-version "1.0" revision commit))
6836 (source
6837 (origin
6838 (method git-fetch)
6839 (uri (git-reference
6840 (url "https://github.com/glv2/cl-lzlib.git")
6841 (commit commit)))
6842 (file-name (git-file-name name version))
6843 (sha256
6844 (base32
6845 "12ny7vj52fgnd8hb8fc8mry92vq4c1x72x2350191m4476j95clz"))))
6846 (build-system asdf-build-system/sbcl)
6847 (native-inputs
6848 `(("fiveam" ,sbcl-fiveam)))
6849 (inputs
6850 `(("cffi" ,sbcl-cffi)
6851 ("cl-octet-streams" ,sbcl-cl-octet-streams)
6852 ("lzlib" ,lzlib)))
6853 (arguments
6854 '(#:phases
6855 (modify-phases %standard-phases
6856 (add-after 'unpack 'fix-paths
6857 (lambda* (#:key inputs #:allow-other-keys)
6858 (substitute* "src/lzlib.lisp"
6859 (("liblz\\.so")
6860 (string-append (assoc-ref inputs "lzlib") "/lib/liblz.so")))
6861 #t)))))
6862 (synopsis "Common Lisp library for lzip (de)compression")
6863 (description
6864 "This Common Lisp library provides functions for lzip (LZMA)
6865 compression/decompression using bindings to the lzlib C library.")
6866 (home-page "https://github.com/glv2/cl-lzlib")
6867 (license license:gpl3+))))
6868
6869 (define-public cl-lzlib
6870 (sbcl-package->cl-source-package sbcl-lzlib))
6871
6872 (define-public ecl-lzlib
6873 (sbcl-package->ecl-package sbcl-lzlib))
6874
6875 (define-public sbcl-chanl
6876 (let ((commit "2362b57550c2c9238cc882d03553aaa1040b7340")
6877 (revision "0"))
6878 (package
6879 (name "sbcl-chanl")
6880 (version (git-version "0.4.1" revision commit))
6881 (source
6882 (origin
6883 (method git-fetch)
6884 (uri (git-reference
6885 (url "https://github.com/zkat/chanl.git")
6886 (commit commit)))
6887 (file-name (git-file-name name version))
6888 (sha256
6889 (base32
6890 "0ag3wz7yrqwp0s5069wwda98z3rrqd25spg8sa8rdqghj084w28w"))))
6891 (build-system asdf-build-system/sbcl)
6892 (native-inputs
6893 `(("fiveam" ,sbcl-fiveam)))
6894 (inputs
6895 `(("bordeaux-threads" ,sbcl-bordeaux-threads)))
6896 (synopsis "Portable channel-based concurrency for Common Lisp")
6897 (description "Common Lisp library for channel-based concurrency. In
6898 a nutshell, you create various threads sequentially executing tasks you need
6899 done, and use channel objects to communicate and synchronize the state of these
6900 threads.")
6901 (home-page "https://github.com/zkat/chanl")
6902 (license (list license:expat license:bsd-3)))))
6903
6904 (define-public cl-chanl
6905 (sbcl-package->cl-source-package sbcl-chanl))
6906
6907 (define-public ecl-chanl
6908 (let ((base (sbcl-package->ecl-package sbcl-chanl)))
6909 (package
6910 (inherit base)
6911 (arguments
6912 (substitute-keyword-arguments (package-arguments base)
6913 ;; The CHANL.ACTORS package uses the :ARGUMENTS option of
6914 ;; DEFINE-METHOD-COMBINATION, which is not implemented in ECL yet
6915 ;; (see https://gitlab.com/embeddable-common-lisp/ecl/issues/305).
6916 ;; So let's disable it for now, as it allows compiling the library
6917 ;; and using the rest of it.
6918 ((#:phases phases '%standard-phases)
6919 `(modify-phases ,phases
6920 (add-after 'unpack 'disable-chanl-actors
6921 (lambda _
6922 (substitute* "chanl.asd"
6923 (("\\(:file \"actors\"\\)") ""))
6924 #t))))
6925 ;; Disable the tests for now, as the SEND-SEQUENCE test seems to
6926 ;; never end.
6927 ((#:tests? _ #f) #f))))))
6928
6929 (define-public sbcl-cl-store
6930 (let ((commit "c787337a16ea8cf8a06227f35933a4ec774746b3")
6931 (revision "1"))
6932 (package
6933 (name "sbcl-cl-store")
6934 (version (git-version "0.8.11" revision commit))
6935 (source
6936 (origin
6937 (method git-fetch)
6938 (uri (git-reference
6939 (url "https://github.com/skypher/cl-store.git")
6940 (commit commit)))
6941 (file-name (git-file-name name version))
6942 (sha256
6943 (base32
6944 "194srkg8nrym19c6i7zbnkzshc1qhqa82m53qnkirz9fw928bqxr"))))
6945 (build-system asdf-build-system/sbcl)
6946 (native-inputs
6947 `(("rt" ,sbcl-rt)))
6948 (synopsis "Common Lisp library to serialize data")
6949 (description
6950 "CL-STORE is a portable serialization package which should give you the
6951 ability to store all Common Lisp data types into streams.")
6952 (home-page "https://www.common-lisp.net/project/cl-store/")
6953 (license license:expat))))
6954
6955 (define-public cl-store
6956 (sbcl-package->cl-source-package sbcl-cl-store))
6957
6958 (define-public ecl-cl-store
6959 (sbcl-package->ecl-package sbcl-cl-store))
6960
6961 (define-public sbcl-cl-gobject-introspection
6962 (let ((commit "7b703e2384945ea0ac39d9b766de434a08d81560")
6963 (revision "0"))
6964 (package
6965 (name "sbcl-cl-gobject-introspection")
6966 (version (git-version "0.3" revision commit))
6967 (home-page "https://github.com/andy128k/cl-gobject-introspection")
6968 (source
6969 (origin
6970 (method git-fetch)
6971 (uri (git-reference
6972 (url home-page)
6973 (commit commit)))
6974 (file-name (git-file-name name version))
6975 (sha256
6976 (base32
6977 "1zcqd2qj14f6b38vys8gr89s6cijsp9r8j43xa8lynilwva7bwyh"))))
6978 (build-system asdf-build-system/sbcl)
6979 (inputs
6980 `(("alexandria" ,sbcl-alexandria)
6981 ("cffi" ,sbcl-cffi)
6982 ("iterate" ,sbcl-iterate)
6983 ("trivial-garbage" ,sbcl-trivial-garbage)
6984 ("glib" ,glib)
6985 ("gobject-introspection" ,gobject-introspection)))
6986 (native-inputs
6987 `(("fiveam" ,sbcl-fiveam)))
6988 (arguments
6989 ;; TODO: Tests fail, see
6990 ;; https://github.com/andy128k/cl-gobject-introspection/issues/70.
6991 '(#:tests? #f
6992 #:phases
6993 (modify-phases %standard-phases
6994 (add-after (quote unpack) (quote fix-paths)
6995 (lambda* (#:key inputs #:allow-other-keys)
6996 (substitute* "src/init.lisp"
6997 (("libgobject-2\\.0\\.so")
6998 (string-append (assoc-ref inputs "glib") "/lib/libgobject-2.0.so"))
6999 (("libgirepository-1\\.0\\.so")
7000 (string-append (assoc-ref inputs "gobject-introspection")
7001 "/lib/libgirepository-1.0.so")))
7002 #t)))))
7003 (synopsis "Common Lisp bindings to GObject Introspection")
7004 (description
7005 "This library is a bridge between Common Lisp and GObject
7006 Introspection, which enables Common Lisp programs to access the full interface
7007 of C+GObject libraries without the need of writing dedicated bindings.")
7008 (license (list license:bsd-3
7009 ;; Tests are under a different license.
7010 license:llgpl)))))
7011
7012 (define-public cl-gobject-introspection
7013 (sbcl-package->cl-source-package sbcl-cl-gobject-introspection))
7014
7015 (define-public sbcl-string-case
7016 (let ((commit "718c761e33749e297cd2809c7ba3ade1985c49f7")
7017 (revision "0"))
7018 (package
7019 (name "sbcl-string-case")
7020 (version (git-version "0.0.2" revision commit))
7021 (home-page "https://github.com/pkhuong/string-case")
7022 (source
7023 (origin
7024 (method git-fetch)
7025 (uri (git-reference
7026 (url home-page)
7027 (commit commit)))
7028 (file-name (git-file-name name version))
7029 (sha256
7030 (base32
7031 "1n5i3yh0h5s636rcnwn7jwqy3rjflikra04lymimhpcshhjsk0md"))))
7032 (build-system asdf-build-system/sbcl)
7033 (synopsis "Efficient string= case in Common Lisp")
7034 (description
7035 "@code{string-case} is a Common Lisp macro that generates specialised decision
7036 trees to dispatch on string equality.")
7037 (license license:bsd-3))))
7038
7039 (define-public cl-string-case
7040 (sbcl-package->cl-source-package sbcl-string-case))
7041
7042 (define-public ecl-string-case
7043 (sbcl-package->ecl-package sbcl-string-case))
7044
7045 (define-public sbcl-global-vars
7046 (let ((commit "c749f32c9b606a1457daa47d59630708ac0c266e")
7047 (revision "0"))
7048 (package
7049 (name "sbcl-global-vars")
7050 (version (git-version "1.0.0" revision commit))
7051 (home-page "https://github.com/lmj/global-vars")
7052 (source
7053 (origin
7054 (method git-fetch)
7055 (uri (git-reference
7056 (url home-page)
7057 (commit commit)))
7058 (file-name (git-file-name name version))
7059 (sha256
7060 (base32
7061 "06m3xc8l3pgsapl8fvsi9wf6y46zs75cp9zn7zh6dc65v4s5wz3d"))))
7062 (build-system asdf-build-system/sbcl)
7063 (synopsis "Efficient global variables in Common Lisp")
7064 (description
7065 "In Common Lisp, a special variable that is never dynamically bound
7066 typically serves as a stand-in for a global variable. The @code{global-vars}
7067 library provides true global variables that are implemented by some compilers.
7068 An attempt to rebind a global variable properly results in a compiler error.
7069 That is, a global variable cannot be dynamically bound.
7070
7071 Global variables therefore allow us to communicate an intended usage that
7072 differs from special variables. Global variables are also more efficient than
7073 special variables, especially in the presence of threads.")
7074 (license license:expat))))
7075
7076 (define-public cl-global-vars
7077 (sbcl-package->cl-source-package sbcl-global-vars))
7078
7079 (define-public ecl-global-vars
7080 (sbcl-package->ecl-package sbcl-global-vars))
7081
7082 (define-public sbcl-trivial-file-size
7083 (let ((commit "1c1d672a01a446ba0391dbb4ffc40be3b0476f23")
7084 (revision "0"))
7085 (package
7086 (name "sbcl-trivial-file-size")
7087 (version (git-version "0.0.0" revision commit))
7088 (home-page "https://github.com/ruricolist/trivial-file-size")
7089 (source
7090 (origin
7091 (method git-fetch)
7092 (uri (git-reference
7093 (url home-page)
7094 (commit commit)))
7095 (file-name (git-file-name name version))
7096 (sha256
7097 (base32
7098 "17pp86c9zs4y7i1sh7q9gbfw9iqv6655k7fz8qbj9ly1ypgxp4qs"))))
7099 (build-system asdf-build-system/sbcl)
7100 (native-inputs
7101 `(("fiveam" ,sbcl-fiveam)))
7102 (synopsis "Size of a file in bytes in Common Lisp")
7103 (description
7104 "The canonical way to determine the size of a file in bytes, using Common Lisp,
7105 is to open the file with an element type of (unsigned-byte 8) and then
7106 calculate the length of the stream. This is less than ideal. In most cases
7107 it is better to get the size of the file from its metadata, using a system
7108 call.
7109
7110 This library exports a single function, file-size-in-octets. It returns the
7111 size of a file in bytes, using system calls when possible.")
7112 (license license:expat))))
7113
7114 (define-public cl-trivial-file-size
7115 (sbcl-package->cl-source-package sbcl-trivial-file-size))
7116
7117 (define-public ecl-trivial-file-size
7118 (sbcl-package->ecl-package sbcl-trivial-file-size))
7119
7120 (define-public sbcl-trivial-macroexpand-all
7121 (let ((commit "933270ac7107477de1bc92c1fd641fe646a7a8a9")
7122 (revision "0"))
7123 (package
7124 (name "sbcl-trivial-macroexpand-all")
7125 (version (git-version "0.0.0" revision commit))
7126 (home-page "https://github.com/cbaggers/trivial-macroexpand-all")
7127 (source
7128 (origin
7129 (method git-fetch)
7130 (uri (git-reference
7131 (url home-page)
7132 (commit commit)))
7133 (file-name (git-file-name name version))
7134 (sha256
7135 (base32
7136 "191hnn4b5j4i3crydmlzbm231kj0h7l8zj6mzj69r1npbzkas4bd"))))
7137 (build-system asdf-build-system/sbcl)
7138 (native-inputs
7139 `(("fiveam" ,sbcl-fiveam)))
7140 (synopsis "Portable macroexpand-all for Common Lisp")
7141 (description
7142 "This library provides a macroexpand-all function that calls the
7143 implementation specific equivalent.")
7144 (license license:unlicense))))
7145
7146 (define-public cl-trivial-macroexpand-all
7147 (sbcl-package->cl-source-package sbcl-trivial-macroexpand-all))
7148
7149 (define-public ecl-trivial-macroexpand-all
7150 (sbcl-package->ecl-package sbcl-trivial-macroexpand-all))
7151
7152 (define-public sbcl-serapeum
7153 (let ((commit "65837f8a0d65b36369ec8d000fff5c29a395b5fe")
7154 (revision "0"))
7155 (package
7156 (name "sbcl-serapeum")
7157 (version (git-version "0.0.0" revision commit))
7158 (home-page "https://github.com/ruricolist/serapeum")
7159 (source
7160 (origin
7161 (method git-fetch)
7162 (uri (git-reference
7163 (url home-page)
7164 (commit commit)))
7165 (file-name (git-file-name name version))
7166 (sha256
7167 (base32
7168 "0clwf81r2lvk1rbfvk91s9zmbkas9imf57ilqclw12mxaxlfsnbw"))))
7169 (build-system asdf-build-system/sbcl)
7170 (inputs
7171 `(("alexandria" ,sbcl-alexandria)
7172 ("trivia" ,sbcl-trivia)
7173 ("trivia.quasiquote" ,sbcl-trivia.quasiquote)
7174 ("split-sequence" ,sbcl-split-sequence)
7175 ("string-case" ,sbcl-string-case)
7176 ("parse-number" ,sbcl-parse-number)
7177 ("trivial-garbage" ,sbcl-trivial-garbage)
7178 ("bordeaux-threads" ,sbcl-bordeaux-threads)
7179 ("named-readtables" ,sbcl-named-readtables)
7180 ("fare-quasiquote-extras" ,cl-fare-quasiquote-extras)
7181 ("parse-declarations-1.0" ,sbcl-parse-declarations)
7182 ("global-vars" ,sbcl-global-vars)
7183 ("trivial-file-size" ,sbcl-trivial-file-size)
7184 ("trivial-macroexpand-all" ,sbcl-trivial-macroexpand-all)))
7185 (native-inputs
7186 `(("fiveam" ,sbcl-fiveam)
7187 ("local-time" ,sbcl-local-time)))
7188 (arguments
7189 '(#:phases
7190 (modify-phases %standard-phases
7191 (add-after 'unpack 'disable-failing-tests
7192 (lambda* (#:key inputs #:allow-other-keys)
7193 (substitute* "serapeum.asd"
7194 ;; Guix does not have Quicklisp, and probably never will.
7195 (("\\(:file \"quicklisp\"\\)") ""))
7196 #t)))))
7197 (synopsis "Common Lisp utility library beyond Alexandria")
7198 (description
7199 "Serapeum is a conservative library of Common Lisp utilities. It is a
7200 supplement, not a competitor, to Alexandria.")
7201 (license license:expat))))
7202
7203 (define-public cl-serapeum
7204 (sbcl-package->cl-source-package sbcl-serapeum))
7205
7206 (define-public sbcl-arrows
7207 (let ((commit "df7cf0067e0132d9697ac8b1a4f1b9c88d4f5382")
7208 (revision "0"))
7209 (package
7210 (name "sbcl-arrows")
7211 (version (git-version "0.2.0" revision commit))
7212 (source
7213 (origin
7214 (method git-fetch)
7215 (uri (git-reference
7216 (url "https://gitlab.com/Harleqin/arrows.git")
7217 (commit commit)))
7218 (file-name (git-file-name name version))
7219 (sha256
7220 (base32
7221 "042k9vkssrqx9nhp14wdzm942zgdxvp35mba0p2syz98i75im2yy"))))
7222 (build-system asdf-build-system/sbcl)
7223 (native-inputs
7224 `(("hu.dwim.stefil" ,sbcl-hu.dwim.stefil)))
7225 (synopsis "Clojure-like arrow macros for Common Lisp")
7226 (description
7227 "This library implements the @code{->} and @code{->>} macros from
7228 Clojure, as well as several expansions on the idea.")
7229 (home-page "https://gitlab.com/Harleqin/arrows")
7230 (license license:public-domain))))
7231
7232 (define-public cl-arrows
7233 (sbcl-package->cl-source-package sbcl-arrows))
7234
7235 (define-public ecl-arrows
7236 (sbcl-package->ecl-package sbcl-arrows))
7237
7238 (define-public sbcl-simple-parallel-tasks
7239 (let ((commit "db460f7a3f7bbfe2d3a2223ed21e162068d04dda")
7240 (revision "0"))
7241 (package
7242 (name "sbcl-simple-parallel-tasks")
7243 (version (git-version "1.0" revision commit))
7244 (source
7245 (origin
7246 (method git-fetch)
7247 (uri (git-reference
7248 (url "https://github.com/glv2/simple-parallel-tasks.git")
7249 (commit commit)))
7250 (file-name (git-file-name name version))
7251 (sha256
7252 (base32
7253 "0amw3qk23wnlyrsgzszs6rs7y4zvxv8dr03rnqhc60mnm8ds4dd5"))))
7254 (build-system asdf-build-system/sbcl)
7255 (native-inputs
7256 `(("fiveam" ,sbcl-fiveam)))
7257 (inputs
7258 `(("chanl" ,sbcl-chanl)))
7259 (synopsis "Common Lisp library to evaluate some forms in parallel")
7260 (description "This is a simple Common Lisp library to evaluate some
7261 forms in parallel.")
7262 (home-page "https://github.com/glv2/simple-parallel-tasks")
7263 (license license:gpl3))))
7264
7265 (define-public cl-simple-parallel-tasks
7266 (sbcl-package->cl-source-package sbcl-simple-parallel-tasks))
7267
7268 (define-public ecl-simple-parallel-tasks
7269 (sbcl-package->ecl-package sbcl-simple-parallel-tasks))
7270
7271 (define-public sbcl-cl-heap
7272 (package
7273 (name "sbcl-cl-heap")
7274 (version "0.1.6")
7275 (source
7276 (origin
7277 (method url-fetch)
7278 (uri (string-append "https://common-lisp.net/project/cl-heap/releases/"
7279 "cl-heap_" version ".tar.gz"))
7280 (sha256
7281 (base32
7282 "163hb07p2nxz126rpq3cj5dyala24n0by5i5786n2qcr1w0bak4i"))))
7283 (build-system asdf-build-system/sbcl)
7284 (native-inputs
7285 `(("xlunit" ,sbcl-xlunit)))
7286 (arguments
7287 `(#:test-asd-file "cl-heap-tests.asd"))
7288 (synopsis "Heap and priority queue data structures for Common Lisp")
7289 (description
7290 "CL-HEAP provides various implementations of heap data structures (a
7291 binary heap and a Fibonacci heap) as well as an efficient priority queue.")
7292 (home-page "https://common-lisp.net/project/cl-heap/")
7293 (license license:gpl3+)))
7294
7295 (define-public cl-heap
7296 (sbcl-package->cl-source-package sbcl-cl-heap))
7297
7298 (define-public ecl-cl-heap
7299 (sbcl-package->ecl-package sbcl-cl-heap))
7300
7301 (define-public sbcl-curry-compose-reader-macros
7302 (let ((commit "beaa92dedf392726c042184bfd6149fa8d9e6ac2")
7303 (revision "0"))
7304 (package
7305 (name "sbcl-curry-compose-reader-macros")
7306 (version (git-version "1.0.0" revision commit))
7307 (source
7308 (origin
7309 (method git-fetch)
7310 (uri
7311 (git-reference
7312 (url "https://github.com/eschulte/curry-compose-reader-macros.git")
7313 (commit commit)))
7314 (file-name (git-file-name name version))
7315 (sha256
7316 (base32
7317 "0rv9bl8xrad5wfcg5zs1dazvnpmvqz6297lbn8bywsrcfnlf7h98"))))
7318 (build-system asdf-build-system/sbcl)
7319 (inputs
7320 `(("alexandria" ,sbcl-alexandria)
7321 ("named-readtables" ,sbcl-named-readtables)))
7322 (synopsis "Reader macros for partial application and composition")
7323 (description
7324 "This Common Lisp library provides reader macros for concise expression
7325 of function partial application and composition.")
7326 (home-page "https://eschulte.github.io/curry-compose-reader-macros/")
7327 (license license:public-domain))))
7328
7329 (define-public cl-curry-compose-reader-macros
7330 (sbcl-package->cl-source-package sbcl-curry-compose-reader-macros))
7331
7332 (define-public ecl-curry-compose-reader-macros
7333 (sbcl-package->ecl-package sbcl-curry-compose-reader-macros))
7334
7335 (define-public sbcl-yason
7336 (package
7337 (name "sbcl-yason")
7338 (version "0.7.7")
7339 (source
7340 (origin
7341 (method git-fetch)
7342 (uri (git-reference
7343 (url "https://github.com/phmarek/yason.git")
7344 (commit (string-append "v" version))))
7345 (file-name (git-file-name name version))
7346 (sha256
7347 (base32
7348 "0479rbjgbj80jpk5bby18inlv1kfp771a82rlcq5psrz65qqa9bj"))))
7349 (build-system asdf-build-system/sbcl)
7350 (inputs
7351 `(("alexandria" ,sbcl-alexandria)
7352 ("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
7353 (synopsis "Common Lisp JSON parser/encoder")
7354 (description
7355 "YASON is a Common Lisp library for encoding and decoding data in the
7356 JSON interchange format.")
7357 (home-page "https://github.com/phmarek/yason")
7358 (license license:bsd-3)))
7359
7360 (define-public cl-yason
7361 (sbcl-package->cl-source-package sbcl-yason))
7362
7363 (define-public ecl-yason
7364 (sbcl-package->ecl-package sbcl-yason))
7365
7366 (define-public sbcl-stefil
7367 (let ((commit "0398548ec95dceb50fc2c2c03e5fb0ce49b86c7a")
7368 (revision "0"))
7369 (package
7370 (name "sbcl-stefil")
7371 (version (git-version "0.1" revision commit))
7372 (source
7373 (origin
7374 (method git-fetch)
7375 (uri (git-reference
7376 (url "https://gitlab.common-lisp.net/stefil/stefil.git")
7377 (commit commit)))
7378 (file-name (git-file-name name version))
7379 (sha256
7380 (base32
7381 "0bqz64q2szzhf91zyqyssmvrz7da6442rs01808pf3wrdq28bclh"))))
7382 (build-system asdf-build-system/sbcl)
7383 (inputs
7384 `(("alexandria" ,sbcl-alexandria)
7385 ("iterate" ,sbcl-iterate)
7386 ("metabang-bind" ,sbcl-metabang-bind)))
7387 (propagated-inputs
7388 ;; Swank doesn't have a pre-compiled package, therefore we must
7389 ;; propagate its sources.
7390 `(("swank" ,cl-slime-swank)))
7391 (arguments
7392 '(#:phases
7393 (modify-phases %standard-phases
7394 (add-after 'unpack 'drop-unnecessary-dependency
7395 (lambda _
7396 (substitute* "package.lisp"
7397 ((":stefil-system") ""))
7398 #t)))))
7399 (home-page "https://common-lisp.net/project/stefil/index-old.shtml")
7400 (synopsis "Simple test framework")
7401 (description
7402 "Stefil is a simple test framework for Common Lisp, with a focus on
7403 interactive development.")
7404 (license license:public-domain))))
7405
7406 (define-public cl-stefil
7407 (sbcl-package->cl-source-package sbcl-stefil))
7408
7409 (define-public sbcl-graph
7410 (let ((commit "78bf9ec930d8eae4f0861b5be76765fb1e45e24f")
7411 (revision "0"))
7412 (package
7413 (name "sbcl-graph")
7414 (version (git-version "0.0.0" revision commit))
7415 (source
7416 (origin
7417 (method git-fetch)
7418 (uri
7419 (git-reference
7420 (url "https://github.com/eschulte/graph.git")
7421 (commit commit)))
7422 (file-name (git-file-name name version))
7423 (sha256
7424 (base32
7425 "1qpij4xh8bqwc2myahpilcbh916v7vg0acz2fij14d3y0jm02h0g"))
7426 (patches (search-patches "sbcl-graph-asdf-definitions.patch"))))
7427 (build-system asdf-build-system/sbcl)
7428 (native-inputs
7429 `(("stefil" ,sbcl-stefil)))
7430 (inputs
7431 `(("alexandria" ,sbcl-alexandria)
7432 ("cl-heap" ,sbcl-cl-heap)
7433 ("curry-compose-reader-macros" ,sbcl-curry-compose-reader-macros)
7434 ("metabang-bind" ,sbcl-metabang-bind)
7435 ("named-readtables" ,sbcl-named-readtables)))
7436 (arguments
7437 '(#:test-asd-file "graph.test.asd"))
7438 (synopsis "Graph data structure and algorithms for Common Lisp")
7439 (description
7440 "The GRAPH Common Lisp library provides a data structures to represent
7441 graphs, as well as some graph manipulation and analysis algorithms (shortest
7442 path, maximum flow, minimum spanning tree, etc.).")
7443 (home-page "https://eschulte.github.io/graph/")
7444 (license license:gpl3+))))
7445
7446 (define-public cl-graph
7447 (sbcl-package->cl-source-package sbcl-graph))
7448
7449 (define-public sbcl-graph-dot
7450 (package
7451 (inherit sbcl-graph)
7452 (name "sbcl-graph-dot")
7453 (inputs
7454 `(("alexandria" ,sbcl-alexandria)
7455 ("cl-ppcre" ,sbcl-cl-ppcre)
7456 ("curry-compose-reader-macros" ,sbcl-curry-compose-reader-macros)
7457 ("graph" ,sbcl-graph)
7458 ("metabang-bind" ,sbcl-metabang-bind)
7459 ("named-readtables" ,sbcl-named-readtables)))
7460 (arguments
7461 (substitute-keyword-arguments (package-arguments sbcl-graph)
7462 ((#:asd-file _ "") "graph.dot.asd")
7463 ((#:asd-system-name _ #f) "graph-dot")))
7464 (synopsis "Serialize graphs to and from DOT format")))
7465
7466 (define-public sbcl-graph-json
7467 (package
7468 (inherit sbcl-graph)
7469 (name "sbcl-graph-json")
7470 (inputs
7471 `(("alexandria" ,sbcl-alexandria)
7472 ("curry-compose-reader-macros" ,sbcl-curry-compose-reader-macros)
7473 ("graph" ,sbcl-graph)
7474 ("metabang-bind" ,sbcl-metabang-bind)
7475 ("named-readtables" ,sbcl-named-readtables)
7476 ("yason" ,sbcl-yason)))
7477 (arguments
7478 (substitute-keyword-arguments (package-arguments sbcl-graph)
7479 ((#:asd-file _ "") "graph.json.asd")
7480 ((#:asd-system-name _ #f) "graph-json")))
7481 (synopsis "Serialize graphs to and from JSON format")))
7482
7483 (define-public sbcl-trivial-indent
7484 (let ((commit "2d016941751647c6cc5bd471751c2cf68861c94a")
7485 (revision "0"))
7486 (package
7487 (name "sbcl-trivial-indent")
7488 (version (git-version "1.0.0" revision commit))
7489 (source
7490 (origin
7491 (method git-fetch)
7492 (uri
7493 (git-reference
7494 (url "https://github.com/Shinmera/trivial-indent")
7495 (commit commit)))
7496 (file-name (git-file-name name version))
7497 (sha256
7498 (base32
7499 "1sj90nqz17w4jq0ixz00gb9g5g6d2s7l8r17zdby27gxxh51w266"))))
7500 (build-system asdf-build-system/sbcl)
7501 (synopsis "Simple Common Lisp library to allow indentation hints for SWANK")
7502 (description
7503 "This library allows you to define custom indentation hints for your
7504 macros if the one recognised by SLIME automatically produces unwanted
7505 results.")
7506 (home-page "https://shinmera.github.io/trivial-indent/")
7507 (license license:zlib))))
7508
7509 (define-public cl-trivial-indent
7510 (sbcl-package->cl-source-package sbcl-trivial-indent))
7511
7512 (define-public sbcl-documentation-utils
7513 (let ((commit "98630dd5f7e36ae057fa09da3523f42ccb5d1f55")
7514 (revision "0"))
7515 (package
7516 (name "sbcl-documentation-utils")
7517 (version (git-version "1.2.0" revision commit))
7518 (source
7519 (origin
7520 (method git-fetch)
7521 (uri
7522 (git-reference
7523 (url "https://github.com/Shinmera/documentation-utils.git")
7524 (commit commit)))
7525 (file-name (git-file-name name version))
7526 (sha256
7527 (base32
7528 "098qhkqskmmrh4wix34mawf7p5c87yql28r51r75yjxj577k5idq"))))
7529 (build-system asdf-build-system/sbcl)
7530 (inputs
7531 `(("trivial-indent" ,sbcl-trivial-indent)))
7532 (synopsis "Few simple tools to document Common Lisp libraries")
7533 (description
7534 "This is a small library to help you with managing the Common Lisp
7535 docstrings for your library.")
7536 (home-page "https://shinmera.github.io/documentation-utils/")
7537 (license license:zlib))))
7538
7539 (define-public cl-documentation-utils
7540 (sbcl-package->cl-source-package sbcl-documentation-utils))
7541
7542 (define-public sbcl-form-fiddle
7543 (let ((commit "e0c23599dbb8cff3e83e012f3d86d0764188ad18")
7544 (revision "0"))
7545 (package
7546 (name "sbcl-form-fiddle")
7547 (version (git-version "1.1.0" revision commit))
7548 (source
7549 (origin
7550 (method git-fetch)
7551 (uri
7552 (git-reference
7553 (url "https://github.com/Shinmera/form-fiddle")
7554 (commit commit)))
7555 (file-name (git-file-name name version))
7556 (sha256
7557 (base32
7558 "041iznc9mpfyrl0sv5893ys9pbb2pvbn9g3clarqi7gsfj483jln"))))
7559 (build-system asdf-build-system/sbcl)
7560 (inputs
7561 `(("documentation-utils" ,sbcl-documentation-utils)))
7562 (synopsis "Utilities to destructure Common Lisp lambda forms")
7563 (description
7564 "Often times we need to destructure a form definition in a Common Lisp
7565 macro. This library provides a set of simple utilities to help with that.")
7566 (home-page "https://shinmera.github.io/form-fiddle/")
7567 (license license:zlib))))
7568
7569 (define-public cl-form-fiddle
7570 (sbcl-package->cl-source-package sbcl-form-fiddle))
7571
7572 (define-public sbcl-parachute
7573 (let ((commit "ca04dd8e43010a6dfffa26dbe1d62af86008d666")
7574 (revision "0"))
7575 (package
7576 (name "sbcl-parachute")
7577 (version (git-version "1.1.1" revision commit))
7578 (source
7579 (origin
7580 (method git-fetch)
7581 (uri
7582 (git-reference
7583 (url "https://github.com/Shinmera/parachute")
7584 (commit commit)))
7585 (file-name (git-file-name name version))
7586 (sha256
7587 (base32
7588 "1mvsm3r0r6a2bg75nw0q7n9vlby3ch45qjl7hnb5k1z2n5x5lh60"))))
7589 (build-system asdf-build-system/sbcl)
7590 (inputs
7591 `(("documentation-utils" ,sbcl-documentation-utils)
7592 ("form-fiddle" ,sbcl-form-fiddle)))
7593 (synopsis "Extensible and cross-compatible testing framework for Common Lisp")
7594 (description
7595 "Parachute is a simple-to-use and extensible testing framework.
7596 In Parachute, things are organised as a bunch of named tests within a package.
7597 Each test can contain a bunch of test forms that make up its body.")
7598 (home-page "https://shinmera.github.io/parachute/")
7599 (license license:zlib))))
7600
7601 (define-public cl-parachute
7602 (sbcl-package->cl-source-package sbcl-parachute))
7603
7604 (define-public sbcl-array-utils
7605 (let ((commit "f90eb9070d0b2205af51126a35033574725e5c56")
7606 (revision "0"))
7607 (package
7608 (name "sbcl-array-utils")
7609 (version (git-version "1.1.1" revision commit))
7610 (source
7611 (origin
7612 (method git-fetch)
7613 (uri
7614 (git-reference
7615 (url "https://github.com/Shinmera/array-utils")
7616 (commit commit)))
7617 (file-name (git-file-name name version))
7618 (sha256
7619 (base32
7620 "0zhwfbpr53vs1ii4sx75dz2k9yhh1xpwdqqpg8nmfndxkmhpbi3x"))))
7621 (build-system asdf-build-system/sbcl)
7622 (native-inputs
7623 `(("parachute" ,sbcl-parachute)))
7624 (inputs
7625 `(("documentation-utils" ,sbcl-documentation-utils)))
7626 (synopsis "Tiny collection of array and vector utilities for Common Lisp")
7627 (description
7628 "A miniature toolkit that contains some useful shifting/popping/pushing
7629 functions for arrays and vectors. Originally from Plump.")
7630 (home-page "https://shinmera.github.io/array-utils/")
7631 (license license:zlib))))
7632
7633 (define-public cl-array-utils
7634 (sbcl-package->cl-source-package sbcl-array-utils))
7635
7636 (define-public sbcl-plump
7637 (let ((commit "16f1231bf706cfbc54d9e55a853ca945e4452a08")
7638 (revision "0"))
7639 (package
7640 (name "sbcl-plump")
7641 (version (git-version "2.0.0" revision commit))
7642 (source
7643 (origin
7644 (method git-fetch)
7645 (uri
7646 (git-reference
7647 (url "https://github.com/Shinmera/plump")
7648 (commit commit)))
7649 (file-name (git-file-name name version))
7650 (sha256
7651 (base32
7652 "0705k8pbip51v74rccgwscwph439f2pma9f915qf1h4bhjx999ip"))))
7653 (build-system asdf-build-system/sbcl)
7654 (inputs
7655 `(("array-utils" ,sbcl-array-utils)
7656 ("documentation-utils" ,sbcl-documentation-utils)))
7657 (synopsis "Lenient XML / XHTML / HTML parser for Common Lisp")
7658 (description
7659 "Plump is a parser for HTML/XML-like documents, focusing on being
7660 lenient towards invalid markup. It can handle things like invalid attributes,
7661 bad closing tag order, unencoded entities, inexistent tag types, self-closing
7662 tags and so on. It parses documents to a class representation and offers a
7663 small set of DOM functions to manipulate it. It can be extended to parse to
7664 your own classes.")
7665 (home-page "https://shinmera.github.io/plump/")
7666 (license license:zlib))))
7667
7668 (define-public cl-plump
7669 (sbcl-package->cl-source-package sbcl-plump))
7670
7671 (define-public sbcl-antik-base
7672 (let ((commit "e4711a69b3d6bf37b5727af05c3cfd03e8428ba3")
7673 (revision "1"))
7674 (package
7675 (name "sbcl-antik-base")
7676 (version (git-version "0.0.0" revision commit))
7677 (source
7678 (origin
7679 (method git-fetch)
7680 (uri (git-reference
7681 (url "https://gitlab.common-lisp.net/antik/antik.git")
7682 (commit commit)))
7683 (file-name (git-file-name name version))
7684 (sha256
7685 (base32
7686 "047ga2c38par2xbgg4qx6hwv06qhf1c1f67as8xvir6s80lip1km"))))
7687 (build-system asdf-build-system/sbcl)
7688 (inputs
7689 `(("alexandria" ,sbcl-alexandria)
7690 ("cl-ppcre" ,sbcl-cl-ppcre)
7691 ("iterate" ,sbcl-iterate)
7692 ("metabang-bind" ,sbcl-metabang-bind)
7693 ("named-readtables" ,sbcl-named-readtables)
7694 ("split-sequence" ,sbcl-split-sequence)))
7695 (native-inputs
7696 `(("lisp-unit" ,sbcl-lisp-unit)))
7697 (synopsis "Scientific and engineering computation in Common Lisp")
7698 (description
7699 "Antik provides a foundation for scientific and engineering
7700 computation in Common Lisp. It is designed not only to facilitate
7701 numerical computations, but to permit the use of numerical computation
7702 libraries and the interchange of data and procedures, whether
7703 foreign (non-Lisp) or Lisp libraries. It is named after the
7704 Antikythera mechanism, one of the oldest examples of a scientific
7705 computer known.")
7706 (home-page "https://common-lisp.net/project/antik/")
7707 (license license:gpl3))))
7708
7709 (define-public cl-antik-base
7710 (sbcl-package->cl-source-package sbcl-antik-base))
7711
7712 (define-public ecl-antik-base
7713 (sbcl-package->ecl-package sbcl-antik-base))
7714
7715 (define-public sbcl-foreign-array
7716 (package
7717 (inherit sbcl-antik-base)
7718 (name "sbcl-foreign-array")
7719 (arguments
7720 (substitute-keyword-arguments (package-arguments sbcl-antik-base)
7721 ((#:asd-file _ "") "foreign-array.asd")
7722 ((#:asd-system-name _ #f) "foreign-array")))
7723 (inputs
7724 `(("antik-base" ,sbcl-antik-base)
7725 ("cffi" ,sbcl-cffi)
7726 ("trivial-garbage" ,sbcl-trivial-garbage)
7727 ("static-vectors" ,sbcl-static-vectors)))
7728 (synopsis "Common Lisp library providing access to foreign arrays")))
7729
7730 (define-public cl-foreign-array
7731 (sbcl-package->cl-source-package sbcl-foreign-array))
7732
7733 (define-public ecl-foreign-array
7734 (sbcl-package->ecl-package sbcl-foreign-array))
7735
7736 (define-public sbcl-physical-dimension
7737 (package
7738 (inherit sbcl-antik-base)
7739 (name "sbcl-physical-dimension")
7740 (inputs
7741 `(("fare-utils" ,sbcl-fare-utils)
7742 ("foreign-array" ,sbcl-foreign-array)
7743 ("trivial-utf-8" ,sbcl-trivial-utf-8)))
7744 (arguments
7745 (substitute-keyword-arguments (package-arguments sbcl-antik-base)
7746 ((#:asd-file _ "") "physical-dimension.asd")
7747 ((#:asd-system-name _ #f) "physical-dimension")))
7748 (synopsis
7749 "Common Lisp library providing computations with physical units")))
7750
7751 (define-public cl-physical-dimension
7752 (sbcl-package->cl-source-package sbcl-physical-dimension))
7753
7754 (define-public sbcl-science-data
7755 (package
7756 (inherit sbcl-antik-base)
7757 (name "sbcl-science-data")
7758 (inputs
7759 `(("physical-dimension" ,sbcl-physical-dimension)
7760 ("drakma" ,sbcl-drakma)))
7761 (arguments
7762 (substitute-keyword-arguments (package-arguments sbcl-antik-base)
7763 ((#:asd-file _ "") "science-data.asd")
7764 ((#:asd-system-name _ #f) "science-data")))
7765 (synopsis
7766 "Common Lisp library for scientific and engineering numerical data")))
7767
7768 (define-public cl-science-data
7769 (sbcl-package->cl-source-package sbcl-science-data))
7770
7771 (define-public sbcl-gsll
7772 (let ((commit "1a8ada22f9cf5ed7372d352b2317f4ccdb6ab308")
7773 (revision "1"))
7774 (package
7775 (name "sbcl-gsll")
7776 (version (git-version "0.0.0" revision commit))
7777 (source
7778 (origin
7779 (method git-fetch)
7780 (uri (git-reference
7781 (url "https://gitlab.common-lisp.net/antik/gsll.git")
7782 (commit commit)))
7783 (file-name (git-file-name name version))
7784 (sha256
7785 (base32
7786 "0z5nypfk26hxihb08p085644afawicrgb4xvadh3lmrn46qbjfn4"))))
7787 (build-system asdf-build-system/sbcl)
7788 (native-inputs
7789 `(("lisp-unit" ,sbcl-lisp-unit)))
7790 (inputs
7791 `(("alexandria" ,sbcl-alexandria)
7792 ("cffi-grovel" ,sbcl-cffi-grovel)
7793 ("cffi-libffi" ,sbcl-cffi-libffi)
7794 ("foreign-array" ,sbcl-foreign-array)
7795 ("gsl" ,gsl)
7796 ("metabang-bind" ,sbcl-metabang-bind)
7797 ("trivial-features" ,sbcl-trivial-features)
7798 ("trivial-garbage" ,sbcl-trivial-garbage)))
7799 (arguments
7800 `(#:tests? #f
7801 #:phases
7802 (modify-phases %standard-phases
7803 (add-after 'unpack 'fix-cffi-paths
7804 (lambda* (#:key inputs #:allow-other-keys)
7805 (substitute* "gsll.asd"
7806 ((":depends-on \\(#:foreign-array")
7807 ":depends-on (#:foreign-array #:cffi-libffi"))
7808 (substitute* "init/init.lisp"
7809 (("libgslcblas.so" all)
7810 (string-append
7811 (assoc-ref inputs "gsl") "/lib/" all)))
7812 (substitute* "init/init.lisp"
7813 (("libgsl.so" all)
7814 (string-append
7815 (assoc-ref inputs "gsl") "/lib/" all))))))))
7816 (synopsis "GNU Scientific Library for Lisp")
7817 (description
7818 "The GNU Scientific Library for Lisp (GSLL) allows the use of the
7819 GNU Scientific Library (GSL) from Common Lisp. This library provides a
7820 full range of common mathematical operations useful to scientific and
7821 engineering applications. The design of the GSLL interface is such
7822 that access to most of the GSL library is possible in a Lisp-natural
7823 way; the intent is that the user not be hampered by the restrictions
7824 of the C language in which GSL has been written. GSLL thus provides
7825 interactive use of GSL for getting quick answers, even for someone not
7826 intending to program in Lisp.")
7827 (home-page "https://common-lisp.net/project/gsll/")
7828 (license license:gpl3))))
7829
7830 (define-public cl-gsll
7831 (sbcl-package->cl-source-package sbcl-gsll))
7832
7833 (define-public sbcl-antik
7834 (package
7835 (inherit sbcl-antik-base)
7836 (name "sbcl-antik")
7837 (inputs
7838 `(("gsll" ,sbcl-gsll)
7839 ("physical-dimension" ,sbcl-physical-dimension)))
7840 (arguments
7841 (substitute-keyword-arguments (package-arguments sbcl-antik-base)
7842 ((#:asd-file _ "") "antik.asd")
7843 ((#:asd-system-name _ #f) "antik")))))
7844
7845 (define-public cl-antik
7846 (sbcl-package->cl-source-package sbcl-antik))
7847
7848 (define-public sbcl-cl-interpol
7849 (let ((commit "1fd288d861db85bc4677cff3cdd6af75fda1afb4")
7850 (revision "1"))
7851 (package
7852 (name "sbcl-cl-interpol")
7853 (version (git-version "0.2.6" revision commit))
7854 (source
7855 (origin
7856 (method git-fetch)
7857 (uri (git-reference
7858 (url "https://github.com/edicl/cl-interpol.git")
7859 (commit commit)))
7860 (file-name (git-file-name name version))
7861 (sha256
7862 (base32
7863 "1hnikak52hmcq1r5f616m6qq1108qnkw80pja950nv1fq5p0ppjn"))))
7864 (build-system asdf-build-system/sbcl)
7865 (inputs
7866 `(("cl-unicode" ,sbcl-cl-unicode)
7867 ("named-readtables" ,sbcl-named-readtables)))
7868 (native-inputs
7869 `(("flexi-streams" ,sbcl-flexi-streams)))
7870 (synopsis "String interpolation for Common Lisp")
7871 (description
7872 "CL-INTERPOL is a library for Common Lisp which modifies the
7873 reader so that you can have interpolation within strings similar to
7874 Perl or Unix Shell scripts. It also provides various ways to insert
7875 arbitrary characters into literal strings even if your editor/IDE
7876 doesn't support them.")
7877 (home-page "https://edicl.github.io/cl-interpol/")
7878 (license license:bsd-3))))
7879
7880 (define-public cl-interpol
7881 (sbcl-package->cl-source-package sbcl-cl-interpol))
7882
7883 (define-public ecl-cl-interpol
7884 (sbcl-package->ecl-package sbcl-cl-interpol))
7885
7886 (define sbcl-symbol-munger-boot0
7887 ;; There is a cyclical dependency between symbol-munger and lisp-unit2.
7888 ;; See https://github.com/AccelerationNet/symbol-munger/issues/4
7889 (let ((commit "cc2bb4b7acd454d756484aec81ba487648385fc3")
7890 (revision "1"))
7891 (package
7892 (name "sbcl-symbol-munger-boot0")
7893 (version (git-version "0.0.1" revision commit))
7894 (source
7895 (origin
7896 (method git-fetch)
7897 (uri (git-reference
7898 (url "https://github.com/AccelerationNet/symbol-munger.git")
7899 (commit commit)))
7900 (file-name (git-file-name name version))
7901 (sha256
7902 (base32
7903 "0diav5ricqsybqvbp4bkxyj3bn3v9n7xb2pqqc4vg1algsw2pyjl"))))
7904 (build-system asdf-build-system/sbcl)
7905 (arguments
7906 `(#:asd-file "symbol-munger.asd"
7907 #:asd-system-name "symbol-munger"))
7908 (inputs
7909 `(("iterate" ,sbcl-iterate)
7910 ("alexandria" ,sbcl-alexandria)))
7911 (native-inputs
7912 `(("lisp-unit" ,sbcl-lisp-unit)))
7913 (synopsis
7914 "Capitalization and spacing conversion functions for Common Lisp")
7915 (description
7916 "This is a Common Lisp library to change the capitalization and spacing
7917 of a string or a symbol. It can convert to and from Lisp, english, underscore
7918 and camel-case rules.")
7919 (home-page "https://github.com/AccelerationNet/symbol-munger")
7920 ;; The package declares a BSD license, but all of the license
7921 ;; text is MIT.
7922 ;; See https://github.com/AccelerationNet/symbol-munger/issues/5
7923 (license license:expat))))
7924
7925 (define sbcl-lisp-unit2-boot0
7926 ;; There is a cyclical dependency between symbol-munger and lisp-unit2.
7927 ;; See https://github.com/AccelerationNet/symbol-munger/issues/4
7928 (let ((commit "fb9721524d1e4e73abb223ee036d74ce14a5505c")
7929 (revision "1"))
7930 (package
7931 (name "sbcl-lisp-unit2-boot0")
7932 (version (git-version "0.2.0" revision commit))
7933 (source
7934 (origin
7935 (method git-fetch)
7936 (uri (git-reference
7937 (url "https://github.com/AccelerationNet/lisp-unit2.git")
7938 (commit commit)))
7939 (file-name (git-file-name name version))
7940 (sha256
7941 (base32
7942 "1rsqy8y0jqll6xn9a593848f5wvd5ribv4csry1ly0hmdhfnqzlp"))))
7943 (build-system asdf-build-system/sbcl)
7944 (arguments
7945 `(#:asd-file "lisp-unit2.asd"
7946 #:asd-system-name "lisp-unit2"))
7947 (inputs
7948 `(("alexandria" ,sbcl-alexandria)
7949 ("cl-interpol" ,sbcl-cl-interpol)
7950 ("iterate" ,sbcl-iterate)
7951 ("symbol-munger-boot0" ,sbcl-symbol-munger-boot0)))
7952 (synopsis "Test Framework for Common Lisp")
7953 (description
7954 "LISP-UNIT2 is a Common Lisp library that supports unit testing in the
7955 style of JUnit for Java. It is a new version of the lisp-unit library written
7956 by Chris Riesbeck.")
7957 (home-page "https://github.com/AccelerationNet/lisp-unit2")
7958 (license license:expat))))
7959
7960 (define-public sbcl-symbol-munger
7961 (let ((commit "97598d4c3c53fd5da72ab78908fbd5d8c7a13416")
7962 (revision "1"))
7963 (package
7964 (name "sbcl-symbol-munger")
7965 (version (git-version "0.0.1" revision commit))
7966 (source
7967 (origin
7968 (method git-fetch)
7969 (uri (git-reference
7970 (url "https://github.com/AccelerationNet/symbol-munger.git")
7971 (commit commit)))
7972 (file-name (git-file-name name version))
7973 (sha256
7974 (base32
7975 "0y8jywjy0ldyhp7bxf16fdvdd2qgqnd7nlhlqfpfnzxcqk4xy1km"))))
7976 (build-system asdf-build-system/sbcl)
7977 (inputs
7978 `(("alexandria" ,sbcl-alexandria)
7979 ("iterate" ,sbcl-iterate)))
7980 (native-inputs
7981 `(("lisp-unit2-boot0" ,sbcl-lisp-unit2-boot0)))
7982 (synopsis
7983 "Capitalization and spacing conversion functions for Common Lisp")
7984 (description
7985 "This is a Common Lisp library to change the capitalization and spacing
7986 of a string or a symbol. It can convert to and from Lisp, english, underscore
7987 and camel-case rules.")
7988 (home-page "https://github.com/AccelerationNet/symbol-munger")
7989 ;; The package declares a BSD license, but all of the license
7990 ;; text is MIT.
7991 ;; See https://github.com/AccelerationNet/symbol-munger/issues/5
7992 (license license:expat))))
7993
7994 (define-public cl-symbol-munger
7995 (sbcl-package->cl-source-package sbcl-symbol-munger))
7996
7997 (define-public ecl-symbol-munger
7998 (sbcl-package->ecl-package sbcl-symbol-munger))
7999
8000 (define-public sbcl-lisp-unit2
8001 (package
8002 (inherit sbcl-lisp-unit2-boot0)
8003 (name "sbcl-lisp-unit2")
8004 (inputs
8005 `(("alexandria" ,sbcl-alexandria)
8006 ("cl-interpol" ,sbcl-cl-interpol)
8007 ("iterate" ,sbcl-iterate)
8008 ("symbol-munger" ,sbcl-symbol-munger)))))
8009
8010 (define-public cl-lisp-unit2
8011 (sbcl-package->cl-source-package sbcl-lisp-unit2))
8012
8013 (define-public ecl-lisp-unit2
8014 (sbcl-package->ecl-package sbcl-lisp-unit2))
8015
8016 (define-public sbcl-cl-csv
8017 (let ((commit "3eba29c8364b033fbe0d189c2500559278b6a362")
8018 (revision "1"))
8019 (package
8020 (name "sbcl-cl-csv")
8021 (version (git-version "1.0.6" revision commit))
8022 (source
8023 (origin
8024 (method git-fetch)
8025 (uri (git-reference
8026 (url "https://github.com/AccelerationNet/cl-csv.git")
8027 (commit commit)))
8028 (file-name (git-file-name name version))
8029 (sha256
8030 (base32
8031 "07h4ni89jzx93clx453hlnnb5g53hhlcmz5hghqv6ysam48lc8g6"))))
8032 (build-system asdf-build-system/sbcl)
8033 (arguments
8034 ;; See: https://github.com/AccelerationNet/cl-csv/pull/34
8035 `(#:tests? #f))
8036 (inputs
8037 `(("alexandria" ,sbcl-alexandria)
8038 ("cl-interpol" ,sbcl-cl-interpol)
8039 ("iterate" ,sbcl-iterate)))
8040 (native-inputs
8041 `(("lisp-unit2" ,sbcl-lisp-unit2)))
8042 (synopsis "Common lisp library for comma-separated values")
8043 (description
8044 "This is a Common Lisp library providing functions to read/write CSV
8045 from/to strings, streams and files.")
8046 (home-page "https://github.com/AccelerationNet/cl-csv")
8047 (license license:bsd-3))))
8048
8049 (define-public cl-csv
8050 (sbcl-package->cl-source-package sbcl-cl-csv))
8051
8052 (define-public ecl-cl-csv
8053 (sbcl-package->ecl-package sbcl-cl-csv))
8054
8055 (define-public sbcl-external-program
8056 (let ((commit "5888b8f1fd3953feeeacecbba4384ddda584a749")
8057 (revision "1"))
8058 (package
8059 (name "sbcl-external-program")
8060 (version (git-version "0.0.6" revision commit))
8061 (source
8062 (origin
8063 (method git-fetch)
8064 (uri (git-reference
8065 (url "https://github.com/sellout/external-program.git")
8066 (commit commit)))
8067 (file-name (git-file-name name version))
8068 (sha256
8069 (base32
8070 "0vww1x3yilb3bjwg6k184vaj4vxyxw4vralhnlm6lk4xac67kc9z"))))
8071 (build-system asdf-build-system/sbcl)
8072 (inputs
8073 `(("trivial-features" ,sbcl-trivial-features)))
8074 (native-inputs
8075 `(("fiveam" ,sbcl-fiveam)))
8076 (synopsis "Common Lisp library for running external programs")
8077 (description
8078 "EXTERNAL-PROGRAM enables running programs outside the Lisp
8079 process. It is an attempt to make the RUN-PROGRAM functionality in
8080 implementations like SBCL and CCL as portable as possible without
8081 sacrificing much in the way of power.")
8082 (home-page "https://github.com/sellout/external-program")
8083 (license license:llgpl))))
8084
8085 (define-public cl-external-program
8086 (sbcl-package->cl-source-package sbcl-external-program))
8087
8088 (define-public ecl-external-program
8089 (sbcl-package->ecl-package sbcl-external-program))
8090
8091 (define sbcl-cl-ana-boot0
8092 (let ((commit "fa7cee4c50aa1c859652813049ba0da7c18a0df9")
8093 (revision "1"))
8094 (package
8095 (name "sbcl-cl-ana-boot0")
8096 (version (git-version "0.0.0" revision commit))
8097 (source
8098 (origin
8099 (method git-fetch)
8100 (uri (git-reference
8101 (url "https://github.com/ghollisjr/cl-ana.git")
8102 (commit commit)))
8103 (file-name (git-file-name name version))
8104 (sha256
8105 (base32
8106 "0mr47l57m276dbpap7irr4fcnk5fgknhf6mgv4043s8h73amk5qh"))))
8107 (build-system asdf-build-system/sbcl)
8108 (synopsis "Common Lisp data analysis library")
8109 (description
8110 "CL-ANA is a data analysis library in Common Lisp providing tabular and
8111 binned data analysis along with nonlinear least squares fitting and
8112 visualization.")
8113 (home-page "https://github.com/ghollisjr/cl-ana")
8114 (license license:gpl3))))
8115
8116 (define-public sbcl-cl-ana.pathname-utils
8117 (package
8118 (inherit sbcl-cl-ana-boot0)
8119 (name "sbcl-cl-ana.pathname-utils")
8120 (arguments
8121 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8122 ((#:asd-file _ "") "pathname-utils/cl-ana.pathname-utils.asd")
8123 ((#:asd-system-name _ #f) "cl-ana.pathname-utils")))))
8124
8125 (define-public cl-ana.pathname-utils
8126 (sbcl-package->cl-source-package sbcl-cl-ana.pathname-utils))
8127
8128 (define-public ecl-cl-ana.pathname-utils
8129 (sbcl-package->ecl-package sbcl-cl-ana.pathname-utils))
8130
8131 (define-public sbcl-cl-ana.package-utils
8132 (package
8133 (inherit sbcl-cl-ana-boot0)
8134 (name "sbcl-cl-ana.package-utils")
8135 (inputs
8136 `(("alexandria" ,sbcl-alexandria)))
8137 (arguments
8138 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8139 ((#:asd-file _ "") "package-utils/cl-ana.package-utils.asd")
8140 ((#:asd-system-name _ #f) "cl-ana.package-utils")))))
8141
8142 (define-public cl-ana.package-utils
8143 (sbcl-package->cl-source-package sbcl-cl-ana.package-utils))
8144
8145 (define-public ecl-cl-ana.package-utils
8146 (sbcl-package->ecl-package sbcl-cl-ana.package-utils))
8147
8148 (define-public sbcl-cl-ana.string-utils
8149 (package
8150 (inherit sbcl-cl-ana-boot0)
8151 (name "sbcl-cl-ana.string-utils")
8152 (inputs
8153 `(("split-sequence" ,sbcl-split-sequence)))
8154 (arguments
8155 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8156 ((#:asd-file _ "") "string-utils/cl-ana.string-utils.asd")
8157 ((#:asd-system-name _ #f) "cl-ana.string-utils")))))
8158
8159 (define-public cl-ana.string-utils
8160 (sbcl-package->cl-source-package sbcl-cl-ana.string-utils))
8161
8162 (define-public ecl-cl-ana.string-utils
8163 (sbcl-package->ecl-package sbcl-cl-ana.string-utils))
8164
8165 (define-public sbcl-cl-ana.functional-utils
8166 (package
8167 (inherit sbcl-cl-ana-boot0)
8168 (name "sbcl-cl-ana.functional-utils")
8169 (arguments
8170 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8171 ((#:asd-file _ "") "functional-utils/cl-ana.functional-utils.asd")
8172 ((#:asd-system-name _ #f) "cl-ana.functional-utils")))))
8173
8174 (define-public cl-ana.functional-utils
8175 (sbcl-package->cl-source-package sbcl-cl-ana.functional-utils))
8176
8177 (define-public ecl-cl-ana.functional-utils
8178 (sbcl-package->ecl-package sbcl-cl-ana.functional-utils))
8179
8180 (define-public sbcl-cl-ana.list-utils
8181 (package
8182 (inherit sbcl-cl-ana-boot0)
8183 (name "sbcl-cl-ana.list-utils")
8184 (inputs
8185 `(("alexandria" ,sbcl-alexandria)
8186 ("cl-ana.functional-utils" ,sbcl-cl-ana.functional-utils)
8187 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)))
8188 (arguments
8189 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8190 ((#:asd-file _ "") "list-utils/cl-ana.list-utils.asd")
8191 ((#:asd-system-name _ #f) "cl-ana.list-utils")))))
8192
8193 (define-public cl-ana.list-utils
8194 (sbcl-package->cl-source-package sbcl-cl-ana.list-utils))
8195
8196 (define-public ecl-cl-ana.list-utils
8197 (sbcl-package->ecl-package sbcl-cl-ana.list-utils))
8198
8199 (define-public sbcl-cl-ana.generic-math
8200 (package
8201 (inherit sbcl-cl-ana-boot0)
8202 (name "sbcl-cl-ana.generic-math")
8203 (inputs
8204 `(("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8205 ("cl-ana.package-utils" ,sbcl-cl-ana.package-utils)))
8206 (arguments
8207 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8208 ((#:asd-file _ "") "generic-math/cl-ana.generic-math.asd")
8209 ((#:asd-system-name _ #f) "cl-ana.generic-math")))))
8210
8211 (define-public cl-ana.generic-math
8212 (sbcl-package->cl-source-package sbcl-cl-ana.generic-math))
8213
8214 (define-public ecl-cl-ana.generic-math
8215 (sbcl-package->ecl-package sbcl-cl-ana.generic-math))
8216
8217 (define-public sbcl-cl-ana.math-functions
8218 (package
8219 (inherit sbcl-cl-ana-boot0)
8220 (name "sbcl-cl-ana.math-functions")
8221 (inputs
8222 `(("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
8223 ("gsll" ,sbcl-gsll)))
8224 (arguments
8225 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8226 ((#:asd-file _ "") "math-functions/cl-ana.math-functions.asd")
8227 ((#:asd-system-name _ #f) "cl-ana.math-functions")))))
8228
8229 (define-public cl-ana.math-functions
8230 (sbcl-package->cl-source-package sbcl-cl-ana.math-functions))
8231
8232 (define-public sbcl-cl-ana.calculus
8233 (package
8234 (inherit sbcl-cl-ana-boot0)
8235 (name "sbcl-cl-ana.calculus")
8236 (inputs
8237 `(("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)))
8238 (arguments
8239 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8240 ((#:asd-file _ "") "calculus/cl-ana.calculus.asd")
8241 ((#:asd-system-name _ #f) "cl-ana.calculus")))))
8242
8243 (define-public cl-ana.calculus
8244 (sbcl-package->cl-source-package sbcl-cl-ana.calculus))
8245
8246 (define-public ecl-cl-ana.calculus
8247 (sbcl-package->ecl-package sbcl-cl-ana.calculus))
8248
8249 (define-public sbcl-cl-ana.symbol-utils
8250 (package
8251 (inherit sbcl-cl-ana-boot0)
8252 (name "sbcl-cl-ana.symbol-utils")
8253 (inputs
8254 `(("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)))
8255 (arguments
8256 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8257 ((#:asd-file _ "") "symbol-utils/cl-ana.symbol-utils.asd")
8258 ((#:asd-system-name _ #f) "cl-ana.symbol-utils")))))
8259
8260 (define-public cl-ana.symbol-utils
8261 (sbcl-package->cl-source-package sbcl-cl-ana.symbol-utils))
8262
8263 (define-public ecl-cl-ana.symbol-utils
8264 (sbcl-package->ecl-package sbcl-cl-ana.symbol-utils))
8265
8266 (define-public sbcl-cl-ana.macro-utils
8267 (package
8268 (inherit sbcl-cl-ana-boot0)
8269 (name "sbcl-cl-ana.macro-utils")
8270 (inputs
8271 `(("alexandria" ,sbcl-alexandria)
8272 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8273 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
8274 ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)
8275 ("split-sequence" ,sbcl-split-sequence)))
8276 (arguments
8277 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8278 ((#:asd-file _ "") "macro-utils/cl-ana.macro-utils.asd")
8279 ((#:asd-system-name _ #f) "cl-ana.macro-utils")))))
8280
8281 (define-public cl-ana.macro-utils
8282 (sbcl-package->cl-source-package sbcl-cl-ana.macro-utils))
8283
8284 (define-public ecl-cl-ana.macro-utils
8285 (sbcl-package->ecl-package sbcl-cl-ana.macro-utils))
8286
8287 (define-public sbcl-cl-ana.binary-tree
8288 (package
8289 (inherit sbcl-cl-ana-boot0)
8290 (name "sbcl-cl-ana.binary-tree")
8291 (inputs
8292 `(("cl-ana.functional-utils" ,sbcl-cl-ana.functional-utils)
8293 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8294 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)))
8295 (arguments
8296 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8297 ((#:asd-file _ "") "binary-tree/cl-ana.binary-tree.asd")
8298 ((#:asd-system-name _ #f) "cl-ana.binary-tree")))))
8299
8300 (define-public cl-ana.binary-tree
8301 (sbcl-package->cl-source-package sbcl-cl-ana.binary-tree))
8302
8303 (define-public ecl-cl-ana.binary-tree
8304 (sbcl-package->ecl-package sbcl-cl-ana.binary-tree))
8305
8306 (define-public sbcl-cl-ana.tensor
8307 (package
8308 (inherit sbcl-cl-ana-boot0)
8309 (name "sbcl-cl-ana.tensor")
8310 (inputs
8311 `(("alexandria" ,sbcl-alexandria)
8312 ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
8313 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8314 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
8315 ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)))
8316 (arguments
8317 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8318 ((#:asd-file _ "") "tensor/cl-ana.tensor.asd")
8319 ((#:asd-system-name _ #f) "cl-ana.tensor")))))
8320
8321 (define-public cl-ana.tensor
8322 (sbcl-package->cl-source-package sbcl-cl-ana.tensor))
8323
8324 (define-public ecl-cl-ana.tensor
8325 (sbcl-package->ecl-package sbcl-cl-ana.tensor))
8326
8327 (define-public sbcl-cl-ana.error-propogation
8328 (package
8329 (inherit sbcl-cl-ana-boot0)
8330 (name "sbcl-cl-ana.error-propogation")
8331 (inputs
8332 `(("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
8333 ("cl-ana.math-functions" ,sbcl-cl-ana.math-functions)))
8334 (arguments
8335 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8336 ((#:asd-file _ "") "error-propogation/cl-ana.error-propogation.asd")
8337 ((#:asd-system-name _ #f) "cl-ana.error-propogation")))))
8338
8339 (define-public cl-ana.error-propogation
8340 (sbcl-package->cl-source-package sbcl-cl-ana.error-propogation))
8341
8342 (define-public sbcl-cl-ana.quantity
8343 (package
8344 (inherit sbcl-cl-ana-boot0)
8345 (name "sbcl-cl-ana.quantity")
8346 (inputs
8347 `(("alexandria" ,sbcl-alexandria)
8348 ("cl-ana.error-propogation" ,sbcl-cl-ana.error-propogation)
8349 ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
8350 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8351 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
8352 ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)))
8353 (arguments
8354 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8355 ((#:asd-file _ "") "quantity/cl-ana.quantity.asd")
8356 ((#:asd-system-name _ #f) "cl-ana.quantity")))))
8357
8358 (define-public cl-ana.quantity
8359 (sbcl-package->cl-source-package sbcl-cl-ana.quantity))
8360
8361 (define-public sbcl-cl-ana.table
8362 (package
8363 (inherit sbcl-cl-ana-boot0)
8364 (name "sbcl-cl-ana.table")
8365 (inputs
8366 `(("alexandria" ,sbcl-alexandria)
8367 ("cl-ana.functional-utils" ,sbcl-cl-ana.functional-utils)
8368 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8369 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
8370 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
8371 ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)))
8372 (arguments
8373 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8374 ((#:asd-file _ "") "table/cl-ana.table.asd")
8375 ((#:asd-system-name _ #f) "cl-ana.table")))))
8376
8377 (define-public cl-ana.table
8378 (sbcl-package->cl-source-package sbcl-cl-ana.table))
8379
8380 (define-public ecl-cl-ana.table
8381 (sbcl-package->ecl-package sbcl-cl-ana.table))
8382
8383 (define-public sbcl-cl-ana.table-utils
8384 (package
8385 (inherit sbcl-cl-ana-boot0)
8386 (name "sbcl-cl-ana.table-utils")
8387 (inputs
8388 `(("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
8389 ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)
8390 ("cl-ana.table" ,sbcl-cl-ana.table)))
8391 (arguments
8392 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8393 ((#:asd-file _ "") "table-utils/cl-ana.table-utils.asd")
8394 ((#:asd-system-name _ #f) "cl-ana.table-utils")))))
8395
8396 (define-public cl-ana.table-utils
8397 (sbcl-package->cl-source-package sbcl-cl-ana.table-utils))
8398
8399 (define-public ecl-cl-ana.table-utils
8400 (sbcl-package->ecl-package sbcl-cl-ana.table-utils))
8401
8402 (define-public sbcl-cl-ana.hdf-cffi
8403 (package
8404 (inherit sbcl-cl-ana-boot0)
8405 (name "sbcl-cl-ana.hdf-cffi")
8406 (inputs
8407 `(("cffi" ,sbcl-cffi)
8408 ("hdf5" ,hdf5-parallel-openmpi)))
8409 (arguments
8410 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8411 ((#:asd-file _ "") "hdf-cffi/cl-ana.hdf-cffi.asd")
8412 ((#:asd-system-name _ #f) "cl-ana.hdf-cffi")
8413 ((#:phases phases '%standard-phases)
8414 `(modify-phases ,phases
8415 (add-after 'unpack 'fix-paths
8416 (lambda* (#:key inputs #:allow-other-keys)
8417 (substitute* "hdf-cffi/hdf-cffi.lisp"
8418 (("/usr/lib/i386-linux-gnu/hdf5/serial/libhdf5.so")
8419 (string-append
8420 (assoc-ref inputs "hdf5")
8421 "/lib/libhdf5.so")))))))))))
8422
8423 (define-public cl-ana.hdf-cffi
8424 (sbcl-package->cl-source-package sbcl-cl-ana.hdf-cffi))
8425
8426 (define-public ecl-cl-ana.hdf-cffi
8427 (sbcl-package->ecl-package sbcl-cl-ana.hdf-cffi))
8428
8429 (define-public sbcl-cl-ana.int-char
8430 (package
8431 (inherit sbcl-cl-ana-boot0)
8432 (name "sbcl-cl-ana.int-char")
8433 (arguments
8434 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8435 ((#:asd-file _ "") "int-char/cl-ana.int-char.asd")
8436 ((#:asd-system-name _ #f) "cl-ana.int-char")))))
8437
8438 (define-public cl-ana.int-char
8439 (sbcl-package->cl-source-package sbcl-cl-ana.int-char))
8440
8441 (define-public ecl-cl-ana.int-char
8442 (sbcl-package->ecl-package sbcl-cl-ana.int-char))
8443
8444 (define-public sbcl-cl-ana.memoization
8445 (package
8446 (inherit sbcl-cl-ana-boot0)
8447 (name "sbcl-cl-ana.memoization")
8448 (inputs
8449 `(("alexandria" ,sbcl-alexandria)))
8450 (arguments
8451 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8452 ((#:asd-file _ "") "memoization/cl-ana.memoization.asd")
8453 ((#:asd-system-name _ #f) "cl-ana.memoization")))))
8454
8455 (define-public cl-ana.memoization
8456 (sbcl-package->cl-source-package sbcl-cl-ana.memoization))
8457
8458 (define-public ecl-cl-ana.memoization
8459 (sbcl-package->ecl-package sbcl-cl-ana.memoization))
8460
8461 (define-public sbcl-cl-ana.typespec
8462 (package
8463 (inherit sbcl-cl-ana-boot0)
8464 (name "sbcl-cl-ana.typespec")
8465 (inputs
8466 `(("alexandria" ,sbcl-alexandria)
8467 ("cffi" ,sbcl-cffi)
8468 ("cl-ana.int-char" ,sbcl-cl-ana.int-char)
8469 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8470 ("cl-ana.memoization" ,sbcl-cl-ana.memoization)
8471 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
8472 ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)
8473 ("cl-ana.tensor" ,sbcl-cl-ana.tensor)))
8474 (arguments
8475 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8476 ((#:asd-file _ "") "typespec/cl-ana.typespec.asd")
8477 ((#:asd-system-name _ #f) "cl-ana.typespec")))))
8478
8479 (define-public cl-ana.typespec
8480 (sbcl-package->cl-source-package sbcl-cl-ana.typespec))
8481
8482 (define-public ecl-cl-ana.typespec
8483 (sbcl-package->ecl-package sbcl-cl-ana.typespec))
8484
8485 (define-public sbcl-cl-ana.hdf-typespec
8486 (package
8487 (inherit sbcl-cl-ana-boot0)
8488 (name "sbcl-cl-ana.hdf-typespec")
8489 (inputs
8490 `(("alexandria" ,sbcl-alexandria)
8491 ("cffi" ,sbcl-cffi)
8492 ("cl-ana.hdf-cffi" ,sbcl-cl-ana.hdf-cffi)
8493 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8494 ("cl-ana.memoization" ,sbcl-cl-ana.memoization)
8495 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
8496 ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)
8497 ("cl-ana.typespec" ,sbcl-cl-ana.typespec)))
8498 (arguments
8499 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8500 ((#:asd-file _ "") "hdf-typespec/cl-ana.hdf-typespec.asd")
8501 ((#:asd-system-name _ #f) "cl-ana.hdf-typespec")))))
8502
8503 (define-public cl-ana.hdf-typespec
8504 (sbcl-package->cl-source-package sbcl-cl-ana.hdf-typespec))
8505
8506 (define-public ecl-cl-ana.hdf-typespec
8507 (sbcl-package->ecl-package sbcl-cl-ana.hdf-typespec))
8508
8509 (define-public sbcl-cl-ana.hdf-utils
8510 (package
8511 (inherit sbcl-cl-ana-boot0)
8512 (name "sbcl-cl-ana.hdf-utils")
8513 (inputs
8514 `(("alexandria" ,sbcl-alexandria)
8515 ("cffi" ,sbcl-cffi)
8516 ("cl-ana.hdf-cffi" ,sbcl-cl-ana.hdf-cffi)
8517 ("cl-ana.hdf-typespec" ,sbcl-cl-ana.hdf-typespec)
8518 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
8519 ("cl-ana.memoization" ,sbcl-cl-ana.memoization)
8520 ("cl-ana.pathname-utils" ,sbcl-cl-ana.pathname-utils)
8521 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
8522 ("cl-ana.typespec" ,sbcl-cl-ana.typespec)))
8523 (arguments
8524 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8525 ((#:asd-file _ "") "hdf-utils/cl-ana.hdf-utils.asd")
8526 ((#:asd-system-name _ #f) "cl-ana.hdf-utils")))))
8527
8528 (define-public cl-ana.hdf-utils
8529 (sbcl-package->cl-source-package sbcl-cl-ana.hdf-utils))
8530
8531 (define-public ecl-cl-ana.hdf-utils
8532 (sbcl-package->ecl-package sbcl-cl-ana.hdf-utils))
8533
8534 (define-public sbcl-cl-ana.typed-table
8535 (package
8536 (inherit sbcl-cl-ana-boot0)
8537 (name "sbcl-cl-ana.typed-table")
8538 (inputs
8539 `(("alexandria" ,sbcl-alexandria)
8540 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8541 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
8542 ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)
8543 ("cl-ana.table" ,sbcl-cl-ana.table)
8544 ("cl-ana.typespec" ,sbcl-cl-ana.typespec)))
8545 (arguments
8546 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8547 ((#:asd-file _ "") "typed-table/cl-ana.typed-table.asd")
8548 ((#:asd-system-name _ #f) "cl-ana.typed-table")))))
8549
8550 (define-public cl-ana.typed-table
8551 (sbcl-package->cl-source-package sbcl-cl-ana.typed-table))
8552
8553 (define-public ecl-cl-ana.typed-table
8554 (sbcl-package->ecl-package sbcl-cl-ana.typed-table))
8555
8556 (define-public sbcl-cl-ana.hdf-table
8557 (package
8558 (inherit sbcl-cl-ana-boot0)
8559 (name "sbcl-cl-ana.hdf-table")
8560 (inputs
8561 `(("alexandria" ,sbcl-alexandria)
8562 ("cl-ana.binary-tree" ,sbcl-cl-ana.binary-tree)
8563 ("cl-ana.hdf-cffi" ,sbcl-cl-ana.hdf-cffi)
8564 ("cl-ana.hdf-typespec" ,sbcl-cl-ana.hdf-typespec)
8565 ("cl-ana.hdf-utils" ,sbcl-cl-ana.hdf-utils)
8566 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8567 ("cl-ana.memoization" ,sbcl-cl-ana.memoization)
8568 ("cl-ana.table" ,sbcl-cl-ana.table)
8569 ("cl-ana.typed-table" ,sbcl-cl-ana.typed-table)
8570 ("cl-ana.typespec" ,sbcl-cl-ana.typespec)))
8571 (arguments
8572 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8573 ((#:asd-file _ "") "hdf-table/cl-ana.hdf-table.asd")
8574 ((#:asd-system-name _ #f) "cl-ana.hdf-table")))))
8575
8576 (define-public cl-ana.hdf-table
8577 (sbcl-package->cl-source-package sbcl-cl-ana.hdf-table))
8578
8579 (define-public ecl-cl-ana.hdf-table
8580 (sbcl-package->ecl-package sbcl-cl-ana.hdf-table))
8581
8582 (define-public sbcl-cl-ana.gsl-cffi
8583 (package
8584 (inherit sbcl-cl-ana-boot0)
8585 (name "sbcl-cl-ana.gsl-cffi")
8586 (inputs
8587 `(("cffi" ,sbcl-cffi)
8588 ("gsl" ,gsl)))
8589 (arguments
8590 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8591 ((#:asd-file _ "") "gsl-cffi/cl-ana.gsl-cffi.asd")
8592 ((#:asd-system-name _ #f) "cl-ana.gsl-cffi")
8593 ((#:phases phases '%standard-phases)
8594 `(modify-phases ,phases
8595 (add-after 'unpack 'fix-paths
8596 (lambda* (#:key inputs #:allow-other-keys)
8597 (substitute* "gsl-cffi/gsl-cffi.lisp"
8598 (("define-foreign-library gsl-cffi" all)
8599 (string-append all " (:unix "
8600 (assoc-ref inputs "gsl")
8601 "/lib/libgsl.so)")))))))))))
8602
8603 (define-public cl-ana.gsl-cffi
8604 (sbcl-package->cl-source-package sbcl-cl-ana.gsl-cffi))
8605
8606 (define-public ecl-cl-ana.gsl-cffi
8607 (sbcl-package->ecl-package sbcl-cl-ana.gsl-cffi))
8608
8609 (define-public sbcl-cl-ana.ntuple-table
8610 (package
8611 (inherit sbcl-cl-ana-boot0)
8612 (name "sbcl-cl-ana.ntuple-table")
8613 (inputs
8614 `(("alexandria" ,sbcl-alexandria)
8615 ("cffi" ,sbcl-cffi)
8616 ("cl-ana.gsl-cffi" ,sbcl-cl-ana.gsl-cffi)
8617 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8618 ("cl-ana.table" ,sbcl-cl-ana.table)
8619 ("cl-ana.typed-table" ,sbcl-cl-ana.typed-table)
8620 ("cl-ana.typespec" ,sbcl-cl-ana.typespec)
8621 ("gsll" ,sbcl-gsll)))
8622 (arguments
8623 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8624 ((#:asd-file _ "") "ntuple-table/cl-ana.ntuple-table.asd")
8625 ((#:asd-system-name _ #f) "cl-ana.ntuple-table")))))
8626
8627 (define-public cl-ana.ntuple-table
8628 (sbcl-package->cl-source-package sbcl-cl-ana.ntuple-table))
8629
8630 (define-public sbcl-cl-ana.csv-table
8631 (package
8632 (inherit sbcl-cl-ana-boot0)
8633 (name "sbcl-cl-ana.csv-table")
8634 (inputs
8635 `(("alexandria" ,sbcl-alexandria)
8636 ("antik" ,sbcl-antik)
8637 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8638 ("cl-ana.table" ,sbcl-cl-ana.table)
8639 ("cl-csv" ,sbcl-cl-csv)
8640 ("iterate" ,sbcl-iterate)))
8641 (arguments
8642 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8643 ((#:asd-file _ "") "csv-table/cl-ana.csv-table.asd")
8644 ((#:asd-system-name _ #f) "cl-ana.csv-table")))))
8645
8646 (define-public cl-ana.csv-table
8647 (sbcl-package->cl-source-package sbcl-cl-ana.csv-table))
8648
8649 (define-public sbcl-cl-ana.reusable-table
8650 (package
8651 (inherit sbcl-cl-ana-boot0)
8652 (name "sbcl-cl-ana.reusable-table")
8653 (inputs
8654 `(("alexandria" ,sbcl-alexandria)
8655 ("cl-ana.table" ,sbcl-cl-ana.table)))
8656 (arguments
8657 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8658 ((#:asd-file _ "") "reusable-table/cl-ana.reusable-table.asd")
8659 ((#:asd-system-name _ #f) "cl-ana.reusable-table")))))
8660
8661 (define-public cl-ana.reusable-table
8662 (sbcl-package->cl-source-package sbcl-cl-ana.reusable-table))
8663
8664 (define-public ecl-cl-ana.reusable-table
8665 (sbcl-package->ecl-package sbcl-cl-ana.reusable-table))
8666
8667 (define-public sbcl-cl-ana.linear-algebra
8668 (package
8669 (inherit sbcl-cl-ana-boot0)
8670 (name "sbcl-cl-ana.linear-algebra")
8671 (inputs
8672 `(("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
8673 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8674 ("cl-ana.math-functions" ,sbcl-cl-ana.math-functions)
8675 ("cl-ana.tensor" ,sbcl-cl-ana.tensor)
8676 ("gsll" ,sbcl-gsll)))
8677 (arguments
8678 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8679 ((#:asd-file _ "") "linear-algebra/cl-ana.linear-algebra.asd")
8680 ((#:asd-system-name _ #f) "cl-ana.linear-algebra")))))
8681
8682 (define-public cl-ana.linear-algebra
8683 (sbcl-package->cl-source-package sbcl-cl-ana.linear-algebra))
8684
8685 (define-public sbcl-cl-ana.lorentz
8686 (package
8687 (inherit sbcl-cl-ana-boot0)
8688 (name "sbcl-cl-ana.lorentz")
8689 (inputs
8690 `(("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
8691 ("cl-ana.linear-algebra" ,sbcl-cl-ana.linear-algebra)
8692 ("cl-ana.tensor" ,sbcl-cl-ana.tensor)
8693 ("iterate" ,sbcl-iterate)))
8694 (arguments
8695 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8696 ((#:asd-file _ "") "lorentz/cl-ana.lorentz.asd")
8697 ((#:asd-system-name _ #f) "cl-ana.lorentz")))))
8698
8699 (define-public cl-ana.lorentz
8700 (sbcl-package->cl-source-package sbcl-cl-ana.lorentz))
8701
8702 (define-public sbcl-cl-ana.clos-utils
8703 (package
8704 (inherit sbcl-cl-ana-boot0)
8705 (name "sbcl-cl-ana.clos-utils")
8706 (inputs
8707 `(("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8708 ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)
8709 ("cl-ana.tensor" ,sbcl-cl-ana.tensor)
8710 ("closer-mop" ,sbcl-closer-mop)))
8711 (arguments
8712 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8713 ((#:asd-file _ "") "clos-utils/cl-ana.clos-utils.asd")
8714 ((#:asd-system-name _ #f) "cl-ana.clos-utils")))))
8715
8716 (define-public cl-ana.clos-utils
8717 (sbcl-package->cl-source-package sbcl-cl-ana.clos-utils))
8718
8719 (define-public ecl-cl-ana.clos-utils
8720 (sbcl-package->ecl-package sbcl-cl-ana.clos-utils))
8721
8722 (define-public sbcl-cl-ana.hash-table-utils
8723 (package
8724 (inherit sbcl-cl-ana-boot0)
8725 (name "sbcl-cl-ana.hash-table-utils")
8726 (arguments
8727 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8728 ((#:asd-file _ "") "hash-table-utils/cl-ana.hash-table-utils.asd")
8729 ((#:asd-system-name _ #f) "cl-ana.hash-table-utils")))))
8730
8731 (define-public cl-ana.hash-table-utils
8732 (sbcl-package->cl-source-package sbcl-cl-ana.hash-table-utils))
8733
8734 (define-public ecl-cl-ana.hash-table-utils
8735 (sbcl-package->ecl-package sbcl-cl-ana.hash-table-utils))
8736
8737 (define-public sbcl-cl-ana.map
8738 (package
8739 (inherit sbcl-cl-ana-boot0)
8740 (name "sbcl-cl-ana.map")
8741 (inputs
8742 `(("cl-ana.hash-table-utils" ,sbcl-cl-ana.hash-table-utils)))
8743 (arguments
8744 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8745 ((#:asd-file _ "") "map/cl-ana.map.asd")
8746 ((#:asd-system-name _ #f) "cl-ana.map")))))
8747
8748 (define-public cl-ana.map
8749 (sbcl-package->cl-source-package sbcl-cl-ana.map))
8750
8751 (define-public ecl-cl-ana.map
8752 (sbcl-package->ecl-package sbcl-cl-ana.map))
8753
8754 (define-public sbcl-cl-ana.fitting
8755 (package
8756 (inherit sbcl-cl-ana-boot0)
8757 (name "sbcl-cl-ana.fitting")
8758 (inputs
8759 `(("alexandria" ,sbcl-alexandria)
8760 ("cl-ana.error-propogation" ,sbcl-cl-ana.error-propogation)
8761 ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
8762 ("cl-ana.map" ,sbcl-cl-ana.map)
8763 ("cl-ana.math-functions" ,sbcl-cl-ana.math-functions)
8764 ("gsll" ,sbcl-gsll)))
8765 (arguments
8766 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8767 ((#:asd-file _ "") "fitting/cl-ana.fitting.asd")
8768 ((#:asd-system-name _ #f) "cl-ana.fitting")))))
8769
8770 (define-public cl-ana.fitting
8771 (sbcl-package->cl-source-package sbcl-cl-ana.fitting))
8772
8773 (define-public sbcl-cl-ana.histogram
8774 (package
8775 (inherit sbcl-cl-ana-boot0)
8776 (name "sbcl-cl-ana.histogram")
8777 (inputs
8778 `(("alexandria" ,sbcl-alexandria)
8779 ("iterate" ,sbcl-iterate)
8780 ("cl-ana.binary-tree" ,sbcl-cl-ana.binary-tree)
8781 ("cl-ana.clos-utils" ,sbcl-cl-ana.clos-utils)
8782 ("cl-ana.fitting" ,sbcl-cl-ana.fitting)
8783 ("cl-ana.functional-utils" ,sbcl-cl-ana.functional-utils)
8784 ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
8785 ("cl-ana.hash-table-utils" ,sbcl-cl-ana.hash-table-utils)
8786 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8787 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
8788 ("cl-ana.map" ,sbcl-cl-ana.map)
8789 ("cl-ana.tensor" ,sbcl-cl-ana.tensor)))
8790 (arguments
8791 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8792 ((#:asd-file _ "") "histogram/cl-ana.histogram.asd")
8793 ((#:asd-system-name _ #f) "cl-ana.histogram")))))
8794
8795 (define-public cl-ana.histogram
8796 (sbcl-package->cl-source-package sbcl-cl-ana.histogram))
8797
8798 (define-public sbcl-cl-ana.file-utils
8799 (package
8800 (inherit sbcl-cl-ana-boot0)
8801 (name "sbcl-cl-ana.file-utils")
8802 (inputs
8803 `(("external-program" ,sbcl-external-program)
8804 ("split-sequence" ,sbcl-split-sequence)))
8805 (arguments
8806 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8807 ((#:asd-file _ "") "file-utils/cl-ana.file-utils.asd")
8808 ((#:asd-system-name _ #f) "cl-ana.file-utils")))))
8809
8810 (define-public cl-ana.file-utils
8811 (sbcl-package->cl-source-package sbcl-cl-ana.file-utils))
8812
8813 (define-public ecl-cl-ana.file-utils
8814 (sbcl-package->ecl-package sbcl-cl-ana.file-utils))
8815
8816 (define-public sbcl-cl-ana.statistics
8817 (package
8818 (inherit sbcl-cl-ana-boot0)
8819 (name "sbcl-cl-ana.statistics")
8820 (inputs
8821 `(("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
8822 ("cl-ana.histogram" ,sbcl-cl-ana.histogram)
8823 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8824 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
8825 ("cl-ana.map" ,sbcl-cl-ana.map)))
8826 (arguments
8827 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8828 ((#:asd-file _ "") "statistics/cl-ana.statistics.asd")
8829 ((#:asd-system-name _ #f) "cl-ana.statistics")))))
8830
8831 (define-public cl-ana.statistics
8832 (sbcl-package->cl-source-package sbcl-cl-ana.statistics))
8833
8834 (define-public sbcl-cl-ana.gnuplot-interface
8835 (package
8836 (inherit sbcl-cl-ana-boot0)
8837 (name "sbcl-cl-ana.gnuplot-interface")
8838 (inputs
8839 `(("external-program" ,sbcl-external-program)))
8840 (arguments
8841 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8842 ((#:asd-file _ "") "gnuplot-interface/cl-ana.gnuplot-interface.asd")
8843 ((#:asd-system-name _ #f) "cl-ana.gnuplot-interface")))))
8844
8845 (define-public cl-ana.gnuplot-interface
8846 (sbcl-package->cl-source-package sbcl-cl-ana.gnuplot-interface))
8847
8848 (define-public ecl-cl-ana.gnuplot-interface
8849 (sbcl-package->ecl-package sbcl-cl-ana.gnuplot-interface))
8850
8851 (define-public sbcl-cl-ana.plotting
8852 (package
8853 (inherit sbcl-cl-ana-boot0)
8854 (name "sbcl-cl-ana.plotting")
8855 (inputs
8856 `(("alexandria" ,sbcl-alexandria)
8857 ("cl-ana.error-propogation" ,sbcl-cl-ana.error-propogation)
8858 ("cl-ana.functional-utils" ,sbcl-cl-ana.functional-utils)
8859 ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
8860 ("cl-ana.gnuplot-interface" ,sbcl-cl-ana.gnuplot-interface)
8861 ("cl-ana.histogram" ,sbcl-cl-ana.histogram)
8862 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8863 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
8864 ("cl-ana.map" ,sbcl-cl-ana.map)
8865 ("cl-ana.math-functions" ,sbcl-cl-ana.math-functions)
8866 ("cl-ana.pathname-utils" ,sbcl-cl-ana.pathname-utils)
8867 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
8868 ("cl-ana.tensor" ,sbcl-cl-ana.tensor)
8869 ("external-program" ,sbcl-external-program)
8870 ("split-sequence" ,sbcl-split-sequence)))
8871 (arguments
8872 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8873 ((#:asd-file _ "") "plotting/cl-ana.plotting.asd")
8874 ((#:asd-system-name _ #f) "cl-ana.plotting")))))
8875
8876 (define-public cl-ana.plotting
8877 (sbcl-package->cl-source-package sbcl-cl-ana.plotting))
8878
8879 (define-public sbcl-cl-ana.table-viewing
8880 (package
8881 (inherit sbcl-cl-ana-boot0)
8882 (name "sbcl-cl-ana.table-viewing")
8883 (inputs
8884 `(("alexandria" ,sbcl-alexandria)
8885 ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
8886 ("cl-ana.histogram" ,sbcl-cl-ana.histogram)
8887 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
8888 ("cl-ana.plotting" ,sbcl-cl-ana.plotting)
8889 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
8890 ("cl-ana.table" ,sbcl-cl-ana.table)))
8891 (arguments
8892 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8893 ((#:asd-file _ "") "table-viewing/cl-ana.table-viewing.asd")
8894 ((#:asd-system-name _ #f) "cl-ana.table-viewing")))))
8895
8896 (define-public cl-ana.table-viewing
8897 (sbcl-package->cl-source-package sbcl-cl-ana.table-viewing))
8898
8899 (define-public sbcl-cl-ana.serialization
8900 (package
8901 (inherit sbcl-cl-ana-boot0)
8902 (name "sbcl-cl-ana.serialization")
8903 (inputs
8904 `(("cl-ana.error-propogation" ,sbcl-cl-ana.error-propogation)
8905 ("cl-ana.hdf-utils" ,sbcl-cl-ana.hdf-utils)
8906 ("cl-ana.hdf-table" ,sbcl-cl-ana.hdf-table)
8907 ("cl-ana.histogram" ,sbcl-cl-ana.histogram)
8908 ("cl-ana.int-char" ,sbcl-cl-ana.int-char)
8909 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
8910 ("cl-ana.typespec" ,sbcl-cl-ana.typespec)))
8911 (arguments
8912 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8913 ((#:asd-file _ "") "serialization/cl-ana.serialization.asd")
8914 ((#:asd-system-name _ #f) "cl-ana.serialization")))))
8915
8916 (define-public cl-ana.serialization
8917 (sbcl-package->cl-source-package sbcl-cl-ana.serialization))
8918
8919 (define-public sbcl-cl-ana.makeres
8920 (package
8921 (inherit sbcl-cl-ana-boot0)
8922 (name "sbcl-cl-ana.makeres")
8923 (inputs
8924 `(("alexandria" ,sbcl-alexandria)
8925 ("cl-ana.error-propogation" ,sbcl-cl-ana.error-propogation)
8926 ("cl-ana.file-utils" ,sbcl-cl-ana.file-utils)
8927 ("cl-ana.functional-utils" ,sbcl-cl-ana.functional-utils)
8928 ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
8929 ("cl-ana.hash-table-utils" ,sbcl-cl-ana.hash-table-utils)
8930 ("cl-ana.hdf-utils" ,sbcl-cl-ana.hdf-utils)
8931 ("cl-ana.histogram" ,sbcl-cl-ana.histogram)
8932 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8933 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
8934 ("cl-ana.map" ,sbcl-cl-ana.map)
8935 ("cl-ana.memoization" ,sbcl-cl-ana.memoization)
8936 ("cl-ana.pathname-utils" ,sbcl-cl-ana.pathname-utils)
8937 ("cl-ana.plotting" ,sbcl-cl-ana.plotting)
8938 ("cl-ana.reusable-table" ,sbcl-cl-ana.reusable-table)
8939 ("cl-ana.serialization" ,sbcl-cl-ana.serialization)
8940 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
8941 ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)
8942 ("cl-ana.table" ,sbcl-cl-ana.table)
8943 ("external-program" ,sbcl-external-program)))
8944 (native-inputs
8945 `(("cl-fad" ,sbcl-cl-fad)))
8946 (arguments
8947 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8948 ((#:asd-file _ "") "makeres/cl-ana.makeres.asd")
8949 ((#:asd-system-name _ #f) "cl-ana.makeres")))))
8950
8951 (define-public cl-ana.makeres
8952 (sbcl-package->cl-source-package sbcl-cl-ana.makeres))
8953
8954 (define-public sbcl-cl-ana.makeres-macro
8955 (package
8956 (inherit sbcl-cl-ana-boot0)
8957 (name "sbcl-cl-ana.makeres-macro")
8958 (inputs
8959 `(("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8960 ("cl-ana.makeres" ,sbcl-cl-ana.makeres)))
8961 (arguments
8962 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8963 ((#:asd-file _ "") "makeres-macro/cl-ana.makeres-macro.asd")
8964 ((#:asd-system-name _ #f) "cl-ana.makeres-macro")))))
8965
8966 (define-public cl-ana.makeres-macro
8967 (sbcl-package->cl-source-package sbcl-cl-ana.makeres-macro))
8968
8969 (define-public sbcl-cl-ana.makeres-block
8970 (package
8971 (inherit sbcl-cl-ana-boot0)
8972 (name "sbcl-cl-ana.makeres-block")
8973 (inputs
8974 `(("alexandria" ,sbcl-alexandria)
8975 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8976 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
8977 ("cl-ana.makeres" ,sbcl-cl-ana.makeres)))
8978 (arguments
8979 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8980 ((#:asd-file _ "") "makeres-block/cl-ana.makeres-block.asd")
8981 ((#:asd-system-name _ #f) "cl-ana.makeres-block")))))
8982
8983 (define-public cl-ana.makeres-block
8984 (sbcl-package->cl-source-package sbcl-cl-ana.makeres-block))
8985
8986 (define-public sbcl-cl-ana.makeres-progress
8987 (package
8988 (inherit sbcl-cl-ana-boot0)
8989 (name "sbcl-cl-ana.makeres-progress")
8990 (inputs
8991 `(("alexandria" ,sbcl-alexandria)
8992 ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
8993 ("cl-ana.makeres" ,sbcl-cl-ana.makeres)))
8994 (arguments
8995 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8996 ((#:asd-file _ "") "makeres-progress/cl-ana.makeres-progress.asd")
8997 ((#:asd-system-name _ #f) "cl-ana.makeres-progress")))))
8998
8999 (define-public cl-ana.makeres-progress
9000 (sbcl-package->cl-source-package sbcl-cl-ana.makeres-progress))
9001
9002 (define-public sbcl-cl-ana.makeres-table
9003 (package
9004 (inherit sbcl-cl-ana-boot0)
9005 (name "sbcl-cl-ana.makeres-table")
9006 (inputs
9007 `(("cl-ana.csv-table" ,sbcl-cl-ana.csv-table)
9008 ("cl-ana.hash-table-utils" ,sbcl-cl-ana.hash-table-utils)
9009 ("cl-ana.hdf-table" ,sbcl-cl-ana.hdf-table)
9010 ("cl-ana.hdf-utils" ,sbcl-cl-ana.hdf-utils)
9011 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
9012 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
9013 ("cl-ana.makeres" ,sbcl-cl-ana.makeres)
9014 ("cl-ana.makeres-macro" ,sbcl-cl-ana.makeres-macro)
9015 ("cl-ana.memoization" ,sbcl-cl-ana.memoization)
9016 ("cl-ana.ntuple-table" ,sbcl-cl-ana.ntuple-table)
9017 ("cl-ana.reusable-table" ,sbcl-cl-ana.reusable-table)
9018 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
9019 ("cl-ana.table" ,sbcl-cl-ana.table)))
9020 (native-inputs
9021 `(("cl-fad" ,sbcl-cl-fad)))
9022 (arguments
9023 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9024 ((#:asd-file _ "") "makeres-table/cl-ana.makeres-table.asd")
9025 ((#:asd-system-name _ #f) "cl-ana.makeres-table")))))
9026
9027 (define-public cl-ana.makeres-table
9028 (sbcl-package->cl-source-package sbcl-cl-ana.makeres-table))
9029
9030 (define-public sbcl-cl-ana.makeres-graphviz
9031 (package
9032 (inherit sbcl-cl-ana-boot0)
9033 (name "sbcl-cl-ana.makeres-graphviz")
9034 (inputs
9035 `(("cl-ana.makeres" ,sbcl-cl-ana.makeres)
9036 ("external-program" ,sbcl-external-program)))
9037 (arguments
9038 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9039 ((#:asd-file _ "") "makeres-graphviz/cl-ana.makeres-graphviz.asd")
9040 ((#:asd-system-name _ #f) "cl-ana.makeres-graphviz")))))
9041
9042 (define-public cl-ana.makeres-graphviz
9043 (sbcl-package->cl-source-package sbcl-cl-ana.makeres-graphviz))
9044
9045 (define-public sbcl-cl-ana.makeres-branch
9046 (package
9047 (inherit sbcl-cl-ana-boot0)
9048 (name "sbcl-cl-ana.makeres-branch")
9049 (inputs
9050 `(("alexandria" ,sbcl-alexandria)
9051 ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
9052 ("cl-ana.hash-table-utils" ,sbcl-cl-ana.hash-table-utils)
9053 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
9054 ("cl-ana.map" ,sbcl-cl-ana.map)
9055 ("cl-ana.makeres" ,sbcl-cl-ana.makeres)))
9056 (arguments
9057 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9058 ((#:asd-file _ "") "makeres-branch/cl-ana.makeres-branch.asd")
9059 ((#:asd-system-name _ #f) "cl-ana.makeres-branch")))))
9060
9061 (define-public cl-ana.makeres-branch
9062 (sbcl-package->cl-source-package sbcl-cl-ana.makeres-branch))
9063
9064 (define-public sbcl-cl-ana.makeres-utils
9065 (package
9066 (inherit sbcl-cl-ana-boot0)
9067 (name "sbcl-cl-ana.makeres-utils")
9068 (inputs
9069 `(("alexandria" ,sbcl-alexandria)
9070 ("cl-ana.file-utils" ,sbcl-cl-ana.file-utils)
9071 ("cl-ana.fitting" ,sbcl-cl-ana.fitting)
9072 ("cl-ana.functional-utils" ,sbcl-cl-ana.functional-utils)
9073 ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
9074 ("cl-ana.histogram" ,sbcl-cl-ana.histogram)
9075 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
9076 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
9077 ("cl-ana.makeres" ,sbcl-cl-ana.makeres)
9078 ("cl-ana.map" ,sbcl-cl-ana.map)
9079 ("cl-ana.pathname-utils" ,sbcl-cl-ana.pathname-utils)
9080 ("cl-ana.plotting" ,sbcl-cl-ana.plotting)
9081 ("cl-ana.reusable-table" ,sbcl-cl-ana.reusable-table)
9082 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
9083 ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)
9084 ("cl-ana.table" ,sbcl-cl-ana.table)))
9085 (native-inputs
9086 `(("cl-fad" ,sbcl-cl-fad)))
9087 (arguments
9088 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9089 ((#:asd-file _ "") "makeres-utils/cl-ana.makeres-utils.asd")
9090 ((#:asd-system-name _ #f) "cl-ana.makeres-utils")))))
9091
9092 (define-public cl-ana.makeres-utils
9093 (sbcl-package->cl-source-package sbcl-cl-ana.makeres-utils))
9094
9095 (define-public sbcl-cl-ana.statistical-learning
9096 (package
9097 (inherit sbcl-cl-ana-boot0)
9098 (name "sbcl-cl-ana.statistical-learning")
9099 (inputs
9100 `(("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
9101 ("cl-ana.functional-utils" ,sbcl-cl-ana.functional-utils)
9102 ("cl-ana.histogram" ,sbcl-cl-ana.histogram)
9103 ("cl-ana.linear-algebra" ,sbcl-cl-ana.linear-algebra)
9104 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
9105 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
9106 ("cl-ana.math-functions" ,sbcl-cl-ana.math-functions)
9107 ("cl-ana.map" ,sbcl-cl-ana.map)
9108 ("cl-ana.statistics" ,sbcl-cl-ana.statistics)))
9109 (native-inputs
9110 `(("cl-fad" ,sbcl-cl-fad)))
9111 (arguments
9112 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9113 ((#:asd-file _ "")
9114 "statistical-learning/cl-ana.statistical-learning.asd")
9115 ((#:asd-system-name _ #f) "cl-ana.statistical-learning")))))
9116
9117 (define-public cl-ana.statistical-learning
9118 (sbcl-package->cl-source-package sbcl-cl-ana.statistical-learning))
9119
9120 (define-public sbcl-cl-ana
9121 (package
9122 (inherit sbcl-cl-ana-boot0)
9123 (name "sbcl-cl-ana")
9124 (inputs
9125 `(("cl-ana.binary-tree" ,sbcl-cl-ana.binary-tree)
9126 ("cl-ana.calculus" ,sbcl-cl-ana.calculus)
9127 ("cl-ana.clos-utils" ,sbcl-cl-ana.clos-utils)
9128 ("cl-ana.csv-table" ,sbcl-cl-ana.csv-table)
9129 ("cl-ana.error-propogation" ,sbcl-cl-ana.error-propogation)
9130 ("cl-ana.file-utils" ,sbcl-cl-ana.file-utils)
9131 ("cl-ana.fitting" ,sbcl-cl-ana.fitting)
9132 ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
9133 ("cl-ana.hash-table-utils" ,sbcl-cl-ana.hash-table-utils)
9134 ("cl-ana.hdf-table" ,sbcl-cl-ana.hdf-table)
9135 ("cl-ana.histogram" ,sbcl-cl-ana.histogram)
9136 ("cl-ana.int-char" ,sbcl-cl-ana.int-char)
9137 ("cl-ana.linear-algebra" ,sbcl-cl-ana.linear-algebra)
9138 ("cl-ana.lorentz" ,sbcl-cl-ana.lorentz)
9139 ("cl-ana.map" ,sbcl-cl-ana.map)
9140 ("cl-ana.makeres" ,sbcl-cl-ana.makeres)
9141 ("cl-ana.makeres-block" ,sbcl-cl-ana.makeres-block)
9142 ("cl-ana.makeres-branch" ,sbcl-cl-ana.makeres-branch)
9143 ("cl-ana.makeres-graphviz" ,sbcl-cl-ana.makeres-graphviz)
9144 ("cl-ana.makeres-macro" ,sbcl-cl-ana.makeres-macro)
9145 ("cl-ana.makeres-progress" ,sbcl-cl-ana.makeres-progress)
9146 ("cl-ana.makeres-table" ,sbcl-cl-ana.makeres-table)
9147 ("cl-ana.makeres-utils" ,sbcl-cl-ana.makeres-utils)
9148 ("cl-ana.math-functions" ,sbcl-cl-ana.math-functions)
9149 ("cl-ana.ntuple-table" ,sbcl-cl-ana.ntuple-table)
9150 ("cl-ana.package-utils" ,sbcl-cl-ana.package-utils)
9151 ("cl-ana.pathname-utils" ,sbcl-cl-ana.pathname-utils)
9152 ("cl-ana.plotting" ,sbcl-cl-ana.plotting)
9153 ("cl-ana.quantity" ,sbcl-cl-ana.quantity)
9154 ("cl-ana.reusable-table" ,sbcl-cl-ana.reusable-table)
9155 ("cl-ana.serialization" ,sbcl-cl-ana.serialization)
9156 ("cl-ana.statistics" ,sbcl-cl-ana.statistics)
9157 ("cl-ana.statistical-learning" ,sbcl-cl-ana.statistical-learning)
9158 ("cl-ana.table" ,sbcl-cl-ana.table)
9159 ("cl-ana.table-utils" ,sbcl-cl-ana.table-utils)
9160 ("cl-ana.table-viewing" ,sbcl-cl-ana.table-viewing)
9161 ("cl-ana.tensor" ,sbcl-cl-ana.tensor)
9162 ("libffi" ,libffi)))
9163 (native-inputs
9164 `(("cl-fad" ,sbcl-cl-fad)))
9165 (arguments
9166 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9167 ((#:asd-file _ "") "cl-ana.asd")
9168 ((#:asd-system-name _ #f) "cl-ana")))))
9169
9170 (define-public cl-ana
9171 (sbcl-package->cl-source-package sbcl-cl-ana))
9172
9173 (define-public sbcl-archive
9174 (let ((commit "631271c091ed02994bec3980cb288a2cf32c7cdc")
9175 (revision "1"))
9176 (package
9177 (name "sbcl-archive")
9178 (version (git-version "0.9" revision commit))
9179 (source (origin
9180 (method git-fetch)
9181 (uri (git-reference
9182 (url "https://github.com/sharplispers/archive.git")
9183 (commit commit)))
9184 (file-name (git-file-name name version))
9185 (sha256
9186 (base32
9187 "0pvsc9fmybx7rxd0kmzq4shi6hszdpwdc1sfy7jwyfxf8n3hnv4p"))))
9188 (build-system asdf-build-system/sbcl)
9189 (inputs
9190 `(("cl-fad" ,sbcl-cl-fad)
9191 ("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
9192 (synopsis "Common Lisp library for tar and cpio archives")
9193 (description
9194 "This is a Common Lisp library to read and write disk-based file
9195 archives such as those generated by the tar and cpio programs on Unix.")
9196 (home-page "https://github.com/sharplispers/archive")
9197 (license license:bsd-3))))
9198
9199 (define-public cl-archive
9200 (sbcl-package->cl-source-package sbcl-archive))
9201
9202 (define-public ecl-archive
9203 (sbcl-package->ecl-package sbcl-archive))
9204
9205 (define-public sbcl-misc-extensions
9206 (let ((commit "101c05112bf2f1e1bbf527396822d2f50ca6327a")
9207 (revision "1"))
9208 (package
9209 (name "sbcl-misc-extensions")
9210 (version (git-version "3.3" revision commit))
9211 (source
9212 (origin
9213 (method git-fetch)
9214 (uri (git-reference
9215 (url "https://gitlab.common-lisp.net/misc-extensions/devel.git")
9216 (commit commit)))
9217 (file-name (git-file-name name version))
9218 (sha256
9219 (base32
9220 "0gz5f4p70qzilnxsnf5lih2n9m4wjcw8hlw4w8mpn9jyhyppyyv0"))))
9221 (build-system asdf-build-system/sbcl)
9222 (synopsis "Collection of small macros and extensions for Common Lisp")
9223 (description
9224 "This project is intended as a catchall for small, general-purpose
9225 extensions to Common Lisp. It contains:
9226
9227 @itemize
9228 @item @code{new-let}, a macro that combines and generalizes @code{let},
9229 @code{let*} and @code{multiple-value-bind},
9230 @item @code{gmap}, an iteration macro that generalizes @code{map}.
9231 @end itemize\n")
9232 (home-page "https://common-lisp.net/project/misc-extensions/")
9233 (license license:public-domain))))
9234
9235 (define-public cl-misc-extensions
9236 (sbcl-package->cl-source-package sbcl-misc-extensions))
9237
9238 (define-public ecl-misc-extensions
9239 (sbcl-package->ecl-package sbcl-misc-extensions))
9240
9241 (define-public sbcl-mt19937
9242 (package
9243 (name "sbcl-mt19937")
9244 (version "1.1")
9245 (source
9246 (origin
9247 (method url-fetch)
9248 (uri (string-append "https://common-lisp.net/project/asdf-packaging/"
9249 "mt19937-latest.tar.gz"))
9250 (sha256
9251 (base32
9252 "1iw636b0iw5ygkv02y8i41lh7xj0acglv0hg5agryn0zzi2nf1xv"))))
9253 (build-system asdf-build-system/sbcl)
9254 (synopsis "Mersenne Twister pseudo-random number generator")
9255 (description
9256 "MT19937 is a portable Mersenne Twister pseudo-random number generator
9257 for Common Lisp.")
9258 (home-page "https://www.cliki.net/mt19937")
9259 (license license:public-domain)))
9260
9261 (define-public cl-mt19937
9262 (sbcl-package->cl-source-package sbcl-mt19937))
9263
9264 (define-public ecl-mt19937
9265 (sbcl-package->ecl-package sbcl-mt19937))
9266
9267 (define-public sbcl-fset
9268 (let ((commit "6d2f9ded8934d2b42f2571a0ba5bda091037d852")
9269 (revision "1"))
9270 (package
9271 (name "sbcl-fset")
9272 (version (git-version "1.3.2" revision commit))
9273 (source
9274 (origin
9275 (method git-fetch)
9276 (uri (git-reference
9277 (url "https://github.com/slburson/fset")
9278 (commit commit)))
9279 (file-name (git-file-name name version))
9280 (sha256
9281 (base32
9282 "127acblwrbqicx47h6sgvknz1cqyfn8p4xkhkn1m7hxh8w5gk1zy"))
9283 (snippet '(begin
9284 ;; Remove obsolete copy of system definition.
9285 (delete-file "Code/fset.asd")
9286 #t))))
9287 (build-system asdf-build-system/sbcl)
9288 (inputs
9289 `(("misc-extensions" ,sbcl-misc-extensions)
9290 ("mt19937" ,sbcl-mt19937)
9291 ("named-readtables" ,sbcl-named-readtables)))
9292 (synopsis "Functional set-theoretic collections library")
9293 (description
9294 "FSet is a functional set-theoretic collections library for Common Lisp.
9295 Functional means that all update operations return a new collection rather than
9296 modifying an existing one in place. Set-theoretic means that collections may
9297 be nested arbitrarily with no additional programmer effort; for instance, sets
9298 may contain sets, maps may be keyed by sets, etc.")
9299 (home-page "https://common-lisp.net/project/fset/Site/index.html")
9300 (license license:llgpl))))
9301
9302 (define-public cl-fset
9303 (sbcl-package->cl-source-package sbcl-fset))
9304
9305 (define-public sbcl-cl-cont
9306 (let ((commit "fc1fa7e6eb64894fdca13e688e6015fad5290d2a")
9307 (revision "1"))
9308 (package
9309 (name "sbcl-cl-cont")
9310 (version (git-version "0.3.8" revision commit))
9311 (source
9312 (origin
9313 (method git-fetch)
9314 (uri (git-reference
9315 (url "https://gitlab.common-lisp.net/cl-cont/cl-cont.git")
9316 (commit commit)))
9317 (file-name (git-file-name name version))
9318 (sha256
9319 (base32
9320 "1zf8zvb0i6jm3hhfks4w74hibm6avgc6f9s1qwgjrn2bcik8lrvz"))))
9321 (build-system asdf-build-system/sbcl)
9322 (inputs
9323 `(("alexandria" ,sbcl-alexandria)
9324 ("closer-mop" ,sbcl-closer-mop)))
9325 (native-inputs
9326 `(("rt" ,sbcl-rt)))
9327 (synopsis "Delimited continuations for Common Lisp")
9328 (description
9329 "This is a library that implements delimited continuations by
9330 transforming Common Lisp code to continuation passing style.")
9331 (home-page "https://common-lisp.net/project/cl-cont/")
9332 (license license:llgpl))))
9333
9334 (define-public cl-cont
9335 (sbcl-package->cl-source-package sbcl-cl-cont))
9336
9337 (define-public ecl-cl-cont
9338 (sbcl-package->ecl-package sbcl-cl-cont))
9339
9340 (define-public sbcl-cl-coroutine
9341 (let ((commit "de098f8d5debd8b14ef6864b5bdcbbf5ddbcfd72")
9342 (revision "1"))
9343 (package
9344 (name "sbcl-cl-coroutine")
9345 (version (git-version "0.1" revision commit))
9346 (source
9347 (origin
9348 (method git-fetch)
9349 (uri (git-reference
9350 (url "https://github.com/takagi/cl-coroutine.git")
9351 (commit commit)))
9352 (file-name (git-file-name name version))
9353 (sha256
9354 (base32
9355 "1cqdhdjxffgfs116l1swjlsmcbly0xgcgrckvaajd566idj9yj4l"))))
9356 (build-system asdf-build-system/sbcl)
9357 (inputs
9358 `(("alexandria" ,sbcl-alexandria)
9359 ("cl-cont" ,sbcl-cl-cont)))
9360 (native-inputs
9361 `(("prove" ,sbcl-prove)))
9362 (arguments
9363 `(;; TODO: Fix the tests. They fail with:
9364 ;; "Component CL-COROUTINE-ASD::CL-COROUTINE-TEST not found"
9365 #:tests? #f
9366 #:phases
9367 (modify-phases %standard-phases
9368 (add-after 'unpack 'fix-tests
9369 (lambda _
9370 (substitute* "cl-coroutine-test.asd"
9371 (("cl-test-more")
9372 "prove"))
9373 #t)))))
9374 (synopsis "Coroutine library for Common Lisp")
9375 (description
9376 "This is a coroutine library for Common Lisp implemented using the
9377 continuations of the @code{cl-cont} library.")
9378 (home-page "https://github.com/takagi/cl-coroutine")
9379 (license license:llgpl))))
9380
9381 (define-public cl-coroutine
9382 (sbcl-package->cl-source-package sbcl-cl-coroutine))
9383
9384 (define-public ecl-cl-coroutine
9385 (sbcl-package->ecl-package sbcl-cl-coroutine))
9386
9387 (define-public sbcl-vom
9388 (let ((commit "1aeafeb5b74c53741b79497e0ef4acf85c92ff24")
9389 (revision "1"))
9390 (package
9391 (name "sbcl-vom")
9392 (version (git-version "0.1.4" revision commit))
9393 (source
9394 (origin
9395 (method git-fetch)
9396 (uri (git-reference
9397 (url "https://github.com/orthecreedence/vom.git")
9398 (commit commit)))
9399 (file-name (git-file-name name version))
9400 (sha256
9401 (base32
9402 "0536kppj76ax4lrxhv42npkfjsmx45km2g439vf9jmw3apinz9cy"))))
9403 (build-system asdf-build-system/sbcl)
9404 (synopsis "Tiny logging utility for Common Lisp")
9405 (description
9406 "Vom is a logging library for Common Lisp. It's goal is to be useful
9407 and small. It does not provide a lot of features as other loggers do, but
9408 has a small codebase that's easy to understand and use.")
9409 (home-page "https://github.com/orthecreedence/vom")
9410 (license license:expat))))
9411
9412 (define-public cl-vom
9413 (sbcl-package->cl-source-package sbcl-vom))
9414
9415 (define-public ecl-vom
9416 (sbcl-package->ecl-package sbcl-vom))
9417
9418 (define-public sbcl-cl-libuv
9419 (let ((commit "32100c023c518038d0670a103eaa4d50dd785d29")
9420 (revision "1"))
9421 (package
9422 (name "sbcl-cl-libuv")
9423 (version (git-version "0.1.6" revision commit))
9424 (source
9425 (origin
9426 (method git-fetch)
9427 (uri (git-reference
9428 (url "https://github.com/orthecreedence/cl-libuv.git")
9429 (commit commit)))
9430 (file-name (git-file-name name version))
9431 (sha256
9432 (base32
9433 "1kwix4si8a8hza34ab2k7whrh7z0yrmx39v2wc3qblv9m244jkh1"))))
9434 (build-system asdf-build-system/sbcl)
9435 (inputs
9436 `(("alexandria" ,sbcl-alexandria)
9437 ("cffi" ,sbcl-cffi)
9438 ("cffi-grovel" ,sbcl-cffi-grovel)
9439 ("libuv" ,libuv)))
9440 (arguments
9441 `(#:phases
9442 (modify-phases %standard-phases
9443 (add-after 'unpack 'fix-paths
9444 (lambda* (#:key inputs #:allow-other-keys)
9445 (substitute* "lib.lisp"
9446 (("/usr/lib/libuv.so")
9447 (string-append (assoc-ref inputs "libuv")
9448 "/lib/libuv.so")))
9449 #t))
9450 (add-after 'fix-paths 'fix-system-definition
9451 (lambda _
9452 (substitute* "cl-libuv.asd"
9453 (("#:cffi #:alexandria")
9454 "#:cffi #:cffi-grovel #:alexandria"))
9455 #t)))))
9456 (synopsis "Common Lisp bindings to libuv")
9457 (description
9458 "This library provides low-level libuv bindings for Common Lisp.")
9459 (home-page "https://github.com/orthecreedence/cl-libuv")
9460 (license license:expat))))
9461
9462 (define-public cl-libuv
9463 (sbcl-package->cl-source-package sbcl-cl-libuv))
9464
9465 (define-public ecl-cl-libuv
9466 (sbcl-package->ecl-package sbcl-cl-libuv))
9467
9468 (define-public sbcl-cl-async-base
9469 (let ((commit "f6423e44404a44434d803605e0d2e17199158e28")
9470 (revision "1"))
9471 (package
9472 (name "sbcl-cl-async-base")
9473 (version (git-version "0.6.1" revision commit))
9474 (source
9475 (origin
9476 (method git-fetch)
9477 (uri (git-reference
9478 (url "https://github.com/orthecreedence/cl-async.git")
9479 (commit commit)))
9480 (file-name (git-file-name name version))
9481 (sha256
9482 (base32
9483 "11xi9dxb8mjgwzrkj88i0xkgk26z9w9ddxzbv6xsvfc1d4x5cf4x"))))
9484 (build-system asdf-build-system/sbcl)
9485 (inputs
9486 `(("bordeaux-threads" ,sbcl-bordeaux-threads)
9487 ("cffi" ,sbcl-cffi)
9488 ("cl-libuv" ,sbcl-cl-libuv)))
9489 (arguments
9490 `(#:asd-file "cl-async.asd"))
9491 (synopsis "Base system for cl-async")
9492 (description
9493 "Cl-async is a library for general purpose, non-blocking programming in
9494 Common Lisp. It uses the libuv library as backend.")
9495 (home-page "https://orthecreedence.github.io/cl-async/")
9496 (license license:expat))))
9497
9498 (define-public cl-async-base
9499 (sbcl-package->cl-source-package sbcl-cl-async-base))
9500
9501 (define-public ecl-cl-async-base
9502 (sbcl-package->ecl-package sbcl-cl-async-base))
9503
9504 (define-public sbcl-cl-async-util
9505 (package
9506 (inherit sbcl-cl-async-base)
9507 (name "sbcl-cl-async-util")
9508 (inputs
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))