gnu: sbcl-trivial-features: Update to 20200403.
[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 "ebd59b1afed03b9dc8544320f8f432fdf92ab010"))
205 (package
206 (name "sbcl-trivial-gray-streams")
207 (version (string-append "0.0.0-" revision "." (string-take commit 7)))
208 (source
209 (origin
210 (method git-fetch)
211 (uri
212 (git-reference
213 (url "https://github.com/trivial-gray-streams/trivial-gray-streams.git")
214 (commit commit)))
215 (sha256
216 (base32 "0b1pxlccmnagk9cbh4cy8s5k66g3x0gwib5shjwr24xvrji6lp94"))
217 (file-name
218 (string-append "trivial-gray-streams-" version "-checkout"))))
219 (build-system asdf-build-system/sbcl)
220 (synopsis "Compatibility layer for Gray streams implementations")
221 (description "Gray streams is an interface proposed for inclusion with
222 ANSI CL by David N. Gray. The proposal did not make it into ANSI CL, but most
223 popular CL implementations implement it. This package provides an extremely
224 thin compatibility layer for gray streams.")
225 (home-page "https://www.cliki.net/trivial-gray-streams")
226 (license license:x11))))
227
228 (define-public cl-trivial-gray-streams
229 (sbcl-package->cl-source-package sbcl-trivial-gray-streams))
230
231 (define-public ecl-trivial-gray-streams
232 (sbcl-package->ecl-package sbcl-trivial-gray-streams))
233
234 (define-public sbcl-fiasco
235 (let ((commit "d62f7558b21addc89f87e306f65d7f760632655f")
236 (revision "1"))
237 (package
238 (name "sbcl-fiasco")
239 (version (git-version "0.0.1" revision commit))
240 (source
241 (origin
242 (method git-fetch)
243 (uri (git-reference
244 (url "https://github.com/joaotavora/fiasco.git")
245 (commit commit)))
246 (file-name (git-file-name "fiasco" version))
247 (sha256
248 (base32
249 "1zwxs3d6iswayavcmb49z2892xhym7n556d8dnmvalc32pm9bkjh"))))
250 (build-system asdf-build-system/sbcl)
251 (inputs
252 `(("alexandria" ,sbcl-alexandria)
253 ("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
254 (synopsis "Simple and powerful test framework for Common Lisp")
255 (description "A Common Lisp test framework that treasures your failures,
256 logical continuation of Stefil. It focuses on interactive debugging.")
257 (home-page "https://github.com/joaotavora/fiasco")
258 ;; LICENCE specifies this is public-domain unless the legislation
259 ;; doesn't allow or recognize it. In that case it falls back to a
260 ;; permissive licence.
261 (license (list license:public-domain
262 (license:x11-style "file://LICENCE"))))))
263
264 (define-public cl-fiasco
265 (sbcl-package->cl-source-package sbcl-fiasco))
266
267 (define-public ecl-fiasco
268 (sbcl-package->ecl-package sbcl-fiasco))
269
270 (define-public sbcl-flexi-streams
271 (package
272 (name "sbcl-flexi-streams")
273 (version "1.0.18")
274 (source
275 (origin
276 (method git-fetch)
277 (uri (git-reference
278 (url "https://github.com/edicl/flexi-streams.git")
279 (commit (string-append "v" version))))
280 (file-name (git-file-name "flexi-streams" version))
281 (sha256
282 (base32 "0bjv7fd2acknidc5dyi3h85pn10krxv5jyxs1xg8jya2rlfv7f1j"))))
283 (build-system asdf-build-system/sbcl)
284 (arguments
285 `(#:phases
286 (modify-phases %standard-phases
287 (add-after 'unpack 'make-git-checkout-writable
288 (lambda _
289 (for-each make-file-writable (find-files "."))
290 #t)))))
291 (inputs `(("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
292 (synopsis "Implementation of virtual bivalent streams for Common Lisp")
293 (description "Flexi-streams is an implementation of \"virtual\" bivalent
294 streams that can be layered atop real binary or bivalent streams and that can
295 be used to read and write character data in various single- or multi-octet
296 encodings which can be changed on the fly. It also supplies in-memory binary
297 streams which are similar to string streams.")
298 (home-page "http://weitz.de/flexi-streams/")
299 (license license:bsd-3)))
300
301 (define-public cl-flexi-streams
302 (sbcl-package->cl-source-package sbcl-flexi-streams))
303
304 (define-public ecl-flexi-streams
305 (sbcl-package->ecl-package sbcl-flexi-streams))
306
307 (define-public sbcl-cl-ppcre
308 (package
309 (name "sbcl-cl-ppcre")
310 (version "2.1.1")
311 (source
312 (origin
313 (method git-fetch)
314 (uri (git-reference
315 (url "https://github.com/edicl/cl-ppcre.git")
316 (commit (string-append "v" version))))
317 (file-name (git-file-name "cl-ppcre" version))
318 (sha256
319 (base32 "0dwvr29diqzcg5n6jvbk2rnd90i05l7n828hhw99khmqd0kz7xsi"))))
320 (build-system asdf-build-system/sbcl)
321 (native-inputs `(("flexi-streams" ,sbcl-flexi-streams)))
322 (synopsis "Portable regular expression library for Common Lisp")
323 (description "CL-PPCRE is a portable regular expression library for Common
324 Lisp, which is compatible with perl. It is pretty fast, thread-safe, and
325 compatible with ANSI-compliant Common Lisp implementations.")
326 (home-page "http://weitz.de/cl-ppcre/")
327 (license license:bsd-2)))
328
329 (define-public cl-ppcre
330 (sbcl-package->cl-source-package sbcl-cl-ppcre))
331
332 (define-public ecl-cl-ppcre
333 (sbcl-package->ecl-package sbcl-cl-ppcre))
334
335 (define sbcl-cl-unicode-base
336 (package
337 (name "sbcl-cl-unicode-base")
338 (version "0.1.6")
339 (source (origin
340 (method git-fetch)
341 (uri (git-reference
342 (url "https://github.com/edicl/cl-unicode.git")
343 (commit (string-append "v" version))))
344 (file-name (git-file-name name version))
345 (sha256
346 (base32
347 "0ykx2s9lqfl74p1px0ik3l2izd1fc9jd1b4ra68s5x34rvjy0hza"))))
348 (build-system asdf-build-system/sbcl)
349 (arguments
350 '(#:asd-file "cl-unicode.asd"
351 #:asd-system-name "cl-unicode/base"))
352 (inputs
353 `(("cl-ppcre" ,sbcl-cl-ppcre)))
354 (home-page "http://weitz.de/cl-unicode/")
355 (synopsis "Portable Unicode library for Common Lisp")
356 (description "CL-UNICODE is a portable Unicode library Common Lisp, which
357 is compatible with perl. It is pretty fast, thread-safe, and compatible with
358 ANSI-compliant Common Lisp implementations.")
359 (license license:bsd-2)))
360
361 (define-public sbcl-cl-unicode
362 (package
363 (inherit sbcl-cl-unicode-base)
364 (name "sbcl-cl-unicode")
365 (inputs
366 `(("cl-unicode/base" ,sbcl-cl-unicode-base)
367 ,@(package-inputs sbcl-cl-unicode-base)))
368 (native-inputs
369 `(("flexi-streams" ,sbcl-flexi-streams)))
370 (arguments '())))
371
372 (define-public ecl-cl-unicode
373 (sbcl-package->ecl-package sbcl-cl-unicode))
374
375 (define-public cl-unicode
376 (sbcl-package->cl-source-package sbcl-cl-unicode))
377
378 (define-public sbcl-zpb-ttf
379 (package
380 (name "sbcl-zpb-ttf")
381 (version "1.0.3")
382 (source
383 (origin
384 (method git-fetch)
385 (uri (git-reference
386 (url "https://github.com/xach/zpb-ttf.git")
387 (commit (string-append "release-" version))))
388 (file-name (git-file-name name version))
389 (sha256
390 (base32
391 "1wh66vjijzqlydnrihynpwp6796917xwrh0i9li93c17kyxa74ih"))))
392 (build-system asdf-build-system/sbcl)
393 (home-page "https://github.com/xach/zpb-ttf")
394 (synopsis "TrueType font file access for Common Lisp")
395 (description
396 "ZPB-TTF is a TrueType font file parser that provides an interface for
397 reading typographic metrics, glyph outlines, and other information from the
398 file.")
399 (license license:bsd-2)))
400
401 (define-public ecl-zpb-ttf
402 (sbcl-package->ecl-package sbcl-zpb-ttf))
403
404 (define-public cl-zpb-ttf
405 (sbcl-package->cl-source-package sbcl-zpb-ttf))
406
407 (define-public sbcl-cl-aa
408 (package
409 (name "sbcl-cl-aa")
410 (version "0.1.5")
411 (source
412 (origin
413 (method url-fetch)
414 (uri (string-append "http://projects.tuxee.net/cl-vectors/"
415 "files/cl-vectors-" version ".tar.gz"))
416 (sha256
417 (base32
418 "04lhwi0kq8pkwhgd885pk80m1cp9sfvjjn5zj70s1dnckibhdmqh"))))
419 (build-system asdf-build-system/sbcl)
420 (arguments '(#:asd-file "cl-aa.asd"))
421 (home-page "http://projects.tuxee.net/cl-vectors/")
422 (synopsis "Polygon rasterizer")
423 (description
424 "This is a Common Lisp library implementing the AA polygon rasterization
425 algorithm from the @url{http://antigrain.com, Antigrain} project.")
426 (license license:expat)))
427
428 (define-public ecl-cl-aa
429 (sbcl-package->ecl-package sbcl-cl-aa))
430
431 (define-public cl-aa
432 (sbcl-package->cl-source-package sbcl-cl-aa))
433
434 (define-public sbcl-cl-paths
435 (package
436 (inherit sbcl-cl-aa)
437 (name "sbcl-cl-paths")
438 (arguments '(#:asd-file "cl-paths.asd"))
439 (synopsis "Facilities to create and manipulate vectorial paths")
440 (description
441 "This package provides facilities to create and manipulate vectorial
442 paths.")))
443
444 (define-public ecl-cl-paths
445 (sbcl-package->ecl-package sbcl-cl-paths))
446
447 (define-public cl-paths
448 (sbcl-package->cl-source-package sbcl-cl-paths))
449
450 (define-public sbcl-cl-paths-ttf
451 (package
452 (inherit sbcl-cl-aa)
453 (name "sbcl-cl-paths-ttf")
454 (arguments '(#:asd-file "cl-paths-ttf.asd"))
455 (inputs
456 `(("cl-paths" ,sbcl-cl-paths)
457 ("zpb-ttf" ,sbcl-zpb-ttf)))
458 (synopsis "Facilities to create and manipulate vectorial paths")
459 (description
460 "This package provides facilities to create and manipulate vectorial
461 paths.")))
462
463 (define-public ecl-cl-paths-ttf
464 (sbcl-package->ecl-package sbcl-cl-paths-ttf))
465
466 (define-public cl-paths-ttf
467 (sbcl-package->cl-source-package sbcl-cl-paths-ttf))
468
469 (define-public sbcl-cl-vectors
470 (package
471 (inherit sbcl-cl-aa)
472 (name "sbcl-cl-vectors")
473 (arguments '(#:asd-file "cl-vectors.asd"))
474 (inputs
475 `(("cl-aa" ,sbcl-cl-aa)
476 ("cl-paths" ,sbcl-cl-paths)))
477 (synopsis "Create, transform and render anti-aliased vectorial paths")
478 (description
479 "This is a pure Common Lisp library to create, transform and render
480 anti-aliased vectorial paths.")))
481
482 (define-public ecl-cl-vectors
483 (sbcl-package->ecl-package sbcl-cl-vectors))
484
485 (define-public cl-vectors
486 (sbcl-package->cl-source-package sbcl-cl-vectors))
487
488 (define-public sbcl-spatial-trees
489 ;; There have been no releases.
490 (let ((commit "81fdad0a0bf109c80a53cc96eca2e093823400ba")
491 (revision "1"))
492 (package
493 (name "sbcl-spatial-trees")
494 (version (git-version "0" revision commit))
495 (source
496 (origin
497 (method git-fetch)
498 (uri (git-reference
499 (url "https://github.com/rpav/spatial-trees.git")
500 (commit commit)))
501 (file-name (git-file-name name version))
502 (sha256
503 (base32
504 "11rhc6h501dwcik2igkszz7b9n515cr99m5pjh4r2qfwgiri6ysa"))))
505 (build-system asdf-build-system/sbcl)
506 (arguments
507 '(#:tests? #f ; spatial-trees.test requires spatial-trees.nns
508 #:asd-file "spatial-trees.asd"
509 #:test-asd-file "spatial-trees.test.asd"))
510 (native-inputs
511 `(("fiveam" ,sbcl-fiveam)))
512 (home-page "https://github.com/rpav/spatial-trees")
513 (synopsis "Dynamic index data structures for spatially-extended data")
514 (description
515 "Spatial-trees is a set of dynamic index data structures for
516 spatially-extended data.")
517 (license license:bsd-3))))
518
519 (define-public ecl-spatial-trees
520 (sbcl-package->ecl-package sbcl-spatial-trees))
521
522 (define-public cl-spatial-trees
523 (sbcl-package->cl-source-package sbcl-spatial-trees))
524
525 (define-public sbcl-flexichain
526 ;; There are no releases.
527 (let ((commit "13d2a6c505ed0abfcd4c4ec7d7145059b06855d6")
528 (revision "1"))
529 (package
530 (name "sbcl-flexichain")
531 (version "1.5.1")
532 (source
533 (origin
534 (method git-fetch)
535 (uri (git-reference
536 (url "https://github.com/robert-strandh/Flexichain.git")
537 (commit commit)))
538 (file-name (git-file-name name version))
539 (sha256
540 (base32
541 "0pfyvhsfbjd2sjb30grfs52r51a428xglv7bwydvpg2lc117qimg"))))
542 (build-system asdf-build-system/sbcl)
543 (home-page "https://github.com/robert-strandh/Flexichain.git")
544 (synopsis "Dynamically add elements to or remove them from sequences")
545 (description
546 "This package provides an implementation of the flexichain protocol,
547 allowing client code to dynamically add elements to, and delete elements from
548 a sequence (or chain) of such elements.")
549 (license license:lgpl2.1+))))
550
551 (define-public ecl-flexichain
552 (sbcl-package->ecl-package sbcl-flexichain))
553
554 (define-public cl-flexichain
555 (sbcl-package->cl-source-package sbcl-flexichain))
556
557 (define-public sbcl-cl-pdf
558 ;; There are no releases
559 (let ((commit "752e337e6d6fc206f09d091a982e7f8e5c404e4e")
560 (revision "1"))
561 (package
562 (name "sbcl-cl-pdf")
563 (version (git-version "0" revision commit))
564 (source
565 (origin
566 (method git-fetch)
567 (uri (git-reference
568 (url "https://github.com/mbattyani/cl-pdf.git")
569 (commit commit)))
570 (file-name (git-file-name name version))
571 (sha256
572 (base32
573 "1cg3k3m3r11ipb8j008y8ipynj97l3xjlpi2knqc9ndmx4r3kb1r"))))
574 (build-system asdf-build-system/sbcl)
575 (inputs
576 `(("iterate" ,sbcl-iterate)
577 ("zpb-ttf" ,sbcl-zpb-ttf)))
578 (home-page "https://github.com/mbattyani/cl-pdf")
579 (synopsis "Common Lisp library for generating PDF files")
580 (description
581 "CL-PDF is a cross-platform Common Lisp library for generating PDF
582 files.")
583 (license license:bsd-2))))
584
585 (define-public ecl-cl-pdf
586 (sbcl-package->ecl-package sbcl-cl-pdf))
587
588 (define-public cl-pdf
589 (sbcl-package->cl-source-package sbcl-cl-pdf))
590
591 (define-public sbcl-clx
592 (package
593 (name "sbcl-clx")
594 (version "0.7.5")
595 (source
596 (origin
597 (method git-fetch)
598 (uri
599 (git-reference
600 (url "https://github.com/sharplispers/clx.git")
601 (commit version)))
602 (sha256
603 (base32
604 "1vi67z9hpj5rr4xcmfbfwzmlcc0ah7hzhrmfid6lqdkva238v2wf"))
605 (file-name (string-append "clx-" version))))
606 (build-system asdf-build-system/sbcl)
607 (native-inputs
608 `(("fiasco" ,sbcl-fiasco)))
609 (home-page "https://www.cliki.net/portable-clx")
610 (synopsis "X11 client library for Common Lisp")
611 (description "CLX is an X11 client library for Common Lisp. The code was
612 originally taken from a CMUCL distribution, was modified somewhat in order to
613 make it compile and run under SBCL, then a selection of patches were added
614 from other CLXes around the net.")
615 (license license:x11)))
616
617 (define-public cl-clx
618 (sbcl-package->cl-source-package sbcl-clx))
619
620 (define-public ecl-clx
621 (sbcl-package->ecl-package sbcl-clx))
622
623 (define-public sbcl-clx-truetype
624 (let ((commit "c6e10a918d46632324d5863a8ed067a83fc26de8")
625 (revision "1"))
626 (package
627 (name "sbcl-clx-truetype")
628 (version (git-version "0.0.1" revision commit))
629 (source
630 (origin
631 (method git-fetch)
632 (uri (git-reference
633 (url "https://github.com/l04m33/clx-truetype")
634 (commit commit)))
635 (file-name (git-file-name name version))
636 (sha256
637 (base32
638 "079hyp92cjkdfn6bhkxsrwnibiqbz4y4af6nl31lzw6nm91j5j37"))
639 (modules '((guix build utils)))
640 (snippet
641 '(begin
642 (substitute* "package.lisp"
643 ((":export") ":export\n :+font-cache-filename+"))
644 #t))))
645 (build-system asdf-build-system/sbcl)
646 (inputs
647 `(("clx" ,sbcl-clx)
648 ("zpb-ttf" ,sbcl-zpb-ttf)
649 ("cl-vectors" ,sbcl-cl-vectors)
650 ("cl-paths-ttf" ,sbcl-cl-paths-ttf)
651 ("cl-fad" ,sbcl-cl-fad)
652 ("cl-store" ,sbcl-cl-store)
653 ("trivial-features" ,sbcl-trivial-features)))
654 (home-page "https://github.com/l04m33/clx-truetype")
655 (synopsis "Antialiased TrueType font rendering using CLX and XRender")
656 (description "CLX-TrueType is pure common lisp solution for
657 antialiased TrueType font rendering using CLX and XRender extension.")
658 (license license:expat))))
659
660 (define-public sbcl-cl-ppcre-unicode
661 (package (inherit sbcl-cl-ppcre)
662 (name "sbcl-cl-ppcre-unicode")
663 (arguments
664 `(#:tests? #f ; tests fail with "Component :CL-PPCRE-TEST not found"
665 #:asd-file "cl-ppcre-unicode.asd"))
666 (inputs
667 `(("sbcl-cl-ppcre" ,sbcl-cl-ppcre)
668 ("sbcl-cl-unicode" ,sbcl-cl-unicode)))))
669
670 (define-public ecl-cl-ppcre-unicode
671 (sbcl-package->ecl-package sbcl-cl-ppcre-unicode))
672
673 ;; The slynk that users expect to install includes all of slynk's contrib
674 ;; modules. Therefore, we build the base module and all contribs first; then
675 ;; we expose the union of these as `sbcl-slynk'. The following variable
676 ;; describes the base module.
677 (define sbcl-slynk-boot0
678 (let ((revision "2")
679 (commit "cbf84c36c4eca8b032e3fd16177a7bc02df3ec4c"))
680 (package
681 (name "sbcl-slynk-boot0")
682 (version (string-append "1.0.0-beta-" revision "." (string-take commit 7)))
683 (source
684 (origin
685 (method git-fetch)
686 (uri
687 (git-reference
688 (url "https://github.com/joaotavora/sly.git")
689 (commit commit)))
690 (sha256
691 (base32 "13dyhsravn591p7g6is01mp2ynzjnnj7pwgi57r6xqmd4611y9vh"))
692 (file-name (string-append "slynk-" version "-checkout"))
693 (modules '((guix build utils)
694 (ice-9 ftw)))
695 (snippet
696 '(begin
697 ;; Move the contribs into the main source directory for easier
698 ;; access
699 (substitute* "slynk/slynk.asd"
700 (("\\.\\./contrib")
701 "contrib")
702 (("\\(defsystem :slynk/util")
703 "(defsystem :slynk/util :depends-on (:slynk)")
704 ((":depends-on \\(:slynk :slynk/util\\)")
705 ":depends-on (:slynk :slynk-util)"))
706 (substitute* "contrib/slynk-trace-dialog.lisp"
707 (("\\(slynk::reset-inspector\\)") ; Causes problems on load
708 "nil"))
709 (substitute* "contrib/slynk-profiler.lisp"
710 (("slynk:to-line")
711 "slynk-pprint-to-line"))
712 (substitute* "contrib/slynk-fancy-inspector.lisp"
713 (("slynk/util") "slynk-util")
714 ((":compile-toplevel :load-toplevel") ""))
715 (rename-file "contrib" "slynk/contrib")
716 ;; Move slynk's contents into the base directory for easier
717 ;; access
718 (for-each (lambda (file)
719 (unless (string-prefix? "." file)
720 (rename-file (string-append "slynk/" file)
721 (string-append "./" (basename file)))))
722 (scandir "slynk"))
723 #t))))
724 (build-system asdf-build-system/sbcl)
725 (arguments
726 `(#:tests? #f ; No test suite
727 #:asd-system-name "slynk"))
728 (synopsis "Common Lisp IDE for Emacs")
729 (description "SLY is a fork of SLIME, an IDE backend for Common Lisp.
730 It also features a completely redesigned REPL based on Emacs's own
731 full-featured comint.el, live code annotations, and a consistent interactive
732 button interface. Everything can be copied to the REPL. One can create
733 multiple inspectors with independent history.")
734 (home-page "https://github.com/joaotavora/sly")
735 (license license:public-domain)
736 (properties `((cl-source-variant . ,(delay cl-slynk)))))))
737
738 (define-public cl-slynk
739 (package
740 (inherit (sbcl-package->cl-source-package sbcl-slynk-boot0))
741 (name "cl-slynk")))
742
743 (define ecl-slynk-boot0
744 (sbcl-package->ecl-package sbcl-slynk-boot0))
745
746 (define sbcl-slynk-arglists
747 (package
748 (inherit sbcl-slynk-boot0)
749 (name "sbcl-slynk-arglists")
750 (inputs `(("slynk" ,sbcl-slynk-boot0)))
751 (arguments
752 (substitute-keyword-arguments (package-arguments sbcl-slynk-boot0)
753 ((#:asd-file _ "") "slynk.asd")
754 ((#:asd-system-name _ #f) "slynk/arglists")))))
755
756 (define ecl-slynk-arglists
757 (sbcl-package->ecl-package sbcl-slynk-arglists))
758
759 (define sbcl-slynk-util
760 (package
761 (inherit sbcl-slynk-boot0)
762 (name "sbcl-slynk-util")
763 (inputs `(("slynk" ,sbcl-slynk-boot0)))
764 (arguments
765 (substitute-keyword-arguments (package-arguments sbcl-slynk-boot0)
766 ((#:asd-file _ "") "slynk.asd")
767 ((#:asd-system-name _ #f) "slynk/util")))))
768
769 (define ecl-slynk-util
770 (sbcl-package->ecl-package sbcl-slynk-util))
771
772 (define sbcl-slynk-fancy-inspector
773 (package
774 (inherit sbcl-slynk-arglists)
775 (name "sbcl-slynk-fancy-inspector")
776 (inputs `(("slynk-util" ,sbcl-slynk-util)
777 ,@(package-inputs sbcl-slynk-arglists)))
778 (arguments
779 (substitute-keyword-arguments (package-arguments sbcl-slynk-arglists)
780 ((#:asd-system-name _ #f) "slynk/fancy-inspector")))))
781
782 (define ecl-slynk-fancy-inspector
783 (sbcl-package->ecl-package sbcl-slynk-fancy-inspector))
784
785 (define sbcl-slynk-package-fu
786 (package
787 (inherit sbcl-slynk-arglists)
788 (name "sbcl-slynk-package-fu")
789 (arguments
790 (substitute-keyword-arguments (package-arguments sbcl-slynk-arglists)
791 ((#:asd-system-name _ #f) "slynk/package-fu")))))
792
793 (define ecl-slynk-package-fu
794 (sbcl-package->ecl-package sbcl-slynk-package-fu))
795
796 (define sbcl-slynk-mrepl
797 (package
798 (inherit sbcl-slynk-fancy-inspector)
799 (name "sbcl-slynk-mrepl")
800 (arguments
801 (substitute-keyword-arguments (package-arguments sbcl-slynk-arglists)
802 ((#:asd-system-name _ #f) "slynk/mrepl")))))
803
804 (define ecl-slynk-mrepl
805 (sbcl-package->ecl-package sbcl-slynk-mrepl))
806
807 (define sbcl-slynk-trace-dialog
808 (package
809 (inherit sbcl-slynk-arglists)
810 (name "sbcl-slynk-trace-dialog")
811 (arguments
812 (substitute-keyword-arguments (package-arguments sbcl-slynk-arglists)
813 ((#:asd-system-name _ #f) "slynk/trace-dialog")))))
814
815 (define ecl-slynk-trace-dialog
816 (sbcl-package->ecl-package sbcl-slynk-trace-dialog))
817
818 (define sbcl-slynk-profiler
819 (package
820 (inherit sbcl-slynk-arglists)
821 (name "sbcl-slynk-profiler")
822 (arguments
823 (substitute-keyword-arguments (package-arguments sbcl-slynk-arglists)
824 ((#:asd-system-name _ #f) "slynk/profiler")))))
825
826 (define ecl-slynk-profiler
827 (sbcl-package->ecl-package sbcl-slynk-profiler))
828
829 (define sbcl-slynk-stickers
830 (package
831 (inherit sbcl-slynk-arglists)
832 (name "sbcl-slynk-stickers")
833 (arguments
834 (substitute-keyword-arguments (package-arguments sbcl-slynk-arglists)
835 ((#:asd-system-name _ #f) "slynk/stickers")))))
836
837 (define ecl-slynk-stickers
838 (sbcl-package->ecl-package sbcl-slynk-stickers))
839
840 (define sbcl-slynk-indentation
841 (package
842 (inherit sbcl-slynk-arglists)
843 (name "sbcl-slynk-indentation")
844 (arguments
845 (substitute-keyword-arguments (package-arguments sbcl-slynk-arglists)
846 ((#:asd-system-name _ #f) "slynk/indentation")))))
847
848 (define ecl-slynk-indentation
849 (sbcl-package->ecl-package sbcl-slynk-indentation))
850
851 (define sbcl-slynk-retro
852 (package
853 (inherit sbcl-slynk-arglists)
854 (name "sbcl-slynk-retro")
855 (arguments
856 (substitute-keyword-arguments (package-arguments sbcl-slynk-arglists)
857 ((#:asd-system-name _ #f) "slynk/retro")))))
858
859 (define ecl-slynk-retro
860 (sbcl-package->ecl-package sbcl-slynk-retro))
861
862 (define slynk-systems
863 '("slynk"
864 "slynk-util"
865 "slynk-arglists"
866 "slynk-fancy-inspector"
867 "slynk-package-fu"
868 "slynk-mrepl"
869 "slynk-profiler"
870 "slynk-trace-dialog"
871 "slynk-stickers"
872 "slynk-indentation"
873 "slynk-retro"))
874
875 (define-public sbcl-slynk
876 (package
877 (inherit sbcl-slynk-boot0)
878 (name "sbcl-slynk")
879 (inputs
880 `(("slynk" ,sbcl-slynk-boot0)
881 ("slynk-util" ,sbcl-slynk-util)
882 ("slynk-arglists" ,sbcl-slynk-arglists)
883 ("slynk-fancy-inspector" ,sbcl-slynk-fancy-inspector)
884 ("slynk-package-fu" ,sbcl-slynk-package-fu)
885 ("slynk-mrepl" ,sbcl-slynk-mrepl)
886 ("slynk-profiler" ,sbcl-slynk-profiler)
887 ("slynk-trace-dialog" ,sbcl-slynk-trace-dialog)
888 ("slynk-stickers" ,sbcl-slynk-stickers)
889 ("slynk-indentation" ,sbcl-slynk-indentation)
890 ("slynk-retro" ,sbcl-slynk-retro)))
891 (native-inputs `(("sbcl" ,sbcl)))
892 (build-system trivial-build-system)
893 (source #f)
894 (outputs '("out" "image"))
895 (arguments
896 `(#:modules ((guix build union)
897 (guix build utils)
898 (guix build lisp-utils))
899 #:builder
900 (begin
901 (use-modules (ice-9 match)
902 (srfi srfi-1)
903 (guix build union)
904 (guix build lisp-utils))
905
906 (union-build
907 (assoc-ref %outputs "out")
908 (filter-map
909 (match-lambda
910 ((name . path)
911 (if (string-prefix? "slynk" name) path #f)))
912 %build-inputs))
913
914 (prepend-to-source-registry
915 (string-append (assoc-ref %outputs "out") "//"))
916
917 (parameterize ((%lisp-type "sbcl")
918 (%lisp (string-append (assoc-ref %build-inputs "sbcl")
919 "/bin/sbcl")))
920 (build-image (string-append
921 (assoc-ref %outputs "image")
922 "/bin/slynk")
923 %outputs
924 #:dependencies ',slynk-systems))
925 #t)))))
926
927 (define-public ecl-slynk
928 (package
929 (inherit sbcl-slynk)
930 (name "ecl-slynk")
931 (inputs
932 (map (match-lambda
933 ((name pkg . _)
934 (list name (sbcl-package->ecl-package pkg))))
935 (package-inputs sbcl-slynk)))
936 (native-inputs '())
937 (outputs '("out"))
938 (arguments
939 '(#:modules ((guix build union))
940 #:builder
941 (begin
942 (use-modules (ice-9 match)
943 (guix build union))
944 (match %build-inputs
945 (((names . paths) ...)
946 (union-build (assoc-ref %outputs "out")
947 paths)
948 #t)))))))
949
950 (define-public sbcl-parse-js
951 (let ((commit "fbadc6029bec7039602abfc06c73bb52970998f6")
952 (revision "1"))
953 (package
954 (name "sbcl-parse-js")
955 (version (string-append "0.0.0-" revision "." (string-take commit 9)))
956 (source
957 (origin
958 (method git-fetch)
959 (uri (git-reference
960 (url "http://marijn.haverbeke.nl/git/parse-js")
961 (commit commit)))
962 (file-name (string-append name "-" commit "-checkout"))
963 (sha256
964 (base32
965 "1wddrnr5kiya5s3gp4cdq6crbfy9fqcz7fr44p81502sj3bvdv39"))))
966 (build-system asdf-build-system/sbcl)
967 (home-page "https://marijnhaverbeke.nl/parse-js/")
968 (synopsis "Parse JavaScript")
969 (description "Parse-js is a Common Lisp package for parsing
970 JavaScript (ECMAScript 3). It has basic support for ECMAScript 5.")
971 (license license:zlib))))
972
973 (define-public cl-parse-js
974 (sbcl-package->cl-source-package sbcl-parse-js))
975
976 (define-public sbcl-parse-number
977 (package
978 (name "sbcl-parse-number")
979 (version "1.7")
980 (source
981 (origin
982 (method git-fetch)
983 (uri (git-reference
984 (url "https://github.com/sharplispers/parse-number/")
985 (commit (string-append "v" version))))
986 (file-name (git-file-name name version))
987 (sha256
988 (base32
989 "0sk06ib1bhqv9y39vwnnw44vmbc4b0kvqm37xxmkxd4dwchq82d7"))))
990 (build-system asdf-build-system/sbcl)
991 (home-page "https://www.cliki.net/PARSE-NUMBER")
992 (synopsis "Parse numbers")
993 (description "@code{parse-number} is a library of functions for parsing
994 strings into one of the standard Common Lisp number types without using the
995 reader. @code{parse-number} accepts an arbitrary string and attempts to parse
996 the string into one of the standard Common Lisp number types, if possible, or
997 else @code{parse-number} signals an error of type @code{invalid-number}.")
998 (license license:bsd-3)))
999
1000 (define-public cl-parse-number
1001 (sbcl-package->cl-source-package sbcl-parse-number))
1002
1003 (define-public sbcl-iterate
1004 (package
1005 (name "sbcl-iterate")
1006 (version "1.5")
1007 (source
1008 (origin
1009 (method url-fetch)
1010 (uri (string-append "https://common-lisp.net/project/iterate/releases/"
1011 "iterate-" version ".tar.gz"))
1012 (sha256
1013 (base32
1014 "1lqsbhrkfl0yif46aymvb7l3nb9wdcmj4jyw485blj32jb4famzn"))))
1015 (build-system asdf-build-system/sbcl)
1016 (native-inputs
1017 `(("rt" ,sbcl-rt)))
1018 (home-page "https://common-lisp.net/project/iterate/")
1019 (synopsis "Iteration construct for Common Lisp")
1020 (description "@code{iterate} is an iteration construct for Common Lisp.
1021 It is similar to the @code{CL:LOOP} macro, with these distinguishing marks:
1022
1023 @itemize
1024 @item it is extensible,
1025 @item it helps editors like Emacs indent iterate forms by having a more
1026 lisp-like syntax, and
1027 @item it isn't part of the ANSI standard for Common Lisp.
1028 @end itemize\n")
1029 (license license:expat)))
1030
1031 (define-public cl-iterate
1032 (sbcl-package->cl-source-package sbcl-iterate))
1033
1034 (define-public ecl-iterate
1035 (sbcl-package->ecl-package sbcl-iterate))
1036
1037 (define-public sbcl-cl-uglify-js
1038 ;; There have been many bug fixes since the 2010 release.
1039 (let ((commit "429c5e1d844e2f96b44db8fccc92d6e8e28afdd5")
1040 (revision "1"))
1041 (package
1042 (name "sbcl-cl-uglify-js")
1043 (version (string-append "0.1-" revision "." (string-take commit 9)))
1044 (source
1045 (origin
1046 (method git-fetch)
1047 (uri (git-reference
1048 (url "https://github.com/mishoo/cl-uglify-js.git")
1049 (commit commit)))
1050 (file-name (git-file-name name version))
1051 (sha256
1052 (base32
1053 "0k39y3c93jgxpr7gwz7w0d8yknn1fdnxrjhd03057lvk5w8js27a"))))
1054 (build-system asdf-build-system/sbcl)
1055 (inputs
1056 `(("sbcl-parse-js" ,sbcl-parse-js)
1057 ("sbcl-cl-ppcre" ,sbcl-cl-ppcre)
1058 ("sbcl-cl-ppcre-unicode" ,sbcl-cl-ppcre-unicode)
1059 ("sbcl-parse-number" ,sbcl-parse-number)
1060 ("sbcl-iterate" ,sbcl-iterate)))
1061 (home-page "https://github.com/mishoo/cl-uglify-js")
1062 (synopsis "JavaScript compressor library for Common Lisp")
1063 (description "This is a Common Lisp version of UglifyJS, a JavaScript
1064 compressor. It works on data produced by @code{parse-js} to generate a
1065 @dfn{minified} version of the code. Currently it can:
1066
1067 @itemize
1068 @item reduce variable names (usually to single letters)
1069 @item join consecutive @code{var} statements
1070 @item resolve simple binary expressions
1071 @item group most consecutive statements using the @code{sequence} operator (comma)
1072 @item remove unnecessary blocks
1073 @item convert @code{IF} expressions in various ways that result in smaller code
1074 @item remove some unreachable code
1075 @end itemize\n")
1076 (license license:zlib))))
1077
1078 (define-public cl-uglify-js
1079 (sbcl-package->cl-source-package sbcl-cl-uglify-js))
1080
1081 (define-public uglify-js
1082 (package
1083 (inherit sbcl-cl-uglify-js)
1084 (name "uglify-js")
1085 (build-system trivial-build-system)
1086 (arguments
1087 `(#:modules ((guix build utils))
1088 #:builder
1089 (let* ((bin (string-append (assoc-ref %outputs "out") "/bin/"))
1090 (script (string-append bin "uglify-js")))
1091 (use-modules (guix build utils))
1092 (mkdir-p bin)
1093 (with-output-to-file script
1094 (lambda _
1095 (format #t "#!~a/bin/sbcl --script
1096 (require :asdf)
1097 (push (truename \"~a/lib/sbcl\") asdf:*central-registry*)"
1098 (assoc-ref %build-inputs "sbcl")
1099 (assoc-ref %build-inputs "sbcl-cl-uglify-js"))
1100 ;; FIXME: cannot use progn here because otherwise it fails to
1101 ;; find cl-uglify-js.
1102 (for-each
1103 write
1104 '(;; Quiet, please!
1105 (let ((*standard-output* (make-broadcast-stream))
1106 (*error-output* (make-broadcast-stream)))
1107 (asdf:load-system :cl-uglify-js))
1108 (let ((file (cadr *posix-argv*)))
1109 (if file
1110 (format t "~a"
1111 (cl-uglify-js:ast-gen-code
1112 (cl-uglify-js:ast-mangle
1113 (cl-uglify-js:ast-squeeze
1114 (with-open-file (in file)
1115 (parse-js:parse-js in))))
1116 :beautify nil))
1117 (progn
1118 (format *error-output*
1119 "Please provide a JavaScript file.~%")
1120 (sb-ext:exit :code 1))))))))
1121 (chmod script #o755)
1122 #t)))
1123 (inputs
1124 `(("sbcl" ,sbcl)
1125 ("sbcl-cl-uglify-js" ,sbcl-cl-uglify-js)))
1126 (synopsis "JavaScript compressor")))
1127
1128 (define-public sbcl-cl-strings
1129 (let ((revision "1")
1130 (commit "c5c5cbafbf3e6181d03c354d66e41a4f063f00ae"))
1131 (package
1132 (name "sbcl-cl-strings")
1133 (version (git-version "0.0.0" revision commit))
1134 (source
1135 (origin
1136 (method git-fetch)
1137 (uri (git-reference
1138 (url "https://github.com/diogoalexandrefranco/cl-strings")
1139 (commit commit)))
1140 (sha256
1141 (base32
1142 "00754mfaqallj480lwd346nkfb6ra8pa8xcxcylf4baqn604zlmv"))
1143 (file-name (string-append "cl-strings-" version "-checkout"))))
1144 (build-system asdf-build-system/sbcl)
1145 (synopsis "Portable, dependency-free set of utilities to manipulate strings in Common Lisp")
1146 (description
1147 "@command{cl-strings} is a small, portable, dependency-free set of
1148 utilities that make it even easier to manipulate text in Common Lisp. It has
1149 100% test coverage and works at least on sbcl, ecl, ccl, abcl and clisp.")
1150 (home-page "https://github.com/diogoalexandrefranco/cl-strings")
1151 (license license:expat))))
1152
1153 (define-public cl-strings
1154 (sbcl-package->cl-source-package sbcl-cl-strings))
1155
1156 (define-public ecl-cl-strings
1157 (sbcl-package->ecl-package sbcl-cl-strings))
1158
1159 (define-public sbcl-trivial-features
1160 ;; No release since 2014.
1161 (let ((commit "870d03de0ed44067963350936856e17ee725153e"))
1162 (package
1163 (name "sbcl-trivial-features")
1164 (version (git-version "0.8" "1" commit))
1165 (source
1166 (origin
1167 (method git-fetch)
1168 (uri (git-reference
1169 (url "https://github.com/trivial-features/trivial-features.git")
1170 (commit commit)))
1171 (file-name (git-file-name "trivial-features" version))
1172 (sha256
1173 (base32 "14pcahr8r2j3idhyy216zyw8jnj1dnrx0qbkkbdqkvwzign1ah4j"))))
1174 (build-system asdf-build-system/sbcl)
1175 (arguments '(#:tests? #f))
1176 (home-page "https://cliki.net/trivial-features")
1177 (synopsis "Ensures consistency of @code{*FEATURES*} in Common Lisp")
1178 (description "Trivial-features ensures that @code{*FEATURES*} is
1179 consistent across multiple Common Lisp implementations.")
1180 (license license:expat))))
1181
1182 (define-public cl-trivial-features
1183 (sbcl-package->cl-source-package sbcl-trivial-features))
1184
1185 (define-public ecl-trivial-features
1186 (sbcl-package->ecl-package sbcl-trivial-features))
1187
1188 (define-public sbcl-hu.dwim.asdf
1189 (package
1190 (name "sbcl-hu.dwim.asdf")
1191 (version "20190521")
1192 (source
1193 (origin
1194 (method url-fetch)
1195 (uri (string-append "http://beta.quicklisp.org/archive/hu.dwim.asdf/"
1196 "2019-05-21/hu.dwim.asdf-" version "-darcs.tgz"))
1197 (sha256
1198 (base32
1199 "0rsbv71vyszy8w35yjwb5h6zcmknjq223hkzir79y72qdsc6sabn"))))
1200 (build-system asdf-build-system/sbcl)
1201 (home-page "https://hub.darcs.net/hu.dwim/hu.dwim.asdf")
1202 (synopsis "Extensions to ASDF")
1203 (description "Various ASDF extensions such as attached test and
1204 documentation system, explicit development support, etc.")
1205 (license license:public-domain)))
1206
1207 (define-public cl-hu.dwim.asdf
1208 (sbcl-package->cl-source-package sbcl-hu.dwim.asdf))
1209
1210 (define-public ecl-hu.dwim.asdf
1211 (sbcl-package->ecl-package sbcl-hu.dwim.asdf))
1212
1213 (define-public sbcl-hu.dwim.stefil
1214 (let ((commit "ab6d1aa8995878a1b66d745dfd0ba021090bbcf9"))
1215 (package
1216 (name "sbcl-hu.dwim.stefil")
1217 (version (git-version "0.0.0" "1" commit))
1218 (source
1219 (origin
1220 (method git-fetch)
1221 (uri
1222 (git-reference
1223 (url "https://gitlab.common-lisp.net/xcvb/hu.dwim.stefil.git")
1224 (commit commit)))
1225 (sha256
1226 (base32 "1d8yccw65zj3zh46cbi3x6nmn1dwdb76s9d0av035077mvyirqqp"))
1227 (file-name (git-file-name "hu.dwim.stefil" version))))
1228 (build-system asdf-build-system/sbcl)
1229 (native-inputs
1230 `(("asdf:cl-hu.dwim.asdf" ,sbcl-hu.dwim.asdf)))
1231 (inputs
1232 `(("sbcl-alexandria" ,sbcl-alexandria)))
1233 (home-page "https://hub.darcs.net/hu.dwim/hu.dwim.stefil")
1234 (synopsis "Simple test framework")
1235 (description "Stefil is a simple test framework for Common Lisp,
1236 with a focus on interactive development.")
1237 (license license:public-domain))))
1238
1239 (define-public cl-hu.dwim.stefil
1240 (sbcl-package->cl-source-package sbcl-hu.dwim.stefil))
1241
1242 (define-public ecl-hu.dwim.stefil
1243 (sbcl-package->ecl-package sbcl-hu.dwim.stefil))
1244
1245 (define-public sbcl-babel
1246 ;; No release since 2014.
1247 (let ((commit "aeed2d1b76358db48e6b70a64399c05678a6b9ea"))
1248 (package
1249 (name "sbcl-babel")
1250 (version (git-version "0.5.0" "1" commit))
1251 (source
1252 (origin
1253 (method git-fetch)
1254 (uri (git-reference
1255 (url "https://github.com/cl-babel/babel.git")
1256 (commit commit)))
1257 (file-name (git-file-name "babel" version))
1258 (sha256
1259 (base32 "0lkvv4xdpv4cv1y2bqillmabx8sdb2y4l6pbinq6mjh33w2brpvb"))))
1260 (build-system asdf-build-system/sbcl)
1261 (native-inputs
1262 `(("tests:cl-hu.dwim.stefil" ,sbcl-hu.dwim.stefil)))
1263 (inputs
1264 `(("sbcl-alexandria" ,sbcl-alexandria)
1265 ("sbcl-trivial-features" ,sbcl-trivial-features)))
1266 (home-page "https://common-lisp.net/project/babel/")
1267 (synopsis "Charset encoding and decoding library")
1268 (description "Babel is a charset encoding and decoding library, not unlike
1269 GNU libiconv, but completely written in Common Lisp.")
1270 (license license:expat))))
1271
1272 (define-public cl-babel
1273 (sbcl-package->cl-source-package sbcl-babel))
1274
1275 (define-public ecl-babel
1276 (sbcl-package->ecl-package sbcl-babel))
1277
1278 (define-public sbcl-cl-yacc
1279 (package
1280 (name "sbcl-cl-yacc")
1281 (version "0.3")
1282 (source
1283 (origin
1284 (method git-fetch)
1285 (uri (git-reference
1286 (url "https://github.com/jech/cl-yacc")
1287 (commit (string-append "cl-yacc-" version))))
1288 (sha256
1289 (base32
1290 "16946pzf8vvadnyfayvj8rbh4zjzw90h0azz2qk1mxrvhh5wklib"))
1291 (file-name (string-append "cl-yacc-" version "-checkout"))))
1292 (build-system asdf-build-system/sbcl)
1293 (arguments
1294 `(#:asd-file "yacc.asd"
1295 #:asd-system-name "yacc"))
1296 (synopsis "LALR(1) parser generator for Common Lisp, similar in spirit to Yacc")
1297 (description
1298 "CL-Yacc is a LALR(1) parser generator for Common Lisp, similar in spirit
1299 to AT&T Yacc, Berkeley Yacc, GNU Bison, Zebu, lalr.cl or lalr.scm.
1300
1301 CL-Yacc uses the algorithm due to Aho and Ullman, which is the one also used
1302 by AT&T Yacc, Berkeley Yacc and Zebu. It does not use the faster algorithm due
1303 to DeRemer and Pennello, which is used by Bison and lalr.scm (not lalr.cl).")
1304 (home-page "https://www.irif.fr/~jch//software/cl-yacc/")
1305 (license license:expat)))
1306
1307 (define-public cl-yacc
1308 (sbcl-package->cl-source-package sbcl-cl-yacc))
1309
1310 (define-public ecl-cl-yacc
1311 (sbcl-package->ecl-package sbcl-cl-yacc))
1312
1313 (define-public sbcl-jpl-util
1314 (let ((commit "0311ed374e19a49d43318064d729fe3abd9a3b62"))
1315 (package
1316 (name "sbcl-jpl-util")
1317 (version "20151005")
1318 (source
1319 (origin
1320 (method git-fetch)
1321 (uri (git-reference
1322 ;; Quicklisp uses this fork.
1323 (url "https://github.com/hawkir/cl-jpl-util")
1324 (commit commit)))
1325 (file-name
1326 (git-file-name "jpl-util" version))
1327 (sha256
1328 (base32
1329 "0nc0rk9n8grkg3045xsw34whmcmddn2sfrxki4268g7kpgz0d2yz"))))
1330 (build-system asdf-build-system/sbcl)
1331 (synopsis "Collection of Common Lisp utility functions and macros")
1332 (description
1333 "@command{cl-jpl-util} is a collection of Common Lisp utility functions
1334 and macros, primarily for software projects written in CL by the author.")
1335 (home-page "https://www.thoughtcrime.us/software/cl-jpl-util/")
1336 (license license:isc))))
1337
1338 (define-public cl-jpl-util
1339 (sbcl-package->cl-source-package sbcl-jpl-util))
1340
1341 (define-public ecl-jpl-util
1342 (sbcl-package->ecl-package sbcl-jpl-util))
1343
1344 (define-public sbcl-jpl-queues
1345 (package
1346 (name "sbcl-jpl-queues")
1347 (version "0.1")
1348 (source
1349 (origin
1350 (method url-fetch)
1351 (uri (string-append
1352 "http://www.thoughtcrime.us/software/jpl-queues/jpl-queues-"
1353 version
1354 ".tar.gz"))
1355 (sha256
1356 (base32
1357 "1wvvv7j117h9a42qaj1g4fh4mji28xqs7s60rn6d11gk9jl76h96"))))
1358 (build-system asdf-build-system/sbcl)
1359 (inputs
1360 `(("jpl-util" ,sbcl-jpl-util)
1361 ("bordeaux-threads" ,sbcl-bordeaux-threads)))
1362 (arguments
1363 ;; Tests seem to be broken.
1364 `(#:tests? #f))
1365 (synopsis "Common Lisp library implementing a few different kinds of queues")
1366 (description
1367 "A Common Lisp library implementing a few different kinds of queues:
1368
1369 @itemize
1370 @item Bounded and unbounded FIFO queues.
1371 @item Lossy bounded FIFO queues that drop elements when full.
1372 @item Unbounded random-order queues that use less memory than unbounded FIFO queues.
1373 @end itemize
1374
1375 Additionally, a synchronization wrapper is provided to make any queue
1376 conforming to the @command{jpl-queues} API thread-safe for lightweight
1377 multithreading applications. (See Calispel for a more sophisticated CL
1378 multithreaded message-passing library with timeouts and alternation among
1379 several blockable channels.)")
1380 (home-page "https://www.thoughtcrime.us/software/jpl-queues/")
1381 (license license:isc)))
1382
1383 (define-public cl-jpl-queues
1384 (sbcl-package->cl-source-package sbcl-jpl-queues))
1385
1386 (define-public ecl-jpl-queues
1387 (sbcl-package->ecl-package sbcl-jpl-queues))
1388
1389 (define-public sbcl-eos
1390 (let ((commit "b0faca83781ead9a588661e37bd47f90362ccd94"))
1391 (package
1392 (name "sbcl-eos")
1393 (version (git-version "0.0.0" "1" commit))
1394 (source
1395 (origin
1396 (method git-fetch)
1397 (uri (git-reference
1398 (url "https://github.com/adlai/Eos")
1399 (commit commit)))
1400 (sha256
1401 (base32
1402 "1bq8cfg087iyxmxi1mwgx5cfgy3b8ydrf81xljcis8qbgb2vszph"))
1403 (file-name (git-file-name "eos" version))))
1404 (build-system asdf-build-system/sbcl)
1405 (synopsis "Unit Testing for Common Lisp")
1406 (description
1407 "Eos was a unit testing library for Common Lisp.
1408 It began as a fork of FiveAM; however, FiveAM development has continued, while
1409 that of Eos has not. Thus, Eos is now deprecated in favor of FiveAM.")
1410 (home-page "https://github.com/adlai/Eos")
1411 (license license:expat))))
1412
1413 (define-public cl-eos
1414 (sbcl-package->cl-source-package sbcl-eos))
1415
1416 (define-public ecl-eos
1417 (sbcl-package->ecl-package sbcl-eos))
1418
1419 (define-public sbcl-esrap
1420 (let ((commit "133be8b05c2aae48696fe5b739eea2fa573fa48d"))
1421 (package
1422 (name "sbcl-esrap")
1423 (version (git-version "0.0.0" "1" commit))
1424 (source
1425 (origin
1426 (method git-fetch)
1427 (uri (git-reference
1428 (url "https://github.com/nikodemus/esrap")
1429 (commit commit)))
1430 (sha256
1431 (base32
1432 "02d5clihsdryhf7pix8c5di2571fdsffh75d40fkzhws90r5mksl"))
1433 (file-name (git-file-name "esrap" version))))
1434 (build-system asdf-build-system/sbcl)
1435 (native-inputs
1436 `(("eos" ,sbcl-eos))) ;For testing only.
1437 (inputs
1438 `(("alexandria" ,sbcl-alexandria)))
1439 (synopsis "Common Lisp packrat parser")
1440 (description
1441 "A packrat parser for Common Lisp.
1442 In addition to regular Packrat / Parsing Grammar / TDPL features ESRAP supports:
1443
1444 @itemize
1445 @item dynamic redefinition of nonterminals
1446 @item inline grammars
1447 @item semantic predicates
1448 @item introspective facilities (describing grammars, tracing, setting breaks)
1449 @end itemize\n")
1450 (home-page "https://nikodemus.github.io/esrap/")
1451 (license license:expat))))
1452
1453 (define-public cl-esrap
1454 (sbcl-package->cl-source-package sbcl-esrap))
1455
1456 (define-public ecl-esrap
1457 (sbcl-package->ecl-package sbcl-esrap))
1458
1459 (define-public sbcl-split-sequence
1460 (package
1461 (name "sbcl-split-sequence")
1462 (version "2.0.0")
1463 (source
1464 (origin
1465 (method git-fetch)
1466 (uri (git-reference
1467 (url "https://github.com/sharplispers/split-sequence")
1468 (commit (string-append "v" version))))
1469 (sha256
1470 (base32
1471 "0jcpnx21hkfwqj5fvp7kc6pn1qcz9hk7g2s5x8h0349x1j2irln0"))
1472 (file-name (git-file-name "split-sequence" version))))
1473 (build-system asdf-build-system/sbcl)
1474 (native-inputs
1475 `(("fiveam" ,sbcl-fiveam)))
1476 (synopsis "Member of the Common Lisp Utilities family of programs")
1477 (description
1478 "Splits sequence into a list of subsequences delimited by objects
1479 satisfying the test.")
1480 (home-page "https://cliki.net/split-sequence")
1481 (license license:expat)))
1482
1483 (define-public cl-split-sequence
1484 (sbcl-package->cl-source-package sbcl-split-sequence))
1485
1486 (define-public ecl-split-sequence
1487 (sbcl-package->ecl-package sbcl-split-sequence))
1488
1489 (define-public sbcl-html-encode
1490 (package
1491 (name "sbcl-html-encode")
1492 (version "1.2")
1493 (source
1494 (origin
1495 (method url-fetch)
1496 (uri (string-append
1497 "http://beta.quicklisp.org/archive/html-encode/2010-10-06/html-encode-"
1498 version ".tgz"))
1499 (sha256
1500 (base32
1501 "06mf8wn95yf5swhmzk4vp0xr4ylfl33dgfknkabbkd8n6jns8gcf"))
1502 (file-name (string-append "colorize" version "-checkout"))))
1503 (build-system asdf-build-system/sbcl)
1504 (synopsis "Common Lisp library for encoding text in various web-savvy encodings")
1505 (description
1506 "A library for encoding text in various web-savvy encodings.")
1507 (home-page "http://quickdocs.org/html-encode/")
1508 (license license:expat)))
1509
1510 (define-public cl-html-encode
1511 (sbcl-package->cl-source-package sbcl-html-encode))
1512
1513 (define-public ecl-html-encode
1514 (sbcl-package->ecl-package sbcl-html-encode))
1515
1516 (define-public sbcl-colorize
1517 (let ((commit "ea676b584e0899cec82f21a9e6871172fe3c0eb5"))
1518 (package
1519 (name "sbcl-colorize")
1520 (version (git-version "0.0.0" "1" commit))
1521 (source
1522 (origin
1523 (method git-fetch)
1524 (uri (git-reference
1525 (url "https://github.com/kingcons/colorize")
1526 (commit commit)))
1527 (sha256
1528 (base32
1529 "1pdg4kiaczmr3ivffhirp7m3lbr1q27rn7dhaay0vwghmi31zcw9"))
1530 (file-name (git-file-name "colorize" version))))
1531 (build-system asdf-build-system/sbcl)
1532 (inputs
1533 `(("alexandria" ,sbcl-alexandria)
1534 ("split-sequence" ,sbcl-split-sequence)
1535 ("html-encode" ,sbcl-html-encode)))
1536 (synopsis "Common Lisp for syntax highlighting")
1537 (description
1538 "@command{colorize} is a Lisp library for syntax highlighting
1539 supporting the following languages: Common Lisp, Emacs Lisp, Scheme, Clojure,
1540 C, C++, Java, Python, Erlang, Haskell, Objective-C, Diff, Webkit.")
1541 (home-page "https://github.com/kingcons/colorize")
1542 ;; TODO: Missing license?
1543 (license license:expat))))
1544
1545 (define-public cl-colorize
1546 (sbcl-package->cl-source-package sbcl-colorize))
1547
1548 (define-public ecl-colorize
1549 (sbcl-package->ecl-package sbcl-colorize))
1550
1551 (define-public sbcl-3bmd
1552 (let ((commit "192ea13435b605a96ef607df51317056914cabbd"))
1553 (package
1554 (name "sbcl-3bmd")
1555 (version (git-version "0.0.0" "1" commit))
1556 (source
1557 (origin
1558 (method git-fetch)
1559 (uri (git-reference
1560 (url "https://github.com/3b/3bmd")
1561 (commit commit)))
1562 (sha256
1563 (base32
1564 "1rgv3gi7wf963ikmmpk132wgn0icddf226gq3bmcnk1fr3v9gf2f"))
1565 (file-name (git-file-name "3bmd" version))))
1566 (build-system asdf-build-system/sbcl)
1567 (arguments
1568 ;; FIXME: We need to specify the name because the build-system thinks
1569 ;; "3" is a version marker.
1570 `(#:asd-system-name "3bmd"))
1571 (inputs
1572 `(("esrap" ,sbcl-esrap)
1573 ("split-sequence" ,sbcl-split-sequence)))
1574 (synopsis "Markdown processor in Command Lisp using esrap parser")
1575 (description
1576 "Common Lisp Markdown -> HTML converter, using @command{esrap} for
1577 parsing, and grammar based on @command{peg-markdown}.")
1578 (home-page "https://github.com/3b/3bmd")
1579 (license license:expat))))
1580
1581 (define-public cl-3bmd
1582 (sbcl-package->cl-source-package sbcl-3bmd))
1583
1584 (define-public ecl-3bmd
1585 (sbcl-package->ecl-package sbcl-3bmd))
1586
1587 (define-public sbcl-3bmd-ext-code-blocks
1588 (let ((commit "192ea13435b605a96ef607df51317056914cabbd"))
1589 (package
1590 (inherit sbcl-3bmd)
1591 (name "sbcl-3bmd-ext-code-blocks")
1592 (arguments
1593 `(#:asd-system-name "3bmd-ext-code-blocks"
1594 #:asd-file "3bmd-ext-code-blocks.asd"))
1595 (inputs
1596 `(("3bmd" ,sbcl-3bmd)
1597 ("colorize" ,sbcl-colorize)))
1598 (synopsis "3bmd extension which adds support for GitHub-style fenced
1599 code blocks")
1600 (description
1601 "3bmd extension which adds support for GitHub-style fenced code blocks,
1602 with @command{colorize} support."))))
1603
1604 (define-public cl-3bmd-ext-code-blocks
1605 (sbcl-package->cl-source-package sbcl-3bmd-ext-code-blocks))
1606
1607 (define-public ecl-3bmd-ext-code-blocks
1608 (sbcl-package->ecl-package sbcl-3bmd-ext-code-blocks))
1609
1610 (define-public sbcl-cl-fad
1611 (package
1612 (name "sbcl-cl-fad")
1613 (version "0.7.6")
1614 (source
1615 (origin
1616 (method git-fetch)
1617 (uri (git-reference
1618 (url "https://github.com/edicl/cl-fad/")
1619 (commit (string-append "v" version))))
1620 (sha256
1621 (base32
1622 "1gc8i82v6gks7g0lnm54r4prk2mklidv2flm5fvbr0a7rsys0vpa"))
1623 (file-name (string-append "cl-fad" version "-checkout"))))
1624 (build-system asdf-build-system/sbcl)
1625 (inputs
1626 `(("bordeaux-threads" ,sbcl-bordeaux-threads)))
1627 (synopsis "Portable pathname library for Common Lisp")
1628 (description
1629 "CL-FAD (for \"Files and Directories\") is a thin layer atop Common
1630 Lisp's standard pathname functions. It is intended to provide some
1631 unification between current CL implementations on Windows, OS X, Linux, and
1632 Unix. Most of the code was written by Peter Seibel for his book Practical
1633 Common Lisp.")
1634 (home-page "https://edicl.github.io/cl-fad/")
1635 (license license:bsd-2)))
1636
1637 (define-public cl-fad
1638 (sbcl-package->cl-source-package sbcl-cl-fad))
1639
1640 (define-public ecl-cl-fad
1641 (sbcl-package->ecl-package sbcl-cl-fad))
1642
1643 (define-public sbcl-rt
1644 (let ((commit "a6a7503a0b47953bc7579c90f02a6dba1f6e4c5a")
1645 (revision "1"))
1646 (package
1647 (name "sbcl-rt")
1648 (version (git-version "1990.12.19" revision commit))
1649 (source
1650 (origin
1651 (method git-fetch)
1652 (uri (git-reference
1653 (url "http://git.kpe.io/rt.git")
1654 (commit commit)))
1655 (file-name (git-file-name name version))
1656 (sha256
1657 (base32 "13si2rrxaagbr0bkvg6sqicxxpyshabx6ad6byc9n2ik5ysna69b"))))
1658 (build-system asdf-build-system/sbcl)
1659 (synopsis "MIT Regression Tester")
1660 (description
1661 "RT provides a framework for writing regression test suites.")
1662 (home-page "https://www.cliki.net/rt")
1663 (license license:expat))))
1664
1665 (define-public cl-rt
1666 (sbcl-package->cl-source-package sbcl-rt))
1667
1668 (define-public ecl-rt
1669 (sbcl-package->ecl-package sbcl-rt))
1670
1671 (define-public sbcl-nibbles
1672 (package
1673 (name "sbcl-nibbles")
1674 (version "0.14")
1675 (source
1676 (origin
1677 (method git-fetch)
1678 (uri (git-reference
1679 (url "https://github.com/sharplispers/nibbles/")
1680 (commit (string-append "v" version))))
1681 (sha256
1682 (base32
1683 "1v7qfgpvdr6nz7v63dj69d26dis0kff3rd8xamr1llfdvza2pm8f"))
1684 (file-name (git-file-name "nibbles" version))))
1685 (build-system asdf-build-system/sbcl)
1686 (native-inputs
1687 ;; Tests only.
1688 `(("rt" ,sbcl-rt)))
1689 (synopsis "Common Lisp library for accessing octet-addressed blocks of data")
1690 (description
1691 "When dealing with network protocols and file formats, it's common to
1692 have to read or write 16-, 32-, or 64-bit datatypes in signed or unsigned
1693 flavors. Common Lisp sort of supports this by specifying :element-type for
1694 streams, but that facility is underspecified and there's nothing similar for
1695 read/write from octet vectors. What most people wind up doing is rolling their
1696 own small facility for their particular needs and calling it a day.
1697
1698 This library attempts to be comprehensive and centralize such
1699 facilities. Functions to read 16-, 32-, and 64-bit quantities from octet
1700 vectors in signed or unsigned flavors are provided; these functions are also
1701 SETFable. Since it's sometimes desirable to read/write directly from streams,
1702 functions for doing so are also provided. On some implementations,
1703 reading/writing IEEE singles/doubles (i.e. single-float and double-float) will
1704 also be supported.")
1705 (home-page "https://github.com/sharplispers/nibbles")
1706 (license license:bsd-3)))
1707
1708 (define-public cl-nibbles
1709 (sbcl-package->cl-source-package sbcl-nibbles))
1710
1711 (define-public ecl-nibbles
1712 (sbcl-package->ecl-package sbcl-nibbles))
1713
1714 (define-public sbcl-ironclad
1715 (package
1716 (name "sbcl-ironclad")
1717 (version "0.49")
1718 (source
1719 (origin
1720 (method git-fetch)
1721 (uri (git-reference
1722 (url "https://github.com/sharplispers/ironclad/")
1723 (commit (string-append "v" version))))
1724 (sha256
1725 (base32 "0kbzqg2aasrhjwy3nrzy2ddy809n1j045w4qkyc3r2syqd203d4q"))
1726 (file-name (git-file-name name version))))
1727 (build-system asdf-build-system/sbcl)
1728 (native-inputs
1729 ;; Tests only.
1730 `(("rt" ,sbcl-rt)))
1731 (inputs
1732 `(("bordeaux-threads" ,sbcl-bordeaux-threads)
1733 ("flexi-streams" ,sbcl-flexi-streams)
1734 ("trivial-garbage" ,sbcl-trivial-garbage)))
1735 (synopsis "Cryptographic toolkit written in Common Lisp")
1736 (description
1737 "Ironclad is a cryptography library written entirely in Common Lisp.
1738 It includes support for several popular ciphers, digests, MACs and public key
1739 cryptography algorithms. For several implementations that support Gray
1740 streams, support is included for convenient stream wrappers.")
1741 (home-page "https://github.com/sharplispers/ironclad")
1742 (license license:bsd-3)))
1743
1744 (define-public cl-ironclad
1745 (sbcl-package->cl-source-package sbcl-ironclad))
1746
1747 (define-public ecl-ironclad
1748 (sbcl-package->ecl-package sbcl-ironclad))
1749
1750 (define-public sbcl-named-readtables
1751 (let ((commit "64bd53f37a1694cfde48fc38b8f03901f6f0c05b")
1752 (revision "2"))
1753 (package
1754 (name "sbcl-named-readtables")
1755 (version (git-version "0.9" revision commit))
1756 (source
1757 (origin
1758 (method git-fetch)
1759 (uri (git-reference
1760 (url "https://github.com/melisgl/named-readtables.git")
1761 (commit commit)))
1762 (sha256
1763 (base32 "01l4831m7k84qvhzyx0qgdl50isr4zmp40qf6dfq2iqcaj8y4h3n"))
1764 (file-name (git-file-name "named-readtables" version))))
1765 (build-system asdf-build-system/sbcl)
1766 (arguments
1767 ;; Tests seem to be broken.
1768 `(#:tests? #f))
1769 (home-page "https://github.com/melisgl/named-readtables/")
1770 (synopsis "Library that creates a namespace for named readtables")
1771 (description "Named readtables is a library that creates a namespace for
1772 named readtables, which is akin to package namespacing in Common Lisp.")
1773 (license license:bsd-3))))
1774
1775 (define-public cl-named-readtables
1776 (sbcl-package->cl-source-package sbcl-named-readtables))
1777
1778 (define-public ecl-named-readtables
1779 (sbcl-package->ecl-package sbcl-named-readtables))
1780
1781 (define-public sbcl-pythonic-string-reader
1782 (let ((commit "47a70ba1e32362e03dad6ef8e6f36180b560f86a"))
1783 (package
1784 (name "sbcl-pythonic-string-reader")
1785 (version (git-version "0.0.0" "1" commit))
1786 (source
1787 (origin
1788 (method git-fetch)
1789 (uri (git-reference
1790 (url "https://github.com/smithzvk/pythonic-string-reader/")
1791 (commit commit)))
1792 (sha256
1793 (base32 "1b5iryqw8xsh36swckmz8rrngmc39k92si33fgy5pml3n9l5rq3j"))
1794 (file-name (git-file-name "pythonic-string-reader" version))))
1795 (build-system asdf-build-system/sbcl)
1796 (inputs
1797 `(("named-readtables" ,sbcl-named-readtables)))
1798 (home-page "https://github.com/smithzvk/pythonic-string-reader")
1799 (synopsis "Read table modification inspired by Python's three quote strings")
1800 (description "This piece of code sets up some reader macros that make it
1801 simpler to input string literals which contain backslashes and double quotes
1802 This is very useful for writing complicated docstrings and, as it turns out,
1803 writing code that contains string literals that contain code themselves.")
1804 (license license:bsd-3))))
1805
1806 (define-public cl-pythonic-string-reader
1807 (sbcl-package->cl-source-package sbcl-pythonic-string-reader))
1808
1809 (define-public ecl-pythonic-string-reader
1810 (sbcl-package->ecl-package sbcl-pythonic-string-reader))
1811
1812 ;; SLIME does not have a ASDF system definition to build all of Swank. As a
1813 ;; result, the asdf-build-system/sbcl will produce an almost empty package.
1814 ;; Some work was done to fix this at
1815 ;; https://github.com/sionescu/slime/tree/swank-asdf but it was never merged
1816 ;; and is now lagging behind. Building SBCL fasls might not be worth the
1817 ;; hassle, so let's just ship the source then.
1818 (define-public cl-slime-swank
1819 (package
1820 (name "cl-slime-swank")
1821 (version "2.24")
1822 (source
1823 (origin
1824 (file-name (string-append name "-" version ".tar.gz"))
1825 (method git-fetch)
1826 (uri (git-reference
1827 (url "https://github.com/slime/slime/")
1828 (commit (string-append "v" version))))
1829 (sha256
1830 (base32
1831 "0js24x42m7b5iymb4rxz501dff19vav5pywnzv50b673rbkaaqvh"))))
1832 (build-system asdf-build-system/source)
1833 (home-page "https://github.com/slime/slime")
1834 (synopsis "Common Lisp Swank server")
1835 (description
1836 "This is only useful if you want to start a Swank server in a Lisp
1837 processes that doesn't run under Emacs. Lisp processes created by
1838 @command{M-x slime} automatically start the server.")
1839 (license (list license:gpl2+ license:public-domain))))
1840
1841 (define-public sbcl-slime-swank
1842 (deprecated-package "sbcl-slime-swank" cl-slime-swank))
1843
1844 (define-public sbcl-mgl-pax
1845 (let ((commit "818448418d6b9de74620f606f5b23033c6082769"))
1846 (package
1847 (name "sbcl-mgl-pax")
1848 (version (git-version "0.0.0" "1" commit))
1849 (source
1850 (origin
1851 (method git-fetch)
1852 (uri (git-reference
1853 (url "https://github.com/melisgl/mgl-pax")
1854 (commit commit)))
1855 (sha256
1856 (base32
1857 "1p97zfkh130bdxqqxwaw2j9psv58751wakx7czbfpq410lg7dd7i"))
1858 (file-name (git-file-name "mgl-pax" version))))
1859 (build-system asdf-build-system/sbcl)
1860 (inputs
1861 `(("3bmd" ,sbcl-3bmd)
1862 ("3bmd-ext-code-blocks" ,sbcl-3bmd-ext-code-blocks)
1863 ("babel" ,sbcl-babel)
1864 ("cl-fad" ,sbcl-cl-fad)
1865 ("ironclad" ,sbcl-ironclad)
1866 ("named-readtables" ,sbcl-named-readtables)
1867 ("pythonic-string-reader" ,sbcl-pythonic-string-reader)))
1868 (propagated-inputs
1869 ;; Packages having mgl-pax as input complain that it can't find
1870 ;; swank if we put it in inputs, so let's put it in propageted-inputs.
1871 `(("swank" ,cl-slime-swank)))
1872 (synopsis "Exploratory programming environment and documentation generator")
1873 (description
1874 "PAX provides an extremely poor man's Explorable Programming
1875 environment. Narrative primarily lives in so called sections that mix markdown
1876 docstrings with references to functions, variables, etc, all of which should
1877 probably have their own docstrings.
1878
1879 The primary focus is on making code easily explorable by using SLIME's
1880 @command{M-.} (@command{slime-edit-definition}). See how to enable some
1881 fanciness in Emacs Integration. Generating documentation from sections and all
1882 the referenced items in Markdown or HTML format is also implemented.
1883
1884 With the simplistic tools provided, one may accomplish similar effects as with
1885 Literate Programming, but documentation is generated from code, not vice versa
1886 and there is no support for chunking yet. Code is first, code must look
1887 pretty, documentation is code.")
1888 (home-page "http://quotenil.com/")
1889 (license license:expat))))
1890
1891 (define-public cl-mgl-pax
1892 (sbcl-package->cl-source-package sbcl-mgl-pax))
1893
1894 (define-public ecl-mgl-pax
1895 (sbcl-package->ecl-package sbcl-mgl-pax))
1896
1897 (define-public sbcl-lisp-unit
1898 (let ((commit "89653a232626b67400bf9a941f9b367da38d3815"))
1899 (package
1900 (name "sbcl-lisp-unit")
1901 (version (git-version "0.0.0" "1" commit))
1902 (source
1903 (origin
1904 (method git-fetch)
1905 (uri (git-reference
1906 (url "https://github.com/OdonataResearchLLC/lisp-unit")
1907 (commit commit)))
1908 (sha256
1909 (base32
1910 "0p6gdmgr7p383nvd66c9y9fp2bjk4jx1lpa5p09g43hr9y9pp9ry"))
1911 (file-name (git-file-name "lisp-unit" version))))
1912 (build-system asdf-build-system/sbcl)
1913 (synopsis "Common Lisp Test framework inspired by JUnit to be simple of use")
1914 (description
1915 "@command{lisp-unit} is a Common Lisp library that supports unit
1916 testing. It is an extension of the library written by Chris Riesbeck.")
1917 (home-page "https://github.com/OdonataResearchLLC/lisp-unit")
1918 (license license:expat))))
1919
1920 (define-public cl-lisp-unit
1921 (sbcl-package->cl-source-package sbcl-lisp-unit))
1922
1923 (define-public ecl-lisp-unit
1924 (sbcl-package->ecl-package sbcl-lisp-unit))
1925
1926 (define-public sbcl-anaphora
1927 (package
1928 (name "sbcl-anaphora")
1929 (version "0.9.6")
1930 (source
1931 (origin
1932 (method git-fetch)
1933 (uri (git-reference
1934 (url "https://github.com/tokenrove/anaphora")
1935 (commit version)))
1936 (sha256
1937 (base32
1938 "19wfrk3asimznkli0x2rfy637hwpdgqyvwj3vhq9x7vjvyf5vv6x"))
1939 (file-name (git-file-name "anaphora" version))))
1940 (build-system asdf-build-system/sbcl)
1941 (native-inputs
1942 `(("rt" ,sbcl-rt)))
1943 (synopsis "The anaphoric macro collection from Hell")
1944 (description
1945 "Anaphora is the anaphoric macro collection from Hell: it includes many
1946 new fiends in addition to old friends like @command{aif} and
1947 @command{awhen}.")
1948 (home-page "https://github.com/tokenrove/anaphora")
1949 (license license:public-domain)))
1950
1951 (define-public cl-anaphora
1952 (sbcl-package->cl-source-package sbcl-anaphora))
1953
1954 (define-public ecl-anaphora
1955 (sbcl-package->ecl-package sbcl-anaphora))
1956
1957 (define-public sbcl-lift
1958 (let ((commit "7d49a66c62759535624037826891152223d4206c"))
1959 (package
1960 (name "sbcl-lift")
1961 (version (git-version "1.7.1" "1" commit))
1962 (source
1963 (origin
1964 (method git-fetch)
1965 (uri (git-reference
1966 (url "https://github.com/gwkkwg/lift")
1967 (commit commit)))
1968 (sha256
1969 (base32
1970 "127v5avpz1i4m0lkaxqrq8hrl69rdazqaxf6s8awf0nd7wj2g4dp"))
1971 (file-name (git-file-name "lift" version))
1972 (modules '((guix build utils)))
1973 (snippet
1974 ;; Don't keep the bundled website
1975 `(begin
1976 (delete-file-recursively "website")
1977 #t))))
1978 (build-system asdf-build-system/sbcl)
1979 (arguments
1980 ;; The tests require a debugger, but we run with the debugger disabled.
1981 '(#:tests? #f))
1982 (synopsis "LIsp Framework for Testing")
1983 (description
1984 "The LIsp Framework for Testing (LIFT) is a unit and system test tool for LISP.
1985 Though inspired by SUnit and JUnit, it's built with Lisp in mind. In LIFT,
1986 testcases are organized into hierarchical testsuites each of which can have
1987 its own fixture. When run, a testcase can succeed, fail, or error. LIFT
1988 supports randomized testing, benchmarking, profiling, and reporting.")
1989 (home-page "https://github.com/gwkkwg/lift")
1990 (license license:expat))))
1991
1992 (define-public cl-lift
1993 (sbcl-package->cl-source-package sbcl-lift))
1994
1995 (define-public ecl-lift
1996 (sbcl-package->ecl-package sbcl-lift))
1997
1998 (define-public sbcl-let-plus
1999 (let ((commit "5f14af61d501ecead02ec6b5a5c810efc0c9fdbb"))
2000 (package
2001 (name "sbcl-let-plus")
2002 (version (git-version "0.0.0" "1" commit))
2003 (source
2004 (origin
2005 (method git-fetch)
2006 (uri (git-reference
2007 (url "https://github.com/sharplispers/let-plus")
2008 (commit commit)))
2009 (sha256
2010 (base32
2011 "0i050ca2iys9f5mb7dgqgqdxfnc3b0rnjdwv95sqd490vkiwrsaj"))
2012 (file-name (git-file-name "let-plus" version))))
2013 (build-system asdf-build-system/sbcl)
2014 (inputs
2015 `(("alexandria" ,sbcl-alexandria)
2016 ("anaphora" ,sbcl-anaphora)))
2017 (native-inputs
2018 `(("lift" ,sbcl-lift)))
2019 (synopsis "Destructuring extension of let*")
2020 (description
2021 "This library implements the let+ macro, which is a dectructuring
2022 extension of let*. It features:
2023
2024 @itemize
2025 @item Clean, consistent syntax and small implementation (less than 300 LOC,
2026 not counting tests)
2027 @item Placeholder macros allow editor hints and syntax highlighting
2028 @item @command{&ign} for ignored values (in forms where that makes sense)
2029 @item Very easy to extend
2030 @end itemize\n")
2031 (home-page "https://github.com/sharplispers/let-plus")
2032 (license license:boost1.0))))
2033
2034 (define-public cl-let-plus
2035 (sbcl-package->cl-source-package sbcl-let-plus))
2036
2037 (define-public ecl-let-plus
2038 (sbcl-package->ecl-package sbcl-let-plus))
2039
2040 (define-public sbcl-cl-colors
2041 (let ((commit "827410584553f5c717eec6182343b7605f707f75"))
2042 (package
2043 (name "sbcl-cl-colors")
2044 (version (git-version "0.0.0" "1" commit))
2045 (source
2046 (origin
2047 (method git-fetch)
2048 (uri (git-reference
2049 (url "https://github.com/tpapp/cl-colors")
2050 (commit commit)))
2051 (sha256
2052 (base32
2053 "0l446lday4hybsm9bq3jli97fvv8jb1d33abg79vbylpwjmf3y9a"))
2054 (file-name (git-file-name "cl-colors" version))))
2055 (build-system asdf-build-system/sbcl)
2056 (inputs
2057 `(("alexandria" ,sbcl-alexandria)
2058 ("let-plus" ,sbcl-let-plus)))
2059 (synopsis "Simple color library for Common Lisp")
2060 (description
2061 "This is a very simple color library for Common Lisp, providing
2062
2063 @itemize
2064 @item Types for representing colors in HSV and RGB spaces.
2065 @item Simple conversion functions between the above types (and also
2066 hexadecimal representation for RGB).
2067 @item Some predefined colors (currently X11 color names – of course the
2068 library does not depend on X11).Because color in your terminal is nice.
2069 @end itemize
2070
2071 This library is no longer supported by its author.")
2072 (home-page "https://github.com/tpapp/cl-colors")
2073 (license license:boost1.0))))
2074
2075 (define-public cl-colors
2076 (sbcl-package->cl-source-package sbcl-cl-colors))
2077
2078 (define-public ecl-cl-colors
2079 (sbcl-package->ecl-package sbcl-cl-colors))
2080
2081 (define-public sbcl-cl-ansi-text
2082 (let ((commit "53badf7878f27f22f2d4a2a43e6df458e43acbe9"))
2083 (package
2084 (name "sbcl-cl-ansi-text")
2085 (version (git-version "1.0.0" "1" commit))
2086 (source
2087 (origin
2088 (method git-fetch)
2089 (uri (git-reference
2090 (url "https://github.com/pnathan/cl-ansi-text")
2091 (commit commit)))
2092 (sha256
2093 (base32
2094 "11i27n0dbz5lmygiw65zzr8lx0rac6b6yysqranphn31wls6ja3v"))
2095 (file-name (git-file-name "cl-ansi-text" version))))
2096 (build-system asdf-build-system/sbcl)
2097 (inputs
2098 `(("alexandria" ,sbcl-alexandria)
2099 ("cl-colors" ,sbcl-cl-colors)))
2100 (native-inputs
2101 `(("fiveam" ,sbcl-fiveam)))
2102 (synopsis "ANSI terminal color implementation for Common Lisp")
2103 (description
2104 "@command{cl-ansi-text} provides utilities which enable printing to an
2105 ANSI terminal with colored text. It provides the macro @command{with-color}
2106 which causes everything printed in the body to be displayed with the provided
2107 color. It further provides functions which will print the argument with the
2108 named color.")
2109 (home-page "https://github.com/pnathan/cl-ansi-text")
2110 (license license:llgpl))))
2111
2112 (define-public cl-ansi-text
2113 (sbcl-package->cl-source-package sbcl-cl-ansi-text))
2114
2115 (define-public ecl-cl-ansi-text
2116 (sbcl-package->ecl-package sbcl-cl-ansi-text))
2117
2118 (define-public sbcl-prove-asdf
2119 (let ((commit "4f9122bd393e63c5c70c1fba23070622317cfaa0"))
2120 (package
2121 (name "sbcl-prove-asdf")
2122 (version (git-version "1.0.0" "1" commit))
2123 (source
2124 (origin
2125 (method git-fetch)
2126 (uri (git-reference
2127 (url "https://github.com/fukamachi/prove")
2128 (commit commit)))
2129 (sha256
2130 (base32
2131 "07sbfw459z8bbjvx1qlmfa8qk2mvbjnnzi2mi0x72blaj8bkl4vc"))
2132 (file-name (git-file-name "prove" version))))
2133 (build-system asdf-build-system/sbcl)
2134 (arguments
2135 `(#:asd-file "prove-asdf.asd"))
2136 (synopsis "Test requirement for the Common Lisp 'prove' library")
2137 (description
2138 "Test requirement for the Common Lisp @command{prove} library.")
2139 (home-page "https://github.com/fukamachi/prove")
2140 (license license:expat))))
2141
2142 (define-public cl-prove-asdf
2143 (sbcl-package->cl-source-package sbcl-prove-asdf))
2144
2145 (define-public ecl-prove-asdf
2146 (sbcl-package->ecl-package sbcl-prove-asdf))
2147
2148 (define-public sbcl-prove
2149 (package
2150 (inherit sbcl-prove-asdf)
2151 (name "sbcl-prove")
2152 (inputs
2153 `(("alexandria" ,sbcl-alexandria)
2154 ("cl-ppcre" ,sbcl-cl-ppcre)
2155 ("cl-ansi-text" ,sbcl-cl-ansi-text)))
2156 (native-inputs
2157 `(("prove-asdf" ,sbcl-prove-asdf)))
2158 (arguments
2159 `(#:asd-file "prove.asd"))
2160 (synopsis "Yet another unit testing framework for Common Lisp")
2161 (description
2162 "This project was originally called @command{cl-test-more}.
2163 @command{prove} is yet another unit testing framework for Common Lisp. The
2164 advantages of @command{prove} are:
2165
2166 @itemize
2167 @item Various simple functions for testing and informative error messages
2168 @item ASDF integration
2169 @item Extensible test reporters
2170 @item Colorizes the report if it's available (note for SLIME)
2171 @item Reports test durations
2172 @end itemize\n")))
2173
2174 (define-public cl-prove
2175 (sbcl-package->cl-source-package sbcl-prove))
2176
2177 (define-public ecl-prove
2178 (sbcl-package->ecl-package sbcl-prove))
2179
2180 (define-public sbcl-proc-parse
2181 (let ((commit "ac3636834d561bdc2686c956dbd82494537285fd"))
2182 (package
2183 (name "sbcl-proc-parse")
2184 (version (git-version "0.0.0" "1" commit))
2185 (source
2186 (origin
2187 (method git-fetch)
2188 (uri (git-reference
2189 (url "https://github.com/fukamachi/proc-parse")
2190 (commit commit)))
2191 (sha256
2192 (base32
2193 "06rnl0h4cx6xv2wj3jczmmcxqn2703inmmvg1s4npbghmijsybfh"))
2194 (file-name (git-file-name "proc-parse" version))))
2195 (build-system asdf-build-system/sbcl)
2196 (inputs
2197 `(("alexandria" ,sbcl-alexandria)
2198 ("babel" ,sbcl-babel)))
2199 (native-inputs
2200 `(("prove" ,sbcl-prove)
2201 ("prove-asdf" ,sbcl-prove-asdf)))
2202 (arguments
2203 ;; TODO: Tests don't find "proc-parse-test", why?
2204 `(#:tests? #f))
2205 (synopsis "Procedural vector parser")
2206 (description
2207 "This is a string/octets parser library for Common Lisp with speed and
2208 readability in mind. Unlike other libraries, the code is not a
2209 pattern-matching-like, but a char-by-char procedural parser.")
2210 (home-page "https://github.com/fukamachi/proc-parse")
2211 (license license:bsd-2))))
2212
2213 (define-public cl-proc-parse
2214 (sbcl-package->cl-source-package sbcl-proc-parse))
2215
2216 (define-public ecl-proc-parse
2217 (sbcl-package->ecl-package sbcl-proc-parse))
2218
2219 (define-public sbcl-parse-float
2220 (let ((commit "2aae569f2a4b2eb3bfb5401a959425dcf151b09c"))
2221 (package
2222 (name "sbcl-parse-float")
2223 (version (git-version "0.0.0" "1" commit))
2224 (source
2225 (origin
2226 (method git-fetch)
2227 (uri (git-reference
2228 (url "https://github.com/soemraws/parse-float")
2229 (commit commit)))
2230 (sha256
2231 (base32
2232 "08xw8cchhmqcc0byng69m3f5a2izc9y2290jzz2k0qrbibp1fdk7"))
2233 (file-name (git-file-name "proc-parse" version))))
2234 (build-system asdf-build-system/sbcl)
2235 (inputs
2236 `(("alexandria" ,sbcl-alexandria)
2237 ("babel" ,sbcl-babel)))
2238 (native-inputs
2239 `(("prove" ,sbcl-prove)
2240 ("prove-asdf" ,sbcl-prove-asdf)))
2241 (arguments
2242 ;; TODO: Tests don't find "proc-parse-test", why?
2243 `(#:tests? #f))
2244 (synopsis "Parse a floating point value from a string in Common Lisp")
2245 (description
2246 "This package exports the following function to parse floating-point
2247 values from a string in Common Lisp.")
2248 (home-page "https://github.com/soemraws/parse-float")
2249 (license license:public-domain))))
2250
2251 (define-public cl-parse-float
2252 (sbcl-package->cl-source-package sbcl-parse-float))
2253
2254 (define-public ecl-parse-float
2255 (sbcl-package->ecl-package sbcl-parse-float))
2256
2257 (define-public sbcl-ascii-strings
2258 (let ((revision "1")
2259 (changeset "5048480a61243e6f1b02884012c8f25cdbee6d97"))
2260 (package
2261 (name "sbcl-ascii-strings")
2262 (version (string-append "0-" revision "." (string-take changeset 7)))
2263 (source
2264 (origin
2265 (method hg-fetch)
2266 (uri (hg-reference
2267 (url "https://bitbucket.org/vityok/cl-string-match/")
2268 (changeset changeset)))
2269 (sha256
2270 (base32
2271 "01wn5qx562w43ssy92xlfgv79w7p0nv0wbl76mpmba131n9ziq2y"))
2272 (file-name (git-file-name "cl-string-match" version))))
2273 (build-system asdf-build-system/sbcl)
2274 (inputs
2275 `(("alexandria" ,sbcl-alexandria)
2276 ("babel" ,sbcl-babel)))
2277 (arguments
2278 `(#:asd-file "ascii-strings.asd"))
2279 (synopsis "Operations on ASCII strings")
2280 (description
2281 "Operations on ASCII strings. Essentially this can be any kind of
2282 single-byte encoded strings.")
2283 (home-page "https://bitbucket.org/vityok/cl-string-match/")
2284 (license license:bsd-3))))
2285
2286 (define-public cl-ascii-strings
2287 (sbcl-package->cl-source-package sbcl-ascii-strings))
2288
2289 (define-public ecl-ascii-strings
2290 (sbcl-package->ecl-package sbcl-ascii-strings))
2291
2292 (define-public sbcl-simple-scanf
2293 (package
2294 (inherit sbcl-ascii-strings)
2295 (name "sbcl-simple-scanf")
2296 (inputs
2297 `(("alexandria" ,sbcl-alexandria)
2298 ("iterate" ,sbcl-iterate)
2299 ("proc-parse" ,sbcl-proc-parse)
2300 ("parse-float" ,sbcl-parse-float)))
2301 (arguments
2302 `(#:asd-file "simple-scanf.asd"))
2303 (synopsis "Simple scanf-like functionality implementation")
2304 (description
2305 "A simple scanf-like functionality implementation.")))
2306
2307 (define-public cl-simple-scanf
2308 (sbcl-package->cl-source-package sbcl-simple-scanf))
2309
2310 (define-public ecl-simple-scanf
2311 (sbcl-package->ecl-package sbcl-simple-scanf))
2312
2313 (define-public sbcl-cl-string-match
2314 (package
2315 (inherit sbcl-ascii-strings)
2316 (name "sbcl-cl-string-match")
2317 (inputs
2318 `(("alexandria" ,sbcl-alexandria)
2319 ("ascii-strings" ,sbcl-ascii-strings)
2320 ("yacc" ,sbcl-cl-yacc)
2321 ("jpl-util" ,sbcl-jpl-util)
2322 ("jpl-queues" ,sbcl-jpl-queues)
2323 ("mgl-pax" ,sbcl-mgl-pax)
2324 ("iterate" ,sbcl-iterate)))
2325 ;; TODO: Tests are not evaluated properly.
2326 (native-inputs
2327 ;; For testing:
2328 `(("lisp-unit" ,sbcl-lisp-unit)
2329 ("simple-scanf" ,sbcl-simple-scanf)))
2330 (arguments
2331 `(#:tests? #f
2332 #:asd-file "cl-string-match.asd"))
2333 (synopsis "Portable, dependency-free set of utilities to manipulate strings in Common Lisp")
2334 (description
2335 "@command{cl-strings} is a small, portable, dependency-free set of
2336 utilities that make it even easier to manipulate text in Common Lisp. It has
2337 100% test coverage and works at least on sbcl, ecl, ccl, abcl and clisp.")))
2338
2339 (define-public cl-string-match
2340 (sbcl-package->cl-source-package sbcl-cl-string-match))
2341
2342 (define-public ecl-cl-string-match
2343 (sbcl-package->ecl-package sbcl-cl-string-match))
2344
2345 (define-public sbcl-ptester
2346 (let ((commit "fe69fde54f4bce00ce577feb918796c293fc7253")
2347 (revision "1"))
2348 (package
2349 (name "sbcl-ptester")
2350 (version (git-version "2.1.3" revision commit))
2351 (source
2352 (origin
2353 (method git-fetch)
2354 (uri (git-reference
2355 (url "http://git.kpe.io/ptester.git")
2356 (commit commit)))
2357 (file-name (git-file-name name version))
2358 (sha256
2359 (base32 "1l0lfl7cdnr2qf4zh38hi4llxg22c49zkm639bdkmvlkzwj3ndwf"))))
2360 (build-system asdf-build-system/sbcl)
2361 (home-page "http://quickdocs.org/ptester/")
2362 (synopsis "Portable test harness package")
2363 (description
2364 "@command{ptester} is a portable testing framework based on Franz's
2365 tester module.")
2366 (license license:llgpl))))
2367
2368 (define-public cl-ptester
2369 (sbcl-package->cl-source-package sbcl-ptester))
2370
2371 (define-public ecl-ptester
2372 (sbcl-package->ecl-package sbcl-ptester))
2373
2374 (define-public sbcl-puri
2375 (let ((commit "ef5afb9e5286c8e952d4344f019c1a636a717b97")
2376 (revision "1"))
2377 (package
2378 (name "sbcl-puri")
2379 (version (git-version "1.5.7" revision commit))
2380 (source
2381 (origin
2382 (method git-fetch)
2383 (uri (git-reference
2384 (url "http://git.kpe.io/puri.git")
2385 (commit commit)))
2386 (file-name (git-file-name name version))
2387 (sha256
2388 (base32 "1vm25pdl92laj72p5vyd538kf3cjy2655z6bdc99h20ana2p231s"))))
2389 (build-system asdf-build-system/sbcl)
2390 (native-inputs
2391 `(("ptester" ,sbcl-ptester)))
2392 (home-page "http://quickdocs.org/puri/")
2393 (synopsis "Portable URI Library")
2394 (description
2395 "This is a portable Universal Resource Identifier library for Common
2396 Lisp programs. It parses URI according to the RFC 2396 specification.")
2397 (license license:llgpl))))
2398
2399 (define-public cl-puri
2400 (sbcl-package->cl-source-package sbcl-puri))
2401
2402 (define-public ecl-puri
2403 (sbcl-package->ecl-package sbcl-puri))
2404
2405 (define-public sbcl-queues
2406 (let ((commit "47d4da65e9ea20953b74aeeab7e89a831b66bc94"))
2407 (package
2408 (name "sbcl-queues")
2409 (version (git-version "0.0.0" "1" commit))
2410 (source
2411 (origin
2412 (method git-fetch)
2413 (uri (git-reference
2414 (url "https://github.com/oconnore/queues")
2415 (commit commit)))
2416 (file-name (git-file-name "queues" version))
2417 (sha256
2418 (base32
2419 "0wdhfnzi4v6d97pggzj2aw55si94w4327br94jrmyvwf351wqjvv"))))
2420 (build-system asdf-build-system/sbcl)
2421 (home-page "https://github.com/oconnore/queues")
2422 (synopsis "Common Lisp queue library")
2423 (description
2424 "This is a simple queue library for Common Lisp with features such as
2425 non-consing thread safe queues and fibonacci priority queues.")
2426 (license license:expat))))
2427
2428 (define-public cl-queues
2429 (sbcl-package->cl-source-package sbcl-queues))
2430
2431 (define-public ecl-queues
2432 (sbcl-package->ecl-package sbcl-queues))
2433
2434 (define-public sbcl-queues.simple-queue
2435 (package
2436 (inherit sbcl-queues)
2437 (name "sbcl-queues.simple-queue")
2438 (inputs
2439 `(("sbcl-queues" ,sbcl-queues)))
2440 (arguments
2441 `(#:asd-file "queues.simple-queue.asd"))
2442 (synopsis "Simple queue implementation")
2443 (description
2444 "This is a simple queue library for Common Lisp with features such as
2445 non-consing thread safe queues and fibonacci priority queues.")
2446 (license license:expat)))
2447
2448 (define-public cl-queues.simple-queue
2449 (sbcl-package->cl-source-package sbcl-queues.simple-queue))
2450
2451 (define-public ecl-queues.simple-queue
2452 (sbcl-package->ecl-package sbcl-queues.simple-queue))
2453
2454 (define-public sbcl-queues.simple-cqueue
2455 (package
2456 (inherit sbcl-queues)
2457 (name "sbcl-queues.simple-cqueue")
2458 (inputs
2459 `(("sbcl-queues" ,sbcl-queues)
2460 ("sbcl-queues.simple-queue" ,sbcl-queues.simple-queue)
2461 ("bordeaux-threads" ,sbcl-bordeaux-threads)))
2462 (arguments
2463 `(#:asd-file "queues.simple-cqueue.asd"))
2464 (synopsis "Thread safe queue implementation")
2465 (description
2466 "This is a simple queue library for Common Lisp with features such as
2467 non-consing thread safe queues and fibonacci priority queues.")
2468 (license license:expat)))
2469
2470 (define-public cl-queues.simple-cqueue
2471 (sbcl-package->cl-source-package sbcl-queues.simple-cqueue))
2472
2473 (define-public ecl-queues.simple-cqueue
2474 (sbcl-package->ecl-package sbcl-queues.simple-cqueue))
2475
2476 (define-public sbcl-queues.priority-queue
2477 (package
2478 (inherit sbcl-queues)
2479 (name "sbcl-queues.priority-queue")
2480 (inputs
2481 `(("sbcl-queues" ,sbcl-queues)))
2482 (arguments
2483 `(#:asd-file "queues.priority-queue.asd"))
2484 (synopsis "Priority queue (Fibonacci) implementation")
2485 (description
2486 "This is a simple queue library for Common Lisp with features such as
2487 non-consing thread safe queues and fibonacci priority queues.")
2488 (license license:expat)))
2489
2490 (define-public cl-queues.priority-queue
2491 (sbcl-package->cl-source-package sbcl-queues.priority-queue))
2492
2493 (define-public ecl-queues.priority-queue
2494 (sbcl-package->ecl-package sbcl-queues.priority-queue))
2495
2496 (define-public sbcl-queues.priority-cqueue
2497 (package
2498 (inherit sbcl-queues)
2499 (name "sbcl-queues.priority-cqueue")
2500 (inputs
2501 `(("sbcl-queues" ,sbcl-queues)
2502 ("sbcl-queues.priority-queue" ,sbcl-queues.priority-queue)
2503 ("bordeaux-threads" ,sbcl-bordeaux-threads)))
2504 (arguments
2505 `(#:asd-file "queues.priority-cqueue.asd"))
2506 (synopsis "Thread safe fibonacci priority queue implementation")
2507 (description
2508 "This is a simple queue library for Common Lisp with features such as
2509 non-consing thread safe queues and fibonacci priority queues.")
2510 (license license:expat)))
2511
2512 (define-public cl-queues.priority-cqueue
2513 (sbcl-package->cl-source-package sbcl-queues.priority-cqueue))
2514
2515 (define-public ecl-queues.priority-cqueue
2516 (sbcl-package->ecl-package sbcl-queues.priority-cqueue))
2517
2518 (define sbcl-cffi-bootstrap
2519 (package
2520 (name "sbcl-cffi-bootstrap")
2521 (version "0.21.0")
2522 (source
2523 (origin
2524 (method git-fetch)
2525 (uri (git-reference
2526 (url "https://github.com/cffi/cffi.git")
2527 (commit (string-append "v" version))))
2528 (file-name (git-file-name "cffi-bootstrap" version))
2529 (sha256
2530 (base32 "1qalargz9bhp850qv60ffwpdqi4xirzar4l3g6qcg8yc6xqf2cjk"))))
2531 (build-system asdf-build-system/sbcl)
2532 (inputs
2533 `(("libffi" ,libffi)
2534 ("alexandria" ,sbcl-alexandria)
2535 ("babel" ,sbcl-babel)
2536 ("trivial-features" ,sbcl-trivial-features)))
2537 (native-inputs
2538 `(("pkg-config" ,pkg-config)))
2539 (arguments
2540 '(#:phases
2541 (modify-phases %standard-phases
2542 (add-after 'unpack 'fix-paths
2543 (lambda* (#:key inputs #:allow-other-keys)
2544 (substitute* "libffi/libffi.lisp"
2545 (("libffi.so.6" all) (string-append
2546 (assoc-ref inputs "libffi")
2547 "/lib/" all)))
2548 (substitute* "toolchain/c-toolchain.lisp"
2549 (("\"cc\"") (format #f "~S" (which "gcc")))))))
2550 #:asd-system-name "cffi"
2551 #:tests? #f))
2552 (home-page "https://common-lisp.net/project/cffi/")
2553 (synopsis "Common Foreign Function Interface for Common Lisp")
2554 (description "The Common Foreign Function Interface (CFFI)
2555 purports to be a portable foreign function interface for Common Lisp.
2556 The CFFI library is composed of a Lisp-implementation-specific backend
2557 in the CFFI-SYS package, and a portable frontend in the CFFI
2558 package.")
2559 (license license:expat)))
2560
2561 (define-public sbcl-cffi-toolchain
2562 (package
2563 (inherit sbcl-cffi-bootstrap)
2564 (name "sbcl-cffi-toolchain")
2565 (inputs
2566 `(("libffi" ,libffi)
2567 ("sbcl-cffi" ,sbcl-cffi-bootstrap)))
2568 (arguments
2569 (substitute-keyword-arguments (package-arguments sbcl-cffi-bootstrap)
2570 ((#:asd-system-name _) #f)
2571 ((#:tests? _) #t)))))
2572
2573 (define-public sbcl-cffi-libffi
2574 (package
2575 (inherit sbcl-cffi-toolchain)
2576 (name "sbcl-cffi-libffi")
2577 (inputs
2578 `(("cffi" ,sbcl-cffi-bootstrap)
2579 ("cffi-grovel" ,sbcl-cffi-grovel)
2580 ("trivial-features" ,sbcl-trivial-features)
2581 ("libffi" ,libffi)))))
2582
2583 (define-public sbcl-cffi-grovel
2584 (package
2585 (inherit sbcl-cffi-toolchain)
2586 (name "sbcl-cffi-grovel")
2587 (inputs
2588 `(("libffi" ,libffi)
2589 ("cffi" ,sbcl-cffi-bootstrap)
2590 ("cffi-toolchain" ,sbcl-cffi-toolchain)
2591 ("alexandria" ,sbcl-alexandria)))
2592 (arguments
2593 (substitute-keyword-arguments (package-arguments sbcl-cffi-toolchain)
2594 ((#:phases phases)
2595 `(modify-phases ,phases
2596 (add-after 'build 'install-headers
2597 (lambda* (#:key outputs #:allow-other-keys)
2598 (install-file "grovel/common.h"
2599 (string-append
2600 (assoc-ref outputs "out")
2601 "/include/grovel"))))))))))
2602
2603 (define-public sbcl-cffi
2604 (package
2605 (inherit sbcl-cffi-toolchain)
2606 (name "sbcl-cffi")
2607 (inputs (package-inputs sbcl-cffi-bootstrap))
2608 (native-inputs
2609 `(("cffi-grovel" ,sbcl-cffi-grovel)
2610 ("cffi-libffi" ,sbcl-cffi-libffi)
2611 ("rt" ,sbcl-rt)
2612 ("bordeaux-threads" ,sbcl-bordeaux-threads)
2613 ,@(package-native-inputs sbcl-cffi-bootstrap)))))
2614
2615 (define-public cl-cffi
2616 (sbcl-package->cl-source-package sbcl-cffi))
2617
2618 (define-public sbcl-cffi-uffi-compat
2619 (package
2620 (inherit sbcl-cffi-toolchain)
2621 (name "sbcl-cffi-uffi-compat")
2622 (native-inputs
2623 `(,@(package-inputs sbcl-cffi-bootstrap))) ; For fix-paths phase
2624 (inputs
2625 `(("cffi" ,sbcl-cffi)))
2626 (synopsis "UFFI Compatibility Layer for CFFI")))
2627
2628 (define-public cl-cffi-uffi-compat
2629 (sbcl-package->cl-source-package sbcl-cffi-uffi-compat))
2630
2631 (define-public sbcl-cl-sqlite
2632 (let ((commit "c738e66d4266ef63a1debc4ef4a1b871a068c112"))
2633 (package
2634 (name "sbcl-cl-sqlite")
2635 (version (git-version "0.2" "1" commit))
2636 (source
2637 (origin
2638 (method git-fetch)
2639 (uri (git-reference
2640 (url "https://github.com/dmitryvk/cl-sqlite")
2641 (commit commit)))
2642 (file-name (git-file-name "cl-sqlite" version))
2643 (sha256
2644 (base32
2645 "1ng45k1hdb84sqjryrfx93g66bsbybmpy301wd0fdybnc5jzr36q"))))
2646 (build-system asdf-build-system/sbcl)
2647 (inputs
2648 `(("iterate" ,sbcl-iterate)
2649 ("cffi" ,sbcl-cffi)
2650 ("sqlite" ,sqlite)))
2651 (native-inputs
2652 `(("fiveam" ,sbcl-fiveam)
2653 ("bordeaux-threads" ,sbcl-bordeaux-threads)))
2654 (arguments
2655 `(#:tests? #f ; Upstream seems to have issues with tests: https://github.com/dmitryvk/cl-sqlite/issues/7
2656 #:asd-file "sqlite.asd"
2657 #:asd-system-name "sqlite"
2658 #:phases
2659 (modify-phases %standard-phases
2660 (add-after 'unpack 'fix-paths
2661 (lambda* (#:key inputs #:allow-other-keys)
2662 (substitute* "sqlite-ffi.lisp"
2663 (("libsqlite3" all) (string-append
2664 (assoc-ref inputs "sqlite")"/lib/" all))))))))
2665 (home-page "https://common-lisp.net/project/cl-sqlite/")
2666 (synopsis "Common Lisp binding for SQLite")
2667 (description
2668 "The @command{cl-sqlite} package is an interface to the SQLite embedded
2669 relational database engine.")
2670 (license license:public-domain))))
2671
2672 (define-public cl-sqlite
2673 (sbcl-package->cl-source-package sbcl-cl-sqlite))
2674
2675 (define-public sbcl-parenscript
2676 ;; Source archives are overwritten on every release, we use the Git repo instead.
2677 (let ((commit "7a1ac46353cecd144fc91915ba9f122aafcf4766"))
2678 (package
2679 (name "sbcl-parenscript")
2680 (version (git-version "2.7.1" "1" commit))
2681 (source
2682 (origin
2683 (method git-fetch)
2684 (uri (git-reference
2685 (url "https://gitlab.common-lisp.net/parenscript/parenscript")
2686 (commit commit)))
2687 (file-name (git-file-name "parenscript" version))
2688 (sha256
2689 (base32
2690 "0c22lqarrpbq82dg1sb3y6mp6w2faczp34ymzhnmff88yfq1xzsf"))))
2691 (build-system asdf-build-system/sbcl)
2692 (inputs
2693 `(("cl-ppcre" ,sbcl-cl-ppcre)
2694 ("anaphora" ,sbcl-anaphora)
2695 ("named-readtables" ,sbcl-named-readtables)))
2696 (home-page "https://common-lisp.net/project/parenscript/")
2697 (synopsis "Translator from a subset of Common Lisp to JavaScript")
2698 (description
2699 "Parenscript is a translator from an extended subset of Common Lisp to
2700 JavaScript. Parenscript code can run almost identically on both the
2701 browser (as JavaScript) and server (as Common Lisp).
2702
2703 Parenscript code is treated the same way as Common Lisp code, making the full
2704 power of Lisp macros available for JavaScript. This provides a web
2705 development environment that is unmatched in its ability to reduce code
2706 duplication and provide advanced meta-programming facilities to web
2707 developers.
2708
2709 At the same time, Parenscript is different from almost all other \"language
2710 X\" to JavaScript translators in that it imposes almost no overhead:
2711
2712 @itemize
2713 @item No run-time dependencies: Any piece of Parenscript code is runnable
2714 as-is. There are no JavaScript files to include.
2715 @item Native types: Parenscript works entirely with native JavaScript data
2716 types. There are no new types introduced, and object prototypes are not
2717 touched.
2718 @item Native calling convention: Any JavaScript code can be called without the
2719 need for bindings. Likewise, Parenscript can be used to make efficient,
2720 self-contained JavaScript libraries.
2721 @item Readable code: Parenscript generates concise, formatted, idiomatic
2722 JavaScript code. Identifier names are preserved. This enables seamless
2723 debugging in tools like Firebug.
2724 @item Efficiency: Parenscript introduces minimal overhead for advanced Common
2725 Lisp features. The generated code is almost as fast as hand-written
2726 JavaScript.
2727 @end itemize\n")
2728 (license license:bsd-3))))
2729
2730 (define-public cl-parenscript
2731 (sbcl-package->cl-source-package sbcl-parenscript))
2732
2733 (define-public ecl-parenscript
2734 (sbcl-package->ecl-package sbcl-parenscript))
2735
2736 (define-public sbcl-cl-json
2737 (let ((commit "6dfebb9540bfc3cc33582d0c03c9ec27cb913e79"))
2738 (package
2739 (name "sbcl-cl-json")
2740 (version (git-version "0.5" "1" commit))
2741 (source
2742 (origin
2743 (method git-fetch)
2744 (uri (git-reference
2745 (url "https://github.com/hankhero/cl-json")
2746 (commit commit)))
2747 (file-name (git-file-name "cl-json" version))
2748 (sha256
2749 (base32
2750 "0fx3m3x3s5ji950yzpazz4s0img3l6b3d6l3jrfjv0lr702496lh"))))
2751 (build-system asdf-build-system/sbcl)
2752 (native-inputs
2753 `(("fiveam" ,sbcl-fiveam)))
2754 (home-page "https://github.com/hankhero/cl-json")
2755 (synopsis "JSON encoder and decoder for Common-Lisp")
2756 (description
2757 "@command{cl-json} provides an encoder of Lisp objects to JSON format
2758 and a corresponding decoder of JSON data to Lisp objects. Both the encoder
2759 and the decoder are highly customizable; at the same time, the default
2760 settings ensure a very simple mode of operation, similar to that provided by
2761 @command{yason} or @command{st-json}.")
2762 (license license:expat))))
2763
2764 (define-public cl-json
2765 (sbcl-package->cl-source-package sbcl-cl-json))
2766
2767 (define-public ecl-cl-json
2768 (sbcl-package->ecl-package sbcl-cl-json))
2769
2770 (define-public sbcl-unix-opts
2771 (package
2772 (name "sbcl-unix-opts")
2773 (version "0.1.7")
2774 (source
2775 (origin
2776 (method git-fetch)
2777 (uri (git-reference
2778 (url "https://github.com/libre-man/unix-opts")
2779 (commit version)))
2780 (file-name (git-file-name "unix-opts" version))
2781 (sha256
2782 (base32
2783 "08djdi1ard09fijb7w9bdmhmwd98b1hzmcnjw9fqjiqa0g3b44rr"))))
2784 (build-system asdf-build-system/sbcl)
2785 (home-page "https://github.com/hankhero/cl-json")
2786 (synopsis "Unix-style command line options parser")
2787 (description
2788 "This is a minimalistic parser of command line options. The main
2789 advantage of the library is the ability to concisely define command line
2790 options once and then use this definition for parsing and extraction of
2791 command line arguments, as well as printing description of command line
2792 options (you get --help for free). This way you don't need to repeat
2793 yourself. Also, @command{unix-opts} doesn't depend on anything and
2794 precisely controls the behavior of the parser via Common Lisp restarts.")
2795 (license license:expat)))
2796
2797 (define-public cl-unix-opts
2798 (sbcl-package->cl-source-package sbcl-unix-opts))
2799
2800 (define-public ecl-unix-opts
2801 (sbcl-package->ecl-package sbcl-unix-opts))
2802
2803 (define-public sbcl-trivial-garbage
2804 (package
2805 (name "sbcl-trivial-garbage")
2806 (version "0.21")
2807 (source
2808 (origin
2809 (method git-fetch)
2810 (uri (git-reference
2811 (url "https://github.com/trivial-garbage/trivial-garbage.git")
2812 (commit (string-append "v" version))))
2813 (file-name (git-file-name "trivial-garbage" version))
2814 (sha256
2815 (base32 "0122jicfg7pca1wxw8zak1n92h5friqy60988ns0ysksj3fphw9n"))))
2816 (build-system asdf-build-system/sbcl)
2817 (native-inputs
2818 `(("rt" ,sbcl-rt)))
2819 (home-page "https://common-lisp.net/project/trivial-garbage/")
2820 (synopsis "Portable GC-related APIs for Common Lisp")
2821 (description "@command{trivial-garbage} provides a portable API to
2822 finalizers, weak hash-tables and weak pointers on all major implementations of
2823 the Common Lisp programming language.")
2824 (license license:public-domain)))
2825
2826 (define-public cl-trivial-garbage
2827 (sbcl-package->cl-source-package sbcl-trivial-garbage))
2828
2829 (define-public ecl-trivial-garbage
2830 (sbcl-package->ecl-package sbcl-trivial-garbage))
2831
2832 (define-public sbcl-closer-mop
2833 (let ((commit "19c9d33f576e10715fd79cc1d4f688dab0f241d6"))
2834 (package
2835 (name "sbcl-closer-mop")
2836 (version (git-version "1.0.0" "2" commit))
2837 (source
2838 (origin
2839 (method git-fetch)
2840 (uri (git-reference
2841 (url "https://github.com/pcostanza/closer-mop")
2842 (commit commit)))
2843 (sha256
2844 (base32 "1w3x087wvlwkd6swfdgbvjfs6kazf0la8ax4pjfzikwjch4snn2c"))
2845 (file-name (git-file-name "closer-mop" version ))))
2846 (build-system asdf-build-system/sbcl)
2847 (home-page "https://github.com/pcostanza/closer-mop")
2848 (synopsis "Rectifies absent or incorrect CLOS MOP features")
2849 (description "Closer to MOP is a compatibility layer that rectifies many
2850 of the absent or incorrect CLOS MOP features across a broad range of Common
2851 Lisp implementations.")
2852 (license license:expat))))
2853
2854 (define-public cl-closer-mop
2855 (sbcl-package->cl-source-package sbcl-closer-mop))
2856
2857 (define-public ecl-closer-mop
2858 (sbcl-package->ecl-package sbcl-closer-mop))
2859
2860 (define sbcl-cl-cffi-gtk-boot0
2861 (let ((commit "412d17214e092220c65a5660f5cbbd9cb69b8fe4"))
2862 (package
2863 (name "sbcl-cl-cffi-gtk-boot0")
2864 (version (git-version "0.11.2" "1" commit))
2865 (source
2866 (origin
2867 (method git-fetch)
2868 (uri (git-reference
2869 (url "https://github.com/Ferada/cl-cffi-gtk/")
2870 (commit commit)))
2871 (file-name (git-file-name "cl-cffi-gtk" version))
2872 (sha256
2873 (base32
2874 "0n997yhcnzk048nalx8ys62ja2ac8iv4mbn3mb55iapl0321hghn"))))
2875 (build-system asdf-build-system/sbcl)
2876 (inputs
2877 `(("iterate" ,sbcl-iterate)
2878 ("cffi" ,sbcl-cffi)
2879 ("trivial-features" ,sbcl-trivial-features)))
2880 (home-page "https://github.com/Ferada/cl-cffi-gtk/")
2881 (synopsis "Common Lisp binding for GTK+3")
2882 (description
2883 "@command{cl-cffi-gtk} is a Lisp binding to GTK+ 3 (GIMP Toolkit) which
2884 is a library for creating graphical user interfaces.")
2885 (license license:lgpl3))))
2886
2887 (define-public sbcl-cl-cffi-gtk-glib
2888 (package
2889 (inherit sbcl-cl-cffi-gtk-boot0)
2890 (name "sbcl-cl-cffi-gtk-glib")
2891 (inputs
2892 `(("glib" ,glib)
2893 ("bordeaux-threads" ,sbcl-bordeaux-threads)
2894 ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
2895 (arguments
2896 `(#:asd-file "glib/cl-cffi-gtk-glib.asd"
2897 #:phases
2898 (modify-phases %standard-phases
2899 (add-after 'unpack 'fix-paths
2900 (lambda* (#:key inputs #:allow-other-keys)
2901 (substitute* "glib/glib.init.lisp"
2902 (("libglib|libgthread" all)
2903 (string-append (assoc-ref inputs "glib") "/lib/" all))))))))))
2904
2905 (define-public sbcl-cl-cffi-gtk-gobject
2906 (package
2907 (inherit sbcl-cl-cffi-gtk-boot0)
2908 (name "sbcl-cl-cffi-gtk-gobject")
2909 (inputs
2910 `(("glib" ,glib)
2911 ("cl-cffi-gtk-glib" ,sbcl-cl-cffi-gtk-glib)
2912 ("trivial-garbage" ,sbcl-trivial-garbage)
2913 ("bordeaux-threads" ,sbcl-bordeaux-threads)
2914 ("closer-mop" ,sbcl-closer-mop)
2915 ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
2916 (arguments
2917 `(#:asd-file "gobject/cl-cffi-gtk-gobject.asd"
2918 #:phases
2919 (modify-phases %standard-phases
2920 (add-after 'unpack 'fix-paths
2921 (lambda* (#:key inputs #:allow-other-keys)
2922 (substitute* "gobject/gobject.init.lisp"
2923 (("libgobject" all) (string-append
2924 (assoc-ref inputs "glib") "/lib/" all)))))
2925 (add-after 'install 'link-source
2926 ;; Since source is particularly heavy (16MiB+), let's reuse it
2927 ;; across the different components of cl-ffi-gtk.
2928 (lambda* (#:key inputs outputs #:allow-other-keys)
2929 (let ((glib-source (string-append (assoc-ref inputs "cl-cffi-gtk-glib")
2930 "/share/common-lisp/sbcl-source/"
2931 "cl-cffi-gtk-glib"))
2932 (out-source (string-append (assoc-ref outputs "out")
2933 "/share/common-lisp/sbcl-source/"
2934 "cl-cffi-gtk-gobject")))
2935 (delete-file-recursively out-source)
2936 (symlink glib-source out-source)
2937 #t))))))))
2938
2939 (define-public sbcl-cl-cffi-gtk-gio
2940 (package
2941 (inherit sbcl-cl-cffi-gtk-boot0)
2942 (name "sbcl-cl-cffi-gtk-gio")
2943 (inputs
2944 `(("glib" ,glib)
2945 ("cl-cffi-gtk-glib" ,sbcl-cl-cffi-gtk-glib)
2946 ("cl-cffi-gtk-gobject" ,sbcl-cl-cffi-gtk-gobject)
2947 ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
2948 (arguments
2949 `(#:asd-file "gio/cl-cffi-gtk-gio.asd"
2950 #:phases
2951 (modify-phases %standard-phases
2952 (add-after 'unpack 'fix-paths
2953 (lambda* (#:key inputs #:allow-other-keys)
2954 (substitute* "gio/gio.init.lisp"
2955 (("libgio" all)
2956 (string-append
2957 (assoc-ref inputs "glib") "/lib/" all)))))
2958 (add-after 'install 'link-source
2959 ;; Since source is particularly heavy (16MiB+), let's reuse it
2960 ;; across the different components of cl-ffi-gtk.
2961 (lambda* (#:key inputs outputs #:allow-other-keys)
2962 (let ((glib-source (string-append (assoc-ref inputs "cl-cffi-gtk-glib")
2963 "/share/common-lisp/sbcl-source/"
2964 "cl-cffi-gtk-glib"))
2965 (out-source (string-append (assoc-ref outputs "out")
2966 "/share/common-lisp/sbcl-source/"
2967 "cl-cffi-gtk-gio")))
2968 (delete-file-recursively out-source)
2969 (symlink glib-source out-source)
2970 #t))))))))
2971
2972 (define-public sbcl-cl-cffi-gtk-cairo
2973 (package
2974 (inherit sbcl-cl-cffi-gtk-boot0)
2975 (name "sbcl-cl-cffi-gtk-cairo")
2976 (inputs
2977 `(("cairo" ,cairo)
2978 ("cl-cffi-gtk-glib" ,sbcl-cl-cffi-gtk-glib)
2979 ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
2980 (arguments
2981 `(#:asd-file "cairo/cl-cffi-gtk-cairo.asd"
2982 #:phases
2983 (modify-phases %standard-phases
2984 (add-after 'unpack 'fix-paths
2985 (lambda* (#:key inputs #:allow-other-keys)
2986 (substitute* "cairo/cairo.init.lisp"
2987 (("libcairo" all)
2988 (string-append
2989 (assoc-ref inputs "cairo") "/lib/" all)))))
2990 (add-after 'install 'link-source
2991 ;; Since source is particularly heavy (16MiB+), let's reuse it
2992 ;; across the different components of cl-ffi-gtk.
2993 (lambda* (#:key inputs outputs #:allow-other-keys)
2994 (let ((glib-source (string-append (assoc-ref inputs "cl-cffi-gtk-glib")
2995 "/share/common-lisp/sbcl-source/"
2996 "cl-cffi-gtk-glib"))
2997 (out-source (string-append (assoc-ref outputs "out")
2998 "/share/common-lisp/sbcl-source/"
2999 "cl-cffi-gtk-cairo")))
3000 (delete-file-recursively out-source)
3001 (symlink glib-source out-source)
3002 #t))))))))
3003
3004 (define-public sbcl-cl-cffi-gtk-pango
3005 (package
3006 (inherit sbcl-cl-cffi-gtk-boot0)
3007 (name "sbcl-cl-cffi-gtk-pango")
3008 (inputs
3009 `(("pango" ,pango)
3010 ("cl-cffi-gtk-glib" ,sbcl-cl-cffi-gtk-glib)
3011 ("cl-cffi-gtk-gobject" ,sbcl-cl-cffi-gtk-gobject)
3012 ("cl-cffi-gtk-cairo" ,sbcl-cl-cffi-gtk-cairo)
3013 ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
3014 (arguments
3015 `(#:asd-file "pango/cl-cffi-gtk-pango.asd"
3016 #:phases
3017 (modify-phases %standard-phases
3018 (add-after 'unpack 'fix-paths
3019 (lambda* (#:key inputs #:allow-other-keys)
3020 (substitute* "pango/pango.init.lisp"
3021 (("libpango" all)
3022 (string-append
3023 (assoc-ref inputs "pango") "/lib/" all)))))
3024 (add-after 'install 'link-source
3025 ;; Since source is particularly heavy (16MiB+), let's reuse it
3026 ;; across the different components of cl-ffi-gtk.
3027 (lambda* (#:key inputs outputs #:allow-other-keys)
3028 (let ((glib-source (string-append (assoc-ref inputs "cl-cffi-gtk-glib")
3029 "/share/common-lisp/sbcl-source/"
3030 "cl-cffi-gtk-glib"))
3031 (out-source (string-append (assoc-ref outputs "out")
3032 "/share/common-lisp/sbcl-source/"
3033 "cl-cffi-gtk-pango")))
3034 (delete-file-recursively out-source)
3035 (symlink glib-source out-source)
3036 #t))))))))
3037
3038 (define-public sbcl-cl-cffi-gtk-gdk-pixbuf
3039 (package
3040 (inherit sbcl-cl-cffi-gtk-boot0)
3041 (name "sbcl-cl-cffi-gtk-gdk-pixbuf")
3042 (inputs
3043 `(("gdk-pixbuf" ,gdk-pixbuf)
3044 ("cl-cffi-gtk-gobject" ,sbcl-cl-cffi-gtk-gobject)
3045 ("cl-cffi-gtk-glib" ,sbcl-cl-cffi-gtk-glib)
3046 ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
3047 (arguments
3048 `(#:asd-file "gdk-pixbuf/cl-cffi-gtk-gdk-pixbuf.asd"
3049 #:phases
3050 (modify-phases %standard-phases
3051 (add-after 'unpack 'fix-paths
3052 (lambda* (#:key inputs #:allow-other-keys)
3053 (substitute* "gdk-pixbuf/gdk-pixbuf.init.lisp"
3054 (("libgdk_pixbuf" all)
3055 (string-append
3056 (assoc-ref inputs "gdk-pixbuf") "/lib/" all)))))
3057 (add-after 'install 'link-source
3058 ;; Since source is particularly heavy (16MiB+), let's reuse it
3059 ;; across the different components of cl-ffi-gtk.
3060 (lambda* (#:key inputs outputs #:allow-other-keys)
3061 (let ((glib-source (string-append (assoc-ref inputs "cl-cffi-gtk-glib")
3062 "/share/common-lisp/sbcl-source/"
3063 "cl-cffi-gtk-glib"))
3064 (out-source (string-append (assoc-ref outputs "out")
3065 "/share/common-lisp/sbcl-source/"
3066 "cl-cffi-gtk-gdk-pixbuf")))
3067 (delete-file-recursively out-source)
3068 (symlink glib-source out-source)
3069 #t))))))))
3070
3071 (define-public sbcl-cl-cffi-gtk-gdk
3072 (package
3073 (inherit sbcl-cl-cffi-gtk-boot0)
3074 (name "sbcl-cl-cffi-gtk-gdk")
3075 (inputs
3076 `(("gtk" ,gtk+)
3077 ("cl-cffi-gtk-glib" ,sbcl-cl-cffi-gtk-glib)
3078 ("cl-cffi-gtk-gobject" ,sbcl-cl-cffi-gtk-gobject)
3079 ("cl-cffi-gtk-gio" ,sbcl-cl-cffi-gtk-gio)
3080 ("cl-cffi-gtk-gdk-pixbuf" ,sbcl-cl-cffi-gtk-gdk-pixbuf)
3081 ("cl-cffi-gtk-cairo" ,sbcl-cl-cffi-gtk-cairo)
3082 ("cl-cffi-gtk-pango" ,sbcl-cl-cffi-gtk-pango)
3083 ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
3084 (arguments
3085 `(#:asd-file "gdk/cl-cffi-gtk-gdk.asd"
3086 #:phases
3087 (modify-phases %standard-phases
3088 (add-after 'unpack 'fix-paths
3089 (lambda* (#:key inputs #:allow-other-keys)
3090 (substitute* "gdk/gdk.init.lisp"
3091 (("libgdk" all)
3092 (string-append
3093 (assoc-ref inputs "gtk") "/lib/" all)))
3094 (substitute* "gdk/gdk.package.lisp"
3095 (("libgtk" all)
3096 (string-append
3097 (assoc-ref inputs "gtk") "/lib/" all)))))
3098 (add-after 'install 'link-source
3099 ;; Since source is particularly heavy (16MiB+), let's reuse it
3100 ;; across the different components of cl-ffi-gtk.
3101 (lambda* (#:key inputs outputs #:allow-other-keys)
3102 (let ((glib-source (string-append (assoc-ref inputs "cl-cffi-gtk-glib")
3103 "/share/common-lisp/sbcl-source/"
3104 "cl-cffi-gtk-glib"))
3105 (out-source (string-append (assoc-ref outputs "out")
3106 "/share/common-lisp/sbcl-source/"
3107 "cl-cffi-gtk-gdk")))
3108 (delete-file-recursively out-source)
3109 (symlink glib-source out-source)
3110 #t))))))))
3111
3112 (define-public sbcl-cl-cffi-gtk
3113 (package
3114 (inherit sbcl-cl-cffi-gtk-boot0)
3115 (name "sbcl-cl-cffi-gtk")
3116 (inputs
3117 `(("cl-cffi-gtk-glib" ,sbcl-cl-cffi-gtk-glib)
3118 ("cl-cffi-gtk-gobject" ,sbcl-cl-cffi-gtk-gobject)
3119 ("cl-cffi-gtk-gio" ,sbcl-cl-cffi-gtk-gio)
3120 ("cl-cffi-gtk-gdk" ,sbcl-cl-cffi-gtk-gdk)
3121 ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
3122 (native-inputs
3123 `(("fiveam" ,sbcl-fiveam)))
3124 (arguments
3125 `(#:asd-file "gtk/cl-cffi-gtk.asd"
3126 #:test-asd-file "test/cl-cffi-gtk-test.asd"
3127 ;; TODO: Tests fail with memory fault.
3128 ;; See https://github.com/Ferada/cl-cffi-gtk/issues/24.
3129 #:tests? #f
3130 #:phases
3131 (modify-phases %standard-phases
3132 (add-after 'install 'link-source
3133 ;; Since source is particularly heavy (16MiB+), let's reuse it
3134 ;; across the different components of cl-ffi-gtk.
3135 (lambda* (#:key inputs outputs #:allow-other-keys)
3136 (let ((glib-source (string-append (assoc-ref inputs "cl-cffi-gtk-glib")
3137 "/share/common-lisp/sbcl-source/"
3138 "cl-cffi-gtk-glib"))
3139 (out-source (string-append (assoc-ref outputs "out")
3140 "/share/common-lisp/sbcl-source/"
3141 "cl-cffi-gtk")))
3142 (delete-file-recursively out-source)
3143 (symlink glib-source out-source)
3144 #t))))))))
3145
3146 (define-public cl-cffi-gtk
3147 (sbcl-package->cl-source-package sbcl-cl-cffi-gtk))
3148
3149 (define-public sbcl-cl-webkit
3150 (let ((commit "f93cb9697e8813068795fe4dc39ac950d814102d"))
3151 (package
3152 (name "sbcl-cl-webkit")
3153 (version (git-version "2.4" "3" commit))
3154 (source
3155 (origin
3156 (method git-fetch)
3157 (uri (git-reference
3158 (url "https://github.com/joachifm/cl-webkit")
3159 (commit commit)))
3160 (file-name (git-file-name "cl-webkit" version))
3161 (sha256
3162 (base32
3163 "1sjcw08kjpd5h83sms7zcq2nymddjygk9hm2rpgzrl524an9ziwc"))))
3164 (build-system asdf-build-system/sbcl)
3165 (inputs
3166 `(("cffi" ,sbcl-cffi)
3167 ("cl-cffi-gtk" ,sbcl-cl-cffi-gtk)
3168 ("webkitgtk" ,webkitgtk)))
3169 (arguments
3170 `(#:asd-file "webkit2/cl-webkit2.asd"
3171 #:asd-system-name "cl-webkit2"
3172 #:phases
3173 (modify-phases %standard-phases
3174 (add-after 'unpack 'fix-paths
3175 (lambda* (#:key inputs #:allow-other-keys)
3176 (substitute* "webkit2/webkit2.init.lisp"
3177 (("libwebkit2gtk" all)
3178 (string-append
3179 (assoc-ref inputs "webkitgtk") "/lib/" all))))))))
3180 (home-page "https://github.com/joachifm/cl-webkit")
3181 (synopsis "Binding to WebKitGTK+ for Common Lisp")
3182 (description
3183 "@command{cl-webkit} is a binding to WebKitGTK+ for Common Lisp,
3184 currently targeting WebKit version 2. The WebKitGTK+ library adds web
3185 browsing capabilities to an application, leveraging the full power of the
3186 WebKit browsing engine.")
3187 (license license:expat))))
3188
3189 (define-public cl-webkit
3190 (sbcl-package->cl-source-package sbcl-cl-webkit))
3191
3192 (define-public sbcl-lparallel
3193 (package
3194 (name "sbcl-lparallel")
3195 (version "2.8.4")
3196 (source
3197 (origin
3198 (method git-fetch)
3199 (uri (git-reference
3200 (url "https://github.com/lmj/lparallel/")
3201 (commit (string-append "lparallel-" version))))
3202 (file-name (git-file-name "lparallel" version))
3203 (sha256
3204 (base32
3205 "0g0aylrbbrqsz0ahmwhvnk4cmc2931fllbpcfgzsprwnqqd7vwq9"))))
3206 (build-system asdf-build-system/sbcl)
3207 (inputs
3208 `(("alexandria" ,sbcl-alexandria)
3209 ("bordeaux-threads" ,sbcl-bordeaux-threads)
3210 ("trivial-garbage" ,sbcl-trivial-garbage)))
3211 (home-page "https://lparallel.org/")
3212 (synopsis "Parallelism for Common Lisp")
3213 (description
3214 "@command{lparallel} is a library for parallel programming in Common
3215 Lisp, featuring:
3216
3217 @itemize
3218 @item a simple model of task submission with receiving queue,
3219 @item constructs for expressing fine-grained parallelism,
3220 @item asynchronous condition handling across thread boundaries,
3221 @item parallel versions of map, reduce, sort, remove, and many others,
3222 @item promises, futures, and delayed evaluation constructs,
3223 @item computation trees for parallelizing interconnected tasks,
3224 @item bounded and unbounded FIFO queues,
3225 @item high and low priority tasks,
3226 @item task killing by category,
3227 @item integrated timeouts.
3228 @end itemize\n")
3229 (license license:expat)))
3230
3231 (define-public cl-lparallel
3232 (sbcl-package->cl-source-package sbcl-lparallel))
3233
3234 (define-public ecl-lparallel
3235 (sbcl-package->ecl-package sbcl-lparallel))
3236
3237 (define-public sbcl-cl-markup
3238 (let ((commit "e0eb7debf4bdff98d1f49d0f811321a6a637b390"))
3239 (package
3240 (name "sbcl-cl-markup")
3241 (version (git-version "0.1" "1" commit))
3242 (source
3243 (origin
3244 (method git-fetch)
3245 (uri (git-reference
3246 (url "https://github.com/arielnetworks/cl-markup/")
3247 (commit commit)))
3248 (file-name (git-file-name "cl-markup" version))
3249 (sha256
3250 (base32
3251 "10l6k45971dl13fkdmva7zc6i453lmq9j4xax2ci6pjzlc6xjhp7"))))
3252 (build-system asdf-build-system/sbcl)
3253 (home-page "https://github.com/arielnetworks/cl-markup/")
3254 (synopsis "Markup generation library for Common Lisp")
3255 (description
3256 "A modern markup generation library for Common Lisp that features:
3257
3258 @itemize
3259 @item Fast (even faster through compiling the code)
3260 @item Safety
3261 @item Support for multiple document types (markup, xml, html, html5, xhtml)
3262 @item Output with doctype
3263 @item Direct output to stream
3264 @end itemize\n")
3265 (license license:lgpl3+))))
3266
3267 (define-public cl-markup
3268 (sbcl-package->cl-source-package sbcl-cl-markup))
3269
3270 (define-public ecl-cl-markup
3271 (sbcl-package->ecl-package sbcl-cl-markup))
3272
3273 (define-public sbcl-cl-css
3274 (let ((commit "8fe654c8f0cf95b300718101cce4feb517f78e2f"))
3275 (package
3276 (name "sbcl-cl-css")
3277 (version (git-version "0.1" "1" commit))
3278 (source
3279 (origin
3280 (method git-fetch)
3281 (uri (git-reference
3282 (url "https://github.com/inaimathi/cl-css/")
3283 (commit commit)))
3284 (file-name (git-file-name "cl-css" version))
3285 (sha256
3286 (base32
3287 "1lc42zi2sw11fl2589sc19nr5sd2p0wy7wgvgwaggxa5f3ajhsmd"))))
3288 (build-system asdf-build-system/sbcl)
3289 (home-page "https://github.com/inaimathi/cl-css/")
3290 (synopsis "Non-validating, inline CSS generator for Common Lisp")
3291 (description
3292 "This is a dead-simple, non validating, inline CSS generator for Common
3293 Lisp. Its goals are axiomatic syntax, simple implementation to support
3294 portability, and boilerplate reduction in CSS.")
3295 (license license:expat))))
3296
3297 (define-public cl-css
3298 (sbcl-package->cl-source-package sbcl-cl-css))
3299
3300 (define-public ecl-cl-css
3301 (sbcl-package->ecl-package sbcl-cl-css))
3302
3303 (define-public sbcl-portable-threads
3304 (let ((commit "c0e61a1faeb0583c80fd3f20b16cc4c555226920"))
3305 (package
3306 (name "sbcl-portable-threads")
3307 (version (git-version "2.3" "1" commit))
3308 (source
3309 (origin
3310 (method git-fetch)
3311 (uri (git-reference
3312 (url "https://github.com/binghe/portable-threads/")
3313 (commit commit)))
3314 (file-name (git-file-name "portable-threads" version))
3315 (sha256
3316 (base32
3317 "03fmxyarc0xf4kavwkfa0a2spkyfrz6hbgbi9y4q7ny5aykdyfaq"))))
3318 (build-system asdf-build-system/sbcl)
3319 (arguments
3320 `(;; Tests seem broken.
3321 #:tests? #f))
3322 (home-page "https://github.com/binghe/portable-threads")
3323 (synopsis "Portable threads (and scheduled and periodic functions) API for Common Lisp")
3324 (description
3325 "Portable Threads (and Scheduled and Periodic Functions) API for Common
3326 Lisp (from GBBopen project).")
3327 (license license:asl2.0))))
3328
3329 (define-public cl-portable-threads
3330 (sbcl-package->cl-source-package sbcl-portable-threads))
3331
3332 (define-public ecl-portable-threada
3333 (sbcl-package->ecl-package sbcl-portable-threads))
3334
3335 (define sbcl-usocket-boot0
3336 ;; usocket's test rely on usocket-server which depends on usocket itself.
3337 ;; We break this cyclic dependency with -boot0 that packages usocket.
3338 (package
3339 (name "sbcl-usocket-boot0")
3340 (version "0.8.3")
3341 (source
3342 (origin
3343 (method git-fetch)
3344 (uri (git-reference
3345 (url "https://github.com/usocket/usocket/")
3346 (commit (string-append "v" version))))
3347 (file-name (git-file-name "usocket" version))
3348 (sha256
3349 (base32
3350 "0x746wr2324l6bn7skqzgkzcbj5kd0zp2ck0c8rldrw0rzabg826"))))
3351 (build-system asdf-build-system/sbcl)
3352 (inputs
3353 `(("split-sequence" ,sbcl-split-sequence)))
3354 (arguments
3355 `(#:tests? #f
3356 #:asd-system-name "usocket"))
3357 (home-page "https://common-lisp.net/project/usocket/")
3358 (synopsis "Universal socket library for Common Lisp (server side)")
3359 (description
3360 "This library strives to provide a portable TCP/IP and UDP/IP socket
3361 interface for as many Common Lisp implementations as possible, while keeping
3362 the abstraction and portability layer as thin as possible.")
3363 (license license:expat)))
3364
3365 (define-public sbcl-usocket-server
3366 (package
3367 (inherit sbcl-usocket-boot0)
3368 (name "sbcl-usocket-server")
3369 (inputs
3370 `(("bordeaux-threads" ,sbcl-bordeaux-threads)
3371 ("usocket" ,sbcl-usocket-boot0)))
3372 (arguments
3373 '(#:asd-system-name "usocket-server"))
3374 (synopsis "Universal socket library for Common Lisp (server side)")))
3375
3376 (define-public cl-usocket-server
3377 (sbcl-package->cl-source-package sbcl-usocket-server))
3378
3379 (define-public ecl-socket-server
3380 (sbcl-package->ecl-package sbcl-usocket-server))
3381
3382 (define-public sbcl-usocket
3383 (package
3384 (inherit sbcl-usocket-boot0)
3385 (name "sbcl-usocket")
3386 (arguments
3387 ;; FIXME: Tests need network access?
3388 `(#:tests? #f))
3389 (native-inputs
3390 ;; Testing only.
3391 `(("usocket-server" ,sbcl-usocket-server)
3392 ("rt" ,sbcl-rt)))))
3393
3394 (define-public cl-usocket
3395 (sbcl-package->cl-source-package sbcl-usocket))
3396
3397 (define-public ecl-usocket
3398 (sbcl-package->ecl-package sbcl-usocket))
3399
3400 (define-public sbcl-s-xml
3401 (package
3402 (name "sbcl-s-xml")
3403 (version "3")
3404 (source
3405 (origin
3406 (method url-fetch)
3407 (uri "https://common-lisp.net/project/s-xml/s-xml.tgz")
3408 (sha256
3409 (base32
3410 "061qcr0dzshsa38s5ma4ay924cwak2nq9gy59dw6v9p0qb58nzjf"))))
3411 (build-system asdf-build-system/sbcl)
3412 (home-page "https://common-lisp.net/project/s-xml/")
3413 (synopsis "Simple XML parser implemented in Common Lisp")
3414 (description
3415 "S-XML is a simple XML parser implemented in Common Lisp. This XML
3416 parser implementation has the following features:
3417
3418 @itemize
3419 @item It works (handling many common XML usages).
3420 @item It is very small (the core is about 700 lines of code, including
3421 comments and whitespace).
3422 @item It has a core API that is simple, efficient and pure functional, much
3423 like that from SSAX (see also http://ssax.sourceforge.net).
3424 @item It supports different DOM models: an XSML-based one, an LXML-based one
3425 and a classic xml-element struct based one.
3426 @item It is reasonably time and space efficient (internally avoiding garbage
3427 generatation as much as possible).
3428 @item It does support CDATA.
3429 @item It should support the same character sets as your Common Lisp
3430 implementation.
3431 @item It does support XML name spaces.
3432 @end itemize
3433
3434 This XML parser implementation has the following limitations:
3435
3436 @itemize
3437 @item It does not support any special tags (like processing instructions).
3438 @item It is not validating, even skips DTD's all together.
3439 @end itemize\n")
3440 (license license:lgpl3+)))
3441
3442 (define-public cl-s-xml
3443 (sbcl-package->cl-source-package sbcl-s-xml))
3444
3445 (define-public ecl-s-xml
3446 (sbcl-package->ecl-package sbcl-s-xml))
3447
3448 (define-public sbcl-s-xml-rpc
3449 (package
3450 (name "sbcl-s-xml-rpc")
3451 (version "7")
3452 (source
3453 (origin
3454 (method url-fetch)
3455 (uri "https://common-lisp.net/project/s-xml-rpc/s-xml-rpc.tgz")
3456 (sha256
3457 (base32
3458 "02z7k163d51v0pzk8mn1xb6h5s6x64gjqkslhwm3a5x26k2gfs11"))))
3459 (build-system asdf-build-system/sbcl)
3460 (inputs
3461 `(("s-xml" ,sbcl-s-xml)))
3462 (home-page "https://common-lisp.net/project/s-xml-rpc/")
3463 (synopsis "Implementation of XML-RPC in Common Lisp for both client and server")
3464 (description
3465 "S-XML-RPC is an implementation of XML-RPC in Common Lisp for both
3466 client and server.")
3467 (license license:lgpl3+)))
3468
3469 (define-public cl-s-xml-rpc
3470 (sbcl-package->cl-source-package sbcl-s-xml-rpc))
3471
3472 (define-public ecl-s-xml-rpc
3473 (sbcl-package->ecl-package sbcl-s-xml-rpc))
3474
3475 (define-public sbcl-trivial-clipboard
3476 (let ((commit "5af3415d1484e6d69a1b5c178f24680d9fd01796"))
3477 (package
3478 (name "sbcl-trivial-clipboard")
3479 (version (git-version "0.0.0.0" "2" commit))
3480 (source
3481 (origin
3482 (method git-fetch)
3483 (uri (git-reference
3484 (url "https://github.com/snmsts/trivial-clipboard")
3485 (commit commit)))
3486 (file-name (git-file-name "trivial-clipboard" version))
3487 (sha256
3488 (base32
3489 "1gb515z5yq6h5548pb1fwhmb0hhq1ssyb78pvxh4alq799xipxs9"))))
3490 (build-system asdf-build-system/sbcl)
3491 (inputs
3492 `(("xclip" ,xclip)))
3493 (native-inputs
3494 `(("fiveam" ,sbcl-fiveam)))
3495 (arguments
3496 `(#:phases
3497 (modify-phases %standard-phases
3498 (add-after 'unpack 'fix-paths
3499 (lambda* (#:key inputs #:allow-other-keys)
3500 (substitute* "src/text.lisp"
3501 (("\\(executable-find \"xclip\"\\)")
3502 (string-append "(executable-find \""
3503 (assoc-ref inputs "xclip")
3504 "/bin/xclip\")"))))))))
3505 (home-page "https://github.com/snmsts/trivial-clipboard")
3506 (synopsis "Access system clipboard in Common Lisp")
3507 (description
3508 "@command{trivial-clipboard} gives access to the system clipboard.")
3509 (license license:expat))))
3510
3511 (define-public cl-trivial-clipboard
3512 (sbcl-package->cl-source-package sbcl-trivial-clipboard))
3513
3514 (define-public ecl-trivial-clipboard
3515 (sbcl-package->ecl-package sbcl-trivial-clipboard))
3516
3517 (define-public sbcl-trivial-backtrace
3518 (let ((commit "ca81c011b86424a381a7563cea3b924f24e6fbeb")
3519 (revision "1"))
3520 (package
3521 (name "sbcl-trivial-backtrace")
3522 (version (git-version "0.0.0" revision commit))
3523 (source
3524 (origin
3525 (method git-fetch)
3526 (uri (git-reference
3527 (url "https://github.com/gwkkwg/trivial-backtrace.git")
3528 (commit commit)))
3529 (file-name (git-file-name "trivial-backtrace" version))
3530 (sha256
3531 (base32 "10p41p43skj6cimdg8skjy7372s8v2xpkg8djjy0l8rm45i654k1"))))
3532 (build-system asdf-build-system/sbcl)
3533 (inputs
3534 `(("sbcl-lift" ,sbcl-lift)))
3535 (arguments
3536 `(#:phases
3537 (modify-phases %standard-phases
3538 (add-after 'check 'delete-test-results
3539 (lambda* (#:key outputs #:allow-other-keys)
3540 (let ((test-results (string-append (assoc-ref outputs "out")
3541 "/share/common-lisp/"
3542 (%lisp-type) "-source"
3543 "/trivial-backtrace"
3544 "/test-results")))
3545 (when (file-exists? test-results)
3546 (delete-file-recursively test-results)))
3547 #t)))))
3548 (home-page "https://common-lisp.net/project/trivial-backtrace/")
3549 (synopsis "Portable simple API to work with backtraces in Common Lisp")
3550 (description
3551 "On of the many things that didn't quite get into the Common Lisp
3552 standard was how to get a Lisp to output its call stack when something has
3553 gone wrong. As such, each Lisp has developed its own notion of what to
3554 display, how to display it, and what sort of arguments can be used to
3555 customize it. @code{trivial-backtrace} is a simple solution to generating a
3556 backtrace portably.")
3557 (license license:expat))))
3558
3559 (define-public cl-trivial-backtrace
3560 (sbcl-package->cl-source-package sbcl-trivial-backtrace))
3561
3562 (define-public sbcl-rfc2388
3563 (let ((commit "591bcf7e77f2c222c43953a80f8c297751dc0c4e")
3564 (revision "1"))
3565 (package
3566 (name "sbcl-rfc2388")
3567 (version (git-version "0.0.0" revision commit))
3568 (source
3569 (origin
3570 (method git-fetch)
3571 (uri (git-reference
3572 (url "https://github.com/jdz/rfc2388.git")
3573 (commit commit)))
3574 (file-name (git-file-name "rfc2388" version))
3575 (sha256
3576 (base32 "0phh5n3clhl9ji8jaxrajidn22d3f0aq87mlbfkkxlnx2pnw694k"))))
3577 (build-system asdf-build-system/sbcl)
3578 (home-page "https://github.com/jdz/rfc2388/")
3579 (synopsis "An implementation of RFC 2388 in Common Lisp")
3580 (description
3581 "This package contains an implementation of RFC 2388, which is used to
3582 process form data posted with HTTP POST method using enctype
3583 \"multipart/form-data\".")
3584 (license license:bsd-2))))
3585
3586 (define-public cl-rfc2388
3587 (sbcl-package->cl-source-package sbcl-rfc2388))
3588
3589 (define-public sbcl-md5
3590 (package
3591 (name "sbcl-md5")
3592 (version "2.0.4")
3593 (source
3594 (origin
3595 (method url-fetch)
3596 (uri (string-append
3597 "https://github.com/pmai/md5/archive/release-" version ".tar.gz"))
3598 (sha256
3599 (base32 "19yl9n0pjdz5gw4qi711lka97xcd9f81ylg434hk7jwn9f2s6w11"))))
3600 (build-system asdf-build-system/sbcl)
3601 (home-page "https://github.com/pmai/md5")
3602 (synopsis
3603 "Common Lisp implementation of the MD5 Message-Digest Algorithm (RFC 1321)")
3604 (description
3605 "This package implements The MD5 Message-Digest Algorithm, as defined in
3606 RFC 1321 by R. Rivest, published April 1992.")
3607 (license license:public-domain)))
3608
3609 (define-public cl-md5
3610 (sbcl-package->cl-source-package sbcl-md5))
3611
3612 (define-public sbcl-cl+ssl
3613 (let ((commit "701e645081e6533a3f0f0b3ac86389d6f506c4b5")
3614 (revision "1"))
3615 (package
3616 (name "sbcl-cl+ssl")
3617 (version (git-version "0.0.0" revision commit))
3618 (source
3619 (origin
3620 (method git-fetch)
3621 (uri (git-reference
3622 (url "https://github.com/cl-plus-ssl/cl-plus-ssl.git")
3623 (commit commit)))
3624 (file-name (git-file-name "cl+ssl" version))
3625 (sha256
3626 (base32 "0nfl275nwhff3m25872y388cydz14kqb6zbwywa6nj85r9k8bgs0"))))
3627 (build-system asdf-build-system/sbcl)
3628 (arguments
3629 '(#:phases
3630 (modify-phases %standard-phases
3631 (add-after 'unpack 'fix-paths
3632 (lambda* (#:key inputs #:allow-other-keys)
3633 (substitute* "src/reload.lisp"
3634 (("libssl.so" all)
3635 (string-append
3636 (assoc-ref inputs "openssl") "/lib/" all))))))))
3637 (inputs
3638 `(("openssl" ,openssl)
3639 ("sbcl-cffi" ,sbcl-cffi)
3640 ("sbcl-trivial-gray-streams" ,sbcl-trivial-gray-streams)
3641 ("sbcl-flexi-streams" ,sbcl-flexi-streams)
3642 ("sbcl-bordeaux-threads" ,sbcl-bordeaux-threads)
3643 ("sbcl-trivial-garbage" ,sbcl-trivial-garbage)
3644 ("sbcl-alexandria" ,sbcl-alexandria)
3645 ("sbcl-trivial-features" ,sbcl-trivial-features)))
3646 (home-page "https://common-lisp.net/project/cl-plus-ssl/")
3647 (synopsis "Common Lisp bindings to OpenSSL")
3648 (description
3649 "This library is a fork of SSL-CMUCL. The original SSL-CMUCL source
3650 code was written by Eric Marsden and includes contributions by Jochen Schmidt.
3651 Development into CL+SSL was done by David Lichteblau.")
3652 (license license:expat))))
3653
3654 (define-public cl-cl+ssl
3655 (sbcl-package->cl-source-package sbcl-cl+ssl))
3656
3657 (define-public sbcl-kmrcl
3658 (let ((version "1.109.0")
3659 (commit "5260068b2eb735af6796740c2db4955afac21636")
3660 (revision "1"))
3661 (package
3662 (name "sbcl-kmrcl")
3663 (version (git-version version revision commit))
3664 (source
3665 (origin
3666 (method git-fetch)
3667 (uri (git-reference
3668 (url "http://git.kpe.io/kmrcl.git/")
3669 (commit commit)))
3670 (file-name (git-file-name name version))
3671 (sha256
3672 (base32 "1va7xjgzfv674bpsli674i7zj3f7wg5kxic41kz18r6hh4n52dfv"))))
3673 (build-system asdf-build-system/sbcl)
3674 (arguments
3675 ;; Tests fail with: :FORCE and :FORCE-NOT arguments not allowed in a
3676 ;; nested call to ASDF/OPERATE:OPERATE unless identically to toplevel
3677 '(#:tests? #f))
3678 (inputs
3679 `(("sbcl-rt" ,sbcl-rt)))
3680 (home-page "http://files.kpe.io/kmrcl/")
3681 (synopsis "General utilities for Common Lisp programs")
3682 (description
3683 "KMRCL is a collection of utilities used by a number of Kevin
3684 Rosenberg's CL packages.")
3685 (license license:llgpl))))
3686
3687 (define-public cl-kmrcl
3688 (sbcl-package->cl-source-package sbcl-kmrcl))
3689
3690 (define-public sbcl-cl-base64
3691 (package
3692 (name "sbcl-cl-base64")
3693 (version "3.3.4")
3694 (source
3695 (origin
3696 (method url-fetch)
3697 (uri (string-append "http://files.kpe.io/cl-base64/cl-base64-"
3698 version ".tar.gz"))
3699 (sha256
3700 (base32 "0pl4zwn5bf18dm8fh1kn1yshaa6kpmfrjyb33z9mq4raqmj3xpv2"))))
3701 (build-system asdf-build-system/sbcl)
3702 (arguments
3703 ;; Tests fail with: :FORCE and :FORCE-NOT arguments not allowed
3704 ;; in a nested call to ASDF/OPERATE:OPERATE unless identically
3705 ;; to toplevel
3706 '(#:tests? #f))
3707 (inputs
3708 `(("sbcl-ptester" ,sbcl-ptester)
3709 ("sbcl-kmrcl" ,sbcl-kmrcl)))
3710 (home-page "http://files.kpe.io/cl-base64/")
3711 (synopsis
3712 "Common Lisp package to encode and decode base64 with URI support")
3713 (description
3714 "This package provides highly optimized base64 encoding and decoding.
3715 Besides conversion to and from strings, integer conversions are supported.
3716 Encoding with Uniform Resource Identifiers is supported by using a modified
3717 encoding table that uses only URI-compatible characters.")
3718 (license license:bsd-3)))
3719
3720 (define-public cl-base64
3721 (sbcl-package->cl-source-package sbcl-cl-base64))
3722
3723 (define-public sbcl-chunga
3724 (package
3725 (name "sbcl-chunga")
3726 (version "1.1.7")
3727 (source
3728 (origin
3729 (method git-fetch)
3730 (uri (git-reference
3731 (url "https://github.com/edicl/chunga.git")
3732 (commit (string-append "v" version))))
3733 (file-name (git-file-name name version))
3734 (sha256
3735 (base32 "0jzn3nyb3f22gm983rfk99smqs3mhb9ivjmasvhq9qla5cl9pyhd"))))
3736 (build-system asdf-build-system/sbcl)
3737 (inputs
3738 `(("sbcl-trivial-gray-streams" ,sbcl-trivial-gray-streams)))
3739 (home-page "https://edicl.github.io/chunga/")
3740 (synopsis "Portable chunked streams for Common Lisp")
3741 (description
3742 "Chunga implements streams capable of chunked encoding on demand as
3743 defined in RFC 2616.")
3744 (license license:bsd-2)))
3745
3746 (define-public cl-chunga
3747 (sbcl-package->cl-source-package sbcl-chunga))
3748
3749 (define-public sbcl-cl-who
3750 (let ((version "1.1.4")
3751 (commit "2c08caa4bafba720409af9171feeba3f32e86d32")
3752 (revision "1"))
3753 (package
3754 (name "sbcl-cl-who")
3755 (version (git-version version revision commit))
3756 (source
3757 (origin
3758 (method git-fetch)
3759 (uri (git-reference
3760 (url "https://github.com/edicl/cl-who.git")
3761 (commit commit)))
3762 (file-name (git-file-name name version))
3763 (sha256
3764 (base32
3765 "0yjb6sr3yazm288m318kqvj9xk8rm9n1lpimgf65ymqv0i5agxsb"))))
3766 (build-system asdf-build-system/sbcl)
3767 (native-inputs
3768 `(("sbcl-flexi-streams" ,sbcl-flexi-streams)))
3769 (home-page "https://edicl.github.io/cl-who/")
3770 (synopsis "Yet another Lisp markup language")
3771 (description
3772 "There are plenty of Lisp Markup Languages out there - every Lisp
3773 programmer seems to write at least one during his career - and CL-WHO (where
3774 WHO means \"with-html-output\" for want of a better acronym) is probably just
3775 as good or bad as the next one.")
3776 (license license:bsd-2))))
3777
3778 (define-public cl-cl-who
3779 (sbcl-package->cl-source-package sbcl-cl-who))
3780
3781 (define-public sbcl-chipz
3782 (let ((version "0.8")
3783 (commit "75dfbc660a5a28161c57f115adf74c8a926bfc4d")
3784 (revision "1"))
3785 (package
3786 (name "sbcl-chipz")
3787 (version (git-version version revision commit))
3788 (source
3789 (origin
3790 (method git-fetch)
3791 (uri (git-reference
3792 (url "https://github.com/froydnj/chipz.git")
3793 (commit commit)))
3794 (file-name (git-file-name name version))
3795 (sha256
3796 (base32
3797 "0plx4rs39zbs4gjk77h4a2q11zpy75fh9v8hnxrvsf8fnakajhwg"))))
3798 (build-system asdf-build-system/sbcl)
3799 (native-inputs
3800 `(("sbcl-flexi-streams" ,sbcl-flexi-streams)))
3801 (home-page "http://method-combination.net/lisp/chipz/")
3802 (synopsis
3803 "Common Lisp library for decompressing deflate, zlib, gzip, and bzip2
3804 data")
3805 (description
3806 "DEFLATE data, defined in RFC1951, forms the core of popular
3807 compression formats such as zlib (RFC 1950) and gzip (RFC 1952). As such,
3808 Chipz also provides for decompressing data in those formats as well. BZIP2 is
3809 the format used by the popular compression tool bzip2.")
3810 ;; The author describes it as "MIT-like"
3811 (license license:expat))))
3812
3813 (define-public cl-chipz
3814 (sbcl-package->cl-source-package sbcl-chipz))
3815
3816 (define-public sbcl-drakma
3817 (package
3818 (name "sbcl-drakma")
3819 (version "2.0.7")
3820 (source
3821 (origin
3822 (method git-fetch)
3823 (uri (git-reference
3824 (url "https://github.com/edicl/drakma.git")
3825 (commit (string-append "v" version))))
3826 (file-name (git-file-name name version))
3827 (sha256
3828 (base32
3829 "1441idnyif9xzx3ln1p3fg36k2v9h4wasjqrzc8y52j61420qpci"))))
3830 (build-system asdf-build-system/sbcl)
3831 (inputs
3832 `(("sbcl-puri" ,sbcl-puri)
3833 ("sbcl-cl-base64" ,sbcl-cl-base64)
3834 ("sbcl-chunga" ,sbcl-chunga)
3835 ("sbcl-flexi-streams" ,sbcl-flexi-streams)
3836 ("sbcl-cl-ppcre" ,sbcl-cl-ppcre)
3837 ("sbcl-chipz" ,sbcl-chipz)
3838 ("sbcl-usocket" ,sbcl-usocket)
3839 ("sbcl-cl+ssl" ,sbcl-cl+ssl)))
3840 (native-inputs
3841 `(("sbcl-fiveam" ,sbcl-fiveam)))
3842 (home-page "https://edicl.github.io/drakma/")
3843 (synopsis "HTTP client written in Common Lisp")
3844 (description
3845 "Drakma is a full-featured HTTP client implemented in Common Lisp. It
3846 knows how to handle HTTP/1.1 chunking, persistent connections, re-usable
3847 sockets, SSL, continuable uploads, file uploads, cookies, and more.")
3848 (license license:bsd-2)))
3849
3850 (define-public cl-drakma
3851 (sbcl-package->cl-source-package sbcl-drakma))
3852
3853 (define-public ecl-drakma
3854 (sbcl-package->ecl-package sbcl-drakma))
3855
3856 (define-public sbcl-hunchentoot
3857 (package
3858 (name "sbcl-hunchentoot")
3859 (version "1.2.38")
3860 (source
3861 (origin
3862 (method git-fetch)
3863 (uri (git-reference
3864 (url "https://github.com/edicl/hunchentoot.git")
3865 (commit (string-append "v" version))))
3866 (file-name (git-file-name "hunchentoot" version))
3867 (sha256
3868 (base32 "1anpcad7w045m4rsjs1f3xdhjwx5cppq1h0vlb3q7dz81fi3i6yq"))))
3869 (build-system asdf-build-system/sbcl)
3870 (native-inputs
3871 `(("sbcl-cl-who" ,sbcl-cl-who)
3872 ("sbcl-drakma" ,sbcl-drakma)))
3873 (inputs
3874 `(("sbcl-chunga" ,sbcl-chunga)
3875 ("sbcl-cl-base64" ,sbcl-cl-base64)
3876 ("sbcl-cl-fad" ,sbcl-cl-fad)
3877 ("sbcl-cl-ppcre" ,sbcl-cl-ppcre)
3878 ("sbcl-flexi-streams" ,sbcl-flexi-streams)
3879 ("sbcl-cl+ssl" ,sbcl-cl+ssl)
3880 ("sbcl-md5" ,sbcl-md5)
3881 ("sbcl-rfc2388" ,sbcl-rfc2388)
3882 ("sbcl-trivial-backtrace" ,sbcl-trivial-backtrace)
3883 ("sbcl-usocket" ,sbcl-usocket)))
3884 (home-page "https://edicl.github.io/hunchentoot/")
3885 (synopsis "Web server written in Common Lisp")
3886 (description
3887 "Hunchentoot is a web server written in Common Lisp and at the same
3888 time a toolkit for building dynamic websites. As a stand-alone web server,
3889 Hunchentoot is capable of HTTP/1.1 chunking (both directions), persistent
3890 connections (keep-alive), and SSL.")
3891 (license license:bsd-2)))
3892
3893 (define-public cl-hunchentoot
3894 (sbcl-package->cl-source-package sbcl-hunchentoot))
3895
3896 (define-public sbcl-trivial-types
3897 (package
3898 (name "sbcl-trivial-types")
3899 (version "0.0.1")
3900 (source
3901 (origin
3902 (method git-fetch)
3903 (uri (git-reference
3904 (url "https://github.com/m2ym/trivial-types.git")
3905 (commit "ee869f2b7504d8aa9a74403641a5b42b16f47d88")))
3906 (file-name (git-file-name name version))
3907 (sha256
3908 (base32 "1s4cp9bdlbn8447q7w7f1wkgwrbvfzp20mgs307l5pxvdslin341"))))
3909 (build-system asdf-build-system/sbcl)
3910 (home-page "https://github.com/m2ym/trivial-types")
3911 (synopsis "Trivial type definitions for Common Lisp")
3912 (description
3913 "TRIVIAL-TYPES provides missing but important type definitions such as
3914 PROPER-LIST, ASSOCIATION-LIST, PROPERTY-LIST and TUPLE.")
3915 (license license:llgpl)))
3916
3917 (define-public cl-trivial-types
3918 (sbcl-package->cl-source-package sbcl-trivial-types))
3919
3920 (define-public sbcl-cl-syntax
3921 (package
3922 (name "sbcl-cl-syntax")
3923 (version "0.0.3")
3924 (source
3925 (origin
3926 (method git-fetch)
3927 (uri (git-reference
3928 (url "https://github.com/m2ym/cl-syntax.git")
3929 (commit "03f0c329bbd55b8622c37161e6278366525e2ccc")))
3930 (file-name (git-file-name "cl-syntax" version))
3931 (sha256
3932 (base32 "17ran8xp77asagl31xv8w819wafh6whwfc9p6dgx22ca537gyl4y"))))
3933 (build-system asdf-build-system/sbcl)
3934 (arguments
3935 '(#:asd-file "cl-syntax.asd"
3936 #:asd-system-name "cl-syntax"))
3937 (inputs `(("sbcl-trivial-types" ,sbcl-trivial-types)
3938 ("sbcl-named-readtables" ,sbcl-named-readtables)))
3939 (home-page "https://github.com/m2ym/cl-syntax")
3940 (synopsis "Reader Syntax Coventions for Common Lisp and SLIME")
3941 (description
3942 "CL-SYNTAX provides Reader Syntax Coventions for Common Lisp and SLIME.")
3943 (license license:llgpl)))
3944
3945 (define-public cl-syntax
3946 (sbcl-package->cl-source-package sbcl-cl-syntax))
3947
3948 (define-public sbcl-cl-annot
3949 (let ((commit "c99e69c15d935eabc671b483349a406e0da9518d")
3950 (revision "1"))
3951 (package
3952 (name "sbcl-cl-annot")
3953 (version (git-version "0.0.0" revision commit))
3954 (source
3955 (origin
3956 (method git-fetch)
3957 (uri (git-reference
3958 (url "https://github.com/m2ym/cl-annot.git")
3959 (commit commit)))
3960 (file-name (git-file-name name version))
3961 (sha256
3962 (base32 "1wq1gs9jjd5m6iwrv06c2d7i5dvqsfjcljgbspfbc93cg5xahk4n"))))
3963 (build-system asdf-build-system/sbcl)
3964 (arguments
3965 '(#:asd-file "cl-annot.asd"
3966 #:asd-system-name "cl-annot"))
3967 (inputs
3968 `(("sbcl-alexandria" ,sbcl-alexandria)))
3969 (home-page "https://github.com/m2ym/cl-annot")
3970 (synopsis "Python-like Annotation Syntax for Common Lisp.")
3971 (description
3972 "@code{cl-annot} is an general annotation library for Common Lisp.")
3973 (license license:llgpl))))
3974
3975 (define-public cl-annot
3976 (sbcl-package->cl-source-package sbcl-cl-annot))
3977
3978 (define-public sbcl-cl-syntax-annot
3979 (package
3980 (inherit sbcl-cl-syntax)
3981 (name "sbcl-cl-syntax-annot")
3982 (arguments
3983 '(#:asd-file "cl-syntax-annot.asd"
3984 #:asd-system-name "cl-syntax-annot"))
3985 (inputs
3986 `(("sbcl-cl-syntax" ,sbcl-cl-syntax)
3987 ("sbcl-cl-annot" ,sbcl-cl-annot)))
3988 (synopsis "Common Lisp reader Syntax for cl-annot")
3989 (description
3990 "CL-SYNTAX provides reader syntax coventions for Common Lisp and
3991 @code{cl-annot}.")))
3992
3993 (define-public cl-syntax-annot
3994 (sbcl-package->cl-source-package sbcl-cl-syntax-annot))
3995
3996 (define-public sbcl-cl-syntax-interpol
3997 (package
3998 (inherit sbcl-cl-syntax)
3999 (name "sbcl-cl-syntax-interpol")
4000 (arguments
4001 '(#:asd-file "cl-syntax-interpol.asd"
4002 #:asd-system-name "cl-syntax-interpol"))
4003 (inputs
4004 `(("sbcl-cl-syntax" ,sbcl-cl-syntax)
4005 ("sbcl-cl-interpol" ,sbcl-cl-interpol)))
4006 (synopsis "Common Lisp reader Syntax for cl-interpol")
4007 (description
4008 "CL-SYNTAX provides reader syntax coventions for Common Lisp and
4009 @code{cl-interpol}.")))
4010
4011 (define-public cl-syntax-interpol
4012 (sbcl-package->cl-source-package sbcl-cl-syntax-interpol))
4013
4014 (define-public sbcl-cl-utilities
4015 (let ((commit "dce2d2f6387091ea90357a130fa6d13a6776884b")
4016 (revision "1"))
4017 (package
4018 (name "sbcl-cl-utilities")
4019 (version (git-version "0.0.0" revision commit))
4020 (source
4021 (origin
4022 (method url-fetch)
4023 (uri
4024 (string-append
4025 "https://gitlab.common-lisp.net/cl-utilities/cl-utilities/-/"
4026 "archive/" commit "/cl-utilities-" commit ".tar.gz"))
4027 (sha256
4028 (base32 "1r46v730yf96nk2vb24qmagv9x96xvd08abqwhf02ghgydv1a7z2"))))
4029 (build-system asdf-build-system/sbcl)
4030 (arguments
4031 '(#:asd-file "cl-utilities.asd"
4032 #:asd-system-name "cl-utilities"
4033 #:phases
4034 (modify-phases %standard-phases
4035 (add-after 'unpack 'fix-paths
4036 (lambda* (#:key inputs #:allow-other-keys)
4037 (substitute* "rotate-byte.lisp"
4038 (("in-package :cl-utilities)" all)
4039 "in-package :cl-utilities)\n\n#+sbcl\n(require :sb-rotate-byte)")))))))
4040 (home-page "http://common-lisp.net/project/cl-utilities")
4041 (synopsis "A collection of semi-standard utilities")
4042 (description
4043 "On Cliki.net <http://www.cliki.net/Common%20Lisp%20Utilities>, there
4044 is a collection of Common Lisp Utilities, things that everybody writes since
4045 they're not part of the official standard. There are some very useful things
4046 there; the only problems are that they aren't implemented as well as you'd
4047 like (some aren't implemented at all) and they aren't conveniently packaged
4048 and maintained. It takes quite a bit of work to carefully implement utilities
4049 for common use, commented and documented, with error checking placed
4050 everywhere some dumb user might make a mistake.")
4051 (license license:public-domain))))
4052
4053 (define-public cl-utilities
4054 (sbcl-package->cl-source-package sbcl-cl-utilities))
4055
4056 (define-public sbcl-map-set
4057 (let ((commit "7b4b545b68b8")
4058 (revision "1"))
4059 (package
4060 (name "sbcl-map-set")
4061 (version (git-version "0.0.0" revision commit))
4062 (source
4063 (origin
4064 (method url-fetch)
4065 (uri (string-append
4066 "https://bitbucket.org/tarballs_are_good/map-set/get/"
4067 commit ".tar.gz"))
4068 (sha256
4069 (base32 "1sx5j5qdsy5fklspfammwb16kjrhkggdavm922a9q86jm5l0b239"))))
4070 (build-system asdf-build-system/sbcl)
4071 (home-page "https://bitbucket.org/tarballs_are_good/map-set")
4072 (synopsis "Set-like data structure")
4073 (description
4074 "Implementation of a set-like data structure with constant time
4075 addition, removal, and random selection.")
4076 (license license:bsd-3))))
4077
4078 (define-public cl-map-set
4079 (sbcl-package->cl-source-package sbcl-map-set))
4080
4081 (define-public sbcl-quri
4082 (let ((commit "b53231c5f19446dd7c24b15a249fefa45ae94f9a")
4083 (revision "2"))
4084 (package
4085 (name "sbcl-quri")
4086 (version (git-version "0.1.0" revision commit))
4087 (source
4088 (origin
4089 (method git-fetch)
4090 (uri (git-reference
4091 (url "https://github.com/fukamachi/quri.git")
4092 (commit commit)))
4093 (file-name (git-file-name name version))
4094 (sha256
4095 (base32 "0cansr63m690ymvhway419178mq2sqnmxm4rdxclbsrnjwwbi36m"))))
4096 (build-system asdf-build-system/sbcl)
4097 (arguments
4098 ;; Tests fail with: Component QURI-ASD::QURI-TEST not found,
4099 ;; required by #<SYSTEM "quri">. Why?
4100 '(#:tests? #f))
4101 (native-inputs `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
4102 ("sbcl-prove" ,sbcl-prove)))
4103 (inputs `(("sbcl-babel" ,sbcl-babel)
4104 ("sbcl-split-sequence" ,sbcl-split-sequence)
4105 ("sbcl-cl-utilities" ,sbcl-cl-utilities)
4106 ("sbcl-alexandria" ,sbcl-alexandria)))
4107 (home-page "https://github.com/fukamachi/quri")
4108 (synopsis "Yet another URI library for Common Lisp")
4109 (description
4110 "QURI (pronounced \"Q-ree\") is yet another URI library for Common
4111 Lisp. It is intended to be a replacement of PURI.")
4112 (license license:bsd-3))))
4113
4114 (define-public cl-quri
4115 (sbcl-package->cl-source-package sbcl-quri))
4116
4117 (define-public sbcl-myway
4118 (let ((commit "286230082a11f879c18b93f17ca571c5f676bfb7")
4119 (revision "1"))
4120 (package
4121 (name "sbcl-myway")
4122 (version (git-version "0.1.0" revision commit))
4123 (source
4124 (origin
4125 (method git-fetch)
4126 (uri (git-reference
4127 (url "https://github.com/fukamachi/myway.git")
4128 (commit commit)))
4129 (file-name (git-file-name "myway" version))
4130 (sha256
4131 (base32 "0briia9bk3lbr0frnx39d1qg6i38dm4j6z9w3yga3d40k6df4a90"))))
4132 (build-system asdf-build-system/sbcl)
4133 (arguments
4134 ;; Tests fail with: Component MYWAY-ASD::MYWAY-TEST not found, required
4135 ;; by #<SYSTEM "myway">. Why?
4136 '(#:tests? #f))
4137 (native-inputs
4138 `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
4139 ("sbcl-prove" ,sbcl-prove)))
4140 (inputs
4141 `(("sbcl-cl-ppcre" ,sbcl-cl-ppcre)
4142 ("sbcl-quri" ,sbcl-quri)
4143 ("sbcl-map-set" ,sbcl-map-set)))
4144 (home-page "https://github.com/fukamachi/myway")
4145 (synopsis "Sinatra-compatible URL routing library for Common Lisp")
4146 (description "My Way is a Sinatra-compatible URL routing library.")
4147 (license license:llgpl))))
4148
4149 (define-public cl-myway
4150 (sbcl-package->cl-source-package sbcl-myway))
4151
4152 (define-public sbcl-xsubseq
4153 (let ((commit "5ce430b3da5cda3a73b9cf5cee4df2843034422b")
4154 (revision "1"))
4155 (package
4156 (name "sbcl-xsubseq")
4157 (version (git-version "0.0.1" revision commit))
4158 (source
4159 (origin
4160 (method git-fetch)
4161 (uri (git-reference
4162 (url "https://github.com/fukamachi/xsubseq")
4163 (commit commit)))
4164 (file-name (git-file-name name version))
4165 (sha256
4166 (base32 "1xz79q0p2mclf3sqjiwf6izdpb6xrsr350bv4mlmdlm6rg5r99px"))))
4167 (build-system asdf-build-system/sbcl)
4168 (arguments
4169 ;; Tests fail with: Component XSUBSEQ-ASD::XSUBSEQ-TEST not found,
4170 ;; required by #<SYSTEM "xsubseq">. Why?
4171 '(#:tests? #f))
4172 (native-inputs
4173 `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
4174 ("sbcl-prove" ,sbcl-prove)))
4175 (home-page "https://github.com/fukamachi/xsubseq")
4176 (synopsis "Efficient way to use \"subseq\"s in Common Lisp")
4177 (description
4178 "XSubseq provides functions to be able to handle \"subseq\"s more
4179 effieiently.")
4180 (license license:bsd-2))))
4181
4182 (define-public cl-xsubseq
4183 (sbcl-package->cl-source-package sbcl-xsubseq))
4184
4185 (define-public sbcl-smart-buffer
4186 (let ((commit "09b9a9a0b3abaa37abe9a730f5aac2643dca4e62")
4187 (revision "1"))
4188 (package
4189 (name "sbcl-smart-buffer")
4190 (version (git-version "0.0.1" revision commit))
4191 (source
4192 (origin
4193 (method git-fetch)
4194 (uri (git-reference
4195 (url "https://github.com/fukamachi/smart-buffer")
4196 (commit commit)))
4197 (file-name (git-file-name name version))
4198 (sha256
4199 (base32 "0qz1zzxx0wm5ff7gpgsq550a59p0qj594zfmm2rglj97dahj54l7"))))
4200 (build-system asdf-build-system/sbcl)
4201 (arguments
4202 ;; Tests fail with: Component SMART-BUFFER-ASD::SMART-BUFFER-TEST not
4203 ;; found, required by #<SYSTEM "smart-buffer">. Why?
4204 `(#:tests? #f))
4205 (native-inputs
4206 `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
4207 ("sbcl-prove" ,sbcl-prove)))
4208 (inputs
4209 `(("sbcl-xsubseq" ,sbcl-xsubseq)
4210 ("sbcl-flexi-streams" ,sbcl-flexi-streams)))
4211 (home-page "https://github.com/fukamachi/smart-buffer")
4212 (synopsis "Smart octets buffer")
4213 (description
4214 "Smart-buffer provides an output buffer which changes the destination
4215 depending on content size.")
4216 (license license:bsd-3))))
4217
4218 (define-public cl-smart-buffer
4219 (sbcl-package->cl-source-package sbcl-smart-buffer))
4220
4221 (define-public sbcl-fast-http
4222 (let ((commit "502a37715dcb8544cc8528b78143a942de662c5a")
4223 (revision "2"))
4224 (package
4225 (name "sbcl-fast-http")
4226 (version (git-version "0.2.0" revision commit))
4227 (source
4228 (origin
4229 (method git-fetch)
4230 (uri (git-reference
4231 (url "https://github.com/fukamachi/fast-http")
4232 (commit commit)))
4233 (file-name (git-file-name name version))
4234 (sha256
4235 (base32 "0al2g7g219jjljsf7b23pbilpgacxy5as5gs2nqf76b5qni396mi"))))
4236 (build-system asdf-build-system/sbcl)
4237 (arguments
4238 ;; Tests fail with: Component FAST-HTTP-ASD::FAST-HTTP-TEST not found,
4239 ;; required by #<SYSTEM "fast-http">. Why?
4240 `(#:tests? #f))
4241 (native-inputs
4242 `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
4243 ("sbcl-prove" ,sbcl-prove)
4244 ("cl-syntax-interpol" ,sbcl-cl-syntax-interpol)))
4245 (inputs
4246 `(("sbcl-alexandria" ,sbcl-alexandria)
4247 ("sbcl-proc-parse" ,sbcl-proc-parse)
4248 ("sbcl-xsubseq" ,sbcl-xsubseq)
4249 ("sbcl-smart-buffer" ,sbcl-smart-buffer)
4250 ("sbcl-cl-utilities" ,sbcl-cl-utilities)))
4251 (home-page "https://github.com/fukamachi/fast-http")
4252 (synopsis "HTTP request/response parser for Common Lisp")
4253 (description
4254 "@code{fast-http} is a HTTP request/response protocol parser for Common
4255 Lisp.")
4256 ;; Author specified the MIT license
4257 (license license:expat))))
4258
4259 (define-public cl-fast-http
4260 (sbcl-package->cl-source-package sbcl-fast-http))
4261
4262 (define-public sbcl-static-vectors
4263 (package
4264 (name "sbcl-static-vectors")
4265 (version "1.8.4")
4266 (source
4267 (origin
4268 (method git-fetch)
4269 (uri (git-reference
4270 (url "https://github.com/sionescu/static-vectors.git")
4271 (commit (string-append "v" version))))
4272 (file-name (git-file-name name version))
4273 (sha256
4274 (base32 "0qvf9z6bhwhm8n45fjwkm7j8dcb58szfvndky65cyn4lpdval7m1"))))
4275 (native-inputs
4276 `(("sbcl-fiveam" ,sbcl-fiveam)))
4277 (inputs
4278 `(("sbcl-cffi-grovel" ,sbcl-cffi-grovel)
4279 ("sbcl-cffi" ,sbcl-cffi)))
4280 (build-system asdf-build-system/sbcl)
4281 (home-page "https://github.com/sionescu/static-vectors")
4282 (synopsis "Allocate SIMPLE-ARRAYs in static memory")
4283 (description
4284 "With @code{static-vectors}, you can create vectors allocated in static
4285 memory.")
4286 (license license:expat)))
4287
4288 (define-public cl-static-vectors
4289 (sbcl-package->cl-source-package sbcl-static-vectors))
4290
4291 (define-public ecl-static-vectors
4292 (sbcl-package->ecl-package sbcl-static-vectors))
4293
4294 (define-public sbcl-marshal
4295 (let ((commit "eff1b15f2b0af2f26f71ad6a4dd5c4beab9299ec")
4296 (revision "1"))
4297 (package
4298 (name "sbcl-marshal")
4299 (version (git-version "1.3.0" revision commit))
4300 (source
4301 (origin
4302 (method git-fetch)
4303 (uri (git-reference
4304 (url "https://github.com/wlbr/cl-marshal.git")
4305 (commit commit)))
4306 (file-name (git-file-name name version))
4307 (sha256
4308 (base32 "08qs6fhk38xpkkjkpcj92mxx0lgy4ygrbbzrmnivdx281syr0gwh"))))
4309 (build-system asdf-build-system/sbcl)
4310 (home-page "https://github.com/wlbr/cl-marshal")
4311 (synopsis "Simple (de)serialization of Lisp datastructures")
4312 (description
4313 "Simple and fast marshalling of Lisp datastructures. Convert any object
4314 into a string representation, put it on a stream an revive it from there.
4315 Only minimal changes required to make your CLOS objects serializable.")
4316 (license license:expat))))
4317
4318 (define-public cl-marshal
4319 (sbcl-package->cl-source-package sbcl-marshal))
4320
4321 (define-public sbcl-checkl
4322 (let ((commit "80328800d047fef9b6e32dfe6bdc98396aee3cc9")
4323 (revision "1"))
4324 (package
4325 (name "sbcl-checkl")
4326 (version (git-version "0.0.0" revision commit))
4327 (source
4328 (origin
4329 (method git-fetch)
4330 (uri (git-reference
4331 (url "https://github.com/rpav/CheckL.git")
4332 (commit commit)))
4333 (file-name (git-file-name name version))
4334 (sha256
4335 (base32 "0bpisihx1gay44xmyr1dmhlwh00j0zzi04rp9fy35i95l2r4xdlx"))))
4336 (build-system asdf-build-system/sbcl)
4337 (arguments
4338 ;; Error while trying to load definition for system checkl-test from
4339 ;; pathname [...]/checkl-test.asd: The function CHECKL:DEFINE-TEST-OP
4340 ;; is undefined.
4341 '(#:tests? #f))
4342 (native-inputs
4343 `(("sbcl-fiveam" ,sbcl-fiveam)))
4344 (inputs
4345 `(("sbcl-marshal" ,sbcl-marshal)))
4346 (home-page "https://github.com/rpav/CheckL/")
4347 (synopsis "Dynamic testing for Common Lisp")
4348 (description
4349 "CheckL lets you write tests dynamically, it checks resulting values
4350 against the last run.")
4351 ;; The author specifies both LLGPL and "BSD", but the "BSD" license
4352 ;; isn't specified anywhere, so I don't know which kind. LLGPL is the
4353 ;; stronger of the two and so I think only listing this should suffice.
4354 (license license:llgpl))))
4355
4356 (define-public cl-checkl
4357 (sbcl-package->cl-source-package sbcl-checkl))
4358
4359 (define-public sbcl-fast-io
4360 (let ((commit "603f4903dd74fb221859da7058ae6ca3853fe64b")
4361 (revision "2"))
4362 (package
4363 (name "sbcl-fast-io")
4364 (version (git-version "1.0.0" revision commit))
4365 (source
4366 (origin
4367 (method git-fetch)
4368 (uri (git-reference
4369 (url "https://github.com/rpav/fast-io.git")
4370 (commit commit)))
4371 (file-name (git-file-name name version))
4372 (sha256
4373 (base32 "00agvc0xx4w715i6ach05p995zpcpghn04xc06zyci06q677vw3n"))))
4374 (build-system asdf-build-system/sbcl)
4375 (arguments
4376 ;; Error while trying to load definition for system fast-io-test from
4377 ;; pathname [...]/fast-io-test.asd: The function CHECKL:DEFINE-TEST-OP
4378 ;; is undefined.
4379 '(#:tests? #f))
4380 (native-inputs
4381 `(("sbcl-fiveam" ,sbcl-fiveam)
4382 ("sbcl-checkl" ,sbcl-checkl)))
4383 (inputs
4384 `(("sbcl-alexandria" ,sbcl-alexandria)
4385 ("sbcl-trivial-gray-streams" ,sbcl-trivial-gray-streams)
4386 ("sbcl-static-vectors" ,sbcl-static-vectors)))
4387 (home-page "https://github.com/rpav/fast-io")
4388 (synopsis "Fast octet-vector/stream I/O for Common Lisp")
4389 (description
4390 "Fast-io is about improving performance to octet-vectors and octet
4391 streams (though primarily the former, while wrapping the latter).")
4392 ;; Author specifies this as NewBSD which is an alias
4393 (license license:bsd-3))))
4394
4395 (define-public cl-fast-io
4396 (sbcl-package->cl-source-package sbcl-fast-io))
4397
4398 (define-public sbcl-jonathan
4399 (let ((commit "1f448b4f7ac8265e56e1c02b32ce383e65316300")
4400 (revision "1"))
4401 (package
4402 (name "sbcl-jonathan")
4403 (version (git-version "0.1.0" revision commit))
4404 (source
4405 (origin
4406 (method git-fetch)
4407 (uri (git-reference
4408 (url "https://github.com/Rudolph-Miller/jonathan.git")
4409 (commit commit)))
4410 (file-name (git-file-name name version))
4411 (sha256
4412 (base32 "14x4iwz3mbag5jzzzr4sb6ai0m9r4q4kyypbq32jmsk2dx1hi807"))))
4413 (build-system asdf-build-system/sbcl)
4414 (arguments
4415 ;; Tests fail with: Component JONATHAN-ASD::JONATHAN-TEST not found,
4416 ;; required by #<SYSTEM "jonathan">. Why?
4417 `(#:tests? #f))
4418 (native-inputs
4419 `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
4420 ("sbcl-prove" ,sbcl-prove)))
4421 (inputs
4422 `(("sbcl-cl-syntax" ,sbcl-cl-syntax)
4423 ("sbcl-cl-syntax-annot" ,sbcl-cl-syntax-annot)
4424 ("sbcl-fast-io" ,sbcl-fast-io)
4425 ("sbcl-proc-parse" ,sbcl-proc-parse)
4426 ("sbcl-cl-ppcre" ,sbcl-cl-ppcre)))
4427 (home-page "https://rudolph-miller.github.io/jonathan/overview.html")
4428 (synopsis "JSON encoder and decoder")
4429 (description
4430 "High performance JSON encoder and decoder. Currently support: SBCL,
4431 CCL.")
4432 ;; Author specifies the MIT license
4433 (license license:expat))))
4434
4435 (define-public cl-jonathan
4436 (sbcl-package->cl-source-package sbcl-jonathan))
4437
4438 (define-public sbcl-http-body
4439 (let ((commit "dd01dc4f5842e3d29728552e5163acce8386eb73")
4440 (revision "1"))
4441 (package
4442 (name "sbcl-http-body")
4443 (version (git-version "0.1.0" revision commit))
4444 (source
4445 (origin
4446 (method git-fetch)
4447 (uri (git-reference
4448 (url "https://github.com/fukamachi/http-body")
4449 (commit commit)))
4450 (file-name (git-file-name name version))
4451 (sha256
4452 (base32 "1jd06snjvxcprhapgfq8sx0y5lrldkvhf206ix6d5a23dd6zcmr0"))))
4453 (build-system asdf-build-system/sbcl)
4454 (arguments
4455 ;; Tests fail with: Component HTTP-BODY-ASD::HTTP-BODY-TEST not
4456 ;; found, required by #<SYSTEM "http-body">. Why?
4457 `(#:tests? #f))
4458 (native-inputs
4459 `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
4460 ("sbcl-prove" ,sbcl-prove)))
4461 (inputs
4462 `(("sbcl-fast-http" ,sbcl-fast-http)
4463 ("sbcl-jonathan" ,sbcl-jonathan)
4464 ("sbcl-quri" ,sbcl-quri)))
4465 (home-page "https://github.com/fukamachi/http-body")
4466 (synopsis "HTTP POST data parser")
4467 (description
4468 "HTTP-Body parses HTTP POST data and returns POST parameters. It
4469 supports application/x-www-form-urlencoded, application/json, and
4470 multipart/form-data.")
4471 (license license:bsd-2))))
4472
4473 (define-public cl-http-body
4474 (sbcl-package->cl-source-package sbcl-http-body))
4475
4476 (define-public sbcl-circular-streams
4477 (let ((commit "e770bade1919c5e8533dd2078c93c3d3bbeb38df")
4478 (revision "1"))
4479 (package
4480 (name "sbcl-circular-streams")
4481 (version (git-version "0.1.0" revision commit))
4482 (source
4483 (origin
4484 (method git-fetch)
4485 (uri (git-reference
4486 (url "https://github.com/fukamachi/circular-streams")
4487 (commit commit)))
4488 (file-name (git-file-name name version))
4489 (sha256
4490 (base32 "1wpw6d5cciyqcf92f7mvihak52pd5s47kk4qq6f0r2z2as68p5rs"))))
4491 (build-system asdf-build-system/sbcl)
4492 (arguments
4493 ;; The tests depend on cl-test-more which is now prove. Prove
4494 ;; tests aren't working for some reason.
4495 `(#:tests? #f))
4496 (inputs
4497 `(("sbcl-fast-io" ,sbcl-fast-io)
4498 ("sbcl-trivial-gray-streams" ,sbcl-trivial-gray-streams)))
4499 (home-page "https://github.com/fukamachi/circular-streams")
4500 (synopsis "Circularly readable streams for Common Lisp")
4501 (description
4502 "Circular-Streams allows you to read streams circularly by wrapping real
4503 streams. Once you reach end-of-file of a stream, it's file position will be
4504 reset to 0 and you're able to read it again.")
4505 (license license:llgpl))))
4506
4507 (define-public cl-circular-streams
4508 (sbcl-package->cl-source-package sbcl-circular-streams))
4509
4510 (define-public sbcl-lack-request
4511 (let ((commit "abff8efeb0c3a848e6bb0022f2b8b7fa3a1bc88b")
4512 (revision "1"))
4513 (package
4514 (name "sbcl-lack-request")
4515 (version (git-version "0.1.0" revision commit))
4516 (source
4517 (origin
4518 (method git-fetch)
4519 (uri (git-reference
4520 (url "https://github.com/fukamachi/lack.git")
4521 (commit commit)))
4522 (file-name (git-file-name "lack-request" version))
4523 (sha256
4524 (base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85"))))
4525 (build-system asdf-build-system/sbcl)
4526 (arguments
4527 '(#:asd-file "lack-request.asd"
4528 #:asd-system-name "lack-request"
4529 #:test-asd-file "t-lack-request.asd"
4530 ;; XXX: Component :CLACK-TEST not found
4531 #:tests? #f))
4532 (native-inputs
4533 `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
4534 ("sbcl-prove" ,sbcl-prove)))
4535 (inputs
4536 `(("sbcl-quri" ,sbcl-quri)
4537 ("sbcl-http-body" ,sbcl-http-body)
4538 ("sbcl-circular-streams" ,sbcl-circular-streams)))
4539 (home-page "https://github.com/fukamachi/lack")
4540 (synopsis "Lack, the core of Clack")
4541 (description
4542 "Lack is a Common Lisp library which allows web applications to be
4543 constructed of modular components. It was originally a part of Clack, however
4544 it's going to be rewritten as an individual project since Clack v2 with
4545 performance and simplicity in mind.")
4546 (license license:llgpl))))
4547
4548 (define-public cl-lack-request
4549 (sbcl-package->cl-source-package sbcl-lack-request))
4550
4551 (define-public sbcl-local-time
4552 (let ((commit "62792705245168d3fc2e04164b9a143477284142")
4553 (revision "1"))
4554 (package
4555 (name "sbcl-local-time")
4556 (version (git-version "1.0.6" revision commit))
4557 (source
4558 (origin
4559 (method git-fetch)
4560 (uri (git-reference
4561 (url "https://github.com/dlowe-net/local-time.git")
4562 (commit commit)))
4563 (file-name (git-file-name name version))
4564 (sha256
4565 (base32 "1r5zq4l1lrgprdr2pw7wwry194yknnllyjf6lx7snypb3k4r3yir"))))
4566 (build-system asdf-build-system/sbcl)
4567 (arguments
4568 ;; TODO: Component :STEFIL not found, required by #<SYSTEM
4569 ;; "local-time/test">
4570 '(#:tests? #f))
4571 (native-inputs
4572 `(("stefil" ,sbcl-hu.dwim.stefil)))
4573 (inputs
4574 `(("sbcl-cl-fad" ,sbcl-cl-fad)))
4575 (home-page "https://common-lisp.net/project/local-time/")
4576 (synopsis "Time manipulation library for Common Lisp")
4577 (description
4578 "The LOCAL-TIME library is a Common Lisp library for the manipulation of
4579 dates and times. It is based almost entirely upon Erik Naggum's paper \"The
4580 Long Painful History of Time\".")
4581 (license license:expat))))
4582
4583 (define-public cl-local-time
4584 (sbcl-package->cl-source-package sbcl-local-time))
4585
4586 (define-public sbcl-lack-response
4587 (let ((commit "abff8efeb0c3a848e6bb0022f2b8b7fa3a1bc88b")
4588 (revision "1"))
4589 (package
4590 (name "sbcl-lack-response")
4591 (version (git-version "0.1.0" revision commit))
4592 (source
4593 (origin
4594 (method git-fetch)
4595 (uri (git-reference
4596 (url "https://github.com/fukamachi/lack.git")
4597 (commit commit)))
4598 (file-name (git-file-name name version))
4599 (sha256
4600 (base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85"))))
4601 (build-system asdf-build-system/sbcl)
4602 (arguments
4603 '(#:asd-file "lack-response.asd"
4604 #:asd-system-name "lack-response"
4605 ;; XXX: no tests for lack-response.
4606 #:tests? #f))
4607 (native-inputs
4608 `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
4609 ("sbcl-prove" ,sbcl-prove)))
4610 (inputs
4611 `(("sbcl-quri" ,sbcl-quri)
4612 ("sbcl-http-body" ,sbcl-http-body)
4613 ("sbcl-circular-streams" ,sbcl-circular-streams)
4614 ("sbcl-local-time" ,sbcl-local-time)))
4615 (home-page "https://github.com/fukamachi/lack")
4616 (synopsis "Lack, the core of Clack")
4617 (description
4618 "Lack is a Common Lisp library which allows web applications to be
4619 constructed of modular components. It was originally a part of Clack, however
4620 it's going to be rewritten as an individual project since Clack v2 with
4621 performance and simplicity in mind.")
4622 (license license:llgpl))))
4623
4624 (define-public cl-lack-response
4625 (sbcl-package->cl-source-package sbcl-lack-response))
4626
4627 (define-public sbcl-lack-component
4628 (let ((commit "abff8efeb0c3a848e6bb0022f2b8b7fa3a1bc88b")
4629 (revision "1"))
4630 (package
4631 (name "sbcl-lack-component")
4632 (version (git-version "0.0.0" revision commit))
4633 (source
4634 (origin
4635 (method git-fetch)
4636 (uri (git-reference
4637 (url "https://github.com/fukamachi/lack.git")
4638 (commit commit)))
4639 (file-name (git-file-name "lack-component" version))
4640 (sha256
4641 (base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85"))))
4642 (build-system asdf-build-system/sbcl)
4643 (arguments
4644 '(#:asd-file "lack-component.asd"
4645 #:asd-system-name "lack-component"
4646 #:test-asd-file "t-lack-component.asd"
4647 ;; XXX: Component :LACK-TEST not found
4648 #:tests? #f))
4649 (native-inputs
4650 `(("prove-asdf" ,sbcl-prove-asdf)))
4651 (home-page "https://github.com/fukamachi/lack")
4652 (synopsis "Lack, the core of Clack")
4653 (description
4654 "Lack is a Common Lisp library which allows web applications to be
4655 constructed of modular components. It was originally a part of Clack, however
4656 it's going to be rewritten as an individual project since Clack v2 with
4657 performance and simplicity in mind.")
4658 (license license:llgpl))))
4659
4660 (define-public cl-lack-component
4661 (sbcl-package->cl-source-package sbcl-lack-component))
4662
4663 (define-public sbcl-lack-util
4664 (let ((commit "abff8efeb0c3a848e6bb0022f2b8b7fa3a1bc88b")
4665 (revision "1"))
4666 (package
4667 (name "sbcl-lack-util")
4668 (version (git-version "0.1.0" revision commit))
4669 (source
4670 (origin
4671 (method git-fetch)
4672 (uri (git-reference
4673 (url "https://github.com/fukamachi/lack.git")
4674 (commit commit)))
4675 (file-name (git-file-name "lack-util" version))
4676 (sha256
4677 (base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85"))))
4678 (build-system asdf-build-system/sbcl)
4679 (arguments
4680 '(#:asd-file "lack-util.asd"
4681 #:asd-system-name "lack-util"
4682 #:test-asd-file "t-lack-util.asd"
4683 ;; XXX: Component :LACK-TEST not found
4684 #:tests? #f))
4685 (native-inputs
4686 `(("prove-asdf" ,sbcl-prove-asdf)))
4687 (inputs
4688 `(("sbcl-ironclad" ,sbcl-ironclad)))
4689 (home-page "https://github.com/fukamachi/lack")
4690 (synopsis "Lack, the core of Clack")
4691 (description
4692 "Lack is a Common Lisp library which allows web applications to be
4693 constructed of modular components. It was originally a part of Clack, however
4694 it's going to be rewritten as an individual project since Clack v2 with
4695 performance and simplicity in mind.")
4696 (license license:llgpl))))
4697
4698 (define-public cl-lack-util
4699 (sbcl-package->cl-source-package sbcl-lack-util))
4700
4701 (define-public sbcl-lack-middleware-backtrace
4702 (let ((commit "abff8efeb0c3a848e6bb0022f2b8b7fa3a1bc88b")
4703 (revision "1"))
4704 (package
4705 (name "sbcl-lack-middleware-backtrace")
4706 (version (git-version "0.1.0" revision commit))
4707 (source
4708 (origin
4709 (method git-fetch)
4710 (uri (git-reference
4711 (url "https://github.com/fukamachi/lack.git")
4712 (commit commit)))
4713 (file-name (git-file-name "lack-middleware-backtrace" version))
4714 (sha256
4715 (base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85"))))
4716 (build-system asdf-build-system/sbcl)
4717 (arguments
4718 '(#:asd-file "lack-middleware-backtrace.asd"
4719 #:asd-system-name "lack-middleware-backtrace"
4720 #:test-asd-file "t-lack-middleware-backtrace.asd"
4721 ;; XXX: Component :LACK not found
4722 #:tests? #f))
4723 (native-inputs
4724 `(("prove-asdf" ,sbcl-prove-asdf)))
4725 (home-page "https://github.com/fukamachi/lack")
4726 (synopsis "Lack, the core of Clack")
4727 (description
4728 "Lack is a Common Lisp library which allows web applications to be
4729 constructed of modular components. It was originally a part of Clack, however
4730 it's going to be rewritten as an individual project since Clack v2 with
4731 performance and simplicity in mind.")
4732 (license license:llgpl))))
4733
4734 (define-public cl-lack-middleware-backtrace
4735 (sbcl-package->cl-source-package sbcl-lack-middleware-backtrace))
4736
4737 (define-public sbcl-trivial-mimes
4738 (let ((commit "303f8ac0aa6ca0bc139aa3c34822e623c3723fab")
4739 (revision "1"))
4740 (package
4741 (name "sbcl-trivial-mimes")
4742 (version (git-version "1.1.0" revision commit))
4743 (source
4744 (origin
4745 (method git-fetch)
4746 (uri (git-reference
4747 (url "https://github.com/Shinmera/trivial-mimes.git")
4748 (commit commit)))
4749 (file-name (git-file-name name version))
4750 (sha256
4751 (base32 "17jxgl47r695bvsb7wi3n2ws5rp1zzgvw0zii8cy5ggw4b4ayv6m"))))
4752 (build-system asdf-build-system/sbcl)
4753 (arguments
4754 '(#:phases
4755 (modify-phases %standard-phases
4756 (add-after
4757 'unpack 'fix-paths
4758 (lambda* (#:key inputs #:allow-other-keys)
4759 (let ((anchor "#p\"/etc/mime.types\""))
4760 (substitute* "mime-types.lisp"
4761 ((anchor all)
4762 (string-append
4763 anchor "\n"
4764 "(asdf:system-relative-pathname :trivial-mimes "
4765 "\"../../share/common-lisp/" (%lisp-type)
4766 "-source/trivial-mimes/mime.types\")")))))))))
4767 (native-inputs
4768 `(("stefil" ,sbcl-hu.dwim.stefil)))
4769 (inputs
4770 `(("sbcl-cl-fad" ,sbcl-cl-fad)))
4771 (home-page "https://shinmera.github.io/trivial-mimes/")
4772 (synopsis "Tiny Common Lisp library to detect mime types in files")
4773 (description
4774 "This is a teensy library that provides some functions to determine the
4775 mime-type of a file.")
4776 (license license:artistic2.0))))
4777
4778 (define-public cl-trivial-mimes
4779 (sbcl-package->cl-source-package sbcl-trivial-mimes))
4780
4781 (define-public ecl-trivial-mimes
4782 (sbcl-package->ecl-package sbcl-trivial-mimes))
4783
4784 (define-public sbcl-lack-middleware-static
4785 (let ((commit "abff8efeb0c3a848e6bb0022f2b8b7fa3a1bc88b")
4786 (revision "1"))
4787 (package
4788 (name "sbcl-lack-middleware-static")
4789 (version (git-version "0.1.0" revision commit))
4790 (source
4791 (origin
4792 (method git-fetch)
4793 (uri (git-reference
4794 (url "https://github.com/fukamachi/lack.git")
4795 (commit commit)))
4796 (file-name (git-file-name "lack-middleware-static" version))
4797 (sha256
4798 (base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85"))))
4799 (build-system asdf-build-system/sbcl)
4800 (arguments
4801 '(#:asd-file "lack-middleware-static.asd"
4802 #:asd-system-name "lack-middleware-static"
4803 #:test-asd-file "t-lack-middleware-static.asd"
4804 ;; XXX: Component :LACK not found
4805 #:tests? #f))
4806 (native-inputs
4807 `(("prove-asdf" ,sbcl-prove-asdf)))
4808 (inputs
4809 `(("sbcl-ironclad" ,sbcl-ironclad)
4810 ("sbcl-trivial-mimes" ,sbcl-trivial-mimes)
4811 ("sbcl-local-time" ,sbcl-local-time)))
4812 (home-page "https://github.com/fukamachi/lack")
4813 (synopsis "Lack, the core of Clack")
4814 (description
4815 "Lack is a Common Lisp library which allows web applications to be
4816 constructed of modular components. It was originally a part of Clack, however
4817 it's going to be rewritten as an individual project since Clack v2 with
4818 performance and simplicity in mind.")
4819 (license license:llgpl))))
4820
4821 (define-public cl-lack-middleware-static
4822 (sbcl-package->cl-source-package sbcl-lack-middleware-static))
4823
4824 (define-public sbcl-lack
4825 (let ((commit "abff8efeb0c3a848e6bb0022f2b8b7fa3a1bc88b")
4826 (revision "1"))
4827 (package
4828 (name "sbcl-lack")
4829 (version (git-version "0.1.0" revision commit))
4830 (source
4831 (origin
4832 (method git-fetch)
4833 (uri (git-reference
4834 (url "https://github.com/fukamachi/lack.git")
4835 (commit commit)))
4836 (file-name (git-file-name "lack" version))
4837 (sha256
4838 (base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85"))))
4839 (build-system asdf-build-system/sbcl)
4840 (arguments
4841 '(#:test-asd-file "t-lack.asd"
4842 ;; XXX: Component :CLACK not found
4843 #:tests? #f))
4844 (native-inputs
4845 `(("prove-asdf" ,sbcl-prove-asdf)))
4846 (inputs
4847 `(("sbcl-lack-component" ,sbcl-lack-component)
4848 ("sbcl-lack-util" ,sbcl-lack-util)))
4849 (home-page "https://github.com/fukamachi/lack")
4850 (synopsis "Lack, the core of Clack")
4851 (description
4852 "Lack is a Common Lisp library which allows web applications to be
4853 constructed of modular components. It was originally a part of Clack, however
4854 it's going to be rewritten as an individual project since Clack v2 with
4855 performance and simplicity in mind.")
4856 (license license:llgpl))))
4857
4858 (define-public cl-lack
4859 (sbcl-package->cl-source-package sbcl-lack))
4860
4861 (define-public sbcl-ningle
4862 (let ((commit "50bd4f09b5a03a7249bd4d78265d6451563b25ad")
4863 (revision "1"))
4864 (package
4865 (name "sbcl-ningle")
4866 (version (git-version "0.3.0" revision commit))
4867 (source
4868 (origin
4869 (method git-fetch)
4870 (uri (git-reference
4871 (url "https://github.com/fukamachi/ningle.git")
4872 (commit commit)))
4873 (file-name (git-file-name name version))
4874 (sha256
4875 (base32 "1bsl8cnxhacb8p92z9n89vhk1ikmij5zavk0m2zvmj7iqm79jzgw"))))
4876 (build-system asdf-build-system/sbcl)
4877 (arguments
4878 ;; TODO: pull in clack-test
4879 '(#:tests? #f
4880 #:phases
4881 (modify-phases %standard-phases
4882 (delete 'cleanup-files)
4883 (delete 'cleanup)
4884 (add-before 'cleanup 'combine-fasls
4885 (lambda* (#:key outputs #:allow-other-keys)
4886 (let* ((out (assoc-ref outputs "out"))
4887 (lib (string-append out "/lib/sbcl"))
4888 (ningle-path (string-append lib "/ningle"))
4889 (fasl-files (find-files out "\\.fasl$")))
4890 (mkdir-p ningle-path)
4891 (let ((fasl-path (lambda (name)
4892 (string-append ningle-path
4893 "/"
4894 (basename name)
4895 "--system.fasl"))))
4896 (for-each (lambda (file)
4897 (rename-file file
4898 (fasl-path
4899 (basename file ".fasl"))))
4900 fasl-files))
4901 fasl-files)
4902 #t)))))
4903 (native-inputs
4904 `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
4905 ("sbcl-prove" ,sbcl-prove)))
4906 (inputs
4907 `(("sbcl-cl-syntax" ,sbcl-cl-syntax)
4908 ("sbcl-cl-syntax-annot" ,sbcl-cl-syntax-annot)
4909 ("sbcl-myway" ,sbcl-myway)
4910 ("sbcl-lack-request" ,sbcl-lack-request)
4911 ("sbcl-lack-response" ,sbcl-lack-response)
4912 ("sbcl-lack-component" ,sbcl-lack-component)
4913 ("sbcl-alexandria" ,sbcl-alexandria)
4914 ("sbcl-babel" ,sbcl-babel)))
4915 (home-page "https://8arrow.org/ningle/")
4916 (synopsis "Super micro framework for Common Lisp")
4917 (description
4918 "Ningle is a lightweight web application framework for Common Lisp.")
4919 (license license:llgpl))))
4920
4921 (define-public cl-ningle
4922 (sbcl-package->cl-source-package sbcl-ningle))
4923
4924 (define-public sbcl-clack
4925 (let ((commit "e3e032843bb1220ab96263c411aa7f2feb4746e0")
4926 (revision "1"))
4927 (package
4928 (name "sbcl-clack")
4929 (version (git-version "2.0.0" revision commit))
4930 (source
4931 (origin
4932 (method git-fetch)
4933 (uri (git-reference
4934 (url "https://github.com/fukamachi/clack.git")
4935 (commit commit)))
4936 (file-name (git-file-name name version))
4937 (sha256
4938 (base32 "1ymzs6qyrwhlj6cgqsnpyn6g5cbp7a3s1vgxwna20y2q7y4iacy0"))))
4939 (build-system asdf-build-system/sbcl)
4940 (inputs
4941 `(("sbcl-lack" ,sbcl-lack)
4942 ("sbcl-lack-middleware-backtrace" ,sbcl-lack-middleware-backtrace)
4943 ("sbcl-bordeaux-threads" ,sbcl-bordeaux-threads)))
4944 (home-page "https://github.com/fukamachi/clack")
4945 (synopsis "Web Application Environment for Common Lisp")
4946 (description
4947 "Clack is a web application environment for Common Lisp inspired by
4948 Python's WSGI and Ruby's Rack.")
4949 (license license:llgpl))))
4950
4951 (define-public cl-clack
4952 (sbcl-package->cl-source-package sbcl-clack))
4953
4954 (define-public sbcl-log4cl
4955 (let ((commit "611e094458504b938d49de904eab141285328c7c")
4956 (revision "1"))
4957 (package
4958 (name "sbcl-log4cl")
4959 (build-system asdf-build-system/sbcl)
4960 (version "1.1.2")
4961 (source
4962 (origin
4963 (method git-fetch)
4964 (uri (git-reference
4965 (url "https://github.com/sharplispers/log4cl")
4966 (commit commit)))
4967 (file-name (git-file-name name version))
4968 (sha256
4969 (base32
4970 "08jly0s0g26b56hhpfizxsb4j0yvbh946sd205gr42dkzv8l7dsc"))))
4971 ;; FIXME: tests require stefil, sbcl-hu.dwim.stefil wont work
4972 (arguments
4973 `(#:tests? #f))
4974 (inputs `(("bordeaux-threads" ,sbcl-bordeaux-threads)))
4975 (synopsis "Common Lisp logging framework, modeled after Log4J")
4976 (home-page "https://github.com/7max/log4cl")
4977 (description "This is a Common Lisp logging framework that can log at
4978 various levels and mix text with expressions.")
4979 (license license:asl2.0))))
4980
4981 (define-public cl-log4cl
4982 (sbcl-package->cl-source-package sbcl-log4cl))
4983
4984 (define-public ecl-log4cl
4985 (sbcl-package->ecl-package sbcl-log4cl))
4986
4987 (define-public sbcl-find-port
4988 (let ((commit "00c96a25af93a0f8681d34ec548861f2d7485478")
4989 (revision "1"))
4990 (package
4991 (name "sbcl-find-port")
4992 (build-system asdf-build-system/sbcl)
4993 (version "0.1")
4994 (home-page "https://github.com/eudoxia0/find-port")
4995 (source
4996 (origin
4997 (method git-fetch)
4998 (uri (git-reference
4999 (url home-page)
5000 (commit commit)))
5001 (file-name (git-file-name name version))
5002 (sha256
5003 (base32
5004 "0d6dzbb45jh0rx90wgs6v020k2xa87mvzas3mvfzvivjvqqlpryq"))))
5005 (native-inputs
5006 `(("fiveam" ,sbcl-fiveam)))
5007 (inputs
5008 `(("sbcl-usocket" ,sbcl-usocket)))
5009 (synopsis "Find open ports programmatically in Common Lisp")
5010 (description "This is a small Common Lisp library that finds an open
5011 port within a range.")
5012 (license license:expat))))
5013
5014 (define-public cl-find-port
5015 (sbcl-package->cl-source-package sbcl-find-port))
5016
5017 (define-public ecl-find-port
5018 (sbcl-package->ecl-package sbcl-find-port))
5019
5020 (define-public sbcl-clunit
5021 (let ((commit "6f6d72873f0e1207f037470105969384f8380628")
5022 (revision "1"))
5023 (package
5024 (name "sbcl-clunit")
5025 (version (git-version "0.2.3" revision commit))
5026 (source
5027 (origin
5028 (method git-fetch)
5029 (uri (git-reference
5030 (url "https://github.com/tgutu/clunit.git")
5031 (commit commit)))
5032 (file-name (git-file-name name version))
5033 (sha256
5034 (base32
5035 "1idf2xnqzlhi8rbrqmzpmb3i1l6pbdzhhajkmhwbp6qjkmxa4h85"))))
5036 (build-system asdf-build-system/sbcl)
5037 (synopsis "CLUnit is a Common Lisp unit testing framework")
5038 (description
5039 "CLUnit is a Common Lisp unit testing framework. It is designed
5040 to be easy to use so that you can quickly start testing. CLUnit
5041 provides a rich set of features aimed at improving your unit testing
5042 experience.")
5043 (home-page "https://tgutu.github.io/clunit/")
5044 ;; MIT License
5045 (license license:expat))))
5046
5047 (define-public cl-clunit
5048 (sbcl-package->cl-source-package sbcl-clunit))
5049
5050 (define-public ecl-clunit
5051 (sbcl-package->ecl-package sbcl-clunit))
5052
5053 (define-public sbcl-py4cl
5054 (let ((commit "4c8a2b0814fd311f978964f825ce012290f60136")
5055 (revision "1"))
5056 (package
5057 (name "sbcl-py4cl")
5058 (version (git-version "0.0.0" revision commit))
5059 (source
5060 (origin
5061 (method git-fetch)
5062 (uri (git-reference
5063 (url "https://github.com/bendudson/py4cl.git")
5064 (commit commit)))
5065 (file-name (git-file-name name version))
5066 (sha256
5067 (base32
5068 "15mk7qdqjkj56gdnbyrdyz6r7m1h26ldvn6ch96pmvg5vmr1m45r"))
5069 (modules '((guix build utils)))))
5070 (build-system asdf-build-system/sbcl)
5071 (native-inputs
5072 `(("sbcl-clunit" ,sbcl-clunit)))
5073 (inputs
5074 `(("sbcl-trivial-garbage" ,sbcl-trivial-garbage)))
5075 (propagated-inputs
5076 ;; This package doesn't do anything without python available
5077 `(("python" ,python)
5078 ;; For multi-dimensional array support
5079 ("python-numpy" ,python-numpy)))
5080 (arguments
5081 '(#:phases
5082 (modify-phases %standard-phases
5083 (add-after 'unpack 'replace-*base-directory*-var
5084 (lambda* (#:key outputs #:allow-other-keys)
5085 ;; In the ASD, the author makes an attempt to
5086 ;; programatically determine the location of the
5087 ;; source-code so lisp can call into "py4cl.py". We can
5088 ;; hard-code this since we know where this file will
5089 ;; reside.
5090 (substitute* "src/callpython.lisp"
5091 (("py4cl/config:\\*base-directory\\*")
5092 (string-append
5093 "\""
5094 (assoc-ref outputs "out")
5095 "/share/common-lisp/sbcl-source/py4cl/"
5096 "\""))))))))
5097 (synopsis "Call python from Common Lisp")
5098 (description
5099 "Py4CL is a bridge between Common Lisp and Python, which enables Common
5100 Lisp to interact with Python code. It uses streams to communicate with a
5101 separate python process, the approach taken by cl4py. This is different to
5102 the CFFI approach used by burgled-batteries, but has the same goal.")
5103 (home-page "https://github.com/bendudson/py4cl")
5104 ;; MIT License
5105 (license license:expat))))
5106
5107 (define-public cl-py4cl
5108 (sbcl-package->cl-source-package sbcl-py4cl))
5109
5110 (define-public ecl-py4cl
5111 (sbcl-package->ecl-package sbcl-py4cl))
5112
5113 (define-public sbcl-parse-declarations
5114 (let ((commit "549aebbfb9403a7fe948654126b9c814f443f4f2")
5115 (revision "1"))
5116 (package
5117 (name "sbcl-parse-declarations")
5118 (version (git-version "1.0.0" revision commit))
5119 (source
5120 (origin
5121 (method git-fetch)
5122 (uri (git-reference
5123 (url (string-append
5124 "https://gitlab.common-lisp.net/parse-declarations/"
5125 "parse-declarations.git"))
5126 (commit commit)))
5127 (file-name (git-file-name name version))
5128 (sha256
5129 (base32 "03g5qks4c59nmxa48pbslxkfh77h8hn8566jddp6m9pl15dzzpxd"))))
5130 (build-system asdf-build-system/sbcl)
5131 (arguments
5132 `(#:asd-file "parse-declarations-1.0.asd"
5133 #:asd-system-name "parse-declarations-1.0"))
5134 (home-page "https://common-lisp.net/project/parse-declarations/")
5135 (synopsis "Parse, filter, and build declarations")
5136 (description
5137 "Parse-Declarations is a Common Lisp library to help writing
5138 macros which establish bindings. To be semantically correct, such
5139 macros must take user declarations into account, as these may affect
5140 the bindings they establish. Yet the ANSI standard of Common Lisp does
5141 not provide any operators to work with declarations in a convenient,
5142 high-level way. This library provides such operators.")
5143 ;; MIT License
5144 (license license:expat))))
5145
5146 (define-public cl-parse-declarations
5147 (sbcl-package->cl-source-package sbcl-parse-declarations))
5148
5149 (define-public ecl-parse-declarations
5150 (sbcl-package->ecl-package sbcl-parse-declarations))
5151
5152 (define-public sbcl-cl-quickcheck
5153 (let ((commit "807b2792a30c883a2fbecea8e7db355b50ba662f")
5154 (revision "1"))
5155 (package
5156 (name "sbcl-cl-quickcheck")
5157 (version (git-version "0.0.4" revision commit))
5158 (source
5159 (origin
5160 (method git-fetch)
5161 (uri (git-reference
5162 (url "https://github.com/mcandre/cl-quickcheck.git")
5163 (commit commit)))
5164 (file-name (git-file-name name version))
5165 (sha256
5166 (base32
5167 "165lhypq5xkcys6hvzb3jq7ywnmqvzaflda29qk2cbs3ggas4767"))))
5168 (build-system asdf-build-system/sbcl)
5169 (synopsis
5170 "Common Lisp port of the QuickCheck unit test framework")
5171 (description
5172 "Common Lisp port of the QuickCheck unit test framework")
5173 (home-page "https://github.com/mcandre/cl-quickcheck")
5174 ;; MIT
5175 (license license:expat))))
5176
5177 (define-public cl-cl-quickcheck
5178 (sbcl-package->cl-source-package sbcl-cl-quickcheck))
5179
5180 (define-public ecl-cl-quickcheck
5181 (sbcl-package->ecl-package sbcl-cl-quickcheck))
5182
5183 (define-public sbcl-burgled-batteries3
5184 (let ((commit "f65f454d13bb6c40e17e9ec62e41eb5069e09760")
5185 (revision "2"))
5186 (package
5187 (name "sbcl-burgled-batteries3")
5188 (version (git-version "0.0.0" revision commit))
5189 (source
5190 (origin
5191 (method git-fetch)
5192 (uri (git-reference
5193 (url "https://github.com/snmsts/burgled-batteries3.git")
5194 (commit commit)))
5195 (file-name (git-file-name name version))
5196 (sha256
5197 (base32
5198 "1nzn7jawrfajyzwfnzrg2cmn9xxadcqh4szbpg0jggkhdkdzz4wa"))))
5199 (build-system asdf-build-system/sbcl)
5200 (arguments
5201 `(#:tests? #f
5202 #:modules (((guix build python-build-system) #:select (python-version))
5203 ,@%asdf-build-system-modules)
5204 #:imported-modules ((guix build python-build-system)
5205 ,@%asdf-build-system-modules)
5206 #:phases
5207 (modify-phases (@ (guix build asdf-build-system) %standard-phases)
5208 (add-after 'unpack 'set-*cpython-include-dir*-var
5209 (lambda* (#:key inputs #:allow-other-keys)
5210 (let ((python (assoc-ref inputs "python")))
5211 (setenv "BB_PYTHON3_INCLUDE_DIR"
5212 (string-append python "/include/python"
5213 (python-version python)
5214 "m"))
5215 (setenv "BB_PYTHON3_DYLIB"
5216 (string-append python "/lib/libpython3.so"))
5217 #t))))))
5218 (native-inputs
5219 `(("sbcl-cl-fad" ,sbcl-cl-fad)
5220 ("sbcl-lift" ,sbcl-lift)
5221 ("sbcl-cl-quickcheck" ,sbcl-cl-quickcheck)))
5222 (inputs
5223 `(("python" ,python)
5224 ("sbcl-cffi" ,sbcl-cffi)
5225 ("sbcl-cffi-grovel" ,sbcl-cffi-grovel)
5226 ("sbcl-alexandria" , sbcl-alexandria)
5227 ("sbcl-parse-declarations-1.0" ,sbcl-parse-declarations)
5228 ("sbcl-trivial-garbage" ,sbcl-trivial-garbage)))
5229 (synopsis "Bridge between Python and Lisp (FFI bindings, etc.)")
5230 (description
5231 "This package provides a shim between Python3 (specifically, the
5232 CPython implementation of Python) and Common Lisp.")
5233 (home-page "https://github.com/snmsts/burgled-batteries3")
5234 (license license:expat))))
5235
5236 (define-public cl-burgled-batteries3
5237 (sbcl-package->cl-source-package sbcl-burgled-batteries3))
5238
5239 (define-public ecl-burgled-batteries3
5240 (sbcl-package->ecl-package sbcl-burgled-batteries3))
5241
5242 (define-public sbcl-metabang-bind
5243 (let ((commit "c93b7f7e1c18c954c2283efd6a7fdab36746ab5e")
5244 (revision "1"))
5245 (package
5246 (name "sbcl-metabang-bind")
5247 (version (git-version "0.8.0" revision commit))
5248 (source
5249 (origin
5250 (method git-fetch)
5251 (uri (git-reference
5252 (url "https://github.com/gwkkwg/metabang-bind.git")
5253 (commit commit)))
5254 (file-name (git-file-name name version))
5255 (sha256
5256 (base32
5257 "0hd0kr91795v77akpbcyqiss9p0p7ypa9dznrllincnmgvsxlmf0"))))
5258 (build-system asdf-build-system/sbcl)
5259 (native-inputs
5260 `(("sbcl-lift" ,sbcl-lift)))
5261 (synopsis "Macro that generalizes @code{multiple-value-bind} etc.")
5262 (description
5263 "Bind extends the idea of of let and destructing to provide a uniform
5264 syntax for all your accessor needs. It combines @code{let},
5265 @code{destructuring-bind}, @code{with-slots}, @code{with-accessors}, structure
5266 editing, property or association-lists, and @code{multiple-value-bind} and a
5267 whole lot more into a single form.")
5268 (home-page "https://common-lisp.net/project/metabang-bind/")
5269 ;; MIT License
5270 (license license:expat))))
5271
5272 (define-public cl-metabang-bind
5273 (sbcl-package->cl-source-package sbcl-metabang-bind))
5274
5275 (define-public ecl-metabang-bind
5276 (sbcl-package->ecl-package sbcl-metabang-bind))
5277
5278 (define-public sbcl-fare-utils
5279 (let ((commit "66e9c6f1499140bc00ccc22febf2aa528cbb5724")
5280 (revision "1"))
5281 (package
5282 (name "sbcl-fare-utils")
5283 (version (git-version "1.0.0.5" revision commit))
5284 (source
5285 (origin
5286 (method git-fetch)
5287 (uri
5288 (git-reference
5289 (url
5290 "https://gitlab.common-lisp.net/frideau/fare-utils.git")
5291 (commit commit)))
5292 (file-name (git-file-name name version))
5293 (sha256
5294 (base32
5295 "01wsr1aap3jdzhn4hrqjbhsjx6qci9dbd3gh4gayv1p49rbg8aqr"))))
5296 (build-system asdf-build-system/sbcl)
5297 (arguments
5298 `(#:test-asd-file "test/fare-utils-test.asd"))
5299 (native-inputs
5300 `(("sbcl-hu.dwim.stefil" ,sbcl-hu.dwim.stefil)))
5301 (synopsis "Collection of utilities and data structures")
5302 (description
5303 "fare-utils is a small collection of utilities. It contains a lot of
5304 basic everyday functions and macros.")
5305 (home-page "https://gitlab.common-lisp.net/frideau/fare-utils")
5306 ;; MIT License
5307 (license license:expat))))
5308
5309 (define-public cl-fare-utils
5310 (sbcl-package->cl-source-package sbcl-fare-utils))
5311
5312 (define-public ecl-fare-utils
5313 (sbcl-package->ecl-package sbcl-fare-utils))
5314
5315 (define-public sbcl-trivial-utf-8
5316 (let ((commit "4d427cfbb1c452436a0efb71c3205c9da67f718f")
5317 (revision "1"))
5318 (package
5319 (name "sbcl-trivial-utf-8")
5320 (version (git-version "0.0.0" revision commit))
5321 (source
5322 (origin
5323 (method git-fetch)
5324 (uri
5325 (git-reference
5326 (url (string-append "https://gitlab.common-lisp.net/"
5327 "trivial-utf-8/trivial-utf-8.git"))
5328 (commit commit)))
5329 (file-name (git-file-name name version))
5330 (sha256
5331 (base32
5332 "1jz27gz8gvqdmvp3k9bxschs6d5b3qgk94qp2bj6nv1d0jc3m1l1"))))
5333 (arguments
5334 ;; Guix incorrectly assumes the "8" is part of the version
5335 ;; number and lobs it off.
5336 `(#:asd-file "trivial-utf-8.asd"
5337 #:asd-system-name "trivial-utf-8"))
5338 (build-system asdf-build-system/sbcl)
5339 (synopsis "UTF-8 input/output library")
5340 (description
5341 "The Babel library solves a similar problem while understanding more
5342 encodings. Trivial UTF-8 was written before Babel existed, but for new
5343 projects you might be better off going with Babel. The one plus that Trivial
5344 UTF-8 has is that it doesn't depend on any other libraries.")
5345 (home-page "https://common-lisp.net/project/trivial-utf-8/")
5346 (license license:bsd-3))))
5347
5348 (define-public cl-trivial-utf-8
5349 (sbcl-package->cl-source-package sbcl-trivial-utf-8))
5350
5351 (define-public ecl-trivial-utf-8
5352 (sbcl-package->ecl-package sbcl-trivial-utf-8))
5353
5354 (define-public sbcl-idna
5355 (package
5356 (name "sbcl-idna")
5357 (build-system asdf-build-system/sbcl)
5358 (version "0.2.2")
5359 (home-page "https://github.com/antifuchs/idna")
5360 (source
5361 (origin
5362 (method git-fetch)
5363 (uri (git-reference
5364 (url home-page)
5365 (commit version)))
5366 (file-name (git-file-name name version))
5367 (sha256
5368 (base32
5369 "00nbr3mffxhlq14gg9d16pa6691s4qh35inyw76v906s77khm5a2"))))
5370 (inputs
5371 `(("split-sequence" ,sbcl-split-sequence)))
5372 (synopsis "IDNA string encoding and decoding routines for Common Lisp")
5373 (description "This Common Lisp library provides string encoding and
5374 decoding routines for IDNA, the International Domain Names in Applications.")
5375 (license license:expat)))
5376
5377 (define-public cl-idna
5378 (sbcl-package->cl-source-package sbcl-idna))
5379
5380 (define-public ecl-idna
5381 (sbcl-package->ecl-package sbcl-idna))
5382
5383 (define-public sbcl-swap-bytes
5384 (package
5385 (name "sbcl-swap-bytes")
5386 (build-system asdf-build-system/sbcl)
5387 (version "1.2")
5388 (home-page "https://github.com/sionescu/swap-bytes")
5389 (source
5390 (origin
5391 (method git-fetch)
5392 (uri (git-reference
5393 (url home-page)
5394 (commit (string-append "v" version))))
5395 (file-name (git-file-name name version))
5396 (sha256
5397 (base32
5398 "1hw1v1lw26rifyznpnj1csphha9jgzwpiic16ni3pvs6hcsni9rz"))))
5399 (inputs
5400 `(("trivial-features" ,sbcl-trivial-features)))
5401 (native-inputs
5402 `(("fiveam" ,sbcl-fiveam)))
5403 (synopsis "Efficient endianness conversion for Common Lisp")
5404 (description "This Common Lisp library provides optimized byte-swapping
5405 primitives. The library can change endianness of unsigned integers of length
5406 1/2/4/8. Very useful in implementing various network protocols and file
5407 formats.")
5408 (license license:expat)))
5409
5410 (define-public cl-swap-bytes
5411 (sbcl-package->cl-source-package sbcl-swap-bytes))
5412
5413 (define-public ecl-swap-bytes
5414 (sbcl-package->ecl-package sbcl-swap-bytes))
5415
5416 (define-public sbcl-iolib.asdf
5417 ;; Latest release is from June 2017.
5418 (let ((commit "7f5ea3a8457a29d224b24653c2b3657fb1898021")
5419 (revision "2"))
5420 (package
5421 (name "sbcl-iolib.asdf")
5422 (build-system asdf-build-system/sbcl)
5423 (version (git-version "0.8.3" revision commit))
5424 (home-page "https://github.com/sionescu/iolib")
5425 (source
5426 (origin
5427 (method git-fetch)
5428 (uri (git-reference
5429 (url home-page)
5430 (commit commit)))
5431 (file-name (git-file-name name version))
5432 (sha256
5433 (base32
5434 "1bg5w7lm61hqk4b0svmri8a590q36z76jfa0sdgzb39r98c04w12"))))
5435 (inputs
5436 `(("alexandria" ,sbcl-alexandria)))
5437 (arguments
5438 '(#:asd-file "iolib.asdf.asd"))
5439 (synopsis "ASDF component classes for IOLib, a Common Lisp I/O library")
5440 (description "IOlib is to be a better and more modern I/O library than
5441 the standard Common Lisp library. It contains a socket library, a DNS
5442 resolver, an I/O multiplexer(which supports @code{select(2)}, @code{epoll(4)}
5443 and @code{kqueue(2)}), a pathname library and file-system utilities.")
5444 (license license:expat))))
5445
5446 (define-public sbcl-iolib.conf
5447 (package
5448 (inherit sbcl-iolib.asdf)
5449 (name "sbcl-iolib.conf")
5450 (inputs
5451 `(("iolib.asdf" ,sbcl-iolib.asdf)))
5452 (arguments
5453 '(#:asd-file "iolib.conf.asd"))
5454 (synopsis "Compile-time configuration for IOLib, a Common Lisp I/O library")))
5455
5456 (define-public sbcl-iolib.common-lisp
5457 (package
5458 (inherit sbcl-iolib.asdf)
5459 (name "sbcl-iolib.common-lisp")
5460 (inputs
5461 `(("iolib.asdf" ,sbcl-iolib.asdf)
5462 ("iolib.conf" ,sbcl-iolib.conf)))
5463 (arguments
5464 '(#:asd-file "iolib.common-lisp.asd"))
5465 (synopsis "Slightly modified Common Lisp for IOLib, a Common Lisp I/O library")))
5466
5467 (define-public sbcl-iolib.base
5468 (package
5469 (inherit sbcl-iolib.asdf)
5470 (name "sbcl-iolib.base")
5471 (inputs
5472 `(("iolib.asdf" ,sbcl-iolib.asdf)
5473 ("iolib.conf" ,sbcl-iolib.conf)
5474 ("iolib.common-lisp" ,sbcl-iolib.common-lisp)
5475 ("split-sequence" ,sbcl-split-sequence)))
5476 (arguments
5477 '(#:asd-file "iolib.base.asd"))
5478 (synopsis "Base package for IOLib, a Common Lisp I/O library")))
5479
5480 (define-public sbcl-iolib.grovel
5481 (package
5482 (inherit sbcl-iolib.asdf)
5483 (name "sbcl-iolib.grovel")
5484 (inputs
5485 `(("iolib.asdf" ,sbcl-iolib.asdf)
5486 ("iolib.conf" ,sbcl-iolib.conf)
5487 ("iolib.base", sbcl-iolib.base)
5488 ("cffi", sbcl-cffi)))
5489 (arguments
5490 '(#:asd-file "iolib.grovel.asd"
5491 #:phases
5492 (modify-phases %standard-phases
5493 (add-after 'install 'install-header
5494 (lambda* (#:key outputs #:allow-other-keys)
5495 ;; This header is required by sbcl-iolib.
5496 (install-file "src/grovel/grovel-common.h"
5497 (string-append (assoc-ref outputs "out")
5498 "/lib/sbcl"))
5499 #t)))))
5500 (synopsis "CFFI Groveller for IOLib, a Common Lisp I/O library")))
5501
5502 (define sbcl-iolib+syscalls
5503 (package
5504 (inherit sbcl-iolib.asdf)
5505 (name "sbcl-iolib+syscalls")
5506 (inputs
5507 `(("iolib.asdf" ,sbcl-iolib.asdf)
5508 ("iolib.conf" ,sbcl-iolib.conf)
5509 ("cffi-grovel" ,sbcl-cffi-grovel)
5510 ("iolib.base" ,sbcl-iolib.base)
5511 ("bordeaux-threads" ,sbcl-bordeaux-threads)
5512 ("idna" ,sbcl-idna)
5513 ("swap-bytes" ,sbcl-swap-bytes)
5514 ("libfixposix" ,libfixposix)
5515 ("cffi" ,sbcl-cffi)))
5516 (native-inputs
5517 `(("fiveam" ,sbcl-fiveam)))
5518 (arguments
5519 '(#:asd-file "iolib.asd"
5520 #:asd-system-name "iolib/syscalls"
5521 #:phases
5522 (modify-phases %standard-phases
5523 (add-after 'unpack 'fix-paths
5524 (lambda* (#:key inputs #:allow-other-keys)
5525 (substitute* "src/syscalls/ffi-functions-unix.lisp"
5526 (("\\(:default \"libfixposix\"\\)")
5527 (string-append
5528 "(:default \""
5529 (assoc-ref inputs "libfixposix") "/lib/libfixposix\")")))
5530 ;; Socket tests need Internet access, disable them.
5531 (substitute* "iolib.asd"
5532 (("\\(:file \"sockets\" :depends-on \\(\"pkgdcl\" \"defsuites\"\\)\\)")
5533 "")))))))
5534 (synopsis "Common Lisp I/O library")))
5535
5536 (define sbcl-iolib+multiplex
5537 (package
5538 (inherit sbcl-iolib+syscalls)
5539 (name "sbcl-iolib+multiplex")
5540 (inputs
5541 `(("iolib+syscalls" ,sbcl-iolib+syscalls)
5542 ,@(package-inputs sbcl-iolib+syscalls)))
5543 (arguments
5544 (substitute-keyword-arguments (package-arguments sbcl-iolib+syscalls)
5545 ((#:asd-system-name _) "iolib/multiplex")))))
5546
5547 (define sbcl-iolib+streams
5548 (package
5549 (inherit sbcl-iolib+syscalls)
5550 (name "sbcl-iolib+streams")
5551 (inputs
5552 `(("iolib+multiplex" ,sbcl-iolib+multiplex)
5553 ,@(package-inputs sbcl-iolib+syscalls)))
5554 (arguments
5555 (substitute-keyword-arguments (package-arguments sbcl-iolib+syscalls)
5556 ((#:asd-system-name _) "iolib/streams")))))
5557
5558 (define sbcl-iolib+sockets
5559 (package
5560 (inherit sbcl-iolib+syscalls)
5561 (name "sbcl-iolib+sockets")
5562 (inputs
5563 `(("iolib+syscalls" ,sbcl-iolib+syscalls)
5564 ("iolib+streams" ,sbcl-iolib+streams)
5565 ,@(package-inputs sbcl-iolib+syscalls)))
5566 (arguments
5567 (substitute-keyword-arguments (package-arguments sbcl-iolib+syscalls)
5568 ((#:asd-system-name _) "iolib/sockets")))))
5569
5570 (define-public sbcl-iolib
5571 (package
5572 (inherit sbcl-iolib+syscalls)
5573 (name "sbcl-iolib")
5574 (inputs
5575 `(("iolib+multiplex" ,sbcl-iolib+multiplex)
5576 ("iolib+streams" ,sbcl-iolib+streams)
5577 ("iolib+sockets" ,sbcl-iolib+sockets)
5578 ,@(package-inputs sbcl-iolib+syscalls)))
5579 (arguments
5580 (substitute-keyword-arguments (package-arguments sbcl-iolib+syscalls)
5581 ((#:asd-system-name _) "iolib")))))
5582
5583 (define-public cl-iolib
5584 (sbcl-package->cl-source-package sbcl-iolib))
5585
5586 (define-public sbcl-ieee-floats
5587 (let ((commit "566b51a005e81ff618554b9b2f0b795d3b29398d")
5588 (revision "1"))
5589 (package
5590 (name "sbcl-ieee-floats")
5591 (build-system asdf-build-system/sbcl)
5592 (version (git-version "20170924" revision commit))
5593 (home-page "https://github.com/marijnh/ieee-floats/")
5594 (source
5595 (origin
5596 (method git-fetch)
5597 (uri (git-reference
5598 (url home-page)
5599 (commit commit)))
5600 (file-name (git-file-name name version))
5601 (sha256
5602 (base32
5603 "1xyj49j9x3lc84cv3dhbf9ja34ywjk1c46dklx425fxw9mkwm83m"))))
5604 (native-inputs
5605 `(("fiveam" ,sbcl-fiveam)))
5606 (synopsis "IEEE 754 binary representation for floats in Common Lisp")
5607 (description "This is a Common Lisp library that converts
5608 floating point values to IEEE 754 binary representation.")
5609 (license license:bsd-3))))
5610
5611 (define-public cl-ieee-floats
5612 (sbcl-package->cl-source-package sbcl-ieee-floats))
5613
5614 (define sbcl-closure-common
5615 (let ((commit "e3c5f5f454b72b01b89115e581c3c52a7e201e5c")
5616 (revision "1"))
5617 (package
5618 (name "sbcl-closure-common")
5619 (build-system asdf-build-system/sbcl)
5620 (version (git-version "20101006" revision commit))
5621 (home-page "https://common-lisp.net/project/cxml/")
5622 (source
5623 (origin
5624 (method git-fetch)
5625 (uri (git-reference
5626 (url "https://github.com/sharplispers/closure-common")
5627 (commit commit)))
5628 (file-name (git-file-name name version))
5629 (sha256
5630 (base32
5631 "0k5r2qxn122pxi301ijir3nayi9sg4d7yiy276l36qmzwhp4mg5n"))))
5632 (inputs
5633 `(("trivial-gray-streams" ,sbcl-trivial-gray-streams)
5634 ("babel" ,sbcl-babel)))
5635 (synopsis "Support Common Lisp library for CXML")
5636 (description "Closure-common is an internal helper library. The name
5637 Closure is a reference to the web browser it was originally written for.")
5638 ;; TODO: License?
5639 (license #f))))
5640
5641 (define-public sbcl-cxml+xml
5642 (let ((commit "00b22bf4c4cf11c993d5866fae284f95ab18e6bf")
5643 (revision "1"))
5644 (package
5645 (name "sbcl-cxml+xml")
5646 (build-system asdf-build-system/sbcl)
5647 (version (git-version "0.0.0" revision commit))
5648 (home-page "https://common-lisp.net/project/cxml/")
5649 (source
5650 (origin
5651 (method git-fetch)
5652 (uri (git-reference
5653 (url "https://github.com/sharplispers/cxml")
5654 (commit commit)))
5655 (file-name (git-file-name name version))
5656 (sha256
5657 (base32
5658 "13kif7rf3gqdycsk9zq0d7y0g9y81krkl0z87k0p2fkbjfgrph37"))))
5659 (inputs
5660 `(("closure-common" ,sbcl-closure-common)
5661 ("puri" ,sbcl-puri)
5662 ("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
5663 (arguments
5664 `(#:asd-file "cxml.asd"
5665 #:asd-system-name "cxml/xml"))
5666 (synopsis "Common Lisp XML parser")
5667 (description "CXML implements a namespace-aware, validating XML 1.0
5668 parser as well as the DOM Level 2 Core interfaces. Two parser interfaces are
5669 offered, one SAX-like, the other similar to StAX.")
5670 (license license:llgpl))))
5671
5672 (define sbcl-cxml+dom
5673 (package
5674 (inherit sbcl-cxml+xml)
5675 (name "sbcl-cxml+dom")
5676 (inputs
5677 `(("closure-common" ,sbcl-closure-common)
5678 ("puri" ,sbcl-puri)
5679 ("cxml+xml" ,sbcl-cxml+xml)))
5680 (arguments
5681 `(#:asd-file "cxml.asd"
5682 #:asd-system-name "cxml/dom"))))
5683
5684 (define sbcl-cxml+klacks
5685 (package
5686 (inherit sbcl-cxml+xml)
5687 (name "sbcl-cxml+klacks")
5688 (inputs
5689 `(("closure-common" ,sbcl-closure-common)
5690 ("puri" ,sbcl-puri)
5691 ("cxml+xml" ,sbcl-cxml+xml)))
5692 (arguments
5693 `(#:asd-file "cxml.asd"
5694 #:asd-system-name "cxml/klacks"))))
5695
5696 (define sbcl-cxml+test
5697 (package
5698 (inherit sbcl-cxml+xml)
5699 (name "sbcl-cxml+test")
5700 (inputs
5701 `(("closure-common" ,sbcl-closure-common)
5702 ("puri" ,sbcl-puri)
5703 ("cxml+xml" ,sbcl-cxml+xml)))
5704 (arguments
5705 `(#:asd-file "cxml.asd"
5706 #:asd-system-name "cxml/test"))))
5707
5708 (define-public sbcl-cxml
5709 (package
5710 (inherit sbcl-cxml+xml)
5711 (name "sbcl-cxml")
5712 (inputs
5713 `(("closure-common" ,sbcl-closure-common)
5714 ("puri" ,sbcl-puri)
5715 ("trivial-gray-streams" ,sbcl-trivial-gray-streams)
5716 ("cxml+dom" ,sbcl-cxml+dom)
5717 ("cxml+klacks" ,sbcl-cxml+klacks)
5718 ("cxml+test" ,sbcl-cxml+test)))
5719 (arguments
5720 `(#:asd-file "cxml.asd"
5721 #:asd-system-name "cxml"
5722 #:phases
5723 (modify-phases %standard-phases
5724 (add-after 'build 'install-dtd
5725 (lambda* (#:key outputs #:allow-other-keys)
5726 (install-file "catalog.dtd"
5727 (string-append
5728 (assoc-ref outputs "out")
5729 "/lib/" (%lisp-type)))))
5730 (add-after 'create-asd 'remove-component
5731 ;; XXX: The original .asd has no components, but our build system
5732 ;; creates an entry nonetheless. We need to remove it for the
5733 ;; generated .asd to load properly. See trivia.trivial for a
5734 ;; similar problem.
5735 (lambda* (#:key outputs #:allow-other-keys)
5736 (let* ((out (assoc-ref outputs "out"))
5737 (asd (string-append out "/lib/sbcl/cxml.asd")))
5738 (substitute* asd
5739 ((" :components
5740 ")
5741 ""))
5742 (substitute* asd
5743 ((" *\\(\\(:compiled-file \"cxml--system\"\\)\\)")
5744 ""))))))))))
5745
5746 (define-public cl-cxml
5747 (sbcl-package->cl-source-package sbcl-cxml))
5748
5749 (define-public sbcl-cl-reexport
5750 (let ((commit "312f3661bbe187b5f28536cd7ec2956e91366c3b")
5751 (revision "1"))
5752 (package
5753 (name "sbcl-cl-reexport")
5754 (build-system asdf-build-system/sbcl)
5755 (version (git-version "0.1" revision commit))
5756 (home-page "https://github.com/takagi/cl-reexport")
5757 (source
5758 (origin
5759 (method git-fetch)
5760 (uri (git-reference
5761 (url home-page)
5762 (commit commit)))
5763 (file-name (git-file-name name version))
5764 (sha256
5765 (base32
5766 "1cwpn1m3wrl0fl9plznn7p464db646gnfc8zkyk97dyxski2aq0x"))))
5767 (inputs
5768 `(("alexandria" ,sbcl-alexandria)))
5769 (arguments
5770 ;; TODO: Tests fail because cl-test-more is missing, but I can't find it online.
5771 `(#:tests? #f))
5772 (synopsis "HTTP cookie manager for Common Lisp")
5773 (description "cl-cookie is a Common Lisp library featuring parsing of
5774 cookie headers, cookie creation, cookie jar creation and more.")
5775 (license license:llgpl))))
5776
5777 (define-public cl-reexport
5778 (sbcl-package->cl-source-package sbcl-cl-reexport))
5779
5780 (define-public sbcl-cl-cookie
5781 (let ((commit "cea55aed8b9ad25fafd13defbcb9fe8f41b29546")
5782 (revision "1"))
5783 (package
5784 (name "sbcl-cl-cookie")
5785 (build-system asdf-build-system/sbcl)
5786 (version (git-version "0.9.10" revision commit))
5787 (home-page "https://github.com/fukamachi/cl-cookie")
5788 (source
5789 (origin
5790 (method git-fetch)
5791 (uri (git-reference
5792 (url home-page)
5793 (commit commit)))
5794 (file-name (git-file-name name version))
5795 (sha256
5796 (base32
5797 "090g7z75h98zvc1ldx0vh4jn4086dhjm2w30jcwkq553qmyxwl8h"))))
5798 (inputs
5799 `(("proc-parse" ,sbcl-proc-parse)
5800 ("alexandria" ,sbcl-alexandria)
5801 ("quri" ,sbcl-quri)
5802 ("cl-ppcre" ,sbcl-cl-ppcre)
5803 ("local-time" ,sbcl-local-time)))
5804 (native-inputs
5805 `(("prove-asdf" ,sbcl-prove-asdf)
5806 ("prove" ,sbcl-prove)))
5807 (arguments
5808 ;; TODO: Tests fail because cl-cookie depends on cl-cookie-test.
5809 `(#:tests? #f))
5810 (synopsis "HTTP cookie manager for Common Lisp")
5811 (description "cl-cookie is a Common Lisp library featuring parsing of
5812 cookie headers, cookie creation, cookie jar creation and more.")
5813 (license license:bsd-2))))
5814
5815 (define-public cl-cookie
5816 (sbcl-package->cl-source-package sbcl-cl-cookie))
5817
5818 (define-public sbcl-dexador
5819 (let ((commit "953090f04c4d1a9ee6632b90133cdc297b68badc")
5820 (revision "1"))
5821 (package
5822 (name "sbcl-dexador")
5823 (build-system asdf-build-system/sbcl)
5824 (version "0.9.14" )
5825 (home-page "https://github.com/fukamachi/dexador")
5826 (source
5827 (origin
5828 (method git-fetch)
5829 (uri (git-reference
5830 (url home-page)
5831 (commit commit)))
5832 (file-name (git-file-name name version))
5833 (sha256
5834 (base32
5835 "0w18fz3301rpmwc3kwb810czcd24mbf7r1z8vdyc0v5crjfpw3mn"))))
5836 (inputs
5837 `(("trivial-gray-streams" ,sbcl-trivial-gray-streams)
5838 ("babel" ,sbcl-babel)
5839 ("usocket" ,sbcl-usocket)
5840 ("fast-http" ,sbcl-fast-http)
5841 ("quri" ,sbcl-quri)
5842 ("fast-io" ,sbcl-fast-io)
5843 ("chunga" ,sbcl-chunga)
5844 ("cl-ppcre" ,sbcl-cl-ppcre)
5845 ("cl-cookie" ,sbcl-cl-cookie)
5846 ("trivial-mimes" ,sbcl-trivial-mimes)
5847 ("chipz" ,sbcl-chipz)
5848 ("cl-base64" ,sbcl-cl-base64)
5849 ("cl-reexport" ,sbcl-cl-reexport)
5850 ("cl+ssl" ,sbcl-cl+ssl)
5851 ("bordeaux-threads" ,sbcl-bordeaux-threads)
5852 ("alexandria" ,sbcl-alexandria)))
5853 (native-inputs
5854 `(("prove" ,sbcl-prove)
5855 ("prove-asdf" ,sbcl-prove-asdf)
5856 ("lack-request" ,sbcl-lack-request)
5857 ("clack" ,sbcl-clack)
5858 ("babel" ,sbcl-babel)
5859 ("alexandria" ,sbcl-alexandria)
5860 ("cl-ppcre" ,sbcl-cl-ppcre)
5861 ("local-time" ,sbcl-local-time)
5862 ("trivial-features" ,sbcl-trivial-features)))
5863 (arguments
5864 ;; TODO: Circular dependency: tests depend on clack-test which depends on dexador.
5865 `(#:tests? #f
5866 #:phases
5867 (modify-phases %standard-phases
5868 (add-after 'unpack 'fix-permissions
5869 (lambda _ (make-file-writable "t/data/test.gz") #t)))))
5870 (synopsis "Yet another HTTP client for Common Lisp")
5871 (description "Dexador is yet another HTTP client for Common Lisp with
5872 neat APIs and connection-pooling. It is meant to supersede Drakma.")
5873 (license license:expat))))
5874
5875 (define-public cl-dexador
5876 (package
5877 (inherit (sbcl-package->cl-source-package sbcl-dexador))
5878 (arguments
5879 `(#:phases
5880 ;; asdf-build-system/source has its own phases and does not inherit
5881 ;; from asdf-build-system/sbcl phases.
5882 (modify-phases %standard-phases/source
5883 (add-after 'unpack 'fix-permissions
5884 (lambda _ (make-file-writable "t/data/test.gz") #t)))))))
5885
5886 (define-public ecl-dexador
5887 (sbcl-package->ecl-package sbcl-dexador))
5888
5889 (define-public sbcl-lisp-namespace
5890 (let ((commit "28107cafe34e4c1c67490fde60c7f92dc610b2e0")
5891 (revision "1"))
5892 (package
5893 (name "sbcl-lisp-namespace")
5894 (build-system asdf-build-system/sbcl)
5895 (version (git-version "0.1" revision commit))
5896 (home-page "https://github.com/guicho271828/lisp-namespace")
5897 (source
5898 (origin
5899 (method git-fetch)
5900 (uri (git-reference
5901 (url home-page)
5902 (commit commit)))
5903 (file-name (git-file-name name version))
5904 (sha256
5905 (base32
5906 "1jw2wykp06z2afb9nm1lgfzll5cjlj36pnknjx614057zkkxq4iy"))))
5907 (inputs
5908 `(("alexandria" ,sbcl-alexandria)))
5909 (native-inputs
5910 `(("fiveam" ,sbcl-fiveam)))
5911 (arguments
5912 `(#:test-asd-file "lisp-namespace.test.asd"
5913 ;; XXX: Component LISP-NAMESPACE-ASD::LISP-NAMESPACE.TEST not found
5914 #:tests? #f))
5915 (synopsis "LISP-N, or extensible namespaces in Common Lisp")
5916 (description "Common Lisp already has major 2 namespaces, function
5917 namespace and value namespace (or variable namespace), but there are actually
5918 more — e.g., class namespace.
5919 This library offers macros to deal with symbols from any namespace.")
5920 (license license:llgpl))))
5921
5922 (define-public cl-lisp-namespace
5923 (sbcl-package->cl-source-package sbcl-lisp-namespace))
5924
5925 (define-public sbcl-trivial-cltl2
5926 (let ((commit "8a3bda30dc25d2f65fcf514d0eb6e6db75252c61")
5927 (revision "2"))
5928 (package
5929 (name "sbcl-trivial-cltl2")
5930 (build-system asdf-build-system/sbcl)
5931 (version (git-version "0.1.1" revision commit))
5932 (home-page "https://github.com/Zulu-Inuoe/trivial-cltl2")
5933 (source
5934 (origin
5935 (method git-fetch)
5936 (uri (git-reference
5937 (url home-page)
5938 (commit commit)))
5939 (file-name (git-file-name name version))
5940 (sha256
5941 (base32
5942 "08cnzb9rnczn4pn2zpf0587ny4wjy1mjndy885fz9pw7xrlx37ip"))))
5943 (synopsis "Simple CLtL2 compatibility layer for Common Lisp")
5944 (description "This library is a portable compatibility layer around
5945 \"Common Lisp the Language, 2nd
5946 Edition\" (@url{https://www.cs.cmu.edu/Groups/AI/html/cltl/clm/node102.html})
5947 and it exports symbols from implementation-specific packages.")
5948 (license license:llgpl))))
5949
5950 (define-public cl-trivial-cltl2
5951 (sbcl-package->cl-source-package sbcl-trivial-cltl2))
5952
5953 (define-public sbcl-introspect-environment
5954 (let ((commit "fff42f8f8fd0d99db5ad6c5812e53de7d660020b")
5955 (revision "1"))
5956 (package
5957 (name "sbcl-introspect-environment")
5958 (build-system asdf-build-system/sbcl)
5959 (version (git-version "0.1" revision commit))
5960 (home-page "https://github.com/Bike/introspect-environment")
5961 (source
5962 (origin
5963 (method git-fetch)
5964 (uri (git-reference
5965 (url home-page)
5966 (commit commit)))
5967 (file-name (git-file-name name version))
5968 (sha256
5969 (base32
5970 "1i305n0wfmpac63ni4i3vixnnkl8daw5ncxy0k3dv92krgx6qzhp"))))
5971 (native-inputs
5972 `(("fiveam" ,sbcl-fiveam)))
5973 (synopsis "Common Lisp environment introspection portability layer")
5974 (description "This library is a small interface to portable but
5975 nonstandard introspection of Common Lisp environments. It is intended to
5976 allow a bit more compile-time introspection of environments in Common Lisp.
5977
5978 Quite a bit of information is available at the time a macro or compiler-macro
5979 runs; inlining info, type declarations, that sort of thing. This information
5980 is all standard - any Common Lisp program can @code{(declare (integer x))} and
5981 such.
5982
5983 This info ought to be accessible through the standard @code{&environment}
5984 parameters, but it is not. Several implementations keep the information for
5985 their own purposes but do not make it available to user programs, because
5986 there is no standard mechanism to do so.
5987
5988 This library uses implementation-specific hooks to make information available
5989 to users. This is currently supported on SBCL, CCL, and CMUCL. Other
5990 implementations have implementations of the functions that do as much as they
5991 can and/or provide reasonable defaults.")
5992 (license license:wtfpl2))))
5993
5994 (define-public cl-introspect-environment
5995 (sbcl-package->cl-source-package sbcl-introspect-environment))
5996
5997 (define-public sbcl-type-i
5998 (let ((commit "dea233f45f94064105ec09f0767de338f67dcbe2")
5999 (revision "1"))
6000 (package
6001 (name "sbcl-type-i")
6002 (build-system asdf-build-system/sbcl)
6003 (version (git-version "0.1" revision commit))
6004 (home-page "https://github.com/guicho271828/type-i")
6005 (source
6006 (origin
6007 (method git-fetch)
6008 (uri (git-reference
6009 (url home-page)
6010 (commit commit)))
6011 (file-name (git-file-name name version))
6012 (sha256
6013 (base32
6014 "039g5pbrhh65s0bhr9314gmd2nwc2y5lp2377c5qrc2lxky89qs3"))))
6015 (inputs
6016 `(("alexandria" ,sbcl-alexandria)
6017 ("introspect-environment" ,sbcl-introspect-environment)
6018 ("trivia.trivial" ,sbcl-trivia.trivial)))
6019 (native-inputs
6020 `(("fiveam" ,sbcl-fiveam)))
6021 (arguments
6022 `(#:test-asd-file "type-i.test.asd"))
6023 (synopsis "Type inference utility on unary predicates for Common Lisp")
6024 (description "This library tries to provide a way to detect what kind of
6025 type the given predicate is trying to check. This is different from inferring
6026 the return type of a function.")
6027 (license license:llgpl))))
6028
6029 (define-public cl-type-i
6030 (sbcl-package->cl-source-package sbcl-type-i))
6031
6032 (define-public sbcl-optima
6033 (let ((commit "373b245b928c1a5cce91a6cb5bfe5dd77eb36195")
6034 (revision "1"))
6035 (package
6036 (name "sbcl-optima")
6037 (build-system asdf-build-system/sbcl)
6038 (version (git-version "1.0" revision commit))
6039 (home-page "https://github.com/m2ym/optima")
6040 (source
6041 (origin
6042 (method git-fetch)
6043 (uri (git-reference
6044 (url home-page)
6045 (commit commit)))
6046 (file-name (git-file-name name version))
6047 (sha256
6048 (base32
6049 "1yw4ymq7ms89342kkvb3aqxgv0w38m9kd8ikdqxxzyybnkjhndal"))))
6050 (inputs
6051 `(("alexandria" ,sbcl-alexandria)
6052 ("closer-mop" ,sbcl-closer-mop)))
6053 (native-inputs
6054 `(("eos" ,sbcl-eos)))
6055 (arguments
6056 ;; XXX: Circular dependencies: tests depend on optima.ppcre which depends on optima.
6057 `(#:tests? #f
6058 #:test-asd-file "optima.test.asd"))
6059 (synopsis "Optimized pattern matching library for Common Lisp")
6060 (description "Optima is a fast pattern matching library which uses
6061 optimizing techniques widely used in the functional programming world.")
6062 (license license:expat))))
6063
6064 (define-public cl-optima
6065 (sbcl-package->cl-source-package sbcl-optima))
6066
6067 (define-public sbcl-fare-quasiquote
6068 (let ((commit "640d39a0451094071b3e093c97667b3947f43639")
6069 (revision "1"))
6070 (package
6071 (name "sbcl-fare-quasiquote")
6072 (build-system asdf-build-system/sbcl)
6073 (version (git-version "1.0.1" revision commit))
6074 (home-page "https://gitlab.common-lisp.net/frideau/fare-quasiquote")
6075 (source
6076 (origin
6077 (method git-fetch)
6078 (uri (git-reference
6079 (url (string-append "https://gitlab.common-lisp.net/frideau/"
6080 "fare-quasiquote.git"))
6081 (commit commit)))
6082 (file-name (git-file-name name version))
6083 (sha256
6084 (base32 "1g6q11l50kgija9f55lzqpcwvaq0ljiw8v1j265hnyg6nahjwjvg"))))
6085 (inputs
6086 `(("fare-utils" ,sbcl-fare-utils)))
6087 (arguments
6088 ;; XXX: Circular dependencies: Tests depend on subsystems,
6089 ;; which depend on the main systems.
6090 `(#:tests? #f
6091 #:phases
6092 (modify-phases %standard-phases
6093 ;; XXX: Require 1.0.0 version of fare-utils, and we package some
6094 ;; commits after 1.0.0.5, but ASDF fails to read the
6095 ;; "-REVISION-COMMIT" part generated by Guix.
6096 (add-after 'unpack 'patch-requirement
6097 (lambda _
6098 (substitute* "fare-quasiquote.asd"
6099 (("\\(:version \"fare-utils\" \"1.0.0\"\\)")
6100 "\"fare-utils\"")))))))
6101 (synopsis "Pattern-matching friendly implementation of quasiquote")
6102 (description "The main purpose of this n+2nd reimplementation of
6103 quasiquote is enable matching of quasiquoted patterns, using Optima or
6104 Trivia.")
6105 (license license:expat))))
6106
6107 (define-public cl-fare-quasiquote
6108 (sbcl-package->cl-source-package sbcl-fare-quasiquote))
6109
6110 (define-public sbcl-fare-quasiquote-optima
6111 (package
6112 (inherit sbcl-fare-quasiquote)
6113 (name "sbcl-fare-quasiquote-optima")
6114 (inputs
6115 `(("optima" ,sbcl-optima)
6116 ("fare-quasiquote" ,sbcl-fare-quasiquote)))
6117 (arguments
6118 '(#:phases
6119 (modify-phases %standard-phases
6120 (add-after 'unpack 'patch-requirement
6121 (lambda _
6122 (substitute* "fare-quasiquote-optima.asd"
6123 (("\\(:version \"optima\" \"1\\.0\"\\)")
6124 "\"optima\""))
6125 #t)))))))
6126
6127 (define-public cl-fare-quasiquote-optima
6128 (sbcl-package->cl-source-package sbcl-fare-quasiquote-optima))
6129
6130 (define-public sbcl-fare-quasiquote-readtable
6131 (package
6132 (inherit sbcl-fare-quasiquote)
6133 (name "sbcl-fare-quasiquote-readtable")
6134 (inputs
6135 `(("fare-quasiquote" ,sbcl-fare-quasiquote)
6136 ("named-readtables" ,sbcl-named-readtables)))
6137 (description "The main purpose of this n+2nd reimplementation of
6138 quasiquote is enable matching of quasiquoted patterns, using Optima or
6139 Trivia.
6140
6141 This package uses fare-quasiquote with named-readtable.")))
6142
6143 (define-public cl-fare-quasiquote-readtable
6144 (sbcl-package->cl-source-package sbcl-fare-quasiquote-readtable))
6145
6146 ;; TODO: Add support for component-less system in asdf-build-system/sbcl.
6147 (define-public sbcl-fare-quasiquote-extras
6148 (package
6149 (inherit sbcl-fare-quasiquote)
6150 (name "sbcl-fare-quasiquote-extras")
6151 (build-system asdf-build-system/sbcl)
6152 (inputs
6153 `(("fare-quasiquote-optima" ,sbcl-fare-quasiquote-optima)
6154 ("fare-quasiquote-readtable" ,sbcl-fare-quasiquote-readtable)))
6155 (arguments
6156 `(#:phases
6157 (modify-phases %standard-phases
6158 (replace 'build
6159 (lambda* (#:key outputs #:allow-other-keys)
6160 (let* ((out (assoc-ref outputs "out"))
6161 (lib (string-append out "/lib/" (%lisp-type))))
6162 (mkdir-p lib)
6163 (install-file "fare-quasiquote-extras.asd" lib)
6164 (make-file-writable
6165 (string-append lib "/fare-quasiquote-extras.asd"))
6166 #t)))
6167 (add-after 'create-asd-file 'fix-asd-file
6168 (lambda* (#:key outputs #:allow-other-keys)
6169 (let* ((out (assoc-ref outputs "out"))
6170 (lib (string-append out "/lib/" (%lisp-type)))
6171 (asd (string-append lib "/fare-quasiquote-extras.asd")))
6172 (substitute* asd
6173 ((":class")
6174 "")
6175 (("asdf/bundle:prebuilt-system")
6176 "")
6177 ((":components")
6178 "")
6179 (("\\(\\(:compiled-file \"fare-quasiquote-extras--system\"\\)\\)")
6180 "")))
6181 #t)))))
6182 (description "This library combines @code{fare-quasiquote-readtable} and
6183 @code{fare-quasiquote-optima}.")))
6184
6185 (define-public cl-fare-quasiquote-extras
6186 (package
6187 (inherit cl-fare-quasiquote)
6188 (name "cl-fare-quasiquote-extras")
6189 (build-system asdf-build-system/source)
6190 (propagated-inputs
6191 `(("fare-quasiquote" ,cl-fare-quasiquote)
6192 ("fare-quasiquote-optima" ,cl-fare-quasiquote-optima)
6193 ("fare-quasiquote-readtable" ,cl-fare-quasiquote-readtable)))
6194 (description "This library combines @code{fare-quasiquote-readtable} and
6195 @code{fare-quasiquote-optima}.")))
6196
6197 (define-public sbcl-trivia.level0
6198 (let ((commit "37698b47a14c2007630468de7a993694ef7bd475")
6199 (revision "2"))
6200 (package
6201 (name "sbcl-trivia.level0")
6202 (build-system asdf-build-system/sbcl)
6203 (version (git-version "0.0.0" revision commit))
6204 (home-page "https://github.com/guicho271828/trivia")
6205 (source
6206 (origin
6207 (method git-fetch)
6208 (uri (git-reference
6209 (url home-page)
6210 (commit commit)))
6211 (file-name (git-file-name name version))
6212 (sha256
6213 (base32
6214 "0rsbwbw3ipxxgr6zzhci12nilq8zky475kmhz1rcxy4q8a85vn72"))))
6215 (inputs
6216 `(("alexandria" ,sbcl-alexandria)))
6217 (synopsis "Pattern matching in Common Lisp")
6218 (description "Trivia is a pattern matching compiler that is compatible
6219 with Optima, another pattern matching library for Common Lisp. It is meant to
6220 be faster and more extensible than Optima.")
6221 (license license:llgpl))))
6222
6223 (define-public sbcl-trivia.level1
6224 (package
6225 (inherit sbcl-trivia.level0)
6226 (name "sbcl-trivia.level1")
6227 (inputs
6228 `(("trivia.level0" ,sbcl-trivia.level0)))
6229 (description "Trivia is a pattern matching compiler that is compatible
6230 with Optima, another pattern matching library for Common Lisp. It is meant to
6231 be faster and more extensible than Optima.
6232
6233 This system contains the core patterns of Trivia.")))
6234
6235 (define-public sbcl-trivia.level2
6236 (package
6237 (inherit sbcl-trivia.level0)
6238 (name "sbcl-trivia.level2")
6239 (inputs
6240 `(("trivia.level1" ,sbcl-trivia.level1)
6241 ("lisp-namespace" ,sbcl-lisp-namespace)
6242 ("trivial-cltl2" ,sbcl-trivial-cltl2)
6243 ("closer-mop" ,sbcl-closer-mop)))
6244 (description "Trivia is a pattern matching compiler that is compatible
6245 with Optima, another pattern matching library for Common Lisp. It is meant to
6246 be faster and more extensible than Optima.
6247
6248 This system contains a non-optimized pattern matcher compatible with Optima,
6249 with extensible optimizer interface.")))
6250
6251 (define-public sbcl-trivia.trivial
6252 (package
6253 (inherit sbcl-trivia.level0)
6254 (name "sbcl-trivia.trivial")
6255 (inputs
6256 `(("trivia.level2" ,sbcl-trivia.level2)))
6257 (arguments
6258 `(#:phases
6259 (modify-phases %standard-phases
6260 (replace 'create-asd-file
6261 (lambda* (#:key outputs inputs #:allow-other-keys)
6262 (let* ((out (assoc-ref outputs "out"))
6263 (lib (string-append out "/lib/" (%lisp-type)))
6264 (level2 (assoc-ref inputs "trivia.level2")))
6265 (mkdir-p lib)
6266 (install-file "trivia.trivial.asd" lib)
6267 ;; XXX: This .asd does not have any component and the build
6268 ;; system fails to work in this case. We should update the
6269 ;; build system to handle component-less .asd.
6270 ;; TODO: How do we append to file in Guile? It seems that
6271 ;; (open-file ... "a") gets a "Permission denied".
6272 (substitute* (string-append lib "/trivia.trivial.asd")
6273 (("\"\\)")
6274 (string-append "\")
6275
6276 (progn (asdf/source-registry:ensure-source-registry)
6277 (setf (gethash
6278 \"trivia.level2\"
6279 asdf/source-registry:*source-registry*)
6280 #p\""
6281 level2
6282 "/share/common-lisp/sbcl-bundle-systems/trivia.level2.asd\"))")))))))))
6283 (description "Trivia is a pattern matching compiler that is compatible
6284 with Optima, another pattern matching library for Common Lisp. It is meant to
6285 be faster and more extensible than Optima.
6286
6287 This system contains the base level system of Trivia with a trivial optimizer.")))
6288
6289 (define-public sbcl-trivia.balland2006
6290 (package
6291 (inherit sbcl-trivia.level0)
6292 (name "sbcl-trivia.balland2006")
6293 (inputs
6294 `(("trivia.trivial" ,sbcl-trivia.trivial)
6295 ("iterate" ,sbcl-iterate)
6296 ("type-i" ,sbcl-type-i)
6297 ("alexandria" ,sbcl-alexandria)))
6298 (arguments
6299 ;; Tests are done in trivia itself.
6300 `(#:tests? #f))
6301 (description "Trivia is a pattern matching compiler that is compatible
6302 with Optima, another pattern matching library for Common Lisp. It is meant to
6303 be faster and more extensible than Optima.
6304
6305 This system contains the base level system of Trivia with a trivial optimizer.")))
6306
6307 (define-public sbcl-trivia.ppcre
6308 (package
6309 (inherit sbcl-trivia.level0)
6310 (name "sbcl-trivia.ppcre")
6311 (inputs
6312 `(("trivia.trivial" ,sbcl-trivia.trivial)
6313 ("cl-ppcre" ,sbcl-cl-ppcre)))
6314 (description "Trivia is a pattern matching compiler that is compatible
6315 with Optima, another pattern matching library for Common Lisp. It is meant to
6316 be faster and more extensible than Optima.
6317
6318 This system contains the PPCRE extension.")))
6319
6320 (define-public sbcl-trivia.quasiquote
6321 (package
6322 (inherit sbcl-trivia.level0)
6323 (name "sbcl-trivia.quasiquote")
6324 (inputs
6325 `(("trivia.trivial" ,sbcl-trivia.trivial)
6326 ("fare-quasiquote" ,sbcl-fare-quasiquote)
6327 ("fare-quasiquote-readtable" ,sbcl-fare-quasiquote-readtable)))
6328 (description "Trivia is a pattern matching compiler that is compatible
6329 with Optima, another pattern matching library for Common Lisp. It is meant to
6330 be faster and more extensible than Optima.
6331
6332 This system contains the fare-quasiquote extension.")))
6333
6334 (define-public sbcl-trivia.cffi
6335 (package
6336 (inherit sbcl-trivia.level0)
6337 (name "sbcl-trivia.cffi")
6338 (inputs
6339 `(("cffi" ,sbcl-cffi)
6340 ("trivia.trivial" ,sbcl-trivia.trivial)))
6341 (description "Trivia is a pattern matching compiler that is compatible
6342 with Optima, another pattern matching library for Common Lisp. It is meant to
6343 be faster and more extensible than Optima.
6344
6345 This system contains the CFFI foreign slot access extension.")))
6346
6347 (define-public sbcl-trivia
6348 (package
6349 (inherit sbcl-trivia.level0)
6350 (name "sbcl-trivia")
6351 (inputs
6352 `(("trivia.balland2006" ,sbcl-trivia.balland2006)))
6353 (native-inputs
6354 `(("fiveam" ,sbcl-fiveam)
6355 ("trivia.ppcre" ,sbcl-trivia.ppcre)
6356 ("trivia.quasiquote" ,sbcl-trivia.quasiquote)
6357 ("trivia.cffi" ,sbcl-trivia.cffi)
6358 ("optima" ,sbcl-optima)))
6359 (arguments
6360 `(#:test-asd-file "trivia.test.asd"
6361 #:phases
6362 (modify-phases %standard-phases
6363 (add-after 'create-asd 'remove-component
6364 ;; XXX: The original .asd has no components, but our build system
6365 ;; creates an entry nonetheless. We need to remove it for the
6366 ;; generated .asd to load properly. See trivia.trivial for a
6367 ;; similar problem.
6368 (lambda* (#:key outputs #:allow-other-keys)
6369 (let* ((out (assoc-ref outputs "out"))
6370 (asd (string-append out "/lib/" (%lisp-type) "/trivia.asd")))
6371 (substitute* asd
6372 ((" :components
6373 ")
6374 ""))
6375 (substitute* asd
6376 ((" *\\(\\(:compiled-file \"trivia--system\"\\)\\)")
6377 ""))))))))
6378 (description "Trivia is a pattern matching compiler that is compatible
6379 with Optima, another pattern matching library for Common Lisp. It is meant to
6380 be faster and more extensible than Optima.")))
6381
6382 (define-public cl-trivia
6383 (sbcl-package->cl-source-package sbcl-trivia))
6384
6385 (define-public sbcl-mk-string-metrics
6386 (package
6387 (name "sbcl-mk-string-metrics")
6388 (version "0.1.2")
6389 (home-page "https://github.com/cbaggers/mk-string-metrics/")
6390 (source (origin
6391 (method git-fetch)
6392 (uri (git-reference
6393 (url home-page)
6394 (commit version)))
6395 (sha256
6396 (base32 "0bg0bv2mfd4k0g3x72x563hvmrx18xavaffr6xk5rh4if5j7kcf6"))
6397 (file-name (git-file-name name version))))
6398 (build-system asdf-build-system/sbcl)
6399 (synopsis "Calculate various string metrics efficiently in Common Lisp")
6400 (description "This library implements efficient algorithms that calculate
6401 various string metrics in Common Lisp:
6402
6403 @itemize
6404 @item Damerau-Levenshtein distance
6405 @item Hamming distance
6406 @item Jaccard similarity coefficient
6407 @item Jaro distance
6408 @item Jaro-Winkler distance
6409 @item Levenshtein distance
6410 @item Normalized Damerau-Levenshtein distance
6411 @item Normalized Levenshtein distance
6412 @item Overlap coefficient
6413 @end itemize\n")
6414 (license license:x11)))
6415
6416 (define-public cl-mk-string-metrics
6417 (sbcl-package->cl-source-package sbcl-mk-string-metrics))
6418
6419 (define-public sbcl-cl-str
6420 (let ((commit "eb480f283e28802d67b35bf916506701152f9a2a"))
6421 (package
6422 (name "sbcl-cl-str")
6423 (version (git-version "0.17" "1" commit))
6424 (home-page "https://github.com/vindarel/cl-str")
6425 (source (origin
6426 (method git-fetch)
6427 (uri (git-reference
6428 (url home-page)
6429 (commit commit)))
6430 (sha256
6431 (base32 "1hpq5m8zjjnzns370zy27z2vcm1p8n2ka5ij2x67gyc9amz9vla0"))
6432 (file-name (git-file-name name version))))
6433 (build-system asdf-build-system/sbcl)
6434 (inputs
6435 `(("cl-ppcre" ,sbcl-cl-ppcre)
6436 ("cl-ppcre-unicode" ,sbcl-cl-ppcre-unicode)
6437 ("cl-change-case" ,sbcl-cl-change-case)))
6438 (native-inputs
6439 `(("prove" ,sbcl-prove)
6440 ("prove-asdf" ,sbcl-prove-asdf)))
6441 (arguments
6442 `(#:asd-file "str.asd"
6443 #:asd-system-name "str"
6444 #:test-asd-file "str.test.asd"))
6445 (synopsis "Modern, consistent and terse Common Lisp string manipulation library")
6446 (description "A modern and consistent Common Lisp string manipulation
6447 library that focuses on modernity, simplicity and discoverability:
6448 @code{(str:trim s)} instead of @code{(string-trim '(#\\Space ...) s)}), or
6449 @code{str:concat strings} instead of an unusual format construct; one
6450 discoverable library instead of many; consistency and composability, where
6451 @code{s} is always the last argument, which makes it easier to feed pipes and
6452 arrows.")
6453 (license license:expat))))
6454
6455 (define-public cl-str
6456 (sbcl-package->cl-source-package sbcl-cl-str))
6457
6458 (define-public sbcl-cl-xmlspam
6459 (let ((commit "ea06abcca2a73a9779bcfb09081e56665f94e22a"))
6460 (package
6461 (name "sbcl-cl-xmlspam")
6462 (build-system asdf-build-system/sbcl)
6463 (version (git-version "0.0.0" "1" commit))
6464 (home-page "https://github.com/rogpeppe/cl-xmlspam")
6465 (source
6466 (origin
6467 (method git-fetch)
6468 (uri (git-reference
6469 (url home-page)
6470 (commit commit)))
6471 (file-name (string-append name "-" version))
6472 (sha256
6473 (base32
6474 "0w4rqvrgdgk3fwfq3kx4r7wwdr2bv3b6n3bdqwsiriw9psqzpz2s"))))
6475 (inputs
6476 `(("cxml" ,sbcl-cxml)
6477 ("cl-ppcre" ,sbcl-cl-ppcre)))
6478 (synopsis "Concise, regexp-like pattern matching on streaming XML for Common Lisp")
6479 (description "CXML does an excellent job at parsing XML elements, but what
6480 do you do when you have a XML file that's larger than you want to fit in
6481 memory, and you want to extract some information from it? Writing code to deal
6482 with SAX events, or even using Klacks, quickly becomes tedious.
6483 @code{cl-xmlspam} (for XML Stream PAttern Matcher) is designed to make it easy
6484 to write code that mirrors the structure of the XML that it's parsing. It
6485 also makes it easy to shift paradigms when necessary - the usual Lisp control
6486 constructs can be used interchangeably with pattern matching, and the full
6487 power of CXML is available when necessary.")
6488 (license license:bsd-3))))
6489
6490 ;; TODO: dbus uses ASDF's package-inferred-system which is not supported by
6491 ;; asdf-build-system/sbcl as of 2019-08-02. We should fix
6492 ;; asdf-build-system/sbcl.
6493 (define-public cl-dbus
6494 (let ((commit "24b452df3a45ca5dc95015500f34baad175c981a")
6495 (revision "1"))
6496 (package
6497 (name "cl-dbus")
6498 (build-system asdf-build-system/source)
6499 (version (git-version "20190408" revision commit))
6500 (home-page "https://github.com/death/dbus")
6501 (source
6502 (origin
6503 (method git-fetch)
6504 (uri (git-reference
6505 (url home-page)
6506 (commit commit)))
6507 (file-name (git-file-name name version))
6508 (sha256
6509 (base32
6510 "0fw2q866yddbf23nk9pxphm9gsasx35vjyss82xzvndnjmzlqfl5"))))
6511 ;; Inputs must be propagated or else packages depending on this won't
6512 ;; have the necessary packages.
6513 (propagated-inputs
6514 `(("alexandria" ,sbcl-alexandria)
6515 ("trivial-garbage" ,sbcl-trivial-garbage)
6516 ("babel" ,sbcl-babel)
6517 ("iolib" ,sbcl-iolib)
6518 ("ieee-floats" ,sbcl-ieee-floats)
6519 ("flexi-streams" ,sbcl-flexi-streams)
6520 ("cl-xmlspam" ,sbcl-cl-xmlspam)
6521 ("ironclad" ,sbcl-ironclad)))
6522 (synopsis "D-Bus client library for Common Lisp")
6523 (description "This is a Common Lisp library that publishes D-Bus
6524 objects as well as send and notify other objects connected to a bus.")
6525 (license license:bsd-2))))
6526
6527 (define-public sbcl-cl-hooks
6528 (let ((commit "5b638083f3b4f1221a52631d9c8a0a265565cac7")
6529 (revision "1"))
6530 (package
6531 (name "sbcl-cl-hooks")
6532 (build-system asdf-build-system/sbcl)
6533 (version (git-version "0.2.1" revision commit))
6534 (home-page "https://github.com/scymtym/architecture.hooks")
6535 (source
6536 (origin
6537 (method git-fetch)
6538 (uri (git-reference
6539 (url home-page)
6540 (commit commit)))
6541 (file-name (git-file-name name version))
6542 (sha256
6543 (base32
6544 "0bg3l0a28lw5gqqjp6p6b5nhwqk46sgkb7184w5qbfngw1hk8x9y"))))
6545 (inputs
6546 `(("alexandria" ,sbcl-alexandria)
6547 ("let-plus" ,sbcl-let-plus)
6548 ("trivial-garbage" ,sbcl-trivial-garbage)
6549 ("closer-mop" ,sbcl-closer-mop)))
6550 (native-inputs
6551 `(("fiveam" ,sbcl-fiveam)))
6552 (synopsis "Hooks extension point mechanism (as in Emacs) for Common Lisp")
6553 (description "A hook, in the present context, is a certain kind of
6554 extension point in a program that allows interleaving the execution of
6555 arbitrary code with the execution of a the program without introducing any
6556 coupling between the two. Hooks are used extensively in the extensible editor
6557 Emacs.
6558
6559 In the Common LISP Object System (CLOS), a similar kind of extensibility is
6560 possible using the flexible multi-method dispatch mechanism. It may even seem
6561 that the concept of hooks does not provide any benefits over the possibilities
6562 of CLOS. However, there are some differences:
6563
6564 @itemize
6565
6566 @item There can be only one method for each combination of specializers and
6567 qualifiers. As a result this kind of extension point cannot be used by
6568 multiple extensions independently.
6569 @item Removing code previously attached via a @code{:before}, @code{:after} or
6570 @code{:around} method can be cumbersome.
6571 @item There could be other or even multiple extension points besides @code{:before}
6572 and @code{:after} in a single method.
6573 @item Attaching codes to individual objects using eql specializers can be
6574 cumbersome.
6575 @item Introspection of code attached a particular extension point is
6576 cumbersome since this requires enumerating and inspecting the methods of a
6577 generic function.
6578 @end itemize
6579
6580 This library tries to complement some of these weaknesses of method-based
6581 extension-points via the concept of hooks.")
6582 (license license:llgpl))))
6583
6584 (define-public cl-hooks
6585 (sbcl-package->cl-source-package sbcl-cl-hooks))
6586
6587 (define-public ecl-cl-hooks
6588 (sbcl-package->ecl-package sbcl-cl-hooks))
6589
6590 (define-public sbcl-s-sysdeps
6591 ;; No release since 2013.
6592 (let ((commit "9aa23bbdceb24bcdbe0e7c39fa1901858f823106")
6593 (revision "2"))
6594 (package
6595 (name "sbcl-s-sysdeps")
6596 (build-system asdf-build-system/sbcl)
6597 (version (git-version "1" revision commit))
6598 (home-page "https://github.com/svenvc/s-sysdeps")
6599 (source
6600 (origin
6601 (method git-fetch)
6602 (uri (git-reference
6603 (url home-page)
6604 (commit commit)))
6605 (file-name (git-file-name name version))
6606 (sha256
6607 (base32
6608 "1fh8r7kf8s3hvqdg6b71b8p7w3v2kkga9bw8j3qqdxhzr6anpm0b"))))
6609 (inputs
6610 `(("bordeaux-threads" ,sbcl-bordeaux-threads)
6611 ("usocket" ,sbcl-usocket)
6612 ("usocket-server" ,sbcl-usocket-server)))
6613 (synopsis "Common Lisp abstraction layer over platform dependent functionality")
6614 (description "@code{s-sysdeps} is an abstraction layer over platform
6615 dependent functionality. This simple package is used as a building block in a
6616 number of other open source projects.
6617
6618 @code{s-sysdeps} abstracts:
6619
6620 @itemize
6621 @item managing processes,
6622 @item implementing a standard TCP/IP server,
6623 @item opening a client TCP/IP socket stream,
6624 @item working with process locks.
6625 @end itemize\n")
6626 (license license:llgpl))))
6627
6628 (define-public cl-s-sysdeps
6629 (sbcl-package->cl-source-package sbcl-s-sysdeps))
6630
6631 (define-public ecl-s-sysdeps
6632 (sbcl-package->ecl-package sbcl-s-sysdeps))
6633
6634 (define-public sbcl-cl-prevalence
6635 (let ((commit "da3ed6c4594b1c2fca90c178c1993973c4bf16c9")
6636 (revision "2"))
6637 (package
6638 (name "sbcl-cl-prevalence")
6639 (build-system asdf-build-system/sbcl)
6640 (version (git-version "5" revision commit))
6641 (home-page "https://github.com/40ants/cl-prevalence")
6642 (source
6643 (origin
6644 (method git-fetch)
6645 (uri (git-reference
6646 (url home-page)
6647 (commit commit)))
6648 (file-name (git-file-name name version))
6649 (sha256
6650 (base32
6651 "0bq905hv1626dl6b7s0zn4lbdh608g1pxaljl1fda6pwp9hmj95a"))))
6652 (inputs
6653 `(("s-sysdeps" ,sbcl-s-sysdeps)
6654 ("s-xml" ,sbcl-s-xml)))
6655 (synopsis "Implementation of object prevalence for Common Lisp")
6656 (description "This Common Lisp library implements object prevalence (see
6657 @url{https://en.wikipedia.org/wiki/System_prevalence}). It allows
6658 for (de)serializing to and from s-exps as well as XML. Serialization of arbitrary
6659 classes and cyclic data structures are supported.")
6660 (license license:llgpl))))
6661
6662 (define-public cl-prevalence
6663 (sbcl-package->cl-source-package sbcl-cl-prevalence))
6664
6665 (define-public ecl-cl-prevalence
6666 (sbcl-package->ecl-package sbcl-cl-prevalence))
6667
6668 (define-public sbcl-series
6669 (let ((commit "da9061b336119d1e5214aff9117171d494d5a58a")
6670 (revision "1"))
6671 (package
6672 (name "sbcl-series")
6673 (version (git-version "2.2.11" revision commit))
6674 (source
6675 (origin
6676 (method git-fetch)
6677 (uri (git-reference
6678 (url "git://git.code.sf.net/p/series/series")
6679 (commit commit)))
6680 (file-name (git-file-name name version))
6681 (sha256
6682 (base32
6683 "07hk2lhfx42zk018pxqvn4gs77vd4n4g8m4xxbqaxgca76mifwfw"))))
6684 (build-system asdf-build-system/sbcl)
6685 (arguments
6686 ;; Disable the tests, they are apparently buggy and I didn't find
6687 ;; a simple way to make them run and pass.
6688 '(#:tests? #f))
6689 (synopsis "Series data structure for Common Lisp")
6690 (description
6691 "This Common Lisp library provides a series data structure much like
6692 a sequence, with similar kinds of operations. The difference is that in many
6693 situations, operations on series may be composed functionally and yet execute
6694 iteratively, without the need to construct intermediate series values
6695 explicitly. In this manner, series provide both the clarity of a functional
6696 programming style and the efficiency of an iterative programming style.")
6697 (home-page "http://series.sourceforge.net/")
6698 (license license:expat))))
6699
6700 (define-public cl-series
6701 (sbcl-package->cl-source-package sbcl-series))
6702
6703 (define-public ecl-series
6704 (sbcl-package->ecl-package sbcl-series))
6705
6706 (define-public sbcl-periods
6707 (let ((commit "983d4a57325db3c8def942f163133cec5391ec28")
6708 (revision "1"))
6709 (package
6710 (name "sbcl-periods")
6711 (version (git-version "0.0.2" revision commit))
6712 (source
6713 (origin
6714 (method git-fetch)
6715 (uri (git-reference
6716 (url "https://github.com/jwiegley/periods.git")
6717 (commit commit)))
6718 (file-name (git-file-name name version))
6719 (sha256
6720 (base32
6721 "0z30jr3lxz3cmi019fsl4lgcgwf0yqpn95v9zkkkwgymdrkd4lga"))))
6722 (build-system asdf-build-system/sbcl)
6723 (inputs
6724 `(("local-time" ,sbcl-local-time)))
6725 (synopsis "Common Lisp library for manipulating date/time objects")
6726 (description
6727 "Periods is a Common Lisp library providing a set of utilities for
6728 manipulating times, distances between times, and both contiguous and
6729 discontiguous ranges of time.")
6730 (home-page "https://github.com/jwiegley/periods")
6731 (license license:bsd-3))))
6732
6733 (define-public cl-periods
6734 (sbcl-package->cl-source-package sbcl-periods))
6735
6736 (define-public ecl-periods
6737 (sbcl-package->ecl-package sbcl-periods))
6738
6739 (define-public sbcl-periods-series
6740 (package
6741 (inherit sbcl-periods)
6742 (name "sbcl-periods-series")
6743 (inputs
6744 `(("periods" ,sbcl-periods)
6745 ("series" ,sbcl-series)))
6746 (arguments
6747 '(#:asd-file "periods-series.asd"
6748 #:asd-system-name "periods-series"))
6749 (description
6750 "Periods-series is an extension of the periods Common Lisp library
6751 providing functions compatible with the series Common Lisp library.")))
6752
6753 (define-public cl-periods-series
6754 (sbcl-package->cl-source-package sbcl-periods-series))
6755
6756 (define-public ecl-periods-series
6757 (sbcl-package->ecl-package sbcl-periods-series))
6758
6759 (define-public sbcl-metatilities-base
6760 (let ((commit "6eaa9e3ff0939a93a92109dd0fcd218de85417d5")
6761 (revision "1"))
6762 (package
6763 (name "sbcl-metatilities-base")
6764 (version (git-version "0.6.6" revision commit))
6765 (source
6766 (origin
6767 (method git-fetch)
6768 (uri (git-reference
6769 (url "https://github.com/gwkkwg/metatilities-base.git")
6770 (commit commit)))
6771 (file-name (git-file-name name version))
6772 (sha256
6773 (base32
6774 "0xpa86pdzlnf4v5g64j3ifaplx71sx2ha8b7vvakswi652679ma0"))))
6775 (build-system asdf-build-system/sbcl)
6776 (native-inputs
6777 `(("lift" ,sbcl-lift)))
6778 (synopsis "Core of the metatilities Common Lisp library")
6779 (description
6780 "Metatilities-base is the core of the metatilities Common Lisp library
6781 which implements a set of utilities.")
6782 (home-page "https://common-lisp.net/project/metatilities-base/")
6783 (license license:expat))))
6784
6785 (define-public cl-metatilities-base
6786 (sbcl-package->cl-source-package sbcl-metatilities-base))
6787
6788 (define-public ecl-metatilities-base
6789 (sbcl-package->ecl-package sbcl-metatilities-base))
6790
6791 (define-public sbcl-cl-containers
6792 (let ((commit "3d1df53c22403121bffb5d553cf7acb1503850e7")
6793 (revision "3"))
6794 (package
6795 (name "sbcl-cl-containers")
6796 (version (git-version "0.12.1" revision commit))
6797 (source
6798 (origin
6799 (method git-fetch)
6800 (uri (git-reference
6801 (url "https://github.com/gwkkwg/cl-containers.git")
6802 (commit commit)))
6803 (file-name (git-file-name name version))
6804 (sha256
6805 (base32
6806 "18s6jfq11n8nv9k4biz32pm1s7y9zl054ry1gmdbcf39nisy377y"))))
6807 (build-system asdf-build-system/sbcl)
6808 (native-inputs
6809 `(("lift" ,sbcl-lift)))
6810 (inputs
6811 `(("metatilities-base" ,sbcl-metatilities-base)))
6812 (arguments
6813 '(#:phases
6814 (modify-phases %standard-phases
6815 (add-after 'unpack 'relax-version-checks
6816 (lambda _
6817 (substitute* "cl-containers.asd"
6818 (("\\(:version \"metatilities-base\" \"0\\.6\\.6\"\\)")
6819 "\"metatilities-base\""))
6820 (substitute* "cl-containers-test.asd"
6821 (("\\(:version \"lift\" \"1\\.7\\.0\"\\)")
6822 "\"lift\""))
6823 #t)))))
6824 (synopsis "Container library for Common Lisp")
6825 (description
6826 "Common Lisp ships with a set of powerful built in data structures
6827 including the venerable list, full featured arrays, and hash-tables.
6828 CL-containers enhances and builds on these structures by adding containers
6829 that are not available in native Lisp (for example: binary search trees,
6830 red-black trees, sparse arrays and so on), and by providing a standard
6831 interface so that they are simpler to use and so that changing design
6832 decisions becomes significantly easier.")
6833 (home-page "https://common-lisp.net/project/cl-containers/")
6834 (license license:expat))))
6835
6836 (define-public cl-containers
6837 (sbcl-package->cl-source-package sbcl-cl-containers))
6838
6839 (define-public ecl-cl-containers
6840 (sbcl-package->ecl-package sbcl-cl-containers))
6841
6842 (define-public sbcl-xlunit
6843 (let ((commit "3805d34b1d8dc77f7e0ee527a2490194292dd0fc")
6844 (revision "1"))
6845 (package
6846 (name "sbcl-xlunit")
6847 (version (git-version "0.6.3" revision commit))
6848 (source
6849 (origin
6850 (method git-fetch)
6851 (uri (git-reference
6852 (url "http://git.kpe.io/xlunit.git")
6853 (commit commit)))
6854 (file-name (git-file-name name version))
6855 (sha256
6856 (base32
6857 "0argfmp9nghs4sihyj3f8ch9qfib2b7ll07v5m9ziajgzsfl5xw3"))))
6858 (build-system asdf-build-system/sbcl)
6859 (arguments
6860 '(#:phases
6861 (modify-phases %standard-phases
6862 (add-after 'unpack 'fix-tests
6863 (lambda _
6864 (substitute* "xlunit.asd"
6865 ((" :force t") ""))
6866 #t)))))
6867 (synopsis "Unit testing package for Common Lisp")
6868 (description
6869 "The XLUnit package is a toolkit for building test suites. It is based
6870 on the XPTest package by Craig Brozensky and the JUnit package by Kent Beck.")
6871 (home-page "http://quickdocs.org/xlunit/")
6872 (license license:bsd-3))))
6873
6874 (define-public cl-xlunit
6875 (sbcl-package->cl-source-package sbcl-xlunit))
6876
6877 (define-public ecl-xlunit
6878 (sbcl-package->ecl-package sbcl-xlunit))
6879
6880 (define-public sbcl-fprog
6881 (let ((commit "7016d1a98215f82605d1c158e7a16504ca1f4636")
6882 (revision "1"))
6883 (package
6884 (name "sbcl-fprog")
6885 (version (git-version "1.0.0" revision commit))
6886 (source
6887 (origin
6888 (method git-fetch)
6889 (uri (git-reference
6890 (url "https://github.com/jwiegley/cambl.git")
6891 (commit commit)))
6892 (file-name (git-file-name name version))
6893 (sha256
6894 (base32
6895 "103mry04j2k9vznsxm7wcvccgxkil92cdrv52miwcmxl8daa4jiz"))))
6896 (build-system asdf-build-system/sbcl)
6897 (synopsis "Functional programming utilities for Common Lisp")
6898 (description
6899 "@code{fprog} is a Common Lisp library allowing iteration over
6900 immutable lists sharing identical sublists.")
6901 (home-page "https://github.com/jwiegley/cambl")
6902 (license license:bsd-3))))
6903
6904 (define-public cl-fprog
6905 (sbcl-package->cl-source-package sbcl-fprog))
6906
6907 (define-public ecl-fprog
6908 (sbcl-package->ecl-package sbcl-fprog))
6909
6910 (define-public sbcl-cambl
6911 (let ((commit "7016d1a98215f82605d1c158e7a16504ca1f4636")
6912 (revision "1"))
6913 (package
6914 (inherit sbcl-fprog)
6915 (name "sbcl-cambl")
6916 (version (git-version "4.0.0" revision commit))
6917 (native-inputs
6918 `(("xlunit" ,sbcl-xlunit)))
6919 (inputs
6920 `(("alexandria" ,sbcl-alexandria)
6921 ("cl-containers" ,sbcl-cl-containers)
6922 ("local-time" ,sbcl-local-time)
6923 ("periods" ,sbcl-periods)
6924 ("fprog" ,sbcl-fprog)))
6925 (synopsis "Commoditized amounts and balances for Common Lisp")
6926 (description
6927 "CAMBL is a Common Lisp library providing a convenient facility for
6928 working with commoditized values. It does not allow compound units (and so is
6929 not suited for scientific operations) but does work rather nicely for the
6930 purpose of financial calculations."))))
6931
6932 (define-public cl-cambl
6933 (sbcl-package->cl-source-package sbcl-cambl))
6934
6935 (define-public ecl-cambl
6936 (sbcl-package->ecl-package sbcl-cambl))
6937
6938 (define-public sbcl-cl-ledger
6939 (let ((commit "08e0be41795e804cd36142e51756ad0b1caa377b")
6940 (revision "1"))
6941 (package
6942 (name "sbcl-cl-ledger")
6943 (version (git-version "4.0.0" revision commit))
6944 (source
6945 (origin
6946 (method git-fetch)
6947 (uri (git-reference
6948 (url "https://github.com/ledger/cl-ledger.git")
6949 (commit commit)))
6950 (file-name (git-file-name name version))
6951 (sha256
6952 (base32
6953 "1via0qf6wjcyxnfbmfxjvms0ik9j8rqbifgpmnhrzvkhrq9pv8h1"))))
6954 (build-system asdf-build-system/sbcl)
6955 (inputs
6956 `(("cambl" ,sbcl-cambl)
6957 ("cl-ppcre" ,sbcl-cl-ppcre)
6958 ("local-time" ,sbcl-local-time)
6959 ("periods-series" ,sbcl-periods-series)))
6960 (arguments
6961 '(#:phases
6962 (modify-phases %standard-phases
6963 (add-after 'unpack 'fix-system-definition
6964 (lambda _
6965 (substitute* "cl-ledger.asd"
6966 ((" :build-operation program-op") "")
6967 ((" :build-pathname \"cl-ledger\"") "")
6968 ((" :entry-point \"ledger::main\"") ""))
6969 #t)))))
6970 (synopsis "Common Lisp port of the Ledger accounting system")
6971 (description
6972 "CL-Ledger is a Common Lisp port of the Ledger double-entry accounting
6973 system.")
6974 (home-page "https://github.com/ledger/cl-ledger")
6975 (license license:bsd-3))))
6976
6977 (define-public cl-ledger
6978 (sbcl-package->cl-source-package sbcl-cl-ledger))
6979
6980 (define-public ecl-cl-ledger
6981 (sbcl-package->ecl-package sbcl-cl-ledger))
6982
6983 (define-public sbcl-bst
6984 (let ((commit "34f9c7e8e0a9f2c952fe310ab36cb630d5d9c15a")
6985 (revision "1"))
6986 (package
6987 (name "sbcl-bst")
6988 (version (git-version "1.1" revision commit))
6989 (source
6990 (origin
6991 (method git-fetch)
6992 (uri (git-reference
6993 (url "https://github.com/glv2/bst.git")
6994 (commit commit)))
6995 (file-name (git-file-name name version))
6996 (sha256
6997 (base32
6998 "1amxns7hvvh4arwbh8ciwfzplg127vh37dnbamv1m1kmmnmihfc8"))))
6999 (build-system asdf-build-system/sbcl)
7000 (native-inputs
7001 `(("alexandria" ,sbcl-alexandria)
7002 ("fiveam" ,sbcl-fiveam)))
7003 (synopsis "Binary search tree for Common Lisp")
7004 (description
7005 "BST is a Common Lisp library for working with binary search trees that
7006 can contain any kind of values.")
7007 (home-page "https://github.com/glv2/bst")
7008 (license license:gpl3))))
7009
7010 (define-public cl-bst
7011 (sbcl-package->cl-source-package sbcl-bst))
7012
7013 (define-public ecl-bst
7014 (sbcl-package->ecl-package sbcl-bst))
7015
7016 (define-public sbcl-cl-octet-streams
7017 (package
7018 (name "sbcl-cl-octet-streams")
7019 (version "1.0")
7020 (source
7021 (origin
7022 (method git-fetch)
7023 (uri (git-reference
7024 (url "https://github.com/glv2/cl-octet-streams.git")
7025 (commit (string-append "v" version))))
7026 (file-name (git-file-name name version))
7027 (sha256
7028 (base32
7029 "1d7mn6ydv0j2x4r7clpc9ijjwrnfpxmvhifv8n5j7jh7s744sf8d"))))
7030 (build-system asdf-build-system/sbcl)
7031 (native-inputs
7032 `(("fiveam" ,sbcl-fiveam)))
7033 (inputs
7034 `(("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
7035 (synopsis "In-memory octet streams for Common Lisp")
7036 (description
7037 "CL-octet-streams is a library implementing in-memory octet
7038 streams for Common Lisp. It was inspired by the trivial-octet-streams and
7039 cl-plumbing libraries.")
7040 (home-page "https://github.com/glv2/cl-octet-streams")
7041 (license license:gpl3+)))
7042
7043 (define-public cl-octet-streams
7044 (sbcl-package->cl-source-package sbcl-cl-octet-streams))
7045
7046 (define-public ecl-cl-octet-streams
7047 (sbcl-package->ecl-package sbcl-cl-octet-streams))
7048
7049 (define-public sbcl-lzlib
7050 (let ((commit "0de1db7129fef9a58a059d35a2fa2ecfc5b47b47")
7051 (revision "1"))
7052 (package
7053 (name "sbcl-lzlib")
7054 (version (git-version "1.0" revision commit))
7055 (source
7056 (origin
7057 (method git-fetch)
7058 (uri (git-reference
7059 (url "https://github.com/glv2/cl-lzlib.git")
7060 (commit commit)))
7061 (file-name (git-file-name name version))
7062 (sha256
7063 (base32
7064 "12ny7vj52fgnd8hb8fc8mry92vq4c1x72x2350191m4476j95clz"))))
7065 (build-system asdf-build-system/sbcl)
7066 (native-inputs
7067 `(("fiveam" ,sbcl-fiveam)))
7068 (inputs
7069 `(("cffi" ,sbcl-cffi)
7070 ("cl-octet-streams" ,sbcl-cl-octet-streams)
7071 ("lzlib" ,lzlib)))
7072 (arguments
7073 '(#:phases
7074 (modify-phases %standard-phases
7075 (add-after 'unpack 'fix-paths
7076 (lambda* (#:key inputs #:allow-other-keys)
7077 (substitute* "src/lzlib.lisp"
7078 (("liblz\\.so")
7079 (string-append (assoc-ref inputs "lzlib") "/lib/liblz.so")))
7080 #t)))))
7081 (synopsis "Common Lisp library for lzip (de)compression")
7082 (description
7083 "This Common Lisp library provides functions for lzip (LZMA)
7084 compression/decompression using bindings to the lzlib C library.")
7085 (home-page "https://github.com/glv2/cl-lzlib")
7086 (license license:gpl3+))))
7087
7088 (define-public cl-lzlib
7089 (sbcl-package->cl-source-package sbcl-lzlib))
7090
7091 (define-public ecl-lzlib
7092 (sbcl-package->ecl-package sbcl-lzlib))
7093
7094 (define-public sbcl-chanl
7095 (let ((commit "56e90a126c78b39bb621a01585e8d3b985238e8c")
7096 (revision "1"))
7097 (package
7098 (name "sbcl-chanl")
7099 (version (git-version "0.4.1" revision commit))
7100 (source
7101 (origin
7102 (method git-fetch)
7103 (uri (git-reference
7104 (url "https://github.com/zkat/chanl.git")
7105 (commit commit)))
7106 (file-name (git-file-name name version))
7107 (sha256
7108 (base32
7109 "0b1cf6c12qx5cy1fw2z42jgh566rp3l8nv5qf0qqc569s7bgmrh4"))))
7110 (build-system asdf-build-system/sbcl)
7111 (native-inputs
7112 `(("fiveam" ,sbcl-fiveam)))
7113 (inputs
7114 `(("bordeaux-threads" ,sbcl-bordeaux-threads)))
7115 (synopsis "Portable channel-based concurrency for Common Lisp")
7116 (description "Common Lisp library for channel-based concurrency. In
7117 a nutshell, you create various threads sequentially executing tasks you need
7118 done, and use channel objects to communicate and synchronize the state of these
7119 threads.")
7120 (home-page "https://github.com/zkat/chanl")
7121 (license (list license:expat license:bsd-3)))))
7122
7123 (define-public cl-chanl
7124 (sbcl-package->cl-source-package sbcl-chanl))
7125
7126 (define-public ecl-chanl
7127 (sbcl-package->ecl-package sbcl-chanl))
7128
7129 (define-public sbcl-cl-store
7130 (let ((commit "c787337a16ea8cf8a06227f35933a4ec774746b3")
7131 (revision "1"))
7132 (package
7133 (name "sbcl-cl-store")
7134 (version (git-version "0.8.11" revision commit))
7135 (source
7136 (origin
7137 (method git-fetch)
7138 (uri (git-reference
7139 (url "https://github.com/skypher/cl-store.git")
7140 (commit commit)))
7141 (file-name (git-file-name name version))
7142 (sha256
7143 (base32
7144 "194srkg8nrym19c6i7zbnkzshc1qhqa82m53qnkirz9fw928bqxr"))))
7145 (build-system asdf-build-system/sbcl)
7146 (native-inputs
7147 `(("rt" ,sbcl-rt)))
7148 (synopsis "Common Lisp library to serialize data")
7149 (description
7150 "CL-STORE is a portable serialization package which should give you the
7151 ability to store all Common Lisp data types into streams.")
7152 (home-page "https://www.common-lisp.net/project/cl-store/")
7153 (license license:expat))))
7154
7155 (define-public cl-store
7156 (sbcl-package->cl-source-package sbcl-cl-store))
7157
7158 (define-public ecl-cl-store
7159 (sbcl-package->ecl-package sbcl-cl-store))
7160
7161 (define-public sbcl-cl-gobject-introspection
7162 (let ((commit "7b703e2384945ea0ac39d9b766de434a08d81560")
7163 (revision "0"))
7164 (package
7165 (name "sbcl-cl-gobject-introspection")
7166 (version (git-version "0.3" revision commit))
7167 (home-page "https://github.com/andy128k/cl-gobject-introspection")
7168 (source
7169 (origin
7170 (method git-fetch)
7171 (uri (git-reference
7172 (url home-page)
7173 (commit commit)))
7174 (file-name (git-file-name name version))
7175 (sha256
7176 (base32
7177 "1zcqd2qj14f6b38vys8gr89s6cijsp9r8j43xa8lynilwva7bwyh"))))
7178 (build-system asdf-build-system/sbcl)
7179 (inputs
7180 `(("alexandria" ,sbcl-alexandria)
7181 ("cffi" ,sbcl-cffi)
7182 ("iterate" ,sbcl-iterate)
7183 ("trivial-garbage" ,sbcl-trivial-garbage)
7184 ("glib" ,glib)
7185 ("gobject-introspection" ,gobject-introspection)))
7186 (native-inputs
7187 `(("fiveam" ,sbcl-fiveam)))
7188 (arguments
7189 ;; TODO: Tests fail, see
7190 ;; https://github.com/andy128k/cl-gobject-introspection/issues/70.
7191 '(#:tests? #f
7192 #:phases
7193 (modify-phases %standard-phases
7194 (add-after (quote unpack) (quote fix-paths)
7195 (lambda* (#:key inputs #:allow-other-keys)
7196 (substitute* "src/init.lisp"
7197 (("libgobject-2\\.0\\.so")
7198 (string-append (assoc-ref inputs "glib") "/lib/libgobject-2.0.so"))
7199 (("libgirepository-1\\.0\\.so")
7200 (string-append (assoc-ref inputs "gobject-introspection")
7201 "/lib/libgirepository-1.0.so")))
7202 #t)))))
7203 (synopsis "Common Lisp bindings to GObject Introspection")
7204 (description
7205 "This library is a bridge between Common Lisp and GObject
7206 Introspection, which enables Common Lisp programs to access the full interface
7207 of C+GObject libraries without the need of writing dedicated bindings.")
7208 (license (list license:bsd-3
7209 ;; Tests are under a different license.
7210 license:llgpl)))))
7211
7212 (define-public cl-gobject-introspection
7213 (sbcl-package->cl-source-package sbcl-cl-gobject-introspection))
7214
7215 (define-public sbcl-string-case
7216 (let ((commit "718c761e33749e297cd2809c7ba3ade1985c49f7")
7217 (revision "0"))
7218 (package
7219 (name "sbcl-string-case")
7220 (version (git-version "0.0.2" revision commit))
7221 (home-page "https://github.com/pkhuong/string-case")
7222 (source
7223 (origin
7224 (method git-fetch)
7225 (uri (git-reference
7226 (url home-page)
7227 (commit commit)))
7228 (file-name (git-file-name name version))
7229 (sha256
7230 (base32
7231 "1n5i3yh0h5s636rcnwn7jwqy3rjflikra04lymimhpcshhjsk0md"))))
7232 (build-system asdf-build-system/sbcl)
7233 (synopsis "Efficient string= case in Common Lisp")
7234 (description
7235 "@code{string-case} is a Common Lisp macro that generates specialised decision
7236 trees to dispatch on string equality.")
7237 (license license:bsd-3))))
7238
7239 (define-public cl-string-case
7240 (sbcl-package->cl-source-package sbcl-string-case))
7241
7242 (define-public ecl-string-case
7243 (sbcl-package->ecl-package sbcl-string-case))
7244
7245 (define-public sbcl-global-vars
7246 (let ((commit "c749f32c9b606a1457daa47d59630708ac0c266e")
7247 (revision "0"))
7248 (package
7249 (name "sbcl-global-vars")
7250 (version (git-version "1.0.0" revision commit))
7251 (home-page "https://github.com/lmj/global-vars")
7252 (source
7253 (origin
7254 (method git-fetch)
7255 (uri (git-reference
7256 (url home-page)
7257 (commit commit)))
7258 (file-name (git-file-name name version))
7259 (sha256
7260 (base32
7261 "06m3xc8l3pgsapl8fvsi9wf6y46zs75cp9zn7zh6dc65v4s5wz3d"))))
7262 (build-system asdf-build-system/sbcl)
7263 (synopsis "Efficient global variables in Common Lisp")
7264 (description
7265 "In Common Lisp, a special variable that is never dynamically bound
7266 typically serves as a stand-in for a global variable. The @code{global-vars}
7267 library provides true global variables that are implemented by some compilers.
7268 An attempt to rebind a global variable properly results in a compiler error.
7269 That is, a global variable cannot be dynamically bound.
7270
7271 Global variables therefore allow us to communicate an intended usage that
7272 differs from special variables. Global variables are also more efficient than
7273 special variables, especially in the presence of threads.")
7274 (license license:expat))))
7275
7276 (define-public cl-global-vars
7277 (sbcl-package->cl-source-package sbcl-global-vars))
7278
7279 (define-public ecl-global-vars
7280 (sbcl-package->ecl-package sbcl-global-vars))
7281
7282 (define-public sbcl-trivial-file-size
7283 (let ((commit "1c1d672a01a446ba0391dbb4ffc40be3b0476f23")
7284 (revision "0"))
7285 (package
7286 (name "sbcl-trivial-file-size")
7287 (version (git-version "0.0.0" revision commit))
7288 (home-page "https://github.com/ruricolist/trivial-file-size")
7289 (source
7290 (origin
7291 (method git-fetch)
7292 (uri (git-reference
7293 (url home-page)
7294 (commit commit)))
7295 (file-name (git-file-name name version))
7296 (sha256
7297 (base32
7298 "17pp86c9zs4y7i1sh7q9gbfw9iqv6655k7fz8qbj9ly1ypgxp4qs"))))
7299 (build-system asdf-build-system/sbcl)
7300 (native-inputs
7301 `(("fiveam" ,sbcl-fiveam)))
7302 (synopsis "Size of a file in bytes in Common Lisp")
7303 (description
7304 "The canonical way to determine the size of a file in bytes, using Common Lisp,
7305 is to open the file with an element type of (unsigned-byte 8) and then
7306 calculate the length of the stream. This is less than ideal. In most cases
7307 it is better to get the size of the file from its metadata, using a system
7308 call.
7309
7310 This library exports a single function, file-size-in-octets. It returns the
7311 size of a file in bytes, using system calls when possible.")
7312 (license license:expat))))
7313
7314 (define-public cl-trivial-file-size
7315 (sbcl-package->cl-source-package sbcl-trivial-file-size))
7316
7317 (define-public ecl-trivial-file-size
7318 (sbcl-package->ecl-package sbcl-trivial-file-size))
7319
7320 (define-public sbcl-trivial-macroexpand-all
7321 (let ((commit "933270ac7107477de1bc92c1fd641fe646a7a8a9")
7322 (revision "0"))
7323 (package
7324 (name "sbcl-trivial-macroexpand-all")
7325 (version (git-version "0.0.0" revision commit))
7326 (home-page "https://github.com/cbaggers/trivial-macroexpand-all")
7327 (source
7328 (origin
7329 (method git-fetch)
7330 (uri (git-reference
7331 (url home-page)
7332 (commit commit)))
7333 (file-name (git-file-name name version))
7334 (sha256
7335 (base32
7336 "191hnn4b5j4i3crydmlzbm231kj0h7l8zj6mzj69r1npbzkas4bd"))))
7337 (build-system asdf-build-system/sbcl)
7338 (native-inputs
7339 `(("fiveam" ,sbcl-fiveam)))
7340 (synopsis "Portable macroexpand-all for Common Lisp")
7341 (description
7342 "This library provides a macroexpand-all function that calls the
7343 implementation specific equivalent.")
7344 (license license:unlicense))))
7345
7346 (define-public cl-trivial-macroexpand-all
7347 (sbcl-package->cl-source-package sbcl-trivial-macroexpand-all))
7348
7349 (define-public ecl-trivial-macroexpand-all
7350 (sbcl-package->ecl-package sbcl-trivial-macroexpand-all))
7351
7352 (define-public sbcl-serapeum
7353 (let ((commit "64f0c4a161bbbda7c275012ca1415b4293b9e169")
7354 (revision "1"))
7355 (package
7356 (name "sbcl-serapeum")
7357 (version (git-version "0.0.0" revision commit))
7358 (home-page "https://github.com/ruricolist/serapeum")
7359 (source
7360 (origin
7361 (method git-fetch)
7362 (uri (git-reference
7363 (url home-page)
7364 (commit commit)))
7365 (file-name (git-file-name name version))
7366 (sha256
7367 (base32
7368 "0djnj0py8hdjnk5j6shjq2kbmyxqd5sw79cilcfmpfz4dzjdgkx9"))))
7369 (build-system asdf-build-system/sbcl)
7370 (inputs
7371 `(("alexandria" ,sbcl-alexandria)
7372 ("trivia" ,sbcl-trivia)
7373 ("trivia.quasiquote" ,sbcl-trivia.quasiquote)
7374 ("split-sequence" ,sbcl-split-sequence)
7375 ("string-case" ,sbcl-string-case)
7376 ("parse-number" ,sbcl-parse-number)
7377 ("trivial-garbage" ,sbcl-trivial-garbage)
7378 ("bordeaux-threads" ,sbcl-bordeaux-threads)
7379 ("named-readtables" ,sbcl-named-readtables)
7380 ("fare-quasiquote-extras" ,sbcl-fare-quasiquote-extras)
7381 ("parse-declarations-1.0" ,sbcl-parse-declarations)
7382 ("global-vars" ,sbcl-global-vars)
7383 ("trivial-file-size" ,sbcl-trivial-file-size)
7384 ("trivial-macroexpand-all" ,sbcl-trivial-macroexpand-all)))
7385 (native-inputs
7386 `(("fiveam" ,sbcl-fiveam)
7387 ("local-time" ,sbcl-local-time)))
7388 (arguments
7389 '(#:phases
7390 (modify-phases %standard-phases
7391 (add-after 'unpack 'disable-failing-tests
7392 (lambda* (#:key inputs #:allow-other-keys)
7393 (substitute* "serapeum.asd"
7394 ;; Guix does not have Quicklisp, and probably never will.
7395 (("\\(:file \"quicklisp\"\\)") ""))
7396 #t)))))
7397 (synopsis "Common Lisp utility library beyond Alexandria")
7398 (description
7399 "Serapeum is a conservative library of Common Lisp utilities. It is a
7400 supplement, not a competitor, to Alexandria.")
7401 (license license:expat))))
7402
7403 (define-public cl-serapeum
7404 (sbcl-package->cl-source-package sbcl-serapeum))
7405
7406 (define-public sbcl-arrows
7407 (let ((commit "df7cf0067e0132d9697ac8b1a4f1b9c88d4f5382")
7408 (revision "0"))
7409 (package
7410 (name "sbcl-arrows")
7411 (version (git-version "0.2.0" revision commit))
7412 (source
7413 (origin
7414 (method git-fetch)
7415 (uri (git-reference
7416 (url "https://gitlab.com/Harleqin/arrows.git")
7417 (commit commit)))
7418 (file-name (git-file-name name version))
7419 (sha256
7420 (base32
7421 "042k9vkssrqx9nhp14wdzm942zgdxvp35mba0p2syz98i75im2yy"))))
7422 (build-system asdf-build-system/sbcl)
7423 (native-inputs
7424 `(("hu.dwim.stefil" ,sbcl-hu.dwim.stefil)))
7425 (synopsis "Clojure-like arrow macros for Common Lisp")
7426 (description
7427 "This library implements the @code{->} and @code{->>} macros from
7428 Clojure, as well as several expansions on the idea.")
7429 (home-page "https://gitlab.com/Harleqin/arrows")
7430 (license license:public-domain))))
7431
7432 (define-public cl-arrows
7433 (sbcl-package->cl-source-package sbcl-arrows))
7434
7435 (define-public ecl-arrows
7436 (sbcl-package->ecl-package sbcl-arrows))
7437
7438 (define-public sbcl-simple-parallel-tasks
7439 (let ((commit "db460f7a3f7bbfe2d3a2223ed21e162068d04dda")
7440 (revision "0"))
7441 (package
7442 (name "sbcl-simple-parallel-tasks")
7443 (version (git-version "1.0" revision commit))
7444 (source
7445 (origin
7446 (method git-fetch)
7447 (uri (git-reference
7448 (url "https://github.com/glv2/simple-parallel-tasks.git")
7449 (commit commit)))
7450 (file-name (git-file-name name version))
7451 (sha256
7452 (base32
7453 "0amw3qk23wnlyrsgzszs6rs7y4zvxv8dr03rnqhc60mnm8ds4dd5"))))
7454 (build-system asdf-build-system/sbcl)
7455 (native-inputs
7456 `(("fiveam" ,sbcl-fiveam)))
7457 (inputs
7458 `(("chanl" ,sbcl-chanl)))
7459 (synopsis "Common Lisp library to evaluate some forms in parallel")
7460 (description "This is a simple Common Lisp library to evaluate some
7461 forms in parallel.")
7462 (home-page "https://github.com/glv2/simple-parallel-tasks")
7463 (license license:gpl3))))
7464
7465 (define-public cl-simple-parallel-tasks
7466 (sbcl-package->cl-source-package sbcl-simple-parallel-tasks))
7467
7468 (define-public ecl-simple-parallel-tasks
7469 (sbcl-package->ecl-package sbcl-simple-parallel-tasks))
7470
7471 (define-public sbcl-cl-heap
7472 (package
7473 (name "sbcl-cl-heap")
7474 (version "0.1.6")
7475 (source
7476 (origin
7477 (method url-fetch)
7478 (uri (string-append "https://common-lisp.net/project/cl-heap/releases/"
7479 "cl-heap_" version ".tar.gz"))
7480 (sha256
7481 (base32
7482 "163hb07p2nxz126rpq3cj5dyala24n0by5i5786n2qcr1w0bak4i"))))
7483 (build-system asdf-build-system/sbcl)
7484 (native-inputs
7485 `(("xlunit" ,sbcl-xlunit)))
7486 (arguments
7487 `(#:test-asd-file "cl-heap-tests.asd"))
7488 (synopsis "Heap and priority queue data structures for Common Lisp")
7489 (description
7490 "CL-HEAP provides various implementations of heap data structures (a
7491 binary heap and a Fibonacci heap) as well as an efficient priority queue.")
7492 (home-page "https://common-lisp.net/project/cl-heap/")
7493 (license license:gpl3+)))
7494
7495 (define-public cl-heap
7496 (sbcl-package->cl-source-package sbcl-cl-heap))
7497
7498 (define-public ecl-cl-heap
7499 (sbcl-package->ecl-package sbcl-cl-heap))
7500
7501 (define-public sbcl-curry-compose-reader-macros
7502 (let ((commit "beaa92dedf392726c042184bfd6149fa8d9e6ac2")
7503 (revision "0"))
7504 (package
7505 (name "sbcl-curry-compose-reader-macros")
7506 (version (git-version "1.0.0" revision commit))
7507 (source
7508 (origin
7509 (method git-fetch)
7510 (uri
7511 (git-reference
7512 (url "https://github.com/eschulte/curry-compose-reader-macros.git")
7513 (commit commit)))
7514 (file-name (git-file-name name version))
7515 (sha256
7516 (base32
7517 "0rv9bl8xrad5wfcg5zs1dazvnpmvqz6297lbn8bywsrcfnlf7h98"))))
7518 (build-system asdf-build-system/sbcl)
7519 (inputs
7520 `(("alexandria" ,sbcl-alexandria)
7521 ("named-readtables" ,sbcl-named-readtables)))
7522 (synopsis "Reader macros for partial application and composition")
7523 (description
7524 "This Common Lisp library provides reader macros for concise expression
7525 of function partial application and composition.")
7526 (home-page "https://eschulte.github.io/curry-compose-reader-macros/")
7527 (license license:public-domain))))
7528
7529 (define-public cl-curry-compose-reader-macros
7530 (sbcl-package->cl-source-package sbcl-curry-compose-reader-macros))
7531
7532 (define-public ecl-curry-compose-reader-macros
7533 (sbcl-package->ecl-package sbcl-curry-compose-reader-macros))
7534
7535 (define-public sbcl-yason
7536 (package
7537 (name "sbcl-yason")
7538 (version "0.7.7")
7539 (source
7540 (origin
7541 (method git-fetch)
7542 (uri (git-reference
7543 (url "https://github.com/phmarek/yason.git")
7544 (commit (string-append "v" version))))
7545 (file-name (git-file-name name version))
7546 (sha256
7547 (base32
7548 "0479rbjgbj80jpk5bby18inlv1kfp771a82rlcq5psrz65qqa9bj"))))
7549 (build-system asdf-build-system/sbcl)
7550 (inputs
7551 `(("alexandria" ,sbcl-alexandria)
7552 ("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
7553 (synopsis "Common Lisp JSON parser/encoder")
7554 (description
7555 "YASON is a Common Lisp library for encoding and decoding data in the
7556 JSON interchange format.")
7557 (home-page "https://github.com/phmarek/yason")
7558 (license license:bsd-3)))
7559
7560 (define-public cl-yason
7561 (sbcl-package->cl-source-package sbcl-yason))
7562
7563 (define-public ecl-yason
7564 (sbcl-package->ecl-package sbcl-yason))
7565
7566 (define-public sbcl-stefil
7567 (let ((commit "0398548ec95dceb50fc2c2c03e5fb0ce49b86c7a")
7568 (revision "0"))
7569 (package
7570 (name "sbcl-stefil")
7571 (version (git-version "0.1" revision commit))
7572 (source
7573 (origin
7574 (method git-fetch)
7575 (uri (git-reference
7576 (url "https://gitlab.common-lisp.net/stefil/stefil.git")
7577 (commit commit)))
7578 (file-name (git-file-name name version))
7579 (sha256
7580 (base32
7581 "0bqz64q2szzhf91zyqyssmvrz7da6442rs01808pf3wrdq28bclh"))))
7582 (build-system asdf-build-system/sbcl)
7583 (inputs
7584 `(("alexandria" ,sbcl-alexandria)
7585 ("iterate" ,sbcl-iterate)
7586 ("metabang-bind" ,sbcl-metabang-bind)))
7587 (propagated-inputs
7588 ;; Swank doesn't have a pre-compiled package, therefore we must
7589 ;; propagate its sources.
7590 `(("swank" ,cl-slime-swank)))
7591 (arguments
7592 '(#:phases
7593 (modify-phases %standard-phases
7594 (add-after 'unpack 'drop-unnecessary-dependency
7595 (lambda _
7596 (substitute* "package.lisp"
7597 ((":stefil-system") ""))
7598 #t)))))
7599 (home-page "https://common-lisp.net/project/stefil/index-old.shtml")
7600 (synopsis "Simple test framework")
7601 (description
7602 "Stefil is a simple test framework for Common Lisp, with a focus on
7603 interactive development.")
7604 (license license:public-domain))))
7605
7606 (define-public cl-stefil
7607 (sbcl-package->cl-source-package sbcl-stefil))
7608
7609 (define-public sbcl-graph
7610 (let ((commit "78bf9ec930d8eae4f0861b5be76765fb1e45e24f")
7611 (revision "0"))
7612 (package
7613 (name "sbcl-graph")
7614 (version (git-version "0.0.0" revision commit))
7615 (source
7616 (origin
7617 (method git-fetch)
7618 (uri
7619 (git-reference
7620 (url "https://github.com/eschulte/graph.git")
7621 (commit commit)))
7622 (file-name (git-file-name name version))
7623 (sha256
7624 (base32
7625 "1qpij4xh8bqwc2myahpilcbh916v7vg0acz2fij14d3y0jm02h0g"))
7626 (patches (search-patches "sbcl-graph-asdf-definitions.patch"))))
7627 (build-system asdf-build-system/sbcl)
7628 (native-inputs
7629 `(("stefil" ,sbcl-stefil)))
7630 (inputs
7631 `(("alexandria" ,sbcl-alexandria)
7632 ("cl-heap" ,sbcl-cl-heap)
7633 ("curry-compose-reader-macros" ,sbcl-curry-compose-reader-macros)
7634 ("metabang-bind" ,sbcl-metabang-bind)
7635 ("named-readtables" ,sbcl-named-readtables)))
7636 (arguments
7637 '(#:test-asd-file "graph-test.asd"))
7638 (synopsis "Graph data structure and algorithms for Common Lisp")
7639 (description
7640 "The GRAPH Common Lisp library provides a data structures to represent
7641 graphs, as well as some graph manipulation and analysis algorithms (shortest
7642 path, maximum flow, minimum spanning tree, etc.).")
7643 (home-page "https://eschulte.github.io/graph/")
7644 (license license:gpl3+))))
7645
7646 (define-public cl-graph
7647 (sbcl-package->cl-source-package sbcl-graph))
7648
7649 (define-public sbcl-graph-dot
7650 (package
7651 (inherit sbcl-graph)
7652 (name "sbcl-graph-dot")
7653 (inputs
7654 `(("alexandria" ,sbcl-alexandria)
7655 ("cl-ppcre" ,sbcl-cl-ppcre)
7656 ("curry-compose-reader-macros" ,sbcl-curry-compose-reader-macros)
7657 ("graph" ,sbcl-graph)
7658 ("metabang-bind" ,sbcl-metabang-bind)
7659 ("named-readtables" ,sbcl-named-readtables)))
7660 (arguments
7661 (substitute-keyword-arguments (package-arguments sbcl-graph)
7662 ((#:asd-file _ "") "graph-dot.asd")
7663 ((#:asd-system-name _ #f) "graph-dot")))
7664 (synopsis "Serialize graphs to and from DOT format")))
7665
7666 (define-public sbcl-graph-json
7667 (package
7668 (inherit sbcl-graph)
7669 (name "sbcl-graph-json")
7670 (inputs
7671 `(("alexandria" ,sbcl-alexandria)
7672 ("curry-compose-reader-macros" ,sbcl-curry-compose-reader-macros)
7673 ("graph" ,sbcl-graph)
7674 ("metabang-bind" ,sbcl-metabang-bind)
7675 ("named-readtables" ,sbcl-named-readtables)
7676 ("yason" ,sbcl-yason)))
7677 (arguments
7678 (substitute-keyword-arguments (package-arguments sbcl-graph)
7679 ((#:asd-file _ "") "graph-json.asd")
7680 ((#:asd-system-name _ #f) "graph-json")))
7681 (synopsis "Serialize graphs to and from JSON format")))
7682
7683 (define-public sbcl-trivial-indent
7684 (let ((commit "2d016941751647c6cc5bd471751c2cf68861c94a")
7685 (revision "0"))
7686 (package
7687 (name "sbcl-trivial-indent")
7688 (version (git-version "1.0.0" revision commit))
7689 (source
7690 (origin
7691 (method git-fetch)
7692 (uri
7693 (git-reference
7694 (url "https://github.com/Shinmera/trivial-indent")
7695 (commit commit)))
7696 (file-name (git-file-name name version))
7697 (sha256
7698 (base32
7699 "1sj90nqz17w4jq0ixz00gb9g5g6d2s7l8r17zdby27gxxh51w266"))))
7700 (build-system asdf-build-system/sbcl)
7701 (synopsis "Simple Common Lisp library to allow indentation hints for SWANK")
7702 (description
7703 "This library allows you to define custom indentation hints for your
7704 macros if the one recognised by SLIME automatically produces unwanted
7705 results.")
7706 (home-page "https://shinmera.github.io/trivial-indent/")
7707 (license license:zlib))))
7708
7709 (define-public cl-trivial-indent
7710 (sbcl-package->cl-source-package sbcl-trivial-indent))
7711
7712 (define-public sbcl-documentation-utils
7713 (let ((commit "98630dd5f7e36ae057fa09da3523f42ccb5d1f55")
7714 (revision "0"))
7715 (package
7716 (name "sbcl-documentation-utils")
7717 (version (git-version "1.2.0" revision commit))
7718 (source
7719 (origin
7720 (method git-fetch)
7721 (uri
7722 (git-reference
7723 (url "https://github.com/Shinmera/documentation-utils.git")
7724 (commit commit)))
7725 (file-name (git-file-name name version))
7726 (sha256
7727 (base32
7728 "098qhkqskmmrh4wix34mawf7p5c87yql28r51r75yjxj577k5idq"))))
7729 (build-system asdf-build-system/sbcl)
7730 (inputs
7731 `(("trivial-indent" ,sbcl-trivial-indent)))
7732 (synopsis "Few simple tools to document Common Lisp libraries")
7733 (description
7734 "This is a small library to help you with managing the Common Lisp
7735 docstrings for your library.")
7736 (home-page "https://shinmera.github.io/documentation-utils/")
7737 (license license:zlib))))
7738
7739 (define-public cl-documentation-utils
7740 (sbcl-package->cl-source-package sbcl-documentation-utils))
7741
7742 (define-public ecl-documentation-utils
7743 (sbcl-package->ecl-package sbcl-documentation-utils))
7744
7745 (define-public sbcl-form-fiddle
7746 (let ((commit "e0c23599dbb8cff3e83e012f3d86d0764188ad18")
7747 (revision "0"))
7748 (package
7749 (name "sbcl-form-fiddle")
7750 (version (git-version "1.1.0" revision commit))
7751 (source
7752 (origin
7753 (method git-fetch)
7754 (uri
7755 (git-reference
7756 (url "https://github.com/Shinmera/form-fiddle")
7757 (commit commit)))
7758 (file-name (git-file-name name version))
7759 (sha256
7760 (base32
7761 "041iznc9mpfyrl0sv5893ys9pbb2pvbn9g3clarqi7gsfj483jln"))))
7762 (build-system asdf-build-system/sbcl)
7763 (inputs
7764 `(("documentation-utils" ,sbcl-documentation-utils)))
7765 (synopsis "Utilities to destructure Common Lisp lambda forms")
7766 (description
7767 "Often times we need to destructure a form definition in a Common Lisp
7768 macro. This library provides a set of simple utilities to help with that.")
7769 (home-page "https://shinmera.github.io/form-fiddle/")
7770 (license license:zlib))))
7771
7772 (define-public cl-form-fiddle
7773 (sbcl-package->cl-source-package sbcl-form-fiddle))
7774
7775 (define-public sbcl-parachute
7776 (let ((commit "ca04dd8e43010a6dfffa26dbe1d62af86008d666")
7777 (revision "0"))
7778 (package
7779 (name "sbcl-parachute")
7780 (version (git-version "1.1.1" revision commit))
7781 (source
7782 (origin
7783 (method git-fetch)
7784 (uri
7785 (git-reference
7786 (url "https://github.com/Shinmera/parachute")
7787 (commit commit)))
7788 (file-name (git-file-name name version))
7789 (sha256
7790 (base32
7791 "1mvsm3r0r6a2bg75nw0q7n9vlby3ch45qjl7hnb5k1z2n5x5lh60"))))
7792 (build-system asdf-build-system/sbcl)
7793 (inputs
7794 `(("documentation-utils" ,sbcl-documentation-utils)
7795 ("form-fiddle" ,sbcl-form-fiddle)))
7796 (synopsis "Extensible and cross-compatible testing framework for Common Lisp")
7797 (description
7798 "Parachute is a simple-to-use and extensible testing framework.
7799 In Parachute, things are organised as a bunch of named tests within a package.
7800 Each test can contain a bunch of test forms that make up its body.")
7801 (home-page "https://shinmera.github.io/parachute/")
7802 (license license:zlib))))
7803
7804 (define-public cl-parachute
7805 (sbcl-package->cl-source-package sbcl-parachute))
7806
7807 (define-public sbcl-array-utils
7808 (let ((commit "f90eb9070d0b2205af51126a35033574725e5c56")
7809 (revision "0"))
7810 (package
7811 (name "sbcl-array-utils")
7812 (version (git-version "1.1.1" revision commit))
7813 (source
7814 (origin
7815 (method git-fetch)
7816 (uri
7817 (git-reference
7818 (url "https://github.com/Shinmera/array-utils")
7819 (commit commit)))
7820 (file-name (git-file-name name version))
7821 (sha256
7822 (base32
7823 "0zhwfbpr53vs1ii4sx75dz2k9yhh1xpwdqqpg8nmfndxkmhpbi3x"))))
7824 (build-system asdf-build-system/sbcl)
7825 (native-inputs
7826 `(("parachute" ,sbcl-parachute)))
7827 (inputs
7828 `(("documentation-utils" ,sbcl-documentation-utils)))
7829 (synopsis "Tiny collection of array and vector utilities for Common Lisp")
7830 (description
7831 "A miniature toolkit that contains some useful shifting/popping/pushing
7832 functions for arrays and vectors. Originally from Plump.")
7833 (home-page "https://shinmera.github.io/array-utils/")
7834 (license license:zlib))))
7835
7836 (define-public cl-array-utils
7837 (sbcl-package->cl-source-package sbcl-array-utils))
7838
7839 (define-public sbcl-plump
7840 (let ((commit "34f890fe46efdebe7bb70d218f1937e98f632bf9")
7841 (revision "1"))
7842 (package
7843 (name "sbcl-plump")
7844 (version (git-version "2.0.0" revision commit))
7845 (source
7846 (origin
7847 (method git-fetch)
7848 (uri
7849 (git-reference
7850 (url "https://github.com/Shinmera/plump")
7851 (commit commit)))
7852 (file-name (git-file-name name version))
7853 (sha256
7854 (base32
7855 "0a0x8wn6vv1ylxcwck12k18gy0a366kdm6ddxxk7yynl4mwnqgkh"))))
7856 (build-system asdf-build-system/sbcl)
7857 (inputs
7858 `(("array-utils" ,sbcl-array-utils)
7859 ("documentation-utils" ,sbcl-documentation-utils)))
7860 (synopsis "Lenient XML / XHTML / HTML parser for Common Lisp")
7861 (description
7862 "Plump is a parser for HTML/XML-like documents, focusing on being
7863 lenient towards invalid markup. It can handle things like invalid attributes,
7864 bad closing tag order, unencoded entities, inexistent tag types, self-closing
7865 tags and so on. It parses documents to a class representation and offers a
7866 small set of DOM functions to manipulate it. It can be extended to parse to
7867 your own classes.")
7868 (home-page "https://shinmera.github.io/plump/")
7869 (license license:zlib))))
7870
7871 (define-public cl-plump
7872 (sbcl-package->cl-source-package sbcl-plump))
7873
7874 (define-public sbcl-antik-base
7875 (let ((commit "e4711a69b3d6bf37b5727af05c3cfd03e8428ba3")
7876 (revision "1"))
7877 (package
7878 (name "sbcl-antik-base")
7879 (version (git-version "0.0.0" revision commit))
7880 (source
7881 (origin
7882 (method git-fetch)
7883 (uri (git-reference
7884 (url "https://gitlab.common-lisp.net/antik/antik.git")
7885 (commit commit)))
7886 (file-name (git-file-name name version))
7887 (sha256
7888 (base32
7889 "047ga2c38par2xbgg4qx6hwv06qhf1c1f67as8xvir6s80lip1km"))))
7890 (build-system asdf-build-system/sbcl)
7891 (inputs
7892 `(("alexandria" ,sbcl-alexandria)
7893 ("cl-ppcre" ,sbcl-cl-ppcre)
7894 ("iterate" ,sbcl-iterate)
7895 ("metabang-bind" ,sbcl-metabang-bind)
7896 ("named-readtables" ,sbcl-named-readtables)
7897 ("split-sequence" ,sbcl-split-sequence)))
7898 (native-inputs
7899 `(("lisp-unit" ,sbcl-lisp-unit)))
7900 (synopsis "Scientific and engineering computation in Common Lisp")
7901 (description
7902 "Antik provides a foundation for scientific and engineering
7903 computation in Common Lisp. It is designed not only to facilitate
7904 numerical computations, but to permit the use of numerical computation
7905 libraries and the interchange of data and procedures, whether
7906 foreign (non-Lisp) or Lisp libraries. It is named after the
7907 Antikythera mechanism, one of the oldest examples of a scientific
7908 computer known.")
7909 (home-page "https://common-lisp.net/project/antik/")
7910 (license license:gpl3))))
7911
7912 (define-public cl-antik-base
7913 (sbcl-package->cl-source-package sbcl-antik-base))
7914
7915 (define-public ecl-antik-base
7916 (sbcl-package->ecl-package sbcl-antik-base))
7917
7918 (define-public sbcl-foreign-array
7919 (package
7920 (inherit sbcl-antik-base)
7921 (name "sbcl-foreign-array")
7922 (arguments
7923 (substitute-keyword-arguments (package-arguments sbcl-antik-base)
7924 ((#:asd-file _ "") "foreign-array.asd")
7925 ((#:asd-system-name _ #f) "foreign-array")))
7926 (inputs
7927 `(("antik-base" ,sbcl-antik-base)
7928 ("cffi" ,sbcl-cffi)
7929 ("trivial-garbage" ,sbcl-trivial-garbage)
7930 ("static-vectors" ,sbcl-static-vectors)))
7931 (synopsis "Common Lisp library providing access to foreign arrays")))
7932
7933 (define-public cl-foreign-array
7934 (sbcl-package->cl-source-package sbcl-foreign-array))
7935
7936 (define-public ecl-foreign-array
7937 (sbcl-package->ecl-package sbcl-foreign-array))
7938
7939 (define-public sbcl-physical-dimension
7940 (package
7941 (inherit sbcl-antik-base)
7942 (name "sbcl-physical-dimension")
7943 (inputs
7944 `(("fare-utils" ,sbcl-fare-utils)
7945 ("foreign-array" ,sbcl-foreign-array)
7946 ("trivial-utf-8" ,sbcl-trivial-utf-8)))
7947 (arguments
7948 (substitute-keyword-arguments (package-arguments sbcl-antik-base)
7949 ((#:asd-file _ "") "physical-dimension.asd")
7950 ((#:asd-system-name _ #f) "physical-dimension")))
7951 (synopsis
7952 "Common Lisp library providing computations with physical units")))
7953
7954 (define-public cl-physical-dimension
7955 (sbcl-package->cl-source-package sbcl-physical-dimension))
7956
7957 (define-public sbcl-science-data
7958 (package
7959 (inherit sbcl-antik-base)
7960 (name "sbcl-science-data")
7961 (inputs
7962 `(("physical-dimension" ,sbcl-physical-dimension)
7963 ("drakma" ,sbcl-drakma)))
7964 (arguments
7965 (substitute-keyword-arguments (package-arguments sbcl-antik-base)
7966 ((#:asd-file _ "") "science-data.asd")
7967 ((#:asd-system-name _ #f) "science-data")))
7968 (synopsis
7969 "Common Lisp library for scientific and engineering numerical data")))
7970
7971 (define-public cl-science-data
7972 (sbcl-package->cl-source-package sbcl-science-data))
7973
7974 (define-public sbcl-gsll
7975 (let ((commit "1a8ada22f9cf5ed7372d352b2317f4ccdb6ab308")
7976 (revision "1"))
7977 (package
7978 (name "sbcl-gsll")
7979 (version (git-version "0.0.0" revision commit))
7980 (source
7981 (origin
7982 (method git-fetch)
7983 (uri (git-reference
7984 (url "https://gitlab.common-lisp.net/antik/gsll.git")
7985 (commit commit)))
7986 (file-name (git-file-name name version))
7987 (sha256
7988 (base32
7989 "0z5nypfk26hxihb08p085644afawicrgb4xvadh3lmrn46qbjfn4"))))
7990 (build-system asdf-build-system/sbcl)
7991 (native-inputs
7992 `(("lisp-unit" ,sbcl-lisp-unit)))
7993 (inputs
7994 `(("alexandria" ,sbcl-alexandria)
7995 ("cffi-grovel" ,sbcl-cffi-grovel)
7996 ("cffi-libffi" ,sbcl-cffi-libffi)
7997 ("foreign-array" ,sbcl-foreign-array)
7998 ("gsl" ,gsl)
7999 ("metabang-bind" ,sbcl-metabang-bind)
8000 ("trivial-features" ,sbcl-trivial-features)
8001 ("trivial-garbage" ,sbcl-trivial-garbage)))
8002 (arguments
8003 `(#:tests? #f
8004 #:phases
8005 (modify-phases %standard-phases
8006 (add-after 'unpack 'fix-cffi-paths
8007 (lambda* (#:key inputs #:allow-other-keys)
8008 (substitute* "gsll.asd"
8009 ((":depends-on \\(#:foreign-array")
8010 ":depends-on (#:foreign-array #:cffi-libffi"))
8011 (substitute* "init/init.lisp"
8012 (("libgslcblas.so" all)
8013 (string-append
8014 (assoc-ref inputs "gsl") "/lib/" all)))
8015 (substitute* "init/init.lisp"
8016 (("libgsl.so" all)
8017 (string-append
8018 (assoc-ref inputs "gsl") "/lib/" all))))))))
8019 (synopsis "GNU Scientific Library for Lisp")
8020 (description
8021 "The GNU Scientific Library for Lisp (GSLL) allows the use of the
8022 GNU Scientific Library (GSL) from Common Lisp. This library provides a
8023 full range of common mathematical operations useful to scientific and
8024 engineering applications. The design of the GSLL interface is such
8025 that access to most of the GSL library is possible in a Lisp-natural
8026 way; the intent is that the user not be hampered by the restrictions
8027 of the C language in which GSL has been written. GSLL thus provides
8028 interactive use of GSL for getting quick answers, even for someone not
8029 intending to program in Lisp.")
8030 (home-page "https://common-lisp.net/project/gsll/")
8031 (license license:gpl3))))
8032
8033 (define-public cl-gsll
8034 (sbcl-package->cl-source-package sbcl-gsll))
8035
8036 (define-public sbcl-antik
8037 (package
8038 (inherit sbcl-antik-base)
8039 (name "sbcl-antik")
8040 (inputs
8041 `(("gsll" ,sbcl-gsll)
8042 ("physical-dimension" ,sbcl-physical-dimension)))
8043 (arguments
8044 (substitute-keyword-arguments (package-arguments sbcl-antik-base)
8045 ((#:asd-file _ "") "antik.asd")
8046 ((#:asd-system-name _ #f) "antik")))))
8047
8048 (define-public cl-antik
8049 (sbcl-package->cl-source-package sbcl-antik))
8050
8051 (define-public sbcl-cl-interpol
8052 (let ((commit "1fd288d861db85bc4677cff3cdd6af75fda1afb4")
8053 (revision "1"))
8054 (package
8055 (name "sbcl-cl-interpol")
8056 (version (git-version "0.2.6" revision commit))
8057 (source
8058 (origin
8059 (method git-fetch)
8060 (uri (git-reference
8061 (url "https://github.com/edicl/cl-interpol.git")
8062 (commit commit)))
8063 (file-name (git-file-name name version))
8064 (sha256
8065 (base32
8066 "1hnikak52hmcq1r5f616m6qq1108qnkw80pja950nv1fq5p0ppjn"))))
8067 (build-system asdf-build-system/sbcl)
8068 (inputs
8069 `(("cl-unicode" ,sbcl-cl-unicode)
8070 ("named-readtables" ,sbcl-named-readtables)))
8071 (native-inputs
8072 `(("flexi-streams" ,sbcl-flexi-streams)))
8073 (synopsis "String interpolation for Common Lisp")
8074 (description
8075 "CL-INTERPOL is a library for Common Lisp which modifies the
8076 reader so that you can have interpolation within strings similar to
8077 Perl or Unix Shell scripts. It also provides various ways to insert
8078 arbitrary characters into literal strings even if your editor/IDE
8079 doesn't support them.")
8080 (home-page "https://edicl.github.io/cl-interpol/")
8081 (license license:bsd-3))))
8082
8083 (define-public cl-interpol
8084 (sbcl-package->cl-source-package sbcl-cl-interpol))
8085
8086 (define-public ecl-cl-interpol
8087 (sbcl-package->ecl-package sbcl-cl-interpol))
8088
8089 (define sbcl-symbol-munger-boot0
8090 ;; There is a cyclical dependency between symbol-munger and lisp-unit2.
8091 ;; See https://github.com/AccelerationNet/symbol-munger/issues/4
8092 (let ((commit "cc2bb4b7acd454d756484aec81ba487648385fc3")
8093 (revision "1"))
8094 (package
8095 (name "sbcl-symbol-munger-boot0")
8096 (version (git-version "0.0.1" revision commit))
8097 (source
8098 (origin
8099 (method git-fetch)
8100 (uri (git-reference
8101 (url "https://github.com/AccelerationNet/symbol-munger.git")
8102 (commit commit)))
8103 (file-name (git-file-name name version))
8104 (sha256
8105 (base32
8106 "0diav5ricqsybqvbp4bkxyj3bn3v9n7xb2pqqc4vg1algsw2pyjl"))))
8107 (build-system asdf-build-system/sbcl)
8108 (arguments
8109 `(#:asd-file "symbol-munger.asd"
8110 #:asd-system-name "symbol-munger"))
8111 (inputs
8112 `(("iterate" ,sbcl-iterate)
8113 ("alexandria" ,sbcl-alexandria)))
8114 (native-inputs
8115 `(("lisp-unit" ,sbcl-lisp-unit)))
8116 (synopsis
8117 "Capitalization and spacing conversion functions for Common Lisp")
8118 (description
8119 "This is a Common Lisp library to change the capitalization and spacing
8120 of a string or a symbol. It can convert to and from Lisp, english, underscore
8121 and camel-case rules.")
8122 (home-page "https://github.com/AccelerationNet/symbol-munger")
8123 ;; The package declares a BSD license, but all of the license
8124 ;; text is MIT.
8125 ;; See https://github.com/AccelerationNet/symbol-munger/issues/5
8126 (license license:expat))))
8127
8128 (define sbcl-lisp-unit2-boot0
8129 ;; There is a cyclical dependency between symbol-munger and lisp-unit2.
8130 ;; See https://github.com/AccelerationNet/symbol-munger/issues/4
8131 (let ((commit "fb9721524d1e4e73abb223ee036d74ce14a5505c")
8132 (revision "1"))
8133 (package
8134 (name "sbcl-lisp-unit2-boot0")
8135 (version (git-version "0.2.0" revision commit))
8136 (source
8137 (origin
8138 (method git-fetch)
8139 (uri (git-reference
8140 (url "https://github.com/AccelerationNet/lisp-unit2.git")
8141 (commit commit)))
8142 (file-name (git-file-name name version))
8143 (sha256
8144 (base32
8145 "1rsqy8y0jqll6xn9a593848f5wvd5ribv4csry1ly0hmdhfnqzlp"))))
8146 (build-system asdf-build-system/sbcl)
8147 (arguments
8148 `(#:asd-file "lisp-unit2.asd"
8149 #:asd-system-name "lisp-unit2"))
8150 (inputs
8151 `(("alexandria" ,sbcl-alexandria)
8152 ("cl-interpol" ,sbcl-cl-interpol)
8153 ("iterate" ,sbcl-iterate)
8154 ("symbol-munger-boot0" ,sbcl-symbol-munger-boot0)))
8155 (synopsis "Test Framework for Common Lisp")
8156 (description
8157 "LISP-UNIT2 is a Common Lisp library that supports unit testing in the
8158 style of JUnit for Java. It is a new version of the lisp-unit library written
8159 by Chris Riesbeck.")
8160 (home-page "https://github.com/AccelerationNet/lisp-unit2")
8161 (license license:expat))))
8162
8163 (define-public sbcl-symbol-munger
8164 (let ((commit "97598d4c3c53fd5da72ab78908fbd5d8c7a13416")
8165 (revision "1"))
8166 (package
8167 (name "sbcl-symbol-munger")
8168 (version (git-version "0.0.1" revision commit))
8169 (source
8170 (origin
8171 (method git-fetch)
8172 (uri (git-reference
8173 (url "https://github.com/AccelerationNet/symbol-munger.git")
8174 (commit commit)))
8175 (file-name (git-file-name name version))
8176 (sha256
8177 (base32
8178 "0y8jywjy0ldyhp7bxf16fdvdd2qgqnd7nlhlqfpfnzxcqk4xy1km"))))
8179 (build-system asdf-build-system/sbcl)
8180 (inputs
8181 `(("alexandria" ,sbcl-alexandria)
8182 ("iterate" ,sbcl-iterate)))
8183 (native-inputs
8184 `(("lisp-unit2-boot0" ,sbcl-lisp-unit2-boot0)))
8185 (synopsis
8186 "Capitalization and spacing conversion functions for Common Lisp")
8187 (description
8188 "This is a Common Lisp library to change the capitalization and spacing
8189 of a string or a symbol. It can convert to and from Lisp, english, underscore
8190 and camel-case rules.")
8191 (home-page "https://github.com/AccelerationNet/symbol-munger")
8192 ;; The package declares a BSD license, but all of the license
8193 ;; text is MIT.
8194 ;; See https://github.com/AccelerationNet/symbol-munger/issues/5
8195 (license license:expat))))
8196
8197 (define-public cl-symbol-munger
8198 (sbcl-package->cl-source-package sbcl-symbol-munger))
8199
8200 (define-public ecl-symbol-munger
8201 (sbcl-package->ecl-package sbcl-symbol-munger))
8202
8203 (define-public sbcl-lisp-unit2
8204 (package
8205 (inherit sbcl-lisp-unit2-boot0)
8206 (name "sbcl-lisp-unit2")
8207 (inputs
8208 `(("alexandria" ,sbcl-alexandria)
8209 ("cl-interpol" ,sbcl-cl-interpol)
8210 ("iterate" ,sbcl-iterate)
8211 ("symbol-munger" ,sbcl-symbol-munger)))))
8212
8213 (define-public cl-lisp-unit2
8214 (sbcl-package->cl-source-package sbcl-lisp-unit2))
8215
8216 (define-public ecl-lisp-unit2
8217 (sbcl-package->ecl-package sbcl-lisp-unit2))
8218
8219 (define-public sbcl-cl-csv
8220 (let ((commit "3eba29c8364b033fbe0d189c2500559278b6a362")
8221 (revision "1"))
8222 (package
8223 (name "sbcl-cl-csv")
8224 (version (git-version "1.0.6" revision commit))
8225 (source
8226 (origin
8227 (method git-fetch)
8228 (uri (git-reference
8229 (url "https://github.com/AccelerationNet/cl-csv.git")
8230 (commit commit)))
8231 (file-name (git-file-name name version))
8232 (sha256
8233 (base32
8234 "07h4ni89jzx93clx453hlnnb5g53hhlcmz5hghqv6ysam48lc8g6"))))
8235 (build-system asdf-build-system/sbcl)
8236 (arguments
8237 ;; See: https://github.com/AccelerationNet/cl-csv/pull/34
8238 `(#:tests? #f))
8239 (inputs
8240 `(("alexandria" ,sbcl-alexandria)
8241 ("cl-interpol" ,sbcl-cl-interpol)
8242 ("iterate" ,sbcl-iterate)))
8243 (native-inputs
8244 `(("lisp-unit2" ,sbcl-lisp-unit2)))
8245 (synopsis "Common lisp library for comma-separated values")
8246 (description
8247 "This is a Common Lisp library providing functions to read/write CSV
8248 from/to strings, streams and files.")
8249 (home-page "https://github.com/AccelerationNet/cl-csv")
8250 (license license:bsd-3))))
8251
8252 (define-public cl-csv
8253 (sbcl-package->cl-source-package sbcl-cl-csv))
8254
8255 (define-public ecl-cl-csv
8256 (sbcl-package->ecl-package sbcl-cl-csv))
8257
8258 (define-public sbcl-external-program
8259 (let ((commit "5888b8f1fd3953feeeacecbba4384ddda584a749")
8260 (revision "1"))
8261 (package
8262 (name "sbcl-external-program")
8263 (version (git-version "0.0.6" revision commit))
8264 (source
8265 (origin
8266 (method git-fetch)
8267 (uri (git-reference
8268 (url "https://github.com/sellout/external-program.git")
8269 (commit commit)))
8270 (file-name (git-file-name name version))
8271 (sha256
8272 (base32
8273 "0vww1x3yilb3bjwg6k184vaj4vxyxw4vralhnlm6lk4xac67kc9z"))))
8274 (build-system asdf-build-system/sbcl)
8275 (inputs
8276 `(("trivial-features" ,sbcl-trivial-features)))
8277 (native-inputs
8278 `(("fiveam" ,sbcl-fiveam)))
8279 (synopsis "Common Lisp library for running external programs")
8280 (description
8281 "EXTERNAL-PROGRAM enables running programs outside the Lisp
8282 process. It is an attempt to make the RUN-PROGRAM functionality in
8283 implementations like SBCL and CCL as portable as possible without
8284 sacrificing much in the way of power.")
8285 (home-page "https://github.com/sellout/external-program")
8286 (license license:llgpl))))
8287
8288 (define-public cl-external-program
8289 (sbcl-package->cl-source-package sbcl-external-program))
8290
8291 (define-public ecl-external-program
8292 (sbcl-package->ecl-package sbcl-external-program))
8293
8294 (define sbcl-cl-ana-boot0
8295 (let ((commit "fa7cee4c50aa1c859652813049ba0da7c18a0df9")
8296 (revision "1"))
8297 (package
8298 (name "sbcl-cl-ana-boot0")
8299 (version (git-version "0.0.0" revision commit))
8300 (source
8301 (origin
8302 (method git-fetch)
8303 (uri (git-reference
8304 (url "https://github.com/ghollisjr/cl-ana.git")
8305 (commit commit)))
8306 (file-name (git-file-name name version))
8307 (sha256
8308 (base32
8309 "0mr47l57m276dbpap7irr4fcnk5fgknhf6mgv4043s8h73amk5qh"))))
8310 (build-system asdf-build-system/sbcl)
8311 (synopsis "Common Lisp data analysis library")
8312 (description
8313 "CL-ANA is a data analysis library in Common Lisp providing tabular and
8314 binned data analysis along with nonlinear least squares fitting and
8315 visualization.")
8316 (home-page "https://github.com/ghollisjr/cl-ana")
8317 (license license:gpl3))))
8318
8319 (define-public sbcl-cl-ana.pathname-utils
8320 (package
8321 (inherit sbcl-cl-ana-boot0)
8322 (name "sbcl-cl-ana.pathname-utils")
8323 (arguments
8324 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8325 ((#:asd-file _ "") "pathname-utils/cl-ana.pathname-utils.asd")
8326 ((#:asd-system-name _ #f) "cl-ana.pathname-utils")))))
8327
8328 (define-public cl-ana.pathname-utils
8329 (sbcl-package->cl-source-package sbcl-cl-ana.pathname-utils))
8330
8331 (define-public ecl-cl-ana.pathname-utils
8332 (sbcl-package->ecl-package sbcl-cl-ana.pathname-utils))
8333
8334 (define-public sbcl-cl-ana.package-utils
8335 (package
8336 (inherit sbcl-cl-ana-boot0)
8337 (name "sbcl-cl-ana.package-utils")
8338 (inputs
8339 `(("alexandria" ,sbcl-alexandria)))
8340 (arguments
8341 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8342 ((#:asd-file _ "") "package-utils/cl-ana.package-utils.asd")
8343 ((#:asd-system-name _ #f) "cl-ana.package-utils")))))
8344
8345 (define-public cl-ana.package-utils
8346 (sbcl-package->cl-source-package sbcl-cl-ana.package-utils))
8347
8348 (define-public ecl-cl-ana.package-utils
8349 (sbcl-package->ecl-package sbcl-cl-ana.package-utils))
8350
8351 (define-public sbcl-cl-ana.string-utils
8352 (package
8353 (inherit sbcl-cl-ana-boot0)
8354 (name "sbcl-cl-ana.string-utils")
8355 (inputs
8356 `(("split-sequence" ,sbcl-split-sequence)))
8357 (arguments
8358 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8359 ((#:asd-file _ "") "string-utils/cl-ana.string-utils.asd")
8360 ((#:asd-system-name _ #f) "cl-ana.string-utils")))))
8361
8362 (define-public cl-ana.string-utils
8363 (sbcl-package->cl-source-package sbcl-cl-ana.string-utils))
8364
8365 (define-public ecl-cl-ana.string-utils
8366 (sbcl-package->ecl-package sbcl-cl-ana.string-utils))
8367
8368 (define-public sbcl-cl-ana.functional-utils
8369 (package
8370 (inherit sbcl-cl-ana-boot0)
8371 (name "sbcl-cl-ana.functional-utils")
8372 (arguments
8373 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8374 ((#:asd-file _ "") "functional-utils/cl-ana.functional-utils.asd")
8375 ((#:asd-system-name _ #f) "cl-ana.functional-utils")))))
8376
8377 (define-public cl-ana.functional-utils
8378 (sbcl-package->cl-source-package sbcl-cl-ana.functional-utils))
8379
8380 (define-public ecl-cl-ana.functional-utils
8381 (sbcl-package->ecl-package sbcl-cl-ana.functional-utils))
8382
8383 (define-public sbcl-cl-ana.list-utils
8384 (package
8385 (inherit sbcl-cl-ana-boot0)
8386 (name "sbcl-cl-ana.list-utils")
8387 (inputs
8388 `(("alexandria" ,sbcl-alexandria)
8389 ("cl-ana.functional-utils" ,sbcl-cl-ana.functional-utils)
8390 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)))
8391 (arguments
8392 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8393 ((#:asd-file _ "") "list-utils/cl-ana.list-utils.asd")
8394 ((#:asd-system-name _ #f) "cl-ana.list-utils")))))
8395
8396 (define-public cl-ana.list-utils
8397 (sbcl-package->cl-source-package sbcl-cl-ana.list-utils))
8398
8399 (define-public ecl-cl-ana.list-utils
8400 (sbcl-package->ecl-package sbcl-cl-ana.list-utils))
8401
8402 (define-public sbcl-cl-ana.generic-math
8403 (package
8404 (inherit sbcl-cl-ana-boot0)
8405 (name "sbcl-cl-ana.generic-math")
8406 (inputs
8407 `(("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8408 ("cl-ana.package-utils" ,sbcl-cl-ana.package-utils)))
8409 (arguments
8410 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8411 ((#:asd-file _ "") "generic-math/cl-ana.generic-math.asd")
8412 ((#:asd-system-name _ #f) "cl-ana.generic-math")))))
8413
8414 (define-public cl-ana.generic-math
8415 (sbcl-package->cl-source-package sbcl-cl-ana.generic-math))
8416
8417 (define-public ecl-cl-ana.generic-math
8418 (sbcl-package->ecl-package sbcl-cl-ana.generic-math))
8419
8420 (define-public sbcl-cl-ana.math-functions
8421 (package
8422 (inherit sbcl-cl-ana-boot0)
8423 (name "sbcl-cl-ana.math-functions")
8424 (inputs
8425 `(("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
8426 ("gsll" ,sbcl-gsll)))
8427 (arguments
8428 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8429 ((#:asd-file _ "") "math-functions/cl-ana.math-functions.asd")
8430 ((#:asd-system-name _ #f) "cl-ana.math-functions")))))
8431
8432 (define-public cl-ana.math-functions
8433 (sbcl-package->cl-source-package sbcl-cl-ana.math-functions))
8434
8435 (define-public sbcl-cl-ana.calculus
8436 (package
8437 (inherit sbcl-cl-ana-boot0)
8438 (name "sbcl-cl-ana.calculus")
8439 (inputs
8440 `(("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)))
8441 (arguments
8442 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8443 ((#:asd-file _ "") "calculus/cl-ana.calculus.asd")
8444 ((#:asd-system-name _ #f) "cl-ana.calculus")))))
8445
8446 (define-public cl-ana.calculus
8447 (sbcl-package->cl-source-package sbcl-cl-ana.calculus))
8448
8449 (define-public ecl-cl-ana.calculus
8450 (sbcl-package->ecl-package sbcl-cl-ana.calculus))
8451
8452 (define-public sbcl-cl-ana.symbol-utils
8453 (package
8454 (inherit sbcl-cl-ana-boot0)
8455 (name "sbcl-cl-ana.symbol-utils")
8456 (inputs
8457 `(("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)))
8458 (arguments
8459 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8460 ((#:asd-file _ "") "symbol-utils/cl-ana.symbol-utils.asd")
8461 ((#:asd-system-name _ #f) "cl-ana.symbol-utils")))))
8462
8463 (define-public cl-ana.symbol-utils
8464 (sbcl-package->cl-source-package sbcl-cl-ana.symbol-utils))
8465
8466 (define-public ecl-cl-ana.symbol-utils
8467 (sbcl-package->ecl-package sbcl-cl-ana.symbol-utils))
8468
8469 (define-public sbcl-cl-ana.macro-utils
8470 (package
8471 (inherit sbcl-cl-ana-boot0)
8472 (name "sbcl-cl-ana.macro-utils")
8473 (inputs
8474 `(("alexandria" ,sbcl-alexandria)
8475 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8476 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
8477 ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)
8478 ("split-sequence" ,sbcl-split-sequence)))
8479 (arguments
8480 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8481 ((#:asd-file _ "") "macro-utils/cl-ana.macro-utils.asd")
8482 ((#:asd-system-name _ #f) "cl-ana.macro-utils")))))
8483
8484 (define-public cl-ana.macro-utils
8485 (sbcl-package->cl-source-package sbcl-cl-ana.macro-utils))
8486
8487 (define-public ecl-cl-ana.macro-utils
8488 (sbcl-package->ecl-package sbcl-cl-ana.macro-utils))
8489
8490 (define-public sbcl-cl-ana.binary-tree
8491 (package
8492 (inherit sbcl-cl-ana-boot0)
8493 (name "sbcl-cl-ana.binary-tree")
8494 (inputs
8495 `(("cl-ana.functional-utils" ,sbcl-cl-ana.functional-utils)
8496 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8497 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)))
8498 (arguments
8499 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8500 ((#:asd-file _ "") "binary-tree/cl-ana.binary-tree.asd")
8501 ((#:asd-system-name _ #f) "cl-ana.binary-tree")))))
8502
8503 (define-public cl-ana.binary-tree
8504 (sbcl-package->cl-source-package sbcl-cl-ana.binary-tree))
8505
8506 (define-public ecl-cl-ana.binary-tree
8507 (sbcl-package->ecl-package sbcl-cl-ana.binary-tree))
8508
8509 (define-public sbcl-cl-ana.tensor
8510 (package
8511 (inherit sbcl-cl-ana-boot0)
8512 (name "sbcl-cl-ana.tensor")
8513 (inputs
8514 `(("alexandria" ,sbcl-alexandria)
8515 ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
8516 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8517 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
8518 ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)))
8519 (arguments
8520 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8521 ((#:asd-file _ "") "tensor/cl-ana.tensor.asd")
8522 ((#:asd-system-name _ #f) "cl-ana.tensor")))))
8523
8524 (define-public cl-ana.tensor
8525 (sbcl-package->cl-source-package sbcl-cl-ana.tensor))
8526
8527 (define-public ecl-cl-ana.tensor
8528 (sbcl-package->ecl-package sbcl-cl-ana.tensor))
8529
8530 (define-public sbcl-cl-ana.error-propogation
8531 (package
8532 (inherit sbcl-cl-ana-boot0)
8533 (name "sbcl-cl-ana.error-propogation")
8534 (inputs
8535 `(("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
8536 ("cl-ana.math-functions" ,sbcl-cl-ana.math-functions)))
8537 (arguments
8538 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8539 ((#:asd-file _ "") "error-propogation/cl-ana.error-propogation.asd")
8540 ((#:asd-system-name _ #f) "cl-ana.error-propogation")))))
8541
8542 (define-public cl-ana.error-propogation
8543 (sbcl-package->cl-source-package sbcl-cl-ana.error-propogation))
8544
8545 (define-public sbcl-cl-ana.quantity
8546 (package
8547 (inherit sbcl-cl-ana-boot0)
8548 (name "sbcl-cl-ana.quantity")
8549 (inputs
8550 `(("alexandria" ,sbcl-alexandria)
8551 ("cl-ana.error-propogation" ,sbcl-cl-ana.error-propogation)
8552 ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
8553 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8554 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
8555 ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)))
8556 (arguments
8557 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8558 ((#:asd-file _ "") "quantity/cl-ana.quantity.asd")
8559 ((#:asd-system-name _ #f) "cl-ana.quantity")))))
8560
8561 (define-public cl-ana.quantity
8562 (sbcl-package->cl-source-package sbcl-cl-ana.quantity))
8563
8564 (define-public sbcl-cl-ana.table
8565 (package
8566 (inherit sbcl-cl-ana-boot0)
8567 (name "sbcl-cl-ana.table")
8568 (inputs
8569 `(("alexandria" ,sbcl-alexandria)
8570 ("cl-ana.functional-utils" ,sbcl-cl-ana.functional-utils)
8571 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8572 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
8573 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
8574 ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)))
8575 (arguments
8576 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8577 ((#:asd-file _ "") "table/cl-ana.table.asd")
8578 ((#:asd-system-name _ #f) "cl-ana.table")))))
8579
8580 (define-public cl-ana.table
8581 (sbcl-package->cl-source-package sbcl-cl-ana.table))
8582
8583 (define-public ecl-cl-ana.table
8584 (sbcl-package->ecl-package sbcl-cl-ana.table))
8585
8586 (define-public sbcl-cl-ana.table-utils
8587 (package
8588 (inherit sbcl-cl-ana-boot0)
8589 (name "sbcl-cl-ana.table-utils")
8590 (inputs
8591 `(("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
8592 ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)
8593 ("cl-ana.table" ,sbcl-cl-ana.table)))
8594 (arguments
8595 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8596 ((#:asd-file _ "") "table-utils/cl-ana.table-utils.asd")
8597 ((#:asd-system-name _ #f) "cl-ana.table-utils")))))
8598
8599 (define-public cl-ana.table-utils
8600 (sbcl-package->cl-source-package sbcl-cl-ana.table-utils))
8601
8602 (define-public ecl-cl-ana.table-utils
8603 (sbcl-package->ecl-package sbcl-cl-ana.table-utils))
8604
8605 (define-public sbcl-cl-ana.hdf-cffi
8606 (package
8607 (inherit sbcl-cl-ana-boot0)
8608 (name "sbcl-cl-ana.hdf-cffi")
8609 (inputs
8610 `(("cffi" ,sbcl-cffi)
8611 ("hdf5" ,hdf5-parallel-openmpi)))
8612 (arguments
8613 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8614 ((#:asd-file _ "") "hdf-cffi/cl-ana.hdf-cffi.asd")
8615 ((#:asd-system-name _ #f) "cl-ana.hdf-cffi")
8616 ((#:phases phases '%standard-phases)
8617 `(modify-phases ,phases
8618 (add-after 'unpack 'fix-paths
8619 (lambda* (#:key inputs #:allow-other-keys)
8620 (substitute* "hdf-cffi/hdf-cffi.lisp"
8621 (("/usr/lib/i386-linux-gnu/hdf5/serial/libhdf5.so")
8622 (string-append
8623 (assoc-ref inputs "hdf5")
8624 "/lib/libhdf5.so")))))))))))
8625
8626 (define-public cl-ana.hdf-cffi
8627 (sbcl-package->cl-source-package sbcl-cl-ana.hdf-cffi))
8628
8629 (define-public ecl-cl-ana.hdf-cffi
8630 (sbcl-package->ecl-package sbcl-cl-ana.hdf-cffi))
8631
8632 (define-public sbcl-cl-ana.int-char
8633 (package
8634 (inherit sbcl-cl-ana-boot0)
8635 (name "sbcl-cl-ana.int-char")
8636 (arguments
8637 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8638 ((#:asd-file _ "") "int-char/cl-ana.int-char.asd")
8639 ((#:asd-system-name _ #f) "cl-ana.int-char")))))
8640
8641 (define-public cl-ana.int-char
8642 (sbcl-package->cl-source-package sbcl-cl-ana.int-char))
8643
8644 (define-public ecl-cl-ana.int-char
8645 (sbcl-package->ecl-package sbcl-cl-ana.int-char))
8646
8647 (define-public sbcl-cl-ana.memoization
8648 (package
8649 (inherit sbcl-cl-ana-boot0)
8650 (name "sbcl-cl-ana.memoization")
8651 (inputs
8652 `(("alexandria" ,sbcl-alexandria)))
8653 (arguments
8654 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8655 ((#:asd-file _ "") "memoization/cl-ana.memoization.asd")
8656 ((#:asd-system-name _ #f) "cl-ana.memoization")))))
8657
8658 (define-public cl-ana.memoization
8659 (sbcl-package->cl-source-package sbcl-cl-ana.memoization))
8660
8661 (define-public ecl-cl-ana.memoization
8662 (sbcl-package->ecl-package sbcl-cl-ana.memoization))
8663
8664 (define-public sbcl-cl-ana.typespec
8665 (package
8666 (inherit sbcl-cl-ana-boot0)
8667 (name "sbcl-cl-ana.typespec")
8668 (inputs
8669 `(("alexandria" ,sbcl-alexandria)
8670 ("cffi" ,sbcl-cffi)
8671 ("cl-ana.int-char" ,sbcl-cl-ana.int-char)
8672 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8673 ("cl-ana.memoization" ,sbcl-cl-ana.memoization)
8674 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
8675 ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)
8676 ("cl-ana.tensor" ,sbcl-cl-ana.tensor)))
8677 (arguments
8678 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8679 ((#:asd-file _ "") "typespec/cl-ana.typespec.asd")
8680 ((#:asd-system-name _ #f) "cl-ana.typespec")))))
8681
8682 (define-public cl-ana.typespec
8683 (sbcl-package->cl-source-package sbcl-cl-ana.typespec))
8684
8685 (define-public ecl-cl-ana.typespec
8686 (sbcl-package->ecl-package sbcl-cl-ana.typespec))
8687
8688 (define-public sbcl-cl-ana.hdf-typespec
8689 (package
8690 (inherit sbcl-cl-ana-boot0)
8691 (name "sbcl-cl-ana.hdf-typespec")
8692 (inputs
8693 `(("alexandria" ,sbcl-alexandria)
8694 ("cffi" ,sbcl-cffi)
8695 ("cl-ana.hdf-cffi" ,sbcl-cl-ana.hdf-cffi)
8696 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8697 ("cl-ana.memoization" ,sbcl-cl-ana.memoization)
8698 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
8699 ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)
8700 ("cl-ana.typespec" ,sbcl-cl-ana.typespec)))
8701 (arguments
8702 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8703 ((#:asd-file _ "") "hdf-typespec/cl-ana.hdf-typespec.asd")
8704 ((#:asd-system-name _ #f) "cl-ana.hdf-typespec")))))
8705
8706 (define-public cl-ana.hdf-typespec
8707 (sbcl-package->cl-source-package sbcl-cl-ana.hdf-typespec))
8708
8709 (define-public ecl-cl-ana.hdf-typespec
8710 (sbcl-package->ecl-package sbcl-cl-ana.hdf-typespec))
8711
8712 (define-public sbcl-cl-ana.hdf-utils
8713 (package
8714 (inherit sbcl-cl-ana-boot0)
8715 (name "sbcl-cl-ana.hdf-utils")
8716 (inputs
8717 `(("alexandria" ,sbcl-alexandria)
8718 ("cffi" ,sbcl-cffi)
8719 ("cl-ana.hdf-cffi" ,sbcl-cl-ana.hdf-cffi)
8720 ("cl-ana.hdf-typespec" ,sbcl-cl-ana.hdf-typespec)
8721 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
8722 ("cl-ana.memoization" ,sbcl-cl-ana.memoization)
8723 ("cl-ana.pathname-utils" ,sbcl-cl-ana.pathname-utils)
8724 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
8725 ("cl-ana.typespec" ,sbcl-cl-ana.typespec)))
8726 (arguments
8727 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8728 ((#:asd-file _ "") "hdf-utils/cl-ana.hdf-utils.asd")
8729 ((#:asd-system-name _ #f) "cl-ana.hdf-utils")))))
8730
8731 (define-public cl-ana.hdf-utils
8732 (sbcl-package->cl-source-package sbcl-cl-ana.hdf-utils))
8733
8734 (define-public ecl-cl-ana.hdf-utils
8735 (sbcl-package->ecl-package sbcl-cl-ana.hdf-utils))
8736
8737 (define-public sbcl-cl-ana.typed-table
8738 (package
8739 (inherit sbcl-cl-ana-boot0)
8740 (name "sbcl-cl-ana.typed-table")
8741 (inputs
8742 `(("alexandria" ,sbcl-alexandria)
8743 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8744 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
8745 ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)
8746 ("cl-ana.table" ,sbcl-cl-ana.table)
8747 ("cl-ana.typespec" ,sbcl-cl-ana.typespec)))
8748 (arguments
8749 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8750 ((#:asd-file _ "") "typed-table/cl-ana.typed-table.asd")
8751 ((#:asd-system-name _ #f) "cl-ana.typed-table")))))
8752
8753 (define-public cl-ana.typed-table
8754 (sbcl-package->cl-source-package sbcl-cl-ana.typed-table))
8755
8756 (define-public ecl-cl-ana.typed-table
8757 (sbcl-package->ecl-package sbcl-cl-ana.typed-table))
8758
8759 (define-public sbcl-cl-ana.hdf-table
8760 (package
8761 (inherit sbcl-cl-ana-boot0)
8762 (name "sbcl-cl-ana.hdf-table")
8763 (inputs
8764 `(("alexandria" ,sbcl-alexandria)
8765 ("cl-ana.binary-tree" ,sbcl-cl-ana.binary-tree)
8766 ("cl-ana.hdf-cffi" ,sbcl-cl-ana.hdf-cffi)
8767 ("cl-ana.hdf-typespec" ,sbcl-cl-ana.hdf-typespec)
8768 ("cl-ana.hdf-utils" ,sbcl-cl-ana.hdf-utils)
8769 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8770 ("cl-ana.memoization" ,sbcl-cl-ana.memoization)
8771 ("cl-ana.table" ,sbcl-cl-ana.table)
8772 ("cl-ana.typed-table" ,sbcl-cl-ana.typed-table)
8773 ("cl-ana.typespec" ,sbcl-cl-ana.typespec)))
8774 (arguments
8775 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8776 ((#:asd-file _ "") "hdf-table/cl-ana.hdf-table.asd")
8777 ((#:asd-system-name _ #f) "cl-ana.hdf-table")))))
8778
8779 (define-public cl-ana.hdf-table
8780 (sbcl-package->cl-source-package sbcl-cl-ana.hdf-table))
8781
8782 (define-public ecl-cl-ana.hdf-table
8783 (sbcl-package->ecl-package sbcl-cl-ana.hdf-table))
8784
8785 (define-public sbcl-cl-ana.gsl-cffi
8786 (package
8787 (inherit sbcl-cl-ana-boot0)
8788 (name "sbcl-cl-ana.gsl-cffi")
8789 (inputs
8790 `(("cffi" ,sbcl-cffi)
8791 ("gsl" ,gsl)))
8792 (arguments
8793 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8794 ((#:asd-file _ "") "gsl-cffi/cl-ana.gsl-cffi.asd")
8795 ((#:asd-system-name _ #f) "cl-ana.gsl-cffi")
8796 ((#:phases phases '%standard-phases)
8797 `(modify-phases ,phases
8798 (add-after 'unpack 'fix-paths
8799 (lambda* (#:key inputs #:allow-other-keys)
8800 (substitute* "gsl-cffi/gsl-cffi.lisp"
8801 (("define-foreign-library gsl-cffi" all)
8802 (string-append all " (:unix "
8803 (assoc-ref inputs "gsl")
8804 "/lib/libgsl.so)")))))))))))
8805
8806 (define-public cl-ana.gsl-cffi
8807 (sbcl-package->cl-source-package sbcl-cl-ana.gsl-cffi))
8808
8809 (define-public ecl-cl-ana.gsl-cffi
8810 (sbcl-package->ecl-package sbcl-cl-ana.gsl-cffi))
8811
8812 (define-public sbcl-cl-ana.ntuple-table
8813 (package
8814 (inherit sbcl-cl-ana-boot0)
8815 (name "sbcl-cl-ana.ntuple-table")
8816 (inputs
8817 `(("alexandria" ,sbcl-alexandria)
8818 ("cffi" ,sbcl-cffi)
8819 ("cl-ana.gsl-cffi" ,sbcl-cl-ana.gsl-cffi)
8820 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8821 ("cl-ana.table" ,sbcl-cl-ana.table)
8822 ("cl-ana.typed-table" ,sbcl-cl-ana.typed-table)
8823 ("cl-ana.typespec" ,sbcl-cl-ana.typespec)
8824 ("gsll" ,sbcl-gsll)))
8825 (arguments
8826 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8827 ((#:asd-file _ "") "ntuple-table/cl-ana.ntuple-table.asd")
8828 ((#:asd-system-name _ #f) "cl-ana.ntuple-table")))))
8829
8830 (define-public cl-ana.ntuple-table
8831 (sbcl-package->cl-source-package sbcl-cl-ana.ntuple-table))
8832
8833 (define-public sbcl-cl-ana.csv-table
8834 (package
8835 (inherit sbcl-cl-ana-boot0)
8836 (name "sbcl-cl-ana.csv-table")
8837 (inputs
8838 `(("alexandria" ,sbcl-alexandria)
8839 ("antik" ,sbcl-antik)
8840 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8841 ("cl-ana.table" ,sbcl-cl-ana.table)
8842 ("cl-csv" ,sbcl-cl-csv)
8843 ("iterate" ,sbcl-iterate)))
8844 (arguments
8845 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8846 ((#:asd-file _ "") "csv-table/cl-ana.csv-table.asd")
8847 ((#:asd-system-name _ #f) "cl-ana.csv-table")))))
8848
8849 (define-public cl-ana.csv-table
8850 (sbcl-package->cl-source-package sbcl-cl-ana.csv-table))
8851
8852 (define-public sbcl-cl-ana.reusable-table
8853 (package
8854 (inherit sbcl-cl-ana-boot0)
8855 (name "sbcl-cl-ana.reusable-table")
8856 (inputs
8857 `(("alexandria" ,sbcl-alexandria)
8858 ("cl-ana.table" ,sbcl-cl-ana.table)))
8859 (arguments
8860 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8861 ((#:asd-file _ "") "reusable-table/cl-ana.reusable-table.asd")
8862 ((#:asd-system-name _ #f) "cl-ana.reusable-table")))))
8863
8864 (define-public cl-ana.reusable-table
8865 (sbcl-package->cl-source-package sbcl-cl-ana.reusable-table))
8866
8867 (define-public ecl-cl-ana.reusable-table
8868 (sbcl-package->ecl-package sbcl-cl-ana.reusable-table))
8869
8870 (define-public sbcl-cl-ana.linear-algebra
8871 (package
8872 (inherit sbcl-cl-ana-boot0)
8873 (name "sbcl-cl-ana.linear-algebra")
8874 (inputs
8875 `(("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
8876 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8877 ("cl-ana.math-functions" ,sbcl-cl-ana.math-functions)
8878 ("cl-ana.tensor" ,sbcl-cl-ana.tensor)
8879 ("gsll" ,sbcl-gsll)))
8880 (arguments
8881 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8882 ((#:asd-file _ "") "linear-algebra/cl-ana.linear-algebra.asd")
8883 ((#:asd-system-name _ #f) "cl-ana.linear-algebra")))))
8884
8885 (define-public cl-ana.linear-algebra
8886 (sbcl-package->cl-source-package sbcl-cl-ana.linear-algebra))
8887
8888 (define-public sbcl-cl-ana.lorentz
8889 (package
8890 (inherit sbcl-cl-ana-boot0)
8891 (name "sbcl-cl-ana.lorentz")
8892 (inputs
8893 `(("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
8894 ("cl-ana.linear-algebra" ,sbcl-cl-ana.linear-algebra)
8895 ("cl-ana.tensor" ,sbcl-cl-ana.tensor)
8896 ("iterate" ,sbcl-iterate)))
8897 (arguments
8898 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8899 ((#:asd-file _ "") "lorentz/cl-ana.lorentz.asd")
8900 ((#:asd-system-name _ #f) "cl-ana.lorentz")))))
8901
8902 (define-public cl-ana.lorentz
8903 (sbcl-package->cl-source-package sbcl-cl-ana.lorentz))
8904
8905 (define-public sbcl-cl-ana.clos-utils
8906 (package
8907 (inherit sbcl-cl-ana-boot0)
8908 (name "sbcl-cl-ana.clos-utils")
8909 (inputs
8910 `(("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8911 ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)
8912 ("cl-ana.tensor" ,sbcl-cl-ana.tensor)
8913 ("closer-mop" ,sbcl-closer-mop)))
8914 (arguments
8915 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8916 ((#:asd-file _ "") "clos-utils/cl-ana.clos-utils.asd")
8917 ((#:asd-system-name _ #f) "cl-ana.clos-utils")))))
8918
8919 (define-public cl-ana.clos-utils
8920 (sbcl-package->cl-source-package sbcl-cl-ana.clos-utils))
8921
8922 (define-public ecl-cl-ana.clos-utils
8923 (sbcl-package->ecl-package sbcl-cl-ana.clos-utils))
8924
8925 (define-public sbcl-cl-ana.hash-table-utils
8926 (package
8927 (inherit sbcl-cl-ana-boot0)
8928 (name "sbcl-cl-ana.hash-table-utils")
8929 (arguments
8930 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8931 ((#:asd-file _ "") "hash-table-utils/cl-ana.hash-table-utils.asd")
8932 ((#:asd-system-name _ #f) "cl-ana.hash-table-utils")))))
8933
8934 (define-public cl-ana.hash-table-utils
8935 (sbcl-package->cl-source-package sbcl-cl-ana.hash-table-utils))
8936
8937 (define-public ecl-cl-ana.hash-table-utils
8938 (sbcl-package->ecl-package sbcl-cl-ana.hash-table-utils))
8939
8940 (define-public sbcl-cl-ana.map
8941 (package
8942 (inherit sbcl-cl-ana-boot0)
8943 (name "sbcl-cl-ana.map")
8944 (inputs
8945 `(("cl-ana.hash-table-utils" ,sbcl-cl-ana.hash-table-utils)))
8946 (arguments
8947 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8948 ((#:asd-file _ "") "map/cl-ana.map.asd")
8949 ((#:asd-system-name _ #f) "cl-ana.map")))))
8950
8951 (define-public cl-ana.map
8952 (sbcl-package->cl-source-package sbcl-cl-ana.map))
8953
8954 (define-public ecl-cl-ana.map
8955 (sbcl-package->ecl-package sbcl-cl-ana.map))
8956
8957 (define-public sbcl-cl-ana.fitting
8958 (package
8959 (inherit sbcl-cl-ana-boot0)
8960 (name "sbcl-cl-ana.fitting")
8961 (inputs
8962 `(("alexandria" ,sbcl-alexandria)
8963 ("cl-ana.error-propogation" ,sbcl-cl-ana.error-propogation)
8964 ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
8965 ("cl-ana.map" ,sbcl-cl-ana.map)
8966 ("cl-ana.math-functions" ,sbcl-cl-ana.math-functions)
8967 ("gsll" ,sbcl-gsll)))
8968 (arguments
8969 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8970 ((#:asd-file _ "") "fitting/cl-ana.fitting.asd")
8971 ((#:asd-system-name _ #f) "cl-ana.fitting")))))
8972
8973 (define-public cl-ana.fitting
8974 (sbcl-package->cl-source-package sbcl-cl-ana.fitting))
8975
8976 (define-public sbcl-cl-ana.histogram
8977 (package
8978 (inherit sbcl-cl-ana-boot0)
8979 (name "sbcl-cl-ana.histogram")
8980 (inputs
8981 `(("alexandria" ,sbcl-alexandria)
8982 ("iterate" ,sbcl-iterate)
8983 ("cl-ana.binary-tree" ,sbcl-cl-ana.binary-tree)
8984 ("cl-ana.clos-utils" ,sbcl-cl-ana.clos-utils)
8985 ("cl-ana.fitting" ,sbcl-cl-ana.fitting)
8986 ("cl-ana.functional-utils" ,sbcl-cl-ana.functional-utils)
8987 ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
8988 ("cl-ana.hash-table-utils" ,sbcl-cl-ana.hash-table-utils)
8989 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8990 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
8991 ("cl-ana.map" ,sbcl-cl-ana.map)
8992 ("cl-ana.tensor" ,sbcl-cl-ana.tensor)))
8993 (arguments
8994 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8995 ((#:asd-file _ "") "histogram/cl-ana.histogram.asd")
8996 ((#:asd-system-name _ #f) "cl-ana.histogram")))))
8997
8998 (define-public cl-ana.histogram
8999 (sbcl-package->cl-source-package sbcl-cl-ana.histogram))
9000
9001 (define-public sbcl-cl-ana.file-utils
9002 (package
9003 (inherit sbcl-cl-ana-boot0)
9004 (name "sbcl-cl-ana.file-utils")
9005 (inputs
9006 `(("external-program" ,sbcl-external-program)
9007 ("split-sequence" ,sbcl-split-sequence)))
9008 (arguments
9009 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9010 ((#:asd-file _ "") "file-utils/cl-ana.file-utils.asd")
9011 ((#:asd-system-name _ #f) "cl-ana.file-utils")))))
9012
9013 (define-public cl-ana.file-utils
9014 (sbcl-package->cl-source-package sbcl-cl-ana.file-utils))
9015
9016 (define-public ecl-cl-ana.file-utils
9017 (sbcl-package->ecl-package sbcl-cl-ana.file-utils))
9018
9019 (define-public sbcl-cl-ana.statistics
9020 (package
9021 (inherit sbcl-cl-ana-boot0)
9022 (name "sbcl-cl-ana.statistics")
9023 (inputs
9024 `(("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
9025 ("cl-ana.histogram" ,sbcl-cl-ana.histogram)
9026 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
9027 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
9028 ("cl-ana.map" ,sbcl-cl-ana.map)))
9029 (arguments
9030 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9031 ((#:asd-file _ "") "statistics/cl-ana.statistics.asd")
9032 ((#:asd-system-name _ #f) "cl-ana.statistics")))))
9033
9034 (define-public cl-ana.statistics
9035 (sbcl-package->cl-source-package sbcl-cl-ana.statistics))
9036
9037 (define-public sbcl-cl-ana.gnuplot-interface
9038 (package
9039 (inherit sbcl-cl-ana-boot0)
9040 (name "sbcl-cl-ana.gnuplot-interface")
9041 (inputs
9042 `(("external-program" ,sbcl-external-program)))
9043 (arguments
9044 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9045 ((#:asd-file _ "") "gnuplot-interface/cl-ana.gnuplot-interface.asd")
9046 ((#:asd-system-name _ #f) "cl-ana.gnuplot-interface")))))
9047
9048 (define-public cl-ana.gnuplot-interface
9049 (sbcl-package->cl-source-package sbcl-cl-ana.gnuplot-interface))
9050
9051 (define-public ecl-cl-ana.gnuplot-interface
9052 (sbcl-package->ecl-package sbcl-cl-ana.gnuplot-interface))
9053
9054 (define-public sbcl-cl-ana.plotting
9055 (package
9056 (inherit sbcl-cl-ana-boot0)
9057 (name "sbcl-cl-ana.plotting")
9058 (inputs
9059 `(("alexandria" ,sbcl-alexandria)
9060 ("cl-ana.error-propogation" ,sbcl-cl-ana.error-propogation)
9061 ("cl-ana.functional-utils" ,sbcl-cl-ana.functional-utils)
9062 ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
9063 ("cl-ana.gnuplot-interface" ,sbcl-cl-ana.gnuplot-interface)
9064 ("cl-ana.histogram" ,sbcl-cl-ana.histogram)
9065 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
9066 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
9067 ("cl-ana.map" ,sbcl-cl-ana.map)
9068 ("cl-ana.math-functions" ,sbcl-cl-ana.math-functions)
9069 ("cl-ana.pathname-utils" ,sbcl-cl-ana.pathname-utils)
9070 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
9071 ("cl-ana.tensor" ,sbcl-cl-ana.tensor)
9072 ("external-program" ,sbcl-external-program)
9073 ("split-sequence" ,sbcl-split-sequence)))
9074 (arguments
9075 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9076 ((#:asd-file _ "") "plotting/cl-ana.plotting.asd")
9077 ((#:asd-system-name _ #f) "cl-ana.plotting")))))
9078
9079 (define-public cl-ana.plotting
9080 (sbcl-package->cl-source-package sbcl-cl-ana.plotting))
9081
9082 (define-public sbcl-cl-ana.table-viewing
9083 (package
9084 (inherit sbcl-cl-ana-boot0)
9085 (name "sbcl-cl-ana.table-viewing")
9086 (inputs
9087 `(("alexandria" ,sbcl-alexandria)
9088 ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
9089 ("cl-ana.histogram" ,sbcl-cl-ana.histogram)
9090 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
9091 ("cl-ana.plotting" ,sbcl-cl-ana.plotting)
9092 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
9093 ("cl-ana.table" ,sbcl-cl-ana.table)))
9094 (arguments
9095 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9096 ((#:asd-file _ "") "table-viewing/cl-ana.table-viewing.asd")
9097 ((#:asd-system-name _ #f) "cl-ana.table-viewing")))))
9098
9099 (define-public cl-ana.table-viewing
9100 (sbcl-package->cl-source-package sbcl-cl-ana.table-viewing))
9101
9102 (define-public sbcl-cl-ana.serialization
9103 (package
9104 (inherit sbcl-cl-ana-boot0)
9105 (name "sbcl-cl-ana.serialization")
9106 (inputs
9107 `(("cl-ana.error-propogation" ,sbcl-cl-ana.error-propogation)
9108 ("cl-ana.hdf-utils" ,sbcl-cl-ana.hdf-utils)
9109 ("cl-ana.hdf-table" ,sbcl-cl-ana.hdf-table)
9110 ("cl-ana.histogram" ,sbcl-cl-ana.histogram)
9111 ("cl-ana.int-char" ,sbcl-cl-ana.int-char)
9112 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
9113 ("cl-ana.typespec" ,sbcl-cl-ana.typespec)))
9114 (arguments
9115 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9116 ((#:asd-file _ "") "serialization/cl-ana.serialization.asd")
9117 ((#:asd-system-name _ #f) "cl-ana.serialization")))))
9118
9119 (define-public cl-ana.serialization
9120 (sbcl-package->cl-source-package sbcl-cl-ana.serialization))
9121
9122 (define-public sbcl-cl-ana.makeres
9123 (package
9124 (inherit sbcl-cl-ana-boot0)
9125 (name "sbcl-cl-ana.makeres")
9126 (inputs
9127 `(("alexandria" ,sbcl-alexandria)
9128 ("cl-ana.error-propogation" ,sbcl-cl-ana.error-propogation)
9129 ("cl-ana.file-utils" ,sbcl-cl-ana.file-utils)
9130 ("cl-ana.functional-utils" ,sbcl-cl-ana.functional-utils)
9131 ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
9132 ("cl-ana.hash-table-utils" ,sbcl-cl-ana.hash-table-utils)
9133 ("cl-ana.hdf-utils" ,sbcl-cl-ana.hdf-utils)
9134 ("cl-ana.histogram" ,sbcl-cl-ana.histogram)
9135 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
9136 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
9137 ("cl-ana.map" ,sbcl-cl-ana.map)
9138 ("cl-ana.memoization" ,sbcl-cl-ana.memoization)
9139 ("cl-ana.pathname-utils" ,sbcl-cl-ana.pathname-utils)
9140 ("cl-ana.plotting" ,sbcl-cl-ana.plotting)
9141 ("cl-ana.reusable-table" ,sbcl-cl-ana.reusable-table)
9142 ("cl-ana.serialization" ,sbcl-cl-ana.serialization)
9143 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
9144 ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)
9145 ("cl-ana.table" ,sbcl-cl-ana.table)
9146 ("external-program" ,sbcl-external-program)))
9147 (native-inputs
9148 `(("cl-fad" ,sbcl-cl-fad)))
9149 (arguments
9150 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9151 ((#:asd-file _ "") "makeres/cl-ana.makeres.asd")
9152 ((#:asd-system-name _ #f) "cl-ana.makeres")))))
9153
9154 (define-public cl-ana.makeres
9155 (sbcl-package->cl-source-package sbcl-cl-ana.makeres))
9156
9157 (define-public sbcl-cl-ana.makeres-macro
9158 (package
9159 (inherit sbcl-cl-ana-boot0)
9160 (name "sbcl-cl-ana.makeres-macro")
9161 (inputs
9162 `(("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
9163 ("cl-ana.makeres" ,sbcl-cl-ana.makeres)))
9164 (arguments
9165 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9166 ((#:asd-file _ "") "makeres-macro/cl-ana.makeres-macro.asd")
9167 ((#:asd-system-name _ #f) "cl-ana.makeres-macro")))))
9168
9169 (define-public cl-ana.makeres-macro
9170 (sbcl-package->cl-source-package sbcl-cl-ana.makeres-macro))
9171
9172 (define-public sbcl-cl-ana.makeres-block
9173 (package
9174 (inherit sbcl-cl-ana-boot0)
9175 (name "sbcl-cl-ana.makeres-block")
9176 (inputs
9177 `(("alexandria" ,sbcl-alexandria)
9178 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
9179 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
9180 ("cl-ana.makeres" ,sbcl-cl-ana.makeres)))
9181 (arguments
9182 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9183 ((#:asd-file _ "") "makeres-block/cl-ana.makeres-block.asd")
9184 ((#:asd-system-name _ #f) "cl-ana.makeres-block")))))
9185
9186 (define-public cl-ana.makeres-block
9187 (sbcl-package->cl-source-package sbcl-cl-ana.makeres-block))
9188
9189 (define-public sbcl-cl-ana.makeres-progress
9190 (package
9191 (inherit sbcl-cl-ana-boot0)
9192 (name "sbcl-cl-ana.makeres-progress")
9193 (inputs
9194 `(("alexandria" ,sbcl-alexandria)
9195 ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
9196 ("cl-ana.makeres" ,sbcl-cl-ana.makeres)))
9197 (arguments
9198 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9199 ((#:asd-file _ "") "makeres-progress/cl-ana.makeres-progress.asd")
9200 ((#:asd-system-name _ #f) "cl-ana.makeres-progress")))))
9201
9202 (define-public cl-ana.makeres-progress
9203 (sbcl-package->cl-source-package sbcl-cl-ana.makeres-progress))
9204
9205 (define-public sbcl-cl-ana.makeres-table
9206 (package
9207 (inherit sbcl-cl-ana-boot0)
9208 (name "sbcl-cl-ana.makeres-table")
9209 (inputs
9210 `(("cl-ana.csv-table" ,sbcl-cl-ana.csv-table)
9211 ("cl-ana.hash-table-utils" ,sbcl-cl-ana.hash-table-utils)
9212 ("cl-ana.hdf-table" ,sbcl-cl-ana.hdf-table)
9213 ("cl-ana.hdf-utils" ,sbcl-cl-ana.hdf-utils)
9214 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
9215 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
9216 ("cl-ana.makeres" ,sbcl-cl-ana.makeres)
9217 ("cl-ana.makeres-macro" ,sbcl-cl-ana.makeres-macro)
9218 ("cl-ana.memoization" ,sbcl-cl-ana.memoization)
9219 ("cl-ana.ntuple-table" ,sbcl-cl-ana.ntuple-table)
9220 ("cl-ana.reusable-table" ,sbcl-cl-ana.reusable-table)
9221 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
9222 ("cl-ana.table" ,sbcl-cl-ana.table)))
9223 (native-inputs
9224 `(("cl-fad" ,sbcl-cl-fad)))
9225 (arguments
9226 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9227 ((#:asd-file _ "") "makeres-table/cl-ana.makeres-table.asd")
9228 ((#:asd-system-name _ #f) "cl-ana.makeres-table")))))
9229
9230 (define-public cl-ana.makeres-table
9231 (sbcl-package->cl-source-package sbcl-cl-ana.makeres-table))
9232
9233 (define-public sbcl-cl-ana.makeres-graphviz
9234 (package
9235 (inherit sbcl-cl-ana-boot0)
9236 (name "sbcl-cl-ana.makeres-graphviz")
9237 (inputs
9238 `(("cl-ana.makeres" ,sbcl-cl-ana.makeres)
9239 ("external-program" ,sbcl-external-program)))
9240 (arguments
9241 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9242 ((#:asd-file _ "") "makeres-graphviz/cl-ana.makeres-graphviz.asd")
9243 ((#:asd-system-name _ #f) "cl-ana.makeres-graphviz")))))
9244
9245 (define-public cl-ana.makeres-graphviz
9246 (sbcl-package->cl-source-package sbcl-cl-ana.makeres-graphviz))
9247
9248 (define-public sbcl-cl-ana.makeres-branch
9249 (package
9250 (inherit sbcl-cl-ana-boot0)
9251 (name "sbcl-cl-ana.makeres-branch")
9252 (inputs
9253 `(("alexandria" ,sbcl-alexandria)
9254 ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
9255 ("cl-ana.hash-table-utils" ,sbcl-cl-ana.hash-table-utils)
9256 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
9257 ("cl-ana.map" ,sbcl-cl-ana.map)
9258 ("cl-ana.makeres" ,sbcl-cl-ana.makeres)))
9259 (arguments
9260 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9261 ((#:asd-file _ "") "makeres-branch/cl-ana.makeres-branch.asd")
9262 ((#:asd-system-name _ #f) "cl-ana.makeres-branch")))))
9263
9264 (define-public cl-ana.makeres-branch
9265 (sbcl-package->cl-source-package sbcl-cl-ana.makeres-branch))
9266
9267 (define-public sbcl-cl-ana.makeres-utils
9268 (package
9269 (inherit sbcl-cl-ana-boot0)
9270 (name "sbcl-cl-ana.makeres-utils")
9271 (inputs
9272 `(("alexandria" ,sbcl-alexandria)
9273 ("cl-ana.file-utils" ,sbcl-cl-ana.file-utils)
9274 ("cl-ana.fitting" ,sbcl-cl-ana.fitting)
9275 ("cl-ana.functional-utils" ,sbcl-cl-ana.functional-utils)
9276 ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
9277 ("cl-ana.histogram" ,sbcl-cl-ana.histogram)
9278 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
9279 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
9280 ("cl-ana.makeres" ,sbcl-cl-ana.makeres)
9281 ("cl-ana.map" ,sbcl-cl-ana.map)
9282 ("cl-ana.pathname-utils" ,sbcl-cl-ana.pathname-utils)
9283 ("cl-ana.plotting" ,sbcl-cl-ana.plotting)
9284 ("cl-ana.reusable-table" ,sbcl-cl-ana.reusable-table)
9285 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
9286 ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)
9287 ("cl-ana.table" ,sbcl-cl-ana.table)))
9288 (native-inputs
9289 `(("cl-fad" ,sbcl-cl-fad)))
9290 (arguments
9291 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9292 ((#:asd-file _ "") "makeres-utils/cl-ana.makeres-utils.asd")
9293 ((#:asd-system-name _ #f) "cl-ana.makeres-utils")))))
9294
9295 (define-public cl-ana.makeres-utils
9296 (sbcl-package->cl-source-package sbcl-cl-ana.makeres-utils))
9297
9298 (define-public sbcl-cl-ana.statistical-learning
9299 (package
9300 (inherit sbcl-cl-ana-boot0)
9301 (name "sbcl-cl-ana.statistical-learning")
9302 (inputs
9303 `(("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
9304 ("cl-ana.functional-utils" ,sbcl-cl-ana.functional-utils)
9305 ("cl-ana.histogram" ,sbcl-cl-ana.histogram)
9306 ("cl-ana.linear-algebra" ,sbcl-cl-ana.linear-algebra)
9307 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
9308 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
9309 ("cl-ana.math-functions" ,sbcl-cl-ana.math-functions)
9310 ("cl-ana.map" ,sbcl-cl-ana.map)
9311 ("cl-ana.statistics" ,sbcl-cl-ana.statistics)))
9312 (native-inputs
9313 `(("cl-fad" ,sbcl-cl-fad)))
9314 (arguments
9315 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9316 ((#:asd-file _ "")
9317 "statistical-learning/cl-ana.statistical-learning.asd")
9318 ((#:asd-system-name _ #f) "cl-ana.statistical-learning")))))
9319
9320 (define-public cl-ana.statistical-learning
9321 (sbcl-package->cl-source-package sbcl-cl-ana.statistical-learning))
9322
9323 (define-public sbcl-cl-ana
9324 (package
9325 (inherit sbcl-cl-ana-boot0)
9326 (name "sbcl-cl-ana")
9327 (inputs
9328 `(("cl-ana.binary-tree" ,sbcl-cl-ana.binary-tree)
9329 ("cl-ana.calculus" ,sbcl-cl-ana.calculus)
9330 ("cl-ana.clos-utils" ,sbcl-cl-ana.clos-utils)
9331 ("cl-ana.csv-table" ,sbcl-cl-ana.csv-table)
9332 ("cl-ana.error-propogation" ,sbcl-cl-ana.error-propogation)
9333 ("cl-ana.file-utils" ,sbcl-cl-ana.file-utils)
9334 ("cl-ana.fitting" ,sbcl-cl-ana.fitting)
9335 ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
9336 ("cl-ana.hash-table-utils" ,sbcl-cl-ana.hash-table-utils)
9337 ("cl-ana.hdf-table" ,sbcl-cl-ana.hdf-table)
9338 ("cl-ana.histogram" ,sbcl-cl-ana.histogram)
9339 ("cl-ana.int-char" ,sbcl-cl-ana.int-char)
9340 ("cl-ana.linear-algebra" ,sbcl-cl-ana.linear-algebra)
9341 ("cl-ana.lorentz" ,sbcl-cl-ana.lorentz)
9342 ("cl-ana.map" ,sbcl-cl-ana.map)
9343 ("cl-ana.makeres" ,sbcl-cl-ana.makeres)
9344 ("cl-ana.makeres-block" ,sbcl-cl-ana.makeres-block)
9345 ("cl-ana.makeres-branch" ,sbcl-cl-ana.makeres-branch)
9346 ("cl-ana.makeres-graphviz" ,sbcl-cl-ana.makeres-graphviz)
9347 ("cl-ana.makeres-macro" ,sbcl-cl-ana.makeres-macro)
9348 ("cl-ana.makeres-progress" ,sbcl-cl-ana.makeres-progress)
9349 ("cl-ana.makeres-table" ,sbcl-cl-ana.makeres-table)
9350 ("cl-ana.makeres-utils" ,sbcl-cl-ana.makeres-utils)
9351 ("cl-ana.math-functions" ,sbcl-cl-ana.math-functions)
9352 ("cl-ana.ntuple-table" ,sbcl-cl-ana.ntuple-table)
9353 ("cl-ana.package-utils" ,sbcl-cl-ana.package-utils)
9354 ("cl-ana.pathname-utils" ,sbcl-cl-ana.pathname-utils)
9355 ("cl-ana.plotting" ,sbcl-cl-ana.plotting)
9356 ("cl-ana.quantity" ,sbcl-cl-ana.quantity)
9357 ("cl-ana.reusable-table" ,sbcl-cl-ana.reusable-table)
9358 ("cl-ana.serialization" ,sbcl-cl-ana.serialization)
9359 ("cl-ana.statistics" ,sbcl-cl-ana.statistics)
9360 ("cl-ana.statistical-learning" ,sbcl-cl-ana.statistical-learning)
9361 ("cl-ana.table" ,sbcl-cl-ana.table)
9362 ("cl-ana.table-utils" ,sbcl-cl-ana.table-utils)
9363 ("cl-ana.table-viewing" ,sbcl-cl-ana.table-viewing)
9364 ("cl-ana.tensor" ,sbcl-cl-ana.tensor)
9365 ("libffi" ,libffi)))
9366 (native-inputs
9367 `(("cl-fad" ,sbcl-cl-fad)))
9368 (arguments
9369 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9370 ((#:asd-file _ "") "cl-ana.asd")
9371 ((#:asd-system-name _ #f) "cl-ana")))))
9372
9373 (define-public cl-ana
9374 (sbcl-package->cl-source-package sbcl-cl-ana))
9375
9376 (define-public sbcl-archive
9377 (let ((commit "631271c091ed02994bec3980cb288a2cf32c7cdc")
9378 (revision "1"))
9379 (package
9380 (name "sbcl-archive")
9381 (version (git-version "0.9" revision commit))
9382 (source (origin
9383 (method git-fetch)
9384 (uri (git-reference
9385 (url "https://github.com/sharplispers/archive.git")
9386 (commit commit)))
9387 (file-name (git-file-name name version))
9388 (sha256
9389 (base32
9390 "0pvsc9fmybx7rxd0kmzq4shi6hszdpwdc1sfy7jwyfxf8n3hnv4p"))))
9391 (build-system asdf-build-system/sbcl)
9392 (inputs
9393 `(("cl-fad" ,sbcl-cl-fad)
9394 ("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
9395 (synopsis "Common Lisp library for tar and cpio archives")
9396 (description
9397 "This is a Common Lisp library to read and write disk-based file
9398 archives such as those generated by the tar and cpio programs on Unix.")
9399 (home-page "https://github.com/sharplispers/archive")
9400 (license license:bsd-3))))
9401
9402 (define-public cl-archive
9403 (sbcl-package->cl-source-package sbcl-archive))
9404
9405 (define-public ecl-archive
9406 (sbcl-package->ecl-package sbcl-archive))
9407
9408 (define-public sbcl-misc-extensions
9409 (let ((commit "101c05112bf2f1e1bbf527396822d2f50ca6327a")
9410 (revision "1"))
9411 (package
9412 (name "sbcl-misc-extensions")
9413 (version (git-version "3.3" revision commit))
9414 (source
9415 (origin
9416 (method git-fetch)
9417 (uri (git-reference
9418 (url "https://gitlab.common-lisp.net/misc-extensions/devel.git")
9419 (commit commit)))
9420 (file-name (git-file-name name version))
9421 (sha256
9422 (base32
9423 "0gz5f4p70qzilnxsnf5lih2n9m4wjcw8hlw4w8mpn9jyhyppyyv0"))))
9424 (build-system asdf-build-system/sbcl)
9425 (synopsis "Collection of small macros and extensions for Common Lisp")
9426 (description
9427 "This project is intended as a catchall for small, general-purpose
9428 extensions to Common Lisp. It contains:
9429
9430 @itemize
9431 @item @code{new-let}, a macro that combines and generalizes @code{let},
9432 @code{let*} and @code{multiple-value-bind},
9433 @item @code{gmap}, an iteration macro that generalizes @code{map}.
9434 @end itemize\n")
9435 (home-page "https://common-lisp.net/project/misc-extensions/")
9436 (license license:public-domain))))
9437
9438 (define-public cl-misc-extensions
9439 (sbcl-package->cl-source-package sbcl-misc-extensions))
9440
9441 (define-public ecl-misc-extensions
9442 (sbcl-package->ecl-package sbcl-misc-extensions))
9443
9444 (define-public sbcl-mt19937
9445 (package
9446 (name "sbcl-mt19937")
9447 (version "1.1")
9448 (source
9449 (origin
9450 (method url-fetch)
9451 (uri (string-append "https://common-lisp.net/project/asdf-packaging/"
9452 "mt19937-latest.tar.gz"))
9453 (sha256
9454 (base32
9455 "1iw636b0iw5ygkv02y8i41lh7xj0acglv0hg5agryn0zzi2nf1xv"))))
9456 (build-system asdf-build-system/sbcl)
9457 (synopsis "Mersenne Twister pseudo-random number generator")
9458 (description
9459 "MT19937 is a portable Mersenne Twister pseudo-random number generator
9460 for Common Lisp.")
9461 (home-page "https://www.cliki.net/mt19937")
9462 (license license:public-domain)))
9463
9464 (define-public cl-mt19937
9465 (sbcl-package->cl-source-package sbcl-mt19937))
9466
9467 (define-public ecl-mt19937
9468 (sbcl-package->ecl-package sbcl-mt19937))
9469
9470 (define-public sbcl-fset
9471 (let ((commit "6d2f9ded8934d2b42f2571a0ba5bda091037d852")
9472 (revision "1"))
9473 (package
9474 (name "sbcl-fset")
9475 (version (git-version "1.3.2" revision commit))
9476 (source
9477 (origin
9478 (method git-fetch)
9479 (uri (git-reference
9480 (url "https://github.com/slburson/fset")
9481 (commit commit)))
9482 (file-name (git-file-name name version))
9483 (sha256
9484 (base32
9485 "127acblwrbqicx47h6sgvknz1cqyfn8p4xkhkn1m7hxh8w5gk1zy"))
9486 (snippet '(begin
9487 ;; Remove obsolete copy of system definition.
9488 (delete-file "Code/fset.asd")
9489 #t))))
9490 (build-system asdf-build-system/sbcl)
9491 (inputs
9492 `(("misc-extensions" ,sbcl-misc-extensions)
9493 ("mt19937" ,sbcl-mt19937)
9494 ("named-readtables" ,sbcl-named-readtables)))
9495 (synopsis "Functional set-theoretic collections library")
9496 (description
9497 "FSet is a functional set-theoretic collections library for Common Lisp.
9498 Functional means that all update operations return a new collection rather than
9499 modifying an existing one in place. Set-theoretic means that collections may
9500 be nested arbitrarily with no additional programmer effort; for instance, sets
9501 may contain sets, maps may be keyed by sets, etc.")
9502 (home-page "https://common-lisp.net/project/fset/Site/index.html")
9503 (license license:llgpl))))
9504
9505 (define-public cl-fset
9506 (sbcl-package->cl-source-package sbcl-fset))
9507
9508 (define-public sbcl-cl-cont
9509 (let ((commit "fc1fa7e6eb64894fdca13e688e6015fad5290d2a")
9510 (revision "1"))
9511 (package
9512 (name "sbcl-cl-cont")
9513 (version (git-version "0.3.8" revision commit))
9514 (source
9515 (origin
9516 (method git-fetch)
9517 (uri (git-reference
9518 (url "https://gitlab.common-lisp.net/cl-cont/cl-cont.git")
9519 (commit commit)))
9520 (file-name (git-file-name name version))
9521 (sha256
9522 (base32
9523 "1zf8zvb0i6jm3hhfks4w74hibm6avgc6f9s1qwgjrn2bcik8lrvz"))))
9524 (build-system asdf-build-system/sbcl)
9525 (inputs
9526 `(("alexandria" ,sbcl-alexandria)
9527 ("closer-mop" ,sbcl-closer-mop)))
9528 (native-inputs
9529 `(("rt" ,sbcl-rt)))
9530 (synopsis "Delimited continuations for Common Lisp")
9531 (description
9532 "This is a library that implements delimited continuations by
9533 transforming Common Lisp code to continuation passing style.")
9534 (home-page "https://common-lisp.net/project/cl-cont/")
9535 (license license:llgpl))))
9536
9537 (define-public cl-cont
9538 (sbcl-package->cl-source-package sbcl-cl-cont))
9539
9540 (define-public ecl-cl-cont
9541 (sbcl-package->ecl-package sbcl-cl-cont))
9542
9543 (define-public sbcl-cl-coroutine
9544 (let ((commit "de098f8d5debd8b14ef6864b5bdcbbf5ddbcfd72")
9545 (revision "1"))
9546 (package
9547 (name "sbcl-cl-coroutine")
9548 (version (git-version "0.1" revision commit))
9549 (source
9550 (origin
9551 (method git-fetch)
9552 (uri (git-reference
9553 (url "https://github.com/takagi/cl-coroutine.git")
9554 (commit commit)))
9555 (file-name (git-file-name name version))
9556 (sha256
9557 (base32
9558 "1cqdhdjxffgfs116l1swjlsmcbly0xgcgrckvaajd566idj9yj4l"))))
9559 (build-system asdf-build-system/sbcl)
9560 (inputs
9561 `(("alexandria" ,sbcl-alexandria)
9562 ("cl-cont" ,sbcl-cl-cont)))
9563 (native-inputs
9564 `(("prove" ,sbcl-prove)))
9565 (arguments
9566 `(;; TODO: Fix the tests. They fail with:
9567 ;; "Component CL-COROUTINE-ASD::CL-COROUTINE-TEST not found"
9568 #:tests? #f
9569 #:phases
9570 (modify-phases %standard-phases
9571 (add-after 'unpack 'fix-tests
9572 (lambda _
9573 (substitute* "cl-coroutine-test.asd"
9574 (("cl-test-more")
9575 "prove"))
9576 #t)))))
9577 (synopsis "Coroutine library for Common Lisp")
9578 (description
9579 "This is a coroutine library for Common Lisp implemented using the
9580 continuations of the @code{cl-cont} library.")
9581 (home-page "https://github.com/takagi/cl-coroutine")
9582 (license license:llgpl))))
9583
9584 (define-public cl-coroutine
9585 (sbcl-package->cl-source-package sbcl-cl-coroutine))
9586
9587 (define-public ecl-cl-coroutine
9588 (sbcl-package->ecl-package sbcl-cl-coroutine))
9589
9590 (define-public sbcl-vom
9591 (let ((commit "1aeafeb5b74c53741b79497e0ef4acf85c92ff24")
9592 (revision "1"))
9593 (package
9594 (name "sbcl-vom")
9595 (version (git-version "0.1.4" revision commit))
9596 (source
9597 (origin
9598 (method git-fetch)
9599 (uri (git-reference
9600 (url "https://github.com/orthecreedence/vom.git")
9601 (commit commit)))
9602 (file-name (git-file-name name version))
9603 (sha256
9604 (base32
9605 "0536kppj76ax4lrxhv42npkfjsmx45km2g439vf9jmw3apinz9cy"))))
9606 (build-system asdf-build-system/sbcl)
9607 (synopsis "Tiny logging utility for Common Lisp")
9608 (description
9609 "Vom is a logging library for Common Lisp. It's goal is to be useful
9610 and small. It does not provide a lot of features as other loggers do, but
9611 has a small codebase that's easy to understand and use.")
9612 (home-page "https://github.com/orthecreedence/vom")
9613 (license license:expat))))
9614
9615 (define-public cl-vom
9616 (sbcl-package->cl-source-package sbcl-vom))
9617
9618 (define-public ecl-vom
9619 (sbcl-package->ecl-package sbcl-vom))
9620
9621 (define-public sbcl-cl-libuv
9622 (let ((commit "32100c023c518038d0670a103eaa4d50dd785d29")
9623 (revision "1"))
9624 (package
9625 (name "sbcl-cl-libuv")
9626 (version (git-version "0.1.6" revision commit))
9627 (source
9628 (origin
9629 (method git-fetch)
9630 (uri (git-reference
9631 (url "https://github.com/orthecreedence/cl-libuv.git")
9632 (commit commit)))
9633 (file-name (git-file-name name version))
9634 (sha256
9635 (base32
9636 "1kwix4si8a8hza34ab2k7whrh7z0yrmx39v2wc3qblv9m244jkh1"))))
9637 (build-system asdf-build-system/sbcl)
9638 (inputs
9639 `(("alexandria" ,sbcl-alexandria)
9640 ("cffi" ,sbcl-cffi)
9641 ("cffi-grovel" ,sbcl-cffi-grovel)
9642 ("libuv" ,libuv)))
9643 (arguments
9644 `(#:phases
9645 (modify-phases %standard-phases
9646 (add-after 'unpack 'fix-paths
9647 (lambda* (#:key inputs #:allow-other-keys)
9648 (substitute* "lib.lisp"
9649 (("/usr/lib/libuv.so")
9650 (string-append (assoc-ref inputs "libuv")
9651 "/lib/libuv.so")))
9652 #t))
9653 (add-after 'fix-paths 'fix-system-definition
9654 (lambda _
9655 (substitute* "cl-libuv.asd"
9656 (("#:cffi #:alexandria")
9657 "#:cffi #:cffi-grovel #:alexandria"))
9658 #t)))))
9659 (synopsis "Common Lisp bindings to libuv")
9660 (description
9661 "This library provides low-level libuv bindings for Common Lisp.")
9662 (home-page "https://github.com/orthecreedence/cl-libuv")
9663 (license license:expat))))
9664
9665 (define-public cl-libuv
9666 (sbcl-package->cl-source-package sbcl-cl-libuv))
9667
9668 (define-public ecl-cl-libuv
9669 (sbcl-package->ecl-package sbcl-cl-libuv))
9670
9671 (define-public sbcl-cl-async-base
9672 (let ((commit "f6423e44404a44434d803605e0d2e17199158e28")
9673 (revision "1"))
9674 (package
9675 (name "sbcl-cl-async-base")
9676 (version (git-version "0.6.1" revision commit))
9677 (source
9678 (origin
9679 (method git-fetch)
9680 (uri (git-reference
9681 (url "https://github.com/orthecreedence/cl-async.git")
9682 (commit commit)))
9683 (file-name (git-file-name name version))
9684 (sha256
9685 (base32
9686 "11xi9dxb8mjgwzrkj88i0xkgk26z9w9ddxzbv6xsvfc1d4x5cf4x"))))
9687 (build-system asdf-build-system/sbcl)
9688 (inputs
9689 `(("bordeaux-threads" ,sbcl-bordeaux-threads)
9690 ("cffi" ,sbcl-cffi)
9691 ("cl-libuv" ,sbcl-cl-libuv)))
9692 (arguments
9693 `(#:asd-file "cl-async.asd"))
9694 (synopsis "Base system for cl-async")
9695 (description
9696 "Cl-async is a library for general purpose, non-blocking programming in
9697 Common Lisp. It uses the libuv library as backend.")
9698 (home-page "https://orthecreedence.github.io/cl-async/")
9699 (license license:expat))))
9700
9701 (define-public cl-async-base
9702 (sbcl-package->cl-source-package sbcl-cl-async-base))
9703
9704 (define-public ecl-cl-async-base
9705 (sbcl-package->ecl-package sbcl-cl-async-base))
9706
9707 (define-public sbcl-cl-async-util
9708 (package
9709 (inherit sbcl-cl-async-base)
9710 (name "sbcl-cl-async-util")
9711 (inputs
9712 `(("bordeaux-threads" ,sbcl-bordeaux-threads)
9713 ("cffi" ,sbcl-cffi)
9714 ("cl-async-base" ,sbcl-cl-async-base)
9715 ("cl-libuv" ,sbcl-cl-libuv)
9716 ("cl-ppcre" ,sbcl-cl-ppcre)
9717 ("fast-io" ,sbcl-fast-io)
9718 ("vom" ,sbcl-vom)))
9719 (synopsis "Internal utilities for cl-async")))
9720
9721 (define-public cl-async-util
9722 (sbcl-package->cl-source-package sbcl-cl-async-util))
9723
9724 (define-public ecl-cl-async-util
9725 (sbcl-package->ecl-package sbcl-cl-async-util))
9726
9727 (define-public sbcl-cl-async
9728 (package
9729 (inherit sbcl-cl-async-base)
9730 (name "sbcl-cl-async")
9731 (inputs
9732 `(("babel" ,sbcl-babel)
9733 ("cffi" ,sbcl-cffi)
9734 ("cl-async-base" ,sbcl-cl-async-base)
9735 ("cl-async-util" ,sbcl-cl-async-util)
9736 ("cl-libuv" ,sbcl-cl-libuv)
9737 ("cl-ppcre" ,sbcl-cl-ppcre)
9738 ("static-vectors" ,sbcl-static-vectors)
9739 ("trivial-features" ,sbcl-trivial-features)
9740 ("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
9741 (synopsis "Asynchronous operations for Common Lisp")))
9742
9743 (define-public cl-async
9744 (sbcl-package->cl-source-package sbcl-cl-async))
9745
9746 (define-public ecl-cl-async
9747 (sbcl-package->ecl-package sbcl-cl-async))
9748
9749 (define-public sbcl-cl-async-repl
9750 (package
9751 (inherit sbcl-cl-async-base)
9752 (name "sbcl-cl-async-repl")
9753 (inputs
9754 `(("bordeaux-threads" ,sbcl-bordeaux-threads)
9755 ("cl-async" ,sbcl-cl-async)))
9756 (arguments
9757 (substitute-keyword-arguments (package-arguments sbcl-cl-async-base)
9758 ((#:asd-file _ "") "cl-async-repl.asd")))
9759 (synopsis "REPL integration for cl-async")))
9760
9761 (define-public cl-async-repl
9762 (sbcl-package->cl-source-package sbcl-cl-async-repl))
9763
9764 (define-public ecl-cl-async-repl
9765 (sbcl-package->ecl-package sbcl-cl-async-repl))
9766
9767 (define-public sbcl-cl-async-ssl
9768 (package
9769 (inherit sbcl-cl-async-base)
9770 (name "sbcl-cl-async-ssl")
9771 (inputs
9772 `(("cffi" ,sbcl-cffi)
9773 ("cl-async" ,sbcl-cl-async)
9774 ("openssl" ,openssl)
9775 ("vom" ,sbcl-vom)))
9776 (arguments
9777 (substitute-keyword-arguments (package-arguments sbcl-cl-async-base)
9778 ((#:asd-file _ "") "cl-async-ssl.asd")
9779 ((#:phases phases '%standard-phases)
9780 `(modify-phases ,phases
9781 (add-after 'unpack 'fix-paths
9782 (lambda* (#:key inputs #:allow-other-keys)
9783 (substitute* "src/ssl/package.lisp"
9784 (("libcrypto\\.so")
9785 (string-append (assoc-ref inputs "openssl")
9786 "/lib/libcrypto.so"))
9787 (("libssl\\.so")
9788 (string-append (assoc-ref inputs "openssl")
9789 "/lib/libssl.so")))
9790 #t))))))
9791 (synopsis "SSL wrapper around cl-async socket implementation")))
9792
9793 (define-public cl-async-ssl
9794 (sbcl-package->cl-source-package sbcl-cl-async-ssl))
9795
9796 (define-public ecl-cl-async-ssl
9797 (sbcl-package->ecl-package sbcl-cl-async-ssl))
9798
9799 (define-public sbcl-blackbird
9800 (let ((commit "d361f81c1411dec07f6c2dcb11c78f7aea9aaca8")
9801 (revision "1"))
9802 (package
9803 (name "sbcl-blackbird")
9804 (version (git-version "0.5.2" revision commit))
9805 (source
9806 (origin
9807 (method git-fetch)
9808 (uri (git-reference
9809 (url "https://github.com/orthecreedence/blackbird.git")
9810 (commit commit)))
9811 (file-name (git-file-name name version))
9812 (sha256
9813 (base32
9814 "0xfds5yaya64arzr7w1x38karyz11swzbhxx1afldpradj9dh19c"))))
9815 (build-system asdf-build-system/sbcl)
9816 (inputs
9817 `(("vom" ,sbcl-vom)))
9818 (native-inputs
9819 `(("cl-async" ,sbcl-cl-async)
9820 ("fiveam" ,sbcl-fiveam)))
9821 (synopsis "Promise implementation for Common Lisp")
9822 (description
9823 "This is a standalone promise implementation for Common Lisp. It is
9824 the successor to the now-deprecated cl-async-future project.")
9825 (home-page "https://orthecreedence.github.io/blackbird/")
9826 (license license:expat))))
9827
9828 (define-public cl-blackbird
9829 (sbcl-package->cl-source-package sbcl-blackbird))
9830
9831 (define-public ecl-blackbird
9832 (sbcl-package->ecl-package sbcl-blackbird))
9833
9834 (define-public sbcl-cl-async-future
9835 (let ((commit "ee36c22a69a9516407458d2ed8b475f1fc473959")
9836 (revision "1"))
9837 (package
9838 (name "sbcl-cl-async-future")
9839 (version (git-version "0.4.4.1" revision commit))
9840 (source
9841 (origin
9842 (method git-fetch)
9843 (uri (git-reference
9844 (url "https://github.com/orthecreedence/cl-async-future.git")
9845 (commit commit)))
9846 (file-name (git-file-name name version))
9847 (sha256
9848 (base32
9849 "0z0sc7qlzzxk99f4l26zp6rai9kv0kj0f599sxai5s44p17zbbvh"))))
9850 (build-system asdf-build-system/sbcl)
9851 (inputs
9852 `(("blackbird" ,sbcl-blackbird)))
9853 (native-inputs
9854 `(("cl-async" ,sbcl-cl-async)
9855 ("eos" ,sbcl-eos)))
9856 (synopsis "Futures implementation for Common Lisp")
9857 (description
9858 "This is futures implementation for Common Lisp. It plugs in nicely
9859 to cl-async.")
9860 (home-page "https://orthecreedence.github.io/cl-async/future")
9861 (license license:expat))))
9862
9863 (define-public cl-async-future
9864 (sbcl-package->cl-source-package sbcl-cl-async-future))
9865
9866 (define-public ecl-cl-async-future
9867 (sbcl-package->ecl-package sbcl-cl-async-future))
9868
9869 (define-public sbcl-green-threads
9870 (let ((commit "fff5ebecb441a37e5c511773716aafd84a3c5840")
9871 (revision "1"))
9872 (package
9873 (name "sbcl-green-threads")
9874 (version (git-version "0.3" revision commit))
9875 (source
9876 (origin
9877 (method git-fetch)
9878 (uri (git-reference
9879 (url "https://github.com/thezerobit/green-threads.git")
9880 (commit commit)))
9881 (file-name (git-file-name name version))
9882 (sha256
9883 (base32
9884 "1czw7nr0dwfps76h8hjvglk1wdh53yqbfbvv30whwbgqx33iippz"))))
9885 (build-system asdf-build-system/sbcl)
9886 (inputs
9887 `(("cl-async-future" ,sbcl-cl-async-future)
9888 ("cl-cont" ,sbcl-cl-cont)))
9889 (native-inputs
9890 `(("prove" ,sbcl-prove)))
9891 (arguments
9892 `(;; TODO: Fix the tests. They fail with:
9893 ;; "The function BLACKBIRD::PROMISE-VALUES is undefined"
9894 #:tests? #f
9895 #:phases
9896 (modify-phases %standard-phases
9897 (add-after 'unpack 'fix-tests
9898 (lambda _
9899 (substitute* "green-threads-test.asd"
9900 (("cl-test-more")
9901 "prove"))
9902 #t)))))
9903 (synopsis "Cooperative multitasking library for Common Lisp")
9904 (description
9905 "This library allows for cooperative multitasking with help of cl-cont
9906 for continuations. It tries to mimic the API of bordeaux-threads as much as
9907 possible.")
9908 (home-page "https://github.com/thezerobit/green-threads")
9909 (license license:bsd-3))))
9910
9911 (define-public cl-green-threads
9912 (sbcl-package->cl-source-package sbcl-green-threads))
9913
9914 (define-public ecl-green-threads
9915 (sbcl-package->ecl-package sbcl-green-threads))
9916
9917 (define-public sbcl-cl-base32
9918 (let ((commit "8cdee06fab397f7b0a19583b57e7f0c98405be85")
9919 (revision "1"))
9920 (package
9921 (name "sbcl-cl-base32")
9922 (version (git-version "0.1" revision commit))
9923 (source
9924 (origin
9925 (method git-fetch)
9926 (uri (git-reference
9927 (url "https://github.com/hargettp/cl-base32.git")
9928 (commit commit)))
9929 (file-name (git-file-name name version))
9930 (sha256
9931 (base32 "17jrng8jb05d64ggyd11hp308c2fl5drvf9g175blgrkkl8l4mf8"))))
9932 (build-system asdf-build-system/sbcl)
9933 (native-inputs
9934 `(("lisp-unit" ,sbcl-lisp-unit)))
9935 (synopsis "Common Lisp library for base32 encoding and decoding")
9936 (description
9937 "This package provides functions for base32 encoding and decoding as
9938 defined in RFC4648.")
9939 (home-page "https://github.com/hargettp/cl-base32")
9940 (license license:expat))))
9941
9942 (define-public cl-base32
9943 (sbcl-package->cl-source-package sbcl-cl-base32))
9944
9945 (define-public ecl-cl-base32
9946 (sbcl-package->ecl-package sbcl-cl-base32))
9947
9948 (define-public sbcl-cl-z85
9949 (let ((commit "85b3951a9cfa2603acb6aee15567684f9a108098")
9950 (revision "1"))
9951 (package
9952 (name "sbcl-cl-z85")
9953 (version (git-version "1.0" revision commit))
9954 (source
9955 (origin
9956 (method git-fetch)
9957 (uri (git-reference
9958 (url "https://github.com/glv2/cl-z85.git")
9959 (commit commit)))
9960 (file-name (git-file-name name version))
9961 (sha256
9962 (base32 "0r27pidjaxbm7k1rr90nnajwl5xm2kp65g1fv0fva17lzy45z1mp"))))
9963 (build-system asdf-build-system/sbcl)
9964 (native-inputs
9965 `(("cl-octet-streams" ,sbcl-cl-octet-streams)
9966 ("fiveam" ,sbcl-fiveam)))
9967 (synopsis "Common Lisp library for Z85 encoding and decoding")
9968 (description
9969 "This package provides functions to encode or decode byte vectors or
9970 byte streams using the Z85 format, which is a base-85 encoding used by
9971 ZeroMQ.")
9972 (home-page "https://github.com/glv2/cl-z85")
9973 (license license:gpl3+))))
9974
9975 (define-public cl-z85
9976 (sbcl-package->cl-source-package sbcl-cl-z85))
9977
9978 (define-public ecl-cl-z85
9979 (sbcl-package->ecl-package sbcl-cl-z85))
9980
9981 (define-public sbcl-ltk
9982 (package
9983 (name "sbcl-ltk")
9984 (version "0.992")
9985 (source
9986 (origin
9987 (method git-fetch)
9988 (uri (git-reference
9989 (url "https://github.com/herth/ltk.git")
9990 (commit version)))
9991 (file-name (git-file-name name version))
9992 (sha256
9993 (base32 "13l2q4mskzilya9xh5wy2xvy30lwn104bd8wrq6ifds56r82iy3x"))))
9994 (build-system asdf-build-system/sbcl)
9995 (inputs
9996 `(("imagemagick" ,imagemagick)
9997 ("tk" ,tk)))
9998 (arguments
9999 `(#:asd-file "ltk/ltk.asd"
10000 #:tests? #f
10001 #:phases (modify-phases %standard-phases
10002 (add-after 'unpack 'fix-paths
10003 (lambda* (#:key inputs #:allow-other-keys)
10004 (substitute* "ltk/ltk.lisp"
10005 (("#-freebsd \"wish\"")
10006 (string-append "#-freebsd \""
10007 (assoc-ref inputs "tk")
10008 "/bin/wish\""))
10009 (("do-execute \"convert\"")
10010 (string-append "do-execute \""
10011 (assoc-ref inputs "imagemagick")
10012 "/bin/convert\"")))
10013 #t)))))
10014 (synopsis "Common Lisp bindings for the Tk GUI toolkit")
10015 (description
10016 "LTK is a Common Lisp binding for the Tk graphics toolkit. It is written
10017 in pure Common Lisp and does not require any Tk knowledge for its usage.")
10018 (home-page "http://www.peter-herth.de/ltk/")
10019 (license license:llgpl)))
10020
10021 (define-public cl-ltk
10022 (sbcl-package->cl-source-package sbcl-ltk))
10023
10024 (define-public ecl-ltk
10025 (sbcl-package->ecl-package sbcl-ltk))
10026
10027 (define-public sbcl-ltk-mw
10028 (package
10029 (inherit sbcl-ltk)
10030 (name "sbcl-ltk-mw")
10031 (inputs
10032 `(("ltk" ,sbcl-ltk)))
10033 (arguments
10034 (substitute-keyword-arguments (package-arguments sbcl-ltk)
10035 ((#:asd-file _) "ltk/ltk-mw.asd")
10036 ((#:phases _) '%standard-phases)))
10037 (synopsis "Extra widgets for LTK")
10038 (description
10039 "This is a collection of higher-level widgets built on top of LTK.")))
10040
10041 (define-public cl-ltk-mw
10042 (sbcl-package->cl-source-package sbcl-ltk-mw))
10043
10044 (define-public ecl-ltk-mw
10045 (sbcl-package->ecl-package sbcl-ltk-mw))
10046
10047 (define-public sbcl-ltk-remote
10048 (package
10049 (inherit sbcl-ltk)
10050 (name "sbcl-ltk-remote")
10051 (inputs
10052 `(("ltk" ,sbcl-ltk)))
10053 (arguments
10054 (substitute-keyword-arguments (package-arguments sbcl-ltk)
10055 ((#:asd-file _) "ltk/ltk-remote.asd")
10056 ((#:phases _) '%standard-phases)))
10057 (synopsis "Remote GUI support for LTK")
10058 (description
10059 "This LTK extension allows the GUI to be displayed on a computer different
10060 from the one running the Lisp program by using a TCP connection.")))
10061
10062 (define-public cl-ltk-remote
10063 (sbcl-package->cl-source-package sbcl-ltk-remote))
10064
10065 (define-public sbcl-cl-lex
10066 (let ((commit "f2dbbe25ef553005fb402d9a6203180c3fa1093b")
10067 (revision "1"))
10068 (package
10069 (name "sbcl-cl-lex")
10070 (version (git-version "1.1.3" revision commit))
10071 (source
10072 (origin
10073 (method git-fetch)
10074 (uri (git-reference
10075 (url "https://github.com/djr7C4/cl-lex.git")
10076 (commit commit)))
10077 (file-name (git-file-name name version))
10078 (sha256
10079 (base32 "1kg50f76bfpfxcv4dfivq1n9a0xlsra2ajb0vd68lxwgbidgyc2y"))))
10080 (build-system asdf-build-system/sbcl)
10081 (inputs
10082 `(("cl-ppcre" ,sbcl-cl-ppcre)))
10083 (synopsis "Common Lisp macros for generating lexical analyzers")
10084 (description
10085 "This is a Common Lisp library providing a set of macros for generating
10086 lexical analyzers automatically. The lexers generated using @code{cl-lex} can
10087 be used with @code{cl-yacc}.")
10088 (home-page "https://github.com/djr7C4/cl-lex")
10089 (license license:gpl3))))
10090
10091 (define-public cl-lex
10092 (sbcl-package->cl-source-package sbcl-cl-lex))
10093
10094 (define-public ecl-cl-lex
10095 (sbcl-package->ecl-package sbcl-cl-lex))
10096
10097 (define-public sbcl-clunit2
10098 (let ((commit "5e28343734eb9b7aee39306a614af92c1062d50b")
10099 (revision "1"))
10100 (package
10101 (name "sbcl-clunit2")
10102 (version (git-version "0.2.4" revision commit))
10103 (source
10104 (origin
10105 (method git-fetch)
10106 (uri (git-reference
10107 (url "https://notabug.org/cage/clunit2.git")
10108 (commit commit)))
10109 (file-name (git-file-name name version))
10110 (sha256
10111 (base32 "1ngiapfki6nm8a555mzhb5p7ch79i3w665za5bmb5j7q34fy80vw"))))
10112 (build-system asdf-build-system/sbcl)
10113 (synopsis "Unit testing framework for Common Lisp")
10114 (description
10115 "CLUnit is a Common Lisp unit testing framework. It is designed to be
10116 easy to use so that you can quickly start testing.")
10117 (home-page "https://notabug.org/cage/clunit2")
10118 (license license:expat))))
10119
10120 (define-public cl-clunit2
10121 (sbcl-package->cl-source-package sbcl-clunit2))
10122
10123 (define-public ecl-clunit2
10124 (sbcl-package->ecl-package sbcl-clunit2))
10125
10126 (define-public sbcl-cl-colors2
10127 (let ((commit "795aedee593b095fecde574bd999b520dd03ed24")
10128 (revision "1"))
10129 (package
10130 (name "sbcl-cl-colors2")
10131 (version (git-version "0.2.1" revision commit))
10132 (source
10133 (origin
10134 (method git-fetch)
10135 (uri (git-reference
10136 (url "https://notabug.org/cage/cl-colors2.git")
10137 (commit commit)))
10138 (file-name (git-file-name name version))
10139 (sha256
10140 (base32 "0hlyf4h5chkjdp9armla5w4kw5acikk159sym7y8c4jbjp9x47ih"))))
10141 (build-system asdf-build-system/sbcl)
10142 (native-inputs
10143 `(("clunit2" ,sbcl-clunit2)))
10144 (inputs
10145 `(("alexandria" ,sbcl-alexandria)
10146 ("cl-ppcre" ,sbcl-cl-ppcre)))
10147 (synopsis "Color library for Common Lisp")
10148 (description
10149 "This is a very simple color library for Common Lisp, providing:
10150
10151 @itemize
10152 @item Types for representing colors in HSV and RGB spaces.
10153 @item Simple conversion functions between the above types (and also
10154 hexadecimal representation for RGB).
10155 @item Some predefined colors (currently X11 color names -- of course
10156 the library does not depend on X11).
10157 @end itemize\n")
10158 (home-page "https://notabug.org/cage/cl-colors2")
10159 (license license:boost1.0))))
10160
10161 (define-public cl-colors2
10162 (sbcl-package->cl-source-package sbcl-cl-colors2))
10163
10164 (define-public ecl-cl-colors2
10165 (sbcl-package->ecl-package sbcl-cl-colors2))
10166
10167 (define-public sbcl-cl-jpeg
10168 (let ((commit "ec557038128df6895fbfb743bfe8faf8ec2534af")
10169 (revision "1"))
10170 (package
10171 (name "sbcl-cl-jpeg")
10172 (version (git-version "2.8" revision commit))
10173 (source
10174 (origin
10175 (method git-fetch)
10176 (uri (git-reference
10177 (url "https://github.com/sharplispers/cl-jpeg.git")
10178 (commit commit)))
10179 (file-name (git-file-name name version))
10180 (sha256
10181 (base32 "1bkkiqz8fqldlj1wbmrccjsvxcwj98h6s4b6gslr3cg2wmdv5xmy"))))
10182 (build-system asdf-build-system/sbcl)
10183 (synopsis "JPEG image library for Common Lisp")
10184 (description
10185 "This is a baseline JPEG codec written in Common Lisp. It can be used
10186 for reading and writing JPEG image files.")
10187 (home-page "https://github.com/sharplispers/cl-jpeg")
10188 (license license:bsd-3))))
10189
10190 (define-public cl-jpeg
10191 (sbcl-package->cl-source-package sbcl-cl-jpeg))
10192
10193 (define-public ecl-cl-jpeg
10194 (sbcl-package->ecl-package sbcl-cl-jpeg))
10195
10196 (define-public sbcl-nodgui
10197 (let ((commit "bc59ed9b787dfc9e68ae3bd7f7e8507c5c619212")
10198 (revision "1"))
10199 (package
10200 (name "sbcl-nodgui")
10201 (version (git-version "0.0.5" revision commit))
10202 (source
10203 (origin
10204 (method git-fetch)
10205 (uri (git-reference
10206 (url "https://notabug.org/cage/nodgui.git")
10207 (commit commit)))
10208 (file-name (git-file-name name version))
10209 (sha256
10210 (base32 "0xx0dk54d882i598ydnwmy7mnfk0b7vib3ddsgpqxhjck1rwq8l8"))))
10211 (build-system asdf-build-system/sbcl)
10212 (inputs
10213 `(("alexandria" ,sbcl-alexandria)
10214 ("bordeaux-threads" ,sbcl-bordeaux-threads)
10215 ("cl-colors2" ,sbcl-cl-colors2)
10216 ("cl-jpeg" ,sbcl-cl-jpeg)
10217 ("cl-lex" ,sbcl-cl-lex)
10218 ("cl-ppcre-unicode" ,sbcl-cl-ppcre-unicode)
10219 ("cl-unicode" ,sbcl-cl-unicode)
10220 ("cl-yacc" ,sbcl-cl-yacc)
10221 ("clunit2" ,sbcl-clunit2)
10222 ("named-readtables" ,sbcl-named-readtables)
10223 ("parse-number" ,sbcl-parse-number)
10224 ("tk" ,tk)))
10225 (arguments
10226 `(#:phases (modify-phases %standard-phases
10227 (add-after 'unpack 'fix-paths
10228 (lambda* (#:key inputs #:allow-other-keys)
10229 (substitute* "src/wish-communication.lisp"
10230 (("#-freebsd \"wish\"")
10231 (string-append "#-freebsd \""
10232 (assoc-ref inputs "tk")
10233 "/bin/wish\"")))
10234 #t)))))
10235 (synopsis "Common Lisp bindings for the Tk GUI toolkit")
10236 (description
10237 "Nodgui (@emph{No Drama GUI}) is a Common Lisp binding for the Tk GUI
10238 toolkit. It also provides a few additional widgets more than the standard Tk
10239 ones.")
10240 (home-page "https://www.autistici.org/interzona/nodgui.html")
10241 (license license:llgpl))))
10242
10243 (define-public cl-nodgui
10244 (sbcl-package->cl-source-package sbcl-nodgui))
10245
10246 (define-public ecl-nodgui
10247 (sbcl-package->ecl-package sbcl-nodgui))
10248
10249 (define-public sbcl-salza2
10250 (package
10251 (name "sbcl-salza2")
10252 (version "2.0.9")
10253 (source
10254 (origin
10255 (method git-fetch)
10256 (uri (git-reference
10257 (url "https://github.com/xach/salza2.git")
10258 (commit (string-append "release-" version))))
10259 (file-name (git-file-name name version))
10260 (sha256
10261 (base32 "0p38rj4gq7j5k807php7hrz7l2zyyfshv8i9yms7i8lkgg3433ki"))))
10262 (build-system asdf-build-system/sbcl)
10263 (synopsis "Common Lisp library for zlib, deflate and gzip compression")
10264 (description
10265 "Salza2 is a Common Lisp library for creating compressed data in the zlib,
10266 deflate, or gzip data formats, described in RFC 1950, RFC 1951, and RFC 1952,
10267 respectively.")
10268 (home-page "https://www.xach.com/lisp/salza2/")
10269 (license license:bsd-2)))
10270
10271 (define-public cl-salza2
10272 (sbcl-package->cl-source-package sbcl-salza2))
10273
10274 (define-public ecl-salza2
10275 (sbcl-package->ecl-package sbcl-salza2))
10276
10277 (define-public sbcl-png-read
10278 (let ((commit "ec29f38a689972b9f1373f13bbbcd6b05deada88")
10279 (revision "1"))
10280 (package
10281 (name "sbcl-png-read")
10282 (version (git-version "0.3.1" revision commit))
10283 (source
10284 (origin
10285 (method git-fetch)
10286 (uri (git-reference
10287 (url "https://github.com/Ramarren/png-read.git")
10288 (commit commit)))
10289 (file-name (git-file-name name version))
10290 (sha256
10291 (base32 "0vyczbcwskrygrf1hgrsnk0jil8skmvf1kiaalw5jps4fjrfdkw0"))))
10292 (build-system asdf-build-system/sbcl)
10293 (inputs
10294 `(("babel" ,sbcl-babel)
10295 ("chipz" ,sbcl-chipz)
10296 ("iterate" ,sbcl-iterate)))
10297 (synopsis "PNG decoder for Common Lisp")
10298 (description "This is a Common Lisp library for reading PNG images.")
10299 (home-page "https://github.com/Ramarren/png-read")
10300 (license license:bsd-3))))
10301
10302 (define-public cl-png-read
10303 (sbcl-package->cl-source-package sbcl-png-read))
10304
10305 (define-public ecl-png-read
10306 (sbcl-package->ecl-package sbcl-png-read))
10307
10308 (define-public sbcl-zpng
10309 (package
10310 (name "sbcl-zpng")
10311 (version "1.2.2")
10312 (source
10313 (origin
10314 (method git-fetch)
10315 (uri (git-reference
10316 (url "https://github.com/xach/zpng.git")
10317 (commit (string-append "release-" version))))
10318 (file-name (git-file-name name version))
10319 (sha256
10320 (base32 "0b3ag3jhl3z7kdls3ahdsdxsfhhw5qrizk769984f4wkxhb69rcm"))))
10321 (build-system asdf-build-system/sbcl)
10322 (inputs
10323 `(("salza2" ,sbcl-salza2)))
10324 (synopsis "PNG encoder for Common Lisp")
10325 (description "This is a Common Lisp library for creating PNG images.")
10326 (home-page "https://www.xach.com/lisp/zpng/")
10327 (license license:bsd-2)))
10328
10329 (define-public cl-zpng
10330 (sbcl-package->cl-source-package sbcl-zpng))
10331
10332 (define-public ecl-zpng
10333 (sbcl-package->ecl-package sbcl-zpng))
10334
10335 (define-public sbcl-cl-qrencode
10336 (package
10337 (name "sbcl-cl-qrencode")
10338 (version "0.1.2")
10339 (source
10340 (origin
10341 (method git-fetch)
10342 (uri (git-reference
10343 (url "https://github.com/jnjcc/cl-qrencode.git")
10344 (commit (string-append "v" version))))
10345 (file-name (git-file-name name version))
10346 (sha256
10347 (base32 "1l5k131dchbf6cj8a8xqa731790p01p3qa1kdy2wa9dawy3ymkxr"))))
10348 (build-system asdf-build-system/sbcl)
10349 (native-inputs
10350 `(("lisp-unit" ,sbcl-lisp-unit)))
10351 (inputs
10352 `(("zpng" ,sbcl-zpng)))
10353 (synopsis "QR code encoder for Common Lisp")
10354 (description
10355 "This Common Lisp library provides function to make QR codes and to save
10356 them as PNG files.")
10357 (home-page "https://github.com/jnjcc/cl-qrencode")
10358 (license license:gpl2+)))
10359
10360 (define-public cl-qrencode
10361 (sbcl-package->cl-source-package sbcl-cl-qrencode))
10362
10363 (define-public ecl-cl-qrencode
10364 (sbcl-package->ecl-package sbcl-cl-qrencode))
10365
10366 (define-public sbcl-hdf5-cffi
10367 (let ((commit "5b5c88f191e470e4fe96b462334e3ce0806eed5c")
10368 (revision "1"))
10369 (package
10370 (name "sbcl-hdf5-cffi")
10371 (version (git-version "1.8.18" revision commit))
10372 (source
10373 (origin
10374 (method git-fetch)
10375 (uri (git-reference
10376 (url "https://github.com/hdfgroup/hdf5-cffi.git")
10377 (commit commit)))
10378 (file-name (git-file-name name version))
10379 (sha256
10380 (base32
10381 "0vda3075423xz83qky998lpac5b04dwfv7bwgh9jq8cs5v0zrxjf"))))
10382 (build-system asdf-build-system/sbcl)
10383 (synopsis "Common Lisp bindings for the HDF5 library")
10384 (description
10385 "@code{hdf5-cffi} is a CFFI wrapper for the HDF5 library.")
10386 (home-page "https://github.com/hdfgroup/hdf5-cffi")
10387 (license (license:non-copyleft
10388 (string-append "https://github.com/HDFGroup/hdf5-cffi/raw/"
10389 commit
10390 "/LICENSE")))
10391 (inputs
10392 `(("cffi" ,sbcl-cffi)
10393 ("cffi-grovel" ,sbcl-cffi-grovel)
10394 ("hdf5" ,hdf5-1.10)))
10395 (native-inputs
10396 `(("fiveam" ,sbcl-fiveam)))
10397 (arguments
10398 `(#:asd-system-name "hdf5-cffi"
10399 #:asd-file "hdf5-cffi.asd"
10400 #:test-asd-file "hdf5-cffi.test.asd"
10401 ;; Tests depend on hdf5-cffi.examples.asd in addition to hdf5-cffi.asd,
10402 ;; I don't know if there is a way to tell asdf-build-system to load
10403 ;; an additional system first, so tests are disabled.
10404 #:tests? #f
10405 #:phases
10406 (modify-phases %standard-phases
10407 (add-after 'unpack 'fix-paths
10408 (lambda* (#:key inputs #:allow-other-keys)
10409 (substitute* "src/library.lisp"
10410 (("libhdf5.so")
10411 (string-append
10412 (assoc-ref inputs "hdf5")
10413 "/lib/libhdf5.so")))))
10414 (add-after 'unpack 'fix-dependencies
10415 (lambda* (#:key inputs #:allow-other-keys)
10416 (substitute* "hdf5-cffi.asd"
10417 ((":depends-on \\(:cffi\\)")
10418 ":depends-on (:cffi :cffi-grovel)"))
10419 (substitute* "hdf5-cffi.test.asd"
10420 ((":depends-on \\(:cffi :hdf5-cffi")
10421 ":depends-on (:cffi :cffi-grovel :hdf5-cffi"))))))))))
10422
10423 (define-public cl-hdf5-cffi
10424 (sbcl-package->cl-source-package sbcl-hdf5-cffi))
10425
10426 (define-public ecl-hdf5-cffi
10427 (sbcl-package->ecl-package sbcl-hdf5-cffi))
10428
10429 (define-public sbcl-cl-randist
10430 (package
10431 (name "sbcl-cl-randist")
10432 (version "0.4.2")
10433 (source
10434 (origin
10435 (method git-fetch)
10436 (uri (git-reference
10437 (url "https://github.com/lvaruzza/cl-randist.git")
10438 (commit "f088a54b540a7adefab7c04094a6103f9edda3d0")))
10439 (file-name (git-file-name name version))
10440 (sha256
10441 (base32
10442 "0l8hyd6nbxb7f50vyxz3rbbm7kgr1fnadc40jywy4xj5vi5kpj5g"))))
10443 (build-system asdf-build-system/sbcl)
10444 (synopsis "Random distributions for Common Lisp")
10445 (description
10446 "Manual translation from C to Common Lisp of some random number
10447 generation functions from the GSL library.")
10448 (home-page "https://github.com/lvaruzza/cl-randist")
10449 (license license:bsd-2)
10450 (arguments
10451 `(#:asd-system-name "cl-randist"
10452 #:asd-file "cl-randist.asd"
10453 #:tests? #f))))
10454
10455 (define-public cl-randist
10456 (sbcl-package->cl-source-package sbcl-cl-randist))
10457
10458 (define-public ecl-cl-randist
10459 (sbcl-package->ecl-package sbcl-cl-randist))
10460
10461 (define-public sbcl-float-features
10462 (package
10463 (name "sbcl-float-features")
10464 (version "1.0.0")
10465 (source
10466 (origin
10467 (method git-fetch)
10468 (uri (git-reference
10469 (url "https://github.com/Shinmera/float-features.git")
10470 (commit "d3ef60181635b0849aa28cfc238053b7ca4644b0")))
10471 (file-name (git-file-name name version))
10472 (sha256
10473 (base32
10474 "0yj419k7n59x6rh3grwr6frgwwyria2il6f7wxpfazm8cskv4lzr"))))
10475 (build-system asdf-build-system/sbcl)
10476 (synopsis "Common Lisp IEEE float portability library")
10477 (description
10478 "Portability library for IEEE float features that are not
10479 covered by the Common Lisp standard.")
10480 (home-page "https://github.com/Shinmera/float-features")
10481 (license license:zlib)
10482 (inputs
10483 `(("documentation-utils" ,sbcl-documentation-utils)))
10484 (arguments
10485 `(#:asd-system-name "float-features"
10486 #:asd-file "float-features.asd"
10487 #:tests? #f))))
10488
10489 (define-public cl-float-features
10490 (sbcl-package->cl-source-package sbcl-float-features))
10491
10492 (define-public ecl-float-features
10493 (sbcl-package->ecl-package sbcl-float-features))
10494
10495 (define-public sbcl-function-cache
10496 (package
10497 (name "sbcl-function-cache")
10498 (version "1.0.3")
10499 (source
10500 (origin
10501 (method git-fetch)
10502 (uri (git-reference
10503 (url "https://github.com/AccelerationNet/function-cache.git")
10504 (commit "6a5ada401e57da2c8abf046f582029926e61fce8")))
10505 (file-name (git-file-name name version))
10506 (sha256
10507 (base32
10508 "000vmd3f5rx5hs9nvphfric0gkzaadns31c6mxaslpv0k7pkrmc6"))))
10509 (build-system asdf-build-system/sbcl)
10510 (synopsis "Function caching / memoization library for Common Lisp")
10511 (description
10512 "A common lisp library that provides extensible function result
10513 caching based on arguments (an expanded form of memoization).")
10514 (home-page "https://github.com/AccelerationNet/function-cache")
10515 (license
10516 (license:non-copyleft
10517 "https://github.com/AccelerationNet/function-cache/blob/master/README.md"))
10518 (inputs
10519 `(("alexandria" ,sbcl-alexandria)
10520 ("cl-interpol" ,sbcl-cl-interpol)
10521 ("iterate" ,sbcl-iterate)
10522 ("symbol-munger" ,sbcl-symbol-munger)
10523 ("closer-mop" ,sbcl-closer-mop)))
10524 (arguments
10525 `(#:asd-system-name "function-cache"
10526 #:asd-file "function-cache.asd"
10527 #:tests? #f))))
10528
10529 (define-public cl-function-cache
10530 (sbcl-package->cl-source-package sbcl-function-cache))
10531
10532 (define-public ecl-function-cache
10533 (sbcl-package->ecl-package sbcl-function-cache))
10534
10535 (define-public sbcl-type-r
10536 (let ((commit "83c89e38f2f7a7b16f1012777ecaf878cfa6a267")
10537 (revision "1"))
10538 (package
10539 (name "sbcl-type-r")
10540 (version (git-version "0.0.0" revision commit))
10541 (source
10542 (origin
10543 (method git-fetch)
10544 (uri (git-reference
10545 (url "https://github.com/guicho271828/type-r.git")
10546 (commit commit)))
10547 (file-name (git-file-name name version))
10548 (sha256
10549 (base32
10550 "1arsxc2539rg8vbrdirz4xxj1b06mc6g6rqndz7a02g127qvk2sm"))))
10551 (build-system asdf-build-system/sbcl)
10552 (synopsis "Parser interface for Common Lisp built-in compound types")
10553 (description
10554 "Collections of accessor functions and patterns to access
10555 the elements in compound type specifier, e.g. @code{dimensions} in
10556 @code{(array element-type dimensions)}")
10557 (home-page "https://github.com/guicho271828/type-r")
10558 (license license:lgpl3+)
10559 (inputs
10560 `(("trivia" ,sbcl-trivia)
10561 ("alexandria" ,sbcl-alexandria)))
10562 (native-inputs
10563 `(("fiveam" ,sbcl-fiveam)))
10564 (arguments
10565 `(#:asd-system-name "type-r"
10566 #:asd-file "type-r.asd"
10567 #:test-asd-file "type-r.test.asd")))))
10568
10569 (define-public cl-type-r
10570 (sbcl-package->cl-source-package sbcl-type-r))
10571
10572 (define-public sbcl-trivialib-type-unify
10573 (let ((commit "62492ebf04db567dcf435ae84c50b7b8202ecf99")
10574 (revision "1"))
10575 (package
10576 (name "sbcl-trivialib-type-unify")
10577 (version (git-version "0.1" revision commit))
10578 (source
10579 (origin
10580 (method git-fetch)
10581 (uri (git-reference
10582 (url "https://github.com/guicho271828/trivialib.type-unify.git")
10583 (commit commit)))
10584 (file-name (git-file-name name version))
10585 (sha256
10586 (base32
10587 "1bkyfzbwv75p50zp8n1n9rh2r29pw3vgz91gmn2gzzkyq3khj1vh"))))
10588 (build-system asdf-build-system/sbcl)
10589 (synopsis "Common Lisp type unification")
10590 (description
10591 "Unifies a parametrized type specifier against an actual type specifier.
10592 Importantly, it handles complicated array-subtypes and number-related types
10593 correctly.")
10594 (home-page "https://github.com/guicho271828/trivialib.type-unify")
10595 (license license:lgpl3+)
10596 (inputs
10597 `(("alexandria" ,sbcl-alexandria)
10598 ("trivia" ,sbcl-trivia)
10599 ("introspect-environment" ,sbcl-introspect-environment)
10600 ("type-r" ,sbcl-type-r)))
10601 (native-inputs
10602 `(("fiveam" ,sbcl-fiveam)))
10603 (arguments
10604 `(#:asd-system-name "trivialib.type-unify"
10605 #:asd-file "trivialib.type-unify.asd"
10606 #:test-asd-file "trivialib.type-unify.test.asd")))))
10607
10608 (define-public cl-trivialib-type-unify
10609 (sbcl-package->cl-source-package sbcl-trivialib-type-unify))
10610
10611 (define-public sbcl-specialized-function
10612 (let ((commit "b96b6afaf8358bf91cc0703e62a5a4ee20d2b7bc")
10613 (revision "1"))
10614 (package
10615 (name "sbcl-specialized-function")
10616 (version (git-version "0.0.0" revision commit))
10617 (source
10618 (origin
10619 (method git-fetch)
10620 (uri (git-reference
10621 (url "https://github.com/numcl/specialized-function.git")
10622 (commit commit)))
10623 (file-name (git-file-name name version))
10624 (sha256
10625 (base32
10626 "12j45ff0n26578vmfbhb9mfbdchw4wy023k0m2ppgl9s0z4bhjaj"))))
10627 (build-system asdf-build-system/sbcl)
10628 (synopsis "Julia-like dispatch for Common Lisp")
10629 (description
10630 "This library is part of NUMCL. It provides a macro
10631 @code{SPECIALIZED} that performs a Julia-like dispatch on the arguments,
10632 lazily compiling a type-specific version of the function from the same
10633 code. The main target of this macro is speed.")
10634 (home-page "https://github.com/numcl/specialized-function")
10635 (license license:lgpl3+)
10636 (inputs
10637 `(("trivia" ,sbcl-trivia)
10638 ("alexandria" ,sbcl-alexandria)
10639 ("iterate" ,sbcl-iterate)
10640 ("lisp-namespace" ,sbcl-lisp-namespace)
10641 ("type-r" ,sbcl-type-r)
10642 ("trivial-cltl2" ,sbcl-trivial-cltl2)))
10643 (native-inputs
10644 `(("fiveam" ,sbcl-fiveam)))
10645 (arguments
10646 `(#:asd-system-name "specialized-function"
10647 #:asd-file "specialized-function.asd"
10648 #:test-asd-file "specialized-function.test.asd")))))
10649
10650 (define-public cl-specialized-function
10651 (sbcl-package->cl-source-package sbcl-specialized-function))
10652
10653 (define-public sbcl-constantfold
10654 (let ((commit "0ff1d97a3fbcb89264f6a2af6ce62b73e7b421f4")
10655 (revision "1"))
10656 (package
10657 (name "sbcl-constantfold")
10658 (version (git-version "0.1" revision commit))
10659 (source
10660 (origin
10661 (method git-fetch)
10662 (uri (git-reference
10663 (url "https://github.com/numcl/constantfold.git")
10664 (commit commit)))
10665 (file-name (git-file-name name version))
10666 (sha256
10667 (base32
10668 "153h0569z6bff1qbad0bdssplwwny75l7ilqwcfqfdvzsxf9jh06"))))
10669 (build-system asdf-build-system/sbcl)
10670 (synopsis "Support library for numcl")
10671 (description
10672 "Support library for numcl. Registers a function as an
10673 additional form that is considered as a candidate for a constant.")
10674 (home-page "https://github.com/numcl/constantfold")
10675 (license license:lgpl3+)
10676 (inputs
10677 `(("trivia" ,sbcl-trivia)
10678 ("alexandria" ,sbcl-alexandria)
10679 ("iterate" ,sbcl-iterate)
10680 ("lisp-namespace" ,sbcl-lisp-namespace)))
10681 (native-inputs
10682 `(("fiveam" ,sbcl-fiveam)))
10683 (arguments
10684 `(#:asd-system-name "constantfold"
10685 #:asd-file "constantfold.asd"
10686 #:test-asd-file "constantfold.test.asd")))))
10687
10688 (define-public cl-constantfold
10689 (sbcl-package->cl-source-package sbcl-constantfold))
10690
10691 (define-public sbcl-gtype
10692 (let ((commit "42275e3606242ae91e9c8dfa30c18ced50a35b66")
10693 (revision "1"))
10694 (package
10695 (name "sbcl-gtype")
10696 (version (git-version "0.1" revision commit))
10697 (source
10698 (origin
10699 (method git-fetch)
10700 (uri (git-reference
10701 (url "https://github.com/numcl/gtype.git")
10702 (commit commit)))
10703 (file-name (git-file-name name version))
10704 (sha256
10705 (base32
10706 "1f56dba998v945jcxhha391557n6md1ql25b7icfwwfivhmlaa9b"))))
10707 (build-system asdf-build-system/sbcl)
10708 (synopsis "C++/Julia-like parametric types in Common Lisp")
10709 (description
10710 "Support library for numcl that provides Julia-like runtime parametric
10711 type correctness in Common Lisp. It is based on CLtL2 extensions.")
10712 (home-page "https://github.com/numcl/gtype")
10713 (license license:lgpl3+)
10714 (inputs
10715 `(("trivialib.type-unify" ,sbcl-trivialib-type-unify)
10716 ("trivial-cltl2" ,sbcl-trivial-cltl2)
10717 ("trivia" ,sbcl-trivia)
10718 ("alexandria" ,sbcl-alexandria)
10719 ("iterate" ,sbcl-iterate)
10720 ("type-r" ,sbcl-type-r)))
10721 (native-inputs
10722 `(("fiveam" ,sbcl-fiveam)))
10723 (arguments
10724 `(#:asd-system-name "gtype"
10725 #:asd-file "gtype.asd"
10726 #:test-asd-file "gtype.test.asd")))))
10727
10728 (define-public cl-gtype
10729 (sbcl-package->cl-source-package sbcl-gtype))
10730
10731 (define-public sbcl-numcl
10732 (let ((commit "1cf7dfa59f763a24a501092870e9c5ee745d0c17")
10733 (revision "1"))
10734 (package
10735 (name "sbcl-numcl")
10736 (version (git-version "0.1.0" revision commit))
10737 (source
10738 (origin
10739 (method git-fetch)
10740 (uri (git-reference
10741 (url "https://github.com/numcl/numcl.git")
10742 (commit commit)))
10743 (file-name (git-file-name name version))
10744 (sha256
10745 (base32
10746 "0i3jby9hf4ii7blivgyza80g0vmjfhk8537i5i7kqqk0i5sdnym2"))))
10747 (build-system asdf-build-system/sbcl)
10748 (synopsis "Numpy clone in Common Lisp")
10749 (description
10750 "This is a Numpy clone in Common Lisp. At the moment the
10751 library is written in pure Common Lisp, focusing more on correctness
10752 and usefulness, not speed. Track the progress at
10753 @url{https://github.com/numcl/numcl/projects/1}.")
10754 (home-page "https://github.com/numcl/numcl")
10755 (license license:lgpl3+)
10756 (inputs
10757 `(("trivia" ,sbcl-trivia)
10758 ("alexandria" ,sbcl-alexandria)
10759 ("iterate" ,sbcl-iterate)
10760 ("lisp-namespace" ,sbcl-lisp-namespace)
10761 ("type-r" ,sbcl-type-r)
10762 ("constantfold" ,sbcl-constantfold)
10763 ("cl-randist" ,sbcl-cl-randist)
10764 ("float-features" ,sbcl-float-features)
10765 ("function-cache" ,sbcl-function-cache)
10766 ("specialized-function" ,sbcl-specialized-function)
10767 ("gtype" ,sbcl-gtype)))
10768 (native-inputs
10769 `(("fiveam" ,sbcl-fiveam)))
10770 (arguments
10771 `(#:asd-system-name "numcl"
10772 #:asd-file "numcl.asd"
10773 #:test-asd-file "numcl.test.asd")))))
10774
10775 (define-public cl-numcl
10776 (sbcl-package->cl-source-package sbcl-numcl))
10777
10778 (define-public sbcl-pzmq
10779 (let ((commit "7c7390eedc469d033c72dc497984d1536ee75826")
10780 (revision "1"))
10781 (package
10782 (name "sbcl-pzmq")
10783 (version (git-version "0.0.0" revision commit))
10784 (source
10785 (origin
10786 (method git-fetch)
10787 (uri (git-reference
10788 (url "https://github.com/orivej/pzmq.git")
10789 (commit commit)))
10790 (file-name (git-file-name name version))
10791 (sha256
10792 (base32 "0gmwzf7h90wa7v4wnk49g0hv2mdalljpwhyigxcb967wzv8lqci9"))))
10793 (build-system asdf-build-system/sbcl)
10794 (native-inputs
10795 `(("bordeaux-threads" ,sbcl-bordeaux-threads)
10796 ("fiveam" ,sbcl-fiveam)
10797 ("let-plus" ,sbcl-let-plus)))
10798 (inputs
10799 `(("cffi" ,sbcl-cffi)
10800 ("cffi-grovel" ,sbcl-cffi-grovel)
10801 ("zeromq" ,zeromq)))
10802 (arguments
10803 `(#:phases (modify-phases %standard-phases
10804 (add-after 'unpack 'fix-paths
10805 (lambda* (#:key inputs #:allow-other-keys)
10806 (substitute* "c-api.lisp"
10807 (("\"libzmq")
10808 (string-append "\""
10809 (assoc-ref inputs "zeromq")
10810 "/lib/libzmq")))
10811 #t)))))
10812 (synopsis "Common Lisp bindings for the ZeroMQ library")
10813 (description "This Common Lisp library provides bindings for the ZeroMQ
10814 lightweight messaging kernel.")
10815 (home-page "https://github.com/orivej/pzmq")
10816 (license license:unlicense))))
10817
10818 (define-public cl-pzmq
10819 (sbcl-package->cl-source-package sbcl-pzmq))
10820
10821 (define-public ecl-pzmq
10822 (sbcl-package->ecl-package sbcl-pzmq))
10823
10824 (define-public sbcl-clss
10825 (let ((revision "1")
10826 (commit "2a8e8615ab55870d4ca01928f3ed3bbeb4e75c8d"))
10827 (package
10828 (name "sbcl-clss")
10829 (version (git-version "0.3.1" revision commit))
10830 (source
10831 (origin
10832 (method git-fetch)
10833 (uri
10834 (git-reference
10835 (url "https://github.com/Shinmera/clss.git")
10836 (commit commit)))
10837 (sha256
10838 (base32 "0la4dbcda78x29szanylccrsljqrn9d1mhh569sqkyp44ni5fv91"))
10839 (file-name (git-file-name name version))))
10840 (inputs
10841 `(("array-utils" ,sbcl-array-utils)
10842 ("plump" ,sbcl-plump)))
10843 (build-system asdf-build-system/sbcl)
10844 (synopsis "DOM tree searching engine based on CSS selectors")
10845 (description "CLSS is a DOM traversal engine based on CSS
10846 selectors. It makes use of the Plump-DOM and is used by lQuery.")
10847 (home-page "https://github.com/Shinmera/clss")
10848 (license license:zlib))))
10849
10850 (define-public cl-clss
10851 (sbcl-package->cl-source-package sbcl-clss))
10852
10853 (define-public ecl-clss
10854 (sbcl-package->ecl-package sbcl-clss))
10855
10856 (define-public sbcl-lquery
10857 (let ((revision "1")
10858 (commit "8048111c6b83956daa632e7a3ffbd8c9c203bd8d"))
10859 (package
10860 (name "sbcl-lquery")
10861 (version (git-version "3.2.1" revision commit))
10862 (source
10863 (origin
10864 (method git-fetch)
10865 (uri
10866 (git-reference
10867 (url "https://github.com/Shinmera/lquery.git")
10868 (commit commit)))
10869 (sha256
10870 (base32 "0520mcpxc2d6fdm8z61arpgd2z38kan7cf06qs373n5r64rakz6w"))
10871 (file-name (git-file-name name version))))
10872 (native-inputs
10873 `(("fiveam" ,sbcl-fiveam)))
10874 (inputs
10875 `(("array-utils" ,sbcl-array-utils)
10876 ("form-fiddle" ,sbcl-form-fiddle)
10877 ("plump" ,sbcl-plump)
10878 ("clss" ,sbcl-clss)))
10879 (build-system asdf-build-system/sbcl)
10880 (synopsis "Library to allow jQuery-like HTML/DOM manipulation")
10881 (description "@code{lQuery} is a DOM manipulation library written in
10882 Common Lisp, inspired by and based on the jQuery syntax and
10883 functions. It uses Plump and CLSS as DOM and selector engines. The
10884 main idea behind lQuery is to provide a simple interface for crawling
10885 and modifying HTML sites, as well as to allow for an alternative
10886 approach to templating.")
10887 (home-page "https://github.com/Shinmera/lquery")
10888 (license license:zlib))))
10889
10890 (define-public cl-lquery
10891 (sbcl-package->cl-source-package sbcl-lquery))
10892
10893 (define-public ecl-lquery
10894 (sbcl-package->ecl-package sbcl-lquery))
10895
10896 (define-public sbcl-cl-mysql
10897 (let ((commit "ab56c279c1815aec6ca0bfe85164ff7e85cfb6f9")
10898 (revision "1"))
10899 (package
10900 (name "sbcl-cl-mysql")
10901 (version (git-version "0.1" revision commit))
10902 (source
10903 (origin
10904 (method git-fetch)
10905 (uri (git-reference
10906 (url "https://github.com/hackinghat/cl-mysql.git")
10907 (commit commit)))
10908 (file-name (git-file-name name version))
10909 (sha256
10910 (base32 "0dg5ynx2ww94d0qfwrdrm7plkn43h64hs4iiq9mj2s1s4ixnp3lr"))))
10911 (build-system asdf-build-system/sbcl)
10912 (native-inputs
10913 `(("stefil" ,sbcl-stefil)))
10914 (inputs
10915 `(("cffi" ,sbcl-cffi)
10916 ("mariadb-lib" ,mariadb "lib")))
10917 (arguments
10918 `(#:tests? #f ; TODO: Tests require a running server
10919 #:phases
10920 (modify-phases %standard-phases
10921 (add-after 'unpack 'fix-paths
10922 (lambda* (#:key inputs #:allow-other-keys)
10923 (substitute* "system.lisp"
10924 (("libmysqlclient_r" all)
10925 (string-append (assoc-ref inputs "mariadb-lib")
10926 "/lib/"
10927 all)))
10928 #t)))))
10929 (synopsis "Common Lisp wrapper for MySQL")
10930 (description
10931 "@code{cl-mysql} is a Common Lisp implementation of a MySQL wrapper.")
10932 (home-page "http://www.hackinghat.com/index.php/cl-mysql")
10933 (license license:expat))))
10934
10935 (define-public cl-mysql
10936 (sbcl-package->cl-source-package sbcl-cl-mysql))
10937
10938 (define-public sbcl-simple-date
10939 (let ((commit "74469b25bbda990ec9b77e0d0eccdba0cd7e721a")
10940 (revision "1"))
10941 (package
10942 (name "sbcl-simple-date")
10943 (version (git-version "1.19" revision commit))
10944 (source
10945 (origin
10946 (method git-fetch)
10947 (uri (git-reference
10948 (url "https://github.com/marijnh/Postmodern.git")
10949 (commit commit)))
10950 (file-name (git-file-name name version))
10951 (sha256
10952 (base32 "0im7ymnyxjhn2w74jfg76k5gpr0gl33n31akx33hl28722ljd0hd"))))
10953 (build-system asdf-build-system/sbcl)
10954 (native-inputs
10955 `(("fiveam" ,sbcl-fiveam)))
10956 (synopsis "Basic date and time objects for Common Lisp")
10957 (description
10958 "@code{simple-date} is a very basic implementation of date and time
10959 objects, used to support storing and retrieving time-related SQL types.")
10960 (home-page "https://marijnhaverbeke.nl/postmodern/")
10961 (license license:zlib))))
10962
10963 (define-public cl-simple-date
10964 (sbcl-package->cl-source-package sbcl-simple-date))
10965
10966 (define-public ecl-simple-date
10967 (sbcl-package->ecl-package sbcl-simple-date))
10968
10969 (define-public sbcl-cl-postgres
10970 (package
10971 (inherit sbcl-simple-date)
10972 (name "sbcl-cl-postgres")
10973 (native-inputs
10974 `(("fiveam" ,sbcl-fiveam)
10975 ("simple-date" ,sbcl-simple-date)))
10976 (inputs
10977 `(("md5" ,sbcl-md5)
10978 ("split-sequence" ,sbcl-split-sequence)
10979 ("usocket" ,sbcl-usocket)))
10980 (arguments
10981 `(#:tests? #f)) ; TODO: Break simple-date/postgres-glue circular dependency
10982 (synopsis "Common Lisp interface for PostgreSQL")
10983 (description
10984 "@code{cl-postgres} is a low-level library used for interfacing with
10985 a PostgreSQL server over a socket.")))
10986
10987 (define-public cl-postgres
10988 (sbcl-package->cl-source-package sbcl-cl-postgres))
10989
10990 (define-public sbcl-simple-date-postgres-glue
10991 (package
10992 (inherit sbcl-simple-date)
10993 (name "sbcl-simple-date-postgres-glue")
10994 (inputs
10995 `(("cl-postgres" ,sbcl-cl-postgres)
10996 ("simple-date" ,sbcl-simple-date)))
10997 (arguments
10998 `(#:asd-file "simple-date.asd"
10999 #:asd-system-name "simple-date/postgres-glue"))))
11000
11001 (define-public cl-simple-date-postgres-glue
11002 (sbcl-package->cl-source-package sbcl-simple-date-postgres-glue))
11003
11004 (define-public sbcl-s-sql
11005 (package
11006 (inherit sbcl-simple-date)
11007 (name "sbcl-s-sql")
11008 (inputs
11009 `(("alexandria" ,sbcl-alexandria)
11010 ("cl-postgres" ,sbcl-cl-postgres)))
11011 (arguments
11012 `(#:tests? #f)) ; TODO: Break postmodern circular dependency
11013 (synopsis "Lispy DSL for SQL")
11014 (description
11015 "@code{s-sql} is a Common Lisp library that can be used to compile
11016 s-expressions to strings of SQL code, escaping any Lisp values inside, and
11017 doing as much as possible of the work at compile time.")))
11018
11019 (define-public cl-s-sql
11020 (sbcl-package->cl-source-package sbcl-s-sql))
11021
11022 (define-public sbcl-postmodern
11023 (package
11024 (inherit sbcl-simple-date)
11025 (name "sbcl-postmodern")
11026 (native-inputs
11027 `(("fiveam" ,sbcl-fiveam)
11028 ("simple-date" ,sbcl-simple-date)
11029 ("simple-date-postgres-glue" ,sbcl-simple-date-postgres-glue)))
11030 (inputs
11031 `(("alexandria" ,sbcl-alexandria)
11032 ("bordeaux-threads" ,sbcl-bordeaux-threads)
11033 ("cl-postgres" ,sbcl-cl-postgres)
11034 ("closer-mop" ,sbcl-closer-mop)
11035 ("global-vars" ,sbcl-global-vars)
11036 ("s-sql" ,sbcl-s-sql)
11037 ("split-sequence" ,sbcl-split-sequence)))
11038 (arguments
11039 ;; TODO: Fix missing dependency errors for simple-date/postgres-glue,
11040 ;; cl-postgres/tests and s-sql/tests.
11041 `(#:tests? #f))
11042 (synopsis "Common Lisp library for interacting with PostgreSQL")
11043 (description
11044 "@code{postmodern} is a Common Lisp library for interacting with
11045 PostgreSQL databases. It provides the following features:
11046
11047 @itemize
11048 @item Efficient communication with the database server without need for
11049 foreign libraries.
11050 @item Support for UTF-8 on Unicode-aware Lisp implementations.
11051 @item A syntax for mixing SQL and Lisp code.
11052 @item Convenient support for prepared statements and stored procedures.
11053 @item A metaclass for simple database-access objects.
11054 @end itemize\n")))
11055
11056 (define-public cl-postmodern
11057 (sbcl-package->cl-source-package sbcl-postmodern))
11058
11059 (define-public sbcl-dbi
11060 (package
11061 (name "sbcl-dbi")
11062 (version "0.9.4")
11063 (source
11064 (origin
11065 (method git-fetch)
11066 (uri (git-reference
11067 (url "https://github.com/fukamachi/cl-dbi.git")
11068 (commit version)))
11069 (file-name (git-file-name name version))
11070 (sha256
11071 (base32 "0m1fsravfaizamdak84adh3jxc4j91maqnrb4m08bfbmb04cdqhs"))))
11072 (build-system asdf-build-system/sbcl)
11073 (inputs
11074 `(("bordeaux-threads" ,sbcl-bordeaux-threads)
11075 ("closer-mop" ,sbcl-closer-mop)
11076 ("split-sequence" ,sbcl-split-sequence)))
11077 (arguments
11078 `(#:tests? #f)) ; TODO: Break circular dependency with dbd-*
11079 (synopsis "Database independent interface for Common Lisp")
11080 (description
11081 "@code{dbi} is a Common Lisp library providing a database independent
11082 interface for MySQL, PostgreSQL and SQLite.")
11083 (home-page "https://github.com/fukamachi/cl-dbi")
11084 (license license:llgpl)))
11085
11086 (define-public cl-dbi
11087 (sbcl-package->cl-source-package sbcl-dbi))
11088
11089 (define-public sbcl-dbd-mysql
11090 (package
11091 (inherit sbcl-dbi)
11092 (name "sbcl-dbd-mysql")
11093 (inputs
11094 `(("cl-mysql" ,sbcl-cl-mysql)
11095 ("dbi" ,sbcl-dbi)))
11096 (synopsis "Database driver for MySQL")))
11097
11098 (define-public cl-dbd-mysql
11099 (sbcl-package->cl-source-package sbcl-dbd-mysql))
11100
11101 (define-public sbcl-dbd-postgres
11102 (package
11103 (inherit sbcl-dbi)
11104 (name "sbcl-dbd-postgres")
11105 (inputs
11106 `(("cl-postgres" ,sbcl-cl-postgres)
11107 ("dbi" ,sbcl-dbi)
11108 ("trivial-garbage" ,sbcl-trivial-garbage)))
11109 (synopsis "Database driver for PostgreSQL")))
11110
11111 (define-public cl-dbd-postgres
11112 (sbcl-package->cl-source-package sbcl-dbd-postgres))
11113
11114 (define-public sbcl-dbd-sqlite3
11115 (package
11116 (inherit sbcl-dbi)
11117 (name "sbcl-dbd-sqlite3")
11118 (inputs
11119 `(("cl-sqlite" ,sbcl-cl-sqlite)
11120 ("dbi" ,sbcl-dbi)
11121 ("trivial-garbage" ,sbcl-trivial-garbage)))
11122 (synopsis "Database driver for SQLite3")))
11123
11124 (define-public cl-dbd-sqlite3
11125 (sbcl-package->cl-source-package sbcl-dbd-sqlite3))
11126
11127 (define-public sbcl-uffi
11128 (package
11129 (name "sbcl-uffi")
11130 (version "2.1.2")
11131 (source
11132 (origin
11133 (method git-fetch)
11134 (uri (git-reference
11135 (url "http://git.kpe.io/uffi.git")
11136 (commit (string-append "v" version))))
11137 (file-name (git-file-name name version))
11138 (sha256
11139 (base32 "1hqszvz0a3wk4s9faa83sc3vjxcb5rxmjclyr17yzwg55z733kry"))))
11140 (build-system asdf-build-system/sbcl)
11141 (arguments
11142 `(#:tests? #f ; TODO: Fix use of deprecated ASDF functions
11143 #:phases
11144 (modify-phases %standard-phases
11145 (add-after 'unpack 'fix-permissions
11146 (lambda _
11147 (make-file-writable "doc/html.tar.gz")
11148 #t)))))
11149 (synopsis "Universal foreign function library for Common Lisp")
11150 (description
11151 "UFFI provides a universal foreign function interface (FFI)
11152 for Common Lisp.")
11153 (home-page "http://quickdocs.org/uffi/")
11154 (license license:llgpl)))
11155
11156 (define-public cl-uffi
11157 (package
11158 (inherit (sbcl-package->cl-source-package sbcl-uffi))
11159 (arguments
11160 `(#:phases
11161 ;; asdf-build-system/source has its own phases and does not inherit
11162 ;; from asdf-build-system/sbcl phases.
11163 (modify-phases %standard-phases/source
11164 (add-after 'unpack 'fix-permissions
11165 (lambda _
11166 (make-file-writable "doc/html.tar.gz")
11167 #t)))))))
11168
11169 (define-public sbcl-clsql
11170 (package
11171 (name "sbcl-clsql")
11172 (version "6.7.0")
11173 (source
11174 (origin
11175 (method git-fetch)
11176 (uri (git-reference
11177 (url "http://git.kpe.io/clsql.git")
11178 (commit (string-append "v" version))))
11179 (file-name (git-file-name name version))
11180 (sha256
11181 (base32 "1v1k3s5bsy3lgd9gk459bzpb1r0kdjda25s29samxw4gsgf1fqvp"))
11182 (snippet
11183 '(begin
11184 ;; Remove precompiled libraries.
11185 (delete-file "db-mysql/clsql_mysql.dll")
11186 (delete-file "uffi/clsql_uffi.dll")
11187 (delete-file "uffi/clsql_uffi.lib")
11188 #t))))
11189 (build-system asdf-build-system/sbcl)
11190 (native-inputs
11191 `(("cffi-uffi-compat" ,sbcl-cffi-uffi-compat)
11192 ("rt" ,sbcl-rt)
11193 ("uffi" ,sbcl-uffi)))
11194 (arguments
11195 `(#:phases
11196 (modify-phases %standard-phases
11197 (add-after 'unpack 'fix-permissions
11198 (lambda _
11199 (make-file-writable "doc/html.tar.gz")
11200 #t))
11201 (add-after 'unpack 'fix-tests
11202 (lambda _
11203 (substitute* "clsql.asd"
11204 (("clsql-tests :force t")
11205 "clsql-tests"))
11206 #t)))))
11207 (synopsis "Common Lisp SQL Interface library")
11208 (description
11209 "@code{clsql} is a Common Lisp interface to SQL RDBMS based on the
11210 Xanalys CommonSQL interface for Lispworks. It provides low-level database
11211 interfaces as well as a functional and an object oriented interface.")
11212 (home-page "http://clsql.kpe.io/")
11213 (license license:llgpl)))
11214
11215 (define-public cl-clsql
11216 (package
11217 (inherit (sbcl-package->cl-source-package sbcl-clsql))
11218 (native-inputs
11219 `(("rt" ,cl-rt)))
11220 (inputs
11221 `(("mysql" ,mysql)
11222 ("postgresql" ,postgresql)
11223 ("sqlite" ,sqlite)
11224 ("zlib" ,zlib)))
11225 (propagated-inputs
11226 `(("cl-postgres" ,cl-postgres)
11227 ("cffi-uffi-compat" ,cl-cffi-uffi-compat)
11228 ("md5" ,cl-md5)
11229 ("uffi" ,cl-uffi)))
11230 (arguments
11231 `(#:phases
11232 ;; asdf-build-system/source has its own phases and does not inherit
11233 ;; from asdf-build-system/sbcl phases.
11234 (modify-phases %standard-phases/source
11235 (add-after 'unpack 'fix-permissions
11236 (lambda _
11237 (make-file-writable "doc/html.tar.gz")
11238 #t)))))))
11239
11240 (define-public sbcl-clsql-uffi
11241 (package
11242 (inherit sbcl-clsql)
11243 (name "sbcl-clsql-uffi")
11244 (inputs
11245 `(("cffi-uffi-compat" ,sbcl-cffi-uffi-compat)
11246 ("clsql" ,sbcl-clsql)
11247 ("uffi" ,sbcl-uffi)))
11248 (synopsis "UFFI helper functions for Common Lisp SQL interface library")))
11249
11250 (define-public sbcl-clsql-sqlite3
11251 (package
11252 (inherit sbcl-clsql)
11253 (name "sbcl-clsql-sqlite3")
11254 (inputs
11255 `(("clsql" ,sbcl-clsql)
11256 ("clsql-uffi" ,sbcl-clsql-uffi)
11257 ("sqlite" ,sqlite)))
11258 (arguments
11259 (substitute-keyword-arguments (package-arguments sbcl-clsql)
11260 ((#:phases phases '%standard-phases)
11261 `(modify-phases ,phases
11262 (add-after 'unpack 'fix-paths
11263 (lambda* (#:key inputs #:allow-other-keys)
11264 (substitute* "db-sqlite3/sqlite3-loader.lisp"
11265 (("libsqlite3")
11266 (string-append (assoc-ref inputs "sqlite")
11267 "/lib/libsqlite3")))
11268 #t))))))
11269 (synopsis "SQLite3 driver for Common Lisp SQL interface library")))
11270
11271 (define-public sbcl-clsql-postgresql
11272 (package
11273 (inherit sbcl-clsql)
11274 (name "sbcl-clsql-postgresql")
11275 (inputs
11276 `(("clsql" ,sbcl-clsql)
11277 ("clsql-uffi" ,sbcl-clsql-uffi)
11278 ("postgresql" ,postgresql)))
11279 (arguments
11280 (substitute-keyword-arguments (package-arguments sbcl-clsql)
11281 ((#:phases phases '%standard-phases)
11282 `(modify-phases ,phases
11283 (add-after 'unpack 'fix-paths
11284 (lambda* (#:key inputs #:allow-other-keys)
11285 (substitute* "db-postgresql/postgresql-loader.lisp"
11286 (("libpq")
11287 (string-append (assoc-ref inputs "postgresql")
11288 "/lib/libpq")))
11289 #t))))))
11290 (synopsis "PostgreSQL driver for Common Lisp SQL interface library")))
11291
11292 (define-public sbcl-clsql-postgresql-socket3
11293 (package
11294 (inherit sbcl-clsql)
11295 (name "sbcl-clsql-postgresql-socket3")
11296 (inputs
11297 `(("cl-postgres" ,sbcl-cl-postgres)
11298 ("clsql" ,sbcl-clsql)
11299 ("md5" ,sbcl-md5)))
11300 (arguments
11301 (substitute-keyword-arguments (package-arguments sbcl-clsql)
11302 ((#:phases phases '%standard-phases)
11303 `(modify-phases ,phases
11304 (add-after 'create-asd-file 'fix-asd-file
11305 (lambda* (#:key outputs #:allow-other-keys)
11306 (let* ((out (assoc-ref outputs "out"))
11307 (lib (string-append out "/lib/" (%lisp-type)))
11308 (asd (string-append lib "/clsql-postgresql-socket3.asd")))
11309 (substitute* asd
11310 (("CLSQL-POSTGRESQL-SOCKET-SYSTEM::")
11311 "")))
11312 #t))))))
11313 (synopsis "PostgreSQL driver for Common Lisp SQL interface library")))
11314
11315 (define-public sbcl-clsql-mysql
11316 (package
11317 (inherit sbcl-clsql)
11318 (name "sbcl-clsql-mysql")
11319 (inputs
11320 `(("mysql" ,mysql)
11321 ("sbcl-clsql" ,sbcl-clsql)
11322 ("sbcl-clsql-uffi" ,sbcl-clsql-uffi)
11323 ("zlib" ,zlib)))
11324 (arguments
11325 (substitute-keyword-arguments (package-arguments sbcl-clsql)
11326 ((#:phases phases '%standard-phases)
11327 `(modify-phases ,phases
11328 (add-after 'unpack 'fix-paths
11329 (lambda* (#:key inputs outputs #:allow-other-keys)
11330 (let ((lib (string-append "#p\""
11331 (assoc-ref outputs "out")
11332 "/lib/\"")))
11333 (substitute* "clsql-mysql.asd"
11334 (("#p\"/usr/lib/clsql/clsql_mysql\\.so\"")
11335 lib))
11336 (substitute* "db-mysql/mysql-loader.lisp"
11337 (("libmysqlclient" all)
11338 (string-append (assoc-ref inputs "mysql") "/lib/" all))
11339 (("clsql-mysql-system::\\*library-file-dir\\*")
11340 lib)))
11341 #t))
11342 (add-before 'build 'build-helper-library
11343 (lambda* (#:key inputs outputs #:allow-other-keys)
11344 (let* ((mysql (assoc-ref inputs "mysql"))
11345 (inc-dir (string-append mysql "/include/mysql"))
11346 (lib-dir (string-append mysql "/lib"))
11347 (shared-lib-dir (string-append (assoc-ref outputs "out")
11348 "/lib"))
11349 (shared-lib (string-append shared-lib-dir
11350 "/clsql_mysql.so")))
11351 (mkdir-p shared-lib-dir)
11352 (invoke "gcc" "-fPIC" "-shared"
11353 "-I" inc-dir
11354 "db-mysql/clsql_mysql.c"
11355 "-Wl,-soname=clsql_mysql"
11356 "-L" lib-dir "-lmysqlclient" "-lz"
11357 "-o" shared-lib)
11358 #t)))))))
11359 (synopsis "MySQL driver for Common Lisp SQL interface library")))
11360
11361 (define-public sbcl-sycamore
11362 (let ((commit "fd2820fec165ad514493426dea209728f64e6d18"))
11363 (package
11364 (name "sbcl-sycamore")
11365 (version "0.0.20120604")
11366 (source
11367 (origin
11368 (method git-fetch)
11369 (uri (git-reference
11370 (url "https://github.com/ndantam/sycamore/")
11371 (commit commit)))
11372 (file-name (git-file-name name version))
11373 (sha256
11374 (base32 "00bv1aj89q5vldmq92zp2364jq312zjq2mbd3iyz1s2b4widzhl7"))))
11375 (build-system asdf-build-system/sbcl)
11376 (arguments
11377 `(#:asd-file "src/sycamore.asd"))
11378 (inputs
11379 `(("alexandria" ,sbcl-alexandria)
11380 ("cl-ppcre" ,sbcl-cl-ppcre)))
11381 (synopsis "Purely functional data structure library in Common Lisp")
11382 (description
11383 "Sycamore is a fast, purely functional data structure library in Common Lisp.
11384 If features:
11385
11386 @itemize
11387 @item Fast, purely functional weight-balanced binary trees.
11388 @item Leaf nodes are simple-vectors, greatly reducing tree height.
11389 @item Interfaces for tree Sets and Maps (dictionaries).
11390 @item Ropes.
11391 @item Purely functional pairing heaps.
11392 @item Purely functional amortized queue.
11393 @end itemize\n")
11394 (home-page "http://ndantam.github.io/sycamore/")
11395 (license license:bsd-3))))
11396
11397 (define-public cl-sycamore
11398 (sbcl-package->cl-source-package sbcl-sycamore))
11399
11400 (define-public sbcl-trivial-package-local-nicknames
11401 (package
11402 (name "sbcl-trivial-package-local-nicknames")
11403 (version "0.2")
11404 (home-page "https://github.com/phoe/trivial-package-local-nicknames")
11405 (source
11406 (origin
11407 (method git-fetch)
11408 (uri (git-reference
11409 (url home-page)
11410 (commit "16b7ad4c2b120f50da65154191f468ea5598460e")))
11411 (file-name (git-file-name name version))
11412 (sha256
11413 (base32 "18qc27xkjzdcqrilpk3pm7djldwq5rm3ggd5h9cr8hqcd54i2fqg"))))
11414 (build-system asdf-build-system/sbcl)
11415 (synopsis "Common Lisp compatibility library for package local nicknames")
11416 (description
11417 "This library is a portable compatibility layer around package local nicknames (PLN).
11418 This was done so there is a portability library for the PLN API not included
11419 in DEFPACKAGE.")
11420 (license license:unlicense)))
11421
11422 (define-public cl-trivial-package-local-nicknames
11423 (sbcl-package->cl-source-package sbcl-trivial-package-local-nicknames))
11424
11425 (define-public sbcl-enchant
11426 (let ((commit "6af162a7bf10541cbcfcfa6513894900329713fa"))
11427 (package
11428 (name "sbcl-enchant")
11429 (version (git-version "0.0.0" "1" commit))
11430 (home-page "https://github.com/tlikonen/cl-enchant")
11431 (source
11432 (origin
11433 (method git-fetch)
11434 (uri (git-reference
11435 (url home-page)
11436 (commit commit)))
11437 (file-name (git-file-name name version))
11438 (sha256
11439 (base32 "19yh5ihirzi1d8xqy1cjqipzd6ly3245cfxa5s9xx496rryz0s01"))))
11440 (build-system asdf-build-system/sbcl)
11441 (inputs
11442 `(("enchant" ,enchant)
11443 ("cffi" ,sbcl-cffi)))
11444 (arguments
11445 `(#:phases
11446 (modify-phases %standard-phases
11447 (add-after 'unpack 'fix-paths
11448 (lambda* (#:key inputs #:allow-other-keys)
11449 (substitute* "load-enchant.lisp"
11450 (("libenchant")
11451 (string-append
11452 (assoc-ref inputs "enchant") "/lib/libenchant-2"))))))))
11453 (synopsis "Common Lisp interface for the Enchant spell-checker library")
11454 (description
11455 "Enchant is a Common Lisp interface for the Enchant spell-checker
11456 library. The Enchant library is a generic spell-checker library which uses
11457 other spell-checkers transparently as back-end. The library supports the
11458 multiple checkers, including Aspell and Hunspell.")
11459 (license license:public-domain))))
11460
11461 (define-public cl-enchant
11462 (sbcl-package->cl-source-package sbcl-enchant))
11463
11464 (define-public sbcl-cl-change-case
11465 (let ((commit "5ceff2a5f8bd845b6cb510c6364176b27a238fd3"))
11466 (package
11467 (name "sbcl-cl-change-case")
11468 (version (git-version "0.1.0" "1" commit))
11469 (home-page "https://github.com/rudolfochrist/cl-change-case")
11470 (source
11471 (origin
11472 (method git-fetch)
11473 (uri (git-reference
11474 (url home-page)
11475 (commit commit)))
11476 (file-name (git-file-name name version))
11477 (sha256
11478 (base32 "1afyglglk9z3yg8gylcl301bl2r8vq3sllyznzj9s5xi5gs6qyf2"))))
11479 (build-system asdf-build-system/sbcl)
11480 (inputs
11481 `(("cl-ppcre" ,sbcl-cl-ppcre)
11482 ("cl-ppcre-unicode" ,sbcl-cl-ppcre-unicode)))
11483 (native-inputs
11484 `(("fiveam" ,sbcl-fiveam)))
11485 (arguments
11486 '(;; FIXME: Test pass but phase fails with 'Component
11487 ;; "cl-change-case-test" not found, required by'.
11488 #:tests? #f
11489 #:test-asd-file "cl-change-case-test.asd"))
11490 (synopsis "Convert Common Lisp strings between camelCase, PascalCase and more")
11491 (description
11492 "@code{cl-change-case} is library to convert strings between camelCase,
11493 PascalCase, snake_case, param-case, CONSTANT_CASE and more.")
11494 (license license:llgpl))))
11495
11496 (define-public cl-change-case
11497 (sbcl-package->cl-source-package sbcl-cl-change-case))
11498
11499 (define-public sbcl-moptilities
11500 (let ((commit "a436f16b357c96b82397ec018ea469574c10dd41"))
11501 (package
11502 (name "sbcl-moptilities")
11503 (version (git-version "0.3.13" "1" commit))
11504 (home-page "https://github.com/gwkkwg/moptilities/")
11505 (source
11506 (origin
11507 (method git-fetch)
11508 (uri (git-reference
11509 (url home-page)
11510 (commit commit)))
11511 (file-name (git-file-name name version))
11512 (sha256
11513 (base32 "1q12bqjbj47lx98yim1kfnnhgfhkl80102fkgp9pdqxg0fp6g5fc"))))
11514 (build-system asdf-build-system/sbcl)
11515 (inputs
11516 `(("closer-mop" ,sbcl-closer-mop)))
11517 (native-inputs
11518 `(("lift" ,sbcl-lift)))
11519 (synopsis "Compatibility layer for Common Lisp MOP implementation differences")
11520 (description
11521 "MOP utilities provide a common interface between Lisps and make the
11522 MOP easier to use.")
11523 (license license:expat))))
11524
11525 (define-public cl-moptilities
11526 (sbcl-package->cl-source-package sbcl-moptilities))
11527
11528 (define-public sbcl-osicat
11529 (let ((commit "de0c18a367eedc857e1902a7319828af072a0d97"))
11530 (package
11531 (name "sbcl-osicat")
11532 (version (git-version "0.7.0" "1" commit))
11533 (home-page "http://www.common-lisp.net/project/osicat/")
11534 (source
11535 (origin
11536 (method git-fetch)
11537 (uri (git-reference
11538 (url "https://github.com/osicat/osicat")
11539 (commit commit)))
11540 (file-name (git-file-name name version))
11541 (sha256
11542 (base32 "15viw5pi5sa7qq9b4n2rr3dj2jkqr180rh9z1lh8w3rgl42i2adc"))))
11543 (build-system asdf-build-system/sbcl)
11544 (arguments
11545 `(#:phases
11546 (modify-phases %standard-phases
11547 ;; The cleanup phase moves files around but we need to keep the
11548 ;; directory structure for the grovel-generated library.
11549 (replace 'cleanup
11550 (lambda* (#:key outputs #:allow-other-keys)
11551 (let* ((out (assoc-ref outputs "out"))
11552 (lib (string-append out "/lib/sbcl/")))
11553 (delete-file-recursively (string-append lib "src"))
11554 (delete-file-recursively (string-append lib "tests"))
11555 (for-each delete-file
11556 (filter (lambda (file)
11557 (not (member (basename file) '("libosicat.so"))))
11558 (find-files (string-append lib "posix") ".*"))))
11559 #t)))))
11560 (inputs
11561 `(("alexandria" ,sbcl-alexandria)
11562 ("cffi" ,sbcl-cffi)
11563 ("trivial-features" ,sbcl-trivial-features)))
11564 (native-inputs
11565 `(("cffi-grovel" ,sbcl-cffi-grovel)
11566 ("rt" ,sbcl-rt)))
11567 (synopsis "Operating system interface for Common Lisp")
11568 (description
11569 "Osicat is a lightweight operating system interface for Common Lisp on
11570 Unix-platforms. It is not a POSIX-style API, but rather a simple lispy
11571 accompaniment to the standard ANSI facilities.")
11572 (license license:expat))))
11573
11574 (define-public cl-osicat
11575 (sbcl-package->cl-source-package sbcl-osicat))