gnu: Add sbcl-cluffer-simple-line.
[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 Nikita <nikita@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 "ebd59b1afed03b9dc8544320f8f432fdf92ab010"))
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 "0b1pxlccmnagk9cbh4cy8s5k66g3x0gwib5shjwr24xvrji6lp94"))
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 ;; No release since 2014.
1161 (let ((commit "870d03de0ed44067963350936856e17ee725153e"))
1162 (package
1163 (name "sbcl-trivial-features")
1164 (version (git-version "0.8" "1" commit))
1165 (source
1166 (origin
1167 (method git-fetch)
1168 (uri (git-reference
1169 (url "https://github.com/trivial-features/trivial-features.git")
1170 (commit commit)))
1171 (file-name (git-file-name "trivial-features" version))
1172 (sha256
1173 (base32 "14pcahr8r2j3idhyy216zyw8jnj1dnrx0qbkkbdqkvwzign1ah4j"))))
1174 (build-system asdf-build-system/sbcl)
1175 (arguments '(#:tests? #f))
1176 (home-page "https://cliki.net/trivial-features")
1177 (synopsis "Ensures consistency of @code{*FEATURES*} in Common Lisp")
1178 (description "Trivial-features ensures that @code{*FEATURES*} is
1179 consistent across multiple Common Lisp implementations.")
1180 (license license:expat))))
1181
1182 (define-public cl-trivial-features
1183 (sbcl-package->cl-source-package sbcl-trivial-features))
1184
1185 (define-public ecl-trivial-features
1186 (sbcl-package->ecl-package sbcl-trivial-features))
1187
1188 (define-public sbcl-hu.dwim.asdf
1189 (package
1190 (name "sbcl-hu.dwim.asdf")
1191 (version "20190521")
1192 (source
1193 (origin
1194 (method url-fetch)
1195 (uri (string-append "http://beta.quicklisp.org/archive/hu.dwim.asdf/"
1196 "2019-05-21/hu.dwim.asdf-" version "-darcs.tgz"))
1197 (sha256
1198 (base32
1199 "0rsbv71vyszy8w35yjwb5h6zcmknjq223hkzir79y72qdsc6sabn"))))
1200 (build-system asdf-build-system/sbcl)
1201 (home-page "https://hub.darcs.net/hu.dwim/hu.dwim.asdf")
1202 (synopsis "Extensions to ASDF")
1203 (description "Various ASDF extensions such as attached test and
1204 documentation system, explicit development support, etc.")
1205 (license license:public-domain)))
1206
1207 (define-public cl-hu.dwim.asdf
1208 (sbcl-package->cl-source-package sbcl-hu.dwim.asdf))
1209
1210 (define-public ecl-hu.dwim.asdf
1211 (sbcl-package->ecl-package sbcl-hu.dwim.asdf))
1212
1213 (define-public sbcl-hu.dwim.stefil
1214 (let ((commit "ab6d1aa8995878a1b66d745dfd0ba021090bbcf9"))
1215 (package
1216 (name "sbcl-hu.dwim.stefil")
1217 (version (git-version "0.0.0" "1" commit))
1218 (source
1219 (origin
1220 (method git-fetch)
1221 (uri
1222 (git-reference
1223 (url "https://gitlab.common-lisp.net/xcvb/hu.dwim.stefil.git")
1224 (commit commit)))
1225 (sha256
1226 (base32 "1d8yccw65zj3zh46cbi3x6nmn1dwdb76s9d0av035077mvyirqqp"))
1227 (file-name (git-file-name "hu.dwim.stefil" version))))
1228 (build-system asdf-build-system/sbcl)
1229 (native-inputs
1230 `(("asdf:cl-hu.dwim.asdf" ,sbcl-hu.dwim.asdf)))
1231 (inputs
1232 `(("sbcl-alexandria" ,sbcl-alexandria)))
1233 (home-page "https://hub.darcs.net/hu.dwim/hu.dwim.stefil")
1234 (synopsis "Simple test framework")
1235 (description "Stefil is a simple test framework for Common Lisp,
1236 with a focus on interactive development.")
1237 (license license:public-domain))))
1238
1239 (define-public cl-hu.dwim.stefil
1240 (sbcl-package->cl-source-package sbcl-hu.dwim.stefil))
1241
1242 (define-public ecl-hu.dwim.stefil
1243 (sbcl-package->ecl-package sbcl-hu.dwim.stefil))
1244
1245 (define-public sbcl-babel
1246 ;; No release since 2014.
1247 (let ((commit "aeed2d1b76358db48e6b70a64399c05678a6b9ea"))
1248 (package
1249 (name "sbcl-babel")
1250 (version (git-version "0.5.0" "1" commit))
1251 (source
1252 (origin
1253 (method git-fetch)
1254 (uri (git-reference
1255 (url "https://github.com/cl-babel/babel.git")
1256 (commit commit)))
1257 (file-name (git-file-name "babel" version))
1258 (sha256
1259 (base32 "0lkvv4xdpv4cv1y2bqillmabx8sdb2y4l6pbinq6mjh33w2brpvb"))))
1260 (build-system asdf-build-system/sbcl)
1261 (native-inputs
1262 `(("tests:cl-hu.dwim.stefil" ,sbcl-hu.dwim.stefil)))
1263 (inputs
1264 `(("sbcl-alexandria" ,sbcl-alexandria)
1265 ("sbcl-trivial-features" ,sbcl-trivial-features)))
1266 (home-page "https://common-lisp.net/project/babel/")
1267 (synopsis "Charset encoding and decoding library")
1268 (description "Babel is a charset encoding and decoding library, not unlike
1269 GNU libiconv, but completely written in Common Lisp.")
1270 (license license:expat))))
1271
1272 (define-public cl-babel
1273 (sbcl-package->cl-source-package sbcl-babel))
1274
1275 (define-public ecl-babel
1276 (sbcl-package->ecl-package sbcl-babel))
1277
1278 (define-public sbcl-cl-yacc
1279 (package
1280 (name "sbcl-cl-yacc")
1281 (version "0.3")
1282 (source
1283 (origin
1284 (method git-fetch)
1285 (uri (git-reference
1286 (url "https://github.com/jech/cl-yacc")
1287 (commit (string-append "cl-yacc-" version))))
1288 (sha256
1289 (base32
1290 "16946pzf8vvadnyfayvj8rbh4zjzw90h0azz2qk1mxrvhh5wklib"))
1291 (file-name (string-append "cl-yacc-" version "-checkout"))))
1292 (build-system asdf-build-system/sbcl)
1293 (arguments
1294 `(#:asd-file "yacc.asd"
1295 #:asd-system-name "yacc"))
1296 (synopsis "LALR(1) parser generator for Common Lisp, similar in spirit to Yacc")
1297 (description
1298 "CL-Yacc is a LALR(1) parser generator for Common Lisp, similar in spirit
1299 to AT&T Yacc, Berkeley Yacc, GNU Bison, Zebu, lalr.cl or lalr.scm.
1300
1301 CL-Yacc uses the algorithm due to Aho and Ullman, which is the one also used
1302 by AT&T Yacc, Berkeley Yacc and Zebu. It does not use the faster algorithm due
1303 to DeRemer and Pennello, which is used by Bison and lalr.scm (not lalr.cl).")
1304 (home-page "https://www.irif.fr/~jch//software/cl-yacc/")
1305 (license license:expat)))
1306
1307 (define-public cl-yacc
1308 (sbcl-package->cl-source-package sbcl-cl-yacc))
1309
1310 (define-public ecl-cl-yacc
1311 (sbcl-package->ecl-package sbcl-cl-yacc))
1312
1313 (define-public sbcl-jpl-util
1314 (let ((commit "0311ed374e19a49d43318064d729fe3abd9a3b62"))
1315 (package
1316 (name "sbcl-jpl-util")
1317 (version "20151005")
1318 (source
1319 (origin
1320 (method git-fetch)
1321 (uri (git-reference
1322 ;; Quicklisp uses this fork.
1323 (url "https://github.com/hawkir/cl-jpl-util")
1324 (commit commit)))
1325 (file-name
1326 (git-file-name "jpl-util" version))
1327 (sha256
1328 (base32
1329 "0nc0rk9n8grkg3045xsw34whmcmddn2sfrxki4268g7kpgz0d2yz"))))
1330 (build-system asdf-build-system/sbcl)
1331 (synopsis "Collection of Common Lisp utility functions and macros")
1332 (description
1333 "@command{cl-jpl-util} is a collection of Common Lisp utility functions
1334 and macros, primarily for software projects written in CL by the author.")
1335 (home-page "https://www.thoughtcrime.us/software/cl-jpl-util/")
1336 (license license:isc))))
1337
1338 (define-public cl-jpl-util
1339 (sbcl-package->cl-source-package sbcl-jpl-util))
1340
1341 (define-public ecl-jpl-util
1342 (sbcl-package->ecl-package sbcl-jpl-util))
1343
1344 (define-public sbcl-jpl-queues
1345 (package
1346 (name "sbcl-jpl-queues")
1347 (version "0.1")
1348 (source
1349 (origin
1350 (method url-fetch)
1351 (uri (string-append
1352 "http://www.thoughtcrime.us/software/jpl-queues/jpl-queues-"
1353 version
1354 ".tar.gz"))
1355 (sha256
1356 (base32
1357 "1wvvv7j117h9a42qaj1g4fh4mji28xqs7s60rn6d11gk9jl76h96"))))
1358 (build-system asdf-build-system/sbcl)
1359 (inputs
1360 `(("jpl-util" ,sbcl-jpl-util)
1361 ("bordeaux-threads" ,sbcl-bordeaux-threads)))
1362 (arguments
1363 ;; Tests seem to be broken.
1364 `(#:tests? #f))
1365 (synopsis "Common Lisp library implementing a few different kinds of queues")
1366 (description
1367 "A Common Lisp library implementing a few different kinds of queues:
1368
1369 @itemize
1370 @item Bounded and unbounded FIFO queues.
1371 @item Lossy bounded FIFO queues that drop elements when full.
1372 @item Unbounded random-order queues that use less memory than unbounded FIFO queues.
1373 @end itemize
1374
1375 Additionally, a synchronization wrapper is provided to make any queue
1376 conforming to the @command{jpl-queues} API thread-safe for lightweight
1377 multithreading applications. (See Calispel for a more sophisticated CL
1378 multithreaded message-passing library with timeouts and alternation among
1379 several blockable channels.)")
1380 (home-page "https://www.thoughtcrime.us/software/jpl-queues/")
1381 (license license:isc)))
1382
1383 (define-public cl-jpl-queues
1384 (sbcl-package->cl-source-package sbcl-jpl-queues))
1385
1386 (define-public ecl-jpl-queues
1387 (sbcl-package->ecl-package sbcl-jpl-queues))
1388
1389 (define-public sbcl-eos
1390 (let ((commit "b0faca83781ead9a588661e37bd47f90362ccd94"))
1391 (package
1392 (name "sbcl-eos")
1393 (version (git-version "0.0.0" "1" commit))
1394 (source
1395 (origin
1396 (method git-fetch)
1397 (uri (git-reference
1398 (url "https://github.com/adlai/Eos")
1399 (commit commit)))
1400 (sha256
1401 (base32
1402 "1bq8cfg087iyxmxi1mwgx5cfgy3b8ydrf81xljcis8qbgb2vszph"))
1403 (file-name (git-file-name "eos" version))))
1404 (build-system asdf-build-system/sbcl)
1405 (synopsis "Unit Testing for Common Lisp")
1406 (description
1407 "Eos was a unit testing library for Common Lisp.
1408 It began as a fork of FiveAM; however, FiveAM development has continued, while
1409 that of Eos has not. Thus, Eos is now deprecated in favor of FiveAM.")
1410 (home-page "https://github.com/adlai/Eos")
1411 (license license:expat))))
1412
1413 (define-public cl-eos
1414 (sbcl-package->cl-source-package sbcl-eos))
1415
1416 (define-public ecl-eos
1417 (sbcl-package->ecl-package sbcl-eos))
1418
1419 (define-public sbcl-esrap
1420 (let ((commit "133be8b05c2aae48696fe5b739eea2fa573fa48d"))
1421 (package
1422 (name "sbcl-esrap")
1423 (version (git-version "0.0.0" "1" commit))
1424 (source
1425 (origin
1426 (method git-fetch)
1427 (uri (git-reference
1428 (url "https://github.com/nikodemus/esrap")
1429 (commit commit)))
1430 (sha256
1431 (base32
1432 "02d5clihsdryhf7pix8c5di2571fdsffh75d40fkzhws90r5mksl"))
1433 (file-name (git-file-name "esrap" version))))
1434 (build-system asdf-build-system/sbcl)
1435 (native-inputs
1436 `(("eos" ,sbcl-eos))) ;For testing only.
1437 (inputs
1438 `(("alexandria" ,sbcl-alexandria)))
1439 (synopsis "Common Lisp packrat parser")
1440 (description
1441 "A packrat parser for Common Lisp.
1442 In addition to regular Packrat / Parsing Grammar / TDPL features ESRAP supports:
1443
1444 @itemize
1445 @item dynamic redefinition of nonterminals
1446 @item inline grammars
1447 @item semantic predicates
1448 @item introspective facilities (describing grammars, tracing, setting breaks)
1449 @end itemize\n")
1450 (home-page "https://nikodemus.github.io/esrap/")
1451 (license license:expat))))
1452
1453 (define-public cl-esrap
1454 (sbcl-package->cl-source-package sbcl-esrap))
1455
1456 (define-public ecl-esrap
1457 (sbcl-package->ecl-package sbcl-esrap))
1458
1459 (define-public sbcl-split-sequence
1460 (package
1461 (name "sbcl-split-sequence")
1462 (version "2.0.0")
1463 (source
1464 (origin
1465 (method git-fetch)
1466 (uri (git-reference
1467 (url "https://github.com/sharplispers/split-sequence")
1468 (commit (string-append "v" version))))
1469 (sha256
1470 (base32
1471 "0jcpnx21hkfwqj5fvp7kc6pn1qcz9hk7g2s5x8h0349x1j2irln0"))
1472 (file-name (git-file-name "split-sequence" version))))
1473 (build-system asdf-build-system/sbcl)
1474 (native-inputs
1475 `(("fiveam" ,sbcl-fiveam)))
1476 (synopsis "Member of the Common Lisp Utilities family of programs")
1477 (description
1478 "Splits sequence into a list of subsequences delimited by objects
1479 satisfying the test.")
1480 (home-page "https://cliki.net/split-sequence")
1481 (license license:expat)))
1482
1483 (define-public cl-split-sequence
1484 (sbcl-package->cl-source-package sbcl-split-sequence))
1485
1486 (define-public ecl-split-sequence
1487 (sbcl-package->ecl-package sbcl-split-sequence))
1488
1489 (define-public sbcl-html-encode
1490 (package
1491 (name "sbcl-html-encode")
1492 (version "1.2")
1493 (source
1494 (origin
1495 (method url-fetch)
1496 (uri (string-append
1497 "http://beta.quicklisp.org/archive/html-encode/2010-10-06/html-encode-"
1498 version ".tgz"))
1499 (sha256
1500 (base32
1501 "06mf8wn95yf5swhmzk4vp0xr4ylfl33dgfknkabbkd8n6jns8gcf"))
1502 (file-name (string-append "colorize" version "-checkout"))))
1503 (build-system asdf-build-system/sbcl)
1504 (synopsis "Common Lisp library for encoding text in various web-savvy encodings")
1505 (description
1506 "A library for encoding text in various web-savvy encodings.")
1507 (home-page "http://quickdocs.org/html-encode/")
1508 (license license:expat)))
1509
1510 (define-public cl-html-encode
1511 (sbcl-package->cl-source-package sbcl-html-encode))
1512
1513 (define-public ecl-html-encode
1514 (sbcl-package->ecl-package sbcl-html-encode))
1515
1516 (define-public sbcl-colorize
1517 (let ((commit "ea676b584e0899cec82f21a9e6871172fe3c0eb5"))
1518 (package
1519 (name "sbcl-colorize")
1520 (version (git-version "0.0.0" "1" commit))
1521 (source
1522 (origin
1523 (method git-fetch)
1524 (uri (git-reference
1525 (url "https://github.com/kingcons/colorize")
1526 (commit commit)))
1527 (sha256
1528 (base32
1529 "1pdg4kiaczmr3ivffhirp7m3lbr1q27rn7dhaay0vwghmi31zcw9"))
1530 (file-name (git-file-name "colorize" version))))
1531 (build-system asdf-build-system/sbcl)
1532 (inputs
1533 `(("alexandria" ,sbcl-alexandria)
1534 ("split-sequence" ,sbcl-split-sequence)
1535 ("html-encode" ,sbcl-html-encode)))
1536 (synopsis "Common Lisp for syntax highlighting")
1537 (description
1538 "@command{colorize} is a Lisp library for syntax highlighting
1539 supporting the following languages: Common Lisp, Emacs Lisp, Scheme, Clojure,
1540 C, C++, Java, Python, Erlang, Haskell, Objective-C, Diff, Webkit.")
1541 (home-page "https://github.com/kingcons/colorize")
1542 ;; TODO: Missing license?
1543 (license license:expat))))
1544
1545 (define-public cl-colorize
1546 (sbcl-package->cl-source-package sbcl-colorize))
1547
1548 (define-public ecl-colorize
1549 (sbcl-package->ecl-package sbcl-colorize))
1550
1551 (define-public sbcl-3bmd
1552 (let ((commit "192ea13435b605a96ef607df51317056914cabbd"))
1553 (package
1554 (name "sbcl-3bmd")
1555 (version (git-version "0.0.0" "1" commit))
1556 (source
1557 (origin
1558 (method git-fetch)
1559 (uri (git-reference
1560 (url "https://github.com/3b/3bmd")
1561 (commit commit)))
1562 (sha256
1563 (base32
1564 "1rgv3gi7wf963ikmmpk132wgn0icddf226gq3bmcnk1fr3v9gf2f"))
1565 (file-name (git-file-name "3bmd" version))))
1566 (build-system asdf-build-system/sbcl)
1567 (arguments
1568 ;; FIXME: We need to specify the name because the build-system thinks
1569 ;; "3" is a version marker.
1570 `(#:asd-system-name "3bmd"))
1571 (inputs
1572 `(("esrap" ,sbcl-esrap)
1573 ("split-sequence" ,sbcl-split-sequence)))
1574 (synopsis "Markdown processor in Command Lisp using esrap parser")
1575 (description
1576 "Common Lisp Markdown -> HTML converter, using @command{esrap} for
1577 parsing, and grammar based on @command{peg-markdown}.")
1578 (home-page "https://github.com/3b/3bmd")
1579 (license license:expat))))
1580
1581 (define-public cl-3bmd
1582 (sbcl-package->cl-source-package sbcl-3bmd))
1583
1584 (define-public ecl-3bmd
1585 (sbcl-package->ecl-package sbcl-3bmd))
1586
1587 (define-public sbcl-3bmd-ext-code-blocks
1588 (let ((commit "192ea13435b605a96ef607df51317056914cabbd"))
1589 (package
1590 (inherit sbcl-3bmd)
1591 (name "sbcl-3bmd-ext-code-blocks")
1592 (arguments
1593 `(#:asd-system-name "3bmd-ext-code-blocks"
1594 #:asd-file "3bmd-ext-code-blocks.asd"))
1595 (inputs
1596 `(("3bmd" ,sbcl-3bmd)
1597 ("colorize" ,sbcl-colorize)))
1598 (synopsis "3bmd extension which adds support for GitHub-style fenced
1599 code blocks")
1600 (description
1601 "3bmd extension which adds support for GitHub-style fenced code blocks,
1602 with @command{colorize} support."))))
1603
1604 (define-public cl-3bmd-ext-code-blocks
1605 (sbcl-package->cl-source-package sbcl-3bmd-ext-code-blocks))
1606
1607 (define-public ecl-3bmd-ext-code-blocks
1608 (sbcl-package->ecl-package sbcl-3bmd-ext-code-blocks))
1609
1610 (define-public sbcl-cl-fad
1611 (package
1612 (name "sbcl-cl-fad")
1613 (version "0.7.6")
1614 (source
1615 (origin
1616 (method git-fetch)
1617 (uri (git-reference
1618 (url "https://github.com/edicl/cl-fad/")
1619 (commit (string-append "v" version))))
1620 (sha256
1621 (base32
1622 "1gc8i82v6gks7g0lnm54r4prk2mklidv2flm5fvbr0a7rsys0vpa"))
1623 (file-name (string-append "cl-fad" version "-checkout"))))
1624 (build-system asdf-build-system/sbcl)
1625 (inputs
1626 `(("bordeaux-threads" ,sbcl-bordeaux-threads)))
1627 (synopsis "Portable pathname library for Common Lisp")
1628 (description
1629 "CL-FAD (for \"Files and Directories\") is a thin layer atop Common
1630 Lisp's standard pathname functions. It is intended to provide some
1631 unification between current CL implementations on Windows, OS X, Linux, and
1632 Unix. Most of the code was written by Peter Seibel for his book Practical
1633 Common Lisp.")
1634 (home-page "https://edicl.github.io/cl-fad/")
1635 (license license:bsd-2)))
1636
1637 (define-public cl-fad
1638 (sbcl-package->cl-source-package sbcl-cl-fad))
1639
1640 (define-public ecl-cl-fad
1641 (sbcl-package->ecl-package sbcl-cl-fad))
1642
1643 (define-public sbcl-rt
1644 (let ((commit "a6a7503a0b47953bc7579c90f02a6dba1f6e4c5a")
1645 (revision "1"))
1646 (package
1647 (name "sbcl-rt")
1648 (version (git-version "1990.12.19" revision commit))
1649 (source
1650 (origin
1651 (method git-fetch)
1652 (uri (git-reference
1653 (url "http://git.kpe.io/rt.git")
1654 (commit commit)))
1655 (file-name (git-file-name name version))
1656 (sha256
1657 (base32 "13si2rrxaagbr0bkvg6sqicxxpyshabx6ad6byc9n2ik5ysna69b"))))
1658 (build-system asdf-build-system/sbcl)
1659 (synopsis "MIT Regression Tester")
1660 (description
1661 "RT provides a framework for writing regression test suites.")
1662 (home-page "https://www.cliki.net/rt")
1663 (license license:expat))))
1664
1665 (define-public cl-rt
1666 (sbcl-package->cl-source-package sbcl-rt))
1667
1668 (define-public ecl-rt
1669 (sbcl-package->ecl-package sbcl-rt))
1670
1671 (define-public sbcl-nibbles
1672 (package
1673 (name "sbcl-nibbles")
1674 (version "0.14")
1675 (source
1676 (origin
1677 (method git-fetch)
1678 (uri (git-reference
1679 (url "https://github.com/sharplispers/nibbles/")
1680 (commit (string-append "v" version))))
1681 (sha256
1682 (base32
1683 "1v7qfgpvdr6nz7v63dj69d26dis0kff3rd8xamr1llfdvza2pm8f"))
1684 (file-name (git-file-name "nibbles" version))))
1685 (build-system asdf-build-system/sbcl)
1686 (native-inputs
1687 ;; Tests only.
1688 `(("rt" ,sbcl-rt)))
1689 (synopsis "Common Lisp library for accessing octet-addressed blocks of data")
1690 (description
1691 "When dealing with network protocols and file formats, it's common to
1692 have to read or write 16-, 32-, or 64-bit datatypes in signed or unsigned
1693 flavors. Common Lisp sort of supports this by specifying :element-type for
1694 streams, but that facility is underspecified and there's nothing similar for
1695 read/write from octet vectors. What most people wind up doing is rolling their
1696 own small facility for their particular needs and calling it a day.
1697
1698 This library attempts to be comprehensive and centralize such
1699 facilities. Functions to read 16-, 32-, and 64-bit quantities from octet
1700 vectors in signed or unsigned flavors are provided; these functions are also
1701 SETFable. Since it's sometimes desirable to read/write directly from streams,
1702 functions for doing so are also provided. On some implementations,
1703 reading/writing IEEE singles/doubles (i.e. single-float and double-float) will
1704 also be supported.")
1705 (home-page "https://github.com/sharplispers/nibbles")
1706 (license license:bsd-3)))
1707
1708 (define-public cl-nibbles
1709 (sbcl-package->cl-source-package sbcl-nibbles))
1710
1711 (define-public ecl-nibbles
1712 (sbcl-package->ecl-package sbcl-nibbles))
1713
1714 (define-public sbcl-ironclad
1715 (package
1716 (name "sbcl-ironclad")
1717 (version "0.49")
1718 (source
1719 (origin
1720 (method git-fetch)
1721 (uri (git-reference
1722 (url "https://github.com/sharplispers/ironclad/")
1723 (commit (string-append "v" version))))
1724 (sha256
1725 (base32 "0kbzqg2aasrhjwy3nrzy2ddy809n1j045w4qkyc3r2syqd203d4q"))
1726 (file-name (git-file-name name version))))
1727 (build-system asdf-build-system/sbcl)
1728 (native-inputs
1729 ;; Tests only.
1730 `(("rt" ,sbcl-rt)))
1731 (inputs
1732 `(("bordeaux-threads" ,sbcl-bordeaux-threads)
1733 ("flexi-streams" ,sbcl-flexi-streams)
1734 ("trivial-garbage" ,sbcl-trivial-garbage)))
1735 (synopsis "Cryptographic toolkit written in Common Lisp")
1736 (description
1737 "Ironclad is a cryptography library written entirely in Common Lisp.
1738 It includes support for several popular ciphers, digests, MACs and public key
1739 cryptography algorithms. For several implementations that support Gray
1740 streams, support is included for convenient stream wrappers.")
1741 (home-page "https://github.com/sharplispers/ironclad")
1742 (license license:bsd-3)))
1743
1744 (define-public cl-ironclad
1745 (sbcl-package->cl-source-package sbcl-ironclad))
1746
1747 (define-public ecl-ironclad
1748 (sbcl-package->ecl-package sbcl-ironclad))
1749
1750 (define-public sbcl-named-readtables
1751 (let ((commit "64bd53f37a1694cfde48fc38b8f03901f6f0c05b")
1752 (revision "2"))
1753 (package
1754 (name "sbcl-named-readtables")
1755 (version (git-version "0.9" revision commit))
1756 (source
1757 (origin
1758 (method git-fetch)
1759 (uri (git-reference
1760 (url "https://github.com/melisgl/named-readtables.git")
1761 (commit commit)))
1762 (sha256
1763 (base32 "01l4831m7k84qvhzyx0qgdl50isr4zmp40qf6dfq2iqcaj8y4h3n"))
1764 (file-name (git-file-name "named-readtables" version))))
1765 (build-system asdf-build-system/sbcl)
1766 (arguments
1767 ;; Tests seem to be broken.
1768 `(#:tests? #f))
1769 (home-page "https://github.com/melisgl/named-readtables/")
1770 (synopsis "Library that creates a namespace for named readtables")
1771 (description "Named readtables is a library that creates a namespace for
1772 named readtables, which is akin to package namespacing in Common Lisp.")
1773 (license license:bsd-3))))
1774
1775 (define-public cl-named-readtables
1776 (sbcl-package->cl-source-package sbcl-named-readtables))
1777
1778 (define-public ecl-named-readtables
1779 (sbcl-package->ecl-package sbcl-named-readtables))
1780
1781 (define-public sbcl-pythonic-string-reader
1782 (let ((commit "47a70ba1e32362e03dad6ef8e6f36180b560f86a"))
1783 (package
1784 (name "sbcl-pythonic-string-reader")
1785 (version (git-version "0.0.0" "1" commit))
1786 (source
1787 (origin
1788 (method git-fetch)
1789 (uri (git-reference
1790 (url "https://github.com/smithzvk/pythonic-string-reader/")
1791 (commit commit)))
1792 (sha256
1793 (base32 "1b5iryqw8xsh36swckmz8rrngmc39k92si33fgy5pml3n9l5rq3j"))
1794 (file-name (git-file-name "pythonic-string-reader" version))))
1795 (build-system asdf-build-system/sbcl)
1796 (inputs
1797 `(("named-readtables" ,sbcl-named-readtables)))
1798 (home-page "https://github.com/smithzvk/pythonic-string-reader")
1799 (synopsis "Read table modification inspired by Python's three quote strings")
1800 (description "This piece of code sets up some reader macros that make it
1801 simpler to input string literals which contain backslashes and double quotes
1802 This is very useful for writing complicated docstrings and, as it turns out,
1803 writing code that contains string literals that contain code themselves.")
1804 (license license:bsd-3))))
1805
1806 (define-public cl-pythonic-string-reader
1807 (sbcl-package->cl-source-package sbcl-pythonic-string-reader))
1808
1809 (define-public ecl-pythonic-string-reader
1810 (sbcl-package->ecl-package sbcl-pythonic-string-reader))
1811
1812 ;; SLIME does not have a ASDF system definition to build all of Swank. As a
1813 ;; result, the asdf-build-system/sbcl will produce an almost empty package.
1814 ;; Some work was done to fix this at
1815 ;; https://github.com/sionescu/slime/tree/swank-asdf but it was never merged
1816 ;; and is now lagging behind. Building SBCL fasls might not be worth the
1817 ;; hassle, so let's just ship the source then.
1818 (define-public cl-slime-swank
1819 (package
1820 (name "cl-slime-swank")
1821 (version "2.24")
1822 (source
1823 (origin
1824 (file-name (string-append name "-" version ".tar.gz"))
1825 (method git-fetch)
1826 (uri (git-reference
1827 (url "https://github.com/slime/slime/")
1828 (commit (string-append "v" version))))
1829 (sha256
1830 (base32
1831 "0js24x42m7b5iymb4rxz501dff19vav5pywnzv50b673rbkaaqvh"))))
1832 (build-system asdf-build-system/source)
1833 (home-page "https://github.com/slime/slime")
1834 (synopsis "Common Lisp Swank server")
1835 (description
1836 "This is only useful if you want to start a Swank server in a Lisp
1837 processes that doesn't run under Emacs. Lisp processes created by
1838 @command{M-x slime} automatically start the server.")
1839 (license (list license:gpl2+ license:public-domain))))
1840
1841 (define-public sbcl-slime-swank
1842 (deprecated-package "sbcl-slime-swank" cl-slime-swank))
1843
1844 (define-public sbcl-mgl-pax
1845 (let ((commit "818448418d6b9de74620f606f5b23033c6082769"))
1846 (package
1847 (name "sbcl-mgl-pax")
1848 (version (git-version "0.0.0" "1" commit))
1849 (source
1850 (origin
1851 (method git-fetch)
1852 (uri (git-reference
1853 (url "https://github.com/melisgl/mgl-pax")
1854 (commit commit)))
1855 (sha256
1856 (base32
1857 "1p97zfkh130bdxqqxwaw2j9psv58751wakx7czbfpq410lg7dd7i"))
1858 (file-name (git-file-name "mgl-pax" version))))
1859 (build-system asdf-build-system/sbcl)
1860 (inputs
1861 `(("3bmd" ,sbcl-3bmd)
1862 ("3bmd-ext-code-blocks" ,sbcl-3bmd-ext-code-blocks)
1863 ("babel" ,sbcl-babel)
1864 ("cl-fad" ,sbcl-cl-fad)
1865 ("ironclad" ,sbcl-ironclad)
1866 ("named-readtables" ,sbcl-named-readtables)
1867 ("pythonic-string-reader" ,sbcl-pythonic-string-reader)))
1868 (propagated-inputs
1869 ;; Packages having mgl-pax as input complain that it can't find
1870 ;; swank if we put it in inputs, so let's put it in propageted-inputs.
1871 `(("swank" ,cl-slime-swank)))
1872 (synopsis "Exploratory programming environment and documentation generator")
1873 (description
1874 "PAX provides an extremely poor man's Explorable Programming
1875 environment. Narrative primarily lives in so called sections that mix markdown
1876 docstrings with references to functions, variables, etc, all of which should
1877 probably have their own docstrings.
1878
1879 The primary focus is on making code easily explorable by using SLIME's
1880 @command{M-.} (@command{slime-edit-definition}). See how to enable some
1881 fanciness in Emacs Integration. Generating documentation from sections and all
1882 the referenced items in Markdown or HTML format is also implemented.
1883
1884 With the simplistic tools provided, one may accomplish similar effects as with
1885 Literate Programming, but documentation is generated from code, not vice versa
1886 and there is no support for chunking yet. Code is first, code must look
1887 pretty, documentation is code.")
1888 (home-page "http://quotenil.com/")
1889 (license license:expat))))
1890
1891 (define-public cl-mgl-pax
1892 (sbcl-package->cl-source-package sbcl-mgl-pax))
1893
1894 (define-public ecl-mgl-pax
1895 (sbcl-package->ecl-package sbcl-mgl-pax))
1896
1897 (define-public sbcl-lisp-unit
1898 (let ((commit "89653a232626b67400bf9a941f9b367da38d3815"))
1899 (package
1900 (name "sbcl-lisp-unit")
1901 (version (git-version "0.0.0" "1" commit))
1902 (source
1903 (origin
1904 (method git-fetch)
1905 (uri (git-reference
1906 (url "https://github.com/OdonataResearchLLC/lisp-unit")
1907 (commit commit)))
1908 (sha256
1909 (base32
1910 "0p6gdmgr7p383nvd66c9y9fp2bjk4jx1lpa5p09g43hr9y9pp9ry"))
1911 (file-name (git-file-name "lisp-unit" version))))
1912 (build-system asdf-build-system/sbcl)
1913 (synopsis "Common Lisp Test framework inspired by JUnit to be simple of use")
1914 (description
1915 "@command{lisp-unit} is a Common Lisp library that supports unit
1916 testing. It is an extension of the library written by Chris Riesbeck.")
1917 (home-page "https://github.com/OdonataResearchLLC/lisp-unit")
1918 (license license:expat))))
1919
1920 (define-public cl-lisp-unit
1921 (sbcl-package->cl-source-package sbcl-lisp-unit))
1922
1923 (define-public ecl-lisp-unit
1924 (sbcl-package->ecl-package sbcl-lisp-unit))
1925
1926 (define-public sbcl-anaphora
1927 (package
1928 (name "sbcl-anaphora")
1929 (version "0.9.6")
1930 (source
1931 (origin
1932 (method git-fetch)
1933 (uri (git-reference
1934 (url "https://github.com/tokenrove/anaphora")
1935 (commit version)))
1936 (sha256
1937 (base32
1938 "19wfrk3asimznkli0x2rfy637hwpdgqyvwj3vhq9x7vjvyf5vv6x"))
1939 (file-name (git-file-name "anaphora" version))))
1940 (build-system asdf-build-system/sbcl)
1941 (native-inputs
1942 `(("rt" ,sbcl-rt)))
1943 (synopsis "The anaphoric macro collection from Hell")
1944 (description
1945 "Anaphora is the anaphoric macro collection from Hell: it includes many
1946 new fiends in addition to old friends like @command{aif} and
1947 @command{awhen}.")
1948 (home-page "https://github.com/tokenrove/anaphora")
1949 (license license:public-domain)))
1950
1951 (define-public cl-anaphora
1952 (sbcl-package->cl-source-package sbcl-anaphora))
1953
1954 (define-public ecl-anaphora
1955 (sbcl-package->ecl-package sbcl-anaphora))
1956
1957 (define-public sbcl-lift
1958 (let ((commit "7d49a66c62759535624037826891152223d4206c"))
1959 (package
1960 (name "sbcl-lift")
1961 (version (git-version "1.7.1" "1" commit))
1962 (source
1963 (origin
1964 (method git-fetch)
1965 (uri (git-reference
1966 (url "https://github.com/gwkkwg/lift")
1967 (commit commit)))
1968 (sha256
1969 (base32
1970 "127v5avpz1i4m0lkaxqrq8hrl69rdazqaxf6s8awf0nd7wj2g4dp"))
1971 (file-name (git-file-name "lift" version))
1972 (modules '((guix build utils)))
1973 (snippet
1974 ;; Don't keep the bundled website
1975 `(begin
1976 (delete-file-recursively "website")
1977 #t))))
1978 (build-system asdf-build-system/sbcl)
1979 (arguments
1980 ;; The tests require a debugger, but we run with the debugger disabled.
1981 '(#:tests? #f))
1982 (synopsis "LIsp Framework for Testing")
1983 (description
1984 "The LIsp Framework for Testing (LIFT) is a unit and system test tool for LISP.
1985 Though inspired by SUnit and JUnit, it's built with Lisp in mind. In LIFT,
1986 testcases are organized into hierarchical testsuites each of which can have
1987 its own fixture. When run, a testcase can succeed, fail, or error. LIFT
1988 supports randomized testing, benchmarking, profiling, and reporting.")
1989 (home-page "https://github.com/gwkkwg/lift")
1990 (license license:expat))))
1991
1992 (define-public cl-lift
1993 (sbcl-package->cl-source-package sbcl-lift))
1994
1995 (define-public ecl-lift
1996 (sbcl-package->ecl-package sbcl-lift))
1997
1998 (define-public sbcl-let-plus
1999 (let ((commit "5f14af61d501ecead02ec6b5a5c810efc0c9fdbb"))
2000 (package
2001 (name "sbcl-let-plus")
2002 (version (git-version "0.0.0" "1" commit))
2003 (source
2004 (origin
2005 (method git-fetch)
2006 (uri (git-reference
2007 (url "https://github.com/sharplispers/let-plus")
2008 (commit commit)))
2009 (sha256
2010 (base32
2011 "0i050ca2iys9f5mb7dgqgqdxfnc3b0rnjdwv95sqd490vkiwrsaj"))
2012 (file-name (git-file-name "let-plus" version))))
2013 (build-system asdf-build-system/sbcl)
2014 (inputs
2015 `(("alexandria" ,sbcl-alexandria)
2016 ("anaphora" ,sbcl-anaphora)))
2017 (native-inputs
2018 `(("lift" ,sbcl-lift)))
2019 (synopsis "Destructuring extension of let*")
2020 (description
2021 "This library implements the let+ macro, which is a dectructuring
2022 extension of let*. It features:
2023
2024 @itemize
2025 @item Clean, consistent syntax and small implementation (less than 300 LOC,
2026 not counting tests)
2027 @item Placeholder macros allow editor hints and syntax highlighting
2028 @item @command{&ign} for ignored values (in forms where that makes sense)
2029 @item Very easy to extend
2030 @end itemize\n")
2031 (home-page "https://github.com/sharplispers/let-plus")
2032 (license license:boost1.0))))
2033
2034 (define-public cl-let-plus
2035 (sbcl-package->cl-source-package sbcl-let-plus))
2036
2037 (define-public ecl-let-plus
2038 (sbcl-package->ecl-package sbcl-let-plus))
2039
2040 (define-public sbcl-cl-colors
2041 (let ((commit "827410584553f5c717eec6182343b7605f707f75"))
2042 (package
2043 (name "sbcl-cl-colors")
2044 (version (git-version "0.0.0" "1" commit))
2045 (source
2046 (origin
2047 (method git-fetch)
2048 (uri (git-reference
2049 (url "https://github.com/tpapp/cl-colors")
2050 (commit commit)))
2051 (sha256
2052 (base32
2053 "0l446lday4hybsm9bq3jli97fvv8jb1d33abg79vbylpwjmf3y9a"))
2054 (file-name (git-file-name "cl-colors" version))))
2055 (build-system asdf-build-system/sbcl)
2056 (inputs
2057 `(("alexandria" ,sbcl-alexandria)
2058 ("let-plus" ,sbcl-let-plus)))
2059 (synopsis "Simple color library for Common Lisp")
2060 (description
2061 "This is a very simple color library for Common Lisp, providing
2062
2063 @itemize
2064 @item Types for representing colors in HSV and RGB spaces.
2065 @item Simple conversion functions between the above types (and also
2066 hexadecimal representation for RGB).
2067 @item Some predefined colors (currently X11 color names – of course the
2068 library does not depend on X11).Because color in your terminal is nice.
2069 @end itemize
2070
2071 This library is no longer supported by its author.")
2072 (home-page "https://github.com/tpapp/cl-colors")
2073 (license license:boost1.0))))
2074
2075 (define-public cl-colors
2076 (sbcl-package->cl-source-package sbcl-cl-colors))
2077
2078 (define-public ecl-cl-colors
2079 (sbcl-package->ecl-package sbcl-cl-colors))
2080
2081 (define-public sbcl-cl-ansi-text
2082 (let ((commit "53badf7878f27f22f2d4a2a43e6df458e43acbe9"))
2083 (package
2084 (name "sbcl-cl-ansi-text")
2085 (version (git-version "1.0.0" "1" commit))
2086 (source
2087 (origin
2088 (method git-fetch)
2089 (uri (git-reference
2090 (url "https://github.com/pnathan/cl-ansi-text")
2091 (commit commit)))
2092 (sha256
2093 (base32
2094 "11i27n0dbz5lmygiw65zzr8lx0rac6b6yysqranphn31wls6ja3v"))
2095 (file-name (git-file-name "cl-ansi-text" version))))
2096 (build-system asdf-build-system/sbcl)
2097 (inputs
2098 `(("alexandria" ,sbcl-alexandria)
2099 ("cl-colors" ,sbcl-cl-colors)))
2100 (native-inputs
2101 `(("fiveam" ,sbcl-fiveam)))
2102 (synopsis "ANSI terminal color implementation for Common Lisp")
2103 (description
2104 "@command{cl-ansi-text} provides utilities which enable printing to an
2105 ANSI terminal with colored text. It provides the macro @command{with-color}
2106 which causes everything printed in the body to be displayed with the provided
2107 color. It further provides functions which will print the argument with the
2108 named color.")
2109 (home-page "https://github.com/pnathan/cl-ansi-text")
2110 (license license:llgpl))))
2111
2112 (define-public cl-ansi-text
2113 (sbcl-package->cl-source-package sbcl-cl-ansi-text))
2114
2115 (define-public ecl-cl-ansi-text
2116 (sbcl-package->ecl-package sbcl-cl-ansi-text))
2117
2118 (define-public sbcl-prove-asdf
2119 (let ((commit "4f9122bd393e63c5c70c1fba23070622317cfaa0"))
2120 (package
2121 (name "sbcl-prove-asdf")
2122 (version (git-version "1.0.0" "1" commit))
2123 (source
2124 (origin
2125 (method git-fetch)
2126 (uri (git-reference
2127 (url "https://github.com/fukamachi/prove")
2128 (commit commit)))
2129 (sha256
2130 (base32
2131 "07sbfw459z8bbjvx1qlmfa8qk2mvbjnnzi2mi0x72blaj8bkl4vc"))
2132 (file-name (git-file-name "prove" version))))
2133 (build-system asdf-build-system/sbcl)
2134 (arguments
2135 `(#:asd-file "prove-asdf.asd"))
2136 (synopsis "Test requirement for the Common Lisp 'prove' library")
2137 (description
2138 "Test requirement for the Common Lisp @command{prove} library.")
2139 (home-page "https://github.com/fukamachi/prove")
2140 (license license:expat))))
2141
2142 (define-public cl-prove-asdf
2143 (sbcl-package->cl-source-package sbcl-prove-asdf))
2144
2145 (define-public ecl-prove-asdf
2146 (sbcl-package->ecl-package sbcl-prove-asdf))
2147
2148 (define-public sbcl-prove
2149 (package
2150 (inherit sbcl-prove-asdf)
2151 (name "sbcl-prove")
2152 (inputs
2153 `(("alexandria" ,sbcl-alexandria)
2154 ("cl-ppcre" ,sbcl-cl-ppcre)
2155 ("cl-ansi-text" ,sbcl-cl-ansi-text)))
2156 (native-inputs
2157 `(("prove-asdf" ,sbcl-prove-asdf)))
2158 (arguments
2159 `(#:asd-file "prove.asd"))
2160 (synopsis "Yet another unit testing framework for Common Lisp")
2161 (description
2162 "This project was originally called @command{cl-test-more}.
2163 @command{prove} is yet another unit testing framework for Common Lisp. The
2164 advantages of @command{prove} are:
2165
2166 @itemize
2167 @item Various simple functions for testing and informative error messages
2168 @item ASDF integration
2169 @item Extensible test reporters
2170 @item Colorizes the report if it's available (note for SLIME)
2171 @item Reports test durations
2172 @end itemize\n")))
2173
2174 (define-public cl-prove
2175 (sbcl-package->cl-source-package sbcl-prove))
2176
2177 (define-public ecl-prove
2178 (sbcl-package->ecl-package sbcl-prove))
2179
2180 (define-public sbcl-proc-parse
2181 (let ((commit "ac3636834d561bdc2686c956dbd82494537285fd"))
2182 (package
2183 (name "sbcl-proc-parse")
2184 (version (git-version "0.0.0" "1" commit))
2185 (source
2186 (origin
2187 (method git-fetch)
2188 (uri (git-reference
2189 (url "https://github.com/fukamachi/proc-parse")
2190 (commit commit)))
2191 (sha256
2192 (base32
2193 "06rnl0h4cx6xv2wj3jczmmcxqn2703inmmvg1s4npbghmijsybfh"))
2194 (file-name (git-file-name "proc-parse" version))))
2195 (build-system asdf-build-system/sbcl)
2196 (inputs
2197 `(("alexandria" ,sbcl-alexandria)
2198 ("babel" ,sbcl-babel)))
2199 (native-inputs
2200 `(("prove" ,sbcl-prove)
2201 ("prove-asdf" ,sbcl-prove-asdf)))
2202 (arguments
2203 ;; TODO: Tests don't find "proc-parse-test", why?
2204 `(#:tests? #f))
2205 (synopsis "Procedural vector parser")
2206 (description
2207 "This is a string/octets parser library for Common Lisp with speed and
2208 readability in mind. Unlike other libraries, the code is not a
2209 pattern-matching-like, but a char-by-char procedural parser.")
2210 (home-page "https://github.com/fukamachi/proc-parse")
2211 (license license:bsd-2))))
2212
2213 (define-public cl-proc-parse
2214 (sbcl-package->cl-source-package sbcl-proc-parse))
2215
2216 (define-public ecl-proc-parse
2217 (sbcl-package->ecl-package sbcl-proc-parse))
2218
2219 (define-public sbcl-parse-float
2220 (let ((commit "2aae569f2a4b2eb3bfb5401a959425dcf151b09c"))
2221 (package
2222 (name "sbcl-parse-float")
2223 (version (git-version "0.0.0" "1" commit))
2224 (source
2225 (origin
2226 (method git-fetch)
2227 (uri (git-reference
2228 (url "https://github.com/soemraws/parse-float")
2229 (commit commit)))
2230 (sha256
2231 (base32
2232 "08xw8cchhmqcc0byng69m3f5a2izc9y2290jzz2k0qrbibp1fdk7"))
2233 (file-name (git-file-name "proc-parse" version))))
2234 (build-system asdf-build-system/sbcl)
2235 (inputs
2236 `(("alexandria" ,sbcl-alexandria)
2237 ("babel" ,sbcl-babel)))
2238 (native-inputs
2239 `(("prove" ,sbcl-prove)
2240 ("prove-asdf" ,sbcl-prove-asdf)))
2241 (arguments
2242 ;; TODO: Tests don't find "proc-parse-test", why?
2243 `(#:tests? #f))
2244 (synopsis "Parse a floating point value from a string in Common Lisp")
2245 (description
2246 "This package exports the following function to parse floating-point
2247 values from a string in Common Lisp.")
2248 (home-page "https://github.com/soemraws/parse-float")
2249 (license license:public-domain))))
2250
2251 (define-public cl-parse-float
2252 (sbcl-package->cl-source-package sbcl-parse-float))
2253
2254 (define-public ecl-parse-float
2255 (sbcl-package->ecl-package sbcl-parse-float))
2256
2257 (define-public sbcl-ascii-strings
2258 (let ((revision "1")
2259 (changeset "5048480a61243e6f1b02884012c8f25cdbee6d97"))
2260 (package
2261 (name "sbcl-ascii-strings")
2262 (version (string-append "0-" revision "." (string-take changeset 7)))
2263 (source
2264 (origin
2265 (method hg-fetch)
2266 (uri (hg-reference
2267 (url "https://bitbucket.org/vityok/cl-string-match/")
2268 (changeset changeset)))
2269 (sha256
2270 (base32
2271 "01wn5qx562w43ssy92xlfgv79w7p0nv0wbl76mpmba131n9ziq2y"))
2272 (file-name (git-file-name "cl-string-match" version))))
2273 (build-system asdf-build-system/sbcl)
2274 (inputs
2275 `(("alexandria" ,sbcl-alexandria)
2276 ("babel" ,sbcl-babel)))
2277 (arguments
2278 `(#:asd-file "ascii-strings.asd"))
2279 (synopsis "Operations on ASCII strings")
2280 (description
2281 "Operations on ASCII strings. Essentially this can be any kind of
2282 single-byte encoded strings.")
2283 (home-page "https://bitbucket.org/vityok/cl-string-match/")
2284 (license license:bsd-3))))
2285
2286 (define-public cl-ascii-strings
2287 (sbcl-package->cl-source-package sbcl-ascii-strings))
2288
2289 (define-public ecl-ascii-strings
2290 (sbcl-package->ecl-package sbcl-ascii-strings))
2291
2292 (define-public sbcl-simple-scanf
2293 (package
2294 (inherit sbcl-ascii-strings)
2295 (name "sbcl-simple-scanf")
2296 (inputs
2297 `(("alexandria" ,sbcl-alexandria)
2298 ("iterate" ,sbcl-iterate)
2299 ("proc-parse" ,sbcl-proc-parse)
2300 ("parse-float" ,sbcl-parse-float)))
2301 (arguments
2302 `(#:asd-file "simple-scanf.asd"))
2303 (synopsis "Simple scanf-like functionality implementation")
2304 (description
2305 "A simple scanf-like functionality implementation.")))
2306
2307 (define-public cl-simple-scanf
2308 (sbcl-package->cl-source-package sbcl-simple-scanf))
2309
2310 (define-public ecl-simple-scanf
2311 (sbcl-package->ecl-package sbcl-simple-scanf))
2312
2313 (define-public sbcl-cl-string-match
2314 (package
2315 (inherit sbcl-ascii-strings)
2316 (name "sbcl-cl-string-match")
2317 (inputs
2318 `(("alexandria" ,sbcl-alexandria)
2319 ("ascii-strings" ,sbcl-ascii-strings)
2320 ("yacc" ,sbcl-cl-yacc)
2321 ("jpl-util" ,sbcl-jpl-util)
2322 ("jpl-queues" ,sbcl-jpl-queues)
2323 ("mgl-pax" ,sbcl-mgl-pax)
2324 ("iterate" ,sbcl-iterate)))
2325 ;; TODO: Tests are not evaluated properly.
2326 (native-inputs
2327 ;; For testing:
2328 `(("lisp-unit" ,sbcl-lisp-unit)
2329 ("simple-scanf" ,sbcl-simple-scanf)))
2330 (arguments
2331 `(#:tests? #f
2332 #:asd-file "cl-string-match.asd"))
2333 (synopsis "Portable, dependency-free set of utilities to manipulate strings in Common Lisp")
2334 (description
2335 "@command{cl-strings} is a small, portable, dependency-free set of
2336 utilities that make it even easier to manipulate text in Common Lisp. It has
2337 100% test coverage and works at least on sbcl, ecl, ccl, abcl and clisp.")))
2338
2339 (define-public cl-string-match
2340 (sbcl-package->cl-source-package sbcl-cl-string-match))
2341
2342 (define-public ecl-cl-string-match
2343 (sbcl-package->ecl-package sbcl-cl-string-match))
2344
2345 (define-public sbcl-ptester
2346 (let ((commit "fe69fde54f4bce00ce577feb918796c293fc7253")
2347 (revision "1"))
2348 (package
2349 (name "sbcl-ptester")
2350 (version (git-version "2.1.3" revision commit))
2351 (source
2352 (origin
2353 (method git-fetch)
2354 (uri (git-reference
2355 (url "http://git.kpe.io/ptester.git")
2356 (commit commit)))
2357 (file-name (git-file-name name version))
2358 (sha256
2359 (base32 "1l0lfl7cdnr2qf4zh38hi4llxg22c49zkm639bdkmvlkzwj3ndwf"))))
2360 (build-system asdf-build-system/sbcl)
2361 (home-page "http://quickdocs.org/ptester/")
2362 (synopsis "Portable test harness package")
2363 (description
2364 "@command{ptester} is a portable testing framework based on Franz's
2365 tester module.")
2366 (license license:llgpl))))
2367
2368 (define-public cl-ptester
2369 (sbcl-package->cl-source-package sbcl-ptester))
2370
2371 (define-public ecl-ptester
2372 (sbcl-package->ecl-package sbcl-ptester))
2373
2374 (define-public sbcl-puri
2375 (let ((commit "ef5afb9e5286c8e952d4344f019c1a636a717b97")
2376 (revision "1"))
2377 (package
2378 (name "sbcl-puri")
2379 (version (git-version "1.5.7" revision commit))
2380 (source
2381 (origin
2382 (method git-fetch)
2383 (uri (git-reference
2384 (url "http://git.kpe.io/puri.git")
2385 (commit commit)))
2386 (file-name (git-file-name name version))
2387 (sha256
2388 (base32 "1vm25pdl92laj72p5vyd538kf3cjy2655z6bdc99h20ana2p231s"))))
2389 (build-system asdf-build-system/sbcl)
2390 (native-inputs
2391 `(("ptester" ,sbcl-ptester)))
2392 (home-page "http://quickdocs.org/puri/")
2393 (synopsis "Portable URI Library")
2394 (description
2395 "This is a portable Universal Resource Identifier library for Common
2396 Lisp programs. It parses URI according to the RFC 2396 specification.")
2397 (license license:llgpl))))
2398
2399 (define-public cl-puri
2400 (sbcl-package->cl-source-package sbcl-puri))
2401
2402 (define-public ecl-puri
2403 (sbcl-package->ecl-package sbcl-puri))
2404
2405 (define-public sbcl-queues
2406 (let ((commit "47d4da65e9ea20953b74aeeab7e89a831b66bc94"))
2407 (package
2408 (name "sbcl-queues")
2409 (version (git-version "0.0.0" "1" commit))
2410 (source
2411 (origin
2412 (method git-fetch)
2413 (uri (git-reference
2414 (url "https://github.com/oconnore/queues")
2415 (commit commit)))
2416 (file-name (git-file-name "queues" version))
2417 (sha256
2418 (base32
2419 "0wdhfnzi4v6d97pggzj2aw55si94w4327br94jrmyvwf351wqjvv"))))
2420 (build-system asdf-build-system/sbcl)
2421 (home-page "https://github.com/oconnore/queues")
2422 (synopsis "Common Lisp queue library")
2423 (description
2424 "This is a simple queue library for Common Lisp with features such as
2425 non-consing thread safe queues and fibonacci priority queues.")
2426 (license license:expat))))
2427
2428 (define-public cl-queues
2429 (sbcl-package->cl-source-package sbcl-queues))
2430
2431 (define-public ecl-queues
2432 (sbcl-package->ecl-package sbcl-queues))
2433
2434 (define-public sbcl-queues.simple-queue
2435 (package
2436 (inherit sbcl-queues)
2437 (name "sbcl-queues.simple-queue")
2438 (inputs
2439 `(("sbcl-queues" ,sbcl-queues)))
2440 (arguments
2441 `(#:asd-file "queues.simple-queue.asd"))
2442 (synopsis "Simple queue implementation")
2443 (description
2444 "This is a simple queue library for Common Lisp with features such as
2445 non-consing thread safe queues and fibonacci priority queues.")
2446 (license license:expat)))
2447
2448 (define-public cl-queues.simple-queue
2449 (sbcl-package->cl-source-package sbcl-queues.simple-queue))
2450
2451 (define-public ecl-queues.simple-queue
2452 (sbcl-package->ecl-package sbcl-queues.simple-queue))
2453
2454 (define-public sbcl-queues.simple-cqueue
2455 (package
2456 (inherit sbcl-queues)
2457 (name "sbcl-queues.simple-cqueue")
2458 (inputs
2459 `(("sbcl-queues" ,sbcl-queues)
2460 ("sbcl-queues.simple-queue" ,sbcl-queues.simple-queue)
2461 ("bordeaux-threads" ,sbcl-bordeaux-threads)))
2462 (arguments
2463 `(#:asd-file "queues.simple-cqueue.asd"))
2464 (synopsis "Thread safe queue implementation")
2465 (description
2466 "This is a simple queue library for Common Lisp with features such as
2467 non-consing thread safe queues and fibonacci priority queues.")
2468 (license license:expat)))
2469
2470 (define-public cl-queues.simple-cqueue
2471 (sbcl-package->cl-source-package sbcl-queues.simple-cqueue))
2472
2473 (define-public ecl-queues.simple-cqueue
2474 (sbcl-package->ecl-package sbcl-queues.simple-cqueue))
2475
2476 (define-public sbcl-queues.priority-queue
2477 (package
2478 (inherit sbcl-queues)
2479 (name "sbcl-queues.priority-queue")
2480 (inputs
2481 `(("sbcl-queues" ,sbcl-queues)))
2482 (arguments
2483 `(#:asd-file "queues.priority-queue.asd"))
2484 (synopsis "Priority queue (Fibonacci) implementation")
2485 (description
2486 "This is a simple queue library for Common Lisp with features such as
2487 non-consing thread safe queues and fibonacci priority queues.")
2488 (license license:expat)))
2489
2490 (define-public cl-queues.priority-queue
2491 (sbcl-package->cl-source-package sbcl-queues.priority-queue))
2492
2493 (define-public ecl-queues.priority-queue
2494 (sbcl-package->ecl-package sbcl-queues.priority-queue))
2495
2496 (define-public sbcl-queues.priority-cqueue
2497 (package
2498 (inherit sbcl-queues)
2499 (name "sbcl-queues.priority-cqueue")
2500 (inputs
2501 `(("sbcl-queues" ,sbcl-queues)
2502 ("sbcl-queues.priority-queue" ,sbcl-queues.priority-queue)
2503 ("bordeaux-threads" ,sbcl-bordeaux-threads)))
2504 (arguments
2505 `(#:asd-file "queues.priority-cqueue.asd"))
2506 (synopsis "Thread safe fibonacci priority queue implementation")
2507 (description
2508 "This is a simple queue library for Common Lisp with features such as
2509 non-consing thread safe queues and fibonacci priority queues.")
2510 (license license:expat)))
2511
2512 (define-public cl-queues.priority-cqueue
2513 (sbcl-package->cl-source-package sbcl-queues.priority-cqueue))
2514
2515 (define-public ecl-queues.priority-cqueue
2516 (sbcl-package->ecl-package sbcl-queues.priority-cqueue))
2517
2518 (define sbcl-cffi-bootstrap
2519 (package
2520 (name "sbcl-cffi-bootstrap")
2521 (version "0.21.0")
2522 (source
2523 (origin
2524 (method git-fetch)
2525 (uri (git-reference
2526 (url "https://github.com/cffi/cffi.git")
2527 (commit (string-append "v" version))))
2528 (file-name (git-file-name "cffi-bootstrap" version))
2529 (sha256
2530 (base32 "1qalargz9bhp850qv60ffwpdqi4xirzar4l3g6qcg8yc6xqf2cjk"))))
2531 (build-system asdf-build-system/sbcl)
2532 (inputs
2533 `(("libffi" ,libffi)
2534 ("alexandria" ,sbcl-alexandria)
2535 ("babel" ,sbcl-babel)
2536 ("trivial-features" ,sbcl-trivial-features)))
2537 (native-inputs
2538 `(("pkg-config" ,pkg-config)))
2539 (arguments
2540 '(#:phases
2541 (modify-phases %standard-phases
2542 (add-after 'unpack 'fix-paths
2543 (lambda* (#:key inputs #:allow-other-keys)
2544 (substitute* "libffi/libffi.lisp"
2545 (("libffi.so.7" all) (string-append
2546 (assoc-ref inputs "libffi")
2547 "/lib/" all)))
2548 (substitute* "toolchain/c-toolchain.lisp"
2549 (("\"cc\"") (format #f "~S" (which "gcc")))))))
2550 #:asd-system-name "cffi"
2551 #:tests? #f))
2552 (home-page "https://common-lisp.net/project/cffi/")
2553 (synopsis "Common Foreign Function Interface for Common Lisp")
2554 (description "The Common Foreign Function Interface (CFFI)
2555 purports to be a portable foreign function interface for Common Lisp.
2556 The CFFI library is composed of a Lisp-implementation-specific backend
2557 in the CFFI-SYS package, and a portable frontend in the CFFI
2558 package.")
2559 (license license:expat)))
2560
2561 (define-public sbcl-cffi-toolchain
2562 (package
2563 (inherit sbcl-cffi-bootstrap)
2564 (name "sbcl-cffi-toolchain")
2565 (inputs
2566 `(("libffi" ,libffi)
2567 ("sbcl-cffi" ,sbcl-cffi-bootstrap)))
2568 (arguments
2569 (substitute-keyword-arguments (package-arguments sbcl-cffi-bootstrap)
2570 ((#:asd-system-name _) #f)
2571 ((#:tests? _) #t)))))
2572
2573 (define-public sbcl-cffi-libffi
2574 (package
2575 (inherit sbcl-cffi-toolchain)
2576 (name "sbcl-cffi-libffi")
2577 (inputs
2578 `(("cffi" ,sbcl-cffi-bootstrap)
2579 ("cffi-grovel" ,sbcl-cffi-grovel)
2580 ("trivial-features" ,sbcl-trivial-features)
2581 ("libffi" ,libffi)))))
2582
2583 (define-public sbcl-cffi-grovel
2584 (package
2585 (inherit sbcl-cffi-toolchain)
2586 (name "sbcl-cffi-grovel")
2587 (inputs
2588 `(("libffi" ,libffi)
2589 ("cffi" ,sbcl-cffi-bootstrap)
2590 ("cffi-toolchain" ,sbcl-cffi-toolchain)
2591 ("alexandria" ,sbcl-alexandria)))
2592 (arguments
2593 (substitute-keyword-arguments (package-arguments sbcl-cffi-toolchain)
2594 ((#:phases phases)
2595 `(modify-phases ,phases
2596 (add-after 'build 'install-headers
2597 (lambda* (#:key outputs #:allow-other-keys)
2598 (install-file "grovel/common.h"
2599 (string-append
2600 (assoc-ref outputs "out")
2601 "/include/grovel"))))))))))
2602
2603 (define-public sbcl-cffi
2604 (package
2605 (inherit sbcl-cffi-toolchain)
2606 (name "sbcl-cffi")
2607 (inputs (package-inputs sbcl-cffi-bootstrap))
2608 (native-inputs
2609 `(("cffi-grovel" ,sbcl-cffi-grovel)
2610 ("cffi-libffi" ,sbcl-cffi-libffi)
2611 ("rt" ,sbcl-rt)
2612 ("bordeaux-threads" ,sbcl-bordeaux-threads)
2613 ,@(package-native-inputs sbcl-cffi-bootstrap)))))
2614
2615 (define-public cl-cffi
2616 (sbcl-package->cl-source-package sbcl-cffi))
2617
2618 (define-public sbcl-cffi-uffi-compat
2619 (package
2620 (inherit sbcl-cffi-toolchain)
2621 (name "sbcl-cffi-uffi-compat")
2622 (native-inputs
2623 `(,@(package-inputs sbcl-cffi-bootstrap))) ; For fix-paths phase
2624 (inputs
2625 `(("cffi" ,sbcl-cffi)))
2626 (synopsis "UFFI Compatibility Layer for CFFI")))
2627
2628 (define-public cl-cffi-uffi-compat
2629 (sbcl-package->cl-source-package sbcl-cffi-uffi-compat))
2630
2631 (define-public sbcl-cl-sqlite
2632 (let ((commit "c738e66d4266ef63a1debc4ef4a1b871a068c112"))
2633 (package
2634 (name "sbcl-cl-sqlite")
2635 (version (git-version "0.2" "1" commit))
2636 (source
2637 (origin
2638 (method git-fetch)
2639 (uri (git-reference
2640 (url "https://github.com/dmitryvk/cl-sqlite")
2641 (commit commit)))
2642 (file-name (git-file-name "cl-sqlite" version))
2643 (sha256
2644 (base32
2645 "1ng45k1hdb84sqjryrfx93g66bsbybmpy301wd0fdybnc5jzr36q"))))
2646 (build-system asdf-build-system/sbcl)
2647 (inputs
2648 `(("iterate" ,sbcl-iterate)
2649 ("cffi" ,sbcl-cffi)
2650 ("sqlite" ,sqlite)))
2651 (native-inputs
2652 `(("fiveam" ,sbcl-fiveam)
2653 ("bordeaux-threads" ,sbcl-bordeaux-threads)))
2654 (arguments
2655 `(#:tests? #f ; Upstream seems to have issues with tests: https://github.com/dmitryvk/cl-sqlite/issues/7
2656 #:asd-file "sqlite.asd"
2657 #:asd-system-name "sqlite"
2658 #:phases
2659 (modify-phases %standard-phases
2660 (add-after 'unpack 'fix-paths
2661 (lambda* (#:key inputs #:allow-other-keys)
2662 (substitute* "sqlite-ffi.lisp"
2663 (("libsqlite3" all) (string-append
2664 (assoc-ref inputs "sqlite")"/lib/" all))))))))
2665 (home-page "https://common-lisp.net/project/cl-sqlite/")
2666 (synopsis "Common Lisp binding for SQLite")
2667 (description
2668 "The @command{cl-sqlite} package is an interface to the SQLite embedded
2669 relational database engine.")
2670 (license license:public-domain))))
2671
2672 (define-public cl-sqlite
2673 (sbcl-package->cl-source-package sbcl-cl-sqlite))
2674
2675 (define-public sbcl-parenscript
2676 ;; Source archives are overwritten on every release, we use the Git repo instead.
2677 (let ((commit "7a1ac46353cecd144fc91915ba9f122aafcf4766"))
2678 (package
2679 (name "sbcl-parenscript")
2680 (version (git-version "2.7.1" "1" commit))
2681 (source
2682 (origin
2683 (method git-fetch)
2684 (uri (git-reference
2685 (url "https://gitlab.common-lisp.net/parenscript/parenscript")
2686 (commit commit)))
2687 (file-name (git-file-name "parenscript" version))
2688 (sha256
2689 (base32
2690 "0c22lqarrpbq82dg1sb3y6mp6w2faczp34ymzhnmff88yfq1xzsf"))))
2691 (build-system asdf-build-system/sbcl)
2692 (inputs
2693 `(("cl-ppcre" ,sbcl-cl-ppcre)
2694 ("anaphora" ,sbcl-anaphora)
2695 ("named-readtables" ,sbcl-named-readtables)))
2696 (home-page "https://common-lisp.net/project/parenscript/")
2697 (synopsis "Translator from a subset of Common Lisp to JavaScript")
2698 (description
2699 "Parenscript is a translator from an extended subset of Common Lisp to
2700 JavaScript. Parenscript code can run almost identically on both the
2701 browser (as JavaScript) and server (as Common Lisp).
2702
2703 Parenscript code is treated the same way as Common Lisp code, making the full
2704 power of Lisp macros available for JavaScript. This provides a web
2705 development environment that is unmatched in its ability to reduce code
2706 duplication and provide advanced meta-programming facilities to web
2707 developers.
2708
2709 At the same time, Parenscript is different from almost all other \"language
2710 X\" to JavaScript translators in that it imposes almost no overhead:
2711
2712 @itemize
2713 @item No run-time dependencies: Any piece of Parenscript code is runnable
2714 as-is. There are no JavaScript files to include.
2715 @item Native types: Parenscript works entirely with native JavaScript data
2716 types. There are no new types introduced, and object prototypes are not
2717 touched.
2718 @item Native calling convention: Any JavaScript code can be called without the
2719 need for bindings. Likewise, Parenscript can be used to make efficient,
2720 self-contained JavaScript libraries.
2721 @item Readable code: Parenscript generates concise, formatted, idiomatic
2722 JavaScript code. Identifier names are preserved. This enables seamless
2723 debugging in tools like Firebug.
2724 @item Efficiency: Parenscript introduces minimal overhead for advanced Common
2725 Lisp features. The generated code is almost as fast as hand-written
2726 JavaScript.
2727 @end itemize\n")
2728 (license license:bsd-3))))
2729
2730 (define-public cl-parenscript
2731 (sbcl-package->cl-source-package sbcl-parenscript))
2732
2733 (define-public ecl-parenscript
2734 (sbcl-package->ecl-package sbcl-parenscript))
2735
2736 (define-public sbcl-cl-json
2737 (let ((commit "6dfebb9540bfc3cc33582d0c03c9ec27cb913e79"))
2738 (package
2739 (name "sbcl-cl-json")
2740 (version (git-version "0.5" "1" commit))
2741 (source
2742 (origin
2743 (method git-fetch)
2744 (uri (git-reference
2745 (url "https://github.com/hankhero/cl-json")
2746 (commit commit)))
2747 (file-name (git-file-name "cl-json" version))
2748 (sha256
2749 (base32
2750 "0fx3m3x3s5ji950yzpazz4s0img3l6b3d6l3jrfjv0lr702496lh"))))
2751 (build-system asdf-build-system/sbcl)
2752 (native-inputs
2753 `(("fiveam" ,sbcl-fiveam)))
2754 (home-page "https://github.com/hankhero/cl-json")
2755 (synopsis "JSON encoder and decoder for Common-Lisp")
2756 (description
2757 "@command{cl-json} provides an encoder of Lisp objects to JSON format
2758 and a corresponding decoder of JSON data to Lisp objects. Both the encoder
2759 and the decoder are highly customizable; at the same time, the default
2760 settings ensure a very simple mode of operation, similar to that provided by
2761 @command{yason} or @command{st-json}.")
2762 (license license:expat))))
2763
2764 (define-public cl-json
2765 (sbcl-package->cl-source-package sbcl-cl-json))
2766
2767 (define-public ecl-cl-json
2768 (sbcl-package->ecl-package sbcl-cl-json))
2769
2770 (define-public sbcl-unix-opts
2771 (package
2772 (name "sbcl-unix-opts")
2773 (version "0.1.7")
2774 (source
2775 (origin
2776 (method git-fetch)
2777 (uri (git-reference
2778 (url "https://github.com/libre-man/unix-opts")
2779 (commit version)))
2780 (file-name (git-file-name "unix-opts" version))
2781 (sha256
2782 (base32
2783 "08djdi1ard09fijb7w9bdmhmwd98b1hzmcnjw9fqjiqa0g3b44rr"))))
2784 (build-system asdf-build-system/sbcl)
2785 (home-page "https://github.com/hankhero/cl-json")
2786 (synopsis "Unix-style command line options parser")
2787 (description
2788 "This is a minimalistic parser of command line options. The main
2789 advantage of the library is the ability to concisely define command line
2790 options once and then use this definition for parsing and extraction of
2791 command line arguments, as well as printing description of command line
2792 options (you get --help for free). This way you don't need to repeat
2793 yourself. Also, @command{unix-opts} doesn't depend on anything and
2794 precisely controls the behavior of the parser via Common Lisp restarts.")
2795 (license license:expat)))
2796
2797 (define-public cl-unix-opts
2798 (sbcl-package->cl-source-package sbcl-unix-opts))
2799
2800 (define-public ecl-unix-opts
2801 (sbcl-package->ecl-package sbcl-unix-opts))
2802
2803 (define-public sbcl-trivial-garbage
2804 (package
2805 (name "sbcl-trivial-garbage")
2806 (version "0.21")
2807 (source
2808 (origin
2809 (method git-fetch)
2810 (uri (git-reference
2811 (url "https://github.com/trivial-garbage/trivial-garbage.git")
2812 (commit (string-append "v" version))))
2813 (file-name (git-file-name "trivial-garbage" version))
2814 (sha256
2815 (base32 "0122jicfg7pca1wxw8zak1n92h5friqy60988ns0ysksj3fphw9n"))))
2816 (build-system asdf-build-system/sbcl)
2817 (native-inputs
2818 `(("rt" ,sbcl-rt)))
2819 (home-page "https://common-lisp.net/project/trivial-garbage/")
2820 (synopsis "Portable GC-related APIs for Common Lisp")
2821 (description "@command{trivial-garbage} provides a portable API to
2822 finalizers, weak hash-tables and weak pointers on all major implementations of
2823 the Common Lisp programming language.")
2824 (license license:public-domain)))
2825
2826 (define-public cl-trivial-garbage
2827 (sbcl-package->cl-source-package sbcl-trivial-garbage))
2828
2829 (define-public ecl-trivial-garbage
2830 (sbcl-package->ecl-package sbcl-trivial-garbage))
2831
2832 (define-public sbcl-closer-mop
2833 (let ((commit "19c9d33f576e10715fd79cc1d4f688dab0f241d6"))
2834 (package
2835 (name "sbcl-closer-mop")
2836 (version (git-version "1.0.0" "2" commit))
2837 (source
2838 (origin
2839 (method git-fetch)
2840 (uri (git-reference
2841 (url "https://github.com/pcostanza/closer-mop")
2842 (commit commit)))
2843 (sha256
2844 (base32 "1w3x087wvlwkd6swfdgbvjfs6kazf0la8ax4pjfzikwjch4snn2c"))
2845 (file-name (git-file-name "closer-mop" version ))))
2846 (build-system asdf-build-system/sbcl)
2847 (home-page "https://github.com/pcostanza/closer-mop")
2848 (synopsis "Rectifies absent or incorrect CLOS MOP features")
2849 (description "Closer to MOP is a compatibility layer that rectifies many
2850 of the absent or incorrect CLOS MOP features across a broad range of Common
2851 Lisp implementations.")
2852 (license license:expat))))
2853
2854 (define-public cl-closer-mop
2855 (sbcl-package->cl-source-package sbcl-closer-mop))
2856
2857 (define-public ecl-closer-mop
2858 (sbcl-package->ecl-package sbcl-closer-mop))
2859
2860 (define sbcl-cl-cffi-gtk-boot0
2861 (let ((commit "412d17214e092220c65a5660f5cbbd9cb69b8fe4"))
2862 (package
2863 (name "sbcl-cl-cffi-gtk-boot0")
2864 (version (git-version "0.11.2" "1" commit))
2865 (source
2866 (origin
2867 (method git-fetch)
2868 (uri (git-reference
2869 (url "https://github.com/Ferada/cl-cffi-gtk/")
2870 (commit commit)))
2871 (file-name (git-file-name "cl-cffi-gtk" version))
2872 (sha256
2873 (base32
2874 "0n997yhcnzk048nalx8ys62ja2ac8iv4mbn3mb55iapl0321hghn"))))
2875 (build-system asdf-build-system/sbcl)
2876 (inputs
2877 `(("iterate" ,sbcl-iterate)
2878 ("cffi" ,sbcl-cffi)
2879 ("trivial-features" ,sbcl-trivial-features)
2880 ("glib" ,glib)
2881 ("cairo" ,cairo)
2882 ("pango" ,pango)
2883 ("gdk-pixbuf" ,gdk-pixbuf)
2884 ("gtk" ,gtk+)))
2885 (arguments
2886 `(#:phases
2887 (modify-phases %standard-phases
2888 (add-after 'unpack 'fix-paths
2889 (lambda* (#:key inputs #:allow-other-keys)
2890 (substitute* "glib/glib.init.lisp"
2891 (("libglib|libgthread" all)
2892 (string-append (assoc-ref inputs "glib") "/lib/" all)))
2893 (substitute* "gobject/gobject.init.lisp"
2894 (("libgobject" all)
2895 (string-append (assoc-ref inputs "glib") "/lib/" all)))
2896 (substitute* "gio/gio.init.lisp"
2897 (("libgio" all)
2898 (string-append (assoc-ref inputs "glib") "/lib/" all)))
2899 (substitute* "cairo/cairo.init.lisp"
2900 (("libcairo" all)
2901 (string-append (assoc-ref inputs "cairo") "/lib/" all)))
2902 (substitute* "pango/pango.init.lisp"
2903 (("libpango" all)
2904 (string-append (assoc-ref inputs "pango") "/lib/" all)))
2905 (substitute* "gdk-pixbuf/gdk-pixbuf.init.lisp"
2906 (("libgdk_pixbuf" all)
2907 (string-append (assoc-ref inputs "gdk-pixbuf") "/lib/" all)))
2908 (substitute* "gdk/gdk.init.lisp"
2909 (("libgdk" all)
2910 (string-append (assoc-ref inputs "gtk") "/lib/" all)))
2911 (substitute* "gdk/gdk.package.lisp"
2912 (("libgtk" all)
2913 (string-append (assoc-ref inputs "gtk") "/lib/" all))))))))
2914 (home-page "https://github.com/Ferada/cl-cffi-gtk/")
2915 (synopsis "Common Lisp binding for GTK+3")
2916 (description
2917 "@command{cl-cffi-gtk} is a Lisp binding to GTK+ 3 (GIMP Toolkit) which
2918 is a library for creating graphical user interfaces.")
2919 (license license:lgpl3))))
2920
2921 (define-public sbcl-cl-cffi-gtk-glib
2922 (package
2923 (inherit sbcl-cl-cffi-gtk-boot0)
2924 (name "sbcl-cl-cffi-gtk-glib")
2925 (inputs
2926 `(("bordeaux-threads" ,sbcl-bordeaux-threads)
2927 ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
2928 (arguments
2929 (substitute-keyword-arguments (package-arguments sbcl-cl-cffi-gtk-boot0)
2930 ((#:asd-file _ "") "glib/cl-cffi-gtk-glib.asd")))))
2931
2932 (define-public sbcl-cl-cffi-gtk-gobject
2933 (package
2934 (inherit sbcl-cl-cffi-gtk-boot0)
2935 (name "sbcl-cl-cffi-gtk-gobject")
2936 (inputs
2937 `(("cl-cffi-gtk-glib" ,sbcl-cl-cffi-gtk-glib)
2938 ("trivial-garbage" ,sbcl-trivial-garbage)
2939 ("bordeaux-threads" ,sbcl-bordeaux-threads)
2940 ("closer-mop" ,sbcl-closer-mop)
2941 ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
2942 (arguments
2943 (substitute-keyword-arguments (package-arguments sbcl-cl-cffi-gtk-boot0)
2944 ((#:asd-file _ "") "gobject/cl-cffi-gtk-gobject.asd")
2945 ((#:phases phases)
2946 `(modify-phases ,phases
2947 (add-after 'install 'link-source
2948 ;; Since source is particularly heavy (16MiB+), let's reuse it
2949 ;; across the different components of cl-ffi-gtk.
2950 (lambda* (#:key inputs outputs #:allow-other-keys)
2951 (let ((glib-source (string-append (assoc-ref inputs "cl-cffi-gtk-glib")
2952 "/share/common-lisp/sbcl-source/"
2953 "cl-cffi-gtk-glib"))
2954 (out-source (string-append (assoc-ref outputs "out")
2955 "/share/common-lisp/sbcl-source/"
2956 "cl-cffi-gtk-gobject")))
2957 (delete-file-recursively out-source)
2958 (symlink glib-source out-source)
2959 #t)))))))))
2960
2961 (define-public sbcl-cl-cffi-gtk-gio
2962 (package
2963 (inherit sbcl-cl-cffi-gtk-boot0)
2964 (name "sbcl-cl-cffi-gtk-gio")
2965 (inputs
2966 `(("cl-cffi-gtk-glib" ,sbcl-cl-cffi-gtk-glib)
2967 ("cl-cffi-gtk-gobject" ,sbcl-cl-cffi-gtk-gobject)
2968 ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
2969 (arguments
2970 (substitute-keyword-arguments (package-arguments sbcl-cl-cffi-gtk-boot0)
2971 ((#:asd-file _ "") "gio/cl-cffi-gtk-gio.asd")
2972 ((#:phases phases)
2973 `(modify-phases ,phases
2974 (add-after 'install 'link-source
2975 ;; Since source is particularly heavy (16MiB+), let's reuse it
2976 ;; across the different components of cl-ffi-gtk.
2977 (lambda* (#:key inputs outputs #:allow-other-keys)
2978 (let ((glib-source (string-append (assoc-ref inputs "cl-cffi-gtk-glib")
2979 "/share/common-lisp/sbcl-source/"
2980 "cl-cffi-gtk-glib"))
2981 (out-source (string-append (assoc-ref outputs "out")
2982 "/share/common-lisp/sbcl-source/"
2983 "cl-cffi-gtk-gio")))
2984 (delete-file-recursively out-source)
2985 (symlink glib-source out-source)
2986 #t)))))))))
2987
2988 (define-public sbcl-cl-cffi-gtk-cairo
2989 (package
2990 (inherit sbcl-cl-cffi-gtk-boot0)
2991 (name "sbcl-cl-cffi-gtk-cairo")
2992 (inputs
2993 `(("cl-cffi-gtk-glib" ,sbcl-cl-cffi-gtk-glib)
2994 ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
2995 (arguments
2996 (substitute-keyword-arguments (package-arguments sbcl-cl-cffi-gtk-boot0)
2997 ((#:asd-file _ "") "cairo/cl-cffi-gtk-cairo.asd")
2998 ((#:phases phases)
2999 `(modify-phases ,phases
3000 (add-after 'install 'link-source
3001 ;; Since source is particularly heavy (16MiB+), let's reuse it
3002 ;; across the different components of cl-ffi-gtk.
3003 (lambda* (#:key inputs outputs #:allow-other-keys)
3004 (let ((glib-source (string-append (assoc-ref inputs "cl-cffi-gtk-glib")
3005 "/share/common-lisp/sbcl-source/"
3006 "cl-cffi-gtk-glib"))
3007 (out-source (string-append (assoc-ref outputs "out")
3008 "/share/common-lisp/sbcl-source/"
3009 "cl-cffi-gtk-cairo")))
3010 (delete-file-recursively out-source)
3011 (symlink glib-source out-source)
3012 #t)))))))))
3013
3014 (define-public sbcl-cl-cffi-gtk-pango
3015 (package
3016 (inherit sbcl-cl-cffi-gtk-boot0)
3017 (name "sbcl-cl-cffi-gtk-pango")
3018 (inputs
3019 `(("cl-cffi-gtk-glib" ,sbcl-cl-cffi-gtk-glib)
3020 ("cl-cffi-gtk-gobject" ,sbcl-cl-cffi-gtk-gobject)
3021 ("cl-cffi-gtk-cairo" ,sbcl-cl-cffi-gtk-cairo)
3022 ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
3023 (arguments
3024 (substitute-keyword-arguments (package-arguments sbcl-cl-cffi-gtk-boot0)
3025 ((#:asd-file _ "") "pango/cl-cffi-gtk-pango.asd")
3026 ((#:phases phases)
3027 `(modify-phases ,phases
3028 (add-after 'install 'link-source
3029 ;; Since source is particularly heavy (16MiB+), let's reuse it
3030 ;; across the different components of cl-ffi-gtk.
3031 (lambda* (#:key inputs outputs #:allow-other-keys)
3032 (let ((glib-source (string-append (assoc-ref inputs "cl-cffi-gtk-glib")
3033 "/share/common-lisp/sbcl-source/"
3034 "cl-cffi-gtk-glib"))
3035 (out-source (string-append (assoc-ref outputs "out")
3036 "/share/common-lisp/sbcl-source/"
3037 "cl-cffi-gtk-pango")))
3038 (delete-file-recursively out-source)
3039 (symlink glib-source out-source)
3040 #t)))))))))
3041
3042 (define-public sbcl-cl-cffi-gtk-gdk-pixbuf
3043 (package
3044 (inherit sbcl-cl-cffi-gtk-boot0)
3045 (name "sbcl-cl-cffi-gtk-gdk-pixbuf")
3046 (inputs
3047 `(("cl-cffi-gtk-gobject" ,sbcl-cl-cffi-gtk-gobject)
3048 ("cl-cffi-gtk-glib" ,sbcl-cl-cffi-gtk-glib)
3049 ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
3050 (arguments
3051 (substitute-keyword-arguments (package-arguments sbcl-cl-cffi-gtk-boot0)
3052 ((#:asd-file _ "") "gdk-pixbuf/cl-cffi-gtk-gdk-pixbuf.asd")
3053 ((#:phases phases)
3054 `(modify-phases ,phases
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 `(("cl-cffi-gtk-glib" ,sbcl-cl-cffi-gtk-glib)
3075 ("cl-cffi-gtk-gobject" ,sbcl-cl-cffi-gtk-gobject)
3076 ("cl-cffi-gtk-gio" ,sbcl-cl-cffi-gtk-gio)
3077 ("cl-cffi-gtk-gdk-pixbuf" ,sbcl-cl-cffi-gtk-gdk-pixbuf)
3078 ("cl-cffi-gtk-cairo" ,sbcl-cl-cffi-gtk-cairo)
3079 ("cl-cffi-gtk-pango" ,sbcl-cl-cffi-gtk-pango)
3080 ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
3081 (arguments
3082 (substitute-keyword-arguments (package-arguments sbcl-cl-cffi-gtk-boot0)
3083 ((#:asd-file _ "") "gdk/cl-cffi-gtk-gdk.asd")
3084 ((#:phases phases)
3085 `(modify-phases ,phases
3086 (add-after 'install 'link-source
3087 ;; Since source is particularly heavy (16MiB+), let's reuse it
3088 ;; across the different components of cl-ffi-gtk.
3089 (lambda* (#:key inputs outputs #:allow-other-keys)
3090 (let ((glib-source (string-append (assoc-ref inputs "cl-cffi-gtk-glib")
3091 "/share/common-lisp/sbcl-source/"
3092 "cl-cffi-gtk-glib"))
3093 (out-source (string-append (assoc-ref outputs "out")
3094 "/share/common-lisp/sbcl-source/"
3095 "cl-cffi-gtk-gdk")))
3096 (delete-file-recursively out-source)
3097 (symlink glib-source out-source)
3098 #t)))))))))
3099
3100 (define-public sbcl-cl-cffi-gtk
3101 (package
3102 (inherit sbcl-cl-cffi-gtk-boot0)
3103 (name "sbcl-cl-cffi-gtk")
3104 (inputs
3105 `(("cl-cffi-gtk-glib" ,sbcl-cl-cffi-gtk-glib)
3106 ("cl-cffi-gtk-gobject" ,sbcl-cl-cffi-gtk-gobject)
3107 ("cl-cffi-gtk-gio" ,sbcl-cl-cffi-gtk-gio)
3108 ("cl-cffi-gtk-gdk" ,sbcl-cl-cffi-gtk-gdk)
3109 ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
3110 (native-inputs
3111 `(("fiveam" ,sbcl-fiveam)))
3112 (arguments
3113 (substitute-keyword-arguments (package-arguments sbcl-cl-cffi-gtk-boot0)
3114 ((#:asd-file _ "") "gtk/cl-cffi-gtk.asd")
3115 ((#:test-asd-file _ "") "test/cl-cffi-gtk-test.asd")
3116 ;; TODO: Tests fail with memory fault.
3117 ;; See https://github.com/Ferada/cl-cffi-gtk/issues/24.
3118 ((#:tests? _ #f) #f)
3119 ((#:phases phases)
3120 `(modify-phases ,phases
3121 (add-after 'install 'link-source
3122 ;; Since source is particularly heavy (16MiB+), let's reuse it
3123 ;; across the different components of cl-ffi-gtk.
3124 (lambda* (#:key inputs outputs #:allow-other-keys)
3125 (let ((glib-source (string-append (assoc-ref inputs "cl-cffi-gtk-glib")
3126 "/share/common-lisp/sbcl-source/"
3127 "cl-cffi-gtk-glib"))
3128 (out-source (string-append (assoc-ref outputs "out")
3129 "/share/common-lisp/sbcl-source/"
3130 "cl-cffi-gtk")))
3131 (delete-file-recursively out-source)
3132 (symlink glib-source out-source)
3133 #t)))))))))
3134
3135 (define-public cl-cffi-gtk
3136 (sbcl-package->cl-source-package sbcl-cl-cffi-gtk))
3137
3138 (define-public sbcl-cl-webkit
3139 (let ((commit "f93cb9697e8813068795fe4dc39ac950d814102d"))
3140 (package
3141 (name "sbcl-cl-webkit")
3142 (version (git-version "2.4" "3" commit))
3143 (source
3144 (origin
3145 (method git-fetch)
3146 (uri (git-reference
3147 (url "https://github.com/joachifm/cl-webkit")
3148 (commit commit)))
3149 (file-name (git-file-name "cl-webkit" version))
3150 (sha256
3151 (base32
3152 "1sjcw08kjpd5h83sms7zcq2nymddjygk9hm2rpgzrl524an9ziwc"))))
3153 (build-system asdf-build-system/sbcl)
3154 (inputs
3155 `(("cffi" ,sbcl-cffi)
3156 ("cl-cffi-gtk" ,sbcl-cl-cffi-gtk)
3157 ("webkitgtk" ,webkitgtk)))
3158 (arguments
3159 `(#:asd-file "webkit2/cl-webkit2.asd"
3160 #:asd-system-name "cl-webkit2"
3161 #:phases
3162 (modify-phases %standard-phases
3163 (add-after 'unpack 'fix-paths
3164 (lambda* (#:key inputs #:allow-other-keys)
3165 (substitute* "webkit2/webkit2.init.lisp"
3166 (("libwebkit2gtk" all)
3167 (string-append
3168 (assoc-ref inputs "webkitgtk") "/lib/" all))))))))
3169 (home-page "https://github.com/joachifm/cl-webkit")
3170 (synopsis "Binding to WebKitGTK+ for Common Lisp")
3171 (description
3172 "@command{cl-webkit} is a binding to WebKitGTK+ for Common Lisp,
3173 currently targeting WebKit version 2. The WebKitGTK+ library adds web
3174 browsing capabilities to an application, leveraging the full power of the
3175 WebKit browsing engine.")
3176 (license license:expat))))
3177
3178 (define-public cl-webkit
3179 (sbcl-package->cl-source-package sbcl-cl-webkit))
3180
3181 (define-public sbcl-lparallel
3182 (package
3183 (name "sbcl-lparallel")
3184 (version "2.8.4")
3185 (source
3186 (origin
3187 (method git-fetch)
3188 (uri (git-reference
3189 (url "https://github.com/lmj/lparallel/")
3190 (commit (string-append "lparallel-" version))))
3191 (file-name (git-file-name "lparallel" version))
3192 (sha256
3193 (base32
3194 "0g0aylrbbrqsz0ahmwhvnk4cmc2931fllbpcfgzsprwnqqd7vwq9"))))
3195 (build-system asdf-build-system/sbcl)
3196 (inputs
3197 `(("alexandria" ,sbcl-alexandria)
3198 ("bordeaux-threads" ,sbcl-bordeaux-threads)
3199 ("trivial-garbage" ,sbcl-trivial-garbage)))
3200 (arguments
3201 `(#:phases
3202 (modify-phases %standard-phases
3203 (add-after 'unpack 'fix-dependency
3204 ;; lparallel loads a SBCL specific system in its asd file. This is
3205 ;; not carried over into the fasl which is generated. In order for
3206 ;; it to be carried over, it needs to be listed as a dependency.
3207 (lambda _
3208 (substitute* "lparallel.asd"
3209 ((":depends-on \\(:alexandria" all)
3210 (string-append all " #+sbcl :sb-cltl2"))))))))
3211 (home-page "https://lparallel.org/")
3212 (synopsis "Parallelism for Common Lisp")
3213 (description
3214 "@command{lparallel} is a library for parallel programming in Common
3215 Lisp, featuring:
3216
3217 @itemize
3218 @item a simple model of task submission with receiving queue,
3219 @item constructs for expressing fine-grained parallelism,
3220 @item asynchronous condition handling across thread boundaries,
3221 @item parallel versions of map, reduce, sort, remove, and many others,
3222 @item promises, futures, and delayed evaluation constructs,
3223 @item computation trees for parallelizing interconnected tasks,
3224 @item bounded and unbounded FIFO queues,
3225 @item high and low priority tasks,
3226 @item task killing by category,
3227 @item integrated timeouts.
3228 @end itemize\n")
3229 (license license:expat)))
3230
3231 (define-public cl-lparallel
3232 (sbcl-package->cl-source-package sbcl-lparallel))
3233
3234 (define-public ecl-lparallel
3235 (sbcl-package->ecl-package sbcl-lparallel))
3236
3237 (define-public sbcl-cl-markup
3238 (let ((commit "e0eb7debf4bdff98d1f49d0f811321a6a637b390"))
3239 (package
3240 (name "sbcl-cl-markup")
3241 (version (git-version "0.1" "1" commit))
3242 (source
3243 (origin
3244 (method git-fetch)
3245 (uri (git-reference
3246 (url "https://github.com/arielnetworks/cl-markup/")
3247 (commit commit)))
3248 (file-name (git-file-name "cl-markup" version))
3249 (sha256
3250 (base32
3251 "10l6k45971dl13fkdmva7zc6i453lmq9j4xax2ci6pjzlc6xjhp7"))))
3252 (build-system asdf-build-system/sbcl)
3253 (home-page "https://github.com/arielnetworks/cl-markup/")
3254 (synopsis "Markup generation library for Common Lisp")
3255 (description
3256 "A modern markup generation library for Common Lisp that features:
3257
3258 @itemize
3259 @item Fast (even faster through compiling the code)
3260 @item Safety
3261 @item Support for multiple document types (markup, xml, html, html5, xhtml)
3262 @item Output with doctype
3263 @item Direct output to stream
3264 @end itemize\n")
3265 (license license:lgpl3+))))
3266
3267 (define-public cl-markup
3268 (sbcl-package->cl-source-package sbcl-cl-markup))
3269
3270 (define-public ecl-cl-markup
3271 (sbcl-package->ecl-package sbcl-cl-markup))
3272
3273 (define-public sbcl-cl-css
3274 (let ((commit "8fe654c8f0cf95b300718101cce4feb517f78e2f"))
3275 (package
3276 (name "sbcl-cl-css")
3277 (version (git-version "0.1" "1" commit))
3278 (source
3279 (origin
3280 (method git-fetch)
3281 (uri (git-reference
3282 (url "https://github.com/inaimathi/cl-css/")
3283 (commit commit)))
3284 (file-name (git-file-name "cl-css" version))
3285 (sha256
3286 (base32
3287 "1lc42zi2sw11fl2589sc19nr5sd2p0wy7wgvgwaggxa5f3ajhsmd"))))
3288 (build-system asdf-build-system/sbcl)
3289 (home-page "https://github.com/inaimathi/cl-css/")
3290 (synopsis "Non-validating, inline CSS generator for Common Lisp")
3291 (description
3292 "This is a dead-simple, non validating, inline CSS generator for Common
3293 Lisp. Its goals are axiomatic syntax, simple implementation to support
3294 portability, and boilerplate reduction in CSS.")
3295 (license license:expat))))
3296
3297 (define-public cl-css
3298 (sbcl-package->cl-source-package sbcl-cl-css))
3299
3300 (define-public ecl-cl-css
3301 (sbcl-package->ecl-package sbcl-cl-css))
3302
3303 (define-public sbcl-portable-threads
3304 (let ((commit "c0e61a1faeb0583c80fd3f20b16cc4c555226920"))
3305 (package
3306 (name "sbcl-portable-threads")
3307 (version (git-version "2.3" "1" commit))
3308 (source
3309 (origin
3310 (method git-fetch)
3311 (uri (git-reference
3312 (url "https://github.com/binghe/portable-threads/")
3313 (commit commit)))
3314 (file-name (git-file-name "portable-threads" version))
3315 (sha256
3316 (base32
3317 "03fmxyarc0xf4kavwkfa0a2spkyfrz6hbgbi9y4q7ny5aykdyfaq"))))
3318 (build-system asdf-build-system/sbcl)
3319 (arguments
3320 `(;; Tests seem broken.
3321 #:tests? #f))
3322 (home-page "https://github.com/binghe/portable-threads")
3323 (synopsis "Portable threads (and scheduled and periodic functions) API for Common Lisp")
3324 (description
3325 "Portable Threads (and Scheduled and Periodic Functions) API for Common
3326 Lisp (from GBBopen project).")
3327 (license license:asl2.0))))
3328
3329 (define-public cl-portable-threads
3330 (sbcl-package->cl-source-package sbcl-portable-threads))
3331
3332 (define-public ecl-portable-threada
3333 (sbcl-package->ecl-package sbcl-portable-threads))
3334
3335 (define sbcl-usocket-boot0
3336 ;; usocket's test rely on usocket-server which depends on usocket itself.
3337 ;; We break this cyclic dependency with -boot0 that packages usocket.
3338 (package
3339 (name "sbcl-usocket-boot0")
3340 (version "0.8.3")
3341 (source
3342 (origin
3343 (method git-fetch)
3344 (uri (git-reference
3345 (url "https://github.com/usocket/usocket/")
3346 (commit (string-append "v" version))))
3347 (file-name (git-file-name "usocket" version))
3348 (sha256
3349 (base32
3350 "0x746wr2324l6bn7skqzgkzcbj5kd0zp2ck0c8rldrw0rzabg826"))))
3351 (build-system asdf-build-system/sbcl)
3352 (inputs
3353 `(("split-sequence" ,sbcl-split-sequence)))
3354 (arguments
3355 `(#:tests? #f
3356 #:asd-system-name "usocket"))
3357 (home-page "https://common-lisp.net/project/usocket/")
3358 (synopsis "Universal socket library for Common Lisp (server side)")
3359 (description
3360 "This library strives to provide a portable TCP/IP and UDP/IP socket
3361 interface for as many Common Lisp implementations as possible, while keeping
3362 the abstraction and portability layer as thin as possible.")
3363 (license license:expat)))
3364
3365 (define-public sbcl-usocket-server
3366 (package
3367 (inherit sbcl-usocket-boot0)
3368 (name "sbcl-usocket-server")
3369 (inputs
3370 `(("bordeaux-threads" ,sbcl-bordeaux-threads)
3371 ("usocket" ,sbcl-usocket-boot0)))
3372 (arguments
3373 '(#:asd-system-name "usocket-server"))
3374 (synopsis "Universal socket library for Common Lisp (server side)")))
3375
3376 (define-public cl-usocket-server
3377 (sbcl-package->cl-source-package sbcl-usocket-server))
3378
3379 (define-public ecl-socket-server
3380 (sbcl-package->ecl-package sbcl-usocket-server))
3381
3382 (define-public sbcl-usocket
3383 (package
3384 (inherit sbcl-usocket-boot0)
3385 (name "sbcl-usocket")
3386 (arguments
3387 ;; FIXME: Tests need network access?
3388 `(#:tests? #f))
3389 (native-inputs
3390 ;; Testing only.
3391 `(("usocket-server" ,sbcl-usocket-server)
3392 ("rt" ,sbcl-rt)))))
3393
3394 (define-public cl-usocket
3395 (sbcl-package->cl-source-package sbcl-usocket))
3396
3397 (define-public ecl-usocket
3398 (sbcl-package->ecl-package sbcl-usocket))
3399
3400 (define-public sbcl-s-xml
3401 (package
3402 (name "sbcl-s-xml")
3403 (version "3")
3404 (source
3405 (origin
3406 (method url-fetch)
3407 (uri "https://common-lisp.net/project/s-xml/s-xml.tgz")
3408 (sha256
3409 (base32
3410 "061qcr0dzshsa38s5ma4ay924cwak2nq9gy59dw6v9p0qb58nzjf"))))
3411 (build-system asdf-build-system/sbcl)
3412 (home-page "https://common-lisp.net/project/s-xml/")
3413 (synopsis "Simple XML parser implemented in Common Lisp")
3414 (description
3415 "S-XML is a simple XML parser implemented in Common Lisp. This XML
3416 parser implementation has the following features:
3417
3418 @itemize
3419 @item It works (handling many common XML usages).
3420 @item It is very small (the core is about 700 lines of code, including
3421 comments and whitespace).
3422 @item It has a core API that is simple, efficient and pure functional, much
3423 like that from SSAX (see also http://ssax.sourceforge.net).
3424 @item It supports different DOM models: an XSML-based one, an LXML-based one
3425 and a classic xml-element struct based one.
3426 @item It is reasonably time and space efficient (internally avoiding garbage
3427 generatation as much as possible).
3428 @item It does support CDATA.
3429 @item It should support the same character sets as your Common Lisp
3430 implementation.
3431 @item It does support XML name spaces.
3432 @end itemize
3433
3434 This XML parser implementation has the following limitations:
3435
3436 @itemize
3437 @item It does not support any special tags (like processing instructions).
3438 @item It is not validating, even skips DTD's all together.
3439 @end itemize\n")
3440 (license license:lgpl3+)))
3441
3442 (define-public cl-s-xml
3443 (sbcl-package->cl-source-package sbcl-s-xml))
3444
3445 (define-public ecl-s-xml
3446 (sbcl-package->ecl-package sbcl-s-xml))
3447
3448 (define-public sbcl-s-xml-rpc
3449 (package
3450 (name "sbcl-s-xml-rpc")
3451 (version "7")
3452 (source
3453 (origin
3454 (method url-fetch)
3455 (uri "https://common-lisp.net/project/s-xml-rpc/s-xml-rpc.tgz")
3456 (sha256
3457 (base32
3458 "02z7k163d51v0pzk8mn1xb6h5s6x64gjqkslhwm3a5x26k2gfs11"))))
3459 (build-system asdf-build-system/sbcl)
3460 (inputs
3461 `(("s-xml" ,sbcl-s-xml)))
3462 (home-page "https://common-lisp.net/project/s-xml-rpc/")
3463 (synopsis "Implementation of XML-RPC in Common Lisp for both client and server")
3464 (description
3465 "S-XML-RPC is an implementation of XML-RPC in Common Lisp for both
3466 client and server.")
3467 (license license:lgpl3+)))
3468
3469 (define-public cl-s-xml-rpc
3470 (sbcl-package->cl-source-package sbcl-s-xml-rpc))
3471
3472 (define-public ecl-s-xml-rpc
3473 (sbcl-package->ecl-package sbcl-s-xml-rpc))
3474
3475 (define-public sbcl-trivial-clipboard
3476 (let ((commit "5af3415d1484e6d69a1b5c178f24680d9fd01796"))
3477 (package
3478 (name "sbcl-trivial-clipboard")
3479 (version (git-version "0.0.0.0" "2" commit))
3480 (source
3481 (origin
3482 (method git-fetch)
3483 (uri (git-reference
3484 (url "https://github.com/snmsts/trivial-clipboard")
3485 (commit commit)))
3486 (file-name (git-file-name "trivial-clipboard" version))
3487 (sha256
3488 (base32
3489 "1gb515z5yq6h5548pb1fwhmb0hhq1ssyb78pvxh4alq799xipxs9"))))
3490 (build-system asdf-build-system/sbcl)
3491 (inputs
3492 `(("xclip" ,xclip)))
3493 (native-inputs
3494 `(("fiveam" ,sbcl-fiveam)))
3495 (arguments
3496 `(#:phases
3497 (modify-phases %standard-phases
3498 (add-after 'unpack 'fix-paths
3499 (lambda* (#:key inputs #:allow-other-keys)
3500 (substitute* "src/text.lisp"
3501 (("\\(executable-find \"xclip\"\\)")
3502 (string-append "(executable-find \""
3503 (assoc-ref inputs "xclip")
3504 "/bin/xclip\")"))))))))
3505 (home-page "https://github.com/snmsts/trivial-clipboard")
3506 (synopsis "Access system clipboard in Common Lisp")
3507 (description
3508 "@command{trivial-clipboard} gives access to the system clipboard.")
3509 (license license:expat))))
3510
3511 (define-public cl-trivial-clipboard
3512 (sbcl-package->cl-source-package sbcl-trivial-clipboard))
3513
3514 (define-public ecl-trivial-clipboard
3515 (sbcl-package->ecl-package sbcl-trivial-clipboard))
3516
3517 (define-public sbcl-trivial-backtrace
3518 (let ((commit "ca81c011b86424a381a7563cea3b924f24e6fbeb")
3519 (revision "1"))
3520 (package
3521 (name "sbcl-trivial-backtrace")
3522 (version (git-version "0.0.0" revision commit))
3523 (source
3524 (origin
3525 (method git-fetch)
3526 (uri (git-reference
3527 (url "https://github.com/gwkkwg/trivial-backtrace.git")
3528 (commit commit)))
3529 (file-name (git-file-name "trivial-backtrace" version))
3530 (sha256
3531 (base32 "10p41p43skj6cimdg8skjy7372s8v2xpkg8djjy0l8rm45i654k1"))))
3532 (build-system asdf-build-system/sbcl)
3533 (inputs
3534 `(("sbcl-lift" ,sbcl-lift)))
3535 (arguments
3536 `(#:phases
3537 (modify-phases %standard-phases
3538 (add-after 'check 'delete-test-results
3539 (lambda* (#:key outputs #:allow-other-keys)
3540 (let ((test-results (string-append (assoc-ref outputs "out")
3541 "/share/common-lisp/"
3542 (%lisp-type) "-source"
3543 "/trivial-backtrace"
3544 "/test-results")))
3545 (when (file-exists? test-results)
3546 (delete-file-recursively test-results)))
3547 #t)))))
3548 (home-page "https://common-lisp.net/project/trivial-backtrace/")
3549 (synopsis "Portable simple API to work with backtraces in Common Lisp")
3550 (description
3551 "One of the many things that didn't quite get into the Common Lisp
3552 standard was how to get a Lisp to output its call stack when something has
3553 gone wrong. As such, each Lisp has developed its own notion of what to
3554 display, how to display it, and what sort of arguments can be used to
3555 customize it. @code{trivial-backtrace} is a simple solution to generating a
3556 backtrace portably.")
3557 (license license:expat))))
3558
3559 (define-public cl-trivial-backtrace
3560 (sbcl-package->cl-source-package sbcl-trivial-backtrace))
3561
3562 (define-public sbcl-rfc2388
3563 (let ((commit "591bcf7e77f2c222c43953a80f8c297751dc0c4e")
3564 (revision "1"))
3565 (package
3566 (name "sbcl-rfc2388")
3567 (version (git-version "0.0.0" revision commit))
3568 (source
3569 (origin
3570 (method git-fetch)
3571 (uri (git-reference
3572 (url "https://github.com/jdz/rfc2388.git")
3573 (commit commit)))
3574 (file-name (git-file-name "rfc2388" version))
3575 (sha256
3576 (base32 "0phh5n3clhl9ji8jaxrajidn22d3f0aq87mlbfkkxlnx2pnw694k"))))
3577 (build-system asdf-build-system/sbcl)
3578 (home-page "https://github.com/jdz/rfc2388/")
3579 (synopsis "An implementation of RFC 2388 in Common Lisp")
3580 (description
3581 "This package contains an implementation of RFC 2388, which is used to
3582 process form data posted with HTTP POST method using enctype
3583 \"multipart/form-data\".")
3584 (license license:bsd-2))))
3585
3586 (define-public cl-rfc2388
3587 (sbcl-package->cl-source-package sbcl-rfc2388))
3588
3589 (define-public sbcl-md5
3590 (package
3591 (name "sbcl-md5")
3592 (version "2.0.4")
3593 (source
3594 (origin
3595 (method url-fetch)
3596 (uri (string-append
3597 "https://github.com/pmai/md5/archive/release-" version ".tar.gz"))
3598 (sha256
3599 (base32 "19yl9n0pjdz5gw4qi711lka97xcd9f81ylg434hk7jwn9f2s6w11"))))
3600 (build-system asdf-build-system/sbcl)
3601 (home-page "https://github.com/pmai/md5")
3602 (synopsis
3603 "Common Lisp implementation of the MD5 Message-Digest Algorithm (RFC 1321)")
3604 (description
3605 "This package implements The MD5 Message-Digest Algorithm, as defined in
3606 RFC 1321 by R. Rivest, published April 1992.")
3607 (license license:public-domain)))
3608
3609 (define-public cl-md5
3610 (sbcl-package->cl-source-package sbcl-md5))
3611
3612 (define-public sbcl-cl+ssl
3613 (let ((commit "701e645081e6533a3f0f0b3ac86389d6f506c4b5")
3614 (revision "1"))
3615 (package
3616 (name "sbcl-cl+ssl")
3617 (version (git-version "0.0.0" revision commit))
3618 (source
3619 (origin
3620 (method git-fetch)
3621 (uri (git-reference
3622 (url "https://github.com/cl-plus-ssl/cl-plus-ssl.git")
3623 (commit commit)))
3624 (file-name (git-file-name "cl+ssl" version))
3625 (sha256
3626 (base32 "0nfl275nwhff3m25872y388cydz14kqb6zbwywa6nj85r9k8bgs0"))))
3627 (build-system asdf-build-system/sbcl)
3628 (arguments
3629 '(#:phases
3630 (modify-phases %standard-phases
3631 (add-after 'unpack 'fix-paths
3632 (lambda* (#:key inputs #:allow-other-keys)
3633 (substitute* "src/reload.lisp"
3634 (("libssl.so" all)
3635 (string-append
3636 (assoc-ref inputs "openssl") "/lib/" all))))))))
3637 (inputs
3638 `(("openssl" ,openssl)
3639 ("sbcl-cffi" ,sbcl-cffi)
3640 ("sbcl-trivial-gray-streams" ,sbcl-trivial-gray-streams)
3641 ("sbcl-flexi-streams" ,sbcl-flexi-streams)
3642 ("sbcl-bordeaux-threads" ,sbcl-bordeaux-threads)
3643 ("sbcl-trivial-garbage" ,sbcl-trivial-garbage)
3644 ("sbcl-alexandria" ,sbcl-alexandria)
3645 ("sbcl-trivial-features" ,sbcl-trivial-features)))
3646 (home-page "https://common-lisp.net/project/cl-plus-ssl/")
3647 (synopsis "Common Lisp bindings to OpenSSL")
3648 (description
3649 "This library is a fork of SSL-CMUCL. The original SSL-CMUCL source
3650 code was written by Eric Marsden and includes contributions by Jochen Schmidt.
3651 Development into CL+SSL was done by David Lichteblau.")
3652 (license license:expat))))
3653
3654 (define-public cl-cl+ssl
3655 (sbcl-package->cl-source-package sbcl-cl+ssl))
3656
3657 (define-public sbcl-kmrcl
3658 (let ((version "1.109.0")
3659 (commit "5260068b2eb735af6796740c2db4955afac21636")
3660 (revision "1"))
3661 (package
3662 (name "sbcl-kmrcl")
3663 (version (git-version version revision commit))
3664 (source
3665 (origin
3666 (method git-fetch)
3667 (uri (git-reference
3668 (url "http://git.kpe.io/kmrcl.git/")
3669 (commit commit)))
3670 (file-name (git-file-name name version))
3671 (sha256
3672 (base32 "1va7xjgzfv674bpsli674i7zj3f7wg5kxic41kz18r6hh4n52dfv"))))
3673 (build-system asdf-build-system/sbcl)
3674 (arguments
3675 ;; Tests fail with: :FORCE and :FORCE-NOT arguments not allowed in a
3676 ;; nested call to ASDF/OPERATE:OPERATE unless identically to toplevel
3677 '(#:tests? #f))
3678 (inputs
3679 `(("sbcl-rt" ,sbcl-rt)))
3680 (home-page "http://files.kpe.io/kmrcl/")
3681 (synopsis "General utilities for Common Lisp programs")
3682 (description
3683 "KMRCL is a collection of utilities used by a number of Kevin
3684 Rosenberg's CL packages.")
3685 (license license:llgpl))))
3686
3687 (define-public cl-kmrcl
3688 (sbcl-package->cl-source-package sbcl-kmrcl))
3689
3690 (define-public sbcl-cl-base64
3691 (package
3692 (name "sbcl-cl-base64")
3693 (version "3.3.4")
3694 (source
3695 (origin
3696 (method url-fetch)
3697 (uri (string-append "http://files.kpe.io/cl-base64/cl-base64-"
3698 version ".tar.gz"))
3699 (sha256
3700 (base32 "0pl4zwn5bf18dm8fh1kn1yshaa6kpmfrjyb33z9mq4raqmj3xpv2"))))
3701 (build-system asdf-build-system/sbcl)
3702 (arguments
3703 ;; Tests fail with: :FORCE and :FORCE-NOT arguments not allowed
3704 ;; in a nested call to ASDF/OPERATE:OPERATE unless identically
3705 ;; to toplevel
3706 '(#:tests? #f))
3707 (inputs
3708 `(("sbcl-ptester" ,sbcl-ptester)
3709 ("sbcl-kmrcl" ,sbcl-kmrcl)))
3710 (home-page "http://files.kpe.io/cl-base64/")
3711 (synopsis
3712 "Common Lisp package to encode and decode base64 with URI support")
3713 (description
3714 "This package provides highly optimized base64 encoding and decoding.
3715 Besides conversion to and from strings, integer conversions are supported.
3716 Encoding with Uniform Resource Identifiers is supported by using a modified
3717 encoding table that uses only URI-compatible characters.")
3718 (license license:bsd-3)))
3719
3720 (define-public cl-base64
3721 (sbcl-package->cl-source-package sbcl-cl-base64))
3722
3723 (define-public sbcl-chunga
3724 (package
3725 (name "sbcl-chunga")
3726 (version "1.1.7")
3727 (source
3728 (origin
3729 (method git-fetch)
3730 (uri (git-reference
3731 (url "https://github.com/edicl/chunga.git")
3732 (commit (string-append "v" version))))
3733 (file-name (git-file-name name version))
3734 (sha256
3735 (base32 "0jzn3nyb3f22gm983rfk99smqs3mhb9ivjmasvhq9qla5cl9pyhd"))))
3736 (build-system asdf-build-system/sbcl)
3737 (inputs
3738 `(("sbcl-trivial-gray-streams" ,sbcl-trivial-gray-streams)))
3739 (home-page "https://edicl.github.io/chunga/")
3740 (synopsis "Portable chunked streams for Common Lisp")
3741 (description
3742 "Chunga implements streams capable of chunked encoding on demand as
3743 defined in RFC 2616.")
3744 (license license:bsd-2)))
3745
3746 (define-public cl-chunga
3747 (sbcl-package->cl-source-package sbcl-chunga))
3748
3749 (define-public sbcl-cl-who
3750 (let ((version "1.1.4")
3751 (commit "2c08caa4bafba720409af9171feeba3f32e86d32")
3752 (revision "1"))
3753 (package
3754 (name "sbcl-cl-who")
3755 (version (git-version version revision commit))
3756 (source
3757 (origin
3758 (method git-fetch)
3759 (uri (git-reference
3760 (url "https://github.com/edicl/cl-who.git")
3761 (commit commit)))
3762 (file-name (git-file-name name version))
3763 (sha256
3764 (base32
3765 "0yjb6sr3yazm288m318kqvj9xk8rm9n1lpimgf65ymqv0i5agxsb"))))
3766 (build-system asdf-build-system/sbcl)
3767 (native-inputs
3768 `(("sbcl-flexi-streams" ,sbcl-flexi-streams)))
3769 (home-page "https://edicl.github.io/cl-who/")
3770 (synopsis "Yet another Lisp markup language")
3771 (description
3772 "There are plenty of Lisp Markup Languages out there - every Lisp
3773 programmer seems to write at least one during his career - and CL-WHO (where
3774 WHO means \"with-html-output\" for want of a better acronym) is probably just
3775 as good or bad as the next one.")
3776 (license license:bsd-2))))
3777
3778 (define-public cl-cl-who
3779 (sbcl-package->cl-source-package sbcl-cl-who))
3780
3781 (define-public sbcl-chipz
3782 (let ((version "0.8")
3783 (commit "75dfbc660a5a28161c57f115adf74c8a926bfc4d")
3784 (revision "1"))
3785 (package
3786 (name "sbcl-chipz")
3787 (version (git-version version revision commit))
3788 (source
3789 (origin
3790 (method git-fetch)
3791 (uri (git-reference
3792 (url "https://github.com/froydnj/chipz.git")
3793 (commit commit)))
3794 (file-name (git-file-name name version))
3795 (sha256
3796 (base32
3797 "0plx4rs39zbs4gjk77h4a2q11zpy75fh9v8hnxrvsf8fnakajhwg"))))
3798 (build-system asdf-build-system/sbcl)
3799 (native-inputs
3800 `(("sbcl-flexi-streams" ,sbcl-flexi-streams)))
3801 (home-page "http://method-combination.net/lisp/chipz/")
3802 (synopsis
3803 "Common Lisp library for decompressing deflate, zlib, gzip, and bzip2
3804 data")
3805 (description
3806 "DEFLATE data, defined in RFC1951, forms the core of popular
3807 compression formats such as zlib (RFC 1950) and gzip (RFC 1952). As such,
3808 Chipz also provides for decompressing data in those formats as well. BZIP2 is
3809 the format used by the popular compression tool bzip2.")
3810 ;; The author describes it as "MIT-like"
3811 (license license:expat))))
3812
3813 (define-public cl-chipz
3814 (sbcl-package->cl-source-package sbcl-chipz))
3815
3816 (define-public sbcl-drakma
3817 (package
3818 (name "sbcl-drakma")
3819 (version "2.0.7")
3820 (source
3821 (origin
3822 (method git-fetch)
3823 (uri (git-reference
3824 (url "https://github.com/edicl/drakma.git")
3825 (commit (string-append "v" version))))
3826 (file-name (git-file-name name version))
3827 (sha256
3828 (base32
3829 "1441idnyif9xzx3ln1p3fg36k2v9h4wasjqrzc8y52j61420qpci"))))
3830 (build-system asdf-build-system/sbcl)
3831 (inputs
3832 `(("sbcl-puri" ,sbcl-puri)
3833 ("sbcl-cl-base64" ,sbcl-cl-base64)
3834 ("sbcl-chunga" ,sbcl-chunga)
3835 ("sbcl-flexi-streams" ,sbcl-flexi-streams)
3836 ("sbcl-cl-ppcre" ,sbcl-cl-ppcre)
3837 ("sbcl-chipz" ,sbcl-chipz)
3838 ("sbcl-usocket" ,sbcl-usocket)
3839 ("sbcl-cl+ssl" ,sbcl-cl+ssl)))
3840 (native-inputs
3841 `(("sbcl-fiveam" ,sbcl-fiveam)))
3842 (home-page "https://edicl.github.io/drakma/")
3843 (synopsis "HTTP client written in Common Lisp")
3844 (description
3845 "Drakma is a full-featured HTTP client implemented in Common Lisp. It
3846 knows how to handle HTTP/1.1 chunking, persistent connections, re-usable
3847 sockets, SSL, continuable uploads, file uploads, cookies, and more.")
3848 (license license:bsd-2)))
3849
3850 (define-public cl-drakma
3851 (sbcl-package->cl-source-package sbcl-drakma))
3852
3853 (define-public ecl-drakma
3854 (sbcl-package->ecl-package sbcl-drakma))
3855
3856 (define-public sbcl-hunchentoot
3857 (package
3858 (name "sbcl-hunchentoot")
3859 (version "1.2.38")
3860 (source
3861 (origin
3862 (method git-fetch)
3863 (uri (git-reference
3864 (url "https://github.com/edicl/hunchentoot.git")
3865 (commit (string-append "v" version))))
3866 (file-name (git-file-name "hunchentoot" version))
3867 (sha256
3868 (base32 "1anpcad7w045m4rsjs1f3xdhjwx5cppq1h0vlb3q7dz81fi3i6yq"))))
3869 (build-system asdf-build-system/sbcl)
3870 (native-inputs
3871 `(("sbcl-cl-who" ,sbcl-cl-who)
3872 ("sbcl-drakma" ,sbcl-drakma)))
3873 (inputs
3874 `(("sbcl-chunga" ,sbcl-chunga)
3875 ("sbcl-cl-base64" ,sbcl-cl-base64)
3876 ("sbcl-cl-fad" ,sbcl-cl-fad)
3877 ("sbcl-cl-ppcre" ,sbcl-cl-ppcre)
3878 ("sbcl-flexi-streams" ,sbcl-flexi-streams)
3879 ("sbcl-cl+ssl" ,sbcl-cl+ssl)
3880 ("sbcl-md5" ,sbcl-md5)
3881 ("sbcl-rfc2388" ,sbcl-rfc2388)
3882 ("sbcl-trivial-backtrace" ,sbcl-trivial-backtrace)
3883 ("sbcl-usocket" ,sbcl-usocket)))
3884 (home-page "https://edicl.github.io/hunchentoot/")
3885 (synopsis "Web server written in Common Lisp")
3886 (description
3887 "Hunchentoot is a web server written in Common Lisp and at the same
3888 time a toolkit for building dynamic websites. As a stand-alone web server,
3889 Hunchentoot is capable of HTTP/1.1 chunking (both directions), persistent
3890 connections (keep-alive), and SSL.")
3891 (license license:bsd-2)))
3892
3893 (define-public cl-hunchentoot
3894 (sbcl-package->cl-source-package sbcl-hunchentoot))
3895
3896 (define-public sbcl-trivial-types
3897 (package
3898 (name "sbcl-trivial-types")
3899 (version "0.0.1")
3900 (source
3901 (origin
3902 (method git-fetch)
3903 (uri (git-reference
3904 (url "https://github.com/m2ym/trivial-types.git")
3905 (commit "ee869f2b7504d8aa9a74403641a5b42b16f47d88")))
3906 (file-name (git-file-name name version))
3907 (sha256
3908 (base32 "1s4cp9bdlbn8447q7w7f1wkgwrbvfzp20mgs307l5pxvdslin341"))))
3909 (build-system asdf-build-system/sbcl)
3910 (home-page "https://github.com/m2ym/trivial-types")
3911 (synopsis "Trivial type definitions for Common Lisp")
3912 (description
3913 "TRIVIAL-TYPES provides missing but important type definitions such as
3914 PROPER-LIST, ASSOCIATION-LIST, PROPERTY-LIST and TUPLE.")
3915 (license license:llgpl)))
3916
3917 (define-public cl-trivial-types
3918 (sbcl-package->cl-source-package sbcl-trivial-types))
3919
3920 (define-public sbcl-cl-syntax
3921 (package
3922 (name "sbcl-cl-syntax")
3923 (version "0.0.3")
3924 (source
3925 (origin
3926 (method git-fetch)
3927 (uri (git-reference
3928 (url "https://github.com/m2ym/cl-syntax.git")
3929 (commit "03f0c329bbd55b8622c37161e6278366525e2ccc")))
3930 (file-name (git-file-name "cl-syntax" version))
3931 (sha256
3932 (base32 "17ran8xp77asagl31xv8w819wafh6whwfc9p6dgx22ca537gyl4y"))))
3933 (build-system asdf-build-system/sbcl)
3934 (arguments
3935 '(#:asd-file "cl-syntax.asd"
3936 #:asd-system-name "cl-syntax"))
3937 (inputs `(("sbcl-trivial-types" ,sbcl-trivial-types)
3938 ("sbcl-named-readtables" ,sbcl-named-readtables)))
3939 (home-page "https://github.com/m2ym/cl-syntax")
3940 (synopsis "Reader Syntax Coventions for Common Lisp and SLIME")
3941 (description
3942 "CL-SYNTAX provides Reader Syntax Coventions for Common Lisp and SLIME.")
3943 (license license:llgpl)))
3944
3945 (define-public cl-syntax
3946 (sbcl-package->cl-source-package sbcl-cl-syntax))
3947
3948 (define-public sbcl-cl-annot
3949 (let ((commit "c99e69c15d935eabc671b483349a406e0da9518d")
3950 (revision "1"))
3951 (package
3952 (name "sbcl-cl-annot")
3953 (version (git-version "0.0.0" revision commit))
3954 (source
3955 (origin
3956 (method git-fetch)
3957 (uri (git-reference
3958 (url "https://github.com/m2ym/cl-annot.git")
3959 (commit commit)))
3960 (file-name (git-file-name name version))
3961 (sha256
3962 (base32 "1wq1gs9jjd5m6iwrv06c2d7i5dvqsfjcljgbspfbc93cg5xahk4n"))))
3963 (build-system asdf-build-system/sbcl)
3964 (arguments
3965 '(#:asd-file "cl-annot.asd"
3966 #:asd-system-name "cl-annot"))
3967 (inputs
3968 `(("sbcl-alexandria" ,sbcl-alexandria)))
3969 (home-page "https://github.com/m2ym/cl-annot")
3970 (synopsis "Python-like Annotation Syntax for Common Lisp.")
3971 (description
3972 "@code{cl-annot} is an general annotation library for Common Lisp.")
3973 (license license:llgpl))))
3974
3975 (define-public cl-annot
3976 (sbcl-package->cl-source-package sbcl-cl-annot))
3977
3978 (define-public sbcl-cl-syntax-annot
3979 (package
3980 (inherit sbcl-cl-syntax)
3981 (name "sbcl-cl-syntax-annot")
3982 (arguments
3983 '(#:asd-file "cl-syntax-annot.asd"
3984 #:asd-system-name "cl-syntax-annot"))
3985 (inputs
3986 `(("sbcl-cl-syntax" ,sbcl-cl-syntax)
3987 ("sbcl-cl-annot" ,sbcl-cl-annot)))
3988 (synopsis "Common Lisp reader Syntax for cl-annot")
3989 (description
3990 "CL-SYNTAX provides reader syntax coventions for Common Lisp and
3991 @code{cl-annot}.")))
3992
3993 (define-public cl-syntax-annot
3994 (sbcl-package->cl-source-package sbcl-cl-syntax-annot))
3995
3996 (define-public sbcl-cl-syntax-interpol
3997 (package
3998 (inherit sbcl-cl-syntax)
3999 (name "sbcl-cl-syntax-interpol")
4000 (arguments
4001 '(#:asd-file "cl-syntax-interpol.asd"
4002 #:asd-system-name "cl-syntax-interpol"))
4003 (inputs
4004 `(("sbcl-cl-syntax" ,sbcl-cl-syntax)
4005 ("sbcl-cl-interpol" ,sbcl-cl-interpol)))
4006 (synopsis "Common Lisp reader Syntax for cl-interpol")
4007 (description
4008 "CL-SYNTAX provides reader syntax coventions for Common Lisp and
4009 @code{cl-interpol}.")))
4010
4011 (define-public cl-syntax-interpol
4012 (sbcl-package->cl-source-package sbcl-cl-syntax-interpol))
4013
4014 (define-public sbcl-cl-utilities
4015 (let ((commit "dce2d2f6387091ea90357a130fa6d13a6776884b")
4016 (revision "1"))
4017 (package
4018 (name "sbcl-cl-utilities")
4019 (version (git-version "0.0.0" revision commit))
4020 (source
4021 (origin
4022 (method url-fetch)
4023 (uri
4024 (string-append
4025 "https://gitlab.common-lisp.net/cl-utilities/cl-utilities/-/"
4026 "archive/" commit "/cl-utilities-" commit ".tar.gz"))
4027 (sha256
4028 (base32 "1r46v730yf96nk2vb24qmagv9x96xvd08abqwhf02ghgydv1a7z2"))))
4029 (build-system asdf-build-system/sbcl)
4030 (arguments
4031 '(#:asd-file "cl-utilities.asd"
4032 #:asd-system-name "cl-utilities"
4033 #:phases
4034 (modify-phases %standard-phases
4035 (add-after 'unpack 'fix-paths
4036 (lambda* (#:key inputs #:allow-other-keys)
4037 (substitute* "rotate-byte.lisp"
4038 (("in-package :cl-utilities)" all)
4039 "in-package :cl-utilities)\n\n#+sbcl\n(require :sb-rotate-byte)")))))))
4040 (home-page "http://common-lisp.net/project/cl-utilities")
4041 (synopsis "A collection of semi-standard utilities")
4042 (description
4043 "On Cliki.net <http://www.cliki.net/Common%20Lisp%20Utilities>, there
4044 is a collection of Common Lisp Utilities, things that everybody writes since
4045 they're not part of the official standard. There are some very useful things
4046 there; the only problems are that they aren't implemented as well as you'd
4047 like (some aren't implemented at all) and they aren't conveniently packaged
4048 and maintained. It takes quite a bit of work to carefully implement utilities
4049 for common use, commented and documented, with error checking placed
4050 everywhere some dumb user might make a mistake.")
4051 (license license:public-domain))))
4052
4053 (define-public cl-utilities
4054 (sbcl-package->cl-source-package sbcl-cl-utilities))
4055
4056 (define-public sbcl-map-set
4057 (let ((commit "7b4b545b68b8")
4058 (revision "1"))
4059 (package
4060 (name "sbcl-map-set")
4061 (version (git-version "0.0.0" revision commit))
4062 (source
4063 (origin
4064 (method url-fetch)
4065 (uri (string-append
4066 "https://bitbucket.org/tarballs_are_good/map-set/get/"
4067 commit ".tar.gz"))
4068 (sha256
4069 (base32 "1sx5j5qdsy5fklspfammwb16kjrhkggdavm922a9q86jm5l0b239"))))
4070 (build-system asdf-build-system/sbcl)
4071 (home-page "https://bitbucket.org/tarballs_are_good/map-set")
4072 (synopsis "Set-like data structure")
4073 (description
4074 "Implementation of a set-like data structure with constant time
4075 addition, removal, and random selection.")
4076 (license license:bsd-3))))
4077
4078 (define-public cl-map-set
4079 (sbcl-package->cl-source-package sbcl-map-set))
4080
4081 (define-public sbcl-quri
4082 (let ((commit "b53231c5f19446dd7c24b15a249fefa45ae94f9a")
4083 (revision "2"))
4084 (package
4085 (name "sbcl-quri")
4086 (version (git-version "0.1.0" revision commit))
4087 (source
4088 (origin
4089 (method git-fetch)
4090 (uri (git-reference
4091 (url "https://github.com/fukamachi/quri.git")
4092 (commit commit)))
4093 (file-name (git-file-name name version))
4094 (sha256
4095 (base32 "0cansr63m690ymvhway419178mq2sqnmxm4rdxclbsrnjwwbi36m"))))
4096 (build-system asdf-build-system/sbcl)
4097 (arguments
4098 ;; Tests fail with: Component QURI-ASD::QURI-TEST not found,
4099 ;; required by #<SYSTEM "quri">. Why?
4100 '(#:tests? #f))
4101 (native-inputs `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
4102 ("sbcl-prove" ,sbcl-prove)))
4103 (inputs `(("sbcl-babel" ,sbcl-babel)
4104 ("sbcl-split-sequence" ,sbcl-split-sequence)
4105 ("sbcl-cl-utilities" ,sbcl-cl-utilities)
4106 ("sbcl-alexandria" ,sbcl-alexandria)))
4107 (home-page "https://github.com/fukamachi/quri")
4108 (synopsis "Yet another URI library for Common Lisp")
4109 (description
4110 "QURI (pronounced \"Q-ree\") is yet another URI library for Common
4111 Lisp. It is intended to be a replacement of PURI.")
4112 (license license:bsd-3))))
4113
4114 (define-public cl-quri
4115 (sbcl-package->cl-source-package sbcl-quri))
4116
4117 (define-public sbcl-myway
4118 (let ((commit "286230082a11f879c18b93f17ca571c5f676bfb7")
4119 (revision "1"))
4120 (package
4121 (name "sbcl-myway")
4122 (version (git-version "0.1.0" revision commit))
4123 (source
4124 (origin
4125 (method git-fetch)
4126 (uri (git-reference
4127 (url "https://github.com/fukamachi/myway.git")
4128 (commit commit)))
4129 (file-name (git-file-name "myway" version))
4130 (sha256
4131 (base32 "0briia9bk3lbr0frnx39d1qg6i38dm4j6z9w3yga3d40k6df4a90"))))
4132 (build-system asdf-build-system/sbcl)
4133 (arguments
4134 ;; Tests fail with: Component MYWAY-ASD::MYWAY-TEST not found, required
4135 ;; by #<SYSTEM "myway">. Why?
4136 '(#:tests? #f))
4137 (native-inputs
4138 `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
4139 ("sbcl-prove" ,sbcl-prove)))
4140 (inputs
4141 `(("sbcl-cl-ppcre" ,sbcl-cl-ppcre)
4142 ("sbcl-quri" ,sbcl-quri)
4143 ("sbcl-map-set" ,sbcl-map-set)))
4144 (home-page "https://github.com/fukamachi/myway")
4145 (synopsis "Sinatra-compatible URL routing library for Common Lisp")
4146 (description "My Way is a Sinatra-compatible URL routing library.")
4147 (license license:llgpl))))
4148
4149 (define-public cl-myway
4150 (sbcl-package->cl-source-package sbcl-myway))
4151
4152 (define-public sbcl-xsubseq
4153 (let ((commit "5ce430b3da5cda3a73b9cf5cee4df2843034422b")
4154 (revision "1"))
4155 (package
4156 (name "sbcl-xsubseq")
4157 (version (git-version "0.0.1" revision commit))
4158 (source
4159 (origin
4160 (method git-fetch)
4161 (uri (git-reference
4162 (url "https://github.com/fukamachi/xsubseq")
4163 (commit commit)))
4164 (file-name (git-file-name name version))
4165 (sha256
4166 (base32 "1xz79q0p2mclf3sqjiwf6izdpb6xrsr350bv4mlmdlm6rg5r99px"))))
4167 (build-system asdf-build-system/sbcl)
4168 (arguments
4169 ;; Tests fail with: Component XSUBSEQ-ASD::XSUBSEQ-TEST not found,
4170 ;; required by #<SYSTEM "xsubseq">. Why?
4171 '(#:tests? #f))
4172 (native-inputs
4173 `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
4174 ("sbcl-prove" ,sbcl-prove)))
4175 (home-page "https://github.com/fukamachi/xsubseq")
4176 (synopsis "Efficient way to use \"subseq\"s in Common Lisp")
4177 (description
4178 "XSubseq provides functions to be able to handle \"subseq\"s more
4179 effieiently.")
4180 (license license:bsd-2))))
4181
4182 (define-public cl-xsubseq
4183 (sbcl-package->cl-source-package sbcl-xsubseq))
4184
4185 (define-public sbcl-smart-buffer
4186 (let ((commit "09b9a9a0b3abaa37abe9a730f5aac2643dca4e62")
4187 (revision "1"))
4188 (package
4189 (name "sbcl-smart-buffer")
4190 (version (git-version "0.0.1" revision commit))
4191 (source
4192 (origin
4193 (method git-fetch)
4194 (uri (git-reference
4195 (url "https://github.com/fukamachi/smart-buffer")
4196 (commit commit)))
4197 (file-name (git-file-name name version))
4198 (sha256
4199 (base32 "0qz1zzxx0wm5ff7gpgsq550a59p0qj594zfmm2rglj97dahj54l7"))))
4200 (build-system asdf-build-system/sbcl)
4201 (arguments
4202 ;; Tests fail with: Component SMART-BUFFER-ASD::SMART-BUFFER-TEST not
4203 ;; found, required by #<SYSTEM "smart-buffer">. Why?
4204 `(#:tests? #f))
4205 (native-inputs
4206 `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
4207 ("sbcl-prove" ,sbcl-prove)))
4208 (inputs
4209 `(("sbcl-xsubseq" ,sbcl-xsubseq)
4210 ("sbcl-flexi-streams" ,sbcl-flexi-streams)))
4211 (home-page "https://github.com/fukamachi/smart-buffer")
4212 (synopsis "Smart octets buffer")
4213 (description
4214 "Smart-buffer provides an output buffer which changes the destination
4215 depending on content size.")
4216 (license license:bsd-3))))
4217
4218 (define-public cl-smart-buffer
4219 (sbcl-package->cl-source-package sbcl-smart-buffer))
4220
4221 (define-public sbcl-fast-http
4222 (let ((commit "502a37715dcb8544cc8528b78143a942de662c5a")
4223 (revision "2"))
4224 (package
4225 (name "sbcl-fast-http")
4226 (version (git-version "0.2.0" revision commit))
4227 (source
4228 (origin
4229 (method git-fetch)
4230 (uri (git-reference
4231 (url "https://github.com/fukamachi/fast-http")
4232 (commit commit)))
4233 (file-name (git-file-name name version))
4234 (sha256
4235 (base32 "0al2g7g219jjljsf7b23pbilpgacxy5as5gs2nqf76b5qni396mi"))))
4236 (build-system asdf-build-system/sbcl)
4237 (arguments
4238 ;; Tests fail with: Component FAST-HTTP-ASD::FAST-HTTP-TEST not found,
4239 ;; required by #<SYSTEM "fast-http">. Why?
4240 `(#:tests? #f))
4241 (native-inputs
4242 `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
4243 ("sbcl-prove" ,sbcl-prove)
4244 ("cl-syntax-interpol" ,sbcl-cl-syntax-interpol)))
4245 (inputs
4246 `(("sbcl-alexandria" ,sbcl-alexandria)
4247 ("sbcl-proc-parse" ,sbcl-proc-parse)
4248 ("sbcl-xsubseq" ,sbcl-xsubseq)
4249 ("sbcl-smart-buffer" ,sbcl-smart-buffer)
4250 ("sbcl-cl-utilities" ,sbcl-cl-utilities)))
4251 (home-page "https://github.com/fukamachi/fast-http")
4252 (synopsis "HTTP request/response parser for Common Lisp")
4253 (description
4254 "@code{fast-http} is a HTTP request/response protocol parser for Common
4255 Lisp.")
4256 ;; Author specified the MIT license
4257 (license license:expat))))
4258
4259 (define-public cl-fast-http
4260 (sbcl-package->cl-source-package sbcl-fast-http))
4261
4262 (define-public sbcl-static-vectors
4263 (package
4264 (name "sbcl-static-vectors")
4265 (version "1.8.4")
4266 (source
4267 (origin
4268 (method git-fetch)
4269 (uri (git-reference
4270 (url "https://github.com/sionescu/static-vectors.git")
4271 (commit (string-append "v" version))))
4272 (file-name (git-file-name name version))
4273 (sha256
4274 (base32 "0qvf9z6bhwhm8n45fjwkm7j8dcb58szfvndky65cyn4lpdval7m1"))))
4275 (native-inputs
4276 `(("sbcl-fiveam" ,sbcl-fiveam)))
4277 (inputs
4278 `(("sbcl-cffi-grovel" ,sbcl-cffi-grovel)
4279 ("sbcl-cffi" ,sbcl-cffi)))
4280 (build-system asdf-build-system/sbcl)
4281 (home-page "https://github.com/sionescu/static-vectors")
4282 (synopsis "Allocate SIMPLE-ARRAYs in static memory")
4283 (description
4284 "With @code{static-vectors}, you can create vectors allocated in static
4285 memory.")
4286 (license license:expat)))
4287
4288 (define-public cl-static-vectors
4289 (sbcl-package->cl-source-package sbcl-static-vectors))
4290
4291 (define-public ecl-static-vectors
4292 (sbcl-package->ecl-package sbcl-static-vectors))
4293
4294 (define-public sbcl-marshal
4295 (let ((commit "eff1b15f2b0af2f26f71ad6a4dd5c4beab9299ec")
4296 (revision "1"))
4297 (package
4298 (name "sbcl-marshal")
4299 (version (git-version "1.3.0" revision commit))
4300 (source
4301 (origin
4302 (method git-fetch)
4303 (uri (git-reference
4304 (url "https://github.com/wlbr/cl-marshal.git")
4305 (commit commit)))
4306 (file-name (git-file-name name version))
4307 (sha256
4308 (base32 "08qs6fhk38xpkkjkpcj92mxx0lgy4ygrbbzrmnivdx281syr0gwh"))))
4309 (build-system asdf-build-system/sbcl)
4310 (home-page "https://github.com/wlbr/cl-marshal")
4311 (synopsis "Simple (de)serialization of Lisp datastructures")
4312 (description
4313 "Simple and fast marshalling of Lisp datastructures. Convert any object
4314 into a string representation, put it on a stream an revive it from there.
4315 Only minimal changes required to make your CLOS objects serializable.")
4316 (license license:expat))))
4317
4318 (define-public cl-marshal
4319 (sbcl-package->cl-source-package sbcl-marshal))
4320
4321 (define-public sbcl-checkl
4322 (let ((commit "80328800d047fef9b6e32dfe6bdc98396aee3cc9")
4323 (revision "1"))
4324 (package
4325 (name "sbcl-checkl")
4326 (version (git-version "0.0.0" revision commit))
4327 (source
4328 (origin
4329 (method git-fetch)
4330 (uri (git-reference
4331 (url "https://github.com/rpav/CheckL.git")
4332 (commit commit)))
4333 (file-name (git-file-name name version))
4334 (sha256
4335 (base32 "0bpisihx1gay44xmyr1dmhlwh00j0zzi04rp9fy35i95l2r4xdlx"))))
4336 (build-system asdf-build-system/sbcl)
4337 (arguments
4338 ;; Error while trying to load definition for system checkl-test from
4339 ;; pathname [...]/checkl-test.asd: The function CHECKL:DEFINE-TEST-OP
4340 ;; is undefined.
4341 '(#:tests? #f))
4342 (native-inputs
4343 `(("sbcl-fiveam" ,sbcl-fiveam)))
4344 (inputs
4345 `(("sbcl-marshal" ,sbcl-marshal)))
4346 (home-page "https://github.com/rpav/CheckL/")
4347 (synopsis "Dynamic testing for Common Lisp")
4348 (description
4349 "CheckL lets you write tests dynamically, it checks resulting values
4350 against the last run.")
4351 ;; The author specifies both LLGPL and "BSD", but the "BSD" license
4352 ;; isn't specified anywhere, so I don't know which kind. LLGPL is the
4353 ;; stronger of the two and so I think only listing this should suffice.
4354 (license license:llgpl))))
4355
4356 (define-public cl-checkl
4357 (sbcl-package->cl-source-package sbcl-checkl))
4358
4359 (define-public sbcl-fast-io
4360 (let ((commit "603f4903dd74fb221859da7058ae6ca3853fe64b")
4361 (revision "2"))
4362 (package
4363 (name "sbcl-fast-io")
4364 (version (git-version "1.0.0" revision commit))
4365 (source
4366 (origin
4367 (method git-fetch)
4368 (uri (git-reference
4369 (url "https://github.com/rpav/fast-io.git")
4370 (commit commit)))
4371 (file-name (git-file-name name version))
4372 (sha256
4373 (base32 "00agvc0xx4w715i6ach05p995zpcpghn04xc06zyci06q677vw3n"))))
4374 (build-system asdf-build-system/sbcl)
4375 (arguments
4376 ;; Error while trying to load definition for system fast-io-test from
4377 ;; pathname [...]/fast-io-test.asd: The function CHECKL:DEFINE-TEST-OP
4378 ;; is undefined.
4379 '(#:tests? #f))
4380 (native-inputs
4381 `(("sbcl-fiveam" ,sbcl-fiveam)
4382 ("sbcl-checkl" ,sbcl-checkl)))
4383 (inputs
4384 `(("sbcl-alexandria" ,sbcl-alexandria)
4385 ("sbcl-trivial-gray-streams" ,sbcl-trivial-gray-streams)
4386 ("sbcl-static-vectors" ,sbcl-static-vectors)))
4387 (home-page "https://github.com/rpav/fast-io")
4388 (synopsis "Fast octet-vector/stream I/O for Common Lisp")
4389 (description
4390 "Fast-io is about improving performance to octet-vectors and octet
4391 streams (though primarily the former, while wrapping the latter).")
4392 ;; Author specifies this as NewBSD which is an alias
4393 (license license:bsd-3))))
4394
4395 (define-public cl-fast-io
4396 (sbcl-package->cl-source-package sbcl-fast-io))
4397
4398 (define-public sbcl-jonathan
4399 (let ((commit "1f448b4f7ac8265e56e1c02b32ce383e65316300")
4400 (revision "1"))
4401 (package
4402 (name "sbcl-jonathan")
4403 (version (git-version "0.1.0" revision commit))
4404 (source
4405 (origin
4406 (method git-fetch)
4407 (uri (git-reference
4408 (url "https://github.com/Rudolph-Miller/jonathan.git")
4409 (commit commit)))
4410 (file-name (git-file-name name version))
4411 (sha256
4412 (base32 "14x4iwz3mbag5jzzzr4sb6ai0m9r4q4kyypbq32jmsk2dx1hi807"))))
4413 (build-system asdf-build-system/sbcl)
4414 (arguments
4415 ;; Tests fail with: Component JONATHAN-ASD::JONATHAN-TEST not found,
4416 ;; required by #<SYSTEM "jonathan">. Why?
4417 `(#:tests? #f))
4418 (native-inputs
4419 `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
4420 ("sbcl-prove" ,sbcl-prove)))
4421 (inputs
4422 `(("sbcl-cl-syntax" ,sbcl-cl-syntax)
4423 ("sbcl-cl-syntax-annot" ,sbcl-cl-syntax-annot)
4424 ("sbcl-fast-io" ,sbcl-fast-io)
4425 ("sbcl-proc-parse" ,sbcl-proc-parse)
4426 ("sbcl-cl-ppcre" ,sbcl-cl-ppcre)))
4427 (home-page "https://rudolph-miller.github.io/jonathan/overview.html")
4428 (synopsis "JSON encoder and decoder")
4429 (description
4430 "High performance JSON encoder and decoder. Currently support: SBCL,
4431 CCL.")
4432 ;; Author specifies the MIT license
4433 (license license:expat))))
4434
4435 (define-public cl-jonathan
4436 (sbcl-package->cl-source-package sbcl-jonathan))
4437
4438 (define-public sbcl-http-body
4439 (let ((commit "dd01dc4f5842e3d29728552e5163acce8386eb73")
4440 (revision "1"))
4441 (package
4442 (name "sbcl-http-body")
4443 (version (git-version "0.1.0" revision commit))
4444 (source
4445 (origin
4446 (method git-fetch)
4447 (uri (git-reference
4448 (url "https://github.com/fukamachi/http-body")
4449 (commit commit)))
4450 (file-name (git-file-name name version))
4451 (sha256
4452 (base32 "1jd06snjvxcprhapgfq8sx0y5lrldkvhf206ix6d5a23dd6zcmr0"))))
4453 (build-system asdf-build-system/sbcl)
4454 (arguments
4455 ;; Tests fail with: Component HTTP-BODY-ASD::HTTP-BODY-TEST not
4456 ;; found, required by #<SYSTEM "http-body">. Why?
4457 `(#:tests? #f))
4458 (native-inputs
4459 `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
4460 ("sbcl-prove" ,sbcl-prove)))
4461 (inputs
4462 `(("sbcl-fast-http" ,sbcl-fast-http)
4463 ("sbcl-jonathan" ,sbcl-jonathan)
4464 ("sbcl-quri" ,sbcl-quri)))
4465 (home-page "https://github.com/fukamachi/http-body")
4466 (synopsis "HTTP POST data parser")
4467 (description
4468 "HTTP-Body parses HTTP POST data and returns POST parameters. It
4469 supports application/x-www-form-urlencoded, application/json, and
4470 multipart/form-data.")
4471 (license license:bsd-2))))
4472
4473 (define-public cl-http-body
4474 (sbcl-package->cl-source-package sbcl-http-body))
4475
4476 (define-public sbcl-circular-streams
4477 (let ((commit "e770bade1919c5e8533dd2078c93c3d3bbeb38df")
4478 (revision "1"))
4479 (package
4480 (name "sbcl-circular-streams")
4481 (version (git-version "0.1.0" revision commit))
4482 (source
4483 (origin
4484 (method git-fetch)
4485 (uri (git-reference
4486 (url "https://github.com/fukamachi/circular-streams")
4487 (commit commit)))
4488 (file-name (git-file-name name version))
4489 (sha256
4490 (base32 "1wpw6d5cciyqcf92f7mvihak52pd5s47kk4qq6f0r2z2as68p5rs"))))
4491 (build-system asdf-build-system/sbcl)
4492 (arguments
4493 ;; The tests depend on cl-test-more which is now prove. Prove
4494 ;; tests aren't working for some reason.
4495 `(#:tests? #f))
4496 (inputs
4497 `(("sbcl-fast-io" ,sbcl-fast-io)
4498 ("sbcl-trivial-gray-streams" ,sbcl-trivial-gray-streams)))
4499 (home-page "https://github.com/fukamachi/circular-streams")
4500 (synopsis "Circularly readable streams for Common Lisp")
4501 (description
4502 "Circular-Streams allows you to read streams circularly by wrapping real
4503 streams. Once you reach end-of-file of a stream, it's file position will be
4504 reset to 0 and you're able to read it again.")
4505 (license license:llgpl))))
4506
4507 (define-public cl-circular-streams
4508 (sbcl-package->cl-source-package sbcl-circular-streams))
4509
4510 (define-public sbcl-lack-request
4511 (let ((commit "abff8efeb0c3a848e6bb0022f2b8b7fa3a1bc88b")
4512 (revision "1"))
4513 (package
4514 (name "sbcl-lack-request")
4515 (version (git-version "0.1.0" revision commit))
4516 (source
4517 (origin
4518 (method git-fetch)
4519 (uri (git-reference
4520 (url "https://github.com/fukamachi/lack.git")
4521 (commit commit)))
4522 (file-name (git-file-name "lack-request" version))
4523 (sha256
4524 (base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85"))))
4525 (build-system asdf-build-system/sbcl)
4526 (arguments
4527 '(#:asd-file "lack-request.asd"
4528 #:asd-system-name "lack-request"
4529 #:test-asd-file "t-lack-request.asd"
4530 ;; XXX: Component :CLACK-TEST not found
4531 #:tests? #f))
4532 (native-inputs
4533 `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
4534 ("sbcl-prove" ,sbcl-prove)))
4535 (inputs
4536 `(("sbcl-quri" ,sbcl-quri)
4537 ("sbcl-http-body" ,sbcl-http-body)
4538 ("sbcl-circular-streams" ,sbcl-circular-streams)))
4539 (home-page "https://github.com/fukamachi/lack")
4540 (synopsis "Lack, the core of Clack")
4541 (description
4542 "Lack is a Common Lisp library which allows web applications to be
4543 constructed of modular components. It was originally a part of Clack, however
4544 it's going to be rewritten as an individual project since Clack v2 with
4545 performance and simplicity in mind.")
4546 (license license:llgpl))))
4547
4548 (define-public cl-lack-request
4549 (sbcl-package->cl-source-package sbcl-lack-request))
4550
4551 (define-public sbcl-local-time
4552 (let ((commit "62792705245168d3fc2e04164b9a143477284142")
4553 (revision "1"))
4554 (package
4555 (name "sbcl-local-time")
4556 (version (git-version "1.0.6" revision commit))
4557 (source
4558 (origin
4559 (method git-fetch)
4560 (uri (git-reference
4561 (url "https://github.com/dlowe-net/local-time.git")
4562 (commit commit)))
4563 (file-name (git-file-name name version))
4564 (sha256
4565 (base32 "1r5zq4l1lrgprdr2pw7wwry194yknnllyjf6lx7snypb3k4r3yir"))))
4566 (build-system asdf-build-system/sbcl)
4567 (arguments
4568 ;; TODO: Component :STEFIL not found, required by #<SYSTEM
4569 ;; "local-time/test">
4570 '(#:tests? #f))
4571 (native-inputs
4572 `(("stefil" ,sbcl-hu.dwim.stefil)))
4573 (inputs
4574 `(("sbcl-cl-fad" ,sbcl-cl-fad)))
4575 (home-page "https://common-lisp.net/project/local-time/")
4576 (synopsis "Time manipulation library for Common Lisp")
4577 (description
4578 "The LOCAL-TIME library is a Common Lisp library for the manipulation of
4579 dates and times. It is based almost entirely upon Erik Naggum's paper \"The
4580 Long Painful History of Time\".")
4581 (license license:expat))))
4582
4583 (define-public cl-local-time
4584 (sbcl-package->cl-source-package sbcl-local-time))
4585
4586 (define-public sbcl-lack-response
4587 (let ((commit "abff8efeb0c3a848e6bb0022f2b8b7fa3a1bc88b")
4588 (revision "1"))
4589 (package
4590 (name "sbcl-lack-response")
4591 (version (git-version "0.1.0" revision commit))
4592 (source
4593 (origin
4594 (method git-fetch)
4595 (uri (git-reference
4596 (url "https://github.com/fukamachi/lack.git")
4597 (commit commit)))
4598 (file-name (git-file-name name version))
4599 (sha256
4600 (base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85"))))
4601 (build-system asdf-build-system/sbcl)
4602 (arguments
4603 '(#:asd-file "lack-response.asd"
4604 #:asd-system-name "lack-response"
4605 ;; XXX: no tests for lack-response.
4606 #:tests? #f))
4607 (native-inputs
4608 `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
4609 ("sbcl-prove" ,sbcl-prove)))
4610 (inputs
4611 `(("sbcl-quri" ,sbcl-quri)
4612 ("sbcl-http-body" ,sbcl-http-body)
4613 ("sbcl-circular-streams" ,sbcl-circular-streams)
4614 ("sbcl-local-time" ,sbcl-local-time)))
4615 (home-page "https://github.com/fukamachi/lack")
4616 (synopsis "Lack, the core of Clack")
4617 (description
4618 "Lack is a Common Lisp library which allows web applications to be
4619 constructed of modular components. It was originally a part of Clack, however
4620 it's going to be rewritten as an individual project since Clack v2 with
4621 performance and simplicity in mind.")
4622 (license license:llgpl))))
4623
4624 (define-public cl-lack-response
4625 (sbcl-package->cl-source-package sbcl-lack-response))
4626
4627 (define-public sbcl-lack-component
4628 (let ((commit "abff8efeb0c3a848e6bb0022f2b8b7fa3a1bc88b")
4629 (revision "1"))
4630 (package
4631 (name "sbcl-lack-component")
4632 (version (git-version "0.0.0" revision commit))
4633 (source
4634 (origin
4635 (method git-fetch)
4636 (uri (git-reference
4637 (url "https://github.com/fukamachi/lack.git")
4638 (commit commit)))
4639 (file-name (git-file-name "lack-component" version))
4640 (sha256
4641 (base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85"))))
4642 (build-system asdf-build-system/sbcl)
4643 (arguments
4644 '(#:asd-file "lack-component.asd"
4645 #:asd-system-name "lack-component"
4646 #:test-asd-file "t-lack-component.asd"
4647 ;; XXX: Component :LACK-TEST not found
4648 #:tests? #f))
4649 (native-inputs
4650 `(("prove-asdf" ,sbcl-prove-asdf)))
4651 (home-page "https://github.com/fukamachi/lack")
4652 (synopsis "Lack, the core of Clack")
4653 (description
4654 "Lack is a Common Lisp library which allows web applications to be
4655 constructed of modular components. It was originally a part of Clack, however
4656 it's going to be rewritten as an individual project since Clack v2 with
4657 performance and simplicity in mind.")
4658 (license license:llgpl))))
4659
4660 (define-public cl-lack-component
4661 (sbcl-package->cl-source-package sbcl-lack-component))
4662
4663 (define-public sbcl-lack-util
4664 (let ((commit "abff8efeb0c3a848e6bb0022f2b8b7fa3a1bc88b")
4665 (revision "1"))
4666 (package
4667 (name "sbcl-lack-util")
4668 (version (git-version "0.1.0" revision commit))
4669 (source
4670 (origin
4671 (method git-fetch)
4672 (uri (git-reference
4673 (url "https://github.com/fukamachi/lack.git")
4674 (commit commit)))
4675 (file-name (git-file-name "lack-util" version))
4676 (sha256
4677 (base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85"))))
4678 (build-system asdf-build-system/sbcl)
4679 (arguments
4680 '(#:asd-file "lack-util.asd"
4681 #:asd-system-name "lack-util"
4682 #:test-asd-file "t-lack-util.asd"
4683 ;; XXX: Component :LACK-TEST not found
4684 #:tests? #f))
4685 (native-inputs
4686 `(("prove-asdf" ,sbcl-prove-asdf)))
4687 (inputs
4688 `(("sbcl-ironclad" ,sbcl-ironclad)))
4689 (home-page "https://github.com/fukamachi/lack")
4690 (synopsis "Lack, the core of Clack")
4691 (description
4692 "Lack is a Common Lisp library which allows web applications to be
4693 constructed of modular components. It was originally a part of Clack, however
4694 it's going to be rewritten as an individual project since Clack v2 with
4695 performance and simplicity in mind.")
4696 (license license:llgpl))))
4697
4698 (define-public cl-lack-util
4699 (sbcl-package->cl-source-package sbcl-lack-util))
4700
4701 (define-public sbcl-lack-middleware-backtrace
4702 (let ((commit "abff8efeb0c3a848e6bb0022f2b8b7fa3a1bc88b")
4703 (revision "1"))
4704 (package
4705 (name "sbcl-lack-middleware-backtrace")
4706 (version (git-version "0.1.0" revision commit))
4707 (source
4708 (origin
4709 (method git-fetch)
4710 (uri (git-reference
4711 (url "https://github.com/fukamachi/lack.git")
4712 (commit commit)))
4713 (file-name (git-file-name "lack-middleware-backtrace" version))
4714 (sha256
4715 (base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85"))))
4716 (build-system asdf-build-system/sbcl)
4717 (arguments
4718 '(#:asd-file "lack-middleware-backtrace.asd"
4719 #:asd-system-name "lack-middleware-backtrace"
4720 #:test-asd-file "t-lack-middleware-backtrace.asd"
4721 ;; XXX: Component :LACK not found
4722 #:tests? #f))
4723 (native-inputs
4724 `(("prove-asdf" ,sbcl-prove-asdf)))
4725 (home-page "https://github.com/fukamachi/lack")
4726 (synopsis "Lack, the core of Clack")
4727 (description
4728 "Lack is a Common Lisp library which allows web applications to be
4729 constructed of modular components. It was originally a part of Clack, however
4730 it's going to be rewritten as an individual project since Clack v2 with
4731 performance and simplicity in mind.")
4732 (license license:llgpl))))
4733
4734 (define-public cl-lack-middleware-backtrace
4735 (sbcl-package->cl-source-package sbcl-lack-middleware-backtrace))
4736
4737 (define-public sbcl-trivial-mimes
4738 (let ((commit "303f8ac0aa6ca0bc139aa3c34822e623c3723fab")
4739 (revision "1"))
4740 (package
4741 (name "sbcl-trivial-mimes")
4742 (version (git-version "1.1.0" revision commit))
4743 (source
4744 (origin
4745 (method git-fetch)
4746 (uri (git-reference
4747 (url "https://github.com/Shinmera/trivial-mimes.git")
4748 (commit commit)))
4749 (file-name (git-file-name name version))
4750 (sha256
4751 (base32 "17jxgl47r695bvsb7wi3n2ws5rp1zzgvw0zii8cy5ggw4b4ayv6m"))))
4752 (build-system asdf-build-system/sbcl)
4753 (arguments
4754 '(#:phases
4755 (modify-phases %standard-phases
4756 (add-after
4757 'unpack 'fix-paths
4758 (lambda* (#:key inputs #:allow-other-keys)
4759 (let ((anchor "#p\"/etc/mime.types\""))
4760 (substitute* "mime-types.lisp"
4761 ((anchor all)
4762 (string-append
4763 anchor "\n"
4764 "(asdf:system-relative-pathname :trivial-mimes "
4765 "\"../../share/common-lisp/" (%lisp-type)
4766 "-source/trivial-mimes/mime.types\")")))))))))
4767 (native-inputs
4768 `(("stefil" ,sbcl-hu.dwim.stefil)))
4769 (inputs
4770 `(("sbcl-cl-fad" ,sbcl-cl-fad)))
4771 (home-page "https://shinmera.github.io/trivial-mimes/")
4772 (synopsis "Tiny Common Lisp library to detect mime types in files")
4773 (description
4774 "This is a teensy library that provides some functions to determine the
4775 mime-type of a file.")
4776 (license license:artistic2.0))))
4777
4778 (define-public cl-trivial-mimes
4779 (sbcl-package->cl-source-package sbcl-trivial-mimes))
4780
4781 (define-public ecl-trivial-mimes
4782 (sbcl-package->ecl-package sbcl-trivial-mimes))
4783
4784 (define-public sbcl-lack-middleware-static
4785 (let ((commit "abff8efeb0c3a848e6bb0022f2b8b7fa3a1bc88b")
4786 (revision "1"))
4787 (package
4788 (name "sbcl-lack-middleware-static")
4789 (version (git-version "0.1.0" revision commit))
4790 (source
4791 (origin
4792 (method git-fetch)
4793 (uri (git-reference
4794 (url "https://github.com/fukamachi/lack.git")
4795 (commit commit)))
4796 (file-name (git-file-name "lack-middleware-static" version))
4797 (sha256
4798 (base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85"))))
4799 (build-system asdf-build-system/sbcl)
4800 (arguments
4801 '(#:asd-file "lack-middleware-static.asd"
4802 #:asd-system-name "lack-middleware-static"
4803 #:test-asd-file "t-lack-middleware-static.asd"
4804 ;; XXX: Component :LACK not found
4805 #:tests? #f))
4806 (native-inputs
4807 `(("prove-asdf" ,sbcl-prove-asdf)))
4808 (inputs
4809 `(("sbcl-ironclad" ,sbcl-ironclad)
4810 ("sbcl-trivial-mimes" ,sbcl-trivial-mimes)
4811 ("sbcl-local-time" ,sbcl-local-time)))
4812 (home-page "https://github.com/fukamachi/lack")
4813 (synopsis "Lack, the core of Clack")
4814 (description
4815 "Lack is a Common Lisp library which allows web applications to be
4816 constructed of modular components. It was originally a part of Clack, however
4817 it's going to be rewritten as an individual project since Clack v2 with
4818 performance and simplicity in mind.")
4819 (license license:llgpl))))
4820
4821 (define-public cl-lack-middleware-static
4822 (sbcl-package->cl-source-package sbcl-lack-middleware-static))
4823
4824 (define-public sbcl-lack
4825 (let ((commit "abff8efeb0c3a848e6bb0022f2b8b7fa3a1bc88b")
4826 (revision "1"))
4827 (package
4828 (name "sbcl-lack")
4829 (version (git-version "0.1.0" revision commit))
4830 (source
4831 (origin
4832 (method git-fetch)
4833 (uri (git-reference
4834 (url "https://github.com/fukamachi/lack.git")
4835 (commit commit)))
4836 (file-name (git-file-name "lack" version))
4837 (sha256
4838 (base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85"))))
4839 (build-system asdf-build-system/sbcl)
4840 (arguments
4841 '(#:test-asd-file "t-lack.asd"
4842 ;; XXX: Component :CLACK not found
4843 #:tests? #f))
4844 (native-inputs
4845 `(("prove-asdf" ,sbcl-prove-asdf)))
4846 (inputs
4847 `(("sbcl-lack-component" ,sbcl-lack-component)
4848 ("sbcl-lack-util" ,sbcl-lack-util)))
4849 (home-page "https://github.com/fukamachi/lack")
4850 (synopsis "Lack, the core of Clack")
4851 (description
4852 "Lack is a Common Lisp library which allows web applications to be
4853 constructed of modular components. It was originally a part of Clack, however
4854 it's going to be rewritten as an individual project since Clack v2 with
4855 performance and simplicity in mind.")
4856 (license license:llgpl))))
4857
4858 (define-public cl-lack
4859 (sbcl-package->cl-source-package sbcl-lack))
4860
4861 (define-public sbcl-ningle
4862 (let ((commit "50bd4f09b5a03a7249bd4d78265d6451563b25ad")
4863 (revision "1"))
4864 (package
4865 (name "sbcl-ningle")
4866 (version (git-version "0.3.0" revision commit))
4867 (source
4868 (origin
4869 (method git-fetch)
4870 (uri (git-reference
4871 (url "https://github.com/fukamachi/ningle.git")
4872 (commit commit)))
4873 (file-name (git-file-name name version))
4874 (sha256
4875 (base32 "1bsl8cnxhacb8p92z9n89vhk1ikmij5zavk0m2zvmj7iqm79jzgw"))))
4876 (build-system asdf-build-system/sbcl)
4877 (arguments
4878 ;; TODO: pull in clack-test
4879 '(#:tests? #f
4880 #:phases
4881 (modify-phases %standard-phases
4882 (delete 'cleanup-files)
4883 (delete 'cleanup)
4884 (add-before 'cleanup 'combine-fasls
4885 (lambda* (#:key outputs #:allow-other-keys)
4886 (let* ((out (assoc-ref outputs "out"))
4887 (lib (string-append out "/lib/sbcl"))
4888 (ningle-path (string-append lib "/ningle"))
4889 (fasl-files (find-files out "\\.fasl$")))
4890 (mkdir-p ningle-path)
4891 (let ((fasl-path (lambda (name)
4892 (string-append ningle-path
4893 "/"
4894 (basename name)
4895 "--system.fasl"))))
4896 (for-each (lambda (file)
4897 (rename-file file
4898 (fasl-path
4899 (basename file ".fasl"))))
4900 fasl-files))
4901 fasl-files)
4902 #t)))))
4903 (native-inputs
4904 `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
4905 ("sbcl-prove" ,sbcl-prove)))
4906 (inputs
4907 `(("sbcl-cl-syntax" ,sbcl-cl-syntax)
4908 ("sbcl-cl-syntax-annot" ,sbcl-cl-syntax-annot)
4909 ("sbcl-myway" ,sbcl-myway)
4910 ("sbcl-lack-request" ,sbcl-lack-request)
4911 ("sbcl-lack-response" ,sbcl-lack-response)
4912 ("sbcl-lack-component" ,sbcl-lack-component)
4913 ("sbcl-alexandria" ,sbcl-alexandria)
4914 ("sbcl-babel" ,sbcl-babel)))
4915 (home-page "https://8arrow.org/ningle/")
4916 (synopsis "Super micro framework for Common Lisp")
4917 (description
4918 "Ningle is a lightweight web application framework for Common Lisp.")
4919 (license license:llgpl))))
4920
4921 (define-public cl-ningle
4922 (sbcl-package->cl-source-package sbcl-ningle))
4923
4924 (define-public sbcl-clack
4925 (let ((commit "e3e032843bb1220ab96263c411aa7f2feb4746e0")
4926 (revision "1"))
4927 (package
4928 (name "sbcl-clack")
4929 (version (git-version "2.0.0" revision commit))
4930 (source
4931 (origin
4932 (method git-fetch)
4933 (uri (git-reference
4934 (url "https://github.com/fukamachi/clack.git")
4935 (commit commit)))
4936 (file-name (git-file-name name version))
4937 (sha256
4938 (base32 "1ymzs6qyrwhlj6cgqsnpyn6g5cbp7a3s1vgxwna20y2q7y4iacy0"))))
4939 (build-system asdf-build-system/sbcl)
4940 (inputs
4941 `(("sbcl-lack" ,sbcl-lack)
4942 ("sbcl-lack-middleware-backtrace" ,sbcl-lack-middleware-backtrace)
4943 ("sbcl-bordeaux-threads" ,sbcl-bordeaux-threads)))
4944 (home-page "https://github.com/fukamachi/clack")
4945 (synopsis "Web Application Environment for Common Lisp")
4946 (description
4947 "Clack is a web application environment for Common Lisp inspired by
4948 Python's WSGI and Ruby's Rack.")
4949 (license license:llgpl))))
4950
4951 (define-public cl-clack
4952 (sbcl-package->cl-source-package sbcl-clack))
4953
4954 (define-public sbcl-log4cl
4955 (let ((commit "611e094458504b938d49de904eab141285328c7c")
4956 (revision "1"))
4957 (package
4958 (name "sbcl-log4cl")
4959 (build-system asdf-build-system/sbcl)
4960 (version "1.1.2")
4961 (source
4962 (origin
4963 (method git-fetch)
4964 (uri (git-reference
4965 (url "https://github.com/sharplispers/log4cl")
4966 (commit commit)))
4967 (file-name (git-file-name name version))
4968 (sha256
4969 (base32
4970 "08jly0s0g26b56hhpfizxsb4j0yvbh946sd205gr42dkzv8l7dsc"))))
4971 ;; FIXME: tests require stefil, sbcl-hu.dwim.stefil wont work
4972 (arguments
4973 `(#:tests? #f))
4974 (inputs `(("bordeaux-threads" ,sbcl-bordeaux-threads)))
4975 (synopsis "Common Lisp logging framework, modeled after Log4J")
4976 (home-page "https://github.com/7max/log4cl")
4977 (description "This is a Common Lisp logging framework that can log at
4978 various levels and mix text with expressions.")
4979 (license license:asl2.0))))
4980
4981 (define-public cl-log4cl
4982 (sbcl-package->cl-source-package sbcl-log4cl))
4983
4984 (define-public ecl-log4cl
4985 (sbcl-package->ecl-package sbcl-log4cl))
4986
4987 (define-public sbcl-find-port
4988 (let ((commit "00c96a25af93a0f8681d34ec548861f2d7485478")
4989 (revision "1"))
4990 (package
4991 (name "sbcl-find-port")
4992 (build-system asdf-build-system/sbcl)
4993 (version "0.1")
4994 (home-page "https://github.com/eudoxia0/find-port")
4995 (source
4996 (origin
4997 (method git-fetch)
4998 (uri (git-reference
4999 (url home-page)
5000 (commit commit)))
5001 (file-name (git-file-name name version))
5002 (sha256
5003 (base32
5004 "0d6dzbb45jh0rx90wgs6v020k2xa87mvzas3mvfzvivjvqqlpryq"))))
5005 (native-inputs
5006 `(("fiveam" ,sbcl-fiveam)))
5007 (inputs
5008 `(("sbcl-usocket" ,sbcl-usocket)))
5009 (synopsis "Find open ports programmatically in Common Lisp")
5010 (description "This is a small Common Lisp library that finds an open
5011 port within a range.")
5012 (license license:expat))))
5013
5014 (define-public cl-find-port
5015 (sbcl-package->cl-source-package sbcl-find-port))
5016
5017 (define-public ecl-find-port
5018 (sbcl-package->ecl-package sbcl-find-port))
5019
5020 (define-public sbcl-clunit
5021 (let ((commit "6f6d72873f0e1207f037470105969384f8380628")
5022 (revision "1"))
5023 (package
5024 (name "sbcl-clunit")
5025 (version (git-version "0.2.3" revision commit))
5026 (source
5027 (origin
5028 (method git-fetch)
5029 (uri (git-reference
5030 (url "https://github.com/tgutu/clunit.git")
5031 (commit commit)))
5032 (file-name (git-file-name name version))
5033 (sha256
5034 (base32
5035 "1idf2xnqzlhi8rbrqmzpmb3i1l6pbdzhhajkmhwbp6qjkmxa4h85"))))
5036 (build-system asdf-build-system/sbcl)
5037 (synopsis "CLUnit is a Common Lisp unit testing framework")
5038 (description
5039 "CLUnit is a Common Lisp unit testing framework. It is designed
5040 to be easy to use so that you can quickly start testing. CLUnit
5041 provides a rich set of features aimed at improving your unit testing
5042 experience.")
5043 (home-page "https://tgutu.github.io/clunit/")
5044 ;; MIT License
5045 (license license:expat))))
5046
5047 (define-public cl-clunit
5048 (sbcl-package->cl-source-package sbcl-clunit))
5049
5050 (define-public ecl-clunit
5051 (sbcl-package->ecl-package sbcl-clunit))
5052
5053 (define-public sbcl-py4cl
5054 (let ((commit "4c8a2b0814fd311f978964f825ce012290f60136")
5055 (revision "1"))
5056 (package
5057 (name "sbcl-py4cl")
5058 (version (git-version "0.0.0" revision commit))
5059 (source
5060 (origin
5061 (method git-fetch)
5062 (uri (git-reference
5063 (url "https://github.com/bendudson/py4cl.git")
5064 (commit commit)))
5065 (file-name (git-file-name name version))
5066 (sha256
5067 (base32
5068 "15mk7qdqjkj56gdnbyrdyz6r7m1h26ldvn6ch96pmvg5vmr1m45r"))
5069 (modules '((guix build utils)))))
5070 (build-system asdf-build-system/sbcl)
5071 (native-inputs
5072 `(("sbcl-clunit" ,sbcl-clunit)))
5073 (inputs
5074 `(("sbcl-trivial-garbage" ,sbcl-trivial-garbage)))
5075 (propagated-inputs
5076 ;; This package doesn't do anything without python available
5077 `(("python" ,python)
5078 ;; For multi-dimensional array support
5079 ("python-numpy" ,python-numpy)))
5080 (arguments
5081 '(#:phases
5082 (modify-phases %standard-phases
5083 (add-after 'unpack 'replace-*base-directory*-var
5084 (lambda* (#:key outputs #:allow-other-keys)
5085 ;; In the ASD, the author makes an attempt to
5086 ;; programatically determine the location of the
5087 ;; source-code so lisp can call into "py4cl.py". We can
5088 ;; hard-code this since we know where this file will
5089 ;; reside.
5090 (substitute* "src/callpython.lisp"
5091 (("py4cl/config:\\*base-directory\\*")
5092 (string-append
5093 "\""
5094 (assoc-ref outputs "out")
5095 "/share/common-lisp/sbcl-source/py4cl/"
5096 "\""))))))))
5097 (synopsis "Call python from Common Lisp")
5098 (description
5099 "Py4CL is a bridge between Common Lisp and Python, which enables Common
5100 Lisp to interact with Python code. It uses streams to communicate with a
5101 separate python process, the approach taken by cl4py. This is different to
5102 the CFFI approach used by burgled-batteries, but has the same goal.")
5103 (home-page "https://github.com/bendudson/py4cl")
5104 ;; MIT License
5105 (license license:expat))))
5106
5107 (define-public cl-py4cl
5108 (sbcl-package->cl-source-package sbcl-py4cl))
5109
5110 (define-public ecl-py4cl
5111 (sbcl-package->ecl-package sbcl-py4cl))
5112
5113 (define-public sbcl-parse-declarations
5114 (let ((commit "549aebbfb9403a7fe948654126b9c814f443f4f2")
5115 (revision "1"))
5116 (package
5117 (name "sbcl-parse-declarations")
5118 (version (git-version "1.0.0" revision commit))
5119 (source
5120 (origin
5121 (method git-fetch)
5122 (uri (git-reference
5123 (url (string-append
5124 "https://gitlab.common-lisp.net/parse-declarations/"
5125 "parse-declarations.git"))
5126 (commit commit)))
5127 (file-name (git-file-name name version))
5128 (sha256
5129 (base32 "03g5qks4c59nmxa48pbslxkfh77h8hn8566jddp6m9pl15dzzpxd"))))
5130 (build-system asdf-build-system/sbcl)
5131 (arguments
5132 `(#:asd-file "parse-declarations-1.0.asd"
5133 #:asd-system-name "parse-declarations-1.0"))
5134 (home-page "https://common-lisp.net/project/parse-declarations/")
5135 (synopsis "Parse, filter, and build declarations")
5136 (description
5137 "Parse-Declarations is a Common Lisp library to help writing
5138 macros which establish bindings. To be semantically correct, such
5139 macros must take user declarations into account, as these may affect
5140 the bindings they establish. Yet the ANSI standard of Common Lisp does
5141 not provide any operators to work with declarations in a convenient,
5142 high-level way. This library provides such operators.")
5143 ;; MIT License
5144 (license license:expat))))
5145
5146 (define-public cl-parse-declarations
5147 (sbcl-package->cl-source-package sbcl-parse-declarations))
5148
5149 (define-public ecl-parse-declarations
5150 (sbcl-package->ecl-package sbcl-parse-declarations))
5151
5152 (define-public sbcl-cl-quickcheck
5153 (let ((commit "807b2792a30c883a2fbecea8e7db355b50ba662f")
5154 (revision "1"))
5155 (package
5156 (name "sbcl-cl-quickcheck")
5157 (version (git-version "0.0.4" revision commit))
5158 (source
5159 (origin
5160 (method git-fetch)
5161 (uri (git-reference
5162 (url "https://github.com/mcandre/cl-quickcheck.git")
5163 (commit commit)))
5164 (file-name (git-file-name name version))
5165 (sha256
5166 (base32
5167 "165lhypq5xkcys6hvzb3jq7ywnmqvzaflda29qk2cbs3ggas4767"))))
5168 (build-system asdf-build-system/sbcl)
5169 (synopsis
5170 "Common Lisp port of the QuickCheck unit test framework")
5171 (description
5172 "Common Lisp port of the QuickCheck unit test framework")
5173 (home-page "https://github.com/mcandre/cl-quickcheck")
5174 ;; MIT
5175 (license license:expat))))
5176
5177 (define-public cl-cl-quickcheck
5178 (sbcl-package->cl-source-package sbcl-cl-quickcheck))
5179
5180 (define-public ecl-cl-quickcheck
5181 (sbcl-package->ecl-package sbcl-cl-quickcheck))
5182
5183 (define-public sbcl-burgled-batteries3
5184 (let ((commit "f65f454d13bb6c40e17e9ec62e41eb5069e09760")
5185 (revision "2"))
5186 (package
5187 (name "sbcl-burgled-batteries3")
5188 (version (git-version "0.0.0" revision commit))
5189 (source
5190 (origin
5191 (method git-fetch)
5192 (uri (git-reference
5193 (url "https://github.com/snmsts/burgled-batteries3.git")
5194 (commit commit)))
5195 (file-name (git-file-name name version))
5196 (sha256
5197 (base32
5198 "1nzn7jawrfajyzwfnzrg2cmn9xxadcqh4szbpg0jggkhdkdzz4wa"))))
5199 (build-system asdf-build-system/sbcl)
5200 (arguments
5201 `(#:tests? #f
5202 #:modules (((guix build python-build-system) #:select (python-version))
5203 ,@%asdf-build-system-modules)
5204 #:imported-modules ((guix build python-build-system)
5205 ,@%asdf-build-system-modules)
5206 #:phases
5207 (modify-phases (@ (guix build asdf-build-system) %standard-phases)
5208 (add-after 'unpack 'set-*cpython-include-dir*-var
5209 (lambda* (#:key inputs #:allow-other-keys)
5210 (let ((python (assoc-ref inputs "python")))
5211 (setenv "BB_PYTHON3_INCLUDE_DIR"
5212 (string-append python "/include/python"
5213 (python-version python)))
5214 (setenv "BB_PYTHON3_DYLIB"
5215 (string-append python "/lib/libpython3.so"))
5216 #t)))
5217 (add-after 'unpack 'adjust-for-python-3.8
5218 (lambda _
5219 ;; This method is no longer part of the public API.
5220 (substitute* "ffi-interface.lisp"
5221 ((".*PyEval_ReInitThreads.*")
5222 ""))
5223 #t)))))
5224 (native-inputs
5225 `(("sbcl-cl-fad" ,sbcl-cl-fad)
5226 ("sbcl-lift" ,sbcl-lift)
5227 ("sbcl-cl-quickcheck" ,sbcl-cl-quickcheck)))
5228 (inputs
5229 `(("python" ,python)
5230 ("sbcl-cffi" ,sbcl-cffi)
5231 ("sbcl-cffi-grovel" ,sbcl-cffi-grovel)
5232 ("sbcl-alexandria" , sbcl-alexandria)
5233 ("sbcl-parse-declarations-1.0" ,sbcl-parse-declarations)
5234 ("sbcl-trivial-garbage" ,sbcl-trivial-garbage)))
5235 (synopsis "Bridge between Python and Lisp (FFI bindings, etc.)")
5236 (description
5237 "This package provides a shim between Python3 (specifically, the
5238 CPython implementation of Python) and Common Lisp.")
5239 (home-page "https://github.com/snmsts/burgled-batteries3")
5240 (license license:expat))))
5241
5242 (define-public cl-burgled-batteries3
5243 (sbcl-package->cl-source-package sbcl-burgled-batteries3))
5244
5245 (define-public ecl-burgled-batteries3
5246 (sbcl-package->ecl-package sbcl-burgled-batteries3))
5247
5248 (define-public sbcl-metabang-bind
5249 (let ((commit "c93b7f7e1c18c954c2283efd6a7fdab36746ab5e")
5250 (revision "1"))
5251 (package
5252 (name "sbcl-metabang-bind")
5253 (version (git-version "0.8.0" revision commit))
5254 (source
5255 (origin
5256 (method git-fetch)
5257 (uri (git-reference
5258 (url "https://github.com/gwkkwg/metabang-bind.git")
5259 (commit commit)))
5260 (file-name (git-file-name name version))
5261 (sha256
5262 (base32
5263 "0hd0kr91795v77akpbcyqiss9p0p7ypa9dznrllincnmgvsxlmf0"))))
5264 (build-system asdf-build-system/sbcl)
5265 (native-inputs
5266 `(("sbcl-lift" ,sbcl-lift)))
5267 (synopsis "Macro that generalizes @code{multiple-value-bind} etc.")
5268 (description
5269 "Bind extends the idea of of let and destructing to provide a uniform
5270 syntax for all your accessor needs. It combines @code{let},
5271 @code{destructuring-bind}, @code{with-slots}, @code{with-accessors}, structure
5272 editing, property or association-lists, and @code{multiple-value-bind} and a
5273 whole lot more into a single form.")
5274 (home-page "https://common-lisp.net/project/metabang-bind/")
5275 ;; MIT License
5276 (license license:expat))))
5277
5278 (define-public cl-metabang-bind
5279 (sbcl-package->cl-source-package sbcl-metabang-bind))
5280
5281 (define-public ecl-metabang-bind
5282 (sbcl-package->ecl-package sbcl-metabang-bind))
5283
5284 (define-public sbcl-fare-utils
5285 (let ((commit "66e9c6f1499140bc00ccc22febf2aa528cbb5724")
5286 (revision "1"))
5287 (package
5288 (name "sbcl-fare-utils")
5289 (version (git-version "1.0.0.5" revision commit))
5290 (source
5291 (origin
5292 (method git-fetch)
5293 (uri
5294 (git-reference
5295 (url
5296 "https://gitlab.common-lisp.net/frideau/fare-utils.git")
5297 (commit commit)))
5298 (file-name (git-file-name name version))
5299 (sha256
5300 (base32
5301 "01wsr1aap3jdzhn4hrqjbhsjx6qci9dbd3gh4gayv1p49rbg8aqr"))))
5302 (build-system asdf-build-system/sbcl)
5303 (arguments
5304 `(#:test-asd-file "test/fare-utils-test.asd"))
5305 (native-inputs
5306 `(("sbcl-hu.dwim.stefil" ,sbcl-hu.dwim.stefil)))
5307 (synopsis "Collection of utilities and data structures")
5308 (description
5309 "fare-utils is a small collection of utilities. It contains a lot of
5310 basic everyday functions and macros.")
5311 (home-page "https://gitlab.common-lisp.net/frideau/fare-utils")
5312 ;; MIT License
5313 (license license:expat))))
5314
5315 (define-public cl-fare-utils
5316 (sbcl-package->cl-source-package sbcl-fare-utils))
5317
5318 (define-public ecl-fare-utils
5319 (sbcl-package->ecl-package sbcl-fare-utils))
5320
5321 (define-public sbcl-trivial-utf-8
5322 (let ((commit "4d427cfbb1c452436a0efb71c3205c9da67f718f")
5323 (revision "1"))
5324 (package
5325 (name "sbcl-trivial-utf-8")
5326 (version (git-version "0.0.0" revision commit))
5327 (source
5328 (origin
5329 (method git-fetch)
5330 (uri
5331 (git-reference
5332 (url (string-append "https://gitlab.common-lisp.net/"
5333 "trivial-utf-8/trivial-utf-8.git"))
5334 (commit commit)))
5335 (file-name (git-file-name name version))
5336 (sha256
5337 (base32
5338 "1jz27gz8gvqdmvp3k9bxschs6d5b3qgk94qp2bj6nv1d0jc3m1l1"))))
5339 (arguments
5340 ;; Guix incorrectly assumes the "8" is part of the version
5341 ;; number and lobs it off.
5342 `(#:asd-file "trivial-utf-8.asd"
5343 #:asd-system-name "trivial-utf-8"))
5344 (build-system asdf-build-system/sbcl)
5345 (synopsis "UTF-8 input/output library")
5346 (description
5347 "The Babel library solves a similar problem while understanding more
5348 encodings. Trivial UTF-8 was written before Babel existed, but for new
5349 projects you might be better off going with Babel. The one plus that Trivial
5350 UTF-8 has is that it doesn't depend on any other libraries.")
5351 (home-page "https://common-lisp.net/project/trivial-utf-8/")
5352 (license license:bsd-3))))
5353
5354 (define-public cl-trivial-utf-8
5355 (sbcl-package->cl-source-package sbcl-trivial-utf-8))
5356
5357 (define-public ecl-trivial-utf-8
5358 (sbcl-package->ecl-package sbcl-trivial-utf-8))
5359
5360 (define-public sbcl-idna
5361 (package
5362 (name "sbcl-idna")
5363 (build-system asdf-build-system/sbcl)
5364 (version "0.2.2")
5365 (home-page "https://github.com/antifuchs/idna")
5366 (source
5367 (origin
5368 (method git-fetch)
5369 (uri (git-reference
5370 (url home-page)
5371 (commit version)))
5372 (file-name (git-file-name name version))
5373 (sha256
5374 (base32
5375 "00nbr3mffxhlq14gg9d16pa6691s4qh35inyw76v906s77khm5a2"))))
5376 (inputs
5377 `(("split-sequence" ,sbcl-split-sequence)))
5378 (synopsis "IDNA string encoding and decoding routines for Common Lisp")
5379 (description "This Common Lisp library provides string encoding and
5380 decoding routines for IDNA, the International Domain Names in Applications.")
5381 (license license:expat)))
5382
5383 (define-public cl-idna
5384 (sbcl-package->cl-source-package sbcl-idna))
5385
5386 (define-public ecl-idna
5387 (sbcl-package->ecl-package sbcl-idna))
5388
5389 (define-public sbcl-swap-bytes
5390 (package
5391 (name "sbcl-swap-bytes")
5392 (build-system asdf-build-system/sbcl)
5393 (version "1.2")
5394 (home-page "https://github.com/sionescu/swap-bytes")
5395 (source
5396 (origin
5397 (method git-fetch)
5398 (uri (git-reference
5399 (url home-page)
5400 (commit (string-append "v" version))))
5401 (file-name (git-file-name name version))
5402 (sha256
5403 (base32
5404 "1hw1v1lw26rifyznpnj1csphha9jgzwpiic16ni3pvs6hcsni9rz"))))
5405 (inputs
5406 `(("trivial-features" ,sbcl-trivial-features)))
5407 (native-inputs
5408 `(("fiveam" ,sbcl-fiveam)))
5409 (synopsis "Efficient endianness conversion for Common Lisp")
5410 (description "This Common Lisp library provides optimized byte-swapping
5411 primitives. The library can change endianness of unsigned integers of length
5412 1/2/4/8. Very useful in implementing various network protocols and file
5413 formats.")
5414 (license license:expat)))
5415
5416 (define-public cl-swap-bytes
5417 (sbcl-package->cl-source-package sbcl-swap-bytes))
5418
5419 (define-public ecl-swap-bytes
5420 (sbcl-package->ecl-package sbcl-swap-bytes))
5421
5422 (define-public sbcl-iolib.asdf
5423 ;; Latest release is from June 2017.
5424 (let ((commit "7f5ea3a8457a29d224b24653c2b3657fb1898021")
5425 (revision "2"))
5426 (package
5427 (name "sbcl-iolib.asdf")
5428 (build-system asdf-build-system/sbcl)
5429 (version (git-version "0.8.3" revision commit))
5430 (home-page "https://github.com/sionescu/iolib")
5431 (source
5432 (origin
5433 (method git-fetch)
5434 (uri (git-reference
5435 (url home-page)
5436 (commit commit)))
5437 (file-name (git-file-name name version))
5438 (sha256
5439 (base32
5440 "1bg5w7lm61hqk4b0svmri8a590q36z76jfa0sdgzb39r98c04w12"))))
5441 (inputs
5442 `(("alexandria" ,sbcl-alexandria)))
5443 (arguments
5444 '(#:asd-file "iolib.asdf.asd"))
5445 (synopsis "ASDF component classes for IOLib, a Common Lisp I/O library")
5446 (description "IOlib is to be a better and more modern I/O library than
5447 the standard Common Lisp library. It contains a socket library, a DNS
5448 resolver, an I/O multiplexer(which supports @code{select(2)}, @code{epoll(4)}
5449 and @code{kqueue(2)}), a pathname library and file-system utilities.")
5450 (license license:expat))))
5451
5452 (define-public sbcl-iolib.conf
5453 (package
5454 (inherit sbcl-iolib.asdf)
5455 (name "sbcl-iolib.conf")
5456 (inputs
5457 `(("iolib.asdf" ,sbcl-iolib.asdf)))
5458 (arguments
5459 '(#:asd-file "iolib.conf.asd"))
5460 (synopsis "Compile-time configuration for IOLib, a Common Lisp I/O library")))
5461
5462 (define-public sbcl-iolib.common-lisp
5463 (package
5464 (inherit sbcl-iolib.asdf)
5465 (name "sbcl-iolib.common-lisp")
5466 (inputs
5467 `(("iolib.asdf" ,sbcl-iolib.asdf)
5468 ("iolib.conf" ,sbcl-iolib.conf)))
5469 (arguments
5470 '(#:asd-file "iolib.common-lisp.asd"))
5471 (synopsis "Slightly modified Common Lisp for IOLib, a Common Lisp I/O library")))
5472
5473 (define-public sbcl-iolib.base
5474 (package
5475 (inherit sbcl-iolib.asdf)
5476 (name "sbcl-iolib.base")
5477 (inputs
5478 `(("iolib.asdf" ,sbcl-iolib.asdf)
5479 ("iolib.conf" ,sbcl-iolib.conf)
5480 ("iolib.common-lisp" ,sbcl-iolib.common-lisp)
5481 ("split-sequence" ,sbcl-split-sequence)))
5482 (arguments
5483 '(#:asd-file "iolib.base.asd"))
5484 (synopsis "Base package for IOLib, a Common Lisp I/O library")))
5485
5486 (define-public sbcl-iolib.grovel
5487 (deprecated-package "sbcl-iolib.grovel" sbcl-cffi-grovel))
5488
5489 (define sbcl-iolib+syscalls
5490 (package
5491 (inherit sbcl-iolib.asdf)
5492 (name "sbcl-iolib+syscalls")
5493 (inputs
5494 `(("iolib.asdf" ,sbcl-iolib.asdf)
5495 ("iolib.conf" ,sbcl-iolib.conf)
5496 ("cffi-grovel" ,sbcl-cffi-grovel)
5497 ("iolib.base" ,sbcl-iolib.base)
5498 ("bordeaux-threads" ,sbcl-bordeaux-threads)
5499 ("idna" ,sbcl-idna)
5500 ("swap-bytes" ,sbcl-swap-bytes)
5501 ("libfixposix" ,libfixposix)
5502 ("cffi" ,sbcl-cffi)))
5503 (native-inputs
5504 `(("fiveam" ,sbcl-fiveam)))
5505 (arguments
5506 '(#:asd-file "iolib.asd"
5507 #:asd-system-name "iolib/syscalls"
5508 #:phases
5509 (modify-phases %standard-phases
5510 (add-after 'unpack 'fix-paths
5511 (lambda* (#:key inputs #:allow-other-keys)
5512 (substitute* "src/syscalls/ffi-functions-unix.lisp"
5513 (("\\(:default \"libfixposix\"\\)")
5514 (string-append
5515 "(:default \""
5516 (assoc-ref inputs "libfixposix") "/lib/libfixposix\")")))
5517 ;; Socket tests need Internet access, disable them.
5518 (substitute* "iolib.asd"
5519 (("\\(:file \"sockets\" :depends-on \\(\"pkgdcl\" \"defsuites\"\\)\\)")
5520 "")))))))
5521 (synopsis "Common Lisp I/O library")))
5522
5523 (define sbcl-iolib+multiplex
5524 (package
5525 (inherit sbcl-iolib+syscalls)
5526 (name "sbcl-iolib+multiplex")
5527 (inputs
5528 `(("iolib+syscalls" ,sbcl-iolib+syscalls)
5529 ,@(package-inputs sbcl-iolib+syscalls)))
5530 (arguments
5531 (substitute-keyword-arguments (package-arguments sbcl-iolib+syscalls)
5532 ((#:asd-system-name _) "iolib/multiplex")))))
5533
5534 (define sbcl-iolib+streams
5535 (package
5536 (inherit sbcl-iolib+syscalls)
5537 (name "sbcl-iolib+streams")
5538 (inputs
5539 `(("iolib+multiplex" ,sbcl-iolib+multiplex)
5540 ,@(package-inputs sbcl-iolib+syscalls)))
5541 (arguments
5542 (substitute-keyword-arguments (package-arguments sbcl-iolib+syscalls)
5543 ((#:asd-system-name _) "iolib/streams")))))
5544
5545 (define sbcl-iolib+sockets
5546 (package
5547 (inherit sbcl-iolib+syscalls)
5548 (name "sbcl-iolib+sockets")
5549 (inputs
5550 `(("iolib+syscalls" ,sbcl-iolib+syscalls)
5551 ("iolib+streams" ,sbcl-iolib+streams)
5552 ,@(package-inputs sbcl-iolib+syscalls)))
5553 (arguments
5554 (substitute-keyword-arguments (package-arguments sbcl-iolib+syscalls)
5555 ((#:asd-system-name _) "iolib/sockets")))))
5556
5557 (define-public sbcl-iolib
5558 (package
5559 (inherit sbcl-iolib+syscalls)
5560 (name "sbcl-iolib")
5561 (inputs
5562 `(("iolib+multiplex" ,sbcl-iolib+multiplex)
5563 ("iolib+streams" ,sbcl-iolib+streams)
5564 ("iolib+sockets" ,sbcl-iolib+sockets)
5565 ,@(package-inputs sbcl-iolib+syscalls)))
5566 (arguments
5567 (substitute-keyword-arguments (package-arguments sbcl-iolib+syscalls)
5568 ((#:asd-system-name _) "iolib")))))
5569
5570 (define-public cl-iolib
5571 (let ((parent (sbcl-package->cl-source-package sbcl-iolib)))
5572 (package
5573 (inherit parent)
5574 (propagated-inputs
5575 ;; Need header to compile.
5576 `(("libfixposix" ,libfixposix)
5577 ,@(package-propagated-inputs parent))))))
5578
5579 (define-public sbcl-ieee-floats
5580 (let ((commit "566b51a005e81ff618554b9b2f0b795d3b29398d")
5581 (revision "1"))
5582 (package
5583 (name "sbcl-ieee-floats")
5584 (build-system asdf-build-system/sbcl)
5585 (version (git-version "20170924" revision commit))
5586 (home-page "https://github.com/marijnh/ieee-floats/")
5587 (source
5588 (origin
5589 (method git-fetch)
5590 (uri (git-reference
5591 (url home-page)
5592 (commit commit)))
5593 (file-name (git-file-name name version))
5594 (sha256
5595 (base32
5596 "1xyj49j9x3lc84cv3dhbf9ja34ywjk1c46dklx425fxw9mkwm83m"))))
5597 (native-inputs
5598 `(("fiveam" ,sbcl-fiveam)))
5599 (synopsis "IEEE 754 binary representation for floats in Common Lisp")
5600 (description "This is a Common Lisp library that converts
5601 floating point values to IEEE 754 binary representation.")
5602 (license license:bsd-3))))
5603
5604 (define-public cl-ieee-floats
5605 (sbcl-package->cl-source-package sbcl-ieee-floats))
5606
5607 (define sbcl-closure-common
5608 (let ((commit "e3c5f5f454b72b01b89115e581c3c52a7e201e5c")
5609 (revision "1"))
5610 (package
5611 (name "sbcl-closure-common")
5612 (build-system asdf-build-system/sbcl)
5613 (version (git-version "20101006" revision commit))
5614 (home-page "https://common-lisp.net/project/cxml/")
5615 (source
5616 (origin
5617 (method git-fetch)
5618 (uri (git-reference
5619 (url "https://github.com/sharplispers/closure-common")
5620 (commit commit)))
5621 (file-name (git-file-name name version))
5622 (sha256
5623 (base32
5624 "0k5r2qxn122pxi301ijir3nayi9sg4d7yiy276l36qmzwhp4mg5n"))))
5625 (inputs
5626 `(("trivial-gray-streams" ,sbcl-trivial-gray-streams)
5627 ("babel" ,sbcl-babel)))
5628 (synopsis "Support Common Lisp library for CXML")
5629 (description "Closure-common is an internal helper library. The name
5630 Closure is a reference to the web browser it was originally written for.")
5631 ;; TODO: License?
5632 (license #f))))
5633
5634 (define-public sbcl-cxml+xml
5635 (let ((commit "00b22bf4c4cf11c993d5866fae284f95ab18e6bf")
5636 (revision "1"))
5637 (package
5638 (name "sbcl-cxml+xml")
5639 (build-system asdf-build-system/sbcl)
5640 (version (git-version "0.0.0" revision commit))
5641 (home-page "https://common-lisp.net/project/cxml/")
5642 (source
5643 (origin
5644 (method git-fetch)
5645 (uri (git-reference
5646 (url "https://github.com/sharplispers/cxml")
5647 (commit commit)))
5648 (file-name (git-file-name name version))
5649 (sha256
5650 (base32
5651 "13kif7rf3gqdycsk9zq0d7y0g9y81krkl0z87k0p2fkbjfgrph37"))))
5652 (inputs
5653 `(("closure-common" ,sbcl-closure-common)
5654 ("puri" ,sbcl-puri)
5655 ("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
5656 (arguments
5657 `(#:asd-file "cxml.asd"
5658 #:asd-system-name "cxml/xml"))
5659 (synopsis "Common Lisp XML parser")
5660 (description "CXML implements a namespace-aware, validating XML 1.0
5661 parser as well as the DOM Level 2 Core interfaces. Two parser interfaces are
5662 offered, one SAX-like, the other similar to StAX.")
5663 (license license:llgpl))))
5664
5665 (define sbcl-cxml+dom
5666 (package
5667 (inherit sbcl-cxml+xml)
5668 (name "sbcl-cxml+dom")
5669 (inputs
5670 `(("closure-common" ,sbcl-closure-common)
5671 ("puri" ,sbcl-puri)
5672 ("cxml+xml" ,sbcl-cxml+xml)))
5673 (arguments
5674 `(#:asd-file "cxml.asd"
5675 #:asd-system-name "cxml/dom"))))
5676
5677 (define sbcl-cxml+klacks
5678 (package
5679 (inherit sbcl-cxml+xml)
5680 (name "sbcl-cxml+klacks")
5681 (inputs
5682 `(("closure-common" ,sbcl-closure-common)
5683 ("puri" ,sbcl-puri)
5684 ("cxml+xml" ,sbcl-cxml+xml)))
5685 (arguments
5686 `(#:asd-file "cxml.asd"
5687 #:asd-system-name "cxml/klacks"))))
5688
5689 (define sbcl-cxml+test
5690 (package
5691 (inherit sbcl-cxml+xml)
5692 (name "sbcl-cxml+test")
5693 (inputs
5694 `(("closure-common" ,sbcl-closure-common)
5695 ("puri" ,sbcl-puri)
5696 ("cxml+xml" ,sbcl-cxml+xml)))
5697 (arguments
5698 `(#:asd-file "cxml.asd"
5699 #:asd-system-name "cxml/test"))))
5700
5701 (define-public sbcl-cxml
5702 (package
5703 (inherit sbcl-cxml+xml)
5704 (name "sbcl-cxml")
5705 (inputs
5706 `(("closure-common" ,sbcl-closure-common)
5707 ("puri" ,sbcl-puri)
5708 ("trivial-gray-streams" ,sbcl-trivial-gray-streams)
5709 ("cxml+dom" ,sbcl-cxml+dom)
5710 ("cxml+klacks" ,sbcl-cxml+klacks)
5711 ("cxml+test" ,sbcl-cxml+test)))
5712 (arguments
5713 `(#:asd-file "cxml.asd"
5714 #:asd-system-name "cxml"
5715 #:phases
5716 (modify-phases %standard-phases
5717 (add-after 'build 'install-dtd
5718 (lambda* (#:key outputs #:allow-other-keys)
5719 (install-file "catalog.dtd"
5720 (string-append
5721 (assoc-ref outputs "out")
5722 "/lib/" (%lisp-type))))))))))
5723
5724 (define-public cl-cxml
5725 (sbcl-package->cl-source-package sbcl-cxml))
5726
5727 (define-public sbcl-cl-reexport
5728 (let ((commit "312f3661bbe187b5f28536cd7ec2956e91366c3b")
5729 (revision "1"))
5730 (package
5731 (name "sbcl-cl-reexport")
5732 (build-system asdf-build-system/sbcl)
5733 (version (git-version "0.1" revision commit))
5734 (home-page "https://github.com/takagi/cl-reexport")
5735 (source
5736 (origin
5737 (method git-fetch)
5738 (uri (git-reference
5739 (url home-page)
5740 (commit commit)))
5741 (file-name (git-file-name name version))
5742 (sha256
5743 (base32
5744 "1cwpn1m3wrl0fl9plznn7p464db646gnfc8zkyk97dyxski2aq0x"))))
5745 (inputs
5746 `(("alexandria" ,sbcl-alexandria)))
5747 (arguments
5748 ;; TODO: Tests fail because cl-test-more is missing, but I can't find it online.
5749 `(#:tests? #f))
5750 (synopsis "HTTP cookie manager for Common Lisp")
5751 (description "cl-cookie is a Common Lisp library featuring parsing of
5752 cookie headers, cookie creation, cookie jar creation and more.")
5753 (license license:llgpl))))
5754
5755 (define-public cl-reexport
5756 (sbcl-package->cl-source-package sbcl-cl-reexport))
5757
5758 (define-public sbcl-cl-cookie
5759 (let ((commit "cea55aed8b9ad25fafd13defbcb9fe8f41b29546")
5760 (revision "1"))
5761 (package
5762 (name "sbcl-cl-cookie")
5763 (build-system asdf-build-system/sbcl)
5764 (version (git-version "0.9.10" revision commit))
5765 (home-page "https://github.com/fukamachi/cl-cookie")
5766 (source
5767 (origin
5768 (method git-fetch)
5769 (uri (git-reference
5770 (url home-page)
5771 (commit commit)))
5772 (file-name (git-file-name name version))
5773 (sha256
5774 (base32
5775 "090g7z75h98zvc1ldx0vh4jn4086dhjm2w30jcwkq553qmyxwl8h"))))
5776 (inputs
5777 `(("proc-parse" ,sbcl-proc-parse)
5778 ("alexandria" ,sbcl-alexandria)
5779 ("quri" ,sbcl-quri)
5780 ("cl-ppcre" ,sbcl-cl-ppcre)
5781 ("local-time" ,sbcl-local-time)))
5782 (native-inputs
5783 `(("prove-asdf" ,sbcl-prove-asdf)
5784 ("prove" ,sbcl-prove)))
5785 (arguments
5786 ;; TODO: Tests fail because cl-cookie depends on cl-cookie-test.
5787 `(#:tests? #f))
5788 (synopsis "HTTP cookie manager for Common Lisp")
5789 (description "cl-cookie is a Common Lisp library featuring parsing of
5790 cookie headers, cookie creation, cookie jar creation and more.")
5791 (license license:bsd-2))))
5792
5793 (define-public cl-cookie
5794 (sbcl-package->cl-source-package sbcl-cl-cookie))
5795
5796 (define-public sbcl-dexador
5797 (let ((commit "953090f04c4d1a9ee6632b90133cdc297b68badc")
5798 (revision "1"))
5799 (package
5800 (name "sbcl-dexador")
5801 (build-system asdf-build-system/sbcl)
5802 (version "0.9.14" )
5803 (home-page "https://github.com/fukamachi/dexador")
5804 (source
5805 (origin
5806 (method git-fetch)
5807 (uri (git-reference
5808 (url home-page)
5809 (commit commit)))
5810 (file-name (git-file-name name version))
5811 (sha256
5812 (base32
5813 "0w18fz3301rpmwc3kwb810czcd24mbf7r1z8vdyc0v5crjfpw3mn"))))
5814 (inputs
5815 `(("trivial-gray-streams" ,sbcl-trivial-gray-streams)
5816 ("babel" ,sbcl-babel)
5817 ("usocket" ,sbcl-usocket)
5818 ("fast-http" ,sbcl-fast-http)
5819 ("quri" ,sbcl-quri)
5820 ("fast-io" ,sbcl-fast-io)
5821 ("chunga" ,sbcl-chunga)
5822 ("cl-ppcre" ,sbcl-cl-ppcre)
5823 ("cl-cookie" ,sbcl-cl-cookie)
5824 ("trivial-mimes" ,sbcl-trivial-mimes)
5825 ("chipz" ,sbcl-chipz)
5826 ("cl-base64" ,sbcl-cl-base64)
5827 ("cl-reexport" ,sbcl-cl-reexport)
5828 ("cl+ssl" ,sbcl-cl+ssl)
5829 ("bordeaux-threads" ,sbcl-bordeaux-threads)
5830 ("alexandria" ,sbcl-alexandria)))
5831 (native-inputs
5832 `(("prove" ,sbcl-prove)
5833 ("prove-asdf" ,sbcl-prove-asdf)
5834 ("lack-request" ,sbcl-lack-request)
5835 ("clack" ,sbcl-clack)
5836 ("babel" ,sbcl-babel)
5837 ("alexandria" ,sbcl-alexandria)
5838 ("cl-ppcre" ,sbcl-cl-ppcre)
5839 ("local-time" ,sbcl-local-time)
5840 ("trivial-features" ,sbcl-trivial-features)))
5841 (arguments
5842 ;; TODO: Circular dependency: tests depend on clack-test which depends on dexador.
5843 `(#:tests? #f
5844 #:phases
5845 (modify-phases %standard-phases
5846 (add-after 'unpack 'fix-permissions
5847 (lambda _ (make-file-writable "t/data/test.gz") #t)))))
5848 (synopsis "Yet another HTTP client for Common Lisp")
5849 (description "Dexador is yet another HTTP client for Common Lisp with
5850 neat APIs and connection-pooling. It is meant to supersede Drakma.")
5851 (license license:expat))))
5852
5853 (define-public cl-dexador
5854 (package
5855 (inherit (sbcl-package->cl-source-package sbcl-dexador))
5856 (arguments
5857 `(#:phases
5858 ;; asdf-build-system/source has its own phases and does not inherit
5859 ;; from asdf-build-system/sbcl phases.
5860 (modify-phases %standard-phases/source
5861 ;; Already done in SBCL package.
5862 (delete 'reset-gzip-timestamps))))))
5863
5864 (define-public ecl-dexador
5865 (sbcl-package->ecl-package sbcl-dexador))
5866
5867 (define-public sbcl-lisp-namespace
5868 (let ((commit "28107cafe34e4c1c67490fde60c7f92dc610b2e0")
5869 (revision "1"))
5870 (package
5871 (name "sbcl-lisp-namespace")
5872 (build-system asdf-build-system/sbcl)
5873 (version (git-version "0.1" revision commit))
5874 (home-page "https://github.com/guicho271828/lisp-namespace")
5875 (source
5876 (origin
5877 (method git-fetch)
5878 (uri (git-reference
5879 (url home-page)
5880 (commit commit)))
5881 (file-name (git-file-name name version))
5882 (sha256
5883 (base32
5884 "1jw2wykp06z2afb9nm1lgfzll5cjlj36pnknjx614057zkkxq4iy"))))
5885 (inputs
5886 `(("alexandria" ,sbcl-alexandria)))
5887 (native-inputs
5888 `(("fiveam" ,sbcl-fiveam)))
5889 (arguments
5890 `(#:test-asd-file "lisp-namespace.test.asd"
5891 ;; XXX: Component LISP-NAMESPACE-ASD::LISP-NAMESPACE.TEST not found
5892 #:tests? #f))
5893 (synopsis "LISP-N, or extensible namespaces in Common Lisp")
5894 (description "Common Lisp already has major 2 namespaces, function
5895 namespace and value namespace (or variable namespace), but there are actually
5896 more — e.g., class namespace.
5897 This library offers macros to deal with symbols from any namespace.")
5898 (license license:llgpl))))
5899
5900 (define-public cl-lisp-namespace
5901 (sbcl-package->cl-source-package sbcl-lisp-namespace))
5902
5903 (define-public sbcl-trivial-cltl2
5904 (let ((commit "8a3bda30dc25d2f65fcf514d0eb6e6db75252c61")
5905 (revision "2"))
5906 (package
5907 (name "sbcl-trivial-cltl2")
5908 (build-system asdf-build-system/sbcl)
5909 (version (git-version "0.1.1" revision commit))
5910 (home-page "https://github.com/Zulu-Inuoe/trivial-cltl2")
5911 (source
5912 (origin
5913 (method git-fetch)
5914 (uri (git-reference
5915 (url home-page)
5916 (commit commit)))
5917 (file-name (git-file-name name version))
5918 (sha256
5919 (base32
5920 "08cnzb9rnczn4pn2zpf0587ny4wjy1mjndy885fz9pw7xrlx37ip"))))
5921 (synopsis "Simple CLtL2 compatibility layer for Common Lisp")
5922 (description "This library is a portable compatibility layer around
5923 \"Common Lisp the Language, 2nd
5924 Edition\" (@url{https://www.cs.cmu.edu/Groups/AI/html/cltl/clm/node102.html})
5925 and it exports symbols from implementation-specific packages.")
5926 (license license:llgpl))))
5927
5928 (define-public cl-trivial-cltl2
5929 (sbcl-package->cl-source-package sbcl-trivial-cltl2))
5930
5931 (define-public sbcl-introspect-environment
5932 (let ((commit "fff42f8f8fd0d99db5ad6c5812e53de7d660020b")
5933 (revision "1"))
5934 (package
5935 (name "sbcl-introspect-environment")
5936 (build-system asdf-build-system/sbcl)
5937 (version (git-version "0.1" revision commit))
5938 (home-page "https://github.com/Bike/introspect-environment")
5939 (source
5940 (origin
5941 (method git-fetch)
5942 (uri (git-reference
5943 (url home-page)
5944 (commit commit)))
5945 (file-name (git-file-name name version))
5946 (sha256
5947 (base32
5948 "1i305n0wfmpac63ni4i3vixnnkl8daw5ncxy0k3dv92krgx6qzhp"))))
5949 (native-inputs
5950 `(("fiveam" ,sbcl-fiveam)))
5951 (synopsis "Common Lisp environment introspection portability layer")
5952 (description "This library is a small interface to portable but
5953 nonstandard introspection of Common Lisp environments. It is intended to
5954 allow a bit more compile-time introspection of environments in Common Lisp.
5955
5956 Quite a bit of information is available at the time a macro or compiler-macro
5957 runs; inlining info, type declarations, that sort of thing. This information
5958 is all standard - any Common Lisp program can @code{(declare (integer x))} and
5959 such.
5960
5961 This info ought to be accessible through the standard @code{&environment}
5962 parameters, but it is not. Several implementations keep the information for
5963 their own purposes but do not make it available to user programs, because
5964 there is no standard mechanism to do so.
5965
5966 This library uses implementation-specific hooks to make information available
5967 to users. This is currently supported on SBCL, CCL, and CMUCL. Other
5968 implementations have implementations of the functions that do as much as they
5969 can and/or provide reasonable defaults.")
5970 (license license:wtfpl2))))
5971
5972 (define-public cl-introspect-environment
5973 (sbcl-package->cl-source-package sbcl-introspect-environment))
5974
5975 (define-public sbcl-type-i
5976 (let ((commit "d34440ab4ebf5a46a58deccb35950b15670e3667")
5977 (revision "2"))
5978 (package
5979 (name "sbcl-type-i")
5980 (build-system asdf-build-system/sbcl)
5981 (version (git-version "0.1" revision commit))
5982 (home-page "https://github.com/guicho271828/type-i")
5983 (source
5984 (origin
5985 (method git-fetch)
5986 (uri (git-reference
5987 (url home-page)
5988 (commit commit)))
5989 (file-name (git-file-name name version))
5990 (sha256
5991 (base32
5992 "12wsga0pwjkkr176lnjwkmmlm3ccp0n310sjj9h20lk53iyd0z69"))))
5993 (inputs
5994 `(("alexandria" ,sbcl-alexandria)
5995 ("introspect-environment" ,sbcl-introspect-environment)
5996 ("trivia.trivial" ,sbcl-trivia.trivial)))
5997 (native-inputs
5998 `(("fiveam" ,sbcl-fiveam)))
5999 (arguments
6000 `(#:test-asd-file "type-i.test.asd"))
6001 (synopsis "Type inference utility on unary predicates for Common Lisp")
6002 (description "This library tries to provide a way to detect what kind of
6003 type the given predicate is trying to check. This is different from inferring
6004 the return type of a function.")
6005 (license license:llgpl))))
6006
6007 (define-public cl-type-i
6008 (sbcl-package->cl-source-package sbcl-type-i))
6009
6010 (define-public sbcl-optima
6011 (let ((commit "373b245b928c1a5cce91a6cb5bfe5dd77eb36195")
6012 (revision "1"))
6013 (package
6014 (name "sbcl-optima")
6015 (build-system asdf-build-system/sbcl)
6016 (version (git-version "1.0" revision commit))
6017 (home-page "https://github.com/m2ym/optima")
6018 (source
6019 (origin
6020 (method git-fetch)
6021 (uri (git-reference
6022 (url home-page)
6023 (commit commit)))
6024 (file-name (git-file-name name version))
6025 (sha256
6026 (base32
6027 "1yw4ymq7ms89342kkvb3aqxgv0w38m9kd8ikdqxxzyybnkjhndal"))))
6028 (inputs
6029 `(("alexandria" ,sbcl-alexandria)
6030 ("closer-mop" ,sbcl-closer-mop)))
6031 (native-inputs
6032 `(("eos" ,sbcl-eos)))
6033 (arguments
6034 ;; XXX: Circular dependencies: tests depend on optima.ppcre which depends on optima.
6035 `(#:tests? #f
6036 #:test-asd-file "optima.test.asd"))
6037 (synopsis "Optimized pattern matching library for Common Lisp")
6038 (description "Optima is a fast pattern matching library which uses
6039 optimizing techniques widely used in the functional programming world.")
6040 (license license:expat))))
6041
6042 (define-public cl-optima
6043 (sbcl-package->cl-source-package sbcl-optima))
6044
6045 (define-public sbcl-fare-quasiquote
6046 (let ((commit "640d39a0451094071b3e093c97667b3947f43639")
6047 (revision "1"))
6048 (package
6049 (name "sbcl-fare-quasiquote")
6050 (build-system asdf-build-system/sbcl)
6051 (version (git-version "1.0.1" revision commit))
6052 (home-page "https://gitlab.common-lisp.net/frideau/fare-quasiquote")
6053 (source
6054 (origin
6055 (method git-fetch)
6056 (uri (git-reference
6057 (url (string-append "https://gitlab.common-lisp.net/frideau/"
6058 "fare-quasiquote.git"))
6059 (commit commit)))
6060 (file-name (git-file-name name version))
6061 (sha256
6062 (base32 "1g6q11l50kgija9f55lzqpcwvaq0ljiw8v1j265hnyg6nahjwjvg"))))
6063 (inputs
6064 `(("fare-utils" ,sbcl-fare-utils)))
6065 (arguments
6066 ;; XXX: Circular dependencies: Tests depend on subsystems,
6067 ;; which depend on the main systems.
6068 `(#:tests? #f
6069 #:phases
6070 (modify-phases %standard-phases
6071 ;; XXX: Require 1.0.0 version of fare-utils, and we package some
6072 ;; commits after 1.0.0.5, but ASDF fails to read the
6073 ;; "-REVISION-COMMIT" part generated by Guix.
6074 (add-after 'unpack 'patch-requirement
6075 (lambda _
6076 (substitute* "fare-quasiquote.asd"
6077 (("\\(:version \"fare-utils\" \"1.0.0\"\\)")
6078 "\"fare-utils\"")))))))
6079 (synopsis "Pattern-matching friendly implementation of quasiquote")
6080 (description "The main purpose of this n+2nd reimplementation of
6081 quasiquote is enable matching of quasiquoted patterns, using Optima or
6082 Trivia.")
6083 (license license:expat))))
6084
6085 (define-public cl-fare-quasiquote
6086 (sbcl-package->cl-source-package sbcl-fare-quasiquote))
6087
6088 (define-public sbcl-fare-quasiquote-optima
6089 (package
6090 (inherit sbcl-fare-quasiquote)
6091 (name "sbcl-fare-quasiquote-optima")
6092 (inputs
6093 `(("optima" ,sbcl-optima)
6094 ("fare-quasiquote" ,sbcl-fare-quasiquote)))
6095 (arguments
6096 '(#:phases
6097 (modify-phases %standard-phases
6098 (add-after 'unpack 'patch-requirement
6099 (lambda _
6100 (substitute* "fare-quasiquote-optima.asd"
6101 (("\\(:version \"optima\" \"1\\.0\"\\)")
6102 "\"optima\""))
6103 #t)))))))
6104
6105 (define-public cl-fare-quasiquote-optima
6106 (sbcl-package->cl-source-package sbcl-fare-quasiquote-optima))
6107
6108 (define-public sbcl-fare-quasiquote-readtable
6109 (package
6110 (inherit sbcl-fare-quasiquote)
6111 (name "sbcl-fare-quasiquote-readtable")
6112 (inputs
6113 `(("fare-quasiquote" ,sbcl-fare-quasiquote)
6114 ("named-readtables" ,sbcl-named-readtables)))
6115 (description "The main purpose of this n+2nd reimplementation of
6116 quasiquote is enable matching of quasiquoted patterns, using Optima or
6117 Trivia.
6118
6119 This package uses fare-quasiquote with named-readtable.")))
6120
6121 (define-public cl-fare-quasiquote-readtable
6122 (sbcl-package->cl-source-package sbcl-fare-quasiquote-readtable))
6123
6124 (define-public sbcl-fare-quasiquote-extras
6125 (package
6126 (inherit sbcl-fare-quasiquote)
6127 (name "sbcl-fare-quasiquote-extras")
6128 (build-system asdf-build-system/sbcl)
6129 (inputs
6130 `(("fare-quasiquote-optima" ,sbcl-fare-quasiquote-optima)
6131 ("fare-quasiquote-readtable" ,sbcl-fare-quasiquote-readtable)))
6132 (arguments
6133 `(#:phases
6134 (modify-phases %standard-phases
6135 (replace 'build
6136 (lambda* (#:key outputs #:allow-other-keys)
6137 (let* ((out (assoc-ref outputs "out"))
6138 (lib (string-append out "/lib/" (%lisp-type))))
6139 (mkdir-p lib)
6140 (install-file "fare-quasiquote-extras.asd" lib)
6141 (make-file-writable
6142 (string-append lib "/fare-quasiquote-extras.asd"))
6143 #t))))))
6144 (description "This library combines @code{fare-quasiquote-readtable} and
6145 @code{fare-quasiquote-optima}.")))
6146
6147 (define-public cl-fare-quasiquote-extras
6148 (package
6149 (inherit cl-fare-quasiquote)
6150 (name "cl-fare-quasiquote-extras")
6151 (build-system asdf-build-system/source)
6152 (propagated-inputs
6153 `(("fare-quasiquote" ,cl-fare-quasiquote)
6154 ("fare-quasiquote-optima" ,cl-fare-quasiquote-optima)
6155 ("fare-quasiquote-readtable" ,cl-fare-quasiquote-readtable)))
6156 (description "This library combines @code{fare-quasiquote-readtable} and
6157 @code{fare-quasiquote-optima}.")))
6158
6159 (define-public sbcl-trivia.level0
6160 (let ((commit "37698b47a14c2007630468de7a993694ef7bd475")
6161 (revision "2"))
6162 (package
6163 (name "sbcl-trivia.level0")
6164 (build-system asdf-build-system/sbcl)
6165 (version (git-version "0.0.0" revision commit))
6166 (home-page "https://github.com/guicho271828/trivia")
6167 (source
6168 (origin
6169 (method git-fetch)
6170 (uri (git-reference
6171 (url home-page)
6172 (commit commit)))
6173 (file-name (git-file-name name version))
6174 (sha256
6175 (base32
6176 "0rsbwbw3ipxxgr6zzhci12nilq8zky475kmhz1rcxy4q8a85vn72"))))
6177 (inputs
6178 `(("alexandria" ,sbcl-alexandria)))
6179 (synopsis "Pattern matching in Common Lisp")
6180 (description "Trivia is a pattern matching compiler that is compatible
6181 with Optima, another pattern matching library for Common Lisp. It is meant to
6182 be faster and more extensible than Optima.")
6183 (license license:llgpl))))
6184
6185 (define-public sbcl-trivia.level1
6186 (package
6187 (inherit sbcl-trivia.level0)
6188 (name "sbcl-trivia.level1")
6189 (inputs
6190 `(("trivia.level0" ,sbcl-trivia.level0)))
6191 (description "Trivia is a pattern matching compiler that is compatible
6192 with Optima, another pattern matching library for Common Lisp. It is meant to
6193 be faster and more extensible than Optima.
6194
6195 This system contains the core patterns of Trivia.")))
6196
6197 (define-public sbcl-trivia.level2
6198 (package
6199 (inherit sbcl-trivia.level0)
6200 (name "sbcl-trivia.level2")
6201 (inputs
6202 `(("trivia.level1" ,sbcl-trivia.level1)
6203 ("lisp-namespace" ,sbcl-lisp-namespace)
6204 ("trivial-cltl2" ,sbcl-trivial-cltl2)
6205 ("closer-mop" ,sbcl-closer-mop)))
6206 (description "Trivia is a pattern matching compiler that is compatible
6207 with Optima, another pattern matching library for Common Lisp. It is meant to
6208 be faster and more extensible than Optima.
6209
6210 This system contains a non-optimized pattern matcher compatible with Optima,
6211 with extensible optimizer interface.")))
6212
6213 (define-public sbcl-trivia.trivial
6214 (package
6215 (inherit sbcl-trivia.level0)
6216 (name "sbcl-trivia.trivial")
6217 (inputs
6218 `(("trivia.level2" ,sbcl-trivia.level2)))
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 base level system of Trivia with a trivial optimizer.")))
6224
6225 (define-public sbcl-trivia.balland2006
6226 (package
6227 (inherit sbcl-trivia.level0)
6228 (name "sbcl-trivia.balland2006")
6229 (inputs
6230 `(("trivia.trivial" ,sbcl-trivia.trivial)
6231 ("iterate" ,sbcl-iterate)
6232 ("type-i" ,sbcl-type-i)
6233 ("alexandria" ,sbcl-alexandria)))
6234 (arguments
6235 ;; Tests are done in trivia itself.
6236 `(#:tests? #f))
6237 (description "Trivia is a pattern matching compiler that is compatible
6238 with Optima, another pattern matching library for Common Lisp. It is meant to
6239 be faster and more extensible than Optima.
6240
6241 This system contains the base level system of Trivia with a trivial optimizer.")))
6242
6243 (define-public sbcl-trivia.ppcre
6244 (package
6245 (inherit sbcl-trivia.level0)
6246 (name "sbcl-trivia.ppcre")
6247 (inputs
6248 `(("trivia.trivial" ,sbcl-trivia.trivial)
6249 ("cl-ppcre" ,sbcl-cl-ppcre)))
6250 (description "Trivia is a pattern matching compiler that is compatible
6251 with Optima, another pattern matching library for Common Lisp. It is meant to
6252 be faster and more extensible than Optima.
6253
6254 This system contains the PPCRE extension.")))
6255
6256 (define-public sbcl-trivia.quasiquote
6257 (package
6258 (inherit sbcl-trivia.level0)
6259 (name "sbcl-trivia.quasiquote")
6260 (inputs
6261 `(("trivia.trivial" ,sbcl-trivia.trivial)
6262 ("fare-quasiquote" ,sbcl-fare-quasiquote)
6263 ("fare-quasiquote-readtable" ,sbcl-fare-quasiquote-readtable)))
6264 (description "Trivia is a pattern matching compiler that is compatible
6265 with Optima, another pattern matching library for Common Lisp. It is meant to
6266 be faster and more extensible than Optima.
6267
6268 This system contains the fare-quasiquote extension.")))
6269
6270 (define-public sbcl-trivia.cffi
6271 (package
6272 (inherit sbcl-trivia.level0)
6273 (name "sbcl-trivia.cffi")
6274 (inputs
6275 `(("cffi" ,sbcl-cffi)
6276 ("trivia.trivial" ,sbcl-trivia.trivial)))
6277 (description "Trivia is a pattern matching compiler that is compatible
6278 with Optima, another pattern matching library for Common Lisp. It is meant to
6279 be faster and more extensible than Optima.
6280
6281 This system contains the CFFI foreign slot access extension.")))
6282
6283 (define-public sbcl-trivia
6284 (package
6285 (inherit sbcl-trivia.level0)
6286 (name "sbcl-trivia")
6287 (inputs
6288 `(("trivia.balland2006" ,sbcl-trivia.balland2006)))
6289 (native-inputs
6290 `(("fiveam" ,sbcl-fiveam)
6291 ("trivia.ppcre" ,sbcl-trivia.ppcre)
6292 ("trivia.quasiquote" ,sbcl-trivia.quasiquote)
6293 ("trivia.cffi" ,sbcl-trivia.cffi)
6294 ("optima" ,sbcl-optima)))
6295 (arguments
6296 `(#:test-asd-file "trivia.test.asd"))
6297 (description "Trivia is a pattern matching compiler that is compatible
6298 with Optima, another pattern matching library for Common Lisp. It is meant to
6299 be faster and more extensible than Optima.")))
6300
6301 (define-public cl-trivia
6302 (sbcl-package->cl-source-package sbcl-trivia))
6303
6304 (define-public sbcl-mk-string-metrics
6305 (package
6306 (name "sbcl-mk-string-metrics")
6307 (version "0.1.2")
6308 (home-page "https://github.com/cbaggers/mk-string-metrics/")
6309 (source (origin
6310 (method git-fetch)
6311 (uri (git-reference
6312 (url home-page)
6313 (commit version)))
6314 (sha256
6315 (base32 "0bg0bv2mfd4k0g3x72x563hvmrx18xavaffr6xk5rh4if5j7kcf6"))
6316 (file-name (git-file-name name version))))
6317 (build-system asdf-build-system/sbcl)
6318 (synopsis "Calculate various string metrics efficiently in Common Lisp")
6319 (description "This library implements efficient algorithms that calculate
6320 various string metrics in Common Lisp:
6321
6322 @itemize
6323 @item Damerau-Levenshtein distance
6324 @item Hamming distance
6325 @item Jaccard similarity coefficient
6326 @item Jaro distance
6327 @item Jaro-Winkler distance
6328 @item Levenshtein distance
6329 @item Normalized Damerau-Levenshtein distance
6330 @item Normalized Levenshtein distance
6331 @item Overlap coefficient
6332 @end itemize\n")
6333 (license license:x11)))
6334
6335 (define-public cl-mk-string-metrics
6336 (sbcl-package->cl-source-package sbcl-mk-string-metrics))
6337
6338 (define-public sbcl-cl-str
6339 (let ((commit "eb480f283e28802d67b35bf916506701152f9a2a"))
6340 (package
6341 (name "sbcl-cl-str")
6342 (version (git-version "0.17" "1" commit))
6343 (home-page "https://github.com/vindarel/cl-str")
6344 (source (origin
6345 (method git-fetch)
6346 (uri (git-reference
6347 (url home-page)
6348 (commit commit)))
6349 (sha256
6350 (base32 "1hpq5m8zjjnzns370zy27z2vcm1p8n2ka5ij2x67gyc9amz9vla0"))
6351 (file-name (git-file-name name version))))
6352 (build-system asdf-build-system/sbcl)
6353 (inputs
6354 `(("cl-ppcre" ,sbcl-cl-ppcre)
6355 ("cl-ppcre-unicode" ,sbcl-cl-ppcre-unicode)
6356 ("cl-change-case" ,sbcl-cl-change-case)))
6357 (native-inputs
6358 `(("prove" ,sbcl-prove)
6359 ("prove-asdf" ,sbcl-prove-asdf)))
6360 (arguments
6361 `(#:asd-file "str.asd"
6362 #:asd-system-name "str"
6363 #:test-asd-file "str.test.asd"))
6364 (synopsis "Modern, consistent and terse Common Lisp string manipulation library")
6365 (description "A modern and consistent Common Lisp string manipulation
6366 library that focuses on modernity, simplicity and discoverability:
6367 @code{(str:trim s)} instead of @code{(string-trim '(#\\Space ...) s)}), or
6368 @code{str:concat strings} instead of an unusual format construct; one
6369 discoverable library instead of many; consistency and composability, where
6370 @code{s} is always the last argument, which makes it easier to feed pipes and
6371 arrows.")
6372 (license license:expat))))
6373
6374 (define-public cl-str
6375 (sbcl-package->cl-source-package sbcl-cl-str))
6376
6377 (define-public sbcl-cl-xmlspam
6378 (let ((commit "ea06abcca2a73a9779bcfb09081e56665f94e22a"))
6379 (package
6380 (name "sbcl-cl-xmlspam")
6381 (build-system asdf-build-system/sbcl)
6382 (version (git-version "0.0.0" "1" commit))
6383 (home-page "https://github.com/rogpeppe/cl-xmlspam")
6384 (source
6385 (origin
6386 (method git-fetch)
6387 (uri (git-reference
6388 (url home-page)
6389 (commit commit)))
6390 (file-name (string-append name "-" version))
6391 (sha256
6392 (base32
6393 "0w4rqvrgdgk3fwfq3kx4r7wwdr2bv3b6n3bdqwsiriw9psqzpz2s"))))
6394 (inputs
6395 `(("cxml" ,sbcl-cxml)
6396 ("cl-ppcre" ,sbcl-cl-ppcre)))
6397 (synopsis "Concise, regexp-like pattern matching on streaming XML for Common Lisp")
6398 (description "CXML does an excellent job at parsing XML elements, but what
6399 do you do when you have a XML file that's larger than you want to fit in
6400 memory, and you want to extract some information from it? Writing code to deal
6401 with SAX events, or even using Klacks, quickly becomes tedious.
6402 @code{cl-xmlspam} (for XML Stream PAttern Matcher) is designed to make it easy
6403 to write code that mirrors the structure of the XML that it's parsing. It
6404 also makes it easy to shift paradigms when necessary - the usual Lisp control
6405 constructs can be used interchangeably with pattern matching, and the full
6406 power of CXML is available when necessary.")
6407 (license license:bsd-3))))
6408
6409 ;; TODO: dbus uses ASDF's package-inferred-system which is not supported by
6410 ;; asdf-build-system/sbcl as of 2019-08-02. We should fix
6411 ;; asdf-build-system/sbcl.
6412 (define-public cl-dbus
6413 (let ((commit "24b452df3a45ca5dc95015500f34baad175c981a")
6414 (revision "1"))
6415 (package
6416 (name "cl-dbus")
6417 (build-system asdf-build-system/source)
6418 (version (git-version "20190408" revision commit))
6419 (home-page "https://github.com/death/dbus")
6420 (source
6421 (origin
6422 (method git-fetch)
6423 (uri (git-reference
6424 (url home-page)
6425 (commit commit)))
6426 (file-name (git-file-name name version))
6427 (sha256
6428 (base32
6429 "0fw2q866yddbf23nk9pxphm9gsasx35vjyss82xzvndnjmzlqfl5"))))
6430 ;; Inputs must be propagated or else packages depending on this won't
6431 ;; have the necessary packages.
6432 (propagated-inputs
6433 `(("alexandria" ,sbcl-alexandria)
6434 ("trivial-garbage" ,sbcl-trivial-garbage)
6435 ("babel" ,sbcl-babel)
6436 ("iolib" ,sbcl-iolib)
6437 ("ieee-floats" ,sbcl-ieee-floats)
6438 ("flexi-streams" ,sbcl-flexi-streams)
6439 ("cl-xmlspam" ,sbcl-cl-xmlspam)
6440 ("ironclad" ,sbcl-ironclad)))
6441 (synopsis "D-Bus client library for Common Lisp")
6442 (description "This is a Common Lisp library that publishes D-Bus
6443 objects as well as send and notify other objects connected to a bus.")
6444 (license license:bsd-2))))
6445
6446 (define-public sbcl-cl-hooks
6447 (let ((commit "5b638083f3b4f1221a52631d9c8a0a265565cac7")
6448 (revision "1"))
6449 (package
6450 (name "sbcl-cl-hooks")
6451 (build-system asdf-build-system/sbcl)
6452 (version (git-version "0.2.1" revision commit))
6453 (home-page "https://github.com/scymtym/architecture.hooks")
6454 (source
6455 (origin
6456 (method git-fetch)
6457 (uri (git-reference
6458 (url home-page)
6459 (commit commit)))
6460 (file-name (git-file-name name version))
6461 (sha256
6462 (base32
6463 "0bg3l0a28lw5gqqjp6p6b5nhwqk46sgkb7184w5qbfngw1hk8x9y"))))
6464 (inputs
6465 `(("alexandria" ,sbcl-alexandria)
6466 ("let-plus" ,sbcl-let-plus)
6467 ("trivial-garbage" ,sbcl-trivial-garbage)
6468 ("closer-mop" ,sbcl-closer-mop)))
6469 (native-inputs
6470 `(("fiveam" ,sbcl-fiveam)))
6471 (synopsis "Hooks extension point mechanism (as in Emacs) for Common Lisp")
6472 (description "A hook, in the present context, is a certain kind of
6473 extension point in a program that allows interleaving the execution of
6474 arbitrary code with the execution of a the program without introducing any
6475 coupling between the two. Hooks are used extensively in the extensible editor
6476 Emacs.
6477
6478 In the Common LISP Object System (CLOS), a similar kind of extensibility is
6479 possible using the flexible multi-method dispatch mechanism. It may even seem
6480 that the concept of hooks does not provide any benefits over the possibilities
6481 of CLOS. However, there are some differences:
6482
6483 @itemize
6484
6485 @item There can be only one method for each combination of specializers and
6486 qualifiers. As a result this kind of extension point cannot be used by
6487 multiple extensions independently.
6488 @item Removing code previously attached via a @code{:before}, @code{:after} or
6489 @code{:around} method can be cumbersome.
6490 @item There could be other or even multiple extension points besides @code{:before}
6491 and @code{:after} in a single method.
6492 @item Attaching codes to individual objects using eql specializers can be
6493 cumbersome.
6494 @item Introspection of code attached a particular extension point is
6495 cumbersome since this requires enumerating and inspecting the methods of a
6496 generic function.
6497 @end itemize
6498
6499 This library tries to complement some of these weaknesses of method-based
6500 extension-points via the concept of hooks.")
6501 (license license:llgpl))))
6502
6503 (define-public cl-hooks
6504 (sbcl-package->cl-source-package sbcl-cl-hooks))
6505
6506 (define-public ecl-cl-hooks
6507 (sbcl-package->ecl-package sbcl-cl-hooks))
6508
6509 (define-public sbcl-s-sysdeps
6510 ;; No release since 2013.
6511 (let ((commit "9aa23bbdceb24bcdbe0e7c39fa1901858f823106")
6512 (revision "2"))
6513 (package
6514 (name "sbcl-s-sysdeps")
6515 (build-system asdf-build-system/sbcl)
6516 (version (git-version "1" revision commit))
6517 (home-page "https://github.com/svenvc/s-sysdeps")
6518 (source
6519 (origin
6520 (method git-fetch)
6521 (uri (git-reference
6522 (url home-page)
6523 (commit commit)))
6524 (file-name (git-file-name name version))
6525 (sha256
6526 (base32
6527 "1fh8r7kf8s3hvqdg6b71b8p7w3v2kkga9bw8j3qqdxhzr6anpm0b"))))
6528 (inputs
6529 `(("bordeaux-threads" ,sbcl-bordeaux-threads)
6530 ("usocket" ,sbcl-usocket)
6531 ("usocket-server" ,sbcl-usocket-server)))
6532 (synopsis "Common Lisp abstraction layer over platform dependent functionality")
6533 (description "@code{s-sysdeps} is an abstraction layer over platform
6534 dependent functionality. This simple package is used as a building block in a
6535 number of other open source projects.
6536
6537 @code{s-sysdeps} abstracts:
6538
6539 @itemize
6540 @item managing processes,
6541 @item implementing a standard TCP/IP server,
6542 @item opening a client TCP/IP socket stream,
6543 @item working with process locks.
6544 @end itemize\n")
6545 (license license:llgpl))))
6546
6547 (define-public cl-s-sysdeps
6548 (sbcl-package->cl-source-package sbcl-s-sysdeps))
6549
6550 (define-public ecl-s-sysdeps
6551 (sbcl-package->ecl-package sbcl-s-sysdeps))
6552
6553 (define-public sbcl-cl-prevalence
6554 (let ((commit "da3ed6c4594b1c2fca90c178c1993973c4bf16c9")
6555 (revision "2"))
6556 (package
6557 (name "sbcl-cl-prevalence")
6558 (build-system asdf-build-system/sbcl)
6559 (version (git-version "5" revision commit))
6560 (home-page "https://github.com/40ants/cl-prevalence")
6561 (source
6562 (origin
6563 (method git-fetch)
6564 (uri (git-reference
6565 (url home-page)
6566 (commit commit)))
6567 (file-name (git-file-name name version))
6568 (sha256
6569 (base32
6570 "0bq905hv1626dl6b7s0zn4lbdh608g1pxaljl1fda6pwp9hmj95a"))))
6571 (inputs
6572 `(("s-sysdeps" ,sbcl-s-sysdeps)
6573 ("s-xml" ,sbcl-s-xml)))
6574 (synopsis "Implementation of object prevalence for Common Lisp")
6575 (description "This Common Lisp library implements object prevalence (see
6576 @url{https://en.wikipedia.org/wiki/System_prevalence}). It allows
6577 for (de)serializing to and from s-exps as well as XML. Serialization of arbitrary
6578 classes and cyclic data structures are supported.")
6579 (license license:llgpl))))
6580
6581 (define-public cl-prevalence
6582 (sbcl-package->cl-source-package sbcl-cl-prevalence))
6583
6584 (define-public ecl-cl-prevalence
6585 (sbcl-package->ecl-package sbcl-cl-prevalence))
6586
6587 (define-public sbcl-series
6588 (let ((commit "da9061b336119d1e5214aff9117171d494d5a58a")
6589 (revision "1"))
6590 (package
6591 (name "sbcl-series")
6592 (version (git-version "2.2.11" revision commit))
6593 (source
6594 (origin
6595 (method git-fetch)
6596 (uri (git-reference
6597 (url "git://git.code.sf.net/p/series/series")
6598 (commit commit)))
6599 (file-name (git-file-name name version))
6600 (sha256
6601 (base32
6602 "07hk2lhfx42zk018pxqvn4gs77vd4n4g8m4xxbqaxgca76mifwfw"))))
6603 (build-system asdf-build-system/sbcl)
6604 (arguments
6605 ;; Disable the tests, they are apparently buggy and I didn't find
6606 ;; a simple way to make them run and pass.
6607 '(#:tests? #f))
6608 (synopsis "Series data structure for Common Lisp")
6609 (description
6610 "This Common Lisp library provides a series data structure much like
6611 a sequence, with similar kinds of operations. The difference is that in many
6612 situations, operations on series may be composed functionally and yet execute
6613 iteratively, without the need to construct intermediate series values
6614 explicitly. In this manner, series provide both the clarity of a functional
6615 programming style and the efficiency of an iterative programming style.")
6616 (home-page "http://series.sourceforge.net/")
6617 (license license:expat))))
6618
6619 (define-public cl-series
6620 (sbcl-package->cl-source-package sbcl-series))
6621
6622 (define-public ecl-series
6623 (sbcl-package->ecl-package sbcl-series))
6624
6625 (define-public sbcl-periods
6626 (let ((commit "983d4a57325db3c8def942f163133cec5391ec28")
6627 (revision "1"))
6628 (package
6629 (name "sbcl-periods")
6630 (version (git-version "0.0.2" revision commit))
6631 (source
6632 (origin
6633 (method git-fetch)
6634 (uri (git-reference
6635 (url "https://github.com/jwiegley/periods.git")
6636 (commit commit)))
6637 (file-name (git-file-name name version))
6638 (sha256
6639 (base32
6640 "0z30jr3lxz3cmi019fsl4lgcgwf0yqpn95v9zkkkwgymdrkd4lga"))))
6641 (build-system asdf-build-system/sbcl)
6642 (inputs
6643 `(("local-time" ,sbcl-local-time)))
6644 (synopsis "Common Lisp library for manipulating date/time objects")
6645 (description
6646 "Periods is a Common Lisp library providing a set of utilities for
6647 manipulating times, distances between times, and both contiguous and
6648 discontiguous ranges of time.")
6649 (home-page "https://github.com/jwiegley/periods")
6650 (license license:bsd-3))))
6651
6652 (define-public cl-periods
6653 (sbcl-package->cl-source-package sbcl-periods))
6654
6655 (define-public ecl-periods
6656 (sbcl-package->ecl-package sbcl-periods))
6657
6658 (define-public sbcl-periods-series
6659 (package
6660 (inherit sbcl-periods)
6661 (name "sbcl-periods-series")
6662 (inputs
6663 `(("periods" ,sbcl-periods)
6664 ("series" ,sbcl-series)))
6665 (arguments
6666 '(#:asd-file "periods-series.asd"
6667 #:asd-system-name "periods-series"))
6668 (description
6669 "Periods-series is an extension of the periods Common Lisp library
6670 providing functions compatible with the series Common Lisp library.")))
6671
6672 (define-public cl-periods-series
6673 (sbcl-package->cl-source-package sbcl-periods-series))
6674
6675 (define-public ecl-periods-series
6676 (sbcl-package->ecl-package sbcl-periods-series))
6677
6678 (define-public sbcl-metatilities-base
6679 (let ((commit "6eaa9e3ff0939a93a92109dd0fcd218de85417d5")
6680 (revision "1"))
6681 (package
6682 (name "sbcl-metatilities-base")
6683 (version (git-version "0.6.6" revision commit))
6684 (source
6685 (origin
6686 (method git-fetch)
6687 (uri (git-reference
6688 (url "https://github.com/gwkkwg/metatilities-base.git")
6689 (commit commit)))
6690 (file-name (git-file-name name version))
6691 (sha256
6692 (base32
6693 "0xpa86pdzlnf4v5g64j3ifaplx71sx2ha8b7vvakswi652679ma0"))))
6694 (build-system asdf-build-system/sbcl)
6695 (native-inputs
6696 `(("lift" ,sbcl-lift)))
6697 (synopsis "Core of the metatilities Common Lisp library")
6698 (description
6699 "Metatilities-base is the core of the metatilities Common Lisp library
6700 which implements a set of utilities.")
6701 (home-page "https://common-lisp.net/project/metatilities-base/")
6702 (license license:expat))))
6703
6704 (define-public cl-metatilities-base
6705 (sbcl-package->cl-source-package sbcl-metatilities-base))
6706
6707 (define-public ecl-metatilities-base
6708 (sbcl-package->ecl-package sbcl-metatilities-base))
6709
6710 (define-public sbcl-cl-containers
6711 (let ((commit "3d1df53c22403121bffb5d553cf7acb1503850e7")
6712 (revision "3"))
6713 (package
6714 (name "sbcl-cl-containers")
6715 (version (git-version "0.12.1" revision commit))
6716 (source
6717 (origin
6718 (method git-fetch)
6719 (uri (git-reference
6720 (url "https://github.com/gwkkwg/cl-containers.git")
6721 (commit commit)))
6722 (file-name (git-file-name name version))
6723 (sha256
6724 (base32
6725 "18s6jfq11n8nv9k4biz32pm1s7y9zl054ry1gmdbcf39nisy377y"))))
6726 (build-system asdf-build-system/sbcl)
6727 (native-inputs
6728 `(("lift" ,sbcl-lift)))
6729 (inputs
6730 `(("metatilities-base" ,sbcl-metatilities-base)))
6731 (arguments
6732 '(#:phases
6733 (modify-phases %standard-phases
6734 (add-after 'unpack 'relax-version-checks
6735 (lambda _
6736 (substitute* "cl-containers.asd"
6737 (("\\(:version \"metatilities-base\" \"0\\.6\\.6\"\\)")
6738 "\"metatilities-base\""))
6739 (substitute* "cl-containers-test.asd"
6740 (("\\(:version \"lift\" \"1\\.7\\.0\"\\)")
6741 "\"lift\""))
6742 #t)))))
6743 (synopsis "Container library for Common Lisp")
6744 (description
6745 "Common Lisp ships with a set of powerful built in data structures
6746 including the venerable list, full featured arrays, and hash-tables.
6747 CL-containers enhances and builds on these structures by adding containers
6748 that are not available in native Lisp (for example: binary search trees,
6749 red-black trees, sparse arrays and so on), and by providing a standard
6750 interface so that they are simpler to use and so that changing design
6751 decisions becomes significantly easier.")
6752 (home-page "https://common-lisp.net/project/cl-containers/")
6753 (license license:expat))))
6754
6755 (define-public cl-containers
6756 (sbcl-package->cl-source-package sbcl-cl-containers))
6757
6758 (define-public ecl-cl-containers
6759 (sbcl-package->ecl-package sbcl-cl-containers))
6760
6761 (define-public sbcl-xlunit
6762 (let ((commit "3805d34b1d8dc77f7e0ee527a2490194292dd0fc")
6763 (revision "1"))
6764 (package
6765 (name "sbcl-xlunit")
6766 (version (git-version "0.6.3" revision commit))
6767 (source
6768 (origin
6769 (method git-fetch)
6770 (uri (git-reference
6771 (url "http://git.kpe.io/xlunit.git")
6772 (commit commit)))
6773 (file-name (git-file-name name version))
6774 (sha256
6775 (base32
6776 "0argfmp9nghs4sihyj3f8ch9qfib2b7ll07v5m9ziajgzsfl5xw3"))))
6777 (build-system asdf-build-system/sbcl)
6778 (arguments
6779 '(#:phases
6780 (modify-phases %standard-phases
6781 (add-after 'unpack 'fix-tests
6782 (lambda _
6783 (substitute* "xlunit.asd"
6784 ((" :force t") ""))
6785 #t)))))
6786 (synopsis "Unit testing package for Common Lisp")
6787 (description
6788 "The XLUnit package is a toolkit for building test suites. It is based
6789 on the XPTest package by Craig Brozensky and the JUnit package by Kent Beck.")
6790 (home-page "http://quickdocs.org/xlunit/")
6791 (license license:bsd-3))))
6792
6793 (define-public cl-xlunit
6794 (sbcl-package->cl-source-package sbcl-xlunit))
6795
6796 (define-public ecl-xlunit
6797 (sbcl-package->ecl-package sbcl-xlunit))
6798
6799 (define-public sbcl-fprog
6800 (let ((commit "7016d1a98215f82605d1c158e7a16504ca1f4636")
6801 (revision "1"))
6802 (package
6803 (name "sbcl-fprog")
6804 (version (git-version "1.0.0" revision commit))
6805 (source
6806 (origin
6807 (method git-fetch)
6808 (uri (git-reference
6809 (url "https://github.com/jwiegley/cambl.git")
6810 (commit commit)))
6811 (file-name (git-file-name name version))
6812 (sha256
6813 (base32
6814 "103mry04j2k9vznsxm7wcvccgxkil92cdrv52miwcmxl8daa4jiz"))))
6815 (build-system asdf-build-system/sbcl)
6816 (synopsis "Functional programming utilities for Common Lisp")
6817 (description
6818 "@code{fprog} is a Common Lisp library allowing iteration over
6819 immutable lists sharing identical sublists.")
6820 (home-page "https://github.com/jwiegley/cambl")
6821 (license license:bsd-3))))
6822
6823 (define-public cl-fprog
6824 (sbcl-package->cl-source-package sbcl-fprog))
6825
6826 (define-public ecl-fprog
6827 (sbcl-package->ecl-package sbcl-fprog))
6828
6829 (define-public sbcl-cambl
6830 (let ((commit "7016d1a98215f82605d1c158e7a16504ca1f4636")
6831 (revision "1"))
6832 (package
6833 (inherit sbcl-fprog)
6834 (name "sbcl-cambl")
6835 (version (git-version "4.0.0" revision commit))
6836 (native-inputs
6837 `(("xlunit" ,sbcl-xlunit)))
6838 (inputs
6839 `(("alexandria" ,sbcl-alexandria)
6840 ("cl-containers" ,sbcl-cl-containers)
6841 ("local-time" ,sbcl-local-time)
6842 ("periods" ,sbcl-periods)
6843 ("fprog" ,sbcl-fprog)))
6844 (synopsis "Commoditized amounts and balances for Common Lisp")
6845 (description
6846 "CAMBL is a Common Lisp library providing a convenient facility for
6847 working with commoditized values. It does not allow compound units (and so is
6848 not suited for scientific operations) but does work rather nicely for the
6849 purpose of financial calculations."))))
6850
6851 (define-public cl-cambl
6852 (sbcl-package->cl-source-package sbcl-cambl))
6853
6854 (define-public ecl-cambl
6855 (sbcl-package->ecl-package sbcl-cambl))
6856
6857 (define-public sbcl-cl-ledger
6858 (let ((commit "08e0be41795e804cd36142e51756ad0b1caa377b")
6859 (revision "1"))
6860 (package
6861 (name "sbcl-cl-ledger")
6862 (version (git-version "4.0.0" revision commit))
6863 (source
6864 (origin
6865 (method git-fetch)
6866 (uri (git-reference
6867 (url "https://github.com/ledger/cl-ledger.git")
6868 (commit commit)))
6869 (file-name (git-file-name name version))
6870 (sha256
6871 (base32
6872 "1via0qf6wjcyxnfbmfxjvms0ik9j8rqbifgpmnhrzvkhrq9pv8h1"))))
6873 (build-system asdf-build-system/sbcl)
6874 (inputs
6875 `(("cambl" ,sbcl-cambl)
6876 ("cl-ppcre" ,sbcl-cl-ppcre)
6877 ("local-time" ,sbcl-local-time)
6878 ("periods-series" ,sbcl-periods-series)))
6879 (arguments
6880 '(#:phases
6881 (modify-phases %standard-phases
6882 (add-after 'unpack 'fix-system-definition
6883 (lambda _
6884 (substitute* "cl-ledger.asd"
6885 ((" :build-operation program-op") "")
6886 ((" :build-pathname \"cl-ledger\"") "")
6887 ((" :entry-point \"ledger::main\"") ""))
6888 #t)))))
6889 (synopsis "Common Lisp port of the Ledger accounting system")
6890 (description
6891 "CL-Ledger is a Common Lisp port of the Ledger double-entry accounting
6892 system.")
6893 (home-page "https://github.com/ledger/cl-ledger")
6894 (license license:bsd-3))))
6895
6896 (define-public cl-ledger
6897 (sbcl-package->cl-source-package sbcl-cl-ledger))
6898
6899 (define-public ecl-cl-ledger
6900 (sbcl-package->ecl-package sbcl-cl-ledger))
6901
6902 (define-public sbcl-bst
6903 (let ((commit "34f9c7e8e0a9f2c952fe310ab36cb630d5d9c15a")
6904 (revision "1"))
6905 (package
6906 (name "sbcl-bst")
6907 (version (git-version "1.1" revision commit))
6908 (source
6909 (origin
6910 (method git-fetch)
6911 (uri (git-reference
6912 (url "https://github.com/glv2/bst.git")
6913 (commit commit)))
6914 (file-name (git-file-name name version))
6915 (sha256
6916 (base32
6917 "1amxns7hvvh4arwbh8ciwfzplg127vh37dnbamv1m1kmmnmihfc8"))))
6918 (build-system asdf-build-system/sbcl)
6919 (native-inputs
6920 `(("alexandria" ,sbcl-alexandria)
6921 ("fiveam" ,sbcl-fiveam)))
6922 (synopsis "Binary search tree for Common Lisp")
6923 (description
6924 "BST is a Common Lisp library for working with binary search trees that
6925 can contain any kind of values.")
6926 (home-page "https://github.com/glv2/bst")
6927 (license license:gpl3))))
6928
6929 (define-public cl-bst
6930 (sbcl-package->cl-source-package sbcl-bst))
6931
6932 (define-public ecl-bst
6933 (sbcl-package->ecl-package sbcl-bst))
6934
6935 (define-public sbcl-cl-octet-streams
6936 (package
6937 (name "sbcl-cl-octet-streams")
6938 (version "1.0")
6939 (source
6940 (origin
6941 (method git-fetch)
6942 (uri (git-reference
6943 (url "https://github.com/glv2/cl-octet-streams.git")
6944 (commit (string-append "v" version))))
6945 (file-name (git-file-name name version))
6946 (sha256
6947 (base32
6948 "1d7mn6ydv0j2x4r7clpc9ijjwrnfpxmvhifv8n5j7jh7s744sf8d"))))
6949 (build-system asdf-build-system/sbcl)
6950 (native-inputs
6951 `(("fiveam" ,sbcl-fiveam)))
6952 (inputs
6953 `(("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
6954 (synopsis "In-memory octet streams for Common Lisp")
6955 (description
6956 "CL-octet-streams is a library implementing in-memory octet
6957 streams for Common Lisp. It was inspired by the trivial-octet-streams and
6958 cl-plumbing libraries.")
6959 (home-page "https://github.com/glv2/cl-octet-streams")
6960 (license license:gpl3+)))
6961
6962 (define-public cl-octet-streams
6963 (sbcl-package->cl-source-package sbcl-cl-octet-streams))
6964
6965 (define-public ecl-cl-octet-streams
6966 (sbcl-package->ecl-package sbcl-cl-octet-streams))
6967
6968 (define-public sbcl-lzlib
6969 (let ((commit "0de1db7129fef9a58a059d35a2fa2ecfc5b47b47")
6970 (revision "1"))
6971 (package
6972 (name "sbcl-lzlib")
6973 (version (git-version "1.0" revision commit))
6974 (source
6975 (origin
6976 (method git-fetch)
6977 (uri (git-reference
6978 (url "https://github.com/glv2/cl-lzlib.git")
6979 (commit commit)))
6980 (file-name (git-file-name name version))
6981 (sha256
6982 (base32
6983 "12ny7vj52fgnd8hb8fc8mry92vq4c1x72x2350191m4476j95clz"))))
6984 (build-system asdf-build-system/sbcl)
6985 (native-inputs
6986 `(("fiveam" ,sbcl-fiveam)))
6987 (inputs
6988 `(("cffi" ,sbcl-cffi)
6989 ("cl-octet-streams" ,sbcl-cl-octet-streams)
6990 ("lzlib" ,lzlib)))
6991 (arguments
6992 '(#:phases
6993 (modify-phases %standard-phases
6994 (add-after 'unpack 'fix-paths
6995 (lambda* (#:key inputs #:allow-other-keys)
6996 (substitute* "src/lzlib.lisp"
6997 (("liblz\\.so")
6998 (string-append (assoc-ref inputs "lzlib") "/lib/liblz.so")))
6999 #t)))))
7000 (synopsis "Common Lisp library for lzip (de)compression")
7001 (description
7002 "This Common Lisp library provides functions for lzip (LZMA)
7003 compression/decompression using bindings to the lzlib C library.")
7004 (home-page "https://github.com/glv2/cl-lzlib")
7005 (license license:gpl3+))))
7006
7007 (define-public cl-lzlib
7008 (sbcl-package->cl-source-package sbcl-lzlib))
7009
7010 (define-public ecl-lzlib
7011 (sbcl-package->ecl-package sbcl-lzlib))
7012
7013 (define-public sbcl-chanl
7014 (let ((commit "56e90a126c78b39bb621a01585e8d3b985238e8c")
7015 (revision "1"))
7016 (package
7017 (name "sbcl-chanl")
7018 (version (git-version "0.4.1" revision commit))
7019 (source
7020 (origin
7021 (method git-fetch)
7022 (uri (git-reference
7023 (url "https://github.com/zkat/chanl.git")
7024 (commit commit)))
7025 (file-name (git-file-name name version))
7026 (sha256
7027 (base32
7028 "0b1cf6c12qx5cy1fw2z42jgh566rp3l8nv5qf0qqc569s7bgmrh4"))))
7029 (build-system asdf-build-system/sbcl)
7030 (native-inputs
7031 `(("fiveam" ,sbcl-fiveam)))
7032 (inputs
7033 `(("bordeaux-threads" ,sbcl-bordeaux-threads)))
7034 (synopsis "Portable channel-based concurrency for Common Lisp")
7035 (description "Common Lisp library for channel-based concurrency. In
7036 a nutshell, you create various threads sequentially executing tasks you need
7037 done, and use channel objects to communicate and synchronize the state of these
7038 threads.")
7039 (home-page "https://github.com/zkat/chanl")
7040 (license (list license:expat license:bsd-3)))))
7041
7042 (define-public cl-chanl
7043 (sbcl-package->cl-source-package sbcl-chanl))
7044
7045 (define-public ecl-chanl
7046 (sbcl-package->ecl-package sbcl-chanl))
7047
7048 (define-public sbcl-cl-store
7049 (let ((commit "c787337a16ea8cf8a06227f35933a4ec774746b3")
7050 (revision "1"))
7051 (package
7052 (name "sbcl-cl-store")
7053 (version (git-version "0.8.11" revision commit))
7054 (source
7055 (origin
7056 (method git-fetch)
7057 (uri (git-reference
7058 (url "https://github.com/skypher/cl-store.git")
7059 (commit commit)))
7060 (file-name (git-file-name name version))
7061 (sha256
7062 (base32
7063 "194srkg8nrym19c6i7zbnkzshc1qhqa82m53qnkirz9fw928bqxr"))))
7064 (build-system asdf-build-system/sbcl)
7065 (native-inputs
7066 `(("rt" ,sbcl-rt)))
7067 (synopsis "Common Lisp library to serialize data")
7068 (description
7069 "CL-STORE is a portable serialization package which should give you the
7070 ability to store all Common Lisp data types into streams.")
7071 (home-page "https://www.common-lisp.net/project/cl-store/")
7072 (license license:expat))))
7073
7074 (define-public cl-store
7075 (sbcl-package->cl-source-package sbcl-cl-store))
7076
7077 (define-public ecl-cl-store
7078 (sbcl-package->ecl-package sbcl-cl-store))
7079
7080 (define-public sbcl-cl-gobject-introspection
7081 (let ((commit "7b703e2384945ea0ac39d9b766de434a08d81560")
7082 (revision "0"))
7083 (package
7084 (name "sbcl-cl-gobject-introspection")
7085 (version (git-version "0.3" revision commit))
7086 (home-page "https://github.com/andy128k/cl-gobject-introspection")
7087 (source
7088 (origin
7089 (method git-fetch)
7090 (uri (git-reference
7091 (url home-page)
7092 (commit commit)))
7093 (file-name (git-file-name name version))
7094 (sha256
7095 (base32
7096 "1zcqd2qj14f6b38vys8gr89s6cijsp9r8j43xa8lynilwva7bwyh"))))
7097 (build-system asdf-build-system/sbcl)
7098 (inputs
7099 `(("alexandria" ,sbcl-alexandria)
7100 ("cffi" ,sbcl-cffi)
7101 ("iterate" ,sbcl-iterate)
7102 ("trivial-garbage" ,sbcl-trivial-garbage)
7103 ("glib" ,glib)
7104 ("gobject-introspection" ,gobject-introspection)))
7105 (native-inputs
7106 `(("fiveam" ,sbcl-fiveam)))
7107 (arguments
7108 ;; TODO: Tests fail, see
7109 ;; https://github.com/andy128k/cl-gobject-introspection/issues/70.
7110 '(#:tests? #f
7111 #:phases
7112 (modify-phases %standard-phases
7113 (add-after (quote unpack) (quote fix-paths)
7114 (lambda* (#:key inputs #:allow-other-keys)
7115 (substitute* "src/init.lisp"
7116 (("libgobject-2\\.0\\.so")
7117 (string-append (assoc-ref inputs "glib") "/lib/libgobject-2.0.so"))
7118 (("libgirepository-1\\.0\\.so")
7119 (string-append (assoc-ref inputs "gobject-introspection")
7120 "/lib/libgirepository-1.0.so")))
7121 #t)))))
7122 (synopsis "Common Lisp bindings to GObject Introspection")
7123 (description
7124 "This library is a bridge between Common Lisp and GObject
7125 Introspection, which enables Common Lisp programs to access the full interface
7126 of C+GObject libraries without the need of writing dedicated bindings.")
7127 (license (list license:bsd-3
7128 ;; Tests are under a different license.
7129 license:llgpl)))))
7130
7131 (define-public cl-gobject-introspection
7132 (sbcl-package->cl-source-package sbcl-cl-gobject-introspection))
7133
7134 (define-public sbcl-string-case
7135 (let ((commit "718c761e33749e297cd2809c7ba3ade1985c49f7")
7136 (revision "0"))
7137 (package
7138 (name "sbcl-string-case")
7139 (version (git-version "0.0.2" revision commit))
7140 (home-page "https://github.com/pkhuong/string-case")
7141 (source
7142 (origin
7143 (method git-fetch)
7144 (uri (git-reference
7145 (url home-page)
7146 (commit commit)))
7147 (file-name (git-file-name name version))
7148 (sha256
7149 (base32
7150 "1n5i3yh0h5s636rcnwn7jwqy3rjflikra04lymimhpcshhjsk0md"))))
7151 (build-system asdf-build-system/sbcl)
7152 (synopsis "Efficient string= case in Common Lisp")
7153 (description
7154 "@code{string-case} is a Common Lisp macro that generates specialised decision
7155 trees to dispatch on string equality.")
7156 (license license:bsd-3))))
7157
7158 (define-public cl-string-case
7159 (sbcl-package->cl-source-package sbcl-string-case))
7160
7161 (define-public ecl-string-case
7162 (sbcl-package->ecl-package sbcl-string-case))
7163
7164 (define-public sbcl-global-vars
7165 (let ((commit "c749f32c9b606a1457daa47d59630708ac0c266e")
7166 (revision "0"))
7167 (package
7168 (name "sbcl-global-vars")
7169 (version (git-version "1.0.0" revision commit))
7170 (home-page "https://github.com/lmj/global-vars")
7171 (source
7172 (origin
7173 (method git-fetch)
7174 (uri (git-reference
7175 (url home-page)
7176 (commit commit)))
7177 (file-name (git-file-name name version))
7178 (sha256
7179 (base32
7180 "06m3xc8l3pgsapl8fvsi9wf6y46zs75cp9zn7zh6dc65v4s5wz3d"))))
7181 (build-system asdf-build-system/sbcl)
7182 (synopsis "Efficient global variables in Common Lisp")
7183 (description
7184 "In Common Lisp, a special variable that is never dynamically bound
7185 typically serves as a stand-in for a global variable. The @code{global-vars}
7186 library provides true global variables that are implemented by some compilers.
7187 An attempt to rebind a global variable properly results in a compiler error.
7188 That is, a global variable cannot be dynamically bound.
7189
7190 Global variables therefore allow us to communicate an intended usage that
7191 differs from special variables. Global variables are also more efficient than
7192 special variables, especially in the presence of threads.")
7193 (license license:expat))))
7194
7195 (define-public cl-global-vars
7196 (sbcl-package->cl-source-package sbcl-global-vars))
7197
7198 (define-public ecl-global-vars
7199 (sbcl-package->ecl-package sbcl-global-vars))
7200
7201 (define-public sbcl-trivial-file-size
7202 (let ((commit "1c1d672a01a446ba0391dbb4ffc40be3b0476f23")
7203 (revision "0"))
7204 (package
7205 (name "sbcl-trivial-file-size")
7206 (version (git-version "0.0.0" revision commit))
7207 (home-page "https://github.com/ruricolist/trivial-file-size")
7208 (source
7209 (origin
7210 (method git-fetch)
7211 (uri (git-reference
7212 (url home-page)
7213 (commit commit)))
7214 (file-name (git-file-name name version))
7215 (sha256
7216 (base32
7217 "17pp86c9zs4y7i1sh7q9gbfw9iqv6655k7fz8qbj9ly1ypgxp4qs"))))
7218 (build-system asdf-build-system/sbcl)
7219 (native-inputs
7220 `(("fiveam" ,sbcl-fiveam)))
7221 (synopsis "Size of a file in bytes in Common Lisp")
7222 (description
7223 "The canonical way to determine the size of a file in bytes, using Common Lisp,
7224 is to open the file with an element type of (unsigned-byte 8) and then
7225 calculate the length of the stream. This is less than ideal. In most cases
7226 it is better to get the size of the file from its metadata, using a system
7227 call.
7228
7229 This library exports a single function, file-size-in-octets. It returns the
7230 size of a file in bytes, using system calls when possible.")
7231 (license license:expat))))
7232
7233 (define-public cl-trivial-file-size
7234 (sbcl-package->cl-source-package sbcl-trivial-file-size))
7235
7236 (define-public ecl-trivial-file-size
7237 (sbcl-package->ecl-package sbcl-trivial-file-size))
7238
7239 (define-public sbcl-trivial-macroexpand-all
7240 (let ((commit "933270ac7107477de1bc92c1fd641fe646a7a8a9")
7241 (revision "0"))
7242 (package
7243 (name "sbcl-trivial-macroexpand-all")
7244 (version (git-version "0.0.0" revision commit))
7245 (home-page "https://github.com/cbaggers/trivial-macroexpand-all")
7246 (source
7247 (origin
7248 (method git-fetch)
7249 (uri (git-reference
7250 (url home-page)
7251 (commit commit)))
7252 (file-name (git-file-name name version))
7253 (sha256
7254 (base32
7255 "191hnn4b5j4i3crydmlzbm231kj0h7l8zj6mzj69r1npbzkas4bd"))))
7256 (build-system asdf-build-system/sbcl)
7257 (native-inputs
7258 `(("fiveam" ,sbcl-fiveam)))
7259 (synopsis "Portable macroexpand-all for Common Lisp")
7260 (description
7261 "This library provides a macroexpand-all function that calls the
7262 implementation specific equivalent.")
7263 (license license:unlicense))))
7264
7265 (define-public cl-trivial-macroexpand-all
7266 (sbcl-package->cl-source-package sbcl-trivial-macroexpand-all))
7267
7268 (define-public ecl-trivial-macroexpand-all
7269 (sbcl-package->ecl-package sbcl-trivial-macroexpand-all))
7270
7271 (define-public sbcl-serapeum
7272 (let ((commit "64f0c4a161bbbda7c275012ca1415b4293b9e169")
7273 (revision "1"))
7274 (package
7275 (name "sbcl-serapeum")
7276 (version (git-version "0.0.0" revision commit))
7277 (home-page "https://github.com/ruricolist/serapeum")
7278 (source
7279 (origin
7280 (method git-fetch)
7281 (uri (git-reference
7282 (url home-page)
7283 (commit commit)))
7284 (file-name (git-file-name name version))
7285 (sha256
7286 (base32
7287 "0djnj0py8hdjnk5j6shjq2kbmyxqd5sw79cilcfmpfz4dzjdgkx9"))))
7288 (build-system asdf-build-system/sbcl)
7289 (inputs
7290 `(("alexandria" ,sbcl-alexandria)
7291 ("trivia" ,sbcl-trivia)
7292 ("trivia.quasiquote" ,sbcl-trivia.quasiquote)
7293 ("split-sequence" ,sbcl-split-sequence)
7294 ("string-case" ,sbcl-string-case)
7295 ("parse-number" ,sbcl-parse-number)
7296 ("trivial-garbage" ,sbcl-trivial-garbage)
7297 ("bordeaux-threads" ,sbcl-bordeaux-threads)
7298 ("named-readtables" ,sbcl-named-readtables)
7299 ("fare-quasiquote-extras" ,sbcl-fare-quasiquote-extras)
7300 ("parse-declarations-1.0" ,sbcl-parse-declarations)
7301 ("global-vars" ,sbcl-global-vars)
7302 ("trivial-file-size" ,sbcl-trivial-file-size)
7303 ("trivial-macroexpand-all" ,sbcl-trivial-macroexpand-all)))
7304 (native-inputs
7305 `(("fiveam" ,sbcl-fiveam)
7306 ("local-time" ,sbcl-local-time)))
7307 (arguments
7308 '(#:phases
7309 (modify-phases %standard-phases
7310 (add-after 'unpack 'disable-failing-tests
7311 (lambda* (#:key inputs #:allow-other-keys)
7312 (substitute* "serapeum.asd"
7313 ;; Guix does not have Quicklisp, and probably never will.
7314 (("\\(:file \"quicklisp\"\\)") ""))
7315 #t)))))
7316 (synopsis "Common Lisp utility library beyond Alexandria")
7317 (description
7318 "Serapeum is a conservative library of Common Lisp utilities. It is a
7319 supplement, not a competitor, to Alexandria.")
7320 (license license:expat))))
7321
7322 (define-public cl-serapeum
7323 (sbcl-package->cl-source-package sbcl-serapeum))
7324
7325 (define-public sbcl-arrows
7326 (let ((commit "df7cf0067e0132d9697ac8b1a4f1b9c88d4f5382")
7327 (revision "0"))
7328 (package
7329 (name "sbcl-arrows")
7330 (version (git-version "0.2.0" revision commit))
7331 (source
7332 (origin
7333 (method git-fetch)
7334 (uri (git-reference
7335 (url "https://gitlab.com/Harleqin/arrows.git")
7336 (commit commit)))
7337 (file-name (git-file-name name version))
7338 (sha256
7339 (base32
7340 "042k9vkssrqx9nhp14wdzm942zgdxvp35mba0p2syz98i75im2yy"))))
7341 (build-system asdf-build-system/sbcl)
7342 (native-inputs
7343 `(("hu.dwim.stefil" ,sbcl-hu.dwim.stefil)))
7344 (synopsis "Clojure-like arrow macros for Common Lisp")
7345 (description
7346 "This library implements the @code{->} and @code{->>} macros from
7347 Clojure, as well as several expansions on the idea.")
7348 (home-page "https://gitlab.com/Harleqin/arrows")
7349 (license license:public-domain))))
7350
7351 (define-public cl-arrows
7352 (sbcl-package->cl-source-package sbcl-arrows))
7353
7354 (define-public ecl-arrows
7355 (sbcl-package->ecl-package sbcl-arrows))
7356
7357 (define-public sbcl-simple-parallel-tasks
7358 (let ((commit "db460f7a3f7bbfe2d3a2223ed21e162068d04dda")
7359 (revision "0"))
7360 (package
7361 (name "sbcl-simple-parallel-tasks")
7362 (version (git-version "1.0" revision commit))
7363 (source
7364 (origin
7365 (method git-fetch)
7366 (uri (git-reference
7367 (url "https://github.com/glv2/simple-parallel-tasks.git")
7368 (commit commit)))
7369 (file-name (git-file-name name version))
7370 (sha256
7371 (base32
7372 "0amw3qk23wnlyrsgzszs6rs7y4zvxv8dr03rnqhc60mnm8ds4dd5"))))
7373 (build-system asdf-build-system/sbcl)
7374 (native-inputs
7375 `(("fiveam" ,sbcl-fiveam)))
7376 (inputs
7377 `(("chanl" ,sbcl-chanl)))
7378 (synopsis "Common Lisp library to evaluate some forms in parallel")
7379 (description "This is a simple Common Lisp library to evaluate some
7380 forms in parallel.")
7381 (home-page "https://github.com/glv2/simple-parallel-tasks")
7382 (license license:gpl3))))
7383
7384 (define-public cl-simple-parallel-tasks
7385 (sbcl-package->cl-source-package sbcl-simple-parallel-tasks))
7386
7387 (define-public ecl-simple-parallel-tasks
7388 (sbcl-package->ecl-package sbcl-simple-parallel-tasks))
7389
7390 (define-public sbcl-cl-heap
7391 (package
7392 (name "sbcl-cl-heap")
7393 (version "0.1.6")
7394 (source
7395 (origin
7396 (method url-fetch)
7397 (uri (string-append "https://common-lisp.net/project/cl-heap/releases/"
7398 "cl-heap_" version ".tar.gz"))
7399 (sha256
7400 (base32
7401 "163hb07p2nxz126rpq3cj5dyala24n0by5i5786n2qcr1w0bak4i"))))
7402 (build-system asdf-build-system/sbcl)
7403 (native-inputs
7404 `(("xlunit" ,sbcl-xlunit)))
7405 (arguments
7406 `(#:test-asd-file "cl-heap-tests.asd"))
7407 (synopsis "Heap and priority queue data structures for Common Lisp")
7408 (description
7409 "CL-HEAP provides various implementations of heap data structures (a
7410 binary heap and a Fibonacci heap) as well as an efficient priority queue.")
7411 (home-page "https://common-lisp.net/project/cl-heap/")
7412 (license license:gpl3+)))
7413
7414 (define-public cl-heap
7415 (sbcl-package->cl-source-package sbcl-cl-heap))
7416
7417 (define-public ecl-cl-heap
7418 (sbcl-package->ecl-package sbcl-cl-heap))
7419
7420 (define-public sbcl-curry-compose-reader-macros
7421 (let ((commit "beaa92dedf392726c042184bfd6149fa8d9e6ac2")
7422 (revision "0"))
7423 (package
7424 (name "sbcl-curry-compose-reader-macros")
7425 (version (git-version "1.0.0" revision commit))
7426 (source
7427 (origin
7428 (method git-fetch)
7429 (uri
7430 (git-reference
7431 (url "https://github.com/eschulte/curry-compose-reader-macros.git")
7432 (commit commit)))
7433 (file-name (git-file-name name version))
7434 (sha256
7435 (base32
7436 "0rv9bl8xrad5wfcg5zs1dazvnpmvqz6297lbn8bywsrcfnlf7h98"))))
7437 (build-system asdf-build-system/sbcl)
7438 (inputs
7439 `(("alexandria" ,sbcl-alexandria)
7440 ("named-readtables" ,sbcl-named-readtables)))
7441 (synopsis "Reader macros for partial application and composition")
7442 (description
7443 "This Common Lisp library provides reader macros for concise expression
7444 of function partial application and composition.")
7445 (home-page "https://eschulte.github.io/curry-compose-reader-macros/")
7446 (license license:public-domain))))
7447
7448 (define-public cl-curry-compose-reader-macros
7449 (sbcl-package->cl-source-package sbcl-curry-compose-reader-macros))
7450
7451 (define-public ecl-curry-compose-reader-macros
7452 (sbcl-package->ecl-package sbcl-curry-compose-reader-macros))
7453
7454 (define-public sbcl-yason
7455 (package
7456 (name "sbcl-yason")
7457 (version "0.7.7")
7458 (source
7459 (origin
7460 (method git-fetch)
7461 (uri (git-reference
7462 (url "https://github.com/phmarek/yason.git")
7463 (commit (string-append "v" version))))
7464 (file-name (git-file-name name version))
7465 (sha256
7466 (base32
7467 "0479rbjgbj80jpk5bby18inlv1kfp771a82rlcq5psrz65qqa9bj"))))
7468 (build-system asdf-build-system/sbcl)
7469 (inputs
7470 `(("alexandria" ,sbcl-alexandria)
7471 ("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
7472 (synopsis "Common Lisp JSON parser/encoder")
7473 (description
7474 "YASON is a Common Lisp library for encoding and decoding data in the
7475 JSON interchange format.")
7476 (home-page "https://github.com/phmarek/yason")
7477 (license license:bsd-3)))
7478
7479 (define-public cl-yason
7480 (sbcl-package->cl-source-package sbcl-yason))
7481
7482 (define-public ecl-yason
7483 (sbcl-package->ecl-package sbcl-yason))
7484
7485 (define-public sbcl-stefil
7486 (let ((commit "0398548ec95dceb50fc2c2c03e5fb0ce49b86c7a")
7487 (revision "0"))
7488 (package
7489 (name "sbcl-stefil")
7490 (version (git-version "0.1" revision commit))
7491 (source
7492 (origin
7493 (method git-fetch)
7494 (uri (git-reference
7495 (url "https://gitlab.common-lisp.net/stefil/stefil.git")
7496 (commit commit)))
7497 (file-name (git-file-name name version))
7498 (sha256
7499 (base32
7500 "0bqz64q2szzhf91zyqyssmvrz7da6442rs01808pf3wrdq28bclh"))))
7501 (build-system asdf-build-system/sbcl)
7502 (inputs
7503 `(("alexandria" ,sbcl-alexandria)
7504 ("iterate" ,sbcl-iterate)
7505 ("metabang-bind" ,sbcl-metabang-bind)))
7506 (propagated-inputs
7507 ;; Swank doesn't have a pre-compiled package, therefore we must
7508 ;; propagate its sources.
7509 `(("swank" ,cl-slime-swank)))
7510 (arguments
7511 '(#:phases
7512 (modify-phases %standard-phases
7513 (add-after 'unpack 'drop-unnecessary-dependency
7514 (lambda _
7515 (substitute* "package.lisp"
7516 ((":stefil-system") ""))
7517 #t)))))
7518 (home-page "https://common-lisp.net/project/stefil/index-old.shtml")
7519 (synopsis "Simple test framework")
7520 (description
7521 "Stefil is a simple test framework for Common Lisp, with a focus on
7522 interactive development.")
7523 (license license:public-domain))))
7524
7525 (define-public cl-stefil
7526 (sbcl-package->cl-source-package sbcl-stefil))
7527
7528 (define-public sbcl-graph
7529 (let ((commit "78bf9ec930d8eae4f0861b5be76765fb1e45e24f")
7530 (revision "0"))
7531 (package
7532 (name "sbcl-graph")
7533 (version (git-version "0.0.0" revision commit))
7534 (source
7535 (origin
7536 (method git-fetch)
7537 (uri
7538 (git-reference
7539 (url "https://github.com/eschulte/graph.git")
7540 (commit commit)))
7541 (file-name (git-file-name name version))
7542 (sha256
7543 (base32
7544 "1qpij4xh8bqwc2myahpilcbh916v7vg0acz2fij14d3y0jm02h0g"))
7545 (patches (search-patches "sbcl-graph-asdf-definitions.patch"))))
7546 (build-system asdf-build-system/sbcl)
7547 (native-inputs
7548 `(("stefil" ,sbcl-stefil)))
7549 (inputs
7550 `(("alexandria" ,sbcl-alexandria)
7551 ("cl-heap" ,sbcl-cl-heap)
7552 ("curry-compose-reader-macros" ,sbcl-curry-compose-reader-macros)
7553 ("metabang-bind" ,sbcl-metabang-bind)
7554 ("named-readtables" ,sbcl-named-readtables)))
7555 (arguments
7556 '(#:test-asd-file "graph-test.asd"))
7557 (synopsis "Graph data structure and algorithms for Common Lisp")
7558 (description
7559 "The GRAPH Common Lisp library provides a data structures to represent
7560 graphs, as well as some graph manipulation and analysis algorithms (shortest
7561 path, maximum flow, minimum spanning tree, etc.).")
7562 (home-page "https://eschulte.github.io/graph/")
7563 (license license:gpl3+))))
7564
7565 (define-public cl-graph
7566 (sbcl-package->cl-source-package sbcl-graph))
7567
7568 (define-public sbcl-graph-dot
7569 (package
7570 (inherit sbcl-graph)
7571 (name "sbcl-graph-dot")
7572 (inputs
7573 `(("alexandria" ,sbcl-alexandria)
7574 ("cl-ppcre" ,sbcl-cl-ppcre)
7575 ("curry-compose-reader-macros" ,sbcl-curry-compose-reader-macros)
7576 ("graph" ,sbcl-graph)
7577 ("metabang-bind" ,sbcl-metabang-bind)
7578 ("named-readtables" ,sbcl-named-readtables)))
7579 (arguments
7580 (substitute-keyword-arguments (package-arguments sbcl-graph)
7581 ((#:asd-file _ "") "graph-dot.asd")
7582 ((#:asd-system-name _ #f) "graph-dot")))
7583 (synopsis "Serialize graphs to and from DOT format")))
7584
7585 (define-public sbcl-graph-json
7586 (package
7587 (inherit sbcl-graph)
7588 (name "sbcl-graph-json")
7589 (inputs
7590 `(("alexandria" ,sbcl-alexandria)
7591 ("curry-compose-reader-macros" ,sbcl-curry-compose-reader-macros)
7592 ("graph" ,sbcl-graph)
7593 ("metabang-bind" ,sbcl-metabang-bind)
7594 ("named-readtables" ,sbcl-named-readtables)
7595 ("yason" ,sbcl-yason)))
7596 (arguments
7597 (substitute-keyword-arguments (package-arguments sbcl-graph)
7598 ((#:asd-file _ "") "graph-json.asd")
7599 ((#:asd-system-name _ #f) "graph-json")))
7600 (synopsis "Serialize graphs to and from JSON format")))
7601
7602 (define-public sbcl-trivial-indent
7603 (let ((commit "2d016941751647c6cc5bd471751c2cf68861c94a")
7604 (revision "0"))
7605 (package
7606 (name "sbcl-trivial-indent")
7607 (version (git-version "1.0.0" revision commit))
7608 (source
7609 (origin
7610 (method git-fetch)
7611 (uri
7612 (git-reference
7613 (url "https://github.com/Shinmera/trivial-indent")
7614 (commit commit)))
7615 (file-name (git-file-name name version))
7616 (sha256
7617 (base32
7618 "1sj90nqz17w4jq0ixz00gb9g5g6d2s7l8r17zdby27gxxh51w266"))))
7619 (build-system asdf-build-system/sbcl)
7620 (synopsis "Simple Common Lisp library to allow indentation hints for SWANK")
7621 (description
7622 "This library allows you to define custom indentation hints for your
7623 macros if the one recognised by SLIME automatically produces unwanted
7624 results.")
7625 (home-page "https://shinmera.github.io/trivial-indent/")
7626 (license license:zlib))))
7627
7628 (define-public cl-trivial-indent
7629 (sbcl-package->cl-source-package sbcl-trivial-indent))
7630
7631 (define-public sbcl-documentation-utils
7632 (let ((commit "98630dd5f7e36ae057fa09da3523f42ccb5d1f55")
7633 (revision "0"))
7634 (package
7635 (name "sbcl-documentation-utils")
7636 (version (git-version "1.2.0" revision commit))
7637 (source
7638 (origin
7639 (method git-fetch)
7640 (uri
7641 (git-reference
7642 (url "https://github.com/Shinmera/documentation-utils.git")
7643 (commit commit)))
7644 (file-name (git-file-name name version))
7645 (sha256
7646 (base32
7647 "098qhkqskmmrh4wix34mawf7p5c87yql28r51r75yjxj577k5idq"))))
7648 (build-system asdf-build-system/sbcl)
7649 (inputs
7650 `(("trivial-indent" ,sbcl-trivial-indent)))
7651 (synopsis "Few simple tools to document Common Lisp libraries")
7652 (description
7653 "This is a small library to help you with managing the Common Lisp
7654 docstrings for your library.")
7655 (home-page "https://shinmera.github.io/documentation-utils/")
7656 (license license:zlib))))
7657
7658 (define-public cl-documentation-utils
7659 (sbcl-package->cl-source-package sbcl-documentation-utils))
7660
7661 (define-public ecl-documentation-utils
7662 (sbcl-package->ecl-package sbcl-documentation-utils))
7663
7664 (define-public sbcl-form-fiddle
7665 (let ((commit "e0c23599dbb8cff3e83e012f3d86d0764188ad18")
7666 (revision "0"))
7667 (package
7668 (name "sbcl-form-fiddle")
7669 (version (git-version "1.1.0" revision commit))
7670 (source
7671 (origin
7672 (method git-fetch)
7673 (uri
7674 (git-reference
7675 (url "https://github.com/Shinmera/form-fiddle")
7676 (commit commit)))
7677 (file-name (git-file-name name version))
7678 (sha256
7679 (base32
7680 "041iznc9mpfyrl0sv5893ys9pbb2pvbn9g3clarqi7gsfj483jln"))))
7681 (build-system asdf-build-system/sbcl)
7682 (inputs
7683 `(("documentation-utils" ,sbcl-documentation-utils)))
7684 (synopsis "Utilities to destructure Common Lisp lambda forms")
7685 (description
7686 "Often times we need to destructure a form definition in a Common Lisp
7687 macro. This library provides a set of simple utilities to help with that.")
7688 (home-page "https://shinmera.github.io/form-fiddle/")
7689 (license license:zlib))))
7690
7691 (define-public cl-form-fiddle
7692 (sbcl-package->cl-source-package sbcl-form-fiddle))
7693
7694 (define-public sbcl-parachute
7695 (let ((commit "ca04dd8e43010a6dfffa26dbe1d62af86008d666")
7696 (revision "0"))
7697 (package
7698 (name "sbcl-parachute")
7699 (version (git-version "1.1.1" revision commit))
7700 (source
7701 (origin
7702 (method git-fetch)
7703 (uri
7704 (git-reference
7705 (url "https://github.com/Shinmera/parachute")
7706 (commit commit)))
7707 (file-name (git-file-name name version))
7708 (sha256
7709 (base32
7710 "1mvsm3r0r6a2bg75nw0q7n9vlby3ch45qjl7hnb5k1z2n5x5lh60"))))
7711 (build-system asdf-build-system/sbcl)
7712 (inputs
7713 `(("documentation-utils" ,sbcl-documentation-utils)
7714 ("form-fiddle" ,sbcl-form-fiddle)))
7715 (synopsis "Extensible and cross-compatible testing framework for Common Lisp")
7716 (description
7717 "Parachute is a simple-to-use and extensible testing framework.
7718 In Parachute, things are organised as a bunch of named tests within a package.
7719 Each test can contain a bunch of test forms that make up its body.")
7720 (home-page "https://shinmera.github.io/parachute/")
7721 (license license:zlib))))
7722
7723 (define-public cl-parachute
7724 (sbcl-package->cl-source-package sbcl-parachute))
7725
7726 (define-public sbcl-array-utils
7727 (let ((commit "f90eb9070d0b2205af51126a35033574725e5c56")
7728 (revision "0"))
7729 (package
7730 (name "sbcl-array-utils")
7731 (version (git-version "1.1.1" revision commit))
7732 (source
7733 (origin
7734 (method git-fetch)
7735 (uri
7736 (git-reference
7737 (url "https://github.com/Shinmera/array-utils")
7738 (commit commit)))
7739 (file-name (git-file-name name version))
7740 (sha256
7741 (base32
7742 "0zhwfbpr53vs1ii4sx75dz2k9yhh1xpwdqqpg8nmfndxkmhpbi3x"))))
7743 (build-system asdf-build-system/sbcl)
7744 (native-inputs
7745 `(("parachute" ,sbcl-parachute)))
7746 (inputs
7747 `(("documentation-utils" ,sbcl-documentation-utils)))
7748 (synopsis "Tiny collection of array and vector utilities for Common Lisp")
7749 (description
7750 "A miniature toolkit that contains some useful shifting/popping/pushing
7751 functions for arrays and vectors. Originally from Plump.")
7752 (home-page "https://shinmera.github.io/array-utils/")
7753 (license license:zlib))))
7754
7755 (define-public cl-array-utils
7756 (sbcl-package->cl-source-package sbcl-array-utils))
7757
7758 (define-public sbcl-plump
7759 (let ((commit "34f890fe46efdebe7bb70d218f1937e98f632bf9")
7760 (revision "1"))
7761 (package
7762 (name "sbcl-plump")
7763 (version (git-version "2.0.0" revision commit))
7764 (source
7765 (origin
7766 (method git-fetch)
7767 (uri
7768 (git-reference
7769 (url "https://github.com/Shinmera/plump")
7770 (commit commit)))
7771 (file-name (git-file-name name version))
7772 (sha256
7773 (base32
7774 "0a0x8wn6vv1ylxcwck12k18gy0a366kdm6ddxxk7yynl4mwnqgkh"))))
7775 (build-system asdf-build-system/sbcl)
7776 (inputs
7777 `(("array-utils" ,sbcl-array-utils)
7778 ("documentation-utils" ,sbcl-documentation-utils)))
7779 (synopsis "Lenient XML / XHTML / HTML parser for Common Lisp")
7780 (description
7781 "Plump is a parser for HTML/XML-like documents, focusing on being
7782 lenient towards invalid markup. It can handle things like invalid attributes,
7783 bad closing tag order, unencoded entities, inexistent tag types, self-closing
7784 tags and so on. It parses documents to a class representation and offers a
7785 small set of DOM functions to manipulate it. It can be extended to parse to
7786 your own classes.")
7787 (home-page "https://shinmera.github.io/plump/")
7788 (license license:zlib))))
7789
7790 (define-public cl-plump
7791 (sbcl-package->cl-source-package sbcl-plump))
7792
7793 (define-public sbcl-antik-base
7794 (let ((commit "e4711a69b3d6bf37b5727af05c3cfd03e8428ba3")
7795 (revision "1"))
7796 (package
7797 (name "sbcl-antik-base")
7798 (version (git-version "0.0.0" revision commit))
7799 (source
7800 (origin
7801 (method git-fetch)
7802 (uri (git-reference
7803 (url "https://gitlab.common-lisp.net/antik/antik.git")
7804 (commit commit)))
7805 (file-name (git-file-name name version))
7806 (sha256
7807 (base32
7808 "047ga2c38par2xbgg4qx6hwv06qhf1c1f67as8xvir6s80lip1km"))))
7809 (build-system asdf-build-system/sbcl)
7810 (inputs
7811 `(("alexandria" ,sbcl-alexandria)
7812 ("cl-ppcre" ,sbcl-cl-ppcre)
7813 ("iterate" ,sbcl-iterate)
7814 ("metabang-bind" ,sbcl-metabang-bind)
7815 ("named-readtables" ,sbcl-named-readtables)
7816 ("split-sequence" ,sbcl-split-sequence)))
7817 (native-inputs
7818 `(("lisp-unit" ,sbcl-lisp-unit)))
7819 (synopsis "Scientific and engineering computation in Common Lisp")
7820 (description
7821 "Antik provides a foundation for scientific and engineering
7822 computation in Common Lisp. It is designed not only to facilitate
7823 numerical computations, but to permit the use of numerical computation
7824 libraries and the interchange of data and procedures, whether
7825 foreign (non-Lisp) or Lisp libraries. It is named after the
7826 Antikythera mechanism, one of the oldest examples of a scientific
7827 computer known.")
7828 (home-page "https://common-lisp.net/project/antik/")
7829 (license license:gpl3))))
7830
7831 (define-public cl-antik-base
7832 (sbcl-package->cl-source-package sbcl-antik-base))
7833
7834 (define-public ecl-antik-base
7835 (sbcl-package->ecl-package sbcl-antik-base))
7836
7837 (define-public sbcl-foreign-array
7838 (package
7839 (inherit sbcl-antik-base)
7840 (name "sbcl-foreign-array")
7841 (arguments
7842 (substitute-keyword-arguments (package-arguments sbcl-antik-base)
7843 ((#:asd-file _ "") "foreign-array.asd")
7844 ((#:asd-system-name _ #f) "foreign-array")))
7845 (inputs
7846 `(("antik-base" ,sbcl-antik-base)
7847 ("cffi" ,sbcl-cffi)
7848 ("trivial-garbage" ,sbcl-trivial-garbage)
7849 ("static-vectors" ,sbcl-static-vectors)))
7850 (synopsis "Common Lisp library providing access to foreign arrays")))
7851
7852 (define-public cl-foreign-array
7853 (sbcl-package->cl-source-package sbcl-foreign-array))
7854
7855 (define-public ecl-foreign-array
7856 (sbcl-package->ecl-package sbcl-foreign-array))
7857
7858 (define-public sbcl-physical-dimension
7859 (package
7860 (inherit sbcl-antik-base)
7861 (name "sbcl-physical-dimension")
7862 (inputs
7863 `(("fare-utils" ,sbcl-fare-utils)
7864 ("foreign-array" ,sbcl-foreign-array)
7865 ("trivial-utf-8" ,sbcl-trivial-utf-8)))
7866 (arguments
7867 (substitute-keyword-arguments (package-arguments sbcl-antik-base)
7868 ((#:asd-file _ "") "physical-dimension.asd")
7869 ((#:asd-system-name _ #f) "physical-dimension")))
7870 (synopsis
7871 "Common Lisp library providing computations with physical units")))
7872
7873 (define-public cl-physical-dimension
7874 (sbcl-package->cl-source-package sbcl-physical-dimension))
7875
7876 (define-public sbcl-science-data
7877 (package
7878 (inherit sbcl-antik-base)
7879 (name "sbcl-science-data")
7880 (inputs
7881 `(("physical-dimension" ,sbcl-physical-dimension)
7882 ("drakma" ,sbcl-drakma)))
7883 (arguments
7884 (substitute-keyword-arguments (package-arguments sbcl-antik-base)
7885 ((#:asd-file _ "") "science-data.asd")
7886 ((#:asd-system-name _ #f) "science-data")))
7887 (synopsis
7888 "Common Lisp library for scientific and engineering numerical data")))
7889
7890 (define-public cl-science-data
7891 (sbcl-package->cl-source-package sbcl-science-data))
7892
7893 (define-public sbcl-gsll
7894 (let ((commit "1a8ada22f9cf5ed7372d352b2317f4ccdb6ab308")
7895 (revision "1"))
7896 (package
7897 (name "sbcl-gsll")
7898 (version (git-version "0.0.0" revision commit))
7899 (source
7900 (origin
7901 (method git-fetch)
7902 (uri (git-reference
7903 (url "https://gitlab.common-lisp.net/antik/gsll.git")
7904 (commit commit)))
7905 (file-name (git-file-name name version))
7906 (sha256
7907 (base32
7908 "0z5nypfk26hxihb08p085644afawicrgb4xvadh3lmrn46qbjfn4"))))
7909 (build-system asdf-build-system/sbcl)
7910 (native-inputs
7911 `(("lisp-unit" ,sbcl-lisp-unit)))
7912 (inputs
7913 `(("alexandria" ,sbcl-alexandria)
7914 ("cffi-grovel" ,sbcl-cffi-grovel)
7915 ("cffi-libffi" ,sbcl-cffi-libffi)
7916 ("foreign-array" ,sbcl-foreign-array)
7917 ("gsl" ,gsl)
7918 ("metabang-bind" ,sbcl-metabang-bind)
7919 ("trivial-features" ,sbcl-trivial-features)
7920 ("trivial-garbage" ,sbcl-trivial-garbage)))
7921 (arguments
7922 `(#:tests? #f
7923 #:phases
7924 (modify-phases %standard-phases
7925 (add-after 'unpack 'fix-cffi-paths
7926 (lambda* (#:key inputs #:allow-other-keys)
7927 (substitute* "gsll.asd"
7928 ((":depends-on \\(#:foreign-array")
7929 ":depends-on (#:foreign-array #:cffi-libffi"))
7930 (substitute* "init/init.lisp"
7931 (("libgslcblas.so" all)
7932 (string-append
7933 (assoc-ref inputs "gsl") "/lib/" all)))
7934 (substitute* "init/init.lisp"
7935 (("libgsl.so" all)
7936 (string-append
7937 (assoc-ref inputs "gsl") "/lib/" all))))))))
7938 (synopsis "GNU Scientific Library for Lisp")
7939 (description
7940 "The GNU Scientific Library for Lisp (GSLL) allows the use of the
7941 GNU Scientific Library (GSL) from Common Lisp. This library provides a
7942 full range of common mathematical operations useful to scientific and
7943 engineering applications. The design of the GSLL interface is such
7944 that access to most of the GSL library is possible in a Lisp-natural
7945 way; the intent is that the user not be hampered by the restrictions
7946 of the C language in which GSL has been written. GSLL thus provides
7947 interactive use of GSL for getting quick answers, even for someone not
7948 intending to program in Lisp.")
7949 (home-page "https://common-lisp.net/project/gsll/")
7950 (license license:gpl3))))
7951
7952 (define-public cl-gsll
7953 (sbcl-package->cl-source-package sbcl-gsll))
7954
7955 (define-public sbcl-antik
7956 (package
7957 (inherit sbcl-antik-base)
7958 (name "sbcl-antik")
7959 (inputs
7960 `(("gsll" ,sbcl-gsll)
7961 ("physical-dimension" ,sbcl-physical-dimension)))
7962 (arguments
7963 (substitute-keyword-arguments (package-arguments sbcl-antik-base)
7964 ((#:asd-file _ "") "antik.asd")
7965 ((#:asd-system-name _ #f) "antik")))))
7966
7967 (define-public cl-antik
7968 (sbcl-package->cl-source-package sbcl-antik))
7969
7970 (define-public sbcl-cl-interpol
7971 (let ((commit "1fd288d861db85bc4677cff3cdd6af75fda1afb4")
7972 (revision "1"))
7973 (package
7974 (name "sbcl-cl-interpol")
7975 (version (git-version "0.2.6" revision commit))
7976 (source
7977 (origin
7978 (method git-fetch)
7979 (uri (git-reference
7980 (url "https://github.com/edicl/cl-interpol.git")
7981 (commit commit)))
7982 (file-name (git-file-name name version))
7983 (sha256
7984 (base32
7985 "1hnikak52hmcq1r5f616m6qq1108qnkw80pja950nv1fq5p0ppjn"))))
7986 (build-system asdf-build-system/sbcl)
7987 (inputs
7988 `(("cl-unicode" ,sbcl-cl-unicode)
7989 ("named-readtables" ,sbcl-named-readtables)))
7990 (native-inputs
7991 `(("flexi-streams" ,sbcl-flexi-streams)))
7992 (synopsis "String interpolation for Common Lisp")
7993 (description
7994 "CL-INTERPOL is a library for Common Lisp which modifies the
7995 reader so that you can have interpolation within strings similar to
7996 Perl or Unix Shell scripts. It also provides various ways to insert
7997 arbitrary characters into literal strings even if your editor/IDE
7998 doesn't support them.")
7999 (home-page "https://edicl.github.io/cl-interpol/")
8000 (license license:bsd-3))))
8001
8002 (define-public cl-interpol
8003 (sbcl-package->cl-source-package sbcl-cl-interpol))
8004
8005 (define-public ecl-cl-interpol
8006 (sbcl-package->ecl-package sbcl-cl-interpol))
8007
8008 (define sbcl-symbol-munger-boot0
8009 ;; There is a cyclical dependency between symbol-munger and lisp-unit2.
8010 ;; See https://github.com/AccelerationNet/symbol-munger/issues/4
8011 (let ((commit "cc2bb4b7acd454d756484aec81ba487648385fc3")
8012 (revision "1"))
8013 (package
8014 (name "sbcl-symbol-munger-boot0")
8015 (version (git-version "0.0.1" revision commit))
8016 (source
8017 (origin
8018 (method git-fetch)
8019 (uri (git-reference
8020 (url "https://github.com/AccelerationNet/symbol-munger.git")
8021 (commit commit)))
8022 (file-name (git-file-name name version))
8023 (sha256
8024 (base32
8025 "0diav5ricqsybqvbp4bkxyj3bn3v9n7xb2pqqc4vg1algsw2pyjl"))))
8026 (build-system asdf-build-system/sbcl)
8027 (arguments
8028 `(#:asd-file "symbol-munger.asd"
8029 #:asd-system-name "symbol-munger"))
8030 (inputs
8031 `(("iterate" ,sbcl-iterate)
8032 ("alexandria" ,sbcl-alexandria)))
8033 (native-inputs
8034 `(("lisp-unit" ,sbcl-lisp-unit)))
8035 (synopsis
8036 "Capitalization and spacing conversion functions for Common Lisp")
8037 (description
8038 "This is a Common Lisp library to change the capitalization and spacing
8039 of a string or a symbol. It can convert to and from Lisp, english, underscore
8040 and camel-case rules.")
8041 (home-page "https://github.com/AccelerationNet/symbol-munger")
8042 ;; The package declares a BSD license, but all of the license
8043 ;; text is MIT.
8044 ;; See https://github.com/AccelerationNet/symbol-munger/issues/5
8045 (license license:expat))))
8046
8047 (define sbcl-lisp-unit2-boot0
8048 ;; There is a cyclical dependency between symbol-munger and lisp-unit2.
8049 ;; See https://github.com/AccelerationNet/symbol-munger/issues/4
8050 (let ((commit "fb9721524d1e4e73abb223ee036d74ce14a5505c")
8051 (revision "1"))
8052 (package
8053 (name "sbcl-lisp-unit2-boot0")
8054 (version (git-version "0.2.0" revision commit))
8055 (source
8056 (origin
8057 (method git-fetch)
8058 (uri (git-reference
8059 (url "https://github.com/AccelerationNet/lisp-unit2.git")
8060 (commit commit)))
8061 (file-name (git-file-name name version))
8062 (sha256
8063 (base32
8064 "1rsqy8y0jqll6xn9a593848f5wvd5ribv4csry1ly0hmdhfnqzlp"))))
8065 (build-system asdf-build-system/sbcl)
8066 (arguments
8067 `(#:asd-file "lisp-unit2.asd"
8068 #:asd-system-name "lisp-unit2"))
8069 (inputs
8070 `(("alexandria" ,sbcl-alexandria)
8071 ("cl-interpol" ,sbcl-cl-interpol)
8072 ("iterate" ,sbcl-iterate)
8073 ("symbol-munger-boot0" ,sbcl-symbol-munger-boot0)))
8074 (synopsis "Test Framework for Common Lisp")
8075 (description
8076 "LISP-UNIT2 is a Common Lisp library that supports unit testing in the
8077 style of JUnit for Java. It is a new version of the lisp-unit library written
8078 by Chris Riesbeck.")
8079 (home-page "https://github.com/AccelerationNet/lisp-unit2")
8080 (license license:expat))))
8081
8082 (define-public sbcl-symbol-munger
8083 (let ((commit "97598d4c3c53fd5da72ab78908fbd5d8c7a13416")
8084 (revision "1"))
8085 (package
8086 (name "sbcl-symbol-munger")
8087 (version (git-version "0.0.1" revision commit))
8088 (source
8089 (origin
8090 (method git-fetch)
8091 (uri (git-reference
8092 (url "https://github.com/AccelerationNet/symbol-munger.git")
8093 (commit commit)))
8094 (file-name (git-file-name name version))
8095 (sha256
8096 (base32
8097 "0y8jywjy0ldyhp7bxf16fdvdd2qgqnd7nlhlqfpfnzxcqk4xy1km"))))
8098 (build-system asdf-build-system/sbcl)
8099 (inputs
8100 `(("alexandria" ,sbcl-alexandria)
8101 ("iterate" ,sbcl-iterate)))
8102 (native-inputs
8103 `(("lisp-unit2-boot0" ,sbcl-lisp-unit2-boot0)))
8104 (synopsis
8105 "Capitalization and spacing conversion functions for Common Lisp")
8106 (description
8107 "This is a Common Lisp library to change the capitalization and spacing
8108 of a string or a symbol. It can convert to and from Lisp, english, underscore
8109 and camel-case rules.")
8110 (home-page "https://github.com/AccelerationNet/symbol-munger")
8111 ;; The package declares a BSD license, but all of the license
8112 ;; text is MIT.
8113 ;; See https://github.com/AccelerationNet/symbol-munger/issues/5
8114 (license license:expat))))
8115
8116 (define-public cl-symbol-munger
8117 (sbcl-package->cl-source-package sbcl-symbol-munger))
8118
8119 (define-public ecl-symbol-munger
8120 (sbcl-package->ecl-package sbcl-symbol-munger))
8121
8122 (define-public sbcl-lisp-unit2
8123 (package
8124 (inherit sbcl-lisp-unit2-boot0)
8125 (name "sbcl-lisp-unit2")
8126 (inputs
8127 `(("alexandria" ,sbcl-alexandria)
8128 ("cl-interpol" ,sbcl-cl-interpol)
8129 ("iterate" ,sbcl-iterate)
8130 ("symbol-munger" ,sbcl-symbol-munger)))))
8131
8132 (define-public cl-lisp-unit2
8133 (sbcl-package->cl-source-package sbcl-lisp-unit2))
8134
8135 (define-public ecl-lisp-unit2
8136 (sbcl-package->ecl-package sbcl-lisp-unit2))
8137
8138 (define-public sbcl-cl-csv
8139 (let ((commit "3eba29c8364b033fbe0d189c2500559278b6a362")
8140 (revision "1"))
8141 (package
8142 (name "sbcl-cl-csv")
8143 (version (git-version "1.0.6" revision commit))
8144 (source
8145 (origin
8146 (method git-fetch)
8147 (uri (git-reference
8148 (url "https://github.com/AccelerationNet/cl-csv.git")
8149 (commit commit)))
8150 (file-name (git-file-name name version))
8151 (sha256
8152 (base32
8153 "07h4ni89jzx93clx453hlnnb5g53hhlcmz5hghqv6ysam48lc8g6"))))
8154 (build-system asdf-build-system/sbcl)
8155 (arguments
8156 ;; See: https://github.com/AccelerationNet/cl-csv/pull/34
8157 `(#:tests? #f))
8158 (inputs
8159 `(("alexandria" ,sbcl-alexandria)
8160 ("cl-interpol" ,sbcl-cl-interpol)
8161 ("iterate" ,sbcl-iterate)))
8162 (native-inputs
8163 `(("lisp-unit2" ,sbcl-lisp-unit2)))
8164 (synopsis "Common lisp library for comma-separated values")
8165 (description
8166 "This is a Common Lisp library providing functions to read/write CSV
8167 from/to strings, streams and files.")
8168 (home-page "https://github.com/AccelerationNet/cl-csv")
8169 (license license:bsd-3))))
8170
8171 (define-public cl-csv
8172 (sbcl-package->cl-source-package sbcl-cl-csv))
8173
8174 (define-public ecl-cl-csv
8175 (sbcl-package->ecl-package sbcl-cl-csv))
8176
8177 (define-public sbcl-external-program
8178 (let ((commit "5888b8f1fd3953feeeacecbba4384ddda584a749")
8179 (revision "1"))
8180 (package
8181 (name "sbcl-external-program")
8182 (version (git-version "0.0.6" revision commit))
8183 (source
8184 (origin
8185 (method git-fetch)
8186 (uri (git-reference
8187 (url "https://github.com/sellout/external-program.git")
8188 (commit commit)))
8189 (file-name (git-file-name name version))
8190 (sha256
8191 (base32
8192 "0vww1x3yilb3bjwg6k184vaj4vxyxw4vralhnlm6lk4xac67kc9z"))))
8193 (build-system asdf-build-system/sbcl)
8194 (inputs
8195 `(("trivial-features" ,sbcl-trivial-features)))
8196 (native-inputs
8197 `(("fiveam" ,sbcl-fiveam)))
8198 (synopsis "Common Lisp library for running external programs")
8199 (description
8200 "EXTERNAL-PROGRAM enables running programs outside the Lisp
8201 process. It is an attempt to make the RUN-PROGRAM functionality in
8202 implementations like SBCL and CCL as portable as possible without
8203 sacrificing much in the way of power.")
8204 (home-page "https://github.com/sellout/external-program")
8205 (license license:llgpl))))
8206
8207 (define-public cl-external-program
8208 (sbcl-package->cl-source-package sbcl-external-program))
8209
8210 (define-public ecl-external-program
8211 (sbcl-package->ecl-package sbcl-external-program))
8212
8213 (define sbcl-cl-ana-boot0
8214 (let ((commit "fa7cee4c50aa1c859652813049ba0da7c18a0df9")
8215 (revision "1"))
8216 (package
8217 (name "sbcl-cl-ana-boot0")
8218 (version (git-version "0.0.0" revision commit))
8219 (source
8220 (origin
8221 (method git-fetch)
8222 (uri (git-reference
8223 (url "https://github.com/ghollisjr/cl-ana.git")
8224 (commit commit)))
8225 (file-name (git-file-name name version))
8226 (sha256
8227 (base32
8228 "0mr47l57m276dbpap7irr4fcnk5fgknhf6mgv4043s8h73amk5qh"))))
8229 (build-system asdf-build-system/sbcl)
8230 (synopsis "Common Lisp data analysis library")
8231 (description
8232 "CL-ANA is a data analysis library in Common Lisp providing tabular and
8233 binned data analysis along with nonlinear least squares fitting and
8234 visualization.")
8235 (home-page "https://github.com/ghollisjr/cl-ana")
8236 (license license:gpl3))))
8237
8238 (define-public sbcl-cl-ana.pathname-utils
8239 (package
8240 (inherit sbcl-cl-ana-boot0)
8241 (name "sbcl-cl-ana.pathname-utils")
8242 (arguments
8243 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8244 ((#:asd-file _ "") "pathname-utils/cl-ana.pathname-utils.asd")
8245 ((#:asd-system-name _ #f) "cl-ana.pathname-utils")))))
8246
8247 (define-public cl-ana.pathname-utils
8248 (sbcl-package->cl-source-package sbcl-cl-ana.pathname-utils))
8249
8250 (define-public ecl-cl-ana.pathname-utils
8251 (sbcl-package->ecl-package sbcl-cl-ana.pathname-utils))
8252
8253 (define-public sbcl-cl-ana.package-utils
8254 (package
8255 (inherit sbcl-cl-ana-boot0)
8256 (name "sbcl-cl-ana.package-utils")
8257 (inputs
8258 `(("alexandria" ,sbcl-alexandria)))
8259 (arguments
8260 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8261 ((#:asd-file _ "") "package-utils/cl-ana.package-utils.asd")
8262 ((#:asd-system-name _ #f) "cl-ana.package-utils")))))
8263
8264 (define-public cl-ana.package-utils
8265 (sbcl-package->cl-source-package sbcl-cl-ana.package-utils))
8266
8267 (define-public ecl-cl-ana.package-utils
8268 (sbcl-package->ecl-package sbcl-cl-ana.package-utils))
8269
8270 (define-public sbcl-cl-ana.string-utils
8271 (package
8272 (inherit sbcl-cl-ana-boot0)
8273 (name "sbcl-cl-ana.string-utils")
8274 (inputs
8275 `(("split-sequence" ,sbcl-split-sequence)))
8276 (arguments
8277 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8278 ((#:asd-file _ "") "string-utils/cl-ana.string-utils.asd")
8279 ((#:asd-system-name _ #f) "cl-ana.string-utils")))))
8280
8281 (define-public cl-ana.string-utils
8282 (sbcl-package->cl-source-package sbcl-cl-ana.string-utils))
8283
8284 (define-public ecl-cl-ana.string-utils
8285 (sbcl-package->ecl-package sbcl-cl-ana.string-utils))
8286
8287 (define-public sbcl-cl-ana.functional-utils
8288 (package
8289 (inherit sbcl-cl-ana-boot0)
8290 (name "sbcl-cl-ana.functional-utils")
8291 (arguments
8292 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8293 ((#:asd-file _ "") "functional-utils/cl-ana.functional-utils.asd")
8294 ((#:asd-system-name _ #f) "cl-ana.functional-utils")))))
8295
8296 (define-public cl-ana.functional-utils
8297 (sbcl-package->cl-source-package sbcl-cl-ana.functional-utils))
8298
8299 (define-public ecl-cl-ana.functional-utils
8300 (sbcl-package->ecl-package sbcl-cl-ana.functional-utils))
8301
8302 (define-public sbcl-cl-ana.list-utils
8303 (package
8304 (inherit sbcl-cl-ana-boot0)
8305 (name "sbcl-cl-ana.list-utils")
8306 (inputs
8307 `(("alexandria" ,sbcl-alexandria)
8308 ("cl-ana.functional-utils" ,sbcl-cl-ana.functional-utils)
8309 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)))
8310 (arguments
8311 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8312 ((#:asd-file _ "") "list-utils/cl-ana.list-utils.asd")
8313 ((#:asd-system-name _ #f) "cl-ana.list-utils")))))
8314
8315 (define-public cl-ana.list-utils
8316 (sbcl-package->cl-source-package sbcl-cl-ana.list-utils))
8317
8318 (define-public ecl-cl-ana.list-utils
8319 (sbcl-package->ecl-package sbcl-cl-ana.list-utils))
8320
8321 (define-public sbcl-cl-ana.generic-math
8322 (package
8323 (inherit sbcl-cl-ana-boot0)
8324 (name "sbcl-cl-ana.generic-math")
8325 (inputs
8326 `(("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8327 ("cl-ana.package-utils" ,sbcl-cl-ana.package-utils)))
8328 (arguments
8329 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8330 ((#:asd-file _ "") "generic-math/cl-ana.generic-math.asd")
8331 ((#:asd-system-name _ #f) "cl-ana.generic-math")))))
8332
8333 (define-public cl-ana.generic-math
8334 (sbcl-package->cl-source-package sbcl-cl-ana.generic-math))
8335
8336 (define-public ecl-cl-ana.generic-math
8337 (sbcl-package->ecl-package sbcl-cl-ana.generic-math))
8338
8339 (define-public sbcl-cl-ana.math-functions
8340 (package
8341 (inherit sbcl-cl-ana-boot0)
8342 (name "sbcl-cl-ana.math-functions")
8343 (inputs
8344 `(("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
8345 ("gsll" ,sbcl-gsll)))
8346 (arguments
8347 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8348 ((#:asd-file _ "") "math-functions/cl-ana.math-functions.asd")
8349 ((#:asd-system-name _ #f) "cl-ana.math-functions")))))
8350
8351 (define-public cl-ana.math-functions
8352 (sbcl-package->cl-source-package sbcl-cl-ana.math-functions))
8353
8354 (define-public sbcl-cl-ana.calculus
8355 (package
8356 (inherit sbcl-cl-ana-boot0)
8357 (name "sbcl-cl-ana.calculus")
8358 (inputs
8359 `(("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)))
8360 (arguments
8361 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8362 ((#:asd-file _ "") "calculus/cl-ana.calculus.asd")
8363 ((#:asd-system-name _ #f) "cl-ana.calculus")))))
8364
8365 (define-public cl-ana.calculus
8366 (sbcl-package->cl-source-package sbcl-cl-ana.calculus))
8367
8368 (define-public ecl-cl-ana.calculus
8369 (sbcl-package->ecl-package sbcl-cl-ana.calculus))
8370
8371 (define-public sbcl-cl-ana.symbol-utils
8372 (package
8373 (inherit sbcl-cl-ana-boot0)
8374 (name "sbcl-cl-ana.symbol-utils")
8375 (inputs
8376 `(("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)))
8377 (arguments
8378 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8379 ((#:asd-file _ "") "symbol-utils/cl-ana.symbol-utils.asd")
8380 ((#:asd-system-name _ #f) "cl-ana.symbol-utils")))))
8381
8382 (define-public cl-ana.symbol-utils
8383 (sbcl-package->cl-source-package sbcl-cl-ana.symbol-utils))
8384
8385 (define-public ecl-cl-ana.symbol-utils
8386 (sbcl-package->ecl-package sbcl-cl-ana.symbol-utils))
8387
8388 (define-public sbcl-cl-ana.macro-utils
8389 (package
8390 (inherit sbcl-cl-ana-boot0)
8391 (name "sbcl-cl-ana.macro-utils")
8392 (inputs
8393 `(("alexandria" ,sbcl-alexandria)
8394 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8395 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
8396 ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)
8397 ("split-sequence" ,sbcl-split-sequence)))
8398 (arguments
8399 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8400 ((#:asd-file _ "") "macro-utils/cl-ana.macro-utils.asd")
8401 ((#:asd-system-name _ #f) "cl-ana.macro-utils")))))
8402
8403 (define-public cl-ana.macro-utils
8404 (sbcl-package->cl-source-package sbcl-cl-ana.macro-utils))
8405
8406 (define-public ecl-cl-ana.macro-utils
8407 (sbcl-package->ecl-package sbcl-cl-ana.macro-utils))
8408
8409 (define-public sbcl-cl-ana.binary-tree
8410 (package
8411 (inherit sbcl-cl-ana-boot0)
8412 (name "sbcl-cl-ana.binary-tree")
8413 (inputs
8414 `(("cl-ana.functional-utils" ,sbcl-cl-ana.functional-utils)
8415 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8416 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)))
8417 (arguments
8418 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8419 ((#:asd-file _ "") "binary-tree/cl-ana.binary-tree.asd")
8420 ((#:asd-system-name _ #f) "cl-ana.binary-tree")))))
8421
8422 (define-public cl-ana.binary-tree
8423 (sbcl-package->cl-source-package sbcl-cl-ana.binary-tree))
8424
8425 (define-public ecl-cl-ana.binary-tree
8426 (sbcl-package->ecl-package sbcl-cl-ana.binary-tree))
8427
8428 (define-public sbcl-cl-ana.tensor
8429 (package
8430 (inherit sbcl-cl-ana-boot0)
8431 (name "sbcl-cl-ana.tensor")
8432 (inputs
8433 `(("alexandria" ,sbcl-alexandria)
8434 ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
8435 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8436 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
8437 ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)))
8438 (arguments
8439 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8440 ((#:asd-file _ "") "tensor/cl-ana.tensor.asd")
8441 ((#:asd-system-name _ #f) "cl-ana.tensor")))))
8442
8443 (define-public cl-ana.tensor
8444 (sbcl-package->cl-source-package sbcl-cl-ana.tensor))
8445
8446 (define-public ecl-cl-ana.tensor
8447 (sbcl-package->ecl-package sbcl-cl-ana.tensor))
8448
8449 (define-public sbcl-cl-ana.error-propogation
8450 (package
8451 (inherit sbcl-cl-ana-boot0)
8452 (name "sbcl-cl-ana.error-propogation")
8453 (inputs
8454 `(("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
8455 ("cl-ana.math-functions" ,sbcl-cl-ana.math-functions)))
8456 (arguments
8457 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8458 ((#:asd-file _ "") "error-propogation/cl-ana.error-propogation.asd")
8459 ((#:asd-system-name _ #f) "cl-ana.error-propogation")))))
8460
8461 (define-public cl-ana.error-propogation
8462 (sbcl-package->cl-source-package sbcl-cl-ana.error-propogation))
8463
8464 (define-public sbcl-cl-ana.quantity
8465 (package
8466 (inherit sbcl-cl-ana-boot0)
8467 (name "sbcl-cl-ana.quantity")
8468 (inputs
8469 `(("alexandria" ,sbcl-alexandria)
8470 ("cl-ana.error-propogation" ,sbcl-cl-ana.error-propogation)
8471 ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
8472 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8473 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
8474 ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)))
8475 (arguments
8476 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8477 ((#:asd-file _ "") "quantity/cl-ana.quantity.asd")
8478 ((#:asd-system-name _ #f) "cl-ana.quantity")))))
8479
8480 (define-public cl-ana.quantity
8481 (sbcl-package->cl-source-package sbcl-cl-ana.quantity))
8482
8483 (define-public sbcl-cl-ana.table
8484 (package
8485 (inherit sbcl-cl-ana-boot0)
8486 (name "sbcl-cl-ana.table")
8487 (inputs
8488 `(("alexandria" ,sbcl-alexandria)
8489 ("cl-ana.functional-utils" ,sbcl-cl-ana.functional-utils)
8490 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8491 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
8492 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
8493 ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)))
8494 (arguments
8495 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8496 ((#:asd-file _ "") "table/cl-ana.table.asd")
8497 ((#:asd-system-name _ #f) "cl-ana.table")))))
8498
8499 (define-public cl-ana.table
8500 (sbcl-package->cl-source-package sbcl-cl-ana.table))
8501
8502 (define-public ecl-cl-ana.table
8503 (sbcl-package->ecl-package sbcl-cl-ana.table))
8504
8505 (define-public sbcl-cl-ana.table-utils
8506 (package
8507 (inherit sbcl-cl-ana-boot0)
8508 (name "sbcl-cl-ana.table-utils")
8509 (inputs
8510 `(("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
8511 ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)
8512 ("cl-ana.table" ,sbcl-cl-ana.table)))
8513 (arguments
8514 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8515 ((#:asd-file _ "") "table-utils/cl-ana.table-utils.asd")
8516 ((#:asd-system-name _ #f) "cl-ana.table-utils")))))
8517
8518 (define-public cl-ana.table-utils
8519 (sbcl-package->cl-source-package sbcl-cl-ana.table-utils))
8520
8521 (define-public ecl-cl-ana.table-utils
8522 (sbcl-package->ecl-package sbcl-cl-ana.table-utils))
8523
8524 (define-public sbcl-cl-ana.hdf-cffi
8525 (package
8526 (inherit sbcl-cl-ana-boot0)
8527 (name "sbcl-cl-ana.hdf-cffi")
8528 (inputs
8529 `(("cffi" ,sbcl-cffi)
8530 ("hdf5" ,hdf5-parallel-openmpi)))
8531 (arguments
8532 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8533 ((#:asd-file _ "") "hdf-cffi/cl-ana.hdf-cffi.asd")
8534 ((#:asd-system-name _ #f) "cl-ana.hdf-cffi")
8535 ((#:phases phases '%standard-phases)
8536 `(modify-phases ,phases
8537 (add-after 'unpack 'fix-paths
8538 (lambda* (#:key inputs #:allow-other-keys)
8539 (substitute* "hdf-cffi/hdf-cffi.lisp"
8540 (("/usr/lib/i386-linux-gnu/hdf5/serial/libhdf5.so")
8541 (string-append
8542 (assoc-ref inputs "hdf5")
8543 "/lib/libhdf5.so")))))))))))
8544
8545 (define-public cl-ana.hdf-cffi
8546 (sbcl-package->cl-source-package sbcl-cl-ana.hdf-cffi))
8547
8548 (define-public ecl-cl-ana.hdf-cffi
8549 (sbcl-package->ecl-package sbcl-cl-ana.hdf-cffi))
8550
8551 (define-public sbcl-cl-ana.int-char
8552 (package
8553 (inherit sbcl-cl-ana-boot0)
8554 (name "sbcl-cl-ana.int-char")
8555 (arguments
8556 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8557 ((#:asd-file _ "") "int-char/cl-ana.int-char.asd")
8558 ((#:asd-system-name _ #f) "cl-ana.int-char")))))
8559
8560 (define-public cl-ana.int-char
8561 (sbcl-package->cl-source-package sbcl-cl-ana.int-char))
8562
8563 (define-public ecl-cl-ana.int-char
8564 (sbcl-package->ecl-package sbcl-cl-ana.int-char))
8565
8566 (define-public sbcl-cl-ana.memoization
8567 (package
8568 (inherit sbcl-cl-ana-boot0)
8569 (name "sbcl-cl-ana.memoization")
8570 (inputs
8571 `(("alexandria" ,sbcl-alexandria)))
8572 (arguments
8573 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8574 ((#:asd-file _ "") "memoization/cl-ana.memoization.asd")
8575 ((#:asd-system-name _ #f) "cl-ana.memoization")))))
8576
8577 (define-public cl-ana.memoization
8578 (sbcl-package->cl-source-package sbcl-cl-ana.memoization))
8579
8580 (define-public ecl-cl-ana.memoization
8581 (sbcl-package->ecl-package sbcl-cl-ana.memoization))
8582
8583 (define-public sbcl-cl-ana.typespec
8584 (package
8585 (inherit sbcl-cl-ana-boot0)
8586 (name "sbcl-cl-ana.typespec")
8587 (inputs
8588 `(("alexandria" ,sbcl-alexandria)
8589 ("cffi" ,sbcl-cffi)
8590 ("cl-ana.int-char" ,sbcl-cl-ana.int-char)
8591 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8592 ("cl-ana.memoization" ,sbcl-cl-ana.memoization)
8593 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
8594 ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)
8595 ("cl-ana.tensor" ,sbcl-cl-ana.tensor)))
8596 (arguments
8597 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8598 ((#:asd-file _ "") "typespec/cl-ana.typespec.asd")
8599 ((#:asd-system-name _ #f) "cl-ana.typespec")))))
8600
8601 (define-public cl-ana.typespec
8602 (sbcl-package->cl-source-package sbcl-cl-ana.typespec))
8603
8604 (define-public ecl-cl-ana.typespec
8605 (sbcl-package->ecl-package sbcl-cl-ana.typespec))
8606
8607 (define-public sbcl-cl-ana.hdf-typespec
8608 (package
8609 (inherit sbcl-cl-ana-boot0)
8610 (name "sbcl-cl-ana.hdf-typespec")
8611 (inputs
8612 `(("alexandria" ,sbcl-alexandria)
8613 ("cffi" ,sbcl-cffi)
8614 ("cl-ana.hdf-cffi" ,sbcl-cl-ana.hdf-cffi)
8615 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8616 ("cl-ana.memoization" ,sbcl-cl-ana.memoization)
8617 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
8618 ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)
8619 ("cl-ana.typespec" ,sbcl-cl-ana.typespec)))
8620 (arguments
8621 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8622 ((#:asd-file _ "") "hdf-typespec/cl-ana.hdf-typespec.asd")
8623 ((#:asd-system-name _ #f) "cl-ana.hdf-typespec")))))
8624
8625 (define-public cl-ana.hdf-typespec
8626 (sbcl-package->cl-source-package sbcl-cl-ana.hdf-typespec))
8627
8628 (define-public ecl-cl-ana.hdf-typespec
8629 (sbcl-package->ecl-package sbcl-cl-ana.hdf-typespec))
8630
8631 (define-public sbcl-cl-ana.hdf-utils
8632 (package
8633 (inherit sbcl-cl-ana-boot0)
8634 (name "sbcl-cl-ana.hdf-utils")
8635 (inputs
8636 `(("alexandria" ,sbcl-alexandria)
8637 ("cffi" ,sbcl-cffi)
8638 ("cl-ana.hdf-cffi" ,sbcl-cl-ana.hdf-cffi)
8639 ("cl-ana.hdf-typespec" ,sbcl-cl-ana.hdf-typespec)
8640 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
8641 ("cl-ana.memoization" ,sbcl-cl-ana.memoization)
8642 ("cl-ana.pathname-utils" ,sbcl-cl-ana.pathname-utils)
8643 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
8644 ("cl-ana.typespec" ,sbcl-cl-ana.typespec)))
8645 (arguments
8646 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8647 ((#:asd-file _ "") "hdf-utils/cl-ana.hdf-utils.asd")
8648 ((#:asd-system-name _ #f) "cl-ana.hdf-utils")))))
8649
8650 (define-public cl-ana.hdf-utils
8651 (sbcl-package->cl-source-package sbcl-cl-ana.hdf-utils))
8652
8653 (define-public ecl-cl-ana.hdf-utils
8654 (sbcl-package->ecl-package sbcl-cl-ana.hdf-utils))
8655
8656 (define-public sbcl-cl-ana.typed-table
8657 (package
8658 (inherit sbcl-cl-ana-boot0)
8659 (name "sbcl-cl-ana.typed-table")
8660 (inputs
8661 `(("alexandria" ,sbcl-alexandria)
8662 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8663 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
8664 ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)
8665 ("cl-ana.table" ,sbcl-cl-ana.table)
8666 ("cl-ana.typespec" ,sbcl-cl-ana.typespec)))
8667 (arguments
8668 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8669 ((#:asd-file _ "") "typed-table/cl-ana.typed-table.asd")
8670 ((#:asd-system-name _ #f) "cl-ana.typed-table")))))
8671
8672 (define-public cl-ana.typed-table
8673 (sbcl-package->cl-source-package sbcl-cl-ana.typed-table))
8674
8675 (define-public ecl-cl-ana.typed-table
8676 (sbcl-package->ecl-package sbcl-cl-ana.typed-table))
8677
8678 (define-public sbcl-cl-ana.hdf-table
8679 (package
8680 (inherit sbcl-cl-ana-boot0)
8681 (name "sbcl-cl-ana.hdf-table")
8682 (inputs
8683 `(("alexandria" ,sbcl-alexandria)
8684 ("cl-ana.binary-tree" ,sbcl-cl-ana.binary-tree)
8685 ("cl-ana.hdf-cffi" ,sbcl-cl-ana.hdf-cffi)
8686 ("cl-ana.hdf-typespec" ,sbcl-cl-ana.hdf-typespec)
8687 ("cl-ana.hdf-utils" ,sbcl-cl-ana.hdf-utils)
8688 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8689 ("cl-ana.memoization" ,sbcl-cl-ana.memoization)
8690 ("cl-ana.table" ,sbcl-cl-ana.table)
8691 ("cl-ana.typed-table" ,sbcl-cl-ana.typed-table)
8692 ("cl-ana.typespec" ,sbcl-cl-ana.typespec)))
8693 (arguments
8694 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8695 ((#:asd-file _ "") "hdf-table/cl-ana.hdf-table.asd")
8696 ((#:asd-system-name _ #f) "cl-ana.hdf-table")))))
8697
8698 (define-public cl-ana.hdf-table
8699 (sbcl-package->cl-source-package sbcl-cl-ana.hdf-table))
8700
8701 (define-public ecl-cl-ana.hdf-table
8702 (sbcl-package->ecl-package sbcl-cl-ana.hdf-table))
8703
8704 (define-public sbcl-cl-ana.gsl-cffi
8705 (package
8706 (inherit sbcl-cl-ana-boot0)
8707 (name "sbcl-cl-ana.gsl-cffi")
8708 (inputs
8709 `(("cffi" ,sbcl-cffi)
8710 ("gsl" ,gsl)))
8711 (arguments
8712 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8713 ((#:asd-file _ "") "gsl-cffi/cl-ana.gsl-cffi.asd")
8714 ((#:asd-system-name _ #f) "cl-ana.gsl-cffi")
8715 ((#:phases phases '%standard-phases)
8716 `(modify-phases ,phases
8717 (add-after 'unpack 'fix-paths
8718 (lambda* (#:key inputs #:allow-other-keys)
8719 (substitute* "gsl-cffi/gsl-cffi.lisp"
8720 (("define-foreign-library gsl-cffi" all)
8721 (string-append all " (:unix "
8722 (assoc-ref inputs "gsl")
8723 "/lib/libgsl.so)")))))))))))
8724
8725 (define-public cl-ana.gsl-cffi
8726 (sbcl-package->cl-source-package sbcl-cl-ana.gsl-cffi))
8727
8728 (define-public ecl-cl-ana.gsl-cffi
8729 (sbcl-package->ecl-package sbcl-cl-ana.gsl-cffi))
8730
8731 (define-public sbcl-cl-ana.ntuple-table
8732 (package
8733 (inherit sbcl-cl-ana-boot0)
8734 (name "sbcl-cl-ana.ntuple-table")
8735 (inputs
8736 `(("alexandria" ,sbcl-alexandria)
8737 ("cffi" ,sbcl-cffi)
8738 ("cl-ana.gsl-cffi" ,sbcl-cl-ana.gsl-cffi)
8739 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8740 ("cl-ana.table" ,sbcl-cl-ana.table)
8741 ("cl-ana.typed-table" ,sbcl-cl-ana.typed-table)
8742 ("cl-ana.typespec" ,sbcl-cl-ana.typespec)
8743 ("gsll" ,sbcl-gsll)))
8744 (arguments
8745 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8746 ((#:asd-file _ "") "ntuple-table/cl-ana.ntuple-table.asd")
8747 ((#:asd-system-name _ #f) "cl-ana.ntuple-table")))))
8748
8749 (define-public cl-ana.ntuple-table
8750 (sbcl-package->cl-source-package sbcl-cl-ana.ntuple-table))
8751
8752 (define-public sbcl-cl-ana.csv-table
8753 (package
8754 (inherit sbcl-cl-ana-boot0)
8755 (name "sbcl-cl-ana.csv-table")
8756 (inputs
8757 `(("alexandria" ,sbcl-alexandria)
8758 ("antik" ,sbcl-antik)
8759 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8760 ("cl-ana.table" ,sbcl-cl-ana.table)
8761 ("cl-csv" ,sbcl-cl-csv)
8762 ("iterate" ,sbcl-iterate)))
8763 (arguments
8764 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8765 ((#:asd-file _ "") "csv-table/cl-ana.csv-table.asd")
8766 ((#:asd-system-name _ #f) "cl-ana.csv-table")))))
8767
8768 (define-public cl-ana.csv-table
8769 (sbcl-package->cl-source-package sbcl-cl-ana.csv-table))
8770
8771 (define-public sbcl-cl-ana.reusable-table
8772 (package
8773 (inherit sbcl-cl-ana-boot0)
8774 (name "sbcl-cl-ana.reusable-table")
8775 (inputs
8776 `(("alexandria" ,sbcl-alexandria)
8777 ("cl-ana.table" ,sbcl-cl-ana.table)))
8778 (arguments
8779 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8780 ((#:asd-file _ "") "reusable-table/cl-ana.reusable-table.asd")
8781 ((#:asd-system-name _ #f) "cl-ana.reusable-table")))))
8782
8783 (define-public cl-ana.reusable-table
8784 (sbcl-package->cl-source-package sbcl-cl-ana.reusable-table))
8785
8786 (define-public ecl-cl-ana.reusable-table
8787 (sbcl-package->ecl-package sbcl-cl-ana.reusable-table))
8788
8789 (define-public sbcl-cl-ana.linear-algebra
8790 (package
8791 (inherit sbcl-cl-ana-boot0)
8792 (name "sbcl-cl-ana.linear-algebra")
8793 (inputs
8794 `(("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
8795 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8796 ("cl-ana.math-functions" ,sbcl-cl-ana.math-functions)
8797 ("cl-ana.tensor" ,sbcl-cl-ana.tensor)
8798 ("gsll" ,sbcl-gsll)))
8799 (arguments
8800 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8801 ((#:asd-file _ "") "linear-algebra/cl-ana.linear-algebra.asd")
8802 ((#:asd-system-name _ #f) "cl-ana.linear-algebra")))))
8803
8804 (define-public cl-ana.linear-algebra
8805 (sbcl-package->cl-source-package sbcl-cl-ana.linear-algebra))
8806
8807 (define-public sbcl-cl-ana.lorentz
8808 (package
8809 (inherit sbcl-cl-ana-boot0)
8810 (name "sbcl-cl-ana.lorentz")
8811 (inputs
8812 `(("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
8813 ("cl-ana.linear-algebra" ,sbcl-cl-ana.linear-algebra)
8814 ("cl-ana.tensor" ,sbcl-cl-ana.tensor)
8815 ("iterate" ,sbcl-iterate)))
8816 (arguments
8817 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8818 ((#:asd-file _ "") "lorentz/cl-ana.lorentz.asd")
8819 ((#:asd-system-name _ #f) "cl-ana.lorentz")))))
8820
8821 (define-public cl-ana.lorentz
8822 (sbcl-package->cl-source-package sbcl-cl-ana.lorentz))
8823
8824 (define-public sbcl-cl-ana.clos-utils
8825 (package
8826 (inherit sbcl-cl-ana-boot0)
8827 (name "sbcl-cl-ana.clos-utils")
8828 (inputs
8829 `(("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8830 ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)
8831 ("cl-ana.tensor" ,sbcl-cl-ana.tensor)
8832 ("closer-mop" ,sbcl-closer-mop)))
8833 (arguments
8834 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8835 ((#:asd-file _ "") "clos-utils/cl-ana.clos-utils.asd")
8836 ((#:asd-system-name _ #f) "cl-ana.clos-utils")))))
8837
8838 (define-public cl-ana.clos-utils
8839 (sbcl-package->cl-source-package sbcl-cl-ana.clos-utils))
8840
8841 (define-public ecl-cl-ana.clos-utils
8842 (sbcl-package->ecl-package sbcl-cl-ana.clos-utils))
8843
8844 (define-public sbcl-cl-ana.hash-table-utils
8845 (package
8846 (inherit sbcl-cl-ana-boot0)
8847 (name "sbcl-cl-ana.hash-table-utils")
8848 (arguments
8849 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8850 ((#:asd-file _ "") "hash-table-utils/cl-ana.hash-table-utils.asd")
8851 ((#:asd-system-name _ #f) "cl-ana.hash-table-utils")))))
8852
8853 (define-public cl-ana.hash-table-utils
8854 (sbcl-package->cl-source-package sbcl-cl-ana.hash-table-utils))
8855
8856 (define-public ecl-cl-ana.hash-table-utils
8857 (sbcl-package->ecl-package sbcl-cl-ana.hash-table-utils))
8858
8859 (define-public sbcl-cl-ana.map
8860 (package
8861 (inherit sbcl-cl-ana-boot0)
8862 (name "sbcl-cl-ana.map")
8863 (inputs
8864 `(("cl-ana.hash-table-utils" ,sbcl-cl-ana.hash-table-utils)))
8865 (arguments
8866 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8867 ((#:asd-file _ "") "map/cl-ana.map.asd")
8868 ((#:asd-system-name _ #f) "cl-ana.map")))))
8869
8870 (define-public cl-ana.map
8871 (sbcl-package->cl-source-package sbcl-cl-ana.map))
8872
8873 (define-public ecl-cl-ana.map
8874 (sbcl-package->ecl-package sbcl-cl-ana.map))
8875
8876 (define-public sbcl-cl-ana.fitting
8877 (package
8878 (inherit sbcl-cl-ana-boot0)
8879 (name "sbcl-cl-ana.fitting")
8880 (inputs
8881 `(("alexandria" ,sbcl-alexandria)
8882 ("cl-ana.error-propogation" ,sbcl-cl-ana.error-propogation)
8883 ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
8884 ("cl-ana.map" ,sbcl-cl-ana.map)
8885 ("cl-ana.math-functions" ,sbcl-cl-ana.math-functions)
8886 ("gsll" ,sbcl-gsll)))
8887 (arguments
8888 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8889 ((#:asd-file _ "") "fitting/cl-ana.fitting.asd")
8890 ((#:asd-system-name _ #f) "cl-ana.fitting")))))
8891
8892 (define-public cl-ana.fitting
8893 (sbcl-package->cl-source-package sbcl-cl-ana.fitting))
8894
8895 (define-public sbcl-cl-ana.histogram
8896 (package
8897 (inherit sbcl-cl-ana-boot0)
8898 (name "sbcl-cl-ana.histogram")
8899 (inputs
8900 `(("alexandria" ,sbcl-alexandria)
8901 ("iterate" ,sbcl-iterate)
8902 ("cl-ana.binary-tree" ,sbcl-cl-ana.binary-tree)
8903 ("cl-ana.clos-utils" ,sbcl-cl-ana.clos-utils)
8904 ("cl-ana.fitting" ,sbcl-cl-ana.fitting)
8905 ("cl-ana.functional-utils" ,sbcl-cl-ana.functional-utils)
8906 ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
8907 ("cl-ana.hash-table-utils" ,sbcl-cl-ana.hash-table-utils)
8908 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8909 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
8910 ("cl-ana.map" ,sbcl-cl-ana.map)
8911 ("cl-ana.tensor" ,sbcl-cl-ana.tensor)))
8912 (arguments
8913 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8914 ((#:asd-file _ "") "histogram/cl-ana.histogram.asd")
8915 ((#:asd-system-name _ #f) "cl-ana.histogram")))))
8916
8917 (define-public cl-ana.histogram
8918 (sbcl-package->cl-source-package sbcl-cl-ana.histogram))
8919
8920 (define-public sbcl-cl-ana.file-utils
8921 (package
8922 (inherit sbcl-cl-ana-boot0)
8923 (name "sbcl-cl-ana.file-utils")
8924 (inputs
8925 `(("external-program" ,sbcl-external-program)
8926 ("split-sequence" ,sbcl-split-sequence)))
8927 (arguments
8928 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8929 ((#:asd-file _ "") "file-utils/cl-ana.file-utils.asd")
8930 ((#:asd-system-name _ #f) "cl-ana.file-utils")))))
8931
8932 (define-public cl-ana.file-utils
8933 (sbcl-package->cl-source-package sbcl-cl-ana.file-utils))
8934
8935 (define-public ecl-cl-ana.file-utils
8936 (sbcl-package->ecl-package sbcl-cl-ana.file-utils))
8937
8938 (define-public sbcl-cl-ana.statistics
8939 (package
8940 (inherit sbcl-cl-ana-boot0)
8941 (name "sbcl-cl-ana.statistics")
8942 (inputs
8943 `(("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
8944 ("cl-ana.histogram" ,sbcl-cl-ana.histogram)
8945 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8946 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
8947 ("cl-ana.map" ,sbcl-cl-ana.map)))
8948 (arguments
8949 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8950 ((#:asd-file _ "") "statistics/cl-ana.statistics.asd")
8951 ((#:asd-system-name _ #f) "cl-ana.statistics")))))
8952
8953 (define-public cl-ana.statistics
8954 (sbcl-package->cl-source-package sbcl-cl-ana.statistics))
8955
8956 (define-public sbcl-cl-ana.gnuplot-interface
8957 (package
8958 (inherit sbcl-cl-ana-boot0)
8959 (name "sbcl-cl-ana.gnuplot-interface")
8960 (inputs
8961 `(("external-program" ,sbcl-external-program)))
8962 (arguments
8963 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8964 ((#:asd-file _ "") "gnuplot-interface/cl-ana.gnuplot-interface.asd")
8965 ((#:asd-system-name _ #f) "cl-ana.gnuplot-interface")))))
8966
8967 (define-public cl-ana.gnuplot-interface
8968 (sbcl-package->cl-source-package sbcl-cl-ana.gnuplot-interface))
8969
8970 (define-public ecl-cl-ana.gnuplot-interface
8971 (sbcl-package->ecl-package sbcl-cl-ana.gnuplot-interface))
8972
8973 (define-public sbcl-cl-ana.plotting
8974 (package
8975 (inherit sbcl-cl-ana-boot0)
8976 (name "sbcl-cl-ana.plotting")
8977 (inputs
8978 `(("alexandria" ,sbcl-alexandria)
8979 ("cl-ana.error-propogation" ,sbcl-cl-ana.error-propogation)
8980 ("cl-ana.functional-utils" ,sbcl-cl-ana.functional-utils)
8981 ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
8982 ("cl-ana.gnuplot-interface" ,sbcl-cl-ana.gnuplot-interface)
8983 ("cl-ana.histogram" ,sbcl-cl-ana.histogram)
8984 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8985 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
8986 ("cl-ana.map" ,sbcl-cl-ana.map)
8987 ("cl-ana.math-functions" ,sbcl-cl-ana.math-functions)
8988 ("cl-ana.pathname-utils" ,sbcl-cl-ana.pathname-utils)
8989 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
8990 ("cl-ana.tensor" ,sbcl-cl-ana.tensor)
8991 ("external-program" ,sbcl-external-program)
8992 ("split-sequence" ,sbcl-split-sequence)))
8993 (arguments
8994 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8995 ((#:asd-file _ "") "plotting/cl-ana.plotting.asd")
8996 ((#:asd-system-name _ #f) "cl-ana.plotting")))))
8997
8998 (define-public cl-ana.plotting
8999 (sbcl-package->cl-source-package sbcl-cl-ana.plotting))
9000
9001 (define-public sbcl-cl-ana.table-viewing
9002 (package
9003 (inherit sbcl-cl-ana-boot0)
9004 (name "sbcl-cl-ana.table-viewing")
9005 (inputs
9006 `(("alexandria" ,sbcl-alexandria)
9007 ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
9008 ("cl-ana.histogram" ,sbcl-cl-ana.histogram)
9009 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
9010 ("cl-ana.plotting" ,sbcl-cl-ana.plotting)
9011 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
9012 ("cl-ana.table" ,sbcl-cl-ana.table)))
9013 (arguments
9014 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9015 ((#:asd-file _ "") "table-viewing/cl-ana.table-viewing.asd")
9016 ((#:asd-system-name _ #f) "cl-ana.table-viewing")))))
9017
9018 (define-public cl-ana.table-viewing
9019 (sbcl-package->cl-source-package sbcl-cl-ana.table-viewing))
9020
9021 (define-public sbcl-cl-ana.serialization
9022 (package
9023 (inherit sbcl-cl-ana-boot0)
9024 (name "sbcl-cl-ana.serialization")
9025 (inputs
9026 `(("cl-ana.error-propogation" ,sbcl-cl-ana.error-propogation)
9027 ("cl-ana.hdf-utils" ,sbcl-cl-ana.hdf-utils)
9028 ("cl-ana.hdf-table" ,sbcl-cl-ana.hdf-table)
9029 ("cl-ana.histogram" ,sbcl-cl-ana.histogram)
9030 ("cl-ana.int-char" ,sbcl-cl-ana.int-char)
9031 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
9032 ("cl-ana.typespec" ,sbcl-cl-ana.typespec)))
9033 (arguments
9034 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9035 ((#:asd-file _ "") "serialization/cl-ana.serialization.asd")
9036 ((#:asd-system-name _ #f) "cl-ana.serialization")))))
9037
9038 (define-public cl-ana.serialization
9039 (sbcl-package->cl-source-package sbcl-cl-ana.serialization))
9040
9041 (define-public sbcl-cl-ana.makeres
9042 (package
9043 (inherit sbcl-cl-ana-boot0)
9044 (name "sbcl-cl-ana.makeres")
9045 (inputs
9046 `(("alexandria" ,sbcl-alexandria)
9047 ("cl-ana.error-propogation" ,sbcl-cl-ana.error-propogation)
9048 ("cl-ana.file-utils" ,sbcl-cl-ana.file-utils)
9049 ("cl-ana.functional-utils" ,sbcl-cl-ana.functional-utils)
9050 ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
9051 ("cl-ana.hash-table-utils" ,sbcl-cl-ana.hash-table-utils)
9052 ("cl-ana.hdf-utils" ,sbcl-cl-ana.hdf-utils)
9053 ("cl-ana.histogram" ,sbcl-cl-ana.histogram)
9054 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
9055 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
9056 ("cl-ana.map" ,sbcl-cl-ana.map)
9057 ("cl-ana.memoization" ,sbcl-cl-ana.memoization)
9058 ("cl-ana.pathname-utils" ,sbcl-cl-ana.pathname-utils)
9059 ("cl-ana.plotting" ,sbcl-cl-ana.plotting)
9060 ("cl-ana.reusable-table" ,sbcl-cl-ana.reusable-table)
9061 ("cl-ana.serialization" ,sbcl-cl-ana.serialization)
9062 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
9063 ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)
9064 ("cl-ana.table" ,sbcl-cl-ana.table)
9065 ("external-program" ,sbcl-external-program)))
9066 (native-inputs
9067 `(("cl-fad" ,sbcl-cl-fad)))
9068 (arguments
9069 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9070 ((#:asd-file _ "") "makeres/cl-ana.makeres.asd")
9071 ((#:asd-system-name _ #f) "cl-ana.makeres")))))
9072
9073 (define-public cl-ana.makeres
9074 (sbcl-package->cl-source-package sbcl-cl-ana.makeres))
9075
9076 (define-public sbcl-cl-ana.makeres-macro
9077 (package
9078 (inherit sbcl-cl-ana-boot0)
9079 (name "sbcl-cl-ana.makeres-macro")
9080 (inputs
9081 `(("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
9082 ("cl-ana.makeres" ,sbcl-cl-ana.makeres)))
9083 (arguments
9084 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9085 ((#:asd-file _ "") "makeres-macro/cl-ana.makeres-macro.asd")
9086 ((#:asd-system-name _ #f) "cl-ana.makeres-macro")))))
9087
9088 (define-public cl-ana.makeres-macro
9089 (sbcl-package->cl-source-package sbcl-cl-ana.makeres-macro))
9090
9091 (define-public sbcl-cl-ana.makeres-block
9092 (package
9093 (inherit sbcl-cl-ana-boot0)
9094 (name "sbcl-cl-ana.makeres-block")
9095 (inputs
9096 `(("alexandria" ,sbcl-alexandria)
9097 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
9098 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
9099 ("cl-ana.makeres" ,sbcl-cl-ana.makeres)))
9100 (arguments
9101 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9102 ((#:asd-file _ "") "makeres-block/cl-ana.makeres-block.asd")
9103 ((#:asd-system-name _ #f) "cl-ana.makeres-block")))))
9104
9105 (define-public cl-ana.makeres-block
9106 (sbcl-package->cl-source-package sbcl-cl-ana.makeres-block))
9107
9108 (define-public sbcl-cl-ana.makeres-progress
9109 (package
9110 (inherit sbcl-cl-ana-boot0)
9111 (name "sbcl-cl-ana.makeres-progress")
9112 (inputs
9113 `(("alexandria" ,sbcl-alexandria)
9114 ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
9115 ("cl-ana.makeres" ,sbcl-cl-ana.makeres)))
9116 (arguments
9117 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9118 ((#:asd-file _ "") "makeres-progress/cl-ana.makeres-progress.asd")
9119 ((#:asd-system-name _ #f) "cl-ana.makeres-progress")))))
9120
9121 (define-public cl-ana.makeres-progress
9122 (sbcl-package->cl-source-package sbcl-cl-ana.makeres-progress))
9123
9124 (define-public sbcl-cl-ana.makeres-table
9125 (package
9126 (inherit sbcl-cl-ana-boot0)
9127 (name "sbcl-cl-ana.makeres-table")
9128 (inputs
9129 `(("cl-ana.csv-table" ,sbcl-cl-ana.csv-table)
9130 ("cl-ana.hash-table-utils" ,sbcl-cl-ana.hash-table-utils)
9131 ("cl-ana.hdf-table" ,sbcl-cl-ana.hdf-table)
9132 ("cl-ana.hdf-utils" ,sbcl-cl-ana.hdf-utils)
9133 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
9134 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
9135 ("cl-ana.makeres" ,sbcl-cl-ana.makeres)
9136 ("cl-ana.makeres-macro" ,sbcl-cl-ana.makeres-macro)
9137 ("cl-ana.memoization" ,sbcl-cl-ana.memoization)
9138 ("cl-ana.ntuple-table" ,sbcl-cl-ana.ntuple-table)
9139 ("cl-ana.reusable-table" ,sbcl-cl-ana.reusable-table)
9140 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
9141 ("cl-ana.table" ,sbcl-cl-ana.table)))
9142 (native-inputs
9143 `(("cl-fad" ,sbcl-cl-fad)))
9144 (arguments
9145 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9146 ((#:asd-file _ "") "makeres-table/cl-ana.makeres-table.asd")
9147 ((#:asd-system-name _ #f) "cl-ana.makeres-table")))))
9148
9149 (define-public cl-ana.makeres-table
9150 (sbcl-package->cl-source-package sbcl-cl-ana.makeres-table))
9151
9152 (define-public sbcl-cl-ana.makeres-graphviz
9153 (package
9154 (inherit sbcl-cl-ana-boot0)
9155 (name "sbcl-cl-ana.makeres-graphviz")
9156 (inputs
9157 `(("cl-ana.makeres" ,sbcl-cl-ana.makeres)
9158 ("external-program" ,sbcl-external-program)))
9159 (arguments
9160 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9161 ((#:asd-file _ "") "makeres-graphviz/cl-ana.makeres-graphviz.asd")
9162 ((#:asd-system-name _ #f) "cl-ana.makeres-graphviz")))))
9163
9164 (define-public cl-ana.makeres-graphviz
9165 (sbcl-package->cl-source-package sbcl-cl-ana.makeres-graphviz))
9166
9167 (define-public sbcl-cl-ana.makeres-branch
9168 (package
9169 (inherit sbcl-cl-ana-boot0)
9170 (name "sbcl-cl-ana.makeres-branch")
9171 (inputs
9172 `(("alexandria" ,sbcl-alexandria)
9173 ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
9174 ("cl-ana.hash-table-utils" ,sbcl-cl-ana.hash-table-utils)
9175 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
9176 ("cl-ana.map" ,sbcl-cl-ana.map)
9177 ("cl-ana.makeres" ,sbcl-cl-ana.makeres)))
9178 (arguments
9179 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9180 ((#:asd-file _ "") "makeres-branch/cl-ana.makeres-branch.asd")
9181 ((#:asd-system-name _ #f) "cl-ana.makeres-branch")))))
9182
9183 (define-public cl-ana.makeres-branch
9184 (sbcl-package->cl-source-package sbcl-cl-ana.makeres-branch))
9185
9186 (define-public sbcl-cl-ana.makeres-utils
9187 (package
9188 (inherit sbcl-cl-ana-boot0)
9189 (name "sbcl-cl-ana.makeres-utils")
9190 (inputs
9191 `(("alexandria" ,sbcl-alexandria)
9192 ("cl-ana.file-utils" ,sbcl-cl-ana.file-utils)
9193 ("cl-ana.fitting" ,sbcl-cl-ana.fitting)
9194 ("cl-ana.functional-utils" ,sbcl-cl-ana.functional-utils)
9195 ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
9196 ("cl-ana.histogram" ,sbcl-cl-ana.histogram)
9197 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
9198 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
9199 ("cl-ana.makeres" ,sbcl-cl-ana.makeres)
9200 ("cl-ana.map" ,sbcl-cl-ana.map)
9201 ("cl-ana.pathname-utils" ,sbcl-cl-ana.pathname-utils)
9202 ("cl-ana.plotting" ,sbcl-cl-ana.plotting)
9203 ("cl-ana.reusable-table" ,sbcl-cl-ana.reusable-table)
9204 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
9205 ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)
9206 ("cl-ana.table" ,sbcl-cl-ana.table)))
9207 (native-inputs
9208 `(("cl-fad" ,sbcl-cl-fad)))
9209 (arguments
9210 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9211 ((#:asd-file _ "") "makeres-utils/cl-ana.makeres-utils.asd")
9212 ((#:asd-system-name _ #f) "cl-ana.makeres-utils")))))
9213
9214 (define-public cl-ana.makeres-utils
9215 (sbcl-package->cl-source-package sbcl-cl-ana.makeres-utils))
9216
9217 (define-public sbcl-cl-ana.statistical-learning
9218 (package
9219 (inherit sbcl-cl-ana-boot0)
9220 (name "sbcl-cl-ana.statistical-learning")
9221 (inputs
9222 `(("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
9223 ("cl-ana.functional-utils" ,sbcl-cl-ana.functional-utils)
9224 ("cl-ana.histogram" ,sbcl-cl-ana.histogram)
9225 ("cl-ana.linear-algebra" ,sbcl-cl-ana.linear-algebra)
9226 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
9227 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
9228 ("cl-ana.math-functions" ,sbcl-cl-ana.math-functions)
9229 ("cl-ana.map" ,sbcl-cl-ana.map)
9230 ("cl-ana.statistics" ,sbcl-cl-ana.statistics)))
9231 (native-inputs
9232 `(("cl-fad" ,sbcl-cl-fad)))
9233 (arguments
9234 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9235 ((#:asd-file _ "")
9236 "statistical-learning/cl-ana.statistical-learning.asd")
9237 ((#:asd-system-name _ #f) "cl-ana.statistical-learning")))))
9238
9239 (define-public cl-ana.statistical-learning
9240 (sbcl-package->cl-source-package sbcl-cl-ana.statistical-learning))
9241
9242 (define-public sbcl-cl-ana
9243 (package
9244 (inherit sbcl-cl-ana-boot0)
9245 (name "sbcl-cl-ana")
9246 (inputs
9247 `(("cl-ana.binary-tree" ,sbcl-cl-ana.binary-tree)
9248 ("cl-ana.calculus" ,sbcl-cl-ana.calculus)
9249 ("cl-ana.clos-utils" ,sbcl-cl-ana.clos-utils)
9250 ("cl-ana.csv-table" ,sbcl-cl-ana.csv-table)
9251 ("cl-ana.error-propogation" ,sbcl-cl-ana.error-propogation)
9252 ("cl-ana.file-utils" ,sbcl-cl-ana.file-utils)
9253 ("cl-ana.fitting" ,sbcl-cl-ana.fitting)
9254 ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
9255 ("cl-ana.hash-table-utils" ,sbcl-cl-ana.hash-table-utils)
9256 ("cl-ana.hdf-table" ,sbcl-cl-ana.hdf-table)
9257 ("cl-ana.histogram" ,sbcl-cl-ana.histogram)
9258 ("cl-ana.int-char" ,sbcl-cl-ana.int-char)
9259 ("cl-ana.linear-algebra" ,sbcl-cl-ana.linear-algebra)
9260 ("cl-ana.lorentz" ,sbcl-cl-ana.lorentz)
9261 ("cl-ana.map" ,sbcl-cl-ana.map)
9262 ("cl-ana.makeres" ,sbcl-cl-ana.makeres)
9263 ("cl-ana.makeres-block" ,sbcl-cl-ana.makeres-block)
9264 ("cl-ana.makeres-branch" ,sbcl-cl-ana.makeres-branch)
9265 ("cl-ana.makeres-graphviz" ,sbcl-cl-ana.makeres-graphviz)
9266 ("cl-ana.makeres-macro" ,sbcl-cl-ana.makeres-macro)
9267 ("cl-ana.makeres-progress" ,sbcl-cl-ana.makeres-progress)
9268 ("cl-ana.makeres-table" ,sbcl-cl-ana.makeres-table)
9269 ("cl-ana.makeres-utils" ,sbcl-cl-ana.makeres-utils)
9270 ("cl-ana.math-functions" ,sbcl-cl-ana.math-functions)
9271 ("cl-ana.ntuple-table" ,sbcl-cl-ana.ntuple-table)
9272 ("cl-ana.package-utils" ,sbcl-cl-ana.package-utils)
9273 ("cl-ana.pathname-utils" ,sbcl-cl-ana.pathname-utils)
9274 ("cl-ana.plotting" ,sbcl-cl-ana.plotting)
9275 ("cl-ana.quantity" ,sbcl-cl-ana.quantity)
9276 ("cl-ana.reusable-table" ,sbcl-cl-ana.reusable-table)
9277 ("cl-ana.serialization" ,sbcl-cl-ana.serialization)
9278 ("cl-ana.statistics" ,sbcl-cl-ana.statistics)
9279 ("cl-ana.statistical-learning" ,sbcl-cl-ana.statistical-learning)
9280 ("cl-ana.table" ,sbcl-cl-ana.table)
9281 ("cl-ana.table-utils" ,sbcl-cl-ana.table-utils)
9282 ("cl-ana.table-viewing" ,sbcl-cl-ana.table-viewing)
9283 ("cl-ana.tensor" ,sbcl-cl-ana.tensor)
9284 ("libffi" ,libffi)))
9285 (native-inputs
9286 `(("cl-fad" ,sbcl-cl-fad)))
9287 (arguments
9288 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9289 ((#:asd-file _ "") "cl-ana.asd")
9290 ((#:asd-system-name _ #f) "cl-ana")))))
9291
9292 (define-public cl-ana
9293 (sbcl-package->cl-source-package sbcl-cl-ana))
9294
9295 (define-public sbcl-archive
9296 (let ((commit "631271c091ed02994bec3980cb288a2cf32c7cdc")
9297 (revision "1"))
9298 (package
9299 (name "sbcl-archive")
9300 (version (git-version "0.9" revision commit))
9301 (source (origin
9302 (method git-fetch)
9303 (uri (git-reference
9304 (url "https://github.com/sharplispers/archive.git")
9305 (commit commit)))
9306 (file-name (git-file-name name version))
9307 (sha256
9308 (base32
9309 "0pvsc9fmybx7rxd0kmzq4shi6hszdpwdc1sfy7jwyfxf8n3hnv4p"))))
9310 (build-system asdf-build-system/sbcl)
9311 (inputs
9312 `(("cl-fad" ,sbcl-cl-fad)
9313 ("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
9314 (synopsis "Common Lisp library for tar and cpio archives")
9315 (description
9316 "This is a Common Lisp library to read and write disk-based file
9317 archives such as those generated by the tar and cpio programs on Unix.")
9318 (home-page "https://github.com/sharplispers/archive")
9319 (license license:bsd-3))))
9320
9321 (define-public cl-archive
9322 (sbcl-package->cl-source-package sbcl-archive))
9323
9324 (define-public ecl-archive
9325 (sbcl-package->ecl-package sbcl-archive))
9326
9327 (define-public sbcl-misc-extensions
9328 (let ((commit "101c05112bf2f1e1bbf527396822d2f50ca6327a")
9329 (revision "1"))
9330 (package
9331 (name "sbcl-misc-extensions")
9332 (version (git-version "3.3" revision commit))
9333 (source
9334 (origin
9335 (method git-fetch)
9336 (uri (git-reference
9337 (url "https://gitlab.common-lisp.net/misc-extensions/devel.git")
9338 (commit commit)))
9339 (file-name (git-file-name name version))
9340 (sha256
9341 (base32
9342 "0gz5f4p70qzilnxsnf5lih2n9m4wjcw8hlw4w8mpn9jyhyppyyv0"))))
9343 (build-system asdf-build-system/sbcl)
9344 (synopsis "Collection of small macros and extensions for Common Lisp")
9345 (description
9346 "This project is intended as a catchall for small, general-purpose
9347 extensions to Common Lisp. It contains:
9348
9349 @itemize
9350 @item @code{new-let}, a macro that combines and generalizes @code{let},
9351 @code{let*} and @code{multiple-value-bind},
9352 @item @code{gmap}, an iteration macro that generalizes @code{map}.
9353 @end itemize\n")
9354 (home-page "https://common-lisp.net/project/misc-extensions/")
9355 (license license:public-domain))))
9356
9357 (define-public cl-misc-extensions
9358 (sbcl-package->cl-source-package sbcl-misc-extensions))
9359
9360 (define-public ecl-misc-extensions
9361 (sbcl-package->ecl-package sbcl-misc-extensions))
9362
9363 (define-public sbcl-mt19937
9364 (package
9365 (name "sbcl-mt19937")
9366 (version "1.1")
9367 (source
9368 (origin
9369 (method url-fetch)
9370 (uri (string-append "https://common-lisp.net/project/asdf-packaging/"
9371 "mt19937-latest.tar.gz"))
9372 (sha256
9373 (base32
9374 "1iw636b0iw5ygkv02y8i41lh7xj0acglv0hg5agryn0zzi2nf1xv"))))
9375 (build-system asdf-build-system/sbcl)
9376 (synopsis "Mersenne Twister pseudo-random number generator")
9377 (description
9378 "MT19937 is a portable Mersenne Twister pseudo-random number generator
9379 for Common Lisp.")
9380 (home-page "https://www.cliki.net/mt19937")
9381 (license license:public-domain)))
9382
9383 (define-public cl-mt19937
9384 (sbcl-package->cl-source-package sbcl-mt19937))
9385
9386 (define-public ecl-mt19937
9387 (sbcl-package->ecl-package sbcl-mt19937))
9388
9389 (define-public sbcl-fset
9390 (let ((commit "6d2f9ded8934d2b42f2571a0ba5bda091037d852")
9391 (revision "1"))
9392 (package
9393 (name "sbcl-fset")
9394 (version (git-version "1.3.2" revision commit))
9395 (source
9396 (origin
9397 (method git-fetch)
9398 (uri (git-reference
9399 (url "https://github.com/slburson/fset")
9400 (commit commit)))
9401 (file-name (git-file-name name version))
9402 (sha256
9403 (base32
9404 "127acblwrbqicx47h6sgvknz1cqyfn8p4xkhkn1m7hxh8w5gk1zy"))
9405 (snippet '(begin
9406 ;; Remove obsolete copy of system definition.
9407 (delete-file "Code/fset.asd")
9408 #t))))
9409 (build-system asdf-build-system/sbcl)
9410 (inputs
9411 `(("misc-extensions" ,sbcl-misc-extensions)
9412 ("mt19937" ,sbcl-mt19937)
9413 ("named-readtables" ,sbcl-named-readtables)))
9414 (synopsis "Functional set-theoretic collections library")
9415 (description
9416 "FSet is a functional set-theoretic collections library for Common Lisp.
9417 Functional means that all update operations return a new collection rather than
9418 modifying an existing one in place. Set-theoretic means that collections may
9419 be nested arbitrarily with no additional programmer effort; for instance, sets
9420 may contain sets, maps may be keyed by sets, etc.")
9421 (home-page "https://common-lisp.net/project/fset/Site/index.html")
9422 (license license:llgpl))))
9423
9424 (define-public cl-fset
9425 (sbcl-package->cl-source-package sbcl-fset))
9426
9427 (define-public sbcl-cl-cont
9428 (let ((commit "fc1fa7e6eb64894fdca13e688e6015fad5290d2a")
9429 (revision "1"))
9430 (package
9431 (name "sbcl-cl-cont")
9432 (version (git-version "0.3.8" revision commit))
9433 (source
9434 (origin
9435 (method git-fetch)
9436 (uri (git-reference
9437 (url "https://gitlab.common-lisp.net/cl-cont/cl-cont.git")
9438 (commit commit)))
9439 (file-name (git-file-name name version))
9440 (sha256
9441 (base32
9442 "1zf8zvb0i6jm3hhfks4w74hibm6avgc6f9s1qwgjrn2bcik8lrvz"))))
9443 (build-system asdf-build-system/sbcl)
9444 (inputs
9445 `(("alexandria" ,sbcl-alexandria)
9446 ("closer-mop" ,sbcl-closer-mop)))
9447 (native-inputs
9448 `(("rt" ,sbcl-rt)))
9449 (synopsis "Delimited continuations for Common Lisp")
9450 (description
9451 "This is a library that implements delimited continuations by
9452 transforming Common Lisp code to continuation passing style.")
9453 (home-page "https://common-lisp.net/project/cl-cont/")
9454 (license license:llgpl))))
9455
9456 (define-public cl-cont
9457 (sbcl-package->cl-source-package sbcl-cl-cont))
9458
9459 (define-public ecl-cl-cont
9460 (sbcl-package->ecl-package sbcl-cl-cont))
9461
9462 (define-public sbcl-cl-coroutine
9463 (let ((commit "de098f8d5debd8b14ef6864b5bdcbbf5ddbcfd72")
9464 (revision "1"))
9465 (package
9466 (name "sbcl-cl-coroutine")
9467 (version (git-version "0.1" revision commit))
9468 (source
9469 (origin
9470 (method git-fetch)
9471 (uri (git-reference
9472 (url "https://github.com/takagi/cl-coroutine.git")
9473 (commit commit)))
9474 (file-name (git-file-name name version))
9475 (sha256
9476 (base32
9477 "1cqdhdjxffgfs116l1swjlsmcbly0xgcgrckvaajd566idj9yj4l"))))
9478 (build-system asdf-build-system/sbcl)
9479 (inputs
9480 `(("alexandria" ,sbcl-alexandria)
9481 ("cl-cont" ,sbcl-cl-cont)))
9482 (native-inputs
9483 `(("prove" ,sbcl-prove)))
9484 (arguments
9485 `(;; TODO: Fix the tests. They fail with:
9486 ;; "Component CL-COROUTINE-ASD::CL-COROUTINE-TEST not found"
9487 #:tests? #f
9488 #:phases
9489 (modify-phases %standard-phases
9490 (add-after 'unpack 'fix-tests
9491 (lambda _
9492 (substitute* "cl-coroutine-test.asd"
9493 (("cl-test-more")
9494 "prove"))
9495 #t)))))
9496 (synopsis "Coroutine library for Common Lisp")
9497 (description
9498 "This is a coroutine library for Common Lisp implemented using the
9499 continuations of the @code{cl-cont} library.")
9500 (home-page "https://github.com/takagi/cl-coroutine")
9501 (license license:llgpl))))
9502
9503 (define-public cl-coroutine
9504 (sbcl-package->cl-source-package sbcl-cl-coroutine))
9505
9506 (define-public ecl-cl-coroutine
9507 (sbcl-package->ecl-package sbcl-cl-coroutine))
9508
9509 (define-public sbcl-vom
9510 (let ((commit "1aeafeb5b74c53741b79497e0ef4acf85c92ff24")
9511 (revision "1"))
9512 (package
9513 (name "sbcl-vom")
9514 (version (git-version "0.1.4" revision commit))
9515 (source
9516 (origin
9517 (method git-fetch)
9518 (uri (git-reference
9519 (url "https://github.com/orthecreedence/vom.git")
9520 (commit commit)))
9521 (file-name (git-file-name name version))
9522 (sha256
9523 (base32
9524 "0536kppj76ax4lrxhv42npkfjsmx45km2g439vf9jmw3apinz9cy"))))
9525 (build-system asdf-build-system/sbcl)
9526 (synopsis "Tiny logging utility for Common Lisp")
9527 (description
9528 "Vom is a logging library for Common Lisp. It's goal is to be useful
9529 and small. It does not provide a lot of features as other loggers do, but
9530 has a small codebase that's easy to understand and use.")
9531 (home-page "https://github.com/orthecreedence/vom")
9532 (license license:expat))))
9533
9534 (define-public cl-vom
9535 (sbcl-package->cl-source-package sbcl-vom))
9536
9537 (define-public ecl-vom
9538 (sbcl-package->ecl-package sbcl-vom))
9539
9540 (define-public sbcl-cl-libuv
9541 (let ((commit "32100c023c518038d0670a103eaa4d50dd785d29")
9542 (revision "1"))
9543 (package
9544 (name "sbcl-cl-libuv")
9545 (version (git-version "0.1.6" revision commit))
9546 (source
9547 (origin
9548 (method git-fetch)
9549 (uri (git-reference
9550 (url "https://github.com/orthecreedence/cl-libuv.git")
9551 (commit commit)))
9552 (file-name (git-file-name name version))
9553 (sha256
9554 (base32
9555 "1kwix4si8a8hza34ab2k7whrh7z0yrmx39v2wc3qblv9m244jkh1"))))
9556 (build-system asdf-build-system/sbcl)
9557 (inputs
9558 `(("alexandria" ,sbcl-alexandria)
9559 ("cffi" ,sbcl-cffi)
9560 ("cffi-grovel" ,sbcl-cffi-grovel)
9561 ("libuv" ,libuv)))
9562 (arguments
9563 `(#:phases
9564 (modify-phases %standard-phases
9565 (add-after 'unpack 'fix-paths
9566 (lambda* (#:key inputs #:allow-other-keys)
9567 (substitute* "lib.lisp"
9568 (("/usr/lib/libuv.so")
9569 (string-append (assoc-ref inputs "libuv")
9570 "/lib/libuv.so")))
9571 #t))
9572 (add-after 'fix-paths 'fix-system-definition
9573 (lambda _
9574 (substitute* "cl-libuv.asd"
9575 (("#:cffi #:alexandria")
9576 "#:cffi #:cffi-grovel #:alexandria"))
9577 #t)))))
9578 (synopsis "Common Lisp bindings to libuv")
9579 (description
9580 "This library provides low-level libuv bindings for Common Lisp.")
9581 (home-page "https://github.com/orthecreedence/cl-libuv")
9582 (license license:expat))))
9583
9584 (define-public cl-libuv
9585 (sbcl-package->cl-source-package sbcl-cl-libuv))
9586
9587 (define-public ecl-cl-libuv
9588 (sbcl-package->ecl-package sbcl-cl-libuv))
9589
9590 (define-public sbcl-cl-async-base
9591 (let ((commit "f6423e44404a44434d803605e0d2e17199158e28")
9592 (revision "1"))
9593 (package
9594 (name "sbcl-cl-async-base")
9595 (version (git-version "0.6.1" revision commit))
9596 (source
9597 (origin
9598 (method git-fetch)
9599 (uri (git-reference
9600 (url "https://github.com/orthecreedence/cl-async.git")
9601 (commit commit)))
9602 (file-name (git-file-name name version))
9603 (sha256
9604 (base32
9605 "11xi9dxb8mjgwzrkj88i0xkgk26z9w9ddxzbv6xsvfc1d4x5cf4x"))))
9606 (build-system asdf-build-system/sbcl)
9607 (inputs
9608 `(("bordeaux-threads" ,sbcl-bordeaux-threads)
9609 ("cffi" ,sbcl-cffi)
9610 ("cl-libuv" ,sbcl-cl-libuv)))
9611 (arguments
9612 `(#:asd-file "cl-async.asd"))
9613 (synopsis "Base system for cl-async")
9614 (description
9615 "Cl-async is a library for general purpose, non-blocking programming in
9616 Common Lisp. It uses the libuv library as backend.")
9617 (home-page "https://orthecreedence.github.io/cl-async/")
9618 (license license:expat))))
9619
9620 (define-public cl-async-base
9621 (sbcl-package->cl-source-package sbcl-cl-async-base))
9622
9623 (define-public ecl-cl-async-base
9624 (sbcl-package->ecl-package sbcl-cl-async-base))
9625
9626 (define-public sbcl-cl-async-util
9627 (package
9628 (inherit sbcl-cl-async-base)
9629 (name "sbcl-cl-async-util")
9630 (inputs
9631 `(("bordeaux-threads" ,sbcl-bordeaux-threads)
9632 ("cffi" ,sbcl-cffi)
9633 ("cl-async-base" ,sbcl-cl-async-base)
9634 ("cl-libuv" ,sbcl-cl-libuv)
9635 ("cl-ppcre" ,sbcl-cl-ppcre)
9636 ("fast-io" ,sbcl-fast-io)
9637 ("vom" ,sbcl-vom)))
9638 (synopsis "Internal utilities for cl-async")))
9639
9640 (define-public cl-async-util
9641 (sbcl-package->cl-source-package sbcl-cl-async-util))
9642
9643 (define-public ecl-cl-async-util
9644 (sbcl-package->ecl-package sbcl-cl-async-util))
9645
9646 (define-public sbcl-cl-async
9647 (package
9648 (inherit sbcl-cl-async-base)
9649 (name "sbcl-cl-async")
9650 (inputs
9651 `(("babel" ,sbcl-babel)
9652 ("cffi" ,sbcl-cffi)
9653 ("cl-async-base" ,sbcl-cl-async-base)
9654 ("cl-async-util" ,sbcl-cl-async-util)
9655 ("cl-libuv" ,sbcl-cl-libuv)
9656 ("cl-ppcre" ,sbcl-cl-ppcre)
9657 ("static-vectors" ,sbcl-static-vectors)
9658 ("trivial-features" ,sbcl-trivial-features)
9659 ("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
9660 (synopsis "Asynchronous operations for Common Lisp")))
9661
9662 (define-public cl-async
9663 (sbcl-package->cl-source-package sbcl-cl-async))
9664
9665 (define-public ecl-cl-async
9666 (sbcl-package->ecl-package sbcl-cl-async))
9667
9668 (define-public sbcl-cl-async-repl
9669 (package
9670 (inherit sbcl-cl-async-base)
9671 (name "sbcl-cl-async-repl")
9672 (inputs
9673 `(("bordeaux-threads" ,sbcl-bordeaux-threads)
9674 ("cl-async" ,sbcl-cl-async)))
9675 (arguments
9676 (substitute-keyword-arguments (package-arguments sbcl-cl-async-base)
9677 ((#:asd-file _ "") "cl-async-repl.asd")))
9678 (synopsis "REPL integration for cl-async")))
9679
9680 (define-public cl-async-repl
9681 (sbcl-package->cl-source-package sbcl-cl-async-repl))
9682
9683 (define-public ecl-cl-async-repl
9684 (sbcl-package->ecl-package sbcl-cl-async-repl))
9685
9686 (define-public sbcl-cl-async-ssl
9687 (package
9688 (inherit sbcl-cl-async-base)
9689 (name "sbcl-cl-async-ssl")
9690 (inputs
9691 `(("cffi" ,sbcl-cffi)
9692 ("cl-async" ,sbcl-cl-async)
9693 ("openssl" ,openssl)
9694 ("vom" ,sbcl-vom)))
9695 (arguments
9696 (substitute-keyword-arguments (package-arguments sbcl-cl-async-base)
9697 ((#:asd-file _ "") "cl-async-ssl.asd")
9698 ((#:phases phases '%standard-phases)
9699 `(modify-phases ,phases
9700 (add-after 'unpack 'fix-paths
9701 (lambda* (#:key inputs #:allow-other-keys)
9702 (substitute* "src/ssl/package.lisp"
9703 (("libcrypto\\.so")
9704 (string-append (assoc-ref inputs "openssl")
9705 "/lib/libcrypto.so"))
9706 (("libssl\\.so")
9707 (string-append (assoc-ref inputs "openssl")
9708 "/lib/libssl.so")))
9709 #t))))))
9710 (synopsis "SSL wrapper around cl-async socket implementation")))
9711
9712 (define-public cl-async-ssl
9713 (sbcl-package->cl-source-package sbcl-cl-async-ssl))
9714
9715 (define-public ecl-cl-async-ssl
9716 (sbcl-package->ecl-package sbcl-cl-async-ssl))
9717
9718 (define-public sbcl-blackbird
9719 (let ((commit "d361f81c1411dec07f6c2dcb11c78f7aea9aaca8")
9720 (revision "1"))
9721 (package
9722 (name "sbcl-blackbird")
9723 (version (git-version "0.5.2" revision commit))
9724 (source
9725 (origin
9726 (method git-fetch)
9727 (uri (git-reference
9728 (url "https://github.com/orthecreedence/blackbird.git")
9729 (commit commit)))
9730 (file-name (git-file-name name version))
9731 (sha256
9732 (base32
9733 "0xfds5yaya64arzr7w1x38karyz11swzbhxx1afldpradj9dh19c"))))
9734 (build-system asdf-build-system/sbcl)
9735 (inputs
9736 `(("vom" ,sbcl-vom)))
9737 (native-inputs
9738 `(("cl-async" ,sbcl-cl-async)
9739 ("fiveam" ,sbcl-fiveam)))
9740 (synopsis "Promise implementation for Common Lisp")
9741 (description
9742 "This is a standalone promise implementation for Common Lisp. It is
9743 the successor to the now-deprecated cl-async-future project.")
9744 (home-page "https://orthecreedence.github.io/blackbird/")
9745 (license license:expat))))
9746
9747 (define-public cl-blackbird
9748 (sbcl-package->cl-source-package sbcl-blackbird))
9749
9750 (define-public ecl-blackbird
9751 (sbcl-package->ecl-package sbcl-blackbird))
9752
9753 (define-public sbcl-cl-async-future
9754 (let ((commit "ee36c22a69a9516407458d2ed8b475f1fc473959")
9755 (revision "1"))
9756 (package
9757 (name "sbcl-cl-async-future")
9758 (version (git-version "0.4.4.1" revision commit))
9759 (source
9760 (origin
9761 (method git-fetch)
9762 (uri (git-reference
9763 (url "https://github.com/orthecreedence/cl-async-future.git")
9764 (commit commit)))
9765 (file-name (git-file-name name version))
9766 (sha256
9767 (base32
9768 "0z0sc7qlzzxk99f4l26zp6rai9kv0kj0f599sxai5s44p17zbbvh"))))
9769 (build-system asdf-build-system/sbcl)
9770 (inputs
9771 `(("blackbird" ,sbcl-blackbird)))
9772 (native-inputs
9773 `(("cl-async" ,sbcl-cl-async)
9774 ("eos" ,sbcl-eos)))
9775 (synopsis "Futures implementation for Common Lisp")
9776 (description
9777 "This is futures implementation for Common Lisp. It plugs in nicely
9778 to cl-async.")
9779 (home-page "https://orthecreedence.github.io/cl-async/future")
9780 (license license:expat))))
9781
9782 (define-public cl-async-future
9783 (sbcl-package->cl-source-package sbcl-cl-async-future))
9784
9785 (define-public ecl-cl-async-future
9786 (sbcl-package->ecl-package sbcl-cl-async-future))
9787
9788 (define-public sbcl-green-threads
9789 (let ((commit "fff5ebecb441a37e5c511773716aafd84a3c5840")
9790 (revision "1"))
9791 (package
9792 (name "sbcl-green-threads")
9793 (version (git-version "0.3" revision commit))
9794 (source
9795 (origin
9796 (method git-fetch)
9797 (uri (git-reference
9798 (url "https://github.com/thezerobit/green-threads.git")
9799 (commit commit)))
9800 (file-name (git-file-name name version))
9801 (sha256
9802 (base32
9803 "1czw7nr0dwfps76h8hjvglk1wdh53yqbfbvv30whwbgqx33iippz"))))
9804 (build-system asdf-build-system/sbcl)
9805 (inputs
9806 `(("cl-async-future" ,sbcl-cl-async-future)
9807 ("cl-cont" ,sbcl-cl-cont)))
9808 (native-inputs
9809 `(("prove" ,sbcl-prove)))
9810 (arguments
9811 `(;; TODO: Fix the tests. They fail with:
9812 ;; "The function BLACKBIRD::PROMISE-VALUES is undefined"
9813 #:tests? #f
9814 #:phases
9815 (modify-phases %standard-phases
9816 (add-after 'unpack 'fix-tests
9817 (lambda _
9818 (substitute* "green-threads-test.asd"
9819 (("cl-test-more")
9820 "prove"))
9821 #t)))))
9822 (synopsis "Cooperative multitasking library for Common Lisp")
9823 (description
9824 "This library allows for cooperative multitasking with help of cl-cont
9825 for continuations. It tries to mimic the API of bordeaux-threads as much as
9826 possible.")
9827 (home-page "https://github.com/thezerobit/green-threads")
9828 (license license:bsd-3))))
9829
9830 (define-public cl-green-threads
9831 (sbcl-package->cl-source-package sbcl-green-threads))
9832
9833 (define-public ecl-green-threads
9834 (sbcl-package->ecl-package sbcl-green-threads))
9835
9836 (define-public sbcl-cl-base32
9837 (let ((commit "8cdee06fab397f7b0a19583b57e7f0c98405be85")
9838 (revision "1"))
9839 (package
9840 (name "sbcl-cl-base32")
9841 (version (git-version "0.1" revision commit))
9842 (source
9843 (origin
9844 (method git-fetch)
9845 (uri (git-reference
9846 (url "https://github.com/hargettp/cl-base32.git")
9847 (commit commit)))
9848 (file-name (git-file-name name version))
9849 (sha256
9850 (base32 "17jrng8jb05d64ggyd11hp308c2fl5drvf9g175blgrkkl8l4mf8"))))
9851 (build-system asdf-build-system/sbcl)
9852 (native-inputs
9853 `(("lisp-unit" ,sbcl-lisp-unit)))
9854 (synopsis "Common Lisp library for base32 encoding and decoding")
9855 (description
9856 "This package provides functions for base32 encoding and decoding as
9857 defined in RFC4648.")
9858 (home-page "https://github.com/hargettp/cl-base32")
9859 (license license:expat))))
9860
9861 (define-public cl-base32
9862 (sbcl-package->cl-source-package sbcl-cl-base32))
9863
9864 (define-public ecl-cl-base32
9865 (sbcl-package->ecl-package sbcl-cl-base32))
9866
9867 (define-public sbcl-cl-z85
9868 (let ((commit "85b3951a9cfa2603acb6aee15567684f9a108098")
9869 (revision "1"))
9870 (package
9871 (name "sbcl-cl-z85")
9872 (version (git-version "1.0" revision commit))
9873 (source
9874 (origin
9875 (method git-fetch)
9876 (uri (git-reference
9877 (url "https://github.com/glv2/cl-z85.git")
9878 (commit commit)))
9879 (file-name (git-file-name name version))
9880 (sha256
9881 (base32 "0r27pidjaxbm7k1rr90nnajwl5xm2kp65g1fv0fva17lzy45z1mp"))))
9882 (build-system asdf-build-system/sbcl)
9883 (native-inputs
9884 `(("cl-octet-streams" ,sbcl-cl-octet-streams)
9885 ("fiveam" ,sbcl-fiveam)))
9886 (synopsis "Common Lisp library for Z85 encoding and decoding")
9887 (description
9888 "This package provides functions to encode or decode byte vectors or
9889 byte streams using the Z85 format, which is a base-85 encoding used by
9890 ZeroMQ.")
9891 (home-page "https://github.com/glv2/cl-z85")
9892 (license license:gpl3+))))
9893
9894 (define-public cl-z85
9895 (sbcl-package->cl-source-package sbcl-cl-z85))
9896
9897 (define-public ecl-cl-z85
9898 (sbcl-package->ecl-package sbcl-cl-z85))
9899
9900 (define-public sbcl-ltk
9901 (package
9902 (name "sbcl-ltk")
9903 (version "0.992")
9904 (source
9905 (origin
9906 (method git-fetch)
9907 (uri (git-reference
9908 (url "https://github.com/herth/ltk.git")
9909 (commit version)))
9910 (file-name (git-file-name name version))
9911 (sha256
9912 (base32 "13l2q4mskzilya9xh5wy2xvy30lwn104bd8wrq6ifds56r82iy3x"))))
9913 (build-system asdf-build-system/sbcl)
9914 (inputs
9915 `(("imagemagick" ,imagemagick)
9916 ("tk" ,tk)))
9917 (arguments
9918 `(#:asd-file "ltk/ltk.asd"
9919 #:tests? #f
9920 #:phases (modify-phases %standard-phases
9921 (add-after 'unpack 'fix-paths
9922 (lambda* (#:key inputs #:allow-other-keys)
9923 (substitute* "ltk/ltk.lisp"
9924 (("#-freebsd \"wish\"")
9925 (string-append "#-freebsd \""
9926 (assoc-ref inputs "tk")
9927 "/bin/wish\""))
9928 (("do-execute \"convert\"")
9929 (string-append "do-execute \""
9930 (assoc-ref inputs "imagemagick")
9931 "/bin/convert\"")))
9932 #t)))))
9933 (synopsis "Common Lisp bindings for the Tk GUI toolkit")
9934 (description
9935 "LTK is a Common Lisp binding for the Tk graphics toolkit. It is written
9936 in pure Common Lisp and does not require any Tk knowledge for its usage.")
9937 (home-page "http://www.peter-herth.de/ltk/")
9938 (license license:llgpl)))
9939
9940 (define-public cl-ltk
9941 (sbcl-package->cl-source-package sbcl-ltk))
9942
9943 (define-public ecl-ltk
9944 (sbcl-package->ecl-package sbcl-ltk))
9945
9946 (define-public sbcl-ltk-mw
9947 (package
9948 (inherit sbcl-ltk)
9949 (name "sbcl-ltk-mw")
9950 (inputs
9951 `(("ltk" ,sbcl-ltk)))
9952 (arguments
9953 (substitute-keyword-arguments (package-arguments sbcl-ltk)
9954 ((#:asd-file _) "ltk/ltk-mw.asd")
9955 ((#:phases _) '%standard-phases)))
9956 (synopsis "Extra widgets for LTK")
9957 (description
9958 "This is a collection of higher-level widgets built on top of LTK.")))
9959
9960 (define-public cl-ltk-mw
9961 (sbcl-package->cl-source-package sbcl-ltk-mw))
9962
9963 (define-public ecl-ltk-mw
9964 (sbcl-package->ecl-package sbcl-ltk-mw))
9965
9966 (define-public sbcl-ltk-remote
9967 (package
9968 (inherit sbcl-ltk)
9969 (name "sbcl-ltk-remote")
9970 (inputs
9971 `(("ltk" ,sbcl-ltk)))
9972 (arguments
9973 (substitute-keyword-arguments (package-arguments sbcl-ltk)
9974 ((#:asd-file _) "ltk/ltk-remote.asd")
9975 ((#:phases _) '%standard-phases)))
9976 (synopsis "Remote GUI support for LTK")
9977 (description
9978 "This LTK extension allows the GUI to be displayed on a computer different
9979 from the one running the Lisp program by using a TCP connection.")))
9980
9981 (define-public cl-ltk-remote
9982 (sbcl-package->cl-source-package sbcl-ltk-remote))
9983
9984 (define-public sbcl-cl-lex
9985 (let ((commit "f2dbbe25ef553005fb402d9a6203180c3fa1093b")
9986 (revision "1"))
9987 (package
9988 (name "sbcl-cl-lex")
9989 (version (git-version "1.1.3" revision commit))
9990 (source
9991 (origin
9992 (method git-fetch)
9993 (uri (git-reference
9994 (url "https://github.com/djr7C4/cl-lex.git")
9995 (commit commit)))
9996 (file-name (git-file-name name version))
9997 (sha256
9998 (base32 "1kg50f76bfpfxcv4dfivq1n9a0xlsra2ajb0vd68lxwgbidgyc2y"))))
9999 (build-system asdf-build-system/sbcl)
10000 (inputs
10001 `(("cl-ppcre" ,sbcl-cl-ppcre)))
10002 (synopsis "Common Lisp macros for generating lexical analyzers")
10003 (description
10004 "This is a Common Lisp library providing a set of macros for generating
10005 lexical analyzers automatically. The lexers generated using @code{cl-lex} can
10006 be used with @code{cl-yacc}.")
10007 (home-page "https://github.com/djr7C4/cl-lex")
10008 (license license:gpl3))))
10009
10010 (define-public cl-lex
10011 (sbcl-package->cl-source-package sbcl-cl-lex))
10012
10013 (define-public ecl-cl-lex
10014 (sbcl-package->ecl-package sbcl-cl-lex))
10015
10016 (define-public sbcl-clunit2
10017 (let ((commit "5e28343734eb9b7aee39306a614af92c1062d50b")
10018 (revision "1"))
10019 (package
10020 (name "sbcl-clunit2")
10021 (version (git-version "0.2.4" revision commit))
10022 (source
10023 (origin
10024 (method git-fetch)
10025 (uri (git-reference
10026 (url "https://notabug.org/cage/clunit2.git")
10027 (commit commit)))
10028 (file-name (git-file-name name version))
10029 (sha256
10030 (base32 "1ngiapfki6nm8a555mzhb5p7ch79i3w665za5bmb5j7q34fy80vw"))))
10031 (build-system asdf-build-system/sbcl)
10032 (synopsis "Unit testing framework for Common Lisp")
10033 (description
10034 "CLUnit is a Common Lisp unit testing framework. It is designed to be
10035 easy to use so that you can quickly start testing.")
10036 (home-page "https://notabug.org/cage/clunit2")
10037 (license license:expat))))
10038
10039 (define-public cl-clunit2
10040 (sbcl-package->cl-source-package sbcl-clunit2))
10041
10042 (define-public ecl-clunit2
10043 (sbcl-package->ecl-package sbcl-clunit2))
10044
10045 (define-public sbcl-cl-colors2
10046 (let ((commit "795aedee593b095fecde574bd999b520dd03ed24")
10047 (revision "1"))
10048 (package
10049 (name "sbcl-cl-colors2")
10050 (version (git-version "0.2.1" revision commit))
10051 (source
10052 (origin
10053 (method git-fetch)
10054 (uri (git-reference
10055 (url "https://notabug.org/cage/cl-colors2.git")
10056 (commit commit)))
10057 (file-name (git-file-name name version))
10058 (sha256
10059 (base32 "0hlyf4h5chkjdp9armla5w4kw5acikk159sym7y8c4jbjp9x47ih"))))
10060 (build-system asdf-build-system/sbcl)
10061 (native-inputs
10062 `(("clunit2" ,sbcl-clunit2)))
10063 (inputs
10064 `(("alexandria" ,sbcl-alexandria)
10065 ("cl-ppcre" ,sbcl-cl-ppcre)))
10066 (synopsis "Color library for Common Lisp")
10067 (description
10068 "This is a very simple color library for Common Lisp, providing:
10069
10070 @itemize
10071 @item Types for representing colors in HSV and RGB spaces.
10072 @item Simple conversion functions between the above types (and also
10073 hexadecimal representation for RGB).
10074 @item Some predefined colors (currently X11 color names -- of course
10075 the library does not depend on X11).
10076 @end itemize\n")
10077 (home-page "https://notabug.org/cage/cl-colors2")
10078 (license license:boost1.0))))
10079
10080 (define-public cl-colors2
10081 (sbcl-package->cl-source-package sbcl-cl-colors2))
10082
10083 (define-public ecl-cl-colors2
10084 (sbcl-package->ecl-package sbcl-cl-colors2))
10085
10086 (define-public sbcl-cl-jpeg
10087 (let ((commit "ec557038128df6895fbfb743bfe8faf8ec2534af")
10088 (revision "1"))
10089 (package
10090 (name "sbcl-cl-jpeg")
10091 (version (git-version "2.8" revision commit))
10092 (source
10093 (origin
10094 (method git-fetch)
10095 (uri (git-reference
10096 (url "https://github.com/sharplispers/cl-jpeg.git")
10097 (commit commit)))
10098 (file-name (git-file-name name version))
10099 (sha256
10100 (base32 "1bkkiqz8fqldlj1wbmrccjsvxcwj98h6s4b6gslr3cg2wmdv5xmy"))))
10101 (build-system asdf-build-system/sbcl)
10102 (synopsis "JPEG image library for Common Lisp")
10103 (description
10104 "This is a baseline JPEG codec written in Common Lisp. It can be used
10105 for reading and writing JPEG image files.")
10106 (home-page "https://github.com/sharplispers/cl-jpeg")
10107 (license license:bsd-3))))
10108
10109 (define-public cl-jpeg
10110 (sbcl-package->cl-source-package sbcl-cl-jpeg))
10111
10112 (define-public ecl-cl-jpeg
10113 (sbcl-package->ecl-package sbcl-cl-jpeg))
10114
10115 (define-public sbcl-nodgui
10116 (let ((commit "bc59ed9b787dfc9e68ae3bd7f7e8507c5c619212")
10117 (revision "1"))
10118 (package
10119 (name "sbcl-nodgui")
10120 (version (git-version "0.0.5" revision commit))
10121 (source
10122 (origin
10123 (method git-fetch)
10124 (uri (git-reference
10125 (url "https://notabug.org/cage/nodgui.git")
10126 (commit commit)))
10127 (file-name (git-file-name name version))
10128 (sha256
10129 (base32 "0xx0dk54d882i598ydnwmy7mnfk0b7vib3ddsgpqxhjck1rwq8l8"))))
10130 (build-system asdf-build-system/sbcl)
10131 (inputs
10132 `(("alexandria" ,sbcl-alexandria)
10133 ("bordeaux-threads" ,sbcl-bordeaux-threads)
10134 ("cl-colors2" ,sbcl-cl-colors2)
10135 ("cl-jpeg" ,sbcl-cl-jpeg)
10136 ("cl-lex" ,sbcl-cl-lex)
10137 ("cl-ppcre-unicode" ,sbcl-cl-ppcre-unicode)
10138 ("cl-unicode" ,sbcl-cl-unicode)
10139 ("cl-yacc" ,sbcl-cl-yacc)
10140 ("clunit2" ,sbcl-clunit2)
10141 ("named-readtables" ,sbcl-named-readtables)
10142 ("parse-number" ,sbcl-parse-number)
10143 ("tk" ,tk)))
10144 (arguments
10145 `(#:phases (modify-phases %standard-phases
10146 (add-after 'unpack 'fix-paths
10147 (lambda* (#:key inputs #:allow-other-keys)
10148 (substitute* "src/wish-communication.lisp"
10149 (("#-freebsd \"wish\"")
10150 (string-append "#-freebsd \""
10151 (assoc-ref inputs "tk")
10152 "/bin/wish\"")))
10153 #t)))))
10154 (synopsis "Common Lisp bindings for the Tk GUI toolkit")
10155 (description
10156 "Nodgui (@emph{No Drama GUI}) is a Common Lisp binding for the Tk GUI
10157 toolkit. It also provides a few additional widgets more than the standard Tk
10158 ones.")
10159 (home-page "https://www.autistici.org/interzona/nodgui.html")
10160 (license license:llgpl))))
10161
10162 (define-public cl-nodgui
10163 (sbcl-package->cl-source-package sbcl-nodgui))
10164
10165 (define-public ecl-nodgui
10166 (sbcl-package->ecl-package sbcl-nodgui))
10167
10168 (define-public sbcl-salza2
10169 (package
10170 (name "sbcl-salza2")
10171 (version "2.0.9")
10172 (source
10173 (origin
10174 (method git-fetch)
10175 (uri (git-reference
10176 (url "https://github.com/xach/salza2.git")
10177 (commit (string-append "release-" version))))
10178 (file-name (git-file-name name version))
10179 (sha256
10180 (base32 "0p38rj4gq7j5k807php7hrz7l2zyyfshv8i9yms7i8lkgg3433ki"))))
10181 (build-system asdf-build-system/sbcl)
10182 (synopsis "Common Lisp library for zlib, deflate and gzip compression")
10183 (description
10184 "Salza2 is a Common Lisp library for creating compressed data in the zlib,
10185 deflate, or gzip data formats, described in RFC 1950, RFC 1951, and RFC 1952,
10186 respectively.")
10187 (home-page "https://www.xach.com/lisp/salza2/")
10188 (license license:bsd-2)))
10189
10190 (define-public cl-salza2
10191 (sbcl-package->cl-source-package sbcl-salza2))
10192
10193 (define-public ecl-salza2
10194 (sbcl-package->ecl-package sbcl-salza2))
10195
10196 (define-public sbcl-png-read
10197 (let ((commit "ec29f38a689972b9f1373f13bbbcd6b05deada88")
10198 (revision "1"))
10199 (package
10200 (name "sbcl-png-read")
10201 (version (git-version "0.3.1" revision commit))
10202 (source
10203 (origin
10204 (method git-fetch)
10205 (uri (git-reference
10206 (url "https://github.com/Ramarren/png-read.git")
10207 (commit commit)))
10208 (file-name (git-file-name name version))
10209 (sha256
10210 (base32 "0vyczbcwskrygrf1hgrsnk0jil8skmvf1kiaalw5jps4fjrfdkw0"))))
10211 (build-system asdf-build-system/sbcl)
10212 (inputs
10213 `(("babel" ,sbcl-babel)
10214 ("chipz" ,sbcl-chipz)
10215 ("iterate" ,sbcl-iterate)))
10216 (synopsis "PNG decoder for Common Lisp")
10217 (description "This is a Common Lisp library for reading PNG images.")
10218 (home-page "https://github.com/Ramarren/png-read")
10219 (license license:bsd-3))))
10220
10221 (define-public cl-png-read
10222 (sbcl-package->cl-source-package sbcl-png-read))
10223
10224 (define-public ecl-png-read
10225 (sbcl-package->ecl-package sbcl-png-read))
10226
10227 (define-public sbcl-zpng
10228 (package
10229 (name "sbcl-zpng")
10230 (version "1.2.2")
10231 (source
10232 (origin
10233 (method git-fetch)
10234 (uri (git-reference
10235 (url "https://github.com/xach/zpng.git")
10236 (commit (string-append "release-" version))))
10237 (file-name (git-file-name name version))
10238 (sha256
10239 (base32 "0b3ag3jhl3z7kdls3ahdsdxsfhhw5qrizk769984f4wkxhb69rcm"))))
10240 (build-system asdf-build-system/sbcl)
10241 (inputs
10242 `(("salza2" ,sbcl-salza2)))
10243 (synopsis "PNG encoder for Common Lisp")
10244 (description "This is a Common Lisp library for creating PNG images.")
10245 (home-page "https://www.xach.com/lisp/zpng/")
10246 (license license:bsd-2)))
10247
10248 (define-public cl-zpng
10249 (sbcl-package->cl-source-package sbcl-zpng))
10250
10251 (define-public ecl-zpng
10252 (sbcl-package->ecl-package sbcl-zpng))
10253
10254 (define-public sbcl-cl-qrencode
10255 (package
10256 (name "sbcl-cl-qrencode")
10257 (version "0.1.2")
10258 (source
10259 (origin
10260 (method git-fetch)
10261 (uri (git-reference
10262 (url "https://github.com/jnjcc/cl-qrencode.git")
10263 (commit (string-append "v" version))))
10264 (file-name (git-file-name name version))
10265 (sha256
10266 (base32 "1l5k131dchbf6cj8a8xqa731790p01p3qa1kdy2wa9dawy3ymkxr"))))
10267 (build-system asdf-build-system/sbcl)
10268 (native-inputs
10269 `(("lisp-unit" ,sbcl-lisp-unit)))
10270 (inputs
10271 `(("zpng" ,sbcl-zpng)))
10272 (synopsis "QR code encoder for Common Lisp")
10273 (description
10274 "This Common Lisp library provides function to make QR codes and to save
10275 them as PNG files.")
10276 (home-page "https://github.com/jnjcc/cl-qrencode")
10277 (license license:gpl2+)))
10278
10279 (define-public cl-qrencode
10280 (sbcl-package->cl-source-package sbcl-cl-qrencode))
10281
10282 (define-public ecl-cl-qrencode
10283 (sbcl-package->ecl-package sbcl-cl-qrencode))
10284
10285 (define-public sbcl-hdf5-cffi
10286 (let ((commit "5b5c88f191e470e4fe96b462334e3ce0806eed5c")
10287 (revision "1"))
10288 (package
10289 (name "sbcl-hdf5-cffi")
10290 (version (git-version "1.8.18" revision commit))
10291 (source
10292 (origin
10293 (method git-fetch)
10294 (uri (git-reference
10295 (url "https://github.com/hdfgroup/hdf5-cffi.git")
10296 (commit commit)))
10297 (file-name (git-file-name name version))
10298 (sha256
10299 (base32
10300 "0vda3075423xz83qky998lpac5b04dwfv7bwgh9jq8cs5v0zrxjf"))))
10301 (build-system asdf-build-system/sbcl)
10302 (synopsis "Common Lisp bindings for the HDF5 library")
10303 (description
10304 "@code{hdf5-cffi} is a CFFI wrapper for the HDF5 library.")
10305 (home-page "https://github.com/hdfgroup/hdf5-cffi")
10306 (license (license:non-copyleft
10307 (string-append "https://github.com/HDFGroup/hdf5-cffi/raw/"
10308 commit
10309 "/LICENSE")))
10310 (inputs
10311 `(("cffi" ,sbcl-cffi)
10312 ("cffi-grovel" ,sbcl-cffi-grovel)
10313 ("hdf5" ,hdf5-1.10)))
10314 (native-inputs
10315 `(("fiveam" ,sbcl-fiveam)))
10316 (arguments
10317 `(#:asd-system-name "hdf5-cffi"
10318 #:asd-file "hdf5-cffi.asd"
10319 #:test-asd-file "hdf5-cffi.test.asd"
10320 ;; Tests depend on hdf5-cffi.examples.asd in addition to hdf5-cffi.asd,
10321 ;; I don't know if there is a way to tell asdf-build-system to load
10322 ;; an additional system first, so tests are disabled.
10323 #:tests? #f
10324 #:phases
10325 (modify-phases %standard-phases
10326 (add-after 'unpack 'fix-paths
10327 (lambda* (#:key inputs #:allow-other-keys)
10328 (substitute* "src/library.lisp"
10329 (("libhdf5.so")
10330 (string-append
10331 (assoc-ref inputs "hdf5")
10332 "/lib/libhdf5.so")))))
10333 (add-after 'unpack 'fix-dependencies
10334 (lambda* (#:key inputs #:allow-other-keys)
10335 (substitute* "hdf5-cffi.asd"
10336 ((":depends-on \\(:cffi\\)")
10337 ":depends-on (:cffi :cffi-grovel)"))
10338 (substitute* "hdf5-cffi.test.asd"
10339 ((":depends-on \\(:cffi :hdf5-cffi")
10340 ":depends-on (:cffi :cffi-grovel :hdf5-cffi"))))))))))
10341
10342 (define-public cl-hdf5-cffi
10343 (sbcl-package->cl-source-package sbcl-hdf5-cffi))
10344
10345 (define-public ecl-hdf5-cffi
10346 (sbcl-package->ecl-package sbcl-hdf5-cffi))
10347
10348 (define-public sbcl-cl-randist
10349 (package
10350 (name "sbcl-cl-randist")
10351 (version "0.4.2")
10352 (source
10353 (origin
10354 (method git-fetch)
10355 (uri (git-reference
10356 (url "https://github.com/lvaruzza/cl-randist.git")
10357 (commit "f088a54b540a7adefab7c04094a6103f9edda3d0")))
10358 (file-name (git-file-name name version))
10359 (sha256
10360 (base32
10361 "0l8hyd6nbxb7f50vyxz3rbbm7kgr1fnadc40jywy4xj5vi5kpj5g"))))
10362 (build-system asdf-build-system/sbcl)
10363 (synopsis "Random distributions for Common Lisp")
10364 (description
10365 "Manual translation from C to Common Lisp of some random number
10366 generation functions from the GSL library.")
10367 (home-page "https://github.com/lvaruzza/cl-randist")
10368 (license license:bsd-2)
10369 (arguments
10370 `(#:asd-system-name "cl-randist"
10371 #:asd-file "cl-randist.asd"
10372 #:tests? #f))))
10373
10374 (define-public cl-randist
10375 (sbcl-package->cl-source-package sbcl-cl-randist))
10376
10377 (define-public ecl-cl-randist
10378 (sbcl-package->ecl-package sbcl-cl-randist))
10379
10380 (define-public sbcl-float-features
10381 (package
10382 (name "sbcl-float-features")
10383 (version "1.0.0")
10384 (source
10385 (origin
10386 (method git-fetch)
10387 (uri (git-reference
10388 (url "https://github.com/Shinmera/float-features.git")
10389 (commit "d3ef60181635b0849aa28cfc238053b7ca4644b0")))
10390 (file-name (git-file-name name version))
10391 (sha256
10392 (base32
10393 "0yj419k7n59x6rh3grwr6frgwwyria2il6f7wxpfazm8cskv4lzr"))))
10394 (build-system asdf-build-system/sbcl)
10395 (synopsis "Common Lisp IEEE float portability library")
10396 (description
10397 "Portability library for IEEE float features that are not
10398 covered by the Common Lisp standard.")
10399 (home-page "https://github.com/Shinmera/float-features")
10400 (license license:zlib)
10401 (inputs
10402 `(("documentation-utils" ,sbcl-documentation-utils)))
10403 (arguments
10404 `(#:asd-system-name "float-features"
10405 #:asd-file "float-features.asd"
10406 #:tests? #f))))
10407
10408 (define-public cl-float-features
10409 (sbcl-package->cl-source-package sbcl-float-features))
10410
10411 (define-public ecl-float-features
10412 (sbcl-package->ecl-package sbcl-float-features))
10413
10414 (define-public sbcl-function-cache
10415 (package
10416 (name "sbcl-function-cache")
10417 (version "1.0.3")
10418 (source
10419 (origin
10420 (method git-fetch)
10421 (uri (git-reference
10422 (url "https://github.com/AccelerationNet/function-cache.git")
10423 (commit "6a5ada401e57da2c8abf046f582029926e61fce8")))
10424 (file-name (git-file-name name version))
10425 (sha256
10426 (base32
10427 "000vmd3f5rx5hs9nvphfric0gkzaadns31c6mxaslpv0k7pkrmc6"))))
10428 (build-system asdf-build-system/sbcl)
10429 (synopsis "Function caching / memoization library for Common Lisp")
10430 (description
10431 "A common lisp library that provides extensible function result
10432 caching based on arguments (an expanded form of memoization).")
10433 (home-page "https://github.com/AccelerationNet/function-cache")
10434 (license
10435 (license:non-copyleft
10436 "https://github.com/AccelerationNet/function-cache/blob/master/README.md"))
10437 (inputs
10438 `(("alexandria" ,sbcl-alexandria)
10439 ("cl-interpol" ,sbcl-cl-interpol)
10440 ("iterate" ,sbcl-iterate)
10441 ("symbol-munger" ,sbcl-symbol-munger)
10442 ("closer-mop" ,sbcl-closer-mop)))
10443 (arguments
10444 `(#:asd-system-name "function-cache"
10445 #:asd-file "function-cache.asd"
10446 #:tests? #f))))
10447
10448 (define-public cl-function-cache
10449 (sbcl-package->cl-source-package sbcl-function-cache))
10450
10451 (define-public ecl-function-cache
10452 (sbcl-package->ecl-package sbcl-function-cache))
10453
10454 (define-public sbcl-type-r
10455 (let ((commit "83c89e38f2f7a7b16f1012777ecaf878cfa6a267")
10456 (revision "1"))
10457 (package
10458 (name "sbcl-type-r")
10459 (version (git-version "0.0.0" revision commit))
10460 (source
10461 (origin
10462 (method git-fetch)
10463 (uri (git-reference
10464 (url "https://github.com/guicho271828/type-r.git")
10465 (commit commit)))
10466 (file-name (git-file-name name version))
10467 (sha256
10468 (base32
10469 "1arsxc2539rg8vbrdirz4xxj1b06mc6g6rqndz7a02g127qvk2sm"))))
10470 (build-system asdf-build-system/sbcl)
10471 (synopsis "Parser interface for Common Lisp built-in compound types")
10472 (description
10473 "Collections of accessor functions and patterns to access
10474 the elements in compound type specifier, e.g. @code{dimensions} in
10475 @code{(array element-type dimensions)}")
10476 (home-page "https://github.com/guicho271828/type-r")
10477 (license license:lgpl3+)
10478 (inputs
10479 `(("trivia" ,sbcl-trivia)
10480 ("alexandria" ,sbcl-alexandria)))
10481 (native-inputs
10482 `(("fiveam" ,sbcl-fiveam)))
10483 (arguments
10484 `(#:asd-system-name "type-r"
10485 #:asd-file "type-r.asd"
10486 #:test-asd-file "type-r.test.asd")))))
10487
10488 (define-public cl-type-r
10489 (sbcl-package->cl-source-package sbcl-type-r))
10490
10491 (define-public sbcl-trivialib-type-unify
10492 (let ((commit "62492ebf04db567dcf435ae84c50b7b8202ecf99")
10493 (revision "1"))
10494 (package
10495 (name "sbcl-trivialib-type-unify")
10496 (version (git-version "0.1" revision commit))
10497 (source
10498 (origin
10499 (method git-fetch)
10500 (uri (git-reference
10501 (url "https://github.com/guicho271828/trivialib.type-unify.git")
10502 (commit commit)))
10503 (file-name (git-file-name name version))
10504 (sha256
10505 (base32
10506 "1bkyfzbwv75p50zp8n1n9rh2r29pw3vgz91gmn2gzzkyq3khj1vh"))))
10507 (build-system asdf-build-system/sbcl)
10508 (synopsis "Common Lisp type unification")
10509 (description
10510 "Unifies a parametrized type specifier against an actual type specifier.
10511 Importantly, it handles complicated array-subtypes and number-related types
10512 correctly.")
10513 (home-page "https://github.com/guicho271828/trivialib.type-unify")
10514 (license license:lgpl3+)
10515 (inputs
10516 `(("alexandria" ,sbcl-alexandria)
10517 ("trivia" ,sbcl-trivia)
10518 ("introspect-environment" ,sbcl-introspect-environment)
10519 ("type-r" ,sbcl-type-r)))
10520 (native-inputs
10521 `(("fiveam" ,sbcl-fiveam)))
10522 (arguments
10523 `(#:asd-system-name "trivialib.type-unify"
10524 #:asd-file "trivialib.type-unify.asd"
10525 #:test-asd-file "trivialib.type-unify.test.asd")))))
10526
10527 (define-public cl-trivialib-type-unify
10528 (sbcl-package->cl-source-package sbcl-trivialib-type-unify))
10529
10530 (define-public sbcl-specialized-function
10531 (let ((commit "b96b6afaf8358bf91cc0703e62a5a4ee20d2b7bc")
10532 (revision "1"))
10533 (package
10534 (name "sbcl-specialized-function")
10535 (version (git-version "0.0.0" revision commit))
10536 (source
10537 (origin
10538 (method git-fetch)
10539 (uri (git-reference
10540 (url "https://github.com/numcl/specialized-function.git")
10541 (commit commit)))
10542 (file-name (git-file-name name version))
10543 (sha256
10544 (base32
10545 "12j45ff0n26578vmfbhb9mfbdchw4wy023k0m2ppgl9s0z4bhjaj"))))
10546 (build-system asdf-build-system/sbcl)
10547 (synopsis "Julia-like dispatch for Common Lisp")
10548 (description
10549 "This library is part of NUMCL. It provides a macro
10550 @code{SPECIALIZED} that performs a Julia-like dispatch on the arguments,
10551 lazily compiling a type-specific version of the function from the same
10552 code. The main target of this macro is speed.")
10553 (home-page "https://github.com/numcl/specialized-function")
10554 (license license:lgpl3+)
10555 (inputs
10556 `(("trivia" ,sbcl-trivia)
10557 ("alexandria" ,sbcl-alexandria)
10558 ("iterate" ,sbcl-iterate)
10559 ("lisp-namespace" ,sbcl-lisp-namespace)
10560 ("type-r" ,sbcl-type-r)
10561 ("trivial-cltl2" ,sbcl-trivial-cltl2)))
10562 (native-inputs
10563 `(("fiveam" ,sbcl-fiveam)))
10564 (arguments
10565 `(#:asd-system-name "specialized-function"
10566 #:asd-file "specialized-function.asd"
10567 #:test-asd-file "specialized-function.test.asd")))))
10568
10569 (define-public cl-specialized-function
10570 (sbcl-package->cl-source-package sbcl-specialized-function))
10571
10572 (define-public sbcl-constantfold
10573 (let ((commit "0ff1d97a3fbcb89264f6a2af6ce62b73e7b421f4")
10574 (revision "1"))
10575 (package
10576 (name "sbcl-constantfold")
10577 (version (git-version "0.1" revision commit))
10578 (source
10579 (origin
10580 (method git-fetch)
10581 (uri (git-reference
10582 (url "https://github.com/numcl/constantfold.git")
10583 (commit commit)))
10584 (file-name (git-file-name name version))
10585 (sha256
10586 (base32
10587 "153h0569z6bff1qbad0bdssplwwny75l7ilqwcfqfdvzsxf9jh06"))))
10588 (build-system asdf-build-system/sbcl)
10589 (synopsis "Support library for numcl")
10590 (description
10591 "Support library for numcl. Registers a function as an
10592 additional form that is considered as a candidate for a constant.")
10593 (home-page "https://github.com/numcl/constantfold")
10594 (license license:lgpl3+)
10595 (inputs
10596 `(("trivia" ,sbcl-trivia)
10597 ("alexandria" ,sbcl-alexandria)
10598 ("iterate" ,sbcl-iterate)
10599 ("lisp-namespace" ,sbcl-lisp-namespace)))
10600 (native-inputs
10601 `(("fiveam" ,sbcl-fiveam)))
10602 (arguments
10603 `(#:asd-system-name "constantfold"
10604 #:asd-file "constantfold.asd"
10605 #:test-asd-file "constantfold.test.asd")))))
10606
10607 (define-public cl-constantfold
10608 (sbcl-package->cl-source-package sbcl-constantfold))
10609
10610 (define-public sbcl-gtype
10611 (let ((commit "42275e3606242ae91e9c8dfa30c18ced50a35b66")
10612 (revision "1"))
10613 (package
10614 (name "sbcl-gtype")
10615 (version (git-version "0.1" revision commit))
10616 (source
10617 (origin
10618 (method git-fetch)
10619 (uri (git-reference
10620 (url "https://github.com/numcl/gtype.git")
10621 (commit commit)))
10622 (file-name (git-file-name name version))
10623 (sha256
10624 (base32
10625 "1f56dba998v945jcxhha391557n6md1ql25b7icfwwfivhmlaa9b"))))
10626 (build-system asdf-build-system/sbcl)
10627 (synopsis "C++/Julia-like parametric types in Common Lisp")
10628 (description
10629 "Support library for numcl that provides Julia-like runtime parametric
10630 type correctness in Common Lisp. It is based on CLtL2 extensions.")
10631 (home-page "https://github.com/numcl/gtype")
10632 (license license:lgpl3+)
10633 (inputs
10634 `(("trivialib.type-unify" ,sbcl-trivialib-type-unify)
10635 ("trivial-cltl2" ,sbcl-trivial-cltl2)
10636 ("trivia" ,sbcl-trivia)
10637 ("alexandria" ,sbcl-alexandria)
10638 ("iterate" ,sbcl-iterate)
10639 ("type-r" ,sbcl-type-r)))
10640 (native-inputs
10641 `(("fiveam" ,sbcl-fiveam)))
10642 (arguments
10643 `(#:asd-system-name "gtype"
10644 #:asd-file "gtype.asd"
10645 #:test-asd-file "gtype.test.asd")))))
10646
10647 (define-public cl-gtype
10648 (sbcl-package->cl-source-package sbcl-gtype))
10649
10650 (define-public sbcl-numcl
10651 (let ((commit "1cf7dfa59f763a24a501092870e9c5ee745d0c17")
10652 (revision "1"))
10653 (package
10654 (name "sbcl-numcl")
10655 (version (git-version "0.1.0" revision commit))
10656 (source
10657 (origin
10658 (method git-fetch)
10659 (uri (git-reference
10660 (url "https://github.com/numcl/numcl.git")
10661 (commit commit)))
10662 (file-name (git-file-name name version))
10663 (sha256
10664 (base32
10665 "0i3jby9hf4ii7blivgyza80g0vmjfhk8537i5i7kqqk0i5sdnym2"))))
10666 (build-system asdf-build-system/sbcl)
10667 (synopsis "Numpy clone in Common Lisp")
10668 (description
10669 "This is a Numpy clone in Common Lisp. At the moment the
10670 library is written in pure Common Lisp, focusing more on correctness
10671 and usefulness, not speed. Track the progress at
10672 @url{https://github.com/numcl/numcl/projects/1}.")
10673 (home-page "https://github.com/numcl/numcl")
10674 (license license:lgpl3+)
10675 (inputs
10676 `(("trivia" ,sbcl-trivia)
10677 ("alexandria" ,sbcl-alexandria)
10678 ("iterate" ,sbcl-iterate)
10679 ("lisp-namespace" ,sbcl-lisp-namespace)
10680 ("type-r" ,sbcl-type-r)
10681 ("constantfold" ,sbcl-constantfold)
10682 ("cl-randist" ,sbcl-cl-randist)
10683 ("float-features" ,sbcl-float-features)
10684 ("function-cache" ,sbcl-function-cache)
10685 ("specialized-function" ,sbcl-specialized-function)
10686 ("gtype" ,sbcl-gtype)))
10687 (native-inputs
10688 `(("fiveam" ,sbcl-fiveam)))
10689 (arguments
10690 `(#:asd-system-name "numcl"
10691 #:asd-file "numcl.asd"
10692 #:test-asd-file "numcl.test.asd")))))
10693
10694 (define-public cl-numcl
10695 (sbcl-package->cl-source-package sbcl-numcl))
10696
10697 (define-public sbcl-pzmq
10698 (let ((commit "7c7390eedc469d033c72dc497984d1536ee75826")
10699 (revision "1"))
10700 (package
10701 (name "sbcl-pzmq")
10702 (version (git-version "0.0.0" revision commit))
10703 (source
10704 (origin
10705 (method git-fetch)
10706 (uri (git-reference
10707 (url "https://github.com/orivej/pzmq.git")
10708 (commit commit)))
10709 (file-name (git-file-name name version))
10710 (sha256
10711 (base32 "0gmwzf7h90wa7v4wnk49g0hv2mdalljpwhyigxcb967wzv8lqci9"))))
10712 (build-system asdf-build-system/sbcl)
10713 (native-inputs
10714 `(("bordeaux-threads" ,sbcl-bordeaux-threads)
10715 ("fiveam" ,sbcl-fiveam)
10716 ("let-plus" ,sbcl-let-plus)))
10717 (inputs
10718 `(("cffi" ,sbcl-cffi)
10719 ("cffi-grovel" ,sbcl-cffi-grovel)
10720 ("zeromq" ,zeromq)))
10721 (arguments
10722 `(#:phases (modify-phases %standard-phases
10723 (add-after 'unpack 'fix-paths
10724 (lambda* (#:key inputs #:allow-other-keys)
10725 (substitute* "c-api.lisp"
10726 (("\"libzmq")
10727 (string-append "\""
10728 (assoc-ref inputs "zeromq")
10729 "/lib/libzmq")))
10730 #t)))))
10731 (synopsis "Common Lisp bindings for the ZeroMQ library")
10732 (description "This Common Lisp library provides bindings for the ZeroMQ
10733 lightweight messaging kernel.")
10734 (home-page "https://github.com/orivej/pzmq")
10735 (license license:unlicense))))
10736
10737 (define-public cl-pzmq
10738 (sbcl-package->cl-source-package sbcl-pzmq))
10739
10740 (define-public ecl-pzmq
10741 (sbcl-package->ecl-package sbcl-pzmq))
10742
10743 (define-public sbcl-clss
10744 (let ((revision "1")
10745 (commit "2a8e8615ab55870d4ca01928f3ed3bbeb4e75c8d"))
10746 (package
10747 (name "sbcl-clss")
10748 (version (git-version "0.3.1" revision commit))
10749 (source
10750 (origin
10751 (method git-fetch)
10752 (uri
10753 (git-reference
10754 (url "https://github.com/Shinmera/clss.git")
10755 (commit commit)))
10756 (sha256
10757 (base32 "0la4dbcda78x29szanylccrsljqrn9d1mhh569sqkyp44ni5fv91"))
10758 (file-name (git-file-name name version))))
10759 (inputs
10760 `(("array-utils" ,sbcl-array-utils)
10761 ("plump" ,sbcl-plump)))
10762 (build-system asdf-build-system/sbcl)
10763 (synopsis "DOM tree searching engine based on CSS selectors")
10764 (description "CLSS is a DOM traversal engine based on CSS
10765 selectors. It makes use of the Plump-DOM and is used by lQuery.")
10766 (home-page "https://github.com/Shinmera/clss")
10767 (license license:zlib))))
10768
10769 (define-public cl-clss
10770 (sbcl-package->cl-source-package sbcl-clss))
10771
10772 (define-public ecl-clss
10773 (sbcl-package->ecl-package sbcl-clss))
10774
10775 (define-public sbcl-lquery
10776 (let ((revision "1")
10777 (commit "8048111c6b83956daa632e7a3ffbd8c9c203bd8d"))
10778 (package
10779 (name "sbcl-lquery")
10780 (version (git-version "3.2.1" revision commit))
10781 (source
10782 (origin
10783 (method git-fetch)
10784 (uri
10785 (git-reference
10786 (url "https://github.com/Shinmera/lquery.git")
10787 (commit commit)))
10788 (sha256
10789 (base32 "0520mcpxc2d6fdm8z61arpgd2z38kan7cf06qs373n5r64rakz6w"))
10790 (file-name (git-file-name name version))))
10791 (native-inputs
10792 `(("fiveam" ,sbcl-fiveam)))
10793 (inputs
10794 `(("array-utils" ,sbcl-array-utils)
10795 ("form-fiddle" ,sbcl-form-fiddle)
10796 ("plump" ,sbcl-plump)
10797 ("clss" ,sbcl-clss)))
10798 (build-system asdf-build-system/sbcl)
10799 (synopsis "Library to allow jQuery-like HTML/DOM manipulation")
10800 (description "@code{lQuery} is a DOM manipulation library written in
10801 Common Lisp, inspired by and based on the jQuery syntax and
10802 functions. It uses Plump and CLSS as DOM and selector engines. The
10803 main idea behind lQuery is to provide a simple interface for crawling
10804 and modifying HTML sites, as well as to allow for an alternative
10805 approach to templating.")
10806 (home-page "https://github.com/Shinmera/lquery")
10807 (license license:zlib))))
10808
10809 (define-public cl-lquery
10810 (sbcl-package->cl-source-package sbcl-lquery))
10811
10812 (define-public ecl-lquery
10813 (sbcl-package->ecl-package sbcl-lquery))
10814
10815 (define-public sbcl-cl-mysql
10816 (let ((commit "ab56c279c1815aec6ca0bfe85164ff7e85cfb6f9")
10817 (revision "1"))
10818 (package
10819 (name "sbcl-cl-mysql")
10820 (version (git-version "0.1" revision commit))
10821 (source
10822 (origin
10823 (method git-fetch)
10824 (uri (git-reference
10825 (url "https://github.com/hackinghat/cl-mysql.git")
10826 (commit commit)))
10827 (file-name (git-file-name name version))
10828 (sha256
10829 (base32 "0dg5ynx2ww94d0qfwrdrm7plkn43h64hs4iiq9mj2s1s4ixnp3lr"))))
10830 (build-system asdf-build-system/sbcl)
10831 (native-inputs
10832 `(("stefil" ,sbcl-stefil)))
10833 (inputs
10834 `(("cffi" ,sbcl-cffi)
10835 ("mariadb-lib" ,mariadb "lib")))
10836 (arguments
10837 `(#:tests? #f ; TODO: Tests require a running server
10838 #:phases
10839 (modify-phases %standard-phases
10840 (add-after 'unpack 'fix-paths
10841 (lambda* (#:key inputs #:allow-other-keys)
10842 (substitute* "system.lisp"
10843 (("libmysqlclient_r" all)
10844 (string-append (assoc-ref inputs "mariadb-lib")
10845 "/lib/"
10846 all)))
10847 #t)))))
10848 (synopsis "Common Lisp wrapper for MySQL")
10849 (description
10850 "@code{cl-mysql} is a Common Lisp implementation of a MySQL wrapper.")
10851 (home-page "http://www.hackinghat.com/index.php/cl-mysql")
10852 (license license:expat))))
10853
10854 (define-public cl-mysql
10855 (sbcl-package->cl-source-package sbcl-cl-mysql))
10856
10857 (define-public sbcl-simple-date
10858 (let ((commit "74469b25bbda990ec9b77e0d0eccdba0cd7e721a")
10859 (revision "1"))
10860 (package
10861 (name "sbcl-simple-date")
10862 (version (git-version "1.19" revision commit))
10863 (source
10864 (origin
10865 (method git-fetch)
10866 (uri (git-reference
10867 (url "https://github.com/marijnh/Postmodern.git")
10868 (commit commit)))
10869 (file-name (git-file-name name version))
10870 (sha256
10871 (base32 "0im7ymnyxjhn2w74jfg76k5gpr0gl33n31akx33hl28722ljd0hd"))))
10872 (build-system asdf-build-system/sbcl)
10873 (native-inputs
10874 `(("fiveam" ,sbcl-fiveam)))
10875 (synopsis "Basic date and time objects for Common Lisp")
10876 (description
10877 "@code{simple-date} is a very basic implementation of date and time
10878 objects, used to support storing and retrieving time-related SQL types.")
10879 (home-page "https://marijnhaverbeke.nl/postmodern/")
10880 (license license:zlib))))
10881
10882 (define-public cl-simple-date
10883 (sbcl-package->cl-source-package sbcl-simple-date))
10884
10885 (define-public ecl-simple-date
10886 (sbcl-package->ecl-package sbcl-simple-date))
10887
10888 (define-public sbcl-cl-postgres
10889 (package
10890 (inherit sbcl-simple-date)
10891 (name "sbcl-cl-postgres")
10892 (native-inputs
10893 `(("fiveam" ,sbcl-fiveam)
10894 ("simple-date" ,sbcl-simple-date)))
10895 (inputs
10896 `(("md5" ,sbcl-md5)
10897 ("split-sequence" ,sbcl-split-sequence)
10898 ("usocket" ,sbcl-usocket)))
10899 (arguments
10900 `(#:tests? #f)) ; TODO: Break simple-date/postgres-glue circular dependency
10901 (synopsis "Common Lisp interface for PostgreSQL")
10902 (description
10903 "@code{cl-postgres} is a low-level library used for interfacing with
10904 a PostgreSQL server over a socket.")))
10905
10906 (define-public cl-postgres
10907 (sbcl-package->cl-source-package sbcl-cl-postgres))
10908
10909 (define-public sbcl-simple-date-postgres-glue
10910 (package
10911 (inherit sbcl-simple-date)
10912 (name "sbcl-simple-date-postgres-glue")
10913 (inputs
10914 `(("cl-postgres" ,sbcl-cl-postgres)
10915 ("simple-date" ,sbcl-simple-date)))
10916 (arguments
10917 `(#:asd-file "simple-date.asd"
10918 #:asd-system-name "simple-date/postgres-glue"))))
10919
10920 (define-public cl-simple-date-postgres-glue
10921 (sbcl-package->cl-source-package sbcl-simple-date-postgres-glue))
10922
10923 (define-public sbcl-s-sql
10924 (package
10925 (inherit sbcl-simple-date)
10926 (name "sbcl-s-sql")
10927 (inputs
10928 `(("alexandria" ,sbcl-alexandria)
10929 ("cl-postgres" ,sbcl-cl-postgres)))
10930 (arguments
10931 `(#:tests? #f)) ; TODO: Break postmodern circular dependency
10932 (synopsis "Lispy DSL for SQL")
10933 (description
10934 "@code{s-sql} is a Common Lisp library that can be used to compile
10935 s-expressions to strings of SQL code, escaping any Lisp values inside, and
10936 doing as much as possible of the work at compile time.")))
10937
10938 (define-public cl-s-sql
10939 (sbcl-package->cl-source-package sbcl-s-sql))
10940
10941 (define-public sbcl-postmodern
10942 (package
10943 (inherit sbcl-simple-date)
10944 (name "sbcl-postmodern")
10945 (native-inputs
10946 `(("fiveam" ,sbcl-fiveam)
10947 ("simple-date" ,sbcl-simple-date)
10948 ("simple-date-postgres-glue" ,sbcl-simple-date-postgres-glue)))
10949 (inputs
10950 `(("alexandria" ,sbcl-alexandria)
10951 ("bordeaux-threads" ,sbcl-bordeaux-threads)
10952 ("cl-postgres" ,sbcl-cl-postgres)
10953 ("closer-mop" ,sbcl-closer-mop)
10954 ("global-vars" ,sbcl-global-vars)
10955 ("s-sql" ,sbcl-s-sql)
10956 ("split-sequence" ,sbcl-split-sequence)))
10957 (arguments
10958 ;; TODO: Fix missing dependency errors for simple-date/postgres-glue,
10959 ;; cl-postgres/tests and s-sql/tests.
10960 `(#:tests? #f))
10961 (synopsis "Common Lisp library for interacting with PostgreSQL")
10962 (description
10963 "@code{postmodern} is a Common Lisp library for interacting with
10964 PostgreSQL databases. It provides the following features:
10965
10966 @itemize
10967 @item Efficient communication with the database server without need for
10968 foreign libraries.
10969 @item Support for UTF-8 on Unicode-aware Lisp implementations.
10970 @item A syntax for mixing SQL and Lisp code.
10971 @item Convenient support for prepared statements and stored procedures.
10972 @item A metaclass for simple database-access objects.
10973 @end itemize\n")))
10974
10975 (define-public cl-postmodern
10976 (sbcl-package->cl-source-package sbcl-postmodern))
10977
10978 (define-public sbcl-dbi
10979 (package
10980 (name "sbcl-dbi")
10981 (version "0.9.4")
10982 (source
10983 (origin
10984 (method git-fetch)
10985 (uri (git-reference
10986 (url "https://github.com/fukamachi/cl-dbi.git")
10987 (commit version)))
10988 (file-name (git-file-name name version))
10989 (sha256
10990 (base32 "0m1fsravfaizamdak84adh3jxc4j91maqnrb4m08bfbmb04cdqhs"))))
10991 (build-system asdf-build-system/sbcl)
10992 (inputs
10993 `(("bordeaux-threads" ,sbcl-bordeaux-threads)
10994 ("closer-mop" ,sbcl-closer-mop)
10995 ("split-sequence" ,sbcl-split-sequence)))
10996 (arguments
10997 `(#:tests? #f)) ; TODO: Break circular dependency with dbd-*
10998 (synopsis "Database independent interface for Common Lisp")
10999 (description
11000 "@code{dbi} is a Common Lisp library providing a database independent
11001 interface for MySQL, PostgreSQL and SQLite.")
11002 (home-page "https://github.com/fukamachi/cl-dbi")
11003 (license license:llgpl)))
11004
11005 (define-public cl-dbi
11006 (sbcl-package->cl-source-package sbcl-dbi))
11007
11008 (define-public sbcl-dbd-mysql
11009 (package
11010 (inherit sbcl-dbi)
11011 (name "sbcl-dbd-mysql")
11012 (inputs
11013 `(("cl-mysql" ,sbcl-cl-mysql)
11014 ("dbi" ,sbcl-dbi)))
11015 (synopsis "Database driver for MySQL")))
11016
11017 (define-public cl-dbd-mysql
11018 (sbcl-package->cl-source-package sbcl-dbd-mysql))
11019
11020 (define-public sbcl-dbd-postgres
11021 (package
11022 (inherit sbcl-dbi)
11023 (name "sbcl-dbd-postgres")
11024 (inputs
11025 `(("cl-postgres" ,sbcl-cl-postgres)
11026 ("dbi" ,sbcl-dbi)
11027 ("trivial-garbage" ,sbcl-trivial-garbage)))
11028 (synopsis "Database driver for PostgreSQL")))
11029
11030 (define-public cl-dbd-postgres
11031 (sbcl-package->cl-source-package sbcl-dbd-postgres))
11032
11033 (define-public sbcl-dbd-sqlite3
11034 (package
11035 (inherit sbcl-dbi)
11036 (name "sbcl-dbd-sqlite3")
11037 (inputs
11038 `(("cl-sqlite" ,sbcl-cl-sqlite)
11039 ("dbi" ,sbcl-dbi)
11040 ("trivial-garbage" ,sbcl-trivial-garbage)))
11041 (synopsis "Database driver for SQLite3")))
11042
11043 (define-public cl-dbd-sqlite3
11044 (sbcl-package->cl-source-package sbcl-dbd-sqlite3))
11045
11046 (define-public sbcl-uffi
11047 (package
11048 (name "sbcl-uffi")
11049 (version "2.1.2")
11050 (source
11051 (origin
11052 (method git-fetch)
11053 (uri (git-reference
11054 (url "http://git.kpe.io/uffi.git")
11055 (commit (string-append "v" version))))
11056 (file-name (git-file-name name version))
11057 (sha256
11058 (base32 "1hqszvz0a3wk4s9faa83sc3vjxcb5rxmjclyr17yzwg55z733kry"))))
11059 (build-system asdf-build-system/sbcl)
11060 (arguments
11061 `(#:tests? #f ; TODO: Fix use of deprecated ASDF functions
11062 #:phases
11063 (modify-phases %standard-phases
11064 (add-after 'unpack 'fix-permissions
11065 (lambda _
11066 (make-file-writable "doc/html.tar.gz")
11067 #t)))))
11068 (synopsis "Universal foreign function library for Common Lisp")
11069 (description
11070 "UFFI provides a universal foreign function interface (FFI)
11071 for Common Lisp.")
11072 (home-page "http://quickdocs.org/uffi/")
11073 (license license:llgpl)))
11074
11075 (define-public cl-uffi
11076 (package
11077 (inherit (sbcl-package->cl-source-package sbcl-uffi))
11078 (arguments
11079 `(#:phases
11080 ;; asdf-build-system/source has its own phases and does not inherit
11081 ;; from asdf-build-system/sbcl phases.
11082 (modify-phases %standard-phases/source
11083 (add-after 'unpack 'fix-permissions
11084 (lambda _
11085 (make-file-writable "doc/html.tar.gz")
11086 #t)))))))
11087
11088 (define-public sbcl-clsql
11089 (package
11090 (name "sbcl-clsql")
11091 (version "6.7.0")
11092 (source
11093 (origin
11094 (method git-fetch)
11095 (uri (git-reference
11096 (url "http://git.kpe.io/clsql.git")
11097 (commit (string-append "v" version))))
11098 (file-name (git-file-name name version))
11099 (sha256
11100 (base32 "1v1k3s5bsy3lgd9gk459bzpb1r0kdjda25s29samxw4gsgf1fqvp"))
11101 (snippet
11102 '(begin
11103 ;; Remove precompiled libraries.
11104 (delete-file "db-mysql/clsql_mysql.dll")
11105 (delete-file "uffi/clsql_uffi.dll")
11106 (delete-file "uffi/clsql_uffi.lib")
11107 #t))))
11108 (build-system asdf-build-system/sbcl)
11109 (native-inputs
11110 `(("cffi-uffi-compat" ,sbcl-cffi-uffi-compat)
11111 ("rt" ,sbcl-rt)
11112 ("uffi" ,sbcl-uffi)))
11113 (arguments
11114 `(#:phases
11115 (modify-phases %standard-phases
11116 (add-after 'unpack 'fix-permissions
11117 (lambda _
11118 (make-file-writable "doc/html.tar.gz")
11119 #t))
11120 (add-after 'unpack 'fix-tests
11121 (lambda _
11122 (substitute* "clsql.asd"
11123 (("clsql-tests :force t")
11124 "clsql-tests"))
11125 #t)))))
11126 (synopsis "Common Lisp SQL Interface library")
11127 (description
11128 "@code{clsql} is a Common Lisp interface to SQL RDBMS based on the
11129 Xanalys CommonSQL interface for Lispworks. It provides low-level database
11130 interfaces as well as a functional and an object oriented interface.")
11131 (home-page "http://clsql.kpe.io/")
11132 (license license:llgpl)))
11133
11134 (define-public cl-clsql
11135 (package
11136 (inherit (sbcl-package->cl-source-package sbcl-clsql))
11137 (native-inputs
11138 `(("rt" ,cl-rt)))
11139 (inputs
11140 `(("mysql" ,mysql)
11141 ("postgresql" ,postgresql)
11142 ("sqlite" ,sqlite)
11143 ("zlib" ,zlib)))
11144 (propagated-inputs
11145 `(("cl-postgres" ,cl-postgres)
11146 ("cffi-uffi-compat" ,cl-cffi-uffi-compat)
11147 ("md5" ,cl-md5)
11148 ("uffi" ,cl-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-uffi
11160 (package
11161 (inherit sbcl-clsql)
11162 (name "sbcl-clsql-uffi")
11163 (inputs
11164 `(("cffi-uffi-compat" ,sbcl-cffi-uffi-compat)
11165 ("clsql" ,sbcl-clsql)
11166 ("uffi" ,sbcl-uffi)))
11167 (synopsis "UFFI helper functions for Common Lisp SQL interface library")))
11168
11169 (define-public sbcl-clsql-sqlite3
11170 (package
11171 (inherit sbcl-clsql)
11172 (name "sbcl-clsql-sqlite3")
11173 (inputs
11174 `(("clsql" ,sbcl-clsql)
11175 ("clsql-uffi" ,sbcl-clsql-uffi)
11176 ("sqlite" ,sqlite)))
11177 (arguments
11178 (substitute-keyword-arguments (package-arguments sbcl-clsql)
11179 ((#:phases phases '%standard-phases)
11180 `(modify-phases ,phases
11181 (add-after 'unpack 'fix-paths
11182 (lambda* (#:key inputs #:allow-other-keys)
11183 (substitute* "db-sqlite3/sqlite3-loader.lisp"
11184 (("libsqlite3")
11185 (string-append (assoc-ref inputs "sqlite")
11186 "/lib/libsqlite3")))
11187 #t))))))
11188 (synopsis "SQLite3 driver for Common Lisp SQL interface library")))
11189
11190 (define-public sbcl-clsql-postgresql
11191 (package
11192 (inherit sbcl-clsql)
11193 (name "sbcl-clsql-postgresql")
11194 (inputs
11195 `(("clsql" ,sbcl-clsql)
11196 ("clsql-uffi" ,sbcl-clsql-uffi)
11197 ("postgresql" ,postgresql)))
11198 (arguments
11199 (substitute-keyword-arguments (package-arguments sbcl-clsql)
11200 ((#:phases phases '%standard-phases)
11201 `(modify-phases ,phases
11202 (add-after 'unpack 'fix-paths
11203 (lambda* (#:key inputs #:allow-other-keys)
11204 (substitute* "db-postgresql/postgresql-loader.lisp"
11205 (("libpq")
11206 (string-append (assoc-ref inputs "postgresql")
11207 "/lib/libpq")))
11208 #t))))))
11209 (synopsis "PostgreSQL driver for Common Lisp SQL interface library")))
11210
11211 (define-public sbcl-clsql-postgresql-socket3
11212 (package
11213 (inherit sbcl-clsql)
11214 (name "sbcl-clsql-postgresql-socket3")
11215 (inputs
11216 `(("cl-postgres" ,sbcl-cl-postgres)
11217 ("clsql" ,sbcl-clsql)
11218 ("md5" ,sbcl-md5)))
11219 (arguments
11220 (substitute-keyword-arguments (package-arguments sbcl-clsql)
11221 ((#:phases phases '%standard-phases)
11222 `(modify-phases ,phases
11223 (add-after 'create-asd-file 'fix-asd-file
11224 (lambda* (#:key outputs #:allow-other-keys)
11225 (let* ((out (assoc-ref outputs "out"))
11226 (lib (string-append out "/lib/" (%lisp-type)))
11227 (asd (string-append lib "/clsql-postgresql-socket3.asd")))
11228 (substitute* asd
11229 (("CLSQL-POSTGRESQL-SOCKET-SYSTEM::")
11230 "")))
11231 #t))))))
11232 (synopsis "PostgreSQL driver for Common Lisp SQL interface library")))
11233
11234 (define-public sbcl-clsql-mysql
11235 (package
11236 (inherit sbcl-clsql)
11237 (name "sbcl-clsql-mysql")
11238 (inputs
11239 `(("mysql" ,mysql)
11240 ("sbcl-clsql" ,sbcl-clsql)
11241 ("sbcl-clsql-uffi" ,sbcl-clsql-uffi)
11242 ("zlib" ,zlib)))
11243 (arguments
11244 (substitute-keyword-arguments (package-arguments sbcl-clsql)
11245 ((#:phases phases '%standard-phases)
11246 `(modify-phases ,phases
11247 (add-after 'unpack 'fix-paths
11248 (lambda* (#:key inputs outputs #:allow-other-keys)
11249 (let ((lib (string-append "#p\""
11250 (assoc-ref outputs "out")
11251 "/lib/\"")))
11252 (substitute* "clsql-mysql.asd"
11253 (("#p\"/usr/lib/clsql/clsql_mysql\\.so\"")
11254 lib))
11255 (substitute* "db-mysql/mysql-loader.lisp"
11256 (("libmysqlclient" all)
11257 (string-append (assoc-ref inputs "mysql") "/lib/" all))
11258 (("clsql-mysql-system::\\*library-file-dir\\*")
11259 lib)))
11260 #t))
11261 (add-before 'build 'build-helper-library
11262 (lambda* (#:key inputs outputs #:allow-other-keys)
11263 (let* ((mysql (assoc-ref inputs "mysql"))
11264 (inc-dir (string-append mysql "/include/mysql"))
11265 (lib-dir (string-append mysql "/lib"))
11266 (shared-lib-dir (string-append (assoc-ref outputs "out")
11267 "/lib"))
11268 (shared-lib (string-append shared-lib-dir
11269 "/clsql_mysql.so")))
11270 (mkdir-p shared-lib-dir)
11271 (invoke "gcc" "-fPIC" "-shared"
11272 "-I" inc-dir
11273 "db-mysql/clsql_mysql.c"
11274 "-Wl,-soname=clsql_mysql"
11275 "-L" lib-dir "-lmysqlclient" "-lz"
11276 "-o" shared-lib)
11277 #t)))))))
11278 (synopsis "MySQL driver for Common Lisp SQL interface library")))
11279
11280 (define-public sbcl-sycamore
11281 (let ((commit "fd2820fec165ad514493426dea209728f64e6d18"))
11282 (package
11283 (name "sbcl-sycamore")
11284 (version "0.0.20120604")
11285 (source
11286 (origin
11287 (method git-fetch)
11288 (uri (git-reference
11289 (url "https://github.com/ndantam/sycamore/")
11290 (commit commit)))
11291 (file-name (git-file-name name version))
11292 (sha256
11293 (base32 "00bv1aj89q5vldmq92zp2364jq312zjq2mbd3iyz1s2b4widzhl7"))))
11294 (build-system asdf-build-system/sbcl)
11295 (arguments
11296 `(#:asd-file "src/sycamore.asd"))
11297 (inputs
11298 `(("alexandria" ,sbcl-alexandria)
11299 ("cl-ppcre" ,sbcl-cl-ppcre)))
11300 (synopsis "Purely functional data structure library in Common Lisp")
11301 (description
11302 "Sycamore is a fast, purely functional data structure library in Common Lisp.
11303 If features:
11304
11305 @itemize
11306 @item Fast, purely functional weight-balanced binary trees.
11307 @item Leaf nodes are simple-vectors, greatly reducing tree height.
11308 @item Interfaces for tree Sets and Maps (dictionaries).
11309 @item Ropes.
11310 @item Purely functional pairing heaps.
11311 @item Purely functional amortized queue.
11312 @end itemize\n")
11313 (home-page "http://ndantam.github.io/sycamore/")
11314 (license license:bsd-3))))
11315
11316 (define-public cl-sycamore
11317 (sbcl-package->cl-source-package sbcl-sycamore))
11318
11319 (define-public sbcl-trivial-package-local-nicknames
11320 (package
11321 (name "sbcl-trivial-package-local-nicknames")
11322 (version "0.2")
11323 (home-page "https://github.com/phoe/trivial-package-local-nicknames")
11324 (source
11325 (origin
11326 (method git-fetch)
11327 (uri (git-reference
11328 (url home-page)
11329 (commit "16b7ad4c2b120f50da65154191f468ea5598460e")))
11330 (file-name (git-file-name name version))
11331 (sha256
11332 (base32 "18qc27xkjzdcqrilpk3pm7djldwq5rm3ggd5h9cr8hqcd54i2fqg"))))
11333 (build-system asdf-build-system/sbcl)
11334 (synopsis "Common Lisp compatibility library for package local nicknames")
11335 (description
11336 "This library is a portable compatibility layer around package local nicknames (PLN).
11337 This was done so there is a portability library for the PLN API not included
11338 in DEFPACKAGE.")
11339 (license license:unlicense)))
11340
11341 (define-public cl-trivial-package-local-nicknames
11342 (sbcl-package->cl-source-package sbcl-trivial-package-local-nicknames))
11343
11344 (define-public sbcl-enchant
11345 (let ((commit "6af162a7bf10541cbcfcfa6513894900329713fa"))
11346 (package
11347 (name "sbcl-enchant")
11348 (version (git-version "0.0.0" "1" commit))
11349 (home-page "https://github.com/tlikonen/cl-enchant")
11350 (source
11351 (origin
11352 (method git-fetch)
11353 (uri (git-reference
11354 (url home-page)
11355 (commit commit)))
11356 (file-name (git-file-name name version))
11357 (sha256
11358 (base32 "19yh5ihirzi1d8xqy1cjqipzd6ly3245cfxa5s9xx496rryz0s01"))))
11359 (build-system asdf-build-system/sbcl)
11360 (inputs
11361 `(("enchant" ,enchant)
11362 ("cffi" ,sbcl-cffi)))
11363 (arguments
11364 `(#:phases
11365 (modify-phases %standard-phases
11366 (add-after 'unpack 'fix-paths
11367 (lambda* (#:key inputs #:allow-other-keys)
11368 (substitute* "load-enchant.lisp"
11369 (("libenchant")
11370 (string-append
11371 (assoc-ref inputs "enchant") "/lib/libenchant-2"))))))))
11372 (synopsis "Common Lisp interface for the Enchant spell-checker library")
11373 (description
11374 "Enchant is a Common Lisp interface for the Enchant spell-checker
11375 library. The Enchant library is a generic spell-checker library which uses
11376 other spell-checkers transparently as back-end. The library supports the
11377 multiple checkers, including Aspell and Hunspell.")
11378 (license license:public-domain))))
11379
11380 (define-public cl-enchant
11381 (sbcl-package->cl-source-package sbcl-enchant))
11382
11383 (define-public sbcl-cl-change-case
11384 (let ((commit "5ceff2a5f8bd845b6cb510c6364176b27a238fd3"))
11385 (package
11386 (name "sbcl-cl-change-case")
11387 (version (git-version "0.1.0" "1" commit))
11388 (home-page "https://github.com/rudolfochrist/cl-change-case")
11389 (source
11390 (origin
11391 (method git-fetch)
11392 (uri (git-reference
11393 (url home-page)
11394 (commit commit)))
11395 (file-name (git-file-name name version))
11396 (sha256
11397 (base32 "1afyglglk9z3yg8gylcl301bl2r8vq3sllyznzj9s5xi5gs6qyf2"))))
11398 (build-system asdf-build-system/sbcl)
11399 (inputs
11400 `(("cl-ppcre" ,sbcl-cl-ppcre)
11401 ("cl-ppcre-unicode" ,sbcl-cl-ppcre-unicode)))
11402 (native-inputs
11403 `(("fiveam" ,sbcl-fiveam)))
11404 (arguments
11405 '(;; FIXME: Test pass but phase fails with 'Component
11406 ;; "cl-change-case-test" not found, required by'.
11407 #:tests? #f
11408 #:test-asd-file "cl-change-case-test.asd"))
11409 (synopsis "Convert Common Lisp strings between camelCase, PascalCase and more")
11410 (description
11411 "@code{cl-change-case} is library to convert strings between camelCase,
11412 PascalCase, snake_case, param-case, CONSTANT_CASE and more.")
11413 (license license:llgpl))))
11414
11415 (define-public cl-change-case
11416 (sbcl-package->cl-source-package sbcl-cl-change-case))
11417
11418 (define-public sbcl-moptilities
11419 (let ((commit "a436f16b357c96b82397ec018ea469574c10dd41"))
11420 (package
11421 (name "sbcl-moptilities")
11422 (version (git-version "0.3.13" "1" commit))
11423 (home-page "https://github.com/gwkkwg/moptilities/")
11424 (source
11425 (origin
11426 (method git-fetch)
11427 (uri (git-reference
11428 (url home-page)
11429 (commit commit)))
11430 (file-name (git-file-name name version))
11431 (sha256
11432 (base32 "1q12bqjbj47lx98yim1kfnnhgfhkl80102fkgp9pdqxg0fp6g5fc"))))
11433 (build-system asdf-build-system/sbcl)
11434 (inputs
11435 `(("closer-mop" ,sbcl-closer-mop)))
11436 (native-inputs
11437 `(("lift" ,sbcl-lift)))
11438 (synopsis "Compatibility layer for Common Lisp MOP implementation differences")
11439 (description
11440 "MOP utilities provide a common interface between Lisps and make the
11441 MOP easier to use.")
11442 (license license:expat))))
11443
11444 (define-public cl-moptilities
11445 (sbcl-package->cl-source-package sbcl-moptilities))
11446
11447 (define-public sbcl-osicat
11448 (let ((commit "de0c18a367eedc857e1902a7319828af072a0d97"))
11449 (package
11450 (name "sbcl-osicat")
11451 (version (git-version "0.7.0" "1" commit))
11452 (home-page "http://www.common-lisp.net/project/osicat/")
11453 (source
11454 (origin
11455 (method git-fetch)
11456 (uri (git-reference
11457 (url "https://github.com/osicat/osicat")
11458 (commit commit)))
11459 (file-name (git-file-name name version))
11460 (sha256
11461 (base32 "15viw5pi5sa7qq9b4n2rr3dj2jkqr180rh9z1lh8w3rgl42i2adc"))))
11462 (build-system asdf-build-system/sbcl)
11463 (arguments
11464 `(#:phases
11465 (modify-phases %standard-phases
11466 ;; The cleanup phase moves files around but we need to keep the
11467 ;; directory structure for the grovel-generated library.
11468 (replace 'cleanup
11469 (lambda* (#:key outputs #:allow-other-keys)
11470 (let* ((out (assoc-ref outputs "out"))
11471 (lib (string-append out "/lib/sbcl/")))
11472 (delete-file-recursively (string-append lib "src"))
11473 (delete-file-recursively (string-append lib "tests"))
11474 (for-each delete-file
11475 (filter (lambda (file)
11476 (not (member (basename file) '("libosicat.so"))))
11477 (find-files (string-append lib "posix") ".*"))))
11478 #t)))))
11479 (inputs
11480 `(("alexandria" ,sbcl-alexandria)
11481 ("cffi" ,sbcl-cffi)
11482 ("trivial-features" ,sbcl-trivial-features)))
11483 (native-inputs
11484 `(("cffi-grovel" ,sbcl-cffi-grovel)
11485 ("rt" ,sbcl-rt)))
11486 (synopsis "Operating system interface for Common Lisp")
11487 (description
11488 "Osicat is a lightweight operating system interface for Common Lisp on
11489 Unix-platforms. It is not a POSIX-style API, but rather a simple lispy
11490 accompaniment to the standard ANSI facilities.")
11491 (license license:expat))))
11492
11493 (define-public cl-osicat
11494 (sbcl-package->cl-source-package sbcl-osicat))
11495
11496 (define-public sbcl-clx-xembed
11497 (let ((commit "a5c4b844d31ee68ffa58c933cc1cdddde6990743")
11498 (revision "1"))
11499 (package
11500 (name "sbcl-clx-xembed")
11501 (version (git-version "0.1" revision commit))
11502 (home-page "https://github.com/laynor/clx-xembed")
11503 (source
11504 (origin
11505 (method git-fetch)
11506 (uri (git-reference
11507 (url "https://github.com/laynor/clx-xembed.git")
11508 (commit commit)))
11509 (file-name (git-file-name name version))
11510 (sha256
11511 (base32 "1abx4v36ycmfjdwpjk4hh8058ya8whwia7ds9vd96q2qsrs57f12"))))
11512 (build-system asdf-build-system/sbcl)
11513 (arguments
11514 `(#:asd-system-name "xembed"))
11515 (inputs
11516 `(("sbcl-clx" ,sbcl-clx)))
11517 (synopsis "CL(x) xembed protocol implementation ")
11518 (description "CL(x) xembed protocol implementation")
11519 ;; MIT License
11520 (license license:expat))))
11521
11522 (define-public cl-clx-xembed
11523 (sbcl-package->cl-source-package sbcl-clx-xembed))
11524
11525 (define-public ecl-clx-xembed
11526 (sbcl-package->ecl-package sbcl-clx-xembed))
11527
11528 (define-public sbcl-quantile-estimator
11529 (package
11530 (name "sbcl-quantile-estimator")
11531 (version "0.0.1")
11532 (source
11533 (origin
11534 (method git-fetch)
11535 (uri (git-reference
11536 (url "https://github.com/deadtrickster/quantile-estimator.cl")
11537 (commit "84d0ea405d793f5e808c68c4ddaf25417b0ff8e5")))
11538 (file-name (git-file-name name version))
11539 (sha256
11540 (base32
11541 "0rlswkf0siaabsvvch3dgxmg45fw5w8pd9b7ri2w7a298aya52z9"))))
11542 (build-system asdf-build-system/sbcl)
11543 (arguments
11544 '(#:asd-system-name "quantile-estimator"))
11545 (inputs
11546 `(("alexandria" ,sbcl-alexandria)))
11547 (home-page "https://github.com/deadtrickster/quantile-estimator.cl")
11548 (synopsis
11549 "Effective computation of biased quantiles over data streams")
11550 (description
11551 "Common Lisp implementation of Graham Cormode and S.
11552 Muthukrishnan's Effective Computation of Biased Quantiles over Data
11553 Streams in ICDE’05.")
11554 (license license:expat)))
11555
11556 (define-public cl-quantile-estimator
11557 (sbcl-package->cl-source-package sbcl-quantile-estimator))
11558
11559 (define-public ecl-quantile-estimator
11560 (sbcl-package->ecl-package sbcl-quantile-estimator))
11561
11562 (define-public sbcl-prometheus
11563 (package
11564 (name "sbcl-prometheus")
11565 (version "0.4.1")
11566 (source
11567 (origin
11568 (method git-fetch)
11569 (uri (git-reference
11570 (url "https://github.com/deadtrickster/prometheus.cl.git")
11571 (commit "7352b92296996ff383503e19bdd3bcea30409a15")))
11572 (file-name (git-file-name name version))
11573 (sha256
11574 (base32
11575 "0fzczls2kfgdx18pja4lqxjrz72i583185d8nq0pb3s331hhzh0z"))))
11576 (build-system asdf-build-system/sbcl)
11577 (inputs
11578 `(("alexandria" ,sbcl-alexandria)
11579 ("bordeaux-threads" ,sbcl-bordeaux-threads)
11580 ("cl-ppcre" ,sbcl-cl-ppcre)
11581 ("local-time" ,sbcl-local-time)
11582 ("quantile-estimator" ,sbcl-quantile-estimator)))
11583 (home-page "https://github.com/deadtrickster/prometheus.cl")
11584 (synopsis "Prometheus.io Common Lisp client")
11585 (description "Prometheus.io Common Lisp client.")
11586 (license license:expat)))
11587
11588 (define-public cl-prometheus
11589 (sbcl-package->cl-source-package sbcl-prometheus))
11590
11591 (define-public ecl-prometheus
11592 (sbcl-package->ecl-package sbcl-prometheus))
11593
11594 (define-public sbcl-prometheus.collectors.sbcl
11595 (package
11596 (inherit sbcl-prometheus)
11597 (name "sbcl-prometheus.collectors.sbcl")
11598 (inputs `(("prometheus" ,sbcl-prometheus)))
11599 (synopsis "Prometheus collector for SBCL metrics")
11600 (description "Prometheus collector for SBCL metrics.")))
11601
11602 (define-public cl-prometheus.collectors.sbcl
11603 (sbcl-package->cl-source-package sbcl-prometheus.collectors.sbcl))
11604
11605 (define-public sbcl-prometheus.collectors.process
11606 (package
11607 (inherit sbcl-prometheus)
11608 (name "sbcl-prometheus.collectors.process")
11609 (inputs
11610 `(("cffi" ,sbcl-cffi)
11611 ("cffi-grovel" ,sbcl-cffi-grovel)
11612 ("cl-fad" ,sbcl-cl-fad)
11613 ("prometheus" ,sbcl-prometheus)
11614 ("split-sequence" ,sbcl-split-sequence)))
11615 (synopsis "Prometheus collector for process metrics")
11616 (description "Prometheus collector for process metrics.")))
11617
11618 (define-public cl-prometheus.collectors.process
11619 (sbcl-package->cl-source-package sbcl-prometheus.collectors.process))
11620
11621 (define-public ecl-prometheus.collectors.process
11622 (sbcl-package->ecl-package sbcl-prometheus.collectors.process))
11623
11624 (define-public sbcl-prometheus.formats.text
11625 (package
11626 (inherit sbcl-prometheus)
11627 (name "sbcl-prometheus.formats.text")
11628 (inputs
11629 `(("alexandria" ,sbcl-alexandria)
11630 ("prometheus" ,sbcl-prometheus)))
11631 (synopsis "Prometheus client text format")
11632 (description "Prometheus client text format.")))
11633
11634 (define-public cl-prometheus.formats.text
11635 (sbcl-package->cl-source-package sbcl-prometheus.formats.text))
11636
11637 (define-public ecl-prometheus.formats.text
11638 (sbcl-package->ecl-package sbcl-prometheus.formats.text))
11639
11640 (define-public sbcl-prometheus.exposers.hunchentoot
11641 (package
11642 (inherit sbcl-prometheus)
11643 (name "sbcl-prometheus.exposers.hunchentoot")
11644 (inputs
11645 `(("hunchentoot" ,sbcl-hunchentoot)
11646 ("prometheus" ,sbcl-prometheus)
11647 ("prometheus.formats.text" ,sbcl-prometheus.formats.text)
11648 ("salza2" ,sbcl-salza2)
11649 ("trivial-utf-8" ,sbcl-trivial-utf-8)))
11650 (synopsis "Prometheus collector for Hunchentoot metrics")
11651 (description "Prometheus collector for Hunchentoot metrics")))
11652
11653 (define-public cl-prometheus.exposers.hunchentoot
11654 (sbcl-package->cl-source-package sbcl-prometheus.exposers.hunchentoot))
11655
11656 (define-public sbcl-prometheus.pushgateway
11657 (package
11658 (inherit sbcl-prometheus)
11659 (name "sbcl-prometheus.pushgateway")
11660 (inputs
11661 `(("drakma" ,sbcl-drakma)
11662 ("prometheus" ,sbcl-prometheus)
11663 ("prometheus.formats.text" ,sbcl-prometheus.formats.text)))
11664 (synopsis "Prometheus Pushgateway client")
11665 (description "Prometheus Pushgateway client.")))
11666
11667 (define-public cl-prometheus.pushgateway
11668 (sbcl-package->cl-source-package sbcl-prometheus.pushgateway))
11669
11670 (define-public ecl-prometheus.pushgateway
11671 (sbcl-package->ecl-package sbcl-prometheus.pushgateway))
11672
11673 (define-public sbcl-uuid
11674 (let ((commit "e7d6680c3138385c0708f7aaf0c96622eeb140e8"))
11675 (package
11676 (name "sbcl-uuid")
11677 (version (git-version "2012.12.26" "1" commit))
11678 (source
11679 (origin
11680 (method git-fetch)
11681 (uri (git-reference
11682 (url "https://github.com/dardoria/uuid.git")
11683 (commit commit)))
11684 (file-name (git-file-name name version))
11685 (sha256
11686 (base32
11687 "0jnyp2kibcf5cwi60l6grjrj8wws9chasjvsw7xzwyym2lyid46f"))))
11688 (build-system asdf-build-system/sbcl)
11689 (inputs
11690 `(("ironclad" ,sbcl-ironclad)
11691 ("trivial-utf-8" ,sbcl-trivial-utf-8)))
11692 (home-page "https://github.com/dardoria/uuid")
11693 (synopsis
11694 "Common Lisp implementation of UUIDs according to RFC4122")
11695 (description
11696 "Common Lisp implementation of UUIDs according to RFC4122.")
11697 (license license:llgpl))))
11698
11699 (define-public cl-uuid
11700 (sbcl-package->cl-source-package sbcl-uuid))
11701
11702 (define-public ecl-uuid
11703 (sbcl-package->ecl-package sbcl-uuid))
11704
11705 (define-public sbcl-dissect
11706 (let ((commit "cffd38479f0e64e805f167bbdb240b783ecc8d45"))
11707 (package
11708 (name "sbcl-dissect")
11709 (version (git-version "1.0.0" "1" commit))
11710 (source
11711 (origin
11712 (method git-fetch)
11713 (uri (git-reference
11714 (url "https://github.com/Shinmera/dissect.git")
11715 (commit commit)))
11716 (file-name (git-file-name name version))
11717 (sha256
11718 (base32
11719 "0rmsjkgjl90gl6ssvgd60hb0d5diyhsiyypvw9hbc0ripvbmk5r5"))))
11720 (build-system asdf-build-system/sbcl)
11721 (inputs
11722 `(("cl-ppcre" ,sbcl-cl-ppcre)))
11723 (home-page "https://shinmera.github.io/dissect/")
11724 (synopsis
11725 "Introspection library for the call stack and restarts")
11726 (description
11727 "Dissect is a small Common Lisp library for introspecting the call stack
11728 and active restarts.")
11729 (license license:zlib))))
11730
11731 (define-public cl-dissect
11732 (sbcl-package->cl-source-package sbcl-dissect))
11733
11734 (define-public ecl-dissect
11735 (sbcl-package->ecl-package sbcl-dissect))
11736
11737 ;; TODO: Uses ASDF's package-inferred-system which is not supported by
11738 ;; asdf-build-system/sbcl as of 2020-05-21. We should fix
11739 ;; asdf-build-system/sbcl.
11740 (define-public sbcl-rove
11741 (package
11742 (name "sbcl-rove")
11743 (version "0.9.6")
11744 (source
11745 (origin
11746 (method git-fetch)
11747 (uri (git-reference
11748 (url "https://github.com/fukamachi/rove.git")
11749 (commit "f3695db08203bf26f3b861dc22ac0f4257d3ec21")))
11750 (file-name (git-file-name name version))
11751 (sha256
11752 (base32
11753 "07ala4l2fncxf540fzxj3h5mhi9i4wqllhj0rqk8m2ljl5zbz89q"))))
11754 (build-system asdf-build-system/sbcl)
11755 (inputs
11756 `(("bordeaux-threads" ,sbcl-bordeaux-threads)
11757 ("dissect" ,sbcl-dissect)
11758 ("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
11759 (home-page "https://github.com/fukamachi/rove")
11760 (synopsis
11761 "Yet another common lisp testing library")
11762 (description
11763 "Rove is a unit testing framework for Common Lisp applications.
11764 This is intended to be a successor of Prove.")
11765 (license license:bsd-3)))
11766
11767 (define-public cl-rove
11768 (sbcl-package->cl-source-package sbcl-rove))
11769
11770 (define-public ecl-rove
11771 (sbcl-package->ecl-package sbcl-rove))
11772
11773 (define-public sbcl-exponential-backoff
11774 (let ((commit "8d9e8444d8b3184a524c12ce3449f91613ab714f"))
11775 (package
11776 (name "sbcl-exponential-backoff")
11777 (version (git-version "0" "1" commit))
11778 (source
11779 (origin
11780 (method git-fetch)
11781 (uri (git-reference
11782 (url "https://github.com/death/exponential-backoff.git")
11783 (commit commit)))
11784 (file-name (git-file-name name version))
11785 (sha256
11786 (base32
11787 "1389hm9hxv85s0125ja4js1bvh8ay4dsy9q1gaynjv27ynik6gmv"))))
11788 (build-system asdf-build-system/sbcl)
11789 (home-page "https://github.com/death/exponential-backoff")
11790 (synopsis "Exponential backoff algorithm in Common Lisp")
11791 (description
11792 "An implementation of the exponential backoff algorithm in Common Lisp.
11793 Inspired by the implementation found in Chromium. Read the header file to
11794 learn about each of the parameters.")
11795 (license license:expat))))
11796
11797 (define-public cl-exponential-backoff
11798 (sbcl-package->cl-source-package sbcl-exponential-backoff))
11799
11800 (define-public ecl-exponential-backoff
11801 (sbcl-package->ecl-package sbcl-exponential-backoff))
11802
11803 (define-public sbcl-sxql
11804 (let ((commit "5aa8b739492c5829e8623432b5d46482263990e8"))
11805 (package
11806 (name "sbcl-sxql")
11807 (version (git-version "0.1.0" "1" commit))
11808 (source
11809 (origin
11810 (method git-fetch)
11811 (uri (git-reference
11812 (url "https://github.com/fukamachi/sxql.git")
11813 (commit commit)))
11814 (file-name (git-file-name name version))
11815 (sha256
11816 (base32
11817 "0k25p6w2ld9cn8q8s20lda6yjfyp4q89219sviayfgixnj27avnj"))))
11818 (build-system asdf-build-system/sbcl)
11819 (arguments
11820 `(#:test-asd-file "sxql-test.asd"))
11821 (inputs
11822 `(("alexandria" ,sbcl-alexandria)
11823 ("cl-syntax-annot" ,sbcl-cl-syntax-annot)
11824 ("iterate" ,sbcl-iterate)
11825 ("optima" ,sbcl-optima)
11826 ("split-sequence" ,sbcl-split-sequence)
11827 ("trivial-types" ,sbcl-trivial-types)))
11828 (native-inputs
11829 `(("prove" ,sbcl-prove)
11830 ("prove-asdf" ,sbcl-prove-asdf)))
11831 (home-page "https://github.com/fukamachi/sxql")
11832 (synopsis "SQL generator for Common Lisp")
11833 (description "SQL generator for Common Lisp.")
11834 (license license:bsd-3))))
11835
11836 (define-public cl-sxql
11837 (sbcl-package->cl-source-package sbcl-sxql))
11838
11839 (define-public ecl-sxql
11840 (sbcl-package->ecl-package sbcl-sxql))
11841
11842 (define-public sbcl-1am
11843 (let ((commit "8b1da94eca4613fd8a20bdf63f0e609e379b0ba5"))
11844 (package
11845 (name "sbcl-1am")
11846 (version (git-version "0.0" "1" commit))
11847 (source
11848 (origin
11849 (method git-fetch)
11850 (uri (git-reference
11851 (url "https://github.com/lmj/1am.git")
11852 (commit commit)))
11853 (file-name (git-file-name name version))
11854 (sha256
11855 (base32
11856 "05ss4nz1jb9kb796295482b62w5cj29msfj8zis33sp2rw2vmv2g"))))
11857 (build-system asdf-build-system/sbcl)
11858 (arguments
11859 `(#:asd-system-name "1am"))
11860 (home-page "https://github.com/lmj/1am")
11861 (synopsis "Minimal testing framework for Common Lisp")
11862 (description "A minimal testing framework for Common Lisp.")
11863 (license license:expat))))
11864
11865 (define-public cl-1am
11866 (sbcl-package->cl-source-package sbcl-1am))
11867
11868 (define-public ecl-1am
11869 (sbcl-package->ecl-package sbcl-1am))
11870
11871 (define-public sbcl-cl-ascii-table
11872 (let ((commit "d9f5e774a56fad1b416e4dadb8f8a5b0e84094e2")
11873 (revision "1"))
11874 (package
11875 (name "sbcl-cl-ascii-table")
11876 (version (git-version "0.0.0" revision commit))
11877 (source
11878 (origin
11879 (method git-fetch)
11880 (uri (git-reference
11881 (url "https://github.com/telephil/cl-ascii-table.git")
11882 (commit commit)))
11883 (file-name (git-file-name name version))
11884 (sha256
11885 (base32 "125fdif9sgl7k0ngjhxv0wjas2q27d075025hvj2rx1b1x948z4s"))))
11886 (build-system asdf-build-system/sbcl)
11887 (synopsis "Library to make ascii-art tables")
11888 (description
11889 "This is a Common Lisp library to present tabular data in ascii-art
11890 tables.")
11891 (home-page "https://github.com/telephil/cl-ascii-table")
11892 (license license:expat))))
11893
11894 (define-public cl-ascii-table
11895 (sbcl-package->cl-source-package sbcl-cl-ascii-table))
11896
11897 (define-public ecl-cl-ascii-table
11898 (sbcl-package->ecl-package sbcl-cl-ascii-table))
11899
11900 (define-public sbcl-cl-rdkafka
11901 (package
11902 (name "sbcl-cl-rdkafka")
11903 (version "1.0.2")
11904 (source
11905 (origin
11906 (method git-fetch)
11907 (uri (git-reference
11908 (url "https://github.com/SahilKang/cl-rdkafka.git")
11909 (commit (string-append "v" version))))
11910 (file-name (git-file-name name version))
11911 (sha256
11912 (base32
11913 "1qcgfd4h7syilzmrmd4z2vknbvawda3q3ykw7xm8n381syry4g82"))))
11914 (build-system asdf-build-system/sbcl)
11915 (arguments
11916 `(#:tests? #f ; Attempts to connect to locally running Kafka
11917 #:phases
11918 (modify-phases %standard-phases
11919 (add-after 'unpack 'fix-paths
11920 (lambda* (#:key inputs #:allow-other-keys)
11921 (substitute* "src/low-level/librdkafka-bindings.lisp"
11922 (("librdkafka" all)
11923 (string-append (assoc-ref inputs "librdkafka") "/lib/"
11924 all)))))
11925 (add-before 'cleanup 'move-bundle
11926 (lambda* (#:key outputs #:allow-other-keys)
11927 (let* ((out (assoc-ref outputs "out"))
11928 (actual (string-append out "/lib/sbcl/src/cl-rdkafka.fasl"))
11929 (expected (string-append
11930 out "/lib/sbcl/cl-rdkafka--system.fasl")))
11931 (copy-file actual expected)
11932 #t))))))
11933 (inputs
11934 `(("bordeaux-threads" ,sbcl-bordeaux-threads)
11935 ("cffi" ,sbcl-cffi)
11936 ("cffi-grovel" ,sbcl-cffi-grovel)
11937 ("librdkafka" ,librdkafka)
11938 ("lparallel" ,sbcl-lparallel)
11939 ("trivial-garbage" ,sbcl-trivial-garbage)))
11940 (home-page "https://github.com/SahilKang/cl-rdkafka")
11941 (synopsis "Common Lisp client library for Apache Kafka")
11942 (description "A Common Lisp client library for Apache Kafka.")
11943 (license license:gpl3)))
11944
11945 (define-public cl-rdkafka
11946 (sbcl-package->cl-source-package sbcl-cl-rdkafka))
11947
11948 (define-public sbcl-acclimation
11949 (let ((commit "4d51150902568fcd59335f4cc4cfa022df6116a5"))
11950 (package
11951 (name "sbcl-acclimation")
11952 (version (git-version "0.0.0" "1" commit))
11953 (source
11954 (origin
11955 (method git-fetch)
11956 (uri (git-reference
11957 (url "https://github.com/robert-strandh/Acclimation")
11958 (commit commit)))
11959 (file-name (git-file-name name version))
11960 (sha256
11961 (base32
11962 "1aw7rarjl8ai57h0jxnp9hr3dka7qrs55mmbl1p6rhd6xj8mp9wq"))))
11963 (build-system asdf-build-system/sbcl)
11964 (home-page "https://github.com/robert-strandh/Acclimation")
11965 (synopsis "Internationalization library for Common Lisp")
11966 (description "This project is meant to provide tools for
11967 internationalizing Common Lisp programs.
11968
11969 One important aspect of internationalization is of course the language used in
11970 error messages, documentation strings, etc. But with this project we provide
11971 tools for all other aspects of internationalization as well, including dates,
11972 weight, temperature, names of physical quantitites, etc.")
11973 (license license:bsd-2))))
11974
11975 (define-public cl-acclimation
11976 (sbcl-package->cl-source-package sbcl-acclimation))
11977
11978 (define-public sbcl-clump-2-3-tree
11979 (let ((commit "1ea4dbac1cb86713acff9ae58727dd187d21048a"))
11980 (package
11981 (name "sbcl-clump-2-3-tree")
11982 (version (git-version "0.0.0" "1" commit))
11983 (source
11984 (origin
11985 (method git-fetch)
11986 (uri (git-reference
11987 (url "https://github.com/robert-strandh/Clump")
11988 (commit commit)))
11989 (file-name (git-file-name name version))
11990 (sha256
11991 (base32
11992 "1639msyagsswj85gc0wd90jgh8588j3qg5q70by9s2brf2q6w4lh"))))
11993 (arguments
11994 '(#:asd-file "2-3-tree/clump-2-3-tree.asd"
11995 #:asd-system-name "clump-2-3-tree"))
11996 (inputs
11997 `(("acclimation" ,sbcl-acclimation)))
11998 (build-system asdf-build-system/sbcl)
11999 (home-page "https://github.com/robert-strandh/Clump")
12000 (synopsis "Implementation of 2-3 trees for Common Lisp")
12001 (description "The purpose of this library is to provide a collection of
12002 implementations of trees.
12003
12004 In contrast to existing libraries such as cl-containers, it does not impose a
12005 particular use for the trees. Instead, it aims for a stratified design,
12006 allowing client code to choose between different levels of abstraction.
12007
12008 As a consequence of this policy, low-level interfaces are provided where
12009 the concrete representation is exposed, but also high level interfaces
12010 where the trees can be used as search trees or as trees that represent
12011 sequences of objects.")
12012 (license license:bsd-2))))
12013
12014 (define-public sbcl-clump-binary-tree
12015 (package
12016 (inherit sbcl-clump-2-3-tree)
12017 (name "sbcl-clump-binary-tree")
12018 (arguments
12019 '(#:asd-file "Binary-tree/clump-binary-tree.asd"
12020 #:asd-system-name "clump-binary-tree"))
12021 (synopsis "Implementation of binary trees for Common Lisp")))
12022
12023 (define-public sbcl-clump
12024 (package
12025 (inherit sbcl-clump-2-3-tree)
12026 (name "sbcl-clump")
12027 (arguments
12028 '(#:asd-file "clump.asd"
12029 #:asd-system-name "clump"))
12030 (inputs
12031 `(("clump-2-3-tree" ,sbcl-clump-2-3-tree)
12032 ("clump-binary-tree" ,sbcl-clump-binary-tree)))
12033 (synopsis "Collection of tree implementations for Common Lisp")))
12034
12035 (define-public cl-clump
12036 (sbcl-package->cl-source-package sbcl-clump))
12037
12038 (define-public sbcl-cluffer-base
12039 (let ((commit "4aad29c276a58a593064e79972ee4d77cae0af4a"))
12040 (package
12041 (name "sbcl-cluffer-base")
12042 (version (git-version "0.0.0" "1" commit))
12043 (source
12044 (origin
12045 (method git-fetch)
12046 (uri (git-reference
12047 (url "https://github.com/robert-strandh/cluffer")
12048 (commit commit)))
12049 (file-name (git-file-name name version))
12050 (sha256
12051 (base32
12052 "1bcg13g7qb3dr8z50aihdjqa6miz5ivlc9wsj2csgv1km1mak2kj"))))
12053 (arguments
12054 '(#:asd-file "Base/cluffer-base.asd"
12055 #:asd-system-name "cluffer-base"))
12056 (inputs
12057 `(("acclimation" ,sbcl-acclimation)))
12058 (build-system asdf-build-system/sbcl)
12059 (home-page "https://github.com/robert-strandh/cluffer")
12060 (synopsis "Common Lisp library providing a protocol for text-editor buffers")
12061 (description "Cluffer is a library for representing the buffer of a text
12062 editor. As such, it defines a set of CLOS protocols for client code to
12063 interact with the buffer contents in various ways, and it supplies different
12064 implementations of those protocols for different purposes.")
12065 (license license:bsd-2))))
12066
12067 (define-public sbcl-cluffer-standard-line
12068 (package
12069 (inherit sbcl-cluffer-base)
12070 (name "sbcl-cluffer-standard-line")
12071 (arguments
12072 '(#:asd-file "Standard-line/cluffer-standard-line.asd"
12073 #:asd-system-name "cluffer-standard-line"))
12074 (inputs
12075 `(("cluffer-base" ,sbcl-cluffer-base)))))
12076
12077 (define-public sbcl-cluffer-standard-buffer
12078 (package
12079 (inherit sbcl-cluffer-base)
12080 (name "sbcl-cluffer-standard-buffer")
12081 (arguments
12082 '(#:asd-file "Standard-buffer/cluffer-standard-buffer.asd"
12083 #:asd-system-name "cluffer-standard-buffer"))
12084 (inputs
12085 `(("cluffer-base" ,sbcl-cluffer-base)
12086 ("clump" ,sbcl-clump)))))
12087
12088 (define-public sbcl-cluffer-simple-line
12089 (package
12090 (inherit sbcl-cluffer-base)
12091 (name "sbcl-cluffer-simple-line")
12092 (arguments
12093 '(#:asd-file "Simple-line/cluffer-simple-line.asd"
12094 #:asd-system-name "cluffer-simple-line"))
12095 (inputs
12096 `(("cluffer-base" ,sbcl-cluffer-base)))))