gnu: sbcl-unix-opts: Fix grammar of "allows to precisely control" to
[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 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 glib)
57 #:use-module (gnu packages gtk)
58 #:use-module (gnu packages imagemagick)
59 #:use-module (gnu packages libevent)
60 #:use-module (gnu packages libffi)
61 #:use-module (gnu packages lisp)
62 #:use-module (gnu packages maths)
63 #:use-module (gnu packages networking)
64 #:use-module (gnu packages pkg-config)
65 #:use-module (gnu packages python)
66 #:use-module (gnu packages python-xyz)
67 #:use-module (gnu packages sqlite)
68 #:use-module (gnu packages tcl)
69 #:use-module (gnu packages tls)
70 #:use-module (gnu packages webkit)
71 #:use-module (gnu packages xdisorg)
72 #:use-module (ice-9 match)
73 #:use-module (srfi srfi-19))
74
75 (define-public sbcl-alexandria
76 (let ((revision "1")
77 (commit "3b849bc0116ea70f215ee6b2fbf354e862aaa9dd"))
78 (package
79 (name "sbcl-alexandria")
80 (version (git-version "1.0.0" revision commit))
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 "04amwvx2vl691f0plcfbqqwxgib9zimih7jrn5zl7mbwvrxy022b"))
90 (file-name (git-file-name name version))))
91 (build-system asdf-build-system/sbcl)
92 (native-inputs
93 `(("rt" ,sbcl-rt)))
94 (synopsis "Collection of portable utilities for Common Lisp")
95 (description
96 "Alexandria is a collection of portable utilities. It does not contain
97 conceptual extensions to Common Lisp. It is conservative in scope, and
98 portable between implementations.")
99 (home-page "https://common-lisp.net/project/alexandria/")
100 (license license:public-domain))))
101
102 (define-public cl-alexandria
103 (sbcl-package->cl-source-package sbcl-alexandria))
104
105 (define-public ecl-alexandria
106 (sbcl-package->ecl-package sbcl-alexandria))
107
108 (define-public sbcl-net.didierverna.asdf-flv
109 (package
110 (name "sbcl-net.didierverna.asdf-flv")
111 (version "2.1")
112 (source
113 (origin
114 (method git-fetch)
115 (uri (git-reference
116 (url "https://github.com/didierverna/asdf-flv")
117 (commit (string-append "version-" version))))
118 (file-name (git-file-name "asdf-flv" version))
119 (sha256
120 (base32 "1fi2y4baxan103jbg4idjddzihy03kwnj2mzbwrknw4d4x7xlgwj"))))
121 (build-system asdf-build-system/sbcl)
122 (synopsis "Common Lisp ASDF extension to provide support for file-local variables")
123 (description "ASDF-FLV provides support for file-local variables through
124 ASDF. A file-local variable behaves like @code{*PACKAGE*} and
125 @code{*READTABLE*} with respect to @code{LOAD} and @code{COMPILE-FILE}: a new
126 dynamic binding is created before processing the file, so that any
127 modification to the variable becomes essentially file-local.
128
129 In order to make one or several variables file-local, use the macros
130 @code{SET-FILE-LOCAL-VARIABLE(S)}.")
131 (home-page "https://www.lrde.epita.fr/~didier/software/lisp/misc.php#asdf-flv")
132 (license (license:non-copyleft
133 "https://www.gnu.org/prep/maintain/html_node/License-Notices-for-Other-Files.html"
134 "GNU All-Permissive License"))))
135
136 (define-public cl-net.didierverna.asdf-flv
137 (sbcl-package->cl-source-package sbcl-net.didierverna.asdf-flv))
138
139 (define-public ecl-net.didierverna.asdf-flv
140 (sbcl-package->ecl-package sbcl-net.didierverna.asdf-flv))
141
142 (define-public sbcl-fiveam
143 (package
144 (name "sbcl-fiveam")
145 (version "1.4.1")
146 (source
147 (origin
148 (method git-fetch)
149 (uri (git-reference
150 (url "https://github.com/sionescu/fiveam.git")
151 (commit (string-append "v" version))))
152 (file-name (git-file-name "fiveam" version))
153 (sha256
154 (base32 "1q3d38pwafnwnw42clq0f8g5xw7pbzr287jl9jsqmb1vb0n1vrli"))))
155 (inputs
156 `(("alexandria" ,sbcl-alexandria)
157 ("net.didierverna.asdf-flv" ,sbcl-net.didierverna.asdf-flv)
158 ("trivial-backtrace" ,sbcl-trivial-backtrace)))
159 (build-system asdf-build-system/sbcl)
160 (synopsis "Common Lisp testing framework")
161 (description "FiveAM is a simple (as far as writing and running tests
162 goes) regression testing framework. It has been designed with Common Lisp's
163 interactive development model in mind.")
164 (home-page "https://common-lisp.net/project/fiveam/")
165 (license license:bsd-3)))
166
167 (define-public cl-fiveam
168 (sbcl-package->cl-source-package sbcl-fiveam))
169
170 (define-public ecl-fiveam
171 (sbcl-package->ecl-package sbcl-fiveam))
172
173 (define-public sbcl-bordeaux-threads
174 (package
175 (name "sbcl-bordeaux-threads")
176 (version "0.8.7")
177 (source (origin
178 (method git-fetch)
179 (uri (git-reference
180 (url "https://github.com/sionescu/bordeaux-threads.git")
181 (commit (string-append "v" version))))
182 (sha256
183 (base32 "1whpfmyxp2fsw6viqj45fqgsifgr534c575bfh5vaqw5m84b6alp"))
184 (file-name
185 (git-file-name "bordeaux-threads" version))))
186 (inputs `(("alexandria" ,sbcl-alexandria)))
187 (native-inputs `(("fiveam" ,sbcl-fiveam)))
188 (build-system asdf-build-system/sbcl)
189 (synopsis "Portable shared-state concurrency library for Common Lisp")
190 (description "BORDEAUX-THREADS is a proposed standard for a minimal
191 MP/Threading interface. It is similar to the CLIM-SYS threading and lock
192 support.")
193 (home-page "https://common-lisp.net/project/bordeaux-threads/")
194 (license license:x11)))
195
196 (define-public cl-bordeaux-threads
197 (sbcl-package->cl-source-package sbcl-bordeaux-threads))
198
199 (define-public ecl-bordeaux-threads
200 (sbcl-package->ecl-package sbcl-bordeaux-threads))
201
202 (define-public sbcl-trivial-gray-streams
203 (let ((revision "1")
204 (commit "0483ade330508b4b2edeabdb47d16ec9437ee1cb"))
205 (package
206 (name "sbcl-trivial-gray-streams")
207 (version (string-append "0.0.0-" revision "." (string-take commit 7)))
208 (source
209 (origin
210 (method git-fetch)
211 (uri
212 (git-reference
213 (url "https://github.com/trivial-gray-streams/trivial-gray-streams.git")
214 (commit commit)))
215 (sha256
216 (base32 "0m3rpf2x0zmdk3nf1qfa01j6a55vj7gkwhyw78qslcgbjlgh8p4d"))
217 (file-name
218 (string-append "trivial-gray-streams-" version "-checkout"))))
219 (build-system asdf-build-system/sbcl)
220 (synopsis "Compatibility layer for Gray streams implementations")
221 (description "Gray streams is an interface proposed for inclusion with
222 ANSI CL by David N. Gray. The proposal did not make it into ANSI CL, but most
223 popular CL implementations implement it. This package provides an extremely
224 thin compatibility layer for gray streams.")
225 (home-page "https://www.cliki.net/trivial-gray-streams")
226 (license license:x11))))
227
228 (define-public cl-trivial-gray-streams
229 (sbcl-package->cl-source-package sbcl-trivial-gray-streams))
230
231 (define-public ecl-trivial-gray-streams
232 (sbcl-package->ecl-package sbcl-trivial-gray-streams))
233
234 (define-public sbcl-fiasco
235 (let ((commit "d62f7558b21addc89f87e306f65d7f760632655f")
236 (revision "1"))
237 (package
238 (name "sbcl-fiasco")
239 (version (git-version "0.0.1" revision commit))
240 (source
241 (origin
242 (method git-fetch)
243 (uri (git-reference
244 (url "https://github.com/joaotavora/fiasco.git")
245 (commit commit)))
246 (file-name (git-file-name "fiasco" version))
247 (sha256
248 (base32
249 "1zwxs3d6iswayavcmb49z2892xhym7n556d8dnmvalc32pm9bkjh"))))
250 (build-system asdf-build-system/sbcl)
251 (inputs
252 `(("alexandria" ,sbcl-alexandria)
253 ("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
254 (synopsis "Simple and powerful test framework for Common Lisp")
255 (description "A Common Lisp test framework that treasures your failures,
256 logical continuation of Stefil. It focuses on interactive debugging.")
257 (home-page "https://github.com/joaotavora/fiasco")
258 ;; LICENCE specifies this is public-domain unless the legislation
259 ;; doesn't allow or recognize it. In that case it falls back to a
260 ;; permissive licence.
261 (license (list license:public-domain
262 (license:x11-style "file://LICENCE"))))))
263
264 (define-public cl-fiasco
265 (sbcl-package->cl-source-package sbcl-fiasco))
266
267 (define-public ecl-fiasco
268 (sbcl-package->ecl-package sbcl-fiasco))
269
270 (define-public sbcl-flexi-streams
271 (package
272 (name "sbcl-flexi-streams")
273 (version "1.0.18")
274 (source
275 (origin
276 (method git-fetch)
277 (uri (git-reference
278 (url "https://github.com/edicl/flexi-streams.git")
279 (commit (string-append "v" version))))
280 (file-name (git-file-name "flexi-streams" version))
281 (sha256
282 (base32 "0bjv7fd2acknidc5dyi3h85pn10krxv5jyxs1xg8jya2rlfv7f1j"))))
283 (build-system asdf-build-system/sbcl)
284 (arguments
285 `(#:phases
286 (modify-phases %standard-phases
287 (add-after 'unpack 'make-git-checkout-writable
288 (lambda _
289 (for-each make-file-writable (find-files "."))
290 #t)))))
291 (inputs `(("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
292 (synopsis "Implementation of virtual bivalent streams for Common Lisp")
293 (description "Flexi-streams is an implementation of \"virtual\" bivalent
294 streams that can be layered atop real binary or bivalent streams and that can
295 be used to read and write character data in various single- or multi-octet
296 encodings which can be changed on the fly. It also supplies in-memory binary
297 streams which are similar to string streams.")
298 (home-page "http://weitz.de/flexi-streams/")
299 (license license:bsd-3)))
300
301 (define-public cl-flexi-streams
302 (sbcl-package->cl-source-package sbcl-flexi-streams))
303
304 (define-public ecl-flexi-streams
305 (sbcl-package->ecl-package sbcl-flexi-streams))
306
307 (define-public sbcl-cl-ppcre
308 (package
309 (name "sbcl-cl-ppcre")
310 (version "2.1.1")
311 (source
312 (origin
313 (method git-fetch)
314 (uri (git-reference
315 (url "https://github.com/edicl/cl-ppcre.git")
316 (commit (string-append "v" version))))
317 (file-name (git-file-name "cl-ppcre" version))
318 (sha256
319 (base32 "0dwvr29diqzcg5n6jvbk2rnd90i05l7n828hhw99khmqd0kz7xsi"))))
320 (build-system asdf-build-system/sbcl)
321 (native-inputs `(("flexi-streams" ,sbcl-flexi-streams)))
322 (synopsis "Portable regular expression library for Common Lisp")
323 (description "CL-PPCRE is a portable regular expression library for Common
324 Lisp, which is compatible with perl. It is pretty fast, thread-safe, and
325 compatible with ANSI-compliant Common Lisp implementations.")
326 (home-page "http://weitz.de/cl-ppcre/")
327 (license license:bsd-2)))
328
329 (define-public cl-ppcre
330 (sbcl-package->cl-source-package sbcl-cl-ppcre))
331
332 (define-public ecl-cl-ppcre
333 (sbcl-package->ecl-package sbcl-cl-ppcre))
334
335 (define sbcl-cl-unicode-base
336 (package
337 (name "sbcl-cl-unicode-base")
338 (version "0.1.6")
339 (source (origin
340 (method git-fetch)
341 (uri (git-reference
342 (url "https://github.com/edicl/cl-unicode.git")
343 (commit (string-append "v" version))))
344 (file-name (git-file-name name version))
345 (sha256
346 (base32
347 "0ykx2s9lqfl74p1px0ik3l2izd1fc9jd1b4ra68s5x34rvjy0hza"))))
348 (build-system asdf-build-system/sbcl)
349 (arguments
350 '(#:asd-file "cl-unicode.asd"
351 #:asd-system-name "cl-unicode/base"))
352 (inputs
353 `(("cl-ppcre" ,sbcl-cl-ppcre)))
354 (home-page "http://weitz.de/cl-unicode/")
355 (synopsis "Portable Unicode library for Common Lisp")
356 (description "CL-UNICODE is a portable Unicode library Common Lisp, which
357 is compatible with perl. It is pretty fast, thread-safe, and compatible with
358 ANSI-compliant Common Lisp implementations.")
359 (license license:bsd-2)))
360
361 (define-public sbcl-cl-unicode
362 (package
363 (inherit sbcl-cl-unicode-base)
364 (name "sbcl-cl-unicode")
365 (inputs
366 `(("cl-unicode/base" ,sbcl-cl-unicode-base)
367 ,@(package-inputs sbcl-cl-unicode-base)))
368 (native-inputs
369 `(("flexi-streams" ,sbcl-flexi-streams)))
370 (arguments '())))
371
372 (define-public ecl-cl-unicode
373 (sbcl-package->ecl-package sbcl-cl-unicode))
374
375 (define-public cl-unicode
376 (sbcl-package->cl-source-package sbcl-cl-unicode))
377
378 (define-public sbcl-zpb-ttf
379 (package
380 (name "sbcl-zpb-ttf")
381 (version "1.0.3")
382 (source
383 (origin
384 (method git-fetch)
385 (uri (git-reference
386 (url "https://github.com/xach/zpb-ttf.git")
387 (commit (string-append "release-" version))))
388 (file-name (git-file-name name version))
389 (sha256
390 (base32
391 "1wh66vjijzqlydnrihynpwp6796917xwrh0i9li93c17kyxa74ih"))))
392 (build-system asdf-build-system/sbcl)
393 (home-page "https://github.com/xach/zpb-ttf")
394 (synopsis "TrueType font file access for Common Lisp")
395 (description
396 "ZPB-TTF is a TrueType font file parser that provides an interface for
397 reading typographic metrics, glyph outlines, and other information from the
398 file.")
399 (license license:bsd-2)))
400
401 (define-public ecl-zpb-ttf
402 (sbcl-package->ecl-package sbcl-zpb-ttf))
403
404 (define-public cl-zpb-ttf
405 (sbcl-package->cl-source-package sbcl-zpb-ttf))
406
407 (define-public sbcl-cl-aa
408 (package
409 (name "sbcl-cl-aa")
410 (version "0.1.5")
411 (source
412 (origin
413 (method url-fetch)
414 (uri (string-append "http://projects.tuxee.net/cl-vectors/"
415 "files/cl-vectors-" version ".tar.gz"))
416 (sha256
417 (base32
418 "04lhwi0kq8pkwhgd885pk80m1cp9sfvjjn5zj70s1dnckibhdmqh"))))
419 (build-system asdf-build-system/sbcl)
420 (arguments '(#:asd-file "cl-aa.asd"))
421 (home-page "http://projects.tuxee.net/cl-vectors/")
422 (synopsis "Polygon rasterizer")
423 (description
424 "This is a Common Lisp library implementing the AA polygon rasterization
425 algorithm from the @url{http://antigrain.com, Antigrain} project.")
426 (license license:expat)))
427
428 (define-public ecl-cl-aa
429 (sbcl-package->ecl-package sbcl-cl-aa))
430
431 (define-public cl-aa
432 (sbcl-package->cl-source-package sbcl-cl-aa))
433
434 (define-public sbcl-cl-paths
435 (package
436 (inherit sbcl-cl-aa)
437 (name "sbcl-cl-paths")
438 (arguments '(#:asd-file "cl-paths.asd"))
439 (synopsis "Facilities to create and manipulate vectorial paths")
440 (description
441 "This package provides facilities to create and manipulate vectorial
442 paths.")))
443
444 (define-public ecl-cl-paths
445 (sbcl-package->ecl-package sbcl-cl-paths))
446
447 (define-public cl-paths
448 (sbcl-package->cl-source-package sbcl-cl-paths))
449
450 (define-public sbcl-cl-paths-ttf
451 (package
452 (inherit sbcl-cl-aa)
453 (name "sbcl-cl-paths-ttf")
454 (arguments '(#:asd-file "cl-paths-ttf.asd"))
455 (inputs
456 `(("cl-paths" ,sbcl-cl-paths)
457 ("zpb-ttf" ,sbcl-zpb-ttf)))
458 (synopsis "Facilities to create and manipulate vectorial paths")
459 (description
460 "This package provides facilities to create and manipulate vectorial
461 paths.")))
462
463 (define-public ecl-cl-paths-ttf
464 (sbcl-package->ecl-package sbcl-cl-paths-ttf))
465
466 (define-public cl-paths-ttf
467 (sbcl-package->cl-source-package sbcl-cl-paths-ttf))
468
469 (define-public sbcl-cl-vectors
470 (package
471 (inherit sbcl-cl-aa)
472 (name "sbcl-cl-vectors")
473 (arguments '(#:asd-file "cl-vectors.asd"))
474 (inputs
475 `(("cl-aa" ,sbcl-cl-aa)
476 ("cl-paths" ,sbcl-cl-paths)))
477 (synopsis "Create, transform and render anti-aliased vectorial paths")
478 (description
479 "This is a pure Common Lisp library to create, transform and render
480 anti-aliased vectorial paths.")))
481
482 (define-public ecl-cl-vectors
483 (sbcl-package->ecl-package sbcl-cl-vectors))
484
485 (define-public cl-vectors
486 (sbcl-package->cl-source-package sbcl-cl-vectors))
487
488 (define-public sbcl-spatial-trees
489 ;; There have been no releases.
490 (let ((commit "81fdad0a0bf109c80a53cc96eca2e093823400ba")
491 (revision "1"))
492 (package
493 (name "sbcl-spatial-trees")
494 (version (git-version "0" revision commit))
495 (source
496 (origin
497 (method git-fetch)
498 (uri (git-reference
499 (url "https://github.com/rpav/spatial-trees.git")
500 (commit commit)))
501 (file-name (git-file-name name version))
502 (sha256
503 (base32
504 "11rhc6h501dwcik2igkszz7b9n515cr99m5pjh4r2qfwgiri6ysa"))))
505 (build-system asdf-build-system/sbcl)
506 (arguments
507 '(#:tests? #f ; spatial-trees.test requires spatial-trees.nns
508 #:asd-file "spatial-trees.asd"
509 #:test-asd-file "spatial-trees.test.asd"))
510 (native-inputs
511 `(("fiveam" ,sbcl-fiveam)))
512 (home-page "https://github.com/rpav/spatial-trees")
513 (synopsis "Dynamic index data structures for spatially-extended data")
514 (description
515 "Spatial-trees is a set of dynamic index data structures for
516 spatially-extended data.")
517 (license license:bsd-3))))
518
519 (define-public ecl-spatial-trees
520 (sbcl-package->ecl-package sbcl-spatial-trees))
521
522 (define-public cl-spatial-trees
523 (sbcl-package->cl-source-package sbcl-spatial-trees))
524
525 (define-public sbcl-flexichain
526 ;; There are no releases.
527 (let ((commit "13d2a6c505ed0abfcd4c4ec7d7145059b06855d6")
528 (revision "1"))
529 (package
530 (name "sbcl-flexichain")
531 (version "1.5.1")
532 (source
533 (origin
534 (method git-fetch)
535 (uri (git-reference
536 (url "https://github.com/robert-strandh/Flexichain.git")
537 (commit commit)))
538 (file-name (git-file-name name version))
539 (sha256
540 (base32
541 "0pfyvhsfbjd2sjb30grfs52r51a428xglv7bwydvpg2lc117qimg"))))
542 (build-system asdf-build-system/sbcl)
543 (home-page "https://github.com/robert-strandh/Flexichain.git")
544 (synopsis "Dynamically add elements to or remove them from sequences")
545 (description
546 "This package provides an implementation of the flexichain protocol,
547 allowing client code to dynamically add elements to, and delete elements from
548 a sequence (or chain) of such elements.")
549 (license license:lgpl2.1+))))
550
551 (define-public ecl-flexichain
552 (sbcl-package->ecl-package sbcl-flexichain))
553
554 (define-public cl-flexichain
555 (sbcl-package->cl-source-package sbcl-flexichain))
556
557 (define-public sbcl-cl-pdf
558 ;; There are no releases
559 (let ((commit "752e337e6d6fc206f09d091a982e7f8e5c404e4e")
560 (revision "1"))
561 (package
562 (name "sbcl-cl-pdf")
563 (version (git-version "0" revision commit))
564 (source
565 (origin
566 (method git-fetch)
567 (uri (git-reference
568 (url "https://github.com/mbattyani/cl-pdf.git")
569 (commit commit)))
570 (file-name (git-file-name name version))
571 (sha256
572 (base32
573 "1cg3k3m3r11ipb8j008y8ipynj97l3xjlpi2knqc9ndmx4r3kb1r"))))
574 (build-system asdf-build-system/sbcl)
575 (inputs
576 `(("iterate" ,sbcl-iterate)
577 ("zpb-ttf" ,sbcl-zpb-ttf)))
578 (home-page "https://github.com/mbattyani/cl-pdf")
579 (synopsis "Common Lisp library for generating PDF files")
580 (description
581 "CL-PDF is a cross-platform Common Lisp library for generating PDF
582 files.")
583 (license license:bsd-2))))
584
585 (define-public ecl-cl-pdf
586 (sbcl-package->ecl-package sbcl-cl-pdf))
587
588 (define-public cl-pdf
589 (sbcl-package->cl-source-package sbcl-cl-pdf))
590
591 (define-public sbcl-clx
592 (package
593 (name "sbcl-clx")
594 (version "0.7.5")
595 (source
596 (origin
597 (method git-fetch)
598 (uri
599 (git-reference
600 (url "https://github.com/sharplispers/clx.git")
601 (commit version)))
602 (sha256
603 (base32
604 "1vi67z9hpj5rr4xcmfbfwzmlcc0ah7hzhrmfid6lqdkva238v2wf"))
605 (file-name (string-append "clx-" version))))
606 (build-system asdf-build-system/sbcl)
607 (native-inputs
608 `(("fiasco" ,sbcl-fiasco)))
609 (home-page "https://www.cliki.net/portable-clx")
610 (synopsis "X11 client library for Common Lisp")
611 (description "CLX is an X11 client library for Common Lisp. The code was
612 originally taken from a CMUCL distribution, was modified somewhat in order to
613 make it compile and run under SBCL, then a selection of patches were added
614 from other CLXes around the net.")
615 (license license:x11)))
616
617 (define-public cl-clx
618 (sbcl-package->cl-source-package sbcl-clx))
619
620 (define-public ecl-clx
621 (sbcl-package->ecl-package sbcl-clx))
622
623 (define-public sbcl-clx-truetype
624 (let ((commit "c6e10a918d46632324d5863a8ed067a83fc26de8")
625 (revision "1"))
626 (package
627 (name "sbcl-clx-truetype")
628 (version (git-version "0.0.1" revision commit))
629 (source
630 (origin
631 (method git-fetch)
632 (uri (git-reference
633 (url "https://github.com/l04m33/clx-truetype")
634 (commit commit)))
635 (file-name (git-file-name name version))
636 (sha256
637 (base32
638 "079hyp92cjkdfn6bhkxsrwnibiqbz4y4af6nl31lzw6nm91j5j37"))
639 (modules '((guix build utils)))
640 (snippet
641 '(begin
642 (substitute* "package.lisp"
643 ((":export") ":export\n :+font-cache-filename+"))
644 #t))))
645 (build-system asdf-build-system/sbcl)
646 (inputs
647 `(("clx" ,sbcl-clx)
648 ("zpb-ttf" ,sbcl-zpb-ttf)
649 ("cl-vectors" ,sbcl-cl-vectors)
650 ("cl-paths-ttf" ,sbcl-cl-paths-ttf)
651 ("cl-fad" ,sbcl-cl-fad)
652 ("cl-store" ,sbcl-cl-store)
653 ("trivial-features" ,sbcl-trivial-features)))
654 (home-page "https://github.com/l04m33/clx-truetype")
655 (synopsis "Antialiased TrueType font rendering using CLX and XRender")
656 (description "CLX-TrueType is pure common lisp solution for
657 antialiased TrueType font rendering using CLX and XRender extension.")
658 (license license:expat))))
659
660 (define-public sbcl-cl-ppcre-unicode
661 (package (inherit sbcl-cl-ppcre)
662 (name "sbcl-cl-ppcre-unicode")
663 (arguments
664 `(#:tests? #f ; tests fail with "Component :CL-PPCRE-TEST not found"
665 #:asd-file "cl-ppcre-unicode.asd"))
666 (inputs
667 `(("sbcl-cl-ppcre" ,sbcl-cl-ppcre)
668 ("sbcl-cl-unicode" ,sbcl-cl-unicode)))))
669
670 (define-public ecl-cl-ppcre-unicode
671 (sbcl-package->ecl-package sbcl-cl-ppcre-unicode))
672
673 ;; The slynk that users expect to install includes all of slynk's contrib
674 ;; modules. Therefore, we build the base module and all contribs first; then
675 ;; we expose the union of these as `sbcl-slynk'. The following variable
676 ;; describes the base module.
677 (define sbcl-slynk-boot0
678 (let ((revision "2")
679 (commit "cbf84c36c4eca8b032e3fd16177a7bc02df3ec4c"))
680 (package
681 (name "sbcl-slynk-boot0")
682 (version (string-append "1.0.0-beta-" revision "." (string-take commit 7)))
683 (source
684 (origin
685 (method git-fetch)
686 (uri
687 (git-reference
688 (url "https://github.com/joaotavora/sly.git")
689 (commit commit)))
690 (sha256
691 (base32 "13dyhsravn591p7g6is01mp2ynzjnnj7pwgi57r6xqmd4611y9vh"))
692 (file-name (string-append "slynk-" version "-checkout"))
693 (modules '((guix build utils)
694 (ice-9 ftw)))
695 (snippet
696 '(begin
697 ;; Move the contribs into the main source directory for easier
698 ;; access
699 (substitute* "slynk/slynk.asd"
700 (("\\.\\./contrib")
701 "contrib")
702 (("\\(defsystem :slynk/util")
703 "(defsystem :slynk/util :depends-on (:slynk)")
704 ((":depends-on \\(:slynk :slynk/util\\)")
705 ":depends-on (:slynk :slynk-util)"))
706 (substitute* "contrib/slynk-trace-dialog.lisp"
707 (("\\(slynk::reset-inspector\\)") ; Causes problems on load
708 "nil"))
709 (substitute* "contrib/slynk-profiler.lisp"
710 (("slynk:to-line")
711 "slynk-pprint-to-line"))
712 (substitute* "contrib/slynk-fancy-inspector.lisp"
713 (("slynk/util") "slynk-util")
714 ((":compile-toplevel :load-toplevel") ""))
715 (rename-file "contrib" "slynk/contrib")
716 ;; Move slynk's contents into the base directory for easier
717 ;; access
718 (for-each (lambda (file)
719 (unless (string-prefix? "." file)
720 (rename-file (string-append "slynk/" file)
721 (string-append "./" (basename file)))))
722 (scandir "slynk"))
723 #t))))
724 (build-system asdf-build-system/sbcl)
725 (arguments
726 `(#:tests? #f ; No test suite
727 #:asd-system-name "slynk"))
728 (synopsis "Common Lisp IDE for Emacs")
729 (description "SLY is a fork of SLIME, an IDE backend for Common Lisp.
730 It also features a completely redesigned REPL based on Emacs's own
731 full-featured comint.el, live code annotations, and a consistent interactive
732 button interface. Everything can be copied to the REPL. One can create
733 multiple inspectors with independent history.")
734 (home-page "https://github.com/joaotavora/sly")
735 (license license:public-domain)
736 (properties `((cl-source-variant . ,(delay cl-slynk)))))))
737
738 (define-public cl-slynk
739 (package
740 (inherit (sbcl-package->cl-source-package sbcl-slynk-boot0))
741 (name "cl-slynk")))
742
743 (define ecl-slynk-boot0
744 (sbcl-package->ecl-package sbcl-slynk-boot0))
745
746 (define sbcl-slynk-arglists
747 (package
748 (inherit sbcl-slynk-boot0)
749 (name "sbcl-slynk-arglists")
750 (inputs `(("slynk" ,sbcl-slynk-boot0)))
751 (arguments
752 (substitute-keyword-arguments (package-arguments sbcl-slynk-boot0)
753 ((#:asd-file _ "") "slynk.asd")
754 ((#:asd-system-name _ #f) "slynk/arglists")))))
755
756 (define ecl-slynk-arglists
757 (sbcl-package->ecl-package sbcl-slynk-arglists))
758
759 (define sbcl-slynk-util
760 (package
761 (inherit sbcl-slynk-boot0)
762 (name "sbcl-slynk-util")
763 (inputs `(("slynk" ,sbcl-slynk-boot0)))
764 (arguments
765 (substitute-keyword-arguments (package-arguments sbcl-slynk-boot0)
766 ((#:asd-file _ "") "slynk.asd")
767 ((#:asd-system-name _ #f) "slynk/util")))))
768
769 (define ecl-slynk-util
770 (sbcl-package->ecl-package sbcl-slynk-util))
771
772 (define sbcl-slynk-fancy-inspector
773 (package
774 (inherit sbcl-slynk-arglists)
775 (name "sbcl-slynk-fancy-inspector")
776 (inputs `(("slynk-util" ,sbcl-slynk-util)
777 ,@(package-inputs sbcl-slynk-arglists)))
778 (arguments
779 (substitute-keyword-arguments (package-arguments sbcl-slynk-arglists)
780 ((#:asd-system-name _ #f) "slynk/fancy-inspector")))))
781
782 (define ecl-slynk-fancy-inspector
783 (sbcl-package->ecl-package sbcl-slynk-fancy-inspector))
784
785 (define sbcl-slynk-package-fu
786 (package
787 (inherit sbcl-slynk-arglists)
788 (name "sbcl-slynk-package-fu")
789 (arguments
790 (substitute-keyword-arguments (package-arguments sbcl-slynk-arglists)
791 ((#:asd-system-name _ #f) "slynk/package-fu")))))
792
793 (define ecl-slynk-package-fu
794 (sbcl-package->ecl-package sbcl-slynk-package-fu))
795
796 (define sbcl-slynk-mrepl
797 (package
798 (inherit sbcl-slynk-fancy-inspector)
799 (name "sbcl-slynk-mrepl")
800 (arguments
801 (substitute-keyword-arguments (package-arguments sbcl-slynk-arglists)
802 ((#:asd-system-name _ #f) "slynk/mrepl")))))
803
804 (define ecl-slynk-mrepl
805 (sbcl-package->ecl-package sbcl-slynk-mrepl))
806
807 (define sbcl-slynk-trace-dialog
808 (package
809 (inherit sbcl-slynk-arglists)
810 (name "sbcl-slynk-trace-dialog")
811 (arguments
812 (substitute-keyword-arguments (package-arguments sbcl-slynk-arglists)
813 ((#:asd-system-name _ #f) "slynk/trace-dialog")))))
814
815 (define ecl-slynk-trace-dialog
816 (sbcl-package->ecl-package sbcl-slynk-trace-dialog))
817
818 (define sbcl-slynk-profiler
819 (package
820 (inherit sbcl-slynk-arglists)
821 (name "sbcl-slynk-profiler")
822 (arguments
823 (substitute-keyword-arguments (package-arguments sbcl-slynk-arglists)
824 ((#:asd-system-name _ #f) "slynk/profiler")))))
825
826 (define ecl-slynk-profiler
827 (sbcl-package->ecl-package sbcl-slynk-profiler))
828
829 (define sbcl-slynk-stickers
830 (package
831 (inherit sbcl-slynk-arglists)
832 (name "sbcl-slynk-stickers")
833 (arguments
834 (substitute-keyword-arguments (package-arguments sbcl-slynk-arglists)
835 ((#:asd-system-name _ #f) "slynk/stickers")))))
836
837 (define ecl-slynk-stickers
838 (sbcl-package->ecl-package sbcl-slynk-stickers))
839
840 (define sbcl-slynk-indentation
841 (package
842 (inherit sbcl-slynk-arglists)
843 (name "sbcl-slynk-indentation")
844 (arguments
845 (substitute-keyword-arguments (package-arguments sbcl-slynk-arglists)
846 ((#:asd-system-name _ #f) "slynk/indentation")))))
847
848 (define ecl-slynk-indentation
849 (sbcl-package->ecl-package sbcl-slynk-indentation))
850
851 (define sbcl-slynk-retro
852 (package
853 (inherit sbcl-slynk-arglists)
854 (name "sbcl-slynk-retro")
855 (arguments
856 (substitute-keyword-arguments (package-arguments sbcl-slynk-arglists)
857 ((#:asd-system-name _ #f) "slynk/retro")))))
858
859 (define ecl-slynk-retro
860 (sbcl-package->ecl-package sbcl-slynk-retro))
861
862 (define slynk-systems
863 '("slynk"
864 "slynk-util"
865 "slynk-arglists"
866 "slynk-fancy-inspector"
867 "slynk-package-fu"
868 "slynk-mrepl"
869 "slynk-profiler"
870 "slynk-trace-dialog"
871 "slynk-stickers"
872 "slynk-indentation"
873 "slynk-retro"))
874
875 (define-public sbcl-slynk
876 (package
877 (inherit sbcl-slynk-boot0)
878 (name "sbcl-slynk")
879 (inputs
880 `(("slynk" ,sbcl-slynk-boot0)
881 ("slynk-util" ,sbcl-slynk-util)
882 ("slynk-arglists" ,sbcl-slynk-arglists)
883 ("slynk-fancy-inspector" ,sbcl-slynk-fancy-inspector)
884 ("slynk-package-fu" ,sbcl-slynk-package-fu)
885 ("slynk-mrepl" ,sbcl-slynk-mrepl)
886 ("slynk-profiler" ,sbcl-slynk-profiler)
887 ("slynk-trace-dialog" ,sbcl-slynk-trace-dialog)
888 ("slynk-stickers" ,sbcl-slynk-stickers)
889 ("slynk-indentation" ,sbcl-slynk-indentation)
890 ("slynk-retro" ,sbcl-slynk-retro)))
891 (native-inputs `(("sbcl" ,sbcl)))
892 (build-system trivial-build-system)
893 (source #f)
894 (outputs '("out" "image"))
895 (arguments
896 `(#:modules ((guix build union)
897 (guix build utils)
898 (guix build lisp-utils))
899 #:builder
900 (begin
901 (use-modules (ice-9 match)
902 (srfi srfi-1)
903 (guix build union)
904 (guix build lisp-utils))
905
906 (union-build
907 (assoc-ref %outputs "out")
908 (filter-map
909 (match-lambda
910 ((name . path)
911 (if (string-prefix? "slynk" name) path #f)))
912 %build-inputs))
913
914 (prepend-to-source-registry
915 (string-append (assoc-ref %outputs "out") "//"))
916
917 (parameterize ((%lisp-type "sbcl")
918 (%lisp (string-append (assoc-ref %build-inputs "sbcl")
919 "/bin/sbcl")))
920 (build-image (string-append
921 (assoc-ref %outputs "image")
922 "/bin/slynk")
923 %outputs
924 #:dependencies ',slynk-systems))
925 #t)))))
926
927 (define-public ecl-slynk
928 (package
929 (inherit sbcl-slynk)
930 (name "ecl-slynk")
931 (inputs
932 (map (match-lambda
933 ((name pkg . _)
934 (list name (sbcl-package->ecl-package pkg))))
935 (package-inputs sbcl-slynk)))
936 (native-inputs '())
937 (outputs '("out"))
938 (arguments
939 '(#:modules ((guix build union))
940 #:builder
941 (begin
942 (use-modules (ice-9 match)
943 (guix build union))
944 (match %build-inputs
945 (((names . paths) ...)
946 (union-build (assoc-ref %outputs "out")
947 paths)
948 #t)))))))
949
950 (define-public sbcl-parse-js
951 (let ((commit "fbadc6029bec7039602abfc06c73bb52970998f6")
952 (revision "1"))
953 (package
954 (name "sbcl-parse-js")
955 (version (string-append "0.0.0-" revision "." (string-take commit 9)))
956 (source
957 (origin
958 (method git-fetch)
959 (uri (git-reference
960 (url "http://marijn.haverbeke.nl/git/parse-js")
961 (commit commit)))
962 (file-name (string-append name "-" commit "-checkout"))
963 (sha256
964 (base32
965 "1wddrnr5kiya5s3gp4cdq6crbfy9fqcz7fr44p81502sj3bvdv39"))))
966 (build-system asdf-build-system/sbcl)
967 (home-page "https://marijnhaverbeke.nl/parse-js/")
968 (synopsis "Parse JavaScript")
969 (description "Parse-js is a Common Lisp package for parsing
970 JavaScript (ECMAScript 3). It has basic support for ECMAScript 5.")
971 (license license:zlib))))
972
973 (define-public cl-parse-js
974 (sbcl-package->cl-source-package sbcl-parse-js))
975
976 (define-public sbcl-parse-number
977 (package
978 (name "sbcl-parse-number")
979 (version "1.7")
980 (source
981 (origin
982 (method git-fetch)
983 (uri (git-reference
984 (url "https://github.com/sharplispers/parse-number/")
985 (commit (string-append "v" version))))
986 (file-name (git-file-name name version))
987 (sha256
988 (base32
989 "0sk06ib1bhqv9y39vwnnw44vmbc4b0kvqm37xxmkxd4dwchq82d7"))))
990 (build-system asdf-build-system/sbcl)
991 (home-page "https://www.cliki.net/PARSE-NUMBER")
992 (synopsis "Parse numbers")
993 (description "@code{parse-number} is a library of functions for parsing
994 strings into one of the standard Common Lisp number types without using the
995 reader. @code{parse-number} accepts an arbitrary string and attempts to parse
996 the string into one of the standard Common Lisp number types, if possible, or
997 else @code{parse-number} signals an error of type @code{invalid-number}.")
998 (license license:bsd-3)))
999
1000 (define-public cl-parse-number
1001 (sbcl-package->cl-source-package sbcl-parse-number))
1002
1003 (define-public sbcl-iterate
1004 (package
1005 (name "sbcl-iterate")
1006 (version "1.5")
1007 (source
1008 (origin
1009 (method url-fetch)
1010 (uri (string-append "https://common-lisp.net/project/iterate/releases/"
1011 "iterate-" version ".tar.gz"))
1012 (sha256
1013 (base32
1014 "1lqsbhrkfl0yif46aymvb7l3nb9wdcmj4jyw485blj32jb4famzn"))))
1015 (build-system asdf-build-system/sbcl)
1016 (native-inputs
1017 `(("rt" ,sbcl-rt)))
1018 (home-page "https://common-lisp.net/project/iterate/")
1019 (synopsis "Iteration construct for Common Lisp")
1020 (description "@code{iterate} is an iteration construct for Common Lisp.
1021 It is similar to the @code{CL:LOOP} macro, with these distinguishing marks:
1022
1023 @itemize
1024 @item it is extensible,
1025 @item it helps editors like Emacs indent iterate forms by having a more
1026 lisp-like syntax, and
1027 @item it isn't part of the ANSI standard for Common Lisp.
1028 @end itemize\n")
1029 (license license:expat)))
1030
1031 (define-public cl-iterate
1032 (sbcl-package->cl-source-package sbcl-iterate))
1033
1034 (define-public ecl-iterate
1035 (sbcl-package->ecl-package sbcl-iterate))
1036
1037 (define-public sbcl-cl-uglify-js
1038 ;; There have been many bug fixes since the 2010 release.
1039 (let ((commit "429c5e1d844e2f96b44db8fccc92d6e8e28afdd5")
1040 (revision "1"))
1041 (package
1042 (name "sbcl-cl-uglify-js")
1043 (version (string-append "0.1-" revision "." (string-take commit 9)))
1044 (source
1045 (origin
1046 (method git-fetch)
1047 (uri (git-reference
1048 (url "https://github.com/mishoo/cl-uglify-js.git")
1049 (commit commit)))
1050 (file-name (git-file-name name version))
1051 (sha256
1052 (base32
1053 "0k39y3c93jgxpr7gwz7w0d8yknn1fdnxrjhd03057lvk5w8js27a"))))
1054 (build-system asdf-build-system/sbcl)
1055 (inputs
1056 `(("sbcl-parse-js" ,sbcl-parse-js)
1057 ("sbcl-cl-ppcre" ,sbcl-cl-ppcre)
1058 ("sbcl-cl-ppcre-unicode" ,sbcl-cl-ppcre-unicode)
1059 ("sbcl-parse-number" ,sbcl-parse-number)
1060 ("sbcl-iterate" ,sbcl-iterate)))
1061 (home-page "https://github.com/mishoo/cl-uglify-js")
1062 (synopsis "JavaScript compressor library for Common Lisp")
1063 (description "This is a Common Lisp version of UglifyJS, a JavaScript
1064 compressor. It works on data produced by @code{parse-js} to generate a
1065 @dfn{minified} version of the code. Currently it can:
1066
1067 @itemize
1068 @item reduce variable names (usually to single letters)
1069 @item join consecutive @code{var} statements
1070 @item resolve simple binary expressions
1071 @item group most consecutive statements using the @code{sequence} operator (comma)
1072 @item remove unnecessary blocks
1073 @item convert @code{IF} expressions in various ways that result in smaller code
1074 @item remove some unreachable code
1075 @end itemize\n")
1076 (license license:zlib))))
1077
1078 (define-public cl-uglify-js
1079 (sbcl-package->cl-source-package sbcl-cl-uglify-js))
1080
1081 (define-public uglify-js
1082 (package
1083 (inherit sbcl-cl-uglify-js)
1084 (name "uglify-js")
1085 (build-system trivial-build-system)
1086 (arguments
1087 `(#:modules ((guix build utils))
1088 #:builder
1089 (let* ((bin (string-append (assoc-ref %outputs "out") "/bin/"))
1090 (script (string-append bin "uglify-js")))
1091 (use-modules (guix build utils))
1092 (mkdir-p bin)
1093 (with-output-to-file script
1094 (lambda _
1095 (format #t "#!~a/bin/sbcl --script
1096 (require :asdf)
1097 (push (truename \"~a/lib/sbcl\") asdf:*central-registry*)"
1098 (assoc-ref %build-inputs "sbcl")
1099 (assoc-ref %build-inputs "sbcl-cl-uglify-js"))
1100 ;; FIXME: cannot use progn here because otherwise it fails to
1101 ;; find cl-uglify-js.
1102 (for-each
1103 write
1104 '(;; Quiet, please!
1105 (let ((*standard-output* (make-broadcast-stream))
1106 (*error-output* (make-broadcast-stream)))
1107 (asdf:load-system :cl-uglify-js))
1108 (let ((file (cadr *posix-argv*)))
1109 (if file
1110 (format t "~a"
1111 (cl-uglify-js:ast-gen-code
1112 (cl-uglify-js:ast-mangle
1113 (cl-uglify-js:ast-squeeze
1114 (with-open-file (in file)
1115 (parse-js:parse-js in))))
1116 :beautify nil))
1117 (progn
1118 (format *error-output*
1119 "Please provide a JavaScript file.~%")
1120 (sb-ext:exit :code 1))))))))
1121 (chmod script #o755)
1122 #t)))
1123 (inputs
1124 `(("sbcl" ,sbcl)
1125 ("sbcl-cl-uglify-js" ,sbcl-cl-uglify-js)))
1126 (synopsis "JavaScript compressor")))
1127
1128 (define-public sbcl-cl-strings
1129 (let ((revision "1")
1130 (commit "c5c5cbafbf3e6181d03c354d66e41a4f063f00ae"))
1131 (package
1132 (name "sbcl-cl-strings")
1133 (version (git-version "0.0.0" revision commit))
1134 (source
1135 (origin
1136 (method git-fetch)
1137 (uri (git-reference
1138 (url "https://github.com/diogoalexandrefranco/cl-strings")
1139 (commit commit)))
1140 (sha256
1141 (base32
1142 "00754mfaqallj480lwd346nkfb6ra8pa8xcxcylf4baqn604zlmv"))
1143 (file-name (string-append "cl-strings-" version "-checkout"))))
1144 (build-system asdf-build-system/sbcl)
1145 (synopsis "Portable, dependency-free set of utilities to manipulate strings in Common Lisp")
1146 (description
1147 "@command{cl-strings} is a small, portable, dependency-free set of
1148 utilities that make it even easier to manipulate text in Common Lisp. It has
1149 100% test coverage and works at least on sbcl, ecl, ccl, abcl and clisp.")
1150 (home-page "https://github.com/diogoalexandrefranco/cl-strings")
1151 (license license:expat))))
1152
1153 (define-public cl-strings
1154 (sbcl-package->cl-source-package sbcl-cl-strings))
1155
1156 (define-public ecl-cl-strings
1157 (sbcl-package->ecl-package sbcl-cl-strings))
1158
1159 (define-public sbcl-trivial-features
1160 (package
1161 (name "sbcl-trivial-features")
1162 (version "0.8")
1163 (source
1164 (origin
1165 (method git-fetch)
1166 (uri (git-reference
1167 (url "https://github.com/trivial-features/trivial-features.git")
1168 (commit (string-append "v" version))))
1169 (file-name (git-file-name "trivial-features" version))
1170 (sha256
1171 (base32 "0ccv7dqyrk55xga78i5vzlic7mdwp28in3g1a8fqhlk6626scsq9"))))
1172 (build-system asdf-build-system/sbcl)
1173 (arguments '(#:tests? #f))
1174 (home-page "https://cliki.net/trivial-features")
1175 (synopsis "Ensures consistency of @code{*FEATURES*} in Common Lisp")
1176 (description "Trivial-features ensures that @code{*FEATURES*} is
1177 consistent across multiple Common Lisp implementations.")
1178 (license license:expat)))
1179
1180 (define-public cl-trivial-features
1181 (sbcl-package->cl-source-package sbcl-trivial-features))
1182
1183 (define-public ecl-trivial-features
1184 (sbcl-package->ecl-package sbcl-trivial-features))
1185
1186 (define-public sbcl-hu.dwim.asdf
1187 (package
1188 (name "sbcl-hu.dwim.asdf")
1189 (version "20190521")
1190 (source
1191 (origin
1192 (method url-fetch)
1193 (uri (string-append "http://beta.quicklisp.org/archive/hu.dwim.asdf/"
1194 "2019-05-21/hu.dwim.asdf-" version "-darcs.tgz"))
1195 (sha256
1196 (base32
1197 "0rsbv71vyszy8w35yjwb5h6zcmknjq223hkzir79y72qdsc6sabn"))))
1198 (build-system asdf-build-system/sbcl)
1199 (home-page "https://hub.darcs.net/hu.dwim/hu.dwim.asdf")
1200 (synopsis "Extensions to ASDF")
1201 (description "Various ASDF extensions such as attached test and
1202 documentation system, explicit development support, etc.")
1203 (license license:public-domain)))
1204
1205 (define-public cl-hu.dwim.asdf
1206 (sbcl-package->cl-source-package sbcl-hu.dwim.asdf))
1207
1208 (define-public ecl-hu.dwim.asdf
1209 (sbcl-package->ecl-package sbcl-hu.dwim.asdf))
1210
1211 (define-public sbcl-hu.dwim.stefil
1212 (let ((commit "ab6d1aa8995878a1b66d745dfd0ba021090bbcf9"))
1213 (package
1214 (name "sbcl-hu.dwim.stefil")
1215 (version (git-version "0.0.0" "1" commit))
1216 (source
1217 (origin
1218 (method git-fetch)
1219 (uri
1220 (git-reference
1221 (url "https://gitlab.common-lisp.net/xcvb/hu.dwim.stefil.git")
1222 (commit commit)))
1223 (sha256
1224 (base32 "1d8yccw65zj3zh46cbi3x6nmn1dwdb76s9d0av035077mvyirqqp"))
1225 (file-name (git-file-name "hu.dwim.stefil" version))))
1226 (build-system asdf-build-system/sbcl)
1227 (native-inputs
1228 `(("asdf:cl-hu.dwim.asdf" ,sbcl-hu.dwim.asdf)))
1229 (inputs
1230 `(("sbcl-alexandria" ,sbcl-alexandria)))
1231 (home-page "https://hub.darcs.net/hu.dwim/hu.dwim.stefil")
1232 (synopsis "Simple test framework")
1233 (description "Stefil is a simple test framework for Common Lisp,
1234 with a focus on interactive development.")
1235 (license license:public-domain))))
1236
1237 (define-public cl-hu.dwim.stefil
1238 (sbcl-package->cl-source-package sbcl-hu.dwim.stefil))
1239
1240 (define-public ecl-hu.dwim.stefil
1241 (sbcl-package->ecl-package sbcl-hu.dwim.stefil))
1242
1243 (define-public sbcl-babel
1244 (package
1245 (name "sbcl-babel")
1246 (version "0.5.0")
1247 (source
1248 (origin
1249 (method git-fetch)
1250 (uri (git-reference
1251 (url "https://github.com/cl-babel/babel.git")
1252 (commit (string-append "v" version))))
1253 (file-name (git-file-name "babel" version))
1254 (sha256
1255 (base32 "139a8rn2gnhj082n8jg01gc8fyr63hkj57hgrnmb3d1r327yc77f"))))
1256 (build-system asdf-build-system/sbcl)
1257 (native-inputs
1258 `(("tests:cl-hu.dwim.stefil" ,sbcl-hu.dwim.stefil)))
1259 (inputs
1260 `(("sbcl-alexandria" ,sbcl-alexandria)
1261 ("sbcl-trivial-features" ,sbcl-trivial-features)))
1262 (home-page "https://common-lisp.net/project/babel/")
1263 (synopsis "Charset encoding and decoding library")
1264 (description "Babel is a charset encoding and decoding library, not unlike
1265 GNU libiconv, but completely written in Common Lisp.")
1266 (license license:expat)))
1267
1268 (define-public cl-babel
1269 (sbcl-package->cl-source-package sbcl-babel))
1270
1271 (define-public ecl-babel
1272 (sbcl-package->ecl-package sbcl-babel))
1273
1274 (define-public sbcl-cl-yacc
1275 (package
1276 (name "sbcl-cl-yacc")
1277 (version "0.3")
1278 (source
1279 (origin
1280 (method git-fetch)
1281 (uri (git-reference
1282 (url "https://github.com/jech/cl-yacc")
1283 (commit (string-append "cl-yacc-" version))))
1284 (sha256
1285 (base32
1286 "16946pzf8vvadnyfayvj8rbh4zjzw90h0azz2qk1mxrvhh5wklib"))
1287 (file-name (string-append "cl-yacc-" version "-checkout"))))
1288 (build-system asdf-build-system/sbcl)
1289 (arguments
1290 `(#:asd-file "yacc.asd"
1291 #:asd-system-name "yacc"))
1292 (synopsis "LALR(1) parser generator for Common Lisp, similar in spirit to Yacc")
1293 (description
1294 "CL-Yacc is a LALR(1) parser generator for Common Lisp, similar in spirit
1295 to AT&T Yacc, Berkeley Yacc, GNU Bison, Zebu, lalr.cl or lalr.scm.
1296
1297 CL-Yacc uses the algorithm due to Aho and Ullman, which is the one also used
1298 by AT&T Yacc, Berkeley Yacc and Zebu. It does not use the faster algorithm due
1299 to DeRemer and Pennello, which is used by Bison and lalr.scm (not lalr.cl).")
1300 (home-page "https://www.irif.fr/~jch//software/cl-yacc/")
1301 (license license:expat)))
1302
1303 (define-public cl-yacc
1304 (sbcl-package->cl-source-package sbcl-cl-yacc))
1305
1306 (define-public ecl-cl-yacc
1307 (sbcl-package->ecl-package sbcl-cl-yacc))
1308
1309 (define-public sbcl-jpl-util
1310 (let ((commit "0311ed374e19a49d43318064d729fe3abd9a3b62"))
1311 (package
1312 (name "sbcl-jpl-util")
1313 (version "20151005")
1314 (source
1315 (origin
1316 (method git-fetch)
1317 (uri (git-reference
1318 ;; Quicklisp uses this fork.
1319 (url "https://github.com/hawkir/cl-jpl-util")
1320 (commit commit)))
1321 (file-name
1322 (git-file-name "jpl-util" version))
1323 (sha256
1324 (base32
1325 "0nc0rk9n8grkg3045xsw34whmcmddn2sfrxki4268g7kpgz0d2yz"))))
1326 (build-system asdf-build-system/sbcl)
1327 (synopsis "Collection of Common Lisp utility functions and macros")
1328 (description
1329 "@command{cl-jpl-util} is a collection of Common Lisp utility functions
1330 and macros, primarily for software projects written in CL by the author.")
1331 (home-page "https://www.thoughtcrime.us/software/cl-jpl-util/")
1332 (license license:isc))))
1333
1334 (define-public cl-jpl-util
1335 (sbcl-package->cl-source-package sbcl-jpl-util))
1336
1337 (define-public ecl-jpl-util
1338 (sbcl-package->ecl-package sbcl-jpl-util))
1339
1340 (define-public sbcl-jpl-queues
1341 (package
1342 (name "sbcl-jpl-queues")
1343 (version "0.1")
1344 (source
1345 (origin
1346 (method url-fetch)
1347 (uri (string-append
1348 "http://www.thoughtcrime.us/software/jpl-queues/jpl-queues-"
1349 version
1350 ".tar.gz"))
1351 (sha256
1352 (base32
1353 "1wvvv7j117h9a42qaj1g4fh4mji28xqs7s60rn6d11gk9jl76h96"))))
1354 (build-system asdf-build-system/sbcl)
1355 (inputs
1356 `(("jpl-util" ,sbcl-jpl-util)
1357 ("bordeaux-threads" ,sbcl-bordeaux-threads)))
1358 (arguments
1359 ;; Tests seem to be broken.
1360 `(#:tests? #f))
1361 (synopsis "Common Lisp library implementing a few different kinds of queues")
1362 (description
1363 "A Common Lisp library implementing a few different kinds of queues:
1364
1365 @itemize
1366 @item Bounded and unbounded FIFO queues.
1367 @item Lossy bounded FIFO queues that drop elements when full.
1368 @item Unbounded random-order queues that use less memory than unbounded FIFO queues.
1369 @end itemize
1370
1371 Additionally, a synchronization wrapper is provided to make any queue
1372 conforming to the @command{jpl-queues} API thread-safe for lightweight
1373 multithreading applications. (See Calispel for a more sophisticated CL
1374 multithreaded message-passing library with timeouts and alternation among
1375 several blockable channels.)")
1376 (home-page "https://www.thoughtcrime.us/software/jpl-queues/")
1377 (license license:isc)))
1378
1379 (define-public cl-jpl-queues
1380 (sbcl-package->cl-source-package sbcl-jpl-queues))
1381
1382 (define-public ecl-jpl-queues
1383 (sbcl-package->ecl-package sbcl-jpl-queues))
1384
1385 (define-public sbcl-eos
1386 (let ((commit "b0faca83781ead9a588661e37bd47f90362ccd94"))
1387 (package
1388 (name "sbcl-eos")
1389 (version (git-version "0.0.0" "1" commit))
1390 (source
1391 (origin
1392 (method git-fetch)
1393 (uri (git-reference
1394 (url "https://github.com/adlai/Eos")
1395 (commit commit)))
1396 (sha256
1397 (base32
1398 "1bq8cfg087iyxmxi1mwgx5cfgy3b8ydrf81xljcis8qbgb2vszph"))
1399 (file-name (git-file-name "eos" version))))
1400 (build-system asdf-build-system/sbcl)
1401 (synopsis "Unit Testing for Common Lisp")
1402 (description
1403 "Eos was a unit testing library for Common Lisp.
1404 It began as a fork of FiveAM; however, FiveAM development has continued, while
1405 that of Eos has not. Thus, Eos is now deprecated in favor of FiveAM.")
1406 (home-page "https://github.com/adlai/Eos")
1407 (license license:expat))))
1408
1409 (define-public cl-eos
1410 (sbcl-package->cl-source-package sbcl-eos))
1411
1412 (define-public ecl-eos
1413 (sbcl-package->ecl-package sbcl-eos))
1414
1415 (define-public sbcl-esrap
1416 (let ((commit "133be8b05c2aae48696fe5b739eea2fa573fa48d"))
1417 (package
1418 (name "sbcl-esrap")
1419 (version (git-version "0.0.0" "1" commit))
1420 (source
1421 (origin
1422 (method git-fetch)
1423 (uri (git-reference
1424 (url "https://github.com/nikodemus/esrap")
1425 (commit commit)))
1426 (sha256
1427 (base32
1428 "02d5clihsdryhf7pix8c5di2571fdsffh75d40fkzhws90r5mksl"))
1429 (file-name (git-file-name "esrap" version))))
1430 (build-system asdf-build-system/sbcl)
1431 (native-inputs
1432 `(("eos" ,sbcl-eos))) ;For testing only.
1433 (inputs
1434 `(("alexandria" ,sbcl-alexandria)))
1435 (synopsis "Common Lisp packrat parser")
1436 (description
1437 "A packrat parser for Common Lisp.
1438 In addition to regular Packrat / Parsing Grammar / TDPL features ESRAP supports:
1439
1440 @itemize
1441 @item dynamic redefinition of nonterminals
1442 @item inline grammars
1443 @item semantic predicates
1444 @item introspective facilities (describing grammars, tracing, setting breaks)
1445 @end itemize\n")
1446 (home-page "https://nikodemus.github.io/esrap/")
1447 (license license:expat))))
1448
1449 (define-public cl-esrap
1450 (sbcl-package->cl-source-package sbcl-esrap))
1451
1452 (define-public ecl-esrap
1453 (sbcl-package->ecl-package sbcl-esrap))
1454
1455 (define-public sbcl-split-sequence
1456 (package
1457 (name "sbcl-split-sequence")
1458 (version "2.0.0")
1459 (source
1460 (origin
1461 (method git-fetch)
1462 (uri (git-reference
1463 (url "https://github.com/sharplispers/split-sequence")
1464 (commit (string-append "v" version))))
1465 (sha256
1466 (base32
1467 "0jcpnx21hkfwqj5fvp7kc6pn1qcz9hk7g2s5x8h0349x1j2irln0"))
1468 (file-name (git-file-name "split-sequence" version))))
1469 (build-system asdf-build-system/sbcl)
1470 (native-inputs
1471 `(("fiveam" ,sbcl-fiveam)))
1472 (synopsis "Member of the Common Lisp Utilities family of programs")
1473 (description
1474 "Splits sequence into a list of subsequences delimited by objects
1475 satisfying the test.")
1476 (home-page "https://cliki.net/split-sequence")
1477 (license license:expat)))
1478
1479 (define-public cl-split-sequence
1480 (sbcl-package->cl-source-package sbcl-split-sequence))
1481
1482 (define-public ecl-split-sequence
1483 (sbcl-package->ecl-package sbcl-split-sequence))
1484
1485 (define-public sbcl-html-encode
1486 (package
1487 (name "sbcl-html-encode")
1488 (version "1.2")
1489 (source
1490 (origin
1491 (method url-fetch)
1492 (uri (string-append
1493 "http://beta.quicklisp.org/archive/html-encode/2010-10-06/html-encode-"
1494 version ".tgz"))
1495 (sha256
1496 (base32
1497 "06mf8wn95yf5swhmzk4vp0xr4ylfl33dgfknkabbkd8n6jns8gcf"))
1498 (file-name (string-append "colorize" version "-checkout"))))
1499 (build-system asdf-build-system/sbcl)
1500 (synopsis "Common Lisp library for encoding text in various web-savvy encodings")
1501 (description
1502 "A library for encoding text in various web-savvy encodings.")
1503 (home-page "http://quickdocs.org/html-encode/")
1504 (license license:expat)))
1505
1506 (define-public cl-html-encode
1507 (sbcl-package->cl-source-package sbcl-html-encode))
1508
1509 (define-public ecl-html-encode
1510 (sbcl-package->ecl-package sbcl-html-encode))
1511
1512 (define-public sbcl-colorize
1513 (let ((commit "ea676b584e0899cec82f21a9e6871172fe3c0eb5"))
1514 (package
1515 (name "sbcl-colorize")
1516 (version (git-version "0.0.0" "1" commit))
1517 (source
1518 (origin
1519 (method git-fetch)
1520 (uri (git-reference
1521 (url "https://github.com/kingcons/colorize")
1522 (commit commit)))
1523 (sha256
1524 (base32
1525 "1pdg4kiaczmr3ivffhirp7m3lbr1q27rn7dhaay0vwghmi31zcw9"))
1526 (file-name (git-file-name "colorize" version))))
1527 (build-system asdf-build-system/sbcl)
1528 (inputs
1529 `(("alexandria" ,sbcl-alexandria)
1530 ("split-sequence" ,sbcl-split-sequence)
1531 ("html-encode" ,sbcl-html-encode)))
1532 (synopsis "Common Lisp for syntax highlighting")
1533 (description
1534 "@command{colorize} is a Lisp library for syntax highlighting
1535 supporting the following languages: Common Lisp, Emacs Lisp, Scheme, Clojure,
1536 C, C++, Java, Python, Erlang, Haskell, Objective-C, Diff, Webkit.")
1537 (home-page "https://github.com/kingcons/colorize")
1538 ;; TODO: Missing license?
1539 (license license:expat))))
1540
1541 (define-public cl-colorize
1542 (sbcl-package->cl-source-package sbcl-colorize))
1543
1544 (define-public ecl-colorize
1545 (sbcl-package->ecl-package sbcl-colorize))
1546
1547 (define-public sbcl-3bmd
1548 (let ((commit "192ea13435b605a96ef607df51317056914cabbd"))
1549 (package
1550 (name "sbcl-3bmd")
1551 (version (git-version "0.0.0" "1" commit))
1552 (source
1553 (origin
1554 (method git-fetch)
1555 (uri (git-reference
1556 (url "https://github.com/3b/3bmd")
1557 (commit commit)))
1558 (sha256
1559 (base32
1560 "1rgv3gi7wf963ikmmpk132wgn0icddf226gq3bmcnk1fr3v9gf2f"))
1561 (file-name (git-file-name "3bmd" version))))
1562 (build-system asdf-build-system/sbcl)
1563 (arguments
1564 ;; FIXME: We need to specify the name because the build-system thinks
1565 ;; "3" is a version marker.
1566 `(#:asd-system-name "3bmd"))
1567 (inputs
1568 `(("esrap" ,sbcl-esrap)
1569 ("split-sequence" ,sbcl-split-sequence)))
1570 (synopsis "Markdown processor in Command Lisp using esrap parser")
1571 (description
1572 "Common Lisp Markdown -> HTML converter, using @command{esrap} for
1573 parsing, and grammar based on @command{peg-markdown}.")
1574 (home-page "https://github.com/3b/3bmd")
1575 (license license:expat))))
1576
1577 (define-public cl-3bmd
1578 (sbcl-package->cl-source-package sbcl-3bmd))
1579
1580 (define-public ecl-3bmd
1581 (sbcl-package->ecl-package sbcl-3bmd))
1582
1583 (define-public sbcl-3bmd-ext-code-blocks
1584 (let ((commit "192ea13435b605a96ef607df51317056914cabbd"))
1585 (package
1586 (inherit sbcl-3bmd)
1587 (name "sbcl-3bmd-ext-code-blocks")
1588 (arguments
1589 `(#:asd-system-name "3bmd-ext-code-blocks"
1590 #:asd-file "3bmd-ext-code-blocks.asd"))
1591 (inputs
1592 `(("3bmd" ,sbcl-3bmd)
1593 ("colorize" ,sbcl-colorize)))
1594 (synopsis "3bmd extension which adds support for GitHub-style fenced
1595 code blocks")
1596 (description
1597 "3bmd extension which adds support for GitHub-style fenced code blocks,
1598 with @command{colorize} support."))))
1599
1600 (define-public cl-3bmd-ext-code-blocks
1601 (sbcl-package->cl-source-package sbcl-3bmd-ext-code-blocks))
1602
1603 (define-public ecl-3bmd-ext-code-blocks
1604 (sbcl-package->ecl-package sbcl-3bmd-ext-code-blocks))
1605
1606 (define-public sbcl-cl-fad
1607 (package
1608 (name "sbcl-cl-fad")
1609 (version "0.7.6")
1610 (source
1611 (origin
1612 (method git-fetch)
1613 (uri (git-reference
1614 (url "https://github.com/edicl/cl-fad/")
1615 (commit (string-append "v" version))))
1616 (sha256
1617 (base32
1618 "1gc8i82v6gks7g0lnm54r4prk2mklidv2flm5fvbr0a7rsys0vpa"))
1619 (file-name (string-append "cl-fad" version "-checkout"))))
1620 (build-system asdf-build-system/sbcl)
1621 (inputs
1622 `(("bordeaux-threads" ,sbcl-bordeaux-threads)))
1623 (synopsis "Portable pathname library for Common Lisp")
1624 (description
1625 "CL-FAD (for \"Files and Directories\") is a thin layer atop Common
1626 Lisp's standard pathname functions. It is intended to provide some
1627 unification between current CL implementations on Windows, OS X, Linux, and
1628 Unix. Most of the code was written by Peter Seibel for his book Practical
1629 Common Lisp.")
1630 (home-page "https://edicl.github.io/cl-fad/")
1631 (license license:bsd-2)))
1632
1633 (define-public cl-fad
1634 (sbcl-package->cl-source-package sbcl-cl-fad))
1635
1636 (define-public ecl-cl-fad
1637 (sbcl-package->ecl-package sbcl-cl-fad))
1638
1639 (define-public sbcl-rt
1640 (let ((commit "a6a7503a0b47953bc7579c90f02a6dba1f6e4c5a")
1641 (revision "1"))
1642 (package
1643 (name "sbcl-rt")
1644 (version (git-version "1990.12.19" revision commit))
1645 (source
1646 (origin
1647 (method git-fetch)
1648 (uri (git-reference
1649 (url "http://git.kpe.io/rt.git")
1650 (commit commit)))
1651 (file-name (git-file-name name version))
1652 (sha256
1653 (base32 "13si2rrxaagbr0bkvg6sqicxxpyshabx6ad6byc9n2ik5ysna69b"))))
1654 (build-system asdf-build-system/sbcl)
1655 (synopsis "MIT Regression Tester")
1656 (description
1657 "RT provides a framework for writing regression test suites.")
1658 (home-page "https://www.cliki.net/rt")
1659 (license license:expat))))
1660
1661 (define-public cl-rt
1662 (sbcl-package->cl-source-package sbcl-rt))
1663
1664 (define-public ecl-rt
1665 (sbcl-package->ecl-package sbcl-rt))
1666
1667 (define-public sbcl-nibbles
1668 (package
1669 (name "sbcl-nibbles")
1670 (version "0.14")
1671 (source
1672 (origin
1673 (method git-fetch)
1674 (uri (git-reference
1675 (url "https://github.com/sharplispers/nibbles/")
1676 (commit (string-append "v" version))))
1677 (sha256
1678 (base32
1679 "1v7qfgpvdr6nz7v63dj69d26dis0kff3rd8xamr1llfdvza2pm8f"))
1680 (file-name (git-file-name "nibbles" version))))
1681 (build-system asdf-build-system/sbcl)
1682 (native-inputs
1683 ;; Tests only.
1684 `(("rt" ,sbcl-rt)))
1685 (synopsis "Common Lisp library for accessing octet-addressed blocks of data")
1686 (description
1687 "When dealing with network protocols and file formats, it's common to
1688 have to read or write 16-, 32-, or 64-bit datatypes in signed or unsigned
1689 flavors. Common Lisp sort of supports this by specifying :element-type for
1690 streams, but that facility is underspecified and there's nothing similar for
1691 read/write from octet vectors. What most people wind up doing is rolling their
1692 own small facility for their particular needs and calling it a day.
1693
1694 This library attempts to be comprehensive and centralize such
1695 facilities. Functions to read 16-, 32-, and 64-bit quantities from octet
1696 vectors in signed or unsigned flavors are provided; these functions are also
1697 SETFable. Since it's sometimes desirable to read/write directly from streams,
1698 functions for doing so are also provided. On some implementations,
1699 reading/writing IEEE singles/doubles (i.e. single-float and double-float) will
1700 also be supported.")
1701 (home-page "https://github.com/sharplispers/nibbles")
1702 (license license:bsd-3)))
1703
1704 (define-public cl-nibbles
1705 (sbcl-package->cl-source-package sbcl-nibbles))
1706
1707 (define-public ecl-nibbles
1708 (sbcl-package->ecl-package sbcl-nibbles))
1709
1710 (define-public sbcl-ironclad
1711 (package
1712 (name "sbcl-ironclad")
1713 (version "0.48")
1714 (source
1715 (origin
1716 (method git-fetch)
1717 (uri (git-reference
1718 (url "https://github.com/sharplispers/ironclad/")
1719 (commit (string-append "v" version))))
1720 (sha256
1721 (base32
1722 "1wzczpgvgjc5h8ghz75kxi7iykmqxqchdhgdhkif9j99kyqvbyam"))
1723 (file-name (git-file-name name version))))
1724 (build-system asdf-build-system/sbcl)
1725 (native-inputs
1726 ;; Tests only.
1727 `(("rt" ,sbcl-rt)))
1728 (inputs
1729 `(("bordeaux-threads" ,sbcl-bordeaux-threads)
1730 ("flexi-streams" ,sbcl-flexi-streams)))
1731 (synopsis "Cryptographic toolkit written in Common Lisp")
1732 (description
1733 "Ironclad is a cryptography library written entirely in Common Lisp.
1734 It includes support for several popular ciphers, digests, MACs and public key
1735 cryptography algorithms. For several implementations that support Gray
1736 streams, support is included for convenient stream wrappers.")
1737 (home-page "https://github.com/sharplispers/ironclad")
1738 (license license:bsd-3)))
1739
1740 (define-public cl-ironclad
1741 (sbcl-package->cl-source-package sbcl-ironclad))
1742
1743 (define-public ecl-ironclad
1744 (sbcl-package->ecl-package sbcl-ironclad))
1745
1746 (define-public sbcl-named-readtables
1747 (let ((commit "4dfb89fa1af6b305b6492b8af042f5190c11e9fc")
1748 (revision "1"))
1749 (package
1750 (name "sbcl-named-readtables")
1751 (version (string-append "0.9-" revision "." (string-take commit 7)))
1752 (source
1753 (origin
1754 (method git-fetch)
1755 (uri (git-reference
1756 (url "https://github.com/melisgl/named-readtables.git")
1757 (commit commit)))
1758 (sha256
1759 (base32 "083kgh5462iqbb4px6kq8s7sggvpvkm36hx4qi9rnaw53b6ilqkk"))
1760 (file-name (git-file-name "named-readtables" version))))
1761 (build-system asdf-build-system/sbcl)
1762 (arguments
1763 ;; Tests seem to be broken.
1764 `(#:tests? #f))
1765 (home-page "https://github.com/melisgl/named-readtables/")
1766 (synopsis "Library that creates a namespace for named readtables")
1767 (description "Named readtables is a library that creates a namespace for
1768 named readtables, which is akin to package namespacing in Common Lisp.")
1769 (license license:bsd-3))))
1770
1771 (define-public cl-named-readtables
1772 (sbcl-package->cl-source-package sbcl-named-readtables))
1773
1774 (define-public ecl-named-readtables
1775 (sbcl-package->ecl-package sbcl-named-readtables))
1776
1777 (define-public sbcl-pythonic-string-reader
1778 (let ((commit "47a70ba1e32362e03dad6ef8e6f36180b560f86a"))
1779 (package
1780 (name "sbcl-pythonic-string-reader")
1781 (version (git-version "0.0.0" "1" commit))
1782 (source
1783 (origin
1784 (method git-fetch)
1785 (uri (git-reference
1786 (url "https://github.com/smithzvk/pythonic-string-reader/")
1787 (commit commit)))
1788 (sha256
1789 (base32 "1b5iryqw8xsh36swckmz8rrngmc39k92si33fgy5pml3n9l5rq3j"))
1790 (file-name (git-file-name "pythonic-string-reader" version))))
1791 (build-system asdf-build-system/sbcl)
1792 (inputs
1793 `(("named-readtables" ,sbcl-named-readtables)))
1794 (home-page "https://github.com/smithzvk/pythonic-string-reader")
1795 (synopsis "Read table modification inspired by Python's three quote strings")
1796 (description "This piece of code sets up some reader macros that make it
1797 simpler to input string literals which contain backslashes and double quotes
1798 This is very useful for writing complicated docstrings and, as it turns out,
1799 writing code that contains string literals that contain code themselves.")
1800 (license license:bsd-3))))
1801
1802 (define-public cl-pythonic-string-reader
1803 (sbcl-package->cl-source-package sbcl-pythonic-string-reader))
1804
1805 (define-public ecl-pythonic-string-reader
1806 (sbcl-package->ecl-package sbcl-pythonic-string-reader))
1807
1808 ;; SLIME does not have a ASDF system definition to build all of Swank. As a
1809 ;; result, the asdf-build-system/sbcl will produce an almost empty package.
1810 ;; Some work was done to fix this at
1811 ;; https://github.com/sionescu/slime/tree/swank-asdf but it was never merged
1812 ;; and is now lagging behind. Building SBCL fasls might not be worth the
1813 ;; hassle, so let's just ship the source then.
1814 (define-public cl-slime-swank
1815 (package
1816 (name "cl-slime-swank")
1817 (version "2.24")
1818 (source
1819 (origin
1820 (file-name (string-append name "-" version ".tar.gz"))
1821 (method git-fetch)
1822 (uri (git-reference
1823 (url "https://github.com/slime/slime/")
1824 (commit (string-append "v" version))))
1825 (sha256
1826 (base32
1827 "0js24x42m7b5iymb4rxz501dff19vav5pywnzv50b673rbkaaqvh"))))
1828 (build-system asdf-build-system/source)
1829 (home-page "https://github.com/slime/slime")
1830 (synopsis "Common Lisp Swank server")
1831 (description
1832 "This is only useful if you want to start a Swank server in a Lisp
1833 processes that doesn't run under Emacs. Lisp processes created by
1834 @command{M-x slime} automatically start the server.")
1835 (license (list license:gpl2+ license:public-domain))))
1836
1837 (define-public sbcl-slime-swank
1838 (deprecated-package "sbcl-slime-swank" cl-slime-swank))
1839
1840 (define-public sbcl-mgl-pax
1841 (let ((commit "818448418d6b9de74620f606f5b23033c6082769"))
1842 (package
1843 (name "sbcl-mgl-pax")
1844 (version (git-version "0.0.0" "1" commit))
1845 (source
1846 (origin
1847 (method git-fetch)
1848 (uri (git-reference
1849 (url "https://github.com/melisgl/mgl-pax")
1850 (commit commit)))
1851 (sha256
1852 (base32
1853 "1p97zfkh130bdxqqxwaw2j9psv58751wakx7czbfpq410lg7dd7i"))
1854 (file-name (git-file-name "mgl-pax" version))))
1855 (build-system asdf-build-system/sbcl)
1856 (inputs
1857 `(("3bmd" ,sbcl-3bmd)
1858 ("3bmd-ext-code-blocks" ,sbcl-3bmd-ext-code-blocks)
1859 ("babel" ,sbcl-babel)
1860 ("cl-fad" ,sbcl-cl-fad)
1861 ("ironclad" ,sbcl-ironclad)
1862 ("named-readtables" ,sbcl-named-readtables)
1863 ("pythonic-string-reader" ,sbcl-pythonic-string-reader)))
1864 (propagated-inputs
1865 ;; Packages having mgl-pax as input complain that it can't find
1866 ;; swank if we put it in inputs, so let's put it in propageted-inputs.
1867 `(("swank" ,cl-slime-swank)))
1868 (synopsis "Exploratory programming environment and documentation generator")
1869 (description
1870 "PAX provides an extremely poor man's Explorable Programming
1871 environment. Narrative primarily lives in so called sections that mix markdown
1872 docstrings with references to functions, variables, etc, all of which should
1873 probably have their own docstrings.
1874
1875 The primary focus is on making code easily explorable by using SLIME's
1876 @command{M-.} (@command{slime-edit-definition}). See how to enable some
1877 fanciness in Emacs Integration. Generating documentation from sections and all
1878 the referenced items in Markdown or HTML format is also implemented.
1879
1880 With the simplistic tools provided, one may accomplish similar effects as with
1881 Literate Programming, but documentation is generated from code, not vice versa
1882 and there is no support for chunking yet. Code is first, code must look
1883 pretty, documentation is code.")
1884 (home-page "http://quotenil.com/")
1885 (license license:expat))))
1886
1887 (define-public cl-mgl-pax
1888 (sbcl-package->cl-source-package sbcl-mgl-pax))
1889
1890 (define-public ecl-mgl-pax
1891 (sbcl-package->ecl-package sbcl-mgl-pax))
1892
1893 (define-public sbcl-lisp-unit
1894 (let ((commit "89653a232626b67400bf9a941f9b367da38d3815"))
1895 (package
1896 (name "sbcl-lisp-unit")
1897 (version (git-version "0.0.0" "1" commit))
1898 (source
1899 (origin
1900 (method git-fetch)
1901 (uri (git-reference
1902 (url "https://github.com/OdonataResearchLLC/lisp-unit")
1903 (commit commit)))
1904 (sha256
1905 (base32
1906 "0p6gdmgr7p383nvd66c9y9fp2bjk4jx1lpa5p09g43hr9y9pp9ry"))
1907 (file-name (git-file-name "lisp-unit" version))))
1908 (build-system asdf-build-system/sbcl)
1909 (synopsis "Common Lisp Test framework inspired by JUnit to be simple of use")
1910 (description
1911 "@command{lisp-unit} is a Common Lisp library that supports unit
1912 testing. It is an extension of the library written by Chris Riesbeck.")
1913 (home-page "https://github.com/OdonataResearchLLC/lisp-unit")
1914 (license license:expat))))
1915
1916 (define-public cl-lisp-unit
1917 (sbcl-package->cl-source-package sbcl-lisp-unit))
1918
1919 (define-public ecl-lisp-unit
1920 (sbcl-package->ecl-package sbcl-lisp-unit))
1921
1922 (define-public sbcl-anaphora
1923 (package
1924 (name "sbcl-anaphora")
1925 (version "0.9.6")
1926 (source
1927 (origin
1928 (method git-fetch)
1929 (uri (git-reference
1930 (url "https://github.com/tokenrove/anaphora")
1931 (commit version)))
1932 (sha256
1933 (base32
1934 "19wfrk3asimznkli0x2rfy637hwpdgqyvwj3vhq9x7vjvyf5vv6x"))
1935 (file-name (git-file-name "anaphora" version))))
1936 (build-system asdf-build-system/sbcl)
1937 (native-inputs
1938 `(("rt" ,sbcl-rt)))
1939 (synopsis "The anaphoric macro collection from Hell")
1940 (description
1941 "Anaphora is the anaphoric macro collection from Hell: it includes many
1942 new fiends in addition to old friends like @command{aif} and
1943 @command{awhen}.")
1944 (home-page "https://github.com/tokenrove/anaphora")
1945 (license license:public-domain)))
1946
1947 (define-public cl-anaphora
1948 (sbcl-package->cl-source-package sbcl-anaphora))
1949
1950 (define-public ecl-anaphora
1951 (sbcl-package->ecl-package sbcl-anaphora))
1952
1953 (define-public sbcl-lift
1954 (let ((commit "7d49a66c62759535624037826891152223d4206c"))
1955 (package
1956 (name "sbcl-lift")
1957 (version (git-version "1.7.1" "1" commit))
1958 (source
1959 (origin
1960 (method git-fetch)
1961 (uri (git-reference
1962 (url "https://github.com/gwkkwg/lift")
1963 (commit commit)))
1964 (sha256
1965 (base32
1966 "127v5avpz1i4m0lkaxqrq8hrl69rdazqaxf6s8awf0nd7wj2g4dp"))
1967 (file-name (git-file-name "lift" version))
1968 (modules '((guix build utils)))
1969 (snippet
1970 ;; Don't keep the bundled website
1971 `(begin
1972 (delete-file-recursively "website")
1973 #t))))
1974 (build-system asdf-build-system/sbcl)
1975 (arguments
1976 ;; The tests require a debugger, but we run with the debugger disabled.
1977 '(#:tests? #f))
1978 (synopsis "LIsp Framework for Testing")
1979 (description
1980 "The LIsp Framework for Testing (LIFT) is a unit and system test tool for LISP.
1981 Though inspired by SUnit and JUnit, it's built with Lisp in mind. In LIFT,
1982 testcases are organized into hierarchical testsuites each of which can have
1983 its own fixture. When run, a testcase can succeed, fail, or error. LIFT
1984 supports randomized testing, benchmarking, profiling, and reporting.")
1985 (home-page "https://github.com/gwkkwg/lift")
1986 (license license:expat))))
1987
1988 (define-public cl-lift
1989 (sbcl-package->cl-source-package sbcl-lift))
1990
1991 (define-public ecl-lift
1992 (sbcl-package->ecl-package sbcl-lift))
1993
1994 (define-public sbcl-let-plus
1995 (let ((commit "5f14af61d501ecead02ec6b5a5c810efc0c9fdbb"))
1996 (package
1997 (name "sbcl-let-plus")
1998 (version (git-version "0.0.0" "1" commit))
1999 (source
2000 (origin
2001 (method git-fetch)
2002 (uri (git-reference
2003 (url "https://github.com/sharplispers/let-plus")
2004 (commit commit)))
2005 (sha256
2006 (base32
2007 "0i050ca2iys9f5mb7dgqgqdxfnc3b0rnjdwv95sqd490vkiwrsaj"))
2008 (file-name (git-file-name "let-plus" version))))
2009 (build-system asdf-build-system/sbcl)
2010 (inputs
2011 `(("alexandria" ,sbcl-alexandria)
2012 ("anaphora" ,sbcl-anaphora)))
2013 (native-inputs
2014 `(("lift" ,sbcl-lift)))
2015 (synopsis "Destructuring extension of let*")
2016 (description
2017 "This library implements the let+ macro, which is a dectructuring
2018 extension of let*. It features:
2019
2020 @itemize
2021 @item Clean, consistent syntax and small implementation (less than 300 LOC,
2022 not counting tests)
2023 @item Placeholder macros allow editor hints and syntax highlighting
2024 @item @command{&ign} for ignored values (in forms where that makes sense)
2025 @item Very easy to extend
2026 @end itemize\n")
2027 (home-page "https://github.com/sharplispers/let-plus")
2028 (license license:boost1.0))))
2029
2030 (define-public cl-let-plus
2031 (sbcl-package->cl-source-package sbcl-let-plus))
2032
2033 (define-public ecl-let-plus
2034 (sbcl-package->ecl-package sbcl-let-plus))
2035
2036 (define-public sbcl-cl-colors
2037 (let ((commit "827410584553f5c717eec6182343b7605f707f75"))
2038 (package
2039 (name "sbcl-cl-colors")
2040 (version (git-version "0.0.0" "1" commit))
2041 (source
2042 (origin
2043 (method git-fetch)
2044 (uri (git-reference
2045 (url "https://github.com/tpapp/cl-colors")
2046 (commit commit)))
2047 (sha256
2048 (base32
2049 "0l446lday4hybsm9bq3jli97fvv8jb1d33abg79vbylpwjmf3y9a"))
2050 (file-name (git-file-name "cl-colors" version))))
2051 (build-system asdf-build-system/sbcl)
2052 (inputs
2053 `(("alexandria" ,sbcl-alexandria)
2054 ("let-plus" ,sbcl-let-plus)))
2055 (synopsis "Simple color library for Common Lisp")
2056 (description
2057 "This is a very simple color library for Common Lisp, providing
2058
2059 @itemize
2060 @item Types for representing colors in HSV and RGB spaces.
2061 @item Simple conversion functions between the above types (and also
2062 hexadecimal representation for RGB).
2063 @item Some predefined colors (currently X11 color names – of course the
2064 library does not depend on X11).Because color in your terminal is nice.
2065 @end itemize
2066
2067 This library is no longer supported by its author.")
2068 (home-page "https://github.com/tpapp/cl-colors")
2069 (license license:boost1.0))))
2070
2071 (define-public cl-colors
2072 (sbcl-package->cl-source-package sbcl-cl-colors))
2073
2074 (define-public ecl-cl-colors
2075 (sbcl-package->ecl-package sbcl-cl-colors))
2076
2077 (define-public sbcl-cl-ansi-text
2078 (let ((commit "53badf7878f27f22f2d4a2a43e6df458e43acbe9"))
2079 (package
2080 (name "sbcl-cl-ansi-text")
2081 (version (git-version "1.0.0" "1" commit))
2082 (source
2083 (origin
2084 (method git-fetch)
2085 (uri (git-reference
2086 (url "https://github.com/pnathan/cl-ansi-text")
2087 (commit commit)))
2088 (sha256
2089 (base32
2090 "11i27n0dbz5lmygiw65zzr8lx0rac6b6yysqranphn31wls6ja3v"))
2091 (file-name (git-file-name "cl-ansi-text" version))))
2092 (build-system asdf-build-system/sbcl)
2093 (inputs
2094 `(("alexandria" ,sbcl-alexandria)
2095 ("cl-colors" ,sbcl-cl-colors)))
2096 (native-inputs
2097 `(("fiveam" ,sbcl-fiveam)))
2098 (synopsis "ANSI terminal color implementation for Common Lisp")
2099 (description
2100 "@command{cl-ansi-text} provides utilities which enable printing to an
2101 ANSI terminal with colored text. It provides the macro @command{with-color}
2102 which causes everything printed in the body to be displayed with the provided
2103 color. It further provides functions which will print the argument with the
2104 named color.")
2105 (home-page "https://github.com/pnathan/cl-ansi-text")
2106 (license license:llgpl))))
2107
2108 (define-public cl-ansi-text
2109 (sbcl-package->cl-source-package sbcl-cl-ansi-text))
2110
2111 (define-public ecl-cl-ansi-text
2112 (sbcl-package->ecl-package sbcl-cl-ansi-text))
2113
2114 (define-public sbcl-prove-asdf
2115 (let ((commit "4f9122bd393e63c5c70c1fba23070622317cfaa0"))
2116 (package
2117 (name "sbcl-prove-asdf")
2118 (version (git-version "1.0.0" "1" commit))
2119 (source
2120 (origin
2121 (method git-fetch)
2122 (uri (git-reference
2123 (url "https://github.com/fukamachi/prove")
2124 (commit commit)))
2125 (sha256
2126 (base32
2127 "07sbfw459z8bbjvx1qlmfa8qk2mvbjnnzi2mi0x72blaj8bkl4vc"))
2128 (file-name (git-file-name "prove" version))))
2129 (build-system asdf-build-system/sbcl)
2130 (arguments
2131 `(#:asd-file "prove-asdf.asd"))
2132 (synopsis "Test requirement for the Common Lisp 'prove' library")
2133 (description
2134 "Test requirement for the Common Lisp @command{prove} library.")
2135 (home-page "https://github.com/fukamachi/prove")
2136 (license license:expat))))
2137
2138 (define-public cl-prove-asdf
2139 (sbcl-package->cl-source-package sbcl-prove-asdf))
2140
2141 (define-public ecl-prove-asdf
2142 (sbcl-package->ecl-package sbcl-prove-asdf))
2143
2144 (define-public sbcl-prove
2145 (package
2146 (inherit sbcl-prove-asdf)
2147 (name "sbcl-prove")
2148 (inputs
2149 `(("alexandria" ,sbcl-alexandria)
2150 ("cl-ppcre" ,sbcl-cl-ppcre)
2151 ("cl-ansi-text" ,sbcl-cl-ansi-text)))
2152 (native-inputs
2153 `(("prove-asdf" ,sbcl-prove-asdf)))
2154 (arguments
2155 `(#:asd-file "prove.asd"))
2156 (synopsis "Yet another unit testing framework for Common Lisp")
2157 (description
2158 "This project was originally called @command{cl-test-more}.
2159 @command{prove} is yet another unit testing framework for Common Lisp. The
2160 advantages of @command{prove} are:
2161
2162 @itemize
2163 @item Various simple functions for testing and informative error messages
2164 @item ASDF integration
2165 @item Extensible test reporters
2166 @item Colorizes the report if it's available (note for SLIME)
2167 @item Reports test durations
2168 @end itemize\n")))
2169
2170 (define-public cl-prove
2171 (sbcl-package->cl-source-package sbcl-prove))
2172
2173 (define-public ecl-prove
2174 (sbcl-package->ecl-package sbcl-prove))
2175
2176 (define-public sbcl-proc-parse
2177 (let ((commit "ac3636834d561bdc2686c956dbd82494537285fd"))
2178 (package
2179 (name "sbcl-proc-parse")
2180 (version (git-version "0.0.0" "1" commit))
2181 (source
2182 (origin
2183 (method git-fetch)
2184 (uri (git-reference
2185 (url "https://github.com/fukamachi/proc-parse")
2186 (commit commit)))
2187 (sha256
2188 (base32
2189 "06rnl0h4cx6xv2wj3jczmmcxqn2703inmmvg1s4npbghmijsybfh"))
2190 (file-name (git-file-name "proc-parse" version))))
2191 (build-system asdf-build-system/sbcl)
2192 (inputs
2193 `(("alexandria" ,sbcl-alexandria)
2194 ("babel" ,sbcl-babel)))
2195 (native-inputs
2196 `(("prove" ,sbcl-prove)
2197 ("prove-asdf" ,sbcl-prove-asdf)))
2198 (arguments
2199 ;; TODO: Tests don't find "proc-parse-test", why?
2200 `(#:tests? #f))
2201 (synopsis "Procedural vector parser")
2202 (description
2203 "This is a string/octets parser library for Common Lisp with speed and
2204 readability in mind. Unlike other libraries, the code is not a
2205 pattern-matching-like, but a char-by-char procedural parser.")
2206 (home-page "https://github.com/fukamachi/proc-parse")
2207 (license license:bsd-2))))
2208
2209 (define-public cl-proc-parse
2210 (sbcl-package->cl-source-package sbcl-proc-parse))
2211
2212 (define-public ecl-proc-parse
2213 (sbcl-package->ecl-package sbcl-proc-parse))
2214
2215 (define-public sbcl-parse-float
2216 (let ((commit "2aae569f2a4b2eb3bfb5401a959425dcf151b09c"))
2217 (package
2218 (name "sbcl-parse-float")
2219 (version (git-version "0.0.0" "1" commit))
2220 (source
2221 (origin
2222 (method git-fetch)
2223 (uri (git-reference
2224 (url "https://github.com/soemraws/parse-float")
2225 (commit commit)))
2226 (sha256
2227 (base32
2228 "08xw8cchhmqcc0byng69m3f5a2izc9y2290jzz2k0qrbibp1fdk7"))
2229 (file-name (git-file-name "proc-parse" version))))
2230 (build-system asdf-build-system/sbcl)
2231 (inputs
2232 `(("alexandria" ,sbcl-alexandria)
2233 ("babel" ,sbcl-babel)))
2234 (native-inputs
2235 `(("prove" ,sbcl-prove)
2236 ("prove-asdf" ,sbcl-prove-asdf)))
2237 (arguments
2238 ;; TODO: Tests don't find "proc-parse-test", why?
2239 `(#:tests? #f))
2240 (synopsis "Parse a floating point value from a string in Common Lisp")
2241 (description
2242 "This package exports the following function to parse floating-point
2243 values from a string in Common Lisp.")
2244 (home-page "https://github.com/soemraws/parse-float")
2245 (license license:public-domain))))
2246
2247 (define-public cl-parse-float
2248 (sbcl-package->cl-source-package sbcl-parse-float))
2249
2250 (define-public ecl-parse-float
2251 (sbcl-package->ecl-package sbcl-parse-float))
2252
2253 (define-public sbcl-ascii-strings
2254 (let ((revision "1")
2255 (changeset "5048480a61243e6f1b02884012c8f25cdbee6d97"))
2256 (package
2257 (name "sbcl-ascii-strings")
2258 (version (string-append "0-" revision "." (string-take changeset 7)))
2259 (source
2260 (origin
2261 (method hg-fetch)
2262 (uri (hg-reference
2263 (url "https://bitbucket.org/vityok/cl-string-match/")
2264 (changeset changeset)))
2265 (sha256
2266 (base32
2267 "01wn5qx562w43ssy92xlfgv79w7p0nv0wbl76mpmba131n9ziq2y"))
2268 (file-name (git-file-name "cl-string-match" version))))
2269 (build-system asdf-build-system/sbcl)
2270 (inputs
2271 `(("alexandria" ,sbcl-alexandria)
2272 ("babel" ,sbcl-babel)))
2273 (arguments
2274 `(#:asd-file "ascii-strings.asd"))
2275 (synopsis "Operations on ASCII strings")
2276 (description
2277 "Operations on ASCII strings. Essentially this can be any kind of
2278 single-byte encoded strings.")
2279 (home-page "https://bitbucket.org/vityok/cl-string-match/")
2280 (license license:bsd-3))))
2281
2282 (define-public cl-ascii-strings
2283 (sbcl-package->cl-source-package sbcl-ascii-strings))
2284
2285 (define-public ecl-ascii-strings
2286 (sbcl-package->ecl-package sbcl-ascii-strings))
2287
2288 (define-public sbcl-simple-scanf
2289 (package
2290 (inherit sbcl-ascii-strings)
2291 (name "sbcl-simple-scanf")
2292 (inputs
2293 `(("alexandria" ,sbcl-alexandria)
2294 ("iterate" ,sbcl-iterate)
2295 ("proc-parse" ,sbcl-proc-parse)
2296 ("parse-float" ,sbcl-parse-float)))
2297 (arguments
2298 `(#:asd-file "simple-scanf.asd"))
2299 (synopsis "Simple scanf-like functionality implementation")
2300 (description
2301 "A simple scanf-like functionality implementation.")))
2302
2303 (define-public cl-simple-scanf
2304 (sbcl-package->cl-source-package sbcl-simple-scanf))
2305
2306 (define-public ecl-simple-scanf
2307 (sbcl-package->ecl-package sbcl-simple-scanf))
2308
2309 (define-public sbcl-cl-string-match
2310 (package
2311 (inherit sbcl-ascii-strings)
2312 (name "sbcl-cl-string-match")
2313 (inputs
2314 `(("alexandria" ,sbcl-alexandria)
2315 ("ascii-strings" ,sbcl-ascii-strings)
2316 ("yacc" ,sbcl-cl-yacc)
2317 ("jpl-util" ,sbcl-jpl-util)
2318 ("jpl-queues" ,sbcl-jpl-queues)
2319 ("mgl-pax" ,sbcl-mgl-pax)
2320 ("iterate" ,sbcl-iterate)))
2321 ;; TODO: Tests are not evaluated properly.
2322 (native-inputs
2323 ;; For testing:
2324 `(("lisp-unit" ,sbcl-lisp-unit)
2325 ("simple-scanf" ,sbcl-simple-scanf)))
2326 (arguments
2327 `(#:tests? #f
2328 #:asd-file "cl-string-match.asd"))
2329 (synopsis "Portable, dependency-free set of utilities to manipulate strings in Common Lisp")
2330 (description
2331 "@command{cl-strings} is a small, portable, dependency-free set of
2332 utilities that make it even easier to manipulate text in Common Lisp. It has
2333 100% test coverage and works at least on sbcl, ecl, ccl, abcl and clisp.")))
2334
2335 (define-public cl-string-match
2336 (sbcl-package->cl-source-package sbcl-cl-string-match))
2337
2338 (define-public ecl-cl-string-match
2339 (sbcl-package->ecl-package sbcl-cl-string-match))
2340
2341 (define-public sbcl-ptester
2342 (let ((commit "fe69fde54f4bce00ce577feb918796c293fc7253")
2343 (revision "1"))
2344 (package
2345 (name "sbcl-ptester")
2346 (version (git-version "2.1.3" revision commit))
2347 (source
2348 (origin
2349 (method git-fetch)
2350 (uri (git-reference
2351 (url "http://git.kpe.io/ptester.git")
2352 (commit commit)))
2353 (file-name (git-file-name name version))
2354 (sha256
2355 (base32 "1l0lfl7cdnr2qf4zh38hi4llxg22c49zkm639bdkmvlkzwj3ndwf"))))
2356 (build-system asdf-build-system/sbcl)
2357 (home-page "http://quickdocs.org/ptester/")
2358 (synopsis "Portable test harness package")
2359 (description
2360 "@command{ptester} is a portable testing framework based on Franz's
2361 tester module.")
2362 (license license:llgpl))))
2363
2364 (define-public cl-ptester
2365 (sbcl-package->cl-source-package sbcl-ptester))
2366
2367 (define-public ecl-ptester
2368 (sbcl-package->ecl-package sbcl-ptester))
2369
2370 (define-public sbcl-puri
2371 (let ((commit "ef5afb9e5286c8e952d4344f019c1a636a717b97")
2372 (revision "1"))
2373 (package
2374 (name "sbcl-puri")
2375 (version (git-version "1.5.7" revision commit))
2376 (source
2377 (origin
2378 (method git-fetch)
2379 (uri (git-reference
2380 (url "http://git.kpe.io/puri.git")
2381 (commit commit)))
2382 (file-name (git-file-name name version))
2383 (sha256
2384 (base32 "1vm25pdl92laj72p5vyd538kf3cjy2655z6bdc99h20ana2p231s"))))
2385 (build-system asdf-build-system/sbcl)
2386 (native-inputs
2387 `(("ptester" ,sbcl-ptester)))
2388 (home-page "http://quickdocs.org/puri/")
2389 (synopsis "Portable URI Library")
2390 (description
2391 "This is a portable Universal Resource Identifier library for Common
2392 Lisp programs. It parses URI according to the RFC 2396 specification.")
2393 (license license:llgpl))))
2394
2395 (define-public cl-puri
2396 (sbcl-package->cl-source-package sbcl-puri))
2397
2398 (define-public ecl-puri
2399 (sbcl-package->ecl-package sbcl-puri))
2400
2401 (define-public sbcl-queues
2402 (let ((commit "47d4da65e9ea20953b74aeeab7e89a831b66bc94"))
2403 (package
2404 (name "sbcl-queues")
2405 (version (git-version "0.0.0" "1" commit))
2406 (source
2407 (origin
2408 (method git-fetch)
2409 (uri (git-reference
2410 (url "https://github.com/oconnore/queues")
2411 (commit commit)))
2412 (file-name (git-file-name "queues" version))
2413 (sha256
2414 (base32
2415 "0wdhfnzi4v6d97pggzj2aw55si94w4327br94jrmyvwf351wqjvv"))))
2416 (build-system asdf-build-system/sbcl)
2417 (home-page "https://github.com/oconnore/queues")
2418 (synopsis "Common Lisp queue library")
2419 (description
2420 "This is a simple queue library for Common Lisp with features such as
2421 non-consing thread safe queues and fibonacci priority queues.")
2422 (license license:expat))))
2423
2424 (define-public cl-queues
2425 (sbcl-package->cl-source-package sbcl-queues))
2426
2427 (define-public ecl-queues
2428 (sbcl-package->ecl-package sbcl-queues))
2429
2430 (define-public sbcl-queues.simple-queue
2431 (package
2432 (inherit sbcl-queues)
2433 (name "sbcl-queues.simple-queue")
2434 (inputs
2435 `(("sbcl-queues" ,sbcl-queues)))
2436 (arguments
2437 `(#:asd-file "queues.simple-queue.asd"))
2438 (synopsis "Simple queue implementation")
2439 (description
2440 "This is a simple queue library for Common Lisp with features such as
2441 non-consing thread safe queues and fibonacci priority queues.")
2442 (license license:expat)))
2443
2444 (define-public cl-queues.simple-queue
2445 (sbcl-package->cl-source-package sbcl-queues.simple-queue))
2446
2447 (define-public ecl-queues.simple-queue
2448 (sbcl-package->ecl-package sbcl-queues.simple-queue))
2449
2450 (define-public sbcl-queues.simple-cqueue
2451 (package
2452 (inherit sbcl-queues)
2453 (name "sbcl-queues.simple-cqueue")
2454 (inputs
2455 `(("sbcl-queues" ,sbcl-queues)
2456 ("sbcl-queues.simple-queue" ,sbcl-queues.simple-queue)
2457 ("bordeaux-threads" ,sbcl-bordeaux-threads)))
2458 (arguments
2459 `(#:asd-file "queues.simple-cqueue.asd"))
2460 (synopsis "Thread safe queue implementation")
2461 (description
2462 "This is a simple queue library for Common Lisp with features such as
2463 non-consing thread safe queues and fibonacci priority queues.")
2464 (license license:expat)))
2465
2466 (define-public cl-queues.simple-cqueue
2467 (sbcl-package->cl-source-package sbcl-queues.simple-cqueue))
2468
2469 (define-public ecl-queues.simple-cqueue
2470 (sbcl-package->ecl-package sbcl-queues.simple-cqueue))
2471
2472 (define-public sbcl-queues.priority-queue
2473 (package
2474 (inherit sbcl-queues)
2475 (name "sbcl-queues.priority-queue")
2476 (inputs
2477 `(("sbcl-queues" ,sbcl-queues)))
2478 (arguments
2479 `(#:asd-file "queues.priority-queue.asd"))
2480 (synopsis "Priority queue (Fibonacci) implementation")
2481 (description
2482 "This is a simple queue library for Common Lisp with features such as
2483 non-consing thread safe queues and fibonacci priority queues.")
2484 (license license:expat)))
2485
2486 (define-public cl-queues.priority-queue
2487 (sbcl-package->cl-source-package sbcl-queues.priority-queue))
2488
2489 (define-public ecl-queues.priority-queue
2490 (sbcl-package->ecl-package sbcl-queues.priority-queue))
2491
2492 (define-public sbcl-queues.priority-cqueue
2493 (package
2494 (inherit sbcl-queues)
2495 (name "sbcl-queues.priority-cqueue")
2496 (inputs
2497 `(("sbcl-queues" ,sbcl-queues)
2498 ("sbcl-queues.priority-queue" ,sbcl-queues.priority-queue)
2499 ("bordeaux-threads" ,sbcl-bordeaux-threads)))
2500 (arguments
2501 `(#:asd-file "queues.priority-cqueue.asd"))
2502 (synopsis "Thread safe fibonacci priority queue implementation")
2503 (description
2504 "This is a simple queue library for Common Lisp with features such as
2505 non-consing thread safe queues and fibonacci priority queues.")
2506 (license license:expat)))
2507
2508 (define-public cl-queues.priority-cqueue
2509 (sbcl-package->cl-source-package sbcl-queues.priority-cqueue))
2510
2511 (define-public ecl-queues.priority-cqueue
2512 (sbcl-package->ecl-package sbcl-queues.priority-cqueue))
2513
2514 (define sbcl-cffi-bootstrap
2515 (package
2516 (name "sbcl-cffi-bootstrap")
2517 (version "0.21.0")
2518 (source
2519 (origin
2520 (method git-fetch)
2521 (uri (git-reference
2522 (url "https://github.com/cffi/cffi.git")
2523 (commit (string-append "v" version))))
2524 (file-name (git-file-name "cffi-bootstrap" version))
2525 (sha256
2526 (base32 "1qalargz9bhp850qv60ffwpdqi4xirzar4l3g6qcg8yc6xqf2cjk"))))
2527 (build-system asdf-build-system/sbcl)
2528 (inputs
2529 `(("libffi" ,libffi)
2530 ("alexandria" ,sbcl-alexandria)
2531 ("babel" ,sbcl-babel)
2532 ("trivial-features" ,sbcl-trivial-features)))
2533 (native-inputs
2534 `(("pkg-config" ,pkg-config)))
2535 (arguments
2536 '(#:phases
2537 (modify-phases %standard-phases
2538 (add-after 'unpack 'fix-paths
2539 (lambda* (#:key inputs #:allow-other-keys)
2540 (substitute* "libffi/libffi.lisp"
2541 (("libffi.so.6" all) (string-append
2542 (assoc-ref inputs "libffi")
2543 "/lib/" all)))
2544 (substitute* "toolchain/c-toolchain.lisp"
2545 (("\"cc\"") (format #f "~S" (which "gcc")))))))
2546 #:asd-system-name "cffi"
2547 #:tests? #f))
2548 (home-page "https://common-lisp.net/project/cffi/")
2549 (synopsis "Common Foreign Function Interface for Common Lisp")
2550 (description "The Common Foreign Function Interface (CFFI)
2551 purports to be a portable foreign function interface for Common Lisp.
2552 The CFFI library is composed of a Lisp-implementation-specific backend
2553 in the CFFI-SYS package, and a portable frontend in the CFFI
2554 package.")
2555 (license license:expat)))
2556
2557 (define-public sbcl-cffi-toolchain
2558 (package
2559 (inherit sbcl-cffi-bootstrap)
2560 (name "sbcl-cffi-toolchain")
2561 (inputs
2562 `(("libffi" ,libffi)
2563 ("sbcl-cffi" ,sbcl-cffi-bootstrap)))
2564 (arguments
2565 (substitute-keyword-arguments (package-arguments sbcl-cffi-bootstrap)
2566 ((#:asd-system-name _) #f)
2567 ((#:tests? _) #t)))))
2568
2569 (define-public sbcl-cffi-libffi
2570 (package
2571 (inherit sbcl-cffi-toolchain)
2572 (name "sbcl-cffi-libffi")
2573 (inputs
2574 `(("cffi" ,sbcl-cffi-bootstrap)
2575 ("cffi-grovel" ,sbcl-cffi-grovel)
2576 ("trivial-features" ,sbcl-trivial-features)
2577 ("libffi" ,libffi)))))
2578
2579 (define-public sbcl-cffi-grovel
2580 (package
2581 (inherit sbcl-cffi-toolchain)
2582 (name "sbcl-cffi-grovel")
2583 (inputs
2584 `(("libffi" ,libffi)
2585 ("cffi" ,sbcl-cffi-bootstrap)
2586 ("cffi-toolchain" ,sbcl-cffi-toolchain)
2587 ("alexandria" ,sbcl-alexandria)))
2588 (arguments
2589 (substitute-keyword-arguments (package-arguments sbcl-cffi-toolchain)
2590 ((#:phases phases)
2591 `(modify-phases ,phases
2592 (add-after 'build 'install-headers
2593 (lambda* (#:key outputs #:allow-other-keys)
2594 (install-file "grovel/common.h"
2595 (string-append
2596 (assoc-ref outputs "out")
2597 "/include/grovel"))))))))))
2598
2599 (define-public sbcl-cffi
2600 (package
2601 (inherit sbcl-cffi-toolchain)
2602 (name "sbcl-cffi")
2603 (inputs (package-inputs sbcl-cffi-bootstrap))
2604 (native-inputs
2605 `(("cffi-grovel" ,sbcl-cffi-grovel)
2606 ("cffi-libffi" ,sbcl-cffi-libffi)
2607 ("rt" ,sbcl-rt)
2608 ("bordeaux-threads" ,sbcl-bordeaux-threads)
2609 ,@(package-native-inputs sbcl-cffi-bootstrap)))))
2610
2611 (define-public cl-cffi
2612 (sbcl-package->cl-source-package sbcl-cffi))
2613
2614 (define-public sbcl-cffi-uffi-compat
2615 (package
2616 (inherit sbcl-cffi-toolchain)
2617 (name "sbcl-cffi-uffi-compat")
2618 (native-inputs
2619 `(,@(package-inputs sbcl-cffi-bootstrap))) ; For fix-paths phase
2620 (inputs
2621 `(("cffi" ,sbcl-cffi)))
2622 (synopsis "UFFI Compatibility Layer for CFFI")))
2623
2624 (define-public cl-cffi-uffi-compat
2625 (sbcl-package->cl-source-package sbcl-cffi-uffi-compat))
2626
2627 (define-public sbcl-cl-sqlite
2628 (let ((commit "c738e66d4266ef63a1debc4ef4a1b871a068c112"))
2629 (package
2630 (name "sbcl-cl-sqlite")
2631 (version (git-version "0.2" "1" commit))
2632 (source
2633 (origin
2634 (method git-fetch)
2635 (uri (git-reference
2636 (url "https://github.com/dmitryvk/cl-sqlite")
2637 (commit commit)))
2638 (file-name (git-file-name "cl-sqlite" version))
2639 (sha256
2640 (base32
2641 "1ng45k1hdb84sqjryrfx93g66bsbybmpy301wd0fdybnc5jzr36q"))))
2642 (build-system asdf-build-system/sbcl)
2643 (inputs
2644 `(("iterate" ,sbcl-iterate)
2645 ("cffi" ,sbcl-cffi)
2646 ("sqlite" ,sqlite)))
2647 (native-inputs
2648 `(("fiveam" ,sbcl-fiveam)
2649 ("bordeaux-threads" ,sbcl-bordeaux-threads)))
2650 (arguments
2651 `(#:tests? #f ; Upstream seems to have issues with tests: https://github.com/dmitryvk/cl-sqlite/issues/7
2652 #:asd-file "sqlite.asd"
2653 #:asd-system-name "sqlite"
2654 #:phases
2655 (modify-phases %standard-phases
2656 (add-after 'unpack 'fix-paths
2657 (lambda* (#:key inputs #:allow-other-keys)
2658 (substitute* "sqlite-ffi.lisp"
2659 (("libsqlite3" all) (string-append
2660 (assoc-ref inputs "sqlite")"/lib/" all))))))))
2661 (home-page "https://common-lisp.net/project/cl-sqlite/")
2662 (synopsis "Common Lisp binding for SQLite")
2663 (description
2664 "The @command{cl-sqlite} package is an interface to the SQLite embedded
2665 relational database engine.")
2666 (license license:public-domain))))
2667
2668 (define-public cl-sqlite
2669 (sbcl-package->cl-source-package sbcl-cl-sqlite))
2670
2671 (define-public sbcl-parenscript
2672 (let ((commit "061d8e286c81c3f45c84fb2b11ee7d83f590a8f8"))
2673 (package
2674 (name "sbcl-parenscript")
2675 (version (git-version "2.6" "1" commit))
2676 (source
2677 (origin
2678 (method git-fetch)
2679 (uri (git-reference
2680 (url "https://gitlab.common-lisp.net/parenscript/parenscript")
2681 (commit commit)))
2682 (file-name (git-file-name "parenscript" version))
2683 (sha256
2684 (base32
2685 "1kbhgsjbikc73m5cwdp4d4fdafyqcr1b7b630qjrziql0nh6mi3k"))))
2686 (build-system asdf-build-system/sbcl)
2687 (inputs
2688 `(("cl-ppcre" ,sbcl-cl-ppcre)
2689 ("anaphora" ,sbcl-anaphora)
2690 ("named-readtables" ,sbcl-named-readtables)))
2691 (home-page "https://common-lisp.net/project/parenscript/")
2692 (synopsis "Translator from a subset of Common Lisp to JavaScript")
2693 (description
2694 "Parenscript is a translator from an extended subset of Common Lisp to
2695 JavaScript. Parenscript code can run almost identically on both the
2696 browser (as JavaScript) and server (as Common Lisp).
2697
2698 Parenscript code is treated the same way as Common Lisp code, making the full
2699 power of Lisp macros available for JavaScript. This provides a web
2700 development environment that is unmatched in its ability to reduce code
2701 duplication and provide advanced meta-programming facilities to web
2702 developers.
2703
2704 At the same time, Parenscript is different from almost all other \"language
2705 X\" to JavaScript translators in that it imposes almost no overhead:
2706
2707 @itemize
2708 @item No run-time dependencies: Any piece of Parenscript code is runnable
2709 as-is. There are no JavaScript files to include.
2710 @item Native types: Parenscript works entirely with native JavaScript data
2711 types. There are no new types introduced, and object prototypes are not
2712 touched.
2713 @item Native calling convention: Any JavaScript code can be called without the
2714 need for bindings. Likewise, Parenscript can be used to make efficient,
2715 self-contained JavaScript libraries.
2716 @item Readable code: Parenscript generates concise, formatted, idiomatic
2717 JavaScript code. Identifier names are preserved. This enables seamless
2718 debugging in tools like Firebug.
2719 @item Efficiency: Parenscript introduces minimal overhead for advanced Common
2720 Lisp features. The generated code is almost as fast as hand-written
2721 JavaScript.
2722 @end itemize\n")
2723 (license license:bsd-3))))
2724
2725 (define-public cl-parenscript
2726 (sbcl-package->cl-source-package sbcl-parenscript))
2727
2728 (define-public ecl-parenscript
2729 (sbcl-package->ecl-package sbcl-parenscript))
2730
2731 (define-public sbcl-cl-json
2732 (let ((commit "6dfebb9540bfc3cc33582d0c03c9ec27cb913e79"))
2733 (package
2734 (name "sbcl-cl-json")
2735 (version (git-version "0.5" "1" commit))
2736 (source
2737 (origin
2738 (method git-fetch)
2739 (uri (git-reference
2740 (url "https://github.com/hankhero/cl-json")
2741 (commit commit)))
2742 (file-name (git-file-name "cl-json" version))
2743 (sha256
2744 (base32
2745 "0fx3m3x3s5ji950yzpazz4s0img3l6b3d6l3jrfjv0lr702496lh"))))
2746 (build-system asdf-build-system/sbcl)
2747 (native-inputs
2748 `(("fiveam" ,sbcl-fiveam)))
2749 (home-page "https://github.com/hankhero/cl-json")
2750 (synopsis "JSON encoder and decoder for Common-Lisp")
2751 (description
2752 "@command{cl-json} provides an encoder of Lisp objects to JSON format
2753 and a corresponding decoder of JSON data to Lisp objects. Both the encoder
2754 and the decoder are highly customizable; at the same time, the default
2755 settings ensure a very simple mode of operation, similar to that provided by
2756 @command{yason} or @command{st-json}.")
2757 (license license:expat))))
2758
2759 (define-public cl-json
2760 (sbcl-package->cl-source-package sbcl-cl-json))
2761
2762 (define-public ecl-cl-json
2763 (sbcl-package->ecl-package sbcl-cl-json))
2764
2765 (define-public sbcl-unix-opts
2766 (package
2767 (name "sbcl-unix-opts")
2768 (version "0.1.7")
2769 (source
2770 (origin
2771 (method git-fetch)
2772 (uri (git-reference
2773 (url "https://github.com/libre-man/unix-opts")
2774 (commit version)))
2775 (file-name (git-file-name "unix-opts" version))
2776 (sha256
2777 (base32
2778 "08djdi1ard09fijb7w9bdmhmwd98b1hzmcnjw9fqjiqa0g3b44rr"))))
2779 (build-system asdf-build-system/sbcl)
2780 (home-page "https://github.com/hankhero/cl-json")
2781 (synopsis "Unix-style command line options parser")
2782 (description
2783 "This is a minimalistic parser of command line options. The main
2784 advantage of the library is the ability to concisely define command line
2785 options once and then use this definition for parsing and extraction of
2786 command line arguments, as well as printing description of command line
2787 options (you get --help for free). This way you don't need to repeat
2788 yourself. Also, @command{unix-opts} doesn't depend on anything and
2789 precisely controls the behavior of the parser via Common Lisp restarts.")
2790 (license license:expat)))
2791
2792 (define-public cl-unix-opts
2793 (sbcl-package->cl-source-package sbcl-unix-opts))
2794
2795 (define-public ecl-unix-opts
2796 (sbcl-package->ecl-package sbcl-unix-opts))
2797
2798 (define-public sbcl-trivial-garbage
2799 (package
2800 (name "sbcl-trivial-garbage")
2801 (version "0.21")
2802 (source
2803 (origin
2804 (method git-fetch)
2805 (uri (git-reference
2806 (url "https://github.com/trivial-garbage/trivial-garbage.git")
2807 (commit (string-append "v" version))))
2808 (file-name (git-file-name "trivial-garbage" version))
2809 (sha256
2810 (base32 "0122jicfg7pca1wxw8zak1n92h5friqy60988ns0ysksj3fphw9n"))))
2811 (build-system asdf-build-system/sbcl)
2812 (native-inputs
2813 `(("rt" ,sbcl-rt)))
2814 (home-page "https://common-lisp.net/project/trivial-garbage/")
2815 (synopsis "Portable GC-related APIs for Common Lisp")
2816 (description "@command{trivial-garbage} provides a portable API to
2817 finalizers, weak hash-tables and weak pointers on all major implementations of
2818 the Common Lisp programming language.")
2819 (license license:public-domain)))
2820
2821 (define-public cl-trivial-garbage
2822 (sbcl-package->cl-source-package sbcl-trivial-garbage))
2823
2824 (define-public ecl-trivial-garbage
2825 (sbcl-package->ecl-package sbcl-trivial-garbage))
2826
2827 (define-public sbcl-closer-mop
2828 (let ((commit "fac29ce90e3a46e1fc6cf182190e193526fa9dbc"))
2829 (package
2830 (name "sbcl-closer-mop")
2831 (version (git-version "1.0.0" "1" commit))
2832 (source
2833 (origin
2834 (method git-fetch)
2835 (uri (git-reference
2836 (url "https://github.com/pcostanza/closer-mop")
2837 (commit commit)))
2838 (sha256
2839 (base32 "0hvh77y869h8fg9di5snyg85fxq6fdh9gj1igmx1g6j6j5x915dl"))
2840 (file-name (git-file-name "closer-mop" version ))))
2841 (build-system asdf-build-system/sbcl)
2842 (home-page "https://github.com/pcostanza/closer-mop")
2843 (synopsis "Rectifies absent or incorrect CLOS MOP features")
2844 (description "Closer to MOP is a compatibility layer that rectifies many
2845 of the absent or incorrect CLOS MOP features across a broad range of Common
2846 Lisp implementations.")
2847 (license license:expat))))
2848
2849 (define-public cl-closer-mop
2850 (sbcl-package->cl-source-package sbcl-closer-mop))
2851
2852 (define-public ecl-closer-mop
2853 (sbcl-package->ecl-package sbcl-closer-mop))
2854
2855 (define sbcl-cl-cffi-gtk-boot0
2856 (let ((commit "29443c5aaca975709df8025c4649366d882033cb"))
2857 (package
2858 (name "sbcl-cl-cffi-gtk-boot0")
2859 (version (git-version "0.11.2" "1" commit))
2860 (source
2861 (origin
2862 (method git-fetch)
2863 (uri (git-reference
2864 (url "https://github.com/Ferada/cl-cffi-gtk/")
2865 (commit commit)))
2866 (file-name (git-file-name "cl-cffi-gtk" version))
2867 (sha256
2868 (base32
2869 "0f6s92sf8xyzh1yksqx8bsy1sv0zmy0c13j3b8bavaba5hlxpxah"))))
2870 (build-system asdf-build-system/sbcl)
2871 (inputs
2872 `(("iterate" ,sbcl-iterate)
2873 ("cffi" ,sbcl-cffi)
2874 ("trivial-features" ,sbcl-trivial-features)))
2875 (home-page "https://github.com/Ferada/cl-cffi-gtk/")
2876 (synopsis "Common Lisp binding for GTK+3")
2877 (description
2878 "@command{cl-cffi-gtk} is a Lisp binding to GTK+ 3 (GIMP Toolkit) which
2879 is a library for creating graphical user interfaces.")
2880 (license license:lgpl3))))
2881
2882 (define-public sbcl-cl-cffi-gtk-glib
2883 (package
2884 (inherit sbcl-cl-cffi-gtk-boot0)
2885 (name "sbcl-cl-cffi-gtk-glib")
2886 (inputs
2887 `(("glib" ,glib)
2888 ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
2889 (arguments
2890 `(#:asd-file "glib/cl-cffi-gtk-glib.asd"
2891 #:phases
2892 (modify-phases %standard-phases
2893 (add-after 'unpack 'fix-paths
2894 (lambda* (#:key inputs #:allow-other-keys)
2895 (substitute* "glib/glib.init.lisp"
2896 (("libglib|libgthread" all) (string-append
2897 (assoc-ref inputs "glib") "/lib/" all))))))))))
2898
2899 (define-public sbcl-cl-cffi-gtk-gobject
2900 (package
2901 (inherit sbcl-cl-cffi-gtk-boot0)
2902 (name "sbcl-cl-cffi-gtk-gobject")
2903 (inputs
2904 `(("glib" ,glib)
2905 ("cl-cffi-gtk-glib" ,sbcl-cl-cffi-gtk-glib)
2906 ("trivial-garbage" ,sbcl-trivial-garbage)
2907 ("bordeaux-threads" ,sbcl-bordeaux-threads)
2908 ("closer-mop" ,sbcl-closer-mop)
2909 ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
2910 (arguments
2911 `(#:asd-file "gobject/cl-cffi-gtk-gobject.asd"
2912 #:phases
2913 (modify-phases %standard-phases
2914 (add-after 'unpack 'fix-paths
2915 (lambda* (#:key inputs #:allow-other-keys)
2916 (substitute* "gobject/gobject.init.lisp"
2917 (("libgobject" all) (string-append
2918 (assoc-ref inputs "glib") "/lib/" all))))))))))
2919
2920 (define-public sbcl-cl-cffi-gtk-gio
2921 (package
2922 (inherit sbcl-cl-cffi-gtk-boot0)
2923 (name "sbcl-cl-cffi-gtk-gio")
2924 (inputs
2925 `(("glib" ,glib)
2926 ("cl-cffi-gtk-glib" ,sbcl-cl-cffi-gtk-glib)
2927 ("cl-cffi-gtk-gobject" ,sbcl-cl-cffi-gtk-gobject)
2928 ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
2929 (arguments
2930 `(#:asd-file "gio/cl-cffi-gtk-gio.asd"
2931 #:phases
2932 (modify-phases %standard-phases
2933 (add-after 'unpack 'fix-paths
2934 (lambda* (#:key inputs #:allow-other-keys)
2935 (substitute* "gio/gio.init.lisp"
2936 (("libgio" all)
2937 (string-append
2938 (assoc-ref inputs "glib") "/lib/" all))))))))))
2939
2940 (define-public sbcl-cl-cffi-gtk-cairo
2941 (package
2942 (inherit sbcl-cl-cffi-gtk-boot0)
2943 (name "sbcl-cl-cffi-gtk-cairo")
2944 (inputs
2945 `(("cairo" ,cairo)
2946 ("cl-cffi-gtk-glib" ,sbcl-cl-cffi-gtk-glib)
2947 ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
2948 (arguments
2949 `(#:asd-file "cairo/cl-cffi-gtk-cairo.asd"
2950 #:phases
2951 (modify-phases %standard-phases
2952 (add-after 'unpack 'fix-paths
2953 (lambda* (#:key inputs #:allow-other-keys)
2954 (substitute* "cairo/cairo.init.lisp"
2955 (("libcairo" all)
2956 (string-append
2957 (assoc-ref inputs "cairo") "/lib/" all))))))))))
2958
2959 (define-public sbcl-cl-cffi-gtk-pango
2960 (package
2961 (inherit sbcl-cl-cffi-gtk-boot0)
2962 (name "sbcl-cl-cffi-gtk-pango")
2963 (inputs
2964 `(("pango" ,pango)
2965 ("cl-cffi-gtk-glib" ,sbcl-cl-cffi-gtk-glib)
2966 ("cl-cffi-gtk-gobject" ,sbcl-cl-cffi-gtk-gobject)
2967 ("cl-cffi-gtk-cairo" ,sbcl-cl-cffi-gtk-cairo)
2968 ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
2969 (arguments
2970 `(#:asd-file "pango/cl-cffi-gtk-pango.asd"
2971 #:phases
2972 (modify-phases %standard-phases
2973 (add-after 'unpack 'fix-paths
2974 (lambda* (#:key inputs #:allow-other-keys)
2975 (substitute* "pango/pango.init.lisp"
2976 (("libpango" all)
2977 (string-append
2978 (assoc-ref inputs "pango") "/lib/" all))))))))))
2979
2980 (define-public sbcl-cl-cffi-gtk-gdk-pixbuf
2981 (package
2982 (inherit sbcl-cl-cffi-gtk-boot0)
2983 (name "sbcl-cl-cffi-gtk-gdk-pixbuf")
2984 (inputs
2985 `(("gdk-pixbuf" ,gdk-pixbuf)
2986 ("cl-cffi-gtk-gobject" ,sbcl-cl-cffi-gtk-gobject)
2987 ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
2988 (arguments
2989 `(#:asd-file "gdk-pixbuf/cl-cffi-gtk-gdk-pixbuf.asd"
2990 #:phases
2991 (modify-phases %standard-phases
2992 (add-after 'unpack 'fix-paths
2993 (lambda* (#:key inputs #:allow-other-keys)
2994 (substitute* "gdk-pixbuf/gdk-pixbuf.init.lisp"
2995 (("libgdk_pixbuf" all)
2996 (string-append
2997 (assoc-ref inputs "gdk-pixbuf") "/lib/" all))))))))))
2998
2999 (define-public sbcl-cl-cffi-gtk-gdk
3000 (package
3001 (inherit sbcl-cl-cffi-gtk-boot0)
3002 (name "sbcl-cl-cffi-gtk-gdk")
3003 (inputs
3004 `(("gtk" ,gtk+)
3005 ("cl-cffi-gtk-gobject" ,sbcl-cl-cffi-gtk-gobject)
3006 ("cl-cffi-gtk-gio" ,sbcl-cl-cffi-gtk-gio)
3007 ("cl-cffi-gtk-gdk-pixbuf" ,sbcl-cl-cffi-gtk-gdk-pixbuf)
3008 ("cl-cffi-gtk-cairo" ,sbcl-cl-cffi-gtk-cairo)
3009 ("cl-cffi-gtk-pango" ,sbcl-cl-cffi-gtk-pango)
3010 ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
3011 (arguments
3012 `(#:asd-file "gdk/cl-cffi-gtk-gdk.asd"
3013 #:phases
3014 (modify-phases %standard-phases
3015 (add-after 'unpack 'fix-paths
3016 (lambda* (#:key inputs #:allow-other-keys)
3017 (substitute* "gdk/gdk.init.lisp"
3018 (("libgdk" all)
3019 (string-append
3020 (assoc-ref inputs "gtk") "/lib/" all)))
3021 (substitute* "gdk/gdk.package.lisp"
3022 (("libgtk" all)
3023 (string-append
3024 (assoc-ref inputs "gtk") "/lib/" all))))))))))
3025
3026 (define-public sbcl-cl-cffi-gtk
3027 (package
3028 (inherit sbcl-cl-cffi-gtk-boot0)
3029 (name "sbcl-cl-cffi-gtk")
3030 (inputs
3031 `(("cl-cffi-gtk-glib" ,sbcl-cl-cffi-gtk-glib)
3032 ("cl-cffi-gtk-gobject" ,sbcl-cl-cffi-gtk-gobject)
3033 ("cl-cffi-gtk-gio" ,sbcl-cl-cffi-gtk-gio)
3034 ("cl-cffi-gtk-gdk" ,sbcl-cl-cffi-gtk-gdk)
3035 ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
3036 (native-inputs
3037 `(("fiveam" ,sbcl-fiveam)))
3038 (arguments
3039 `(#:asd-file "gtk/cl-cffi-gtk.asd"
3040 #:test-asd-file "test/cl-cffi-gtk-test.asd"
3041 ;; TODO: Tests fail with memory fault.
3042 ;; See https://github.com/Ferada/cl-cffi-gtk/issues/24.
3043 #:tests? #f))))
3044
3045 (define-public cl-cffi-gtk
3046 (sbcl-package->cl-source-package sbcl-cl-cffi-gtk))
3047
3048 (define-public sbcl-cl-webkit
3049 (let ((commit "4832c99c31e0eb1fcce3779d119343ae8a423952"))
3050 (package
3051 (name "sbcl-cl-webkit")
3052 (version (git-version "2.4" "1" commit))
3053 (source
3054 (origin
3055 (method git-fetch)
3056 (uri (git-reference
3057 (url "https://github.com/joachifm/cl-webkit")
3058 (commit commit)))
3059 (file-name (git-file-name "cl-webkit" version))
3060 (sha256
3061 (base32
3062 "0sn7m181wfg1q49q45dlsry8c38x7pziqcs0frnymk6yvgndybxd"))))
3063 (build-system asdf-build-system/sbcl)
3064 (inputs
3065 `(("cffi" ,sbcl-cffi)
3066 ("cl-cffi-gtk" ,sbcl-cl-cffi-gtk)
3067 ("webkitgtk" ,webkitgtk)))
3068 (arguments
3069 `(#:asd-file "webkit2/cl-webkit2.asd"
3070 #:asd-system-name "cl-webkit2"
3071 #:phases
3072 (modify-phases %standard-phases
3073 (add-after 'unpack 'fix-paths
3074 (lambda* (#:key inputs #:allow-other-keys)
3075 (substitute* "webkit2/webkit2.init.lisp"
3076 (("libwebkit2gtk" all)
3077 (string-append
3078 (assoc-ref inputs "webkitgtk") "/lib/" all))))))))
3079 (home-page "https://github.com/joachifm/cl-webkit")
3080 (synopsis "Binding to WebKitGTK+ for Common Lisp")
3081 (description
3082 "@command{cl-webkit} is a binding to WebKitGTK+ for Common Lisp,
3083 currently targeting WebKit version 2. The WebKitGTK+ library adds web
3084 browsing capabilities to an application, leveraging the full power of the
3085 WebKit browsing engine.")
3086 (license license:expat))))
3087
3088 (define-public cl-webkit
3089 (sbcl-package->cl-source-package sbcl-cl-webkit))
3090
3091 (define-public sbcl-lparallel
3092 (package
3093 (name "sbcl-lparallel")
3094 (version "2.8.4")
3095 (source
3096 (origin
3097 (method git-fetch)
3098 (uri (git-reference
3099 (url "https://github.com/lmj/lparallel/")
3100 (commit (string-append "lparallel-" version))))
3101 (file-name (git-file-name "lparallel" version))
3102 (sha256
3103 (base32
3104 "0g0aylrbbrqsz0ahmwhvnk4cmc2931fllbpcfgzsprwnqqd7vwq9"))))
3105 (build-system asdf-build-system/sbcl)
3106 (inputs
3107 `(("alexandria" ,sbcl-alexandria)
3108 ("bordeaux-threads" ,sbcl-bordeaux-threads)
3109 ("trivial-garbage" ,sbcl-trivial-garbage)))
3110 (home-page "https://lparallel.org/")
3111 (synopsis "Parallelism for Common Lisp")
3112 (description
3113 "@command{lparallel} is a library for parallel programming in Common
3114 Lisp, featuring:
3115
3116 @itemize
3117 @item a simple model of task submission with receiving queue,
3118 @item constructs for expressing fine-grained parallelism,
3119 @item asynchronous condition handling across thread boundaries,
3120 @item parallel versions of map, reduce, sort, remove, and many others,
3121 @item promises, futures, and delayed evaluation constructs,
3122 @item computation trees for parallelizing interconnected tasks,
3123 @item bounded and unbounded FIFO queues,
3124 @item high and low priority tasks,
3125 @item task killing by category,
3126 @item integrated timeouts.
3127 @end itemize\n")
3128 (license license:expat)))
3129
3130 (define-public cl-lparallel
3131 (sbcl-package->cl-source-package sbcl-lparallel))
3132
3133 (define-public ecl-lparallel
3134 (sbcl-package->ecl-package sbcl-lparallel))
3135
3136 (define-public sbcl-cl-markup
3137 (let ((commit "e0eb7debf4bdff98d1f49d0f811321a6a637b390"))
3138 (package
3139 (name "sbcl-cl-markup")
3140 (version (git-version "0.1" "1" commit))
3141 (source
3142 (origin
3143 (method git-fetch)
3144 (uri (git-reference
3145 (url "https://github.com/arielnetworks/cl-markup/")
3146 (commit commit)))
3147 (file-name (git-file-name "cl-markup" version))
3148 (sha256
3149 (base32
3150 "10l6k45971dl13fkdmva7zc6i453lmq9j4xax2ci6pjzlc6xjhp7"))))
3151 (build-system asdf-build-system/sbcl)
3152 (home-page "https://github.com/arielnetworks/cl-markup/")
3153 (synopsis "Markup generation library for Common Lisp")
3154 (description
3155 "A modern markup generation library for Common Lisp that features:
3156
3157 @itemize
3158 @item Fast (even faster through compiling the code)
3159 @item Safety
3160 @item Support for multiple document types (markup, xml, html, html5, xhtml)
3161 @item Output with doctype
3162 @item Direct output to stream
3163 @end itemize\n")
3164 (license license:lgpl3+))))
3165
3166 (define-public cl-markup
3167 (sbcl-package->cl-source-package sbcl-cl-markup))
3168
3169 (define-public ecl-cl-markup
3170 (sbcl-package->ecl-package sbcl-cl-markup))
3171
3172 (define-public sbcl-cl-css
3173 (let ((commit "8fe654c8f0cf95b300718101cce4feb517f78e2f"))
3174 (package
3175 (name "sbcl-cl-css")
3176 (version (git-version "0.1" "1" commit))
3177 (source
3178 (origin
3179 (method git-fetch)
3180 (uri (git-reference
3181 (url "https://github.com/inaimathi/cl-css/")
3182 (commit commit)))
3183 (file-name (git-file-name "cl-css" version))
3184 (sha256
3185 (base32
3186 "1lc42zi2sw11fl2589sc19nr5sd2p0wy7wgvgwaggxa5f3ajhsmd"))))
3187 (build-system asdf-build-system/sbcl)
3188 (home-page "https://github.com/inaimathi/cl-css/")
3189 (synopsis "Non-validating, inline CSS generator for Common Lisp")
3190 (description
3191 "This is a dead-simple, non validating, inline CSS generator for Common
3192 Lisp. Its goals are axiomatic syntax, simple implementation to support
3193 portability, and boilerplate reduction in CSS.")
3194 (license license:expat))))
3195
3196 (define-public cl-css
3197 (sbcl-package->cl-source-package sbcl-cl-css))
3198
3199 (define-public ecl-cl-css
3200 (sbcl-package->ecl-package sbcl-cl-css))
3201
3202 (define-public sbcl-portable-threads
3203 (let ((commit "c0e61a1faeb0583c80fd3f20b16cc4c555226920"))
3204 (package
3205 (name "sbcl-portable-threads")
3206 (version (git-version "2.3" "1" commit))
3207 (source
3208 (origin
3209 (method git-fetch)
3210 (uri (git-reference
3211 (url "https://github.com/binghe/portable-threads/")
3212 (commit commit)))
3213 (file-name (git-file-name "portable-threads" version))
3214 (sha256
3215 (base32
3216 "03fmxyarc0xf4kavwkfa0a2spkyfrz6hbgbi9y4q7ny5aykdyfaq"))))
3217 (build-system asdf-build-system/sbcl)
3218 (arguments
3219 `(;; Tests seem broken.
3220 #:tests? #f))
3221 (home-page "https://github.com/binghe/portable-threads")
3222 (synopsis "Portable threads (and scheduled and periodic functions) API for Common Lisp")
3223 (description
3224 "Portable Threads (and Scheduled and Periodic Functions) API for Common
3225 Lisp (from GBBopen project).")
3226 (license license:asl2.0))))
3227
3228 (define-public cl-portable-threads
3229 (sbcl-package->cl-source-package sbcl-portable-threads))
3230
3231 (define-public ecl-portable-threada
3232 (sbcl-package->ecl-package sbcl-portable-threads))
3233
3234 (define sbcl-usocket-boot0
3235 ;; usocket's test rely on usocket-server which depends on usocket itself.
3236 ;; We break this cyclic dependency with -boot0 that packages usocket.
3237 (package
3238 (name "sbcl-usocket-boot0")
3239 (version "0.8.3")
3240 (source
3241 (origin
3242 (method git-fetch)
3243 (uri (git-reference
3244 (url "https://github.com/usocket/usocket/")
3245 (commit (string-append "v" version))))
3246 (file-name (git-file-name "usocket" version))
3247 (sha256
3248 (base32
3249 "0x746wr2324l6bn7skqzgkzcbj5kd0zp2ck0c8rldrw0rzabg826"))))
3250 (build-system asdf-build-system/sbcl)
3251 (inputs
3252 `(("split-sequence" ,sbcl-split-sequence)))
3253 (arguments
3254 `(#:tests? #f
3255 #:asd-system-name "usocket"))
3256 (home-page "https://common-lisp.net/project/usocket/")
3257 (synopsis "Universal socket library for Common Lisp (server side)")
3258 (description
3259 "This library strives to provide a portable TCP/IP and UDP/IP socket
3260 interface for as many Common Lisp implementations as possible, while keeping
3261 the abstraction and portability layer as thin as possible.")
3262 (license license:expat)))
3263
3264 (define-public sbcl-usocket-server
3265 (package
3266 (inherit sbcl-usocket-boot0)
3267 (name "sbcl-usocket-server")
3268 (inputs
3269 `(("bordeaux-threads" ,sbcl-bordeaux-threads)
3270 ("usocket" ,sbcl-usocket-boot0)))
3271 (arguments
3272 '(#:asd-system-name "usocket-server"))
3273 (synopsis "Universal socket library for Common Lisp (server side)")))
3274
3275 (define-public cl-usocket-server
3276 (sbcl-package->cl-source-package sbcl-usocket-server))
3277
3278 (define-public ecl-socket-server
3279 (sbcl-package->ecl-package sbcl-usocket-server))
3280
3281 (define-public sbcl-usocket
3282 (package
3283 (inherit sbcl-usocket-boot0)
3284 (name "sbcl-usocket")
3285 (arguments
3286 ;; FIXME: Tests need network access?
3287 `(#:tests? #f))
3288 (native-inputs
3289 ;; Testing only.
3290 `(("usocket-server" ,sbcl-usocket-server)
3291 ("rt" ,sbcl-rt)))))
3292
3293 (define-public cl-usocket
3294 (sbcl-package->cl-source-package sbcl-usocket))
3295
3296 (define-public ecl-usocket
3297 (sbcl-package->ecl-package sbcl-usocket))
3298
3299 (define-public sbcl-s-xml
3300 (package
3301 (name "sbcl-s-xml")
3302 (version "3")
3303 (source
3304 (origin
3305 (method url-fetch)
3306 (uri "https://common-lisp.net/project/s-xml/s-xml.tgz")
3307 (sha256
3308 (base32
3309 "061qcr0dzshsa38s5ma4ay924cwak2nq9gy59dw6v9p0qb58nzjf"))))
3310 (build-system asdf-build-system/sbcl)
3311 (home-page "https://common-lisp.net/project/s-xml/")
3312 (synopsis "Simple XML parser implemented in Common Lisp")
3313 (description
3314 "S-XML is a simple XML parser implemented in Common Lisp. This XML
3315 parser implementation has the following features:
3316
3317 @itemize
3318 @item It works (handling many common XML usages).
3319 @item It is very small (the core is about 700 lines of code, including
3320 comments and whitespace).
3321 @item It has a core API that is simple, efficient and pure functional, much
3322 like that from SSAX (see also http://ssax.sourceforge.net).
3323 @item It supports different DOM models: an XSML-based one, an LXML-based one
3324 and a classic xml-element struct based one.
3325 @item It is reasonably time and space efficient (internally avoiding garbage
3326 generatation as much as possible).
3327 @item It does support CDATA.
3328 @item It should support the same character sets as your Common Lisp
3329 implementation.
3330 @item It does support XML name spaces.
3331 @end itemize
3332
3333 This XML parser implementation has the following limitations:
3334
3335 @itemize
3336 @item It does not support any special tags (like processing instructions).
3337 @item It is not validating, even skips DTD's all together.
3338 @end itemize\n")
3339 (license license:lgpl3+)))
3340
3341 (define-public cl-s-xml
3342 (sbcl-package->cl-source-package sbcl-s-xml))
3343
3344 (define-public ecl-s-xml
3345 (sbcl-package->ecl-package sbcl-s-xml))
3346
3347 (define-public sbcl-s-xml-rpc
3348 (package
3349 (name "sbcl-s-xml-rpc")
3350 (version "7")
3351 (source
3352 (origin
3353 (method url-fetch)
3354 (uri "https://common-lisp.net/project/s-xml-rpc/s-xml-rpc.tgz")
3355 (sha256
3356 (base32
3357 "02z7k163d51v0pzk8mn1xb6h5s6x64gjqkslhwm3a5x26k2gfs11"))))
3358 (build-system asdf-build-system/sbcl)
3359 (inputs
3360 `(("s-xml" ,sbcl-s-xml)))
3361 (home-page "https://common-lisp.net/project/s-xml-rpc/")
3362 (synopsis "Implementation of XML-RPC in Common Lisp for both client and server")
3363 (description
3364 "S-XML-RPC is an implementation of XML-RPC in Common Lisp for both
3365 client and server.")
3366 (license license:lgpl3+)))
3367
3368 (define-public cl-s-xml-rpc
3369 (sbcl-package->cl-source-package sbcl-s-xml-rpc))
3370
3371 (define-public ecl-s-xml-rpc
3372 (sbcl-package->ecl-package sbcl-s-xml-rpc))
3373
3374 (define-public sbcl-trivial-clipboard
3375 (let ((commit "5af3415d1484e6d69a1b5c178f24680d9fd01796"))
3376 (package
3377 (name "sbcl-trivial-clipboard")
3378 (version (git-version "0.0.0.0" "2" commit))
3379 (source
3380 (origin
3381 (method git-fetch)
3382 (uri (git-reference
3383 (url "https://github.com/snmsts/trivial-clipboard")
3384 (commit commit)))
3385 (file-name (git-file-name "trivial-clipboard" version))
3386 (sha256
3387 (base32
3388 "1gb515z5yq6h5548pb1fwhmb0hhq1ssyb78pvxh4alq799xipxs9"))))
3389 (build-system asdf-build-system/sbcl)
3390 (inputs
3391 `(("xclip" ,xclip)))
3392 (native-inputs
3393 `(("fiveam" ,sbcl-fiveam)))
3394 (arguments
3395 `(#:phases
3396 (modify-phases %standard-phases
3397 (add-after 'unpack 'fix-paths
3398 (lambda* (#:key inputs #:allow-other-keys)
3399 (substitute* "src/text.lisp"
3400 (("\\(executable-find \"xclip\"\\)")
3401 (string-append "(executable-find \""
3402 (assoc-ref inputs "xclip")
3403 "/bin/xclip\")"))))))))
3404 (home-page "https://github.com/snmsts/trivial-clipboard")
3405 (synopsis "Access system clipboard in Common Lisp")
3406 (description
3407 "@command{trivial-clipboard} gives access to the system clipboard.")
3408 (license license:expat))))
3409
3410 (define-public cl-trivial-clipboard
3411 (sbcl-package->cl-source-package sbcl-trivial-clipboard))
3412
3413 (define-public ecl-trivial-clipboard
3414 (sbcl-package->ecl-package sbcl-trivial-clipboard))
3415
3416 (define-public sbcl-trivial-backtrace
3417 (let ((commit "ca81c011b86424a381a7563cea3b924f24e6fbeb")
3418 (revision "1"))
3419 (package
3420 (name "sbcl-trivial-backtrace")
3421 (version (git-version "0.0.0" revision commit))
3422 (source
3423 (origin
3424 (method git-fetch)
3425 (uri (git-reference
3426 (url "https://github.com/gwkkwg/trivial-backtrace.git")
3427 (commit commit)))
3428 (file-name (git-file-name "trivial-backtrace" version))
3429 (sha256
3430 (base32 "10p41p43skj6cimdg8skjy7372s8v2xpkg8djjy0l8rm45i654k1"))))
3431 (build-system asdf-build-system/sbcl)
3432 (inputs
3433 `(("sbcl-lift" ,sbcl-lift)))
3434 (arguments
3435 `(#:phases
3436 (modify-phases %standard-phases
3437 (add-after 'check 'delete-test-results
3438 (lambda* (#:key outputs #:allow-other-keys)
3439 (let ((test-results (string-append (assoc-ref outputs "out")
3440 "/share/common-lisp/"
3441 (%lisp-type) "-source"
3442 "/trivial-backtrace"
3443 "/test-results")))
3444 (when (file-exists? test-results)
3445 (delete-file-recursively test-results)))
3446 #t)))))
3447 (home-page "https://common-lisp.net/project/trivial-backtrace/")
3448 (synopsis "Portable simple API to work with backtraces in Common Lisp")
3449 (description
3450 "On of the many things that didn't quite get into the Common Lisp
3451 standard was how to get a Lisp to output its call stack when something has
3452 gone wrong. As such, each Lisp has developed its own notion of what to
3453 display, how to display it, and what sort of arguments can be used to
3454 customize it. @code{trivial-backtrace} is a simple solution to generating a
3455 backtrace portably.")
3456 (license license:expat))))
3457
3458 (define-public cl-trivial-backtrace
3459 (sbcl-package->cl-source-package sbcl-trivial-backtrace))
3460
3461 (define-public sbcl-rfc2388
3462 (let ((commit "591bcf7e77f2c222c43953a80f8c297751dc0c4e")
3463 (revision "1"))
3464 (package
3465 (name "sbcl-rfc2388")
3466 (version (git-version "0.0.0" revision commit))
3467 (source
3468 (origin
3469 (method git-fetch)
3470 (uri (git-reference
3471 (url "https://github.com/jdz/rfc2388.git")
3472 (commit commit)))
3473 (file-name (git-file-name "rfc2388" version))
3474 (sha256
3475 (base32 "0phh5n3clhl9ji8jaxrajidn22d3f0aq87mlbfkkxlnx2pnw694k"))))
3476 (build-system asdf-build-system/sbcl)
3477 (home-page "https://github.com/jdz/rfc2388/")
3478 (synopsis "An implementation of RFC 2388 in Common Lisp")
3479 (description
3480 "This package contains an implementation of RFC 2388, which is used to
3481 process form data posted with HTTP POST method using enctype
3482 \"multipart/form-data\".")
3483 (license license:bsd-2))))
3484
3485 (define-public cl-rfc2388
3486 (sbcl-package->cl-source-package sbcl-rfc2388))
3487
3488 (define-public sbcl-md5
3489 (package
3490 (name "sbcl-md5")
3491 (version "2.0.4")
3492 (source
3493 (origin
3494 (method url-fetch)
3495 (uri (string-append
3496 "https://github.com/pmai/md5/archive/release-" version ".tar.gz"))
3497 (sha256
3498 (base32 "19yl9n0pjdz5gw4qi711lka97xcd9f81ylg434hk7jwn9f2s6w11"))))
3499 (build-system asdf-build-system/sbcl)
3500 (home-page "https://github.com/pmai/md5")
3501 (synopsis
3502 "Common Lisp implementation of the MD5 Message-Digest Algorithm (RFC 1321)")
3503 (description
3504 "This package implements The MD5 Message-Digest Algorithm, as defined in
3505 RFC 1321 by R. Rivest, published April 1992.")
3506 (license license:public-domain)))
3507
3508 (define-public cl-md5
3509 (sbcl-package->cl-source-package sbcl-md5))
3510
3511 (define-public sbcl-cl+ssl
3512 (let ((commit "141ae91416bc40f1618dc07e48429b84388aa599")
3513 (revision "1"))
3514 (package
3515 (name "sbcl-cl+ssl")
3516 (version (git-version "0.0.0" revision commit))
3517 (source
3518 (origin
3519 (method git-fetch)
3520 (uri (git-reference
3521 (url "https://github.com/cl-plus-ssl/cl-plus-ssl.git")
3522 (commit commit)))
3523 (file-name (git-file-name "cl+ssl" version))
3524 (sha256
3525 (base32 "1s0hg1h9sf8q89v0yrxmzg5f5sng29rgx3n21r9h9yql8351myan"))))
3526 (build-system asdf-build-system/sbcl)
3527 (arguments
3528 '(#:phases
3529 (modify-phases %standard-phases
3530 (add-after 'unpack 'fix-paths
3531 (lambda* (#:key inputs #:allow-other-keys)
3532 (substitute* "src/reload.lisp"
3533 (("libssl.so" all)
3534 (string-append
3535 (assoc-ref inputs "openssl") "/lib/" all))))))))
3536 (inputs
3537 `(("openssl" ,openssl)
3538 ("sbcl-cffi" ,sbcl-cffi)
3539 ("sbcl-trivial-gray-streams" ,sbcl-trivial-gray-streams)
3540 ("sbcl-flexi-streams" ,sbcl-flexi-streams)
3541 ("sbcl-bordeaux-threads" ,sbcl-bordeaux-threads)
3542 ("sbcl-trivial-garbage" ,sbcl-trivial-garbage)
3543 ("sbcl-alexandria" ,sbcl-alexandria)
3544 ("sbcl-trivial-features" ,sbcl-trivial-features)))
3545 (home-page "https://common-lisp.net/project/cl-plus-ssl/")
3546 (synopsis "Common Lisp bindings to OpenSSL")
3547 (description
3548 "This library is a fork of SSL-CMUCL. The original SSL-CMUCL source
3549 code was written by Eric Marsden and includes contributions by Jochen Schmidt.
3550 Development into CL+SSL was done by David Lichteblau.")
3551 (license license:expat))))
3552
3553 (define-public cl-cl+ssl
3554 (sbcl-package->cl-source-package sbcl-cl+ssl))
3555
3556 (define-public sbcl-kmrcl
3557 (let ((version "1.109.0")
3558 (commit "5260068b2eb735af6796740c2db4955afac21636")
3559 (revision "1"))
3560 (package
3561 (name "sbcl-kmrcl")
3562 (version (git-version version revision commit))
3563 (source
3564 (origin
3565 (method git-fetch)
3566 (uri (git-reference
3567 (url "http://git.kpe.io/kmrcl.git/")
3568 (commit commit)))
3569 (file-name (git-file-name name version))
3570 (sha256
3571 (base32 "1va7xjgzfv674bpsli674i7zj3f7wg5kxic41kz18r6hh4n52dfv"))))
3572 (build-system asdf-build-system/sbcl)
3573 (arguments
3574 ;; Tests fail with: :FORCE and :FORCE-NOT arguments not allowed in a
3575 ;; nested call to ASDF/OPERATE:OPERATE unless identically to toplevel
3576 '(#:tests? #f))
3577 (inputs
3578 `(("sbcl-rt" ,sbcl-rt)))
3579 (home-page "http://files.kpe.io/kmrcl/")
3580 (synopsis "General utilities for Common Lisp programs")
3581 (description
3582 "KMRCL is a collection of utilities used by a number of Kevin
3583 Rosenberg's CL packages.")
3584 (license license:llgpl))))
3585
3586 (define-public cl-kmrcl
3587 (sbcl-package->cl-source-package sbcl-kmrcl))
3588
3589 (define-public sbcl-cl-base64
3590 (let ((version "3.3.3"))
3591 (package
3592 (name "sbcl-cl-base64")
3593 (version version)
3594 (source
3595 (origin
3596 (method git-fetch)
3597 (uri (git-reference
3598 (url "http://git.kpe.io/cl-base64.git")
3599 (commit (string-append "v" version))))
3600 (file-name (git-file-name "cl-base64" version))
3601 (sha256
3602 (base32 "1dw6j7n6gsd2qa0p0rbsjxj00acxx3i9ca1qkgl0liy8lpnwkypl"))))
3603 (build-system asdf-build-system/sbcl)
3604 (arguments
3605 ;; Tests fail with: :FORCE and :FORCE-NOT arguments not allowed
3606 ;; in a nested call to ASDF/OPERATE:OPERATE unless identically
3607 ;; to toplevel
3608 '(#:tests? #f))
3609 (inputs
3610 `(("sbcl-ptester" ,sbcl-ptester)
3611 ("sbcl-kmrcl" ,sbcl-kmrcl)))
3612 (home-page "http://files.kpe.io/cl-base64/")
3613 (synopsis
3614 "Common Lisp package to encode and decode base64 with URI support")
3615 (description
3616 "This package provides highly optimized base64 encoding and decoding.
3617 Besides conversion to and from strings, integer conversions are supported.
3618 Encoding with Uniform Resource Identifiers is supported by using a modified
3619 encoding table that uses only URI-compatible characters.")
3620 (license license:bsd-3))))
3621
3622 (define-public cl-base64
3623 (sbcl-package->cl-source-package sbcl-cl-base64))
3624
3625 (define-public sbcl-chunga
3626 (package
3627 (name "sbcl-chunga")
3628 (version "1.1.7")
3629 (source
3630 (origin
3631 (method git-fetch)
3632 (uri (git-reference
3633 (url "https://github.com/edicl/chunga.git")
3634 (commit (string-append "v" version))))
3635 (file-name (git-file-name name version))
3636 (sha256
3637 (base32 "0jzn3nyb3f22gm983rfk99smqs3mhb9ivjmasvhq9qla5cl9pyhd"))))
3638 (build-system asdf-build-system/sbcl)
3639 (inputs
3640 `(("sbcl-trivial-gray-streams" ,sbcl-trivial-gray-streams)))
3641 (home-page "https://edicl.github.io/chunga/")
3642 (synopsis "Portable chunked streams for Common Lisp")
3643 (description
3644 "Chunga implements streams capable of chunked encoding on demand as
3645 defined in RFC 2616.")
3646 (license license:bsd-2)))
3647
3648 (define-public cl-chunga
3649 (sbcl-package->cl-source-package sbcl-chunga))
3650
3651 (define-public sbcl-cl-who
3652 (let ((version "1.1.4")
3653 (commit "2c08caa4bafba720409af9171feeba3f32e86d32")
3654 (revision "1"))
3655 (package
3656 (name "sbcl-cl-who")
3657 (version (git-version version revision commit))
3658 (source
3659 (origin
3660 (method git-fetch)
3661 (uri (git-reference
3662 (url "https://github.com/edicl/cl-who.git")
3663 (commit commit)))
3664 (file-name (git-file-name name version))
3665 (sha256
3666 (base32
3667 "0yjb6sr3yazm288m318kqvj9xk8rm9n1lpimgf65ymqv0i5agxsb"))))
3668 (build-system asdf-build-system/sbcl)
3669 (native-inputs
3670 `(("sbcl-flexi-streams" ,sbcl-flexi-streams)))
3671 (home-page "https://edicl.github.io/cl-who/")
3672 (synopsis "Yet another Lisp markup language")
3673 (description
3674 "There are plenty of Lisp Markup Languages out there - every Lisp
3675 programmer seems to write at least one during his career - and CL-WHO (where
3676 WHO means \"with-html-output\" for want of a better acronym) is probably just
3677 as good or bad as the next one.")
3678 (license license:bsd-2))))
3679
3680 (define-public cl-cl-who
3681 (sbcl-package->cl-source-package sbcl-cl-who))
3682
3683 (define-public sbcl-chipz
3684 (let ((version "0.8")
3685 (commit "75dfbc660a5a28161c57f115adf74c8a926bfc4d")
3686 (revision "1"))
3687 (package
3688 (name "sbcl-chipz")
3689 (version (git-version version revision commit))
3690 (source
3691 (origin
3692 (method git-fetch)
3693 (uri (git-reference
3694 (url "https://github.com/froydnj/chipz.git")
3695 (commit commit)))
3696 (file-name (git-file-name name version))
3697 (sha256
3698 (base32
3699 "0plx4rs39zbs4gjk77h4a2q11zpy75fh9v8hnxrvsf8fnakajhwg"))))
3700 (build-system asdf-build-system/sbcl)
3701 (native-inputs
3702 `(("sbcl-flexi-streams" ,sbcl-flexi-streams)))
3703 (home-page "http://method-combination.net/lisp/chipz/")
3704 (synopsis
3705 "Common Lisp library for decompressing deflate, zlib, gzip, and bzip2
3706 data")
3707 (description
3708 "DEFLATE data, defined in RFC1951, forms the core of popular
3709 compression formats such as zlib (RFC 1950) and gzip (RFC 1952). As such,
3710 Chipz also provides for decompressing data in those formats as well. BZIP2 is
3711 the format used by the popular compression tool bzip2.")
3712 ;; The author describes it as "MIT-like"
3713 (license license:expat))))
3714
3715 (define-public cl-chipz
3716 (sbcl-package->cl-source-package sbcl-chipz))
3717
3718 (define-public sbcl-drakma
3719 (package
3720 (name "sbcl-drakma")
3721 (version "2.0.7")
3722 (source
3723 (origin
3724 (method git-fetch)
3725 (uri (git-reference
3726 (url "https://github.com/edicl/drakma.git")
3727 (commit (string-append "v" version))))
3728 (file-name (git-file-name name version))
3729 (sha256
3730 (base32
3731 "1441idnyif9xzx3ln1p3fg36k2v9h4wasjqrzc8y52j61420qpci"))))
3732 (build-system asdf-build-system/sbcl)
3733 (inputs
3734 `(("sbcl-puri" ,sbcl-puri)
3735 ("sbcl-cl-base64" ,sbcl-cl-base64)
3736 ("sbcl-chunga" ,sbcl-chunga)
3737 ("sbcl-flexi-streams" ,sbcl-flexi-streams)
3738 ("sbcl-cl-ppcre" ,sbcl-cl-ppcre)
3739 ("sbcl-chipz" ,sbcl-chipz)
3740 ("sbcl-usocket" ,sbcl-usocket)
3741 ("sbcl-cl+ssl" ,sbcl-cl+ssl)))
3742 (native-inputs
3743 `(("sbcl-fiveam" ,sbcl-fiveam)))
3744 (home-page "https://edicl.github.io/drakma/")
3745 (synopsis "HTTP client written in Common Lisp")
3746 (description
3747 "Drakma is a full-featured HTTP client implemented in Common Lisp. It
3748 knows how to handle HTTP/1.1 chunking, persistent connections, re-usable
3749 sockets, SSL, continuable uploads, file uploads, cookies, and more.")
3750 (license license:bsd-2)))
3751
3752 (define-public cl-drakma
3753 (sbcl-package->cl-source-package sbcl-drakma))
3754
3755 (define-public ecl-drakma
3756 (sbcl-package->ecl-package sbcl-drakma))
3757
3758 (define-public sbcl-hunchentoot
3759 (package
3760 (name "sbcl-hunchentoot")
3761 (version "1.2.38")
3762 (source
3763 (origin
3764 (method git-fetch)
3765 (uri (git-reference
3766 (url "https://github.com/edicl/hunchentoot.git")
3767 (commit (string-append "v" version))))
3768 (file-name (git-file-name "hunchentoot" version))
3769 (sha256
3770 (base32 "1anpcad7w045m4rsjs1f3xdhjwx5cppq1h0vlb3q7dz81fi3i6yq"))))
3771 (build-system asdf-build-system/sbcl)
3772 (native-inputs
3773 `(("sbcl-cl-who" ,sbcl-cl-who)
3774 ("sbcl-drakma" ,sbcl-drakma)))
3775 (inputs
3776 `(("sbcl-chunga" ,sbcl-chunga)
3777 ("sbcl-cl-base64" ,sbcl-cl-base64)
3778 ("sbcl-cl-fad" ,sbcl-cl-fad)
3779 ("sbcl-cl-ppcre" ,sbcl-cl-ppcre)
3780 ("sbcl-flexi-streams" ,sbcl-flexi-streams)
3781 ("sbcl-cl+ssl" ,sbcl-cl+ssl)
3782 ("sbcl-md5" ,sbcl-md5)
3783 ("sbcl-rfc2388" ,sbcl-rfc2388)
3784 ("sbcl-trivial-backtrace" ,sbcl-trivial-backtrace)
3785 ("sbcl-usocket" ,sbcl-usocket)))
3786 (home-page "https://edicl.github.io/hunchentoot/")
3787 (synopsis "Web server written in Common Lisp")
3788 (description
3789 "Hunchentoot is a web server written in Common Lisp and at the same
3790 time a toolkit for building dynamic websites. As a stand-alone web server,
3791 Hunchentoot is capable of HTTP/1.1 chunking (both directions), persistent
3792 connections (keep-alive), and SSL.")
3793 (license license:bsd-2)))
3794
3795 (define-public cl-hunchentoot
3796 (sbcl-package->cl-source-package sbcl-hunchentoot))
3797
3798 (define-public sbcl-trivial-types
3799 (package
3800 (name "sbcl-trivial-types")
3801 (version "0.0.1")
3802 (source
3803 (origin
3804 (method git-fetch)
3805 (uri (git-reference
3806 (url "https://github.com/m2ym/trivial-types.git")
3807 (commit "ee869f2b7504d8aa9a74403641a5b42b16f47d88")))
3808 (file-name (git-file-name name version))
3809 (sha256
3810 (base32 "1s4cp9bdlbn8447q7w7f1wkgwrbvfzp20mgs307l5pxvdslin341"))))
3811 (build-system asdf-build-system/sbcl)
3812 (home-page "https://github.com/m2ym/trivial-types")
3813 (synopsis "Trivial type definitions for Common Lisp")
3814 (description
3815 "TRIVIAL-TYPES provides missing but important type definitions such as
3816 PROPER-LIST, ASSOCIATION-LIST, PROPERTY-LIST and TUPLE.")
3817 (license license:llgpl)))
3818
3819 (define-public cl-trivial-types
3820 (sbcl-package->cl-source-package sbcl-trivial-types))
3821
3822 (define-public sbcl-cl-syntax
3823 (package
3824 (name "sbcl-cl-syntax")
3825 (version "0.0.3")
3826 (source
3827 (origin
3828 (method git-fetch)
3829 (uri (git-reference
3830 (url "https://github.com/m2ym/cl-syntax.git")
3831 (commit "03f0c329bbd55b8622c37161e6278366525e2ccc")))
3832 (file-name (git-file-name "cl-syntax" version))
3833 (sha256
3834 (base32 "17ran8xp77asagl31xv8w819wafh6whwfc9p6dgx22ca537gyl4y"))))
3835 (build-system asdf-build-system/sbcl)
3836 (arguments
3837 '(#:asd-file "cl-syntax.asd"
3838 #:asd-system-name "cl-syntax"))
3839 (inputs `(("sbcl-trivial-types" ,sbcl-trivial-types)
3840 ("sbcl-named-readtables" ,sbcl-named-readtables)))
3841 (home-page "https://github.com/m2ym/cl-syntax")
3842 (synopsis "Reader Syntax Coventions for Common Lisp and SLIME")
3843 (description
3844 "CL-SYNTAX provides Reader Syntax Coventions for Common Lisp and SLIME.")
3845 (license license:llgpl)))
3846
3847 (define-public cl-syntax
3848 (sbcl-package->cl-source-package sbcl-cl-syntax))
3849
3850 (define-public sbcl-cl-annot
3851 (let ((commit "c99e69c15d935eabc671b483349a406e0da9518d")
3852 (revision "1"))
3853 (package
3854 (name "sbcl-cl-annot")
3855 (version (git-version "0.0.0" revision commit))
3856 (source
3857 (origin
3858 (method git-fetch)
3859 (uri (git-reference
3860 (url "https://github.com/m2ym/cl-annot.git")
3861 (commit commit)))
3862 (file-name (git-file-name name version))
3863 (sha256
3864 (base32 "1wq1gs9jjd5m6iwrv06c2d7i5dvqsfjcljgbspfbc93cg5xahk4n"))))
3865 (build-system asdf-build-system/sbcl)
3866 (arguments
3867 '(#:asd-file "cl-annot.asd"
3868 #:asd-system-name "cl-annot"))
3869 (inputs
3870 `(("sbcl-alexandria" ,sbcl-alexandria)))
3871 (home-page "https://github.com/m2ym/cl-annot")
3872 (synopsis "Python-like Annotation Syntax for Common Lisp.")
3873 (description
3874 "@code{cl-annot} is an general annotation library for Common Lisp.")
3875 (license license:llgpl))))
3876
3877 (define-public cl-annot
3878 (sbcl-package->cl-source-package sbcl-cl-annot))
3879
3880 (define-public sbcl-cl-syntax-annot
3881 (package
3882 (name "sbcl-cl-syntax-annot")
3883 (version "0.0.3")
3884 (source
3885 (origin
3886 (method git-fetch)
3887 (uri (git-reference
3888 (url "https://github.com/m2ym/cl-syntax.git")
3889 (commit "03f0c329bbd55b8622c37161e6278366525e2ccc")))
3890 (file-name (git-file-name name version))
3891 (sha256
3892 (base32 "17ran8xp77asagl31xv8w819wafh6whwfc9p6dgx22ca537gyl4y"))))
3893 (build-system asdf-build-system/sbcl)
3894 (arguments
3895 '(#:asd-file "cl-syntax-annot.asd"
3896 #:asd-system-name "cl-syntax-annot"))
3897 (inputs
3898 `(("sbcl-cl-syntax" ,sbcl-cl-syntax)
3899 ("sbcl-cl-annot" ,sbcl-cl-annot)))
3900 (home-page "https://github.com/m2ym/cl-syntax")
3901 (synopsis "Reader Syntax Coventions for Common Lisp and SLIME")
3902 (description
3903 "CL-SYNTAX provides Reader Syntax Coventions for Common Lisp and
3904 SLIME.")
3905 (license license:llgpl)))
3906
3907 (define-public cl-syntax-annot
3908 (sbcl-package->cl-source-package sbcl-cl-syntax-annot))
3909
3910 (define-public sbcl-cl-utilities
3911 (let ((commit "dce2d2f6387091ea90357a130fa6d13a6776884b")
3912 (revision "1"))
3913 (package
3914 (name "sbcl-cl-utilities")
3915 (version (git-version "0.0.0" revision commit))
3916 (source
3917 (origin
3918 (method url-fetch)
3919 (uri
3920 (string-append
3921 "https://gitlab.common-lisp.net/cl-utilities/cl-utilities/-/"
3922 "archive/" commit "/cl-utilities-" commit ".tar.gz"))
3923 (sha256
3924 (base32 "1r46v730yf96nk2vb24qmagv9x96xvd08abqwhf02ghgydv1a7z2"))))
3925 (build-system asdf-build-system/sbcl)
3926 (arguments
3927 '(#:asd-file "cl-utilities.asd"
3928 #:asd-system-name "cl-utilities"
3929 #:phases
3930 (modify-phases %standard-phases
3931 (add-after 'unpack 'fix-paths
3932 (lambda* (#:key inputs #:allow-other-keys)
3933 (substitute* "rotate-byte.lisp"
3934 (("in-package :cl-utilities)" all)
3935 "in-package :cl-utilities)\n\n#+sbcl\n(require :sb-rotate-byte)")))))))
3936 (home-page "http://common-lisp.net/project/cl-utilities")
3937 (synopsis "A collection of semi-standard utilities")
3938 (description
3939 "On Cliki.net <http://www.cliki.net/Common%20Lisp%20Utilities>, there
3940 is a collection of Common Lisp Utilities, things that everybody writes since
3941 they're not part of the official standard. There are some very useful things
3942 there; the only problems are that they aren't implemented as well as you'd
3943 like (some aren't implemented at all) and they aren't conveniently packaged
3944 and maintained. It takes quite a bit of work to carefully implement utilities
3945 for common use, commented and documented, with error checking placed
3946 everywhere some dumb user might make a mistake.")
3947 (license license:public-domain))))
3948
3949 (define-public cl-utilities
3950 (sbcl-package->cl-source-package sbcl-cl-utilities))
3951
3952 (define-public sbcl-map-set
3953 (let ((commit "7b4b545b68b8")
3954 (revision "1"))
3955 (package
3956 (name "sbcl-map-set")
3957 (version (git-version "0.0.0" revision commit))
3958 (source
3959 (origin
3960 (method url-fetch)
3961 (uri (string-append
3962 "https://bitbucket.org/tarballs_are_good/map-set/get/"
3963 commit ".tar.gz"))
3964 (sha256
3965 (base32 "1sx5j5qdsy5fklspfammwb16kjrhkggdavm922a9q86jm5l0b239"))))
3966 (build-system asdf-build-system/sbcl)
3967 (home-page "https://bitbucket.org/tarballs_are_good/map-set")
3968 (synopsis "Set-like data structure")
3969 (description
3970 "Implementation of a set-like data structure with constant time
3971 addition, removal, and random selection.")
3972 (license license:bsd-3))))
3973
3974 (define-public cl-map-set
3975 (sbcl-package->cl-source-package sbcl-map-set))
3976
3977 (define-public sbcl-quri
3978 (let ((commit "76b75103f21ead092c9f715512fa82441ef61185")
3979 (revision "1"))
3980 (package
3981 (name "sbcl-quri")
3982 (version (git-version "0.1.0" revision commit))
3983 (source
3984 (origin
3985 (method git-fetch)
3986 (uri (git-reference
3987 (url "https://github.com/fukamachi/quri.git")
3988 (commit commit)))
3989 (file-name (git-file-name name version))
3990 (sha256
3991 (base32 "1ccbxsgzdibmzq33mmbmmz9vwl6l03xh6nbpsh1hkdvdcl7q0a60"))))
3992 (build-system asdf-build-system/sbcl)
3993 (arguments
3994 ;; Tests fail with: Component QURI-ASD::QURI-TEST not found,
3995 ;; required by #<SYSTEM "quri">. Why?
3996 '(#:tests? #f))
3997 (native-inputs `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
3998 ("sbcl-prove" ,sbcl-prove)))
3999 (inputs `(("sbcl-babel" ,sbcl-babel)
4000 ("sbcl-split-sequence" ,sbcl-split-sequence)
4001 ("sbcl-cl-utilities" ,sbcl-cl-utilities)
4002 ("sbcl-alexandria" ,sbcl-alexandria)))
4003 (home-page "https://github.com/fukamachi/quri")
4004 (synopsis "Yet another URI library for Common Lisp")
4005 (description
4006 "QURI (pronounced \"Q-ree\") is yet another URI library for Common
4007 Lisp. It is intended to be a replacement of PURI.")
4008 (license license:bsd-3))))
4009
4010 (define-public cl-quri
4011 (sbcl-package->cl-source-package sbcl-quri))
4012
4013 (define-public sbcl-myway
4014 (let ((commit "286230082a11f879c18b93f17ca571c5f676bfb7")
4015 (revision "1"))
4016 (package
4017 (name "sbcl-myway")
4018 (version (git-version "0.1.0" revision commit))
4019 (source
4020 (origin
4021 (method git-fetch)
4022 (uri (git-reference
4023 (url "https://github.com/fukamachi/myway.git")
4024 (commit commit)))
4025 (file-name (git-file-name "myway" version))
4026 (sha256
4027 (base32 "0briia9bk3lbr0frnx39d1qg6i38dm4j6z9w3yga3d40k6df4a90"))))
4028 (build-system asdf-build-system/sbcl)
4029 (arguments
4030 ;; Tests fail with: Component MYWAY-ASD::MYWAY-TEST not found, required
4031 ;; by #<SYSTEM "myway">. Why?
4032 '(#:tests? #f))
4033 (native-inputs
4034 `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
4035 ("sbcl-prove" ,sbcl-prove)))
4036 (inputs
4037 `(("sbcl-cl-ppcre" ,sbcl-cl-ppcre)
4038 ("sbcl-quri" ,sbcl-quri)
4039 ("sbcl-map-set" ,sbcl-map-set)))
4040 (home-page "https://github.com/fukamachi/myway")
4041 (synopsis "Sinatra-compatible URL routing library for Common Lisp")
4042 (description "My Way is a Sinatra-compatible URL routing library.")
4043 (license license:llgpl))))
4044
4045 (define-public cl-myway
4046 (sbcl-package->cl-source-package sbcl-myway))
4047
4048 (define-public sbcl-xsubseq
4049 (let ((commit "5ce430b3da5cda3a73b9cf5cee4df2843034422b")
4050 (revision "1"))
4051 (package
4052 (name "sbcl-xsubseq")
4053 (version (git-version "0.0.1" revision commit))
4054 (source
4055 (origin
4056 (method git-fetch)
4057 (uri (git-reference
4058 (url "https://github.com/fukamachi/xsubseq")
4059 (commit commit)))
4060 (file-name (git-file-name name version))
4061 (sha256
4062 (base32 "1xz79q0p2mclf3sqjiwf6izdpb6xrsr350bv4mlmdlm6rg5r99px"))))
4063 (build-system asdf-build-system/sbcl)
4064 (arguments
4065 ;; Tests fail with: Component XSUBSEQ-ASD::XSUBSEQ-TEST not found,
4066 ;; required by #<SYSTEM "xsubseq">. Why?
4067 '(#:tests? #f))
4068 (native-inputs
4069 `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
4070 ("sbcl-prove" ,sbcl-prove)))
4071 (home-page "https://github.com/fukamachi/xsubseq")
4072 (synopsis "Efficient way to use \"subseq\"s in Common Lisp")
4073 (description
4074 "XSubseq provides functions to be able to handle \"subseq\"s more
4075 effieiently.")
4076 (license license:bsd-2))))
4077
4078 (define-public cl-xsubseq
4079 (sbcl-package->cl-source-package sbcl-xsubseq))
4080
4081 (define-public sbcl-smart-buffer
4082 (let ((commit "09b9a9a0b3abaa37abe9a730f5aac2643dca4e62")
4083 (revision "1"))
4084 (package
4085 (name "sbcl-smart-buffer")
4086 (version (git-version "0.0.1" revision commit))
4087 (source
4088 (origin
4089 (method git-fetch)
4090 (uri (git-reference
4091 (url "https://github.com/fukamachi/smart-buffer")
4092 (commit commit)))
4093 (file-name (git-file-name name version))
4094 (sha256
4095 (base32 "0qz1zzxx0wm5ff7gpgsq550a59p0qj594zfmm2rglj97dahj54l7"))))
4096 (build-system asdf-build-system/sbcl)
4097 (arguments
4098 ;; Tests fail with: Component SMART-BUFFER-ASD::SMART-BUFFER-TEST not
4099 ;; found, required by #<SYSTEM "smart-buffer">. Why?
4100 `(#:tests? #f))
4101 (native-inputs
4102 `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
4103 ("sbcl-prove" ,sbcl-prove)))
4104 (inputs
4105 `(("sbcl-xsubseq" ,sbcl-xsubseq)
4106 ("sbcl-flexi-streams" ,sbcl-flexi-streams)))
4107 (home-page "https://github.com/fukamachi/smart-buffer")
4108 (synopsis "Smart octets buffer")
4109 (description
4110 "Smart-buffer provides an output buffer which changes the destination
4111 depending on content size.")
4112 (license license:bsd-3))))
4113
4114 (define-public cl-smart-buffer
4115 (sbcl-package->cl-source-package sbcl-smart-buffer))
4116
4117 (define-public sbcl-fast-http
4118 (let ((commit "f9e7597191bae380503e20724fd493a24d024935")
4119 (revision "1"))
4120 (package
4121 (name "sbcl-fast-http")
4122 (version (git-version "0.2.0" revision commit))
4123 (source
4124 (origin
4125 (method git-fetch)
4126 (uri (git-reference
4127 (url "https://github.com/fukamachi/fast-http")
4128 (commit commit)))
4129 (file-name (git-file-name name version))
4130 (sha256
4131 (base32 "0qdmwv2zm0sizxdb8nnclgwl0nfjcbjaimbakavikijw7lr9b4jp"))))
4132 (build-system asdf-build-system/sbcl)
4133 (arguments
4134 ;; Tests fail with: Component FAST-HTTP-ASD::FAST-HTTP-TEST not found,
4135 ;; required by #<SYSTEM "fast-http">. Why?
4136 `(#:tests? #f))
4137 (native-inputs
4138 `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
4139 ("sbcl-prove" ,sbcl-prove)))
4140 (inputs
4141 `(("sbcl-alexandria" ,sbcl-alexandria)
4142 ("sbcl-proc-parse" ,sbcl-proc-parse)
4143 ("sbcl-xsubseq" ,sbcl-xsubseq)
4144 ("sbcl-smart-buffer" ,sbcl-smart-buffer)
4145 ("sbcl-cl-utilities" ,sbcl-cl-utilities)))
4146 (home-page "https://github.com/fukamachi/fast-http")
4147 (synopsis "HTTP request/response parser for Common Lisp")
4148 (description
4149 "@code{fast-http} is a HTTP request/response protocol parser for Common
4150 Lisp.")
4151 ;; Author specified the MIT license
4152 (license license:expat))))
4153
4154 (define-public cl-fast-http
4155 (sbcl-package->cl-source-package sbcl-fast-http))
4156
4157 (define-public sbcl-static-vectors
4158 (package
4159 (name "sbcl-static-vectors")
4160 (version "1.8.4")
4161 (source
4162 (origin
4163 (method git-fetch)
4164 (uri (git-reference
4165 (url "https://github.com/sionescu/static-vectors.git")
4166 (commit (string-append "v" version))))
4167 (file-name (git-file-name name version))
4168 (sha256
4169 (base32 "0qvf9z6bhwhm8n45fjwkm7j8dcb58szfvndky65cyn4lpdval7m1"))))
4170 (native-inputs
4171 `(("sbcl-fiveam" ,sbcl-fiveam)))
4172 (inputs
4173 `(("sbcl-cffi-grovel" ,sbcl-cffi-grovel)
4174 ("sbcl-cffi" ,sbcl-cffi)))
4175 (build-system asdf-build-system/sbcl)
4176 (home-page "https://github.com/sionescu/static-vectors")
4177 (synopsis "Allocate SIMPLE-ARRAYs in static memory")
4178 (description
4179 "With @code{static-vectors}, you can create vectors allocated in static
4180 memory.")
4181 (license license:expat)))
4182
4183 (define-public cl-static-vectors
4184 (sbcl-package->cl-source-package sbcl-static-vectors))
4185
4186 (define-public ecl-static-vectors
4187 (sbcl-package->ecl-package sbcl-static-vectors))
4188
4189 (define-public sbcl-marshal
4190 (let ((commit "eff1b15f2b0af2f26f71ad6a4dd5c4beab9299ec")
4191 (revision "1"))
4192 (package
4193 (name "sbcl-marshal")
4194 (version (git-version "1.3.0" revision commit))
4195 (source
4196 (origin
4197 (method git-fetch)
4198 (uri (git-reference
4199 (url "https://github.com/wlbr/cl-marshal.git")
4200 (commit commit)))
4201 (file-name (git-file-name name version))
4202 (sha256
4203 (base32 "08qs6fhk38xpkkjkpcj92mxx0lgy4ygrbbzrmnivdx281syr0gwh"))))
4204 (build-system asdf-build-system/sbcl)
4205 (home-page "https://github.com/wlbr/cl-marshal")
4206 (synopsis "Simple (de)serialization of Lisp datastructures")
4207 (description
4208 "Simple and fast marshalling of Lisp datastructures. Convert any object
4209 into a string representation, put it on a stream an revive it from there.
4210 Only minimal changes required to make your CLOS objects serializable.")
4211 (license license:expat))))
4212
4213 (define-public cl-marshal
4214 (sbcl-package->cl-source-package sbcl-marshal))
4215
4216 (define-public sbcl-checkl
4217 (let ((commit "80328800d047fef9b6e32dfe6bdc98396aee3cc9")
4218 (revision "1"))
4219 (package
4220 (name "sbcl-checkl")
4221 (version (git-version "0.0.0" revision commit))
4222 (source
4223 (origin
4224 (method git-fetch)
4225 (uri (git-reference
4226 (url "https://github.com/rpav/CheckL.git")
4227 (commit commit)))
4228 (file-name (git-file-name name version))
4229 (sha256
4230 (base32 "0bpisihx1gay44xmyr1dmhlwh00j0zzi04rp9fy35i95l2r4xdlx"))))
4231 (build-system asdf-build-system/sbcl)
4232 (arguments
4233 ;; Error while trying to load definition for system checkl-test from
4234 ;; pathname [...]/checkl-test.asd: The function CHECKL:DEFINE-TEST-OP
4235 ;; is undefined.
4236 '(#:tests? #f))
4237 (native-inputs
4238 `(("sbcl-fiveam" ,sbcl-fiveam)))
4239 (inputs
4240 `(("sbcl-marshal" ,sbcl-marshal)))
4241 (home-page "https://github.com/rpav/CheckL/")
4242 (synopsis "Dynamic testing for Common Lisp")
4243 (description
4244 "CheckL lets you write tests dynamically, it checks resulting values
4245 against the last run.")
4246 ;; The author specifies both LLGPL and "BSD", but the "BSD" license
4247 ;; isn't specified anywhere, so I don't know which kind. LLGPL is the
4248 ;; stronger of the two and so I think only listing this should suffice.
4249 (license license:llgpl))))
4250
4251 (define-public cl-checkl
4252 (sbcl-package->cl-source-package sbcl-checkl))
4253
4254 (define-public sbcl-fast-io
4255 (let ((commit "dc3a71db7e9b756a88781ae9c342fe9d4bbab51c")
4256 (revision "1"))
4257 (package
4258 (name "sbcl-fast-io")
4259 (version (git-version "1.0.0" revision commit))
4260 (source
4261 (origin
4262 (method git-fetch)
4263 (uri (git-reference
4264 (url "https://github.com/rpav/fast-io.git")
4265 (commit commit)))
4266 (file-name (git-file-name name version))
4267 (sha256
4268 (base32 "1jsp6xvi26ln6fdy5j5zi05xvan8jsqdhisv552dy6xg6ws8i1yq"))))
4269 (build-system asdf-build-system/sbcl)
4270 (arguments
4271 ;; Error while trying to load definition for system fast-io-test from
4272 ;; pathname [...]/fast-io-test.asd: The function CHECKL:DEFINE-TEST-OP
4273 ;; is undefined.
4274 '(#:tests? #f))
4275 (native-inputs
4276 `(("sbcl-fiveam" ,sbcl-fiveam)
4277 ("sbcl-checkl" ,sbcl-checkl)))
4278 (inputs
4279 `(("sbcl-alexandria" ,sbcl-alexandria)
4280 ("sbcl-trivial-gray-streams" ,sbcl-trivial-gray-streams)
4281 ("sbcl-static-vectors" ,sbcl-static-vectors)))
4282 (home-page "https://github.com/rpav/fast-io")
4283 (synopsis "Fast octet-vector/stream I/O for Common Lisp")
4284 (description
4285 "Fast-io is about improving performance to octet-vectors and octet
4286 streams (though primarily the former, while wrapping the latter).")
4287 ;; Author specifies this as NewBSD which is an alias
4288 (license license:bsd-3))))
4289
4290 (define-public cl-fast-io
4291 (sbcl-package->cl-source-package sbcl-fast-io))
4292
4293 (define-public sbcl-jonathan
4294 (let ((commit "1f448b4f7ac8265e56e1c02b32ce383e65316300")
4295 (revision "1"))
4296 (package
4297 (name "sbcl-jonathan")
4298 (version (git-version "0.1.0" revision commit))
4299 (source
4300 (origin
4301 (method git-fetch)
4302 (uri (git-reference
4303 (url "https://github.com/Rudolph-Miller/jonathan.git")
4304 (commit commit)))
4305 (file-name (git-file-name name version))
4306 (sha256
4307 (base32 "14x4iwz3mbag5jzzzr4sb6ai0m9r4q4kyypbq32jmsk2dx1hi807"))))
4308 (build-system asdf-build-system/sbcl)
4309 (arguments
4310 ;; Tests fail with: Component JONATHAN-ASD::JONATHAN-TEST not found,
4311 ;; required by #<SYSTEM "jonathan">. Why?
4312 `(#:tests? #f))
4313 (native-inputs
4314 `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
4315 ("sbcl-prove" ,sbcl-prove)))
4316 (inputs
4317 `(("sbcl-cl-syntax" ,sbcl-cl-syntax)
4318 ("sbcl-cl-syntax-annot" ,sbcl-cl-syntax-annot)
4319 ("sbcl-fast-io" ,sbcl-fast-io)
4320 ("sbcl-proc-parse" ,sbcl-proc-parse)
4321 ("sbcl-cl-ppcre" ,sbcl-cl-ppcre)))
4322 (home-page "https://rudolph-miller.github.io/jonathan/overview.html")
4323 (synopsis "JSON encoder and decoder")
4324 (description
4325 "High performance JSON encoder and decoder. Currently support: SBCL,
4326 CCL.")
4327 ;; Author specifies the MIT license
4328 (license license:expat))))
4329
4330 (define-public cl-jonathan
4331 (sbcl-package->cl-source-package sbcl-jonathan))
4332
4333 (define-public sbcl-http-body
4334 (let ((commit "dd01dc4f5842e3d29728552e5163acce8386eb73")
4335 (revision "1"))
4336 (package
4337 (name "sbcl-http-body")
4338 (version (git-version "0.1.0" revision commit))
4339 (source
4340 (origin
4341 (method git-fetch)
4342 (uri (git-reference
4343 (url "https://github.com/fukamachi/http-body")
4344 (commit commit)))
4345 (file-name (git-file-name name version))
4346 (sha256
4347 (base32 "1jd06snjvxcprhapgfq8sx0y5lrldkvhf206ix6d5a23dd6zcmr0"))))
4348 (build-system asdf-build-system/sbcl)
4349 (arguments
4350 ;; Tests fail with: Component HTTP-BODY-ASD::HTTP-BODY-TEST not
4351 ;; found, required by #<SYSTEM "http-body">. Why?
4352 `(#:tests? #f))
4353 (native-inputs
4354 `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
4355 ("sbcl-prove" ,sbcl-prove)))
4356 (inputs
4357 `(("sbcl-fast-http" ,sbcl-fast-http)
4358 ("sbcl-jonathan" ,sbcl-jonathan)
4359 ("sbcl-quri" ,sbcl-quri)))
4360 (home-page "https://github.com/fukamachi/http-body")
4361 (synopsis "HTTP POST data parser")
4362 (description
4363 "HTTP-Body parses HTTP POST data and returns POST parameters. It
4364 supports application/x-www-form-urlencoded, application/json, and
4365 multipart/form-data.")
4366 (license license:bsd-2))))
4367
4368 (define-public cl-http-body
4369 (sbcl-package->cl-source-package sbcl-http-body))
4370
4371 (define-public sbcl-circular-streams
4372 (let ((commit "e770bade1919c5e8533dd2078c93c3d3bbeb38df")
4373 (revision "1"))
4374 (package
4375 (name "sbcl-circular-streams")
4376 (version (git-version "0.1.0" revision commit))
4377 (source
4378 (origin
4379 (method git-fetch)
4380 (uri (git-reference
4381 (url "https://github.com/fukamachi/circular-streams")
4382 (commit commit)))
4383 (file-name (git-file-name name version))
4384 (sha256
4385 (base32 "1wpw6d5cciyqcf92f7mvihak52pd5s47kk4qq6f0r2z2as68p5rs"))))
4386 (build-system asdf-build-system/sbcl)
4387 (arguments
4388 ;; The tests depend on cl-test-more which is now prove. Prove
4389 ;; tests aren't working for some reason.
4390 `(#:tests? #f))
4391 (inputs
4392 `(("sbcl-fast-io" ,sbcl-fast-io)
4393 ("sbcl-trivial-gray-streams" ,sbcl-trivial-gray-streams)))
4394 (home-page "https://github.com/fukamachi/circular-streams")
4395 (synopsis "Circularly readable streams for Common Lisp")
4396 (description
4397 "Circular-Streams allows you to read streams circularly by wrapping real
4398 streams. Once you reach end-of-file of a stream, it's file position will be
4399 reset to 0 and you're able to read it again.")
4400 (license license:llgpl))))
4401
4402 (define-public cl-circular-streams
4403 (sbcl-package->cl-source-package sbcl-circular-streams))
4404
4405 (define-public sbcl-lack-request
4406 (let ((commit "abff8efeb0c3a848e6bb0022f2b8b7fa3a1bc88b")
4407 (revision "1"))
4408 (package
4409 (name "sbcl-lack-request")
4410 (version (git-version "0.1.0" revision commit))
4411 (source
4412 (origin
4413 (method git-fetch)
4414 (uri (git-reference
4415 (url "https://github.com/fukamachi/lack.git")
4416 (commit commit)))
4417 (file-name (git-file-name "lack-request" version))
4418 (sha256
4419 (base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85"))))
4420 (build-system asdf-build-system/sbcl)
4421 (arguments
4422 '(#:asd-file "lack-request.asd"
4423 #:asd-system-name "lack-request"
4424 #:test-asd-file "t-lack-request.asd"
4425 ;; XXX: Component :CLACK-TEST not found
4426 #:tests? #f))
4427 (native-inputs
4428 `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
4429 ("sbcl-prove" ,sbcl-prove)))
4430 (inputs
4431 `(("sbcl-quri" ,sbcl-quri)
4432 ("sbcl-http-body" ,sbcl-http-body)
4433 ("sbcl-circular-streams" ,sbcl-circular-streams)))
4434 (home-page "https://github.com/fukamachi/lack")
4435 (synopsis "Lack, the core of Clack")
4436 (description
4437 "Lack is a Common Lisp library which allows web applications to be
4438 constructed of modular components. It was originally a part of Clack, however
4439 it's going to be rewritten as an individual project since Clack v2 with
4440 performance and simplicity in mind.")
4441 (license license:llgpl))))
4442
4443 (define-public cl-lack-request
4444 (sbcl-package->cl-source-package sbcl-lack-request))
4445
4446 (define-public sbcl-local-time
4447 (let ((commit "beac054eef428552b63d4ae7820c32ffef9a3015")
4448 (revision "1"))
4449 (package
4450 (name "sbcl-local-time")
4451 (version (git-version "1.0.6" revision commit))
4452 (source
4453 (origin
4454 (method git-fetch)
4455 (uri (git-reference
4456 (url "https://github.com/dlowe-net/local-time.git")
4457 (commit commit)))
4458 (file-name (git-file-name name version))
4459 (sha256
4460 (base32 "0xhkmgxh41dg2wwlsp0h2l41jp144xn4gpxhh0lna6kh0560w2cc"))))
4461 (build-system asdf-build-system/sbcl)
4462 (arguments
4463 ;; TODO: Component :STEFIL not found, required by #<SYSTEM
4464 ;; "local-time/test">
4465 '(#:tests? #f))
4466 (native-inputs
4467 `(("stefil" ,sbcl-hu.dwim.stefil)))
4468 (inputs
4469 `(("sbcl-cl-fad" ,sbcl-cl-fad)))
4470 (home-page "https://common-lisp.net/project/local-time/")
4471 (synopsis "Time manipulation library for Common Lisp")
4472 (description
4473 "The LOCAL-TIME library is a Common Lisp library for the manipulation of
4474 dates and times. It is based almost entirely upon Erik Naggum's paper \"The
4475 Long Painful History of Time\".")
4476 (license license:expat))))
4477
4478 (define-public cl-local-time
4479 (sbcl-package->cl-source-package sbcl-local-time))
4480
4481 (define-public sbcl-lack-response
4482 (let ((commit "abff8efeb0c3a848e6bb0022f2b8b7fa3a1bc88b")
4483 (revision "1"))
4484 (package
4485 (name "sbcl-lack-response")
4486 (version (git-version "0.1.0" revision commit))
4487 (source
4488 (origin
4489 (method git-fetch)
4490 (uri (git-reference
4491 (url "https://github.com/fukamachi/lack.git")
4492 (commit commit)))
4493 (file-name (git-file-name name version))
4494 (sha256
4495 (base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85"))))
4496 (build-system asdf-build-system/sbcl)
4497 (arguments
4498 '(#:asd-file "lack-response.asd"
4499 #:asd-system-name "lack-response"
4500 ;; XXX: no tests for lack-response.
4501 #:tests? #f))
4502 (native-inputs
4503 `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
4504 ("sbcl-prove" ,sbcl-prove)))
4505 (inputs
4506 `(("sbcl-quri" ,sbcl-quri)
4507 ("sbcl-http-body" ,sbcl-http-body)
4508 ("sbcl-circular-streams" ,sbcl-circular-streams)
4509 ("sbcl-local-time" ,sbcl-local-time)))
4510 (home-page "https://github.com/fukamachi/lack")
4511 (synopsis "Lack, the core of Clack")
4512 (description
4513 "Lack is a Common Lisp library which allows web applications to be
4514 constructed of modular components. It was originally a part of Clack, however
4515 it's going to be rewritten as an individual project since Clack v2 with
4516 performance and simplicity in mind.")
4517 (license license:llgpl))))
4518
4519 (define-public cl-lack-response
4520 (sbcl-package->cl-source-package sbcl-lack-response))
4521
4522 (define-public sbcl-lack-component
4523 (let ((commit "abff8efeb0c3a848e6bb0022f2b8b7fa3a1bc88b")
4524 (revision "1"))
4525 (package
4526 (name "sbcl-lack-component")
4527 (version (git-version "0.0.0" revision commit))
4528 (source
4529 (origin
4530 (method git-fetch)
4531 (uri (git-reference
4532 (url "https://github.com/fukamachi/lack.git")
4533 (commit commit)))
4534 (file-name (git-file-name "lack-component" version))
4535 (sha256
4536 (base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85"))))
4537 (build-system asdf-build-system/sbcl)
4538 (arguments
4539 '(#:asd-file "lack-component.asd"
4540 #:asd-system-name "lack-component"
4541 #:test-asd-file "t-lack-component.asd"
4542 ;; XXX: Component :LACK-TEST not found
4543 #:tests? #f))
4544 (native-inputs
4545 `(("prove-asdf" ,sbcl-prove-asdf)))
4546 (home-page "https://github.com/fukamachi/lack")
4547 (synopsis "Lack, the core of Clack")
4548 (description
4549 "Lack is a Common Lisp library which allows web applications to be
4550 constructed of modular components. It was originally a part of Clack, however
4551 it's going to be rewritten as an individual project since Clack v2 with
4552 performance and simplicity in mind.")
4553 (license license:llgpl))))
4554
4555 (define-public cl-lack-component
4556 (sbcl-package->cl-source-package sbcl-lack-component))
4557
4558 (define-public sbcl-lack-util
4559 (let ((commit "abff8efeb0c3a848e6bb0022f2b8b7fa3a1bc88b")
4560 (revision "1"))
4561 (package
4562 (name "sbcl-lack-util")
4563 (version (git-version "0.1.0" revision commit))
4564 (source
4565 (origin
4566 (method git-fetch)
4567 (uri (git-reference
4568 (url "https://github.com/fukamachi/lack.git")
4569 (commit commit)))
4570 (file-name (git-file-name "lack-util" version))
4571 (sha256
4572 (base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85"))))
4573 (build-system asdf-build-system/sbcl)
4574 (arguments
4575 '(#:asd-file "lack-util.asd"
4576 #:asd-system-name "lack-util"
4577 #:test-asd-file "t-lack-util.asd"
4578 ;; XXX: Component :LACK-TEST not found
4579 #:tests? #f))
4580 (native-inputs
4581 `(("prove-asdf" ,sbcl-prove-asdf)))
4582 (inputs
4583 `(("sbcl-ironclad" ,sbcl-ironclad)))
4584 (home-page "https://github.com/fukamachi/lack")
4585 (synopsis "Lack, the core of Clack")
4586 (description
4587 "Lack is a Common Lisp library which allows web applications to be
4588 constructed of modular components. It was originally a part of Clack, however
4589 it's going to be rewritten as an individual project since Clack v2 with
4590 performance and simplicity in mind.")
4591 (license license:llgpl))))
4592
4593 (define-public cl-lack-util
4594 (sbcl-package->cl-source-package sbcl-lack-util))
4595
4596 (define-public sbcl-lack-middleware-backtrace
4597 (let ((commit "abff8efeb0c3a848e6bb0022f2b8b7fa3a1bc88b")
4598 (revision "1"))
4599 (package
4600 (name "sbcl-lack-middleware-backtrace")
4601 (version (git-version "0.1.0" revision commit))
4602 (source
4603 (origin
4604 (method git-fetch)
4605 (uri (git-reference
4606 (url "https://github.com/fukamachi/lack.git")
4607 (commit commit)))
4608 (file-name (git-file-name "lack-middleware-backtrace" version))
4609 (sha256
4610 (base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85"))))
4611 (build-system asdf-build-system/sbcl)
4612 (arguments
4613 '(#:asd-file "lack-middleware-backtrace.asd"
4614 #:asd-system-name "lack-middleware-backtrace"
4615 #:test-asd-file "t-lack-middleware-backtrace.asd"
4616 ;; XXX: Component :LACK not found
4617 #:tests? #f))
4618 (native-inputs
4619 `(("prove-asdf" ,sbcl-prove-asdf)))
4620 (home-page "https://github.com/fukamachi/lack")
4621 (synopsis "Lack, the core of Clack")
4622 (description
4623 "Lack is a Common Lisp library which allows web applications to be
4624 constructed of modular components. It was originally a part of Clack, however
4625 it's going to be rewritten as an individual project since Clack v2 with
4626 performance and simplicity in mind.")
4627 (license license:llgpl))))
4628
4629 (define-public cl-lack-middleware-backtrace
4630 (sbcl-package->cl-source-package sbcl-lack-middleware-backtrace))
4631
4632 (define-public sbcl-trivial-mimes
4633 (let ((commit "303f8ac0aa6ca0bc139aa3c34822e623c3723fab")
4634 (revision "1"))
4635 (package
4636 (name "sbcl-trivial-mimes")
4637 (version (git-version "1.1.0" revision commit))
4638 (source
4639 (origin
4640 (method git-fetch)
4641 (uri (git-reference
4642 (url "https://github.com/Shinmera/trivial-mimes.git")
4643 (commit commit)))
4644 (file-name (git-file-name name version))
4645 (sha256
4646 (base32 "17jxgl47r695bvsb7wi3n2ws5rp1zzgvw0zii8cy5ggw4b4ayv6m"))))
4647 (build-system asdf-build-system/sbcl)
4648 (arguments
4649 '(#:phases
4650 (modify-phases %standard-phases
4651 (add-after
4652 'unpack 'fix-paths
4653 (lambda* (#:key inputs #:allow-other-keys)
4654 (let ((anchor "#p\"/etc/mime.types\""))
4655 (substitute* "mime-types.lisp"
4656 ((anchor all)
4657 (string-append
4658 anchor "\n"
4659 "(asdf:system-relative-pathname :trivial-mimes "
4660 "\"../../share/common-lisp/" (%lisp-type)
4661 "-source/trivial-mimes/mime.types\")")))))))))
4662 (native-inputs
4663 `(("stefil" ,sbcl-hu.dwim.stefil)))
4664 (inputs
4665 `(("sbcl-cl-fad" ,sbcl-cl-fad)))
4666 (home-page "https://shinmera.github.io/trivial-mimes/")
4667 (synopsis "Tiny Common Lisp library to detect mime types in files")
4668 (description
4669 "This is a teensy library that provides some functions to determine the
4670 mime-type of a file.")
4671 (license license:artistic2.0))))
4672
4673 (define-public cl-trivial-mimes
4674 (sbcl-package->cl-source-package sbcl-trivial-mimes))
4675
4676 (define-public ecl-trivial-mimes
4677 (sbcl-package->ecl-package sbcl-trivial-mimes))
4678
4679 (define-public sbcl-lack-middleware-static
4680 (let ((commit "abff8efeb0c3a848e6bb0022f2b8b7fa3a1bc88b")
4681 (revision "1"))
4682 (package
4683 (name "sbcl-lack-middleware-static")
4684 (version (git-version "0.1.0" revision commit))
4685 (source
4686 (origin
4687 (method git-fetch)
4688 (uri (git-reference
4689 (url "https://github.com/fukamachi/lack.git")
4690 (commit commit)))
4691 (file-name (git-file-name "lack-middleware-static" version))
4692 (sha256
4693 (base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85"))))
4694 (build-system asdf-build-system/sbcl)
4695 (arguments
4696 '(#:asd-file "lack-middleware-static.asd"
4697 #:asd-system-name "lack-middleware-static"
4698 #:test-asd-file "t-lack-middleware-static.asd"
4699 ;; XXX: Component :LACK not found
4700 #:tests? #f))
4701 (native-inputs
4702 `(("prove-asdf" ,sbcl-prove-asdf)))
4703 (inputs
4704 `(("sbcl-ironclad" ,sbcl-ironclad)
4705 ("sbcl-trivial-mimes" ,sbcl-trivial-mimes)
4706 ("sbcl-local-time" ,sbcl-local-time)))
4707 (home-page "https://github.com/fukamachi/lack")
4708 (synopsis "Lack, the core of Clack")
4709 (description
4710 "Lack is a Common Lisp library which allows web applications to be
4711 constructed of modular components. It was originally a part of Clack, however
4712 it's going to be rewritten as an individual project since Clack v2 with
4713 performance and simplicity in mind.")
4714 (license license:llgpl))))
4715
4716 (define-public cl-lack-middleware-static
4717 (sbcl-package->cl-source-package sbcl-lack-middleware-static))
4718
4719 (define-public sbcl-lack
4720 (let ((commit "abff8efeb0c3a848e6bb0022f2b8b7fa3a1bc88b")
4721 (revision "1"))
4722 (package
4723 (name "sbcl-lack")
4724 (version (git-version "0.1.0" revision commit))
4725 (source
4726 (origin
4727 (method git-fetch)
4728 (uri (git-reference
4729 (url "https://github.com/fukamachi/lack.git")
4730 (commit commit)))
4731 (file-name (git-file-name "lack" version))
4732 (sha256
4733 (base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85"))))
4734 (build-system asdf-build-system/sbcl)
4735 (arguments
4736 '(#:test-asd-file "t-lack.asd"
4737 ;; XXX: Component :CLACK not found
4738 #:tests? #f))
4739 (native-inputs
4740 `(("prove-asdf" ,sbcl-prove-asdf)))
4741 (inputs
4742 `(("sbcl-lack-component" ,sbcl-lack-component)
4743 ("sbcl-lack-util" ,sbcl-lack-util)))
4744 (home-page "https://github.com/fukamachi/lack")
4745 (synopsis "Lack, the core of Clack")
4746 (description
4747 "Lack is a Common Lisp library which allows web applications to be
4748 constructed of modular components. It was originally a part of Clack, however
4749 it's going to be rewritten as an individual project since Clack v2 with
4750 performance and simplicity in mind.")
4751 (license license:llgpl))))
4752
4753 (define-public cl-lack
4754 (sbcl-package->cl-source-package sbcl-lack))
4755
4756 (define-public sbcl-ningle
4757 (let ((commit "50bd4f09b5a03a7249bd4d78265d6451563b25ad")
4758 (revision "1"))
4759 (package
4760 (name "sbcl-ningle")
4761 (version (git-version "0.3.0" revision commit))
4762 (source
4763 (origin
4764 (method git-fetch)
4765 (uri (git-reference
4766 (url "https://github.com/fukamachi/ningle.git")
4767 (commit commit)))
4768 (file-name (git-file-name name version))
4769 (sha256
4770 (base32 "1bsl8cnxhacb8p92z9n89vhk1ikmij5zavk0m2zvmj7iqm79jzgw"))))
4771 (build-system asdf-build-system/sbcl)
4772 (arguments
4773 ;; TODO: pull in clack-test
4774 '(#:tests? #f
4775 #:phases
4776 (modify-phases %standard-phases
4777 (delete 'cleanup-files)
4778 (delete 'cleanup)
4779 (add-before 'cleanup 'combine-fasls
4780 (lambda* (#:key outputs #:allow-other-keys)
4781 (let* ((out (assoc-ref outputs "out"))
4782 (lib (string-append out "/lib/sbcl"))
4783 (ningle-path (string-append lib "/ningle"))
4784 (fasl-files (find-files out "\\.fasl$")))
4785 (mkdir-p ningle-path)
4786 (let ((fasl-path (lambda (name)
4787 (string-append ningle-path
4788 "/"
4789 (basename name)
4790 "--system.fasl"))))
4791 (for-each (lambda (file)
4792 (rename-file file
4793 (fasl-path
4794 (basename file ".fasl"))))
4795 fasl-files))
4796 fasl-files)
4797 #t)))))
4798 (native-inputs
4799 `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
4800 ("sbcl-prove" ,sbcl-prove)))
4801 (inputs
4802 `(("sbcl-cl-syntax" ,sbcl-cl-syntax)
4803 ("sbcl-cl-syntax-annot" ,sbcl-cl-syntax-annot)
4804 ("sbcl-myway" ,sbcl-myway)
4805 ("sbcl-lack-request" ,sbcl-lack-request)
4806 ("sbcl-lack-response" ,sbcl-lack-response)
4807 ("sbcl-lack-component" ,sbcl-lack-component)
4808 ("sbcl-alexandria" ,sbcl-alexandria)
4809 ("sbcl-babel" ,sbcl-babel)))
4810 (home-page "https://8arrow.org/ningle/")
4811 (synopsis "Super micro framework for Common Lisp")
4812 (description
4813 "Ningle is a lightweight web application framework for Common Lisp.")
4814 (license license:llgpl))))
4815
4816 (define-public cl-ningle
4817 (sbcl-package->cl-source-package sbcl-ningle))
4818
4819 (define-public sbcl-clack
4820 (let ((commit "e3e032843bb1220ab96263c411aa7f2feb4746e0")
4821 (revision "1"))
4822 (package
4823 (name "sbcl-clack")
4824 (version (git-version "2.0.0" revision commit))
4825 (source
4826 (origin
4827 (method git-fetch)
4828 (uri (git-reference
4829 (url "https://github.com/fukamachi/clack.git")
4830 (commit commit)))
4831 (file-name (git-file-name name version))
4832 (sha256
4833 (base32 "1ymzs6qyrwhlj6cgqsnpyn6g5cbp7a3s1vgxwna20y2q7y4iacy0"))))
4834 (build-system asdf-build-system/sbcl)
4835 (inputs
4836 `(("sbcl-lack" ,sbcl-lack)
4837 ("sbcl-lack-middleware-backtrace" ,sbcl-lack-middleware-backtrace)
4838 ("sbcl-bordeaux-threads" ,sbcl-bordeaux-threads)))
4839 (home-page "https://github.com/fukamachi/clack")
4840 (synopsis "Web Application Environment for Common Lisp")
4841 (description
4842 "Clack is a web application environment for Common Lisp inspired by
4843 Python's WSGI and Ruby's Rack.")
4844 (license license:llgpl))))
4845
4846 (define-public cl-clack
4847 (sbcl-package->cl-source-package sbcl-clack))
4848
4849 (define-public sbcl-log4cl
4850 (let ((commit "611e094458504b938d49de904eab141285328c7c")
4851 (revision "1"))
4852 (package
4853 (name "sbcl-log4cl")
4854 (build-system asdf-build-system/sbcl)
4855 (version "1.1.2")
4856 (source
4857 (origin
4858 (method git-fetch)
4859 (uri (git-reference
4860 (url "https://github.com/sharplispers/log4cl")
4861 (commit commit)))
4862 (file-name (git-file-name name version))
4863 (sha256
4864 (base32
4865 "08jly0s0g26b56hhpfizxsb4j0yvbh946sd205gr42dkzv8l7dsc"))))
4866 ;; FIXME: tests require stefil, sbcl-hu.dwim.stefil wont work
4867 (arguments
4868 `(#:tests? #f))
4869 (inputs `(("bordeaux-threads" ,sbcl-bordeaux-threads)))
4870 (synopsis "Common Lisp logging framework, modeled after Log4J")
4871 (home-page "https://github.com/7max/log4cl")
4872 (description "This is a Common Lisp logging framework that can log at
4873 various levels and mix text with expressions.")
4874 (license license:asl2.0))))
4875
4876 (define-public cl-log4cl
4877 (sbcl-package->cl-source-package sbcl-log4cl))
4878
4879 (define-public ecl-log4cl
4880 (sbcl-package->ecl-package sbcl-log4cl))
4881
4882 (define-public sbcl-find-port
4883 (let ((commit "00c96a25af93a0f8681d34ec548861f2d7485478")
4884 (revision "1"))
4885 (package
4886 (name "sbcl-find-port")
4887 (build-system asdf-build-system/sbcl)
4888 (version "0.1")
4889 (home-page "https://github.com/eudoxia0/find-port")
4890 (source
4891 (origin
4892 (method git-fetch)
4893 (uri (git-reference
4894 (url home-page)
4895 (commit commit)))
4896 (file-name (git-file-name name version))
4897 (sha256
4898 (base32
4899 "0d6dzbb45jh0rx90wgs6v020k2xa87mvzas3mvfzvivjvqqlpryq"))))
4900 (native-inputs
4901 `(("fiveam" ,sbcl-fiveam)))
4902 (inputs
4903 `(("sbcl-usocket" ,sbcl-usocket)))
4904 (synopsis "Find open ports programmatically in Common Lisp")
4905 (description "This is a small Common Lisp library that finds an open
4906 port within a range.")
4907 (license license:expat))))
4908
4909 (define-public cl-find-port
4910 (sbcl-package->cl-source-package sbcl-find-port))
4911
4912 (define-public ecl-find-port
4913 (sbcl-package->ecl-package sbcl-find-port))
4914
4915 (define-public sbcl-clunit
4916 (let ((commit "6f6d72873f0e1207f037470105969384f8380628")
4917 (revision "1"))
4918 (package
4919 (name "sbcl-clunit")
4920 (version (git-version "0.2.3" revision commit))
4921 (source
4922 (origin
4923 (method git-fetch)
4924 (uri (git-reference
4925 (url "https://github.com/tgutu/clunit.git")
4926 (commit commit)))
4927 (file-name (git-file-name name version))
4928 (sha256
4929 (base32
4930 "1idf2xnqzlhi8rbrqmzpmb3i1l6pbdzhhajkmhwbp6qjkmxa4h85"))))
4931 (build-system asdf-build-system/sbcl)
4932 (synopsis "CLUnit is a Common Lisp unit testing framework")
4933 (description
4934 "CLUnit is a Common Lisp unit testing framework. It is designed
4935 to be easy to use so that you can quickly start testing. CLUnit
4936 provides a rich set of features aimed at improving your unit testing
4937 experience.")
4938 (home-page "https://tgutu.github.io/clunit/")
4939 ;; MIT License
4940 (license license:expat))))
4941
4942 (define-public cl-clunit
4943 (sbcl-package->cl-source-package sbcl-clunit))
4944
4945 (define-public ecl-clunit
4946 (sbcl-package->ecl-package sbcl-clunit))
4947
4948 (define-public sbcl-py4cl
4949 (let ((commit "4c8a2b0814fd311f978964f825ce012290f60136")
4950 (revision "1"))
4951 (package
4952 (name "sbcl-py4cl")
4953 (version (git-version "0.0.0" revision commit))
4954 (source
4955 (origin
4956 (method git-fetch)
4957 (uri (git-reference
4958 (url "https://github.com/bendudson/py4cl.git")
4959 (commit commit)))
4960 (file-name (git-file-name name version))
4961 (sha256
4962 (base32
4963 "15mk7qdqjkj56gdnbyrdyz6r7m1h26ldvn6ch96pmvg5vmr1m45r"))
4964 (modules '((guix build utils)))))
4965 (build-system asdf-build-system/sbcl)
4966 (native-inputs
4967 `(("sbcl-clunit" ,sbcl-clunit)))
4968 (inputs
4969 `(("sbcl-trivial-garbage" ,sbcl-trivial-garbage)))
4970 (propagated-inputs
4971 ;; This package doesn't do anything without python available
4972 `(("python" ,python)
4973 ;; For multi-dimensional array support
4974 ("python-numpy" ,python-numpy)))
4975 (arguments
4976 '(#:phases
4977 (modify-phases %standard-phases
4978 (add-after 'unpack 'replace-*base-directory*-var
4979 (lambda* (#:key outputs #:allow-other-keys)
4980 ;; In the ASD, the author makes an attempt to
4981 ;; programatically determine the location of the
4982 ;; source-code so lisp can call into "py4cl.py". We can
4983 ;; hard-code this since we know where this file will
4984 ;; reside.
4985 (substitute* "src/callpython.lisp"
4986 (("py4cl/config:\\*base-directory\\*")
4987 (string-append
4988 "\""
4989 (assoc-ref outputs "out")
4990 "/share/common-lisp/sbcl-source/py4cl/"
4991 "\""))))))))
4992 (synopsis "Call python from Common Lisp")
4993 (description
4994 "Py4CL is a bridge between Common Lisp and Python, which enables Common
4995 Lisp to interact with Python code. It uses streams to communicate with a
4996 separate python process, the approach taken by cl4py. This is different to
4997 the CFFI approach used by burgled-batteries, but has the same goal.")
4998 (home-page "https://github.com/bendudson/py4cl")
4999 ;; MIT License
5000 (license license:expat))))
5001
5002 (define-public cl-py4cl
5003 (sbcl-package->cl-source-package sbcl-py4cl))
5004
5005 (define-public ecl-py4cl
5006 (sbcl-package->ecl-package sbcl-py4cl))
5007
5008 (define-public sbcl-parse-declarations
5009 (let ((commit "549aebbfb9403a7fe948654126b9c814f443f4f2")
5010 (revision "1"))
5011 (package
5012 (name "sbcl-parse-declarations")
5013 (version (git-version "1.0.0" revision commit))
5014 (source
5015 (origin
5016 (method git-fetch)
5017 (uri (git-reference
5018 (url (string-append
5019 "https://gitlab.common-lisp.net/parse-declarations/"
5020 "parse-declarations.git"))
5021 (commit commit)))
5022 (file-name (git-file-name name version))
5023 (sha256
5024 (base32 "03g5qks4c59nmxa48pbslxkfh77h8hn8566jddp6m9pl15dzzpxd"))))
5025 (build-system asdf-build-system/sbcl)
5026 (arguments
5027 `(#:asd-file "parse-declarations-1.0.asd"
5028 #:asd-system-name "parse-declarations-1.0"))
5029 (home-page "https://common-lisp.net/project/parse-declarations/")
5030 (synopsis "Parse, filter, and build declarations")
5031 (description
5032 "Parse-Declarations is a Common Lisp library to help writing
5033 macros which establish bindings. To be semantically correct, such
5034 macros must take user declarations into account, as these may affect
5035 the bindings they establish. Yet the ANSI standard of Common Lisp does
5036 not provide any operators to work with declarations in a convenient,
5037 high-level way. This library provides such operators.")
5038 ;; MIT License
5039 (license license:expat))))
5040
5041 (define-public cl-parse-declarations
5042 (sbcl-package->cl-source-package sbcl-parse-declarations))
5043
5044 (define-public ecl-parse-declarations
5045 (sbcl-package->ecl-package sbcl-parse-declarations))
5046
5047 (define-public sbcl-cl-quickcheck
5048 (let ((commit "807b2792a30c883a2fbecea8e7db355b50ba662f")
5049 (revision "1"))
5050 (package
5051 (name "sbcl-cl-quickcheck")
5052 (version (git-version "0.0.4" revision commit))
5053 (source
5054 (origin
5055 (method git-fetch)
5056 (uri (git-reference
5057 (url "https://github.com/mcandre/cl-quickcheck.git")
5058 (commit commit)))
5059 (file-name (git-file-name name version))
5060 (sha256
5061 (base32
5062 "165lhypq5xkcys6hvzb3jq7ywnmqvzaflda29qk2cbs3ggas4767"))))
5063 (build-system asdf-build-system/sbcl)
5064 (synopsis
5065 "Common Lisp port of the QuickCheck unit test framework")
5066 (description
5067 "Common Lisp port of the QuickCheck unit test framework")
5068 (home-page "https://github.com/mcandre/cl-quickcheck")
5069 ;; MIT
5070 (license license:expat))))
5071
5072 (define-public cl-cl-quickcheck
5073 (sbcl-package->cl-source-package sbcl-cl-quickcheck))
5074
5075 (define-public ecl-cl-quickcheck
5076 (sbcl-package->ecl-package sbcl-cl-quickcheck))
5077
5078 (define-public sbcl-burgled-batteries3
5079 (let ((commit "f65f454d13bb6c40e17e9ec62e41eb5069e09760")
5080 (revision "2"))
5081 (package
5082 (name "sbcl-burgled-batteries3")
5083 (version (git-version "0.0.0" revision commit))
5084 (source
5085 (origin
5086 (method git-fetch)
5087 (uri (git-reference
5088 (url "https://github.com/snmsts/burgled-batteries3.git")
5089 (commit commit)))
5090 (file-name (git-file-name name version))
5091 (sha256
5092 (base32
5093 "1nzn7jawrfajyzwfnzrg2cmn9xxadcqh4szbpg0jggkhdkdzz4wa"))))
5094 (build-system asdf-build-system/sbcl)
5095 (arguments
5096 `(#:tests? #f
5097 #:modules (((guix build python-build-system) #:select (python-version))
5098 ,@%asdf-build-system-modules)
5099 #:imported-modules ((guix build python-build-system)
5100 ,@%asdf-build-system-modules)
5101 #:phases
5102 (modify-phases (@ (guix build asdf-build-system) %standard-phases)
5103 (add-after 'unpack 'set-*cpython-include-dir*-var
5104 (lambda* (#:key inputs #:allow-other-keys)
5105 (let ((python (assoc-ref inputs "python")))
5106 (setenv "BB_PYTHON3_INCLUDE_DIR"
5107 (string-append python "/include/python"
5108 (python-version python)
5109 "m"))
5110 (setenv "BB_PYTHON3_DYLIB"
5111 (string-append python "/lib/libpython3.so"))
5112 #t))))))
5113 (native-inputs
5114 `(("sbcl-cl-fad" ,sbcl-cl-fad)
5115 ("sbcl-lift" ,sbcl-lift)
5116 ("sbcl-cl-quickcheck" ,sbcl-cl-quickcheck)))
5117 (inputs
5118 `(("python" ,python)
5119 ("sbcl-cffi" ,sbcl-cffi)
5120 ("sbcl-cffi-grovel" ,sbcl-cffi-grovel)
5121 ("sbcl-alexandria" , sbcl-alexandria)
5122 ("sbcl-parse-declarations-1.0" ,sbcl-parse-declarations)
5123 ("sbcl-trivial-garbage" ,sbcl-trivial-garbage)))
5124 (synopsis "Bridge between Python and Lisp (FFI bindings, etc.)")
5125 (description
5126 "This package provides a shim between Python3 (specifically, the
5127 CPython implementation of Python) and Common Lisp.")
5128 (home-page "https://github.com/snmsts/burgled-batteries3")
5129 (license license:expat))))
5130
5131 (define-public cl-burgled-batteries3
5132 (sbcl-package->cl-source-package sbcl-burgled-batteries3))
5133
5134 (define-public ecl-burgled-batteries3
5135 (sbcl-package->ecl-package sbcl-burgled-batteries3))
5136
5137 (define-public sbcl-metabang-bind
5138 (let ((commit "c93b7f7e1c18c954c2283efd6a7fdab36746ab5e")
5139 (revision "1"))
5140 (package
5141 (name "sbcl-metabang-bind")
5142 (version (git-version "0.8.0" revision commit))
5143 (source
5144 (origin
5145 (method git-fetch)
5146 (uri (git-reference
5147 (url "https://github.com/gwkkwg/metabang-bind.git")
5148 (commit commit)))
5149 (file-name (git-file-name name version))
5150 (sha256
5151 (base32
5152 "0hd0kr91795v77akpbcyqiss9p0p7ypa9dznrllincnmgvsxlmf0"))))
5153 (build-system asdf-build-system/sbcl)
5154 (native-inputs
5155 `(("sbcl-lift" ,sbcl-lift)))
5156 (synopsis "Macro that generalizes @code{multiple-value-bind} etc.")
5157 (description
5158 "Bind extends the idea of of let and destructing to provide a uniform
5159 syntax for all your accessor needs. It combines @code{let},
5160 @code{destructuring-bind}, @code{with-slots}, @code{with-accessors}, structure
5161 editing, property or association-lists, and @code{multiple-value-bind} and a
5162 whole lot more into a single form.")
5163 (home-page "https://common-lisp.net/project/metabang-bind/")
5164 ;; MIT License
5165 (license license:expat))))
5166
5167 (define-public cl-metabang-bind
5168 (sbcl-package->cl-source-package sbcl-metabang-bind))
5169
5170 (define-public ecl-metabang-bind
5171 (sbcl-package->ecl-package sbcl-metabang-bind))
5172
5173 (define-public sbcl-fare-utils
5174 (let ((commit "66e9c6f1499140bc00ccc22febf2aa528cbb5724")
5175 (revision "1"))
5176 (package
5177 (name "sbcl-fare-utils")
5178 (version (git-version "1.0.0.5" revision commit))
5179 (source
5180 (origin
5181 (method git-fetch)
5182 (uri
5183 (git-reference
5184 (url
5185 "https://gitlab.common-lisp.net/frideau/fare-utils.git")
5186 (commit commit)))
5187 (file-name (git-file-name name version))
5188 (sha256
5189 (base32
5190 "01wsr1aap3jdzhn4hrqjbhsjx6qci9dbd3gh4gayv1p49rbg8aqr"))))
5191 (build-system asdf-build-system/sbcl)
5192 (arguments
5193 `(#:test-asd-file "test/fare-utils-test.asd"))
5194 (native-inputs
5195 `(("sbcl-hu.dwim.stefil" ,sbcl-hu.dwim.stefil)))
5196 (synopsis "Collection of utilities and data structures")
5197 (description
5198 "fare-utils is a small collection of utilities. It contains a lot of
5199 basic everyday functions and macros.")
5200 (home-page "https://gitlab.common-lisp.net/frideau/fare-utils")
5201 ;; MIT License
5202 (license license:expat))))
5203
5204 (define-public cl-fare-utils
5205 (sbcl-package->cl-source-package sbcl-fare-utils))
5206
5207 (define-public ecl-fare-utils
5208 (sbcl-package->ecl-package sbcl-fare-utils))
5209
5210 (define-public sbcl-trivial-utf-8
5211 (let ((commit "4d427cfbb1c452436a0efb71c3205c9da67f718f")
5212 (revision "1"))
5213 (package
5214 (name "sbcl-trivial-utf-8")
5215 (version (git-version "0.0.0" revision commit))
5216 (source
5217 (origin
5218 (method git-fetch)
5219 (uri
5220 (git-reference
5221 (url (string-append "https://gitlab.common-lisp.net/"
5222 "trivial-utf-8/trivial-utf-8.git"))
5223 (commit commit)))
5224 (file-name (git-file-name name version))
5225 (sha256
5226 (base32
5227 "1jz27gz8gvqdmvp3k9bxschs6d5b3qgk94qp2bj6nv1d0jc3m1l1"))))
5228 (arguments
5229 ;; Guix incorrectly assumes the "8" is part of the version
5230 ;; number and lobs it off.
5231 `(#:asd-file "trivial-utf-8.asd"
5232 #:asd-system-name "trivial-utf-8"))
5233 (build-system asdf-build-system/sbcl)
5234 (synopsis "UTF-8 input/output library")
5235 (description
5236 "The Babel library solves a similar problem while understanding more
5237 encodings. Trivial UTF-8 was written before Babel existed, but for new
5238 projects you might be better off going with Babel. The one plus that Trivial
5239 UTF-8 has is that it doesn't depend on any other libraries.")
5240 (home-page "https://common-lisp.net/project/trivial-utf-8/")
5241 (license license:bsd-3))))
5242
5243 (define-public cl-trivial-utf-8
5244 (sbcl-package->cl-source-package sbcl-trivial-utf-8))
5245
5246 (define-public ecl-trivial-utf-8
5247 (sbcl-package->ecl-package sbcl-trivial-utf-8))
5248
5249 (define-public sbcl-idna
5250 (package
5251 (name "sbcl-idna")
5252 (build-system asdf-build-system/sbcl)
5253 (version "0.2.2")
5254 (home-page "https://github.com/antifuchs/idna")
5255 (source
5256 (origin
5257 (method git-fetch)
5258 (uri (git-reference
5259 (url home-page)
5260 (commit version)))
5261 (file-name (git-file-name name version))
5262 (sha256
5263 (base32
5264 "00nbr3mffxhlq14gg9d16pa6691s4qh35inyw76v906s77khm5a2"))))
5265 (inputs
5266 `(("split-sequence" ,sbcl-split-sequence)))
5267 (synopsis "IDNA string encoding and decoding routines for Common Lisp")
5268 (description "This Common Lisp library provides string encoding and
5269 decoding routines for IDNA, the International Domain Names in Applications.")
5270 (license license:expat)))
5271
5272 (define-public cl-idna
5273 (sbcl-package->cl-source-package sbcl-idna))
5274
5275 (define-public ecl-idna
5276 (sbcl-package->ecl-package sbcl-idna))
5277
5278 (define-public sbcl-swap-bytes
5279 (package
5280 (name "sbcl-swap-bytes")
5281 (build-system asdf-build-system/sbcl)
5282 (version "1.2")
5283 (home-page "https://github.com/sionescu/swap-bytes")
5284 (source
5285 (origin
5286 (method git-fetch)
5287 (uri (git-reference
5288 (url home-page)
5289 (commit (string-append "v" version))))
5290 (file-name (git-file-name name version))
5291 (sha256
5292 (base32
5293 "1hw1v1lw26rifyznpnj1csphha9jgzwpiic16ni3pvs6hcsni9rz"))))
5294 (inputs
5295 `(("trivial-features" ,sbcl-trivial-features)))
5296 (native-inputs
5297 `(("fiveam" ,sbcl-fiveam)))
5298 (synopsis "Efficient endianness conversion for Common Lisp")
5299 (description "This Common Lisp library provides optimized byte-swapping
5300 primitives. The library can change endianness of unsigned integers of length
5301 1/2/4/8. Very useful in implementing various network protocols and file
5302 formats.")
5303 (license license:expat)))
5304
5305 (define-public cl-swap-bytes
5306 (sbcl-package->cl-source-package sbcl-swap-bytes))
5307
5308 (define-public ecl-swap-bytes
5309 (sbcl-package->ecl-package sbcl-swap-bytes))
5310
5311 (define-public sbcl-iolib.asdf
5312 ;; Latest release is from June 2017.
5313 (let ((commit "81e20614c0d27f9605bf9766214e236fd31b99b4")
5314 (revision "1"))
5315 (package
5316 (name "sbcl-iolib.asdf")
5317 (build-system asdf-build-system/sbcl)
5318 (version "0.8.3")
5319 (home-page "https://github.com/sionescu/iolib")
5320 (source
5321 (origin
5322 (method git-fetch)
5323 (uri (git-reference
5324 (url home-page)
5325 (commit commit)))
5326 (file-name (git-file-name name version))
5327 (sha256
5328 (base32
5329 "1j81r0wm7nfbwl991f26s4npcy7kybzybd3m47rbxy31h0cfcmdm"))))
5330 (inputs
5331 `(("alexandria" ,sbcl-alexandria)))
5332 (arguments
5333 '(#:asd-file "iolib.asdf.asd"))
5334 (synopsis "ASDF component classes for IOLib, a Common Lisp I/O library")
5335 (description "IOlib is to be a better and more modern I/O library than
5336 the standard Common Lisp library. It contains a socket library, a DNS
5337 resolver, an I/O multiplexer(which supports @code{select(2)}, @code{epoll(4)}
5338 and @code{kqueue(2)}), a pathname library and file-system utilities.")
5339 (license license:expat))))
5340
5341 (define-public sbcl-iolib.conf
5342 (package
5343 (inherit sbcl-iolib.asdf)
5344 (name "sbcl-iolib.conf")
5345 (inputs
5346 `(("iolib.asdf" ,sbcl-iolib.asdf)))
5347 (arguments
5348 '(#:asd-file "iolib.conf.asd"))
5349 (synopsis "Compile-time configuration for IOLib, a Common Lisp I/O library")))
5350
5351 (define-public sbcl-iolib.common-lisp
5352 (package
5353 (inherit sbcl-iolib.asdf)
5354 (name "sbcl-iolib.common-lisp")
5355 (inputs
5356 `(("iolib.asdf" ,sbcl-iolib.asdf)
5357 ("iolib.conf" ,sbcl-iolib.conf)))
5358 (arguments
5359 '(#:asd-file "iolib.common-lisp.asd"))
5360 (synopsis "Slightly modified Common Lisp for IOLib, a Common Lisp I/O library")))
5361
5362 (define-public sbcl-iolib.base
5363 (package
5364 (inherit sbcl-iolib.asdf)
5365 (name "sbcl-iolib.base")
5366 (inputs
5367 `(("iolib.asdf" ,sbcl-iolib.asdf)
5368 ("iolib.conf" ,sbcl-iolib.conf)
5369 ("iolib.common-lisp" ,sbcl-iolib.common-lisp)
5370 ("split-sequence" ,sbcl-split-sequence)))
5371 (arguments
5372 '(#:asd-file "iolib.base.asd"))
5373 (synopsis "Base package for IOLib, a Common Lisp I/O library")))
5374
5375 (define-public sbcl-iolib.grovel
5376 (package
5377 (inherit sbcl-iolib.asdf)
5378 (name "sbcl-iolib.grovel")
5379 (inputs
5380 `(("iolib.asdf" ,sbcl-iolib.asdf)
5381 ("iolib.conf" ,sbcl-iolib.conf)
5382 ("iolib.base", sbcl-iolib.base)
5383 ("cffi", sbcl-cffi)))
5384 (arguments
5385 '(#:asd-file "iolib.grovel.asd"
5386 #:phases
5387 (modify-phases %standard-phases
5388 (add-after 'install 'install-header
5389 (lambda* (#:key outputs #:allow-other-keys)
5390 ;; This header is required by sbcl-iolib.
5391 (install-file "src/grovel/grovel-common.h"
5392 (string-append (assoc-ref outputs "out")
5393 "/lib/sbcl"))
5394 #t)))))
5395 (synopsis "CFFI Groveller for IOLib, a Common Lisp I/O library")))
5396
5397 (define sbcl-iolib+syscalls
5398 (package
5399 (inherit sbcl-iolib.asdf)
5400 (name "sbcl-iolib+syscalls")
5401 (inputs
5402 `(("iolib.asdf" ,sbcl-iolib.asdf)
5403 ("iolib.conf" ,sbcl-iolib.conf)
5404 ("iolib.grovel" ,sbcl-iolib.grovel)
5405 ("iolib.base" ,sbcl-iolib.base)
5406 ("bordeaux-threads" ,sbcl-bordeaux-threads)
5407 ("idna" ,sbcl-idna)
5408 ("swap-bytes" ,sbcl-swap-bytes)
5409 ("libfixposix" ,libfixposix)
5410 ("cffi" ,sbcl-cffi)))
5411 (native-inputs
5412 `(("fiveam" ,sbcl-fiveam)))
5413 (arguments
5414 '(#:asd-file "iolib.asd"
5415 #:asd-system-name "iolib/syscalls"
5416 #:test-asd-file "iolib.tests.asd"
5417 #:phases
5418 (modify-phases %standard-phases
5419 (add-after 'unpack 'fix-paths
5420 (lambda* (#:key inputs #:allow-other-keys)
5421 (substitute* "src/syscalls/ffi-functions-unix.lisp"
5422 (("\\(:default \"libfixposix\"\\)")
5423 (string-append
5424 "(:default \""
5425 (assoc-ref inputs "libfixposix") "/lib/libfixposix\")")))
5426 ;; Socket tests need Internet access, disable them.
5427 (substitute* "iolib.tests.asd"
5428 (("\\(:file \"sockets\" :depends-on \\(\"pkgdcl\" \"defsuites\"\\)\\)")
5429 "")))))))
5430 (synopsis "Common Lisp I/O library")))
5431
5432 (define sbcl-iolib+multiplex
5433 (package
5434 (inherit sbcl-iolib+syscalls)
5435 (name "sbcl-iolib+multiplex")
5436 (inputs
5437 `(("iolib+syscalls" ,sbcl-iolib+syscalls)
5438 ,@(package-inputs sbcl-iolib+syscalls)))
5439 (arguments
5440 (substitute-keyword-arguments (package-arguments sbcl-iolib+syscalls)
5441 ((#:asd-system-name _) "iolib/multiplex")))))
5442
5443
5444
5445 (define sbcl-iolib+streams
5446 (package
5447 (inherit sbcl-iolib+syscalls)
5448 (name "sbcl-iolib+streams")
5449 (inputs
5450 `(("iolib+multiplex" ,sbcl-iolib+multiplex)
5451 ,@(package-inputs sbcl-iolib+syscalls)))
5452 (arguments
5453 (substitute-keyword-arguments (package-arguments sbcl-iolib+syscalls)
5454 ((#:asd-system-name _) "iolib/streams")))))
5455
5456 (define sbcl-iolib+sockets
5457 (package
5458 (inherit sbcl-iolib+syscalls)
5459 (name "sbcl-iolib+sockets")
5460 (inputs
5461 `(("iolib+syscalls" ,sbcl-iolib+syscalls)
5462 ("iolib+streams" ,sbcl-iolib+streams)
5463 ,@(package-inputs sbcl-iolib+syscalls)))
5464 (arguments
5465 (substitute-keyword-arguments (package-arguments sbcl-iolib+syscalls)
5466 ((#:asd-system-name _) "iolib/sockets")))))
5467
5468 (define-public sbcl-iolib
5469 (package
5470 (inherit sbcl-iolib+syscalls)
5471 (name "sbcl-iolib")
5472 (inputs
5473 `(("iolib+multiplex" ,sbcl-iolib+multiplex)
5474 ("iolib+streams" ,sbcl-iolib+streams)
5475 ("iolib+sockets" ,sbcl-iolib+sockets)
5476 ,@(package-inputs sbcl-iolib+syscalls)))
5477 (arguments
5478 (substitute-keyword-arguments (package-arguments sbcl-iolib+syscalls)
5479 ((#:asd-system-name _) "iolib")))))
5480
5481 (define-public cl-iolib
5482 (sbcl-package->cl-source-package sbcl-iolib))
5483
5484 (define-public sbcl-ieee-floats
5485 (let ((commit "566b51a005e81ff618554b9b2f0b795d3b29398d")
5486 (revision "1"))
5487 (package
5488 (name "sbcl-ieee-floats")
5489 (build-system asdf-build-system/sbcl)
5490 (version (git-version "20170924" revision commit))
5491 (home-page "https://github.com/marijnh/ieee-floats/")
5492 (source
5493 (origin
5494 (method git-fetch)
5495 (uri (git-reference
5496 (url home-page)
5497 (commit commit)))
5498 (file-name (git-file-name name version))
5499 (sha256
5500 (base32
5501 "1xyj49j9x3lc84cv3dhbf9ja34ywjk1c46dklx425fxw9mkwm83m"))))
5502 (native-inputs
5503 `(("fiveam" ,sbcl-fiveam)))
5504 (synopsis "IEEE 754 binary representation for floats in Common Lisp")
5505 (description "This is a Common Lisp library that allows to convert
5506 floating point values to IEEE 754 binary representation.")
5507 (license license:bsd-3))))
5508
5509 (define-public cl-ieee-floats
5510 (sbcl-package->cl-source-package sbcl-ieee-floats))
5511
5512 (define sbcl-closure-common
5513 (let ((commit "e3c5f5f454b72b01b89115e581c3c52a7e201e5c")
5514 (revision "1"))
5515 (package
5516 (name "sbcl-closure-common")
5517 (build-system asdf-build-system/sbcl)
5518 (version (git-version "20101006" revision commit))
5519 (home-page "https://common-lisp.net/project/cxml/")
5520 (source
5521 (origin
5522 (method git-fetch)
5523 (uri (git-reference
5524 (url "https://github.com/sharplispers/closure-common")
5525 (commit commit)))
5526 (file-name (git-file-name name version))
5527 (sha256
5528 (base32
5529 "0k5r2qxn122pxi301ijir3nayi9sg4d7yiy276l36qmzwhp4mg5n"))))
5530 (inputs
5531 `(("trivial-gray-streams" ,sbcl-trivial-gray-streams)
5532 ("babel" ,sbcl-babel)))
5533 (synopsis "Support Common Lisp library for CXML")
5534 (description "Closure-common is an internal helper library. The name
5535 Closure is a reference to the web browser it was originally written for.")
5536 ;; TODO: License?
5537 (license #f))))
5538
5539 (define-public sbcl-cxml+xml
5540 (let ((commit "00b22bf4c4cf11c993d5866fae284f95ab18e6bf")
5541 (revision "1"))
5542 (package
5543 (name "sbcl-cxml+xml")
5544 (build-system asdf-build-system/sbcl)
5545 (version (git-version "0.0.0" revision commit))
5546 (home-page "https://common-lisp.net/project/cxml/")
5547 (source
5548 (origin
5549 (method git-fetch)
5550 (uri (git-reference
5551 (url "https://github.com/sharplispers/cxml")
5552 (commit commit)))
5553 (file-name (git-file-name name version))
5554 (sha256
5555 (base32
5556 "13kif7rf3gqdycsk9zq0d7y0g9y81krkl0z87k0p2fkbjfgrph37"))))
5557 (inputs
5558 `(("closure-common" ,sbcl-closure-common)
5559 ("puri" ,sbcl-puri)
5560 ("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
5561 (arguments
5562 `(#:asd-file "cxml.asd"
5563 #:asd-system-name "cxml/xml"))
5564 (synopsis "Common Lisp XML parser")
5565 (description "CXML implements a namespace-aware, validating XML 1.0
5566 parser as well as the DOM Level 2 Core interfaces. Two parser interfaces are
5567 offered, one SAX-like, the other similar to StAX.")
5568 (license license:llgpl))))
5569
5570 (define sbcl-cxml+dom
5571 (package
5572 (inherit sbcl-cxml+xml)
5573 (name "sbcl-cxml+dom")
5574 (inputs
5575 `(("closure-common" ,sbcl-closure-common)
5576 ("puri" ,sbcl-puri)
5577 ("cxml+xml" ,sbcl-cxml+xml)))
5578 (arguments
5579 `(#:asd-file "cxml.asd"
5580 #:asd-system-name "cxml/dom"))))
5581
5582 (define sbcl-cxml+klacks
5583 (package
5584 (inherit sbcl-cxml+xml)
5585 (name "sbcl-cxml+klacks")
5586 (inputs
5587 `(("closure-common" ,sbcl-closure-common)
5588 ("puri" ,sbcl-puri)
5589 ("cxml+xml" ,sbcl-cxml+xml)))
5590 (arguments
5591 `(#:asd-file "cxml.asd"
5592 #:asd-system-name "cxml/klacks"))))
5593
5594 (define sbcl-cxml+test
5595 (package
5596 (inherit sbcl-cxml+xml)
5597 (name "sbcl-cxml+test")
5598 (inputs
5599 `(("closure-common" ,sbcl-closure-common)
5600 ("puri" ,sbcl-puri)
5601 ("cxml+xml" ,sbcl-cxml+xml)))
5602 (arguments
5603 `(#:asd-file "cxml.asd"
5604 #:asd-system-name "cxml/test"))))
5605
5606 (define-public sbcl-cxml
5607 (package
5608 (inherit sbcl-cxml+xml)
5609 (name "sbcl-cxml")
5610 (inputs
5611 `(("closure-common" ,sbcl-closure-common)
5612 ("puri" ,sbcl-puri)
5613 ("trivial-gray-streams" ,sbcl-trivial-gray-streams)
5614 ("cxml+dom" ,sbcl-cxml+dom)
5615 ("cxml+klacks" ,sbcl-cxml+klacks)
5616 ("cxml+test" ,sbcl-cxml+test)))
5617 (arguments
5618 `(#:asd-file "cxml.asd"
5619 #:asd-system-name "cxml"
5620 #:phases
5621 (modify-phases %standard-phases
5622 (add-after 'build 'install-dtd
5623 (lambda* (#:key outputs #:allow-other-keys)
5624 (install-file "catalog.dtd"
5625 (string-append
5626 (assoc-ref outputs "out")
5627 "/lib/" (%lisp-type)))))
5628 (add-after 'create-asd 'remove-component
5629 ;; XXX: The original .asd has no components, but our build system
5630 ;; creates an entry nonetheless. We need to remove it for the
5631 ;; generated .asd to load properly. See trivia.trivial for a
5632 ;; similar problem.
5633 (lambda* (#:key outputs #:allow-other-keys)
5634 (let* ((out (assoc-ref outputs "out"))
5635 (asd (string-append out "/lib/sbcl/cxml.asd")))
5636 (substitute* asd
5637 ((" :components
5638 ")
5639 ""))
5640 (substitute* asd
5641 ((" *\\(\\(:compiled-file \"cxml--system\"\\)\\)")
5642 ""))))))))))
5643
5644 (define-public cl-cxml
5645 (sbcl-package->cl-source-package sbcl-cxml))
5646
5647 (define-public sbcl-cl-reexport
5648 (let ((commit "312f3661bbe187b5f28536cd7ec2956e91366c3b")
5649 (revision "1"))
5650 (package
5651 (name "sbcl-cl-reexport")
5652 (build-system asdf-build-system/sbcl)
5653 (version (git-version "0.1" revision commit))
5654 (home-page "https://github.com/takagi/cl-reexport")
5655 (source
5656 (origin
5657 (method git-fetch)
5658 (uri (git-reference
5659 (url home-page)
5660 (commit commit)))
5661 (file-name (git-file-name name version))
5662 (sha256
5663 (base32
5664 "1cwpn1m3wrl0fl9plznn7p464db646gnfc8zkyk97dyxski2aq0x"))))
5665 (inputs
5666 `(("alexandria" ,sbcl-alexandria)))
5667 (arguments
5668 ;; TODO: Tests fail because cl-test-more is missing, but I can't find it online.
5669 `(#:tests? #f))
5670 (synopsis "HTTP cookie manager for Common Lisp")
5671 (description "cl-cookie is a Common Lisp library featuring parsing of
5672 cookie headers, cookie creation, cookie jar creation and more.")
5673 (license license:llgpl))))
5674
5675 (define-public cl-reexport
5676 (sbcl-package->cl-source-package sbcl-cl-reexport))
5677
5678 (define-public sbcl-cl-cookie
5679 (let ((commit "cea55aed8b9ad25fafd13defbcb9fe8f41b29546")
5680 (revision "1"))
5681 (package
5682 (name "sbcl-cl-cookie")
5683 (build-system asdf-build-system/sbcl)
5684 (version (git-version "0.9.10" revision commit))
5685 (home-page "https://github.com/fukamachi/cl-cookie")
5686 (source
5687 (origin
5688 (method git-fetch)
5689 (uri (git-reference
5690 (url home-page)
5691 (commit commit)))
5692 (file-name (git-file-name name version))
5693 (sha256
5694 (base32
5695 "090g7z75h98zvc1ldx0vh4jn4086dhjm2w30jcwkq553qmyxwl8h"))))
5696 (inputs
5697 `(("proc-parse" ,sbcl-proc-parse)
5698 ("alexandria" ,sbcl-alexandria)
5699 ("quri" ,sbcl-quri)
5700 ("cl-ppcre" ,sbcl-cl-ppcre)
5701 ("local-time" ,sbcl-local-time)))
5702 (native-inputs
5703 `(("prove-asdf" ,sbcl-prove-asdf)
5704 ("prove" ,sbcl-prove)))
5705 (arguments
5706 ;; TODO: Tests fail because cl-cookie depends on cl-cookie-test.
5707 `(#:tests? #f))
5708 (synopsis "HTTP cookie manager for Common Lisp")
5709 (description "cl-cookie is a Common Lisp library featuring parsing of
5710 cookie headers, cookie creation, cookie jar creation and more.")
5711 (license license:bsd-2))))
5712
5713 (define-public cl-cookie
5714 (sbcl-package->cl-source-package sbcl-cl-cookie))
5715
5716 (define-public sbcl-dexador
5717 (let ((commit "a2714d126cc94bc7a9a6e1e3c08de455b3a66378")
5718 (revision "1"))
5719 (package
5720 (name "sbcl-dexador")
5721 (build-system asdf-build-system/sbcl)
5722 (version (git-version "0.9.10" revision commit))
5723 (home-page "https://github.com/fukamachi/dexador")
5724 (source
5725 (origin
5726 (method git-fetch)
5727 (uri (git-reference
5728 (url home-page)
5729 (commit commit)))
5730 (file-name (git-file-name name version))
5731 (sha256
5732 (base32
5733 "0nbqgn4v3l2z6m1k1bdxfnqpfrk84nxdmz7csz11zzcfs4flkv79"))))
5734 (inputs
5735 `(("trivial-gray-streams" ,sbcl-trivial-gray-streams)
5736 ("babel" ,sbcl-babel)
5737 ("usocket" ,sbcl-usocket)
5738 ("fast-http" ,sbcl-fast-http)
5739 ("quri" ,sbcl-quri)
5740 ("fast-io" ,sbcl-fast-io)
5741 ("chunga" ,sbcl-chunga)
5742 ("cl-ppcre" ,sbcl-cl-ppcre)
5743 ("cl-cookie" ,sbcl-cl-cookie)
5744 ("trivial-mimes" ,sbcl-trivial-mimes)
5745 ("chipz" ,sbcl-chipz)
5746 ("cl-base64" ,sbcl-cl-base64)
5747 ("cl-reexport" ,sbcl-cl-reexport)
5748 ("cl+ssl" ,sbcl-cl+ssl)
5749 ("bordeaux-threads" ,sbcl-bordeaux-threads)
5750 ("alexandria" ,sbcl-alexandria)))
5751 (native-inputs
5752 `(("prove" ,sbcl-prove)
5753 ("prove-asdf" ,sbcl-prove-asdf)
5754 ("lack-request" ,sbcl-lack-request)
5755 ("clack" ,sbcl-clack)
5756 ("babel" ,sbcl-babel)
5757 ("alexandria" ,sbcl-alexandria)
5758 ("cl-ppcre" ,sbcl-cl-ppcre)
5759 ("local-time" ,sbcl-local-time)))
5760 (arguments
5761 ;; TODO: Circular dependency: tests depend on clack-test which depends on dexador.
5762 `(#:tests? #f
5763 #:phases
5764 (modify-phases %standard-phases
5765 (add-after 'unpack 'fix-permissions
5766 (lambda _ (make-file-writable "t/data/test.gz") #t)))))
5767 (synopsis "Yet another HTTP client for Common Lisp")
5768 (description "Dexador is yet another HTTP client for Common Lisp with
5769 neat APIs and connection-pooling. It is meant to supersede Drakma.")
5770 (license license:expat))))
5771
5772 (define-public cl-dexador
5773 (package
5774 (inherit (sbcl-package->cl-source-package sbcl-dexador))
5775 (arguments
5776 `(#:phases
5777 ;; asdf-build-system/source has its own phases and does not inherit
5778 ;; from asdf-build-system/sbcl phases.
5779 (modify-phases %standard-phases/source
5780 (add-after 'unpack 'fix-permissions
5781 (lambda _ (make-file-writable "t/data/test.gz") #t)))))))
5782
5783 (define-public ecl-dexador
5784 (sbcl-package->ecl-package sbcl-dexador))
5785
5786 (define-public sbcl-lisp-namespace
5787 (let ((commit "28107cafe34e4c1c67490fde60c7f92dc610b2e0")
5788 (revision "1"))
5789 (package
5790 (name "sbcl-lisp-namespace")
5791 (build-system asdf-build-system/sbcl)
5792 (version (git-version "0.1" revision commit))
5793 (home-page "https://github.com/guicho271828/lisp-namespace")
5794 (source
5795 (origin
5796 (method git-fetch)
5797 (uri (git-reference
5798 (url home-page)
5799 (commit commit)))
5800 (file-name (git-file-name name version))
5801 (sha256
5802 (base32
5803 "1jw2wykp06z2afb9nm1lgfzll5cjlj36pnknjx614057zkkxq4iy"))))
5804 (inputs
5805 `(("alexandria" ,sbcl-alexandria)))
5806 (native-inputs
5807 `(("fiveam" ,sbcl-fiveam)))
5808 (arguments
5809 `(#:test-asd-file "lisp-namespace.test.asd"
5810 ;; XXX: Component LISP-NAMESPACE-ASD::LISP-NAMESPACE.TEST not found
5811 #:tests? #f))
5812 (synopsis "LISP-N, or extensible namespaces in Common Lisp")
5813 (description "Common Lisp already has major 2 namespaces, function
5814 namespace and value namespace (or variable namespace), but there are actually
5815 more — e.g., class namespace.
5816 This library offers macros to deal with symbols from any namespace.")
5817 (license license:llgpl))))
5818
5819 (define-public cl-lisp-namespace
5820 (sbcl-package->cl-source-package sbcl-lisp-namespace))
5821
5822 (define-public sbcl-trivial-cltl2
5823 (let ((commit "8eec8407df833e8f27df8a388bc10913f16d9e83")
5824 (revision "1"))
5825 (package
5826 (name "sbcl-trivial-cltl2")
5827 (build-system asdf-build-system/sbcl)
5828 (version (git-version "0.1.1" revision commit))
5829 (home-page "https://github.com/Zulu-Inuoe/trivial-cltl2")
5830 (source
5831 (origin
5832 (method git-fetch)
5833 (uri (git-reference
5834 (url home-page)
5835 (commit commit)))
5836 (file-name (git-file-name name version))
5837 (sha256
5838 (base32
5839 "1dyyxz17vqv8hlfwq287gl8xxbvcnq798ajb7p5jdjz91wqf4bgk"))))
5840 (synopsis "Simple CLtL2 compatibility layer for Common Lisp")
5841 (description "This library is a portable compatibility layer around
5842 \"Common Lisp the Language, 2nd
5843 Edition\" (@url{https://www.cs.cmu.edu/Groups/AI/html/cltl/clm/node102.html})
5844 and it exports symbols from implementation-specific packages.")
5845 (license license:llgpl))))
5846
5847 (define-public cl-trivial-cltl2
5848 (sbcl-package->cl-source-package sbcl-trivial-cltl2))
5849
5850 (define-public sbcl-introspect-environment
5851 (let ((commit "fff42f8f8fd0d99db5ad6c5812e53de7d660020b")
5852 (revision "1"))
5853 (package
5854 (name "sbcl-introspect-environment")
5855 (build-system asdf-build-system/sbcl)
5856 (version (git-version "0.1" revision commit))
5857 (home-page "https://github.com/Bike/introspect-environment")
5858 (source
5859 (origin
5860 (method git-fetch)
5861 (uri (git-reference
5862 (url home-page)
5863 (commit commit)))
5864 (file-name (git-file-name name version))
5865 (sha256
5866 (base32
5867 "1i305n0wfmpac63ni4i3vixnnkl8daw5ncxy0k3dv92krgx6qzhp"))))
5868 (native-inputs
5869 `(("fiveam" ,sbcl-fiveam)))
5870 (synopsis "Common Lisp environment introspection portability layer")
5871 (description "This library is a small interface to portable but
5872 nonstandard introspection of Common Lisp environments. It is intended to
5873 allow a bit more compile-time introspection of environments in Common Lisp.
5874
5875 Quite a bit of information is available at the time a macro or compiler-macro
5876 runs; inlining info, type declarations, that sort of thing. This information
5877 is all standard - any Common Lisp program can @code{(declare (integer x))} and
5878 such.
5879
5880 This info ought to be accessible through the standard @code{&environment}
5881 parameters, but it is not. Several implementations keep the information for
5882 their own purposes but do not make it available to user programs, because
5883 there is no standard mechanism to do so.
5884
5885 This library uses implementation-specific hooks to make information available
5886 to users. This is currently supported on SBCL, CCL, and CMUCL. Other
5887 implementations have implementations of the functions that do as much as they
5888 can and/or provide reasonable defaults.")
5889 (license license:wtfpl2))))
5890
5891 (define-public cl-introspect-environment
5892 (sbcl-package->cl-source-package sbcl-introspect-environment))
5893
5894 (define-public sbcl-type-i
5895 (let ((commit "dea233f45f94064105ec09f0767de338f67dcbe2")
5896 (revision "1"))
5897 (package
5898 (name "sbcl-type-i")
5899 (build-system asdf-build-system/sbcl)
5900 (version (git-version "0.1" revision commit))
5901 (home-page "https://github.com/guicho271828/type-i")
5902 (source
5903 (origin
5904 (method git-fetch)
5905 (uri (git-reference
5906 (url home-page)
5907 (commit commit)))
5908 (file-name (git-file-name name version))
5909 (sha256
5910 (base32
5911 "039g5pbrhh65s0bhr9314gmd2nwc2y5lp2377c5qrc2lxky89qs3"))))
5912 (inputs
5913 `(("alexandria" ,sbcl-alexandria)
5914 ("introspect-environment" ,sbcl-introspect-environment)
5915 ("trivia.trivial" ,sbcl-trivia.trivial)))
5916 (native-inputs
5917 `(("fiveam" ,sbcl-fiveam)))
5918 (arguments
5919 `(#:test-asd-file "type-i.test.asd"))
5920 (synopsis "Type inference utility on unary predicates for Common Lisp")
5921 (description "This library tries to provide a way to detect what kind of
5922 type the given predicate is trying to check. This is different from inferring
5923 the return type of a function.")
5924 (license license:llgpl))))
5925
5926 (define-public cl-type-i
5927 (sbcl-package->cl-source-package sbcl-type-i))
5928
5929 (define-public sbcl-optima
5930 (let ((commit "373b245b928c1a5cce91a6cb5bfe5dd77eb36195")
5931 (revision "1"))
5932 (package
5933 (name "sbcl-optima")
5934 (build-system asdf-build-system/sbcl)
5935 (version (git-version "1.0" revision commit))
5936 (home-page "https://github.com/m2ym/optima")
5937 (source
5938 (origin
5939 (method git-fetch)
5940 (uri (git-reference
5941 (url home-page)
5942 (commit commit)))
5943 (file-name (git-file-name name version))
5944 (sha256
5945 (base32
5946 "1yw4ymq7ms89342kkvb3aqxgv0w38m9kd8ikdqxxzyybnkjhndal"))))
5947 (inputs
5948 `(("alexandria" ,sbcl-alexandria)
5949 ("closer-mop" ,sbcl-closer-mop)))
5950 (native-inputs
5951 `(("eos" ,sbcl-eos)))
5952 (arguments
5953 ;; XXX: Circular dependencies: tests depend on optima.ppcre which depends on optima.
5954 `(#:tests? #f
5955 #:test-asd-file "optima.test.asd"))
5956 (synopsis "Optimized pattern matching library for Common Lisp")
5957 (description "Optima is a fast pattern matching library which uses
5958 optimizing techniques widely used in the functional programming world.")
5959 (license license:expat))))
5960
5961 (define-public cl-optima
5962 (sbcl-package->cl-source-package sbcl-optima))
5963
5964 (define-public sbcl-fare-quasiquote
5965 (let ((commit "640d39a0451094071b3e093c97667b3947f43639")
5966 (revision "1"))
5967 (package
5968 (name "sbcl-fare-quasiquote")
5969 (build-system asdf-build-system/sbcl)
5970 (version (git-version "1.0.1" revision commit))
5971 (home-page "https://gitlab.common-lisp.net/frideau/fare-quasiquote")
5972 (source
5973 (origin
5974 (method git-fetch)
5975 (uri (git-reference
5976 (url (string-append "https://gitlab.common-lisp.net/frideau/"
5977 "fare-quasiquote.git"))
5978 (commit commit)))
5979 (file-name (git-file-name name version))
5980 (sha256
5981 (base32 "1g6q11l50kgija9f55lzqpcwvaq0ljiw8v1j265hnyg6nahjwjvg"))))
5982 (inputs
5983 `(("fare-utils" ,sbcl-fare-utils)))
5984 (arguments
5985 ;; XXX: Circular dependencies: Tests depend on subsystems,
5986 ;; which depend on the main systems.
5987 `(#:tests? #f
5988 #:phases
5989 (modify-phases %standard-phases
5990 ;; XXX: Require 1.0.0 version of fare-utils, and we package some
5991 ;; commits after 1.0.0.5, but ASDF fails to read the
5992 ;; "-REVISION-COMMIT" part generated by Guix.
5993 (add-after 'unpack 'patch-requirement
5994 (lambda _
5995 (substitute* "fare-quasiquote.asd"
5996 (("\\(:version \"fare-utils\" \"1.0.0\"\\)")
5997 "\"fare-utils\"")))))))
5998 (synopsis "Pattern-matching friendly implementation of quasiquote")
5999 (description "The main purpose of this n+2nd reimplementation of
6000 quasiquote is enable matching of quasiquoted patterns, using Optima or
6001 Trivia.")
6002 (license license:expat))))
6003
6004 (define-public cl-fare-quasiquote
6005 (sbcl-package->cl-source-package sbcl-fare-quasiquote))
6006
6007 (define-public sbcl-fare-quasiquote-optima
6008 (package
6009 (inherit sbcl-fare-quasiquote)
6010 (name "sbcl-fare-quasiquote-optima")
6011 (inputs
6012 `(("optima" ,sbcl-optima)
6013 ("fare-quasiquote" ,sbcl-fare-quasiquote)))
6014 (arguments
6015 '(#:phases
6016 (modify-phases %standard-phases
6017 (add-after 'unpack 'patch-requirement
6018 (lambda _
6019 (substitute* "fare-quasiquote-optima.asd"
6020 (("\\(:version \"optima\" \"1\\.0\"\\)")
6021 "\"optima\""))
6022 #t)))))))
6023
6024 (define-public cl-fare-quasiquote-optima
6025 (sbcl-package->cl-source-package sbcl-fare-quasiquote-optima))
6026
6027 (define-public sbcl-fare-quasiquote-readtable
6028 (package
6029 (inherit sbcl-fare-quasiquote)
6030 (name "sbcl-fare-quasiquote-readtable")
6031 (inputs
6032 `(("fare-quasiquote" ,sbcl-fare-quasiquote)
6033 ("named-readtables" ,sbcl-named-readtables)))
6034 (description "The main purpose of this n+2nd reimplementation of
6035 quasiquote is enable matching of quasiquoted patterns, using Optima or
6036 Trivia.
6037
6038 This package uses fare-quasiquote with named-readtable.")))
6039
6040 (define-public cl-fare-quasiquote-readtable
6041 (sbcl-package->cl-source-package sbcl-fare-quasiquote-readtable))
6042
6043 ;; TODO: Add support for component-less system in asdf-build-system/sbcl.
6044 (define-public sbcl-fare-quasiquote-extras
6045 (package
6046 (inherit sbcl-fare-quasiquote)
6047 (name "sbcl-fare-quasiquote-extras")
6048 (build-system asdf-build-system/sbcl)
6049 (inputs
6050 `(("fare-quasiquote-optima" ,sbcl-fare-quasiquote-optima)
6051 ("fare-quasiquote-readtable" ,sbcl-fare-quasiquote-readtable)))
6052 (arguments
6053 `(#:phases
6054 (modify-phases %standard-phases
6055 (replace 'build
6056 (lambda* (#:key outputs #:allow-other-keys)
6057 (let* ((out (assoc-ref outputs "out"))
6058 (lib (string-append out "/lib/" (%lisp-type))))
6059 (mkdir-p lib)
6060 (install-file "fare-quasiquote-extras.asd" lib)
6061 (make-file-writable
6062 (string-append lib "/fare-quasiquote-extras.asd"))
6063 #t)))
6064 (add-after 'create-asd-file 'fix-asd-file
6065 (lambda* (#:key outputs #:allow-other-keys)
6066 (let* ((out (assoc-ref outputs "out"))
6067 (lib (string-append out "/lib/" (%lisp-type)))
6068 (asd (string-append lib "/fare-quasiquote-extras.asd")))
6069 (substitute* asd
6070 ((":class")
6071 "")
6072 (("asdf/bundle:prebuilt-system")
6073 "")
6074 ((":components")
6075 "")
6076 (("\\(\\(:compiled-file \"fare-quasiquote-extras--system\"\\)\\)")
6077 "")))
6078 #t)))))
6079 (description "This library combines @code{fare-quasiquote-readtable} and
6080 @code{fare-quasiquote-optima}.")))
6081
6082 (define-public cl-fare-quasiquote-extras
6083 (package
6084 (inherit cl-fare-quasiquote)
6085 (name "cl-fare-quasiquote-extras")
6086 (build-system asdf-build-system/source)
6087 (propagated-inputs
6088 `(("fare-quasiquote" ,cl-fare-quasiquote)
6089 ("fare-quasiquote-optima" ,cl-fare-quasiquote-optima)
6090 ("fare-quasiquote-readtable" ,cl-fare-quasiquote-readtable)))
6091 (description "This library combines @code{fare-quasiquote-readtable} and
6092 @code{fare-quasiquote-optima}.")))
6093
6094 (define-public sbcl-trivia.level0
6095 (let ((commit "574901ac376ae54c9d37169fd5efab9b3b8fcc63")
6096 (revision "1"))
6097 (package
6098 (name "sbcl-trivia.level0")
6099 (build-system asdf-build-system/sbcl)
6100 (version (git-version "0.0.0" revision commit))
6101 (home-page "https://github.com/guicho271828/trivia")
6102 (source
6103 (origin
6104 (method git-fetch)
6105 (uri (git-reference
6106 (url home-page)
6107 (commit commit)))
6108 (file-name (git-file-name name version))
6109 (sha256
6110 (base32
6111 "0hf53n71xzr9sjwrxis5fivx3drclf4s39h5ck8vh21ndqj9zvdk"))))
6112 (inputs
6113 `(("alexandria" ,sbcl-alexandria)))
6114 (synopsis "Pattern matching in Common Lisp")
6115 (description "Trivia is a pattern matching compiler that is compatible
6116 with Optima, another pattern matching library for Common Lisp. It is meant to
6117 be faster and more extensible than Optima.")
6118 (license license:llgpl))))
6119
6120 (define-public sbcl-trivia.level1
6121 (package
6122 (inherit sbcl-trivia.level0)
6123 (name "sbcl-trivia.level1")
6124 (inputs
6125 `(("trivia.level0" ,sbcl-trivia.level0)))
6126 (description "Trivia is a pattern matching compiler that is compatible
6127 with Optima, another pattern matching library for Common Lisp. It is meant to
6128 be faster and more extensible than Optima.
6129
6130 This system contains the core patterns of Trivia.")))
6131
6132 (define-public sbcl-trivia.level2
6133 (package
6134 (inherit sbcl-trivia.level0)
6135 (name "sbcl-trivia.level2")
6136 (inputs
6137 `(("trivia.level1" ,sbcl-trivia.level1)
6138 ("lisp-namespace" ,sbcl-lisp-namespace)
6139 ("trivial-cltl2" ,sbcl-trivial-cltl2)
6140 ("closer-mop" ,sbcl-closer-mop)))
6141 (description "Trivia is a pattern matching compiler that is compatible
6142 with Optima, another pattern matching library for Common Lisp. It is meant to
6143 be faster and more extensible than Optima.
6144
6145 This system contains a non-optimized pattern matcher compatible with Optima,
6146 with extensible optimizer interface.")))
6147
6148 (define-public sbcl-trivia.trivial
6149 (package
6150 (inherit sbcl-trivia.level0)
6151 (name "sbcl-trivia.trivial")
6152 (inputs
6153 `(("trivia.level2" ,sbcl-trivia.level2)))
6154 (arguments
6155 `(#:phases
6156 (modify-phases %standard-phases
6157 (replace 'create-asd-file
6158 (lambda* (#:key outputs inputs #:allow-other-keys)
6159 (let* ((out (assoc-ref outputs "out"))
6160 (lib (string-append out "/lib/" (%lisp-type)))
6161 (level2 (assoc-ref inputs "trivia.level2")))
6162 (mkdir-p lib)
6163 (install-file "trivia.trivial.asd" lib)
6164 ;; XXX: This .asd does not have any component and the build
6165 ;; system fails to work in this case. We should update the
6166 ;; build system to handle component-less .asd.
6167 ;; TODO: How do we append to file in Guile? It seems that
6168 ;; (open-file ... "a") gets a "Permission denied".
6169 (substitute* (string-append lib "/trivia.trivial.asd")
6170 (("\"\\)")
6171 (string-append "\")
6172
6173 (progn (asdf/source-registry:ensure-source-registry)
6174 (setf (gethash
6175 \"trivia.level2\"
6176 asdf/source-registry:*source-registry*)
6177 #p\""
6178 level2
6179 "/share/common-lisp/sbcl-bundle-systems/trivia.level2.asd\"))")))))))))
6180 (description "Trivia is a pattern matching compiler that is compatible
6181 with Optima, another pattern matching library for Common Lisp. It is meant to
6182 be faster and more extensible than Optima.
6183
6184 This system contains the base level system of Trivia with a trivial optimizer.")))
6185
6186 (define-public sbcl-trivia.balland2006
6187 (package
6188 (inherit sbcl-trivia.level0)
6189 (name "sbcl-trivia.balland2006")
6190 (inputs
6191 `(("trivia.trivial" ,sbcl-trivia.trivial)
6192 ("iterate" ,sbcl-iterate)
6193 ("type-i" ,sbcl-type-i)
6194 ("alexandria" ,sbcl-alexandria)))
6195 (arguments
6196 ;; Tests are done in trivia itself.
6197 `(#:tests? #f))
6198 (description "Trivia is a pattern matching compiler that is compatible
6199 with Optima, another pattern matching library for Common Lisp. It is meant to
6200 be faster and more extensible than Optima.
6201
6202 This system contains the base level system of Trivia with a trivial optimizer.")))
6203
6204 (define-public sbcl-trivia.ppcre
6205 (package
6206 (inherit sbcl-trivia.level0)
6207 (name "sbcl-trivia.ppcre")
6208 (inputs
6209 `(("trivia.trivial" ,sbcl-trivia.trivial)
6210 ("cl-ppcre" ,sbcl-cl-ppcre)))
6211 (description "Trivia is a pattern matching compiler that is compatible
6212 with Optima, another pattern matching library for Common Lisp. It is meant to
6213 be faster and more extensible than Optima.
6214
6215 This system contains the PPCRE extension.")))
6216
6217 (define-public sbcl-trivia.quasiquote
6218 (package
6219 (inherit sbcl-trivia.level0)
6220 (name "sbcl-trivia.quasiquote")
6221 (inputs
6222 `(("trivia.trivial" ,sbcl-trivia.trivial)
6223 ("fare-quasiquote" ,sbcl-fare-quasiquote)
6224 ("fare-quasiquote-readtable" ,sbcl-fare-quasiquote-readtable)))
6225 (description "Trivia is a pattern matching compiler that is compatible
6226 with Optima, another pattern matching library for Common Lisp. It is meant to
6227 be faster and more extensible than Optima.
6228
6229 This system contains the fare-quasiquote extension.")))
6230
6231 (define-public sbcl-trivia.cffi
6232 (package
6233 (inherit sbcl-trivia.level0)
6234 (name "sbcl-trivia.cffi")
6235 (inputs
6236 `(("cffi" ,sbcl-cffi)
6237 ("trivia.trivial" ,sbcl-trivia.trivial)))
6238 (description "Trivia is a pattern matching compiler that is compatible
6239 with Optima, another pattern matching library for Common Lisp. It is meant to
6240 be faster and more extensible than Optima.
6241
6242 This system contains the CFFI foreign slot access extension.")))
6243
6244 (define-public sbcl-trivia
6245 (package
6246 (inherit sbcl-trivia.level0)
6247 (name "sbcl-trivia")
6248 (inputs
6249 `(("trivia.balland2006" ,sbcl-trivia.balland2006)))
6250 (native-inputs
6251 `(("fiveam" ,sbcl-fiveam)
6252 ("trivia.ppcre" ,sbcl-trivia.ppcre)
6253 ("trivia.quasiquote" ,sbcl-trivia.quasiquote)
6254 ("trivia.cffi" ,sbcl-trivia.cffi)
6255 ("optima" ,sbcl-optima)))
6256 (arguments
6257 `(#:test-asd-file "trivia.test.asd"
6258 #:phases
6259 (modify-phases %standard-phases
6260 (add-after 'create-asd 'remove-component
6261 ;; XXX: The original .asd has no components, but our build system
6262 ;; creates an entry nonetheless. We need to remove it for the
6263 ;; generated .asd to load properly. See trivia.trivial for a
6264 ;; similar problem.
6265 (lambda* (#:key outputs #:allow-other-keys)
6266 (let* ((out (assoc-ref outputs "out"))
6267 (asd (string-append out "/lib/" (%lisp-type) "/trivia.asd")))
6268 (substitute* asd
6269 ((" :components
6270 ")
6271 ""))
6272 (substitute* asd
6273 ((" *\\(\\(:compiled-file \"trivia--system\"\\)\\)")
6274 ""))))))))
6275 (description "Trivia is a pattern matching compiler that is compatible
6276 with Optima, another pattern matching library for Common Lisp. It is meant to
6277 be faster and more extensible than Optima.")))
6278
6279 (define-public cl-trivia
6280 (sbcl-package->cl-source-package sbcl-trivia))
6281
6282 (define-public sbcl-mk-string-metrics
6283 (package
6284 (name "sbcl-mk-string-metrics")
6285 (version "0.1.2")
6286 (home-page "https://github.com/cbaggers/mk-string-metrics/")
6287 (source (origin
6288 (method git-fetch)
6289 (uri (git-reference
6290 (url home-page)
6291 (commit version)))
6292 (sha256
6293 (base32 "0bg0bv2mfd4k0g3x72x563hvmrx18xavaffr6xk5rh4if5j7kcf6"))
6294 (file-name (git-file-name name version))))
6295 (build-system asdf-build-system/sbcl)
6296 (synopsis "Calculate various string metrics efficiently in Common Lisp")
6297 (description "This library implements efficient algorithms that calculate
6298 various string metrics in Common Lisp:
6299
6300 @itemize
6301 @item Damerau-Levenshtein distance
6302 @item Hamming distance
6303 @item Jaccard similarity coefficient
6304 @item Jaro distance
6305 @item Jaro-Winkler distance
6306 @item Levenshtein distance
6307 @item Normalized Damerau-Levenshtein distance
6308 @item Normalized Levenshtein distance
6309 @item Overlap coefficient
6310 @end itemize\n")
6311 (license license:x11)))
6312
6313 (define-public cl-mk-string-metrics
6314 (sbcl-package->cl-source-package sbcl-mk-string-metrics))
6315
6316 (define-public sbcl-cl-str
6317 (let ((commit "3d5ec86e3a0199e5973aacde951086dfd754b5e5"))
6318 (package
6319 (name "sbcl-cl-str")
6320 (version (git-version "0.8" "1" commit))
6321 (home-page "https://github.com/vindarel/cl-str")
6322 (source (origin
6323 (method git-fetch)
6324 (uri (git-reference
6325 (url home-page)
6326 (commit commit)))
6327 (sha256
6328 (base32 "0szzzbygw9h985yxz909vvqrp69pmpcpahn7hn350lnyjislk9ga"))
6329 (file-name (git-file-name name version))))
6330 (build-system asdf-build-system/sbcl)
6331 (inputs
6332 `(("cl-ppcre" ,sbcl-cl-ppcre)
6333 ("cl-ppcre-unicode" ,sbcl-cl-ppcre-unicode)))
6334 (native-inputs
6335 `(("prove" ,sbcl-prove)
6336 ("prove-asdf" ,sbcl-prove-asdf)))
6337 (arguments
6338 `(#:asd-file "str.asd"
6339 #:asd-system-name "str"
6340 #:test-asd-file "str.test.asd"))
6341 (synopsis "Modern, consistent and terse Common Lisp string manipulation library")
6342 (description "A modern and consistent Common Lisp string manipulation
6343 library that focuses on modernity, simplicity and discoverability:
6344 @code{(str:trim s)} instead of @code{(string-trim '(#\\Space ...) s)}), or
6345 @code{str:concat strings} instead of an unusual format construct; one
6346 discoverable library instead of many; consistency and composability, where
6347 @code{s} is always the last argument, which makes it easier to feed pipes and
6348 arrows.")
6349 (license license:expat))))
6350
6351 (define-public cl-str
6352 (sbcl-package->cl-source-package sbcl-cl-str))
6353
6354 (define-public sbcl-cl-xmlspam
6355 (let ((commit "ea06abcca2a73a9779bcfb09081e56665f94e22a"))
6356 (package
6357 (name "sbcl-cl-xmlspam")
6358 (build-system asdf-build-system/sbcl)
6359 (version (git-version "0.0.0" "1" commit))
6360 (home-page "https://github.com/rogpeppe/cl-xmlspam")
6361 (source
6362 (origin
6363 (method git-fetch)
6364 (uri (git-reference
6365 (url home-page)
6366 (commit commit)))
6367 (file-name (string-append name "-" version))
6368 (sha256
6369 (base32
6370 "0w4rqvrgdgk3fwfq3kx4r7wwdr2bv3b6n3bdqwsiriw9psqzpz2s"))))
6371 (inputs
6372 `(("cxml" ,sbcl-cxml)
6373 ("cl-ppcre" ,sbcl-cl-ppcre)))
6374 (synopsis "Concise, regexp-like pattern matching on streaming XML for Common Lisp")
6375 (description "CXML does an excellent job at parsing XML elements, but what
6376 do you do when you have a XML file that's larger than you want to fit in
6377 memory, and you want to extract some information from it? Writing code to deal
6378 with SAX events, or even using Klacks, quickly becomes tedious.
6379 @code{cl-xmlspam} (for XML Stream PAttern Matcher) is designed to make it easy
6380 to write code that mirrors the structure of the XML that it's parsing. It
6381 also makes it easy to shift paradigms when necessary - the usual Lisp control
6382 constructs can be used interchangeably with pattern matching, and the full
6383 power of CXML is available when necessary.")
6384 (license license:bsd-3))))
6385
6386 ;; TODO: dbus uses ASDF's package-inferred-system which is not supported by
6387 ;; asdf-build-system/sbcl as of 2019-08-02. We should fix
6388 ;; asdf-build-system/sbcl.
6389 (define-public cl-dbus
6390 (let ((commit "24b452df3a45ca5dc95015500f34baad175c981a")
6391 (revision "1"))
6392 (package
6393 (name "cl-dbus")
6394 (build-system asdf-build-system/source)
6395 (version (git-version "20190408" revision commit))
6396 (home-page "https://github.com/death/dbus")
6397 (source
6398 (origin
6399 (method git-fetch)
6400 (uri (git-reference
6401 (url home-page)
6402 (commit commit)))
6403 (file-name (git-file-name name version))
6404 (sha256
6405 (base32
6406 "0fw2q866yddbf23nk9pxphm9gsasx35vjyss82xzvndnjmzlqfl5"))))
6407 ;; Inputs must be propagated or else packages depending on this won't
6408 ;; have the necessary packages.
6409 (propagated-inputs
6410 `(("alexandria" ,sbcl-alexandria)
6411 ("trivial-garbage" ,sbcl-trivial-garbage)
6412 ("babel" ,sbcl-babel)
6413 ("iolib" ,sbcl-iolib)
6414 ("ieee-floats" ,sbcl-ieee-floats)
6415 ("flexi-streams" ,sbcl-flexi-streams)
6416 ("cl-xmlspam" ,sbcl-cl-xmlspam)
6417 ("ironclad" ,sbcl-ironclad)))
6418 (synopsis "D-Bus client library for Common Lisp")
6419 (description "This is a Common Lisp library that allows to publish D-Bus
6420 objects as well as send and notify other objects connected to a bus.")
6421 (license license:bsd-2))))
6422
6423 (define-public sbcl-cl-hooks
6424 (let ((commit "5b638083f3b4f1221a52631d9c8a0a265565cac7")
6425 (revision "1"))
6426 (package
6427 (name "sbcl-cl-hooks")
6428 (build-system asdf-build-system/sbcl)
6429 (version (git-version "0.2.1" revision commit))
6430 (home-page "https://github.com/scymtym/architecture.hooks")
6431 (source
6432 (origin
6433 (method git-fetch)
6434 (uri (git-reference
6435 (url home-page)
6436 (commit commit)))
6437 (file-name (git-file-name name version))
6438 (sha256
6439 (base32
6440 "0bg3l0a28lw5gqqjp6p6b5nhwqk46sgkb7184w5qbfngw1hk8x9y"))))
6441 (inputs
6442 `(("alexandria" ,sbcl-alexandria)
6443 ("let-plus" ,sbcl-let-plus)
6444 ("trivial-garbage" ,sbcl-trivial-garbage)
6445 ("closer-mop" ,sbcl-closer-mop)))
6446 (native-inputs
6447 `(("fiveam" ,sbcl-fiveam)))
6448 (synopsis "Hooks extension point mechanism (as in Emacs) for Common Lisp")
6449 (description "A hook, in the present context, is a certain kind of
6450 extension point in a program that allows interleaving the execution of
6451 arbitrary code with the execution of a the program without introducing any
6452 coupling between the two. Hooks are used extensively in the extensible editor
6453 Emacs.
6454
6455 In the Common LISP Object System (CLOS), a similar kind of extensibility is
6456 possible using the flexible multi-method dispatch mechanism. It may even seem
6457 that the concept of hooks does not provide any benefits over the possibilities
6458 of CLOS. However, there are some differences:
6459
6460 @itemize
6461
6462 @item There can be only one method for each combination of specializers and
6463 qualifiers. As a result this kind of extension point cannot be used by
6464 multiple extensions independently.
6465 @item Removing code previously attached via a @code{:before}, @code{:after} or
6466 @code{:around} method can be cumbersome.
6467 @item There could be other or even multiple extension points besides @code{:before}
6468 and @code{:after} in a single method.
6469 @item Attaching codes to individual objects using eql specializers can be
6470 cumbersome.
6471 @item Introspection of code attached a particular extension point is
6472 cumbersome since this requires enumerating and inspecting the methods of a
6473 generic function.
6474 @end itemize
6475
6476 This library tries to complement some of these weaknesses of method-based
6477 extension-points via the concept of hooks.")
6478 (license license:llgpl))))
6479
6480 (define-public cl-hooks
6481 (sbcl-package->cl-source-package sbcl-cl-hooks))
6482
6483 (define-public ecl-cl-hooks
6484 (sbcl-package->ecl-package sbcl-cl-hooks))
6485
6486 (define-public sbcl-s-sysdeps
6487 (let ((commit "d28246b5dffef9e73a0e0e6cfbc4e878006fe34d")
6488 (revision "1"))
6489 (package
6490 (name "sbcl-s-sysdeps")
6491 (build-system asdf-build-system/sbcl)
6492 (version (git-version "1" revision commit))
6493 (home-page "https://github.com/svenvc/s-sysdeps")
6494 (source
6495 (origin
6496 (method git-fetch)
6497 (uri (git-reference
6498 (url home-page)
6499 (commit commit)))
6500 (file-name (git-file-name name version))
6501 (sha256
6502 (base32
6503 "14b69b81yrxmjlvmm3lfxk04x5v7hqz4fql121334wh72czznfh9"))))
6504 (synopsis "Common Lisp abstraction layer over platform dependent functionality")
6505 (description "@code{s-sysdeps} is an abstraction layer over platform
6506 dependent functionality. This simple package is used as a building block in a
6507 number of other open source projects.
6508
6509 @code{s-sysdeps} abstracts:
6510
6511 @itemize
6512 @item managing processes,
6513 @item implementing a standard TCP/IP server,
6514 @item opening a client TCP/IP socket stream,
6515 @item working with process locks.
6516 @end itemize\n")
6517 (license license:llgpl))))
6518
6519 (define-public cl-s-sysdeps
6520 (sbcl-package->cl-source-package sbcl-s-sysdeps))
6521
6522 (define-public ecl-s-sysdeps
6523 (sbcl-package->ecl-package sbcl-s-sysdeps))
6524
6525 (define-public sbcl-cl-prevalence
6526 (let ((commit "c163c227ed85d430b82cb1e3502f72d4f88e3cfa")
6527 (revision "1"))
6528 (package
6529 (name "sbcl-cl-prevalence")
6530 (build-system asdf-build-system/sbcl)
6531 (version (git-version "5" revision commit))
6532 (home-page "https://github.com/40ants/cl-prevalence")
6533 (source
6534 (origin
6535 (method git-fetch)
6536 (uri (git-reference
6537 (url home-page)
6538 (commit commit)))
6539 (file-name (git-file-name name version))
6540 (sha256
6541 (base32
6542 "1i9zj1q2ahgwch56an21yzbgkynz0kab9fyxkq9mg8p3xrv38jjn"))))
6543 (inputs
6544 `(("s-sysdeps" ,sbcl-s-sysdeps)
6545 ("s-xml" ,sbcl-s-xml)))
6546 (synopsis "Implementation of object prevalence for Common Lisp")
6547 (description "This Common Lisp library implements object prevalence (see
6548 @url{https://en.wikipedia.org/wiki/System_prevalence}). It allows
6549 for (de)serializing to and from s-exps as well as XML. Serialization of arbitrary
6550 classes and cyclic data structures are supported.")
6551 (license license:llgpl))))
6552
6553 (define-public cl-prevalence
6554 (sbcl-package->cl-source-package sbcl-cl-prevalence))
6555
6556 (define-public ecl-cl-prevalence
6557 (sbcl-package->ecl-package sbcl-cl-prevalence))
6558
6559 (define-public sbcl-series
6560 (let ((commit "da9061b336119d1e5214aff9117171d494d5a58a")
6561 (revision "1"))
6562 (package
6563 (name "sbcl-series")
6564 (version (git-version "2.2.11" revision commit))
6565 (source
6566 (origin
6567 (method git-fetch)
6568 (uri (git-reference
6569 (url "git://git.code.sf.net/p/series/series")
6570 (commit commit)))
6571 (file-name (git-file-name name version))
6572 (sha256
6573 (base32
6574 "07hk2lhfx42zk018pxqvn4gs77vd4n4g8m4xxbqaxgca76mifwfw"))))
6575 (build-system asdf-build-system/sbcl)
6576 (arguments
6577 ;; Disable the tests, they are apparently buggy and I didn't find
6578 ;; a simple way to make them run and pass.
6579 '(#:tests? #f))
6580 (synopsis "Series data structure for Common Lisp")
6581 (description
6582 "This Common Lisp library provides a series data structure much like
6583 a sequence, with similar kinds of operations. The difference is that in many
6584 situations, operations on series may be composed functionally and yet execute
6585 iteratively, without the need to construct intermediate series values
6586 explicitly. In this manner, series provide both the clarity of a functional
6587 programming style and the efficiency of an iterative programming style.")
6588 (home-page "http://series.sourceforge.net/")
6589 (license license:expat))))
6590
6591 (define-public cl-series
6592 (sbcl-package->cl-source-package sbcl-series))
6593
6594 (define-public ecl-series
6595 (sbcl-package->ecl-package sbcl-series))
6596
6597 (define-public sbcl-periods
6598 (let ((commit "983d4a57325db3c8def942f163133cec5391ec28")
6599 (revision "1"))
6600 (package
6601 (name "sbcl-periods")
6602 (version (git-version "0.0.2" revision commit))
6603 (source
6604 (origin
6605 (method git-fetch)
6606 (uri (git-reference
6607 (url "https://github.com/jwiegley/periods.git")
6608 (commit commit)))
6609 (file-name (git-file-name name version))
6610 (sha256
6611 (base32
6612 "0z30jr3lxz3cmi019fsl4lgcgwf0yqpn95v9zkkkwgymdrkd4lga"))))
6613 (build-system asdf-build-system/sbcl)
6614 (inputs
6615 `(("local-time" ,sbcl-local-time)))
6616 (synopsis "Common Lisp library for manipulating date/time objects")
6617 (description
6618 "Periods is a Common Lisp library providing a set of utilities for
6619 manipulating times, distances between times, and both contiguous and
6620 discontiguous ranges of time.")
6621 (home-page "https://github.com/jwiegley/periods")
6622 (license license:bsd-3))))
6623
6624 (define-public cl-periods
6625 (sbcl-package->cl-source-package sbcl-periods))
6626
6627 (define-public ecl-periods
6628 (sbcl-package->ecl-package sbcl-periods))
6629
6630 (define-public sbcl-periods-series
6631 (package
6632 (inherit sbcl-periods)
6633 (name "sbcl-periods-series")
6634 (inputs
6635 `(("periods" ,sbcl-periods)
6636 ("series" ,sbcl-series)))
6637 (arguments
6638 '(#:asd-file "periods-series.asd"
6639 #:asd-system-name "periods-series"))
6640 (description
6641 "Periods-series is an extension of the periods Common Lisp library
6642 providing functions compatible with the series Common Lisp library.")))
6643
6644 (define-public cl-periods-series
6645 (sbcl-package->cl-source-package sbcl-periods-series))
6646
6647 (define-public ecl-periods-series
6648 (sbcl-package->ecl-package sbcl-periods-series))
6649
6650 (define-public sbcl-metatilities-base
6651 (let ((commit "6eaa9e3ff0939a93a92109dd0fcd218de85417d5")
6652 (revision "1"))
6653 (package
6654 (name "sbcl-metatilities-base")
6655 (version (git-version "0.6.6" revision commit))
6656 (source
6657 (origin
6658 (method git-fetch)
6659 (uri (git-reference
6660 (url "https://github.com/gwkkwg/metatilities-base.git")
6661 (commit commit)))
6662 (file-name (git-file-name name version))
6663 (sha256
6664 (base32
6665 "0xpa86pdzlnf4v5g64j3ifaplx71sx2ha8b7vvakswi652679ma0"))))
6666 (build-system asdf-build-system/sbcl)
6667 (native-inputs
6668 `(("lift" ,sbcl-lift)))
6669 (synopsis "Core of the metatilities Common Lisp library")
6670 (description
6671 "Metatilities-base is the core of the metatilities Common Lisp library
6672 which implements a set of utilities.")
6673 (home-page "https://common-lisp.net/project/metatilities-base/")
6674 (license license:expat))))
6675
6676 (define-public cl-metatilities-base
6677 (sbcl-package->cl-source-package sbcl-metatilities-base))
6678
6679 (define-public ecl-metatilities-base
6680 (sbcl-package->ecl-package sbcl-metatilities-base))
6681
6682 (define-public sbcl-cl-containers
6683 (let ((commit "3d1df53c22403121bffb5d553cf7acb1503850e7")
6684 (revision "3"))
6685 (package
6686 (name "sbcl-cl-containers")
6687 (version (git-version "0.12.1" revision commit))
6688 (source
6689 (origin
6690 (method git-fetch)
6691 (uri (git-reference
6692 (url "https://github.com/gwkkwg/cl-containers.git")
6693 (commit commit)))
6694 (file-name (git-file-name name version))
6695 (sha256
6696 (base32
6697 "18s6jfq11n8nv9k4biz32pm1s7y9zl054ry1gmdbcf39nisy377y"))))
6698 (build-system asdf-build-system/sbcl)
6699 (native-inputs
6700 `(("lift" ,sbcl-lift)))
6701 (inputs
6702 `(("metatilities-base" ,sbcl-metatilities-base)))
6703 (arguments
6704 '(#:phases
6705 (modify-phases %standard-phases
6706 (add-after 'unpack 'relax-version-checks
6707 (lambda _
6708 (substitute* "cl-containers.asd"
6709 (("\\(:version \"metatilities-base\" \"0\\.6\\.6\"\\)")
6710 "\"metatilities-base\""))
6711 (substitute* "cl-containers-test.asd"
6712 (("\\(:version \"lift\" \"1\\.7\\.0\"\\)")
6713 "\"lift\""))
6714 #t)))))
6715 (synopsis "Container library for Common Lisp")
6716 (description
6717 "Common Lisp ships with a set of powerful built in data structures
6718 including the venerable list, full featured arrays, and hash-tables.
6719 CL-containers enhances and builds on these structures by adding containers
6720 that are not available in native Lisp (for example: binary search trees,
6721 red-black trees, sparse arrays and so on), and by providing a standard
6722 interface so that they are simpler to use and so that changing design
6723 decisions becomes significantly easier.")
6724 (home-page "https://common-lisp.net/project/cl-containers/")
6725 (license license:expat))))
6726
6727 (define-public cl-containers
6728 (sbcl-package->cl-source-package sbcl-cl-containers))
6729
6730 (define-public ecl-cl-containers
6731 (sbcl-package->ecl-package sbcl-cl-containers))
6732
6733 (define-public sbcl-xlunit
6734 (let ((commit "3805d34b1d8dc77f7e0ee527a2490194292dd0fc")
6735 (revision "1"))
6736 (package
6737 (name "sbcl-xlunit")
6738 (version (git-version "0.6.3" revision commit))
6739 (source
6740 (origin
6741 (method git-fetch)
6742 (uri (git-reference
6743 (url "http://git.kpe.io/xlunit.git")
6744 (commit commit)))
6745 (file-name (git-file-name name version))
6746 (sha256
6747 (base32
6748 "0argfmp9nghs4sihyj3f8ch9qfib2b7ll07v5m9ziajgzsfl5xw3"))))
6749 (build-system asdf-build-system/sbcl)
6750 (arguments
6751 '(#:phases
6752 (modify-phases %standard-phases
6753 (add-after 'unpack 'fix-tests
6754 (lambda _
6755 (substitute* "xlunit.asd"
6756 ((" :force t") ""))
6757 #t)))))
6758 (synopsis "Unit testing package for Common Lisp")
6759 (description
6760 "The XLUnit package is a toolkit for building test suites. It is based
6761 on the XPTest package by Craig Brozensky and the JUnit package by Kent Beck.")
6762 (home-page "http://quickdocs.org/xlunit/")
6763 (license license:bsd-3))))
6764
6765 (define-public cl-xlunit
6766 (sbcl-package->cl-source-package sbcl-xlunit))
6767
6768 (define-public ecl-xlunit
6769 (sbcl-package->ecl-package sbcl-xlunit))
6770
6771 (define-public sbcl-fprog
6772 (let ((commit "7016d1a98215f82605d1c158e7a16504ca1f4636")
6773 (revision "1"))
6774 (package
6775 (name "sbcl-fprog")
6776 (version (git-version "1.0.0" revision commit))
6777 (source
6778 (origin
6779 (method git-fetch)
6780 (uri (git-reference
6781 (url "https://github.com/jwiegley/cambl.git")
6782 (commit commit)))
6783 (file-name (git-file-name name version))
6784 (sha256
6785 (base32
6786 "103mry04j2k9vznsxm7wcvccgxkil92cdrv52miwcmxl8daa4jiz"))))
6787 (build-system asdf-build-system/sbcl)
6788 (synopsis "Functional programming utilities for Common Lisp")
6789 (description
6790 "@code{fprog} is a Common Lisp library allowing iteration over
6791 immutable lists sharing identical sublists.")
6792 (home-page "https://github.com/jwiegley/cambl")
6793 (license license:bsd-3))))
6794
6795 (define-public cl-fprog
6796 (sbcl-package->cl-source-package sbcl-fprog))
6797
6798 (define-public ecl-fprog
6799 (sbcl-package->ecl-package sbcl-fprog))
6800
6801 (define-public sbcl-cambl
6802 (let ((commit "7016d1a98215f82605d1c158e7a16504ca1f4636")
6803 (revision "1"))
6804 (package
6805 (inherit sbcl-fprog)
6806 (name "sbcl-cambl")
6807 (version (git-version "4.0.0" revision commit))
6808 (native-inputs
6809 `(("xlunit" ,sbcl-xlunit)))
6810 (inputs
6811 `(("alexandria" ,sbcl-alexandria)
6812 ("cl-containers" ,sbcl-cl-containers)
6813 ("local-time" ,sbcl-local-time)
6814 ("periods" ,sbcl-periods)
6815 ("fprog" ,sbcl-fprog)))
6816 (synopsis "Commoditized amounts and balances for Common Lisp")
6817 (description
6818 "CAMBL is a Common Lisp library providing a convenient facility for
6819 working with commoditized values. It does not allow compound units (and so is
6820 not suited for scientific operations) but does work rather nicely for the
6821 purpose of financial calculations."))))
6822
6823 (define-public cl-cambl
6824 (sbcl-package->cl-source-package sbcl-cambl))
6825
6826 (define-public ecl-cambl
6827 (sbcl-package->ecl-package sbcl-cambl))
6828
6829 (define-public sbcl-cl-ledger
6830 (let ((commit "08e0be41795e804cd36142e51756ad0b1caa377b")
6831 (revision "1"))
6832 (package
6833 (name "sbcl-cl-ledger")
6834 (version (git-version "4.0.0" revision commit))
6835 (source
6836 (origin
6837 (method git-fetch)
6838 (uri (git-reference
6839 (url "https://github.com/ledger/cl-ledger.git")
6840 (commit commit)))
6841 (file-name (git-file-name name version))
6842 (sha256
6843 (base32
6844 "1via0qf6wjcyxnfbmfxjvms0ik9j8rqbifgpmnhrzvkhrq9pv8h1"))))
6845 (build-system asdf-build-system/sbcl)
6846 (inputs
6847 `(("cambl" ,sbcl-cambl)
6848 ("cl-ppcre" ,sbcl-cl-ppcre)
6849 ("local-time" ,sbcl-local-time)
6850 ("periods-series" ,sbcl-periods-series)))
6851 (arguments
6852 '(#:phases
6853 (modify-phases %standard-phases
6854 (add-after 'unpack 'fix-system-definition
6855 (lambda _
6856 (substitute* "cl-ledger.asd"
6857 ((" :build-operation program-op") "")
6858 ((" :build-pathname \"cl-ledger\"") "")
6859 ((" :entry-point \"ledger::main\"") ""))
6860 #t)))))
6861 (synopsis "Common Lisp port of the Ledger accounting system")
6862 (description
6863 "CL-Ledger is a Common Lisp port of the Ledger double-entry accounting
6864 system.")
6865 (home-page "https://github.com/ledger/cl-ledger")
6866 (license license:bsd-3))))
6867
6868 (define-public cl-ledger
6869 (sbcl-package->cl-source-package sbcl-cl-ledger))
6870
6871 (define-public ecl-cl-ledger
6872 (sbcl-package->ecl-package sbcl-cl-ledger))
6873
6874 (define-public sbcl-bst
6875 (let ((commit "34f9c7e8e0a9f2c952fe310ab36cb630d5d9c15a")
6876 (revision "1"))
6877 (package
6878 (name "sbcl-bst")
6879 (version (git-version "1.1" revision commit))
6880 (source
6881 (origin
6882 (method git-fetch)
6883 (uri (git-reference
6884 (url "https://github.com/glv2/bst.git")
6885 (commit commit)))
6886 (file-name (git-file-name name version))
6887 (sha256
6888 (base32
6889 "1amxns7hvvh4arwbh8ciwfzplg127vh37dnbamv1m1kmmnmihfc8"))))
6890 (build-system asdf-build-system/sbcl)
6891 (native-inputs
6892 `(("alexandria" ,sbcl-alexandria)
6893 ("fiveam" ,sbcl-fiveam)))
6894 (synopsis "Binary search tree for Common Lisp")
6895 (description
6896 "BST is a Common Lisp library for working with binary search trees that
6897 can contain any kind of values.")
6898 (home-page "https://github.com/glv2/bst")
6899 (license license:gpl3))))
6900
6901 (define-public cl-bst
6902 (sbcl-package->cl-source-package sbcl-bst))
6903
6904 (define-public ecl-bst
6905 (sbcl-package->ecl-package sbcl-bst))
6906
6907 (define-public sbcl-cl-octet-streams
6908 (package
6909 (name "sbcl-cl-octet-streams")
6910 (version "1.0")
6911 (source
6912 (origin
6913 (method git-fetch)
6914 (uri (git-reference
6915 (url "https://github.com/glv2/cl-octet-streams.git")
6916 (commit (string-append "v" version))))
6917 (file-name (git-file-name name version))
6918 (sha256
6919 (base32
6920 "1d7mn6ydv0j2x4r7clpc9ijjwrnfpxmvhifv8n5j7jh7s744sf8d"))))
6921 (build-system asdf-build-system/sbcl)
6922 (native-inputs
6923 `(("fiveam" ,sbcl-fiveam)))
6924 (inputs
6925 `(("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
6926 (synopsis "In-memory octet streams for Common Lisp")
6927 (description
6928 "CL-octet-streams is a library implementing in-memory octet
6929 streams for Common Lisp. It was inspired by the trivial-octet-streams and
6930 cl-plumbing libraries.")
6931 (home-page "https://github.com/glv2/cl-octet-streams")
6932 (license license:gpl3+)))
6933
6934 (define-public cl-octet-streams
6935 (sbcl-package->cl-source-package sbcl-cl-octet-streams))
6936
6937 (define-public ecl-cl-octet-streams
6938 (sbcl-package->ecl-package sbcl-cl-octet-streams))
6939
6940 (define-public sbcl-lzlib
6941 (let ((commit "0de1db7129fef9a58a059d35a2fa2ecfc5b47b47")
6942 (revision "1"))
6943 (package
6944 (name "sbcl-lzlib")
6945 (version (git-version "1.0" revision commit))
6946 (source
6947 (origin
6948 (method git-fetch)
6949 (uri (git-reference
6950 (url "https://github.com/glv2/cl-lzlib.git")
6951 (commit commit)))
6952 (file-name (git-file-name name version))
6953 (sha256
6954 (base32
6955 "12ny7vj52fgnd8hb8fc8mry92vq4c1x72x2350191m4476j95clz"))))
6956 (build-system asdf-build-system/sbcl)
6957 (native-inputs
6958 `(("fiveam" ,sbcl-fiveam)))
6959 (inputs
6960 `(("cffi" ,sbcl-cffi)
6961 ("cl-octet-streams" ,sbcl-cl-octet-streams)
6962 ("lzlib" ,lzlib)))
6963 (arguments
6964 '(#:phases
6965 (modify-phases %standard-phases
6966 (add-after 'unpack 'fix-paths
6967 (lambda* (#:key inputs #:allow-other-keys)
6968 (substitute* "src/lzlib.lisp"
6969 (("liblz\\.so")
6970 (string-append (assoc-ref inputs "lzlib") "/lib/liblz.so")))
6971 #t)))))
6972 (synopsis "Common Lisp library for lzip (de)compression")
6973 (description
6974 "This Common Lisp library provides functions for lzip (LZMA)
6975 compression/decompression using bindings to the lzlib C library.")
6976 (home-page "https://github.com/glv2/cl-lzlib")
6977 (license license:gpl3+))))
6978
6979 (define-public cl-lzlib
6980 (sbcl-package->cl-source-package sbcl-lzlib))
6981
6982 (define-public ecl-lzlib
6983 (sbcl-package->ecl-package sbcl-lzlib))
6984
6985 (define-public sbcl-chanl
6986 (let ((commit "56e90a126c78b39bb621a01585e8d3b985238e8c")
6987 (revision "1"))
6988 (package
6989 (name "sbcl-chanl")
6990 (version (git-version "0.4.1" revision commit))
6991 (source
6992 (origin
6993 (method git-fetch)
6994 (uri (git-reference
6995 (url "https://github.com/zkat/chanl.git")
6996 (commit commit)))
6997 (file-name (git-file-name name version))
6998 (sha256
6999 (base32
7000 "0b1cf6c12qx5cy1fw2z42jgh566rp3l8nv5qf0qqc569s7bgmrh4"))))
7001 (build-system asdf-build-system/sbcl)
7002 (native-inputs
7003 `(("fiveam" ,sbcl-fiveam)))
7004 (inputs
7005 `(("bordeaux-threads" ,sbcl-bordeaux-threads)))
7006 (synopsis "Portable channel-based concurrency for Common Lisp")
7007 (description "Common Lisp library for channel-based concurrency. In
7008 a nutshell, you create various threads sequentially executing tasks you need
7009 done, and use channel objects to communicate and synchronize the state of these
7010 threads.")
7011 (home-page "https://github.com/zkat/chanl")
7012 (license (list license:expat license:bsd-3)))))
7013
7014 (define-public cl-chanl
7015 (sbcl-package->cl-source-package sbcl-chanl))
7016
7017 (define-public ecl-chanl
7018 (sbcl-package->ecl-package sbcl-chanl))
7019
7020 (define-public sbcl-cl-store
7021 (let ((commit "c787337a16ea8cf8a06227f35933a4ec774746b3")
7022 (revision "1"))
7023 (package
7024 (name "sbcl-cl-store")
7025 (version (git-version "0.8.11" revision commit))
7026 (source
7027 (origin
7028 (method git-fetch)
7029 (uri (git-reference
7030 (url "https://github.com/skypher/cl-store.git")
7031 (commit commit)))
7032 (file-name (git-file-name name version))
7033 (sha256
7034 (base32
7035 "194srkg8nrym19c6i7zbnkzshc1qhqa82m53qnkirz9fw928bqxr"))))
7036 (build-system asdf-build-system/sbcl)
7037 (native-inputs
7038 `(("rt" ,sbcl-rt)))
7039 (synopsis "Common Lisp library to serialize data")
7040 (description
7041 "CL-STORE is a portable serialization package which should give you the
7042 ability to store all Common Lisp data types into streams.")
7043 (home-page "https://www.common-lisp.net/project/cl-store/")
7044 (license license:expat))))
7045
7046 (define-public cl-store
7047 (sbcl-package->cl-source-package sbcl-cl-store))
7048
7049 (define-public ecl-cl-store
7050 (sbcl-package->ecl-package sbcl-cl-store))
7051
7052 (define-public sbcl-cl-gobject-introspection
7053 (let ((commit "7b703e2384945ea0ac39d9b766de434a08d81560")
7054 (revision "0"))
7055 (package
7056 (name "sbcl-cl-gobject-introspection")
7057 (version (git-version "0.3" revision commit))
7058 (home-page "https://github.com/andy128k/cl-gobject-introspection")
7059 (source
7060 (origin
7061 (method git-fetch)
7062 (uri (git-reference
7063 (url home-page)
7064 (commit commit)))
7065 (file-name (git-file-name name version))
7066 (sha256
7067 (base32
7068 "1zcqd2qj14f6b38vys8gr89s6cijsp9r8j43xa8lynilwva7bwyh"))))
7069 (build-system asdf-build-system/sbcl)
7070 (inputs
7071 `(("alexandria" ,sbcl-alexandria)
7072 ("cffi" ,sbcl-cffi)
7073 ("iterate" ,sbcl-iterate)
7074 ("trivial-garbage" ,sbcl-trivial-garbage)
7075 ("glib" ,glib)
7076 ("gobject-introspection" ,gobject-introspection)))
7077 (native-inputs
7078 `(("fiveam" ,sbcl-fiveam)))
7079 (arguments
7080 ;; TODO: Tests fail, see
7081 ;; https://github.com/andy128k/cl-gobject-introspection/issues/70.
7082 '(#:tests? #f
7083 #:phases
7084 (modify-phases %standard-phases
7085 (add-after (quote unpack) (quote fix-paths)
7086 (lambda* (#:key inputs #:allow-other-keys)
7087 (substitute* "src/init.lisp"
7088 (("libgobject-2\\.0\\.so")
7089 (string-append (assoc-ref inputs "glib") "/lib/libgobject-2.0.so"))
7090 (("libgirepository-1\\.0\\.so")
7091 (string-append (assoc-ref inputs "gobject-introspection")
7092 "/lib/libgirepository-1.0.so")))
7093 #t)))))
7094 (synopsis "Common Lisp bindings to GObject Introspection")
7095 (description
7096 "This library is a bridge between Common Lisp and GObject
7097 Introspection, which enables Common Lisp programs to access the full interface
7098 of C+GObject libraries without the need of writing dedicated bindings.")
7099 (license (list license:bsd-3
7100 ;; Tests are under a different license.
7101 license:llgpl)))))
7102
7103 (define-public cl-gobject-introspection
7104 (sbcl-package->cl-source-package sbcl-cl-gobject-introspection))
7105
7106 (define-public sbcl-string-case
7107 (let ((commit "718c761e33749e297cd2809c7ba3ade1985c49f7")
7108 (revision "0"))
7109 (package
7110 (name "sbcl-string-case")
7111 (version (git-version "0.0.2" revision commit))
7112 (home-page "https://github.com/pkhuong/string-case")
7113 (source
7114 (origin
7115 (method git-fetch)
7116 (uri (git-reference
7117 (url home-page)
7118 (commit commit)))
7119 (file-name (git-file-name name version))
7120 (sha256
7121 (base32
7122 "1n5i3yh0h5s636rcnwn7jwqy3rjflikra04lymimhpcshhjsk0md"))))
7123 (build-system asdf-build-system/sbcl)
7124 (synopsis "Efficient string= case in Common Lisp")
7125 (description
7126 "@code{string-case} is a Common Lisp macro that generates specialised decision
7127 trees to dispatch on string equality.")
7128 (license license:bsd-3))))
7129
7130 (define-public cl-string-case
7131 (sbcl-package->cl-source-package sbcl-string-case))
7132
7133 (define-public ecl-string-case
7134 (sbcl-package->ecl-package sbcl-string-case))
7135
7136 (define-public sbcl-global-vars
7137 (let ((commit "c749f32c9b606a1457daa47d59630708ac0c266e")
7138 (revision "0"))
7139 (package
7140 (name "sbcl-global-vars")
7141 (version (git-version "1.0.0" revision commit))
7142 (home-page "https://github.com/lmj/global-vars")
7143 (source
7144 (origin
7145 (method git-fetch)
7146 (uri (git-reference
7147 (url home-page)
7148 (commit commit)))
7149 (file-name (git-file-name name version))
7150 (sha256
7151 (base32
7152 "06m3xc8l3pgsapl8fvsi9wf6y46zs75cp9zn7zh6dc65v4s5wz3d"))))
7153 (build-system asdf-build-system/sbcl)
7154 (synopsis "Efficient global variables in Common Lisp")
7155 (description
7156 "In Common Lisp, a special variable that is never dynamically bound
7157 typically serves as a stand-in for a global variable. The @code{global-vars}
7158 library provides true global variables that are implemented by some compilers.
7159 An attempt to rebind a global variable properly results in a compiler error.
7160 That is, a global variable cannot be dynamically bound.
7161
7162 Global variables therefore allow us to communicate an intended usage that
7163 differs from special variables. Global variables are also more efficient than
7164 special variables, especially in the presence of threads.")
7165 (license license:expat))))
7166
7167 (define-public cl-global-vars
7168 (sbcl-package->cl-source-package sbcl-global-vars))
7169
7170 (define-public ecl-global-vars
7171 (sbcl-package->ecl-package sbcl-global-vars))
7172
7173 (define-public sbcl-trivial-file-size
7174 (let ((commit "1c1d672a01a446ba0391dbb4ffc40be3b0476f23")
7175 (revision "0"))
7176 (package
7177 (name "sbcl-trivial-file-size")
7178 (version (git-version "0.0.0" revision commit))
7179 (home-page "https://github.com/ruricolist/trivial-file-size")
7180 (source
7181 (origin
7182 (method git-fetch)
7183 (uri (git-reference
7184 (url home-page)
7185 (commit commit)))
7186 (file-name (git-file-name name version))
7187 (sha256
7188 (base32
7189 "17pp86c9zs4y7i1sh7q9gbfw9iqv6655k7fz8qbj9ly1ypgxp4qs"))))
7190 (build-system asdf-build-system/sbcl)
7191 (native-inputs
7192 `(("fiveam" ,sbcl-fiveam)))
7193 (synopsis "Size of a file in bytes in Common Lisp")
7194 (description
7195 "The canonical way to determine the size of a file in bytes, using Common Lisp,
7196 is to open the file with an element type of (unsigned-byte 8) and then
7197 calculate the length of the stream. This is less than ideal. In most cases
7198 it is better to get the size of the file from its metadata, using a system
7199 call.
7200
7201 This library exports a single function, file-size-in-octets. It returns the
7202 size of a file in bytes, using system calls when possible.")
7203 (license license:expat))))
7204
7205 (define-public cl-trivial-file-size
7206 (sbcl-package->cl-source-package sbcl-trivial-file-size))
7207
7208 (define-public ecl-trivial-file-size
7209 (sbcl-package->ecl-package sbcl-trivial-file-size))
7210
7211 (define-public sbcl-trivial-macroexpand-all
7212 (let ((commit "933270ac7107477de1bc92c1fd641fe646a7a8a9")
7213 (revision "0"))
7214 (package
7215 (name "sbcl-trivial-macroexpand-all")
7216 (version (git-version "0.0.0" revision commit))
7217 (home-page "https://github.com/cbaggers/trivial-macroexpand-all")
7218 (source
7219 (origin
7220 (method git-fetch)
7221 (uri (git-reference
7222 (url home-page)
7223 (commit commit)))
7224 (file-name (git-file-name name version))
7225 (sha256
7226 (base32
7227 "191hnn4b5j4i3crydmlzbm231kj0h7l8zj6mzj69r1npbzkas4bd"))))
7228 (build-system asdf-build-system/sbcl)
7229 (native-inputs
7230 `(("fiveam" ,sbcl-fiveam)))
7231 (synopsis "Portable macroexpand-all for Common Lisp")
7232 (description
7233 "This library provides a macroexpand-all function that calls the
7234 implementation specific equivalent.")
7235 (license license:unlicense))))
7236
7237 (define-public cl-trivial-macroexpand-all
7238 (sbcl-package->cl-source-package sbcl-trivial-macroexpand-all))
7239
7240 (define-public ecl-trivial-macroexpand-all
7241 (sbcl-package->ecl-package sbcl-trivial-macroexpand-all))
7242
7243 (define-public sbcl-serapeum
7244 (let ((commit "64f0c4a161bbbda7c275012ca1415b4293b9e169")
7245 (revision "1"))
7246 (package
7247 (name "sbcl-serapeum")
7248 (version (git-version "0.0.0" revision commit))
7249 (home-page "https://github.com/ruricolist/serapeum")
7250 (source
7251 (origin
7252 (method git-fetch)
7253 (uri (git-reference
7254 (url home-page)
7255 (commit commit)))
7256 (file-name (git-file-name name version))
7257 (sha256
7258 (base32
7259 "0djnj0py8hdjnk5j6shjq2kbmyxqd5sw79cilcfmpfz4dzjdgkx9"))))
7260 (build-system asdf-build-system/sbcl)
7261 (inputs
7262 `(("alexandria" ,sbcl-alexandria)
7263 ("trivia" ,sbcl-trivia)
7264 ("trivia.quasiquote" ,sbcl-trivia.quasiquote)
7265 ("split-sequence" ,sbcl-split-sequence)
7266 ("string-case" ,sbcl-string-case)
7267 ("parse-number" ,sbcl-parse-number)
7268 ("trivial-garbage" ,sbcl-trivial-garbage)
7269 ("bordeaux-threads" ,sbcl-bordeaux-threads)
7270 ("named-readtables" ,sbcl-named-readtables)
7271 ("fare-quasiquote-extras" ,sbcl-fare-quasiquote-extras)
7272 ("parse-declarations-1.0" ,sbcl-parse-declarations)
7273 ("global-vars" ,sbcl-global-vars)
7274 ("trivial-file-size" ,sbcl-trivial-file-size)
7275 ("trivial-macroexpand-all" ,sbcl-trivial-macroexpand-all)))
7276 (native-inputs
7277 `(("fiveam" ,sbcl-fiveam)
7278 ("local-time" ,sbcl-local-time)))
7279 (arguments
7280 '(#:phases
7281 (modify-phases %standard-phases
7282 (add-after 'unpack 'disable-failing-tests
7283 (lambda* (#:key inputs #:allow-other-keys)
7284 (substitute* "serapeum.asd"
7285 ;; Guix does not have Quicklisp, and probably never will.
7286 (("\\(:file \"quicklisp\"\\)") ""))
7287 #t)))))
7288 (synopsis "Common Lisp utility library beyond Alexandria")
7289 (description
7290 "Serapeum is a conservative library of Common Lisp utilities. It is a
7291 supplement, not a competitor, to Alexandria.")
7292 (license license:expat))))
7293
7294 (define-public cl-serapeum
7295 (sbcl-package->cl-source-package sbcl-serapeum))
7296
7297 (define-public sbcl-arrows
7298 (let ((commit "df7cf0067e0132d9697ac8b1a4f1b9c88d4f5382")
7299 (revision "0"))
7300 (package
7301 (name "sbcl-arrows")
7302 (version (git-version "0.2.0" revision commit))
7303 (source
7304 (origin
7305 (method git-fetch)
7306 (uri (git-reference
7307 (url "https://gitlab.com/Harleqin/arrows.git")
7308 (commit commit)))
7309 (file-name (git-file-name name version))
7310 (sha256
7311 (base32
7312 "042k9vkssrqx9nhp14wdzm942zgdxvp35mba0p2syz98i75im2yy"))))
7313 (build-system asdf-build-system/sbcl)
7314 (native-inputs
7315 `(("hu.dwim.stefil" ,sbcl-hu.dwim.stefil)))
7316 (synopsis "Clojure-like arrow macros for Common Lisp")
7317 (description
7318 "This library implements the @code{->} and @code{->>} macros from
7319 Clojure, as well as several expansions on the idea.")
7320 (home-page "https://gitlab.com/Harleqin/arrows")
7321 (license license:public-domain))))
7322
7323 (define-public cl-arrows
7324 (sbcl-package->cl-source-package sbcl-arrows))
7325
7326 (define-public ecl-arrows
7327 (sbcl-package->ecl-package sbcl-arrows))
7328
7329 (define-public sbcl-simple-parallel-tasks
7330 (let ((commit "db460f7a3f7bbfe2d3a2223ed21e162068d04dda")
7331 (revision "0"))
7332 (package
7333 (name "sbcl-simple-parallel-tasks")
7334 (version (git-version "1.0" revision commit))
7335 (source
7336 (origin
7337 (method git-fetch)
7338 (uri (git-reference
7339 (url "https://github.com/glv2/simple-parallel-tasks.git")
7340 (commit commit)))
7341 (file-name (git-file-name name version))
7342 (sha256
7343 (base32
7344 "0amw3qk23wnlyrsgzszs6rs7y4zvxv8dr03rnqhc60mnm8ds4dd5"))))
7345 (build-system asdf-build-system/sbcl)
7346 (native-inputs
7347 `(("fiveam" ,sbcl-fiveam)))
7348 (inputs
7349 `(("chanl" ,sbcl-chanl)))
7350 (synopsis "Common Lisp library to evaluate some forms in parallel")
7351 (description "This is a simple Common Lisp library to evaluate some
7352 forms in parallel.")
7353 (home-page "https://github.com/glv2/simple-parallel-tasks")
7354 (license license:gpl3))))
7355
7356 (define-public cl-simple-parallel-tasks
7357 (sbcl-package->cl-source-package sbcl-simple-parallel-tasks))
7358
7359 (define-public ecl-simple-parallel-tasks
7360 (sbcl-package->ecl-package sbcl-simple-parallel-tasks))
7361
7362 (define-public sbcl-cl-heap
7363 (package
7364 (name "sbcl-cl-heap")
7365 (version "0.1.6")
7366 (source
7367 (origin
7368 (method url-fetch)
7369 (uri (string-append "https://common-lisp.net/project/cl-heap/releases/"
7370 "cl-heap_" version ".tar.gz"))
7371 (sha256
7372 (base32
7373 "163hb07p2nxz126rpq3cj5dyala24n0by5i5786n2qcr1w0bak4i"))))
7374 (build-system asdf-build-system/sbcl)
7375 (native-inputs
7376 `(("xlunit" ,sbcl-xlunit)))
7377 (arguments
7378 `(#:test-asd-file "cl-heap-tests.asd"))
7379 (synopsis "Heap and priority queue data structures for Common Lisp")
7380 (description
7381 "CL-HEAP provides various implementations of heap data structures (a
7382 binary heap and a Fibonacci heap) as well as an efficient priority queue.")
7383 (home-page "https://common-lisp.net/project/cl-heap/")
7384 (license license:gpl3+)))
7385
7386 (define-public cl-heap
7387 (sbcl-package->cl-source-package sbcl-cl-heap))
7388
7389 (define-public ecl-cl-heap
7390 (sbcl-package->ecl-package sbcl-cl-heap))
7391
7392 (define-public sbcl-curry-compose-reader-macros
7393 (let ((commit "beaa92dedf392726c042184bfd6149fa8d9e6ac2")
7394 (revision "0"))
7395 (package
7396 (name "sbcl-curry-compose-reader-macros")
7397 (version (git-version "1.0.0" revision commit))
7398 (source
7399 (origin
7400 (method git-fetch)
7401 (uri
7402 (git-reference
7403 (url "https://github.com/eschulte/curry-compose-reader-macros.git")
7404 (commit commit)))
7405 (file-name (git-file-name name version))
7406 (sha256
7407 (base32
7408 "0rv9bl8xrad5wfcg5zs1dazvnpmvqz6297lbn8bywsrcfnlf7h98"))))
7409 (build-system asdf-build-system/sbcl)
7410 (inputs
7411 `(("alexandria" ,sbcl-alexandria)
7412 ("named-readtables" ,sbcl-named-readtables)))
7413 (synopsis "Reader macros for partial application and composition")
7414 (description
7415 "This Common Lisp library provides reader macros for concise expression
7416 of function partial application and composition.")
7417 (home-page "https://eschulte.github.io/curry-compose-reader-macros/")
7418 (license license:public-domain))))
7419
7420 (define-public cl-curry-compose-reader-macros
7421 (sbcl-package->cl-source-package sbcl-curry-compose-reader-macros))
7422
7423 (define-public ecl-curry-compose-reader-macros
7424 (sbcl-package->ecl-package sbcl-curry-compose-reader-macros))
7425
7426 (define-public sbcl-yason
7427 (package
7428 (name "sbcl-yason")
7429 (version "0.7.7")
7430 (source
7431 (origin
7432 (method git-fetch)
7433 (uri (git-reference
7434 (url "https://github.com/phmarek/yason.git")
7435 (commit (string-append "v" version))))
7436 (file-name (git-file-name name version))
7437 (sha256
7438 (base32
7439 "0479rbjgbj80jpk5bby18inlv1kfp771a82rlcq5psrz65qqa9bj"))))
7440 (build-system asdf-build-system/sbcl)
7441 (inputs
7442 `(("alexandria" ,sbcl-alexandria)
7443 ("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
7444 (synopsis "Common Lisp JSON parser/encoder")
7445 (description
7446 "YASON is a Common Lisp library for encoding and decoding data in the
7447 JSON interchange format.")
7448 (home-page "https://github.com/phmarek/yason")
7449 (license license:bsd-3)))
7450
7451 (define-public cl-yason
7452 (sbcl-package->cl-source-package sbcl-yason))
7453
7454 (define-public ecl-yason
7455 (sbcl-package->ecl-package sbcl-yason))
7456
7457 (define-public sbcl-stefil
7458 (let ((commit "0398548ec95dceb50fc2c2c03e5fb0ce49b86c7a")
7459 (revision "0"))
7460 (package
7461 (name "sbcl-stefil")
7462 (version (git-version "0.1" revision commit))
7463 (source
7464 (origin
7465 (method git-fetch)
7466 (uri (git-reference
7467 (url "https://gitlab.common-lisp.net/stefil/stefil.git")
7468 (commit commit)))
7469 (file-name (git-file-name name version))
7470 (sha256
7471 (base32
7472 "0bqz64q2szzhf91zyqyssmvrz7da6442rs01808pf3wrdq28bclh"))))
7473 (build-system asdf-build-system/sbcl)
7474 (inputs
7475 `(("alexandria" ,sbcl-alexandria)
7476 ("iterate" ,sbcl-iterate)
7477 ("metabang-bind" ,sbcl-metabang-bind)))
7478 (propagated-inputs
7479 ;; Swank doesn't have a pre-compiled package, therefore we must
7480 ;; propagate its sources.
7481 `(("swank" ,cl-slime-swank)))
7482 (arguments
7483 '(#:phases
7484 (modify-phases %standard-phases
7485 (add-after 'unpack 'drop-unnecessary-dependency
7486 (lambda _
7487 (substitute* "package.lisp"
7488 ((":stefil-system") ""))
7489 #t)))))
7490 (home-page "https://common-lisp.net/project/stefil/index-old.shtml")
7491 (synopsis "Simple test framework")
7492 (description
7493 "Stefil is a simple test framework for Common Lisp, with a focus on
7494 interactive development.")
7495 (license license:public-domain))))
7496
7497 (define-public cl-stefil
7498 (sbcl-package->cl-source-package sbcl-stefil))
7499
7500 (define-public sbcl-graph
7501 (let ((commit "78bf9ec930d8eae4f0861b5be76765fb1e45e24f")
7502 (revision "0"))
7503 (package
7504 (name "sbcl-graph")
7505 (version (git-version "0.0.0" revision commit))
7506 (source
7507 (origin
7508 (method git-fetch)
7509 (uri
7510 (git-reference
7511 (url "https://github.com/eschulte/graph.git")
7512 (commit commit)))
7513 (file-name (git-file-name name version))
7514 (sha256
7515 (base32
7516 "1qpij4xh8bqwc2myahpilcbh916v7vg0acz2fij14d3y0jm02h0g"))
7517 (patches (search-patches "sbcl-graph-asdf-definitions.patch"))))
7518 (build-system asdf-build-system/sbcl)
7519 (native-inputs
7520 `(("stefil" ,sbcl-stefil)))
7521 (inputs
7522 `(("alexandria" ,sbcl-alexandria)
7523 ("cl-heap" ,sbcl-cl-heap)
7524 ("curry-compose-reader-macros" ,sbcl-curry-compose-reader-macros)
7525 ("metabang-bind" ,sbcl-metabang-bind)
7526 ("named-readtables" ,sbcl-named-readtables)))
7527 (arguments
7528 '(#:test-asd-file "graph-test.asd"))
7529 (synopsis "Graph data structure and algorithms for Common Lisp")
7530 (description
7531 "The GRAPH Common Lisp library provides a data structures to represent
7532 graphs, as well as some graph manipulation and analysis algorithms (shortest
7533 path, maximum flow, minimum spanning tree, etc.).")
7534 (home-page "https://eschulte.github.io/graph/")
7535 (license license:gpl3+))))
7536
7537 (define-public cl-graph
7538 (sbcl-package->cl-source-package sbcl-graph))
7539
7540 (define-public sbcl-graph-dot
7541 (package
7542 (inherit sbcl-graph)
7543 (name "sbcl-graph-dot")
7544 (inputs
7545 `(("alexandria" ,sbcl-alexandria)
7546 ("cl-ppcre" ,sbcl-cl-ppcre)
7547 ("curry-compose-reader-macros" ,sbcl-curry-compose-reader-macros)
7548 ("graph" ,sbcl-graph)
7549 ("metabang-bind" ,sbcl-metabang-bind)
7550 ("named-readtables" ,sbcl-named-readtables)))
7551 (arguments
7552 (substitute-keyword-arguments (package-arguments sbcl-graph)
7553 ((#:asd-file _ "") "graph-dot.asd")
7554 ((#:asd-system-name _ #f) "graph-dot")))
7555 (synopsis "Serialize graphs to and from DOT format")))
7556
7557 (define-public sbcl-graph-json
7558 (package
7559 (inherit sbcl-graph)
7560 (name "sbcl-graph-json")
7561 (inputs
7562 `(("alexandria" ,sbcl-alexandria)
7563 ("curry-compose-reader-macros" ,sbcl-curry-compose-reader-macros)
7564 ("graph" ,sbcl-graph)
7565 ("metabang-bind" ,sbcl-metabang-bind)
7566 ("named-readtables" ,sbcl-named-readtables)
7567 ("yason" ,sbcl-yason)))
7568 (arguments
7569 (substitute-keyword-arguments (package-arguments sbcl-graph)
7570 ((#:asd-file _ "") "graph-json.asd")
7571 ((#:asd-system-name _ #f) "graph-json")))
7572 (synopsis "Serialize graphs to and from JSON format")))
7573
7574 (define-public sbcl-trivial-indent
7575 (let ((commit "2d016941751647c6cc5bd471751c2cf68861c94a")
7576 (revision "0"))
7577 (package
7578 (name "sbcl-trivial-indent")
7579 (version (git-version "1.0.0" revision commit))
7580 (source
7581 (origin
7582 (method git-fetch)
7583 (uri
7584 (git-reference
7585 (url "https://github.com/Shinmera/trivial-indent")
7586 (commit commit)))
7587 (file-name (git-file-name name version))
7588 (sha256
7589 (base32
7590 "1sj90nqz17w4jq0ixz00gb9g5g6d2s7l8r17zdby27gxxh51w266"))))
7591 (build-system asdf-build-system/sbcl)
7592 (synopsis "Simple Common Lisp library to allow indentation hints for SWANK")
7593 (description
7594 "This library allows you to define custom indentation hints for your
7595 macros if the one recognised by SLIME automatically produces unwanted
7596 results.")
7597 (home-page "https://shinmera.github.io/trivial-indent/")
7598 (license license:zlib))))
7599
7600 (define-public cl-trivial-indent
7601 (sbcl-package->cl-source-package sbcl-trivial-indent))
7602
7603 (define-public sbcl-documentation-utils
7604 (let ((commit "98630dd5f7e36ae057fa09da3523f42ccb5d1f55")
7605 (revision "0"))
7606 (package
7607 (name "sbcl-documentation-utils")
7608 (version (git-version "1.2.0" revision commit))
7609 (source
7610 (origin
7611 (method git-fetch)
7612 (uri
7613 (git-reference
7614 (url "https://github.com/Shinmera/documentation-utils.git")
7615 (commit commit)))
7616 (file-name (git-file-name name version))
7617 (sha256
7618 (base32
7619 "098qhkqskmmrh4wix34mawf7p5c87yql28r51r75yjxj577k5idq"))))
7620 (build-system asdf-build-system/sbcl)
7621 (inputs
7622 `(("trivial-indent" ,sbcl-trivial-indent)))
7623 (synopsis "Few simple tools to document Common Lisp libraries")
7624 (description
7625 "This is a small library to help you with managing the Common Lisp
7626 docstrings for your library.")
7627 (home-page "https://shinmera.github.io/documentation-utils/")
7628 (license license:zlib))))
7629
7630 (define-public cl-documentation-utils
7631 (sbcl-package->cl-source-package sbcl-documentation-utils))
7632
7633 (define-public ecl-documentation-utils
7634 (sbcl-package->ecl-package sbcl-documentation-utils))
7635
7636 (define-public sbcl-form-fiddle
7637 (let ((commit "e0c23599dbb8cff3e83e012f3d86d0764188ad18")
7638 (revision "0"))
7639 (package
7640 (name "sbcl-form-fiddle")
7641 (version (git-version "1.1.0" revision commit))
7642 (source
7643 (origin
7644 (method git-fetch)
7645 (uri
7646 (git-reference
7647 (url "https://github.com/Shinmera/form-fiddle")
7648 (commit commit)))
7649 (file-name (git-file-name name version))
7650 (sha256
7651 (base32
7652 "041iznc9mpfyrl0sv5893ys9pbb2pvbn9g3clarqi7gsfj483jln"))))
7653 (build-system asdf-build-system/sbcl)
7654 (inputs
7655 `(("documentation-utils" ,sbcl-documentation-utils)))
7656 (synopsis "Utilities to destructure Common Lisp lambda forms")
7657 (description
7658 "Often times we need to destructure a form definition in a Common Lisp
7659 macro. This library provides a set of simple utilities to help with that.")
7660 (home-page "https://shinmera.github.io/form-fiddle/")
7661 (license license:zlib))))
7662
7663 (define-public cl-form-fiddle
7664 (sbcl-package->cl-source-package sbcl-form-fiddle))
7665
7666 (define-public sbcl-parachute
7667 (let ((commit "ca04dd8e43010a6dfffa26dbe1d62af86008d666")
7668 (revision "0"))
7669 (package
7670 (name "sbcl-parachute")
7671 (version (git-version "1.1.1" revision commit))
7672 (source
7673 (origin
7674 (method git-fetch)
7675 (uri
7676 (git-reference
7677 (url "https://github.com/Shinmera/parachute")
7678 (commit commit)))
7679 (file-name (git-file-name name version))
7680 (sha256
7681 (base32
7682 "1mvsm3r0r6a2bg75nw0q7n9vlby3ch45qjl7hnb5k1z2n5x5lh60"))))
7683 (build-system asdf-build-system/sbcl)
7684 (inputs
7685 `(("documentation-utils" ,sbcl-documentation-utils)
7686 ("form-fiddle" ,sbcl-form-fiddle)))
7687 (synopsis "Extensible and cross-compatible testing framework for Common Lisp")
7688 (description
7689 "Parachute is a simple-to-use and extensible testing framework.
7690 In Parachute, things are organised as a bunch of named tests within a package.
7691 Each test can contain a bunch of test forms that make up its body.")
7692 (home-page "https://shinmera.github.io/parachute/")
7693 (license license:zlib))))
7694
7695 (define-public cl-parachute
7696 (sbcl-package->cl-source-package sbcl-parachute))
7697
7698 (define-public sbcl-array-utils
7699 (let ((commit "f90eb9070d0b2205af51126a35033574725e5c56")
7700 (revision "0"))
7701 (package
7702 (name "sbcl-array-utils")
7703 (version (git-version "1.1.1" revision commit))
7704 (source
7705 (origin
7706 (method git-fetch)
7707 (uri
7708 (git-reference
7709 (url "https://github.com/Shinmera/array-utils")
7710 (commit commit)))
7711 (file-name (git-file-name name version))
7712 (sha256
7713 (base32
7714 "0zhwfbpr53vs1ii4sx75dz2k9yhh1xpwdqqpg8nmfndxkmhpbi3x"))))
7715 (build-system asdf-build-system/sbcl)
7716 (native-inputs
7717 `(("parachute" ,sbcl-parachute)))
7718 (inputs
7719 `(("documentation-utils" ,sbcl-documentation-utils)))
7720 (synopsis "Tiny collection of array and vector utilities for Common Lisp")
7721 (description
7722 "A miniature toolkit that contains some useful shifting/popping/pushing
7723 functions for arrays and vectors. Originally from Plump.")
7724 (home-page "https://shinmera.github.io/array-utils/")
7725 (license license:zlib))))
7726
7727 (define-public cl-array-utils
7728 (sbcl-package->cl-source-package sbcl-array-utils))
7729
7730 (define-public sbcl-plump
7731 (let ((commit "16f1231bf706cfbc54d9e55a853ca945e4452a08")
7732 (revision "0"))
7733 (package
7734 (name "sbcl-plump")
7735 (version (git-version "2.0.0" revision commit))
7736 (source
7737 (origin
7738 (method git-fetch)
7739 (uri
7740 (git-reference
7741 (url "https://github.com/Shinmera/plump")
7742 (commit commit)))
7743 (file-name (git-file-name name version))
7744 (sha256
7745 (base32
7746 "0705k8pbip51v74rccgwscwph439f2pma9f915qf1h4bhjx999ip"))))
7747 (build-system asdf-build-system/sbcl)
7748 (inputs
7749 `(("array-utils" ,sbcl-array-utils)
7750 ("documentation-utils" ,sbcl-documentation-utils)))
7751 (synopsis "Lenient XML / XHTML / HTML parser for Common Lisp")
7752 (description
7753 "Plump is a parser for HTML/XML-like documents, focusing on being
7754 lenient towards invalid markup. It can handle things like invalid attributes,
7755 bad closing tag order, unencoded entities, inexistent tag types, self-closing
7756 tags and so on. It parses documents to a class representation and offers a
7757 small set of DOM functions to manipulate it. It can be extended to parse to
7758 your own classes.")
7759 (home-page "https://shinmera.github.io/plump/")
7760 (license license:zlib))))
7761
7762 (define-public cl-plump
7763 (sbcl-package->cl-source-package sbcl-plump))
7764
7765 (define-public sbcl-antik-base
7766 (let ((commit "e4711a69b3d6bf37b5727af05c3cfd03e8428ba3")
7767 (revision "1"))
7768 (package
7769 (name "sbcl-antik-base")
7770 (version (git-version "0.0.0" revision commit))
7771 (source
7772 (origin
7773 (method git-fetch)
7774 (uri (git-reference
7775 (url "https://gitlab.common-lisp.net/antik/antik.git")
7776 (commit commit)))
7777 (file-name (git-file-name name version))
7778 (sha256
7779 (base32
7780 "047ga2c38par2xbgg4qx6hwv06qhf1c1f67as8xvir6s80lip1km"))))
7781 (build-system asdf-build-system/sbcl)
7782 (inputs
7783 `(("alexandria" ,sbcl-alexandria)
7784 ("cl-ppcre" ,sbcl-cl-ppcre)
7785 ("iterate" ,sbcl-iterate)
7786 ("metabang-bind" ,sbcl-metabang-bind)
7787 ("named-readtables" ,sbcl-named-readtables)
7788 ("split-sequence" ,sbcl-split-sequence)))
7789 (native-inputs
7790 `(("lisp-unit" ,sbcl-lisp-unit)))
7791 (synopsis "Scientific and engineering computation in Common Lisp")
7792 (description
7793 "Antik provides a foundation for scientific and engineering
7794 computation in Common Lisp. It is designed not only to facilitate
7795 numerical computations, but to permit the use of numerical computation
7796 libraries and the interchange of data and procedures, whether
7797 foreign (non-Lisp) or Lisp libraries. It is named after the
7798 Antikythera mechanism, one of the oldest examples of a scientific
7799 computer known.")
7800 (home-page "https://common-lisp.net/project/antik/")
7801 (license license:gpl3))))
7802
7803 (define-public cl-antik-base
7804 (sbcl-package->cl-source-package sbcl-antik-base))
7805
7806 (define-public ecl-antik-base
7807 (sbcl-package->ecl-package sbcl-antik-base))
7808
7809 (define-public sbcl-foreign-array
7810 (package
7811 (inherit sbcl-antik-base)
7812 (name "sbcl-foreign-array")
7813 (arguments
7814 (substitute-keyword-arguments (package-arguments sbcl-antik-base)
7815 ((#:asd-file _ "") "foreign-array.asd")
7816 ((#:asd-system-name _ #f) "foreign-array")))
7817 (inputs
7818 `(("antik-base" ,sbcl-antik-base)
7819 ("cffi" ,sbcl-cffi)
7820 ("trivial-garbage" ,sbcl-trivial-garbage)
7821 ("static-vectors" ,sbcl-static-vectors)))
7822 (synopsis "Common Lisp library providing access to foreign arrays")))
7823
7824 (define-public cl-foreign-array
7825 (sbcl-package->cl-source-package sbcl-foreign-array))
7826
7827 (define-public ecl-foreign-array
7828 (sbcl-package->ecl-package sbcl-foreign-array))
7829
7830 (define-public sbcl-physical-dimension
7831 (package
7832 (inherit sbcl-antik-base)
7833 (name "sbcl-physical-dimension")
7834 (inputs
7835 `(("fare-utils" ,sbcl-fare-utils)
7836 ("foreign-array" ,sbcl-foreign-array)
7837 ("trivial-utf-8" ,sbcl-trivial-utf-8)))
7838 (arguments
7839 (substitute-keyword-arguments (package-arguments sbcl-antik-base)
7840 ((#:asd-file _ "") "physical-dimension.asd")
7841 ((#:asd-system-name _ #f) "physical-dimension")))
7842 (synopsis
7843 "Common Lisp library providing computations with physical units")))
7844
7845 (define-public cl-physical-dimension
7846 (sbcl-package->cl-source-package sbcl-physical-dimension))
7847
7848 (define-public sbcl-science-data
7849 (package
7850 (inherit sbcl-antik-base)
7851 (name "sbcl-science-data")
7852 (inputs
7853 `(("physical-dimension" ,sbcl-physical-dimension)
7854 ("drakma" ,sbcl-drakma)))
7855 (arguments
7856 (substitute-keyword-arguments (package-arguments sbcl-antik-base)
7857 ((#:asd-file _ "") "science-data.asd")
7858 ((#:asd-system-name _ #f) "science-data")))
7859 (synopsis
7860 "Common Lisp library for scientific and engineering numerical data")))
7861
7862 (define-public cl-science-data
7863 (sbcl-package->cl-source-package sbcl-science-data))
7864
7865 (define-public sbcl-gsll
7866 (let ((commit "1a8ada22f9cf5ed7372d352b2317f4ccdb6ab308")
7867 (revision "1"))
7868 (package
7869 (name "sbcl-gsll")
7870 (version (git-version "0.0.0" revision commit))
7871 (source
7872 (origin
7873 (method git-fetch)
7874 (uri (git-reference
7875 (url "https://gitlab.common-lisp.net/antik/gsll.git")
7876 (commit commit)))
7877 (file-name (git-file-name name version))
7878 (sha256
7879 (base32
7880 "0z5nypfk26hxihb08p085644afawicrgb4xvadh3lmrn46qbjfn4"))))
7881 (build-system asdf-build-system/sbcl)
7882 (native-inputs
7883 `(("lisp-unit" ,sbcl-lisp-unit)))
7884 (inputs
7885 `(("alexandria" ,sbcl-alexandria)
7886 ("cffi-grovel" ,sbcl-cffi-grovel)
7887 ("cffi-libffi" ,sbcl-cffi-libffi)
7888 ("foreign-array" ,sbcl-foreign-array)
7889 ("gsl" ,gsl)
7890 ("metabang-bind" ,sbcl-metabang-bind)
7891 ("trivial-features" ,sbcl-trivial-features)
7892 ("trivial-garbage" ,sbcl-trivial-garbage)))
7893 (arguments
7894 `(#:tests? #f
7895 #:phases
7896 (modify-phases %standard-phases
7897 (add-after 'unpack 'fix-cffi-paths
7898 (lambda* (#:key inputs #:allow-other-keys)
7899 (substitute* "gsll.asd"
7900 ((":depends-on \\(#:foreign-array")
7901 ":depends-on (#:foreign-array #:cffi-libffi"))
7902 (substitute* "init/init.lisp"
7903 (("libgslcblas.so" all)
7904 (string-append
7905 (assoc-ref inputs "gsl") "/lib/" all)))
7906 (substitute* "init/init.lisp"
7907 (("libgsl.so" all)
7908 (string-append
7909 (assoc-ref inputs "gsl") "/lib/" all))))))))
7910 (synopsis "GNU Scientific Library for Lisp")
7911 (description
7912 "The GNU Scientific Library for Lisp (GSLL) allows the use of the
7913 GNU Scientific Library (GSL) from Common Lisp. This library provides a
7914 full range of common mathematical operations useful to scientific and
7915 engineering applications. The design of the GSLL interface is such
7916 that access to most of the GSL library is possible in a Lisp-natural
7917 way; the intent is that the user not be hampered by the restrictions
7918 of the C language in which GSL has been written. GSLL thus provides
7919 interactive use of GSL for getting quick answers, even for someone not
7920 intending to program in Lisp.")
7921 (home-page "https://common-lisp.net/project/gsll/")
7922 (license license:gpl3))))
7923
7924 (define-public cl-gsll
7925 (sbcl-package->cl-source-package sbcl-gsll))
7926
7927 (define-public sbcl-antik
7928 (package
7929 (inherit sbcl-antik-base)
7930 (name "sbcl-antik")
7931 (inputs
7932 `(("gsll" ,sbcl-gsll)
7933 ("physical-dimension" ,sbcl-physical-dimension)))
7934 (arguments
7935 (substitute-keyword-arguments (package-arguments sbcl-antik-base)
7936 ((#:asd-file _ "") "antik.asd")
7937 ((#:asd-system-name _ #f) "antik")))))
7938
7939 (define-public cl-antik
7940 (sbcl-package->cl-source-package sbcl-antik))
7941
7942 (define-public sbcl-cl-interpol
7943 (let ((commit "1fd288d861db85bc4677cff3cdd6af75fda1afb4")
7944 (revision "1"))
7945 (package
7946 (name "sbcl-cl-interpol")
7947 (version (git-version "0.2.6" revision commit))
7948 (source
7949 (origin
7950 (method git-fetch)
7951 (uri (git-reference
7952 (url "https://github.com/edicl/cl-interpol.git")
7953 (commit commit)))
7954 (file-name (git-file-name name version))
7955 (sha256
7956 (base32
7957 "1hnikak52hmcq1r5f616m6qq1108qnkw80pja950nv1fq5p0ppjn"))))
7958 (build-system asdf-build-system/sbcl)
7959 (inputs
7960 `(("cl-unicode" ,sbcl-cl-unicode)
7961 ("named-readtables" ,sbcl-named-readtables)))
7962 (native-inputs
7963 `(("flexi-streams" ,sbcl-flexi-streams)))
7964 (synopsis "String interpolation for Common Lisp")
7965 (description
7966 "CL-INTERPOL is a library for Common Lisp which modifies the
7967 reader so that you can have interpolation within strings similar to
7968 Perl or Unix Shell scripts. It also provides various ways to insert
7969 arbitrary characters into literal strings even if your editor/IDE
7970 doesn't support them.")
7971 (home-page "https://edicl.github.io/cl-interpol/")
7972 (license license:bsd-3))))
7973
7974 (define-public cl-interpol
7975 (sbcl-package->cl-source-package sbcl-cl-interpol))
7976
7977 (define-public ecl-cl-interpol
7978 (sbcl-package->ecl-package sbcl-cl-interpol))
7979
7980 (define sbcl-symbol-munger-boot0
7981 ;; There is a cyclical dependency between symbol-munger and lisp-unit2.
7982 ;; See https://github.com/AccelerationNet/symbol-munger/issues/4
7983 (let ((commit "cc2bb4b7acd454d756484aec81ba487648385fc3")
7984 (revision "1"))
7985 (package
7986 (name "sbcl-symbol-munger-boot0")
7987 (version (git-version "0.0.1" revision commit))
7988 (source
7989 (origin
7990 (method git-fetch)
7991 (uri (git-reference
7992 (url "https://github.com/AccelerationNet/symbol-munger.git")
7993 (commit commit)))
7994 (file-name (git-file-name name version))
7995 (sha256
7996 (base32
7997 "0diav5ricqsybqvbp4bkxyj3bn3v9n7xb2pqqc4vg1algsw2pyjl"))))
7998 (build-system asdf-build-system/sbcl)
7999 (arguments
8000 `(#:asd-file "symbol-munger.asd"
8001 #:asd-system-name "symbol-munger"))
8002 (inputs
8003 `(("iterate" ,sbcl-iterate)
8004 ("alexandria" ,sbcl-alexandria)))
8005 (native-inputs
8006 `(("lisp-unit" ,sbcl-lisp-unit)))
8007 (synopsis
8008 "Capitalization and spacing conversion functions for Common Lisp")
8009 (description
8010 "This is a Common Lisp library to change the capitalization and spacing
8011 of a string or a symbol. It can convert to and from Lisp, english, underscore
8012 and camel-case rules.")
8013 (home-page "https://github.com/AccelerationNet/symbol-munger")
8014 ;; The package declares a BSD license, but all of the license
8015 ;; text is MIT.
8016 ;; See https://github.com/AccelerationNet/symbol-munger/issues/5
8017 (license license:expat))))
8018
8019 (define sbcl-lisp-unit2-boot0
8020 ;; There is a cyclical dependency between symbol-munger and lisp-unit2.
8021 ;; See https://github.com/AccelerationNet/symbol-munger/issues/4
8022 (let ((commit "fb9721524d1e4e73abb223ee036d74ce14a5505c")
8023 (revision "1"))
8024 (package
8025 (name "sbcl-lisp-unit2-boot0")
8026 (version (git-version "0.2.0" revision commit))
8027 (source
8028 (origin
8029 (method git-fetch)
8030 (uri (git-reference
8031 (url "https://github.com/AccelerationNet/lisp-unit2.git")
8032 (commit commit)))
8033 (file-name (git-file-name name version))
8034 (sha256
8035 (base32
8036 "1rsqy8y0jqll6xn9a593848f5wvd5ribv4csry1ly0hmdhfnqzlp"))))
8037 (build-system asdf-build-system/sbcl)
8038 (arguments
8039 `(#:asd-file "lisp-unit2.asd"
8040 #:asd-system-name "lisp-unit2"))
8041 (inputs
8042 `(("alexandria" ,sbcl-alexandria)
8043 ("cl-interpol" ,sbcl-cl-interpol)
8044 ("iterate" ,sbcl-iterate)
8045 ("symbol-munger-boot0" ,sbcl-symbol-munger-boot0)))
8046 (synopsis "Test Framework for Common Lisp")
8047 (description
8048 "LISP-UNIT2 is a Common Lisp library that supports unit testing in the
8049 style of JUnit for Java. It is a new version of the lisp-unit library written
8050 by Chris Riesbeck.")
8051 (home-page "https://github.com/AccelerationNet/lisp-unit2")
8052 (license license:expat))))
8053
8054 (define-public sbcl-symbol-munger
8055 (let ((commit "97598d4c3c53fd5da72ab78908fbd5d8c7a13416")
8056 (revision "1"))
8057 (package
8058 (name "sbcl-symbol-munger")
8059 (version (git-version "0.0.1" revision commit))
8060 (source
8061 (origin
8062 (method git-fetch)
8063 (uri (git-reference
8064 (url "https://github.com/AccelerationNet/symbol-munger.git")
8065 (commit commit)))
8066 (file-name (git-file-name name version))
8067 (sha256
8068 (base32
8069 "0y8jywjy0ldyhp7bxf16fdvdd2qgqnd7nlhlqfpfnzxcqk4xy1km"))))
8070 (build-system asdf-build-system/sbcl)
8071 (inputs
8072 `(("alexandria" ,sbcl-alexandria)
8073 ("iterate" ,sbcl-iterate)))
8074 (native-inputs
8075 `(("lisp-unit2-boot0" ,sbcl-lisp-unit2-boot0)))
8076 (synopsis
8077 "Capitalization and spacing conversion functions for Common Lisp")
8078 (description
8079 "This is a Common Lisp library to change the capitalization and spacing
8080 of a string or a symbol. It can convert to and from Lisp, english, underscore
8081 and camel-case rules.")
8082 (home-page "https://github.com/AccelerationNet/symbol-munger")
8083 ;; The package declares a BSD license, but all of the license
8084 ;; text is MIT.
8085 ;; See https://github.com/AccelerationNet/symbol-munger/issues/5
8086 (license license:expat))))
8087
8088 (define-public cl-symbol-munger
8089 (sbcl-package->cl-source-package sbcl-symbol-munger))
8090
8091 (define-public ecl-symbol-munger
8092 (sbcl-package->ecl-package sbcl-symbol-munger))
8093
8094 (define-public sbcl-lisp-unit2
8095 (package
8096 (inherit sbcl-lisp-unit2-boot0)
8097 (name "sbcl-lisp-unit2")
8098 (inputs
8099 `(("alexandria" ,sbcl-alexandria)
8100 ("cl-interpol" ,sbcl-cl-interpol)
8101 ("iterate" ,sbcl-iterate)
8102 ("symbol-munger" ,sbcl-symbol-munger)))))
8103
8104 (define-public cl-lisp-unit2
8105 (sbcl-package->cl-source-package sbcl-lisp-unit2))
8106
8107 (define-public ecl-lisp-unit2
8108 (sbcl-package->ecl-package sbcl-lisp-unit2))
8109
8110 (define-public sbcl-cl-csv
8111 (let ((commit "3eba29c8364b033fbe0d189c2500559278b6a362")
8112 (revision "1"))
8113 (package
8114 (name "sbcl-cl-csv")
8115 (version (git-version "1.0.6" revision commit))
8116 (source
8117 (origin
8118 (method git-fetch)
8119 (uri (git-reference
8120 (url "https://github.com/AccelerationNet/cl-csv.git")
8121 (commit commit)))
8122 (file-name (git-file-name name version))
8123 (sha256
8124 (base32
8125 "07h4ni89jzx93clx453hlnnb5g53hhlcmz5hghqv6ysam48lc8g6"))))
8126 (build-system asdf-build-system/sbcl)
8127 (arguments
8128 ;; See: https://github.com/AccelerationNet/cl-csv/pull/34
8129 `(#:tests? #f))
8130 (inputs
8131 `(("alexandria" ,sbcl-alexandria)
8132 ("cl-interpol" ,sbcl-cl-interpol)
8133 ("iterate" ,sbcl-iterate)))
8134 (native-inputs
8135 `(("lisp-unit2" ,sbcl-lisp-unit2)))
8136 (synopsis "Common lisp library for comma-separated values")
8137 (description
8138 "This is a Common Lisp library providing functions to read/write CSV
8139 from/to strings, streams and files.")
8140 (home-page "https://github.com/AccelerationNet/cl-csv")
8141 (license license:bsd-3))))
8142
8143 (define-public cl-csv
8144 (sbcl-package->cl-source-package sbcl-cl-csv))
8145
8146 (define-public ecl-cl-csv
8147 (sbcl-package->ecl-package sbcl-cl-csv))
8148
8149 (define-public sbcl-external-program
8150 (let ((commit "5888b8f1fd3953feeeacecbba4384ddda584a749")
8151 (revision "1"))
8152 (package
8153 (name "sbcl-external-program")
8154 (version (git-version "0.0.6" revision commit))
8155 (source
8156 (origin
8157 (method git-fetch)
8158 (uri (git-reference
8159 (url "https://github.com/sellout/external-program.git")
8160 (commit commit)))
8161 (file-name (git-file-name name version))
8162 (sha256
8163 (base32
8164 "0vww1x3yilb3bjwg6k184vaj4vxyxw4vralhnlm6lk4xac67kc9z"))))
8165 (build-system asdf-build-system/sbcl)
8166 (inputs
8167 `(("trivial-features" ,sbcl-trivial-features)))
8168 (native-inputs
8169 `(("fiveam" ,sbcl-fiveam)))
8170 (synopsis "Common Lisp library for running external programs")
8171 (description
8172 "EXTERNAL-PROGRAM enables running programs outside the Lisp
8173 process. It is an attempt to make the RUN-PROGRAM functionality in
8174 implementations like SBCL and CCL as portable as possible without
8175 sacrificing much in the way of power.")
8176 (home-page "https://github.com/sellout/external-program")
8177 (license license:llgpl))))
8178
8179 (define-public cl-external-program
8180 (sbcl-package->cl-source-package sbcl-external-program))
8181
8182 (define-public ecl-external-program
8183 (sbcl-package->ecl-package sbcl-external-program))
8184
8185 (define sbcl-cl-ana-boot0
8186 (let ((commit "fa7cee4c50aa1c859652813049ba0da7c18a0df9")
8187 (revision "1"))
8188 (package
8189 (name "sbcl-cl-ana-boot0")
8190 (version (git-version "0.0.0" revision commit))
8191 (source
8192 (origin
8193 (method git-fetch)
8194 (uri (git-reference
8195 (url "https://github.com/ghollisjr/cl-ana.git")
8196 (commit commit)))
8197 (file-name (git-file-name name version))
8198 (sha256
8199 (base32
8200 "0mr47l57m276dbpap7irr4fcnk5fgknhf6mgv4043s8h73amk5qh"))))
8201 (build-system asdf-build-system/sbcl)
8202 (synopsis "Common Lisp data analysis library")
8203 (description
8204 "CL-ANA is a data analysis library in Common Lisp providing tabular and
8205 binned data analysis along with nonlinear least squares fitting and
8206 visualization.")
8207 (home-page "https://github.com/ghollisjr/cl-ana")
8208 (license license:gpl3))))
8209
8210 (define-public sbcl-cl-ana.pathname-utils
8211 (package
8212 (inherit sbcl-cl-ana-boot0)
8213 (name "sbcl-cl-ana.pathname-utils")
8214 (arguments
8215 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8216 ((#:asd-file _ "") "pathname-utils/cl-ana.pathname-utils.asd")
8217 ((#:asd-system-name _ #f) "cl-ana.pathname-utils")))))
8218
8219 (define-public cl-ana.pathname-utils
8220 (sbcl-package->cl-source-package sbcl-cl-ana.pathname-utils))
8221
8222 (define-public ecl-cl-ana.pathname-utils
8223 (sbcl-package->ecl-package sbcl-cl-ana.pathname-utils))
8224
8225 (define-public sbcl-cl-ana.package-utils
8226 (package
8227 (inherit sbcl-cl-ana-boot0)
8228 (name "sbcl-cl-ana.package-utils")
8229 (inputs
8230 `(("alexandria" ,sbcl-alexandria)))
8231 (arguments
8232 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8233 ((#:asd-file _ "") "package-utils/cl-ana.package-utils.asd")
8234 ((#:asd-system-name _ #f) "cl-ana.package-utils")))))
8235
8236 (define-public cl-ana.package-utils
8237 (sbcl-package->cl-source-package sbcl-cl-ana.package-utils))
8238
8239 (define-public ecl-cl-ana.package-utils
8240 (sbcl-package->ecl-package sbcl-cl-ana.package-utils))
8241
8242 (define-public sbcl-cl-ana.string-utils
8243 (package
8244 (inherit sbcl-cl-ana-boot0)
8245 (name "sbcl-cl-ana.string-utils")
8246 (inputs
8247 `(("split-sequence" ,sbcl-split-sequence)))
8248 (arguments
8249 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8250 ((#:asd-file _ "") "string-utils/cl-ana.string-utils.asd")
8251 ((#:asd-system-name _ #f) "cl-ana.string-utils")))))
8252
8253 (define-public cl-ana.string-utils
8254 (sbcl-package->cl-source-package sbcl-cl-ana.string-utils))
8255
8256 (define-public ecl-cl-ana.string-utils
8257 (sbcl-package->ecl-package sbcl-cl-ana.string-utils))
8258
8259 (define-public sbcl-cl-ana.functional-utils
8260 (package
8261 (inherit sbcl-cl-ana-boot0)
8262 (name "sbcl-cl-ana.functional-utils")
8263 (arguments
8264 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8265 ((#:asd-file _ "") "functional-utils/cl-ana.functional-utils.asd")
8266 ((#:asd-system-name _ #f) "cl-ana.functional-utils")))))
8267
8268 (define-public cl-ana.functional-utils
8269 (sbcl-package->cl-source-package sbcl-cl-ana.functional-utils))
8270
8271 (define-public ecl-cl-ana.functional-utils
8272 (sbcl-package->ecl-package sbcl-cl-ana.functional-utils))
8273
8274 (define-public sbcl-cl-ana.list-utils
8275 (package
8276 (inherit sbcl-cl-ana-boot0)
8277 (name "sbcl-cl-ana.list-utils")
8278 (inputs
8279 `(("alexandria" ,sbcl-alexandria)
8280 ("cl-ana.functional-utils" ,sbcl-cl-ana.functional-utils)
8281 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)))
8282 (arguments
8283 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8284 ((#:asd-file _ "") "list-utils/cl-ana.list-utils.asd")
8285 ((#:asd-system-name _ #f) "cl-ana.list-utils")))))
8286
8287 (define-public cl-ana.list-utils
8288 (sbcl-package->cl-source-package sbcl-cl-ana.list-utils))
8289
8290 (define-public ecl-cl-ana.list-utils
8291 (sbcl-package->ecl-package sbcl-cl-ana.list-utils))
8292
8293 (define-public sbcl-cl-ana.generic-math
8294 (package
8295 (inherit sbcl-cl-ana-boot0)
8296 (name "sbcl-cl-ana.generic-math")
8297 (inputs
8298 `(("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8299 ("cl-ana.package-utils" ,sbcl-cl-ana.package-utils)))
8300 (arguments
8301 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8302 ((#:asd-file _ "") "generic-math/cl-ana.generic-math.asd")
8303 ((#:asd-system-name _ #f) "cl-ana.generic-math")))))
8304
8305 (define-public cl-ana.generic-math
8306 (sbcl-package->cl-source-package sbcl-cl-ana.generic-math))
8307
8308 (define-public ecl-cl-ana.generic-math
8309 (sbcl-package->ecl-package sbcl-cl-ana.generic-math))
8310
8311 (define-public sbcl-cl-ana.math-functions
8312 (package
8313 (inherit sbcl-cl-ana-boot0)
8314 (name "sbcl-cl-ana.math-functions")
8315 (inputs
8316 `(("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
8317 ("gsll" ,sbcl-gsll)))
8318 (arguments
8319 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8320 ((#:asd-file _ "") "math-functions/cl-ana.math-functions.asd")
8321 ((#:asd-system-name _ #f) "cl-ana.math-functions")))))
8322
8323 (define-public cl-ana.math-functions
8324 (sbcl-package->cl-source-package sbcl-cl-ana.math-functions))
8325
8326 (define-public sbcl-cl-ana.calculus
8327 (package
8328 (inherit sbcl-cl-ana-boot0)
8329 (name "sbcl-cl-ana.calculus")
8330 (inputs
8331 `(("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)))
8332 (arguments
8333 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8334 ((#:asd-file _ "") "calculus/cl-ana.calculus.asd")
8335 ((#:asd-system-name _ #f) "cl-ana.calculus")))))
8336
8337 (define-public cl-ana.calculus
8338 (sbcl-package->cl-source-package sbcl-cl-ana.calculus))
8339
8340 (define-public ecl-cl-ana.calculus
8341 (sbcl-package->ecl-package sbcl-cl-ana.calculus))
8342
8343 (define-public sbcl-cl-ana.symbol-utils
8344 (package
8345 (inherit sbcl-cl-ana-boot0)
8346 (name "sbcl-cl-ana.symbol-utils")
8347 (inputs
8348 `(("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)))
8349 (arguments
8350 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8351 ((#:asd-file _ "") "symbol-utils/cl-ana.symbol-utils.asd")
8352 ((#:asd-system-name _ #f) "cl-ana.symbol-utils")))))
8353
8354 (define-public cl-ana.symbol-utils
8355 (sbcl-package->cl-source-package sbcl-cl-ana.symbol-utils))
8356
8357 (define-public ecl-cl-ana.symbol-utils
8358 (sbcl-package->ecl-package sbcl-cl-ana.symbol-utils))
8359
8360 (define-public sbcl-cl-ana.macro-utils
8361 (package
8362 (inherit sbcl-cl-ana-boot0)
8363 (name "sbcl-cl-ana.macro-utils")
8364 (inputs
8365 `(("alexandria" ,sbcl-alexandria)
8366 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8367 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
8368 ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)
8369 ("split-sequence" ,sbcl-split-sequence)))
8370 (arguments
8371 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8372 ((#:asd-file _ "") "macro-utils/cl-ana.macro-utils.asd")
8373 ((#:asd-system-name _ #f) "cl-ana.macro-utils")))))
8374
8375 (define-public cl-ana.macro-utils
8376 (sbcl-package->cl-source-package sbcl-cl-ana.macro-utils))
8377
8378 (define-public ecl-cl-ana.macro-utils
8379 (sbcl-package->ecl-package sbcl-cl-ana.macro-utils))
8380
8381 (define-public sbcl-cl-ana.binary-tree
8382 (package
8383 (inherit sbcl-cl-ana-boot0)
8384 (name "sbcl-cl-ana.binary-tree")
8385 (inputs
8386 `(("cl-ana.functional-utils" ,sbcl-cl-ana.functional-utils)
8387 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8388 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)))
8389 (arguments
8390 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8391 ((#:asd-file _ "") "binary-tree/cl-ana.binary-tree.asd")
8392 ((#:asd-system-name _ #f) "cl-ana.binary-tree")))))
8393
8394 (define-public cl-ana.binary-tree
8395 (sbcl-package->cl-source-package sbcl-cl-ana.binary-tree))
8396
8397 (define-public ecl-cl-ana.binary-tree
8398 (sbcl-package->ecl-package sbcl-cl-ana.binary-tree))
8399
8400 (define-public sbcl-cl-ana.tensor
8401 (package
8402 (inherit sbcl-cl-ana-boot0)
8403 (name "sbcl-cl-ana.tensor")
8404 (inputs
8405 `(("alexandria" ,sbcl-alexandria)
8406 ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
8407 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8408 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
8409 ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)))
8410 (arguments
8411 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8412 ((#:asd-file _ "") "tensor/cl-ana.tensor.asd")
8413 ((#:asd-system-name _ #f) "cl-ana.tensor")))))
8414
8415 (define-public cl-ana.tensor
8416 (sbcl-package->cl-source-package sbcl-cl-ana.tensor))
8417
8418 (define-public ecl-cl-ana.tensor
8419 (sbcl-package->ecl-package sbcl-cl-ana.tensor))
8420
8421 (define-public sbcl-cl-ana.error-propogation
8422 (package
8423 (inherit sbcl-cl-ana-boot0)
8424 (name "sbcl-cl-ana.error-propogation")
8425 (inputs
8426 `(("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
8427 ("cl-ana.math-functions" ,sbcl-cl-ana.math-functions)))
8428 (arguments
8429 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8430 ((#:asd-file _ "") "error-propogation/cl-ana.error-propogation.asd")
8431 ((#:asd-system-name _ #f) "cl-ana.error-propogation")))))
8432
8433 (define-public cl-ana.error-propogation
8434 (sbcl-package->cl-source-package sbcl-cl-ana.error-propogation))
8435
8436 (define-public sbcl-cl-ana.quantity
8437 (package
8438 (inherit sbcl-cl-ana-boot0)
8439 (name "sbcl-cl-ana.quantity")
8440 (inputs
8441 `(("alexandria" ,sbcl-alexandria)
8442 ("cl-ana.error-propogation" ,sbcl-cl-ana.error-propogation)
8443 ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
8444 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8445 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
8446 ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)))
8447 (arguments
8448 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8449 ((#:asd-file _ "") "quantity/cl-ana.quantity.asd")
8450 ((#:asd-system-name _ #f) "cl-ana.quantity")))))
8451
8452 (define-public cl-ana.quantity
8453 (sbcl-package->cl-source-package sbcl-cl-ana.quantity))
8454
8455 (define-public sbcl-cl-ana.table
8456 (package
8457 (inherit sbcl-cl-ana-boot0)
8458 (name "sbcl-cl-ana.table")
8459 (inputs
8460 `(("alexandria" ,sbcl-alexandria)
8461 ("cl-ana.functional-utils" ,sbcl-cl-ana.functional-utils)
8462 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8463 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
8464 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
8465 ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)))
8466 (arguments
8467 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8468 ((#:asd-file _ "") "table/cl-ana.table.asd")
8469 ((#:asd-system-name _ #f) "cl-ana.table")))))
8470
8471 (define-public cl-ana.table
8472 (sbcl-package->cl-source-package sbcl-cl-ana.table))
8473
8474 (define-public ecl-cl-ana.table
8475 (sbcl-package->ecl-package sbcl-cl-ana.table))
8476
8477 (define-public sbcl-cl-ana.table-utils
8478 (package
8479 (inherit sbcl-cl-ana-boot0)
8480 (name "sbcl-cl-ana.table-utils")
8481 (inputs
8482 `(("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
8483 ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)
8484 ("cl-ana.table" ,sbcl-cl-ana.table)))
8485 (arguments
8486 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8487 ((#:asd-file _ "") "table-utils/cl-ana.table-utils.asd")
8488 ((#:asd-system-name _ #f) "cl-ana.table-utils")))))
8489
8490 (define-public cl-ana.table-utils
8491 (sbcl-package->cl-source-package sbcl-cl-ana.table-utils))
8492
8493 (define-public ecl-cl-ana.table-utils
8494 (sbcl-package->ecl-package sbcl-cl-ana.table-utils))
8495
8496 (define-public sbcl-cl-ana.hdf-cffi
8497 (package
8498 (inherit sbcl-cl-ana-boot0)
8499 (name "sbcl-cl-ana.hdf-cffi")
8500 (inputs
8501 `(("cffi" ,sbcl-cffi)
8502 ("hdf5" ,hdf5-parallel-openmpi)))
8503 (arguments
8504 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8505 ((#:asd-file _ "") "hdf-cffi/cl-ana.hdf-cffi.asd")
8506 ((#:asd-system-name _ #f) "cl-ana.hdf-cffi")
8507 ((#:phases phases '%standard-phases)
8508 `(modify-phases ,phases
8509 (add-after 'unpack 'fix-paths
8510 (lambda* (#:key inputs #:allow-other-keys)
8511 (substitute* "hdf-cffi/hdf-cffi.lisp"
8512 (("/usr/lib/i386-linux-gnu/hdf5/serial/libhdf5.so")
8513 (string-append
8514 (assoc-ref inputs "hdf5")
8515 "/lib/libhdf5.so")))))))))))
8516
8517 (define-public cl-ana.hdf-cffi
8518 (sbcl-package->cl-source-package sbcl-cl-ana.hdf-cffi))
8519
8520 (define-public ecl-cl-ana.hdf-cffi
8521 (sbcl-package->ecl-package sbcl-cl-ana.hdf-cffi))
8522
8523 (define-public sbcl-cl-ana.int-char
8524 (package
8525 (inherit sbcl-cl-ana-boot0)
8526 (name "sbcl-cl-ana.int-char")
8527 (arguments
8528 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8529 ((#:asd-file _ "") "int-char/cl-ana.int-char.asd")
8530 ((#:asd-system-name _ #f) "cl-ana.int-char")))))
8531
8532 (define-public cl-ana.int-char
8533 (sbcl-package->cl-source-package sbcl-cl-ana.int-char))
8534
8535 (define-public ecl-cl-ana.int-char
8536 (sbcl-package->ecl-package sbcl-cl-ana.int-char))
8537
8538 (define-public sbcl-cl-ana.memoization
8539 (package
8540 (inherit sbcl-cl-ana-boot0)
8541 (name "sbcl-cl-ana.memoization")
8542 (inputs
8543 `(("alexandria" ,sbcl-alexandria)))
8544 (arguments
8545 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8546 ((#:asd-file _ "") "memoization/cl-ana.memoization.asd")
8547 ((#:asd-system-name _ #f) "cl-ana.memoization")))))
8548
8549 (define-public cl-ana.memoization
8550 (sbcl-package->cl-source-package sbcl-cl-ana.memoization))
8551
8552 (define-public ecl-cl-ana.memoization
8553 (sbcl-package->ecl-package sbcl-cl-ana.memoization))
8554
8555 (define-public sbcl-cl-ana.typespec
8556 (package
8557 (inherit sbcl-cl-ana-boot0)
8558 (name "sbcl-cl-ana.typespec")
8559 (inputs
8560 `(("alexandria" ,sbcl-alexandria)
8561 ("cffi" ,sbcl-cffi)
8562 ("cl-ana.int-char" ,sbcl-cl-ana.int-char)
8563 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8564 ("cl-ana.memoization" ,sbcl-cl-ana.memoization)
8565 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
8566 ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)
8567 ("cl-ana.tensor" ,sbcl-cl-ana.tensor)))
8568 (arguments
8569 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8570 ((#:asd-file _ "") "typespec/cl-ana.typespec.asd")
8571 ((#:asd-system-name _ #f) "cl-ana.typespec")))))
8572
8573 (define-public cl-ana.typespec
8574 (sbcl-package->cl-source-package sbcl-cl-ana.typespec))
8575
8576 (define-public ecl-cl-ana.typespec
8577 (sbcl-package->ecl-package sbcl-cl-ana.typespec))
8578
8579 (define-public sbcl-cl-ana.hdf-typespec
8580 (package
8581 (inherit sbcl-cl-ana-boot0)
8582 (name "sbcl-cl-ana.hdf-typespec")
8583 (inputs
8584 `(("alexandria" ,sbcl-alexandria)
8585 ("cffi" ,sbcl-cffi)
8586 ("cl-ana.hdf-cffi" ,sbcl-cl-ana.hdf-cffi)
8587 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8588 ("cl-ana.memoization" ,sbcl-cl-ana.memoization)
8589 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
8590 ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)
8591 ("cl-ana.typespec" ,sbcl-cl-ana.typespec)))
8592 (arguments
8593 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8594 ((#:asd-file _ "") "hdf-typespec/cl-ana.hdf-typespec.asd")
8595 ((#:asd-system-name _ #f) "cl-ana.hdf-typespec")))))
8596
8597 (define-public cl-ana.hdf-typespec
8598 (sbcl-package->cl-source-package sbcl-cl-ana.hdf-typespec))
8599
8600 (define-public ecl-cl-ana.hdf-typespec
8601 (sbcl-package->ecl-package sbcl-cl-ana.hdf-typespec))
8602
8603 (define-public sbcl-cl-ana.hdf-utils
8604 (package
8605 (inherit sbcl-cl-ana-boot0)
8606 (name "sbcl-cl-ana.hdf-utils")
8607 (inputs
8608 `(("alexandria" ,sbcl-alexandria)
8609 ("cffi" ,sbcl-cffi)
8610 ("cl-ana.hdf-cffi" ,sbcl-cl-ana.hdf-cffi)
8611 ("cl-ana.hdf-typespec" ,sbcl-cl-ana.hdf-typespec)
8612 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
8613 ("cl-ana.memoization" ,sbcl-cl-ana.memoization)
8614 ("cl-ana.pathname-utils" ,sbcl-cl-ana.pathname-utils)
8615 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
8616 ("cl-ana.typespec" ,sbcl-cl-ana.typespec)))
8617 (arguments
8618 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8619 ((#:asd-file _ "") "hdf-utils/cl-ana.hdf-utils.asd")
8620 ((#:asd-system-name _ #f) "cl-ana.hdf-utils")))))
8621
8622 (define-public cl-ana.hdf-utils
8623 (sbcl-package->cl-source-package sbcl-cl-ana.hdf-utils))
8624
8625 (define-public ecl-cl-ana.hdf-utils
8626 (sbcl-package->ecl-package sbcl-cl-ana.hdf-utils))
8627
8628 (define-public sbcl-cl-ana.typed-table
8629 (package
8630 (inherit sbcl-cl-ana-boot0)
8631 (name "sbcl-cl-ana.typed-table")
8632 (inputs
8633 `(("alexandria" ,sbcl-alexandria)
8634 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8635 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
8636 ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)
8637 ("cl-ana.table" ,sbcl-cl-ana.table)
8638 ("cl-ana.typespec" ,sbcl-cl-ana.typespec)))
8639 (arguments
8640 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8641 ((#:asd-file _ "") "typed-table/cl-ana.typed-table.asd")
8642 ((#:asd-system-name _ #f) "cl-ana.typed-table")))))
8643
8644 (define-public cl-ana.typed-table
8645 (sbcl-package->cl-source-package sbcl-cl-ana.typed-table))
8646
8647 (define-public ecl-cl-ana.typed-table
8648 (sbcl-package->ecl-package sbcl-cl-ana.typed-table))
8649
8650 (define-public sbcl-cl-ana.hdf-table
8651 (package
8652 (inherit sbcl-cl-ana-boot0)
8653 (name "sbcl-cl-ana.hdf-table")
8654 (inputs
8655 `(("alexandria" ,sbcl-alexandria)
8656 ("cl-ana.binary-tree" ,sbcl-cl-ana.binary-tree)
8657 ("cl-ana.hdf-cffi" ,sbcl-cl-ana.hdf-cffi)
8658 ("cl-ana.hdf-typespec" ,sbcl-cl-ana.hdf-typespec)
8659 ("cl-ana.hdf-utils" ,sbcl-cl-ana.hdf-utils)
8660 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8661 ("cl-ana.memoization" ,sbcl-cl-ana.memoization)
8662 ("cl-ana.table" ,sbcl-cl-ana.table)
8663 ("cl-ana.typed-table" ,sbcl-cl-ana.typed-table)
8664 ("cl-ana.typespec" ,sbcl-cl-ana.typespec)))
8665 (arguments
8666 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8667 ((#:asd-file _ "") "hdf-table/cl-ana.hdf-table.asd")
8668 ((#:asd-system-name _ #f) "cl-ana.hdf-table")))))
8669
8670 (define-public cl-ana.hdf-table
8671 (sbcl-package->cl-source-package sbcl-cl-ana.hdf-table))
8672
8673 (define-public ecl-cl-ana.hdf-table
8674 (sbcl-package->ecl-package sbcl-cl-ana.hdf-table))
8675
8676 (define-public sbcl-cl-ana.gsl-cffi
8677 (package
8678 (inherit sbcl-cl-ana-boot0)
8679 (name "sbcl-cl-ana.gsl-cffi")
8680 (inputs
8681 `(("cffi" ,sbcl-cffi)
8682 ("gsl" ,gsl)))
8683 (arguments
8684 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8685 ((#:asd-file _ "") "gsl-cffi/cl-ana.gsl-cffi.asd")
8686 ((#:asd-system-name _ #f) "cl-ana.gsl-cffi")
8687 ((#:phases phases '%standard-phases)
8688 `(modify-phases ,phases
8689 (add-after 'unpack 'fix-paths
8690 (lambda* (#:key inputs #:allow-other-keys)
8691 (substitute* "gsl-cffi/gsl-cffi.lisp"
8692 (("define-foreign-library gsl-cffi" all)
8693 (string-append all " (:unix "
8694 (assoc-ref inputs "gsl")
8695 "/lib/libgsl.so)")))))))))))
8696
8697 (define-public cl-ana.gsl-cffi
8698 (sbcl-package->cl-source-package sbcl-cl-ana.gsl-cffi))
8699
8700 (define-public ecl-cl-ana.gsl-cffi
8701 (sbcl-package->ecl-package sbcl-cl-ana.gsl-cffi))
8702
8703 (define-public sbcl-cl-ana.ntuple-table
8704 (package
8705 (inherit sbcl-cl-ana-boot0)
8706 (name "sbcl-cl-ana.ntuple-table")
8707 (inputs
8708 `(("alexandria" ,sbcl-alexandria)
8709 ("cffi" ,sbcl-cffi)
8710 ("cl-ana.gsl-cffi" ,sbcl-cl-ana.gsl-cffi)
8711 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8712 ("cl-ana.table" ,sbcl-cl-ana.table)
8713 ("cl-ana.typed-table" ,sbcl-cl-ana.typed-table)
8714 ("cl-ana.typespec" ,sbcl-cl-ana.typespec)
8715 ("gsll" ,sbcl-gsll)))
8716 (arguments
8717 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8718 ((#:asd-file _ "") "ntuple-table/cl-ana.ntuple-table.asd")
8719 ((#:asd-system-name _ #f) "cl-ana.ntuple-table")))))
8720
8721 (define-public cl-ana.ntuple-table
8722 (sbcl-package->cl-source-package sbcl-cl-ana.ntuple-table))
8723
8724 (define-public sbcl-cl-ana.csv-table
8725 (package
8726 (inherit sbcl-cl-ana-boot0)
8727 (name "sbcl-cl-ana.csv-table")
8728 (inputs
8729 `(("alexandria" ,sbcl-alexandria)
8730 ("antik" ,sbcl-antik)
8731 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8732 ("cl-ana.table" ,sbcl-cl-ana.table)
8733 ("cl-csv" ,sbcl-cl-csv)
8734 ("iterate" ,sbcl-iterate)))
8735 (arguments
8736 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8737 ((#:asd-file _ "") "csv-table/cl-ana.csv-table.asd")
8738 ((#:asd-system-name _ #f) "cl-ana.csv-table")))))
8739
8740 (define-public cl-ana.csv-table
8741 (sbcl-package->cl-source-package sbcl-cl-ana.csv-table))
8742
8743 (define-public sbcl-cl-ana.reusable-table
8744 (package
8745 (inherit sbcl-cl-ana-boot0)
8746 (name "sbcl-cl-ana.reusable-table")
8747 (inputs
8748 `(("alexandria" ,sbcl-alexandria)
8749 ("cl-ana.table" ,sbcl-cl-ana.table)))
8750 (arguments
8751 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8752 ((#:asd-file _ "") "reusable-table/cl-ana.reusable-table.asd")
8753 ((#:asd-system-name _ #f) "cl-ana.reusable-table")))))
8754
8755 (define-public cl-ana.reusable-table
8756 (sbcl-package->cl-source-package sbcl-cl-ana.reusable-table))
8757
8758 (define-public ecl-cl-ana.reusable-table
8759 (sbcl-package->ecl-package sbcl-cl-ana.reusable-table))
8760
8761 (define-public sbcl-cl-ana.linear-algebra
8762 (package
8763 (inherit sbcl-cl-ana-boot0)
8764 (name "sbcl-cl-ana.linear-algebra")
8765 (inputs
8766 `(("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
8767 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8768 ("cl-ana.math-functions" ,sbcl-cl-ana.math-functions)
8769 ("cl-ana.tensor" ,sbcl-cl-ana.tensor)
8770 ("gsll" ,sbcl-gsll)))
8771 (arguments
8772 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8773 ((#:asd-file _ "") "linear-algebra/cl-ana.linear-algebra.asd")
8774 ((#:asd-system-name _ #f) "cl-ana.linear-algebra")))))
8775
8776 (define-public cl-ana.linear-algebra
8777 (sbcl-package->cl-source-package sbcl-cl-ana.linear-algebra))
8778
8779 (define-public sbcl-cl-ana.lorentz
8780 (package
8781 (inherit sbcl-cl-ana-boot0)
8782 (name "sbcl-cl-ana.lorentz")
8783 (inputs
8784 `(("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
8785 ("cl-ana.linear-algebra" ,sbcl-cl-ana.linear-algebra)
8786 ("cl-ana.tensor" ,sbcl-cl-ana.tensor)
8787 ("iterate" ,sbcl-iterate)))
8788 (arguments
8789 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8790 ((#:asd-file _ "") "lorentz/cl-ana.lorentz.asd")
8791 ((#:asd-system-name _ #f) "cl-ana.lorentz")))))
8792
8793 (define-public cl-ana.lorentz
8794 (sbcl-package->cl-source-package sbcl-cl-ana.lorentz))
8795
8796 (define-public sbcl-cl-ana.clos-utils
8797 (package
8798 (inherit sbcl-cl-ana-boot0)
8799 (name "sbcl-cl-ana.clos-utils")
8800 (inputs
8801 `(("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8802 ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)
8803 ("cl-ana.tensor" ,sbcl-cl-ana.tensor)
8804 ("closer-mop" ,sbcl-closer-mop)))
8805 (arguments
8806 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8807 ((#:asd-file _ "") "clos-utils/cl-ana.clos-utils.asd")
8808 ((#:asd-system-name _ #f) "cl-ana.clos-utils")))))
8809
8810 (define-public cl-ana.clos-utils
8811 (sbcl-package->cl-source-package sbcl-cl-ana.clos-utils))
8812
8813 (define-public ecl-cl-ana.clos-utils
8814 (sbcl-package->ecl-package sbcl-cl-ana.clos-utils))
8815
8816 (define-public sbcl-cl-ana.hash-table-utils
8817 (package
8818 (inherit sbcl-cl-ana-boot0)
8819 (name "sbcl-cl-ana.hash-table-utils")
8820 (arguments
8821 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8822 ((#:asd-file _ "") "hash-table-utils/cl-ana.hash-table-utils.asd")
8823 ((#:asd-system-name _ #f) "cl-ana.hash-table-utils")))))
8824
8825 (define-public cl-ana.hash-table-utils
8826 (sbcl-package->cl-source-package sbcl-cl-ana.hash-table-utils))
8827
8828 (define-public ecl-cl-ana.hash-table-utils
8829 (sbcl-package->ecl-package sbcl-cl-ana.hash-table-utils))
8830
8831 (define-public sbcl-cl-ana.map
8832 (package
8833 (inherit sbcl-cl-ana-boot0)
8834 (name "sbcl-cl-ana.map")
8835 (inputs
8836 `(("cl-ana.hash-table-utils" ,sbcl-cl-ana.hash-table-utils)))
8837 (arguments
8838 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8839 ((#:asd-file _ "") "map/cl-ana.map.asd")
8840 ((#:asd-system-name _ #f) "cl-ana.map")))))
8841
8842 (define-public cl-ana.map
8843 (sbcl-package->cl-source-package sbcl-cl-ana.map))
8844
8845 (define-public ecl-cl-ana.map
8846 (sbcl-package->ecl-package sbcl-cl-ana.map))
8847
8848 (define-public sbcl-cl-ana.fitting
8849 (package
8850 (inherit sbcl-cl-ana-boot0)
8851 (name "sbcl-cl-ana.fitting")
8852 (inputs
8853 `(("alexandria" ,sbcl-alexandria)
8854 ("cl-ana.error-propogation" ,sbcl-cl-ana.error-propogation)
8855 ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
8856 ("cl-ana.map" ,sbcl-cl-ana.map)
8857 ("cl-ana.math-functions" ,sbcl-cl-ana.math-functions)
8858 ("gsll" ,sbcl-gsll)))
8859 (arguments
8860 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8861 ((#:asd-file _ "") "fitting/cl-ana.fitting.asd")
8862 ((#:asd-system-name _ #f) "cl-ana.fitting")))))
8863
8864 (define-public cl-ana.fitting
8865 (sbcl-package->cl-source-package sbcl-cl-ana.fitting))
8866
8867 (define-public sbcl-cl-ana.histogram
8868 (package
8869 (inherit sbcl-cl-ana-boot0)
8870 (name "sbcl-cl-ana.histogram")
8871 (inputs
8872 `(("alexandria" ,sbcl-alexandria)
8873 ("iterate" ,sbcl-iterate)
8874 ("cl-ana.binary-tree" ,sbcl-cl-ana.binary-tree)
8875 ("cl-ana.clos-utils" ,sbcl-cl-ana.clos-utils)
8876 ("cl-ana.fitting" ,sbcl-cl-ana.fitting)
8877 ("cl-ana.functional-utils" ,sbcl-cl-ana.functional-utils)
8878 ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
8879 ("cl-ana.hash-table-utils" ,sbcl-cl-ana.hash-table-utils)
8880 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8881 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
8882 ("cl-ana.map" ,sbcl-cl-ana.map)
8883 ("cl-ana.tensor" ,sbcl-cl-ana.tensor)))
8884 (arguments
8885 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8886 ((#:asd-file _ "") "histogram/cl-ana.histogram.asd")
8887 ((#:asd-system-name _ #f) "cl-ana.histogram")))))
8888
8889 (define-public cl-ana.histogram
8890 (sbcl-package->cl-source-package sbcl-cl-ana.histogram))
8891
8892 (define-public sbcl-cl-ana.file-utils
8893 (package
8894 (inherit sbcl-cl-ana-boot0)
8895 (name "sbcl-cl-ana.file-utils")
8896 (inputs
8897 `(("external-program" ,sbcl-external-program)
8898 ("split-sequence" ,sbcl-split-sequence)))
8899 (arguments
8900 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8901 ((#:asd-file _ "") "file-utils/cl-ana.file-utils.asd")
8902 ((#:asd-system-name _ #f) "cl-ana.file-utils")))))
8903
8904 (define-public cl-ana.file-utils
8905 (sbcl-package->cl-source-package sbcl-cl-ana.file-utils))
8906
8907 (define-public ecl-cl-ana.file-utils
8908 (sbcl-package->ecl-package sbcl-cl-ana.file-utils))
8909
8910 (define-public sbcl-cl-ana.statistics
8911 (package
8912 (inherit sbcl-cl-ana-boot0)
8913 (name "sbcl-cl-ana.statistics")
8914 (inputs
8915 `(("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
8916 ("cl-ana.histogram" ,sbcl-cl-ana.histogram)
8917 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8918 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
8919 ("cl-ana.map" ,sbcl-cl-ana.map)))
8920 (arguments
8921 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8922 ((#:asd-file _ "") "statistics/cl-ana.statistics.asd")
8923 ((#:asd-system-name _ #f) "cl-ana.statistics")))))
8924
8925 (define-public cl-ana.statistics
8926 (sbcl-package->cl-source-package sbcl-cl-ana.statistics))
8927
8928 (define-public sbcl-cl-ana.gnuplot-interface
8929 (package
8930 (inherit sbcl-cl-ana-boot0)
8931 (name "sbcl-cl-ana.gnuplot-interface")
8932 (inputs
8933 `(("external-program" ,sbcl-external-program)))
8934 (arguments
8935 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8936 ((#:asd-file _ "") "gnuplot-interface/cl-ana.gnuplot-interface.asd")
8937 ((#:asd-system-name _ #f) "cl-ana.gnuplot-interface")))))
8938
8939 (define-public cl-ana.gnuplot-interface
8940 (sbcl-package->cl-source-package sbcl-cl-ana.gnuplot-interface))
8941
8942 (define-public ecl-cl-ana.gnuplot-interface
8943 (sbcl-package->ecl-package sbcl-cl-ana.gnuplot-interface))
8944
8945 (define-public sbcl-cl-ana.plotting
8946 (package
8947 (inherit sbcl-cl-ana-boot0)
8948 (name "sbcl-cl-ana.plotting")
8949 (inputs
8950 `(("alexandria" ,sbcl-alexandria)
8951 ("cl-ana.error-propogation" ,sbcl-cl-ana.error-propogation)
8952 ("cl-ana.functional-utils" ,sbcl-cl-ana.functional-utils)
8953 ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
8954 ("cl-ana.gnuplot-interface" ,sbcl-cl-ana.gnuplot-interface)
8955 ("cl-ana.histogram" ,sbcl-cl-ana.histogram)
8956 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8957 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
8958 ("cl-ana.map" ,sbcl-cl-ana.map)
8959 ("cl-ana.math-functions" ,sbcl-cl-ana.math-functions)
8960 ("cl-ana.pathname-utils" ,sbcl-cl-ana.pathname-utils)
8961 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
8962 ("cl-ana.tensor" ,sbcl-cl-ana.tensor)
8963 ("external-program" ,sbcl-external-program)
8964 ("split-sequence" ,sbcl-split-sequence)))
8965 (arguments
8966 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8967 ((#:asd-file _ "") "plotting/cl-ana.plotting.asd")
8968 ((#:asd-system-name _ #f) "cl-ana.plotting")))))
8969
8970 (define-public cl-ana.plotting
8971 (sbcl-package->cl-source-package sbcl-cl-ana.plotting))
8972
8973 (define-public sbcl-cl-ana.table-viewing
8974 (package
8975 (inherit sbcl-cl-ana-boot0)
8976 (name "sbcl-cl-ana.table-viewing")
8977 (inputs
8978 `(("alexandria" ,sbcl-alexandria)
8979 ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
8980 ("cl-ana.histogram" ,sbcl-cl-ana.histogram)
8981 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
8982 ("cl-ana.plotting" ,sbcl-cl-ana.plotting)
8983 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
8984 ("cl-ana.table" ,sbcl-cl-ana.table)))
8985 (arguments
8986 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8987 ((#:asd-file _ "") "table-viewing/cl-ana.table-viewing.asd")
8988 ((#:asd-system-name _ #f) "cl-ana.table-viewing")))))
8989
8990 (define-public cl-ana.table-viewing
8991 (sbcl-package->cl-source-package sbcl-cl-ana.table-viewing))
8992
8993 (define-public sbcl-cl-ana.serialization
8994 (package
8995 (inherit sbcl-cl-ana-boot0)
8996 (name "sbcl-cl-ana.serialization")
8997 (inputs
8998 `(("cl-ana.error-propogation" ,sbcl-cl-ana.error-propogation)
8999 ("cl-ana.hdf-utils" ,sbcl-cl-ana.hdf-utils)
9000 ("cl-ana.hdf-table" ,sbcl-cl-ana.hdf-table)
9001 ("cl-ana.histogram" ,sbcl-cl-ana.histogram)
9002 ("cl-ana.int-char" ,sbcl-cl-ana.int-char)
9003 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
9004 ("cl-ana.typespec" ,sbcl-cl-ana.typespec)))
9005 (arguments
9006 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9007 ((#:asd-file _ "") "serialization/cl-ana.serialization.asd")
9008 ((#:asd-system-name _ #f) "cl-ana.serialization")))))
9009
9010 (define-public cl-ana.serialization
9011 (sbcl-package->cl-source-package sbcl-cl-ana.serialization))
9012
9013 (define-public sbcl-cl-ana.makeres
9014 (package
9015 (inherit sbcl-cl-ana-boot0)
9016 (name "sbcl-cl-ana.makeres")
9017 (inputs
9018 `(("alexandria" ,sbcl-alexandria)
9019 ("cl-ana.error-propogation" ,sbcl-cl-ana.error-propogation)
9020 ("cl-ana.file-utils" ,sbcl-cl-ana.file-utils)
9021 ("cl-ana.functional-utils" ,sbcl-cl-ana.functional-utils)
9022 ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
9023 ("cl-ana.hash-table-utils" ,sbcl-cl-ana.hash-table-utils)
9024 ("cl-ana.hdf-utils" ,sbcl-cl-ana.hdf-utils)
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 ("cl-ana.memoization" ,sbcl-cl-ana.memoization)
9030 ("cl-ana.pathname-utils" ,sbcl-cl-ana.pathname-utils)
9031 ("cl-ana.plotting" ,sbcl-cl-ana.plotting)
9032 ("cl-ana.reusable-table" ,sbcl-cl-ana.reusable-table)
9033 ("cl-ana.serialization" ,sbcl-cl-ana.serialization)
9034 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
9035 ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)
9036 ("cl-ana.table" ,sbcl-cl-ana.table)
9037 ("external-program" ,sbcl-external-program)))
9038 (native-inputs
9039 `(("cl-fad" ,sbcl-cl-fad)))
9040 (arguments
9041 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9042 ((#:asd-file _ "") "makeres/cl-ana.makeres.asd")
9043 ((#:asd-system-name _ #f) "cl-ana.makeres")))))
9044
9045 (define-public cl-ana.makeres
9046 (sbcl-package->cl-source-package sbcl-cl-ana.makeres))
9047
9048 (define-public sbcl-cl-ana.makeres-macro
9049 (package
9050 (inherit sbcl-cl-ana-boot0)
9051 (name "sbcl-cl-ana.makeres-macro")
9052 (inputs
9053 `(("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
9054 ("cl-ana.makeres" ,sbcl-cl-ana.makeres)))
9055 (arguments
9056 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9057 ((#:asd-file _ "") "makeres-macro/cl-ana.makeres-macro.asd")
9058 ((#:asd-system-name _ #f) "cl-ana.makeres-macro")))))
9059
9060 (define-public cl-ana.makeres-macro
9061 (sbcl-package->cl-source-package sbcl-cl-ana.makeres-macro))
9062
9063 (define-public sbcl-cl-ana.makeres-block
9064 (package
9065 (inherit sbcl-cl-ana-boot0)
9066 (name "sbcl-cl-ana.makeres-block")
9067 (inputs
9068 `(("alexandria" ,sbcl-alexandria)
9069 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
9070 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
9071 ("cl-ana.makeres" ,sbcl-cl-ana.makeres)))
9072 (arguments
9073 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9074 ((#:asd-file _ "") "makeres-block/cl-ana.makeres-block.asd")
9075 ((#:asd-system-name _ #f) "cl-ana.makeres-block")))))
9076
9077 (define-public cl-ana.makeres-block
9078 (sbcl-package->cl-source-package sbcl-cl-ana.makeres-block))
9079
9080 (define-public sbcl-cl-ana.makeres-progress
9081 (package
9082 (inherit sbcl-cl-ana-boot0)
9083 (name "sbcl-cl-ana.makeres-progress")
9084 (inputs
9085 `(("alexandria" ,sbcl-alexandria)
9086 ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
9087 ("cl-ana.makeres" ,sbcl-cl-ana.makeres)))
9088 (arguments
9089 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9090 ((#:asd-file _ "") "makeres-progress/cl-ana.makeres-progress.asd")
9091 ((#:asd-system-name _ #f) "cl-ana.makeres-progress")))))
9092
9093 (define-public cl-ana.makeres-progress
9094 (sbcl-package->cl-source-package sbcl-cl-ana.makeres-progress))
9095
9096 (define-public sbcl-cl-ana.makeres-table
9097 (package
9098 (inherit sbcl-cl-ana-boot0)
9099 (name "sbcl-cl-ana.makeres-table")
9100 (inputs
9101 `(("cl-ana.csv-table" ,sbcl-cl-ana.csv-table)
9102 ("cl-ana.hash-table-utils" ,sbcl-cl-ana.hash-table-utils)
9103 ("cl-ana.hdf-table" ,sbcl-cl-ana.hdf-table)
9104 ("cl-ana.hdf-utils" ,sbcl-cl-ana.hdf-utils)
9105 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
9106 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
9107 ("cl-ana.makeres" ,sbcl-cl-ana.makeres)
9108 ("cl-ana.makeres-macro" ,sbcl-cl-ana.makeres-macro)
9109 ("cl-ana.memoization" ,sbcl-cl-ana.memoization)
9110 ("cl-ana.ntuple-table" ,sbcl-cl-ana.ntuple-table)
9111 ("cl-ana.reusable-table" ,sbcl-cl-ana.reusable-table)
9112 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
9113 ("cl-ana.table" ,sbcl-cl-ana.table)))
9114 (native-inputs
9115 `(("cl-fad" ,sbcl-cl-fad)))
9116 (arguments
9117 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9118 ((#:asd-file _ "") "makeres-table/cl-ana.makeres-table.asd")
9119 ((#:asd-system-name _ #f) "cl-ana.makeres-table")))))
9120
9121 (define-public cl-ana.makeres-table
9122 (sbcl-package->cl-source-package sbcl-cl-ana.makeres-table))
9123
9124 (define-public sbcl-cl-ana.makeres-graphviz
9125 (package
9126 (inherit sbcl-cl-ana-boot0)
9127 (name "sbcl-cl-ana.makeres-graphviz")
9128 (inputs
9129 `(("cl-ana.makeres" ,sbcl-cl-ana.makeres)
9130 ("external-program" ,sbcl-external-program)))
9131 (arguments
9132 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9133 ((#:asd-file _ "") "makeres-graphviz/cl-ana.makeres-graphviz.asd")
9134 ((#:asd-system-name _ #f) "cl-ana.makeres-graphviz")))))
9135
9136 (define-public cl-ana.makeres-graphviz
9137 (sbcl-package->cl-source-package sbcl-cl-ana.makeres-graphviz))
9138
9139 (define-public sbcl-cl-ana.makeres-branch
9140 (package
9141 (inherit sbcl-cl-ana-boot0)
9142 (name "sbcl-cl-ana.makeres-branch")
9143 (inputs
9144 `(("alexandria" ,sbcl-alexandria)
9145 ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
9146 ("cl-ana.hash-table-utils" ,sbcl-cl-ana.hash-table-utils)
9147 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
9148 ("cl-ana.map" ,sbcl-cl-ana.map)
9149 ("cl-ana.makeres" ,sbcl-cl-ana.makeres)))
9150 (arguments
9151 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9152 ((#:asd-file _ "") "makeres-branch/cl-ana.makeres-branch.asd")
9153 ((#:asd-system-name _ #f) "cl-ana.makeres-branch")))))
9154
9155 (define-public cl-ana.makeres-branch
9156 (sbcl-package->cl-source-package sbcl-cl-ana.makeres-branch))
9157
9158 (define-public sbcl-cl-ana.makeres-utils
9159 (package
9160 (inherit sbcl-cl-ana-boot0)
9161 (name "sbcl-cl-ana.makeres-utils")
9162 (inputs
9163 `(("alexandria" ,sbcl-alexandria)
9164 ("cl-ana.file-utils" ,sbcl-cl-ana.file-utils)
9165 ("cl-ana.fitting" ,sbcl-cl-ana.fitting)
9166 ("cl-ana.functional-utils" ,sbcl-cl-ana.functional-utils)
9167 ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
9168 ("cl-ana.histogram" ,sbcl-cl-ana.histogram)
9169 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
9170 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
9171 ("cl-ana.makeres" ,sbcl-cl-ana.makeres)
9172 ("cl-ana.map" ,sbcl-cl-ana.map)
9173 ("cl-ana.pathname-utils" ,sbcl-cl-ana.pathname-utils)
9174 ("cl-ana.plotting" ,sbcl-cl-ana.plotting)
9175 ("cl-ana.reusable-table" ,sbcl-cl-ana.reusable-table)
9176 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
9177 ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)
9178 ("cl-ana.table" ,sbcl-cl-ana.table)))
9179 (native-inputs
9180 `(("cl-fad" ,sbcl-cl-fad)))
9181 (arguments
9182 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9183 ((#:asd-file _ "") "makeres-utils/cl-ana.makeres-utils.asd")
9184 ((#:asd-system-name _ #f) "cl-ana.makeres-utils")))))
9185
9186 (define-public cl-ana.makeres-utils
9187 (sbcl-package->cl-source-package sbcl-cl-ana.makeres-utils))
9188
9189 (define-public sbcl-cl-ana.statistical-learning
9190 (package
9191 (inherit sbcl-cl-ana-boot0)
9192 (name "sbcl-cl-ana.statistical-learning")
9193 (inputs
9194 `(("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
9195 ("cl-ana.functional-utils" ,sbcl-cl-ana.functional-utils)
9196 ("cl-ana.histogram" ,sbcl-cl-ana.histogram)
9197 ("cl-ana.linear-algebra" ,sbcl-cl-ana.linear-algebra)
9198 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
9199 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
9200 ("cl-ana.math-functions" ,sbcl-cl-ana.math-functions)
9201 ("cl-ana.map" ,sbcl-cl-ana.map)
9202 ("cl-ana.statistics" ,sbcl-cl-ana.statistics)))
9203 (native-inputs
9204 `(("cl-fad" ,sbcl-cl-fad)))
9205 (arguments
9206 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9207 ((#:asd-file _ "")
9208 "statistical-learning/cl-ana.statistical-learning.asd")
9209 ((#:asd-system-name _ #f) "cl-ana.statistical-learning")))))
9210
9211 (define-public cl-ana.statistical-learning
9212 (sbcl-package->cl-source-package sbcl-cl-ana.statistical-learning))
9213
9214 (define-public sbcl-cl-ana
9215 (package
9216 (inherit sbcl-cl-ana-boot0)
9217 (name "sbcl-cl-ana")
9218 (inputs
9219 `(("cl-ana.binary-tree" ,sbcl-cl-ana.binary-tree)
9220 ("cl-ana.calculus" ,sbcl-cl-ana.calculus)
9221 ("cl-ana.clos-utils" ,sbcl-cl-ana.clos-utils)
9222 ("cl-ana.csv-table" ,sbcl-cl-ana.csv-table)
9223 ("cl-ana.error-propogation" ,sbcl-cl-ana.error-propogation)
9224 ("cl-ana.file-utils" ,sbcl-cl-ana.file-utils)
9225 ("cl-ana.fitting" ,sbcl-cl-ana.fitting)
9226 ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
9227 ("cl-ana.hash-table-utils" ,sbcl-cl-ana.hash-table-utils)
9228 ("cl-ana.hdf-table" ,sbcl-cl-ana.hdf-table)
9229 ("cl-ana.histogram" ,sbcl-cl-ana.histogram)
9230 ("cl-ana.int-char" ,sbcl-cl-ana.int-char)
9231 ("cl-ana.linear-algebra" ,sbcl-cl-ana.linear-algebra)
9232 ("cl-ana.lorentz" ,sbcl-cl-ana.lorentz)
9233 ("cl-ana.map" ,sbcl-cl-ana.map)
9234 ("cl-ana.makeres" ,sbcl-cl-ana.makeres)
9235 ("cl-ana.makeres-block" ,sbcl-cl-ana.makeres-block)
9236 ("cl-ana.makeres-branch" ,sbcl-cl-ana.makeres-branch)
9237 ("cl-ana.makeres-graphviz" ,sbcl-cl-ana.makeres-graphviz)
9238 ("cl-ana.makeres-macro" ,sbcl-cl-ana.makeres-macro)
9239 ("cl-ana.makeres-progress" ,sbcl-cl-ana.makeres-progress)
9240 ("cl-ana.makeres-table" ,sbcl-cl-ana.makeres-table)
9241 ("cl-ana.makeres-utils" ,sbcl-cl-ana.makeres-utils)
9242 ("cl-ana.math-functions" ,sbcl-cl-ana.math-functions)
9243 ("cl-ana.ntuple-table" ,sbcl-cl-ana.ntuple-table)
9244 ("cl-ana.package-utils" ,sbcl-cl-ana.package-utils)
9245 ("cl-ana.pathname-utils" ,sbcl-cl-ana.pathname-utils)
9246 ("cl-ana.plotting" ,sbcl-cl-ana.plotting)
9247 ("cl-ana.quantity" ,sbcl-cl-ana.quantity)
9248 ("cl-ana.reusable-table" ,sbcl-cl-ana.reusable-table)
9249 ("cl-ana.serialization" ,sbcl-cl-ana.serialization)
9250 ("cl-ana.statistics" ,sbcl-cl-ana.statistics)
9251 ("cl-ana.statistical-learning" ,sbcl-cl-ana.statistical-learning)
9252 ("cl-ana.table" ,sbcl-cl-ana.table)
9253 ("cl-ana.table-utils" ,sbcl-cl-ana.table-utils)
9254 ("cl-ana.table-viewing" ,sbcl-cl-ana.table-viewing)
9255 ("cl-ana.tensor" ,sbcl-cl-ana.tensor)
9256 ("libffi" ,libffi)))
9257 (native-inputs
9258 `(("cl-fad" ,sbcl-cl-fad)))
9259 (arguments
9260 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9261 ((#:asd-file _ "") "cl-ana.asd")
9262 ((#:asd-system-name _ #f) "cl-ana")))))
9263
9264 (define-public cl-ana
9265 (sbcl-package->cl-source-package sbcl-cl-ana))
9266
9267 (define-public sbcl-archive
9268 (let ((commit "631271c091ed02994bec3980cb288a2cf32c7cdc")
9269 (revision "1"))
9270 (package
9271 (name "sbcl-archive")
9272 (version (git-version "0.9" revision commit))
9273 (source (origin
9274 (method git-fetch)
9275 (uri (git-reference
9276 (url "https://github.com/sharplispers/archive.git")
9277 (commit commit)))
9278 (file-name (git-file-name name version))
9279 (sha256
9280 (base32
9281 "0pvsc9fmybx7rxd0kmzq4shi6hszdpwdc1sfy7jwyfxf8n3hnv4p"))))
9282 (build-system asdf-build-system/sbcl)
9283 (inputs
9284 `(("cl-fad" ,sbcl-cl-fad)
9285 ("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
9286 (synopsis "Common Lisp library for tar and cpio archives")
9287 (description
9288 "This is a Common Lisp library to read and write disk-based file
9289 archives such as those generated by the tar and cpio programs on Unix.")
9290 (home-page "https://github.com/sharplispers/archive")
9291 (license license:bsd-3))))
9292
9293 (define-public cl-archive
9294 (sbcl-package->cl-source-package sbcl-archive))
9295
9296 (define-public ecl-archive
9297 (sbcl-package->ecl-package sbcl-archive))
9298
9299 (define-public sbcl-misc-extensions
9300 (let ((commit "101c05112bf2f1e1bbf527396822d2f50ca6327a")
9301 (revision "1"))
9302 (package
9303 (name "sbcl-misc-extensions")
9304 (version (git-version "3.3" revision commit))
9305 (source
9306 (origin
9307 (method git-fetch)
9308 (uri (git-reference
9309 (url "https://gitlab.common-lisp.net/misc-extensions/devel.git")
9310 (commit commit)))
9311 (file-name (git-file-name name version))
9312 (sha256
9313 (base32
9314 "0gz5f4p70qzilnxsnf5lih2n9m4wjcw8hlw4w8mpn9jyhyppyyv0"))))
9315 (build-system asdf-build-system/sbcl)
9316 (synopsis "Collection of small macros and extensions for Common Lisp")
9317 (description
9318 "This project is intended as a catchall for small, general-purpose
9319 extensions to Common Lisp. It contains:
9320
9321 @itemize
9322 @item @code{new-let}, a macro that combines and generalizes @code{let},
9323 @code{let*} and @code{multiple-value-bind},
9324 @item @code{gmap}, an iteration macro that generalizes @code{map}.
9325 @end itemize\n")
9326 (home-page "https://common-lisp.net/project/misc-extensions/")
9327 (license license:public-domain))))
9328
9329 (define-public cl-misc-extensions
9330 (sbcl-package->cl-source-package sbcl-misc-extensions))
9331
9332 (define-public ecl-misc-extensions
9333 (sbcl-package->ecl-package sbcl-misc-extensions))
9334
9335 (define-public sbcl-mt19937
9336 (package
9337 (name "sbcl-mt19937")
9338 (version "1.1")
9339 (source
9340 (origin
9341 (method url-fetch)
9342 (uri (string-append "https://common-lisp.net/project/asdf-packaging/"
9343 "mt19937-latest.tar.gz"))
9344 (sha256
9345 (base32
9346 "1iw636b0iw5ygkv02y8i41lh7xj0acglv0hg5agryn0zzi2nf1xv"))))
9347 (build-system asdf-build-system/sbcl)
9348 (synopsis "Mersenne Twister pseudo-random number generator")
9349 (description
9350 "MT19937 is a portable Mersenne Twister pseudo-random number generator
9351 for Common Lisp.")
9352 (home-page "https://www.cliki.net/mt19937")
9353 (license license:public-domain)))
9354
9355 (define-public cl-mt19937
9356 (sbcl-package->cl-source-package sbcl-mt19937))
9357
9358 (define-public ecl-mt19937
9359 (sbcl-package->ecl-package sbcl-mt19937))
9360
9361 (define-public sbcl-fset
9362 (let ((commit "6d2f9ded8934d2b42f2571a0ba5bda091037d852")
9363 (revision "1"))
9364 (package
9365 (name "sbcl-fset")
9366 (version (git-version "1.3.2" revision commit))
9367 (source
9368 (origin
9369 (method git-fetch)
9370 (uri (git-reference
9371 (url "https://github.com/slburson/fset")
9372 (commit commit)))
9373 (file-name (git-file-name name version))
9374 (sha256
9375 (base32
9376 "127acblwrbqicx47h6sgvknz1cqyfn8p4xkhkn1m7hxh8w5gk1zy"))
9377 (snippet '(begin
9378 ;; Remove obsolete copy of system definition.
9379 (delete-file "Code/fset.asd")
9380 #t))))
9381 (build-system asdf-build-system/sbcl)
9382 (inputs
9383 `(("misc-extensions" ,sbcl-misc-extensions)
9384 ("mt19937" ,sbcl-mt19937)
9385 ("named-readtables" ,sbcl-named-readtables)))
9386 (synopsis "Functional set-theoretic collections library")
9387 (description
9388 "FSet is a functional set-theoretic collections library for Common Lisp.
9389 Functional means that all update operations return a new collection rather than
9390 modifying an existing one in place. Set-theoretic means that collections may
9391 be nested arbitrarily with no additional programmer effort; for instance, sets
9392 may contain sets, maps may be keyed by sets, etc.")
9393 (home-page "https://common-lisp.net/project/fset/Site/index.html")
9394 (license license:llgpl))))
9395
9396 (define-public cl-fset
9397 (sbcl-package->cl-source-package sbcl-fset))
9398
9399 (define-public sbcl-cl-cont
9400 (let ((commit "fc1fa7e6eb64894fdca13e688e6015fad5290d2a")
9401 (revision "1"))
9402 (package
9403 (name "sbcl-cl-cont")
9404 (version (git-version "0.3.8" revision commit))
9405 (source
9406 (origin
9407 (method git-fetch)
9408 (uri (git-reference
9409 (url "https://gitlab.common-lisp.net/cl-cont/cl-cont.git")
9410 (commit commit)))
9411 (file-name (git-file-name name version))
9412 (sha256
9413 (base32
9414 "1zf8zvb0i6jm3hhfks4w74hibm6avgc6f9s1qwgjrn2bcik8lrvz"))))
9415 (build-system asdf-build-system/sbcl)
9416 (inputs
9417 `(("alexandria" ,sbcl-alexandria)
9418 ("closer-mop" ,sbcl-closer-mop)))
9419 (native-inputs
9420 `(("rt" ,sbcl-rt)))
9421 (synopsis "Delimited continuations for Common Lisp")
9422 (description
9423 "This is a library that implements delimited continuations by
9424 transforming Common Lisp code to continuation passing style.")
9425 (home-page "https://common-lisp.net/project/cl-cont/")
9426 (license license:llgpl))))
9427
9428 (define-public cl-cont
9429 (sbcl-package->cl-source-package sbcl-cl-cont))
9430
9431 (define-public ecl-cl-cont
9432 (sbcl-package->ecl-package sbcl-cl-cont))
9433
9434 (define-public sbcl-cl-coroutine
9435 (let ((commit "de098f8d5debd8b14ef6864b5bdcbbf5ddbcfd72")
9436 (revision "1"))
9437 (package
9438 (name "sbcl-cl-coroutine")
9439 (version (git-version "0.1" revision commit))
9440 (source
9441 (origin
9442 (method git-fetch)
9443 (uri (git-reference
9444 (url "https://github.com/takagi/cl-coroutine.git")
9445 (commit commit)))
9446 (file-name (git-file-name name version))
9447 (sha256
9448 (base32
9449 "1cqdhdjxffgfs116l1swjlsmcbly0xgcgrckvaajd566idj9yj4l"))))
9450 (build-system asdf-build-system/sbcl)
9451 (inputs
9452 `(("alexandria" ,sbcl-alexandria)
9453 ("cl-cont" ,sbcl-cl-cont)))
9454 (native-inputs
9455 `(("prove" ,sbcl-prove)))
9456 (arguments
9457 `(;; TODO: Fix the tests. They fail with:
9458 ;; "Component CL-COROUTINE-ASD::CL-COROUTINE-TEST not found"
9459 #:tests? #f
9460 #:phases
9461 (modify-phases %standard-phases
9462 (add-after 'unpack 'fix-tests
9463 (lambda _
9464 (substitute* "cl-coroutine-test.asd"
9465 (("cl-test-more")
9466 "prove"))
9467 #t)))))
9468 (synopsis "Coroutine library for Common Lisp")
9469 (description
9470 "This is a coroutine library for Common Lisp implemented using the
9471 continuations of the @code{cl-cont} library.")
9472 (home-page "https://github.com/takagi/cl-coroutine")
9473 (license license:llgpl))))
9474
9475 (define-public cl-coroutine
9476 (sbcl-package->cl-source-package sbcl-cl-coroutine))
9477
9478 (define-public ecl-cl-coroutine
9479 (sbcl-package->ecl-package sbcl-cl-coroutine))
9480
9481 (define-public sbcl-vom
9482 (let ((commit "1aeafeb5b74c53741b79497e0ef4acf85c92ff24")
9483 (revision "1"))
9484 (package
9485 (name "sbcl-vom")
9486 (version (git-version "0.1.4" revision commit))
9487 (source
9488 (origin
9489 (method git-fetch)
9490 (uri (git-reference
9491 (url "https://github.com/orthecreedence/vom.git")
9492 (commit commit)))
9493 (file-name (git-file-name name version))
9494 (sha256
9495 (base32
9496 "0536kppj76ax4lrxhv42npkfjsmx45km2g439vf9jmw3apinz9cy"))))
9497 (build-system asdf-build-system/sbcl)
9498 (synopsis "Tiny logging utility for Common Lisp")
9499 (description
9500 "Vom is a logging library for Common Lisp. It's goal is to be useful
9501 and small. It does not provide a lot of features as other loggers do, but
9502 has a small codebase that's easy to understand and use.")
9503 (home-page "https://github.com/orthecreedence/vom")
9504 (license license:expat))))
9505
9506 (define-public cl-vom
9507 (sbcl-package->cl-source-package sbcl-vom))
9508
9509 (define-public ecl-vom
9510 (sbcl-package->ecl-package sbcl-vom))
9511
9512 (define-public sbcl-cl-libuv
9513 (let ((commit "32100c023c518038d0670a103eaa4d50dd785d29")
9514 (revision "1"))
9515 (package
9516 (name "sbcl-cl-libuv")
9517 (version (git-version "0.1.6" revision commit))
9518 (source
9519 (origin
9520 (method git-fetch)
9521 (uri (git-reference
9522 (url "https://github.com/orthecreedence/cl-libuv.git")
9523 (commit commit)))
9524 (file-name (git-file-name name version))
9525 (sha256
9526 (base32
9527 "1kwix4si8a8hza34ab2k7whrh7z0yrmx39v2wc3qblv9m244jkh1"))))
9528 (build-system asdf-build-system/sbcl)
9529 (inputs
9530 `(("alexandria" ,sbcl-alexandria)
9531 ("cffi" ,sbcl-cffi)
9532 ("cffi-grovel" ,sbcl-cffi-grovel)
9533 ("libuv" ,libuv)))
9534 (arguments
9535 `(#:phases
9536 (modify-phases %standard-phases
9537 (add-after 'unpack 'fix-paths
9538 (lambda* (#:key inputs #:allow-other-keys)
9539 (substitute* "lib.lisp"
9540 (("/usr/lib/libuv.so")
9541 (string-append (assoc-ref inputs "libuv")
9542 "/lib/libuv.so")))
9543 #t))
9544 (add-after 'fix-paths 'fix-system-definition
9545 (lambda _
9546 (substitute* "cl-libuv.asd"
9547 (("#:cffi #:alexandria")
9548 "#:cffi #:cffi-grovel #:alexandria"))
9549 #t)))))
9550 (synopsis "Common Lisp bindings to libuv")
9551 (description
9552 "This library provides low-level libuv bindings for Common Lisp.")
9553 (home-page "https://github.com/orthecreedence/cl-libuv")
9554 (license license:expat))))
9555
9556 (define-public cl-libuv
9557 (sbcl-package->cl-source-package sbcl-cl-libuv))
9558
9559 (define-public ecl-cl-libuv
9560 (sbcl-package->ecl-package sbcl-cl-libuv))
9561
9562 (define-public sbcl-cl-async-base
9563 (let ((commit "f6423e44404a44434d803605e0d2e17199158e28")
9564 (revision "1"))
9565 (package
9566 (name "sbcl-cl-async-base")
9567 (version (git-version "0.6.1" revision commit))
9568 (source
9569 (origin
9570 (method git-fetch)
9571 (uri (git-reference
9572 (url "https://github.com/orthecreedence/cl-async.git")
9573 (commit commit)))
9574 (file-name (git-file-name name version))
9575 (sha256
9576 (base32
9577 "11xi9dxb8mjgwzrkj88i0xkgk26z9w9ddxzbv6xsvfc1d4x5cf4x"))))
9578 (build-system asdf-build-system/sbcl)
9579 (inputs
9580 `(("bordeaux-threads" ,sbcl-bordeaux-threads)
9581 ("cffi" ,sbcl-cffi)
9582 ("cl-libuv" ,sbcl-cl-libuv)))
9583 (arguments
9584 `(#:asd-file "cl-async.asd"))
9585 (synopsis "Base system for cl-async")
9586 (description
9587 "Cl-async is a library for general purpose, non-blocking programming in
9588 Common Lisp. It uses the libuv library as backend.")
9589 (home-page "https://orthecreedence.github.io/cl-async/")
9590 (license license:expat))))
9591
9592 (define-public cl-async-base
9593 (sbcl-package->cl-source-package sbcl-cl-async-base))
9594
9595 (define-public ecl-cl-async-base
9596 (sbcl-package->ecl-package sbcl-cl-async-base))
9597
9598 (define-public sbcl-cl-async-util
9599 (package
9600 (inherit sbcl-cl-async-base)
9601 (name "sbcl-cl-async-util")
9602 (inputs
9603 `(("bordeaux-threads" ,sbcl-bordeaux-threads)
9604 ("cffi" ,sbcl-cffi)
9605 ("cl-async-base" ,sbcl-cl-async-base)
9606 ("cl-libuv" ,sbcl-cl-libuv)
9607 ("cl-ppcre" ,sbcl-cl-ppcre)
9608 ("fast-io" ,sbcl-fast-io)
9609 ("vom" ,sbcl-vom)))
9610 (synopsis "Internal utilities for cl-async")))
9611
9612 (define-public cl-async-util
9613 (sbcl-package->cl-source-package sbcl-cl-async-util))
9614
9615 (define-public ecl-cl-async-util
9616 (sbcl-package->ecl-package sbcl-cl-async-util))
9617
9618 (define-public sbcl-cl-async
9619 (package
9620 (inherit sbcl-cl-async-base)
9621 (name "sbcl-cl-async")
9622 (inputs
9623 `(("babel" ,sbcl-babel)
9624 ("cffi" ,sbcl-cffi)
9625 ("cl-async-base" ,sbcl-cl-async-base)
9626 ("cl-async-util" ,sbcl-cl-async-util)
9627 ("cl-libuv" ,sbcl-cl-libuv)
9628 ("cl-ppcre" ,sbcl-cl-ppcre)
9629 ("static-vectors" ,sbcl-static-vectors)
9630 ("trivial-features" ,sbcl-trivial-features)
9631 ("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
9632 (synopsis "Asynchronous operations for Common Lisp")))
9633
9634 (define-public cl-async
9635 (sbcl-package->cl-source-package sbcl-cl-async))
9636
9637 (define-public ecl-cl-async
9638 (sbcl-package->ecl-package sbcl-cl-async))
9639
9640 (define-public sbcl-cl-async-repl
9641 (package
9642 (inherit sbcl-cl-async-base)
9643 (name "sbcl-cl-async-repl")
9644 (inputs
9645 `(("bordeaux-threads" ,sbcl-bordeaux-threads)
9646 ("cl-async" ,sbcl-cl-async)))
9647 (arguments
9648 (substitute-keyword-arguments (package-arguments sbcl-cl-async-base)
9649 ((#:asd-file _ "") "cl-async-repl.asd")))
9650 (synopsis "REPL integration for cl-async")))
9651
9652 (define-public cl-async-repl
9653 (sbcl-package->cl-source-package sbcl-cl-async-repl))
9654
9655 (define-public ecl-cl-async-repl
9656 (sbcl-package->ecl-package sbcl-cl-async-repl))
9657
9658 (define-public sbcl-cl-async-ssl
9659 (package
9660 (inherit sbcl-cl-async-base)
9661 (name "sbcl-cl-async-ssl")
9662 (inputs
9663 `(("cffi" ,sbcl-cffi)
9664 ("cl-async" ,sbcl-cl-async)
9665 ("openssl" ,openssl)
9666 ("vom" ,sbcl-vom)))
9667 (arguments
9668 (substitute-keyword-arguments (package-arguments sbcl-cl-async-base)
9669 ((#:asd-file _ "") "cl-async-ssl.asd")
9670 ((#:phases phases '%standard-phases)
9671 `(modify-phases ,phases
9672 (add-after 'unpack 'fix-paths
9673 (lambda* (#:key inputs #:allow-other-keys)
9674 (substitute* "src/ssl/package.lisp"
9675 (("libcrypto\\.so")
9676 (string-append (assoc-ref inputs "openssl")
9677 "/lib/libcrypto.so"))
9678 (("libssl\\.so")
9679 (string-append (assoc-ref inputs "openssl")
9680 "/lib/libssl.so")))
9681 #t))))))
9682 (synopsis "SSL wrapper around cl-async socket implementation")))
9683
9684 (define-public cl-async-ssl
9685 (sbcl-package->cl-source-package sbcl-cl-async-ssl))
9686
9687 (define-public ecl-cl-async-ssl
9688 (sbcl-package->ecl-package sbcl-cl-async-ssl))
9689
9690 (define-public sbcl-blackbird
9691 (let ((commit "d361f81c1411dec07f6c2dcb11c78f7aea9aaca8")
9692 (revision "1"))
9693 (package
9694 (name "sbcl-blackbird")
9695 (version (git-version "0.5.2" revision commit))
9696 (source
9697 (origin
9698 (method git-fetch)
9699 (uri (git-reference
9700 (url "https://github.com/orthecreedence/blackbird.git")
9701 (commit commit)))
9702 (file-name (git-file-name name version))
9703 (sha256
9704 (base32
9705 "0xfds5yaya64arzr7w1x38karyz11swzbhxx1afldpradj9dh19c"))))
9706 (build-system asdf-build-system/sbcl)
9707 (inputs
9708 `(("vom" ,sbcl-vom)))
9709 (native-inputs
9710 `(("cl-async" ,sbcl-cl-async)
9711 ("fiveam" ,sbcl-fiveam)))
9712 (synopsis "Promise implementation for Common Lisp")
9713 (description
9714 "This is a standalone promise implementation for Common Lisp. It is
9715 the successor to the now-deprecated cl-async-future project.")
9716 (home-page "https://orthecreedence.github.io/blackbird/")
9717 (license license:expat))))
9718
9719 (define-public cl-blackbird
9720 (sbcl-package->cl-source-package sbcl-blackbird))
9721
9722 (define-public ecl-blackbird
9723 (sbcl-package->ecl-package sbcl-blackbird))
9724
9725 (define-public sbcl-cl-async-future
9726 (let ((commit "ee36c22a69a9516407458d2ed8b475f1fc473959")
9727 (revision "1"))
9728 (package
9729 (name "sbcl-cl-async-future")
9730 (version (git-version "0.4.4.1" revision commit))
9731 (source
9732 (origin
9733 (method git-fetch)
9734 (uri (git-reference
9735 (url "https://github.com/orthecreedence/cl-async-future.git")
9736 (commit commit)))
9737 (file-name (git-file-name name version))
9738 (sha256
9739 (base32
9740 "0z0sc7qlzzxk99f4l26zp6rai9kv0kj0f599sxai5s44p17zbbvh"))))
9741 (build-system asdf-build-system/sbcl)
9742 (inputs
9743 `(("blackbird" ,sbcl-blackbird)))
9744 (native-inputs
9745 `(("cl-async" ,sbcl-cl-async)
9746 ("eos" ,sbcl-eos)))
9747 (synopsis "Futures implementation for Common Lisp")
9748 (description
9749 "This is futures implementation for Common Lisp. It plugs in nicely
9750 to cl-async.")
9751 (home-page "https://orthecreedence.github.io/cl-async/future")
9752 (license license:expat))))
9753
9754 (define-public cl-async-future
9755 (sbcl-package->cl-source-package sbcl-cl-async-future))
9756
9757 (define-public ecl-cl-async-future
9758 (sbcl-package->ecl-package sbcl-cl-async-future))
9759
9760 (define-public sbcl-green-threads
9761 (let ((commit "fff5ebecb441a37e5c511773716aafd84a3c5840")
9762 (revision "1"))
9763 (package
9764 (name "sbcl-green-threads")
9765 (version (git-version "0.3" revision commit))
9766 (source
9767 (origin
9768 (method git-fetch)
9769 (uri (git-reference
9770 (url "https://github.com/thezerobit/green-threads.git")
9771 (commit commit)))
9772 (file-name (git-file-name name version))
9773 (sha256
9774 (base32
9775 "1czw7nr0dwfps76h8hjvglk1wdh53yqbfbvv30whwbgqx33iippz"))))
9776 (build-system asdf-build-system/sbcl)
9777 (inputs
9778 `(("cl-async-future" ,sbcl-cl-async-future)
9779 ("cl-cont" ,sbcl-cl-cont)))
9780 (native-inputs
9781 `(("prove" ,sbcl-prove)))
9782 (arguments
9783 `(;; TODO: Fix the tests. They fail with:
9784 ;; "The function BLACKBIRD::PROMISE-VALUES is undefined"
9785 #:tests? #f
9786 #:phases
9787 (modify-phases %standard-phases
9788 (add-after 'unpack 'fix-tests
9789 (lambda _
9790 (substitute* "green-threads-test.asd"
9791 (("cl-test-more")
9792 "prove"))
9793 #t)))))
9794 (synopsis "Cooperative multitasking library for Common Lisp")
9795 (description
9796 "This library allows for cooperative multitasking with help of cl-cont
9797 for continuations. It tries to mimic the API of bordeaux-threads as much as
9798 possible.")
9799 (home-page "https://github.com/thezerobit/green-threads")
9800 (license license:bsd-3))))
9801
9802 (define-public cl-green-threads
9803 (sbcl-package->cl-source-package sbcl-green-threads))
9804
9805 (define-public ecl-green-threads
9806 (sbcl-package->ecl-package sbcl-green-threads))
9807
9808 (define-public sbcl-cl-base32
9809 (let ((commit "8cdee06fab397f7b0a19583b57e7f0c98405be85")
9810 (revision "1"))
9811 (package
9812 (name "sbcl-cl-base32")
9813 (version (git-version "0.1" revision commit))
9814 (source
9815 (origin
9816 (method git-fetch)
9817 (uri (git-reference
9818 (url "https://github.com/hargettp/cl-base32.git")
9819 (commit commit)))
9820 (file-name (git-file-name name version))
9821 (sha256
9822 (base32 "17jrng8jb05d64ggyd11hp308c2fl5drvf9g175blgrkkl8l4mf8"))))
9823 (build-system asdf-build-system/sbcl)
9824 (native-inputs
9825 `(("lisp-unit" ,sbcl-lisp-unit)))
9826 (synopsis "Common Lisp library for base32 encoding and decoding")
9827 (description
9828 "This package provides functions for base32 encoding and decoding as
9829 defined in RFC4648.")
9830 (home-page "https://github.com/hargettp/cl-base32")
9831 (license license:expat))))
9832
9833 (define-public cl-base32
9834 (sbcl-package->cl-source-package sbcl-cl-base32))
9835
9836 (define-public ecl-cl-base32
9837 (sbcl-package->ecl-package sbcl-cl-base32))
9838
9839 (define-public sbcl-cl-z85
9840 (let ((commit "85b3951a9cfa2603acb6aee15567684f9a108098")
9841 (revision "1"))
9842 (package
9843 (name "sbcl-cl-z85")
9844 (version (git-version "1.0" revision commit))
9845 (source
9846 (origin
9847 (method git-fetch)
9848 (uri (git-reference
9849 (url "https://github.com/glv2/cl-z85.git")
9850 (commit commit)))
9851 (file-name (git-file-name name version))
9852 (sha256
9853 (base32 "0r27pidjaxbm7k1rr90nnajwl5xm2kp65g1fv0fva17lzy45z1mp"))))
9854 (build-system asdf-build-system/sbcl)
9855 (native-inputs
9856 `(("cl-octet-streams" ,sbcl-cl-octet-streams)
9857 ("fiveam" ,sbcl-fiveam)))
9858 (synopsis "Common Lisp library for Z85 encoding and decoding")
9859 (description
9860 "This package provides functions to encode or decode byte vectors or
9861 byte streams using the Z85 format, which is a base-85 encoding used by
9862 ZeroMQ.")
9863 (home-page "https://github.com/glv2/cl-z85")
9864 (license license:gpl3+))))
9865
9866 (define-public cl-z85
9867 (sbcl-package->cl-source-package sbcl-cl-z85))
9868
9869 (define-public ecl-cl-z85
9870 (sbcl-package->ecl-package sbcl-cl-z85))
9871
9872 (define-public sbcl-ltk
9873 (package
9874 (name "sbcl-ltk")
9875 (version "0.992")
9876 (source
9877 (origin
9878 (method git-fetch)
9879 (uri (git-reference
9880 (url "https://github.com/herth/ltk.git")
9881 (commit version)))
9882 (file-name (git-file-name name version))
9883 (sha256
9884 (base32 "13l2q4mskzilya9xh5wy2xvy30lwn104bd8wrq6ifds56r82iy3x"))))
9885 (build-system asdf-build-system/sbcl)
9886 (inputs
9887 `(("imagemagick" ,imagemagick)
9888 ("tk" ,tk)))
9889 (arguments
9890 `(#:asd-file "ltk/ltk.asd"
9891 #:tests? #f
9892 #:phases (modify-phases %standard-phases
9893 (add-after 'unpack 'fix-paths
9894 (lambda* (#:key inputs #:allow-other-keys)
9895 (substitute* "ltk/ltk.lisp"
9896 (("#-freebsd \"wish\"")
9897 (string-append "#-freebsd \""
9898 (assoc-ref inputs "tk")
9899 "/bin/wish\""))
9900 (("do-execute \"convert\"")
9901 (string-append "do-execute \""
9902 (assoc-ref inputs "imagemagick")
9903 "/bin/convert\"")))
9904 #t)))))
9905 (synopsis "Common Lisp bindings for the Tk GUI toolkit")
9906 (description
9907 "LTK is a Common Lisp binding for the Tk graphics toolkit. It is written
9908 in pure Common Lisp and does not require any Tk knowledge for its usage.")
9909 (home-page "http://www.peter-herth.de/ltk/")
9910 (license license:llgpl)))
9911
9912 (define-public cl-ltk
9913 (sbcl-package->cl-source-package sbcl-ltk))
9914
9915 (define-public ecl-ltk
9916 (sbcl-package->ecl-package sbcl-ltk))
9917
9918 (define-public sbcl-ltk-mw
9919 (package
9920 (inherit sbcl-ltk)
9921 (name "sbcl-ltk-mw")
9922 (inputs
9923 `(("ltk" ,sbcl-ltk)))
9924 (arguments
9925 (substitute-keyword-arguments (package-arguments sbcl-ltk)
9926 ((#:asd-file _) "ltk/ltk-mw.asd")
9927 ((#:phases _) '%standard-phases)))
9928 (synopsis "Extra widgets for LTK")
9929 (description
9930 "This is a collection of higher-level widgets built on top of LTK.")))
9931
9932 (define-public cl-ltk-mw
9933 (sbcl-package->cl-source-package sbcl-ltk-mw))
9934
9935 (define-public ecl-ltk-mw
9936 (sbcl-package->ecl-package sbcl-ltk-mw))
9937
9938 (define-public sbcl-ltk-remote
9939 (package
9940 (inherit sbcl-ltk)
9941 (name "sbcl-ltk-remote")
9942 (inputs
9943 `(("ltk" ,sbcl-ltk)))
9944 (arguments
9945 (substitute-keyword-arguments (package-arguments sbcl-ltk)
9946 ((#:asd-file _) "ltk/ltk-remote.asd")
9947 ((#:phases _) '%standard-phases)))
9948 (synopsis "Remote GUI support for LTK")
9949 (description
9950 "This LTK extension allows the GUI to be displayed on a computer different
9951 from the one running the Lisp program by using a TCP connection.")))
9952
9953 (define-public cl-ltk-remote
9954 (sbcl-package->cl-source-package sbcl-ltk-remote))
9955
9956 (define-public sbcl-cl-lex
9957 (let ((commit "f2dbbe25ef553005fb402d9a6203180c3fa1093b")
9958 (revision "1"))
9959 (package
9960 (name "sbcl-cl-lex")
9961 (version (git-version "1.1.3" revision commit))
9962 (source
9963 (origin
9964 (method git-fetch)
9965 (uri (git-reference
9966 (url "https://github.com/djr7C4/cl-lex.git")
9967 (commit commit)))
9968 (file-name (git-file-name name version))
9969 (sha256
9970 (base32 "1kg50f76bfpfxcv4dfivq1n9a0xlsra2ajb0vd68lxwgbidgyc2y"))))
9971 (build-system asdf-build-system/sbcl)
9972 (inputs
9973 `(("cl-ppcre" ,sbcl-cl-ppcre)))
9974 (synopsis "Common Lisp macros for generating lexical analyzers")
9975 (description
9976 "This is a Common Lisp library providing a set of macros for generating
9977 lexical analyzers automatically. The lexers generated using @code{cl-lex} can
9978 be used with @code{cl-yacc}.")
9979 (home-page "https://github.com/djr7C4/cl-lex")
9980 (license license:gpl3))))
9981
9982 (define-public cl-lex
9983 (sbcl-package->cl-source-package sbcl-cl-lex))
9984
9985 (define-public ecl-cl-lex
9986 (sbcl-package->ecl-package sbcl-cl-lex))
9987
9988 (define-public sbcl-clunit2
9989 (let ((commit "5e28343734eb9b7aee39306a614af92c1062d50b")
9990 (revision "1"))
9991 (package
9992 (name "sbcl-clunit2")
9993 (version (git-version "0.2.4" revision commit))
9994 (source
9995 (origin
9996 (method git-fetch)
9997 (uri (git-reference
9998 (url "https://notabug.org/cage/clunit2.git")
9999 (commit commit)))
10000 (file-name (git-file-name name version))
10001 (sha256
10002 (base32 "1ngiapfki6nm8a555mzhb5p7ch79i3w665za5bmb5j7q34fy80vw"))))
10003 (build-system asdf-build-system/sbcl)
10004 (synopsis "Unit testing framework for Common Lisp")
10005 (description
10006 "CLUnit is a Common Lisp unit testing framework. It is designed to be
10007 easy to use so that you can quickly start testing.")
10008 (home-page "https://notabug.org/cage/clunit2")
10009 (license license:expat))))
10010
10011 (define-public cl-clunit2
10012 (sbcl-package->cl-source-package sbcl-clunit2))
10013
10014 (define-public ecl-clunit2
10015 (sbcl-package->ecl-package sbcl-clunit2))
10016
10017 (define-public sbcl-cl-colors2
10018 (let ((commit "795aedee593b095fecde574bd999b520dd03ed24")
10019 (revision "1"))
10020 (package
10021 (name "sbcl-cl-colors2")
10022 (version (git-version "0.2.1" revision commit))
10023 (source
10024 (origin
10025 (method git-fetch)
10026 (uri (git-reference
10027 (url "https://notabug.org/cage/cl-colors2.git")
10028 (commit commit)))
10029 (file-name (git-file-name name version))
10030 (sha256
10031 (base32 "0hlyf4h5chkjdp9armla5w4kw5acikk159sym7y8c4jbjp9x47ih"))))
10032 (build-system asdf-build-system/sbcl)
10033 (native-inputs
10034 `(("clunit2" ,sbcl-clunit2)))
10035 (inputs
10036 `(("alexandria" ,sbcl-alexandria)
10037 ("cl-ppcre" ,sbcl-cl-ppcre)))
10038 (synopsis "Color library for Common Lisp")
10039 (description
10040 "This is a very simple color library for Common Lisp, providing:
10041
10042 @itemize
10043 @item Types for representing colors in HSV and RGB spaces.
10044 @item Simple conversion functions between the above types (and also
10045 hexadecimal representation for RGB).
10046 @item Some predefined colors (currently X11 color names -- of course
10047 the library does not depend on X11).
10048 @end itemize\n")
10049 (home-page "https://notabug.org/cage/cl-colors2")
10050 (license license:boost1.0))))
10051
10052 (define-public cl-colors2
10053 (sbcl-package->cl-source-package sbcl-cl-colors2))
10054
10055 (define-public ecl-cl-colors2
10056 (sbcl-package->ecl-package sbcl-cl-colors2))
10057
10058 (define-public sbcl-cl-jpeg
10059 (let ((commit "ec557038128df6895fbfb743bfe8faf8ec2534af")
10060 (revision "1"))
10061 (package
10062 (name "sbcl-cl-jpeg")
10063 (version (git-version "2.8" revision commit))
10064 (source
10065 (origin
10066 (method git-fetch)
10067 (uri (git-reference
10068 (url "https://github.com/sharplispers/cl-jpeg.git")
10069 (commit commit)))
10070 (file-name (git-file-name name version))
10071 (sha256
10072 (base32 "1bkkiqz8fqldlj1wbmrccjsvxcwj98h6s4b6gslr3cg2wmdv5xmy"))))
10073 (build-system asdf-build-system/sbcl)
10074 (synopsis "JPEG image library for Common Lisp")
10075 (description
10076 "This is a baseline JPEG codec written in Common Lisp. It can be used
10077 for reading and writing JPEG image files.")
10078 (home-page "https://github.com/sharplispers/cl-jpeg")
10079 (license license:bsd-3))))
10080
10081 (define-public cl-jpeg
10082 (sbcl-package->cl-source-package sbcl-cl-jpeg))
10083
10084 (define-public ecl-cl-jpeg
10085 (sbcl-package->ecl-package sbcl-cl-jpeg))
10086
10087 (define-public sbcl-nodgui
10088 (let ((commit "bc59ed9b787dfc9e68ae3bd7f7e8507c5c619212")
10089 (revision "1"))
10090 (package
10091 (name "sbcl-nodgui")
10092 (version (git-version "0.0.5" revision commit))
10093 (source
10094 (origin
10095 (method git-fetch)
10096 (uri (git-reference
10097 (url "https://notabug.org/cage/nodgui.git")
10098 (commit commit)))
10099 (file-name (git-file-name name version))
10100 (sha256
10101 (base32 "0xx0dk54d882i598ydnwmy7mnfk0b7vib3ddsgpqxhjck1rwq8l8"))))
10102 (build-system asdf-build-system/sbcl)
10103 (inputs
10104 `(("alexandria" ,sbcl-alexandria)
10105 ("bordeaux-threads" ,sbcl-bordeaux-threads)
10106 ("cl-colors2" ,sbcl-cl-colors2)
10107 ("cl-jpeg" ,sbcl-cl-jpeg)
10108 ("cl-lex" ,sbcl-cl-lex)
10109 ("cl-ppcre-unicode" ,sbcl-cl-ppcre-unicode)
10110 ("cl-unicode" ,sbcl-cl-unicode)
10111 ("cl-yacc" ,sbcl-cl-yacc)
10112 ("clunit2" ,sbcl-clunit2)
10113 ("named-readtables" ,sbcl-named-readtables)
10114 ("parse-number" ,sbcl-parse-number)
10115 ("tk" ,tk)))
10116 (arguments
10117 `(#:phases (modify-phases %standard-phases
10118 (add-after 'unpack 'fix-paths
10119 (lambda* (#:key inputs #:allow-other-keys)
10120 (substitute* "src/wish-communication.lisp"
10121 (("#-freebsd \"wish\"")
10122 (string-append "#-freebsd \""
10123 (assoc-ref inputs "tk")
10124 "/bin/wish\"")))
10125 #t)))))
10126 (synopsis "Common Lisp bindings for the Tk GUI toolkit")
10127 (description
10128 "Nodgui (@emph{No Drama GUI}) is a Common Lisp binding for the Tk GUI
10129 toolkit. It also provides a few additional widgets more than the standard Tk
10130 ones.")
10131 (home-page "https://www.autistici.org/interzona/nodgui.html")
10132 (license license:llgpl))))
10133
10134 (define-public cl-nodgui
10135 (sbcl-package->cl-source-package sbcl-nodgui))
10136
10137 (define-public ecl-nodgui
10138 (sbcl-package->ecl-package sbcl-nodgui))
10139
10140 (define-public sbcl-salza2
10141 (package
10142 (name "sbcl-salza2")
10143 (version "2.0.9")
10144 (source
10145 (origin
10146 (method git-fetch)
10147 (uri (git-reference
10148 (url "https://github.com/xach/salza2.git")
10149 (commit (string-append "release-" version))))
10150 (file-name (git-file-name name version))
10151 (sha256
10152 (base32 "0p38rj4gq7j5k807php7hrz7l2zyyfshv8i9yms7i8lkgg3433ki"))))
10153 (build-system asdf-build-system/sbcl)
10154 (synopsis "Common Lisp library for zlib, deflate and gzip compression")
10155 (description
10156 "Salza2 is a Common Lisp library for creating compressed data in the zlib,
10157 deflate, or gzip data formats, described in RFC 1950, RFC 1951, and RFC 1952,
10158 respectively.")
10159 (home-page "https://www.xach.com/lisp/salza2/")
10160 (license license:bsd-2)))
10161
10162 (define-public cl-salza2
10163 (sbcl-package->cl-source-package sbcl-salza2))
10164
10165 (define-public ecl-salza2
10166 (sbcl-package->ecl-package sbcl-salza2))
10167
10168 (define-public sbcl-png-read
10169 (let ((commit "ec29f38a689972b9f1373f13bbbcd6b05deada88")
10170 (revision "1"))
10171 (package
10172 (name "sbcl-png-read")
10173 (version (git-version "0.3.1" revision commit))
10174 (source
10175 (origin
10176 (method git-fetch)
10177 (uri (git-reference
10178 (url "https://github.com/Ramarren/png-read.git")
10179 (commit commit)))
10180 (file-name (git-file-name name version))
10181 (sha256
10182 (base32 "0vyczbcwskrygrf1hgrsnk0jil8skmvf1kiaalw5jps4fjrfdkw0"))))
10183 (build-system asdf-build-system/sbcl)
10184 (inputs
10185 `(("babel" ,sbcl-babel)
10186 ("chipz" ,sbcl-chipz)
10187 ("iterate" ,sbcl-iterate)))
10188 (synopsis "PNG decoder for Common Lisp")
10189 (description "This is a Common Lisp library for reading PNG images.")
10190 (home-page "https://github.com/Ramarren/png-read")
10191 (license license:bsd-3))))
10192
10193 (define-public cl-png-read
10194 (sbcl-package->cl-source-package sbcl-png-read))
10195
10196 (define-public ecl-png-read
10197 (sbcl-package->ecl-package sbcl-png-read))
10198
10199 (define-public sbcl-zpng
10200 (package
10201 (name "sbcl-zpng")
10202 (version "1.2.2")
10203 (source
10204 (origin
10205 (method git-fetch)
10206 (uri (git-reference
10207 (url "https://github.com/xach/zpng.git")
10208 (commit (string-append "release-" version))))
10209 (file-name (git-file-name name version))
10210 (sha256
10211 (base32 "0b3ag3jhl3z7kdls3ahdsdxsfhhw5qrizk769984f4wkxhb69rcm"))))
10212 (build-system asdf-build-system/sbcl)
10213 (inputs
10214 `(("salza2" ,sbcl-salza2)))
10215 (synopsis "PNG encoder for Common Lisp")
10216 (description "This is a Common Lisp library for creating PNG images.")
10217 (home-page "https://www.xach.com/lisp/zpng/")
10218 (license license:bsd-2)))
10219
10220 (define-public cl-zpng
10221 (sbcl-package->cl-source-package sbcl-zpng))
10222
10223 (define-public ecl-zpng
10224 (sbcl-package->ecl-package sbcl-zpng))
10225
10226 (define-public sbcl-cl-qrencode
10227 (package
10228 (name "sbcl-cl-qrencode")
10229 (version "0.1.2")
10230 (source
10231 (origin
10232 (method git-fetch)
10233 (uri (git-reference
10234 (url "https://github.com/jnjcc/cl-qrencode.git")
10235 (commit (string-append "v" version))))
10236 (file-name (git-file-name name version))
10237 (sha256
10238 (base32 "1l5k131dchbf6cj8a8xqa731790p01p3qa1kdy2wa9dawy3ymkxr"))))
10239 (build-system asdf-build-system/sbcl)
10240 (native-inputs
10241 `(("lisp-unit" ,sbcl-lisp-unit)))
10242 (inputs
10243 `(("zpng" ,sbcl-zpng)))
10244 (synopsis "QR code encoder for Common Lisp")
10245 (description
10246 "This Common Lisp library provides function to make QR codes and to save
10247 them as PNG files.")
10248 (home-page "https://github.com/jnjcc/cl-qrencode")
10249 (license license:gpl2+)))
10250
10251 (define-public cl-qrencode
10252 (sbcl-package->cl-source-package sbcl-cl-qrencode))
10253
10254 (define-public ecl-cl-qrencode
10255 (sbcl-package->ecl-package sbcl-cl-qrencode))
10256
10257 (define-public sbcl-hdf5-cffi
10258 (let ((commit "5b5c88f191e470e4fe96b462334e3ce0806eed5c")
10259 (revision "1"))
10260 (package
10261 (name "sbcl-hdf5-cffi")
10262 (version (git-version "1.8.18" revision commit))
10263 (source
10264 (origin
10265 (method git-fetch)
10266 (uri (git-reference
10267 (url "https://github.com/hdfgroup/hdf5-cffi.git")
10268 (commit commit)))
10269 (file-name (git-file-name name version))
10270 (sha256
10271 (base32
10272 "0vda3075423xz83qky998lpac5b04dwfv7bwgh9jq8cs5v0zrxjf"))))
10273 (build-system asdf-build-system/sbcl)
10274 (synopsis "Common Lisp bindings for the HDF5 library")
10275 (description
10276 "@code{hdf5-cffi} is a CFFI wrapper for the HDF5 library.")
10277 (home-page "https://github.com/hdfgroup/hdf5-cffi")
10278 (license (license:non-copyleft
10279 (string-append "https://github.com/HDFGroup/hdf5-cffi/raw/"
10280 commit
10281 "/LICENSE")))
10282 (inputs
10283 `(("cffi" ,sbcl-cffi)
10284 ("cffi-grovel" ,sbcl-cffi-grovel)
10285 ("hdf5" ,hdf5-1.10)))
10286 (native-inputs
10287 `(("fiveam" ,sbcl-fiveam)))
10288 (arguments
10289 `(#:asd-system-name "hdf5-cffi"
10290 #:asd-file "hdf5-cffi.asd"
10291 #:test-asd-file "hdf5-cffi.test.asd"
10292 ;; Tests depend on hdf5-cffi.examples.asd in addition to hdf5-cffi.asd,
10293 ;; I don't know if there is a way to tell asdf-build-system to load
10294 ;; an additional system first, so tests are disabled.
10295 #:tests? #f
10296 #:phases
10297 (modify-phases %standard-phases
10298 (add-after 'unpack 'fix-paths
10299 (lambda* (#:key inputs #:allow-other-keys)
10300 (substitute* "src/library.lisp"
10301 (("libhdf5.so")
10302 (string-append
10303 (assoc-ref inputs "hdf5")
10304 "/lib/libhdf5.so")))))
10305 (add-after 'unpack 'fix-dependencies
10306 (lambda* (#:key inputs #:allow-other-keys)
10307 (substitute* "hdf5-cffi.asd"
10308 ((":depends-on \\(:cffi\\)")
10309 ":depends-on (:cffi :cffi-grovel)"))
10310 (substitute* "hdf5-cffi.test.asd"
10311 ((":depends-on \\(:cffi :hdf5-cffi")
10312 ":depends-on (:cffi :cffi-grovel :hdf5-cffi"))))))))))
10313
10314 (define-public cl-hdf5-cffi
10315 (sbcl-package->cl-source-package sbcl-hdf5-cffi))
10316
10317 (define-public ecl-hdf5-cffi
10318 (sbcl-package->ecl-package sbcl-hdf5-cffi))
10319
10320 (define-public sbcl-cl-randist
10321 (package
10322 (name "sbcl-cl-randist")
10323 (version "0.4.2")
10324 (source
10325 (origin
10326 (method git-fetch)
10327 (uri (git-reference
10328 (url "https://github.com/lvaruzza/cl-randist.git")
10329 (commit "f088a54b540a7adefab7c04094a6103f9edda3d0")))
10330 (file-name (git-file-name name version))
10331 (sha256
10332 (base32
10333 "0l8hyd6nbxb7f50vyxz3rbbm7kgr1fnadc40jywy4xj5vi5kpj5g"))))
10334 (build-system asdf-build-system/sbcl)
10335 (synopsis "Random distributions for Common Lisp")
10336 (description
10337 "Manual translation from C to Common Lisp of some random number
10338 generation functions from the GSL library.")
10339 (home-page "https://github.com/lvaruzza/cl-randist")
10340 (license license:bsd-2)
10341 (arguments
10342 `(#:asd-system-name "cl-randist"
10343 #:asd-file "cl-randist.asd"
10344 #:tests? #f))))
10345
10346 (define-public cl-randist
10347 (sbcl-package->cl-source-package sbcl-cl-randist))
10348
10349 (define-public ecl-cl-randist
10350 (sbcl-package->ecl-package sbcl-cl-randist))
10351
10352 (define-public sbcl-float-features
10353 (package
10354 (name "sbcl-float-features")
10355 (version "1.0.0")
10356 (source
10357 (origin
10358 (method git-fetch)
10359 (uri (git-reference
10360 (url "https://github.com/Shinmera/float-features.git")
10361 (commit "d3ef60181635b0849aa28cfc238053b7ca4644b0")))
10362 (file-name (git-file-name name version))
10363 (sha256
10364 (base32
10365 "0yj419k7n59x6rh3grwr6frgwwyria2il6f7wxpfazm8cskv4lzr"))))
10366 (build-system asdf-build-system/sbcl)
10367 (synopsis "Common Lisp IEEE float portability library")
10368 (description
10369 "Portability library for IEEE float features that are not
10370 covered by the Common Lisp standard.")
10371 (home-page "https://github.com/Shinmera/float-features")
10372 (license license:zlib)
10373 (inputs
10374 `(("documentation-utils" ,sbcl-documentation-utils)))
10375 (arguments
10376 `(#:asd-system-name "float-features"
10377 #:asd-file "float-features.asd"
10378 #:tests? #f))))
10379
10380 (define-public cl-float-features
10381 (sbcl-package->cl-source-package sbcl-float-features))
10382
10383 (define-public ecl-float-features
10384 (sbcl-package->ecl-package sbcl-float-features))
10385
10386 (define-public sbcl-function-cache
10387 (package
10388 (name "sbcl-function-cache")
10389 (version "1.0.3")
10390 (source
10391 (origin
10392 (method git-fetch)
10393 (uri (git-reference
10394 (url "https://github.com/AccelerationNet/function-cache.git")
10395 (commit "6a5ada401e57da2c8abf046f582029926e61fce8")))
10396 (file-name (git-file-name name version))
10397 (sha256
10398 (base32
10399 "000vmd3f5rx5hs9nvphfric0gkzaadns31c6mxaslpv0k7pkrmc6"))))
10400 (build-system asdf-build-system/sbcl)
10401 (synopsis "Function caching / memoization library for Common Lisp")
10402 (description
10403 "A common lisp library that provides extensible function result
10404 caching based on arguments (an expanded form of memoization).")
10405 (home-page "https://github.com/AccelerationNet/function-cache")
10406 (license
10407 (license:non-copyleft
10408 "https://github.com/AccelerationNet/function-cache/blob/master/README.md"))
10409 (inputs
10410 `(("alexandria" ,sbcl-alexandria)
10411 ("cl-interpol" ,sbcl-cl-interpol)
10412 ("iterate" ,sbcl-iterate)
10413 ("symbol-munger" ,sbcl-symbol-munger)
10414 ("closer-mop" ,sbcl-closer-mop)))
10415 (arguments
10416 `(#:asd-system-name "function-cache"
10417 #:asd-file "function-cache.asd"
10418 #:tests? #f))))
10419
10420 (define-public cl-function-cache
10421 (sbcl-package->cl-source-package sbcl-function-cache))
10422
10423 (define-public ecl-function-cache
10424 (sbcl-package->ecl-package sbcl-function-cache))
10425
10426 (define-public sbcl-type-r
10427 (let ((commit "83c89e38f2f7a7b16f1012777ecaf878cfa6a267")
10428 (revision "1"))
10429 (package
10430 (name "sbcl-type-r")
10431 (version (git-version "0.0.0" revision commit))
10432 (source
10433 (origin
10434 (method git-fetch)
10435 (uri (git-reference
10436 (url "https://github.com/guicho271828/type-r.git")
10437 (commit commit)))
10438 (file-name (git-file-name name version))
10439 (sha256
10440 (base32
10441 "1arsxc2539rg8vbrdirz4xxj1b06mc6g6rqndz7a02g127qvk2sm"))))
10442 (build-system asdf-build-system/sbcl)
10443 (synopsis "Parser interface for Common Lisp built-in compound types")
10444 (description
10445 "Collections of accessor functions and patterns to access
10446 the elements in compound type specifier, e.g. @code{dimensions} in
10447 @code{(array element-type dimensions)}")
10448 (home-page "https://github.com/guicho271828/type-r")
10449 (license license:lgpl3+)
10450 (inputs
10451 `(("trivia" ,sbcl-trivia)
10452 ("alexandria" ,sbcl-alexandria)))
10453 (native-inputs
10454 `(("fiveam" ,sbcl-fiveam)))
10455 (arguments
10456 `(#:asd-system-name "type-r"
10457 #:asd-file "type-r.asd"
10458 #:test-asd-file "type-r.test.asd")))))
10459
10460 (define-public cl-type-r
10461 (sbcl-package->cl-source-package sbcl-type-r))
10462
10463 (define-public sbcl-trivialib-type-unify
10464 (let ((commit "62492ebf04db567dcf435ae84c50b7b8202ecf99")
10465 (revision "1"))
10466 (package
10467 (name "sbcl-trivialib-type-unify")
10468 (version (git-version "0.1" revision commit))
10469 (source
10470 (origin
10471 (method git-fetch)
10472 (uri (git-reference
10473 (url "https://github.com/guicho271828/trivialib.type-unify.git")
10474 (commit commit)))
10475 (file-name (git-file-name name version))
10476 (sha256
10477 (base32
10478 "1bkyfzbwv75p50zp8n1n9rh2r29pw3vgz91gmn2gzzkyq3khj1vh"))))
10479 (build-system asdf-build-system/sbcl)
10480 (synopsis "Common Lisp type unification")
10481 (description
10482 "Unifies a parametrized type specifier against an actual type specifier.
10483 Importantly, it handles complicated array-subtypes and number-related types
10484 correctly.")
10485 (home-page "https://github.com/guicho271828/trivialib.type-unify")
10486 (license license:lgpl3+)
10487 (inputs
10488 `(("alexandria" ,sbcl-alexandria)
10489 ("trivia" ,sbcl-trivia)
10490 ("introspect-environment" ,sbcl-introspect-environment)
10491 ("type-r" ,sbcl-type-r)))
10492 (native-inputs
10493 `(("fiveam" ,sbcl-fiveam)))
10494 (arguments
10495 `(#:asd-system-name "trivialib.type-unify"
10496 #:asd-file "trivialib.type-unify.asd"
10497 #:test-asd-file "trivialib.type-unify.test.asd")))))
10498
10499 (define-public cl-trivialib-type-unify
10500 (sbcl-package->cl-source-package sbcl-trivialib-type-unify))
10501
10502 (define-public sbcl-specialized-function
10503 (let ((commit "b96b6afaf8358bf91cc0703e62a5a4ee20d2b7bc")
10504 (revision "1"))
10505 (package
10506 (name "sbcl-specialized-function")
10507 (version (git-version "0.0.0" revision commit))
10508 (source
10509 (origin
10510 (method git-fetch)
10511 (uri (git-reference
10512 (url "https://github.com/numcl/specialized-function.git")
10513 (commit commit)))
10514 (file-name (git-file-name name version))
10515 (sha256
10516 (base32
10517 "12j45ff0n26578vmfbhb9mfbdchw4wy023k0m2ppgl9s0z4bhjaj"))))
10518 (build-system asdf-build-system/sbcl)
10519 (synopsis "Julia-like dispatch for Common Lisp")
10520 (description
10521 "This library is part of NUMCL. It provides a macro
10522 @code{SPECIALIZED} that performs a Julia-like dispatch on the arguments,
10523 lazily compiling a type-specific version of the function from the same
10524 code. The main target of this macro is speed.")
10525 (home-page "https://github.com/numcl/specialized-function")
10526 (license license:lgpl3+)
10527 (inputs
10528 `(("trivia" ,sbcl-trivia)
10529 ("alexandria" ,sbcl-alexandria)
10530 ("iterate" ,sbcl-iterate)
10531 ("lisp-namespace" ,sbcl-lisp-namespace)
10532 ("type-r" ,sbcl-type-r)
10533 ("trivial-cltl2" ,sbcl-trivial-cltl2)))
10534 (native-inputs
10535 `(("fiveam" ,sbcl-fiveam)))
10536 (arguments
10537 `(#:asd-system-name "specialized-function"
10538 #:asd-file "specialized-function.asd"
10539 #:test-asd-file "specialized-function.test.asd")))))
10540
10541 (define-public cl-specialized-function
10542 (sbcl-package->cl-source-package sbcl-specialized-function))
10543
10544 (define-public sbcl-constantfold
10545 (let ((commit "0ff1d97a3fbcb89264f6a2af6ce62b73e7b421f4")
10546 (revision "1"))
10547 (package
10548 (name "sbcl-constantfold")
10549 (version (git-version "0.1" revision commit))
10550 (source
10551 (origin
10552 (method git-fetch)
10553 (uri (git-reference
10554 (url "https://github.com/numcl/constantfold.git")
10555 (commit commit)))
10556 (file-name (git-file-name name version))
10557 (sha256
10558 (base32
10559 "153h0569z6bff1qbad0bdssplwwny75l7ilqwcfqfdvzsxf9jh06"))))
10560 (build-system asdf-build-system/sbcl)
10561 (synopsis "Support library for numcl")
10562 (description
10563 "Support library for numcl. Registers a function as an
10564 additional form that is considered as a candidate for a constant.")
10565 (home-page "https://github.com/numcl/constantfold")
10566 (license license:lgpl3+)
10567 (inputs
10568 `(("trivia" ,sbcl-trivia)
10569 ("alexandria" ,sbcl-alexandria)
10570 ("iterate" ,sbcl-iterate)
10571 ("lisp-namespace" ,sbcl-lisp-namespace)))
10572 (native-inputs
10573 `(("fiveam" ,sbcl-fiveam)))
10574 (arguments
10575 `(#:asd-system-name "constantfold"
10576 #:asd-file "constantfold.asd"
10577 #:test-asd-file "constantfold.test.asd")))))
10578
10579 (define-public cl-constantfold
10580 (sbcl-package->cl-source-package sbcl-constantfold))
10581
10582 (define-public sbcl-gtype
10583 (let ((commit "42275e3606242ae91e9c8dfa30c18ced50a35b66")
10584 (revision "1"))
10585 (package
10586 (name "sbcl-gtype")
10587 (version (git-version "0.1" revision commit))
10588 (source
10589 (origin
10590 (method git-fetch)
10591 (uri (git-reference
10592 (url "https://github.com/numcl/gtype.git")
10593 (commit commit)))
10594 (file-name (git-file-name name version))
10595 (sha256
10596 (base32
10597 "1f56dba998v945jcxhha391557n6md1ql25b7icfwwfivhmlaa9b"))))
10598 (build-system asdf-build-system/sbcl)
10599 (synopsis "C++/Julia-like parametric types in Common Lisp")
10600 (description
10601 "Support library for numcl that provides Julia-like runtime parametric
10602 type correctness in Common Lisp. It is based on CLtL2 extensions.")
10603 (home-page "https://github.com/numcl/gtype")
10604 (license license:lgpl3+)
10605 (inputs
10606 `(("trivialib.type-unify" ,sbcl-trivialib-type-unify)
10607 ("trivial-cltl2" ,sbcl-trivial-cltl2)
10608 ("trivia" ,sbcl-trivia)
10609 ("alexandria" ,sbcl-alexandria)
10610 ("iterate" ,sbcl-iterate)
10611 ("type-r" ,sbcl-type-r)))
10612 (native-inputs
10613 `(("fiveam" ,sbcl-fiveam)))
10614 (arguments
10615 `(#:asd-system-name "gtype"
10616 #:asd-file "gtype.asd"
10617 #:test-asd-file "gtype.test.asd")))))
10618
10619 (define-public cl-gtype
10620 (sbcl-package->cl-source-package sbcl-gtype))
10621
10622 (define-public sbcl-numcl
10623 (let ((commit "1cf7dfa59f763a24a501092870e9c5ee745d0c17")
10624 (revision "1"))
10625 (package
10626 (name "sbcl-numcl")
10627 (version (git-version "0.1.0" revision commit))
10628 (source
10629 (origin
10630 (method git-fetch)
10631 (uri (git-reference
10632 (url "https://github.com/numcl/numcl.git")
10633 (commit commit)))
10634 (file-name (git-file-name name version))
10635 (sha256
10636 (base32
10637 "0i3jby9hf4ii7blivgyza80g0vmjfhk8537i5i7kqqk0i5sdnym2"))))
10638 (build-system asdf-build-system/sbcl)
10639 (synopsis "Numpy clone in Common Lisp")
10640 (description
10641 "This is a Numpy clone in Common Lisp. At the moment the
10642 library is written in pure Common Lisp, focusing more on correctness
10643 and usefulness, not speed. Track the progress at
10644 @url{https://github.com/numcl/numcl/projects/1}.")
10645 (home-page "https://github.com/numcl/numcl")
10646 (license license:lgpl3+)
10647 (inputs
10648 `(("trivia" ,sbcl-trivia)
10649 ("alexandria" ,sbcl-alexandria)
10650 ("iterate" ,sbcl-iterate)
10651 ("lisp-namespace" ,sbcl-lisp-namespace)
10652 ("type-r" ,sbcl-type-r)
10653 ("constantfold" ,sbcl-constantfold)
10654 ("cl-randist" ,sbcl-cl-randist)
10655 ("float-features" ,sbcl-float-features)
10656 ("function-cache" ,sbcl-function-cache)
10657 ("specialized-function" ,sbcl-specialized-function)
10658 ("gtype" ,sbcl-gtype)))
10659 (native-inputs
10660 `(("fiveam" ,sbcl-fiveam)))
10661 (arguments
10662 `(#:asd-system-name "numcl"
10663 #:asd-file "numcl.asd"
10664 #:test-asd-file "numcl.test.asd")))))
10665
10666 (define-public cl-numcl
10667 (sbcl-package->cl-source-package sbcl-numcl))
10668
10669 (define-public sbcl-pzmq
10670 (let ((commit "7c7390eedc469d033c72dc497984d1536ee75826")
10671 (revision "1"))
10672 (package
10673 (name "sbcl-pzmq")
10674 (version (git-version "0.0.0" revision commit))
10675 (source
10676 (origin
10677 (method git-fetch)
10678 (uri (git-reference
10679 (url "https://github.com/orivej/pzmq.git")
10680 (commit commit)))
10681 (file-name (git-file-name name version))
10682 (sha256
10683 (base32 "0gmwzf7h90wa7v4wnk49g0hv2mdalljpwhyigxcb967wzv8lqci9"))))
10684 (build-system asdf-build-system/sbcl)
10685 (native-inputs
10686 `(("bordeaux-threads" ,sbcl-bordeaux-threads)
10687 ("fiveam" ,sbcl-fiveam)
10688 ("let-plus" ,sbcl-let-plus)))
10689 (inputs
10690 `(("cffi" ,sbcl-cffi)
10691 ("cffi-grovel" ,sbcl-cffi-grovel)
10692 ("zeromq" ,zeromq)))
10693 (arguments
10694 `(#:phases (modify-phases %standard-phases
10695 (add-after 'unpack 'fix-paths
10696 (lambda* (#:key inputs #:allow-other-keys)
10697 (substitute* "c-api.lisp"
10698 (("\"libzmq")
10699 (string-append "\""
10700 (assoc-ref inputs "zeromq")
10701 "/lib/libzmq")))
10702 #t)))))
10703 (synopsis "Common Lisp bindings for the ZeroMQ library")
10704 (description "This Common Lisp library provides bindings for the ZeroMQ
10705 lightweight messaging kernel.")
10706 (home-page "https://github.com/orivej/pzmq")
10707 (license license:unlicense))))
10708
10709 (define-public cl-pzmq
10710 (sbcl-package->cl-source-package sbcl-pzmq))
10711
10712 (define-public ecl-pzmq
10713 (sbcl-package->ecl-package sbcl-pzmq))
10714
10715 (define-public sbcl-clss
10716 (let ((revision "1")
10717 (commit "2a8e8615ab55870d4ca01928f3ed3bbeb4e75c8d"))
10718 (package
10719 (name "sbcl-clss")
10720 (version (git-version "0.3.1" revision commit))
10721 (source
10722 (origin
10723 (method git-fetch)
10724 (uri
10725 (git-reference
10726 (url "https://github.com/Shinmera/clss.git")
10727 (commit commit)))
10728 (sha256
10729 (base32 "0la4dbcda78x29szanylccrsljqrn9d1mhh569sqkyp44ni5fv91"))
10730 (file-name (git-file-name name version))))
10731 (inputs
10732 `(("array-utils" ,sbcl-array-utils)
10733 ("plump" ,sbcl-plump)))
10734 (build-system asdf-build-system/sbcl)
10735 (synopsis "DOM tree searching engine based on CSS selectors")
10736 (description "CLSS is a DOM traversal engine based on CSS
10737 selectors. It makes use of the Plump-DOM and is used by lQuery.")
10738 (home-page "https://github.com/Shinmera/clss")
10739 (license license:zlib))))
10740
10741 (define-public cl-clss
10742 (sbcl-package->cl-source-package sbcl-clss))
10743
10744 (define-public ecl-clss
10745 (sbcl-package->ecl-package sbcl-clss))
10746
10747 (define-public sbcl-lquery
10748 (let ((revision "1")
10749 (commit "8048111c6b83956daa632e7a3ffbd8c9c203bd8d"))
10750 (package
10751 (name "sbcl-lquery")
10752 (version (git-version "3.2.1" revision commit))
10753 (source
10754 (origin
10755 (method git-fetch)
10756 (uri
10757 (git-reference
10758 (url "https://github.com/Shinmera/lquery.git")
10759 (commit commit)))
10760 (sha256
10761 (base32 "0520mcpxc2d6fdm8z61arpgd2z38kan7cf06qs373n5r64rakz6w"))
10762 (file-name (git-file-name name version))))
10763 (native-inputs
10764 `(("fiveam" ,sbcl-fiveam)))
10765 (inputs
10766 `(("array-utils" ,sbcl-array-utils)
10767 ("form-fiddle" ,sbcl-form-fiddle)
10768 ("plump" ,sbcl-plump)
10769 ("clss" ,sbcl-clss)))
10770 (build-system asdf-build-system/sbcl)
10771 (synopsis "Library to allow jQuery-like HTML/DOM manipulation")
10772 (description "@code{lQuery} is a DOM manipulation library written in
10773 Common Lisp, inspired by and based on the jQuery syntax and
10774 functions. It uses Plump and CLSS as DOM and selector engines. The
10775 main idea behind lQuery is to provide a simple interface for crawling
10776 and modifying HTML sites, as well as to allow for an alternative
10777 approach to templating.")
10778 (home-page "https://github.com/Shinmera/lquery")
10779 (license license:zlib))))
10780
10781 (define-public cl-lquery
10782 (sbcl-package->cl-source-package sbcl-lquery))
10783
10784 (define-public ecl-lquery
10785 (sbcl-package->ecl-package sbcl-lquery))
10786
10787 (define-public sbcl-cl-mysql
10788 (let ((commit "ab56c279c1815aec6ca0bfe85164ff7e85cfb6f9")
10789 (revision "1"))
10790 (package
10791 (name "sbcl-cl-mysql")
10792 (version (git-version "0.1" revision commit))
10793 (source
10794 (origin
10795 (method git-fetch)
10796 (uri (git-reference
10797 (url "https://github.com/hackinghat/cl-mysql.git")
10798 (commit commit)))
10799 (file-name (git-file-name name version))
10800 (sha256
10801 (base32 "0dg5ynx2ww94d0qfwrdrm7plkn43h64hs4iiq9mj2s1s4ixnp3lr"))))
10802 (build-system asdf-build-system/sbcl)
10803 (native-inputs
10804 `(("stefil" ,sbcl-stefil)))
10805 (inputs
10806 `(("cffi" ,sbcl-cffi)
10807 ("mariadb-lib" ,mariadb "lib")))
10808 (arguments
10809 `(#:tests? #f ; TODO: Tests require a running server
10810 #:phases
10811 (modify-phases %standard-phases
10812 (add-after 'unpack 'fix-paths
10813 (lambda* (#:key inputs #:allow-other-keys)
10814 (substitute* "system.lisp"
10815 (("libmysqlclient_r" all)
10816 (string-append (assoc-ref inputs "mariadb-lib")
10817 "/lib/"
10818 all)))
10819 #t)))))
10820 (synopsis "Common Lisp wrapper for MySQL")
10821 (description
10822 "@code{cl-mysql} is a Common Lisp implementation of a MySQL wrapper.")
10823 (home-page "http://www.hackinghat.com/index.php/cl-mysql")
10824 (license license:expat))))
10825
10826 (define-public cl-mysql
10827 (sbcl-package->cl-source-package sbcl-cl-mysql))
10828
10829 (define-public sbcl-simple-date
10830 (let ((commit "74469b25bbda990ec9b77e0d0eccdba0cd7e721a")
10831 (revision "1"))
10832 (package
10833 (name "sbcl-simple-date")
10834 (version (git-version "1.19" revision commit))
10835 (source
10836 (origin
10837 (method git-fetch)
10838 (uri (git-reference
10839 (url "https://github.com/marijnh/Postmodern.git")
10840 (commit commit)))
10841 (file-name (git-file-name name version))
10842 (sha256
10843 (base32 "0im7ymnyxjhn2w74jfg76k5gpr0gl33n31akx33hl28722ljd0hd"))))
10844 (build-system asdf-build-system/sbcl)
10845 (native-inputs
10846 `(("fiveam" ,sbcl-fiveam)))
10847 (synopsis "Basic date and time objects for Common Lisp")
10848 (description
10849 "@code{simple-date} is a very basic implementation of date and time
10850 objects, used to support storing and retrieving time-related SQL types.")
10851 (home-page "https://marijnhaverbeke.nl/postmodern/")
10852 (license license:zlib))))
10853
10854 (define-public cl-simple-date
10855 (sbcl-package->cl-source-package sbcl-simple-date))
10856
10857 (define-public ecl-simple-date
10858 (sbcl-package->ecl-package sbcl-simple-date))
10859
10860 (define-public sbcl-cl-postgres
10861 (package
10862 (inherit sbcl-simple-date)
10863 (name "sbcl-cl-postgres")
10864 (native-inputs
10865 `(("fiveam" ,sbcl-fiveam)
10866 ("simple-date" ,sbcl-simple-date)))
10867 (inputs
10868 `(("md5" ,sbcl-md5)
10869 ("split-sequence" ,sbcl-split-sequence)
10870 ("usocket" ,sbcl-usocket)))
10871 (arguments
10872 `(#:tests? #f)) ; TODO: Break simple-date/postgres-glue circular dependency
10873 (synopsis "Common Lisp interface for PostgreSQL")
10874 (description
10875 "@code{cl-postgres} is a low-level library used for interfacing with
10876 a PostgreSQL server over a socket.")))
10877
10878 (define-public cl-postgres
10879 (sbcl-package->cl-source-package sbcl-cl-postgres))
10880
10881 (define-public sbcl-simple-date-postgres-glue
10882 (package
10883 (inherit sbcl-simple-date)
10884 (name "sbcl-simple-date-postgres-glue")
10885 (inputs
10886 `(("cl-postgres" ,sbcl-cl-postgres)
10887 ("simple-date" ,sbcl-simple-date)))
10888 (arguments
10889 `(#:asd-file "simple-date.asd"
10890 #:asd-system-name "simple-date/postgres-glue"))))
10891
10892 (define-public cl-simple-date-postgres-glue
10893 (sbcl-package->cl-source-package sbcl-simple-date-postgres-glue))
10894
10895 (define-public sbcl-s-sql
10896 (package
10897 (inherit sbcl-simple-date)
10898 (name "sbcl-s-sql")
10899 (inputs
10900 `(("alexandria" ,sbcl-alexandria)
10901 ("cl-postgres" ,sbcl-cl-postgres)))
10902 (arguments
10903 `(#:tests? #f)) ; TODO: Break postmodern circular dependency
10904 (synopsis "Lispy DSL for SQL")
10905 (description
10906 "@code{s-sql} is a Common Lisp library that can be used to compile
10907 s-expressions to strings of SQL code, escaping any Lisp values inside, and
10908 doing as much as possible of the work at compile time.")))
10909
10910 (define-public cl-s-sql
10911 (sbcl-package->cl-source-package sbcl-s-sql))
10912
10913 (define-public sbcl-postmodern
10914 (package
10915 (inherit sbcl-simple-date)
10916 (name "sbcl-postmodern")
10917 (native-inputs
10918 `(("fiveam" ,sbcl-fiveam)
10919 ("simple-date" ,sbcl-simple-date)
10920 ("simple-date-postgres-glue" ,sbcl-simple-date-postgres-glue)))
10921 (inputs
10922 `(("alexandria" ,sbcl-alexandria)
10923 ("bordeaux-threads" ,sbcl-bordeaux-threads)
10924 ("cl-postgres" ,sbcl-cl-postgres)
10925 ("closer-mop" ,sbcl-closer-mop)
10926 ("global-vars" ,sbcl-global-vars)
10927 ("s-sql" ,sbcl-s-sql)
10928 ("split-sequence" ,sbcl-split-sequence)))
10929 (arguments
10930 ;; TODO: Fix missing dependency errors for simple-date/postgres-glue,
10931 ;; cl-postgres/tests and s-sql/tests.
10932 `(#:tests? #f))
10933 (synopsis "Common Lisp library for interacting with PostgreSQL")
10934 (description
10935 "@code{postmodern} is a Common Lisp library for interacting with
10936 PostgreSQL databases. It provides the following features:
10937
10938 @itemize
10939 @item Efficient communication with the database server without need for
10940 foreign libraries.
10941 @item Support for UTF-8 on Unicode-aware Lisp implementations.
10942 @item A syntax for mixing SQL and Lisp code.
10943 @item Convenient support for prepared statements and stored procedures.
10944 @item A metaclass for simple database-access objects.
10945 @end itemize\n")))
10946
10947 (define-public cl-postmodern
10948 (sbcl-package->cl-source-package sbcl-postmodern))
10949
10950 (define-public sbcl-dbi
10951 (package
10952 (name "sbcl-dbi")
10953 (version "0.9.4")
10954 (source
10955 (origin
10956 (method git-fetch)
10957 (uri (git-reference
10958 (url "https://github.com/fukamachi/cl-dbi.git")
10959 (commit version)))
10960 (file-name (git-file-name name version))
10961 (sha256
10962 (base32 "0m1fsravfaizamdak84adh3jxc4j91maqnrb4m08bfbmb04cdqhs"))))
10963 (build-system asdf-build-system/sbcl)
10964 (inputs
10965 `(("bordeaux-threads" ,sbcl-bordeaux-threads)
10966 ("closer-mop" ,sbcl-closer-mop)
10967 ("split-sequence" ,sbcl-split-sequence)))
10968 (arguments
10969 `(#:tests? #f)) ; TODO: Break circular dependency with dbd-*
10970 (synopsis "Database independent interface for Common Lisp")
10971 (description
10972 "@code{dbi} is a Common Lisp library providing a database independent
10973 interface for MySQL, PostgreSQL and SQLite.")
10974 (home-page "https://github.com/fukamachi/cl-dbi")
10975 (license license:llgpl)))
10976
10977 (define-public cl-dbi
10978 (sbcl-package->cl-source-package sbcl-dbi))
10979
10980 (define-public sbcl-dbd-mysql
10981 (package
10982 (inherit sbcl-dbi)
10983 (name "sbcl-dbd-mysql")
10984 (inputs
10985 `(("cl-mysql" ,sbcl-cl-mysql)
10986 ("dbi" ,sbcl-dbi)))
10987 (synopsis "Database driver for MySQL")))
10988
10989 (define-public cl-dbd-mysql
10990 (sbcl-package->cl-source-package sbcl-dbd-mysql))
10991
10992 (define-public sbcl-dbd-postgres
10993 (package
10994 (inherit sbcl-dbi)
10995 (name "sbcl-dbd-postgres")
10996 (inputs
10997 `(("cl-postgres" ,sbcl-cl-postgres)
10998 ("dbi" ,sbcl-dbi)
10999 ("trivial-garbage" ,sbcl-trivial-garbage)))
11000 (synopsis "Database driver for PostgreSQL")))
11001
11002 (define-public cl-dbd-postgres
11003 (sbcl-package->cl-source-package sbcl-dbd-postgres))
11004
11005 (define-public sbcl-dbd-sqlite3
11006 (package
11007 (inherit sbcl-dbi)
11008 (name "sbcl-dbd-sqlite3")
11009 (inputs
11010 `(("cl-sqlite" ,sbcl-cl-sqlite)
11011 ("dbi" ,sbcl-dbi)
11012 ("trivial-garbage" ,sbcl-trivial-garbage)))
11013 (synopsis "Database driver for SQLite3")))
11014
11015 (define-public cl-dbd-sqlite3
11016 (sbcl-package->cl-source-package sbcl-dbd-sqlite3))
11017
11018 (define-public sbcl-uffi
11019 (package
11020 (name "sbcl-uffi")
11021 (version "2.1.2")
11022 (source
11023 (origin
11024 (method git-fetch)
11025 (uri (git-reference
11026 (url "http://git.kpe.io/uffi.git")
11027 (commit (string-append "v" version))))
11028 (file-name (git-file-name name version))
11029 (sha256
11030 (base32 "1hqszvz0a3wk4s9faa83sc3vjxcb5rxmjclyr17yzwg55z733kry"))))
11031 (build-system asdf-build-system/sbcl)
11032 (arguments
11033 `(#:tests? #f ; TODO: Fix use of deprecated ASDF functions
11034 #:phases
11035 (modify-phases %standard-phases
11036 (add-after 'unpack 'fix-permissions
11037 (lambda _
11038 (make-file-writable "doc/html.tar.gz")
11039 #t)))))
11040 (synopsis "Universal foreign function library for Common Lisp")
11041 (description
11042 "UFFI provides a universal foreign function interface (FFI)
11043 for Common Lisp.")
11044 (home-page "http://quickdocs.org/uffi/")
11045 (license license:llgpl)))
11046
11047 (define-public cl-uffi
11048 (package
11049 (inherit (sbcl-package->cl-source-package sbcl-uffi))
11050 (arguments
11051 `(#:phases
11052 ;; asdf-build-system/source has its own phases and does not inherit
11053 ;; from asdf-build-system/sbcl phases.
11054 (modify-phases %standard-phases/source
11055 (add-after 'unpack 'fix-permissions
11056 (lambda _
11057 (make-file-writable "doc/html.tar.gz")
11058 #t)))))))
11059
11060 (define-public sbcl-clsql
11061 (package
11062 (name "sbcl-clsql")
11063 (version "6.7.0")
11064 (source
11065 (origin
11066 (method git-fetch)
11067 (uri (git-reference
11068 (url "http://git.kpe.io/clsql.git")
11069 (commit (string-append "v" version))))
11070 (file-name (git-file-name name version))
11071 (sha256
11072 (base32 "1v1k3s5bsy3lgd9gk459bzpb1r0kdjda25s29samxw4gsgf1fqvp"))
11073 (snippet
11074 '(begin
11075 ;; Remove precompiled libraries.
11076 (delete-file "db-mysql/clsql_mysql.dll")
11077 (delete-file "uffi/clsql_uffi.dll")
11078 (delete-file "uffi/clsql_uffi.lib")
11079 #t))))
11080 (build-system asdf-build-system/sbcl)
11081 (native-inputs
11082 `(("cffi-uffi-compat" ,sbcl-cffi-uffi-compat)
11083 ("rt" ,sbcl-rt)
11084 ("uffi" ,sbcl-uffi)))
11085 (arguments
11086 `(#:phases
11087 (modify-phases %standard-phases
11088 (add-after 'unpack 'fix-permissions
11089 (lambda _
11090 (make-file-writable "doc/html.tar.gz")
11091 #t))
11092 (add-after 'unpack 'fix-tests
11093 (lambda _
11094 (substitute* "clsql.asd"
11095 (("clsql-tests :force t")
11096 "clsql-tests"))
11097 #t)))))
11098 (synopsis "Common Lisp SQL Interface library")
11099 (description
11100 "@code{clsql} is a Common Lisp interface to SQL RDBMS based on the
11101 Xanalys CommonSQL interface for Lispworks. It provides low-level database
11102 interfaces as well as a functional and an object oriented interface.")
11103 (home-page "http://clsql.kpe.io/")
11104 (license license:llgpl)))
11105
11106 (define-public cl-clsql
11107 (package
11108 (inherit (sbcl-package->cl-source-package sbcl-clsql))
11109 (native-inputs
11110 `(("rt" ,cl-rt)))
11111 (inputs
11112 `(("mysql" ,mysql)
11113 ("postgresql" ,postgresql)
11114 ("sqlite" ,sqlite)
11115 ("zlib" ,zlib)))
11116 (propagated-inputs
11117 `(("cl-postgres" ,cl-postgres)
11118 ("cffi-uffi-compat" ,cl-cffi-uffi-compat)
11119 ("md5" ,cl-md5)
11120 ("uffi" ,cl-uffi)))
11121 (arguments
11122 `(#:phases
11123 ;; asdf-build-system/source has its own phases and does not inherit
11124 ;; from asdf-build-system/sbcl phases.
11125 (modify-phases %standard-phases/source
11126 (add-after 'unpack 'fix-permissions
11127 (lambda _
11128 (make-file-writable "doc/html.tar.gz")
11129 #t)))))))
11130
11131 (define-public sbcl-clsql-uffi
11132 (package
11133 (inherit sbcl-clsql)
11134 (name "sbcl-clsql-uffi")
11135 (inputs
11136 `(("cffi-uffi-compat" ,sbcl-cffi-uffi-compat)
11137 ("clsql" ,sbcl-clsql)
11138 ("uffi" ,sbcl-uffi)))
11139 (synopsis "UFFI helper functions for Common Lisp SQL interface library")))
11140
11141 (define-public sbcl-clsql-sqlite3
11142 (package
11143 (inherit sbcl-clsql)
11144 (name "sbcl-clsql-sqlite3")
11145 (inputs
11146 `(("clsql" ,sbcl-clsql)
11147 ("clsql-uffi" ,sbcl-clsql-uffi)
11148 ("sqlite" ,sqlite)))
11149 (arguments
11150 (substitute-keyword-arguments (package-arguments sbcl-clsql)
11151 ((#:phases phases '%standard-phases)
11152 `(modify-phases ,phases
11153 (add-after 'unpack 'fix-paths
11154 (lambda* (#:key inputs #:allow-other-keys)
11155 (substitute* "db-sqlite3/sqlite3-loader.lisp"
11156 (("libsqlite3")
11157 (string-append (assoc-ref inputs "sqlite")
11158 "/lib/libsqlite3")))
11159 #t))))))
11160 (synopsis "SQLite3 driver for Common Lisp SQL interface library")))
11161
11162 (define-public sbcl-clsql-postgresql
11163 (package
11164 (inherit sbcl-clsql)
11165 (name "sbcl-clsql-postgresql")
11166 (inputs
11167 `(("clsql" ,sbcl-clsql)
11168 ("clsql-uffi" ,sbcl-clsql-uffi)
11169 ("postgresql" ,postgresql)))
11170 (arguments
11171 (substitute-keyword-arguments (package-arguments sbcl-clsql)
11172 ((#:phases phases '%standard-phases)
11173 `(modify-phases ,phases
11174 (add-after 'unpack 'fix-paths
11175 (lambda* (#:key inputs #:allow-other-keys)
11176 (substitute* "db-postgresql/postgresql-loader.lisp"
11177 (("libpq")
11178 (string-append (assoc-ref inputs "postgresql")
11179 "/lib/libpq")))
11180 #t))))))
11181 (synopsis "PostgreSQL driver for Common Lisp SQL interface library")))
11182
11183 (define-public sbcl-clsql-postgresql-socket3
11184 (package
11185 (inherit sbcl-clsql)
11186 (name "sbcl-clsql-postgresql-socket3")
11187 (inputs
11188 `(("cl-postgres" ,sbcl-cl-postgres)
11189 ("clsql" ,sbcl-clsql)
11190 ("md5" ,sbcl-md5)))
11191 (arguments
11192 (substitute-keyword-arguments (package-arguments sbcl-clsql)
11193 ((#:phases phases '%standard-phases)
11194 `(modify-phases ,phases
11195 (add-after 'create-asd-file 'fix-asd-file
11196 (lambda* (#:key outputs #:allow-other-keys)
11197 (let* ((out (assoc-ref outputs "out"))
11198 (lib (string-append out "/lib/" (%lisp-type)))
11199 (asd (string-append lib "/clsql-postgresql-socket3.asd")))
11200 (substitute* asd
11201 (("CLSQL-POSTGRESQL-SOCKET-SYSTEM::")
11202 "")))
11203 #t))))))
11204 (synopsis "PostgreSQL driver for Common Lisp SQL interface library")))
11205
11206 (define-public sbcl-clsql-mysql
11207 (package
11208 (inherit sbcl-clsql)
11209 (name "sbcl-clsql-mysql")
11210 (inputs
11211 `(("mysql" ,mysql)
11212 ("sbcl-clsql" ,sbcl-clsql)
11213 ("sbcl-clsql-uffi" ,sbcl-clsql-uffi)
11214 ("zlib" ,zlib)))
11215 (arguments
11216 (substitute-keyword-arguments (package-arguments sbcl-clsql)
11217 ((#:phases phases '%standard-phases)
11218 `(modify-phases ,phases
11219 (add-after 'unpack 'fix-paths
11220 (lambda* (#:key inputs outputs #:allow-other-keys)
11221 (let ((lib (string-append "#p\""
11222 (assoc-ref outputs "out")
11223 "/lib/\"")))
11224 (substitute* "clsql-mysql.asd"
11225 (("#p\"/usr/lib/clsql/clsql_mysql\\.so\"")
11226 lib))
11227 (substitute* "db-mysql/mysql-loader.lisp"
11228 (("libmysqlclient" all)
11229 (string-append (assoc-ref inputs "mysql") "/lib/" all))
11230 (("clsql-mysql-system::\\*library-file-dir\\*")
11231 lib)))
11232 #t))
11233 (add-before 'build 'build-helper-library
11234 (lambda* (#:key inputs outputs #:allow-other-keys)
11235 (let* ((mysql (assoc-ref inputs "mysql"))
11236 (inc-dir (string-append mysql "/include/mysql"))
11237 (lib-dir (string-append mysql "/lib"))
11238 (shared-lib-dir (string-append (assoc-ref outputs "out")
11239 "/lib"))
11240 (shared-lib (string-append shared-lib-dir
11241 "/clsql_mysql.so")))
11242 (mkdir-p shared-lib-dir)
11243 (invoke "gcc" "-fPIC" "-shared"
11244 "-I" inc-dir
11245 "db-mysql/clsql_mysql.c"
11246 "-Wl,-soname=clsql_mysql"
11247 "-L" lib-dir "-lmysqlclient" "-lz"
11248 "-o" shared-lib)
11249 #t)))))))
11250 (synopsis "MySQL driver for Common Lisp SQL interface library")))
11251
11252 (define-public sbcl-sycamore
11253 (let ((commit "fd2820fec165ad514493426dea209728f64e6d18"))
11254 (package
11255 (name "sbcl-sycamore")
11256 (version "0.0.20120604")
11257 (source
11258 (origin
11259 (method git-fetch)
11260 (uri (git-reference
11261 (url "https://github.com/ndantam/sycamore/")
11262 (commit commit)))
11263 (file-name (git-file-name name version))
11264 (sha256
11265 (base32 "00bv1aj89q5vldmq92zp2364jq312zjq2mbd3iyz1s2b4widzhl7"))))
11266 (build-system asdf-build-system/sbcl)
11267 (arguments
11268 `(#:asd-file "src/sycamore.asd"))
11269 (inputs
11270 `(("alexandria" ,sbcl-alexandria)
11271 ("cl-ppcre" ,sbcl-cl-ppcre)))
11272 (synopsis "Purely functional data structure library in Common Lisp")
11273 (description
11274 "Sycamore is a fast, purely functional data structure library in Common Lisp.
11275 If features:
11276
11277 @itemize
11278 @item Fast, purely functional weight-balanced binary trees.
11279 @item Leaf nodes are simple-vectors, greatly reducing tree height.
11280 @item Interfaces for tree Sets and Maps (dictionaries).
11281 @item Ropes.
11282 @item Purely functional pairing heaps.
11283 @item Purely functional amortized queue.
11284 @end itemize\n")
11285 (home-page "http://ndantam.github.io/sycamore/")
11286 (license license:bsd-3))))
11287
11288 (define-public cl-sycamore
11289 (sbcl-package->cl-source-package sbcl-sycamore))
11290
11291 (define-public sbcl-trivial-package-local-nicknames
11292 (package
11293 (name "sbcl-trivial-package-local-nicknames")
11294 (version "0.2")
11295 (home-page "https://github.com/phoe/trivial-package-local-nicknames")
11296 (source
11297 (origin
11298 (method git-fetch)
11299 (uri (git-reference
11300 (url home-page)
11301 (commit "16b7ad4c2b120f50da65154191f468ea5598460e")))
11302 (file-name (git-file-name name version))
11303 (sha256
11304 (base32 "18qc27xkjzdcqrilpk3pm7djldwq5rm3ggd5h9cr8hqcd54i2fqg"))))
11305 (build-system asdf-build-system/sbcl)
11306 (synopsis "Common Lisp compatibility library for package local nicknames")
11307 (description
11308 "This library is a portable compatibility layer around package local nicknames (PLN).
11309 This was done so there is a portability library for the PLN API not included
11310 in DEFPACKAGE.")
11311 (license license:unlicense)))
11312
11313 (define-public cl-trivial-package-local-nicknames
11314 (sbcl-package->cl-source-package sbcl-trivial-package-local-nicknames))