gnu: sbcl-cl-prevalence: Update to 20191028.
[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 ((commit "5e5c7d83090cc0fbf32c4628362ac3ce2c50dc59"))
78 (package
79 (name "sbcl-alexandria")
80 (version "1.0.1")
81 (source
82 (origin
83 (method git-fetch)
84 (uri (git-reference
85 (url "https://gitlab.common-lisp.net/alexandria/alexandria.git")
86 (commit commit)))
87 (sha256
88 (base32
89 "010w8829dq28jf8ajfzas9nfvpxa5bal04mg299xq6y9spihc2iz"))
90 (file-name (git-file-name name version))))
91 (build-system asdf-build-system/sbcl)
92 (native-inputs
93 `(("rt" ,sbcl-rt)))
94 (synopsis "Collection of portable utilities for Common Lisp")
95 (description
96 "Alexandria is a collection of portable utilities. It does not contain
97 conceptual extensions to Common Lisp. It is conservative in scope, and
98 portable between implementations.")
99 (home-page "https://common-lisp.net/project/alexandria/")
100 (license license:public-domain))))
101
102 (define-public cl-alexandria
103 (sbcl-package->cl-source-package sbcl-alexandria))
104
105 (define-public ecl-alexandria
106 (sbcl-package->ecl-package sbcl-alexandria))
107
108 (define-public sbcl-net.didierverna.asdf-flv
109 (package
110 (name "sbcl-net.didierverna.asdf-flv")
111 (version "2.1")
112 (source
113 (origin
114 (method git-fetch)
115 (uri (git-reference
116 (url "https://github.com/didierverna/asdf-flv")
117 (commit (string-append "version-" version))))
118 (file-name (git-file-name "asdf-flv" version))
119 (sha256
120 (base32 "1fi2y4baxan103jbg4idjddzihy03kwnj2mzbwrknw4d4x7xlgwj"))))
121 (build-system asdf-build-system/sbcl)
122 (synopsis "Common Lisp ASDF extension to provide support for file-local variables")
123 (description "ASDF-FLV provides support for file-local variables through
124 ASDF. A file-local variable behaves like @code{*PACKAGE*} and
125 @code{*READTABLE*} with respect to @code{LOAD} and @code{COMPILE-FILE}: a new
126 dynamic binding is created before processing the file, so that any
127 modification to the variable becomes essentially file-local.
128
129 In order to make one or several variables file-local, use the macros
130 @code{SET-FILE-LOCAL-VARIABLE(S)}.")
131 (home-page "https://www.lrde.epita.fr/~didier/software/lisp/misc.php#asdf-flv")
132 (license (license:non-copyleft
133 "https://www.gnu.org/prep/maintain/html_node/License-Notices-for-Other-Files.html"
134 "GNU All-Permissive License"))))
135
136 (define-public cl-net.didierverna.asdf-flv
137 (sbcl-package->cl-source-package sbcl-net.didierverna.asdf-flv))
138
139 (define-public ecl-net.didierverna.asdf-flv
140 (sbcl-package->ecl-package sbcl-net.didierverna.asdf-flv))
141
142 (define-public sbcl-fiveam
143 (package
144 (name "sbcl-fiveam")
145 (version "1.4.1")
146 (source
147 (origin
148 (method git-fetch)
149 (uri (git-reference
150 (url "https://github.com/sionescu/fiveam.git")
151 (commit (string-append "v" version))))
152 (file-name (git-file-name "fiveam" version))
153 (sha256
154 (base32 "1q3d38pwafnwnw42clq0f8g5xw7pbzr287jl9jsqmb1vb0n1vrli"))))
155 (inputs
156 `(("alexandria" ,sbcl-alexandria)
157 ("net.didierverna.asdf-flv" ,sbcl-net.didierverna.asdf-flv)
158 ("trivial-backtrace" ,sbcl-trivial-backtrace)))
159 (build-system asdf-build-system/sbcl)
160 (synopsis "Common Lisp testing framework")
161 (description "FiveAM is a simple (as far as writing and running tests
162 goes) regression testing framework. It has been designed with Common Lisp's
163 interactive development model in mind.")
164 (home-page "https://common-lisp.net/project/fiveam/")
165 (license license:bsd-3)))
166
167 (define-public cl-fiveam
168 (sbcl-package->cl-source-package sbcl-fiveam))
169
170 (define-public ecl-fiveam
171 (sbcl-package->ecl-package sbcl-fiveam))
172
173 (define-public sbcl-bordeaux-threads
174 (package
175 (name "sbcl-bordeaux-threads")
176 (version "0.8.7")
177 (source (origin
178 (method git-fetch)
179 (uri (git-reference
180 (url "https://github.com/sionescu/bordeaux-threads.git")
181 (commit (string-append "v" version))))
182 (sha256
183 (base32 "1whpfmyxp2fsw6viqj45fqgsifgr534c575bfh5vaqw5m84b6alp"))
184 (file-name
185 (git-file-name "bordeaux-threads" version))))
186 (inputs `(("alexandria" ,sbcl-alexandria)))
187 (native-inputs `(("fiveam" ,sbcl-fiveam)))
188 (build-system asdf-build-system/sbcl)
189 (synopsis "Portable shared-state concurrency library for Common Lisp")
190 (description "BORDEAUX-THREADS is a proposed standard for a minimal
191 MP/Threading interface. It is similar to the CLIM-SYS threading and lock
192 support.")
193 (home-page "https://common-lisp.net/project/bordeaux-threads/")
194 (license license:x11)))
195
196 (define-public cl-bordeaux-threads
197 (sbcl-package->cl-source-package sbcl-bordeaux-threads))
198
199 (define-public ecl-bordeaux-threads
200 (sbcl-package->ecl-package sbcl-bordeaux-threads))
201
202 (define-public sbcl-trivial-gray-streams
203 (let ((revision "1")
204 (commit "0483ade330508b4b2edeabdb47d16ec9437ee1cb"))
205 (package
206 (name "sbcl-trivial-gray-streams")
207 (version (string-append "0.0.0-" revision "." (string-take commit 7)))
208 (source
209 (origin
210 (method git-fetch)
211 (uri
212 (git-reference
213 (url "https://github.com/trivial-gray-streams/trivial-gray-streams.git")
214 (commit commit)))
215 (sha256
216 (base32 "0m3rpf2x0zmdk3nf1qfa01j6a55vj7gkwhyw78qslcgbjlgh8p4d"))
217 (file-name
218 (string-append "trivial-gray-streams-" version "-checkout"))))
219 (build-system asdf-build-system/sbcl)
220 (synopsis "Compatibility layer for Gray streams implementations")
221 (description "Gray streams is an interface proposed for inclusion with
222 ANSI CL by David N. Gray. The proposal did not make it into ANSI CL, but most
223 popular CL implementations implement it. This package provides an extremely
224 thin compatibility layer for gray streams.")
225 (home-page "https://www.cliki.net/trivial-gray-streams")
226 (license license:x11))))
227
228 (define-public cl-trivial-gray-streams
229 (sbcl-package->cl-source-package sbcl-trivial-gray-streams))
230
231 (define-public ecl-trivial-gray-streams
232 (sbcl-package->ecl-package sbcl-trivial-gray-streams))
233
234 (define-public sbcl-fiasco
235 (let ((commit "d62f7558b21addc89f87e306f65d7f760632655f")
236 (revision "1"))
237 (package
238 (name "sbcl-fiasco")
239 (version (git-version "0.0.1" revision commit))
240 (source
241 (origin
242 (method git-fetch)
243 (uri (git-reference
244 (url "https://github.com/joaotavora/fiasco.git")
245 (commit commit)))
246 (file-name (git-file-name "fiasco" version))
247 (sha256
248 (base32
249 "1zwxs3d6iswayavcmb49z2892xhym7n556d8dnmvalc32pm9bkjh"))))
250 (build-system asdf-build-system/sbcl)
251 (inputs
252 `(("alexandria" ,sbcl-alexandria)
253 ("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
254 (synopsis "Simple and powerful test framework for Common Lisp")
255 (description "A Common Lisp test framework that treasures your failures,
256 logical continuation of Stefil. It focuses on interactive debugging.")
257 (home-page "https://github.com/joaotavora/fiasco")
258 ;; LICENCE specifies this is public-domain unless the legislation
259 ;; doesn't allow or recognize it. In that case it falls back to a
260 ;; permissive licence.
261 (license (list license:public-domain
262 (license:x11-style "file://LICENCE"))))))
263
264 (define-public cl-fiasco
265 (sbcl-package->cl-source-package sbcl-fiasco))
266
267 (define-public ecl-fiasco
268 (sbcl-package->ecl-package sbcl-fiasco))
269
270 (define-public sbcl-flexi-streams
271 (package
272 (name "sbcl-flexi-streams")
273 (version "1.0.18")
274 (source
275 (origin
276 (method git-fetch)
277 (uri (git-reference
278 (url "https://github.com/edicl/flexi-streams.git")
279 (commit (string-append "v" version))))
280 (file-name (git-file-name "flexi-streams" version))
281 (sha256
282 (base32 "0bjv7fd2acknidc5dyi3h85pn10krxv5jyxs1xg8jya2rlfv7f1j"))))
283 (build-system asdf-build-system/sbcl)
284 (arguments
285 `(#:phases
286 (modify-phases %standard-phases
287 (add-after 'unpack 'make-git-checkout-writable
288 (lambda _
289 (for-each make-file-writable (find-files "."))
290 #t)))))
291 (inputs `(("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
292 (synopsis "Implementation of virtual bivalent streams for Common Lisp")
293 (description "Flexi-streams is an implementation of \"virtual\" bivalent
294 streams that can be layered atop real binary or bivalent streams and that can
295 be used to read and write character data in various single- or multi-octet
296 encodings which can be changed on the fly. It also supplies in-memory binary
297 streams which are similar to string streams.")
298 (home-page "http://weitz.de/flexi-streams/")
299 (license license:bsd-3)))
300
301 (define-public cl-flexi-streams
302 (sbcl-package->cl-source-package sbcl-flexi-streams))
303
304 (define-public ecl-flexi-streams
305 (sbcl-package->ecl-package sbcl-flexi-streams))
306
307 (define-public sbcl-cl-ppcre
308 (package
309 (name "sbcl-cl-ppcre")
310 (version "2.1.1")
311 (source
312 (origin
313 (method git-fetch)
314 (uri (git-reference
315 (url "https://github.com/edicl/cl-ppcre.git")
316 (commit (string-append "v" version))))
317 (file-name (git-file-name "cl-ppcre" version))
318 (sha256
319 (base32 "0dwvr29diqzcg5n6jvbk2rnd90i05l7n828hhw99khmqd0kz7xsi"))))
320 (build-system asdf-build-system/sbcl)
321 (native-inputs `(("flexi-streams" ,sbcl-flexi-streams)))
322 (synopsis "Portable regular expression library for Common Lisp")
323 (description "CL-PPCRE is a portable regular expression library for Common
324 Lisp, which is compatible with perl. It is pretty fast, thread-safe, and
325 compatible with ANSI-compliant Common Lisp implementations.")
326 (home-page "http://weitz.de/cl-ppcre/")
327 (license license:bsd-2)))
328
329 (define-public cl-ppcre
330 (sbcl-package->cl-source-package sbcl-cl-ppcre))
331
332 (define-public ecl-cl-ppcre
333 (sbcl-package->ecl-package sbcl-cl-ppcre))
334
335 (define sbcl-cl-unicode-base
336 (package
337 (name "sbcl-cl-unicode-base")
338 (version "0.1.6")
339 (source (origin
340 (method git-fetch)
341 (uri (git-reference
342 (url "https://github.com/edicl/cl-unicode.git")
343 (commit (string-append "v" version))))
344 (file-name (git-file-name name version))
345 (sha256
346 (base32
347 "0ykx2s9lqfl74p1px0ik3l2izd1fc9jd1b4ra68s5x34rvjy0hza"))))
348 (build-system asdf-build-system/sbcl)
349 (arguments
350 '(#:asd-file "cl-unicode.asd"
351 #:asd-system-name "cl-unicode/base"))
352 (inputs
353 `(("cl-ppcre" ,sbcl-cl-ppcre)))
354 (home-page "http://weitz.de/cl-unicode/")
355 (synopsis "Portable Unicode library for Common Lisp")
356 (description "CL-UNICODE is a portable Unicode library Common Lisp, which
357 is compatible with perl. It is pretty fast, thread-safe, and compatible with
358 ANSI-compliant Common Lisp implementations.")
359 (license license:bsd-2)))
360
361 (define-public sbcl-cl-unicode
362 (package
363 (inherit sbcl-cl-unicode-base)
364 (name "sbcl-cl-unicode")
365 (inputs
366 `(("cl-unicode/base" ,sbcl-cl-unicode-base)
367 ,@(package-inputs sbcl-cl-unicode-base)))
368 (native-inputs
369 `(("flexi-streams" ,sbcl-flexi-streams)))
370 (arguments '())))
371
372 (define-public ecl-cl-unicode
373 (sbcl-package->ecl-package sbcl-cl-unicode))
374
375 (define-public cl-unicode
376 (sbcl-package->cl-source-package sbcl-cl-unicode))
377
378 (define-public sbcl-zpb-ttf
379 (package
380 (name "sbcl-zpb-ttf")
381 (version "1.0.3")
382 (source
383 (origin
384 (method git-fetch)
385 (uri (git-reference
386 (url "https://github.com/xach/zpb-ttf.git")
387 (commit (string-append "release-" version))))
388 (file-name (git-file-name name version))
389 (sha256
390 (base32
391 "1wh66vjijzqlydnrihynpwp6796917xwrh0i9li93c17kyxa74ih"))))
392 (build-system asdf-build-system/sbcl)
393 (home-page "https://github.com/xach/zpb-ttf")
394 (synopsis "TrueType font file access for Common Lisp")
395 (description
396 "ZPB-TTF is a TrueType font file parser that provides an interface for
397 reading typographic metrics, glyph outlines, and other information from the
398 file.")
399 (license license:bsd-2)))
400
401 (define-public ecl-zpb-ttf
402 (sbcl-package->ecl-package sbcl-zpb-ttf))
403
404 (define-public cl-zpb-ttf
405 (sbcl-package->cl-source-package sbcl-zpb-ttf))
406
407 (define-public sbcl-cl-aa
408 (package
409 (name "sbcl-cl-aa")
410 (version "0.1.5")
411 (source
412 (origin
413 (method url-fetch)
414 (uri (string-append "http://projects.tuxee.net/cl-vectors/"
415 "files/cl-vectors-" version ".tar.gz"))
416 (sha256
417 (base32
418 "04lhwi0kq8pkwhgd885pk80m1cp9sfvjjn5zj70s1dnckibhdmqh"))))
419 (build-system asdf-build-system/sbcl)
420 (arguments '(#:asd-file "cl-aa.asd"))
421 (home-page "http://projects.tuxee.net/cl-vectors/")
422 (synopsis "Polygon rasterizer")
423 (description
424 "This is a Common Lisp library implementing the AA polygon rasterization
425 algorithm from the @url{http://antigrain.com, Antigrain} project.")
426 (license license:expat)))
427
428 (define-public ecl-cl-aa
429 (sbcl-package->ecl-package sbcl-cl-aa))
430
431 (define-public cl-aa
432 (sbcl-package->cl-source-package sbcl-cl-aa))
433
434 (define-public sbcl-cl-paths
435 (package
436 (inherit sbcl-cl-aa)
437 (name "sbcl-cl-paths")
438 (arguments '(#:asd-file "cl-paths.asd"))
439 (synopsis "Facilities to create and manipulate vectorial paths")
440 (description
441 "This package provides facilities to create and manipulate vectorial
442 paths.")))
443
444 (define-public ecl-cl-paths
445 (sbcl-package->ecl-package sbcl-cl-paths))
446
447 (define-public cl-paths
448 (sbcl-package->cl-source-package sbcl-cl-paths))
449
450 (define-public sbcl-cl-paths-ttf
451 (package
452 (inherit sbcl-cl-aa)
453 (name "sbcl-cl-paths-ttf")
454 (arguments '(#:asd-file "cl-paths-ttf.asd"))
455 (inputs
456 `(("cl-paths" ,sbcl-cl-paths)
457 ("zpb-ttf" ,sbcl-zpb-ttf)))
458 (synopsis "Facilities to create and manipulate vectorial paths")
459 (description
460 "This package provides facilities to create and manipulate vectorial
461 paths.")))
462
463 (define-public ecl-cl-paths-ttf
464 (sbcl-package->ecl-package sbcl-cl-paths-ttf))
465
466 (define-public cl-paths-ttf
467 (sbcl-package->cl-source-package sbcl-cl-paths-ttf))
468
469 (define-public sbcl-cl-vectors
470 (package
471 (inherit sbcl-cl-aa)
472 (name "sbcl-cl-vectors")
473 (arguments '(#:asd-file "cl-vectors.asd"))
474 (inputs
475 `(("cl-aa" ,sbcl-cl-aa)
476 ("cl-paths" ,sbcl-cl-paths)))
477 (synopsis "Create, transform and render anti-aliased vectorial paths")
478 (description
479 "This is a pure Common Lisp library to create, transform and render
480 anti-aliased vectorial paths.")))
481
482 (define-public ecl-cl-vectors
483 (sbcl-package->ecl-package sbcl-cl-vectors))
484
485 (define-public cl-vectors
486 (sbcl-package->cl-source-package sbcl-cl-vectors))
487
488 (define-public sbcl-spatial-trees
489 ;; There have been no releases.
490 (let ((commit "81fdad0a0bf109c80a53cc96eca2e093823400ba")
491 (revision "1"))
492 (package
493 (name "sbcl-spatial-trees")
494 (version (git-version "0" revision commit))
495 (source
496 (origin
497 (method git-fetch)
498 (uri (git-reference
499 (url "https://github.com/rpav/spatial-trees.git")
500 (commit commit)))
501 (file-name (git-file-name name version))
502 (sha256
503 (base32
504 "11rhc6h501dwcik2igkszz7b9n515cr99m5pjh4r2qfwgiri6ysa"))))
505 (build-system asdf-build-system/sbcl)
506 (arguments
507 '(#:tests? #f ; spatial-trees.test requires spatial-trees.nns
508 #:asd-file "spatial-trees.asd"
509 #:test-asd-file "spatial-trees.test.asd"))
510 (native-inputs
511 `(("fiveam" ,sbcl-fiveam)))
512 (home-page "https://github.com/rpav/spatial-trees")
513 (synopsis "Dynamic index data structures for spatially-extended data")
514 (description
515 "Spatial-trees is a set of dynamic index data structures for
516 spatially-extended data.")
517 (license license:bsd-3))))
518
519 (define-public ecl-spatial-trees
520 (sbcl-package->ecl-package sbcl-spatial-trees))
521
522 (define-public cl-spatial-trees
523 (sbcl-package->cl-source-package sbcl-spatial-trees))
524
525 (define-public sbcl-flexichain
526 ;; There are no releases.
527 (let ((commit "13d2a6c505ed0abfcd4c4ec7d7145059b06855d6")
528 (revision "1"))
529 (package
530 (name "sbcl-flexichain")
531 (version "1.5.1")
532 (source
533 (origin
534 (method git-fetch)
535 (uri (git-reference
536 (url "https://github.com/robert-strandh/Flexichain.git")
537 (commit commit)))
538 (file-name (git-file-name name version))
539 (sha256
540 (base32
541 "0pfyvhsfbjd2sjb30grfs52r51a428xglv7bwydvpg2lc117qimg"))))
542 (build-system asdf-build-system/sbcl)
543 (home-page "https://github.com/robert-strandh/Flexichain.git")
544 (synopsis "Dynamically add elements to or remove them from sequences")
545 (description
546 "This package provides an implementation of the flexichain protocol,
547 allowing client code to dynamically add elements to, and delete elements from
548 a sequence (or chain) of such elements.")
549 (license license:lgpl2.1+))))
550
551 (define-public ecl-flexichain
552 (sbcl-package->ecl-package sbcl-flexichain))
553
554 (define-public cl-flexichain
555 (sbcl-package->cl-source-package sbcl-flexichain))
556
557 (define-public sbcl-cl-pdf
558 ;; There are no releases
559 (let ((commit "752e337e6d6fc206f09d091a982e7f8e5c404e4e")
560 (revision "1"))
561 (package
562 (name "sbcl-cl-pdf")
563 (version (git-version "0" revision commit))
564 (source
565 (origin
566 (method git-fetch)
567 (uri (git-reference
568 (url "https://github.com/mbattyani/cl-pdf.git")
569 (commit commit)))
570 (file-name (git-file-name name version))
571 (sha256
572 (base32
573 "1cg3k3m3r11ipb8j008y8ipynj97l3xjlpi2knqc9ndmx4r3kb1r"))))
574 (build-system asdf-build-system/sbcl)
575 (inputs
576 `(("iterate" ,sbcl-iterate)
577 ("zpb-ttf" ,sbcl-zpb-ttf)))
578 (home-page "https://github.com/mbattyani/cl-pdf")
579 (synopsis "Common Lisp library for generating PDF files")
580 (description
581 "CL-PDF is a cross-platform Common Lisp library for generating PDF
582 files.")
583 (license license:bsd-2))))
584
585 (define-public ecl-cl-pdf
586 (sbcl-package->ecl-package sbcl-cl-pdf))
587
588 (define-public cl-pdf
589 (sbcl-package->cl-source-package sbcl-cl-pdf))
590
591 (define-public sbcl-clx
592 (package
593 (name "sbcl-clx")
594 (version "0.7.5")
595 (source
596 (origin
597 (method git-fetch)
598 (uri
599 (git-reference
600 (url "https://github.com/sharplispers/clx.git")
601 (commit version)))
602 (sha256
603 (base32
604 "1vi67z9hpj5rr4xcmfbfwzmlcc0ah7hzhrmfid6lqdkva238v2wf"))
605 (file-name (string-append "clx-" version))))
606 (build-system asdf-build-system/sbcl)
607 (native-inputs
608 `(("fiasco" ,sbcl-fiasco)))
609 (home-page "https://www.cliki.net/portable-clx")
610 (synopsis "X11 client library for Common Lisp")
611 (description "CLX is an X11 client library for Common Lisp. The code was
612 originally taken from a CMUCL distribution, was modified somewhat in order to
613 make it compile and run under SBCL, then a selection of patches were added
614 from other CLXes around the net.")
615 (license license:x11)))
616
617 (define-public cl-clx
618 (sbcl-package->cl-source-package sbcl-clx))
619
620 (define-public ecl-clx
621 (sbcl-package->ecl-package sbcl-clx))
622
623 (define-public sbcl-clx-truetype
624 (let ((commit "c6e10a918d46632324d5863a8ed067a83fc26de8")
625 (revision "1"))
626 (package
627 (name "sbcl-clx-truetype")
628 (version (git-version "0.0.1" revision commit))
629 (source
630 (origin
631 (method git-fetch)
632 (uri (git-reference
633 (url "https://github.com/l04m33/clx-truetype")
634 (commit commit)))
635 (file-name (git-file-name name version))
636 (sha256
637 (base32
638 "079hyp92cjkdfn6bhkxsrwnibiqbz4y4af6nl31lzw6nm91j5j37"))
639 (modules '((guix build utils)))
640 (snippet
641 '(begin
642 (substitute* "package.lisp"
643 ((":export") ":export\n :+font-cache-filename+"))
644 #t))))
645 (build-system asdf-build-system/sbcl)
646 (inputs
647 `(("clx" ,sbcl-clx)
648 ("zpb-ttf" ,sbcl-zpb-ttf)
649 ("cl-vectors" ,sbcl-cl-vectors)
650 ("cl-paths-ttf" ,sbcl-cl-paths-ttf)
651 ("cl-fad" ,sbcl-cl-fad)
652 ("cl-store" ,sbcl-cl-store)
653 ("trivial-features" ,sbcl-trivial-features)))
654 (home-page "https://github.com/l04m33/clx-truetype")
655 (synopsis "Antialiased TrueType font rendering using CLX and XRender")
656 (description "CLX-TrueType is pure common lisp solution for
657 antialiased TrueType font rendering using CLX and XRender extension.")
658 (license license:expat))))
659
660 (define-public sbcl-cl-ppcre-unicode
661 (package (inherit sbcl-cl-ppcre)
662 (name "sbcl-cl-ppcre-unicode")
663 (arguments
664 `(#:tests? #f ; tests fail with "Component :CL-PPCRE-TEST not found"
665 #:asd-file "cl-ppcre-unicode.asd"))
666 (inputs
667 `(("sbcl-cl-ppcre" ,sbcl-cl-ppcre)
668 ("sbcl-cl-unicode" ,sbcl-cl-unicode)))))
669
670 (define-public ecl-cl-ppcre-unicode
671 (sbcl-package->ecl-package sbcl-cl-ppcre-unicode))
672
673 ;; The slynk that users expect to install includes all of slynk's contrib
674 ;; modules. Therefore, we build the base module and all contribs first; then
675 ;; we expose the union of these as `sbcl-slynk'. The following variable
676 ;; describes the base module.
677 (define sbcl-slynk-boot0
678 (let ((revision "2")
679 (commit "cbf84c36c4eca8b032e3fd16177a7bc02df3ec4c"))
680 (package
681 (name "sbcl-slynk-boot0")
682 (version (string-append "1.0.0-beta-" revision "." (string-take commit 7)))
683 (source
684 (origin
685 (method git-fetch)
686 (uri
687 (git-reference
688 (url "https://github.com/joaotavora/sly.git")
689 (commit commit)))
690 (sha256
691 (base32 "13dyhsravn591p7g6is01mp2ynzjnnj7pwgi57r6xqmd4611y9vh"))
692 (file-name (string-append "slynk-" version "-checkout"))
693 (modules '((guix build utils)
694 (ice-9 ftw)))
695 (snippet
696 '(begin
697 ;; Move the contribs into the main source directory for easier
698 ;; access
699 (substitute* "slynk/slynk.asd"
700 (("\\.\\./contrib")
701 "contrib")
702 (("\\(defsystem :slynk/util")
703 "(defsystem :slynk/util :depends-on (:slynk)")
704 ((":depends-on \\(:slynk :slynk/util\\)")
705 ":depends-on (:slynk :slynk-util)"))
706 (substitute* "contrib/slynk-trace-dialog.lisp"
707 (("\\(slynk::reset-inspector\\)") ; Causes problems on load
708 "nil"))
709 (substitute* "contrib/slynk-profiler.lisp"
710 (("slynk:to-line")
711 "slynk-pprint-to-line"))
712 (substitute* "contrib/slynk-fancy-inspector.lisp"
713 (("slynk/util") "slynk-util")
714 ((":compile-toplevel :load-toplevel") ""))
715 (rename-file "contrib" "slynk/contrib")
716 ;; Move slynk's contents into the base directory for easier
717 ;; access
718 (for-each (lambda (file)
719 (unless (string-prefix? "." file)
720 (rename-file (string-append "slynk/" file)
721 (string-append "./" (basename file)))))
722 (scandir "slynk"))
723 #t))))
724 (build-system asdf-build-system/sbcl)
725 (arguments
726 `(#:tests? #f ; No test suite
727 #:asd-system-name "slynk"))
728 (synopsis "Common Lisp IDE for Emacs")
729 (description "SLY is a fork of SLIME, an IDE backend for Common Lisp.
730 It also features a completely redesigned REPL based on Emacs's own
731 full-featured comint.el, live code annotations, and a consistent interactive
732 button interface. Everything can be copied to the REPL. One can create
733 multiple inspectors with independent history.")
734 (home-page "https://github.com/joaotavora/sly")
735 (license license:public-domain)
736 (properties `((cl-source-variant . ,(delay cl-slynk)))))))
737
738 (define-public cl-slynk
739 (package
740 (inherit (sbcl-package->cl-source-package sbcl-slynk-boot0))
741 (name "cl-slynk")))
742
743 (define ecl-slynk-boot0
744 (sbcl-package->ecl-package sbcl-slynk-boot0))
745
746 (define sbcl-slynk-arglists
747 (package
748 (inherit sbcl-slynk-boot0)
749 (name "sbcl-slynk-arglists")
750 (inputs `(("slynk" ,sbcl-slynk-boot0)))
751 (arguments
752 (substitute-keyword-arguments (package-arguments sbcl-slynk-boot0)
753 ((#:asd-file _ "") "slynk.asd")
754 ((#:asd-system-name _ #f) "slynk/arglists")))))
755
756 (define ecl-slynk-arglists
757 (sbcl-package->ecl-package sbcl-slynk-arglists))
758
759 (define sbcl-slynk-util
760 (package
761 (inherit sbcl-slynk-boot0)
762 (name "sbcl-slynk-util")
763 (inputs `(("slynk" ,sbcl-slynk-boot0)))
764 (arguments
765 (substitute-keyword-arguments (package-arguments sbcl-slynk-boot0)
766 ((#:asd-file _ "") "slynk.asd")
767 ((#:asd-system-name _ #f) "slynk/util")))))
768
769 (define ecl-slynk-util
770 (sbcl-package->ecl-package sbcl-slynk-util))
771
772 (define sbcl-slynk-fancy-inspector
773 (package
774 (inherit sbcl-slynk-arglists)
775 (name "sbcl-slynk-fancy-inspector")
776 (inputs `(("slynk-util" ,sbcl-slynk-util)
777 ,@(package-inputs sbcl-slynk-arglists)))
778 (arguments
779 (substitute-keyword-arguments (package-arguments sbcl-slynk-arglists)
780 ((#:asd-system-name _ #f) "slynk/fancy-inspector")))))
781
782 (define ecl-slynk-fancy-inspector
783 (sbcl-package->ecl-package sbcl-slynk-fancy-inspector))
784
785 (define sbcl-slynk-package-fu
786 (package
787 (inherit sbcl-slynk-arglists)
788 (name "sbcl-slynk-package-fu")
789 (arguments
790 (substitute-keyword-arguments (package-arguments sbcl-slynk-arglists)
791 ((#:asd-system-name _ #f) "slynk/package-fu")))))
792
793 (define ecl-slynk-package-fu
794 (sbcl-package->ecl-package sbcl-slynk-package-fu))
795
796 (define sbcl-slynk-mrepl
797 (package
798 (inherit sbcl-slynk-fancy-inspector)
799 (name "sbcl-slynk-mrepl")
800 (arguments
801 (substitute-keyword-arguments (package-arguments sbcl-slynk-arglists)
802 ((#:asd-system-name _ #f) "slynk/mrepl")))))
803
804 (define ecl-slynk-mrepl
805 (sbcl-package->ecl-package sbcl-slynk-mrepl))
806
807 (define sbcl-slynk-trace-dialog
808 (package
809 (inherit sbcl-slynk-arglists)
810 (name "sbcl-slynk-trace-dialog")
811 (arguments
812 (substitute-keyword-arguments (package-arguments sbcl-slynk-arglists)
813 ((#:asd-system-name _ #f) "slynk/trace-dialog")))))
814
815 (define ecl-slynk-trace-dialog
816 (sbcl-package->ecl-package sbcl-slynk-trace-dialog))
817
818 (define sbcl-slynk-profiler
819 (package
820 (inherit sbcl-slynk-arglists)
821 (name "sbcl-slynk-profiler")
822 (arguments
823 (substitute-keyword-arguments (package-arguments sbcl-slynk-arglists)
824 ((#:asd-system-name _ #f) "slynk/profiler")))))
825
826 (define ecl-slynk-profiler
827 (sbcl-package->ecl-package sbcl-slynk-profiler))
828
829 (define sbcl-slynk-stickers
830 (package
831 (inherit sbcl-slynk-arglists)
832 (name "sbcl-slynk-stickers")
833 (arguments
834 (substitute-keyword-arguments (package-arguments sbcl-slynk-arglists)
835 ((#:asd-system-name _ #f) "slynk/stickers")))))
836
837 (define ecl-slynk-stickers
838 (sbcl-package->ecl-package sbcl-slynk-stickers))
839
840 (define sbcl-slynk-indentation
841 (package
842 (inherit sbcl-slynk-arglists)
843 (name "sbcl-slynk-indentation")
844 (arguments
845 (substitute-keyword-arguments (package-arguments sbcl-slynk-arglists)
846 ((#:asd-system-name _ #f) "slynk/indentation")))))
847
848 (define ecl-slynk-indentation
849 (sbcl-package->ecl-package sbcl-slynk-indentation))
850
851 (define sbcl-slynk-retro
852 (package
853 (inherit sbcl-slynk-arglists)
854 (name "sbcl-slynk-retro")
855 (arguments
856 (substitute-keyword-arguments (package-arguments sbcl-slynk-arglists)
857 ((#:asd-system-name _ #f) "slynk/retro")))))
858
859 (define ecl-slynk-retro
860 (sbcl-package->ecl-package sbcl-slynk-retro))
861
862 (define slynk-systems
863 '("slynk"
864 "slynk-util"
865 "slynk-arglists"
866 "slynk-fancy-inspector"
867 "slynk-package-fu"
868 "slynk-mrepl"
869 "slynk-profiler"
870 "slynk-trace-dialog"
871 "slynk-stickers"
872 "slynk-indentation"
873 "slynk-retro"))
874
875 (define-public sbcl-slynk
876 (package
877 (inherit sbcl-slynk-boot0)
878 (name "sbcl-slynk")
879 (inputs
880 `(("slynk" ,sbcl-slynk-boot0)
881 ("slynk-util" ,sbcl-slynk-util)
882 ("slynk-arglists" ,sbcl-slynk-arglists)
883 ("slynk-fancy-inspector" ,sbcl-slynk-fancy-inspector)
884 ("slynk-package-fu" ,sbcl-slynk-package-fu)
885 ("slynk-mrepl" ,sbcl-slynk-mrepl)
886 ("slynk-profiler" ,sbcl-slynk-profiler)
887 ("slynk-trace-dialog" ,sbcl-slynk-trace-dialog)
888 ("slynk-stickers" ,sbcl-slynk-stickers)
889 ("slynk-indentation" ,sbcl-slynk-indentation)
890 ("slynk-retro" ,sbcl-slynk-retro)))
891 (native-inputs `(("sbcl" ,sbcl)))
892 (build-system trivial-build-system)
893 (source #f)
894 (outputs '("out" "image"))
895 (arguments
896 `(#:modules ((guix build union)
897 (guix build utils)
898 (guix build lisp-utils))
899 #:builder
900 (begin
901 (use-modules (ice-9 match)
902 (srfi srfi-1)
903 (guix build union)
904 (guix build lisp-utils))
905
906 (union-build
907 (assoc-ref %outputs "out")
908 (filter-map
909 (match-lambda
910 ((name . path)
911 (if (string-prefix? "slynk" name) path #f)))
912 %build-inputs))
913
914 (prepend-to-source-registry
915 (string-append (assoc-ref %outputs "out") "//"))
916
917 (parameterize ((%lisp-type "sbcl")
918 (%lisp (string-append (assoc-ref %build-inputs "sbcl")
919 "/bin/sbcl")))
920 (build-image (string-append
921 (assoc-ref %outputs "image")
922 "/bin/slynk")
923 %outputs
924 #:dependencies ',slynk-systems))
925 #t)))))
926
927 (define-public ecl-slynk
928 (package
929 (inherit sbcl-slynk)
930 (name "ecl-slynk")
931 (inputs
932 (map (match-lambda
933 ((name pkg . _)
934 (list name (sbcl-package->ecl-package pkg))))
935 (package-inputs sbcl-slynk)))
936 (native-inputs '())
937 (outputs '("out"))
938 (arguments
939 '(#:modules ((guix build union))
940 #:builder
941 (begin
942 (use-modules (ice-9 match)
943 (guix build union))
944 (match %build-inputs
945 (((names . paths) ...)
946 (union-build (assoc-ref %outputs "out")
947 paths)
948 #t)))))))
949
950 (define-public sbcl-parse-js
951 (let ((commit "fbadc6029bec7039602abfc06c73bb52970998f6")
952 (revision "1"))
953 (package
954 (name "sbcl-parse-js")
955 (version (string-append "0.0.0-" revision "." (string-take commit 9)))
956 (source
957 (origin
958 (method git-fetch)
959 (uri (git-reference
960 (url "http://marijn.haverbeke.nl/git/parse-js")
961 (commit commit)))
962 (file-name (string-append name "-" commit "-checkout"))
963 (sha256
964 (base32
965 "1wddrnr5kiya5s3gp4cdq6crbfy9fqcz7fr44p81502sj3bvdv39"))))
966 (build-system asdf-build-system/sbcl)
967 (home-page "https://marijnhaverbeke.nl/parse-js/")
968 (synopsis "Parse JavaScript")
969 (description "Parse-js is a Common Lisp package for parsing
970 JavaScript (ECMAScript 3). It has basic support for ECMAScript 5.")
971 (license license:zlib))))
972
973 (define-public cl-parse-js
974 (sbcl-package->cl-source-package sbcl-parse-js))
975
976 (define-public sbcl-parse-number
977 (package
978 (name "sbcl-parse-number")
979 (version "1.7")
980 (source
981 (origin
982 (method git-fetch)
983 (uri (git-reference
984 (url "https://github.com/sharplispers/parse-number/")
985 (commit (string-append "v" version))))
986 (file-name (git-file-name name version))
987 (sha256
988 (base32
989 "0sk06ib1bhqv9y39vwnnw44vmbc4b0kvqm37xxmkxd4dwchq82d7"))))
990 (build-system asdf-build-system/sbcl)
991 (home-page "https://www.cliki.net/PARSE-NUMBER")
992 (synopsis "Parse numbers")
993 (description "@code{parse-number} is a library of functions for parsing
994 strings into one of the standard Common Lisp number types without using the
995 reader. @code{parse-number} accepts an arbitrary string and attempts to parse
996 the string into one of the standard Common Lisp number types, if possible, or
997 else @code{parse-number} signals an error of type @code{invalid-number}.")
998 (license license:bsd-3)))
999
1000 (define-public cl-parse-number
1001 (sbcl-package->cl-source-package sbcl-parse-number))
1002
1003 (define-public sbcl-iterate
1004 (package
1005 (name "sbcl-iterate")
1006 (version "1.5")
1007 (source
1008 (origin
1009 (method url-fetch)
1010 (uri (string-append "https://common-lisp.net/project/iterate/releases/"
1011 "iterate-" version ".tar.gz"))
1012 (sha256
1013 (base32
1014 "1lqsbhrkfl0yif46aymvb7l3nb9wdcmj4jyw485blj32jb4famzn"))))
1015 (build-system asdf-build-system/sbcl)
1016 (native-inputs
1017 `(("rt" ,sbcl-rt)))
1018 (home-page "https://common-lisp.net/project/iterate/")
1019 (synopsis "Iteration construct for Common Lisp")
1020 (description "@code{iterate} is an iteration construct for Common Lisp.
1021 It is similar to the @code{CL:LOOP} macro, with these distinguishing marks:
1022
1023 @itemize
1024 @item it is extensible,
1025 @item it helps editors like Emacs indent iterate forms by having a more
1026 lisp-like syntax, and
1027 @item it isn't part of the ANSI standard for Common Lisp.
1028 @end itemize\n")
1029 (license license:expat)))
1030
1031 (define-public cl-iterate
1032 (sbcl-package->cl-source-package sbcl-iterate))
1033
1034 (define-public ecl-iterate
1035 (sbcl-package->ecl-package sbcl-iterate))
1036
1037 (define-public sbcl-cl-uglify-js
1038 ;; There have been many bug fixes since the 2010 release.
1039 (let ((commit "429c5e1d844e2f96b44db8fccc92d6e8e28afdd5")
1040 (revision "1"))
1041 (package
1042 (name "sbcl-cl-uglify-js")
1043 (version (string-append "0.1-" revision "." (string-take commit 9)))
1044 (source
1045 (origin
1046 (method git-fetch)
1047 (uri (git-reference
1048 (url "https://github.com/mishoo/cl-uglify-js.git")
1049 (commit commit)))
1050 (file-name (git-file-name name version))
1051 (sha256
1052 (base32
1053 "0k39y3c93jgxpr7gwz7w0d8yknn1fdnxrjhd03057lvk5w8js27a"))))
1054 (build-system asdf-build-system/sbcl)
1055 (inputs
1056 `(("sbcl-parse-js" ,sbcl-parse-js)
1057 ("sbcl-cl-ppcre" ,sbcl-cl-ppcre)
1058 ("sbcl-cl-ppcre-unicode" ,sbcl-cl-ppcre-unicode)
1059 ("sbcl-parse-number" ,sbcl-parse-number)
1060 ("sbcl-iterate" ,sbcl-iterate)))
1061 (home-page "https://github.com/mishoo/cl-uglify-js")
1062 (synopsis "JavaScript compressor library for Common Lisp")
1063 (description "This is a Common Lisp version of UglifyJS, a JavaScript
1064 compressor. It works on data produced by @code{parse-js} to generate a
1065 @dfn{minified} version of the code. Currently it can:
1066
1067 @itemize
1068 @item reduce variable names (usually to single letters)
1069 @item join consecutive @code{var} statements
1070 @item resolve simple binary expressions
1071 @item group most consecutive statements using the @code{sequence} operator (comma)
1072 @item remove unnecessary blocks
1073 @item convert @code{IF} expressions in various ways that result in smaller code
1074 @item remove some unreachable code
1075 @end itemize\n")
1076 (license license:zlib))))
1077
1078 (define-public cl-uglify-js
1079 (sbcl-package->cl-source-package sbcl-cl-uglify-js))
1080
1081 (define-public uglify-js
1082 (package
1083 (inherit sbcl-cl-uglify-js)
1084 (name "uglify-js")
1085 (build-system trivial-build-system)
1086 (arguments
1087 `(#:modules ((guix build utils))
1088 #:builder
1089 (let* ((bin (string-append (assoc-ref %outputs "out") "/bin/"))
1090 (script (string-append bin "uglify-js")))
1091 (use-modules (guix build utils))
1092 (mkdir-p bin)
1093 (with-output-to-file script
1094 (lambda _
1095 (format #t "#!~a/bin/sbcl --script
1096 (require :asdf)
1097 (push (truename \"~a/lib/sbcl\") asdf:*central-registry*)"
1098 (assoc-ref %build-inputs "sbcl")
1099 (assoc-ref %build-inputs "sbcl-cl-uglify-js"))
1100 ;; FIXME: cannot use progn here because otherwise it fails to
1101 ;; find cl-uglify-js.
1102 (for-each
1103 write
1104 '(;; Quiet, please!
1105 (let ((*standard-output* (make-broadcast-stream))
1106 (*error-output* (make-broadcast-stream)))
1107 (asdf:load-system :cl-uglify-js))
1108 (let ((file (cadr *posix-argv*)))
1109 (if file
1110 (format t "~a"
1111 (cl-uglify-js:ast-gen-code
1112 (cl-uglify-js:ast-mangle
1113 (cl-uglify-js:ast-squeeze
1114 (with-open-file (in file)
1115 (parse-js:parse-js in))))
1116 :beautify nil))
1117 (progn
1118 (format *error-output*
1119 "Please provide a JavaScript file.~%")
1120 (sb-ext:exit :code 1))))))))
1121 (chmod script #o755)
1122 #t)))
1123 (inputs
1124 `(("sbcl" ,sbcl)
1125 ("sbcl-cl-uglify-js" ,sbcl-cl-uglify-js)))
1126 (synopsis "JavaScript compressor")))
1127
1128 (define-public sbcl-cl-strings
1129 (let ((revision "1")
1130 (commit "c5c5cbafbf3e6181d03c354d66e41a4f063f00ae"))
1131 (package
1132 (name "sbcl-cl-strings")
1133 (version (git-version "0.0.0" revision commit))
1134 (source
1135 (origin
1136 (method git-fetch)
1137 (uri (git-reference
1138 (url "https://github.com/diogoalexandrefranco/cl-strings")
1139 (commit commit)))
1140 (sha256
1141 (base32
1142 "00754mfaqallj480lwd346nkfb6ra8pa8xcxcylf4baqn604zlmv"))
1143 (file-name (string-append "cl-strings-" version "-checkout"))))
1144 (build-system asdf-build-system/sbcl)
1145 (synopsis "Portable, dependency-free set of utilities to manipulate strings in Common Lisp")
1146 (description
1147 "@command{cl-strings} is a small, portable, dependency-free set of
1148 utilities that make it even easier to manipulate text in Common Lisp. It has
1149 100% test coverage and works at least on sbcl, ecl, ccl, abcl and clisp.")
1150 (home-page "https://github.com/diogoalexandrefranco/cl-strings")
1151 (license license:expat))))
1152
1153 (define-public cl-strings
1154 (sbcl-package->cl-source-package sbcl-cl-strings))
1155
1156 (define-public ecl-cl-strings
1157 (sbcl-package->ecl-package sbcl-cl-strings))
1158
1159 (define-public sbcl-trivial-features
1160 (package
1161 (name "sbcl-trivial-features")
1162 (version "0.8")
1163 (source
1164 (origin
1165 (method git-fetch)
1166 (uri (git-reference
1167 (url "https://github.com/trivial-features/trivial-features.git")
1168 (commit (string-append "v" version))))
1169 (file-name (git-file-name "trivial-features" version))
1170 (sha256
1171 (base32 "0ccv7dqyrk55xga78i5vzlic7mdwp28in3g1a8fqhlk6626scsq9"))))
1172 (build-system asdf-build-system/sbcl)
1173 (arguments '(#:tests? #f))
1174 (home-page "https://cliki.net/trivial-features")
1175 (synopsis "Ensures consistency of @code{*FEATURES*} in Common Lisp")
1176 (description "Trivial-features ensures that @code{*FEATURES*} is
1177 consistent across multiple Common Lisp implementations.")
1178 (license license:expat)))
1179
1180 (define-public cl-trivial-features
1181 (sbcl-package->cl-source-package sbcl-trivial-features))
1182
1183 (define-public ecl-trivial-features
1184 (sbcl-package->ecl-package sbcl-trivial-features))
1185
1186 (define-public sbcl-hu.dwim.asdf
1187 (package
1188 (name "sbcl-hu.dwim.asdf")
1189 (version "20190521")
1190 (source
1191 (origin
1192 (method url-fetch)
1193 (uri (string-append "http://beta.quicklisp.org/archive/hu.dwim.asdf/"
1194 "2019-05-21/hu.dwim.asdf-" version "-darcs.tgz"))
1195 (sha256
1196 (base32
1197 "0rsbv71vyszy8w35yjwb5h6zcmknjq223hkzir79y72qdsc6sabn"))))
1198 (build-system asdf-build-system/sbcl)
1199 (home-page "https://hub.darcs.net/hu.dwim/hu.dwim.asdf")
1200 (synopsis "Extensions to ASDF")
1201 (description "Various ASDF extensions such as attached test and
1202 documentation system, explicit development support, etc.")
1203 (license license:public-domain)))
1204
1205 (define-public cl-hu.dwim.asdf
1206 (sbcl-package->cl-source-package sbcl-hu.dwim.asdf))
1207
1208 (define-public ecl-hu.dwim.asdf
1209 (sbcl-package->ecl-package sbcl-hu.dwim.asdf))
1210
1211 (define-public sbcl-hu.dwim.stefil
1212 (let ((commit "ab6d1aa8995878a1b66d745dfd0ba021090bbcf9"))
1213 (package
1214 (name "sbcl-hu.dwim.stefil")
1215 (version (git-version "0.0.0" "1" commit))
1216 (source
1217 (origin
1218 (method git-fetch)
1219 (uri
1220 (git-reference
1221 (url "https://gitlab.common-lisp.net/xcvb/hu.dwim.stefil.git")
1222 (commit commit)))
1223 (sha256
1224 (base32 "1d8yccw65zj3zh46cbi3x6nmn1dwdb76s9d0av035077mvyirqqp"))
1225 (file-name (git-file-name "hu.dwim.stefil" version))))
1226 (build-system asdf-build-system/sbcl)
1227 (native-inputs
1228 `(("asdf:cl-hu.dwim.asdf" ,sbcl-hu.dwim.asdf)))
1229 (inputs
1230 `(("sbcl-alexandria" ,sbcl-alexandria)))
1231 (home-page "https://hub.darcs.net/hu.dwim/hu.dwim.stefil")
1232 (synopsis "Simple test framework")
1233 (description "Stefil is a simple test framework for Common Lisp,
1234 with a focus on interactive development.")
1235 (license license:public-domain))))
1236
1237 (define-public cl-hu.dwim.stefil
1238 (sbcl-package->cl-source-package sbcl-hu.dwim.stefil))
1239
1240 (define-public ecl-hu.dwim.stefil
1241 (sbcl-package->ecl-package sbcl-hu.dwim.stefil))
1242
1243 (define-public sbcl-babel
1244 ;; No release since 2014.
1245 (let ((commit "aeed2d1b76358db48e6b70a64399c05678a6b9ea"))
1246 (package
1247 (name "sbcl-babel")
1248 (version (git-version "0.5.0" "1" commit))
1249 (source
1250 (origin
1251 (method git-fetch)
1252 (uri (git-reference
1253 (url "https://github.com/cl-babel/babel.git")
1254 (commit commit)))
1255 (file-name (git-file-name "babel" version))
1256 (sha256
1257 (base32 "0lkvv4xdpv4cv1y2bqillmabx8sdb2y4l6pbinq6mjh33w2brpvb"))))
1258 (build-system asdf-build-system/sbcl)
1259 (native-inputs
1260 `(("tests:cl-hu.dwim.stefil" ,sbcl-hu.dwim.stefil)))
1261 (inputs
1262 `(("sbcl-alexandria" ,sbcl-alexandria)
1263 ("sbcl-trivial-features" ,sbcl-trivial-features)))
1264 (home-page "https://common-lisp.net/project/babel/")
1265 (synopsis "Charset encoding and decoding library")
1266 (description "Babel is a charset encoding and decoding library, not unlike
1267 GNU libiconv, but completely written in Common Lisp.")
1268 (license license:expat))))
1269
1270 (define-public cl-babel
1271 (sbcl-package->cl-source-package sbcl-babel))
1272
1273 (define-public ecl-babel
1274 (sbcl-package->ecl-package sbcl-babel))
1275
1276 (define-public sbcl-cl-yacc
1277 (package
1278 (name "sbcl-cl-yacc")
1279 (version "0.3")
1280 (source
1281 (origin
1282 (method git-fetch)
1283 (uri (git-reference
1284 (url "https://github.com/jech/cl-yacc")
1285 (commit (string-append "cl-yacc-" version))))
1286 (sha256
1287 (base32
1288 "16946pzf8vvadnyfayvj8rbh4zjzw90h0azz2qk1mxrvhh5wklib"))
1289 (file-name (string-append "cl-yacc-" version "-checkout"))))
1290 (build-system asdf-build-system/sbcl)
1291 (arguments
1292 `(#:asd-file "yacc.asd"
1293 #:asd-system-name "yacc"))
1294 (synopsis "LALR(1) parser generator for Common Lisp, similar in spirit to Yacc")
1295 (description
1296 "CL-Yacc is a LALR(1) parser generator for Common Lisp, similar in spirit
1297 to AT&T Yacc, Berkeley Yacc, GNU Bison, Zebu, lalr.cl or lalr.scm.
1298
1299 CL-Yacc uses the algorithm due to Aho and Ullman, which is the one also used
1300 by AT&T Yacc, Berkeley Yacc and Zebu. It does not use the faster algorithm due
1301 to DeRemer and Pennello, which is used by Bison and lalr.scm (not lalr.cl).")
1302 (home-page "https://www.irif.fr/~jch//software/cl-yacc/")
1303 (license license:expat)))
1304
1305 (define-public cl-yacc
1306 (sbcl-package->cl-source-package sbcl-cl-yacc))
1307
1308 (define-public ecl-cl-yacc
1309 (sbcl-package->ecl-package sbcl-cl-yacc))
1310
1311 (define-public sbcl-jpl-util
1312 (let ((commit "0311ed374e19a49d43318064d729fe3abd9a3b62"))
1313 (package
1314 (name "sbcl-jpl-util")
1315 (version "20151005")
1316 (source
1317 (origin
1318 (method git-fetch)
1319 (uri (git-reference
1320 ;; Quicklisp uses this fork.
1321 (url "https://github.com/hawkir/cl-jpl-util")
1322 (commit commit)))
1323 (file-name
1324 (git-file-name "jpl-util" version))
1325 (sha256
1326 (base32
1327 "0nc0rk9n8grkg3045xsw34whmcmddn2sfrxki4268g7kpgz0d2yz"))))
1328 (build-system asdf-build-system/sbcl)
1329 (synopsis "Collection of Common Lisp utility functions and macros")
1330 (description
1331 "@command{cl-jpl-util} is a collection of Common Lisp utility functions
1332 and macros, primarily for software projects written in CL by the author.")
1333 (home-page "https://www.thoughtcrime.us/software/cl-jpl-util/")
1334 (license license:isc))))
1335
1336 (define-public cl-jpl-util
1337 (sbcl-package->cl-source-package sbcl-jpl-util))
1338
1339 (define-public ecl-jpl-util
1340 (sbcl-package->ecl-package sbcl-jpl-util))
1341
1342 (define-public sbcl-jpl-queues
1343 (package
1344 (name "sbcl-jpl-queues")
1345 (version "0.1")
1346 (source
1347 (origin
1348 (method url-fetch)
1349 (uri (string-append
1350 "http://www.thoughtcrime.us/software/jpl-queues/jpl-queues-"
1351 version
1352 ".tar.gz"))
1353 (sha256
1354 (base32
1355 "1wvvv7j117h9a42qaj1g4fh4mji28xqs7s60rn6d11gk9jl76h96"))))
1356 (build-system asdf-build-system/sbcl)
1357 (inputs
1358 `(("jpl-util" ,sbcl-jpl-util)
1359 ("bordeaux-threads" ,sbcl-bordeaux-threads)))
1360 (arguments
1361 ;; Tests seem to be broken.
1362 `(#:tests? #f))
1363 (synopsis "Common Lisp library implementing a few different kinds of queues")
1364 (description
1365 "A Common Lisp library implementing a few different kinds of queues:
1366
1367 @itemize
1368 @item Bounded and unbounded FIFO queues.
1369 @item Lossy bounded FIFO queues that drop elements when full.
1370 @item Unbounded random-order queues that use less memory than unbounded FIFO queues.
1371 @end itemize
1372
1373 Additionally, a synchronization wrapper is provided to make any queue
1374 conforming to the @command{jpl-queues} API thread-safe for lightweight
1375 multithreading applications. (See Calispel for a more sophisticated CL
1376 multithreaded message-passing library with timeouts and alternation among
1377 several blockable channels.)")
1378 (home-page "https://www.thoughtcrime.us/software/jpl-queues/")
1379 (license license:isc)))
1380
1381 (define-public cl-jpl-queues
1382 (sbcl-package->cl-source-package sbcl-jpl-queues))
1383
1384 (define-public ecl-jpl-queues
1385 (sbcl-package->ecl-package sbcl-jpl-queues))
1386
1387 (define-public sbcl-eos
1388 (let ((commit "b0faca83781ead9a588661e37bd47f90362ccd94"))
1389 (package
1390 (name "sbcl-eos")
1391 (version (git-version "0.0.0" "1" commit))
1392 (source
1393 (origin
1394 (method git-fetch)
1395 (uri (git-reference
1396 (url "https://github.com/adlai/Eos")
1397 (commit commit)))
1398 (sha256
1399 (base32
1400 "1bq8cfg087iyxmxi1mwgx5cfgy3b8ydrf81xljcis8qbgb2vszph"))
1401 (file-name (git-file-name "eos" version))))
1402 (build-system asdf-build-system/sbcl)
1403 (synopsis "Unit Testing for Common Lisp")
1404 (description
1405 "Eos was a unit testing library for Common Lisp.
1406 It began as a fork of FiveAM; however, FiveAM development has continued, while
1407 that of Eos has not. Thus, Eos is now deprecated in favor of FiveAM.")
1408 (home-page "https://github.com/adlai/Eos")
1409 (license license:expat))))
1410
1411 (define-public cl-eos
1412 (sbcl-package->cl-source-package sbcl-eos))
1413
1414 (define-public ecl-eos
1415 (sbcl-package->ecl-package sbcl-eos))
1416
1417 (define-public sbcl-esrap
1418 (let ((commit "133be8b05c2aae48696fe5b739eea2fa573fa48d"))
1419 (package
1420 (name "sbcl-esrap")
1421 (version (git-version "0.0.0" "1" commit))
1422 (source
1423 (origin
1424 (method git-fetch)
1425 (uri (git-reference
1426 (url "https://github.com/nikodemus/esrap")
1427 (commit commit)))
1428 (sha256
1429 (base32
1430 "02d5clihsdryhf7pix8c5di2571fdsffh75d40fkzhws90r5mksl"))
1431 (file-name (git-file-name "esrap" version))))
1432 (build-system asdf-build-system/sbcl)
1433 (native-inputs
1434 `(("eos" ,sbcl-eos))) ;For testing only.
1435 (inputs
1436 `(("alexandria" ,sbcl-alexandria)))
1437 (synopsis "Common Lisp packrat parser")
1438 (description
1439 "A packrat parser for Common Lisp.
1440 In addition to regular Packrat / Parsing Grammar / TDPL features ESRAP supports:
1441
1442 @itemize
1443 @item dynamic redefinition of nonterminals
1444 @item inline grammars
1445 @item semantic predicates
1446 @item introspective facilities (describing grammars, tracing, setting breaks)
1447 @end itemize\n")
1448 (home-page "https://nikodemus.github.io/esrap/")
1449 (license license:expat))))
1450
1451 (define-public cl-esrap
1452 (sbcl-package->cl-source-package sbcl-esrap))
1453
1454 (define-public ecl-esrap
1455 (sbcl-package->ecl-package sbcl-esrap))
1456
1457 (define-public sbcl-split-sequence
1458 (package
1459 (name "sbcl-split-sequence")
1460 (version "2.0.0")
1461 (source
1462 (origin
1463 (method git-fetch)
1464 (uri (git-reference
1465 (url "https://github.com/sharplispers/split-sequence")
1466 (commit (string-append "v" version))))
1467 (sha256
1468 (base32
1469 "0jcpnx21hkfwqj5fvp7kc6pn1qcz9hk7g2s5x8h0349x1j2irln0"))
1470 (file-name (git-file-name "split-sequence" version))))
1471 (build-system asdf-build-system/sbcl)
1472 (native-inputs
1473 `(("fiveam" ,sbcl-fiveam)))
1474 (synopsis "Member of the Common Lisp Utilities family of programs")
1475 (description
1476 "Splits sequence into a list of subsequences delimited by objects
1477 satisfying the test.")
1478 (home-page "https://cliki.net/split-sequence")
1479 (license license:expat)))
1480
1481 (define-public cl-split-sequence
1482 (sbcl-package->cl-source-package sbcl-split-sequence))
1483
1484 (define-public ecl-split-sequence
1485 (sbcl-package->ecl-package sbcl-split-sequence))
1486
1487 (define-public sbcl-html-encode
1488 (package
1489 (name "sbcl-html-encode")
1490 (version "1.2")
1491 (source
1492 (origin
1493 (method url-fetch)
1494 (uri (string-append
1495 "http://beta.quicklisp.org/archive/html-encode/2010-10-06/html-encode-"
1496 version ".tgz"))
1497 (sha256
1498 (base32
1499 "06mf8wn95yf5swhmzk4vp0xr4ylfl33dgfknkabbkd8n6jns8gcf"))
1500 (file-name (string-append "colorize" version "-checkout"))))
1501 (build-system asdf-build-system/sbcl)
1502 (synopsis "Common Lisp library for encoding text in various web-savvy encodings")
1503 (description
1504 "A library for encoding text in various web-savvy encodings.")
1505 (home-page "http://quickdocs.org/html-encode/")
1506 (license license:expat)))
1507
1508 (define-public cl-html-encode
1509 (sbcl-package->cl-source-package sbcl-html-encode))
1510
1511 (define-public ecl-html-encode
1512 (sbcl-package->ecl-package sbcl-html-encode))
1513
1514 (define-public sbcl-colorize
1515 (let ((commit "ea676b584e0899cec82f21a9e6871172fe3c0eb5"))
1516 (package
1517 (name "sbcl-colorize")
1518 (version (git-version "0.0.0" "1" commit))
1519 (source
1520 (origin
1521 (method git-fetch)
1522 (uri (git-reference
1523 (url "https://github.com/kingcons/colorize")
1524 (commit commit)))
1525 (sha256
1526 (base32
1527 "1pdg4kiaczmr3ivffhirp7m3lbr1q27rn7dhaay0vwghmi31zcw9"))
1528 (file-name (git-file-name "colorize" version))))
1529 (build-system asdf-build-system/sbcl)
1530 (inputs
1531 `(("alexandria" ,sbcl-alexandria)
1532 ("split-sequence" ,sbcl-split-sequence)
1533 ("html-encode" ,sbcl-html-encode)))
1534 (synopsis "Common Lisp for syntax highlighting")
1535 (description
1536 "@command{colorize} is a Lisp library for syntax highlighting
1537 supporting the following languages: Common Lisp, Emacs Lisp, Scheme, Clojure,
1538 C, C++, Java, Python, Erlang, Haskell, Objective-C, Diff, Webkit.")
1539 (home-page "https://github.com/kingcons/colorize")
1540 ;; TODO: Missing license?
1541 (license license:expat))))
1542
1543 (define-public cl-colorize
1544 (sbcl-package->cl-source-package sbcl-colorize))
1545
1546 (define-public ecl-colorize
1547 (sbcl-package->ecl-package sbcl-colorize))
1548
1549 (define-public sbcl-3bmd
1550 (let ((commit "192ea13435b605a96ef607df51317056914cabbd"))
1551 (package
1552 (name "sbcl-3bmd")
1553 (version (git-version "0.0.0" "1" commit))
1554 (source
1555 (origin
1556 (method git-fetch)
1557 (uri (git-reference
1558 (url "https://github.com/3b/3bmd")
1559 (commit commit)))
1560 (sha256
1561 (base32
1562 "1rgv3gi7wf963ikmmpk132wgn0icddf226gq3bmcnk1fr3v9gf2f"))
1563 (file-name (git-file-name "3bmd" version))))
1564 (build-system asdf-build-system/sbcl)
1565 (arguments
1566 ;; FIXME: We need to specify the name because the build-system thinks
1567 ;; "3" is a version marker.
1568 `(#:asd-system-name "3bmd"))
1569 (inputs
1570 `(("esrap" ,sbcl-esrap)
1571 ("split-sequence" ,sbcl-split-sequence)))
1572 (synopsis "Markdown processor in Command Lisp using esrap parser")
1573 (description
1574 "Common Lisp Markdown -> HTML converter, using @command{esrap} for
1575 parsing, and grammar based on @command{peg-markdown}.")
1576 (home-page "https://github.com/3b/3bmd")
1577 (license license:expat))))
1578
1579 (define-public cl-3bmd
1580 (sbcl-package->cl-source-package sbcl-3bmd))
1581
1582 (define-public ecl-3bmd
1583 (sbcl-package->ecl-package sbcl-3bmd))
1584
1585 (define-public sbcl-3bmd-ext-code-blocks
1586 (let ((commit "192ea13435b605a96ef607df51317056914cabbd"))
1587 (package
1588 (inherit sbcl-3bmd)
1589 (name "sbcl-3bmd-ext-code-blocks")
1590 (arguments
1591 `(#:asd-system-name "3bmd-ext-code-blocks"
1592 #:asd-file "3bmd-ext-code-blocks.asd"))
1593 (inputs
1594 `(("3bmd" ,sbcl-3bmd)
1595 ("colorize" ,sbcl-colorize)))
1596 (synopsis "3bmd extension which adds support for GitHub-style fenced
1597 code blocks")
1598 (description
1599 "3bmd extension which adds support for GitHub-style fenced code blocks,
1600 with @command{colorize} support."))))
1601
1602 (define-public cl-3bmd-ext-code-blocks
1603 (sbcl-package->cl-source-package sbcl-3bmd-ext-code-blocks))
1604
1605 (define-public ecl-3bmd-ext-code-blocks
1606 (sbcl-package->ecl-package sbcl-3bmd-ext-code-blocks))
1607
1608 (define-public sbcl-cl-fad
1609 (package
1610 (name "sbcl-cl-fad")
1611 (version "0.7.6")
1612 (source
1613 (origin
1614 (method git-fetch)
1615 (uri (git-reference
1616 (url "https://github.com/edicl/cl-fad/")
1617 (commit (string-append "v" version))))
1618 (sha256
1619 (base32
1620 "1gc8i82v6gks7g0lnm54r4prk2mklidv2flm5fvbr0a7rsys0vpa"))
1621 (file-name (string-append "cl-fad" version "-checkout"))))
1622 (build-system asdf-build-system/sbcl)
1623 (inputs
1624 `(("bordeaux-threads" ,sbcl-bordeaux-threads)))
1625 (synopsis "Portable pathname library for Common Lisp")
1626 (description
1627 "CL-FAD (for \"Files and Directories\") is a thin layer atop Common
1628 Lisp's standard pathname functions. It is intended to provide some
1629 unification between current CL implementations on Windows, OS X, Linux, and
1630 Unix. Most of the code was written by Peter Seibel for his book Practical
1631 Common Lisp.")
1632 (home-page "https://edicl.github.io/cl-fad/")
1633 (license license:bsd-2)))
1634
1635 (define-public cl-fad
1636 (sbcl-package->cl-source-package sbcl-cl-fad))
1637
1638 (define-public ecl-cl-fad
1639 (sbcl-package->ecl-package sbcl-cl-fad))
1640
1641 (define-public sbcl-rt
1642 (let ((commit "a6a7503a0b47953bc7579c90f02a6dba1f6e4c5a")
1643 (revision "1"))
1644 (package
1645 (name "sbcl-rt")
1646 (version (git-version "1990.12.19" revision commit))
1647 (source
1648 (origin
1649 (method git-fetch)
1650 (uri (git-reference
1651 (url "http://git.kpe.io/rt.git")
1652 (commit commit)))
1653 (file-name (git-file-name name version))
1654 (sha256
1655 (base32 "13si2rrxaagbr0bkvg6sqicxxpyshabx6ad6byc9n2ik5ysna69b"))))
1656 (build-system asdf-build-system/sbcl)
1657 (synopsis "MIT Regression Tester")
1658 (description
1659 "RT provides a framework for writing regression test suites.")
1660 (home-page "https://www.cliki.net/rt")
1661 (license license:expat))))
1662
1663 (define-public cl-rt
1664 (sbcl-package->cl-source-package sbcl-rt))
1665
1666 (define-public ecl-rt
1667 (sbcl-package->ecl-package sbcl-rt))
1668
1669 (define-public sbcl-nibbles
1670 (package
1671 (name "sbcl-nibbles")
1672 (version "0.14")
1673 (source
1674 (origin
1675 (method git-fetch)
1676 (uri (git-reference
1677 (url "https://github.com/sharplispers/nibbles/")
1678 (commit (string-append "v" version))))
1679 (sha256
1680 (base32
1681 "1v7qfgpvdr6nz7v63dj69d26dis0kff3rd8xamr1llfdvza2pm8f"))
1682 (file-name (git-file-name "nibbles" version))))
1683 (build-system asdf-build-system/sbcl)
1684 (native-inputs
1685 ;; Tests only.
1686 `(("rt" ,sbcl-rt)))
1687 (synopsis "Common Lisp library for accessing octet-addressed blocks of data")
1688 (description
1689 "When dealing with network protocols and file formats, it's common to
1690 have to read or write 16-, 32-, or 64-bit datatypes in signed or unsigned
1691 flavors. Common Lisp sort of supports this by specifying :element-type for
1692 streams, but that facility is underspecified and there's nothing similar for
1693 read/write from octet vectors. What most people wind up doing is rolling their
1694 own small facility for their particular needs and calling it a day.
1695
1696 This library attempts to be comprehensive and centralize such
1697 facilities. Functions to read 16-, 32-, and 64-bit quantities from octet
1698 vectors in signed or unsigned flavors are provided; these functions are also
1699 SETFable. Since it's sometimes desirable to read/write directly from streams,
1700 functions for doing so are also provided. On some implementations,
1701 reading/writing IEEE singles/doubles (i.e. single-float and double-float) will
1702 also be supported.")
1703 (home-page "https://github.com/sharplispers/nibbles")
1704 (license license:bsd-3)))
1705
1706 (define-public cl-nibbles
1707 (sbcl-package->cl-source-package sbcl-nibbles))
1708
1709 (define-public ecl-nibbles
1710 (sbcl-package->ecl-package sbcl-nibbles))
1711
1712 (define-public sbcl-ironclad
1713 (package
1714 (name "sbcl-ironclad")
1715 (version "0.49")
1716 (source
1717 (origin
1718 (method git-fetch)
1719 (uri (git-reference
1720 (url "https://github.com/sharplispers/ironclad/")
1721 (commit (string-append "v" version))))
1722 (sha256
1723 (base32 "0kbzqg2aasrhjwy3nrzy2ddy809n1j045w4qkyc3r2syqd203d4q"))
1724 (file-name (git-file-name name version))))
1725 (build-system asdf-build-system/sbcl)
1726 (native-inputs
1727 ;; Tests only.
1728 `(("rt" ,sbcl-rt)))
1729 (inputs
1730 `(("bordeaux-threads" ,sbcl-bordeaux-threads)
1731 ("flexi-streams" ,sbcl-flexi-streams)
1732 ("trivial-garbage" ,sbcl-trivial-garbage)))
1733 (synopsis "Cryptographic toolkit written in Common Lisp")
1734 (description
1735 "Ironclad is a cryptography library written entirely in Common Lisp.
1736 It includes support for several popular ciphers, digests, MACs and public key
1737 cryptography algorithms. For several implementations that support Gray
1738 streams, support is included for convenient stream wrappers.")
1739 (home-page "https://github.com/sharplispers/ironclad")
1740 (license license:bsd-3)))
1741
1742 (define-public cl-ironclad
1743 (sbcl-package->cl-source-package sbcl-ironclad))
1744
1745 (define-public ecl-ironclad
1746 (sbcl-package->ecl-package sbcl-ironclad))
1747
1748 (define-public sbcl-named-readtables
1749 (let ((commit "4dfb89fa1af6b305b6492b8af042f5190c11e9fc")
1750 (revision "1"))
1751 (package
1752 (name "sbcl-named-readtables")
1753 (version (string-append "0.9-" revision "." (string-take commit 7)))
1754 (source
1755 (origin
1756 (method git-fetch)
1757 (uri (git-reference
1758 (url "https://github.com/melisgl/named-readtables.git")
1759 (commit commit)))
1760 (sha256
1761 (base32 "083kgh5462iqbb4px6kq8s7sggvpvkm36hx4qi9rnaw53b6ilqkk"))
1762 (file-name (git-file-name "named-readtables" version))))
1763 (build-system asdf-build-system/sbcl)
1764 (arguments
1765 ;; Tests seem to be broken.
1766 `(#:tests? #f))
1767 (home-page "https://github.com/melisgl/named-readtables/")
1768 (synopsis "Library that creates a namespace for named readtables")
1769 (description "Named readtables is a library that creates a namespace for
1770 named readtables, which is akin to package namespacing in Common Lisp.")
1771 (license license:bsd-3))))
1772
1773 (define-public cl-named-readtables
1774 (sbcl-package->cl-source-package sbcl-named-readtables))
1775
1776 (define-public ecl-named-readtables
1777 (sbcl-package->ecl-package sbcl-named-readtables))
1778
1779 (define-public sbcl-pythonic-string-reader
1780 (let ((commit "47a70ba1e32362e03dad6ef8e6f36180b560f86a"))
1781 (package
1782 (name "sbcl-pythonic-string-reader")
1783 (version (git-version "0.0.0" "1" commit))
1784 (source
1785 (origin
1786 (method git-fetch)
1787 (uri (git-reference
1788 (url "https://github.com/smithzvk/pythonic-string-reader/")
1789 (commit commit)))
1790 (sha256
1791 (base32 "1b5iryqw8xsh36swckmz8rrngmc39k92si33fgy5pml3n9l5rq3j"))
1792 (file-name (git-file-name "pythonic-string-reader" version))))
1793 (build-system asdf-build-system/sbcl)
1794 (inputs
1795 `(("named-readtables" ,sbcl-named-readtables)))
1796 (home-page "https://github.com/smithzvk/pythonic-string-reader")
1797 (synopsis "Read table modification inspired by Python's three quote strings")
1798 (description "This piece of code sets up some reader macros that make it
1799 simpler to input string literals which contain backslashes and double quotes
1800 This is very useful for writing complicated docstrings and, as it turns out,
1801 writing code that contains string literals that contain code themselves.")
1802 (license license:bsd-3))))
1803
1804 (define-public cl-pythonic-string-reader
1805 (sbcl-package->cl-source-package sbcl-pythonic-string-reader))
1806
1807 (define-public ecl-pythonic-string-reader
1808 (sbcl-package->ecl-package sbcl-pythonic-string-reader))
1809
1810 ;; SLIME does not have a ASDF system definition to build all of Swank. As a
1811 ;; result, the asdf-build-system/sbcl will produce an almost empty package.
1812 ;; Some work was done to fix this at
1813 ;; https://github.com/sionescu/slime/tree/swank-asdf but it was never merged
1814 ;; and is now lagging behind. Building SBCL fasls might not be worth the
1815 ;; hassle, so let's just ship the source then.
1816 (define-public cl-slime-swank
1817 (package
1818 (name "cl-slime-swank")
1819 (version "2.24")
1820 (source
1821 (origin
1822 (file-name (string-append name "-" version ".tar.gz"))
1823 (method git-fetch)
1824 (uri (git-reference
1825 (url "https://github.com/slime/slime/")
1826 (commit (string-append "v" version))))
1827 (sha256
1828 (base32
1829 "0js24x42m7b5iymb4rxz501dff19vav5pywnzv50b673rbkaaqvh"))))
1830 (build-system asdf-build-system/source)
1831 (home-page "https://github.com/slime/slime")
1832 (synopsis "Common Lisp Swank server")
1833 (description
1834 "This is only useful if you want to start a Swank server in a Lisp
1835 processes that doesn't run under Emacs. Lisp processes created by
1836 @command{M-x slime} automatically start the server.")
1837 (license (list license:gpl2+ license:public-domain))))
1838
1839 (define-public sbcl-slime-swank
1840 (deprecated-package "sbcl-slime-swank" cl-slime-swank))
1841
1842 (define-public sbcl-mgl-pax
1843 (let ((commit "818448418d6b9de74620f606f5b23033c6082769"))
1844 (package
1845 (name "sbcl-mgl-pax")
1846 (version (git-version "0.0.0" "1" commit))
1847 (source
1848 (origin
1849 (method git-fetch)
1850 (uri (git-reference
1851 (url "https://github.com/melisgl/mgl-pax")
1852 (commit commit)))
1853 (sha256
1854 (base32
1855 "1p97zfkh130bdxqqxwaw2j9psv58751wakx7czbfpq410lg7dd7i"))
1856 (file-name (git-file-name "mgl-pax" version))))
1857 (build-system asdf-build-system/sbcl)
1858 (inputs
1859 `(("3bmd" ,sbcl-3bmd)
1860 ("3bmd-ext-code-blocks" ,sbcl-3bmd-ext-code-blocks)
1861 ("babel" ,sbcl-babel)
1862 ("cl-fad" ,sbcl-cl-fad)
1863 ("ironclad" ,sbcl-ironclad)
1864 ("named-readtables" ,sbcl-named-readtables)
1865 ("pythonic-string-reader" ,sbcl-pythonic-string-reader)))
1866 (propagated-inputs
1867 ;; Packages having mgl-pax as input complain that it can't find
1868 ;; swank if we put it in inputs, so let's put it in propageted-inputs.
1869 `(("swank" ,cl-slime-swank)))
1870 (synopsis "Exploratory programming environment and documentation generator")
1871 (description
1872 "PAX provides an extremely poor man's Explorable Programming
1873 environment. Narrative primarily lives in so called sections that mix markdown
1874 docstrings with references to functions, variables, etc, all of which should
1875 probably have their own docstrings.
1876
1877 The primary focus is on making code easily explorable by using SLIME's
1878 @command{M-.} (@command{slime-edit-definition}). See how to enable some
1879 fanciness in Emacs Integration. Generating documentation from sections and all
1880 the referenced items in Markdown or HTML format is also implemented.
1881
1882 With the simplistic tools provided, one may accomplish similar effects as with
1883 Literate Programming, but documentation is generated from code, not vice versa
1884 and there is no support for chunking yet. Code is first, code must look
1885 pretty, documentation is code.")
1886 (home-page "http://quotenil.com/")
1887 (license license:expat))))
1888
1889 (define-public cl-mgl-pax
1890 (sbcl-package->cl-source-package sbcl-mgl-pax))
1891
1892 (define-public ecl-mgl-pax
1893 (sbcl-package->ecl-package sbcl-mgl-pax))
1894
1895 (define-public sbcl-lisp-unit
1896 (let ((commit "89653a232626b67400bf9a941f9b367da38d3815"))
1897 (package
1898 (name "sbcl-lisp-unit")
1899 (version (git-version "0.0.0" "1" commit))
1900 (source
1901 (origin
1902 (method git-fetch)
1903 (uri (git-reference
1904 (url "https://github.com/OdonataResearchLLC/lisp-unit")
1905 (commit commit)))
1906 (sha256
1907 (base32
1908 "0p6gdmgr7p383nvd66c9y9fp2bjk4jx1lpa5p09g43hr9y9pp9ry"))
1909 (file-name (git-file-name "lisp-unit" version))))
1910 (build-system asdf-build-system/sbcl)
1911 (synopsis "Common Lisp Test framework inspired by JUnit to be simple of use")
1912 (description
1913 "@command{lisp-unit} is a Common Lisp library that supports unit
1914 testing. It is an extension of the library written by Chris Riesbeck.")
1915 (home-page "https://github.com/OdonataResearchLLC/lisp-unit")
1916 (license license:expat))))
1917
1918 (define-public cl-lisp-unit
1919 (sbcl-package->cl-source-package sbcl-lisp-unit))
1920
1921 (define-public ecl-lisp-unit
1922 (sbcl-package->ecl-package sbcl-lisp-unit))
1923
1924 (define-public sbcl-anaphora
1925 (package
1926 (name "sbcl-anaphora")
1927 (version "0.9.6")
1928 (source
1929 (origin
1930 (method git-fetch)
1931 (uri (git-reference
1932 (url "https://github.com/tokenrove/anaphora")
1933 (commit version)))
1934 (sha256
1935 (base32
1936 "19wfrk3asimznkli0x2rfy637hwpdgqyvwj3vhq9x7vjvyf5vv6x"))
1937 (file-name (git-file-name "anaphora" version))))
1938 (build-system asdf-build-system/sbcl)
1939 (native-inputs
1940 `(("rt" ,sbcl-rt)))
1941 (synopsis "The anaphoric macro collection from Hell")
1942 (description
1943 "Anaphora is the anaphoric macro collection from Hell: it includes many
1944 new fiends in addition to old friends like @command{aif} and
1945 @command{awhen}.")
1946 (home-page "https://github.com/tokenrove/anaphora")
1947 (license license:public-domain)))
1948
1949 (define-public cl-anaphora
1950 (sbcl-package->cl-source-package sbcl-anaphora))
1951
1952 (define-public ecl-anaphora
1953 (sbcl-package->ecl-package sbcl-anaphora))
1954
1955 (define-public sbcl-lift
1956 (let ((commit "7d49a66c62759535624037826891152223d4206c"))
1957 (package
1958 (name "sbcl-lift")
1959 (version (git-version "1.7.1" "1" commit))
1960 (source
1961 (origin
1962 (method git-fetch)
1963 (uri (git-reference
1964 (url "https://github.com/gwkkwg/lift")
1965 (commit commit)))
1966 (sha256
1967 (base32
1968 "127v5avpz1i4m0lkaxqrq8hrl69rdazqaxf6s8awf0nd7wj2g4dp"))
1969 (file-name (git-file-name "lift" version))
1970 (modules '((guix build utils)))
1971 (snippet
1972 ;; Don't keep the bundled website
1973 `(begin
1974 (delete-file-recursively "website")
1975 #t))))
1976 (build-system asdf-build-system/sbcl)
1977 (arguments
1978 ;; The tests require a debugger, but we run with the debugger disabled.
1979 '(#:tests? #f))
1980 (synopsis "LIsp Framework for Testing")
1981 (description
1982 "The LIsp Framework for Testing (LIFT) is a unit and system test tool for LISP.
1983 Though inspired by SUnit and JUnit, it's built with Lisp in mind. In LIFT,
1984 testcases are organized into hierarchical testsuites each of which can have
1985 its own fixture. When run, a testcase can succeed, fail, or error. LIFT
1986 supports randomized testing, benchmarking, profiling, and reporting.")
1987 (home-page "https://github.com/gwkkwg/lift")
1988 (license license:expat))))
1989
1990 (define-public cl-lift
1991 (sbcl-package->cl-source-package sbcl-lift))
1992
1993 (define-public ecl-lift
1994 (sbcl-package->ecl-package sbcl-lift))
1995
1996 (define-public sbcl-let-plus
1997 (let ((commit "5f14af61d501ecead02ec6b5a5c810efc0c9fdbb"))
1998 (package
1999 (name "sbcl-let-plus")
2000 (version (git-version "0.0.0" "1" commit))
2001 (source
2002 (origin
2003 (method git-fetch)
2004 (uri (git-reference
2005 (url "https://github.com/sharplispers/let-plus")
2006 (commit commit)))
2007 (sha256
2008 (base32
2009 "0i050ca2iys9f5mb7dgqgqdxfnc3b0rnjdwv95sqd490vkiwrsaj"))
2010 (file-name (git-file-name "let-plus" version))))
2011 (build-system asdf-build-system/sbcl)
2012 (inputs
2013 `(("alexandria" ,sbcl-alexandria)
2014 ("anaphora" ,sbcl-anaphora)))
2015 (native-inputs
2016 `(("lift" ,sbcl-lift)))
2017 (synopsis "Destructuring extension of let*")
2018 (description
2019 "This library implements the let+ macro, which is a dectructuring
2020 extension of let*. It features:
2021
2022 @itemize
2023 @item Clean, consistent syntax and small implementation (less than 300 LOC,
2024 not counting tests)
2025 @item Placeholder macros allow editor hints and syntax highlighting
2026 @item @command{&ign} for ignored values (in forms where that makes sense)
2027 @item Very easy to extend
2028 @end itemize\n")
2029 (home-page "https://github.com/sharplispers/let-plus")
2030 (license license:boost1.0))))
2031
2032 (define-public cl-let-plus
2033 (sbcl-package->cl-source-package sbcl-let-plus))
2034
2035 (define-public ecl-let-plus
2036 (sbcl-package->ecl-package sbcl-let-plus))
2037
2038 (define-public sbcl-cl-colors
2039 (let ((commit "827410584553f5c717eec6182343b7605f707f75"))
2040 (package
2041 (name "sbcl-cl-colors")
2042 (version (git-version "0.0.0" "1" commit))
2043 (source
2044 (origin
2045 (method git-fetch)
2046 (uri (git-reference
2047 (url "https://github.com/tpapp/cl-colors")
2048 (commit commit)))
2049 (sha256
2050 (base32
2051 "0l446lday4hybsm9bq3jli97fvv8jb1d33abg79vbylpwjmf3y9a"))
2052 (file-name (git-file-name "cl-colors" version))))
2053 (build-system asdf-build-system/sbcl)
2054 (inputs
2055 `(("alexandria" ,sbcl-alexandria)
2056 ("let-plus" ,sbcl-let-plus)))
2057 (synopsis "Simple color library for Common Lisp")
2058 (description
2059 "This is a very simple color library for Common Lisp, providing
2060
2061 @itemize
2062 @item Types for representing colors in HSV and RGB spaces.
2063 @item Simple conversion functions between the above types (and also
2064 hexadecimal representation for RGB).
2065 @item Some predefined colors (currently X11 color names – of course the
2066 library does not depend on X11).Because color in your terminal is nice.
2067 @end itemize
2068
2069 This library is no longer supported by its author.")
2070 (home-page "https://github.com/tpapp/cl-colors")
2071 (license license:boost1.0))))
2072
2073 (define-public cl-colors
2074 (sbcl-package->cl-source-package sbcl-cl-colors))
2075
2076 (define-public ecl-cl-colors
2077 (sbcl-package->ecl-package sbcl-cl-colors))
2078
2079 (define-public sbcl-cl-ansi-text
2080 (let ((commit "53badf7878f27f22f2d4a2a43e6df458e43acbe9"))
2081 (package
2082 (name "sbcl-cl-ansi-text")
2083 (version (git-version "1.0.0" "1" commit))
2084 (source
2085 (origin
2086 (method git-fetch)
2087 (uri (git-reference
2088 (url "https://github.com/pnathan/cl-ansi-text")
2089 (commit commit)))
2090 (sha256
2091 (base32
2092 "11i27n0dbz5lmygiw65zzr8lx0rac6b6yysqranphn31wls6ja3v"))
2093 (file-name (git-file-name "cl-ansi-text" version))))
2094 (build-system asdf-build-system/sbcl)
2095 (inputs
2096 `(("alexandria" ,sbcl-alexandria)
2097 ("cl-colors" ,sbcl-cl-colors)))
2098 (native-inputs
2099 `(("fiveam" ,sbcl-fiveam)))
2100 (synopsis "ANSI terminal color implementation for Common Lisp")
2101 (description
2102 "@command{cl-ansi-text} provides utilities which enable printing to an
2103 ANSI terminal with colored text. It provides the macro @command{with-color}
2104 which causes everything printed in the body to be displayed with the provided
2105 color. It further provides functions which will print the argument with the
2106 named color.")
2107 (home-page "https://github.com/pnathan/cl-ansi-text")
2108 (license license:llgpl))))
2109
2110 (define-public cl-ansi-text
2111 (sbcl-package->cl-source-package sbcl-cl-ansi-text))
2112
2113 (define-public ecl-cl-ansi-text
2114 (sbcl-package->ecl-package sbcl-cl-ansi-text))
2115
2116 (define-public sbcl-prove-asdf
2117 (let ((commit "4f9122bd393e63c5c70c1fba23070622317cfaa0"))
2118 (package
2119 (name "sbcl-prove-asdf")
2120 (version (git-version "1.0.0" "1" commit))
2121 (source
2122 (origin
2123 (method git-fetch)
2124 (uri (git-reference
2125 (url "https://github.com/fukamachi/prove")
2126 (commit commit)))
2127 (sha256
2128 (base32
2129 "07sbfw459z8bbjvx1qlmfa8qk2mvbjnnzi2mi0x72blaj8bkl4vc"))
2130 (file-name (git-file-name "prove" version))))
2131 (build-system asdf-build-system/sbcl)
2132 (arguments
2133 `(#:asd-file "prove-asdf.asd"))
2134 (synopsis "Test requirement for the Common Lisp 'prove' library")
2135 (description
2136 "Test requirement for the Common Lisp @command{prove} library.")
2137 (home-page "https://github.com/fukamachi/prove")
2138 (license license:expat))))
2139
2140 (define-public cl-prove-asdf
2141 (sbcl-package->cl-source-package sbcl-prove-asdf))
2142
2143 (define-public ecl-prove-asdf
2144 (sbcl-package->ecl-package sbcl-prove-asdf))
2145
2146 (define-public sbcl-prove
2147 (package
2148 (inherit sbcl-prove-asdf)
2149 (name "sbcl-prove")
2150 (inputs
2151 `(("alexandria" ,sbcl-alexandria)
2152 ("cl-ppcre" ,sbcl-cl-ppcre)
2153 ("cl-ansi-text" ,sbcl-cl-ansi-text)))
2154 (native-inputs
2155 `(("prove-asdf" ,sbcl-prove-asdf)))
2156 (arguments
2157 `(#:asd-file "prove.asd"))
2158 (synopsis "Yet another unit testing framework for Common Lisp")
2159 (description
2160 "This project was originally called @command{cl-test-more}.
2161 @command{prove} is yet another unit testing framework for Common Lisp. The
2162 advantages of @command{prove} are:
2163
2164 @itemize
2165 @item Various simple functions for testing and informative error messages
2166 @item ASDF integration
2167 @item Extensible test reporters
2168 @item Colorizes the report if it's available (note for SLIME)
2169 @item Reports test durations
2170 @end itemize\n")))
2171
2172 (define-public cl-prove
2173 (sbcl-package->cl-source-package sbcl-prove))
2174
2175 (define-public ecl-prove
2176 (sbcl-package->ecl-package sbcl-prove))
2177
2178 (define-public sbcl-proc-parse
2179 (let ((commit "ac3636834d561bdc2686c956dbd82494537285fd"))
2180 (package
2181 (name "sbcl-proc-parse")
2182 (version (git-version "0.0.0" "1" commit))
2183 (source
2184 (origin
2185 (method git-fetch)
2186 (uri (git-reference
2187 (url "https://github.com/fukamachi/proc-parse")
2188 (commit commit)))
2189 (sha256
2190 (base32
2191 "06rnl0h4cx6xv2wj3jczmmcxqn2703inmmvg1s4npbghmijsybfh"))
2192 (file-name (git-file-name "proc-parse" version))))
2193 (build-system asdf-build-system/sbcl)
2194 (inputs
2195 `(("alexandria" ,sbcl-alexandria)
2196 ("babel" ,sbcl-babel)))
2197 (native-inputs
2198 `(("prove" ,sbcl-prove)
2199 ("prove-asdf" ,sbcl-prove-asdf)))
2200 (arguments
2201 ;; TODO: Tests don't find "proc-parse-test", why?
2202 `(#:tests? #f))
2203 (synopsis "Procedural vector parser")
2204 (description
2205 "This is a string/octets parser library for Common Lisp with speed and
2206 readability in mind. Unlike other libraries, the code is not a
2207 pattern-matching-like, but a char-by-char procedural parser.")
2208 (home-page "https://github.com/fukamachi/proc-parse")
2209 (license license:bsd-2))))
2210
2211 (define-public cl-proc-parse
2212 (sbcl-package->cl-source-package sbcl-proc-parse))
2213
2214 (define-public ecl-proc-parse
2215 (sbcl-package->ecl-package sbcl-proc-parse))
2216
2217 (define-public sbcl-parse-float
2218 (let ((commit "2aae569f2a4b2eb3bfb5401a959425dcf151b09c"))
2219 (package
2220 (name "sbcl-parse-float")
2221 (version (git-version "0.0.0" "1" commit))
2222 (source
2223 (origin
2224 (method git-fetch)
2225 (uri (git-reference
2226 (url "https://github.com/soemraws/parse-float")
2227 (commit commit)))
2228 (sha256
2229 (base32
2230 "08xw8cchhmqcc0byng69m3f5a2izc9y2290jzz2k0qrbibp1fdk7"))
2231 (file-name (git-file-name "proc-parse" version))))
2232 (build-system asdf-build-system/sbcl)
2233 (inputs
2234 `(("alexandria" ,sbcl-alexandria)
2235 ("babel" ,sbcl-babel)))
2236 (native-inputs
2237 `(("prove" ,sbcl-prove)
2238 ("prove-asdf" ,sbcl-prove-asdf)))
2239 (arguments
2240 ;; TODO: Tests don't find "proc-parse-test", why?
2241 `(#:tests? #f))
2242 (synopsis "Parse a floating point value from a string in Common Lisp")
2243 (description
2244 "This package exports the following function to parse floating-point
2245 values from a string in Common Lisp.")
2246 (home-page "https://github.com/soemraws/parse-float")
2247 (license license:public-domain))))
2248
2249 (define-public cl-parse-float
2250 (sbcl-package->cl-source-package sbcl-parse-float))
2251
2252 (define-public ecl-parse-float
2253 (sbcl-package->ecl-package sbcl-parse-float))
2254
2255 (define-public sbcl-ascii-strings
2256 (let ((revision "1")
2257 (changeset "5048480a61243e6f1b02884012c8f25cdbee6d97"))
2258 (package
2259 (name "sbcl-ascii-strings")
2260 (version (string-append "0-" revision "." (string-take changeset 7)))
2261 (source
2262 (origin
2263 (method hg-fetch)
2264 (uri (hg-reference
2265 (url "https://bitbucket.org/vityok/cl-string-match/")
2266 (changeset changeset)))
2267 (sha256
2268 (base32
2269 "01wn5qx562w43ssy92xlfgv79w7p0nv0wbl76mpmba131n9ziq2y"))
2270 (file-name (git-file-name "cl-string-match" version))))
2271 (build-system asdf-build-system/sbcl)
2272 (inputs
2273 `(("alexandria" ,sbcl-alexandria)
2274 ("babel" ,sbcl-babel)))
2275 (arguments
2276 `(#:asd-file "ascii-strings.asd"))
2277 (synopsis "Operations on ASCII strings")
2278 (description
2279 "Operations on ASCII strings. Essentially this can be any kind of
2280 single-byte encoded strings.")
2281 (home-page "https://bitbucket.org/vityok/cl-string-match/")
2282 (license license:bsd-3))))
2283
2284 (define-public cl-ascii-strings
2285 (sbcl-package->cl-source-package sbcl-ascii-strings))
2286
2287 (define-public ecl-ascii-strings
2288 (sbcl-package->ecl-package sbcl-ascii-strings))
2289
2290 (define-public sbcl-simple-scanf
2291 (package
2292 (inherit sbcl-ascii-strings)
2293 (name "sbcl-simple-scanf")
2294 (inputs
2295 `(("alexandria" ,sbcl-alexandria)
2296 ("iterate" ,sbcl-iterate)
2297 ("proc-parse" ,sbcl-proc-parse)
2298 ("parse-float" ,sbcl-parse-float)))
2299 (arguments
2300 `(#:asd-file "simple-scanf.asd"))
2301 (synopsis "Simple scanf-like functionality implementation")
2302 (description
2303 "A simple scanf-like functionality implementation.")))
2304
2305 (define-public cl-simple-scanf
2306 (sbcl-package->cl-source-package sbcl-simple-scanf))
2307
2308 (define-public ecl-simple-scanf
2309 (sbcl-package->ecl-package sbcl-simple-scanf))
2310
2311 (define-public sbcl-cl-string-match
2312 (package
2313 (inherit sbcl-ascii-strings)
2314 (name "sbcl-cl-string-match")
2315 (inputs
2316 `(("alexandria" ,sbcl-alexandria)
2317 ("ascii-strings" ,sbcl-ascii-strings)
2318 ("yacc" ,sbcl-cl-yacc)
2319 ("jpl-util" ,sbcl-jpl-util)
2320 ("jpl-queues" ,sbcl-jpl-queues)
2321 ("mgl-pax" ,sbcl-mgl-pax)
2322 ("iterate" ,sbcl-iterate)))
2323 ;; TODO: Tests are not evaluated properly.
2324 (native-inputs
2325 ;; For testing:
2326 `(("lisp-unit" ,sbcl-lisp-unit)
2327 ("simple-scanf" ,sbcl-simple-scanf)))
2328 (arguments
2329 `(#:tests? #f
2330 #:asd-file "cl-string-match.asd"))
2331 (synopsis "Portable, dependency-free set of utilities to manipulate strings in Common Lisp")
2332 (description
2333 "@command{cl-strings} is a small, portable, dependency-free set of
2334 utilities that make it even easier to manipulate text in Common Lisp. It has
2335 100% test coverage and works at least on sbcl, ecl, ccl, abcl and clisp.")))
2336
2337 (define-public cl-string-match
2338 (sbcl-package->cl-source-package sbcl-cl-string-match))
2339
2340 (define-public ecl-cl-string-match
2341 (sbcl-package->ecl-package sbcl-cl-string-match))
2342
2343 (define-public sbcl-ptester
2344 (let ((commit "fe69fde54f4bce00ce577feb918796c293fc7253")
2345 (revision "1"))
2346 (package
2347 (name "sbcl-ptester")
2348 (version (git-version "2.1.3" revision commit))
2349 (source
2350 (origin
2351 (method git-fetch)
2352 (uri (git-reference
2353 (url "http://git.kpe.io/ptester.git")
2354 (commit commit)))
2355 (file-name (git-file-name name version))
2356 (sha256
2357 (base32 "1l0lfl7cdnr2qf4zh38hi4llxg22c49zkm639bdkmvlkzwj3ndwf"))))
2358 (build-system asdf-build-system/sbcl)
2359 (home-page "http://quickdocs.org/ptester/")
2360 (synopsis "Portable test harness package")
2361 (description
2362 "@command{ptester} is a portable testing framework based on Franz's
2363 tester module.")
2364 (license license:llgpl))))
2365
2366 (define-public cl-ptester
2367 (sbcl-package->cl-source-package sbcl-ptester))
2368
2369 (define-public ecl-ptester
2370 (sbcl-package->ecl-package sbcl-ptester))
2371
2372 (define-public sbcl-puri
2373 (let ((commit "ef5afb9e5286c8e952d4344f019c1a636a717b97")
2374 (revision "1"))
2375 (package
2376 (name "sbcl-puri")
2377 (version (git-version "1.5.7" revision commit))
2378 (source
2379 (origin
2380 (method git-fetch)
2381 (uri (git-reference
2382 (url "http://git.kpe.io/puri.git")
2383 (commit commit)))
2384 (file-name (git-file-name name version))
2385 (sha256
2386 (base32 "1vm25pdl92laj72p5vyd538kf3cjy2655z6bdc99h20ana2p231s"))))
2387 (build-system asdf-build-system/sbcl)
2388 (native-inputs
2389 `(("ptester" ,sbcl-ptester)))
2390 (home-page "http://quickdocs.org/puri/")
2391 (synopsis "Portable URI Library")
2392 (description
2393 "This is a portable Universal Resource Identifier library for Common
2394 Lisp programs. It parses URI according to the RFC 2396 specification.")
2395 (license license:llgpl))))
2396
2397 (define-public cl-puri
2398 (sbcl-package->cl-source-package sbcl-puri))
2399
2400 (define-public ecl-puri
2401 (sbcl-package->ecl-package sbcl-puri))
2402
2403 (define-public sbcl-queues
2404 (let ((commit "47d4da65e9ea20953b74aeeab7e89a831b66bc94"))
2405 (package
2406 (name "sbcl-queues")
2407 (version (git-version "0.0.0" "1" commit))
2408 (source
2409 (origin
2410 (method git-fetch)
2411 (uri (git-reference
2412 (url "https://github.com/oconnore/queues")
2413 (commit commit)))
2414 (file-name (git-file-name "queues" version))
2415 (sha256
2416 (base32
2417 "0wdhfnzi4v6d97pggzj2aw55si94w4327br94jrmyvwf351wqjvv"))))
2418 (build-system asdf-build-system/sbcl)
2419 (home-page "https://github.com/oconnore/queues")
2420 (synopsis "Common Lisp queue library")
2421 (description
2422 "This is a simple queue library for Common Lisp with features such as
2423 non-consing thread safe queues and fibonacci priority queues.")
2424 (license license:expat))))
2425
2426 (define-public cl-queues
2427 (sbcl-package->cl-source-package sbcl-queues))
2428
2429 (define-public ecl-queues
2430 (sbcl-package->ecl-package sbcl-queues))
2431
2432 (define-public sbcl-queues.simple-queue
2433 (package
2434 (inherit sbcl-queues)
2435 (name "sbcl-queues.simple-queue")
2436 (inputs
2437 `(("sbcl-queues" ,sbcl-queues)))
2438 (arguments
2439 `(#:asd-file "queues.simple-queue.asd"))
2440 (synopsis "Simple queue implementation")
2441 (description
2442 "This is a simple queue library for Common Lisp with features such as
2443 non-consing thread safe queues and fibonacci priority queues.")
2444 (license license:expat)))
2445
2446 (define-public cl-queues.simple-queue
2447 (sbcl-package->cl-source-package sbcl-queues.simple-queue))
2448
2449 (define-public ecl-queues.simple-queue
2450 (sbcl-package->ecl-package sbcl-queues.simple-queue))
2451
2452 (define-public sbcl-queues.simple-cqueue
2453 (package
2454 (inherit sbcl-queues)
2455 (name "sbcl-queues.simple-cqueue")
2456 (inputs
2457 `(("sbcl-queues" ,sbcl-queues)
2458 ("sbcl-queues.simple-queue" ,sbcl-queues.simple-queue)
2459 ("bordeaux-threads" ,sbcl-bordeaux-threads)))
2460 (arguments
2461 `(#:asd-file "queues.simple-cqueue.asd"))
2462 (synopsis "Thread safe queue implementation")
2463 (description
2464 "This is a simple queue library for Common Lisp with features such as
2465 non-consing thread safe queues and fibonacci priority queues.")
2466 (license license:expat)))
2467
2468 (define-public cl-queues.simple-cqueue
2469 (sbcl-package->cl-source-package sbcl-queues.simple-cqueue))
2470
2471 (define-public ecl-queues.simple-cqueue
2472 (sbcl-package->ecl-package sbcl-queues.simple-cqueue))
2473
2474 (define-public sbcl-queues.priority-queue
2475 (package
2476 (inherit sbcl-queues)
2477 (name "sbcl-queues.priority-queue")
2478 (inputs
2479 `(("sbcl-queues" ,sbcl-queues)))
2480 (arguments
2481 `(#:asd-file "queues.priority-queue.asd"))
2482 (synopsis "Priority queue (Fibonacci) implementation")
2483 (description
2484 "This is a simple queue library for Common Lisp with features such as
2485 non-consing thread safe queues and fibonacci priority queues.")
2486 (license license:expat)))
2487
2488 (define-public cl-queues.priority-queue
2489 (sbcl-package->cl-source-package sbcl-queues.priority-queue))
2490
2491 (define-public ecl-queues.priority-queue
2492 (sbcl-package->ecl-package sbcl-queues.priority-queue))
2493
2494 (define-public sbcl-queues.priority-cqueue
2495 (package
2496 (inherit sbcl-queues)
2497 (name "sbcl-queues.priority-cqueue")
2498 (inputs
2499 `(("sbcl-queues" ,sbcl-queues)
2500 ("sbcl-queues.priority-queue" ,sbcl-queues.priority-queue)
2501 ("bordeaux-threads" ,sbcl-bordeaux-threads)))
2502 (arguments
2503 `(#:asd-file "queues.priority-cqueue.asd"))
2504 (synopsis "Thread safe fibonacci priority queue implementation")
2505 (description
2506 "This is a simple queue library for Common Lisp with features such as
2507 non-consing thread safe queues and fibonacci priority queues.")
2508 (license license:expat)))
2509
2510 (define-public cl-queues.priority-cqueue
2511 (sbcl-package->cl-source-package sbcl-queues.priority-cqueue))
2512
2513 (define-public ecl-queues.priority-cqueue
2514 (sbcl-package->ecl-package sbcl-queues.priority-cqueue))
2515
2516 (define sbcl-cffi-bootstrap
2517 (package
2518 (name "sbcl-cffi-bootstrap")
2519 (version "0.21.0")
2520 (source
2521 (origin
2522 (method git-fetch)
2523 (uri (git-reference
2524 (url "https://github.com/cffi/cffi.git")
2525 (commit (string-append "v" version))))
2526 (file-name (git-file-name "cffi-bootstrap" version))
2527 (sha256
2528 (base32 "1qalargz9bhp850qv60ffwpdqi4xirzar4l3g6qcg8yc6xqf2cjk"))))
2529 (build-system asdf-build-system/sbcl)
2530 (inputs
2531 `(("libffi" ,libffi)
2532 ("alexandria" ,sbcl-alexandria)
2533 ("babel" ,sbcl-babel)
2534 ("trivial-features" ,sbcl-trivial-features)))
2535 (native-inputs
2536 `(("pkg-config" ,pkg-config)))
2537 (arguments
2538 '(#:phases
2539 (modify-phases %standard-phases
2540 (add-after 'unpack 'fix-paths
2541 (lambda* (#:key inputs #:allow-other-keys)
2542 (substitute* "libffi/libffi.lisp"
2543 (("libffi.so.6" all) (string-append
2544 (assoc-ref inputs "libffi")
2545 "/lib/" all)))
2546 (substitute* "toolchain/c-toolchain.lisp"
2547 (("\"cc\"") (format #f "~S" (which "gcc")))))))
2548 #:asd-system-name "cffi"
2549 #:tests? #f))
2550 (home-page "https://common-lisp.net/project/cffi/")
2551 (synopsis "Common Foreign Function Interface for Common Lisp")
2552 (description "The Common Foreign Function Interface (CFFI)
2553 purports to be a portable foreign function interface for Common Lisp.
2554 The CFFI library is composed of a Lisp-implementation-specific backend
2555 in the CFFI-SYS package, and a portable frontend in the CFFI
2556 package.")
2557 (license license:expat)))
2558
2559 (define-public sbcl-cffi-toolchain
2560 (package
2561 (inherit sbcl-cffi-bootstrap)
2562 (name "sbcl-cffi-toolchain")
2563 (inputs
2564 `(("libffi" ,libffi)
2565 ("sbcl-cffi" ,sbcl-cffi-bootstrap)))
2566 (arguments
2567 (substitute-keyword-arguments (package-arguments sbcl-cffi-bootstrap)
2568 ((#:asd-system-name _) #f)
2569 ((#:tests? _) #t)))))
2570
2571 (define-public sbcl-cffi-libffi
2572 (package
2573 (inherit sbcl-cffi-toolchain)
2574 (name "sbcl-cffi-libffi")
2575 (inputs
2576 `(("cffi" ,sbcl-cffi-bootstrap)
2577 ("cffi-grovel" ,sbcl-cffi-grovel)
2578 ("trivial-features" ,sbcl-trivial-features)
2579 ("libffi" ,libffi)))))
2580
2581 (define-public sbcl-cffi-grovel
2582 (package
2583 (inherit sbcl-cffi-toolchain)
2584 (name "sbcl-cffi-grovel")
2585 (inputs
2586 `(("libffi" ,libffi)
2587 ("cffi" ,sbcl-cffi-bootstrap)
2588 ("cffi-toolchain" ,sbcl-cffi-toolchain)
2589 ("alexandria" ,sbcl-alexandria)))
2590 (arguments
2591 (substitute-keyword-arguments (package-arguments sbcl-cffi-toolchain)
2592 ((#:phases phases)
2593 `(modify-phases ,phases
2594 (add-after 'build 'install-headers
2595 (lambda* (#:key outputs #:allow-other-keys)
2596 (install-file "grovel/common.h"
2597 (string-append
2598 (assoc-ref outputs "out")
2599 "/include/grovel"))))))))))
2600
2601 (define-public sbcl-cffi
2602 (package
2603 (inherit sbcl-cffi-toolchain)
2604 (name "sbcl-cffi")
2605 (inputs (package-inputs sbcl-cffi-bootstrap))
2606 (native-inputs
2607 `(("cffi-grovel" ,sbcl-cffi-grovel)
2608 ("cffi-libffi" ,sbcl-cffi-libffi)
2609 ("rt" ,sbcl-rt)
2610 ("bordeaux-threads" ,sbcl-bordeaux-threads)
2611 ,@(package-native-inputs sbcl-cffi-bootstrap)))))
2612
2613 (define-public cl-cffi
2614 (sbcl-package->cl-source-package sbcl-cffi))
2615
2616 (define-public sbcl-cffi-uffi-compat
2617 (package
2618 (inherit sbcl-cffi-toolchain)
2619 (name "sbcl-cffi-uffi-compat")
2620 (native-inputs
2621 `(,@(package-inputs sbcl-cffi-bootstrap))) ; For fix-paths phase
2622 (inputs
2623 `(("cffi" ,sbcl-cffi)))
2624 (synopsis "UFFI Compatibility Layer for CFFI")))
2625
2626 (define-public cl-cffi-uffi-compat
2627 (sbcl-package->cl-source-package sbcl-cffi-uffi-compat))
2628
2629 (define-public sbcl-cl-sqlite
2630 (let ((commit "c738e66d4266ef63a1debc4ef4a1b871a068c112"))
2631 (package
2632 (name "sbcl-cl-sqlite")
2633 (version (git-version "0.2" "1" commit))
2634 (source
2635 (origin
2636 (method git-fetch)
2637 (uri (git-reference
2638 (url "https://github.com/dmitryvk/cl-sqlite")
2639 (commit commit)))
2640 (file-name (git-file-name "cl-sqlite" version))
2641 (sha256
2642 (base32
2643 "1ng45k1hdb84sqjryrfx93g66bsbybmpy301wd0fdybnc5jzr36q"))))
2644 (build-system asdf-build-system/sbcl)
2645 (inputs
2646 `(("iterate" ,sbcl-iterate)
2647 ("cffi" ,sbcl-cffi)
2648 ("sqlite" ,sqlite)))
2649 (native-inputs
2650 `(("fiveam" ,sbcl-fiveam)
2651 ("bordeaux-threads" ,sbcl-bordeaux-threads)))
2652 (arguments
2653 `(#:tests? #f ; Upstream seems to have issues with tests: https://github.com/dmitryvk/cl-sqlite/issues/7
2654 #:asd-file "sqlite.asd"
2655 #:asd-system-name "sqlite"
2656 #:phases
2657 (modify-phases %standard-phases
2658 (add-after 'unpack 'fix-paths
2659 (lambda* (#:key inputs #:allow-other-keys)
2660 (substitute* "sqlite-ffi.lisp"
2661 (("libsqlite3" all) (string-append
2662 (assoc-ref inputs "sqlite")"/lib/" all))))))))
2663 (home-page "https://common-lisp.net/project/cl-sqlite/")
2664 (synopsis "Common Lisp binding for SQLite")
2665 (description
2666 "The @command{cl-sqlite} package is an interface to the SQLite embedded
2667 relational database engine.")
2668 (license license:public-domain))))
2669
2670 (define-public cl-sqlite
2671 (sbcl-package->cl-source-package sbcl-cl-sqlite))
2672
2673 (define-public sbcl-parenscript
2674 ;; Source archives are overwritten on every release, we use the Git repo instead.
2675 (let ((commit "7a1ac46353cecd144fc91915ba9f122aafcf4766"))
2676 (package
2677 (name "sbcl-parenscript")
2678 (version (git-version "2.7.1" "1" commit))
2679 (source
2680 (origin
2681 (method git-fetch)
2682 (uri (git-reference
2683 (url "https://gitlab.common-lisp.net/parenscript/parenscript")
2684 (commit commit)))
2685 (file-name (git-file-name "parenscript" version))
2686 (sha256
2687 (base32
2688 "0c22lqarrpbq82dg1sb3y6mp6w2faczp34ymzhnmff88yfq1xzsf"))))
2689 (build-system asdf-build-system/sbcl)
2690 (inputs
2691 `(("cl-ppcre" ,sbcl-cl-ppcre)
2692 ("anaphora" ,sbcl-anaphora)
2693 ("named-readtables" ,sbcl-named-readtables)))
2694 (home-page "https://common-lisp.net/project/parenscript/")
2695 (synopsis "Translator from a subset of Common Lisp to JavaScript")
2696 (description
2697 "Parenscript is a translator from an extended subset of Common Lisp to
2698 JavaScript. Parenscript code can run almost identically on both the
2699 browser (as JavaScript) and server (as Common Lisp).
2700
2701 Parenscript code is treated the same way as Common Lisp code, making the full
2702 power of Lisp macros available for JavaScript. This provides a web
2703 development environment that is unmatched in its ability to reduce code
2704 duplication and provide advanced meta-programming facilities to web
2705 developers.
2706
2707 At the same time, Parenscript is different from almost all other \"language
2708 X\" to JavaScript translators in that it imposes almost no overhead:
2709
2710 @itemize
2711 @item No run-time dependencies: Any piece of Parenscript code is runnable
2712 as-is. There are no JavaScript files to include.
2713 @item Native types: Parenscript works entirely with native JavaScript data
2714 types. There are no new types introduced, and object prototypes are not
2715 touched.
2716 @item Native calling convention: Any JavaScript code can be called without the
2717 need for bindings. Likewise, Parenscript can be used to make efficient,
2718 self-contained JavaScript libraries.
2719 @item Readable code: Parenscript generates concise, formatted, idiomatic
2720 JavaScript code. Identifier names are preserved. This enables seamless
2721 debugging in tools like Firebug.
2722 @item Efficiency: Parenscript introduces minimal overhead for advanced Common
2723 Lisp features. The generated code is almost as fast as hand-written
2724 JavaScript.
2725 @end itemize\n")
2726 (license license:bsd-3))))
2727
2728 (define-public cl-parenscript
2729 (sbcl-package->cl-source-package sbcl-parenscript))
2730
2731 (define-public ecl-parenscript
2732 (sbcl-package->ecl-package sbcl-parenscript))
2733
2734 (define-public sbcl-cl-json
2735 (let ((commit "6dfebb9540bfc3cc33582d0c03c9ec27cb913e79"))
2736 (package
2737 (name "sbcl-cl-json")
2738 (version (git-version "0.5" "1" commit))
2739 (source
2740 (origin
2741 (method git-fetch)
2742 (uri (git-reference
2743 (url "https://github.com/hankhero/cl-json")
2744 (commit commit)))
2745 (file-name (git-file-name "cl-json" version))
2746 (sha256
2747 (base32
2748 "0fx3m3x3s5ji950yzpazz4s0img3l6b3d6l3jrfjv0lr702496lh"))))
2749 (build-system asdf-build-system/sbcl)
2750 (native-inputs
2751 `(("fiveam" ,sbcl-fiveam)))
2752 (home-page "https://github.com/hankhero/cl-json")
2753 (synopsis "JSON encoder and decoder for Common-Lisp")
2754 (description
2755 "@command{cl-json} provides an encoder of Lisp objects to JSON format
2756 and a corresponding decoder of JSON data to Lisp objects. Both the encoder
2757 and the decoder are highly customizable; at the same time, the default
2758 settings ensure a very simple mode of operation, similar to that provided by
2759 @command{yason} or @command{st-json}.")
2760 (license license:expat))))
2761
2762 (define-public cl-json
2763 (sbcl-package->cl-source-package sbcl-cl-json))
2764
2765 (define-public ecl-cl-json
2766 (sbcl-package->ecl-package sbcl-cl-json))
2767
2768 (define-public sbcl-unix-opts
2769 (package
2770 (name "sbcl-unix-opts")
2771 (version "0.1.7")
2772 (source
2773 (origin
2774 (method git-fetch)
2775 (uri (git-reference
2776 (url "https://github.com/libre-man/unix-opts")
2777 (commit version)))
2778 (file-name (git-file-name "unix-opts" version))
2779 (sha256
2780 (base32
2781 "08djdi1ard09fijb7w9bdmhmwd98b1hzmcnjw9fqjiqa0g3b44rr"))))
2782 (build-system asdf-build-system/sbcl)
2783 (home-page "https://github.com/hankhero/cl-json")
2784 (synopsis "Unix-style command line options parser")
2785 (description
2786 "This is a minimalistic parser of command line options. The main
2787 advantage of the library is the ability to concisely define command line
2788 options once and then use this definition for parsing and extraction of
2789 command line arguments, as well as printing description of command line
2790 options (you get --help for free). This way you don't need to repeat
2791 yourself. Also, @command{unix-opts} doesn't depend on anything and
2792 precisely controls the behavior of the parser via Common Lisp restarts.")
2793 (license license:expat)))
2794
2795 (define-public cl-unix-opts
2796 (sbcl-package->cl-source-package sbcl-unix-opts))
2797
2798 (define-public ecl-unix-opts
2799 (sbcl-package->ecl-package sbcl-unix-opts))
2800
2801 (define-public sbcl-trivial-garbage
2802 (package
2803 (name "sbcl-trivial-garbage")
2804 (version "0.21")
2805 (source
2806 (origin
2807 (method git-fetch)
2808 (uri (git-reference
2809 (url "https://github.com/trivial-garbage/trivial-garbage.git")
2810 (commit (string-append "v" version))))
2811 (file-name (git-file-name "trivial-garbage" version))
2812 (sha256
2813 (base32 "0122jicfg7pca1wxw8zak1n92h5friqy60988ns0ysksj3fphw9n"))))
2814 (build-system asdf-build-system/sbcl)
2815 (native-inputs
2816 `(("rt" ,sbcl-rt)))
2817 (home-page "https://common-lisp.net/project/trivial-garbage/")
2818 (synopsis "Portable GC-related APIs for Common Lisp")
2819 (description "@command{trivial-garbage} provides a portable API to
2820 finalizers, weak hash-tables and weak pointers on all major implementations of
2821 the Common Lisp programming language.")
2822 (license license:public-domain)))
2823
2824 (define-public cl-trivial-garbage
2825 (sbcl-package->cl-source-package sbcl-trivial-garbage))
2826
2827 (define-public ecl-trivial-garbage
2828 (sbcl-package->ecl-package sbcl-trivial-garbage))
2829
2830 (define-public sbcl-closer-mop
2831 (let ((commit "19c9d33f576e10715fd79cc1d4f688dab0f241d6"))
2832 (package
2833 (name "sbcl-closer-mop")
2834 (version (git-version "1.0.0" "2" commit))
2835 (source
2836 (origin
2837 (method git-fetch)
2838 (uri (git-reference
2839 (url "https://github.com/pcostanza/closer-mop")
2840 (commit commit)))
2841 (sha256
2842 (base32 "1w3x087wvlwkd6swfdgbvjfs6kazf0la8ax4pjfzikwjch4snn2c"))
2843 (file-name (git-file-name "closer-mop" version ))))
2844 (build-system asdf-build-system/sbcl)
2845 (home-page "https://github.com/pcostanza/closer-mop")
2846 (synopsis "Rectifies absent or incorrect CLOS MOP features")
2847 (description "Closer to MOP is a compatibility layer that rectifies many
2848 of the absent or incorrect CLOS MOP features across a broad range of Common
2849 Lisp implementations.")
2850 (license license:expat))))
2851
2852 (define-public cl-closer-mop
2853 (sbcl-package->cl-source-package sbcl-closer-mop))
2854
2855 (define-public ecl-closer-mop
2856 (sbcl-package->ecl-package sbcl-closer-mop))
2857
2858 (define sbcl-cl-cffi-gtk-boot0
2859 (let ((commit "412d17214e092220c65a5660f5cbbd9cb69b8fe4"))
2860 (package
2861 (name "sbcl-cl-cffi-gtk-boot0")
2862 (version (git-version "0.11.2" "1" commit))
2863 (source
2864 (origin
2865 (method git-fetch)
2866 (uri (git-reference
2867 (url "https://github.com/Ferada/cl-cffi-gtk/")
2868 (commit commit)))
2869 (file-name (git-file-name "cl-cffi-gtk" version))
2870 (sha256
2871 (base32
2872 "0n997yhcnzk048nalx8ys62ja2ac8iv4mbn3mb55iapl0321hghn"))))
2873 (build-system asdf-build-system/sbcl)
2874 (inputs
2875 `(("iterate" ,sbcl-iterate)
2876 ("cffi" ,sbcl-cffi)
2877 ("trivial-features" ,sbcl-trivial-features)))
2878 (home-page "https://github.com/Ferada/cl-cffi-gtk/")
2879 (synopsis "Common Lisp binding for GTK+3")
2880 (description
2881 "@command{cl-cffi-gtk} is a Lisp binding to GTK+ 3 (GIMP Toolkit) which
2882 is a library for creating graphical user interfaces.")
2883 (license license:lgpl3))))
2884
2885 (define-public sbcl-cl-cffi-gtk-glib
2886 (package
2887 (inherit sbcl-cl-cffi-gtk-boot0)
2888 (name "sbcl-cl-cffi-gtk-glib")
2889 (inputs
2890 `(("glib" ,glib)
2891 ("bordeaux-threads" ,sbcl-bordeaux-threads)
2892 ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
2893 (arguments
2894 `(#:asd-file "glib/cl-cffi-gtk-glib.asd"
2895 #:phases
2896 (modify-phases %standard-phases
2897 (add-after 'unpack 'fix-paths
2898 (lambda* (#:key inputs #:allow-other-keys)
2899 (substitute* "glib/glib.init.lisp"
2900 (("libglib|libgthread" all)
2901 (string-append (assoc-ref inputs "glib") "/lib/" all))))))))))
2902
2903 (define-public sbcl-cl-cffi-gtk-gobject
2904 (package
2905 (inherit sbcl-cl-cffi-gtk-boot0)
2906 (name "sbcl-cl-cffi-gtk-gobject")
2907 (inputs
2908 `(("glib" ,glib)
2909 ("cl-cffi-gtk-glib" ,sbcl-cl-cffi-gtk-glib)
2910 ("trivial-garbage" ,sbcl-trivial-garbage)
2911 ("bordeaux-threads" ,sbcl-bordeaux-threads)
2912 ("closer-mop" ,sbcl-closer-mop)
2913 ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
2914 (arguments
2915 `(#:asd-file "gobject/cl-cffi-gtk-gobject.asd"
2916 #:phases
2917 (modify-phases %standard-phases
2918 (add-after 'unpack 'fix-paths
2919 (lambda* (#:key inputs #:allow-other-keys)
2920 (substitute* "gobject/gobject.init.lisp"
2921 (("libgobject" all) (string-append
2922 (assoc-ref inputs "glib") "/lib/" all)))))
2923 (add-after 'install 'link-source
2924 ;; Since source is particularly heavy (16MiB+), let's reuse it
2925 ;; across the different components of cl-ffi-gtk.
2926 (lambda* (#:key inputs outputs #:allow-other-keys)
2927 (let ((glib-source (string-append (assoc-ref inputs "cl-cffi-gtk-glib")
2928 "/share/common-lisp/sbcl-source/"
2929 "cl-cffi-gtk-glib"))
2930 (out-source (string-append (assoc-ref outputs "out")
2931 "/share/common-lisp/sbcl-source/"
2932 "cl-cffi-gtk-gobject")))
2933 (delete-file-recursively out-source)
2934 (symlink glib-source out-source)
2935 #t))))))))
2936
2937 (define-public sbcl-cl-cffi-gtk-gio
2938 (package
2939 (inherit sbcl-cl-cffi-gtk-boot0)
2940 (name "sbcl-cl-cffi-gtk-gio")
2941 (inputs
2942 `(("glib" ,glib)
2943 ("cl-cffi-gtk-glib" ,sbcl-cl-cffi-gtk-glib)
2944 ("cl-cffi-gtk-gobject" ,sbcl-cl-cffi-gtk-gobject)
2945 ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
2946 (arguments
2947 `(#:asd-file "gio/cl-cffi-gtk-gio.asd"
2948 #:phases
2949 (modify-phases %standard-phases
2950 (add-after 'unpack 'fix-paths
2951 (lambda* (#:key inputs #:allow-other-keys)
2952 (substitute* "gio/gio.init.lisp"
2953 (("libgio" all)
2954 (string-append
2955 (assoc-ref inputs "glib") "/lib/" all)))))
2956 (add-after 'install 'link-source
2957 ;; Since source is particularly heavy (16MiB+), let's reuse it
2958 ;; across the different components of cl-ffi-gtk.
2959 (lambda* (#:key inputs outputs #:allow-other-keys)
2960 (let ((glib-source (string-append (assoc-ref inputs "cl-cffi-gtk-glib")
2961 "/share/common-lisp/sbcl-source/"
2962 "cl-cffi-gtk-glib"))
2963 (out-source (string-append (assoc-ref outputs "out")
2964 "/share/common-lisp/sbcl-source/"
2965 "cl-cffi-gtk-gio")))
2966 (delete-file-recursively out-source)
2967 (symlink glib-source out-source)
2968 #t))))))))
2969
2970 (define-public sbcl-cl-cffi-gtk-cairo
2971 (package
2972 (inherit sbcl-cl-cffi-gtk-boot0)
2973 (name "sbcl-cl-cffi-gtk-cairo")
2974 (inputs
2975 `(("cairo" ,cairo)
2976 ("cl-cffi-gtk-glib" ,sbcl-cl-cffi-gtk-glib)
2977 ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
2978 (arguments
2979 `(#:asd-file "cairo/cl-cffi-gtk-cairo.asd"
2980 #:phases
2981 (modify-phases %standard-phases
2982 (add-after 'unpack 'fix-paths
2983 (lambda* (#:key inputs #:allow-other-keys)
2984 (substitute* "cairo/cairo.init.lisp"
2985 (("libcairo" all)
2986 (string-append
2987 (assoc-ref inputs "cairo") "/lib/" all)))))
2988 (add-after 'install 'link-source
2989 ;; Since source is particularly heavy (16MiB+), let's reuse it
2990 ;; across the different components of cl-ffi-gtk.
2991 (lambda* (#:key inputs outputs #:allow-other-keys)
2992 (let ((glib-source (string-append (assoc-ref inputs "cl-cffi-gtk-glib")
2993 "/share/common-lisp/sbcl-source/"
2994 "cl-cffi-gtk-glib"))
2995 (out-source (string-append (assoc-ref outputs "out")
2996 "/share/common-lisp/sbcl-source/"
2997 "cl-cffi-gtk-cairo")))
2998 (delete-file-recursively out-source)
2999 (symlink glib-source out-source)
3000 #t))))))))
3001
3002 (define-public sbcl-cl-cffi-gtk-pango
3003 (package
3004 (inherit sbcl-cl-cffi-gtk-boot0)
3005 (name "sbcl-cl-cffi-gtk-pango")
3006 (inputs
3007 `(("pango" ,pango)
3008 ("cl-cffi-gtk-glib" ,sbcl-cl-cffi-gtk-glib)
3009 ("cl-cffi-gtk-gobject" ,sbcl-cl-cffi-gtk-gobject)
3010 ("cl-cffi-gtk-cairo" ,sbcl-cl-cffi-gtk-cairo)
3011 ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
3012 (arguments
3013 `(#:asd-file "pango/cl-cffi-gtk-pango.asd"
3014 #:phases
3015 (modify-phases %standard-phases
3016 (add-after 'unpack 'fix-paths
3017 (lambda* (#:key inputs #:allow-other-keys)
3018 (substitute* "pango/pango.init.lisp"
3019 (("libpango" all)
3020 (string-append
3021 (assoc-ref inputs "pango") "/lib/" all)))))
3022 (add-after 'install 'link-source
3023 ;; Since source is particularly heavy (16MiB+), let's reuse it
3024 ;; across the different components of cl-ffi-gtk.
3025 (lambda* (#:key inputs outputs #:allow-other-keys)
3026 (let ((glib-source (string-append (assoc-ref inputs "cl-cffi-gtk-glib")
3027 "/share/common-lisp/sbcl-source/"
3028 "cl-cffi-gtk-glib"))
3029 (out-source (string-append (assoc-ref outputs "out")
3030 "/share/common-lisp/sbcl-source/"
3031 "cl-cffi-gtk-pango")))
3032 (delete-file-recursively out-source)
3033 (symlink glib-source out-source)
3034 #t))))))))
3035
3036 (define-public sbcl-cl-cffi-gtk-gdk-pixbuf
3037 (package
3038 (inherit sbcl-cl-cffi-gtk-boot0)
3039 (name "sbcl-cl-cffi-gtk-gdk-pixbuf")
3040 (inputs
3041 `(("gdk-pixbuf" ,gdk-pixbuf)
3042 ("cl-cffi-gtk-gobject" ,sbcl-cl-cffi-gtk-gobject)
3043 ("cl-cffi-gtk-glib" ,sbcl-cl-cffi-gtk-glib)
3044 ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
3045 (arguments
3046 `(#:asd-file "gdk-pixbuf/cl-cffi-gtk-gdk-pixbuf.asd"
3047 #:phases
3048 (modify-phases %standard-phases
3049 (add-after 'unpack 'fix-paths
3050 (lambda* (#:key inputs #:allow-other-keys)
3051 (substitute* "gdk-pixbuf/gdk-pixbuf.init.lisp"
3052 (("libgdk_pixbuf" all)
3053 (string-append
3054 (assoc-ref inputs "gdk-pixbuf") "/lib/" all)))))
3055 (add-after 'install 'link-source
3056 ;; Since source is particularly heavy (16MiB+), let's reuse it
3057 ;; across the different components of cl-ffi-gtk.
3058 (lambda* (#:key inputs outputs #:allow-other-keys)
3059 (let ((glib-source (string-append (assoc-ref inputs "cl-cffi-gtk-glib")
3060 "/share/common-lisp/sbcl-source/"
3061 "cl-cffi-gtk-glib"))
3062 (out-source (string-append (assoc-ref outputs "out")
3063 "/share/common-lisp/sbcl-source/"
3064 "cl-cffi-gtk-gdk-pixbuf")))
3065 (delete-file-recursively out-source)
3066 (symlink glib-source out-source)
3067 #t))))))))
3068
3069 (define-public sbcl-cl-cffi-gtk-gdk
3070 (package
3071 (inherit sbcl-cl-cffi-gtk-boot0)
3072 (name "sbcl-cl-cffi-gtk-gdk")
3073 (inputs
3074 `(("gtk" ,gtk+)
3075 ("cl-cffi-gtk-glib" ,sbcl-cl-cffi-gtk-glib)
3076 ("cl-cffi-gtk-gobject" ,sbcl-cl-cffi-gtk-gobject)
3077 ("cl-cffi-gtk-gio" ,sbcl-cl-cffi-gtk-gio)
3078 ("cl-cffi-gtk-gdk-pixbuf" ,sbcl-cl-cffi-gtk-gdk-pixbuf)
3079 ("cl-cffi-gtk-cairo" ,sbcl-cl-cffi-gtk-cairo)
3080 ("cl-cffi-gtk-pango" ,sbcl-cl-cffi-gtk-pango)
3081 ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
3082 (arguments
3083 `(#:asd-file "gdk/cl-cffi-gtk-gdk.asd"
3084 #:phases
3085 (modify-phases %standard-phases
3086 (add-after 'unpack 'fix-paths
3087 (lambda* (#:key inputs #:allow-other-keys)
3088 (substitute* "gdk/gdk.init.lisp"
3089 (("libgdk" all)
3090 (string-append
3091 (assoc-ref inputs "gtk") "/lib/" all)))
3092 (substitute* "gdk/gdk.package.lisp"
3093 (("libgtk" all)
3094 (string-append
3095 (assoc-ref inputs "gtk") "/lib/" all)))))
3096 (add-after 'install 'link-source
3097 ;; Since source is particularly heavy (16MiB+), let's reuse it
3098 ;; across the different components of cl-ffi-gtk.
3099 (lambda* (#:key inputs outputs #:allow-other-keys)
3100 (let ((glib-source (string-append (assoc-ref inputs "cl-cffi-gtk-glib")
3101 "/share/common-lisp/sbcl-source/"
3102 "cl-cffi-gtk-glib"))
3103 (out-source (string-append (assoc-ref outputs "out")
3104 "/share/common-lisp/sbcl-source/"
3105 "cl-cffi-gtk-gdk")))
3106 (delete-file-recursively out-source)
3107 (symlink glib-source out-source)
3108 #t))))))))
3109
3110 (define-public sbcl-cl-cffi-gtk
3111 (package
3112 (inherit sbcl-cl-cffi-gtk-boot0)
3113 (name "sbcl-cl-cffi-gtk")
3114 (inputs
3115 `(("cl-cffi-gtk-glib" ,sbcl-cl-cffi-gtk-glib)
3116 ("cl-cffi-gtk-gobject" ,sbcl-cl-cffi-gtk-gobject)
3117 ("cl-cffi-gtk-gio" ,sbcl-cl-cffi-gtk-gio)
3118 ("cl-cffi-gtk-gdk" ,sbcl-cl-cffi-gtk-gdk)
3119 ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
3120 (native-inputs
3121 `(("fiveam" ,sbcl-fiveam)))
3122 (arguments
3123 `(#:asd-file "gtk/cl-cffi-gtk.asd"
3124 #:test-asd-file "test/cl-cffi-gtk-test.asd"
3125 ;; TODO: Tests fail with memory fault.
3126 ;; See https://github.com/Ferada/cl-cffi-gtk/issues/24.
3127 #:tests? #f
3128 #:phases
3129 (modify-phases %standard-phases
3130 (add-after 'install 'link-source
3131 ;; Since source is particularly heavy (16MiB+), let's reuse it
3132 ;; across the different components of cl-ffi-gtk.
3133 (lambda* (#:key inputs outputs #:allow-other-keys)
3134 (let ((glib-source (string-append (assoc-ref inputs "cl-cffi-gtk-glib")
3135 "/share/common-lisp/sbcl-source/"
3136 "cl-cffi-gtk-glib"))
3137 (out-source (string-append (assoc-ref outputs "out")
3138 "/share/common-lisp/sbcl-source/"
3139 "cl-cffi-gtk")))
3140 (delete-file-recursively out-source)
3141 (symlink glib-source out-source)
3142 #t))))))))
3143
3144 (define-public cl-cffi-gtk
3145 (sbcl-package->cl-source-package sbcl-cl-cffi-gtk))
3146
3147 (define-public sbcl-cl-webkit
3148 (let ((commit "f93cb9697e8813068795fe4dc39ac950d814102d"))
3149 (package
3150 (name "sbcl-cl-webkit")
3151 (version (git-version "2.4" "3" commit))
3152 (source
3153 (origin
3154 (method git-fetch)
3155 (uri (git-reference
3156 (url "https://github.com/joachifm/cl-webkit")
3157 (commit commit)))
3158 (file-name (git-file-name "cl-webkit" version))
3159 (sha256
3160 (base32
3161 "1sjcw08kjpd5h83sms7zcq2nymddjygk9hm2rpgzrl524an9ziwc"))))
3162 (build-system asdf-build-system/sbcl)
3163 (inputs
3164 `(("cffi" ,sbcl-cffi)
3165 ("cl-cffi-gtk" ,sbcl-cl-cffi-gtk)
3166 ("webkitgtk" ,webkitgtk)))
3167 (arguments
3168 `(#:asd-file "webkit2/cl-webkit2.asd"
3169 #:asd-system-name "cl-webkit2"
3170 #:phases
3171 (modify-phases %standard-phases
3172 (add-after 'unpack 'fix-paths
3173 (lambda* (#:key inputs #:allow-other-keys)
3174 (substitute* "webkit2/webkit2.init.lisp"
3175 (("libwebkit2gtk" all)
3176 (string-append
3177 (assoc-ref inputs "webkitgtk") "/lib/" all))))))))
3178 (home-page "https://github.com/joachifm/cl-webkit")
3179 (synopsis "Binding to WebKitGTK+ for Common Lisp")
3180 (description
3181 "@command{cl-webkit} is a binding to WebKitGTK+ for Common Lisp,
3182 currently targeting WebKit version 2. The WebKitGTK+ library adds web
3183 browsing capabilities to an application, leveraging the full power of the
3184 WebKit browsing engine.")
3185 (license license:expat))))
3186
3187 (define-public cl-webkit
3188 (sbcl-package->cl-source-package sbcl-cl-webkit))
3189
3190 (define-public sbcl-lparallel
3191 (package
3192 (name "sbcl-lparallel")
3193 (version "2.8.4")
3194 (source
3195 (origin
3196 (method git-fetch)
3197 (uri (git-reference
3198 (url "https://github.com/lmj/lparallel/")
3199 (commit (string-append "lparallel-" version))))
3200 (file-name (git-file-name "lparallel" version))
3201 (sha256
3202 (base32
3203 "0g0aylrbbrqsz0ahmwhvnk4cmc2931fllbpcfgzsprwnqqd7vwq9"))))
3204 (build-system asdf-build-system/sbcl)
3205 (inputs
3206 `(("alexandria" ,sbcl-alexandria)
3207 ("bordeaux-threads" ,sbcl-bordeaux-threads)
3208 ("trivial-garbage" ,sbcl-trivial-garbage)))
3209 (home-page "https://lparallel.org/")
3210 (synopsis "Parallelism for Common Lisp")
3211 (description
3212 "@command{lparallel} is a library for parallel programming in Common
3213 Lisp, featuring:
3214
3215 @itemize
3216 @item a simple model of task submission with receiving queue,
3217 @item constructs for expressing fine-grained parallelism,
3218 @item asynchronous condition handling across thread boundaries,
3219 @item parallel versions of map, reduce, sort, remove, and many others,
3220 @item promises, futures, and delayed evaluation constructs,
3221 @item computation trees for parallelizing interconnected tasks,
3222 @item bounded and unbounded FIFO queues,
3223 @item high and low priority tasks,
3224 @item task killing by category,
3225 @item integrated timeouts.
3226 @end itemize\n")
3227 (license license:expat)))
3228
3229 (define-public cl-lparallel
3230 (sbcl-package->cl-source-package sbcl-lparallel))
3231
3232 (define-public ecl-lparallel
3233 (sbcl-package->ecl-package sbcl-lparallel))
3234
3235 (define-public sbcl-cl-markup
3236 (let ((commit "e0eb7debf4bdff98d1f49d0f811321a6a637b390"))
3237 (package
3238 (name "sbcl-cl-markup")
3239 (version (git-version "0.1" "1" commit))
3240 (source
3241 (origin
3242 (method git-fetch)
3243 (uri (git-reference
3244 (url "https://github.com/arielnetworks/cl-markup/")
3245 (commit commit)))
3246 (file-name (git-file-name "cl-markup" version))
3247 (sha256
3248 (base32
3249 "10l6k45971dl13fkdmva7zc6i453lmq9j4xax2ci6pjzlc6xjhp7"))))
3250 (build-system asdf-build-system/sbcl)
3251 (home-page "https://github.com/arielnetworks/cl-markup/")
3252 (synopsis "Markup generation library for Common Lisp")
3253 (description
3254 "A modern markup generation library for Common Lisp that features:
3255
3256 @itemize
3257 @item Fast (even faster through compiling the code)
3258 @item Safety
3259 @item Support for multiple document types (markup, xml, html, html5, xhtml)
3260 @item Output with doctype
3261 @item Direct output to stream
3262 @end itemize\n")
3263 (license license:lgpl3+))))
3264
3265 (define-public cl-markup
3266 (sbcl-package->cl-source-package sbcl-cl-markup))
3267
3268 (define-public ecl-cl-markup
3269 (sbcl-package->ecl-package sbcl-cl-markup))
3270
3271 (define-public sbcl-cl-css
3272 (let ((commit "8fe654c8f0cf95b300718101cce4feb517f78e2f"))
3273 (package
3274 (name "sbcl-cl-css")
3275 (version (git-version "0.1" "1" commit))
3276 (source
3277 (origin
3278 (method git-fetch)
3279 (uri (git-reference
3280 (url "https://github.com/inaimathi/cl-css/")
3281 (commit commit)))
3282 (file-name (git-file-name "cl-css" version))
3283 (sha256
3284 (base32
3285 "1lc42zi2sw11fl2589sc19nr5sd2p0wy7wgvgwaggxa5f3ajhsmd"))))
3286 (build-system asdf-build-system/sbcl)
3287 (home-page "https://github.com/inaimathi/cl-css/")
3288 (synopsis "Non-validating, inline CSS generator for Common Lisp")
3289 (description
3290 "This is a dead-simple, non validating, inline CSS generator for Common
3291 Lisp. Its goals are axiomatic syntax, simple implementation to support
3292 portability, and boilerplate reduction in CSS.")
3293 (license license:expat))))
3294
3295 (define-public cl-css
3296 (sbcl-package->cl-source-package sbcl-cl-css))
3297
3298 (define-public ecl-cl-css
3299 (sbcl-package->ecl-package sbcl-cl-css))
3300
3301 (define-public sbcl-portable-threads
3302 (let ((commit "c0e61a1faeb0583c80fd3f20b16cc4c555226920"))
3303 (package
3304 (name "sbcl-portable-threads")
3305 (version (git-version "2.3" "1" commit))
3306 (source
3307 (origin
3308 (method git-fetch)
3309 (uri (git-reference
3310 (url "https://github.com/binghe/portable-threads/")
3311 (commit commit)))
3312 (file-name (git-file-name "portable-threads" version))
3313 (sha256
3314 (base32
3315 "03fmxyarc0xf4kavwkfa0a2spkyfrz6hbgbi9y4q7ny5aykdyfaq"))))
3316 (build-system asdf-build-system/sbcl)
3317 (arguments
3318 `(;; Tests seem broken.
3319 #:tests? #f))
3320 (home-page "https://github.com/binghe/portable-threads")
3321 (synopsis "Portable threads (and scheduled and periodic functions) API for Common Lisp")
3322 (description
3323 "Portable Threads (and Scheduled and Periodic Functions) API for Common
3324 Lisp (from GBBopen project).")
3325 (license license:asl2.0))))
3326
3327 (define-public cl-portable-threads
3328 (sbcl-package->cl-source-package sbcl-portable-threads))
3329
3330 (define-public ecl-portable-threada
3331 (sbcl-package->ecl-package sbcl-portable-threads))
3332
3333 (define sbcl-usocket-boot0
3334 ;; usocket's test rely on usocket-server which depends on usocket itself.
3335 ;; We break this cyclic dependency with -boot0 that packages usocket.
3336 (package
3337 (name "sbcl-usocket-boot0")
3338 (version "0.8.3")
3339 (source
3340 (origin
3341 (method git-fetch)
3342 (uri (git-reference
3343 (url "https://github.com/usocket/usocket/")
3344 (commit (string-append "v" version))))
3345 (file-name (git-file-name "usocket" version))
3346 (sha256
3347 (base32
3348 "0x746wr2324l6bn7skqzgkzcbj5kd0zp2ck0c8rldrw0rzabg826"))))
3349 (build-system asdf-build-system/sbcl)
3350 (inputs
3351 `(("split-sequence" ,sbcl-split-sequence)))
3352 (arguments
3353 `(#:tests? #f
3354 #:asd-system-name "usocket"))
3355 (home-page "https://common-lisp.net/project/usocket/")
3356 (synopsis "Universal socket library for Common Lisp (server side)")
3357 (description
3358 "This library strives to provide a portable TCP/IP and UDP/IP socket
3359 interface for as many Common Lisp implementations as possible, while keeping
3360 the abstraction and portability layer as thin as possible.")
3361 (license license:expat)))
3362
3363 (define-public sbcl-usocket-server
3364 (package
3365 (inherit sbcl-usocket-boot0)
3366 (name "sbcl-usocket-server")
3367 (inputs
3368 `(("bordeaux-threads" ,sbcl-bordeaux-threads)
3369 ("usocket" ,sbcl-usocket-boot0)))
3370 (arguments
3371 '(#:asd-system-name "usocket-server"))
3372 (synopsis "Universal socket library for Common Lisp (server side)")))
3373
3374 (define-public cl-usocket-server
3375 (sbcl-package->cl-source-package sbcl-usocket-server))
3376
3377 (define-public ecl-socket-server
3378 (sbcl-package->ecl-package sbcl-usocket-server))
3379
3380 (define-public sbcl-usocket
3381 (package
3382 (inherit sbcl-usocket-boot0)
3383 (name "sbcl-usocket")
3384 (arguments
3385 ;; FIXME: Tests need network access?
3386 `(#:tests? #f))
3387 (native-inputs
3388 ;; Testing only.
3389 `(("usocket-server" ,sbcl-usocket-server)
3390 ("rt" ,sbcl-rt)))))
3391
3392 (define-public cl-usocket
3393 (sbcl-package->cl-source-package sbcl-usocket))
3394
3395 (define-public ecl-usocket
3396 (sbcl-package->ecl-package sbcl-usocket))
3397
3398 (define-public sbcl-s-xml
3399 (package
3400 (name "sbcl-s-xml")
3401 (version "3")
3402 (source
3403 (origin
3404 (method url-fetch)
3405 (uri "https://common-lisp.net/project/s-xml/s-xml.tgz")
3406 (sha256
3407 (base32
3408 "061qcr0dzshsa38s5ma4ay924cwak2nq9gy59dw6v9p0qb58nzjf"))))
3409 (build-system asdf-build-system/sbcl)
3410 (home-page "https://common-lisp.net/project/s-xml/")
3411 (synopsis "Simple XML parser implemented in Common Lisp")
3412 (description
3413 "S-XML is a simple XML parser implemented in Common Lisp. This XML
3414 parser implementation has the following features:
3415
3416 @itemize
3417 @item It works (handling many common XML usages).
3418 @item It is very small (the core is about 700 lines of code, including
3419 comments and whitespace).
3420 @item It has a core API that is simple, efficient and pure functional, much
3421 like that from SSAX (see also http://ssax.sourceforge.net).
3422 @item It supports different DOM models: an XSML-based one, an LXML-based one
3423 and a classic xml-element struct based one.
3424 @item It is reasonably time and space efficient (internally avoiding garbage
3425 generatation as much as possible).
3426 @item It does support CDATA.
3427 @item It should support the same character sets as your Common Lisp
3428 implementation.
3429 @item It does support XML name spaces.
3430 @end itemize
3431
3432 This XML parser implementation has the following limitations:
3433
3434 @itemize
3435 @item It does not support any special tags (like processing instructions).
3436 @item It is not validating, even skips DTD's all together.
3437 @end itemize\n")
3438 (license license:lgpl3+)))
3439
3440 (define-public cl-s-xml
3441 (sbcl-package->cl-source-package sbcl-s-xml))
3442
3443 (define-public ecl-s-xml
3444 (sbcl-package->ecl-package sbcl-s-xml))
3445
3446 (define-public sbcl-s-xml-rpc
3447 (package
3448 (name "sbcl-s-xml-rpc")
3449 (version "7")
3450 (source
3451 (origin
3452 (method url-fetch)
3453 (uri "https://common-lisp.net/project/s-xml-rpc/s-xml-rpc.tgz")
3454 (sha256
3455 (base32
3456 "02z7k163d51v0pzk8mn1xb6h5s6x64gjqkslhwm3a5x26k2gfs11"))))
3457 (build-system asdf-build-system/sbcl)
3458 (inputs
3459 `(("s-xml" ,sbcl-s-xml)))
3460 (home-page "https://common-lisp.net/project/s-xml-rpc/")
3461 (synopsis "Implementation of XML-RPC in Common Lisp for both client and server")
3462 (description
3463 "S-XML-RPC is an implementation of XML-RPC in Common Lisp for both
3464 client and server.")
3465 (license license:lgpl3+)))
3466
3467 (define-public cl-s-xml-rpc
3468 (sbcl-package->cl-source-package sbcl-s-xml-rpc))
3469
3470 (define-public ecl-s-xml-rpc
3471 (sbcl-package->ecl-package sbcl-s-xml-rpc))
3472
3473 (define-public sbcl-trivial-clipboard
3474 (let ((commit "5af3415d1484e6d69a1b5c178f24680d9fd01796"))
3475 (package
3476 (name "sbcl-trivial-clipboard")
3477 (version (git-version "0.0.0.0" "2" commit))
3478 (source
3479 (origin
3480 (method git-fetch)
3481 (uri (git-reference
3482 (url "https://github.com/snmsts/trivial-clipboard")
3483 (commit commit)))
3484 (file-name (git-file-name "trivial-clipboard" version))
3485 (sha256
3486 (base32
3487 "1gb515z5yq6h5548pb1fwhmb0hhq1ssyb78pvxh4alq799xipxs9"))))
3488 (build-system asdf-build-system/sbcl)
3489 (inputs
3490 `(("xclip" ,xclip)))
3491 (native-inputs
3492 `(("fiveam" ,sbcl-fiveam)))
3493 (arguments
3494 `(#:phases
3495 (modify-phases %standard-phases
3496 (add-after 'unpack 'fix-paths
3497 (lambda* (#:key inputs #:allow-other-keys)
3498 (substitute* "src/text.lisp"
3499 (("\\(executable-find \"xclip\"\\)")
3500 (string-append "(executable-find \""
3501 (assoc-ref inputs "xclip")
3502 "/bin/xclip\")"))))))))
3503 (home-page "https://github.com/snmsts/trivial-clipboard")
3504 (synopsis "Access system clipboard in Common Lisp")
3505 (description
3506 "@command{trivial-clipboard} gives access to the system clipboard.")
3507 (license license:expat))))
3508
3509 (define-public cl-trivial-clipboard
3510 (sbcl-package->cl-source-package sbcl-trivial-clipboard))
3511
3512 (define-public ecl-trivial-clipboard
3513 (sbcl-package->ecl-package sbcl-trivial-clipboard))
3514
3515 (define-public sbcl-trivial-backtrace
3516 (let ((commit "ca81c011b86424a381a7563cea3b924f24e6fbeb")
3517 (revision "1"))
3518 (package
3519 (name "sbcl-trivial-backtrace")
3520 (version (git-version "0.0.0" revision commit))
3521 (source
3522 (origin
3523 (method git-fetch)
3524 (uri (git-reference
3525 (url "https://github.com/gwkkwg/trivial-backtrace.git")
3526 (commit commit)))
3527 (file-name (git-file-name "trivial-backtrace" version))
3528 (sha256
3529 (base32 "10p41p43skj6cimdg8skjy7372s8v2xpkg8djjy0l8rm45i654k1"))))
3530 (build-system asdf-build-system/sbcl)
3531 (inputs
3532 `(("sbcl-lift" ,sbcl-lift)))
3533 (arguments
3534 `(#:phases
3535 (modify-phases %standard-phases
3536 (add-after 'check 'delete-test-results
3537 (lambda* (#:key outputs #:allow-other-keys)
3538 (let ((test-results (string-append (assoc-ref outputs "out")
3539 "/share/common-lisp/"
3540 (%lisp-type) "-source"
3541 "/trivial-backtrace"
3542 "/test-results")))
3543 (when (file-exists? test-results)
3544 (delete-file-recursively test-results)))
3545 #t)))))
3546 (home-page "https://common-lisp.net/project/trivial-backtrace/")
3547 (synopsis "Portable simple API to work with backtraces in Common Lisp")
3548 (description
3549 "On of the many things that didn't quite get into the Common Lisp
3550 standard was how to get a Lisp to output its call stack when something has
3551 gone wrong. As such, each Lisp has developed its own notion of what to
3552 display, how to display it, and what sort of arguments can be used to
3553 customize it. @code{trivial-backtrace} is a simple solution to generating a
3554 backtrace portably.")
3555 (license license:expat))))
3556
3557 (define-public cl-trivial-backtrace
3558 (sbcl-package->cl-source-package sbcl-trivial-backtrace))
3559
3560 (define-public sbcl-rfc2388
3561 (let ((commit "591bcf7e77f2c222c43953a80f8c297751dc0c4e")
3562 (revision "1"))
3563 (package
3564 (name "sbcl-rfc2388")
3565 (version (git-version "0.0.0" revision commit))
3566 (source
3567 (origin
3568 (method git-fetch)
3569 (uri (git-reference
3570 (url "https://github.com/jdz/rfc2388.git")
3571 (commit commit)))
3572 (file-name (git-file-name "rfc2388" version))
3573 (sha256
3574 (base32 "0phh5n3clhl9ji8jaxrajidn22d3f0aq87mlbfkkxlnx2pnw694k"))))
3575 (build-system asdf-build-system/sbcl)
3576 (home-page "https://github.com/jdz/rfc2388/")
3577 (synopsis "An implementation of RFC 2388 in Common Lisp")
3578 (description
3579 "This package contains an implementation of RFC 2388, which is used to
3580 process form data posted with HTTP POST method using enctype
3581 \"multipart/form-data\".")
3582 (license license:bsd-2))))
3583
3584 (define-public cl-rfc2388
3585 (sbcl-package->cl-source-package sbcl-rfc2388))
3586
3587 (define-public sbcl-md5
3588 (package
3589 (name "sbcl-md5")
3590 (version "2.0.4")
3591 (source
3592 (origin
3593 (method url-fetch)
3594 (uri (string-append
3595 "https://github.com/pmai/md5/archive/release-" version ".tar.gz"))
3596 (sha256
3597 (base32 "19yl9n0pjdz5gw4qi711lka97xcd9f81ylg434hk7jwn9f2s6w11"))))
3598 (build-system asdf-build-system/sbcl)
3599 (home-page "https://github.com/pmai/md5")
3600 (synopsis
3601 "Common Lisp implementation of the MD5 Message-Digest Algorithm (RFC 1321)")
3602 (description
3603 "This package implements The MD5 Message-Digest Algorithm, as defined in
3604 RFC 1321 by R. Rivest, published April 1992.")
3605 (license license:public-domain)))
3606
3607 (define-public cl-md5
3608 (sbcl-package->cl-source-package sbcl-md5))
3609
3610 (define-public sbcl-cl+ssl
3611 (let ((commit "701e645081e6533a3f0f0b3ac86389d6f506c4b5")
3612 (revision "1"))
3613 (package
3614 (name "sbcl-cl+ssl")
3615 (version (git-version "0.0.0" revision commit))
3616 (source
3617 (origin
3618 (method git-fetch)
3619 (uri (git-reference
3620 (url "https://github.com/cl-plus-ssl/cl-plus-ssl.git")
3621 (commit commit)))
3622 (file-name (git-file-name "cl+ssl" version))
3623 (sha256
3624 (base32 "0nfl275nwhff3m25872y388cydz14kqb6zbwywa6nj85r9k8bgs0"))))
3625 (build-system asdf-build-system/sbcl)
3626 (arguments
3627 '(#:phases
3628 (modify-phases %standard-phases
3629 (add-after 'unpack 'fix-paths
3630 (lambda* (#:key inputs #:allow-other-keys)
3631 (substitute* "src/reload.lisp"
3632 (("libssl.so" all)
3633 (string-append
3634 (assoc-ref inputs "openssl") "/lib/" all))))))))
3635 (inputs
3636 `(("openssl" ,openssl)
3637 ("sbcl-cffi" ,sbcl-cffi)
3638 ("sbcl-trivial-gray-streams" ,sbcl-trivial-gray-streams)
3639 ("sbcl-flexi-streams" ,sbcl-flexi-streams)
3640 ("sbcl-bordeaux-threads" ,sbcl-bordeaux-threads)
3641 ("sbcl-trivial-garbage" ,sbcl-trivial-garbage)
3642 ("sbcl-alexandria" ,sbcl-alexandria)
3643 ("sbcl-trivial-features" ,sbcl-trivial-features)))
3644 (home-page "https://common-lisp.net/project/cl-plus-ssl/")
3645 (synopsis "Common Lisp bindings to OpenSSL")
3646 (description
3647 "This library is a fork of SSL-CMUCL. The original SSL-CMUCL source
3648 code was written by Eric Marsden and includes contributions by Jochen Schmidt.
3649 Development into CL+SSL was done by David Lichteblau.")
3650 (license license:expat))))
3651
3652 (define-public cl-cl+ssl
3653 (sbcl-package->cl-source-package sbcl-cl+ssl))
3654
3655 (define-public sbcl-kmrcl
3656 (let ((version "1.109.0")
3657 (commit "5260068b2eb735af6796740c2db4955afac21636")
3658 (revision "1"))
3659 (package
3660 (name "sbcl-kmrcl")
3661 (version (git-version version revision commit))
3662 (source
3663 (origin
3664 (method git-fetch)
3665 (uri (git-reference
3666 (url "http://git.kpe.io/kmrcl.git/")
3667 (commit commit)))
3668 (file-name (git-file-name name version))
3669 (sha256
3670 (base32 "1va7xjgzfv674bpsli674i7zj3f7wg5kxic41kz18r6hh4n52dfv"))))
3671 (build-system asdf-build-system/sbcl)
3672 (arguments
3673 ;; Tests fail with: :FORCE and :FORCE-NOT arguments not allowed in a
3674 ;; nested call to ASDF/OPERATE:OPERATE unless identically to toplevel
3675 '(#:tests? #f))
3676 (inputs
3677 `(("sbcl-rt" ,sbcl-rt)))
3678 (home-page "http://files.kpe.io/kmrcl/")
3679 (synopsis "General utilities for Common Lisp programs")
3680 (description
3681 "KMRCL is a collection of utilities used by a number of Kevin
3682 Rosenberg's CL packages.")
3683 (license license:llgpl))))
3684
3685 (define-public cl-kmrcl
3686 (sbcl-package->cl-source-package sbcl-kmrcl))
3687
3688 (define-public sbcl-cl-base64
3689 (package
3690 (name "sbcl-cl-base64")
3691 (version "3.3.4")
3692 (source
3693 (origin
3694 (method url-fetch)
3695 (uri (string-append "http://files.kpe.io/cl-base64/cl-base64-"
3696 version ".tar.gz"))
3697 (sha256
3698 (base32 "0pl4zwn5bf18dm8fh1kn1yshaa6kpmfrjyb33z9mq4raqmj3xpv2"))))
3699 (build-system asdf-build-system/sbcl)
3700 (arguments
3701 ;; Tests fail with: :FORCE and :FORCE-NOT arguments not allowed
3702 ;; in a nested call to ASDF/OPERATE:OPERATE unless identically
3703 ;; to toplevel
3704 '(#:tests? #f))
3705 (inputs
3706 `(("sbcl-ptester" ,sbcl-ptester)
3707 ("sbcl-kmrcl" ,sbcl-kmrcl)))
3708 (home-page "http://files.kpe.io/cl-base64/")
3709 (synopsis
3710 "Common Lisp package to encode and decode base64 with URI support")
3711 (description
3712 "This package provides highly optimized base64 encoding and decoding.
3713 Besides conversion to and from strings, integer conversions are supported.
3714 Encoding with Uniform Resource Identifiers is supported by using a modified
3715 encoding table that uses only URI-compatible characters.")
3716 (license license:bsd-3)))
3717
3718 (define-public cl-base64
3719 (sbcl-package->cl-source-package sbcl-cl-base64))
3720
3721 (define-public sbcl-chunga
3722 (package
3723 (name "sbcl-chunga")
3724 (version "1.1.7")
3725 (source
3726 (origin
3727 (method git-fetch)
3728 (uri (git-reference
3729 (url "https://github.com/edicl/chunga.git")
3730 (commit (string-append "v" version))))
3731 (file-name (git-file-name name version))
3732 (sha256
3733 (base32 "0jzn3nyb3f22gm983rfk99smqs3mhb9ivjmasvhq9qla5cl9pyhd"))))
3734 (build-system asdf-build-system/sbcl)
3735 (inputs
3736 `(("sbcl-trivial-gray-streams" ,sbcl-trivial-gray-streams)))
3737 (home-page "https://edicl.github.io/chunga/")
3738 (synopsis "Portable chunked streams for Common Lisp")
3739 (description
3740 "Chunga implements streams capable of chunked encoding on demand as
3741 defined in RFC 2616.")
3742 (license license:bsd-2)))
3743
3744 (define-public cl-chunga
3745 (sbcl-package->cl-source-package sbcl-chunga))
3746
3747 (define-public sbcl-cl-who
3748 (let ((version "1.1.4")
3749 (commit "2c08caa4bafba720409af9171feeba3f32e86d32")
3750 (revision "1"))
3751 (package
3752 (name "sbcl-cl-who")
3753 (version (git-version version revision commit))
3754 (source
3755 (origin
3756 (method git-fetch)
3757 (uri (git-reference
3758 (url "https://github.com/edicl/cl-who.git")
3759 (commit commit)))
3760 (file-name (git-file-name name version))
3761 (sha256
3762 (base32
3763 "0yjb6sr3yazm288m318kqvj9xk8rm9n1lpimgf65ymqv0i5agxsb"))))
3764 (build-system asdf-build-system/sbcl)
3765 (native-inputs
3766 `(("sbcl-flexi-streams" ,sbcl-flexi-streams)))
3767 (home-page "https://edicl.github.io/cl-who/")
3768 (synopsis "Yet another Lisp markup language")
3769 (description
3770 "There are plenty of Lisp Markup Languages out there - every Lisp
3771 programmer seems to write at least one during his career - and CL-WHO (where
3772 WHO means \"with-html-output\" for want of a better acronym) is probably just
3773 as good or bad as the next one.")
3774 (license license:bsd-2))))
3775
3776 (define-public cl-cl-who
3777 (sbcl-package->cl-source-package sbcl-cl-who))
3778
3779 (define-public sbcl-chipz
3780 (let ((version "0.8")
3781 (commit "75dfbc660a5a28161c57f115adf74c8a926bfc4d")
3782 (revision "1"))
3783 (package
3784 (name "sbcl-chipz")
3785 (version (git-version version revision commit))
3786 (source
3787 (origin
3788 (method git-fetch)
3789 (uri (git-reference
3790 (url "https://github.com/froydnj/chipz.git")
3791 (commit commit)))
3792 (file-name (git-file-name name version))
3793 (sha256
3794 (base32
3795 "0plx4rs39zbs4gjk77h4a2q11zpy75fh9v8hnxrvsf8fnakajhwg"))))
3796 (build-system asdf-build-system/sbcl)
3797 (native-inputs
3798 `(("sbcl-flexi-streams" ,sbcl-flexi-streams)))
3799 (home-page "http://method-combination.net/lisp/chipz/")
3800 (synopsis
3801 "Common Lisp library for decompressing deflate, zlib, gzip, and bzip2
3802 data")
3803 (description
3804 "DEFLATE data, defined in RFC1951, forms the core of popular
3805 compression formats such as zlib (RFC 1950) and gzip (RFC 1952). As such,
3806 Chipz also provides for decompressing data in those formats as well. BZIP2 is
3807 the format used by the popular compression tool bzip2.")
3808 ;; The author describes it as "MIT-like"
3809 (license license:expat))))
3810
3811 (define-public cl-chipz
3812 (sbcl-package->cl-source-package sbcl-chipz))
3813
3814 (define-public sbcl-drakma
3815 (package
3816 (name "sbcl-drakma")
3817 (version "2.0.7")
3818 (source
3819 (origin
3820 (method git-fetch)
3821 (uri (git-reference
3822 (url "https://github.com/edicl/drakma.git")
3823 (commit (string-append "v" version))))
3824 (file-name (git-file-name name version))
3825 (sha256
3826 (base32
3827 "1441idnyif9xzx3ln1p3fg36k2v9h4wasjqrzc8y52j61420qpci"))))
3828 (build-system asdf-build-system/sbcl)
3829 (inputs
3830 `(("sbcl-puri" ,sbcl-puri)
3831 ("sbcl-cl-base64" ,sbcl-cl-base64)
3832 ("sbcl-chunga" ,sbcl-chunga)
3833 ("sbcl-flexi-streams" ,sbcl-flexi-streams)
3834 ("sbcl-cl-ppcre" ,sbcl-cl-ppcre)
3835 ("sbcl-chipz" ,sbcl-chipz)
3836 ("sbcl-usocket" ,sbcl-usocket)
3837 ("sbcl-cl+ssl" ,sbcl-cl+ssl)))
3838 (native-inputs
3839 `(("sbcl-fiveam" ,sbcl-fiveam)))
3840 (home-page "https://edicl.github.io/drakma/")
3841 (synopsis "HTTP client written in Common Lisp")
3842 (description
3843 "Drakma is a full-featured HTTP client implemented in Common Lisp. It
3844 knows how to handle HTTP/1.1 chunking, persistent connections, re-usable
3845 sockets, SSL, continuable uploads, file uploads, cookies, and more.")
3846 (license license:bsd-2)))
3847
3848 (define-public cl-drakma
3849 (sbcl-package->cl-source-package sbcl-drakma))
3850
3851 (define-public ecl-drakma
3852 (sbcl-package->ecl-package sbcl-drakma))
3853
3854 (define-public sbcl-hunchentoot
3855 (package
3856 (name "sbcl-hunchentoot")
3857 (version "1.2.38")
3858 (source
3859 (origin
3860 (method git-fetch)
3861 (uri (git-reference
3862 (url "https://github.com/edicl/hunchentoot.git")
3863 (commit (string-append "v" version))))
3864 (file-name (git-file-name "hunchentoot" version))
3865 (sha256
3866 (base32 "1anpcad7w045m4rsjs1f3xdhjwx5cppq1h0vlb3q7dz81fi3i6yq"))))
3867 (build-system asdf-build-system/sbcl)
3868 (native-inputs
3869 `(("sbcl-cl-who" ,sbcl-cl-who)
3870 ("sbcl-drakma" ,sbcl-drakma)))
3871 (inputs
3872 `(("sbcl-chunga" ,sbcl-chunga)
3873 ("sbcl-cl-base64" ,sbcl-cl-base64)
3874 ("sbcl-cl-fad" ,sbcl-cl-fad)
3875 ("sbcl-cl-ppcre" ,sbcl-cl-ppcre)
3876 ("sbcl-flexi-streams" ,sbcl-flexi-streams)
3877 ("sbcl-cl+ssl" ,sbcl-cl+ssl)
3878 ("sbcl-md5" ,sbcl-md5)
3879 ("sbcl-rfc2388" ,sbcl-rfc2388)
3880 ("sbcl-trivial-backtrace" ,sbcl-trivial-backtrace)
3881 ("sbcl-usocket" ,sbcl-usocket)))
3882 (home-page "https://edicl.github.io/hunchentoot/")
3883 (synopsis "Web server written in Common Lisp")
3884 (description
3885 "Hunchentoot is a web server written in Common Lisp and at the same
3886 time a toolkit for building dynamic websites. As a stand-alone web server,
3887 Hunchentoot is capable of HTTP/1.1 chunking (both directions), persistent
3888 connections (keep-alive), and SSL.")
3889 (license license:bsd-2)))
3890
3891 (define-public cl-hunchentoot
3892 (sbcl-package->cl-source-package sbcl-hunchentoot))
3893
3894 (define-public sbcl-trivial-types
3895 (package
3896 (name "sbcl-trivial-types")
3897 (version "0.0.1")
3898 (source
3899 (origin
3900 (method git-fetch)
3901 (uri (git-reference
3902 (url "https://github.com/m2ym/trivial-types.git")
3903 (commit "ee869f2b7504d8aa9a74403641a5b42b16f47d88")))
3904 (file-name (git-file-name name version))
3905 (sha256
3906 (base32 "1s4cp9bdlbn8447q7w7f1wkgwrbvfzp20mgs307l5pxvdslin341"))))
3907 (build-system asdf-build-system/sbcl)
3908 (home-page "https://github.com/m2ym/trivial-types")
3909 (synopsis "Trivial type definitions for Common Lisp")
3910 (description
3911 "TRIVIAL-TYPES provides missing but important type definitions such as
3912 PROPER-LIST, ASSOCIATION-LIST, PROPERTY-LIST and TUPLE.")
3913 (license license:llgpl)))
3914
3915 (define-public cl-trivial-types
3916 (sbcl-package->cl-source-package sbcl-trivial-types))
3917
3918 (define-public sbcl-cl-syntax
3919 (package
3920 (name "sbcl-cl-syntax")
3921 (version "0.0.3")
3922 (source
3923 (origin
3924 (method git-fetch)
3925 (uri (git-reference
3926 (url "https://github.com/m2ym/cl-syntax.git")
3927 (commit "03f0c329bbd55b8622c37161e6278366525e2ccc")))
3928 (file-name (git-file-name "cl-syntax" version))
3929 (sha256
3930 (base32 "17ran8xp77asagl31xv8w819wafh6whwfc9p6dgx22ca537gyl4y"))))
3931 (build-system asdf-build-system/sbcl)
3932 (arguments
3933 '(#:asd-file "cl-syntax.asd"
3934 #:asd-system-name "cl-syntax"))
3935 (inputs `(("sbcl-trivial-types" ,sbcl-trivial-types)
3936 ("sbcl-named-readtables" ,sbcl-named-readtables)))
3937 (home-page "https://github.com/m2ym/cl-syntax")
3938 (synopsis "Reader Syntax Coventions for Common Lisp and SLIME")
3939 (description
3940 "CL-SYNTAX provides Reader Syntax Coventions for Common Lisp and SLIME.")
3941 (license license:llgpl)))
3942
3943 (define-public cl-syntax
3944 (sbcl-package->cl-source-package sbcl-cl-syntax))
3945
3946 (define-public sbcl-cl-annot
3947 (let ((commit "c99e69c15d935eabc671b483349a406e0da9518d")
3948 (revision "1"))
3949 (package
3950 (name "sbcl-cl-annot")
3951 (version (git-version "0.0.0" revision commit))
3952 (source
3953 (origin
3954 (method git-fetch)
3955 (uri (git-reference
3956 (url "https://github.com/m2ym/cl-annot.git")
3957 (commit commit)))
3958 (file-name (git-file-name name version))
3959 (sha256
3960 (base32 "1wq1gs9jjd5m6iwrv06c2d7i5dvqsfjcljgbspfbc93cg5xahk4n"))))
3961 (build-system asdf-build-system/sbcl)
3962 (arguments
3963 '(#:asd-file "cl-annot.asd"
3964 #:asd-system-name "cl-annot"))
3965 (inputs
3966 `(("sbcl-alexandria" ,sbcl-alexandria)))
3967 (home-page "https://github.com/m2ym/cl-annot")
3968 (synopsis "Python-like Annotation Syntax for Common Lisp.")
3969 (description
3970 "@code{cl-annot} is an general annotation library for Common Lisp.")
3971 (license license:llgpl))))
3972
3973 (define-public cl-annot
3974 (sbcl-package->cl-source-package sbcl-cl-annot))
3975
3976 (define-public sbcl-cl-syntax-annot
3977 (package
3978 (name "sbcl-cl-syntax-annot")
3979 (version "0.0.3")
3980 (source
3981 (origin
3982 (method git-fetch)
3983 (uri (git-reference
3984 (url "https://github.com/m2ym/cl-syntax.git")
3985 (commit "03f0c329bbd55b8622c37161e6278366525e2ccc")))
3986 (file-name (git-file-name name version))
3987 (sha256
3988 (base32 "17ran8xp77asagl31xv8w819wafh6whwfc9p6dgx22ca537gyl4y"))))
3989 (build-system asdf-build-system/sbcl)
3990 (arguments
3991 '(#:asd-file "cl-syntax-annot.asd"
3992 #:asd-system-name "cl-syntax-annot"))
3993 (inputs
3994 `(("sbcl-cl-syntax" ,sbcl-cl-syntax)
3995 ("sbcl-cl-annot" ,sbcl-cl-annot)))
3996 (home-page "https://github.com/m2ym/cl-syntax")
3997 (synopsis "Reader Syntax Coventions for Common Lisp and SLIME")
3998 (description
3999 "CL-SYNTAX provides Reader Syntax Coventions for Common Lisp and
4000 SLIME.")
4001 (license license:llgpl)))
4002
4003 (define-public cl-syntax-annot
4004 (sbcl-package->cl-source-package sbcl-cl-syntax-annot))
4005
4006 (define-public sbcl-cl-utilities
4007 (let ((commit "dce2d2f6387091ea90357a130fa6d13a6776884b")
4008 (revision "1"))
4009 (package
4010 (name "sbcl-cl-utilities")
4011 (version (git-version "0.0.0" revision commit))
4012 (source
4013 (origin
4014 (method url-fetch)
4015 (uri
4016 (string-append
4017 "https://gitlab.common-lisp.net/cl-utilities/cl-utilities/-/"
4018 "archive/" commit "/cl-utilities-" commit ".tar.gz"))
4019 (sha256
4020 (base32 "1r46v730yf96nk2vb24qmagv9x96xvd08abqwhf02ghgydv1a7z2"))))
4021 (build-system asdf-build-system/sbcl)
4022 (arguments
4023 '(#:asd-file "cl-utilities.asd"
4024 #:asd-system-name "cl-utilities"
4025 #:phases
4026 (modify-phases %standard-phases
4027 (add-after 'unpack 'fix-paths
4028 (lambda* (#:key inputs #:allow-other-keys)
4029 (substitute* "rotate-byte.lisp"
4030 (("in-package :cl-utilities)" all)
4031 "in-package :cl-utilities)\n\n#+sbcl\n(require :sb-rotate-byte)")))))))
4032 (home-page "http://common-lisp.net/project/cl-utilities")
4033 (synopsis "A collection of semi-standard utilities")
4034 (description
4035 "On Cliki.net <http://www.cliki.net/Common%20Lisp%20Utilities>, there
4036 is a collection of Common Lisp Utilities, things that everybody writes since
4037 they're not part of the official standard. There are some very useful things
4038 there; the only problems are that they aren't implemented as well as you'd
4039 like (some aren't implemented at all) and they aren't conveniently packaged
4040 and maintained. It takes quite a bit of work to carefully implement utilities
4041 for common use, commented and documented, with error checking placed
4042 everywhere some dumb user might make a mistake.")
4043 (license license:public-domain))))
4044
4045 (define-public cl-utilities
4046 (sbcl-package->cl-source-package sbcl-cl-utilities))
4047
4048 (define-public sbcl-map-set
4049 (let ((commit "7b4b545b68b8")
4050 (revision "1"))
4051 (package
4052 (name "sbcl-map-set")
4053 (version (git-version "0.0.0" revision commit))
4054 (source
4055 (origin
4056 (method url-fetch)
4057 (uri (string-append
4058 "https://bitbucket.org/tarballs_are_good/map-set/get/"
4059 commit ".tar.gz"))
4060 (sha256
4061 (base32 "1sx5j5qdsy5fklspfammwb16kjrhkggdavm922a9q86jm5l0b239"))))
4062 (build-system asdf-build-system/sbcl)
4063 (home-page "https://bitbucket.org/tarballs_are_good/map-set")
4064 (synopsis "Set-like data structure")
4065 (description
4066 "Implementation of a set-like data structure with constant time
4067 addition, removal, and random selection.")
4068 (license license:bsd-3))))
4069
4070 (define-public cl-map-set
4071 (sbcl-package->cl-source-package sbcl-map-set))
4072
4073 (define-public sbcl-quri
4074 (let ((commit "76b75103f21ead092c9f715512fa82441ef61185")
4075 (revision "1"))
4076 (package
4077 (name "sbcl-quri")
4078 (version (git-version "0.1.0" revision commit))
4079 (source
4080 (origin
4081 (method git-fetch)
4082 (uri (git-reference
4083 (url "https://github.com/fukamachi/quri.git")
4084 (commit commit)))
4085 (file-name (git-file-name name version))
4086 (sha256
4087 (base32 "1ccbxsgzdibmzq33mmbmmz9vwl6l03xh6nbpsh1hkdvdcl7q0a60"))))
4088 (build-system asdf-build-system/sbcl)
4089 (arguments
4090 ;; Tests fail with: Component QURI-ASD::QURI-TEST not found,
4091 ;; required by #<SYSTEM "quri">. Why?
4092 '(#:tests? #f))
4093 (native-inputs `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
4094 ("sbcl-prove" ,sbcl-prove)))
4095 (inputs `(("sbcl-babel" ,sbcl-babel)
4096 ("sbcl-split-sequence" ,sbcl-split-sequence)
4097 ("sbcl-cl-utilities" ,sbcl-cl-utilities)
4098 ("sbcl-alexandria" ,sbcl-alexandria)))
4099 (home-page "https://github.com/fukamachi/quri")
4100 (synopsis "Yet another URI library for Common Lisp")
4101 (description
4102 "QURI (pronounced \"Q-ree\") is yet another URI library for Common
4103 Lisp. It is intended to be a replacement of PURI.")
4104 (license license:bsd-3))))
4105
4106 (define-public cl-quri
4107 (sbcl-package->cl-source-package sbcl-quri))
4108
4109 (define-public sbcl-myway
4110 (let ((commit "286230082a11f879c18b93f17ca571c5f676bfb7")
4111 (revision "1"))
4112 (package
4113 (name "sbcl-myway")
4114 (version (git-version "0.1.0" revision commit))
4115 (source
4116 (origin
4117 (method git-fetch)
4118 (uri (git-reference
4119 (url "https://github.com/fukamachi/myway.git")
4120 (commit commit)))
4121 (file-name (git-file-name "myway" version))
4122 (sha256
4123 (base32 "0briia9bk3lbr0frnx39d1qg6i38dm4j6z9w3yga3d40k6df4a90"))))
4124 (build-system asdf-build-system/sbcl)
4125 (arguments
4126 ;; Tests fail with: Component MYWAY-ASD::MYWAY-TEST not found, required
4127 ;; by #<SYSTEM "myway">. Why?
4128 '(#:tests? #f))
4129 (native-inputs
4130 `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
4131 ("sbcl-prove" ,sbcl-prove)))
4132 (inputs
4133 `(("sbcl-cl-ppcre" ,sbcl-cl-ppcre)
4134 ("sbcl-quri" ,sbcl-quri)
4135 ("sbcl-map-set" ,sbcl-map-set)))
4136 (home-page "https://github.com/fukamachi/myway")
4137 (synopsis "Sinatra-compatible URL routing library for Common Lisp")
4138 (description "My Way is a Sinatra-compatible URL routing library.")
4139 (license license:llgpl))))
4140
4141 (define-public cl-myway
4142 (sbcl-package->cl-source-package sbcl-myway))
4143
4144 (define-public sbcl-xsubseq
4145 (let ((commit "5ce430b3da5cda3a73b9cf5cee4df2843034422b")
4146 (revision "1"))
4147 (package
4148 (name "sbcl-xsubseq")
4149 (version (git-version "0.0.1" revision commit))
4150 (source
4151 (origin
4152 (method git-fetch)
4153 (uri (git-reference
4154 (url "https://github.com/fukamachi/xsubseq")
4155 (commit commit)))
4156 (file-name (git-file-name name version))
4157 (sha256
4158 (base32 "1xz79q0p2mclf3sqjiwf6izdpb6xrsr350bv4mlmdlm6rg5r99px"))))
4159 (build-system asdf-build-system/sbcl)
4160 (arguments
4161 ;; Tests fail with: Component XSUBSEQ-ASD::XSUBSEQ-TEST not found,
4162 ;; required by #<SYSTEM "xsubseq">. Why?
4163 '(#:tests? #f))
4164 (native-inputs
4165 `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
4166 ("sbcl-prove" ,sbcl-prove)))
4167 (home-page "https://github.com/fukamachi/xsubseq")
4168 (synopsis "Efficient way to use \"subseq\"s in Common Lisp")
4169 (description
4170 "XSubseq provides functions to be able to handle \"subseq\"s more
4171 effieiently.")
4172 (license license:bsd-2))))
4173
4174 (define-public cl-xsubseq
4175 (sbcl-package->cl-source-package sbcl-xsubseq))
4176
4177 (define-public sbcl-smart-buffer
4178 (let ((commit "09b9a9a0b3abaa37abe9a730f5aac2643dca4e62")
4179 (revision "1"))
4180 (package
4181 (name "sbcl-smart-buffer")
4182 (version (git-version "0.0.1" revision commit))
4183 (source
4184 (origin
4185 (method git-fetch)
4186 (uri (git-reference
4187 (url "https://github.com/fukamachi/smart-buffer")
4188 (commit commit)))
4189 (file-name (git-file-name name version))
4190 (sha256
4191 (base32 "0qz1zzxx0wm5ff7gpgsq550a59p0qj594zfmm2rglj97dahj54l7"))))
4192 (build-system asdf-build-system/sbcl)
4193 (arguments
4194 ;; Tests fail with: Component SMART-BUFFER-ASD::SMART-BUFFER-TEST not
4195 ;; found, required by #<SYSTEM "smart-buffer">. Why?
4196 `(#:tests? #f))
4197 (native-inputs
4198 `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
4199 ("sbcl-prove" ,sbcl-prove)))
4200 (inputs
4201 `(("sbcl-xsubseq" ,sbcl-xsubseq)
4202 ("sbcl-flexi-streams" ,sbcl-flexi-streams)))
4203 (home-page "https://github.com/fukamachi/smart-buffer")
4204 (synopsis "Smart octets buffer")
4205 (description
4206 "Smart-buffer provides an output buffer which changes the destination
4207 depending on content size.")
4208 (license license:bsd-3))))
4209
4210 (define-public cl-smart-buffer
4211 (sbcl-package->cl-source-package sbcl-smart-buffer))
4212
4213 (define-public sbcl-fast-http
4214 (let ((commit "f9e7597191bae380503e20724fd493a24d024935")
4215 (revision "1"))
4216 (package
4217 (name "sbcl-fast-http")
4218 (version (git-version "0.2.0" revision commit))
4219 (source
4220 (origin
4221 (method git-fetch)
4222 (uri (git-reference
4223 (url "https://github.com/fukamachi/fast-http")
4224 (commit commit)))
4225 (file-name (git-file-name name version))
4226 (sha256
4227 (base32 "0qdmwv2zm0sizxdb8nnclgwl0nfjcbjaimbakavikijw7lr9b4jp"))))
4228 (build-system asdf-build-system/sbcl)
4229 (arguments
4230 ;; Tests fail with: Component FAST-HTTP-ASD::FAST-HTTP-TEST not found,
4231 ;; required by #<SYSTEM "fast-http">. Why?
4232 `(#:tests? #f))
4233 (native-inputs
4234 `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
4235 ("sbcl-prove" ,sbcl-prove)))
4236 (inputs
4237 `(("sbcl-alexandria" ,sbcl-alexandria)
4238 ("sbcl-proc-parse" ,sbcl-proc-parse)
4239 ("sbcl-xsubseq" ,sbcl-xsubseq)
4240 ("sbcl-smart-buffer" ,sbcl-smart-buffer)
4241 ("sbcl-cl-utilities" ,sbcl-cl-utilities)))
4242 (home-page "https://github.com/fukamachi/fast-http")
4243 (synopsis "HTTP request/response parser for Common Lisp")
4244 (description
4245 "@code{fast-http} is a HTTP request/response protocol parser for Common
4246 Lisp.")
4247 ;; Author specified the MIT license
4248 (license license:expat))))
4249
4250 (define-public cl-fast-http
4251 (sbcl-package->cl-source-package sbcl-fast-http))
4252
4253 (define-public sbcl-static-vectors
4254 (package
4255 (name "sbcl-static-vectors")
4256 (version "1.8.4")
4257 (source
4258 (origin
4259 (method git-fetch)
4260 (uri (git-reference
4261 (url "https://github.com/sionescu/static-vectors.git")
4262 (commit (string-append "v" version))))
4263 (file-name (git-file-name name version))
4264 (sha256
4265 (base32 "0qvf9z6bhwhm8n45fjwkm7j8dcb58szfvndky65cyn4lpdval7m1"))))
4266 (native-inputs
4267 `(("sbcl-fiveam" ,sbcl-fiveam)))
4268 (inputs
4269 `(("sbcl-cffi-grovel" ,sbcl-cffi-grovel)
4270 ("sbcl-cffi" ,sbcl-cffi)))
4271 (build-system asdf-build-system/sbcl)
4272 (home-page "https://github.com/sionescu/static-vectors")
4273 (synopsis "Allocate SIMPLE-ARRAYs in static memory")
4274 (description
4275 "With @code{static-vectors}, you can create vectors allocated in static
4276 memory.")
4277 (license license:expat)))
4278
4279 (define-public cl-static-vectors
4280 (sbcl-package->cl-source-package sbcl-static-vectors))
4281
4282 (define-public ecl-static-vectors
4283 (sbcl-package->ecl-package sbcl-static-vectors))
4284
4285 (define-public sbcl-marshal
4286 (let ((commit "eff1b15f2b0af2f26f71ad6a4dd5c4beab9299ec")
4287 (revision "1"))
4288 (package
4289 (name "sbcl-marshal")
4290 (version (git-version "1.3.0" revision commit))
4291 (source
4292 (origin
4293 (method git-fetch)
4294 (uri (git-reference
4295 (url "https://github.com/wlbr/cl-marshal.git")
4296 (commit commit)))
4297 (file-name (git-file-name name version))
4298 (sha256
4299 (base32 "08qs6fhk38xpkkjkpcj92mxx0lgy4ygrbbzrmnivdx281syr0gwh"))))
4300 (build-system asdf-build-system/sbcl)
4301 (home-page "https://github.com/wlbr/cl-marshal")
4302 (synopsis "Simple (de)serialization of Lisp datastructures")
4303 (description
4304 "Simple and fast marshalling of Lisp datastructures. Convert any object
4305 into a string representation, put it on a stream an revive it from there.
4306 Only minimal changes required to make your CLOS objects serializable.")
4307 (license license:expat))))
4308
4309 (define-public cl-marshal
4310 (sbcl-package->cl-source-package sbcl-marshal))
4311
4312 (define-public sbcl-checkl
4313 (let ((commit "80328800d047fef9b6e32dfe6bdc98396aee3cc9")
4314 (revision "1"))
4315 (package
4316 (name "sbcl-checkl")
4317 (version (git-version "0.0.0" revision commit))
4318 (source
4319 (origin
4320 (method git-fetch)
4321 (uri (git-reference
4322 (url "https://github.com/rpav/CheckL.git")
4323 (commit commit)))
4324 (file-name (git-file-name name version))
4325 (sha256
4326 (base32 "0bpisihx1gay44xmyr1dmhlwh00j0zzi04rp9fy35i95l2r4xdlx"))))
4327 (build-system asdf-build-system/sbcl)
4328 (arguments
4329 ;; Error while trying to load definition for system checkl-test from
4330 ;; pathname [...]/checkl-test.asd: The function CHECKL:DEFINE-TEST-OP
4331 ;; is undefined.
4332 '(#:tests? #f))
4333 (native-inputs
4334 `(("sbcl-fiveam" ,sbcl-fiveam)))
4335 (inputs
4336 `(("sbcl-marshal" ,sbcl-marshal)))
4337 (home-page "https://github.com/rpav/CheckL/")
4338 (synopsis "Dynamic testing for Common Lisp")
4339 (description
4340 "CheckL lets you write tests dynamically, it checks resulting values
4341 against the last run.")
4342 ;; The author specifies both LLGPL and "BSD", but the "BSD" license
4343 ;; isn't specified anywhere, so I don't know which kind. LLGPL is the
4344 ;; stronger of the two and so I think only listing this should suffice.
4345 (license license:llgpl))))
4346
4347 (define-public cl-checkl
4348 (sbcl-package->cl-source-package sbcl-checkl))
4349
4350 (define-public sbcl-fast-io
4351 (let ((commit "dc3a71db7e9b756a88781ae9c342fe9d4bbab51c")
4352 (revision "1"))
4353 (package
4354 (name "sbcl-fast-io")
4355 (version (git-version "1.0.0" revision commit))
4356 (source
4357 (origin
4358 (method git-fetch)
4359 (uri (git-reference
4360 (url "https://github.com/rpav/fast-io.git")
4361 (commit commit)))
4362 (file-name (git-file-name name version))
4363 (sha256
4364 (base32 "1jsp6xvi26ln6fdy5j5zi05xvan8jsqdhisv552dy6xg6ws8i1yq"))))
4365 (build-system asdf-build-system/sbcl)
4366 (arguments
4367 ;; Error while trying to load definition for system fast-io-test from
4368 ;; pathname [...]/fast-io-test.asd: The function CHECKL:DEFINE-TEST-OP
4369 ;; is undefined.
4370 '(#:tests? #f))
4371 (native-inputs
4372 `(("sbcl-fiveam" ,sbcl-fiveam)
4373 ("sbcl-checkl" ,sbcl-checkl)))
4374 (inputs
4375 `(("sbcl-alexandria" ,sbcl-alexandria)
4376 ("sbcl-trivial-gray-streams" ,sbcl-trivial-gray-streams)
4377 ("sbcl-static-vectors" ,sbcl-static-vectors)))
4378 (home-page "https://github.com/rpav/fast-io")
4379 (synopsis "Fast octet-vector/stream I/O for Common Lisp")
4380 (description
4381 "Fast-io is about improving performance to octet-vectors and octet
4382 streams (though primarily the former, while wrapping the latter).")
4383 ;; Author specifies this as NewBSD which is an alias
4384 (license license:bsd-3))))
4385
4386 (define-public cl-fast-io
4387 (sbcl-package->cl-source-package sbcl-fast-io))
4388
4389 (define-public sbcl-jonathan
4390 (let ((commit "1f448b4f7ac8265e56e1c02b32ce383e65316300")
4391 (revision "1"))
4392 (package
4393 (name "sbcl-jonathan")
4394 (version (git-version "0.1.0" revision commit))
4395 (source
4396 (origin
4397 (method git-fetch)
4398 (uri (git-reference
4399 (url "https://github.com/Rudolph-Miller/jonathan.git")
4400 (commit commit)))
4401 (file-name (git-file-name name version))
4402 (sha256
4403 (base32 "14x4iwz3mbag5jzzzr4sb6ai0m9r4q4kyypbq32jmsk2dx1hi807"))))
4404 (build-system asdf-build-system/sbcl)
4405 (arguments
4406 ;; Tests fail with: Component JONATHAN-ASD::JONATHAN-TEST not found,
4407 ;; required by #<SYSTEM "jonathan">. Why?
4408 `(#:tests? #f))
4409 (native-inputs
4410 `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
4411 ("sbcl-prove" ,sbcl-prove)))
4412 (inputs
4413 `(("sbcl-cl-syntax" ,sbcl-cl-syntax)
4414 ("sbcl-cl-syntax-annot" ,sbcl-cl-syntax-annot)
4415 ("sbcl-fast-io" ,sbcl-fast-io)
4416 ("sbcl-proc-parse" ,sbcl-proc-parse)
4417 ("sbcl-cl-ppcre" ,sbcl-cl-ppcre)))
4418 (home-page "https://rudolph-miller.github.io/jonathan/overview.html")
4419 (synopsis "JSON encoder and decoder")
4420 (description
4421 "High performance JSON encoder and decoder. Currently support: SBCL,
4422 CCL.")
4423 ;; Author specifies the MIT license
4424 (license license:expat))))
4425
4426 (define-public cl-jonathan
4427 (sbcl-package->cl-source-package sbcl-jonathan))
4428
4429 (define-public sbcl-http-body
4430 (let ((commit "dd01dc4f5842e3d29728552e5163acce8386eb73")
4431 (revision "1"))
4432 (package
4433 (name "sbcl-http-body")
4434 (version (git-version "0.1.0" revision commit))
4435 (source
4436 (origin
4437 (method git-fetch)
4438 (uri (git-reference
4439 (url "https://github.com/fukamachi/http-body")
4440 (commit commit)))
4441 (file-name (git-file-name name version))
4442 (sha256
4443 (base32 "1jd06snjvxcprhapgfq8sx0y5lrldkvhf206ix6d5a23dd6zcmr0"))))
4444 (build-system asdf-build-system/sbcl)
4445 (arguments
4446 ;; Tests fail with: Component HTTP-BODY-ASD::HTTP-BODY-TEST not
4447 ;; found, required by #<SYSTEM "http-body">. Why?
4448 `(#:tests? #f))
4449 (native-inputs
4450 `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
4451 ("sbcl-prove" ,sbcl-prove)))
4452 (inputs
4453 `(("sbcl-fast-http" ,sbcl-fast-http)
4454 ("sbcl-jonathan" ,sbcl-jonathan)
4455 ("sbcl-quri" ,sbcl-quri)))
4456 (home-page "https://github.com/fukamachi/http-body")
4457 (synopsis "HTTP POST data parser")
4458 (description
4459 "HTTP-Body parses HTTP POST data and returns POST parameters. It
4460 supports application/x-www-form-urlencoded, application/json, and
4461 multipart/form-data.")
4462 (license license:bsd-2))))
4463
4464 (define-public cl-http-body
4465 (sbcl-package->cl-source-package sbcl-http-body))
4466
4467 (define-public sbcl-circular-streams
4468 (let ((commit "e770bade1919c5e8533dd2078c93c3d3bbeb38df")
4469 (revision "1"))
4470 (package
4471 (name "sbcl-circular-streams")
4472 (version (git-version "0.1.0" revision commit))
4473 (source
4474 (origin
4475 (method git-fetch)
4476 (uri (git-reference
4477 (url "https://github.com/fukamachi/circular-streams")
4478 (commit commit)))
4479 (file-name (git-file-name name version))
4480 (sha256
4481 (base32 "1wpw6d5cciyqcf92f7mvihak52pd5s47kk4qq6f0r2z2as68p5rs"))))
4482 (build-system asdf-build-system/sbcl)
4483 (arguments
4484 ;; The tests depend on cl-test-more which is now prove. Prove
4485 ;; tests aren't working for some reason.
4486 `(#:tests? #f))
4487 (inputs
4488 `(("sbcl-fast-io" ,sbcl-fast-io)
4489 ("sbcl-trivial-gray-streams" ,sbcl-trivial-gray-streams)))
4490 (home-page "https://github.com/fukamachi/circular-streams")
4491 (synopsis "Circularly readable streams for Common Lisp")
4492 (description
4493 "Circular-Streams allows you to read streams circularly by wrapping real
4494 streams. Once you reach end-of-file of a stream, it's file position will be
4495 reset to 0 and you're able to read it again.")
4496 (license license:llgpl))))
4497
4498 (define-public cl-circular-streams
4499 (sbcl-package->cl-source-package sbcl-circular-streams))
4500
4501 (define-public sbcl-lack-request
4502 (let ((commit "abff8efeb0c3a848e6bb0022f2b8b7fa3a1bc88b")
4503 (revision "1"))
4504 (package
4505 (name "sbcl-lack-request")
4506 (version (git-version "0.1.0" revision commit))
4507 (source
4508 (origin
4509 (method git-fetch)
4510 (uri (git-reference
4511 (url "https://github.com/fukamachi/lack.git")
4512 (commit commit)))
4513 (file-name (git-file-name "lack-request" version))
4514 (sha256
4515 (base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85"))))
4516 (build-system asdf-build-system/sbcl)
4517 (arguments
4518 '(#:asd-file "lack-request.asd"
4519 #:asd-system-name "lack-request"
4520 #:test-asd-file "t-lack-request.asd"
4521 ;; XXX: Component :CLACK-TEST not found
4522 #:tests? #f))
4523 (native-inputs
4524 `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
4525 ("sbcl-prove" ,sbcl-prove)))
4526 (inputs
4527 `(("sbcl-quri" ,sbcl-quri)
4528 ("sbcl-http-body" ,sbcl-http-body)
4529 ("sbcl-circular-streams" ,sbcl-circular-streams)))
4530 (home-page "https://github.com/fukamachi/lack")
4531 (synopsis "Lack, the core of Clack")
4532 (description
4533 "Lack is a Common Lisp library which allows web applications to be
4534 constructed of modular components. It was originally a part of Clack, however
4535 it's going to be rewritten as an individual project since Clack v2 with
4536 performance and simplicity in mind.")
4537 (license license:llgpl))))
4538
4539 (define-public cl-lack-request
4540 (sbcl-package->cl-source-package sbcl-lack-request))
4541
4542 (define-public sbcl-local-time
4543 (let ((commit "beac054eef428552b63d4ae7820c32ffef9a3015")
4544 (revision "1"))
4545 (package
4546 (name "sbcl-local-time")
4547 (version (git-version "1.0.6" revision commit))
4548 (source
4549 (origin
4550 (method git-fetch)
4551 (uri (git-reference
4552 (url "https://github.com/dlowe-net/local-time.git")
4553 (commit commit)))
4554 (file-name (git-file-name name version))
4555 (sha256
4556 (base32 "0xhkmgxh41dg2wwlsp0h2l41jp144xn4gpxhh0lna6kh0560w2cc"))))
4557 (build-system asdf-build-system/sbcl)
4558 (arguments
4559 ;; TODO: Component :STEFIL not found, required by #<SYSTEM
4560 ;; "local-time/test">
4561 '(#:tests? #f))
4562 (native-inputs
4563 `(("stefil" ,sbcl-hu.dwim.stefil)))
4564 (inputs
4565 `(("sbcl-cl-fad" ,sbcl-cl-fad)))
4566 (home-page "https://common-lisp.net/project/local-time/")
4567 (synopsis "Time manipulation library for Common Lisp")
4568 (description
4569 "The LOCAL-TIME library is a Common Lisp library for the manipulation of
4570 dates and times. It is based almost entirely upon Erik Naggum's paper \"The
4571 Long Painful History of Time\".")
4572 (license license:expat))))
4573
4574 (define-public cl-local-time
4575 (sbcl-package->cl-source-package sbcl-local-time))
4576
4577 (define-public sbcl-lack-response
4578 (let ((commit "abff8efeb0c3a848e6bb0022f2b8b7fa3a1bc88b")
4579 (revision "1"))
4580 (package
4581 (name "sbcl-lack-response")
4582 (version (git-version "0.1.0" revision commit))
4583 (source
4584 (origin
4585 (method git-fetch)
4586 (uri (git-reference
4587 (url "https://github.com/fukamachi/lack.git")
4588 (commit commit)))
4589 (file-name (git-file-name name version))
4590 (sha256
4591 (base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85"))))
4592 (build-system asdf-build-system/sbcl)
4593 (arguments
4594 '(#:asd-file "lack-response.asd"
4595 #:asd-system-name "lack-response"
4596 ;; XXX: no tests for lack-response.
4597 #:tests? #f))
4598 (native-inputs
4599 `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
4600 ("sbcl-prove" ,sbcl-prove)))
4601 (inputs
4602 `(("sbcl-quri" ,sbcl-quri)
4603 ("sbcl-http-body" ,sbcl-http-body)
4604 ("sbcl-circular-streams" ,sbcl-circular-streams)
4605 ("sbcl-local-time" ,sbcl-local-time)))
4606 (home-page "https://github.com/fukamachi/lack")
4607 (synopsis "Lack, the core of Clack")
4608 (description
4609 "Lack is a Common Lisp library which allows web applications to be
4610 constructed of modular components. It was originally a part of Clack, however
4611 it's going to be rewritten as an individual project since Clack v2 with
4612 performance and simplicity in mind.")
4613 (license license:llgpl))))
4614
4615 (define-public cl-lack-response
4616 (sbcl-package->cl-source-package sbcl-lack-response))
4617
4618 (define-public sbcl-lack-component
4619 (let ((commit "abff8efeb0c3a848e6bb0022f2b8b7fa3a1bc88b")
4620 (revision "1"))
4621 (package
4622 (name "sbcl-lack-component")
4623 (version (git-version "0.0.0" revision commit))
4624 (source
4625 (origin
4626 (method git-fetch)
4627 (uri (git-reference
4628 (url "https://github.com/fukamachi/lack.git")
4629 (commit commit)))
4630 (file-name (git-file-name "lack-component" version))
4631 (sha256
4632 (base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85"))))
4633 (build-system asdf-build-system/sbcl)
4634 (arguments
4635 '(#:asd-file "lack-component.asd"
4636 #:asd-system-name "lack-component"
4637 #:test-asd-file "t-lack-component.asd"
4638 ;; XXX: Component :LACK-TEST not found
4639 #:tests? #f))
4640 (native-inputs
4641 `(("prove-asdf" ,sbcl-prove-asdf)))
4642 (home-page "https://github.com/fukamachi/lack")
4643 (synopsis "Lack, the core of Clack")
4644 (description
4645 "Lack is a Common Lisp library which allows web applications to be
4646 constructed of modular components. It was originally a part of Clack, however
4647 it's going to be rewritten as an individual project since Clack v2 with
4648 performance and simplicity in mind.")
4649 (license license:llgpl))))
4650
4651 (define-public cl-lack-component
4652 (sbcl-package->cl-source-package sbcl-lack-component))
4653
4654 (define-public sbcl-lack-util
4655 (let ((commit "abff8efeb0c3a848e6bb0022f2b8b7fa3a1bc88b")
4656 (revision "1"))
4657 (package
4658 (name "sbcl-lack-util")
4659 (version (git-version "0.1.0" revision commit))
4660 (source
4661 (origin
4662 (method git-fetch)
4663 (uri (git-reference
4664 (url "https://github.com/fukamachi/lack.git")
4665 (commit commit)))
4666 (file-name (git-file-name "lack-util" version))
4667 (sha256
4668 (base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85"))))
4669 (build-system asdf-build-system/sbcl)
4670 (arguments
4671 '(#:asd-file "lack-util.asd"
4672 #:asd-system-name "lack-util"
4673 #:test-asd-file "t-lack-util.asd"
4674 ;; XXX: Component :LACK-TEST not found
4675 #:tests? #f))
4676 (native-inputs
4677 `(("prove-asdf" ,sbcl-prove-asdf)))
4678 (inputs
4679 `(("sbcl-ironclad" ,sbcl-ironclad)))
4680 (home-page "https://github.com/fukamachi/lack")
4681 (synopsis "Lack, the core of Clack")
4682 (description
4683 "Lack is a Common Lisp library which allows web applications to be
4684 constructed of modular components. It was originally a part of Clack, however
4685 it's going to be rewritten as an individual project since Clack v2 with
4686 performance and simplicity in mind.")
4687 (license license:llgpl))))
4688
4689 (define-public cl-lack-util
4690 (sbcl-package->cl-source-package sbcl-lack-util))
4691
4692 (define-public sbcl-lack-middleware-backtrace
4693 (let ((commit "abff8efeb0c3a848e6bb0022f2b8b7fa3a1bc88b")
4694 (revision "1"))
4695 (package
4696 (name "sbcl-lack-middleware-backtrace")
4697 (version (git-version "0.1.0" revision commit))
4698 (source
4699 (origin
4700 (method git-fetch)
4701 (uri (git-reference
4702 (url "https://github.com/fukamachi/lack.git")
4703 (commit commit)))
4704 (file-name (git-file-name "lack-middleware-backtrace" version))
4705 (sha256
4706 (base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85"))))
4707 (build-system asdf-build-system/sbcl)
4708 (arguments
4709 '(#:asd-file "lack-middleware-backtrace.asd"
4710 #:asd-system-name "lack-middleware-backtrace"
4711 #:test-asd-file "t-lack-middleware-backtrace.asd"
4712 ;; XXX: Component :LACK not found
4713 #:tests? #f))
4714 (native-inputs
4715 `(("prove-asdf" ,sbcl-prove-asdf)))
4716 (home-page "https://github.com/fukamachi/lack")
4717 (synopsis "Lack, the core of Clack")
4718 (description
4719 "Lack is a Common Lisp library which allows web applications to be
4720 constructed of modular components. It was originally a part of Clack, however
4721 it's going to be rewritten as an individual project since Clack v2 with
4722 performance and simplicity in mind.")
4723 (license license:llgpl))))
4724
4725 (define-public cl-lack-middleware-backtrace
4726 (sbcl-package->cl-source-package sbcl-lack-middleware-backtrace))
4727
4728 (define-public sbcl-trivial-mimes
4729 (let ((commit "303f8ac0aa6ca0bc139aa3c34822e623c3723fab")
4730 (revision "1"))
4731 (package
4732 (name "sbcl-trivial-mimes")
4733 (version (git-version "1.1.0" revision commit))
4734 (source
4735 (origin
4736 (method git-fetch)
4737 (uri (git-reference
4738 (url "https://github.com/Shinmera/trivial-mimes.git")
4739 (commit commit)))
4740 (file-name (git-file-name name version))
4741 (sha256
4742 (base32 "17jxgl47r695bvsb7wi3n2ws5rp1zzgvw0zii8cy5ggw4b4ayv6m"))))
4743 (build-system asdf-build-system/sbcl)
4744 (arguments
4745 '(#:phases
4746 (modify-phases %standard-phases
4747 (add-after
4748 'unpack 'fix-paths
4749 (lambda* (#:key inputs #:allow-other-keys)
4750 (let ((anchor "#p\"/etc/mime.types\""))
4751 (substitute* "mime-types.lisp"
4752 ((anchor all)
4753 (string-append
4754 anchor "\n"
4755 "(asdf:system-relative-pathname :trivial-mimes "
4756 "\"../../share/common-lisp/" (%lisp-type)
4757 "-source/trivial-mimes/mime.types\")")))))))))
4758 (native-inputs
4759 `(("stefil" ,sbcl-hu.dwim.stefil)))
4760 (inputs
4761 `(("sbcl-cl-fad" ,sbcl-cl-fad)))
4762 (home-page "https://shinmera.github.io/trivial-mimes/")
4763 (synopsis "Tiny Common Lisp library to detect mime types in files")
4764 (description
4765 "This is a teensy library that provides some functions to determine the
4766 mime-type of a file.")
4767 (license license:artistic2.0))))
4768
4769 (define-public cl-trivial-mimes
4770 (sbcl-package->cl-source-package sbcl-trivial-mimes))
4771
4772 (define-public ecl-trivial-mimes
4773 (sbcl-package->ecl-package sbcl-trivial-mimes))
4774
4775 (define-public sbcl-lack-middleware-static
4776 (let ((commit "abff8efeb0c3a848e6bb0022f2b8b7fa3a1bc88b")
4777 (revision "1"))
4778 (package
4779 (name "sbcl-lack-middleware-static")
4780 (version (git-version "0.1.0" revision commit))
4781 (source
4782 (origin
4783 (method git-fetch)
4784 (uri (git-reference
4785 (url "https://github.com/fukamachi/lack.git")
4786 (commit commit)))
4787 (file-name (git-file-name "lack-middleware-static" version))
4788 (sha256
4789 (base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85"))))
4790 (build-system asdf-build-system/sbcl)
4791 (arguments
4792 '(#:asd-file "lack-middleware-static.asd"
4793 #:asd-system-name "lack-middleware-static"
4794 #:test-asd-file "t-lack-middleware-static.asd"
4795 ;; XXX: Component :LACK not found
4796 #:tests? #f))
4797 (native-inputs
4798 `(("prove-asdf" ,sbcl-prove-asdf)))
4799 (inputs
4800 `(("sbcl-ironclad" ,sbcl-ironclad)
4801 ("sbcl-trivial-mimes" ,sbcl-trivial-mimes)
4802 ("sbcl-local-time" ,sbcl-local-time)))
4803 (home-page "https://github.com/fukamachi/lack")
4804 (synopsis "Lack, the core of Clack")
4805 (description
4806 "Lack is a Common Lisp library which allows web applications to be
4807 constructed of modular components. It was originally a part of Clack, however
4808 it's going to be rewritten as an individual project since Clack v2 with
4809 performance and simplicity in mind.")
4810 (license license:llgpl))))
4811
4812 (define-public cl-lack-middleware-static
4813 (sbcl-package->cl-source-package sbcl-lack-middleware-static))
4814
4815 (define-public sbcl-lack
4816 (let ((commit "abff8efeb0c3a848e6bb0022f2b8b7fa3a1bc88b")
4817 (revision "1"))
4818 (package
4819 (name "sbcl-lack")
4820 (version (git-version "0.1.0" revision commit))
4821 (source
4822 (origin
4823 (method git-fetch)
4824 (uri (git-reference
4825 (url "https://github.com/fukamachi/lack.git")
4826 (commit commit)))
4827 (file-name (git-file-name "lack" version))
4828 (sha256
4829 (base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85"))))
4830 (build-system asdf-build-system/sbcl)
4831 (arguments
4832 '(#:test-asd-file "t-lack.asd"
4833 ;; XXX: Component :CLACK not found
4834 #:tests? #f))
4835 (native-inputs
4836 `(("prove-asdf" ,sbcl-prove-asdf)))
4837 (inputs
4838 `(("sbcl-lack-component" ,sbcl-lack-component)
4839 ("sbcl-lack-util" ,sbcl-lack-util)))
4840 (home-page "https://github.com/fukamachi/lack")
4841 (synopsis "Lack, the core of Clack")
4842 (description
4843 "Lack is a Common Lisp library which allows web applications to be
4844 constructed of modular components. It was originally a part of Clack, however
4845 it's going to be rewritten as an individual project since Clack v2 with
4846 performance and simplicity in mind.")
4847 (license license:llgpl))))
4848
4849 (define-public cl-lack
4850 (sbcl-package->cl-source-package sbcl-lack))
4851
4852 (define-public sbcl-ningle
4853 (let ((commit "50bd4f09b5a03a7249bd4d78265d6451563b25ad")
4854 (revision "1"))
4855 (package
4856 (name "sbcl-ningle")
4857 (version (git-version "0.3.0" revision commit))
4858 (source
4859 (origin
4860 (method git-fetch)
4861 (uri (git-reference
4862 (url "https://github.com/fukamachi/ningle.git")
4863 (commit commit)))
4864 (file-name (git-file-name name version))
4865 (sha256
4866 (base32 "1bsl8cnxhacb8p92z9n89vhk1ikmij5zavk0m2zvmj7iqm79jzgw"))))
4867 (build-system asdf-build-system/sbcl)
4868 (arguments
4869 ;; TODO: pull in clack-test
4870 '(#:tests? #f
4871 #:phases
4872 (modify-phases %standard-phases
4873 (delete 'cleanup-files)
4874 (delete 'cleanup)
4875 (add-before 'cleanup 'combine-fasls
4876 (lambda* (#:key outputs #:allow-other-keys)
4877 (let* ((out (assoc-ref outputs "out"))
4878 (lib (string-append out "/lib/sbcl"))
4879 (ningle-path (string-append lib "/ningle"))
4880 (fasl-files (find-files out "\\.fasl$")))
4881 (mkdir-p ningle-path)
4882 (let ((fasl-path (lambda (name)
4883 (string-append ningle-path
4884 "/"
4885 (basename name)
4886 "--system.fasl"))))
4887 (for-each (lambda (file)
4888 (rename-file file
4889 (fasl-path
4890 (basename file ".fasl"))))
4891 fasl-files))
4892 fasl-files)
4893 #t)))))
4894 (native-inputs
4895 `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
4896 ("sbcl-prove" ,sbcl-prove)))
4897 (inputs
4898 `(("sbcl-cl-syntax" ,sbcl-cl-syntax)
4899 ("sbcl-cl-syntax-annot" ,sbcl-cl-syntax-annot)
4900 ("sbcl-myway" ,sbcl-myway)
4901 ("sbcl-lack-request" ,sbcl-lack-request)
4902 ("sbcl-lack-response" ,sbcl-lack-response)
4903 ("sbcl-lack-component" ,sbcl-lack-component)
4904 ("sbcl-alexandria" ,sbcl-alexandria)
4905 ("sbcl-babel" ,sbcl-babel)))
4906 (home-page "https://8arrow.org/ningle/")
4907 (synopsis "Super micro framework for Common Lisp")
4908 (description
4909 "Ningle is a lightweight web application framework for Common Lisp.")
4910 (license license:llgpl))))
4911
4912 (define-public cl-ningle
4913 (sbcl-package->cl-source-package sbcl-ningle))
4914
4915 (define-public sbcl-clack
4916 (let ((commit "e3e032843bb1220ab96263c411aa7f2feb4746e0")
4917 (revision "1"))
4918 (package
4919 (name "sbcl-clack")
4920 (version (git-version "2.0.0" revision commit))
4921 (source
4922 (origin
4923 (method git-fetch)
4924 (uri (git-reference
4925 (url "https://github.com/fukamachi/clack.git")
4926 (commit commit)))
4927 (file-name (git-file-name name version))
4928 (sha256
4929 (base32 "1ymzs6qyrwhlj6cgqsnpyn6g5cbp7a3s1vgxwna20y2q7y4iacy0"))))
4930 (build-system asdf-build-system/sbcl)
4931 (inputs
4932 `(("sbcl-lack" ,sbcl-lack)
4933 ("sbcl-lack-middleware-backtrace" ,sbcl-lack-middleware-backtrace)
4934 ("sbcl-bordeaux-threads" ,sbcl-bordeaux-threads)))
4935 (home-page "https://github.com/fukamachi/clack")
4936 (synopsis "Web Application Environment for Common Lisp")
4937 (description
4938 "Clack is a web application environment for Common Lisp inspired by
4939 Python's WSGI and Ruby's Rack.")
4940 (license license:llgpl))))
4941
4942 (define-public cl-clack
4943 (sbcl-package->cl-source-package sbcl-clack))
4944
4945 (define-public sbcl-log4cl
4946 (let ((commit "611e094458504b938d49de904eab141285328c7c")
4947 (revision "1"))
4948 (package
4949 (name "sbcl-log4cl")
4950 (build-system asdf-build-system/sbcl)
4951 (version "1.1.2")
4952 (source
4953 (origin
4954 (method git-fetch)
4955 (uri (git-reference
4956 (url "https://github.com/sharplispers/log4cl")
4957 (commit commit)))
4958 (file-name (git-file-name name version))
4959 (sha256
4960 (base32
4961 "08jly0s0g26b56hhpfizxsb4j0yvbh946sd205gr42dkzv8l7dsc"))))
4962 ;; FIXME: tests require stefil, sbcl-hu.dwim.stefil wont work
4963 (arguments
4964 `(#:tests? #f))
4965 (inputs `(("bordeaux-threads" ,sbcl-bordeaux-threads)))
4966 (synopsis "Common Lisp logging framework, modeled after Log4J")
4967 (home-page "https://github.com/7max/log4cl")
4968 (description "This is a Common Lisp logging framework that can log at
4969 various levels and mix text with expressions.")
4970 (license license:asl2.0))))
4971
4972 (define-public cl-log4cl
4973 (sbcl-package->cl-source-package sbcl-log4cl))
4974
4975 (define-public ecl-log4cl
4976 (sbcl-package->ecl-package sbcl-log4cl))
4977
4978 (define-public sbcl-find-port
4979 (let ((commit "00c96a25af93a0f8681d34ec548861f2d7485478")
4980 (revision "1"))
4981 (package
4982 (name "sbcl-find-port")
4983 (build-system asdf-build-system/sbcl)
4984 (version "0.1")
4985 (home-page "https://github.com/eudoxia0/find-port")
4986 (source
4987 (origin
4988 (method git-fetch)
4989 (uri (git-reference
4990 (url home-page)
4991 (commit commit)))
4992 (file-name (git-file-name name version))
4993 (sha256
4994 (base32
4995 "0d6dzbb45jh0rx90wgs6v020k2xa87mvzas3mvfzvivjvqqlpryq"))))
4996 (native-inputs
4997 `(("fiveam" ,sbcl-fiveam)))
4998 (inputs
4999 `(("sbcl-usocket" ,sbcl-usocket)))
5000 (synopsis "Find open ports programmatically in Common Lisp")
5001 (description "This is a small Common Lisp library that finds an open
5002 port within a range.")
5003 (license license:expat))))
5004
5005 (define-public cl-find-port
5006 (sbcl-package->cl-source-package sbcl-find-port))
5007
5008 (define-public ecl-find-port
5009 (sbcl-package->ecl-package sbcl-find-port))
5010
5011 (define-public sbcl-clunit
5012 (let ((commit "6f6d72873f0e1207f037470105969384f8380628")
5013 (revision "1"))
5014 (package
5015 (name "sbcl-clunit")
5016 (version (git-version "0.2.3" revision commit))
5017 (source
5018 (origin
5019 (method git-fetch)
5020 (uri (git-reference
5021 (url "https://github.com/tgutu/clunit.git")
5022 (commit commit)))
5023 (file-name (git-file-name name version))
5024 (sha256
5025 (base32
5026 "1idf2xnqzlhi8rbrqmzpmb3i1l6pbdzhhajkmhwbp6qjkmxa4h85"))))
5027 (build-system asdf-build-system/sbcl)
5028 (synopsis "CLUnit is a Common Lisp unit testing framework")
5029 (description
5030 "CLUnit is a Common Lisp unit testing framework. It is designed
5031 to be easy to use so that you can quickly start testing. CLUnit
5032 provides a rich set of features aimed at improving your unit testing
5033 experience.")
5034 (home-page "https://tgutu.github.io/clunit/")
5035 ;; MIT License
5036 (license license:expat))))
5037
5038 (define-public cl-clunit
5039 (sbcl-package->cl-source-package sbcl-clunit))
5040
5041 (define-public ecl-clunit
5042 (sbcl-package->ecl-package sbcl-clunit))
5043
5044 (define-public sbcl-py4cl
5045 (let ((commit "4c8a2b0814fd311f978964f825ce012290f60136")
5046 (revision "1"))
5047 (package
5048 (name "sbcl-py4cl")
5049 (version (git-version "0.0.0" revision commit))
5050 (source
5051 (origin
5052 (method git-fetch)
5053 (uri (git-reference
5054 (url "https://github.com/bendudson/py4cl.git")
5055 (commit commit)))
5056 (file-name (git-file-name name version))
5057 (sha256
5058 (base32
5059 "15mk7qdqjkj56gdnbyrdyz6r7m1h26ldvn6ch96pmvg5vmr1m45r"))
5060 (modules '((guix build utils)))))
5061 (build-system asdf-build-system/sbcl)
5062 (native-inputs
5063 `(("sbcl-clunit" ,sbcl-clunit)))
5064 (inputs
5065 `(("sbcl-trivial-garbage" ,sbcl-trivial-garbage)))
5066 (propagated-inputs
5067 ;; This package doesn't do anything without python available
5068 `(("python" ,python)
5069 ;; For multi-dimensional array support
5070 ("python-numpy" ,python-numpy)))
5071 (arguments
5072 '(#:phases
5073 (modify-phases %standard-phases
5074 (add-after 'unpack 'replace-*base-directory*-var
5075 (lambda* (#:key outputs #:allow-other-keys)
5076 ;; In the ASD, the author makes an attempt to
5077 ;; programatically determine the location of the
5078 ;; source-code so lisp can call into "py4cl.py". We can
5079 ;; hard-code this since we know where this file will
5080 ;; reside.
5081 (substitute* "src/callpython.lisp"
5082 (("py4cl/config:\\*base-directory\\*")
5083 (string-append
5084 "\""
5085 (assoc-ref outputs "out")
5086 "/share/common-lisp/sbcl-source/py4cl/"
5087 "\""))))))))
5088 (synopsis "Call python from Common Lisp")
5089 (description
5090 "Py4CL is a bridge between Common Lisp and Python, which enables Common
5091 Lisp to interact with Python code. It uses streams to communicate with a
5092 separate python process, the approach taken by cl4py. This is different to
5093 the CFFI approach used by burgled-batteries, but has the same goal.")
5094 (home-page "https://github.com/bendudson/py4cl")
5095 ;; MIT License
5096 (license license:expat))))
5097
5098 (define-public cl-py4cl
5099 (sbcl-package->cl-source-package sbcl-py4cl))
5100
5101 (define-public ecl-py4cl
5102 (sbcl-package->ecl-package sbcl-py4cl))
5103
5104 (define-public sbcl-parse-declarations
5105 (let ((commit "549aebbfb9403a7fe948654126b9c814f443f4f2")
5106 (revision "1"))
5107 (package
5108 (name "sbcl-parse-declarations")
5109 (version (git-version "1.0.0" revision commit))
5110 (source
5111 (origin
5112 (method git-fetch)
5113 (uri (git-reference
5114 (url (string-append
5115 "https://gitlab.common-lisp.net/parse-declarations/"
5116 "parse-declarations.git"))
5117 (commit commit)))
5118 (file-name (git-file-name name version))
5119 (sha256
5120 (base32 "03g5qks4c59nmxa48pbslxkfh77h8hn8566jddp6m9pl15dzzpxd"))))
5121 (build-system asdf-build-system/sbcl)
5122 (arguments
5123 `(#:asd-file "parse-declarations-1.0.asd"
5124 #:asd-system-name "parse-declarations-1.0"))
5125 (home-page "https://common-lisp.net/project/parse-declarations/")
5126 (synopsis "Parse, filter, and build declarations")
5127 (description
5128 "Parse-Declarations is a Common Lisp library to help writing
5129 macros which establish bindings. To be semantically correct, such
5130 macros must take user declarations into account, as these may affect
5131 the bindings they establish. Yet the ANSI standard of Common Lisp does
5132 not provide any operators to work with declarations in a convenient,
5133 high-level way. This library provides such operators.")
5134 ;; MIT License
5135 (license license:expat))))
5136
5137 (define-public cl-parse-declarations
5138 (sbcl-package->cl-source-package sbcl-parse-declarations))
5139
5140 (define-public ecl-parse-declarations
5141 (sbcl-package->ecl-package sbcl-parse-declarations))
5142
5143 (define-public sbcl-cl-quickcheck
5144 (let ((commit "807b2792a30c883a2fbecea8e7db355b50ba662f")
5145 (revision "1"))
5146 (package
5147 (name "sbcl-cl-quickcheck")
5148 (version (git-version "0.0.4" revision commit))
5149 (source
5150 (origin
5151 (method git-fetch)
5152 (uri (git-reference
5153 (url "https://github.com/mcandre/cl-quickcheck.git")
5154 (commit commit)))
5155 (file-name (git-file-name name version))
5156 (sha256
5157 (base32
5158 "165lhypq5xkcys6hvzb3jq7ywnmqvzaflda29qk2cbs3ggas4767"))))
5159 (build-system asdf-build-system/sbcl)
5160 (synopsis
5161 "Common Lisp port of the QuickCheck unit test framework")
5162 (description
5163 "Common Lisp port of the QuickCheck unit test framework")
5164 (home-page "https://github.com/mcandre/cl-quickcheck")
5165 ;; MIT
5166 (license license:expat))))
5167
5168 (define-public cl-cl-quickcheck
5169 (sbcl-package->cl-source-package sbcl-cl-quickcheck))
5170
5171 (define-public ecl-cl-quickcheck
5172 (sbcl-package->ecl-package sbcl-cl-quickcheck))
5173
5174 (define-public sbcl-burgled-batteries3
5175 (let ((commit "f65f454d13bb6c40e17e9ec62e41eb5069e09760")
5176 (revision "2"))
5177 (package
5178 (name "sbcl-burgled-batteries3")
5179 (version (git-version "0.0.0" revision commit))
5180 (source
5181 (origin
5182 (method git-fetch)
5183 (uri (git-reference
5184 (url "https://github.com/snmsts/burgled-batteries3.git")
5185 (commit commit)))
5186 (file-name (git-file-name name version))
5187 (sha256
5188 (base32
5189 "1nzn7jawrfajyzwfnzrg2cmn9xxadcqh4szbpg0jggkhdkdzz4wa"))))
5190 (build-system asdf-build-system/sbcl)
5191 (arguments
5192 `(#:tests? #f
5193 #:modules (((guix build python-build-system) #:select (python-version))
5194 ,@%asdf-build-system-modules)
5195 #:imported-modules ((guix build python-build-system)
5196 ,@%asdf-build-system-modules)
5197 #:phases
5198 (modify-phases (@ (guix build asdf-build-system) %standard-phases)
5199 (add-after 'unpack 'set-*cpython-include-dir*-var
5200 (lambda* (#:key inputs #:allow-other-keys)
5201 (let ((python (assoc-ref inputs "python")))
5202 (setenv "BB_PYTHON3_INCLUDE_DIR"
5203 (string-append python "/include/python"
5204 (python-version python)
5205 "m"))
5206 (setenv "BB_PYTHON3_DYLIB"
5207 (string-append python "/lib/libpython3.so"))
5208 #t))))))
5209 (native-inputs
5210 `(("sbcl-cl-fad" ,sbcl-cl-fad)
5211 ("sbcl-lift" ,sbcl-lift)
5212 ("sbcl-cl-quickcheck" ,sbcl-cl-quickcheck)))
5213 (inputs
5214 `(("python" ,python)
5215 ("sbcl-cffi" ,sbcl-cffi)
5216 ("sbcl-cffi-grovel" ,sbcl-cffi-grovel)
5217 ("sbcl-alexandria" , sbcl-alexandria)
5218 ("sbcl-parse-declarations-1.0" ,sbcl-parse-declarations)
5219 ("sbcl-trivial-garbage" ,sbcl-trivial-garbage)))
5220 (synopsis "Bridge between Python and Lisp (FFI bindings, etc.)")
5221 (description
5222 "This package provides a shim between Python3 (specifically, the
5223 CPython implementation of Python) and Common Lisp.")
5224 (home-page "https://github.com/snmsts/burgled-batteries3")
5225 (license license:expat))))
5226
5227 (define-public cl-burgled-batteries3
5228 (sbcl-package->cl-source-package sbcl-burgled-batteries3))
5229
5230 (define-public ecl-burgled-batteries3
5231 (sbcl-package->ecl-package sbcl-burgled-batteries3))
5232
5233 (define-public sbcl-metabang-bind
5234 (let ((commit "c93b7f7e1c18c954c2283efd6a7fdab36746ab5e")
5235 (revision "1"))
5236 (package
5237 (name "sbcl-metabang-bind")
5238 (version (git-version "0.8.0" revision commit))
5239 (source
5240 (origin
5241 (method git-fetch)
5242 (uri (git-reference
5243 (url "https://github.com/gwkkwg/metabang-bind.git")
5244 (commit commit)))
5245 (file-name (git-file-name name version))
5246 (sha256
5247 (base32
5248 "0hd0kr91795v77akpbcyqiss9p0p7ypa9dznrllincnmgvsxlmf0"))))
5249 (build-system asdf-build-system/sbcl)
5250 (native-inputs
5251 `(("sbcl-lift" ,sbcl-lift)))
5252 (synopsis "Macro that generalizes @code{multiple-value-bind} etc.")
5253 (description
5254 "Bind extends the idea of of let and destructing to provide a uniform
5255 syntax for all your accessor needs. It combines @code{let},
5256 @code{destructuring-bind}, @code{with-slots}, @code{with-accessors}, structure
5257 editing, property or association-lists, and @code{multiple-value-bind} and a
5258 whole lot more into a single form.")
5259 (home-page "https://common-lisp.net/project/metabang-bind/")
5260 ;; MIT License
5261 (license license:expat))))
5262
5263 (define-public cl-metabang-bind
5264 (sbcl-package->cl-source-package sbcl-metabang-bind))
5265
5266 (define-public ecl-metabang-bind
5267 (sbcl-package->ecl-package sbcl-metabang-bind))
5268
5269 (define-public sbcl-fare-utils
5270 (let ((commit "66e9c6f1499140bc00ccc22febf2aa528cbb5724")
5271 (revision "1"))
5272 (package
5273 (name "sbcl-fare-utils")
5274 (version (git-version "1.0.0.5" revision commit))
5275 (source
5276 (origin
5277 (method git-fetch)
5278 (uri
5279 (git-reference
5280 (url
5281 "https://gitlab.common-lisp.net/frideau/fare-utils.git")
5282 (commit commit)))
5283 (file-name (git-file-name name version))
5284 (sha256
5285 (base32
5286 "01wsr1aap3jdzhn4hrqjbhsjx6qci9dbd3gh4gayv1p49rbg8aqr"))))
5287 (build-system asdf-build-system/sbcl)
5288 (arguments
5289 `(#:test-asd-file "test/fare-utils-test.asd"))
5290 (native-inputs
5291 `(("sbcl-hu.dwim.stefil" ,sbcl-hu.dwim.stefil)))
5292 (synopsis "Collection of utilities and data structures")
5293 (description
5294 "fare-utils is a small collection of utilities. It contains a lot of
5295 basic everyday functions and macros.")
5296 (home-page "https://gitlab.common-lisp.net/frideau/fare-utils")
5297 ;; MIT License
5298 (license license:expat))))
5299
5300 (define-public cl-fare-utils
5301 (sbcl-package->cl-source-package sbcl-fare-utils))
5302
5303 (define-public ecl-fare-utils
5304 (sbcl-package->ecl-package sbcl-fare-utils))
5305
5306 (define-public sbcl-trivial-utf-8
5307 (let ((commit "4d427cfbb1c452436a0efb71c3205c9da67f718f")
5308 (revision "1"))
5309 (package
5310 (name "sbcl-trivial-utf-8")
5311 (version (git-version "0.0.0" revision commit))
5312 (source
5313 (origin
5314 (method git-fetch)
5315 (uri
5316 (git-reference
5317 (url (string-append "https://gitlab.common-lisp.net/"
5318 "trivial-utf-8/trivial-utf-8.git"))
5319 (commit commit)))
5320 (file-name (git-file-name name version))
5321 (sha256
5322 (base32
5323 "1jz27gz8gvqdmvp3k9bxschs6d5b3qgk94qp2bj6nv1d0jc3m1l1"))))
5324 (arguments
5325 ;; Guix incorrectly assumes the "8" is part of the version
5326 ;; number and lobs it off.
5327 `(#:asd-file "trivial-utf-8.asd"
5328 #:asd-system-name "trivial-utf-8"))
5329 (build-system asdf-build-system/sbcl)
5330 (synopsis "UTF-8 input/output library")
5331 (description
5332 "The Babel library solves a similar problem while understanding more
5333 encodings. Trivial UTF-8 was written before Babel existed, but for new
5334 projects you might be better off going with Babel. The one plus that Trivial
5335 UTF-8 has is that it doesn't depend on any other libraries.")
5336 (home-page "https://common-lisp.net/project/trivial-utf-8/")
5337 (license license:bsd-3))))
5338
5339 (define-public cl-trivial-utf-8
5340 (sbcl-package->cl-source-package sbcl-trivial-utf-8))
5341
5342 (define-public ecl-trivial-utf-8
5343 (sbcl-package->ecl-package sbcl-trivial-utf-8))
5344
5345 (define-public sbcl-idna
5346 (package
5347 (name "sbcl-idna")
5348 (build-system asdf-build-system/sbcl)
5349 (version "0.2.2")
5350 (home-page "https://github.com/antifuchs/idna")
5351 (source
5352 (origin
5353 (method git-fetch)
5354 (uri (git-reference
5355 (url home-page)
5356 (commit version)))
5357 (file-name (git-file-name name version))
5358 (sha256
5359 (base32
5360 "00nbr3mffxhlq14gg9d16pa6691s4qh35inyw76v906s77khm5a2"))))
5361 (inputs
5362 `(("split-sequence" ,sbcl-split-sequence)))
5363 (synopsis "IDNA string encoding and decoding routines for Common Lisp")
5364 (description "This Common Lisp library provides string encoding and
5365 decoding routines for IDNA, the International Domain Names in Applications.")
5366 (license license:expat)))
5367
5368 (define-public cl-idna
5369 (sbcl-package->cl-source-package sbcl-idna))
5370
5371 (define-public ecl-idna
5372 (sbcl-package->ecl-package sbcl-idna))
5373
5374 (define-public sbcl-swap-bytes
5375 (package
5376 (name "sbcl-swap-bytes")
5377 (build-system asdf-build-system/sbcl)
5378 (version "1.2")
5379 (home-page "https://github.com/sionescu/swap-bytes")
5380 (source
5381 (origin
5382 (method git-fetch)
5383 (uri (git-reference
5384 (url home-page)
5385 (commit (string-append "v" version))))
5386 (file-name (git-file-name name version))
5387 (sha256
5388 (base32
5389 "1hw1v1lw26rifyznpnj1csphha9jgzwpiic16ni3pvs6hcsni9rz"))))
5390 (inputs
5391 `(("trivial-features" ,sbcl-trivial-features)))
5392 (native-inputs
5393 `(("fiveam" ,sbcl-fiveam)))
5394 (synopsis "Efficient endianness conversion for Common Lisp")
5395 (description "This Common Lisp library provides optimized byte-swapping
5396 primitives. The library can change endianness of unsigned integers of length
5397 1/2/4/8. Very useful in implementing various network protocols and file
5398 formats.")
5399 (license license:expat)))
5400
5401 (define-public cl-swap-bytes
5402 (sbcl-package->cl-source-package sbcl-swap-bytes))
5403
5404 (define-public ecl-swap-bytes
5405 (sbcl-package->ecl-package sbcl-swap-bytes))
5406
5407 (define-public sbcl-iolib.asdf
5408 ;; Latest release is from June 2017.
5409 (let ((commit "7f5ea3a8457a29d224b24653c2b3657fb1898021")
5410 (revision "2"))
5411 (package
5412 (name "sbcl-iolib.asdf")
5413 (build-system asdf-build-system/sbcl)
5414 (version (git-version "0.8.3" revision commit))
5415 (home-page "https://github.com/sionescu/iolib")
5416 (source
5417 (origin
5418 (method git-fetch)
5419 (uri (git-reference
5420 (url home-page)
5421 (commit commit)))
5422 (file-name (git-file-name name version))
5423 (sha256
5424 (base32
5425 "1bg5w7lm61hqk4b0svmri8a590q36z76jfa0sdgzb39r98c04w12"))))
5426 (inputs
5427 `(("alexandria" ,sbcl-alexandria)))
5428 (arguments
5429 '(#:asd-file "iolib.asdf.asd"))
5430 (synopsis "ASDF component classes for IOLib, a Common Lisp I/O library")
5431 (description "IOlib is to be a better and more modern I/O library than
5432 the standard Common Lisp library. It contains a socket library, a DNS
5433 resolver, an I/O multiplexer(which supports @code{select(2)}, @code{epoll(4)}
5434 and @code{kqueue(2)}), a pathname library and file-system utilities.")
5435 (license license:expat))))
5436
5437 (define-public sbcl-iolib.conf
5438 (package
5439 (inherit sbcl-iolib.asdf)
5440 (name "sbcl-iolib.conf")
5441 (inputs
5442 `(("iolib.asdf" ,sbcl-iolib.asdf)))
5443 (arguments
5444 '(#:asd-file "iolib.conf.asd"))
5445 (synopsis "Compile-time configuration for IOLib, a Common Lisp I/O library")))
5446
5447 (define-public sbcl-iolib.common-lisp
5448 (package
5449 (inherit sbcl-iolib.asdf)
5450 (name "sbcl-iolib.common-lisp")
5451 (inputs
5452 `(("iolib.asdf" ,sbcl-iolib.asdf)
5453 ("iolib.conf" ,sbcl-iolib.conf)))
5454 (arguments
5455 '(#:asd-file "iolib.common-lisp.asd"))
5456 (synopsis "Slightly modified Common Lisp for IOLib, a Common Lisp I/O library")))
5457
5458 (define-public sbcl-iolib.base
5459 (package
5460 (inherit sbcl-iolib.asdf)
5461 (name "sbcl-iolib.base")
5462 (inputs
5463 `(("iolib.asdf" ,sbcl-iolib.asdf)
5464 ("iolib.conf" ,sbcl-iolib.conf)
5465 ("iolib.common-lisp" ,sbcl-iolib.common-lisp)
5466 ("split-sequence" ,sbcl-split-sequence)))
5467 (arguments
5468 '(#:asd-file "iolib.base.asd"))
5469 (synopsis "Base package for IOLib, a Common Lisp I/O library")))
5470
5471 (define-public sbcl-iolib.grovel
5472 (package
5473 (inherit sbcl-iolib.asdf)
5474 (name "sbcl-iolib.grovel")
5475 (inputs
5476 `(("iolib.asdf" ,sbcl-iolib.asdf)
5477 ("iolib.conf" ,sbcl-iolib.conf)
5478 ("iolib.base", sbcl-iolib.base)
5479 ("cffi", sbcl-cffi)))
5480 (arguments
5481 '(#:asd-file "iolib.grovel.asd"
5482 #:phases
5483 (modify-phases %standard-phases
5484 (add-after 'install 'install-header
5485 (lambda* (#:key outputs #:allow-other-keys)
5486 ;; This header is required by sbcl-iolib.
5487 (install-file "src/grovel/grovel-common.h"
5488 (string-append (assoc-ref outputs "out")
5489 "/lib/sbcl"))
5490 #t)))))
5491 (synopsis "CFFI Groveller for IOLib, a Common Lisp I/O library")))
5492
5493 (define sbcl-iolib+syscalls
5494 (package
5495 (inherit sbcl-iolib.asdf)
5496 (name "sbcl-iolib+syscalls")
5497 (inputs
5498 `(("iolib.asdf" ,sbcl-iolib.asdf)
5499 ("iolib.conf" ,sbcl-iolib.conf)
5500 ("cffi-grovel" ,sbcl-cffi-grovel)
5501 ("iolib.base" ,sbcl-iolib.base)
5502 ("bordeaux-threads" ,sbcl-bordeaux-threads)
5503 ("idna" ,sbcl-idna)
5504 ("swap-bytes" ,sbcl-swap-bytes)
5505 ("libfixposix" ,libfixposix)
5506 ("cffi" ,sbcl-cffi)))
5507 (native-inputs
5508 `(("fiveam" ,sbcl-fiveam)))
5509 (arguments
5510 '(#:asd-file "iolib.asd"
5511 #:asd-system-name "iolib/syscalls"
5512 #:phases
5513 (modify-phases %standard-phases
5514 (add-after 'unpack 'fix-paths
5515 (lambda* (#:key inputs #:allow-other-keys)
5516 (substitute* "src/syscalls/ffi-functions-unix.lisp"
5517 (("\\(:default \"libfixposix\"\\)")
5518 (string-append
5519 "(:default \""
5520 (assoc-ref inputs "libfixposix") "/lib/libfixposix\")")))
5521 ;; Socket tests need Internet access, disable them.
5522 (substitute* "iolib.asd"
5523 (("\\(:file \"sockets\" :depends-on \\(\"pkgdcl\" \"defsuites\"\\)\\)")
5524 "")))))))
5525 (synopsis "Common Lisp I/O library")))
5526
5527 (define sbcl-iolib+multiplex
5528 (package
5529 (inherit sbcl-iolib+syscalls)
5530 (name "sbcl-iolib+multiplex")
5531 (inputs
5532 `(("iolib+syscalls" ,sbcl-iolib+syscalls)
5533 ,@(package-inputs sbcl-iolib+syscalls)))
5534 (arguments
5535 (substitute-keyword-arguments (package-arguments sbcl-iolib+syscalls)
5536 ((#:asd-system-name _) "iolib/multiplex")))))
5537
5538 (define sbcl-iolib+streams
5539 (package
5540 (inherit sbcl-iolib+syscalls)
5541 (name "sbcl-iolib+streams")
5542 (inputs
5543 `(("iolib+multiplex" ,sbcl-iolib+multiplex)
5544 ,@(package-inputs sbcl-iolib+syscalls)))
5545 (arguments
5546 (substitute-keyword-arguments (package-arguments sbcl-iolib+syscalls)
5547 ((#:asd-system-name _) "iolib/streams")))))
5548
5549 (define sbcl-iolib+sockets
5550 (package
5551 (inherit sbcl-iolib+syscalls)
5552 (name "sbcl-iolib+sockets")
5553 (inputs
5554 `(("iolib+syscalls" ,sbcl-iolib+syscalls)
5555 ("iolib+streams" ,sbcl-iolib+streams)
5556 ,@(package-inputs sbcl-iolib+syscalls)))
5557 (arguments
5558 (substitute-keyword-arguments (package-arguments sbcl-iolib+syscalls)
5559 ((#:asd-system-name _) "iolib/sockets")))))
5560
5561 (define-public sbcl-iolib
5562 (package
5563 (inherit sbcl-iolib+syscalls)
5564 (name "sbcl-iolib")
5565 (inputs
5566 `(("iolib+multiplex" ,sbcl-iolib+multiplex)
5567 ("iolib+streams" ,sbcl-iolib+streams)
5568 ("iolib+sockets" ,sbcl-iolib+sockets)
5569 ,@(package-inputs sbcl-iolib+syscalls)))
5570 (arguments
5571 (substitute-keyword-arguments (package-arguments sbcl-iolib+syscalls)
5572 ((#:asd-system-name _) "iolib")))))
5573
5574 (define-public cl-iolib
5575 (sbcl-package->cl-source-package sbcl-iolib))
5576
5577 (define-public sbcl-ieee-floats
5578 (let ((commit "566b51a005e81ff618554b9b2f0b795d3b29398d")
5579 (revision "1"))
5580 (package
5581 (name "sbcl-ieee-floats")
5582 (build-system asdf-build-system/sbcl)
5583 (version (git-version "20170924" revision commit))
5584 (home-page "https://github.com/marijnh/ieee-floats/")
5585 (source
5586 (origin
5587 (method git-fetch)
5588 (uri (git-reference
5589 (url home-page)
5590 (commit commit)))
5591 (file-name (git-file-name name version))
5592 (sha256
5593 (base32
5594 "1xyj49j9x3lc84cv3dhbf9ja34ywjk1c46dklx425fxw9mkwm83m"))))
5595 (native-inputs
5596 `(("fiveam" ,sbcl-fiveam)))
5597 (synopsis "IEEE 754 binary representation for floats in Common Lisp")
5598 (description "This is a Common Lisp library that converts
5599 floating point values to IEEE 754 binary representation.")
5600 (license license:bsd-3))))
5601
5602 (define-public cl-ieee-floats
5603 (sbcl-package->cl-source-package sbcl-ieee-floats))
5604
5605 (define sbcl-closure-common
5606 (let ((commit "e3c5f5f454b72b01b89115e581c3c52a7e201e5c")
5607 (revision "1"))
5608 (package
5609 (name "sbcl-closure-common")
5610 (build-system asdf-build-system/sbcl)
5611 (version (git-version "20101006" revision commit))
5612 (home-page "https://common-lisp.net/project/cxml/")
5613 (source
5614 (origin
5615 (method git-fetch)
5616 (uri (git-reference
5617 (url "https://github.com/sharplispers/closure-common")
5618 (commit commit)))
5619 (file-name (git-file-name name version))
5620 (sha256
5621 (base32
5622 "0k5r2qxn122pxi301ijir3nayi9sg4d7yiy276l36qmzwhp4mg5n"))))
5623 (inputs
5624 `(("trivial-gray-streams" ,sbcl-trivial-gray-streams)
5625 ("babel" ,sbcl-babel)))
5626 (synopsis "Support Common Lisp library for CXML")
5627 (description "Closure-common is an internal helper library. The name
5628 Closure is a reference to the web browser it was originally written for.")
5629 ;; TODO: License?
5630 (license #f))))
5631
5632 (define-public sbcl-cxml+xml
5633 (let ((commit "00b22bf4c4cf11c993d5866fae284f95ab18e6bf")
5634 (revision "1"))
5635 (package
5636 (name "sbcl-cxml+xml")
5637 (build-system asdf-build-system/sbcl)
5638 (version (git-version "0.0.0" revision commit))
5639 (home-page "https://common-lisp.net/project/cxml/")
5640 (source
5641 (origin
5642 (method git-fetch)
5643 (uri (git-reference
5644 (url "https://github.com/sharplispers/cxml")
5645 (commit commit)))
5646 (file-name (git-file-name name version))
5647 (sha256
5648 (base32
5649 "13kif7rf3gqdycsk9zq0d7y0g9y81krkl0z87k0p2fkbjfgrph37"))))
5650 (inputs
5651 `(("closure-common" ,sbcl-closure-common)
5652 ("puri" ,sbcl-puri)
5653 ("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
5654 (arguments
5655 `(#:asd-file "cxml.asd"
5656 #:asd-system-name "cxml/xml"))
5657 (synopsis "Common Lisp XML parser")
5658 (description "CXML implements a namespace-aware, validating XML 1.0
5659 parser as well as the DOM Level 2 Core interfaces. Two parser interfaces are
5660 offered, one SAX-like, the other similar to StAX.")
5661 (license license:llgpl))))
5662
5663 (define sbcl-cxml+dom
5664 (package
5665 (inherit sbcl-cxml+xml)
5666 (name "sbcl-cxml+dom")
5667 (inputs
5668 `(("closure-common" ,sbcl-closure-common)
5669 ("puri" ,sbcl-puri)
5670 ("cxml+xml" ,sbcl-cxml+xml)))
5671 (arguments
5672 `(#:asd-file "cxml.asd"
5673 #:asd-system-name "cxml/dom"))))
5674
5675 (define sbcl-cxml+klacks
5676 (package
5677 (inherit sbcl-cxml+xml)
5678 (name "sbcl-cxml+klacks")
5679 (inputs
5680 `(("closure-common" ,sbcl-closure-common)
5681 ("puri" ,sbcl-puri)
5682 ("cxml+xml" ,sbcl-cxml+xml)))
5683 (arguments
5684 `(#:asd-file "cxml.asd"
5685 #:asd-system-name "cxml/klacks"))))
5686
5687 (define sbcl-cxml+test
5688 (package
5689 (inherit sbcl-cxml+xml)
5690 (name "sbcl-cxml+test")
5691 (inputs
5692 `(("closure-common" ,sbcl-closure-common)
5693 ("puri" ,sbcl-puri)
5694 ("cxml+xml" ,sbcl-cxml+xml)))
5695 (arguments
5696 `(#:asd-file "cxml.asd"
5697 #:asd-system-name "cxml/test"))))
5698
5699 (define-public sbcl-cxml
5700 (package
5701 (inherit sbcl-cxml+xml)
5702 (name "sbcl-cxml")
5703 (inputs
5704 `(("closure-common" ,sbcl-closure-common)
5705 ("puri" ,sbcl-puri)
5706 ("trivial-gray-streams" ,sbcl-trivial-gray-streams)
5707 ("cxml+dom" ,sbcl-cxml+dom)
5708 ("cxml+klacks" ,sbcl-cxml+klacks)
5709 ("cxml+test" ,sbcl-cxml+test)))
5710 (arguments
5711 `(#:asd-file "cxml.asd"
5712 #:asd-system-name "cxml"
5713 #:phases
5714 (modify-phases %standard-phases
5715 (add-after 'build 'install-dtd
5716 (lambda* (#:key outputs #:allow-other-keys)
5717 (install-file "catalog.dtd"
5718 (string-append
5719 (assoc-ref outputs "out")
5720 "/lib/" (%lisp-type)))))
5721 (add-after 'create-asd 'remove-component
5722 ;; XXX: The original .asd has no components, but our build system
5723 ;; creates an entry nonetheless. We need to remove it for the
5724 ;; generated .asd to load properly. See trivia.trivial for a
5725 ;; similar problem.
5726 (lambda* (#:key outputs #:allow-other-keys)
5727 (let* ((out (assoc-ref outputs "out"))
5728 (asd (string-append out "/lib/sbcl/cxml.asd")))
5729 (substitute* asd
5730 ((" :components
5731 ")
5732 ""))
5733 (substitute* asd
5734 ((" *\\(\\(:compiled-file \"cxml--system\"\\)\\)")
5735 ""))))))))))
5736
5737 (define-public cl-cxml
5738 (sbcl-package->cl-source-package sbcl-cxml))
5739
5740 (define-public sbcl-cl-reexport
5741 (let ((commit "312f3661bbe187b5f28536cd7ec2956e91366c3b")
5742 (revision "1"))
5743 (package
5744 (name "sbcl-cl-reexport")
5745 (build-system asdf-build-system/sbcl)
5746 (version (git-version "0.1" revision commit))
5747 (home-page "https://github.com/takagi/cl-reexport")
5748 (source
5749 (origin
5750 (method git-fetch)
5751 (uri (git-reference
5752 (url home-page)
5753 (commit commit)))
5754 (file-name (git-file-name name version))
5755 (sha256
5756 (base32
5757 "1cwpn1m3wrl0fl9plznn7p464db646gnfc8zkyk97dyxski2aq0x"))))
5758 (inputs
5759 `(("alexandria" ,sbcl-alexandria)))
5760 (arguments
5761 ;; TODO: Tests fail because cl-test-more is missing, but I can't find it online.
5762 `(#:tests? #f))
5763 (synopsis "HTTP cookie manager for Common Lisp")
5764 (description "cl-cookie is a Common Lisp library featuring parsing of
5765 cookie headers, cookie creation, cookie jar creation and more.")
5766 (license license:llgpl))))
5767
5768 (define-public cl-reexport
5769 (sbcl-package->cl-source-package sbcl-cl-reexport))
5770
5771 (define-public sbcl-cl-cookie
5772 (let ((commit "cea55aed8b9ad25fafd13defbcb9fe8f41b29546")
5773 (revision "1"))
5774 (package
5775 (name "sbcl-cl-cookie")
5776 (build-system asdf-build-system/sbcl)
5777 (version (git-version "0.9.10" revision commit))
5778 (home-page "https://github.com/fukamachi/cl-cookie")
5779 (source
5780 (origin
5781 (method git-fetch)
5782 (uri (git-reference
5783 (url home-page)
5784 (commit commit)))
5785 (file-name (git-file-name name version))
5786 (sha256
5787 (base32
5788 "090g7z75h98zvc1ldx0vh4jn4086dhjm2w30jcwkq553qmyxwl8h"))))
5789 (inputs
5790 `(("proc-parse" ,sbcl-proc-parse)
5791 ("alexandria" ,sbcl-alexandria)
5792 ("quri" ,sbcl-quri)
5793 ("cl-ppcre" ,sbcl-cl-ppcre)
5794 ("local-time" ,sbcl-local-time)))
5795 (native-inputs
5796 `(("prove-asdf" ,sbcl-prove-asdf)
5797 ("prove" ,sbcl-prove)))
5798 (arguments
5799 ;; TODO: Tests fail because cl-cookie depends on cl-cookie-test.
5800 `(#:tests? #f))
5801 (synopsis "HTTP cookie manager for Common Lisp")
5802 (description "cl-cookie is a Common Lisp library featuring parsing of
5803 cookie headers, cookie creation, cookie jar creation and more.")
5804 (license license:bsd-2))))
5805
5806 (define-public cl-cookie
5807 (sbcl-package->cl-source-package sbcl-cl-cookie))
5808
5809 (define-public sbcl-dexador
5810 (let ((commit "a2714d126cc94bc7a9a6e1e3c08de455b3a66378")
5811 (revision "1"))
5812 (package
5813 (name "sbcl-dexador")
5814 (build-system asdf-build-system/sbcl)
5815 (version (git-version "0.9.10" revision commit))
5816 (home-page "https://github.com/fukamachi/dexador")
5817 (source
5818 (origin
5819 (method git-fetch)
5820 (uri (git-reference
5821 (url home-page)
5822 (commit commit)))
5823 (file-name (git-file-name name version))
5824 (sha256
5825 (base32
5826 "0nbqgn4v3l2z6m1k1bdxfnqpfrk84nxdmz7csz11zzcfs4flkv79"))))
5827 (inputs
5828 `(("trivial-gray-streams" ,sbcl-trivial-gray-streams)
5829 ("babel" ,sbcl-babel)
5830 ("usocket" ,sbcl-usocket)
5831 ("fast-http" ,sbcl-fast-http)
5832 ("quri" ,sbcl-quri)
5833 ("fast-io" ,sbcl-fast-io)
5834 ("chunga" ,sbcl-chunga)
5835 ("cl-ppcre" ,sbcl-cl-ppcre)
5836 ("cl-cookie" ,sbcl-cl-cookie)
5837 ("trivial-mimes" ,sbcl-trivial-mimes)
5838 ("chipz" ,sbcl-chipz)
5839 ("cl-base64" ,sbcl-cl-base64)
5840 ("cl-reexport" ,sbcl-cl-reexport)
5841 ("cl+ssl" ,sbcl-cl+ssl)
5842 ("bordeaux-threads" ,sbcl-bordeaux-threads)
5843 ("alexandria" ,sbcl-alexandria)))
5844 (native-inputs
5845 `(("prove" ,sbcl-prove)
5846 ("prove-asdf" ,sbcl-prove-asdf)
5847 ("lack-request" ,sbcl-lack-request)
5848 ("clack" ,sbcl-clack)
5849 ("babel" ,sbcl-babel)
5850 ("alexandria" ,sbcl-alexandria)
5851 ("cl-ppcre" ,sbcl-cl-ppcre)
5852 ("local-time" ,sbcl-local-time)))
5853 (arguments
5854 ;; TODO: Circular dependency: tests depend on clack-test which depends on dexador.
5855 `(#:tests? #f
5856 #:phases
5857 (modify-phases %standard-phases
5858 (add-after 'unpack 'fix-permissions
5859 (lambda _ (make-file-writable "t/data/test.gz") #t)))))
5860 (synopsis "Yet another HTTP client for Common Lisp")
5861 (description "Dexador is yet another HTTP client for Common Lisp with
5862 neat APIs and connection-pooling. It is meant to supersede Drakma.")
5863 (license license:expat))))
5864
5865 (define-public cl-dexador
5866 (package
5867 (inherit (sbcl-package->cl-source-package sbcl-dexador))
5868 (arguments
5869 `(#:phases
5870 ;; asdf-build-system/source has its own phases and does not inherit
5871 ;; from asdf-build-system/sbcl phases.
5872 (modify-phases %standard-phases/source
5873 (add-after 'unpack 'fix-permissions
5874 (lambda _ (make-file-writable "t/data/test.gz") #t)))))))
5875
5876 (define-public ecl-dexador
5877 (sbcl-package->ecl-package sbcl-dexador))
5878
5879 (define-public sbcl-lisp-namespace
5880 (let ((commit "28107cafe34e4c1c67490fde60c7f92dc610b2e0")
5881 (revision "1"))
5882 (package
5883 (name "sbcl-lisp-namespace")
5884 (build-system asdf-build-system/sbcl)
5885 (version (git-version "0.1" revision commit))
5886 (home-page "https://github.com/guicho271828/lisp-namespace")
5887 (source
5888 (origin
5889 (method git-fetch)
5890 (uri (git-reference
5891 (url home-page)
5892 (commit commit)))
5893 (file-name (git-file-name name version))
5894 (sha256
5895 (base32
5896 "1jw2wykp06z2afb9nm1lgfzll5cjlj36pnknjx614057zkkxq4iy"))))
5897 (inputs
5898 `(("alexandria" ,sbcl-alexandria)))
5899 (native-inputs
5900 `(("fiveam" ,sbcl-fiveam)))
5901 (arguments
5902 `(#:test-asd-file "lisp-namespace.test.asd"
5903 ;; XXX: Component LISP-NAMESPACE-ASD::LISP-NAMESPACE.TEST not found
5904 #:tests? #f))
5905 (synopsis "LISP-N, or extensible namespaces in Common Lisp")
5906 (description "Common Lisp already has major 2 namespaces, function
5907 namespace and value namespace (or variable namespace), but there are actually
5908 more — e.g., class namespace.
5909 This library offers macros to deal with symbols from any namespace.")
5910 (license license:llgpl))))
5911
5912 (define-public cl-lisp-namespace
5913 (sbcl-package->cl-source-package sbcl-lisp-namespace))
5914
5915 (define-public sbcl-trivial-cltl2
5916 (let ((commit "8eec8407df833e8f27df8a388bc10913f16d9e83")
5917 (revision "1"))
5918 (package
5919 (name "sbcl-trivial-cltl2")
5920 (build-system asdf-build-system/sbcl)
5921 (version (git-version "0.1.1" revision commit))
5922 (home-page "https://github.com/Zulu-Inuoe/trivial-cltl2")
5923 (source
5924 (origin
5925 (method git-fetch)
5926 (uri (git-reference
5927 (url home-page)
5928 (commit commit)))
5929 (file-name (git-file-name name version))
5930 (sha256
5931 (base32
5932 "1dyyxz17vqv8hlfwq287gl8xxbvcnq798ajb7p5jdjz91wqf4bgk"))))
5933 (synopsis "Simple CLtL2 compatibility layer for Common Lisp")
5934 (description "This library is a portable compatibility layer around
5935 \"Common Lisp the Language, 2nd
5936 Edition\" (@url{https://www.cs.cmu.edu/Groups/AI/html/cltl/clm/node102.html})
5937 and it exports symbols from implementation-specific packages.")
5938 (license license:llgpl))))
5939
5940 (define-public cl-trivial-cltl2
5941 (sbcl-package->cl-source-package sbcl-trivial-cltl2))
5942
5943 (define-public sbcl-introspect-environment
5944 (let ((commit "fff42f8f8fd0d99db5ad6c5812e53de7d660020b")
5945 (revision "1"))
5946 (package
5947 (name "sbcl-introspect-environment")
5948 (build-system asdf-build-system/sbcl)
5949 (version (git-version "0.1" revision commit))
5950 (home-page "https://github.com/Bike/introspect-environment")
5951 (source
5952 (origin
5953 (method git-fetch)
5954 (uri (git-reference
5955 (url home-page)
5956 (commit commit)))
5957 (file-name (git-file-name name version))
5958 (sha256
5959 (base32
5960 "1i305n0wfmpac63ni4i3vixnnkl8daw5ncxy0k3dv92krgx6qzhp"))))
5961 (native-inputs
5962 `(("fiveam" ,sbcl-fiveam)))
5963 (synopsis "Common Lisp environment introspection portability layer")
5964 (description "This library is a small interface to portable but
5965 nonstandard introspection of Common Lisp environments. It is intended to
5966 allow a bit more compile-time introspection of environments in Common Lisp.
5967
5968 Quite a bit of information is available at the time a macro or compiler-macro
5969 runs; inlining info, type declarations, that sort of thing. This information
5970 is all standard - any Common Lisp program can @code{(declare (integer x))} and
5971 such.
5972
5973 This info ought to be accessible through the standard @code{&environment}
5974 parameters, but it is not. Several implementations keep the information for
5975 their own purposes but do not make it available to user programs, because
5976 there is no standard mechanism to do so.
5977
5978 This library uses implementation-specific hooks to make information available
5979 to users. This is currently supported on SBCL, CCL, and CMUCL. Other
5980 implementations have implementations of the functions that do as much as they
5981 can and/or provide reasonable defaults.")
5982 (license license:wtfpl2))))
5983
5984 (define-public cl-introspect-environment
5985 (sbcl-package->cl-source-package sbcl-introspect-environment))
5986
5987 (define-public sbcl-type-i
5988 (let ((commit "dea233f45f94064105ec09f0767de338f67dcbe2")
5989 (revision "1"))
5990 (package
5991 (name "sbcl-type-i")
5992 (build-system asdf-build-system/sbcl)
5993 (version (git-version "0.1" revision commit))
5994 (home-page "https://github.com/guicho271828/type-i")
5995 (source
5996 (origin
5997 (method git-fetch)
5998 (uri (git-reference
5999 (url home-page)
6000 (commit commit)))
6001 (file-name (git-file-name name version))
6002 (sha256
6003 (base32
6004 "039g5pbrhh65s0bhr9314gmd2nwc2y5lp2377c5qrc2lxky89qs3"))))
6005 (inputs
6006 `(("alexandria" ,sbcl-alexandria)
6007 ("introspect-environment" ,sbcl-introspect-environment)
6008 ("trivia.trivial" ,sbcl-trivia.trivial)))
6009 (native-inputs
6010 `(("fiveam" ,sbcl-fiveam)))
6011 (arguments
6012 `(#:test-asd-file "type-i.test.asd"))
6013 (synopsis "Type inference utility on unary predicates for Common Lisp")
6014 (description "This library tries to provide a way to detect what kind of
6015 type the given predicate is trying to check. This is different from inferring
6016 the return type of a function.")
6017 (license license:llgpl))))
6018
6019 (define-public cl-type-i
6020 (sbcl-package->cl-source-package sbcl-type-i))
6021
6022 (define-public sbcl-optima
6023 (let ((commit "373b245b928c1a5cce91a6cb5bfe5dd77eb36195")
6024 (revision "1"))
6025 (package
6026 (name "sbcl-optima")
6027 (build-system asdf-build-system/sbcl)
6028 (version (git-version "1.0" revision commit))
6029 (home-page "https://github.com/m2ym/optima")
6030 (source
6031 (origin
6032 (method git-fetch)
6033 (uri (git-reference
6034 (url home-page)
6035 (commit commit)))
6036 (file-name (git-file-name name version))
6037 (sha256
6038 (base32
6039 "1yw4ymq7ms89342kkvb3aqxgv0w38m9kd8ikdqxxzyybnkjhndal"))))
6040 (inputs
6041 `(("alexandria" ,sbcl-alexandria)
6042 ("closer-mop" ,sbcl-closer-mop)))
6043 (native-inputs
6044 `(("eos" ,sbcl-eos)))
6045 (arguments
6046 ;; XXX: Circular dependencies: tests depend on optima.ppcre which depends on optima.
6047 `(#:tests? #f
6048 #:test-asd-file "optima.test.asd"))
6049 (synopsis "Optimized pattern matching library for Common Lisp")
6050 (description "Optima is a fast pattern matching library which uses
6051 optimizing techniques widely used in the functional programming world.")
6052 (license license:expat))))
6053
6054 (define-public cl-optima
6055 (sbcl-package->cl-source-package sbcl-optima))
6056
6057 (define-public sbcl-fare-quasiquote
6058 (let ((commit "640d39a0451094071b3e093c97667b3947f43639")
6059 (revision "1"))
6060 (package
6061 (name "sbcl-fare-quasiquote")
6062 (build-system asdf-build-system/sbcl)
6063 (version (git-version "1.0.1" revision commit))
6064 (home-page "https://gitlab.common-lisp.net/frideau/fare-quasiquote")
6065 (source
6066 (origin
6067 (method git-fetch)
6068 (uri (git-reference
6069 (url (string-append "https://gitlab.common-lisp.net/frideau/"
6070 "fare-quasiquote.git"))
6071 (commit commit)))
6072 (file-name (git-file-name name version))
6073 (sha256
6074 (base32 "1g6q11l50kgija9f55lzqpcwvaq0ljiw8v1j265hnyg6nahjwjvg"))))
6075 (inputs
6076 `(("fare-utils" ,sbcl-fare-utils)))
6077 (arguments
6078 ;; XXX: Circular dependencies: Tests depend on subsystems,
6079 ;; which depend on the main systems.
6080 `(#:tests? #f
6081 #:phases
6082 (modify-phases %standard-phases
6083 ;; XXX: Require 1.0.0 version of fare-utils, and we package some
6084 ;; commits after 1.0.0.5, but ASDF fails to read the
6085 ;; "-REVISION-COMMIT" part generated by Guix.
6086 (add-after 'unpack 'patch-requirement
6087 (lambda _
6088 (substitute* "fare-quasiquote.asd"
6089 (("\\(:version \"fare-utils\" \"1.0.0\"\\)")
6090 "\"fare-utils\"")))))))
6091 (synopsis "Pattern-matching friendly implementation of quasiquote")
6092 (description "The main purpose of this n+2nd reimplementation of
6093 quasiquote is enable matching of quasiquoted patterns, using Optima or
6094 Trivia.")
6095 (license license:expat))))
6096
6097 (define-public cl-fare-quasiquote
6098 (sbcl-package->cl-source-package sbcl-fare-quasiquote))
6099
6100 (define-public sbcl-fare-quasiquote-optima
6101 (package
6102 (inherit sbcl-fare-quasiquote)
6103 (name "sbcl-fare-quasiquote-optima")
6104 (inputs
6105 `(("optima" ,sbcl-optima)
6106 ("fare-quasiquote" ,sbcl-fare-quasiquote)))
6107 (arguments
6108 '(#:phases
6109 (modify-phases %standard-phases
6110 (add-after 'unpack 'patch-requirement
6111 (lambda _
6112 (substitute* "fare-quasiquote-optima.asd"
6113 (("\\(:version \"optima\" \"1\\.0\"\\)")
6114 "\"optima\""))
6115 #t)))))))
6116
6117 (define-public cl-fare-quasiquote-optima
6118 (sbcl-package->cl-source-package sbcl-fare-quasiquote-optima))
6119
6120 (define-public sbcl-fare-quasiquote-readtable
6121 (package
6122 (inherit sbcl-fare-quasiquote)
6123 (name "sbcl-fare-quasiquote-readtable")
6124 (inputs
6125 `(("fare-quasiquote" ,sbcl-fare-quasiquote)
6126 ("named-readtables" ,sbcl-named-readtables)))
6127 (description "The main purpose of this n+2nd reimplementation of
6128 quasiquote is enable matching of quasiquoted patterns, using Optima or
6129 Trivia.
6130
6131 This package uses fare-quasiquote with named-readtable.")))
6132
6133 (define-public cl-fare-quasiquote-readtable
6134 (sbcl-package->cl-source-package sbcl-fare-quasiquote-readtable))
6135
6136 ;; TODO: Add support for component-less system in asdf-build-system/sbcl.
6137 (define-public sbcl-fare-quasiquote-extras
6138 (package
6139 (inherit sbcl-fare-quasiquote)
6140 (name "sbcl-fare-quasiquote-extras")
6141 (build-system asdf-build-system/sbcl)
6142 (inputs
6143 `(("fare-quasiquote-optima" ,sbcl-fare-quasiquote-optima)
6144 ("fare-quasiquote-readtable" ,sbcl-fare-quasiquote-readtable)))
6145 (arguments
6146 `(#:phases
6147 (modify-phases %standard-phases
6148 (replace 'build
6149 (lambda* (#:key outputs #:allow-other-keys)
6150 (let* ((out (assoc-ref outputs "out"))
6151 (lib (string-append out "/lib/" (%lisp-type))))
6152 (mkdir-p lib)
6153 (install-file "fare-quasiquote-extras.asd" lib)
6154 (make-file-writable
6155 (string-append lib "/fare-quasiquote-extras.asd"))
6156 #t)))
6157 (add-after 'create-asd-file 'fix-asd-file
6158 (lambda* (#:key outputs #:allow-other-keys)
6159 (let* ((out (assoc-ref outputs "out"))
6160 (lib (string-append out "/lib/" (%lisp-type)))
6161 (asd (string-append lib "/fare-quasiquote-extras.asd")))
6162 (substitute* asd
6163 ((":class")
6164 "")
6165 (("asdf/bundle:prebuilt-system")
6166 "")
6167 ((":components")
6168 "")
6169 (("\\(\\(:compiled-file \"fare-quasiquote-extras--system\"\\)\\)")
6170 "")))
6171 #t)))))
6172 (description "This library combines @code{fare-quasiquote-readtable} and
6173 @code{fare-quasiquote-optima}.")))
6174
6175 (define-public cl-fare-quasiquote-extras
6176 (package
6177 (inherit cl-fare-quasiquote)
6178 (name "cl-fare-quasiquote-extras")
6179 (build-system asdf-build-system/source)
6180 (propagated-inputs
6181 `(("fare-quasiquote" ,cl-fare-quasiquote)
6182 ("fare-quasiquote-optima" ,cl-fare-quasiquote-optima)
6183 ("fare-quasiquote-readtable" ,cl-fare-quasiquote-readtable)))
6184 (description "This library combines @code{fare-quasiquote-readtable} and
6185 @code{fare-quasiquote-optima}.")))
6186
6187 (define-public sbcl-trivia.level0
6188 (let ((commit "574901ac376ae54c9d37169fd5efab9b3b8fcc63")
6189 (revision "1"))
6190 (package
6191 (name "sbcl-trivia.level0")
6192 (build-system asdf-build-system/sbcl)
6193 (version (git-version "0.0.0" revision commit))
6194 (home-page "https://github.com/guicho271828/trivia")
6195 (source
6196 (origin
6197 (method git-fetch)
6198 (uri (git-reference
6199 (url home-page)
6200 (commit commit)))
6201 (file-name (git-file-name name version))
6202 (sha256
6203 (base32
6204 "0hf53n71xzr9sjwrxis5fivx3drclf4s39h5ck8vh21ndqj9zvdk"))))
6205 (inputs
6206 `(("alexandria" ,sbcl-alexandria)))
6207 (synopsis "Pattern matching in Common Lisp")
6208 (description "Trivia is a pattern matching compiler that is compatible
6209 with Optima, another pattern matching library for Common Lisp. It is meant to
6210 be faster and more extensible than Optima.")
6211 (license license:llgpl))))
6212
6213 (define-public sbcl-trivia.level1
6214 (package
6215 (inherit sbcl-trivia.level0)
6216 (name "sbcl-trivia.level1")
6217 (inputs
6218 `(("trivia.level0" ,sbcl-trivia.level0)))
6219 (description "Trivia is a pattern matching compiler that is compatible
6220 with Optima, another pattern matching library for Common Lisp. It is meant to
6221 be faster and more extensible than Optima.
6222
6223 This system contains the core patterns of Trivia.")))
6224
6225 (define-public sbcl-trivia.level2
6226 (package
6227 (inherit sbcl-trivia.level0)
6228 (name "sbcl-trivia.level2")
6229 (inputs
6230 `(("trivia.level1" ,sbcl-trivia.level1)
6231 ("lisp-namespace" ,sbcl-lisp-namespace)
6232 ("trivial-cltl2" ,sbcl-trivial-cltl2)
6233 ("closer-mop" ,sbcl-closer-mop)))
6234 (description "Trivia is a pattern matching compiler that is compatible
6235 with Optima, another pattern matching library for Common Lisp. It is meant to
6236 be faster and more extensible than Optima.
6237
6238 This system contains a non-optimized pattern matcher compatible with Optima,
6239 with extensible optimizer interface.")))
6240
6241 (define-public sbcl-trivia.trivial
6242 (package
6243 (inherit sbcl-trivia.level0)
6244 (name "sbcl-trivia.trivial")
6245 (inputs
6246 `(("trivia.level2" ,sbcl-trivia.level2)))
6247 (arguments
6248 `(#:phases
6249 (modify-phases %standard-phases
6250 (replace 'create-asd-file
6251 (lambda* (#:key outputs inputs #:allow-other-keys)
6252 (let* ((out (assoc-ref outputs "out"))
6253 (lib (string-append out "/lib/" (%lisp-type)))
6254 (level2 (assoc-ref inputs "trivia.level2")))
6255 (mkdir-p lib)
6256 (install-file "trivia.trivial.asd" lib)
6257 ;; XXX: This .asd does not have any component and the build
6258 ;; system fails to work in this case. We should update the
6259 ;; build system to handle component-less .asd.
6260 ;; TODO: How do we append to file in Guile? It seems that
6261 ;; (open-file ... "a") gets a "Permission denied".
6262 (substitute* (string-append lib "/trivia.trivial.asd")
6263 (("\"\\)")
6264 (string-append "\")
6265
6266 (progn (asdf/source-registry:ensure-source-registry)
6267 (setf (gethash
6268 \"trivia.level2\"
6269 asdf/source-registry:*source-registry*)
6270 #p\""
6271 level2
6272 "/share/common-lisp/sbcl-bundle-systems/trivia.level2.asd\"))")))))))))
6273 (description "Trivia is a pattern matching compiler that is compatible
6274 with Optima, another pattern matching library for Common Lisp. It is meant to
6275 be faster and more extensible than Optima.
6276
6277 This system contains the base level system of Trivia with a trivial optimizer.")))
6278
6279 (define-public sbcl-trivia.balland2006
6280 (package
6281 (inherit sbcl-trivia.level0)
6282 (name "sbcl-trivia.balland2006")
6283 (inputs
6284 `(("trivia.trivial" ,sbcl-trivia.trivial)
6285 ("iterate" ,sbcl-iterate)
6286 ("type-i" ,sbcl-type-i)
6287 ("alexandria" ,sbcl-alexandria)))
6288 (arguments
6289 ;; Tests are done in trivia itself.
6290 `(#:tests? #f))
6291 (description "Trivia is a pattern matching compiler that is compatible
6292 with Optima, another pattern matching library for Common Lisp. It is meant to
6293 be faster and more extensible than Optima.
6294
6295 This system contains the base level system of Trivia with a trivial optimizer.")))
6296
6297 (define-public sbcl-trivia.ppcre
6298 (package
6299 (inherit sbcl-trivia.level0)
6300 (name "sbcl-trivia.ppcre")
6301 (inputs
6302 `(("trivia.trivial" ,sbcl-trivia.trivial)
6303 ("cl-ppcre" ,sbcl-cl-ppcre)))
6304 (description "Trivia is a pattern matching compiler that is compatible
6305 with Optima, another pattern matching library for Common Lisp. It is meant to
6306 be faster and more extensible than Optima.
6307
6308 This system contains the PPCRE extension.")))
6309
6310 (define-public sbcl-trivia.quasiquote
6311 (package
6312 (inherit sbcl-trivia.level0)
6313 (name "sbcl-trivia.quasiquote")
6314 (inputs
6315 `(("trivia.trivial" ,sbcl-trivia.trivial)
6316 ("fare-quasiquote" ,sbcl-fare-quasiquote)
6317 ("fare-quasiquote-readtable" ,sbcl-fare-quasiquote-readtable)))
6318 (description "Trivia is a pattern matching compiler that is compatible
6319 with Optima, another pattern matching library for Common Lisp. It is meant to
6320 be faster and more extensible than Optima.
6321
6322 This system contains the fare-quasiquote extension.")))
6323
6324 (define-public sbcl-trivia.cffi
6325 (package
6326 (inherit sbcl-trivia.level0)
6327 (name "sbcl-trivia.cffi")
6328 (inputs
6329 `(("cffi" ,sbcl-cffi)
6330 ("trivia.trivial" ,sbcl-trivia.trivial)))
6331 (description "Trivia is a pattern matching compiler that is compatible
6332 with Optima, another pattern matching library for Common Lisp. It is meant to
6333 be faster and more extensible than Optima.
6334
6335 This system contains the CFFI foreign slot access extension.")))
6336
6337 (define-public sbcl-trivia
6338 (package
6339 (inherit sbcl-trivia.level0)
6340 (name "sbcl-trivia")
6341 (inputs
6342 `(("trivia.balland2006" ,sbcl-trivia.balland2006)))
6343 (native-inputs
6344 `(("fiveam" ,sbcl-fiveam)
6345 ("trivia.ppcre" ,sbcl-trivia.ppcre)
6346 ("trivia.quasiquote" ,sbcl-trivia.quasiquote)
6347 ("trivia.cffi" ,sbcl-trivia.cffi)
6348 ("optima" ,sbcl-optima)))
6349 (arguments
6350 `(#:test-asd-file "trivia.test.asd"
6351 #:phases
6352 (modify-phases %standard-phases
6353 (add-after 'create-asd 'remove-component
6354 ;; XXX: The original .asd has no components, but our build system
6355 ;; creates an entry nonetheless. We need to remove it for the
6356 ;; generated .asd to load properly. See trivia.trivial for a
6357 ;; similar problem.
6358 (lambda* (#:key outputs #:allow-other-keys)
6359 (let* ((out (assoc-ref outputs "out"))
6360 (asd (string-append out "/lib/" (%lisp-type) "/trivia.asd")))
6361 (substitute* asd
6362 ((" :components
6363 ")
6364 ""))
6365 (substitute* asd
6366 ((" *\\(\\(:compiled-file \"trivia--system\"\\)\\)")
6367 ""))))))))
6368 (description "Trivia is a pattern matching compiler that is compatible
6369 with Optima, another pattern matching library for Common Lisp. It is meant to
6370 be faster and more extensible than Optima.")))
6371
6372 (define-public cl-trivia
6373 (sbcl-package->cl-source-package sbcl-trivia))
6374
6375 (define-public sbcl-mk-string-metrics
6376 (package
6377 (name "sbcl-mk-string-metrics")
6378 (version "0.1.2")
6379 (home-page "https://github.com/cbaggers/mk-string-metrics/")
6380 (source (origin
6381 (method git-fetch)
6382 (uri (git-reference
6383 (url home-page)
6384 (commit version)))
6385 (sha256
6386 (base32 "0bg0bv2mfd4k0g3x72x563hvmrx18xavaffr6xk5rh4if5j7kcf6"))
6387 (file-name (git-file-name name version))))
6388 (build-system asdf-build-system/sbcl)
6389 (synopsis "Calculate various string metrics efficiently in Common Lisp")
6390 (description "This library implements efficient algorithms that calculate
6391 various string metrics in Common Lisp:
6392
6393 @itemize
6394 @item Damerau-Levenshtein distance
6395 @item Hamming distance
6396 @item Jaccard similarity coefficient
6397 @item Jaro distance
6398 @item Jaro-Winkler distance
6399 @item Levenshtein distance
6400 @item Normalized Damerau-Levenshtein distance
6401 @item Normalized Levenshtein distance
6402 @item Overlap coefficient
6403 @end itemize\n")
6404 (license license:x11)))
6405
6406 (define-public cl-mk-string-metrics
6407 (sbcl-package->cl-source-package sbcl-mk-string-metrics))
6408
6409 (define-public sbcl-cl-str
6410 (let ((commit "eb480f283e28802d67b35bf916506701152f9a2a"))
6411 (package
6412 (name "sbcl-cl-str")
6413 (version (git-version "0.17" "1" commit))
6414 (home-page "https://github.com/vindarel/cl-str")
6415 (source (origin
6416 (method git-fetch)
6417 (uri (git-reference
6418 (url home-page)
6419 (commit commit)))
6420 (sha256
6421 (base32 "1hpq5m8zjjnzns370zy27z2vcm1p8n2ka5ij2x67gyc9amz9vla0"))
6422 (file-name (git-file-name name version))))
6423 (build-system asdf-build-system/sbcl)
6424 (inputs
6425 `(("cl-ppcre" ,sbcl-cl-ppcre)
6426 ("cl-ppcre-unicode" ,sbcl-cl-ppcre-unicode)
6427 ("cl-change-case" ,sbcl-cl-change-case)))
6428 (native-inputs
6429 `(("prove" ,sbcl-prove)
6430 ("prove-asdf" ,sbcl-prove-asdf)))
6431 (arguments
6432 `(#:asd-file "str.asd"
6433 #:asd-system-name "str"
6434 #:test-asd-file "str.test.asd"))
6435 (synopsis "Modern, consistent and terse Common Lisp string manipulation library")
6436 (description "A modern and consistent Common Lisp string manipulation
6437 library that focuses on modernity, simplicity and discoverability:
6438 @code{(str:trim s)} instead of @code{(string-trim '(#\\Space ...) s)}), or
6439 @code{str:concat strings} instead of an unusual format construct; one
6440 discoverable library instead of many; consistency and composability, where
6441 @code{s} is always the last argument, which makes it easier to feed pipes and
6442 arrows.")
6443 (license license:expat))))
6444
6445 (define-public cl-str
6446 (sbcl-package->cl-source-package sbcl-cl-str))
6447
6448 (define-public sbcl-cl-xmlspam
6449 (let ((commit "ea06abcca2a73a9779bcfb09081e56665f94e22a"))
6450 (package
6451 (name "sbcl-cl-xmlspam")
6452 (build-system asdf-build-system/sbcl)
6453 (version (git-version "0.0.0" "1" commit))
6454 (home-page "https://github.com/rogpeppe/cl-xmlspam")
6455 (source
6456 (origin
6457 (method git-fetch)
6458 (uri (git-reference
6459 (url home-page)
6460 (commit commit)))
6461 (file-name (string-append name "-" version))
6462 (sha256
6463 (base32
6464 "0w4rqvrgdgk3fwfq3kx4r7wwdr2bv3b6n3bdqwsiriw9psqzpz2s"))))
6465 (inputs
6466 `(("cxml" ,sbcl-cxml)
6467 ("cl-ppcre" ,sbcl-cl-ppcre)))
6468 (synopsis "Concise, regexp-like pattern matching on streaming XML for Common Lisp")
6469 (description "CXML does an excellent job at parsing XML elements, but what
6470 do you do when you have a XML file that's larger than you want to fit in
6471 memory, and you want to extract some information from it? Writing code to deal
6472 with SAX events, or even using Klacks, quickly becomes tedious.
6473 @code{cl-xmlspam} (for XML Stream PAttern Matcher) is designed to make it easy
6474 to write code that mirrors the structure of the XML that it's parsing. It
6475 also makes it easy to shift paradigms when necessary - the usual Lisp control
6476 constructs can be used interchangeably with pattern matching, and the full
6477 power of CXML is available when necessary.")
6478 (license license:bsd-3))))
6479
6480 ;; TODO: dbus uses ASDF's package-inferred-system which is not supported by
6481 ;; asdf-build-system/sbcl as of 2019-08-02. We should fix
6482 ;; asdf-build-system/sbcl.
6483 (define-public cl-dbus
6484 (let ((commit "24b452df3a45ca5dc95015500f34baad175c981a")
6485 (revision "1"))
6486 (package
6487 (name "cl-dbus")
6488 (build-system asdf-build-system/source)
6489 (version (git-version "20190408" revision commit))
6490 (home-page "https://github.com/death/dbus")
6491 (source
6492 (origin
6493 (method git-fetch)
6494 (uri (git-reference
6495 (url home-page)
6496 (commit commit)))
6497 (file-name (git-file-name name version))
6498 (sha256
6499 (base32
6500 "0fw2q866yddbf23nk9pxphm9gsasx35vjyss82xzvndnjmzlqfl5"))))
6501 ;; Inputs must be propagated or else packages depending on this won't
6502 ;; have the necessary packages.
6503 (propagated-inputs
6504 `(("alexandria" ,sbcl-alexandria)
6505 ("trivial-garbage" ,sbcl-trivial-garbage)
6506 ("babel" ,sbcl-babel)
6507 ("iolib" ,sbcl-iolib)
6508 ("ieee-floats" ,sbcl-ieee-floats)
6509 ("flexi-streams" ,sbcl-flexi-streams)
6510 ("cl-xmlspam" ,sbcl-cl-xmlspam)
6511 ("ironclad" ,sbcl-ironclad)))
6512 (synopsis "D-Bus client library for Common Lisp")
6513 (description "This is a Common Lisp library that publishes D-Bus
6514 objects as well as send and notify other objects connected to a bus.")
6515 (license license:bsd-2))))
6516
6517 (define-public sbcl-cl-hooks
6518 (let ((commit "5b638083f3b4f1221a52631d9c8a0a265565cac7")
6519 (revision "1"))
6520 (package
6521 (name "sbcl-cl-hooks")
6522 (build-system asdf-build-system/sbcl)
6523 (version (git-version "0.2.1" revision commit))
6524 (home-page "https://github.com/scymtym/architecture.hooks")
6525 (source
6526 (origin
6527 (method git-fetch)
6528 (uri (git-reference
6529 (url home-page)
6530 (commit commit)))
6531 (file-name (git-file-name name version))
6532 (sha256
6533 (base32
6534 "0bg3l0a28lw5gqqjp6p6b5nhwqk46sgkb7184w5qbfngw1hk8x9y"))))
6535 (inputs
6536 `(("alexandria" ,sbcl-alexandria)
6537 ("let-plus" ,sbcl-let-plus)
6538 ("trivial-garbage" ,sbcl-trivial-garbage)
6539 ("closer-mop" ,sbcl-closer-mop)))
6540 (native-inputs
6541 `(("fiveam" ,sbcl-fiveam)))
6542 (synopsis "Hooks extension point mechanism (as in Emacs) for Common Lisp")
6543 (description "A hook, in the present context, is a certain kind of
6544 extension point in a program that allows interleaving the execution of
6545 arbitrary code with the execution of a the program without introducing any
6546 coupling between the two. Hooks are used extensively in the extensible editor
6547 Emacs.
6548
6549 In the Common LISP Object System (CLOS), a similar kind of extensibility is
6550 possible using the flexible multi-method dispatch mechanism. It may even seem
6551 that the concept of hooks does not provide any benefits over the possibilities
6552 of CLOS. However, there are some differences:
6553
6554 @itemize
6555
6556 @item There can be only one method for each combination of specializers and
6557 qualifiers. As a result this kind of extension point cannot be used by
6558 multiple extensions independently.
6559 @item Removing code previously attached via a @code{:before}, @code{:after} or
6560 @code{:around} method can be cumbersome.
6561 @item There could be other or even multiple extension points besides @code{:before}
6562 and @code{:after} in a single method.
6563 @item Attaching codes to individual objects using eql specializers can be
6564 cumbersome.
6565 @item Introspection of code attached a particular extension point is
6566 cumbersome since this requires enumerating and inspecting the methods of a
6567 generic function.
6568 @end itemize
6569
6570 This library tries to complement some of these weaknesses of method-based
6571 extension-points via the concept of hooks.")
6572 (license license:llgpl))))
6573
6574 (define-public cl-hooks
6575 (sbcl-package->cl-source-package sbcl-cl-hooks))
6576
6577 (define-public ecl-cl-hooks
6578 (sbcl-package->ecl-package sbcl-cl-hooks))
6579
6580 (define-public sbcl-s-sysdeps
6581 ;; No release since 2013.
6582 (let ((commit "9aa23bbdceb24bcdbe0e7c39fa1901858f823106")
6583 (revision "2"))
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 "1fh8r7kf8s3hvqdg6b71b8p7w3v2kkga9bw8j3qqdxhzr6anpm0b"))))
6599 (inputs
6600 `(("bordeaux-threads" ,sbcl-bordeaux-threads)
6601 ("usocket" ,sbcl-usocket)
6602 ("usocket-server" ,sbcl-usocket-server)))
6603 (synopsis "Common Lisp abstraction layer over platform dependent functionality")
6604 (description "@code{s-sysdeps} is an abstraction layer over platform
6605 dependent functionality. This simple package is used as a building block in a
6606 number of other open source projects.
6607
6608 @code{s-sysdeps} abstracts:
6609
6610 @itemize
6611 @item managing processes,
6612 @item implementing a standard TCP/IP server,
6613 @item opening a client TCP/IP socket stream,
6614 @item working with process locks.
6615 @end itemize\n")
6616 (license license:llgpl))))
6617
6618 (define-public cl-s-sysdeps
6619 (sbcl-package->cl-source-package sbcl-s-sysdeps))
6620
6621 (define-public ecl-s-sysdeps
6622 (sbcl-package->ecl-package sbcl-s-sysdeps))
6623
6624 (define-public sbcl-cl-prevalence
6625 (let ((commit "da3ed6c4594b1c2fca90c178c1993973c4bf16c9")
6626 (revision "2"))
6627 (package
6628 (name "sbcl-cl-prevalence")
6629 (build-system asdf-build-system/sbcl)
6630 (version (git-version "5" revision commit))
6631 (home-page "https://github.com/40ants/cl-prevalence")
6632 (source
6633 (origin
6634 (method git-fetch)
6635 (uri (git-reference
6636 (url home-page)
6637 (commit commit)))
6638 (file-name (git-file-name name version))
6639 (sha256
6640 (base32
6641 "0bq905hv1626dl6b7s0zn4lbdh608g1pxaljl1fda6pwp9hmj95a"))))
6642 (inputs
6643 `(("s-sysdeps" ,sbcl-s-sysdeps)
6644 ("s-xml" ,sbcl-s-xml)))
6645 (synopsis "Implementation of object prevalence for Common Lisp")
6646 (description "This Common Lisp library implements object prevalence (see
6647 @url{https://en.wikipedia.org/wiki/System_prevalence}). It allows
6648 for (de)serializing to and from s-exps as well as XML. Serialization of arbitrary
6649 classes and cyclic data structures are supported.")
6650 (license license:llgpl))))
6651
6652 (define-public cl-prevalence
6653 (sbcl-package->cl-source-package sbcl-cl-prevalence))
6654
6655 (define-public ecl-cl-prevalence
6656 (sbcl-package->ecl-package sbcl-cl-prevalence))
6657
6658 (define-public sbcl-series
6659 (let ((commit "da9061b336119d1e5214aff9117171d494d5a58a")
6660 (revision "1"))
6661 (package
6662 (name "sbcl-series")
6663 (version (git-version "2.2.11" revision commit))
6664 (source
6665 (origin
6666 (method git-fetch)
6667 (uri (git-reference
6668 (url "git://git.code.sf.net/p/series/series")
6669 (commit commit)))
6670 (file-name (git-file-name name version))
6671 (sha256
6672 (base32
6673 "07hk2lhfx42zk018pxqvn4gs77vd4n4g8m4xxbqaxgca76mifwfw"))))
6674 (build-system asdf-build-system/sbcl)
6675 (arguments
6676 ;; Disable the tests, they are apparently buggy and I didn't find
6677 ;; a simple way to make them run and pass.
6678 '(#:tests? #f))
6679 (synopsis "Series data structure for Common Lisp")
6680 (description
6681 "This Common Lisp library provides a series data structure much like
6682 a sequence, with similar kinds of operations. The difference is that in many
6683 situations, operations on series may be composed functionally and yet execute
6684 iteratively, without the need to construct intermediate series values
6685 explicitly. In this manner, series provide both the clarity of a functional
6686 programming style and the efficiency of an iterative programming style.")
6687 (home-page "http://series.sourceforge.net/")
6688 (license license:expat))))
6689
6690 (define-public cl-series
6691 (sbcl-package->cl-source-package sbcl-series))
6692
6693 (define-public ecl-series
6694 (sbcl-package->ecl-package sbcl-series))
6695
6696 (define-public sbcl-periods
6697 (let ((commit "983d4a57325db3c8def942f163133cec5391ec28")
6698 (revision "1"))
6699 (package
6700 (name "sbcl-periods")
6701 (version (git-version "0.0.2" revision commit))
6702 (source
6703 (origin
6704 (method git-fetch)
6705 (uri (git-reference
6706 (url "https://github.com/jwiegley/periods.git")
6707 (commit commit)))
6708 (file-name (git-file-name name version))
6709 (sha256
6710 (base32
6711 "0z30jr3lxz3cmi019fsl4lgcgwf0yqpn95v9zkkkwgymdrkd4lga"))))
6712 (build-system asdf-build-system/sbcl)
6713 (inputs
6714 `(("local-time" ,sbcl-local-time)))
6715 (synopsis "Common Lisp library for manipulating date/time objects")
6716 (description
6717 "Periods is a Common Lisp library providing a set of utilities for
6718 manipulating times, distances between times, and both contiguous and
6719 discontiguous ranges of time.")
6720 (home-page "https://github.com/jwiegley/periods")
6721 (license license:bsd-3))))
6722
6723 (define-public cl-periods
6724 (sbcl-package->cl-source-package sbcl-periods))
6725
6726 (define-public ecl-periods
6727 (sbcl-package->ecl-package sbcl-periods))
6728
6729 (define-public sbcl-periods-series
6730 (package
6731 (inherit sbcl-periods)
6732 (name "sbcl-periods-series")
6733 (inputs
6734 `(("periods" ,sbcl-periods)
6735 ("series" ,sbcl-series)))
6736 (arguments
6737 '(#:asd-file "periods-series.asd"
6738 #:asd-system-name "periods-series"))
6739 (description
6740 "Periods-series is an extension of the periods Common Lisp library
6741 providing functions compatible with the series Common Lisp library.")))
6742
6743 (define-public cl-periods-series
6744 (sbcl-package->cl-source-package sbcl-periods-series))
6745
6746 (define-public ecl-periods-series
6747 (sbcl-package->ecl-package sbcl-periods-series))
6748
6749 (define-public sbcl-metatilities-base
6750 (let ((commit "6eaa9e3ff0939a93a92109dd0fcd218de85417d5")
6751 (revision "1"))
6752 (package
6753 (name "sbcl-metatilities-base")
6754 (version (git-version "0.6.6" revision commit))
6755 (source
6756 (origin
6757 (method git-fetch)
6758 (uri (git-reference
6759 (url "https://github.com/gwkkwg/metatilities-base.git")
6760 (commit commit)))
6761 (file-name (git-file-name name version))
6762 (sha256
6763 (base32
6764 "0xpa86pdzlnf4v5g64j3ifaplx71sx2ha8b7vvakswi652679ma0"))))
6765 (build-system asdf-build-system/sbcl)
6766 (native-inputs
6767 `(("lift" ,sbcl-lift)))
6768 (synopsis "Core of the metatilities Common Lisp library")
6769 (description
6770 "Metatilities-base is the core of the metatilities Common Lisp library
6771 which implements a set of utilities.")
6772 (home-page "https://common-lisp.net/project/metatilities-base/")
6773 (license license:expat))))
6774
6775 (define-public cl-metatilities-base
6776 (sbcl-package->cl-source-package sbcl-metatilities-base))
6777
6778 (define-public ecl-metatilities-base
6779 (sbcl-package->ecl-package sbcl-metatilities-base))
6780
6781 (define-public sbcl-cl-containers
6782 (let ((commit "3d1df53c22403121bffb5d553cf7acb1503850e7")
6783 (revision "3"))
6784 (package
6785 (name "sbcl-cl-containers")
6786 (version (git-version "0.12.1" revision commit))
6787 (source
6788 (origin
6789 (method git-fetch)
6790 (uri (git-reference
6791 (url "https://github.com/gwkkwg/cl-containers.git")
6792 (commit commit)))
6793 (file-name (git-file-name name version))
6794 (sha256
6795 (base32
6796 "18s6jfq11n8nv9k4biz32pm1s7y9zl054ry1gmdbcf39nisy377y"))))
6797 (build-system asdf-build-system/sbcl)
6798 (native-inputs
6799 `(("lift" ,sbcl-lift)))
6800 (inputs
6801 `(("metatilities-base" ,sbcl-metatilities-base)))
6802 (arguments
6803 '(#:phases
6804 (modify-phases %standard-phases
6805 (add-after 'unpack 'relax-version-checks
6806 (lambda _
6807 (substitute* "cl-containers.asd"
6808 (("\\(:version \"metatilities-base\" \"0\\.6\\.6\"\\)")
6809 "\"metatilities-base\""))
6810 (substitute* "cl-containers-test.asd"
6811 (("\\(:version \"lift\" \"1\\.7\\.0\"\\)")
6812 "\"lift\""))
6813 #t)))))
6814 (synopsis "Container library for Common Lisp")
6815 (description
6816 "Common Lisp ships with a set of powerful built in data structures
6817 including the venerable list, full featured arrays, and hash-tables.
6818 CL-containers enhances and builds on these structures by adding containers
6819 that are not available in native Lisp (for example: binary search trees,
6820 red-black trees, sparse arrays and so on), and by providing a standard
6821 interface so that they are simpler to use and so that changing design
6822 decisions becomes significantly easier.")
6823 (home-page "https://common-lisp.net/project/cl-containers/")
6824 (license license:expat))))
6825
6826 (define-public cl-containers
6827 (sbcl-package->cl-source-package sbcl-cl-containers))
6828
6829 (define-public ecl-cl-containers
6830 (sbcl-package->ecl-package sbcl-cl-containers))
6831
6832 (define-public sbcl-xlunit
6833 (let ((commit "3805d34b1d8dc77f7e0ee527a2490194292dd0fc")
6834 (revision "1"))
6835 (package
6836 (name "sbcl-xlunit")
6837 (version (git-version "0.6.3" revision commit))
6838 (source
6839 (origin
6840 (method git-fetch)
6841 (uri (git-reference
6842 (url "http://git.kpe.io/xlunit.git")
6843 (commit commit)))
6844 (file-name (git-file-name name version))
6845 (sha256
6846 (base32
6847 "0argfmp9nghs4sihyj3f8ch9qfib2b7ll07v5m9ziajgzsfl5xw3"))))
6848 (build-system asdf-build-system/sbcl)
6849 (arguments
6850 '(#:phases
6851 (modify-phases %standard-phases
6852 (add-after 'unpack 'fix-tests
6853 (lambda _
6854 (substitute* "xlunit.asd"
6855 ((" :force t") ""))
6856 #t)))))
6857 (synopsis "Unit testing package for Common Lisp")
6858 (description
6859 "The XLUnit package is a toolkit for building test suites. It is based
6860 on the XPTest package by Craig Brozensky and the JUnit package by Kent Beck.")
6861 (home-page "http://quickdocs.org/xlunit/")
6862 (license license:bsd-3))))
6863
6864 (define-public cl-xlunit
6865 (sbcl-package->cl-source-package sbcl-xlunit))
6866
6867 (define-public ecl-xlunit
6868 (sbcl-package->ecl-package sbcl-xlunit))
6869
6870 (define-public sbcl-fprog
6871 (let ((commit "7016d1a98215f82605d1c158e7a16504ca1f4636")
6872 (revision "1"))
6873 (package
6874 (name "sbcl-fprog")
6875 (version (git-version "1.0.0" revision commit))
6876 (source
6877 (origin
6878 (method git-fetch)
6879 (uri (git-reference
6880 (url "https://github.com/jwiegley/cambl.git")
6881 (commit commit)))
6882 (file-name (git-file-name name version))
6883 (sha256
6884 (base32
6885 "103mry04j2k9vznsxm7wcvccgxkil92cdrv52miwcmxl8daa4jiz"))))
6886 (build-system asdf-build-system/sbcl)
6887 (synopsis "Functional programming utilities for Common Lisp")
6888 (description
6889 "@code{fprog} is a Common Lisp library allowing iteration over
6890 immutable lists sharing identical sublists.")
6891 (home-page "https://github.com/jwiegley/cambl")
6892 (license license:bsd-3))))
6893
6894 (define-public cl-fprog
6895 (sbcl-package->cl-source-package sbcl-fprog))
6896
6897 (define-public ecl-fprog
6898 (sbcl-package->ecl-package sbcl-fprog))
6899
6900 (define-public sbcl-cambl
6901 (let ((commit "7016d1a98215f82605d1c158e7a16504ca1f4636")
6902 (revision "1"))
6903 (package
6904 (inherit sbcl-fprog)
6905 (name "sbcl-cambl")
6906 (version (git-version "4.0.0" revision commit))
6907 (native-inputs
6908 `(("xlunit" ,sbcl-xlunit)))
6909 (inputs
6910 `(("alexandria" ,sbcl-alexandria)
6911 ("cl-containers" ,sbcl-cl-containers)
6912 ("local-time" ,sbcl-local-time)
6913 ("periods" ,sbcl-periods)
6914 ("fprog" ,sbcl-fprog)))
6915 (synopsis "Commoditized amounts and balances for Common Lisp")
6916 (description
6917 "CAMBL is a Common Lisp library providing a convenient facility for
6918 working with commoditized values. It does not allow compound units (and so is
6919 not suited for scientific operations) but does work rather nicely for the
6920 purpose of financial calculations."))))
6921
6922 (define-public cl-cambl
6923 (sbcl-package->cl-source-package sbcl-cambl))
6924
6925 (define-public ecl-cambl
6926 (sbcl-package->ecl-package sbcl-cambl))
6927
6928 (define-public sbcl-cl-ledger
6929 (let ((commit "08e0be41795e804cd36142e51756ad0b1caa377b")
6930 (revision "1"))
6931 (package
6932 (name "sbcl-cl-ledger")
6933 (version (git-version "4.0.0" revision commit))
6934 (source
6935 (origin
6936 (method git-fetch)
6937 (uri (git-reference
6938 (url "https://github.com/ledger/cl-ledger.git")
6939 (commit commit)))
6940 (file-name (git-file-name name version))
6941 (sha256
6942 (base32
6943 "1via0qf6wjcyxnfbmfxjvms0ik9j8rqbifgpmnhrzvkhrq9pv8h1"))))
6944 (build-system asdf-build-system/sbcl)
6945 (inputs
6946 `(("cambl" ,sbcl-cambl)
6947 ("cl-ppcre" ,sbcl-cl-ppcre)
6948 ("local-time" ,sbcl-local-time)
6949 ("periods-series" ,sbcl-periods-series)))
6950 (arguments
6951 '(#:phases
6952 (modify-phases %standard-phases
6953 (add-after 'unpack 'fix-system-definition
6954 (lambda _
6955 (substitute* "cl-ledger.asd"
6956 ((" :build-operation program-op") "")
6957 ((" :build-pathname \"cl-ledger\"") "")
6958 ((" :entry-point \"ledger::main\"") ""))
6959 #t)))))
6960 (synopsis "Common Lisp port of the Ledger accounting system")
6961 (description
6962 "CL-Ledger is a Common Lisp port of the Ledger double-entry accounting
6963 system.")
6964 (home-page "https://github.com/ledger/cl-ledger")
6965 (license license:bsd-3))))
6966
6967 (define-public cl-ledger
6968 (sbcl-package->cl-source-package sbcl-cl-ledger))
6969
6970 (define-public ecl-cl-ledger
6971 (sbcl-package->ecl-package sbcl-cl-ledger))
6972
6973 (define-public sbcl-bst
6974 (let ((commit "34f9c7e8e0a9f2c952fe310ab36cb630d5d9c15a")
6975 (revision "1"))
6976 (package
6977 (name "sbcl-bst")
6978 (version (git-version "1.1" revision commit))
6979 (source
6980 (origin
6981 (method git-fetch)
6982 (uri (git-reference
6983 (url "https://github.com/glv2/bst.git")
6984 (commit commit)))
6985 (file-name (git-file-name name version))
6986 (sha256
6987 (base32
6988 "1amxns7hvvh4arwbh8ciwfzplg127vh37dnbamv1m1kmmnmihfc8"))))
6989 (build-system asdf-build-system/sbcl)
6990 (native-inputs
6991 `(("alexandria" ,sbcl-alexandria)
6992 ("fiveam" ,sbcl-fiveam)))
6993 (synopsis "Binary search tree for Common Lisp")
6994 (description
6995 "BST is a Common Lisp library for working with binary search trees that
6996 can contain any kind of values.")
6997 (home-page "https://github.com/glv2/bst")
6998 (license license:gpl3))))
6999
7000 (define-public cl-bst
7001 (sbcl-package->cl-source-package sbcl-bst))
7002
7003 (define-public ecl-bst
7004 (sbcl-package->ecl-package sbcl-bst))
7005
7006 (define-public sbcl-cl-octet-streams
7007 (package
7008 (name "sbcl-cl-octet-streams")
7009 (version "1.0")
7010 (source
7011 (origin
7012 (method git-fetch)
7013 (uri (git-reference
7014 (url "https://github.com/glv2/cl-octet-streams.git")
7015 (commit (string-append "v" version))))
7016 (file-name (git-file-name name version))
7017 (sha256
7018 (base32
7019 "1d7mn6ydv0j2x4r7clpc9ijjwrnfpxmvhifv8n5j7jh7s744sf8d"))))
7020 (build-system asdf-build-system/sbcl)
7021 (native-inputs
7022 `(("fiveam" ,sbcl-fiveam)))
7023 (inputs
7024 `(("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
7025 (synopsis "In-memory octet streams for Common Lisp")
7026 (description
7027 "CL-octet-streams is a library implementing in-memory octet
7028 streams for Common Lisp. It was inspired by the trivial-octet-streams and
7029 cl-plumbing libraries.")
7030 (home-page "https://github.com/glv2/cl-octet-streams")
7031 (license license:gpl3+)))
7032
7033 (define-public cl-octet-streams
7034 (sbcl-package->cl-source-package sbcl-cl-octet-streams))
7035
7036 (define-public ecl-cl-octet-streams
7037 (sbcl-package->ecl-package sbcl-cl-octet-streams))
7038
7039 (define-public sbcl-lzlib
7040 (let ((commit "0de1db7129fef9a58a059d35a2fa2ecfc5b47b47")
7041 (revision "1"))
7042 (package
7043 (name "sbcl-lzlib")
7044 (version (git-version "1.0" revision commit))
7045 (source
7046 (origin
7047 (method git-fetch)
7048 (uri (git-reference
7049 (url "https://github.com/glv2/cl-lzlib.git")
7050 (commit commit)))
7051 (file-name (git-file-name name version))
7052 (sha256
7053 (base32
7054 "12ny7vj52fgnd8hb8fc8mry92vq4c1x72x2350191m4476j95clz"))))
7055 (build-system asdf-build-system/sbcl)
7056 (native-inputs
7057 `(("fiveam" ,sbcl-fiveam)))
7058 (inputs
7059 `(("cffi" ,sbcl-cffi)
7060 ("cl-octet-streams" ,sbcl-cl-octet-streams)
7061 ("lzlib" ,lzlib)))
7062 (arguments
7063 '(#:phases
7064 (modify-phases %standard-phases
7065 (add-after 'unpack 'fix-paths
7066 (lambda* (#:key inputs #:allow-other-keys)
7067 (substitute* "src/lzlib.lisp"
7068 (("liblz\\.so")
7069 (string-append (assoc-ref inputs "lzlib") "/lib/liblz.so")))
7070 #t)))))
7071 (synopsis "Common Lisp library for lzip (de)compression")
7072 (description
7073 "This Common Lisp library provides functions for lzip (LZMA)
7074 compression/decompression using bindings to the lzlib C library.")
7075 (home-page "https://github.com/glv2/cl-lzlib")
7076 (license license:gpl3+))))
7077
7078 (define-public cl-lzlib
7079 (sbcl-package->cl-source-package sbcl-lzlib))
7080
7081 (define-public ecl-lzlib
7082 (sbcl-package->ecl-package sbcl-lzlib))
7083
7084 (define-public sbcl-chanl
7085 (let ((commit "56e90a126c78b39bb621a01585e8d3b985238e8c")
7086 (revision "1"))
7087 (package
7088 (name "sbcl-chanl")
7089 (version (git-version "0.4.1" revision commit))
7090 (source
7091 (origin
7092 (method git-fetch)
7093 (uri (git-reference
7094 (url "https://github.com/zkat/chanl.git")
7095 (commit commit)))
7096 (file-name (git-file-name name version))
7097 (sha256
7098 (base32
7099 "0b1cf6c12qx5cy1fw2z42jgh566rp3l8nv5qf0qqc569s7bgmrh4"))))
7100 (build-system asdf-build-system/sbcl)
7101 (native-inputs
7102 `(("fiveam" ,sbcl-fiveam)))
7103 (inputs
7104 `(("bordeaux-threads" ,sbcl-bordeaux-threads)))
7105 (synopsis "Portable channel-based concurrency for Common Lisp")
7106 (description "Common Lisp library for channel-based concurrency. In
7107 a nutshell, you create various threads sequentially executing tasks you need
7108 done, and use channel objects to communicate and synchronize the state of these
7109 threads.")
7110 (home-page "https://github.com/zkat/chanl")
7111 (license (list license:expat license:bsd-3)))))
7112
7113 (define-public cl-chanl
7114 (sbcl-package->cl-source-package sbcl-chanl))
7115
7116 (define-public ecl-chanl
7117 (sbcl-package->ecl-package sbcl-chanl))
7118
7119 (define-public sbcl-cl-store
7120 (let ((commit "c787337a16ea8cf8a06227f35933a4ec774746b3")
7121 (revision "1"))
7122 (package
7123 (name "sbcl-cl-store")
7124 (version (git-version "0.8.11" revision commit))
7125 (source
7126 (origin
7127 (method git-fetch)
7128 (uri (git-reference
7129 (url "https://github.com/skypher/cl-store.git")
7130 (commit commit)))
7131 (file-name (git-file-name name version))
7132 (sha256
7133 (base32
7134 "194srkg8nrym19c6i7zbnkzshc1qhqa82m53qnkirz9fw928bqxr"))))
7135 (build-system asdf-build-system/sbcl)
7136 (native-inputs
7137 `(("rt" ,sbcl-rt)))
7138 (synopsis "Common Lisp library to serialize data")
7139 (description
7140 "CL-STORE is a portable serialization package which should give you the
7141 ability to store all Common Lisp data types into streams.")
7142 (home-page "https://www.common-lisp.net/project/cl-store/")
7143 (license license:expat))))
7144
7145 (define-public cl-store
7146 (sbcl-package->cl-source-package sbcl-cl-store))
7147
7148 (define-public ecl-cl-store
7149 (sbcl-package->ecl-package sbcl-cl-store))
7150
7151 (define-public sbcl-cl-gobject-introspection
7152 (let ((commit "7b703e2384945ea0ac39d9b766de434a08d81560")
7153 (revision "0"))
7154 (package
7155 (name "sbcl-cl-gobject-introspection")
7156 (version (git-version "0.3" revision commit))
7157 (home-page "https://github.com/andy128k/cl-gobject-introspection")
7158 (source
7159 (origin
7160 (method git-fetch)
7161 (uri (git-reference
7162 (url home-page)
7163 (commit commit)))
7164 (file-name (git-file-name name version))
7165 (sha256
7166 (base32
7167 "1zcqd2qj14f6b38vys8gr89s6cijsp9r8j43xa8lynilwva7bwyh"))))
7168 (build-system asdf-build-system/sbcl)
7169 (inputs
7170 `(("alexandria" ,sbcl-alexandria)
7171 ("cffi" ,sbcl-cffi)
7172 ("iterate" ,sbcl-iterate)
7173 ("trivial-garbage" ,sbcl-trivial-garbage)
7174 ("glib" ,glib)
7175 ("gobject-introspection" ,gobject-introspection)))
7176 (native-inputs
7177 `(("fiveam" ,sbcl-fiveam)))
7178 (arguments
7179 ;; TODO: Tests fail, see
7180 ;; https://github.com/andy128k/cl-gobject-introspection/issues/70.
7181 '(#:tests? #f
7182 #:phases
7183 (modify-phases %standard-phases
7184 (add-after (quote unpack) (quote fix-paths)
7185 (lambda* (#:key inputs #:allow-other-keys)
7186 (substitute* "src/init.lisp"
7187 (("libgobject-2\\.0\\.so")
7188 (string-append (assoc-ref inputs "glib") "/lib/libgobject-2.0.so"))
7189 (("libgirepository-1\\.0\\.so")
7190 (string-append (assoc-ref inputs "gobject-introspection")
7191 "/lib/libgirepository-1.0.so")))
7192 #t)))))
7193 (synopsis "Common Lisp bindings to GObject Introspection")
7194 (description
7195 "This library is a bridge between Common Lisp and GObject
7196 Introspection, which enables Common Lisp programs to access the full interface
7197 of C+GObject libraries without the need of writing dedicated bindings.")
7198 (license (list license:bsd-3
7199 ;; Tests are under a different license.
7200 license:llgpl)))))
7201
7202 (define-public cl-gobject-introspection
7203 (sbcl-package->cl-source-package sbcl-cl-gobject-introspection))
7204
7205 (define-public sbcl-string-case
7206 (let ((commit "718c761e33749e297cd2809c7ba3ade1985c49f7")
7207 (revision "0"))
7208 (package
7209 (name "sbcl-string-case")
7210 (version (git-version "0.0.2" revision commit))
7211 (home-page "https://github.com/pkhuong/string-case")
7212 (source
7213 (origin
7214 (method git-fetch)
7215 (uri (git-reference
7216 (url home-page)
7217 (commit commit)))
7218 (file-name (git-file-name name version))
7219 (sha256
7220 (base32
7221 "1n5i3yh0h5s636rcnwn7jwqy3rjflikra04lymimhpcshhjsk0md"))))
7222 (build-system asdf-build-system/sbcl)
7223 (synopsis "Efficient string= case in Common Lisp")
7224 (description
7225 "@code{string-case} is a Common Lisp macro that generates specialised decision
7226 trees to dispatch on string equality.")
7227 (license license:bsd-3))))
7228
7229 (define-public cl-string-case
7230 (sbcl-package->cl-source-package sbcl-string-case))
7231
7232 (define-public ecl-string-case
7233 (sbcl-package->ecl-package sbcl-string-case))
7234
7235 (define-public sbcl-global-vars
7236 (let ((commit "c749f32c9b606a1457daa47d59630708ac0c266e")
7237 (revision "0"))
7238 (package
7239 (name "sbcl-global-vars")
7240 (version (git-version "1.0.0" revision commit))
7241 (home-page "https://github.com/lmj/global-vars")
7242 (source
7243 (origin
7244 (method git-fetch)
7245 (uri (git-reference
7246 (url home-page)
7247 (commit commit)))
7248 (file-name (git-file-name name version))
7249 (sha256
7250 (base32
7251 "06m3xc8l3pgsapl8fvsi9wf6y46zs75cp9zn7zh6dc65v4s5wz3d"))))
7252 (build-system asdf-build-system/sbcl)
7253 (synopsis "Efficient global variables in Common Lisp")
7254 (description
7255 "In Common Lisp, a special variable that is never dynamically bound
7256 typically serves as a stand-in for a global variable. The @code{global-vars}
7257 library provides true global variables that are implemented by some compilers.
7258 An attempt to rebind a global variable properly results in a compiler error.
7259 That is, a global variable cannot be dynamically bound.
7260
7261 Global variables therefore allow us to communicate an intended usage that
7262 differs from special variables. Global variables are also more efficient than
7263 special variables, especially in the presence of threads.")
7264 (license license:expat))))
7265
7266 (define-public cl-global-vars
7267 (sbcl-package->cl-source-package sbcl-global-vars))
7268
7269 (define-public ecl-global-vars
7270 (sbcl-package->ecl-package sbcl-global-vars))
7271
7272 (define-public sbcl-trivial-file-size
7273 (let ((commit "1c1d672a01a446ba0391dbb4ffc40be3b0476f23")
7274 (revision "0"))
7275 (package
7276 (name "sbcl-trivial-file-size")
7277 (version (git-version "0.0.0" revision commit))
7278 (home-page "https://github.com/ruricolist/trivial-file-size")
7279 (source
7280 (origin
7281 (method git-fetch)
7282 (uri (git-reference
7283 (url home-page)
7284 (commit commit)))
7285 (file-name (git-file-name name version))
7286 (sha256
7287 (base32
7288 "17pp86c9zs4y7i1sh7q9gbfw9iqv6655k7fz8qbj9ly1ypgxp4qs"))))
7289 (build-system asdf-build-system/sbcl)
7290 (native-inputs
7291 `(("fiveam" ,sbcl-fiveam)))
7292 (synopsis "Size of a file in bytes in Common Lisp")
7293 (description
7294 "The canonical way to determine the size of a file in bytes, using Common Lisp,
7295 is to open the file with an element type of (unsigned-byte 8) and then
7296 calculate the length of the stream. This is less than ideal. In most cases
7297 it is better to get the size of the file from its metadata, using a system
7298 call.
7299
7300 This library exports a single function, file-size-in-octets. It returns the
7301 size of a file in bytes, using system calls when possible.")
7302 (license license:expat))))
7303
7304 (define-public cl-trivial-file-size
7305 (sbcl-package->cl-source-package sbcl-trivial-file-size))
7306
7307 (define-public ecl-trivial-file-size
7308 (sbcl-package->ecl-package sbcl-trivial-file-size))
7309
7310 (define-public sbcl-trivial-macroexpand-all
7311 (let ((commit "933270ac7107477de1bc92c1fd641fe646a7a8a9")
7312 (revision "0"))
7313 (package
7314 (name "sbcl-trivial-macroexpand-all")
7315 (version (git-version "0.0.0" revision commit))
7316 (home-page "https://github.com/cbaggers/trivial-macroexpand-all")
7317 (source
7318 (origin
7319 (method git-fetch)
7320 (uri (git-reference
7321 (url home-page)
7322 (commit commit)))
7323 (file-name (git-file-name name version))
7324 (sha256
7325 (base32
7326 "191hnn4b5j4i3crydmlzbm231kj0h7l8zj6mzj69r1npbzkas4bd"))))
7327 (build-system asdf-build-system/sbcl)
7328 (native-inputs
7329 `(("fiveam" ,sbcl-fiveam)))
7330 (synopsis "Portable macroexpand-all for Common Lisp")
7331 (description
7332 "This library provides a macroexpand-all function that calls the
7333 implementation specific equivalent.")
7334 (license license:unlicense))))
7335
7336 (define-public cl-trivial-macroexpand-all
7337 (sbcl-package->cl-source-package sbcl-trivial-macroexpand-all))
7338
7339 (define-public ecl-trivial-macroexpand-all
7340 (sbcl-package->ecl-package sbcl-trivial-macroexpand-all))
7341
7342 (define-public sbcl-serapeum
7343 (let ((commit "64f0c4a161bbbda7c275012ca1415b4293b9e169")
7344 (revision "1"))
7345 (package
7346 (name "sbcl-serapeum")
7347 (version (git-version "0.0.0" revision commit))
7348 (home-page "https://github.com/ruricolist/serapeum")
7349 (source
7350 (origin
7351 (method git-fetch)
7352 (uri (git-reference
7353 (url home-page)
7354 (commit commit)))
7355 (file-name (git-file-name name version))
7356 (sha256
7357 (base32
7358 "0djnj0py8hdjnk5j6shjq2kbmyxqd5sw79cilcfmpfz4dzjdgkx9"))))
7359 (build-system asdf-build-system/sbcl)
7360 (inputs
7361 `(("alexandria" ,sbcl-alexandria)
7362 ("trivia" ,sbcl-trivia)
7363 ("trivia.quasiquote" ,sbcl-trivia.quasiquote)
7364 ("split-sequence" ,sbcl-split-sequence)
7365 ("string-case" ,sbcl-string-case)
7366 ("parse-number" ,sbcl-parse-number)
7367 ("trivial-garbage" ,sbcl-trivial-garbage)
7368 ("bordeaux-threads" ,sbcl-bordeaux-threads)
7369 ("named-readtables" ,sbcl-named-readtables)
7370 ("fare-quasiquote-extras" ,sbcl-fare-quasiquote-extras)
7371 ("parse-declarations-1.0" ,sbcl-parse-declarations)
7372 ("global-vars" ,sbcl-global-vars)
7373 ("trivial-file-size" ,sbcl-trivial-file-size)
7374 ("trivial-macroexpand-all" ,sbcl-trivial-macroexpand-all)))
7375 (native-inputs
7376 `(("fiveam" ,sbcl-fiveam)
7377 ("local-time" ,sbcl-local-time)))
7378 (arguments
7379 '(#:phases
7380 (modify-phases %standard-phases
7381 (add-after 'unpack 'disable-failing-tests
7382 (lambda* (#:key inputs #:allow-other-keys)
7383 (substitute* "serapeum.asd"
7384 ;; Guix does not have Quicklisp, and probably never will.
7385 (("\\(:file \"quicklisp\"\\)") ""))
7386 #t)))))
7387 (synopsis "Common Lisp utility library beyond Alexandria")
7388 (description
7389 "Serapeum is a conservative library of Common Lisp utilities. It is a
7390 supplement, not a competitor, to Alexandria.")
7391 (license license:expat))))
7392
7393 (define-public cl-serapeum
7394 (sbcl-package->cl-source-package sbcl-serapeum))
7395
7396 (define-public sbcl-arrows
7397 (let ((commit "df7cf0067e0132d9697ac8b1a4f1b9c88d4f5382")
7398 (revision "0"))
7399 (package
7400 (name "sbcl-arrows")
7401 (version (git-version "0.2.0" revision commit))
7402 (source
7403 (origin
7404 (method git-fetch)
7405 (uri (git-reference
7406 (url "https://gitlab.com/Harleqin/arrows.git")
7407 (commit commit)))
7408 (file-name (git-file-name name version))
7409 (sha256
7410 (base32
7411 "042k9vkssrqx9nhp14wdzm942zgdxvp35mba0p2syz98i75im2yy"))))
7412 (build-system asdf-build-system/sbcl)
7413 (native-inputs
7414 `(("hu.dwim.stefil" ,sbcl-hu.dwim.stefil)))
7415 (synopsis "Clojure-like arrow macros for Common Lisp")
7416 (description
7417 "This library implements the @code{->} and @code{->>} macros from
7418 Clojure, as well as several expansions on the idea.")
7419 (home-page "https://gitlab.com/Harleqin/arrows")
7420 (license license:public-domain))))
7421
7422 (define-public cl-arrows
7423 (sbcl-package->cl-source-package sbcl-arrows))
7424
7425 (define-public ecl-arrows
7426 (sbcl-package->ecl-package sbcl-arrows))
7427
7428 (define-public sbcl-simple-parallel-tasks
7429 (let ((commit "db460f7a3f7bbfe2d3a2223ed21e162068d04dda")
7430 (revision "0"))
7431 (package
7432 (name "sbcl-simple-parallel-tasks")
7433 (version (git-version "1.0" revision commit))
7434 (source
7435 (origin
7436 (method git-fetch)
7437 (uri (git-reference
7438 (url "https://github.com/glv2/simple-parallel-tasks.git")
7439 (commit commit)))
7440 (file-name (git-file-name name version))
7441 (sha256
7442 (base32
7443 "0amw3qk23wnlyrsgzszs6rs7y4zvxv8dr03rnqhc60mnm8ds4dd5"))))
7444 (build-system asdf-build-system/sbcl)
7445 (native-inputs
7446 `(("fiveam" ,sbcl-fiveam)))
7447 (inputs
7448 `(("chanl" ,sbcl-chanl)))
7449 (synopsis "Common Lisp library to evaluate some forms in parallel")
7450 (description "This is a simple Common Lisp library to evaluate some
7451 forms in parallel.")
7452 (home-page "https://github.com/glv2/simple-parallel-tasks")
7453 (license license:gpl3))))
7454
7455 (define-public cl-simple-parallel-tasks
7456 (sbcl-package->cl-source-package sbcl-simple-parallel-tasks))
7457
7458 (define-public ecl-simple-parallel-tasks
7459 (sbcl-package->ecl-package sbcl-simple-parallel-tasks))
7460
7461 (define-public sbcl-cl-heap
7462 (package
7463 (name "sbcl-cl-heap")
7464 (version "0.1.6")
7465 (source
7466 (origin
7467 (method url-fetch)
7468 (uri (string-append "https://common-lisp.net/project/cl-heap/releases/"
7469 "cl-heap_" version ".tar.gz"))
7470 (sha256
7471 (base32
7472 "163hb07p2nxz126rpq3cj5dyala24n0by5i5786n2qcr1w0bak4i"))))
7473 (build-system asdf-build-system/sbcl)
7474 (native-inputs
7475 `(("xlunit" ,sbcl-xlunit)))
7476 (arguments
7477 `(#:test-asd-file "cl-heap-tests.asd"))
7478 (synopsis "Heap and priority queue data structures for Common Lisp")
7479 (description
7480 "CL-HEAP provides various implementations of heap data structures (a
7481 binary heap and a Fibonacci heap) as well as an efficient priority queue.")
7482 (home-page "https://common-lisp.net/project/cl-heap/")
7483 (license license:gpl3+)))
7484
7485 (define-public cl-heap
7486 (sbcl-package->cl-source-package sbcl-cl-heap))
7487
7488 (define-public ecl-cl-heap
7489 (sbcl-package->ecl-package sbcl-cl-heap))
7490
7491 (define-public sbcl-curry-compose-reader-macros
7492 (let ((commit "beaa92dedf392726c042184bfd6149fa8d9e6ac2")
7493 (revision "0"))
7494 (package
7495 (name "sbcl-curry-compose-reader-macros")
7496 (version (git-version "1.0.0" revision commit))
7497 (source
7498 (origin
7499 (method git-fetch)
7500 (uri
7501 (git-reference
7502 (url "https://github.com/eschulte/curry-compose-reader-macros.git")
7503 (commit commit)))
7504 (file-name (git-file-name name version))
7505 (sha256
7506 (base32
7507 "0rv9bl8xrad5wfcg5zs1dazvnpmvqz6297lbn8bywsrcfnlf7h98"))))
7508 (build-system asdf-build-system/sbcl)
7509 (inputs
7510 `(("alexandria" ,sbcl-alexandria)
7511 ("named-readtables" ,sbcl-named-readtables)))
7512 (synopsis "Reader macros for partial application and composition")
7513 (description
7514 "This Common Lisp library provides reader macros for concise expression
7515 of function partial application and composition.")
7516 (home-page "https://eschulte.github.io/curry-compose-reader-macros/")
7517 (license license:public-domain))))
7518
7519 (define-public cl-curry-compose-reader-macros
7520 (sbcl-package->cl-source-package sbcl-curry-compose-reader-macros))
7521
7522 (define-public ecl-curry-compose-reader-macros
7523 (sbcl-package->ecl-package sbcl-curry-compose-reader-macros))
7524
7525 (define-public sbcl-yason
7526 (package
7527 (name "sbcl-yason")
7528 (version "0.7.7")
7529 (source
7530 (origin
7531 (method git-fetch)
7532 (uri (git-reference
7533 (url "https://github.com/phmarek/yason.git")
7534 (commit (string-append "v" version))))
7535 (file-name (git-file-name name version))
7536 (sha256
7537 (base32
7538 "0479rbjgbj80jpk5bby18inlv1kfp771a82rlcq5psrz65qqa9bj"))))
7539 (build-system asdf-build-system/sbcl)
7540 (inputs
7541 `(("alexandria" ,sbcl-alexandria)
7542 ("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
7543 (synopsis "Common Lisp JSON parser/encoder")
7544 (description
7545 "YASON is a Common Lisp library for encoding and decoding data in the
7546 JSON interchange format.")
7547 (home-page "https://github.com/phmarek/yason")
7548 (license license:bsd-3)))
7549
7550 (define-public cl-yason
7551 (sbcl-package->cl-source-package sbcl-yason))
7552
7553 (define-public ecl-yason
7554 (sbcl-package->ecl-package sbcl-yason))
7555
7556 (define-public sbcl-stefil
7557 (let ((commit "0398548ec95dceb50fc2c2c03e5fb0ce49b86c7a")
7558 (revision "0"))
7559 (package
7560 (name "sbcl-stefil")
7561 (version (git-version "0.1" revision commit))
7562 (source
7563 (origin
7564 (method git-fetch)
7565 (uri (git-reference
7566 (url "https://gitlab.common-lisp.net/stefil/stefil.git")
7567 (commit commit)))
7568 (file-name (git-file-name name version))
7569 (sha256
7570 (base32
7571 "0bqz64q2szzhf91zyqyssmvrz7da6442rs01808pf3wrdq28bclh"))))
7572 (build-system asdf-build-system/sbcl)
7573 (inputs
7574 `(("alexandria" ,sbcl-alexandria)
7575 ("iterate" ,sbcl-iterate)
7576 ("metabang-bind" ,sbcl-metabang-bind)))
7577 (propagated-inputs
7578 ;; Swank doesn't have a pre-compiled package, therefore we must
7579 ;; propagate its sources.
7580 `(("swank" ,cl-slime-swank)))
7581 (arguments
7582 '(#:phases
7583 (modify-phases %standard-phases
7584 (add-after 'unpack 'drop-unnecessary-dependency
7585 (lambda _
7586 (substitute* "package.lisp"
7587 ((":stefil-system") ""))
7588 #t)))))
7589 (home-page "https://common-lisp.net/project/stefil/index-old.shtml")
7590 (synopsis "Simple test framework")
7591 (description
7592 "Stefil is a simple test framework for Common Lisp, with a focus on
7593 interactive development.")
7594 (license license:public-domain))))
7595
7596 (define-public cl-stefil
7597 (sbcl-package->cl-source-package sbcl-stefil))
7598
7599 (define-public sbcl-graph
7600 (let ((commit "78bf9ec930d8eae4f0861b5be76765fb1e45e24f")
7601 (revision "0"))
7602 (package
7603 (name "sbcl-graph")
7604 (version (git-version "0.0.0" revision commit))
7605 (source
7606 (origin
7607 (method git-fetch)
7608 (uri
7609 (git-reference
7610 (url "https://github.com/eschulte/graph.git")
7611 (commit commit)))
7612 (file-name (git-file-name name version))
7613 (sha256
7614 (base32
7615 "1qpij4xh8bqwc2myahpilcbh916v7vg0acz2fij14d3y0jm02h0g"))
7616 (patches (search-patches "sbcl-graph-asdf-definitions.patch"))))
7617 (build-system asdf-build-system/sbcl)
7618 (native-inputs
7619 `(("stefil" ,sbcl-stefil)))
7620 (inputs
7621 `(("alexandria" ,sbcl-alexandria)
7622 ("cl-heap" ,sbcl-cl-heap)
7623 ("curry-compose-reader-macros" ,sbcl-curry-compose-reader-macros)
7624 ("metabang-bind" ,sbcl-metabang-bind)
7625 ("named-readtables" ,sbcl-named-readtables)))
7626 (arguments
7627 '(#:test-asd-file "graph-test.asd"))
7628 (synopsis "Graph data structure and algorithms for Common Lisp")
7629 (description
7630 "The GRAPH Common Lisp library provides a data structures to represent
7631 graphs, as well as some graph manipulation and analysis algorithms (shortest
7632 path, maximum flow, minimum spanning tree, etc.).")
7633 (home-page "https://eschulte.github.io/graph/")
7634 (license license:gpl3+))))
7635
7636 (define-public cl-graph
7637 (sbcl-package->cl-source-package sbcl-graph))
7638
7639 (define-public sbcl-graph-dot
7640 (package
7641 (inherit sbcl-graph)
7642 (name "sbcl-graph-dot")
7643 (inputs
7644 `(("alexandria" ,sbcl-alexandria)
7645 ("cl-ppcre" ,sbcl-cl-ppcre)
7646 ("curry-compose-reader-macros" ,sbcl-curry-compose-reader-macros)
7647 ("graph" ,sbcl-graph)
7648 ("metabang-bind" ,sbcl-metabang-bind)
7649 ("named-readtables" ,sbcl-named-readtables)))
7650 (arguments
7651 (substitute-keyword-arguments (package-arguments sbcl-graph)
7652 ((#:asd-file _ "") "graph-dot.asd")
7653 ((#:asd-system-name _ #f) "graph-dot")))
7654 (synopsis "Serialize graphs to and from DOT format")))
7655
7656 (define-public sbcl-graph-json
7657 (package
7658 (inherit sbcl-graph)
7659 (name "sbcl-graph-json")
7660 (inputs
7661 `(("alexandria" ,sbcl-alexandria)
7662 ("curry-compose-reader-macros" ,sbcl-curry-compose-reader-macros)
7663 ("graph" ,sbcl-graph)
7664 ("metabang-bind" ,sbcl-metabang-bind)
7665 ("named-readtables" ,sbcl-named-readtables)
7666 ("yason" ,sbcl-yason)))
7667 (arguments
7668 (substitute-keyword-arguments (package-arguments sbcl-graph)
7669 ((#:asd-file _ "") "graph-json.asd")
7670 ((#:asd-system-name _ #f) "graph-json")))
7671 (synopsis "Serialize graphs to and from JSON format")))
7672
7673 (define-public sbcl-trivial-indent
7674 (let ((commit "2d016941751647c6cc5bd471751c2cf68861c94a")
7675 (revision "0"))
7676 (package
7677 (name "sbcl-trivial-indent")
7678 (version (git-version "1.0.0" revision commit))
7679 (source
7680 (origin
7681 (method git-fetch)
7682 (uri
7683 (git-reference
7684 (url "https://github.com/Shinmera/trivial-indent")
7685 (commit commit)))
7686 (file-name (git-file-name name version))
7687 (sha256
7688 (base32
7689 "1sj90nqz17w4jq0ixz00gb9g5g6d2s7l8r17zdby27gxxh51w266"))))
7690 (build-system asdf-build-system/sbcl)
7691 (synopsis "Simple Common Lisp library to allow indentation hints for SWANK")
7692 (description
7693 "This library allows you to define custom indentation hints for your
7694 macros if the one recognised by SLIME automatically produces unwanted
7695 results.")
7696 (home-page "https://shinmera.github.io/trivial-indent/")
7697 (license license:zlib))))
7698
7699 (define-public cl-trivial-indent
7700 (sbcl-package->cl-source-package sbcl-trivial-indent))
7701
7702 (define-public sbcl-documentation-utils
7703 (let ((commit "98630dd5f7e36ae057fa09da3523f42ccb5d1f55")
7704 (revision "0"))
7705 (package
7706 (name "sbcl-documentation-utils")
7707 (version (git-version "1.2.0" revision commit))
7708 (source
7709 (origin
7710 (method git-fetch)
7711 (uri
7712 (git-reference
7713 (url "https://github.com/Shinmera/documentation-utils.git")
7714 (commit commit)))
7715 (file-name (git-file-name name version))
7716 (sha256
7717 (base32
7718 "098qhkqskmmrh4wix34mawf7p5c87yql28r51r75yjxj577k5idq"))))
7719 (build-system asdf-build-system/sbcl)
7720 (inputs
7721 `(("trivial-indent" ,sbcl-trivial-indent)))
7722 (synopsis "Few simple tools to document Common Lisp libraries")
7723 (description
7724 "This is a small library to help you with managing the Common Lisp
7725 docstrings for your library.")
7726 (home-page "https://shinmera.github.io/documentation-utils/")
7727 (license license:zlib))))
7728
7729 (define-public cl-documentation-utils
7730 (sbcl-package->cl-source-package sbcl-documentation-utils))
7731
7732 (define-public ecl-documentation-utils
7733 (sbcl-package->ecl-package sbcl-documentation-utils))
7734
7735 (define-public sbcl-form-fiddle
7736 (let ((commit "e0c23599dbb8cff3e83e012f3d86d0764188ad18")
7737 (revision "0"))
7738 (package
7739 (name "sbcl-form-fiddle")
7740 (version (git-version "1.1.0" revision commit))
7741 (source
7742 (origin
7743 (method git-fetch)
7744 (uri
7745 (git-reference
7746 (url "https://github.com/Shinmera/form-fiddle")
7747 (commit commit)))
7748 (file-name (git-file-name name version))
7749 (sha256
7750 (base32
7751 "041iznc9mpfyrl0sv5893ys9pbb2pvbn9g3clarqi7gsfj483jln"))))
7752 (build-system asdf-build-system/sbcl)
7753 (inputs
7754 `(("documentation-utils" ,sbcl-documentation-utils)))
7755 (synopsis "Utilities to destructure Common Lisp lambda forms")
7756 (description
7757 "Often times we need to destructure a form definition in a Common Lisp
7758 macro. This library provides a set of simple utilities to help with that.")
7759 (home-page "https://shinmera.github.io/form-fiddle/")
7760 (license license:zlib))))
7761
7762 (define-public cl-form-fiddle
7763 (sbcl-package->cl-source-package sbcl-form-fiddle))
7764
7765 (define-public sbcl-parachute
7766 (let ((commit "ca04dd8e43010a6dfffa26dbe1d62af86008d666")
7767 (revision "0"))
7768 (package
7769 (name "sbcl-parachute")
7770 (version (git-version "1.1.1" revision commit))
7771 (source
7772 (origin
7773 (method git-fetch)
7774 (uri
7775 (git-reference
7776 (url "https://github.com/Shinmera/parachute")
7777 (commit commit)))
7778 (file-name (git-file-name name version))
7779 (sha256
7780 (base32
7781 "1mvsm3r0r6a2bg75nw0q7n9vlby3ch45qjl7hnb5k1z2n5x5lh60"))))
7782 (build-system asdf-build-system/sbcl)
7783 (inputs
7784 `(("documentation-utils" ,sbcl-documentation-utils)
7785 ("form-fiddle" ,sbcl-form-fiddle)))
7786 (synopsis "Extensible and cross-compatible testing framework for Common Lisp")
7787 (description
7788 "Parachute is a simple-to-use and extensible testing framework.
7789 In Parachute, things are organised as a bunch of named tests within a package.
7790 Each test can contain a bunch of test forms that make up its body.")
7791 (home-page "https://shinmera.github.io/parachute/")
7792 (license license:zlib))))
7793
7794 (define-public cl-parachute
7795 (sbcl-package->cl-source-package sbcl-parachute))
7796
7797 (define-public sbcl-array-utils
7798 (let ((commit "f90eb9070d0b2205af51126a35033574725e5c56")
7799 (revision "0"))
7800 (package
7801 (name "sbcl-array-utils")
7802 (version (git-version "1.1.1" revision commit))
7803 (source
7804 (origin
7805 (method git-fetch)
7806 (uri
7807 (git-reference
7808 (url "https://github.com/Shinmera/array-utils")
7809 (commit commit)))
7810 (file-name (git-file-name name version))
7811 (sha256
7812 (base32
7813 "0zhwfbpr53vs1ii4sx75dz2k9yhh1xpwdqqpg8nmfndxkmhpbi3x"))))
7814 (build-system asdf-build-system/sbcl)
7815 (native-inputs
7816 `(("parachute" ,sbcl-parachute)))
7817 (inputs
7818 `(("documentation-utils" ,sbcl-documentation-utils)))
7819 (synopsis "Tiny collection of array and vector utilities for Common Lisp")
7820 (description
7821 "A miniature toolkit that contains some useful shifting/popping/pushing
7822 functions for arrays and vectors. Originally from Plump.")
7823 (home-page "https://shinmera.github.io/array-utils/")
7824 (license license:zlib))))
7825
7826 (define-public cl-array-utils
7827 (sbcl-package->cl-source-package sbcl-array-utils))
7828
7829 (define-public sbcl-plump
7830 (let ((commit "16f1231bf706cfbc54d9e55a853ca945e4452a08")
7831 (revision "0"))
7832 (package
7833 (name "sbcl-plump")
7834 (version (git-version "2.0.0" revision commit))
7835 (source
7836 (origin
7837 (method git-fetch)
7838 (uri
7839 (git-reference
7840 (url "https://github.com/Shinmera/plump")
7841 (commit commit)))
7842 (file-name (git-file-name name version))
7843 (sha256
7844 (base32
7845 "0705k8pbip51v74rccgwscwph439f2pma9f915qf1h4bhjx999ip"))))
7846 (build-system asdf-build-system/sbcl)
7847 (inputs
7848 `(("array-utils" ,sbcl-array-utils)
7849 ("documentation-utils" ,sbcl-documentation-utils)))
7850 (synopsis "Lenient XML / XHTML / HTML parser for Common Lisp")
7851 (description
7852 "Plump is a parser for HTML/XML-like documents, focusing on being
7853 lenient towards invalid markup. It can handle things like invalid attributes,
7854 bad closing tag order, unencoded entities, inexistent tag types, self-closing
7855 tags and so on. It parses documents to a class representation and offers a
7856 small set of DOM functions to manipulate it. It can be extended to parse to
7857 your own classes.")
7858 (home-page "https://shinmera.github.io/plump/")
7859 (license license:zlib))))
7860
7861 (define-public cl-plump
7862 (sbcl-package->cl-source-package sbcl-plump))
7863
7864 (define-public sbcl-antik-base
7865 (let ((commit "e4711a69b3d6bf37b5727af05c3cfd03e8428ba3")
7866 (revision "1"))
7867 (package
7868 (name "sbcl-antik-base")
7869 (version (git-version "0.0.0" revision commit))
7870 (source
7871 (origin
7872 (method git-fetch)
7873 (uri (git-reference
7874 (url "https://gitlab.common-lisp.net/antik/antik.git")
7875 (commit commit)))
7876 (file-name (git-file-name name version))
7877 (sha256
7878 (base32
7879 "047ga2c38par2xbgg4qx6hwv06qhf1c1f67as8xvir6s80lip1km"))))
7880 (build-system asdf-build-system/sbcl)
7881 (inputs
7882 `(("alexandria" ,sbcl-alexandria)
7883 ("cl-ppcre" ,sbcl-cl-ppcre)
7884 ("iterate" ,sbcl-iterate)
7885 ("metabang-bind" ,sbcl-metabang-bind)
7886 ("named-readtables" ,sbcl-named-readtables)
7887 ("split-sequence" ,sbcl-split-sequence)))
7888 (native-inputs
7889 `(("lisp-unit" ,sbcl-lisp-unit)))
7890 (synopsis "Scientific and engineering computation in Common Lisp")
7891 (description
7892 "Antik provides a foundation for scientific and engineering
7893 computation in Common Lisp. It is designed not only to facilitate
7894 numerical computations, but to permit the use of numerical computation
7895 libraries and the interchange of data and procedures, whether
7896 foreign (non-Lisp) or Lisp libraries. It is named after the
7897 Antikythera mechanism, one of the oldest examples of a scientific
7898 computer known.")
7899 (home-page "https://common-lisp.net/project/antik/")
7900 (license license:gpl3))))
7901
7902 (define-public cl-antik-base
7903 (sbcl-package->cl-source-package sbcl-antik-base))
7904
7905 (define-public ecl-antik-base
7906 (sbcl-package->ecl-package sbcl-antik-base))
7907
7908 (define-public sbcl-foreign-array
7909 (package
7910 (inherit sbcl-antik-base)
7911 (name "sbcl-foreign-array")
7912 (arguments
7913 (substitute-keyword-arguments (package-arguments sbcl-antik-base)
7914 ((#:asd-file _ "") "foreign-array.asd")
7915 ((#:asd-system-name _ #f) "foreign-array")))
7916 (inputs
7917 `(("antik-base" ,sbcl-antik-base)
7918 ("cffi" ,sbcl-cffi)
7919 ("trivial-garbage" ,sbcl-trivial-garbage)
7920 ("static-vectors" ,sbcl-static-vectors)))
7921 (synopsis "Common Lisp library providing access to foreign arrays")))
7922
7923 (define-public cl-foreign-array
7924 (sbcl-package->cl-source-package sbcl-foreign-array))
7925
7926 (define-public ecl-foreign-array
7927 (sbcl-package->ecl-package sbcl-foreign-array))
7928
7929 (define-public sbcl-physical-dimension
7930 (package
7931 (inherit sbcl-antik-base)
7932 (name "sbcl-physical-dimension")
7933 (inputs
7934 `(("fare-utils" ,sbcl-fare-utils)
7935 ("foreign-array" ,sbcl-foreign-array)
7936 ("trivial-utf-8" ,sbcl-trivial-utf-8)))
7937 (arguments
7938 (substitute-keyword-arguments (package-arguments sbcl-antik-base)
7939 ((#:asd-file _ "") "physical-dimension.asd")
7940 ((#:asd-system-name _ #f) "physical-dimension")))
7941 (synopsis
7942 "Common Lisp library providing computations with physical units")))
7943
7944 (define-public cl-physical-dimension
7945 (sbcl-package->cl-source-package sbcl-physical-dimension))
7946
7947 (define-public sbcl-science-data
7948 (package
7949 (inherit sbcl-antik-base)
7950 (name "sbcl-science-data")
7951 (inputs
7952 `(("physical-dimension" ,sbcl-physical-dimension)
7953 ("drakma" ,sbcl-drakma)))
7954 (arguments
7955 (substitute-keyword-arguments (package-arguments sbcl-antik-base)
7956 ((#:asd-file _ "") "science-data.asd")
7957 ((#:asd-system-name _ #f) "science-data")))
7958 (synopsis
7959 "Common Lisp library for scientific and engineering numerical data")))
7960
7961 (define-public cl-science-data
7962 (sbcl-package->cl-source-package sbcl-science-data))
7963
7964 (define-public sbcl-gsll
7965 (let ((commit "1a8ada22f9cf5ed7372d352b2317f4ccdb6ab308")
7966 (revision "1"))
7967 (package
7968 (name "sbcl-gsll")
7969 (version (git-version "0.0.0" revision commit))
7970 (source
7971 (origin
7972 (method git-fetch)
7973 (uri (git-reference
7974 (url "https://gitlab.common-lisp.net/antik/gsll.git")
7975 (commit commit)))
7976 (file-name (git-file-name name version))
7977 (sha256
7978 (base32
7979 "0z5nypfk26hxihb08p085644afawicrgb4xvadh3lmrn46qbjfn4"))))
7980 (build-system asdf-build-system/sbcl)
7981 (native-inputs
7982 `(("lisp-unit" ,sbcl-lisp-unit)))
7983 (inputs
7984 `(("alexandria" ,sbcl-alexandria)
7985 ("cffi-grovel" ,sbcl-cffi-grovel)
7986 ("cffi-libffi" ,sbcl-cffi-libffi)
7987 ("foreign-array" ,sbcl-foreign-array)
7988 ("gsl" ,gsl)
7989 ("metabang-bind" ,sbcl-metabang-bind)
7990 ("trivial-features" ,sbcl-trivial-features)
7991 ("trivial-garbage" ,sbcl-trivial-garbage)))
7992 (arguments
7993 `(#:tests? #f
7994 #:phases
7995 (modify-phases %standard-phases
7996 (add-after 'unpack 'fix-cffi-paths
7997 (lambda* (#:key inputs #:allow-other-keys)
7998 (substitute* "gsll.asd"
7999 ((":depends-on \\(#:foreign-array")
8000 ":depends-on (#:foreign-array #:cffi-libffi"))
8001 (substitute* "init/init.lisp"
8002 (("libgslcblas.so" all)
8003 (string-append
8004 (assoc-ref inputs "gsl") "/lib/" all)))
8005 (substitute* "init/init.lisp"
8006 (("libgsl.so" all)
8007 (string-append
8008 (assoc-ref inputs "gsl") "/lib/" all))))))))
8009 (synopsis "GNU Scientific Library for Lisp")
8010 (description
8011 "The GNU Scientific Library for Lisp (GSLL) allows the use of the
8012 GNU Scientific Library (GSL) from Common Lisp. This library provides a
8013 full range of common mathematical operations useful to scientific and
8014 engineering applications. The design of the GSLL interface is such
8015 that access to most of the GSL library is possible in a Lisp-natural
8016 way; the intent is that the user not be hampered by the restrictions
8017 of the C language in which GSL has been written. GSLL thus provides
8018 interactive use of GSL for getting quick answers, even for someone not
8019 intending to program in Lisp.")
8020 (home-page "https://common-lisp.net/project/gsll/")
8021 (license license:gpl3))))
8022
8023 (define-public cl-gsll
8024 (sbcl-package->cl-source-package sbcl-gsll))
8025
8026 (define-public sbcl-antik
8027 (package
8028 (inherit sbcl-antik-base)
8029 (name "sbcl-antik")
8030 (inputs
8031 `(("gsll" ,sbcl-gsll)
8032 ("physical-dimension" ,sbcl-physical-dimension)))
8033 (arguments
8034 (substitute-keyword-arguments (package-arguments sbcl-antik-base)
8035 ((#:asd-file _ "") "antik.asd")
8036 ((#:asd-system-name _ #f) "antik")))))
8037
8038 (define-public cl-antik
8039 (sbcl-package->cl-source-package sbcl-antik))
8040
8041 (define-public sbcl-cl-interpol
8042 (let ((commit "1fd288d861db85bc4677cff3cdd6af75fda1afb4")
8043 (revision "1"))
8044 (package
8045 (name "sbcl-cl-interpol")
8046 (version (git-version "0.2.6" revision commit))
8047 (source
8048 (origin
8049 (method git-fetch)
8050 (uri (git-reference
8051 (url "https://github.com/edicl/cl-interpol.git")
8052 (commit commit)))
8053 (file-name (git-file-name name version))
8054 (sha256
8055 (base32
8056 "1hnikak52hmcq1r5f616m6qq1108qnkw80pja950nv1fq5p0ppjn"))))
8057 (build-system asdf-build-system/sbcl)
8058 (inputs
8059 `(("cl-unicode" ,sbcl-cl-unicode)
8060 ("named-readtables" ,sbcl-named-readtables)))
8061 (native-inputs
8062 `(("flexi-streams" ,sbcl-flexi-streams)))
8063 (synopsis "String interpolation for Common Lisp")
8064 (description
8065 "CL-INTERPOL is a library for Common Lisp which modifies the
8066 reader so that you can have interpolation within strings similar to
8067 Perl or Unix Shell scripts. It also provides various ways to insert
8068 arbitrary characters into literal strings even if your editor/IDE
8069 doesn't support them.")
8070 (home-page "https://edicl.github.io/cl-interpol/")
8071 (license license:bsd-3))))
8072
8073 (define-public cl-interpol
8074 (sbcl-package->cl-source-package sbcl-cl-interpol))
8075
8076 (define-public ecl-cl-interpol
8077 (sbcl-package->ecl-package sbcl-cl-interpol))
8078
8079 (define sbcl-symbol-munger-boot0
8080 ;; There is a cyclical dependency between symbol-munger and lisp-unit2.
8081 ;; See https://github.com/AccelerationNet/symbol-munger/issues/4
8082 (let ((commit "cc2bb4b7acd454d756484aec81ba487648385fc3")
8083 (revision "1"))
8084 (package
8085 (name "sbcl-symbol-munger-boot0")
8086 (version (git-version "0.0.1" revision commit))
8087 (source
8088 (origin
8089 (method git-fetch)
8090 (uri (git-reference
8091 (url "https://github.com/AccelerationNet/symbol-munger.git")
8092 (commit commit)))
8093 (file-name (git-file-name name version))
8094 (sha256
8095 (base32
8096 "0diav5ricqsybqvbp4bkxyj3bn3v9n7xb2pqqc4vg1algsw2pyjl"))))
8097 (build-system asdf-build-system/sbcl)
8098 (arguments
8099 `(#:asd-file "symbol-munger.asd"
8100 #:asd-system-name "symbol-munger"))
8101 (inputs
8102 `(("iterate" ,sbcl-iterate)
8103 ("alexandria" ,sbcl-alexandria)))
8104 (native-inputs
8105 `(("lisp-unit" ,sbcl-lisp-unit)))
8106 (synopsis
8107 "Capitalization and spacing conversion functions for Common Lisp")
8108 (description
8109 "This is a Common Lisp library to change the capitalization and spacing
8110 of a string or a symbol. It can convert to and from Lisp, english, underscore
8111 and camel-case rules.")
8112 (home-page "https://github.com/AccelerationNet/symbol-munger")
8113 ;; The package declares a BSD license, but all of the license
8114 ;; text is MIT.
8115 ;; See https://github.com/AccelerationNet/symbol-munger/issues/5
8116 (license license:expat))))
8117
8118 (define sbcl-lisp-unit2-boot0
8119 ;; There is a cyclical dependency between symbol-munger and lisp-unit2.
8120 ;; See https://github.com/AccelerationNet/symbol-munger/issues/4
8121 (let ((commit "fb9721524d1e4e73abb223ee036d74ce14a5505c")
8122 (revision "1"))
8123 (package
8124 (name "sbcl-lisp-unit2-boot0")
8125 (version (git-version "0.2.0" revision commit))
8126 (source
8127 (origin
8128 (method git-fetch)
8129 (uri (git-reference
8130 (url "https://github.com/AccelerationNet/lisp-unit2.git")
8131 (commit commit)))
8132 (file-name (git-file-name name version))
8133 (sha256
8134 (base32
8135 "1rsqy8y0jqll6xn9a593848f5wvd5ribv4csry1ly0hmdhfnqzlp"))))
8136 (build-system asdf-build-system/sbcl)
8137 (arguments
8138 `(#:asd-file "lisp-unit2.asd"
8139 #:asd-system-name "lisp-unit2"))
8140 (inputs
8141 `(("alexandria" ,sbcl-alexandria)
8142 ("cl-interpol" ,sbcl-cl-interpol)
8143 ("iterate" ,sbcl-iterate)
8144 ("symbol-munger-boot0" ,sbcl-symbol-munger-boot0)))
8145 (synopsis "Test Framework for Common Lisp")
8146 (description
8147 "LISP-UNIT2 is a Common Lisp library that supports unit testing in the
8148 style of JUnit for Java. It is a new version of the lisp-unit library written
8149 by Chris Riesbeck.")
8150 (home-page "https://github.com/AccelerationNet/lisp-unit2")
8151 (license license:expat))))
8152
8153 (define-public sbcl-symbol-munger
8154 (let ((commit "97598d4c3c53fd5da72ab78908fbd5d8c7a13416")
8155 (revision "1"))
8156 (package
8157 (name "sbcl-symbol-munger")
8158 (version (git-version "0.0.1" revision commit))
8159 (source
8160 (origin
8161 (method git-fetch)
8162 (uri (git-reference
8163 (url "https://github.com/AccelerationNet/symbol-munger.git")
8164 (commit commit)))
8165 (file-name (git-file-name name version))
8166 (sha256
8167 (base32
8168 "0y8jywjy0ldyhp7bxf16fdvdd2qgqnd7nlhlqfpfnzxcqk4xy1km"))))
8169 (build-system asdf-build-system/sbcl)
8170 (inputs
8171 `(("alexandria" ,sbcl-alexandria)
8172 ("iterate" ,sbcl-iterate)))
8173 (native-inputs
8174 `(("lisp-unit2-boot0" ,sbcl-lisp-unit2-boot0)))
8175 (synopsis
8176 "Capitalization and spacing conversion functions for Common Lisp")
8177 (description
8178 "This is a Common Lisp library to change the capitalization and spacing
8179 of a string or a symbol. It can convert to and from Lisp, english, underscore
8180 and camel-case rules.")
8181 (home-page "https://github.com/AccelerationNet/symbol-munger")
8182 ;; The package declares a BSD license, but all of the license
8183 ;; text is MIT.
8184 ;; See https://github.com/AccelerationNet/symbol-munger/issues/5
8185 (license license:expat))))
8186
8187 (define-public cl-symbol-munger
8188 (sbcl-package->cl-source-package sbcl-symbol-munger))
8189
8190 (define-public ecl-symbol-munger
8191 (sbcl-package->ecl-package sbcl-symbol-munger))
8192
8193 (define-public sbcl-lisp-unit2
8194 (package
8195 (inherit sbcl-lisp-unit2-boot0)
8196 (name "sbcl-lisp-unit2")
8197 (inputs
8198 `(("alexandria" ,sbcl-alexandria)
8199 ("cl-interpol" ,sbcl-cl-interpol)
8200 ("iterate" ,sbcl-iterate)
8201 ("symbol-munger" ,sbcl-symbol-munger)))))
8202
8203 (define-public cl-lisp-unit2
8204 (sbcl-package->cl-source-package sbcl-lisp-unit2))
8205
8206 (define-public ecl-lisp-unit2
8207 (sbcl-package->ecl-package sbcl-lisp-unit2))
8208
8209 (define-public sbcl-cl-csv
8210 (let ((commit "3eba29c8364b033fbe0d189c2500559278b6a362")
8211 (revision "1"))
8212 (package
8213 (name "sbcl-cl-csv")
8214 (version (git-version "1.0.6" revision commit))
8215 (source
8216 (origin
8217 (method git-fetch)
8218 (uri (git-reference
8219 (url "https://github.com/AccelerationNet/cl-csv.git")
8220 (commit commit)))
8221 (file-name (git-file-name name version))
8222 (sha256
8223 (base32
8224 "07h4ni89jzx93clx453hlnnb5g53hhlcmz5hghqv6ysam48lc8g6"))))
8225 (build-system asdf-build-system/sbcl)
8226 (arguments
8227 ;; See: https://github.com/AccelerationNet/cl-csv/pull/34
8228 `(#:tests? #f))
8229 (inputs
8230 `(("alexandria" ,sbcl-alexandria)
8231 ("cl-interpol" ,sbcl-cl-interpol)
8232 ("iterate" ,sbcl-iterate)))
8233 (native-inputs
8234 `(("lisp-unit2" ,sbcl-lisp-unit2)))
8235 (synopsis "Common lisp library for comma-separated values")
8236 (description
8237 "This is a Common Lisp library providing functions to read/write CSV
8238 from/to strings, streams and files.")
8239 (home-page "https://github.com/AccelerationNet/cl-csv")
8240 (license license:bsd-3))))
8241
8242 (define-public cl-csv
8243 (sbcl-package->cl-source-package sbcl-cl-csv))
8244
8245 (define-public ecl-cl-csv
8246 (sbcl-package->ecl-package sbcl-cl-csv))
8247
8248 (define-public sbcl-external-program
8249 (let ((commit "5888b8f1fd3953feeeacecbba4384ddda584a749")
8250 (revision "1"))
8251 (package
8252 (name "sbcl-external-program")
8253 (version (git-version "0.0.6" revision commit))
8254 (source
8255 (origin
8256 (method git-fetch)
8257 (uri (git-reference
8258 (url "https://github.com/sellout/external-program.git")
8259 (commit commit)))
8260 (file-name (git-file-name name version))
8261 (sha256
8262 (base32
8263 "0vww1x3yilb3bjwg6k184vaj4vxyxw4vralhnlm6lk4xac67kc9z"))))
8264 (build-system asdf-build-system/sbcl)
8265 (inputs
8266 `(("trivial-features" ,sbcl-trivial-features)))
8267 (native-inputs
8268 `(("fiveam" ,sbcl-fiveam)))
8269 (synopsis "Common Lisp library for running external programs")
8270 (description
8271 "EXTERNAL-PROGRAM enables running programs outside the Lisp
8272 process. It is an attempt to make the RUN-PROGRAM functionality in
8273 implementations like SBCL and CCL as portable as possible without
8274 sacrificing much in the way of power.")
8275 (home-page "https://github.com/sellout/external-program")
8276 (license license:llgpl))))
8277
8278 (define-public cl-external-program
8279 (sbcl-package->cl-source-package sbcl-external-program))
8280
8281 (define-public ecl-external-program
8282 (sbcl-package->ecl-package sbcl-external-program))
8283
8284 (define sbcl-cl-ana-boot0
8285 (let ((commit "fa7cee4c50aa1c859652813049ba0da7c18a0df9")
8286 (revision "1"))
8287 (package
8288 (name "sbcl-cl-ana-boot0")
8289 (version (git-version "0.0.0" revision commit))
8290 (source
8291 (origin
8292 (method git-fetch)
8293 (uri (git-reference
8294 (url "https://github.com/ghollisjr/cl-ana.git")
8295 (commit commit)))
8296 (file-name (git-file-name name version))
8297 (sha256
8298 (base32
8299 "0mr47l57m276dbpap7irr4fcnk5fgknhf6mgv4043s8h73amk5qh"))))
8300 (build-system asdf-build-system/sbcl)
8301 (synopsis "Common Lisp data analysis library")
8302 (description
8303 "CL-ANA is a data analysis library in Common Lisp providing tabular and
8304 binned data analysis along with nonlinear least squares fitting and
8305 visualization.")
8306 (home-page "https://github.com/ghollisjr/cl-ana")
8307 (license license:gpl3))))
8308
8309 (define-public sbcl-cl-ana.pathname-utils
8310 (package
8311 (inherit sbcl-cl-ana-boot0)
8312 (name "sbcl-cl-ana.pathname-utils")
8313 (arguments
8314 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8315 ((#:asd-file _ "") "pathname-utils/cl-ana.pathname-utils.asd")
8316 ((#:asd-system-name _ #f) "cl-ana.pathname-utils")))))
8317
8318 (define-public cl-ana.pathname-utils
8319 (sbcl-package->cl-source-package sbcl-cl-ana.pathname-utils))
8320
8321 (define-public ecl-cl-ana.pathname-utils
8322 (sbcl-package->ecl-package sbcl-cl-ana.pathname-utils))
8323
8324 (define-public sbcl-cl-ana.package-utils
8325 (package
8326 (inherit sbcl-cl-ana-boot0)
8327 (name "sbcl-cl-ana.package-utils")
8328 (inputs
8329 `(("alexandria" ,sbcl-alexandria)))
8330 (arguments
8331 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8332 ((#:asd-file _ "") "package-utils/cl-ana.package-utils.asd")
8333 ((#:asd-system-name _ #f) "cl-ana.package-utils")))))
8334
8335 (define-public cl-ana.package-utils
8336 (sbcl-package->cl-source-package sbcl-cl-ana.package-utils))
8337
8338 (define-public ecl-cl-ana.package-utils
8339 (sbcl-package->ecl-package sbcl-cl-ana.package-utils))
8340
8341 (define-public sbcl-cl-ana.string-utils
8342 (package
8343 (inherit sbcl-cl-ana-boot0)
8344 (name "sbcl-cl-ana.string-utils")
8345 (inputs
8346 `(("split-sequence" ,sbcl-split-sequence)))
8347 (arguments
8348 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8349 ((#:asd-file _ "") "string-utils/cl-ana.string-utils.asd")
8350 ((#:asd-system-name _ #f) "cl-ana.string-utils")))))
8351
8352 (define-public cl-ana.string-utils
8353 (sbcl-package->cl-source-package sbcl-cl-ana.string-utils))
8354
8355 (define-public ecl-cl-ana.string-utils
8356 (sbcl-package->ecl-package sbcl-cl-ana.string-utils))
8357
8358 (define-public sbcl-cl-ana.functional-utils
8359 (package
8360 (inherit sbcl-cl-ana-boot0)
8361 (name "sbcl-cl-ana.functional-utils")
8362 (arguments
8363 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8364 ((#:asd-file _ "") "functional-utils/cl-ana.functional-utils.asd")
8365 ((#:asd-system-name _ #f) "cl-ana.functional-utils")))))
8366
8367 (define-public cl-ana.functional-utils
8368 (sbcl-package->cl-source-package sbcl-cl-ana.functional-utils))
8369
8370 (define-public ecl-cl-ana.functional-utils
8371 (sbcl-package->ecl-package sbcl-cl-ana.functional-utils))
8372
8373 (define-public sbcl-cl-ana.list-utils
8374 (package
8375 (inherit sbcl-cl-ana-boot0)
8376 (name "sbcl-cl-ana.list-utils")
8377 (inputs
8378 `(("alexandria" ,sbcl-alexandria)
8379 ("cl-ana.functional-utils" ,sbcl-cl-ana.functional-utils)
8380 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)))
8381 (arguments
8382 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8383 ((#:asd-file _ "") "list-utils/cl-ana.list-utils.asd")
8384 ((#:asd-system-name _ #f) "cl-ana.list-utils")))))
8385
8386 (define-public cl-ana.list-utils
8387 (sbcl-package->cl-source-package sbcl-cl-ana.list-utils))
8388
8389 (define-public ecl-cl-ana.list-utils
8390 (sbcl-package->ecl-package sbcl-cl-ana.list-utils))
8391
8392 (define-public sbcl-cl-ana.generic-math
8393 (package
8394 (inherit sbcl-cl-ana-boot0)
8395 (name "sbcl-cl-ana.generic-math")
8396 (inputs
8397 `(("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8398 ("cl-ana.package-utils" ,sbcl-cl-ana.package-utils)))
8399 (arguments
8400 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8401 ((#:asd-file _ "") "generic-math/cl-ana.generic-math.asd")
8402 ((#:asd-system-name _ #f) "cl-ana.generic-math")))))
8403
8404 (define-public cl-ana.generic-math
8405 (sbcl-package->cl-source-package sbcl-cl-ana.generic-math))
8406
8407 (define-public ecl-cl-ana.generic-math
8408 (sbcl-package->ecl-package sbcl-cl-ana.generic-math))
8409
8410 (define-public sbcl-cl-ana.math-functions
8411 (package
8412 (inherit sbcl-cl-ana-boot0)
8413 (name "sbcl-cl-ana.math-functions")
8414 (inputs
8415 `(("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
8416 ("gsll" ,sbcl-gsll)))
8417 (arguments
8418 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8419 ((#:asd-file _ "") "math-functions/cl-ana.math-functions.asd")
8420 ((#:asd-system-name _ #f) "cl-ana.math-functions")))))
8421
8422 (define-public cl-ana.math-functions
8423 (sbcl-package->cl-source-package sbcl-cl-ana.math-functions))
8424
8425 (define-public sbcl-cl-ana.calculus
8426 (package
8427 (inherit sbcl-cl-ana-boot0)
8428 (name "sbcl-cl-ana.calculus")
8429 (inputs
8430 `(("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)))
8431 (arguments
8432 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8433 ((#:asd-file _ "") "calculus/cl-ana.calculus.asd")
8434 ((#:asd-system-name _ #f) "cl-ana.calculus")))))
8435
8436 (define-public cl-ana.calculus
8437 (sbcl-package->cl-source-package sbcl-cl-ana.calculus))
8438
8439 (define-public ecl-cl-ana.calculus
8440 (sbcl-package->ecl-package sbcl-cl-ana.calculus))
8441
8442 (define-public sbcl-cl-ana.symbol-utils
8443 (package
8444 (inherit sbcl-cl-ana-boot0)
8445 (name "sbcl-cl-ana.symbol-utils")
8446 (inputs
8447 `(("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)))
8448 (arguments
8449 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8450 ((#:asd-file _ "") "symbol-utils/cl-ana.symbol-utils.asd")
8451 ((#:asd-system-name _ #f) "cl-ana.symbol-utils")))))
8452
8453 (define-public cl-ana.symbol-utils
8454 (sbcl-package->cl-source-package sbcl-cl-ana.symbol-utils))
8455
8456 (define-public ecl-cl-ana.symbol-utils
8457 (sbcl-package->ecl-package sbcl-cl-ana.symbol-utils))
8458
8459 (define-public sbcl-cl-ana.macro-utils
8460 (package
8461 (inherit sbcl-cl-ana-boot0)
8462 (name "sbcl-cl-ana.macro-utils")
8463 (inputs
8464 `(("alexandria" ,sbcl-alexandria)
8465 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8466 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
8467 ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)
8468 ("split-sequence" ,sbcl-split-sequence)))
8469 (arguments
8470 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8471 ((#:asd-file _ "") "macro-utils/cl-ana.macro-utils.asd")
8472 ((#:asd-system-name _ #f) "cl-ana.macro-utils")))))
8473
8474 (define-public cl-ana.macro-utils
8475 (sbcl-package->cl-source-package sbcl-cl-ana.macro-utils))
8476
8477 (define-public ecl-cl-ana.macro-utils
8478 (sbcl-package->ecl-package sbcl-cl-ana.macro-utils))
8479
8480 (define-public sbcl-cl-ana.binary-tree
8481 (package
8482 (inherit sbcl-cl-ana-boot0)
8483 (name "sbcl-cl-ana.binary-tree")
8484 (inputs
8485 `(("cl-ana.functional-utils" ,sbcl-cl-ana.functional-utils)
8486 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8487 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)))
8488 (arguments
8489 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8490 ((#:asd-file _ "") "binary-tree/cl-ana.binary-tree.asd")
8491 ((#:asd-system-name _ #f) "cl-ana.binary-tree")))))
8492
8493 (define-public cl-ana.binary-tree
8494 (sbcl-package->cl-source-package sbcl-cl-ana.binary-tree))
8495
8496 (define-public ecl-cl-ana.binary-tree
8497 (sbcl-package->ecl-package sbcl-cl-ana.binary-tree))
8498
8499 (define-public sbcl-cl-ana.tensor
8500 (package
8501 (inherit sbcl-cl-ana-boot0)
8502 (name "sbcl-cl-ana.tensor")
8503 (inputs
8504 `(("alexandria" ,sbcl-alexandria)
8505 ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
8506 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8507 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
8508 ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)))
8509 (arguments
8510 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8511 ((#:asd-file _ "") "tensor/cl-ana.tensor.asd")
8512 ((#:asd-system-name _ #f) "cl-ana.tensor")))))
8513
8514 (define-public cl-ana.tensor
8515 (sbcl-package->cl-source-package sbcl-cl-ana.tensor))
8516
8517 (define-public ecl-cl-ana.tensor
8518 (sbcl-package->ecl-package sbcl-cl-ana.tensor))
8519
8520 (define-public sbcl-cl-ana.error-propogation
8521 (package
8522 (inherit sbcl-cl-ana-boot0)
8523 (name "sbcl-cl-ana.error-propogation")
8524 (inputs
8525 `(("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
8526 ("cl-ana.math-functions" ,sbcl-cl-ana.math-functions)))
8527 (arguments
8528 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8529 ((#:asd-file _ "") "error-propogation/cl-ana.error-propogation.asd")
8530 ((#:asd-system-name _ #f) "cl-ana.error-propogation")))))
8531
8532 (define-public cl-ana.error-propogation
8533 (sbcl-package->cl-source-package sbcl-cl-ana.error-propogation))
8534
8535 (define-public sbcl-cl-ana.quantity
8536 (package
8537 (inherit sbcl-cl-ana-boot0)
8538 (name "sbcl-cl-ana.quantity")
8539 (inputs
8540 `(("alexandria" ,sbcl-alexandria)
8541 ("cl-ana.error-propogation" ,sbcl-cl-ana.error-propogation)
8542 ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
8543 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8544 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
8545 ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)))
8546 (arguments
8547 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8548 ((#:asd-file _ "") "quantity/cl-ana.quantity.asd")
8549 ((#:asd-system-name _ #f) "cl-ana.quantity")))))
8550
8551 (define-public cl-ana.quantity
8552 (sbcl-package->cl-source-package sbcl-cl-ana.quantity))
8553
8554 (define-public sbcl-cl-ana.table
8555 (package
8556 (inherit sbcl-cl-ana-boot0)
8557 (name "sbcl-cl-ana.table")
8558 (inputs
8559 `(("alexandria" ,sbcl-alexandria)
8560 ("cl-ana.functional-utils" ,sbcl-cl-ana.functional-utils)
8561 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8562 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
8563 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
8564 ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)))
8565 (arguments
8566 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8567 ((#:asd-file _ "") "table/cl-ana.table.asd")
8568 ((#:asd-system-name _ #f) "cl-ana.table")))))
8569
8570 (define-public cl-ana.table
8571 (sbcl-package->cl-source-package sbcl-cl-ana.table))
8572
8573 (define-public ecl-cl-ana.table
8574 (sbcl-package->ecl-package sbcl-cl-ana.table))
8575
8576 (define-public sbcl-cl-ana.table-utils
8577 (package
8578 (inherit sbcl-cl-ana-boot0)
8579 (name "sbcl-cl-ana.table-utils")
8580 (inputs
8581 `(("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
8582 ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)
8583 ("cl-ana.table" ,sbcl-cl-ana.table)))
8584 (arguments
8585 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8586 ((#:asd-file _ "") "table-utils/cl-ana.table-utils.asd")
8587 ((#:asd-system-name _ #f) "cl-ana.table-utils")))))
8588
8589 (define-public cl-ana.table-utils
8590 (sbcl-package->cl-source-package sbcl-cl-ana.table-utils))
8591
8592 (define-public ecl-cl-ana.table-utils
8593 (sbcl-package->ecl-package sbcl-cl-ana.table-utils))
8594
8595 (define-public sbcl-cl-ana.hdf-cffi
8596 (package
8597 (inherit sbcl-cl-ana-boot0)
8598 (name "sbcl-cl-ana.hdf-cffi")
8599 (inputs
8600 `(("cffi" ,sbcl-cffi)
8601 ("hdf5" ,hdf5-parallel-openmpi)))
8602 (arguments
8603 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8604 ((#:asd-file _ "") "hdf-cffi/cl-ana.hdf-cffi.asd")
8605 ((#:asd-system-name _ #f) "cl-ana.hdf-cffi")
8606 ((#:phases phases '%standard-phases)
8607 `(modify-phases ,phases
8608 (add-after 'unpack 'fix-paths
8609 (lambda* (#:key inputs #:allow-other-keys)
8610 (substitute* "hdf-cffi/hdf-cffi.lisp"
8611 (("/usr/lib/i386-linux-gnu/hdf5/serial/libhdf5.so")
8612 (string-append
8613 (assoc-ref inputs "hdf5")
8614 "/lib/libhdf5.so")))))))))))
8615
8616 (define-public cl-ana.hdf-cffi
8617 (sbcl-package->cl-source-package sbcl-cl-ana.hdf-cffi))
8618
8619 (define-public ecl-cl-ana.hdf-cffi
8620 (sbcl-package->ecl-package sbcl-cl-ana.hdf-cffi))
8621
8622 (define-public sbcl-cl-ana.int-char
8623 (package
8624 (inherit sbcl-cl-ana-boot0)
8625 (name "sbcl-cl-ana.int-char")
8626 (arguments
8627 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8628 ((#:asd-file _ "") "int-char/cl-ana.int-char.asd")
8629 ((#:asd-system-name _ #f) "cl-ana.int-char")))))
8630
8631 (define-public cl-ana.int-char
8632 (sbcl-package->cl-source-package sbcl-cl-ana.int-char))
8633
8634 (define-public ecl-cl-ana.int-char
8635 (sbcl-package->ecl-package sbcl-cl-ana.int-char))
8636
8637 (define-public sbcl-cl-ana.memoization
8638 (package
8639 (inherit sbcl-cl-ana-boot0)
8640 (name "sbcl-cl-ana.memoization")
8641 (inputs
8642 `(("alexandria" ,sbcl-alexandria)))
8643 (arguments
8644 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8645 ((#:asd-file _ "") "memoization/cl-ana.memoization.asd")
8646 ((#:asd-system-name _ #f) "cl-ana.memoization")))))
8647
8648 (define-public cl-ana.memoization
8649 (sbcl-package->cl-source-package sbcl-cl-ana.memoization))
8650
8651 (define-public ecl-cl-ana.memoization
8652 (sbcl-package->ecl-package sbcl-cl-ana.memoization))
8653
8654 (define-public sbcl-cl-ana.typespec
8655 (package
8656 (inherit sbcl-cl-ana-boot0)
8657 (name "sbcl-cl-ana.typespec")
8658 (inputs
8659 `(("alexandria" ,sbcl-alexandria)
8660 ("cffi" ,sbcl-cffi)
8661 ("cl-ana.int-char" ,sbcl-cl-ana.int-char)
8662 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8663 ("cl-ana.memoization" ,sbcl-cl-ana.memoization)
8664 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
8665 ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)
8666 ("cl-ana.tensor" ,sbcl-cl-ana.tensor)))
8667 (arguments
8668 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8669 ((#:asd-file _ "") "typespec/cl-ana.typespec.asd")
8670 ((#:asd-system-name _ #f) "cl-ana.typespec")))))
8671
8672 (define-public cl-ana.typespec
8673 (sbcl-package->cl-source-package sbcl-cl-ana.typespec))
8674
8675 (define-public ecl-cl-ana.typespec
8676 (sbcl-package->ecl-package sbcl-cl-ana.typespec))
8677
8678 (define-public sbcl-cl-ana.hdf-typespec
8679 (package
8680 (inherit sbcl-cl-ana-boot0)
8681 (name "sbcl-cl-ana.hdf-typespec")
8682 (inputs
8683 `(("alexandria" ,sbcl-alexandria)
8684 ("cffi" ,sbcl-cffi)
8685 ("cl-ana.hdf-cffi" ,sbcl-cl-ana.hdf-cffi)
8686 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8687 ("cl-ana.memoization" ,sbcl-cl-ana.memoization)
8688 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
8689 ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)
8690 ("cl-ana.typespec" ,sbcl-cl-ana.typespec)))
8691 (arguments
8692 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8693 ((#:asd-file _ "") "hdf-typespec/cl-ana.hdf-typespec.asd")
8694 ((#:asd-system-name _ #f) "cl-ana.hdf-typespec")))))
8695
8696 (define-public cl-ana.hdf-typespec
8697 (sbcl-package->cl-source-package sbcl-cl-ana.hdf-typespec))
8698
8699 (define-public ecl-cl-ana.hdf-typespec
8700 (sbcl-package->ecl-package sbcl-cl-ana.hdf-typespec))
8701
8702 (define-public sbcl-cl-ana.hdf-utils
8703 (package
8704 (inherit sbcl-cl-ana-boot0)
8705 (name "sbcl-cl-ana.hdf-utils")
8706 (inputs
8707 `(("alexandria" ,sbcl-alexandria)
8708 ("cffi" ,sbcl-cffi)
8709 ("cl-ana.hdf-cffi" ,sbcl-cl-ana.hdf-cffi)
8710 ("cl-ana.hdf-typespec" ,sbcl-cl-ana.hdf-typespec)
8711 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
8712 ("cl-ana.memoization" ,sbcl-cl-ana.memoization)
8713 ("cl-ana.pathname-utils" ,sbcl-cl-ana.pathname-utils)
8714 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
8715 ("cl-ana.typespec" ,sbcl-cl-ana.typespec)))
8716 (arguments
8717 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8718 ((#:asd-file _ "") "hdf-utils/cl-ana.hdf-utils.asd")
8719 ((#:asd-system-name _ #f) "cl-ana.hdf-utils")))))
8720
8721 (define-public cl-ana.hdf-utils
8722 (sbcl-package->cl-source-package sbcl-cl-ana.hdf-utils))
8723
8724 (define-public ecl-cl-ana.hdf-utils
8725 (sbcl-package->ecl-package sbcl-cl-ana.hdf-utils))
8726
8727 (define-public sbcl-cl-ana.typed-table
8728 (package
8729 (inherit sbcl-cl-ana-boot0)
8730 (name "sbcl-cl-ana.typed-table")
8731 (inputs
8732 `(("alexandria" ,sbcl-alexandria)
8733 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8734 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
8735 ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)
8736 ("cl-ana.table" ,sbcl-cl-ana.table)
8737 ("cl-ana.typespec" ,sbcl-cl-ana.typespec)))
8738 (arguments
8739 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8740 ((#:asd-file _ "") "typed-table/cl-ana.typed-table.asd")
8741 ((#:asd-system-name _ #f) "cl-ana.typed-table")))))
8742
8743 (define-public cl-ana.typed-table
8744 (sbcl-package->cl-source-package sbcl-cl-ana.typed-table))
8745
8746 (define-public ecl-cl-ana.typed-table
8747 (sbcl-package->ecl-package sbcl-cl-ana.typed-table))
8748
8749 (define-public sbcl-cl-ana.hdf-table
8750 (package
8751 (inherit sbcl-cl-ana-boot0)
8752 (name "sbcl-cl-ana.hdf-table")
8753 (inputs
8754 `(("alexandria" ,sbcl-alexandria)
8755 ("cl-ana.binary-tree" ,sbcl-cl-ana.binary-tree)
8756 ("cl-ana.hdf-cffi" ,sbcl-cl-ana.hdf-cffi)
8757 ("cl-ana.hdf-typespec" ,sbcl-cl-ana.hdf-typespec)
8758 ("cl-ana.hdf-utils" ,sbcl-cl-ana.hdf-utils)
8759 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8760 ("cl-ana.memoization" ,sbcl-cl-ana.memoization)
8761 ("cl-ana.table" ,sbcl-cl-ana.table)
8762 ("cl-ana.typed-table" ,sbcl-cl-ana.typed-table)
8763 ("cl-ana.typespec" ,sbcl-cl-ana.typespec)))
8764 (arguments
8765 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8766 ((#:asd-file _ "") "hdf-table/cl-ana.hdf-table.asd")
8767 ((#:asd-system-name _ #f) "cl-ana.hdf-table")))))
8768
8769 (define-public cl-ana.hdf-table
8770 (sbcl-package->cl-source-package sbcl-cl-ana.hdf-table))
8771
8772 (define-public ecl-cl-ana.hdf-table
8773 (sbcl-package->ecl-package sbcl-cl-ana.hdf-table))
8774
8775 (define-public sbcl-cl-ana.gsl-cffi
8776 (package
8777 (inherit sbcl-cl-ana-boot0)
8778 (name "sbcl-cl-ana.gsl-cffi")
8779 (inputs
8780 `(("cffi" ,sbcl-cffi)
8781 ("gsl" ,gsl)))
8782 (arguments
8783 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8784 ((#:asd-file _ "") "gsl-cffi/cl-ana.gsl-cffi.asd")
8785 ((#:asd-system-name _ #f) "cl-ana.gsl-cffi")
8786 ((#:phases phases '%standard-phases)
8787 `(modify-phases ,phases
8788 (add-after 'unpack 'fix-paths
8789 (lambda* (#:key inputs #:allow-other-keys)
8790 (substitute* "gsl-cffi/gsl-cffi.lisp"
8791 (("define-foreign-library gsl-cffi" all)
8792 (string-append all " (:unix "
8793 (assoc-ref inputs "gsl")
8794 "/lib/libgsl.so)")))))))))))
8795
8796 (define-public cl-ana.gsl-cffi
8797 (sbcl-package->cl-source-package sbcl-cl-ana.gsl-cffi))
8798
8799 (define-public ecl-cl-ana.gsl-cffi
8800 (sbcl-package->ecl-package sbcl-cl-ana.gsl-cffi))
8801
8802 (define-public sbcl-cl-ana.ntuple-table
8803 (package
8804 (inherit sbcl-cl-ana-boot0)
8805 (name "sbcl-cl-ana.ntuple-table")
8806 (inputs
8807 `(("alexandria" ,sbcl-alexandria)
8808 ("cffi" ,sbcl-cffi)
8809 ("cl-ana.gsl-cffi" ,sbcl-cl-ana.gsl-cffi)
8810 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8811 ("cl-ana.table" ,sbcl-cl-ana.table)
8812 ("cl-ana.typed-table" ,sbcl-cl-ana.typed-table)
8813 ("cl-ana.typespec" ,sbcl-cl-ana.typespec)
8814 ("gsll" ,sbcl-gsll)))
8815 (arguments
8816 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8817 ((#:asd-file _ "") "ntuple-table/cl-ana.ntuple-table.asd")
8818 ((#:asd-system-name _ #f) "cl-ana.ntuple-table")))))
8819
8820 (define-public cl-ana.ntuple-table
8821 (sbcl-package->cl-source-package sbcl-cl-ana.ntuple-table))
8822
8823 (define-public sbcl-cl-ana.csv-table
8824 (package
8825 (inherit sbcl-cl-ana-boot0)
8826 (name "sbcl-cl-ana.csv-table")
8827 (inputs
8828 `(("alexandria" ,sbcl-alexandria)
8829 ("antik" ,sbcl-antik)
8830 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8831 ("cl-ana.table" ,sbcl-cl-ana.table)
8832 ("cl-csv" ,sbcl-cl-csv)
8833 ("iterate" ,sbcl-iterate)))
8834 (arguments
8835 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8836 ((#:asd-file _ "") "csv-table/cl-ana.csv-table.asd")
8837 ((#:asd-system-name _ #f) "cl-ana.csv-table")))))
8838
8839 (define-public cl-ana.csv-table
8840 (sbcl-package->cl-source-package sbcl-cl-ana.csv-table))
8841
8842 (define-public sbcl-cl-ana.reusable-table
8843 (package
8844 (inherit sbcl-cl-ana-boot0)
8845 (name "sbcl-cl-ana.reusable-table")
8846 (inputs
8847 `(("alexandria" ,sbcl-alexandria)
8848 ("cl-ana.table" ,sbcl-cl-ana.table)))
8849 (arguments
8850 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8851 ((#:asd-file _ "") "reusable-table/cl-ana.reusable-table.asd")
8852 ((#:asd-system-name _ #f) "cl-ana.reusable-table")))))
8853
8854 (define-public cl-ana.reusable-table
8855 (sbcl-package->cl-source-package sbcl-cl-ana.reusable-table))
8856
8857 (define-public ecl-cl-ana.reusable-table
8858 (sbcl-package->ecl-package sbcl-cl-ana.reusable-table))
8859
8860 (define-public sbcl-cl-ana.linear-algebra
8861 (package
8862 (inherit sbcl-cl-ana-boot0)
8863 (name "sbcl-cl-ana.linear-algebra")
8864 (inputs
8865 `(("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
8866 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8867 ("cl-ana.math-functions" ,sbcl-cl-ana.math-functions)
8868 ("cl-ana.tensor" ,sbcl-cl-ana.tensor)
8869 ("gsll" ,sbcl-gsll)))
8870 (arguments
8871 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8872 ((#:asd-file _ "") "linear-algebra/cl-ana.linear-algebra.asd")
8873 ((#:asd-system-name _ #f) "cl-ana.linear-algebra")))))
8874
8875 (define-public cl-ana.linear-algebra
8876 (sbcl-package->cl-source-package sbcl-cl-ana.linear-algebra))
8877
8878 (define-public sbcl-cl-ana.lorentz
8879 (package
8880 (inherit sbcl-cl-ana-boot0)
8881 (name "sbcl-cl-ana.lorentz")
8882 (inputs
8883 `(("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
8884 ("cl-ana.linear-algebra" ,sbcl-cl-ana.linear-algebra)
8885 ("cl-ana.tensor" ,sbcl-cl-ana.tensor)
8886 ("iterate" ,sbcl-iterate)))
8887 (arguments
8888 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8889 ((#:asd-file _ "") "lorentz/cl-ana.lorentz.asd")
8890 ((#:asd-system-name _ #f) "cl-ana.lorentz")))))
8891
8892 (define-public cl-ana.lorentz
8893 (sbcl-package->cl-source-package sbcl-cl-ana.lorentz))
8894
8895 (define-public sbcl-cl-ana.clos-utils
8896 (package
8897 (inherit sbcl-cl-ana-boot0)
8898 (name "sbcl-cl-ana.clos-utils")
8899 (inputs
8900 `(("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8901 ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)
8902 ("cl-ana.tensor" ,sbcl-cl-ana.tensor)
8903 ("closer-mop" ,sbcl-closer-mop)))
8904 (arguments
8905 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8906 ((#:asd-file _ "") "clos-utils/cl-ana.clos-utils.asd")
8907 ((#:asd-system-name _ #f) "cl-ana.clos-utils")))))
8908
8909 (define-public cl-ana.clos-utils
8910 (sbcl-package->cl-source-package sbcl-cl-ana.clos-utils))
8911
8912 (define-public ecl-cl-ana.clos-utils
8913 (sbcl-package->ecl-package sbcl-cl-ana.clos-utils))
8914
8915 (define-public sbcl-cl-ana.hash-table-utils
8916 (package
8917 (inherit sbcl-cl-ana-boot0)
8918 (name "sbcl-cl-ana.hash-table-utils")
8919 (arguments
8920 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8921 ((#:asd-file _ "") "hash-table-utils/cl-ana.hash-table-utils.asd")
8922 ((#:asd-system-name _ #f) "cl-ana.hash-table-utils")))))
8923
8924 (define-public cl-ana.hash-table-utils
8925 (sbcl-package->cl-source-package sbcl-cl-ana.hash-table-utils))
8926
8927 (define-public ecl-cl-ana.hash-table-utils
8928 (sbcl-package->ecl-package sbcl-cl-ana.hash-table-utils))
8929
8930 (define-public sbcl-cl-ana.map
8931 (package
8932 (inherit sbcl-cl-ana-boot0)
8933 (name "sbcl-cl-ana.map")
8934 (inputs
8935 `(("cl-ana.hash-table-utils" ,sbcl-cl-ana.hash-table-utils)))
8936 (arguments
8937 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8938 ((#:asd-file _ "") "map/cl-ana.map.asd")
8939 ((#:asd-system-name _ #f) "cl-ana.map")))))
8940
8941 (define-public cl-ana.map
8942 (sbcl-package->cl-source-package sbcl-cl-ana.map))
8943
8944 (define-public ecl-cl-ana.map
8945 (sbcl-package->ecl-package sbcl-cl-ana.map))
8946
8947 (define-public sbcl-cl-ana.fitting
8948 (package
8949 (inherit sbcl-cl-ana-boot0)
8950 (name "sbcl-cl-ana.fitting")
8951 (inputs
8952 `(("alexandria" ,sbcl-alexandria)
8953 ("cl-ana.error-propogation" ,sbcl-cl-ana.error-propogation)
8954 ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
8955 ("cl-ana.map" ,sbcl-cl-ana.map)
8956 ("cl-ana.math-functions" ,sbcl-cl-ana.math-functions)
8957 ("gsll" ,sbcl-gsll)))
8958 (arguments
8959 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8960 ((#:asd-file _ "") "fitting/cl-ana.fitting.asd")
8961 ((#:asd-system-name _ #f) "cl-ana.fitting")))))
8962
8963 (define-public cl-ana.fitting
8964 (sbcl-package->cl-source-package sbcl-cl-ana.fitting))
8965
8966 (define-public sbcl-cl-ana.histogram
8967 (package
8968 (inherit sbcl-cl-ana-boot0)
8969 (name "sbcl-cl-ana.histogram")
8970 (inputs
8971 `(("alexandria" ,sbcl-alexandria)
8972 ("iterate" ,sbcl-iterate)
8973 ("cl-ana.binary-tree" ,sbcl-cl-ana.binary-tree)
8974 ("cl-ana.clos-utils" ,sbcl-cl-ana.clos-utils)
8975 ("cl-ana.fitting" ,sbcl-cl-ana.fitting)
8976 ("cl-ana.functional-utils" ,sbcl-cl-ana.functional-utils)
8977 ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
8978 ("cl-ana.hash-table-utils" ,sbcl-cl-ana.hash-table-utils)
8979 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8980 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
8981 ("cl-ana.map" ,sbcl-cl-ana.map)
8982 ("cl-ana.tensor" ,sbcl-cl-ana.tensor)))
8983 (arguments
8984 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8985 ((#:asd-file _ "") "histogram/cl-ana.histogram.asd")
8986 ((#:asd-system-name _ #f) "cl-ana.histogram")))))
8987
8988 (define-public cl-ana.histogram
8989 (sbcl-package->cl-source-package sbcl-cl-ana.histogram))
8990
8991 (define-public sbcl-cl-ana.file-utils
8992 (package
8993 (inherit sbcl-cl-ana-boot0)
8994 (name "sbcl-cl-ana.file-utils")
8995 (inputs
8996 `(("external-program" ,sbcl-external-program)
8997 ("split-sequence" ,sbcl-split-sequence)))
8998 (arguments
8999 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9000 ((#:asd-file _ "") "file-utils/cl-ana.file-utils.asd")
9001 ((#:asd-system-name _ #f) "cl-ana.file-utils")))))
9002
9003 (define-public cl-ana.file-utils
9004 (sbcl-package->cl-source-package sbcl-cl-ana.file-utils))
9005
9006 (define-public ecl-cl-ana.file-utils
9007 (sbcl-package->ecl-package sbcl-cl-ana.file-utils))
9008
9009 (define-public sbcl-cl-ana.statistics
9010 (package
9011 (inherit sbcl-cl-ana-boot0)
9012 (name "sbcl-cl-ana.statistics")
9013 (inputs
9014 `(("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
9015 ("cl-ana.histogram" ,sbcl-cl-ana.histogram)
9016 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
9017 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
9018 ("cl-ana.map" ,sbcl-cl-ana.map)))
9019 (arguments
9020 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9021 ((#:asd-file _ "") "statistics/cl-ana.statistics.asd")
9022 ((#:asd-system-name _ #f) "cl-ana.statistics")))))
9023
9024 (define-public cl-ana.statistics
9025 (sbcl-package->cl-source-package sbcl-cl-ana.statistics))
9026
9027 (define-public sbcl-cl-ana.gnuplot-interface
9028 (package
9029 (inherit sbcl-cl-ana-boot0)
9030 (name "sbcl-cl-ana.gnuplot-interface")
9031 (inputs
9032 `(("external-program" ,sbcl-external-program)))
9033 (arguments
9034 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9035 ((#:asd-file _ "") "gnuplot-interface/cl-ana.gnuplot-interface.asd")
9036 ((#:asd-system-name _ #f) "cl-ana.gnuplot-interface")))))
9037
9038 (define-public cl-ana.gnuplot-interface
9039 (sbcl-package->cl-source-package sbcl-cl-ana.gnuplot-interface))
9040
9041 (define-public ecl-cl-ana.gnuplot-interface
9042 (sbcl-package->ecl-package sbcl-cl-ana.gnuplot-interface))
9043
9044 (define-public sbcl-cl-ana.plotting
9045 (package
9046 (inherit sbcl-cl-ana-boot0)
9047 (name "sbcl-cl-ana.plotting")
9048 (inputs
9049 `(("alexandria" ,sbcl-alexandria)
9050 ("cl-ana.error-propogation" ,sbcl-cl-ana.error-propogation)
9051 ("cl-ana.functional-utils" ,sbcl-cl-ana.functional-utils)
9052 ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
9053 ("cl-ana.gnuplot-interface" ,sbcl-cl-ana.gnuplot-interface)
9054 ("cl-ana.histogram" ,sbcl-cl-ana.histogram)
9055 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
9056 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
9057 ("cl-ana.map" ,sbcl-cl-ana.map)
9058 ("cl-ana.math-functions" ,sbcl-cl-ana.math-functions)
9059 ("cl-ana.pathname-utils" ,sbcl-cl-ana.pathname-utils)
9060 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
9061 ("cl-ana.tensor" ,sbcl-cl-ana.tensor)
9062 ("external-program" ,sbcl-external-program)
9063 ("split-sequence" ,sbcl-split-sequence)))
9064 (arguments
9065 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9066 ((#:asd-file _ "") "plotting/cl-ana.plotting.asd")
9067 ((#:asd-system-name _ #f) "cl-ana.plotting")))))
9068
9069 (define-public cl-ana.plotting
9070 (sbcl-package->cl-source-package sbcl-cl-ana.plotting))
9071
9072 (define-public sbcl-cl-ana.table-viewing
9073 (package
9074 (inherit sbcl-cl-ana-boot0)
9075 (name "sbcl-cl-ana.table-viewing")
9076 (inputs
9077 `(("alexandria" ,sbcl-alexandria)
9078 ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
9079 ("cl-ana.histogram" ,sbcl-cl-ana.histogram)
9080 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
9081 ("cl-ana.plotting" ,sbcl-cl-ana.plotting)
9082 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
9083 ("cl-ana.table" ,sbcl-cl-ana.table)))
9084 (arguments
9085 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9086 ((#:asd-file _ "") "table-viewing/cl-ana.table-viewing.asd")
9087 ((#:asd-system-name _ #f) "cl-ana.table-viewing")))))
9088
9089 (define-public cl-ana.table-viewing
9090 (sbcl-package->cl-source-package sbcl-cl-ana.table-viewing))
9091
9092 (define-public sbcl-cl-ana.serialization
9093 (package
9094 (inherit sbcl-cl-ana-boot0)
9095 (name "sbcl-cl-ana.serialization")
9096 (inputs
9097 `(("cl-ana.error-propogation" ,sbcl-cl-ana.error-propogation)
9098 ("cl-ana.hdf-utils" ,sbcl-cl-ana.hdf-utils)
9099 ("cl-ana.hdf-table" ,sbcl-cl-ana.hdf-table)
9100 ("cl-ana.histogram" ,sbcl-cl-ana.histogram)
9101 ("cl-ana.int-char" ,sbcl-cl-ana.int-char)
9102 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
9103 ("cl-ana.typespec" ,sbcl-cl-ana.typespec)))
9104 (arguments
9105 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9106 ((#:asd-file _ "") "serialization/cl-ana.serialization.asd")
9107 ((#:asd-system-name _ #f) "cl-ana.serialization")))))
9108
9109 (define-public cl-ana.serialization
9110 (sbcl-package->cl-source-package sbcl-cl-ana.serialization))
9111
9112 (define-public sbcl-cl-ana.makeres
9113 (package
9114 (inherit sbcl-cl-ana-boot0)
9115 (name "sbcl-cl-ana.makeres")
9116 (inputs
9117 `(("alexandria" ,sbcl-alexandria)
9118 ("cl-ana.error-propogation" ,sbcl-cl-ana.error-propogation)
9119 ("cl-ana.file-utils" ,sbcl-cl-ana.file-utils)
9120 ("cl-ana.functional-utils" ,sbcl-cl-ana.functional-utils)
9121 ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
9122 ("cl-ana.hash-table-utils" ,sbcl-cl-ana.hash-table-utils)
9123 ("cl-ana.hdf-utils" ,sbcl-cl-ana.hdf-utils)
9124 ("cl-ana.histogram" ,sbcl-cl-ana.histogram)
9125 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
9126 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
9127 ("cl-ana.map" ,sbcl-cl-ana.map)
9128 ("cl-ana.memoization" ,sbcl-cl-ana.memoization)
9129 ("cl-ana.pathname-utils" ,sbcl-cl-ana.pathname-utils)
9130 ("cl-ana.plotting" ,sbcl-cl-ana.plotting)
9131 ("cl-ana.reusable-table" ,sbcl-cl-ana.reusable-table)
9132 ("cl-ana.serialization" ,sbcl-cl-ana.serialization)
9133 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
9134 ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)
9135 ("cl-ana.table" ,sbcl-cl-ana.table)
9136 ("external-program" ,sbcl-external-program)))
9137 (native-inputs
9138 `(("cl-fad" ,sbcl-cl-fad)))
9139 (arguments
9140 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9141 ((#:asd-file _ "") "makeres/cl-ana.makeres.asd")
9142 ((#:asd-system-name _ #f) "cl-ana.makeres")))))
9143
9144 (define-public cl-ana.makeres
9145 (sbcl-package->cl-source-package sbcl-cl-ana.makeres))
9146
9147 (define-public sbcl-cl-ana.makeres-macro
9148 (package
9149 (inherit sbcl-cl-ana-boot0)
9150 (name "sbcl-cl-ana.makeres-macro")
9151 (inputs
9152 `(("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
9153 ("cl-ana.makeres" ,sbcl-cl-ana.makeres)))
9154 (arguments
9155 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9156 ((#:asd-file _ "") "makeres-macro/cl-ana.makeres-macro.asd")
9157 ((#:asd-system-name _ #f) "cl-ana.makeres-macro")))))
9158
9159 (define-public cl-ana.makeres-macro
9160 (sbcl-package->cl-source-package sbcl-cl-ana.makeres-macro))
9161
9162 (define-public sbcl-cl-ana.makeres-block
9163 (package
9164 (inherit sbcl-cl-ana-boot0)
9165 (name "sbcl-cl-ana.makeres-block")
9166 (inputs
9167 `(("alexandria" ,sbcl-alexandria)
9168 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
9169 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
9170 ("cl-ana.makeres" ,sbcl-cl-ana.makeres)))
9171 (arguments
9172 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9173 ((#:asd-file _ "") "makeres-block/cl-ana.makeres-block.asd")
9174 ((#:asd-system-name _ #f) "cl-ana.makeres-block")))))
9175
9176 (define-public cl-ana.makeres-block
9177 (sbcl-package->cl-source-package sbcl-cl-ana.makeres-block))
9178
9179 (define-public sbcl-cl-ana.makeres-progress
9180 (package
9181 (inherit sbcl-cl-ana-boot0)
9182 (name "sbcl-cl-ana.makeres-progress")
9183 (inputs
9184 `(("alexandria" ,sbcl-alexandria)
9185 ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
9186 ("cl-ana.makeres" ,sbcl-cl-ana.makeres)))
9187 (arguments
9188 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9189 ((#:asd-file _ "") "makeres-progress/cl-ana.makeres-progress.asd")
9190 ((#:asd-system-name _ #f) "cl-ana.makeres-progress")))))
9191
9192 (define-public cl-ana.makeres-progress
9193 (sbcl-package->cl-source-package sbcl-cl-ana.makeres-progress))
9194
9195 (define-public sbcl-cl-ana.makeres-table
9196 (package
9197 (inherit sbcl-cl-ana-boot0)
9198 (name "sbcl-cl-ana.makeres-table")
9199 (inputs
9200 `(("cl-ana.csv-table" ,sbcl-cl-ana.csv-table)
9201 ("cl-ana.hash-table-utils" ,sbcl-cl-ana.hash-table-utils)
9202 ("cl-ana.hdf-table" ,sbcl-cl-ana.hdf-table)
9203 ("cl-ana.hdf-utils" ,sbcl-cl-ana.hdf-utils)
9204 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
9205 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
9206 ("cl-ana.makeres" ,sbcl-cl-ana.makeres)
9207 ("cl-ana.makeres-macro" ,sbcl-cl-ana.makeres-macro)
9208 ("cl-ana.memoization" ,sbcl-cl-ana.memoization)
9209 ("cl-ana.ntuple-table" ,sbcl-cl-ana.ntuple-table)
9210 ("cl-ana.reusable-table" ,sbcl-cl-ana.reusable-table)
9211 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
9212 ("cl-ana.table" ,sbcl-cl-ana.table)))
9213 (native-inputs
9214 `(("cl-fad" ,sbcl-cl-fad)))
9215 (arguments
9216 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9217 ((#:asd-file _ "") "makeres-table/cl-ana.makeres-table.asd")
9218 ((#:asd-system-name _ #f) "cl-ana.makeres-table")))))
9219
9220 (define-public cl-ana.makeres-table
9221 (sbcl-package->cl-source-package sbcl-cl-ana.makeres-table))
9222
9223 (define-public sbcl-cl-ana.makeres-graphviz
9224 (package
9225 (inherit sbcl-cl-ana-boot0)
9226 (name "sbcl-cl-ana.makeres-graphviz")
9227 (inputs
9228 `(("cl-ana.makeres" ,sbcl-cl-ana.makeres)
9229 ("external-program" ,sbcl-external-program)))
9230 (arguments
9231 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9232 ((#:asd-file _ "") "makeres-graphviz/cl-ana.makeres-graphviz.asd")
9233 ((#:asd-system-name _ #f) "cl-ana.makeres-graphviz")))))
9234
9235 (define-public cl-ana.makeres-graphviz
9236 (sbcl-package->cl-source-package sbcl-cl-ana.makeres-graphviz))
9237
9238 (define-public sbcl-cl-ana.makeres-branch
9239 (package
9240 (inherit sbcl-cl-ana-boot0)
9241 (name "sbcl-cl-ana.makeres-branch")
9242 (inputs
9243 `(("alexandria" ,sbcl-alexandria)
9244 ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
9245 ("cl-ana.hash-table-utils" ,sbcl-cl-ana.hash-table-utils)
9246 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
9247 ("cl-ana.map" ,sbcl-cl-ana.map)
9248 ("cl-ana.makeres" ,sbcl-cl-ana.makeres)))
9249 (arguments
9250 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9251 ((#:asd-file _ "") "makeres-branch/cl-ana.makeres-branch.asd")
9252 ((#:asd-system-name _ #f) "cl-ana.makeres-branch")))))
9253
9254 (define-public cl-ana.makeres-branch
9255 (sbcl-package->cl-source-package sbcl-cl-ana.makeres-branch))
9256
9257 (define-public sbcl-cl-ana.makeres-utils
9258 (package
9259 (inherit sbcl-cl-ana-boot0)
9260 (name "sbcl-cl-ana.makeres-utils")
9261 (inputs
9262 `(("alexandria" ,sbcl-alexandria)
9263 ("cl-ana.file-utils" ,sbcl-cl-ana.file-utils)
9264 ("cl-ana.fitting" ,sbcl-cl-ana.fitting)
9265 ("cl-ana.functional-utils" ,sbcl-cl-ana.functional-utils)
9266 ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
9267 ("cl-ana.histogram" ,sbcl-cl-ana.histogram)
9268 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
9269 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
9270 ("cl-ana.makeres" ,sbcl-cl-ana.makeres)
9271 ("cl-ana.map" ,sbcl-cl-ana.map)
9272 ("cl-ana.pathname-utils" ,sbcl-cl-ana.pathname-utils)
9273 ("cl-ana.plotting" ,sbcl-cl-ana.plotting)
9274 ("cl-ana.reusable-table" ,sbcl-cl-ana.reusable-table)
9275 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
9276 ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)
9277 ("cl-ana.table" ,sbcl-cl-ana.table)))
9278 (native-inputs
9279 `(("cl-fad" ,sbcl-cl-fad)))
9280 (arguments
9281 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9282 ((#:asd-file _ "") "makeres-utils/cl-ana.makeres-utils.asd")
9283 ((#:asd-system-name _ #f) "cl-ana.makeres-utils")))))
9284
9285 (define-public cl-ana.makeres-utils
9286 (sbcl-package->cl-source-package sbcl-cl-ana.makeres-utils))
9287
9288 (define-public sbcl-cl-ana.statistical-learning
9289 (package
9290 (inherit sbcl-cl-ana-boot0)
9291 (name "sbcl-cl-ana.statistical-learning")
9292 (inputs
9293 `(("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
9294 ("cl-ana.functional-utils" ,sbcl-cl-ana.functional-utils)
9295 ("cl-ana.histogram" ,sbcl-cl-ana.histogram)
9296 ("cl-ana.linear-algebra" ,sbcl-cl-ana.linear-algebra)
9297 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
9298 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
9299 ("cl-ana.math-functions" ,sbcl-cl-ana.math-functions)
9300 ("cl-ana.map" ,sbcl-cl-ana.map)
9301 ("cl-ana.statistics" ,sbcl-cl-ana.statistics)))
9302 (native-inputs
9303 `(("cl-fad" ,sbcl-cl-fad)))
9304 (arguments
9305 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9306 ((#:asd-file _ "")
9307 "statistical-learning/cl-ana.statistical-learning.asd")
9308 ((#:asd-system-name _ #f) "cl-ana.statistical-learning")))))
9309
9310 (define-public cl-ana.statistical-learning
9311 (sbcl-package->cl-source-package sbcl-cl-ana.statistical-learning))
9312
9313 (define-public sbcl-cl-ana
9314 (package
9315 (inherit sbcl-cl-ana-boot0)
9316 (name "sbcl-cl-ana")
9317 (inputs
9318 `(("cl-ana.binary-tree" ,sbcl-cl-ana.binary-tree)
9319 ("cl-ana.calculus" ,sbcl-cl-ana.calculus)
9320 ("cl-ana.clos-utils" ,sbcl-cl-ana.clos-utils)
9321 ("cl-ana.csv-table" ,sbcl-cl-ana.csv-table)
9322 ("cl-ana.error-propogation" ,sbcl-cl-ana.error-propogation)
9323 ("cl-ana.file-utils" ,sbcl-cl-ana.file-utils)
9324 ("cl-ana.fitting" ,sbcl-cl-ana.fitting)
9325 ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
9326 ("cl-ana.hash-table-utils" ,sbcl-cl-ana.hash-table-utils)
9327 ("cl-ana.hdf-table" ,sbcl-cl-ana.hdf-table)
9328 ("cl-ana.histogram" ,sbcl-cl-ana.histogram)
9329 ("cl-ana.int-char" ,sbcl-cl-ana.int-char)
9330 ("cl-ana.linear-algebra" ,sbcl-cl-ana.linear-algebra)
9331 ("cl-ana.lorentz" ,sbcl-cl-ana.lorentz)
9332 ("cl-ana.map" ,sbcl-cl-ana.map)
9333 ("cl-ana.makeres" ,sbcl-cl-ana.makeres)
9334 ("cl-ana.makeres-block" ,sbcl-cl-ana.makeres-block)
9335 ("cl-ana.makeres-branch" ,sbcl-cl-ana.makeres-branch)
9336 ("cl-ana.makeres-graphviz" ,sbcl-cl-ana.makeres-graphviz)
9337 ("cl-ana.makeres-macro" ,sbcl-cl-ana.makeres-macro)
9338 ("cl-ana.makeres-progress" ,sbcl-cl-ana.makeres-progress)
9339 ("cl-ana.makeres-table" ,sbcl-cl-ana.makeres-table)
9340 ("cl-ana.makeres-utils" ,sbcl-cl-ana.makeres-utils)
9341 ("cl-ana.math-functions" ,sbcl-cl-ana.math-functions)
9342 ("cl-ana.ntuple-table" ,sbcl-cl-ana.ntuple-table)
9343 ("cl-ana.package-utils" ,sbcl-cl-ana.package-utils)
9344 ("cl-ana.pathname-utils" ,sbcl-cl-ana.pathname-utils)
9345 ("cl-ana.plotting" ,sbcl-cl-ana.plotting)
9346 ("cl-ana.quantity" ,sbcl-cl-ana.quantity)
9347 ("cl-ana.reusable-table" ,sbcl-cl-ana.reusable-table)
9348 ("cl-ana.serialization" ,sbcl-cl-ana.serialization)
9349 ("cl-ana.statistics" ,sbcl-cl-ana.statistics)
9350 ("cl-ana.statistical-learning" ,sbcl-cl-ana.statistical-learning)
9351 ("cl-ana.table" ,sbcl-cl-ana.table)
9352 ("cl-ana.table-utils" ,sbcl-cl-ana.table-utils)
9353 ("cl-ana.table-viewing" ,sbcl-cl-ana.table-viewing)
9354 ("cl-ana.tensor" ,sbcl-cl-ana.tensor)
9355 ("libffi" ,libffi)))
9356 (native-inputs
9357 `(("cl-fad" ,sbcl-cl-fad)))
9358 (arguments
9359 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9360 ((#:asd-file _ "") "cl-ana.asd")
9361 ((#:asd-system-name _ #f) "cl-ana")))))
9362
9363 (define-public cl-ana
9364 (sbcl-package->cl-source-package sbcl-cl-ana))
9365
9366 (define-public sbcl-archive
9367 (let ((commit "631271c091ed02994bec3980cb288a2cf32c7cdc")
9368 (revision "1"))
9369 (package
9370 (name "sbcl-archive")
9371 (version (git-version "0.9" revision commit))
9372 (source (origin
9373 (method git-fetch)
9374 (uri (git-reference
9375 (url "https://github.com/sharplispers/archive.git")
9376 (commit commit)))
9377 (file-name (git-file-name name version))
9378 (sha256
9379 (base32
9380 "0pvsc9fmybx7rxd0kmzq4shi6hszdpwdc1sfy7jwyfxf8n3hnv4p"))))
9381 (build-system asdf-build-system/sbcl)
9382 (inputs
9383 `(("cl-fad" ,sbcl-cl-fad)
9384 ("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
9385 (synopsis "Common Lisp library for tar and cpio archives")
9386 (description
9387 "This is a Common Lisp library to read and write disk-based file
9388 archives such as those generated by the tar and cpio programs on Unix.")
9389 (home-page "https://github.com/sharplispers/archive")
9390 (license license:bsd-3))))
9391
9392 (define-public cl-archive
9393 (sbcl-package->cl-source-package sbcl-archive))
9394
9395 (define-public ecl-archive
9396 (sbcl-package->ecl-package sbcl-archive))
9397
9398 (define-public sbcl-misc-extensions
9399 (let ((commit "101c05112bf2f1e1bbf527396822d2f50ca6327a")
9400 (revision "1"))
9401 (package
9402 (name "sbcl-misc-extensions")
9403 (version (git-version "3.3" revision commit))
9404 (source
9405 (origin
9406 (method git-fetch)
9407 (uri (git-reference
9408 (url "https://gitlab.common-lisp.net/misc-extensions/devel.git")
9409 (commit commit)))
9410 (file-name (git-file-name name version))
9411 (sha256
9412 (base32
9413 "0gz5f4p70qzilnxsnf5lih2n9m4wjcw8hlw4w8mpn9jyhyppyyv0"))))
9414 (build-system asdf-build-system/sbcl)
9415 (synopsis "Collection of small macros and extensions for Common Lisp")
9416 (description
9417 "This project is intended as a catchall for small, general-purpose
9418 extensions to Common Lisp. It contains:
9419
9420 @itemize
9421 @item @code{new-let}, a macro that combines and generalizes @code{let},
9422 @code{let*} and @code{multiple-value-bind},
9423 @item @code{gmap}, an iteration macro that generalizes @code{map}.
9424 @end itemize\n")
9425 (home-page "https://common-lisp.net/project/misc-extensions/")
9426 (license license:public-domain))))
9427
9428 (define-public cl-misc-extensions
9429 (sbcl-package->cl-source-package sbcl-misc-extensions))
9430
9431 (define-public ecl-misc-extensions
9432 (sbcl-package->ecl-package sbcl-misc-extensions))
9433
9434 (define-public sbcl-mt19937
9435 (package
9436 (name "sbcl-mt19937")
9437 (version "1.1")
9438 (source
9439 (origin
9440 (method url-fetch)
9441 (uri (string-append "https://common-lisp.net/project/asdf-packaging/"
9442 "mt19937-latest.tar.gz"))
9443 (sha256
9444 (base32
9445 "1iw636b0iw5ygkv02y8i41lh7xj0acglv0hg5agryn0zzi2nf1xv"))))
9446 (build-system asdf-build-system/sbcl)
9447 (synopsis "Mersenne Twister pseudo-random number generator")
9448 (description
9449 "MT19937 is a portable Mersenne Twister pseudo-random number generator
9450 for Common Lisp.")
9451 (home-page "https://www.cliki.net/mt19937")
9452 (license license:public-domain)))
9453
9454 (define-public cl-mt19937
9455 (sbcl-package->cl-source-package sbcl-mt19937))
9456
9457 (define-public ecl-mt19937
9458 (sbcl-package->ecl-package sbcl-mt19937))
9459
9460 (define-public sbcl-fset
9461 (let ((commit "6d2f9ded8934d2b42f2571a0ba5bda091037d852")
9462 (revision "1"))
9463 (package
9464 (name "sbcl-fset")
9465 (version (git-version "1.3.2" revision commit))
9466 (source
9467 (origin
9468 (method git-fetch)
9469 (uri (git-reference
9470 (url "https://github.com/slburson/fset")
9471 (commit commit)))
9472 (file-name (git-file-name name version))
9473 (sha256
9474 (base32
9475 "127acblwrbqicx47h6sgvknz1cqyfn8p4xkhkn1m7hxh8w5gk1zy"))
9476 (snippet '(begin
9477 ;; Remove obsolete copy of system definition.
9478 (delete-file "Code/fset.asd")
9479 #t))))
9480 (build-system asdf-build-system/sbcl)
9481 (inputs
9482 `(("misc-extensions" ,sbcl-misc-extensions)
9483 ("mt19937" ,sbcl-mt19937)
9484 ("named-readtables" ,sbcl-named-readtables)))
9485 (synopsis "Functional set-theoretic collections library")
9486 (description
9487 "FSet is a functional set-theoretic collections library for Common Lisp.
9488 Functional means that all update operations return a new collection rather than
9489 modifying an existing one in place. Set-theoretic means that collections may
9490 be nested arbitrarily with no additional programmer effort; for instance, sets
9491 may contain sets, maps may be keyed by sets, etc.")
9492 (home-page "https://common-lisp.net/project/fset/Site/index.html")
9493 (license license:llgpl))))
9494
9495 (define-public cl-fset
9496 (sbcl-package->cl-source-package sbcl-fset))
9497
9498 (define-public sbcl-cl-cont
9499 (let ((commit "fc1fa7e6eb64894fdca13e688e6015fad5290d2a")
9500 (revision "1"))
9501 (package
9502 (name "sbcl-cl-cont")
9503 (version (git-version "0.3.8" revision commit))
9504 (source
9505 (origin
9506 (method git-fetch)
9507 (uri (git-reference
9508 (url "https://gitlab.common-lisp.net/cl-cont/cl-cont.git")
9509 (commit commit)))
9510 (file-name (git-file-name name version))
9511 (sha256
9512 (base32
9513 "1zf8zvb0i6jm3hhfks4w74hibm6avgc6f9s1qwgjrn2bcik8lrvz"))))
9514 (build-system asdf-build-system/sbcl)
9515 (inputs
9516 `(("alexandria" ,sbcl-alexandria)
9517 ("closer-mop" ,sbcl-closer-mop)))
9518 (native-inputs
9519 `(("rt" ,sbcl-rt)))
9520 (synopsis "Delimited continuations for Common Lisp")
9521 (description
9522 "This is a library that implements delimited continuations by
9523 transforming Common Lisp code to continuation passing style.")
9524 (home-page "https://common-lisp.net/project/cl-cont/")
9525 (license license:llgpl))))
9526
9527 (define-public cl-cont
9528 (sbcl-package->cl-source-package sbcl-cl-cont))
9529
9530 (define-public ecl-cl-cont
9531 (sbcl-package->ecl-package sbcl-cl-cont))
9532
9533 (define-public sbcl-cl-coroutine
9534 (let ((commit "de098f8d5debd8b14ef6864b5bdcbbf5ddbcfd72")
9535 (revision "1"))
9536 (package
9537 (name "sbcl-cl-coroutine")
9538 (version (git-version "0.1" revision commit))
9539 (source
9540 (origin
9541 (method git-fetch)
9542 (uri (git-reference
9543 (url "https://github.com/takagi/cl-coroutine.git")
9544 (commit commit)))
9545 (file-name (git-file-name name version))
9546 (sha256
9547 (base32
9548 "1cqdhdjxffgfs116l1swjlsmcbly0xgcgrckvaajd566idj9yj4l"))))
9549 (build-system asdf-build-system/sbcl)
9550 (inputs
9551 `(("alexandria" ,sbcl-alexandria)
9552 ("cl-cont" ,sbcl-cl-cont)))
9553 (native-inputs
9554 `(("prove" ,sbcl-prove)))
9555 (arguments
9556 `(;; TODO: Fix the tests. They fail with:
9557 ;; "Component CL-COROUTINE-ASD::CL-COROUTINE-TEST not found"
9558 #:tests? #f
9559 #:phases
9560 (modify-phases %standard-phases
9561 (add-after 'unpack 'fix-tests
9562 (lambda _
9563 (substitute* "cl-coroutine-test.asd"
9564 (("cl-test-more")
9565 "prove"))
9566 #t)))))
9567 (synopsis "Coroutine library for Common Lisp")
9568 (description
9569 "This is a coroutine library for Common Lisp implemented using the
9570 continuations of the @code{cl-cont} library.")
9571 (home-page "https://github.com/takagi/cl-coroutine")
9572 (license license:llgpl))))
9573
9574 (define-public cl-coroutine
9575 (sbcl-package->cl-source-package sbcl-cl-coroutine))
9576
9577 (define-public ecl-cl-coroutine
9578 (sbcl-package->ecl-package sbcl-cl-coroutine))
9579
9580 (define-public sbcl-vom
9581 (let ((commit "1aeafeb5b74c53741b79497e0ef4acf85c92ff24")
9582 (revision "1"))
9583 (package
9584 (name "sbcl-vom")
9585 (version (git-version "0.1.4" revision commit))
9586 (source
9587 (origin
9588 (method git-fetch)
9589 (uri (git-reference
9590 (url "https://github.com/orthecreedence/vom.git")
9591 (commit commit)))
9592 (file-name (git-file-name name version))
9593 (sha256
9594 (base32
9595 "0536kppj76ax4lrxhv42npkfjsmx45km2g439vf9jmw3apinz9cy"))))
9596 (build-system asdf-build-system/sbcl)
9597 (synopsis "Tiny logging utility for Common Lisp")
9598 (description
9599 "Vom is a logging library for Common Lisp. It's goal is to be useful
9600 and small. It does not provide a lot of features as other loggers do, but
9601 has a small codebase that's easy to understand and use.")
9602 (home-page "https://github.com/orthecreedence/vom")
9603 (license license:expat))))
9604
9605 (define-public cl-vom
9606 (sbcl-package->cl-source-package sbcl-vom))
9607
9608 (define-public ecl-vom
9609 (sbcl-package->ecl-package sbcl-vom))
9610
9611 (define-public sbcl-cl-libuv
9612 (let ((commit "32100c023c518038d0670a103eaa4d50dd785d29")
9613 (revision "1"))
9614 (package
9615 (name "sbcl-cl-libuv")
9616 (version (git-version "0.1.6" revision commit))
9617 (source
9618 (origin
9619 (method git-fetch)
9620 (uri (git-reference
9621 (url "https://github.com/orthecreedence/cl-libuv.git")
9622 (commit commit)))
9623 (file-name (git-file-name name version))
9624 (sha256
9625 (base32
9626 "1kwix4si8a8hza34ab2k7whrh7z0yrmx39v2wc3qblv9m244jkh1"))))
9627 (build-system asdf-build-system/sbcl)
9628 (inputs
9629 `(("alexandria" ,sbcl-alexandria)
9630 ("cffi" ,sbcl-cffi)
9631 ("cffi-grovel" ,sbcl-cffi-grovel)
9632 ("libuv" ,libuv)))
9633 (arguments
9634 `(#:phases
9635 (modify-phases %standard-phases
9636 (add-after 'unpack 'fix-paths
9637 (lambda* (#:key inputs #:allow-other-keys)
9638 (substitute* "lib.lisp"
9639 (("/usr/lib/libuv.so")
9640 (string-append (assoc-ref inputs "libuv")
9641 "/lib/libuv.so")))
9642 #t))
9643 (add-after 'fix-paths 'fix-system-definition
9644 (lambda _
9645 (substitute* "cl-libuv.asd"
9646 (("#:cffi #:alexandria")
9647 "#:cffi #:cffi-grovel #:alexandria"))
9648 #t)))))
9649 (synopsis "Common Lisp bindings to libuv")
9650 (description
9651 "This library provides low-level libuv bindings for Common Lisp.")
9652 (home-page "https://github.com/orthecreedence/cl-libuv")
9653 (license license:expat))))
9654
9655 (define-public cl-libuv
9656 (sbcl-package->cl-source-package sbcl-cl-libuv))
9657
9658 (define-public ecl-cl-libuv
9659 (sbcl-package->ecl-package sbcl-cl-libuv))
9660
9661 (define-public sbcl-cl-async-base
9662 (let ((commit "f6423e44404a44434d803605e0d2e17199158e28")
9663 (revision "1"))
9664 (package
9665 (name "sbcl-cl-async-base")
9666 (version (git-version "0.6.1" revision commit))
9667 (source
9668 (origin
9669 (method git-fetch)
9670 (uri (git-reference
9671 (url "https://github.com/orthecreedence/cl-async.git")
9672 (commit commit)))
9673 (file-name (git-file-name name version))
9674 (sha256
9675 (base32
9676 "11xi9dxb8mjgwzrkj88i0xkgk26z9w9ddxzbv6xsvfc1d4x5cf4x"))))
9677 (build-system asdf-build-system/sbcl)
9678 (inputs
9679 `(("bordeaux-threads" ,sbcl-bordeaux-threads)
9680 ("cffi" ,sbcl-cffi)
9681 ("cl-libuv" ,sbcl-cl-libuv)))
9682 (arguments
9683 `(#:asd-file "cl-async.asd"))
9684 (synopsis "Base system for cl-async")
9685 (description
9686 "Cl-async is a library for general purpose, non-blocking programming in
9687 Common Lisp. It uses the libuv library as backend.")
9688 (home-page "https://orthecreedence.github.io/cl-async/")
9689 (license license:expat))))
9690
9691 (define-public cl-async-base
9692 (sbcl-package->cl-source-package sbcl-cl-async-base))
9693
9694 (define-public ecl-cl-async-base
9695 (sbcl-package->ecl-package sbcl-cl-async-base))
9696
9697 (define-public sbcl-cl-async-util
9698 (package
9699 (inherit sbcl-cl-async-base)
9700 (name "sbcl-cl-async-util")
9701 (inputs
9702 `(("bordeaux-threads" ,sbcl-bordeaux-threads)
9703 ("cffi" ,sbcl-cffi)
9704 ("cl-async-base" ,sbcl-cl-async-base)
9705 ("cl-libuv" ,sbcl-cl-libuv)
9706 ("cl-ppcre" ,sbcl-cl-ppcre)
9707 ("fast-io" ,sbcl-fast-io)
9708 ("vom" ,sbcl-vom)))
9709 (synopsis "Internal utilities for cl-async")))
9710
9711 (define-public cl-async-util
9712 (sbcl-package->cl-source-package sbcl-cl-async-util))
9713
9714 (define-public ecl-cl-async-util
9715 (sbcl-package->ecl-package sbcl-cl-async-util))
9716
9717 (define-public sbcl-cl-async
9718 (package
9719 (inherit sbcl-cl-async-base)
9720 (name "sbcl-cl-async")
9721 (inputs
9722 `(("babel" ,sbcl-babel)
9723 ("cffi" ,sbcl-cffi)
9724 ("cl-async-base" ,sbcl-cl-async-base)
9725 ("cl-async-util" ,sbcl-cl-async-util)
9726 ("cl-libuv" ,sbcl-cl-libuv)
9727 ("cl-ppcre" ,sbcl-cl-ppcre)
9728 ("static-vectors" ,sbcl-static-vectors)
9729 ("trivial-features" ,sbcl-trivial-features)
9730 ("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
9731 (synopsis "Asynchronous operations for Common Lisp")))
9732
9733 (define-public cl-async
9734 (sbcl-package->cl-source-package sbcl-cl-async))
9735
9736 (define-public ecl-cl-async
9737 (sbcl-package->ecl-package sbcl-cl-async))
9738
9739 (define-public sbcl-cl-async-repl
9740 (package
9741 (inherit sbcl-cl-async-base)
9742 (name "sbcl-cl-async-repl")
9743 (inputs
9744 `(("bordeaux-threads" ,sbcl-bordeaux-threads)
9745 ("cl-async" ,sbcl-cl-async)))
9746 (arguments
9747 (substitute-keyword-arguments (package-arguments sbcl-cl-async-base)
9748 ((#:asd-file _ "") "cl-async-repl.asd")))
9749 (synopsis "REPL integration for cl-async")))
9750
9751 (define-public cl-async-repl
9752 (sbcl-package->cl-source-package sbcl-cl-async-repl))
9753
9754 (define-public ecl-cl-async-repl
9755 (sbcl-package->ecl-package sbcl-cl-async-repl))
9756
9757 (define-public sbcl-cl-async-ssl
9758 (package
9759 (inherit sbcl-cl-async-base)
9760 (name "sbcl-cl-async-ssl")
9761 (inputs
9762 `(("cffi" ,sbcl-cffi)
9763 ("cl-async" ,sbcl-cl-async)
9764 ("openssl" ,openssl)
9765 ("vom" ,sbcl-vom)))
9766 (arguments
9767 (substitute-keyword-arguments (package-arguments sbcl-cl-async-base)
9768 ((#:asd-file _ "") "cl-async-ssl.asd")
9769 ((#:phases phases '%standard-phases)
9770 `(modify-phases ,phases
9771 (add-after 'unpack 'fix-paths
9772 (lambda* (#:key inputs #:allow-other-keys)
9773 (substitute* "src/ssl/package.lisp"
9774 (("libcrypto\\.so")
9775 (string-append (assoc-ref inputs "openssl")
9776 "/lib/libcrypto.so"))
9777 (("libssl\\.so")
9778 (string-append (assoc-ref inputs "openssl")
9779 "/lib/libssl.so")))
9780 #t))))))
9781 (synopsis "SSL wrapper around cl-async socket implementation")))
9782
9783 (define-public cl-async-ssl
9784 (sbcl-package->cl-source-package sbcl-cl-async-ssl))
9785
9786 (define-public ecl-cl-async-ssl
9787 (sbcl-package->ecl-package sbcl-cl-async-ssl))
9788
9789 (define-public sbcl-blackbird
9790 (let ((commit "d361f81c1411dec07f6c2dcb11c78f7aea9aaca8")
9791 (revision "1"))
9792 (package
9793 (name "sbcl-blackbird")
9794 (version (git-version "0.5.2" revision commit))
9795 (source
9796 (origin
9797 (method git-fetch)
9798 (uri (git-reference
9799 (url "https://github.com/orthecreedence/blackbird.git")
9800 (commit commit)))
9801 (file-name (git-file-name name version))
9802 (sha256
9803 (base32
9804 "0xfds5yaya64arzr7w1x38karyz11swzbhxx1afldpradj9dh19c"))))
9805 (build-system asdf-build-system/sbcl)
9806 (inputs
9807 `(("vom" ,sbcl-vom)))
9808 (native-inputs
9809 `(("cl-async" ,sbcl-cl-async)
9810 ("fiveam" ,sbcl-fiveam)))
9811 (synopsis "Promise implementation for Common Lisp")
9812 (description
9813 "This is a standalone promise implementation for Common Lisp. It is
9814 the successor to the now-deprecated cl-async-future project.")
9815 (home-page "https://orthecreedence.github.io/blackbird/")
9816 (license license:expat))))
9817
9818 (define-public cl-blackbird
9819 (sbcl-package->cl-source-package sbcl-blackbird))
9820
9821 (define-public ecl-blackbird
9822 (sbcl-package->ecl-package sbcl-blackbird))
9823
9824 (define-public sbcl-cl-async-future
9825 (let ((commit "ee36c22a69a9516407458d2ed8b475f1fc473959")
9826 (revision "1"))
9827 (package
9828 (name "sbcl-cl-async-future")
9829 (version (git-version "0.4.4.1" revision commit))
9830 (source
9831 (origin
9832 (method git-fetch)
9833 (uri (git-reference
9834 (url "https://github.com/orthecreedence/cl-async-future.git")
9835 (commit commit)))
9836 (file-name (git-file-name name version))
9837 (sha256
9838 (base32
9839 "0z0sc7qlzzxk99f4l26zp6rai9kv0kj0f599sxai5s44p17zbbvh"))))
9840 (build-system asdf-build-system/sbcl)
9841 (inputs
9842 `(("blackbird" ,sbcl-blackbird)))
9843 (native-inputs
9844 `(("cl-async" ,sbcl-cl-async)
9845 ("eos" ,sbcl-eos)))
9846 (synopsis "Futures implementation for Common Lisp")
9847 (description
9848 "This is futures implementation for Common Lisp. It plugs in nicely
9849 to cl-async.")
9850 (home-page "https://orthecreedence.github.io/cl-async/future")
9851 (license license:expat))))
9852
9853 (define-public cl-async-future
9854 (sbcl-package->cl-source-package sbcl-cl-async-future))
9855
9856 (define-public ecl-cl-async-future
9857 (sbcl-package->ecl-package sbcl-cl-async-future))
9858
9859 (define-public sbcl-green-threads
9860 (let ((commit "fff5ebecb441a37e5c511773716aafd84a3c5840")
9861 (revision "1"))
9862 (package
9863 (name "sbcl-green-threads")
9864 (version (git-version "0.3" revision commit))
9865 (source
9866 (origin
9867 (method git-fetch)
9868 (uri (git-reference
9869 (url "https://github.com/thezerobit/green-threads.git")
9870 (commit commit)))
9871 (file-name (git-file-name name version))
9872 (sha256
9873 (base32
9874 "1czw7nr0dwfps76h8hjvglk1wdh53yqbfbvv30whwbgqx33iippz"))))
9875 (build-system asdf-build-system/sbcl)
9876 (inputs
9877 `(("cl-async-future" ,sbcl-cl-async-future)
9878 ("cl-cont" ,sbcl-cl-cont)))
9879 (native-inputs
9880 `(("prove" ,sbcl-prove)))
9881 (arguments
9882 `(;; TODO: Fix the tests. They fail with:
9883 ;; "The function BLACKBIRD::PROMISE-VALUES is undefined"
9884 #:tests? #f
9885 #:phases
9886 (modify-phases %standard-phases
9887 (add-after 'unpack 'fix-tests
9888 (lambda _
9889 (substitute* "green-threads-test.asd"
9890 (("cl-test-more")
9891 "prove"))
9892 #t)))))
9893 (synopsis "Cooperative multitasking library for Common Lisp")
9894 (description
9895 "This library allows for cooperative multitasking with help of cl-cont
9896 for continuations. It tries to mimic the API of bordeaux-threads as much as
9897 possible.")
9898 (home-page "https://github.com/thezerobit/green-threads")
9899 (license license:bsd-3))))
9900
9901 (define-public cl-green-threads
9902 (sbcl-package->cl-source-package sbcl-green-threads))
9903
9904 (define-public ecl-green-threads
9905 (sbcl-package->ecl-package sbcl-green-threads))
9906
9907 (define-public sbcl-cl-base32
9908 (let ((commit "8cdee06fab397f7b0a19583b57e7f0c98405be85")
9909 (revision "1"))
9910 (package
9911 (name "sbcl-cl-base32")
9912 (version (git-version "0.1" revision commit))
9913 (source
9914 (origin
9915 (method git-fetch)
9916 (uri (git-reference
9917 (url "https://github.com/hargettp/cl-base32.git")
9918 (commit commit)))
9919 (file-name (git-file-name name version))
9920 (sha256
9921 (base32 "17jrng8jb05d64ggyd11hp308c2fl5drvf9g175blgrkkl8l4mf8"))))
9922 (build-system asdf-build-system/sbcl)
9923 (native-inputs
9924 `(("lisp-unit" ,sbcl-lisp-unit)))
9925 (synopsis "Common Lisp library for base32 encoding and decoding")
9926 (description
9927 "This package provides functions for base32 encoding and decoding as
9928 defined in RFC4648.")
9929 (home-page "https://github.com/hargettp/cl-base32")
9930 (license license:expat))))
9931
9932 (define-public cl-base32
9933 (sbcl-package->cl-source-package sbcl-cl-base32))
9934
9935 (define-public ecl-cl-base32
9936 (sbcl-package->ecl-package sbcl-cl-base32))
9937
9938 (define-public sbcl-cl-z85
9939 (let ((commit "85b3951a9cfa2603acb6aee15567684f9a108098")
9940 (revision "1"))
9941 (package
9942 (name "sbcl-cl-z85")
9943 (version (git-version "1.0" revision commit))
9944 (source
9945 (origin
9946 (method git-fetch)
9947 (uri (git-reference
9948 (url "https://github.com/glv2/cl-z85.git")
9949 (commit commit)))
9950 (file-name (git-file-name name version))
9951 (sha256
9952 (base32 "0r27pidjaxbm7k1rr90nnajwl5xm2kp65g1fv0fva17lzy45z1mp"))))
9953 (build-system asdf-build-system/sbcl)
9954 (native-inputs
9955 `(("cl-octet-streams" ,sbcl-cl-octet-streams)
9956 ("fiveam" ,sbcl-fiveam)))
9957 (synopsis "Common Lisp library for Z85 encoding and decoding")
9958 (description
9959 "This package provides functions to encode or decode byte vectors or
9960 byte streams using the Z85 format, which is a base-85 encoding used by
9961 ZeroMQ.")
9962 (home-page "https://github.com/glv2/cl-z85")
9963 (license license:gpl3+))))
9964
9965 (define-public cl-z85
9966 (sbcl-package->cl-source-package sbcl-cl-z85))
9967
9968 (define-public ecl-cl-z85
9969 (sbcl-package->ecl-package sbcl-cl-z85))
9970
9971 (define-public sbcl-ltk
9972 (package
9973 (name "sbcl-ltk")
9974 (version "0.992")
9975 (source
9976 (origin
9977 (method git-fetch)
9978 (uri (git-reference
9979 (url "https://github.com/herth/ltk.git")
9980 (commit version)))
9981 (file-name (git-file-name name version))
9982 (sha256
9983 (base32 "13l2q4mskzilya9xh5wy2xvy30lwn104bd8wrq6ifds56r82iy3x"))))
9984 (build-system asdf-build-system/sbcl)
9985 (inputs
9986 `(("imagemagick" ,imagemagick)
9987 ("tk" ,tk)))
9988 (arguments
9989 `(#:asd-file "ltk/ltk.asd"
9990 #:tests? #f
9991 #:phases (modify-phases %standard-phases
9992 (add-after 'unpack 'fix-paths
9993 (lambda* (#:key inputs #:allow-other-keys)
9994 (substitute* "ltk/ltk.lisp"
9995 (("#-freebsd \"wish\"")
9996 (string-append "#-freebsd \""
9997 (assoc-ref inputs "tk")
9998 "/bin/wish\""))
9999 (("do-execute \"convert\"")
10000 (string-append "do-execute \""
10001 (assoc-ref inputs "imagemagick")
10002 "/bin/convert\"")))
10003 #t)))))
10004 (synopsis "Common Lisp bindings for the Tk GUI toolkit")
10005 (description
10006 "LTK is a Common Lisp binding for the Tk graphics toolkit. It is written
10007 in pure Common Lisp and does not require any Tk knowledge for its usage.")
10008 (home-page "http://www.peter-herth.de/ltk/")
10009 (license license:llgpl)))
10010
10011 (define-public cl-ltk
10012 (sbcl-package->cl-source-package sbcl-ltk))
10013
10014 (define-public ecl-ltk
10015 (sbcl-package->ecl-package sbcl-ltk))
10016
10017 (define-public sbcl-ltk-mw
10018 (package
10019 (inherit sbcl-ltk)
10020 (name "sbcl-ltk-mw")
10021 (inputs
10022 `(("ltk" ,sbcl-ltk)))
10023 (arguments
10024 (substitute-keyword-arguments (package-arguments sbcl-ltk)
10025 ((#:asd-file _) "ltk/ltk-mw.asd")
10026 ((#:phases _) '%standard-phases)))
10027 (synopsis "Extra widgets for LTK")
10028 (description
10029 "This is a collection of higher-level widgets built on top of LTK.")))
10030
10031 (define-public cl-ltk-mw
10032 (sbcl-package->cl-source-package sbcl-ltk-mw))
10033
10034 (define-public ecl-ltk-mw
10035 (sbcl-package->ecl-package sbcl-ltk-mw))
10036
10037 (define-public sbcl-ltk-remote
10038 (package
10039 (inherit sbcl-ltk)
10040 (name "sbcl-ltk-remote")
10041 (inputs
10042 `(("ltk" ,sbcl-ltk)))
10043 (arguments
10044 (substitute-keyword-arguments (package-arguments sbcl-ltk)
10045 ((#:asd-file _) "ltk/ltk-remote.asd")
10046 ((#:phases _) '%standard-phases)))
10047 (synopsis "Remote GUI support for LTK")
10048 (description
10049 "This LTK extension allows the GUI to be displayed on a computer different
10050 from the one running the Lisp program by using a TCP connection.")))
10051
10052 (define-public cl-ltk-remote
10053 (sbcl-package->cl-source-package sbcl-ltk-remote))
10054
10055 (define-public sbcl-cl-lex
10056 (let ((commit "f2dbbe25ef553005fb402d9a6203180c3fa1093b")
10057 (revision "1"))
10058 (package
10059 (name "sbcl-cl-lex")
10060 (version (git-version "1.1.3" revision commit))
10061 (source
10062 (origin
10063 (method git-fetch)
10064 (uri (git-reference
10065 (url "https://github.com/djr7C4/cl-lex.git")
10066 (commit commit)))
10067 (file-name (git-file-name name version))
10068 (sha256
10069 (base32 "1kg50f76bfpfxcv4dfivq1n9a0xlsra2ajb0vd68lxwgbidgyc2y"))))
10070 (build-system asdf-build-system/sbcl)
10071 (inputs
10072 `(("cl-ppcre" ,sbcl-cl-ppcre)))
10073 (synopsis "Common Lisp macros for generating lexical analyzers")
10074 (description
10075 "This is a Common Lisp library providing a set of macros for generating
10076 lexical analyzers automatically. The lexers generated using @code{cl-lex} can
10077 be used with @code{cl-yacc}.")
10078 (home-page "https://github.com/djr7C4/cl-lex")
10079 (license license:gpl3))))
10080
10081 (define-public cl-lex
10082 (sbcl-package->cl-source-package sbcl-cl-lex))
10083
10084 (define-public ecl-cl-lex
10085 (sbcl-package->ecl-package sbcl-cl-lex))
10086
10087 (define-public sbcl-clunit2
10088 (let ((commit "5e28343734eb9b7aee39306a614af92c1062d50b")
10089 (revision "1"))
10090 (package
10091 (name "sbcl-clunit2")
10092 (version (git-version "0.2.4" revision commit))
10093 (source
10094 (origin
10095 (method git-fetch)
10096 (uri (git-reference
10097 (url "https://notabug.org/cage/clunit2.git")
10098 (commit commit)))
10099 (file-name (git-file-name name version))
10100 (sha256
10101 (base32 "1ngiapfki6nm8a555mzhb5p7ch79i3w665za5bmb5j7q34fy80vw"))))
10102 (build-system asdf-build-system/sbcl)
10103 (synopsis "Unit testing framework for Common Lisp")
10104 (description
10105 "CLUnit is a Common Lisp unit testing framework. It is designed to be
10106 easy to use so that you can quickly start testing.")
10107 (home-page "https://notabug.org/cage/clunit2")
10108 (license license:expat))))
10109
10110 (define-public cl-clunit2
10111 (sbcl-package->cl-source-package sbcl-clunit2))
10112
10113 (define-public ecl-clunit2
10114 (sbcl-package->ecl-package sbcl-clunit2))
10115
10116 (define-public sbcl-cl-colors2
10117 (let ((commit "795aedee593b095fecde574bd999b520dd03ed24")
10118 (revision "1"))
10119 (package
10120 (name "sbcl-cl-colors2")
10121 (version (git-version "0.2.1" revision commit))
10122 (source
10123 (origin
10124 (method git-fetch)
10125 (uri (git-reference
10126 (url "https://notabug.org/cage/cl-colors2.git")
10127 (commit commit)))
10128 (file-name (git-file-name name version))
10129 (sha256
10130 (base32 "0hlyf4h5chkjdp9armla5w4kw5acikk159sym7y8c4jbjp9x47ih"))))
10131 (build-system asdf-build-system/sbcl)
10132 (native-inputs
10133 `(("clunit2" ,sbcl-clunit2)))
10134 (inputs
10135 `(("alexandria" ,sbcl-alexandria)
10136 ("cl-ppcre" ,sbcl-cl-ppcre)))
10137 (synopsis "Color library for Common Lisp")
10138 (description
10139 "This is a very simple color library for Common Lisp, providing:
10140
10141 @itemize
10142 @item Types for representing colors in HSV and RGB spaces.
10143 @item Simple conversion functions between the above types (and also
10144 hexadecimal representation for RGB).
10145 @item Some predefined colors (currently X11 color names -- of course
10146 the library does not depend on X11).
10147 @end itemize\n")
10148 (home-page "https://notabug.org/cage/cl-colors2")
10149 (license license:boost1.0))))
10150
10151 (define-public cl-colors2
10152 (sbcl-package->cl-source-package sbcl-cl-colors2))
10153
10154 (define-public ecl-cl-colors2
10155 (sbcl-package->ecl-package sbcl-cl-colors2))
10156
10157 (define-public sbcl-cl-jpeg
10158 (let ((commit "ec557038128df6895fbfb743bfe8faf8ec2534af")
10159 (revision "1"))
10160 (package
10161 (name "sbcl-cl-jpeg")
10162 (version (git-version "2.8" revision commit))
10163 (source
10164 (origin
10165 (method git-fetch)
10166 (uri (git-reference
10167 (url "https://github.com/sharplispers/cl-jpeg.git")
10168 (commit commit)))
10169 (file-name (git-file-name name version))
10170 (sha256
10171 (base32 "1bkkiqz8fqldlj1wbmrccjsvxcwj98h6s4b6gslr3cg2wmdv5xmy"))))
10172 (build-system asdf-build-system/sbcl)
10173 (synopsis "JPEG image library for Common Lisp")
10174 (description
10175 "This is a baseline JPEG codec written in Common Lisp. It can be used
10176 for reading and writing JPEG image files.")
10177 (home-page "https://github.com/sharplispers/cl-jpeg")
10178 (license license:bsd-3))))
10179
10180 (define-public cl-jpeg
10181 (sbcl-package->cl-source-package sbcl-cl-jpeg))
10182
10183 (define-public ecl-cl-jpeg
10184 (sbcl-package->ecl-package sbcl-cl-jpeg))
10185
10186 (define-public sbcl-nodgui
10187 (let ((commit "bc59ed9b787dfc9e68ae3bd7f7e8507c5c619212")
10188 (revision "1"))
10189 (package
10190 (name "sbcl-nodgui")
10191 (version (git-version "0.0.5" revision commit))
10192 (source
10193 (origin
10194 (method git-fetch)
10195 (uri (git-reference
10196 (url "https://notabug.org/cage/nodgui.git")
10197 (commit commit)))
10198 (file-name (git-file-name name version))
10199 (sha256
10200 (base32 "0xx0dk54d882i598ydnwmy7mnfk0b7vib3ddsgpqxhjck1rwq8l8"))))
10201 (build-system asdf-build-system/sbcl)
10202 (inputs
10203 `(("alexandria" ,sbcl-alexandria)
10204 ("bordeaux-threads" ,sbcl-bordeaux-threads)
10205 ("cl-colors2" ,sbcl-cl-colors2)
10206 ("cl-jpeg" ,sbcl-cl-jpeg)
10207 ("cl-lex" ,sbcl-cl-lex)
10208 ("cl-ppcre-unicode" ,sbcl-cl-ppcre-unicode)
10209 ("cl-unicode" ,sbcl-cl-unicode)
10210 ("cl-yacc" ,sbcl-cl-yacc)
10211 ("clunit2" ,sbcl-clunit2)
10212 ("named-readtables" ,sbcl-named-readtables)
10213 ("parse-number" ,sbcl-parse-number)
10214 ("tk" ,tk)))
10215 (arguments
10216 `(#:phases (modify-phases %standard-phases
10217 (add-after 'unpack 'fix-paths
10218 (lambda* (#:key inputs #:allow-other-keys)
10219 (substitute* "src/wish-communication.lisp"
10220 (("#-freebsd \"wish\"")
10221 (string-append "#-freebsd \""
10222 (assoc-ref inputs "tk")
10223 "/bin/wish\"")))
10224 #t)))))
10225 (synopsis "Common Lisp bindings for the Tk GUI toolkit")
10226 (description
10227 "Nodgui (@emph{No Drama GUI}) is a Common Lisp binding for the Tk GUI
10228 toolkit. It also provides a few additional widgets more than the standard Tk
10229 ones.")
10230 (home-page "https://www.autistici.org/interzona/nodgui.html")
10231 (license license:llgpl))))
10232
10233 (define-public cl-nodgui
10234 (sbcl-package->cl-source-package sbcl-nodgui))
10235
10236 (define-public ecl-nodgui
10237 (sbcl-package->ecl-package sbcl-nodgui))
10238
10239 (define-public sbcl-salza2
10240 (package
10241 (name "sbcl-salza2")
10242 (version "2.0.9")
10243 (source
10244 (origin
10245 (method git-fetch)
10246 (uri (git-reference
10247 (url "https://github.com/xach/salza2.git")
10248 (commit (string-append "release-" version))))
10249 (file-name (git-file-name name version))
10250 (sha256
10251 (base32 "0p38rj4gq7j5k807php7hrz7l2zyyfshv8i9yms7i8lkgg3433ki"))))
10252 (build-system asdf-build-system/sbcl)
10253 (synopsis "Common Lisp library for zlib, deflate and gzip compression")
10254 (description
10255 "Salza2 is a Common Lisp library for creating compressed data in the zlib,
10256 deflate, or gzip data formats, described in RFC 1950, RFC 1951, and RFC 1952,
10257 respectively.")
10258 (home-page "https://www.xach.com/lisp/salza2/")
10259 (license license:bsd-2)))
10260
10261 (define-public cl-salza2
10262 (sbcl-package->cl-source-package sbcl-salza2))
10263
10264 (define-public ecl-salza2
10265 (sbcl-package->ecl-package sbcl-salza2))
10266
10267 (define-public sbcl-png-read
10268 (let ((commit "ec29f38a689972b9f1373f13bbbcd6b05deada88")
10269 (revision "1"))
10270 (package
10271 (name "sbcl-png-read")
10272 (version (git-version "0.3.1" revision commit))
10273 (source
10274 (origin
10275 (method git-fetch)
10276 (uri (git-reference
10277 (url "https://github.com/Ramarren/png-read.git")
10278 (commit commit)))
10279 (file-name (git-file-name name version))
10280 (sha256
10281 (base32 "0vyczbcwskrygrf1hgrsnk0jil8skmvf1kiaalw5jps4fjrfdkw0"))))
10282 (build-system asdf-build-system/sbcl)
10283 (inputs
10284 `(("babel" ,sbcl-babel)
10285 ("chipz" ,sbcl-chipz)
10286 ("iterate" ,sbcl-iterate)))
10287 (synopsis "PNG decoder for Common Lisp")
10288 (description "This is a Common Lisp library for reading PNG images.")
10289 (home-page "https://github.com/Ramarren/png-read")
10290 (license license:bsd-3))))
10291
10292 (define-public cl-png-read
10293 (sbcl-package->cl-source-package sbcl-png-read))
10294
10295 (define-public ecl-png-read
10296 (sbcl-package->ecl-package sbcl-png-read))
10297
10298 (define-public sbcl-zpng
10299 (package
10300 (name "sbcl-zpng")
10301 (version "1.2.2")
10302 (source
10303 (origin
10304 (method git-fetch)
10305 (uri (git-reference
10306 (url "https://github.com/xach/zpng.git")
10307 (commit (string-append "release-" version))))
10308 (file-name (git-file-name name version))
10309 (sha256
10310 (base32 "0b3ag3jhl3z7kdls3ahdsdxsfhhw5qrizk769984f4wkxhb69rcm"))))
10311 (build-system asdf-build-system/sbcl)
10312 (inputs
10313 `(("salza2" ,sbcl-salza2)))
10314 (synopsis "PNG encoder for Common Lisp")
10315 (description "This is a Common Lisp library for creating PNG images.")
10316 (home-page "https://www.xach.com/lisp/zpng/")
10317 (license license:bsd-2)))
10318
10319 (define-public cl-zpng
10320 (sbcl-package->cl-source-package sbcl-zpng))
10321
10322 (define-public ecl-zpng
10323 (sbcl-package->ecl-package sbcl-zpng))
10324
10325 (define-public sbcl-cl-qrencode
10326 (package
10327 (name "sbcl-cl-qrencode")
10328 (version "0.1.2")
10329 (source
10330 (origin
10331 (method git-fetch)
10332 (uri (git-reference
10333 (url "https://github.com/jnjcc/cl-qrencode.git")
10334 (commit (string-append "v" version))))
10335 (file-name (git-file-name name version))
10336 (sha256
10337 (base32 "1l5k131dchbf6cj8a8xqa731790p01p3qa1kdy2wa9dawy3ymkxr"))))
10338 (build-system asdf-build-system/sbcl)
10339 (native-inputs
10340 `(("lisp-unit" ,sbcl-lisp-unit)))
10341 (inputs
10342 `(("zpng" ,sbcl-zpng)))
10343 (synopsis "QR code encoder for Common Lisp")
10344 (description
10345 "This Common Lisp library provides function to make QR codes and to save
10346 them as PNG files.")
10347 (home-page "https://github.com/jnjcc/cl-qrencode")
10348 (license license:gpl2+)))
10349
10350 (define-public cl-qrencode
10351 (sbcl-package->cl-source-package sbcl-cl-qrencode))
10352
10353 (define-public ecl-cl-qrencode
10354 (sbcl-package->ecl-package sbcl-cl-qrencode))
10355
10356 (define-public sbcl-hdf5-cffi
10357 (let ((commit "5b5c88f191e470e4fe96b462334e3ce0806eed5c")
10358 (revision "1"))
10359 (package
10360 (name "sbcl-hdf5-cffi")
10361 (version (git-version "1.8.18" revision commit))
10362 (source
10363 (origin
10364 (method git-fetch)
10365 (uri (git-reference
10366 (url "https://github.com/hdfgroup/hdf5-cffi.git")
10367 (commit commit)))
10368 (file-name (git-file-name name version))
10369 (sha256
10370 (base32
10371 "0vda3075423xz83qky998lpac5b04dwfv7bwgh9jq8cs5v0zrxjf"))))
10372 (build-system asdf-build-system/sbcl)
10373 (synopsis "Common Lisp bindings for the HDF5 library")
10374 (description
10375 "@code{hdf5-cffi} is a CFFI wrapper for the HDF5 library.")
10376 (home-page "https://github.com/hdfgroup/hdf5-cffi")
10377 (license (license:non-copyleft
10378 (string-append "https://github.com/HDFGroup/hdf5-cffi/raw/"
10379 commit
10380 "/LICENSE")))
10381 (inputs
10382 `(("cffi" ,sbcl-cffi)
10383 ("cffi-grovel" ,sbcl-cffi-grovel)
10384 ("hdf5" ,hdf5-1.10)))
10385 (native-inputs
10386 `(("fiveam" ,sbcl-fiveam)))
10387 (arguments
10388 `(#:asd-system-name "hdf5-cffi"
10389 #:asd-file "hdf5-cffi.asd"
10390 #:test-asd-file "hdf5-cffi.test.asd"
10391 ;; Tests depend on hdf5-cffi.examples.asd in addition to hdf5-cffi.asd,
10392 ;; I don't know if there is a way to tell asdf-build-system to load
10393 ;; an additional system first, so tests are disabled.
10394 #:tests? #f
10395 #:phases
10396 (modify-phases %standard-phases
10397 (add-after 'unpack 'fix-paths
10398 (lambda* (#:key inputs #:allow-other-keys)
10399 (substitute* "src/library.lisp"
10400 (("libhdf5.so")
10401 (string-append
10402 (assoc-ref inputs "hdf5")
10403 "/lib/libhdf5.so")))))
10404 (add-after 'unpack 'fix-dependencies
10405 (lambda* (#:key inputs #:allow-other-keys)
10406 (substitute* "hdf5-cffi.asd"
10407 ((":depends-on \\(:cffi\\)")
10408 ":depends-on (:cffi :cffi-grovel)"))
10409 (substitute* "hdf5-cffi.test.asd"
10410 ((":depends-on \\(:cffi :hdf5-cffi")
10411 ":depends-on (:cffi :cffi-grovel :hdf5-cffi"))))))))))
10412
10413 (define-public cl-hdf5-cffi
10414 (sbcl-package->cl-source-package sbcl-hdf5-cffi))
10415
10416 (define-public ecl-hdf5-cffi
10417 (sbcl-package->ecl-package sbcl-hdf5-cffi))
10418
10419 (define-public sbcl-cl-randist
10420 (package
10421 (name "sbcl-cl-randist")
10422 (version "0.4.2")
10423 (source
10424 (origin
10425 (method git-fetch)
10426 (uri (git-reference
10427 (url "https://github.com/lvaruzza/cl-randist.git")
10428 (commit "f088a54b540a7adefab7c04094a6103f9edda3d0")))
10429 (file-name (git-file-name name version))
10430 (sha256
10431 (base32
10432 "0l8hyd6nbxb7f50vyxz3rbbm7kgr1fnadc40jywy4xj5vi5kpj5g"))))
10433 (build-system asdf-build-system/sbcl)
10434 (synopsis "Random distributions for Common Lisp")
10435 (description
10436 "Manual translation from C to Common Lisp of some random number
10437 generation functions from the GSL library.")
10438 (home-page "https://github.com/lvaruzza/cl-randist")
10439 (license license:bsd-2)
10440 (arguments
10441 `(#:asd-system-name "cl-randist"
10442 #:asd-file "cl-randist.asd"
10443 #:tests? #f))))
10444
10445 (define-public cl-randist
10446 (sbcl-package->cl-source-package sbcl-cl-randist))
10447
10448 (define-public ecl-cl-randist
10449 (sbcl-package->ecl-package sbcl-cl-randist))
10450
10451 (define-public sbcl-float-features
10452 (package
10453 (name "sbcl-float-features")
10454 (version "1.0.0")
10455 (source
10456 (origin
10457 (method git-fetch)
10458 (uri (git-reference
10459 (url "https://github.com/Shinmera/float-features.git")
10460 (commit "d3ef60181635b0849aa28cfc238053b7ca4644b0")))
10461 (file-name (git-file-name name version))
10462 (sha256
10463 (base32
10464 "0yj419k7n59x6rh3grwr6frgwwyria2il6f7wxpfazm8cskv4lzr"))))
10465 (build-system asdf-build-system/sbcl)
10466 (synopsis "Common Lisp IEEE float portability library")
10467 (description
10468 "Portability library for IEEE float features that are not
10469 covered by the Common Lisp standard.")
10470 (home-page "https://github.com/Shinmera/float-features")
10471 (license license:zlib)
10472 (inputs
10473 `(("documentation-utils" ,sbcl-documentation-utils)))
10474 (arguments
10475 `(#:asd-system-name "float-features"
10476 #:asd-file "float-features.asd"
10477 #:tests? #f))))
10478
10479 (define-public cl-float-features
10480 (sbcl-package->cl-source-package sbcl-float-features))
10481
10482 (define-public ecl-float-features
10483 (sbcl-package->ecl-package sbcl-float-features))
10484
10485 (define-public sbcl-function-cache
10486 (package
10487 (name "sbcl-function-cache")
10488 (version "1.0.3")
10489 (source
10490 (origin
10491 (method git-fetch)
10492 (uri (git-reference
10493 (url "https://github.com/AccelerationNet/function-cache.git")
10494 (commit "6a5ada401e57da2c8abf046f582029926e61fce8")))
10495 (file-name (git-file-name name version))
10496 (sha256
10497 (base32
10498 "000vmd3f5rx5hs9nvphfric0gkzaadns31c6mxaslpv0k7pkrmc6"))))
10499 (build-system asdf-build-system/sbcl)
10500 (synopsis "Function caching / memoization library for Common Lisp")
10501 (description
10502 "A common lisp library that provides extensible function result
10503 caching based on arguments (an expanded form of memoization).")
10504 (home-page "https://github.com/AccelerationNet/function-cache")
10505 (license
10506 (license:non-copyleft
10507 "https://github.com/AccelerationNet/function-cache/blob/master/README.md"))
10508 (inputs
10509 `(("alexandria" ,sbcl-alexandria)
10510 ("cl-interpol" ,sbcl-cl-interpol)
10511 ("iterate" ,sbcl-iterate)
10512 ("symbol-munger" ,sbcl-symbol-munger)
10513 ("closer-mop" ,sbcl-closer-mop)))
10514 (arguments
10515 `(#:asd-system-name "function-cache"
10516 #:asd-file "function-cache.asd"
10517 #:tests? #f))))
10518
10519 (define-public cl-function-cache
10520 (sbcl-package->cl-source-package sbcl-function-cache))
10521
10522 (define-public ecl-function-cache
10523 (sbcl-package->ecl-package sbcl-function-cache))
10524
10525 (define-public sbcl-type-r
10526 (let ((commit "83c89e38f2f7a7b16f1012777ecaf878cfa6a267")
10527 (revision "1"))
10528 (package
10529 (name "sbcl-type-r")
10530 (version (git-version "0.0.0" revision commit))
10531 (source
10532 (origin
10533 (method git-fetch)
10534 (uri (git-reference
10535 (url "https://github.com/guicho271828/type-r.git")
10536 (commit commit)))
10537 (file-name (git-file-name name version))
10538 (sha256
10539 (base32
10540 "1arsxc2539rg8vbrdirz4xxj1b06mc6g6rqndz7a02g127qvk2sm"))))
10541 (build-system asdf-build-system/sbcl)
10542 (synopsis "Parser interface for Common Lisp built-in compound types")
10543 (description
10544 "Collections of accessor functions and patterns to access
10545 the elements in compound type specifier, e.g. @code{dimensions} in
10546 @code{(array element-type dimensions)}")
10547 (home-page "https://github.com/guicho271828/type-r")
10548 (license license:lgpl3+)
10549 (inputs
10550 `(("trivia" ,sbcl-trivia)
10551 ("alexandria" ,sbcl-alexandria)))
10552 (native-inputs
10553 `(("fiveam" ,sbcl-fiveam)))
10554 (arguments
10555 `(#:asd-system-name "type-r"
10556 #:asd-file "type-r.asd"
10557 #:test-asd-file "type-r.test.asd")))))
10558
10559 (define-public cl-type-r
10560 (sbcl-package->cl-source-package sbcl-type-r))
10561
10562 (define-public sbcl-trivialib-type-unify
10563 (let ((commit "62492ebf04db567dcf435ae84c50b7b8202ecf99")
10564 (revision "1"))
10565 (package
10566 (name "sbcl-trivialib-type-unify")
10567 (version (git-version "0.1" revision commit))
10568 (source
10569 (origin
10570 (method git-fetch)
10571 (uri (git-reference
10572 (url "https://github.com/guicho271828/trivialib.type-unify.git")
10573 (commit commit)))
10574 (file-name (git-file-name name version))
10575 (sha256
10576 (base32
10577 "1bkyfzbwv75p50zp8n1n9rh2r29pw3vgz91gmn2gzzkyq3khj1vh"))))
10578 (build-system asdf-build-system/sbcl)
10579 (synopsis "Common Lisp type unification")
10580 (description
10581 "Unifies a parametrized type specifier against an actual type specifier.
10582 Importantly, it handles complicated array-subtypes and number-related types
10583 correctly.")
10584 (home-page "https://github.com/guicho271828/trivialib.type-unify")
10585 (license license:lgpl3+)
10586 (inputs
10587 `(("alexandria" ,sbcl-alexandria)
10588 ("trivia" ,sbcl-trivia)
10589 ("introspect-environment" ,sbcl-introspect-environment)
10590 ("type-r" ,sbcl-type-r)))
10591 (native-inputs
10592 `(("fiveam" ,sbcl-fiveam)))
10593 (arguments
10594 `(#:asd-system-name "trivialib.type-unify"
10595 #:asd-file "trivialib.type-unify.asd"
10596 #:test-asd-file "trivialib.type-unify.test.asd")))))
10597
10598 (define-public cl-trivialib-type-unify
10599 (sbcl-package->cl-source-package sbcl-trivialib-type-unify))
10600
10601 (define-public sbcl-specialized-function
10602 (let ((commit "b96b6afaf8358bf91cc0703e62a5a4ee20d2b7bc")
10603 (revision "1"))
10604 (package
10605 (name "sbcl-specialized-function")
10606 (version (git-version "0.0.0" revision commit))
10607 (source
10608 (origin
10609 (method git-fetch)
10610 (uri (git-reference
10611 (url "https://github.com/numcl/specialized-function.git")
10612 (commit commit)))
10613 (file-name (git-file-name name version))
10614 (sha256
10615 (base32
10616 "12j45ff0n26578vmfbhb9mfbdchw4wy023k0m2ppgl9s0z4bhjaj"))))
10617 (build-system asdf-build-system/sbcl)
10618 (synopsis "Julia-like dispatch for Common Lisp")
10619 (description
10620 "This library is part of NUMCL. It provides a macro
10621 @code{SPECIALIZED} that performs a Julia-like dispatch on the arguments,
10622 lazily compiling a type-specific version of the function from the same
10623 code. The main target of this macro is speed.")
10624 (home-page "https://github.com/numcl/specialized-function")
10625 (license license:lgpl3+)
10626 (inputs
10627 `(("trivia" ,sbcl-trivia)
10628 ("alexandria" ,sbcl-alexandria)
10629 ("iterate" ,sbcl-iterate)
10630 ("lisp-namespace" ,sbcl-lisp-namespace)
10631 ("type-r" ,sbcl-type-r)
10632 ("trivial-cltl2" ,sbcl-trivial-cltl2)))
10633 (native-inputs
10634 `(("fiveam" ,sbcl-fiveam)))
10635 (arguments
10636 `(#:asd-system-name "specialized-function"
10637 #:asd-file "specialized-function.asd"
10638 #:test-asd-file "specialized-function.test.asd")))))
10639
10640 (define-public cl-specialized-function
10641 (sbcl-package->cl-source-package sbcl-specialized-function))
10642
10643 (define-public sbcl-constantfold
10644 (let ((commit "0ff1d97a3fbcb89264f6a2af6ce62b73e7b421f4")
10645 (revision "1"))
10646 (package
10647 (name "sbcl-constantfold")
10648 (version (git-version "0.1" revision commit))
10649 (source
10650 (origin
10651 (method git-fetch)
10652 (uri (git-reference
10653 (url "https://github.com/numcl/constantfold.git")
10654 (commit commit)))
10655 (file-name (git-file-name name version))
10656 (sha256
10657 (base32
10658 "153h0569z6bff1qbad0bdssplwwny75l7ilqwcfqfdvzsxf9jh06"))))
10659 (build-system asdf-build-system/sbcl)
10660 (synopsis "Support library for numcl")
10661 (description
10662 "Support library for numcl. Registers a function as an
10663 additional form that is considered as a candidate for a constant.")
10664 (home-page "https://github.com/numcl/constantfold")
10665 (license license:lgpl3+)
10666 (inputs
10667 `(("trivia" ,sbcl-trivia)
10668 ("alexandria" ,sbcl-alexandria)
10669 ("iterate" ,sbcl-iterate)
10670 ("lisp-namespace" ,sbcl-lisp-namespace)))
10671 (native-inputs
10672 `(("fiveam" ,sbcl-fiveam)))
10673 (arguments
10674 `(#:asd-system-name "constantfold"
10675 #:asd-file "constantfold.asd"
10676 #:test-asd-file "constantfold.test.asd")))))
10677
10678 (define-public cl-constantfold
10679 (sbcl-package->cl-source-package sbcl-constantfold))
10680
10681 (define-public sbcl-gtype
10682 (let ((commit "42275e3606242ae91e9c8dfa30c18ced50a35b66")
10683 (revision "1"))
10684 (package
10685 (name "sbcl-gtype")
10686 (version (git-version "0.1" revision commit))
10687 (source
10688 (origin
10689 (method git-fetch)
10690 (uri (git-reference
10691 (url "https://github.com/numcl/gtype.git")
10692 (commit commit)))
10693 (file-name (git-file-name name version))
10694 (sha256
10695 (base32
10696 "1f56dba998v945jcxhha391557n6md1ql25b7icfwwfivhmlaa9b"))))
10697 (build-system asdf-build-system/sbcl)
10698 (synopsis "C++/Julia-like parametric types in Common Lisp")
10699 (description
10700 "Support library for numcl that provides Julia-like runtime parametric
10701 type correctness in Common Lisp. It is based on CLtL2 extensions.")
10702 (home-page "https://github.com/numcl/gtype")
10703 (license license:lgpl3+)
10704 (inputs
10705 `(("trivialib.type-unify" ,sbcl-trivialib-type-unify)
10706 ("trivial-cltl2" ,sbcl-trivial-cltl2)
10707 ("trivia" ,sbcl-trivia)
10708 ("alexandria" ,sbcl-alexandria)
10709 ("iterate" ,sbcl-iterate)
10710 ("type-r" ,sbcl-type-r)))
10711 (native-inputs
10712 `(("fiveam" ,sbcl-fiveam)))
10713 (arguments
10714 `(#:asd-system-name "gtype"
10715 #:asd-file "gtype.asd"
10716 #:test-asd-file "gtype.test.asd")))))
10717
10718 (define-public cl-gtype
10719 (sbcl-package->cl-source-package sbcl-gtype))
10720
10721 (define-public sbcl-numcl
10722 (let ((commit "1cf7dfa59f763a24a501092870e9c5ee745d0c17")
10723 (revision "1"))
10724 (package
10725 (name "sbcl-numcl")
10726 (version (git-version "0.1.0" revision commit))
10727 (source
10728 (origin
10729 (method git-fetch)
10730 (uri (git-reference
10731 (url "https://github.com/numcl/numcl.git")
10732 (commit commit)))
10733 (file-name (git-file-name name version))
10734 (sha256
10735 (base32
10736 "0i3jby9hf4ii7blivgyza80g0vmjfhk8537i5i7kqqk0i5sdnym2"))))
10737 (build-system asdf-build-system/sbcl)
10738 (synopsis "Numpy clone in Common Lisp")
10739 (description
10740 "This is a Numpy clone in Common Lisp. At the moment the
10741 library is written in pure Common Lisp, focusing more on correctness
10742 and usefulness, not speed. Track the progress at
10743 @url{https://github.com/numcl/numcl/projects/1}.")
10744 (home-page "https://github.com/numcl/numcl")
10745 (license license:lgpl3+)
10746 (inputs
10747 `(("trivia" ,sbcl-trivia)
10748 ("alexandria" ,sbcl-alexandria)
10749 ("iterate" ,sbcl-iterate)
10750 ("lisp-namespace" ,sbcl-lisp-namespace)
10751 ("type-r" ,sbcl-type-r)
10752 ("constantfold" ,sbcl-constantfold)
10753 ("cl-randist" ,sbcl-cl-randist)
10754 ("float-features" ,sbcl-float-features)
10755 ("function-cache" ,sbcl-function-cache)
10756 ("specialized-function" ,sbcl-specialized-function)
10757 ("gtype" ,sbcl-gtype)))
10758 (native-inputs
10759 `(("fiveam" ,sbcl-fiveam)))
10760 (arguments
10761 `(#:asd-system-name "numcl"
10762 #:asd-file "numcl.asd"
10763 #:test-asd-file "numcl.test.asd")))))
10764
10765 (define-public cl-numcl
10766 (sbcl-package->cl-source-package sbcl-numcl))
10767
10768 (define-public sbcl-pzmq
10769 (let ((commit "7c7390eedc469d033c72dc497984d1536ee75826")
10770 (revision "1"))
10771 (package
10772 (name "sbcl-pzmq")
10773 (version (git-version "0.0.0" revision commit))
10774 (source
10775 (origin
10776 (method git-fetch)
10777 (uri (git-reference
10778 (url "https://github.com/orivej/pzmq.git")
10779 (commit commit)))
10780 (file-name (git-file-name name version))
10781 (sha256
10782 (base32 "0gmwzf7h90wa7v4wnk49g0hv2mdalljpwhyigxcb967wzv8lqci9"))))
10783 (build-system asdf-build-system/sbcl)
10784 (native-inputs
10785 `(("bordeaux-threads" ,sbcl-bordeaux-threads)
10786 ("fiveam" ,sbcl-fiveam)
10787 ("let-plus" ,sbcl-let-plus)))
10788 (inputs
10789 `(("cffi" ,sbcl-cffi)
10790 ("cffi-grovel" ,sbcl-cffi-grovel)
10791 ("zeromq" ,zeromq)))
10792 (arguments
10793 `(#:phases (modify-phases %standard-phases
10794 (add-after 'unpack 'fix-paths
10795 (lambda* (#:key inputs #:allow-other-keys)
10796 (substitute* "c-api.lisp"
10797 (("\"libzmq")
10798 (string-append "\""
10799 (assoc-ref inputs "zeromq")
10800 "/lib/libzmq")))
10801 #t)))))
10802 (synopsis "Common Lisp bindings for the ZeroMQ library")
10803 (description "This Common Lisp library provides bindings for the ZeroMQ
10804 lightweight messaging kernel.")
10805 (home-page "https://github.com/orivej/pzmq")
10806 (license license:unlicense))))
10807
10808 (define-public cl-pzmq
10809 (sbcl-package->cl-source-package sbcl-pzmq))
10810
10811 (define-public ecl-pzmq
10812 (sbcl-package->ecl-package sbcl-pzmq))
10813
10814 (define-public sbcl-clss
10815 (let ((revision "1")
10816 (commit "2a8e8615ab55870d4ca01928f3ed3bbeb4e75c8d"))
10817 (package
10818 (name "sbcl-clss")
10819 (version (git-version "0.3.1" revision commit))
10820 (source
10821 (origin
10822 (method git-fetch)
10823 (uri
10824 (git-reference
10825 (url "https://github.com/Shinmera/clss.git")
10826 (commit commit)))
10827 (sha256
10828 (base32 "0la4dbcda78x29szanylccrsljqrn9d1mhh569sqkyp44ni5fv91"))
10829 (file-name (git-file-name name version))))
10830 (inputs
10831 `(("array-utils" ,sbcl-array-utils)
10832 ("plump" ,sbcl-plump)))
10833 (build-system asdf-build-system/sbcl)
10834 (synopsis "DOM tree searching engine based on CSS selectors")
10835 (description "CLSS is a DOM traversal engine based on CSS
10836 selectors. It makes use of the Plump-DOM and is used by lQuery.")
10837 (home-page "https://github.com/Shinmera/clss")
10838 (license license:zlib))))
10839
10840 (define-public cl-clss
10841 (sbcl-package->cl-source-package sbcl-clss))
10842
10843 (define-public ecl-clss
10844 (sbcl-package->ecl-package sbcl-clss))
10845
10846 (define-public sbcl-lquery
10847 (let ((revision "1")
10848 (commit "8048111c6b83956daa632e7a3ffbd8c9c203bd8d"))
10849 (package
10850 (name "sbcl-lquery")
10851 (version (git-version "3.2.1" revision commit))
10852 (source
10853 (origin
10854 (method git-fetch)
10855 (uri
10856 (git-reference
10857 (url "https://github.com/Shinmera/lquery.git")
10858 (commit commit)))
10859 (sha256
10860 (base32 "0520mcpxc2d6fdm8z61arpgd2z38kan7cf06qs373n5r64rakz6w"))
10861 (file-name (git-file-name name version))))
10862 (native-inputs
10863 `(("fiveam" ,sbcl-fiveam)))
10864 (inputs
10865 `(("array-utils" ,sbcl-array-utils)
10866 ("form-fiddle" ,sbcl-form-fiddle)
10867 ("plump" ,sbcl-plump)
10868 ("clss" ,sbcl-clss)))
10869 (build-system asdf-build-system/sbcl)
10870 (synopsis "Library to allow jQuery-like HTML/DOM manipulation")
10871 (description "@code{lQuery} is a DOM manipulation library written in
10872 Common Lisp, inspired by and based on the jQuery syntax and
10873 functions. It uses Plump and CLSS as DOM and selector engines. The
10874 main idea behind lQuery is to provide a simple interface for crawling
10875 and modifying HTML sites, as well as to allow for an alternative
10876 approach to templating.")
10877 (home-page "https://github.com/Shinmera/lquery")
10878 (license license:zlib))))
10879
10880 (define-public cl-lquery
10881 (sbcl-package->cl-source-package sbcl-lquery))
10882
10883 (define-public ecl-lquery
10884 (sbcl-package->ecl-package sbcl-lquery))
10885
10886 (define-public sbcl-cl-mysql
10887 (let ((commit "ab56c279c1815aec6ca0bfe85164ff7e85cfb6f9")
10888 (revision "1"))
10889 (package
10890 (name "sbcl-cl-mysql")
10891 (version (git-version "0.1" revision commit))
10892 (source
10893 (origin
10894 (method git-fetch)
10895 (uri (git-reference
10896 (url "https://github.com/hackinghat/cl-mysql.git")
10897 (commit commit)))
10898 (file-name (git-file-name name version))
10899 (sha256
10900 (base32 "0dg5ynx2ww94d0qfwrdrm7plkn43h64hs4iiq9mj2s1s4ixnp3lr"))))
10901 (build-system asdf-build-system/sbcl)
10902 (native-inputs
10903 `(("stefil" ,sbcl-stefil)))
10904 (inputs
10905 `(("cffi" ,sbcl-cffi)
10906 ("mariadb-lib" ,mariadb "lib")))
10907 (arguments
10908 `(#:tests? #f ; TODO: Tests require a running server
10909 #:phases
10910 (modify-phases %standard-phases
10911 (add-after 'unpack 'fix-paths
10912 (lambda* (#:key inputs #:allow-other-keys)
10913 (substitute* "system.lisp"
10914 (("libmysqlclient_r" all)
10915 (string-append (assoc-ref inputs "mariadb-lib")
10916 "/lib/"
10917 all)))
10918 #t)))))
10919 (synopsis "Common Lisp wrapper for MySQL")
10920 (description
10921 "@code{cl-mysql} is a Common Lisp implementation of a MySQL wrapper.")
10922 (home-page "http://www.hackinghat.com/index.php/cl-mysql")
10923 (license license:expat))))
10924
10925 (define-public cl-mysql
10926 (sbcl-package->cl-source-package sbcl-cl-mysql))
10927
10928 (define-public sbcl-simple-date
10929 (let ((commit "74469b25bbda990ec9b77e0d0eccdba0cd7e721a")
10930 (revision "1"))
10931 (package
10932 (name "sbcl-simple-date")
10933 (version (git-version "1.19" revision commit))
10934 (source
10935 (origin
10936 (method git-fetch)
10937 (uri (git-reference
10938 (url "https://github.com/marijnh/Postmodern.git")
10939 (commit commit)))
10940 (file-name (git-file-name name version))
10941 (sha256
10942 (base32 "0im7ymnyxjhn2w74jfg76k5gpr0gl33n31akx33hl28722ljd0hd"))))
10943 (build-system asdf-build-system/sbcl)
10944 (native-inputs
10945 `(("fiveam" ,sbcl-fiveam)))
10946 (synopsis "Basic date and time objects for Common Lisp")
10947 (description
10948 "@code{simple-date} is a very basic implementation of date and time
10949 objects, used to support storing and retrieving time-related SQL types.")
10950 (home-page "https://marijnhaverbeke.nl/postmodern/")
10951 (license license:zlib))))
10952
10953 (define-public cl-simple-date
10954 (sbcl-package->cl-source-package sbcl-simple-date))
10955
10956 (define-public ecl-simple-date
10957 (sbcl-package->ecl-package sbcl-simple-date))
10958
10959 (define-public sbcl-cl-postgres
10960 (package
10961 (inherit sbcl-simple-date)
10962 (name "sbcl-cl-postgres")
10963 (native-inputs
10964 `(("fiveam" ,sbcl-fiveam)
10965 ("simple-date" ,sbcl-simple-date)))
10966 (inputs
10967 `(("md5" ,sbcl-md5)
10968 ("split-sequence" ,sbcl-split-sequence)
10969 ("usocket" ,sbcl-usocket)))
10970 (arguments
10971 `(#:tests? #f)) ; TODO: Break simple-date/postgres-glue circular dependency
10972 (synopsis "Common Lisp interface for PostgreSQL")
10973 (description
10974 "@code{cl-postgres} is a low-level library used for interfacing with
10975 a PostgreSQL server over a socket.")))
10976
10977 (define-public cl-postgres
10978 (sbcl-package->cl-source-package sbcl-cl-postgres))
10979
10980 (define-public sbcl-simple-date-postgres-glue
10981 (package
10982 (inherit sbcl-simple-date)
10983 (name "sbcl-simple-date-postgres-glue")
10984 (inputs
10985 `(("cl-postgres" ,sbcl-cl-postgres)
10986 ("simple-date" ,sbcl-simple-date)))
10987 (arguments
10988 `(#:asd-file "simple-date.asd"
10989 #:asd-system-name "simple-date/postgres-glue"))))
10990
10991 (define-public cl-simple-date-postgres-glue
10992 (sbcl-package->cl-source-package sbcl-simple-date-postgres-glue))
10993
10994 (define-public sbcl-s-sql
10995 (package
10996 (inherit sbcl-simple-date)
10997 (name "sbcl-s-sql")
10998 (inputs
10999 `(("alexandria" ,sbcl-alexandria)
11000 ("cl-postgres" ,sbcl-cl-postgres)))
11001 (arguments
11002 `(#:tests? #f)) ; TODO: Break postmodern circular dependency
11003 (synopsis "Lispy DSL for SQL")
11004 (description
11005 "@code{s-sql} is a Common Lisp library that can be used to compile
11006 s-expressions to strings of SQL code, escaping any Lisp values inside, and
11007 doing as much as possible of the work at compile time.")))
11008
11009 (define-public cl-s-sql
11010 (sbcl-package->cl-source-package sbcl-s-sql))
11011
11012 (define-public sbcl-postmodern
11013 (package
11014 (inherit sbcl-simple-date)
11015 (name "sbcl-postmodern")
11016 (native-inputs
11017 `(("fiveam" ,sbcl-fiveam)
11018 ("simple-date" ,sbcl-simple-date)
11019 ("simple-date-postgres-glue" ,sbcl-simple-date-postgres-glue)))
11020 (inputs
11021 `(("alexandria" ,sbcl-alexandria)
11022 ("bordeaux-threads" ,sbcl-bordeaux-threads)
11023 ("cl-postgres" ,sbcl-cl-postgres)
11024 ("closer-mop" ,sbcl-closer-mop)
11025 ("global-vars" ,sbcl-global-vars)
11026 ("s-sql" ,sbcl-s-sql)
11027 ("split-sequence" ,sbcl-split-sequence)))
11028 (arguments
11029 ;; TODO: Fix missing dependency errors for simple-date/postgres-glue,
11030 ;; cl-postgres/tests and s-sql/tests.
11031 `(#:tests? #f))
11032 (synopsis "Common Lisp library for interacting with PostgreSQL")
11033 (description
11034 "@code{postmodern} is a Common Lisp library for interacting with
11035 PostgreSQL databases. It provides the following features:
11036
11037 @itemize
11038 @item Efficient communication with the database server without need for
11039 foreign libraries.
11040 @item Support for UTF-8 on Unicode-aware Lisp implementations.
11041 @item A syntax for mixing SQL and Lisp code.
11042 @item Convenient support for prepared statements and stored procedures.
11043 @item A metaclass for simple database-access objects.
11044 @end itemize\n")))
11045
11046 (define-public cl-postmodern
11047 (sbcl-package->cl-source-package sbcl-postmodern))
11048
11049 (define-public sbcl-dbi
11050 (package
11051 (name "sbcl-dbi")
11052 (version "0.9.4")
11053 (source
11054 (origin
11055 (method git-fetch)
11056 (uri (git-reference
11057 (url "https://github.com/fukamachi/cl-dbi.git")
11058 (commit version)))
11059 (file-name (git-file-name name version))
11060 (sha256
11061 (base32 "0m1fsravfaizamdak84adh3jxc4j91maqnrb4m08bfbmb04cdqhs"))))
11062 (build-system asdf-build-system/sbcl)
11063 (inputs
11064 `(("bordeaux-threads" ,sbcl-bordeaux-threads)
11065 ("closer-mop" ,sbcl-closer-mop)
11066 ("split-sequence" ,sbcl-split-sequence)))
11067 (arguments
11068 `(#:tests? #f)) ; TODO: Break circular dependency with dbd-*
11069 (synopsis "Database independent interface for Common Lisp")
11070 (description
11071 "@code{dbi} is a Common Lisp library providing a database independent
11072 interface for MySQL, PostgreSQL and SQLite.")
11073 (home-page "https://github.com/fukamachi/cl-dbi")
11074 (license license:llgpl)))
11075
11076 (define-public cl-dbi
11077 (sbcl-package->cl-source-package sbcl-dbi))
11078
11079 (define-public sbcl-dbd-mysql
11080 (package
11081 (inherit sbcl-dbi)
11082 (name "sbcl-dbd-mysql")
11083 (inputs
11084 `(("cl-mysql" ,sbcl-cl-mysql)
11085 ("dbi" ,sbcl-dbi)))
11086 (synopsis "Database driver for MySQL")))
11087
11088 (define-public cl-dbd-mysql
11089 (sbcl-package->cl-source-package sbcl-dbd-mysql))
11090
11091 (define-public sbcl-dbd-postgres
11092 (package
11093 (inherit sbcl-dbi)
11094 (name "sbcl-dbd-postgres")
11095 (inputs
11096 `(("cl-postgres" ,sbcl-cl-postgres)
11097 ("dbi" ,sbcl-dbi)
11098 ("trivial-garbage" ,sbcl-trivial-garbage)))
11099 (synopsis "Database driver for PostgreSQL")))
11100
11101 (define-public cl-dbd-postgres
11102 (sbcl-package->cl-source-package sbcl-dbd-postgres))
11103
11104 (define-public sbcl-dbd-sqlite3
11105 (package
11106 (inherit sbcl-dbi)
11107 (name "sbcl-dbd-sqlite3")
11108 (inputs
11109 `(("cl-sqlite" ,sbcl-cl-sqlite)
11110 ("dbi" ,sbcl-dbi)
11111 ("trivial-garbage" ,sbcl-trivial-garbage)))
11112 (synopsis "Database driver for SQLite3")))
11113
11114 (define-public cl-dbd-sqlite3
11115 (sbcl-package->cl-source-package sbcl-dbd-sqlite3))
11116
11117 (define-public sbcl-uffi
11118 (package
11119 (name "sbcl-uffi")
11120 (version "2.1.2")
11121 (source
11122 (origin
11123 (method git-fetch)
11124 (uri (git-reference
11125 (url "http://git.kpe.io/uffi.git")
11126 (commit (string-append "v" version))))
11127 (file-name (git-file-name name version))
11128 (sha256
11129 (base32 "1hqszvz0a3wk4s9faa83sc3vjxcb5rxmjclyr17yzwg55z733kry"))))
11130 (build-system asdf-build-system/sbcl)
11131 (arguments
11132 `(#:tests? #f ; TODO: Fix use of deprecated ASDF functions
11133 #:phases
11134 (modify-phases %standard-phases
11135 (add-after 'unpack 'fix-permissions
11136 (lambda _
11137 (make-file-writable "doc/html.tar.gz")
11138 #t)))))
11139 (synopsis "Universal foreign function library for Common Lisp")
11140 (description
11141 "UFFI provides a universal foreign function interface (FFI)
11142 for Common Lisp.")
11143 (home-page "http://quickdocs.org/uffi/")
11144 (license license:llgpl)))
11145
11146 (define-public cl-uffi
11147 (package
11148 (inherit (sbcl-package->cl-source-package sbcl-uffi))
11149 (arguments
11150 `(#:phases
11151 ;; asdf-build-system/source has its own phases and does not inherit
11152 ;; from asdf-build-system/sbcl phases.
11153 (modify-phases %standard-phases/source
11154 (add-after 'unpack 'fix-permissions
11155 (lambda _
11156 (make-file-writable "doc/html.tar.gz")
11157 #t)))))))
11158
11159 (define-public sbcl-clsql
11160 (package
11161 (name "sbcl-clsql")
11162 (version "6.7.0")
11163 (source
11164 (origin
11165 (method git-fetch)
11166 (uri (git-reference
11167 (url "http://git.kpe.io/clsql.git")
11168 (commit (string-append "v" version))))
11169 (file-name (git-file-name name version))
11170 (sha256
11171 (base32 "1v1k3s5bsy3lgd9gk459bzpb1r0kdjda25s29samxw4gsgf1fqvp"))
11172 (snippet
11173 '(begin
11174 ;; Remove precompiled libraries.
11175 (delete-file "db-mysql/clsql_mysql.dll")
11176 (delete-file "uffi/clsql_uffi.dll")
11177 (delete-file "uffi/clsql_uffi.lib")
11178 #t))))
11179 (build-system asdf-build-system/sbcl)
11180 (native-inputs
11181 `(("cffi-uffi-compat" ,sbcl-cffi-uffi-compat)
11182 ("rt" ,sbcl-rt)
11183 ("uffi" ,sbcl-uffi)))
11184 (arguments
11185 `(#:phases
11186 (modify-phases %standard-phases
11187 (add-after 'unpack 'fix-permissions
11188 (lambda _
11189 (make-file-writable "doc/html.tar.gz")
11190 #t))
11191 (add-after 'unpack 'fix-tests
11192 (lambda _
11193 (substitute* "clsql.asd"
11194 (("clsql-tests :force t")
11195 "clsql-tests"))
11196 #t)))))
11197 (synopsis "Common Lisp SQL Interface library")
11198 (description
11199 "@code{clsql} is a Common Lisp interface to SQL RDBMS based on the
11200 Xanalys CommonSQL interface for Lispworks. It provides low-level database
11201 interfaces as well as a functional and an object oriented interface.")
11202 (home-page "http://clsql.kpe.io/")
11203 (license license:llgpl)))
11204
11205 (define-public cl-clsql
11206 (package
11207 (inherit (sbcl-package->cl-source-package sbcl-clsql))
11208 (native-inputs
11209 `(("rt" ,cl-rt)))
11210 (inputs
11211 `(("mysql" ,mysql)
11212 ("postgresql" ,postgresql)
11213 ("sqlite" ,sqlite)
11214 ("zlib" ,zlib)))
11215 (propagated-inputs
11216 `(("cl-postgres" ,cl-postgres)
11217 ("cffi-uffi-compat" ,cl-cffi-uffi-compat)
11218 ("md5" ,cl-md5)
11219 ("uffi" ,cl-uffi)))
11220 (arguments
11221 `(#:phases
11222 ;; asdf-build-system/source has its own phases and does not inherit
11223 ;; from asdf-build-system/sbcl phases.
11224 (modify-phases %standard-phases/source
11225 (add-after 'unpack 'fix-permissions
11226 (lambda _
11227 (make-file-writable "doc/html.tar.gz")
11228 #t)))))))
11229
11230 (define-public sbcl-clsql-uffi
11231 (package
11232 (inherit sbcl-clsql)
11233 (name "sbcl-clsql-uffi")
11234 (inputs
11235 `(("cffi-uffi-compat" ,sbcl-cffi-uffi-compat)
11236 ("clsql" ,sbcl-clsql)
11237 ("uffi" ,sbcl-uffi)))
11238 (synopsis "UFFI helper functions for Common Lisp SQL interface library")))
11239
11240 (define-public sbcl-clsql-sqlite3
11241 (package
11242 (inherit sbcl-clsql)
11243 (name "sbcl-clsql-sqlite3")
11244 (inputs
11245 `(("clsql" ,sbcl-clsql)
11246 ("clsql-uffi" ,sbcl-clsql-uffi)
11247 ("sqlite" ,sqlite)))
11248 (arguments
11249 (substitute-keyword-arguments (package-arguments sbcl-clsql)
11250 ((#:phases phases '%standard-phases)
11251 `(modify-phases ,phases
11252 (add-after 'unpack 'fix-paths
11253 (lambda* (#:key inputs #:allow-other-keys)
11254 (substitute* "db-sqlite3/sqlite3-loader.lisp"
11255 (("libsqlite3")
11256 (string-append (assoc-ref inputs "sqlite")
11257 "/lib/libsqlite3")))
11258 #t))))))
11259 (synopsis "SQLite3 driver for Common Lisp SQL interface library")))
11260
11261 (define-public sbcl-clsql-postgresql
11262 (package
11263 (inherit sbcl-clsql)
11264 (name "sbcl-clsql-postgresql")
11265 (inputs
11266 `(("clsql" ,sbcl-clsql)
11267 ("clsql-uffi" ,sbcl-clsql-uffi)
11268 ("postgresql" ,postgresql)))
11269 (arguments
11270 (substitute-keyword-arguments (package-arguments sbcl-clsql)
11271 ((#:phases phases '%standard-phases)
11272 `(modify-phases ,phases
11273 (add-after 'unpack 'fix-paths
11274 (lambda* (#:key inputs #:allow-other-keys)
11275 (substitute* "db-postgresql/postgresql-loader.lisp"
11276 (("libpq")
11277 (string-append (assoc-ref inputs "postgresql")
11278 "/lib/libpq")))
11279 #t))))))
11280 (synopsis "PostgreSQL driver for Common Lisp SQL interface library")))
11281
11282 (define-public sbcl-clsql-postgresql-socket3
11283 (package
11284 (inherit sbcl-clsql)
11285 (name "sbcl-clsql-postgresql-socket3")
11286 (inputs
11287 `(("cl-postgres" ,sbcl-cl-postgres)
11288 ("clsql" ,sbcl-clsql)
11289 ("md5" ,sbcl-md5)))
11290 (arguments
11291 (substitute-keyword-arguments (package-arguments sbcl-clsql)
11292 ((#:phases phases '%standard-phases)
11293 `(modify-phases ,phases
11294 (add-after 'create-asd-file 'fix-asd-file
11295 (lambda* (#:key outputs #:allow-other-keys)
11296 (let* ((out (assoc-ref outputs "out"))
11297 (lib (string-append out "/lib/" (%lisp-type)))
11298 (asd (string-append lib "/clsql-postgresql-socket3.asd")))
11299 (substitute* asd
11300 (("CLSQL-POSTGRESQL-SOCKET-SYSTEM::")
11301 "")))
11302 #t))))))
11303 (synopsis "PostgreSQL driver for Common Lisp SQL interface library")))
11304
11305 (define-public sbcl-clsql-mysql
11306 (package
11307 (inherit sbcl-clsql)
11308 (name "sbcl-clsql-mysql")
11309 (inputs
11310 `(("mysql" ,mysql)
11311 ("sbcl-clsql" ,sbcl-clsql)
11312 ("sbcl-clsql-uffi" ,sbcl-clsql-uffi)
11313 ("zlib" ,zlib)))
11314 (arguments
11315 (substitute-keyword-arguments (package-arguments sbcl-clsql)
11316 ((#:phases phases '%standard-phases)
11317 `(modify-phases ,phases
11318 (add-after 'unpack 'fix-paths
11319 (lambda* (#:key inputs outputs #:allow-other-keys)
11320 (let ((lib (string-append "#p\""
11321 (assoc-ref outputs "out")
11322 "/lib/\"")))
11323 (substitute* "clsql-mysql.asd"
11324 (("#p\"/usr/lib/clsql/clsql_mysql\\.so\"")
11325 lib))
11326 (substitute* "db-mysql/mysql-loader.lisp"
11327 (("libmysqlclient" all)
11328 (string-append (assoc-ref inputs "mysql") "/lib/" all))
11329 (("clsql-mysql-system::\\*library-file-dir\\*")
11330 lib)))
11331 #t))
11332 (add-before 'build 'build-helper-library
11333 (lambda* (#:key inputs outputs #:allow-other-keys)
11334 (let* ((mysql (assoc-ref inputs "mysql"))
11335 (inc-dir (string-append mysql "/include/mysql"))
11336 (lib-dir (string-append mysql "/lib"))
11337 (shared-lib-dir (string-append (assoc-ref outputs "out")
11338 "/lib"))
11339 (shared-lib (string-append shared-lib-dir
11340 "/clsql_mysql.so")))
11341 (mkdir-p shared-lib-dir)
11342 (invoke "gcc" "-fPIC" "-shared"
11343 "-I" inc-dir
11344 "db-mysql/clsql_mysql.c"
11345 "-Wl,-soname=clsql_mysql"
11346 "-L" lib-dir "-lmysqlclient" "-lz"
11347 "-o" shared-lib)
11348 #t)))))))
11349 (synopsis "MySQL driver for Common Lisp SQL interface library")))
11350
11351 (define-public sbcl-sycamore
11352 (let ((commit "fd2820fec165ad514493426dea209728f64e6d18"))
11353 (package
11354 (name "sbcl-sycamore")
11355 (version "0.0.20120604")
11356 (source
11357 (origin
11358 (method git-fetch)
11359 (uri (git-reference
11360 (url "https://github.com/ndantam/sycamore/")
11361 (commit commit)))
11362 (file-name (git-file-name name version))
11363 (sha256
11364 (base32 "00bv1aj89q5vldmq92zp2364jq312zjq2mbd3iyz1s2b4widzhl7"))))
11365 (build-system asdf-build-system/sbcl)
11366 (arguments
11367 `(#:asd-file "src/sycamore.asd"))
11368 (inputs
11369 `(("alexandria" ,sbcl-alexandria)
11370 ("cl-ppcre" ,sbcl-cl-ppcre)))
11371 (synopsis "Purely functional data structure library in Common Lisp")
11372 (description
11373 "Sycamore is a fast, purely functional data structure library in Common Lisp.
11374 If features:
11375
11376 @itemize
11377 @item Fast, purely functional weight-balanced binary trees.
11378 @item Leaf nodes are simple-vectors, greatly reducing tree height.
11379 @item Interfaces for tree Sets and Maps (dictionaries).
11380 @item Ropes.
11381 @item Purely functional pairing heaps.
11382 @item Purely functional amortized queue.
11383 @end itemize\n")
11384 (home-page "http://ndantam.github.io/sycamore/")
11385 (license license:bsd-3))))
11386
11387 (define-public cl-sycamore
11388 (sbcl-package->cl-source-package sbcl-sycamore))
11389
11390 (define-public sbcl-trivial-package-local-nicknames
11391 (package
11392 (name "sbcl-trivial-package-local-nicknames")
11393 (version "0.2")
11394 (home-page "https://github.com/phoe/trivial-package-local-nicknames")
11395 (source
11396 (origin
11397 (method git-fetch)
11398 (uri (git-reference
11399 (url home-page)
11400 (commit "16b7ad4c2b120f50da65154191f468ea5598460e")))
11401 (file-name (git-file-name name version))
11402 (sha256
11403 (base32 "18qc27xkjzdcqrilpk3pm7djldwq5rm3ggd5h9cr8hqcd54i2fqg"))))
11404 (build-system asdf-build-system/sbcl)
11405 (synopsis "Common Lisp compatibility library for package local nicknames")
11406 (description
11407 "This library is a portable compatibility layer around package local nicknames (PLN).
11408 This was done so there is a portability library for the PLN API not included
11409 in DEFPACKAGE.")
11410 (license license:unlicense)))
11411
11412 (define-public cl-trivial-package-local-nicknames
11413 (sbcl-package->cl-source-package sbcl-trivial-package-local-nicknames))
11414
11415 (define-public sbcl-enchant
11416 (let ((commit "6af162a7bf10541cbcfcfa6513894900329713fa"))
11417 (package
11418 (name "sbcl-enchant")
11419 (version (git-version "0.0.0" "1" commit))
11420 (home-page "https://github.com/tlikonen/cl-enchant")
11421 (source
11422 (origin
11423 (method git-fetch)
11424 (uri (git-reference
11425 (url home-page)
11426 (commit commit)))
11427 (file-name (git-file-name name version))
11428 (sha256
11429 (base32 "19yh5ihirzi1d8xqy1cjqipzd6ly3245cfxa5s9xx496rryz0s01"))))
11430 (build-system asdf-build-system/sbcl)
11431 (inputs
11432 `(("enchant" ,enchant)
11433 ("cffi" ,sbcl-cffi)))
11434 (arguments
11435 `(#:phases
11436 (modify-phases %standard-phases
11437 (add-after 'unpack 'fix-paths
11438 (lambda* (#:key inputs #:allow-other-keys)
11439 (substitute* "load-enchant.lisp"
11440 (("libenchant")
11441 (string-append
11442 (assoc-ref inputs "enchant") "/lib/libenchant-2"))))))))
11443 (synopsis "Common Lisp interface for the Enchant spell-checker library")
11444 (description
11445 "Enchant is a Common Lisp interface for the Enchant spell-checker
11446 library. The Enchant library is a generic spell-checker library which uses
11447 other spell-checkers transparently as back-end. The library supports the
11448 multiple checkers, including Aspell and Hunspell.")
11449 (license license:public-domain))))
11450
11451 (define-public cl-enchant
11452 (sbcl-package->cl-source-package sbcl-enchant))
11453
11454 (define-public sbcl-cl-change-case
11455 (let ((commit "5ceff2a5f8bd845b6cb510c6364176b27a238fd3"))
11456 (package
11457 (name "sbcl-cl-change-case")
11458 (version (git-version "0.1.0" "1" commit))
11459 (home-page "https://github.com/rudolfochrist/cl-change-case")
11460 (source
11461 (origin
11462 (method git-fetch)
11463 (uri (git-reference
11464 (url home-page)
11465 (commit commit)))
11466 (file-name (git-file-name name version))
11467 (sha256
11468 (base32 "1afyglglk9z3yg8gylcl301bl2r8vq3sllyznzj9s5xi5gs6qyf2"))))
11469 (build-system asdf-build-system/sbcl)
11470 (inputs
11471 `(("cl-ppcre" ,sbcl-cl-ppcre)
11472 ("cl-ppcre-unicode" ,sbcl-cl-ppcre-unicode)))
11473 (native-inputs
11474 `(("fiveam" ,sbcl-fiveam)))
11475 (arguments
11476 '(;; FIXME: Test pass but phase fails with 'Component
11477 ;; "cl-change-case-test" not found, required by'.
11478 #:tests? #f
11479 #:test-asd-file "cl-change-case-test.asd"))
11480 (synopsis "Convert Common Lisp strings between camelCase, PascalCase and more")
11481 (description
11482 "@code{cl-change-case} is library to convert strings between camelCase,
11483 PascalCase, snake_case, param-case, CONSTANT_CASE and more.")
11484 (license license:llgpl))))
11485
11486 (define-public cl-change-case
11487 (sbcl-package->cl-source-package sbcl-cl-change-case))
11488
11489 (define-public sbcl-moptilities
11490 (let ((commit "a436f16b357c96b82397ec018ea469574c10dd41"))
11491 (package
11492 (name "sbcl-moptilities")
11493 (version (git-version "0.3.13" "1" commit))
11494 (home-page "https://github.com/gwkkwg/moptilities/")
11495 (source
11496 (origin
11497 (method git-fetch)
11498 (uri (git-reference
11499 (url home-page)
11500 (commit commit)))
11501 (file-name (git-file-name name version))
11502 (sha256
11503 (base32 "1q12bqjbj47lx98yim1kfnnhgfhkl80102fkgp9pdqxg0fp6g5fc"))))
11504 (build-system asdf-build-system/sbcl)
11505 (inputs
11506 `(("closer-mop" ,sbcl-closer-mop)))
11507 (native-inputs
11508 `(("lift" ,sbcl-lift)))
11509 (synopsis "Compatibility layer for Common Lisp MOP implementation differences")
11510 (description
11511 "MOP utilities provide a common interface between Lisps and make the
11512 MOP easier to use.")
11513 (license license:expat))))
11514
11515 (define-public cl-moptilities
11516 (sbcl-package->cl-source-package sbcl-moptilities))
11517
11518 (define-public sbcl-osicat
11519 (let ((commit "de0c18a367eedc857e1902a7319828af072a0d97"))
11520 (package
11521 (name "sbcl-osicat")
11522 (version (git-version "0.7.0" "1" commit))
11523 (home-page "http://www.common-lisp.net/project/osicat/")
11524 (source
11525 (origin
11526 (method git-fetch)
11527 (uri (git-reference
11528 (url "https://github.com/osicat/osicat")
11529 (commit commit)))
11530 (file-name (git-file-name name version))
11531 (sha256
11532 (base32 "15viw5pi5sa7qq9b4n2rr3dj2jkqr180rh9z1lh8w3rgl42i2adc"))))
11533 (build-system asdf-build-system/sbcl)
11534 (arguments
11535 `(#:phases
11536 (modify-phases %standard-phases
11537 ;; The cleanup phase moves files around but we need to keep the
11538 ;; directory structure for the grovel-generated library.
11539 (replace 'cleanup
11540 (lambda* (#:key outputs #:allow-other-keys)
11541 (let* ((out (assoc-ref outputs "out"))
11542 (lib (string-append out "/lib/sbcl/")))
11543 (delete-file-recursively (string-append lib "src"))
11544 (delete-file-recursively (string-append lib "tests"))
11545 (for-each delete-file
11546 (filter (lambda (file)
11547 (not (member (basename file) '("libosicat.so"))))
11548 (find-files (string-append lib "posix") ".*"))))
11549 #t)))))
11550 (inputs
11551 `(("alexandria" ,sbcl-alexandria)
11552 ("cffi" ,sbcl-cffi)
11553 ("trivial-features" ,sbcl-trivial-features)))
11554 (native-inputs
11555 `(("cffi-grovel" ,sbcl-cffi-grovel)
11556 ("rt" ,sbcl-rt)))
11557 (synopsis "Operating system interface for Common Lisp")
11558 (description
11559 "Osicat is a lightweight operating system interface for Common Lisp on
11560 Unix-platforms. It is not a POSIX-style API, but rather a simple lispy
11561 accompaniment to the standard ANSI facilities.")
11562 (license license:expat))))
11563
11564 (define-public cl-osicat
11565 (sbcl-package->cl-source-package sbcl-osicat))