gnu: sbcl-iolib: Update to 20200425.
[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, 2020 Pierre Neidhardt <mail@ambrevar.xyz>
14 ;;; Copyright © 2018, 2019 Pierre Langlois <pierre.langlois@gmx.com>
15 ;;; Copyright © 2019, 2020 Katherine Cox-Buday <cox.katherine.e@gmail.com>
16 ;;; Copyright © 2019 Jesse Gildersleve <jessejohngildersleve@protonmail.com>
17 ;;; Copyright © 2019, 2020 Guillaume Le Vaillant <glv@posteo.net>
18 ;;; Copyright © 2019 Brett Gilio <brettg@gnu.org>
19 ;;; Copyright © 2020 Konrad Hinsen <konrad.hinsen@fastmail.net>
20 ;;; Copyright © 2020 Dimakis Dimakakos <me@bendersteed.tech>
21 ;;; Copyright © 2020 Oleg Pykhalov <go.wigust@gmail.com>
22 ;;;
23 ;;; This file is part of GNU Guix.
24 ;;;
25 ;;; GNU Guix is free software; you can redistribute it and/or modify it
26 ;;; under the terms of the GNU General Public License as published by
27 ;;; the Free Software Foundation; either version 3 of the License, or (at
28 ;;; your option) any later version.
29 ;;;
30 ;;; GNU Guix is distributed in the hope that it will be useful, but
31 ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
32 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
33 ;;; GNU General Public License for more details.
34 ;;;
35 ;;; You should have received a copy of the GNU General Public License
36 ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
37
38 ;;; This file only contains Common Lisp libraries.
39 ;;; Common Lisp compilers and tooling go to lisp.scm.
40 ;;; Common Lisp applications should go to the most appropriate file,
41 ;;; e.g. StumpWM is in wm.scm.
42
43 (define-module (gnu packages lisp-xyz)
44 #:use-module (gnu packages)
45 #:use-module ((guix licenses) #:prefix license:)
46 #:use-module (guix packages)
47 #:use-module (guix download)
48 #:use-module (guix git-download)
49 #:use-module (guix hg-download)
50 #:use-module (guix utils)
51 #:use-module (guix build-system asdf)
52 #:use-module (guix build-system trivial)
53 #:use-module (gnu packages c)
54 #:use-module (gnu packages compression)
55 #:use-module (gnu packages databases)
56 #:use-module (gnu packages enchant)
57 #:use-module (gnu packages glib)
58 #:use-module (gnu packages gtk)
59 #:use-module (gnu packages imagemagick)
60 #:use-module (gnu packages libevent)
61 #:use-module (gnu packages libffi)
62 #:use-module (gnu packages lisp)
63 #:use-module (gnu packages maths)
64 #:use-module (gnu packages networking)
65 #:use-module (gnu packages pkg-config)
66 #:use-module (gnu packages python)
67 #:use-module (gnu packages python-xyz)
68 #:use-module (gnu packages sqlite)
69 #:use-module (gnu packages tcl)
70 #:use-module (gnu packages tls)
71 #:use-module (gnu packages webkit)
72 #:use-module (gnu packages xdisorg)
73 #:use-module (ice-9 match)
74 #:use-module (srfi srfi-19))
75
76 (define-public sbcl-alexandria
77 (let ((revision "1")
78 (commit "3b849bc0116ea70f215ee6b2fbf354e862aaa9dd"))
79 (package
80 (name "sbcl-alexandria")
81 (version (git-version "1.0.0" revision commit))
82 (source
83 (origin
84 (method git-fetch)
85 (uri (git-reference
86 (url "https://gitlab.common-lisp.net/alexandria/alexandria.git")
87 (commit commit)))
88 (sha256
89 (base32
90 "04amwvx2vl691f0plcfbqqwxgib9zimih7jrn5zl7mbwvrxy022b"))
91 (file-name (git-file-name name version))))
92 (build-system asdf-build-system/sbcl)
93 (native-inputs
94 `(("rt" ,sbcl-rt)))
95 (synopsis "Collection of portable utilities for Common Lisp")
96 (description
97 "Alexandria is a collection of portable utilities. It does not contain
98 conceptual extensions to Common Lisp. It is conservative in scope, and
99 portable between implementations.")
100 (home-page "https://common-lisp.net/project/alexandria/")
101 (license license:public-domain))))
102
103 (define-public cl-alexandria
104 (sbcl-package->cl-source-package sbcl-alexandria))
105
106 (define-public ecl-alexandria
107 (sbcl-package->ecl-package sbcl-alexandria))
108
109 (define-public sbcl-net.didierverna.asdf-flv
110 (package
111 (name "sbcl-net.didierverna.asdf-flv")
112 (version "2.1")
113 (source
114 (origin
115 (method git-fetch)
116 (uri (git-reference
117 (url "https://github.com/didierverna/asdf-flv")
118 (commit (string-append "version-" version))))
119 (file-name (git-file-name "asdf-flv" version))
120 (sha256
121 (base32 "1fi2y4baxan103jbg4idjddzihy03kwnj2mzbwrknw4d4x7xlgwj"))))
122 (build-system asdf-build-system/sbcl)
123 (synopsis "Common Lisp ASDF extension to provide support for file-local variables")
124 (description "ASDF-FLV provides support for file-local variables through
125 ASDF. A file-local variable behaves like @code{*PACKAGE*} and
126 @code{*READTABLE*} with respect to @code{LOAD} and @code{COMPILE-FILE}: a new
127 dynamic binding is created before processing the file, so that any
128 modification to the variable becomes essentially file-local.
129
130 In order to make one or several variables file-local, use the macros
131 @code{SET-FILE-LOCAL-VARIABLE(S)}.")
132 (home-page "https://www.lrde.epita.fr/~didier/software/lisp/misc.php#asdf-flv")
133 (license (license:non-copyleft
134 "https://www.gnu.org/prep/maintain/html_node/License-Notices-for-Other-Files.html"
135 "GNU All-Permissive License"))))
136
137 (define-public cl-net.didierverna.asdf-flv
138 (sbcl-package->cl-source-package sbcl-net.didierverna.asdf-flv))
139
140 (define-public ecl-net.didierverna.asdf-flv
141 (sbcl-package->ecl-package sbcl-net.didierverna.asdf-flv))
142
143 (define-public sbcl-fiveam
144 (package
145 (name "sbcl-fiveam")
146 (version "1.4.1")
147 (source
148 (origin
149 (method git-fetch)
150 (uri (git-reference
151 (url "https://github.com/sionescu/fiveam.git")
152 (commit (string-append "v" version))))
153 (file-name (git-file-name "fiveam" version))
154 (sha256
155 (base32 "1q3d38pwafnwnw42clq0f8g5xw7pbzr287jl9jsqmb1vb0n1vrli"))))
156 (inputs
157 `(("alexandria" ,sbcl-alexandria)
158 ("net.didierverna.asdf-flv" ,sbcl-net.didierverna.asdf-flv)
159 ("trivial-backtrace" ,sbcl-trivial-backtrace)))
160 (build-system asdf-build-system/sbcl)
161 (synopsis "Common Lisp testing framework")
162 (description "FiveAM is a simple (as far as writing and running tests
163 goes) regression testing framework. It has been designed with Common Lisp's
164 interactive development model in mind.")
165 (home-page "https://common-lisp.net/project/fiveam/")
166 (license license:bsd-3)))
167
168 (define-public cl-fiveam
169 (sbcl-package->cl-source-package sbcl-fiveam))
170
171 (define-public ecl-fiveam
172 (sbcl-package->ecl-package sbcl-fiveam))
173
174 (define-public sbcl-bordeaux-threads
175 (package
176 (name "sbcl-bordeaux-threads")
177 (version "0.8.7")
178 (source (origin
179 (method git-fetch)
180 (uri (git-reference
181 (url "https://github.com/sionescu/bordeaux-threads.git")
182 (commit (string-append "v" version))))
183 (sha256
184 (base32 "1whpfmyxp2fsw6viqj45fqgsifgr534c575bfh5vaqw5m84b6alp"))
185 (file-name
186 (git-file-name "bordeaux-threads" version))))
187 (inputs `(("alexandria" ,sbcl-alexandria)))
188 (native-inputs `(("fiveam" ,sbcl-fiveam)))
189 (build-system asdf-build-system/sbcl)
190 (synopsis "Portable shared-state concurrency library for Common Lisp")
191 (description "BORDEAUX-THREADS is a proposed standard for a minimal
192 MP/Threading interface. It is similar to the CLIM-SYS threading and lock
193 support.")
194 (home-page "https://common-lisp.net/project/bordeaux-threads/")
195 (license license:x11)))
196
197 (define-public cl-bordeaux-threads
198 (sbcl-package->cl-source-package sbcl-bordeaux-threads))
199
200 (define-public ecl-bordeaux-threads
201 (sbcl-package->ecl-package sbcl-bordeaux-threads))
202
203 (define-public sbcl-trivial-gray-streams
204 (let ((revision "1")
205 (commit "0483ade330508b4b2edeabdb47d16ec9437ee1cb"))
206 (package
207 (name "sbcl-trivial-gray-streams")
208 (version (string-append "0.0.0-" revision "." (string-take commit 7)))
209 (source
210 (origin
211 (method git-fetch)
212 (uri
213 (git-reference
214 (url "https://github.com/trivial-gray-streams/trivial-gray-streams.git")
215 (commit commit)))
216 (sha256
217 (base32 "0m3rpf2x0zmdk3nf1qfa01j6a55vj7gkwhyw78qslcgbjlgh8p4d"))
218 (file-name
219 (string-append "trivial-gray-streams-" version "-checkout"))))
220 (build-system asdf-build-system/sbcl)
221 (synopsis "Compatibility layer for Gray streams implementations")
222 (description "Gray streams is an interface proposed for inclusion with
223 ANSI CL by David N. Gray. The proposal did not make it into ANSI CL, but most
224 popular CL implementations implement it. This package provides an extremely
225 thin compatibility layer for gray streams.")
226 (home-page "https://www.cliki.net/trivial-gray-streams")
227 (license license:x11))))
228
229 (define-public cl-trivial-gray-streams
230 (sbcl-package->cl-source-package sbcl-trivial-gray-streams))
231
232 (define-public ecl-trivial-gray-streams
233 (sbcl-package->ecl-package sbcl-trivial-gray-streams))
234
235 (define-public sbcl-fiasco
236 (let ((commit "d62f7558b21addc89f87e306f65d7f760632655f")
237 (revision "1"))
238 (package
239 (name "sbcl-fiasco")
240 (version (git-version "0.0.1" revision commit))
241 (source
242 (origin
243 (method git-fetch)
244 (uri (git-reference
245 (url "https://github.com/joaotavora/fiasco.git")
246 (commit commit)))
247 (file-name (git-file-name "fiasco" version))
248 (sha256
249 (base32
250 "1zwxs3d6iswayavcmb49z2892xhym7n556d8dnmvalc32pm9bkjh"))))
251 (build-system asdf-build-system/sbcl)
252 (inputs
253 `(("alexandria" ,sbcl-alexandria)
254 ("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
255 (synopsis "Simple and powerful test framework for Common Lisp")
256 (description "A Common Lisp test framework that treasures your failures,
257 logical continuation of Stefil. It focuses on interactive debugging.")
258 (home-page "https://github.com/joaotavora/fiasco")
259 ;; LICENCE specifies this is public-domain unless the legislation
260 ;; doesn't allow or recognize it. In that case it falls back to a
261 ;; permissive licence.
262 (license (list license:public-domain
263 (license:x11-style "file://LICENCE"))))))
264
265 (define-public cl-fiasco
266 (sbcl-package->cl-source-package sbcl-fiasco))
267
268 (define-public ecl-fiasco
269 (sbcl-package->ecl-package sbcl-fiasco))
270
271 (define-public sbcl-flexi-streams
272 (package
273 (name "sbcl-flexi-streams")
274 (version "1.0.18")
275 (source
276 (origin
277 (method git-fetch)
278 (uri (git-reference
279 (url "https://github.com/edicl/flexi-streams.git")
280 (commit (string-append "v" version))))
281 (file-name (git-file-name "flexi-streams" version))
282 (sha256
283 (base32 "0bjv7fd2acknidc5dyi3h85pn10krxv5jyxs1xg8jya2rlfv7f1j"))))
284 (build-system asdf-build-system/sbcl)
285 (arguments
286 `(#:phases
287 (modify-phases %standard-phases
288 (add-after 'unpack 'make-git-checkout-writable
289 (lambda _
290 (for-each make-file-writable (find-files "."))
291 #t)))))
292 (inputs `(("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
293 (synopsis "Implementation of virtual bivalent streams for Common Lisp")
294 (description "Flexi-streams is an implementation of \"virtual\" bivalent
295 streams that can be layered atop real binary or bivalent streams and that can
296 be used to read and write character data in various single- or multi-octet
297 encodings which can be changed on the fly. It also supplies in-memory binary
298 streams which are similar to string streams.")
299 (home-page "http://weitz.de/flexi-streams/")
300 (license license:bsd-3)))
301
302 (define-public cl-flexi-streams
303 (sbcl-package->cl-source-package sbcl-flexi-streams))
304
305 (define-public ecl-flexi-streams
306 (sbcl-package->ecl-package sbcl-flexi-streams))
307
308 (define-public sbcl-cl-ppcre
309 (package
310 (name "sbcl-cl-ppcre")
311 (version "2.1.1")
312 (source
313 (origin
314 (method git-fetch)
315 (uri (git-reference
316 (url "https://github.com/edicl/cl-ppcre.git")
317 (commit (string-append "v" version))))
318 (file-name (git-file-name "cl-ppcre" version))
319 (sha256
320 (base32 "0dwvr29diqzcg5n6jvbk2rnd90i05l7n828hhw99khmqd0kz7xsi"))))
321 (build-system asdf-build-system/sbcl)
322 (native-inputs `(("flexi-streams" ,sbcl-flexi-streams)))
323 (synopsis "Portable regular expression library for Common Lisp")
324 (description "CL-PPCRE is a portable regular expression library for Common
325 Lisp, which is compatible with perl. It is pretty fast, thread-safe, and
326 compatible with ANSI-compliant Common Lisp implementations.")
327 (home-page "http://weitz.de/cl-ppcre/")
328 (license license:bsd-2)))
329
330 (define-public cl-ppcre
331 (sbcl-package->cl-source-package sbcl-cl-ppcre))
332
333 (define-public ecl-cl-ppcre
334 (sbcl-package->ecl-package sbcl-cl-ppcre))
335
336 (define sbcl-cl-unicode-base
337 (package
338 (name "sbcl-cl-unicode-base")
339 (version "0.1.6")
340 (source (origin
341 (method git-fetch)
342 (uri (git-reference
343 (url "https://github.com/edicl/cl-unicode.git")
344 (commit (string-append "v" version))))
345 (file-name (git-file-name name version))
346 (sha256
347 (base32
348 "0ykx2s9lqfl74p1px0ik3l2izd1fc9jd1b4ra68s5x34rvjy0hza"))))
349 (build-system asdf-build-system/sbcl)
350 (arguments
351 '(#:asd-file "cl-unicode.asd"
352 #:asd-system-name "cl-unicode/base"))
353 (inputs
354 `(("cl-ppcre" ,sbcl-cl-ppcre)))
355 (home-page "http://weitz.de/cl-unicode/")
356 (synopsis "Portable Unicode library for Common Lisp")
357 (description "CL-UNICODE is a portable Unicode library Common Lisp, which
358 is compatible with perl. It is pretty fast, thread-safe, and compatible with
359 ANSI-compliant Common Lisp implementations.")
360 (license license:bsd-2)))
361
362 (define-public sbcl-cl-unicode
363 (package
364 (inherit sbcl-cl-unicode-base)
365 (name "sbcl-cl-unicode")
366 (inputs
367 `(("cl-unicode/base" ,sbcl-cl-unicode-base)
368 ,@(package-inputs sbcl-cl-unicode-base)))
369 (native-inputs
370 `(("flexi-streams" ,sbcl-flexi-streams)))
371 (arguments '())))
372
373 (define-public ecl-cl-unicode
374 (sbcl-package->ecl-package sbcl-cl-unicode))
375
376 (define-public cl-unicode
377 (sbcl-package->cl-source-package sbcl-cl-unicode))
378
379 (define-public sbcl-zpb-ttf
380 (package
381 (name "sbcl-zpb-ttf")
382 (version "1.0.3")
383 (source
384 (origin
385 (method git-fetch)
386 (uri (git-reference
387 (url "https://github.com/xach/zpb-ttf.git")
388 (commit (string-append "release-" version))))
389 (file-name (git-file-name name version))
390 (sha256
391 (base32
392 "1wh66vjijzqlydnrihynpwp6796917xwrh0i9li93c17kyxa74ih"))))
393 (build-system asdf-build-system/sbcl)
394 (home-page "https://github.com/xach/zpb-ttf")
395 (synopsis "TrueType font file access for Common Lisp")
396 (description
397 "ZPB-TTF is a TrueType font file parser that provides an interface for
398 reading typographic metrics, glyph outlines, and other information from the
399 file.")
400 (license license:bsd-2)))
401
402 (define-public ecl-zpb-ttf
403 (sbcl-package->ecl-package sbcl-zpb-ttf))
404
405 (define-public cl-zpb-ttf
406 (sbcl-package->cl-source-package sbcl-zpb-ttf))
407
408 (define-public sbcl-cl-aa
409 (package
410 (name "sbcl-cl-aa")
411 (version "0.1.5")
412 (source
413 (origin
414 (method url-fetch)
415 (uri (string-append "http://projects.tuxee.net/cl-vectors/"
416 "files/cl-vectors-" version ".tar.gz"))
417 (sha256
418 (base32
419 "04lhwi0kq8pkwhgd885pk80m1cp9sfvjjn5zj70s1dnckibhdmqh"))))
420 (build-system asdf-build-system/sbcl)
421 (arguments '(#:asd-file "cl-aa.asd"))
422 (home-page "http://projects.tuxee.net/cl-vectors/")
423 (synopsis "Polygon rasterizer")
424 (description
425 "This is a Common Lisp library implementing the AA polygon rasterization
426 algorithm from the @url{http://antigrain.com, Antigrain} project.")
427 (license license:expat)))
428
429 (define-public ecl-cl-aa
430 (sbcl-package->ecl-package sbcl-cl-aa))
431
432 (define-public cl-aa
433 (sbcl-package->cl-source-package sbcl-cl-aa))
434
435 (define-public sbcl-cl-paths
436 (package
437 (inherit sbcl-cl-aa)
438 (name "sbcl-cl-paths")
439 (arguments '(#:asd-file "cl-paths.asd"))
440 (synopsis "Facilities to create and manipulate vectorial paths")
441 (description
442 "This package provides facilities to create and manipulate vectorial
443 paths.")))
444
445 (define-public ecl-cl-paths
446 (sbcl-package->ecl-package sbcl-cl-paths))
447
448 (define-public cl-paths
449 (sbcl-package->cl-source-package sbcl-cl-paths))
450
451 (define-public sbcl-cl-paths-ttf
452 (package
453 (inherit sbcl-cl-aa)
454 (name "sbcl-cl-paths-ttf")
455 (arguments '(#:asd-file "cl-paths-ttf.asd"))
456 (inputs
457 `(("cl-paths" ,sbcl-cl-paths)
458 ("zpb-ttf" ,sbcl-zpb-ttf)))
459 (synopsis "Facilities to create and manipulate vectorial paths")
460 (description
461 "This package provides facilities to create and manipulate vectorial
462 paths.")))
463
464 (define-public ecl-cl-paths-ttf
465 (sbcl-package->ecl-package sbcl-cl-paths-ttf))
466
467 (define-public cl-paths-ttf
468 (sbcl-package->cl-source-package sbcl-cl-paths-ttf))
469
470 (define-public sbcl-cl-vectors
471 (package
472 (inherit sbcl-cl-aa)
473 (name "sbcl-cl-vectors")
474 (arguments '(#:asd-file "cl-vectors.asd"))
475 (inputs
476 `(("cl-aa" ,sbcl-cl-aa)
477 ("cl-paths" ,sbcl-cl-paths)))
478 (synopsis "Create, transform and render anti-aliased vectorial paths")
479 (description
480 "This is a pure Common Lisp library to create, transform and render
481 anti-aliased vectorial paths.")))
482
483 (define-public ecl-cl-vectors
484 (sbcl-package->ecl-package sbcl-cl-vectors))
485
486 (define-public cl-vectors
487 (sbcl-package->cl-source-package sbcl-cl-vectors))
488
489 (define-public sbcl-spatial-trees
490 ;; There have been no releases.
491 (let ((commit "81fdad0a0bf109c80a53cc96eca2e093823400ba")
492 (revision "1"))
493 (package
494 (name "sbcl-spatial-trees")
495 (version (git-version "0" revision commit))
496 (source
497 (origin
498 (method git-fetch)
499 (uri (git-reference
500 (url "https://github.com/rpav/spatial-trees.git")
501 (commit commit)))
502 (file-name (git-file-name name version))
503 (sha256
504 (base32
505 "11rhc6h501dwcik2igkszz7b9n515cr99m5pjh4r2qfwgiri6ysa"))))
506 (build-system asdf-build-system/sbcl)
507 (arguments
508 '(#:tests? #f ; spatial-trees.test requires spatial-trees.nns
509 #:asd-file "spatial-trees.asd"
510 #:test-asd-file "spatial-trees.test.asd"))
511 (native-inputs
512 `(("fiveam" ,sbcl-fiveam)))
513 (home-page "https://github.com/rpav/spatial-trees")
514 (synopsis "Dynamic index data structures for spatially-extended data")
515 (description
516 "Spatial-trees is a set of dynamic index data structures for
517 spatially-extended data.")
518 (license license:bsd-3))))
519
520 (define-public ecl-spatial-trees
521 (sbcl-package->ecl-package sbcl-spatial-trees))
522
523 (define-public cl-spatial-trees
524 (sbcl-package->cl-source-package sbcl-spatial-trees))
525
526 (define-public sbcl-flexichain
527 ;; There are no releases.
528 (let ((commit "13d2a6c505ed0abfcd4c4ec7d7145059b06855d6")
529 (revision "1"))
530 (package
531 (name "sbcl-flexichain")
532 (version "1.5.1")
533 (source
534 (origin
535 (method git-fetch)
536 (uri (git-reference
537 (url "https://github.com/robert-strandh/Flexichain.git")
538 (commit commit)))
539 (file-name (git-file-name name version))
540 (sha256
541 (base32
542 "0pfyvhsfbjd2sjb30grfs52r51a428xglv7bwydvpg2lc117qimg"))))
543 (build-system asdf-build-system/sbcl)
544 (home-page "https://github.com/robert-strandh/Flexichain.git")
545 (synopsis "Dynamically add elements to or remove them from sequences")
546 (description
547 "This package provides an implementation of the flexichain protocol,
548 allowing client code to dynamically add elements to, and delete elements from
549 a sequence (or chain) of such elements.")
550 (license license:lgpl2.1+))))
551
552 (define-public ecl-flexichain
553 (sbcl-package->ecl-package sbcl-flexichain))
554
555 (define-public cl-flexichain
556 (sbcl-package->cl-source-package sbcl-flexichain))
557
558 (define-public sbcl-cl-pdf
559 ;; There are no releases
560 (let ((commit "752e337e6d6fc206f09d091a982e7f8e5c404e4e")
561 (revision "1"))
562 (package
563 (name "sbcl-cl-pdf")
564 (version (git-version "0" revision commit))
565 (source
566 (origin
567 (method git-fetch)
568 (uri (git-reference
569 (url "https://github.com/mbattyani/cl-pdf.git")
570 (commit commit)))
571 (file-name (git-file-name name version))
572 (sha256
573 (base32
574 "1cg3k3m3r11ipb8j008y8ipynj97l3xjlpi2knqc9ndmx4r3kb1r"))))
575 (build-system asdf-build-system/sbcl)
576 (inputs
577 `(("iterate" ,sbcl-iterate)
578 ("zpb-ttf" ,sbcl-zpb-ttf)))
579 (home-page "https://github.com/mbattyani/cl-pdf")
580 (synopsis "Common Lisp library for generating PDF files")
581 (description
582 "CL-PDF is a cross-platform Common Lisp library for generating PDF
583 files.")
584 (license license:bsd-2))))
585
586 (define-public ecl-cl-pdf
587 (sbcl-package->ecl-package sbcl-cl-pdf))
588
589 (define-public cl-pdf
590 (sbcl-package->cl-source-package sbcl-cl-pdf))
591
592 (define-public sbcl-clx
593 (package
594 (name "sbcl-clx")
595 (version "0.7.5")
596 (source
597 (origin
598 (method git-fetch)
599 (uri
600 (git-reference
601 (url "https://github.com/sharplispers/clx.git")
602 (commit version)))
603 (sha256
604 (base32
605 "1vi67z9hpj5rr4xcmfbfwzmlcc0ah7hzhrmfid6lqdkva238v2wf"))
606 (file-name (string-append "clx-" version))))
607 (build-system asdf-build-system/sbcl)
608 (native-inputs
609 `(("fiasco" ,sbcl-fiasco)))
610 (home-page "https://www.cliki.net/portable-clx")
611 (synopsis "X11 client library for Common Lisp")
612 (description "CLX is an X11 client library for Common Lisp. The code was
613 originally taken from a CMUCL distribution, was modified somewhat in order to
614 make it compile and run under SBCL, then a selection of patches were added
615 from other CLXes around the net.")
616 (license license:x11)))
617
618 (define-public cl-clx
619 (sbcl-package->cl-source-package sbcl-clx))
620
621 (define-public ecl-clx
622 (sbcl-package->ecl-package sbcl-clx))
623
624 (define-public sbcl-clx-truetype
625 (let ((commit "c6e10a918d46632324d5863a8ed067a83fc26de8")
626 (revision "1"))
627 (package
628 (name "sbcl-clx-truetype")
629 (version (git-version "0.0.1" revision commit))
630 (source
631 (origin
632 (method git-fetch)
633 (uri (git-reference
634 (url "https://github.com/l04m33/clx-truetype")
635 (commit commit)))
636 (file-name (git-file-name name version))
637 (sha256
638 (base32
639 "079hyp92cjkdfn6bhkxsrwnibiqbz4y4af6nl31lzw6nm91j5j37"))
640 (modules '((guix build utils)))
641 (snippet
642 '(begin
643 (substitute* "package.lisp"
644 ((":export") ":export\n :+font-cache-filename+"))
645 #t))))
646 (build-system asdf-build-system/sbcl)
647 (inputs
648 `(("clx" ,sbcl-clx)
649 ("zpb-ttf" ,sbcl-zpb-ttf)
650 ("cl-vectors" ,sbcl-cl-vectors)
651 ("cl-paths-ttf" ,sbcl-cl-paths-ttf)
652 ("cl-fad" ,sbcl-cl-fad)
653 ("cl-store" ,sbcl-cl-store)
654 ("trivial-features" ,sbcl-trivial-features)))
655 (home-page "https://github.com/l04m33/clx-truetype")
656 (synopsis "Antialiased TrueType font rendering using CLX and XRender")
657 (description "CLX-TrueType is pure common lisp solution for
658 antialiased TrueType font rendering using CLX and XRender extension.")
659 (license license:expat))))
660
661 (define-public sbcl-cl-ppcre-unicode
662 (package (inherit sbcl-cl-ppcre)
663 (name "sbcl-cl-ppcre-unicode")
664 (arguments
665 `(#:tests? #f ; tests fail with "Component :CL-PPCRE-TEST not found"
666 #:asd-file "cl-ppcre-unicode.asd"))
667 (inputs
668 `(("sbcl-cl-ppcre" ,sbcl-cl-ppcre)
669 ("sbcl-cl-unicode" ,sbcl-cl-unicode)))))
670
671 (define-public ecl-cl-ppcre-unicode
672 (sbcl-package->ecl-package sbcl-cl-ppcre-unicode))
673
674 ;; The slynk that users expect to install includes all of slynk's contrib
675 ;; modules. Therefore, we build the base module and all contribs first; then
676 ;; we expose the union of these as `sbcl-slynk'. The following variable
677 ;; describes the base module.
678 (define sbcl-slynk-boot0
679 (let ((revision "2")
680 (commit "cbf84c36c4eca8b032e3fd16177a7bc02df3ec4c"))
681 (package
682 (name "sbcl-slynk-boot0")
683 (version (string-append "1.0.0-beta-" revision "." (string-take commit 7)))
684 (source
685 (origin
686 (method git-fetch)
687 (uri
688 (git-reference
689 (url "https://github.com/joaotavora/sly.git")
690 (commit commit)))
691 (sha256
692 (base32 "13dyhsravn591p7g6is01mp2ynzjnnj7pwgi57r6xqmd4611y9vh"))
693 (file-name (string-append "slynk-" version "-checkout"))
694 (modules '((guix build utils)
695 (ice-9 ftw)))
696 (snippet
697 '(begin
698 ;; Move the contribs into the main source directory for easier
699 ;; access
700 (substitute* "slynk/slynk.asd"
701 (("\\.\\./contrib")
702 "contrib")
703 (("\\(defsystem :slynk/util")
704 "(defsystem :slynk/util :depends-on (:slynk)")
705 ((":depends-on \\(:slynk :slynk/util\\)")
706 ":depends-on (:slynk :slynk-util)"))
707 (substitute* "contrib/slynk-trace-dialog.lisp"
708 (("\\(slynk::reset-inspector\\)") ; Causes problems on load
709 "nil"))
710 (substitute* "contrib/slynk-profiler.lisp"
711 (("slynk:to-line")
712 "slynk-pprint-to-line"))
713 (substitute* "contrib/slynk-fancy-inspector.lisp"
714 (("slynk/util") "slynk-util")
715 ((":compile-toplevel :load-toplevel") ""))
716 (rename-file "contrib" "slynk/contrib")
717 ;; Move slynk's contents into the base directory for easier
718 ;; access
719 (for-each (lambda (file)
720 (unless (string-prefix? "." file)
721 (rename-file (string-append "slynk/" file)
722 (string-append "./" (basename file)))))
723 (scandir "slynk"))
724 #t))))
725 (build-system asdf-build-system/sbcl)
726 (arguments
727 `(#:tests? #f ; No test suite
728 #:asd-system-name "slynk"))
729 (synopsis "Common Lisp IDE for Emacs")
730 (description "SLY is a fork of SLIME, an IDE backend for Common Lisp.
731 It also features a completely redesigned REPL based on Emacs's own
732 full-featured comint.el, live code annotations, and a consistent interactive
733 button interface. Everything can be copied to the REPL. One can create
734 multiple inspectors with independent history.")
735 (home-page "https://github.com/joaotavora/sly")
736 (license license:public-domain)
737 (properties `((cl-source-variant . ,(delay cl-slynk)))))))
738
739 (define-public cl-slynk
740 (package
741 (inherit (sbcl-package->cl-source-package sbcl-slynk-boot0))
742 (name "cl-slynk")))
743
744 (define ecl-slynk-boot0
745 (sbcl-package->ecl-package sbcl-slynk-boot0))
746
747 (define sbcl-slynk-arglists
748 (package
749 (inherit sbcl-slynk-boot0)
750 (name "sbcl-slynk-arglists")
751 (inputs `(("slynk" ,sbcl-slynk-boot0)))
752 (arguments
753 (substitute-keyword-arguments (package-arguments sbcl-slynk-boot0)
754 ((#:asd-file _ "") "slynk.asd")
755 ((#:asd-system-name _ #f) "slynk/arglists")))))
756
757 (define ecl-slynk-arglists
758 (sbcl-package->ecl-package sbcl-slynk-arglists))
759
760 (define sbcl-slynk-util
761 (package
762 (inherit sbcl-slynk-boot0)
763 (name "sbcl-slynk-util")
764 (inputs `(("slynk" ,sbcl-slynk-boot0)))
765 (arguments
766 (substitute-keyword-arguments (package-arguments sbcl-slynk-boot0)
767 ((#:asd-file _ "") "slynk.asd")
768 ((#:asd-system-name _ #f) "slynk/util")))))
769
770 (define ecl-slynk-util
771 (sbcl-package->ecl-package sbcl-slynk-util))
772
773 (define sbcl-slynk-fancy-inspector
774 (package
775 (inherit sbcl-slynk-arglists)
776 (name "sbcl-slynk-fancy-inspector")
777 (inputs `(("slynk-util" ,sbcl-slynk-util)
778 ,@(package-inputs sbcl-slynk-arglists)))
779 (arguments
780 (substitute-keyword-arguments (package-arguments sbcl-slynk-arglists)
781 ((#:asd-system-name _ #f) "slynk/fancy-inspector")))))
782
783 (define ecl-slynk-fancy-inspector
784 (sbcl-package->ecl-package sbcl-slynk-fancy-inspector))
785
786 (define sbcl-slynk-package-fu
787 (package
788 (inherit sbcl-slynk-arglists)
789 (name "sbcl-slynk-package-fu")
790 (arguments
791 (substitute-keyword-arguments (package-arguments sbcl-slynk-arglists)
792 ((#:asd-system-name _ #f) "slynk/package-fu")))))
793
794 (define ecl-slynk-package-fu
795 (sbcl-package->ecl-package sbcl-slynk-package-fu))
796
797 (define sbcl-slynk-mrepl
798 (package
799 (inherit sbcl-slynk-fancy-inspector)
800 (name "sbcl-slynk-mrepl")
801 (arguments
802 (substitute-keyword-arguments (package-arguments sbcl-slynk-arglists)
803 ((#:asd-system-name _ #f) "slynk/mrepl")))))
804
805 (define ecl-slynk-mrepl
806 (sbcl-package->ecl-package sbcl-slynk-mrepl))
807
808 (define sbcl-slynk-trace-dialog
809 (package
810 (inherit sbcl-slynk-arglists)
811 (name "sbcl-slynk-trace-dialog")
812 (arguments
813 (substitute-keyword-arguments (package-arguments sbcl-slynk-arglists)
814 ((#:asd-system-name _ #f) "slynk/trace-dialog")))))
815
816 (define ecl-slynk-trace-dialog
817 (sbcl-package->ecl-package sbcl-slynk-trace-dialog))
818
819 (define sbcl-slynk-profiler
820 (package
821 (inherit sbcl-slynk-arglists)
822 (name "sbcl-slynk-profiler")
823 (arguments
824 (substitute-keyword-arguments (package-arguments sbcl-slynk-arglists)
825 ((#:asd-system-name _ #f) "slynk/profiler")))))
826
827 (define ecl-slynk-profiler
828 (sbcl-package->ecl-package sbcl-slynk-profiler))
829
830 (define sbcl-slynk-stickers
831 (package
832 (inherit sbcl-slynk-arglists)
833 (name "sbcl-slynk-stickers")
834 (arguments
835 (substitute-keyword-arguments (package-arguments sbcl-slynk-arglists)
836 ((#:asd-system-name _ #f) "slynk/stickers")))))
837
838 (define ecl-slynk-stickers
839 (sbcl-package->ecl-package sbcl-slynk-stickers))
840
841 (define sbcl-slynk-indentation
842 (package
843 (inherit sbcl-slynk-arglists)
844 (name "sbcl-slynk-indentation")
845 (arguments
846 (substitute-keyword-arguments (package-arguments sbcl-slynk-arglists)
847 ((#:asd-system-name _ #f) "slynk/indentation")))))
848
849 (define ecl-slynk-indentation
850 (sbcl-package->ecl-package sbcl-slynk-indentation))
851
852 (define sbcl-slynk-retro
853 (package
854 (inherit sbcl-slynk-arglists)
855 (name "sbcl-slynk-retro")
856 (arguments
857 (substitute-keyword-arguments (package-arguments sbcl-slynk-arglists)
858 ((#:asd-system-name _ #f) "slynk/retro")))))
859
860 (define ecl-slynk-retro
861 (sbcl-package->ecl-package sbcl-slynk-retro))
862
863 (define slynk-systems
864 '("slynk"
865 "slynk-util"
866 "slynk-arglists"
867 "slynk-fancy-inspector"
868 "slynk-package-fu"
869 "slynk-mrepl"
870 "slynk-profiler"
871 "slynk-trace-dialog"
872 "slynk-stickers"
873 "slynk-indentation"
874 "slynk-retro"))
875
876 (define-public sbcl-slynk
877 (package
878 (inherit sbcl-slynk-boot0)
879 (name "sbcl-slynk")
880 (inputs
881 `(("slynk" ,sbcl-slynk-boot0)
882 ("slynk-util" ,sbcl-slynk-util)
883 ("slynk-arglists" ,sbcl-slynk-arglists)
884 ("slynk-fancy-inspector" ,sbcl-slynk-fancy-inspector)
885 ("slynk-package-fu" ,sbcl-slynk-package-fu)
886 ("slynk-mrepl" ,sbcl-slynk-mrepl)
887 ("slynk-profiler" ,sbcl-slynk-profiler)
888 ("slynk-trace-dialog" ,sbcl-slynk-trace-dialog)
889 ("slynk-stickers" ,sbcl-slynk-stickers)
890 ("slynk-indentation" ,sbcl-slynk-indentation)
891 ("slynk-retro" ,sbcl-slynk-retro)))
892 (native-inputs `(("sbcl" ,sbcl)))
893 (build-system trivial-build-system)
894 (source #f)
895 (outputs '("out" "image"))
896 (arguments
897 `(#:modules ((guix build union)
898 (guix build utils)
899 (guix build lisp-utils))
900 #:builder
901 (begin
902 (use-modules (ice-9 match)
903 (srfi srfi-1)
904 (guix build union)
905 (guix build lisp-utils))
906
907 (union-build
908 (assoc-ref %outputs "out")
909 (filter-map
910 (match-lambda
911 ((name . path)
912 (if (string-prefix? "slynk" name) path #f)))
913 %build-inputs))
914
915 (prepend-to-source-registry
916 (string-append (assoc-ref %outputs "out") "//"))
917
918 (parameterize ((%lisp-type "sbcl")
919 (%lisp (string-append (assoc-ref %build-inputs "sbcl")
920 "/bin/sbcl")))
921 (build-image (string-append
922 (assoc-ref %outputs "image")
923 "/bin/slynk")
924 %outputs
925 #:dependencies ',slynk-systems))
926 #t)))))
927
928 (define-public ecl-slynk
929 (package
930 (inherit sbcl-slynk)
931 (name "ecl-slynk")
932 (inputs
933 (map (match-lambda
934 ((name pkg . _)
935 (list name (sbcl-package->ecl-package pkg))))
936 (package-inputs sbcl-slynk)))
937 (native-inputs '())
938 (outputs '("out"))
939 (arguments
940 '(#:modules ((guix build union))
941 #:builder
942 (begin
943 (use-modules (ice-9 match)
944 (guix build union))
945 (match %build-inputs
946 (((names . paths) ...)
947 (union-build (assoc-ref %outputs "out")
948 paths)
949 #t)))))))
950
951 (define-public sbcl-parse-js
952 (let ((commit "fbadc6029bec7039602abfc06c73bb52970998f6")
953 (revision "1"))
954 (package
955 (name "sbcl-parse-js")
956 (version (string-append "0.0.0-" revision "." (string-take commit 9)))
957 (source
958 (origin
959 (method git-fetch)
960 (uri (git-reference
961 (url "http://marijn.haverbeke.nl/git/parse-js")
962 (commit commit)))
963 (file-name (string-append name "-" commit "-checkout"))
964 (sha256
965 (base32
966 "1wddrnr5kiya5s3gp4cdq6crbfy9fqcz7fr44p81502sj3bvdv39"))))
967 (build-system asdf-build-system/sbcl)
968 (home-page "https://marijnhaverbeke.nl/parse-js/")
969 (synopsis "Parse JavaScript")
970 (description "Parse-js is a Common Lisp package for parsing
971 JavaScript (ECMAScript 3). It has basic support for ECMAScript 5.")
972 (license license:zlib))))
973
974 (define-public cl-parse-js
975 (sbcl-package->cl-source-package sbcl-parse-js))
976
977 (define-public sbcl-parse-number
978 (package
979 (name "sbcl-parse-number")
980 (version "1.7")
981 (source
982 (origin
983 (method git-fetch)
984 (uri (git-reference
985 (url "https://github.com/sharplispers/parse-number/")
986 (commit (string-append "v" version))))
987 (file-name (git-file-name name version))
988 (sha256
989 (base32
990 "0sk06ib1bhqv9y39vwnnw44vmbc4b0kvqm37xxmkxd4dwchq82d7"))))
991 (build-system asdf-build-system/sbcl)
992 (home-page "https://www.cliki.net/PARSE-NUMBER")
993 (synopsis "Parse numbers")
994 (description "@code{parse-number} is a library of functions for parsing
995 strings into one of the standard Common Lisp number types without using the
996 reader. @code{parse-number} accepts an arbitrary string and attempts to parse
997 the string into one of the standard Common Lisp number types, if possible, or
998 else @code{parse-number} signals an error of type @code{invalid-number}.")
999 (license license:bsd-3)))
1000
1001 (define-public cl-parse-number
1002 (sbcl-package->cl-source-package sbcl-parse-number))
1003
1004 (define-public sbcl-iterate
1005 (package
1006 (name "sbcl-iterate")
1007 (version "1.5")
1008 (source
1009 (origin
1010 (method url-fetch)
1011 (uri (string-append "https://common-lisp.net/project/iterate/releases/"
1012 "iterate-" version ".tar.gz"))
1013 (sha256
1014 (base32
1015 "1lqsbhrkfl0yif46aymvb7l3nb9wdcmj4jyw485blj32jb4famzn"))))
1016 (build-system asdf-build-system/sbcl)
1017 (native-inputs
1018 `(("rt" ,sbcl-rt)))
1019 (home-page "https://common-lisp.net/project/iterate/")
1020 (synopsis "Iteration construct for Common Lisp")
1021 (description "@code{iterate} is an iteration construct for Common Lisp.
1022 It is similar to the @code{CL:LOOP} macro, with these distinguishing marks:
1023
1024 @itemize
1025 @item it is extensible,
1026 @item it helps editors like Emacs indent iterate forms by having a more
1027 lisp-like syntax, and
1028 @item it isn't part of the ANSI standard for Common Lisp.
1029 @end itemize\n")
1030 (license license:expat)))
1031
1032 (define-public cl-iterate
1033 (sbcl-package->cl-source-package sbcl-iterate))
1034
1035 (define-public ecl-iterate
1036 (sbcl-package->ecl-package sbcl-iterate))
1037
1038 (define-public sbcl-cl-uglify-js
1039 ;; There have been many bug fixes since the 2010 release.
1040 (let ((commit "429c5e1d844e2f96b44db8fccc92d6e8e28afdd5")
1041 (revision "1"))
1042 (package
1043 (name "sbcl-cl-uglify-js")
1044 (version (string-append "0.1-" revision "." (string-take commit 9)))
1045 (source
1046 (origin
1047 (method git-fetch)
1048 (uri (git-reference
1049 (url "https://github.com/mishoo/cl-uglify-js.git")
1050 (commit commit)))
1051 (file-name (git-file-name name version))
1052 (sha256
1053 (base32
1054 "0k39y3c93jgxpr7gwz7w0d8yknn1fdnxrjhd03057lvk5w8js27a"))))
1055 (build-system asdf-build-system/sbcl)
1056 (inputs
1057 `(("sbcl-parse-js" ,sbcl-parse-js)
1058 ("sbcl-cl-ppcre" ,sbcl-cl-ppcre)
1059 ("sbcl-cl-ppcre-unicode" ,sbcl-cl-ppcre-unicode)
1060 ("sbcl-parse-number" ,sbcl-parse-number)
1061 ("sbcl-iterate" ,sbcl-iterate)))
1062 (home-page "https://github.com/mishoo/cl-uglify-js")
1063 (synopsis "JavaScript compressor library for Common Lisp")
1064 (description "This is a Common Lisp version of UglifyJS, a JavaScript
1065 compressor. It works on data produced by @code{parse-js} to generate a
1066 @dfn{minified} version of the code. Currently it can:
1067
1068 @itemize
1069 @item reduce variable names (usually to single letters)
1070 @item join consecutive @code{var} statements
1071 @item resolve simple binary expressions
1072 @item group most consecutive statements using the @code{sequence} operator (comma)
1073 @item remove unnecessary blocks
1074 @item convert @code{IF} expressions in various ways that result in smaller code
1075 @item remove some unreachable code
1076 @end itemize\n")
1077 (license license:zlib))))
1078
1079 (define-public cl-uglify-js
1080 (sbcl-package->cl-source-package sbcl-cl-uglify-js))
1081
1082 (define-public uglify-js
1083 (package
1084 (inherit sbcl-cl-uglify-js)
1085 (name "uglify-js")
1086 (build-system trivial-build-system)
1087 (arguments
1088 `(#:modules ((guix build utils))
1089 #:builder
1090 (let* ((bin (string-append (assoc-ref %outputs "out") "/bin/"))
1091 (script (string-append bin "uglify-js")))
1092 (use-modules (guix build utils))
1093 (mkdir-p bin)
1094 (with-output-to-file script
1095 (lambda _
1096 (format #t "#!~a/bin/sbcl --script
1097 (require :asdf)
1098 (push (truename \"~a/lib/sbcl\") asdf:*central-registry*)"
1099 (assoc-ref %build-inputs "sbcl")
1100 (assoc-ref %build-inputs "sbcl-cl-uglify-js"))
1101 ;; FIXME: cannot use progn here because otherwise it fails to
1102 ;; find cl-uglify-js.
1103 (for-each
1104 write
1105 '(;; Quiet, please!
1106 (let ((*standard-output* (make-broadcast-stream))
1107 (*error-output* (make-broadcast-stream)))
1108 (asdf:load-system :cl-uglify-js))
1109 (let ((file (cadr *posix-argv*)))
1110 (if file
1111 (format t "~a"
1112 (cl-uglify-js:ast-gen-code
1113 (cl-uglify-js:ast-mangle
1114 (cl-uglify-js:ast-squeeze
1115 (with-open-file (in file)
1116 (parse-js:parse-js in))))
1117 :beautify nil))
1118 (progn
1119 (format *error-output*
1120 "Please provide a JavaScript file.~%")
1121 (sb-ext:exit :code 1))))))))
1122 (chmod script #o755)
1123 #t)))
1124 (inputs
1125 `(("sbcl" ,sbcl)
1126 ("sbcl-cl-uglify-js" ,sbcl-cl-uglify-js)))
1127 (synopsis "JavaScript compressor")))
1128
1129 (define-public sbcl-cl-strings
1130 (let ((revision "1")
1131 (commit "c5c5cbafbf3e6181d03c354d66e41a4f063f00ae"))
1132 (package
1133 (name "sbcl-cl-strings")
1134 (version (git-version "0.0.0" revision commit))
1135 (source
1136 (origin
1137 (method git-fetch)
1138 (uri (git-reference
1139 (url "https://github.com/diogoalexandrefranco/cl-strings")
1140 (commit commit)))
1141 (sha256
1142 (base32
1143 "00754mfaqallj480lwd346nkfb6ra8pa8xcxcylf4baqn604zlmv"))
1144 (file-name (string-append "cl-strings-" version "-checkout"))))
1145 (build-system asdf-build-system/sbcl)
1146 (synopsis "Portable, dependency-free set of utilities to manipulate strings in Common Lisp")
1147 (description
1148 "@command{cl-strings} is a small, portable, dependency-free set of
1149 utilities that make it even easier to manipulate text in Common Lisp. It has
1150 100% test coverage and works at least on sbcl, ecl, ccl, abcl and clisp.")
1151 (home-page "https://github.com/diogoalexandrefranco/cl-strings")
1152 (license license:expat))))
1153
1154 (define-public cl-strings
1155 (sbcl-package->cl-source-package sbcl-cl-strings))
1156
1157 (define-public ecl-cl-strings
1158 (sbcl-package->ecl-package sbcl-cl-strings))
1159
1160 (define-public sbcl-trivial-features
1161 (package
1162 (name "sbcl-trivial-features")
1163 (version "0.8")
1164 (source
1165 (origin
1166 (method git-fetch)
1167 (uri (git-reference
1168 (url "https://github.com/trivial-features/trivial-features.git")
1169 (commit (string-append "v" version))))
1170 (file-name (git-file-name "trivial-features" version))
1171 (sha256
1172 (base32 "0ccv7dqyrk55xga78i5vzlic7mdwp28in3g1a8fqhlk6626scsq9"))))
1173 (build-system asdf-build-system/sbcl)
1174 (arguments '(#:tests? #f))
1175 (home-page "https://cliki.net/trivial-features")
1176 (synopsis "Ensures consistency of @code{*FEATURES*} in Common Lisp")
1177 (description "Trivial-features ensures that @code{*FEATURES*} is
1178 consistent across multiple Common Lisp implementations.")
1179 (license license:expat)))
1180
1181 (define-public cl-trivial-features
1182 (sbcl-package->cl-source-package sbcl-trivial-features))
1183
1184 (define-public ecl-trivial-features
1185 (sbcl-package->ecl-package sbcl-trivial-features))
1186
1187 (define-public sbcl-hu.dwim.asdf
1188 (package
1189 (name "sbcl-hu.dwim.asdf")
1190 (version "20190521")
1191 (source
1192 (origin
1193 (method url-fetch)
1194 (uri (string-append "http://beta.quicklisp.org/archive/hu.dwim.asdf/"
1195 "2019-05-21/hu.dwim.asdf-" version "-darcs.tgz"))
1196 (sha256
1197 (base32
1198 "0rsbv71vyszy8w35yjwb5h6zcmknjq223hkzir79y72qdsc6sabn"))))
1199 (build-system asdf-build-system/sbcl)
1200 (home-page "https://hub.darcs.net/hu.dwim/hu.dwim.asdf")
1201 (synopsis "Extensions to ASDF")
1202 (description "Various ASDF extensions such as attached test and
1203 documentation system, explicit development support, etc.")
1204 (license license:public-domain)))
1205
1206 (define-public cl-hu.dwim.asdf
1207 (sbcl-package->cl-source-package sbcl-hu.dwim.asdf))
1208
1209 (define-public ecl-hu.dwim.asdf
1210 (sbcl-package->ecl-package sbcl-hu.dwim.asdf))
1211
1212 (define-public sbcl-hu.dwim.stefil
1213 (let ((commit "ab6d1aa8995878a1b66d745dfd0ba021090bbcf9"))
1214 (package
1215 (name "sbcl-hu.dwim.stefil")
1216 (version (git-version "0.0.0" "1" commit))
1217 (source
1218 (origin
1219 (method git-fetch)
1220 (uri
1221 (git-reference
1222 (url "https://gitlab.common-lisp.net/xcvb/hu.dwim.stefil.git")
1223 (commit commit)))
1224 (sha256
1225 (base32 "1d8yccw65zj3zh46cbi3x6nmn1dwdb76s9d0av035077mvyirqqp"))
1226 (file-name (git-file-name "hu.dwim.stefil" version))))
1227 (build-system asdf-build-system/sbcl)
1228 (native-inputs
1229 `(("asdf:cl-hu.dwim.asdf" ,sbcl-hu.dwim.asdf)))
1230 (inputs
1231 `(("sbcl-alexandria" ,sbcl-alexandria)))
1232 (home-page "https://hub.darcs.net/hu.dwim/hu.dwim.stefil")
1233 (synopsis "Simple test framework")
1234 (description "Stefil is a simple test framework for Common Lisp,
1235 with a focus on interactive development.")
1236 (license license:public-domain))))
1237
1238 (define-public cl-hu.dwim.stefil
1239 (sbcl-package->cl-source-package sbcl-hu.dwim.stefil))
1240
1241 (define-public ecl-hu.dwim.stefil
1242 (sbcl-package->ecl-package sbcl-hu.dwim.stefil))
1243
1244 (define-public sbcl-babel
1245 (package
1246 (name "sbcl-babel")
1247 (version "0.5.0")
1248 (source
1249 (origin
1250 (method git-fetch)
1251 (uri (git-reference
1252 (url "https://github.com/cl-babel/babel.git")
1253 (commit (string-append "v" version))))
1254 (file-name (git-file-name "babel" version))
1255 (sha256
1256 (base32 "139a8rn2gnhj082n8jg01gc8fyr63hkj57hgrnmb3d1r327yc77f"))))
1257 (build-system asdf-build-system/sbcl)
1258 (native-inputs
1259 `(("tests:cl-hu.dwim.stefil" ,sbcl-hu.dwim.stefil)))
1260 (inputs
1261 `(("sbcl-alexandria" ,sbcl-alexandria)
1262 ("sbcl-trivial-features" ,sbcl-trivial-features)))
1263 (home-page "https://common-lisp.net/project/babel/")
1264 (synopsis "Charset encoding and decoding library")
1265 (description "Babel is a charset encoding and decoding library, not unlike
1266 GNU libiconv, but completely written in Common Lisp.")
1267 (license license:expat)))
1268
1269 (define-public cl-babel
1270 (sbcl-package->cl-source-package sbcl-babel))
1271
1272 (define-public ecl-babel
1273 (sbcl-package->ecl-package sbcl-babel))
1274
1275 (define-public sbcl-cl-yacc
1276 (package
1277 (name "sbcl-cl-yacc")
1278 (version "0.3")
1279 (source
1280 (origin
1281 (method git-fetch)
1282 (uri (git-reference
1283 (url "https://github.com/jech/cl-yacc")
1284 (commit (string-append "cl-yacc-" version))))
1285 (sha256
1286 (base32
1287 "16946pzf8vvadnyfayvj8rbh4zjzw90h0azz2qk1mxrvhh5wklib"))
1288 (file-name (string-append "cl-yacc-" version "-checkout"))))
1289 (build-system asdf-build-system/sbcl)
1290 (arguments
1291 `(#:asd-file "yacc.asd"
1292 #:asd-system-name "yacc"))
1293 (synopsis "LALR(1) parser generator for Common Lisp, similar in spirit to Yacc")
1294 (description
1295 "CL-Yacc is a LALR(1) parser generator for Common Lisp, similar in spirit
1296 to AT&T Yacc, Berkeley Yacc, GNU Bison, Zebu, lalr.cl or lalr.scm.
1297
1298 CL-Yacc uses the algorithm due to Aho and Ullman, which is the one also used
1299 by AT&T Yacc, Berkeley Yacc and Zebu. It does not use the faster algorithm due
1300 to DeRemer and Pennello, which is used by Bison and lalr.scm (not lalr.cl).")
1301 (home-page "https://www.irif.fr/~jch//software/cl-yacc/")
1302 (license license:expat)))
1303
1304 (define-public cl-yacc
1305 (sbcl-package->cl-source-package sbcl-cl-yacc))
1306
1307 (define-public ecl-cl-yacc
1308 (sbcl-package->ecl-package sbcl-cl-yacc))
1309
1310 (define-public sbcl-jpl-util
1311 (let ((commit "0311ed374e19a49d43318064d729fe3abd9a3b62"))
1312 (package
1313 (name "sbcl-jpl-util")
1314 (version "20151005")
1315 (source
1316 (origin
1317 (method git-fetch)
1318 (uri (git-reference
1319 ;; Quicklisp uses this fork.
1320 (url "https://github.com/hawkir/cl-jpl-util")
1321 (commit commit)))
1322 (file-name
1323 (git-file-name "jpl-util" version))
1324 (sha256
1325 (base32
1326 "0nc0rk9n8grkg3045xsw34whmcmddn2sfrxki4268g7kpgz0d2yz"))))
1327 (build-system asdf-build-system/sbcl)
1328 (synopsis "Collection of Common Lisp utility functions and macros")
1329 (description
1330 "@command{cl-jpl-util} is a collection of Common Lisp utility functions
1331 and macros, primarily for software projects written in CL by the author.")
1332 (home-page "https://www.thoughtcrime.us/software/cl-jpl-util/")
1333 (license license:isc))))
1334
1335 (define-public cl-jpl-util
1336 (sbcl-package->cl-source-package sbcl-jpl-util))
1337
1338 (define-public ecl-jpl-util
1339 (sbcl-package->ecl-package sbcl-jpl-util))
1340
1341 (define-public sbcl-jpl-queues
1342 (package
1343 (name "sbcl-jpl-queues")
1344 (version "0.1")
1345 (source
1346 (origin
1347 (method url-fetch)
1348 (uri (string-append
1349 "http://www.thoughtcrime.us/software/jpl-queues/jpl-queues-"
1350 version
1351 ".tar.gz"))
1352 (sha256
1353 (base32
1354 "1wvvv7j117h9a42qaj1g4fh4mji28xqs7s60rn6d11gk9jl76h96"))))
1355 (build-system asdf-build-system/sbcl)
1356 (inputs
1357 `(("jpl-util" ,sbcl-jpl-util)
1358 ("bordeaux-threads" ,sbcl-bordeaux-threads)))
1359 (arguments
1360 ;; Tests seem to be broken.
1361 `(#:tests? #f))
1362 (synopsis "Common Lisp library implementing a few different kinds of queues")
1363 (description
1364 "A Common Lisp library implementing a few different kinds of queues:
1365
1366 @itemize
1367 @item Bounded and unbounded FIFO queues.
1368 @item Lossy bounded FIFO queues that drop elements when full.
1369 @item Unbounded random-order queues that use less memory than unbounded FIFO queues.
1370 @end itemize
1371
1372 Additionally, a synchronization wrapper is provided to make any queue
1373 conforming to the @command{jpl-queues} API thread-safe for lightweight
1374 multithreading applications. (See Calispel for a more sophisticated CL
1375 multithreaded message-passing library with timeouts and alternation among
1376 several blockable channels.)")
1377 (home-page "https://www.thoughtcrime.us/software/jpl-queues/")
1378 (license license:isc)))
1379
1380 (define-public cl-jpl-queues
1381 (sbcl-package->cl-source-package sbcl-jpl-queues))
1382
1383 (define-public ecl-jpl-queues
1384 (sbcl-package->ecl-package sbcl-jpl-queues))
1385
1386 (define-public sbcl-eos
1387 (let ((commit "b0faca83781ead9a588661e37bd47f90362ccd94"))
1388 (package
1389 (name "sbcl-eos")
1390 (version (git-version "0.0.0" "1" commit))
1391 (source
1392 (origin
1393 (method git-fetch)
1394 (uri (git-reference
1395 (url "https://github.com/adlai/Eos")
1396 (commit commit)))
1397 (sha256
1398 (base32
1399 "1bq8cfg087iyxmxi1mwgx5cfgy3b8ydrf81xljcis8qbgb2vszph"))
1400 (file-name (git-file-name "eos" version))))
1401 (build-system asdf-build-system/sbcl)
1402 (synopsis "Unit Testing for Common Lisp")
1403 (description
1404 "Eos was a unit testing library for Common Lisp.
1405 It began as a fork of FiveAM; however, FiveAM development has continued, while
1406 that of Eos has not. Thus, Eos is now deprecated in favor of FiveAM.")
1407 (home-page "https://github.com/adlai/Eos")
1408 (license license:expat))))
1409
1410 (define-public cl-eos
1411 (sbcl-package->cl-source-package sbcl-eos))
1412
1413 (define-public ecl-eos
1414 (sbcl-package->ecl-package sbcl-eos))
1415
1416 (define-public sbcl-esrap
1417 (let ((commit "133be8b05c2aae48696fe5b739eea2fa573fa48d"))
1418 (package
1419 (name "sbcl-esrap")
1420 (version (git-version "0.0.0" "1" commit))
1421 (source
1422 (origin
1423 (method git-fetch)
1424 (uri (git-reference
1425 (url "https://github.com/nikodemus/esrap")
1426 (commit commit)))
1427 (sha256
1428 (base32
1429 "02d5clihsdryhf7pix8c5di2571fdsffh75d40fkzhws90r5mksl"))
1430 (file-name (git-file-name "esrap" version))))
1431 (build-system asdf-build-system/sbcl)
1432 (native-inputs
1433 `(("eos" ,sbcl-eos))) ;For testing only.
1434 (inputs
1435 `(("alexandria" ,sbcl-alexandria)))
1436 (synopsis "Common Lisp packrat parser")
1437 (description
1438 "A packrat parser for Common Lisp.
1439 In addition to regular Packrat / Parsing Grammar / TDPL features ESRAP supports:
1440
1441 @itemize
1442 @item dynamic redefinition of nonterminals
1443 @item inline grammars
1444 @item semantic predicates
1445 @item introspective facilities (describing grammars, tracing, setting breaks)
1446 @end itemize\n")
1447 (home-page "https://nikodemus.github.io/esrap/")
1448 (license license:expat))))
1449
1450 (define-public cl-esrap
1451 (sbcl-package->cl-source-package sbcl-esrap))
1452
1453 (define-public ecl-esrap
1454 (sbcl-package->ecl-package sbcl-esrap))
1455
1456 (define-public sbcl-split-sequence
1457 (package
1458 (name "sbcl-split-sequence")
1459 (version "2.0.0")
1460 (source
1461 (origin
1462 (method git-fetch)
1463 (uri (git-reference
1464 (url "https://github.com/sharplispers/split-sequence")
1465 (commit (string-append "v" version))))
1466 (sha256
1467 (base32
1468 "0jcpnx21hkfwqj5fvp7kc6pn1qcz9hk7g2s5x8h0349x1j2irln0"))
1469 (file-name (git-file-name "split-sequence" version))))
1470 (build-system asdf-build-system/sbcl)
1471 (native-inputs
1472 `(("fiveam" ,sbcl-fiveam)))
1473 (synopsis "Member of the Common Lisp Utilities family of programs")
1474 (description
1475 "Splits sequence into a list of subsequences delimited by objects
1476 satisfying the test.")
1477 (home-page "https://cliki.net/split-sequence")
1478 (license license:expat)))
1479
1480 (define-public cl-split-sequence
1481 (sbcl-package->cl-source-package sbcl-split-sequence))
1482
1483 (define-public ecl-split-sequence
1484 (sbcl-package->ecl-package sbcl-split-sequence))
1485
1486 (define-public sbcl-html-encode
1487 (package
1488 (name "sbcl-html-encode")
1489 (version "1.2")
1490 (source
1491 (origin
1492 (method url-fetch)
1493 (uri (string-append
1494 "http://beta.quicklisp.org/archive/html-encode/2010-10-06/html-encode-"
1495 version ".tgz"))
1496 (sha256
1497 (base32
1498 "06mf8wn95yf5swhmzk4vp0xr4ylfl33dgfknkabbkd8n6jns8gcf"))
1499 (file-name (string-append "colorize" version "-checkout"))))
1500 (build-system asdf-build-system/sbcl)
1501 (synopsis "Common Lisp library for encoding text in various web-savvy encodings")
1502 (description
1503 "A library for encoding text in various web-savvy encodings.")
1504 (home-page "http://quickdocs.org/html-encode/")
1505 (license license:expat)))
1506
1507 (define-public cl-html-encode
1508 (sbcl-package->cl-source-package sbcl-html-encode))
1509
1510 (define-public ecl-html-encode
1511 (sbcl-package->ecl-package sbcl-html-encode))
1512
1513 (define-public sbcl-colorize
1514 (let ((commit "ea676b584e0899cec82f21a9e6871172fe3c0eb5"))
1515 (package
1516 (name "sbcl-colorize")
1517 (version (git-version "0.0.0" "1" commit))
1518 (source
1519 (origin
1520 (method git-fetch)
1521 (uri (git-reference
1522 (url "https://github.com/kingcons/colorize")
1523 (commit commit)))
1524 (sha256
1525 (base32
1526 "1pdg4kiaczmr3ivffhirp7m3lbr1q27rn7dhaay0vwghmi31zcw9"))
1527 (file-name (git-file-name "colorize" version))))
1528 (build-system asdf-build-system/sbcl)
1529 (inputs
1530 `(("alexandria" ,sbcl-alexandria)
1531 ("split-sequence" ,sbcl-split-sequence)
1532 ("html-encode" ,sbcl-html-encode)))
1533 (synopsis "Common Lisp for syntax highlighting")
1534 (description
1535 "@command{colorize} is a Lisp library for syntax highlighting
1536 supporting the following languages: Common Lisp, Emacs Lisp, Scheme, Clojure,
1537 C, C++, Java, Python, Erlang, Haskell, Objective-C, Diff, Webkit.")
1538 (home-page "https://github.com/kingcons/colorize")
1539 ;; TODO: Missing license?
1540 (license license:expat))))
1541
1542 (define-public cl-colorize
1543 (sbcl-package->cl-source-package sbcl-colorize))
1544
1545 (define-public ecl-colorize
1546 (sbcl-package->ecl-package sbcl-colorize))
1547
1548 (define-public sbcl-3bmd
1549 (let ((commit "192ea13435b605a96ef607df51317056914cabbd"))
1550 (package
1551 (name "sbcl-3bmd")
1552 (version (git-version "0.0.0" "1" commit))
1553 (source
1554 (origin
1555 (method git-fetch)
1556 (uri (git-reference
1557 (url "https://github.com/3b/3bmd")
1558 (commit commit)))
1559 (sha256
1560 (base32
1561 "1rgv3gi7wf963ikmmpk132wgn0icddf226gq3bmcnk1fr3v9gf2f"))
1562 (file-name (git-file-name "3bmd" version))))
1563 (build-system asdf-build-system/sbcl)
1564 (arguments
1565 ;; FIXME: We need to specify the name because the build-system thinks
1566 ;; "3" is a version marker.
1567 `(#:asd-system-name "3bmd"))
1568 (inputs
1569 `(("esrap" ,sbcl-esrap)
1570 ("split-sequence" ,sbcl-split-sequence)))
1571 (synopsis "Markdown processor in Command Lisp using esrap parser")
1572 (description
1573 "Common Lisp Markdown -> HTML converter, using @command{esrap} for
1574 parsing, and grammar based on @command{peg-markdown}.")
1575 (home-page "https://github.com/3b/3bmd")
1576 (license license:expat))))
1577
1578 (define-public cl-3bmd
1579 (sbcl-package->cl-source-package sbcl-3bmd))
1580
1581 (define-public ecl-3bmd
1582 (sbcl-package->ecl-package sbcl-3bmd))
1583
1584 (define-public sbcl-3bmd-ext-code-blocks
1585 (let ((commit "192ea13435b605a96ef607df51317056914cabbd"))
1586 (package
1587 (inherit sbcl-3bmd)
1588 (name "sbcl-3bmd-ext-code-blocks")
1589 (arguments
1590 `(#:asd-system-name "3bmd-ext-code-blocks"
1591 #:asd-file "3bmd-ext-code-blocks.asd"))
1592 (inputs
1593 `(("3bmd" ,sbcl-3bmd)
1594 ("colorize" ,sbcl-colorize)))
1595 (synopsis "3bmd extension which adds support for GitHub-style fenced
1596 code blocks")
1597 (description
1598 "3bmd extension which adds support for GitHub-style fenced code blocks,
1599 with @command{colorize} support."))))
1600
1601 (define-public cl-3bmd-ext-code-blocks
1602 (sbcl-package->cl-source-package sbcl-3bmd-ext-code-blocks))
1603
1604 (define-public ecl-3bmd-ext-code-blocks
1605 (sbcl-package->ecl-package sbcl-3bmd-ext-code-blocks))
1606
1607 (define-public sbcl-cl-fad
1608 (package
1609 (name "sbcl-cl-fad")
1610 (version "0.7.6")
1611 (source
1612 (origin
1613 (method git-fetch)
1614 (uri (git-reference
1615 (url "https://github.com/edicl/cl-fad/")
1616 (commit (string-append "v" version))))
1617 (sha256
1618 (base32
1619 "1gc8i82v6gks7g0lnm54r4prk2mklidv2flm5fvbr0a7rsys0vpa"))
1620 (file-name (string-append "cl-fad" version "-checkout"))))
1621 (build-system asdf-build-system/sbcl)
1622 (inputs
1623 `(("bordeaux-threads" ,sbcl-bordeaux-threads)))
1624 (synopsis "Portable pathname library for Common Lisp")
1625 (description
1626 "CL-FAD (for \"Files and Directories\") is a thin layer atop Common
1627 Lisp's standard pathname functions. It is intended to provide some
1628 unification between current CL implementations on Windows, OS X, Linux, and
1629 Unix. Most of the code was written by Peter Seibel for his book Practical
1630 Common Lisp.")
1631 (home-page "https://edicl.github.io/cl-fad/")
1632 (license license:bsd-2)))
1633
1634 (define-public cl-fad
1635 (sbcl-package->cl-source-package sbcl-cl-fad))
1636
1637 (define-public ecl-cl-fad
1638 (sbcl-package->ecl-package sbcl-cl-fad))
1639
1640 (define-public sbcl-rt
1641 (let ((commit "a6a7503a0b47953bc7579c90f02a6dba1f6e4c5a")
1642 (revision "1"))
1643 (package
1644 (name "sbcl-rt")
1645 (version (git-version "1990.12.19" revision commit))
1646 (source
1647 (origin
1648 (method git-fetch)
1649 (uri (git-reference
1650 (url "http://git.kpe.io/rt.git")
1651 (commit commit)))
1652 (file-name (git-file-name name version))
1653 (sha256
1654 (base32 "13si2rrxaagbr0bkvg6sqicxxpyshabx6ad6byc9n2ik5ysna69b"))))
1655 (build-system asdf-build-system/sbcl)
1656 (synopsis "MIT Regression Tester")
1657 (description
1658 "RT provides a framework for writing regression test suites.")
1659 (home-page "https://www.cliki.net/rt")
1660 (license license:expat))))
1661
1662 (define-public cl-rt
1663 (sbcl-package->cl-source-package sbcl-rt))
1664
1665 (define-public ecl-rt
1666 (sbcl-package->ecl-package sbcl-rt))
1667
1668 (define-public sbcl-nibbles
1669 (package
1670 (name "sbcl-nibbles")
1671 (version "0.14")
1672 (source
1673 (origin
1674 (method git-fetch)
1675 (uri (git-reference
1676 (url "https://github.com/sharplispers/nibbles/")
1677 (commit (string-append "v" version))))
1678 (sha256
1679 (base32
1680 "1v7qfgpvdr6nz7v63dj69d26dis0kff3rd8xamr1llfdvza2pm8f"))
1681 (file-name (git-file-name "nibbles" version))))
1682 (build-system asdf-build-system/sbcl)
1683 (native-inputs
1684 ;; Tests only.
1685 `(("rt" ,sbcl-rt)))
1686 (synopsis "Common Lisp library for accessing octet-addressed blocks of data")
1687 (description
1688 "When dealing with network protocols and file formats, it's common to
1689 have to read or write 16-, 32-, or 64-bit datatypes in signed or unsigned
1690 flavors. Common Lisp sort of supports this by specifying :element-type for
1691 streams, but that facility is underspecified and there's nothing similar for
1692 read/write from octet vectors. What most people wind up doing is rolling their
1693 own small facility for their particular needs and calling it a day.
1694
1695 This library attempts to be comprehensive and centralize such
1696 facilities. Functions to read 16-, 32-, and 64-bit quantities from octet
1697 vectors in signed or unsigned flavors are provided; these functions are also
1698 SETFable. Since it's sometimes desirable to read/write directly from streams,
1699 functions for doing so are also provided. On some implementations,
1700 reading/writing IEEE singles/doubles (i.e. single-float and double-float) will
1701 also be supported.")
1702 (home-page "https://github.com/sharplispers/nibbles")
1703 (license license:bsd-3)))
1704
1705 (define-public cl-nibbles
1706 (sbcl-package->cl-source-package sbcl-nibbles))
1707
1708 (define-public ecl-nibbles
1709 (sbcl-package->ecl-package sbcl-nibbles))
1710
1711 (define-public sbcl-ironclad
1712 (package
1713 (name "sbcl-ironclad")
1714 (version "0.49")
1715 (source
1716 (origin
1717 (method git-fetch)
1718 (uri (git-reference
1719 (url "https://github.com/sharplispers/ironclad/")
1720 (commit (string-append "v" version))))
1721 (sha256
1722 (base32 "0kbzqg2aasrhjwy3nrzy2ddy809n1j045w4qkyc3r2syqd203d4q"))
1723 (file-name (git-file-name name version))))
1724 (build-system asdf-build-system/sbcl)
1725 (native-inputs
1726 ;; Tests only.
1727 `(("rt" ,sbcl-rt)))
1728 (inputs
1729 `(("bordeaux-threads" ,sbcl-bordeaux-threads)
1730 ("flexi-streams" ,sbcl-flexi-streams)
1731 ("trivial-garbage" ,sbcl-trivial-garbage)))
1732 (synopsis "Cryptographic toolkit written in Common Lisp")
1733 (description
1734 "Ironclad is a cryptography library written entirely in Common Lisp.
1735 It includes support for several popular ciphers, digests, MACs and public key
1736 cryptography algorithms. For several implementations that support Gray
1737 streams, support is included for convenient stream wrappers.")
1738 (home-page "https://github.com/sharplispers/ironclad")
1739 (license license:bsd-3)))
1740
1741 (define-public cl-ironclad
1742 (sbcl-package->cl-source-package sbcl-ironclad))
1743
1744 (define-public ecl-ironclad
1745 (sbcl-package->ecl-package sbcl-ironclad))
1746
1747 (define-public sbcl-named-readtables
1748 (let ((commit "4dfb89fa1af6b305b6492b8af042f5190c11e9fc")
1749 (revision "1"))
1750 (package
1751 (name "sbcl-named-readtables")
1752 (version (string-append "0.9-" revision "." (string-take commit 7)))
1753 (source
1754 (origin
1755 (method git-fetch)
1756 (uri (git-reference
1757 (url "https://github.com/melisgl/named-readtables.git")
1758 (commit commit)))
1759 (sha256
1760 (base32 "083kgh5462iqbb4px6kq8s7sggvpvkm36hx4qi9rnaw53b6ilqkk"))
1761 (file-name (git-file-name "named-readtables" version))))
1762 (build-system asdf-build-system/sbcl)
1763 (arguments
1764 ;; Tests seem to be broken.
1765 `(#:tests? #f))
1766 (home-page "https://github.com/melisgl/named-readtables/")
1767 (synopsis "Library that creates a namespace for named readtables")
1768 (description "Named readtables is a library that creates a namespace for
1769 named readtables, which is akin to package namespacing in Common Lisp.")
1770 (license license:bsd-3))))
1771
1772 (define-public cl-named-readtables
1773 (sbcl-package->cl-source-package sbcl-named-readtables))
1774
1775 (define-public ecl-named-readtables
1776 (sbcl-package->ecl-package sbcl-named-readtables))
1777
1778 (define-public sbcl-pythonic-string-reader
1779 (let ((commit "47a70ba1e32362e03dad6ef8e6f36180b560f86a"))
1780 (package
1781 (name "sbcl-pythonic-string-reader")
1782 (version (git-version "0.0.0" "1" commit))
1783 (source
1784 (origin
1785 (method git-fetch)
1786 (uri (git-reference
1787 (url "https://github.com/smithzvk/pythonic-string-reader/")
1788 (commit commit)))
1789 (sha256
1790 (base32 "1b5iryqw8xsh36swckmz8rrngmc39k92si33fgy5pml3n9l5rq3j"))
1791 (file-name (git-file-name "pythonic-string-reader" version))))
1792 (build-system asdf-build-system/sbcl)
1793 (inputs
1794 `(("named-readtables" ,sbcl-named-readtables)))
1795 (home-page "https://github.com/smithzvk/pythonic-string-reader")
1796 (synopsis "Read table modification inspired by Python's three quote strings")
1797 (description "This piece of code sets up some reader macros that make it
1798 simpler to input string literals which contain backslashes and double quotes
1799 This is very useful for writing complicated docstrings and, as it turns out,
1800 writing code that contains string literals that contain code themselves.")
1801 (license license:bsd-3))))
1802
1803 (define-public cl-pythonic-string-reader
1804 (sbcl-package->cl-source-package sbcl-pythonic-string-reader))
1805
1806 (define-public ecl-pythonic-string-reader
1807 (sbcl-package->ecl-package sbcl-pythonic-string-reader))
1808
1809 ;; SLIME does not have a ASDF system definition to build all of Swank. As a
1810 ;; result, the asdf-build-system/sbcl will produce an almost empty package.
1811 ;; Some work was done to fix this at
1812 ;; https://github.com/sionescu/slime/tree/swank-asdf but it was never merged
1813 ;; and is now lagging behind. Building SBCL fasls might not be worth the
1814 ;; hassle, so let's just ship the source then.
1815 (define-public cl-slime-swank
1816 (package
1817 (name "cl-slime-swank")
1818 (version "2.24")
1819 (source
1820 (origin
1821 (file-name (string-append name "-" version ".tar.gz"))
1822 (method git-fetch)
1823 (uri (git-reference
1824 (url "https://github.com/slime/slime/")
1825 (commit (string-append "v" version))))
1826 (sha256
1827 (base32
1828 "0js24x42m7b5iymb4rxz501dff19vav5pywnzv50b673rbkaaqvh"))))
1829 (build-system asdf-build-system/source)
1830 (home-page "https://github.com/slime/slime")
1831 (synopsis "Common Lisp Swank server")
1832 (description
1833 "This is only useful if you want to start a Swank server in a Lisp
1834 processes that doesn't run under Emacs. Lisp processes created by
1835 @command{M-x slime} automatically start the server.")
1836 (license (list license:gpl2+ license:public-domain))))
1837
1838 (define-public sbcl-slime-swank
1839 (deprecated-package "sbcl-slime-swank" cl-slime-swank))
1840
1841 (define-public sbcl-mgl-pax
1842 (let ((commit "818448418d6b9de74620f606f5b23033c6082769"))
1843 (package
1844 (name "sbcl-mgl-pax")
1845 (version (git-version "0.0.0" "1" commit))
1846 (source
1847 (origin
1848 (method git-fetch)
1849 (uri (git-reference
1850 (url "https://github.com/melisgl/mgl-pax")
1851 (commit commit)))
1852 (sha256
1853 (base32
1854 "1p97zfkh130bdxqqxwaw2j9psv58751wakx7czbfpq410lg7dd7i"))
1855 (file-name (git-file-name "mgl-pax" version))))
1856 (build-system asdf-build-system/sbcl)
1857 (inputs
1858 `(("3bmd" ,sbcl-3bmd)
1859 ("3bmd-ext-code-blocks" ,sbcl-3bmd-ext-code-blocks)
1860 ("babel" ,sbcl-babel)
1861 ("cl-fad" ,sbcl-cl-fad)
1862 ("ironclad" ,sbcl-ironclad)
1863 ("named-readtables" ,sbcl-named-readtables)
1864 ("pythonic-string-reader" ,sbcl-pythonic-string-reader)))
1865 (propagated-inputs
1866 ;; Packages having mgl-pax as input complain that it can't find
1867 ;; swank if we put it in inputs, so let's put it in propageted-inputs.
1868 `(("swank" ,cl-slime-swank)))
1869 (synopsis "Exploratory programming environment and documentation generator")
1870 (description
1871 "PAX provides an extremely poor man's Explorable Programming
1872 environment. Narrative primarily lives in so called sections that mix markdown
1873 docstrings with references to functions, variables, etc, all of which should
1874 probably have their own docstrings.
1875
1876 The primary focus is on making code easily explorable by using SLIME's
1877 @command{M-.} (@command{slime-edit-definition}). See how to enable some
1878 fanciness in Emacs Integration. Generating documentation from sections and all
1879 the referenced items in Markdown or HTML format is also implemented.
1880
1881 With the simplistic tools provided, one may accomplish similar effects as with
1882 Literate Programming, but documentation is generated from code, not vice versa
1883 and there is no support for chunking yet. Code is first, code must look
1884 pretty, documentation is code.")
1885 (home-page "http://quotenil.com/")
1886 (license license:expat))))
1887
1888 (define-public cl-mgl-pax
1889 (sbcl-package->cl-source-package sbcl-mgl-pax))
1890
1891 (define-public ecl-mgl-pax
1892 (sbcl-package->ecl-package sbcl-mgl-pax))
1893
1894 (define-public sbcl-lisp-unit
1895 (let ((commit "89653a232626b67400bf9a941f9b367da38d3815"))
1896 (package
1897 (name "sbcl-lisp-unit")
1898 (version (git-version "0.0.0" "1" commit))
1899 (source
1900 (origin
1901 (method git-fetch)
1902 (uri (git-reference
1903 (url "https://github.com/OdonataResearchLLC/lisp-unit")
1904 (commit commit)))
1905 (sha256
1906 (base32
1907 "0p6gdmgr7p383nvd66c9y9fp2bjk4jx1lpa5p09g43hr9y9pp9ry"))
1908 (file-name (git-file-name "lisp-unit" version))))
1909 (build-system asdf-build-system/sbcl)
1910 (synopsis "Common Lisp Test framework inspired by JUnit to be simple of use")
1911 (description
1912 "@command{lisp-unit} is a Common Lisp library that supports unit
1913 testing. It is an extension of the library written by Chris Riesbeck.")
1914 (home-page "https://github.com/OdonataResearchLLC/lisp-unit")
1915 (license license:expat))))
1916
1917 (define-public cl-lisp-unit
1918 (sbcl-package->cl-source-package sbcl-lisp-unit))
1919
1920 (define-public ecl-lisp-unit
1921 (sbcl-package->ecl-package sbcl-lisp-unit))
1922
1923 (define-public sbcl-anaphora
1924 (package
1925 (name "sbcl-anaphora")
1926 (version "0.9.6")
1927 (source
1928 (origin
1929 (method git-fetch)
1930 (uri (git-reference
1931 (url "https://github.com/tokenrove/anaphora")
1932 (commit version)))
1933 (sha256
1934 (base32
1935 "19wfrk3asimznkli0x2rfy637hwpdgqyvwj3vhq9x7vjvyf5vv6x"))
1936 (file-name (git-file-name "anaphora" version))))
1937 (build-system asdf-build-system/sbcl)
1938 (native-inputs
1939 `(("rt" ,sbcl-rt)))
1940 (synopsis "The anaphoric macro collection from Hell")
1941 (description
1942 "Anaphora is the anaphoric macro collection from Hell: it includes many
1943 new fiends in addition to old friends like @command{aif} and
1944 @command{awhen}.")
1945 (home-page "https://github.com/tokenrove/anaphora")
1946 (license license:public-domain)))
1947
1948 (define-public cl-anaphora
1949 (sbcl-package->cl-source-package sbcl-anaphora))
1950
1951 (define-public ecl-anaphora
1952 (sbcl-package->ecl-package sbcl-anaphora))
1953
1954 (define-public sbcl-lift
1955 (let ((commit "7d49a66c62759535624037826891152223d4206c"))
1956 (package
1957 (name "sbcl-lift")
1958 (version (git-version "1.7.1" "1" commit))
1959 (source
1960 (origin
1961 (method git-fetch)
1962 (uri (git-reference
1963 (url "https://github.com/gwkkwg/lift")
1964 (commit commit)))
1965 (sha256
1966 (base32
1967 "127v5avpz1i4m0lkaxqrq8hrl69rdazqaxf6s8awf0nd7wj2g4dp"))
1968 (file-name (git-file-name "lift" version))
1969 (modules '((guix build utils)))
1970 (snippet
1971 ;; Don't keep the bundled website
1972 `(begin
1973 (delete-file-recursively "website")
1974 #t))))
1975 (build-system asdf-build-system/sbcl)
1976 (arguments
1977 ;; The tests require a debugger, but we run with the debugger disabled.
1978 '(#:tests? #f))
1979 (synopsis "LIsp Framework for Testing")
1980 (description
1981 "The LIsp Framework for Testing (LIFT) is a unit and system test tool for LISP.
1982 Though inspired by SUnit and JUnit, it's built with Lisp in mind. In LIFT,
1983 testcases are organized into hierarchical testsuites each of which can have
1984 its own fixture. When run, a testcase can succeed, fail, or error. LIFT
1985 supports randomized testing, benchmarking, profiling, and reporting.")
1986 (home-page "https://github.com/gwkkwg/lift")
1987 (license license:expat))))
1988
1989 (define-public cl-lift
1990 (sbcl-package->cl-source-package sbcl-lift))
1991
1992 (define-public ecl-lift
1993 (sbcl-package->ecl-package sbcl-lift))
1994
1995 (define-public sbcl-let-plus
1996 (let ((commit "5f14af61d501ecead02ec6b5a5c810efc0c9fdbb"))
1997 (package
1998 (name "sbcl-let-plus")
1999 (version (git-version "0.0.0" "1" commit))
2000 (source
2001 (origin
2002 (method git-fetch)
2003 (uri (git-reference
2004 (url "https://github.com/sharplispers/let-plus")
2005 (commit commit)))
2006 (sha256
2007 (base32
2008 "0i050ca2iys9f5mb7dgqgqdxfnc3b0rnjdwv95sqd490vkiwrsaj"))
2009 (file-name (git-file-name "let-plus" version))))
2010 (build-system asdf-build-system/sbcl)
2011 (inputs
2012 `(("alexandria" ,sbcl-alexandria)
2013 ("anaphora" ,sbcl-anaphora)))
2014 (native-inputs
2015 `(("lift" ,sbcl-lift)))
2016 (synopsis "Destructuring extension of let*")
2017 (description
2018 "This library implements the let+ macro, which is a dectructuring
2019 extension of let*. It features:
2020
2021 @itemize
2022 @item Clean, consistent syntax and small implementation (less than 300 LOC,
2023 not counting tests)
2024 @item Placeholder macros allow editor hints and syntax highlighting
2025 @item @command{&ign} for ignored values (in forms where that makes sense)
2026 @item Very easy to extend
2027 @end itemize\n")
2028 (home-page "https://github.com/sharplispers/let-plus")
2029 (license license:boost1.0))))
2030
2031 (define-public cl-let-plus
2032 (sbcl-package->cl-source-package sbcl-let-plus))
2033
2034 (define-public ecl-let-plus
2035 (sbcl-package->ecl-package sbcl-let-plus))
2036
2037 (define-public sbcl-cl-colors
2038 (let ((commit "827410584553f5c717eec6182343b7605f707f75"))
2039 (package
2040 (name "sbcl-cl-colors")
2041 (version (git-version "0.0.0" "1" commit))
2042 (source
2043 (origin
2044 (method git-fetch)
2045 (uri (git-reference
2046 (url "https://github.com/tpapp/cl-colors")
2047 (commit commit)))
2048 (sha256
2049 (base32
2050 "0l446lday4hybsm9bq3jli97fvv8jb1d33abg79vbylpwjmf3y9a"))
2051 (file-name (git-file-name "cl-colors" version))))
2052 (build-system asdf-build-system/sbcl)
2053 (inputs
2054 `(("alexandria" ,sbcl-alexandria)
2055 ("let-plus" ,sbcl-let-plus)))
2056 (synopsis "Simple color library for Common Lisp")
2057 (description
2058 "This is a very simple color library for Common Lisp, providing
2059
2060 @itemize
2061 @item Types for representing colors in HSV and RGB spaces.
2062 @item Simple conversion functions between the above types (and also
2063 hexadecimal representation for RGB).
2064 @item Some predefined colors (currently X11 color names – of course the
2065 library does not depend on X11).Because color in your terminal is nice.
2066 @end itemize
2067
2068 This library is no longer supported by its author.")
2069 (home-page "https://github.com/tpapp/cl-colors")
2070 (license license:boost1.0))))
2071
2072 (define-public cl-colors
2073 (sbcl-package->cl-source-package sbcl-cl-colors))
2074
2075 (define-public ecl-cl-colors
2076 (sbcl-package->ecl-package sbcl-cl-colors))
2077
2078 (define-public sbcl-cl-ansi-text
2079 (let ((commit "53badf7878f27f22f2d4a2a43e6df458e43acbe9"))
2080 (package
2081 (name "sbcl-cl-ansi-text")
2082 (version (git-version "1.0.0" "1" commit))
2083 (source
2084 (origin
2085 (method git-fetch)
2086 (uri (git-reference
2087 (url "https://github.com/pnathan/cl-ansi-text")
2088 (commit commit)))
2089 (sha256
2090 (base32
2091 "11i27n0dbz5lmygiw65zzr8lx0rac6b6yysqranphn31wls6ja3v"))
2092 (file-name (git-file-name "cl-ansi-text" version))))
2093 (build-system asdf-build-system/sbcl)
2094 (inputs
2095 `(("alexandria" ,sbcl-alexandria)
2096 ("cl-colors" ,sbcl-cl-colors)))
2097 (native-inputs
2098 `(("fiveam" ,sbcl-fiveam)))
2099 (synopsis "ANSI terminal color implementation for Common Lisp")
2100 (description
2101 "@command{cl-ansi-text} provides utilities which enable printing to an
2102 ANSI terminal with colored text. It provides the macro @command{with-color}
2103 which causes everything printed in the body to be displayed with the provided
2104 color. It further provides functions which will print the argument with the
2105 named color.")
2106 (home-page "https://github.com/pnathan/cl-ansi-text")
2107 (license license:llgpl))))
2108
2109 (define-public cl-ansi-text
2110 (sbcl-package->cl-source-package sbcl-cl-ansi-text))
2111
2112 (define-public ecl-cl-ansi-text
2113 (sbcl-package->ecl-package sbcl-cl-ansi-text))
2114
2115 (define-public sbcl-prove-asdf
2116 (let ((commit "4f9122bd393e63c5c70c1fba23070622317cfaa0"))
2117 (package
2118 (name "sbcl-prove-asdf")
2119 (version (git-version "1.0.0" "1" commit))
2120 (source
2121 (origin
2122 (method git-fetch)
2123 (uri (git-reference
2124 (url "https://github.com/fukamachi/prove")
2125 (commit commit)))
2126 (sha256
2127 (base32
2128 "07sbfw459z8bbjvx1qlmfa8qk2mvbjnnzi2mi0x72blaj8bkl4vc"))
2129 (file-name (git-file-name "prove" version))))
2130 (build-system asdf-build-system/sbcl)
2131 (arguments
2132 `(#:asd-file "prove-asdf.asd"))
2133 (synopsis "Test requirement for the Common Lisp 'prove' library")
2134 (description
2135 "Test requirement for the Common Lisp @command{prove} library.")
2136 (home-page "https://github.com/fukamachi/prove")
2137 (license license:expat))))
2138
2139 (define-public cl-prove-asdf
2140 (sbcl-package->cl-source-package sbcl-prove-asdf))
2141
2142 (define-public ecl-prove-asdf
2143 (sbcl-package->ecl-package sbcl-prove-asdf))
2144
2145 (define-public sbcl-prove
2146 (package
2147 (inherit sbcl-prove-asdf)
2148 (name "sbcl-prove")
2149 (inputs
2150 `(("alexandria" ,sbcl-alexandria)
2151 ("cl-ppcre" ,sbcl-cl-ppcre)
2152 ("cl-ansi-text" ,sbcl-cl-ansi-text)))
2153 (native-inputs
2154 `(("prove-asdf" ,sbcl-prove-asdf)))
2155 (arguments
2156 `(#:asd-file "prove.asd"))
2157 (synopsis "Yet another unit testing framework for Common Lisp")
2158 (description
2159 "This project was originally called @command{cl-test-more}.
2160 @command{prove} is yet another unit testing framework for Common Lisp. The
2161 advantages of @command{prove} are:
2162
2163 @itemize
2164 @item Various simple functions for testing and informative error messages
2165 @item ASDF integration
2166 @item Extensible test reporters
2167 @item Colorizes the report if it's available (note for SLIME)
2168 @item Reports test durations
2169 @end itemize\n")))
2170
2171 (define-public cl-prove
2172 (sbcl-package->cl-source-package sbcl-prove))
2173
2174 (define-public ecl-prove
2175 (sbcl-package->ecl-package sbcl-prove))
2176
2177 (define-public sbcl-proc-parse
2178 (let ((commit "ac3636834d561bdc2686c956dbd82494537285fd"))
2179 (package
2180 (name "sbcl-proc-parse")
2181 (version (git-version "0.0.0" "1" commit))
2182 (source
2183 (origin
2184 (method git-fetch)
2185 (uri (git-reference
2186 (url "https://github.com/fukamachi/proc-parse")
2187 (commit commit)))
2188 (sha256
2189 (base32
2190 "06rnl0h4cx6xv2wj3jczmmcxqn2703inmmvg1s4npbghmijsybfh"))
2191 (file-name (git-file-name "proc-parse" version))))
2192 (build-system asdf-build-system/sbcl)
2193 (inputs
2194 `(("alexandria" ,sbcl-alexandria)
2195 ("babel" ,sbcl-babel)))
2196 (native-inputs
2197 `(("prove" ,sbcl-prove)
2198 ("prove-asdf" ,sbcl-prove-asdf)))
2199 (arguments
2200 ;; TODO: Tests don't find "proc-parse-test", why?
2201 `(#:tests? #f))
2202 (synopsis "Procedural vector parser")
2203 (description
2204 "This is a string/octets parser library for Common Lisp with speed and
2205 readability in mind. Unlike other libraries, the code is not a
2206 pattern-matching-like, but a char-by-char procedural parser.")
2207 (home-page "https://github.com/fukamachi/proc-parse")
2208 (license license:bsd-2))))
2209
2210 (define-public cl-proc-parse
2211 (sbcl-package->cl-source-package sbcl-proc-parse))
2212
2213 (define-public ecl-proc-parse
2214 (sbcl-package->ecl-package sbcl-proc-parse))
2215
2216 (define-public sbcl-parse-float
2217 (let ((commit "2aae569f2a4b2eb3bfb5401a959425dcf151b09c"))
2218 (package
2219 (name "sbcl-parse-float")
2220 (version (git-version "0.0.0" "1" commit))
2221 (source
2222 (origin
2223 (method git-fetch)
2224 (uri (git-reference
2225 (url "https://github.com/soemraws/parse-float")
2226 (commit commit)))
2227 (sha256
2228 (base32
2229 "08xw8cchhmqcc0byng69m3f5a2izc9y2290jzz2k0qrbibp1fdk7"))
2230 (file-name (git-file-name "proc-parse" version))))
2231 (build-system asdf-build-system/sbcl)
2232 (inputs
2233 `(("alexandria" ,sbcl-alexandria)
2234 ("babel" ,sbcl-babel)))
2235 (native-inputs
2236 `(("prove" ,sbcl-prove)
2237 ("prove-asdf" ,sbcl-prove-asdf)))
2238 (arguments
2239 ;; TODO: Tests don't find "proc-parse-test", why?
2240 `(#:tests? #f))
2241 (synopsis "Parse a floating point value from a string in Common Lisp")
2242 (description
2243 "This package exports the following function to parse floating-point
2244 values from a string in Common Lisp.")
2245 (home-page "https://github.com/soemraws/parse-float")
2246 (license license:public-domain))))
2247
2248 (define-public cl-parse-float
2249 (sbcl-package->cl-source-package sbcl-parse-float))
2250
2251 (define-public ecl-parse-float
2252 (sbcl-package->ecl-package sbcl-parse-float))
2253
2254 (define-public sbcl-ascii-strings
2255 (let ((revision "1")
2256 (changeset "5048480a61243e6f1b02884012c8f25cdbee6d97"))
2257 (package
2258 (name "sbcl-ascii-strings")
2259 (version (string-append "0-" revision "." (string-take changeset 7)))
2260 (source
2261 (origin
2262 (method hg-fetch)
2263 (uri (hg-reference
2264 (url "https://bitbucket.org/vityok/cl-string-match/")
2265 (changeset changeset)))
2266 (sha256
2267 (base32
2268 "01wn5qx562w43ssy92xlfgv79w7p0nv0wbl76mpmba131n9ziq2y"))
2269 (file-name (git-file-name "cl-string-match" version))))
2270 (build-system asdf-build-system/sbcl)
2271 (inputs
2272 `(("alexandria" ,sbcl-alexandria)
2273 ("babel" ,sbcl-babel)))
2274 (arguments
2275 `(#:asd-file "ascii-strings.asd"))
2276 (synopsis "Operations on ASCII strings")
2277 (description
2278 "Operations on ASCII strings. Essentially this can be any kind of
2279 single-byte encoded strings.")
2280 (home-page "https://bitbucket.org/vityok/cl-string-match/")
2281 (license license:bsd-3))))
2282
2283 (define-public cl-ascii-strings
2284 (sbcl-package->cl-source-package sbcl-ascii-strings))
2285
2286 (define-public ecl-ascii-strings
2287 (sbcl-package->ecl-package sbcl-ascii-strings))
2288
2289 (define-public sbcl-simple-scanf
2290 (package
2291 (inherit sbcl-ascii-strings)
2292 (name "sbcl-simple-scanf")
2293 (inputs
2294 `(("alexandria" ,sbcl-alexandria)
2295 ("iterate" ,sbcl-iterate)
2296 ("proc-parse" ,sbcl-proc-parse)
2297 ("parse-float" ,sbcl-parse-float)))
2298 (arguments
2299 `(#:asd-file "simple-scanf.asd"))
2300 (synopsis "Simple scanf-like functionality implementation")
2301 (description
2302 "A simple scanf-like functionality implementation.")))
2303
2304 (define-public cl-simple-scanf
2305 (sbcl-package->cl-source-package sbcl-simple-scanf))
2306
2307 (define-public ecl-simple-scanf
2308 (sbcl-package->ecl-package sbcl-simple-scanf))
2309
2310 (define-public sbcl-cl-string-match
2311 (package
2312 (inherit sbcl-ascii-strings)
2313 (name "sbcl-cl-string-match")
2314 (inputs
2315 `(("alexandria" ,sbcl-alexandria)
2316 ("ascii-strings" ,sbcl-ascii-strings)
2317 ("yacc" ,sbcl-cl-yacc)
2318 ("jpl-util" ,sbcl-jpl-util)
2319 ("jpl-queues" ,sbcl-jpl-queues)
2320 ("mgl-pax" ,sbcl-mgl-pax)
2321 ("iterate" ,sbcl-iterate)))
2322 ;; TODO: Tests are not evaluated properly.
2323 (native-inputs
2324 ;; For testing:
2325 `(("lisp-unit" ,sbcl-lisp-unit)
2326 ("simple-scanf" ,sbcl-simple-scanf)))
2327 (arguments
2328 `(#:tests? #f
2329 #:asd-file "cl-string-match.asd"))
2330 (synopsis "Portable, dependency-free set of utilities to manipulate strings in Common Lisp")
2331 (description
2332 "@command{cl-strings} is a small, portable, dependency-free set of
2333 utilities that make it even easier to manipulate text in Common Lisp. It has
2334 100% test coverage and works at least on sbcl, ecl, ccl, abcl and clisp.")))
2335
2336 (define-public cl-string-match
2337 (sbcl-package->cl-source-package sbcl-cl-string-match))
2338
2339 (define-public ecl-cl-string-match
2340 (sbcl-package->ecl-package sbcl-cl-string-match))
2341
2342 (define-public sbcl-ptester
2343 (let ((commit "fe69fde54f4bce00ce577feb918796c293fc7253")
2344 (revision "1"))
2345 (package
2346 (name "sbcl-ptester")
2347 (version (git-version "2.1.3" revision commit))
2348 (source
2349 (origin
2350 (method git-fetch)
2351 (uri (git-reference
2352 (url "http://git.kpe.io/ptester.git")
2353 (commit commit)))
2354 (file-name (git-file-name name version))
2355 (sha256
2356 (base32 "1l0lfl7cdnr2qf4zh38hi4llxg22c49zkm639bdkmvlkzwj3ndwf"))))
2357 (build-system asdf-build-system/sbcl)
2358 (home-page "http://quickdocs.org/ptester/")
2359 (synopsis "Portable test harness package")
2360 (description
2361 "@command{ptester} is a portable testing framework based on Franz's
2362 tester module.")
2363 (license license:llgpl))))
2364
2365 (define-public cl-ptester
2366 (sbcl-package->cl-source-package sbcl-ptester))
2367
2368 (define-public ecl-ptester
2369 (sbcl-package->ecl-package sbcl-ptester))
2370
2371 (define-public sbcl-puri
2372 (let ((commit "ef5afb9e5286c8e952d4344f019c1a636a717b97")
2373 (revision "1"))
2374 (package
2375 (name "sbcl-puri")
2376 (version (git-version "1.5.7" revision commit))
2377 (source
2378 (origin
2379 (method git-fetch)
2380 (uri (git-reference
2381 (url "http://git.kpe.io/puri.git")
2382 (commit commit)))
2383 (file-name (git-file-name name version))
2384 (sha256
2385 (base32 "1vm25pdl92laj72p5vyd538kf3cjy2655z6bdc99h20ana2p231s"))))
2386 (build-system asdf-build-system/sbcl)
2387 (native-inputs
2388 `(("ptester" ,sbcl-ptester)))
2389 (home-page "http://quickdocs.org/puri/")
2390 (synopsis "Portable URI Library")
2391 (description
2392 "This is a portable Universal Resource Identifier library for Common
2393 Lisp programs. It parses URI according to the RFC 2396 specification.")
2394 (license license:llgpl))))
2395
2396 (define-public cl-puri
2397 (sbcl-package->cl-source-package sbcl-puri))
2398
2399 (define-public ecl-puri
2400 (sbcl-package->ecl-package sbcl-puri))
2401
2402 (define-public sbcl-queues
2403 (let ((commit "47d4da65e9ea20953b74aeeab7e89a831b66bc94"))
2404 (package
2405 (name "sbcl-queues")
2406 (version (git-version "0.0.0" "1" commit))
2407 (source
2408 (origin
2409 (method git-fetch)
2410 (uri (git-reference
2411 (url "https://github.com/oconnore/queues")
2412 (commit commit)))
2413 (file-name (git-file-name "queues" version))
2414 (sha256
2415 (base32
2416 "0wdhfnzi4v6d97pggzj2aw55si94w4327br94jrmyvwf351wqjvv"))))
2417 (build-system asdf-build-system/sbcl)
2418 (home-page "https://github.com/oconnore/queues")
2419 (synopsis "Common Lisp queue library")
2420 (description
2421 "This is a simple queue library for Common Lisp with features such as
2422 non-consing thread safe queues and fibonacci priority queues.")
2423 (license license:expat))))
2424
2425 (define-public cl-queues
2426 (sbcl-package->cl-source-package sbcl-queues))
2427
2428 (define-public ecl-queues
2429 (sbcl-package->ecl-package sbcl-queues))
2430
2431 (define-public sbcl-queues.simple-queue
2432 (package
2433 (inherit sbcl-queues)
2434 (name "sbcl-queues.simple-queue")
2435 (inputs
2436 `(("sbcl-queues" ,sbcl-queues)))
2437 (arguments
2438 `(#:asd-file "queues.simple-queue.asd"))
2439 (synopsis "Simple queue implementation")
2440 (description
2441 "This is a simple queue library for Common Lisp with features such as
2442 non-consing thread safe queues and fibonacci priority queues.")
2443 (license license:expat)))
2444
2445 (define-public cl-queues.simple-queue
2446 (sbcl-package->cl-source-package sbcl-queues.simple-queue))
2447
2448 (define-public ecl-queues.simple-queue
2449 (sbcl-package->ecl-package sbcl-queues.simple-queue))
2450
2451 (define-public sbcl-queues.simple-cqueue
2452 (package
2453 (inherit sbcl-queues)
2454 (name "sbcl-queues.simple-cqueue")
2455 (inputs
2456 `(("sbcl-queues" ,sbcl-queues)
2457 ("sbcl-queues.simple-queue" ,sbcl-queues.simple-queue)
2458 ("bordeaux-threads" ,sbcl-bordeaux-threads)))
2459 (arguments
2460 `(#:asd-file "queues.simple-cqueue.asd"))
2461 (synopsis "Thread safe queue implementation")
2462 (description
2463 "This is a simple queue library for Common Lisp with features such as
2464 non-consing thread safe queues and fibonacci priority queues.")
2465 (license license:expat)))
2466
2467 (define-public cl-queues.simple-cqueue
2468 (sbcl-package->cl-source-package sbcl-queues.simple-cqueue))
2469
2470 (define-public ecl-queues.simple-cqueue
2471 (sbcl-package->ecl-package sbcl-queues.simple-cqueue))
2472
2473 (define-public sbcl-queues.priority-queue
2474 (package
2475 (inherit sbcl-queues)
2476 (name "sbcl-queues.priority-queue")
2477 (inputs
2478 `(("sbcl-queues" ,sbcl-queues)))
2479 (arguments
2480 `(#:asd-file "queues.priority-queue.asd"))
2481 (synopsis "Priority queue (Fibonacci) implementation")
2482 (description
2483 "This is a simple queue library for Common Lisp with features such as
2484 non-consing thread safe queues and fibonacci priority queues.")
2485 (license license:expat)))
2486
2487 (define-public cl-queues.priority-queue
2488 (sbcl-package->cl-source-package sbcl-queues.priority-queue))
2489
2490 (define-public ecl-queues.priority-queue
2491 (sbcl-package->ecl-package sbcl-queues.priority-queue))
2492
2493 (define-public sbcl-queues.priority-cqueue
2494 (package
2495 (inherit sbcl-queues)
2496 (name "sbcl-queues.priority-cqueue")
2497 (inputs
2498 `(("sbcl-queues" ,sbcl-queues)
2499 ("sbcl-queues.priority-queue" ,sbcl-queues.priority-queue)
2500 ("bordeaux-threads" ,sbcl-bordeaux-threads)))
2501 (arguments
2502 `(#:asd-file "queues.priority-cqueue.asd"))
2503 (synopsis "Thread safe fibonacci priority queue implementation")
2504 (description
2505 "This is a simple queue library for Common Lisp with features such as
2506 non-consing thread safe queues and fibonacci priority queues.")
2507 (license license:expat)))
2508
2509 (define-public cl-queues.priority-cqueue
2510 (sbcl-package->cl-source-package sbcl-queues.priority-cqueue))
2511
2512 (define-public ecl-queues.priority-cqueue
2513 (sbcl-package->ecl-package sbcl-queues.priority-cqueue))
2514
2515 (define sbcl-cffi-bootstrap
2516 (package
2517 (name "sbcl-cffi-bootstrap")
2518 (version "0.21.0")
2519 (source
2520 (origin
2521 (method git-fetch)
2522 (uri (git-reference
2523 (url "https://github.com/cffi/cffi.git")
2524 (commit (string-append "v" version))))
2525 (file-name (git-file-name "cffi-bootstrap" version))
2526 (sha256
2527 (base32 "1qalargz9bhp850qv60ffwpdqi4xirzar4l3g6qcg8yc6xqf2cjk"))))
2528 (build-system asdf-build-system/sbcl)
2529 (inputs
2530 `(("libffi" ,libffi)
2531 ("alexandria" ,sbcl-alexandria)
2532 ("babel" ,sbcl-babel)
2533 ("trivial-features" ,sbcl-trivial-features)))
2534 (native-inputs
2535 `(("pkg-config" ,pkg-config)))
2536 (arguments
2537 '(#:phases
2538 (modify-phases %standard-phases
2539 (add-after 'unpack 'fix-paths
2540 (lambda* (#:key inputs #:allow-other-keys)
2541 (substitute* "libffi/libffi.lisp"
2542 (("libffi.so.6" all) (string-append
2543 (assoc-ref inputs "libffi")
2544 "/lib/" all)))
2545 (substitute* "toolchain/c-toolchain.lisp"
2546 (("\"cc\"") (format #f "~S" (which "gcc")))))))
2547 #:asd-system-name "cffi"
2548 #:tests? #f))
2549 (home-page "https://common-lisp.net/project/cffi/")
2550 (synopsis "Common Foreign Function Interface for Common Lisp")
2551 (description "The Common Foreign Function Interface (CFFI)
2552 purports to be a portable foreign function interface for Common Lisp.
2553 The CFFI library is composed of a Lisp-implementation-specific backend
2554 in the CFFI-SYS package, and a portable frontend in the CFFI
2555 package.")
2556 (license license:expat)))
2557
2558 (define-public sbcl-cffi-toolchain
2559 (package
2560 (inherit sbcl-cffi-bootstrap)
2561 (name "sbcl-cffi-toolchain")
2562 (inputs
2563 `(("libffi" ,libffi)
2564 ("sbcl-cffi" ,sbcl-cffi-bootstrap)))
2565 (arguments
2566 (substitute-keyword-arguments (package-arguments sbcl-cffi-bootstrap)
2567 ((#:asd-system-name _) #f)
2568 ((#:tests? _) #t)))))
2569
2570 (define-public sbcl-cffi-libffi
2571 (package
2572 (inherit sbcl-cffi-toolchain)
2573 (name "sbcl-cffi-libffi")
2574 (inputs
2575 `(("cffi" ,sbcl-cffi-bootstrap)
2576 ("cffi-grovel" ,sbcl-cffi-grovel)
2577 ("trivial-features" ,sbcl-trivial-features)
2578 ("libffi" ,libffi)))))
2579
2580 (define-public sbcl-cffi-grovel
2581 (package
2582 (inherit sbcl-cffi-toolchain)
2583 (name "sbcl-cffi-grovel")
2584 (inputs
2585 `(("libffi" ,libffi)
2586 ("cffi" ,sbcl-cffi-bootstrap)
2587 ("cffi-toolchain" ,sbcl-cffi-toolchain)
2588 ("alexandria" ,sbcl-alexandria)))
2589 (arguments
2590 (substitute-keyword-arguments (package-arguments sbcl-cffi-toolchain)
2591 ((#:phases phases)
2592 `(modify-phases ,phases
2593 (add-after 'build 'install-headers
2594 (lambda* (#:key outputs #:allow-other-keys)
2595 (install-file "grovel/common.h"
2596 (string-append
2597 (assoc-ref outputs "out")
2598 "/include/grovel"))))))))))
2599
2600 (define-public sbcl-cffi
2601 (package
2602 (inherit sbcl-cffi-toolchain)
2603 (name "sbcl-cffi")
2604 (inputs (package-inputs sbcl-cffi-bootstrap))
2605 (native-inputs
2606 `(("cffi-grovel" ,sbcl-cffi-grovel)
2607 ("cffi-libffi" ,sbcl-cffi-libffi)
2608 ("rt" ,sbcl-rt)
2609 ("bordeaux-threads" ,sbcl-bordeaux-threads)
2610 ,@(package-native-inputs sbcl-cffi-bootstrap)))))
2611
2612 (define-public cl-cffi
2613 (sbcl-package->cl-source-package sbcl-cffi))
2614
2615 (define-public sbcl-cffi-uffi-compat
2616 (package
2617 (inherit sbcl-cffi-toolchain)
2618 (name "sbcl-cffi-uffi-compat")
2619 (native-inputs
2620 `(,@(package-inputs sbcl-cffi-bootstrap))) ; For fix-paths phase
2621 (inputs
2622 `(("cffi" ,sbcl-cffi)))
2623 (synopsis "UFFI Compatibility Layer for CFFI")))
2624
2625 (define-public cl-cffi-uffi-compat
2626 (sbcl-package->cl-source-package sbcl-cffi-uffi-compat))
2627
2628 (define-public sbcl-cl-sqlite
2629 (let ((commit "c738e66d4266ef63a1debc4ef4a1b871a068c112"))
2630 (package
2631 (name "sbcl-cl-sqlite")
2632 (version (git-version "0.2" "1" commit))
2633 (source
2634 (origin
2635 (method git-fetch)
2636 (uri (git-reference
2637 (url "https://github.com/dmitryvk/cl-sqlite")
2638 (commit commit)))
2639 (file-name (git-file-name "cl-sqlite" version))
2640 (sha256
2641 (base32
2642 "1ng45k1hdb84sqjryrfx93g66bsbybmpy301wd0fdybnc5jzr36q"))))
2643 (build-system asdf-build-system/sbcl)
2644 (inputs
2645 `(("iterate" ,sbcl-iterate)
2646 ("cffi" ,sbcl-cffi)
2647 ("sqlite" ,sqlite)))
2648 (native-inputs
2649 `(("fiveam" ,sbcl-fiveam)
2650 ("bordeaux-threads" ,sbcl-bordeaux-threads)))
2651 (arguments
2652 `(#:tests? #f ; Upstream seems to have issues with tests: https://github.com/dmitryvk/cl-sqlite/issues/7
2653 #:asd-file "sqlite.asd"
2654 #:asd-system-name "sqlite"
2655 #:phases
2656 (modify-phases %standard-phases
2657 (add-after 'unpack 'fix-paths
2658 (lambda* (#:key inputs #:allow-other-keys)
2659 (substitute* "sqlite-ffi.lisp"
2660 (("libsqlite3" all) (string-append
2661 (assoc-ref inputs "sqlite")"/lib/" all))))))))
2662 (home-page "https://common-lisp.net/project/cl-sqlite/")
2663 (synopsis "Common Lisp binding for SQLite")
2664 (description
2665 "The @command{cl-sqlite} package is an interface to the SQLite embedded
2666 relational database engine.")
2667 (license license:public-domain))))
2668
2669 (define-public cl-sqlite
2670 (sbcl-package->cl-source-package sbcl-cl-sqlite))
2671
2672 (define-public sbcl-parenscript
2673 ;; Source archives are overwritten on every release, we use the Git repo instead.
2674 (let ((commit "7a1ac46353cecd144fc91915ba9f122aafcf4766"))
2675 (package
2676 (name "sbcl-parenscript")
2677 (version (git-version "2.7.1" "1" commit))
2678 (source
2679 (origin
2680 (method git-fetch)
2681 (uri (git-reference
2682 (url "https://gitlab.common-lisp.net/parenscript/parenscript")
2683 (commit commit)))
2684 (file-name (git-file-name "parenscript" version))
2685 (sha256
2686 (base32
2687 "0c22lqarrpbq82dg1sb3y6mp6w2faczp34ymzhnmff88yfq1xzsf"))))
2688 (build-system asdf-build-system/sbcl)
2689 (inputs
2690 `(("cl-ppcre" ,sbcl-cl-ppcre)
2691 ("anaphora" ,sbcl-anaphora)
2692 ("named-readtables" ,sbcl-named-readtables)))
2693 (home-page "https://common-lisp.net/project/parenscript/")
2694 (synopsis "Translator from a subset of Common Lisp to JavaScript")
2695 (description
2696 "Parenscript is a translator from an extended subset of Common Lisp to
2697 JavaScript. Parenscript code can run almost identically on both the
2698 browser (as JavaScript) and server (as Common Lisp).
2699
2700 Parenscript code is treated the same way as Common Lisp code, making the full
2701 power of Lisp macros available for JavaScript. This provides a web
2702 development environment that is unmatched in its ability to reduce code
2703 duplication and provide advanced meta-programming facilities to web
2704 developers.
2705
2706 At the same time, Parenscript is different from almost all other \"language
2707 X\" to JavaScript translators in that it imposes almost no overhead:
2708
2709 @itemize
2710 @item No run-time dependencies: Any piece of Parenscript code is runnable
2711 as-is. There are no JavaScript files to include.
2712 @item Native types: Parenscript works entirely with native JavaScript data
2713 types. There are no new types introduced, and object prototypes are not
2714 touched.
2715 @item Native calling convention: Any JavaScript code can be called without the
2716 need for bindings. Likewise, Parenscript can be used to make efficient,
2717 self-contained JavaScript libraries.
2718 @item Readable code: Parenscript generates concise, formatted, idiomatic
2719 JavaScript code. Identifier names are preserved. This enables seamless
2720 debugging in tools like Firebug.
2721 @item Efficiency: Parenscript introduces minimal overhead for advanced Common
2722 Lisp features. The generated code is almost as fast as hand-written
2723 JavaScript.
2724 @end itemize\n")
2725 (license license:bsd-3))))
2726
2727 (define-public cl-parenscript
2728 (sbcl-package->cl-source-package sbcl-parenscript))
2729
2730 (define-public ecl-parenscript
2731 (sbcl-package->ecl-package sbcl-parenscript))
2732
2733 (define-public sbcl-cl-json
2734 (let ((commit "6dfebb9540bfc3cc33582d0c03c9ec27cb913e79"))
2735 (package
2736 (name "sbcl-cl-json")
2737 (version (git-version "0.5" "1" commit))
2738 (source
2739 (origin
2740 (method git-fetch)
2741 (uri (git-reference
2742 (url "https://github.com/hankhero/cl-json")
2743 (commit commit)))
2744 (file-name (git-file-name "cl-json" version))
2745 (sha256
2746 (base32
2747 "0fx3m3x3s5ji950yzpazz4s0img3l6b3d6l3jrfjv0lr702496lh"))))
2748 (build-system asdf-build-system/sbcl)
2749 (native-inputs
2750 `(("fiveam" ,sbcl-fiveam)))
2751 (home-page "https://github.com/hankhero/cl-json")
2752 (synopsis "JSON encoder and decoder for Common-Lisp")
2753 (description
2754 "@command{cl-json} provides an encoder of Lisp objects to JSON format
2755 and a corresponding decoder of JSON data to Lisp objects. Both the encoder
2756 and the decoder are highly customizable; at the same time, the default
2757 settings ensure a very simple mode of operation, similar to that provided by
2758 @command{yason} or @command{st-json}.")
2759 (license license:expat))))
2760
2761 (define-public cl-json
2762 (sbcl-package->cl-source-package sbcl-cl-json))
2763
2764 (define-public ecl-cl-json
2765 (sbcl-package->ecl-package sbcl-cl-json))
2766
2767 (define-public sbcl-unix-opts
2768 (package
2769 (name "sbcl-unix-opts")
2770 (version "0.1.7")
2771 (source
2772 (origin
2773 (method git-fetch)
2774 (uri (git-reference
2775 (url "https://github.com/libre-man/unix-opts")
2776 (commit version)))
2777 (file-name (git-file-name "unix-opts" version))
2778 (sha256
2779 (base32
2780 "08djdi1ard09fijb7w9bdmhmwd98b1hzmcnjw9fqjiqa0g3b44rr"))))
2781 (build-system asdf-build-system/sbcl)
2782 (home-page "https://github.com/hankhero/cl-json")
2783 (synopsis "Unix-style command line options parser")
2784 (description
2785 "This is a minimalistic parser of command line options. The main
2786 advantage of the library is the ability to concisely define command line
2787 options once and then use this definition for parsing and extraction of
2788 command line arguments, as well as printing description of command line
2789 options (you get --help for free). This way you don't need to repeat
2790 yourself. Also, @command{unix-opts} doesn't depend on anything and
2791 precisely controls the behavior of the parser via Common Lisp restarts.")
2792 (license license:expat)))
2793
2794 (define-public cl-unix-opts
2795 (sbcl-package->cl-source-package sbcl-unix-opts))
2796
2797 (define-public ecl-unix-opts
2798 (sbcl-package->ecl-package sbcl-unix-opts))
2799
2800 (define-public sbcl-trivial-garbage
2801 (package
2802 (name "sbcl-trivial-garbage")
2803 (version "0.21")
2804 (source
2805 (origin
2806 (method git-fetch)
2807 (uri (git-reference
2808 (url "https://github.com/trivial-garbage/trivial-garbage.git")
2809 (commit (string-append "v" version))))
2810 (file-name (git-file-name "trivial-garbage" version))
2811 (sha256
2812 (base32 "0122jicfg7pca1wxw8zak1n92h5friqy60988ns0ysksj3fphw9n"))))
2813 (build-system asdf-build-system/sbcl)
2814 (native-inputs
2815 `(("rt" ,sbcl-rt)))
2816 (home-page "https://common-lisp.net/project/trivial-garbage/")
2817 (synopsis "Portable GC-related APIs for Common Lisp")
2818 (description "@command{trivial-garbage} provides a portable API to
2819 finalizers, weak hash-tables and weak pointers on all major implementations of
2820 the Common Lisp programming language.")
2821 (license license:public-domain)))
2822
2823 (define-public cl-trivial-garbage
2824 (sbcl-package->cl-source-package sbcl-trivial-garbage))
2825
2826 (define-public ecl-trivial-garbage
2827 (sbcl-package->ecl-package sbcl-trivial-garbage))
2828
2829 (define-public sbcl-closer-mop
2830 (let ((commit "fac29ce90e3a46e1fc6cf182190e193526fa9dbc"))
2831 (package
2832 (name "sbcl-closer-mop")
2833 (version (git-version "1.0.0" "1" commit))
2834 (source
2835 (origin
2836 (method git-fetch)
2837 (uri (git-reference
2838 (url "https://github.com/pcostanza/closer-mop")
2839 (commit commit)))
2840 (sha256
2841 (base32 "0hvh77y869h8fg9di5snyg85fxq6fdh9gj1igmx1g6j6j5x915dl"))
2842 (file-name (git-file-name "closer-mop" version ))))
2843 (build-system asdf-build-system/sbcl)
2844 (home-page "https://github.com/pcostanza/closer-mop")
2845 (synopsis "Rectifies absent or incorrect CLOS MOP features")
2846 (description "Closer to MOP is a compatibility layer that rectifies many
2847 of the absent or incorrect CLOS MOP features across a broad range of Common
2848 Lisp implementations.")
2849 (license license:expat))))
2850
2851 (define-public cl-closer-mop
2852 (sbcl-package->cl-source-package sbcl-closer-mop))
2853
2854 (define-public ecl-closer-mop
2855 (sbcl-package->ecl-package sbcl-closer-mop))
2856
2857 (define sbcl-cl-cffi-gtk-boot0
2858 (let ((commit "29443c5aaca975709df8025c4649366d882033cb"))
2859 (package
2860 (name "sbcl-cl-cffi-gtk-boot0")
2861 (version (git-version "0.11.2" "1" commit))
2862 (source
2863 (origin
2864 (method git-fetch)
2865 (uri (git-reference
2866 (url "https://github.com/Ferada/cl-cffi-gtk/")
2867 (commit commit)))
2868 (file-name (git-file-name "cl-cffi-gtk" version))
2869 (sha256
2870 (base32
2871 "0f6s92sf8xyzh1yksqx8bsy1sv0zmy0c13j3b8bavaba5hlxpxah"))))
2872 (build-system asdf-build-system/sbcl)
2873 (inputs
2874 `(("iterate" ,sbcl-iterate)
2875 ("cffi" ,sbcl-cffi)
2876 ("trivial-features" ,sbcl-trivial-features)))
2877 (home-page "https://github.com/Ferada/cl-cffi-gtk/")
2878 (synopsis "Common Lisp binding for GTK+3")
2879 (description
2880 "@command{cl-cffi-gtk} is a Lisp binding to GTK+ 3 (GIMP Toolkit) which
2881 is a library for creating graphical user interfaces.")
2882 (license license:lgpl3))))
2883
2884 (define-public sbcl-cl-cffi-gtk-glib
2885 (package
2886 (inherit sbcl-cl-cffi-gtk-boot0)
2887 (name "sbcl-cl-cffi-gtk-glib")
2888 (inputs
2889 `(("glib" ,glib)
2890 ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
2891 (arguments
2892 `(#:asd-file "glib/cl-cffi-gtk-glib.asd"
2893 #:phases
2894 (modify-phases %standard-phases
2895 (add-after 'unpack 'fix-paths
2896 (lambda* (#:key inputs #:allow-other-keys)
2897 (substitute* "glib/glib.init.lisp"
2898 (("libglib|libgthread" all) (string-append
2899 (assoc-ref inputs "glib") "/lib/" all))))))))))
2900
2901 (define-public sbcl-cl-cffi-gtk-gobject
2902 (package
2903 (inherit sbcl-cl-cffi-gtk-boot0)
2904 (name "sbcl-cl-cffi-gtk-gobject")
2905 (inputs
2906 `(("glib" ,glib)
2907 ("cl-cffi-gtk-glib" ,sbcl-cl-cffi-gtk-glib)
2908 ("trivial-garbage" ,sbcl-trivial-garbage)
2909 ("bordeaux-threads" ,sbcl-bordeaux-threads)
2910 ("closer-mop" ,sbcl-closer-mop)
2911 ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
2912 (arguments
2913 `(#:asd-file "gobject/cl-cffi-gtk-gobject.asd"
2914 #:phases
2915 (modify-phases %standard-phases
2916 (add-after 'unpack 'fix-paths
2917 (lambda* (#:key inputs #:allow-other-keys)
2918 (substitute* "gobject/gobject.init.lisp"
2919 (("libgobject" all) (string-append
2920 (assoc-ref inputs "glib") "/lib/" all)))))
2921 (add-after 'install 'link-source
2922 ;; Since source is particularly heavy (16MiB+), let's reuse it
2923 ;; across the different components of cl-ffi-gtk.
2924 (lambda* (#:key inputs outputs #:allow-other-keys)
2925 (let ((glib-source (string-append (assoc-ref inputs "cl-cffi-gtk-glib")
2926 "/share/common-lisp/sbcl-source/"
2927 "cl-cffi-gtk-glib"))
2928 (out-source (string-append (assoc-ref outputs "out")
2929 "/share/common-lisp/sbcl-source/"
2930 "cl-cffi-gtk-gobject")))
2931 (delete-file-recursively out-source)
2932 (symlink glib-source out-source)
2933 #t))))))))
2934
2935 (define-public sbcl-cl-cffi-gtk-gio
2936 (package
2937 (inherit sbcl-cl-cffi-gtk-boot0)
2938 (name "sbcl-cl-cffi-gtk-gio")
2939 (inputs
2940 `(("glib" ,glib)
2941 ("cl-cffi-gtk-glib" ,sbcl-cl-cffi-gtk-glib)
2942 ("cl-cffi-gtk-gobject" ,sbcl-cl-cffi-gtk-gobject)
2943 ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
2944 (arguments
2945 `(#:asd-file "gio/cl-cffi-gtk-gio.asd"
2946 #:phases
2947 (modify-phases %standard-phases
2948 (add-after 'unpack 'fix-paths
2949 (lambda* (#:key inputs #:allow-other-keys)
2950 (substitute* "gio/gio.init.lisp"
2951 (("libgio" all)
2952 (string-append
2953 (assoc-ref inputs "glib") "/lib/" all)))))
2954 (add-after 'install 'link-source
2955 ;; Since source is particularly heavy (16MiB+), let's reuse it
2956 ;; across the different components of cl-ffi-gtk.
2957 (lambda* (#:key inputs outputs #:allow-other-keys)
2958 (let ((glib-source (string-append (assoc-ref inputs "cl-cffi-gtk-glib")
2959 "/share/common-lisp/sbcl-source/"
2960 "cl-cffi-gtk-glib"))
2961 (out-source (string-append (assoc-ref outputs "out")
2962 "/share/common-lisp/sbcl-source/"
2963 "cl-cffi-gtk-gio")))
2964 (delete-file-recursively out-source)
2965 (symlink glib-source out-source)
2966 #t))))))))
2967
2968 (define-public sbcl-cl-cffi-gtk-cairo
2969 (package
2970 (inherit sbcl-cl-cffi-gtk-boot0)
2971 (name "sbcl-cl-cffi-gtk-cairo")
2972 (inputs
2973 `(("cairo" ,cairo)
2974 ("cl-cffi-gtk-glib" ,sbcl-cl-cffi-gtk-glib)
2975 ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
2976 (arguments
2977 `(#:asd-file "cairo/cl-cffi-gtk-cairo.asd"
2978 #:phases
2979 (modify-phases %standard-phases
2980 (add-after 'unpack 'fix-paths
2981 (lambda* (#:key inputs #:allow-other-keys)
2982 (substitute* "cairo/cairo.init.lisp"
2983 (("libcairo" all)
2984 (string-append
2985 (assoc-ref inputs "cairo") "/lib/" all)))))
2986 (add-after 'install 'link-source
2987 ;; Since source is particularly heavy (16MiB+), let's reuse it
2988 ;; across the different components of cl-ffi-gtk.
2989 (lambda* (#:key inputs outputs #:allow-other-keys)
2990 (let ((glib-source (string-append (assoc-ref inputs "cl-cffi-gtk-glib")
2991 "/share/common-lisp/sbcl-source/"
2992 "cl-cffi-gtk-glib"))
2993 (out-source (string-append (assoc-ref outputs "out")
2994 "/share/common-lisp/sbcl-source/"
2995 "cl-cffi-gtk-cairo")))
2996 (delete-file-recursively out-source)
2997 (symlink glib-source out-source)
2998 #t))))))))
2999
3000 (define-public sbcl-cl-cffi-gtk-pango
3001 (package
3002 (inherit sbcl-cl-cffi-gtk-boot0)
3003 (name "sbcl-cl-cffi-gtk-pango")
3004 (inputs
3005 `(("pango" ,pango)
3006 ("cl-cffi-gtk-glib" ,sbcl-cl-cffi-gtk-glib)
3007 ("cl-cffi-gtk-gobject" ,sbcl-cl-cffi-gtk-gobject)
3008 ("cl-cffi-gtk-cairo" ,sbcl-cl-cffi-gtk-cairo)
3009 ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
3010 (arguments
3011 `(#:asd-file "pango/cl-cffi-gtk-pango.asd"
3012 #:phases
3013 (modify-phases %standard-phases
3014 (add-after 'unpack 'fix-paths
3015 (lambda* (#:key inputs #:allow-other-keys)
3016 (substitute* "pango/pango.init.lisp"
3017 (("libpango" all)
3018 (string-append
3019 (assoc-ref inputs "pango") "/lib/" all)))))
3020 (add-after 'install 'link-source
3021 ;; Since source is particularly heavy (16MiB+), let's reuse it
3022 ;; across the different components of cl-ffi-gtk.
3023 (lambda* (#:key inputs outputs #:allow-other-keys)
3024 (let ((glib-source (string-append (assoc-ref inputs "cl-cffi-gtk-glib")
3025 "/share/common-lisp/sbcl-source/"
3026 "cl-cffi-gtk-glib"))
3027 (out-source (string-append (assoc-ref outputs "out")
3028 "/share/common-lisp/sbcl-source/"
3029 "cl-cffi-gtk-pango")))
3030 (delete-file-recursively out-source)
3031 (symlink glib-source out-source)
3032 #t))))))))
3033
3034 (define-public sbcl-cl-cffi-gtk-gdk-pixbuf
3035 (package
3036 (inherit sbcl-cl-cffi-gtk-boot0)
3037 (name "sbcl-cl-cffi-gtk-gdk-pixbuf")
3038 (inputs
3039 `(("gdk-pixbuf" ,gdk-pixbuf)
3040 ("cl-cffi-gtk-gobject" ,sbcl-cl-cffi-gtk-gobject)
3041 ("cl-cffi-gtk-glib" ,sbcl-cl-cffi-gtk-glib)
3042 ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
3043 (arguments
3044 `(#:asd-file "gdk-pixbuf/cl-cffi-gtk-gdk-pixbuf.asd"
3045 #:phases
3046 (modify-phases %standard-phases
3047 (add-after 'unpack 'fix-paths
3048 (lambda* (#:key inputs #:allow-other-keys)
3049 (substitute* "gdk-pixbuf/gdk-pixbuf.init.lisp"
3050 (("libgdk_pixbuf" all)
3051 (string-append
3052 (assoc-ref inputs "gdk-pixbuf") "/lib/" all)))))
3053 (add-after 'install 'link-source
3054 ;; Since source is particularly heavy (16MiB+), let's reuse it
3055 ;; across the different components of cl-ffi-gtk.
3056 (lambda* (#:key inputs outputs #:allow-other-keys)
3057 (let ((glib-source (string-append (assoc-ref inputs "cl-cffi-gtk-glib")
3058 "/share/common-lisp/sbcl-source/"
3059 "cl-cffi-gtk-glib"))
3060 (out-source (string-append (assoc-ref outputs "out")
3061 "/share/common-lisp/sbcl-source/"
3062 "cl-cffi-gtk-gdk-pixbuf")))
3063 (delete-file-recursively out-source)
3064 (symlink glib-source out-source)
3065 #t))))))))
3066
3067 (define-public sbcl-cl-cffi-gtk-gdk
3068 (package
3069 (inherit sbcl-cl-cffi-gtk-boot0)
3070 (name "sbcl-cl-cffi-gtk-gdk")
3071 (inputs
3072 `(("gtk" ,gtk+)
3073 ("cl-cffi-gtk-glib" ,sbcl-cl-cffi-gtk-glib)
3074 ("cl-cffi-gtk-gobject" ,sbcl-cl-cffi-gtk-gobject)
3075 ("cl-cffi-gtk-gio" ,sbcl-cl-cffi-gtk-gio)
3076 ("cl-cffi-gtk-gdk-pixbuf" ,sbcl-cl-cffi-gtk-gdk-pixbuf)
3077 ("cl-cffi-gtk-cairo" ,sbcl-cl-cffi-gtk-cairo)
3078 ("cl-cffi-gtk-pango" ,sbcl-cl-cffi-gtk-pango)
3079 ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
3080 (arguments
3081 `(#:asd-file "gdk/cl-cffi-gtk-gdk.asd"
3082 #:phases
3083 (modify-phases %standard-phases
3084 (add-after 'unpack 'fix-paths
3085 (lambda* (#:key inputs #:allow-other-keys)
3086 (substitute* "gdk/gdk.init.lisp"
3087 (("libgdk" all)
3088 (string-append
3089 (assoc-ref inputs "gtk") "/lib/" all)))
3090 (substitute* "gdk/gdk.package.lisp"
3091 (("libgtk" all)
3092 (string-append
3093 (assoc-ref inputs "gtk") "/lib/" all)))))
3094 (add-after 'install 'link-source
3095 ;; Since source is particularly heavy (16MiB+), let's reuse it
3096 ;; across the different components of cl-ffi-gtk.
3097 (lambda* (#:key inputs outputs #:allow-other-keys)
3098 (let ((glib-source (string-append (assoc-ref inputs "cl-cffi-gtk-glib")
3099 "/share/common-lisp/sbcl-source/"
3100 "cl-cffi-gtk-glib"))
3101 (out-source (string-append (assoc-ref outputs "out")
3102 "/share/common-lisp/sbcl-source/"
3103 "cl-cffi-gtk-gdk")))
3104 (delete-file-recursively out-source)
3105 (symlink glib-source out-source)
3106 #t))))))))
3107
3108 (define-public sbcl-cl-cffi-gtk
3109 (package
3110 (inherit sbcl-cl-cffi-gtk-boot0)
3111 (name "sbcl-cl-cffi-gtk")
3112 (inputs
3113 `(("cl-cffi-gtk-glib" ,sbcl-cl-cffi-gtk-glib)
3114 ("cl-cffi-gtk-gobject" ,sbcl-cl-cffi-gtk-gobject)
3115 ("cl-cffi-gtk-gio" ,sbcl-cl-cffi-gtk-gio)
3116 ("cl-cffi-gtk-gdk" ,sbcl-cl-cffi-gtk-gdk)
3117 ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
3118 (native-inputs
3119 `(("fiveam" ,sbcl-fiveam)))
3120 (arguments
3121 `(#:asd-file "gtk/cl-cffi-gtk.asd"
3122 #:test-asd-file "test/cl-cffi-gtk-test.asd"
3123 ;; TODO: Tests fail with memory fault.
3124 ;; See https://github.com/Ferada/cl-cffi-gtk/issues/24.
3125 #:tests? #f
3126 #:phases
3127 (modify-phases %standard-phases
3128 (add-after 'install 'link-source
3129 ;; Since source is particularly heavy (16MiB+), let's reuse it
3130 ;; across the different components of cl-ffi-gtk.
3131 (lambda* (#:key inputs outputs #:allow-other-keys)
3132 (let ((glib-source (string-append (assoc-ref inputs "cl-cffi-gtk-glib")
3133 "/share/common-lisp/sbcl-source/"
3134 "cl-cffi-gtk-glib"))
3135 (out-source (string-append (assoc-ref outputs "out")
3136 "/share/common-lisp/sbcl-source/"
3137 "cl-cffi-gtk")))
3138 (delete-file-recursively out-source)
3139 (symlink glib-source out-source)
3140 #t))))))))
3141
3142 (define-public cl-cffi-gtk
3143 (sbcl-package->cl-source-package sbcl-cl-cffi-gtk))
3144
3145 (define-public sbcl-cl-webkit
3146 (let ((commit "f93cb9697e8813068795fe4dc39ac950d814102d"))
3147 (package
3148 (name "sbcl-cl-webkit")
3149 (version (git-version "2.4" "3" commit))
3150 (source
3151 (origin
3152 (method git-fetch)
3153 (uri (git-reference
3154 (url "https://github.com/joachifm/cl-webkit")
3155 (commit commit)))
3156 (file-name (git-file-name "cl-webkit" version))
3157 (sha256
3158 (base32
3159 "1sjcw08kjpd5h83sms7zcq2nymddjygk9hm2rpgzrl524an9ziwc"))))
3160 (build-system asdf-build-system/sbcl)
3161 (inputs
3162 `(("cffi" ,sbcl-cffi)
3163 ("cl-cffi-gtk" ,sbcl-cl-cffi-gtk)
3164 ("webkitgtk" ,webkitgtk)))
3165 (arguments
3166 `(#:asd-file "webkit2/cl-webkit2.asd"
3167 #:asd-system-name "cl-webkit2"
3168 #:phases
3169 (modify-phases %standard-phases
3170 (add-after 'unpack 'fix-paths
3171 (lambda* (#:key inputs #:allow-other-keys)
3172 (substitute* "webkit2/webkit2.init.lisp"
3173 (("libwebkit2gtk" all)
3174 (string-append
3175 (assoc-ref inputs "webkitgtk") "/lib/" all))))))))
3176 (home-page "https://github.com/joachifm/cl-webkit")
3177 (synopsis "Binding to WebKitGTK+ for Common Lisp")
3178 (description
3179 "@command{cl-webkit} is a binding to WebKitGTK+ for Common Lisp,
3180 currently targeting WebKit version 2. The WebKitGTK+ library adds web
3181 browsing capabilities to an application, leveraging the full power of the
3182 WebKit browsing engine.")
3183 (license license:expat))))
3184
3185 (define-public cl-webkit
3186 (sbcl-package->cl-source-package sbcl-cl-webkit))
3187
3188 (define-public sbcl-lparallel
3189 (package
3190 (name "sbcl-lparallel")
3191 (version "2.8.4")
3192 (source
3193 (origin
3194 (method git-fetch)
3195 (uri (git-reference
3196 (url "https://github.com/lmj/lparallel/")
3197 (commit (string-append "lparallel-" version))))
3198 (file-name (git-file-name "lparallel" version))
3199 (sha256
3200 (base32
3201 "0g0aylrbbrqsz0ahmwhvnk4cmc2931fllbpcfgzsprwnqqd7vwq9"))))
3202 (build-system asdf-build-system/sbcl)
3203 (inputs
3204 `(("alexandria" ,sbcl-alexandria)
3205 ("bordeaux-threads" ,sbcl-bordeaux-threads)
3206 ("trivial-garbage" ,sbcl-trivial-garbage)))
3207 (home-page "https://lparallel.org/")
3208 (synopsis "Parallelism for Common Lisp")
3209 (description
3210 "@command{lparallel} is a library for parallel programming in Common
3211 Lisp, featuring:
3212
3213 @itemize
3214 @item a simple model of task submission with receiving queue,
3215 @item constructs for expressing fine-grained parallelism,
3216 @item asynchronous condition handling across thread boundaries,
3217 @item parallel versions of map, reduce, sort, remove, and many others,
3218 @item promises, futures, and delayed evaluation constructs,
3219 @item computation trees for parallelizing interconnected tasks,
3220 @item bounded and unbounded FIFO queues,
3221 @item high and low priority tasks,
3222 @item task killing by category,
3223 @item integrated timeouts.
3224 @end itemize\n")
3225 (license license:expat)))
3226
3227 (define-public cl-lparallel
3228 (sbcl-package->cl-source-package sbcl-lparallel))
3229
3230 (define-public ecl-lparallel
3231 (sbcl-package->ecl-package sbcl-lparallel))
3232
3233 (define-public sbcl-cl-markup
3234 (let ((commit "e0eb7debf4bdff98d1f49d0f811321a6a637b390"))
3235 (package
3236 (name "sbcl-cl-markup")
3237 (version (git-version "0.1" "1" commit))
3238 (source
3239 (origin
3240 (method git-fetch)
3241 (uri (git-reference
3242 (url "https://github.com/arielnetworks/cl-markup/")
3243 (commit commit)))
3244 (file-name (git-file-name "cl-markup" version))
3245 (sha256
3246 (base32
3247 "10l6k45971dl13fkdmva7zc6i453lmq9j4xax2ci6pjzlc6xjhp7"))))
3248 (build-system asdf-build-system/sbcl)
3249 (home-page "https://github.com/arielnetworks/cl-markup/")
3250 (synopsis "Markup generation library for Common Lisp")
3251 (description
3252 "A modern markup generation library for Common Lisp that features:
3253
3254 @itemize
3255 @item Fast (even faster through compiling the code)
3256 @item Safety
3257 @item Support for multiple document types (markup, xml, html, html5, xhtml)
3258 @item Output with doctype
3259 @item Direct output to stream
3260 @end itemize\n")
3261 (license license:lgpl3+))))
3262
3263 (define-public cl-markup
3264 (sbcl-package->cl-source-package sbcl-cl-markup))
3265
3266 (define-public ecl-cl-markup
3267 (sbcl-package->ecl-package sbcl-cl-markup))
3268
3269 (define-public sbcl-cl-css
3270 (let ((commit "8fe654c8f0cf95b300718101cce4feb517f78e2f"))
3271 (package
3272 (name "sbcl-cl-css")
3273 (version (git-version "0.1" "1" commit))
3274 (source
3275 (origin
3276 (method git-fetch)
3277 (uri (git-reference
3278 (url "https://github.com/inaimathi/cl-css/")
3279 (commit commit)))
3280 (file-name (git-file-name "cl-css" version))
3281 (sha256
3282 (base32
3283 "1lc42zi2sw11fl2589sc19nr5sd2p0wy7wgvgwaggxa5f3ajhsmd"))))
3284 (build-system asdf-build-system/sbcl)
3285 (home-page "https://github.com/inaimathi/cl-css/")
3286 (synopsis "Non-validating, inline CSS generator for Common Lisp")
3287 (description
3288 "This is a dead-simple, non validating, inline CSS generator for Common
3289 Lisp. Its goals are axiomatic syntax, simple implementation to support
3290 portability, and boilerplate reduction in CSS.")
3291 (license license:expat))))
3292
3293 (define-public cl-css
3294 (sbcl-package->cl-source-package sbcl-cl-css))
3295
3296 (define-public ecl-cl-css
3297 (sbcl-package->ecl-package sbcl-cl-css))
3298
3299 (define-public sbcl-portable-threads
3300 (let ((commit "c0e61a1faeb0583c80fd3f20b16cc4c555226920"))
3301 (package
3302 (name "sbcl-portable-threads")
3303 (version (git-version "2.3" "1" commit))
3304 (source
3305 (origin
3306 (method git-fetch)
3307 (uri (git-reference
3308 (url "https://github.com/binghe/portable-threads/")
3309 (commit commit)))
3310 (file-name (git-file-name "portable-threads" version))
3311 (sha256
3312 (base32
3313 "03fmxyarc0xf4kavwkfa0a2spkyfrz6hbgbi9y4q7ny5aykdyfaq"))))
3314 (build-system asdf-build-system/sbcl)
3315 (arguments
3316 `(;; Tests seem broken.
3317 #:tests? #f))
3318 (home-page "https://github.com/binghe/portable-threads")
3319 (synopsis "Portable threads (and scheduled and periodic functions) API for Common Lisp")
3320 (description
3321 "Portable Threads (and Scheduled and Periodic Functions) API for Common
3322 Lisp (from GBBopen project).")
3323 (license license:asl2.0))))
3324
3325 (define-public cl-portable-threads
3326 (sbcl-package->cl-source-package sbcl-portable-threads))
3327
3328 (define-public ecl-portable-threada
3329 (sbcl-package->ecl-package sbcl-portable-threads))
3330
3331 (define sbcl-usocket-boot0
3332 ;; usocket's test rely on usocket-server which depends on usocket itself.
3333 ;; We break this cyclic dependency with -boot0 that packages usocket.
3334 (package
3335 (name "sbcl-usocket-boot0")
3336 (version "0.8.3")
3337 (source
3338 (origin
3339 (method git-fetch)
3340 (uri (git-reference
3341 (url "https://github.com/usocket/usocket/")
3342 (commit (string-append "v" version))))
3343 (file-name (git-file-name "usocket" version))
3344 (sha256
3345 (base32
3346 "0x746wr2324l6bn7skqzgkzcbj5kd0zp2ck0c8rldrw0rzabg826"))))
3347 (build-system asdf-build-system/sbcl)
3348 (inputs
3349 `(("split-sequence" ,sbcl-split-sequence)))
3350 (arguments
3351 `(#:tests? #f
3352 #:asd-system-name "usocket"))
3353 (home-page "https://common-lisp.net/project/usocket/")
3354 (synopsis "Universal socket library for Common Lisp (server side)")
3355 (description
3356 "This library strives to provide a portable TCP/IP and UDP/IP socket
3357 interface for as many Common Lisp implementations as possible, while keeping
3358 the abstraction and portability layer as thin as possible.")
3359 (license license:expat)))
3360
3361 (define-public sbcl-usocket-server
3362 (package
3363 (inherit sbcl-usocket-boot0)
3364 (name "sbcl-usocket-server")
3365 (inputs
3366 `(("bordeaux-threads" ,sbcl-bordeaux-threads)
3367 ("usocket" ,sbcl-usocket-boot0)))
3368 (arguments
3369 '(#:asd-system-name "usocket-server"))
3370 (synopsis "Universal socket library for Common Lisp (server side)")))
3371
3372 (define-public cl-usocket-server
3373 (sbcl-package->cl-source-package sbcl-usocket-server))
3374
3375 (define-public ecl-socket-server
3376 (sbcl-package->ecl-package sbcl-usocket-server))
3377
3378 (define-public sbcl-usocket
3379 (package
3380 (inherit sbcl-usocket-boot0)
3381 (name "sbcl-usocket")
3382 (arguments
3383 ;; FIXME: Tests need network access?
3384 `(#:tests? #f))
3385 (native-inputs
3386 ;; Testing only.
3387 `(("usocket-server" ,sbcl-usocket-server)
3388 ("rt" ,sbcl-rt)))))
3389
3390 (define-public cl-usocket
3391 (sbcl-package->cl-source-package sbcl-usocket))
3392
3393 (define-public ecl-usocket
3394 (sbcl-package->ecl-package sbcl-usocket))
3395
3396 (define-public sbcl-s-xml
3397 (package
3398 (name "sbcl-s-xml")
3399 (version "3")
3400 (source
3401 (origin
3402 (method url-fetch)
3403 (uri "https://common-lisp.net/project/s-xml/s-xml.tgz")
3404 (sha256
3405 (base32
3406 "061qcr0dzshsa38s5ma4ay924cwak2nq9gy59dw6v9p0qb58nzjf"))))
3407 (build-system asdf-build-system/sbcl)
3408 (home-page "https://common-lisp.net/project/s-xml/")
3409 (synopsis "Simple XML parser implemented in Common Lisp")
3410 (description
3411 "S-XML is a simple XML parser implemented in Common Lisp. This XML
3412 parser implementation has the following features:
3413
3414 @itemize
3415 @item It works (handling many common XML usages).
3416 @item It is very small (the core is about 700 lines of code, including
3417 comments and whitespace).
3418 @item It has a core API that is simple, efficient and pure functional, much
3419 like that from SSAX (see also http://ssax.sourceforge.net).
3420 @item It supports different DOM models: an XSML-based one, an LXML-based one
3421 and a classic xml-element struct based one.
3422 @item It is reasonably time and space efficient (internally avoiding garbage
3423 generatation as much as possible).
3424 @item It does support CDATA.
3425 @item It should support the same character sets as your Common Lisp
3426 implementation.
3427 @item It does support XML name spaces.
3428 @end itemize
3429
3430 This XML parser implementation has the following limitations:
3431
3432 @itemize
3433 @item It does not support any special tags (like processing instructions).
3434 @item It is not validating, even skips DTD's all together.
3435 @end itemize\n")
3436 (license license:lgpl3+)))
3437
3438 (define-public cl-s-xml
3439 (sbcl-package->cl-source-package sbcl-s-xml))
3440
3441 (define-public ecl-s-xml
3442 (sbcl-package->ecl-package sbcl-s-xml))
3443
3444 (define-public sbcl-s-xml-rpc
3445 (package
3446 (name "sbcl-s-xml-rpc")
3447 (version "7")
3448 (source
3449 (origin
3450 (method url-fetch)
3451 (uri "https://common-lisp.net/project/s-xml-rpc/s-xml-rpc.tgz")
3452 (sha256
3453 (base32
3454 "02z7k163d51v0pzk8mn1xb6h5s6x64gjqkslhwm3a5x26k2gfs11"))))
3455 (build-system asdf-build-system/sbcl)
3456 (inputs
3457 `(("s-xml" ,sbcl-s-xml)))
3458 (home-page "https://common-lisp.net/project/s-xml-rpc/")
3459 (synopsis "Implementation of XML-RPC in Common Lisp for both client and server")
3460 (description
3461 "S-XML-RPC is an implementation of XML-RPC in Common Lisp for both
3462 client and server.")
3463 (license license:lgpl3+)))
3464
3465 (define-public cl-s-xml-rpc
3466 (sbcl-package->cl-source-package sbcl-s-xml-rpc))
3467
3468 (define-public ecl-s-xml-rpc
3469 (sbcl-package->ecl-package sbcl-s-xml-rpc))
3470
3471 (define-public sbcl-trivial-clipboard
3472 (let ((commit "5af3415d1484e6d69a1b5c178f24680d9fd01796"))
3473 (package
3474 (name "sbcl-trivial-clipboard")
3475 (version (git-version "0.0.0.0" "2" commit))
3476 (source
3477 (origin
3478 (method git-fetch)
3479 (uri (git-reference
3480 (url "https://github.com/snmsts/trivial-clipboard")
3481 (commit commit)))
3482 (file-name (git-file-name "trivial-clipboard" version))
3483 (sha256
3484 (base32
3485 "1gb515z5yq6h5548pb1fwhmb0hhq1ssyb78pvxh4alq799xipxs9"))))
3486 (build-system asdf-build-system/sbcl)
3487 (inputs
3488 `(("xclip" ,xclip)))
3489 (native-inputs
3490 `(("fiveam" ,sbcl-fiveam)))
3491 (arguments
3492 `(#:phases
3493 (modify-phases %standard-phases
3494 (add-after 'unpack 'fix-paths
3495 (lambda* (#:key inputs #:allow-other-keys)
3496 (substitute* "src/text.lisp"
3497 (("\\(executable-find \"xclip\"\\)")
3498 (string-append "(executable-find \""
3499 (assoc-ref inputs "xclip")
3500 "/bin/xclip\")"))))))))
3501 (home-page "https://github.com/snmsts/trivial-clipboard")
3502 (synopsis "Access system clipboard in Common Lisp")
3503 (description
3504 "@command{trivial-clipboard} gives access to the system clipboard.")
3505 (license license:expat))))
3506
3507 (define-public cl-trivial-clipboard
3508 (sbcl-package->cl-source-package sbcl-trivial-clipboard))
3509
3510 (define-public ecl-trivial-clipboard
3511 (sbcl-package->ecl-package sbcl-trivial-clipboard))
3512
3513 (define-public sbcl-trivial-backtrace
3514 (let ((commit "ca81c011b86424a381a7563cea3b924f24e6fbeb")
3515 (revision "1"))
3516 (package
3517 (name "sbcl-trivial-backtrace")
3518 (version (git-version "0.0.0" revision commit))
3519 (source
3520 (origin
3521 (method git-fetch)
3522 (uri (git-reference
3523 (url "https://github.com/gwkkwg/trivial-backtrace.git")
3524 (commit commit)))
3525 (file-name (git-file-name "trivial-backtrace" version))
3526 (sha256
3527 (base32 "10p41p43skj6cimdg8skjy7372s8v2xpkg8djjy0l8rm45i654k1"))))
3528 (build-system asdf-build-system/sbcl)
3529 (inputs
3530 `(("sbcl-lift" ,sbcl-lift)))
3531 (arguments
3532 `(#:phases
3533 (modify-phases %standard-phases
3534 (add-after 'check 'delete-test-results
3535 (lambda* (#:key outputs #:allow-other-keys)
3536 (let ((test-results (string-append (assoc-ref outputs "out")
3537 "/share/common-lisp/"
3538 (%lisp-type) "-source"
3539 "/trivial-backtrace"
3540 "/test-results")))
3541 (when (file-exists? test-results)
3542 (delete-file-recursively test-results)))
3543 #t)))))
3544 (home-page "https://common-lisp.net/project/trivial-backtrace/")
3545 (synopsis "Portable simple API to work with backtraces in Common Lisp")
3546 (description
3547 "On of the many things that didn't quite get into the Common Lisp
3548 standard was how to get a Lisp to output its call stack when something has
3549 gone wrong. As such, each Lisp has developed its own notion of what to
3550 display, how to display it, and what sort of arguments can be used to
3551 customize it. @code{trivial-backtrace} is a simple solution to generating a
3552 backtrace portably.")
3553 (license license:expat))))
3554
3555 (define-public cl-trivial-backtrace
3556 (sbcl-package->cl-source-package sbcl-trivial-backtrace))
3557
3558 (define-public sbcl-rfc2388
3559 (let ((commit "591bcf7e77f2c222c43953a80f8c297751dc0c4e")
3560 (revision "1"))
3561 (package
3562 (name "sbcl-rfc2388")
3563 (version (git-version "0.0.0" revision commit))
3564 (source
3565 (origin
3566 (method git-fetch)
3567 (uri (git-reference
3568 (url "https://github.com/jdz/rfc2388.git")
3569 (commit commit)))
3570 (file-name (git-file-name "rfc2388" version))
3571 (sha256
3572 (base32 "0phh5n3clhl9ji8jaxrajidn22d3f0aq87mlbfkkxlnx2pnw694k"))))
3573 (build-system asdf-build-system/sbcl)
3574 (home-page "https://github.com/jdz/rfc2388/")
3575 (synopsis "An implementation of RFC 2388 in Common Lisp")
3576 (description
3577 "This package contains an implementation of RFC 2388, which is used to
3578 process form data posted with HTTP POST method using enctype
3579 \"multipart/form-data\".")
3580 (license license:bsd-2))))
3581
3582 (define-public cl-rfc2388
3583 (sbcl-package->cl-source-package sbcl-rfc2388))
3584
3585 (define-public sbcl-md5
3586 (package
3587 (name "sbcl-md5")
3588 (version "2.0.4")
3589 (source
3590 (origin
3591 (method url-fetch)
3592 (uri (string-append
3593 "https://github.com/pmai/md5/archive/release-" version ".tar.gz"))
3594 (sha256
3595 (base32 "19yl9n0pjdz5gw4qi711lka97xcd9f81ylg434hk7jwn9f2s6w11"))))
3596 (build-system asdf-build-system/sbcl)
3597 (home-page "https://github.com/pmai/md5")
3598 (synopsis
3599 "Common Lisp implementation of the MD5 Message-Digest Algorithm (RFC 1321)")
3600 (description
3601 "This package implements The MD5 Message-Digest Algorithm, as defined in
3602 RFC 1321 by R. Rivest, published April 1992.")
3603 (license license:public-domain)))
3604
3605 (define-public cl-md5
3606 (sbcl-package->cl-source-package sbcl-md5))
3607
3608 (define-public sbcl-cl+ssl
3609 (let ((commit "141ae91416bc40f1618dc07e48429b84388aa599")
3610 (revision "1"))
3611 (package
3612 (name "sbcl-cl+ssl")
3613 (version (git-version "0.0.0" revision commit))
3614 (source
3615 (origin
3616 (method git-fetch)
3617 (uri (git-reference
3618 (url "https://github.com/cl-plus-ssl/cl-plus-ssl.git")
3619 (commit commit)))
3620 (file-name (git-file-name "cl+ssl" version))
3621 (sha256
3622 (base32 "1s0hg1h9sf8q89v0yrxmzg5f5sng29rgx3n21r9h9yql8351myan"))))
3623 (build-system asdf-build-system/sbcl)
3624 (arguments
3625 '(#:phases
3626 (modify-phases %standard-phases
3627 (add-after 'unpack 'fix-paths
3628 (lambda* (#:key inputs #:allow-other-keys)
3629 (substitute* "src/reload.lisp"
3630 (("libssl.so" all)
3631 (string-append
3632 (assoc-ref inputs "openssl") "/lib/" all))))))))
3633 (inputs
3634 `(("openssl" ,openssl)
3635 ("sbcl-cffi" ,sbcl-cffi)
3636 ("sbcl-trivial-gray-streams" ,sbcl-trivial-gray-streams)
3637 ("sbcl-flexi-streams" ,sbcl-flexi-streams)
3638 ("sbcl-bordeaux-threads" ,sbcl-bordeaux-threads)
3639 ("sbcl-trivial-garbage" ,sbcl-trivial-garbage)
3640 ("sbcl-alexandria" ,sbcl-alexandria)
3641 ("sbcl-trivial-features" ,sbcl-trivial-features)))
3642 (home-page "https://common-lisp.net/project/cl-plus-ssl/")
3643 (synopsis "Common Lisp bindings to OpenSSL")
3644 (description
3645 "This library is a fork of SSL-CMUCL. The original SSL-CMUCL source
3646 code was written by Eric Marsden and includes contributions by Jochen Schmidt.
3647 Development into CL+SSL was done by David Lichteblau.")
3648 (license license:expat))))
3649
3650 (define-public cl-cl+ssl
3651 (sbcl-package->cl-source-package sbcl-cl+ssl))
3652
3653 (define-public sbcl-kmrcl
3654 (let ((version "1.109.0")
3655 (commit "5260068b2eb735af6796740c2db4955afac21636")
3656 (revision "1"))
3657 (package
3658 (name "sbcl-kmrcl")
3659 (version (git-version version revision commit))
3660 (source
3661 (origin
3662 (method git-fetch)
3663 (uri (git-reference
3664 (url "http://git.kpe.io/kmrcl.git/")
3665 (commit commit)))
3666 (file-name (git-file-name name version))
3667 (sha256
3668 (base32 "1va7xjgzfv674bpsli674i7zj3f7wg5kxic41kz18r6hh4n52dfv"))))
3669 (build-system asdf-build-system/sbcl)
3670 (arguments
3671 ;; Tests fail with: :FORCE and :FORCE-NOT arguments not allowed in a
3672 ;; nested call to ASDF/OPERATE:OPERATE unless identically to toplevel
3673 '(#:tests? #f))
3674 (inputs
3675 `(("sbcl-rt" ,sbcl-rt)))
3676 (home-page "http://files.kpe.io/kmrcl/")
3677 (synopsis "General utilities for Common Lisp programs")
3678 (description
3679 "KMRCL is a collection of utilities used by a number of Kevin
3680 Rosenberg's CL packages.")
3681 (license license:llgpl))))
3682
3683 (define-public cl-kmrcl
3684 (sbcl-package->cl-source-package sbcl-kmrcl))
3685
3686 (define-public sbcl-cl-base64
3687 (let ((version "3.3.3"))
3688 (package
3689 (name "sbcl-cl-base64")
3690 (version version)
3691 (source
3692 (origin
3693 (method git-fetch)
3694 (uri (git-reference
3695 (url "http://git.kpe.io/cl-base64.git")
3696 (commit (string-append "v" version))))
3697 (file-name (git-file-name "cl-base64" version))
3698 (sha256
3699 (base32 "1dw6j7n6gsd2qa0p0rbsjxj00acxx3i9ca1qkgl0liy8lpnwkypl"))))
3700 (build-system asdf-build-system/sbcl)
3701 (arguments
3702 ;; Tests fail with: :FORCE and :FORCE-NOT arguments not allowed
3703 ;; in a nested call to ASDF/OPERATE:OPERATE unless identically
3704 ;; to toplevel
3705 '(#:tests? #f))
3706 (inputs
3707 `(("sbcl-ptester" ,sbcl-ptester)
3708 ("sbcl-kmrcl" ,sbcl-kmrcl)))
3709 (home-page "http://files.kpe.io/cl-base64/")
3710 (synopsis
3711 "Common Lisp package to encode and decode base64 with URI support")
3712 (description
3713 "This package provides highly optimized base64 encoding and decoding.
3714 Besides conversion to and from strings, integer conversions are supported.
3715 Encoding with Uniform Resource Identifiers is supported by using a modified
3716 encoding table that uses only URI-compatible characters.")
3717 (license license:bsd-3))))
3718
3719 (define-public cl-base64
3720 (sbcl-package->cl-source-package sbcl-cl-base64))
3721
3722 (define-public sbcl-chunga
3723 (package
3724 (name "sbcl-chunga")
3725 (version "1.1.7")
3726 (source
3727 (origin
3728 (method git-fetch)
3729 (uri (git-reference
3730 (url "https://github.com/edicl/chunga.git")
3731 (commit (string-append "v" version))))
3732 (file-name (git-file-name name version))
3733 (sha256
3734 (base32 "0jzn3nyb3f22gm983rfk99smqs3mhb9ivjmasvhq9qla5cl9pyhd"))))
3735 (build-system asdf-build-system/sbcl)
3736 (inputs
3737 `(("sbcl-trivial-gray-streams" ,sbcl-trivial-gray-streams)))
3738 (home-page "https://edicl.github.io/chunga/")
3739 (synopsis "Portable chunked streams for Common Lisp")
3740 (description
3741 "Chunga implements streams capable of chunked encoding on demand as
3742 defined in RFC 2616.")
3743 (license license:bsd-2)))
3744
3745 (define-public cl-chunga
3746 (sbcl-package->cl-source-package sbcl-chunga))
3747
3748 (define-public sbcl-cl-who
3749 (let ((version "1.1.4")
3750 (commit "2c08caa4bafba720409af9171feeba3f32e86d32")
3751 (revision "1"))
3752 (package
3753 (name "sbcl-cl-who")
3754 (version (git-version version revision commit))
3755 (source
3756 (origin
3757 (method git-fetch)
3758 (uri (git-reference
3759 (url "https://github.com/edicl/cl-who.git")
3760 (commit commit)))
3761 (file-name (git-file-name name version))
3762 (sha256
3763 (base32
3764 "0yjb6sr3yazm288m318kqvj9xk8rm9n1lpimgf65ymqv0i5agxsb"))))
3765 (build-system asdf-build-system/sbcl)
3766 (native-inputs
3767 `(("sbcl-flexi-streams" ,sbcl-flexi-streams)))
3768 (home-page "https://edicl.github.io/cl-who/")
3769 (synopsis "Yet another Lisp markup language")
3770 (description
3771 "There are plenty of Lisp Markup Languages out there - every Lisp
3772 programmer seems to write at least one during his career - and CL-WHO (where
3773 WHO means \"with-html-output\" for want of a better acronym) is probably just
3774 as good or bad as the next one.")
3775 (license license:bsd-2))))
3776
3777 (define-public cl-cl-who
3778 (sbcl-package->cl-source-package sbcl-cl-who))
3779
3780 (define-public sbcl-chipz
3781 (let ((version "0.8")
3782 (commit "75dfbc660a5a28161c57f115adf74c8a926bfc4d")
3783 (revision "1"))
3784 (package
3785 (name "sbcl-chipz")
3786 (version (git-version version revision commit))
3787 (source
3788 (origin
3789 (method git-fetch)
3790 (uri (git-reference
3791 (url "https://github.com/froydnj/chipz.git")
3792 (commit commit)))
3793 (file-name (git-file-name name version))
3794 (sha256
3795 (base32
3796 "0plx4rs39zbs4gjk77h4a2q11zpy75fh9v8hnxrvsf8fnakajhwg"))))
3797 (build-system asdf-build-system/sbcl)
3798 (native-inputs
3799 `(("sbcl-flexi-streams" ,sbcl-flexi-streams)))
3800 (home-page "http://method-combination.net/lisp/chipz/")
3801 (synopsis
3802 "Common Lisp library for decompressing deflate, zlib, gzip, and bzip2
3803 data")
3804 (description
3805 "DEFLATE data, defined in RFC1951, forms the core of popular
3806 compression formats such as zlib (RFC 1950) and gzip (RFC 1952). As such,
3807 Chipz also provides for decompressing data in those formats as well. BZIP2 is
3808 the format used by the popular compression tool bzip2.")
3809 ;; The author describes it as "MIT-like"
3810 (license license:expat))))
3811
3812 (define-public cl-chipz
3813 (sbcl-package->cl-source-package sbcl-chipz))
3814
3815 (define-public sbcl-drakma
3816 (package
3817 (name "sbcl-drakma")
3818 (version "2.0.7")
3819 (source
3820 (origin
3821 (method git-fetch)
3822 (uri (git-reference
3823 (url "https://github.com/edicl/drakma.git")
3824 (commit (string-append "v" version))))
3825 (file-name (git-file-name name version))
3826 (sha256
3827 (base32
3828 "1441idnyif9xzx3ln1p3fg36k2v9h4wasjqrzc8y52j61420qpci"))))
3829 (build-system asdf-build-system/sbcl)
3830 (inputs
3831 `(("sbcl-puri" ,sbcl-puri)
3832 ("sbcl-cl-base64" ,sbcl-cl-base64)
3833 ("sbcl-chunga" ,sbcl-chunga)
3834 ("sbcl-flexi-streams" ,sbcl-flexi-streams)
3835 ("sbcl-cl-ppcre" ,sbcl-cl-ppcre)
3836 ("sbcl-chipz" ,sbcl-chipz)
3837 ("sbcl-usocket" ,sbcl-usocket)
3838 ("sbcl-cl+ssl" ,sbcl-cl+ssl)))
3839 (native-inputs
3840 `(("sbcl-fiveam" ,sbcl-fiveam)))
3841 (home-page "https://edicl.github.io/drakma/")
3842 (synopsis "HTTP client written in Common Lisp")
3843 (description
3844 "Drakma is a full-featured HTTP client implemented in Common Lisp. It
3845 knows how to handle HTTP/1.1 chunking, persistent connections, re-usable
3846 sockets, SSL, continuable uploads, file uploads, cookies, and more.")
3847 (license license:bsd-2)))
3848
3849 (define-public cl-drakma
3850 (sbcl-package->cl-source-package sbcl-drakma))
3851
3852 (define-public ecl-drakma
3853 (sbcl-package->ecl-package sbcl-drakma))
3854
3855 (define-public sbcl-hunchentoot
3856 (package
3857 (name "sbcl-hunchentoot")
3858 (version "1.2.38")
3859 (source
3860 (origin
3861 (method git-fetch)
3862 (uri (git-reference
3863 (url "https://github.com/edicl/hunchentoot.git")
3864 (commit (string-append "v" version))))
3865 (file-name (git-file-name "hunchentoot" version))
3866 (sha256
3867 (base32 "1anpcad7w045m4rsjs1f3xdhjwx5cppq1h0vlb3q7dz81fi3i6yq"))))
3868 (build-system asdf-build-system/sbcl)
3869 (native-inputs
3870 `(("sbcl-cl-who" ,sbcl-cl-who)
3871 ("sbcl-drakma" ,sbcl-drakma)))
3872 (inputs
3873 `(("sbcl-chunga" ,sbcl-chunga)
3874 ("sbcl-cl-base64" ,sbcl-cl-base64)
3875 ("sbcl-cl-fad" ,sbcl-cl-fad)
3876 ("sbcl-cl-ppcre" ,sbcl-cl-ppcre)
3877 ("sbcl-flexi-streams" ,sbcl-flexi-streams)
3878 ("sbcl-cl+ssl" ,sbcl-cl+ssl)
3879 ("sbcl-md5" ,sbcl-md5)
3880 ("sbcl-rfc2388" ,sbcl-rfc2388)
3881 ("sbcl-trivial-backtrace" ,sbcl-trivial-backtrace)
3882 ("sbcl-usocket" ,sbcl-usocket)))
3883 (home-page "https://edicl.github.io/hunchentoot/")
3884 (synopsis "Web server written in Common Lisp")
3885 (description
3886 "Hunchentoot is a web server written in Common Lisp and at the same
3887 time a toolkit for building dynamic websites. As a stand-alone web server,
3888 Hunchentoot is capable of HTTP/1.1 chunking (both directions), persistent
3889 connections (keep-alive), and SSL.")
3890 (license license:bsd-2)))
3891
3892 (define-public cl-hunchentoot
3893 (sbcl-package->cl-source-package sbcl-hunchentoot))
3894
3895 (define-public sbcl-trivial-types
3896 (package
3897 (name "sbcl-trivial-types")
3898 (version "0.0.1")
3899 (source
3900 (origin
3901 (method git-fetch)
3902 (uri (git-reference
3903 (url "https://github.com/m2ym/trivial-types.git")
3904 (commit "ee869f2b7504d8aa9a74403641a5b42b16f47d88")))
3905 (file-name (git-file-name name version))
3906 (sha256
3907 (base32 "1s4cp9bdlbn8447q7w7f1wkgwrbvfzp20mgs307l5pxvdslin341"))))
3908 (build-system asdf-build-system/sbcl)
3909 (home-page "https://github.com/m2ym/trivial-types")
3910 (synopsis "Trivial type definitions for Common Lisp")
3911 (description
3912 "TRIVIAL-TYPES provides missing but important type definitions such as
3913 PROPER-LIST, ASSOCIATION-LIST, PROPERTY-LIST and TUPLE.")
3914 (license license:llgpl)))
3915
3916 (define-public cl-trivial-types
3917 (sbcl-package->cl-source-package sbcl-trivial-types))
3918
3919 (define-public sbcl-cl-syntax
3920 (package
3921 (name "sbcl-cl-syntax")
3922 (version "0.0.3")
3923 (source
3924 (origin
3925 (method git-fetch)
3926 (uri (git-reference
3927 (url "https://github.com/m2ym/cl-syntax.git")
3928 (commit "03f0c329bbd55b8622c37161e6278366525e2ccc")))
3929 (file-name (git-file-name "cl-syntax" version))
3930 (sha256
3931 (base32 "17ran8xp77asagl31xv8w819wafh6whwfc9p6dgx22ca537gyl4y"))))
3932 (build-system asdf-build-system/sbcl)
3933 (arguments
3934 '(#:asd-file "cl-syntax.asd"
3935 #:asd-system-name "cl-syntax"))
3936 (inputs `(("sbcl-trivial-types" ,sbcl-trivial-types)
3937 ("sbcl-named-readtables" ,sbcl-named-readtables)))
3938 (home-page "https://github.com/m2ym/cl-syntax")
3939 (synopsis "Reader Syntax Coventions for Common Lisp and SLIME")
3940 (description
3941 "CL-SYNTAX provides Reader Syntax Coventions for Common Lisp and SLIME.")
3942 (license license:llgpl)))
3943
3944 (define-public cl-syntax
3945 (sbcl-package->cl-source-package sbcl-cl-syntax))
3946
3947 (define-public sbcl-cl-annot
3948 (let ((commit "c99e69c15d935eabc671b483349a406e0da9518d")
3949 (revision "1"))
3950 (package
3951 (name "sbcl-cl-annot")
3952 (version (git-version "0.0.0" revision commit))
3953 (source
3954 (origin
3955 (method git-fetch)
3956 (uri (git-reference
3957 (url "https://github.com/m2ym/cl-annot.git")
3958 (commit commit)))
3959 (file-name (git-file-name name version))
3960 (sha256
3961 (base32 "1wq1gs9jjd5m6iwrv06c2d7i5dvqsfjcljgbspfbc93cg5xahk4n"))))
3962 (build-system asdf-build-system/sbcl)
3963 (arguments
3964 '(#:asd-file "cl-annot.asd"
3965 #:asd-system-name "cl-annot"))
3966 (inputs
3967 `(("sbcl-alexandria" ,sbcl-alexandria)))
3968 (home-page "https://github.com/m2ym/cl-annot")
3969 (synopsis "Python-like Annotation Syntax for Common Lisp.")
3970 (description
3971 "@code{cl-annot} is an general annotation library for Common Lisp.")
3972 (license license:llgpl))))
3973
3974 (define-public cl-annot
3975 (sbcl-package->cl-source-package sbcl-cl-annot))
3976
3977 (define-public sbcl-cl-syntax-annot
3978 (package
3979 (name "sbcl-cl-syntax-annot")
3980 (version "0.0.3")
3981 (source
3982 (origin
3983 (method git-fetch)
3984 (uri (git-reference
3985 (url "https://github.com/m2ym/cl-syntax.git")
3986 (commit "03f0c329bbd55b8622c37161e6278366525e2ccc")))
3987 (file-name (git-file-name name version))
3988 (sha256
3989 (base32 "17ran8xp77asagl31xv8w819wafh6whwfc9p6dgx22ca537gyl4y"))))
3990 (build-system asdf-build-system/sbcl)
3991 (arguments
3992 '(#:asd-file "cl-syntax-annot.asd"
3993 #:asd-system-name "cl-syntax-annot"))
3994 (inputs
3995 `(("sbcl-cl-syntax" ,sbcl-cl-syntax)
3996 ("sbcl-cl-annot" ,sbcl-cl-annot)))
3997 (home-page "https://github.com/m2ym/cl-syntax")
3998 (synopsis "Reader Syntax Coventions for Common Lisp and SLIME")
3999 (description
4000 "CL-SYNTAX provides Reader Syntax Coventions for Common Lisp and
4001 SLIME.")
4002 (license license:llgpl)))
4003
4004 (define-public cl-syntax-annot
4005 (sbcl-package->cl-source-package sbcl-cl-syntax-annot))
4006
4007 (define-public sbcl-cl-utilities
4008 (let ((commit "dce2d2f6387091ea90357a130fa6d13a6776884b")
4009 (revision "1"))
4010 (package
4011 (name "sbcl-cl-utilities")
4012 (version (git-version "0.0.0" revision commit))
4013 (source
4014 (origin
4015 (method url-fetch)
4016 (uri
4017 (string-append
4018 "https://gitlab.common-lisp.net/cl-utilities/cl-utilities/-/"
4019 "archive/" commit "/cl-utilities-" commit ".tar.gz"))
4020 (sha256
4021 (base32 "1r46v730yf96nk2vb24qmagv9x96xvd08abqwhf02ghgydv1a7z2"))))
4022 (build-system asdf-build-system/sbcl)
4023 (arguments
4024 '(#:asd-file "cl-utilities.asd"
4025 #:asd-system-name "cl-utilities"
4026 #:phases
4027 (modify-phases %standard-phases
4028 (add-after 'unpack 'fix-paths
4029 (lambda* (#:key inputs #:allow-other-keys)
4030 (substitute* "rotate-byte.lisp"
4031 (("in-package :cl-utilities)" all)
4032 "in-package :cl-utilities)\n\n#+sbcl\n(require :sb-rotate-byte)")))))))
4033 (home-page "http://common-lisp.net/project/cl-utilities")
4034 (synopsis "A collection of semi-standard utilities")
4035 (description
4036 "On Cliki.net <http://www.cliki.net/Common%20Lisp%20Utilities>, there
4037 is a collection of Common Lisp Utilities, things that everybody writes since
4038 they're not part of the official standard. There are some very useful things
4039 there; the only problems are that they aren't implemented as well as you'd
4040 like (some aren't implemented at all) and they aren't conveniently packaged
4041 and maintained. It takes quite a bit of work to carefully implement utilities
4042 for common use, commented and documented, with error checking placed
4043 everywhere some dumb user might make a mistake.")
4044 (license license:public-domain))))
4045
4046 (define-public cl-utilities
4047 (sbcl-package->cl-source-package sbcl-cl-utilities))
4048
4049 (define-public sbcl-map-set
4050 (let ((commit "7b4b545b68b8")
4051 (revision "1"))
4052 (package
4053 (name "sbcl-map-set")
4054 (version (git-version "0.0.0" revision commit))
4055 (source
4056 (origin
4057 (method url-fetch)
4058 (uri (string-append
4059 "https://bitbucket.org/tarballs_are_good/map-set/get/"
4060 commit ".tar.gz"))
4061 (sha256
4062 (base32 "1sx5j5qdsy5fklspfammwb16kjrhkggdavm922a9q86jm5l0b239"))))
4063 (build-system asdf-build-system/sbcl)
4064 (home-page "https://bitbucket.org/tarballs_are_good/map-set")
4065 (synopsis "Set-like data structure")
4066 (description
4067 "Implementation of a set-like data structure with constant time
4068 addition, removal, and random selection.")
4069 (license license:bsd-3))))
4070
4071 (define-public cl-map-set
4072 (sbcl-package->cl-source-package sbcl-map-set))
4073
4074 (define-public sbcl-quri
4075 (let ((commit "76b75103f21ead092c9f715512fa82441ef61185")
4076 (revision "1"))
4077 (package
4078 (name "sbcl-quri")
4079 (version (git-version "0.1.0" revision commit))
4080 (source
4081 (origin
4082 (method git-fetch)
4083 (uri (git-reference
4084 (url "https://github.com/fukamachi/quri.git")
4085 (commit commit)))
4086 (file-name (git-file-name name version))
4087 (sha256
4088 (base32 "1ccbxsgzdibmzq33mmbmmz9vwl6l03xh6nbpsh1hkdvdcl7q0a60"))))
4089 (build-system asdf-build-system/sbcl)
4090 (arguments
4091 ;; Tests fail with: Component QURI-ASD::QURI-TEST not found,
4092 ;; required by #<SYSTEM "quri">. Why?
4093 '(#:tests? #f))
4094 (native-inputs `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
4095 ("sbcl-prove" ,sbcl-prove)))
4096 (inputs `(("sbcl-babel" ,sbcl-babel)
4097 ("sbcl-split-sequence" ,sbcl-split-sequence)
4098 ("sbcl-cl-utilities" ,sbcl-cl-utilities)
4099 ("sbcl-alexandria" ,sbcl-alexandria)))
4100 (home-page "https://github.com/fukamachi/quri")
4101 (synopsis "Yet another URI library for Common Lisp")
4102 (description
4103 "QURI (pronounced \"Q-ree\") is yet another URI library for Common
4104 Lisp. It is intended to be a replacement of PURI.")
4105 (license license:bsd-3))))
4106
4107 (define-public cl-quri
4108 (sbcl-package->cl-source-package sbcl-quri))
4109
4110 (define-public sbcl-myway
4111 (let ((commit "286230082a11f879c18b93f17ca571c5f676bfb7")
4112 (revision "1"))
4113 (package
4114 (name "sbcl-myway")
4115 (version (git-version "0.1.0" revision commit))
4116 (source
4117 (origin
4118 (method git-fetch)
4119 (uri (git-reference
4120 (url "https://github.com/fukamachi/myway.git")
4121 (commit commit)))
4122 (file-name (git-file-name "myway" version))
4123 (sha256
4124 (base32 "0briia9bk3lbr0frnx39d1qg6i38dm4j6z9w3yga3d40k6df4a90"))))
4125 (build-system asdf-build-system/sbcl)
4126 (arguments
4127 ;; Tests fail with: Component MYWAY-ASD::MYWAY-TEST not found, required
4128 ;; by #<SYSTEM "myway">. Why?
4129 '(#:tests? #f))
4130 (native-inputs
4131 `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
4132 ("sbcl-prove" ,sbcl-prove)))
4133 (inputs
4134 `(("sbcl-cl-ppcre" ,sbcl-cl-ppcre)
4135 ("sbcl-quri" ,sbcl-quri)
4136 ("sbcl-map-set" ,sbcl-map-set)))
4137 (home-page "https://github.com/fukamachi/myway")
4138 (synopsis "Sinatra-compatible URL routing library for Common Lisp")
4139 (description "My Way is a Sinatra-compatible URL routing library.")
4140 (license license:llgpl))))
4141
4142 (define-public cl-myway
4143 (sbcl-package->cl-source-package sbcl-myway))
4144
4145 (define-public sbcl-xsubseq
4146 (let ((commit "5ce430b3da5cda3a73b9cf5cee4df2843034422b")
4147 (revision "1"))
4148 (package
4149 (name "sbcl-xsubseq")
4150 (version (git-version "0.0.1" revision commit))
4151 (source
4152 (origin
4153 (method git-fetch)
4154 (uri (git-reference
4155 (url "https://github.com/fukamachi/xsubseq")
4156 (commit commit)))
4157 (file-name (git-file-name name version))
4158 (sha256
4159 (base32 "1xz79q0p2mclf3sqjiwf6izdpb6xrsr350bv4mlmdlm6rg5r99px"))))
4160 (build-system asdf-build-system/sbcl)
4161 (arguments
4162 ;; Tests fail with: Component XSUBSEQ-ASD::XSUBSEQ-TEST not found,
4163 ;; required by #<SYSTEM "xsubseq">. Why?
4164 '(#:tests? #f))
4165 (native-inputs
4166 `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
4167 ("sbcl-prove" ,sbcl-prove)))
4168 (home-page "https://github.com/fukamachi/xsubseq")
4169 (synopsis "Efficient way to use \"subseq\"s in Common Lisp")
4170 (description
4171 "XSubseq provides functions to be able to handle \"subseq\"s more
4172 effieiently.")
4173 (license license:bsd-2))))
4174
4175 (define-public cl-xsubseq
4176 (sbcl-package->cl-source-package sbcl-xsubseq))
4177
4178 (define-public sbcl-smart-buffer
4179 (let ((commit "09b9a9a0b3abaa37abe9a730f5aac2643dca4e62")
4180 (revision "1"))
4181 (package
4182 (name "sbcl-smart-buffer")
4183 (version (git-version "0.0.1" revision commit))
4184 (source
4185 (origin
4186 (method git-fetch)
4187 (uri (git-reference
4188 (url "https://github.com/fukamachi/smart-buffer")
4189 (commit commit)))
4190 (file-name (git-file-name name version))
4191 (sha256
4192 (base32 "0qz1zzxx0wm5ff7gpgsq550a59p0qj594zfmm2rglj97dahj54l7"))))
4193 (build-system asdf-build-system/sbcl)
4194 (arguments
4195 ;; Tests fail with: Component SMART-BUFFER-ASD::SMART-BUFFER-TEST not
4196 ;; found, required by #<SYSTEM "smart-buffer">. Why?
4197 `(#:tests? #f))
4198 (native-inputs
4199 `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
4200 ("sbcl-prove" ,sbcl-prove)))
4201 (inputs
4202 `(("sbcl-xsubseq" ,sbcl-xsubseq)
4203 ("sbcl-flexi-streams" ,sbcl-flexi-streams)))
4204 (home-page "https://github.com/fukamachi/smart-buffer")
4205 (synopsis "Smart octets buffer")
4206 (description
4207 "Smart-buffer provides an output buffer which changes the destination
4208 depending on content size.")
4209 (license license:bsd-3))))
4210
4211 (define-public cl-smart-buffer
4212 (sbcl-package->cl-source-package sbcl-smart-buffer))
4213
4214 (define-public sbcl-fast-http
4215 (let ((commit "f9e7597191bae380503e20724fd493a24d024935")
4216 (revision "1"))
4217 (package
4218 (name "sbcl-fast-http")
4219 (version (git-version "0.2.0" revision commit))
4220 (source
4221 (origin
4222 (method git-fetch)
4223 (uri (git-reference
4224 (url "https://github.com/fukamachi/fast-http")
4225 (commit commit)))
4226 (file-name (git-file-name name version))
4227 (sha256
4228 (base32 "0qdmwv2zm0sizxdb8nnclgwl0nfjcbjaimbakavikijw7lr9b4jp"))))
4229 (build-system asdf-build-system/sbcl)
4230 (arguments
4231 ;; Tests fail with: Component FAST-HTTP-ASD::FAST-HTTP-TEST not found,
4232 ;; required by #<SYSTEM "fast-http">. Why?
4233 `(#:tests? #f))
4234 (native-inputs
4235 `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
4236 ("sbcl-prove" ,sbcl-prove)))
4237 (inputs
4238 `(("sbcl-alexandria" ,sbcl-alexandria)
4239 ("sbcl-proc-parse" ,sbcl-proc-parse)
4240 ("sbcl-xsubseq" ,sbcl-xsubseq)
4241 ("sbcl-smart-buffer" ,sbcl-smart-buffer)
4242 ("sbcl-cl-utilities" ,sbcl-cl-utilities)))
4243 (home-page "https://github.com/fukamachi/fast-http")
4244 (synopsis "HTTP request/response parser for Common Lisp")
4245 (description
4246 "@code{fast-http} is a HTTP request/response protocol parser for Common
4247 Lisp.")
4248 ;; Author specified the MIT license
4249 (license license:expat))))
4250
4251 (define-public cl-fast-http
4252 (sbcl-package->cl-source-package sbcl-fast-http))
4253
4254 (define-public sbcl-static-vectors
4255 (package
4256 (name "sbcl-static-vectors")
4257 (version "1.8.4")
4258 (source
4259 (origin
4260 (method git-fetch)
4261 (uri (git-reference
4262 (url "https://github.com/sionescu/static-vectors.git")
4263 (commit (string-append "v" version))))
4264 (file-name (git-file-name name version))
4265 (sha256
4266 (base32 "0qvf9z6bhwhm8n45fjwkm7j8dcb58szfvndky65cyn4lpdval7m1"))))
4267 (native-inputs
4268 `(("sbcl-fiveam" ,sbcl-fiveam)))
4269 (inputs
4270 `(("sbcl-cffi-grovel" ,sbcl-cffi-grovel)
4271 ("sbcl-cffi" ,sbcl-cffi)))
4272 (build-system asdf-build-system/sbcl)
4273 (home-page "https://github.com/sionescu/static-vectors")
4274 (synopsis "Allocate SIMPLE-ARRAYs in static memory")
4275 (description
4276 "With @code{static-vectors}, you can create vectors allocated in static
4277 memory.")
4278 (license license:expat)))
4279
4280 (define-public cl-static-vectors
4281 (sbcl-package->cl-source-package sbcl-static-vectors))
4282
4283 (define-public ecl-static-vectors
4284 (sbcl-package->ecl-package sbcl-static-vectors))
4285
4286 (define-public sbcl-marshal
4287 (let ((commit "eff1b15f2b0af2f26f71ad6a4dd5c4beab9299ec")
4288 (revision "1"))
4289 (package
4290 (name "sbcl-marshal")
4291 (version (git-version "1.3.0" revision commit))
4292 (source
4293 (origin
4294 (method git-fetch)
4295 (uri (git-reference
4296 (url "https://github.com/wlbr/cl-marshal.git")
4297 (commit commit)))
4298 (file-name (git-file-name name version))
4299 (sha256
4300 (base32 "08qs6fhk38xpkkjkpcj92mxx0lgy4ygrbbzrmnivdx281syr0gwh"))))
4301 (build-system asdf-build-system/sbcl)
4302 (home-page "https://github.com/wlbr/cl-marshal")
4303 (synopsis "Simple (de)serialization of Lisp datastructures")
4304 (description
4305 "Simple and fast marshalling of Lisp datastructures. Convert any object
4306 into a string representation, put it on a stream an revive it from there.
4307 Only minimal changes required to make your CLOS objects serializable.")
4308 (license license:expat))))
4309
4310 (define-public cl-marshal
4311 (sbcl-package->cl-source-package sbcl-marshal))
4312
4313 (define-public sbcl-checkl
4314 (let ((commit "80328800d047fef9b6e32dfe6bdc98396aee3cc9")
4315 (revision "1"))
4316 (package
4317 (name "sbcl-checkl")
4318 (version (git-version "0.0.0" revision commit))
4319 (source
4320 (origin
4321 (method git-fetch)
4322 (uri (git-reference
4323 (url "https://github.com/rpav/CheckL.git")
4324 (commit commit)))
4325 (file-name (git-file-name name version))
4326 (sha256
4327 (base32 "0bpisihx1gay44xmyr1dmhlwh00j0zzi04rp9fy35i95l2r4xdlx"))))
4328 (build-system asdf-build-system/sbcl)
4329 (arguments
4330 ;; Error while trying to load definition for system checkl-test from
4331 ;; pathname [...]/checkl-test.asd: The function CHECKL:DEFINE-TEST-OP
4332 ;; is undefined.
4333 '(#:tests? #f))
4334 (native-inputs
4335 `(("sbcl-fiveam" ,sbcl-fiveam)))
4336 (inputs
4337 `(("sbcl-marshal" ,sbcl-marshal)))
4338 (home-page "https://github.com/rpav/CheckL/")
4339 (synopsis "Dynamic testing for Common Lisp")
4340 (description
4341 "CheckL lets you write tests dynamically, it checks resulting values
4342 against the last run.")
4343 ;; The author specifies both LLGPL and "BSD", but the "BSD" license
4344 ;; isn't specified anywhere, so I don't know which kind. LLGPL is the
4345 ;; stronger of the two and so I think only listing this should suffice.
4346 (license license:llgpl))))
4347
4348 (define-public cl-checkl
4349 (sbcl-package->cl-source-package sbcl-checkl))
4350
4351 (define-public sbcl-fast-io
4352 (let ((commit "dc3a71db7e9b756a88781ae9c342fe9d4bbab51c")
4353 (revision "1"))
4354 (package
4355 (name "sbcl-fast-io")
4356 (version (git-version "1.0.0" revision commit))
4357 (source
4358 (origin
4359 (method git-fetch)
4360 (uri (git-reference
4361 (url "https://github.com/rpav/fast-io.git")
4362 (commit commit)))
4363 (file-name (git-file-name name version))
4364 (sha256
4365 (base32 "1jsp6xvi26ln6fdy5j5zi05xvan8jsqdhisv552dy6xg6ws8i1yq"))))
4366 (build-system asdf-build-system/sbcl)
4367 (arguments
4368 ;; Error while trying to load definition for system fast-io-test from
4369 ;; pathname [...]/fast-io-test.asd: The function CHECKL:DEFINE-TEST-OP
4370 ;; is undefined.
4371 '(#:tests? #f))
4372 (native-inputs
4373 `(("sbcl-fiveam" ,sbcl-fiveam)
4374 ("sbcl-checkl" ,sbcl-checkl)))
4375 (inputs
4376 `(("sbcl-alexandria" ,sbcl-alexandria)
4377 ("sbcl-trivial-gray-streams" ,sbcl-trivial-gray-streams)
4378 ("sbcl-static-vectors" ,sbcl-static-vectors)))
4379 (home-page "https://github.com/rpav/fast-io")
4380 (synopsis "Fast octet-vector/stream I/O for Common Lisp")
4381 (description
4382 "Fast-io is about improving performance to octet-vectors and octet
4383 streams (though primarily the former, while wrapping the latter).")
4384 ;; Author specifies this as NewBSD which is an alias
4385 (license license:bsd-3))))
4386
4387 (define-public cl-fast-io
4388 (sbcl-package->cl-source-package sbcl-fast-io))
4389
4390 (define-public sbcl-jonathan
4391 (let ((commit "1f448b4f7ac8265e56e1c02b32ce383e65316300")
4392 (revision "1"))
4393 (package
4394 (name "sbcl-jonathan")
4395 (version (git-version "0.1.0" revision commit))
4396 (source
4397 (origin
4398 (method git-fetch)
4399 (uri (git-reference
4400 (url "https://github.com/Rudolph-Miller/jonathan.git")
4401 (commit commit)))
4402 (file-name (git-file-name name version))
4403 (sha256
4404 (base32 "14x4iwz3mbag5jzzzr4sb6ai0m9r4q4kyypbq32jmsk2dx1hi807"))))
4405 (build-system asdf-build-system/sbcl)
4406 (arguments
4407 ;; Tests fail with: Component JONATHAN-ASD::JONATHAN-TEST not found,
4408 ;; required by #<SYSTEM "jonathan">. Why?
4409 `(#:tests? #f))
4410 (native-inputs
4411 `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
4412 ("sbcl-prove" ,sbcl-prove)))
4413 (inputs
4414 `(("sbcl-cl-syntax" ,sbcl-cl-syntax)
4415 ("sbcl-cl-syntax-annot" ,sbcl-cl-syntax-annot)
4416 ("sbcl-fast-io" ,sbcl-fast-io)
4417 ("sbcl-proc-parse" ,sbcl-proc-parse)
4418 ("sbcl-cl-ppcre" ,sbcl-cl-ppcre)))
4419 (home-page "https://rudolph-miller.github.io/jonathan/overview.html")
4420 (synopsis "JSON encoder and decoder")
4421 (description
4422 "High performance JSON encoder and decoder. Currently support: SBCL,
4423 CCL.")
4424 ;; Author specifies the MIT license
4425 (license license:expat))))
4426
4427 (define-public cl-jonathan
4428 (sbcl-package->cl-source-package sbcl-jonathan))
4429
4430 (define-public sbcl-http-body
4431 (let ((commit "dd01dc4f5842e3d29728552e5163acce8386eb73")
4432 (revision "1"))
4433 (package
4434 (name "sbcl-http-body")
4435 (version (git-version "0.1.0" revision commit))
4436 (source
4437 (origin
4438 (method git-fetch)
4439 (uri (git-reference
4440 (url "https://github.com/fukamachi/http-body")
4441 (commit commit)))
4442 (file-name (git-file-name name version))
4443 (sha256
4444 (base32 "1jd06snjvxcprhapgfq8sx0y5lrldkvhf206ix6d5a23dd6zcmr0"))))
4445 (build-system asdf-build-system/sbcl)
4446 (arguments
4447 ;; Tests fail with: Component HTTP-BODY-ASD::HTTP-BODY-TEST not
4448 ;; found, required by #<SYSTEM "http-body">. Why?
4449 `(#:tests? #f))
4450 (native-inputs
4451 `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
4452 ("sbcl-prove" ,sbcl-prove)))
4453 (inputs
4454 `(("sbcl-fast-http" ,sbcl-fast-http)
4455 ("sbcl-jonathan" ,sbcl-jonathan)
4456 ("sbcl-quri" ,sbcl-quri)))
4457 (home-page "https://github.com/fukamachi/http-body")
4458 (synopsis "HTTP POST data parser")
4459 (description
4460 "HTTP-Body parses HTTP POST data and returns POST parameters. It
4461 supports application/x-www-form-urlencoded, application/json, and
4462 multipart/form-data.")
4463 (license license:bsd-2))))
4464
4465 (define-public cl-http-body
4466 (sbcl-package->cl-source-package sbcl-http-body))
4467
4468 (define-public sbcl-circular-streams
4469 (let ((commit "e770bade1919c5e8533dd2078c93c3d3bbeb38df")
4470 (revision "1"))
4471 (package
4472 (name "sbcl-circular-streams")
4473 (version (git-version "0.1.0" revision commit))
4474 (source
4475 (origin
4476 (method git-fetch)
4477 (uri (git-reference
4478 (url "https://github.com/fukamachi/circular-streams")
4479 (commit commit)))
4480 (file-name (git-file-name name version))
4481 (sha256
4482 (base32 "1wpw6d5cciyqcf92f7mvihak52pd5s47kk4qq6f0r2z2as68p5rs"))))
4483 (build-system asdf-build-system/sbcl)
4484 (arguments
4485 ;; The tests depend on cl-test-more which is now prove. Prove
4486 ;; tests aren't working for some reason.
4487 `(#:tests? #f))
4488 (inputs
4489 `(("sbcl-fast-io" ,sbcl-fast-io)
4490 ("sbcl-trivial-gray-streams" ,sbcl-trivial-gray-streams)))
4491 (home-page "https://github.com/fukamachi/circular-streams")
4492 (synopsis "Circularly readable streams for Common Lisp")
4493 (description
4494 "Circular-Streams allows you to read streams circularly by wrapping real
4495 streams. Once you reach end-of-file of a stream, it's file position will be
4496 reset to 0 and you're able to read it again.")
4497 (license license:llgpl))))
4498
4499 (define-public cl-circular-streams
4500 (sbcl-package->cl-source-package sbcl-circular-streams))
4501
4502 (define-public sbcl-lack-request
4503 (let ((commit "abff8efeb0c3a848e6bb0022f2b8b7fa3a1bc88b")
4504 (revision "1"))
4505 (package
4506 (name "sbcl-lack-request")
4507 (version (git-version "0.1.0" revision commit))
4508 (source
4509 (origin
4510 (method git-fetch)
4511 (uri (git-reference
4512 (url "https://github.com/fukamachi/lack.git")
4513 (commit commit)))
4514 (file-name (git-file-name "lack-request" version))
4515 (sha256
4516 (base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85"))))
4517 (build-system asdf-build-system/sbcl)
4518 (arguments
4519 '(#:asd-file "lack-request.asd"
4520 #:asd-system-name "lack-request"
4521 #:test-asd-file "t-lack-request.asd"
4522 ;; XXX: Component :CLACK-TEST not found
4523 #:tests? #f))
4524 (native-inputs
4525 `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
4526 ("sbcl-prove" ,sbcl-prove)))
4527 (inputs
4528 `(("sbcl-quri" ,sbcl-quri)
4529 ("sbcl-http-body" ,sbcl-http-body)
4530 ("sbcl-circular-streams" ,sbcl-circular-streams)))
4531 (home-page "https://github.com/fukamachi/lack")
4532 (synopsis "Lack, the core of Clack")
4533 (description
4534 "Lack is a Common Lisp library which allows web applications to be
4535 constructed of modular components. It was originally a part of Clack, however
4536 it's going to be rewritten as an individual project since Clack v2 with
4537 performance and simplicity in mind.")
4538 (license license:llgpl))))
4539
4540 (define-public cl-lack-request
4541 (sbcl-package->cl-source-package sbcl-lack-request))
4542
4543 (define-public sbcl-local-time
4544 (let ((commit "beac054eef428552b63d4ae7820c32ffef9a3015")
4545 (revision "1"))
4546 (package
4547 (name "sbcl-local-time")
4548 (version (git-version "1.0.6" revision commit))
4549 (source
4550 (origin
4551 (method git-fetch)
4552 (uri (git-reference
4553 (url "https://github.com/dlowe-net/local-time.git")
4554 (commit commit)))
4555 (file-name (git-file-name name version))
4556 (sha256
4557 (base32 "0xhkmgxh41dg2wwlsp0h2l41jp144xn4gpxhh0lna6kh0560w2cc"))))
4558 (build-system asdf-build-system/sbcl)
4559 (arguments
4560 ;; TODO: Component :STEFIL not found, required by #<SYSTEM
4561 ;; "local-time/test">
4562 '(#:tests? #f))
4563 (native-inputs
4564 `(("stefil" ,sbcl-hu.dwim.stefil)))
4565 (inputs
4566 `(("sbcl-cl-fad" ,sbcl-cl-fad)))
4567 (home-page "https://common-lisp.net/project/local-time/")
4568 (synopsis "Time manipulation library for Common Lisp")
4569 (description
4570 "The LOCAL-TIME library is a Common Lisp library for the manipulation of
4571 dates and times. It is based almost entirely upon Erik Naggum's paper \"The
4572 Long Painful History of Time\".")
4573 (license license:expat))))
4574
4575 (define-public cl-local-time
4576 (sbcl-package->cl-source-package sbcl-local-time))
4577
4578 (define-public sbcl-lack-response
4579 (let ((commit "abff8efeb0c3a848e6bb0022f2b8b7fa3a1bc88b")
4580 (revision "1"))
4581 (package
4582 (name "sbcl-lack-response")
4583 (version (git-version "0.1.0" revision commit))
4584 (source
4585 (origin
4586 (method git-fetch)
4587 (uri (git-reference
4588 (url "https://github.com/fukamachi/lack.git")
4589 (commit commit)))
4590 (file-name (git-file-name name version))
4591 (sha256
4592 (base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85"))))
4593 (build-system asdf-build-system/sbcl)
4594 (arguments
4595 '(#:asd-file "lack-response.asd"
4596 #:asd-system-name "lack-response"
4597 ;; XXX: no tests for lack-response.
4598 #:tests? #f))
4599 (native-inputs
4600 `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
4601 ("sbcl-prove" ,sbcl-prove)))
4602 (inputs
4603 `(("sbcl-quri" ,sbcl-quri)
4604 ("sbcl-http-body" ,sbcl-http-body)
4605 ("sbcl-circular-streams" ,sbcl-circular-streams)
4606 ("sbcl-local-time" ,sbcl-local-time)))
4607 (home-page "https://github.com/fukamachi/lack")
4608 (synopsis "Lack, the core of Clack")
4609 (description
4610 "Lack is a Common Lisp library which allows web applications to be
4611 constructed of modular components. It was originally a part of Clack, however
4612 it's going to be rewritten as an individual project since Clack v2 with
4613 performance and simplicity in mind.")
4614 (license license:llgpl))))
4615
4616 (define-public cl-lack-response
4617 (sbcl-package->cl-source-package sbcl-lack-response))
4618
4619 (define-public sbcl-lack-component
4620 (let ((commit "abff8efeb0c3a848e6bb0022f2b8b7fa3a1bc88b")
4621 (revision "1"))
4622 (package
4623 (name "sbcl-lack-component")
4624 (version (git-version "0.0.0" revision commit))
4625 (source
4626 (origin
4627 (method git-fetch)
4628 (uri (git-reference
4629 (url "https://github.com/fukamachi/lack.git")
4630 (commit commit)))
4631 (file-name (git-file-name "lack-component" version))
4632 (sha256
4633 (base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85"))))
4634 (build-system asdf-build-system/sbcl)
4635 (arguments
4636 '(#:asd-file "lack-component.asd"
4637 #:asd-system-name "lack-component"
4638 #:test-asd-file "t-lack-component.asd"
4639 ;; XXX: Component :LACK-TEST not found
4640 #:tests? #f))
4641 (native-inputs
4642 `(("prove-asdf" ,sbcl-prove-asdf)))
4643 (home-page "https://github.com/fukamachi/lack")
4644 (synopsis "Lack, the core of Clack")
4645 (description
4646 "Lack is a Common Lisp library which allows web applications to be
4647 constructed of modular components. It was originally a part of Clack, however
4648 it's going to be rewritten as an individual project since Clack v2 with
4649 performance and simplicity in mind.")
4650 (license license:llgpl))))
4651
4652 (define-public cl-lack-component
4653 (sbcl-package->cl-source-package sbcl-lack-component))
4654
4655 (define-public sbcl-lack-util
4656 (let ((commit "abff8efeb0c3a848e6bb0022f2b8b7fa3a1bc88b")
4657 (revision "1"))
4658 (package
4659 (name "sbcl-lack-util")
4660 (version (git-version "0.1.0" revision commit))
4661 (source
4662 (origin
4663 (method git-fetch)
4664 (uri (git-reference
4665 (url "https://github.com/fukamachi/lack.git")
4666 (commit commit)))
4667 (file-name (git-file-name "lack-util" version))
4668 (sha256
4669 (base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85"))))
4670 (build-system asdf-build-system/sbcl)
4671 (arguments
4672 '(#:asd-file "lack-util.asd"
4673 #:asd-system-name "lack-util"
4674 #:test-asd-file "t-lack-util.asd"
4675 ;; XXX: Component :LACK-TEST not found
4676 #:tests? #f))
4677 (native-inputs
4678 `(("prove-asdf" ,sbcl-prove-asdf)))
4679 (inputs
4680 `(("sbcl-ironclad" ,sbcl-ironclad)))
4681 (home-page "https://github.com/fukamachi/lack")
4682 (synopsis "Lack, the core of Clack")
4683 (description
4684 "Lack is a Common Lisp library which allows web applications to be
4685 constructed of modular components. It was originally a part of Clack, however
4686 it's going to be rewritten as an individual project since Clack v2 with
4687 performance and simplicity in mind.")
4688 (license license:llgpl))))
4689
4690 (define-public cl-lack-util
4691 (sbcl-package->cl-source-package sbcl-lack-util))
4692
4693 (define-public sbcl-lack-middleware-backtrace
4694 (let ((commit "abff8efeb0c3a848e6bb0022f2b8b7fa3a1bc88b")
4695 (revision "1"))
4696 (package
4697 (name "sbcl-lack-middleware-backtrace")
4698 (version (git-version "0.1.0" revision commit))
4699 (source
4700 (origin
4701 (method git-fetch)
4702 (uri (git-reference
4703 (url "https://github.com/fukamachi/lack.git")
4704 (commit commit)))
4705 (file-name (git-file-name "lack-middleware-backtrace" version))
4706 (sha256
4707 (base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85"))))
4708 (build-system asdf-build-system/sbcl)
4709 (arguments
4710 '(#:asd-file "lack-middleware-backtrace.asd"
4711 #:asd-system-name "lack-middleware-backtrace"
4712 #:test-asd-file "t-lack-middleware-backtrace.asd"
4713 ;; XXX: Component :LACK not found
4714 #:tests? #f))
4715 (native-inputs
4716 `(("prove-asdf" ,sbcl-prove-asdf)))
4717 (home-page "https://github.com/fukamachi/lack")
4718 (synopsis "Lack, the core of Clack")
4719 (description
4720 "Lack is a Common Lisp library which allows web applications to be
4721 constructed of modular components. It was originally a part of Clack, however
4722 it's going to be rewritten as an individual project since Clack v2 with
4723 performance and simplicity in mind.")
4724 (license license:llgpl))))
4725
4726 (define-public cl-lack-middleware-backtrace
4727 (sbcl-package->cl-source-package sbcl-lack-middleware-backtrace))
4728
4729 (define-public sbcl-trivial-mimes
4730 (let ((commit "303f8ac0aa6ca0bc139aa3c34822e623c3723fab")
4731 (revision "1"))
4732 (package
4733 (name "sbcl-trivial-mimes")
4734 (version (git-version "1.1.0" revision commit))
4735 (source
4736 (origin
4737 (method git-fetch)
4738 (uri (git-reference
4739 (url "https://github.com/Shinmera/trivial-mimes.git")
4740 (commit commit)))
4741 (file-name (git-file-name name version))
4742 (sha256
4743 (base32 "17jxgl47r695bvsb7wi3n2ws5rp1zzgvw0zii8cy5ggw4b4ayv6m"))))
4744 (build-system asdf-build-system/sbcl)
4745 (arguments
4746 '(#:phases
4747 (modify-phases %standard-phases
4748 (add-after
4749 'unpack 'fix-paths
4750 (lambda* (#:key inputs #:allow-other-keys)
4751 (let ((anchor "#p\"/etc/mime.types\""))
4752 (substitute* "mime-types.lisp"
4753 ((anchor all)
4754 (string-append
4755 anchor "\n"
4756 "(asdf:system-relative-pathname :trivial-mimes "
4757 "\"../../share/common-lisp/" (%lisp-type)
4758 "-source/trivial-mimes/mime.types\")")))))))))
4759 (native-inputs
4760 `(("stefil" ,sbcl-hu.dwim.stefil)))
4761 (inputs
4762 `(("sbcl-cl-fad" ,sbcl-cl-fad)))
4763 (home-page "https://shinmera.github.io/trivial-mimes/")
4764 (synopsis "Tiny Common Lisp library to detect mime types in files")
4765 (description
4766 "This is a teensy library that provides some functions to determine the
4767 mime-type of a file.")
4768 (license license:artistic2.0))))
4769
4770 (define-public cl-trivial-mimes
4771 (sbcl-package->cl-source-package sbcl-trivial-mimes))
4772
4773 (define-public ecl-trivial-mimes
4774 (sbcl-package->ecl-package sbcl-trivial-mimes))
4775
4776 (define-public sbcl-lack-middleware-static
4777 (let ((commit "abff8efeb0c3a848e6bb0022f2b8b7fa3a1bc88b")
4778 (revision "1"))
4779 (package
4780 (name "sbcl-lack-middleware-static")
4781 (version (git-version "0.1.0" revision commit))
4782 (source
4783 (origin
4784 (method git-fetch)
4785 (uri (git-reference
4786 (url "https://github.com/fukamachi/lack.git")
4787 (commit commit)))
4788 (file-name (git-file-name "lack-middleware-static" version))
4789 (sha256
4790 (base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85"))))
4791 (build-system asdf-build-system/sbcl)
4792 (arguments
4793 '(#:asd-file "lack-middleware-static.asd"
4794 #:asd-system-name "lack-middleware-static"
4795 #:test-asd-file "t-lack-middleware-static.asd"
4796 ;; XXX: Component :LACK not found
4797 #:tests? #f))
4798 (native-inputs
4799 `(("prove-asdf" ,sbcl-prove-asdf)))
4800 (inputs
4801 `(("sbcl-ironclad" ,sbcl-ironclad)
4802 ("sbcl-trivial-mimes" ,sbcl-trivial-mimes)
4803 ("sbcl-local-time" ,sbcl-local-time)))
4804 (home-page "https://github.com/fukamachi/lack")
4805 (synopsis "Lack, the core of Clack")
4806 (description
4807 "Lack is a Common Lisp library which allows web applications to be
4808 constructed of modular components. It was originally a part of Clack, however
4809 it's going to be rewritten as an individual project since Clack v2 with
4810 performance and simplicity in mind.")
4811 (license license:llgpl))))
4812
4813 (define-public cl-lack-middleware-static
4814 (sbcl-package->cl-source-package sbcl-lack-middleware-static))
4815
4816 (define-public sbcl-lack
4817 (let ((commit "abff8efeb0c3a848e6bb0022f2b8b7fa3a1bc88b")
4818 (revision "1"))
4819 (package
4820 (name "sbcl-lack")
4821 (version (git-version "0.1.0" revision commit))
4822 (source
4823 (origin
4824 (method git-fetch)
4825 (uri (git-reference
4826 (url "https://github.com/fukamachi/lack.git")
4827 (commit commit)))
4828 (file-name (git-file-name "lack" version))
4829 (sha256
4830 (base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85"))))
4831 (build-system asdf-build-system/sbcl)
4832 (arguments
4833 '(#:test-asd-file "t-lack.asd"
4834 ;; XXX: Component :CLACK not found
4835 #:tests? #f))
4836 (native-inputs
4837 `(("prove-asdf" ,sbcl-prove-asdf)))
4838 (inputs
4839 `(("sbcl-lack-component" ,sbcl-lack-component)
4840 ("sbcl-lack-util" ,sbcl-lack-util)))
4841 (home-page "https://github.com/fukamachi/lack")
4842 (synopsis "Lack, the core of Clack")
4843 (description
4844 "Lack is a Common Lisp library which allows web applications to be
4845 constructed of modular components. It was originally a part of Clack, however
4846 it's going to be rewritten as an individual project since Clack v2 with
4847 performance and simplicity in mind.")
4848 (license license:llgpl))))
4849
4850 (define-public cl-lack
4851 (sbcl-package->cl-source-package sbcl-lack))
4852
4853 (define-public sbcl-ningle
4854 (let ((commit "50bd4f09b5a03a7249bd4d78265d6451563b25ad")
4855 (revision "1"))
4856 (package
4857 (name "sbcl-ningle")
4858 (version (git-version "0.3.0" revision commit))
4859 (source
4860 (origin
4861 (method git-fetch)
4862 (uri (git-reference
4863 (url "https://github.com/fukamachi/ningle.git")
4864 (commit commit)))
4865 (file-name (git-file-name name version))
4866 (sha256
4867 (base32 "1bsl8cnxhacb8p92z9n89vhk1ikmij5zavk0m2zvmj7iqm79jzgw"))))
4868 (build-system asdf-build-system/sbcl)
4869 (arguments
4870 ;; TODO: pull in clack-test
4871 '(#:tests? #f
4872 #:phases
4873 (modify-phases %standard-phases
4874 (delete 'cleanup-files)
4875 (delete 'cleanup)
4876 (add-before 'cleanup 'combine-fasls
4877 (lambda* (#:key outputs #:allow-other-keys)
4878 (let* ((out (assoc-ref outputs "out"))
4879 (lib (string-append out "/lib/sbcl"))
4880 (ningle-path (string-append lib "/ningle"))
4881 (fasl-files (find-files out "\\.fasl$")))
4882 (mkdir-p ningle-path)
4883 (let ((fasl-path (lambda (name)
4884 (string-append ningle-path
4885 "/"
4886 (basename name)
4887 "--system.fasl"))))
4888 (for-each (lambda (file)
4889 (rename-file file
4890 (fasl-path
4891 (basename file ".fasl"))))
4892 fasl-files))
4893 fasl-files)
4894 #t)))))
4895 (native-inputs
4896 `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
4897 ("sbcl-prove" ,sbcl-prove)))
4898 (inputs
4899 `(("sbcl-cl-syntax" ,sbcl-cl-syntax)
4900 ("sbcl-cl-syntax-annot" ,sbcl-cl-syntax-annot)
4901 ("sbcl-myway" ,sbcl-myway)
4902 ("sbcl-lack-request" ,sbcl-lack-request)
4903 ("sbcl-lack-response" ,sbcl-lack-response)
4904 ("sbcl-lack-component" ,sbcl-lack-component)
4905 ("sbcl-alexandria" ,sbcl-alexandria)
4906 ("sbcl-babel" ,sbcl-babel)))
4907 (home-page "https://8arrow.org/ningle/")
4908 (synopsis "Super micro framework for Common Lisp")
4909 (description
4910 "Ningle is a lightweight web application framework for Common Lisp.")
4911 (license license:llgpl))))
4912
4913 (define-public cl-ningle
4914 (sbcl-package->cl-source-package sbcl-ningle))
4915
4916 (define-public sbcl-clack
4917 (let ((commit "e3e032843bb1220ab96263c411aa7f2feb4746e0")
4918 (revision "1"))
4919 (package
4920 (name "sbcl-clack")
4921 (version (git-version "2.0.0" revision commit))
4922 (source
4923 (origin
4924 (method git-fetch)
4925 (uri (git-reference
4926 (url "https://github.com/fukamachi/clack.git")
4927 (commit commit)))
4928 (file-name (git-file-name name version))
4929 (sha256
4930 (base32 "1ymzs6qyrwhlj6cgqsnpyn6g5cbp7a3s1vgxwna20y2q7y4iacy0"))))
4931 (build-system asdf-build-system/sbcl)
4932 (inputs
4933 `(("sbcl-lack" ,sbcl-lack)
4934 ("sbcl-lack-middleware-backtrace" ,sbcl-lack-middleware-backtrace)
4935 ("sbcl-bordeaux-threads" ,sbcl-bordeaux-threads)))
4936 (home-page "https://github.com/fukamachi/clack")
4937 (synopsis "Web Application Environment for Common Lisp")
4938 (description
4939 "Clack is a web application environment for Common Lisp inspired by
4940 Python's WSGI and Ruby's Rack.")
4941 (license license:llgpl))))
4942
4943 (define-public cl-clack
4944 (sbcl-package->cl-source-package sbcl-clack))
4945
4946 (define-public sbcl-log4cl
4947 (let ((commit "611e094458504b938d49de904eab141285328c7c")
4948 (revision "1"))
4949 (package
4950 (name "sbcl-log4cl")
4951 (build-system asdf-build-system/sbcl)
4952 (version "1.1.2")
4953 (source
4954 (origin
4955 (method git-fetch)
4956 (uri (git-reference
4957 (url "https://github.com/sharplispers/log4cl")
4958 (commit commit)))
4959 (file-name (git-file-name name version))
4960 (sha256
4961 (base32
4962 "08jly0s0g26b56hhpfizxsb4j0yvbh946sd205gr42dkzv8l7dsc"))))
4963 ;; FIXME: tests require stefil, sbcl-hu.dwim.stefil wont work
4964 (arguments
4965 `(#:tests? #f))
4966 (inputs `(("bordeaux-threads" ,sbcl-bordeaux-threads)))
4967 (synopsis "Common Lisp logging framework, modeled after Log4J")
4968 (home-page "https://github.com/7max/log4cl")
4969 (description "This is a Common Lisp logging framework that can log at
4970 various levels and mix text with expressions.")
4971 (license license:asl2.0))))
4972
4973 (define-public cl-log4cl
4974 (sbcl-package->cl-source-package sbcl-log4cl))
4975
4976 (define-public ecl-log4cl
4977 (sbcl-package->ecl-package sbcl-log4cl))
4978
4979 (define-public sbcl-find-port
4980 (let ((commit "00c96a25af93a0f8681d34ec548861f2d7485478")
4981 (revision "1"))
4982 (package
4983 (name "sbcl-find-port")
4984 (build-system asdf-build-system/sbcl)
4985 (version "0.1")
4986 (home-page "https://github.com/eudoxia0/find-port")
4987 (source
4988 (origin
4989 (method git-fetch)
4990 (uri (git-reference
4991 (url home-page)
4992 (commit commit)))
4993 (file-name (git-file-name name version))
4994 (sha256
4995 (base32
4996 "0d6dzbb45jh0rx90wgs6v020k2xa87mvzas3mvfzvivjvqqlpryq"))))
4997 (native-inputs
4998 `(("fiveam" ,sbcl-fiveam)))
4999 (inputs
5000 `(("sbcl-usocket" ,sbcl-usocket)))
5001 (synopsis "Find open ports programmatically in Common Lisp")
5002 (description "This is a small Common Lisp library that finds an open
5003 port within a range.")
5004 (license license:expat))))
5005
5006 (define-public cl-find-port
5007 (sbcl-package->cl-source-package sbcl-find-port))
5008
5009 (define-public ecl-find-port
5010 (sbcl-package->ecl-package sbcl-find-port))
5011
5012 (define-public sbcl-clunit
5013 (let ((commit "6f6d72873f0e1207f037470105969384f8380628")
5014 (revision "1"))
5015 (package
5016 (name "sbcl-clunit")
5017 (version (git-version "0.2.3" revision commit))
5018 (source
5019 (origin
5020 (method git-fetch)
5021 (uri (git-reference
5022 (url "https://github.com/tgutu/clunit.git")
5023 (commit commit)))
5024 (file-name (git-file-name name version))
5025 (sha256
5026 (base32
5027 "1idf2xnqzlhi8rbrqmzpmb3i1l6pbdzhhajkmhwbp6qjkmxa4h85"))))
5028 (build-system asdf-build-system/sbcl)
5029 (synopsis "CLUnit is a Common Lisp unit testing framework")
5030 (description
5031 "CLUnit is a Common Lisp unit testing framework. It is designed
5032 to be easy to use so that you can quickly start testing. CLUnit
5033 provides a rich set of features aimed at improving your unit testing
5034 experience.")
5035 (home-page "https://tgutu.github.io/clunit/")
5036 ;; MIT License
5037 (license license:expat))))
5038
5039 (define-public cl-clunit
5040 (sbcl-package->cl-source-package sbcl-clunit))
5041
5042 (define-public ecl-clunit
5043 (sbcl-package->ecl-package sbcl-clunit))
5044
5045 (define-public sbcl-py4cl
5046 (let ((commit "4c8a2b0814fd311f978964f825ce012290f60136")
5047 (revision "1"))
5048 (package
5049 (name "sbcl-py4cl")
5050 (version (git-version "0.0.0" revision commit))
5051 (source
5052 (origin
5053 (method git-fetch)
5054 (uri (git-reference
5055 (url "https://github.com/bendudson/py4cl.git")
5056 (commit commit)))
5057 (file-name (git-file-name name version))
5058 (sha256
5059 (base32
5060 "15mk7qdqjkj56gdnbyrdyz6r7m1h26ldvn6ch96pmvg5vmr1m45r"))
5061 (modules '((guix build utils)))))
5062 (build-system asdf-build-system/sbcl)
5063 (native-inputs
5064 `(("sbcl-clunit" ,sbcl-clunit)))
5065 (inputs
5066 `(("sbcl-trivial-garbage" ,sbcl-trivial-garbage)))
5067 (propagated-inputs
5068 ;; This package doesn't do anything without python available
5069 `(("python" ,python)
5070 ;; For multi-dimensional array support
5071 ("python-numpy" ,python-numpy)))
5072 (arguments
5073 '(#:phases
5074 (modify-phases %standard-phases
5075 (add-after 'unpack 'replace-*base-directory*-var
5076 (lambda* (#:key outputs #:allow-other-keys)
5077 ;; In the ASD, the author makes an attempt to
5078 ;; programatically determine the location of the
5079 ;; source-code so lisp can call into "py4cl.py". We can
5080 ;; hard-code this since we know where this file will
5081 ;; reside.
5082 (substitute* "src/callpython.lisp"
5083 (("py4cl/config:\\*base-directory\\*")
5084 (string-append
5085 "\""
5086 (assoc-ref outputs "out")
5087 "/share/common-lisp/sbcl-source/py4cl/"
5088 "\""))))))))
5089 (synopsis "Call python from Common Lisp")
5090 (description
5091 "Py4CL is a bridge between Common Lisp and Python, which enables Common
5092 Lisp to interact with Python code. It uses streams to communicate with a
5093 separate python process, the approach taken by cl4py. This is different to
5094 the CFFI approach used by burgled-batteries, but has the same goal.")
5095 (home-page "https://github.com/bendudson/py4cl")
5096 ;; MIT License
5097 (license license:expat))))
5098
5099 (define-public cl-py4cl
5100 (sbcl-package->cl-source-package sbcl-py4cl))
5101
5102 (define-public ecl-py4cl
5103 (sbcl-package->ecl-package sbcl-py4cl))
5104
5105 (define-public sbcl-parse-declarations
5106 (let ((commit "549aebbfb9403a7fe948654126b9c814f443f4f2")
5107 (revision "1"))
5108 (package
5109 (name "sbcl-parse-declarations")
5110 (version (git-version "1.0.0" revision commit))
5111 (source
5112 (origin
5113 (method git-fetch)
5114 (uri (git-reference
5115 (url (string-append
5116 "https://gitlab.common-lisp.net/parse-declarations/"
5117 "parse-declarations.git"))
5118 (commit commit)))
5119 (file-name (git-file-name name version))
5120 (sha256
5121 (base32 "03g5qks4c59nmxa48pbslxkfh77h8hn8566jddp6m9pl15dzzpxd"))))
5122 (build-system asdf-build-system/sbcl)
5123 (arguments
5124 `(#:asd-file "parse-declarations-1.0.asd"
5125 #:asd-system-name "parse-declarations-1.0"))
5126 (home-page "https://common-lisp.net/project/parse-declarations/")
5127 (synopsis "Parse, filter, and build declarations")
5128 (description
5129 "Parse-Declarations is a Common Lisp library to help writing
5130 macros which establish bindings. To be semantically correct, such
5131 macros must take user declarations into account, as these may affect
5132 the bindings they establish. Yet the ANSI standard of Common Lisp does
5133 not provide any operators to work with declarations in a convenient,
5134 high-level way. This library provides such operators.")
5135 ;; MIT License
5136 (license license:expat))))
5137
5138 (define-public cl-parse-declarations
5139 (sbcl-package->cl-source-package sbcl-parse-declarations))
5140
5141 (define-public ecl-parse-declarations
5142 (sbcl-package->ecl-package sbcl-parse-declarations))
5143
5144 (define-public sbcl-cl-quickcheck
5145 (let ((commit "807b2792a30c883a2fbecea8e7db355b50ba662f")
5146 (revision "1"))
5147 (package
5148 (name "sbcl-cl-quickcheck")
5149 (version (git-version "0.0.4" revision commit))
5150 (source
5151 (origin
5152 (method git-fetch)
5153 (uri (git-reference
5154 (url "https://github.com/mcandre/cl-quickcheck.git")
5155 (commit commit)))
5156 (file-name (git-file-name name version))
5157 (sha256
5158 (base32
5159 "165lhypq5xkcys6hvzb3jq7ywnmqvzaflda29qk2cbs3ggas4767"))))
5160 (build-system asdf-build-system/sbcl)
5161 (synopsis
5162 "Common Lisp port of the QuickCheck unit test framework")
5163 (description
5164 "Common Lisp port of the QuickCheck unit test framework")
5165 (home-page "https://github.com/mcandre/cl-quickcheck")
5166 ;; MIT
5167 (license license:expat))))
5168
5169 (define-public cl-cl-quickcheck
5170 (sbcl-package->cl-source-package sbcl-cl-quickcheck))
5171
5172 (define-public ecl-cl-quickcheck
5173 (sbcl-package->ecl-package sbcl-cl-quickcheck))
5174
5175 (define-public sbcl-burgled-batteries3
5176 (let ((commit "f65f454d13bb6c40e17e9ec62e41eb5069e09760")
5177 (revision "2"))
5178 (package
5179 (name "sbcl-burgled-batteries3")
5180 (version (git-version "0.0.0" revision commit))
5181 (source
5182 (origin
5183 (method git-fetch)
5184 (uri (git-reference
5185 (url "https://github.com/snmsts/burgled-batteries3.git")
5186 (commit commit)))
5187 (file-name (git-file-name name version))
5188 (sha256
5189 (base32
5190 "1nzn7jawrfajyzwfnzrg2cmn9xxadcqh4szbpg0jggkhdkdzz4wa"))))
5191 (build-system asdf-build-system/sbcl)
5192 (arguments
5193 `(#:tests? #f
5194 #:modules (((guix build python-build-system) #:select (python-version))
5195 ,@%asdf-build-system-modules)
5196 #:imported-modules ((guix build python-build-system)
5197 ,@%asdf-build-system-modules)
5198 #:phases
5199 (modify-phases (@ (guix build asdf-build-system) %standard-phases)
5200 (add-after 'unpack 'set-*cpython-include-dir*-var
5201 (lambda* (#:key inputs #:allow-other-keys)
5202 (let ((python (assoc-ref inputs "python")))
5203 (setenv "BB_PYTHON3_INCLUDE_DIR"
5204 (string-append python "/include/python"
5205 (python-version python)
5206 "m"))
5207 (setenv "BB_PYTHON3_DYLIB"
5208 (string-append python "/lib/libpython3.so"))
5209 #t))))))
5210 (native-inputs
5211 `(("sbcl-cl-fad" ,sbcl-cl-fad)
5212 ("sbcl-lift" ,sbcl-lift)
5213 ("sbcl-cl-quickcheck" ,sbcl-cl-quickcheck)))
5214 (inputs
5215 `(("python" ,python)
5216 ("sbcl-cffi" ,sbcl-cffi)
5217 ("sbcl-cffi-grovel" ,sbcl-cffi-grovel)
5218 ("sbcl-alexandria" , sbcl-alexandria)
5219 ("sbcl-parse-declarations-1.0" ,sbcl-parse-declarations)
5220 ("sbcl-trivial-garbage" ,sbcl-trivial-garbage)))
5221 (synopsis "Bridge between Python and Lisp (FFI bindings, etc.)")
5222 (description
5223 "This package provides a shim between Python3 (specifically, the
5224 CPython implementation of Python) and Common Lisp.")
5225 (home-page "https://github.com/snmsts/burgled-batteries3")
5226 (license license:expat))))
5227
5228 (define-public cl-burgled-batteries3
5229 (sbcl-package->cl-source-package sbcl-burgled-batteries3))
5230
5231 (define-public ecl-burgled-batteries3
5232 (sbcl-package->ecl-package sbcl-burgled-batteries3))
5233
5234 (define-public sbcl-metabang-bind
5235 (let ((commit "c93b7f7e1c18c954c2283efd6a7fdab36746ab5e")
5236 (revision "1"))
5237 (package
5238 (name "sbcl-metabang-bind")
5239 (version (git-version "0.8.0" revision commit))
5240 (source
5241 (origin
5242 (method git-fetch)
5243 (uri (git-reference
5244 (url "https://github.com/gwkkwg/metabang-bind.git")
5245 (commit commit)))
5246 (file-name (git-file-name name version))
5247 (sha256
5248 (base32
5249 "0hd0kr91795v77akpbcyqiss9p0p7ypa9dznrllincnmgvsxlmf0"))))
5250 (build-system asdf-build-system/sbcl)
5251 (native-inputs
5252 `(("sbcl-lift" ,sbcl-lift)))
5253 (synopsis "Macro that generalizes @code{multiple-value-bind} etc.")
5254 (description
5255 "Bind extends the idea of of let and destructing to provide a uniform
5256 syntax for all your accessor needs. It combines @code{let},
5257 @code{destructuring-bind}, @code{with-slots}, @code{with-accessors}, structure
5258 editing, property or association-lists, and @code{multiple-value-bind} and a
5259 whole lot more into a single form.")
5260 (home-page "https://common-lisp.net/project/metabang-bind/")
5261 ;; MIT License
5262 (license license:expat))))
5263
5264 (define-public cl-metabang-bind
5265 (sbcl-package->cl-source-package sbcl-metabang-bind))
5266
5267 (define-public ecl-metabang-bind
5268 (sbcl-package->ecl-package sbcl-metabang-bind))
5269
5270 (define-public sbcl-fare-utils
5271 (let ((commit "66e9c6f1499140bc00ccc22febf2aa528cbb5724")
5272 (revision "1"))
5273 (package
5274 (name "sbcl-fare-utils")
5275 (version (git-version "1.0.0.5" revision commit))
5276 (source
5277 (origin
5278 (method git-fetch)
5279 (uri
5280 (git-reference
5281 (url
5282 "https://gitlab.common-lisp.net/frideau/fare-utils.git")
5283 (commit commit)))
5284 (file-name (git-file-name name version))
5285 (sha256
5286 (base32
5287 "01wsr1aap3jdzhn4hrqjbhsjx6qci9dbd3gh4gayv1p49rbg8aqr"))))
5288 (build-system asdf-build-system/sbcl)
5289 (arguments
5290 `(#:test-asd-file "test/fare-utils-test.asd"))
5291 (native-inputs
5292 `(("sbcl-hu.dwim.stefil" ,sbcl-hu.dwim.stefil)))
5293 (synopsis "Collection of utilities and data structures")
5294 (description
5295 "fare-utils is a small collection of utilities. It contains a lot of
5296 basic everyday functions and macros.")
5297 (home-page "https://gitlab.common-lisp.net/frideau/fare-utils")
5298 ;; MIT License
5299 (license license:expat))))
5300
5301 (define-public cl-fare-utils
5302 (sbcl-package->cl-source-package sbcl-fare-utils))
5303
5304 (define-public ecl-fare-utils
5305 (sbcl-package->ecl-package sbcl-fare-utils))
5306
5307 (define-public sbcl-trivial-utf-8
5308 (let ((commit "4d427cfbb1c452436a0efb71c3205c9da67f718f")
5309 (revision "1"))
5310 (package
5311 (name "sbcl-trivial-utf-8")
5312 (version (git-version "0.0.0" revision commit))
5313 (source
5314 (origin
5315 (method git-fetch)
5316 (uri
5317 (git-reference
5318 (url (string-append "https://gitlab.common-lisp.net/"
5319 "trivial-utf-8/trivial-utf-8.git"))
5320 (commit commit)))
5321 (file-name (git-file-name name version))
5322 (sha256
5323 (base32
5324 "1jz27gz8gvqdmvp3k9bxschs6d5b3qgk94qp2bj6nv1d0jc3m1l1"))))
5325 (arguments
5326 ;; Guix incorrectly assumes the "8" is part of the version
5327 ;; number and lobs it off.
5328 `(#:asd-file "trivial-utf-8.asd"
5329 #:asd-system-name "trivial-utf-8"))
5330 (build-system asdf-build-system/sbcl)
5331 (synopsis "UTF-8 input/output library")
5332 (description
5333 "The Babel library solves a similar problem while understanding more
5334 encodings. Trivial UTF-8 was written before Babel existed, but for new
5335 projects you might be better off going with Babel. The one plus that Trivial
5336 UTF-8 has is that it doesn't depend on any other libraries.")
5337 (home-page "https://common-lisp.net/project/trivial-utf-8/")
5338 (license license:bsd-3))))
5339
5340 (define-public cl-trivial-utf-8
5341 (sbcl-package->cl-source-package sbcl-trivial-utf-8))
5342
5343 (define-public ecl-trivial-utf-8
5344 (sbcl-package->ecl-package sbcl-trivial-utf-8))
5345
5346 (define-public sbcl-idna
5347 (package
5348 (name "sbcl-idna")
5349 (build-system asdf-build-system/sbcl)
5350 (version "0.2.2")
5351 (home-page "https://github.com/antifuchs/idna")
5352 (source
5353 (origin
5354 (method git-fetch)
5355 (uri (git-reference
5356 (url home-page)
5357 (commit version)))
5358 (file-name (git-file-name name version))
5359 (sha256
5360 (base32
5361 "00nbr3mffxhlq14gg9d16pa6691s4qh35inyw76v906s77khm5a2"))))
5362 (inputs
5363 `(("split-sequence" ,sbcl-split-sequence)))
5364 (synopsis "IDNA string encoding and decoding routines for Common Lisp")
5365 (description "This Common Lisp library provides string encoding and
5366 decoding routines for IDNA, the International Domain Names in Applications.")
5367 (license license:expat)))
5368
5369 (define-public cl-idna
5370 (sbcl-package->cl-source-package sbcl-idna))
5371
5372 (define-public ecl-idna
5373 (sbcl-package->ecl-package sbcl-idna))
5374
5375 (define-public sbcl-swap-bytes
5376 (package
5377 (name "sbcl-swap-bytes")
5378 (build-system asdf-build-system/sbcl)
5379 (version "1.2")
5380 (home-page "https://github.com/sionescu/swap-bytes")
5381 (source
5382 (origin
5383 (method git-fetch)
5384 (uri (git-reference
5385 (url home-page)
5386 (commit (string-append "v" version))))
5387 (file-name (git-file-name name version))
5388 (sha256
5389 (base32
5390 "1hw1v1lw26rifyznpnj1csphha9jgzwpiic16ni3pvs6hcsni9rz"))))
5391 (inputs
5392 `(("trivial-features" ,sbcl-trivial-features)))
5393 (native-inputs
5394 `(("fiveam" ,sbcl-fiveam)))
5395 (synopsis "Efficient endianness conversion for Common Lisp")
5396 (description "This Common Lisp library provides optimized byte-swapping
5397 primitives. The library can change endianness of unsigned integers of length
5398 1/2/4/8. Very useful in implementing various network protocols and file
5399 formats.")
5400 (license license:expat)))
5401
5402 (define-public cl-swap-bytes
5403 (sbcl-package->cl-source-package sbcl-swap-bytes))
5404
5405 (define-public ecl-swap-bytes
5406 (sbcl-package->ecl-package sbcl-swap-bytes))
5407
5408 (define-public sbcl-iolib.asdf
5409 ;; Latest release is from June 2017.
5410 (let ((commit "7f5ea3a8457a29d224b24653c2b3657fb1898021")
5411 (revision "2"))
5412 (package
5413 (name "sbcl-iolib.asdf")
5414 (build-system asdf-build-system/sbcl)
5415 (version (git-version "0.8.3" revision commit))
5416 (home-page "https://github.com/sionescu/iolib")
5417 (source
5418 (origin
5419 (method git-fetch)
5420 (uri (git-reference
5421 (url home-page)
5422 (commit commit)))
5423 (file-name (git-file-name name version))
5424 (sha256
5425 (base32
5426 "1bg5w7lm61hqk4b0svmri8a590q36z76jfa0sdgzb39r98c04w12"))))
5427 (inputs
5428 `(("alexandria" ,sbcl-alexandria)))
5429 (arguments
5430 '(#:asd-file "iolib.asdf.asd"))
5431 (synopsis "ASDF component classes for IOLib, a Common Lisp I/O library")
5432 (description "IOlib is to be a better and more modern I/O library than
5433 the standard Common Lisp library. It contains a socket library, a DNS
5434 resolver, an I/O multiplexer(which supports @code{select(2)}, @code{epoll(4)}
5435 and @code{kqueue(2)}), a pathname library and file-system utilities.")
5436 (license license:expat))))
5437
5438 (define-public sbcl-iolib.conf
5439 (package
5440 (inherit sbcl-iolib.asdf)
5441 (name "sbcl-iolib.conf")
5442 (inputs
5443 `(("iolib.asdf" ,sbcl-iolib.asdf)))
5444 (arguments
5445 '(#:asd-file "iolib.conf.asd"))
5446 (synopsis "Compile-time configuration for IOLib, a Common Lisp I/O library")))
5447
5448 (define-public sbcl-iolib.common-lisp
5449 (package
5450 (inherit sbcl-iolib.asdf)
5451 (name "sbcl-iolib.common-lisp")
5452 (inputs
5453 `(("iolib.asdf" ,sbcl-iolib.asdf)
5454 ("iolib.conf" ,sbcl-iolib.conf)))
5455 (arguments
5456 '(#:asd-file "iolib.common-lisp.asd"))
5457 (synopsis "Slightly modified Common Lisp for IOLib, a Common Lisp I/O library")))
5458
5459 (define-public sbcl-iolib.base
5460 (package
5461 (inherit sbcl-iolib.asdf)
5462 (name "sbcl-iolib.base")
5463 (inputs
5464 `(("iolib.asdf" ,sbcl-iolib.asdf)
5465 ("iolib.conf" ,sbcl-iolib.conf)
5466 ("iolib.common-lisp" ,sbcl-iolib.common-lisp)
5467 ("split-sequence" ,sbcl-split-sequence)))
5468 (arguments
5469 '(#:asd-file "iolib.base.asd"))
5470 (synopsis "Base package for IOLib, a Common Lisp I/O library")))
5471
5472 (define-public sbcl-iolib.grovel
5473 (package
5474 (inherit sbcl-iolib.asdf)
5475 (name "sbcl-iolib.grovel")
5476 (inputs
5477 `(("iolib.asdf" ,sbcl-iolib.asdf)
5478 ("iolib.conf" ,sbcl-iolib.conf)
5479 ("iolib.base", sbcl-iolib.base)
5480 ("cffi", sbcl-cffi)))
5481 (arguments
5482 '(#:asd-file "iolib.grovel.asd"
5483 #:phases
5484 (modify-phases %standard-phases
5485 (add-after 'install 'install-header
5486 (lambda* (#:key outputs #:allow-other-keys)
5487 ;; This header is required by sbcl-iolib.
5488 (install-file "src/grovel/grovel-common.h"
5489 (string-append (assoc-ref outputs "out")
5490 "/lib/sbcl"))
5491 #t)))))
5492 (synopsis "CFFI Groveller for IOLib, a Common Lisp I/O library")))
5493
5494 (define sbcl-iolib+syscalls
5495 (package
5496 (inherit sbcl-iolib.asdf)
5497 (name "sbcl-iolib+syscalls")
5498 (inputs
5499 `(("iolib.asdf" ,sbcl-iolib.asdf)
5500 ("iolib.conf" ,sbcl-iolib.conf)
5501 ("cffi-grovel" ,sbcl-cffi-grovel)
5502 ("iolib.base" ,sbcl-iolib.base)
5503 ("bordeaux-threads" ,sbcl-bordeaux-threads)
5504 ("idna" ,sbcl-idna)
5505 ("swap-bytes" ,sbcl-swap-bytes)
5506 ("libfixposix" ,libfixposix)
5507 ("cffi" ,sbcl-cffi)))
5508 (native-inputs
5509 `(("fiveam" ,sbcl-fiveam)))
5510 (arguments
5511 '(#:asd-file "iolib.asd"
5512 #:asd-system-name "iolib/syscalls"
5513 #:phases
5514 (modify-phases %standard-phases
5515 (add-after 'unpack 'fix-paths
5516 (lambda* (#:key inputs #:allow-other-keys)
5517 (substitute* "src/syscalls/ffi-functions-unix.lisp"
5518 (("\\(:default \"libfixposix\"\\)")
5519 (string-append
5520 "(:default \""
5521 (assoc-ref inputs "libfixposix") "/lib/libfixposix\")")))
5522 ;; Socket tests need Internet access, disable them.
5523 (substitute* "iolib.asd"
5524 (("\\(:file \"sockets\" :depends-on \\(\"pkgdcl\" \"defsuites\"\\)\\)")
5525 "")))))))
5526 (synopsis "Common Lisp I/O library")))
5527
5528 (define sbcl-iolib+multiplex
5529 (package
5530 (inherit sbcl-iolib+syscalls)
5531 (name "sbcl-iolib+multiplex")
5532 (inputs
5533 `(("iolib+syscalls" ,sbcl-iolib+syscalls)
5534 ,@(package-inputs sbcl-iolib+syscalls)))
5535 (arguments
5536 (substitute-keyword-arguments (package-arguments sbcl-iolib+syscalls)
5537 ((#:asd-system-name _) "iolib/multiplex")))))
5538
5539 (define sbcl-iolib+streams
5540 (package
5541 (inherit sbcl-iolib+syscalls)
5542 (name "sbcl-iolib+streams")
5543 (inputs
5544 `(("iolib+multiplex" ,sbcl-iolib+multiplex)
5545 ,@(package-inputs sbcl-iolib+syscalls)))
5546 (arguments
5547 (substitute-keyword-arguments (package-arguments sbcl-iolib+syscalls)
5548 ((#:asd-system-name _) "iolib/streams")))))
5549
5550 (define sbcl-iolib+sockets
5551 (package
5552 (inherit sbcl-iolib+syscalls)
5553 (name "sbcl-iolib+sockets")
5554 (inputs
5555 `(("iolib+syscalls" ,sbcl-iolib+syscalls)
5556 ("iolib+streams" ,sbcl-iolib+streams)
5557 ,@(package-inputs sbcl-iolib+syscalls)))
5558 (arguments
5559 (substitute-keyword-arguments (package-arguments sbcl-iolib+syscalls)
5560 ((#:asd-system-name _) "iolib/sockets")))))
5561
5562 (define-public sbcl-iolib
5563 (package
5564 (inherit sbcl-iolib+syscalls)
5565 (name "sbcl-iolib")
5566 (inputs
5567 `(("iolib+multiplex" ,sbcl-iolib+multiplex)
5568 ("iolib+streams" ,sbcl-iolib+streams)
5569 ("iolib+sockets" ,sbcl-iolib+sockets)
5570 ,@(package-inputs sbcl-iolib+syscalls)))
5571 (arguments
5572 (substitute-keyword-arguments (package-arguments sbcl-iolib+syscalls)
5573 ((#:asd-system-name _) "iolib")))))
5574
5575 (define-public cl-iolib
5576 (sbcl-package->cl-source-package sbcl-iolib))
5577
5578 (define-public sbcl-ieee-floats
5579 (let ((commit "566b51a005e81ff618554b9b2f0b795d3b29398d")
5580 (revision "1"))
5581 (package
5582 (name "sbcl-ieee-floats")
5583 (build-system asdf-build-system/sbcl)
5584 (version (git-version "20170924" revision commit))
5585 (home-page "https://github.com/marijnh/ieee-floats/")
5586 (source
5587 (origin
5588 (method git-fetch)
5589 (uri (git-reference
5590 (url home-page)
5591 (commit commit)))
5592 (file-name (git-file-name name version))
5593 (sha256
5594 (base32
5595 "1xyj49j9x3lc84cv3dhbf9ja34ywjk1c46dklx425fxw9mkwm83m"))))
5596 (native-inputs
5597 `(("fiveam" ,sbcl-fiveam)))
5598 (synopsis "IEEE 754 binary representation for floats in Common Lisp")
5599 (description "This is a Common Lisp library that converts
5600 floating point values to IEEE 754 binary representation.")
5601 (license license:bsd-3))))
5602
5603 (define-public cl-ieee-floats
5604 (sbcl-package->cl-source-package sbcl-ieee-floats))
5605
5606 (define sbcl-closure-common
5607 (let ((commit "e3c5f5f454b72b01b89115e581c3c52a7e201e5c")
5608 (revision "1"))
5609 (package
5610 (name "sbcl-closure-common")
5611 (build-system asdf-build-system/sbcl)
5612 (version (git-version "20101006" revision commit))
5613 (home-page "https://common-lisp.net/project/cxml/")
5614 (source
5615 (origin
5616 (method git-fetch)
5617 (uri (git-reference
5618 (url "https://github.com/sharplispers/closure-common")
5619 (commit commit)))
5620 (file-name (git-file-name name version))
5621 (sha256
5622 (base32
5623 "0k5r2qxn122pxi301ijir3nayi9sg4d7yiy276l36qmzwhp4mg5n"))))
5624 (inputs
5625 `(("trivial-gray-streams" ,sbcl-trivial-gray-streams)
5626 ("babel" ,sbcl-babel)))
5627 (synopsis "Support Common Lisp library for CXML")
5628 (description "Closure-common is an internal helper library. The name
5629 Closure is a reference to the web browser it was originally written for.")
5630 ;; TODO: License?
5631 (license #f))))
5632
5633 (define-public sbcl-cxml+xml
5634 (let ((commit "00b22bf4c4cf11c993d5866fae284f95ab18e6bf")
5635 (revision "1"))
5636 (package
5637 (name "sbcl-cxml+xml")
5638 (build-system asdf-build-system/sbcl)
5639 (version (git-version "0.0.0" revision commit))
5640 (home-page "https://common-lisp.net/project/cxml/")
5641 (source
5642 (origin
5643 (method git-fetch)
5644 (uri (git-reference
5645 (url "https://github.com/sharplispers/cxml")
5646 (commit commit)))
5647 (file-name (git-file-name name version))
5648 (sha256
5649 (base32
5650 "13kif7rf3gqdycsk9zq0d7y0g9y81krkl0z87k0p2fkbjfgrph37"))))
5651 (inputs
5652 `(("closure-common" ,sbcl-closure-common)
5653 ("puri" ,sbcl-puri)
5654 ("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
5655 (arguments
5656 `(#:asd-file "cxml.asd"
5657 #:asd-system-name "cxml/xml"))
5658 (synopsis "Common Lisp XML parser")
5659 (description "CXML implements a namespace-aware, validating XML 1.0
5660 parser as well as the DOM Level 2 Core interfaces. Two parser interfaces are
5661 offered, one SAX-like, the other similar to StAX.")
5662 (license license:llgpl))))
5663
5664 (define sbcl-cxml+dom
5665 (package
5666 (inherit sbcl-cxml+xml)
5667 (name "sbcl-cxml+dom")
5668 (inputs
5669 `(("closure-common" ,sbcl-closure-common)
5670 ("puri" ,sbcl-puri)
5671 ("cxml+xml" ,sbcl-cxml+xml)))
5672 (arguments
5673 `(#:asd-file "cxml.asd"
5674 #:asd-system-name "cxml/dom"))))
5675
5676 (define sbcl-cxml+klacks
5677 (package
5678 (inherit sbcl-cxml+xml)
5679 (name "sbcl-cxml+klacks")
5680 (inputs
5681 `(("closure-common" ,sbcl-closure-common)
5682 ("puri" ,sbcl-puri)
5683 ("cxml+xml" ,sbcl-cxml+xml)))
5684 (arguments
5685 `(#:asd-file "cxml.asd"
5686 #:asd-system-name "cxml/klacks"))))
5687
5688 (define sbcl-cxml+test
5689 (package
5690 (inherit sbcl-cxml+xml)
5691 (name "sbcl-cxml+test")
5692 (inputs
5693 `(("closure-common" ,sbcl-closure-common)
5694 ("puri" ,sbcl-puri)
5695 ("cxml+xml" ,sbcl-cxml+xml)))
5696 (arguments
5697 `(#:asd-file "cxml.asd"
5698 #:asd-system-name "cxml/test"))))
5699
5700 (define-public sbcl-cxml
5701 (package
5702 (inherit sbcl-cxml+xml)
5703 (name "sbcl-cxml")
5704 (inputs
5705 `(("closure-common" ,sbcl-closure-common)
5706 ("puri" ,sbcl-puri)
5707 ("trivial-gray-streams" ,sbcl-trivial-gray-streams)
5708 ("cxml+dom" ,sbcl-cxml+dom)
5709 ("cxml+klacks" ,sbcl-cxml+klacks)
5710 ("cxml+test" ,sbcl-cxml+test)))
5711 (arguments
5712 `(#:asd-file "cxml.asd"
5713 #:asd-system-name "cxml"
5714 #:phases
5715 (modify-phases %standard-phases
5716 (add-after 'build 'install-dtd
5717 (lambda* (#:key outputs #:allow-other-keys)
5718 (install-file "catalog.dtd"
5719 (string-append
5720 (assoc-ref outputs "out")
5721 "/lib/" (%lisp-type)))))
5722 (add-after 'create-asd 'remove-component
5723 ;; XXX: The original .asd has no components, but our build system
5724 ;; creates an entry nonetheless. We need to remove it for the
5725 ;; generated .asd to load properly. See trivia.trivial for a
5726 ;; similar problem.
5727 (lambda* (#:key outputs #:allow-other-keys)
5728 (let* ((out (assoc-ref outputs "out"))
5729 (asd (string-append out "/lib/sbcl/cxml.asd")))
5730 (substitute* asd
5731 ((" :components
5732 ")
5733 ""))
5734 (substitute* asd
5735 ((" *\\(\\(:compiled-file \"cxml--system\"\\)\\)")
5736 ""))))))))))
5737
5738 (define-public cl-cxml
5739 (sbcl-package->cl-source-package sbcl-cxml))
5740
5741 (define-public sbcl-cl-reexport
5742 (let ((commit "312f3661bbe187b5f28536cd7ec2956e91366c3b")
5743 (revision "1"))
5744 (package
5745 (name "sbcl-cl-reexport")
5746 (build-system asdf-build-system/sbcl)
5747 (version (git-version "0.1" revision commit))
5748 (home-page "https://github.com/takagi/cl-reexport")
5749 (source
5750 (origin
5751 (method git-fetch)
5752 (uri (git-reference
5753 (url home-page)
5754 (commit commit)))
5755 (file-name (git-file-name name version))
5756 (sha256
5757 (base32
5758 "1cwpn1m3wrl0fl9plznn7p464db646gnfc8zkyk97dyxski2aq0x"))))
5759 (inputs
5760 `(("alexandria" ,sbcl-alexandria)))
5761 (arguments
5762 ;; TODO: Tests fail because cl-test-more is missing, but I can't find it online.
5763 `(#:tests? #f))
5764 (synopsis "HTTP cookie manager for Common Lisp")
5765 (description "cl-cookie is a Common Lisp library featuring parsing of
5766 cookie headers, cookie creation, cookie jar creation and more.")
5767 (license license:llgpl))))
5768
5769 (define-public cl-reexport
5770 (sbcl-package->cl-source-package sbcl-cl-reexport))
5771
5772 (define-public sbcl-cl-cookie
5773 (let ((commit "cea55aed8b9ad25fafd13defbcb9fe8f41b29546")
5774 (revision "1"))
5775 (package
5776 (name "sbcl-cl-cookie")
5777 (build-system asdf-build-system/sbcl)
5778 (version (git-version "0.9.10" revision commit))
5779 (home-page "https://github.com/fukamachi/cl-cookie")
5780 (source
5781 (origin
5782 (method git-fetch)
5783 (uri (git-reference
5784 (url home-page)
5785 (commit commit)))
5786 (file-name (git-file-name name version))
5787 (sha256
5788 (base32
5789 "090g7z75h98zvc1ldx0vh4jn4086dhjm2w30jcwkq553qmyxwl8h"))))
5790 (inputs
5791 `(("proc-parse" ,sbcl-proc-parse)
5792 ("alexandria" ,sbcl-alexandria)
5793 ("quri" ,sbcl-quri)
5794 ("cl-ppcre" ,sbcl-cl-ppcre)
5795 ("local-time" ,sbcl-local-time)))
5796 (native-inputs
5797 `(("prove-asdf" ,sbcl-prove-asdf)
5798 ("prove" ,sbcl-prove)))
5799 (arguments
5800 ;; TODO: Tests fail because cl-cookie depends on cl-cookie-test.
5801 `(#:tests? #f))
5802 (synopsis "HTTP cookie manager for Common Lisp")
5803 (description "cl-cookie is a Common Lisp library featuring parsing of
5804 cookie headers, cookie creation, cookie jar creation and more.")
5805 (license license:bsd-2))))
5806
5807 (define-public cl-cookie
5808 (sbcl-package->cl-source-package sbcl-cl-cookie))
5809
5810 (define-public sbcl-dexador
5811 (let ((commit "a2714d126cc94bc7a9a6e1e3c08de455b3a66378")
5812 (revision "1"))
5813 (package
5814 (name "sbcl-dexador")
5815 (build-system asdf-build-system/sbcl)
5816 (version (git-version "0.9.10" revision commit))
5817 (home-page "https://github.com/fukamachi/dexador")
5818 (source
5819 (origin
5820 (method git-fetch)
5821 (uri (git-reference
5822 (url home-page)
5823 (commit commit)))
5824 (file-name (git-file-name name version))
5825 (sha256
5826 (base32
5827 "0nbqgn4v3l2z6m1k1bdxfnqpfrk84nxdmz7csz11zzcfs4flkv79"))))
5828 (inputs
5829 `(("trivial-gray-streams" ,sbcl-trivial-gray-streams)
5830 ("babel" ,sbcl-babel)
5831 ("usocket" ,sbcl-usocket)
5832 ("fast-http" ,sbcl-fast-http)
5833 ("quri" ,sbcl-quri)
5834 ("fast-io" ,sbcl-fast-io)
5835 ("chunga" ,sbcl-chunga)
5836 ("cl-ppcre" ,sbcl-cl-ppcre)
5837 ("cl-cookie" ,sbcl-cl-cookie)
5838 ("trivial-mimes" ,sbcl-trivial-mimes)
5839 ("chipz" ,sbcl-chipz)
5840 ("cl-base64" ,sbcl-cl-base64)
5841 ("cl-reexport" ,sbcl-cl-reexport)
5842 ("cl+ssl" ,sbcl-cl+ssl)
5843 ("bordeaux-threads" ,sbcl-bordeaux-threads)
5844 ("alexandria" ,sbcl-alexandria)))
5845 (native-inputs
5846 `(("prove" ,sbcl-prove)
5847 ("prove-asdf" ,sbcl-prove-asdf)
5848 ("lack-request" ,sbcl-lack-request)
5849 ("clack" ,sbcl-clack)
5850 ("babel" ,sbcl-babel)
5851 ("alexandria" ,sbcl-alexandria)
5852 ("cl-ppcre" ,sbcl-cl-ppcre)
5853 ("local-time" ,sbcl-local-time)))
5854 (arguments
5855 ;; TODO: Circular dependency: tests depend on clack-test which depends on dexador.
5856 `(#:tests? #f
5857 #:phases
5858 (modify-phases %standard-phases
5859 (add-after 'unpack 'fix-permissions
5860 (lambda _ (make-file-writable "t/data/test.gz") #t)))))
5861 (synopsis "Yet another HTTP client for Common Lisp")
5862 (description "Dexador is yet another HTTP client for Common Lisp with
5863 neat APIs and connection-pooling. It is meant to supersede Drakma.")
5864 (license license:expat))))
5865
5866 (define-public cl-dexador
5867 (package
5868 (inherit (sbcl-package->cl-source-package sbcl-dexador))
5869 (arguments
5870 `(#:phases
5871 ;; asdf-build-system/source has its own phases and does not inherit
5872 ;; from asdf-build-system/sbcl phases.
5873 (modify-phases %standard-phases/source
5874 (add-after 'unpack 'fix-permissions
5875 (lambda _ (make-file-writable "t/data/test.gz") #t)))))))
5876
5877 (define-public ecl-dexador
5878 (sbcl-package->ecl-package sbcl-dexador))
5879
5880 (define-public sbcl-lisp-namespace
5881 (let ((commit "28107cafe34e4c1c67490fde60c7f92dc610b2e0")
5882 (revision "1"))
5883 (package
5884 (name "sbcl-lisp-namespace")
5885 (build-system asdf-build-system/sbcl)
5886 (version (git-version "0.1" revision commit))
5887 (home-page "https://github.com/guicho271828/lisp-namespace")
5888 (source
5889 (origin
5890 (method git-fetch)
5891 (uri (git-reference
5892 (url home-page)
5893 (commit commit)))
5894 (file-name (git-file-name name version))
5895 (sha256
5896 (base32
5897 "1jw2wykp06z2afb9nm1lgfzll5cjlj36pnknjx614057zkkxq4iy"))))
5898 (inputs
5899 `(("alexandria" ,sbcl-alexandria)))
5900 (native-inputs
5901 `(("fiveam" ,sbcl-fiveam)))
5902 (arguments
5903 `(#:test-asd-file "lisp-namespace.test.asd"
5904 ;; XXX: Component LISP-NAMESPACE-ASD::LISP-NAMESPACE.TEST not found
5905 #:tests? #f))
5906 (synopsis "LISP-N, or extensible namespaces in Common Lisp")
5907 (description "Common Lisp already has major 2 namespaces, function
5908 namespace and value namespace (or variable namespace), but there are actually
5909 more — e.g., class namespace.
5910 This library offers macros to deal with symbols from any namespace.")
5911 (license license:llgpl))))
5912
5913 (define-public cl-lisp-namespace
5914 (sbcl-package->cl-source-package sbcl-lisp-namespace))
5915
5916 (define-public sbcl-trivial-cltl2
5917 (let ((commit "8eec8407df833e8f27df8a388bc10913f16d9e83")
5918 (revision "1"))
5919 (package
5920 (name "sbcl-trivial-cltl2")
5921 (build-system asdf-build-system/sbcl)
5922 (version (git-version "0.1.1" revision commit))
5923 (home-page "https://github.com/Zulu-Inuoe/trivial-cltl2")
5924 (source
5925 (origin
5926 (method git-fetch)
5927 (uri (git-reference
5928 (url home-page)
5929 (commit commit)))
5930 (file-name (git-file-name name version))
5931 (sha256
5932 (base32
5933 "1dyyxz17vqv8hlfwq287gl8xxbvcnq798ajb7p5jdjz91wqf4bgk"))))
5934 (synopsis "Simple CLtL2 compatibility layer for Common Lisp")
5935 (description "This library is a portable compatibility layer around
5936 \"Common Lisp the Language, 2nd
5937 Edition\" (@url{https://www.cs.cmu.edu/Groups/AI/html/cltl/clm/node102.html})
5938 and it exports symbols from implementation-specific packages.")
5939 (license license:llgpl))))
5940
5941 (define-public cl-trivial-cltl2
5942 (sbcl-package->cl-source-package sbcl-trivial-cltl2))
5943
5944 (define-public sbcl-introspect-environment
5945 (let ((commit "fff42f8f8fd0d99db5ad6c5812e53de7d660020b")
5946 (revision "1"))
5947 (package
5948 (name "sbcl-introspect-environment")
5949 (build-system asdf-build-system/sbcl)
5950 (version (git-version "0.1" revision commit))
5951 (home-page "https://github.com/Bike/introspect-environment")
5952 (source
5953 (origin
5954 (method git-fetch)
5955 (uri (git-reference
5956 (url home-page)
5957 (commit commit)))
5958 (file-name (git-file-name name version))
5959 (sha256
5960 (base32
5961 "1i305n0wfmpac63ni4i3vixnnkl8daw5ncxy0k3dv92krgx6qzhp"))))
5962 (native-inputs
5963 `(("fiveam" ,sbcl-fiveam)))
5964 (synopsis "Common Lisp environment introspection portability layer")
5965 (description "This library is a small interface to portable but
5966 nonstandard introspection of Common Lisp environments. It is intended to
5967 allow a bit more compile-time introspection of environments in Common Lisp.
5968
5969 Quite a bit of information is available at the time a macro or compiler-macro
5970 runs; inlining info, type declarations, that sort of thing. This information
5971 is all standard - any Common Lisp program can @code{(declare (integer x))} and
5972 such.
5973
5974 This info ought to be accessible through the standard @code{&environment}
5975 parameters, but it is not. Several implementations keep the information for
5976 their own purposes but do not make it available to user programs, because
5977 there is no standard mechanism to do so.
5978
5979 This library uses implementation-specific hooks to make information available
5980 to users. This is currently supported on SBCL, CCL, and CMUCL. Other
5981 implementations have implementations of the functions that do as much as they
5982 can and/or provide reasonable defaults.")
5983 (license license:wtfpl2))))
5984
5985 (define-public cl-introspect-environment
5986 (sbcl-package->cl-source-package sbcl-introspect-environment))
5987
5988 (define-public sbcl-type-i
5989 (let ((commit "dea233f45f94064105ec09f0767de338f67dcbe2")
5990 (revision "1"))
5991 (package
5992 (name "sbcl-type-i")
5993 (build-system asdf-build-system/sbcl)
5994 (version (git-version "0.1" revision commit))
5995 (home-page "https://github.com/guicho271828/type-i")
5996 (source
5997 (origin
5998 (method git-fetch)
5999 (uri (git-reference
6000 (url home-page)
6001 (commit commit)))
6002 (file-name (git-file-name name version))
6003 (sha256
6004 (base32
6005 "039g5pbrhh65s0bhr9314gmd2nwc2y5lp2377c5qrc2lxky89qs3"))))
6006 (inputs
6007 `(("alexandria" ,sbcl-alexandria)
6008 ("introspect-environment" ,sbcl-introspect-environment)
6009 ("trivia.trivial" ,sbcl-trivia.trivial)))
6010 (native-inputs
6011 `(("fiveam" ,sbcl-fiveam)))
6012 (arguments
6013 `(#:test-asd-file "type-i.test.asd"))
6014 (synopsis "Type inference utility on unary predicates for Common Lisp")
6015 (description "This library tries to provide a way to detect what kind of
6016 type the given predicate is trying to check. This is different from inferring
6017 the return type of a function.")
6018 (license license:llgpl))))
6019
6020 (define-public cl-type-i
6021 (sbcl-package->cl-source-package sbcl-type-i))
6022
6023 (define-public sbcl-optima
6024 (let ((commit "373b245b928c1a5cce91a6cb5bfe5dd77eb36195")
6025 (revision "1"))
6026 (package
6027 (name "sbcl-optima")
6028 (build-system asdf-build-system/sbcl)
6029 (version (git-version "1.0" revision commit))
6030 (home-page "https://github.com/m2ym/optima")
6031 (source
6032 (origin
6033 (method git-fetch)
6034 (uri (git-reference
6035 (url home-page)
6036 (commit commit)))
6037 (file-name (git-file-name name version))
6038 (sha256
6039 (base32
6040 "1yw4ymq7ms89342kkvb3aqxgv0w38m9kd8ikdqxxzyybnkjhndal"))))
6041 (inputs
6042 `(("alexandria" ,sbcl-alexandria)
6043 ("closer-mop" ,sbcl-closer-mop)))
6044 (native-inputs
6045 `(("eos" ,sbcl-eos)))
6046 (arguments
6047 ;; XXX: Circular dependencies: tests depend on optima.ppcre which depends on optima.
6048 `(#:tests? #f
6049 #:test-asd-file "optima.test.asd"))
6050 (synopsis "Optimized pattern matching library for Common Lisp")
6051 (description "Optima is a fast pattern matching library which uses
6052 optimizing techniques widely used in the functional programming world.")
6053 (license license:expat))))
6054
6055 (define-public cl-optima
6056 (sbcl-package->cl-source-package sbcl-optima))
6057
6058 (define-public sbcl-fare-quasiquote
6059 (let ((commit "640d39a0451094071b3e093c97667b3947f43639")
6060 (revision "1"))
6061 (package
6062 (name "sbcl-fare-quasiquote")
6063 (build-system asdf-build-system/sbcl)
6064 (version (git-version "1.0.1" revision commit))
6065 (home-page "https://gitlab.common-lisp.net/frideau/fare-quasiquote")
6066 (source
6067 (origin
6068 (method git-fetch)
6069 (uri (git-reference
6070 (url (string-append "https://gitlab.common-lisp.net/frideau/"
6071 "fare-quasiquote.git"))
6072 (commit commit)))
6073 (file-name (git-file-name name version))
6074 (sha256
6075 (base32 "1g6q11l50kgija9f55lzqpcwvaq0ljiw8v1j265hnyg6nahjwjvg"))))
6076 (inputs
6077 `(("fare-utils" ,sbcl-fare-utils)))
6078 (arguments
6079 ;; XXX: Circular dependencies: Tests depend on subsystems,
6080 ;; which depend on the main systems.
6081 `(#:tests? #f
6082 #:phases
6083 (modify-phases %standard-phases
6084 ;; XXX: Require 1.0.0 version of fare-utils, and we package some
6085 ;; commits after 1.0.0.5, but ASDF fails to read the
6086 ;; "-REVISION-COMMIT" part generated by Guix.
6087 (add-after 'unpack 'patch-requirement
6088 (lambda _
6089 (substitute* "fare-quasiquote.asd"
6090 (("\\(:version \"fare-utils\" \"1.0.0\"\\)")
6091 "\"fare-utils\"")))))))
6092 (synopsis "Pattern-matching friendly implementation of quasiquote")
6093 (description "The main purpose of this n+2nd reimplementation of
6094 quasiquote is enable matching of quasiquoted patterns, using Optima or
6095 Trivia.")
6096 (license license:expat))))
6097
6098 (define-public cl-fare-quasiquote
6099 (sbcl-package->cl-source-package sbcl-fare-quasiquote))
6100
6101 (define-public sbcl-fare-quasiquote-optima
6102 (package
6103 (inherit sbcl-fare-quasiquote)
6104 (name "sbcl-fare-quasiquote-optima")
6105 (inputs
6106 `(("optima" ,sbcl-optima)
6107 ("fare-quasiquote" ,sbcl-fare-quasiquote)))
6108 (arguments
6109 '(#:phases
6110 (modify-phases %standard-phases
6111 (add-after 'unpack 'patch-requirement
6112 (lambda _
6113 (substitute* "fare-quasiquote-optima.asd"
6114 (("\\(:version \"optima\" \"1\\.0\"\\)")
6115 "\"optima\""))
6116 #t)))))))
6117
6118 (define-public cl-fare-quasiquote-optima
6119 (sbcl-package->cl-source-package sbcl-fare-quasiquote-optima))
6120
6121 (define-public sbcl-fare-quasiquote-readtable
6122 (package
6123 (inherit sbcl-fare-quasiquote)
6124 (name "sbcl-fare-quasiquote-readtable")
6125 (inputs
6126 `(("fare-quasiquote" ,sbcl-fare-quasiquote)
6127 ("named-readtables" ,sbcl-named-readtables)))
6128 (description "The main purpose of this n+2nd reimplementation of
6129 quasiquote is enable matching of quasiquoted patterns, using Optima or
6130 Trivia.
6131
6132 This package uses fare-quasiquote with named-readtable.")))
6133
6134 (define-public cl-fare-quasiquote-readtable
6135 (sbcl-package->cl-source-package sbcl-fare-quasiquote-readtable))
6136
6137 ;; TODO: Add support for component-less system in asdf-build-system/sbcl.
6138 (define-public sbcl-fare-quasiquote-extras
6139 (package
6140 (inherit sbcl-fare-quasiquote)
6141 (name "sbcl-fare-quasiquote-extras")
6142 (build-system asdf-build-system/sbcl)
6143 (inputs
6144 `(("fare-quasiquote-optima" ,sbcl-fare-quasiquote-optima)
6145 ("fare-quasiquote-readtable" ,sbcl-fare-quasiquote-readtable)))
6146 (arguments
6147 `(#:phases
6148 (modify-phases %standard-phases
6149 (replace 'build
6150 (lambda* (#:key outputs #:allow-other-keys)
6151 (let* ((out (assoc-ref outputs "out"))
6152 (lib (string-append out "/lib/" (%lisp-type))))
6153 (mkdir-p lib)
6154 (install-file "fare-quasiquote-extras.asd" lib)
6155 (make-file-writable
6156 (string-append lib "/fare-quasiquote-extras.asd"))
6157 #t)))
6158 (add-after 'create-asd-file 'fix-asd-file
6159 (lambda* (#:key outputs #:allow-other-keys)
6160 (let* ((out (assoc-ref outputs "out"))
6161 (lib (string-append out "/lib/" (%lisp-type)))
6162 (asd (string-append lib "/fare-quasiquote-extras.asd")))
6163 (substitute* asd
6164 ((":class")
6165 "")
6166 (("asdf/bundle:prebuilt-system")
6167 "")
6168 ((":components")
6169 "")
6170 (("\\(\\(:compiled-file \"fare-quasiquote-extras--system\"\\)\\)")
6171 "")))
6172 #t)))))
6173 (description "This library combines @code{fare-quasiquote-readtable} and
6174 @code{fare-quasiquote-optima}.")))
6175
6176 (define-public cl-fare-quasiquote-extras
6177 (package
6178 (inherit cl-fare-quasiquote)
6179 (name "cl-fare-quasiquote-extras")
6180 (build-system asdf-build-system/source)
6181 (propagated-inputs
6182 `(("fare-quasiquote" ,cl-fare-quasiquote)
6183 ("fare-quasiquote-optima" ,cl-fare-quasiquote-optima)
6184 ("fare-quasiquote-readtable" ,cl-fare-quasiquote-readtable)))
6185 (description "This library combines @code{fare-quasiquote-readtable} and
6186 @code{fare-quasiquote-optima}.")))
6187
6188 (define-public sbcl-trivia.level0
6189 (let ((commit "574901ac376ae54c9d37169fd5efab9b3b8fcc63")
6190 (revision "1"))
6191 (package
6192 (name "sbcl-trivia.level0")
6193 (build-system asdf-build-system/sbcl)
6194 (version (git-version "0.0.0" revision commit))
6195 (home-page "https://github.com/guicho271828/trivia")
6196 (source
6197 (origin
6198 (method git-fetch)
6199 (uri (git-reference
6200 (url home-page)
6201 (commit commit)))
6202 (file-name (git-file-name name version))
6203 (sha256
6204 (base32
6205 "0hf53n71xzr9sjwrxis5fivx3drclf4s39h5ck8vh21ndqj9zvdk"))))
6206 (inputs
6207 `(("alexandria" ,sbcl-alexandria)))
6208 (synopsis "Pattern matching in Common Lisp")
6209 (description "Trivia is a pattern matching compiler that is compatible
6210 with Optima, another pattern matching library for Common Lisp. It is meant to
6211 be faster and more extensible than Optima.")
6212 (license license:llgpl))))
6213
6214 (define-public sbcl-trivia.level1
6215 (package
6216 (inherit sbcl-trivia.level0)
6217 (name "sbcl-trivia.level1")
6218 (inputs
6219 `(("trivia.level0" ,sbcl-trivia.level0)))
6220 (description "Trivia is a pattern matching compiler that is compatible
6221 with Optima, another pattern matching library for Common Lisp. It is meant to
6222 be faster and more extensible than Optima.
6223
6224 This system contains the core patterns of Trivia.")))
6225
6226 (define-public sbcl-trivia.level2
6227 (package
6228 (inherit sbcl-trivia.level0)
6229 (name "sbcl-trivia.level2")
6230 (inputs
6231 `(("trivia.level1" ,sbcl-trivia.level1)
6232 ("lisp-namespace" ,sbcl-lisp-namespace)
6233 ("trivial-cltl2" ,sbcl-trivial-cltl2)
6234 ("closer-mop" ,sbcl-closer-mop)))
6235 (description "Trivia is a pattern matching compiler that is compatible
6236 with Optima, another pattern matching library for Common Lisp. It is meant to
6237 be faster and more extensible than Optima.
6238
6239 This system contains a non-optimized pattern matcher compatible with Optima,
6240 with extensible optimizer interface.")))
6241
6242 (define-public sbcl-trivia.trivial
6243 (package
6244 (inherit sbcl-trivia.level0)
6245 (name "sbcl-trivia.trivial")
6246 (inputs
6247 `(("trivia.level2" ,sbcl-trivia.level2)))
6248 (arguments
6249 `(#:phases
6250 (modify-phases %standard-phases
6251 (replace 'create-asd-file
6252 (lambda* (#:key outputs inputs #:allow-other-keys)
6253 (let* ((out (assoc-ref outputs "out"))
6254 (lib (string-append out "/lib/" (%lisp-type)))
6255 (level2 (assoc-ref inputs "trivia.level2")))
6256 (mkdir-p lib)
6257 (install-file "trivia.trivial.asd" lib)
6258 ;; XXX: This .asd does not have any component and the build
6259 ;; system fails to work in this case. We should update the
6260 ;; build system to handle component-less .asd.
6261 ;; TODO: How do we append to file in Guile? It seems that
6262 ;; (open-file ... "a") gets a "Permission denied".
6263 (substitute* (string-append lib "/trivia.trivial.asd")
6264 (("\"\\)")
6265 (string-append "\")
6266
6267 (progn (asdf/source-registry:ensure-source-registry)
6268 (setf (gethash
6269 \"trivia.level2\"
6270 asdf/source-registry:*source-registry*)
6271 #p\""
6272 level2
6273 "/share/common-lisp/sbcl-bundle-systems/trivia.level2.asd\"))")))))))))
6274 (description "Trivia is a pattern matching compiler that is compatible
6275 with Optima, another pattern matching library for Common Lisp. It is meant to
6276 be faster and more extensible than Optima.
6277
6278 This system contains the base level system of Trivia with a trivial optimizer.")))
6279
6280 (define-public sbcl-trivia.balland2006
6281 (package
6282 (inherit sbcl-trivia.level0)
6283 (name "sbcl-trivia.balland2006")
6284 (inputs
6285 `(("trivia.trivial" ,sbcl-trivia.trivial)
6286 ("iterate" ,sbcl-iterate)
6287 ("type-i" ,sbcl-type-i)
6288 ("alexandria" ,sbcl-alexandria)))
6289 (arguments
6290 ;; Tests are done in trivia itself.
6291 `(#:tests? #f))
6292 (description "Trivia is a pattern matching compiler that is compatible
6293 with Optima, another pattern matching library for Common Lisp. It is meant to
6294 be faster and more extensible than Optima.
6295
6296 This system contains the base level system of Trivia with a trivial optimizer.")))
6297
6298 (define-public sbcl-trivia.ppcre
6299 (package
6300 (inherit sbcl-trivia.level0)
6301 (name "sbcl-trivia.ppcre")
6302 (inputs
6303 `(("trivia.trivial" ,sbcl-trivia.trivial)
6304 ("cl-ppcre" ,sbcl-cl-ppcre)))
6305 (description "Trivia is a pattern matching compiler that is compatible
6306 with Optima, another pattern matching library for Common Lisp. It is meant to
6307 be faster and more extensible than Optima.
6308
6309 This system contains the PPCRE extension.")))
6310
6311 (define-public sbcl-trivia.quasiquote
6312 (package
6313 (inherit sbcl-trivia.level0)
6314 (name "sbcl-trivia.quasiquote")
6315 (inputs
6316 `(("trivia.trivial" ,sbcl-trivia.trivial)
6317 ("fare-quasiquote" ,sbcl-fare-quasiquote)
6318 ("fare-quasiquote-readtable" ,sbcl-fare-quasiquote-readtable)))
6319 (description "Trivia is a pattern matching compiler that is compatible
6320 with Optima, another pattern matching library for Common Lisp. It is meant to
6321 be faster and more extensible than Optima.
6322
6323 This system contains the fare-quasiquote extension.")))
6324
6325 (define-public sbcl-trivia.cffi
6326 (package
6327 (inherit sbcl-trivia.level0)
6328 (name "sbcl-trivia.cffi")
6329 (inputs
6330 `(("cffi" ,sbcl-cffi)
6331 ("trivia.trivial" ,sbcl-trivia.trivial)))
6332 (description "Trivia is a pattern matching compiler that is compatible
6333 with Optima, another pattern matching library for Common Lisp. It is meant to
6334 be faster and more extensible than Optima.
6335
6336 This system contains the CFFI foreign slot access extension.")))
6337
6338 (define-public sbcl-trivia
6339 (package
6340 (inherit sbcl-trivia.level0)
6341 (name "sbcl-trivia")
6342 (inputs
6343 `(("trivia.balland2006" ,sbcl-trivia.balland2006)))
6344 (native-inputs
6345 `(("fiveam" ,sbcl-fiveam)
6346 ("trivia.ppcre" ,sbcl-trivia.ppcre)
6347 ("trivia.quasiquote" ,sbcl-trivia.quasiquote)
6348 ("trivia.cffi" ,sbcl-trivia.cffi)
6349 ("optima" ,sbcl-optima)))
6350 (arguments
6351 `(#:test-asd-file "trivia.test.asd"
6352 #:phases
6353 (modify-phases %standard-phases
6354 (add-after 'create-asd 'remove-component
6355 ;; XXX: The original .asd has no components, but our build system
6356 ;; creates an entry nonetheless. We need to remove it for the
6357 ;; generated .asd to load properly. See trivia.trivial for a
6358 ;; similar problem.
6359 (lambda* (#:key outputs #:allow-other-keys)
6360 (let* ((out (assoc-ref outputs "out"))
6361 (asd (string-append out "/lib/" (%lisp-type) "/trivia.asd")))
6362 (substitute* asd
6363 ((" :components
6364 ")
6365 ""))
6366 (substitute* asd
6367 ((" *\\(\\(:compiled-file \"trivia--system\"\\)\\)")
6368 ""))))))))
6369 (description "Trivia is a pattern matching compiler that is compatible
6370 with Optima, another pattern matching library for Common Lisp. It is meant to
6371 be faster and more extensible than Optima.")))
6372
6373 (define-public cl-trivia
6374 (sbcl-package->cl-source-package sbcl-trivia))
6375
6376 (define-public sbcl-mk-string-metrics
6377 (package
6378 (name "sbcl-mk-string-metrics")
6379 (version "0.1.2")
6380 (home-page "https://github.com/cbaggers/mk-string-metrics/")
6381 (source (origin
6382 (method git-fetch)
6383 (uri (git-reference
6384 (url home-page)
6385 (commit version)))
6386 (sha256
6387 (base32 "0bg0bv2mfd4k0g3x72x563hvmrx18xavaffr6xk5rh4if5j7kcf6"))
6388 (file-name (git-file-name name version))))
6389 (build-system asdf-build-system/sbcl)
6390 (synopsis "Calculate various string metrics efficiently in Common Lisp")
6391 (description "This library implements efficient algorithms that calculate
6392 various string metrics in Common Lisp:
6393
6394 @itemize
6395 @item Damerau-Levenshtein distance
6396 @item Hamming distance
6397 @item Jaccard similarity coefficient
6398 @item Jaro distance
6399 @item Jaro-Winkler distance
6400 @item Levenshtein distance
6401 @item Normalized Damerau-Levenshtein distance
6402 @item Normalized Levenshtein distance
6403 @item Overlap coefficient
6404 @end itemize\n")
6405 (license license:x11)))
6406
6407 (define-public cl-mk-string-metrics
6408 (sbcl-package->cl-source-package sbcl-mk-string-metrics))
6409
6410 (define-public sbcl-cl-str
6411 (let ((commit "eb480f283e28802d67b35bf916506701152f9a2a"))
6412 (package
6413 (name "sbcl-cl-str")
6414 (version (git-version "0.17" "1" commit))
6415 (home-page "https://github.com/vindarel/cl-str")
6416 (source (origin
6417 (method git-fetch)
6418 (uri (git-reference
6419 (url home-page)
6420 (commit commit)))
6421 (sha256
6422 (base32 "1hpq5m8zjjnzns370zy27z2vcm1p8n2ka5ij2x67gyc9amz9vla0"))
6423 (file-name (git-file-name name version))))
6424 (build-system asdf-build-system/sbcl)
6425 (inputs
6426 `(("cl-ppcre" ,sbcl-cl-ppcre)
6427 ("cl-ppcre-unicode" ,sbcl-cl-ppcre-unicode)
6428 ("cl-change-case" ,sbcl-cl-change-case)))
6429 (native-inputs
6430 `(("prove" ,sbcl-prove)
6431 ("prove-asdf" ,sbcl-prove-asdf)))
6432 (arguments
6433 `(#:asd-file "str.asd"
6434 #:asd-system-name "str"
6435 #:test-asd-file "str.test.asd"))
6436 (synopsis "Modern, consistent and terse Common Lisp string manipulation library")
6437 (description "A modern and consistent Common Lisp string manipulation
6438 library that focuses on modernity, simplicity and discoverability:
6439 @code{(str:trim s)} instead of @code{(string-trim '(#\\Space ...) s)}), or
6440 @code{str:concat strings} instead of an unusual format construct; one
6441 discoverable library instead of many; consistency and composability, where
6442 @code{s} is always the last argument, which makes it easier to feed pipes and
6443 arrows.")
6444 (license license:expat))))
6445
6446 (define-public cl-str
6447 (sbcl-package->cl-source-package sbcl-cl-str))
6448
6449 (define-public sbcl-cl-xmlspam
6450 (let ((commit "ea06abcca2a73a9779bcfb09081e56665f94e22a"))
6451 (package
6452 (name "sbcl-cl-xmlspam")
6453 (build-system asdf-build-system/sbcl)
6454 (version (git-version "0.0.0" "1" commit))
6455 (home-page "https://github.com/rogpeppe/cl-xmlspam")
6456 (source
6457 (origin
6458 (method git-fetch)
6459 (uri (git-reference
6460 (url home-page)
6461 (commit commit)))
6462 (file-name (string-append name "-" version))
6463 (sha256
6464 (base32
6465 "0w4rqvrgdgk3fwfq3kx4r7wwdr2bv3b6n3bdqwsiriw9psqzpz2s"))))
6466 (inputs
6467 `(("cxml" ,sbcl-cxml)
6468 ("cl-ppcre" ,sbcl-cl-ppcre)))
6469 (synopsis "Concise, regexp-like pattern matching on streaming XML for Common Lisp")
6470 (description "CXML does an excellent job at parsing XML elements, but what
6471 do you do when you have a XML file that's larger than you want to fit in
6472 memory, and you want to extract some information from it? Writing code to deal
6473 with SAX events, or even using Klacks, quickly becomes tedious.
6474 @code{cl-xmlspam} (for XML Stream PAttern Matcher) is designed to make it easy
6475 to write code that mirrors the structure of the XML that it's parsing. It
6476 also makes it easy to shift paradigms when necessary - the usual Lisp control
6477 constructs can be used interchangeably with pattern matching, and the full
6478 power of CXML is available when necessary.")
6479 (license license:bsd-3))))
6480
6481 ;; TODO: dbus uses ASDF's package-inferred-system which is not supported by
6482 ;; asdf-build-system/sbcl as of 2019-08-02. We should fix
6483 ;; asdf-build-system/sbcl.
6484 (define-public cl-dbus
6485 (let ((commit "24b452df3a45ca5dc95015500f34baad175c981a")
6486 (revision "1"))
6487 (package
6488 (name "cl-dbus")
6489 (build-system asdf-build-system/source)
6490 (version (git-version "20190408" revision commit))
6491 (home-page "https://github.com/death/dbus")
6492 (source
6493 (origin
6494 (method git-fetch)
6495 (uri (git-reference
6496 (url home-page)
6497 (commit commit)))
6498 (file-name (git-file-name name version))
6499 (sha256
6500 (base32
6501 "0fw2q866yddbf23nk9pxphm9gsasx35vjyss82xzvndnjmzlqfl5"))))
6502 ;; Inputs must be propagated or else packages depending on this won't
6503 ;; have the necessary packages.
6504 (propagated-inputs
6505 `(("alexandria" ,sbcl-alexandria)
6506 ("trivial-garbage" ,sbcl-trivial-garbage)
6507 ("babel" ,sbcl-babel)
6508 ("iolib" ,sbcl-iolib)
6509 ("ieee-floats" ,sbcl-ieee-floats)
6510 ("flexi-streams" ,sbcl-flexi-streams)
6511 ("cl-xmlspam" ,sbcl-cl-xmlspam)
6512 ("ironclad" ,sbcl-ironclad)))
6513 (synopsis "D-Bus client library for Common Lisp")
6514 (description "This is a Common Lisp library that publishes D-Bus
6515 objects as well as send and notify other objects connected to a bus.")
6516 (license license:bsd-2))))
6517
6518 (define-public sbcl-cl-hooks
6519 (let ((commit "5b638083f3b4f1221a52631d9c8a0a265565cac7")
6520 (revision "1"))
6521 (package
6522 (name "sbcl-cl-hooks")
6523 (build-system asdf-build-system/sbcl)
6524 (version (git-version "0.2.1" revision commit))
6525 (home-page "https://github.com/scymtym/architecture.hooks")
6526 (source
6527 (origin
6528 (method git-fetch)
6529 (uri (git-reference
6530 (url home-page)
6531 (commit commit)))
6532 (file-name (git-file-name name version))
6533 (sha256
6534 (base32
6535 "0bg3l0a28lw5gqqjp6p6b5nhwqk46sgkb7184w5qbfngw1hk8x9y"))))
6536 (inputs
6537 `(("alexandria" ,sbcl-alexandria)
6538 ("let-plus" ,sbcl-let-plus)
6539 ("trivial-garbage" ,sbcl-trivial-garbage)
6540 ("closer-mop" ,sbcl-closer-mop)))
6541 (native-inputs
6542 `(("fiveam" ,sbcl-fiveam)))
6543 (synopsis "Hooks extension point mechanism (as in Emacs) for Common Lisp")
6544 (description "A hook, in the present context, is a certain kind of
6545 extension point in a program that allows interleaving the execution of
6546 arbitrary code with the execution of a the program without introducing any
6547 coupling between the two. Hooks are used extensively in the extensible editor
6548 Emacs.
6549
6550 In the Common LISP Object System (CLOS), a similar kind of extensibility is
6551 possible using the flexible multi-method dispatch mechanism. It may even seem
6552 that the concept of hooks does not provide any benefits over the possibilities
6553 of CLOS. However, there are some differences:
6554
6555 @itemize
6556
6557 @item There can be only one method for each combination of specializers and
6558 qualifiers. As a result this kind of extension point cannot be used by
6559 multiple extensions independently.
6560 @item Removing code previously attached via a @code{:before}, @code{:after} or
6561 @code{:around} method can be cumbersome.
6562 @item There could be other or even multiple extension points besides @code{:before}
6563 and @code{:after} in a single method.
6564 @item Attaching codes to individual objects using eql specializers can be
6565 cumbersome.
6566 @item Introspection of code attached a particular extension point is
6567 cumbersome since this requires enumerating and inspecting the methods of a
6568 generic function.
6569 @end itemize
6570
6571 This library tries to complement some of these weaknesses of method-based
6572 extension-points via the concept of hooks.")
6573 (license license:llgpl))))
6574
6575 (define-public cl-hooks
6576 (sbcl-package->cl-source-package sbcl-cl-hooks))
6577
6578 (define-public ecl-cl-hooks
6579 (sbcl-package->ecl-package sbcl-cl-hooks))
6580
6581 (define-public sbcl-s-sysdeps
6582 (let ((commit "d28246b5dffef9e73a0e0e6cfbc4e878006fe34d")
6583 (revision "1"))
6584 (package
6585 (name "sbcl-s-sysdeps")
6586 (build-system asdf-build-system/sbcl)
6587 (version (git-version "1" revision commit))
6588 (home-page "https://github.com/svenvc/s-sysdeps")
6589 (source
6590 (origin
6591 (method git-fetch)
6592 (uri (git-reference
6593 (url home-page)
6594 (commit commit)))
6595 (file-name (git-file-name name version))
6596 (sha256
6597 (base32
6598 "14b69b81yrxmjlvmm3lfxk04x5v7hqz4fql121334wh72czznfh9"))))
6599 (synopsis "Common Lisp abstraction layer over platform dependent functionality")
6600 (description "@code{s-sysdeps} is an abstraction layer over platform
6601 dependent functionality. This simple package is used as a building block in a
6602 number of other open source projects.
6603
6604 @code{s-sysdeps} abstracts:
6605
6606 @itemize
6607 @item managing processes,
6608 @item implementing a standard TCP/IP server,
6609 @item opening a client TCP/IP socket stream,
6610 @item working with process locks.
6611 @end itemize\n")
6612 (license license:llgpl))))
6613
6614 (define-public cl-s-sysdeps
6615 (sbcl-package->cl-source-package sbcl-s-sysdeps))
6616
6617 (define-public ecl-s-sysdeps
6618 (sbcl-package->ecl-package sbcl-s-sysdeps))
6619
6620 (define-public sbcl-cl-prevalence
6621 (let ((commit "c163c227ed85d430b82cb1e3502f72d4f88e3cfa")
6622 (revision "1"))
6623 (package
6624 (name "sbcl-cl-prevalence")
6625 (build-system asdf-build-system/sbcl)
6626 (version (git-version "5" revision commit))
6627 (home-page "https://github.com/40ants/cl-prevalence")
6628 (source
6629 (origin
6630 (method git-fetch)
6631 (uri (git-reference
6632 (url home-page)
6633 (commit commit)))
6634 (file-name (git-file-name name version))
6635 (sha256
6636 (base32
6637 "1i9zj1q2ahgwch56an21yzbgkynz0kab9fyxkq9mg8p3xrv38jjn"))))
6638 (inputs
6639 `(("s-sysdeps" ,sbcl-s-sysdeps)
6640 ("s-xml" ,sbcl-s-xml)))
6641 (synopsis "Implementation of object prevalence for Common Lisp")
6642 (description "This Common Lisp library implements object prevalence (see
6643 @url{https://en.wikipedia.org/wiki/System_prevalence}). It allows
6644 for (de)serializing to and from s-exps as well as XML. Serialization of arbitrary
6645 classes and cyclic data structures are supported.")
6646 (license license:llgpl))))
6647
6648 (define-public cl-prevalence
6649 (sbcl-package->cl-source-package sbcl-cl-prevalence))
6650
6651 (define-public ecl-cl-prevalence
6652 (sbcl-package->ecl-package sbcl-cl-prevalence))
6653
6654 (define-public sbcl-series
6655 (let ((commit "da9061b336119d1e5214aff9117171d494d5a58a")
6656 (revision "1"))
6657 (package
6658 (name "sbcl-series")
6659 (version (git-version "2.2.11" revision commit))
6660 (source
6661 (origin
6662 (method git-fetch)
6663 (uri (git-reference
6664 (url "git://git.code.sf.net/p/series/series")
6665 (commit commit)))
6666 (file-name (git-file-name name version))
6667 (sha256
6668 (base32
6669 "07hk2lhfx42zk018pxqvn4gs77vd4n4g8m4xxbqaxgca76mifwfw"))))
6670 (build-system asdf-build-system/sbcl)
6671 (arguments
6672 ;; Disable the tests, they are apparently buggy and I didn't find
6673 ;; a simple way to make them run and pass.
6674 '(#:tests? #f))
6675 (synopsis "Series data structure for Common Lisp")
6676 (description
6677 "This Common Lisp library provides a series data structure much like
6678 a sequence, with similar kinds of operations. The difference is that in many
6679 situations, operations on series may be composed functionally and yet execute
6680 iteratively, without the need to construct intermediate series values
6681 explicitly. In this manner, series provide both the clarity of a functional
6682 programming style and the efficiency of an iterative programming style.")
6683 (home-page "http://series.sourceforge.net/")
6684 (license license:expat))))
6685
6686 (define-public cl-series
6687 (sbcl-package->cl-source-package sbcl-series))
6688
6689 (define-public ecl-series
6690 (sbcl-package->ecl-package sbcl-series))
6691
6692 (define-public sbcl-periods
6693 (let ((commit "983d4a57325db3c8def942f163133cec5391ec28")
6694 (revision "1"))
6695 (package
6696 (name "sbcl-periods")
6697 (version (git-version "0.0.2" revision commit))
6698 (source
6699 (origin
6700 (method git-fetch)
6701 (uri (git-reference
6702 (url "https://github.com/jwiegley/periods.git")
6703 (commit commit)))
6704 (file-name (git-file-name name version))
6705 (sha256
6706 (base32
6707 "0z30jr3lxz3cmi019fsl4lgcgwf0yqpn95v9zkkkwgymdrkd4lga"))))
6708 (build-system asdf-build-system/sbcl)
6709 (inputs
6710 `(("local-time" ,sbcl-local-time)))
6711 (synopsis "Common Lisp library for manipulating date/time objects")
6712 (description
6713 "Periods is a Common Lisp library providing a set of utilities for
6714 manipulating times, distances between times, and both contiguous and
6715 discontiguous ranges of time.")
6716 (home-page "https://github.com/jwiegley/periods")
6717 (license license:bsd-3))))
6718
6719 (define-public cl-periods
6720 (sbcl-package->cl-source-package sbcl-periods))
6721
6722 (define-public ecl-periods
6723 (sbcl-package->ecl-package sbcl-periods))
6724
6725 (define-public sbcl-periods-series
6726 (package
6727 (inherit sbcl-periods)
6728 (name "sbcl-periods-series")
6729 (inputs
6730 `(("periods" ,sbcl-periods)
6731 ("series" ,sbcl-series)))
6732 (arguments
6733 '(#:asd-file "periods-series.asd"
6734 #:asd-system-name "periods-series"))
6735 (description
6736 "Periods-series is an extension of the periods Common Lisp library
6737 providing functions compatible with the series Common Lisp library.")))
6738
6739 (define-public cl-periods-series
6740 (sbcl-package->cl-source-package sbcl-periods-series))
6741
6742 (define-public ecl-periods-series
6743 (sbcl-package->ecl-package sbcl-periods-series))
6744
6745 (define-public sbcl-metatilities-base
6746 (let ((commit "6eaa9e3ff0939a93a92109dd0fcd218de85417d5")
6747 (revision "1"))
6748 (package
6749 (name "sbcl-metatilities-base")
6750 (version (git-version "0.6.6" revision commit))
6751 (source
6752 (origin
6753 (method git-fetch)
6754 (uri (git-reference
6755 (url "https://github.com/gwkkwg/metatilities-base.git")
6756 (commit commit)))
6757 (file-name (git-file-name name version))
6758 (sha256
6759 (base32
6760 "0xpa86pdzlnf4v5g64j3ifaplx71sx2ha8b7vvakswi652679ma0"))))
6761 (build-system asdf-build-system/sbcl)
6762 (native-inputs
6763 `(("lift" ,sbcl-lift)))
6764 (synopsis "Core of the metatilities Common Lisp library")
6765 (description
6766 "Metatilities-base is the core of the metatilities Common Lisp library
6767 which implements a set of utilities.")
6768 (home-page "https://common-lisp.net/project/metatilities-base/")
6769 (license license:expat))))
6770
6771 (define-public cl-metatilities-base
6772 (sbcl-package->cl-source-package sbcl-metatilities-base))
6773
6774 (define-public ecl-metatilities-base
6775 (sbcl-package->ecl-package sbcl-metatilities-base))
6776
6777 (define-public sbcl-cl-containers
6778 (let ((commit "3d1df53c22403121bffb5d553cf7acb1503850e7")
6779 (revision "3"))
6780 (package
6781 (name "sbcl-cl-containers")
6782 (version (git-version "0.12.1" revision commit))
6783 (source
6784 (origin
6785 (method git-fetch)
6786 (uri (git-reference
6787 (url "https://github.com/gwkkwg/cl-containers.git")
6788 (commit commit)))
6789 (file-name (git-file-name name version))
6790 (sha256
6791 (base32
6792 "18s6jfq11n8nv9k4biz32pm1s7y9zl054ry1gmdbcf39nisy377y"))))
6793 (build-system asdf-build-system/sbcl)
6794 (native-inputs
6795 `(("lift" ,sbcl-lift)))
6796 (inputs
6797 `(("metatilities-base" ,sbcl-metatilities-base)))
6798 (arguments
6799 '(#:phases
6800 (modify-phases %standard-phases
6801 (add-after 'unpack 'relax-version-checks
6802 (lambda _
6803 (substitute* "cl-containers.asd"
6804 (("\\(:version \"metatilities-base\" \"0\\.6\\.6\"\\)")
6805 "\"metatilities-base\""))
6806 (substitute* "cl-containers-test.asd"
6807 (("\\(:version \"lift\" \"1\\.7\\.0\"\\)")
6808 "\"lift\""))
6809 #t)))))
6810 (synopsis "Container library for Common Lisp")
6811 (description
6812 "Common Lisp ships with a set of powerful built in data structures
6813 including the venerable list, full featured arrays, and hash-tables.
6814 CL-containers enhances and builds on these structures by adding containers
6815 that are not available in native Lisp (for example: binary search trees,
6816 red-black trees, sparse arrays and so on), and by providing a standard
6817 interface so that they are simpler to use and so that changing design
6818 decisions becomes significantly easier.")
6819 (home-page "https://common-lisp.net/project/cl-containers/")
6820 (license license:expat))))
6821
6822 (define-public cl-containers
6823 (sbcl-package->cl-source-package sbcl-cl-containers))
6824
6825 (define-public ecl-cl-containers
6826 (sbcl-package->ecl-package sbcl-cl-containers))
6827
6828 (define-public sbcl-xlunit
6829 (let ((commit "3805d34b1d8dc77f7e0ee527a2490194292dd0fc")
6830 (revision "1"))
6831 (package
6832 (name "sbcl-xlunit")
6833 (version (git-version "0.6.3" revision commit))
6834 (source
6835 (origin
6836 (method git-fetch)
6837 (uri (git-reference
6838 (url "http://git.kpe.io/xlunit.git")
6839 (commit commit)))
6840 (file-name (git-file-name name version))
6841 (sha256
6842 (base32
6843 "0argfmp9nghs4sihyj3f8ch9qfib2b7ll07v5m9ziajgzsfl5xw3"))))
6844 (build-system asdf-build-system/sbcl)
6845 (arguments
6846 '(#:phases
6847 (modify-phases %standard-phases
6848 (add-after 'unpack 'fix-tests
6849 (lambda _
6850 (substitute* "xlunit.asd"
6851 ((" :force t") ""))
6852 #t)))))
6853 (synopsis "Unit testing package for Common Lisp")
6854 (description
6855 "The XLUnit package is a toolkit for building test suites. It is based
6856 on the XPTest package by Craig Brozensky and the JUnit package by Kent Beck.")
6857 (home-page "http://quickdocs.org/xlunit/")
6858 (license license:bsd-3))))
6859
6860 (define-public cl-xlunit
6861 (sbcl-package->cl-source-package sbcl-xlunit))
6862
6863 (define-public ecl-xlunit
6864 (sbcl-package->ecl-package sbcl-xlunit))
6865
6866 (define-public sbcl-fprog
6867 (let ((commit "7016d1a98215f82605d1c158e7a16504ca1f4636")
6868 (revision "1"))
6869 (package
6870 (name "sbcl-fprog")
6871 (version (git-version "1.0.0" revision commit))
6872 (source
6873 (origin
6874 (method git-fetch)
6875 (uri (git-reference
6876 (url "https://github.com/jwiegley/cambl.git")
6877 (commit commit)))
6878 (file-name (git-file-name name version))
6879 (sha256
6880 (base32
6881 "103mry04j2k9vznsxm7wcvccgxkil92cdrv52miwcmxl8daa4jiz"))))
6882 (build-system asdf-build-system/sbcl)
6883 (synopsis "Functional programming utilities for Common Lisp")
6884 (description
6885 "@code{fprog} is a Common Lisp library allowing iteration over
6886 immutable lists sharing identical sublists.")
6887 (home-page "https://github.com/jwiegley/cambl")
6888 (license license:bsd-3))))
6889
6890 (define-public cl-fprog
6891 (sbcl-package->cl-source-package sbcl-fprog))
6892
6893 (define-public ecl-fprog
6894 (sbcl-package->ecl-package sbcl-fprog))
6895
6896 (define-public sbcl-cambl
6897 (let ((commit "7016d1a98215f82605d1c158e7a16504ca1f4636")
6898 (revision "1"))
6899 (package
6900 (inherit sbcl-fprog)
6901 (name "sbcl-cambl")
6902 (version (git-version "4.0.0" revision commit))
6903 (native-inputs
6904 `(("xlunit" ,sbcl-xlunit)))
6905 (inputs
6906 `(("alexandria" ,sbcl-alexandria)
6907 ("cl-containers" ,sbcl-cl-containers)
6908 ("local-time" ,sbcl-local-time)
6909 ("periods" ,sbcl-periods)
6910 ("fprog" ,sbcl-fprog)))
6911 (synopsis "Commoditized amounts and balances for Common Lisp")
6912 (description
6913 "CAMBL is a Common Lisp library providing a convenient facility for
6914 working with commoditized values. It does not allow compound units (and so is
6915 not suited for scientific operations) but does work rather nicely for the
6916 purpose of financial calculations."))))
6917
6918 (define-public cl-cambl
6919 (sbcl-package->cl-source-package sbcl-cambl))
6920
6921 (define-public ecl-cambl
6922 (sbcl-package->ecl-package sbcl-cambl))
6923
6924 (define-public sbcl-cl-ledger
6925 (let ((commit "08e0be41795e804cd36142e51756ad0b1caa377b")
6926 (revision "1"))
6927 (package
6928 (name "sbcl-cl-ledger")
6929 (version (git-version "4.0.0" revision commit))
6930 (source
6931 (origin
6932 (method git-fetch)
6933 (uri (git-reference
6934 (url "https://github.com/ledger/cl-ledger.git")
6935 (commit commit)))
6936 (file-name (git-file-name name version))
6937 (sha256
6938 (base32
6939 "1via0qf6wjcyxnfbmfxjvms0ik9j8rqbifgpmnhrzvkhrq9pv8h1"))))
6940 (build-system asdf-build-system/sbcl)
6941 (inputs
6942 `(("cambl" ,sbcl-cambl)
6943 ("cl-ppcre" ,sbcl-cl-ppcre)
6944 ("local-time" ,sbcl-local-time)
6945 ("periods-series" ,sbcl-periods-series)))
6946 (arguments
6947 '(#:phases
6948 (modify-phases %standard-phases
6949 (add-after 'unpack 'fix-system-definition
6950 (lambda _
6951 (substitute* "cl-ledger.asd"
6952 ((" :build-operation program-op") "")
6953 ((" :build-pathname \"cl-ledger\"") "")
6954 ((" :entry-point \"ledger::main\"") ""))
6955 #t)))))
6956 (synopsis "Common Lisp port of the Ledger accounting system")
6957 (description
6958 "CL-Ledger is a Common Lisp port of the Ledger double-entry accounting
6959 system.")
6960 (home-page "https://github.com/ledger/cl-ledger")
6961 (license license:bsd-3))))
6962
6963 (define-public cl-ledger
6964 (sbcl-package->cl-source-package sbcl-cl-ledger))
6965
6966 (define-public ecl-cl-ledger
6967 (sbcl-package->ecl-package sbcl-cl-ledger))
6968
6969 (define-public sbcl-bst
6970 (let ((commit "34f9c7e8e0a9f2c952fe310ab36cb630d5d9c15a")
6971 (revision "1"))
6972 (package
6973 (name "sbcl-bst")
6974 (version (git-version "1.1" revision commit))
6975 (source
6976 (origin
6977 (method git-fetch)
6978 (uri (git-reference
6979 (url "https://github.com/glv2/bst.git")
6980 (commit commit)))
6981 (file-name (git-file-name name version))
6982 (sha256
6983 (base32
6984 "1amxns7hvvh4arwbh8ciwfzplg127vh37dnbamv1m1kmmnmihfc8"))))
6985 (build-system asdf-build-system/sbcl)
6986 (native-inputs
6987 `(("alexandria" ,sbcl-alexandria)
6988 ("fiveam" ,sbcl-fiveam)))
6989 (synopsis "Binary search tree for Common Lisp")
6990 (description
6991 "BST is a Common Lisp library for working with binary search trees that
6992 can contain any kind of values.")
6993 (home-page "https://github.com/glv2/bst")
6994 (license license:gpl3))))
6995
6996 (define-public cl-bst
6997 (sbcl-package->cl-source-package sbcl-bst))
6998
6999 (define-public ecl-bst
7000 (sbcl-package->ecl-package sbcl-bst))
7001
7002 (define-public sbcl-cl-octet-streams
7003 (package
7004 (name "sbcl-cl-octet-streams")
7005 (version "1.0")
7006 (source
7007 (origin
7008 (method git-fetch)
7009 (uri (git-reference
7010 (url "https://github.com/glv2/cl-octet-streams.git")
7011 (commit (string-append "v" version))))
7012 (file-name (git-file-name name version))
7013 (sha256
7014 (base32
7015 "1d7mn6ydv0j2x4r7clpc9ijjwrnfpxmvhifv8n5j7jh7s744sf8d"))))
7016 (build-system asdf-build-system/sbcl)
7017 (native-inputs
7018 `(("fiveam" ,sbcl-fiveam)))
7019 (inputs
7020 `(("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
7021 (synopsis "In-memory octet streams for Common Lisp")
7022 (description
7023 "CL-octet-streams is a library implementing in-memory octet
7024 streams for Common Lisp. It was inspired by the trivial-octet-streams and
7025 cl-plumbing libraries.")
7026 (home-page "https://github.com/glv2/cl-octet-streams")
7027 (license license:gpl3+)))
7028
7029 (define-public cl-octet-streams
7030 (sbcl-package->cl-source-package sbcl-cl-octet-streams))
7031
7032 (define-public ecl-cl-octet-streams
7033 (sbcl-package->ecl-package sbcl-cl-octet-streams))
7034
7035 (define-public sbcl-lzlib
7036 (let ((commit "0de1db7129fef9a58a059d35a2fa2ecfc5b47b47")
7037 (revision "1"))
7038 (package
7039 (name "sbcl-lzlib")
7040 (version (git-version "1.0" revision commit))
7041 (source
7042 (origin
7043 (method git-fetch)
7044 (uri (git-reference
7045 (url "https://github.com/glv2/cl-lzlib.git")
7046 (commit commit)))
7047 (file-name (git-file-name name version))
7048 (sha256
7049 (base32
7050 "12ny7vj52fgnd8hb8fc8mry92vq4c1x72x2350191m4476j95clz"))))
7051 (build-system asdf-build-system/sbcl)
7052 (native-inputs
7053 `(("fiveam" ,sbcl-fiveam)))
7054 (inputs
7055 `(("cffi" ,sbcl-cffi)
7056 ("cl-octet-streams" ,sbcl-cl-octet-streams)
7057 ("lzlib" ,lzlib)))
7058 (arguments
7059 '(#:phases
7060 (modify-phases %standard-phases
7061 (add-after 'unpack 'fix-paths
7062 (lambda* (#:key inputs #:allow-other-keys)
7063 (substitute* "src/lzlib.lisp"
7064 (("liblz\\.so")
7065 (string-append (assoc-ref inputs "lzlib") "/lib/liblz.so")))
7066 #t)))))
7067 (synopsis "Common Lisp library for lzip (de)compression")
7068 (description
7069 "This Common Lisp library provides functions for lzip (LZMA)
7070 compression/decompression using bindings to the lzlib C library.")
7071 (home-page "https://github.com/glv2/cl-lzlib")
7072 (license license:gpl3+))))
7073
7074 (define-public cl-lzlib
7075 (sbcl-package->cl-source-package sbcl-lzlib))
7076
7077 (define-public ecl-lzlib
7078 (sbcl-package->ecl-package sbcl-lzlib))
7079
7080 (define-public sbcl-chanl
7081 (let ((commit "56e90a126c78b39bb621a01585e8d3b985238e8c")
7082 (revision "1"))
7083 (package
7084 (name "sbcl-chanl")
7085 (version (git-version "0.4.1" revision commit))
7086 (source
7087 (origin
7088 (method git-fetch)
7089 (uri (git-reference
7090 (url "https://github.com/zkat/chanl.git")
7091 (commit commit)))
7092 (file-name (git-file-name name version))
7093 (sha256
7094 (base32
7095 "0b1cf6c12qx5cy1fw2z42jgh566rp3l8nv5qf0qqc569s7bgmrh4"))))
7096 (build-system asdf-build-system/sbcl)
7097 (native-inputs
7098 `(("fiveam" ,sbcl-fiveam)))
7099 (inputs
7100 `(("bordeaux-threads" ,sbcl-bordeaux-threads)))
7101 (synopsis "Portable channel-based concurrency for Common Lisp")
7102 (description "Common Lisp library for channel-based concurrency. In
7103 a nutshell, you create various threads sequentially executing tasks you need
7104 done, and use channel objects to communicate and synchronize the state of these
7105 threads.")
7106 (home-page "https://github.com/zkat/chanl")
7107 (license (list license:expat license:bsd-3)))))
7108
7109 (define-public cl-chanl
7110 (sbcl-package->cl-source-package sbcl-chanl))
7111
7112 (define-public ecl-chanl
7113 (sbcl-package->ecl-package sbcl-chanl))
7114
7115 (define-public sbcl-cl-store
7116 (let ((commit "c787337a16ea8cf8a06227f35933a4ec774746b3")
7117 (revision "1"))
7118 (package
7119 (name "sbcl-cl-store")
7120 (version (git-version "0.8.11" revision commit))
7121 (source
7122 (origin
7123 (method git-fetch)
7124 (uri (git-reference
7125 (url "https://github.com/skypher/cl-store.git")
7126 (commit commit)))
7127 (file-name (git-file-name name version))
7128 (sha256
7129 (base32
7130 "194srkg8nrym19c6i7zbnkzshc1qhqa82m53qnkirz9fw928bqxr"))))
7131 (build-system asdf-build-system/sbcl)
7132 (native-inputs
7133 `(("rt" ,sbcl-rt)))
7134 (synopsis "Common Lisp library to serialize data")
7135 (description
7136 "CL-STORE is a portable serialization package which should give you the
7137 ability to store all Common Lisp data types into streams.")
7138 (home-page "https://www.common-lisp.net/project/cl-store/")
7139 (license license:expat))))
7140
7141 (define-public cl-store
7142 (sbcl-package->cl-source-package sbcl-cl-store))
7143
7144 (define-public ecl-cl-store
7145 (sbcl-package->ecl-package sbcl-cl-store))
7146
7147 (define-public sbcl-cl-gobject-introspection
7148 (let ((commit "7b703e2384945ea0ac39d9b766de434a08d81560")
7149 (revision "0"))
7150 (package
7151 (name "sbcl-cl-gobject-introspection")
7152 (version (git-version "0.3" revision commit))
7153 (home-page "https://github.com/andy128k/cl-gobject-introspection")
7154 (source
7155 (origin
7156 (method git-fetch)
7157 (uri (git-reference
7158 (url home-page)
7159 (commit commit)))
7160 (file-name (git-file-name name version))
7161 (sha256
7162 (base32
7163 "1zcqd2qj14f6b38vys8gr89s6cijsp9r8j43xa8lynilwva7bwyh"))))
7164 (build-system asdf-build-system/sbcl)
7165 (inputs
7166 `(("alexandria" ,sbcl-alexandria)
7167 ("cffi" ,sbcl-cffi)
7168 ("iterate" ,sbcl-iterate)
7169 ("trivial-garbage" ,sbcl-trivial-garbage)
7170 ("glib" ,glib)
7171 ("gobject-introspection" ,gobject-introspection)))
7172 (native-inputs
7173 `(("fiveam" ,sbcl-fiveam)))
7174 (arguments
7175 ;; TODO: Tests fail, see
7176 ;; https://github.com/andy128k/cl-gobject-introspection/issues/70.
7177 '(#:tests? #f
7178 #:phases
7179 (modify-phases %standard-phases
7180 (add-after (quote unpack) (quote fix-paths)
7181 (lambda* (#:key inputs #:allow-other-keys)
7182 (substitute* "src/init.lisp"
7183 (("libgobject-2\\.0\\.so")
7184 (string-append (assoc-ref inputs "glib") "/lib/libgobject-2.0.so"))
7185 (("libgirepository-1\\.0\\.so")
7186 (string-append (assoc-ref inputs "gobject-introspection")
7187 "/lib/libgirepository-1.0.so")))
7188 #t)))))
7189 (synopsis "Common Lisp bindings to GObject Introspection")
7190 (description
7191 "This library is a bridge between Common Lisp and GObject
7192 Introspection, which enables Common Lisp programs to access the full interface
7193 of C+GObject libraries without the need of writing dedicated bindings.")
7194 (license (list license:bsd-3
7195 ;; Tests are under a different license.
7196 license:llgpl)))))
7197
7198 (define-public cl-gobject-introspection
7199 (sbcl-package->cl-source-package sbcl-cl-gobject-introspection))
7200
7201 (define-public sbcl-string-case
7202 (let ((commit "718c761e33749e297cd2809c7ba3ade1985c49f7")
7203 (revision "0"))
7204 (package
7205 (name "sbcl-string-case")
7206 (version (git-version "0.0.2" revision commit))
7207 (home-page "https://github.com/pkhuong/string-case")
7208 (source
7209 (origin
7210 (method git-fetch)
7211 (uri (git-reference
7212 (url home-page)
7213 (commit commit)))
7214 (file-name (git-file-name name version))
7215 (sha256
7216 (base32
7217 "1n5i3yh0h5s636rcnwn7jwqy3rjflikra04lymimhpcshhjsk0md"))))
7218 (build-system asdf-build-system/sbcl)
7219 (synopsis "Efficient string= case in Common Lisp")
7220 (description
7221 "@code{string-case} is a Common Lisp macro that generates specialised decision
7222 trees to dispatch on string equality.")
7223 (license license:bsd-3))))
7224
7225 (define-public cl-string-case
7226 (sbcl-package->cl-source-package sbcl-string-case))
7227
7228 (define-public ecl-string-case
7229 (sbcl-package->ecl-package sbcl-string-case))
7230
7231 (define-public sbcl-global-vars
7232 (let ((commit "c749f32c9b606a1457daa47d59630708ac0c266e")
7233 (revision "0"))
7234 (package
7235 (name "sbcl-global-vars")
7236 (version (git-version "1.0.0" revision commit))
7237 (home-page "https://github.com/lmj/global-vars")
7238 (source
7239 (origin
7240 (method git-fetch)
7241 (uri (git-reference
7242 (url home-page)
7243 (commit commit)))
7244 (file-name (git-file-name name version))
7245 (sha256
7246 (base32
7247 "06m3xc8l3pgsapl8fvsi9wf6y46zs75cp9zn7zh6dc65v4s5wz3d"))))
7248 (build-system asdf-build-system/sbcl)
7249 (synopsis "Efficient global variables in Common Lisp")
7250 (description
7251 "In Common Lisp, a special variable that is never dynamically bound
7252 typically serves as a stand-in for a global variable. The @code{global-vars}
7253 library provides true global variables that are implemented by some compilers.
7254 An attempt to rebind a global variable properly results in a compiler error.
7255 That is, a global variable cannot be dynamically bound.
7256
7257 Global variables therefore allow us to communicate an intended usage that
7258 differs from special variables. Global variables are also more efficient than
7259 special variables, especially in the presence of threads.")
7260 (license license:expat))))
7261
7262 (define-public cl-global-vars
7263 (sbcl-package->cl-source-package sbcl-global-vars))
7264
7265 (define-public ecl-global-vars
7266 (sbcl-package->ecl-package sbcl-global-vars))
7267
7268 (define-public sbcl-trivial-file-size
7269 (let ((commit "1c1d672a01a446ba0391dbb4ffc40be3b0476f23")
7270 (revision "0"))
7271 (package
7272 (name "sbcl-trivial-file-size")
7273 (version (git-version "0.0.0" revision commit))
7274 (home-page "https://github.com/ruricolist/trivial-file-size")
7275 (source
7276 (origin
7277 (method git-fetch)
7278 (uri (git-reference
7279 (url home-page)
7280 (commit commit)))
7281 (file-name (git-file-name name version))
7282 (sha256
7283 (base32
7284 "17pp86c9zs4y7i1sh7q9gbfw9iqv6655k7fz8qbj9ly1ypgxp4qs"))))
7285 (build-system asdf-build-system/sbcl)
7286 (native-inputs
7287 `(("fiveam" ,sbcl-fiveam)))
7288 (synopsis "Size of a file in bytes in Common Lisp")
7289 (description
7290 "The canonical way to determine the size of a file in bytes, using Common Lisp,
7291 is to open the file with an element type of (unsigned-byte 8) and then
7292 calculate the length of the stream. This is less than ideal. In most cases
7293 it is better to get the size of the file from its metadata, using a system
7294 call.
7295
7296 This library exports a single function, file-size-in-octets. It returns the
7297 size of a file in bytes, using system calls when possible.")
7298 (license license:expat))))
7299
7300 (define-public cl-trivial-file-size
7301 (sbcl-package->cl-source-package sbcl-trivial-file-size))
7302
7303 (define-public ecl-trivial-file-size
7304 (sbcl-package->ecl-package sbcl-trivial-file-size))
7305
7306 (define-public sbcl-trivial-macroexpand-all
7307 (let ((commit "933270ac7107477de1bc92c1fd641fe646a7a8a9")
7308 (revision "0"))
7309 (package
7310 (name "sbcl-trivial-macroexpand-all")
7311 (version (git-version "0.0.0" revision commit))
7312 (home-page "https://github.com/cbaggers/trivial-macroexpand-all")
7313 (source
7314 (origin
7315 (method git-fetch)
7316 (uri (git-reference
7317 (url home-page)
7318 (commit commit)))
7319 (file-name (git-file-name name version))
7320 (sha256
7321 (base32
7322 "191hnn4b5j4i3crydmlzbm231kj0h7l8zj6mzj69r1npbzkas4bd"))))
7323 (build-system asdf-build-system/sbcl)
7324 (native-inputs
7325 `(("fiveam" ,sbcl-fiveam)))
7326 (synopsis "Portable macroexpand-all for Common Lisp")
7327 (description
7328 "This library provides a macroexpand-all function that calls the
7329 implementation specific equivalent.")
7330 (license license:unlicense))))
7331
7332 (define-public cl-trivial-macroexpand-all
7333 (sbcl-package->cl-source-package sbcl-trivial-macroexpand-all))
7334
7335 (define-public ecl-trivial-macroexpand-all
7336 (sbcl-package->ecl-package sbcl-trivial-macroexpand-all))
7337
7338 (define-public sbcl-serapeum
7339 (let ((commit "64f0c4a161bbbda7c275012ca1415b4293b9e169")
7340 (revision "1"))
7341 (package
7342 (name "sbcl-serapeum")
7343 (version (git-version "0.0.0" revision commit))
7344 (home-page "https://github.com/ruricolist/serapeum")
7345 (source
7346 (origin
7347 (method git-fetch)
7348 (uri (git-reference
7349 (url home-page)
7350 (commit commit)))
7351 (file-name (git-file-name name version))
7352 (sha256
7353 (base32
7354 "0djnj0py8hdjnk5j6shjq2kbmyxqd5sw79cilcfmpfz4dzjdgkx9"))))
7355 (build-system asdf-build-system/sbcl)
7356 (inputs
7357 `(("alexandria" ,sbcl-alexandria)
7358 ("trivia" ,sbcl-trivia)
7359 ("trivia.quasiquote" ,sbcl-trivia.quasiquote)
7360 ("split-sequence" ,sbcl-split-sequence)
7361 ("string-case" ,sbcl-string-case)
7362 ("parse-number" ,sbcl-parse-number)
7363 ("trivial-garbage" ,sbcl-trivial-garbage)
7364 ("bordeaux-threads" ,sbcl-bordeaux-threads)
7365 ("named-readtables" ,sbcl-named-readtables)
7366 ("fare-quasiquote-extras" ,sbcl-fare-quasiquote-extras)
7367 ("parse-declarations-1.0" ,sbcl-parse-declarations)
7368 ("global-vars" ,sbcl-global-vars)
7369 ("trivial-file-size" ,sbcl-trivial-file-size)
7370 ("trivial-macroexpand-all" ,sbcl-trivial-macroexpand-all)))
7371 (native-inputs
7372 `(("fiveam" ,sbcl-fiveam)
7373 ("local-time" ,sbcl-local-time)))
7374 (arguments
7375 '(#:phases
7376 (modify-phases %standard-phases
7377 (add-after 'unpack 'disable-failing-tests
7378 (lambda* (#:key inputs #:allow-other-keys)
7379 (substitute* "serapeum.asd"
7380 ;; Guix does not have Quicklisp, and probably never will.
7381 (("\\(:file \"quicklisp\"\\)") ""))
7382 #t)))))
7383 (synopsis "Common Lisp utility library beyond Alexandria")
7384 (description
7385 "Serapeum is a conservative library of Common Lisp utilities. It is a
7386 supplement, not a competitor, to Alexandria.")
7387 (license license:expat))))
7388
7389 (define-public cl-serapeum
7390 (sbcl-package->cl-source-package sbcl-serapeum))
7391
7392 (define-public sbcl-arrows
7393 (let ((commit "df7cf0067e0132d9697ac8b1a4f1b9c88d4f5382")
7394 (revision "0"))
7395 (package
7396 (name "sbcl-arrows")
7397 (version (git-version "0.2.0" revision commit))
7398 (source
7399 (origin
7400 (method git-fetch)
7401 (uri (git-reference
7402 (url "https://gitlab.com/Harleqin/arrows.git")
7403 (commit commit)))
7404 (file-name (git-file-name name version))
7405 (sha256
7406 (base32
7407 "042k9vkssrqx9nhp14wdzm942zgdxvp35mba0p2syz98i75im2yy"))))
7408 (build-system asdf-build-system/sbcl)
7409 (native-inputs
7410 `(("hu.dwim.stefil" ,sbcl-hu.dwim.stefil)))
7411 (synopsis "Clojure-like arrow macros for Common Lisp")
7412 (description
7413 "This library implements the @code{->} and @code{->>} macros from
7414 Clojure, as well as several expansions on the idea.")
7415 (home-page "https://gitlab.com/Harleqin/arrows")
7416 (license license:public-domain))))
7417
7418 (define-public cl-arrows
7419 (sbcl-package->cl-source-package sbcl-arrows))
7420
7421 (define-public ecl-arrows
7422 (sbcl-package->ecl-package sbcl-arrows))
7423
7424 (define-public sbcl-simple-parallel-tasks
7425 (let ((commit "db460f7a3f7bbfe2d3a2223ed21e162068d04dda")
7426 (revision "0"))
7427 (package
7428 (name "sbcl-simple-parallel-tasks")
7429 (version (git-version "1.0" revision commit))
7430 (source
7431 (origin
7432 (method git-fetch)
7433 (uri (git-reference
7434 (url "https://github.com/glv2/simple-parallel-tasks.git")
7435 (commit commit)))
7436 (file-name (git-file-name name version))
7437 (sha256
7438 (base32
7439 "0amw3qk23wnlyrsgzszs6rs7y4zvxv8dr03rnqhc60mnm8ds4dd5"))))
7440 (build-system asdf-build-system/sbcl)
7441 (native-inputs
7442 `(("fiveam" ,sbcl-fiveam)))
7443 (inputs
7444 `(("chanl" ,sbcl-chanl)))
7445 (synopsis "Common Lisp library to evaluate some forms in parallel")
7446 (description "This is a simple Common Lisp library to evaluate some
7447 forms in parallel.")
7448 (home-page "https://github.com/glv2/simple-parallel-tasks")
7449 (license license:gpl3))))
7450
7451 (define-public cl-simple-parallel-tasks
7452 (sbcl-package->cl-source-package sbcl-simple-parallel-tasks))
7453
7454 (define-public ecl-simple-parallel-tasks
7455 (sbcl-package->ecl-package sbcl-simple-parallel-tasks))
7456
7457 (define-public sbcl-cl-heap
7458 (package
7459 (name "sbcl-cl-heap")
7460 (version "0.1.6")
7461 (source
7462 (origin
7463 (method url-fetch)
7464 (uri (string-append "https://common-lisp.net/project/cl-heap/releases/"
7465 "cl-heap_" version ".tar.gz"))
7466 (sha256
7467 (base32
7468 "163hb07p2nxz126rpq3cj5dyala24n0by5i5786n2qcr1w0bak4i"))))
7469 (build-system asdf-build-system/sbcl)
7470 (native-inputs
7471 `(("xlunit" ,sbcl-xlunit)))
7472 (arguments
7473 `(#:test-asd-file "cl-heap-tests.asd"))
7474 (synopsis "Heap and priority queue data structures for Common Lisp")
7475 (description
7476 "CL-HEAP provides various implementations of heap data structures (a
7477 binary heap and a Fibonacci heap) as well as an efficient priority queue.")
7478 (home-page "https://common-lisp.net/project/cl-heap/")
7479 (license license:gpl3+)))
7480
7481 (define-public cl-heap
7482 (sbcl-package->cl-source-package sbcl-cl-heap))
7483
7484 (define-public ecl-cl-heap
7485 (sbcl-package->ecl-package sbcl-cl-heap))
7486
7487 (define-public sbcl-curry-compose-reader-macros
7488 (let ((commit "beaa92dedf392726c042184bfd6149fa8d9e6ac2")
7489 (revision "0"))
7490 (package
7491 (name "sbcl-curry-compose-reader-macros")
7492 (version (git-version "1.0.0" revision commit))
7493 (source
7494 (origin
7495 (method git-fetch)
7496 (uri
7497 (git-reference
7498 (url "https://github.com/eschulte/curry-compose-reader-macros.git")
7499 (commit commit)))
7500 (file-name (git-file-name name version))
7501 (sha256
7502 (base32
7503 "0rv9bl8xrad5wfcg5zs1dazvnpmvqz6297lbn8bywsrcfnlf7h98"))))
7504 (build-system asdf-build-system/sbcl)
7505 (inputs
7506 `(("alexandria" ,sbcl-alexandria)
7507 ("named-readtables" ,sbcl-named-readtables)))
7508 (synopsis "Reader macros for partial application and composition")
7509 (description
7510 "This Common Lisp library provides reader macros for concise expression
7511 of function partial application and composition.")
7512 (home-page "https://eschulte.github.io/curry-compose-reader-macros/")
7513 (license license:public-domain))))
7514
7515 (define-public cl-curry-compose-reader-macros
7516 (sbcl-package->cl-source-package sbcl-curry-compose-reader-macros))
7517
7518 (define-public ecl-curry-compose-reader-macros
7519 (sbcl-package->ecl-package sbcl-curry-compose-reader-macros))
7520
7521 (define-public sbcl-yason
7522 (package
7523 (name "sbcl-yason")
7524 (version "0.7.7")
7525 (source
7526 (origin
7527 (method git-fetch)
7528 (uri (git-reference
7529 (url "https://github.com/phmarek/yason.git")
7530 (commit (string-append "v" version))))
7531 (file-name (git-file-name name version))
7532 (sha256
7533 (base32
7534 "0479rbjgbj80jpk5bby18inlv1kfp771a82rlcq5psrz65qqa9bj"))))
7535 (build-system asdf-build-system/sbcl)
7536 (inputs
7537 `(("alexandria" ,sbcl-alexandria)
7538 ("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
7539 (synopsis "Common Lisp JSON parser/encoder")
7540 (description
7541 "YASON is a Common Lisp library for encoding and decoding data in the
7542 JSON interchange format.")
7543 (home-page "https://github.com/phmarek/yason")
7544 (license license:bsd-3)))
7545
7546 (define-public cl-yason
7547 (sbcl-package->cl-source-package sbcl-yason))
7548
7549 (define-public ecl-yason
7550 (sbcl-package->ecl-package sbcl-yason))
7551
7552 (define-public sbcl-stefil
7553 (let ((commit "0398548ec95dceb50fc2c2c03e5fb0ce49b86c7a")
7554 (revision "0"))
7555 (package
7556 (name "sbcl-stefil")
7557 (version (git-version "0.1" revision commit))
7558 (source
7559 (origin
7560 (method git-fetch)
7561 (uri (git-reference
7562 (url "https://gitlab.common-lisp.net/stefil/stefil.git")
7563 (commit commit)))
7564 (file-name (git-file-name name version))
7565 (sha256
7566 (base32
7567 "0bqz64q2szzhf91zyqyssmvrz7da6442rs01808pf3wrdq28bclh"))))
7568 (build-system asdf-build-system/sbcl)
7569 (inputs
7570 `(("alexandria" ,sbcl-alexandria)
7571 ("iterate" ,sbcl-iterate)
7572 ("metabang-bind" ,sbcl-metabang-bind)))
7573 (propagated-inputs
7574 ;; Swank doesn't have a pre-compiled package, therefore we must
7575 ;; propagate its sources.
7576 `(("swank" ,cl-slime-swank)))
7577 (arguments
7578 '(#:phases
7579 (modify-phases %standard-phases
7580 (add-after 'unpack 'drop-unnecessary-dependency
7581 (lambda _
7582 (substitute* "package.lisp"
7583 ((":stefil-system") ""))
7584 #t)))))
7585 (home-page "https://common-lisp.net/project/stefil/index-old.shtml")
7586 (synopsis "Simple test framework")
7587 (description
7588 "Stefil is a simple test framework for Common Lisp, with a focus on
7589 interactive development.")
7590 (license license:public-domain))))
7591
7592 (define-public cl-stefil
7593 (sbcl-package->cl-source-package sbcl-stefil))
7594
7595 (define-public sbcl-graph
7596 (let ((commit "78bf9ec930d8eae4f0861b5be76765fb1e45e24f")
7597 (revision "0"))
7598 (package
7599 (name "sbcl-graph")
7600 (version (git-version "0.0.0" revision commit))
7601 (source
7602 (origin
7603 (method git-fetch)
7604 (uri
7605 (git-reference
7606 (url "https://github.com/eschulte/graph.git")
7607 (commit commit)))
7608 (file-name (git-file-name name version))
7609 (sha256
7610 (base32
7611 "1qpij4xh8bqwc2myahpilcbh916v7vg0acz2fij14d3y0jm02h0g"))
7612 (patches (search-patches "sbcl-graph-asdf-definitions.patch"))))
7613 (build-system asdf-build-system/sbcl)
7614 (native-inputs
7615 `(("stefil" ,sbcl-stefil)))
7616 (inputs
7617 `(("alexandria" ,sbcl-alexandria)
7618 ("cl-heap" ,sbcl-cl-heap)
7619 ("curry-compose-reader-macros" ,sbcl-curry-compose-reader-macros)
7620 ("metabang-bind" ,sbcl-metabang-bind)
7621 ("named-readtables" ,sbcl-named-readtables)))
7622 (arguments
7623 '(#:test-asd-file "graph-test.asd"))
7624 (synopsis "Graph data structure and algorithms for Common Lisp")
7625 (description
7626 "The GRAPH Common Lisp library provides a data structures to represent
7627 graphs, as well as some graph manipulation and analysis algorithms (shortest
7628 path, maximum flow, minimum spanning tree, etc.).")
7629 (home-page "https://eschulte.github.io/graph/")
7630 (license license:gpl3+))))
7631
7632 (define-public cl-graph
7633 (sbcl-package->cl-source-package sbcl-graph))
7634
7635 (define-public sbcl-graph-dot
7636 (package
7637 (inherit sbcl-graph)
7638 (name "sbcl-graph-dot")
7639 (inputs
7640 `(("alexandria" ,sbcl-alexandria)
7641 ("cl-ppcre" ,sbcl-cl-ppcre)
7642 ("curry-compose-reader-macros" ,sbcl-curry-compose-reader-macros)
7643 ("graph" ,sbcl-graph)
7644 ("metabang-bind" ,sbcl-metabang-bind)
7645 ("named-readtables" ,sbcl-named-readtables)))
7646 (arguments
7647 (substitute-keyword-arguments (package-arguments sbcl-graph)
7648 ((#:asd-file _ "") "graph-dot.asd")
7649 ((#:asd-system-name _ #f) "graph-dot")))
7650 (synopsis "Serialize graphs to and from DOT format")))
7651
7652 (define-public sbcl-graph-json
7653 (package
7654 (inherit sbcl-graph)
7655 (name "sbcl-graph-json")
7656 (inputs
7657 `(("alexandria" ,sbcl-alexandria)
7658 ("curry-compose-reader-macros" ,sbcl-curry-compose-reader-macros)
7659 ("graph" ,sbcl-graph)
7660 ("metabang-bind" ,sbcl-metabang-bind)
7661 ("named-readtables" ,sbcl-named-readtables)
7662 ("yason" ,sbcl-yason)))
7663 (arguments
7664 (substitute-keyword-arguments (package-arguments sbcl-graph)
7665 ((#:asd-file _ "") "graph-json.asd")
7666 ((#:asd-system-name _ #f) "graph-json")))
7667 (synopsis "Serialize graphs to and from JSON format")))
7668
7669 (define-public sbcl-trivial-indent
7670 (let ((commit "2d016941751647c6cc5bd471751c2cf68861c94a")
7671 (revision "0"))
7672 (package
7673 (name "sbcl-trivial-indent")
7674 (version (git-version "1.0.0" revision commit))
7675 (source
7676 (origin
7677 (method git-fetch)
7678 (uri
7679 (git-reference
7680 (url "https://github.com/Shinmera/trivial-indent")
7681 (commit commit)))
7682 (file-name (git-file-name name version))
7683 (sha256
7684 (base32
7685 "1sj90nqz17w4jq0ixz00gb9g5g6d2s7l8r17zdby27gxxh51w266"))))
7686 (build-system asdf-build-system/sbcl)
7687 (synopsis "Simple Common Lisp library to allow indentation hints for SWANK")
7688 (description
7689 "This library allows you to define custom indentation hints for your
7690 macros if the one recognised by SLIME automatically produces unwanted
7691 results.")
7692 (home-page "https://shinmera.github.io/trivial-indent/")
7693 (license license:zlib))))
7694
7695 (define-public cl-trivial-indent
7696 (sbcl-package->cl-source-package sbcl-trivial-indent))
7697
7698 (define-public sbcl-documentation-utils
7699 (let ((commit "98630dd5f7e36ae057fa09da3523f42ccb5d1f55")
7700 (revision "0"))
7701 (package
7702 (name "sbcl-documentation-utils")
7703 (version (git-version "1.2.0" revision commit))
7704 (source
7705 (origin
7706 (method git-fetch)
7707 (uri
7708 (git-reference
7709 (url "https://github.com/Shinmera/documentation-utils.git")
7710 (commit commit)))
7711 (file-name (git-file-name name version))
7712 (sha256
7713 (base32
7714 "098qhkqskmmrh4wix34mawf7p5c87yql28r51r75yjxj577k5idq"))))
7715 (build-system asdf-build-system/sbcl)
7716 (inputs
7717 `(("trivial-indent" ,sbcl-trivial-indent)))
7718 (synopsis "Few simple tools to document Common Lisp libraries")
7719 (description
7720 "This is a small library to help you with managing the Common Lisp
7721 docstrings for your library.")
7722 (home-page "https://shinmera.github.io/documentation-utils/")
7723 (license license:zlib))))
7724
7725 (define-public cl-documentation-utils
7726 (sbcl-package->cl-source-package sbcl-documentation-utils))
7727
7728 (define-public ecl-documentation-utils
7729 (sbcl-package->ecl-package sbcl-documentation-utils))
7730
7731 (define-public sbcl-form-fiddle
7732 (let ((commit "e0c23599dbb8cff3e83e012f3d86d0764188ad18")
7733 (revision "0"))
7734 (package
7735 (name "sbcl-form-fiddle")
7736 (version (git-version "1.1.0" revision commit))
7737 (source
7738 (origin
7739 (method git-fetch)
7740 (uri
7741 (git-reference
7742 (url "https://github.com/Shinmera/form-fiddle")
7743 (commit commit)))
7744 (file-name (git-file-name name version))
7745 (sha256
7746 (base32
7747 "041iznc9mpfyrl0sv5893ys9pbb2pvbn9g3clarqi7gsfj483jln"))))
7748 (build-system asdf-build-system/sbcl)
7749 (inputs
7750 `(("documentation-utils" ,sbcl-documentation-utils)))
7751 (synopsis "Utilities to destructure Common Lisp lambda forms")
7752 (description
7753 "Often times we need to destructure a form definition in a Common Lisp
7754 macro. This library provides a set of simple utilities to help with that.")
7755 (home-page "https://shinmera.github.io/form-fiddle/")
7756 (license license:zlib))))
7757
7758 (define-public cl-form-fiddle
7759 (sbcl-package->cl-source-package sbcl-form-fiddle))
7760
7761 (define-public sbcl-parachute
7762 (let ((commit "ca04dd8e43010a6dfffa26dbe1d62af86008d666")
7763 (revision "0"))
7764 (package
7765 (name "sbcl-parachute")
7766 (version (git-version "1.1.1" revision commit))
7767 (source
7768 (origin
7769 (method git-fetch)
7770 (uri
7771 (git-reference
7772 (url "https://github.com/Shinmera/parachute")
7773 (commit commit)))
7774 (file-name (git-file-name name version))
7775 (sha256
7776 (base32
7777 "1mvsm3r0r6a2bg75nw0q7n9vlby3ch45qjl7hnb5k1z2n5x5lh60"))))
7778 (build-system asdf-build-system/sbcl)
7779 (inputs
7780 `(("documentation-utils" ,sbcl-documentation-utils)
7781 ("form-fiddle" ,sbcl-form-fiddle)))
7782 (synopsis "Extensible and cross-compatible testing framework for Common Lisp")
7783 (description
7784 "Parachute is a simple-to-use and extensible testing framework.
7785 In Parachute, things are organised as a bunch of named tests within a package.
7786 Each test can contain a bunch of test forms that make up its body.")
7787 (home-page "https://shinmera.github.io/parachute/")
7788 (license license:zlib))))
7789
7790 (define-public cl-parachute
7791 (sbcl-package->cl-source-package sbcl-parachute))
7792
7793 (define-public sbcl-array-utils
7794 (let ((commit "f90eb9070d0b2205af51126a35033574725e5c56")
7795 (revision "0"))
7796 (package
7797 (name "sbcl-array-utils")
7798 (version (git-version "1.1.1" revision commit))
7799 (source
7800 (origin
7801 (method git-fetch)
7802 (uri
7803 (git-reference
7804 (url "https://github.com/Shinmera/array-utils")
7805 (commit commit)))
7806 (file-name (git-file-name name version))
7807 (sha256
7808 (base32
7809 "0zhwfbpr53vs1ii4sx75dz2k9yhh1xpwdqqpg8nmfndxkmhpbi3x"))))
7810 (build-system asdf-build-system/sbcl)
7811 (native-inputs
7812 `(("parachute" ,sbcl-parachute)))
7813 (inputs
7814 `(("documentation-utils" ,sbcl-documentation-utils)))
7815 (synopsis "Tiny collection of array and vector utilities for Common Lisp")
7816 (description
7817 "A miniature toolkit that contains some useful shifting/popping/pushing
7818 functions for arrays and vectors. Originally from Plump.")
7819 (home-page "https://shinmera.github.io/array-utils/")
7820 (license license:zlib))))
7821
7822 (define-public cl-array-utils
7823 (sbcl-package->cl-source-package sbcl-array-utils))
7824
7825 (define-public sbcl-plump
7826 (let ((commit "16f1231bf706cfbc54d9e55a853ca945e4452a08")
7827 (revision "0"))
7828 (package
7829 (name "sbcl-plump")
7830 (version (git-version "2.0.0" revision commit))
7831 (source
7832 (origin
7833 (method git-fetch)
7834 (uri
7835 (git-reference
7836 (url "https://github.com/Shinmera/plump")
7837 (commit commit)))
7838 (file-name (git-file-name name version))
7839 (sha256
7840 (base32
7841 "0705k8pbip51v74rccgwscwph439f2pma9f915qf1h4bhjx999ip"))))
7842 (build-system asdf-build-system/sbcl)
7843 (inputs
7844 `(("array-utils" ,sbcl-array-utils)
7845 ("documentation-utils" ,sbcl-documentation-utils)))
7846 (synopsis "Lenient XML / XHTML / HTML parser for Common Lisp")
7847 (description
7848 "Plump is a parser for HTML/XML-like documents, focusing on being
7849 lenient towards invalid markup. It can handle things like invalid attributes,
7850 bad closing tag order, unencoded entities, inexistent tag types, self-closing
7851 tags and so on. It parses documents to a class representation and offers a
7852 small set of DOM functions to manipulate it. It can be extended to parse to
7853 your own classes.")
7854 (home-page "https://shinmera.github.io/plump/")
7855 (license license:zlib))))
7856
7857 (define-public cl-plump
7858 (sbcl-package->cl-source-package sbcl-plump))
7859
7860 (define-public sbcl-antik-base
7861 (let ((commit "e4711a69b3d6bf37b5727af05c3cfd03e8428ba3")
7862 (revision "1"))
7863 (package
7864 (name "sbcl-antik-base")
7865 (version (git-version "0.0.0" revision commit))
7866 (source
7867 (origin
7868 (method git-fetch)
7869 (uri (git-reference
7870 (url "https://gitlab.common-lisp.net/antik/antik.git")
7871 (commit commit)))
7872 (file-name (git-file-name name version))
7873 (sha256
7874 (base32
7875 "047ga2c38par2xbgg4qx6hwv06qhf1c1f67as8xvir6s80lip1km"))))
7876 (build-system asdf-build-system/sbcl)
7877 (inputs
7878 `(("alexandria" ,sbcl-alexandria)
7879 ("cl-ppcre" ,sbcl-cl-ppcre)
7880 ("iterate" ,sbcl-iterate)
7881 ("metabang-bind" ,sbcl-metabang-bind)
7882 ("named-readtables" ,sbcl-named-readtables)
7883 ("split-sequence" ,sbcl-split-sequence)))
7884 (native-inputs
7885 `(("lisp-unit" ,sbcl-lisp-unit)))
7886 (synopsis "Scientific and engineering computation in Common Lisp")
7887 (description
7888 "Antik provides a foundation for scientific and engineering
7889 computation in Common Lisp. It is designed not only to facilitate
7890 numerical computations, but to permit the use of numerical computation
7891 libraries and the interchange of data and procedures, whether
7892 foreign (non-Lisp) or Lisp libraries. It is named after the
7893 Antikythera mechanism, one of the oldest examples of a scientific
7894 computer known.")
7895 (home-page "https://common-lisp.net/project/antik/")
7896 (license license:gpl3))))
7897
7898 (define-public cl-antik-base
7899 (sbcl-package->cl-source-package sbcl-antik-base))
7900
7901 (define-public ecl-antik-base
7902 (sbcl-package->ecl-package sbcl-antik-base))
7903
7904 (define-public sbcl-foreign-array
7905 (package
7906 (inherit sbcl-antik-base)
7907 (name "sbcl-foreign-array")
7908 (arguments
7909 (substitute-keyword-arguments (package-arguments sbcl-antik-base)
7910 ((#:asd-file _ "") "foreign-array.asd")
7911 ((#:asd-system-name _ #f) "foreign-array")))
7912 (inputs
7913 `(("antik-base" ,sbcl-antik-base)
7914 ("cffi" ,sbcl-cffi)
7915 ("trivial-garbage" ,sbcl-trivial-garbage)
7916 ("static-vectors" ,sbcl-static-vectors)))
7917 (synopsis "Common Lisp library providing access to foreign arrays")))
7918
7919 (define-public cl-foreign-array
7920 (sbcl-package->cl-source-package sbcl-foreign-array))
7921
7922 (define-public ecl-foreign-array
7923 (sbcl-package->ecl-package sbcl-foreign-array))
7924
7925 (define-public sbcl-physical-dimension
7926 (package
7927 (inherit sbcl-antik-base)
7928 (name "sbcl-physical-dimension")
7929 (inputs
7930 `(("fare-utils" ,sbcl-fare-utils)
7931 ("foreign-array" ,sbcl-foreign-array)
7932 ("trivial-utf-8" ,sbcl-trivial-utf-8)))
7933 (arguments
7934 (substitute-keyword-arguments (package-arguments sbcl-antik-base)
7935 ((#:asd-file _ "") "physical-dimension.asd")
7936 ((#:asd-system-name _ #f) "physical-dimension")))
7937 (synopsis
7938 "Common Lisp library providing computations with physical units")))
7939
7940 (define-public cl-physical-dimension
7941 (sbcl-package->cl-source-package sbcl-physical-dimension))
7942
7943 (define-public sbcl-science-data
7944 (package
7945 (inherit sbcl-antik-base)
7946 (name "sbcl-science-data")
7947 (inputs
7948 `(("physical-dimension" ,sbcl-physical-dimension)
7949 ("drakma" ,sbcl-drakma)))
7950 (arguments
7951 (substitute-keyword-arguments (package-arguments sbcl-antik-base)
7952 ((#:asd-file _ "") "science-data.asd")
7953 ((#:asd-system-name _ #f) "science-data")))
7954 (synopsis
7955 "Common Lisp library for scientific and engineering numerical data")))
7956
7957 (define-public cl-science-data
7958 (sbcl-package->cl-source-package sbcl-science-data))
7959
7960 (define-public sbcl-gsll
7961 (let ((commit "1a8ada22f9cf5ed7372d352b2317f4ccdb6ab308")
7962 (revision "1"))
7963 (package
7964 (name "sbcl-gsll")
7965 (version (git-version "0.0.0" revision commit))
7966 (source
7967 (origin
7968 (method git-fetch)
7969 (uri (git-reference
7970 (url "https://gitlab.common-lisp.net/antik/gsll.git")
7971 (commit commit)))
7972 (file-name (git-file-name name version))
7973 (sha256
7974 (base32
7975 "0z5nypfk26hxihb08p085644afawicrgb4xvadh3lmrn46qbjfn4"))))
7976 (build-system asdf-build-system/sbcl)
7977 (native-inputs
7978 `(("lisp-unit" ,sbcl-lisp-unit)))
7979 (inputs
7980 `(("alexandria" ,sbcl-alexandria)
7981 ("cffi-grovel" ,sbcl-cffi-grovel)
7982 ("cffi-libffi" ,sbcl-cffi-libffi)
7983 ("foreign-array" ,sbcl-foreign-array)
7984 ("gsl" ,gsl)
7985 ("metabang-bind" ,sbcl-metabang-bind)
7986 ("trivial-features" ,sbcl-trivial-features)
7987 ("trivial-garbage" ,sbcl-trivial-garbage)))
7988 (arguments
7989 `(#:tests? #f
7990 #:phases
7991 (modify-phases %standard-phases
7992 (add-after 'unpack 'fix-cffi-paths
7993 (lambda* (#:key inputs #:allow-other-keys)
7994 (substitute* "gsll.asd"
7995 ((":depends-on \\(#:foreign-array")
7996 ":depends-on (#:foreign-array #:cffi-libffi"))
7997 (substitute* "init/init.lisp"
7998 (("libgslcblas.so" all)
7999 (string-append
8000 (assoc-ref inputs "gsl") "/lib/" all)))
8001 (substitute* "init/init.lisp"
8002 (("libgsl.so" all)
8003 (string-append
8004 (assoc-ref inputs "gsl") "/lib/" all))))))))
8005 (synopsis "GNU Scientific Library for Lisp")
8006 (description
8007 "The GNU Scientific Library for Lisp (GSLL) allows the use of the
8008 GNU Scientific Library (GSL) from Common Lisp. This library provides a
8009 full range of common mathematical operations useful to scientific and
8010 engineering applications. The design of the GSLL interface is such
8011 that access to most of the GSL library is possible in a Lisp-natural
8012 way; the intent is that the user not be hampered by the restrictions
8013 of the C language in which GSL has been written. GSLL thus provides
8014 interactive use of GSL for getting quick answers, even for someone not
8015 intending to program in Lisp.")
8016 (home-page "https://common-lisp.net/project/gsll/")
8017 (license license:gpl3))))
8018
8019 (define-public cl-gsll
8020 (sbcl-package->cl-source-package sbcl-gsll))
8021
8022 (define-public sbcl-antik
8023 (package
8024 (inherit sbcl-antik-base)
8025 (name "sbcl-antik")
8026 (inputs
8027 `(("gsll" ,sbcl-gsll)
8028 ("physical-dimension" ,sbcl-physical-dimension)))
8029 (arguments
8030 (substitute-keyword-arguments (package-arguments sbcl-antik-base)
8031 ((#:asd-file _ "") "antik.asd")
8032 ((#:asd-system-name _ #f) "antik")))))
8033
8034 (define-public cl-antik
8035 (sbcl-package->cl-source-package sbcl-antik))
8036
8037 (define-public sbcl-cl-interpol
8038 (let ((commit "1fd288d861db85bc4677cff3cdd6af75fda1afb4")
8039 (revision "1"))
8040 (package
8041 (name "sbcl-cl-interpol")
8042 (version (git-version "0.2.6" revision commit))
8043 (source
8044 (origin
8045 (method git-fetch)
8046 (uri (git-reference
8047 (url "https://github.com/edicl/cl-interpol.git")
8048 (commit commit)))
8049 (file-name (git-file-name name version))
8050 (sha256
8051 (base32
8052 "1hnikak52hmcq1r5f616m6qq1108qnkw80pja950nv1fq5p0ppjn"))))
8053 (build-system asdf-build-system/sbcl)
8054 (inputs
8055 `(("cl-unicode" ,sbcl-cl-unicode)
8056 ("named-readtables" ,sbcl-named-readtables)))
8057 (native-inputs
8058 `(("flexi-streams" ,sbcl-flexi-streams)))
8059 (synopsis "String interpolation for Common Lisp")
8060 (description
8061 "CL-INTERPOL is a library for Common Lisp which modifies the
8062 reader so that you can have interpolation within strings similar to
8063 Perl or Unix Shell scripts. It also provides various ways to insert
8064 arbitrary characters into literal strings even if your editor/IDE
8065 doesn't support them.")
8066 (home-page "https://edicl.github.io/cl-interpol/")
8067 (license license:bsd-3))))
8068
8069 (define-public cl-interpol
8070 (sbcl-package->cl-source-package sbcl-cl-interpol))
8071
8072 (define-public ecl-cl-interpol
8073 (sbcl-package->ecl-package sbcl-cl-interpol))
8074
8075 (define sbcl-symbol-munger-boot0
8076 ;; There is a cyclical dependency between symbol-munger and lisp-unit2.
8077 ;; See https://github.com/AccelerationNet/symbol-munger/issues/4
8078 (let ((commit "cc2bb4b7acd454d756484aec81ba487648385fc3")
8079 (revision "1"))
8080 (package
8081 (name "sbcl-symbol-munger-boot0")
8082 (version (git-version "0.0.1" revision commit))
8083 (source
8084 (origin
8085 (method git-fetch)
8086 (uri (git-reference
8087 (url "https://github.com/AccelerationNet/symbol-munger.git")
8088 (commit commit)))
8089 (file-name (git-file-name name version))
8090 (sha256
8091 (base32
8092 "0diav5ricqsybqvbp4bkxyj3bn3v9n7xb2pqqc4vg1algsw2pyjl"))))
8093 (build-system asdf-build-system/sbcl)
8094 (arguments
8095 `(#:asd-file "symbol-munger.asd"
8096 #:asd-system-name "symbol-munger"))
8097 (inputs
8098 `(("iterate" ,sbcl-iterate)
8099 ("alexandria" ,sbcl-alexandria)))
8100 (native-inputs
8101 `(("lisp-unit" ,sbcl-lisp-unit)))
8102 (synopsis
8103 "Capitalization and spacing conversion functions for Common Lisp")
8104 (description
8105 "This is a Common Lisp library to change the capitalization and spacing
8106 of a string or a symbol. It can convert to and from Lisp, english, underscore
8107 and camel-case rules.")
8108 (home-page "https://github.com/AccelerationNet/symbol-munger")
8109 ;; The package declares a BSD license, but all of the license
8110 ;; text is MIT.
8111 ;; See https://github.com/AccelerationNet/symbol-munger/issues/5
8112 (license license:expat))))
8113
8114 (define sbcl-lisp-unit2-boot0
8115 ;; There is a cyclical dependency between symbol-munger and lisp-unit2.
8116 ;; See https://github.com/AccelerationNet/symbol-munger/issues/4
8117 (let ((commit "fb9721524d1e4e73abb223ee036d74ce14a5505c")
8118 (revision "1"))
8119 (package
8120 (name "sbcl-lisp-unit2-boot0")
8121 (version (git-version "0.2.0" revision commit))
8122 (source
8123 (origin
8124 (method git-fetch)
8125 (uri (git-reference
8126 (url "https://github.com/AccelerationNet/lisp-unit2.git")
8127 (commit commit)))
8128 (file-name (git-file-name name version))
8129 (sha256
8130 (base32
8131 "1rsqy8y0jqll6xn9a593848f5wvd5ribv4csry1ly0hmdhfnqzlp"))))
8132 (build-system asdf-build-system/sbcl)
8133 (arguments
8134 `(#:asd-file "lisp-unit2.asd"
8135 #:asd-system-name "lisp-unit2"))
8136 (inputs
8137 `(("alexandria" ,sbcl-alexandria)
8138 ("cl-interpol" ,sbcl-cl-interpol)
8139 ("iterate" ,sbcl-iterate)
8140 ("symbol-munger-boot0" ,sbcl-symbol-munger-boot0)))
8141 (synopsis "Test Framework for Common Lisp")
8142 (description
8143 "LISP-UNIT2 is a Common Lisp library that supports unit testing in the
8144 style of JUnit for Java. It is a new version of the lisp-unit library written
8145 by Chris Riesbeck.")
8146 (home-page "https://github.com/AccelerationNet/lisp-unit2")
8147 (license license:expat))))
8148
8149 (define-public sbcl-symbol-munger
8150 (let ((commit "97598d4c3c53fd5da72ab78908fbd5d8c7a13416")
8151 (revision "1"))
8152 (package
8153 (name "sbcl-symbol-munger")
8154 (version (git-version "0.0.1" revision commit))
8155 (source
8156 (origin
8157 (method git-fetch)
8158 (uri (git-reference
8159 (url "https://github.com/AccelerationNet/symbol-munger.git")
8160 (commit commit)))
8161 (file-name (git-file-name name version))
8162 (sha256
8163 (base32
8164 "0y8jywjy0ldyhp7bxf16fdvdd2qgqnd7nlhlqfpfnzxcqk4xy1km"))))
8165 (build-system asdf-build-system/sbcl)
8166 (inputs
8167 `(("alexandria" ,sbcl-alexandria)
8168 ("iterate" ,sbcl-iterate)))
8169 (native-inputs
8170 `(("lisp-unit2-boot0" ,sbcl-lisp-unit2-boot0)))
8171 (synopsis
8172 "Capitalization and spacing conversion functions for Common Lisp")
8173 (description
8174 "This is a Common Lisp library to change the capitalization and spacing
8175 of a string or a symbol. It can convert to and from Lisp, english, underscore
8176 and camel-case rules.")
8177 (home-page "https://github.com/AccelerationNet/symbol-munger")
8178 ;; The package declares a BSD license, but all of the license
8179 ;; text is MIT.
8180 ;; See https://github.com/AccelerationNet/symbol-munger/issues/5
8181 (license license:expat))))
8182
8183 (define-public cl-symbol-munger
8184 (sbcl-package->cl-source-package sbcl-symbol-munger))
8185
8186 (define-public ecl-symbol-munger
8187 (sbcl-package->ecl-package sbcl-symbol-munger))
8188
8189 (define-public sbcl-lisp-unit2
8190 (package
8191 (inherit sbcl-lisp-unit2-boot0)
8192 (name "sbcl-lisp-unit2")
8193 (inputs
8194 `(("alexandria" ,sbcl-alexandria)
8195 ("cl-interpol" ,sbcl-cl-interpol)
8196 ("iterate" ,sbcl-iterate)
8197 ("symbol-munger" ,sbcl-symbol-munger)))))
8198
8199 (define-public cl-lisp-unit2
8200 (sbcl-package->cl-source-package sbcl-lisp-unit2))
8201
8202 (define-public ecl-lisp-unit2
8203 (sbcl-package->ecl-package sbcl-lisp-unit2))
8204
8205 (define-public sbcl-cl-csv
8206 (let ((commit "3eba29c8364b033fbe0d189c2500559278b6a362")
8207 (revision "1"))
8208 (package
8209 (name "sbcl-cl-csv")
8210 (version (git-version "1.0.6" revision commit))
8211 (source
8212 (origin
8213 (method git-fetch)
8214 (uri (git-reference
8215 (url "https://github.com/AccelerationNet/cl-csv.git")
8216 (commit commit)))
8217 (file-name (git-file-name name version))
8218 (sha256
8219 (base32
8220 "07h4ni89jzx93clx453hlnnb5g53hhlcmz5hghqv6ysam48lc8g6"))))
8221 (build-system asdf-build-system/sbcl)
8222 (arguments
8223 ;; See: https://github.com/AccelerationNet/cl-csv/pull/34
8224 `(#:tests? #f))
8225 (inputs
8226 `(("alexandria" ,sbcl-alexandria)
8227 ("cl-interpol" ,sbcl-cl-interpol)
8228 ("iterate" ,sbcl-iterate)))
8229 (native-inputs
8230 `(("lisp-unit2" ,sbcl-lisp-unit2)))
8231 (synopsis "Common lisp library for comma-separated values")
8232 (description
8233 "This is a Common Lisp library providing functions to read/write CSV
8234 from/to strings, streams and files.")
8235 (home-page "https://github.com/AccelerationNet/cl-csv")
8236 (license license:bsd-3))))
8237
8238 (define-public cl-csv
8239 (sbcl-package->cl-source-package sbcl-cl-csv))
8240
8241 (define-public ecl-cl-csv
8242 (sbcl-package->ecl-package sbcl-cl-csv))
8243
8244 (define-public sbcl-external-program
8245 (let ((commit "5888b8f1fd3953feeeacecbba4384ddda584a749")
8246 (revision "1"))
8247 (package
8248 (name "sbcl-external-program")
8249 (version (git-version "0.0.6" revision commit))
8250 (source
8251 (origin
8252 (method git-fetch)
8253 (uri (git-reference
8254 (url "https://github.com/sellout/external-program.git")
8255 (commit commit)))
8256 (file-name (git-file-name name version))
8257 (sha256
8258 (base32
8259 "0vww1x3yilb3bjwg6k184vaj4vxyxw4vralhnlm6lk4xac67kc9z"))))
8260 (build-system asdf-build-system/sbcl)
8261 (inputs
8262 `(("trivial-features" ,sbcl-trivial-features)))
8263 (native-inputs
8264 `(("fiveam" ,sbcl-fiveam)))
8265 (synopsis "Common Lisp library for running external programs")
8266 (description
8267 "EXTERNAL-PROGRAM enables running programs outside the Lisp
8268 process. It is an attempt to make the RUN-PROGRAM functionality in
8269 implementations like SBCL and CCL as portable as possible without
8270 sacrificing much in the way of power.")
8271 (home-page "https://github.com/sellout/external-program")
8272 (license license:llgpl))))
8273
8274 (define-public cl-external-program
8275 (sbcl-package->cl-source-package sbcl-external-program))
8276
8277 (define-public ecl-external-program
8278 (sbcl-package->ecl-package sbcl-external-program))
8279
8280 (define sbcl-cl-ana-boot0
8281 (let ((commit "fa7cee4c50aa1c859652813049ba0da7c18a0df9")
8282 (revision "1"))
8283 (package
8284 (name "sbcl-cl-ana-boot0")
8285 (version (git-version "0.0.0" revision commit))
8286 (source
8287 (origin
8288 (method git-fetch)
8289 (uri (git-reference
8290 (url "https://github.com/ghollisjr/cl-ana.git")
8291 (commit commit)))
8292 (file-name (git-file-name name version))
8293 (sha256
8294 (base32
8295 "0mr47l57m276dbpap7irr4fcnk5fgknhf6mgv4043s8h73amk5qh"))))
8296 (build-system asdf-build-system/sbcl)
8297 (synopsis "Common Lisp data analysis library")
8298 (description
8299 "CL-ANA is a data analysis library in Common Lisp providing tabular and
8300 binned data analysis along with nonlinear least squares fitting and
8301 visualization.")
8302 (home-page "https://github.com/ghollisjr/cl-ana")
8303 (license license:gpl3))))
8304
8305 (define-public sbcl-cl-ana.pathname-utils
8306 (package
8307 (inherit sbcl-cl-ana-boot0)
8308 (name "sbcl-cl-ana.pathname-utils")
8309 (arguments
8310 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8311 ((#:asd-file _ "") "pathname-utils/cl-ana.pathname-utils.asd")
8312 ((#:asd-system-name _ #f) "cl-ana.pathname-utils")))))
8313
8314 (define-public cl-ana.pathname-utils
8315 (sbcl-package->cl-source-package sbcl-cl-ana.pathname-utils))
8316
8317 (define-public ecl-cl-ana.pathname-utils
8318 (sbcl-package->ecl-package sbcl-cl-ana.pathname-utils))
8319
8320 (define-public sbcl-cl-ana.package-utils
8321 (package
8322 (inherit sbcl-cl-ana-boot0)
8323 (name "sbcl-cl-ana.package-utils")
8324 (inputs
8325 `(("alexandria" ,sbcl-alexandria)))
8326 (arguments
8327 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8328 ((#:asd-file _ "") "package-utils/cl-ana.package-utils.asd")
8329 ((#:asd-system-name _ #f) "cl-ana.package-utils")))))
8330
8331 (define-public cl-ana.package-utils
8332 (sbcl-package->cl-source-package sbcl-cl-ana.package-utils))
8333
8334 (define-public ecl-cl-ana.package-utils
8335 (sbcl-package->ecl-package sbcl-cl-ana.package-utils))
8336
8337 (define-public sbcl-cl-ana.string-utils
8338 (package
8339 (inherit sbcl-cl-ana-boot0)
8340 (name "sbcl-cl-ana.string-utils")
8341 (inputs
8342 `(("split-sequence" ,sbcl-split-sequence)))
8343 (arguments
8344 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8345 ((#:asd-file _ "") "string-utils/cl-ana.string-utils.asd")
8346 ((#:asd-system-name _ #f) "cl-ana.string-utils")))))
8347
8348 (define-public cl-ana.string-utils
8349 (sbcl-package->cl-source-package sbcl-cl-ana.string-utils))
8350
8351 (define-public ecl-cl-ana.string-utils
8352 (sbcl-package->ecl-package sbcl-cl-ana.string-utils))
8353
8354 (define-public sbcl-cl-ana.functional-utils
8355 (package
8356 (inherit sbcl-cl-ana-boot0)
8357 (name "sbcl-cl-ana.functional-utils")
8358 (arguments
8359 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8360 ((#:asd-file _ "") "functional-utils/cl-ana.functional-utils.asd")
8361 ((#:asd-system-name _ #f) "cl-ana.functional-utils")))))
8362
8363 (define-public cl-ana.functional-utils
8364 (sbcl-package->cl-source-package sbcl-cl-ana.functional-utils))
8365
8366 (define-public ecl-cl-ana.functional-utils
8367 (sbcl-package->ecl-package sbcl-cl-ana.functional-utils))
8368
8369 (define-public sbcl-cl-ana.list-utils
8370 (package
8371 (inherit sbcl-cl-ana-boot0)
8372 (name "sbcl-cl-ana.list-utils")
8373 (inputs
8374 `(("alexandria" ,sbcl-alexandria)
8375 ("cl-ana.functional-utils" ,sbcl-cl-ana.functional-utils)
8376 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)))
8377 (arguments
8378 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8379 ((#:asd-file _ "") "list-utils/cl-ana.list-utils.asd")
8380 ((#:asd-system-name _ #f) "cl-ana.list-utils")))))
8381
8382 (define-public cl-ana.list-utils
8383 (sbcl-package->cl-source-package sbcl-cl-ana.list-utils))
8384
8385 (define-public ecl-cl-ana.list-utils
8386 (sbcl-package->ecl-package sbcl-cl-ana.list-utils))
8387
8388 (define-public sbcl-cl-ana.generic-math
8389 (package
8390 (inherit sbcl-cl-ana-boot0)
8391 (name "sbcl-cl-ana.generic-math")
8392 (inputs
8393 `(("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8394 ("cl-ana.package-utils" ,sbcl-cl-ana.package-utils)))
8395 (arguments
8396 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8397 ((#:asd-file _ "") "generic-math/cl-ana.generic-math.asd")
8398 ((#:asd-system-name _ #f) "cl-ana.generic-math")))))
8399
8400 (define-public cl-ana.generic-math
8401 (sbcl-package->cl-source-package sbcl-cl-ana.generic-math))
8402
8403 (define-public ecl-cl-ana.generic-math
8404 (sbcl-package->ecl-package sbcl-cl-ana.generic-math))
8405
8406 (define-public sbcl-cl-ana.math-functions
8407 (package
8408 (inherit sbcl-cl-ana-boot0)
8409 (name "sbcl-cl-ana.math-functions")
8410 (inputs
8411 `(("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
8412 ("gsll" ,sbcl-gsll)))
8413 (arguments
8414 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8415 ((#:asd-file _ "") "math-functions/cl-ana.math-functions.asd")
8416 ((#:asd-system-name _ #f) "cl-ana.math-functions")))))
8417
8418 (define-public cl-ana.math-functions
8419 (sbcl-package->cl-source-package sbcl-cl-ana.math-functions))
8420
8421 (define-public sbcl-cl-ana.calculus
8422 (package
8423 (inherit sbcl-cl-ana-boot0)
8424 (name "sbcl-cl-ana.calculus")
8425 (inputs
8426 `(("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)))
8427 (arguments
8428 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8429 ((#:asd-file _ "") "calculus/cl-ana.calculus.asd")
8430 ((#:asd-system-name _ #f) "cl-ana.calculus")))))
8431
8432 (define-public cl-ana.calculus
8433 (sbcl-package->cl-source-package sbcl-cl-ana.calculus))
8434
8435 (define-public ecl-cl-ana.calculus
8436 (sbcl-package->ecl-package sbcl-cl-ana.calculus))
8437
8438 (define-public sbcl-cl-ana.symbol-utils
8439 (package
8440 (inherit sbcl-cl-ana-boot0)
8441 (name "sbcl-cl-ana.symbol-utils")
8442 (inputs
8443 `(("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)))
8444 (arguments
8445 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8446 ((#:asd-file _ "") "symbol-utils/cl-ana.symbol-utils.asd")
8447 ((#:asd-system-name _ #f) "cl-ana.symbol-utils")))))
8448
8449 (define-public cl-ana.symbol-utils
8450 (sbcl-package->cl-source-package sbcl-cl-ana.symbol-utils))
8451
8452 (define-public ecl-cl-ana.symbol-utils
8453 (sbcl-package->ecl-package sbcl-cl-ana.symbol-utils))
8454
8455 (define-public sbcl-cl-ana.macro-utils
8456 (package
8457 (inherit sbcl-cl-ana-boot0)
8458 (name "sbcl-cl-ana.macro-utils")
8459 (inputs
8460 `(("alexandria" ,sbcl-alexandria)
8461 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8462 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
8463 ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)
8464 ("split-sequence" ,sbcl-split-sequence)))
8465 (arguments
8466 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8467 ((#:asd-file _ "") "macro-utils/cl-ana.macro-utils.asd")
8468 ((#:asd-system-name _ #f) "cl-ana.macro-utils")))))
8469
8470 (define-public cl-ana.macro-utils
8471 (sbcl-package->cl-source-package sbcl-cl-ana.macro-utils))
8472
8473 (define-public ecl-cl-ana.macro-utils
8474 (sbcl-package->ecl-package sbcl-cl-ana.macro-utils))
8475
8476 (define-public sbcl-cl-ana.binary-tree
8477 (package
8478 (inherit sbcl-cl-ana-boot0)
8479 (name "sbcl-cl-ana.binary-tree")
8480 (inputs
8481 `(("cl-ana.functional-utils" ,sbcl-cl-ana.functional-utils)
8482 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8483 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)))
8484 (arguments
8485 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8486 ((#:asd-file _ "") "binary-tree/cl-ana.binary-tree.asd")
8487 ((#:asd-system-name _ #f) "cl-ana.binary-tree")))))
8488
8489 (define-public cl-ana.binary-tree
8490 (sbcl-package->cl-source-package sbcl-cl-ana.binary-tree))
8491
8492 (define-public ecl-cl-ana.binary-tree
8493 (sbcl-package->ecl-package sbcl-cl-ana.binary-tree))
8494
8495 (define-public sbcl-cl-ana.tensor
8496 (package
8497 (inherit sbcl-cl-ana-boot0)
8498 (name "sbcl-cl-ana.tensor")
8499 (inputs
8500 `(("alexandria" ,sbcl-alexandria)
8501 ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
8502 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8503 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
8504 ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)))
8505 (arguments
8506 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8507 ((#:asd-file _ "") "tensor/cl-ana.tensor.asd")
8508 ((#:asd-system-name _ #f) "cl-ana.tensor")))))
8509
8510 (define-public cl-ana.tensor
8511 (sbcl-package->cl-source-package sbcl-cl-ana.tensor))
8512
8513 (define-public ecl-cl-ana.tensor
8514 (sbcl-package->ecl-package sbcl-cl-ana.tensor))
8515
8516 (define-public sbcl-cl-ana.error-propogation
8517 (package
8518 (inherit sbcl-cl-ana-boot0)
8519 (name "sbcl-cl-ana.error-propogation")
8520 (inputs
8521 `(("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
8522 ("cl-ana.math-functions" ,sbcl-cl-ana.math-functions)))
8523 (arguments
8524 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8525 ((#:asd-file _ "") "error-propogation/cl-ana.error-propogation.asd")
8526 ((#:asd-system-name _ #f) "cl-ana.error-propogation")))))
8527
8528 (define-public cl-ana.error-propogation
8529 (sbcl-package->cl-source-package sbcl-cl-ana.error-propogation))
8530
8531 (define-public sbcl-cl-ana.quantity
8532 (package
8533 (inherit sbcl-cl-ana-boot0)
8534 (name "sbcl-cl-ana.quantity")
8535 (inputs
8536 `(("alexandria" ,sbcl-alexandria)
8537 ("cl-ana.error-propogation" ,sbcl-cl-ana.error-propogation)
8538 ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
8539 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8540 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
8541 ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)))
8542 (arguments
8543 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8544 ((#:asd-file _ "") "quantity/cl-ana.quantity.asd")
8545 ((#:asd-system-name _ #f) "cl-ana.quantity")))))
8546
8547 (define-public cl-ana.quantity
8548 (sbcl-package->cl-source-package sbcl-cl-ana.quantity))
8549
8550 (define-public sbcl-cl-ana.table
8551 (package
8552 (inherit sbcl-cl-ana-boot0)
8553 (name "sbcl-cl-ana.table")
8554 (inputs
8555 `(("alexandria" ,sbcl-alexandria)
8556 ("cl-ana.functional-utils" ,sbcl-cl-ana.functional-utils)
8557 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8558 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
8559 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
8560 ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)))
8561 (arguments
8562 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8563 ((#:asd-file _ "") "table/cl-ana.table.asd")
8564 ((#:asd-system-name _ #f) "cl-ana.table")))))
8565
8566 (define-public cl-ana.table
8567 (sbcl-package->cl-source-package sbcl-cl-ana.table))
8568
8569 (define-public ecl-cl-ana.table
8570 (sbcl-package->ecl-package sbcl-cl-ana.table))
8571
8572 (define-public sbcl-cl-ana.table-utils
8573 (package
8574 (inherit sbcl-cl-ana-boot0)
8575 (name "sbcl-cl-ana.table-utils")
8576 (inputs
8577 `(("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
8578 ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)
8579 ("cl-ana.table" ,sbcl-cl-ana.table)))
8580 (arguments
8581 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8582 ((#:asd-file _ "") "table-utils/cl-ana.table-utils.asd")
8583 ((#:asd-system-name _ #f) "cl-ana.table-utils")))))
8584
8585 (define-public cl-ana.table-utils
8586 (sbcl-package->cl-source-package sbcl-cl-ana.table-utils))
8587
8588 (define-public ecl-cl-ana.table-utils
8589 (sbcl-package->ecl-package sbcl-cl-ana.table-utils))
8590
8591 (define-public sbcl-cl-ana.hdf-cffi
8592 (package
8593 (inherit sbcl-cl-ana-boot0)
8594 (name "sbcl-cl-ana.hdf-cffi")
8595 (inputs
8596 `(("cffi" ,sbcl-cffi)
8597 ("hdf5" ,hdf5-parallel-openmpi)))
8598 (arguments
8599 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8600 ((#:asd-file _ "") "hdf-cffi/cl-ana.hdf-cffi.asd")
8601 ((#:asd-system-name _ #f) "cl-ana.hdf-cffi")
8602 ((#:phases phases '%standard-phases)
8603 `(modify-phases ,phases
8604 (add-after 'unpack 'fix-paths
8605 (lambda* (#:key inputs #:allow-other-keys)
8606 (substitute* "hdf-cffi/hdf-cffi.lisp"
8607 (("/usr/lib/i386-linux-gnu/hdf5/serial/libhdf5.so")
8608 (string-append
8609 (assoc-ref inputs "hdf5")
8610 "/lib/libhdf5.so")))))))))))
8611
8612 (define-public cl-ana.hdf-cffi
8613 (sbcl-package->cl-source-package sbcl-cl-ana.hdf-cffi))
8614
8615 (define-public ecl-cl-ana.hdf-cffi
8616 (sbcl-package->ecl-package sbcl-cl-ana.hdf-cffi))
8617
8618 (define-public sbcl-cl-ana.int-char
8619 (package
8620 (inherit sbcl-cl-ana-boot0)
8621 (name "sbcl-cl-ana.int-char")
8622 (arguments
8623 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8624 ((#:asd-file _ "") "int-char/cl-ana.int-char.asd")
8625 ((#:asd-system-name _ #f) "cl-ana.int-char")))))
8626
8627 (define-public cl-ana.int-char
8628 (sbcl-package->cl-source-package sbcl-cl-ana.int-char))
8629
8630 (define-public ecl-cl-ana.int-char
8631 (sbcl-package->ecl-package sbcl-cl-ana.int-char))
8632
8633 (define-public sbcl-cl-ana.memoization
8634 (package
8635 (inherit sbcl-cl-ana-boot0)
8636 (name "sbcl-cl-ana.memoization")
8637 (inputs
8638 `(("alexandria" ,sbcl-alexandria)))
8639 (arguments
8640 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8641 ((#:asd-file _ "") "memoization/cl-ana.memoization.asd")
8642 ((#:asd-system-name _ #f) "cl-ana.memoization")))))
8643
8644 (define-public cl-ana.memoization
8645 (sbcl-package->cl-source-package sbcl-cl-ana.memoization))
8646
8647 (define-public ecl-cl-ana.memoization
8648 (sbcl-package->ecl-package sbcl-cl-ana.memoization))
8649
8650 (define-public sbcl-cl-ana.typespec
8651 (package
8652 (inherit sbcl-cl-ana-boot0)
8653 (name "sbcl-cl-ana.typespec")
8654 (inputs
8655 `(("alexandria" ,sbcl-alexandria)
8656 ("cffi" ,sbcl-cffi)
8657 ("cl-ana.int-char" ,sbcl-cl-ana.int-char)
8658 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8659 ("cl-ana.memoization" ,sbcl-cl-ana.memoization)
8660 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
8661 ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)
8662 ("cl-ana.tensor" ,sbcl-cl-ana.tensor)))
8663 (arguments
8664 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8665 ((#:asd-file _ "") "typespec/cl-ana.typespec.asd")
8666 ((#:asd-system-name _ #f) "cl-ana.typespec")))))
8667
8668 (define-public cl-ana.typespec
8669 (sbcl-package->cl-source-package sbcl-cl-ana.typespec))
8670
8671 (define-public ecl-cl-ana.typespec
8672 (sbcl-package->ecl-package sbcl-cl-ana.typespec))
8673
8674 (define-public sbcl-cl-ana.hdf-typespec
8675 (package
8676 (inherit sbcl-cl-ana-boot0)
8677 (name "sbcl-cl-ana.hdf-typespec")
8678 (inputs
8679 `(("alexandria" ,sbcl-alexandria)
8680 ("cffi" ,sbcl-cffi)
8681 ("cl-ana.hdf-cffi" ,sbcl-cl-ana.hdf-cffi)
8682 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8683 ("cl-ana.memoization" ,sbcl-cl-ana.memoization)
8684 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
8685 ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)
8686 ("cl-ana.typespec" ,sbcl-cl-ana.typespec)))
8687 (arguments
8688 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8689 ((#:asd-file _ "") "hdf-typespec/cl-ana.hdf-typespec.asd")
8690 ((#:asd-system-name _ #f) "cl-ana.hdf-typespec")))))
8691
8692 (define-public cl-ana.hdf-typespec
8693 (sbcl-package->cl-source-package sbcl-cl-ana.hdf-typespec))
8694
8695 (define-public ecl-cl-ana.hdf-typespec
8696 (sbcl-package->ecl-package sbcl-cl-ana.hdf-typespec))
8697
8698 (define-public sbcl-cl-ana.hdf-utils
8699 (package
8700 (inherit sbcl-cl-ana-boot0)
8701 (name "sbcl-cl-ana.hdf-utils")
8702 (inputs
8703 `(("alexandria" ,sbcl-alexandria)
8704 ("cffi" ,sbcl-cffi)
8705 ("cl-ana.hdf-cffi" ,sbcl-cl-ana.hdf-cffi)
8706 ("cl-ana.hdf-typespec" ,sbcl-cl-ana.hdf-typespec)
8707 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
8708 ("cl-ana.memoization" ,sbcl-cl-ana.memoization)
8709 ("cl-ana.pathname-utils" ,sbcl-cl-ana.pathname-utils)
8710 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
8711 ("cl-ana.typespec" ,sbcl-cl-ana.typespec)))
8712 (arguments
8713 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8714 ((#:asd-file _ "") "hdf-utils/cl-ana.hdf-utils.asd")
8715 ((#:asd-system-name _ #f) "cl-ana.hdf-utils")))))
8716
8717 (define-public cl-ana.hdf-utils
8718 (sbcl-package->cl-source-package sbcl-cl-ana.hdf-utils))
8719
8720 (define-public ecl-cl-ana.hdf-utils
8721 (sbcl-package->ecl-package sbcl-cl-ana.hdf-utils))
8722
8723 (define-public sbcl-cl-ana.typed-table
8724 (package
8725 (inherit sbcl-cl-ana-boot0)
8726 (name "sbcl-cl-ana.typed-table")
8727 (inputs
8728 `(("alexandria" ,sbcl-alexandria)
8729 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8730 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
8731 ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)
8732 ("cl-ana.table" ,sbcl-cl-ana.table)
8733 ("cl-ana.typespec" ,sbcl-cl-ana.typespec)))
8734 (arguments
8735 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8736 ((#:asd-file _ "") "typed-table/cl-ana.typed-table.asd")
8737 ((#:asd-system-name _ #f) "cl-ana.typed-table")))))
8738
8739 (define-public cl-ana.typed-table
8740 (sbcl-package->cl-source-package sbcl-cl-ana.typed-table))
8741
8742 (define-public ecl-cl-ana.typed-table
8743 (sbcl-package->ecl-package sbcl-cl-ana.typed-table))
8744
8745 (define-public sbcl-cl-ana.hdf-table
8746 (package
8747 (inherit sbcl-cl-ana-boot0)
8748 (name "sbcl-cl-ana.hdf-table")
8749 (inputs
8750 `(("alexandria" ,sbcl-alexandria)
8751 ("cl-ana.binary-tree" ,sbcl-cl-ana.binary-tree)
8752 ("cl-ana.hdf-cffi" ,sbcl-cl-ana.hdf-cffi)
8753 ("cl-ana.hdf-typespec" ,sbcl-cl-ana.hdf-typespec)
8754 ("cl-ana.hdf-utils" ,sbcl-cl-ana.hdf-utils)
8755 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8756 ("cl-ana.memoization" ,sbcl-cl-ana.memoization)
8757 ("cl-ana.table" ,sbcl-cl-ana.table)
8758 ("cl-ana.typed-table" ,sbcl-cl-ana.typed-table)
8759 ("cl-ana.typespec" ,sbcl-cl-ana.typespec)))
8760 (arguments
8761 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8762 ((#:asd-file _ "") "hdf-table/cl-ana.hdf-table.asd")
8763 ((#:asd-system-name _ #f) "cl-ana.hdf-table")))))
8764
8765 (define-public cl-ana.hdf-table
8766 (sbcl-package->cl-source-package sbcl-cl-ana.hdf-table))
8767
8768 (define-public ecl-cl-ana.hdf-table
8769 (sbcl-package->ecl-package sbcl-cl-ana.hdf-table))
8770
8771 (define-public sbcl-cl-ana.gsl-cffi
8772 (package
8773 (inherit sbcl-cl-ana-boot0)
8774 (name "sbcl-cl-ana.gsl-cffi")
8775 (inputs
8776 `(("cffi" ,sbcl-cffi)
8777 ("gsl" ,gsl)))
8778 (arguments
8779 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8780 ((#:asd-file _ "") "gsl-cffi/cl-ana.gsl-cffi.asd")
8781 ((#:asd-system-name _ #f) "cl-ana.gsl-cffi")
8782 ((#:phases phases '%standard-phases)
8783 `(modify-phases ,phases
8784 (add-after 'unpack 'fix-paths
8785 (lambda* (#:key inputs #:allow-other-keys)
8786 (substitute* "gsl-cffi/gsl-cffi.lisp"
8787 (("define-foreign-library gsl-cffi" all)
8788 (string-append all " (:unix "
8789 (assoc-ref inputs "gsl")
8790 "/lib/libgsl.so)")))))))))))
8791
8792 (define-public cl-ana.gsl-cffi
8793 (sbcl-package->cl-source-package sbcl-cl-ana.gsl-cffi))
8794
8795 (define-public ecl-cl-ana.gsl-cffi
8796 (sbcl-package->ecl-package sbcl-cl-ana.gsl-cffi))
8797
8798 (define-public sbcl-cl-ana.ntuple-table
8799 (package
8800 (inherit sbcl-cl-ana-boot0)
8801 (name "sbcl-cl-ana.ntuple-table")
8802 (inputs
8803 `(("alexandria" ,sbcl-alexandria)
8804 ("cffi" ,sbcl-cffi)
8805 ("cl-ana.gsl-cffi" ,sbcl-cl-ana.gsl-cffi)
8806 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8807 ("cl-ana.table" ,sbcl-cl-ana.table)
8808 ("cl-ana.typed-table" ,sbcl-cl-ana.typed-table)
8809 ("cl-ana.typespec" ,sbcl-cl-ana.typespec)
8810 ("gsll" ,sbcl-gsll)))
8811 (arguments
8812 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8813 ((#:asd-file _ "") "ntuple-table/cl-ana.ntuple-table.asd")
8814 ((#:asd-system-name _ #f) "cl-ana.ntuple-table")))))
8815
8816 (define-public cl-ana.ntuple-table
8817 (sbcl-package->cl-source-package sbcl-cl-ana.ntuple-table))
8818
8819 (define-public sbcl-cl-ana.csv-table
8820 (package
8821 (inherit sbcl-cl-ana-boot0)
8822 (name "sbcl-cl-ana.csv-table")
8823 (inputs
8824 `(("alexandria" ,sbcl-alexandria)
8825 ("antik" ,sbcl-antik)
8826 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8827 ("cl-ana.table" ,sbcl-cl-ana.table)
8828 ("cl-csv" ,sbcl-cl-csv)
8829 ("iterate" ,sbcl-iterate)))
8830 (arguments
8831 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8832 ((#:asd-file _ "") "csv-table/cl-ana.csv-table.asd")
8833 ((#:asd-system-name _ #f) "cl-ana.csv-table")))))
8834
8835 (define-public cl-ana.csv-table
8836 (sbcl-package->cl-source-package sbcl-cl-ana.csv-table))
8837
8838 (define-public sbcl-cl-ana.reusable-table
8839 (package
8840 (inherit sbcl-cl-ana-boot0)
8841 (name "sbcl-cl-ana.reusable-table")
8842 (inputs
8843 `(("alexandria" ,sbcl-alexandria)
8844 ("cl-ana.table" ,sbcl-cl-ana.table)))
8845 (arguments
8846 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8847 ((#:asd-file _ "") "reusable-table/cl-ana.reusable-table.asd")
8848 ((#:asd-system-name _ #f) "cl-ana.reusable-table")))))
8849
8850 (define-public cl-ana.reusable-table
8851 (sbcl-package->cl-source-package sbcl-cl-ana.reusable-table))
8852
8853 (define-public ecl-cl-ana.reusable-table
8854 (sbcl-package->ecl-package sbcl-cl-ana.reusable-table))
8855
8856 (define-public sbcl-cl-ana.linear-algebra
8857 (package
8858 (inherit sbcl-cl-ana-boot0)
8859 (name "sbcl-cl-ana.linear-algebra")
8860 (inputs
8861 `(("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
8862 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8863 ("cl-ana.math-functions" ,sbcl-cl-ana.math-functions)
8864 ("cl-ana.tensor" ,sbcl-cl-ana.tensor)
8865 ("gsll" ,sbcl-gsll)))
8866 (arguments
8867 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8868 ((#:asd-file _ "") "linear-algebra/cl-ana.linear-algebra.asd")
8869 ((#:asd-system-name _ #f) "cl-ana.linear-algebra")))))
8870
8871 (define-public cl-ana.linear-algebra
8872 (sbcl-package->cl-source-package sbcl-cl-ana.linear-algebra))
8873
8874 (define-public sbcl-cl-ana.lorentz
8875 (package
8876 (inherit sbcl-cl-ana-boot0)
8877 (name "sbcl-cl-ana.lorentz")
8878 (inputs
8879 `(("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
8880 ("cl-ana.linear-algebra" ,sbcl-cl-ana.linear-algebra)
8881 ("cl-ana.tensor" ,sbcl-cl-ana.tensor)
8882 ("iterate" ,sbcl-iterate)))
8883 (arguments
8884 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8885 ((#:asd-file _ "") "lorentz/cl-ana.lorentz.asd")
8886 ((#:asd-system-name _ #f) "cl-ana.lorentz")))))
8887
8888 (define-public cl-ana.lorentz
8889 (sbcl-package->cl-source-package sbcl-cl-ana.lorentz))
8890
8891 (define-public sbcl-cl-ana.clos-utils
8892 (package
8893 (inherit sbcl-cl-ana-boot0)
8894 (name "sbcl-cl-ana.clos-utils")
8895 (inputs
8896 `(("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8897 ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)
8898 ("cl-ana.tensor" ,sbcl-cl-ana.tensor)
8899 ("closer-mop" ,sbcl-closer-mop)))
8900 (arguments
8901 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8902 ((#:asd-file _ "") "clos-utils/cl-ana.clos-utils.asd")
8903 ((#:asd-system-name _ #f) "cl-ana.clos-utils")))))
8904
8905 (define-public cl-ana.clos-utils
8906 (sbcl-package->cl-source-package sbcl-cl-ana.clos-utils))
8907
8908 (define-public ecl-cl-ana.clos-utils
8909 (sbcl-package->ecl-package sbcl-cl-ana.clos-utils))
8910
8911 (define-public sbcl-cl-ana.hash-table-utils
8912 (package
8913 (inherit sbcl-cl-ana-boot0)
8914 (name "sbcl-cl-ana.hash-table-utils")
8915 (arguments
8916 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8917 ((#:asd-file _ "") "hash-table-utils/cl-ana.hash-table-utils.asd")
8918 ((#:asd-system-name _ #f) "cl-ana.hash-table-utils")))))
8919
8920 (define-public cl-ana.hash-table-utils
8921 (sbcl-package->cl-source-package sbcl-cl-ana.hash-table-utils))
8922
8923 (define-public ecl-cl-ana.hash-table-utils
8924 (sbcl-package->ecl-package sbcl-cl-ana.hash-table-utils))
8925
8926 (define-public sbcl-cl-ana.map
8927 (package
8928 (inherit sbcl-cl-ana-boot0)
8929 (name "sbcl-cl-ana.map")
8930 (inputs
8931 `(("cl-ana.hash-table-utils" ,sbcl-cl-ana.hash-table-utils)))
8932 (arguments
8933 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8934 ((#:asd-file _ "") "map/cl-ana.map.asd")
8935 ((#:asd-system-name _ #f) "cl-ana.map")))))
8936
8937 (define-public cl-ana.map
8938 (sbcl-package->cl-source-package sbcl-cl-ana.map))
8939
8940 (define-public ecl-cl-ana.map
8941 (sbcl-package->ecl-package sbcl-cl-ana.map))
8942
8943 (define-public sbcl-cl-ana.fitting
8944 (package
8945 (inherit sbcl-cl-ana-boot0)
8946 (name "sbcl-cl-ana.fitting")
8947 (inputs
8948 `(("alexandria" ,sbcl-alexandria)
8949 ("cl-ana.error-propogation" ,sbcl-cl-ana.error-propogation)
8950 ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
8951 ("cl-ana.map" ,sbcl-cl-ana.map)
8952 ("cl-ana.math-functions" ,sbcl-cl-ana.math-functions)
8953 ("gsll" ,sbcl-gsll)))
8954 (arguments
8955 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8956 ((#:asd-file _ "") "fitting/cl-ana.fitting.asd")
8957 ((#:asd-system-name _ #f) "cl-ana.fitting")))))
8958
8959 (define-public cl-ana.fitting
8960 (sbcl-package->cl-source-package sbcl-cl-ana.fitting))
8961
8962 (define-public sbcl-cl-ana.histogram
8963 (package
8964 (inherit sbcl-cl-ana-boot0)
8965 (name "sbcl-cl-ana.histogram")
8966 (inputs
8967 `(("alexandria" ,sbcl-alexandria)
8968 ("iterate" ,sbcl-iterate)
8969 ("cl-ana.binary-tree" ,sbcl-cl-ana.binary-tree)
8970 ("cl-ana.clos-utils" ,sbcl-cl-ana.clos-utils)
8971 ("cl-ana.fitting" ,sbcl-cl-ana.fitting)
8972 ("cl-ana.functional-utils" ,sbcl-cl-ana.functional-utils)
8973 ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
8974 ("cl-ana.hash-table-utils" ,sbcl-cl-ana.hash-table-utils)
8975 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8976 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
8977 ("cl-ana.map" ,sbcl-cl-ana.map)
8978 ("cl-ana.tensor" ,sbcl-cl-ana.tensor)))
8979 (arguments
8980 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8981 ((#:asd-file _ "") "histogram/cl-ana.histogram.asd")
8982 ((#:asd-system-name _ #f) "cl-ana.histogram")))))
8983
8984 (define-public cl-ana.histogram
8985 (sbcl-package->cl-source-package sbcl-cl-ana.histogram))
8986
8987 (define-public sbcl-cl-ana.file-utils
8988 (package
8989 (inherit sbcl-cl-ana-boot0)
8990 (name "sbcl-cl-ana.file-utils")
8991 (inputs
8992 `(("external-program" ,sbcl-external-program)
8993 ("split-sequence" ,sbcl-split-sequence)))
8994 (arguments
8995 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8996 ((#:asd-file _ "") "file-utils/cl-ana.file-utils.asd")
8997 ((#:asd-system-name _ #f) "cl-ana.file-utils")))))
8998
8999 (define-public cl-ana.file-utils
9000 (sbcl-package->cl-source-package sbcl-cl-ana.file-utils))
9001
9002 (define-public ecl-cl-ana.file-utils
9003 (sbcl-package->ecl-package sbcl-cl-ana.file-utils))
9004
9005 (define-public sbcl-cl-ana.statistics
9006 (package
9007 (inherit sbcl-cl-ana-boot0)
9008 (name "sbcl-cl-ana.statistics")
9009 (inputs
9010 `(("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
9011 ("cl-ana.histogram" ,sbcl-cl-ana.histogram)
9012 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
9013 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
9014 ("cl-ana.map" ,sbcl-cl-ana.map)))
9015 (arguments
9016 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9017 ((#:asd-file _ "") "statistics/cl-ana.statistics.asd")
9018 ((#:asd-system-name _ #f) "cl-ana.statistics")))))
9019
9020 (define-public cl-ana.statistics
9021 (sbcl-package->cl-source-package sbcl-cl-ana.statistics))
9022
9023 (define-public sbcl-cl-ana.gnuplot-interface
9024 (package
9025 (inherit sbcl-cl-ana-boot0)
9026 (name "sbcl-cl-ana.gnuplot-interface")
9027 (inputs
9028 `(("external-program" ,sbcl-external-program)))
9029 (arguments
9030 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9031 ((#:asd-file _ "") "gnuplot-interface/cl-ana.gnuplot-interface.asd")
9032 ((#:asd-system-name _ #f) "cl-ana.gnuplot-interface")))))
9033
9034 (define-public cl-ana.gnuplot-interface
9035 (sbcl-package->cl-source-package sbcl-cl-ana.gnuplot-interface))
9036
9037 (define-public ecl-cl-ana.gnuplot-interface
9038 (sbcl-package->ecl-package sbcl-cl-ana.gnuplot-interface))
9039
9040 (define-public sbcl-cl-ana.plotting
9041 (package
9042 (inherit sbcl-cl-ana-boot0)
9043 (name "sbcl-cl-ana.plotting")
9044 (inputs
9045 `(("alexandria" ,sbcl-alexandria)
9046 ("cl-ana.error-propogation" ,sbcl-cl-ana.error-propogation)
9047 ("cl-ana.functional-utils" ,sbcl-cl-ana.functional-utils)
9048 ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
9049 ("cl-ana.gnuplot-interface" ,sbcl-cl-ana.gnuplot-interface)
9050 ("cl-ana.histogram" ,sbcl-cl-ana.histogram)
9051 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
9052 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
9053 ("cl-ana.map" ,sbcl-cl-ana.map)
9054 ("cl-ana.math-functions" ,sbcl-cl-ana.math-functions)
9055 ("cl-ana.pathname-utils" ,sbcl-cl-ana.pathname-utils)
9056 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
9057 ("cl-ana.tensor" ,sbcl-cl-ana.tensor)
9058 ("external-program" ,sbcl-external-program)
9059 ("split-sequence" ,sbcl-split-sequence)))
9060 (arguments
9061 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9062 ((#:asd-file _ "") "plotting/cl-ana.plotting.asd")
9063 ((#:asd-system-name _ #f) "cl-ana.plotting")))))
9064
9065 (define-public cl-ana.plotting
9066 (sbcl-package->cl-source-package sbcl-cl-ana.plotting))
9067
9068 (define-public sbcl-cl-ana.table-viewing
9069 (package
9070 (inherit sbcl-cl-ana-boot0)
9071 (name "sbcl-cl-ana.table-viewing")
9072 (inputs
9073 `(("alexandria" ,sbcl-alexandria)
9074 ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
9075 ("cl-ana.histogram" ,sbcl-cl-ana.histogram)
9076 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
9077 ("cl-ana.plotting" ,sbcl-cl-ana.plotting)
9078 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
9079 ("cl-ana.table" ,sbcl-cl-ana.table)))
9080 (arguments
9081 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9082 ((#:asd-file _ "") "table-viewing/cl-ana.table-viewing.asd")
9083 ((#:asd-system-name _ #f) "cl-ana.table-viewing")))))
9084
9085 (define-public cl-ana.table-viewing
9086 (sbcl-package->cl-source-package sbcl-cl-ana.table-viewing))
9087
9088 (define-public sbcl-cl-ana.serialization
9089 (package
9090 (inherit sbcl-cl-ana-boot0)
9091 (name "sbcl-cl-ana.serialization")
9092 (inputs
9093 `(("cl-ana.error-propogation" ,sbcl-cl-ana.error-propogation)
9094 ("cl-ana.hdf-utils" ,sbcl-cl-ana.hdf-utils)
9095 ("cl-ana.hdf-table" ,sbcl-cl-ana.hdf-table)
9096 ("cl-ana.histogram" ,sbcl-cl-ana.histogram)
9097 ("cl-ana.int-char" ,sbcl-cl-ana.int-char)
9098 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
9099 ("cl-ana.typespec" ,sbcl-cl-ana.typespec)))
9100 (arguments
9101 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9102 ((#:asd-file _ "") "serialization/cl-ana.serialization.asd")
9103 ((#:asd-system-name _ #f) "cl-ana.serialization")))))
9104
9105 (define-public cl-ana.serialization
9106 (sbcl-package->cl-source-package sbcl-cl-ana.serialization))
9107
9108 (define-public sbcl-cl-ana.makeres
9109 (package
9110 (inherit sbcl-cl-ana-boot0)
9111 (name "sbcl-cl-ana.makeres")
9112 (inputs
9113 `(("alexandria" ,sbcl-alexandria)
9114 ("cl-ana.error-propogation" ,sbcl-cl-ana.error-propogation)
9115 ("cl-ana.file-utils" ,sbcl-cl-ana.file-utils)
9116 ("cl-ana.functional-utils" ,sbcl-cl-ana.functional-utils)
9117 ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
9118 ("cl-ana.hash-table-utils" ,sbcl-cl-ana.hash-table-utils)
9119 ("cl-ana.hdf-utils" ,sbcl-cl-ana.hdf-utils)
9120 ("cl-ana.histogram" ,sbcl-cl-ana.histogram)
9121 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
9122 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
9123 ("cl-ana.map" ,sbcl-cl-ana.map)
9124 ("cl-ana.memoization" ,sbcl-cl-ana.memoization)
9125 ("cl-ana.pathname-utils" ,sbcl-cl-ana.pathname-utils)
9126 ("cl-ana.plotting" ,sbcl-cl-ana.plotting)
9127 ("cl-ana.reusable-table" ,sbcl-cl-ana.reusable-table)
9128 ("cl-ana.serialization" ,sbcl-cl-ana.serialization)
9129 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
9130 ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)
9131 ("cl-ana.table" ,sbcl-cl-ana.table)
9132 ("external-program" ,sbcl-external-program)))
9133 (native-inputs
9134 `(("cl-fad" ,sbcl-cl-fad)))
9135 (arguments
9136 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9137 ((#:asd-file _ "") "makeres/cl-ana.makeres.asd")
9138 ((#:asd-system-name _ #f) "cl-ana.makeres")))))
9139
9140 (define-public cl-ana.makeres
9141 (sbcl-package->cl-source-package sbcl-cl-ana.makeres))
9142
9143 (define-public sbcl-cl-ana.makeres-macro
9144 (package
9145 (inherit sbcl-cl-ana-boot0)
9146 (name "sbcl-cl-ana.makeres-macro")
9147 (inputs
9148 `(("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
9149 ("cl-ana.makeres" ,sbcl-cl-ana.makeres)))
9150 (arguments
9151 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9152 ((#:asd-file _ "") "makeres-macro/cl-ana.makeres-macro.asd")
9153 ((#:asd-system-name _ #f) "cl-ana.makeres-macro")))))
9154
9155 (define-public cl-ana.makeres-macro
9156 (sbcl-package->cl-source-package sbcl-cl-ana.makeres-macro))
9157
9158 (define-public sbcl-cl-ana.makeres-block
9159 (package
9160 (inherit sbcl-cl-ana-boot0)
9161 (name "sbcl-cl-ana.makeres-block")
9162 (inputs
9163 `(("alexandria" ,sbcl-alexandria)
9164 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
9165 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
9166 ("cl-ana.makeres" ,sbcl-cl-ana.makeres)))
9167 (arguments
9168 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9169 ((#:asd-file _ "") "makeres-block/cl-ana.makeres-block.asd")
9170 ((#:asd-system-name _ #f) "cl-ana.makeres-block")))))
9171
9172 (define-public cl-ana.makeres-block
9173 (sbcl-package->cl-source-package sbcl-cl-ana.makeres-block))
9174
9175 (define-public sbcl-cl-ana.makeres-progress
9176 (package
9177 (inherit sbcl-cl-ana-boot0)
9178 (name "sbcl-cl-ana.makeres-progress")
9179 (inputs
9180 `(("alexandria" ,sbcl-alexandria)
9181 ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
9182 ("cl-ana.makeres" ,sbcl-cl-ana.makeres)))
9183 (arguments
9184 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9185 ((#:asd-file _ "") "makeres-progress/cl-ana.makeres-progress.asd")
9186 ((#:asd-system-name _ #f) "cl-ana.makeres-progress")))))
9187
9188 (define-public cl-ana.makeres-progress
9189 (sbcl-package->cl-source-package sbcl-cl-ana.makeres-progress))
9190
9191 (define-public sbcl-cl-ana.makeres-table
9192 (package
9193 (inherit sbcl-cl-ana-boot0)
9194 (name "sbcl-cl-ana.makeres-table")
9195 (inputs
9196 `(("cl-ana.csv-table" ,sbcl-cl-ana.csv-table)
9197 ("cl-ana.hash-table-utils" ,sbcl-cl-ana.hash-table-utils)
9198 ("cl-ana.hdf-table" ,sbcl-cl-ana.hdf-table)
9199 ("cl-ana.hdf-utils" ,sbcl-cl-ana.hdf-utils)
9200 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
9201 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
9202 ("cl-ana.makeres" ,sbcl-cl-ana.makeres)
9203 ("cl-ana.makeres-macro" ,sbcl-cl-ana.makeres-macro)
9204 ("cl-ana.memoization" ,sbcl-cl-ana.memoization)
9205 ("cl-ana.ntuple-table" ,sbcl-cl-ana.ntuple-table)
9206 ("cl-ana.reusable-table" ,sbcl-cl-ana.reusable-table)
9207 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
9208 ("cl-ana.table" ,sbcl-cl-ana.table)))
9209 (native-inputs
9210 `(("cl-fad" ,sbcl-cl-fad)))
9211 (arguments
9212 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9213 ((#:asd-file _ "") "makeres-table/cl-ana.makeres-table.asd")
9214 ((#:asd-system-name _ #f) "cl-ana.makeres-table")))))
9215
9216 (define-public cl-ana.makeres-table
9217 (sbcl-package->cl-source-package sbcl-cl-ana.makeres-table))
9218
9219 (define-public sbcl-cl-ana.makeres-graphviz
9220 (package
9221 (inherit sbcl-cl-ana-boot0)
9222 (name "sbcl-cl-ana.makeres-graphviz")
9223 (inputs
9224 `(("cl-ana.makeres" ,sbcl-cl-ana.makeres)
9225 ("external-program" ,sbcl-external-program)))
9226 (arguments
9227 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9228 ((#:asd-file _ "") "makeres-graphviz/cl-ana.makeres-graphviz.asd")
9229 ((#:asd-system-name _ #f) "cl-ana.makeres-graphviz")))))
9230
9231 (define-public cl-ana.makeres-graphviz
9232 (sbcl-package->cl-source-package sbcl-cl-ana.makeres-graphviz))
9233
9234 (define-public sbcl-cl-ana.makeres-branch
9235 (package
9236 (inherit sbcl-cl-ana-boot0)
9237 (name "sbcl-cl-ana.makeres-branch")
9238 (inputs
9239 `(("alexandria" ,sbcl-alexandria)
9240 ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
9241 ("cl-ana.hash-table-utils" ,sbcl-cl-ana.hash-table-utils)
9242 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
9243 ("cl-ana.map" ,sbcl-cl-ana.map)
9244 ("cl-ana.makeres" ,sbcl-cl-ana.makeres)))
9245 (arguments
9246 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9247 ((#:asd-file _ "") "makeres-branch/cl-ana.makeres-branch.asd")
9248 ((#:asd-system-name _ #f) "cl-ana.makeres-branch")))))
9249
9250 (define-public cl-ana.makeres-branch
9251 (sbcl-package->cl-source-package sbcl-cl-ana.makeres-branch))
9252
9253 (define-public sbcl-cl-ana.makeres-utils
9254 (package
9255 (inherit sbcl-cl-ana-boot0)
9256 (name "sbcl-cl-ana.makeres-utils")
9257 (inputs
9258 `(("alexandria" ,sbcl-alexandria)
9259 ("cl-ana.file-utils" ,sbcl-cl-ana.file-utils)
9260 ("cl-ana.fitting" ,sbcl-cl-ana.fitting)
9261 ("cl-ana.functional-utils" ,sbcl-cl-ana.functional-utils)
9262 ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
9263 ("cl-ana.histogram" ,sbcl-cl-ana.histogram)
9264 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
9265 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
9266 ("cl-ana.makeres" ,sbcl-cl-ana.makeres)
9267 ("cl-ana.map" ,sbcl-cl-ana.map)
9268 ("cl-ana.pathname-utils" ,sbcl-cl-ana.pathname-utils)
9269 ("cl-ana.plotting" ,sbcl-cl-ana.plotting)
9270 ("cl-ana.reusable-table" ,sbcl-cl-ana.reusable-table)
9271 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
9272 ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)
9273 ("cl-ana.table" ,sbcl-cl-ana.table)))
9274 (native-inputs
9275 `(("cl-fad" ,sbcl-cl-fad)))
9276 (arguments
9277 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9278 ((#:asd-file _ "") "makeres-utils/cl-ana.makeres-utils.asd")
9279 ((#:asd-system-name _ #f) "cl-ana.makeres-utils")))))
9280
9281 (define-public cl-ana.makeres-utils
9282 (sbcl-package->cl-source-package sbcl-cl-ana.makeres-utils))
9283
9284 (define-public sbcl-cl-ana.statistical-learning
9285 (package
9286 (inherit sbcl-cl-ana-boot0)
9287 (name "sbcl-cl-ana.statistical-learning")
9288 (inputs
9289 `(("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
9290 ("cl-ana.functional-utils" ,sbcl-cl-ana.functional-utils)
9291 ("cl-ana.histogram" ,sbcl-cl-ana.histogram)
9292 ("cl-ana.linear-algebra" ,sbcl-cl-ana.linear-algebra)
9293 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
9294 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
9295 ("cl-ana.math-functions" ,sbcl-cl-ana.math-functions)
9296 ("cl-ana.map" ,sbcl-cl-ana.map)
9297 ("cl-ana.statistics" ,sbcl-cl-ana.statistics)))
9298 (native-inputs
9299 `(("cl-fad" ,sbcl-cl-fad)))
9300 (arguments
9301 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9302 ((#:asd-file _ "")
9303 "statistical-learning/cl-ana.statistical-learning.asd")
9304 ((#:asd-system-name _ #f) "cl-ana.statistical-learning")))))
9305
9306 (define-public cl-ana.statistical-learning
9307 (sbcl-package->cl-source-package sbcl-cl-ana.statistical-learning))
9308
9309 (define-public sbcl-cl-ana
9310 (package
9311 (inherit sbcl-cl-ana-boot0)
9312 (name "sbcl-cl-ana")
9313 (inputs
9314 `(("cl-ana.binary-tree" ,sbcl-cl-ana.binary-tree)
9315 ("cl-ana.calculus" ,sbcl-cl-ana.calculus)
9316 ("cl-ana.clos-utils" ,sbcl-cl-ana.clos-utils)
9317 ("cl-ana.csv-table" ,sbcl-cl-ana.csv-table)
9318 ("cl-ana.error-propogation" ,sbcl-cl-ana.error-propogation)
9319 ("cl-ana.file-utils" ,sbcl-cl-ana.file-utils)
9320 ("cl-ana.fitting" ,sbcl-cl-ana.fitting)
9321 ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
9322 ("cl-ana.hash-table-utils" ,sbcl-cl-ana.hash-table-utils)
9323 ("cl-ana.hdf-table" ,sbcl-cl-ana.hdf-table)
9324 ("cl-ana.histogram" ,sbcl-cl-ana.histogram)
9325 ("cl-ana.int-char" ,sbcl-cl-ana.int-char)
9326 ("cl-ana.linear-algebra" ,sbcl-cl-ana.linear-algebra)
9327 ("cl-ana.lorentz" ,sbcl-cl-ana.lorentz)
9328 ("cl-ana.map" ,sbcl-cl-ana.map)
9329 ("cl-ana.makeres" ,sbcl-cl-ana.makeres)
9330 ("cl-ana.makeres-block" ,sbcl-cl-ana.makeres-block)
9331 ("cl-ana.makeres-branch" ,sbcl-cl-ana.makeres-branch)
9332 ("cl-ana.makeres-graphviz" ,sbcl-cl-ana.makeres-graphviz)
9333 ("cl-ana.makeres-macro" ,sbcl-cl-ana.makeres-macro)
9334 ("cl-ana.makeres-progress" ,sbcl-cl-ana.makeres-progress)
9335 ("cl-ana.makeres-table" ,sbcl-cl-ana.makeres-table)
9336 ("cl-ana.makeres-utils" ,sbcl-cl-ana.makeres-utils)
9337 ("cl-ana.math-functions" ,sbcl-cl-ana.math-functions)
9338 ("cl-ana.ntuple-table" ,sbcl-cl-ana.ntuple-table)
9339 ("cl-ana.package-utils" ,sbcl-cl-ana.package-utils)
9340 ("cl-ana.pathname-utils" ,sbcl-cl-ana.pathname-utils)
9341 ("cl-ana.plotting" ,sbcl-cl-ana.plotting)
9342 ("cl-ana.quantity" ,sbcl-cl-ana.quantity)
9343 ("cl-ana.reusable-table" ,sbcl-cl-ana.reusable-table)
9344 ("cl-ana.serialization" ,sbcl-cl-ana.serialization)
9345 ("cl-ana.statistics" ,sbcl-cl-ana.statistics)
9346 ("cl-ana.statistical-learning" ,sbcl-cl-ana.statistical-learning)
9347 ("cl-ana.table" ,sbcl-cl-ana.table)
9348 ("cl-ana.table-utils" ,sbcl-cl-ana.table-utils)
9349 ("cl-ana.table-viewing" ,sbcl-cl-ana.table-viewing)
9350 ("cl-ana.tensor" ,sbcl-cl-ana.tensor)
9351 ("libffi" ,libffi)))
9352 (native-inputs
9353 `(("cl-fad" ,sbcl-cl-fad)))
9354 (arguments
9355 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9356 ((#:asd-file _ "") "cl-ana.asd")
9357 ((#:asd-system-name _ #f) "cl-ana")))))
9358
9359 (define-public cl-ana
9360 (sbcl-package->cl-source-package sbcl-cl-ana))
9361
9362 (define-public sbcl-archive
9363 (let ((commit "631271c091ed02994bec3980cb288a2cf32c7cdc")
9364 (revision "1"))
9365 (package
9366 (name "sbcl-archive")
9367 (version (git-version "0.9" revision commit))
9368 (source (origin
9369 (method git-fetch)
9370 (uri (git-reference
9371 (url "https://github.com/sharplispers/archive.git")
9372 (commit commit)))
9373 (file-name (git-file-name name version))
9374 (sha256
9375 (base32
9376 "0pvsc9fmybx7rxd0kmzq4shi6hszdpwdc1sfy7jwyfxf8n3hnv4p"))))
9377 (build-system asdf-build-system/sbcl)
9378 (inputs
9379 `(("cl-fad" ,sbcl-cl-fad)
9380 ("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
9381 (synopsis "Common Lisp library for tar and cpio archives")
9382 (description
9383 "This is a Common Lisp library to read and write disk-based file
9384 archives such as those generated by the tar and cpio programs on Unix.")
9385 (home-page "https://github.com/sharplispers/archive")
9386 (license license:bsd-3))))
9387
9388 (define-public cl-archive
9389 (sbcl-package->cl-source-package sbcl-archive))
9390
9391 (define-public ecl-archive
9392 (sbcl-package->ecl-package sbcl-archive))
9393
9394 (define-public sbcl-misc-extensions
9395 (let ((commit "101c05112bf2f1e1bbf527396822d2f50ca6327a")
9396 (revision "1"))
9397 (package
9398 (name "sbcl-misc-extensions")
9399 (version (git-version "3.3" revision commit))
9400 (source
9401 (origin
9402 (method git-fetch)
9403 (uri (git-reference
9404 (url "https://gitlab.common-lisp.net/misc-extensions/devel.git")
9405 (commit commit)))
9406 (file-name (git-file-name name version))
9407 (sha256
9408 (base32
9409 "0gz5f4p70qzilnxsnf5lih2n9m4wjcw8hlw4w8mpn9jyhyppyyv0"))))
9410 (build-system asdf-build-system/sbcl)
9411 (synopsis "Collection of small macros and extensions for Common Lisp")
9412 (description
9413 "This project is intended as a catchall for small, general-purpose
9414 extensions to Common Lisp. It contains:
9415
9416 @itemize
9417 @item @code{new-let}, a macro that combines and generalizes @code{let},
9418 @code{let*} and @code{multiple-value-bind},
9419 @item @code{gmap}, an iteration macro that generalizes @code{map}.
9420 @end itemize\n")
9421 (home-page "https://common-lisp.net/project/misc-extensions/")
9422 (license license:public-domain))))
9423
9424 (define-public cl-misc-extensions
9425 (sbcl-package->cl-source-package sbcl-misc-extensions))
9426
9427 (define-public ecl-misc-extensions
9428 (sbcl-package->ecl-package sbcl-misc-extensions))
9429
9430 (define-public sbcl-mt19937
9431 (package
9432 (name "sbcl-mt19937")
9433 (version "1.1")
9434 (source
9435 (origin
9436 (method url-fetch)
9437 (uri (string-append "https://common-lisp.net/project/asdf-packaging/"
9438 "mt19937-latest.tar.gz"))
9439 (sha256
9440 (base32
9441 "1iw636b0iw5ygkv02y8i41lh7xj0acglv0hg5agryn0zzi2nf1xv"))))
9442 (build-system asdf-build-system/sbcl)
9443 (synopsis "Mersenne Twister pseudo-random number generator")
9444 (description
9445 "MT19937 is a portable Mersenne Twister pseudo-random number generator
9446 for Common Lisp.")
9447 (home-page "https://www.cliki.net/mt19937")
9448 (license license:public-domain)))
9449
9450 (define-public cl-mt19937
9451 (sbcl-package->cl-source-package sbcl-mt19937))
9452
9453 (define-public ecl-mt19937
9454 (sbcl-package->ecl-package sbcl-mt19937))
9455
9456 (define-public sbcl-fset
9457 (let ((commit "6d2f9ded8934d2b42f2571a0ba5bda091037d852")
9458 (revision "1"))
9459 (package
9460 (name "sbcl-fset")
9461 (version (git-version "1.3.2" revision commit))
9462 (source
9463 (origin
9464 (method git-fetch)
9465 (uri (git-reference
9466 (url "https://github.com/slburson/fset")
9467 (commit commit)))
9468 (file-name (git-file-name name version))
9469 (sha256
9470 (base32
9471 "127acblwrbqicx47h6sgvknz1cqyfn8p4xkhkn1m7hxh8w5gk1zy"))
9472 (snippet '(begin
9473 ;; Remove obsolete copy of system definition.
9474 (delete-file "Code/fset.asd")
9475 #t))))
9476 (build-system asdf-build-system/sbcl)
9477 (inputs
9478 `(("misc-extensions" ,sbcl-misc-extensions)
9479 ("mt19937" ,sbcl-mt19937)
9480 ("named-readtables" ,sbcl-named-readtables)))
9481 (synopsis "Functional set-theoretic collections library")
9482 (description
9483 "FSet is a functional set-theoretic collections library for Common Lisp.
9484 Functional means that all update operations return a new collection rather than
9485 modifying an existing one in place. Set-theoretic means that collections may
9486 be nested arbitrarily with no additional programmer effort; for instance, sets
9487 may contain sets, maps may be keyed by sets, etc.")
9488 (home-page "https://common-lisp.net/project/fset/Site/index.html")
9489 (license license:llgpl))))
9490
9491 (define-public cl-fset
9492 (sbcl-package->cl-source-package sbcl-fset))
9493
9494 (define-public sbcl-cl-cont
9495 (let ((commit "fc1fa7e6eb64894fdca13e688e6015fad5290d2a")
9496 (revision "1"))
9497 (package
9498 (name "sbcl-cl-cont")
9499 (version (git-version "0.3.8" revision commit))
9500 (source
9501 (origin
9502 (method git-fetch)
9503 (uri (git-reference
9504 (url "https://gitlab.common-lisp.net/cl-cont/cl-cont.git")
9505 (commit commit)))
9506 (file-name (git-file-name name version))
9507 (sha256
9508 (base32
9509 "1zf8zvb0i6jm3hhfks4w74hibm6avgc6f9s1qwgjrn2bcik8lrvz"))))
9510 (build-system asdf-build-system/sbcl)
9511 (inputs
9512 `(("alexandria" ,sbcl-alexandria)
9513 ("closer-mop" ,sbcl-closer-mop)))
9514 (native-inputs
9515 `(("rt" ,sbcl-rt)))
9516 (synopsis "Delimited continuations for Common Lisp")
9517 (description
9518 "This is a library that implements delimited continuations by
9519 transforming Common Lisp code to continuation passing style.")
9520 (home-page "https://common-lisp.net/project/cl-cont/")
9521 (license license:llgpl))))
9522
9523 (define-public cl-cont
9524 (sbcl-package->cl-source-package sbcl-cl-cont))
9525
9526 (define-public ecl-cl-cont
9527 (sbcl-package->ecl-package sbcl-cl-cont))
9528
9529 (define-public sbcl-cl-coroutine
9530 (let ((commit "de098f8d5debd8b14ef6864b5bdcbbf5ddbcfd72")
9531 (revision "1"))
9532 (package
9533 (name "sbcl-cl-coroutine")
9534 (version (git-version "0.1" revision commit))
9535 (source
9536 (origin
9537 (method git-fetch)
9538 (uri (git-reference
9539 (url "https://github.com/takagi/cl-coroutine.git")
9540 (commit commit)))
9541 (file-name (git-file-name name version))
9542 (sha256
9543 (base32
9544 "1cqdhdjxffgfs116l1swjlsmcbly0xgcgrckvaajd566idj9yj4l"))))
9545 (build-system asdf-build-system/sbcl)
9546 (inputs
9547 `(("alexandria" ,sbcl-alexandria)
9548 ("cl-cont" ,sbcl-cl-cont)))
9549 (native-inputs
9550 `(("prove" ,sbcl-prove)))
9551 (arguments
9552 `(;; TODO: Fix the tests. They fail with:
9553 ;; "Component CL-COROUTINE-ASD::CL-COROUTINE-TEST not found"
9554 #:tests? #f
9555 #:phases
9556 (modify-phases %standard-phases
9557 (add-after 'unpack 'fix-tests
9558 (lambda _
9559 (substitute* "cl-coroutine-test.asd"
9560 (("cl-test-more")
9561 "prove"))
9562 #t)))))
9563 (synopsis "Coroutine library for Common Lisp")
9564 (description
9565 "This is a coroutine library for Common Lisp implemented using the
9566 continuations of the @code{cl-cont} library.")
9567 (home-page "https://github.com/takagi/cl-coroutine")
9568 (license license:llgpl))))
9569
9570 (define-public cl-coroutine
9571 (sbcl-package->cl-source-package sbcl-cl-coroutine))
9572
9573 (define-public ecl-cl-coroutine
9574 (sbcl-package->ecl-package sbcl-cl-coroutine))
9575
9576 (define-public sbcl-vom
9577 (let ((commit "1aeafeb5b74c53741b79497e0ef4acf85c92ff24")
9578 (revision "1"))
9579 (package
9580 (name "sbcl-vom")
9581 (version (git-version "0.1.4" revision commit))
9582 (source
9583 (origin
9584 (method git-fetch)
9585 (uri (git-reference
9586 (url "https://github.com/orthecreedence/vom.git")
9587 (commit commit)))
9588 (file-name (git-file-name name version))
9589 (sha256
9590 (base32
9591 "0536kppj76ax4lrxhv42npkfjsmx45km2g439vf9jmw3apinz9cy"))))
9592 (build-system asdf-build-system/sbcl)
9593 (synopsis "Tiny logging utility for Common Lisp")
9594 (description
9595 "Vom is a logging library for Common Lisp. It's goal is to be useful
9596 and small. It does not provide a lot of features as other loggers do, but
9597 has a small codebase that's easy to understand and use.")
9598 (home-page "https://github.com/orthecreedence/vom")
9599 (license license:expat))))
9600
9601 (define-public cl-vom
9602 (sbcl-package->cl-source-package sbcl-vom))
9603
9604 (define-public ecl-vom
9605 (sbcl-package->ecl-package sbcl-vom))
9606
9607 (define-public sbcl-cl-libuv
9608 (let ((commit "32100c023c518038d0670a103eaa4d50dd785d29")
9609 (revision "1"))
9610 (package
9611 (name "sbcl-cl-libuv")
9612 (version (git-version "0.1.6" revision commit))
9613 (source
9614 (origin
9615 (method git-fetch)
9616 (uri (git-reference
9617 (url "https://github.com/orthecreedence/cl-libuv.git")
9618 (commit commit)))
9619 (file-name (git-file-name name version))
9620 (sha256
9621 (base32
9622 "1kwix4si8a8hza34ab2k7whrh7z0yrmx39v2wc3qblv9m244jkh1"))))
9623 (build-system asdf-build-system/sbcl)
9624 (inputs
9625 `(("alexandria" ,sbcl-alexandria)
9626 ("cffi" ,sbcl-cffi)
9627 ("cffi-grovel" ,sbcl-cffi-grovel)
9628 ("libuv" ,libuv)))
9629 (arguments
9630 `(#:phases
9631 (modify-phases %standard-phases
9632 (add-after 'unpack 'fix-paths
9633 (lambda* (#:key inputs #:allow-other-keys)
9634 (substitute* "lib.lisp"
9635 (("/usr/lib/libuv.so")
9636 (string-append (assoc-ref inputs "libuv")
9637 "/lib/libuv.so")))
9638 #t))
9639 (add-after 'fix-paths 'fix-system-definition
9640 (lambda _
9641 (substitute* "cl-libuv.asd"
9642 (("#:cffi #:alexandria")
9643 "#:cffi #:cffi-grovel #:alexandria"))
9644 #t)))))
9645 (synopsis "Common Lisp bindings to libuv")
9646 (description
9647 "This library provides low-level libuv bindings for Common Lisp.")
9648 (home-page "https://github.com/orthecreedence/cl-libuv")
9649 (license license:expat))))
9650
9651 (define-public cl-libuv
9652 (sbcl-package->cl-source-package sbcl-cl-libuv))
9653
9654 (define-public ecl-cl-libuv
9655 (sbcl-package->ecl-package sbcl-cl-libuv))
9656
9657 (define-public sbcl-cl-async-base
9658 (let ((commit "f6423e44404a44434d803605e0d2e17199158e28")
9659 (revision "1"))
9660 (package
9661 (name "sbcl-cl-async-base")
9662 (version (git-version "0.6.1" revision commit))
9663 (source
9664 (origin
9665 (method git-fetch)
9666 (uri (git-reference
9667 (url "https://github.com/orthecreedence/cl-async.git")
9668 (commit commit)))
9669 (file-name (git-file-name name version))
9670 (sha256
9671 (base32
9672 "11xi9dxb8mjgwzrkj88i0xkgk26z9w9ddxzbv6xsvfc1d4x5cf4x"))))
9673 (build-system asdf-build-system/sbcl)
9674 (inputs
9675 `(("bordeaux-threads" ,sbcl-bordeaux-threads)
9676 ("cffi" ,sbcl-cffi)
9677 ("cl-libuv" ,sbcl-cl-libuv)))
9678 (arguments
9679 `(#:asd-file "cl-async.asd"))
9680 (synopsis "Base system for cl-async")
9681 (description
9682 "Cl-async is a library for general purpose, non-blocking programming in
9683 Common Lisp. It uses the libuv library as backend.")
9684 (home-page "https://orthecreedence.github.io/cl-async/")
9685 (license license:expat))))
9686
9687 (define-public cl-async-base
9688 (sbcl-package->cl-source-package sbcl-cl-async-base))
9689
9690 (define-public ecl-cl-async-base
9691 (sbcl-package->ecl-package sbcl-cl-async-base))
9692
9693 (define-public sbcl-cl-async-util
9694 (package
9695 (inherit sbcl-cl-async-base)
9696 (name "sbcl-cl-async-util")
9697 (inputs
9698 `(("bordeaux-threads" ,sbcl-bordeaux-threads)
9699 ("cffi" ,sbcl-cffi)
9700 ("cl-async-base" ,sbcl-cl-async-base)
9701 ("cl-libuv" ,sbcl-cl-libuv)
9702 ("cl-ppcre" ,sbcl-cl-ppcre)
9703 ("fast-io" ,sbcl-fast-io)
9704 ("vom" ,sbcl-vom)))
9705 (synopsis "Internal utilities for cl-async")))
9706
9707 (define-public cl-async-util
9708 (sbcl-package->cl-source-package sbcl-cl-async-util))
9709
9710 (define-public ecl-cl-async-util
9711 (sbcl-package->ecl-package sbcl-cl-async-util))
9712
9713 (define-public sbcl-cl-async
9714 (package
9715 (inherit sbcl-cl-async-base)
9716 (name "sbcl-cl-async")
9717 (inputs
9718 `(("babel" ,sbcl-babel)
9719 ("cffi" ,sbcl-cffi)
9720 ("cl-async-base" ,sbcl-cl-async-base)
9721 ("cl-async-util" ,sbcl-cl-async-util)
9722 ("cl-libuv" ,sbcl-cl-libuv)
9723 ("cl-ppcre" ,sbcl-cl-ppcre)
9724 ("static-vectors" ,sbcl-static-vectors)
9725 ("trivial-features" ,sbcl-trivial-features)
9726 ("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
9727 (synopsis "Asynchronous operations for Common Lisp")))
9728
9729 (define-public cl-async
9730 (sbcl-package->cl-source-package sbcl-cl-async))
9731
9732 (define-public ecl-cl-async
9733 (sbcl-package->ecl-package sbcl-cl-async))
9734
9735 (define-public sbcl-cl-async-repl
9736 (package
9737 (inherit sbcl-cl-async-base)
9738 (name "sbcl-cl-async-repl")
9739 (inputs
9740 `(("bordeaux-threads" ,sbcl-bordeaux-threads)
9741 ("cl-async" ,sbcl-cl-async)))
9742 (arguments
9743 (substitute-keyword-arguments (package-arguments sbcl-cl-async-base)
9744 ((#:asd-file _ "") "cl-async-repl.asd")))
9745 (synopsis "REPL integration for cl-async")))
9746
9747 (define-public cl-async-repl
9748 (sbcl-package->cl-source-package sbcl-cl-async-repl))
9749
9750 (define-public ecl-cl-async-repl
9751 (sbcl-package->ecl-package sbcl-cl-async-repl))
9752
9753 (define-public sbcl-cl-async-ssl
9754 (package
9755 (inherit sbcl-cl-async-base)
9756 (name "sbcl-cl-async-ssl")
9757 (inputs
9758 `(("cffi" ,sbcl-cffi)
9759 ("cl-async" ,sbcl-cl-async)
9760 ("openssl" ,openssl)
9761 ("vom" ,sbcl-vom)))
9762 (arguments
9763 (substitute-keyword-arguments (package-arguments sbcl-cl-async-base)
9764 ((#:asd-file _ "") "cl-async-ssl.asd")
9765 ((#:phases phases '%standard-phases)
9766 `(modify-phases ,phases
9767 (add-after 'unpack 'fix-paths
9768 (lambda* (#:key inputs #:allow-other-keys)
9769 (substitute* "src/ssl/package.lisp"
9770 (("libcrypto\\.so")
9771 (string-append (assoc-ref inputs "openssl")
9772 "/lib/libcrypto.so"))
9773 (("libssl\\.so")
9774 (string-append (assoc-ref inputs "openssl")
9775 "/lib/libssl.so")))
9776 #t))))))
9777 (synopsis "SSL wrapper around cl-async socket implementation")))
9778
9779 (define-public cl-async-ssl
9780 (sbcl-package->cl-source-package sbcl-cl-async-ssl))
9781
9782 (define-public ecl-cl-async-ssl
9783 (sbcl-package->ecl-package sbcl-cl-async-ssl))
9784
9785 (define-public sbcl-blackbird
9786 (let ((commit "d361f81c1411dec07f6c2dcb11c78f7aea9aaca8")
9787 (revision "1"))
9788 (package
9789 (name "sbcl-blackbird")
9790 (version (git-version "0.5.2" revision commit))
9791 (source
9792 (origin
9793 (method git-fetch)
9794 (uri (git-reference
9795 (url "https://github.com/orthecreedence/blackbird.git")
9796 (commit commit)))
9797 (file-name (git-file-name name version))
9798 (sha256
9799 (base32
9800 "0xfds5yaya64arzr7w1x38karyz11swzbhxx1afldpradj9dh19c"))))
9801 (build-system asdf-build-system/sbcl)
9802 (inputs
9803 `(("vom" ,sbcl-vom)))
9804 (native-inputs
9805 `(("cl-async" ,sbcl-cl-async)
9806 ("fiveam" ,sbcl-fiveam)))
9807 (synopsis "Promise implementation for Common Lisp")
9808 (description
9809 "This is a standalone promise implementation for Common Lisp. It is
9810 the successor to the now-deprecated cl-async-future project.")
9811 (home-page "https://orthecreedence.github.io/blackbird/")
9812 (license license:expat))))
9813
9814 (define-public cl-blackbird
9815 (sbcl-package->cl-source-package sbcl-blackbird))
9816
9817 (define-public ecl-blackbird
9818 (sbcl-package->ecl-package sbcl-blackbird))
9819
9820 (define-public sbcl-cl-async-future
9821 (let ((commit "ee36c22a69a9516407458d2ed8b475f1fc473959")
9822 (revision "1"))
9823 (package
9824 (name "sbcl-cl-async-future")
9825 (version (git-version "0.4.4.1" revision commit))
9826 (source
9827 (origin
9828 (method git-fetch)
9829 (uri (git-reference
9830 (url "https://github.com/orthecreedence/cl-async-future.git")
9831 (commit commit)))
9832 (file-name (git-file-name name version))
9833 (sha256
9834 (base32
9835 "0z0sc7qlzzxk99f4l26zp6rai9kv0kj0f599sxai5s44p17zbbvh"))))
9836 (build-system asdf-build-system/sbcl)
9837 (inputs
9838 `(("blackbird" ,sbcl-blackbird)))
9839 (native-inputs
9840 `(("cl-async" ,sbcl-cl-async)
9841 ("eos" ,sbcl-eos)))
9842 (synopsis "Futures implementation for Common Lisp")
9843 (description
9844 "This is futures implementation for Common Lisp. It plugs in nicely
9845 to cl-async.")
9846 (home-page "https://orthecreedence.github.io/cl-async/future")
9847 (license license:expat))))
9848
9849 (define-public cl-async-future
9850 (sbcl-package->cl-source-package sbcl-cl-async-future))
9851
9852 (define-public ecl-cl-async-future
9853 (sbcl-package->ecl-package sbcl-cl-async-future))
9854
9855 (define-public sbcl-green-threads
9856 (let ((commit "fff5ebecb441a37e5c511773716aafd84a3c5840")
9857 (revision "1"))
9858 (package
9859 (name "sbcl-green-threads")
9860 (version (git-version "0.3" revision commit))
9861 (source
9862 (origin
9863 (method git-fetch)
9864 (uri (git-reference
9865 (url "https://github.com/thezerobit/green-threads.git")
9866 (commit commit)))
9867 (file-name (git-file-name name version))
9868 (sha256
9869 (base32
9870 "1czw7nr0dwfps76h8hjvglk1wdh53yqbfbvv30whwbgqx33iippz"))))
9871 (build-system asdf-build-system/sbcl)
9872 (inputs
9873 `(("cl-async-future" ,sbcl-cl-async-future)
9874 ("cl-cont" ,sbcl-cl-cont)))
9875 (native-inputs
9876 `(("prove" ,sbcl-prove)))
9877 (arguments
9878 `(;; TODO: Fix the tests. They fail with:
9879 ;; "The function BLACKBIRD::PROMISE-VALUES is undefined"
9880 #:tests? #f
9881 #:phases
9882 (modify-phases %standard-phases
9883 (add-after 'unpack 'fix-tests
9884 (lambda _
9885 (substitute* "green-threads-test.asd"
9886 (("cl-test-more")
9887 "prove"))
9888 #t)))))
9889 (synopsis "Cooperative multitasking library for Common Lisp")
9890 (description
9891 "This library allows for cooperative multitasking with help of cl-cont
9892 for continuations. It tries to mimic the API of bordeaux-threads as much as
9893 possible.")
9894 (home-page "https://github.com/thezerobit/green-threads")
9895 (license license:bsd-3))))
9896
9897 (define-public cl-green-threads
9898 (sbcl-package->cl-source-package sbcl-green-threads))
9899
9900 (define-public ecl-green-threads
9901 (sbcl-package->ecl-package sbcl-green-threads))
9902
9903 (define-public sbcl-cl-base32
9904 (let ((commit "8cdee06fab397f7b0a19583b57e7f0c98405be85")
9905 (revision "1"))
9906 (package
9907 (name "sbcl-cl-base32")
9908 (version (git-version "0.1" revision commit))
9909 (source
9910 (origin
9911 (method git-fetch)
9912 (uri (git-reference
9913 (url "https://github.com/hargettp/cl-base32.git")
9914 (commit commit)))
9915 (file-name (git-file-name name version))
9916 (sha256
9917 (base32 "17jrng8jb05d64ggyd11hp308c2fl5drvf9g175blgrkkl8l4mf8"))))
9918 (build-system asdf-build-system/sbcl)
9919 (native-inputs
9920 `(("lisp-unit" ,sbcl-lisp-unit)))
9921 (synopsis "Common Lisp library for base32 encoding and decoding")
9922 (description
9923 "This package provides functions for base32 encoding and decoding as
9924 defined in RFC4648.")
9925 (home-page "https://github.com/hargettp/cl-base32")
9926 (license license:expat))))
9927
9928 (define-public cl-base32
9929 (sbcl-package->cl-source-package sbcl-cl-base32))
9930
9931 (define-public ecl-cl-base32
9932 (sbcl-package->ecl-package sbcl-cl-base32))
9933
9934 (define-public sbcl-cl-z85
9935 (let ((commit "85b3951a9cfa2603acb6aee15567684f9a108098")
9936 (revision "1"))
9937 (package
9938 (name "sbcl-cl-z85")
9939 (version (git-version "1.0" revision commit))
9940 (source
9941 (origin
9942 (method git-fetch)
9943 (uri (git-reference
9944 (url "https://github.com/glv2/cl-z85.git")
9945 (commit commit)))
9946 (file-name (git-file-name name version))
9947 (sha256
9948 (base32 "0r27pidjaxbm7k1rr90nnajwl5xm2kp65g1fv0fva17lzy45z1mp"))))
9949 (build-system asdf-build-system/sbcl)
9950 (native-inputs
9951 `(("cl-octet-streams" ,sbcl-cl-octet-streams)
9952 ("fiveam" ,sbcl-fiveam)))
9953 (synopsis "Common Lisp library for Z85 encoding and decoding")
9954 (description
9955 "This package provides functions to encode or decode byte vectors or
9956 byte streams using the Z85 format, which is a base-85 encoding used by
9957 ZeroMQ.")
9958 (home-page "https://github.com/glv2/cl-z85")
9959 (license license:gpl3+))))
9960
9961 (define-public cl-z85
9962 (sbcl-package->cl-source-package sbcl-cl-z85))
9963
9964 (define-public ecl-cl-z85
9965 (sbcl-package->ecl-package sbcl-cl-z85))
9966
9967 (define-public sbcl-ltk
9968 (package
9969 (name "sbcl-ltk")
9970 (version "0.992")
9971 (source
9972 (origin
9973 (method git-fetch)
9974 (uri (git-reference
9975 (url "https://github.com/herth/ltk.git")
9976 (commit version)))
9977 (file-name (git-file-name name version))
9978 (sha256
9979 (base32 "13l2q4mskzilya9xh5wy2xvy30lwn104bd8wrq6ifds56r82iy3x"))))
9980 (build-system asdf-build-system/sbcl)
9981 (inputs
9982 `(("imagemagick" ,imagemagick)
9983 ("tk" ,tk)))
9984 (arguments
9985 `(#:asd-file "ltk/ltk.asd"
9986 #:tests? #f
9987 #:phases (modify-phases %standard-phases
9988 (add-after 'unpack 'fix-paths
9989 (lambda* (#:key inputs #:allow-other-keys)
9990 (substitute* "ltk/ltk.lisp"
9991 (("#-freebsd \"wish\"")
9992 (string-append "#-freebsd \""
9993 (assoc-ref inputs "tk")
9994 "/bin/wish\""))
9995 (("do-execute \"convert\"")
9996 (string-append "do-execute \""
9997 (assoc-ref inputs "imagemagick")
9998 "/bin/convert\"")))
9999 #t)))))
10000 (synopsis "Common Lisp bindings for the Tk GUI toolkit")
10001 (description
10002 "LTK is a Common Lisp binding for the Tk graphics toolkit. It is written
10003 in pure Common Lisp and does not require any Tk knowledge for its usage.")
10004 (home-page "http://www.peter-herth.de/ltk/")
10005 (license license:llgpl)))
10006
10007 (define-public cl-ltk
10008 (sbcl-package->cl-source-package sbcl-ltk))
10009
10010 (define-public ecl-ltk
10011 (sbcl-package->ecl-package sbcl-ltk))
10012
10013 (define-public sbcl-ltk-mw
10014 (package
10015 (inherit sbcl-ltk)
10016 (name "sbcl-ltk-mw")
10017 (inputs
10018 `(("ltk" ,sbcl-ltk)))
10019 (arguments
10020 (substitute-keyword-arguments (package-arguments sbcl-ltk)
10021 ((#:asd-file _) "ltk/ltk-mw.asd")
10022 ((#:phases _) '%standard-phases)))
10023 (synopsis "Extra widgets for LTK")
10024 (description
10025 "This is a collection of higher-level widgets built on top of LTK.")))
10026
10027 (define-public cl-ltk-mw
10028 (sbcl-package->cl-source-package sbcl-ltk-mw))
10029
10030 (define-public ecl-ltk-mw
10031 (sbcl-package->ecl-package sbcl-ltk-mw))
10032
10033 (define-public sbcl-ltk-remote
10034 (package
10035 (inherit sbcl-ltk)
10036 (name "sbcl-ltk-remote")
10037 (inputs
10038 `(("ltk" ,sbcl-ltk)))
10039 (arguments
10040 (substitute-keyword-arguments (package-arguments sbcl-ltk)
10041 ((#:asd-file _) "ltk/ltk-remote.asd")
10042 ((#:phases _) '%standard-phases)))
10043 (synopsis "Remote GUI support for LTK")
10044 (description
10045 "This LTK extension allows the GUI to be displayed on a computer different
10046 from the one running the Lisp program by using a TCP connection.")))
10047
10048 (define-public cl-ltk-remote
10049 (sbcl-package->cl-source-package sbcl-ltk-remote))
10050
10051 (define-public sbcl-cl-lex
10052 (let ((commit "f2dbbe25ef553005fb402d9a6203180c3fa1093b")
10053 (revision "1"))
10054 (package
10055 (name "sbcl-cl-lex")
10056 (version (git-version "1.1.3" revision commit))
10057 (source
10058 (origin
10059 (method git-fetch)
10060 (uri (git-reference
10061 (url "https://github.com/djr7C4/cl-lex.git")
10062 (commit commit)))
10063 (file-name (git-file-name name version))
10064 (sha256
10065 (base32 "1kg50f76bfpfxcv4dfivq1n9a0xlsra2ajb0vd68lxwgbidgyc2y"))))
10066 (build-system asdf-build-system/sbcl)
10067 (inputs
10068 `(("cl-ppcre" ,sbcl-cl-ppcre)))
10069 (synopsis "Common Lisp macros for generating lexical analyzers")
10070 (description
10071 "This is a Common Lisp library providing a set of macros for generating
10072 lexical analyzers automatically. The lexers generated using @code{cl-lex} can
10073 be used with @code{cl-yacc}.")
10074 (home-page "https://github.com/djr7C4/cl-lex")
10075 (license license:gpl3))))
10076
10077 (define-public cl-lex
10078 (sbcl-package->cl-source-package sbcl-cl-lex))
10079
10080 (define-public ecl-cl-lex
10081 (sbcl-package->ecl-package sbcl-cl-lex))
10082
10083 (define-public sbcl-clunit2
10084 (let ((commit "5e28343734eb9b7aee39306a614af92c1062d50b")
10085 (revision "1"))
10086 (package
10087 (name "sbcl-clunit2")
10088 (version (git-version "0.2.4" revision commit))
10089 (source
10090 (origin
10091 (method git-fetch)
10092 (uri (git-reference
10093 (url "https://notabug.org/cage/clunit2.git")
10094 (commit commit)))
10095 (file-name (git-file-name name version))
10096 (sha256
10097 (base32 "1ngiapfki6nm8a555mzhb5p7ch79i3w665za5bmb5j7q34fy80vw"))))
10098 (build-system asdf-build-system/sbcl)
10099 (synopsis "Unit testing framework for Common Lisp")
10100 (description
10101 "CLUnit is a Common Lisp unit testing framework. It is designed to be
10102 easy to use so that you can quickly start testing.")
10103 (home-page "https://notabug.org/cage/clunit2")
10104 (license license:expat))))
10105
10106 (define-public cl-clunit2
10107 (sbcl-package->cl-source-package sbcl-clunit2))
10108
10109 (define-public ecl-clunit2
10110 (sbcl-package->ecl-package sbcl-clunit2))
10111
10112 (define-public sbcl-cl-colors2
10113 (let ((commit "795aedee593b095fecde574bd999b520dd03ed24")
10114 (revision "1"))
10115 (package
10116 (name "sbcl-cl-colors2")
10117 (version (git-version "0.2.1" revision commit))
10118 (source
10119 (origin
10120 (method git-fetch)
10121 (uri (git-reference
10122 (url "https://notabug.org/cage/cl-colors2.git")
10123 (commit commit)))
10124 (file-name (git-file-name name version))
10125 (sha256
10126 (base32 "0hlyf4h5chkjdp9armla5w4kw5acikk159sym7y8c4jbjp9x47ih"))))
10127 (build-system asdf-build-system/sbcl)
10128 (native-inputs
10129 `(("clunit2" ,sbcl-clunit2)))
10130 (inputs
10131 `(("alexandria" ,sbcl-alexandria)
10132 ("cl-ppcre" ,sbcl-cl-ppcre)))
10133 (synopsis "Color library for Common Lisp")
10134 (description
10135 "This is a very simple color library for Common Lisp, providing:
10136
10137 @itemize
10138 @item Types for representing colors in HSV and RGB spaces.
10139 @item Simple conversion functions between the above types (and also
10140 hexadecimal representation for RGB).
10141 @item Some predefined colors (currently X11 color names -- of course
10142 the library does not depend on X11).
10143 @end itemize\n")
10144 (home-page "https://notabug.org/cage/cl-colors2")
10145 (license license:boost1.0))))
10146
10147 (define-public cl-colors2
10148 (sbcl-package->cl-source-package sbcl-cl-colors2))
10149
10150 (define-public ecl-cl-colors2
10151 (sbcl-package->ecl-package sbcl-cl-colors2))
10152
10153 (define-public sbcl-cl-jpeg
10154 (let ((commit "ec557038128df6895fbfb743bfe8faf8ec2534af")
10155 (revision "1"))
10156 (package
10157 (name "sbcl-cl-jpeg")
10158 (version (git-version "2.8" revision commit))
10159 (source
10160 (origin
10161 (method git-fetch)
10162 (uri (git-reference
10163 (url "https://github.com/sharplispers/cl-jpeg.git")
10164 (commit commit)))
10165 (file-name (git-file-name name version))
10166 (sha256
10167 (base32 "1bkkiqz8fqldlj1wbmrccjsvxcwj98h6s4b6gslr3cg2wmdv5xmy"))))
10168 (build-system asdf-build-system/sbcl)
10169 (synopsis "JPEG image library for Common Lisp")
10170 (description
10171 "This is a baseline JPEG codec written in Common Lisp. It can be used
10172 for reading and writing JPEG image files.")
10173 (home-page "https://github.com/sharplispers/cl-jpeg")
10174 (license license:bsd-3))))
10175
10176 (define-public cl-jpeg
10177 (sbcl-package->cl-source-package sbcl-cl-jpeg))
10178
10179 (define-public ecl-cl-jpeg
10180 (sbcl-package->ecl-package sbcl-cl-jpeg))
10181
10182 (define-public sbcl-nodgui
10183 (let ((commit "bc59ed9b787dfc9e68ae3bd7f7e8507c5c619212")
10184 (revision "1"))
10185 (package
10186 (name "sbcl-nodgui")
10187 (version (git-version "0.0.5" revision commit))
10188 (source
10189 (origin
10190 (method git-fetch)
10191 (uri (git-reference
10192 (url "https://notabug.org/cage/nodgui.git")
10193 (commit commit)))
10194 (file-name (git-file-name name version))
10195 (sha256
10196 (base32 "0xx0dk54d882i598ydnwmy7mnfk0b7vib3ddsgpqxhjck1rwq8l8"))))
10197 (build-system asdf-build-system/sbcl)
10198 (inputs
10199 `(("alexandria" ,sbcl-alexandria)
10200 ("bordeaux-threads" ,sbcl-bordeaux-threads)
10201 ("cl-colors2" ,sbcl-cl-colors2)
10202 ("cl-jpeg" ,sbcl-cl-jpeg)
10203 ("cl-lex" ,sbcl-cl-lex)
10204 ("cl-ppcre-unicode" ,sbcl-cl-ppcre-unicode)
10205 ("cl-unicode" ,sbcl-cl-unicode)
10206 ("cl-yacc" ,sbcl-cl-yacc)
10207 ("clunit2" ,sbcl-clunit2)
10208 ("named-readtables" ,sbcl-named-readtables)
10209 ("parse-number" ,sbcl-parse-number)
10210 ("tk" ,tk)))
10211 (arguments
10212 `(#:phases (modify-phases %standard-phases
10213 (add-after 'unpack 'fix-paths
10214 (lambda* (#:key inputs #:allow-other-keys)
10215 (substitute* "src/wish-communication.lisp"
10216 (("#-freebsd \"wish\"")
10217 (string-append "#-freebsd \""
10218 (assoc-ref inputs "tk")
10219 "/bin/wish\"")))
10220 #t)))))
10221 (synopsis "Common Lisp bindings for the Tk GUI toolkit")
10222 (description
10223 "Nodgui (@emph{No Drama GUI}) is a Common Lisp binding for the Tk GUI
10224 toolkit. It also provides a few additional widgets more than the standard Tk
10225 ones.")
10226 (home-page "https://www.autistici.org/interzona/nodgui.html")
10227 (license license:llgpl))))
10228
10229 (define-public cl-nodgui
10230 (sbcl-package->cl-source-package sbcl-nodgui))
10231
10232 (define-public ecl-nodgui
10233 (sbcl-package->ecl-package sbcl-nodgui))
10234
10235 (define-public sbcl-salza2
10236 (package
10237 (name "sbcl-salza2")
10238 (version "2.0.9")
10239 (source
10240 (origin
10241 (method git-fetch)
10242 (uri (git-reference
10243 (url "https://github.com/xach/salza2.git")
10244 (commit (string-append "release-" version))))
10245 (file-name (git-file-name name version))
10246 (sha256
10247 (base32 "0p38rj4gq7j5k807php7hrz7l2zyyfshv8i9yms7i8lkgg3433ki"))))
10248 (build-system asdf-build-system/sbcl)
10249 (synopsis "Common Lisp library for zlib, deflate and gzip compression")
10250 (description
10251 "Salza2 is a Common Lisp library for creating compressed data in the zlib,
10252 deflate, or gzip data formats, described in RFC 1950, RFC 1951, and RFC 1952,
10253 respectively.")
10254 (home-page "https://www.xach.com/lisp/salza2/")
10255 (license license:bsd-2)))
10256
10257 (define-public cl-salza2
10258 (sbcl-package->cl-source-package sbcl-salza2))
10259
10260 (define-public ecl-salza2
10261 (sbcl-package->ecl-package sbcl-salza2))
10262
10263 (define-public sbcl-png-read
10264 (let ((commit "ec29f38a689972b9f1373f13bbbcd6b05deada88")
10265 (revision "1"))
10266 (package
10267 (name "sbcl-png-read")
10268 (version (git-version "0.3.1" revision commit))
10269 (source
10270 (origin
10271 (method git-fetch)
10272 (uri (git-reference
10273 (url "https://github.com/Ramarren/png-read.git")
10274 (commit commit)))
10275 (file-name (git-file-name name version))
10276 (sha256
10277 (base32 "0vyczbcwskrygrf1hgrsnk0jil8skmvf1kiaalw5jps4fjrfdkw0"))))
10278 (build-system asdf-build-system/sbcl)
10279 (inputs
10280 `(("babel" ,sbcl-babel)
10281 ("chipz" ,sbcl-chipz)
10282 ("iterate" ,sbcl-iterate)))
10283 (synopsis "PNG decoder for Common Lisp")
10284 (description "This is a Common Lisp library for reading PNG images.")
10285 (home-page "https://github.com/Ramarren/png-read")
10286 (license license:bsd-3))))
10287
10288 (define-public cl-png-read
10289 (sbcl-package->cl-source-package sbcl-png-read))
10290
10291 (define-public ecl-png-read
10292 (sbcl-package->ecl-package sbcl-png-read))
10293
10294 (define-public sbcl-zpng
10295 (package
10296 (name "sbcl-zpng")
10297 (version "1.2.2")
10298 (source
10299 (origin
10300 (method git-fetch)
10301 (uri (git-reference
10302 (url "https://github.com/xach/zpng.git")
10303 (commit (string-append "release-" version))))
10304 (file-name (git-file-name name version))
10305 (sha256
10306 (base32 "0b3ag3jhl3z7kdls3ahdsdxsfhhw5qrizk769984f4wkxhb69rcm"))))
10307 (build-system asdf-build-system/sbcl)
10308 (inputs
10309 `(("salza2" ,sbcl-salza2)))
10310 (synopsis "PNG encoder for Common Lisp")
10311 (description "This is a Common Lisp library for creating PNG images.")
10312 (home-page "https://www.xach.com/lisp/zpng/")
10313 (license license:bsd-2)))
10314
10315 (define-public cl-zpng
10316 (sbcl-package->cl-source-package sbcl-zpng))
10317
10318 (define-public ecl-zpng
10319 (sbcl-package->ecl-package sbcl-zpng))
10320
10321 (define-public sbcl-cl-qrencode
10322 (package
10323 (name "sbcl-cl-qrencode")
10324 (version "0.1.2")
10325 (source
10326 (origin
10327 (method git-fetch)
10328 (uri (git-reference
10329 (url "https://github.com/jnjcc/cl-qrencode.git")
10330 (commit (string-append "v" version))))
10331 (file-name (git-file-name name version))
10332 (sha256
10333 (base32 "1l5k131dchbf6cj8a8xqa731790p01p3qa1kdy2wa9dawy3ymkxr"))))
10334 (build-system asdf-build-system/sbcl)
10335 (native-inputs
10336 `(("lisp-unit" ,sbcl-lisp-unit)))
10337 (inputs
10338 `(("zpng" ,sbcl-zpng)))
10339 (synopsis "QR code encoder for Common Lisp")
10340 (description
10341 "This Common Lisp library provides function to make QR codes and to save
10342 them as PNG files.")
10343 (home-page "https://github.com/jnjcc/cl-qrencode")
10344 (license license:gpl2+)))
10345
10346 (define-public cl-qrencode
10347 (sbcl-package->cl-source-package sbcl-cl-qrencode))
10348
10349 (define-public ecl-cl-qrencode
10350 (sbcl-package->ecl-package sbcl-cl-qrencode))
10351
10352 (define-public sbcl-hdf5-cffi
10353 (let ((commit "5b5c88f191e470e4fe96b462334e3ce0806eed5c")
10354 (revision "1"))
10355 (package
10356 (name "sbcl-hdf5-cffi")
10357 (version (git-version "1.8.18" revision commit))
10358 (source
10359 (origin
10360 (method git-fetch)
10361 (uri (git-reference
10362 (url "https://github.com/hdfgroup/hdf5-cffi.git")
10363 (commit commit)))
10364 (file-name (git-file-name name version))
10365 (sha256
10366 (base32
10367 "0vda3075423xz83qky998lpac5b04dwfv7bwgh9jq8cs5v0zrxjf"))))
10368 (build-system asdf-build-system/sbcl)
10369 (synopsis "Common Lisp bindings for the HDF5 library")
10370 (description
10371 "@code{hdf5-cffi} is a CFFI wrapper for the HDF5 library.")
10372 (home-page "https://github.com/hdfgroup/hdf5-cffi")
10373 (license (license:non-copyleft
10374 (string-append "https://github.com/HDFGroup/hdf5-cffi/raw/"
10375 commit
10376 "/LICENSE")))
10377 (inputs
10378 `(("cffi" ,sbcl-cffi)
10379 ("cffi-grovel" ,sbcl-cffi-grovel)
10380 ("hdf5" ,hdf5-1.10)))
10381 (native-inputs
10382 `(("fiveam" ,sbcl-fiveam)))
10383 (arguments
10384 `(#:asd-system-name "hdf5-cffi"
10385 #:asd-file "hdf5-cffi.asd"
10386 #:test-asd-file "hdf5-cffi.test.asd"
10387 ;; Tests depend on hdf5-cffi.examples.asd in addition to hdf5-cffi.asd,
10388 ;; I don't know if there is a way to tell asdf-build-system to load
10389 ;; an additional system first, so tests are disabled.
10390 #:tests? #f
10391 #:phases
10392 (modify-phases %standard-phases
10393 (add-after 'unpack 'fix-paths
10394 (lambda* (#:key inputs #:allow-other-keys)
10395 (substitute* "src/library.lisp"
10396 (("libhdf5.so")
10397 (string-append
10398 (assoc-ref inputs "hdf5")
10399 "/lib/libhdf5.so")))))
10400 (add-after 'unpack 'fix-dependencies
10401 (lambda* (#:key inputs #:allow-other-keys)
10402 (substitute* "hdf5-cffi.asd"
10403 ((":depends-on \\(:cffi\\)")
10404 ":depends-on (:cffi :cffi-grovel)"))
10405 (substitute* "hdf5-cffi.test.asd"
10406 ((":depends-on \\(:cffi :hdf5-cffi")
10407 ":depends-on (:cffi :cffi-grovel :hdf5-cffi"))))))))))
10408
10409 (define-public cl-hdf5-cffi
10410 (sbcl-package->cl-source-package sbcl-hdf5-cffi))
10411
10412 (define-public ecl-hdf5-cffi
10413 (sbcl-package->ecl-package sbcl-hdf5-cffi))
10414
10415 (define-public sbcl-cl-randist
10416 (package
10417 (name "sbcl-cl-randist")
10418 (version "0.4.2")
10419 (source
10420 (origin
10421 (method git-fetch)
10422 (uri (git-reference
10423 (url "https://github.com/lvaruzza/cl-randist.git")
10424 (commit "f088a54b540a7adefab7c04094a6103f9edda3d0")))
10425 (file-name (git-file-name name version))
10426 (sha256
10427 (base32
10428 "0l8hyd6nbxb7f50vyxz3rbbm7kgr1fnadc40jywy4xj5vi5kpj5g"))))
10429 (build-system asdf-build-system/sbcl)
10430 (synopsis "Random distributions for Common Lisp")
10431 (description
10432 "Manual translation from C to Common Lisp of some random number
10433 generation functions from the GSL library.")
10434 (home-page "https://github.com/lvaruzza/cl-randist")
10435 (license license:bsd-2)
10436 (arguments
10437 `(#:asd-system-name "cl-randist"
10438 #:asd-file "cl-randist.asd"
10439 #:tests? #f))))
10440
10441 (define-public cl-randist
10442 (sbcl-package->cl-source-package sbcl-cl-randist))
10443
10444 (define-public ecl-cl-randist
10445 (sbcl-package->ecl-package sbcl-cl-randist))
10446
10447 (define-public sbcl-float-features
10448 (package
10449 (name "sbcl-float-features")
10450 (version "1.0.0")
10451 (source
10452 (origin
10453 (method git-fetch)
10454 (uri (git-reference
10455 (url "https://github.com/Shinmera/float-features.git")
10456 (commit "d3ef60181635b0849aa28cfc238053b7ca4644b0")))
10457 (file-name (git-file-name name version))
10458 (sha256
10459 (base32
10460 "0yj419k7n59x6rh3grwr6frgwwyria2il6f7wxpfazm8cskv4lzr"))))
10461 (build-system asdf-build-system/sbcl)
10462 (synopsis "Common Lisp IEEE float portability library")
10463 (description
10464 "Portability library for IEEE float features that are not
10465 covered by the Common Lisp standard.")
10466 (home-page "https://github.com/Shinmera/float-features")
10467 (license license:zlib)
10468 (inputs
10469 `(("documentation-utils" ,sbcl-documentation-utils)))
10470 (arguments
10471 `(#:asd-system-name "float-features"
10472 #:asd-file "float-features.asd"
10473 #:tests? #f))))
10474
10475 (define-public cl-float-features
10476 (sbcl-package->cl-source-package sbcl-float-features))
10477
10478 (define-public ecl-float-features
10479 (sbcl-package->ecl-package sbcl-float-features))
10480
10481 (define-public sbcl-function-cache
10482 (package
10483 (name "sbcl-function-cache")
10484 (version "1.0.3")
10485 (source
10486 (origin
10487 (method git-fetch)
10488 (uri (git-reference
10489 (url "https://github.com/AccelerationNet/function-cache.git")
10490 (commit "6a5ada401e57da2c8abf046f582029926e61fce8")))
10491 (file-name (git-file-name name version))
10492 (sha256
10493 (base32
10494 "000vmd3f5rx5hs9nvphfric0gkzaadns31c6mxaslpv0k7pkrmc6"))))
10495 (build-system asdf-build-system/sbcl)
10496 (synopsis "Function caching / memoization library for Common Lisp")
10497 (description
10498 "A common lisp library that provides extensible function result
10499 caching based on arguments (an expanded form of memoization).")
10500 (home-page "https://github.com/AccelerationNet/function-cache")
10501 (license
10502 (license:non-copyleft
10503 "https://github.com/AccelerationNet/function-cache/blob/master/README.md"))
10504 (inputs
10505 `(("alexandria" ,sbcl-alexandria)
10506 ("cl-interpol" ,sbcl-cl-interpol)
10507 ("iterate" ,sbcl-iterate)
10508 ("symbol-munger" ,sbcl-symbol-munger)
10509 ("closer-mop" ,sbcl-closer-mop)))
10510 (arguments
10511 `(#:asd-system-name "function-cache"
10512 #:asd-file "function-cache.asd"
10513 #:tests? #f))))
10514
10515 (define-public cl-function-cache
10516 (sbcl-package->cl-source-package sbcl-function-cache))
10517
10518 (define-public ecl-function-cache
10519 (sbcl-package->ecl-package sbcl-function-cache))
10520
10521 (define-public sbcl-type-r
10522 (let ((commit "83c89e38f2f7a7b16f1012777ecaf878cfa6a267")
10523 (revision "1"))
10524 (package
10525 (name "sbcl-type-r")
10526 (version (git-version "0.0.0" revision commit))
10527 (source
10528 (origin
10529 (method git-fetch)
10530 (uri (git-reference
10531 (url "https://github.com/guicho271828/type-r.git")
10532 (commit commit)))
10533 (file-name (git-file-name name version))
10534 (sha256
10535 (base32
10536 "1arsxc2539rg8vbrdirz4xxj1b06mc6g6rqndz7a02g127qvk2sm"))))
10537 (build-system asdf-build-system/sbcl)
10538 (synopsis "Parser interface for Common Lisp built-in compound types")
10539 (description
10540 "Collections of accessor functions and patterns to access
10541 the elements in compound type specifier, e.g. @code{dimensions} in
10542 @code{(array element-type dimensions)}")
10543 (home-page "https://github.com/guicho271828/type-r")
10544 (license license:lgpl3+)
10545 (inputs
10546 `(("trivia" ,sbcl-trivia)
10547 ("alexandria" ,sbcl-alexandria)))
10548 (native-inputs
10549 `(("fiveam" ,sbcl-fiveam)))
10550 (arguments
10551 `(#:asd-system-name "type-r"
10552 #:asd-file "type-r.asd"
10553 #:test-asd-file "type-r.test.asd")))))
10554
10555 (define-public cl-type-r
10556 (sbcl-package->cl-source-package sbcl-type-r))
10557
10558 (define-public sbcl-trivialib-type-unify
10559 (let ((commit "62492ebf04db567dcf435ae84c50b7b8202ecf99")
10560 (revision "1"))
10561 (package
10562 (name "sbcl-trivialib-type-unify")
10563 (version (git-version "0.1" revision commit))
10564 (source
10565 (origin
10566 (method git-fetch)
10567 (uri (git-reference
10568 (url "https://github.com/guicho271828/trivialib.type-unify.git")
10569 (commit commit)))
10570 (file-name (git-file-name name version))
10571 (sha256
10572 (base32
10573 "1bkyfzbwv75p50zp8n1n9rh2r29pw3vgz91gmn2gzzkyq3khj1vh"))))
10574 (build-system asdf-build-system/sbcl)
10575 (synopsis "Common Lisp type unification")
10576 (description
10577 "Unifies a parametrized type specifier against an actual type specifier.
10578 Importantly, it handles complicated array-subtypes and number-related types
10579 correctly.")
10580 (home-page "https://github.com/guicho271828/trivialib.type-unify")
10581 (license license:lgpl3+)
10582 (inputs
10583 `(("alexandria" ,sbcl-alexandria)
10584 ("trivia" ,sbcl-trivia)
10585 ("introspect-environment" ,sbcl-introspect-environment)
10586 ("type-r" ,sbcl-type-r)))
10587 (native-inputs
10588 `(("fiveam" ,sbcl-fiveam)))
10589 (arguments
10590 `(#:asd-system-name "trivialib.type-unify"
10591 #:asd-file "trivialib.type-unify.asd"
10592 #:test-asd-file "trivialib.type-unify.test.asd")))))
10593
10594 (define-public cl-trivialib-type-unify
10595 (sbcl-package->cl-source-package sbcl-trivialib-type-unify))
10596
10597 (define-public sbcl-specialized-function
10598 (let ((commit "b96b6afaf8358bf91cc0703e62a5a4ee20d2b7bc")
10599 (revision "1"))
10600 (package
10601 (name "sbcl-specialized-function")
10602 (version (git-version "0.0.0" revision commit))
10603 (source
10604 (origin
10605 (method git-fetch)
10606 (uri (git-reference
10607 (url "https://github.com/numcl/specialized-function.git")
10608 (commit commit)))
10609 (file-name (git-file-name name version))
10610 (sha256
10611 (base32
10612 "12j45ff0n26578vmfbhb9mfbdchw4wy023k0m2ppgl9s0z4bhjaj"))))
10613 (build-system asdf-build-system/sbcl)
10614 (synopsis "Julia-like dispatch for Common Lisp")
10615 (description
10616 "This library is part of NUMCL. It provides a macro
10617 @code{SPECIALIZED} that performs a Julia-like dispatch on the arguments,
10618 lazily compiling a type-specific version of the function from the same
10619 code. The main target of this macro is speed.")
10620 (home-page "https://github.com/numcl/specialized-function")
10621 (license license:lgpl3+)
10622 (inputs
10623 `(("trivia" ,sbcl-trivia)
10624 ("alexandria" ,sbcl-alexandria)
10625 ("iterate" ,sbcl-iterate)
10626 ("lisp-namespace" ,sbcl-lisp-namespace)
10627 ("type-r" ,sbcl-type-r)
10628 ("trivial-cltl2" ,sbcl-trivial-cltl2)))
10629 (native-inputs
10630 `(("fiveam" ,sbcl-fiveam)))
10631 (arguments
10632 `(#:asd-system-name "specialized-function"
10633 #:asd-file "specialized-function.asd"
10634 #:test-asd-file "specialized-function.test.asd")))))
10635
10636 (define-public cl-specialized-function
10637 (sbcl-package->cl-source-package sbcl-specialized-function))
10638
10639 (define-public sbcl-constantfold
10640 (let ((commit "0ff1d97a3fbcb89264f6a2af6ce62b73e7b421f4")
10641 (revision "1"))
10642 (package
10643 (name "sbcl-constantfold")
10644 (version (git-version "0.1" revision commit))
10645 (source
10646 (origin
10647 (method git-fetch)
10648 (uri (git-reference
10649 (url "https://github.com/numcl/constantfold.git")
10650 (commit commit)))
10651 (file-name (git-file-name name version))
10652 (sha256
10653 (base32
10654 "153h0569z6bff1qbad0bdssplwwny75l7ilqwcfqfdvzsxf9jh06"))))
10655 (build-system asdf-build-system/sbcl)
10656 (synopsis "Support library for numcl")
10657 (description
10658 "Support library for numcl. Registers a function as an
10659 additional form that is considered as a candidate for a constant.")
10660 (home-page "https://github.com/numcl/constantfold")
10661 (license license:lgpl3+)
10662 (inputs
10663 `(("trivia" ,sbcl-trivia)
10664 ("alexandria" ,sbcl-alexandria)
10665 ("iterate" ,sbcl-iterate)
10666 ("lisp-namespace" ,sbcl-lisp-namespace)))
10667 (native-inputs
10668 `(("fiveam" ,sbcl-fiveam)))
10669 (arguments
10670 `(#:asd-system-name "constantfold"
10671 #:asd-file "constantfold.asd"
10672 #:test-asd-file "constantfold.test.asd")))))
10673
10674 (define-public cl-constantfold
10675 (sbcl-package->cl-source-package sbcl-constantfold))
10676
10677 (define-public sbcl-gtype
10678 (let ((commit "42275e3606242ae91e9c8dfa30c18ced50a35b66")
10679 (revision "1"))
10680 (package
10681 (name "sbcl-gtype")
10682 (version (git-version "0.1" revision commit))
10683 (source
10684 (origin
10685 (method git-fetch)
10686 (uri (git-reference
10687 (url "https://github.com/numcl/gtype.git")
10688 (commit commit)))
10689 (file-name (git-file-name name version))
10690 (sha256
10691 (base32
10692 "1f56dba998v945jcxhha391557n6md1ql25b7icfwwfivhmlaa9b"))))
10693 (build-system asdf-build-system/sbcl)
10694 (synopsis "C++/Julia-like parametric types in Common Lisp")
10695 (description
10696 "Support library for numcl that provides Julia-like runtime parametric
10697 type correctness in Common Lisp. It is based on CLtL2 extensions.")
10698 (home-page "https://github.com/numcl/gtype")
10699 (license license:lgpl3+)
10700 (inputs
10701 `(("trivialib.type-unify" ,sbcl-trivialib-type-unify)
10702 ("trivial-cltl2" ,sbcl-trivial-cltl2)
10703 ("trivia" ,sbcl-trivia)
10704 ("alexandria" ,sbcl-alexandria)
10705 ("iterate" ,sbcl-iterate)
10706 ("type-r" ,sbcl-type-r)))
10707 (native-inputs
10708 `(("fiveam" ,sbcl-fiveam)))
10709 (arguments
10710 `(#:asd-system-name "gtype"
10711 #:asd-file "gtype.asd"
10712 #:test-asd-file "gtype.test.asd")))))
10713
10714 (define-public cl-gtype
10715 (sbcl-package->cl-source-package sbcl-gtype))
10716
10717 (define-public sbcl-numcl
10718 (let ((commit "1cf7dfa59f763a24a501092870e9c5ee745d0c17")
10719 (revision "1"))
10720 (package
10721 (name "sbcl-numcl")
10722 (version (git-version "0.1.0" revision commit))
10723 (source
10724 (origin
10725 (method git-fetch)
10726 (uri (git-reference
10727 (url "https://github.com/numcl/numcl.git")
10728 (commit commit)))
10729 (file-name (git-file-name name version))
10730 (sha256
10731 (base32
10732 "0i3jby9hf4ii7blivgyza80g0vmjfhk8537i5i7kqqk0i5sdnym2"))))
10733 (build-system asdf-build-system/sbcl)
10734 (synopsis "Numpy clone in Common Lisp")
10735 (description
10736 "This is a Numpy clone in Common Lisp. At the moment the
10737 library is written in pure Common Lisp, focusing more on correctness
10738 and usefulness, not speed. Track the progress at
10739 @url{https://github.com/numcl/numcl/projects/1}.")
10740 (home-page "https://github.com/numcl/numcl")
10741 (license license:lgpl3+)
10742 (inputs
10743 `(("trivia" ,sbcl-trivia)
10744 ("alexandria" ,sbcl-alexandria)
10745 ("iterate" ,sbcl-iterate)
10746 ("lisp-namespace" ,sbcl-lisp-namespace)
10747 ("type-r" ,sbcl-type-r)
10748 ("constantfold" ,sbcl-constantfold)
10749 ("cl-randist" ,sbcl-cl-randist)
10750 ("float-features" ,sbcl-float-features)
10751 ("function-cache" ,sbcl-function-cache)
10752 ("specialized-function" ,sbcl-specialized-function)
10753 ("gtype" ,sbcl-gtype)))
10754 (native-inputs
10755 `(("fiveam" ,sbcl-fiveam)))
10756 (arguments
10757 `(#:asd-system-name "numcl"
10758 #:asd-file "numcl.asd"
10759 #:test-asd-file "numcl.test.asd")))))
10760
10761 (define-public cl-numcl
10762 (sbcl-package->cl-source-package sbcl-numcl))
10763
10764 (define-public sbcl-pzmq
10765 (let ((commit "7c7390eedc469d033c72dc497984d1536ee75826")
10766 (revision "1"))
10767 (package
10768 (name "sbcl-pzmq")
10769 (version (git-version "0.0.0" revision commit))
10770 (source
10771 (origin
10772 (method git-fetch)
10773 (uri (git-reference
10774 (url "https://github.com/orivej/pzmq.git")
10775 (commit commit)))
10776 (file-name (git-file-name name version))
10777 (sha256
10778 (base32 "0gmwzf7h90wa7v4wnk49g0hv2mdalljpwhyigxcb967wzv8lqci9"))))
10779 (build-system asdf-build-system/sbcl)
10780 (native-inputs
10781 `(("bordeaux-threads" ,sbcl-bordeaux-threads)
10782 ("fiveam" ,sbcl-fiveam)
10783 ("let-plus" ,sbcl-let-plus)))
10784 (inputs
10785 `(("cffi" ,sbcl-cffi)
10786 ("cffi-grovel" ,sbcl-cffi-grovel)
10787 ("zeromq" ,zeromq)))
10788 (arguments
10789 `(#:phases (modify-phases %standard-phases
10790 (add-after 'unpack 'fix-paths
10791 (lambda* (#:key inputs #:allow-other-keys)
10792 (substitute* "c-api.lisp"
10793 (("\"libzmq")
10794 (string-append "\""
10795 (assoc-ref inputs "zeromq")
10796 "/lib/libzmq")))
10797 #t)))))
10798 (synopsis "Common Lisp bindings for the ZeroMQ library")
10799 (description "This Common Lisp library provides bindings for the ZeroMQ
10800 lightweight messaging kernel.")
10801 (home-page "https://github.com/orivej/pzmq")
10802 (license license:unlicense))))
10803
10804 (define-public cl-pzmq
10805 (sbcl-package->cl-source-package sbcl-pzmq))
10806
10807 (define-public ecl-pzmq
10808 (sbcl-package->ecl-package sbcl-pzmq))
10809
10810 (define-public sbcl-clss
10811 (let ((revision "1")
10812 (commit "2a8e8615ab55870d4ca01928f3ed3bbeb4e75c8d"))
10813 (package
10814 (name "sbcl-clss")
10815 (version (git-version "0.3.1" revision commit))
10816 (source
10817 (origin
10818 (method git-fetch)
10819 (uri
10820 (git-reference
10821 (url "https://github.com/Shinmera/clss.git")
10822 (commit commit)))
10823 (sha256
10824 (base32 "0la4dbcda78x29szanylccrsljqrn9d1mhh569sqkyp44ni5fv91"))
10825 (file-name (git-file-name name version))))
10826 (inputs
10827 `(("array-utils" ,sbcl-array-utils)
10828 ("plump" ,sbcl-plump)))
10829 (build-system asdf-build-system/sbcl)
10830 (synopsis "DOM tree searching engine based on CSS selectors")
10831 (description "CLSS is a DOM traversal engine based on CSS
10832 selectors. It makes use of the Plump-DOM and is used by lQuery.")
10833 (home-page "https://github.com/Shinmera/clss")
10834 (license license:zlib))))
10835
10836 (define-public cl-clss
10837 (sbcl-package->cl-source-package sbcl-clss))
10838
10839 (define-public ecl-clss
10840 (sbcl-package->ecl-package sbcl-clss))
10841
10842 (define-public sbcl-lquery
10843 (let ((revision "1")
10844 (commit "8048111c6b83956daa632e7a3ffbd8c9c203bd8d"))
10845 (package
10846 (name "sbcl-lquery")
10847 (version (git-version "3.2.1" revision commit))
10848 (source
10849 (origin
10850 (method git-fetch)
10851 (uri
10852 (git-reference
10853 (url "https://github.com/Shinmera/lquery.git")
10854 (commit commit)))
10855 (sha256
10856 (base32 "0520mcpxc2d6fdm8z61arpgd2z38kan7cf06qs373n5r64rakz6w"))
10857 (file-name (git-file-name name version))))
10858 (native-inputs
10859 `(("fiveam" ,sbcl-fiveam)))
10860 (inputs
10861 `(("array-utils" ,sbcl-array-utils)
10862 ("form-fiddle" ,sbcl-form-fiddle)
10863 ("plump" ,sbcl-plump)
10864 ("clss" ,sbcl-clss)))
10865 (build-system asdf-build-system/sbcl)
10866 (synopsis "Library to allow jQuery-like HTML/DOM manipulation")
10867 (description "@code{lQuery} is a DOM manipulation library written in
10868 Common Lisp, inspired by and based on the jQuery syntax and
10869 functions. It uses Plump and CLSS as DOM and selector engines. The
10870 main idea behind lQuery is to provide a simple interface for crawling
10871 and modifying HTML sites, as well as to allow for an alternative
10872 approach to templating.")
10873 (home-page "https://github.com/Shinmera/lquery")
10874 (license license:zlib))))
10875
10876 (define-public cl-lquery
10877 (sbcl-package->cl-source-package sbcl-lquery))
10878
10879 (define-public ecl-lquery
10880 (sbcl-package->ecl-package sbcl-lquery))
10881
10882 (define-public sbcl-cl-mysql
10883 (let ((commit "ab56c279c1815aec6ca0bfe85164ff7e85cfb6f9")
10884 (revision "1"))
10885 (package
10886 (name "sbcl-cl-mysql")
10887 (version (git-version "0.1" revision commit))
10888 (source
10889 (origin
10890 (method git-fetch)
10891 (uri (git-reference
10892 (url "https://github.com/hackinghat/cl-mysql.git")
10893 (commit commit)))
10894 (file-name (git-file-name name version))
10895 (sha256
10896 (base32 "0dg5ynx2ww94d0qfwrdrm7plkn43h64hs4iiq9mj2s1s4ixnp3lr"))))
10897 (build-system asdf-build-system/sbcl)
10898 (native-inputs
10899 `(("stefil" ,sbcl-stefil)))
10900 (inputs
10901 `(("cffi" ,sbcl-cffi)
10902 ("mariadb-lib" ,mariadb "lib")))
10903 (arguments
10904 `(#:tests? #f ; TODO: Tests require a running server
10905 #:phases
10906 (modify-phases %standard-phases
10907 (add-after 'unpack 'fix-paths
10908 (lambda* (#:key inputs #:allow-other-keys)
10909 (substitute* "system.lisp"
10910 (("libmysqlclient_r" all)
10911 (string-append (assoc-ref inputs "mariadb-lib")
10912 "/lib/"
10913 all)))
10914 #t)))))
10915 (synopsis "Common Lisp wrapper for MySQL")
10916 (description
10917 "@code{cl-mysql} is a Common Lisp implementation of a MySQL wrapper.")
10918 (home-page "http://www.hackinghat.com/index.php/cl-mysql")
10919 (license license:expat))))
10920
10921 (define-public cl-mysql
10922 (sbcl-package->cl-source-package sbcl-cl-mysql))
10923
10924 (define-public sbcl-simple-date
10925 (let ((commit "74469b25bbda990ec9b77e0d0eccdba0cd7e721a")
10926 (revision "1"))
10927 (package
10928 (name "sbcl-simple-date")
10929 (version (git-version "1.19" revision commit))
10930 (source
10931 (origin
10932 (method git-fetch)
10933 (uri (git-reference
10934 (url "https://github.com/marijnh/Postmodern.git")
10935 (commit commit)))
10936 (file-name (git-file-name name version))
10937 (sha256
10938 (base32 "0im7ymnyxjhn2w74jfg76k5gpr0gl33n31akx33hl28722ljd0hd"))))
10939 (build-system asdf-build-system/sbcl)
10940 (native-inputs
10941 `(("fiveam" ,sbcl-fiveam)))
10942 (synopsis "Basic date and time objects for Common Lisp")
10943 (description
10944 "@code{simple-date} is a very basic implementation of date and time
10945 objects, used to support storing and retrieving time-related SQL types.")
10946 (home-page "https://marijnhaverbeke.nl/postmodern/")
10947 (license license:zlib))))
10948
10949 (define-public cl-simple-date
10950 (sbcl-package->cl-source-package sbcl-simple-date))
10951
10952 (define-public ecl-simple-date
10953 (sbcl-package->ecl-package sbcl-simple-date))
10954
10955 (define-public sbcl-cl-postgres
10956 (package
10957 (inherit sbcl-simple-date)
10958 (name "sbcl-cl-postgres")
10959 (native-inputs
10960 `(("fiveam" ,sbcl-fiveam)
10961 ("simple-date" ,sbcl-simple-date)))
10962 (inputs
10963 `(("md5" ,sbcl-md5)
10964 ("split-sequence" ,sbcl-split-sequence)
10965 ("usocket" ,sbcl-usocket)))
10966 (arguments
10967 `(#:tests? #f)) ; TODO: Break simple-date/postgres-glue circular dependency
10968 (synopsis "Common Lisp interface for PostgreSQL")
10969 (description
10970 "@code{cl-postgres} is a low-level library used for interfacing with
10971 a PostgreSQL server over a socket.")))
10972
10973 (define-public cl-postgres
10974 (sbcl-package->cl-source-package sbcl-cl-postgres))
10975
10976 (define-public sbcl-simple-date-postgres-glue
10977 (package
10978 (inherit sbcl-simple-date)
10979 (name "sbcl-simple-date-postgres-glue")
10980 (inputs
10981 `(("cl-postgres" ,sbcl-cl-postgres)
10982 ("simple-date" ,sbcl-simple-date)))
10983 (arguments
10984 `(#:asd-file "simple-date.asd"
10985 #:asd-system-name "simple-date/postgres-glue"))))
10986
10987 (define-public cl-simple-date-postgres-glue
10988 (sbcl-package->cl-source-package sbcl-simple-date-postgres-glue))
10989
10990 (define-public sbcl-s-sql
10991 (package
10992 (inherit sbcl-simple-date)
10993 (name "sbcl-s-sql")
10994 (inputs
10995 `(("alexandria" ,sbcl-alexandria)
10996 ("cl-postgres" ,sbcl-cl-postgres)))
10997 (arguments
10998 `(#:tests? #f)) ; TODO: Break postmodern circular dependency
10999 (synopsis "Lispy DSL for SQL")
11000 (description
11001 "@code{s-sql} is a Common Lisp library that can be used to compile
11002 s-expressions to strings of SQL code, escaping any Lisp values inside, and
11003 doing as much as possible of the work at compile time.")))
11004
11005 (define-public cl-s-sql
11006 (sbcl-package->cl-source-package sbcl-s-sql))
11007
11008 (define-public sbcl-postmodern
11009 (package
11010 (inherit sbcl-simple-date)
11011 (name "sbcl-postmodern")
11012 (native-inputs
11013 `(("fiveam" ,sbcl-fiveam)
11014 ("simple-date" ,sbcl-simple-date)
11015 ("simple-date-postgres-glue" ,sbcl-simple-date-postgres-glue)))
11016 (inputs
11017 `(("alexandria" ,sbcl-alexandria)
11018 ("bordeaux-threads" ,sbcl-bordeaux-threads)
11019 ("cl-postgres" ,sbcl-cl-postgres)
11020 ("closer-mop" ,sbcl-closer-mop)
11021 ("global-vars" ,sbcl-global-vars)
11022 ("s-sql" ,sbcl-s-sql)
11023 ("split-sequence" ,sbcl-split-sequence)))
11024 (arguments
11025 ;; TODO: Fix missing dependency errors for simple-date/postgres-glue,
11026 ;; cl-postgres/tests and s-sql/tests.
11027 `(#:tests? #f))
11028 (synopsis "Common Lisp library for interacting with PostgreSQL")
11029 (description
11030 "@code{postmodern} is a Common Lisp library for interacting with
11031 PostgreSQL databases. It provides the following features:
11032
11033 @itemize
11034 @item Efficient communication with the database server without need for
11035 foreign libraries.
11036 @item Support for UTF-8 on Unicode-aware Lisp implementations.
11037 @item A syntax for mixing SQL and Lisp code.
11038 @item Convenient support for prepared statements and stored procedures.
11039 @item A metaclass for simple database-access objects.
11040 @end itemize\n")))
11041
11042 (define-public cl-postmodern
11043 (sbcl-package->cl-source-package sbcl-postmodern))
11044
11045 (define-public sbcl-dbi
11046 (package
11047 (name "sbcl-dbi")
11048 (version "0.9.4")
11049 (source
11050 (origin
11051 (method git-fetch)
11052 (uri (git-reference
11053 (url "https://github.com/fukamachi/cl-dbi.git")
11054 (commit version)))
11055 (file-name (git-file-name name version))
11056 (sha256
11057 (base32 "0m1fsravfaizamdak84adh3jxc4j91maqnrb4m08bfbmb04cdqhs"))))
11058 (build-system asdf-build-system/sbcl)
11059 (inputs
11060 `(("bordeaux-threads" ,sbcl-bordeaux-threads)
11061 ("closer-mop" ,sbcl-closer-mop)
11062 ("split-sequence" ,sbcl-split-sequence)))
11063 (arguments
11064 `(#:tests? #f)) ; TODO: Break circular dependency with dbd-*
11065 (synopsis "Database independent interface for Common Lisp")
11066 (description
11067 "@code{dbi} is a Common Lisp library providing a database independent
11068 interface for MySQL, PostgreSQL and SQLite.")
11069 (home-page "https://github.com/fukamachi/cl-dbi")
11070 (license license:llgpl)))
11071
11072 (define-public cl-dbi
11073 (sbcl-package->cl-source-package sbcl-dbi))
11074
11075 (define-public sbcl-dbd-mysql
11076 (package
11077 (inherit sbcl-dbi)
11078 (name "sbcl-dbd-mysql")
11079 (inputs
11080 `(("cl-mysql" ,sbcl-cl-mysql)
11081 ("dbi" ,sbcl-dbi)))
11082 (synopsis "Database driver for MySQL")))
11083
11084 (define-public cl-dbd-mysql
11085 (sbcl-package->cl-source-package sbcl-dbd-mysql))
11086
11087 (define-public sbcl-dbd-postgres
11088 (package
11089 (inherit sbcl-dbi)
11090 (name "sbcl-dbd-postgres")
11091 (inputs
11092 `(("cl-postgres" ,sbcl-cl-postgres)
11093 ("dbi" ,sbcl-dbi)
11094 ("trivial-garbage" ,sbcl-trivial-garbage)))
11095 (synopsis "Database driver for PostgreSQL")))
11096
11097 (define-public cl-dbd-postgres
11098 (sbcl-package->cl-source-package sbcl-dbd-postgres))
11099
11100 (define-public sbcl-dbd-sqlite3
11101 (package
11102 (inherit sbcl-dbi)
11103 (name "sbcl-dbd-sqlite3")
11104 (inputs
11105 `(("cl-sqlite" ,sbcl-cl-sqlite)
11106 ("dbi" ,sbcl-dbi)
11107 ("trivial-garbage" ,sbcl-trivial-garbage)))
11108 (synopsis "Database driver for SQLite3")))
11109
11110 (define-public cl-dbd-sqlite3
11111 (sbcl-package->cl-source-package sbcl-dbd-sqlite3))
11112
11113 (define-public sbcl-uffi
11114 (package
11115 (name "sbcl-uffi")
11116 (version "2.1.2")
11117 (source
11118 (origin
11119 (method git-fetch)
11120 (uri (git-reference
11121 (url "http://git.kpe.io/uffi.git")
11122 (commit (string-append "v" version))))
11123 (file-name (git-file-name name version))
11124 (sha256
11125 (base32 "1hqszvz0a3wk4s9faa83sc3vjxcb5rxmjclyr17yzwg55z733kry"))))
11126 (build-system asdf-build-system/sbcl)
11127 (arguments
11128 `(#:tests? #f ; TODO: Fix use of deprecated ASDF functions
11129 #:phases
11130 (modify-phases %standard-phases
11131 (add-after 'unpack 'fix-permissions
11132 (lambda _
11133 (make-file-writable "doc/html.tar.gz")
11134 #t)))))
11135 (synopsis "Universal foreign function library for Common Lisp")
11136 (description
11137 "UFFI provides a universal foreign function interface (FFI)
11138 for Common Lisp.")
11139 (home-page "http://quickdocs.org/uffi/")
11140 (license license:llgpl)))
11141
11142 (define-public cl-uffi
11143 (package
11144 (inherit (sbcl-package->cl-source-package sbcl-uffi))
11145 (arguments
11146 `(#:phases
11147 ;; asdf-build-system/source has its own phases and does not inherit
11148 ;; from asdf-build-system/sbcl phases.
11149 (modify-phases %standard-phases/source
11150 (add-after 'unpack 'fix-permissions
11151 (lambda _
11152 (make-file-writable "doc/html.tar.gz")
11153 #t)))))))
11154
11155 (define-public sbcl-clsql
11156 (package
11157 (name "sbcl-clsql")
11158 (version "6.7.0")
11159 (source
11160 (origin
11161 (method git-fetch)
11162 (uri (git-reference
11163 (url "http://git.kpe.io/clsql.git")
11164 (commit (string-append "v" version))))
11165 (file-name (git-file-name name version))
11166 (sha256
11167 (base32 "1v1k3s5bsy3lgd9gk459bzpb1r0kdjda25s29samxw4gsgf1fqvp"))
11168 (snippet
11169 '(begin
11170 ;; Remove precompiled libraries.
11171 (delete-file "db-mysql/clsql_mysql.dll")
11172 (delete-file "uffi/clsql_uffi.dll")
11173 (delete-file "uffi/clsql_uffi.lib")
11174 #t))))
11175 (build-system asdf-build-system/sbcl)
11176 (native-inputs
11177 `(("cffi-uffi-compat" ,sbcl-cffi-uffi-compat)
11178 ("rt" ,sbcl-rt)
11179 ("uffi" ,sbcl-uffi)))
11180 (arguments
11181 `(#:phases
11182 (modify-phases %standard-phases
11183 (add-after 'unpack 'fix-permissions
11184 (lambda _
11185 (make-file-writable "doc/html.tar.gz")
11186 #t))
11187 (add-after 'unpack 'fix-tests
11188 (lambda _
11189 (substitute* "clsql.asd"
11190 (("clsql-tests :force t")
11191 "clsql-tests"))
11192 #t)))))
11193 (synopsis "Common Lisp SQL Interface library")
11194 (description
11195 "@code{clsql} is a Common Lisp interface to SQL RDBMS based on the
11196 Xanalys CommonSQL interface for Lispworks. It provides low-level database
11197 interfaces as well as a functional and an object oriented interface.")
11198 (home-page "http://clsql.kpe.io/")
11199 (license license:llgpl)))
11200
11201 (define-public cl-clsql
11202 (package
11203 (inherit (sbcl-package->cl-source-package sbcl-clsql))
11204 (native-inputs
11205 `(("rt" ,cl-rt)))
11206 (inputs
11207 `(("mysql" ,mysql)
11208 ("postgresql" ,postgresql)
11209 ("sqlite" ,sqlite)
11210 ("zlib" ,zlib)))
11211 (propagated-inputs
11212 `(("cl-postgres" ,cl-postgres)
11213 ("cffi-uffi-compat" ,cl-cffi-uffi-compat)
11214 ("md5" ,cl-md5)
11215 ("uffi" ,cl-uffi)))
11216 (arguments
11217 `(#:phases
11218 ;; asdf-build-system/source has its own phases and does not inherit
11219 ;; from asdf-build-system/sbcl phases.
11220 (modify-phases %standard-phases/source
11221 (add-after 'unpack 'fix-permissions
11222 (lambda _
11223 (make-file-writable "doc/html.tar.gz")
11224 #t)))))))
11225
11226 (define-public sbcl-clsql-uffi
11227 (package
11228 (inherit sbcl-clsql)
11229 (name "sbcl-clsql-uffi")
11230 (inputs
11231 `(("cffi-uffi-compat" ,sbcl-cffi-uffi-compat)
11232 ("clsql" ,sbcl-clsql)
11233 ("uffi" ,sbcl-uffi)))
11234 (synopsis "UFFI helper functions for Common Lisp SQL interface library")))
11235
11236 (define-public sbcl-clsql-sqlite3
11237 (package
11238 (inherit sbcl-clsql)
11239 (name "sbcl-clsql-sqlite3")
11240 (inputs
11241 `(("clsql" ,sbcl-clsql)
11242 ("clsql-uffi" ,sbcl-clsql-uffi)
11243 ("sqlite" ,sqlite)))
11244 (arguments
11245 (substitute-keyword-arguments (package-arguments sbcl-clsql)
11246 ((#:phases phases '%standard-phases)
11247 `(modify-phases ,phases
11248 (add-after 'unpack 'fix-paths
11249 (lambda* (#:key inputs #:allow-other-keys)
11250 (substitute* "db-sqlite3/sqlite3-loader.lisp"
11251 (("libsqlite3")
11252 (string-append (assoc-ref inputs "sqlite")
11253 "/lib/libsqlite3")))
11254 #t))))))
11255 (synopsis "SQLite3 driver for Common Lisp SQL interface library")))
11256
11257 (define-public sbcl-clsql-postgresql
11258 (package
11259 (inherit sbcl-clsql)
11260 (name "sbcl-clsql-postgresql")
11261 (inputs
11262 `(("clsql" ,sbcl-clsql)
11263 ("clsql-uffi" ,sbcl-clsql-uffi)
11264 ("postgresql" ,postgresql)))
11265 (arguments
11266 (substitute-keyword-arguments (package-arguments sbcl-clsql)
11267 ((#:phases phases '%standard-phases)
11268 `(modify-phases ,phases
11269 (add-after 'unpack 'fix-paths
11270 (lambda* (#:key inputs #:allow-other-keys)
11271 (substitute* "db-postgresql/postgresql-loader.lisp"
11272 (("libpq")
11273 (string-append (assoc-ref inputs "postgresql")
11274 "/lib/libpq")))
11275 #t))))))
11276 (synopsis "PostgreSQL driver for Common Lisp SQL interface library")))
11277
11278 (define-public sbcl-clsql-postgresql-socket3
11279 (package
11280 (inherit sbcl-clsql)
11281 (name "sbcl-clsql-postgresql-socket3")
11282 (inputs
11283 `(("cl-postgres" ,sbcl-cl-postgres)
11284 ("clsql" ,sbcl-clsql)
11285 ("md5" ,sbcl-md5)))
11286 (arguments
11287 (substitute-keyword-arguments (package-arguments sbcl-clsql)
11288 ((#:phases phases '%standard-phases)
11289 `(modify-phases ,phases
11290 (add-after 'create-asd-file 'fix-asd-file
11291 (lambda* (#:key outputs #:allow-other-keys)
11292 (let* ((out (assoc-ref outputs "out"))
11293 (lib (string-append out "/lib/" (%lisp-type)))
11294 (asd (string-append lib "/clsql-postgresql-socket3.asd")))
11295 (substitute* asd
11296 (("CLSQL-POSTGRESQL-SOCKET-SYSTEM::")
11297 "")))
11298 #t))))))
11299 (synopsis "PostgreSQL driver for Common Lisp SQL interface library")))
11300
11301 (define-public sbcl-clsql-mysql
11302 (package
11303 (inherit sbcl-clsql)
11304 (name "sbcl-clsql-mysql")
11305 (inputs
11306 `(("mysql" ,mysql)
11307 ("sbcl-clsql" ,sbcl-clsql)
11308 ("sbcl-clsql-uffi" ,sbcl-clsql-uffi)
11309 ("zlib" ,zlib)))
11310 (arguments
11311 (substitute-keyword-arguments (package-arguments sbcl-clsql)
11312 ((#:phases phases '%standard-phases)
11313 `(modify-phases ,phases
11314 (add-after 'unpack 'fix-paths
11315 (lambda* (#:key inputs outputs #:allow-other-keys)
11316 (let ((lib (string-append "#p\""
11317 (assoc-ref outputs "out")
11318 "/lib/\"")))
11319 (substitute* "clsql-mysql.asd"
11320 (("#p\"/usr/lib/clsql/clsql_mysql\\.so\"")
11321 lib))
11322 (substitute* "db-mysql/mysql-loader.lisp"
11323 (("libmysqlclient" all)
11324 (string-append (assoc-ref inputs "mysql") "/lib/" all))
11325 (("clsql-mysql-system::\\*library-file-dir\\*")
11326 lib)))
11327 #t))
11328 (add-before 'build 'build-helper-library
11329 (lambda* (#:key inputs outputs #:allow-other-keys)
11330 (let* ((mysql (assoc-ref inputs "mysql"))
11331 (inc-dir (string-append mysql "/include/mysql"))
11332 (lib-dir (string-append mysql "/lib"))
11333 (shared-lib-dir (string-append (assoc-ref outputs "out")
11334 "/lib"))
11335 (shared-lib (string-append shared-lib-dir
11336 "/clsql_mysql.so")))
11337 (mkdir-p shared-lib-dir)
11338 (invoke "gcc" "-fPIC" "-shared"
11339 "-I" inc-dir
11340 "db-mysql/clsql_mysql.c"
11341 "-Wl,-soname=clsql_mysql"
11342 "-L" lib-dir "-lmysqlclient" "-lz"
11343 "-o" shared-lib)
11344 #t)))))))
11345 (synopsis "MySQL driver for Common Lisp SQL interface library")))
11346
11347 (define-public sbcl-sycamore
11348 (let ((commit "fd2820fec165ad514493426dea209728f64e6d18"))
11349 (package
11350 (name "sbcl-sycamore")
11351 (version "0.0.20120604")
11352 (source
11353 (origin
11354 (method git-fetch)
11355 (uri (git-reference
11356 (url "https://github.com/ndantam/sycamore/")
11357 (commit commit)))
11358 (file-name (git-file-name name version))
11359 (sha256
11360 (base32 "00bv1aj89q5vldmq92zp2364jq312zjq2mbd3iyz1s2b4widzhl7"))))
11361 (build-system asdf-build-system/sbcl)
11362 (arguments
11363 `(#:asd-file "src/sycamore.asd"))
11364 (inputs
11365 `(("alexandria" ,sbcl-alexandria)
11366 ("cl-ppcre" ,sbcl-cl-ppcre)))
11367 (synopsis "Purely functional data structure library in Common Lisp")
11368 (description
11369 "Sycamore is a fast, purely functional data structure library in Common Lisp.
11370 If features:
11371
11372 @itemize
11373 @item Fast, purely functional weight-balanced binary trees.
11374 @item Leaf nodes are simple-vectors, greatly reducing tree height.
11375 @item Interfaces for tree Sets and Maps (dictionaries).
11376 @item Ropes.
11377 @item Purely functional pairing heaps.
11378 @item Purely functional amortized queue.
11379 @end itemize\n")
11380 (home-page "http://ndantam.github.io/sycamore/")
11381 (license license:bsd-3))))
11382
11383 (define-public cl-sycamore
11384 (sbcl-package->cl-source-package sbcl-sycamore))
11385
11386 (define-public sbcl-trivial-package-local-nicknames
11387 (package
11388 (name "sbcl-trivial-package-local-nicknames")
11389 (version "0.2")
11390 (home-page "https://github.com/phoe/trivial-package-local-nicknames")
11391 (source
11392 (origin
11393 (method git-fetch)
11394 (uri (git-reference
11395 (url home-page)
11396 (commit "16b7ad4c2b120f50da65154191f468ea5598460e")))
11397 (file-name (git-file-name name version))
11398 (sha256
11399 (base32 "18qc27xkjzdcqrilpk3pm7djldwq5rm3ggd5h9cr8hqcd54i2fqg"))))
11400 (build-system asdf-build-system/sbcl)
11401 (synopsis "Common Lisp compatibility library for package local nicknames")
11402 (description
11403 "This library is a portable compatibility layer around package local nicknames (PLN).
11404 This was done so there is a portability library for the PLN API not included
11405 in DEFPACKAGE.")
11406 (license license:unlicense)))
11407
11408 (define-public cl-trivial-package-local-nicknames
11409 (sbcl-package->cl-source-package sbcl-trivial-package-local-nicknames))
11410
11411 (define-public sbcl-enchant
11412 (let ((commit "6af162a7bf10541cbcfcfa6513894900329713fa"))
11413 (package
11414 (name "sbcl-enchant")
11415 (version (git-version "0.0.0" "1" commit))
11416 (home-page "https://github.com/tlikonen/cl-enchant")
11417 (source
11418 (origin
11419 (method git-fetch)
11420 (uri (git-reference
11421 (url home-page)
11422 (commit commit)))
11423 (file-name (git-file-name name version))
11424 (sha256
11425 (base32 "19yh5ihirzi1d8xqy1cjqipzd6ly3245cfxa5s9xx496rryz0s01"))))
11426 (build-system asdf-build-system/sbcl)
11427 (inputs
11428 `(("enchant" ,enchant)
11429 ("cffi" ,sbcl-cffi)))
11430 (arguments
11431 `(#:phases
11432 (modify-phases %standard-phases
11433 (add-after 'unpack 'fix-paths
11434 (lambda* (#:key inputs #:allow-other-keys)
11435 (substitute* "load-enchant.lisp"
11436 (("libenchant")
11437 (string-append
11438 (assoc-ref inputs "enchant") "/lib/libenchant-2"))))))))
11439 (synopsis "Common Lisp interface for the Enchant spell-checker library")
11440 (description
11441 "Enchant is a Common Lisp interface for the Enchant spell-checker
11442 library. The Enchant library is a generic spell-checker library which uses
11443 other spell-checkers transparently as back-end. The library supports the
11444 multiple checkers, including Aspell and Hunspell.")
11445 (license license:public-domain))))
11446
11447 (define-public cl-enchant
11448 (sbcl-package->cl-source-package sbcl-enchant))
11449
11450 (define-public sbcl-cl-change-case
11451 (let ((commit "5ceff2a5f8bd845b6cb510c6364176b27a238fd3"))
11452 (package
11453 (name "sbcl-cl-change-case")
11454 (version (git-version "0.1.0" "1" commit))
11455 (home-page "https://github.com/rudolfochrist/cl-change-case")
11456 (source
11457 (origin
11458 (method git-fetch)
11459 (uri (git-reference
11460 (url home-page)
11461 (commit commit)))
11462 (file-name (git-file-name name version))
11463 (sha256
11464 (base32 "1afyglglk9z3yg8gylcl301bl2r8vq3sllyznzj9s5xi5gs6qyf2"))))
11465 (build-system asdf-build-system/sbcl)
11466 (inputs
11467 `(("cl-ppcre" ,sbcl-cl-ppcre)
11468 ("cl-ppcre-unicode" ,sbcl-cl-ppcre-unicode)))
11469 (native-inputs
11470 `(("fiveam" ,sbcl-fiveam)))
11471 (arguments
11472 '(;; FIXME: Test pass but phase fails with 'Component
11473 ;; "cl-change-case-test" not found, required by'.
11474 #:tests? #f
11475 #:test-asd-file "cl-change-case-test.asd"))
11476 (synopsis "Convert Common Lisp strings between camelCase, PascalCase and more")
11477 (description
11478 "@code{cl-change-case} is library to convert strings between camelCase,
11479 PascalCase, snake_case, param-case, CONSTANT_CASE and more.")
11480 (license license:llgpl))))
11481
11482 (define-public cl-change-case
11483 (sbcl-package->cl-source-package sbcl-cl-change-case))
11484
11485 (define-public sbcl-moptilities
11486 (let ((commit "a436f16b357c96b82397ec018ea469574c10dd41"))
11487 (package
11488 (name "sbcl-moptilities")
11489 (version (git-version "0.3.13" "1" commit))
11490 (home-page "https://github.com/gwkkwg/moptilities/")
11491 (source
11492 (origin
11493 (method git-fetch)
11494 (uri (git-reference
11495 (url home-page)
11496 (commit commit)))
11497 (file-name (git-file-name name version))
11498 (sha256
11499 (base32 "1q12bqjbj47lx98yim1kfnnhgfhkl80102fkgp9pdqxg0fp6g5fc"))))
11500 (build-system asdf-build-system/sbcl)
11501 (inputs
11502 `(("closer-mop" ,sbcl-closer-mop)))
11503 (native-inputs
11504 `(("lift" ,sbcl-lift)))
11505 (synopsis "Compatibility layer for Common Lisp MOP implementation differences")
11506 (description
11507 "MOP utilities provide a common interface between Lisps and make the
11508 MOP easier to use.")
11509 (license license:expat))))
11510
11511 (define-public cl-moptilities
11512 (sbcl-package->cl-source-package sbcl-moptilities))
11513
11514 (define-public sbcl-osicat
11515 (let ((commit "de0c18a367eedc857e1902a7319828af072a0d97"))
11516 (package
11517 (name "sbcl-osicat")
11518 (version (git-version "0.7.0" "1" commit))
11519 (home-page "http://www.common-lisp.net/project/osicat/")
11520 (source
11521 (origin
11522 (method git-fetch)
11523 (uri (git-reference
11524 (url "https://github.com/osicat/osicat")
11525 (commit commit)))
11526 (file-name (git-file-name name version))
11527 (sha256
11528 (base32 "15viw5pi5sa7qq9b4n2rr3dj2jkqr180rh9z1lh8w3rgl42i2adc"))))
11529 (build-system asdf-build-system/sbcl)
11530 (arguments
11531 `(#:phases
11532 (modify-phases %standard-phases
11533 ;; The cleanup phase moves files around but we need to keep the
11534 ;; directory structure for the grovel-generated library.
11535 (replace 'cleanup
11536 (lambda* (#:key outputs #:allow-other-keys)
11537 (let* ((out (assoc-ref outputs "out"))
11538 (lib (string-append out "/lib/sbcl/")))
11539 (delete-file-recursively (string-append lib "src"))
11540 (delete-file-recursively (string-append lib "tests"))
11541 (for-each delete-file
11542 (filter (lambda (file)
11543 (not (member (basename file) '("libosicat.so"))))
11544 (find-files (string-append lib "posix") ".*"))))
11545 #t)))))
11546 (inputs
11547 `(("alexandria" ,sbcl-alexandria)
11548 ("cffi" ,sbcl-cffi)
11549 ("trivial-features" ,sbcl-trivial-features)))
11550 (native-inputs
11551 `(("cffi-grovel" ,sbcl-cffi-grovel)
11552 ("rt" ,sbcl-rt)))
11553 (synopsis "Operating system interface for Common Lisp")
11554 (description
11555 "Osicat is a lightweight operating system interface for Common Lisp on
11556 Unix-platforms. It is not a POSIX-style API, but rather a simple lispy
11557 accompaniment to the standard ANSI facilities.")
11558 (license license:expat))))
11559
11560 (define-public cl-osicat
11561 (sbcl-package->cl-source-package sbcl-osicat))