gnu: sbcl-dexador: Update to 0.9.14.
[jackhill/guix/guix.git] / gnu / packages / lisp-xyz.scm
1 ;;; GNU Guix --- Functional package management for GNU
2 ;;; Copyright © 2014 John Darrington <jmd@gnu.org>
3 ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
4 ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
5 ;;; Copyright © 2016 Federico Beffa <beffa@fbengineering.ch>
6 ;;; Copyright © 2016, 2017 ng0 <ng0@n0.is>
7 ;;; Copyright © 2016, 2017 Andy Patterson <ajpatter@uwaterloo.ca>
8 ;;; Copyright © 2017, 2019, 2020 Ricardo Wurmus <rekado@elephly.net>
9 ;;; Copyright © 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
10 ;;; Copyright © 2017, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
11 ;;; Copyright © 2018 Benjamin Slade <slade@jnanam.net>
12 ;;; Copyright © 2018 Alex Vong <alexvong1995@gmail.com>
13 ;;; Copyright © 2018, 2020 Pierre Neidhardt <mail@ambrevar.xyz>
14 ;;; Copyright © 2018, 2019 Pierre Langlois <pierre.langlois@gmx.com>
15 ;;; Copyright © 2019, 2020 Katherine Cox-Buday <cox.katherine.e@gmail.com>
16 ;;; Copyright © 2019 Jesse Gildersleve <jessejohngildersleve@protonmail.com>
17 ;;; Copyright © 2019, 2020 Guillaume Le Vaillant <glv@posteo.net>
18 ;;; Copyright © 2019 Brett Gilio <brettg@gnu.org>
19 ;;; Copyright © 2020 Konrad Hinsen <konrad.hinsen@fastmail.net>
20 ;;; Copyright © 2020 Dimakis Dimakakos <me@bendersteed.tech>
21 ;;; Copyright © 2020 Oleg Pykhalov <go.wigust@gmail.com>
22 ;;;
23 ;;; This file is part of GNU Guix.
24 ;;;
25 ;;; GNU Guix is free software; you can redistribute it and/or modify it
26 ;;; under the terms of the GNU General Public License as published by
27 ;;; the Free Software Foundation; either version 3 of the License, or (at
28 ;;; your option) any later version.
29 ;;;
30 ;;; GNU Guix is distributed in the hope that it will be useful, but
31 ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
32 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
33 ;;; GNU General Public License for more details.
34 ;;;
35 ;;; You should have received a copy of the GNU General Public License
36 ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
37
38 ;;; This file only contains Common Lisp libraries.
39 ;;; Common Lisp compilers and tooling go to lisp.scm.
40 ;;; Common Lisp applications should go to the most appropriate file,
41 ;;; e.g. StumpWM is in wm.scm.
42
43 (define-module (gnu packages lisp-xyz)
44 #:use-module (gnu packages)
45 #:use-module ((guix licenses) #:prefix license:)
46 #:use-module (guix packages)
47 #:use-module (guix download)
48 #:use-module (guix git-download)
49 #:use-module (guix hg-download)
50 #:use-module (guix utils)
51 #:use-module (guix build-system asdf)
52 #:use-module (guix build-system trivial)
53 #:use-module (gnu packages c)
54 #:use-module (gnu packages compression)
55 #:use-module (gnu packages databases)
56 #:use-module (gnu packages enchant)
57 #:use-module (gnu packages glib)
58 #:use-module (gnu packages gtk)
59 #:use-module (gnu packages imagemagick)
60 #:use-module (gnu packages libevent)
61 #:use-module (gnu packages libffi)
62 #:use-module (gnu packages lisp)
63 #:use-module (gnu packages maths)
64 #:use-module (gnu packages networking)
65 #:use-module (gnu packages pkg-config)
66 #:use-module (gnu packages python)
67 #:use-module (gnu packages python-xyz)
68 #:use-module (gnu packages sqlite)
69 #:use-module (gnu packages tcl)
70 #:use-module (gnu packages tls)
71 #:use-module (gnu packages webkit)
72 #:use-module (gnu packages xdisorg)
73 #:use-module (ice-9 match)
74 #:use-module (srfi srfi-19))
75
76 (define-public sbcl-alexandria
77 (let ((commit "5e5c7d83090cc0fbf32c4628362ac3ce2c50dc59"))
78 (package
79 (name "sbcl-alexandria")
80 (version "1.0.1")
81 (source
82 (origin
83 (method git-fetch)
84 (uri (git-reference
85 (url "https://gitlab.common-lisp.net/alexandria/alexandria.git")
86 (commit commit)))
87 (sha256
88 (base32
89 "010w8829dq28jf8ajfzas9nfvpxa5bal04mg299xq6y9spihc2iz"))
90 (file-name (git-file-name name version))))
91 (build-system asdf-build-system/sbcl)
92 (native-inputs
93 `(("rt" ,sbcl-rt)))
94 (synopsis "Collection of portable utilities for Common Lisp")
95 (description
96 "Alexandria is a collection of portable utilities. It does not contain
97 conceptual extensions to Common Lisp. It is conservative in scope, and
98 portable between implementations.")
99 (home-page "https://common-lisp.net/project/alexandria/")
100 (license license:public-domain))))
101
102 (define-public cl-alexandria
103 (sbcl-package->cl-source-package sbcl-alexandria))
104
105 (define-public ecl-alexandria
106 (sbcl-package->ecl-package sbcl-alexandria))
107
108 (define-public sbcl-net.didierverna.asdf-flv
109 (package
110 (name "sbcl-net.didierverna.asdf-flv")
111 (version "2.1")
112 (source
113 (origin
114 (method git-fetch)
115 (uri (git-reference
116 (url "https://github.com/didierverna/asdf-flv")
117 (commit (string-append "version-" version))))
118 (file-name (git-file-name "asdf-flv" version))
119 (sha256
120 (base32 "1fi2y4baxan103jbg4idjddzihy03kwnj2mzbwrknw4d4x7xlgwj"))))
121 (build-system asdf-build-system/sbcl)
122 (synopsis "Common Lisp ASDF extension to provide support for file-local variables")
123 (description "ASDF-FLV provides support for file-local variables through
124 ASDF. A file-local variable behaves like @code{*PACKAGE*} and
125 @code{*READTABLE*} with respect to @code{LOAD} and @code{COMPILE-FILE}: a new
126 dynamic binding is created before processing the file, so that any
127 modification to the variable becomes essentially file-local.
128
129 In order to make one or several variables file-local, use the macros
130 @code{SET-FILE-LOCAL-VARIABLE(S)}.")
131 (home-page "https://www.lrde.epita.fr/~didier/software/lisp/misc.php#asdf-flv")
132 (license (license:non-copyleft
133 "https://www.gnu.org/prep/maintain/html_node/License-Notices-for-Other-Files.html"
134 "GNU All-Permissive License"))))
135
136 (define-public cl-net.didierverna.asdf-flv
137 (sbcl-package->cl-source-package sbcl-net.didierverna.asdf-flv))
138
139 (define-public ecl-net.didierverna.asdf-flv
140 (sbcl-package->ecl-package sbcl-net.didierverna.asdf-flv))
141
142 (define-public sbcl-fiveam
143 (package
144 (name "sbcl-fiveam")
145 (version "1.4.1")
146 (source
147 (origin
148 (method git-fetch)
149 (uri (git-reference
150 (url "https://github.com/sionescu/fiveam.git")
151 (commit (string-append "v" version))))
152 (file-name (git-file-name "fiveam" version))
153 (sha256
154 (base32 "1q3d38pwafnwnw42clq0f8g5xw7pbzr287jl9jsqmb1vb0n1vrli"))))
155 (inputs
156 `(("alexandria" ,sbcl-alexandria)
157 ("net.didierverna.asdf-flv" ,sbcl-net.didierverna.asdf-flv)
158 ("trivial-backtrace" ,sbcl-trivial-backtrace)))
159 (build-system asdf-build-system/sbcl)
160 (synopsis "Common Lisp testing framework")
161 (description "FiveAM is a simple (as far as writing and running tests
162 goes) regression testing framework. It has been designed with Common Lisp's
163 interactive development model in mind.")
164 (home-page "https://common-lisp.net/project/fiveam/")
165 (license license:bsd-3)))
166
167 (define-public cl-fiveam
168 (sbcl-package->cl-source-package sbcl-fiveam))
169
170 (define-public ecl-fiveam
171 (sbcl-package->ecl-package sbcl-fiveam))
172
173 (define-public sbcl-bordeaux-threads
174 (package
175 (name "sbcl-bordeaux-threads")
176 (version "0.8.7")
177 (source (origin
178 (method git-fetch)
179 (uri (git-reference
180 (url "https://github.com/sionescu/bordeaux-threads.git")
181 (commit (string-append "v" version))))
182 (sha256
183 (base32 "1whpfmyxp2fsw6viqj45fqgsifgr534c575bfh5vaqw5m84b6alp"))
184 (file-name
185 (git-file-name "bordeaux-threads" version))))
186 (inputs `(("alexandria" ,sbcl-alexandria)))
187 (native-inputs `(("fiveam" ,sbcl-fiveam)))
188 (build-system asdf-build-system/sbcl)
189 (synopsis "Portable shared-state concurrency library for Common Lisp")
190 (description "BORDEAUX-THREADS is a proposed standard for a minimal
191 MP/Threading interface. It is similar to the CLIM-SYS threading and lock
192 support.")
193 (home-page "https://common-lisp.net/project/bordeaux-threads/")
194 (license license:x11)))
195
196 (define-public cl-bordeaux-threads
197 (sbcl-package->cl-source-package sbcl-bordeaux-threads))
198
199 (define-public ecl-bordeaux-threads
200 (sbcl-package->ecl-package sbcl-bordeaux-threads))
201
202 (define-public sbcl-trivial-gray-streams
203 (let ((revision "1")
204 (commit "0483ade330508b4b2edeabdb47d16ec9437ee1cb"))
205 (package
206 (name "sbcl-trivial-gray-streams")
207 (version (string-append "0.0.0-" revision "." (string-take commit 7)))
208 (source
209 (origin
210 (method git-fetch)
211 (uri
212 (git-reference
213 (url "https://github.com/trivial-gray-streams/trivial-gray-streams.git")
214 (commit commit)))
215 (sha256
216 (base32 "0m3rpf2x0zmdk3nf1qfa01j6a55vj7gkwhyw78qslcgbjlgh8p4d"))
217 (file-name
218 (string-append "trivial-gray-streams-" version "-checkout"))))
219 (build-system asdf-build-system/sbcl)
220 (synopsis "Compatibility layer for Gray streams implementations")
221 (description "Gray streams is an interface proposed for inclusion with
222 ANSI CL by David N. Gray. The proposal did not make it into ANSI CL, but most
223 popular CL implementations implement it. This package provides an extremely
224 thin compatibility layer for gray streams.")
225 (home-page "https://www.cliki.net/trivial-gray-streams")
226 (license license:x11))))
227
228 (define-public cl-trivial-gray-streams
229 (sbcl-package->cl-source-package sbcl-trivial-gray-streams))
230
231 (define-public ecl-trivial-gray-streams
232 (sbcl-package->ecl-package sbcl-trivial-gray-streams))
233
234 (define-public sbcl-fiasco
235 (let ((commit "d62f7558b21addc89f87e306f65d7f760632655f")
236 (revision "1"))
237 (package
238 (name "sbcl-fiasco")
239 (version (git-version "0.0.1" revision commit))
240 (source
241 (origin
242 (method git-fetch)
243 (uri (git-reference
244 (url "https://github.com/joaotavora/fiasco.git")
245 (commit commit)))
246 (file-name (git-file-name "fiasco" version))
247 (sha256
248 (base32
249 "1zwxs3d6iswayavcmb49z2892xhym7n556d8dnmvalc32pm9bkjh"))))
250 (build-system asdf-build-system/sbcl)
251 (inputs
252 `(("alexandria" ,sbcl-alexandria)
253 ("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
254 (synopsis "Simple and powerful test framework for Common Lisp")
255 (description "A Common Lisp test framework that treasures your failures,
256 logical continuation of Stefil. It focuses on interactive debugging.")
257 (home-page "https://github.com/joaotavora/fiasco")
258 ;; LICENCE specifies this is public-domain unless the legislation
259 ;; doesn't allow or recognize it. In that case it falls back to a
260 ;; permissive licence.
261 (license (list license:public-domain
262 (license:x11-style "file://LICENCE"))))))
263
264 (define-public cl-fiasco
265 (sbcl-package->cl-source-package sbcl-fiasco))
266
267 (define-public ecl-fiasco
268 (sbcl-package->ecl-package sbcl-fiasco))
269
270 (define-public sbcl-flexi-streams
271 (package
272 (name "sbcl-flexi-streams")
273 (version "1.0.18")
274 (source
275 (origin
276 (method git-fetch)
277 (uri (git-reference
278 (url "https://github.com/edicl/flexi-streams.git")
279 (commit (string-append "v" version))))
280 (file-name (git-file-name "flexi-streams" version))
281 (sha256
282 (base32 "0bjv7fd2acknidc5dyi3h85pn10krxv5jyxs1xg8jya2rlfv7f1j"))))
283 (build-system asdf-build-system/sbcl)
284 (arguments
285 `(#:phases
286 (modify-phases %standard-phases
287 (add-after 'unpack 'make-git-checkout-writable
288 (lambda _
289 (for-each make-file-writable (find-files "."))
290 #t)))))
291 (inputs `(("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
292 (synopsis "Implementation of virtual bivalent streams for Common Lisp")
293 (description "Flexi-streams is an implementation of \"virtual\" bivalent
294 streams that can be layered atop real binary or bivalent streams and that can
295 be used to read and write character data in various single- or multi-octet
296 encodings which can be changed on the fly. It also supplies in-memory binary
297 streams which are similar to string streams.")
298 (home-page "http://weitz.de/flexi-streams/")
299 (license license:bsd-3)))
300
301 (define-public cl-flexi-streams
302 (sbcl-package->cl-source-package sbcl-flexi-streams))
303
304 (define-public ecl-flexi-streams
305 (sbcl-package->ecl-package sbcl-flexi-streams))
306
307 (define-public sbcl-cl-ppcre
308 (package
309 (name "sbcl-cl-ppcre")
310 (version "2.1.1")
311 (source
312 (origin
313 (method git-fetch)
314 (uri (git-reference
315 (url "https://github.com/edicl/cl-ppcre.git")
316 (commit (string-append "v" version))))
317 (file-name (git-file-name "cl-ppcre" version))
318 (sha256
319 (base32 "0dwvr29diqzcg5n6jvbk2rnd90i05l7n828hhw99khmqd0kz7xsi"))))
320 (build-system asdf-build-system/sbcl)
321 (native-inputs `(("flexi-streams" ,sbcl-flexi-streams)))
322 (synopsis "Portable regular expression library for Common Lisp")
323 (description "CL-PPCRE is a portable regular expression library for Common
324 Lisp, which is compatible with perl. It is pretty fast, thread-safe, and
325 compatible with ANSI-compliant Common Lisp implementations.")
326 (home-page "http://weitz.de/cl-ppcre/")
327 (license license:bsd-2)))
328
329 (define-public cl-ppcre
330 (sbcl-package->cl-source-package sbcl-cl-ppcre))
331
332 (define-public ecl-cl-ppcre
333 (sbcl-package->ecl-package sbcl-cl-ppcre))
334
335 (define sbcl-cl-unicode-base
336 (package
337 (name "sbcl-cl-unicode-base")
338 (version "0.1.6")
339 (source (origin
340 (method git-fetch)
341 (uri (git-reference
342 (url "https://github.com/edicl/cl-unicode.git")
343 (commit (string-append "v" version))))
344 (file-name (git-file-name name version))
345 (sha256
346 (base32
347 "0ykx2s9lqfl74p1px0ik3l2izd1fc9jd1b4ra68s5x34rvjy0hza"))))
348 (build-system asdf-build-system/sbcl)
349 (arguments
350 '(#:asd-file "cl-unicode.asd"
351 #:asd-system-name "cl-unicode/base"))
352 (inputs
353 `(("cl-ppcre" ,sbcl-cl-ppcre)))
354 (home-page "http://weitz.de/cl-unicode/")
355 (synopsis "Portable Unicode library for Common Lisp")
356 (description "CL-UNICODE is a portable Unicode library Common Lisp, which
357 is compatible with perl. It is pretty fast, thread-safe, and compatible with
358 ANSI-compliant Common Lisp implementations.")
359 (license license:bsd-2)))
360
361 (define-public sbcl-cl-unicode
362 (package
363 (inherit sbcl-cl-unicode-base)
364 (name "sbcl-cl-unicode")
365 (inputs
366 `(("cl-unicode/base" ,sbcl-cl-unicode-base)
367 ,@(package-inputs sbcl-cl-unicode-base)))
368 (native-inputs
369 `(("flexi-streams" ,sbcl-flexi-streams)))
370 (arguments '())))
371
372 (define-public ecl-cl-unicode
373 (sbcl-package->ecl-package sbcl-cl-unicode))
374
375 (define-public cl-unicode
376 (sbcl-package->cl-source-package sbcl-cl-unicode))
377
378 (define-public sbcl-zpb-ttf
379 (package
380 (name "sbcl-zpb-ttf")
381 (version "1.0.3")
382 (source
383 (origin
384 (method git-fetch)
385 (uri (git-reference
386 (url "https://github.com/xach/zpb-ttf.git")
387 (commit (string-append "release-" version))))
388 (file-name (git-file-name name version))
389 (sha256
390 (base32
391 "1wh66vjijzqlydnrihynpwp6796917xwrh0i9li93c17kyxa74ih"))))
392 (build-system asdf-build-system/sbcl)
393 (home-page "https://github.com/xach/zpb-ttf")
394 (synopsis "TrueType font file access for Common Lisp")
395 (description
396 "ZPB-TTF is a TrueType font file parser that provides an interface for
397 reading typographic metrics, glyph outlines, and other information from the
398 file.")
399 (license license:bsd-2)))
400
401 (define-public ecl-zpb-ttf
402 (sbcl-package->ecl-package sbcl-zpb-ttf))
403
404 (define-public cl-zpb-ttf
405 (sbcl-package->cl-source-package sbcl-zpb-ttf))
406
407 (define-public sbcl-cl-aa
408 (package
409 (name "sbcl-cl-aa")
410 (version "0.1.5")
411 (source
412 (origin
413 (method url-fetch)
414 (uri (string-append "http://projects.tuxee.net/cl-vectors/"
415 "files/cl-vectors-" version ".tar.gz"))
416 (sha256
417 (base32
418 "04lhwi0kq8pkwhgd885pk80m1cp9sfvjjn5zj70s1dnckibhdmqh"))))
419 (build-system asdf-build-system/sbcl)
420 (arguments '(#:asd-file "cl-aa.asd"))
421 (home-page "http://projects.tuxee.net/cl-vectors/")
422 (synopsis "Polygon rasterizer")
423 (description
424 "This is a Common Lisp library implementing the AA polygon rasterization
425 algorithm from the @url{http://antigrain.com, Antigrain} project.")
426 (license license:expat)))
427
428 (define-public ecl-cl-aa
429 (sbcl-package->ecl-package sbcl-cl-aa))
430
431 (define-public cl-aa
432 (sbcl-package->cl-source-package sbcl-cl-aa))
433
434 (define-public sbcl-cl-paths
435 (package
436 (inherit sbcl-cl-aa)
437 (name "sbcl-cl-paths")
438 (arguments '(#:asd-file "cl-paths.asd"))
439 (synopsis "Facilities to create and manipulate vectorial paths")
440 (description
441 "This package provides facilities to create and manipulate vectorial
442 paths.")))
443
444 (define-public ecl-cl-paths
445 (sbcl-package->ecl-package sbcl-cl-paths))
446
447 (define-public cl-paths
448 (sbcl-package->cl-source-package sbcl-cl-paths))
449
450 (define-public sbcl-cl-paths-ttf
451 (package
452 (inherit sbcl-cl-aa)
453 (name "sbcl-cl-paths-ttf")
454 (arguments '(#:asd-file "cl-paths-ttf.asd"))
455 (inputs
456 `(("cl-paths" ,sbcl-cl-paths)
457 ("zpb-ttf" ,sbcl-zpb-ttf)))
458 (synopsis "Facilities to create and manipulate vectorial paths")
459 (description
460 "This package provides facilities to create and manipulate vectorial
461 paths.")))
462
463 (define-public ecl-cl-paths-ttf
464 (sbcl-package->ecl-package sbcl-cl-paths-ttf))
465
466 (define-public cl-paths-ttf
467 (sbcl-package->cl-source-package sbcl-cl-paths-ttf))
468
469 (define-public sbcl-cl-vectors
470 (package
471 (inherit sbcl-cl-aa)
472 (name "sbcl-cl-vectors")
473 (arguments '(#:asd-file "cl-vectors.asd"))
474 (inputs
475 `(("cl-aa" ,sbcl-cl-aa)
476 ("cl-paths" ,sbcl-cl-paths)))
477 (synopsis "Create, transform and render anti-aliased vectorial paths")
478 (description
479 "This is a pure Common Lisp library to create, transform and render
480 anti-aliased vectorial paths.")))
481
482 (define-public ecl-cl-vectors
483 (sbcl-package->ecl-package sbcl-cl-vectors))
484
485 (define-public cl-vectors
486 (sbcl-package->cl-source-package sbcl-cl-vectors))
487
488 (define-public sbcl-spatial-trees
489 ;; There have been no releases.
490 (let ((commit "81fdad0a0bf109c80a53cc96eca2e093823400ba")
491 (revision "1"))
492 (package
493 (name "sbcl-spatial-trees")
494 (version (git-version "0" revision commit))
495 (source
496 (origin
497 (method git-fetch)
498 (uri (git-reference
499 (url "https://github.com/rpav/spatial-trees.git")
500 (commit commit)))
501 (file-name (git-file-name name version))
502 (sha256
503 (base32
504 "11rhc6h501dwcik2igkszz7b9n515cr99m5pjh4r2qfwgiri6ysa"))))
505 (build-system asdf-build-system/sbcl)
506 (arguments
507 '(#:tests? #f ; spatial-trees.test requires spatial-trees.nns
508 #:asd-file "spatial-trees.asd"
509 #:test-asd-file "spatial-trees.test.asd"))
510 (native-inputs
511 `(("fiveam" ,sbcl-fiveam)))
512 (home-page "https://github.com/rpav/spatial-trees")
513 (synopsis "Dynamic index data structures for spatially-extended data")
514 (description
515 "Spatial-trees is a set of dynamic index data structures for
516 spatially-extended data.")
517 (license license:bsd-3))))
518
519 (define-public ecl-spatial-trees
520 (sbcl-package->ecl-package sbcl-spatial-trees))
521
522 (define-public cl-spatial-trees
523 (sbcl-package->cl-source-package sbcl-spatial-trees))
524
525 (define-public sbcl-flexichain
526 ;; There are no releases.
527 (let ((commit "13d2a6c505ed0abfcd4c4ec7d7145059b06855d6")
528 (revision "1"))
529 (package
530 (name "sbcl-flexichain")
531 (version "1.5.1")
532 (source
533 (origin
534 (method git-fetch)
535 (uri (git-reference
536 (url "https://github.com/robert-strandh/Flexichain.git")
537 (commit commit)))
538 (file-name (git-file-name name version))
539 (sha256
540 (base32
541 "0pfyvhsfbjd2sjb30grfs52r51a428xglv7bwydvpg2lc117qimg"))))
542 (build-system asdf-build-system/sbcl)
543 (home-page "https://github.com/robert-strandh/Flexichain.git")
544 (synopsis "Dynamically add elements to or remove them from sequences")
545 (description
546 "This package provides an implementation of the flexichain protocol,
547 allowing client code to dynamically add elements to, and delete elements from
548 a sequence (or chain) of such elements.")
549 (license license:lgpl2.1+))))
550
551 (define-public ecl-flexichain
552 (sbcl-package->ecl-package sbcl-flexichain))
553
554 (define-public cl-flexichain
555 (sbcl-package->cl-source-package sbcl-flexichain))
556
557 (define-public sbcl-cl-pdf
558 ;; There are no releases
559 (let ((commit "752e337e6d6fc206f09d091a982e7f8e5c404e4e")
560 (revision "1"))
561 (package
562 (name "sbcl-cl-pdf")
563 (version (git-version "0" revision commit))
564 (source
565 (origin
566 (method git-fetch)
567 (uri (git-reference
568 (url "https://github.com/mbattyani/cl-pdf.git")
569 (commit commit)))
570 (file-name (git-file-name name version))
571 (sha256
572 (base32
573 "1cg3k3m3r11ipb8j008y8ipynj97l3xjlpi2knqc9ndmx4r3kb1r"))))
574 (build-system asdf-build-system/sbcl)
575 (inputs
576 `(("iterate" ,sbcl-iterate)
577 ("zpb-ttf" ,sbcl-zpb-ttf)))
578 (home-page "https://github.com/mbattyani/cl-pdf")
579 (synopsis "Common Lisp library for generating PDF files")
580 (description
581 "CL-PDF is a cross-platform Common Lisp library for generating PDF
582 files.")
583 (license license:bsd-2))))
584
585 (define-public ecl-cl-pdf
586 (sbcl-package->ecl-package sbcl-cl-pdf))
587
588 (define-public cl-pdf
589 (sbcl-package->cl-source-package sbcl-cl-pdf))
590
591 (define-public sbcl-clx
592 (package
593 (name "sbcl-clx")
594 (version "0.7.5")
595 (source
596 (origin
597 (method git-fetch)
598 (uri
599 (git-reference
600 (url "https://github.com/sharplispers/clx.git")
601 (commit version)))
602 (sha256
603 (base32
604 "1vi67z9hpj5rr4xcmfbfwzmlcc0ah7hzhrmfid6lqdkva238v2wf"))
605 (file-name (string-append "clx-" version))))
606 (build-system asdf-build-system/sbcl)
607 (native-inputs
608 `(("fiasco" ,sbcl-fiasco)))
609 (home-page "https://www.cliki.net/portable-clx")
610 (synopsis "X11 client library for Common Lisp")
611 (description "CLX is an X11 client library for Common Lisp. The code was
612 originally taken from a CMUCL distribution, was modified somewhat in order to
613 make it compile and run under SBCL, then a selection of patches were added
614 from other CLXes around the net.")
615 (license license:x11)))
616
617 (define-public cl-clx
618 (sbcl-package->cl-source-package sbcl-clx))
619
620 (define-public ecl-clx
621 (sbcl-package->ecl-package sbcl-clx))
622
623 (define-public sbcl-clx-truetype
624 (let ((commit "c6e10a918d46632324d5863a8ed067a83fc26de8")
625 (revision "1"))
626 (package
627 (name "sbcl-clx-truetype")
628 (version (git-version "0.0.1" revision commit))
629 (source
630 (origin
631 (method git-fetch)
632 (uri (git-reference
633 (url "https://github.com/l04m33/clx-truetype")
634 (commit commit)))
635 (file-name (git-file-name name version))
636 (sha256
637 (base32
638 "079hyp92cjkdfn6bhkxsrwnibiqbz4y4af6nl31lzw6nm91j5j37"))
639 (modules '((guix build utils)))
640 (snippet
641 '(begin
642 (substitute* "package.lisp"
643 ((":export") ":export\n :+font-cache-filename+"))
644 #t))))
645 (build-system asdf-build-system/sbcl)
646 (inputs
647 `(("clx" ,sbcl-clx)
648 ("zpb-ttf" ,sbcl-zpb-ttf)
649 ("cl-vectors" ,sbcl-cl-vectors)
650 ("cl-paths-ttf" ,sbcl-cl-paths-ttf)
651 ("cl-fad" ,sbcl-cl-fad)
652 ("cl-store" ,sbcl-cl-store)
653 ("trivial-features" ,sbcl-trivial-features)))
654 (home-page "https://github.com/l04m33/clx-truetype")
655 (synopsis "Antialiased TrueType font rendering using CLX and XRender")
656 (description "CLX-TrueType is pure common lisp solution for
657 antialiased TrueType font rendering using CLX and XRender extension.")
658 (license license:expat))))
659
660 (define-public sbcl-cl-ppcre-unicode
661 (package (inherit sbcl-cl-ppcre)
662 (name "sbcl-cl-ppcre-unicode")
663 (arguments
664 `(#:tests? #f ; tests fail with "Component :CL-PPCRE-TEST not found"
665 #:asd-file "cl-ppcre-unicode.asd"))
666 (inputs
667 `(("sbcl-cl-ppcre" ,sbcl-cl-ppcre)
668 ("sbcl-cl-unicode" ,sbcl-cl-unicode)))))
669
670 (define-public ecl-cl-ppcre-unicode
671 (sbcl-package->ecl-package sbcl-cl-ppcre-unicode))
672
673 ;; The slynk that users expect to install includes all of slynk's contrib
674 ;; modules. Therefore, we build the base module and all contribs first; then
675 ;; we expose the union of these as `sbcl-slynk'. The following variable
676 ;; describes the base module.
677 (define sbcl-slynk-boot0
678 (let ((revision "2")
679 (commit "cbf84c36c4eca8b032e3fd16177a7bc02df3ec4c"))
680 (package
681 (name "sbcl-slynk-boot0")
682 (version (string-append "1.0.0-beta-" revision "." (string-take commit 7)))
683 (source
684 (origin
685 (method git-fetch)
686 (uri
687 (git-reference
688 (url "https://github.com/joaotavora/sly.git")
689 (commit commit)))
690 (sha256
691 (base32 "13dyhsravn591p7g6is01mp2ynzjnnj7pwgi57r6xqmd4611y9vh"))
692 (file-name (string-append "slynk-" version "-checkout"))
693 (modules '((guix build utils)
694 (ice-9 ftw)))
695 (snippet
696 '(begin
697 ;; Move the contribs into the main source directory for easier
698 ;; access
699 (substitute* "slynk/slynk.asd"
700 (("\\.\\./contrib")
701 "contrib")
702 (("\\(defsystem :slynk/util")
703 "(defsystem :slynk/util :depends-on (:slynk)")
704 ((":depends-on \\(:slynk :slynk/util\\)")
705 ":depends-on (:slynk :slynk-util)"))
706 (substitute* "contrib/slynk-trace-dialog.lisp"
707 (("\\(slynk::reset-inspector\\)") ; Causes problems on load
708 "nil"))
709 (substitute* "contrib/slynk-profiler.lisp"
710 (("slynk:to-line")
711 "slynk-pprint-to-line"))
712 (substitute* "contrib/slynk-fancy-inspector.lisp"
713 (("slynk/util") "slynk-util")
714 ((":compile-toplevel :load-toplevel") ""))
715 (rename-file "contrib" "slynk/contrib")
716 ;; Move slynk's contents into the base directory for easier
717 ;; access
718 (for-each (lambda (file)
719 (unless (string-prefix? "." file)
720 (rename-file (string-append "slynk/" file)
721 (string-append "./" (basename file)))))
722 (scandir "slynk"))
723 #t))))
724 (build-system asdf-build-system/sbcl)
725 (arguments
726 `(#:tests? #f ; No test suite
727 #:asd-system-name "slynk"))
728 (synopsis "Common Lisp IDE for Emacs")
729 (description "SLY is a fork of SLIME, an IDE backend for Common Lisp.
730 It also features a completely redesigned REPL based on Emacs's own
731 full-featured comint.el, live code annotations, and a consistent interactive
732 button interface. Everything can be copied to the REPL. One can create
733 multiple inspectors with independent history.")
734 (home-page "https://github.com/joaotavora/sly")
735 (license license:public-domain)
736 (properties `((cl-source-variant . ,(delay cl-slynk)))))))
737
738 (define-public cl-slynk
739 (package
740 (inherit (sbcl-package->cl-source-package sbcl-slynk-boot0))
741 (name "cl-slynk")))
742
743 (define ecl-slynk-boot0
744 (sbcl-package->ecl-package sbcl-slynk-boot0))
745
746 (define sbcl-slynk-arglists
747 (package
748 (inherit sbcl-slynk-boot0)
749 (name "sbcl-slynk-arglists")
750 (inputs `(("slynk" ,sbcl-slynk-boot0)))
751 (arguments
752 (substitute-keyword-arguments (package-arguments sbcl-slynk-boot0)
753 ((#:asd-file _ "") "slynk.asd")
754 ((#:asd-system-name _ #f) "slynk/arglists")))))
755
756 (define ecl-slynk-arglists
757 (sbcl-package->ecl-package sbcl-slynk-arglists))
758
759 (define sbcl-slynk-util
760 (package
761 (inherit sbcl-slynk-boot0)
762 (name "sbcl-slynk-util")
763 (inputs `(("slynk" ,sbcl-slynk-boot0)))
764 (arguments
765 (substitute-keyword-arguments (package-arguments sbcl-slynk-boot0)
766 ((#:asd-file _ "") "slynk.asd")
767 ((#:asd-system-name _ #f) "slynk/util")))))
768
769 (define ecl-slynk-util
770 (sbcl-package->ecl-package sbcl-slynk-util))
771
772 (define sbcl-slynk-fancy-inspector
773 (package
774 (inherit sbcl-slynk-arglists)
775 (name "sbcl-slynk-fancy-inspector")
776 (inputs `(("slynk-util" ,sbcl-slynk-util)
777 ,@(package-inputs sbcl-slynk-arglists)))
778 (arguments
779 (substitute-keyword-arguments (package-arguments sbcl-slynk-arglists)
780 ((#:asd-system-name _ #f) "slynk/fancy-inspector")))))
781
782 (define ecl-slynk-fancy-inspector
783 (sbcl-package->ecl-package sbcl-slynk-fancy-inspector))
784
785 (define sbcl-slynk-package-fu
786 (package
787 (inherit sbcl-slynk-arglists)
788 (name "sbcl-slynk-package-fu")
789 (arguments
790 (substitute-keyword-arguments (package-arguments sbcl-slynk-arglists)
791 ((#:asd-system-name _ #f) "slynk/package-fu")))))
792
793 (define ecl-slynk-package-fu
794 (sbcl-package->ecl-package sbcl-slynk-package-fu))
795
796 (define sbcl-slynk-mrepl
797 (package
798 (inherit sbcl-slynk-fancy-inspector)
799 (name "sbcl-slynk-mrepl")
800 (arguments
801 (substitute-keyword-arguments (package-arguments sbcl-slynk-arglists)
802 ((#:asd-system-name _ #f) "slynk/mrepl")))))
803
804 (define ecl-slynk-mrepl
805 (sbcl-package->ecl-package sbcl-slynk-mrepl))
806
807 (define sbcl-slynk-trace-dialog
808 (package
809 (inherit sbcl-slynk-arglists)
810 (name "sbcl-slynk-trace-dialog")
811 (arguments
812 (substitute-keyword-arguments (package-arguments sbcl-slynk-arglists)
813 ((#:asd-system-name _ #f) "slynk/trace-dialog")))))
814
815 (define ecl-slynk-trace-dialog
816 (sbcl-package->ecl-package sbcl-slynk-trace-dialog))
817
818 (define sbcl-slynk-profiler
819 (package
820 (inherit sbcl-slynk-arglists)
821 (name "sbcl-slynk-profiler")
822 (arguments
823 (substitute-keyword-arguments (package-arguments sbcl-slynk-arglists)
824 ((#:asd-system-name _ #f) "slynk/profiler")))))
825
826 (define ecl-slynk-profiler
827 (sbcl-package->ecl-package sbcl-slynk-profiler))
828
829 (define sbcl-slynk-stickers
830 (package
831 (inherit sbcl-slynk-arglists)
832 (name "sbcl-slynk-stickers")
833 (arguments
834 (substitute-keyword-arguments (package-arguments sbcl-slynk-arglists)
835 ((#:asd-system-name _ #f) "slynk/stickers")))))
836
837 (define ecl-slynk-stickers
838 (sbcl-package->ecl-package sbcl-slynk-stickers))
839
840 (define sbcl-slynk-indentation
841 (package
842 (inherit sbcl-slynk-arglists)
843 (name "sbcl-slynk-indentation")
844 (arguments
845 (substitute-keyword-arguments (package-arguments sbcl-slynk-arglists)
846 ((#:asd-system-name _ #f) "slynk/indentation")))))
847
848 (define ecl-slynk-indentation
849 (sbcl-package->ecl-package sbcl-slynk-indentation))
850
851 (define sbcl-slynk-retro
852 (package
853 (inherit sbcl-slynk-arglists)
854 (name "sbcl-slynk-retro")
855 (arguments
856 (substitute-keyword-arguments (package-arguments sbcl-slynk-arglists)
857 ((#:asd-system-name _ #f) "slynk/retro")))))
858
859 (define ecl-slynk-retro
860 (sbcl-package->ecl-package sbcl-slynk-retro))
861
862 (define slynk-systems
863 '("slynk"
864 "slynk-util"
865 "slynk-arglists"
866 "slynk-fancy-inspector"
867 "slynk-package-fu"
868 "slynk-mrepl"
869 "slynk-profiler"
870 "slynk-trace-dialog"
871 "slynk-stickers"
872 "slynk-indentation"
873 "slynk-retro"))
874
875 (define-public sbcl-slynk
876 (package
877 (inherit sbcl-slynk-boot0)
878 (name "sbcl-slynk")
879 (inputs
880 `(("slynk" ,sbcl-slynk-boot0)
881 ("slynk-util" ,sbcl-slynk-util)
882 ("slynk-arglists" ,sbcl-slynk-arglists)
883 ("slynk-fancy-inspector" ,sbcl-slynk-fancy-inspector)
884 ("slynk-package-fu" ,sbcl-slynk-package-fu)
885 ("slynk-mrepl" ,sbcl-slynk-mrepl)
886 ("slynk-profiler" ,sbcl-slynk-profiler)
887 ("slynk-trace-dialog" ,sbcl-slynk-trace-dialog)
888 ("slynk-stickers" ,sbcl-slynk-stickers)
889 ("slynk-indentation" ,sbcl-slynk-indentation)
890 ("slynk-retro" ,sbcl-slynk-retro)))
891 (native-inputs `(("sbcl" ,sbcl)))
892 (build-system trivial-build-system)
893 (source #f)
894 (outputs '("out" "image"))
895 (arguments
896 `(#:modules ((guix build union)
897 (guix build utils)
898 (guix build lisp-utils))
899 #:builder
900 (begin
901 (use-modules (ice-9 match)
902 (srfi srfi-1)
903 (guix build union)
904 (guix build lisp-utils))
905
906 (union-build
907 (assoc-ref %outputs "out")
908 (filter-map
909 (match-lambda
910 ((name . path)
911 (if (string-prefix? "slynk" name) path #f)))
912 %build-inputs))
913
914 (prepend-to-source-registry
915 (string-append (assoc-ref %outputs "out") "//"))
916
917 (parameterize ((%lisp-type "sbcl")
918 (%lisp (string-append (assoc-ref %build-inputs "sbcl")
919 "/bin/sbcl")))
920 (build-image (string-append
921 (assoc-ref %outputs "image")
922 "/bin/slynk")
923 %outputs
924 #:dependencies ',slynk-systems))
925 #t)))))
926
927 (define-public ecl-slynk
928 (package
929 (inherit sbcl-slynk)
930 (name "ecl-slynk")
931 (inputs
932 (map (match-lambda
933 ((name pkg . _)
934 (list name (sbcl-package->ecl-package pkg))))
935 (package-inputs sbcl-slynk)))
936 (native-inputs '())
937 (outputs '("out"))
938 (arguments
939 '(#:modules ((guix build union))
940 #:builder
941 (begin
942 (use-modules (ice-9 match)
943 (guix build union))
944 (match %build-inputs
945 (((names . paths) ...)
946 (union-build (assoc-ref %outputs "out")
947 paths)
948 #t)))))))
949
950 (define-public sbcl-parse-js
951 (let ((commit "fbadc6029bec7039602abfc06c73bb52970998f6")
952 (revision "1"))
953 (package
954 (name "sbcl-parse-js")
955 (version (string-append "0.0.0-" revision "." (string-take commit 9)))
956 (source
957 (origin
958 (method git-fetch)
959 (uri (git-reference
960 (url "http://marijn.haverbeke.nl/git/parse-js")
961 (commit commit)))
962 (file-name (string-append name "-" commit "-checkout"))
963 (sha256
964 (base32
965 "1wddrnr5kiya5s3gp4cdq6crbfy9fqcz7fr44p81502sj3bvdv39"))))
966 (build-system asdf-build-system/sbcl)
967 (home-page "https://marijnhaverbeke.nl/parse-js/")
968 (synopsis "Parse JavaScript")
969 (description "Parse-js is a Common Lisp package for parsing
970 JavaScript (ECMAScript 3). It has basic support for ECMAScript 5.")
971 (license license:zlib))))
972
973 (define-public cl-parse-js
974 (sbcl-package->cl-source-package sbcl-parse-js))
975
976 (define-public sbcl-parse-number
977 (package
978 (name "sbcl-parse-number")
979 (version "1.7")
980 (source
981 (origin
982 (method git-fetch)
983 (uri (git-reference
984 (url "https://github.com/sharplispers/parse-number/")
985 (commit (string-append "v" version))))
986 (file-name (git-file-name name version))
987 (sha256
988 (base32
989 "0sk06ib1bhqv9y39vwnnw44vmbc4b0kvqm37xxmkxd4dwchq82d7"))))
990 (build-system asdf-build-system/sbcl)
991 (home-page "https://www.cliki.net/PARSE-NUMBER")
992 (synopsis "Parse numbers")
993 (description "@code{parse-number} is a library of functions for parsing
994 strings into one of the standard Common Lisp number types without using the
995 reader. @code{parse-number} accepts an arbitrary string and attempts to parse
996 the string into one of the standard Common Lisp number types, if possible, or
997 else @code{parse-number} signals an error of type @code{invalid-number}.")
998 (license license:bsd-3)))
999
1000 (define-public cl-parse-number
1001 (sbcl-package->cl-source-package sbcl-parse-number))
1002
1003 (define-public sbcl-iterate
1004 (package
1005 (name "sbcl-iterate")
1006 (version "1.5")
1007 (source
1008 (origin
1009 (method url-fetch)
1010 (uri (string-append "https://common-lisp.net/project/iterate/releases/"
1011 "iterate-" version ".tar.gz"))
1012 (sha256
1013 (base32
1014 "1lqsbhrkfl0yif46aymvb7l3nb9wdcmj4jyw485blj32jb4famzn"))))
1015 (build-system asdf-build-system/sbcl)
1016 (native-inputs
1017 `(("rt" ,sbcl-rt)))
1018 (home-page "https://common-lisp.net/project/iterate/")
1019 (synopsis "Iteration construct for Common Lisp")
1020 (description "@code{iterate} is an iteration construct for Common Lisp.
1021 It is similar to the @code{CL:LOOP} macro, with these distinguishing marks:
1022
1023 @itemize
1024 @item it is extensible,
1025 @item it helps editors like Emacs indent iterate forms by having a more
1026 lisp-like syntax, and
1027 @item it isn't part of the ANSI standard for Common Lisp.
1028 @end itemize\n")
1029 (license license:expat)))
1030
1031 (define-public cl-iterate
1032 (sbcl-package->cl-source-package sbcl-iterate))
1033
1034 (define-public ecl-iterate
1035 (sbcl-package->ecl-package sbcl-iterate))
1036
1037 (define-public sbcl-cl-uglify-js
1038 ;; There have been many bug fixes since the 2010 release.
1039 (let ((commit "429c5e1d844e2f96b44db8fccc92d6e8e28afdd5")
1040 (revision "1"))
1041 (package
1042 (name "sbcl-cl-uglify-js")
1043 (version (string-append "0.1-" revision "." (string-take commit 9)))
1044 (source
1045 (origin
1046 (method git-fetch)
1047 (uri (git-reference
1048 (url "https://github.com/mishoo/cl-uglify-js.git")
1049 (commit commit)))
1050 (file-name (git-file-name name version))
1051 (sha256
1052 (base32
1053 "0k39y3c93jgxpr7gwz7w0d8yknn1fdnxrjhd03057lvk5w8js27a"))))
1054 (build-system asdf-build-system/sbcl)
1055 (inputs
1056 `(("sbcl-parse-js" ,sbcl-parse-js)
1057 ("sbcl-cl-ppcre" ,sbcl-cl-ppcre)
1058 ("sbcl-cl-ppcre-unicode" ,sbcl-cl-ppcre-unicode)
1059 ("sbcl-parse-number" ,sbcl-parse-number)
1060 ("sbcl-iterate" ,sbcl-iterate)))
1061 (home-page "https://github.com/mishoo/cl-uglify-js")
1062 (synopsis "JavaScript compressor library for Common Lisp")
1063 (description "This is a Common Lisp version of UglifyJS, a JavaScript
1064 compressor. It works on data produced by @code{parse-js} to generate a
1065 @dfn{minified} version of the code. Currently it can:
1066
1067 @itemize
1068 @item reduce variable names (usually to single letters)
1069 @item join consecutive @code{var} statements
1070 @item resolve simple binary expressions
1071 @item group most consecutive statements using the @code{sequence} operator (comma)
1072 @item remove unnecessary blocks
1073 @item convert @code{IF} expressions in various ways that result in smaller code
1074 @item remove some unreachable code
1075 @end itemize\n")
1076 (license license:zlib))))
1077
1078 (define-public cl-uglify-js
1079 (sbcl-package->cl-source-package sbcl-cl-uglify-js))
1080
1081 (define-public uglify-js
1082 (package
1083 (inherit sbcl-cl-uglify-js)
1084 (name "uglify-js")
1085 (build-system trivial-build-system)
1086 (arguments
1087 `(#:modules ((guix build utils))
1088 #:builder
1089 (let* ((bin (string-append (assoc-ref %outputs "out") "/bin/"))
1090 (script (string-append bin "uglify-js")))
1091 (use-modules (guix build utils))
1092 (mkdir-p bin)
1093 (with-output-to-file script
1094 (lambda _
1095 (format #t "#!~a/bin/sbcl --script
1096 (require :asdf)
1097 (push (truename \"~a/lib/sbcl\") asdf:*central-registry*)"
1098 (assoc-ref %build-inputs "sbcl")
1099 (assoc-ref %build-inputs "sbcl-cl-uglify-js"))
1100 ;; FIXME: cannot use progn here because otherwise it fails to
1101 ;; find cl-uglify-js.
1102 (for-each
1103 write
1104 '(;; Quiet, please!
1105 (let ((*standard-output* (make-broadcast-stream))
1106 (*error-output* (make-broadcast-stream)))
1107 (asdf:load-system :cl-uglify-js))
1108 (let ((file (cadr *posix-argv*)))
1109 (if file
1110 (format t "~a"
1111 (cl-uglify-js:ast-gen-code
1112 (cl-uglify-js:ast-mangle
1113 (cl-uglify-js:ast-squeeze
1114 (with-open-file (in file)
1115 (parse-js:parse-js in))))
1116 :beautify nil))
1117 (progn
1118 (format *error-output*
1119 "Please provide a JavaScript file.~%")
1120 (sb-ext:exit :code 1))))))))
1121 (chmod script #o755)
1122 #t)))
1123 (inputs
1124 `(("sbcl" ,sbcl)
1125 ("sbcl-cl-uglify-js" ,sbcl-cl-uglify-js)))
1126 (synopsis "JavaScript compressor")))
1127
1128 (define-public sbcl-cl-strings
1129 (let ((revision "1")
1130 (commit "c5c5cbafbf3e6181d03c354d66e41a4f063f00ae"))
1131 (package
1132 (name "sbcl-cl-strings")
1133 (version (git-version "0.0.0" revision commit))
1134 (source
1135 (origin
1136 (method git-fetch)
1137 (uri (git-reference
1138 (url "https://github.com/diogoalexandrefranco/cl-strings")
1139 (commit commit)))
1140 (sha256
1141 (base32
1142 "00754mfaqallj480lwd346nkfb6ra8pa8xcxcylf4baqn604zlmv"))
1143 (file-name (string-append "cl-strings-" version "-checkout"))))
1144 (build-system asdf-build-system/sbcl)
1145 (synopsis "Portable, dependency-free set of utilities to manipulate strings in Common Lisp")
1146 (description
1147 "@command{cl-strings} is a small, portable, dependency-free set of
1148 utilities that make it even easier to manipulate text in Common Lisp. It has
1149 100% test coverage and works at least on sbcl, ecl, ccl, abcl and clisp.")
1150 (home-page "https://github.com/diogoalexandrefranco/cl-strings")
1151 (license license:expat))))
1152
1153 (define-public cl-strings
1154 (sbcl-package->cl-source-package sbcl-cl-strings))
1155
1156 (define-public ecl-cl-strings
1157 (sbcl-package->ecl-package sbcl-cl-strings))
1158
1159 (define-public sbcl-trivial-features
1160 (package
1161 (name "sbcl-trivial-features")
1162 (version "0.8")
1163 (source
1164 (origin
1165 (method git-fetch)
1166 (uri (git-reference
1167 (url "https://github.com/trivial-features/trivial-features.git")
1168 (commit (string-append "v" version))))
1169 (file-name (git-file-name "trivial-features" version))
1170 (sha256
1171 (base32 "0ccv7dqyrk55xga78i5vzlic7mdwp28in3g1a8fqhlk6626scsq9"))))
1172 (build-system asdf-build-system/sbcl)
1173 (arguments '(#:tests? #f))
1174 (home-page "https://cliki.net/trivial-features")
1175 (synopsis "Ensures consistency of @code{*FEATURES*} in Common Lisp")
1176 (description "Trivial-features ensures that @code{*FEATURES*} is
1177 consistent across multiple Common Lisp implementations.")
1178 (license license:expat)))
1179
1180 (define-public cl-trivial-features
1181 (sbcl-package->cl-source-package sbcl-trivial-features))
1182
1183 (define-public ecl-trivial-features
1184 (sbcl-package->ecl-package sbcl-trivial-features))
1185
1186 (define-public sbcl-hu.dwim.asdf
1187 (package
1188 (name "sbcl-hu.dwim.asdf")
1189 (version "20190521")
1190 (source
1191 (origin
1192 (method url-fetch)
1193 (uri (string-append "http://beta.quicklisp.org/archive/hu.dwim.asdf/"
1194 "2019-05-21/hu.dwim.asdf-" version "-darcs.tgz"))
1195 (sha256
1196 (base32
1197 "0rsbv71vyszy8w35yjwb5h6zcmknjq223hkzir79y72qdsc6sabn"))))
1198 (build-system asdf-build-system/sbcl)
1199 (home-page "https://hub.darcs.net/hu.dwim/hu.dwim.asdf")
1200 (synopsis "Extensions to ASDF")
1201 (description "Various ASDF extensions such as attached test and
1202 documentation system, explicit development support, etc.")
1203 (license license:public-domain)))
1204
1205 (define-public cl-hu.dwim.asdf
1206 (sbcl-package->cl-source-package sbcl-hu.dwim.asdf))
1207
1208 (define-public ecl-hu.dwim.asdf
1209 (sbcl-package->ecl-package sbcl-hu.dwim.asdf))
1210
1211 (define-public sbcl-hu.dwim.stefil
1212 (let ((commit "ab6d1aa8995878a1b66d745dfd0ba021090bbcf9"))
1213 (package
1214 (name "sbcl-hu.dwim.stefil")
1215 (version (git-version "0.0.0" "1" commit))
1216 (source
1217 (origin
1218 (method git-fetch)
1219 (uri
1220 (git-reference
1221 (url "https://gitlab.common-lisp.net/xcvb/hu.dwim.stefil.git")
1222 (commit commit)))
1223 (sha256
1224 (base32 "1d8yccw65zj3zh46cbi3x6nmn1dwdb76s9d0av035077mvyirqqp"))
1225 (file-name (git-file-name "hu.dwim.stefil" version))))
1226 (build-system asdf-build-system/sbcl)
1227 (native-inputs
1228 `(("asdf:cl-hu.dwim.asdf" ,sbcl-hu.dwim.asdf)))
1229 (inputs
1230 `(("sbcl-alexandria" ,sbcl-alexandria)))
1231 (home-page "https://hub.darcs.net/hu.dwim/hu.dwim.stefil")
1232 (synopsis "Simple test framework")
1233 (description "Stefil is a simple test framework for Common Lisp,
1234 with a focus on interactive development.")
1235 (license license:public-domain))))
1236
1237 (define-public cl-hu.dwim.stefil
1238 (sbcl-package->cl-source-package sbcl-hu.dwim.stefil))
1239
1240 (define-public ecl-hu.dwim.stefil
1241 (sbcl-package->ecl-package sbcl-hu.dwim.stefil))
1242
1243 (define-public sbcl-babel
1244 ;; No release since 2014.
1245 (let ((commit "aeed2d1b76358db48e6b70a64399c05678a6b9ea"))
1246 (package
1247 (name "sbcl-babel")
1248 (version (git-version "0.5.0" "1" commit))
1249 (source
1250 (origin
1251 (method git-fetch)
1252 (uri (git-reference
1253 (url "https://github.com/cl-babel/babel.git")
1254 (commit commit)))
1255 (file-name (git-file-name "babel" version))
1256 (sha256
1257 (base32 "0lkvv4xdpv4cv1y2bqillmabx8sdb2y4l6pbinq6mjh33w2brpvb"))))
1258 (build-system asdf-build-system/sbcl)
1259 (native-inputs
1260 `(("tests:cl-hu.dwim.stefil" ,sbcl-hu.dwim.stefil)))
1261 (inputs
1262 `(("sbcl-alexandria" ,sbcl-alexandria)
1263 ("sbcl-trivial-features" ,sbcl-trivial-features)))
1264 (home-page "https://common-lisp.net/project/babel/")
1265 (synopsis "Charset encoding and decoding library")
1266 (description "Babel is a charset encoding and decoding library, not unlike
1267 GNU libiconv, but completely written in Common Lisp.")
1268 (license license:expat))))
1269
1270 (define-public cl-babel
1271 (sbcl-package->cl-source-package sbcl-babel))
1272
1273 (define-public ecl-babel
1274 (sbcl-package->ecl-package sbcl-babel))
1275
1276 (define-public sbcl-cl-yacc
1277 (package
1278 (name "sbcl-cl-yacc")
1279 (version "0.3")
1280 (source
1281 (origin
1282 (method git-fetch)
1283 (uri (git-reference
1284 (url "https://github.com/jech/cl-yacc")
1285 (commit (string-append "cl-yacc-" version))))
1286 (sha256
1287 (base32
1288 "16946pzf8vvadnyfayvj8rbh4zjzw90h0azz2qk1mxrvhh5wklib"))
1289 (file-name (string-append "cl-yacc-" version "-checkout"))))
1290 (build-system asdf-build-system/sbcl)
1291 (arguments
1292 `(#:asd-file "yacc.asd"
1293 #:asd-system-name "yacc"))
1294 (synopsis "LALR(1) parser generator for Common Lisp, similar in spirit to Yacc")
1295 (description
1296 "CL-Yacc is a LALR(1) parser generator for Common Lisp, similar in spirit
1297 to AT&T Yacc, Berkeley Yacc, GNU Bison, Zebu, lalr.cl or lalr.scm.
1298
1299 CL-Yacc uses the algorithm due to Aho and Ullman, which is the one also used
1300 by AT&T Yacc, Berkeley Yacc and Zebu. It does not use the faster algorithm due
1301 to DeRemer and Pennello, which is used by Bison and lalr.scm (not lalr.cl).")
1302 (home-page "https://www.irif.fr/~jch//software/cl-yacc/")
1303 (license license:expat)))
1304
1305 (define-public cl-yacc
1306 (sbcl-package->cl-source-package sbcl-cl-yacc))
1307
1308 (define-public ecl-cl-yacc
1309 (sbcl-package->ecl-package sbcl-cl-yacc))
1310
1311 (define-public sbcl-jpl-util
1312 (let ((commit "0311ed374e19a49d43318064d729fe3abd9a3b62"))
1313 (package
1314 (name "sbcl-jpl-util")
1315 (version "20151005")
1316 (source
1317 (origin
1318 (method git-fetch)
1319 (uri (git-reference
1320 ;; Quicklisp uses this fork.
1321 (url "https://github.com/hawkir/cl-jpl-util")
1322 (commit commit)))
1323 (file-name
1324 (git-file-name "jpl-util" version))
1325 (sha256
1326 (base32
1327 "0nc0rk9n8grkg3045xsw34whmcmddn2sfrxki4268g7kpgz0d2yz"))))
1328 (build-system asdf-build-system/sbcl)
1329 (synopsis "Collection of Common Lisp utility functions and macros")
1330 (description
1331 "@command{cl-jpl-util} is a collection of Common Lisp utility functions
1332 and macros, primarily for software projects written in CL by the author.")
1333 (home-page "https://www.thoughtcrime.us/software/cl-jpl-util/")
1334 (license license:isc))))
1335
1336 (define-public cl-jpl-util
1337 (sbcl-package->cl-source-package sbcl-jpl-util))
1338
1339 (define-public ecl-jpl-util
1340 (sbcl-package->ecl-package sbcl-jpl-util))
1341
1342 (define-public sbcl-jpl-queues
1343 (package
1344 (name "sbcl-jpl-queues")
1345 (version "0.1")
1346 (source
1347 (origin
1348 (method url-fetch)
1349 (uri (string-append
1350 "http://www.thoughtcrime.us/software/jpl-queues/jpl-queues-"
1351 version
1352 ".tar.gz"))
1353 (sha256
1354 (base32
1355 "1wvvv7j117h9a42qaj1g4fh4mji28xqs7s60rn6d11gk9jl76h96"))))
1356 (build-system asdf-build-system/sbcl)
1357 (inputs
1358 `(("jpl-util" ,sbcl-jpl-util)
1359 ("bordeaux-threads" ,sbcl-bordeaux-threads)))
1360 (arguments
1361 ;; Tests seem to be broken.
1362 `(#:tests? #f))
1363 (synopsis "Common Lisp library implementing a few different kinds of queues")
1364 (description
1365 "A Common Lisp library implementing a few different kinds of queues:
1366
1367 @itemize
1368 @item Bounded and unbounded FIFO queues.
1369 @item Lossy bounded FIFO queues that drop elements when full.
1370 @item Unbounded random-order queues that use less memory than unbounded FIFO queues.
1371 @end itemize
1372
1373 Additionally, a synchronization wrapper is provided to make any queue
1374 conforming to the @command{jpl-queues} API thread-safe for lightweight
1375 multithreading applications. (See Calispel for a more sophisticated CL
1376 multithreaded message-passing library with timeouts and alternation among
1377 several blockable channels.)")
1378 (home-page "https://www.thoughtcrime.us/software/jpl-queues/")
1379 (license license:isc)))
1380
1381 (define-public cl-jpl-queues
1382 (sbcl-package->cl-source-package sbcl-jpl-queues))
1383
1384 (define-public ecl-jpl-queues
1385 (sbcl-package->ecl-package sbcl-jpl-queues))
1386
1387 (define-public sbcl-eos
1388 (let ((commit "b0faca83781ead9a588661e37bd47f90362ccd94"))
1389 (package
1390 (name "sbcl-eos")
1391 (version (git-version "0.0.0" "1" commit))
1392 (source
1393 (origin
1394 (method git-fetch)
1395 (uri (git-reference
1396 (url "https://github.com/adlai/Eos")
1397 (commit commit)))
1398 (sha256
1399 (base32
1400 "1bq8cfg087iyxmxi1mwgx5cfgy3b8ydrf81xljcis8qbgb2vszph"))
1401 (file-name (git-file-name "eos" version))))
1402 (build-system asdf-build-system/sbcl)
1403 (synopsis "Unit Testing for Common Lisp")
1404 (description
1405 "Eos was a unit testing library for Common Lisp.
1406 It began as a fork of FiveAM; however, FiveAM development has continued, while
1407 that of Eos has not. Thus, Eos is now deprecated in favor of FiveAM.")
1408 (home-page "https://github.com/adlai/Eos")
1409 (license license:expat))))
1410
1411 (define-public cl-eos
1412 (sbcl-package->cl-source-package sbcl-eos))
1413
1414 (define-public ecl-eos
1415 (sbcl-package->ecl-package sbcl-eos))
1416
1417 (define-public sbcl-esrap
1418 (let ((commit "133be8b05c2aae48696fe5b739eea2fa573fa48d"))
1419 (package
1420 (name "sbcl-esrap")
1421 (version (git-version "0.0.0" "1" commit))
1422 (source
1423 (origin
1424 (method git-fetch)
1425 (uri (git-reference
1426 (url "https://github.com/nikodemus/esrap")
1427 (commit commit)))
1428 (sha256
1429 (base32
1430 "02d5clihsdryhf7pix8c5di2571fdsffh75d40fkzhws90r5mksl"))
1431 (file-name (git-file-name "esrap" version))))
1432 (build-system asdf-build-system/sbcl)
1433 (native-inputs
1434 `(("eos" ,sbcl-eos))) ;For testing only.
1435 (inputs
1436 `(("alexandria" ,sbcl-alexandria)))
1437 (synopsis "Common Lisp packrat parser")
1438 (description
1439 "A packrat parser for Common Lisp.
1440 In addition to regular Packrat / Parsing Grammar / TDPL features ESRAP supports:
1441
1442 @itemize
1443 @item dynamic redefinition of nonterminals
1444 @item inline grammars
1445 @item semantic predicates
1446 @item introspective facilities (describing grammars, tracing, setting breaks)
1447 @end itemize\n")
1448 (home-page "https://nikodemus.github.io/esrap/")
1449 (license license:expat))))
1450
1451 (define-public cl-esrap
1452 (sbcl-package->cl-source-package sbcl-esrap))
1453
1454 (define-public ecl-esrap
1455 (sbcl-package->ecl-package sbcl-esrap))
1456
1457 (define-public sbcl-split-sequence
1458 (package
1459 (name "sbcl-split-sequence")
1460 (version "2.0.0")
1461 (source
1462 (origin
1463 (method git-fetch)
1464 (uri (git-reference
1465 (url "https://github.com/sharplispers/split-sequence")
1466 (commit (string-append "v" version))))
1467 (sha256
1468 (base32
1469 "0jcpnx21hkfwqj5fvp7kc6pn1qcz9hk7g2s5x8h0349x1j2irln0"))
1470 (file-name (git-file-name "split-sequence" version))))
1471 (build-system asdf-build-system/sbcl)
1472 (native-inputs
1473 `(("fiveam" ,sbcl-fiveam)))
1474 (synopsis "Member of the Common Lisp Utilities family of programs")
1475 (description
1476 "Splits sequence into a list of subsequences delimited by objects
1477 satisfying the test.")
1478 (home-page "https://cliki.net/split-sequence")
1479 (license license:expat)))
1480
1481 (define-public cl-split-sequence
1482 (sbcl-package->cl-source-package sbcl-split-sequence))
1483
1484 (define-public ecl-split-sequence
1485 (sbcl-package->ecl-package sbcl-split-sequence))
1486
1487 (define-public sbcl-html-encode
1488 (package
1489 (name "sbcl-html-encode")
1490 (version "1.2")
1491 (source
1492 (origin
1493 (method url-fetch)
1494 (uri (string-append
1495 "http://beta.quicklisp.org/archive/html-encode/2010-10-06/html-encode-"
1496 version ".tgz"))
1497 (sha256
1498 (base32
1499 "06mf8wn95yf5swhmzk4vp0xr4ylfl33dgfknkabbkd8n6jns8gcf"))
1500 (file-name (string-append "colorize" version "-checkout"))))
1501 (build-system asdf-build-system/sbcl)
1502 (synopsis "Common Lisp library for encoding text in various web-savvy encodings")
1503 (description
1504 "A library for encoding text in various web-savvy encodings.")
1505 (home-page "http://quickdocs.org/html-encode/")
1506 (license license:expat)))
1507
1508 (define-public cl-html-encode
1509 (sbcl-package->cl-source-package sbcl-html-encode))
1510
1511 (define-public ecl-html-encode
1512 (sbcl-package->ecl-package sbcl-html-encode))
1513
1514 (define-public sbcl-colorize
1515 (let ((commit "ea676b584e0899cec82f21a9e6871172fe3c0eb5"))
1516 (package
1517 (name "sbcl-colorize")
1518 (version (git-version "0.0.0" "1" commit))
1519 (source
1520 (origin
1521 (method git-fetch)
1522 (uri (git-reference
1523 (url "https://github.com/kingcons/colorize")
1524 (commit commit)))
1525 (sha256
1526 (base32
1527 "1pdg4kiaczmr3ivffhirp7m3lbr1q27rn7dhaay0vwghmi31zcw9"))
1528 (file-name (git-file-name "colorize" version))))
1529 (build-system asdf-build-system/sbcl)
1530 (inputs
1531 `(("alexandria" ,sbcl-alexandria)
1532 ("split-sequence" ,sbcl-split-sequence)
1533 ("html-encode" ,sbcl-html-encode)))
1534 (synopsis "Common Lisp for syntax highlighting")
1535 (description
1536 "@command{colorize} is a Lisp library for syntax highlighting
1537 supporting the following languages: Common Lisp, Emacs Lisp, Scheme, Clojure,
1538 C, C++, Java, Python, Erlang, Haskell, Objective-C, Diff, Webkit.")
1539 (home-page "https://github.com/kingcons/colorize")
1540 ;; TODO: Missing license?
1541 (license license:expat))))
1542
1543 (define-public cl-colorize
1544 (sbcl-package->cl-source-package sbcl-colorize))
1545
1546 (define-public ecl-colorize
1547 (sbcl-package->ecl-package sbcl-colorize))
1548
1549 (define-public sbcl-3bmd
1550 (let ((commit "192ea13435b605a96ef607df51317056914cabbd"))
1551 (package
1552 (name "sbcl-3bmd")
1553 (version (git-version "0.0.0" "1" commit))
1554 (source
1555 (origin
1556 (method git-fetch)
1557 (uri (git-reference
1558 (url "https://github.com/3b/3bmd")
1559 (commit commit)))
1560 (sha256
1561 (base32
1562 "1rgv3gi7wf963ikmmpk132wgn0icddf226gq3bmcnk1fr3v9gf2f"))
1563 (file-name (git-file-name "3bmd" version))))
1564 (build-system asdf-build-system/sbcl)
1565 (arguments
1566 ;; FIXME: We need to specify the name because the build-system thinks
1567 ;; "3" is a version marker.
1568 `(#:asd-system-name "3bmd"))
1569 (inputs
1570 `(("esrap" ,sbcl-esrap)
1571 ("split-sequence" ,sbcl-split-sequence)))
1572 (synopsis "Markdown processor in Command Lisp using esrap parser")
1573 (description
1574 "Common Lisp Markdown -> HTML converter, using @command{esrap} for
1575 parsing, and grammar based on @command{peg-markdown}.")
1576 (home-page "https://github.com/3b/3bmd")
1577 (license license:expat))))
1578
1579 (define-public cl-3bmd
1580 (sbcl-package->cl-source-package sbcl-3bmd))
1581
1582 (define-public ecl-3bmd
1583 (sbcl-package->ecl-package sbcl-3bmd))
1584
1585 (define-public sbcl-3bmd-ext-code-blocks
1586 (let ((commit "192ea13435b605a96ef607df51317056914cabbd"))
1587 (package
1588 (inherit sbcl-3bmd)
1589 (name "sbcl-3bmd-ext-code-blocks")
1590 (arguments
1591 `(#:asd-system-name "3bmd-ext-code-blocks"
1592 #:asd-file "3bmd-ext-code-blocks.asd"))
1593 (inputs
1594 `(("3bmd" ,sbcl-3bmd)
1595 ("colorize" ,sbcl-colorize)))
1596 (synopsis "3bmd extension which adds support for GitHub-style fenced
1597 code blocks")
1598 (description
1599 "3bmd extension which adds support for GitHub-style fenced code blocks,
1600 with @command{colorize} support."))))
1601
1602 (define-public cl-3bmd-ext-code-blocks
1603 (sbcl-package->cl-source-package sbcl-3bmd-ext-code-blocks))
1604
1605 (define-public ecl-3bmd-ext-code-blocks
1606 (sbcl-package->ecl-package sbcl-3bmd-ext-code-blocks))
1607
1608 (define-public sbcl-cl-fad
1609 (package
1610 (name "sbcl-cl-fad")
1611 (version "0.7.6")
1612 (source
1613 (origin
1614 (method git-fetch)
1615 (uri (git-reference
1616 (url "https://github.com/edicl/cl-fad/")
1617 (commit (string-append "v" version))))
1618 (sha256
1619 (base32
1620 "1gc8i82v6gks7g0lnm54r4prk2mklidv2flm5fvbr0a7rsys0vpa"))
1621 (file-name (string-append "cl-fad" version "-checkout"))))
1622 (build-system asdf-build-system/sbcl)
1623 (inputs
1624 `(("bordeaux-threads" ,sbcl-bordeaux-threads)))
1625 (synopsis "Portable pathname library for Common Lisp")
1626 (description
1627 "CL-FAD (for \"Files and Directories\") is a thin layer atop Common
1628 Lisp's standard pathname functions. It is intended to provide some
1629 unification between current CL implementations on Windows, OS X, Linux, and
1630 Unix. Most of the code was written by Peter Seibel for his book Practical
1631 Common Lisp.")
1632 (home-page "https://edicl.github.io/cl-fad/")
1633 (license license:bsd-2)))
1634
1635 (define-public cl-fad
1636 (sbcl-package->cl-source-package sbcl-cl-fad))
1637
1638 (define-public ecl-cl-fad
1639 (sbcl-package->ecl-package sbcl-cl-fad))
1640
1641 (define-public sbcl-rt
1642 (let ((commit "a6a7503a0b47953bc7579c90f02a6dba1f6e4c5a")
1643 (revision "1"))
1644 (package
1645 (name "sbcl-rt")
1646 (version (git-version "1990.12.19" revision commit))
1647 (source
1648 (origin
1649 (method git-fetch)
1650 (uri (git-reference
1651 (url "http://git.kpe.io/rt.git")
1652 (commit commit)))
1653 (file-name (git-file-name name version))
1654 (sha256
1655 (base32 "13si2rrxaagbr0bkvg6sqicxxpyshabx6ad6byc9n2ik5ysna69b"))))
1656 (build-system asdf-build-system/sbcl)
1657 (synopsis "MIT Regression Tester")
1658 (description
1659 "RT provides a framework for writing regression test suites.")
1660 (home-page "https://www.cliki.net/rt")
1661 (license license:expat))))
1662
1663 (define-public cl-rt
1664 (sbcl-package->cl-source-package sbcl-rt))
1665
1666 (define-public ecl-rt
1667 (sbcl-package->ecl-package sbcl-rt))
1668
1669 (define-public sbcl-nibbles
1670 (package
1671 (name "sbcl-nibbles")
1672 (version "0.14")
1673 (source
1674 (origin
1675 (method git-fetch)
1676 (uri (git-reference
1677 (url "https://github.com/sharplispers/nibbles/")
1678 (commit (string-append "v" version))))
1679 (sha256
1680 (base32
1681 "1v7qfgpvdr6nz7v63dj69d26dis0kff3rd8xamr1llfdvza2pm8f"))
1682 (file-name (git-file-name "nibbles" version))))
1683 (build-system asdf-build-system/sbcl)
1684 (native-inputs
1685 ;; Tests only.
1686 `(("rt" ,sbcl-rt)))
1687 (synopsis "Common Lisp library for accessing octet-addressed blocks of data")
1688 (description
1689 "When dealing with network protocols and file formats, it's common to
1690 have to read or write 16-, 32-, or 64-bit datatypes in signed or unsigned
1691 flavors. Common Lisp sort of supports this by specifying :element-type for
1692 streams, but that facility is underspecified and there's nothing similar for
1693 read/write from octet vectors. What most people wind up doing is rolling their
1694 own small facility for their particular needs and calling it a day.
1695
1696 This library attempts to be comprehensive and centralize such
1697 facilities. Functions to read 16-, 32-, and 64-bit quantities from octet
1698 vectors in signed or unsigned flavors are provided; these functions are also
1699 SETFable. Since it's sometimes desirable to read/write directly from streams,
1700 functions for doing so are also provided. On some implementations,
1701 reading/writing IEEE singles/doubles (i.e. single-float and double-float) will
1702 also be supported.")
1703 (home-page "https://github.com/sharplispers/nibbles")
1704 (license license:bsd-3)))
1705
1706 (define-public cl-nibbles
1707 (sbcl-package->cl-source-package sbcl-nibbles))
1708
1709 (define-public ecl-nibbles
1710 (sbcl-package->ecl-package sbcl-nibbles))
1711
1712 (define-public sbcl-ironclad
1713 (package
1714 (name "sbcl-ironclad")
1715 (version "0.49")
1716 (source
1717 (origin
1718 (method git-fetch)
1719 (uri (git-reference
1720 (url "https://github.com/sharplispers/ironclad/")
1721 (commit (string-append "v" version))))
1722 (sha256
1723 (base32 "0kbzqg2aasrhjwy3nrzy2ddy809n1j045w4qkyc3r2syqd203d4q"))
1724 (file-name (git-file-name name version))))
1725 (build-system asdf-build-system/sbcl)
1726 (native-inputs
1727 ;; Tests only.
1728 `(("rt" ,sbcl-rt)))
1729 (inputs
1730 `(("bordeaux-threads" ,sbcl-bordeaux-threads)
1731 ("flexi-streams" ,sbcl-flexi-streams)
1732 ("trivial-garbage" ,sbcl-trivial-garbage)))
1733 (synopsis "Cryptographic toolkit written in Common Lisp")
1734 (description
1735 "Ironclad is a cryptography library written entirely in Common Lisp.
1736 It includes support for several popular ciphers, digests, MACs and public key
1737 cryptography algorithms. For several implementations that support Gray
1738 streams, support is included for convenient stream wrappers.")
1739 (home-page "https://github.com/sharplispers/ironclad")
1740 (license license:bsd-3)))
1741
1742 (define-public cl-ironclad
1743 (sbcl-package->cl-source-package sbcl-ironclad))
1744
1745 (define-public ecl-ironclad
1746 (sbcl-package->ecl-package sbcl-ironclad))
1747
1748 (define-public sbcl-named-readtables
1749 (let ((commit "4dfb89fa1af6b305b6492b8af042f5190c11e9fc")
1750 (revision "1"))
1751 (package
1752 (name "sbcl-named-readtables")
1753 (version (string-append "0.9-" revision "." (string-take commit 7)))
1754 (source
1755 (origin
1756 (method git-fetch)
1757 (uri (git-reference
1758 (url "https://github.com/melisgl/named-readtables.git")
1759 (commit commit)))
1760 (sha256
1761 (base32 "083kgh5462iqbb4px6kq8s7sggvpvkm36hx4qi9rnaw53b6ilqkk"))
1762 (file-name (git-file-name "named-readtables" version))))
1763 (build-system asdf-build-system/sbcl)
1764 (arguments
1765 ;; Tests seem to be broken.
1766 `(#:tests? #f))
1767 (home-page "https://github.com/melisgl/named-readtables/")
1768 (synopsis "Library that creates a namespace for named readtables")
1769 (description "Named readtables is a library that creates a namespace for
1770 named readtables, which is akin to package namespacing in Common Lisp.")
1771 (license license:bsd-3))))
1772
1773 (define-public cl-named-readtables
1774 (sbcl-package->cl-source-package sbcl-named-readtables))
1775
1776 (define-public ecl-named-readtables
1777 (sbcl-package->ecl-package sbcl-named-readtables))
1778
1779 (define-public sbcl-pythonic-string-reader
1780 (let ((commit "47a70ba1e32362e03dad6ef8e6f36180b560f86a"))
1781 (package
1782 (name "sbcl-pythonic-string-reader")
1783 (version (git-version "0.0.0" "1" commit))
1784 (source
1785 (origin
1786 (method git-fetch)
1787 (uri (git-reference
1788 (url "https://github.com/smithzvk/pythonic-string-reader/")
1789 (commit commit)))
1790 (sha256
1791 (base32 "1b5iryqw8xsh36swckmz8rrngmc39k92si33fgy5pml3n9l5rq3j"))
1792 (file-name (git-file-name "pythonic-string-reader" version))))
1793 (build-system asdf-build-system/sbcl)
1794 (inputs
1795 `(("named-readtables" ,sbcl-named-readtables)))
1796 (home-page "https://github.com/smithzvk/pythonic-string-reader")
1797 (synopsis "Read table modification inspired by Python's three quote strings")
1798 (description "This piece of code sets up some reader macros that make it
1799 simpler to input string literals which contain backslashes and double quotes
1800 This is very useful for writing complicated docstrings and, as it turns out,
1801 writing code that contains string literals that contain code themselves.")
1802 (license license:bsd-3))))
1803
1804 (define-public cl-pythonic-string-reader
1805 (sbcl-package->cl-source-package sbcl-pythonic-string-reader))
1806
1807 (define-public ecl-pythonic-string-reader
1808 (sbcl-package->ecl-package sbcl-pythonic-string-reader))
1809
1810 ;; SLIME does not have a ASDF system definition to build all of Swank. As a
1811 ;; result, the asdf-build-system/sbcl will produce an almost empty package.
1812 ;; Some work was done to fix this at
1813 ;; https://github.com/sionescu/slime/tree/swank-asdf but it was never merged
1814 ;; and is now lagging behind. Building SBCL fasls might not be worth the
1815 ;; hassle, so let's just ship the source then.
1816 (define-public cl-slime-swank
1817 (package
1818 (name "cl-slime-swank")
1819 (version "2.24")
1820 (source
1821 (origin
1822 (file-name (string-append name "-" version ".tar.gz"))
1823 (method git-fetch)
1824 (uri (git-reference
1825 (url "https://github.com/slime/slime/")
1826 (commit (string-append "v" version))))
1827 (sha256
1828 (base32
1829 "0js24x42m7b5iymb4rxz501dff19vav5pywnzv50b673rbkaaqvh"))))
1830 (build-system asdf-build-system/source)
1831 (home-page "https://github.com/slime/slime")
1832 (synopsis "Common Lisp Swank server")
1833 (description
1834 "This is only useful if you want to start a Swank server in a Lisp
1835 processes that doesn't run under Emacs. Lisp processes created by
1836 @command{M-x slime} automatically start the server.")
1837 (license (list license:gpl2+ license:public-domain))))
1838
1839 (define-public sbcl-slime-swank
1840 (deprecated-package "sbcl-slime-swank" cl-slime-swank))
1841
1842 (define-public sbcl-mgl-pax
1843 (let ((commit "818448418d6b9de74620f606f5b23033c6082769"))
1844 (package
1845 (name "sbcl-mgl-pax")
1846 (version (git-version "0.0.0" "1" commit))
1847 (source
1848 (origin
1849 (method git-fetch)
1850 (uri (git-reference
1851 (url "https://github.com/melisgl/mgl-pax")
1852 (commit commit)))
1853 (sha256
1854 (base32
1855 "1p97zfkh130bdxqqxwaw2j9psv58751wakx7czbfpq410lg7dd7i"))
1856 (file-name (git-file-name "mgl-pax" version))))
1857 (build-system asdf-build-system/sbcl)
1858 (inputs
1859 `(("3bmd" ,sbcl-3bmd)
1860 ("3bmd-ext-code-blocks" ,sbcl-3bmd-ext-code-blocks)
1861 ("babel" ,sbcl-babel)
1862 ("cl-fad" ,sbcl-cl-fad)
1863 ("ironclad" ,sbcl-ironclad)
1864 ("named-readtables" ,sbcl-named-readtables)
1865 ("pythonic-string-reader" ,sbcl-pythonic-string-reader)))
1866 (propagated-inputs
1867 ;; Packages having mgl-pax as input complain that it can't find
1868 ;; swank if we put it in inputs, so let's put it in propageted-inputs.
1869 `(("swank" ,cl-slime-swank)))
1870 (synopsis "Exploratory programming environment and documentation generator")
1871 (description
1872 "PAX provides an extremely poor man's Explorable Programming
1873 environment. Narrative primarily lives in so called sections that mix markdown
1874 docstrings with references to functions, variables, etc, all of which should
1875 probably have their own docstrings.
1876
1877 The primary focus is on making code easily explorable by using SLIME's
1878 @command{M-.} (@command{slime-edit-definition}). See how to enable some
1879 fanciness in Emacs Integration. Generating documentation from sections and all
1880 the referenced items in Markdown or HTML format is also implemented.
1881
1882 With the simplistic tools provided, one may accomplish similar effects as with
1883 Literate Programming, but documentation is generated from code, not vice versa
1884 and there is no support for chunking yet. Code is first, code must look
1885 pretty, documentation is code.")
1886 (home-page "http://quotenil.com/")
1887 (license license:expat))))
1888
1889 (define-public cl-mgl-pax
1890 (sbcl-package->cl-source-package sbcl-mgl-pax))
1891
1892 (define-public ecl-mgl-pax
1893 (sbcl-package->ecl-package sbcl-mgl-pax))
1894
1895 (define-public sbcl-lisp-unit
1896 (let ((commit "89653a232626b67400bf9a941f9b367da38d3815"))
1897 (package
1898 (name "sbcl-lisp-unit")
1899 (version (git-version "0.0.0" "1" commit))
1900 (source
1901 (origin
1902 (method git-fetch)
1903 (uri (git-reference
1904 (url "https://github.com/OdonataResearchLLC/lisp-unit")
1905 (commit commit)))
1906 (sha256
1907 (base32
1908 "0p6gdmgr7p383nvd66c9y9fp2bjk4jx1lpa5p09g43hr9y9pp9ry"))
1909 (file-name (git-file-name "lisp-unit" version))))
1910 (build-system asdf-build-system/sbcl)
1911 (synopsis "Common Lisp Test framework inspired by JUnit to be simple of use")
1912 (description
1913 "@command{lisp-unit} is a Common Lisp library that supports unit
1914 testing. It is an extension of the library written by Chris Riesbeck.")
1915 (home-page "https://github.com/OdonataResearchLLC/lisp-unit")
1916 (license license:expat))))
1917
1918 (define-public cl-lisp-unit
1919 (sbcl-package->cl-source-package sbcl-lisp-unit))
1920
1921 (define-public ecl-lisp-unit
1922 (sbcl-package->ecl-package sbcl-lisp-unit))
1923
1924 (define-public sbcl-anaphora
1925 (package
1926 (name "sbcl-anaphora")
1927 (version "0.9.6")
1928 (source
1929 (origin
1930 (method git-fetch)
1931 (uri (git-reference
1932 (url "https://github.com/tokenrove/anaphora")
1933 (commit version)))
1934 (sha256
1935 (base32
1936 "19wfrk3asimznkli0x2rfy637hwpdgqyvwj3vhq9x7vjvyf5vv6x"))
1937 (file-name (git-file-name "anaphora" version))))
1938 (build-system asdf-build-system/sbcl)
1939 (native-inputs
1940 `(("rt" ,sbcl-rt)))
1941 (synopsis "The anaphoric macro collection from Hell")
1942 (description
1943 "Anaphora is the anaphoric macro collection from Hell: it includes many
1944 new fiends in addition to old friends like @command{aif} and
1945 @command{awhen}.")
1946 (home-page "https://github.com/tokenrove/anaphora")
1947 (license license:public-domain)))
1948
1949 (define-public cl-anaphora
1950 (sbcl-package->cl-source-package sbcl-anaphora))
1951
1952 (define-public ecl-anaphora
1953 (sbcl-package->ecl-package sbcl-anaphora))
1954
1955 (define-public sbcl-lift
1956 (let ((commit "7d49a66c62759535624037826891152223d4206c"))
1957 (package
1958 (name "sbcl-lift")
1959 (version (git-version "1.7.1" "1" commit))
1960 (source
1961 (origin
1962 (method git-fetch)
1963 (uri (git-reference
1964 (url "https://github.com/gwkkwg/lift")
1965 (commit commit)))
1966 (sha256
1967 (base32
1968 "127v5avpz1i4m0lkaxqrq8hrl69rdazqaxf6s8awf0nd7wj2g4dp"))
1969 (file-name (git-file-name "lift" version))
1970 (modules '((guix build utils)))
1971 (snippet
1972 ;; Don't keep the bundled website
1973 `(begin
1974 (delete-file-recursively "website")
1975 #t))))
1976 (build-system asdf-build-system/sbcl)
1977 (arguments
1978 ;; The tests require a debugger, but we run with the debugger disabled.
1979 '(#:tests? #f))
1980 (synopsis "LIsp Framework for Testing")
1981 (description
1982 "The LIsp Framework for Testing (LIFT) is a unit and system test tool for LISP.
1983 Though inspired by SUnit and JUnit, it's built with Lisp in mind. In LIFT,
1984 testcases are organized into hierarchical testsuites each of which can have
1985 its own fixture. When run, a testcase can succeed, fail, or error. LIFT
1986 supports randomized testing, benchmarking, profiling, and reporting.")
1987 (home-page "https://github.com/gwkkwg/lift")
1988 (license license:expat))))
1989
1990 (define-public cl-lift
1991 (sbcl-package->cl-source-package sbcl-lift))
1992
1993 (define-public ecl-lift
1994 (sbcl-package->ecl-package sbcl-lift))
1995
1996 (define-public sbcl-let-plus
1997 (let ((commit "5f14af61d501ecead02ec6b5a5c810efc0c9fdbb"))
1998 (package
1999 (name "sbcl-let-plus")
2000 (version (git-version "0.0.0" "1" commit))
2001 (source
2002 (origin
2003 (method git-fetch)
2004 (uri (git-reference
2005 (url "https://github.com/sharplispers/let-plus")
2006 (commit commit)))
2007 (sha256
2008 (base32
2009 "0i050ca2iys9f5mb7dgqgqdxfnc3b0rnjdwv95sqd490vkiwrsaj"))
2010 (file-name (git-file-name "let-plus" version))))
2011 (build-system asdf-build-system/sbcl)
2012 (inputs
2013 `(("alexandria" ,sbcl-alexandria)
2014 ("anaphora" ,sbcl-anaphora)))
2015 (native-inputs
2016 `(("lift" ,sbcl-lift)))
2017 (synopsis "Destructuring extension of let*")
2018 (description
2019 "This library implements the let+ macro, which is a dectructuring
2020 extension of let*. It features:
2021
2022 @itemize
2023 @item Clean, consistent syntax and small implementation (less than 300 LOC,
2024 not counting tests)
2025 @item Placeholder macros allow editor hints and syntax highlighting
2026 @item @command{&ign} for ignored values (in forms where that makes sense)
2027 @item Very easy to extend
2028 @end itemize\n")
2029 (home-page "https://github.com/sharplispers/let-plus")
2030 (license license:boost1.0))))
2031
2032 (define-public cl-let-plus
2033 (sbcl-package->cl-source-package sbcl-let-plus))
2034
2035 (define-public ecl-let-plus
2036 (sbcl-package->ecl-package sbcl-let-plus))
2037
2038 (define-public sbcl-cl-colors
2039 (let ((commit "827410584553f5c717eec6182343b7605f707f75"))
2040 (package
2041 (name "sbcl-cl-colors")
2042 (version (git-version "0.0.0" "1" commit))
2043 (source
2044 (origin
2045 (method git-fetch)
2046 (uri (git-reference
2047 (url "https://github.com/tpapp/cl-colors")
2048 (commit commit)))
2049 (sha256
2050 (base32
2051 "0l446lday4hybsm9bq3jli97fvv8jb1d33abg79vbylpwjmf3y9a"))
2052 (file-name (git-file-name "cl-colors" version))))
2053 (build-system asdf-build-system/sbcl)
2054 (inputs
2055 `(("alexandria" ,sbcl-alexandria)
2056 ("let-plus" ,sbcl-let-plus)))
2057 (synopsis "Simple color library for Common Lisp")
2058 (description
2059 "This is a very simple color library for Common Lisp, providing
2060
2061 @itemize
2062 @item Types for representing colors in HSV and RGB spaces.
2063 @item Simple conversion functions between the above types (and also
2064 hexadecimal representation for RGB).
2065 @item Some predefined colors (currently X11 color names – of course the
2066 library does not depend on X11).Because color in your terminal is nice.
2067 @end itemize
2068
2069 This library is no longer supported by its author.")
2070 (home-page "https://github.com/tpapp/cl-colors")
2071 (license license:boost1.0))))
2072
2073 (define-public cl-colors
2074 (sbcl-package->cl-source-package sbcl-cl-colors))
2075
2076 (define-public ecl-cl-colors
2077 (sbcl-package->ecl-package sbcl-cl-colors))
2078
2079 (define-public sbcl-cl-ansi-text
2080 (let ((commit "53badf7878f27f22f2d4a2a43e6df458e43acbe9"))
2081 (package
2082 (name "sbcl-cl-ansi-text")
2083 (version (git-version "1.0.0" "1" commit))
2084 (source
2085 (origin
2086 (method git-fetch)
2087 (uri (git-reference
2088 (url "https://github.com/pnathan/cl-ansi-text")
2089 (commit commit)))
2090 (sha256
2091 (base32
2092 "11i27n0dbz5lmygiw65zzr8lx0rac6b6yysqranphn31wls6ja3v"))
2093 (file-name (git-file-name "cl-ansi-text" version))))
2094 (build-system asdf-build-system/sbcl)
2095 (inputs
2096 `(("alexandria" ,sbcl-alexandria)
2097 ("cl-colors" ,sbcl-cl-colors)))
2098 (native-inputs
2099 `(("fiveam" ,sbcl-fiveam)))
2100 (synopsis "ANSI terminal color implementation for Common Lisp")
2101 (description
2102 "@command{cl-ansi-text} provides utilities which enable printing to an
2103 ANSI terminal with colored text. It provides the macro @command{with-color}
2104 which causes everything printed in the body to be displayed with the provided
2105 color. It further provides functions which will print the argument with the
2106 named color.")
2107 (home-page "https://github.com/pnathan/cl-ansi-text")
2108 (license license:llgpl))))
2109
2110 (define-public cl-ansi-text
2111 (sbcl-package->cl-source-package sbcl-cl-ansi-text))
2112
2113 (define-public ecl-cl-ansi-text
2114 (sbcl-package->ecl-package sbcl-cl-ansi-text))
2115
2116 (define-public sbcl-prove-asdf
2117 (let ((commit "4f9122bd393e63c5c70c1fba23070622317cfaa0"))
2118 (package
2119 (name "sbcl-prove-asdf")
2120 (version (git-version "1.0.0" "1" commit))
2121 (source
2122 (origin
2123 (method git-fetch)
2124 (uri (git-reference
2125 (url "https://github.com/fukamachi/prove")
2126 (commit commit)))
2127 (sha256
2128 (base32
2129 "07sbfw459z8bbjvx1qlmfa8qk2mvbjnnzi2mi0x72blaj8bkl4vc"))
2130 (file-name (git-file-name "prove" version))))
2131 (build-system asdf-build-system/sbcl)
2132 (arguments
2133 `(#:asd-file "prove-asdf.asd"))
2134 (synopsis "Test requirement for the Common Lisp 'prove' library")
2135 (description
2136 "Test requirement for the Common Lisp @command{prove} library.")
2137 (home-page "https://github.com/fukamachi/prove")
2138 (license license:expat))))
2139
2140 (define-public cl-prove-asdf
2141 (sbcl-package->cl-source-package sbcl-prove-asdf))
2142
2143 (define-public ecl-prove-asdf
2144 (sbcl-package->ecl-package sbcl-prove-asdf))
2145
2146 (define-public sbcl-prove
2147 (package
2148 (inherit sbcl-prove-asdf)
2149 (name "sbcl-prove")
2150 (inputs
2151 `(("alexandria" ,sbcl-alexandria)
2152 ("cl-ppcre" ,sbcl-cl-ppcre)
2153 ("cl-ansi-text" ,sbcl-cl-ansi-text)))
2154 (native-inputs
2155 `(("prove-asdf" ,sbcl-prove-asdf)))
2156 (arguments
2157 `(#:asd-file "prove.asd"))
2158 (synopsis "Yet another unit testing framework for Common Lisp")
2159 (description
2160 "This project was originally called @command{cl-test-more}.
2161 @command{prove} is yet another unit testing framework for Common Lisp. The
2162 advantages of @command{prove} are:
2163
2164 @itemize
2165 @item Various simple functions for testing and informative error messages
2166 @item ASDF integration
2167 @item Extensible test reporters
2168 @item Colorizes the report if it's available (note for SLIME)
2169 @item Reports test durations
2170 @end itemize\n")))
2171
2172 (define-public cl-prove
2173 (sbcl-package->cl-source-package sbcl-prove))
2174
2175 (define-public ecl-prove
2176 (sbcl-package->ecl-package sbcl-prove))
2177
2178 (define-public sbcl-proc-parse
2179 (let ((commit "ac3636834d561bdc2686c956dbd82494537285fd"))
2180 (package
2181 (name "sbcl-proc-parse")
2182 (version (git-version "0.0.0" "1" commit))
2183 (source
2184 (origin
2185 (method git-fetch)
2186 (uri (git-reference
2187 (url "https://github.com/fukamachi/proc-parse")
2188 (commit commit)))
2189 (sha256
2190 (base32
2191 "06rnl0h4cx6xv2wj3jczmmcxqn2703inmmvg1s4npbghmijsybfh"))
2192 (file-name (git-file-name "proc-parse" version))))
2193 (build-system asdf-build-system/sbcl)
2194 (inputs
2195 `(("alexandria" ,sbcl-alexandria)
2196 ("babel" ,sbcl-babel)))
2197 (native-inputs
2198 `(("prove" ,sbcl-prove)
2199 ("prove-asdf" ,sbcl-prove-asdf)))
2200 (arguments
2201 ;; TODO: Tests don't find "proc-parse-test", why?
2202 `(#:tests? #f))
2203 (synopsis "Procedural vector parser")
2204 (description
2205 "This is a string/octets parser library for Common Lisp with speed and
2206 readability in mind. Unlike other libraries, the code is not a
2207 pattern-matching-like, but a char-by-char procedural parser.")
2208 (home-page "https://github.com/fukamachi/proc-parse")
2209 (license license:bsd-2))))
2210
2211 (define-public cl-proc-parse
2212 (sbcl-package->cl-source-package sbcl-proc-parse))
2213
2214 (define-public ecl-proc-parse
2215 (sbcl-package->ecl-package sbcl-proc-parse))
2216
2217 (define-public sbcl-parse-float
2218 (let ((commit "2aae569f2a4b2eb3bfb5401a959425dcf151b09c"))
2219 (package
2220 (name "sbcl-parse-float")
2221 (version (git-version "0.0.0" "1" commit))
2222 (source
2223 (origin
2224 (method git-fetch)
2225 (uri (git-reference
2226 (url "https://github.com/soemraws/parse-float")
2227 (commit commit)))
2228 (sha256
2229 (base32
2230 "08xw8cchhmqcc0byng69m3f5a2izc9y2290jzz2k0qrbibp1fdk7"))
2231 (file-name (git-file-name "proc-parse" version))))
2232 (build-system asdf-build-system/sbcl)
2233 (inputs
2234 `(("alexandria" ,sbcl-alexandria)
2235 ("babel" ,sbcl-babel)))
2236 (native-inputs
2237 `(("prove" ,sbcl-prove)
2238 ("prove-asdf" ,sbcl-prove-asdf)))
2239 (arguments
2240 ;; TODO: Tests don't find "proc-parse-test", why?
2241 `(#:tests? #f))
2242 (synopsis "Parse a floating point value from a string in Common Lisp")
2243 (description
2244 "This package exports the following function to parse floating-point
2245 values from a string in Common Lisp.")
2246 (home-page "https://github.com/soemraws/parse-float")
2247 (license license:public-domain))))
2248
2249 (define-public cl-parse-float
2250 (sbcl-package->cl-source-package sbcl-parse-float))
2251
2252 (define-public ecl-parse-float
2253 (sbcl-package->ecl-package sbcl-parse-float))
2254
2255 (define-public sbcl-ascii-strings
2256 (let ((revision "1")
2257 (changeset "5048480a61243e6f1b02884012c8f25cdbee6d97"))
2258 (package
2259 (name "sbcl-ascii-strings")
2260 (version (string-append "0-" revision "." (string-take changeset 7)))
2261 (source
2262 (origin
2263 (method hg-fetch)
2264 (uri (hg-reference
2265 (url "https://bitbucket.org/vityok/cl-string-match/")
2266 (changeset changeset)))
2267 (sha256
2268 (base32
2269 "01wn5qx562w43ssy92xlfgv79w7p0nv0wbl76mpmba131n9ziq2y"))
2270 (file-name (git-file-name "cl-string-match" version))))
2271 (build-system asdf-build-system/sbcl)
2272 (inputs
2273 `(("alexandria" ,sbcl-alexandria)
2274 ("babel" ,sbcl-babel)))
2275 (arguments
2276 `(#:asd-file "ascii-strings.asd"))
2277 (synopsis "Operations on ASCII strings")
2278 (description
2279 "Operations on ASCII strings. Essentially this can be any kind of
2280 single-byte encoded strings.")
2281 (home-page "https://bitbucket.org/vityok/cl-string-match/")
2282 (license license:bsd-3))))
2283
2284 (define-public cl-ascii-strings
2285 (sbcl-package->cl-source-package sbcl-ascii-strings))
2286
2287 (define-public ecl-ascii-strings
2288 (sbcl-package->ecl-package sbcl-ascii-strings))
2289
2290 (define-public sbcl-simple-scanf
2291 (package
2292 (inherit sbcl-ascii-strings)
2293 (name "sbcl-simple-scanf")
2294 (inputs
2295 `(("alexandria" ,sbcl-alexandria)
2296 ("iterate" ,sbcl-iterate)
2297 ("proc-parse" ,sbcl-proc-parse)
2298 ("parse-float" ,sbcl-parse-float)))
2299 (arguments
2300 `(#:asd-file "simple-scanf.asd"))
2301 (synopsis "Simple scanf-like functionality implementation")
2302 (description
2303 "A simple scanf-like functionality implementation.")))
2304
2305 (define-public cl-simple-scanf
2306 (sbcl-package->cl-source-package sbcl-simple-scanf))
2307
2308 (define-public ecl-simple-scanf
2309 (sbcl-package->ecl-package sbcl-simple-scanf))
2310
2311 (define-public sbcl-cl-string-match
2312 (package
2313 (inherit sbcl-ascii-strings)
2314 (name "sbcl-cl-string-match")
2315 (inputs
2316 `(("alexandria" ,sbcl-alexandria)
2317 ("ascii-strings" ,sbcl-ascii-strings)
2318 ("yacc" ,sbcl-cl-yacc)
2319 ("jpl-util" ,sbcl-jpl-util)
2320 ("jpl-queues" ,sbcl-jpl-queues)
2321 ("mgl-pax" ,sbcl-mgl-pax)
2322 ("iterate" ,sbcl-iterate)))
2323 ;; TODO: Tests are not evaluated properly.
2324 (native-inputs
2325 ;; For testing:
2326 `(("lisp-unit" ,sbcl-lisp-unit)
2327 ("simple-scanf" ,sbcl-simple-scanf)))
2328 (arguments
2329 `(#:tests? #f
2330 #:asd-file "cl-string-match.asd"))
2331 (synopsis "Portable, dependency-free set of utilities to manipulate strings in Common Lisp")
2332 (description
2333 "@command{cl-strings} is a small, portable, dependency-free set of
2334 utilities that make it even easier to manipulate text in Common Lisp. It has
2335 100% test coverage and works at least on sbcl, ecl, ccl, abcl and clisp.")))
2336
2337 (define-public cl-string-match
2338 (sbcl-package->cl-source-package sbcl-cl-string-match))
2339
2340 (define-public ecl-cl-string-match
2341 (sbcl-package->ecl-package sbcl-cl-string-match))
2342
2343 (define-public sbcl-ptester
2344 (let ((commit "fe69fde54f4bce00ce577feb918796c293fc7253")
2345 (revision "1"))
2346 (package
2347 (name "sbcl-ptester")
2348 (version (git-version "2.1.3" revision commit))
2349 (source
2350 (origin
2351 (method git-fetch)
2352 (uri (git-reference
2353 (url "http://git.kpe.io/ptester.git")
2354 (commit commit)))
2355 (file-name (git-file-name name version))
2356 (sha256
2357 (base32 "1l0lfl7cdnr2qf4zh38hi4llxg22c49zkm639bdkmvlkzwj3ndwf"))))
2358 (build-system asdf-build-system/sbcl)
2359 (home-page "http://quickdocs.org/ptester/")
2360 (synopsis "Portable test harness package")
2361 (description
2362 "@command{ptester} is a portable testing framework based on Franz's
2363 tester module.")
2364 (license license:llgpl))))
2365
2366 (define-public cl-ptester
2367 (sbcl-package->cl-source-package sbcl-ptester))
2368
2369 (define-public ecl-ptester
2370 (sbcl-package->ecl-package sbcl-ptester))
2371
2372 (define-public sbcl-puri
2373 (let ((commit "ef5afb9e5286c8e952d4344f019c1a636a717b97")
2374 (revision "1"))
2375 (package
2376 (name "sbcl-puri")
2377 (version (git-version "1.5.7" revision commit))
2378 (source
2379 (origin
2380 (method git-fetch)
2381 (uri (git-reference
2382 (url "http://git.kpe.io/puri.git")
2383 (commit commit)))
2384 (file-name (git-file-name name version))
2385 (sha256
2386 (base32 "1vm25pdl92laj72p5vyd538kf3cjy2655z6bdc99h20ana2p231s"))))
2387 (build-system asdf-build-system/sbcl)
2388 (native-inputs
2389 `(("ptester" ,sbcl-ptester)))
2390 (home-page "http://quickdocs.org/puri/")
2391 (synopsis "Portable URI Library")
2392 (description
2393 "This is a portable Universal Resource Identifier library for Common
2394 Lisp programs. It parses URI according to the RFC 2396 specification.")
2395 (license license:llgpl))))
2396
2397 (define-public cl-puri
2398 (sbcl-package->cl-source-package sbcl-puri))
2399
2400 (define-public ecl-puri
2401 (sbcl-package->ecl-package sbcl-puri))
2402
2403 (define-public sbcl-queues
2404 (let ((commit "47d4da65e9ea20953b74aeeab7e89a831b66bc94"))
2405 (package
2406 (name "sbcl-queues")
2407 (version (git-version "0.0.0" "1" commit))
2408 (source
2409 (origin
2410 (method git-fetch)
2411 (uri (git-reference
2412 (url "https://github.com/oconnore/queues")
2413 (commit commit)))
2414 (file-name (git-file-name "queues" version))
2415 (sha256
2416 (base32
2417 "0wdhfnzi4v6d97pggzj2aw55si94w4327br94jrmyvwf351wqjvv"))))
2418 (build-system asdf-build-system/sbcl)
2419 (home-page "https://github.com/oconnore/queues")
2420 (synopsis "Common Lisp queue library")
2421 (description
2422 "This is a simple queue library for Common Lisp with features such as
2423 non-consing thread safe queues and fibonacci priority queues.")
2424 (license license:expat))))
2425
2426 (define-public cl-queues
2427 (sbcl-package->cl-source-package sbcl-queues))
2428
2429 (define-public ecl-queues
2430 (sbcl-package->ecl-package sbcl-queues))
2431
2432 (define-public sbcl-queues.simple-queue
2433 (package
2434 (inherit sbcl-queues)
2435 (name "sbcl-queues.simple-queue")
2436 (inputs
2437 `(("sbcl-queues" ,sbcl-queues)))
2438 (arguments
2439 `(#:asd-file "queues.simple-queue.asd"))
2440 (synopsis "Simple queue implementation")
2441 (description
2442 "This is a simple queue library for Common Lisp with features such as
2443 non-consing thread safe queues and fibonacci priority queues.")
2444 (license license:expat)))
2445
2446 (define-public cl-queues.simple-queue
2447 (sbcl-package->cl-source-package sbcl-queues.simple-queue))
2448
2449 (define-public ecl-queues.simple-queue
2450 (sbcl-package->ecl-package sbcl-queues.simple-queue))
2451
2452 (define-public sbcl-queues.simple-cqueue
2453 (package
2454 (inherit sbcl-queues)
2455 (name "sbcl-queues.simple-cqueue")
2456 (inputs
2457 `(("sbcl-queues" ,sbcl-queues)
2458 ("sbcl-queues.simple-queue" ,sbcl-queues.simple-queue)
2459 ("bordeaux-threads" ,sbcl-bordeaux-threads)))
2460 (arguments
2461 `(#:asd-file "queues.simple-cqueue.asd"))
2462 (synopsis "Thread safe queue implementation")
2463 (description
2464 "This is a simple queue library for Common Lisp with features such as
2465 non-consing thread safe queues and fibonacci priority queues.")
2466 (license license:expat)))
2467
2468 (define-public cl-queues.simple-cqueue
2469 (sbcl-package->cl-source-package sbcl-queues.simple-cqueue))
2470
2471 (define-public ecl-queues.simple-cqueue
2472 (sbcl-package->ecl-package sbcl-queues.simple-cqueue))
2473
2474 (define-public sbcl-queues.priority-queue
2475 (package
2476 (inherit sbcl-queues)
2477 (name "sbcl-queues.priority-queue")
2478 (inputs
2479 `(("sbcl-queues" ,sbcl-queues)))
2480 (arguments
2481 `(#:asd-file "queues.priority-queue.asd"))
2482 (synopsis "Priority queue (Fibonacci) implementation")
2483 (description
2484 "This is a simple queue library for Common Lisp with features such as
2485 non-consing thread safe queues and fibonacci priority queues.")
2486 (license license:expat)))
2487
2488 (define-public cl-queues.priority-queue
2489 (sbcl-package->cl-source-package sbcl-queues.priority-queue))
2490
2491 (define-public ecl-queues.priority-queue
2492 (sbcl-package->ecl-package sbcl-queues.priority-queue))
2493
2494 (define-public sbcl-queues.priority-cqueue
2495 (package
2496 (inherit sbcl-queues)
2497 (name "sbcl-queues.priority-cqueue")
2498 (inputs
2499 `(("sbcl-queues" ,sbcl-queues)
2500 ("sbcl-queues.priority-queue" ,sbcl-queues.priority-queue)
2501 ("bordeaux-threads" ,sbcl-bordeaux-threads)))
2502 (arguments
2503 `(#:asd-file "queues.priority-cqueue.asd"))
2504 (synopsis "Thread safe fibonacci priority queue implementation")
2505 (description
2506 "This is a simple queue library for Common Lisp with features such as
2507 non-consing thread safe queues and fibonacci priority queues.")
2508 (license license:expat)))
2509
2510 (define-public cl-queues.priority-cqueue
2511 (sbcl-package->cl-source-package sbcl-queues.priority-cqueue))
2512
2513 (define-public ecl-queues.priority-cqueue
2514 (sbcl-package->ecl-package sbcl-queues.priority-cqueue))
2515
2516 (define sbcl-cffi-bootstrap
2517 (package
2518 (name "sbcl-cffi-bootstrap")
2519 (version "0.21.0")
2520 (source
2521 (origin
2522 (method git-fetch)
2523 (uri (git-reference
2524 (url "https://github.com/cffi/cffi.git")
2525 (commit (string-append "v" version))))
2526 (file-name (git-file-name "cffi-bootstrap" version))
2527 (sha256
2528 (base32 "1qalargz9bhp850qv60ffwpdqi4xirzar4l3g6qcg8yc6xqf2cjk"))))
2529 (build-system asdf-build-system/sbcl)
2530 (inputs
2531 `(("libffi" ,libffi)
2532 ("alexandria" ,sbcl-alexandria)
2533 ("babel" ,sbcl-babel)
2534 ("trivial-features" ,sbcl-trivial-features)))
2535 (native-inputs
2536 `(("pkg-config" ,pkg-config)))
2537 (arguments
2538 '(#:phases
2539 (modify-phases %standard-phases
2540 (add-after 'unpack 'fix-paths
2541 (lambda* (#:key inputs #:allow-other-keys)
2542 (substitute* "libffi/libffi.lisp"
2543 (("libffi.so.6" all) (string-append
2544 (assoc-ref inputs "libffi")
2545 "/lib/" all)))
2546 (substitute* "toolchain/c-toolchain.lisp"
2547 (("\"cc\"") (format #f "~S" (which "gcc")))))))
2548 #:asd-system-name "cffi"
2549 #:tests? #f))
2550 (home-page "https://common-lisp.net/project/cffi/")
2551 (synopsis "Common Foreign Function Interface for Common Lisp")
2552 (description "The Common Foreign Function Interface (CFFI)
2553 purports to be a portable foreign function interface for Common Lisp.
2554 The CFFI library is composed of a Lisp-implementation-specific backend
2555 in the CFFI-SYS package, and a portable frontend in the CFFI
2556 package.")
2557 (license license:expat)))
2558
2559 (define-public sbcl-cffi-toolchain
2560 (package
2561 (inherit sbcl-cffi-bootstrap)
2562 (name "sbcl-cffi-toolchain")
2563 (inputs
2564 `(("libffi" ,libffi)
2565 ("sbcl-cffi" ,sbcl-cffi-bootstrap)))
2566 (arguments
2567 (substitute-keyword-arguments (package-arguments sbcl-cffi-bootstrap)
2568 ((#:asd-system-name _) #f)
2569 ((#:tests? _) #t)))))
2570
2571 (define-public sbcl-cffi-libffi
2572 (package
2573 (inherit sbcl-cffi-toolchain)
2574 (name "sbcl-cffi-libffi")
2575 (inputs
2576 `(("cffi" ,sbcl-cffi-bootstrap)
2577 ("cffi-grovel" ,sbcl-cffi-grovel)
2578 ("trivial-features" ,sbcl-trivial-features)
2579 ("libffi" ,libffi)))))
2580
2581 (define-public sbcl-cffi-grovel
2582 (package
2583 (inherit sbcl-cffi-toolchain)
2584 (name "sbcl-cffi-grovel")
2585 (inputs
2586 `(("libffi" ,libffi)
2587 ("cffi" ,sbcl-cffi-bootstrap)
2588 ("cffi-toolchain" ,sbcl-cffi-toolchain)
2589 ("alexandria" ,sbcl-alexandria)))
2590 (arguments
2591 (substitute-keyword-arguments (package-arguments sbcl-cffi-toolchain)
2592 ((#:phases phases)
2593 `(modify-phases ,phases
2594 (add-after 'build 'install-headers
2595 (lambda* (#:key outputs #:allow-other-keys)
2596 (install-file "grovel/common.h"
2597 (string-append
2598 (assoc-ref outputs "out")
2599 "/include/grovel"))))))))))
2600
2601 (define-public sbcl-cffi
2602 (package
2603 (inherit sbcl-cffi-toolchain)
2604 (name "sbcl-cffi")
2605 (inputs (package-inputs sbcl-cffi-bootstrap))
2606 (native-inputs
2607 `(("cffi-grovel" ,sbcl-cffi-grovel)
2608 ("cffi-libffi" ,sbcl-cffi-libffi)
2609 ("rt" ,sbcl-rt)
2610 ("bordeaux-threads" ,sbcl-bordeaux-threads)
2611 ,@(package-native-inputs sbcl-cffi-bootstrap)))))
2612
2613 (define-public cl-cffi
2614 (sbcl-package->cl-source-package sbcl-cffi))
2615
2616 (define-public sbcl-cffi-uffi-compat
2617 (package
2618 (inherit sbcl-cffi-toolchain)
2619 (name "sbcl-cffi-uffi-compat")
2620 (native-inputs
2621 `(,@(package-inputs sbcl-cffi-bootstrap))) ; For fix-paths phase
2622 (inputs
2623 `(("cffi" ,sbcl-cffi)))
2624 (synopsis "UFFI Compatibility Layer for CFFI")))
2625
2626 (define-public cl-cffi-uffi-compat
2627 (sbcl-package->cl-source-package sbcl-cffi-uffi-compat))
2628
2629 (define-public sbcl-cl-sqlite
2630 (let ((commit "c738e66d4266ef63a1debc4ef4a1b871a068c112"))
2631 (package
2632 (name "sbcl-cl-sqlite")
2633 (version (git-version "0.2" "1" commit))
2634 (source
2635 (origin
2636 (method git-fetch)
2637 (uri (git-reference
2638 (url "https://github.com/dmitryvk/cl-sqlite")
2639 (commit commit)))
2640 (file-name (git-file-name "cl-sqlite" version))
2641 (sha256
2642 (base32
2643 "1ng45k1hdb84sqjryrfx93g66bsbybmpy301wd0fdybnc5jzr36q"))))
2644 (build-system asdf-build-system/sbcl)
2645 (inputs
2646 `(("iterate" ,sbcl-iterate)
2647 ("cffi" ,sbcl-cffi)
2648 ("sqlite" ,sqlite)))
2649 (native-inputs
2650 `(("fiveam" ,sbcl-fiveam)
2651 ("bordeaux-threads" ,sbcl-bordeaux-threads)))
2652 (arguments
2653 `(#:tests? #f ; Upstream seems to have issues with tests: https://github.com/dmitryvk/cl-sqlite/issues/7
2654 #:asd-file "sqlite.asd"
2655 #:asd-system-name "sqlite"
2656 #:phases
2657 (modify-phases %standard-phases
2658 (add-after 'unpack 'fix-paths
2659 (lambda* (#:key inputs #:allow-other-keys)
2660 (substitute* "sqlite-ffi.lisp"
2661 (("libsqlite3" all) (string-append
2662 (assoc-ref inputs "sqlite")"/lib/" all))))))))
2663 (home-page "https://common-lisp.net/project/cl-sqlite/")
2664 (synopsis "Common Lisp binding for SQLite")
2665 (description
2666 "The @command{cl-sqlite} package is an interface to the SQLite embedded
2667 relational database engine.")
2668 (license license:public-domain))))
2669
2670 (define-public cl-sqlite
2671 (sbcl-package->cl-source-package sbcl-cl-sqlite))
2672
2673 (define-public sbcl-parenscript
2674 ;; Source archives are overwritten on every release, we use the Git repo instead.
2675 (let ((commit "7a1ac46353cecd144fc91915ba9f122aafcf4766"))
2676 (package
2677 (name "sbcl-parenscript")
2678 (version (git-version "2.7.1" "1" commit))
2679 (source
2680 (origin
2681 (method git-fetch)
2682 (uri (git-reference
2683 (url "https://gitlab.common-lisp.net/parenscript/parenscript")
2684 (commit commit)))
2685 (file-name (git-file-name "parenscript" version))
2686 (sha256
2687 (base32
2688 "0c22lqarrpbq82dg1sb3y6mp6w2faczp34ymzhnmff88yfq1xzsf"))))
2689 (build-system asdf-build-system/sbcl)
2690 (inputs
2691 `(("cl-ppcre" ,sbcl-cl-ppcre)
2692 ("anaphora" ,sbcl-anaphora)
2693 ("named-readtables" ,sbcl-named-readtables)))
2694 (home-page "https://common-lisp.net/project/parenscript/")
2695 (synopsis "Translator from a subset of Common Lisp to JavaScript")
2696 (description
2697 "Parenscript is a translator from an extended subset of Common Lisp to
2698 JavaScript. Parenscript code can run almost identically on both the
2699 browser (as JavaScript) and server (as Common Lisp).
2700
2701 Parenscript code is treated the same way as Common Lisp code, making the full
2702 power of Lisp macros available for JavaScript. This provides a web
2703 development environment that is unmatched in its ability to reduce code
2704 duplication and provide advanced meta-programming facilities to web
2705 developers.
2706
2707 At the same time, Parenscript is different from almost all other \"language
2708 X\" to JavaScript translators in that it imposes almost no overhead:
2709
2710 @itemize
2711 @item No run-time dependencies: Any piece of Parenscript code is runnable
2712 as-is. There are no JavaScript files to include.
2713 @item Native types: Parenscript works entirely with native JavaScript data
2714 types. There are no new types introduced, and object prototypes are not
2715 touched.
2716 @item Native calling convention: Any JavaScript code can be called without the
2717 need for bindings. Likewise, Parenscript can be used to make efficient,
2718 self-contained JavaScript libraries.
2719 @item Readable code: Parenscript generates concise, formatted, idiomatic
2720 JavaScript code. Identifier names are preserved. This enables seamless
2721 debugging in tools like Firebug.
2722 @item Efficiency: Parenscript introduces minimal overhead for advanced Common
2723 Lisp features. The generated code is almost as fast as hand-written
2724 JavaScript.
2725 @end itemize\n")
2726 (license license:bsd-3))))
2727
2728 (define-public cl-parenscript
2729 (sbcl-package->cl-source-package sbcl-parenscript))
2730
2731 (define-public ecl-parenscript
2732 (sbcl-package->ecl-package sbcl-parenscript))
2733
2734 (define-public sbcl-cl-json
2735 (let ((commit "6dfebb9540bfc3cc33582d0c03c9ec27cb913e79"))
2736 (package
2737 (name "sbcl-cl-json")
2738 (version (git-version "0.5" "1" commit))
2739 (source
2740 (origin
2741 (method git-fetch)
2742 (uri (git-reference
2743 (url "https://github.com/hankhero/cl-json")
2744 (commit commit)))
2745 (file-name (git-file-name "cl-json" version))
2746 (sha256
2747 (base32
2748 "0fx3m3x3s5ji950yzpazz4s0img3l6b3d6l3jrfjv0lr702496lh"))))
2749 (build-system asdf-build-system/sbcl)
2750 (native-inputs
2751 `(("fiveam" ,sbcl-fiveam)))
2752 (home-page "https://github.com/hankhero/cl-json")
2753 (synopsis "JSON encoder and decoder for Common-Lisp")
2754 (description
2755 "@command{cl-json} provides an encoder of Lisp objects to JSON format
2756 and a corresponding decoder of JSON data to Lisp objects. Both the encoder
2757 and the decoder are highly customizable; at the same time, the default
2758 settings ensure a very simple mode of operation, similar to that provided by
2759 @command{yason} or @command{st-json}.")
2760 (license license:expat))))
2761
2762 (define-public cl-json
2763 (sbcl-package->cl-source-package sbcl-cl-json))
2764
2765 (define-public ecl-cl-json
2766 (sbcl-package->ecl-package sbcl-cl-json))
2767
2768 (define-public sbcl-unix-opts
2769 (package
2770 (name "sbcl-unix-opts")
2771 (version "0.1.7")
2772 (source
2773 (origin
2774 (method git-fetch)
2775 (uri (git-reference
2776 (url "https://github.com/libre-man/unix-opts")
2777 (commit version)))
2778 (file-name (git-file-name "unix-opts" version))
2779 (sha256
2780 (base32
2781 "08djdi1ard09fijb7w9bdmhmwd98b1hzmcnjw9fqjiqa0g3b44rr"))))
2782 (build-system asdf-build-system/sbcl)
2783 (home-page "https://github.com/hankhero/cl-json")
2784 (synopsis "Unix-style command line options parser")
2785 (description
2786 "This is a minimalistic parser of command line options. The main
2787 advantage of the library is the ability to concisely define command line
2788 options once and then use this definition for parsing and extraction of
2789 command line arguments, as well as printing description of command line
2790 options (you get --help for free). This way you don't need to repeat
2791 yourself. Also, @command{unix-opts} doesn't depend on anything and
2792 precisely controls the behavior of the parser via Common Lisp restarts.")
2793 (license license:expat)))
2794
2795 (define-public cl-unix-opts
2796 (sbcl-package->cl-source-package sbcl-unix-opts))
2797
2798 (define-public ecl-unix-opts
2799 (sbcl-package->ecl-package sbcl-unix-opts))
2800
2801 (define-public sbcl-trivial-garbage
2802 (package
2803 (name "sbcl-trivial-garbage")
2804 (version "0.21")
2805 (source
2806 (origin
2807 (method git-fetch)
2808 (uri (git-reference
2809 (url "https://github.com/trivial-garbage/trivial-garbage.git")
2810 (commit (string-append "v" version))))
2811 (file-name (git-file-name "trivial-garbage" version))
2812 (sha256
2813 (base32 "0122jicfg7pca1wxw8zak1n92h5friqy60988ns0ysksj3fphw9n"))))
2814 (build-system asdf-build-system/sbcl)
2815 (native-inputs
2816 `(("rt" ,sbcl-rt)))
2817 (home-page "https://common-lisp.net/project/trivial-garbage/")
2818 (synopsis "Portable GC-related APIs for Common Lisp")
2819 (description "@command{trivial-garbage} provides a portable API to
2820 finalizers, weak hash-tables and weak pointers on all major implementations of
2821 the Common Lisp programming language.")
2822 (license license:public-domain)))
2823
2824 (define-public cl-trivial-garbage
2825 (sbcl-package->cl-source-package sbcl-trivial-garbage))
2826
2827 (define-public ecl-trivial-garbage
2828 (sbcl-package->ecl-package sbcl-trivial-garbage))
2829
2830 (define-public sbcl-closer-mop
2831 (let ((commit "19c9d33f576e10715fd79cc1d4f688dab0f241d6"))
2832 (package
2833 (name "sbcl-closer-mop")
2834 (version (git-version "1.0.0" "2" commit))
2835 (source
2836 (origin
2837 (method git-fetch)
2838 (uri (git-reference
2839 (url "https://github.com/pcostanza/closer-mop")
2840 (commit commit)))
2841 (sha256
2842 (base32 "1w3x087wvlwkd6swfdgbvjfs6kazf0la8ax4pjfzikwjch4snn2c"))
2843 (file-name (git-file-name "closer-mop" version ))))
2844 (build-system asdf-build-system/sbcl)
2845 (home-page "https://github.com/pcostanza/closer-mop")
2846 (synopsis "Rectifies absent or incorrect CLOS MOP features")
2847 (description "Closer to MOP is a compatibility layer that rectifies many
2848 of the absent or incorrect CLOS MOP features across a broad range of Common
2849 Lisp implementations.")
2850 (license license:expat))))
2851
2852 (define-public cl-closer-mop
2853 (sbcl-package->cl-source-package sbcl-closer-mop))
2854
2855 (define-public ecl-closer-mop
2856 (sbcl-package->ecl-package sbcl-closer-mop))
2857
2858 (define sbcl-cl-cffi-gtk-boot0
2859 (let ((commit "412d17214e092220c65a5660f5cbbd9cb69b8fe4"))
2860 (package
2861 (name "sbcl-cl-cffi-gtk-boot0")
2862 (version (git-version "0.11.2" "1" commit))
2863 (source
2864 (origin
2865 (method git-fetch)
2866 (uri (git-reference
2867 (url "https://github.com/Ferada/cl-cffi-gtk/")
2868 (commit commit)))
2869 (file-name (git-file-name "cl-cffi-gtk" version))
2870 (sha256
2871 (base32
2872 "0n997yhcnzk048nalx8ys62ja2ac8iv4mbn3mb55iapl0321hghn"))))
2873 (build-system asdf-build-system/sbcl)
2874 (inputs
2875 `(("iterate" ,sbcl-iterate)
2876 ("cffi" ,sbcl-cffi)
2877 ("trivial-features" ,sbcl-trivial-features)))
2878 (home-page "https://github.com/Ferada/cl-cffi-gtk/")
2879 (synopsis "Common Lisp binding for GTK+3")
2880 (description
2881 "@command{cl-cffi-gtk} is a Lisp binding to GTK+ 3 (GIMP Toolkit) which
2882 is a library for creating graphical user interfaces.")
2883 (license license:lgpl3))))
2884
2885 (define-public sbcl-cl-cffi-gtk-glib
2886 (package
2887 (inherit sbcl-cl-cffi-gtk-boot0)
2888 (name "sbcl-cl-cffi-gtk-glib")
2889 (inputs
2890 `(("glib" ,glib)
2891 ("bordeaux-threads" ,sbcl-bordeaux-threads)
2892 ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
2893 (arguments
2894 `(#:asd-file "glib/cl-cffi-gtk-glib.asd"
2895 #:phases
2896 (modify-phases %standard-phases
2897 (add-after 'unpack 'fix-paths
2898 (lambda* (#:key inputs #:allow-other-keys)
2899 (substitute* "glib/glib.init.lisp"
2900 (("libglib|libgthread" all)
2901 (string-append (assoc-ref inputs "glib") "/lib/" all))))))))))
2902
2903 (define-public sbcl-cl-cffi-gtk-gobject
2904 (package
2905 (inherit sbcl-cl-cffi-gtk-boot0)
2906 (name "sbcl-cl-cffi-gtk-gobject")
2907 (inputs
2908 `(("glib" ,glib)
2909 ("cl-cffi-gtk-glib" ,sbcl-cl-cffi-gtk-glib)
2910 ("trivial-garbage" ,sbcl-trivial-garbage)
2911 ("bordeaux-threads" ,sbcl-bordeaux-threads)
2912 ("closer-mop" ,sbcl-closer-mop)
2913 ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
2914 (arguments
2915 `(#:asd-file "gobject/cl-cffi-gtk-gobject.asd"
2916 #:phases
2917 (modify-phases %standard-phases
2918 (add-after 'unpack 'fix-paths
2919 (lambda* (#:key inputs #:allow-other-keys)
2920 (substitute* "gobject/gobject.init.lisp"
2921 (("libgobject" all) (string-append
2922 (assoc-ref inputs "glib") "/lib/" all)))))
2923 (add-after 'install 'link-source
2924 ;; Since source is particularly heavy (16MiB+), let's reuse it
2925 ;; across the different components of cl-ffi-gtk.
2926 (lambda* (#:key inputs outputs #:allow-other-keys)
2927 (let ((glib-source (string-append (assoc-ref inputs "cl-cffi-gtk-glib")
2928 "/share/common-lisp/sbcl-source/"
2929 "cl-cffi-gtk-glib"))
2930 (out-source (string-append (assoc-ref outputs "out")
2931 "/share/common-lisp/sbcl-source/"
2932 "cl-cffi-gtk-gobject")))
2933 (delete-file-recursively out-source)
2934 (symlink glib-source out-source)
2935 #t))))))))
2936
2937 (define-public sbcl-cl-cffi-gtk-gio
2938 (package
2939 (inherit sbcl-cl-cffi-gtk-boot0)
2940 (name "sbcl-cl-cffi-gtk-gio")
2941 (inputs
2942 `(("glib" ,glib)
2943 ("cl-cffi-gtk-glib" ,sbcl-cl-cffi-gtk-glib)
2944 ("cl-cffi-gtk-gobject" ,sbcl-cl-cffi-gtk-gobject)
2945 ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
2946 (arguments
2947 `(#:asd-file "gio/cl-cffi-gtk-gio.asd"
2948 #:phases
2949 (modify-phases %standard-phases
2950 (add-after 'unpack 'fix-paths
2951 (lambda* (#:key inputs #:allow-other-keys)
2952 (substitute* "gio/gio.init.lisp"
2953 (("libgio" all)
2954 (string-append
2955 (assoc-ref inputs "glib") "/lib/" all)))))
2956 (add-after 'install 'link-source
2957 ;; Since source is particularly heavy (16MiB+), let's reuse it
2958 ;; across the different components of cl-ffi-gtk.
2959 (lambda* (#:key inputs outputs #:allow-other-keys)
2960 (let ((glib-source (string-append (assoc-ref inputs "cl-cffi-gtk-glib")
2961 "/share/common-lisp/sbcl-source/"
2962 "cl-cffi-gtk-glib"))
2963 (out-source (string-append (assoc-ref outputs "out")
2964 "/share/common-lisp/sbcl-source/"
2965 "cl-cffi-gtk-gio")))
2966 (delete-file-recursively out-source)
2967 (symlink glib-source out-source)
2968 #t))))))))
2969
2970 (define-public sbcl-cl-cffi-gtk-cairo
2971 (package
2972 (inherit sbcl-cl-cffi-gtk-boot0)
2973 (name "sbcl-cl-cffi-gtk-cairo")
2974 (inputs
2975 `(("cairo" ,cairo)
2976 ("cl-cffi-gtk-glib" ,sbcl-cl-cffi-gtk-glib)
2977 ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
2978 (arguments
2979 `(#:asd-file "cairo/cl-cffi-gtk-cairo.asd"
2980 #:phases
2981 (modify-phases %standard-phases
2982 (add-after 'unpack 'fix-paths
2983 (lambda* (#:key inputs #:allow-other-keys)
2984 (substitute* "cairo/cairo.init.lisp"
2985 (("libcairo" all)
2986 (string-append
2987 (assoc-ref inputs "cairo") "/lib/" all)))))
2988 (add-after 'install 'link-source
2989 ;; Since source is particularly heavy (16MiB+), let's reuse it
2990 ;; across the different components of cl-ffi-gtk.
2991 (lambda* (#:key inputs outputs #:allow-other-keys)
2992 (let ((glib-source (string-append (assoc-ref inputs "cl-cffi-gtk-glib")
2993 "/share/common-lisp/sbcl-source/"
2994 "cl-cffi-gtk-glib"))
2995 (out-source (string-append (assoc-ref outputs "out")
2996 "/share/common-lisp/sbcl-source/"
2997 "cl-cffi-gtk-cairo")))
2998 (delete-file-recursively out-source)
2999 (symlink glib-source out-source)
3000 #t))))))))
3001
3002 (define-public sbcl-cl-cffi-gtk-pango
3003 (package
3004 (inherit sbcl-cl-cffi-gtk-boot0)
3005 (name "sbcl-cl-cffi-gtk-pango")
3006 (inputs
3007 `(("pango" ,pango)
3008 ("cl-cffi-gtk-glib" ,sbcl-cl-cffi-gtk-glib)
3009 ("cl-cffi-gtk-gobject" ,sbcl-cl-cffi-gtk-gobject)
3010 ("cl-cffi-gtk-cairo" ,sbcl-cl-cffi-gtk-cairo)
3011 ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
3012 (arguments
3013 `(#:asd-file "pango/cl-cffi-gtk-pango.asd"
3014 #:phases
3015 (modify-phases %standard-phases
3016 (add-after 'unpack 'fix-paths
3017 (lambda* (#:key inputs #:allow-other-keys)
3018 (substitute* "pango/pango.init.lisp"
3019 (("libpango" all)
3020 (string-append
3021 (assoc-ref inputs "pango") "/lib/" all)))))
3022 (add-after 'install 'link-source
3023 ;; Since source is particularly heavy (16MiB+), let's reuse it
3024 ;; across the different components of cl-ffi-gtk.
3025 (lambda* (#:key inputs outputs #:allow-other-keys)
3026 (let ((glib-source (string-append (assoc-ref inputs "cl-cffi-gtk-glib")
3027 "/share/common-lisp/sbcl-source/"
3028 "cl-cffi-gtk-glib"))
3029 (out-source (string-append (assoc-ref outputs "out")
3030 "/share/common-lisp/sbcl-source/"
3031 "cl-cffi-gtk-pango")))
3032 (delete-file-recursively out-source)
3033 (symlink glib-source out-source)
3034 #t))))))))
3035
3036 (define-public sbcl-cl-cffi-gtk-gdk-pixbuf
3037 (package
3038 (inherit sbcl-cl-cffi-gtk-boot0)
3039 (name "sbcl-cl-cffi-gtk-gdk-pixbuf")
3040 (inputs
3041 `(("gdk-pixbuf" ,gdk-pixbuf)
3042 ("cl-cffi-gtk-gobject" ,sbcl-cl-cffi-gtk-gobject)
3043 ("cl-cffi-gtk-glib" ,sbcl-cl-cffi-gtk-glib)
3044 ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
3045 (arguments
3046 `(#:asd-file "gdk-pixbuf/cl-cffi-gtk-gdk-pixbuf.asd"
3047 #:phases
3048 (modify-phases %standard-phases
3049 (add-after 'unpack 'fix-paths
3050 (lambda* (#:key inputs #:allow-other-keys)
3051 (substitute* "gdk-pixbuf/gdk-pixbuf.init.lisp"
3052 (("libgdk_pixbuf" all)
3053 (string-append
3054 (assoc-ref inputs "gdk-pixbuf") "/lib/" all)))))
3055 (add-after 'install 'link-source
3056 ;; Since source is particularly heavy (16MiB+), let's reuse it
3057 ;; across the different components of cl-ffi-gtk.
3058 (lambda* (#:key inputs outputs #:allow-other-keys)
3059 (let ((glib-source (string-append (assoc-ref inputs "cl-cffi-gtk-glib")
3060 "/share/common-lisp/sbcl-source/"
3061 "cl-cffi-gtk-glib"))
3062 (out-source (string-append (assoc-ref outputs "out")
3063 "/share/common-lisp/sbcl-source/"
3064 "cl-cffi-gtk-gdk-pixbuf")))
3065 (delete-file-recursively out-source)
3066 (symlink glib-source out-source)
3067 #t))))))))
3068
3069 (define-public sbcl-cl-cffi-gtk-gdk
3070 (package
3071 (inherit sbcl-cl-cffi-gtk-boot0)
3072 (name "sbcl-cl-cffi-gtk-gdk")
3073 (inputs
3074 `(("gtk" ,gtk+)
3075 ("cl-cffi-gtk-glib" ,sbcl-cl-cffi-gtk-glib)
3076 ("cl-cffi-gtk-gobject" ,sbcl-cl-cffi-gtk-gobject)
3077 ("cl-cffi-gtk-gio" ,sbcl-cl-cffi-gtk-gio)
3078 ("cl-cffi-gtk-gdk-pixbuf" ,sbcl-cl-cffi-gtk-gdk-pixbuf)
3079 ("cl-cffi-gtk-cairo" ,sbcl-cl-cffi-gtk-cairo)
3080 ("cl-cffi-gtk-pango" ,sbcl-cl-cffi-gtk-pango)
3081 ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
3082 (arguments
3083 `(#:asd-file "gdk/cl-cffi-gtk-gdk.asd"
3084 #:phases
3085 (modify-phases %standard-phases
3086 (add-after 'unpack 'fix-paths
3087 (lambda* (#:key inputs #:allow-other-keys)
3088 (substitute* "gdk/gdk.init.lisp"
3089 (("libgdk" all)
3090 (string-append
3091 (assoc-ref inputs "gtk") "/lib/" all)))
3092 (substitute* "gdk/gdk.package.lisp"
3093 (("libgtk" all)
3094 (string-append
3095 (assoc-ref inputs "gtk") "/lib/" all)))))
3096 (add-after 'install 'link-source
3097 ;; Since source is particularly heavy (16MiB+), let's reuse it
3098 ;; across the different components of cl-ffi-gtk.
3099 (lambda* (#:key inputs outputs #:allow-other-keys)
3100 (let ((glib-source (string-append (assoc-ref inputs "cl-cffi-gtk-glib")
3101 "/share/common-lisp/sbcl-source/"
3102 "cl-cffi-gtk-glib"))
3103 (out-source (string-append (assoc-ref outputs "out")
3104 "/share/common-lisp/sbcl-source/"
3105 "cl-cffi-gtk-gdk")))
3106 (delete-file-recursively out-source)
3107 (symlink glib-source out-source)
3108 #t))))))))
3109
3110 (define-public sbcl-cl-cffi-gtk
3111 (package
3112 (inherit sbcl-cl-cffi-gtk-boot0)
3113 (name "sbcl-cl-cffi-gtk")
3114 (inputs
3115 `(("cl-cffi-gtk-glib" ,sbcl-cl-cffi-gtk-glib)
3116 ("cl-cffi-gtk-gobject" ,sbcl-cl-cffi-gtk-gobject)
3117 ("cl-cffi-gtk-gio" ,sbcl-cl-cffi-gtk-gio)
3118 ("cl-cffi-gtk-gdk" ,sbcl-cl-cffi-gtk-gdk)
3119 ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
3120 (native-inputs
3121 `(("fiveam" ,sbcl-fiveam)))
3122 (arguments
3123 `(#:asd-file "gtk/cl-cffi-gtk.asd"
3124 #:test-asd-file "test/cl-cffi-gtk-test.asd"
3125 ;; TODO: Tests fail with memory fault.
3126 ;; See https://github.com/Ferada/cl-cffi-gtk/issues/24.
3127 #:tests? #f
3128 #:phases
3129 (modify-phases %standard-phases
3130 (add-after 'install 'link-source
3131 ;; Since source is particularly heavy (16MiB+), let's reuse it
3132 ;; across the different components of cl-ffi-gtk.
3133 (lambda* (#:key inputs outputs #:allow-other-keys)
3134 (let ((glib-source (string-append (assoc-ref inputs "cl-cffi-gtk-glib")
3135 "/share/common-lisp/sbcl-source/"
3136 "cl-cffi-gtk-glib"))
3137 (out-source (string-append (assoc-ref outputs "out")
3138 "/share/common-lisp/sbcl-source/"
3139 "cl-cffi-gtk")))
3140 (delete-file-recursively out-source)
3141 (symlink glib-source out-source)
3142 #t))))))))
3143
3144 (define-public cl-cffi-gtk
3145 (sbcl-package->cl-source-package sbcl-cl-cffi-gtk))
3146
3147 (define-public sbcl-cl-webkit
3148 (let ((commit "f93cb9697e8813068795fe4dc39ac950d814102d"))
3149 (package
3150 (name "sbcl-cl-webkit")
3151 (version (git-version "2.4" "3" commit))
3152 (source
3153 (origin
3154 (method git-fetch)
3155 (uri (git-reference
3156 (url "https://github.com/joachifm/cl-webkit")
3157 (commit commit)))
3158 (file-name (git-file-name "cl-webkit" version))
3159 (sha256
3160 (base32
3161 "1sjcw08kjpd5h83sms7zcq2nymddjygk9hm2rpgzrl524an9ziwc"))))
3162 (build-system asdf-build-system/sbcl)
3163 (inputs
3164 `(("cffi" ,sbcl-cffi)
3165 ("cl-cffi-gtk" ,sbcl-cl-cffi-gtk)
3166 ("webkitgtk" ,webkitgtk)))
3167 (arguments
3168 `(#:asd-file "webkit2/cl-webkit2.asd"
3169 #:asd-system-name "cl-webkit2"
3170 #:phases
3171 (modify-phases %standard-phases
3172 (add-after 'unpack 'fix-paths
3173 (lambda* (#:key inputs #:allow-other-keys)
3174 (substitute* "webkit2/webkit2.init.lisp"
3175 (("libwebkit2gtk" all)
3176 (string-append
3177 (assoc-ref inputs "webkitgtk") "/lib/" all))))))))
3178 (home-page "https://github.com/joachifm/cl-webkit")
3179 (synopsis "Binding to WebKitGTK+ for Common Lisp")
3180 (description
3181 "@command{cl-webkit} is a binding to WebKitGTK+ for Common Lisp,
3182 currently targeting WebKit version 2. The WebKitGTK+ library adds web
3183 browsing capabilities to an application, leveraging the full power of the
3184 WebKit browsing engine.")
3185 (license license:expat))))
3186
3187 (define-public cl-webkit
3188 (sbcl-package->cl-source-package sbcl-cl-webkit))
3189
3190 (define-public sbcl-lparallel
3191 (package
3192 (name "sbcl-lparallel")
3193 (version "2.8.4")
3194 (source
3195 (origin
3196 (method git-fetch)
3197 (uri (git-reference
3198 (url "https://github.com/lmj/lparallel/")
3199 (commit (string-append "lparallel-" version))))
3200 (file-name (git-file-name "lparallel" version))
3201 (sha256
3202 (base32
3203 "0g0aylrbbrqsz0ahmwhvnk4cmc2931fllbpcfgzsprwnqqd7vwq9"))))
3204 (build-system asdf-build-system/sbcl)
3205 (inputs
3206 `(("alexandria" ,sbcl-alexandria)
3207 ("bordeaux-threads" ,sbcl-bordeaux-threads)
3208 ("trivial-garbage" ,sbcl-trivial-garbage)))
3209 (home-page "https://lparallel.org/")
3210 (synopsis "Parallelism for Common Lisp")
3211 (description
3212 "@command{lparallel} is a library for parallel programming in Common
3213 Lisp, featuring:
3214
3215 @itemize
3216 @item a simple model of task submission with receiving queue,
3217 @item constructs for expressing fine-grained parallelism,
3218 @item asynchronous condition handling across thread boundaries,
3219 @item parallel versions of map, reduce, sort, remove, and many others,
3220 @item promises, futures, and delayed evaluation constructs,
3221 @item computation trees for parallelizing interconnected tasks,
3222 @item bounded and unbounded FIFO queues,
3223 @item high and low priority tasks,
3224 @item task killing by category,
3225 @item integrated timeouts.
3226 @end itemize\n")
3227 (license license:expat)))
3228
3229 (define-public cl-lparallel
3230 (sbcl-package->cl-source-package sbcl-lparallel))
3231
3232 (define-public ecl-lparallel
3233 (sbcl-package->ecl-package sbcl-lparallel))
3234
3235 (define-public sbcl-cl-markup
3236 (let ((commit "e0eb7debf4bdff98d1f49d0f811321a6a637b390"))
3237 (package
3238 (name "sbcl-cl-markup")
3239 (version (git-version "0.1" "1" commit))
3240 (source
3241 (origin
3242 (method git-fetch)
3243 (uri (git-reference
3244 (url "https://github.com/arielnetworks/cl-markup/")
3245 (commit commit)))
3246 (file-name (git-file-name "cl-markup" version))
3247 (sha256
3248 (base32
3249 "10l6k45971dl13fkdmva7zc6i453lmq9j4xax2ci6pjzlc6xjhp7"))))
3250 (build-system asdf-build-system/sbcl)
3251 (home-page "https://github.com/arielnetworks/cl-markup/")
3252 (synopsis "Markup generation library for Common Lisp")
3253 (description
3254 "A modern markup generation library for Common Lisp that features:
3255
3256 @itemize
3257 @item Fast (even faster through compiling the code)
3258 @item Safety
3259 @item Support for multiple document types (markup, xml, html, html5, xhtml)
3260 @item Output with doctype
3261 @item Direct output to stream
3262 @end itemize\n")
3263 (license license:lgpl3+))))
3264
3265 (define-public cl-markup
3266 (sbcl-package->cl-source-package sbcl-cl-markup))
3267
3268 (define-public ecl-cl-markup
3269 (sbcl-package->ecl-package sbcl-cl-markup))
3270
3271 (define-public sbcl-cl-css
3272 (let ((commit "8fe654c8f0cf95b300718101cce4feb517f78e2f"))
3273 (package
3274 (name "sbcl-cl-css")
3275 (version (git-version "0.1" "1" commit))
3276 (source
3277 (origin
3278 (method git-fetch)
3279 (uri (git-reference
3280 (url "https://github.com/inaimathi/cl-css/")
3281 (commit commit)))
3282 (file-name (git-file-name "cl-css" version))
3283 (sha256
3284 (base32
3285 "1lc42zi2sw11fl2589sc19nr5sd2p0wy7wgvgwaggxa5f3ajhsmd"))))
3286 (build-system asdf-build-system/sbcl)
3287 (home-page "https://github.com/inaimathi/cl-css/")
3288 (synopsis "Non-validating, inline CSS generator for Common Lisp")
3289 (description
3290 "This is a dead-simple, non validating, inline CSS generator for Common
3291 Lisp. Its goals are axiomatic syntax, simple implementation to support
3292 portability, and boilerplate reduction in CSS.")
3293 (license license:expat))))
3294
3295 (define-public cl-css
3296 (sbcl-package->cl-source-package sbcl-cl-css))
3297
3298 (define-public ecl-cl-css
3299 (sbcl-package->ecl-package sbcl-cl-css))
3300
3301 (define-public sbcl-portable-threads
3302 (let ((commit "c0e61a1faeb0583c80fd3f20b16cc4c555226920"))
3303 (package
3304 (name "sbcl-portable-threads")
3305 (version (git-version "2.3" "1" commit))
3306 (source
3307 (origin
3308 (method git-fetch)
3309 (uri (git-reference
3310 (url "https://github.com/binghe/portable-threads/")
3311 (commit commit)))
3312 (file-name (git-file-name "portable-threads" version))
3313 (sha256
3314 (base32
3315 "03fmxyarc0xf4kavwkfa0a2spkyfrz6hbgbi9y4q7ny5aykdyfaq"))))
3316 (build-system asdf-build-system/sbcl)
3317 (arguments
3318 `(;; Tests seem broken.
3319 #:tests? #f))
3320 (home-page "https://github.com/binghe/portable-threads")
3321 (synopsis "Portable threads (and scheduled and periodic functions) API for Common Lisp")
3322 (description
3323 "Portable Threads (and Scheduled and Periodic Functions) API for Common
3324 Lisp (from GBBopen project).")
3325 (license license:asl2.0))))
3326
3327 (define-public cl-portable-threads
3328 (sbcl-package->cl-source-package sbcl-portable-threads))
3329
3330 (define-public ecl-portable-threada
3331 (sbcl-package->ecl-package sbcl-portable-threads))
3332
3333 (define sbcl-usocket-boot0
3334 ;; usocket's test rely on usocket-server which depends on usocket itself.
3335 ;; We break this cyclic dependency with -boot0 that packages usocket.
3336 (package
3337 (name "sbcl-usocket-boot0")
3338 (version "0.8.3")
3339 (source
3340 (origin
3341 (method git-fetch)
3342 (uri (git-reference
3343 (url "https://github.com/usocket/usocket/")
3344 (commit (string-append "v" version))))
3345 (file-name (git-file-name "usocket" version))
3346 (sha256
3347 (base32
3348 "0x746wr2324l6bn7skqzgkzcbj5kd0zp2ck0c8rldrw0rzabg826"))))
3349 (build-system asdf-build-system/sbcl)
3350 (inputs
3351 `(("split-sequence" ,sbcl-split-sequence)))
3352 (arguments
3353 `(#:tests? #f
3354 #:asd-system-name "usocket"))
3355 (home-page "https://common-lisp.net/project/usocket/")
3356 (synopsis "Universal socket library for Common Lisp (server side)")
3357 (description
3358 "This library strives to provide a portable TCP/IP and UDP/IP socket
3359 interface for as many Common Lisp implementations as possible, while keeping
3360 the abstraction and portability layer as thin as possible.")
3361 (license license:expat)))
3362
3363 (define-public sbcl-usocket-server
3364 (package
3365 (inherit sbcl-usocket-boot0)
3366 (name "sbcl-usocket-server")
3367 (inputs
3368 `(("bordeaux-threads" ,sbcl-bordeaux-threads)
3369 ("usocket" ,sbcl-usocket-boot0)))
3370 (arguments
3371 '(#:asd-system-name "usocket-server"))
3372 (synopsis "Universal socket library for Common Lisp (server side)")))
3373
3374 (define-public cl-usocket-server
3375 (sbcl-package->cl-source-package sbcl-usocket-server))
3376
3377 (define-public ecl-socket-server
3378 (sbcl-package->ecl-package sbcl-usocket-server))
3379
3380 (define-public sbcl-usocket
3381 (package
3382 (inherit sbcl-usocket-boot0)
3383 (name "sbcl-usocket")
3384 (arguments
3385 ;; FIXME: Tests need network access?
3386 `(#:tests? #f))
3387 (native-inputs
3388 ;; Testing only.
3389 `(("usocket-server" ,sbcl-usocket-server)
3390 ("rt" ,sbcl-rt)))))
3391
3392 (define-public cl-usocket
3393 (sbcl-package->cl-source-package sbcl-usocket))
3394
3395 (define-public ecl-usocket
3396 (sbcl-package->ecl-package sbcl-usocket))
3397
3398 (define-public sbcl-s-xml
3399 (package
3400 (name "sbcl-s-xml")
3401 (version "3")
3402 (source
3403 (origin
3404 (method url-fetch)
3405 (uri "https://common-lisp.net/project/s-xml/s-xml.tgz")
3406 (sha256
3407 (base32
3408 "061qcr0dzshsa38s5ma4ay924cwak2nq9gy59dw6v9p0qb58nzjf"))))
3409 (build-system asdf-build-system/sbcl)
3410 (home-page "https://common-lisp.net/project/s-xml/")
3411 (synopsis "Simple XML parser implemented in Common Lisp")
3412 (description
3413 "S-XML is a simple XML parser implemented in Common Lisp. This XML
3414 parser implementation has the following features:
3415
3416 @itemize
3417 @item It works (handling many common XML usages).
3418 @item It is very small (the core is about 700 lines of code, including
3419 comments and whitespace).
3420 @item It has a core API that is simple, efficient and pure functional, much
3421 like that from SSAX (see also http://ssax.sourceforge.net).
3422 @item It supports different DOM models: an XSML-based one, an LXML-based one
3423 and a classic xml-element struct based one.
3424 @item It is reasonably time and space efficient (internally avoiding garbage
3425 generatation as much as possible).
3426 @item It does support CDATA.
3427 @item It should support the same character sets as your Common Lisp
3428 implementation.
3429 @item It does support XML name spaces.
3430 @end itemize
3431
3432 This XML parser implementation has the following limitations:
3433
3434 @itemize
3435 @item It does not support any special tags (like processing instructions).
3436 @item It is not validating, even skips DTD's all together.
3437 @end itemize\n")
3438 (license license:lgpl3+)))
3439
3440 (define-public cl-s-xml
3441 (sbcl-package->cl-source-package sbcl-s-xml))
3442
3443 (define-public ecl-s-xml
3444 (sbcl-package->ecl-package sbcl-s-xml))
3445
3446 (define-public sbcl-s-xml-rpc
3447 (package
3448 (name "sbcl-s-xml-rpc")
3449 (version "7")
3450 (source
3451 (origin
3452 (method url-fetch)
3453 (uri "https://common-lisp.net/project/s-xml-rpc/s-xml-rpc.tgz")
3454 (sha256
3455 (base32
3456 "02z7k163d51v0pzk8mn1xb6h5s6x64gjqkslhwm3a5x26k2gfs11"))))
3457 (build-system asdf-build-system/sbcl)
3458 (inputs
3459 `(("s-xml" ,sbcl-s-xml)))
3460 (home-page "https://common-lisp.net/project/s-xml-rpc/")
3461 (synopsis "Implementation of XML-RPC in Common Lisp for both client and server")
3462 (description
3463 "S-XML-RPC is an implementation of XML-RPC in Common Lisp for both
3464 client and server.")
3465 (license license:lgpl3+)))
3466
3467 (define-public cl-s-xml-rpc
3468 (sbcl-package->cl-source-package sbcl-s-xml-rpc))
3469
3470 (define-public ecl-s-xml-rpc
3471 (sbcl-package->ecl-package sbcl-s-xml-rpc))
3472
3473 (define-public sbcl-trivial-clipboard
3474 (let ((commit "5af3415d1484e6d69a1b5c178f24680d9fd01796"))
3475 (package
3476 (name "sbcl-trivial-clipboard")
3477 (version (git-version "0.0.0.0" "2" commit))
3478 (source
3479 (origin
3480 (method git-fetch)
3481 (uri (git-reference
3482 (url "https://github.com/snmsts/trivial-clipboard")
3483 (commit commit)))
3484 (file-name (git-file-name "trivial-clipboard" version))
3485 (sha256
3486 (base32
3487 "1gb515z5yq6h5548pb1fwhmb0hhq1ssyb78pvxh4alq799xipxs9"))))
3488 (build-system asdf-build-system/sbcl)
3489 (inputs
3490 `(("xclip" ,xclip)))
3491 (native-inputs
3492 `(("fiveam" ,sbcl-fiveam)))
3493 (arguments
3494 `(#:phases
3495 (modify-phases %standard-phases
3496 (add-after 'unpack 'fix-paths
3497 (lambda* (#:key inputs #:allow-other-keys)
3498 (substitute* "src/text.lisp"
3499 (("\\(executable-find \"xclip\"\\)")
3500 (string-append "(executable-find \""
3501 (assoc-ref inputs "xclip")
3502 "/bin/xclip\")"))))))))
3503 (home-page "https://github.com/snmsts/trivial-clipboard")
3504 (synopsis "Access system clipboard in Common Lisp")
3505 (description
3506 "@command{trivial-clipboard} gives access to the system clipboard.")
3507 (license license:expat))))
3508
3509 (define-public cl-trivial-clipboard
3510 (sbcl-package->cl-source-package sbcl-trivial-clipboard))
3511
3512 (define-public ecl-trivial-clipboard
3513 (sbcl-package->ecl-package sbcl-trivial-clipboard))
3514
3515 (define-public sbcl-trivial-backtrace
3516 (let ((commit "ca81c011b86424a381a7563cea3b924f24e6fbeb")
3517 (revision "1"))
3518 (package
3519 (name "sbcl-trivial-backtrace")
3520 (version (git-version "0.0.0" revision commit))
3521 (source
3522 (origin
3523 (method git-fetch)
3524 (uri (git-reference
3525 (url "https://github.com/gwkkwg/trivial-backtrace.git")
3526 (commit commit)))
3527 (file-name (git-file-name "trivial-backtrace" version))
3528 (sha256
3529 (base32 "10p41p43skj6cimdg8skjy7372s8v2xpkg8djjy0l8rm45i654k1"))))
3530 (build-system asdf-build-system/sbcl)
3531 (inputs
3532 `(("sbcl-lift" ,sbcl-lift)))
3533 (arguments
3534 `(#:phases
3535 (modify-phases %standard-phases
3536 (add-after 'check 'delete-test-results
3537 (lambda* (#:key outputs #:allow-other-keys)
3538 (let ((test-results (string-append (assoc-ref outputs "out")
3539 "/share/common-lisp/"
3540 (%lisp-type) "-source"
3541 "/trivial-backtrace"
3542 "/test-results")))
3543 (when (file-exists? test-results)
3544 (delete-file-recursively test-results)))
3545 #t)))))
3546 (home-page "https://common-lisp.net/project/trivial-backtrace/")
3547 (synopsis "Portable simple API to work with backtraces in Common Lisp")
3548 (description
3549 "On of the many things that didn't quite get into the Common Lisp
3550 standard was how to get a Lisp to output its call stack when something has
3551 gone wrong. As such, each Lisp has developed its own notion of what to
3552 display, how to display it, and what sort of arguments can be used to
3553 customize it. @code{trivial-backtrace} is a simple solution to generating a
3554 backtrace portably.")
3555 (license license:expat))))
3556
3557 (define-public cl-trivial-backtrace
3558 (sbcl-package->cl-source-package sbcl-trivial-backtrace))
3559
3560 (define-public sbcl-rfc2388
3561 (let ((commit "591bcf7e77f2c222c43953a80f8c297751dc0c4e")
3562 (revision "1"))
3563 (package
3564 (name "sbcl-rfc2388")
3565 (version (git-version "0.0.0" revision commit))
3566 (source
3567 (origin
3568 (method git-fetch)
3569 (uri (git-reference
3570 (url "https://github.com/jdz/rfc2388.git")
3571 (commit commit)))
3572 (file-name (git-file-name "rfc2388" version))
3573 (sha256
3574 (base32 "0phh5n3clhl9ji8jaxrajidn22d3f0aq87mlbfkkxlnx2pnw694k"))))
3575 (build-system asdf-build-system/sbcl)
3576 (home-page "https://github.com/jdz/rfc2388/")
3577 (synopsis "An implementation of RFC 2388 in Common Lisp")
3578 (description
3579 "This package contains an implementation of RFC 2388, which is used to
3580 process form data posted with HTTP POST method using enctype
3581 \"multipart/form-data\".")
3582 (license license:bsd-2))))
3583
3584 (define-public cl-rfc2388
3585 (sbcl-package->cl-source-package sbcl-rfc2388))
3586
3587 (define-public sbcl-md5
3588 (package
3589 (name "sbcl-md5")
3590 (version "2.0.4")
3591 (source
3592 (origin
3593 (method url-fetch)
3594 (uri (string-append
3595 "https://github.com/pmai/md5/archive/release-" version ".tar.gz"))
3596 (sha256
3597 (base32 "19yl9n0pjdz5gw4qi711lka97xcd9f81ylg434hk7jwn9f2s6w11"))))
3598 (build-system asdf-build-system/sbcl)
3599 (home-page "https://github.com/pmai/md5")
3600 (synopsis
3601 "Common Lisp implementation of the MD5 Message-Digest Algorithm (RFC 1321)")
3602 (description
3603 "This package implements The MD5 Message-Digest Algorithm, as defined in
3604 RFC 1321 by R. Rivest, published April 1992.")
3605 (license license:public-domain)))
3606
3607 (define-public cl-md5
3608 (sbcl-package->cl-source-package sbcl-md5))
3609
3610 (define-public sbcl-cl+ssl
3611 (let ((commit "701e645081e6533a3f0f0b3ac86389d6f506c4b5")
3612 (revision "1"))
3613 (package
3614 (name "sbcl-cl+ssl")
3615 (version (git-version "0.0.0" revision commit))
3616 (source
3617 (origin
3618 (method git-fetch)
3619 (uri (git-reference
3620 (url "https://github.com/cl-plus-ssl/cl-plus-ssl.git")
3621 (commit commit)))
3622 (file-name (git-file-name "cl+ssl" version))
3623 (sha256
3624 (base32 "0nfl275nwhff3m25872y388cydz14kqb6zbwywa6nj85r9k8bgs0"))))
3625 (build-system asdf-build-system/sbcl)
3626 (arguments
3627 '(#:phases
3628 (modify-phases %standard-phases
3629 (add-after 'unpack 'fix-paths
3630 (lambda* (#:key inputs #:allow-other-keys)
3631 (substitute* "src/reload.lisp"
3632 (("libssl.so" all)
3633 (string-append
3634 (assoc-ref inputs "openssl") "/lib/" all))))))))
3635 (inputs
3636 `(("openssl" ,openssl)
3637 ("sbcl-cffi" ,sbcl-cffi)
3638 ("sbcl-trivial-gray-streams" ,sbcl-trivial-gray-streams)
3639 ("sbcl-flexi-streams" ,sbcl-flexi-streams)
3640 ("sbcl-bordeaux-threads" ,sbcl-bordeaux-threads)
3641 ("sbcl-trivial-garbage" ,sbcl-trivial-garbage)
3642 ("sbcl-alexandria" ,sbcl-alexandria)
3643 ("sbcl-trivial-features" ,sbcl-trivial-features)))
3644 (home-page "https://common-lisp.net/project/cl-plus-ssl/")
3645 (synopsis "Common Lisp bindings to OpenSSL")
3646 (description
3647 "This library is a fork of SSL-CMUCL. The original SSL-CMUCL source
3648 code was written by Eric Marsden and includes contributions by Jochen Schmidt.
3649 Development into CL+SSL was done by David Lichteblau.")
3650 (license license:expat))))
3651
3652 (define-public cl-cl+ssl
3653 (sbcl-package->cl-source-package sbcl-cl+ssl))
3654
3655 (define-public sbcl-kmrcl
3656 (let ((version "1.109.0")
3657 (commit "5260068b2eb735af6796740c2db4955afac21636")
3658 (revision "1"))
3659 (package
3660 (name "sbcl-kmrcl")
3661 (version (git-version version revision commit))
3662 (source
3663 (origin
3664 (method git-fetch)
3665 (uri (git-reference
3666 (url "http://git.kpe.io/kmrcl.git/")
3667 (commit commit)))
3668 (file-name (git-file-name name version))
3669 (sha256
3670 (base32 "1va7xjgzfv674bpsli674i7zj3f7wg5kxic41kz18r6hh4n52dfv"))))
3671 (build-system asdf-build-system/sbcl)
3672 (arguments
3673 ;; Tests fail with: :FORCE and :FORCE-NOT arguments not allowed in a
3674 ;; nested call to ASDF/OPERATE:OPERATE unless identically to toplevel
3675 '(#:tests? #f))
3676 (inputs
3677 `(("sbcl-rt" ,sbcl-rt)))
3678 (home-page "http://files.kpe.io/kmrcl/")
3679 (synopsis "General utilities for Common Lisp programs")
3680 (description
3681 "KMRCL is a collection of utilities used by a number of Kevin
3682 Rosenberg's CL packages.")
3683 (license license:llgpl))))
3684
3685 (define-public cl-kmrcl
3686 (sbcl-package->cl-source-package sbcl-kmrcl))
3687
3688 (define-public sbcl-cl-base64
3689 (package
3690 (name "sbcl-cl-base64")
3691 (version "3.3.4")
3692 (source
3693 (origin
3694 (method url-fetch)
3695 (uri (string-append "http://files.kpe.io/cl-base64/cl-base64-"
3696 version ".tar.gz"))
3697 (sha256
3698 (base32 "0pl4zwn5bf18dm8fh1kn1yshaa6kpmfrjyb33z9mq4raqmj3xpv2"))))
3699 (build-system asdf-build-system/sbcl)
3700 (arguments
3701 ;; Tests fail with: :FORCE and :FORCE-NOT arguments not allowed
3702 ;; in a nested call to ASDF/OPERATE:OPERATE unless identically
3703 ;; to toplevel
3704 '(#:tests? #f))
3705 (inputs
3706 `(("sbcl-ptester" ,sbcl-ptester)
3707 ("sbcl-kmrcl" ,sbcl-kmrcl)))
3708 (home-page "http://files.kpe.io/cl-base64/")
3709 (synopsis
3710 "Common Lisp package to encode and decode base64 with URI support")
3711 (description
3712 "This package provides highly optimized base64 encoding and decoding.
3713 Besides conversion to and from strings, integer conversions are supported.
3714 Encoding with Uniform Resource Identifiers is supported by using a modified
3715 encoding table that uses only URI-compatible characters.")
3716 (license license:bsd-3)))
3717
3718 (define-public cl-base64
3719 (sbcl-package->cl-source-package sbcl-cl-base64))
3720
3721 (define-public sbcl-chunga
3722 (package
3723 (name "sbcl-chunga")
3724 (version "1.1.7")
3725 (source
3726 (origin
3727 (method git-fetch)
3728 (uri (git-reference
3729 (url "https://github.com/edicl/chunga.git")
3730 (commit (string-append "v" version))))
3731 (file-name (git-file-name name version))
3732 (sha256
3733 (base32 "0jzn3nyb3f22gm983rfk99smqs3mhb9ivjmasvhq9qla5cl9pyhd"))))
3734 (build-system asdf-build-system/sbcl)
3735 (inputs
3736 `(("sbcl-trivial-gray-streams" ,sbcl-trivial-gray-streams)))
3737 (home-page "https://edicl.github.io/chunga/")
3738 (synopsis "Portable chunked streams for Common Lisp")
3739 (description
3740 "Chunga implements streams capable of chunked encoding on demand as
3741 defined in RFC 2616.")
3742 (license license:bsd-2)))
3743
3744 (define-public cl-chunga
3745 (sbcl-package->cl-source-package sbcl-chunga))
3746
3747 (define-public sbcl-cl-who
3748 (let ((version "1.1.4")
3749 (commit "2c08caa4bafba720409af9171feeba3f32e86d32")
3750 (revision "1"))
3751 (package
3752 (name "sbcl-cl-who")
3753 (version (git-version version revision commit))
3754 (source
3755 (origin
3756 (method git-fetch)
3757 (uri (git-reference
3758 (url "https://github.com/edicl/cl-who.git")
3759 (commit commit)))
3760 (file-name (git-file-name name version))
3761 (sha256
3762 (base32
3763 "0yjb6sr3yazm288m318kqvj9xk8rm9n1lpimgf65ymqv0i5agxsb"))))
3764 (build-system asdf-build-system/sbcl)
3765 (native-inputs
3766 `(("sbcl-flexi-streams" ,sbcl-flexi-streams)))
3767 (home-page "https://edicl.github.io/cl-who/")
3768 (synopsis "Yet another Lisp markup language")
3769 (description
3770 "There are plenty of Lisp Markup Languages out there - every Lisp
3771 programmer seems to write at least one during his career - and CL-WHO (where
3772 WHO means \"with-html-output\" for want of a better acronym) is probably just
3773 as good or bad as the next one.")
3774 (license license:bsd-2))))
3775
3776 (define-public cl-cl-who
3777 (sbcl-package->cl-source-package sbcl-cl-who))
3778
3779 (define-public sbcl-chipz
3780 (let ((version "0.8")
3781 (commit "75dfbc660a5a28161c57f115adf74c8a926bfc4d")
3782 (revision "1"))
3783 (package
3784 (name "sbcl-chipz")
3785 (version (git-version version revision commit))
3786 (source
3787 (origin
3788 (method git-fetch)
3789 (uri (git-reference
3790 (url "https://github.com/froydnj/chipz.git")
3791 (commit commit)))
3792 (file-name (git-file-name name version))
3793 (sha256
3794 (base32
3795 "0plx4rs39zbs4gjk77h4a2q11zpy75fh9v8hnxrvsf8fnakajhwg"))))
3796 (build-system asdf-build-system/sbcl)
3797 (native-inputs
3798 `(("sbcl-flexi-streams" ,sbcl-flexi-streams)))
3799 (home-page "http://method-combination.net/lisp/chipz/")
3800 (synopsis
3801 "Common Lisp library for decompressing deflate, zlib, gzip, and bzip2
3802 data")
3803 (description
3804 "DEFLATE data, defined in RFC1951, forms the core of popular
3805 compression formats such as zlib (RFC 1950) and gzip (RFC 1952). As such,
3806 Chipz also provides for decompressing data in those formats as well. BZIP2 is
3807 the format used by the popular compression tool bzip2.")
3808 ;; The author describes it as "MIT-like"
3809 (license license:expat))))
3810
3811 (define-public cl-chipz
3812 (sbcl-package->cl-source-package sbcl-chipz))
3813
3814 (define-public sbcl-drakma
3815 (package
3816 (name "sbcl-drakma")
3817 (version "2.0.7")
3818 (source
3819 (origin
3820 (method git-fetch)
3821 (uri (git-reference
3822 (url "https://github.com/edicl/drakma.git")
3823 (commit (string-append "v" version))))
3824 (file-name (git-file-name name version))
3825 (sha256
3826 (base32
3827 "1441idnyif9xzx3ln1p3fg36k2v9h4wasjqrzc8y52j61420qpci"))))
3828 (build-system asdf-build-system/sbcl)
3829 (inputs
3830 `(("sbcl-puri" ,sbcl-puri)
3831 ("sbcl-cl-base64" ,sbcl-cl-base64)
3832 ("sbcl-chunga" ,sbcl-chunga)
3833 ("sbcl-flexi-streams" ,sbcl-flexi-streams)
3834 ("sbcl-cl-ppcre" ,sbcl-cl-ppcre)
3835 ("sbcl-chipz" ,sbcl-chipz)
3836 ("sbcl-usocket" ,sbcl-usocket)
3837 ("sbcl-cl+ssl" ,sbcl-cl+ssl)))
3838 (native-inputs
3839 `(("sbcl-fiveam" ,sbcl-fiveam)))
3840 (home-page "https://edicl.github.io/drakma/")
3841 (synopsis "HTTP client written in Common Lisp")
3842 (description
3843 "Drakma is a full-featured HTTP client implemented in Common Lisp. It
3844 knows how to handle HTTP/1.1 chunking, persistent connections, re-usable
3845 sockets, SSL, continuable uploads, file uploads, cookies, and more.")
3846 (license license:bsd-2)))
3847
3848 (define-public cl-drakma
3849 (sbcl-package->cl-source-package sbcl-drakma))
3850
3851 (define-public ecl-drakma
3852 (sbcl-package->ecl-package sbcl-drakma))
3853
3854 (define-public sbcl-hunchentoot
3855 (package
3856 (name "sbcl-hunchentoot")
3857 (version "1.2.38")
3858 (source
3859 (origin
3860 (method git-fetch)
3861 (uri (git-reference
3862 (url "https://github.com/edicl/hunchentoot.git")
3863 (commit (string-append "v" version))))
3864 (file-name (git-file-name "hunchentoot" version))
3865 (sha256
3866 (base32 "1anpcad7w045m4rsjs1f3xdhjwx5cppq1h0vlb3q7dz81fi3i6yq"))))
3867 (build-system asdf-build-system/sbcl)
3868 (native-inputs
3869 `(("sbcl-cl-who" ,sbcl-cl-who)
3870 ("sbcl-drakma" ,sbcl-drakma)))
3871 (inputs
3872 `(("sbcl-chunga" ,sbcl-chunga)
3873 ("sbcl-cl-base64" ,sbcl-cl-base64)
3874 ("sbcl-cl-fad" ,sbcl-cl-fad)
3875 ("sbcl-cl-ppcre" ,sbcl-cl-ppcre)
3876 ("sbcl-flexi-streams" ,sbcl-flexi-streams)
3877 ("sbcl-cl+ssl" ,sbcl-cl+ssl)
3878 ("sbcl-md5" ,sbcl-md5)
3879 ("sbcl-rfc2388" ,sbcl-rfc2388)
3880 ("sbcl-trivial-backtrace" ,sbcl-trivial-backtrace)
3881 ("sbcl-usocket" ,sbcl-usocket)))
3882 (home-page "https://edicl.github.io/hunchentoot/")
3883 (synopsis "Web server written in Common Lisp")
3884 (description
3885 "Hunchentoot is a web server written in Common Lisp and at the same
3886 time a toolkit for building dynamic websites. As a stand-alone web server,
3887 Hunchentoot is capable of HTTP/1.1 chunking (both directions), persistent
3888 connections (keep-alive), and SSL.")
3889 (license license:bsd-2)))
3890
3891 (define-public cl-hunchentoot
3892 (sbcl-package->cl-source-package sbcl-hunchentoot))
3893
3894 (define-public sbcl-trivial-types
3895 (package
3896 (name "sbcl-trivial-types")
3897 (version "0.0.1")
3898 (source
3899 (origin
3900 (method git-fetch)
3901 (uri (git-reference
3902 (url "https://github.com/m2ym/trivial-types.git")
3903 (commit "ee869f2b7504d8aa9a74403641a5b42b16f47d88")))
3904 (file-name (git-file-name name version))
3905 (sha256
3906 (base32 "1s4cp9bdlbn8447q7w7f1wkgwrbvfzp20mgs307l5pxvdslin341"))))
3907 (build-system asdf-build-system/sbcl)
3908 (home-page "https://github.com/m2ym/trivial-types")
3909 (synopsis "Trivial type definitions for Common Lisp")
3910 (description
3911 "TRIVIAL-TYPES provides missing but important type definitions such as
3912 PROPER-LIST, ASSOCIATION-LIST, PROPERTY-LIST and TUPLE.")
3913 (license license:llgpl)))
3914
3915 (define-public cl-trivial-types
3916 (sbcl-package->cl-source-package sbcl-trivial-types))
3917
3918 (define-public sbcl-cl-syntax
3919 (package
3920 (name "sbcl-cl-syntax")
3921 (version "0.0.3")
3922 (source
3923 (origin
3924 (method git-fetch)
3925 (uri (git-reference
3926 (url "https://github.com/m2ym/cl-syntax.git")
3927 (commit "03f0c329bbd55b8622c37161e6278366525e2ccc")))
3928 (file-name (git-file-name "cl-syntax" version))
3929 (sha256
3930 (base32 "17ran8xp77asagl31xv8w819wafh6whwfc9p6dgx22ca537gyl4y"))))
3931 (build-system asdf-build-system/sbcl)
3932 (arguments
3933 '(#:asd-file "cl-syntax.asd"
3934 #:asd-system-name "cl-syntax"))
3935 (inputs `(("sbcl-trivial-types" ,sbcl-trivial-types)
3936 ("sbcl-named-readtables" ,sbcl-named-readtables)))
3937 (home-page "https://github.com/m2ym/cl-syntax")
3938 (synopsis "Reader Syntax Coventions for Common Lisp and SLIME")
3939 (description
3940 "CL-SYNTAX provides Reader Syntax Coventions for Common Lisp and SLIME.")
3941 (license license:llgpl)))
3942
3943 (define-public cl-syntax
3944 (sbcl-package->cl-source-package sbcl-cl-syntax))
3945
3946 (define-public sbcl-cl-annot
3947 (let ((commit "c99e69c15d935eabc671b483349a406e0da9518d")
3948 (revision "1"))
3949 (package
3950 (name "sbcl-cl-annot")
3951 (version (git-version "0.0.0" revision commit))
3952 (source
3953 (origin
3954 (method git-fetch)
3955 (uri (git-reference
3956 (url "https://github.com/m2ym/cl-annot.git")
3957 (commit commit)))
3958 (file-name (git-file-name name version))
3959 (sha256
3960 (base32 "1wq1gs9jjd5m6iwrv06c2d7i5dvqsfjcljgbspfbc93cg5xahk4n"))))
3961 (build-system asdf-build-system/sbcl)
3962 (arguments
3963 '(#:asd-file "cl-annot.asd"
3964 #:asd-system-name "cl-annot"))
3965 (inputs
3966 `(("sbcl-alexandria" ,sbcl-alexandria)))
3967 (home-page "https://github.com/m2ym/cl-annot")
3968 (synopsis "Python-like Annotation Syntax for Common Lisp.")
3969 (description
3970 "@code{cl-annot} is an general annotation library for Common Lisp.")
3971 (license license:llgpl))))
3972
3973 (define-public cl-annot
3974 (sbcl-package->cl-source-package sbcl-cl-annot))
3975
3976 (define-public sbcl-cl-syntax-annot
3977 (package
3978 (name "sbcl-cl-syntax-annot")
3979 (version "0.0.3")
3980 (source
3981 (origin
3982 (method git-fetch)
3983 (uri (git-reference
3984 (url "https://github.com/m2ym/cl-syntax.git")
3985 (commit "03f0c329bbd55b8622c37161e6278366525e2ccc")))
3986 (file-name (git-file-name name version))
3987 (sha256
3988 (base32 "17ran8xp77asagl31xv8w819wafh6whwfc9p6dgx22ca537gyl4y"))))
3989 (build-system asdf-build-system/sbcl)
3990 (arguments
3991 '(#:asd-file "cl-syntax-annot.asd"
3992 #:asd-system-name "cl-syntax-annot"))
3993 (inputs
3994 `(("sbcl-cl-syntax" ,sbcl-cl-syntax)
3995 ("sbcl-cl-annot" ,sbcl-cl-annot)))
3996 (home-page "https://github.com/m2ym/cl-syntax")
3997 (synopsis "Reader Syntax Coventions for Common Lisp and SLIME")
3998 (description
3999 "CL-SYNTAX provides Reader Syntax Coventions for Common Lisp and
4000 SLIME.")
4001 (license license:llgpl)))
4002
4003 (define-public cl-syntax-annot
4004 (sbcl-package->cl-source-package sbcl-cl-syntax-annot))
4005
4006 (define-public sbcl-cl-utilities
4007 (let ((commit "dce2d2f6387091ea90357a130fa6d13a6776884b")
4008 (revision "1"))
4009 (package
4010 (name "sbcl-cl-utilities")
4011 (version (git-version "0.0.0" revision commit))
4012 (source
4013 (origin
4014 (method url-fetch)
4015 (uri
4016 (string-append
4017 "https://gitlab.common-lisp.net/cl-utilities/cl-utilities/-/"
4018 "archive/" commit "/cl-utilities-" commit ".tar.gz"))
4019 (sha256
4020 (base32 "1r46v730yf96nk2vb24qmagv9x96xvd08abqwhf02ghgydv1a7z2"))))
4021 (build-system asdf-build-system/sbcl)
4022 (arguments
4023 '(#:asd-file "cl-utilities.asd"
4024 #:asd-system-name "cl-utilities"
4025 #:phases
4026 (modify-phases %standard-phases
4027 (add-after 'unpack 'fix-paths
4028 (lambda* (#:key inputs #:allow-other-keys)
4029 (substitute* "rotate-byte.lisp"
4030 (("in-package :cl-utilities)" all)
4031 "in-package :cl-utilities)\n\n#+sbcl\n(require :sb-rotate-byte)")))))))
4032 (home-page "http://common-lisp.net/project/cl-utilities")
4033 (synopsis "A collection of semi-standard utilities")
4034 (description
4035 "On Cliki.net <http://www.cliki.net/Common%20Lisp%20Utilities>, there
4036 is a collection of Common Lisp Utilities, things that everybody writes since
4037 they're not part of the official standard. There are some very useful things
4038 there; the only problems are that they aren't implemented as well as you'd
4039 like (some aren't implemented at all) and they aren't conveniently packaged
4040 and maintained. It takes quite a bit of work to carefully implement utilities
4041 for common use, commented and documented, with error checking placed
4042 everywhere some dumb user might make a mistake.")
4043 (license license:public-domain))))
4044
4045 (define-public cl-utilities
4046 (sbcl-package->cl-source-package sbcl-cl-utilities))
4047
4048 (define-public sbcl-map-set
4049 (let ((commit "7b4b545b68b8")
4050 (revision "1"))
4051 (package
4052 (name "sbcl-map-set")
4053 (version (git-version "0.0.0" revision commit))
4054 (source
4055 (origin
4056 (method url-fetch)
4057 (uri (string-append
4058 "https://bitbucket.org/tarballs_are_good/map-set/get/"
4059 commit ".tar.gz"))
4060 (sha256
4061 (base32 "1sx5j5qdsy5fklspfammwb16kjrhkggdavm922a9q86jm5l0b239"))))
4062 (build-system asdf-build-system/sbcl)
4063 (home-page "https://bitbucket.org/tarballs_are_good/map-set")
4064 (synopsis "Set-like data structure")
4065 (description
4066 "Implementation of a set-like data structure with constant time
4067 addition, removal, and random selection.")
4068 (license license:bsd-3))))
4069
4070 (define-public cl-map-set
4071 (sbcl-package->cl-source-package sbcl-map-set))
4072
4073 (define-public sbcl-quri
4074 (let ((commit "76b75103f21ead092c9f715512fa82441ef61185")
4075 (revision "1"))
4076 (package
4077 (name "sbcl-quri")
4078 (version (git-version "0.1.0" revision commit))
4079 (source
4080 (origin
4081 (method git-fetch)
4082 (uri (git-reference
4083 (url "https://github.com/fukamachi/quri.git")
4084 (commit commit)))
4085 (file-name (git-file-name name version))
4086 (sha256
4087 (base32 "1ccbxsgzdibmzq33mmbmmz9vwl6l03xh6nbpsh1hkdvdcl7q0a60"))))
4088 (build-system asdf-build-system/sbcl)
4089 (arguments
4090 ;; Tests fail with: Component QURI-ASD::QURI-TEST not found,
4091 ;; required by #<SYSTEM "quri">. Why?
4092 '(#:tests? #f))
4093 (native-inputs `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
4094 ("sbcl-prove" ,sbcl-prove)))
4095 (inputs `(("sbcl-babel" ,sbcl-babel)
4096 ("sbcl-split-sequence" ,sbcl-split-sequence)
4097 ("sbcl-cl-utilities" ,sbcl-cl-utilities)
4098 ("sbcl-alexandria" ,sbcl-alexandria)))
4099 (home-page "https://github.com/fukamachi/quri")
4100 (synopsis "Yet another URI library for Common Lisp")
4101 (description
4102 "QURI (pronounced \"Q-ree\") is yet another URI library for Common
4103 Lisp. It is intended to be a replacement of PURI.")
4104 (license license:bsd-3))))
4105
4106 (define-public cl-quri
4107 (sbcl-package->cl-source-package sbcl-quri))
4108
4109 (define-public sbcl-myway
4110 (let ((commit "286230082a11f879c18b93f17ca571c5f676bfb7")
4111 (revision "1"))
4112 (package
4113 (name "sbcl-myway")
4114 (version (git-version "0.1.0" revision commit))
4115 (source
4116 (origin
4117 (method git-fetch)
4118 (uri (git-reference
4119 (url "https://github.com/fukamachi/myway.git")
4120 (commit commit)))
4121 (file-name (git-file-name "myway" version))
4122 (sha256
4123 (base32 "0briia9bk3lbr0frnx39d1qg6i38dm4j6z9w3yga3d40k6df4a90"))))
4124 (build-system asdf-build-system/sbcl)
4125 (arguments
4126 ;; Tests fail with: Component MYWAY-ASD::MYWAY-TEST not found, required
4127 ;; by #<SYSTEM "myway">. Why?
4128 '(#:tests? #f))
4129 (native-inputs
4130 `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
4131 ("sbcl-prove" ,sbcl-prove)))
4132 (inputs
4133 `(("sbcl-cl-ppcre" ,sbcl-cl-ppcre)
4134 ("sbcl-quri" ,sbcl-quri)
4135 ("sbcl-map-set" ,sbcl-map-set)))
4136 (home-page "https://github.com/fukamachi/myway")
4137 (synopsis "Sinatra-compatible URL routing library for Common Lisp")
4138 (description "My Way is a Sinatra-compatible URL routing library.")
4139 (license license:llgpl))))
4140
4141 (define-public cl-myway
4142 (sbcl-package->cl-source-package sbcl-myway))
4143
4144 (define-public sbcl-xsubseq
4145 (let ((commit "5ce430b3da5cda3a73b9cf5cee4df2843034422b")
4146 (revision "1"))
4147 (package
4148 (name "sbcl-xsubseq")
4149 (version (git-version "0.0.1" revision commit))
4150 (source
4151 (origin
4152 (method git-fetch)
4153 (uri (git-reference
4154 (url "https://github.com/fukamachi/xsubseq")
4155 (commit commit)))
4156 (file-name (git-file-name name version))
4157 (sha256
4158 (base32 "1xz79q0p2mclf3sqjiwf6izdpb6xrsr350bv4mlmdlm6rg5r99px"))))
4159 (build-system asdf-build-system/sbcl)
4160 (arguments
4161 ;; Tests fail with: Component XSUBSEQ-ASD::XSUBSEQ-TEST not found,
4162 ;; required by #<SYSTEM "xsubseq">. Why?
4163 '(#:tests? #f))
4164 (native-inputs
4165 `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
4166 ("sbcl-prove" ,sbcl-prove)))
4167 (home-page "https://github.com/fukamachi/xsubseq")
4168 (synopsis "Efficient way to use \"subseq\"s in Common Lisp")
4169 (description
4170 "XSubseq provides functions to be able to handle \"subseq\"s more
4171 effieiently.")
4172 (license license:bsd-2))))
4173
4174 (define-public cl-xsubseq
4175 (sbcl-package->cl-source-package sbcl-xsubseq))
4176
4177 (define-public sbcl-smart-buffer
4178 (let ((commit "09b9a9a0b3abaa37abe9a730f5aac2643dca4e62")
4179 (revision "1"))
4180 (package
4181 (name "sbcl-smart-buffer")
4182 (version (git-version "0.0.1" revision commit))
4183 (source
4184 (origin
4185 (method git-fetch)
4186 (uri (git-reference
4187 (url "https://github.com/fukamachi/smart-buffer")
4188 (commit commit)))
4189 (file-name (git-file-name name version))
4190 (sha256
4191 (base32 "0qz1zzxx0wm5ff7gpgsq550a59p0qj594zfmm2rglj97dahj54l7"))))
4192 (build-system asdf-build-system/sbcl)
4193 (arguments
4194 ;; Tests fail with: Component SMART-BUFFER-ASD::SMART-BUFFER-TEST not
4195 ;; found, required by #<SYSTEM "smart-buffer">. Why?
4196 `(#:tests? #f))
4197 (native-inputs
4198 `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
4199 ("sbcl-prove" ,sbcl-prove)))
4200 (inputs
4201 `(("sbcl-xsubseq" ,sbcl-xsubseq)
4202 ("sbcl-flexi-streams" ,sbcl-flexi-streams)))
4203 (home-page "https://github.com/fukamachi/smart-buffer")
4204 (synopsis "Smart octets buffer")
4205 (description
4206 "Smart-buffer provides an output buffer which changes the destination
4207 depending on content size.")
4208 (license license:bsd-3))))
4209
4210 (define-public cl-smart-buffer
4211 (sbcl-package->cl-source-package sbcl-smart-buffer))
4212
4213 (define-public sbcl-fast-http
4214 (let ((commit "f9e7597191bae380503e20724fd493a24d024935")
4215 (revision "1"))
4216 (package
4217 (name "sbcl-fast-http")
4218 (version (git-version "0.2.0" revision commit))
4219 (source
4220 (origin
4221 (method git-fetch)
4222 (uri (git-reference
4223 (url "https://github.com/fukamachi/fast-http")
4224 (commit commit)))
4225 (file-name (git-file-name name version))
4226 (sha256
4227 (base32 "0qdmwv2zm0sizxdb8nnclgwl0nfjcbjaimbakavikijw7lr9b4jp"))))
4228 (build-system asdf-build-system/sbcl)
4229 (arguments
4230 ;; Tests fail with: Component FAST-HTTP-ASD::FAST-HTTP-TEST not found,
4231 ;; required by #<SYSTEM "fast-http">. Why?
4232 `(#:tests? #f))
4233 (native-inputs
4234 `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
4235 ("sbcl-prove" ,sbcl-prove)))
4236 (inputs
4237 `(("sbcl-alexandria" ,sbcl-alexandria)
4238 ("sbcl-proc-parse" ,sbcl-proc-parse)
4239 ("sbcl-xsubseq" ,sbcl-xsubseq)
4240 ("sbcl-smart-buffer" ,sbcl-smart-buffer)
4241 ("sbcl-cl-utilities" ,sbcl-cl-utilities)))
4242 (home-page "https://github.com/fukamachi/fast-http")
4243 (synopsis "HTTP request/response parser for Common Lisp")
4244 (description
4245 "@code{fast-http} is a HTTP request/response protocol parser for Common
4246 Lisp.")
4247 ;; Author specified the MIT license
4248 (license license:expat))))
4249
4250 (define-public cl-fast-http
4251 (sbcl-package->cl-source-package sbcl-fast-http))
4252
4253 (define-public sbcl-static-vectors
4254 (package
4255 (name "sbcl-static-vectors")
4256 (version "1.8.4")
4257 (source
4258 (origin
4259 (method git-fetch)
4260 (uri (git-reference
4261 (url "https://github.com/sionescu/static-vectors.git")
4262 (commit (string-append "v" version))))
4263 (file-name (git-file-name name version))
4264 (sha256
4265 (base32 "0qvf9z6bhwhm8n45fjwkm7j8dcb58szfvndky65cyn4lpdval7m1"))))
4266 (native-inputs
4267 `(("sbcl-fiveam" ,sbcl-fiveam)))
4268 (inputs
4269 `(("sbcl-cffi-grovel" ,sbcl-cffi-grovel)
4270 ("sbcl-cffi" ,sbcl-cffi)))
4271 (build-system asdf-build-system/sbcl)
4272 (home-page "https://github.com/sionescu/static-vectors")
4273 (synopsis "Allocate SIMPLE-ARRAYs in static memory")
4274 (description
4275 "With @code{static-vectors}, you can create vectors allocated in static
4276 memory.")
4277 (license license:expat)))
4278
4279 (define-public cl-static-vectors
4280 (sbcl-package->cl-source-package sbcl-static-vectors))
4281
4282 (define-public ecl-static-vectors
4283 (sbcl-package->ecl-package sbcl-static-vectors))
4284
4285 (define-public sbcl-marshal
4286 (let ((commit "eff1b15f2b0af2f26f71ad6a4dd5c4beab9299ec")
4287 (revision "1"))
4288 (package
4289 (name "sbcl-marshal")
4290 (version (git-version "1.3.0" revision commit))
4291 (source
4292 (origin
4293 (method git-fetch)
4294 (uri (git-reference
4295 (url "https://github.com/wlbr/cl-marshal.git")
4296 (commit commit)))
4297 (file-name (git-file-name name version))
4298 (sha256
4299 (base32 "08qs6fhk38xpkkjkpcj92mxx0lgy4ygrbbzrmnivdx281syr0gwh"))))
4300 (build-system asdf-build-system/sbcl)
4301 (home-page "https://github.com/wlbr/cl-marshal")
4302 (synopsis "Simple (de)serialization of Lisp datastructures")
4303 (description
4304 "Simple and fast marshalling of Lisp datastructures. Convert any object
4305 into a string representation, put it on a stream an revive it from there.
4306 Only minimal changes required to make your CLOS objects serializable.")
4307 (license license:expat))))
4308
4309 (define-public cl-marshal
4310 (sbcl-package->cl-source-package sbcl-marshal))
4311
4312 (define-public sbcl-checkl
4313 (let ((commit "80328800d047fef9b6e32dfe6bdc98396aee3cc9")
4314 (revision "1"))
4315 (package
4316 (name "sbcl-checkl")
4317 (version (git-version "0.0.0" revision commit))
4318 (source
4319 (origin
4320 (method git-fetch)
4321 (uri (git-reference
4322 (url "https://github.com/rpav/CheckL.git")
4323 (commit commit)))
4324 (file-name (git-file-name name version))
4325 (sha256
4326 (base32 "0bpisihx1gay44xmyr1dmhlwh00j0zzi04rp9fy35i95l2r4xdlx"))))
4327 (build-system asdf-build-system/sbcl)
4328 (arguments
4329 ;; Error while trying to load definition for system checkl-test from
4330 ;; pathname [...]/checkl-test.asd: The function CHECKL:DEFINE-TEST-OP
4331 ;; is undefined.
4332 '(#:tests? #f))
4333 (native-inputs
4334 `(("sbcl-fiveam" ,sbcl-fiveam)))
4335 (inputs
4336 `(("sbcl-marshal" ,sbcl-marshal)))
4337 (home-page "https://github.com/rpav/CheckL/")
4338 (synopsis "Dynamic testing for Common Lisp")
4339 (description
4340 "CheckL lets you write tests dynamically, it checks resulting values
4341 against the last run.")
4342 ;; The author specifies both LLGPL and "BSD", but the "BSD" license
4343 ;; isn't specified anywhere, so I don't know which kind. LLGPL is the
4344 ;; stronger of the two and so I think only listing this should suffice.
4345 (license license:llgpl))))
4346
4347 (define-public cl-checkl
4348 (sbcl-package->cl-source-package sbcl-checkl))
4349
4350 (define-public sbcl-fast-io
4351 (let ((commit "dc3a71db7e9b756a88781ae9c342fe9d4bbab51c")
4352 (revision "1"))
4353 (package
4354 (name "sbcl-fast-io")
4355 (version (git-version "1.0.0" revision commit))
4356 (source
4357 (origin
4358 (method git-fetch)
4359 (uri (git-reference
4360 (url "https://github.com/rpav/fast-io.git")
4361 (commit commit)))
4362 (file-name (git-file-name name version))
4363 (sha256
4364 (base32 "1jsp6xvi26ln6fdy5j5zi05xvan8jsqdhisv552dy6xg6ws8i1yq"))))
4365 (build-system asdf-build-system/sbcl)
4366 (arguments
4367 ;; Error while trying to load definition for system fast-io-test from
4368 ;; pathname [...]/fast-io-test.asd: The function CHECKL:DEFINE-TEST-OP
4369 ;; is undefined.
4370 '(#:tests? #f))
4371 (native-inputs
4372 `(("sbcl-fiveam" ,sbcl-fiveam)
4373 ("sbcl-checkl" ,sbcl-checkl)))
4374 (inputs
4375 `(("sbcl-alexandria" ,sbcl-alexandria)
4376 ("sbcl-trivial-gray-streams" ,sbcl-trivial-gray-streams)
4377 ("sbcl-static-vectors" ,sbcl-static-vectors)))
4378 (home-page "https://github.com/rpav/fast-io")
4379 (synopsis "Fast octet-vector/stream I/O for Common Lisp")
4380 (description
4381 "Fast-io is about improving performance to octet-vectors and octet
4382 streams (though primarily the former, while wrapping the latter).")
4383 ;; Author specifies this as NewBSD which is an alias
4384 (license license:bsd-3))))
4385
4386 (define-public cl-fast-io
4387 (sbcl-package->cl-source-package sbcl-fast-io))
4388
4389 (define-public sbcl-jonathan
4390 (let ((commit "1f448b4f7ac8265e56e1c02b32ce383e65316300")
4391 (revision "1"))
4392 (package
4393 (name "sbcl-jonathan")
4394 (version (git-version "0.1.0" revision commit))
4395 (source
4396 (origin
4397 (method git-fetch)
4398 (uri (git-reference
4399 (url "https://github.com/Rudolph-Miller/jonathan.git")
4400 (commit commit)))
4401 (file-name (git-file-name name version))
4402 (sha256
4403 (base32 "14x4iwz3mbag5jzzzr4sb6ai0m9r4q4kyypbq32jmsk2dx1hi807"))))
4404 (build-system asdf-build-system/sbcl)
4405 (arguments
4406 ;; Tests fail with: Component JONATHAN-ASD::JONATHAN-TEST not found,
4407 ;; required by #<SYSTEM "jonathan">. Why?
4408 `(#:tests? #f))
4409 (native-inputs
4410 `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
4411 ("sbcl-prove" ,sbcl-prove)))
4412 (inputs
4413 `(("sbcl-cl-syntax" ,sbcl-cl-syntax)
4414 ("sbcl-cl-syntax-annot" ,sbcl-cl-syntax-annot)
4415 ("sbcl-fast-io" ,sbcl-fast-io)
4416 ("sbcl-proc-parse" ,sbcl-proc-parse)
4417 ("sbcl-cl-ppcre" ,sbcl-cl-ppcre)))
4418 (home-page "https://rudolph-miller.github.io/jonathan/overview.html")
4419 (synopsis "JSON encoder and decoder")
4420 (description
4421 "High performance JSON encoder and decoder. Currently support: SBCL,
4422 CCL.")
4423 ;; Author specifies the MIT license
4424 (license license:expat))))
4425
4426 (define-public cl-jonathan
4427 (sbcl-package->cl-source-package sbcl-jonathan))
4428
4429 (define-public sbcl-http-body
4430 (let ((commit "dd01dc4f5842e3d29728552e5163acce8386eb73")
4431 (revision "1"))
4432 (package
4433 (name "sbcl-http-body")
4434 (version (git-version "0.1.0" revision commit))
4435 (source
4436 (origin
4437 (method git-fetch)
4438 (uri (git-reference
4439 (url "https://github.com/fukamachi/http-body")
4440 (commit commit)))
4441 (file-name (git-file-name name version))
4442 (sha256
4443 (base32 "1jd06snjvxcprhapgfq8sx0y5lrldkvhf206ix6d5a23dd6zcmr0"))))
4444 (build-system asdf-build-system/sbcl)
4445 (arguments
4446 ;; Tests fail with: Component HTTP-BODY-ASD::HTTP-BODY-TEST not
4447 ;; found, required by #<SYSTEM "http-body">. Why?
4448 `(#:tests? #f))
4449 (native-inputs
4450 `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
4451 ("sbcl-prove" ,sbcl-prove)))
4452 (inputs
4453 `(("sbcl-fast-http" ,sbcl-fast-http)
4454 ("sbcl-jonathan" ,sbcl-jonathan)
4455 ("sbcl-quri" ,sbcl-quri)))
4456 (home-page "https://github.com/fukamachi/http-body")
4457 (synopsis "HTTP POST data parser")
4458 (description
4459 "HTTP-Body parses HTTP POST data and returns POST parameters. It
4460 supports application/x-www-form-urlencoded, application/json, and
4461 multipart/form-data.")
4462 (license license:bsd-2))))
4463
4464 (define-public cl-http-body
4465 (sbcl-package->cl-source-package sbcl-http-body))
4466
4467 (define-public sbcl-circular-streams
4468 (let ((commit "e770bade1919c5e8533dd2078c93c3d3bbeb38df")
4469 (revision "1"))
4470 (package
4471 (name "sbcl-circular-streams")
4472 (version (git-version "0.1.0" revision commit))
4473 (source
4474 (origin
4475 (method git-fetch)
4476 (uri (git-reference
4477 (url "https://github.com/fukamachi/circular-streams")
4478 (commit commit)))
4479 (file-name (git-file-name name version))
4480 (sha256
4481 (base32 "1wpw6d5cciyqcf92f7mvihak52pd5s47kk4qq6f0r2z2as68p5rs"))))
4482 (build-system asdf-build-system/sbcl)
4483 (arguments
4484 ;; The tests depend on cl-test-more which is now prove. Prove
4485 ;; tests aren't working for some reason.
4486 `(#:tests? #f))
4487 (inputs
4488 `(("sbcl-fast-io" ,sbcl-fast-io)
4489 ("sbcl-trivial-gray-streams" ,sbcl-trivial-gray-streams)))
4490 (home-page "https://github.com/fukamachi/circular-streams")
4491 (synopsis "Circularly readable streams for Common Lisp")
4492 (description
4493 "Circular-Streams allows you to read streams circularly by wrapping real
4494 streams. Once you reach end-of-file of a stream, it's file position will be
4495 reset to 0 and you're able to read it again.")
4496 (license license:llgpl))))
4497
4498 (define-public cl-circular-streams
4499 (sbcl-package->cl-source-package sbcl-circular-streams))
4500
4501 (define-public sbcl-lack-request
4502 (let ((commit "abff8efeb0c3a848e6bb0022f2b8b7fa3a1bc88b")
4503 (revision "1"))
4504 (package
4505 (name "sbcl-lack-request")
4506 (version (git-version "0.1.0" revision commit))
4507 (source
4508 (origin
4509 (method git-fetch)
4510 (uri (git-reference
4511 (url "https://github.com/fukamachi/lack.git")
4512 (commit commit)))
4513 (file-name (git-file-name "lack-request" version))
4514 (sha256
4515 (base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85"))))
4516 (build-system asdf-build-system/sbcl)
4517 (arguments
4518 '(#:asd-file "lack-request.asd"
4519 #:asd-system-name "lack-request"
4520 #:test-asd-file "t-lack-request.asd"
4521 ;; XXX: Component :CLACK-TEST not found
4522 #:tests? #f))
4523 (native-inputs
4524 `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
4525 ("sbcl-prove" ,sbcl-prove)))
4526 (inputs
4527 `(("sbcl-quri" ,sbcl-quri)
4528 ("sbcl-http-body" ,sbcl-http-body)
4529 ("sbcl-circular-streams" ,sbcl-circular-streams)))
4530 (home-page "https://github.com/fukamachi/lack")
4531 (synopsis "Lack, the core of Clack")
4532 (description
4533 "Lack is a Common Lisp library which allows web applications to be
4534 constructed of modular components. It was originally a part of Clack, however
4535 it's going to be rewritten as an individual project since Clack v2 with
4536 performance and simplicity in mind.")
4537 (license license:llgpl))))
4538
4539 (define-public cl-lack-request
4540 (sbcl-package->cl-source-package sbcl-lack-request))
4541
4542 (define-public sbcl-local-time
4543 (let ((commit "beac054eef428552b63d4ae7820c32ffef9a3015")
4544 (revision "1"))
4545 (package
4546 (name "sbcl-local-time")
4547 (version (git-version "1.0.6" revision commit))
4548 (source
4549 (origin
4550 (method git-fetch)
4551 (uri (git-reference
4552 (url "https://github.com/dlowe-net/local-time.git")
4553 (commit commit)))
4554 (file-name (git-file-name name version))
4555 (sha256
4556 (base32 "0xhkmgxh41dg2wwlsp0h2l41jp144xn4gpxhh0lna6kh0560w2cc"))))
4557 (build-system asdf-build-system/sbcl)
4558 (arguments
4559 ;; TODO: Component :STEFIL not found, required by #<SYSTEM
4560 ;; "local-time/test">
4561 '(#:tests? #f))
4562 (native-inputs
4563 `(("stefil" ,sbcl-hu.dwim.stefil)))
4564 (inputs
4565 `(("sbcl-cl-fad" ,sbcl-cl-fad)))
4566 (home-page "https://common-lisp.net/project/local-time/")
4567 (synopsis "Time manipulation library for Common Lisp")
4568 (description
4569 "The LOCAL-TIME library is a Common Lisp library for the manipulation of
4570 dates and times. It is based almost entirely upon Erik Naggum's paper \"The
4571 Long Painful History of Time\".")
4572 (license license:expat))))
4573
4574 (define-public cl-local-time
4575 (sbcl-package->cl-source-package sbcl-local-time))
4576
4577 (define-public sbcl-lack-response
4578 (let ((commit "abff8efeb0c3a848e6bb0022f2b8b7fa3a1bc88b")
4579 (revision "1"))
4580 (package
4581 (name "sbcl-lack-response")
4582 (version (git-version "0.1.0" revision commit))
4583 (source
4584 (origin
4585 (method git-fetch)
4586 (uri (git-reference
4587 (url "https://github.com/fukamachi/lack.git")
4588 (commit commit)))
4589 (file-name (git-file-name name version))
4590 (sha256
4591 (base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85"))))
4592 (build-system asdf-build-system/sbcl)
4593 (arguments
4594 '(#:asd-file "lack-response.asd"
4595 #:asd-system-name "lack-response"
4596 ;; XXX: no tests for lack-response.
4597 #:tests? #f))
4598 (native-inputs
4599 `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
4600 ("sbcl-prove" ,sbcl-prove)))
4601 (inputs
4602 `(("sbcl-quri" ,sbcl-quri)
4603 ("sbcl-http-body" ,sbcl-http-body)
4604 ("sbcl-circular-streams" ,sbcl-circular-streams)
4605 ("sbcl-local-time" ,sbcl-local-time)))
4606 (home-page "https://github.com/fukamachi/lack")
4607 (synopsis "Lack, the core of Clack")
4608 (description
4609 "Lack is a Common Lisp library which allows web applications to be
4610 constructed of modular components. It was originally a part of Clack, however
4611 it's going to be rewritten as an individual project since Clack v2 with
4612 performance and simplicity in mind.")
4613 (license license:llgpl))))
4614
4615 (define-public cl-lack-response
4616 (sbcl-package->cl-source-package sbcl-lack-response))
4617
4618 (define-public sbcl-lack-component
4619 (let ((commit "abff8efeb0c3a848e6bb0022f2b8b7fa3a1bc88b")
4620 (revision "1"))
4621 (package
4622 (name "sbcl-lack-component")
4623 (version (git-version "0.0.0" revision commit))
4624 (source
4625 (origin
4626 (method git-fetch)
4627 (uri (git-reference
4628 (url "https://github.com/fukamachi/lack.git")
4629 (commit commit)))
4630 (file-name (git-file-name "lack-component" version))
4631 (sha256
4632 (base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85"))))
4633 (build-system asdf-build-system/sbcl)
4634 (arguments
4635 '(#:asd-file "lack-component.asd"
4636 #:asd-system-name "lack-component"
4637 #:test-asd-file "t-lack-component.asd"
4638 ;; XXX: Component :LACK-TEST not found
4639 #:tests? #f))
4640 (native-inputs
4641 `(("prove-asdf" ,sbcl-prove-asdf)))
4642 (home-page "https://github.com/fukamachi/lack")
4643 (synopsis "Lack, the core of Clack")
4644 (description
4645 "Lack is a Common Lisp library which allows web applications to be
4646 constructed of modular components. It was originally a part of Clack, however
4647 it's going to be rewritten as an individual project since Clack v2 with
4648 performance and simplicity in mind.")
4649 (license license:llgpl))))
4650
4651 (define-public cl-lack-component
4652 (sbcl-package->cl-source-package sbcl-lack-component))
4653
4654 (define-public sbcl-lack-util
4655 (let ((commit "abff8efeb0c3a848e6bb0022f2b8b7fa3a1bc88b")
4656 (revision "1"))
4657 (package
4658 (name "sbcl-lack-util")
4659 (version (git-version "0.1.0" revision commit))
4660 (source
4661 (origin
4662 (method git-fetch)
4663 (uri (git-reference
4664 (url "https://github.com/fukamachi/lack.git")
4665 (commit commit)))
4666 (file-name (git-file-name "lack-util" version))
4667 (sha256
4668 (base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85"))))
4669 (build-system asdf-build-system/sbcl)
4670 (arguments
4671 '(#:asd-file "lack-util.asd"
4672 #:asd-system-name "lack-util"
4673 #:test-asd-file "t-lack-util.asd"
4674 ;; XXX: Component :LACK-TEST not found
4675 #:tests? #f))
4676 (native-inputs
4677 `(("prove-asdf" ,sbcl-prove-asdf)))
4678 (inputs
4679 `(("sbcl-ironclad" ,sbcl-ironclad)))
4680 (home-page "https://github.com/fukamachi/lack")
4681 (synopsis "Lack, the core of Clack")
4682 (description
4683 "Lack is a Common Lisp library which allows web applications to be
4684 constructed of modular components. It was originally a part of Clack, however
4685 it's going to be rewritten as an individual project since Clack v2 with
4686 performance and simplicity in mind.")
4687 (license license:llgpl))))
4688
4689 (define-public cl-lack-util
4690 (sbcl-package->cl-source-package sbcl-lack-util))
4691
4692 (define-public sbcl-lack-middleware-backtrace
4693 (let ((commit "abff8efeb0c3a848e6bb0022f2b8b7fa3a1bc88b")
4694 (revision "1"))
4695 (package
4696 (name "sbcl-lack-middleware-backtrace")
4697 (version (git-version "0.1.0" revision commit))
4698 (source
4699 (origin
4700 (method git-fetch)
4701 (uri (git-reference
4702 (url "https://github.com/fukamachi/lack.git")
4703 (commit commit)))
4704 (file-name (git-file-name "lack-middleware-backtrace" version))
4705 (sha256
4706 (base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85"))))
4707 (build-system asdf-build-system/sbcl)
4708 (arguments
4709 '(#:asd-file "lack-middleware-backtrace.asd"
4710 #:asd-system-name "lack-middleware-backtrace"
4711 #:test-asd-file "t-lack-middleware-backtrace.asd"
4712 ;; XXX: Component :LACK not found
4713 #:tests? #f))
4714 (native-inputs
4715 `(("prove-asdf" ,sbcl-prove-asdf)))
4716 (home-page "https://github.com/fukamachi/lack")
4717 (synopsis "Lack, the core of Clack")
4718 (description
4719 "Lack is a Common Lisp library which allows web applications to be
4720 constructed of modular components. It was originally a part of Clack, however
4721 it's going to be rewritten as an individual project since Clack v2 with
4722 performance and simplicity in mind.")
4723 (license license:llgpl))))
4724
4725 (define-public cl-lack-middleware-backtrace
4726 (sbcl-package->cl-source-package sbcl-lack-middleware-backtrace))
4727
4728 (define-public sbcl-trivial-mimes
4729 (let ((commit "303f8ac0aa6ca0bc139aa3c34822e623c3723fab")
4730 (revision "1"))
4731 (package
4732 (name "sbcl-trivial-mimes")
4733 (version (git-version "1.1.0" revision commit))
4734 (source
4735 (origin
4736 (method git-fetch)
4737 (uri (git-reference
4738 (url "https://github.com/Shinmera/trivial-mimes.git")
4739 (commit commit)))
4740 (file-name (git-file-name name version))
4741 (sha256
4742 (base32 "17jxgl47r695bvsb7wi3n2ws5rp1zzgvw0zii8cy5ggw4b4ayv6m"))))
4743 (build-system asdf-build-system/sbcl)
4744 (arguments
4745 '(#:phases
4746 (modify-phases %standard-phases
4747 (add-after
4748 'unpack 'fix-paths
4749 (lambda* (#:key inputs #:allow-other-keys)
4750 (let ((anchor "#p\"/etc/mime.types\""))
4751 (substitute* "mime-types.lisp"
4752 ((anchor all)
4753 (string-append
4754 anchor "\n"
4755 "(asdf:system-relative-pathname :trivial-mimes "
4756 "\"../../share/common-lisp/" (%lisp-type)
4757 "-source/trivial-mimes/mime.types\")")))))))))
4758 (native-inputs
4759 `(("stefil" ,sbcl-hu.dwim.stefil)))
4760 (inputs
4761 `(("sbcl-cl-fad" ,sbcl-cl-fad)))
4762 (home-page "https://shinmera.github.io/trivial-mimes/")
4763 (synopsis "Tiny Common Lisp library to detect mime types in files")
4764 (description
4765 "This is a teensy library that provides some functions to determine the
4766 mime-type of a file.")
4767 (license license:artistic2.0))))
4768
4769 (define-public cl-trivial-mimes
4770 (sbcl-package->cl-source-package sbcl-trivial-mimes))
4771
4772 (define-public ecl-trivial-mimes
4773 (sbcl-package->ecl-package sbcl-trivial-mimes))
4774
4775 (define-public sbcl-lack-middleware-static
4776 (let ((commit "abff8efeb0c3a848e6bb0022f2b8b7fa3a1bc88b")
4777 (revision "1"))
4778 (package
4779 (name "sbcl-lack-middleware-static")
4780 (version (git-version "0.1.0" revision commit))
4781 (source
4782 (origin
4783 (method git-fetch)
4784 (uri (git-reference
4785 (url "https://github.com/fukamachi/lack.git")
4786 (commit commit)))
4787 (file-name (git-file-name "lack-middleware-static" version))
4788 (sha256
4789 (base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85"))))
4790 (build-system asdf-build-system/sbcl)
4791 (arguments
4792 '(#:asd-file "lack-middleware-static.asd"
4793 #:asd-system-name "lack-middleware-static"
4794 #:test-asd-file "t-lack-middleware-static.asd"
4795 ;; XXX: Component :LACK not found
4796 #:tests? #f))
4797 (native-inputs
4798 `(("prove-asdf" ,sbcl-prove-asdf)))
4799 (inputs
4800 `(("sbcl-ironclad" ,sbcl-ironclad)
4801 ("sbcl-trivial-mimes" ,sbcl-trivial-mimes)
4802 ("sbcl-local-time" ,sbcl-local-time)))
4803 (home-page "https://github.com/fukamachi/lack")
4804 (synopsis "Lack, the core of Clack")
4805 (description
4806 "Lack is a Common Lisp library which allows web applications to be
4807 constructed of modular components. It was originally a part of Clack, however
4808 it's going to be rewritten as an individual project since Clack v2 with
4809 performance and simplicity in mind.")
4810 (license license:llgpl))))
4811
4812 (define-public cl-lack-middleware-static
4813 (sbcl-package->cl-source-package sbcl-lack-middleware-static))
4814
4815 (define-public sbcl-lack
4816 (let ((commit "abff8efeb0c3a848e6bb0022f2b8b7fa3a1bc88b")
4817 (revision "1"))
4818 (package
4819 (name "sbcl-lack")
4820 (version (git-version "0.1.0" revision commit))
4821 (source
4822 (origin
4823 (method git-fetch)
4824 (uri (git-reference
4825 (url "https://github.com/fukamachi/lack.git")
4826 (commit commit)))
4827 (file-name (git-file-name "lack" version))
4828 (sha256
4829 (base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85"))))
4830 (build-system asdf-build-system/sbcl)
4831 (arguments
4832 '(#:test-asd-file "t-lack.asd"
4833 ;; XXX: Component :CLACK not found
4834 #:tests? #f))
4835 (native-inputs
4836 `(("prove-asdf" ,sbcl-prove-asdf)))
4837 (inputs
4838 `(("sbcl-lack-component" ,sbcl-lack-component)
4839 ("sbcl-lack-util" ,sbcl-lack-util)))
4840 (home-page "https://github.com/fukamachi/lack")
4841 (synopsis "Lack, the core of Clack")
4842 (description
4843 "Lack is a Common Lisp library which allows web applications to be
4844 constructed of modular components. It was originally a part of Clack, however
4845 it's going to be rewritten as an individual project since Clack v2 with
4846 performance and simplicity in mind.")
4847 (license license:llgpl))))
4848
4849 (define-public cl-lack
4850 (sbcl-package->cl-source-package sbcl-lack))
4851
4852 (define-public sbcl-ningle
4853 (let ((commit "50bd4f09b5a03a7249bd4d78265d6451563b25ad")
4854 (revision "1"))
4855 (package
4856 (name "sbcl-ningle")
4857 (version (git-version "0.3.0" revision commit))
4858 (source
4859 (origin
4860 (method git-fetch)
4861 (uri (git-reference
4862 (url "https://github.com/fukamachi/ningle.git")
4863 (commit commit)))
4864 (file-name (git-file-name name version))
4865 (sha256
4866 (base32 "1bsl8cnxhacb8p92z9n89vhk1ikmij5zavk0m2zvmj7iqm79jzgw"))))
4867 (build-system asdf-build-system/sbcl)
4868 (arguments
4869 ;; TODO: pull in clack-test
4870 '(#:tests? #f
4871 #:phases
4872 (modify-phases %standard-phases
4873 (delete 'cleanup-files)
4874 (delete 'cleanup)
4875 (add-before 'cleanup 'combine-fasls
4876 (lambda* (#:key outputs #:allow-other-keys)
4877 (let* ((out (assoc-ref outputs "out"))
4878 (lib (string-append out "/lib/sbcl"))
4879 (ningle-path (string-append lib "/ningle"))
4880 (fasl-files (find-files out "\\.fasl$")))
4881 (mkdir-p ningle-path)
4882 (let ((fasl-path (lambda (name)
4883 (string-append ningle-path
4884 "/"
4885 (basename name)
4886 "--system.fasl"))))
4887 (for-each (lambda (file)
4888 (rename-file file
4889 (fasl-path
4890 (basename file ".fasl"))))
4891 fasl-files))
4892 fasl-files)
4893 #t)))))
4894 (native-inputs
4895 `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
4896 ("sbcl-prove" ,sbcl-prove)))
4897 (inputs
4898 `(("sbcl-cl-syntax" ,sbcl-cl-syntax)
4899 ("sbcl-cl-syntax-annot" ,sbcl-cl-syntax-annot)
4900 ("sbcl-myway" ,sbcl-myway)
4901 ("sbcl-lack-request" ,sbcl-lack-request)
4902 ("sbcl-lack-response" ,sbcl-lack-response)
4903 ("sbcl-lack-component" ,sbcl-lack-component)
4904 ("sbcl-alexandria" ,sbcl-alexandria)
4905 ("sbcl-babel" ,sbcl-babel)))
4906 (home-page "https://8arrow.org/ningle/")
4907 (synopsis "Super micro framework for Common Lisp")
4908 (description
4909 "Ningle is a lightweight web application framework for Common Lisp.")
4910 (license license:llgpl))))
4911
4912 (define-public cl-ningle
4913 (sbcl-package->cl-source-package sbcl-ningle))
4914
4915 (define-public sbcl-clack
4916 (let ((commit "e3e032843bb1220ab96263c411aa7f2feb4746e0")
4917 (revision "1"))
4918 (package
4919 (name "sbcl-clack")
4920 (version (git-version "2.0.0" revision commit))
4921 (source
4922 (origin
4923 (method git-fetch)
4924 (uri (git-reference
4925 (url "https://github.com/fukamachi/clack.git")
4926 (commit commit)))
4927 (file-name (git-file-name name version))
4928 (sha256
4929 (base32 "1ymzs6qyrwhlj6cgqsnpyn6g5cbp7a3s1vgxwna20y2q7y4iacy0"))))
4930 (build-system asdf-build-system/sbcl)
4931 (inputs
4932 `(("sbcl-lack" ,sbcl-lack)
4933 ("sbcl-lack-middleware-backtrace" ,sbcl-lack-middleware-backtrace)
4934 ("sbcl-bordeaux-threads" ,sbcl-bordeaux-threads)))
4935 (home-page "https://github.com/fukamachi/clack")
4936 (synopsis "Web Application Environment for Common Lisp")
4937 (description
4938 "Clack is a web application environment for Common Lisp inspired by
4939 Python's WSGI and Ruby's Rack.")
4940 (license license:llgpl))))
4941
4942 (define-public cl-clack
4943 (sbcl-package->cl-source-package sbcl-clack))
4944
4945 (define-public sbcl-log4cl
4946 (let ((commit "611e094458504b938d49de904eab141285328c7c")
4947 (revision "1"))
4948 (package
4949 (name "sbcl-log4cl")
4950 (build-system asdf-build-system/sbcl)
4951 (version "1.1.2")
4952 (source
4953 (origin
4954 (method git-fetch)
4955 (uri (git-reference
4956 (url "https://github.com/sharplispers/log4cl")
4957 (commit commit)))
4958 (file-name (git-file-name name version))
4959 (sha256
4960 (base32
4961 "08jly0s0g26b56hhpfizxsb4j0yvbh946sd205gr42dkzv8l7dsc"))))
4962 ;; FIXME: tests require stefil, sbcl-hu.dwim.stefil wont work
4963 (arguments
4964 `(#:tests? #f))
4965 (inputs `(("bordeaux-threads" ,sbcl-bordeaux-threads)))
4966 (synopsis "Common Lisp logging framework, modeled after Log4J")
4967 (home-page "https://github.com/7max/log4cl")
4968 (description "This is a Common Lisp logging framework that can log at
4969 various levels and mix text with expressions.")
4970 (license license:asl2.0))))
4971
4972 (define-public cl-log4cl
4973 (sbcl-package->cl-source-package sbcl-log4cl))
4974
4975 (define-public ecl-log4cl
4976 (sbcl-package->ecl-package sbcl-log4cl))
4977
4978 (define-public sbcl-find-port
4979 (let ((commit "00c96a25af93a0f8681d34ec548861f2d7485478")
4980 (revision "1"))
4981 (package
4982 (name "sbcl-find-port")
4983 (build-system asdf-build-system/sbcl)
4984 (version "0.1")
4985 (home-page "https://github.com/eudoxia0/find-port")
4986 (source
4987 (origin
4988 (method git-fetch)
4989 (uri (git-reference
4990 (url home-page)
4991 (commit commit)))
4992 (file-name (git-file-name name version))
4993 (sha256
4994 (base32
4995 "0d6dzbb45jh0rx90wgs6v020k2xa87mvzas3mvfzvivjvqqlpryq"))))
4996 (native-inputs
4997 `(("fiveam" ,sbcl-fiveam)))
4998 (inputs
4999 `(("sbcl-usocket" ,sbcl-usocket)))
5000 (synopsis "Find open ports programmatically in Common Lisp")
5001 (description "This is a small Common Lisp library that finds an open
5002 port within a range.")
5003 (license license:expat))))
5004
5005 (define-public cl-find-port
5006 (sbcl-package->cl-source-package sbcl-find-port))
5007
5008 (define-public ecl-find-port
5009 (sbcl-package->ecl-package sbcl-find-port))
5010
5011 (define-public sbcl-clunit
5012 (let ((commit "6f6d72873f0e1207f037470105969384f8380628")
5013 (revision "1"))
5014 (package
5015 (name "sbcl-clunit")
5016 (version (git-version "0.2.3" revision commit))
5017 (source
5018 (origin
5019 (method git-fetch)
5020 (uri (git-reference
5021 (url "https://github.com/tgutu/clunit.git")
5022 (commit commit)))
5023 (file-name (git-file-name name version))
5024 (sha256
5025 (base32
5026 "1idf2xnqzlhi8rbrqmzpmb3i1l6pbdzhhajkmhwbp6qjkmxa4h85"))))
5027 (build-system asdf-build-system/sbcl)
5028 (synopsis "CLUnit is a Common Lisp unit testing framework")
5029 (description
5030 "CLUnit is a Common Lisp unit testing framework. It is designed
5031 to be easy to use so that you can quickly start testing. CLUnit
5032 provides a rich set of features aimed at improving your unit testing
5033 experience.")
5034 (home-page "https://tgutu.github.io/clunit/")
5035 ;; MIT License
5036 (license license:expat))))
5037
5038 (define-public cl-clunit
5039 (sbcl-package->cl-source-package sbcl-clunit))
5040
5041 (define-public ecl-clunit
5042 (sbcl-package->ecl-package sbcl-clunit))
5043
5044 (define-public sbcl-py4cl
5045 (let ((commit "4c8a2b0814fd311f978964f825ce012290f60136")
5046 (revision "1"))
5047 (package
5048 (name "sbcl-py4cl")
5049 (version (git-version "0.0.0" revision commit))
5050 (source
5051 (origin
5052 (method git-fetch)
5053 (uri (git-reference
5054 (url "https://github.com/bendudson/py4cl.git")
5055 (commit commit)))
5056 (file-name (git-file-name name version))
5057 (sha256
5058 (base32
5059 "15mk7qdqjkj56gdnbyrdyz6r7m1h26ldvn6ch96pmvg5vmr1m45r"))
5060 (modules '((guix build utils)))))
5061 (build-system asdf-build-system/sbcl)
5062 (native-inputs
5063 `(("sbcl-clunit" ,sbcl-clunit)))
5064 (inputs
5065 `(("sbcl-trivial-garbage" ,sbcl-trivial-garbage)))
5066 (propagated-inputs
5067 ;; This package doesn't do anything without python available
5068 `(("python" ,python)
5069 ;; For multi-dimensional array support
5070 ("python-numpy" ,python-numpy)))
5071 (arguments
5072 '(#:phases
5073 (modify-phases %standard-phases
5074 (add-after 'unpack 'replace-*base-directory*-var
5075 (lambda* (#:key outputs #:allow-other-keys)
5076 ;; In the ASD, the author makes an attempt to
5077 ;; programatically determine the location of the
5078 ;; source-code so lisp can call into "py4cl.py". We can
5079 ;; hard-code this since we know where this file will
5080 ;; reside.
5081 (substitute* "src/callpython.lisp"
5082 (("py4cl/config:\\*base-directory\\*")
5083 (string-append
5084 "\""
5085 (assoc-ref outputs "out")
5086 "/share/common-lisp/sbcl-source/py4cl/"
5087 "\""))))))))
5088 (synopsis "Call python from Common Lisp")
5089 (description
5090 "Py4CL is a bridge between Common Lisp and Python, which enables Common
5091 Lisp to interact with Python code. It uses streams to communicate with a
5092 separate python process, the approach taken by cl4py. This is different to
5093 the CFFI approach used by burgled-batteries, but has the same goal.")
5094 (home-page "https://github.com/bendudson/py4cl")
5095 ;; MIT License
5096 (license license:expat))))
5097
5098 (define-public cl-py4cl
5099 (sbcl-package->cl-source-package sbcl-py4cl))
5100
5101 (define-public ecl-py4cl
5102 (sbcl-package->ecl-package sbcl-py4cl))
5103
5104 (define-public sbcl-parse-declarations
5105 (let ((commit "549aebbfb9403a7fe948654126b9c814f443f4f2")
5106 (revision "1"))
5107 (package
5108 (name "sbcl-parse-declarations")
5109 (version (git-version "1.0.0" revision commit))
5110 (source
5111 (origin
5112 (method git-fetch)
5113 (uri (git-reference
5114 (url (string-append
5115 "https://gitlab.common-lisp.net/parse-declarations/"
5116 "parse-declarations.git"))
5117 (commit commit)))
5118 (file-name (git-file-name name version))
5119 (sha256
5120 (base32 "03g5qks4c59nmxa48pbslxkfh77h8hn8566jddp6m9pl15dzzpxd"))))
5121 (build-system asdf-build-system/sbcl)
5122 (arguments
5123 `(#:asd-file "parse-declarations-1.0.asd"
5124 #:asd-system-name "parse-declarations-1.0"))
5125 (home-page "https://common-lisp.net/project/parse-declarations/")
5126 (synopsis "Parse, filter, and build declarations")
5127 (description
5128 "Parse-Declarations is a Common Lisp library to help writing
5129 macros which establish bindings. To be semantically correct, such
5130 macros must take user declarations into account, as these may affect
5131 the bindings they establish. Yet the ANSI standard of Common Lisp does
5132 not provide any operators to work with declarations in a convenient,
5133 high-level way. This library provides such operators.")
5134 ;; MIT License
5135 (license license:expat))))
5136
5137 (define-public cl-parse-declarations
5138 (sbcl-package->cl-source-package sbcl-parse-declarations))
5139
5140 (define-public ecl-parse-declarations
5141 (sbcl-package->ecl-package sbcl-parse-declarations))
5142
5143 (define-public sbcl-cl-quickcheck
5144 (let ((commit "807b2792a30c883a2fbecea8e7db355b50ba662f")
5145 (revision "1"))
5146 (package
5147 (name "sbcl-cl-quickcheck")
5148 (version (git-version "0.0.4" revision commit))
5149 (source
5150 (origin
5151 (method git-fetch)
5152 (uri (git-reference
5153 (url "https://github.com/mcandre/cl-quickcheck.git")
5154 (commit commit)))
5155 (file-name (git-file-name name version))
5156 (sha256
5157 (base32
5158 "165lhypq5xkcys6hvzb3jq7ywnmqvzaflda29qk2cbs3ggas4767"))))
5159 (build-system asdf-build-system/sbcl)
5160 (synopsis
5161 "Common Lisp port of the QuickCheck unit test framework")
5162 (description
5163 "Common Lisp port of the QuickCheck unit test framework")
5164 (home-page "https://github.com/mcandre/cl-quickcheck")
5165 ;; MIT
5166 (license license:expat))))
5167
5168 (define-public cl-cl-quickcheck
5169 (sbcl-package->cl-source-package sbcl-cl-quickcheck))
5170
5171 (define-public ecl-cl-quickcheck
5172 (sbcl-package->ecl-package sbcl-cl-quickcheck))
5173
5174 (define-public sbcl-burgled-batteries3
5175 (let ((commit "f65f454d13bb6c40e17e9ec62e41eb5069e09760")
5176 (revision "2"))
5177 (package
5178 (name "sbcl-burgled-batteries3")
5179 (version (git-version "0.0.0" revision commit))
5180 (source
5181 (origin
5182 (method git-fetch)
5183 (uri (git-reference
5184 (url "https://github.com/snmsts/burgled-batteries3.git")
5185 (commit commit)))
5186 (file-name (git-file-name name version))
5187 (sha256
5188 (base32
5189 "1nzn7jawrfajyzwfnzrg2cmn9xxadcqh4szbpg0jggkhdkdzz4wa"))))
5190 (build-system asdf-build-system/sbcl)
5191 (arguments
5192 `(#:tests? #f
5193 #:modules (((guix build python-build-system) #:select (python-version))
5194 ,@%asdf-build-system-modules)
5195 #:imported-modules ((guix build python-build-system)
5196 ,@%asdf-build-system-modules)
5197 #:phases
5198 (modify-phases (@ (guix build asdf-build-system) %standard-phases)
5199 (add-after 'unpack 'set-*cpython-include-dir*-var
5200 (lambda* (#:key inputs #:allow-other-keys)
5201 (let ((python (assoc-ref inputs "python")))
5202 (setenv "BB_PYTHON3_INCLUDE_DIR"
5203 (string-append python "/include/python"
5204 (python-version python)
5205 "m"))
5206 (setenv "BB_PYTHON3_DYLIB"
5207 (string-append python "/lib/libpython3.so"))
5208 #t))))))
5209 (native-inputs
5210 `(("sbcl-cl-fad" ,sbcl-cl-fad)
5211 ("sbcl-lift" ,sbcl-lift)
5212 ("sbcl-cl-quickcheck" ,sbcl-cl-quickcheck)))
5213 (inputs
5214 `(("python" ,python)
5215 ("sbcl-cffi" ,sbcl-cffi)
5216 ("sbcl-cffi-grovel" ,sbcl-cffi-grovel)
5217 ("sbcl-alexandria" , sbcl-alexandria)
5218 ("sbcl-parse-declarations-1.0" ,sbcl-parse-declarations)
5219 ("sbcl-trivial-garbage" ,sbcl-trivial-garbage)))
5220 (synopsis "Bridge between Python and Lisp (FFI bindings, etc.)")
5221 (description
5222 "This package provides a shim between Python3 (specifically, the
5223 CPython implementation of Python) and Common Lisp.")
5224 (home-page "https://github.com/snmsts/burgled-batteries3")
5225 (license license:expat))))
5226
5227 (define-public cl-burgled-batteries3
5228 (sbcl-package->cl-source-package sbcl-burgled-batteries3))
5229
5230 (define-public ecl-burgled-batteries3
5231 (sbcl-package->ecl-package sbcl-burgled-batteries3))
5232
5233 (define-public sbcl-metabang-bind
5234 (let ((commit "c93b7f7e1c18c954c2283efd6a7fdab36746ab5e")
5235 (revision "1"))
5236 (package
5237 (name "sbcl-metabang-bind")
5238 (version (git-version "0.8.0" revision commit))
5239 (source
5240 (origin
5241 (method git-fetch)
5242 (uri (git-reference
5243 (url "https://github.com/gwkkwg/metabang-bind.git")
5244 (commit commit)))
5245 (file-name (git-file-name name version))
5246 (sha256
5247 (base32
5248 "0hd0kr91795v77akpbcyqiss9p0p7ypa9dznrllincnmgvsxlmf0"))))
5249 (build-system asdf-build-system/sbcl)
5250 (native-inputs
5251 `(("sbcl-lift" ,sbcl-lift)))
5252 (synopsis "Macro that generalizes @code{multiple-value-bind} etc.")
5253 (description
5254 "Bind extends the idea of of let and destructing to provide a uniform
5255 syntax for all your accessor needs. It combines @code{let},
5256 @code{destructuring-bind}, @code{with-slots}, @code{with-accessors}, structure
5257 editing, property or association-lists, and @code{multiple-value-bind} and a
5258 whole lot more into a single form.")
5259 (home-page "https://common-lisp.net/project/metabang-bind/")
5260 ;; MIT License
5261 (license license:expat))))
5262
5263 (define-public cl-metabang-bind
5264 (sbcl-package->cl-source-package sbcl-metabang-bind))
5265
5266 (define-public ecl-metabang-bind
5267 (sbcl-package->ecl-package sbcl-metabang-bind))
5268
5269 (define-public sbcl-fare-utils
5270 (let ((commit "66e9c6f1499140bc00ccc22febf2aa528cbb5724")
5271 (revision "1"))
5272 (package
5273 (name "sbcl-fare-utils")
5274 (version (git-version "1.0.0.5" revision commit))
5275 (source
5276 (origin
5277 (method git-fetch)
5278 (uri
5279 (git-reference
5280 (url
5281 "https://gitlab.common-lisp.net/frideau/fare-utils.git")
5282 (commit commit)))
5283 (file-name (git-file-name name version))
5284 (sha256
5285 (base32
5286 "01wsr1aap3jdzhn4hrqjbhsjx6qci9dbd3gh4gayv1p49rbg8aqr"))))
5287 (build-system asdf-build-system/sbcl)
5288 (arguments
5289 `(#:test-asd-file "test/fare-utils-test.asd"))
5290 (native-inputs
5291 `(("sbcl-hu.dwim.stefil" ,sbcl-hu.dwim.stefil)))
5292 (synopsis "Collection of utilities and data structures")
5293 (description
5294 "fare-utils is a small collection of utilities. It contains a lot of
5295 basic everyday functions and macros.")
5296 (home-page "https://gitlab.common-lisp.net/frideau/fare-utils")
5297 ;; MIT License
5298 (license license:expat))))
5299
5300 (define-public cl-fare-utils
5301 (sbcl-package->cl-source-package sbcl-fare-utils))
5302
5303 (define-public ecl-fare-utils
5304 (sbcl-package->ecl-package sbcl-fare-utils))
5305
5306 (define-public sbcl-trivial-utf-8
5307 (let ((commit "4d427cfbb1c452436a0efb71c3205c9da67f718f")
5308 (revision "1"))
5309 (package
5310 (name "sbcl-trivial-utf-8")
5311 (version (git-version "0.0.0" revision commit))
5312 (source
5313 (origin
5314 (method git-fetch)
5315 (uri
5316 (git-reference
5317 (url (string-append "https://gitlab.common-lisp.net/"
5318 "trivial-utf-8/trivial-utf-8.git"))
5319 (commit commit)))
5320 (file-name (git-file-name name version))
5321 (sha256
5322 (base32
5323 "1jz27gz8gvqdmvp3k9bxschs6d5b3qgk94qp2bj6nv1d0jc3m1l1"))))
5324 (arguments
5325 ;; Guix incorrectly assumes the "8" is part of the version
5326 ;; number and lobs it off.
5327 `(#:asd-file "trivial-utf-8.asd"
5328 #:asd-system-name "trivial-utf-8"))
5329 (build-system asdf-build-system/sbcl)
5330 (synopsis "UTF-8 input/output library")
5331 (description
5332 "The Babel library solves a similar problem while understanding more
5333 encodings. Trivial UTF-8 was written before Babel existed, but for new
5334 projects you might be better off going with Babel. The one plus that Trivial
5335 UTF-8 has is that it doesn't depend on any other libraries.")
5336 (home-page "https://common-lisp.net/project/trivial-utf-8/")
5337 (license license:bsd-3))))
5338
5339 (define-public cl-trivial-utf-8
5340 (sbcl-package->cl-source-package sbcl-trivial-utf-8))
5341
5342 (define-public ecl-trivial-utf-8
5343 (sbcl-package->ecl-package sbcl-trivial-utf-8))
5344
5345 (define-public sbcl-idna
5346 (package
5347 (name "sbcl-idna")
5348 (build-system asdf-build-system/sbcl)
5349 (version "0.2.2")
5350 (home-page "https://github.com/antifuchs/idna")
5351 (source
5352 (origin
5353 (method git-fetch)
5354 (uri (git-reference
5355 (url home-page)
5356 (commit version)))
5357 (file-name (git-file-name name version))
5358 (sha256
5359 (base32
5360 "00nbr3mffxhlq14gg9d16pa6691s4qh35inyw76v906s77khm5a2"))))
5361 (inputs
5362 `(("split-sequence" ,sbcl-split-sequence)))
5363 (synopsis "IDNA string encoding and decoding routines for Common Lisp")
5364 (description "This Common Lisp library provides string encoding and
5365 decoding routines for IDNA, the International Domain Names in Applications.")
5366 (license license:expat)))
5367
5368 (define-public cl-idna
5369 (sbcl-package->cl-source-package sbcl-idna))
5370
5371 (define-public ecl-idna
5372 (sbcl-package->ecl-package sbcl-idna))
5373
5374 (define-public sbcl-swap-bytes
5375 (package
5376 (name "sbcl-swap-bytes")
5377 (build-system asdf-build-system/sbcl)
5378 (version "1.2")
5379 (home-page "https://github.com/sionescu/swap-bytes")
5380 (source
5381 (origin
5382 (method git-fetch)
5383 (uri (git-reference
5384 (url home-page)
5385 (commit (string-append "v" version))))
5386 (file-name (git-file-name name version))
5387 (sha256
5388 (base32
5389 "1hw1v1lw26rifyznpnj1csphha9jgzwpiic16ni3pvs6hcsni9rz"))))
5390 (inputs
5391 `(("trivial-features" ,sbcl-trivial-features)))
5392 (native-inputs
5393 `(("fiveam" ,sbcl-fiveam)))
5394 (synopsis "Efficient endianness conversion for Common Lisp")
5395 (description "This Common Lisp library provides optimized byte-swapping
5396 primitives. The library can change endianness of unsigned integers of length
5397 1/2/4/8. Very useful in implementing various network protocols and file
5398 formats.")
5399 (license license:expat)))
5400
5401 (define-public cl-swap-bytes
5402 (sbcl-package->cl-source-package sbcl-swap-bytes))
5403
5404 (define-public ecl-swap-bytes
5405 (sbcl-package->ecl-package sbcl-swap-bytes))
5406
5407 (define-public sbcl-iolib.asdf
5408 ;; Latest release is from June 2017.
5409 (let ((commit "7f5ea3a8457a29d224b24653c2b3657fb1898021")
5410 (revision "2"))
5411 (package
5412 (name "sbcl-iolib.asdf")
5413 (build-system asdf-build-system/sbcl)
5414 (version (git-version "0.8.3" revision commit))
5415 (home-page "https://github.com/sionescu/iolib")
5416 (source
5417 (origin
5418 (method git-fetch)
5419 (uri (git-reference
5420 (url home-page)
5421 (commit commit)))
5422 (file-name (git-file-name name version))
5423 (sha256
5424 (base32
5425 "1bg5w7lm61hqk4b0svmri8a590q36z76jfa0sdgzb39r98c04w12"))))
5426 (inputs
5427 `(("alexandria" ,sbcl-alexandria)))
5428 (arguments
5429 '(#:asd-file "iolib.asdf.asd"))
5430 (synopsis "ASDF component classes for IOLib, a Common Lisp I/O library")
5431 (description "IOlib is to be a better and more modern I/O library than
5432 the standard Common Lisp library. It contains a socket library, a DNS
5433 resolver, an I/O multiplexer(which supports @code{select(2)}, @code{epoll(4)}
5434 and @code{kqueue(2)}), a pathname library and file-system utilities.")
5435 (license license:expat))))
5436
5437 (define-public sbcl-iolib.conf
5438 (package
5439 (inherit sbcl-iolib.asdf)
5440 (name "sbcl-iolib.conf")
5441 (inputs
5442 `(("iolib.asdf" ,sbcl-iolib.asdf)))
5443 (arguments
5444 '(#:asd-file "iolib.conf.asd"))
5445 (synopsis "Compile-time configuration for IOLib, a Common Lisp I/O library")))
5446
5447 (define-public sbcl-iolib.common-lisp
5448 (package
5449 (inherit sbcl-iolib.asdf)
5450 (name "sbcl-iolib.common-lisp")
5451 (inputs
5452 `(("iolib.asdf" ,sbcl-iolib.asdf)
5453 ("iolib.conf" ,sbcl-iolib.conf)))
5454 (arguments
5455 '(#:asd-file "iolib.common-lisp.asd"))
5456 (synopsis "Slightly modified Common Lisp for IOLib, a Common Lisp I/O library")))
5457
5458 (define-public sbcl-iolib.base
5459 (package
5460 (inherit sbcl-iolib.asdf)
5461 (name "sbcl-iolib.base")
5462 (inputs
5463 `(("iolib.asdf" ,sbcl-iolib.asdf)
5464 ("iolib.conf" ,sbcl-iolib.conf)
5465 ("iolib.common-lisp" ,sbcl-iolib.common-lisp)
5466 ("split-sequence" ,sbcl-split-sequence)))
5467 (arguments
5468 '(#:asd-file "iolib.base.asd"))
5469 (synopsis "Base package for IOLib, a Common Lisp I/O library")))
5470
5471 (define-public sbcl-iolib.grovel
5472 (package
5473 (inherit sbcl-iolib.asdf)
5474 (name "sbcl-iolib.grovel")
5475 (inputs
5476 `(("iolib.asdf" ,sbcl-iolib.asdf)
5477 ("iolib.conf" ,sbcl-iolib.conf)
5478 ("iolib.base", sbcl-iolib.base)
5479 ("cffi", sbcl-cffi)))
5480 (arguments
5481 '(#:asd-file "iolib.grovel.asd"
5482 #:phases
5483 (modify-phases %standard-phases
5484 (add-after 'install 'install-header
5485 (lambda* (#:key outputs #:allow-other-keys)
5486 ;; This header is required by sbcl-iolib.
5487 (install-file "src/grovel/grovel-common.h"
5488 (string-append (assoc-ref outputs "out")
5489 "/lib/sbcl"))
5490 #t)))))
5491 (synopsis "CFFI Groveller for IOLib, a Common Lisp I/O library")))
5492
5493 (define sbcl-iolib+syscalls
5494 (package
5495 (inherit sbcl-iolib.asdf)
5496 (name "sbcl-iolib+syscalls")
5497 (inputs
5498 `(("iolib.asdf" ,sbcl-iolib.asdf)
5499 ("iolib.conf" ,sbcl-iolib.conf)
5500 ("cffi-grovel" ,sbcl-cffi-grovel)
5501 ("iolib.base" ,sbcl-iolib.base)
5502 ("bordeaux-threads" ,sbcl-bordeaux-threads)
5503 ("idna" ,sbcl-idna)
5504 ("swap-bytes" ,sbcl-swap-bytes)
5505 ("libfixposix" ,libfixposix)
5506 ("cffi" ,sbcl-cffi)))
5507 (native-inputs
5508 `(("fiveam" ,sbcl-fiveam)))
5509 (arguments
5510 '(#:asd-file "iolib.asd"
5511 #:asd-system-name "iolib/syscalls"
5512 #:phases
5513 (modify-phases %standard-phases
5514 (add-after 'unpack 'fix-paths
5515 (lambda* (#:key inputs #:allow-other-keys)
5516 (substitute* "src/syscalls/ffi-functions-unix.lisp"
5517 (("\\(:default \"libfixposix\"\\)")
5518 (string-append
5519 "(:default \""
5520 (assoc-ref inputs "libfixposix") "/lib/libfixposix\")")))
5521 ;; Socket tests need Internet access, disable them.
5522 (substitute* "iolib.asd"
5523 (("\\(:file \"sockets\" :depends-on \\(\"pkgdcl\" \"defsuites\"\\)\\)")
5524 "")))))))
5525 (synopsis "Common Lisp I/O library")))
5526
5527 (define sbcl-iolib+multiplex
5528 (package
5529 (inherit sbcl-iolib+syscalls)
5530 (name "sbcl-iolib+multiplex")
5531 (inputs
5532 `(("iolib+syscalls" ,sbcl-iolib+syscalls)
5533 ,@(package-inputs sbcl-iolib+syscalls)))
5534 (arguments
5535 (substitute-keyword-arguments (package-arguments sbcl-iolib+syscalls)
5536 ((#:asd-system-name _) "iolib/multiplex")))))
5537
5538 (define sbcl-iolib+streams
5539 (package
5540 (inherit sbcl-iolib+syscalls)
5541 (name "sbcl-iolib+streams")
5542 (inputs
5543 `(("iolib+multiplex" ,sbcl-iolib+multiplex)
5544 ,@(package-inputs sbcl-iolib+syscalls)))
5545 (arguments
5546 (substitute-keyword-arguments (package-arguments sbcl-iolib+syscalls)
5547 ((#:asd-system-name _) "iolib/streams")))))
5548
5549 (define sbcl-iolib+sockets
5550 (package
5551 (inherit sbcl-iolib+syscalls)
5552 (name "sbcl-iolib+sockets")
5553 (inputs
5554 `(("iolib+syscalls" ,sbcl-iolib+syscalls)
5555 ("iolib+streams" ,sbcl-iolib+streams)
5556 ,@(package-inputs sbcl-iolib+syscalls)))
5557 (arguments
5558 (substitute-keyword-arguments (package-arguments sbcl-iolib+syscalls)
5559 ((#:asd-system-name _) "iolib/sockets")))))
5560
5561 (define-public sbcl-iolib
5562 (package
5563 (inherit sbcl-iolib+syscalls)
5564 (name "sbcl-iolib")
5565 (inputs
5566 `(("iolib+multiplex" ,sbcl-iolib+multiplex)
5567 ("iolib+streams" ,sbcl-iolib+streams)
5568 ("iolib+sockets" ,sbcl-iolib+sockets)
5569 ,@(package-inputs sbcl-iolib+syscalls)))
5570 (arguments
5571 (substitute-keyword-arguments (package-arguments sbcl-iolib+syscalls)
5572 ((#:asd-system-name _) "iolib")))))
5573
5574 (define-public cl-iolib
5575 (sbcl-package->cl-source-package sbcl-iolib))
5576
5577 (define-public sbcl-ieee-floats
5578 (let ((commit "566b51a005e81ff618554b9b2f0b795d3b29398d")
5579 (revision "1"))
5580 (package
5581 (name "sbcl-ieee-floats")
5582 (build-system asdf-build-system/sbcl)
5583 (version (git-version "20170924" revision commit))
5584 (home-page "https://github.com/marijnh/ieee-floats/")
5585 (source
5586 (origin
5587 (method git-fetch)
5588 (uri (git-reference
5589 (url home-page)
5590 (commit commit)))
5591 (file-name (git-file-name name version))
5592 (sha256
5593 (base32
5594 "1xyj49j9x3lc84cv3dhbf9ja34ywjk1c46dklx425fxw9mkwm83m"))))
5595 (native-inputs
5596 `(("fiveam" ,sbcl-fiveam)))
5597 (synopsis "IEEE 754 binary representation for floats in Common Lisp")
5598 (description "This is a Common Lisp library that converts
5599 floating point values to IEEE 754 binary representation.")
5600 (license license:bsd-3))))
5601
5602 (define-public cl-ieee-floats
5603 (sbcl-package->cl-source-package sbcl-ieee-floats))
5604
5605 (define sbcl-closure-common
5606 (let ((commit "e3c5f5f454b72b01b89115e581c3c52a7e201e5c")
5607 (revision "1"))
5608 (package
5609 (name "sbcl-closure-common")
5610 (build-system asdf-build-system/sbcl)
5611 (version (git-version "20101006" revision commit))
5612 (home-page "https://common-lisp.net/project/cxml/")
5613 (source
5614 (origin
5615 (method git-fetch)
5616 (uri (git-reference
5617 (url "https://github.com/sharplispers/closure-common")
5618 (commit commit)))
5619 (file-name (git-file-name name version))
5620 (sha256
5621 (base32
5622 "0k5r2qxn122pxi301ijir3nayi9sg4d7yiy276l36qmzwhp4mg5n"))))
5623 (inputs
5624 `(("trivial-gray-streams" ,sbcl-trivial-gray-streams)
5625 ("babel" ,sbcl-babel)))
5626 (synopsis "Support Common Lisp library for CXML")
5627 (description "Closure-common is an internal helper library. The name
5628 Closure is a reference to the web browser it was originally written for.")
5629 ;; TODO: License?
5630 (license #f))))
5631
5632 (define-public sbcl-cxml+xml
5633 (let ((commit "00b22bf4c4cf11c993d5866fae284f95ab18e6bf")
5634 (revision "1"))
5635 (package
5636 (name "sbcl-cxml+xml")
5637 (build-system asdf-build-system/sbcl)
5638 (version (git-version "0.0.0" revision commit))
5639 (home-page "https://common-lisp.net/project/cxml/")
5640 (source
5641 (origin
5642 (method git-fetch)
5643 (uri (git-reference
5644 (url "https://github.com/sharplispers/cxml")
5645 (commit commit)))
5646 (file-name (git-file-name name version))
5647 (sha256
5648 (base32
5649 "13kif7rf3gqdycsk9zq0d7y0g9y81krkl0z87k0p2fkbjfgrph37"))))
5650 (inputs
5651 `(("closure-common" ,sbcl-closure-common)
5652 ("puri" ,sbcl-puri)
5653 ("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
5654 (arguments
5655 `(#:asd-file "cxml.asd"
5656 #:asd-system-name "cxml/xml"))
5657 (synopsis "Common Lisp XML parser")
5658 (description "CXML implements a namespace-aware, validating XML 1.0
5659 parser as well as the DOM Level 2 Core interfaces. Two parser interfaces are
5660 offered, one SAX-like, the other similar to StAX.")
5661 (license license:llgpl))))
5662
5663 (define sbcl-cxml+dom
5664 (package
5665 (inherit sbcl-cxml+xml)
5666 (name "sbcl-cxml+dom")
5667 (inputs
5668 `(("closure-common" ,sbcl-closure-common)
5669 ("puri" ,sbcl-puri)
5670 ("cxml+xml" ,sbcl-cxml+xml)))
5671 (arguments
5672 `(#:asd-file "cxml.asd"
5673 #:asd-system-name "cxml/dom"))))
5674
5675 (define sbcl-cxml+klacks
5676 (package
5677 (inherit sbcl-cxml+xml)
5678 (name "sbcl-cxml+klacks")
5679 (inputs
5680 `(("closure-common" ,sbcl-closure-common)
5681 ("puri" ,sbcl-puri)
5682 ("cxml+xml" ,sbcl-cxml+xml)))
5683 (arguments
5684 `(#:asd-file "cxml.asd"
5685 #:asd-system-name "cxml/klacks"))))
5686
5687 (define sbcl-cxml+test
5688 (package
5689 (inherit sbcl-cxml+xml)
5690 (name "sbcl-cxml+test")
5691 (inputs
5692 `(("closure-common" ,sbcl-closure-common)
5693 ("puri" ,sbcl-puri)
5694 ("cxml+xml" ,sbcl-cxml+xml)))
5695 (arguments
5696 `(#:asd-file "cxml.asd"
5697 #:asd-system-name "cxml/test"))))
5698
5699 (define-public sbcl-cxml
5700 (package
5701 (inherit sbcl-cxml+xml)
5702 (name "sbcl-cxml")
5703 (inputs
5704 `(("closure-common" ,sbcl-closure-common)
5705 ("puri" ,sbcl-puri)
5706 ("trivial-gray-streams" ,sbcl-trivial-gray-streams)
5707 ("cxml+dom" ,sbcl-cxml+dom)
5708 ("cxml+klacks" ,sbcl-cxml+klacks)
5709 ("cxml+test" ,sbcl-cxml+test)))
5710 (arguments
5711 `(#:asd-file "cxml.asd"
5712 #:asd-system-name "cxml"
5713 #:phases
5714 (modify-phases %standard-phases
5715 (add-after 'build 'install-dtd
5716 (lambda* (#:key outputs #:allow-other-keys)
5717 (install-file "catalog.dtd"
5718 (string-append
5719 (assoc-ref outputs "out")
5720 "/lib/" (%lisp-type)))))
5721 (add-after 'create-asd 'remove-component
5722 ;; XXX: The original .asd has no components, but our build system
5723 ;; creates an entry nonetheless. We need to remove it for the
5724 ;; generated .asd to load properly. See trivia.trivial for a
5725 ;; similar problem.
5726 (lambda* (#:key outputs #:allow-other-keys)
5727 (let* ((out (assoc-ref outputs "out"))
5728 (asd (string-append out "/lib/sbcl/cxml.asd")))
5729 (substitute* asd
5730 ((" :components
5731 ")
5732 ""))
5733 (substitute* asd
5734 ((" *\\(\\(:compiled-file \"cxml--system\"\\)\\)")
5735 ""))))))))))
5736
5737 (define-public cl-cxml
5738 (sbcl-package->cl-source-package sbcl-cxml))
5739
5740 (define-public sbcl-cl-reexport
5741 (let ((commit "312f3661bbe187b5f28536cd7ec2956e91366c3b")
5742 (revision "1"))
5743 (package
5744 (name "sbcl-cl-reexport")
5745 (build-system asdf-build-system/sbcl)
5746 (version (git-version "0.1" revision commit))
5747 (home-page "https://github.com/takagi/cl-reexport")
5748 (source
5749 (origin
5750 (method git-fetch)
5751 (uri (git-reference
5752 (url home-page)
5753 (commit commit)))
5754 (file-name (git-file-name name version))
5755 (sha256
5756 (base32
5757 "1cwpn1m3wrl0fl9plznn7p464db646gnfc8zkyk97dyxski2aq0x"))))
5758 (inputs
5759 `(("alexandria" ,sbcl-alexandria)))
5760 (arguments
5761 ;; TODO: Tests fail because cl-test-more is missing, but I can't find it online.
5762 `(#:tests? #f))
5763 (synopsis "HTTP cookie manager for Common Lisp")
5764 (description "cl-cookie is a Common Lisp library featuring parsing of
5765 cookie headers, cookie creation, cookie jar creation and more.")
5766 (license license:llgpl))))
5767
5768 (define-public cl-reexport
5769 (sbcl-package->cl-source-package sbcl-cl-reexport))
5770
5771 (define-public sbcl-cl-cookie
5772 (let ((commit "cea55aed8b9ad25fafd13defbcb9fe8f41b29546")
5773 (revision "1"))
5774 (package
5775 (name "sbcl-cl-cookie")
5776 (build-system asdf-build-system/sbcl)
5777 (version (git-version "0.9.10" revision commit))
5778 (home-page "https://github.com/fukamachi/cl-cookie")
5779 (source
5780 (origin
5781 (method git-fetch)
5782 (uri (git-reference
5783 (url home-page)
5784 (commit commit)))
5785 (file-name (git-file-name name version))
5786 (sha256
5787 (base32
5788 "090g7z75h98zvc1ldx0vh4jn4086dhjm2w30jcwkq553qmyxwl8h"))))
5789 (inputs
5790 `(("proc-parse" ,sbcl-proc-parse)
5791 ("alexandria" ,sbcl-alexandria)
5792 ("quri" ,sbcl-quri)
5793 ("cl-ppcre" ,sbcl-cl-ppcre)
5794 ("local-time" ,sbcl-local-time)))
5795 (native-inputs
5796 `(("prove-asdf" ,sbcl-prove-asdf)
5797 ("prove" ,sbcl-prove)))
5798 (arguments
5799 ;; TODO: Tests fail because cl-cookie depends on cl-cookie-test.
5800 `(#:tests? #f))
5801 (synopsis "HTTP cookie manager for Common Lisp")
5802 (description "cl-cookie is a Common Lisp library featuring parsing of
5803 cookie headers, cookie creation, cookie jar creation and more.")
5804 (license license:bsd-2))))
5805
5806 (define-public cl-cookie
5807 (sbcl-package->cl-source-package sbcl-cl-cookie))
5808
5809 (define-public sbcl-dexador
5810 (let ((commit "953090f04c4d1a9ee6632b90133cdc297b68badc")
5811 (revision "1"))
5812 (package
5813 (name "sbcl-dexador")
5814 (build-system asdf-build-system/sbcl)
5815 (version "0.9.14" )
5816 (home-page "https://github.com/fukamachi/dexador")
5817 (source
5818 (origin
5819 (method git-fetch)
5820 (uri (git-reference
5821 (url home-page)
5822 (commit commit)))
5823 (file-name (git-file-name name version))
5824 (sha256
5825 (base32
5826 "0w18fz3301rpmwc3kwb810czcd24mbf7r1z8vdyc0v5crjfpw3mn"))))
5827 (inputs
5828 `(("trivial-gray-streams" ,sbcl-trivial-gray-streams)
5829 ("babel" ,sbcl-babel)
5830 ("usocket" ,sbcl-usocket)
5831 ("fast-http" ,sbcl-fast-http)
5832 ("quri" ,sbcl-quri)
5833 ("fast-io" ,sbcl-fast-io)
5834 ("chunga" ,sbcl-chunga)
5835 ("cl-ppcre" ,sbcl-cl-ppcre)
5836 ("cl-cookie" ,sbcl-cl-cookie)
5837 ("trivial-mimes" ,sbcl-trivial-mimes)
5838 ("chipz" ,sbcl-chipz)
5839 ("cl-base64" ,sbcl-cl-base64)
5840 ("cl-reexport" ,sbcl-cl-reexport)
5841 ("cl+ssl" ,sbcl-cl+ssl)
5842 ("bordeaux-threads" ,sbcl-bordeaux-threads)
5843 ("alexandria" ,sbcl-alexandria)))
5844 (native-inputs
5845 `(("prove" ,sbcl-prove)
5846 ("prove-asdf" ,sbcl-prove-asdf)
5847 ("lack-request" ,sbcl-lack-request)
5848 ("clack" ,sbcl-clack)
5849 ("babel" ,sbcl-babel)
5850 ("alexandria" ,sbcl-alexandria)
5851 ("cl-ppcre" ,sbcl-cl-ppcre)
5852 ("local-time" ,sbcl-local-time)
5853 ("trivial-features" ,sbcl-trivial-features)))
5854 (arguments
5855 ;; TODO: Circular dependency: tests depend on clack-test which depends on dexador.
5856 `(#:tests? #f
5857 #:phases
5858 (modify-phases %standard-phases
5859 (add-after 'unpack 'fix-permissions
5860 (lambda _ (make-file-writable "t/data/test.gz") #t)))))
5861 (synopsis "Yet another HTTP client for Common Lisp")
5862 (description "Dexador is yet another HTTP client for Common Lisp with
5863 neat APIs and connection-pooling. It is meant to supersede Drakma.")
5864 (license license:expat))))
5865
5866 (define-public cl-dexador
5867 (package
5868 (inherit (sbcl-package->cl-source-package sbcl-dexador))
5869 (arguments
5870 `(#:phases
5871 ;; asdf-build-system/source has its own phases and does not inherit
5872 ;; from asdf-build-system/sbcl phases.
5873 (modify-phases %standard-phases/source
5874 (add-after 'unpack 'fix-permissions
5875 (lambda _ (make-file-writable "t/data/test.gz") #t)))))))
5876
5877 (define-public ecl-dexador
5878 (sbcl-package->ecl-package sbcl-dexador))
5879
5880 (define-public sbcl-lisp-namespace
5881 (let ((commit "28107cafe34e4c1c67490fde60c7f92dc610b2e0")
5882 (revision "1"))
5883 (package
5884 (name "sbcl-lisp-namespace")
5885 (build-system asdf-build-system/sbcl)
5886 (version (git-version "0.1" revision commit))
5887 (home-page "https://github.com/guicho271828/lisp-namespace")
5888 (source
5889 (origin
5890 (method git-fetch)
5891 (uri (git-reference
5892 (url home-page)
5893 (commit commit)))
5894 (file-name (git-file-name name version))
5895 (sha256
5896 (base32
5897 "1jw2wykp06z2afb9nm1lgfzll5cjlj36pnknjx614057zkkxq4iy"))))
5898 (inputs
5899 `(("alexandria" ,sbcl-alexandria)))
5900 (native-inputs
5901 `(("fiveam" ,sbcl-fiveam)))
5902 (arguments
5903 `(#:test-asd-file "lisp-namespace.test.asd"
5904 ;; XXX: Component LISP-NAMESPACE-ASD::LISP-NAMESPACE.TEST not found
5905 #:tests? #f))
5906 (synopsis "LISP-N, or extensible namespaces in Common Lisp")
5907 (description "Common Lisp already has major 2 namespaces, function
5908 namespace and value namespace (or variable namespace), but there are actually
5909 more — e.g., class namespace.
5910 This library offers macros to deal with symbols from any namespace.")
5911 (license license:llgpl))))
5912
5913 (define-public cl-lisp-namespace
5914 (sbcl-package->cl-source-package sbcl-lisp-namespace))
5915
5916 (define-public sbcl-trivial-cltl2
5917 (let ((commit "8eec8407df833e8f27df8a388bc10913f16d9e83")
5918 (revision "1"))
5919 (package
5920 (name "sbcl-trivial-cltl2")
5921 (build-system asdf-build-system/sbcl)
5922 (version (git-version "0.1.1" revision commit))
5923 (home-page "https://github.com/Zulu-Inuoe/trivial-cltl2")
5924 (source
5925 (origin
5926 (method git-fetch)
5927 (uri (git-reference
5928 (url home-page)
5929 (commit commit)))
5930 (file-name (git-file-name name version))
5931 (sha256
5932 (base32
5933 "1dyyxz17vqv8hlfwq287gl8xxbvcnq798ajb7p5jdjz91wqf4bgk"))))
5934 (synopsis "Simple CLtL2 compatibility layer for Common Lisp")
5935 (description "This library is a portable compatibility layer around
5936 \"Common Lisp the Language, 2nd
5937 Edition\" (@url{https://www.cs.cmu.edu/Groups/AI/html/cltl/clm/node102.html})
5938 and it exports symbols from implementation-specific packages.")
5939 (license license:llgpl))))
5940
5941 (define-public cl-trivial-cltl2
5942 (sbcl-package->cl-source-package sbcl-trivial-cltl2))
5943
5944 (define-public sbcl-introspect-environment
5945 (let ((commit "fff42f8f8fd0d99db5ad6c5812e53de7d660020b")
5946 (revision "1"))
5947 (package
5948 (name "sbcl-introspect-environment")
5949 (build-system asdf-build-system/sbcl)
5950 (version (git-version "0.1" revision commit))
5951 (home-page "https://github.com/Bike/introspect-environment")
5952 (source
5953 (origin
5954 (method git-fetch)
5955 (uri (git-reference
5956 (url home-page)
5957 (commit commit)))
5958 (file-name (git-file-name name version))
5959 (sha256
5960 (base32
5961 "1i305n0wfmpac63ni4i3vixnnkl8daw5ncxy0k3dv92krgx6qzhp"))))
5962 (native-inputs
5963 `(("fiveam" ,sbcl-fiveam)))
5964 (synopsis "Common Lisp environment introspection portability layer")
5965 (description "This library is a small interface to portable but
5966 nonstandard introspection of Common Lisp environments. It is intended to
5967 allow a bit more compile-time introspection of environments in Common Lisp.
5968
5969 Quite a bit of information is available at the time a macro or compiler-macro
5970 runs; inlining info, type declarations, that sort of thing. This information
5971 is all standard - any Common Lisp program can @code{(declare (integer x))} and
5972 such.
5973
5974 This info ought to be accessible through the standard @code{&environment}
5975 parameters, but it is not. Several implementations keep the information for
5976 their own purposes but do not make it available to user programs, because
5977 there is no standard mechanism to do so.
5978
5979 This library uses implementation-specific hooks to make information available
5980 to users. This is currently supported on SBCL, CCL, and CMUCL. Other
5981 implementations have implementations of the functions that do as much as they
5982 can and/or provide reasonable defaults.")
5983 (license license:wtfpl2))))
5984
5985 (define-public cl-introspect-environment
5986 (sbcl-package->cl-source-package sbcl-introspect-environment))
5987
5988 (define-public sbcl-type-i
5989 (let ((commit "dea233f45f94064105ec09f0767de338f67dcbe2")
5990 (revision "1"))
5991 (package
5992 (name "sbcl-type-i")
5993 (build-system asdf-build-system/sbcl)
5994 (version (git-version "0.1" revision commit))
5995 (home-page "https://github.com/guicho271828/type-i")
5996 (source
5997 (origin
5998 (method git-fetch)
5999 (uri (git-reference
6000 (url home-page)
6001 (commit commit)))
6002 (file-name (git-file-name name version))
6003 (sha256
6004 (base32
6005 "039g5pbrhh65s0bhr9314gmd2nwc2y5lp2377c5qrc2lxky89qs3"))))
6006 (inputs
6007 `(("alexandria" ,sbcl-alexandria)
6008 ("introspect-environment" ,sbcl-introspect-environment)
6009 ("trivia.trivial" ,sbcl-trivia.trivial)))
6010 (native-inputs
6011 `(("fiveam" ,sbcl-fiveam)))
6012 (arguments
6013 `(#:test-asd-file "type-i.test.asd"))
6014 (synopsis "Type inference utility on unary predicates for Common Lisp")
6015 (description "This library tries to provide a way to detect what kind of
6016 type the given predicate is trying to check. This is different from inferring
6017 the return type of a function.")
6018 (license license:llgpl))))
6019
6020 (define-public cl-type-i
6021 (sbcl-package->cl-source-package sbcl-type-i))
6022
6023 (define-public sbcl-optima
6024 (let ((commit "373b245b928c1a5cce91a6cb5bfe5dd77eb36195")
6025 (revision "1"))
6026 (package
6027 (name "sbcl-optima")
6028 (build-system asdf-build-system/sbcl)
6029 (version (git-version "1.0" revision commit))
6030 (home-page "https://github.com/m2ym/optima")
6031 (source
6032 (origin
6033 (method git-fetch)
6034 (uri (git-reference
6035 (url home-page)
6036 (commit commit)))
6037 (file-name (git-file-name name version))
6038 (sha256
6039 (base32
6040 "1yw4ymq7ms89342kkvb3aqxgv0w38m9kd8ikdqxxzyybnkjhndal"))))
6041 (inputs
6042 `(("alexandria" ,sbcl-alexandria)
6043 ("closer-mop" ,sbcl-closer-mop)))
6044 (native-inputs
6045 `(("eos" ,sbcl-eos)))
6046 (arguments
6047 ;; XXX: Circular dependencies: tests depend on optima.ppcre which depends on optima.
6048 `(#:tests? #f
6049 #:test-asd-file "optima.test.asd"))
6050 (synopsis "Optimized pattern matching library for Common Lisp")
6051 (description "Optima is a fast pattern matching library which uses
6052 optimizing techniques widely used in the functional programming world.")
6053 (license license:expat))))
6054
6055 (define-public cl-optima
6056 (sbcl-package->cl-source-package sbcl-optima))
6057
6058 (define-public sbcl-fare-quasiquote
6059 (let ((commit "640d39a0451094071b3e093c97667b3947f43639")
6060 (revision "1"))
6061 (package
6062 (name "sbcl-fare-quasiquote")
6063 (build-system asdf-build-system/sbcl)
6064 (version (git-version "1.0.1" revision commit))
6065 (home-page "https://gitlab.common-lisp.net/frideau/fare-quasiquote")
6066 (source
6067 (origin
6068 (method git-fetch)
6069 (uri (git-reference
6070 (url (string-append "https://gitlab.common-lisp.net/frideau/"
6071 "fare-quasiquote.git"))
6072 (commit commit)))
6073 (file-name (git-file-name name version))
6074 (sha256
6075 (base32 "1g6q11l50kgija9f55lzqpcwvaq0ljiw8v1j265hnyg6nahjwjvg"))))
6076 (inputs
6077 `(("fare-utils" ,sbcl-fare-utils)))
6078 (arguments
6079 ;; XXX: Circular dependencies: Tests depend on subsystems,
6080 ;; which depend on the main systems.
6081 `(#:tests? #f
6082 #:phases
6083 (modify-phases %standard-phases
6084 ;; XXX: Require 1.0.0 version of fare-utils, and we package some
6085 ;; commits after 1.0.0.5, but ASDF fails to read the
6086 ;; "-REVISION-COMMIT" part generated by Guix.
6087 (add-after 'unpack 'patch-requirement
6088 (lambda _
6089 (substitute* "fare-quasiquote.asd"
6090 (("\\(:version \"fare-utils\" \"1.0.0\"\\)")
6091 "\"fare-utils\"")))))))
6092 (synopsis "Pattern-matching friendly implementation of quasiquote")
6093 (description "The main purpose of this n+2nd reimplementation of
6094 quasiquote is enable matching of quasiquoted patterns, using Optima or
6095 Trivia.")
6096 (license license:expat))))
6097
6098 (define-public cl-fare-quasiquote
6099 (sbcl-package->cl-source-package sbcl-fare-quasiquote))
6100
6101 (define-public sbcl-fare-quasiquote-optima
6102 (package
6103 (inherit sbcl-fare-quasiquote)
6104 (name "sbcl-fare-quasiquote-optima")
6105 (inputs
6106 `(("optima" ,sbcl-optima)
6107 ("fare-quasiquote" ,sbcl-fare-quasiquote)))
6108 (arguments
6109 '(#:phases
6110 (modify-phases %standard-phases
6111 (add-after 'unpack 'patch-requirement
6112 (lambda _
6113 (substitute* "fare-quasiquote-optima.asd"
6114 (("\\(:version \"optima\" \"1\\.0\"\\)")
6115 "\"optima\""))
6116 #t)))))))
6117
6118 (define-public cl-fare-quasiquote-optima
6119 (sbcl-package->cl-source-package sbcl-fare-quasiquote-optima))
6120
6121 (define-public sbcl-fare-quasiquote-readtable
6122 (package
6123 (inherit sbcl-fare-quasiquote)
6124 (name "sbcl-fare-quasiquote-readtable")
6125 (inputs
6126 `(("fare-quasiquote" ,sbcl-fare-quasiquote)
6127 ("named-readtables" ,sbcl-named-readtables)))
6128 (description "The main purpose of this n+2nd reimplementation of
6129 quasiquote is enable matching of quasiquoted patterns, using Optima or
6130 Trivia.
6131
6132 This package uses fare-quasiquote with named-readtable.")))
6133
6134 (define-public cl-fare-quasiquote-readtable
6135 (sbcl-package->cl-source-package sbcl-fare-quasiquote-readtable))
6136
6137 ;; TODO: Add support for component-less system in asdf-build-system/sbcl.
6138 (define-public sbcl-fare-quasiquote-extras
6139 (package
6140 (inherit sbcl-fare-quasiquote)
6141 (name "sbcl-fare-quasiquote-extras")
6142 (build-system asdf-build-system/sbcl)
6143 (inputs
6144 `(("fare-quasiquote-optima" ,sbcl-fare-quasiquote-optima)
6145 ("fare-quasiquote-readtable" ,sbcl-fare-quasiquote-readtable)))
6146 (arguments
6147 `(#:phases
6148 (modify-phases %standard-phases
6149 (replace 'build
6150 (lambda* (#:key outputs #:allow-other-keys)
6151 (let* ((out (assoc-ref outputs "out"))
6152 (lib (string-append out "/lib/" (%lisp-type))))
6153 (mkdir-p lib)
6154 (install-file "fare-quasiquote-extras.asd" lib)
6155 (make-file-writable
6156 (string-append lib "/fare-quasiquote-extras.asd"))
6157 #t)))
6158 (add-after 'create-asd-file 'fix-asd-file
6159 (lambda* (#:key outputs #:allow-other-keys)
6160 (let* ((out (assoc-ref outputs "out"))
6161 (lib (string-append out "/lib/" (%lisp-type)))
6162 (asd (string-append lib "/fare-quasiquote-extras.asd")))
6163 (substitute* asd
6164 ((":class")
6165 "")
6166 (("asdf/bundle:prebuilt-system")
6167 "")
6168 ((":components")
6169 "")
6170 (("\\(\\(:compiled-file \"fare-quasiquote-extras--system\"\\)\\)")
6171 "")))
6172 #t)))))
6173 (description "This library combines @code{fare-quasiquote-readtable} and
6174 @code{fare-quasiquote-optima}.")))
6175
6176 (define-public cl-fare-quasiquote-extras
6177 (package
6178 (inherit cl-fare-quasiquote)
6179 (name "cl-fare-quasiquote-extras")
6180 (build-system asdf-build-system/source)
6181 (propagated-inputs
6182 `(("fare-quasiquote" ,cl-fare-quasiquote)
6183 ("fare-quasiquote-optima" ,cl-fare-quasiquote-optima)
6184 ("fare-quasiquote-readtable" ,cl-fare-quasiquote-readtable)))
6185 (description "This library combines @code{fare-quasiquote-readtable} and
6186 @code{fare-quasiquote-optima}.")))
6187
6188 (define-public sbcl-trivia.level0
6189 (let ((commit "574901ac376ae54c9d37169fd5efab9b3b8fcc63")
6190 (revision "1"))
6191 (package
6192 (name "sbcl-trivia.level0")
6193 (build-system asdf-build-system/sbcl)
6194 (version (git-version "0.0.0" revision commit))
6195 (home-page "https://github.com/guicho271828/trivia")
6196 (source
6197 (origin
6198 (method git-fetch)
6199 (uri (git-reference
6200 (url home-page)
6201 (commit commit)))
6202 (file-name (git-file-name name version))
6203 (sha256
6204 (base32
6205 "0hf53n71xzr9sjwrxis5fivx3drclf4s39h5ck8vh21ndqj9zvdk"))))
6206 (inputs
6207 `(("alexandria" ,sbcl-alexandria)))
6208 (synopsis "Pattern matching in Common Lisp")
6209 (description "Trivia is a pattern matching compiler that is compatible
6210 with Optima, another pattern matching library for Common Lisp. It is meant to
6211 be faster and more extensible than Optima.")
6212 (license license:llgpl))))
6213
6214 (define-public sbcl-trivia.level1
6215 (package
6216 (inherit sbcl-trivia.level0)
6217 (name "sbcl-trivia.level1")
6218 (inputs
6219 `(("trivia.level0" ,sbcl-trivia.level0)))
6220 (description "Trivia is a pattern matching compiler that is compatible
6221 with Optima, another pattern matching library for Common Lisp. It is meant to
6222 be faster and more extensible than Optima.
6223
6224 This system contains the core patterns of Trivia.")))
6225
6226 (define-public sbcl-trivia.level2
6227 (package
6228 (inherit sbcl-trivia.level0)
6229 (name "sbcl-trivia.level2")
6230 (inputs
6231 `(("trivia.level1" ,sbcl-trivia.level1)
6232 ("lisp-namespace" ,sbcl-lisp-namespace)
6233 ("trivial-cltl2" ,sbcl-trivial-cltl2)
6234 ("closer-mop" ,sbcl-closer-mop)))
6235 (description "Trivia is a pattern matching compiler that is compatible
6236 with Optima, another pattern matching library for Common Lisp. It is meant to
6237 be faster and more extensible than Optima.
6238
6239 This system contains a non-optimized pattern matcher compatible with Optima,
6240 with extensible optimizer interface.")))
6241
6242 (define-public sbcl-trivia.trivial
6243 (package
6244 (inherit sbcl-trivia.level0)
6245 (name "sbcl-trivia.trivial")
6246 (inputs
6247 `(("trivia.level2" ,sbcl-trivia.level2)))
6248 (arguments
6249 `(#:phases
6250 (modify-phases %standard-phases
6251 (replace 'create-asd-file
6252 (lambda* (#:key outputs inputs #:allow-other-keys)
6253 (let* ((out (assoc-ref outputs "out"))
6254 (lib (string-append out "/lib/" (%lisp-type)))
6255 (level2 (assoc-ref inputs "trivia.level2")))
6256 (mkdir-p lib)
6257 (install-file "trivia.trivial.asd" lib)
6258 ;; XXX: This .asd does not have any component and the build
6259 ;; system fails to work in this case. We should update the
6260 ;; build system to handle component-less .asd.
6261 ;; TODO: How do we append to file in Guile? It seems that
6262 ;; (open-file ... "a") gets a "Permission denied".
6263 (substitute* (string-append lib "/trivia.trivial.asd")
6264 (("\"\\)")
6265 (string-append "\")
6266
6267 (progn (asdf/source-registry:ensure-source-registry)
6268 (setf (gethash
6269 \"trivia.level2\"
6270 asdf/source-registry:*source-registry*)
6271 #p\""
6272 level2
6273 "/share/common-lisp/sbcl-bundle-systems/trivia.level2.asd\"))")))))))))
6274 (description "Trivia is a pattern matching compiler that is compatible
6275 with Optima, another pattern matching library for Common Lisp. It is meant to
6276 be faster and more extensible than Optima.
6277
6278 This system contains the base level system of Trivia with a trivial optimizer.")))
6279
6280 (define-public sbcl-trivia.balland2006
6281 (package
6282 (inherit sbcl-trivia.level0)
6283 (name "sbcl-trivia.balland2006")
6284 (inputs
6285 `(("trivia.trivial" ,sbcl-trivia.trivial)
6286 ("iterate" ,sbcl-iterate)
6287 ("type-i" ,sbcl-type-i)
6288 ("alexandria" ,sbcl-alexandria)))
6289 (arguments
6290 ;; Tests are done in trivia itself.
6291 `(#:tests? #f))
6292 (description "Trivia is a pattern matching compiler that is compatible
6293 with Optima, another pattern matching library for Common Lisp. It is meant to
6294 be faster and more extensible than Optima.
6295
6296 This system contains the base level system of Trivia with a trivial optimizer.")))
6297
6298 (define-public sbcl-trivia.ppcre
6299 (package
6300 (inherit sbcl-trivia.level0)
6301 (name "sbcl-trivia.ppcre")
6302 (inputs
6303 `(("trivia.trivial" ,sbcl-trivia.trivial)
6304 ("cl-ppcre" ,sbcl-cl-ppcre)))
6305 (description "Trivia is a pattern matching compiler that is compatible
6306 with Optima, another pattern matching library for Common Lisp. It is meant to
6307 be faster and more extensible than Optima.
6308
6309 This system contains the PPCRE extension.")))
6310
6311 (define-public sbcl-trivia.quasiquote
6312 (package
6313 (inherit sbcl-trivia.level0)
6314 (name "sbcl-trivia.quasiquote")
6315 (inputs
6316 `(("trivia.trivial" ,sbcl-trivia.trivial)
6317 ("fare-quasiquote" ,sbcl-fare-quasiquote)
6318 ("fare-quasiquote-readtable" ,sbcl-fare-quasiquote-readtable)))
6319 (description "Trivia is a pattern matching compiler that is compatible
6320 with Optima, another pattern matching library for Common Lisp. It is meant to
6321 be faster and more extensible than Optima.
6322
6323 This system contains the fare-quasiquote extension.")))
6324
6325 (define-public sbcl-trivia.cffi
6326 (package
6327 (inherit sbcl-trivia.level0)
6328 (name "sbcl-trivia.cffi")
6329 (inputs
6330 `(("cffi" ,sbcl-cffi)
6331 ("trivia.trivial" ,sbcl-trivia.trivial)))
6332 (description "Trivia is a pattern matching compiler that is compatible
6333 with Optima, another pattern matching library for Common Lisp. It is meant to
6334 be faster and more extensible than Optima.
6335
6336 This system contains the CFFI foreign slot access extension.")))
6337
6338 (define-public sbcl-trivia
6339 (package
6340 (inherit sbcl-trivia.level0)
6341 (name "sbcl-trivia")
6342 (inputs
6343 `(("trivia.balland2006" ,sbcl-trivia.balland2006)))
6344 (native-inputs
6345 `(("fiveam" ,sbcl-fiveam)
6346 ("trivia.ppcre" ,sbcl-trivia.ppcre)
6347 ("trivia.quasiquote" ,sbcl-trivia.quasiquote)
6348 ("trivia.cffi" ,sbcl-trivia.cffi)
6349 ("optima" ,sbcl-optima)))
6350 (arguments
6351 `(#:test-asd-file "trivia.test.asd"
6352 #:phases
6353 (modify-phases %standard-phases
6354 (add-after 'create-asd 'remove-component
6355 ;; XXX: The original .asd has no components, but our build system
6356 ;; creates an entry nonetheless. We need to remove it for the
6357 ;; generated .asd to load properly. See trivia.trivial for a
6358 ;; similar problem.
6359 (lambda* (#:key outputs #:allow-other-keys)
6360 (let* ((out (assoc-ref outputs "out"))
6361 (asd (string-append out "/lib/" (%lisp-type) "/trivia.asd")))
6362 (substitute* asd
6363 ((" :components
6364 ")
6365 ""))
6366 (substitute* asd
6367 ((" *\\(\\(:compiled-file \"trivia--system\"\\)\\)")
6368 ""))))))))
6369 (description "Trivia is a pattern matching compiler that is compatible
6370 with Optima, another pattern matching library for Common Lisp. It is meant to
6371 be faster and more extensible than Optima.")))
6372
6373 (define-public cl-trivia
6374 (sbcl-package->cl-source-package sbcl-trivia))
6375
6376 (define-public sbcl-mk-string-metrics
6377 (package
6378 (name "sbcl-mk-string-metrics")
6379 (version "0.1.2")
6380 (home-page "https://github.com/cbaggers/mk-string-metrics/")
6381 (source (origin
6382 (method git-fetch)
6383 (uri (git-reference
6384 (url home-page)
6385 (commit version)))
6386 (sha256
6387 (base32 "0bg0bv2mfd4k0g3x72x563hvmrx18xavaffr6xk5rh4if5j7kcf6"))
6388 (file-name (git-file-name name version))))
6389 (build-system asdf-build-system/sbcl)
6390 (synopsis "Calculate various string metrics efficiently in Common Lisp")
6391 (description "This library implements efficient algorithms that calculate
6392 various string metrics in Common Lisp:
6393
6394 @itemize
6395 @item Damerau-Levenshtein distance
6396 @item Hamming distance
6397 @item Jaccard similarity coefficient
6398 @item Jaro distance
6399 @item Jaro-Winkler distance
6400 @item Levenshtein distance
6401 @item Normalized Damerau-Levenshtein distance
6402 @item Normalized Levenshtein distance
6403 @item Overlap coefficient
6404 @end itemize\n")
6405 (license license:x11)))
6406
6407 (define-public cl-mk-string-metrics
6408 (sbcl-package->cl-source-package sbcl-mk-string-metrics))
6409
6410 (define-public sbcl-cl-str
6411 (let ((commit "eb480f283e28802d67b35bf916506701152f9a2a"))
6412 (package
6413 (name "sbcl-cl-str")
6414 (version (git-version "0.17" "1" commit))
6415 (home-page "https://github.com/vindarel/cl-str")
6416 (source (origin
6417 (method git-fetch)
6418 (uri (git-reference
6419 (url home-page)
6420 (commit commit)))
6421 (sha256
6422 (base32 "1hpq5m8zjjnzns370zy27z2vcm1p8n2ka5ij2x67gyc9amz9vla0"))
6423 (file-name (git-file-name name version))))
6424 (build-system asdf-build-system/sbcl)
6425 (inputs
6426 `(("cl-ppcre" ,sbcl-cl-ppcre)
6427 ("cl-ppcre-unicode" ,sbcl-cl-ppcre-unicode)
6428 ("cl-change-case" ,sbcl-cl-change-case)))
6429 (native-inputs
6430 `(("prove" ,sbcl-prove)
6431 ("prove-asdf" ,sbcl-prove-asdf)))
6432 (arguments
6433 `(#:asd-file "str.asd"
6434 #:asd-system-name "str"
6435 #:test-asd-file "str.test.asd"))
6436 (synopsis "Modern, consistent and terse Common Lisp string manipulation library")
6437 (description "A modern and consistent Common Lisp string manipulation
6438 library that focuses on modernity, simplicity and discoverability:
6439 @code{(str:trim s)} instead of @code{(string-trim '(#\\Space ...) s)}), or
6440 @code{str:concat strings} instead of an unusual format construct; one
6441 discoverable library instead of many; consistency and composability, where
6442 @code{s} is always the last argument, which makes it easier to feed pipes and
6443 arrows.")
6444 (license license:expat))))
6445
6446 (define-public cl-str
6447 (sbcl-package->cl-source-package sbcl-cl-str))
6448
6449 (define-public sbcl-cl-xmlspam
6450 (let ((commit "ea06abcca2a73a9779bcfb09081e56665f94e22a"))
6451 (package
6452 (name "sbcl-cl-xmlspam")
6453 (build-system asdf-build-system/sbcl)
6454 (version (git-version "0.0.0" "1" commit))
6455 (home-page "https://github.com/rogpeppe/cl-xmlspam")
6456 (source
6457 (origin
6458 (method git-fetch)
6459 (uri (git-reference
6460 (url home-page)
6461 (commit commit)))
6462 (file-name (string-append name "-" version))
6463 (sha256
6464 (base32
6465 "0w4rqvrgdgk3fwfq3kx4r7wwdr2bv3b6n3bdqwsiriw9psqzpz2s"))))
6466 (inputs
6467 `(("cxml" ,sbcl-cxml)
6468 ("cl-ppcre" ,sbcl-cl-ppcre)))
6469 (synopsis "Concise, regexp-like pattern matching on streaming XML for Common Lisp")
6470 (description "CXML does an excellent job at parsing XML elements, but what
6471 do you do when you have a XML file that's larger than you want to fit in
6472 memory, and you want to extract some information from it? Writing code to deal
6473 with SAX events, or even using Klacks, quickly becomes tedious.
6474 @code{cl-xmlspam} (for XML Stream PAttern Matcher) is designed to make it easy
6475 to write code that mirrors the structure of the XML that it's parsing. It
6476 also makes it easy to shift paradigms when necessary - the usual Lisp control
6477 constructs can be used interchangeably with pattern matching, and the full
6478 power of CXML is available when necessary.")
6479 (license license:bsd-3))))
6480
6481 ;; TODO: dbus uses ASDF's package-inferred-system which is not supported by
6482 ;; asdf-build-system/sbcl as of 2019-08-02. We should fix
6483 ;; asdf-build-system/sbcl.
6484 (define-public cl-dbus
6485 (let ((commit "24b452df3a45ca5dc95015500f34baad175c981a")
6486 (revision "1"))
6487 (package
6488 (name "cl-dbus")
6489 (build-system asdf-build-system/source)
6490 (version (git-version "20190408" revision commit))
6491 (home-page "https://github.com/death/dbus")
6492 (source
6493 (origin
6494 (method git-fetch)
6495 (uri (git-reference
6496 (url home-page)
6497 (commit commit)))
6498 (file-name (git-file-name name version))
6499 (sha256
6500 (base32
6501 "0fw2q866yddbf23nk9pxphm9gsasx35vjyss82xzvndnjmzlqfl5"))))
6502 ;; Inputs must be propagated or else packages depending on this won't
6503 ;; have the necessary packages.
6504 (propagated-inputs
6505 `(("alexandria" ,sbcl-alexandria)
6506 ("trivial-garbage" ,sbcl-trivial-garbage)
6507 ("babel" ,sbcl-babel)
6508 ("iolib" ,sbcl-iolib)
6509 ("ieee-floats" ,sbcl-ieee-floats)
6510 ("flexi-streams" ,sbcl-flexi-streams)
6511 ("cl-xmlspam" ,sbcl-cl-xmlspam)
6512 ("ironclad" ,sbcl-ironclad)))
6513 (synopsis "D-Bus client library for Common Lisp")
6514 (description "This is a Common Lisp library that publishes D-Bus
6515 objects as well as send and notify other objects connected to a bus.")
6516 (license license:bsd-2))))
6517
6518 (define-public sbcl-cl-hooks
6519 (let ((commit "5b638083f3b4f1221a52631d9c8a0a265565cac7")
6520 (revision "1"))
6521 (package
6522 (name "sbcl-cl-hooks")
6523 (build-system asdf-build-system/sbcl)
6524 (version (git-version "0.2.1" revision commit))
6525 (home-page "https://github.com/scymtym/architecture.hooks")
6526 (source
6527 (origin
6528 (method git-fetch)
6529 (uri (git-reference
6530 (url home-page)
6531 (commit commit)))
6532 (file-name (git-file-name name version))
6533 (sha256
6534 (base32
6535 "0bg3l0a28lw5gqqjp6p6b5nhwqk46sgkb7184w5qbfngw1hk8x9y"))))
6536 (inputs
6537 `(("alexandria" ,sbcl-alexandria)
6538 ("let-plus" ,sbcl-let-plus)
6539 ("trivial-garbage" ,sbcl-trivial-garbage)
6540 ("closer-mop" ,sbcl-closer-mop)))
6541 (native-inputs
6542 `(("fiveam" ,sbcl-fiveam)))
6543 (synopsis "Hooks extension point mechanism (as in Emacs) for Common Lisp")
6544 (description "A hook, in the present context, is a certain kind of
6545 extension point in a program that allows interleaving the execution of
6546 arbitrary code with the execution of a the program without introducing any
6547 coupling between the two. Hooks are used extensively in the extensible editor
6548 Emacs.
6549
6550 In the Common LISP Object System (CLOS), a similar kind of extensibility is
6551 possible using the flexible multi-method dispatch mechanism. It may even seem
6552 that the concept of hooks does not provide any benefits over the possibilities
6553 of CLOS. However, there are some differences:
6554
6555 @itemize
6556
6557 @item There can be only one method for each combination of specializers and
6558 qualifiers. As a result this kind of extension point cannot be used by
6559 multiple extensions independently.
6560 @item Removing code previously attached via a @code{:before}, @code{:after} or
6561 @code{:around} method can be cumbersome.
6562 @item There could be other or even multiple extension points besides @code{:before}
6563 and @code{:after} in a single method.
6564 @item Attaching codes to individual objects using eql specializers can be
6565 cumbersome.
6566 @item Introspection of code attached a particular extension point is
6567 cumbersome since this requires enumerating and inspecting the methods of a
6568 generic function.
6569 @end itemize
6570
6571 This library tries to complement some of these weaknesses of method-based
6572 extension-points via the concept of hooks.")
6573 (license license:llgpl))))
6574
6575 (define-public cl-hooks
6576 (sbcl-package->cl-source-package sbcl-cl-hooks))
6577
6578 (define-public ecl-cl-hooks
6579 (sbcl-package->ecl-package sbcl-cl-hooks))
6580
6581 (define-public sbcl-s-sysdeps
6582 ;; No release since 2013.
6583 (let ((commit "9aa23bbdceb24bcdbe0e7c39fa1901858f823106")
6584 (revision "2"))
6585 (package
6586 (name "sbcl-s-sysdeps")
6587 (build-system asdf-build-system/sbcl)
6588 (version (git-version "1" revision commit))
6589 (home-page "https://github.com/svenvc/s-sysdeps")
6590 (source
6591 (origin
6592 (method git-fetch)
6593 (uri (git-reference
6594 (url home-page)
6595 (commit commit)))
6596 (file-name (git-file-name name version))
6597 (sha256
6598 (base32
6599 "1fh8r7kf8s3hvqdg6b71b8p7w3v2kkga9bw8j3qqdxhzr6anpm0b"))))
6600 (inputs
6601 `(("bordeaux-threads" ,sbcl-bordeaux-threads)
6602 ("usocket" ,sbcl-usocket)
6603 ("usocket-server" ,sbcl-usocket-server)))
6604 (synopsis "Common Lisp abstraction layer over platform dependent functionality")
6605 (description "@code{s-sysdeps} is an abstraction layer over platform
6606 dependent functionality. This simple package is used as a building block in a
6607 number of other open source projects.
6608
6609 @code{s-sysdeps} abstracts:
6610
6611 @itemize
6612 @item managing processes,
6613 @item implementing a standard TCP/IP server,
6614 @item opening a client TCP/IP socket stream,
6615 @item working with process locks.
6616 @end itemize\n")
6617 (license license:llgpl))))
6618
6619 (define-public cl-s-sysdeps
6620 (sbcl-package->cl-source-package sbcl-s-sysdeps))
6621
6622 (define-public ecl-s-sysdeps
6623 (sbcl-package->ecl-package sbcl-s-sysdeps))
6624
6625 (define-public sbcl-cl-prevalence
6626 (let ((commit "da3ed6c4594b1c2fca90c178c1993973c4bf16c9")
6627 (revision "2"))
6628 (package
6629 (name "sbcl-cl-prevalence")
6630 (build-system asdf-build-system/sbcl)
6631 (version (git-version "5" revision commit))
6632 (home-page "https://github.com/40ants/cl-prevalence")
6633 (source
6634 (origin
6635 (method git-fetch)
6636 (uri (git-reference
6637 (url home-page)
6638 (commit commit)))
6639 (file-name (git-file-name name version))
6640 (sha256
6641 (base32
6642 "0bq905hv1626dl6b7s0zn4lbdh608g1pxaljl1fda6pwp9hmj95a"))))
6643 (inputs
6644 `(("s-sysdeps" ,sbcl-s-sysdeps)
6645 ("s-xml" ,sbcl-s-xml)))
6646 (synopsis "Implementation of object prevalence for Common Lisp")
6647 (description "This Common Lisp library implements object prevalence (see
6648 @url{https://en.wikipedia.org/wiki/System_prevalence}). It allows
6649 for (de)serializing to and from s-exps as well as XML. Serialization of arbitrary
6650 classes and cyclic data structures are supported.")
6651 (license license:llgpl))))
6652
6653 (define-public cl-prevalence
6654 (sbcl-package->cl-source-package sbcl-cl-prevalence))
6655
6656 (define-public ecl-cl-prevalence
6657 (sbcl-package->ecl-package sbcl-cl-prevalence))
6658
6659 (define-public sbcl-series
6660 (let ((commit "da9061b336119d1e5214aff9117171d494d5a58a")
6661 (revision "1"))
6662 (package
6663 (name "sbcl-series")
6664 (version (git-version "2.2.11" revision commit))
6665 (source
6666 (origin
6667 (method git-fetch)
6668 (uri (git-reference
6669 (url "git://git.code.sf.net/p/series/series")
6670 (commit commit)))
6671 (file-name (git-file-name name version))
6672 (sha256
6673 (base32
6674 "07hk2lhfx42zk018pxqvn4gs77vd4n4g8m4xxbqaxgca76mifwfw"))))
6675 (build-system asdf-build-system/sbcl)
6676 (arguments
6677 ;; Disable the tests, they are apparently buggy and I didn't find
6678 ;; a simple way to make them run and pass.
6679 '(#:tests? #f))
6680 (synopsis "Series data structure for Common Lisp")
6681 (description
6682 "This Common Lisp library provides a series data structure much like
6683 a sequence, with similar kinds of operations. The difference is that in many
6684 situations, operations on series may be composed functionally and yet execute
6685 iteratively, without the need to construct intermediate series values
6686 explicitly. In this manner, series provide both the clarity of a functional
6687 programming style and the efficiency of an iterative programming style.")
6688 (home-page "http://series.sourceforge.net/")
6689 (license license:expat))))
6690
6691 (define-public cl-series
6692 (sbcl-package->cl-source-package sbcl-series))
6693
6694 (define-public ecl-series
6695 (sbcl-package->ecl-package sbcl-series))
6696
6697 (define-public sbcl-periods
6698 (let ((commit "983d4a57325db3c8def942f163133cec5391ec28")
6699 (revision "1"))
6700 (package
6701 (name "sbcl-periods")
6702 (version (git-version "0.0.2" revision commit))
6703 (source
6704 (origin
6705 (method git-fetch)
6706 (uri (git-reference
6707 (url "https://github.com/jwiegley/periods.git")
6708 (commit commit)))
6709 (file-name (git-file-name name version))
6710 (sha256
6711 (base32
6712 "0z30jr3lxz3cmi019fsl4lgcgwf0yqpn95v9zkkkwgymdrkd4lga"))))
6713 (build-system asdf-build-system/sbcl)
6714 (inputs
6715 `(("local-time" ,sbcl-local-time)))
6716 (synopsis "Common Lisp library for manipulating date/time objects")
6717 (description
6718 "Periods is a Common Lisp library providing a set of utilities for
6719 manipulating times, distances between times, and both contiguous and
6720 discontiguous ranges of time.")
6721 (home-page "https://github.com/jwiegley/periods")
6722 (license license:bsd-3))))
6723
6724 (define-public cl-periods
6725 (sbcl-package->cl-source-package sbcl-periods))
6726
6727 (define-public ecl-periods
6728 (sbcl-package->ecl-package sbcl-periods))
6729
6730 (define-public sbcl-periods-series
6731 (package
6732 (inherit sbcl-periods)
6733 (name "sbcl-periods-series")
6734 (inputs
6735 `(("periods" ,sbcl-periods)
6736 ("series" ,sbcl-series)))
6737 (arguments
6738 '(#:asd-file "periods-series.asd"
6739 #:asd-system-name "periods-series"))
6740 (description
6741 "Periods-series is an extension of the periods Common Lisp library
6742 providing functions compatible with the series Common Lisp library.")))
6743
6744 (define-public cl-periods-series
6745 (sbcl-package->cl-source-package sbcl-periods-series))
6746
6747 (define-public ecl-periods-series
6748 (sbcl-package->ecl-package sbcl-periods-series))
6749
6750 (define-public sbcl-metatilities-base
6751 (let ((commit "6eaa9e3ff0939a93a92109dd0fcd218de85417d5")
6752 (revision "1"))
6753 (package
6754 (name "sbcl-metatilities-base")
6755 (version (git-version "0.6.6" revision commit))
6756 (source
6757 (origin
6758 (method git-fetch)
6759 (uri (git-reference
6760 (url "https://github.com/gwkkwg/metatilities-base.git")
6761 (commit commit)))
6762 (file-name (git-file-name name version))
6763 (sha256
6764 (base32
6765 "0xpa86pdzlnf4v5g64j3ifaplx71sx2ha8b7vvakswi652679ma0"))))
6766 (build-system asdf-build-system/sbcl)
6767 (native-inputs
6768 `(("lift" ,sbcl-lift)))
6769 (synopsis "Core of the metatilities Common Lisp library")
6770 (description
6771 "Metatilities-base is the core of the metatilities Common Lisp library
6772 which implements a set of utilities.")
6773 (home-page "https://common-lisp.net/project/metatilities-base/")
6774 (license license:expat))))
6775
6776 (define-public cl-metatilities-base
6777 (sbcl-package->cl-source-package sbcl-metatilities-base))
6778
6779 (define-public ecl-metatilities-base
6780 (sbcl-package->ecl-package sbcl-metatilities-base))
6781
6782 (define-public sbcl-cl-containers
6783 (let ((commit "3d1df53c22403121bffb5d553cf7acb1503850e7")
6784 (revision "3"))
6785 (package
6786 (name "sbcl-cl-containers")
6787 (version (git-version "0.12.1" revision commit))
6788 (source
6789 (origin
6790 (method git-fetch)
6791 (uri (git-reference
6792 (url "https://github.com/gwkkwg/cl-containers.git")
6793 (commit commit)))
6794 (file-name (git-file-name name version))
6795 (sha256
6796 (base32
6797 "18s6jfq11n8nv9k4biz32pm1s7y9zl054ry1gmdbcf39nisy377y"))))
6798 (build-system asdf-build-system/sbcl)
6799 (native-inputs
6800 `(("lift" ,sbcl-lift)))
6801 (inputs
6802 `(("metatilities-base" ,sbcl-metatilities-base)))
6803 (arguments
6804 '(#:phases
6805 (modify-phases %standard-phases
6806 (add-after 'unpack 'relax-version-checks
6807 (lambda _
6808 (substitute* "cl-containers.asd"
6809 (("\\(:version \"metatilities-base\" \"0\\.6\\.6\"\\)")
6810 "\"metatilities-base\""))
6811 (substitute* "cl-containers-test.asd"
6812 (("\\(:version \"lift\" \"1\\.7\\.0\"\\)")
6813 "\"lift\""))
6814 #t)))))
6815 (synopsis "Container library for Common Lisp")
6816 (description
6817 "Common Lisp ships with a set of powerful built in data structures
6818 including the venerable list, full featured arrays, and hash-tables.
6819 CL-containers enhances and builds on these structures by adding containers
6820 that are not available in native Lisp (for example: binary search trees,
6821 red-black trees, sparse arrays and so on), and by providing a standard
6822 interface so that they are simpler to use and so that changing design
6823 decisions becomes significantly easier.")
6824 (home-page "https://common-lisp.net/project/cl-containers/")
6825 (license license:expat))))
6826
6827 (define-public cl-containers
6828 (sbcl-package->cl-source-package sbcl-cl-containers))
6829
6830 (define-public ecl-cl-containers
6831 (sbcl-package->ecl-package sbcl-cl-containers))
6832
6833 (define-public sbcl-xlunit
6834 (let ((commit "3805d34b1d8dc77f7e0ee527a2490194292dd0fc")
6835 (revision "1"))
6836 (package
6837 (name "sbcl-xlunit")
6838 (version (git-version "0.6.3" revision commit))
6839 (source
6840 (origin
6841 (method git-fetch)
6842 (uri (git-reference
6843 (url "http://git.kpe.io/xlunit.git")
6844 (commit commit)))
6845 (file-name (git-file-name name version))
6846 (sha256
6847 (base32
6848 "0argfmp9nghs4sihyj3f8ch9qfib2b7ll07v5m9ziajgzsfl5xw3"))))
6849 (build-system asdf-build-system/sbcl)
6850 (arguments
6851 '(#:phases
6852 (modify-phases %standard-phases
6853 (add-after 'unpack 'fix-tests
6854 (lambda _
6855 (substitute* "xlunit.asd"
6856 ((" :force t") ""))
6857 #t)))))
6858 (synopsis "Unit testing package for Common Lisp")
6859 (description
6860 "The XLUnit package is a toolkit for building test suites. It is based
6861 on the XPTest package by Craig Brozensky and the JUnit package by Kent Beck.")
6862 (home-page "http://quickdocs.org/xlunit/")
6863 (license license:bsd-3))))
6864
6865 (define-public cl-xlunit
6866 (sbcl-package->cl-source-package sbcl-xlunit))
6867
6868 (define-public ecl-xlunit
6869 (sbcl-package->ecl-package sbcl-xlunit))
6870
6871 (define-public sbcl-fprog
6872 (let ((commit "7016d1a98215f82605d1c158e7a16504ca1f4636")
6873 (revision "1"))
6874 (package
6875 (name "sbcl-fprog")
6876 (version (git-version "1.0.0" revision commit))
6877 (source
6878 (origin
6879 (method git-fetch)
6880 (uri (git-reference
6881 (url "https://github.com/jwiegley/cambl.git")
6882 (commit commit)))
6883 (file-name (git-file-name name version))
6884 (sha256
6885 (base32
6886 "103mry04j2k9vznsxm7wcvccgxkil92cdrv52miwcmxl8daa4jiz"))))
6887 (build-system asdf-build-system/sbcl)
6888 (synopsis "Functional programming utilities for Common Lisp")
6889 (description
6890 "@code{fprog} is a Common Lisp library allowing iteration over
6891 immutable lists sharing identical sublists.")
6892 (home-page "https://github.com/jwiegley/cambl")
6893 (license license:bsd-3))))
6894
6895 (define-public cl-fprog
6896 (sbcl-package->cl-source-package sbcl-fprog))
6897
6898 (define-public ecl-fprog
6899 (sbcl-package->ecl-package sbcl-fprog))
6900
6901 (define-public sbcl-cambl
6902 (let ((commit "7016d1a98215f82605d1c158e7a16504ca1f4636")
6903 (revision "1"))
6904 (package
6905 (inherit sbcl-fprog)
6906 (name "sbcl-cambl")
6907 (version (git-version "4.0.0" revision commit))
6908 (native-inputs
6909 `(("xlunit" ,sbcl-xlunit)))
6910 (inputs
6911 `(("alexandria" ,sbcl-alexandria)
6912 ("cl-containers" ,sbcl-cl-containers)
6913 ("local-time" ,sbcl-local-time)
6914 ("periods" ,sbcl-periods)
6915 ("fprog" ,sbcl-fprog)))
6916 (synopsis "Commoditized amounts and balances for Common Lisp")
6917 (description
6918 "CAMBL is a Common Lisp library providing a convenient facility for
6919 working with commoditized values. It does not allow compound units (and so is
6920 not suited for scientific operations) but does work rather nicely for the
6921 purpose of financial calculations."))))
6922
6923 (define-public cl-cambl
6924 (sbcl-package->cl-source-package sbcl-cambl))
6925
6926 (define-public ecl-cambl
6927 (sbcl-package->ecl-package sbcl-cambl))
6928
6929 (define-public sbcl-cl-ledger
6930 (let ((commit "08e0be41795e804cd36142e51756ad0b1caa377b")
6931 (revision "1"))
6932 (package
6933 (name "sbcl-cl-ledger")
6934 (version (git-version "4.0.0" revision commit))
6935 (source
6936 (origin
6937 (method git-fetch)
6938 (uri (git-reference
6939 (url "https://github.com/ledger/cl-ledger.git")
6940 (commit commit)))
6941 (file-name (git-file-name name version))
6942 (sha256
6943 (base32
6944 "1via0qf6wjcyxnfbmfxjvms0ik9j8rqbifgpmnhrzvkhrq9pv8h1"))))
6945 (build-system asdf-build-system/sbcl)
6946 (inputs
6947 `(("cambl" ,sbcl-cambl)
6948 ("cl-ppcre" ,sbcl-cl-ppcre)
6949 ("local-time" ,sbcl-local-time)
6950 ("periods-series" ,sbcl-periods-series)))
6951 (arguments
6952 '(#:phases
6953 (modify-phases %standard-phases
6954 (add-after 'unpack 'fix-system-definition
6955 (lambda _
6956 (substitute* "cl-ledger.asd"
6957 ((" :build-operation program-op") "")
6958 ((" :build-pathname \"cl-ledger\"") "")
6959 ((" :entry-point \"ledger::main\"") ""))
6960 #t)))))
6961 (synopsis "Common Lisp port of the Ledger accounting system")
6962 (description
6963 "CL-Ledger is a Common Lisp port of the Ledger double-entry accounting
6964 system.")
6965 (home-page "https://github.com/ledger/cl-ledger")
6966 (license license:bsd-3))))
6967
6968 (define-public cl-ledger
6969 (sbcl-package->cl-source-package sbcl-cl-ledger))
6970
6971 (define-public ecl-cl-ledger
6972 (sbcl-package->ecl-package sbcl-cl-ledger))
6973
6974 (define-public sbcl-bst
6975 (let ((commit "34f9c7e8e0a9f2c952fe310ab36cb630d5d9c15a")
6976 (revision "1"))
6977 (package
6978 (name "sbcl-bst")
6979 (version (git-version "1.1" revision commit))
6980 (source
6981 (origin
6982 (method git-fetch)
6983 (uri (git-reference
6984 (url "https://github.com/glv2/bst.git")
6985 (commit commit)))
6986 (file-name (git-file-name name version))
6987 (sha256
6988 (base32
6989 "1amxns7hvvh4arwbh8ciwfzplg127vh37dnbamv1m1kmmnmihfc8"))))
6990 (build-system asdf-build-system/sbcl)
6991 (native-inputs
6992 `(("alexandria" ,sbcl-alexandria)
6993 ("fiveam" ,sbcl-fiveam)))
6994 (synopsis "Binary search tree for Common Lisp")
6995 (description
6996 "BST is a Common Lisp library for working with binary search trees that
6997 can contain any kind of values.")
6998 (home-page "https://github.com/glv2/bst")
6999 (license license:gpl3))))
7000
7001 (define-public cl-bst
7002 (sbcl-package->cl-source-package sbcl-bst))
7003
7004 (define-public ecl-bst
7005 (sbcl-package->ecl-package sbcl-bst))
7006
7007 (define-public sbcl-cl-octet-streams
7008 (package
7009 (name "sbcl-cl-octet-streams")
7010 (version "1.0")
7011 (source
7012 (origin
7013 (method git-fetch)
7014 (uri (git-reference
7015 (url "https://github.com/glv2/cl-octet-streams.git")
7016 (commit (string-append "v" version))))
7017 (file-name (git-file-name name version))
7018 (sha256
7019 (base32
7020 "1d7mn6ydv0j2x4r7clpc9ijjwrnfpxmvhifv8n5j7jh7s744sf8d"))))
7021 (build-system asdf-build-system/sbcl)
7022 (native-inputs
7023 `(("fiveam" ,sbcl-fiveam)))
7024 (inputs
7025 `(("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
7026 (synopsis "In-memory octet streams for Common Lisp")
7027 (description
7028 "CL-octet-streams is a library implementing in-memory octet
7029 streams for Common Lisp. It was inspired by the trivial-octet-streams and
7030 cl-plumbing libraries.")
7031 (home-page "https://github.com/glv2/cl-octet-streams")
7032 (license license:gpl3+)))
7033
7034 (define-public cl-octet-streams
7035 (sbcl-package->cl-source-package sbcl-cl-octet-streams))
7036
7037 (define-public ecl-cl-octet-streams
7038 (sbcl-package->ecl-package sbcl-cl-octet-streams))
7039
7040 (define-public sbcl-lzlib
7041 (let ((commit "0de1db7129fef9a58a059d35a2fa2ecfc5b47b47")
7042 (revision "1"))
7043 (package
7044 (name "sbcl-lzlib")
7045 (version (git-version "1.0" revision commit))
7046 (source
7047 (origin
7048 (method git-fetch)
7049 (uri (git-reference
7050 (url "https://github.com/glv2/cl-lzlib.git")
7051 (commit commit)))
7052 (file-name (git-file-name name version))
7053 (sha256
7054 (base32
7055 "12ny7vj52fgnd8hb8fc8mry92vq4c1x72x2350191m4476j95clz"))))
7056 (build-system asdf-build-system/sbcl)
7057 (native-inputs
7058 `(("fiveam" ,sbcl-fiveam)))
7059 (inputs
7060 `(("cffi" ,sbcl-cffi)
7061 ("cl-octet-streams" ,sbcl-cl-octet-streams)
7062 ("lzlib" ,lzlib)))
7063 (arguments
7064 '(#:phases
7065 (modify-phases %standard-phases
7066 (add-after 'unpack 'fix-paths
7067 (lambda* (#:key inputs #:allow-other-keys)
7068 (substitute* "src/lzlib.lisp"
7069 (("liblz\\.so")
7070 (string-append (assoc-ref inputs "lzlib") "/lib/liblz.so")))
7071 #t)))))
7072 (synopsis "Common Lisp library for lzip (de)compression")
7073 (description
7074 "This Common Lisp library provides functions for lzip (LZMA)
7075 compression/decompression using bindings to the lzlib C library.")
7076 (home-page "https://github.com/glv2/cl-lzlib")
7077 (license license:gpl3+))))
7078
7079 (define-public cl-lzlib
7080 (sbcl-package->cl-source-package sbcl-lzlib))
7081
7082 (define-public ecl-lzlib
7083 (sbcl-package->ecl-package sbcl-lzlib))
7084
7085 (define-public sbcl-chanl
7086 (let ((commit "56e90a126c78b39bb621a01585e8d3b985238e8c")
7087 (revision "1"))
7088 (package
7089 (name "sbcl-chanl")
7090 (version (git-version "0.4.1" revision commit))
7091 (source
7092 (origin
7093 (method git-fetch)
7094 (uri (git-reference
7095 (url "https://github.com/zkat/chanl.git")
7096 (commit commit)))
7097 (file-name (git-file-name name version))
7098 (sha256
7099 (base32
7100 "0b1cf6c12qx5cy1fw2z42jgh566rp3l8nv5qf0qqc569s7bgmrh4"))))
7101 (build-system asdf-build-system/sbcl)
7102 (native-inputs
7103 `(("fiveam" ,sbcl-fiveam)))
7104 (inputs
7105 `(("bordeaux-threads" ,sbcl-bordeaux-threads)))
7106 (synopsis "Portable channel-based concurrency for Common Lisp")
7107 (description "Common Lisp library for channel-based concurrency. In
7108 a nutshell, you create various threads sequentially executing tasks you need
7109 done, and use channel objects to communicate and synchronize the state of these
7110 threads.")
7111 (home-page "https://github.com/zkat/chanl")
7112 (license (list license:expat license:bsd-3)))))
7113
7114 (define-public cl-chanl
7115 (sbcl-package->cl-source-package sbcl-chanl))
7116
7117 (define-public ecl-chanl
7118 (sbcl-package->ecl-package sbcl-chanl))
7119
7120 (define-public sbcl-cl-store
7121 (let ((commit "c787337a16ea8cf8a06227f35933a4ec774746b3")
7122 (revision "1"))
7123 (package
7124 (name "sbcl-cl-store")
7125 (version (git-version "0.8.11" revision commit))
7126 (source
7127 (origin
7128 (method git-fetch)
7129 (uri (git-reference
7130 (url "https://github.com/skypher/cl-store.git")
7131 (commit commit)))
7132 (file-name (git-file-name name version))
7133 (sha256
7134 (base32
7135 "194srkg8nrym19c6i7zbnkzshc1qhqa82m53qnkirz9fw928bqxr"))))
7136 (build-system asdf-build-system/sbcl)
7137 (native-inputs
7138 `(("rt" ,sbcl-rt)))
7139 (synopsis "Common Lisp library to serialize data")
7140 (description
7141 "CL-STORE is a portable serialization package which should give you the
7142 ability to store all Common Lisp data types into streams.")
7143 (home-page "https://www.common-lisp.net/project/cl-store/")
7144 (license license:expat))))
7145
7146 (define-public cl-store
7147 (sbcl-package->cl-source-package sbcl-cl-store))
7148
7149 (define-public ecl-cl-store
7150 (sbcl-package->ecl-package sbcl-cl-store))
7151
7152 (define-public sbcl-cl-gobject-introspection
7153 (let ((commit "7b703e2384945ea0ac39d9b766de434a08d81560")
7154 (revision "0"))
7155 (package
7156 (name "sbcl-cl-gobject-introspection")
7157 (version (git-version "0.3" revision commit))
7158 (home-page "https://github.com/andy128k/cl-gobject-introspection")
7159 (source
7160 (origin
7161 (method git-fetch)
7162 (uri (git-reference
7163 (url home-page)
7164 (commit commit)))
7165 (file-name (git-file-name name version))
7166 (sha256
7167 (base32
7168 "1zcqd2qj14f6b38vys8gr89s6cijsp9r8j43xa8lynilwva7bwyh"))))
7169 (build-system asdf-build-system/sbcl)
7170 (inputs
7171 `(("alexandria" ,sbcl-alexandria)
7172 ("cffi" ,sbcl-cffi)
7173 ("iterate" ,sbcl-iterate)
7174 ("trivial-garbage" ,sbcl-trivial-garbage)
7175 ("glib" ,glib)
7176 ("gobject-introspection" ,gobject-introspection)))
7177 (native-inputs
7178 `(("fiveam" ,sbcl-fiveam)))
7179 (arguments
7180 ;; TODO: Tests fail, see
7181 ;; https://github.com/andy128k/cl-gobject-introspection/issues/70.
7182 '(#:tests? #f
7183 #:phases
7184 (modify-phases %standard-phases
7185 (add-after (quote unpack) (quote fix-paths)
7186 (lambda* (#:key inputs #:allow-other-keys)
7187 (substitute* "src/init.lisp"
7188 (("libgobject-2\\.0\\.so")
7189 (string-append (assoc-ref inputs "glib") "/lib/libgobject-2.0.so"))
7190 (("libgirepository-1\\.0\\.so")
7191 (string-append (assoc-ref inputs "gobject-introspection")
7192 "/lib/libgirepository-1.0.so")))
7193 #t)))))
7194 (synopsis "Common Lisp bindings to GObject Introspection")
7195 (description
7196 "This library is a bridge between Common Lisp and GObject
7197 Introspection, which enables Common Lisp programs to access the full interface
7198 of C+GObject libraries without the need of writing dedicated bindings.")
7199 (license (list license:bsd-3
7200 ;; Tests are under a different license.
7201 license:llgpl)))))
7202
7203 (define-public cl-gobject-introspection
7204 (sbcl-package->cl-source-package sbcl-cl-gobject-introspection))
7205
7206 (define-public sbcl-string-case
7207 (let ((commit "718c761e33749e297cd2809c7ba3ade1985c49f7")
7208 (revision "0"))
7209 (package
7210 (name "sbcl-string-case")
7211 (version (git-version "0.0.2" revision commit))
7212 (home-page "https://github.com/pkhuong/string-case")
7213 (source
7214 (origin
7215 (method git-fetch)
7216 (uri (git-reference
7217 (url home-page)
7218 (commit commit)))
7219 (file-name (git-file-name name version))
7220 (sha256
7221 (base32
7222 "1n5i3yh0h5s636rcnwn7jwqy3rjflikra04lymimhpcshhjsk0md"))))
7223 (build-system asdf-build-system/sbcl)
7224 (synopsis "Efficient string= case in Common Lisp")
7225 (description
7226 "@code{string-case} is a Common Lisp macro that generates specialised decision
7227 trees to dispatch on string equality.")
7228 (license license:bsd-3))))
7229
7230 (define-public cl-string-case
7231 (sbcl-package->cl-source-package sbcl-string-case))
7232
7233 (define-public ecl-string-case
7234 (sbcl-package->ecl-package sbcl-string-case))
7235
7236 (define-public sbcl-global-vars
7237 (let ((commit "c749f32c9b606a1457daa47d59630708ac0c266e")
7238 (revision "0"))
7239 (package
7240 (name "sbcl-global-vars")
7241 (version (git-version "1.0.0" revision commit))
7242 (home-page "https://github.com/lmj/global-vars")
7243 (source
7244 (origin
7245 (method git-fetch)
7246 (uri (git-reference
7247 (url home-page)
7248 (commit commit)))
7249 (file-name (git-file-name name version))
7250 (sha256
7251 (base32
7252 "06m3xc8l3pgsapl8fvsi9wf6y46zs75cp9zn7zh6dc65v4s5wz3d"))))
7253 (build-system asdf-build-system/sbcl)
7254 (synopsis "Efficient global variables in Common Lisp")
7255 (description
7256 "In Common Lisp, a special variable that is never dynamically bound
7257 typically serves as a stand-in for a global variable. The @code{global-vars}
7258 library provides true global variables that are implemented by some compilers.
7259 An attempt to rebind a global variable properly results in a compiler error.
7260 That is, a global variable cannot be dynamically bound.
7261
7262 Global variables therefore allow us to communicate an intended usage that
7263 differs from special variables. Global variables are also more efficient than
7264 special variables, especially in the presence of threads.")
7265 (license license:expat))))
7266
7267 (define-public cl-global-vars
7268 (sbcl-package->cl-source-package sbcl-global-vars))
7269
7270 (define-public ecl-global-vars
7271 (sbcl-package->ecl-package sbcl-global-vars))
7272
7273 (define-public sbcl-trivial-file-size
7274 (let ((commit "1c1d672a01a446ba0391dbb4ffc40be3b0476f23")
7275 (revision "0"))
7276 (package
7277 (name "sbcl-trivial-file-size")
7278 (version (git-version "0.0.0" revision commit))
7279 (home-page "https://github.com/ruricolist/trivial-file-size")
7280 (source
7281 (origin
7282 (method git-fetch)
7283 (uri (git-reference
7284 (url home-page)
7285 (commit commit)))
7286 (file-name (git-file-name name version))
7287 (sha256
7288 (base32
7289 "17pp86c9zs4y7i1sh7q9gbfw9iqv6655k7fz8qbj9ly1ypgxp4qs"))))
7290 (build-system asdf-build-system/sbcl)
7291 (native-inputs
7292 `(("fiveam" ,sbcl-fiveam)))
7293 (synopsis "Size of a file in bytes in Common Lisp")
7294 (description
7295 "The canonical way to determine the size of a file in bytes, using Common Lisp,
7296 is to open the file with an element type of (unsigned-byte 8) and then
7297 calculate the length of the stream. This is less than ideal. In most cases
7298 it is better to get the size of the file from its metadata, using a system
7299 call.
7300
7301 This library exports a single function, file-size-in-octets. It returns the
7302 size of a file in bytes, using system calls when possible.")
7303 (license license:expat))))
7304
7305 (define-public cl-trivial-file-size
7306 (sbcl-package->cl-source-package sbcl-trivial-file-size))
7307
7308 (define-public ecl-trivial-file-size
7309 (sbcl-package->ecl-package sbcl-trivial-file-size))
7310
7311 (define-public sbcl-trivial-macroexpand-all
7312 (let ((commit "933270ac7107477de1bc92c1fd641fe646a7a8a9")
7313 (revision "0"))
7314 (package
7315 (name "sbcl-trivial-macroexpand-all")
7316 (version (git-version "0.0.0" revision commit))
7317 (home-page "https://github.com/cbaggers/trivial-macroexpand-all")
7318 (source
7319 (origin
7320 (method git-fetch)
7321 (uri (git-reference
7322 (url home-page)
7323 (commit commit)))
7324 (file-name (git-file-name name version))
7325 (sha256
7326 (base32
7327 "191hnn4b5j4i3crydmlzbm231kj0h7l8zj6mzj69r1npbzkas4bd"))))
7328 (build-system asdf-build-system/sbcl)
7329 (native-inputs
7330 `(("fiveam" ,sbcl-fiveam)))
7331 (synopsis "Portable macroexpand-all for Common Lisp")
7332 (description
7333 "This library provides a macroexpand-all function that calls the
7334 implementation specific equivalent.")
7335 (license license:unlicense))))
7336
7337 (define-public cl-trivial-macroexpand-all
7338 (sbcl-package->cl-source-package sbcl-trivial-macroexpand-all))
7339
7340 (define-public ecl-trivial-macroexpand-all
7341 (sbcl-package->ecl-package sbcl-trivial-macroexpand-all))
7342
7343 (define-public sbcl-serapeum
7344 (let ((commit "64f0c4a161bbbda7c275012ca1415b4293b9e169")
7345 (revision "1"))
7346 (package
7347 (name "sbcl-serapeum")
7348 (version (git-version "0.0.0" revision commit))
7349 (home-page "https://github.com/ruricolist/serapeum")
7350 (source
7351 (origin
7352 (method git-fetch)
7353 (uri (git-reference
7354 (url home-page)
7355 (commit commit)))
7356 (file-name (git-file-name name version))
7357 (sha256
7358 (base32
7359 "0djnj0py8hdjnk5j6shjq2kbmyxqd5sw79cilcfmpfz4dzjdgkx9"))))
7360 (build-system asdf-build-system/sbcl)
7361 (inputs
7362 `(("alexandria" ,sbcl-alexandria)
7363 ("trivia" ,sbcl-trivia)
7364 ("trivia.quasiquote" ,sbcl-trivia.quasiquote)
7365 ("split-sequence" ,sbcl-split-sequence)
7366 ("string-case" ,sbcl-string-case)
7367 ("parse-number" ,sbcl-parse-number)
7368 ("trivial-garbage" ,sbcl-trivial-garbage)
7369 ("bordeaux-threads" ,sbcl-bordeaux-threads)
7370 ("named-readtables" ,sbcl-named-readtables)
7371 ("fare-quasiquote-extras" ,sbcl-fare-quasiquote-extras)
7372 ("parse-declarations-1.0" ,sbcl-parse-declarations)
7373 ("global-vars" ,sbcl-global-vars)
7374 ("trivial-file-size" ,sbcl-trivial-file-size)
7375 ("trivial-macroexpand-all" ,sbcl-trivial-macroexpand-all)))
7376 (native-inputs
7377 `(("fiveam" ,sbcl-fiveam)
7378 ("local-time" ,sbcl-local-time)))
7379 (arguments
7380 '(#:phases
7381 (modify-phases %standard-phases
7382 (add-after 'unpack 'disable-failing-tests
7383 (lambda* (#:key inputs #:allow-other-keys)
7384 (substitute* "serapeum.asd"
7385 ;; Guix does not have Quicklisp, and probably never will.
7386 (("\\(:file \"quicklisp\"\\)") ""))
7387 #t)))))
7388 (synopsis "Common Lisp utility library beyond Alexandria")
7389 (description
7390 "Serapeum is a conservative library of Common Lisp utilities. It is a
7391 supplement, not a competitor, to Alexandria.")
7392 (license license:expat))))
7393
7394 (define-public cl-serapeum
7395 (sbcl-package->cl-source-package sbcl-serapeum))
7396
7397 (define-public sbcl-arrows
7398 (let ((commit "df7cf0067e0132d9697ac8b1a4f1b9c88d4f5382")
7399 (revision "0"))
7400 (package
7401 (name "sbcl-arrows")
7402 (version (git-version "0.2.0" revision commit))
7403 (source
7404 (origin
7405 (method git-fetch)
7406 (uri (git-reference
7407 (url "https://gitlab.com/Harleqin/arrows.git")
7408 (commit commit)))
7409 (file-name (git-file-name name version))
7410 (sha256
7411 (base32
7412 "042k9vkssrqx9nhp14wdzm942zgdxvp35mba0p2syz98i75im2yy"))))
7413 (build-system asdf-build-system/sbcl)
7414 (native-inputs
7415 `(("hu.dwim.stefil" ,sbcl-hu.dwim.stefil)))
7416 (synopsis "Clojure-like arrow macros for Common Lisp")
7417 (description
7418 "This library implements the @code{->} and @code{->>} macros from
7419 Clojure, as well as several expansions on the idea.")
7420 (home-page "https://gitlab.com/Harleqin/arrows")
7421 (license license:public-domain))))
7422
7423 (define-public cl-arrows
7424 (sbcl-package->cl-source-package sbcl-arrows))
7425
7426 (define-public ecl-arrows
7427 (sbcl-package->ecl-package sbcl-arrows))
7428
7429 (define-public sbcl-simple-parallel-tasks
7430 (let ((commit "db460f7a3f7bbfe2d3a2223ed21e162068d04dda")
7431 (revision "0"))
7432 (package
7433 (name "sbcl-simple-parallel-tasks")
7434 (version (git-version "1.0" revision commit))
7435 (source
7436 (origin
7437 (method git-fetch)
7438 (uri (git-reference
7439 (url "https://github.com/glv2/simple-parallel-tasks.git")
7440 (commit commit)))
7441 (file-name (git-file-name name version))
7442 (sha256
7443 (base32
7444 "0amw3qk23wnlyrsgzszs6rs7y4zvxv8dr03rnqhc60mnm8ds4dd5"))))
7445 (build-system asdf-build-system/sbcl)
7446 (native-inputs
7447 `(("fiveam" ,sbcl-fiveam)))
7448 (inputs
7449 `(("chanl" ,sbcl-chanl)))
7450 (synopsis "Common Lisp library to evaluate some forms in parallel")
7451 (description "This is a simple Common Lisp library to evaluate some
7452 forms in parallel.")
7453 (home-page "https://github.com/glv2/simple-parallel-tasks")
7454 (license license:gpl3))))
7455
7456 (define-public cl-simple-parallel-tasks
7457 (sbcl-package->cl-source-package sbcl-simple-parallel-tasks))
7458
7459 (define-public ecl-simple-parallel-tasks
7460 (sbcl-package->ecl-package sbcl-simple-parallel-tasks))
7461
7462 (define-public sbcl-cl-heap
7463 (package
7464 (name "sbcl-cl-heap")
7465 (version "0.1.6")
7466 (source
7467 (origin
7468 (method url-fetch)
7469 (uri (string-append "https://common-lisp.net/project/cl-heap/releases/"
7470 "cl-heap_" version ".tar.gz"))
7471 (sha256
7472 (base32
7473 "163hb07p2nxz126rpq3cj5dyala24n0by5i5786n2qcr1w0bak4i"))))
7474 (build-system asdf-build-system/sbcl)
7475 (native-inputs
7476 `(("xlunit" ,sbcl-xlunit)))
7477 (arguments
7478 `(#:test-asd-file "cl-heap-tests.asd"))
7479 (synopsis "Heap and priority queue data structures for Common Lisp")
7480 (description
7481 "CL-HEAP provides various implementations of heap data structures (a
7482 binary heap and a Fibonacci heap) as well as an efficient priority queue.")
7483 (home-page "https://common-lisp.net/project/cl-heap/")
7484 (license license:gpl3+)))
7485
7486 (define-public cl-heap
7487 (sbcl-package->cl-source-package sbcl-cl-heap))
7488
7489 (define-public ecl-cl-heap
7490 (sbcl-package->ecl-package sbcl-cl-heap))
7491
7492 (define-public sbcl-curry-compose-reader-macros
7493 (let ((commit "beaa92dedf392726c042184bfd6149fa8d9e6ac2")
7494 (revision "0"))
7495 (package
7496 (name "sbcl-curry-compose-reader-macros")
7497 (version (git-version "1.0.0" revision commit))
7498 (source
7499 (origin
7500 (method git-fetch)
7501 (uri
7502 (git-reference
7503 (url "https://github.com/eschulte/curry-compose-reader-macros.git")
7504 (commit commit)))
7505 (file-name (git-file-name name version))
7506 (sha256
7507 (base32
7508 "0rv9bl8xrad5wfcg5zs1dazvnpmvqz6297lbn8bywsrcfnlf7h98"))))
7509 (build-system asdf-build-system/sbcl)
7510 (inputs
7511 `(("alexandria" ,sbcl-alexandria)
7512 ("named-readtables" ,sbcl-named-readtables)))
7513 (synopsis "Reader macros for partial application and composition")
7514 (description
7515 "This Common Lisp library provides reader macros for concise expression
7516 of function partial application and composition.")
7517 (home-page "https://eschulte.github.io/curry-compose-reader-macros/")
7518 (license license:public-domain))))
7519
7520 (define-public cl-curry-compose-reader-macros
7521 (sbcl-package->cl-source-package sbcl-curry-compose-reader-macros))
7522
7523 (define-public ecl-curry-compose-reader-macros
7524 (sbcl-package->ecl-package sbcl-curry-compose-reader-macros))
7525
7526 (define-public sbcl-yason
7527 (package
7528 (name "sbcl-yason")
7529 (version "0.7.7")
7530 (source
7531 (origin
7532 (method git-fetch)
7533 (uri (git-reference
7534 (url "https://github.com/phmarek/yason.git")
7535 (commit (string-append "v" version))))
7536 (file-name (git-file-name name version))
7537 (sha256
7538 (base32
7539 "0479rbjgbj80jpk5bby18inlv1kfp771a82rlcq5psrz65qqa9bj"))))
7540 (build-system asdf-build-system/sbcl)
7541 (inputs
7542 `(("alexandria" ,sbcl-alexandria)
7543 ("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
7544 (synopsis "Common Lisp JSON parser/encoder")
7545 (description
7546 "YASON is a Common Lisp library for encoding and decoding data in the
7547 JSON interchange format.")
7548 (home-page "https://github.com/phmarek/yason")
7549 (license license:bsd-3)))
7550
7551 (define-public cl-yason
7552 (sbcl-package->cl-source-package sbcl-yason))
7553
7554 (define-public ecl-yason
7555 (sbcl-package->ecl-package sbcl-yason))
7556
7557 (define-public sbcl-stefil
7558 (let ((commit "0398548ec95dceb50fc2c2c03e5fb0ce49b86c7a")
7559 (revision "0"))
7560 (package
7561 (name "sbcl-stefil")
7562 (version (git-version "0.1" revision commit))
7563 (source
7564 (origin
7565 (method git-fetch)
7566 (uri (git-reference
7567 (url "https://gitlab.common-lisp.net/stefil/stefil.git")
7568 (commit commit)))
7569 (file-name (git-file-name name version))
7570 (sha256
7571 (base32
7572 "0bqz64q2szzhf91zyqyssmvrz7da6442rs01808pf3wrdq28bclh"))))
7573 (build-system asdf-build-system/sbcl)
7574 (inputs
7575 `(("alexandria" ,sbcl-alexandria)
7576 ("iterate" ,sbcl-iterate)
7577 ("metabang-bind" ,sbcl-metabang-bind)))
7578 (propagated-inputs
7579 ;; Swank doesn't have a pre-compiled package, therefore we must
7580 ;; propagate its sources.
7581 `(("swank" ,cl-slime-swank)))
7582 (arguments
7583 '(#:phases
7584 (modify-phases %standard-phases
7585 (add-after 'unpack 'drop-unnecessary-dependency
7586 (lambda _
7587 (substitute* "package.lisp"
7588 ((":stefil-system") ""))
7589 #t)))))
7590 (home-page "https://common-lisp.net/project/stefil/index-old.shtml")
7591 (synopsis "Simple test framework")
7592 (description
7593 "Stefil is a simple test framework for Common Lisp, with a focus on
7594 interactive development.")
7595 (license license:public-domain))))
7596
7597 (define-public cl-stefil
7598 (sbcl-package->cl-source-package sbcl-stefil))
7599
7600 (define-public sbcl-graph
7601 (let ((commit "78bf9ec930d8eae4f0861b5be76765fb1e45e24f")
7602 (revision "0"))
7603 (package
7604 (name "sbcl-graph")
7605 (version (git-version "0.0.0" revision commit))
7606 (source
7607 (origin
7608 (method git-fetch)
7609 (uri
7610 (git-reference
7611 (url "https://github.com/eschulte/graph.git")
7612 (commit commit)))
7613 (file-name (git-file-name name version))
7614 (sha256
7615 (base32
7616 "1qpij4xh8bqwc2myahpilcbh916v7vg0acz2fij14d3y0jm02h0g"))
7617 (patches (search-patches "sbcl-graph-asdf-definitions.patch"))))
7618 (build-system asdf-build-system/sbcl)
7619 (native-inputs
7620 `(("stefil" ,sbcl-stefil)))
7621 (inputs
7622 `(("alexandria" ,sbcl-alexandria)
7623 ("cl-heap" ,sbcl-cl-heap)
7624 ("curry-compose-reader-macros" ,sbcl-curry-compose-reader-macros)
7625 ("metabang-bind" ,sbcl-metabang-bind)
7626 ("named-readtables" ,sbcl-named-readtables)))
7627 (arguments
7628 '(#:test-asd-file "graph-test.asd"))
7629 (synopsis "Graph data structure and algorithms for Common Lisp")
7630 (description
7631 "The GRAPH Common Lisp library provides a data structures to represent
7632 graphs, as well as some graph manipulation and analysis algorithms (shortest
7633 path, maximum flow, minimum spanning tree, etc.).")
7634 (home-page "https://eschulte.github.io/graph/")
7635 (license license:gpl3+))))
7636
7637 (define-public cl-graph
7638 (sbcl-package->cl-source-package sbcl-graph))
7639
7640 (define-public sbcl-graph-dot
7641 (package
7642 (inherit sbcl-graph)
7643 (name "sbcl-graph-dot")
7644 (inputs
7645 `(("alexandria" ,sbcl-alexandria)
7646 ("cl-ppcre" ,sbcl-cl-ppcre)
7647 ("curry-compose-reader-macros" ,sbcl-curry-compose-reader-macros)
7648 ("graph" ,sbcl-graph)
7649 ("metabang-bind" ,sbcl-metabang-bind)
7650 ("named-readtables" ,sbcl-named-readtables)))
7651 (arguments
7652 (substitute-keyword-arguments (package-arguments sbcl-graph)
7653 ((#:asd-file _ "") "graph-dot.asd")
7654 ((#:asd-system-name _ #f) "graph-dot")))
7655 (synopsis "Serialize graphs to and from DOT format")))
7656
7657 (define-public sbcl-graph-json
7658 (package
7659 (inherit sbcl-graph)
7660 (name "sbcl-graph-json")
7661 (inputs
7662 `(("alexandria" ,sbcl-alexandria)
7663 ("curry-compose-reader-macros" ,sbcl-curry-compose-reader-macros)
7664 ("graph" ,sbcl-graph)
7665 ("metabang-bind" ,sbcl-metabang-bind)
7666 ("named-readtables" ,sbcl-named-readtables)
7667 ("yason" ,sbcl-yason)))
7668 (arguments
7669 (substitute-keyword-arguments (package-arguments sbcl-graph)
7670 ((#:asd-file _ "") "graph-json.asd")
7671 ((#:asd-system-name _ #f) "graph-json")))
7672 (synopsis "Serialize graphs to and from JSON format")))
7673
7674 (define-public sbcl-trivial-indent
7675 (let ((commit "2d016941751647c6cc5bd471751c2cf68861c94a")
7676 (revision "0"))
7677 (package
7678 (name "sbcl-trivial-indent")
7679 (version (git-version "1.0.0" revision commit))
7680 (source
7681 (origin
7682 (method git-fetch)
7683 (uri
7684 (git-reference
7685 (url "https://github.com/Shinmera/trivial-indent")
7686 (commit commit)))
7687 (file-name (git-file-name name version))
7688 (sha256
7689 (base32
7690 "1sj90nqz17w4jq0ixz00gb9g5g6d2s7l8r17zdby27gxxh51w266"))))
7691 (build-system asdf-build-system/sbcl)
7692 (synopsis "Simple Common Lisp library to allow indentation hints for SWANK")
7693 (description
7694 "This library allows you to define custom indentation hints for your
7695 macros if the one recognised by SLIME automatically produces unwanted
7696 results.")
7697 (home-page "https://shinmera.github.io/trivial-indent/")
7698 (license license:zlib))))
7699
7700 (define-public cl-trivial-indent
7701 (sbcl-package->cl-source-package sbcl-trivial-indent))
7702
7703 (define-public sbcl-documentation-utils
7704 (let ((commit "98630dd5f7e36ae057fa09da3523f42ccb5d1f55")
7705 (revision "0"))
7706 (package
7707 (name "sbcl-documentation-utils")
7708 (version (git-version "1.2.0" revision commit))
7709 (source
7710 (origin
7711 (method git-fetch)
7712 (uri
7713 (git-reference
7714 (url "https://github.com/Shinmera/documentation-utils.git")
7715 (commit commit)))
7716 (file-name (git-file-name name version))
7717 (sha256
7718 (base32
7719 "098qhkqskmmrh4wix34mawf7p5c87yql28r51r75yjxj577k5idq"))))
7720 (build-system asdf-build-system/sbcl)
7721 (inputs
7722 `(("trivial-indent" ,sbcl-trivial-indent)))
7723 (synopsis "Few simple tools to document Common Lisp libraries")
7724 (description
7725 "This is a small library to help you with managing the Common Lisp
7726 docstrings for your library.")
7727 (home-page "https://shinmera.github.io/documentation-utils/")
7728 (license license:zlib))))
7729
7730 (define-public cl-documentation-utils
7731 (sbcl-package->cl-source-package sbcl-documentation-utils))
7732
7733 (define-public ecl-documentation-utils
7734 (sbcl-package->ecl-package sbcl-documentation-utils))
7735
7736 (define-public sbcl-form-fiddle
7737 (let ((commit "e0c23599dbb8cff3e83e012f3d86d0764188ad18")
7738 (revision "0"))
7739 (package
7740 (name "sbcl-form-fiddle")
7741 (version (git-version "1.1.0" revision commit))
7742 (source
7743 (origin
7744 (method git-fetch)
7745 (uri
7746 (git-reference
7747 (url "https://github.com/Shinmera/form-fiddle")
7748 (commit commit)))
7749 (file-name (git-file-name name version))
7750 (sha256
7751 (base32
7752 "041iznc9mpfyrl0sv5893ys9pbb2pvbn9g3clarqi7gsfj483jln"))))
7753 (build-system asdf-build-system/sbcl)
7754 (inputs
7755 `(("documentation-utils" ,sbcl-documentation-utils)))
7756 (synopsis "Utilities to destructure Common Lisp lambda forms")
7757 (description
7758 "Often times we need to destructure a form definition in a Common Lisp
7759 macro. This library provides a set of simple utilities to help with that.")
7760 (home-page "https://shinmera.github.io/form-fiddle/")
7761 (license license:zlib))))
7762
7763 (define-public cl-form-fiddle
7764 (sbcl-package->cl-source-package sbcl-form-fiddle))
7765
7766 (define-public sbcl-parachute
7767 (let ((commit "ca04dd8e43010a6dfffa26dbe1d62af86008d666")
7768 (revision "0"))
7769 (package
7770 (name "sbcl-parachute")
7771 (version (git-version "1.1.1" revision commit))
7772 (source
7773 (origin
7774 (method git-fetch)
7775 (uri
7776 (git-reference
7777 (url "https://github.com/Shinmera/parachute")
7778 (commit commit)))
7779 (file-name (git-file-name name version))
7780 (sha256
7781 (base32
7782 "1mvsm3r0r6a2bg75nw0q7n9vlby3ch45qjl7hnb5k1z2n5x5lh60"))))
7783 (build-system asdf-build-system/sbcl)
7784 (inputs
7785 `(("documentation-utils" ,sbcl-documentation-utils)
7786 ("form-fiddle" ,sbcl-form-fiddle)))
7787 (synopsis "Extensible and cross-compatible testing framework for Common Lisp")
7788 (description
7789 "Parachute is a simple-to-use and extensible testing framework.
7790 In Parachute, things are organised as a bunch of named tests within a package.
7791 Each test can contain a bunch of test forms that make up its body.")
7792 (home-page "https://shinmera.github.io/parachute/")
7793 (license license:zlib))))
7794
7795 (define-public cl-parachute
7796 (sbcl-package->cl-source-package sbcl-parachute))
7797
7798 (define-public sbcl-array-utils
7799 (let ((commit "f90eb9070d0b2205af51126a35033574725e5c56")
7800 (revision "0"))
7801 (package
7802 (name "sbcl-array-utils")
7803 (version (git-version "1.1.1" revision commit))
7804 (source
7805 (origin
7806 (method git-fetch)
7807 (uri
7808 (git-reference
7809 (url "https://github.com/Shinmera/array-utils")
7810 (commit commit)))
7811 (file-name (git-file-name name version))
7812 (sha256
7813 (base32
7814 "0zhwfbpr53vs1ii4sx75dz2k9yhh1xpwdqqpg8nmfndxkmhpbi3x"))))
7815 (build-system asdf-build-system/sbcl)
7816 (native-inputs
7817 `(("parachute" ,sbcl-parachute)))
7818 (inputs
7819 `(("documentation-utils" ,sbcl-documentation-utils)))
7820 (synopsis "Tiny collection of array and vector utilities for Common Lisp")
7821 (description
7822 "A miniature toolkit that contains some useful shifting/popping/pushing
7823 functions for arrays and vectors. Originally from Plump.")
7824 (home-page "https://shinmera.github.io/array-utils/")
7825 (license license:zlib))))
7826
7827 (define-public cl-array-utils
7828 (sbcl-package->cl-source-package sbcl-array-utils))
7829
7830 (define-public sbcl-plump
7831 (let ((commit "16f1231bf706cfbc54d9e55a853ca945e4452a08")
7832 (revision "0"))
7833 (package
7834 (name "sbcl-plump")
7835 (version (git-version "2.0.0" revision commit))
7836 (source
7837 (origin
7838 (method git-fetch)
7839 (uri
7840 (git-reference
7841 (url "https://github.com/Shinmera/plump")
7842 (commit commit)))
7843 (file-name (git-file-name name version))
7844 (sha256
7845 (base32
7846 "0705k8pbip51v74rccgwscwph439f2pma9f915qf1h4bhjx999ip"))))
7847 (build-system asdf-build-system/sbcl)
7848 (inputs
7849 `(("array-utils" ,sbcl-array-utils)
7850 ("documentation-utils" ,sbcl-documentation-utils)))
7851 (synopsis "Lenient XML / XHTML / HTML parser for Common Lisp")
7852 (description
7853 "Plump is a parser for HTML/XML-like documents, focusing on being
7854 lenient towards invalid markup. It can handle things like invalid attributes,
7855 bad closing tag order, unencoded entities, inexistent tag types, self-closing
7856 tags and so on. It parses documents to a class representation and offers a
7857 small set of DOM functions to manipulate it. It can be extended to parse to
7858 your own classes.")
7859 (home-page "https://shinmera.github.io/plump/")
7860 (license license:zlib))))
7861
7862 (define-public cl-plump
7863 (sbcl-package->cl-source-package sbcl-plump))
7864
7865 (define-public sbcl-antik-base
7866 (let ((commit "e4711a69b3d6bf37b5727af05c3cfd03e8428ba3")
7867 (revision "1"))
7868 (package
7869 (name "sbcl-antik-base")
7870 (version (git-version "0.0.0" revision commit))
7871 (source
7872 (origin
7873 (method git-fetch)
7874 (uri (git-reference
7875 (url "https://gitlab.common-lisp.net/antik/antik.git")
7876 (commit commit)))
7877 (file-name (git-file-name name version))
7878 (sha256
7879 (base32
7880 "047ga2c38par2xbgg4qx6hwv06qhf1c1f67as8xvir6s80lip1km"))))
7881 (build-system asdf-build-system/sbcl)
7882 (inputs
7883 `(("alexandria" ,sbcl-alexandria)
7884 ("cl-ppcre" ,sbcl-cl-ppcre)
7885 ("iterate" ,sbcl-iterate)
7886 ("metabang-bind" ,sbcl-metabang-bind)
7887 ("named-readtables" ,sbcl-named-readtables)
7888 ("split-sequence" ,sbcl-split-sequence)))
7889 (native-inputs
7890 `(("lisp-unit" ,sbcl-lisp-unit)))
7891 (synopsis "Scientific and engineering computation in Common Lisp")
7892 (description
7893 "Antik provides a foundation for scientific and engineering
7894 computation in Common Lisp. It is designed not only to facilitate
7895 numerical computations, but to permit the use of numerical computation
7896 libraries and the interchange of data and procedures, whether
7897 foreign (non-Lisp) or Lisp libraries. It is named after the
7898 Antikythera mechanism, one of the oldest examples of a scientific
7899 computer known.")
7900 (home-page "https://common-lisp.net/project/antik/")
7901 (license license:gpl3))))
7902
7903 (define-public cl-antik-base
7904 (sbcl-package->cl-source-package sbcl-antik-base))
7905
7906 (define-public ecl-antik-base
7907 (sbcl-package->ecl-package sbcl-antik-base))
7908
7909 (define-public sbcl-foreign-array
7910 (package
7911 (inherit sbcl-antik-base)
7912 (name "sbcl-foreign-array")
7913 (arguments
7914 (substitute-keyword-arguments (package-arguments sbcl-antik-base)
7915 ((#:asd-file _ "") "foreign-array.asd")
7916 ((#:asd-system-name _ #f) "foreign-array")))
7917 (inputs
7918 `(("antik-base" ,sbcl-antik-base)
7919 ("cffi" ,sbcl-cffi)
7920 ("trivial-garbage" ,sbcl-trivial-garbage)
7921 ("static-vectors" ,sbcl-static-vectors)))
7922 (synopsis "Common Lisp library providing access to foreign arrays")))
7923
7924 (define-public cl-foreign-array
7925 (sbcl-package->cl-source-package sbcl-foreign-array))
7926
7927 (define-public ecl-foreign-array
7928 (sbcl-package->ecl-package sbcl-foreign-array))
7929
7930 (define-public sbcl-physical-dimension
7931 (package
7932 (inherit sbcl-antik-base)
7933 (name "sbcl-physical-dimension")
7934 (inputs
7935 `(("fare-utils" ,sbcl-fare-utils)
7936 ("foreign-array" ,sbcl-foreign-array)
7937 ("trivial-utf-8" ,sbcl-trivial-utf-8)))
7938 (arguments
7939 (substitute-keyword-arguments (package-arguments sbcl-antik-base)
7940 ((#:asd-file _ "") "physical-dimension.asd")
7941 ((#:asd-system-name _ #f) "physical-dimension")))
7942 (synopsis
7943 "Common Lisp library providing computations with physical units")))
7944
7945 (define-public cl-physical-dimension
7946 (sbcl-package->cl-source-package sbcl-physical-dimension))
7947
7948 (define-public sbcl-science-data
7949 (package
7950 (inherit sbcl-antik-base)
7951 (name "sbcl-science-data")
7952 (inputs
7953 `(("physical-dimension" ,sbcl-physical-dimension)
7954 ("drakma" ,sbcl-drakma)))
7955 (arguments
7956 (substitute-keyword-arguments (package-arguments sbcl-antik-base)
7957 ((#:asd-file _ "") "science-data.asd")
7958 ((#:asd-system-name _ #f) "science-data")))
7959 (synopsis
7960 "Common Lisp library for scientific and engineering numerical data")))
7961
7962 (define-public cl-science-data
7963 (sbcl-package->cl-source-package sbcl-science-data))
7964
7965 (define-public sbcl-gsll
7966 (let ((commit "1a8ada22f9cf5ed7372d352b2317f4ccdb6ab308")
7967 (revision "1"))
7968 (package
7969 (name "sbcl-gsll")
7970 (version (git-version "0.0.0" revision commit))
7971 (source
7972 (origin
7973 (method git-fetch)
7974 (uri (git-reference
7975 (url "https://gitlab.common-lisp.net/antik/gsll.git")
7976 (commit commit)))
7977 (file-name (git-file-name name version))
7978 (sha256
7979 (base32
7980 "0z5nypfk26hxihb08p085644afawicrgb4xvadh3lmrn46qbjfn4"))))
7981 (build-system asdf-build-system/sbcl)
7982 (native-inputs
7983 `(("lisp-unit" ,sbcl-lisp-unit)))
7984 (inputs
7985 `(("alexandria" ,sbcl-alexandria)
7986 ("cffi-grovel" ,sbcl-cffi-grovel)
7987 ("cffi-libffi" ,sbcl-cffi-libffi)
7988 ("foreign-array" ,sbcl-foreign-array)
7989 ("gsl" ,gsl)
7990 ("metabang-bind" ,sbcl-metabang-bind)
7991 ("trivial-features" ,sbcl-trivial-features)
7992 ("trivial-garbage" ,sbcl-trivial-garbage)))
7993 (arguments
7994 `(#:tests? #f
7995 #:phases
7996 (modify-phases %standard-phases
7997 (add-after 'unpack 'fix-cffi-paths
7998 (lambda* (#:key inputs #:allow-other-keys)
7999 (substitute* "gsll.asd"
8000 ((":depends-on \\(#:foreign-array")
8001 ":depends-on (#:foreign-array #:cffi-libffi"))
8002 (substitute* "init/init.lisp"
8003 (("libgslcblas.so" all)
8004 (string-append
8005 (assoc-ref inputs "gsl") "/lib/" all)))
8006 (substitute* "init/init.lisp"
8007 (("libgsl.so" all)
8008 (string-append
8009 (assoc-ref inputs "gsl") "/lib/" all))))))))
8010 (synopsis "GNU Scientific Library for Lisp")
8011 (description
8012 "The GNU Scientific Library for Lisp (GSLL) allows the use of the
8013 GNU Scientific Library (GSL) from Common Lisp. This library provides a
8014 full range of common mathematical operations useful to scientific and
8015 engineering applications. The design of the GSLL interface is such
8016 that access to most of the GSL library is possible in a Lisp-natural
8017 way; the intent is that the user not be hampered by the restrictions
8018 of the C language in which GSL has been written. GSLL thus provides
8019 interactive use of GSL for getting quick answers, even for someone not
8020 intending to program in Lisp.")
8021 (home-page "https://common-lisp.net/project/gsll/")
8022 (license license:gpl3))))
8023
8024 (define-public cl-gsll
8025 (sbcl-package->cl-source-package sbcl-gsll))
8026
8027 (define-public sbcl-antik
8028 (package
8029 (inherit sbcl-antik-base)
8030 (name "sbcl-antik")
8031 (inputs
8032 `(("gsll" ,sbcl-gsll)
8033 ("physical-dimension" ,sbcl-physical-dimension)))
8034 (arguments
8035 (substitute-keyword-arguments (package-arguments sbcl-antik-base)
8036 ((#:asd-file _ "") "antik.asd")
8037 ((#:asd-system-name _ #f) "antik")))))
8038
8039 (define-public cl-antik
8040 (sbcl-package->cl-source-package sbcl-antik))
8041
8042 (define-public sbcl-cl-interpol
8043 (let ((commit "1fd288d861db85bc4677cff3cdd6af75fda1afb4")
8044 (revision "1"))
8045 (package
8046 (name "sbcl-cl-interpol")
8047 (version (git-version "0.2.6" revision commit))
8048 (source
8049 (origin
8050 (method git-fetch)
8051 (uri (git-reference
8052 (url "https://github.com/edicl/cl-interpol.git")
8053 (commit commit)))
8054 (file-name (git-file-name name version))
8055 (sha256
8056 (base32
8057 "1hnikak52hmcq1r5f616m6qq1108qnkw80pja950nv1fq5p0ppjn"))))
8058 (build-system asdf-build-system/sbcl)
8059 (inputs
8060 `(("cl-unicode" ,sbcl-cl-unicode)
8061 ("named-readtables" ,sbcl-named-readtables)))
8062 (native-inputs
8063 `(("flexi-streams" ,sbcl-flexi-streams)))
8064 (synopsis "String interpolation for Common Lisp")
8065 (description
8066 "CL-INTERPOL is a library for Common Lisp which modifies the
8067 reader so that you can have interpolation within strings similar to
8068 Perl or Unix Shell scripts. It also provides various ways to insert
8069 arbitrary characters into literal strings even if your editor/IDE
8070 doesn't support them.")
8071 (home-page "https://edicl.github.io/cl-interpol/")
8072 (license license:bsd-3))))
8073
8074 (define-public cl-interpol
8075 (sbcl-package->cl-source-package sbcl-cl-interpol))
8076
8077 (define-public ecl-cl-interpol
8078 (sbcl-package->ecl-package sbcl-cl-interpol))
8079
8080 (define sbcl-symbol-munger-boot0
8081 ;; There is a cyclical dependency between symbol-munger and lisp-unit2.
8082 ;; See https://github.com/AccelerationNet/symbol-munger/issues/4
8083 (let ((commit "cc2bb4b7acd454d756484aec81ba487648385fc3")
8084 (revision "1"))
8085 (package
8086 (name "sbcl-symbol-munger-boot0")
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 "0diav5ricqsybqvbp4bkxyj3bn3v9n7xb2pqqc4vg1algsw2pyjl"))))
8098 (build-system asdf-build-system/sbcl)
8099 (arguments
8100 `(#:asd-file "symbol-munger.asd"
8101 #:asd-system-name "symbol-munger"))
8102 (inputs
8103 `(("iterate" ,sbcl-iterate)
8104 ("alexandria" ,sbcl-alexandria)))
8105 (native-inputs
8106 `(("lisp-unit" ,sbcl-lisp-unit)))
8107 (synopsis
8108 "Capitalization and spacing conversion functions for Common Lisp")
8109 (description
8110 "This is a Common Lisp library to change the capitalization and spacing
8111 of a string or a symbol. It can convert to and from Lisp, english, underscore
8112 and camel-case rules.")
8113 (home-page "https://github.com/AccelerationNet/symbol-munger")
8114 ;; The package declares a BSD license, but all of the license
8115 ;; text is MIT.
8116 ;; See https://github.com/AccelerationNet/symbol-munger/issues/5
8117 (license license:expat))))
8118
8119 (define sbcl-lisp-unit2-boot0
8120 ;; There is a cyclical dependency between symbol-munger and lisp-unit2.
8121 ;; See https://github.com/AccelerationNet/symbol-munger/issues/4
8122 (let ((commit "fb9721524d1e4e73abb223ee036d74ce14a5505c")
8123 (revision "1"))
8124 (package
8125 (name "sbcl-lisp-unit2-boot0")
8126 (version (git-version "0.2.0" revision commit))
8127 (source
8128 (origin
8129 (method git-fetch)
8130 (uri (git-reference
8131 (url "https://github.com/AccelerationNet/lisp-unit2.git")
8132 (commit commit)))
8133 (file-name (git-file-name name version))
8134 (sha256
8135 (base32
8136 "1rsqy8y0jqll6xn9a593848f5wvd5ribv4csry1ly0hmdhfnqzlp"))))
8137 (build-system asdf-build-system/sbcl)
8138 (arguments
8139 `(#:asd-file "lisp-unit2.asd"
8140 #:asd-system-name "lisp-unit2"))
8141 (inputs
8142 `(("alexandria" ,sbcl-alexandria)
8143 ("cl-interpol" ,sbcl-cl-interpol)
8144 ("iterate" ,sbcl-iterate)
8145 ("symbol-munger-boot0" ,sbcl-symbol-munger-boot0)))
8146 (synopsis "Test Framework for Common Lisp")
8147 (description
8148 "LISP-UNIT2 is a Common Lisp library that supports unit testing in the
8149 style of JUnit for Java. It is a new version of the lisp-unit library written
8150 by Chris Riesbeck.")
8151 (home-page "https://github.com/AccelerationNet/lisp-unit2")
8152 (license license:expat))))
8153
8154 (define-public sbcl-symbol-munger
8155 (let ((commit "97598d4c3c53fd5da72ab78908fbd5d8c7a13416")
8156 (revision "1"))
8157 (package
8158 (name "sbcl-symbol-munger")
8159 (version (git-version "0.0.1" revision commit))
8160 (source
8161 (origin
8162 (method git-fetch)
8163 (uri (git-reference
8164 (url "https://github.com/AccelerationNet/symbol-munger.git")
8165 (commit commit)))
8166 (file-name (git-file-name name version))
8167 (sha256
8168 (base32
8169 "0y8jywjy0ldyhp7bxf16fdvdd2qgqnd7nlhlqfpfnzxcqk4xy1km"))))
8170 (build-system asdf-build-system/sbcl)
8171 (inputs
8172 `(("alexandria" ,sbcl-alexandria)
8173 ("iterate" ,sbcl-iterate)))
8174 (native-inputs
8175 `(("lisp-unit2-boot0" ,sbcl-lisp-unit2-boot0)))
8176 (synopsis
8177 "Capitalization and spacing conversion functions for Common Lisp")
8178 (description
8179 "This is a Common Lisp library to change the capitalization and spacing
8180 of a string or a symbol. It can convert to and from Lisp, english, underscore
8181 and camel-case rules.")
8182 (home-page "https://github.com/AccelerationNet/symbol-munger")
8183 ;; The package declares a BSD license, but all of the license
8184 ;; text is MIT.
8185 ;; See https://github.com/AccelerationNet/symbol-munger/issues/5
8186 (license license:expat))))
8187
8188 (define-public cl-symbol-munger
8189 (sbcl-package->cl-source-package sbcl-symbol-munger))
8190
8191 (define-public ecl-symbol-munger
8192 (sbcl-package->ecl-package sbcl-symbol-munger))
8193
8194 (define-public sbcl-lisp-unit2
8195 (package
8196 (inherit sbcl-lisp-unit2-boot0)
8197 (name "sbcl-lisp-unit2")
8198 (inputs
8199 `(("alexandria" ,sbcl-alexandria)
8200 ("cl-interpol" ,sbcl-cl-interpol)
8201 ("iterate" ,sbcl-iterate)
8202 ("symbol-munger" ,sbcl-symbol-munger)))))
8203
8204 (define-public cl-lisp-unit2
8205 (sbcl-package->cl-source-package sbcl-lisp-unit2))
8206
8207 (define-public ecl-lisp-unit2
8208 (sbcl-package->ecl-package sbcl-lisp-unit2))
8209
8210 (define-public sbcl-cl-csv
8211 (let ((commit "3eba29c8364b033fbe0d189c2500559278b6a362")
8212 (revision "1"))
8213 (package
8214 (name "sbcl-cl-csv")
8215 (version (git-version "1.0.6" revision commit))
8216 (source
8217 (origin
8218 (method git-fetch)
8219 (uri (git-reference
8220 (url "https://github.com/AccelerationNet/cl-csv.git")
8221 (commit commit)))
8222 (file-name (git-file-name name version))
8223 (sha256
8224 (base32
8225 "07h4ni89jzx93clx453hlnnb5g53hhlcmz5hghqv6ysam48lc8g6"))))
8226 (build-system asdf-build-system/sbcl)
8227 (arguments
8228 ;; See: https://github.com/AccelerationNet/cl-csv/pull/34
8229 `(#:tests? #f))
8230 (inputs
8231 `(("alexandria" ,sbcl-alexandria)
8232 ("cl-interpol" ,sbcl-cl-interpol)
8233 ("iterate" ,sbcl-iterate)))
8234 (native-inputs
8235 `(("lisp-unit2" ,sbcl-lisp-unit2)))
8236 (synopsis "Common lisp library for comma-separated values")
8237 (description
8238 "This is a Common Lisp library providing functions to read/write CSV
8239 from/to strings, streams and files.")
8240 (home-page "https://github.com/AccelerationNet/cl-csv")
8241 (license license:bsd-3))))
8242
8243 (define-public cl-csv
8244 (sbcl-package->cl-source-package sbcl-cl-csv))
8245
8246 (define-public ecl-cl-csv
8247 (sbcl-package->ecl-package sbcl-cl-csv))
8248
8249 (define-public sbcl-external-program
8250 (let ((commit "5888b8f1fd3953feeeacecbba4384ddda584a749")
8251 (revision "1"))
8252 (package
8253 (name "sbcl-external-program")
8254 (version (git-version "0.0.6" revision commit))
8255 (source
8256 (origin
8257 (method git-fetch)
8258 (uri (git-reference
8259 (url "https://github.com/sellout/external-program.git")
8260 (commit commit)))
8261 (file-name (git-file-name name version))
8262 (sha256
8263 (base32
8264 "0vww1x3yilb3bjwg6k184vaj4vxyxw4vralhnlm6lk4xac67kc9z"))))
8265 (build-system asdf-build-system/sbcl)
8266 (inputs
8267 `(("trivial-features" ,sbcl-trivial-features)))
8268 (native-inputs
8269 `(("fiveam" ,sbcl-fiveam)))
8270 (synopsis "Common Lisp library for running external programs")
8271 (description
8272 "EXTERNAL-PROGRAM enables running programs outside the Lisp
8273 process. It is an attempt to make the RUN-PROGRAM functionality in
8274 implementations like SBCL and CCL as portable as possible without
8275 sacrificing much in the way of power.")
8276 (home-page "https://github.com/sellout/external-program")
8277 (license license:llgpl))))
8278
8279 (define-public cl-external-program
8280 (sbcl-package->cl-source-package sbcl-external-program))
8281
8282 (define-public ecl-external-program
8283 (sbcl-package->ecl-package sbcl-external-program))
8284
8285 (define sbcl-cl-ana-boot0
8286 (let ((commit "fa7cee4c50aa1c859652813049ba0da7c18a0df9")
8287 (revision "1"))
8288 (package
8289 (name "sbcl-cl-ana-boot0")
8290 (version (git-version "0.0.0" revision commit))
8291 (source
8292 (origin
8293 (method git-fetch)
8294 (uri (git-reference
8295 (url "https://github.com/ghollisjr/cl-ana.git")
8296 (commit commit)))
8297 (file-name (git-file-name name version))
8298 (sha256
8299 (base32
8300 "0mr47l57m276dbpap7irr4fcnk5fgknhf6mgv4043s8h73amk5qh"))))
8301 (build-system asdf-build-system/sbcl)
8302 (synopsis "Common Lisp data analysis library")
8303 (description
8304 "CL-ANA is a data analysis library in Common Lisp providing tabular and
8305 binned data analysis along with nonlinear least squares fitting and
8306 visualization.")
8307 (home-page "https://github.com/ghollisjr/cl-ana")
8308 (license license:gpl3))))
8309
8310 (define-public sbcl-cl-ana.pathname-utils
8311 (package
8312 (inherit sbcl-cl-ana-boot0)
8313 (name "sbcl-cl-ana.pathname-utils")
8314 (arguments
8315 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8316 ((#:asd-file _ "") "pathname-utils/cl-ana.pathname-utils.asd")
8317 ((#:asd-system-name _ #f) "cl-ana.pathname-utils")))))
8318
8319 (define-public cl-ana.pathname-utils
8320 (sbcl-package->cl-source-package sbcl-cl-ana.pathname-utils))
8321
8322 (define-public ecl-cl-ana.pathname-utils
8323 (sbcl-package->ecl-package sbcl-cl-ana.pathname-utils))
8324
8325 (define-public sbcl-cl-ana.package-utils
8326 (package
8327 (inherit sbcl-cl-ana-boot0)
8328 (name "sbcl-cl-ana.package-utils")
8329 (inputs
8330 `(("alexandria" ,sbcl-alexandria)))
8331 (arguments
8332 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8333 ((#:asd-file _ "") "package-utils/cl-ana.package-utils.asd")
8334 ((#:asd-system-name _ #f) "cl-ana.package-utils")))))
8335
8336 (define-public cl-ana.package-utils
8337 (sbcl-package->cl-source-package sbcl-cl-ana.package-utils))
8338
8339 (define-public ecl-cl-ana.package-utils
8340 (sbcl-package->ecl-package sbcl-cl-ana.package-utils))
8341
8342 (define-public sbcl-cl-ana.string-utils
8343 (package
8344 (inherit sbcl-cl-ana-boot0)
8345 (name "sbcl-cl-ana.string-utils")
8346 (inputs
8347 `(("split-sequence" ,sbcl-split-sequence)))
8348 (arguments
8349 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8350 ((#:asd-file _ "") "string-utils/cl-ana.string-utils.asd")
8351 ((#:asd-system-name _ #f) "cl-ana.string-utils")))))
8352
8353 (define-public cl-ana.string-utils
8354 (sbcl-package->cl-source-package sbcl-cl-ana.string-utils))
8355
8356 (define-public ecl-cl-ana.string-utils
8357 (sbcl-package->ecl-package sbcl-cl-ana.string-utils))
8358
8359 (define-public sbcl-cl-ana.functional-utils
8360 (package
8361 (inherit sbcl-cl-ana-boot0)
8362 (name "sbcl-cl-ana.functional-utils")
8363 (arguments
8364 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8365 ((#:asd-file _ "") "functional-utils/cl-ana.functional-utils.asd")
8366 ((#:asd-system-name _ #f) "cl-ana.functional-utils")))))
8367
8368 (define-public cl-ana.functional-utils
8369 (sbcl-package->cl-source-package sbcl-cl-ana.functional-utils))
8370
8371 (define-public ecl-cl-ana.functional-utils
8372 (sbcl-package->ecl-package sbcl-cl-ana.functional-utils))
8373
8374 (define-public sbcl-cl-ana.list-utils
8375 (package
8376 (inherit sbcl-cl-ana-boot0)
8377 (name "sbcl-cl-ana.list-utils")
8378 (inputs
8379 `(("alexandria" ,sbcl-alexandria)
8380 ("cl-ana.functional-utils" ,sbcl-cl-ana.functional-utils)
8381 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)))
8382 (arguments
8383 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8384 ((#:asd-file _ "") "list-utils/cl-ana.list-utils.asd")
8385 ((#:asd-system-name _ #f) "cl-ana.list-utils")))))
8386
8387 (define-public cl-ana.list-utils
8388 (sbcl-package->cl-source-package sbcl-cl-ana.list-utils))
8389
8390 (define-public ecl-cl-ana.list-utils
8391 (sbcl-package->ecl-package sbcl-cl-ana.list-utils))
8392
8393 (define-public sbcl-cl-ana.generic-math
8394 (package
8395 (inherit sbcl-cl-ana-boot0)
8396 (name "sbcl-cl-ana.generic-math")
8397 (inputs
8398 `(("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8399 ("cl-ana.package-utils" ,sbcl-cl-ana.package-utils)))
8400 (arguments
8401 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8402 ((#:asd-file _ "") "generic-math/cl-ana.generic-math.asd")
8403 ((#:asd-system-name _ #f) "cl-ana.generic-math")))))
8404
8405 (define-public cl-ana.generic-math
8406 (sbcl-package->cl-source-package sbcl-cl-ana.generic-math))
8407
8408 (define-public ecl-cl-ana.generic-math
8409 (sbcl-package->ecl-package sbcl-cl-ana.generic-math))
8410
8411 (define-public sbcl-cl-ana.math-functions
8412 (package
8413 (inherit sbcl-cl-ana-boot0)
8414 (name "sbcl-cl-ana.math-functions")
8415 (inputs
8416 `(("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
8417 ("gsll" ,sbcl-gsll)))
8418 (arguments
8419 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8420 ((#:asd-file _ "") "math-functions/cl-ana.math-functions.asd")
8421 ((#:asd-system-name _ #f) "cl-ana.math-functions")))))
8422
8423 (define-public cl-ana.math-functions
8424 (sbcl-package->cl-source-package sbcl-cl-ana.math-functions))
8425
8426 (define-public sbcl-cl-ana.calculus
8427 (package
8428 (inherit sbcl-cl-ana-boot0)
8429 (name "sbcl-cl-ana.calculus")
8430 (inputs
8431 `(("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)))
8432 (arguments
8433 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8434 ((#:asd-file _ "") "calculus/cl-ana.calculus.asd")
8435 ((#:asd-system-name _ #f) "cl-ana.calculus")))))
8436
8437 (define-public cl-ana.calculus
8438 (sbcl-package->cl-source-package sbcl-cl-ana.calculus))
8439
8440 (define-public ecl-cl-ana.calculus
8441 (sbcl-package->ecl-package sbcl-cl-ana.calculus))
8442
8443 (define-public sbcl-cl-ana.symbol-utils
8444 (package
8445 (inherit sbcl-cl-ana-boot0)
8446 (name "sbcl-cl-ana.symbol-utils")
8447 (inputs
8448 `(("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)))
8449 (arguments
8450 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8451 ((#:asd-file _ "") "symbol-utils/cl-ana.symbol-utils.asd")
8452 ((#:asd-system-name _ #f) "cl-ana.symbol-utils")))))
8453
8454 (define-public cl-ana.symbol-utils
8455 (sbcl-package->cl-source-package sbcl-cl-ana.symbol-utils))
8456
8457 (define-public ecl-cl-ana.symbol-utils
8458 (sbcl-package->ecl-package sbcl-cl-ana.symbol-utils))
8459
8460 (define-public sbcl-cl-ana.macro-utils
8461 (package
8462 (inherit sbcl-cl-ana-boot0)
8463 (name "sbcl-cl-ana.macro-utils")
8464 (inputs
8465 `(("alexandria" ,sbcl-alexandria)
8466 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8467 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
8468 ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)
8469 ("split-sequence" ,sbcl-split-sequence)))
8470 (arguments
8471 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8472 ((#:asd-file _ "") "macro-utils/cl-ana.macro-utils.asd")
8473 ((#:asd-system-name _ #f) "cl-ana.macro-utils")))))
8474
8475 (define-public cl-ana.macro-utils
8476 (sbcl-package->cl-source-package sbcl-cl-ana.macro-utils))
8477
8478 (define-public ecl-cl-ana.macro-utils
8479 (sbcl-package->ecl-package sbcl-cl-ana.macro-utils))
8480
8481 (define-public sbcl-cl-ana.binary-tree
8482 (package
8483 (inherit sbcl-cl-ana-boot0)
8484 (name "sbcl-cl-ana.binary-tree")
8485 (inputs
8486 `(("cl-ana.functional-utils" ,sbcl-cl-ana.functional-utils)
8487 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8488 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)))
8489 (arguments
8490 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8491 ((#:asd-file _ "") "binary-tree/cl-ana.binary-tree.asd")
8492 ((#:asd-system-name _ #f) "cl-ana.binary-tree")))))
8493
8494 (define-public cl-ana.binary-tree
8495 (sbcl-package->cl-source-package sbcl-cl-ana.binary-tree))
8496
8497 (define-public ecl-cl-ana.binary-tree
8498 (sbcl-package->ecl-package sbcl-cl-ana.binary-tree))
8499
8500 (define-public sbcl-cl-ana.tensor
8501 (package
8502 (inherit sbcl-cl-ana-boot0)
8503 (name "sbcl-cl-ana.tensor")
8504 (inputs
8505 `(("alexandria" ,sbcl-alexandria)
8506 ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
8507 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8508 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
8509 ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)))
8510 (arguments
8511 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8512 ((#:asd-file _ "") "tensor/cl-ana.tensor.asd")
8513 ((#:asd-system-name _ #f) "cl-ana.tensor")))))
8514
8515 (define-public cl-ana.tensor
8516 (sbcl-package->cl-source-package sbcl-cl-ana.tensor))
8517
8518 (define-public ecl-cl-ana.tensor
8519 (sbcl-package->ecl-package sbcl-cl-ana.tensor))
8520
8521 (define-public sbcl-cl-ana.error-propogation
8522 (package
8523 (inherit sbcl-cl-ana-boot0)
8524 (name "sbcl-cl-ana.error-propogation")
8525 (inputs
8526 `(("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
8527 ("cl-ana.math-functions" ,sbcl-cl-ana.math-functions)))
8528 (arguments
8529 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8530 ((#:asd-file _ "") "error-propogation/cl-ana.error-propogation.asd")
8531 ((#:asd-system-name _ #f) "cl-ana.error-propogation")))))
8532
8533 (define-public cl-ana.error-propogation
8534 (sbcl-package->cl-source-package sbcl-cl-ana.error-propogation))
8535
8536 (define-public sbcl-cl-ana.quantity
8537 (package
8538 (inherit sbcl-cl-ana-boot0)
8539 (name "sbcl-cl-ana.quantity")
8540 (inputs
8541 `(("alexandria" ,sbcl-alexandria)
8542 ("cl-ana.error-propogation" ,sbcl-cl-ana.error-propogation)
8543 ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
8544 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8545 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
8546 ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)))
8547 (arguments
8548 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8549 ((#:asd-file _ "") "quantity/cl-ana.quantity.asd")
8550 ((#:asd-system-name _ #f) "cl-ana.quantity")))))
8551
8552 (define-public cl-ana.quantity
8553 (sbcl-package->cl-source-package sbcl-cl-ana.quantity))
8554
8555 (define-public sbcl-cl-ana.table
8556 (package
8557 (inherit sbcl-cl-ana-boot0)
8558 (name "sbcl-cl-ana.table")
8559 (inputs
8560 `(("alexandria" ,sbcl-alexandria)
8561 ("cl-ana.functional-utils" ,sbcl-cl-ana.functional-utils)
8562 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8563 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
8564 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
8565 ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)))
8566 (arguments
8567 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8568 ((#:asd-file _ "") "table/cl-ana.table.asd")
8569 ((#:asd-system-name _ #f) "cl-ana.table")))))
8570
8571 (define-public cl-ana.table
8572 (sbcl-package->cl-source-package sbcl-cl-ana.table))
8573
8574 (define-public ecl-cl-ana.table
8575 (sbcl-package->ecl-package sbcl-cl-ana.table))
8576
8577 (define-public sbcl-cl-ana.table-utils
8578 (package
8579 (inherit sbcl-cl-ana-boot0)
8580 (name "sbcl-cl-ana.table-utils")
8581 (inputs
8582 `(("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
8583 ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)
8584 ("cl-ana.table" ,sbcl-cl-ana.table)))
8585 (arguments
8586 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8587 ((#:asd-file _ "") "table-utils/cl-ana.table-utils.asd")
8588 ((#:asd-system-name _ #f) "cl-ana.table-utils")))))
8589
8590 (define-public cl-ana.table-utils
8591 (sbcl-package->cl-source-package sbcl-cl-ana.table-utils))
8592
8593 (define-public ecl-cl-ana.table-utils
8594 (sbcl-package->ecl-package sbcl-cl-ana.table-utils))
8595
8596 (define-public sbcl-cl-ana.hdf-cffi
8597 (package
8598 (inherit sbcl-cl-ana-boot0)
8599 (name "sbcl-cl-ana.hdf-cffi")
8600 (inputs
8601 `(("cffi" ,sbcl-cffi)
8602 ("hdf5" ,hdf5-parallel-openmpi)))
8603 (arguments
8604 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8605 ((#:asd-file _ "") "hdf-cffi/cl-ana.hdf-cffi.asd")
8606 ((#:asd-system-name _ #f) "cl-ana.hdf-cffi")
8607 ((#:phases phases '%standard-phases)
8608 `(modify-phases ,phases
8609 (add-after 'unpack 'fix-paths
8610 (lambda* (#:key inputs #:allow-other-keys)
8611 (substitute* "hdf-cffi/hdf-cffi.lisp"
8612 (("/usr/lib/i386-linux-gnu/hdf5/serial/libhdf5.so")
8613 (string-append
8614 (assoc-ref inputs "hdf5")
8615 "/lib/libhdf5.so")))))))))))
8616
8617 (define-public cl-ana.hdf-cffi
8618 (sbcl-package->cl-source-package sbcl-cl-ana.hdf-cffi))
8619
8620 (define-public ecl-cl-ana.hdf-cffi
8621 (sbcl-package->ecl-package sbcl-cl-ana.hdf-cffi))
8622
8623 (define-public sbcl-cl-ana.int-char
8624 (package
8625 (inherit sbcl-cl-ana-boot0)
8626 (name "sbcl-cl-ana.int-char")
8627 (arguments
8628 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8629 ((#:asd-file _ "") "int-char/cl-ana.int-char.asd")
8630 ((#:asd-system-name _ #f) "cl-ana.int-char")))))
8631
8632 (define-public cl-ana.int-char
8633 (sbcl-package->cl-source-package sbcl-cl-ana.int-char))
8634
8635 (define-public ecl-cl-ana.int-char
8636 (sbcl-package->ecl-package sbcl-cl-ana.int-char))
8637
8638 (define-public sbcl-cl-ana.memoization
8639 (package
8640 (inherit sbcl-cl-ana-boot0)
8641 (name "sbcl-cl-ana.memoization")
8642 (inputs
8643 `(("alexandria" ,sbcl-alexandria)))
8644 (arguments
8645 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8646 ((#:asd-file _ "") "memoization/cl-ana.memoization.asd")
8647 ((#:asd-system-name _ #f) "cl-ana.memoization")))))
8648
8649 (define-public cl-ana.memoization
8650 (sbcl-package->cl-source-package sbcl-cl-ana.memoization))
8651
8652 (define-public ecl-cl-ana.memoization
8653 (sbcl-package->ecl-package sbcl-cl-ana.memoization))
8654
8655 (define-public sbcl-cl-ana.typespec
8656 (package
8657 (inherit sbcl-cl-ana-boot0)
8658 (name "sbcl-cl-ana.typespec")
8659 (inputs
8660 `(("alexandria" ,sbcl-alexandria)
8661 ("cffi" ,sbcl-cffi)
8662 ("cl-ana.int-char" ,sbcl-cl-ana.int-char)
8663 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8664 ("cl-ana.memoization" ,sbcl-cl-ana.memoization)
8665 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
8666 ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)
8667 ("cl-ana.tensor" ,sbcl-cl-ana.tensor)))
8668 (arguments
8669 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8670 ((#:asd-file _ "") "typespec/cl-ana.typespec.asd")
8671 ((#:asd-system-name _ #f) "cl-ana.typespec")))))
8672
8673 (define-public cl-ana.typespec
8674 (sbcl-package->cl-source-package sbcl-cl-ana.typespec))
8675
8676 (define-public ecl-cl-ana.typespec
8677 (sbcl-package->ecl-package sbcl-cl-ana.typespec))
8678
8679 (define-public sbcl-cl-ana.hdf-typespec
8680 (package
8681 (inherit sbcl-cl-ana-boot0)
8682 (name "sbcl-cl-ana.hdf-typespec")
8683 (inputs
8684 `(("alexandria" ,sbcl-alexandria)
8685 ("cffi" ,sbcl-cffi)
8686 ("cl-ana.hdf-cffi" ,sbcl-cl-ana.hdf-cffi)
8687 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8688 ("cl-ana.memoization" ,sbcl-cl-ana.memoization)
8689 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
8690 ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)
8691 ("cl-ana.typespec" ,sbcl-cl-ana.typespec)))
8692 (arguments
8693 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8694 ((#:asd-file _ "") "hdf-typespec/cl-ana.hdf-typespec.asd")
8695 ((#:asd-system-name _ #f) "cl-ana.hdf-typespec")))))
8696
8697 (define-public cl-ana.hdf-typespec
8698 (sbcl-package->cl-source-package sbcl-cl-ana.hdf-typespec))
8699
8700 (define-public ecl-cl-ana.hdf-typespec
8701 (sbcl-package->ecl-package sbcl-cl-ana.hdf-typespec))
8702
8703 (define-public sbcl-cl-ana.hdf-utils
8704 (package
8705 (inherit sbcl-cl-ana-boot0)
8706 (name "sbcl-cl-ana.hdf-utils")
8707 (inputs
8708 `(("alexandria" ,sbcl-alexandria)
8709 ("cffi" ,sbcl-cffi)
8710 ("cl-ana.hdf-cffi" ,sbcl-cl-ana.hdf-cffi)
8711 ("cl-ana.hdf-typespec" ,sbcl-cl-ana.hdf-typespec)
8712 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
8713 ("cl-ana.memoization" ,sbcl-cl-ana.memoization)
8714 ("cl-ana.pathname-utils" ,sbcl-cl-ana.pathname-utils)
8715 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
8716 ("cl-ana.typespec" ,sbcl-cl-ana.typespec)))
8717 (arguments
8718 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8719 ((#:asd-file _ "") "hdf-utils/cl-ana.hdf-utils.asd")
8720 ((#:asd-system-name _ #f) "cl-ana.hdf-utils")))))
8721
8722 (define-public cl-ana.hdf-utils
8723 (sbcl-package->cl-source-package sbcl-cl-ana.hdf-utils))
8724
8725 (define-public ecl-cl-ana.hdf-utils
8726 (sbcl-package->ecl-package sbcl-cl-ana.hdf-utils))
8727
8728 (define-public sbcl-cl-ana.typed-table
8729 (package
8730 (inherit sbcl-cl-ana-boot0)
8731 (name "sbcl-cl-ana.typed-table")
8732 (inputs
8733 `(("alexandria" ,sbcl-alexandria)
8734 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8735 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
8736 ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)
8737 ("cl-ana.table" ,sbcl-cl-ana.table)
8738 ("cl-ana.typespec" ,sbcl-cl-ana.typespec)))
8739 (arguments
8740 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8741 ((#:asd-file _ "") "typed-table/cl-ana.typed-table.asd")
8742 ((#:asd-system-name _ #f) "cl-ana.typed-table")))))
8743
8744 (define-public cl-ana.typed-table
8745 (sbcl-package->cl-source-package sbcl-cl-ana.typed-table))
8746
8747 (define-public ecl-cl-ana.typed-table
8748 (sbcl-package->ecl-package sbcl-cl-ana.typed-table))
8749
8750 (define-public sbcl-cl-ana.hdf-table
8751 (package
8752 (inherit sbcl-cl-ana-boot0)
8753 (name "sbcl-cl-ana.hdf-table")
8754 (inputs
8755 `(("alexandria" ,sbcl-alexandria)
8756 ("cl-ana.binary-tree" ,sbcl-cl-ana.binary-tree)
8757 ("cl-ana.hdf-cffi" ,sbcl-cl-ana.hdf-cffi)
8758 ("cl-ana.hdf-typespec" ,sbcl-cl-ana.hdf-typespec)
8759 ("cl-ana.hdf-utils" ,sbcl-cl-ana.hdf-utils)
8760 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8761 ("cl-ana.memoization" ,sbcl-cl-ana.memoization)
8762 ("cl-ana.table" ,sbcl-cl-ana.table)
8763 ("cl-ana.typed-table" ,sbcl-cl-ana.typed-table)
8764 ("cl-ana.typespec" ,sbcl-cl-ana.typespec)))
8765 (arguments
8766 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8767 ((#:asd-file _ "") "hdf-table/cl-ana.hdf-table.asd")
8768 ((#:asd-system-name _ #f) "cl-ana.hdf-table")))))
8769
8770 (define-public cl-ana.hdf-table
8771 (sbcl-package->cl-source-package sbcl-cl-ana.hdf-table))
8772
8773 (define-public ecl-cl-ana.hdf-table
8774 (sbcl-package->ecl-package sbcl-cl-ana.hdf-table))
8775
8776 (define-public sbcl-cl-ana.gsl-cffi
8777 (package
8778 (inherit sbcl-cl-ana-boot0)
8779 (name "sbcl-cl-ana.gsl-cffi")
8780 (inputs
8781 `(("cffi" ,sbcl-cffi)
8782 ("gsl" ,gsl)))
8783 (arguments
8784 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8785 ((#:asd-file _ "") "gsl-cffi/cl-ana.gsl-cffi.asd")
8786 ((#:asd-system-name _ #f) "cl-ana.gsl-cffi")
8787 ((#:phases phases '%standard-phases)
8788 `(modify-phases ,phases
8789 (add-after 'unpack 'fix-paths
8790 (lambda* (#:key inputs #:allow-other-keys)
8791 (substitute* "gsl-cffi/gsl-cffi.lisp"
8792 (("define-foreign-library gsl-cffi" all)
8793 (string-append all " (:unix "
8794 (assoc-ref inputs "gsl")
8795 "/lib/libgsl.so)")))))))))))
8796
8797 (define-public cl-ana.gsl-cffi
8798 (sbcl-package->cl-source-package sbcl-cl-ana.gsl-cffi))
8799
8800 (define-public ecl-cl-ana.gsl-cffi
8801 (sbcl-package->ecl-package sbcl-cl-ana.gsl-cffi))
8802
8803 (define-public sbcl-cl-ana.ntuple-table
8804 (package
8805 (inherit sbcl-cl-ana-boot0)
8806 (name "sbcl-cl-ana.ntuple-table")
8807 (inputs
8808 `(("alexandria" ,sbcl-alexandria)
8809 ("cffi" ,sbcl-cffi)
8810 ("cl-ana.gsl-cffi" ,sbcl-cl-ana.gsl-cffi)
8811 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8812 ("cl-ana.table" ,sbcl-cl-ana.table)
8813 ("cl-ana.typed-table" ,sbcl-cl-ana.typed-table)
8814 ("cl-ana.typespec" ,sbcl-cl-ana.typespec)
8815 ("gsll" ,sbcl-gsll)))
8816 (arguments
8817 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8818 ((#:asd-file _ "") "ntuple-table/cl-ana.ntuple-table.asd")
8819 ((#:asd-system-name _ #f) "cl-ana.ntuple-table")))))
8820
8821 (define-public cl-ana.ntuple-table
8822 (sbcl-package->cl-source-package sbcl-cl-ana.ntuple-table))
8823
8824 (define-public sbcl-cl-ana.csv-table
8825 (package
8826 (inherit sbcl-cl-ana-boot0)
8827 (name "sbcl-cl-ana.csv-table")
8828 (inputs
8829 `(("alexandria" ,sbcl-alexandria)
8830 ("antik" ,sbcl-antik)
8831 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8832 ("cl-ana.table" ,sbcl-cl-ana.table)
8833 ("cl-csv" ,sbcl-cl-csv)
8834 ("iterate" ,sbcl-iterate)))
8835 (arguments
8836 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8837 ((#:asd-file _ "") "csv-table/cl-ana.csv-table.asd")
8838 ((#:asd-system-name _ #f) "cl-ana.csv-table")))))
8839
8840 (define-public cl-ana.csv-table
8841 (sbcl-package->cl-source-package sbcl-cl-ana.csv-table))
8842
8843 (define-public sbcl-cl-ana.reusable-table
8844 (package
8845 (inherit sbcl-cl-ana-boot0)
8846 (name "sbcl-cl-ana.reusable-table")
8847 (inputs
8848 `(("alexandria" ,sbcl-alexandria)
8849 ("cl-ana.table" ,sbcl-cl-ana.table)))
8850 (arguments
8851 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8852 ((#:asd-file _ "") "reusable-table/cl-ana.reusable-table.asd")
8853 ((#:asd-system-name _ #f) "cl-ana.reusable-table")))))
8854
8855 (define-public cl-ana.reusable-table
8856 (sbcl-package->cl-source-package sbcl-cl-ana.reusable-table))
8857
8858 (define-public ecl-cl-ana.reusable-table
8859 (sbcl-package->ecl-package sbcl-cl-ana.reusable-table))
8860
8861 (define-public sbcl-cl-ana.linear-algebra
8862 (package
8863 (inherit sbcl-cl-ana-boot0)
8864 (name "sbcl-cl-ana.linear-algebra")
8865 (inputs
8866 `(("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
8867 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8868 ("cl-ana.math-functions" ,sbcl-cl-ana.math-functions)
8869 ("cl-ana.tensor" ,sbcl-cl-ana.tensor)
8870 ("gsll" ,sbcl-gsll)))
8871 (arguments
8872 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8873 ((#:asd-file _ "") "linear-algebra/cl-ana.linear-algebra.asd")
8874 ((#:asd-system-name _ #f) "cl-ana.linear-algebra")))))
8875
8876 (define-public cl-ana.linear-algebra
8877 (sbcl-package->cl-source-package sbcl-cl-ana.linear-algebra))
8878
8879 (define-public sbcl-cl-ana.lorentz
8880 (package
8881 (inherit sbcl-cl-ana-boot0)
8882 (name "sbcl-cl-ana.lorentz")
8883 (inputs
8884 `(("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
8885 ("cl-ana.linear-algebra" ,sbcl-cl-ana.linear-algebra)
8886 ("cl-ana.tensor" ,sbcl-cl-ana.tensor)
8887 ("iterate" ,sbcl-iterate)))
8888 (arguments
8889 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8890 ((#:asd-file _ "") "lorentz/cl-ana.lorentz.asd")
8891 ((#:asd-system-name _ #f) "cl-ana.lorentz")))))
8892
8893 (define-public cl-ana.lorentz
8894 (sbcl-package->cl-source-package sbcl-cl-ana.lorentz))
8895
8896 (define-public sbcl-cl-ana.clos-utils
8897 (package
8898 (inherit sbcl-cl-ana-boot0)
8899 (name "sbcl-cl-ana.clos-utils")
8900 (inputs
8901 `(("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8902 ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)
8903 ("cl-ana.tensor" ,sbcl-cl-ana.tensor)
8904 ("closer-mop" ,sbcl-closer-mop)))
8905 (arguments
8906 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8907 ((#:asd-file _ "") "clos-utils/cl-ana.clos-utils.asd")
8908 ((#:asd-system-name _ #f) "cl-ana.clos-utils")))))
8909
8910 (define-public cl-ana.clos-utils
8911 (sbcl-package->cl-source-package sbcl-cl-ana.clos-utils))
8912
8913 (define-public ecl-cl-ana.clos-utils
8914 (sbcl-package->ecl-package sbcl-cl-ana.clos-utils))
8915
8916 (define-public sbcl-cl-ana.hash-table-utils
8917 (package
8918 (inherit sbcl-cl-ana-boot0)
8919 (name "sbcl-cl-ana.hash-table-utils")
8920 (arguments
8921 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8922 ((#:asd-file _ "") "hash-table-utils/cl-ana.hash-table-utils.asd")
8923 ((#:asd-system-name _ #f) "cl-ana.hash-table-utils")))))
8924
8925 (define-public cl-ana.hash-table-utils
8926 (sbcl-package->cl-source-package sbcl-cl-ana.hash-table-utils))
8927
8928 (define-public ecl-cl-ana.hash-table-utils
8929 (sbcl-package->ecl-package sbcl-cl-ana.hash-table-utils))
8930
8931 (define-public sbcl-cl-ana.map
8932 (package
8933 (inherit sbcl-cl-ana-boot0)
8934 (name "sbcl-cl-ana.map")
8935 (inputs
8936 `(("cl-ana.hash-table-utils" ,sbcl-cl-ana.hash-table-utils)))
8937 (arguments
8938 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8939 ((#:asd-file _ "") "map/cl-ana.map.asd")
8940 ((#:asd-system-name _ #f) "cl-ana.map")))))
8941
8942 (define-public cl-ana.map
8943 (sbcl-package->cl-source-package sbcl-cl-ana.map))
8944
8945 (define-public ecl-cl-ana.map
8946 (sbcl-package->ecl-package sbcl-cl-ana.map))
8947
8948 (define-public sbcl-cl-ana.fitting
8949 (package
8950 (inherit sbcl-cl-ana-boot0)
8951 (name "sbcl-cl-ana.fitting")
8952 (inputs
8953 `(("alexandria" ,sbcl-alexandria)
8954 ("cl-ana.error-propogation" ,sbcl-cl-ana.error-propogation)
8955 ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
8956 ("cl-ana.map" ,sbcl-cl-ana.map)
8957 ("cl-ana.math-functions" ,sbcl-cl-ana.math-functions)
8958 ("gsll" ,sbcl-gsll)))
8959 (arguments
8960 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8961 ((#:asd-file _ "") "fitting/cl-ana.fitting.asd")
8962 ((#:asd-system-name _ #f) "cl-ana.fitting")))))
8963
8964 (define-public cl-ana.fitting
8965 (sbcl-package->cl-source-package sbcl-cl-ana.fitting))
8966
8967 (define-public sbcl-cl-ana.histogram
8968 (package
8969 (inherit sbcl-cl-ana-boot0)
8970 (name "sbcl-cl-ana.histogram")
8971 (inputs
8972 `(("alexandria" ,sbcl-alexandria)
8973 ("iterate" ,sbcl-iterate)
8974 ("cl-ana.binary-tree" ,sbcl-cl-ana.binary-tree)
8975 ("cl-ana.clos-utils" ,sbcl-cl-ana.clos-utils)
8976 ("cl-ana.fitting" ,sbcl-cl-ana.fitting)
8977 ("cl-ana.functional-utils" ,sbcl-cl-ana.functional-utils)
8978 ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
8979 ("cl-ana.hash-table-utils" ,sbcl-cl-ana.hash-table-utils)
8980 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8981 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
8982 ("cl-ana.map" ,sbcl-cl-ana.map)
8983 ("cl-ana.tensor" ,sbcl-cl-ana.tensor)))
8984 (arguments
8985 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8986 ((#:asd-file _ "") "histogram/cl-ana.histogram.asd")
8987 ((#:asd-system-name _ #f) "cl-ana.histogram")))))
8988
8989 (define-public cl-ana.histogram
8990 (sbcl-package->cl-source-package sbcl-cl-ana.histogram))
8991
8992 (define-public sbcl-cl-ana.file-utils
8993 (package
8994 (inherit sbcl-cl-ana-boot0)
8995 (name "sbcl-cl-ana.file-utils")
8996 (inputs
8997 `(("external-program" ,sbcl-external-program)
8998 ("split-sequence" ,sbcl-split-sequence)))
8999 (arguments
9000 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9001 ((#:asd-file _ "") "file-utils/cl-ana.file-utils.asd")
9002 ((#:asd-system-name _ #f) "cl-ana.file-utils")))))
9003
9004 (define-public cl-ana.file-utils
9005 (sbcl-package->cl-source-package sbcl-cl-ana.file-utils))
9006
9007 (define-public ecl-cl-ana.file-utils
9008 (sbcl-package->ecl-package sbcl-cl-ana.file-utils))
9009
9010 (define-public sbcl-cl-ana.statistics
9011 (package
9012 (inherit sbcl-cl-ana-boot0)
9013 (name "sbcl-cl-ana.statistics")
9014 (inputs
9015 `(("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
9016 ("cl-ana.histogram" ,sbcl-cl-ana.histogram)
9017 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
9018 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
9019 ("cl-ana.map" ,sbcl-cl-ana.map)))
9020 (arguments
9021 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9022 ((#:asd-file _ "") "statistics/cl-ana.statistics.asd")
9023 ((#:asd-system-name _ #f) "cl-ana.statistics")))))
9024
9025 (define-public cl-ana.statistics
9026 (sbcl-package->cl-source-package sbcl-cl-ana.statistics))
9027
9028 (define-public sbcl-cl-ana.gnuplot-interface
9029 (package
9030 (inherit sbcl-cl-ana-boot0)
9031 (name "sbcl-cl-ana.gnuplot-interface")
9032 (inputs
9033 `(("external-program" ,sbcl-external-program)))
9034 (arguments
9035 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9036 ((#:asd-file _ "") "gnuplot-interface/cl-ana.gnuplot-interface.asd")
9037 ((#:asd-system-name _ #f) "cl-ana.gnuplot-interface")))))
9038
9039 (define-public cl-ana.gnuplot-interface
9040 (sbcl-package->cl-source-package sbcl-cl-ana.gnuplot-interface))
9041
9042 (define-public ecl-cl-ana.gnuplot-interface
9043 (sbcl-package->ecl-package sbcl-cl-ana.gnuplot-interface))
9044
9045 (define-public sbcl-cl-ana.plotting
9046 (package
9047 (inherit sbcl-cl-ana-boot0)
9048 (name "sbcl-cl-ana.plotting")
9049 (inputs
9050 `(("alexandria" ,sbcl-alexandria)
9051 ("cl-ana.error-propogation" ,sbcl-cl-ana.error-propogation)
9052 ("cl-ana.functional-utils" ,sbcl-cl-ana.functional-utils)
9053 ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
9054 ("cl-ana.gnuplot-interface" ,sbcl-cl-ana.gnuplot-interface)
9055 ("cl-ana.histogram" ,sbcl-cl-ana.histogram)
9056 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
9057 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
9058 ("cl-ana.map" ,sbcl-cl-ana.map)
9059 ("cl-ana.math-functions" ,sbcl-cl-ana.math-functions)
9060 ("cl-ana.pathname-utils" ,sbcl-cl-ana.pathname-utils)
9061 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
9062 ("cl-ana.tensor" ,sbcl-cl-ana.tensor)
9063 ("external-program" ,sbcl-external-program)
9064 ("split-sequence" ,sbcl-split-sequence)))
9065 (arguments
9066 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9067 ((#:asd-file _ "") "plotting/cl-ana.plotting.asd")
9068 ((#:asd-system-name _ #f) "cl-ana.plotting")))))
9069
9070 (define-public cl-ana.plotting
9071 (sbcl-package->cl-source-package sbcl-cl-ana.plotting))
9072
9073 (define-public sbcl-cl-ana.table-viewing
9074 (package
9075 (inherit sbcl-cl-ana-boot0)
9076 (name "sbcl-cl-ana.table-viewing")
9077 (inputs
9078 `(("alexandria" ,sbcl-alexandria)
9079 ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
9080 ("cl-ana.histogram" ,sbcl-cl-ana.histogram)
9081 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
9082 ("cl-ana.plotting" ,sbcl-cl-ana.plotting)
9083 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
9084 ("cl-ana.table" ,sbcl-cl-ana.table)))
9085 (arguments
9086 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9087 ((#:asd-file _ "") "table-viewing/cl-ana.table-viewing.asd")
9088 ((#:asd-system-name _ #f) "cl-ana.table-viewing")))))
9089
9090 (define-public cl-ana.table-viewing
9091 (sbcl-package->cl-source-package sbcl-cl-ana.table-viewing))
9092
9093 (define-public sbcl-cl-ana.serialization
9094 (package
9095 (inherit sbcl-cl-ana-boot0)
9096 (name "sbcl-cl-ana.serialization")
9097 (inputs
9098 `(("cl-ana.error-propogation" ,sbcl-cl-ana.error-propogation)
9099 ("cl-ana.hdf-utils" ,sbcl-cl-ana.hdf-utils)
9100 ("cl-ana.hdf-table" ,sbcl-cl-ana.hdf-table)
9101 ("cl-ana.histogram" ,sbcl-cl-ana.histogram)
9102 ("cl-ana.int-char" ,sbcl-cl-ana.int-char)
9103 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
9104 ("cl-ana.typespec" ,sbcl-cl-ana.typespec)))
9105 (arguments
9106 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9107 ((#:asd-file _ "") "serialization/cl-ana.serialization.asd")
9108 ((#:asd-system-name _ #f) "cl-ana.serialization")))))
9109
9110 (define-public cl-ana.serialization
9111 (sbcl-package->cl-source-package sbcl-cl-ana.serialization))
9112
9113 (define-public sbcl-cl-ana.makeres
9114 (package
9115 (inherit sbcl-cl-ana-boot0)
9116 (name "sbcl-cl-ana.makeres")
9117 (inputs
9118 `(("alexandria" ,sbcl-alexandria)
9119 ("cl-ana.error-propogation" ,sbcl-cl-ana.error-propogation)
9120 ("cl-ana.file-utils" ,sbcl-cl-ana.file-utils)
9121 ("cl-ana.functional-utils" ,sbcl-cl-ana.functional-utils)
9122 ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
9123 ("cl-ana.hash-table-utils" ,sbcl-cl-ana.hash-table-utils)
9124 ("cl-ana.hdf-utils" ,sbcl-cl-ana.hdf-utils)
9125 ("cl-ana.histogram" ,sbcl-cl-ana.histogram)
9126 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
9127 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
9128 ("cl-ana.map" ,sbcl-cl-ana.map)
9129 ("cl-ana.memoization" ,sbcl-cl-ana.memoization)
9130 ("cl-ana.pathname-utils" ,sbcl-cl-ana.pathname-utils)
9131 ("cl-ana.plotting" ,sbcl-cl-ana.plotting)
9132 ("cl-ana.reusable-table" ,sbcl-cl-ana.reusable-table)
9133 ("cl-ana.serialization" ,sbcl-cl-ana.serialization)
9134 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
9135 ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)
9136 ("cl-ana.table" ,sbcl-cl-ana.table)
9137 ("external-program" ,sbcl-external-program)))
9138 (native-inputs
9139 `(("cl-fad" ,sbcl-cl-fad)))
9140 (arguments
9141 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9142 ((#:asd-file _ "") "makeres/cl-ana.makeres.asd")
9143 ((#:asd-system-name _ #f) "cl-ana.makeres")))))
9144
9145 (define-public cl-ana.makeres
9146 (sbcl-package->cl-source-package sbcl-cl-ana.makeres))
9147
9148 (define-public sbcl-cl-ana.makeres-macro
9149 (package
9150 (inherit sbcl-cl-ana-boot0)
9151 (name "sbcl-cl-ana.makeres-macro")
9152 (inputs
9153 `(("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
9154 ("cl-ana.makeres" ,sbcl-cl-ana.makeres)))
9155 (arguments
9156 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9157 ((#:asd-file _ "") "makeres-macro/cl-ana.makeres-macro.asd")
9158 ((#:asd-system-name _ #f) "cl-ana.makeres-macro")))))
9159
9160 (define-public cl-ana.makeres-macro
9161 (sbcl-package->cl-source-package sbcl-cl-ana.makeres-macro))
9162
9163 (define-public sbcl-cl-ana.makeres-block
9164 (package
9165 (inherit sbcl-cl-ana-boot0)
9166 (name "sbcl-cl-ana.makeres-block")
9167 (inputs
9168 `(("alexandria" ,sbcl-alexandria)
9169 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
9170 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
9171 ("cl-ana.makeres" ,sbcl-cl-ana.makeres)))
9172 (arguments
9173 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9174 ((#:asd-file _ "") "makeres-block/cl-ana.makeres-block.asd")
9175 ((#:asd-system-name _ #f) "cl-ana.makeres-block")))))
9176
9177 (define-public cl-ana.makeres-block
9178 (sbcl-package->cl-source-package sbcl-cl-ana.makeres-block))
9179
9180 (define-public sbcl-cl-ana.makeres-progress
9181 (package
9182 (inherit sbcl-cl-ana-boot0)
9183 (name "sbcl-cl-ana.makeres-progress")
9184 (inputs
9185 `(("alexandria" ,sbcl-alexandria)
9186 ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
9187 ("cl-ana.makeres" ,sbcl-cl-ana.makeres)))
9188 (arguments
9189 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9190 ((#:asd-file _ "") "makeres-progress/cl-ana.makeres-progress.asd")
9191 ((#:asd-system-name _ #f) "cl-ana.makeres-progress")))))
9192
9193 (define-public cl-ana.makeres-progress
9194 (sbcl-package->cl-source-package sbcl-cl-ana.makeres-progress))
9195
9196 (define-public sbcl-cl-ana.makeres-table
9197 (package
9198 (inherit sbcl-cl-ana-boot0)
9199 (name "sbcl-cl-ana.makeres-table")
9200 (inputs
9201 `(("cl-ana.csv-table" ,sbcl-cl-ana.csv-table)
9202 ("cl-ana.hash-table-utils" ,sbcl-cl-ana.hash-table-utils)
9203 ("cl-ana.hdf-table" ,sbcl-cl-ana.hdf-table)
9204 ("cl-ana.hdf-utils" ,sbcl-cl-ana.hdf-utils)
9205 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
9206 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
9207 ("cl-ana.makeres" ,sbcl-cl-ana.makeres)
9208 ("cl-ana.makeres-macro" ,sbcl-cl-ana.makeres-macro)
9209 ("cl-ana.memoization" ,sbcl-cl-ana.memoization)
9210 ("cl-ana.ntuple-table" ,sbcl-cl-ana.ntuple-table)
9211 ("cl-ana.reusable-table" ,sbcl-cl-ana.reusable-table)
9212 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
9213 ("cl-ana.table" ,sbcl-cl-ana.table)))
9214 (native-inputs
9215 `(("cl-fad" ,sbcl-cl-fad)))
9216 (arguments
9217 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9218 ((#:asd-file _ "") "makeres-table/cl-ana.makeres-table.asd")
9219 ((#:asd-system-name _ #f) "cl-ana.makeres-table")))))
9220
9221 (define-public cl-ana.makeres-table
9222 (sbcl-package->cl-source-package sbcl-cl-ana.makeres-table))
9223
9224 (define-public sbcl-cl-ana.makeres-graphviz
9225 (package
9226 (inherit sbcl-cl-ana-boot0)
9227 (name "sbcl-cl-ana.makeres-graphviz")
9228 (inputs
9229 `(("cl-ana.makeres" ,sbcl-cl-ana.makeres)
9230 ("external-program" ,sbcl-external-program)))
9231 (arguments
9232 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9233 ((#:asd-file _ "") "makeres-graphviz/cl-ana.makeres-graphviz.asd")
9234 ((#:asd-system-name _ #f) "cl-ana.makeres-graphviz")))))
9235
9236 (define-public cl-ana.makeres-graphviz
9237 (sbcl-package->cl-source-package sbcl-cl-ana.makeres-graphviz))
9238
9239 (define-public sbcl-cl-ana.makeres-branch
9240 (package
9241 (inherit sbcl-cl-ana-boot0)
9242 (name "sbcl-cl-ana.makeres-branch")
9243 (inputs
9244 `(("alexandria" ,sbcl-alexandria)
9245 ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
9246 ("cl-ana.hash-table-utils" ,sbcl-cl-ana.hash-table-utils)
9247 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
9248 ("cl-ana.map" ,sbcl-cl-ana.map)
9249 ("cl-ana.makeres" ,sbcl-cl-ana.makeres)))
9250 (arguments
9251 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9252 ((#:asd-file _ "") "makeres-branch/cl-ana.makeres-branch.asd")
9253 ((#:asd-system-name _ #f) "cl-ana.makeres-branch")))))
9254
9255 (define-public cl-ana.makeres-branch
9256 (sbcl-package->cl-source-package sbcl-cl-ana.makeres-branch))
9257
9258 (define-public sbcl-cl-ana.makeres-utils
9259 (package
9260 (inherit sbcl-cl-ana-boot0)
9261 (name "sbcl-cl-ana.makeres-utils")
9262 (inputs
9263 `(("alexandria" ,sbcl-alexandria)
9264 ("cl-ana.file-utils" ,sbcl-cl-ana.file-utils)
9265 ("cl-ana.fitting" ,sbcl-cl-ana.fitting)
9266 ("cl-ana.functional-utils" ,sbcl-cl-ana.functional-utils)
9267 ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
9268 ("cl-ana.histogram" ,sbcl-cl-ana.histogram)
9269 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
9270 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
9271 ("cl-ana.makeres" ,sbcl-cl-ana.makeres)
9272 ("cl-ana.map" ,sbcl-cl-ana.map)
9273 ("cl-ana.pathname-utils" ,sbcl-cl-ana.pathname-utils)
9274 ("cl-ana.plotting" ,sbcl-cl-ana.plotting)
9275 ("cl-ana.reusable-table" ,sbcl-cl-ana.reusable-table)
9276 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
9277 ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)
9278 ("cl-ana.table" ,sbcl-cl-ana.table)))
9279 (native-inputs
9280 `(("cl-fad" ,sbcl-cl-fad)))
9281 (arguments
9282 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9283 ((#:asd-file _ "") "makeres-utils/cl-ana.makeres-utils.asd")
9284 ((#:asd-system-name _ #f) "cl-ana.makeres-utils")))))
9285
9286 (define-public cl-ana.makeres-utils
9287 (sbcl-package->cl-source-package sbcl-cl-ana.makeres-utils))
9288
9289 (define-public sbcl-cl-ana.statistical-learning
9290 (package
9291 (inherit sbcl-cl-ana-boot0)
9292 (name "sbcl-cl-ana.statistical-learning")
9293 (inputs
9294 `(("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
9295 ("cl-ana.functional-utils" ,sbcl-cl-ana.functional-utils)
9296 ("cl-ana.histogram" ,sbcl-cl-ana.histogram)
9297 ("cl-ana.linear-algebra" ,sbcl-cl-ana.linear-algebra)
9298 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
9299 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
9300 ("cl-ana.math-functions" ,sbcl-cl-ana.math-functions)
9301 ("cl-ana.map" ,sbcl-cl-ana.map)
9302 ("cl-ana.statistics" ,sbcl-cl-ana.statistics)))
9303 (native-inputs
9304 `(("cl-fad" ,sbcl-cl-fad)))
9305 (arguments
9306 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9307 ((#:asd-file _ "")
9308 "statistical-learning/cl-ana.statistical-learning.asd")
9309 ((#:asd-system-name _ #f) "cl-ana.statistical-learning")))))
9310
9311 (define-public cl-ana.statistical-learning
9312 (sbcl-package->cl-source-package sbcl-cl-ana.statistical-learning))
9313
9314 (define-public sbcl-cl-ana
9315 (package
9316 (inherit sbcl-cl-ana-boot0)
9317 (name "sbcl-cl-ana")
9318 (inputs
9319 `(("cl-ana.binary-tree" ,sbcl-cl-ana.binary-tree)
9320 ("cl-ana.calculus" ,sbcl-cl-ana.calculus)
9321 ("cl-ana.clos-utils" ,sbcl-cl-ana.clos-utils)
9322 ("cl-ana.csv-table" ,sbcl-cl-ana.csv-table)
9323 ("cl-ana.error-propogation" ,sbcl-cl-ana.error-propogation)
9324 ("cl-ana.file-utils" ,sbcl-cl-ana.file-utils)
9325 ("cl-ana.fitting" ,sbcl-cl-ana.fitting)
9326 ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
9327 ("cl-ana.hash-table-utils" ,sbcl-cl-ana.hash-table-utils)
9328 ("cl-ana.hdf-table" ,sbcl-cl-ana.hdf-table)
9329 ("cl-ana.histogram" ,sbcl-cl-ana.histogram)
9330 ("cl-ana.int-char" ,sbcl-cl-ana.int-char)
9331 ("cl-ana.linear-algebra" ,sbcl-cl-ana.linear-algebra)
9332 ("cl-ana.lorentz" ,sbcl-cl-ana.lorentz)
9333 ("cl-ana.map" ,sbcl-cl-ana.map)
9334 ("cl-ana.makeres" ,sbcl-cl-ana.makeres)
9335 ("cl-ana.makeres-block" ,sbcl-cl-ana.makeres-block)
9336 ("cl-ana.makeres-branch" ,sbcl-cl-ana.makeres-branch)
9337 ("cl-ana.makeres-graphviz" ,sbcl-cl-ana.makeres-graphviz)
9338 ("cl-ana.makeres-macro" ,sbcl-cl-ana.makeres-macro)
9339 ("cl-ana.makeres-progress" ,sbcl-cl-ana.makeres-progress)
9340 ("cl-ana.makeres-table" ,sbcl-cl-ana.makeres-table)
9341 ("cl-ana.makeres-utils" ,sbcl-cl-ana.makeres-utils)
9342 ("cl-ana.math-functions" ,sbcl-cl-ana.math-functions)
9343 ("cl-ana.ntuple-table" ,sbcl-cl-ana.ntuple-table)
9344 ("cl-ana.package-utils" ,sbcl-cl-ana.package-utils)
9345 ("cl-ana.pathname-utils" ,sbcl-cl-ana.pathname-utils)
9346 ("cl-ana.plotting" ,sbcl-cl-ana.plotting)
9347 ("cl-ana.quantity" ,sbcl-cl-ana.quantity)
9348 ("cl-ana.reusable-table" ,sbcl-cl-ana.reusable-table)
9349 ("cl-ana.serialization" ,sbcl-cl-ana.serialization)
9350 ("cl-ana.statistics" ,sbcl-cl-ana.statistics)
9351 ("cl-ana.statistical-learning" ,sbcl-cl-ana.statistical-learning)
9352 ("cl-ana.table" ,sbcl-cl-ana.table)
9353 ("cl-ana.table-utils" ,sbcl-cl-ana.table-utils)
9354 ("cl-ana.table-viewing" ,sbcl-cl-ana.table-viewing)
9355 ("cl-ana.tensor" ,sbcl-cl-ana.tensor)
9356 ("libffi" ,libffi)))
9357 (native-inputs
9358 `(("cl-fad" ,sbcl-cl-fad)))
9359 (arguments
9360 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9361 ((#:asd-file _ "") "cl-ana.asd")
9362 ((#:asd-system-name _ #f) "cl-ana")))))
9363
9364 (define-public cl-ana
9365 (sbcl-package->cl-source-package sbcl-cl-ana))
9366
9367 (define-public sbcl-archive
9368 (let ((commit "631271c091ed02994bec3980cb288a2cf32c7cdc")
9369 (revision "1"))
9370 (package
9371 (name "sbcl-archive")
9372 (version (git-version "0.9" revision commit))
9373 (source (origin
9374 (method git-fetch)
9375 (uri (git-reference
9376 (url "https://github.com/sharplispers/archive.git")
9377 (commit commit)))
9378 (file-name (git-file-name name version))
9379 (sha256
9380 (base32
9381 "0pvsc9fmybx7rxd0kmzq4shi6hszdpwdc1sfy7jwyfxf8n3hnv4p"))))
9382 (build-system asdf-build-system/sbcl)
9383 (inputs
9384 `(("cl-fad" ,sbcl-cl-fad)
9385 ("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
9386 (synopsis "Common Lisp library for tar and cpio archives")
9387 (description
9388 "This is a Common Lisp library to read and write disk-based file
9389 archives such as those generated by the tar and cpio programs on Unix.")
9390 (home-page "https://github.com/sharplispers/archive")
9391 (license license:bsd-3))))
9392
9393 (define-public cl-archive
9394 (sbcl-package->cl-source-package sbcl-archive))
9395
9396 (define-public ecl-archive
9397 (sbcl-package->ecl-package sbcl-archive))
9398
9399 (define-public sbcl-misc-extensions
9400 (let ((commit "101c05112bf2f1e1bbf527396822d2f50ca6327a")
9401 (revision "1"))
9402 (package
9403 (name "sbcl-misc-extensions")
9404 (version (git-version "3.3" revision commit))
9405 (source
9406 (origin
9407 (method git-fetch)
9408 (uri (git-reference
9409 (url "https://gitlab.common-lisp.net/misc-extensions/devel.git")
9410 (commit commit)))
9411 (file-name (git-file-name name version))
9412 (sha256
9413 (base32
9414 "0gz5f4p70qzilnxsnf5lih2n9m4wjcw8hlw4w8mpn9jyhyppyyv0"))))
9415 (build-system asdf-build-system/sbcl)
9416 (synopsis "Collection of small macros and extensions for Common Lisp")
9417 (description
9418 "This project is intended as a catchall for small, general-purpose
9419 extensions to Common Lisp. It contains:
9420
9421 @itemize
9422 @item @code{new-let}, a macro that combines and generalizes @code{let},
9423 @code{let*} and @code{multiple-value-bind},
9424 @item @code{gmap}, an iteration macro that generalizes @code{map}.
9425 @end itemize\n")
9426 (home-page "https://common-lisp.net/project/misc-extensions/")
9427 (license license:public-domain))))
9428
9429 (define-public cl-misc-extensions
9430 (sbcl-package->cl-source-package sbcl-misc-extensions))
9431
9432 (define-public ecl-misc-extensions
9433 (sbcl-package->ecl-package sbcl-misc-extensions))
9434
9435 (define-public sbcl-mt19937
9436 (package
9437 (name "sbcl-mt19937")
9438 (version "1.1")
9439 (source
9440 (origin
9441 (method url-fetch)
9442 (uri (string-append "https://common-lisp.net/project/asdf-packaging/"
9443 "mt19937-latest.tar.gz"))
9444 (sha256
9445 (base32
9446 "1iw636b0iw5ygkv02y8i41lh7xj0acglv0hg5agryn0zzi2nf1xv"))))
9447 (build-system asdf-build-system/sbcl)
9448 (synopsis "Mersenne Twister pseudo-random number generator")
9449 (description
9450 "MT19937 is a portable Mersenne Twister pseudo-random number generator
9451 for Common Lisp.")
9452 (home-page "https://www.cliki.net/mt19937")
9453 (license license:public-domain)))
9454
9455 (define-public cl-mt19937
9456 (sbcl-package->cl-source-package sbcl-mt19937))
9457
9458 (define-public ecl-mt19937
9459 (sbcl-package->ecl-package sbcl-mt19937))
9460
9461 (define-public sbcl-fset
9462 (let ((commit "6d2f9ded8934d2b42f2571a0ba5bda091037d852")
9463 (revision "1"))
9464 (package
9465 (name "sbcl-fset")
9466 (version (git-version "1.3.2" revision commit))
9467 (source
9468 (origin
9469 (method git-fetch)
9470 (uri (git-reference
9471 (url "https://github.com/slburson/fset")
9472 (commit commit)))
9473 (file-name (git-file-name name version))
9474 (sha256
9475 (base32
9476 "127acblwrbqicx47h6sgvknz1cqyfn8p4xkhkn1m7hxh8w5gk1zy"))
9477 (snippet '(begin
9478 ;; Remove obsolete copy of system definition.
9479 (delete-file "Code/fset.asd")
9480 #t))))
9481 (build-system asdf-build-system/sbcl)
9482 (inputs
9483 `(("misc-extensions" ,sbcl-misc-extensions)
9484 ("mt19937" ,sbcl-mt19937)
9485 ("named-readtables" ,sbcl-named-readtables)))
9486 (synopsis "Functional set-theoretic collections library")
9487 (description
9488 "FSet is a functional set-theoretic collections library for Common Lisp.
9489 Functional means that all update operations return a new collection rather than
9490 modifying an existing one in place. Set-theoretic means that collections may
9491 be nested arbitrarily with no additional programmer effort; for instance, sets
9492 may contain sets, maps may be keyed by sets, etc.")
9493 (home-page "https://common-lisp.net/project/fset/Site/index.html")
9494 (license license:llgpl))))
9495
9496 (define-public cl-fset
9497 (sbcl-package->cl-source-package sbcl-fset))
9498
9499 (define-public sbcl-cl-cont
9500 (let ((commit "fc1fa7e6eb64894fdca13e688e6015fad5290d2a")
9501 (revision "1"))
9502 (package
9503 (name "sbcl-cl-cont")
9504 (version (git-version "0.3.8" revision commit))
9505 (source
9506 (origin
9507 (method git-fetch)
9508 (uri (git-reference
9509 (url "https://gitlab.common-lisp.net/cl-cont/cl-cont.git")
9510 (commit commit)))
9511 (file-name (git-file-name name version))
9512 (sha256
9513 (base32
9514 "1zf8zvb0i6jm3hhfks4w74hibm6avgc6f9s1qwgjrn2bcik8lrvz"))))
9515 (build-system asdf-build-system/sbcl)
9516 (inputs
9517 `(("alexandria" ,sbcl-alexandria)
9518 ("closer-mop" ,sbcl-closer-mop)))
9519 (native-inputs
9520 `(("rt" ,sbcl-rt)))
9521 (synopsis "Delimited continuations for Common Lisp")
9522 (description
9523 "This is a library that implements delimited continuations by
9524 transforming Common Lisp code to continuation passing style.")
9525 (home-page "https://common-lisp.net/project/cl-cont/")
9526 (license license:llgpl))))
9527
9528 (define-public cl-cont
9529 (sbcl-package->cl-source-package sbcl-cl-cont))
9530
9531 (define-public ecl-cl-cont
9532 (sbcl-package->ecl-package sbcl-cl-cont))
9533
9534 (define-public sbcl-cl-coroutine
9535 (let ((commit "de098f8d5debd8b14ef6864b5bdcbbf5ddbcfd72")
9536 (revision "1"))
9537 (package
9538 (name "sbcl-cl-coroutine")
9539 (version (git-version "0.1" revision commit))
9540 (source
9541 (origin
9542 (method git-fetch)
9543 (uri (git-reference
9544 (url "https://github.com/takagi/cl-coroutine.git")
9545 (commit commit)))
9546 (file-name (git-file-name name version))
9547 (sha256
9548 (base32
9549 "1cqdhdjxffgfs116l1swjlsmcbly0xgcgrckvaajd566idj9yj4l"))))
9550 (build-system asdf-build-system/sbcl)
9551 (inputs
9552 `(("alexandria" ,sbcl-alexandria)
9553 ("cl-cont" ,sbcl-cl-cont)))
9554 (native-inputs
9555 `(("prove" ,sbcl-prove)))
9556 (arguments
9557 `(;; TODO: Fix the tests. They fail with:
9558 ;; "Component CL-COROUTINE-ASD::CL-COROUTINE-TEST not found"
9559 #:tests? #f
9560 #:phases
9561 (modify-phases %standard-phases
9562 (add-after 'unpack 'fix-tests
9563 (lambda _
9564 (substitute* "cl-coroutine-test.asd"
9565 (("cl-test-more")
9566 "prove"))
9567 #t)))))
9568 (synopsis "Coroutine library for Common Lisp")
9569 (description
9570 "This is a coroutine library for Common Lisp implemented using the
9571 continuations of the @code{cl-cont} library.")
9572 (home-page "https://github.com/takagi/cl-coroutine")
9573 (license license:llgpl))))
9574
9575 (define-public cl-coroutine
9576 (sbcl-package->cl-source-package sbcl-cl-coroutine))
9577
9578 (define-public ecl-cl-coroutine
9579 (sbcl-package->ecl-package sbcl-cl-coroutine))
9580
9581 (define-public sbcl-vom
9582 (let ((commit "1aeafeb5b74c53741b79497e0ef4acf85c92ff24")
9583 (revision "1"))
9584 (package
9585 (name "sbcl-vom")
9586 (version (git-version "0.1.4" revision commit))
9587 (source
9588 (origin
9589 (method git-fetch)
9590 (uri (git-reference
9591 (url "https://github.com/orthecreedence/vom.git")
9592 (commit commit)))
9593 (file-name (git-file-name name version))
9594 (sha256
9595 (base32
9596 "0536kppj76ax4lrxhv42npkfjsmx45km2g439vf9jmw3apinz9cy"))))
9597 (build-system asdf-build-system/sbcl)
9598 (synopsis "Tiny logging utility for Common Lisp")
9599 (description
9600 "Vom is a logging library for Common Lisp. It's goal is to be useful
9601 and small. It does not provide a lot of features as other loggers do, but
9602 has a small codebase that's easy to understand and use.")
9603 (home-page "https://github.com/orthecreedence/vom")
9604 (license license:expat))))
9605
9606 (define-public cl-vom
9607 (sbcl-package->cl-source-package sbcl-vom))
9608
9609 (define-public ecl-vom
9610 (sbcl-package->ecl-package sbcl-vom))
9611
9612 (define-public sbcl-cl-libuv
9613 (let ((commit "32100c023c518038d0670a103eaa4d50dd785d29")
9614 (revision "1"))
9615 (package
9616 (name "sbcl-cl-libuv")
9617 (version (git-version "0.1.6" revision commit))
9618 (source
9619 (origin
9620 (method git-fetch)
9621 (uri (git-reference
9622 (url "https://github.com/orthecreedence/cl-libuv.git")
9623 (commit commit)))
9624 (file-name (git-file-name name version))
9625 (sha256
9626 (base32
9627 "1kwix4si8a8hza34ab2k7whrh7z0yrmx39v2wc3qblv9m244jkh1"))))
9628 (build-system asdf-build-system/sbcl)
9629 (inputs
9630 `(("alexandria" ,sbcl-alexandria)
9631 ("cffi" ,sbcl-cffi)
9632 ("cffi-grovel" ,sbcl-cffi-grovel)
9633 ("libuv" ,libuv)))
9634 (arguments
9635 `(#:phases
9636 (modify-phases %standard-phases
9637 (add-after 'unpack 'fix-paths
9638 (lambda* (#:key inputs #:allow-other-keys)
9639 (substitute* "lib.lisp"
9640 (("/usr/lib/libuv.so")
9641 (string-append (assoc-ref inputs "libuv")
9642 "/lib/libuv.so")))
9643 #t))
9644 (add-after 'fix-paths 'fix-system-definition
9645 (lambda _
9646 (substitute* "cl-libuv.asd"
9647 (("#:cffi #:alexandria")
9648 "#:cffi #:cffi-grovel #:alexandria"))
9649 #t)))))
9650 (synopsis "Common Lisp bindings to libuv")
9651 (description
9652 "This library provides low-level libuv bindings for Common Lisp.")
9653 (home-page "https://github.com/orthecreedence/cl-libuv")
9654 (license license:expat))))
9655
9656 (define-public cl-libuv
9657 (sbcl-package->cl-source-package sbcl-cl-libuv))
9658
9659 (define-public ecl-cl-libuv
9660 (sbcl-package->ecl-package sbcl-cl-libuv))
9661
9662 (define-public sbcl-cl-async-base
9663 (let ((commit "f6423e44404a44434d803605e0d2e17199158e28")
9664 (revision "1"))
9665 (package
9666 (name "sbcl-cl-async-base")
9667 (version (git-version "0.6.1" revision commit))
9668 (source
9669 (origin
9670 (method git-fetch)
9671 (uri (git-reference
9672 (url "https://github.com/orthecreedence/cl-async.git")
9673 (commit commit)))
9674 (file-name (git-file-name name version))
9675 (sha256
9676 (base32
9677 "11xi9dxb8mjgwzrkj88i0xkgk26z9w9ddxzbv6xsvfc1d4x5cf4x"))))
9678 (build-system asdf-build-system/sbcl)
9679 (inputs
9680 `(("bordeaux-threads" ,sbcl-bordeaux-threads)
9681 ("cffi" ,sbcl-cffi)
9682 ("cl-libuv" ,sbcl-cl-libuv)))
9683 (arguments
9684 `(#:asd-file "cl-async.asd"))
9685 (synopsis "Base system for cl-async")
9686 (description
9687 "Cl-async is a library for general purpose, non-blocking programming in
9688 Common Lisp. It uses the libuv library as backend.")
9689 (home-page "https://orthecreedence.github.io/cl-async/")
9690 (license license:expat))))
9691
9692 (define-public cl-async-base
9693 (sbcl-package->cl-source-package sbcl-cl-async-base))
9694
9695 (define-public ecl-cl-async-base
9696 (sbcl-package->ecl-package sbcl-cl-async-base))
9697
9698 (define-public sbcl-cl-async-util
9699 (package
9700 (inherit sbcl-cl-async-base)
9701 (name "sbcl-cl-async-util")
9702 (inputs
9703 `(("bordeaux-threads" ,sbcl-bordeaux-threads)
9704 ("cffi" ,sbcl-cffi)
9705 ("cl-async-base" ,sbcl-cl-async-base)
9706 ("cl-libuv" ,sbcl-cl-libuv)
9707 ("cl-ppcre" ,sbcl-cl-ppcre)
9708 ("fast-io" ,sbcl-fast-io)
9709 ("vom" ,sbcl-vom)))
9710 (synopsis "Internal utilities for cl-async")))
9711
9712 (define-public cl-async-util
9713 (sbcl-package->cl-source-package sbcl-cl-async-util))
9714
9715 (define-public ecl-cl-async-util
9716 (sbcl-package->ecl-package sbcl-cl-async-util))
9717
9718 (define-public sbcl-cl-async
9719 (package
9720 (inherit sbcl-cl-async-base)
9721 (name "sbcl-cl-async")
9722 (inputs
9723 `(("babel" ,sbcl-babel)
9724 ("cffi" ,sbcl-cffi)
9725 ("cl-async-base" ,sbcl-cl-async-base)
9726 ("cl-async-util" ,sbcl-cl-async-util)
9727 ("cl-libuv" ,sbcl-cl-libuv)
9728 ("cl-ppcre" ,sbcl-cl-ppcre)
9729 ("static-vectors" ,sbcl-static-vectors)
9730 ("trivial-features" ,sbcl-trivial-features)
9731 ("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
9732 (synopsis "Asynchronous operations for Common Lisp")))
9733
9734 (define-public cl-async
9735 (sbcl-package->cl-source-package sbcl-cl-async))
9736
9737 (define-public ecl-cl-async
9738 (sbcl-package->ecl-package sbcl-cl-async))
9739
9740 (define-public sbcl-cl-async-repl
9741 (package
9742 (inherit sbcl-cl-async-base)
9743 (name "sbcl-cl-async-repl")
9744 (inputs
9745 `(("bordeaux-threads" ,sbcl-bordeaux-threads)
9746 ("cl-async" ,sbcl-cl-async)))
9747 (arguments
9748 (substitute-keyword-arguments (package-arguments sbcl-cl-async-base)
9749 ((#:asd-file _ "") "cl-async-repl.asd")))
9750 (synopsis "REPL integration for cl-async")))
9751
9752 (define-public cl-async-repl
9753 (sbcl-package->cl-source-package sbcl-cl-async-repl))
9754
9755 (define-public ecl-cl-async-repl
9756 (sbcl-package->ecl-package sbcl-cl-async-repl))
9757
9758 (define-public sbcl-cl-async-ssl
9759 (package
9760 (inherit sbcl-cl-async-base)
9761 (name "sbcl-cl-async-ssl")
9762 (inputs
9763 `(("cffi" ,sbcl-cffi)
9764 ("cl-async" ,sbcl-cl-async)
9765 ("openssl" ,openssl)
9766 ("vom" ,sbcl-vom)))
9767 (arguments
9768 (substitute-keyword-arguments (package-arguments sbcl-cl-async-base)
9769 ((#:asd-file _ "") "cl-async-ssl.asd")
9770 ((#:phases phases '%standard-phases)
9771 `(modify-phases ,phases
9772 (add-after 'unpack 'fix-paths
9773 (lambda* (#:key inputs #:allow-other-keys)
9774 (substitute* "src/ssl/package.lisp"
9775 (("libcrypto\\.so")
9776 (string-append (assoc-ref inputs "openssl")
9777 "/lib/libcrypto.so"))
9778 (("libssl\\.so")
9779 (string-append (assoc-ref inputs "openssl")
9780 "/lib/libssl.so")))
9781 #t))))))
9782 (synopsis "SSL wrapper around cl-async socket implementation")))
9783
9784 (define-public cl-async-ssl
9785 (sbcl-package->cl-source-package sbcl-cl-async-ssl))
9786
9787 (define-public ecl-cl-async-ssl
9788 (sbcl-package->ecl-package sbcl-cl-async-ssl))
9789
9790 (define-public sbcl-blackbird
9791 (let ((commit "d361f81c1411dec07f6c2dcb11c78f7aea9aaca8")
9792 (revision "1"))
9793 (package
9794 (name "sbcl-blackbird")
9795 (version (git-version "0.5.2" revision commit))
9796 (source
9797 (origin
9798 (method git-fetch)
9799 (uri (git-reference
9800 (url "https://github.com/orthecreedence/blackbird.git")
9801 (commit commit)))
9802 (file-name (git-file-name name version))
9803 (sha256
9804 (base32
9805 "0xfds5yaya64arzr7w1x38karyz11swzbhxx1afldpradj9dh19c"))))
9806 (build-system asdf-build-system/sbcl)
9807 (inputs
9808 `(("vom" ,sbcl-vom)))
9809 (native-inputs
9810 `(("cl-async" ,sbcl-cl-async)
9811 ("fiveam" ,sbcl-fiveam)))
9812 (synopsis "Promise implementation for Common Lisp")
9813 (description
9814 "This is a standalone promise implementation for Common Lisp. It is
9815 the successor to the now-deprecated cl-async-future project.")
9816 (home-page "https://orthecreedence.github.io/blackbird/")
9817 (license license:expat))))
9818
9819 (define-public cl-blackbird
9820 (sbcl-package->cl-source-package sbcl-blackbird))
9821
9822 (define-public ecl-blackbird
9823 (sbcl-package->ecl-package sbcl-blackbird))
9824
9825 (define-public sbcl-cl-async-future
9826 (let ((commit "ee36c22a69a9516407458d2ed8b475f1fc473959")
9827 (revision "1"))
9828 (package
9829 (name "sbcl-cl-async-future")
9830 (version (git-version "0.4.4.1" revision commit))
9831 (source
9832 (origin
9833 (method git-fetch)
9834 (uri (git-reference
9835 (url "https://github.com/orthecreedence/cl-async-future.git")
9836 (commit commit)))
9837 (file-name (git-file-name name version))
9838 (sha256
9839 (base32
9840 "0z0sc7qlzzxk99f4l26zp6rai9kv0kj0f599sxai5s44p17zbbvh"))))
9841 (build-system asdf-build-system/sbcl)
9842 (inputs
9843 `(("blackbird" ,sbcl-blackbird)))
9844 (native-inputs
9845 `(("cl-async" ,sbcl-cl-async)
9846 ("eos" ,sbcl-eos)))
9847 (synopsis "Futures implementation for Common Lisp")
9848 (description
9849 "This is futures implementation for Common Lisp. It plugs in nicely
9850 to cl-async.")
9851 (home-page "https://orthecreedence.github.io/cl-async/future")
9852 (license license:expat))))
9853
9854 (define-public cl-async-future
9855 (sbcl-package->cl-source-package sbcl-cl-async-future))
9856
9857 (define-public ecl-cl-async-future
9858 (sbcl-package->ecl-package sbcl-cl-async-future))
9859
9860 (define-public sbcl-green-threads
9861 (let ((commit "fff5ebecb441a37e5c511773716aafd84a3c5840")
9862 (revision "1"))
9863 (package
9864 (name "sbcl-green-threads")
9865 (version (git-version "0.3" revision commit))
9866 (source
9867 (origin
9868 (method git-fetch)
9869 (uri (git-reference
9870 (url "https://github.com/thezerobit/green-threads.git")
9871 (commit commit)))
9872 (file-name (git-file-name name version))
9873 (sha256
9874 (base32
9875 "1czw7nr0dwfps76h8hjvglk1wdh53yqbfbvv30whwbgqx33iippz"))))
9876 (build-system asdf-build-system/sbcl)
9877 (inputs
9878 `(("cl-async-future" ,sbcl-cl-async-future)
9879 ("cl-cont" ,sbcl-cl-cont)))
9880 (native-inputs
9881 `(("prove" ,sbcl-prove)))
9882 (arguments
9883 `(;; TODO: Fix the tests. They fail with:
9884 ;; "The function BLACKBIRD::PROMISE-VALUES is undefined"
9885 #:tests? #f
9886 #:phases
9887 (modify-phases %standard-phases
9888 (add-after 'unpack 'fix-tests
9889 (lambda _
9890 (substitute* "green-threads-test.asd"
9891 (("cl-test-more")
9892 "prove"))
9893 #t)))))
9894 (synopsis "Cooperative multitasking library for Common Lisp")
9895 (description
9896 "This library allows for cooperative multitasking with help of cl-cont
9897 for continuations. It tries to mimic the API of bordeaux-threads as much as
9898 possible.")
9899 (home-page "https://github.com/thezerobit/green-threads")
9900 (license license:bsd-3))))
9901
9902 (define-public cl-green-threads
9903 (sbcl-package->cl-source-package sbcl-green-threads))
9904
9905 (define-public ecl-green-threads
9906 (sbcl-package->ecl-package sbcl-green-threads))
9907
9908 (define-public sbcl-cl-base32
9909 (let ((commit "8cdee06fab397f7b0a19583b57e7f0c98405be85")
9910 (revision "1"))
9911 (package
9912 (name "sbcl-cl-base32")
9913 (version (git-version "0.1" revision commit))
9914 (source
9915 (origin
9916 (method git-fetch)
9917 (uri (git-reference
9918 (url "https://github.com/hargettp/cl-base32.git")
9919 (commit commit)))
9920 (file-name (git-file-name name version))
9921 (sha256
9922 (base32 "17jrng8jb05d64ggyd11hp308c2fl5drvf9g175blgrkkl8l4mf8"))))
9923 (build-system asdf-build-system/sbcl)
9924 (native-inputs
9925 `(("lisp-unit" ,sbcl-lisp-unit)))
9926 (synopsis "Common Lisp library for base32 encoding and decoding")
9927 (description
9928 "This package provides functions for base32 encoding and decoding as
9929 defined in RFC4648.")
9930 (home-page "https://github.com/hargettp/cl-base32")
9931 (license license:expat))))
9932
9933 (define-public cl-base32
9934 (sbcl-package->cl-source-package sbcl-cl-base32))
9935
9936 (define-public ecl-cl-base32
9937 (sbcl-package->ecl-package sbcl-cl-base32))
9938
9939 (define-public sbcl-cl-z85
9940 (let ((commit "85b3951a9cfa2603acb6aee15567684f9a108098")
9941 (revision "1"))
9942 (package
9943 (name "sbcl-cl-z85")
9944 (version (git-version "1.0" revision commit))
9945 (source
9946 (origin
9947 (method git-fetch)
9948 (uri (git-reference
9949 (url "https://github.com/glv2/cl-z85.git")
9950 (commit commit)))
9951 (file-name (git-file-name name version))
9952 (sha256
9953 (base32 "0r27pidjaxbm7k1rr90nnajwl5xm2kp65g1fv0fva17lzy45z1mp"))))
9954 (build-system asdf-build-system/sbcl)
9955 (native-inputs
9956 `(("cl-octet-streams" ,sbcl-cl-octet-streams)
9957 ("fiveam" ,sbcl-fiveam)))
9958 (synopsis "Common Lisp library for Z85 encoding and decoding")
9959 (description
9960 "This package provides functions to encode or decode byte vectors or
9961 byte streams using the Z85 format, which is a base-85 encoding used by
9962 ZeroMQ.")
9963 (home-page "https://github.com/glv2/cl-z85")
9964 (license license:gpl3+))))
9965
9966 (define-public cl-z85
9967 (sbcl-package->cl-source-package sbcl-cl-z85))
9968
9969 (define-public ecl-cl-z85
9970 (sbcl-package->ecl-package sbcl-cl-z85))
9971
9972 (define-public sbcl-ltk
9973 (package
9974 (name "sbcl-ltk")
9975 (version "0.992")
9976 (source
9977 (origin
9978 (method git-fetch)
9979 (uri (git-reference
9980 (url "https://github.com/herth/ltk.git")
9981 (commit version)))
9982 (file-name (git-file-name name version))
9983 (sha256
9984 (base32 "13l2q4mskzilya9xh5wy2xvy30lwn104bd8wrq6ifds56r82iy3x"))))
9985 (build-system asdf-build-system/sbcl)
9986 (inputs
9987 `(("imagemagick" ,imagemagick)
9988 ("tk" ,tk)))
9989 (arguments
9990 `(#:asd-file "ltk/ltk.asd"
9991 #:tests? #f
9992 #:phases (modify-phases %standard-phases
9993 (add-after 'unpack 'fix-paths
9994 (lambda* (#:key inputs #:allow-other-keys)
9995 (substitute* "ltk/ltk.lisp"
9996 (("#-freebsd \"wish\"")
9997 (string-append "#-freebsd \""
9998 (assoc-ref inputs "tk")
9999 "/bin/wish\""))
10000 (("do-execute \"convert\"")
10001 (string-append "do-execute \""
10002 (assoc-ref inputs "imagemagick")
10003 "/bin/convert\"")))
10004 #t)))))
10005 (synopsis "Common Lisp bindings for the Tk GUI toolkit")
10006 (description
10007 "LTK is a Common Lisp binding for the Tk graphics toolkit. It is written
10008 in pure Common Lisp and does not require any Tk knowledge for its usage.")
10009 (home-page "http://www.peter-herth.de/ltk/")
10010 (license license:llgpl)))
10011
10012 (define-public cl-ltk
10013 (sbcl-package->cl-source-package sbcl-ltk))
10014
10015 (define-public ecl-ltk
10016 (sbcl-package->ecl-package sbcl-ltk))
10017
10018 (define-public sbcl-ltk-mw
10019 (package
10020 (inherit sbcl-ltk)
10021 (name "sbcl-ltk-mw")
10022 (inputs
10023 `(("ltk" ,sbcl-ltk)))
10024 (arguments
10025 (substitute-keyword-arguments (package-arguments sbcl-ltk)
10026 ((#:asd-file _) "ltk/ltk-mw.asd")
10027 ((#:phases _) '%standard-phases)))
10028 (synopsis "Extra widgets for LTK")
10029 (description
10030 "This is a collection of higher-level widgets built on top of LTK.")))
10031
10032 (define-public cl-ltk-mw
10033 (sbcl-package->cl-source-package sbcl-ltk-mw))
10034
10035 (define-public ecl-ltk-mw
10036 (sbcl-package->ecl-package sbcl-ltk-mw))
10037
10038 (define-public sbcl-ltk-remote
10039 (package
10040 (inherit sbcl-ltk)
10041 (name "sbcl-ltk-remote")
10042 (inputs
10043 `(("ltk" ,sbcl-ltk)))
10044 (arguments
10045 (substitute-keyword-arguments (package-arguments sbcl-ltk)
10046 ((#:asd-file _) "ltk/ltk-remote.asd")
10047 ((#:phases _) '%standard-phases)))
10048 (synopsis "Remote GUI support for LTK")
10049 (description
10050 "This LTK extension allows the GUI to be displayed on a computer different
10051 from the one running the Lisp program by using a TCP connection.")))
10052
10053 (define-public cl-ltk-remote
10054 (sbcl-package->cl-source-package sbcl-ltk-remote))
10055
10056 (define-public sbcl-cl-lex
10057 (let ((commit "f2dbbe25ef553005fb402d9a6203180c3fa1093b")
10058 (revision "1"))
10059 (package
10060 (name "sbcl-cl-lex")
10061 (version (git-version "1.1.3" revision commit))
10062 (source
10063 (origin
10064 (method git-fetch)
10065 (uri (git-reference
10066 (url "https://github.com/djr7C4/cl-lex.git")
10067 (commit commit)))
10068 (file-name (git-file-name name version))
10069 (sha256
10070 (base32 "1kg50f76bfpfxcv4dfivq1n9a0xlsra2ajb0vd68lxwgbidgyc2y"))))
10071 (build-system asdf-build-system/sbcl)
10072 (inputs
10073 `(("cl-ppcre" ,sbcl-cl-ppcre)))
10074 (synopsis "Common Lisp macros for generating lexical analyzers")
10075 (description
10076 "This is a Common Lisp library providing a set of macros for generating
10077 lexical analyzers automatically. The lexers generated using @code{cl-lex} can
10078 be used with @code{cl-yacc}.")
10079 (home-page "https://github.com/djr7C4/cl-lex")
10080 (license license:gpl3))))
10081
10082 (define-public cl-lex
10083 (sbcl-package->cl-source-package sbcl-cl-lex))
10084
10085 (define-public ecl-cl-lex
10086 (sbcl-package->ecl-package sbcl-cl-lex))
10087
10088 (define-public sbcl-clunit2
10089 (let ((commit "5e28343734eb9b7aee39306a614af92c1062d50b")
10090 (revision "1"))
10091 (package
10092 (name "sbcl-clunit2")
10093 (version (git-version "0.2.4" revision commit))
10094 (source
10095 (origin
10096 (method git-fetch)
10097 (uri (git-reference
10098 (url "https://notabug.org/cage/clunit2.git")
10099 (commit commit)))
10100 (file-name (git-file-name name version))
10101 (sha256
10102 (base32 "1ngiapfki6nm8a555mzhb5p7ch79i3w665za5bmb5j7q34fy80vw"))))
10103 (build-system asdf-build-system/sbcl)
10104 (synopsis "Unit testing framework for Common Lisp")
10105 (description
10106 "CLUnit is a Common Lisp unit testing framework. It is designed to be
10107 easy to use so that you can quickly start testing.")
10108 (home-page "https://notabug.org/cage/clunit2")
10109 (license license:expat))))
10110
10111 (define-public cl-clunit2
10112 (sbcl-package->cl-source-package sbcl-clunit2))
10113
10114 (define-public ecl-clunit2
10115 (sbcl-package->ecl-package sbcl-clunit2))
10116
10117 (define-public sbcl-cl-colors2
10118 (let ((commit "795aedee593b095fecde574bd999b520dd03ed24")
10119 (revision "1"))
10120 (package
10121 (name "sbcl-cl-colors2")
10122 (version (git-version "0.2.1" revision commit))
10123 (source
10124 (origin
10125 (method git-fetch)
10126 (uri (git-reference
10127 (url "https://notabug.org/cage/cl-colors2.git")
10128 (commit commit)))
10129 (file-name (git-file-name name version))
10130 (sha256
10131 (base32 "0hlyf4h5chkjdp9armla5w4kw5acikk159sym7y8c4jbjp9x47ih"))))
10132 (build-system asdf-build-system/sbcl)
10133 (native-inputs
10134 `(("clunit2" ,sbcl-clunit2)))
10135 (inputs
10136 `(("alexandria" ,sbcl-alexandria)
10137 ("cl-ppcre" ,sbcl-cl-ppcre)))
10138 (synopsis "Color library for Common Lisp")
10139 (description
10140 "This is a very simple color library for Common Lisp, providing:
10141
10142 @itemize
10143 @item Types for representing colors in HSV and RGB spaces.
10144 @item Simple conversion functions between the above types (and also
10145 hexadecimal representation for RGB).
10146 @item Some predefined colors (currently X11 color names -- of course
10147 the library does not depend on X11).
10148 @end itemize\n")
10149 (home-page "https://notabug.org/cage/cl-colors2")
10150 (license license:boost1.0))))
10151
10152 (define-public cl-colors2
10153 (sbcl-package->cl-source-package sbcl-cl-colors2))
10154
10155 (define-public ecl-cl-colors2
10156 (sbcl-package->ecl-package sbcl-cl-colors2))
10157
10158 (define-public sbcl-cl-jpeg
10159 (let ((commit "ec557038128df6895fbfb743bfe8faf8ec2534af")
10160 (revision "1"))
10161 (package
10162 (name "sbcl-cl-jpeg")
10163 (version (git-version "2.8" revision commit))
10164 (source
10165 (origin
10166 (method git-fetch)
10167 (uri (git-reference
10168 (url "https://github.com/sharplispers/cl-jpeg.git")
10169 (commit commit)))
10170 (file-name (git-file-name name version))
10171 (sha256
10172 (base32 "1bkkiqz8fqldlj1wbmrccjsvxcwj98h6s4b6gslr3cg2wmdv5xmy"))))
10173 (build-system asdf-build-system/sbcl)
10174 (synopsis "JPEG image library for Common Lisp")
10175 (description
10176 "This is a baseline JPEG codec written in Common Lisp. It can be used
10177 for reading and writing JPEG image files.")
10178 (home-page "https://github.com/sharplispers/cl-jpeg")
10179 (license license:bsd-3))))
10180
10181 (define-public cl-jpeg
10182 (sbcl-package->cl-source-package sbcl-cl-jpeg))
10183
10184 (define-public ecl-cl-jpeg
10185 (sbcl-package->ecl-package sbcl-cl-jpeg))
10186
10187 (define-public sbcl-nodgui
10188 (let ((commit "bc59ed9b787dfc9e68ae3bd7f7e8507c5c619212")
10189 (revision "1"))
10190 (package
10191 (name "sbcl-nodgui")
10192 (version (git-version "0.0.5" revision commit))
10193 (source
10194 (origin
10195 (method git-fetch)
10196 (uri (git-reference
10197 (url "https://notabug.org/cage/nodgui.git")
10198 (commit commit)))
10199 (file-name (git-file-name name version))
10200 (sha256
10201 (base32 "0xx0dk54d882i598ydnwmy7mnfk0b7vib3ddsgpqxhjck1rwq8l8"))))
10202 (build-system asdf-build-system/sbcl)
10203 (inputs
10204 `(("alexandria" ,sbcl-alexandria)
10205 ("bordeaux-threads" ,sbcl-bordeaux-threads)
10206 ("cl-colors2" ,sbcl-cl-colors2)
10207 ("cl-jpeg" ,sbcl-cl-jpeg)
10208 ("cl-lex" ,sbcl-cl-lex)
10209 ("cl-ppcre-unicode" ,sbcl-cl-ppcre-unicode)
10210 ("cl-unicode" ,sbcl-cl-unicode)
10211 ("cl-yacc" ,sbcl-cl-yacc)
10212 ("clunit2" ,sbcl-clunit2)
10213 ("named-readtables" ,sbcl-named-readtables)
10214 ("parse-number" ,sbcl-parse-number)
10215 ("tk" ,tk)))
10216 (arguments
10217 `(#:phases (modify-phases %standard-phases
10218 (add-after 'unpack 'fix-paths
10219 (lambda* (#:key inputs #:allow-other-keys)
10220 (substitute* "src/wish-communication.lisp"
10221 (("#-freebsd \"wish\"")
10222 (string-append "#-freebsd \""
10223 (assoc-ref inputs "tk")
10224 "/bin/wish\"")))
10225 #t)))))
10226 (synopsis "Common Lisp bindings for the Tk GUI toolkit")
10227 (description
10228 "Nodgui (@emph{No Drama GUI}) is a Common Lisp binding for the Tk GUI
10229 toolkit. It also provides a few additional widgets more than the standard Tk
10230 ones.")
10231 (home-page "https://www.autistici.org/interzona/nodgui.html")
10232 (license license:llgpl))))
10233
10234 (define-public cl-nodgui
10235 (sbcl-package->cl-source-package sbcl-nodgui))
10236
10237 (define-public ecl-nodgui
10238 (sbcl-package->ecl-package sbcl-nodgui))
10239
10240 (define-public sbcl-salza2
10241 (package
10242 (name "sbcl-salza2")
10243 (version "2.0.9")
10244 (source
10245 (origin
10246 (method git-fetch)
10247 (uri (git-reference
10248 (url "https://github.com/xach/salza2.git")
10249 (commit (string-append "release-" version))))
10250 (file-name (git-file-name name version))
10251 (sha256
10252 (base32 "0p38rj4gq7j5k807php7hrz7l2zyyfshv8i9yms7i8lkgg3433ki"))))
10253 (build-system asdf-build-system/sbcl)
10254 (synopsis "Common Lisp library for zlib, deflate and gzip compression")
10255 (description
10256 "Salza2 is a Common Lisp library for creating compressed data in the zlib,
10257 deflate, or gzip data formats, described in RFC 1950, RFC 1951, and RFC 1952,
10258 respectively.")
10259 (home-page "https://www.xach.com/lisp/salza2/")
10260 (license license:bsd-2)))
10261
10262 (define-public cl-salza2
10263 (sbcl-package->cl-source-package sbcl-salza2))
10264
10265 (define-public ecl-salza2
10266 (sbcl-package->ecl-package sbcl-salza2))
10267
10268 (define-public sbcl-png-read
10269 (let ((commit "ec29f38a689972b9f1373f13bbbcd6b05deada88")
10270 (revision "1"))
10271 (package
10272 (name "sbcl-png-read")
10273 (version (git-version "0.3.1" revision commit))
10274 (source
10275 (origin
10276 (method git-fetch)
10277 (uri (git-reference
10278 (url "https://github.com/Ramarren/png-read.git")
10279 (commit commit)))
10280 (file-name (git-file-name name version))
10281 (sha256
10282 (base32 "0vyczbcwskrygrf1hgrsnk0jil8skmvf1kiaalw5jps4fjrfdkw0"))))
10283 (build-system asdf-build-system/sbcl)
10284 (inputs
10285 `(("babel" ,sbcl-babel)
10286 ("chipz" ,sbcl-chipz)
10287 ("iterate" ,sbcl-iterate)))
10288 (synopsis "PNG decoder for Common Lisp")
10289 (description "This is a Common Lisp library for reading PNG images.")
10290 (home-page "https://github.com/Ramarren/png-read")
10291 (license license:bsd-3))))
10292
10293 (define-public cl-png-read
10294 (sbcl-package->cl-source-package sbcl-png-read))
10295
10296 (define-public ecl-png-read
10297 (sbcl-package->ecl-package sbcl-png-read))
10298
10299 (define-public sbcl-zpng
10300 (package
10301 (name "sbcl-zpng")
10302 (version "1.2.2")
10303 (source
10304 (origin
10305 (method git-fetch)
10306 (uri (git-reference
10307 (url "https://github.com/xach/zpng.git")
10308 (commit (string-append "release-" version))))
10309 (file-name (git-file-name name version))
10310 (sha256
10311 (base32 "0b3ag3jhl3z7kdls3ahdsdxsfhhw5qrizk769984f4wkxhb69rcm"))))
10312 (build-system asdf-build-system/sbcl)
10313 (inputs
10314 `(("salza2" ,sbcl-salza2)))
10315 (synopsis "PNG encoder for Common Lisp")
10316 (description "This is a Common Lisp library for creating PNG images.")
10317 (home-page "https://www.xach.com/lisp/zpng/")
10318 (license license:bsd-2)))
10319
10320 (define-public cl-zpng
10321 (sbcl-package->cl-source-package sbcl-zpng))
10322
10323 (define-public ecl-zpng
10324 (sbcl-package->ecl-package sbcl-zpng))
10325
10326 (define-public sbcl-cl-qrencode
10327 (package
10328 (name "sbcl-cl-qrencode")
10329 (version "0.1.2")
10330 (source
10331 (origin
10332 (method git-fetch)
10333 (uri (git-reference
10334 (url "https://github.com/jnjcc/cl-qrencode.git")
10335 (commit (string-append "v" version))))
10336 (file-name (git-file-name name version))
10337 (sha256
10338 (base32 "1l5k131dchbf6cj8a8xqa731790p01p3qa1kdy2wa9dawy3ymkxr"))))
10339 (build-system asdf-build-system/sbcl)
10340 (native-inputs
10341 `(("lisp-unit" ,sbcl-lisp-unit)))
10342 (inputs
10343 `(("zpng" ,sbcl-zpng)))
10344 (synopsis "QR code encoder for Common Lisp")
10345 (description
10346 "This Common Lisp library provides function to make QR codes and to save
10347 them as PNG files.")
10348 (home-page "https://github.com/jnjcc/cl-qrencode")
10349 (license license:gpl2+)))
10350
10351 (define-public cl-qrencode
10352 (sbcl-package->cl-source-package sbcl-cl-qrencode))
10353
10354 (define-public ecl-cl-qrencode
10355 (sbcl-package->ecl-package sbcl-cl-qrencode))
10356
10357 (define-public sbcl-hdf5-cffi
10358 (let ((commit "5b5c88f191e470e4fe96b462334e3ce0806eed5c")
10359 (revision "1"))
10360 (package
10361 (name "sbcl-hdf5-cffi")
10362 (version (git-version "1.8.18" revision commit))
10363 (source
10364 (origin
10365 (method git-fetch)
10366 (uri (git-reference
10367 (url "https://github.com/hdfgroup/hdf5-cffi.git")
10368 (commit commit)))
10369 (file-name (git-file-name name version))
10370 (sha256
10371 (base32
10372 "0vda3075423xz83qky998lpac5b04dwfv7bwgh9jq8cs5v0zrxjf"))))
10373 (build-system asdf-build-system/sbcl)
10374 (synopsis "Common Lisp bindings for the HDF5 library")
10375 (description
10376 "@code{hdf5-cffi} is a CFFI wrapper for the HDF5 library.")
10377 (home-page "https://github.com/hdfgroup/hdf5-cffi")
10378 (license (license:non-copyleft
10379 (string-append "https://github.com/HDFGroup/hdf5-cffi/raw/"
10380 commit
10381 "/LICENSE")))
10382 (inputs
10383 `(("cffi" ,sbcl-cffi)
10384 ("cffi-grovel" ,sbcl-cffi-grovel)
10385 ("hdf5" ,hdf5-1.10)))
10386 (native-inputs
10387 `(("fiveam" ,sbcl-fiveam)))
10388 (arguments
10389 `(#:asd-system-name "hdf5-cffi"
10390 #:asd-file "hdf5-cffi.asd"
10391 #:test-asd-file "hdf5-cffi.test.asd"
10392 ;; Tests depend on hdf5-cffi.examples.asd in addition to hdf5-cffi.asd,
10393 ;; I don't know if there is a way to tell asdf-build-system to load
10394 ;; an additional system first, so tests are disabled.
10395 #:tests? #f
10396 #:phases
10397 (modify-phases %standard-phases
10398 (add-after 'unpack 'fix-paths
10399 (lambda* (#:key inputs #:allow-other-keys)
10400 (substitute* "src/library.lisp"
10401 (("libhdf5.so")
10402 (string-append
10403 (assoc-ref inputs "hdf5")
10404 "/lib/libhdf5.so")))))
10405 (add-after 'unpack 'fix-dependencies
10406 (lambda* (#:key inputs #:allow-other-keys)
10407 (substitute* "hdf5-cffi.asd"
10408 ((":depends-on \\(:cffi\\)")
10409 ":depends-on (:cffi :cffi-grovel)"))
10410 (substitute* "hdf5-cffi.test.asd"
10411 ((":depends-on \\(:cffi :hdf5-cffi")
10412 ":depends-on (:cffi :cffi-grovel :hdf5-cffi"))))))))))
10413
10414 (define-public cl-hdf5-cffi
10415 (sbcl-package->cl-source-package sbcl-hdf5-cffi))
10416
10417 (define-public ecl-hdf5-cffi
10418 (sbcl-package->ecl-package sbcl-hdf5-cffi))
10419
10420 (define-public sbcl-cl-randist
10421 (package
10422 (name "sbcl-cl-randist")
10423 (version "0.4.2")
10424 (source
10425 (origin
10426 (method git-fetch)
10427 (uri (git-reference
10428 (url "https://github.com/lvaruzza/cl-randist.git")
10429 (commit "f088a54b540a7adefab7c04094a6103f9edda3d0")))
10430 (file-name (git-file-name name version))
10431 (sha256
10432 (base32
10433 "0l8hyd6nbxb7f50vyxz3rbbm7kgr1fnadc40jywy4xj5vi5kpj5g"))))
10434 (build-system asdf-build-system/sbcl)
10435 (synopsis "Random distributions for Common Lisp")
10436 (description
10437 "Manual translation from C to Common Lisp of some random number
10438 generation functions from the GSL library.")
10439 (home-page "https://github.com/lvaruzza/cl-randist")
10440 (license license:bsd-2)
10441 (arguments
10442 `(#:asd-system-name "cl-randist"
10443 #:asd-file "cl-randist.asd"
10444 #:tests? #f))))
10445
10446 (define-public cl-randist
10447 (sbcl-package->cl-source-package sbcl-cl-randist))
10448
10449 (define-public ecl-cl-randist
10450 (sbcl-package->ecl-package sbcl-cl-randist))
10451
10452 (define-public sbcl-float-features
10453 (package
10454 (name "sbcl-float-features")
10455 (version "1.0.0")
10456 (source
10457 (origin
10458 (method git-fetch)
10459 (uri (git-reference
10460 (url "https://github.com/Shinmera/float-features.git")
10461 (commit "d3ef60181635b0849aa28cfc238053b7ca4644b0")))
10462 (file-name (git-file-name name version))
10463 (sha256
10464 (base32
10465 "0yj419k7n59x6rh3grwr6frgwwyria2il6f7wxpfazm8cskv4lzr"))))
10466 (build-system asdf-build-system/sbcl)
10467 (synopsis "Common Lisp IEEE float portability library")
10468 (description
10469 "Portability library for IEEE float features that are not
10470 covered by the Common Lisp standard.")
10471 (home-page "https://github.com/Shinmera/float-features")
10472 (license license:zlib)
10473 (inputs
10474 `(("documentation-utils" ,sbcl-documentation-utils)))
10475 (arguments
10476 `(#:asd-system-name "float-features"
10477 #:asd-file "float-features.asd"
10478 #:tests? #f))))
10479
10480 (define-public cl-float-features
10481 (sbcl-package->cl-source-package sbcl-float-features))
10482
10483 (define-public ecl-float-features
10484 (sbcl-package->ecl-package sbcl-float-features))
10485
10486 (define-public sbcl-function-cache
10487 (package
10488 (name "sbcl-function-cache")
10489 (version "1.0.3")
10490 (source
10491 (origin
10492 (method git-fetch)
10493 (uri (git-reference
10494 (url "https://github.com/AccelerationNet/function-cache.git")
10495 (commit "6a5ada401e57da2c8abf046f582029926e61fce8")))
10496 (file-name (git-file-name name version))
10497 (sha256
10498 (base32
10499 "000vmd3f5rx5hs9nvphfric0gkzaadns31c6mxaslpv0k7pkrmc6"))))
10500 (build-system asdf-build-system/sbcl)
10501 (synopsis "Function caching / memoization library for Common Lisp")
10502 (description
10503 "A common lisp library that provides extensible function result
10504 caching based on arguments (an expanded form of memoization).")
10505 (home-page "https://github.com/AccelerationNet/function-cache")
10506 (license
10507 (license:non-copyleft
10508 "https://github.com/AccelerationNet/function-cache/blob/master/README.md"))
10509 (inputs
10510 `(("alexandria" ,sbcl-alexandria)
10511 ("cl-interpol" ,sbcl-cl-interpol)
10512 ("iterate" ,sbcl-iterate)
10513 ("symbol-munger" ,sbcl-symbol-munger)
10514 ("closer-mop" ,sbcl-closer-mop)))
10515 (arguments
10516 `(#:asd-system-name "function-cache"
10517 #:asd-file "function-cache.asd"
10518 #:tests? #f))))
10519
10520 (define-public cl-function-cache
10521 (sbcl-package->cl-source-package sbcl-function-cache))
10522
10523 (define-public ecl-function-cache
10524 (sbcl-package->ecl-package sbcl-function-cache))
10525
10526 (define-public sbcl-type-r
10527 (let ((commit "83c89e38f2f7a7b16f1012777ecaf878cfa6a267")
10528 (revision "1"))
10529 (package
10530 (name "sbcl-type-r")
10531 (version (git-version "0.0.0" revision commit))
10532 (source
10533 (origin
10534 (method git-fetch)
10535 (uri (git-reference
10536 (url "https://github.com/guicho271828/type-r.git")
10537 (commit commit)))
10538 (file-name (git-file-name name version))
10539 (sha256
10540 (base32
10541 "1arsxc2539rg8vbrdirz4xxj1b06mc6g6rqndz7a02g127qvk2sm"))))
10542 (build-system asdf-build-system/sbcl)
10543 (synopsis "Parser interface for Common Lisp built-in compound types")
10544 (description
10545 "Collections of accessor functions and patterns to access
10546 the elements in compound type specifier, e.g. @code{dimensions} in
10547 @code{(array element-type dimensions)}")
10548 (home-page "https://github.com/guicho271828/type-r")
10549 (license license:lgpl3+)
10550 (inputs
10551 `(("trivia" ,sbcl-trivia)
10552 ("alexandria" ,sbcl-alexandria)))
10553 (native-inputs
10554 `(("fiveam" ,sbcl-fiveam)))
10555 (arguments
10556 `(#:asd-system-name "type-r"
10557 #:asd-file "type-r.asd"
10558 #:test-asd-file "type-r.test.asd")))))
10559
10560 (define-public cl-type-r
10561 (sbcl-package->cl-source-package sbcl-type-r))
10562
10563 (define-public sbcl-trivialib-type-unify
10564 (let ((commit "62492ebf04db567dcf435ae84c50b7b8202ecf99")
10565 (revision "1"))
10566 (package
10567 (name "sbcl-trivialib-type-unify")
10568 (version (git-version "0.1" revision commit))
10569 (source
10570 (origin
10571 (method git-fetch)
10572 (uri (git-reference
10573 (url "https://github.com/guicho271828/trivialib.type-unify.git")
10574 (commit commit)))
10575 (file-name (git-file-name name version))
10576 (sha256
10577 (base32
10578 "1bkyfzbwv75p50zp8n1n9rh2r29pw3vgz91gmn2gzzkyq3khj1vh"))))
10579 (build-system asdf-build-system/sbcl)
10580 (synopsis "Common Lisp type unification")
10581 (description
10582 "Unifies a parametrized type specifier against an actual type specifier.
10583 Importantly, it handles complicated array-subtypes and number-related types
10584 correctly.")
10585 (home-page "https://github.com/guicho271828/trivialib.type-unify")
10586 (license license:lgpl3+)
10587 (inputs
10588 `(("alexandria" ,sbcl-alexandria)
10589 ("trivia" ,sbcl-trivia)
10590 ("introspect-environment" ,sbcl-introspect-environment)
10591 ("type-r" ,sbcl-type-r)))
10592 (native-inputs
10593 `(("fiveam" ,sbcl-fiveam)))
10594 (arguments
10595 `(#:asd-system-name "trivialib.type-unify"
10596 #:asd-file "trivialib.type-unify.asd"
10597 #:test-asd-file "trivialib.type-unify.test.asd")))))
10598
10599 (define-public cl-trivialib-type-unify
10600 (sbcl-package->cl-source-package sbcl-trivialib-type-unify))
10601
10602 (define-public sbcl-specialized-function
10603 (let ((commit "b96b6afaf8358bf91cc0703e62a5a4ee20d2b7bc")
10604 (revision "1"))
10605 (package
10606 (name "sbcl-specialized-function")
10607 (version (git-version "0.0.0" revision commit))
10608 (source
10609 (origin
10610 (method git-fetch)
10611 (uri (git-reference
10612 (url "https://github.com/numcl/specialized-function.git")
10613 (commit commit)))
10614 (file-name (git-file-name name version))
10615 (sha256
10616 (base32
10617 "12j45ff0n26578vmfbhb9mfbdchw4wy023k0m2ppgl9s0z4bhjaj"))))
10618 (build-system asdf-build-system/sbcl)
10619 (synopsis "Julia-like dispatch for Common Lisp")
10620 (description
10621 "This library is part of NUMCL. It provides a macro
10622 @code{SPECIALIZED} that performs a Julia-like dispatch on the arguments,
10623 lazily compiling a type-specific version of the function from the same
10624 code. The main target of this macro is speed.")
10625 (home-page "https://github.com/numcl/specialized-function")
10626 (license license:lgpl3+)
10627 (inputs
10628 `(("trivia" ,sbcl-trivia)
10629 ("alexandria" ,sbcl-alexandria)
10630 ("iterate" ,sbcl-iterate)
10631 ("lisp-namespace" ,sbcl-lisp-namespace)
10632 ("type-r" ,sbcl-type-r)
10633 ("trivial-cltl2" ,sbcl-trivial-cltl2)))
10634 (native-inputs
10635 `(("fiveam" ,sbcl-fiveam)))
10636 (arguments
10637 `(#:asd-system-name "specialized-function"
10638 #:asd-file "specialized-function.asd"
10639 #:test-asd-file "specialized-function.test.asd")))))
10640
10641 (define-public cl-specialized-function
10642 (sbcl-package->cl-source-package sbcl-specialized-function))
10643
10644 (define-public sbcl-constantfold
10645 (let ((commit "0ff1d97a3fbcb89264f6a2af6ce62b73e7b421f4")
10646 (revision "1"))
10647 (package
10648 (name "sbcl-constantfold")
10649 (version (git-version "0.1" revision commit))
10650 (source
10651 (origin
10652 (method git-fetch)
10653 (uri (git-reference
10654 (url "https://github.com/numcl/constantfold.git")
10655 (commit commit)))
10656 (file-name (git-file-name name version))
10657 (sha256
10658 (base32
10659 "153h0569z6bff1qbad0bdssplwwny75l7ilqwcfqfdvzsxf9jh06"))))
10660 (build-system asdf-build-system/sbcl)
10661 (synopsis "Support library for numcl")
10662 (description
10663 "Support library for numcl. Registers a function as an
10664 additional form that is considered as a candidate for a constant.")
10665 (home-page "https://github.com/numcl/constantfold")
10666 (license license:lgpl3+)
10667 (inputs
10668 `(("trivia" ,sbcl-trivia)
10669 ("alexandria" ,sbcl-alexandria)
10670 ("iterate" ,sbcl-iterate)
10671 ("lisp-namespace" ,sbcl-lisp-namespace)))
10672 (native-inputs
10673 `(("fiveam" ,sbcl-fiveam)))
10674 (arguments
10675 `(#:asd-system-name "constantfold"
10676 #:asd-file "constantfold.asd"
10677 #:test-asd-file "constantfold.test.asd")))))
10678
10679 (define-public cl-constantfold
10680 (sbcl-package->cl-source-package sbcl-constantfold))
10681
10682 (define-public sbcl-gtype
10683 (let ((commit "42275e3606242ae91e9c8dfa30c18ced50a35b66")
10684 (revision "1"))
10685 (package
10686 (name "sbcl-gtype")
10687 (version (git-version "0.1" revision commit))
10688 (source
10689 (origin
10690 (method git-fetch)
10691 (uri (git-reference
10692 (url "https://github.com/numcl/gtype.git")
10693 (commit commit)))
10694 (file-name (git-file-name name version))
10695 (sha256
10696 (base32
10697 "1f56dba998v945jcxhha391557n6md1ql25b7icfwwfivhmlaa9b"))))
10698 (build-system asdf-build-system/sbcl)
10699 (synopsis "C++/Julia-like parametric types in Common Lisp")
10700 (description
10701 "Support library for numcl that provides Julia-like runtime parametric
10702 type correctness in Common Lisp. It is based on CLtL2 extensions.")
10703 (home-page "https://github.com/numcl/gtype")
10704 (license license:lgpl3+)
10705 (inputs
10706 `(("trivialib.type-unify" ,sbcl-trivialib-type-unify)
10707 ("trivial-cltl2" ,sbcl-trivial-cltl2)
10708 ("trivia" ,sbcl-trivia)
10709 ("alexandria" ,sbcl-alexandria)
10710 ("iterate" ,sbcl-iterate)
10711 ("type-r" ,sbcl-type-r)))
10712 (native-inputs
10713 `(("fiveam" ,sbcl-fiveam)))
10714 (arguments
10715 `(#:asd-system-name "gtype"
10716 #:asd-file "gtype.asd"
10717 #:test-asd-file "gtype.test.asd")))))
10718
10719 (define-public cl-gtype
10720 (sbcl-package->cl-source-package sbcl-gtype))
10721
10722 (define-public sbcl-numcl
10723 (let ((commit "1cf7dfa59f763a24a501092870e9c5ee745d0c17")
10724 (revision "1"))
10725 (package
10726 (name "sbcl-numcl")
10727 (version (git-version "0.1.0" revision commit))
10728 (source
10729 (origin
10730 (method git-fetch)
10731 (uri (git-reference
10732 (url "https://github.com/numcl/numcl.git")
10733 (commit commit)))
10734 (file-name (git-file-name name version))
10735 (sha256
10736 (base32
10737 "0i3jby9hf4ii7blivgyza80g0vmjfhk8537i5i7kqqk0i5sdnym2"))))
10738 (build-system asdf-build-system/sbcl)
10739 (synopsis "Numpy clone in Common Lisp")
10740 (description
10741 "This is a Numpy clone in Common Lisp. At the moment the
10742 library is written in pure Common Lisp, focusing more on correctness
10743 and usefulness, not speed. Track the progress at
10744 @url{https://github.com/numcl/numcl/projects/1}.")
10745 (home-page "https://github.com/numcl/numcl")
10746 (license license:lgpl3+)
10747 (inputs
10748 `(("trivia" ,sbcl-trivia)
10749 ("alexandria" ,sbcl-alexandria)
10750 ("iterate" ,sbcl-iterate)
10751 ("lisp-namespace" ,sbcl-lisp-namespace)
10752 ("type-r" ,sbcl-type-r)
10753 ("constantfold" ,sbcl-constantfold)
10754 ("cl-randist" ,sbcl-cl-randist)
10755 ("float-features" ,sbcl-float-features)
10756 ("function-cache" ,sbcl-function-cache)
10757 ("specialized-function" ,sbcl-specialized-function)
10758 ("gtype" ,sbcl-gtype)))
10759 (native-inputs
10760 `(("fiveam" ,sbcl-fiveam)))
10761 (arguments
10762 `(#:asd-system-name "numcl"
10763 #:asd-file "numcl.asd"
10764 #:test-asd-file "numcl.test.asd")))))
10765
10766 (define-public cl-numcl
10767 (sbcl-package->cl-source-package sbcl-numcl))
10768
10769 (define-public sbcl-pzmq
10770 (let ((commit "7c7390eedc469d033c72dc497984d1536ee75826")
10771 (revision "1"))
10772 (package
10773 (name "sbcl-pzmq")
10774 (version (git-version "0.0.0" revision commit))
10775 (source
10776 (origin
10777 (method git-fetch)
10778 (uri (git-reference
10779 (url "https://github.com/orivej/pzmq.git")
10780 (commit commit)))
10781 (file-name (git-file-name name version))
10782 (sha256
10783 (base32 "0gmwzf7h90wa7v4wnk49g0hv2mdalljpwhyigxcb967wzv8lqci9"))))
10784 (build-system asdf-build-system/sbcl)
10785 (native-inputs
10786 `(("bordeaux-threads" ,sbcl-bordeaux-threads)
10787 ("fiveam" ,sbcl-fiveam)
10788 ("let-plus" ,sbcl-let-plus)))
10789 (inputs
10790 `(("cffi" ,sbcl-cffi)
10791 ("cffi-grovel" ,sbcl-cffi-grovel)
10792 ("zeromq" ,zeromq)))
10793 (arguments
10794 `(#:phases (modify-phases %standard-phases
10795 (add-after 'unpack 'fix-paths
10796 (lambda* (#:key inputs #:allow-other-keys)
10797 (substitute* "c-api.lisp"
10798 (("\"libzmq")
10799 (string-append "\""
10800 (assoc-ref inputs "zeromq")
10801 "/lib/libzmq")))
10802 #t)))))
10803 (synopsis "Common Lisp bindings for the ZeroMQ library")
10804 (description "This Common Lisp library provides bindings for the ZeroMQ
10805 lightweight messaging kernel.")
10806 (home-page "https://github.com/orivej/pzmq")
10807 (license license:unlicense))))
10808
10809 (define-public cl-pzmq
10810 (sbcl-package->cl-source-package sbcl-pzmq))
10811
10812 (define-public ecl-pzmq
10813 (sbcl-package->ecl-package sbcl-pzmq))
10814
10815 (define-public sbcl-clss
10816 (let ((revision "1")
10817 (commit "2a8e8615ab55870d4ca01928f3ed3bbeb4e75c8d"))
10818 (package
10819 (name "sbcl-clss")
10820 (version (git-version "0.3.1" revision commit))
10821 (source
10822 (origin
10823 (method git-fetch)
10824 (uri
10825 (git-reference
10826 (url "https://github.com/Shinmera/clss.git")
10827 (commit commit)))
10828 (sha256
10829 (base32 "0la4dbcda78x29szanylccrsljqrn9d1mhh569sqkyp44ni5fv91"))
10830 (file-name (git-file-name name version))))
10831 (inputs
10832 `(("array-utils" ,sbcl-array-utils)
10833 ("plump" ,sbcl-plump)))
10834 (build-system asdf-build-system/sbcl)
10835 (synopsis "DOM tree searching engine based on CSS selectors")
10836 (description "CLSS is a DOM traversal engine based on CSS
10837 selectors. It makes use of the Plump-DOM and is used by lQuery.")
10838 (home-page "https://github.com/Shinmera/clss")
10839 (license license:zlib))))
10840
10841 (define-public cl-clss
10842 (sbcl-package->cl-source-package sbcl-clss))
10843
10844 (define-public ecl-clss
10845 (sbcl-package->ecl-package sbcl-clss))
10846
10847 (define-public sbcl-lquery
10848 (let ((revision "1")
10849 (commit "8048111c6b83956daa632e7a3ffbd8c9c203bd8d"))
10850 (package
10851 (name "sbcl-lquery")
10852 (version (git-version "3.2.1" revision commit))
10853 (source
10854 (origin
10855 (method git-fetch)
10856 (uri
10857 (git-reference
10858 (url "https://github.com/Shinmera/lquery.git")
10859 (commit commit)))
10860 (sha256
10861 (base32 "0520mcpxc2d6fdm8z61arpgd2z38kan7cf06qs373n5r64rakz6w"))
10862 (file-name (git-file-name name version))))
10863 (native-inputs
10864 `(("fiveam" ,sbcl-fiveam)))
10865 (inputs
10866 `(("array-utils" ,sbcl-array-utils)
10867 ("form-fiddle" ,sbcl-form-fiddle)
10868 ("plump" ,sbcl-plump)
10869 ("clss" ,sbcl-clss)))
10870 (build-system asdf-build-system/sbcl)
10871 (synopsis "Library to allow jQuery-like HTML/DOM manipulation")
10872 (description "@code{lQuery} is a DOM manipulation library written in
10873 Common Lisp, inspired by and based on the jQuery syntax and
10874 functions. It uses Plump and CLSS as DOM and selector engines. The
10875 main idea behind lQuery is to provide a simple interface for crawling
10876 and modifying HTML sites, as well as to allow for an alternative
10877 approach to templating.")
10878 (home-page "https://github.com/Shinmera/lquery")
10879 (license license:zlib))))
10880
10881 (define-public cl-lquery
10882 (sbcl-package->cl-source-package sbcl-lquery))
10883
10884 (define-public ecl-lquery
10885 (sbcl-package->ecl-package sbcl-lquery))
10886
10887 (define-public sbcl-cl-mysql
10888 (let ((commit "ab56c279c1815aec6ca0bfe85164ff7e85cfb6f9")
10889 (revision "1"))
10890 (package
10891 (name "sbcl-cl-mysql")
10892 (version (git-version "0.1" revision commit))
10893 (source
10894 (origin
10895 (method git-fetch)
10896 (uri (git-reference
10897 (url "https://github.com/hackinghat/cl-mysql.git")
10898 (commit commit)))
10899 (file-name (git-file-name name version))
10900 (sha256
10901 (base32 "0dg5ynx2ww94d0qfwrdrm7plkn43h64hs4iiq9mj2s1s4ixnp3lr"))))
10902 (build-system asdf-build-system/sbcl)
10903 (native-inputs
10904 `(("stefil" ,sbcl-stefil)))
10905 (inputs
10906 `(("cffi" ,sbcl-cffi)
10907 ("mariadb-lib" ,mariadb "lib")))
10908 (arguments
10909 `(#:tests? #f ; TODO: Tests require a running server
10910 #:phases
10911 (modify-phases %standard-phases
10912 (add-after 'unpack 'fix-paths
10913 (lambda* (#:key inputs #:allow-other-keys)
10914 (substitute* "system.lisp"
10915 (("libmysqlclient_r" all)
10916 (string-append (assoc-ref inputs "mariadb-lib")
10917 "/lib/"
10918 all)))
10919 #t)))))
10920 (synopsis "Common Lisp wrapper for MySQL")
10921 (description
10922 "@code{cl-mysql} is a Common Lisp implementation of a MySQL wrapper.")
10923 (home-page "http://www.hackinghat.com/index.php/cl-mysql")
10924 (license license:expat))))
10925
10926 (define-public cl-mysql
10927 (sbcl-package->cl-source-package sbcl-cl-mysql))
10928
10929 (define-public sbcl-simple-date
10930 (let ((commit "74469b25bbda990ec9b77e0d0eccdba0cd7e721a")
10931 (revision "1"))
10932 (package
10933 (name "sbcl-simple-date")
10934 (version (git-version "1.19" revision commit))
10935 (source
10936 (origin
10937 (method git-fetch)
10938 (uri (git-reference
10939 (url "https://github.com/marijnh/Postmodern.git")
10940 (commit commit)))
10941 (file-name (git-file-name name version))
10942 (sha256
10943 (base32 "0im7ymnyxjhn2w74jfg76k5gpr0gl33n31akx33hl28722ljd0hd"))))
10944 (build-system asdf-build-system/sbcl)
10945 (native-inputs
10946 `(("fiveam" ,sbcl-fiveam)))
10947 (synopsis "Basic date and time objects for Common Lisp")
10948 (description
10949 "@code{simple-date} is a very basic implementation of date and time
10950 objects, used to support storing and retrieving time-related SQL types.")
10951 (home-page "https://marijnhaverbeke.nl/postmodern/")
10952 (license license:zlib))))
10953
10954 (define-public cl-simple-date
10955 (sbcl-package->cl-source-package sbcl-simple-date))
10956
10957 (define-public ecl-simple-date
10958 (sbcl-package->ecl-package sbcl-simple-date))
10959
10960 (define-public sbcl-cl-postgres
10961 (package
10962 (inherit sbcl-simple-date)
10963 (name "sbcl-cl-postgres")
10964 (native-inputs
10965 `(("fiveam" ,sbcl-fiveam)
10966 ("simple-date" ,sbcl-simple-date)))
10967 (inputs
10968 `(("md5" ,sbcl-md5)
10969 ("split-sequence" ,sbcl-split-sequence)
10970 ("usocket" ,sbcl-usocket)))
10971 (arguments
10972 `(#:tests? #f)) ; TODO: Break simple-date/postgres-glue circular dependency
10973 (synopsis "Common Lisp interface for PostgreSQL")
10974 (description
10975 "@code{cl-postgres} is a low-level library used for interfacing with
10976 a PostgreSQL server over a socket.")))
10977
10978 (define-public cl-postgres
10979 (sbcl-package->cl-source-package sbcl-cl-postgres))
10980
10981 (define-public sbcl-simple-date-postgres-glue
10982 (package
10983 (inherit sbcl-simple-date)
10984 (name "sbcl-simple-date-postgres-glue")
10985 (inputs
10986 `(("cl-postgres" ,sbcl-cl-postgres)
10987 ("simple-date" ,sbcl-simple-date)))
10988 (arguments
10989 `(#:asd-file "simple-date.asd"
10990 #:asd-system-name "simple-date/postgres-glue"))))
10991
10992 (define-public cl-simple-date-postgres-glue
10993 (sbcl-package->cl-source-package sbcl-simple-date-postgres-glue))
10994
10995 (define-public sbcl-s-sql
10996 (package
10997 (inherit sbcl-simple-date)
10998 (name "sbcl-s-sql")
10999 (inputs
11000 `(("alexandria" ,sbcl-alexandria)
11001 ("cl-postgres" ,sbcl-cl-postgres)))
11002 (arguments
11003 `(#:tests? #f)) ; TODO: Break postmodern circular dependency
11004 (synopsis "Lispy DSL for SQL")
11005 (description
11006 "@code{s-sql} is a Common Lisp library that can be used to compile
11007 s-expressions to strings of SQL code, escaping any Lisp values inside, and
11008 doing as much as possible of the work at compile time.")))
11009
11010 (define-public cl-s-sql
11011 (sbcl-package->cl-source-package sbcl-s-sql))
11012
11013 (define-public sbcl-postmodern
11014 (package
11015 (inherit sbcl-simple-date)
11016 (name "sbcl-postmodern")
11017 (native-inputs
11018 `(("fiveam" ,sbcl-fiveam)
11019 ("simple-date" ,sbcl-simple-date)
11020 ("simple-date-postgres-glue" ,sbcl-simple-date-postgres-glue)))
11021 (inputs
11022 `(("alexandria" ,sbcl-alexandria)
11023 ("bordeaux-threads" ,sbcl-bordeaux-threads)
11024 ("cl-postgres" ,sbcl-cl-postgres)
11025 ("closer-mop" ,sbcl-closer-mop)
11026 ("global-vars" ,sbcl-global-vars)
11027 ("s-sql" ,sbcl-s-sql)
11028 ("split-sequence" ,sbcl-split-sequence)))
11029 (arguments
11030 ;; TODO: Fix missing dependency errors for simple-date/postgres-glue,
11031 ;; cl-postgres/tests and s-sql/tests.
11032 `(#:tests? #f))
11033 (synopsis "Common Lisp library for interacting with PostgreSQL")
11034 (description
11035 "@code{postmodern} is a Common Lisp library for interacting with
11036 PostgreSQL databases. It provides the following features:
11037
11038 @itemize
11039 @item Efficient communication with the database server without need for
11040 foreign libraries.
11041 @item Support for UTF-8 on Unicode-aware Lisp implementations.
11042 @item A syntax for mixing SQL and Lisp code.
11043 @item Convenient support for prepared statements and stored procedures.
11044 @item A metaclass for simple database-access objects.
11045 @end itemize\n")))
11046
11047 (define-public cl-postmodern
11048 (sbcl-package->cl-source-package sbcl-postmodern))
11049
11050 (define-public sbcl-dbi
11051 (package
11052 (name "sbcl-dbi")
11053 (version "0.9.4")
11054 (source
11055 (origin
11056 (method git-fetch)
11057 (uri (git-reference
11058 (url "https://github.com/fukamachi/cl-dbi.git")
11059 (commit version)))
11060 (file-name (git-file-name name version))
11061 (sha256
11062 (base32 "0m1fsravfaizamdak84adh3jxc4j91maqnrb4m08bfbmb04cdqhs"))))
11063 (build-system asdf-build-system/sbcl)
11064 (inputs
11065 `(("bordeaux-threads" ,sbcl-bordeaux-threads)
11066 ("closer-mop" ,sbcl-closer-mop)
11067 ("split-sequence" ,sbcl-split-sequence)))
11068 (arguments
11069 `(#:tests? #f)) ; TODO: Break circular dependency with dbd-*
11070 (synopsis "Database independent interface for Common Lisp")
11071 (description
11072 "@code{dbi} is a Common Lisp library providing a database independent
11073 interface for MySQL, PostgreSQL and SQLite.")
11074 (home-page "https://github.com/fukamachi/cl-dbi")
11075 (license license:llgpl)))
11076
11077 (define-public cl-dbi
11078 (sbcl-package->cl-source-package sbcl-dbi))
11079
11080 (define-public sbcl-dbd-mysql
11081 (package
11082 (inherit sbcl-dbi)
11083 (name "sbcl-dbd-mysql")
11084 (inputs
11085 `(("cl-mysql" ,sbcl-cl-mysql)
11086 ("dbi" ,sbcl-dbi)))
11087 (synopsis "Database driver for MySQL")))
11088
11089 (define-public cl-dbd-mysql
11090 (sbcl-package->cl-source-package sbcl-dbd-mysql))
11091
11092 (define-public sbcl-dbd-postgres
11093 (package
11094 (inherit sbcl-dbi)
11095 (name "sbcl-dbd-postgres")
11096 (inputs
11097 `(("cl-postgres" ,sbcl-cl-postgres)
11098 ("dbi" ,sbcl-dbi)
11099 ("trivial-garbage" ,sbcl-trivial-garbage)))
11100 (synopsis "Database driver for PostgreSQL")))
11101
11102 (define-public cl-dbd-postgres
11103 (sbcl-package->cl-source-package sbcl-dbd-postgres))
11104
11105 (define-public sbcl-dbd-sqlite3
11106 (package
11107 (inherit sbcl-dbi)
11108 (name "sbcl-dbd-sqlite3")
11109 (inputs
11110 `(("cl-sqlite" ,sbcl-cl-sqlite)
11111 ("dbi" ,sbcl-dbi)
11112 ("trivial-garbage" ,sbcl-trivial-garbage)))
11113 (synopsis "Database driver for SQLite3")))
11114
11115 (define-public cl-dbd-sqlite3
11116 (sbcl-package->cl-source-package sbcl-dbd-sqlite3))
11117
11118 (define-public sbcl-uffi
11119 (package
11120 (name "sbcl-uffi")
11121 (version "2.1.2")
11122 (source
11123 (origin
11124 (method git-fetch)
11125 (uri (git-reference
11126 (url "http://git.kpe.io/uffi.git")
11127 (commit (string-append "v" version))))
11128 (file-name (git-file-name name version))
11129 (sha256
11130 (base32 "1hqszvz0a3wk4s9faa83sc3vjxcb5rxmjclyr17yzwg55z733kry"))))
11131 (build-system asdf-build-system/sbcl)
11132 (arguments
11133 `(#:tests? #f ; TODO: Fix use of deprecated ASDF functions
11134 #:phases
11135 (modify-phases %standard-phases
11136 (add-after 'unpack 'fix-permissions
11137 (lambda _
11138 (make-file-writable "doc/html.tar.gz")
11139 #t)))))
11140 (synopsis "Universal foreign function library for Common Lisp")
11141 (description
11142 "UFFI provides a universal foreign function interface (FFI)
11143 for Common Lisp.")
11144 (home-page "http://quickdocs.org/uffi/")
11145 (license license:llgpl)))
11146
11147 (define-public cl-uffi
11148 (package
11149 (inherit (sbcl-package->cl-source-package sbcl-uffi))
11150 (arguments
11151 `(#:phases
11152 ;; asdf-build-system/source has its own phases and does not inherit
11153 ;; from asdf-build-system/sbcl phases.
11154 (modify-phases %standard-phases/source
11155 (add-after 'unpack 'fix-permissions
11156 (lambda _
11157 (make-file-writable "doc/html.tar.gz")
11158 #t)))))))
11159
11160 (define-public sbcl-clsql
11161 (package
11162 (name "sbcl-clsql")
11163 (version "6.7.0")
11164 (source
11165 (origin
11166 (method git-fetch)
11167 (uri (git-reference
11168 (url "http://git.kpe.io/clsql.git")
11169 (commit (string-append "v" version))))
11170 (file-name (git-file-name name version))
11171 (sha256
11172 (base32 "1v1k3s5bsy3lgd9gk459bzpb1r0kdjda25s29samxw4gsgf1fqvp"))
11173 (snippet
11174 '(begin
11175 ;; Remove precompiled libraries.
11176 (delete-file "db-mysql/clsql_mysql.dll")
11177 (delete-file "uffi/clsql_uffi.dll")
11178 (delete-file "uffi/clsql_uffi.lib")
11179 #t))))
11180 (build-system asdf-build-system/sbcl)
11181 (native-inputs
11182 `(("cffi-uffi-compat" ,sbcl-cffi-uffi-compat)
11183 ("rt" ,sbcl-rt)
11184 ("uffi" ,sbcl-uffi)))
11185 (arguments
11186 `(#:phases
11187 (modify-phases %standard-phases
11188 (add-after 'unpack 'fix-permissions
11189 (lambda _
11190 (make-file-writable "doc/html.tar.gz")
11191 #t))
11192 (add-after 'unpack 'fix-tests
11193 (lambda _
11194 (substitute* "clsql.asd"
11195 (("clsql-tests :force t")
11196 "clsql-tests"))
11197 #t)))))
11198 (synopsis "Common Lisp SQL Interface library")
11199 (description
11200 "@code{clsql} is a Common Lisp interface to SQL RDBMS based on the
11201 Xanalys CommonSQL interface for Lispworks. It provides low-level database
11202 interfaces as well as a functional and an object oriented interface.")
11203 (home-page "http://clsql.kpe.io/")
11204 (license license:llgpl)))
11205
11206 (define-public cl-clsql
11207 (package
11208 (inherit (sbcl-package->cl-source-package sbcl-clsql))
11209 (native-inputs
11210 `(("rt" ,cl-rt)))
11211 (inputs
11212 `(("mysql" ,mysql)
11213 ("postgresql" ,postgresql)
11214 ("sqlite" ,sqlite)
11215 ("zlib" ,zlib)))
11216 (propagated-inputs
11217 `(("cl-postgres" ,cl-postgres)
11218 ("cffi-uffi-compat" ,cl-cffi-uffi-compat)
11219 ("md5" ,cl-md5)
11220 ("uffi" ,cl-uffi)))
11221 (arguments
11222 `(#:phases
11223 ;; asdf-build-system/source has its own phases and does not inherit
11224 ;; from asdf-build-system/sbcl phases.
11225 (modify-phases %standard-phases/source
11226 (add-after 'unpack 'fix-permissions
11227 (lambda _
11228 (make-file-writable "doc/html.tar.gz")
11229 #t)))))))
11230
11231 (define-public sbcl-clsql-uffi
11232 (package
11233 (inherit sbcl-clsql)
11234 (name "sbcl-clsql-uffi")
11235 (inputs
11236 `(("cffi-uffi-compat" ,sbcl-cffi-uffi-compat)
11237 ("clsql" ,sbcl-clsql)
11238 ("uffi" ,sbcl-uffi)))
11239 (synopsis "UFFI helper functions for Common Lisp SQL interface library")))
11240
11241 (define-public sbcl-clsql-sqlite3
11242 (package
11243 (inherit sbcl-clsql)
11244 (name "sbcl-clsql-sqlite3")
11245 (inputs
11246 `(("clsql" ,sbcl-clsql)
11247 ("clsql-uffi" ,sbcl-clsql-uffi)
11248 ("sqlite" ,sqlite)))
11249 (arguments
11250 (substitute-keyword-arguments (package-arguments sbcl-clsql)
11251 ((#:phases phases '%standard-phases)
11252 `(modify-phases ,phases
11253 (add-after 'unpack 'fix-paths
11254 (lambda* (#:key inputs #:allow-other-keys)
11255 (substitute* "db-sqlite3/sqlite3-loader.lisp"
11256 (("libsqlite3")
11257 (string-append (assoc-ref inputs "sqlite")
11258 "/lib/libsqlite3")))
11259 #t))))))
11260 (synopsis "SQLite3 driver for Common Lisp SQL interface library")))
11261
11262 (define-public sbcl-clsql-postgresql
11263 (package
11264 (inherit sbcl-clsql)
11265 (name "sbcl-clsql-postgresql")
11266 (inputs
11267 `(("clsql" ,sbcl-clsql)
11268 ("clsql-uffi" ,sbcl-clsql-uffi)
11269 ("postgresql" ,postgresql)))
11270 (arguments
11271 (substitute-keyword-arguments (package-arguments sbcl-clsql)
11272 ((#:phases phases '%standard-phases)
11273 `(modify-phases ,phases
11274 (add-after 'unpack 'fix-paths
11275 (lambda* (#:key inputs #:allow-other-keys)
11276 (substitute* "db-postgresql/postgresql-loader.lisp"
11277 (("libpq")
11278 (string-append (assoc-ref inputs "postgresql")
11279 "/lib/libpq")))
11280 #t))))))
11281 (synopsis "PostgreSQL driver for Common Lisp SQL interface library")))
11282
11283 (define-public sbcl-clsql-postgresql-socket3
11284 (package
11285 (inherit sbcl-clsql)
11286 (name "sbcl-clsql-postgresql-socket3")
11287 (inputs
11288 `(("cl-postgres" ,sbcl-cl-postgres)
11289 ("clsql" ,sbcl-clsql)
11290 ("md5" ,sbcl-md5)))
11291 (arguments
11292 (substitute-keyword-arguments (package-arguments sbcl-clsql)
11293 ((#:phases phases '%standard-phases)
11294 `(modify-phases ,phases
11295 (add-after 'create-asd-file 'fix-asd-file
11296 (lambda* (#:key outputs #:allow-other-keys)
11297 (let* ((out (assoc-ref outputs "out"))
11298 (lib (string-append out "/lib/" (%lisp-type)))
11299 (asd (string-append lib "/clsql-postgresql-socket3.asd")))
11300 (substitute* asd
11301 (("CLSQL-POSTGRESQL-SOCKET-SYSTEM::")
11302 "")))
11303 #t))))))
11304 (synopsis "PostgreSQL driver for Common Lisp SQL interface library")))
11305
11306 (define-public sbcl-clsql-mysql
11307 (package
11308 (inherit sbcl-clsql)
11309 (name "sbcl-clsql-mysql")
11310 (inputs
11311 `(("mysql" ,mysql)
11312 ("sbcl-clsql" ,sbcl-clsql)
11313 ("sbcl-clsql-uffi" ,sbcl-clsql-uffi)
11314 ("zlib" ,zlib)))
11315 (arguments
11316 (substitute-keyword-arguments (package-arguments sbcl-clsql)
11317 ((#:phases phases '%standard-phases)
11318 `(modify-phases ,phases
11319 (add-after 'unpack 'fix-paths
11320 (lambda* (#:key inputs outputs #:allow-other-keys)
11321 (let ((lib (string-append "#p\""
11322 (assoc-ref outputs "out")
11323 "/lib/\"")))
11324 (substitute* "clsql-mysql.asd"
11325 (("#p\"/usr/lib/clsql/clsql_mysql\\.so\"")
11326 lib))
11327 (substitute* "db-mysql/mysql-loader.lisp"
11328 (("libmysqlclient" all)
11329 (string-append (assoc-ref inputs "mysql") "/lib/" all))
11330 (("clsql-mysql-system::\\*library-file-dir\\*")
11331 lib)))
11332 #t))
11333 (add-before 'build 'build-helper-library
11334 (lambda* (#:key inputs outputs #:allow-other-keys)
11335 (let* ((mysql (assoc-ref inputs "mysql"))
11336 (inc-dir (string-append mysql "/include/mysql"))
11337 (lib-dir (string-append mysql "/lib"))
11338 (shared-lib-dir (string-append (assoc-ref outputs "out")
11339 "/lib"))
11340 (shared-lib (string-append shared-lib-dir
11341 "/clsql_mysql.so")))
11342 (mkdir-p shared-lib-dir)
11343 (invoke "gcc" "-fPIC" "-shared"
11344 "-I" inc-dir
11345 "db-mysql/clsql_mysql.c"
11346 "-Wl,-soname=clsql_mysql"
11347 "-L" lib-dir "-lmysqlclient" "-lz"
11348 "-o" shared-lib)
11349 #t)))))))
11350 (synopsis "MySQL driver for Common Lisp SQL interface library")))
11351
11352 (define-public sbcl-sycamore
11353 (let ((commit "fd2820fec165ad514493426dea209728f64e6d18"))
11354 (package
11355 (name "sbcl-sycamore")
11356 (version "0.0.20120604")
11357 (source
11358 (origin
11359 (method git-fetch)
11360 (uri (git-reference
11361 (url "https://github.com/ndantam/sycamore/")
11362 (commit commit)))
11363 (file-name (git-file-name name version))
11364 (sha256
11365 (base32 "00bv1aj89q5vldmq92zp2364jq312zjq2mbd3iyz1s2b4widzhl7"))))
11366 (build-system asdf-build-system/sbcl)
11367 (arguments
11368 `(#:asd-file "src/sycamore.asd"))
11369 (inputs
11370 `(("alexandria" ,sbcl-alexandria)
11371 ("cl-ppcre" ,sbcl-cl-ppcre)))
11372 (synopsis "Purely functional data structure library in Common Lisp")
11373 (description
11374 "Sycamore is a fast, purely functional data structure library in Common Lisp.
11375 If features:
11376
11377 @itemize
11378 @item Fast, purely functional weight-balanced binary trees.
11379 @item Leaf nodes are simple-vectors, greatly reducing tree height.
11380 @item Interfaces for tree Sets and Maps (dictionaries).
11381 @item Ropes.
11382 @item Purely functional pairing heaps.
11383 @item Purely functional amortized queue.
11384 @end itemize\n")
11385 (home-page "http://ndantam.github.io/sycamore/")
11386 (license license:bsd-3))))
11387
11388 (define-public cl-sycamore
11389 (sbcl-package->cl-source-package sbcl-sycamore))
11390
11391 (define-public sbcl-trivial-package-local-nicknames
11392 (package
11393 (name "sbcl-trivial-package-local-nicknames")
11394 (version "0.2")
11395 (home-page "https://github.com/phoe/trivial-package-local-nicknames")
11396 (source
11397 (origin
11398 (method git-fetch)
11399 (uri (git-reference
11400 (url home-page)
11401 (commit "16b7ad4c2b120f50da65154191f468ea5598460e")))
11402 (file-name (git-file-name name version))
11403 (sha256
11404 (base32 "18qc27xkjzdcqrilpk3pm7djldwq5rm3ggd5h9cr8hqcd54i2fqg"))))
11405 (build-system asdf-build-system/sbcl)
11406 (synopsis "Common Lisp compatibility library for package local nicknames")
11407 (description
11408 "This library is a portable compatibility layer around package local nicknames (PLN).
11409 This was done so there is a portability library for the PLN API not included
11410 in DEFPACKAGE.")
11411 (license license:unlicense)))
11412
11413 (define-public cl-trivial-package-local-nicknames
11414 (sbcl-package->cl-source-package sbcl-trivial-package-local-nicknames))
11415
11416 (define-public sbcl-enchant
11417 (let ((commit "6af162a7bf10541cbcfcfa6513894900329713fa"))
11418 (package
11419 (name "sbcl-enchant")
11420 (version (git-version "0.0.0" "1" commit))
11421 (home-page "https://github.com/tlikonen/cl-enchant")
11422 (source
11423 (origin
11424 (method git-fetch)
11425 (uri (git-reference
11426 (url home-page)
11427 (commit commit)))
11428 (file-name (git-file-name name version))
11429 (sha256
11430 (base32 "19yh5ihirzi1d8xqy1cjqipzd6ly3245cfxa5s9xx496rryz0s01"))))
11431 (build-system asdf-build-system/sbcl)
11432 (inputs
11433 `(("enchant" ,enchant)
11434 ("cffi" ,sbcl-cffi)))
11435 (arguments
11436 `(#:phases
11437 (modify-phases %standard-phases
11438 (add-after 'unpack 'fix-paths
11439 (lambda* (#:key inputs #:allow-other-keys)
11440 (substitute* "load-enchant.lisp"
11441 (("libenchant")
11442 (string-append
11443 (assoc-ref inputs "enchant") "/lib/libenchant-2"))))))))
11444 (synopsis "Common Lisp interface for the Enchant spell-checker library")
11445 (description
11446 "Enchant is a Common Lisp interface for the Enchant spell-checker
11447 library. The Enchant library is a generic spell-checker library which uses
11448 other spell-checkers transparently as back-end. The library supports the
11449 multiple checkers, including Aspell and Hunspell.")
11450 (license license:public-domain))))
11451
11452 (define-public cl-enchant
11453 (sbcl-package->cl-source-package sbcl-enchant))
11454
11455 (define-public sbcl-cl-change-case
11456 (let ((commit "5ceff2a5f8bd845b6cb510c6364176b27a238fd3"))
11457 (package
11458 (name "sbcl-cl-change-case")
11459 (version (git-version "0.1.0" "1" commit))
11460 (home-page "https://github.com/rudolfochrist/cl-change-case")
11461 (source
11462 (origin
11463 (method git-fetch)
11464 (uri (git-reference
11465 (url home-page)
11466 (commit commit)))
11467 (file-name (git-file-name name version))
11468 (sha256
11469 (base32 "1afyglglk9z3yg8gylcl301bl2r8vq3sllyznzj9s5xi5gs6qyf2"))))
11470 (build-system asdf-build-system/sbcl)
11471 (inputs
11472 `(("cl-ppcre" ,sbcl-cl-ppcre)
11473 ("cl-ppcre-unicode" ,sbcl-cl-ppcre-unicode)))
11474 (native-inputs
11475 `(("fiveam" ,sbcl-fiveam)))
11476 (arguments
11477 '(;; FIXME: Test pass but phase fails with 'Component
11478 ;; "cl-change-case-test" not found, required by'.
11479 #:tests? #f
11480 #:test-asd-file "cl-change-case-test.asd"))
11481 (synopsis "Convert Common Lisp strings between camelCase, PascalCase and more")
11482 (description
11483 "@code{cl-change-case} is library to convert strings between camelCase,
11484 PascalCase, snake_case, param-case, CONSTANT_CASE and more.")
11485 (license license:llgpl))))
11486
11487 (define-public cl-change-case
11488 (sbcl-package->cl-source-package sbcl-cl-change-case))
11489
11490 (define-public sbcl-moptilities
11491 (let ((commit "a436f16b357c96b82397ec018ea469574c10dd41"))
11492 (package
11493 (name "sbcl-moptilities")
11494 (version (git-version "0.3.13" "1" commit))
11495 (home-page "https://github.com/gwkkwg/moptilities/")
11496 (source
11497 (origin
11498 (method git-fetch)
11499 (uri (git-reference
11500 (url home-page)
11501 (commit commit)))
11502 (file-name (git-file-name name version))
11503 (sha256
11504 (base32 "1q12bqjbj47lx98yim1kfnnhgfhkl80102fkgp9pdqxg0fp6g5fc"))))
11505 (build-system asdf-build-system/sbcl)
11506 (inputs
11507 `(("closer-mop" ,sbcl-closer-mop)))
11508 (native-inputs
11509 `(("lift" ,sbcl-lift)))
11510 (synopsis "Compatibility layer for Common Lisp MOP implementation differences")
11511 (description
11512 "MOP utilities provide a common interface between Lisps and make the
11513 MOP easier to use.")
11514 (license license:expat))))
11515
11516 (define-public cl-moptilities
11517 (sbcl-package->cl-source-package sbcl-moptilities))
11518
11519 (define-public sbcl-osicat
11520 (let ((commit "de0c18a367eedc857e1902a7319828af072a0d97"))
11521 (package
11522 (name "sbcl-osicat")
11523 (version (git-version "0.7.0" "1" commit))
11524 (home-page "http://www.common-lisp.net/project/osicat/")
11525 (source
11526 (origin
11527 (method git-fetch)
11528 (uri (git-reference
11529 (url "https://github.com/osicat/osicat")
11530 (commit commit)))
11531 (file-name (git-file-name name version))
11532 (sha256
11533 (base32 "15viw5pi5sa7qq9b4n2rr3dj2jkqr180rh9z1lh8w3rgl42i2adc"))))
11534 (build-system asdf-build-system/sbcl)
11535 (arguments
11536 `(#:phases
11537 (modify-phases %standard-phases
11538 ;; The cleanup phase moves files around but we need to keep the
11539 ;; directory structure for the grovel-generated library.
11540 (replace 'cleanup
11541 (lambda* (#:key outputs #:allow-other-keys)
11542 (let* ((out (assoc-ref outputs "out"))
11543 (lib (string-append out "/lib/sbcl/")))
11544 (delete-file-recursively (string-append lib "src"))
11545 (delete-file-recursively (string-append lib "tests"))
11546 (for-each delete-file
11547 (filter (lambda (file)
11548 (not (member (basename file) '("libosicat.so"))))
11549 (find-files (string-append lib "posix") ".*"))))
11550 #t)))))
11551 (inputs
11552 `(("alexandria" ,sbcl-alexandria)
11553 ("cffi" ,sbcl-cffi)
11554 ("trivial-features" ,sbcl-trivial-features)))
11555 (native-inputs
11556 `(("cffi-grovel" ,sbcl-cffi-grovel)
11557 ("rt" ,sbcl-rt)))
11558 (synopsis "Operating system interface for Common Lisp")
11559 (description
11560 "Osicat is a lightweight operating system interface for Common Lisp on
11561 Unix-platforms. It is not a POSIX-style API, but rather a simple lispy
11562 accompaniment to the standard ANSI facilities.")
11563 (license license:expat))))
11564
11565 (define-public cl-osicat
11566 (sbcl-package->cl-source-package sbcl-osicat))