gnu: Add cl-cffi-uffi-compat.
[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 ;;;
22 ;;; This file is part of GNU Guix.
23 ;;;
24 ;;; GNU Guix is free software; you can redistribute it and/or modify it
25 ;;; under the terms of the GNU General Public License as published by
26 ;;; the Free Software Foundation; either version 3 of the License, or (at
27 ;;; your option) any later version.
28 ;;;
29 ;;; GNU Guix is distributed in the hope that it will be useful, but
30 ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
31 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
32 ;;; GNU General Public License for more details.
33 ;;;
34 ;;; You should have received a copy of the GNU General Public License
35 ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
36
37 ;;; This file only contains Common Lisp libraries.
38 ;;; Common Lisp compilers and tooling go to lisp.scm.
39 ;;; Common Lisp applications should go to the most appropriate file,
40 ;;; e.g. StumpWM is in wm.scm.
41
42 (define-module (gnu packages lisp-xyz)
43 #:use-module (gnu packages)
44 #:use-module ((guix licenses) #:prefix license:)
45 #:use-module (guix packages)
46 #:use-module (guix download)
47 #:use-module (guix git-download)
48 #:use-module (guix hg-download)
49 #:use-module (guix utils)
50 #:use-module (guix build-system asdf)
51 #:use-module (guix build-system trivial)
52 #:use-module (gnu packages c)
53 #:use-module (gnu packages compression)
54 #:use-module (gnu packages databases)
55 #:use-module (gnu packages glib)
56 #:use-module (gnu packages gtk)
57 #:use-module (gnu packages imagemagick)
58 #:use-module (gnu packages libevent)
59 #:use-module (gnu packages libffi)
60 #:use-module (gnu packages lisp)
61 #:use-module (gnu packages maths)
62 #:use-module (gnu packages networking)
63 #:use-module (gnu packages pkg-config)
64 #:use-module (gnu packages python)
65 #:use-module (gnu packages python-xyz)
66 #:use-module (gnu packages sqlite)
67 #:use-module (gnu packages tcl)
68 #:use-module (gnu packages tls)
69 #:use-module (gnu packages webkit)
70 #:use-module (gnu packages xdisorg)
71 #:use-module (ice-9 match)
72 #:use-module (srfi srfi-19))
73
74 (define-public sbcl-alexandria
75 (let ((revision "1")
76 (commit "3b849bc0116ea70f215ee6b2fbf354e862aaa9dd"))
77 (package
78 (name "sbcl-alexandria")
79 (version (git-version "1.0.0" revision commit))
80 (source
81 (origin
82 (method git-fetch)
83 (uri (git-reference
84 (url "https://gitlab.common-lisp.net/alexandria/alexandria.git")
85 (commit commit)))
86 (sha256
87 (base32
88 "04amwvx2vl691f0plcfbqqwxgib9zimih7jrn5zl7mbwvrxy022b"))
89 (file-name (git-file-name name version))))
90 (build-system asdf-build-system/sbcl)
91 (native-inputs
92 `(("rt" ,sbcl-rt)))
93 (synopsis "Collection of portable utilities for Common Lisp")
94 (description
95 "Alexandria is a collection of portable utilities. It does not contain
96 conceptual extensions to Common Lisp. It is conservative in scope, and
97 portable between implementations.")
98 (home-page "https://common-lisp.net/project/alexandria/")
99 (license license:public-domain))))
100
101 (define-public cl-alexandria
102 (sbcl-package->cl-source-package sbcl-alexandria))
103
104 (define-public ecl-alexandria
105 (sbcl-package->ecl-package sbcl-alexandria))
106
107 (define-public sbcl-net.didierverna.asdf-flv
108 (package
109 (name "sbcl-net.didierverna.asdf-flv")
110 (version "2.1")
111 (source
112 (origin
113 (method git-fetch)
114 (uri (git-reference
115 (url "https://github.com/didierverna/asdf-flv")
116 (commit (string-append "version-" version))))
117 (file-name (git-file-name "asdf-flv" version))
118 (sha256
119 (base32 "1fi2y4baxan103jbg4idjddzihy03kwnj2mzbwrknw4d4x7xlgwj"))))
120 (build-system asdf-build-system/sbcl)
121 (synopsis "Common Lisp ASDF extension to provide support for file-local variables")
122 (description "ASDF-FLV provides support for file-local variables through
123 ASDF. A file-local variable behaves like @code{*PACKAGE*} and
124 @code{*READTABLE*} with respect to @code{LOAD} and @code{COMPILE-FILE}: a new
125 dynamic binding is created before processing the file, so that any
126 modification to the variable becomes essentially file-local.
127
128 In order to make one or several variables file-local, use the macros
129 @code{SET-FILE-LOCAL-VARIABLE(S)}.")
130 (home-page "https://www.lrde.epita.fr/~didier/software/lisp/misc.php#asdf-flv")
131 (license (license:non-copyleft
132 "https://www.gnu.org/prep/maintain/html_node/License-Notices-for-Other-Files.html"
133 "GNU All-Permissive License"))))
134
135 (define-public cl-net.didierverna.asdf-flv
136 (sbcl-package->cl-source-package sbcl-net.didierverna.asdf-flv))
137
138 (define-public ecl-net.didierverna.asdf-flv
139 (sbcl-package->ecl-package sbcl-net.didierverna.asdf-flv))
140
141 (define-public sbcl-fiveam
142 (package
143 (name "sbcl-fiveam")
144 (version "1.4.1")
145 (source
146 (origin
147 (method git-fetch)
148 (uri (git-reference
149 (url "https://github.com/sionescu/fiveam.git")
150 (commit (string-append "v" version))))
151 (file-name (git-file-name "fiveam" version))
152 (sha256
153 (base32 "1q3d38pwafnwnw42clq0f8g5xw7pbzr287jl9jsqmb1vb0n1vrli"))))
154 (inputs
155 `(("alexandria" ,sbcl-alexandria)
156 ("net.didierverna.asdf-flv" ,sbcl-net.didierverna.asdf-flv)
157 ("trivial-backtrace" ,sbcl-trivial-backtrace)))
158 (build-system asdf-build-system/sbcl)
159 (synopsis "Common Lisp testing framework")
160 (description "FiveAM is a simple (as far as writing and running tests
161 goes) regression testing framework. It has been designed with Common Lisp's
162 interactive development model in mind.")
163 (home-page "https://common-lisp.net/project/fiveam/")
164 (license license:bsd-3)))
165
166 (define-public cl-fiveam
167 (sbcl-package->cl-source-package sbcl-fiveam))
168
169 (define-public ecl-fiveam
170 (sbcl-package->ecl-package sbcl-fiveam))
171
172 (define-public sbcl-bordeaux-threads
173 (package
174 (name "sbcl-bordeaux-threads")
175 (version "0.8.7")
176 (source (origin
177 (method git-fetch)
178 (uri (git-reference
179 (url "https://github.com/sionescu/bordeaux-threads.git")
180 (commit (string-append "v" version))))
181 (sha256
182 (base32 "1whpfmyxp2fsw6viqj45fqgsifgr534c575bfh5vaqw5m84b6alp"))
183 (file-name
184 (git-file-name "bordeaux-threads" version))))
185 (inputs `(("alexandria" ,sbcl-alexandria)))
186 (native-inputs `(("fiveam" ,sbcl-fiveam)))
187 (build-system asdf-build-system/sbcl)
188 (synopsis "Portable shared-state concurrency library for Common Lisp")
189 (description "BORDEAUX-THREADS is a proposed standard for a minimal
190 MP/Threading interface. It is similar to the CLIM-SYS threading and lock
191 support.")
192 (home-page "https://common-lisp.net/project/bordeaux-threads/")
193 (license license:x11)))
194
195 (define-public cl-bordeaux-threads
196 (sbcl-package->cl-source-package sbcl-bordeaux-threads))
197
198 (define-public ecl-bordeaux-threads
199 (sbcl-package->ecl-package sbcl-bordeaux-threads))
200
201 (define-public sbcl-trivial-gray-streams
202 (let ((revision "1")
203 (commit "0483ade330508b4b2edeabdb47d16ec9437ee1cb"))
204 (package
205 (name "sbcl-trivial-gray-streams")
206 (version (string-append "0.0.0-" revision "." (string-take commit 7)))
207 (source
208 (origin
209 (method git-fetch)
210 (uri
211 (git-reference
212 (url "https://github.com/trivial-gray-streams/trivial-gray-streams.git")
213 (commit commit)))
214 (sha256
215 (base32 "0m3rpf2x0zmdk3nf1qfa01j6a55vj7gkwhyw78qslcgbjlgh8p4d"))
216 (file-name
217 (string-append "trivial-gray-streams-" version "-checkout"))))
218 (build-system asdf-build-system/sbcl)
219 (synopsis "Compatibility layer for Gray streams implementations")
220 (description "Gray streams is an interface proposed for inclusion with
221 ANSI CL by David N. Gray. The proposal did not make it into ANSI CL, but most
222 popular CL implementations implement it. This package provides an extremely
223 thin compatibility layer for gray streams.")
224 (home-page "https://www.cliki.net/trivial-gray-streams")
225 (license license:x11))))
226
227 (define-public cl-trivial-gray-streams
228 (sbcl-package->cl-source-package sbcl-trivial-gray-streams))
229
230 (define-public ecl-trivial-gray-streams
231 (sbcl-package->ecl-package sbcl-trivial-gray-streams))
232
233 (define-public sbcl-fiasco
234 (let ((commit "d62f7558b21addc89f87e306f65d7f760632655f")
235 (revision "1"))
236 (package
237 (name "sbcl-fiasco")
238 (version (git-version "0.0.1" revision commit))
239 (source
240 (origin
241 (method git-fetch)
242 (uri (git-reference
243 (url "https://github.com/joaotavora/fiasco.git")
244 (commit commit)))
245 (file-name (git-file-name "fiasco" version))
246 (sha256
247 (base32
248 "1zwxs3d6iswayavcmb49z2892xhym7n556d8dnmvalc32pm9bkjh"))))
249 (build-system asdf-build-system/sbcl)
250 (inputs
251 `(("alexandria" ,sbcl-alexandria)
252 ("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
253 (synopsis "Simple and powerful test framework for Common Lisp")
254 (description "A Common Lisp test framework that treasures your failures,
255 logical continuation of Stefil. It focuses on interactive debugging.")
256 (home-page "https://github.com/joaotavora/fiasco")
257 ;; LICENCE specifies this is public-domain unless the legislation
258 ;; doesn't allow or recognize it. In that case it falls back to a
259 ;; permissive licence.
260 (license (list license:public-domain
261 (license:x11-style "file://LICENCE"))))))
262
263 (define-public cl-fiasco
264 (sbcl-package->cl-source-package sbcl-fiasco))
265
266 (define-public ecl-fiasco
267 (sbcl-package->ecl-package sbcl-fiasco))
268
269 (define-public sbcl-flexi-streams
270 (package
271 (name "sbcl-flexi-streams")
272 (version "1.0.18")
273 (source
274 (origin
275 (method git-fetch)
276 (uri (git-reference
277 (url "https://github.com/edicl/flexi-streams.git")
278 (commit (string-append "v" version))))
279 (file-name (git-file-name "flexi-streams" version))
280 (sha256
281 (base32 "0bjv7fd2acknidc5dyi3h85pn10krxv5jyxs1xg8jya2rlfv7f1j"))))
282 (build-system asdf-build-system/sbcl)
283 (arguments
284 `(#:phases
285 (modify-phases %standard-phases
286 (add-after 'unpack 'make-git-checkout-writable
287 (lambda _
288 (for-each make-file-writable (find-files "."))
289 #t)))))
290 (inputs `(("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
291 (synopsis "Implementation of virtual bivalent streams for Common Lisp")
292 (description "Flexi-streams is an implementation of \"virtual\" bivalent
293 streams that can be layered atop real binary or bivalent streams and that can
294 be used to read and write character data in various single- or multi-octet
295 encodings which can be changed on the fly. It also supplies in-memory binary
296 streams which are similar to string streams.")
297 (home-page "http://weitz.de/flexi-streams/")
298 (license license:bsd-3)))
299
300 (define-public cl-flexi-streams
301 (sbcl-package->cl-source-package sbcl-flexi-streams))
302
303 (define-public ecl-flexi-streams
304 (sbcl-package->ecl-package sbcl-flexi-streams))
305
306 (define-public sbcl-cl-ppcre
307 (package
308 (name "sbcl-cl-ppcre")
309 (version "2.1.1")
310 (source
311 (origin
312 (method git-fetch)
313 (uri (git-reference
314 (url "https://github.com/edicl/cl-ppcre.git")
315 (commit (string-append "v" version))))
316 (file-name (git-file-name "cl-ppcre" version))
317 (sha256
318 (base32 "0dwvr29diqzcg5n6jvbk2rnd90i05l7n828hhw99khmqd0kz7xsi"))))
319 (build-system asdf-build-system/sbcl)
320 (native-inputs `(("flexi-streams" ,sbcl-flexi-streams)))
321 (synopsis "Portable regular expression library for Common Lisp")
322 (description "CL-PPCRE is a portable regular expression library for Common
323 Lisp, which is compatible with perl. It is pretty fast, thread-safe, and
324 compatible with ANSI-compliant Common Lisp implementations.")
325 (home-page "http://weitz.de/cl-ppcre/")
326 (license license:bsd-2)))
327
328 (define-public cl-ppcre
329 (sbcl-package->cl-source-package sbcl-cl-ppcre))
330
331 (define-public ecl-cl-ppcre
332 (sbcl-package->ecl-package sbcl-cl-ppcre))
333
334 (define sbcl-cl-unicode-base
335 (package
336 (name "sbcl-cl-unicode-base")
337 (version "0.1.6")
338 (source (origin
339 (method git-fetch)
340 (uri (git-reference
341 (url "https://github.com/edicl/cl-unicode.git")
342 (commit (string-append "v" version))))
343 (file-name (git-file-name name version))
344 (sha256
345 (base32
346 "0ykx2s9lqfl74p1px0ik3l2izd1fc9jd1b4ra68s5x34rvjy0hza"))))
347 (build-system asdf-build-system/sbcl)
348 (arguments
349 '(#:asd-file "cl-unicode.asd"
350 #:asd-system-name "cl-unicode/base"))
351 (inputs
352 `(("cl-ppcre" ,sbcl-cl-ppcre)))
353 (home-page "http://weitz.de/cl-unicode/")
354 (synopsis "Portable Unicode library for Common Lisp")
355 (description "CL-UNICODE is a portable Unicode library Common Lisp, which
356 is compatible with perl. It is pretty fast, thread-safe, and compatible with
357 ANSI-compliant Common Lisp implementations.")
358 (license license:bsd-2)))
359
360 (define-public sbcl-cl-unicode
361 (package
362 (inherit sbcl-cl-unicode-base)
363 (name "sbcl-cl-unicode")
364 (inputs
365 `(("cl-unicode/base" ,sbcl-cl-unicode-base)
366 ,@(package-inputs sbcl-cl-unicode-base)))
367 (native-inputs
368 `(("flexi-streams" ,sbcl-flexi-streams)))
369 (arguments '())))
370
371 (define-public ecl-cl-unicode
372 (sbcl-package->ecl-package sbcl-cl-unicode))
373
374 (define-public cl-unicode
375 (sbcl-package->cl-source-package sbcl-cl-unicode))
376
377 (define-public sbcl-zpb-ttf
378 (package
379 (name "sbcl-zpb-ttf")
380 (version "1.0.3")
381 (source
382 (origin
383 (method git-fetch)
384 (uri (git-reference
385 (url "https://github.com/xach/zpb-ttf.git")
386 (commit (string-append "release-" version))))
387 (file-name (git-file-name name version))
388 (sha256
389 (base32
390 "1wh66vjijzqlydnrihynpwp6796917xwrh0i9li93c17kyxa74ih"))))
391 (build-system asdf-build-system/sbcl)
392 (home-page "https://github.com/xach/zpb-ttf")
393 (synopsis "TrueType font file access for Common Lisp")
394 (description
395 "ZPB-TTF is a TrueType font file parser that provides an interface for
396 reading typographic metrics, glyph outlines, and other information from the
397 file.")
398 (license license:bsd-2)))
399
400 (define-public ecl-zpb-ttf
401 (sbcl-package->ecl-package sbcl-zpb-ttf))
402
403 (define-public cl-zpb-ttf
404 (sbcl-package->cl-source-package sbcl-zpb-ttf))
405
406 (define-public sbcl-cl-aa
407 (package
408 (name "sbcl-cl-aa")
409 (version "0.1.5")
410 (source
411 (origin
412 (method url-fetch)
413 (uri (string-append "http://projects.tuxee.net/cl-vectors/"
414 "files/cl-vectors-" version ".tar.gz"))
415 (sha256
416 (base32
417 "04lhwi0kq8pkwhgd885pk80m1cp9sfvjjn5zj70s1dnckibhdmqh"))))
418 (build-system asdf-build-system/sbcl)
419 (arguments '(#:asd-file "cl-aa.asd"))
420 (home-page "http://projects.tuxee.net/cl-vectors/")
421 (synopsis "Polygon rasterizer")
422 (description
423 "This is a Common Lisp library implementing the AA polygon rasterization
424 algorithm from the @url{http://antigrain.com, Antigrain} project.")
425 (license license:expat)))
426
427 (define-public ecl-cl-aa
428 (sbcl-package->ecl-package sbcl-cl-aa))
429
430 (define-public cl-aa
431 (sbcl-package->cl-source-package sbcl-cl-aa))
432
433 (define-public sbcl-cl-paths
434 (package
435 (inherit sbcl-cl-aa)
436 (name "sbcl-cl-paths")
437 (arguments '(#:asd-file "cl-paths.asd"))
438 (synopsis "Facilities to create and manipulate vectorial paths")
439 (description
440 "This package provides facilities to create and manipulate vectorial
441 paths.")))
442
443 (define-public ecl-cl-paths
444 (sbcl-package->ecl-package sbcl-cl-paths))
445
446 (define-public cl-paths
447 (sbcl-package->cl-source-package sbcl-cl-paths))
448
449 (define-public sbcl-cl-paths-ttf
450 (package
451 (inherit sbcl-cl-aa)
452 (name "sbcl-cl-paths-ttf")
453 (arguments '(#:asd-file "cl-paths-ttf.asd"))
454 (inputs
455 `(("cl-paths" ,sbcl-cl-paths)
456 ("zpb-ttf" ,sbcl-zpb-ttf)))
457 (synopsis "Facilities to create and manipulate vectorial paths")
458 (description
459 "This package provides facilities to create and manipulate vectorial
460 paths.")))
461
462 (define-public ecl-cl-paths-ttf
463 (sbcl-package->ecl-package sbcl-cl-paths-ttf))
464
465 (define-public cl-paths-ttf
466 (sbcl-package->cl-source-package sbcl-cl-paths-ttf))
467
468 (define-public sbcl-cl-vectors
469 (package
470 (inherit sbcl-cl-aa)
471 (name "sbcl-cl-vectors")
472 (arguments '(#:asd-file "cl-vectors.asd"))
473 (inputs
474 `(("cl-aa" ,sbcl-cl-aa)
475 ("cl-paths" ,sbcl-cl-paths)))
476 (synopsis "Create, transform and render anti-aliased vectorial paths")
477 (description
478 "This is a pure Common Lisp library to create, transform and render
479 anti-aliased vectorial paths.")))
480
481 (define-public ecl-cl-vectors
482 (sbcl-package->ecl-package sbcl-cl-vectors))
483
484 (define-public cl-vectors
485 (sbcl-package->cl-source-package sbcl-cl-vectors))
486
487 (define-public sbcl-spatial-trees
488 ;; There have been no releases.
489 (let ((commit "81fdad0a0bf109c80a53cc96eca2e093823400ba")
490 (revision "1"))
491 (package
492 (name "sbcl-spatial-trees")
493 (version (git-version "0" revision commit))
494 (source
495 (origin
496 (method git-fetch)
497 (uri (git-reference
498 (url "https://github.com/rpav/spatial-trees.git")
499 (commit commit)))
500 (file-name (git-file-name name version))
501 (sha256
502 (base32
503 "11rhc6h501dwcik2igkszz7b9n515cr99m5pjh4r2qfwgiri6ysa"))))
504 (build-system asdf-build-system/sbcl)
505 (arguments
506 '(#:tests? #f ; spatial-trees.test requires spatial-trees.nns
507 #:asd-file "spatial-trees.asd"
508 #:test-asd-file "spatial-trees.test.asd"))
509 (native-inputs
510 `(("fiveam" ,sbcl-fiveam)))
511 (home-page "https://github.com/rpav/spatial-trees")
512 (synopsis "Dynamic index data structures for spatially-extended data")
513 (description
514 "Spatial-trees is a set of dynamic index data structures for
515 spatially-extended data.")
516 (license license:bsd-3))))
517
518 (define-public ecl-spatial-trees
519 (sbcl-package->ecl-package sbcl-spatial-trees))
520
521 (define-public cl-spatial-trees
522 (sbcl-package->cl-source-package sbcl-spatial-trees))
523
524 (define-public sbcl-flexichain
525 ;; There are no releases.
526 (let ((commit "13d2a6c505ed0abfcd4c4ec7d7145059b06855d6")
527 (revision "1"))
528 (package
529 (name "sbcl-flexichain")
530 (version "1.5.1")
531 (source
532 (origin
533 (method git-fetch)
534 (uri (git-reference
535 (url "https://github.com/robert-strandh/Flexichain.git")
536 (commit commit)))
537 (file-name (git-file-name name version))
538 (sha256
539 (base32
540 "0pfyvhsfbjd2sjb30grfs52r51a428xglv7bwydvpg2lc117qimg"))))
541 (build-system asdf-build-system/sbcl)
542 (home-page "https://github.com/robert-strandh/Flexichain.git")
543 (synopsis "Dynamically add elements to or remove them from sequences")
544 (description
545 "This package provides an implementation of the flexichain protocol,
546 allowing client code to dynamically add elements to, and delete elements from
547 a sequence (or chain) of such elements.")
548 (license license:lgpl2.1+))))
549
550 (define-public ecl-flexichain
551 (sbcl-package->ecl-package sbcl-flexichain))
552
553 (define-public cl-flexichain
554 (sbcl-package->cl-source-package sbcl-flexichain))
555
556 (define-public sbcl-cl-pdf
557 ;; There are no releases
558 (let ((commit "752e337e6d6fc206f09d091a982e7f8e5c404e4e")
559 (revision "1"))
560 (package
561 (name "sbcl-cl-pdf")
562 (version (git-version "0" revision commit))
563 (source
564 (origin
565 (method git-fetch)
566 (uri (git-reference
567 (url "https://github.com/mbattyani/cl-pdf.git")
568 (commit commit)))
569 (file-name (git-file-name name version))
570 (sha256
571 (base32
572 "1cg3k3m3r11ipb8j008y8ipynj97l3xjlpi2knqc9ndmx4r3kb1r"))))
573 (build-system asdf-build-system/sbcl)
574 (inputs
575 `(("iterate" ,sbcl-iterate)
576 ("zpb-ttf" ,sbcl-zpb-ttf)))
577 (home-page "https://github.com/mbattyani/cl-pdf")
578 (synopsis "Common Lisp library for generating PDF files")
579 (description
580 "CL-PDF is a cross-platform Common Lisp library for generating PDF
581 files.")
582 (license license:bsd-2))))
583
584 (define-public ecl-cl-pdf
585 (sbcl-package->ecl-package sbcl-cl-pdf))
586
587 (define-public cl-pdf
588 (sbcl-package->cl-source-package sbcl-cl-pdf))
589
590 (define-public sbcl-clx
591 (package
592 (name "sbcl-clx")
593 (version "0.7.5")
594 (source
595 (origin
596 (method git-fetch)
597 (uri
598 (git-reference
599 (url "https://github.com/sharplispers/clx.git")
600 (commit version)))
601 (sha256
602 (base32
603 "1vi67z9hpj5rr4xcmfbfwzmlcc0ah7hzhrmfid6lqdkva238v2wf"))
604 (file-name (string-append "clx-" version))))
605 (build-system asdf-build-system/sbcl)
606 (native-inputs
607 `(("fiasco" ,sbcl-fiasco)))
608 (home-page "https://www.cliki.net/portable-clx")
609 (synopsis "X11 client library for Common Lisp")
610 (description "CLX is an X11 client library for Common Lisp. The code was
611 originally taken from a CMUCL distribution, was modified somewhat in order to
612 make it compile and run under SBCL, then a selection of patches were added
613 from other CLXes around the net.")
614 (license license:x11)))
615
616 (define-public cl-clx
617 (sbcl-package->cl-source-package sbcl-clx))
618
619 (define-public ecl-clx
620 (sbcl-package->ecl-package sbcl-clx))
621
622 (define-public sbcl-cl-ppcre-unicode
623 (package (inherit sbcl-cl-ppcre)
624 (name "sbcl-cl-ppcre-unicode")
625 (arguments
626 `(#:tests? #f ; tests fail with "Component :CL-PPCRE-TEST not found"
627 #:asd-file "cl-ppcre-unicode.asd"))
628 (inputs
629 `(("sbcl-cl-ppcre" ,sbcl-cl-ppcre)
630 ("sbcl-cl-unicode" ,sbcl-cl-unicode)))))
631
632 (define-public ecl-cl-ppcre-unicode
633 (sbcl-package->ecl-package sbcl-cl-ppcre-unicode))
634
635 ;; The slynk that users expect to install includes all of slynk's contrib
636 ;; modules. Therefore, we build the base module and all contribs first; then
637 ;; we expose the union of these as `sbcl-slynk'. The following variable
638 ;; describes the base module.
639 (define sbcl-slynk-boot0
640 (let ((revision "2")
641 (commit "cbf84c36c4eca8b032e3fd16177a7bc02df3ec4c"))
642 (package
643 (name "sbcl-slynk-boot0")
644 (version (string-append "1.0.0-beta-" revision "." (string-take commit 7)))
645 (source
646 (origin
647 (method git-fetch)
648 (uri
649 (git-reference
650 (url "https://github.com/joaotavora/sly.git")
651 (commit commit)))
652 (sha256
653 (base32 "13dyhsravn591p7g6is01mp2ynzjnnj7pwgi57r6xqmd4611y9vh"))
654 (file-name (string-append "slynk-" version "-checkout"))
655 (modules '((guix build utils)
656 (ice-9 ftw)))
657 (snippet
658 '(begin
659 ;; Move the contribs into the main source directory for easier
660 ;; access
661 (substitute* "slynk/slynk.asd"
662 (("\\.\\./contrib")
663 "contrib")
664 (("\\(defsystem :slynk/util")
665 "(defsystem :slynk/util :depends-on (:slynk)")
666 ((":depends-on \\(:slynk :slynk/util\\)")
667 ":depends-on (:slynk :slynk-util)"))
668 (substitute* "contrib/slynk-trace-dialog.lisp"
669 (("\\(slynk::reset-inspector\\)") ; Causes problems on load
670 "nil"))
671 (substitute* "contrib/slynk-profiler.lisp"
672 (("slynk:to-line")
673 "slynk-pprint-to-line"))
674 (substitute* "contrib/slynk-fancy-inspector.lisp"
675 (("slynk/util") "slynk-util")
676 ((":compile-toplevel :load-toplevel") ""))
677 (rename-file "contrib" "slynk/contrib")
678 ;; Move slynk's contents into the base directory for easier
679 ;; access
680 (for-each (lambda (file)
681 (unless (string-prefix? "." file)
682 (rename-file (string-append "slynk/" file)
683 (string-append "./" (basename file)))))
684 (scandir "slynk"))
685 #t))))
686 (build-system asdf-build-system/sbcl)
687 (arguments
688 `(#:tests? #f ; No test suite
689 #:asd-system-name "slynk"))
690 (synopsis "Common Lisp IDE for Emacs")
691 (description "SLY is a fork of SLIME, an IDE backend for Common Lisp.
692 It also features a completely redesigned REPL based on Emacs's own
693 full-featured comint.el, live code annotations, and a consistent interactive
694 button interface. Everything can be copied to the REPL. One can create
695 multiple inspectors with independent history.")
696 (home-page "https://github.com/joaotavora/sly")
697 (license license:public-domain)
698 (properties `((cl-source-variant . ,(delay cl-slynk)))))))
699
700 (define-public cl-slynk
701 (package
702 (inherit (sbcl-package->cl-source-package sbcl-slynk-boot0))
703 (name "cl-slynk")))
704
705 (define ecl-slynk-boot0
706 (sbcl-package->ecl-package sbcl-slynk-boot0))
707
708 (define sbcl-slynk-arglists
709 (package
710 (inherit sbcl-slynk-boot0)
711 (name "sbcl-slynk-arglists")
712 (inputs `(("slynk" ,sbcl-slynk-boot0)))
713 (arguments
714 (substitute-keyword-arguments (package-arguments sbcl-slynk-boot0)
715 ((#:asd-file _ "") "slynk.asd")
716 ((#:asd-system-name _ #f) "slynk/arglists")))))
717
718 (define ecl-slynk-arglists
719 (sbcl-package->ecl-package sbcl-slynk-arglists))
720
721 (define sbcl-slynk-util
722 (package
723 (inherit sbcl-slynk-boot0)
724 (name "sbcl-slynk-util")
725 (inputs `(("slynk" ,sbcl-slynk-boot0)))
726 (arguments
727 (substitute-keyword-arguments (package-arguments sbcl-slynk-boot0)
728 ((#:asd-file _ "") "slynk.asd")
729 ((#:asd-system-name _ #f) "slynk/util")))))
730
731 (define ecl-slynk-util
732 (sbcl-package->ecl-package sbcl-slynk-util))
733
734 (define sbcl-slynk-fancy-inspector
735 (package
736 (inherit sbcl-slynk-arglists)
737 (name "sbcl-slynk-fancy-inspector")
738 (inputs `(("slynk-util" ,sbcl-slynk-util)
739 ,@(package-inputs sbcl-slynk-arglists)))
740 (arguments
741 (substitute-keyword-arguments (package-arguments sbcl-slynk-arglists)
742 ((#:asd-system-name _ #f) "slynk/fancy-inspector")))))
743
744 (define ecl-slynk-fancy-inspector
745 (sbcl-package->ecl-package sbcl-slynk-fancy-inspector))
746
747 (define sbcl-slynk-package-fu
748 (package
749 (inherit sbcl-slynk-arglists)
750 (name "sbcl-slynk-package-fu")
751 (arguments
752 (substitute-keyword-arguments (package-arguments sbcl-slynk-arglists)
753 ((#:asd-system-name _ #f) "slynk/package-fu")))))
754
755 (define ecl-slynk-package-fu
756 (sbcl-package->ecl-package sbcl-slynk-package-fu))
757
758 (define sbcl-slynk-mrepl
759 (package
760 (inherit sbcl-slynk-fancy-inspector)
761 (name "sbcl-slynk-mrepl")
762 (arguments
763 (substitute-keyword-arguments (package-arguments sbcl-slynk-arglists)
764 ((#:asd-system-name _ #f) "slynk/mrepl")))))
765
766 (define ecl-slynk-mrepl
767 (sbcl-package->ecl-package sbcl-slynk-mrepl))
768
769 (define sbcl-slynk-trace-dialog
770 (package
771 (inherit sbcl-slynk-arglists)
772 (name "sbcl-slynk-trace-dialog")
773 (arguments
774 (substitute-keyword-arguments (package-arguments sbcl-slynk-arglists)
775 ((#:asd-system-name _ #f) "slynk/trace-dialog")))))
776
777 (define ecl-slynk-trace-dialog
778 (sbcl-package->ecl-package sbcl-slynk-trace-dialog))
779
780 (define sbcl-slynk-profiler
781 (package
782 (inherit sbcl-slynk-arglists)
783 (name "sbcl-slynk-profiler")
784 (arguments
785 (substitute-keyword-arguments (package-arguments sbcl-slynk-arglists)
786 ((#:asd-system-name _ #f) "slynk/profiler")))))
787
788 (define ecl-slynk-profiler
789 (sbcl-package->ecl-package sbcl-slynk-profiler))
790
791 (define sbcl-slynk-stickers
792 (package
793 (inherit sbcl-slynk-arglists)
794 (name "sbcl-slynk-stickers")
795 (arguments
796 (substitute-keyword-arguments (package-arguments sbcl-slynk-arglists)
797 ((#:asd-system-name _ #f) "slynk/stickers")))))
798
799 (define ecl-slynk-stickers
800 (sbcl-package->ecl-package sbcl-slynk-stickers))
801
802 (define sbcl-slynk-indentation
803 (package
804 (inherit sbcl-slynk-arglists)
805 (name "sbcl-slynk-indentation")
806 (arguments
807 (substitute-keyword-arguments (package-arguments sbcl-slynk-arglists)
808 ((#:asd-system-name _ #f) "slynk/indentation")))))
809
810 (define ecl-slynk-indentation
811 (sbcl-package->ecl-package sbcl-slynk-indentation))
812
813 (define sbcl-slynk-retro
814 (package
815 (inherit sbcl-slynk-arglists)
816 (name "sbcl-slynk-retro")
817 (arguments
818 (substitute-keyword-arguments (package-arguments sbcl-slynk-arglists)
819 ((#:asd-system-name _ #f) "slynk/retro")))))
820
821 (define ecl-slynk-retro
822 (sbcl-package->ecl-package sbcl-slynk-retro))
823
824 (define slynk-systems
825 '("slynk"
826 "slynk-util"
827 "slynk-arglists"
828 "slynk-fancy-inspector"
829 "slynk-package-fu"
830 "slynk-mrepl"
831 "slynk-profiler"
832 "slynk-trace-dialog"
833 "slynk-stickers"
834 "slynk-indentation"
835 "slynk-retro"))
836
837 (define-public sbcl-slynk
838 (package
839 (inherit sbcl-slynk-boot0)
840 (name "sbcl-slynk")
841 (inputs
842 `(("slynk" ,sbcl-slynk-boot0)
843 ("slynk-util" ,sbcl-slynk-util)
844 ("slynk-arglists" ,sbcl-slynk-arglists)
845 ("slynk-fancy-inspector" ,sbcl-slynk-fancy-inspector)
846 ("slynk-package-fu" ,sbcl-slynk-package-fu)
847 ("slynk-mrepl" ,sbcl-slynk-mrepl)
848 ("slynk-profiler" ,sbcl-slynk-profiler)
849 ("slynk-trace-dialog" ,sbcl-slynk-trace-dialog)
850 ("slynk-stickers" ,sbcl-slynk-stickers)
851 ("slynk-indentation" ,sbcl-slynk-indentation)
852 ("slynk-retro" ,sbcl-slynk-retro)))
853 (native-inputs `(("sbcl" ,sbcl)))
854 (build-system trivial-build-system)
855 (source #f)
856 (outputs '("out" "image"))
857 (arguments
858 `(#:modules ((guix build union)
859 (guix build utils)
860 (guix build lisp-utils))
861 #:builder
862 (begin
863 (use-modules (ice-9 match)
864 (srfi srfi-1)
865 (guix build union)
866 (guix build lisp-utils))
867
868 (union-build
869 (assoc-ref %outputs "out")
870 (filter-map
871 (match-lambda
872 ((name . path)
873 (if (string-prefix? "slynk" name) path #f)))
874 %build-inputs))
875
876 (prepend-to-source-registry
877 (string-append (assoc-ref %outputs "out") "//"))
878
879 (parameterize ((%lisp-type "sbcl")
880 (%lisp (string-append (assoc-ref %build-inputs "sbcl")
881 "/bin/sbcl")))
882 (build-image (string-append
883 (assoc-ref %outputs "image")
884 "/bin/slynk")
885 %outputs
886 #:dependencies ',slynk-systems))
887 #t)))))
888
889 (define-public ecl-slynk
890 (package
891 (inherit sbcl-slynk)
892 (name "ecl-slynk")
893 (inputs
894 (map (match-lambda
895 ((name pkg . _)
896 (list name (sbcl-package->ecl-package pkg))))
897 (package-inputs sbcl-slynk)))
898 (native-inputs '())
899 (outputs '("out"))
900 (arguments
901 '(#:modules ((guix build union))
902 #:builder
903 (begin
904 (use-modules (ice-9 match)
905 (guix build union))
906 (match %build-inputs
907 (((names . paths) ...)
908 (union-build (assoc-ref %outputs "out")
909 paths)
910 #t)))))))
911
912 (define-public sbcl-parse-js
913 (let ((commit "fbadc6029bec7039602abfc06c73bb52970998f6")
914 (revision "1"))
915 (package
916 (name "sbcl-parse-js")
917 (version (string-append "0.0.0-" revision "." (string-take commit 9)))
918 (source
919 (origin
920 (method git-fetch)
921 (uri (git-reference
922 (url "http://marijn.haverbeke.nl/git/parse-js")
923 (commit commit)))
924 (file-name (string-append name "-" commit "-checkout"))
925 (sha256
926 (base32
927 "1wddrnr5kiya5s3gp4cdq6crbfy9fqcz7fr44p81502sj3bvdv39"))))
928 (build-system asdf-build-system/sbcl)
929 (home-page "http://marijnhaverbeke.nl/parse-js/")
930 (synopsis "Parse JavaScript")
931 (description "Parse-js is a Common Lisp package for parsing
932 JavaScript (ECMAScript 3). It has basic support for ECMAScript 5.")
933 (license license:zlib))))
934
935 (define-public cl-parse-js
936 (sbcl-package->cl-source-package sbcl-parse-js))
937
938 (define-public sbcl-parse-number
939 (package
940 (name "sbcl-parse-number")
941 (version "1.7")
942 (source
943 (origin
944 (method git-fetch)
945 (uri (git-reference
946 (url "https://github.com/sharplispers/parse-number/")
947 (commit (string-append "v" version))))
948 (file-name (git-file-name name version))
949 (sha256
950 (base32
951 "0sk06ib1bhqv9y39vwnnw44vmbc4b0kvqm37xxmkxd4dwchq82d7"))))
952 (build-system asdf-build-system/sbcl)
953 (home-page "http://www.cliki.net/PARSE-NUMBER")
954 (synopsis "Parse numbers")
955 (description "@code{parse-number} is a library of functions for parsing
956 strings into one of the standard Common Lisp number types without using the
957 reader. @code{parse-number} accepts an arbitrary string and attempts to parse
958 the string into one of the standard Common Lisp number types, if possible, or
959 else @code{parse-number} signals an error of type @code{invalid-number}.")
960 (license license:bsd-3)))
961
962 (define-public cl-parse-number
963 (sbcl-package->cl-source-package sbcl-parse-number))
964
965 (define-public sbcl-iterate
966 (package
967 (name "sbcl-iterate")
968 (version "1.5")
969 (source
970 (origin
971 (method url-fetch)
972 (uri (string-append "https://common-lisp.net/project/iterate/releases/"
973 "iterate-" version ".tar.gz"))
974 (sha256
975 (base32
976 "1lqsbhrkfl0yif46aymvb7l3nb9wdcmj4jyw485blj32jb4famzn"))))
977 (build-system asdf-build-system/sbcl)
978 (native-inputs
979 `(("rt" ,sbcl-rt)))
980 (home-page "https://common-lisp.net/project/iterate/")
981 (synopsis "Iteration construct for Common Lisp")
982 (description "@code{iterate} is an iteration construct for Common Lisp.
983 It is similar to the @code{CL:LOOP} macro, with these distinguishing marks:
984
985 @itemize
986 @item it is extensible,
987 @item it helps editors like Emacs indent iterate forms by having a more
988 lisp-like syntax, and
989 @item it isn't part of the ANSI standard for Common Lisp.
990 @end itemize\n")
991 (license license:expat)))
992
993 (define-public cl-iterate
994 (sbcl-package->cl-source-package sbcl-iterate))
995
996 (define-public ecl-iterate
997 (sbcl-package->ecl-package sbcl-iterate))
998
999 (define-public sbcl-cl-uglify-js
1000 ;; There have been many bug fixes since the 2010 release.
1001 (let ((commit "429c5e1d844e2f96b44db8fccc92d6e8e28afdd5")
1002 (revision "1"))
1003 (package
1004 (name "sbcl-cl-uglify-js")
1005 (version (string-append "0.1-" revision "." (string-take commit 9)))
1006 (source
1007 (origin
1008 (method git-fetch)
1009 (uri (git-reference
1010 (url "https://github.com/mishoo/cl-uglify-js.git")
1011 (commit commit)))
1012 (file-name (git-file-name name version))
1013 (sha256
1014 (base32
1015 "0k39y3c93jgxpr7gwz7w0d8yknn1fdnxrjhd03057lvk5w8js27a"))))
1016 (build-system asdf-build-system/sbcl)
1017 (inputs
1018 `(("sbcl-parse-js" ,sbcl-parse-js)
1019 ("sbcl-cl-ppcre" ,sbcl-cl-ppcre)
1020 ("sbcl-cl-ppcre-unicode" ,sbcl-cl-ppcre-unicode)
1021 ("sbcl-parse-number" ,sbcl-parse-number)
1022 ("sbcl-iterate" ,sbcl-iterate)))
1023 (home-page "https://github.com/mishoo/cl-uglify-js")
1024 (synopsis "JavaScript compressor library for Common Lisp")
1025 (description "This is a Common Lisp version of UglifyJS, a JavaScript
1026 compressor. It works on data produced by @code{parse-js} to generate a
1027 @dfn{minified} version of the code. Currently it can:
1028
1029 @itemize
1030 @item reduce variable names (usually to single letters)
1031 @item join consecutive @code{var} statements
1032 @item resolve simple binary expressions
1033 @item group most consecutive statements using the @code{sequence} operator (comma)
1034 @item remove unnecessary blocks
1035 @item convert @code{IF} expressions in various ways that result in smaller code
1036 @item remove some unreachable code
1037 @end itemize\n")
1038 (license license:zlib))))
1039
1040 (define-public cl-uglify-js
1041 (sbcl-package->cl-source-package sbcl-cl-uglify-js))
1042
1043 (define-public uglify-js
1044 (package
1045 (inherit sbcl-cl-uglify-js)
1046 (name "uglify-js")
1047 (build-system trivial-build-system)
1048 (arguments
1049 `(#:modules ((guix build utils))
1050 #:builder
1051 (let* ((bin (string-append (assoc-ref %outputs "out") "/bin/"))
1052 (script (string-append bin "uglify-js")))
1053 (use-modules (guix build utils))
1054 (mkdir-p bin)
1055 (with-output-to-file script
1056 (lambda _
1057 (format #t "#!~a/bin/sbcl --script
1058 (require :asdf)
1059 (push (truename \"~a/lib/sbcl\") asdf:*central-registry*)"
1060 (assoc-ref %build-inputs "sbcl")
1061 (assoc-ref %build-inputs "sbcl-cl-uglify-js"))
1062 ;; FIXME: cannot use progn here because otherwise it fails to
1063 ;; find cl-uglify-js.
1064 (for-each
1065 write
1066 '(;; Quiet, please!
1067 (let ((*standard-output* (make-broadcast-stream))
1068 (*error-output* (make-broadcast-stream)))
1069 (asdf:load-system :cl-uglify-js))
1070 (let ((file (cadr *posix-argv*)))
1071 (if file
1072 (format t "~a"
1073 (cl-uglify-js:ast-gen-code
1074 (cl-uglify-js:ast-mangle
1075 (cl-uglify-js:ast-squeeze
1076 (with-open-file (in file)
1077 (parse-js:parse-js in))))
1078 :beautify nil))
1079 (progn
1080 (format *error-output*
1081 "Please provide a JavaScript file.~%")
1082 (sb-ext:exit :code 1))))))))
1083 (chmod script #o755)
1084 #t)))
1085 (inputs
1086 `(("sbcl" ,sbcl)
1087 ("sbcl-cl-uglify-js" ,sbcl-cl-uglify-js)))
1088 (synopsis "JavaScript compressor")))
1089
1090 (define-public sbcl-cl-strings
1091 (let ((revision "1")
1092 (commit "c5c5cbafbf3e6181d03c354d66e41a4f063f00ae"))
1093 (package
1094 (name "sbcl-cl-strings")
1095 (version (git-version "0.0.0" revision commit))
1096 (source
1097 (origin
1098 (method git-fetch)
1099 (uri (git-reference
1100 (url "https://github.com/diogoalexandrefranco/cl-strings")
1101 (commit commit)))
1102 (sha256
1103 (base32
1104 "00754mfaqallj480lwd346nkfb6ra8pa8xcxcylf4baqn604zlmv"))
1105 (file-name (string-append "cl-strings-" version "-checkout"))))
1106 (build-system asdf-build-system/sbcl)
1107 (synopsis "Portable, dependency-free set of utilities to manipulate strings in Common Lisp")
1108 (description
1109 "@command{cl-strings} is a small, portable, dependency-free set of
1110 utilities that make it even easier to manipulate text in Common Lisp. It has
1111 100% test coverage and works at least on sbcl, ecl, ccl, abcl and clisp.")
1112 (home-page "https://github.com/diogoalexandrefranco/cl-strings")
1113 (license license:expat))))
1114
1115 (define-public cl-strings
1116 (sbcl-package->cl-source-package sbcl-cl-strings))
1117
1118 (define-public ecl-cl-strings
1119 (sbcl-package->ecl-package sbcl-cl-strings))
1120
1121 (define-public sbcl-trivial-features
1122 (package
1123 (name "sbcl-trivial-features")
1124 (version "0.8")
1125 (source
1126 (origin
1127 (method git-fetch)
1128 (uri (git-reference
1129 (url "https://github.com/trivial-features/trivial-features.git")
1130 (commit (string-append "v" version))))
1131 (file-name (git-file-name "trivial-features" version))
1132 (sha256
1133 (base32 "0ccv7dqyrk55xga78i5vzlic7mdwp28in3g1a8fqhlk6626scsq9"))))
1134 (build-system asdf-build-system/sbcl)
1135 (arguments '(#:tests? #f))
1136 (home-page "https://cliki.net/trivial-features")
1137 (synopsis "Ensures consistency of @code{*FEATURES*} in Common Lisp")
1138 (description "Trivial-features ensures that @code{*FEATURES*} is
1139 consistent across multiple Common Lisp implementations.")
1140 (license license:expat)))
1141
1142 (define-public cl-trivial-features
1143 (sbcl-package->cl-source-package sbcl-trivial-features))
1144
1145 (define-public ecl-trivial-features
1146 (sbcl-package->ecl-package sbcl-trivial-features))
1147
1148 (define-public sbcl-hu.dwim.asdf
1149 (package
1150 (name "sbcl-hu.dwim.asdf")
1151 (version "20190521")
1152 (source
1153 (origin
1154 (method url-fetch)
1155 (uri (string-append "http://beta.quicklisp.org/archive/hu.dwim.asdf/"
1156 "2019-05-21/hu.dwim.asdf-" version "-darcs.tgz"))
1157 (sha256
1158 (base32
1159 "0rsbv71vyszy8w35yjwb5h6zcmknjq223hkzir79y72qdsc6sabn"))))
1160 (build-system asdf-build-system/sbcl)
1161 (home-page "https://hub.darcs.net/hu.dwim/hu.dwim.asdf")
1162 (synopsis "Extensions to ASDF")
1163 (description "Various ASDF extensions such as attached test and
1164 documentation system, explicit development support, etc.")
1165 (license license:public-domain)))
1166
1167 (define-public cl-hu.dwim.asdf
1168 (sbcl-package->cl-source-package sbcl-hu.dwim.asdf))
1169
1170 (define-public ecl-hu.dwim.asdf
1171 (sbcl-package->ecl-package sbcl-hu.dwim.asdf))
1172
1173 (define-public sbcl-hu.dwim.stefil
1174 (let ((commit "ab6d1aa8995878a1b66d745dfd0ba021090bbcf9"))
1175 (package
1176 (name "sbcl-hu.dwim.stefil")
1177 (version (git-version "0.0.0" "1" commit))
1178 (source
1179 (origin
1180 (method git-fetch)
1181 (uri
1182 (git-reference
1183 (url "https://gitlab.common-lisp.net/xcvb/hu.dwim.stefil.git")
1184 (commit commit)))
1185 (sha256
1186 (base32 "1d8yccw65zj3zh46cbi3x6nmn1dwdb76s9d0av035077mvyirqqp"))
1187 (file-name (git-file-name "hu.dwim.stefil" version))))
1188 (build-system asdf-build-system/sbcl)
1189 (native-inputs
1190 `(("asdf:cl-hu.dwim.asdf" ,sbcl-hu.dwim.asdf)))
1191 (inputs
1192 `(("sbcl-alexandria" ,sbcl-alexandria)))
1193 (home-page "https://hub.darcs.net/hu.dwim/hu.dwim.stefil")
1194 (synopsis "Simple test framework")
1195 (description "Stefil is a simple test framework for Common Lisp,
1196 with a focus on interactive development.")
1197 (license license:public-domain))))
1198
1199 (define-public cl-hu.dwim.stefil
1200 (sbcl-package->cl-source-package sbcl-hu.dwim.stefil))
1201
1202 (define-public ecl-hu.dwim.stefil
1203 (sbcl-package->ecl-package sbcl-hu.dwim.stefil))
1204
1205 (define-public sbcl-babel
1206 (package
1207 (name "sbcl-babel")
1208 (version "0.5.0")
1209 (source
1210 (origin
1211 (method git-fetch)
1212 (uri (git-reference
1213 (url "https://github.com/cl-babel/babel.git")
1214 (commit (string-append "v" version))))
1215 (file-name (git-file-name "babel" version))
1216 (sha256
1217 (base32 "139a8rn2gnhj082n8jg01gc8fyr63hkj57hgrnmb3d1r327yc77f"))))
1218 (build-system asdf-build-system/sbcl)
1219 (native-inputs
1220 `(("tests:cl-hu.dwim.stefil" ,sbcl-hu.dwim.stefil)))
1221 (inputs
1222 `(("sbcl-alexandria" ,sbcl-alexandria)
1223 ("sbcl-trivial-features" ,sbcl-trivial-features)))
1224 (home-page "https://common-lisp.net/project/babel/")
1225 (synopsis "Charset encoding and decoding library")
1226 (description "Babel is a charset encoding and decoding library, not unlike
1227 GNU libiconv, but completely written in Common Lisp.")
1228 (license license:expat)))
1229
1230 (define-public cl-babel
1231 (sbcl-package->cl-source-package sbcl-babel))
1232
1233 (define-public ecl-babel
1234 (sbcl-package->ecl-package sbcl-babel))
1235
1236 (define-public sbcl-cl-yacc
1237 (package
1238 (name "sbcl-cl-yacc")
1239 (version "0.3")
1240 (source
1241 (origin
1242 (method git-fetch)
1243 (uri (git-reference
1244 (url "https://github.com/jech/cl-yacc")
1245 (commit (string-append "cl-yacc-" version))))
1246 (sha256
1247 (base32
1248 "16946pzf8vvadnyfayvj8rbh4zjzw90h0azz2qk1mxrvhh5wklib"))
1249 (file-name (string-append "cl-yacc-" version "-checkout"))))
1250 (build-system asdf-build-system/sbcl)
1251 (arguments
1252 `(#:asd-file "yacc.asd"
1253 #:asd-system-name "yacc"))
1254 (synopsis "LALR(1) parser generator for Common Lisp, similar in spirit to Yacc")
1255 (description
1256 "CL-Yacc is a LALR(1) parser generator for Common Lisp, similar in spirit
1257 to AT&T Yacc, Berkeley Yacc, GNU Bison, Zebu, lalr.cl or lalr.scm.
1258
1259 CL-Yacc uses the algorithm due to Aho and Ullman, which is the one also used
1260 by AT&T Yacc, Berkeley Yacc and Zebu. It does not use the faster algorithm due
1261 to DeRemer and Pennello, which is used by Bison and lalr.scm (not lalr.cl).")
1262 (home-page "https://www.irif.fr/~jch//software/cl-yacc/")
1263 (license license:expat)))
1264
1265 (define-public cl-yacc
1266 (sbcl-package->cl-source-package sbcl-cl-yacc))
1267
1268 (define-public ecl-cl-yacc
1269 (sbcl-package->ecl-package sbcl-cl-yacc))
1270
1271 (define-public sbcl-jpl-util
1272 (let ((commit "0311ed374e19a49d43318064d729fe3abd9a3b62"))
1273 (package
1274 (name "sbcl-jpl-util")
1275 (version "20151005")
1276 (source
1277 (origin
1278 (method git-fetch)
1279 (uri (git-reference
1280 ;; Quicklisp uses this fork.
1281 (url "https://github.com/hawkir/cl-jpl-util")
1282 (commit commit)))
1283 (file-name
1284 (git-file-name "jpl-util" version))
1285 (sha256
1286 (base32
1287 "0nc0rk9n8grkg3045xsw34whmcmddn2sfrxki4268g7kpgz0d2yz"))))
1288 (build-system asdf-build-system/sbcl)
1289 (synopsis "Collection of Common Lisp utility functions and macros")
1290 (description
1291 "@command{cl-jpl-util} is a collection of Common Lisp utility functions
1292 and macros, primarily for software projects written in CL by the author.")
1293 (home-page "https://www.thoughtcrime.us/software/cl-jpl-util/")
1294 (license license:isc))))
1295
1296 (define-public cl-jpl-util
1297 (sbcl-package->cl-source-package sbcl-jpl-util))
1298
1299 (define-public ecl-jpl-util
1300 (sbcl-package->ecl-package sbcl-jpl-util))
1301
1302 (define-public sbcl-jpl-queues
1303 (package
1304 (name "sbcl-jpl-queues")
1305 (version "0.1")
1306 (source
1307 (origin
1308 (method url-fetch)
1309 (uri (string-append
1310 "http://www.thoughtcrime.us/software/jpl-queues/jpl-queues-"
1311 version
1312 ".tar.gz"))
1313 (sha256
1314 (base32
1315 "1wvvv7j117h9a42qaj1g4fh4mji28xqs7s60rn6d11gk9jl76h96"))))
1316 (build-system asdf-build-system/sbcl)
1317 (inputs
1318 `(("jpl-util" ,sbcl-jpl-util)
1319 ("bordeaux-threads" ,sbcl-bordeaux-threads)))
1320 (arguments
1321 ;; Tests seem to be broken.
1322 `(#:tests? #f))
1323 (synopsis "Common Lisp library implementing a few different kinds of queues")
1324 (description
1325 "A Common Lisp library implementing a few different kinds of queues:
1326
1327 @itemize
1328 @item Bounded and unbounded FIFO queues.
1329 @item Lossy bounded FIFO queues that drop elements when full.
1330 @item Unbounded random-order queues that use less memory than unbounded FIFO queues.
1331 @end itemize
1332
1333 Additionally, a synchronization wrapper is provided to make any queue
1334 conforming to the @command{jpl-queues} API thread-safe for lightweight
1335 multithreading applications. (See Calispel for a more sophisticated CL
1336 multithreaded message-passing library with timeouts and alternation among
1337 several blockable channels.)")
1338 (home-page "https://www.thoughtcrime.us/software/jpl-queues/")
1339 (license license:isc)))
1340
1341 (define-public cl-jpl-queues
1342 (sbcl-package->cl-source-package sbcl-jpl-queues))
1343
1344 (define-public ecl-jpl-queues
1345 (sbcl-package->ecl-package sbcl-jpl-queues))
1346
1347 (define-public sbcl-eos
1348 (let ((commit "b0faca83781ead9a588661e37bd47f90362ccd94"))
1349 (package
1350 (name "sbcl-eos")
1351 (version (git-version "0.0.0" "1" commit))
1352 (source
1353 (origin
1354 (method git-fetch)
1355 (uri (git-reference
1356 (url "https://github.com/adlai/Eos")
1357 (commit commit)))
1358 (sha256
1359 (base32
1360 "1bq8cfg087iyxmxi1mwgx5cfgy3b8ydrf81xljcis8qbgb2vszph"))
1361 (file-name (git-file-name "eos" version))))
1362 (build-system asdf-build-system/sbcl)
1363 (synopsis "Unit Testing for Common Lisp")
1364 (description
1365 "Eos was a unit testing library for Common Lisp.
1366 It began as a fork of FiveAM; however, FiveAM development has continued, while
1367 that of Eos has not. Thus, Eos is now deprecated in favor of FiveAM.")
1368 (home-page "https://github.com/adlai/Eos")
1369 (license license:expat))))
1370
1371 (define-public cl-eos
1372 (sbcl-package->cl-source-package sbcl-eos))
1373
1374 (define-public ecl-eos
1375 (sbcl-package->ecl-package sbcl-eos))
1376
1377 (define-public sbcl-esrap
1378 (let ((commit "133be8b05c2aae48696fe5b739eea2fa573fa48d"))
1379 (package
1380 (name "sbcl-esrap")
1381 (version (git-version "0.0.0" "1" commit))
1382 (source
1383 (origin
1384 (method git-fetch)
1385 (uri (git-reference
1386 (url "https://github.com/nikodemus/esrap")
1387 (commit commit)))
1388 (sha256
1389 (base32
1390 "02d5clihsdryhf7pix8c5di2571fdsffh75d40fkzhws90r5mksl"))
1391 (file-name (git-file-name "esrap" version))))
1392 (build-system asdf-build-system/sbcl)
1393 (native-inputs
1394 `(("eos" ,sbcl-eos))) ;For testing only.
1395 (inputs
1396 `(("alexandria" ,sbcl-alexandria)))
1397 (synopsis "Common Lisp packrat parser")
1398 (description
1399 "A packrat parser for Common Lisp.
1400 In addition to regular Packrat / Parsing Grammar / TDPL features ESRAP supports:
1401
1402 @itemize
1403 @item dynamic redefinition of nonterminals
1404 @item inline grammars
1405 @item semantic predicates
1406 @item introspective facilities (describing grammars, tracing, setting breaks)
1407 @end itemize\n")
1408 (home-page "https://nikodemus.github.io/esrap/")
1409 (license license:expat))))
1410
1411 (define-public cl-esrap
1412 (sbcl-package->cl-source-package sbcl-esrap))
1413
1414 (define-public ecl-esrap
1415 (sbcl-package->ecl-package sbcl-esrap))
1416
1417 (define-public sbcl-split-sequence
1418 (package
1419 (name "sbcl-split-sequence")
1420 (version "2.0.0")
1421 (source
1422 (origin
1423 (method git-fetch)
1424 (uri (git-reference
1425 (url "https://github.com/sharplispers/split-sequence")
1426 (commit (string-append "v" version))))
1427 (sha256
1428 (base32
1429 "0jcpnx21hkfwqj5fvp7kc6pn1qcz9hk7g2s5x8h0349x1j2irln0"))
1430 (file-name (git-file-name "split-sequence" version))))
1431 (build-system asdf-build-system/sbcl)
1432 (native-inputs
1433 `(("fiveam" ,sbcl-fiveam)))
1434 (synopsis "Member of the Common Lisp Utilities family of programs")
1435 (description
1436 "Splits sequence into a list of subsequences delimited by objects
1437 satisfying the test.")
1438 (home-page "https://cliki.net/split-sequence")
1439 (license license:expat)))
1440
1441 (define-public cl-split-sequence
1442 (sbcl-package->cl-source-package sbcl-split-sequence))
1443
1444 (define-public ecl-split-sequence
1445 (sbcl-package->ecl-package sbcl-split-sequence))
1446
1447 (define-public sbcl-html-encode
1448 (package
1449 (name "sbcl-html-encode")
1450 (version "1.2")
1451 (source
1452 (origin
1453 (method url-fetch)
1454 (uri (string-append
1455 "http://beta.quicklisp.org/archive/html-encode/2010-10-06/html-encode-"
1456 version ".tgz"))
1457 (sha256
1458 (base32
1459 "06mf8wn95yf5swhmzk4vp0xr4ylfl33dgfknkabbkd8n6jns8gcf"))
1460 (file-name (string-append "colorize" version "-checkout"))))
1461 (build-system asdf-build-system/sbcl)
1462 (synopsis "Common Lisp library for encoding text in various web-savvy encodings")
1463 (description
1464 "A library for encoding text in various web-savvy encodings.")
1465 (home-page "http://quickdocs.org/html-encode/")
1466 (license license:expat)))
1467
1468 (define-public cl-html-encode
1469 (sbcl-package->cl-source-package sbcl-html-encode))
1470
1471 (define-public ecl-html-encode
1472 (sbcl-package->ecl-package sbcl-html-encode))
1473
1474 (define-public sbcl-colorize
1475 (let ((commit "ea676b584e0899cec82f21a9e6871172fe3c0eb5"))
1476 (package
1477 (name "sbcl-colorize")
1478 (version (git-version "0.0.0" "1" commit))
1479 (source
1480 (origin
1481 (method git-fetch)
1482 (uri (git-reference
1483 (url "https://github.com/kingcons/colorize")
1484 (commit commit)))
1485 (sha256
1486 (base32
1487 "1pdg4kiaczmr3ivffhirp7m3lbr1q27rn7dhaay0vwghmi31zcw9"))
1488 (file-name (git-file-name "colorize" version))))
1489 (build-system asdf-build-system/sbcl)
1490 (inputs
1491 `(("alexandria" ,sbcl-alexandria)
1492 ("split-sequence" ,sbcl-split-sequence)
1493 ("html-encode" ,sbcl-html-encode)))
1494 (synopsis "Common Lisp for syntax highlighting")
1495 (description
1496 "@command{colorize} is a Lisp library for syntax highlighting
1497 supporting the following languages: Common Lisp, Emacs Lisp, Scheme, Clojure,
1498 C, C++, Java, Python, Erlang, Haskell, Objective-C, Diff, Webkit.")
1499 (home-page "https://github.com/kingcons/colorize")
1500 ;; TODO: Missing license?
1501 (license license:expat))))
1502
1503 (define-public cl-colorize
1504 (sbcl-package->cl-source-package sbcl-colorize))
1505
1506 (define-public ecl-colorize
1507 (sbcl-package->ecl-package sbcl-colorize))
1508
1509 (define-public sbcl-3bmd
1510 (let ((commit "192ea13435b605a96ef607df51317056914cabbd"))
1511 (package
1512 (name "sbcl-3bmd")
1513 (version (git-version "0.0.0" "1" commit))
1514 (source
1515 (origin
1516 (method git-fetch)
1517 (uri (git-reference
1518 (url "https://github.com/3b/3bmd")
1519 (commit commit)))
1520 (sha256
1521 (base32
1522 "1rgv3gi7wf963ikmmpk132wgn0icddf226gq3bmcnk1fr3v9gf2f"))
1523 (file-name (git-file-name "3bmd" version))))
1524 (build-system asdf-build-system/sbcl)
1525 (arguments
1526 ;; FIXME: We need to specify the name because the build-system thinks
1527 ;; "3" is a version marker.
1528 `(#:asd-system-name "3bmd"))
1529 (inputs
1530 `(("esrap" ,sbcl-esrap)
1531 ("split-sequence" ,sbcl-split-sequence)))
1532 (synopsis "Markdown processor in Command Lisp using esrap parser")
1533 (description
1534 "Common Lisp Markdown -> HTML converter, using @command{esrap} for
1535 parsing, and grammar based on @command{peg-markdown}.")
1536 (home-page "https://github.com/3b/3bmd")
1537 (license license:expat))))
1538
1539 (define-public cl-3bmd
1540 (sbcl-package->cl-source-package sbcl-3bmd))
1541
1542 (define-public ecl-3bmd
1543 (sbcl-package->ecl-package sbcl-3bmd))
1544
1545 (define-public sbcl-3bmd-ext-code-blocks
1546 (let ((commit "192ea13435b605a96ef607df51317056914cabbd"))
1547 (package
1548 (inherit sbcl-3bmd)
1549 (name "sbcl-3bmd-ext-code-blocks")
1550 (arguments
1551 `(#:asd-system-name "3bmd-ext-code-blocks"
1552 #:asd-file "3bmd-ext-code-blocks.asd"))
1553 (inputs
1554 `(("3bmd" ,sbcl-3bmd)
1555 ("colorize" ,sbcl-colorize)))
1556 (synopsis "3bmd extension which adds support for GitHub-style fenced
1557 code blocks")
1558 (description
1559 "3bmd extension which adds support for GitHub-style fenced code blocks,
1560 with @command{colorize} support."))))
1561
1562 (define-public cl-3bmd-ext-code-blocks
1563 (sbcl-package->cl-source-package sbcl-3bmd-ext-code-blocks))
1564
1565 (define-public ecl-3bmd-ext-code-blocks
1566 (sbcl-package->ecl-package sbcl-3bmd-ext-code-blocks))
1567
1568 (define-public sbcl-cl-fad
1569 (package
1570 (name "sbcl-cl-fad")
1571 (version "0.7.6")
1572 (source
1573 (origin
1574 (method git-fetch)
1575 (uri (git-reference
1576 (url "https://github.com/edicl/cl-fad/")
1577 (commit (string-append "v" version))))
1578 (sha256
1579 (base32
1580 "1gc8i82v6gks7g0lnm54r4prk2mklidv2flm5fvbr0a7rsys0vpa"))
1581 (file-name (string-append "cl-fad" version "-checkout"))))
1582 (build-system asdf-build-system/sbcl)
1583 (inputs
1584 `(("bordeaux-threads" ,sbcl-bordeaux-threads)))
1585 (synopsis "Portable pathname library for Common Lisp")
1586 (description
1587 "CL-FAD (for \"Files and Directories\") is a thin layer atop Common
1588 Lisp's standard pathname functions. It is intended to provide some
1589 unification between current CL implementations on Windows, OS X, Linux, and
1590 Unix. Most of the code was written by Peter Seibel for his book Practical
1591 Common Lisp.")
1592 (home-page "https://edicl.github.io/cl-fad/")
1593 (license license:bsd-2)))
1594
1595 (define-public cl-fad
1596 (sbcl-package->cl-source-package sbcl-cl-fad))
1597
1598 (define-public ecl-cl-fad
1599 (sbcl-package->ecl-package sbcl-cl-fad))
1600
1601 (define-public sbcl-rt
1602 (let ((commit "a6a7503a0b47953bc7579c90f02a6dba1f6e4c5a")
1603 (revision "1"))
1604 (package
1605 (name "sbcl-rt")
1606 (version (git-version "1990.12.19" revision commit))
1607 (source
1608 (origin
1609 (method git-fetch)
1610 (uri (git-reference
1611 (url "http://git.kpe.io/rt.git")
1612 (commit commit)))
1613 (file-name (git-file-name name version))
1614 (sha256
1615 (base32 "13si2rrxaagbr0bkvg6sqicxxpyshabx6ad6byc9n2ik5ysna69b"))))
1616 (build-system asdf-build-system/sbcl)
1617 (synopsis "MIT Regression Tester")
1618 (description
1619 "RT provides a framework for writing regression test suites.")
1620 (home-page "https://www.cliki.net/rt")
1621 (license license:expat))))
1622
1623 (define-public cl-rt
1624 (sbcl-package->cl-source-package sbcl-rt))
1625
1626 (define-public ecl-rt
1627 (sbcl-package->ecl-package sbcl-rt))
1628
1629 (define-public sbcl-nibbles
1630 (package
1631 (name "sbcl-nibbles")
1632 (version "0.14")
1633 (source
1634 (origin
1635 (method git-fetch)
1636 (uri (git-reference
1637 (url "https://github.com/sharplispers/nibbles/")
1638 (commit (string-append "v" version))))
1639 (sha256
1640 (base32
1641 "1v7qfgpvdr6nz7v63dj69d26dis0kff3rd8xamr1llfdvza2pm8f"))
1642 (file-name (git-file-name "nibbles" version))))
1643 (build-system asdf-build-system/sbcl)
1644 (native-inputs
1645 ;; Tests only.
1646 `(("rt" ,sbcl-rt)))
1647 (synopsis "Common Lisp library for accessing octet-addressed blocks of data")
1648 (description
1649 "When dealing with network protocols and file formats, it's common to
1650 have to read or write 16-, 32-, or 64-bit datatypes in signed or unsigned
1651 flavors. Common Lisp sort of supports this by specifying :element-type for
1652 streams, but that facility is underspecified and there's nothing similar for
1653 read/write from octet vectors. What most people wind up doing is rolling their
1654 own small facility for their particular needs and calling it a day.
1655
1656 This library attempts to be comprehensive and centralize such
1657 facilities. Functions to read 16-, 32-, and 64-bit quantities from octet
1658 vectors in signed or unsigned flavors are provided; these functions are also
1659 SETFable. Since it's sometimes desirable to read/write directly from streams,
1660 functions for doing so are also provided. On some implementations,
1661 reading/writing IEEE singles/doubles (i.e. single-float and double-float) will
1662 also be supported.")
1663 (home-page "https://github.com/sharplispers/nibbles")
1664 (license license:bsd-3)))
1665
1666 (define-public cl-nibbles
1667 (sbcl-package->cl-source-package sbcl-nibbles))
1668
1669 (define-public ecl-nibbles
1670 (sbcl-package->ecl-package sbcl-nibbles))
1671
1672 (define-public sbcl-ironclad
1673 (package
1674 (name "sbcl-ironclad")
1675 (version "0.48")
1676 (source
1677 (origin
1678 (method git-fetch)
1679 (uri (git-reference
1680 (url "https://github.com/sharplispers/ironclad/")
1681 (commit (string-append "v" version))))
1682 (sha256
1683 (base32
1684 "1wzczpgvgjc5h8ghz75kxi7iykmqxqchdhgdhkif9j99kyqvbyam"))
1685 (file-name (git-file-name name version))))
1686 (build-system asdf-build-system/sbcl)
1687 (native-inputs
1688 ;; Tests only.
1689 `(("rt" ,sbcl-rt)))
1690 (inputs
1691 `(("bordeaux-threads" ,sbcl-bordeaux-threads)
1692 ("flexi-streams" ,sbcl-flexi-streams)))
1693 (synopsis "Cryptographic toolkit written in Common Lisp")
1694 (description
1695 "Ironclad is a cryptography library written entirely in Common Lisp.
1696 It includes support for several popular ciphers, digests, MACs and public key
1697 cryptography algorithms. For several implementations that support Gray
1698 streams, support is included for convenient stream wrappers.")
1699 (home-page "https://github.com/sharplispers/ironclad")
1700 (license license:bsd-3)))
1701
1702 (define-public cl-ironclad
1703 (sbcl-package->cl-source-package sbcl-ironclad))
1704
1705 (define-public ecl-ironclad
1706 (sbcl-package->ecl-package sbcl-ironclad))
1707
1708 (define-public sbcl-named-readtables
1709 (let ((commit "4dfb89fa1af6b305b6492b8af042f5190c11e9fc")
1710 (revision "1"))
1711 (package
1712 (name "sbcl-named-readtables")
1713 (version (string-append "0.9-" revision "." (string-take commit 7)))
1714 (source
1715 (origin
1716 (method git-fetch)
1717 (uri (git-reference
1718 (url "https://github.com/melisgl/named-readtables.git")
1719 (commit commit)))
1720 (sha256
1721 (base32 "083kgh5462iqbb4px6kq8s7sggvpvkm36hx4qi9rnaw53b6ilqkk"))
1722 (file-name (git-file-name "named-readtables" version))))
1723 (build-system asdf-build-system/sbcl)
1724 (arguments
1725 ;; Tests seem to be broken.
1726 `(#:tests? #f))
1727 (home-page "https://github.com/melisgl/named-readtables/")
1728 (synopsis "Library that creates a namespace for named readtables")
1729 (description "Named readtables is a library that creates a namespace for
1730 named readtables, which is akin to package namespacing in Common Lisp.")
1731 (license license:bsd-3))))
1732
1733 (define-public cl-named-readtables
1734 (sbcl-package->cl-source-package sbcl-named-readtables))
1735
1736 (define-public ecl-named-readtables
1737 (sbcl-package->ecl-package sbcl-named-readtables))
1738
1739 (define-public sbcl-pythonic-string-reader
1740 (let ((commit "47a70ba1e32362e03dad6ef8e6f36180b560f86a"))
1741 (package
1742 (name "sbcl-pythonic-string-reader")
1743 (version (git-version "0.0.0" "1" commit))
1744 (source
1745 (origin
1746 (method git-fetch)
1747 (uri (git-reference
1748 (url "https://github.com/smithzvk/pythonic-string-reader/")
1749 (commit commit)))
1750 (sha256
1751 (base32 "1b5iryqw8xsh36swckmz8rrngmc39k92si33fgy5pml3n9l5rq3j"))
1752 (file-name (git-file-name "pythonic-string-reader" version))))
1753 (build-system asdf-build-system/sbcl)
1754 (inputs
1755 `(("named-readtables" ,sbcl-named-readtables)))
1756 (home-page "https://github.com/smithzvk/pythonic-string-reader")
1757 (synopsis "Read table modification inspired by Python's three quote strings")
1758 (description "This piece of code sets up some reader macros that make it
1759 simpler to input string literals which contain backslashes and double quotes
1760 This is very useful for writing complicated docstrings and, as it turns out,
1761 writing code that contains string literals that contain code themselves.")
1762 (license license:bsd-3))))
1763
1764 (define-public cl-pythonic-string-reader
1765 (sbcl-package->cl-source-package sbcl-pythonic-string-reader))
1766
1767 (define-public ecl-pythonic-string-reader
1768 (sbcl-package->ecl-package sbcl-pythonic-string-reader))
1769
1770 ;; SLIME does not have a ASDF system definition to build all of Swank. As a
1771 ;; result, the asdf-build-system/sbcl will produce an almost empty package.
1772 ;; Some work was done to fix this at
1773 ;; https://github.com/sionescu/slime/tree/swank-asdf but it was never merged
1774 ;; and is now lagging behind. Building SBCL fasls might not be worth the
1775 ;; hassle, so let's just ship the source then.
1776 (define-public cl-slime-swank
1777 (package
1778 (name "cl-slime-swank")
1779 (version "2.24")
1780 (source
1781 (origin
1782 (file-name (string-append name "-" version ".tar.gz"))
1783 (method git-fetch)
1784 (uri (git-reference
1785 (url "https://github.com/slime/slime/")
1786 (commit (string-append "v" version))))
1787 (sha256
1788 (base32
1789 "0js24x42m7b5iymb4rxz501dff19vav5pywnzv50b673rbkaaqvh"))))
1790 (build-system asdf-build-system/source)
1791 (home-page "https://github.com/slime/slime")
1792 (synopsis "Common Lisp Swank server")
1793 (description
1794 "This is only useful if you want to start a Swank server in a Lisp
1795 processes that doesn't run under Emacs. Lisp processes created by
1796 @command{M-x slime} automatically start the server.")
1797 (license (list license:gpl2+ license:public-domain))))
1798
1799 (define-public sbcl-slime-swank
1800 (deprecated-package "sbcl-slime-swank" cl-slime-swank))
1801
1802 (define-public sbcl-mgl-pax
1803 (let ((commit "818448418d6b9de74620f606f5b23033c6082769"))
1804 (package
1805 (name "sbcl-mgl-pax")
1806 (version (git-version "0.0.0" "1" commit))
1807 (source
1808 (origin
1809 (method git-fetch)
1810 (uri (git-reference
1811 (url "https://github.com/melisgl/mgl-pax")
1812 (commit commit)))
1813 (sha256
1814 (base32
1815 "1p97zfkh130bdxqqxwaw2j9psv58751wakx7czbfpq410lg7dd7i"))
1816 (file-name (git-file-name "mgl-pax" version))))
1817 (build-system asdf-build-system/sbcl)
1818 (inputs
1819 `(("3bmd" ,sbcl-3bmd)
1820 ("3bmd-ext-code-blocks" ,sbcl-3bmd-ext-code-blocks)
1821 ("babel" ,sbcl-babel)
1822 ("cl-fad" ,sbcl-cl-fad)
1823 ("ironclad" ,sbcl-ironclad)
1824 ("named-readtables" ,sbcl-named-readtables)
1825 ("pythonic-string-reader" ,sbcl-pythonic-string-reader)))
1826 (propagated-inputs
1827 ;; Packages having mgl-pax as input complain that it can't find
1828 ;; swank if we put it in inputs, so let's put it in propageted-inputs.
1829 `(("swank" ,cl-slime-swank)))
1830 (synopsis "Exploratory programming environment and documentation generator")
1831 (description
1832 "PAX provides an extremely poor man's Explorable Programming
1833 environment. Narrative primarily lives in so called sections that mix markdown
1834 docstrings with references to functions, variables, etc, all of which should
1835 probably have their own docstrings.
1836
1837 The primary focus is on making code easily explorable by using SLIME's
1838 @command{M-.} (@command{slime-edit-definition}). See how to enable some
1839 fanciness in Emacs Integration. Generating documentation from sections and all
1840 the referenced items in Markdown or HTML format is also implemented.
1841
1842 With the simplistic tools provided, one may accomplish similar effects as with
1843 Literate Programming, but documentation is generated from code, not vice versa
1844 and there is no support for chunking yet. Code is first, code must look
1845 pretty, documentation is code.")
1846 (home-page "http://quotenil.com/")
1847 (license license:expat))))
1848
1849 (define-public cl-mgl-pax
1850 (sbcl-package->cl-source-package sbcl-mgl-pax))
1851
1852 (define-public ecl-mgl-pax
1853 (sbcl-package->ecl-package sbcl-mgl-pax))
1854
1855 (define-public sbcl-lisp-unit
1856 (let ((commit "89653a232626b67400bf9a941f9b367da38d3815"))
1857 (package
1858 (name "sbcl-lisp-unit")
1859 (version (git-version "0.0.0" "1" commit))
1860 (source
1861 (origin
1862 (method git-fetch)
1863 (uri (git-reference
1864 (url "https://github.com/OdonataResearchLLC/lisp-unit")
1865 (commit commit)))
1866 (sha256
1867 (base32
1868 "0p6gdmgr7p383nvd66c9y9fp2bjk4jx1lpa5p09g43hr9y9pp9ry"))
1869 (file-name (git-file-name "lisp-unit" version))))
1870 (build-system asdf-build-system/sbcl)
1871 (synopsis "Common Lisp Test framework inspired by JUnit to be simple of use")
1872 (description
1873 "@command{lisp-unit} is a Common Lisp library that supports unit
1874 testing. It is an extension of the library written by Chris Riesbeck.")
1875 (home-page "https://github.com/OdonataResearchLLC/lisp-unit")
1876 (license license:expat))))
1877
1878 (define-public cl-lisp-unit
1879 (sbcl-package->cl-source-package sbcl-lisp-unit))
1880
1881 (define-public ecl-lisp-unit
1882 (sbcl-package->ecl-package sbcl-lisp-unit))
1883
1884 (define-public sbcl-anaphora
1885 (package
1886 (name "sbcl-anaphora")
1887 (version "0.9.6")
1888 (source
1889 (origin
1890 (method git-fetch)
1891 (uri (git-reference
1892 (url "https://github.com/tokenrove/anaphora")
1893 (commit version)))
1894 (sha256
1895 (base32
1896 "19wfrk3asimznkli0x2rfy637hwpdgqyvwj3vhq9x7vjvyf5vv6x"))
1897 (file-name (git-file-name "anaphora" version))))
1898 (build-system asdf-build-system/sbcl)
1899 (native-inputs
1900 `(("rt" ,sbcl-rt)))
1901 (synopsis "The anaphoric macro collection from Hell")
1902 (description
1903 "Anaphora is the anaphoric macro collection from Hell: it includes many
1904 new fiends in addition to old friends like @command{aif} and
1905 @command{awhen}.")
1906 (home-page "https://github.com/tokenrove/anaphora")
1907 (license license:public-domain)))
1908
1909 (define-public cl-anaphora
1910 (sbcl-package->cl-source-package sbcl-anaphora))
1911
1912 (define-public ecl-anaphora
1913 (sbcl-package->ecl-package sbcl-anaphora))
1914
1915 (define-public sbcl-lift
1916 (let ((commit "7d49a66c62759535624037826891152223d4206c"))
1917 (package
1918 (name "sbcl-lift")
1919 (version (git-version "1.7.1" "1" commit))
1920 (source
1921 (origin
1922 (method git-fetch)
1923 (uri (git-reference
1924 (url "https://github.com/gwkkwg/lift")
1925 (commit commit)))
1926 (sha256
1927 (base32
1928 "127v5avpz1i4m0lkaxqrq8hrl69rdazqaxf6s8awf0nd7wj2g4dp"))
1929 (file-name (git-file-name "lift" version))
1930 (modules '((guix build utils)))
1931 (snippet
1932 ;; Don't keep the bundled website
1933 `(begin
1934 (delete-file-recursively "website")
1935 #t))))
1936 (build-system asdf-build-system/sbcl)
1937 (arguments
1938 ;; The tests require a debugger, but we run with the debugger disabled.
1939 '(#:tests? #f))
1940 (synopsis "LIsp Framework for Testing")
1941 (description
1942 "The LIsp Framework for Testing (LIFT) is a unit and system test tool for LISP.
1943 Though inspired by SUnit and JUnit, it's built with Lisp in mind. In LIFT,
1944 testcases are organized into hierarchical testsuites each of which can have
1945 its own fixture. When run, a testcase can succeed, fail, or error. LIFT
1946 supports randomized testing, benchmarking, profiling, and reporting.")
1947 (home-page "https://github.com/gwkkwg/lift")
1948 (license license:expat))))
1949
1950 (define-public cl-lift
1951 (sbcl-package->cl-source-package sbcl-lift))
1952
1953 (define-public ecl-lift
1954 (sbcl-package->ecl-package sbcl-lift))
1955
1956 (define-public sbcl-let-plus
1957 (let ((commit "5f14af61d501ecead02ec6b5a5c810efc0c9fdbb"))
1958 (package
1959 (name "sbcl-let-plus")
1960 (version (git-version "0.0.0" "1" commit))
1961 (source
1962 (origin
1963 (method git-fetch)
1964 (uri (git-reference
1965 (url "https://github.com/sharplispers/let-plus")
1966 (commit commit)))
1967 (sha256
1968 (base32
1969 "0i050ca2iys9f5mb7dgqgqdxfnc3b0rnjdwv95sqd490vkiwrsaj"))
1970 (file-name (git-file-name "let-plus" version))))
1971 (build-system asdf-build-system/sbcl)
1972 (inputs
1973 `(("alexandria" ,sbcl-alexandria)
1974 ("anaphora" ,sbcl-anaphora)))
1975 (native-inputs
1976 `(("lift" ,sbcl-lift)))
1977 (synopsis "Destructuring extension of let*")
1978 (description
1979 "This library implements the let+ macro, which is a dectructuring
1980 extension of let*. It features:
1981
1982 @itemize
1983 @item Clean, consistent syntax and small implementation (less than 300 LOC,
1984 not counting tests)
1985 @item Placeholder macros allow editor hints and syntax highlighting
1986 @item @command{&ign} for ignored values (in forms where that makes sense)
1987 @item Very easy to extend
1988 @end itemize\n")
1989 (home-page "https://github.com/sharplispers/let-plus")
1990 (license license:boost1.0))))
1991
1992 (define-public cl-let-plus
1993 (sbcl-package->cl-source-package sbcl-let-plus))
1994
1995 (define-public ecl-let-plus
1996 (sbcl-package->ecl-package sbcl-let-plus))
1997
1998 (define-public sbcl-cl-colors
1999 (let ((commit "827410584553f5c717eec6182343b7605f707f75"))
2000 (package
2001 (name "sbcl-cl-colors")
2002 (version (git-version "0.0.0" "1" commit))
2003 (source
2004 (origin
2005 (method git-fetch)
2006 (uri (git-reference
2007 (url "https://github.com/tpapp/cl-colors")
2008 (commit commit)))
2009 (sha256
2010 (base32
2011 "0l446lday4hybsm9bq3jli97fvv8jb1d33abg79vbylpwjmf3y9a"))
2012 (file-name (git-file-name "cl-colors" version))))
2013 (build-system asdf-build-system/sbcl)
2014 (inputs
2015 `(("alexandria" ,sbcl-alexandria)
2016 ("let-plus" ,sbcl-let-plus)))
2017 (synopsis "Simple color library for Common Lisp")
2018 (description
2019 "This is a very simple color library for Common Lisp, providing
2020
2021 @itemize
2022 @item Types for representing colors in HSV and RGB spaces.
2023 @item Simple conversion functions between the above types (and also
2024 hexadecimal representation for RGB).
2025 @item Some predefined colors (currently X11 color names – of course the
2026 library does not depend on X11).Because color in your terminal is nice.
2027 @end itemize
2028
2029 This library is no longer supported by its author.")
2030 (home-page "https://github.com/tpapp/cl-colors")
2031 (license license:boost1.0))))
2032
2033 (define-public cl-colors
2034 (sbcl-package->cl-source-package sbcl-cl-colors))
2035
2036 (define-public ecl-cl-colors
2037 (sbcl-package->ecl-package sbcl-cl-colors))
2038
2039 (define-public sbcl-cl-ansi-text
2040 (let ((commit "53badf7878f27f22f2d4a2a43e6df458e43acbe9"))
2041 (package
2042 (name "sbcl-cl-ansi-text")
2043 (version (git-version "1.0.0" "1" commit))
2044 (source
2045 (origin
2046 (method git-fetch)
2047 (uri (git-reference
2048 (url "https://github.com/pnathan/cl-ansi-text")
2049 (commit commit)))
2050 (sha256
2051 (base32
2052 "11i27n0dbz5lmygiw65zzr8lx0rac6b6yysqranphn31wls6ja3v"))
2053 (file-name (git-file-name "cl-ansi-text" version))))
2054 (build-system asdf-build-system/sbcl)
2055 (inputs
2056 `(("alexandria" ,sbcl-alexandria)
2057 ("cl-colors" ,sbcl-cl-colors)))
2058 (native-inputs
2059 `(("fiveam" ,sbcl-fiveam)))
2060 (synopsis "ANSI terminal color implementation for Common Lisp")
2061 (description
2062 "@command{cl-ansi-text} provides utilities which enable printing to an
2063 ANSI terminal with colored text. It provides the macro @command{with-color}
2064 which causes everything printed in the body to be displayed with the provided
2065 color. It further provides functions which will print the argument with the
2066 named color.")
2067 (home-page "https://github.com/pnathan/cl-ansi-text")
2068 (license license:llgpl))))
2069
2070 (define-public cl-ansi-text
2071 (sbcl-package->cl-source-package sbcl-cl-ansi-text))
2072
2073 (define-public ecl-cl-ansi-text
2074 (sbcl-package->ecl-package sbcl-cl-ansi-text))
2075
2076 (define-public sbcl-prove-asdf
2077 (let ((commit "4f9122bd393e63c5c70c1fba23070622317cfaa0"))
2078 (package
2079 (name "sbcl-prove-asdf")
2080 (version (git-version "1.0.0" "1" commit))
2081 (source
2082 (origin
2083 (method git-fetch)
2084 (uri (git-reference
2085 (url "https://github.com/fukamachi/prove")
2086 (commit commit)))
2087 (sha256
2088 (base32
2089 "07sbfw459z8bbjvx1qlmfa8qk2mvbjnnzi2mi0x72blaj8bkl4vc"))
2090 (file-name (git-file-name "prove" version))))
2091 (build-system asdf-build-system/sbcl)
2092 (arguments
2093 `(#:asd-file "prove-asdf.asd"))
2094 (synopsis "Test requirement for the Common Lisp 'prove' library")
2095 (description
2096 "Test requirement for the Common Lisp @command{prove} library.")
2097 (home-page "https://github.com/fukamachi/prove")
2098 (license license:expat))))
2099
2100 (define-public cl-prove-asdf
2101 (sbcl-package->cl-source-package sbcl-prove-asdf))
2102
2103 (define-public ecl-prove-asdf
2104 (sbcl-package->ecl-package sbcl-prove-asdf))
2105
2106 (define-public sbcl-prove
2107 (package
2108 (inherit sbcl-prove-asdf)
2109 (name "sbcl-prove")
2110 (inputs
2111 `(("alexandria" ,sbcl-alexandria)
2112 ("cl-ppcre" ,sbcl-cl-ppcre)
2113 ("cl-ansi-text" ,sbcl-cl-ansi-text)))
2114 (native-inputs
2115 `(("prove-asdf" ,sbcl-prove-asdf)))
2116 (arguments
2117 `(#:asd-file "prove.asd"))
2118 (synopsis "Yet another unit testing framework for Common Lisp")
2119 (description
2120 "This project was originally called @command{cl-test-more}.
2121 @command{prove} is yet another unit testing framework for Common Lisp. The
2122 advantages of @command{prove} are:
2123
2124 @itemize
2125 @item Various simple functions for testing and informative error messages
2126 @item ASDF integration
2127 @item Extensible test reporters
2128 @item Colorizes the report if it's available (note for SLIME)
2129 @item Reports test durations
2130 @end itemize\n")))
2131
2132 (define-public cl-prove
2133 (sbcl-package->cl-source-package sbcl-prove))
2134
2135 (define-public ecl-prove
2136 (sbcl-package->ecl-package sbcl-prove))
2137
2138 (define-public sbcl-proc-parse
2139 (let ((commit "ac3636834d561bdc2686c956dbd82494537285fd"))
2140 (package
2141 (name "sbcl-proc-parse")
2142 (version (git-version "0.0.0" "1" commit))
2143 (source
2144 (origin
2145 (method git-fetch)
2146 (uri (git-reference
2147 (url "https://github.com/fukamachi/proc-parse")
2148 (commit commit)))
2149 (sha256
2150 (base32
2151 "06rnl0h4cx6xv2wj3jczmmcxqn2703inmmvg1s4npbghmijsybfh"))
2152 (file-name (git-file-name "proc-parse" version))))
2153 (build-system asdf-build-system/sbcl)
2154 (inputs
2155 `(("alexandria" ,sbcl-alexandria)
2156 ("babel" ,sbcl-babel)))
2157 (native-inputs
2158 `(("prove" ,sbcl-prove)
2159 ("prove-asdf" ,sbcl-prove-asdf)))
2160 (arguments
2161 ;; TODO: Tests don't find "proc-parse-test", why?
2162 `(#:tests? #f))
2163 (synopsis "Procedural vector parser")
2164 (description
2165 "This is a string/octets parser library for Common Lisp with speed and
2166 readability in mind. Unlike other libraries, the code is not a
2167 pattern-matching-like, but a char-by-char procedural parser.")
2168 (home-page "https://github.com/fukamachi/proc-parse")
2169 (license license:bsd-2))))
2170
2171 (define-public cl-proc-parse
2172 (sbcl-package->cl-source-package sbcl-proc-parse))
2173
2174 (define-public ecl-proc-parse
2175 (sbcl-package->ecl-package sbcl-proc-parse))
2176
2177 (define-public sbcl-parse-float
2178 (let ((commit "2aae569f2a4b2eb3bfb5401a959425dcf151b09c"))
2179 (package
2180 (name "sbcl-parse-float")
2181 (version (git-version "0.0.0" "1" commit))
2182 (source
2183 (origin
2184 (method git-fetch)
2185 (uri (git-reference
2186 (url "https://github.com/soemraws/parse-float")
2187 (commit commit)))
2188 (sha256
2189 (base32
2190 "08xw8cchhmqcc0byng69m3f5a2izc9y2290jzz2k0qrbibp1fdk7"))
2191 (file-name (git-file-name "proc-parse" version))))
2192 (build-system asdf-build-system/sbcl)
2193 (inputs
2194 `(("alexandria" ,sbcl-alexandria)
2195 ("babel" ,sbcl-babel)))
2196 (native-inputs
2197 `(("prove" ,sbcl-prove)
2198 ("prove-asdf" ,sbcl-prove-asdf)))
2199 (arguments
2200 ;; TODO: Tests don't find "proc-parse-test", why?
2201 `(#:tests? #f))
2202 (synopsis "Parse a floating point value from a string in Common Lisp")
2203 (description
2204 "This package exports the following function to parse floating-point
2205 values from a string in Common Lisp.")
2206 (home-page "https://github.com/soemraws/parse-float")
2207 (license license:public-domain))))
2208
2209 (define-public cl-parse-float
2210 (sbcl-package->cl-source-package sbcl-parse-float))
2211
2212 (define-public ecl-parse-float
2213 (sbcl-package->ecl-package sbcl-parse-float))
2214
2215 (define-public sbcl-ascii-strings
2216 (let ((revision "1")
2217 (changeset "5048480a61243e6f1b02884012c8f25cdbee6d97"))
2218 (package
2219 (name "sbcl-ascii-strings")
2220 (version (string-append "0-" revision "." (string-take changeset 7)))
2221 (source
2222 (origin
2223 (method hg-fetch)
2224 (uri (hg-reference
2225 (url "https://bitbucket.org/vityok/cl-string-match/")
2226 (changeset changeset)))
2227 (sha256
2228 (base32
2229 "01wn5qx562w43ssy92xlfgv79w7p0nv0wbl76mpmba131n9ziq2y"))
2230 (file-name (git-file-name "cl-string-match" version))))
2231 (build-system asdf-build-system/sbcl)
2232 (inputs
2233 `(("alexandria" ,sbcl-alexandria)
2234 ("babel" ,sbcl-babel)))
2235 (arguments
2236 `(#:asd-file "ascii-strings.asd"))
2237 (synopsis "Operations on ASCII strings")
2238 (description
2239 "Operations on ASCII strings. Essentially this can be any kind of
2240 single-byte encoded strings.")
2241 (home-page "https://bitbucket.org/vityok/cl-string-match/")
2242 (license license:bsd-3))))
2243
2244 (define-public cl-ascii-strings
2245 (sbcl-package->cl-source-package sbcl-ascii-strings))
2246
2247 (define-public ecl-ascii-strings
2248 (sbcl-package->ecl-package sbcl-ascii-strings))
2249
2250 (define-public sbcl-simple-scanf
2251 (package
2252 (inherit sbcl-ascii-strings)
2253 (name "sbcl-simple-scanf")
2254 (inputs
2255 `(("alexandria" ,sbcl-alexandria)
2256 ("iterate" ,sbcl-iterate)
2257 ("proc-parse" ,sbcl-proc-parse)
2258 ("parse-float" ,sbcl-parse-float)))
2259 (arguments
2260 `(#:asd-file "simple-scanf.asd"))
2261 (synopsis "Simple scanf-like functionality implementation")
2262 (description
2263 "A simple scanf-like functionality implementation.")))
2264
2265 (define-public cl-simple-scanf
2266 (sbcl-package->cl-source-package sbcl-simple-scanf))
2267
2268 (define-public ecl-simple-scanf
2269 (sbcl-package->ecl-package sbcl-simple-scanf))
2270
2271 (define-public sbcl-cl-string-match
2272 (package
2273 (inherit sbcl-ascii-strings)
2274 (name "sbcl-cl-string-match")
2275 (inputs
2276 `(("alexandria" ,sbcl-alexandria)
2277 ("ascii-strings" ,sbcl-ascii-strings)
2278 ("yacc" ,sbcl-cl-yacc)
2279 ("jpl-util" ,sbcl-jpl-util)
2280 ("jpl-queues" ,sbcl-jpl-queues)
2281 ("mgl-pax" ,sbcl-mgl-pax)
2282 ("iterate" ,sbcl-iterate)))
2283 ;; TODO: Tests are not evaluated properly.
2284 (native-inputs
2285 ;; For testing:
2286 `(("lisp-unit" ,sbcl-lisp-unit)
2287 ("simple-scanf" ,sbcl-simple-scanf)))
2288 (arguments
2289 `(#:tests? #f
2290 #:asd-file "cl-string-match.asd"))
2291 (synopsis "Portable, dependency-free set of utilities to manipulate strings in Common Lisp")
2292 (description
2293 "@command{cl-strings} is a small, portable, dependency-free set of
2294 utilities that make it even easier to manipulate text in Common Lisp. It has
2295 100% test coverage and works at least on sbcl, ecl, ccl, abcl and clisp.")))
2296
2297 (define-public cl-string-match
2298 (sbcl-package->cl-source-package sbcl-cl-string-match))
2299
2300 (define-public ecl-cl-string-match
2301 (sbcl-package->ecl-package sbcl-cl-string-match))
2302
2303 (define-public sbcl-ptester
2304 (let ((commit "fe69fde54f4bce00ce577feb918796c293fc7253")
2305 (revision "1"))
2306 (package
2307 (name "sbcl-ptester")
2308 (version (git-version "2.1.3" revision commit))
2309 (source
2310 (origin
2311 (method git-fetch)
2312 (uri (git-reference
2313 (url "http://git.kpe.io/ptester.git")
2314 (commit commit)))
2315 (file-name (git-file-name name version))
2316 (sha256
2317 (base32 "1l0lfl7cdnr2qf4zh38hi4llxg22c49zkm639bdkmvlkzwj3ndwf"))))
2318 (build-system asdf-build-system/sbcl)
2319 (home-page "http://quickdocs.org/ptester/")
2320 (synopsis "Portable test harness package")
2321 (description
2322 "@command{ptester} is a portable testing framework based on Franz's
2323 tester module.")
2324 (license license:llgpl))))
2325
2326 (define-public cl-ptester
2327 (sbcl-package->cl-source-package sbcl-ptester))
2328
2329 (define-public ecl-ptester
2330 (sbcl-package->ecl-package sbcl-ptester))
2331
2332 (define-public sbcl-puri
2333 (let ((commit "ef5afb9e5286c8e952d4344f019c1a636a717b97")
2334 (revision "1"))
2335 (package
2336 (name "sbcl-puri")
2337 (version (git-version "1.5.7" revision commit))
2338 (source
2339 (origin
2340 (method git-fetch)
2341 (uri (git-reference
2342 (url "http://git.kpe.io/puri.git")
2343 (commit commit)))
2344 (file-name (git-file-name name version))
2345 (sha256
2346 (base32 "1vm25pdl92laj72p5vyd538kf3cjy2655z6bdc99h20ana2p231s"))))
2347 (build-system asdf-build-system/sbcl)
2348 (native-inputs
2349 `(("ptester" ,sbcl-ptester)))
2350 (home-page "http://quickdocs.org/puri/")
2351 (synopsis "Portable URI Library")
2352 (description
2353 "This is a portable Universal Resource Identifier library for Common
2354 Lisp programs. It parses URI according to the RFC 2396 specification.")
2355 (license license:llgpl))))
2356
2357 (define-public cl-puri
2358 (sbcl-package->cl-source-package sbcl-puri))
2359
2360 (define-public ecl-puri
2361 (sbcl-package->ecl-package sbcl-puri))
2362
2363 (define-public sbcl-queues
2364 (let ((commit "47d4da65e9ea20953b74aeeab7e89a831b66bc94"))
2365 (package
2366 (name "sbcl-queues")
2367 (version (git-version "0.0.0" "1" commit))
2368 (source
2369 (origin
2370 (method git-fetch)
2371 (uri (git-reference
2372 (url "https://github.com/oconnore/queues")
2373 (commit commit)))
2374 (file-name (git-file-name "queues" version))
2375 (sha256
2376 (base32
2377 "0wdhfnzi4v6d97pggzj2aw55si94w4327br94jrmyvwf351wqjvv"))))
2378 (build-system asdf-build-system/sbcl)
2379 (home-page "https://github.com/oconnore/queues")
2380 (synopsis "Common Lisp queue library")
2381 (description
2382 "This is a simple queue library for Common Lisp with features such as
2383 non-consing thread safe queues and fibonacci priority queues.")
2384 (license license:expat))))
2385
2386 (define-public cl-queues
2387 (sbcl-package->cl-source-package sbcl-queues))
2388
2389 (define-public ecl-queues
2390 (sbcl-package->ecl-package sbcl-queues))
2391
2392 (define-public sbcl-queues.simple-queue
2393 (package
2394 (inherit sbcl-queues)
2395 (name "sbcl-queues.simple-queue")
2396 (inputs
2397 `(("sbcl-queues" ,sbcl-queues)))
2398 (arguments
2399 `(#:asd-file "queues.simple-queue.asd"))
2400 (synopsis "Simple queue implementation")
2401 (description
2402 "This is a simple queue library for Common Lisp with features such as
2403 non-consing thread safe queues and fibonacci priority queues.")
2404 (license license:expat)))
2405
2406 (define-public cl-queues.simple-queue
2407 (sbcl-package->cl-source-package sbcl-queues.simple-queue))
2408
2409 (define-public ecl-queues.simple-queue
2410 (sbcl-package->ecl-package sbcl-queues.simple-queue))
2411
2412 (define-public sbcl-queues.simple-cqueue
2413 (package
2414 (inherit sbcl-queues)
2415 (name "sbcl-queues.simple-cqueue")
2416 (inputs
2417 `(("sbcl-queues" ,sbcl-queues)
2418 ("sbcl-queues.simple-queue" ,sbcl-queues.simple-queue)
2419 ("bordeaux-threads" ,sbcl-bordeaux-threads)))
2420 (arguments
2421 `(#:asd-file "queues.simple-cqueue.asd"))
2422 (synopsis "Thread safe queue implementation")
2423 (description
2424 "This is a simple queue library for Common Lisp with features such as
2425 non-consing thread safe queues and fibonacci priority queues.")
2426 (license license:expat)))
2427
2428 (define-public cl-queues.simple-cqueue
2429 (sbcl-package->cl-source-package sbcl-queues.simple-cqueue))
2430
2431 (define-public ecl-queues.simple-cqueue
2432 (sbcl-package->ecl-package sbcl-queues.simple-cqueue))
2433
2434 (define-public sbcl-queues.priority-queue
2435 (package
2436 (inherit sbcl-queues)
2437 (name "sbcl-queues.priority-queue")
2438 (inputs
2439 `(("sbcl-queues" ,sbcl-queues)))
2440 (arguments
2441 `(#:asd-file "queues.priority-queue.asd"))
2442 (synopsis "Priority queue (Fibonacci) implementation")
2443 (description
2444 "This is a simple queue library for Common Lisp with features such as
2445 non-consing thread safe queues and fibonacci priority queues.")
2446 (license license:expat)))
2447
2448 (define-public cl-queues.priority-queue
2449 (sbcl-package->cl-source-package sbcl-queues.priority-queue))
2450
2451 (define-public ecl-queues.priority-queue
2452 (sbcl-package->ecl-package sbcl-queues.priority-queue))
2453
2454 (define-public sbcl-queues.priority-cqueue
2455 (package
2456 (inherit sbcl-queues)
2457 (name "sbcl-queues.priority-cqueue")
2458 (inputs
2459 `(("sbcl-queues" ,sbcl-queues)
2460 ("sbcl-queues.priority-queue" ,sbcl-queues.priority-queue)
2461 ("bordeaux-threads" ,sbcl-bordeaux-threads)))
2462 (arguments
2463 `(#:asd-file "queues.priority-cqueue.asd"))
2464 (synopsis "Thread safe fibonacci priority queue implementation")
2465 (description
2466 "This is a simple queue library for Common Lisp with features such as
2467 non-consing thread safe queues and fibonacci priority queues.")
2468 (license license:expat)))
2469
2470 (define-public cl-queues.priority-cqueue
2471 (sbcl-package->cl-source-package sbcl-queues.priority-cqueue))
2472
2473 (define-public ecl-queues.priority-cqueue
2474 (sbcl-package->ecl-package sbcl-queues.priority-cqueue))
2475
2476 (define sbcl-cffi-bootstrap
2477 (package
2478 (name "sbcl-cffi-bootstrap")
2479 (version "0.21.0")
2480 (source
2481 (origin
2482 (method git-fetch)
2483 (uri (git-reference
2484 (url "https://github.com/cffi/cffi.git")
2485 (commit (string-append "v" version))))
2486 (file-name (git-file-name "cffi-bootstrap" version))
2487 (sha256
2488 (base32 "1qalargz9bhp850qv60ffwpdqi4xirzar4l3g6qcg8yc6xqf2cjk"))))
2489 (build-system asdf-build-system/sbcl)
2490 (inputs
2491 `(("libffi" ,libffi)
2492 ("alexandria" ,sbcl-alexandria)
2493 ("babel" ,sbcl-babel)
2494 ("trivial-features" ,sbcl-trivial-features)))
2495 (native-inputs
2496 `(("pkg-config" ,pkg-config)))
2497 (arguments
2498 '(#:phases
2499 (modify-phases %standard-phases
2500 (add-after 'unpack 'fix-paths
2501 (lambda* (#:key inputs #:allow-other-keys)
2502 (substitute* "libffi/libffi.lisp"
2503 (("libffi.so.6" all) (string-append
2504 (assoc-ref inputs "libffi")
2505 "/lib/" all)))
2506 (substitute* "toolchain/c-toolchain.lisp"
2507 (("\"cc\"") (format #f "~S" (which "gcc")))))))
2508 #:asd-system-name "cffi"
2509 #:tests? #f))
2510 (home-page "https://common-lisp.net/project/cffi/")
2511 (synopsis "Common Foreign Function Interface for Common Lisp")
2512 (description "The Common Foreign Function Interface (CFFI)
2513 purports to be a portable foreign function interface for Common Lisp.
2514 The CFFI library is composed of a Lisp-implementation-specific backend
2515 in the CFFI-SYS package, and a portable frontend in the CFFI
2516 package.")
2517 (license license:expat)))
2518
2519 (define-public sbcl-cffi-toolchain
2520 (package
2521 (inherit sbcl-cffi-bootstrap)
2522 (name "sbcl-cffi-toolchain")
2523 (inputs
2524 `(("libffi" ,libffi)
2525 ("sbcl-cffi" ,sbcl-cffi-bootstrap)))
2526 (arguments
2527 (substitute-keyword-arguments (package-arguments sbcl-cffi-bootstrap)
2528 ((#:asd-system-name _) #f)
2529 ((#:tests? _) #t)))))
2530
2531 (define-public sbcl-cffi-libffi
2532 (package
2533 (inherit sbcl-cffi-toolchain)
2534 (name "sbcl-cffi-libffi")
2535 (inputs
2536 `(("cffi" ,sbcl-cffi-bootstrap)
2537 ("cffi-grovel" ,sbcl-cffi-grovel)
2538 ("trivial-features" ,sbcl-trivial-features)
2539 ("libffi" ,libffi)))))
2540
2541 (define-public sbcl-cffi-grovel
2542 (package
2543 (inherit sbcl-cffi-toolchain)
2544 (name "sbcl-cffi-grovel")
2545 (inputs
2546 `(("libffi" ,libffi)
2547 ("cffi" ,sbcl-cffi-bootstrap)
2548 ("cffi-toolchain" ,sbcl-cffi-toolchain)
2549 ("alexandria" ,sbcl-alexandria)))
2550 (arguments
2551 (substitute-keyword-arguments (package-arguments sbcl-cffi-toolchain)
2552 ((#:phases phases)
2553 `(modify-phases ,phases
2554 (add-after 'build 'install-headers
2555 (lambda* (#:key outputs #:allow-other-keys)
2556 (install-file "grovel/common.h"
2557 (string-append
2558 (assoc-ref outputs "out")
2559 "/include/grovel"))))))))))
2560
2561 (define-public sbcl-cffi
2562 (package
2563 (inherit sbcl-cffi-toolchain)
2564 (name "sbcl-cffi")
2565 (inputs (package-inputs sbcl-cffi-bootstrap))
2566 (native-inputs
2567 `(("cffi-grovel" ,sbcl-cffi-grovel)
2568 ("cffi-libffi" ,sbcl-cffi-libffi)
2569 ("rt" ,sbcl-rt)
2570 ("bordeaux-threads" ,sbcl-bordeaux-threads)
2571 ,@(package-native-inputs sbcl-cffi-bootstrap)))))
2572
2573 (define-public cl-cffi
2574 (sbcl-package->cl-source-package sbcl-cffi))
2575
2576 (define-public sbcl-cffi-uffi-compat
2577 (package
2578 (inherit sbcl-cffi-toolchain)
2579 (name "sbcl-cffi-uffi-compat")
2580 (native-inputs
2581 `(,@(package-inputs sbcl-cffi-bootstrap))) ; For fix-paths phase
2582 (inputs
2583 `(("cffi" ,sbcl-cffi)))
2584 (synopsis "UFFI Compatibility Layer for CFFI")))
2585
2586 (define-public cl-cffi-uffi-compat
2587 (sbcl-package->cl-source-package sbcl-cffi-uffi-compat))
2588
2589 (define-public sbcl-cl-sqlite
2590 (let ((commit "c738e66d4266ef63a1debc4ef4a1b871a068c112"))
2591 (package
2592 (name "sbcl-cl-sqlite")
2593 (version (git-version "0.2" "1" commit))
2594 (source
2595 (origin
2596 (method git-fetch)
2597 (uri (git-reference
2598 (url "https://github.com/dmitryvk/cl-sqlite")
2599 (commit commit)))
2600 (file-name (git-file-name "cl-sqlite" version))
2601 (sha256
2602 (base32
2603 "1ng45k1hdb84sqjryrfx93g66bsbybmpy301wd0fdybnc5jzr36q"))))
2604 (build-system asdf-build-system/sbcl)
2605 (inputs
2606 `(("iterate" ,sbcl-iterate)
2607 ("cffi" ,sbcl-cffi)
2608 ("sqlite" ,sqlite)))
2609 (native-inputs
2610 `(("fiveam" ,sbcl-fiveam)
2611 ("bordeaux-threads" ,sbcl-bordeaux-threads)))
2612 (arguments
2613 `(#:tests? #f ; Upstream seems to have issues with tests: https://github.com/dmitryvk/cl-sqlite/issues/7
2614 #:asd-file "sqlite.asd"
2615 #:asd-system-name "sqlite"
2616 #:phases
2617 (modify-phases %standard-phases
2618 (add-after 'unpack 'fix-paths
2619 (lambda* (#:key inputs #:allow-other-keys)
2620 (substitute* "sqlite-ffi.lisp"
2621 (("libsqlite3" all) (string-append
2622 (assoc-ref inputs "sqlite")"/lib/" all))))))))
2623 (home-page "https://common-lisp.net/project/cl-sqlite/")
2624 (synopsis "Common Lisp binding for SQLite")
2625 (description
2626 "The @command{cl-sqlite} package is an interface to the SQLite embedded
2627 relational database engine.")
2628 (license license:public-domain))))
2629
2630 (define-public cl-sqlite
2631 (sbcl-package->cl-source-package sbcl-cl-sqlite))
2632
2633 (define-public sbcl-parenscript
2634 (let ((commit "061d8e286c81c3f45c84fb2b11ee7d83f590a8f8"))
2635 (package
2636 (name "sbcl-parenscript")
2637 (version (git-version "2.6" "1" commit))
2638 (source
2639 (origin
2640 (method git-fetch)
2641 (uri (git-reference
2642 (url "https://gitlab.common-lisp.net/parenscript/parenscript")
2643 (commit commit)))
2644 (file-name (git-file-name "parenscript" version))
2645 (sha256
2646 (base32
2647 "1kbhgsjbikc73m5cwdp4d4fdafyqcr1b7b630qjrziql0nh6mi3k"))))
2648 (build-system asdf-build-system/sbcl)
2649 (inputs
2650 `(("cl-ppcre" ,sbcl-cl-ppcre)
2651 ("anaphora" ,sbcl-anaphora)
2652 ("named-readtables" ,sbcl-named-readtables)))
2653 (home-page "https://common-lisp.net/project/parenscript/")
2654 (synopsis "Translator from a subset of Common Lisp to JavaScript")
2655 (description
2656 "Parenscript is a translator from an extended subset of Common Lisp to
2657 JavaScript. Parenscript code can run almost identically on both the
2658 browser (as JavaScript) and server (as Common Lisp).
2659
2660 Parenscript code is treated the same way as Common Lisp code, making the full
2661 power of Lisp macros available for JavaScript. This provides a web
2662 development environment that is unmatched in its ability to reduce code
2663 duplication and provide advanced meta-programming facilities to web
2664 developers.
2665
2666 At the same time, Parenscript is different from almost all other \"language
2667 X\" to JavaScript translators in that it imposes almost no overhead:
2668
2669 @itemize
2670 @item No run-time dependencies: Any piece of Parenscript code is runnable
2671 as-is. There are no JavaScript files to include.
2672 @item Native types: Parenscript works entirely with native JavaScript data
2673 types. There are no new types introduced, and object prototypes are not
2674 touched.
2675 @item Native calling convention: Any JavaScript code can be called without the
2676 need for bindings. Likewise, Parenscript can be used to make efficient,
2677 self-contained JavaScript libraries.
2678 @item Readable code: Parenscript generates concise, formatted, idiomatic
2679 JavaScript code. Identifier names are preserved. This enables seamless
2680 debugging in tools like Firebug.
2681 @item Efficiency: Parenscript introduces minimal overhead for advanced Common
2682 Lisp features. The generated code is almost as fast as hand-written
2683 JavaScript.
2684 @end itemize\n")
2685 (license license:bsd-3))))
2686
2687 (define-public cl-parenscript
2688 (sbcl-package->cl-source-package sbcl-parenscript))
2689
2690 (define-public ecl-parenscript
2691 (sbcl-package->ecl-package sbcl-parenscript))
2692
2693 (define-public sbcl-cl-json
2694 (let ((commit "6dfebb9540bfc3cc33582d0c03c9ec27cb913e79"))
2695 (package
2696 (name "sbcl-cl-json")
2697 (version (git-version "0.5" "1" commit))
2698 (source
2699 (origin
2700 (method git-fetch)
2701 (uri (git-reference
2702 (url "https://github.com/hankhero/cl-json")
2703 (commit commit)))
2704 (file-name (git-file-name "cl-json" version))
2705 (sha256
2706 (base32
2707 "0fx3m3x3s5ji950yzpazz4s0img3l6b3d6l3jrfjv0lr702496lh"))))
2708 (build-system asdf-build-system/sbcl)
2709 (native-inputs
2710 `(("fiveam" ,sbcl-fiveam)))
2711 (home-page "https://github.com/hankhero/cl-json")
2712 (synopsis "JSON encoder and decoder for Common-Lisp")
2713 (description
2714 "@command{cl-json} provides an encoder of Lisp objects to JSON format
2715 and a corresponding decoder of JSON data to Lisp objects. Both the encoder
2716 and the decoder are highly customizable; at the same time, the default
2717 settings ensure a very simple mode of operation, similar to that provided by
2718 @command{yason} or @command{st-json}.")
2719 (license license:expat))))
2720
2721 (define-public cl-json
2722 (sbcl-package->cl-source-package sbcl-cl-json))
2723
2724 (define-public ecl-cl-json
2725 (sbcl-package->ecl-package sbcl-cl-json))
2726
2727 (define-public sbcl-unix-opts
2728 (package
2729 (name "sbcl-unix-opts")
2730 (version "0.1.7")
2731 (source
2732 (origin
2733 (method git-fetch)
2734 (uri (git-reference
2735 (url "https://github.com/libre-man/unix-opts")
2736 (commit version)))
2737 (file-name (git-file-name "unix-opts" version))
2738 (sha256
2739 (base32
2740 "08djdi1ard09fijb7w9bdmhmwd98b1hzmcnjw9fqjiqa0g3b44rr"))))
2741 (build-system asdf-build-system/sbcl)
2742 (home-page "https://github.com/hankhero/cl-json")
2743 (synopsis "Unix-style command line options parser")
2744 (description
2745 "This is a minimalistic parser of command line options. The main
2746 advantage of the library is the ability to concisely define command line
2747 options once and then use this definition for parsing and extraction of
2748 command line arguments, as well as printing description of command line
2749 options (you get --help for free). This way you don't need to repeat
2750 yourself. Also, @command{unix-opts} doesn't depend on anything and allows to
2751 precisely control behavior of the parser via Common Lisp restarts.")
2752 (license license:expat)))
2753
2754 (define-public cl-unix-opts
2755 (sbcl-package->cl-source-package sbcl-unix-opts))
2756
2757 (define-public ecl-unix-opts
2758 (sbcl-package->ecl-package sbcl-unix-opts))
2759
2760 (define-public sbcl-trivial-garbage
2761 (package
2762 (name "sbcl-trivial-garbage")
2763 (version "0.21")
2764 (source
2765 (origin
2766 (method git-fetch)
2767 (uri (git-reference
2768 (url "https://github.com/trivial-garbage/trivial-garbage.git")
2769 (commit (string-append "v" version))))
2770 (file-name (git-file-name "trivial-garbage" version))
2771 (sha256
2772 (base32 "0122jicfg7pca1wxw8zak1n92h5friqy60988ns0ysksj3fphw9n"))))
2773 (build-system asdf-build-system/sbcl)
2774 (native-inputs
2775 `(("rt" ,sbcl-rt)))
2776 (home-page "https://common-lisp.net/project/trivial-garbage/")
2777 (synopsis "Portable GC-related APIs for Common Lisp")
2778 (description "@command{trivial-garbage} provides a portable API to
2779 finalizers, weak hash-tables and weak pointers on all major implementations of
2780 the Common Lisp programming language.")
2781 (license license:public-domain)))
2782
2783 (define-public cl-trivial-garbage
2784 (sbcl-package->cl-source-package sbcl-trivial-garbage))
2785
2786 (define-public ecl-trivial-garbage
2787 (sbcl-package->ecl-package sbcl-trivial-garbage))
2788
2789 (define-public sbcl-closer-mop
2790 (let ((commit "fac29ce90e3a46e1fc6cf182190e193526fa9dbc"))
2791 (package
2792 (name "sbcl-closer-mop")
2793 (version (git-version "1.0.0" "1" commit))
2794 (source
2795 (origin
2796 (method git-fetch)
2797 (uri (git-reference
2798 (url "https://github.com/pcostanza/closer-mop")
2799 (commit commit)))
2800 (sha256
2801 (base32 "0hvh77y869h8fg9di5snyg85fxq6fdh9gj1igmx1g6j6j5x915dl"))
2802 (file-name (git-file-name "closer-mop" version ))))
2803 (build-system asdf-build-system/sbcl)
2804 (home-page "https://github.com/pcostanza/closer-mop")
2805 (synopsis "Rectifies absent or incorrect CLOS MOP features")
2806 (description "Closer to MOP is a compatibility layer that rectifies many
2807 of the absent or incorrect CLOS MOP features across a broad range of Common
2808 Lisp implementations.")
2809 (license license:expat))))
2810
2811 (define-public cl-closer-mop
2812 (sbcl-package->cl-source-package sbcl-closer-mop))
2813
2814 (define-public ecl-closer-mop
2815 (sbcl-package->ecl-package sbcl-closer-mop))
2816
2817 (define sbcl-cl-cffi-gtk-boot0
2818 (let ((commit "29443c5aaca975709df8025c4649366d882033cb"))
2819 (package
2820 (name "sbcl-cl-cffi-gtk-boot0")
2821 (version (git-version "0.11.2" "1" commit))
2822 (source
2823 (origin
2824 (method git-fetch)
2825 (uri (git-reference
2826 (url "https://github.com/Ferada/cl-cffi-gtk/")
2827 (commit commit)))
2828 (file-name (git-file-name "cl-cffi-gtk" version))
2829 (sha256
2830 (base32
2831 "0f6s92sf8xyzh1yksqx8bsy1sv0zmy0c13j3b8bavaba5hlxpxah"))))
2832 (build-system asdf-build-system/sbcl)
2833 (inputs
2834 `(("iterate" ,sbcl-iterate)
2835 ("cffi" ,sbcl-cffi)
2836 ("trivial-features" ,sbcl-trivial-features)))
2837 (home-page "https://github.com/Ferada/cl-cffi-gtk/")
2838 (synopsis "Common Lisp binding for GTK+3")
2839 (description
2840 "@command{cl-cffi-gtk} is a Lisp binding to GTK+ 3 (GIMP Toolkit) which
2841 is a library for creating graphical user interfaces.")
2842 (license license:lgpl3))))
2843
2844 (define-public sbcl-cl-cffi-gtk-glib
2845 (package
2846 (inherit sbcl-cl-cffi-gtk-boot0)
2847 (name "sbcl-cl-cffi-gtk-glib")
2848 (inputs
2849 `(("glib" ,glib)
2850 ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
2851 (arguments
2852 `(#:asd-file "glib/cl-cffi-gtk-glib.asd"
2853 #:phases
2854 (modify-phases %standard-phases
2855 (add-after 'unpack 'fix-paths
2856 (lambda* (#:key inputs #:allow-other-keys)
2857 (substitute* "glib/glib.init.lisp"
2858 (("libglib|libgthread" all) (string-append
2859 (assoc-ref inputs "glib") "/lib/" all))))))))))
2860
2861 (define-public sbcl-cl-cffi-gtk-gobject
2862 (package
2863 (inherit sbcl-cl-cffi-gtk-boot0)
2864 (name "sbcl-cl-cffi-gtk-gobject")
2865 (inputs
2866 `(("glib" ,glib)
2867 ("cl-cffi-gtk-glib" ,sbcl-cl-cffi-gtk-glib)
2868 ("trivial-garbage" ,sbcl-trivial-garbage)
2869 ("bordeaux-threads" ,sbcl-bordeaux-threads)
2870 ("closer-mop" ,sbcl-closer-mop)
2871 ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
2872 (arguments
2873 `(#:asd-file "gobject/cl-cffi-gtk-gobject.asd"
2874 #:phases
2875 (modify-phases %standard-phases
2876 (add-after 'unpack 'fix-paths
2877 (lambda* (#:key inputs #:allow-other-keys)
2878 (substitute* "gobject/gobject.init.lisp"
2879 (("libgobject" all) (string-append
2880 (assoc-ref inputs "glib") "/lib/" all))))))))))
2881
2882 (define-public sbcl-cl-cffi-gtk-gio
2883 (package
2884 (inherit sbcl-cl-cffi-gtk-boot0)
2885 (name "sbcl-cl-cffi-gtk-gio")
2886 (inputs
2887 `(("glib" ,glib)
2888 ("cl-cffi-gtk-glib" ,sbcl-cl-cffi-gtk-glib)
2889 ("cl-cffi-gtk-gobject" ,sbcl-cl-cffi-gtk-gobject)
2890 ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
2891 (arguments
2892 `(#:asd-file "gio/cl-cffi-gtk-gio.asd"
2893 #:phases
2894 (modify-phases %standard-phases
2895 (add-after 'unpack 'fix-paths
2896 (lambda* (#:key inputs #:allow-other-keys)
2897 (substitute* "gio/gio.init.lisp"
2898 (("libgio" all)
2899 (string-append
2900 (assoc-ref inputs "glib") "/lib/" all))))))))))
2901
2902 (define-public sbcl-cl-cffi-gtk-cairo
2903 (package
2904 (inherit sbcl-cl-cffi-gtk-boot0)
2905 (name "sbcl-cl-cffi-gtk-cairo")
2906 (inputs
2907 `(("cairo" ,cairo)
2908 ("cl-cffi-gtk-glib" ,sbcl-cl-cffi-gtk-glib)
2909 ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
2910 (arguments
2911 `(#:asd-file "cairo/cl-cffi-gtk-cairo.asd"
2912 #:phases
2913 (modify-phases %standard-phases
2914 (add-after 'unpack 'fix-paths
2915 (lambda* (#:key inputs #:allow-other-keys)
2916 (substitute* "cairo/cairo.init.lisp"
2917 (("libcairo" all)
2918 (string-append
2919 (assoc-ref inputs "cairo") "/lib/" all))))))))))
2920
2921 (define-public sbcl-cl-cffi-gtk-pango
2922 (package
2923 (inherit sbcl-cl-cffi-gtk-boot0)
2924 (name "sbcl-cl-cffi-gtk-pango")
2925 (inputs
2926 `(("pango" ,pango)
2927 ("cl-cffi-gtk-glib" ,sbcl-cl-cffi-gtk-glib)
2928 ("cl-cffi-gtk-gobject" ,sbcl-cl-cffi-gtk-gobject)
2929 ("cl-cffi-gtk-cairo" ,sbcl-cl-cffi-gtk-cairo)
2930 ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
2931 (arguments
2932 `(#:asd-file "pango/cl-cffi-gtk-pango.asd"
2933 #:phases
2934 (modify-phases %standard-phases
2935 (add-after 'unpack 'fix-paths
2936 (lambda* (#:key inputs #:allow-other-keys)
2937 (substitute* "pango/pango.init.lisp"
2938 (("libpango" all)
2939 (string-append
2940 (assoc-ref inputs "pango") "/lib/" all))))))))))
2941
2942 (define-public sbcl-cl-cffi-gtk-gdk-pixbuf
2943 (package
2944 (inherit sbcl-cl-cffi-gtk-boot0)
2945 (name "sbcl-cl-cffi-gtk-gdk-pixbuf")
2946 (inputs
2947 `(("gdk-pixbuf" ,gdk-pixbuf)
2948 ("cl-cffi-gtk-gobject" ,sbcl-cl-cffi-gtk-gobject)
2949 ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
2950 (arguments
2951 `(#:asd-file "gdk-pixbuf/cl-cffi-gtk-gdk-pixbuf.asd"
2952 #:phases
2953 (modify-phases %standard-phases
2954 (add-after 'unpack 'fix-paths
2955 (lambda* (#:key inputs #:allow-other-keys)
2956 (substitute* "gdk-pixbuf/gdk-pixbuf.init.lisp"
2957 (("libgdk_pixbuf" all)
2958 (string-append
2959 (assoc-ref inputs "gdk-pixbuf") "/lib/" all))))))))))
2960
2961 (define-public sbcl-cl-cffi-gtk-gdk
2962 (package
2963 (inherit sbcl-cl-cffi-gtk-boot0)
2964 (name "sbcl-cl-cffi-gtk-gdk")
2965 (inputs
2966 `(("gtk" ,gtk+)
2967 ("cl-cffi-gtk-gobject" ,sbcl-cl-cffi-gtk-gobject)
2968 ("cl-cffi-gtk-gio" ,sbcl-cl-cffi-gtk-gio)
2969 ("cl-cffi-gtk-gdk-pixbuf" ,sbcl-cl-cffi-gtk-gdk-pixbuf)
2970 ("cl-cffi-gtk-cairo" ,sbcl-cl-cffi-gtk-cairo)
2971 ("cl-cffi-gtk-pango" ,sbcl-cl-cffi-gtk-pango)
2972 ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
2973 (arguments
2974 `(#:asd-file "gdk/cl-cffi-gtk-gdk.asd"
2975 #:phases
2976 (modify-phases %standard-phases
2977 (add-after 'unpack 'fix-paths
2978 (lambda* (#:key inputs #:allow-other-keys)
2979 (substitute* "gdk/gdk.init.lisp"
2980 (("libgdk" all)
2981 (string-append
2982 (assoc-ref inputs "gtk") "/lib/" all)))
2983 (substitute* "gdk/gdk.package.lisp"
2984 (("libgtk" all)
2985 (string-append
2986 (assoc-ref inputs "gtk") "/lib/" all))))))))))
2987
2988 (define-public sbcl-cl-cffi-gtk
2989 (package
2990 (inherit sbcl-cl-cffi-gtk-boot0)
2991 (name "sbcl-cl-cffi-gtk")
2992 (inputs
2993 `(("cl-cffi-gtk-glib" ,sbcl-cl-cffi-gtk-glib)
2994 ("cl-cffi-gtk-gobject" ,sbcl-cl-cffi-gtk-gobject)
2995 ("cl-cffi-gtk-gio" ,sbcl-cl-cffi-gtk-gio)
2996 ("cl-cffi-gtk-gdk" ,sbcl-cl-cffi-gtk-gdk)
2997 ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
2998 (native-inputs
2999 `(("fiveam" ,sbcl-fiveam)))
3000 (arguments
3001 `(#:asd-file "gtk/cl-cffi-gtk.asd"
3002 #:test-asd-file "test/cl-cffi-gtk-test.asd"
3003 ;; TODO: Tests fail with memory fault.
3004 ;; See https://github.com/Ferada/cl-cffi-gtk/issues/24.
3005 #:tests? #f))))
3006
3007 (define-public cl-cffi-gtk
3008 (sbcl-package->cl-source-package sbcl-cl-cffi-gtk))
3009
3010 (define-public sbcl-cl-webkit
3011 (let ((commit "cd2a9008e0c152e54755e8a7f07b050fe36bab31"))
3012 (package
3013 (name "sbcl-cl-webkit")
3014 (version (git-version "2.4" "1" commit))
3015 (source
3016 (origin
3017 (method git-fetch)
3018 (uri (git-reference
3019 (url "https://github.com/jmercouris/cl-webkit")
3020 (commit commit)))
3021 (file-name (git-file-name "cl-webkit" version))
3022 (sha256
3023 (base32
3024 "0f5lyn9i7xrn3g1bddga377mcbawkbxydijpg389q4n04gqj0vwf"))))
3025 (build-system asdf-build-system/sbcl)
3026 (inputs
3027 `(("cffi" ,sbcl-cffi)
3028 ("cl-cffi-gtk" ,sbcl-cl-cffi-gtk)
3029 ("webkitgtk" ,webkitgtk)))
3030 (arguments
3031 `(#:asd-file "webkit2/cl-webkit2.asd"
3032 #:asd-system-name "cl-webkit2"
3033 #:phases
3034 (modify-phases %standard-phases
3035 (add-after 'unpack 'fix-paths
3036 (lambda* (#:key inputs #:allow-other-keys)
3037 (substitute* "webkit2/webkit2.init.lisp"
3038 (("libwebkit2gtk" all)
3039 (string-append
3040 (assoc-ref inputs "webkitgtk") "/lib/" all))))))))
3041 (home-page "https://github.com/jmercouris/cl-webkit")
3042 (synopsis "Binding to WebKitGTK+ for Common Lisp")
3043 (description
3044 "@command{cl-webkit} is a binding to WebKitGTK+ for Common Lisp,
3045 currently targeting WebKit version 2. The WebKitGTK+ library adds web
3046 browsing capabilities to an application, leveraging the full power of the
3047 WebKit browsing engine.")
3048 (license license:expat))))
3049
3050 (define-public cl-webkit
3051 (sbcl-package->cl-source-package sbcl-cl-webkit))
3052
3053 (define-public sbcl-lparallel
3054 (package
3055 (name "sbcl-lparallel")
3056 (version "2.8.4")
3057 (source
3058 (origin
3059 (method git-fetch)
3060 (uri (git-reference
3061 (url "https://github.com/lmj/lparallel/")
3062 (commit (string-append "lparallel-" version))))
3063 (file-name (git-file-name "lparallel" version))
3064 (sha256
3065 (base32
3066 "0g0aylrbbrqsz0ahmwhvnk4cmc2931fllbpcfgzsprwnqqd7vwq9"))))
3067 (build-system asdf-build-system/sbcl)
3068 (inputs
3069 `(("alexandria" ,sbcl-alexandria)
3070 ("bordeaux-threads" ,sbcl-bordeaux-threads)
3071 ("trivial-garbage" ,sbcl-trivial-garbage)))
3072 (home-page "https://lparallel.org/")
3073 (synopsis "Parallelism for Common Lisp")
3074 (description
3075 "@command{lparallel} is a library for parallel programming in Common
3076 Lisp, featuring:
3077
3078 @itemize
3079 @item a simple model of task submission with receiving queue,
3080 @item constructs for expressing fine-grained parallelism,
3081 @item asynchronous condition handling across thread boundaries,
3082 @item parallel versions of map, reduce, sort, remove, and many others,
3083 @item promises, futures, and delayed evaluation constructs,
3084 @item computation trees for parallelizing interconnected tasks,
3085 @item bounded and unbounded FIFO queues,
3086 @item high and low priority tasks,
3087 @item task killing by category,
3088 @item integrated timeouts.
3089 @end itemize\n")
3090 (license license:expat)))
3091
3092 (define-public cl-lparallel
3093 (sbcl-package->cl-source-package sbcl-lparallel))
3094
3095 (define-public ecl-lparallel
3096 (sbcl-package->ecl-package sbcl-lparallel))
3097
3098 (define-public sbcl-cl-markup
3099 (let ((commit "e0eb7debf4bdff98d1f49d0f811321a6a637b390"))
3100 (package
3101 (name "sbcl-cl-markup")
3102 (version (git-version "0.1" "1" commit))
3103 (source
3104 (origin
3105 (method git-fetch)
3106 (uri (git-reference
3107 (url "https://github.com/arielnetworks/cl-markup/")
3108 (commit commit)))
3109 (file-name (git-file-name "cl-markup" version))
3110 (sha256
3111 (base32
3112 "10l6k45971dl13fkdmva7zc6i453lmq9j4xax2ci6pjzlc6xjhp7"))))
3113 (build-system asdf-build-system/sbcl)
3114 (home-page "https://github.com/arielnetworks/cl-markup/")
3115 (synopsis "Markup generation library for Common Lisp")
3116 (description
3117 "A modern markup generation library for Common Lisp that features:
3118
3119 @itemize
3120 @item Fast (even faster through compiling the code)
3121 @item Safety
3122 @item Support for multiple document types (markup, xml, html, html5, xhtml)
3123 @item Output with doctype
3124 @item Direct output to stream
3125 @end itemize\n")
3126 (license license:lgpl3+))))
3127
3128 (define-public cl-markup
3129 (sbcl-package->cl-source-package sbcl-cl-markup))
3130
3131 (define-public ecl-cl-markup
3132 (sbcl-package->ecl-package sbcl-cl-markup))
3133
3134 (define-public sbcl-cl-css
3135 (let ((commit "8fe654c8f0cf95b300718101cce4feb517f78e2f"))
3136 (package
3137 (name "sbcl-cl-css")
3138 (version (git-version "0.1" "1" commit))
3139 (source
3140 (origin
3141 (method git-fetch)
3142 (uri (git-reference
3143 (url "https://github.com/inaimathi/cl-css/")
3144 (commit commit)))
3145 (file-name (git-file-name "cl-css" version))
3146 (sha256
3147 (base32
3148 "1lc42zi2sw11fl2589sc19nr5sd2p0wy7wgvgwaggxa5f3ajhsmd"))))
3149 (build-system asdf-build-system/sbcl)
3150 (home-page "https://github.com/inaimathi/cl-css/")
3151 (synopsis "Non-validating, inline CSS generator for Common Lisp")
3152 (description
3153 "This is a dead-simple, non validating, inline CSS generator for Common
3154 Lisp. Its goals are axiomatic syntax, simple implementation to support
3155 portability, and boilerplate reduction in CSS.")
3156 (license license:expat))))
3157
3158 (define-public cl-css
3159 (sbcl-package->cl-source-package sbcl-cl-css))
3160
3161 (define-public ecl-cl-css
3162 (sbcl-package->ecl-package sbcl-cl-css))
3163
3164 (define-public sbcl-portable-threads
3165 (let ((commit "c0e61a1faeb0583c80fd3f20b16cc4c555226920"))
3166 (package
3167 (name "sbcl-portable-threads")
3168 (version (git-version "2.3" "1" commit))
3169 (source
3170 (origin
3171 (method git-fetch)
3172 (uri (git-reference
3173 (url "https://github.com/binghe/portable-threads/")
3174 (commit commit)))
3175 (file-name (git-file-name "portable-threads" version))
3176 (sha256
3177 (base32
3178 "03fmxyarc0xf4kavwkfa0a2spkyfrz6hbgbi9y4q7ny5aykdyfaq"))))
3179 (build-system asdf-build-system/sbcl)
3180 (arguments
3181 `(;; Tests seem broken.
3182 #:tests? #f))
3183 (home-page "https://github.com/binghe/portable-threads")
3184 (synopsis "Portable threads (and scheduled and periodic functions) API for Common Lisp")
3185 (description
3186 "Portable Threads (and Scheduled and Periodic Functions) API for Common
3187 Lisp (from GBBopen project).")
3188 (license license:asl2.0))))
3189
3190 (define-public cl-portable-threads
3191 (sbcl-package->cl-source-package sbcl-portable-threads))
3192
3193 (define-public ecl-portable-threada
3194 (sbcl-package->ecl-package sbcl-portable-threads))
3195
3196 (define sbcl-usocket-boot0
3197 ;; usocket's test rely on usocket-server which depends on usocket itself.
3198 ;; We break this cyclic dependency with -boot0 that packages usocket.
3199 (package
3200 (name "sbcl-usocket-boot0")
3201 (version "0.8.3")
3202 (source
3203 (origin
3204 (method git-fetch)
3205 (uri (git-reference
3206 (url "https://github.com/usocket/usocket/")
3207 (commit (string-append "v" version))))
3208 (file-name (git-file-name "usocket" version))
3209 (sha256
3210 (base32
3211 "0x746wr2324l6bn7skqzgkzcbj5kd0zp2ck0c8rldrw0rzabg826"))))
3212 (build-system asdf-build-system/sbcl)
3213 (inputs
3214 `(("split-sequence" ,sbcl-split-sequence)))
3215 (arguments
3216 `(#:tests? #f
3217 #:asd-system-name "usocket"))
3218 (home-page "https://common-lisp.net/project/usocket/")
3219 (synopsis "Universal socket library for Common Lisp (server side)")
3220 (description
3221 "This library strives to provide a portable TCP/IP and UDP/IP socket
3222 interface for as many Common Lisp implementations as possible, while keeping
3223 the abstraction and portability layer as thin as possible.")
3224 (license license:expat)))
3225
3226 (define-public sbcl-usocket-server
3227 (package
3228 (inherit sbcl-usocket-boot0)
3229 (name "sbcl-usocket-server")
3230 (inputs
3231 `(("bordeaux-threads" ,sbcl-bordeaux-threads)
3232 ("usocket" ,sbcl-usocket-boot0)))
3233 (arguments
3234 '(#:asd-system-name "usocket-server"))
3235 (synopsis "Universal socket library for Common Lisp (server side)")))
3236
3237 (define-public cl-usocket-server
3238 (sbcl-package->cl-source-package sbcl-usocket-server))
3239
3240 (define-public ecl-socket-server
3241 (sbcl-package->ecl-package sbcl-usocket-server))
3242
3243 (define-public sbcl-usocket
3244 (package
3245 (inherit sbcl-usocket-boot0)
3246 (name "sbcl-usocket")
3247 (arguments
3248 ;; FIXME: Tests need network access?
3249 `(#:tests? #f))
3250 (native-inputs
3251 ;; Testing only.
3252 `(("usocket-server" ,sbcl-usocket-server)
3253 ("rt" ,sbcl-rt)))))
3254
3255 (define-public cl-usocket
3256 (sbcl-package->cl-source-package sbcl-usocket))
3257
3258 (define-public ecl-usocket
3259 (sbcl-package->ecl-package sbcl-usocket))
3260
3261 (define-public sbcl-s-xml
3262 (package
3263 (name "sbcl-s-xml")
3264 (version "3")
3265 (source
3266 (origin
3267 (method url-fetch)
3268 (uri "https://common-lisp.net/project/s-xml/s-xml.tgz")
3269 (sha256
3270 (base32
3271 "061qcr0dzshsa38s5ma4ay924cwak2nq9gy59dw6v9p0qb58nzjf"))))
3272 (build-system asdf-build-system/sbcl)
3273 (home-page "https://common-lisp.net/project/s-xml/")
3274 (synopsis "Simple XML parser implemented in Common Lisp")
3275 (description
3276 "S-XML is a simple XML parser implemented in Common Lisp. This XML
3277 parser implementation has the following features:
3278
3279 @itemize
3280 @item It works (handling many common XML usages).
3281 @item It is very small (the core is about 700 lines of code, including
3282 comments and whitespace).
3283 @item It has a core API that is simple, efficient and pure functional, much
3284 like that from SSAX (see also http://ssax.sourceforge.net).
3285 @item It supports different DOM models: an XSML-based one, an LXML-based one
3286 and a classic xml-element struct based one.
3287 @item It is reasonably time and space efficient (internally avoiding garbage
3288 generatation as much as possible).
3289 @item It does support CDATA.
3290 @item It should support the same character sets as your Common Lisp
3291 implementation.
3292 @item It does support XML name spaces.
3293 @end itemize
3294
3295 This XML parser implementation has the following limitations:
3296
3297 @itemize
3298 @item It does not support any special tags (like processing instructions).
3299 @item It is not validating, even skips DTD's all together.
3300 @end itemize\n")
3301 (license license:lgpl3+)))
3302
3303 (define-public cl-s-xml
3304 (sbcl-package->cl-source-package sbcl-s-xml))
3305
3306 (define-public ecl-s-xml
3307 (sbcl-package->ecl-package sbcl-s-xml))
3308
3309 (define-public sbcl-s-xml-rpc
3310 (package
3311 (name "sbcl-s-xml-rpc")
3312 (version "7")
3313 (source
3314 (origin
3315 (method url-fetch)
3316 (uri "https://common-lisp.net/project/s-xml-rpc/s-xml-rpc.tgz")
3317 (sha256
3318 (base32
3319 "02z7k163d51v0pzk8mn1xb6h5s6x64gjqkslhwm3a5x26k2gfs11"))))
3320 (build-system asdf-build-system/sbcl)
3321 (inputs
3322 `(("s-xml" ,sbcl-s-xml)))
3323 (home-page "https://common-lisp.net/project/s-xml-rpc/")
3324 (synopsis "Implementation of XML-RPC in Common Lisp for both client and server")
3325 (description
3326 "S-XML-RPC is an implementation of XML-RPC in Common Lisp for both
3327 client and server.")
3328 (license license:lgpl3+)))
3329
3330 (define-public cl-s-xml-rpc
3331 (sbcl-package->cl-source-package sbcl-s-xml-rpc))
3332
3333 (define-public ecl-s-xml-rpc
3334 (sbcl-package->ecl-package sbcl-s-xml-rpc))
3335
3336 (define-public sbcl-trivial-clipboard
3337 (let ((commit "5af3415d1484e6d69a1b5c178f24680d9fd01796"))
3338 (package
3339 (name "sbcl-trivial-clipboard")
3340 (version (git-version "0.0.0.0" "2" commit))
3341 (source
3342 (origin
3343 (method git-fetch)
3344 (uri (git-reference
3345 (url "https://github.com/snmsts/trivial-clipboard")
3346 (commit commit)))
3347 (file-name (git-file-name "trivial-clipboard" version))
3348 (sha256
3349 (base32
3350 "1gb515z5yq6h5548pb1fwhmb0hhq1ssyb78pvxh4alq799xipxs9"))))
3351 (build-system asdf-build-system/sbcl)
3352 (inputs
3353 `(("xclip" ,xclip)))
3354 (native-inputs
3355 `(("fiveam" ,sbcl-fiveam)))
3356 (arguments
3357 `(#:phases
3358 (modify-phases %standard-phases
3359 (add-after 'unpack 'fix-paths
3360 (lambda* (#:key inputs #:allow-other-keys)
3361 (substitute* "src/text.lisp"
3362 (("\\(executable-find \"xclip\"\\)")
3363 (string-append "(executable-find \""
3364 (assoc-ref inputs "xclip")
3365 "/bin/xclip\")"))))))))
3366 (home-page "https://github.com/snmsts/trivial-clipboard")
3367 (synopsis "Access system clipboard in Common Lisp")
3368 (description
3369 "@command{trivial-clipboard} gives access to the system clipboard.")
3370 (license license:expat))))
3371
3372 (define-public cl-trivial-clipboard
3373 (sbcl-package->cl-source-package sbcl-trivial-clipboard))
3374
3375 (define-public ecl-trivial-clipboard
3376 (sbcl-package->ecl-package sbcl-trivial-clipboard))
3377
3378 (define-public sbcl-trivial-backtrace
3379 (let ((commit "ca81c011b86424a381a7563cea3b924f24e6fbeb")
3380 (revision "1"))
3381 (package
3382 (name "sbcl-trivial-backtrace")
3383 (version (git-version "0.0.0" revision commit))
3384 (source
3385 (origin
3386 (method git-fetch)
3387 (uri (git-reference
3388 (url "https://github.com/gwkkwg/trivial-backtrace.git")
3389 (commit commit)))
3390 (file-name (git-file-name "trivial-backtrace" version))
3391 (sha256
3392 (base32 "10p41p43skj6cimdg8skjy7372s8v2xpkg8djjy0l8rm45i654k1"))))
3393 (build-system asdf-build-system/sbcl)
3394 (inputs
3395 `(("sbcl-lift" ,sbcl-lift)))
3396 (arguments
3397 `(#:phases
3398 (modify-phases %standard-phases
3399 (add-after 'check 'delete-test-results
3400 (lambda* (#:key outputs #:allow-other-keys)
3401 (let ((test-results (string-append (assoc-ref outputs "out")
3402 "/share/common-lisp/"
3403 (%lisp-type) "-source"
3404 "/trivial-backtrace"
3405 "/test-results")))
3406 (when (file-exists? test-results)
3407 (delete-file-recursively test-results)))
3408 #t)))))
3409 (home-page "https://common-lisp.net/project/trivial-backtrace/")
3410 (synopsis "Portable simple API to work with backtraces in Common Lisp")
3411 (description
3412 "On of the many things that didn't quite get into the Common Lisp
3413 standard was how to get a Lisp to output its call stack when something has
3414 gone wrong. As such, each Lisp has developed its own notion of what to
3415 display, how to display it, and what sort of arguments can be used to
3416 customize it. @code{trivial-backtrace} is a simple solution to generating a
3417 backtrace portably.")
3418 (license license:expat))))
3419
3420 (define-public cl-trivial-backtrace
3421 (sbcl-package->cl-source-package sbcl-trivial-backtrace))
3422
3423 (define-public sbcl-rfc2388
3424 (let ((commit "591bcf7e77f2c222c43953a80f8c297751dc0c4e")
3425 (revision "1"))
3426 (package
3427 (name "sbcl-rfc2388")
3428 (version (git-version "0.0.0" revision commit))
3429 (source
3430 (origin
3431 (method git-fetch)
3432 (uri (git-reference
3433 (url "https://github.com/jdz/rfc2388.git")
3434 (commit commit)))
3435 (file-name (git-file-name "rfc2388" version))
3436 (sha256
3437 (base32 "0phh5n3clhl9ji8jaxrajidn22d3f0aq87mlbfkkxlnx2pnw694k"))))
3438 (build-system asdf-build-system/sbcl)
3439 (home-page "https://github.com/jdz/rfc2388/")
3440 (synopsis "An implementation of RFC 2388 in Common Lisp")
3441 (description
3442 "This package contains an implementation of RFC 2388, which is used to
3443 process form data posted with HTTP POST method using enctype
3444 \"multipart/form-data\".")
3445 (license license:bsd-2))))
3446
3447 (define-public cl-rfc2388
3448 (sbcl-package->cl-source-package sbcl-rfc2388))
3449
3450 (define-public sbcl-md5
3451 (package
3452 (name "sbcl-md5")
3453 (version "2.0.4")
3454 (source
3455 (origin
3456 (method url-fetch)
3457 (uri (string-append
3458 "https://github.com/pmai/md5/archive/release-" version ".tar.gz"))
3459 (sha256
3460 (base32 "19yl9n0pjdz5gw4qi711lka97xcd9f81ylg434hk7jwn9f2s6w11"))))
3461 (build-system asdf-build-system/sbcl)
3462 (home-page "https://github.com/pmai/md5")
3463 (synopsis
3464 "Common Lisp implementation of the MD5 Message-Digest Algorithm (RFC 1321)")
3465 (description
3466 "This package implements The MD5 Message-Digest Algorithm, as defined in
3467 RFC 1321 by R. Rivest, published April 1992.")
3468 (license license:public-domain)))
3469
3470 (define-public cl-md5
3471 (sbcl-package->cl-source-package sbcl-md5))
3472
3473 (define-public sbcl-cl+ssl
3474 (let ((commit "141ae91416bc40f1618dc07e48429b84388aa599")
3475 (revision "1"))
3476 (package
3477 (name "sbcl-cl+ssl")
3478 (version (git-version "0.0.0" revision commit))
3479 (source
3480 (origin
3481 (method git-fetch)
3482 (uri (git-reference
3483 (url "https://github.com/cl-plus-ssl/cl-plus-ssl.git")
3484 (commit commit)))
3485 (file-name (git-file-name "cl+ssl" version))
3486 (sha256
3487 (base32 "1s0hg1h9sf8q89v0yrxmzg5f5sng29rgx3n21r9h9yql8351myan"))))
3488 (build-system asdf-build-system/sbcl)
3489 (arguments
3490 '(#:phases
3491 (modify-phases %standard-phases
3492 (add-after 'unpack 'fix-paths
3493 (lambda* (#:key inputs #:allow-other-keys)
3494 (substitute* "src/reload.lisp"
3495 (("libssl.so" all)
3496 (string-append
3497 (assoc-ref inputs "openssl") "/lib/" all))))))))
3498 (inputs
3499 `(("openssl" ,openssl)
3500 ("sbcl-cffi" ,sbcl-cffi)
3501 ("sbcl-trivial-gray-streams" ,sbcl-trivial-gray-streams)
3502 ("sbcl-flexi-streams" ,sbcl-flexi-streams)
3503 ("sbcl-bordeaux-threads" ,sbcl-bordeaux-threads)
3504 ("sbcl-trivial-garbage" ,sbcl-trivial-garbage)
3505 ("sbcl-alexandria" ,sbcl-alexandria)
3506 ("sbcl-trivial-features" ,sbcl-trivial-features)))
3507 (home-page "http://common-lisp.net/project/cl-plus-ssl/")
3508 (synopsis "Common Lisp bindings to OpenSSL")
3509 (description
3510 "This library is a fork of SSL-CMUCL. The original SSL-CMUCL source
3511 code was written by Eric Marsden and includes contributions by Jochen Schmidt.
3512 Development into CL+SSL was done by David Lichteblau.")
3513 (license license:expat))))
3514
3515 (define-public cl-cl+ssl
3516 (sbcl-package->cl-source-package sbcl-cl+ssl))
3517
3518 (define-public sbcl-kmrcl
3519 (let ((version "1.109.0")
3520 (commit "5260068b2eb735af6796740c2db4955afac21636")
3521 (revision "1"))
3522 (package
3523 (name "sbcl-kmrcl")
3524 (version (git-version version revision commit))
3525 (source
3526 (origin
3527 (method git-fetch)
3528 (uri (git-reference
3529 (url "http://git.kpe.io/kmrcl.git/")
3530 (commit commit)))
3531 (file-name (git-file-name name version))
3532 (sha256
3533 (base32 "1va7xjgzfv674bpsli674i7zj3f7wg5kxic41kz18r6hh4n52dfv"))))
3534 (build-system asdf-build-system/sbcl)
3535 (arguments
3536 ;; Tests fail with: :FORCE and :FORCE-NOT arguments not allowed in a
3537 ;; nested call to ASDF/OPERATE:OPERATE unless identically to toplevel
3538 '(#:tests? #f))
3539 (inputs
3540 `(("sbcl-rt" ,sbcl-rt)))
3541 (home-page "http://files.kpe.io/kmrcl/")
3542 (synopsis "General utilities for Common Lisp programs")
3543 (description
3544 "KMRCL is a collection of utilities used by a number of Kevin
3545 Rosenberg's CL packages.")
3546 (license license:llgpl))))
3547
3548 (define-public cl-kmrcl
3549 (sbcl-package->cl-source-package sbcl-kmrcl))
3550
3551 (define-public sbcl-cl-base64
3552 (let ((version "3.3.3"))
3553 (package
3554 (name "sbcl-cl-base64")
3555 (version version)
3556 (source
3557 (origin
3558 (method git-fetch)
3559 (uri (git-reference
3560 (url "http://git.kpe.io/cl-base64.git")
3561 (commit (string-append "v" version))))
3562 (file-name (git-file-name "cl-base64" version))
3563 (sha256
3564 (base32 "1dw6j7n6gsd2qa0p0rbsjxj00acxx3i9ca1qkgl0liy8lpnwkypl"))))
3565 (build-system asdf-build-system/sbcl)
3566 (arguments
3567 ;; Tests fail with: :FORCE and :FORCE-NOT arguments not allowed
3568 ;; in a nested call to ASDF/OPERATE:OPERATE unless identically
3569 ;; to toplevel
3570 '(#:tests? #f))
3571 (inputs
3572 `(("sbcl-ptester" ,sbcl-ptester)
3573 ("sbcl-kmrcl" ,sbcl-kmrcl)))
3574 (home-page "http://files.kpe.io/cl-base64/")
3575 (synopsis
3576 "Common Lisp package to encode and decode base64 with URI support")
3577 (description
3578 "This package provides highly optimized base64 encoding and decoding.
3579 Besides conversion to and from strings, integer conversions are supported.
3580 Encoding with Uniform Resource Identifiers is supported by using a modified
3581 encoding table that uses only URI-compatible characters.")
3582 (license license:bsd-3))))
3583
3584 (define-public cl-base64
3585 (sbcl-package->cl-source-package sbcl-cl-base64))
3586
3587 (define-public sbcl-chunga
3588 (package
3589 (name "sbcl-chunga")
3590 (version "1.1.7")
3591 (source
3592 (origin
3593 (method git-fetch)
3594 (uri (git-reference
3595 (url "https://github.com/edicl/chunga.git")
3596 (commit (string-append "v" version))))
3597 (file-name (git-file-name name version))
3598 (sha256
3599 (base32 "0jzn3nyb3f22gm983rfk99smqs3mhb9ivjmasvhq9qla5cl9pyhd"))))
3600 (build-system asdf-build-system/sbcl)
3601 (inputs
3602 `(("sbcl-trivial-gray-streams" ,sbcl-trivial-gray-streams)))
3603 (home-page "https://edicl.github.io/chunga/")
3604 (synopsis "Portable chunked streams for Common Lisp")
3605 (description
3606 "Chunga implements streams capable of chunked encoding on demand as
3607 defined in RFC 2616.")
3608 (license license:bsd-2)))
3609
3610 (define-public cl-chunga
3611 (sbcl-package->cl-source-package sbcl-chunga))
3612
3613 (define-public sbcl-cl-who
3614 (let ((version "1.1.4")
3615 (commit "2c08caa4bafba720409af9171feeba3f32e86d32")
3616 (revision "1"))
3617 (package
3618 (name "sbcl-cl-who")
3619 (version (git-version version revision commit))
3620 (source
3621 (origin
3622 (method git-fetch)
3623 (uri (git-reference
3624 (url "https://github.com/edicl/cl-who.git")
3625 (commit commit)))
3626 (file-name (git-file-name name version))
3627 (sha256
3628 (base32
3629 "0yjb6sr3yazm288m318kqvj9xk8rm9n1lpimgf65ymqv0i5agxsb"))))
3630 (build-system asdf-build-system/sbcl)
3631 (native-inputs
3632 `(("sbcl-flexi-streams" ,sbcl-flexi-streams)))
3633 (home-page "https://edicl.github.io/cl-who/")
3634 (synopsis "Yet another Lisp markup language")
3635 (description
3636 "There are plenty of Lisp Markup Languages out there - every Lisp
3637 programmer seems to write at least one during his career - and CL-WHO (where
3638 WHO means \"with-html-output\" for want of a better acronym) is probably just
3639 as good or bad as the next one.")
3640 (license license:bsd-2))))
3641
3642 (define-public cl-cl-who
3643 (sbcl-package->cl-source-package sbcl-cl-who))
3644
3645 (define-public sbcl-chipz
3646 (let ((version "0.8")
3647 (commit "75dfbc660a5a28161c57f115adf74c8a926bfc4d")
3648 (revision "1"))
3649 (package
3650 (name "sbcl-chipz")
3651 (version (git-version version revision commit))
3652 (source
3653 (origin
3654 (method git-fetch)
3655 (uri (git-reference
3656 (url "https://github.com/froydnj/chipz.git")
3657 (commit commit)))
3658 (file-name (git-file-name name version))
3659 (sha256
3660 (base32
3661 "0plx4rs39zbs4gjk77h4a2q11zpy75fh9v8hnxrvsf8fnakajhwg"))))
3662 (build-system asdf-build-system/sbcl)
3663 (native-inputs
3664 `(("sbcl-flexi-streams" ,sbcl-flexi-streams)))
3665 (home-page "http://method-combination.net/lisp/chipz/")
3666 (synopsis
3667 "Common Lisp library for decompressing deflate, zlib, gzip, and bzip2
3668 data")
3669 (description
3670 "DEFLATE data, defined in RFC1951, forms the core of popular
3671 compression formats such as zlib (RFC 1950) and gzip (RFC 1952). As such,
3672 Chipz also provides for decompressing data in those formats as well. BZIP2 is
3673 the format used by the popular compression tool bzip2.")
3674 ;; The author describes it as "MIT-like"
3675 (license license:expat))))
3676
3677 (define-public cl-chipz
3678 (sbcl-package->cl-source-package sbcl-chipz))
3679
3680 (define-public sbcl-drakma
3681 (package
3682 (name "sbcl-drakma")
3683 (version "2.0.7")
3684 (source
3685 (origin
3686 (method git-fetch)
3687 (uri (git-reference
3688 (url "https://github.com/edicl/drakma.git")
3689 (commit (string-append "v" version))))
3690 (file-name (git-file-name name version))
3691 (sha256
3692 (base32
3693 "1441idnyif9xzx3ln1p3fg36k2v9h4wasjqrzc8y52j61420qpci"))))
3694 (build-system asdf-build-system/sbcl)
3695 (inputs
3696 `(("sbcl-puri" ,sbcl-puri)
3697 ("sbcl-cl-base64" ,sbcl-cl-base64)
3698 ("sbcl-chunga" ,sbcl-chunga)
3699 ("sbcl-flexi-streams" ,sbcl-flexi-streams)
3700 ("sbcl-cl-ppcre" ,sbcl-cl-ppcre)
3701 ("sbcl-chipz" ,sbcl-chipz)
3702 ("sbcl-usocket" ,sbcl-usocket)
3703 ("sbcl-cl+ssl" ,sbcl-cl+ssl)))
3704 (native-inputs
3705 `(("sbcl-fiveam" ,sbcl-fiveam)))
3706 (home-page "https://edicl.github.io/drakma/")
3707 (synopsis "HTTP client written in Common Lisp")
3708 (description
3709 "Drakma is a full-featured HTTP client implemented in Common Lisp. It
3710 knows how to handle HTTP/1.1 chunking, persistent connections, re-usable
3711 sockets, SSL, continuable uploads, file uploads, cookies, and more.")
3712 (license license:bsd-2)))
3713
3714 (define-public cl-drakma
3715 (sbcl-package->cl-source-package sbcl-drakma))
3716
3717 (define-public ecl-drakma
3718 (sbcl-package->ecl-package sbcl-drakma))
3719
3720 (define-public sbcl-hunchentoot
3721 (package
3722 (name "sbcl-hunchentoot")
3723 (version "1.2.38")
3724 (source
3725 (origin
3726 (method git-fetch)
3727 (uri (git-reference
3728 (url "https://github.com/edicl/hunchentoot.git")
3729 (commit (string-append "v" version))))
3730 (file-name (git-file-name "hunchentoot" version))
3731 (sha256
3732 (base32 "1anpcad7w045m4rsjs1f3xdhjwx5cppq1h0vlb3q7dz81fi3i6yq"))))
3733 (build-system asdf-build-system/sbcl)
3734 (native-inputs
3735 `(("sbcl-cl-who" ,sbcl-cl-who)
3736 ("sbcl-drakma" ,sbcl-drakma)))
3737 (inputs
3738 `(("sbcl-chunga" ,sbcl-chunga)
3739 ("sbcl-cl-base64" ,sbcl-cl-base64)
3740 ("sbcl-cl-fad" ,sbcl-cl-fad)
3741 ("sbcl-cl-ppcre" ,sbcl-cl-ppcre)
3742 ("sbcl-flexi-streams" ,sbcl-flexi-streams)
3743 ("sbcl-cl+ssl" ,sbcl-cl+ssl)
3744 ("sbcl-md5" ,sbcl-md5)
3745 ("sbcl-rfc2388" ,sbcl-rfc2388)
3746 ("sbcl-trivial-backtrace" ,sbcl-trivial-backtrace)
3747 ("sbcl-usocket" ,sbcl-usocket)))
3748 (home-page "https://edicl.github.io/hunchentoot/")
3749 (synopsis "Web server written in Common Lisp")
3750 (description
3751 "Hunchentoot is a web server written in Common Lisp and at the same
3752 time a toolkit for building dynamic websites. As a stand-alone web server,
3753 Hunchentoot is capable of HTTP/1.1 chunking (both directions), persistent
3754 connections (keep-alive), and SSL.")
3755 (license license:bsd-2)))
3756
3757 (define-public cl-hunchentoot
3758 (sbcl-package->cl-source-package sbcl-hunchentoot))
3759
3760 (define-public sbcl-trivial-types
3761 (package
3762 (name "sbcl-trivial-types")
3763 (version "0.0.1")
3764 (source
3765 (origin
3766 (method git-fetch)
3767 (uri (git-reference
3768 (url "https://github.com/m2ym/trivial-types.git")
3769 (commit "ee869f2b7504d8aa9a74403641a5b42b16f47d88")))
3770 (file-name (git-file-name name version))
3771 (sha256
3772 (base32 "1s4cp9bdlbn8447q7w7f1wkgwrbvfzp20mgs307l5pxvdslin341"))))
3773 (build-system asdf-build-system/sbcl)
3774 (home-page "https://github.com/m2ym/trivial-types")
3775 (synopsis "Trivial type definitions for Common Lisp")
3776 (description
3777 "TRIVIAL-TYPES provides missing but important type definitions such as
3778 PROPER-LIST, ASSOCIATION-LIST, PROPERTY-LIST and TUPLE.")
3779 (license license:llgpl)))
3780
3781 (define-public cl-trivial-types
3782 (sbcl-package->cl-source-package sbcl-trivial-types))
3783
3784 (define-public sbcl-cl-syntax
3785 (package
3786 (name "sbcl-cl-syntax")
3787 (version "0.0.3")
3788 (source
3789 (origin
3790 (method git-fetch)
3791 (uri (git-reference
3792 (url "https://github.com/m2ym/cl-syntax.git")
3793 (commit "03f0c329bbd55b8622c37161e6278366525e2ccc")))
3794 (file-name (git-file-name "cl-syntax" version))
3795 (sha256
3796 (base32 "17ran8xp77asagl31xv8w819wafh6whwfc9p6dgx22ca537gyl4y"))))
3797 (build-system asdf-build-system/sbcl)
3798 (arguments
3799 '(#:asd-file "cl-syntax.asd"
3800 #:asd-system-name "cl-syntax"))
3801 (inputs `(("sbcl-trivial-types" ,sbcl-trivial-types)
3802 ("sbcl-named-readtables" ,sbcl-named-readtables)))
3803 (home-page "https://github.com/m2ym/cl-syntax")
3804 (synopsis "Reader Syntax Coventions for Common Lisp and SLIME")
3805 (description
3806 "CL-SYNTAX provides Reader Syntax Coventions for Common Lisp and SLIME.")
3807 (license license:llgpl)))
3808
3809 (define-public cl-syntax
3810 (sbcl-package->cl-source-package sbcl-cl-syntax))
3811
3812 (define-public sbcl-cl-annot
3813 (let ((commit "c99e69c15d935eabc671b483349a406e0da9518d")
3814 (revision "1"))
3815 (package
3816 (name "sbcl-cl-annot")
3817 (version (git-version "0.0.0" revision commit))
3818 (source
3819 (origin
3820 (method git-fetch)
3821 (uri (git-reference
3822 (url "https://github.com/m2ym/cl-annot.git")
3823 (commit commit)))
3824 (file-name (git-file-name name version))
3825 (sha256
3826 (base32 "1wq1gs9jjd5m6iwrv06c2d7i5dvqsfjcljgbspfbc93cg5xahk4n"))))
3827 (build-system asdf-build-system/sbcl)
3828 (arguments
3829 '(#:asd-file "cl-annot.asd"
3830 #:asd-system-name "cl-annot"))
3831 (inputs
3832 `(("sbcl-alexandria" ,sbcl-alexandria)))
3833 (home-page "https://github.com/m2ym/cl-annot")
3834 (synopsis "Python-like Annotation Syntax for Common Lisp.")
3835 (description
3836 "@code{cl-annot} is an general annotation library for Common Lisp.")
3837 (license license:llgpl))))
3838
3839 (define-public cl-annot
3840 (sbcl-package->cl-source-package sbcl-cl-annot))
3841
3842 (define-public sbcl-cl-syntax-annot
3843 (package
3844 (name "sbcl-cl-syntax-annot")
3845 (version "0.0.3")
3846 (source
3847 (origin
3848 (method git-fetch)
3849 (uri (git-reference
3850 (url "https://github.com/m2ym/cl-syntax.git")
3851 (commit "03f0c329bbd55b8622c37161e6278366525e2ccc")))
3852 (file-name (git-file-name name version))
3853 (sha256
3854 (base32 "17ran8xp77asagl31xv8w819wafh6whwfc9p6dgx22ca537gyl4y"))))
3855 (build-system asdf-build-system/sbcl)
3856 (arguments
3857 '(#:asd-file "cl-syntax-annot.asd"
3858 #:asd-system-name "cl-syntax-annot"))
3859 (inputs
3860 `(("sbcl-cl-syntax" ,sbcl-cl-syntax)
3861 ("sbcl-cl-annot" ,sbcl-cl-annot)))
3862 (home-page "https://github.com/m2ym/cl-syntax")
3863 (synopsis "Reader Syntax Coventions for Common Lisp and SLIME")
3864 (description
3865 "CL-SYNTAX provides Reader Syntax Coventions for Common Lisp and
3866 SLIME.")
3867 (license license:llgpl)))
3868
3869 (define-public cl-syntax-annot
3870 (sbcl-package->cl-source-package sbcl-cl-syntax-annot))
3871
3872 (define-public sbcl-cl-utilities
3873 (let ((commit "dce2d2f6387091ea90357a130fa6d13a6776884b")
3874 (revision "1"))
3875 (package
3876 (name "sbcl-cl-utilities")
3877 (version (git-version "0.0.0" revision commit))
3878 (source
3879 (origin
3880 (method url-fetch)
3881 (uri
3882 (string-append
3883 "https://gitlab.common-lisp.net/cl-utilities/cl-utilities/-/"
3884 "archive/" commit "/cl-utilities-" commit ".tar.gz"))
3885 (sha256
3886 (base32 "1r46v730yf96nk2vb24qmagv9x96xvd08abqwhf02ghgydv1a7z2"))))
3887 (build-system asdf-build-system/sbcl)
3888 (arguments
3889 '(#:asd-file "cl-utilities.asd"
3890 #:asd-system-name "cl-utilities"
3891 #:phases
3892 (modify-phases %standard-phases
3893 (add-after 'unpack 'fix-paths
3894 (lambda* (#:key inputs #:allow-other-keys)
3895 (substitute* "rotate-byte.lisp"
3896 (("in-package :cl-utilities)" all)
3897 "in-package :cl-utilities)\n\n#+sbcl\n(require :sb-rotate-byte)")))))))
3898 (home-page "http://common-lisp.net/project/cl-utilities")
3899 (synopsis "A collection of semi-standard utilities")
3900 (description
3901 "On Cliki.net <http://www.cliki.net/Common%20Lisp%20Utilities>, there
3902 is a collection of Common Lisp Utilities, things that everybody writes since
3903 they're not part of the official standard. There are some very useful things
3904 there; the only problems are that they aren't implemented as well as you'd
3905 like (some aren't implemented at all) and they aren't conveniently packaged
3906 and maintained. It takes quite a bit of work to carefully implement utilities
3907 for common use, commented and documented, with error checking placed
3908 everywhere some dumb user might make a mistake.")
3909 (license license:public-domain))))
3910
3911 (define-public cl-utilities
3912 (sbcl-package->cl-source-package sbcl-cl-utilities))
3913
3914 (define-public sbcl-map-set
3915 (let ((commit "7b4b545b68b8")
3916 (revision "1"))
3917 (package
3918 (name "sbcl-map-set")
3919 (version (git-version "0.0.0" revision commit))
3920 (source
3921 (origin
3922 (method url-fetch)
3923 (uri (string-append
3924 "https://bitbucket.org/tarballs_are_good/map-set/get/"
3925 commit ".tar.gz"))
3926 (sha256
3927 (base32 "1sx5j5qdsy5fklspfammwb16kjrhkggdavm922a9q86jm5l0b239"))))
3928 (build-system asdf-build-system/sbcl)
3929 (home-page "https://bitbucket.org/tarballs_are_good/map-set")
3930 (synopsis "Set-like data structure")
3931 (description
3932 "Implementation of a set-like data structure with constant time
3933 addition, removal, and random selection.")
3934 (license license:bsd-3))))
3935
3936 (define-public cl-map-set
3937 (sbcl-package->cl-source-package sbcl-map-set))
3938
3939 (define-public sbcl-quri
3940 (let ((commit "76b75103f21ead092c9f715512fa82441ef61185")
3941 (revision "1"))
3942 (package
3943 (name "sbcl-quri")
3944 (version (git-version "0.1.0" revision commit))
3945 (source
3946 (origin
3947 (method git-fetch)
3948 (uri (git-reference
3949 (url "https://github.com/fukamachi/quri.git")
3950 (commit commit)))
3951 (file-name (git-file-name name version))
3952 (sha256
3953 (base32 "1ccbxsgzdibmzq33mmbmmz9vwl6l03xh6nbpsh1hkdvdcl7q0a60"))))
3954 (build-system asdf-build-system/sbcl)
3955 (arguments
3956 ;; Tests fail with: Component QURI-ASD::QURI-TEST not found,
3957 ;; required by #<SYSTEM "quri">. Why?
3958 '(#:tests? #f))
3959 (native-inputs `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
3960 ("sbcl-prove" ,sbcl-prove)))
3961 (inputs `(("sbcl-babel" ,sbcl-babel)
3962 ("sbcl-split-sequence" ,sbcl-split-sequence)
3963 ("sbcl-cl-utilities" ,sbcl-cl-utilities)
3964 ("sbcl-alexandria" ,sbcl-alexandria)))
3965 (home-page "https://github.com/fukamachi/quri")
3966 (synopsis "Yet another URI library for Common Lisp")
3967 (description
3968 "QURI (pronounced \"Q-ree\") is yet another URI library for Common
3969 Lisp. It is intended to be a replacement of PURI.")
3970 (license license:bsd-3))))
3971
3972 (define-public cl-quri
3973 (sbcl-package->cl-source-package sbcl-quri))
3974
3975 (define-public sbcl-myway
3976 (let ((commit "286230082a11f879c18b93f17ca571c5f676bfb7")
3977 (revision "1"))
3978 (package
3979 (name "sbcl-myway")
3980 (version (git-version "0.1.0" revision commit))
3981 (source
3982 (origin
3983 (method git-fetch)
3984 (uri (git-reference
3985 (url "https://github.com/fukamachi/myway.git")
3986 (commit commit)))
3987 (file-name (git-file-name "myway" version))
3988 (sha256
3989 (base32 "0briia9bk3lbr0frnx39d1qg6i38dm4j6z9w3yga3d40k6df4a90"))))
3990 (build-system asdf-build-system/sbcl)
3991 (arguments
3992 ;; Tests fail with: Component MYWAY-ASD::MYWAY-TEST not found, required
3993 ;; by #<SYSTEM "myway">. Why?
3994 '(#:tests? #f))
3995 (native-inputs
3996 `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
3997 ("sbcl-prove" ,sbcl-prove)))
3998 (inputs
3999 `(("sbcl-cl-ppcre" ,sbcl-cl-ppcre)
4000 ("sbcl-quri" ,sbcl-quri)
4001 ("sbcl-map-set" ,sbcl-map-set)))
4002 (home-page "https://github.com/fukamachi/myway")
4003 (synopsis "Sinatra-compatible URL routing library for Common Lisp")
4004 (description "My Way is a Sinatra-compatible URL routing library.")
4005 (license license:llgpl))))
4006
4007 (define-public cl-myway
4008 (sbcl-package->cl-source-package sbcl-myway))
4009
4010 (define-public sbcl-xsubseq
4011 (let ((commit "5ce430b3da5cda3a73b9cf5cee4df2843034422b")
4012 (revision "1"))
4013 (package
4014 (name "sbcl-xsubseq")
4015 (version (git-version "0.0.1" revision commit))
4016 (source
4017 (origin
4018 (method git-fetch)
4019 (uri (git-reference
4020 (url "https://github.com/fukamachi/xsubseq")
4021 (commit commit)))
4022 (file-name (git-file-name name version))
4023 (sha256
4024 (base32 "1xz79q0p2mclf3sqjiwf6izdpb6xrsr350bv4mlmdlm6rg5r99px"))))
4025 (build-system asdf-build-system/sbcl)
4026 (arguments
4027 ;; Tests fail with: Component XSUBSEQ-ASD::XSUBSEQ-TEST not found,
4028 ;; required by #<SYSTEM "xsubseq">. Why?
4029 '(#:tests? #f))
4030 (native-inputs
4031 `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
4032 ("sbcl-prove" ,sbcl-prove)))
4033 (home-page "https://github.com/fukamachi/xsubseq")
4034 (synopsis "Efficient way to use \"subseq\"s in Common Lisp")
4035 (description
4036 "XSubseq provides functions to be able to handle \"subseq\"s more
4037 effieiently.")
4038 (license license:bsd-2))))
4039
4040 (define-public cl-xsubseq
4041 (sbcl-package->cl-source-package sbcl-xsubseq))
4042
4043 (define-public sbcl-smart-buffer
4044 (let ((commit "09b9a9a0b3abaa37abe9a730f5aac2643dca4e62")
4045 (revision "1"))
4046 (package
4047 (name "sbcl-smart-buffer")
4048 (version (git-version "0.0.1" revision commit))
4049 (source
4050 (origin
4051 (method git-fetch)
4052 (uri (git-reference
4053 (url "https://github.com/fukamachi/smart-buffer")
4054 (commit commit)))
4055 (file-name (git-file-name name version))
4056 (sha256
4057 (base32 "0qz1zzxx0wm5ff7gpgsq550a59p0qj594zfmm2rglj97dahj54l7"))))
4058 (build-system asdf-build-system/sbcl)
4059 (arguments
4060 ;; Tests fail with: Component SMART-BUFFER-ASD::SMART-BUFFER-TEST not
4061 ;; found, required by #<SYSTEM "smart-buffer">. Why?
4062 `(#:tests? #f))
4063 (native-inputs
4064 `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
4065 ("sbcl-prove" ,sbcl-prove)))
4066 (inputs
4067 `(("sbcl-xsubseq" ,sbcl-xsubseq)
4068 ("sbcl-flexi-streams" ,sbcl-flexi-streams)))
4069 (home-page "https://github.com/fukamachi/smart-buffer")
4070 (synopsis "Smart octets buffer")
4071 (description
4072 "Smart-buffer provides an output buffer which changes the destination
4073 depending on content size.")
4074 (license license:bsd-3))))
4075
4076 (define-public cl-smart-buffer
4077 (sbcl-package->cl-source-package sbcl-smart-buffer))
4078
4079 (define-public sbcl-fast-http
4080 (let ((commit "f9e7597191bae380503e20724fd493a24d024935")
4081 (revision "1"))
4082 (package
4083 (name "sbcl-fast-http")
4084 (version (git-version "0.2.0" revision commit))
4085 (source
4086 (origin
4087 (method git-fetch)
4088 (uri (git-reference
4089 (url "https://github.com/fukamachi/fast-http")
4090 (commit commit)))
4091 (file-name (git-file-name name version))
4092 (sha256
4093 (base32 "0qdmwv2zm0sizxdb8nnclgwl0nfjcbjaimbakavikijw7lr9b4jp"))))
4094 (build-system asdf-build-system/sbcl)
4095 (arguments
4096 ;; Tests fail with: Component FAST-HTTP-ASD::FAST-HTTP-TEST not found,
4097 ;; required by #<SYSTEM "fast-http">. Why?
4098 `(#:tests? #f))
4099 (native-inputs
4100 `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
4101 ("sbcl-prove" ,sbcl-prove)))
4102 (inputs
4103 `(("sbcl-alexandria" ,sbcl-alexandria)
4104 ("sbcl-proc-parse" ,sbcl-proc-parse)
4105 ("sbcl-xsubseq" ,sbcl-xsubseq)
4106 ("sbcl-smart-buffer" ,sbcl-smart-buffer)
4107 ("sbcl-cl-utilities" ,sbcl-cl-utilities)))
4108 (home-page "https://github.com/fukamachi/fast-http")
4109 (synopsis "HTTP request/response parser for Common Lisp")
4110 (description
4111 "@code{fast-http} is a HTTP request/response protocol parser for Common
4112 Lisp.")
4113 ;; Author specified the MIT license
4114 (license license:expat))))
4115
4116 (define-public cl-fast-http
4117 (sbcl-package->cl-source-package sbcl-fast-http))
4118
4119 (define-public sbcl-static-vectors
4120 (package
4121 (name "sbcl-static-vectors")
4122 (version "1.8.4")
4123 (source
4124 (origin
4125 (method git-fetch)
4126 (uri (git-reference
4127 (url "https://github.com/sionescu/static-vectors.git")
4128 (commit (string-append "v" version))))
4129 (file-name (git-file-name name version))
4130 (sha256
4131 (base32 "0qvf9z6bhwhm8n45fjwkm7j8dcb58szfvndky65cyn4lpdval7m1"))))
4132 (native-inputs
4133 `(("sbcl-fiveam" ,sbcl-fiveam)))
4134 (inputs
4135 `(("sbcl-cffi-grovel" ,sbcl-cffi-grovel)
4136 ("sbcl-cffi" ,sbcl-cffi)))
4137 (build-system asdf-build-system/sbcl)
4138 (home-page "https://github.com/sionescu/static-vectors")
4139 (synopsis "Allocate SIMPLE-ARRAYs in static memory")
4140 (description
4141 "With @code{static-vectors}, you can create vectors allocated in static
4142 memory.")
4143 (license license:expat)))
4144
4145 (define-public cl-static-vectors
4146 (sbcl-package->cl-source-package sbcl-static-vectors))
4147
4148 (define-public ecl-static-vectors
4149 (sbcl-package->ecl-package sbcl-static-vectors))
4150
4151 (define-public sbcl-marshal
4152 (let ((commit "eff1b15f2b0af2f26f71ad6a4dd5c4beab9299ec")
4153 (revision "1"))
4154 (package
4155 (name "sbcl-marshal")
4156 (version (git-version "1.3.0" revision commit))
4157 (source
4158 (origin
4159 (method git-fetch)
4160 (uri (git-reference
4161 (url "https://github.com/wlbr/cl-marshal.git")
4162 (commit commit)))
4163 (file-name (git-file-name name version))
4164 (sha256
4165 (base32 "08qs6fhk38xpkkjkpcj92mxx0lgy4ygrbbzrmnivdx281syr0gwh"))))
4166 (build-system asdf-build-system/sbcl)
4167 (home-page "https://github.com/wlbr/cl-marshal")
4168 (synopsis "Simple (de)serialization of Lisp datastructures")
4169 (description
4170 "Simple and fast marshalling of Lisp datastructures. Convert any object
4171 into a string representation, put it on a stream an revive it from there.
4172 Only minimal changes required to make your CLOS objects serializable.")
4173 (license license:expat))))
4174
4175 (define-public cl-marshal
4176 (sbcl-package->cl-source-package sbcl-marshal))
4177
4178 (define-public sbcl-checkl
4179 (let ((commit "80328800d047fef9b6e32dfe6bdc98396aee3cc9")
4180 (revision "1"))
4181 (package
4182 (name "sbcl-checkl")
4183 (version (git-version "0.0.0" revision commit))
4184 (source
4185 (origin
4186 (method git-fetch)
4187 (uri (git-reference
4188 (url "https://github.com/rpav/CheckL.git")
4189 (commit commit)))
4190 (file-name (git-file-name name version))
4191 (sha256
4192 (base32 "0bpisihx1gay44xmyr1dmhlwh00j0zzi04rp9fy35i95l2r4xdlx"))))
4193 (build-system asdf-build-system/sbcl)
4194 (arguments
4195 ;; Error while trying to load definition for system checkl-test from
4196 ;; pathname [...]/checkl-test.asd: The function CHECKL:DEFINE-TEST-OP
4197 ;; is undefined.
4198 '(#:tests? #f))
4199 (native-inputs
4200 `(("sbcl-fiveam" ,sbcl-fiveam)))
4201 (inputs
4202 `(("sbcl-marshal" ,sbcl-marshal)))
4203 (home-page "https://github.com/rpav/CheckL/")
4204 (synopsis "Dynamic testing for Common Lisp")
4205 (description
4206 "CheckL lets you write tests dynamically, it checks resulting values
4207 against the last run.")
4208 ;; The author specifies both LLGPL and "BSD", but the "BSD" license
4209 ;; isn't specified anywhere, so I don't know which kind. LLGPL is the
4210 ;; stronger of the two and so I think only listing this should suffice.
4211 (license license:llgpl))))
4212
4213 (define-public cl-checkl
4214 (sbcl-package->cl-source-package sbcl-checkl))
4215
4216 (define-public sbcl-fast-io
4217 (let ((commit "dc3a71db7e9b756a88781ae9c342fe9d4bbab51c")
4218 (revision "1"))
4219 (package
4220 (name "sbcl-fast-io")
4221 (version (git-version "1.0.0" revision commit))
4222 (source
4223 (origin
4224 (method git-fetch)
4225 (uri (git-reference
4226 (url "https://github.com/rpav/fast-io.git")
4227 (commit commit)))
4228 (file-name (git-file-name name version))
4229 (sha256
4230 (base32 "1jsp6xvi26ln6fdy5j5zi05xvan8jsqdhisv552dy6xg6ws8i1yq"))))
4231 (build-system asdf-build-system/sbcl)
4232 (arguments
4233 ;; Error while trying to load definition for system fast-io-test from
4234 ;; pathname [...]/fast-io-test.asd: The function CHECKL:DEFINE-TEST-OP
4235 ;; is undefined.
4236 '(#:tests? #f))
4237 (native-inputs
4238 `(("sbcl-fiveam" ,sbcl-fiveam)
4239 ("sbcl-checkl" ,sbcl-checkl)))
4240 (inputs
4241 `(("sbcl-alexandria" ,sbcl-alexandria)
4242 ("sbcl-trivial-gray-streams" ,sbcl-trivial-gray-streams)
4243 ("sbcl-static-vectors" ,sbcl-static-vectors)))
4244 (home-page "https://github.com/rpav/fast-io")
4245 (synopsis "Fast octet-vector/stream I/O for Common Lisp")
4246 (description
4247 "Fast-io is about improving performance to octet-vectors and octet
4248 streams (though primarily the former, while wrapping the latter).")
4249 ;; Author specifies this as NewBSD which is an alias
4250 (license license:bsd-3))))
4251
4252 (define-public cl-fast-io
4253 (sbcl-package->cl-source-package sbcl-fast-io))
4254
4255 (define-public sbcl-jonathan
4256 (let ((commit "1f448b4f7ac8265e56e1c02b32ce383e65316300")
4257 (revision "1"))
4258 (package
4259 (name "sbcl-jonathan")
4260 (version (git-version "0.1.0" revision commit))
4261 (source
4262 (origin
4263 (method git-fetch)
4264 (uri (git-reference
4265 (url "https://github.com/Rudolph-Miller/jonathan.git")
4266 (commit commit)))
4267 (file-name (git-file-name name version))
4268 (sha256
4269 (base32 "14x4iwz3mbag5jzzzr4sb6ai0m9r4q4kyypbq32jmsk2dx1hi807"))))
4270 (build-system asdf-build-system/sbcl)
4271 (arguments
4272 ;; Tests fail with: Component JONATHAN-ASD::JONATHAN-TEST not found,
4273 ;; required by #<SYSTEM "jonathan">. Why?
4274 `(#:tests? #f))
4275 (native-inputs
4276 `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
4277 ("sbcl-prove" ,sbcl-prove)))
4278 (inputs
4279 `(("sbcl-cl-syntax" ,sbcl-cl-syntax)
4280 ("sbcl-cl-syntax-annot" ,sbcl-cl-syntax-annot)
4281 ("sbcl-fast-io" ,sbcl-fast-io)
4282 ("sbcl-proc-parse" ,sbcl-proc-parse)
4283 ("sbcl-cl-ppcre" ,sbcl-cl-ppcre)))
4284 (home-page "http://rudolph-miller.github.io/jonathan/overview.html")
4285 (synopsis "JSON encoder and decoder")
4286 (description
4287 "High performance JSON encoder and decoder. Currently support: SBCL,
4288 CCL.")
4289 ;; Author specifies the MIT license
4290 (license license:expat))))
4291
4292 (define-public cl-jonathan
4293 (sbcl-package->cl-source-package sbcl-jonathan))
4294
4295 (define-public sbcl-http-body
4296 (let ((commit "dd01dc4f5842e3d29728552e5163acce8386eb73")
4297 (revision "1"))
4298 (package
4299 (name "sbcl-http-body")
4300 (version (git-version "0.1.0" revision commit))
4301 (source
4302 (origin
4303 (method git-fetch)
4304 (uri (git-reference
4305 (url "https://github.com/fukamachi/http-body")
4306 (commit commit)))
4307 (file-name (git-file-name name version))
4308 (sha256
4309 (base32 "1jd06snjvxcprhapgfq8sx0y5lrldkvhf206ix6d5a23dd6zcmr0"))))
4310 (build-system asdf-build-system/sbcl)
4311 (arguments
4312 ;; Tests fail with: Component HTTP-BODY-ASD::HTTP-BODY-TEST not
4313 ;; found, required by #<SYSTEM "http-body">. Why?
4314 `(#:tests? #f))
4315 (native-inputs
4316 `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
4317 ("sbcl-prove" ,sbcl-prove)))
4318 (inputs
4319 `(("sbcl-fast-http" ,sbcl-fast-http)
4320 ("sbcl-jonathan" ,sbcl-jonathan)
4321 ("sbcl-quri" ,sbcl-quri)))
4322 (home-page "https://github.com/fukamachi/http-body")
4323 (synopsis "HTTP POST data parser")
4324 (description
4325 "HTTP-Body parses HTTP POST data and returns POST parameters. It
4326 supports application/x-www-form-urlencoded, application/json, and
4327 multipart/form-data.")
4328 (license license:bsd-2))))
4329
4330 (define-public cl-http-body
4331 (sbcl-package->cl-source-package sbcl-http-body))
4332
4333 (define-public sbcl-circular-streams
4334 (let ((commit "e770bade1919c5e8533dd2078c93c3d3bbeb38df")
4335 (revision "1"))
4336 (package
4337 (name "sbcl-circular-streams")
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/circular-streams")
4344 (commit commit)))
4345 (file-name (git-file-name name version))
4346 (sha256
4347 (base32 "1wpw6d5cciyqcf92f7mvihak52pd5s47kk4qq6f0r2z2as68p5rs"))))
4348 (build-system asdf-build-system/sbcl)
4349 (arguments
4350 ;; The tests depend on cl-test-more which is now prove. Prove
4351 ;; tests aren't working for some reason.
4352 `(#:tests? #f))
4353 (inputs
4354 `(("sbcl-fast-io" ,sbcl-fast-io)
4355 ("sbcl-trivial-gray-streams" ,sbcl-trivial-gray-streams)))
4356 (home-page "https://github.com/fukamachi/circular-streams")
4357 (synopsis "Circularly readable streams for Common Lisp")
4358 (description
4359 "Circular-Streams allows you to read streams circularly by wrapping real
4360 streams. Once you reach end-of-file of a stream, it's file position will be
4361 reset to 0 and you're able to read it again.")
4362 (license license:llgpl))))
4363
4364 (define-public cl-circular-streams
4365 (sbcl-package->cl-source-package sbcl-circular-streams))
4366
4367 (define-public sbcl-lack-request
4368 (let ((commit "abff8efeb0c3a848e6bb0022f2b8b7fa3a1bc88b")
4369 (revision "1"))
4370 (package
4371 (name "sbcl-lack-request")
4372 (version (git-version "0.1.0" revision commit))
4373 (source
4374 (origin
4375 (method git-fetch)
4376 (uri (git-reference
4377 (url "https://github.com/fukamachi/lack.git")
4378 (commit commit)))
4379 (file-name (git-file-name "lack-request" version))
4380 (sha256
4381 (base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85"))))
4382 (build-system asdf-build-system/sbcl)
4383 (arguments
4384 '(#:asd-file "lack-request.asd"
4385 #:asd-system-name "lack-request"
4386 #:test-asd-file "t-lack-request.asd"
4387 ;; XXX: Component :CLACK-TEST not found
4388 #:tests? #f))
4389 (native-inputs
4390 `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
4391 ("sbcl-prove" ,sbcl-prove)))
4392 (inputs
4393 `(("sbcl-quri" ,sbcl-quri)
4394 ("sbcl-http-body" ,sbcl-http-body)
4395 ("sbcl-circular-streams" ,sbcl-circular-streams)))
4396 (home-page "https://github.com/fukamachi/lack")
4397 (synopsis "Lack, the core of Clack")
4398 (description
4399 "Lack is a Common Lisp library which allows web applications to be
4400 constructed of modular components. It was originally a part of Clack, however
4401 it's going to be rewritten as an individual project since Clack v2 with
4402 performance and simplicity in mind.")
4403 (license license:llgpl))))
4404
4405 (define-public cl-lack-request
4406 (sbcl-package->cl-source-package sbcl-lack-request))
4407
4408 (define-public sbcl-local-time
4409 (let ((commit "beac054eef428552b63d4ae7820c32ffef9a3015")
4410 (revision "1"))
4411 (package
4412 (name "sbcl-local-time")
4413 (version (git-version "1.0.6" revision commit))
4414 (source
4415 (origin
4416 (method git-fetch)
4417 (uri (git-reference
4418 (url "https://github.com/dlowe-net/local-time.git")
4419 (commit commit)))
4420 (file-name (git-file-name name version))
4421 (sha256
4422 (base32 "0xhkmgxh41dg2wwlsp0h2l41jp144xn4gpxhh0lna6kh0560w2cc"))))
4423 (build-system asdf-build-system/sbcl)
4424 (arguments
4425 ;; TODO: Component :STEFIL not found, required by #<SYSTEM
4426 ;; "local-time/test">
4427 '(#:tests? #f))
4428 (native-inputs
4429 `(("stefil" ,sbcl-hu.dwim.stefil)))
4430 (inputs
4431 `(("sbcl-cl-fad" ,sbcl-cl-fad)))
4432 (home-page "https://common-lisp.net/project/local-time/")
4433 (synopsis "Time manipulation library for Common Lisp")
4434 (description
4435 "The LOCAL-TIME library is a Common Lisp library for the manipulation of
4436 dates and times. It is based almost entirely upon Erik Naggum's paper \"The
4437 Long Painful History of Time\".")
4438 (license license:expat))))
4439
4440 (define-public cl-local-time
4441 (sbcl-package->cl-source-package sbcl-local-time))
4442
4443 (define-public sbcl-lack-response
4444 (let ((commit "abff8efeb0c3a848e6bb0022f2b8b7fa3a1bc88b")
4445 (revision "1"))
4446 (package
4447 (name "sbcl-lack-response")
4448 (version (git-version "0.1.0" revision commit))
4449 (source
4450 (origin
4451 (method git-fetch)
4452 (uri (git-reference
4453 (url "https://github.com/fukamachi/lack.git")
4454 (commit commit)))
4455 (file-name (git-file-name name version))
4456 (sha256
4457 (base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85"))))
4458 (build-system asdf-build-system/sbcl)
4459 (arguments
4460 '(#:asd-file "lack-response.asd"
4461 #:asd-system-name "lack-response"
4462 ;; XXX: no tests for lack-response.
4463 #:tests? #f))
4464 (native-inputs
4465 `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
4466 ("sbcl-prove" ,sbcl-prove)))
4467 (inputs
4468 `(("sbcl-quri" ,sbcl-quri)
4469 ("sbcl-http-body" ,sbcl-http-body)
4470 ("sbcl-circular-streams" ,sbcl-circular-streams)
4471 ("sbcl-local-time" ,sbcl-local-time)))
4472 (home-page "https://github.com/fukamachi/lack")
4473 (synopsis "Lack, the core of Clack")
4474 (description
4475 "Lack is a Common Lisp library which allows web applications to be
4476 constructed of modular components. It was originally a part of Clack, however
4477 it's going to be rewritten as an individual project since Clack v2 with
4478 performance and simplicity in mind.")
4479 (license license:llgpl))))
4480
4481 (define-public cl-lack-response
4482 (sbcl-package->cl-source-package sbcl-lack-response))
4483
4484 (define-public sbcl-lack-component
4485 (let ((commit "abff8efeb0c3a848e6bb0022f2b8b7fa3a1bc88b")
4486 (revision "1"))
4487 (package
4488 (name "sbcl-lack-component")
4489 (version (git-version "0.0.0" revision commit))
4490 (source
4491 (origin
4492 (method git-fetch)
4493 (uri (git-reference
4494 (url "https://github.com/fukamachi/lack.git")
4495 (commit commit)))
4496 (file-name (git-file-name "lack-component" version))
4497 (sha256
4498 (base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85"))))
4499 (build-system asdf-build-system/sbcl)
4500 (arguments
4501 '(#:asd-file "lack-component.asd"
4502 #:asd-system-name "lack-component"
4503 #:test-asd-file "t-lack-component.asd"
4504 ;; XXX: Component :LACK-TEST not found
4505 #:tests? #f))
4506 (native-inputs
4507 `(("prove-asdf" ,sbcl-prove-asdf)))
4508 (home-page "https://github.com/fukamachi/lack")
4509 (synopsis "Lack, the core of Clack")
4510 (description
4511 "Lack is a Common Lisp library which allows web applications to be
4512 constructed of modular components. It was originally a part of Clack, however
4513 it's going to be rewritten as an individual project since Clack v2 with
4514 performance and simplicity in mind.")
4515 (license license:llgpl))))
4516
4517 (define-public cl-lack-component
4518 (sbcl-package->cl-source-package sbcl-lack-component))
4519
4520 (define-public sbcl-lack-util
4521 (let ((commit "abff8efeb0c3a848e6bb0022f2b8b7fa3a1bc88b")
4522 (revision "1"))
4523 (package
4524 (name "sbcl-lack-util")
4525 (version (git-version "0.1.0" revision commit))
4526 (source
4527 (origin
4528 (method git-fetch)
4529 (uri (git-reference
4530 (url "https://github.com/fukamachi/lack.git")
4531 (commit commit)))
4532 (file-name (git-file-name "lack-util" version))
4533 (sha256
4534 (base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85"))))
4535 (build-system asdf-build-system/sbcl)
4536 (arguments
4537 '(#:asd-file "lack-util.asd"
4538 #:asd-system-name "lack-util"
4539 #:test-asd-file "t-lack-util.asd"
4540 ;; XXX: Component :LACK-TEST not found
4541 #:tests? #f))
4542 (native-inputs
4543 `(("prove-asdf" ,sbcl-prove-asdf)))
4544 (inputs
4545 `(("sbcl-ironclad" ,sbcl-ironclad)))
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-util
4556 (sbcl-package->cl-source-package sbcl-lack-util))
4557
4558 (define-public sbcl-lack-middleware-backtrace
4559 (let ((commit "abff8efeb0c3a848e6bb0022f2b8b7fa3a1bc88b")
4560 (revision "1"))
4561 (package
4562 (name "sbcl-lack-middleware-backtrace")
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-middleware-backtrace" version))
4571 (sha256
4572 (base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85"))))
4573 (build-system asdf-build-system/sbcl)
4574 (arguments
4575 '(#:asd-file "lack-middleware-backtrace.asd"
4576 #:asd-system-name "lack-middleware-backtrace"
4577 #:test-asd-file "t-lack-middleware-backtrace.asd"
4578 ;; XXX: Component :LACK not found
4579 #:tests? #f))
4580 (native-inputs
4581 `(("prove-asdf" ,sbcl-prove-asdf)))
4582 (home-page "https://github.com/fukamachi/lack")
4583 (synopsis "Lack, the core of Clack")
4584 (description
4585 "Lack is a Common Lisp library which allows web applications to be
4586 constructed of modular components. It was originally a part of Clack, however
4587 it's going to be rewritten as an individual project since Clack v2 with
4588 performance and simplicity in mind.")
4589 (license license:llgpl))))
4590
4591 (define-public cl-lack-middleware-backtrace
4592 (sbcl-package->cl-source-package sbcl-lack-middleware-backtrace))
4593
4594 (define-public sbcl-trivial-mimes
4595 (let ((commit "303f8ac0aa6ca0bc139aa3c34822e623c3723fab")
4596 (revision "1"))
4597 (package
4598 (name "sbcl-trivial-mimes")
4599 (version (git-version "1.1.0" revision commit))
4600 (source
4601 (origin
4602 (method git-fetch)
4603 (uri (git-reference
4604 (url "https://github.com/Shinmera/trivial-mimes.git")
4605 (commit commit)))
4606 (file-name (git-file-name name version))
4607 (sha256
4608 (base32 "17jxgl47r695bvsb7wi3n2ws5rp1zzgvw0zii8cy5ggw4b4ayv6m"))))
4609 (build-system asdf-build-system/sbcl)
4610 (arguments
4611 '(#:phases
4612 (modify-phases %standard-phases
4613 (add-after
4614 'unpack 'fix-paths
4615 (lambda* (#:key inputs #:allow-other-keys)
4616 (let ((anchor "#p\"/etc/mime.types\""))
4617 (substitute* "mime-types.lisp"
4618 ((anchor all)
4619 (string-append
4620 anchor "\n"
4621 "(asdf:system-relative-pathname :trivial-mimes "
4622 "\"../../share/common-lisp/" (%lisp-type)
4623 "-source/trivial-mimes/mime.types\")")))))))))
4624 (native-inputs
4625 `(("stefil" ,sbcl-hu.dwim.stefil)))
4626 (inputs
4627 `(("sbcl-cl-fad" ,sbcl-cl-fad)))
4628 (home-page "https://shinmera.github.io/trivial-mimes/")
4629 (synopsis "Tiny Common Lisp library to detect mime types in files")
4630 (description
4631 "This is a teensy library that provides some functions to determine the
4632 mime-type of a file.")
4633 (license license:artistic2.0))))
4634
4635 (define-public cl-trivial-mimes
4636 (sbcl-package->cl-source-package sbcl-trivial-mimes))
4637
4638 (define-public ecl-trivial-mimes
4639 (sbcl-package->ecl-package sbcl-trivial-mimes))
4640
4641 (define-public sbcl-lack-middleware-static
4642 (let ((commit "abff8efeb0c3a848e6bb0022f2b8b7fa3a1bc88b")
4643 (revision "1"))
4644 (package
4645 (name "sbcl-lack-middleware-static")
4646 (version (git-version "0.1.0" revision commit))
4647 (source
4648 (origin
4649 (method git-fetch)
4650 (uri (git-reference
4651 (url "https://github.com/fukamachi/lack.git")
4652 (commit commit)))
4653 (file-name (git-file-name "lack-middleware-static" version))
4654 (sha256
4655 (base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85"))))
4656 (build-system asdf-build-system/sbcl)
4657 (arguments
4658 '(#:asd-file "lack-middleware-static.asd"
4659 #:asd-system-name "lack-middleware-static"
4660 #:test-asd-file "t-lack-middleware-static.asd"
4661 ;; XXX: Component :LACK not found
4662 #:tests? #f))
4663 (native-inputs
4664 `(("prove-asdf" ,sbcl-prove-asdf)))
4665 (inputs
4666 `(("sbcl-ironclad" ,sbcl-ironclad)
4667 ("sbcl-trivial-mimes" ,sbcl-trivial-mimes)
4668 ("sbcl-local-time" ,sbcl-local-time)))
4669 (home-page "https://github.com/fukamachi/lack")
4670 (synopsis "Lack, the core of Clack")
4671 (description
4672 "Lack is a Common Lisp library which allows web applications to be
4673 constructed of modular components. It was originally a part of Clack, however
4674 it's going to be rewritten as an individual project since Clack v2 with
4675 performance and simplicity in mind.")
4676 (license license:llgpl))))
4677
4678 (define-public cl-lack-middleware-static
4679 (sbcl-package->cl-source-package sbcl-lack-middleware-static))
4680
4681 (define-public sbcl-lack
4682 (let ((commit "abff8efeb0c3a848e6bb0022f2b8b7fa3a1bc88b")
4683 (revision "1"))
4684 (package
4685 (name "sbcl-lack")
4686 (version (git-version "0.1.0" revision commit))
4687 (source
4688 (origin
4689 (method git-fetch)
4690 (uri (git-reference
4691 (url "https://github.com/fukamachi/lack.git")
4692 (commit commit)))
4693 (file-name (git-file-name "lack" version))
4694 (sha256
4695 (base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85"))))
4696 (build-system asdf-build-system/sbcl)
4697 (arguments
4698 '(#:test-asd-file "t-lack.asd"
4699 ;; XXX: Component :CLACK not found
4700 #:tests? #f))
4701 (native-inputs
4702 `(("prove-asdf" ,sbcl-prove-asdf)))
4703 (inputs
4704 `(("sbcl-lack-component" ,sbcl-lack-component)
4705 ("sbcl-lack-util" ,sbcl-lack-util)))
4706 (home-page "https://github.com/fukamachi/lack")
4707 (synopsis "Lack, the core of Clack")
4708 (description
4709 "Lack is a Common Lisp library which allows web applications to be
4710 constructed of modular components. It was originally a part of Clack, however
4711 it's going to be rewritten as an individual project since Clack v2 with
4712 performance and simplicity in mind.")
4713 (license license:llgpl))))
4714
4715 (define-public cl-lack
4716 (sbcl-package->cl-source-package sbcl-lack))
4717
4718 (define-public sbcl-ningle
4719 (let ((commit "50bd4f09b5a03a7249bd4d78265d6451563b25ad")
4720 (revision "1"))
4721 (package
4722 (name "sbcl-ningle")
4723 (version (git-version "0.3.0" revision commit))
4724 (source
4725 (origin
4726 (method git-fetch)
4727 (uri (git-reference
4728 (url "https://github.com/fukamachi/ningle.git")
4729 (commit commit)))
4730 (file-name (git-file-name name version))
4731 (sha256
4732 (base32 "1bsl8cnxhacb8p92z9n89vhk1ikmij5zavk0m2zvmj7iqm79jzgw"))))
4733 (build-system asdf-build-system/sbcl)
4734 (arguments
4735 ;; TODO: pull in clack-test
4736 '(#:tests? #f
4737 #:phases
4738 (modify-phases %standard-phases
4739 (delete 'cleanup-files)
4740 (delete 'cleanup)
4741 (add-before 'cleanup 'combine-fasls
4742 (lambda* (#:key outputs #:allow-other-keys)
4743 (let* ((out (assoc-ref outputs "out"))
4744 (lib (string-append out "/lib/sbcl"))
4745 (ningle-path (string-append lib "/ningle"))
4746 (fasl-files (find-files out "\\.fasl$")))
4747 (mkdir-p ningle-path)
4748 (let ((fasl-path (lambda (name)
4749 (string-append ningle-path
4750 "/"
4751 (basename name)
4752 "--system.fasl"))))
4753 (for-each (lambda (file)
4754 (rename-file file
4755 (fasl-path
4756 (basename file ".fasl"))))
4757 fasl-files))
4758 fasl-files)
4759 #t)))))
4760 (native-inputs
4761 `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
4762 ("sbcl-prove" ,sbcl-prove)))
4763 (inputs
4764 `(("sbcl-cl-syntax" ,sbcl-cl-syntax)
4765 ("sbcl-cl-syntax-annot" ,sbcl-cl-syntax-annot)
4766 ("sbcl-myway" ,sbcl-myway)
4767 ("sbcl-lack-request" ,sbcl-lack-request)
4768 ("sbcl-lack-response" ,sbcl-lack-response)
4769 ("sbcl-lack-component" ,sbcl-lack-component)
4770 ("sbcl-alexandria" ,sbcl-alexandria)
4771 ("sbcl-babel" ,sbcl-babel)))
4772 (home-page "https://8arrow.org/ningle/")
4773 (synopsis "Super micro framework for Common Lisp")
4774 (description
4775 "Ningle is a lightweight web application framework for Common Lisp.")
4776 (license license:llgpl))))
4777
4778 (define-public cl-ningle
4779 (sbcl-package->cl-source-package sbcl-ningle))
4780
4781 (define-public sbcl-clack
4782 (let ((commit "e3e032843bb1220ab96263c411aa7f2feb4746e0")
4783 (revision "1"))
4784 (package
4785 (name "sbcl-clack")
4786 (version (git-version "2.0.0" revision commit))
4787 (source
4788 (origin
4789 (method git-fetch)
4790 (uri (git-reference
4791 (url "https://github.com/fukamachi/clack.git")
4792 (commit commit)))
4793 (file-name (git-file-name name version))
4794 (sha256
4795 (base32 "1ymzs6qyrwhlj6cgqsnpyn6g5cbp7a3s1vgxwna20y2q7y4iacy0"))))
4796 (build-system asdf-build-system/sbcl)
4797 (inputs
4798 `(("sbcl-lack" ,sbcl-lack)
4799 ("sbcl-lack-middleware-backtrace" ,sbcl-lack-middleware-backtrace)
4800 ("sbcl-bordeaux-threads" ,sbcl-bordeaux-threads)))
4801 (home-page "https://github.com/fukamachi/clack")
4802 (synopsis "Web Application Environment for Common Lisp")
4803 (description
4804 "Clack is a web application environment for Common Lisp inspired by
4805 Python's WSGI and Ruby's Rack.")
4806 (license license:llgpl))))
4807
4808 (define-public cl-clack
4809 (sbcl-package->cl-source-package sbcl-clack))
4810
4811 (define-public sbcl-log4cl
4812 (let ((commit "611e094458504b938d49de904eab141285328c7c")
4813 (revision "1"))
4814 (package
4815 (name "sbcl-log4cl")
4816 (build-system asdf-build-system/sbcl)
4817 (version "1.1.2")
4818 (source
4819 (origin
4820 (method git-fetch)
4821 (uri (git-reference
4822 (url "https://github.com/sharplispers/log4cl")
4823 (commit commit)))
4824 (file-name (git-file-name name version))
4825 (sha256
4826 (base32
4827 "08jly0s0g26b56hhpfizxsb4j0yvbh946sd205gr42dkzv8l7dsc"))))
4828 ;; FIXME: tests require stefil, sbcl-hu.dwim.stefil wont work
4829 (arguments
4830 `(#:tests? #f))
4831 (inputs `(("bordeaux-threads" ,sbcl-bordeaux-threads)))
4832 (synopsis "Common Lisp logging framework, modeled after Log4J")
4833 (home-page "https://github.com/7max/log4cl")
4834 (description "This is a Common Lisp logging framework that can log at
4835 various levels and mix text with expressions.")
4836 (license license:asl2.0))))
4837
4838 (define-public cl-log4cl
4839 (sbcl-package->cl-source-package sbcl-log4cl))
4840
4841 (define-public ecl-log4cl
4842 (sbcl-package->ecl-package sbcl-log4cl))
4843
4844 (define-public sbcl-find-port
4845 (let ((commit "00c96a25af93a0f8681d34ec548861f2d7485478")
4846 (revision "1"))
4847 (package
4848 (name "sbcl-find-port")
4849 (build-system asdf-build-system/sbcl)
4850 (version "0.1")
4851 (home-page "https://github.com/eudoxia0/find-port")
4852 (source
4853 (origin
4854 (method git-fetch)
4855 (uri (git-reference
4856 (url home-page)
4857 (commit commit)))
4858 (file-name (git-file-name name version))
4859 (sha256
4860 (base32
4861 "0d6dzbb45jh0rx90wgs6v020k2xa87mvzas3mvfzvivjvqqlpryq"))))
4862 (native-inputs
4863 `(("fiveam" ,sbcl-fiveam)))
4864 (inputs
4865 `(("sbcl-usocket" ,sbcl-usocket)))
4866 (synopsis "Find open ports programmatically in Common Lisp")
4867 (description "This is a small Common Lisp library that finds an open
4868 port within a range.")
4869 (license license:expat))))
4870
4871 (define-public cl-find-port
4872 (sbcl-package->cl-source-package sbcl-find-port))
4873
4874 (define-public ecl-find-port
4875 (sbcl-package->ecl-package sbcl-find-port))
4876
4877 (define-public sbcl-clunit
4878 (let ((commit "6f6d72873f0e1207f037470105969384f8380628")
4879 (revision "1"))
4880 (package
4881 (name "sbcl-clunit")
4882 (version (git-version "0.2.3" revision commit))
4883 (source
4884 (origin
4885 (method git-fetch)
4886 (uri (git-reference
4887 (url "https://github.com/tgutu/clunit.git")
4888 (commit commit)))
4889 (file-name (git-file-name name version))
4890 (sha256
4891 (base32
4892 "1idf2xnqzlhi8rbrqmzpmb3i1l6pbdzhhajkmhwbp6qjkmxa4h85"))))
4893 (build-system asdf-build-system/sbcl)
4894 (synopsis "CLUnit is a Common Lisp unit testing framework")
4895 (description
4896 "CLUnit is a Common Lisp unit testing framework. It is designed
4897 to be easy to use so that you can quickly start testing. CLUnit
4898 provides a rich set of features aimed at improving your unit testing
4899 experience.")
4900 (home-page "http://tgutu.github.io/clunit/")
4901 ;; MIT License
4902 (license license:expat))))
4903
4904 (define-public cl-clunit
4905 (sbcl-package->cl-source-package sbcl-clunit))
4906
4907 (define-public ecl-clunit
4908 (sbcl-package->ecl-package sbcl-clunit))
4909
4910 (define-public sbcl-py4cl
4911 (let ((commit "4c8a2b0814fd311f978964f825ce012290f60136")
4912 (revision "1"))
4913 (package
4914 (name "sbcl-py4cl")
4915 (version (git-version "0.0.0" revision commit))
4916 (source
4917 (origin
4918 (method git-fetch)
4919 (uri (git-reference
4920 (url "https://github.com/bendudson/py4cl.git")
4921 (commit commit)))
4922 (file-name (git-file-name name version))
4923 (sha256
4924 (base32
4925 "15mk7qdqjkj56gdnbyrdyz6r7m1h26ldvn6ch96pmvg5vmr1m45r"))
4926 (modules '((guix build utils)))))
4927 (build-system asdf-build-system/sbcl)
4928 (native-inputs
4929 `(("sbcl-clunit" ,sbcl-clunit)))
4930 (inputs
4931 `(("sbcl-trivial-garbage" ,sbcl-trivial-garbage)))
4932 (propagated-inputs
4933 ;; This package doesn't do anything without python available
4934 `(("python" ,python)
4935 ;; For multi-dimensional array support
4936 ("python-numpy" ,python-numpy)))
4937 (arguments
4938 '(#:phases
4939 (modify-phases %standard-phases
4940 (add-after 'unpack 'replace-*base-directory*-var
4941 (lambda* (#:key outputs #:allow-other-keys)
4942 ;; In the ASD, the author makes an attempt to
4943 ;; programatically determine the location of the
4944 ;; source-code so lisp can call into "py4cl.py". We can
4945 ;; hard-code this since we know where this file will
4946 ;; reside.
4947 (substitute* "src/callpython.lisp"
4948 (("py4cl/config:\\*base-directory\\*")
4949 (string-append
4950 "\""
4951 (assoc-ref outputs "out")
4952 "/share/common-lisp/sbcl-source/py4cl/"
4953 "\""))))))))
4954 (synopsis "Call python from Common Lisp")
4955 (description
4956 "Py4CL is a bridge between Common Lisp and Python, which enables Common
4957 Lisp to interact with Python code. It uses streams to communicate with a
4958 separate python process, the approach taken by cl4py. This is different to
4959 the CFFI approach used by burgled-batteries, but has the same goal.")
4960 (home-page "https://github.com/bendudson/py4cl")
4961 ;; MIT License
4962 (license license:expat))))
4963
4964 (define-public cl-py4cl
4965 (sbcl-package->cl-source-package sbcl-py4cl))
4966
4967 (define-public ecl-py4cl
4968 (sbcl-package->ecl-package sbcl-py4cl))
4969
4970 (define-public sbcl-parse-declarations
4971 (let ((commit "549aebbfb9403a7fe948654126b9c814f443f4f2")
4972 (revision "1"))
4973 (package
4974 (name "sbcl-parse-declarations")
4975 (version (git-version "1.0.0" revision commit))
4976 (source
4977 (origin
4978 (method git-fetch)
4979 (uri (git-reference
4980 (url (string-append
4981 "https://gitlab.common-lisp.net/parse-declarations/"
4982 "parse-declarations.git"))
4983 (commit commit)))
4984 (file-name (git-file-name name version))
4985 (sha256
4986 (base32 "03g5qks4c59nmxa48pbslxkfh77h8hn8566jddp6m9pl15dzzpxd"))))
4987 (build-system asdf-build-system/sbcl)
4988 (arguments
4989 `(#:asd-file "parse-declarations-1.0.asd"
4990 #:asd-system-name "parse-declarations-1.0"))
4991 (home-page "https://common-lisp.net/project/parse-declarations/")
4992 (synopsis "Parse, filter, and build declarations")
4993 (description
4994 "Parse-Declarations is a Common Lisp library to help writing
4995 macros which establish bindings. To be semantically correct, such
4996 macros must take user declarations into account, as these may affect
4997 the bindings they establish. Yet the ANSI standard of Common Lisp does
4998 not provide any operators to work with declarations in a convenient,
4999 high-level way. This library provides such operators.")
5000 ;; MIT License
5001 (license license:expat))))
5002
5003 (define-public cl-parse-declarations
5004 (sbcl-package->cl-source-package sbcl-parse-declarations))
5005
5006 (define-public ecl-parse-declarations
5007 (sbcl-package->ecl-package sbcl-parse-declarations))
5008
5009 (define-public sbcl-cl-quickcheck
5010 (let ((commit "807b2792a30c883a2fbecea8e7db355b50ba662f")
5011 (revision "1"))
5012 (package
5013 (name "sbcl-cl-quickcheck")
5014 (version (git-version "0.0.4" revision commit))
5015 (source
5016 (origin
5017 (method git-fetch)
5018 (uri (git-reference
5019 (url "https://github.com/mcandre/cl-quickcheck.git")
5020 (commit commit)))
5021 (file-name (git-file-name name version))
5022 (sha256
5023 (base32
5024 "165lhypq5xkcys6hvzb3jq7ywnmqvzaflda29qk2cbs3ggas4767"))))
5025 (build-system asdf-build-system/sbcl)
5026 (synopsis
5027 "Common Lisp port of the QuickCheck unit test framework")
5028 (description
5029 "Common Lisp port of the QuickCheck unit test framework")
5030 (home-page "https://github.com/mcandre/cl-quickcheck")
5031 ;; MIT
5032 (license license:expat))))
5033
5034 (define-public cl-cl-quickcheck
5035 (sbcl-package->cl-source-package sbcl-cl-quickcheck))
5036
5037 (define-public ecl-cl-quickcheck
5038 (sbcl-package->ecl-package sbcl-cl-quickcheck))
5039
5040 (define-public sbcl-burgled-batteries3
5041 (let ((commit "9c0f6667e1a71ddf77e21793a0bea524710fef6e")
5042 (revision "1"))
5043 (package
5044 (name "sbcl-burgled-batteries3")
5045 (version (git-version "0.0.0" revision commit))
5046 (source
5047 (origin
5048 (method git-fetch)
5049 (uri (git-reference
5050 (url "https://github.com/snmsts/burgled-batteries3.git")
5051 (commit commit)))
5052 (file-name (git-file-name name version))
5053 (sha256
5054 (base32
5055 "0b726kz2xxcg5l930gz035rsdvhxrzmp05iwfwympnb4z4ammicb"))))
5056 (build-system asdf-build-system/sbcl)
5057 (arguments
5058 '(#:tests? #f
5059 #:phases
5060 (modify-phases %standard-phases
5061 (add-after 'unpack 'set-*cpython-include-dir*-var
5062 (lambda* (#:key inputs #:allow-other-keys)
5063 (substitute* "grovel-include-dir.lisp"
5064 (("\\(defparameter \\*cpython-include-dir\\* \\(detect-python\\)\\)")
5065 (string-append
5066 "(defparameter *cpython-include-dir* \""
5067 (assoc-ref inputs "python")
5068 "/include/python3.7m"
5069 "\")")))
5070 (substitute* "ffi-interface.lisp"
5071 (("\\*cpython-lib\\*")
5072 (format #f "'(\"~a/lib/libpython3.so\")"
5073 (assoc-ref inputs "python"))))
5074 #t)))))
5075 (native-inputs
5076 `(("python" ,python)
5077 ("sbcl-cl-fad" ,sbcl-cl-fad)
5078 ("sbcl-lift" ,sbcl-lift)
5079 ("sbcl-cl-quickcheck" ,sbcl-cl-quickcheck)))
5080 (inputs
5081 `(("sbcl-cffi" ,sbcl-cffi)
5082 ("sbcl-cffi-grovel" ,sbcl-cffi-grovel)
5083 ("sbcl-alexandria" , sbcl-alexandria)
5084 ("sbcl-parse-declarations-1.0" ,sbcl-parse-declarations)
5085 ("sbcl-trivial-garbage" ,sbcl-trivial-garbage)))
5086 (synopsis "Bridge between Python and Lisp (FFI bindings, etc.)")
5087 (description
5088 "This package provides a shim between Python3 (specifically, the
5089 CPython implementation of Python) and Common Lisp.")
5090 (home-page "https://github.com/snmsts/burgled-batteries3")
5091 ;; MIT
5092 (license license:expat))))
5093
5094 (define-public cl-burgled-batteries3
5095 (sbcl-package->cl-source-package sbcl-burgled-batteries3))
5096
5097 (define-public ecl-burgled-batteries3
5098 (sbcl-package->ecl-package sbcl-burgled-batteries3))
5099
5100 (define-public sbcl-metabang-bind
5101 (let ((commit "c93b7f7e1c18c954c2283efd6a7fdab36746ab5e")
5102 (revision "1"))
5103 (package
5104 (name "sbcl-metabang-bind")
5105 (version (git-version "0.8.0" revision commit))
5106 (source
5107 (origin
5108 (method git-fetch)
5109 (uri (git-reference
5110 (url "https://github.com/gwkkwg/metabang-bind.git")
5111 (commit commit)))
5112 (file-name (git-file-name name version))
5113 (sha256
5114 (base32
5115 "0hd0kr91795v77akpbcyqiss9p0p7ypa9dznrllincnmgvsxlmf0"))))
5116 (build-system asdf-build-system/sbcl)
5117 (native-inputs
5118 `(("sbcl-lift" ,sbcl-lift)))
5119 (synopsis "Macro that generalizes @code{multiple-value-bind} etc.")
5120 (description
5121 "Bind extends the idea of of let and destructing to provide a uniform
5122 syntax for all your accessor needs. It combines @code{let},
5123 @code{destructuring-bind}, @code{with-slots}, @code{with-accessors}, structure
5124 editing, property or association-lists, and @code{multiple-value-bind} and a
5125 whole lot more into a single form.")
5126 (home-page "https://common-lisp.net/project/metabang-bind/")
5127 ;; MIT License
5128 (license license:expat))))
5129
5130 (define-public cl-metabang-bind
5131 (sbcl-package->cl-source-package sbcl-metabang-bind))
5132
5133 (define-public ecl-metabang-bind
5134 (sbcl-package->ecl-package sbcl-metabang-bind))
5135
5136 (define-public sbcl-fare-utils
5137 (let ((commit "66e9c6f1499140bc00ccc22febf2aa528cbb5724")
5138 (revision "1"))
5139 (package
5140 (name "sbcl-fare-utils")
5141 (version (git-version "1.0.0.5" revision commit))
5142 (source
5143 (origin
5144 (method git-fetch)
5145 (uri
5146 (git-reference
5147 (url
5148 "https://gitlab.common-lisp.net/frideau/fare-utils.git")
5149 (commit commit)))
5150 (file-name (git-file-name name version))
5151 (sha256
5152 (base32
5153 "01wsr1aap3jdzhn4hrqjbhsjx6qci9dbd3gh4gayv1p49rbg8aqr"))))
5154 (build-system asdf-build-system/sbcl)
5155 (arguments
5156 `(#:test-asd-file "test/fare-utils-test.asd"))
5157 (native-inputs
5158 `(("sbcl-hu.dwim.stefil" ,sbcl-hu.dwim.stefil)))
5159 (synopsis "Collection of utilities and data structures")
5160 (description
5161 "fare-utils is a small collection of utilities. It contains a lot of
5162 basic everyday functions and macros.")
5163 (home-page "https://gitlab.common-lisp.net/frideau/fare-utils")
5164 ;; MIT License
5165 (license license:expat))))
5166
5167 (define-public cl-fare-utils
5168 (sbcl-package->cl-source-package sbcl-fare-utils))
5169
5170 (define-public ecl-fare-utils
5171 (sbcl-package->ecl-package sbcl-fare-utils))
5172
5173 (define-public sbcl-trivial-utf-8
5174 (let ((commit "4d427cfbb1c452436a0efb71c3205c9da67f718f")
5175 (revision "1"))
5176 (package
5177 (name "sbcl-trivial-utf-8")
5178 (version (git-version "0.0.0" revision commit))
5179 (source
5180 (origin
5181 (method git-fetch)
5182 (uri
5183 (git-reference
5184 (url (string-append "https://gitlab.common-lisp.net/"
5185 "trivial-utf-8/trivial-utf-8.git"))
5186 (commit commit)))
5187 (file-name (git-file-name name version))
5188 (sha256
5189 (base32
5190 "1jz27gz8gvqdmvp3k9bxschs6d5b3qgk94qp2bj6nv1d0jc3m1l1"))))
5191 (arguments
5192 ;; Guix incorrectly assumes the "8" is part of the version
5193 ;; number and lobs it off.
5194 `(#:asd-file "trivial-utf-8.asd"
5195 #:asd-system-name "trivial-utf-8"))
5196 (build-system asdf-build-system/sbcl)
5197 (synopsis "UTF-8 input/output library")
5198 (description
5199 "The Babel library solves a similar problem while understanding more
5200 encodings. Trivial UTF-8 was written before Babel existed, but for new
5201 projects you might be better off going with Babel. The one plus that Trivial
5202 UTF-8 has is that it doesn't depend on any other libraries.")
5203 (home-page "https://common-lisp.net/project/trivial-utf-8/")
5204 (license license:bsd-3))))
5205
5206 (define-public cl-trivial-utf-8
5207 (sbcl-package->cl-source-package sbcl-trivial-utf-8))
5208
5209 (define-public ecl-trivial-utf-8
5210 (sbcl-package->ecl-package sbcl-trivial-utf-8))
5211
5212 (define-public sbcl-idna
5213 (package
5214 (name "sbcl-idna")
5215 (build-system asdf-build-system/sbcl)
5216 (version "0.2.2")
5217 (home-page "https://github.com/antifuchs/idna")
5218 (source
5219 (origin
5220 (method git-fetch)
5221 (uri (git-reference
5222 (url home-page)
5223 (commit version)))
5224 (file-name (git-file-name name version))
5225 (sha256
5226 (base32
5227 "00nbr3mffxhlq14gg9d16pa6691s4qh35inyw76v906s77khm5a2"))))
5228 (inputs
5229 `(("split-sequence" ,sbcl-split-sequence)))
5230 (synopsis "IDNA string encoding and decoding routines for Common Lisp")
5231 (description "This Common Lisp library provides string encoding and
5232 decoding routines for IDNA, the International Domain Names in Applications.")
5233 (license license:expat)))
5234
5235 (define-public cl-idna
5236 (sbcl-package->cl-source-package sbcl-idna))
5237
5238 (define-public ecl-idna
5239 (sbcl-package->ecl-package sbcl-idna))
5240
5241 (define-public sbcl-swap-bytes
5242 (package
5243 (name "sbcl-swap-bytes")
5244 (build-system asdf-build-system/sbcl)
5245 (version "1.2")
5246 (home-page "https://github.com/sionescu/swap-bytes")
5247 (source
5248 (origin
5249 (method git-fetch)
5250 (uri (git-reference
5251 (url home-page)
5252 (commit (string-append "v" version))))
5253 (file-name (git-file-name name version))
5254 (sha256
5255 (base32
5256 "1hw1v1lw26rifyznpnj1csphha9jgzwpiic16ni3pvs6hcsni9rz"))))
5257 (inputs
5258 `(("trivial-features" ,sbcl-trivial-features)))
5259 (native-inputs
5260 `(("fiveam" ,sbcl-fiveam)))
5261 (synopsis "Efficient endianness conversion for Common Lisp")
5262 (description "This Common Lisp library provides optimized byte-swapping
5263 primitives. The library can change endianness of unsigned integers of length
5264 1/2/4/8. Very useful in implementing various network protocols and file
5265 formats.")
5266 (license license:expat)))
5267
5268 (define-public cl-swap-bytes
5269 (sbcl-package->cl-source-package sbcl-swap-bytes))
5270
5271 (define-public ecl-swap-bytes
5272 (sbcl-package->ecl-package sbcl-swap-bytes))
5273
5274 (define-public sbcl-iolib.asdf
5275 ;; Latest release is from June 2017.
5276 (let ((commit "81e20614c0d27f9605bf9766214e236fd31b99b4")
5277 (revision "1"))
5278 (package
5279 (name "sbcl-iolib.asdf")
5280 (build-system asdf-build-system/sbcl)
5281 (version "0.8.3")
5282 (home-page "https://github.com/sionescu/iolib")
5283 (source
5284 (origin
5285 (method git-fetch)
5286 (uri (git-reference
5287 (url home-page)
5288 (commit commit)))
5289 (file-name (git-file-name name version))
5290 (sha256
5291 (base32
5292 "1j81r0wm7nfbwl991f26s4npcy7kybzybd3m47rbxy31h0cfcmdm"))))
5293 (inputs
5294 `(("alexandria" ,sbcl-alexandria)))
5295 (arguments
5296 '(#:asd-file "iolib.asdf.asd"))
5297 (synopsis "ASDF component classes for IOLib, a Common Lisp I/O library")
5298 (description "IOlib is to be a better and more modern I/O library than
5299 the standard Common Lisp library. It contains a socket library, a DNS
5300 resolver, an I/O multiplexer(which supports @code{select(2)}, @code{epoll(4)}
5301 and @code{kqueue(2)}), a pathname library and file-system utilities.")
5302 (license license:expat))))
5303
5304 (define-public sbcl-iolib.conf
5305 (package
5306 (inherit sbcl-iolib.asdf)
5307 (name "sbcl-iolib.conf")
5308 (inputs
5309 `(("iolib.asdf" ,sbcl-iolib.asdf)))
5310 (arguments
5311 '(#:asd-file "iolib.conf.asd"))
5312 (synopsis "Compile-time configuration for IOLib, a Common Lisp I/O library")))
5313
5314 (define-public sbcl-iolib.common-lisp
5315 (package
5316 (inherit sbcl-iolib.asdf)
5317 (name "sbcl-iolib.common-lisp")
5318 (inputs
5319 `(("iolib.asdf" ,sbcl-iolib.asdf)
5320 ("iolib.conf" ,sbcl-iolib.conf)))
5321 (arguments
5322 '(#:asd-file "iolib.common-lisp.asd"))
5323 (synopsis "Slightly modified Common Lisp for IOLib, a Common Lisp I/O library")))
5324
5325 (define-public sbcl-iolib.base
5326 (package
5327 (inherit sbcl-iolib.asdf)
5328 (name "sbcl-iolib.base")
5329 (inputs
5330 `(("iolib.asdf" ,sbcl-iolib.asdf)
5331 ("iolib.conf" ,sbcl-iolib.conf)
5332 ("iolib.common-lisp" ,sbcl-iolib.common-lisp)
5333 ("split-sequence" ,sbcl-split-sequence)))
5334 (arguments
5335 '(#:asd-file "iolib.base.asd"))
5336 (synopsis "Base package for IOLib, a Common Lisp I/O library")))
5337
5338 (define-public sbcl-iolib.grovel
5339 (package
5340 (inherit sbcl-iolib.asdf)
5341 (name "sbcl-iolib.grovel")
5342 (inputs
5343 `(("iolib.asdf" ,sbcl-iolib.asdf)
5344 ("iolib.conf" ,sbcl-iolib.conf)
5345 ("iolib.base", sbcl-iolib.base)
5346 ("cffi", sbcl-cffi)))
5347 (arguments
5348 '(#:asd-file "iolib.grovel.asd"
5349 #:phases
5350 (modify-phases %standard-phases
5351 (add-after 'install 'install-header
5352 (lambda* (#:key outputs #:allow-other-keys)
5353 ;; This header is required by sbcl-iolib.
5354 (install-file "src/grovel/grovel-common.h"
5355 (string-append (assoc-ref outputs "out")
5356 "/lib/sbcl"))
5357 #t)))))
5358 (synopsis "CFFI Groveller for IOLib, a Common Lisp I/O library")))
5359
5360 (define-public sbcl-iolib
5361 (package
5362 (inherit sbcl-iolib.asdf)
5363 (name "sbcl-iolib")
5364 (inputs
5365 `(("iolib.asdf" ,sbcl-iolib.asdf)
5366 ("iolib.conf" ,sbcl-iolib.conf)
5367 ("iolib.grovel" ,sbcl-iolib.grovel)
5368 ("iolib.base" ,sbcl-iolib.base)
5369 ("bordeaux-threads" ,sbcl-bordeaux-threads)
5370 ("idna" ,sbcl-idna)
5371 ("swap-bytes" ,sbcl-swap-bytes)
5372 ("libfixposix" ,libfixposix)
5373 ("cffi" ,sbcl-cffi)))
5374 (native-inputs
5375 `(("fiveam" ,sbcl-fiveam)))
5376 (arguments
5377 '(#:asd-file "iolib.asd"
5378 #:asd-system-name "iolib"
5379 #:test-asd-file "iolib.tests.asd"
5380 #:phases
5381 (modify-phases %standard-phases
5382 (add-after 'unpack 'fix-paths
5383 (lambda* (#:key inputs #:allow-other-keys)
5384 (substitute* "src/syscalls/ffi-functions-unix.lisp"
5385 (("\\(:default \"libfixposix\"\\)")
5386 (string-append
5387 "(:default \""
5388 (assoc-ref inputs "libfixposix") "/lib/libfixposix\")")))
5389 ;; Socket tests need Internet access, disable them.
5390 (substitute* "iolib.tests.asd"
5391 (("\\(:file \"sockets\" :depends-on \\(\"pkgdcl\" \"defsuites\"\\)\\)")
5392 "")))))))
5393 (synopsis "Common Lisp I/O library")))
5394
5395 (define-public cl-iolib
5396 (sbcl-package->cl-source-package sbcl-iolib))
5397
5398 (define sbcl-iolib+multiplex
5399 (package
5400 (inherit sbcl-iolib)
5401 (name "sbcl-iolib+multiplex")
5402 (arguments
5403 (substitute-keyword-arguments (package-arguments sbcl-iolib)
5404 ((#:asd-system-name _) "iolib/multiplex")))))
5405
5406 (define sbcl-iolib+syscalls
5407 (package
5408 (inherit sbcl-iolib)
5409 (name "sbcl-iolib+syscalls")
5410 (arguments
5411 (substitute-keyword-arguments (package-arguments sbcl-iolib)
5412 ((#:asd-system-name _) "iolib/syscalls")))))
5413
5414 (define sbcl-iolib+streams
5415 (package
5416 (inherit sbcl-iolib)
5417 (name "sbcl-iolib+streams")
5418 (arguments
5419 (substitute-keyword-arguments (package-arguments sbcl-iolib)
5420 ((#:asd-system-name _) "iolib/streams")))))
5421
5422 (define sbcl-iolib+sockets
5423 (package
5424 (inherit sbcl-iolib)
5425 (name "sbcl-iolib+sockets")
5426 (arguments
5427 (substitute-keyword-arguments (package-arguments sbcl-iolib)
5428 ((#:asd-system-name _) "iolib/sockets")))))
5429
5430 (define-public sbcl-ieee-floats
5431 (let ((commit "566b51a005e81ff618554b9b2f0b795d3b29398d")
5432 (revision "1"))
5433 (package
5434 (name "sbcl-ieee-floats")
5435 (build-system asdf-build-system/sbcl)
5436 (version (git-version "20170924" revision commit))
5437 (home-page "https://github.com/marijnh/ieee-floats/")
5438 (source
5439 (origin
5440 (method git-fetch)
5441 (uri (git-reference
5442 (url home-page)
5443 (commit commit)))
5444 (file-name (git-file-name name version))
5445 (sha256
5446 (base32
5447 "1xyj49j9x3lc84cv3dhbf9ja34ywjk1c46dklx425fxw9mkwm83m"))))
5448 (native-inputs
5449 `(("fiveam" ,sbcl-fiveam)))
5450 (synopsis "IEEE 754 binary representation for floats in Common Lisp")
5451 (description "This is a Common Lisp library that allows to convert
5452 floating point values to IEEE 754 binary representation.")
5453 (license license:bsd-3))))
5454
5455 (define-public cl-ieee-floats
5456 (sbcl-package->cl-source-package sbcl-ieee-floats))
5457
5458 (define sbcl-closure-common
5459 (let ((commit "e3c5f5f454b72b01b89115e581c3c52a7e201e5c")
5460 (revision "1"))
5461 (package
5462 (name "sbcl-closure-common")
5463 (build-system asdf-build-system/sbcl)
5464 (version (git-version "20101006" revision commit))
5465 (home-page "https://common-lisp.net/project/cxml/")
5466 (source
5467 (origin
5468 (method git-fetch)
5469 (uri (git-reference
5470 (url "https://github.com/sharplispers/closure-common")
5471 (commit commit)))
5472 (file-name (git-file-name name version))
5473 (sha256
5474 (base32
5475 "0k5r2qxn122pxi301ijir3nayi9sg4d7yiy276l36qmzwhp4mg5n"))))
5476 (inputs
5477 `(("trivial-gray-streams" ,sbcl-trivial-gray-streams)
5478 ("babel" ,sbcl-babel)))
5479 (synopsis "Support Common Lisp library for CXML")
5480 (description "Closure-common is an internal helper library. The name
5481 Closure is a reference to the web browser it was originally written for.")
5482 ;; TODO: License?
5483 (license #f))))
5484
5485 (define-public sbcl-cxml+xml
5486 (let ((commit "00b22bf4c4cf11c993d5866fae284f95ab18e6bf")
5487 (revision "1"))
5488 (package
5489 (name "sbcl-cxml+xml")
5490 (build-system asdf-build-system/sbcl)
5491 (version (git-version "0.0.0" revision commit))
5492 (home-page "https://common-lisp.net/project/cxml/")
5493 (source
5494 (origin
5495 (method git-fetch)
5496 (uri (git-reference
5497 (url "https://github.com/sharplispers/cxml")
5498 (commit commit)))
5499 (file-name (git-file-name name version))
5500 (sha256
5501 (base32
5502 "13kif7rf3gqdycsk9zq0d7y0g9y81krkl0z87k0p2fkbjfgrph37"))))
5503 (inputs
5504 `(("closure-common" ,sbcl-closure-common)
5505 ("puri" ,sbcl-puri)
5506 ("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
5507 (arguments
5508 `(#:asd-file "cxml.asd"
5509 #:asd-system-name "cxml/xml"))
5510 (synopsis "Common Lisp XML parser")
5511 (description "CXML implements a namespace-aware, validating XML 1.0
5512 parser as well as the DOM Level 2 Core interfaces. Two parser interfaces are
5513 offered, one SAX-like, the other similar to StAX.")
5514 (license license:llgpl))))
5515
5516 (define sbcl-cxml+dom
5517 (package
5518 (inherit sbcl-cxml+xml)
5519 (name "sbcl-cxml+dom")
5520 (inputs
5521 `(("closure-common" ,sbcl-closure-common)
5522 ("puri" ,sbcl-puri)
5523 ("cxml+xml" ,sbcl-cxml+xml)))
5524 (arguments
5525 `(#:asd-file "cxml.asd"
5526 #:asd-system-name "cxml/dom"))))
5527
5528 (define sbcl-cxml+klacks
5529 (package
5530 (inherit sbcl-cxml+xml)
5531 (name "sbcl-cxml+klacks")
5532 (inputs
5533 `(("closure-common" ,sbcl-closure-common)
5534 ("puri" ,sbcl-puri)
5535 ("cxml+xml" ,sbcl-cxml+xml)))
5536 (arguments
5537 `(#:asd-file "cxml.asd"
5538 #:asd-system-name "cxml/klacks"))))
5539
5540 (define sbcl-cxml+test
5541 (package
5542 (inherit sbcl-cxml+xml)
5543 (name "sbcl-cxml+test")
5544 (inputs
5545 `(("closure-common" ,sbcl-closure-common)
5546 ("puri" ,sbcl-puri)
5547 ("cxml+xml" ,sbcl-cxml+xml)))
5548 (arguments
5549 `(#:asd-file "cxml.asd"
5550 #:asd-system-name "cxml/test"))))
5551
5552 (define-public sbcl-cxml
5553 (package
5554 (inherit sbcl-cxml+xml)
5555 (name "sbcl-cxml")
5556 (inputs
5557 `(("closure-common" ,sbcl-closure-common)
5558 ("puri" ,sbcl-puri)
5559 ("trivial-gray-streams" ,sbcl-trivial-gray-streams)
5560 ("cxml+dom" ,sbcl-cxml+dom)
5561 ("cxml+klacks" ,sbcl-cxml+klacks)
5562 ("cxml+test" ,sbcl-cxml+test)))
5563 (arguments
5564 `(#:asd-file "cxml.asd"
5565 #:asd-system-name "cxml"
5566 #:phases
5567 (modify-phases %standard-phases
5568 (add-after 'build 'install-dtd
5569 (lambda* (#:key outputs #:allow-other-keys)
5570 (install-file "catalog.dtd"
5571 (string-append
5572 (assoc-ref outputs "out")
5573 "/lib/" (%lisp-type)))))
5574 (add-after 'create-asd 'remove-component
5575 ;; XXX: The original .asd has no components, but our build system
5576 ;; creates an entry nonetheless. We need to remove it for the
5577 ;; generated .asd to load properly. See trivia.trivial for a
5578 ;; similar problem.
5579 (lambda* (#:key outputs #:allow-other-keys)
5580 (let* ((out (assoc-ref outputs "out"))
5581 (asd (string-append out "/lib/sbcl/cxml.asd")))
5582 (substitute* asd
5583 ((" :components
5584 ")
5585 ""))
5586 (substitute* asd
5587 ((" *\\(\\(:compiled-file \"cxml--system\"\\)\\)")
5588 ""))))))))))
5589
5590 (define-public cl-cxml
5591 (sbcl-package->cl-source-package sbcl-cxml))
5592
5593 (define-public sbcl-cl-reexport
5594 (let ((commit "312f3661bbe187b5f28536cd7ec2956e91366c3b")
5595 (revision "1"))
5596 (package
5597 (name "sbcl-cl-reexport")
5598 (build-system asdf-build-system/sbcl)
5599 (version (git-version "0.1" revision commit))
5600 (home-page "https://github.com/takagi/cl-reexport")
5601 (source
5602 (origin
5603 (method git-fetch)
5604 (uri (git-reference
5605 (url home-page)
5606 (commit commit)))
5607 (file-name (git-file-name name version))
5608 (sha256
5609 (base32
5610 "1cwpn1m3wrl0fl9plznn7p464db646gnfc8zkyk97dyxski2aq0x"))))
5611 (inputs
5612 `(("alexandria" ,sbcl-alexandria)))
5613 (arguments
5614 ;; TODO: Tests fail because cl-test-more is missing, but I can't find it online.
5615 `(#:tests? #f))
5616 (synopsis "HTTP cookie manager for Common Lisp")
5617 (description "cl-cookie is a Common Lisp library featuring parsing of
5618 cookie headers, cookie creation, cookie jar creation and more.")
5619 (license license:llgpl))))
5620
5621 (define-public cl-reexport
5622 (sbcl-package->cl-source-package sbcl-cl-reexport))
5623
5624 (define-public sbcl-cl-cookie
5625 (let ((commit "cea55aed8b9ad25fafd13defbcb9fe8f41b29546")
5626 (revision "1"))
5627 (package
5628 (name "sbcl-cl-cookie")
5629 (build-system asdf-build-system/sbcl)
5630 (version (git-version "0.9.10" revision commit))
5631 (home-page "https://github.com/fukamachi/cl-cookie")
5632 (source
5633 (origin
5634 (method git-fetch)
5635 (uri (git-reference
5636 (url home-page)
5637 (commit commit)))
5638 (file-name (git-file-name name version))
5639 (sha256
5640 (base32
5641 "090g7z75h98zvc1ldx0vh4jn4086dhjm2w30jcwkq553qmyxwl8h"))))
5642 (inputs
5643 `(("proc-parse" ,sbcl-proc-parse)
5644 ("alexandria" ,sbcl-alexandria)
5645 ("quri" ,sbcl-quri)
5646 ("cl-ppcre" ,sbcl-cl-ppcre)
5647 ("local-time" ,sbcl-local-time)))
5648 (native-inputs
5649 `(("prove-asdf" ,sbcl-prove-asdf)
5650 ("prove" ,sbcl-prove)))
5651 (arguments
5652 ;; TODO: Tests fail because cl-cookie depends on cl-cookie-test.
5653 `(#:tests? #f))
5654 (synopsis "HTTP cookie manager for Common Lisp")
5655 (description "cl-cookie is a Common Lisp library featuring parsing of
5656 cookie headers, cookie creation, cookie jar creation and more.")
5657 (license license:bsd-2))))
5658
5659 (define-public cl-cookie
5660 (sbcl-package->cl-source-package sbcl-cl-cookie))
5661
5662 (define-public sbcl-dexador
5663 (let ((commit "a2714d126cc94bc7a9a6e1e3c08de455b3a66378")
5664 (revision "1"))
5665 (package
5666 (name "sbcl-dexador")
5667 (build-system asdf-build-system/sbcl)
5668 (version (git-version "0.9.10" revision commit))
5669 (home-page "https://github.com/fukamachi/dexador")
5670 (source
5671 (origin
5672 (method git-fetch)
5673 (uri (git-reference
5674 (url home-page)
5675 (commit commit)))
5676 (file-name (git-file-name name version))
5677 (sha256
5678 (base32
5679 "0nbqgn4v3l2z6m1k1bdxfnqpfrk84nxdmz7csz11zzcfs4flkv79"))))
5680 (inputs
5681 `(("trivial-gray-streams" ,sbcl-trivial-gray-streams)
5682 ("babel" ,sbcl-babel)
5683 ("usocket" ,sbcl-usocket)
5684 ("fast-http" ,sbcl-fast-http)
5685 ("quri" ,sbcl-quri)
5686 ("fast-io" ,sbcl-fast-io)
5687 ("chunga" ,sbcl-chunga)
5688 ("cl-ppcre" ,sbcl-cl-ppcre)
5689 ("cl-cookie" ,sbcl-cl-cookie)
5690 ("trivial-mimes" ,sbcl-trivial-mimes)
5691 ("chipz" ,sbcl-chipz)
5692 ("cl-base64" ,sbcl-cl-base64)
5693 ("cl-reexport" ,sbcl-cl-reexport)
5694 ("cl+ssl" ,sbcl-cl+ssl)
5695 ("bordeaux-threads" ,sbcl-bordeaux-threads)
5696 ("alexandria" ,sbcl-alexandria)))
5697 (native-inputs
5698 `(("prove" ,sbcl-prove)
5699 ("prove-asdf" ,sbcl-prove-asdf)
5700 ("lack-request" ,sbcl-lack-request)
5701 ("clack" ,sbcl-clack)
5702 ("babel" ,sbcl-babel)
5703 ("alexandria" ,sbcl-alexandria)
5704 ("cl-ppcre" ,sbcl-cl-ppcre)
5705 ("local-time" ,sbcl-local-time)))
5706 (arguments
5707 ;; TODO: Circular dependency: tests depend on clack-test which depends on dexador.
5708 `(#:tests? #f
5709 #:phases
5710 (modify-phases %standard-phases
5711 (add-after 'unpack 'fix-permissions
5712 (lambda _ (make-file-writable "t/data/test.gz") #t)))))
5713 (synopsis "Yet another HTTP client for Common Lisp")
5714 (description "Dexador is yet another HTTP client for Common Lisp with
5715 neat APIs and connection-pooling. It is meant to supersede Drakma.")
5716 (license license:expat))))
5717
5718 (define-public cl-dexador
5719 (package
5720 (inherit (sbcl-package->cl-source-package sbcl-dexador))
5721 (arguments
5722 `(#:phases
5723 ;; asdf-build-system/source has its own phases and does not inherit
5724 ;; from asdf-build-system/sbcl phases.
5725 (modify-phases %standard-phases/source
5726 (add-after 'unpack 'fix-permissions
5727 (lambda _ (make-file-writable "t/data/test.gz") #t)))))))
5728
5729 (define-public ecl-dexador
5730 (sbcl-package->ecl-package sbcl-dexador))
5731
5732 (define-public sbcl-lisp-namespace
5733 (let ((commit "28107cafe34e4c1c67490fde60c7f92dc610b2e0")
5734 (revision "1"))
5735 (package
5736 (name "sbcl-lisp-namespace")
5737 (build-system asdf-build-system/sbcl)
5738 (version (git-version "0.1" revision commit))
5739 (home-page "https://github.com/guicho271828/lisp-namespace")
5740 (source
5741 (origin
5742 (method git-fetch)
5743 (uri (git-reference
5744 (url home-page)
5745 (commit commit)))
5746 (file-name (git-file-name name version))
5747 (sha256
5748 (base32
5749 "1jw2wykp06z2afb9nm1lgfzll5cjlj36pnknjx614057zkkxq4iy"))))
5750 (inputs
5751 `(("alexandria" ,sbcl-alexandria)))
5752 (native-inputs
5753 `(("fiveam" ,sbcl-fiveam)))
5754 (arguments
5755 `(#:test-asd-file "lisp-namespace.test.asd"
5756 ;; XXX: Component LISP-NAMESPACE-ASD::LISP-NAMESPACE.TEST not found
5757 #:tests? #f))
5758 (synopsis "LISP-N, or extensible namespaces in Common Lisp")
5759 (description "Common Lisp already has major 2 namespaces, function
5760 namespace and value namespace (or variable namespace), but there are actually
5761 more — e.g., class namespace.
5762 This library offers macros to deal with symbols from any namespace.")
5763 (license license:llgpl))))
5764
5765 (define-public cl-lisp-namespace
5766 (sbcl-package->cl-source-package sbcl-lisp-namespace))
5767
5768 (define-public sbcl-trivial-cltl2
5769 (let ((commit "8eec8407df833e8f27df8a388bc10913f16d9e83")
5770 (revision "1"))
5771 (package
5772 (name "sbcl-trivial-cltl2")
5773 (build-system asdf-build-system/sbcl)
5774 (version (git-version "0.1.1" revision commit))
5775 (home-page "https://github.com/Zulu-Inuoe/trivial-cltl2")
5776 (source
5777 (origin
5778 (method git-fetch)
5779 (uri (git-reference
5780 (url home-page)
5781 (commit commit)))
5782 (file-name (git-file-name name version))
5783 (sha256
5784 (base32
5785 "1dyyxz17vqv8hlfwq287gl8xxbvcnq798ajb7p5jdjz91wqf4bgk"))))
5786 (synopsis "Simple CLtL2 compatibility layer for Common Lisp")
5787 (description "This library is a portable compatibility layer around
5788 \"Common Lisp the Language, 2nd
5789 Edition\" (@url{https://www.cs.cmu.edu/Groups/AI/html/cltl/clm/node102.html})
5790 and it exports symbols from implementation-specific packages.")
5791 (license license:llgpl))))
5792
5793 (define-public cl-trivial-cltl2
5794 (sbcl-package->cl-source-package sbcl-trivial-cltl2))
5795
5796 (define-public sbcl-introspect-environment
5797 (let ((commit "fff42f8f8fd0d99db5ad6c5812e53de7d660020b")
5798 (revision "1"))
5799 (package
5800 (name "sbcl-introspect-environment")
5801 (build-system asdf-build-system/sbcl)
5802 (version (git-version "0.1" revision commit))
5803 (home-page "https://github.com/Bike/introspect-environment")
5804 (source
5805 (origin
5806 (method git-fetch)
5807 (uri (git-reference
5808 (url home-page)
5809 (commit commit)))
5810 (file-name (git-file-name name version))
5811 (sha256
5812 (base32
5813 "1i305n0wfmpac63ni4i3vixnnkl8daw5ncxy0k3dv92krgx6qzhp"))))
5814 (native-inputs
5815 `(("fiveam" ,sbcl-fiveam)))
5816 (synopsis "Common Lisp environment introspection portability layer")
5817 (description "This library is a small interface to portable but
5818 nonstandard introspection of Common Lisp environments. It is intended to
5819 allow a bit more compile-time introspection of environments in Common Lisp.
5820
5821 Quite a bit of information is available at the time a macro or compiler-macro
5822 runs; inlining info, type declarations, that sort of thing. This information
5823 is all standard - any Common Lisp program can @code{(declare (integer x))} and
5824 such.
5825
5826 This info ought to be accessible through the standard @code{&environment}
5827 parameters, but it is not. Several implementations keep the information for
5828 their own purposes but do not make it available to user programs, because
5829 there is no standard mechanism to do so.
5830
5831 This library uses implementation-specific hooks to make information available
5832 to users. This is currently supported on SBCL, CCL, and CMUCL. Other
5833 implementations have implementations of the functions that do as much as they
5834 can and/or provide reasonable defaults.")
5835 (license license:wtfpl2))))
5836
5837 (define-public cl-introspect-environment
5838 (sbcl-package->cl-source-package sbcl-introspect-environment))
5839
5840 (define-public sbcl-type-i
5841 (let ((commit "dea233f45f94064105ec09f0767de338f67dcbe2")
5842 (revision "1"))
5843 (package
5844 (name "sbcl-type-i")
5845 (build-system asdf-build-system/sbcl)
5846 (version (git-version "0.1" revision commit))
5847 (home-page "https://github.com/guicho271828/type-i")
5848 (source
5849 (origin
5850 (method git-fetch)
5851 (uri (git-reference
5852 (url home-page)
5853 (commit commit)))
5854 (file-name (git-file-name name version))
5855 (sha256
5856 (base32
5857 "039g5pbrhh65s0bhr9314gmd2nwc2y5lp2377c5qrc2lxky89qs3"))))
5858 (inputs
5859 `(("alexandria" ,sbcl-alexandria)
5860 ("introspect-environment" ,sbcl-introspect-environment)
5861 ("trivia.trivial" ,sbcl-trivia.trivial)))
5862 (native-inputs
5863 `(("fiveam" ,sbcl-fiveam)))
5864 (arguments
5865 `(#:test-asd-file "type-i.test.asd"))
5866 (synopsis "Type inference utility on unary predicates for Common Lisp")
5867 (description "This library tries to provide a way to detect what kind of
5868 type the given predicate is trying to check. This is different from inferring
5869 the return type of a function.")
5870 (license license:llgpl))))
5871
5872 (define-public cl-type-i
5873 (sbcl-package->cl-source-package sbcl-type-i))
5874
5875 (define-public sbcl-optima
5876 (let ((commit "373b245b928c1a5cce91a6cb5bfe5dd77eb36195")
5877 (revision "1"))
5878 (package
5879 (name "sbcl-optima")
5880 (build-system asdf-build-system/sbcl)
5881 (version (git-version "1.0" revision commit))
5882 (home-page "https://github.com/m2ym/optima")
5883 (source
5884 (origin
5885 (method git-fetch)
5886 (uri (git-reference
5887 (url home-page)
5888 (commit commit)))
5889 (file-name (git-file-name name version))
5890 (sha256
5891 (base32
5892 "1yw4ymq7ms89342kkvb3aqxgv0w38m9kd8ikdqxxzyybnkjhndal"))))
5893 (inputs
5894 `(("alexandria" ,sbcl-alexandria)
5895 ("closer-mop" ,sbcl-closer-mop)))
5896 (native-inputs
5897 `(("eos" ,sbcl-eos)))
5898 (arguments
5899 ;; XXX: Circular dependencies: tests depend on optima.ppcre which depends on optima.
5900 `(#:tests? #f
5901 #:test-asd-file "optima.test.asd"))
5902 (synopsis "Optimized pattern matching library for Common Lisp")
5903 (description "Optima is a fast pattern matching library which uses
5904 optimizing techniques widely used in the functional programming world.")
5905 (license license:expat))))
5906
5907 (define-public cl-optima
5908 (sbcl-package->cl-source-package sbcl-optima))
5909
5910 (define-public sbcl-fare-quasiquote
5911 (let ((commit "640d39a0451094071b3e093c97667b3947f43639")
5912 (revision "1"))
5913 (package
5914 (name "sbcl-fare-quasiquote")
5915 (build-system asdf-build-system/sbcl)
5916 (version (git-version "1.0.1" revision commit))
5917 (home-page "https://gitlab.common-lisp.net/frideau/fare-quasiquote")
5918 (source
5919 (origin
5920 (method git-fetch)
5921 (uri (git-reference
5922 (url (string-append "https://gitlab.common-lisp.net/frideau/"
5923 "fare-quasiquote.git"))
5924 (commit commit)))
5925 (file-name (git-file-name name version))
5926 (sha256
5927 (base32 "1g6q11l50kgija9f55lzqpcwvaq0ljiw8v1j265hnyg6nahjwjvg"))))
5928 (inputs
5929 `(("fare-utils" ,sbcl-fare-utils)))
5930 (arguments
5931 ;; XXX: Circular dependencies: Tests depend on subsystems,
5932 ;; which depend on the main systems.
5933 `(#:tests? #f
5934 #:phases
5935 (modify-phases %standard-phases
5936 ;; XXX: Require 1.0.0 version of fare-utils, and we package some
5937 ;; commits after 1.0.0.5, but ASDF fails to read the
5938 ;; "-REVISION-COMMIT" part generated by Guix.
5939 (add-after 'unpack 'patch-requirement
5940 (lambda _
5941 (substitute* "fare-quasiquote.asd"
5942 (("\\(:version \"fare-utils\" \"1.0.0\"\\)")
5943 "\"fare-utils\"")))))))
5944 (synopsis "Pattern-matching friendly implementation of quasiquote")
5945 (description "The main purpose of this n+2nd reimplementation of
5946 quasiquote is enable matching of quasiquoted patterns, using Optima or
5947 Trivia.")
5948 (license license:expat))))
5949
5950 (define-public cl-fare-quasiquote
5951 (sbcl-package->cl-source-package sbcl-fare-quasiquote))
5952
5953 (define-public sbcl-fare-quasiquote-optima
5954 (package
5955 (inherit sbcl-fare-quasiquote)
5956 (name "sbcl-fare-quasiquote-optima")
5957 (inputs
5958 `(("optima" ,sbcl-optima)
5959 ("fare-quasiquote" ,sbcl-fare-quasiquote)))
5960 (arguments
5961 '(#:phases
5962 (modify-phases %standard-phases
5963 (add-after 'unpack 'patch-requirement
5964 (lambda _
5965 (substitute* "fare-quasiquote-optima.asd"
5966 (("\\(:version \"optima\" \"1\\.0\"\\)")
5967 "\"optima\""))
5968 #t)))))))
5969
5970 (define-public cl-fare-quasiquote-optima
5971 (sbcl-package->cl-source-package sbcl-fare-quasiquote-optima))
5972
5973 (define-public sbcl-fare-quasiquote-readtable
5974 (package
5975 (inherit sbcl-fare-quasiquote)
5976 (name "sbcl-fare-quasiquote-readtable")
5977 (inputs
5978 `(("fare-quasiquote" ,sbcl-fare-quasiquote)
5979 ("named-readtables" ,sbcl-named-readtables)))
5980 (description "The main purpose of this n+2nd reimplementation of
5981 quasiquote is enable matching of quasiquoted patterns, using Optima or
5982 Trivia.
5983
5984 This package uses fare-quasiquote with named-readtable.")))
5985
5986 (define-public cl-fare-quasiquote-readtable
5987 (sbcl-package->cl-source-package sbcl-fare-quasiquote-readtable))
5988
5989 ;; TODO: Add support for component-less system in asdf-build-system/sbcl.
5990 (define-public sbcl-fare-quasiquote-extras
5991 (package
5992 (inherit sbcl-fare-quasiquote)
5993 (name "sbcl-fare-quasiquote-extras")
5994 (build-system asdf-build-system/sbcl)
5995 (inputs
5996 `(("fare-quasiquote-optima" ,sbcl-fare-quasiquote-optima)
5997 ("fare-quasiquote-readtable" ,sbcl-fare-quasiquote-readtable)))
5998 (arguments
5999 `(#:phases
6000 (modify-phases %standard-phases
6001 (replace 'build
6002 (lambda* (#:key outputs #:allow-other-keys)
6003 (let* ((out (assoc-ref outputs "out"))
6004 (lib (string-append out "/lib/" (%lisp-type))))
6005 (mkdir-p lib)
6006 (install-file "fare-quasiquote-extras.asd" lib)
6007 (make-file-writable
6008 (string-append lib "/fare-quasiquote-extras.asd"))
6009 #t)))
6010 (add-after 'create-asd-file 'fix-asd-file
6011 (lambda* (#:key outputs #:allow-other-keys)
6012 (let* ((out (assoc-ref outputs "out"))
6013 (lib (string-append out "/lib/" (%lisp-type)))
6014 (asd (string-append lib "/fare-quasiquote-extras.asd")))
6015 (substitute* asd
6016 ((":class")
6017 "")
6018 (("asdf/bundle:prebuilt-system")
6019 "")
6020 ((":components")
6021 "")
6022 (("\\(\\(:compiled-file \"fare-quasiquote-extras--system\"\\)\\)")
6023 "")))
6024 #t)))))
6025 (description "This library combines @code{fare-quasiquote-readtable} and
6026 @code{fare-quasiquote-optima}.")))
6027
6028 (define-public cl-fare-quasiquote-extras
6029 (package
6030 (inherit cl-fare-quasiquote)
6031 (name "cl-fare-quasiquote-extras")
6032 (build-system asdf-build-system/source)
6033 (propagated-inputs
6034 `(("fare-quasiquote" ,cl-fare-quasiquote)
6035 ("fare-quasiquote-optima" ,cl-fare-quasiquote-optima)
6036 ("fare-quasiquote-readtable" ,cl-fare-quasiquote-readtable)))
6037 (description "This library combines @code{fare-quasiquote-readtable} and
6038 @code{fare-quasiquote-optima}.")))
6039
6040 (define-public sbcl-trivia.level0
6041 (let ((commit "574901ac376ae54c9d37169fd5efab9b3b8fcc63")
6042 (revision "1"))
6043 (package
6044 (name "sbcl-trivia.level0")
6045 (build-system asdf-build-system/sbcl)
6046 (version (git-version "0.0.0" revision commit))
6047 (home-page "https://github.com/guicho271828/trivia")
6048 (source
6049 (origin
6050 (method git-fetch)
6051 (uri (git-reference
6052 (url home-page)
6053 (commit commit)))
6054 (file-name (git-file-name name version))
6055 (sha256
6056 (base32
6057 "0hf53n71xzr9sjwrxis5fivx3drclf4s39h5ck8vh21ndqj9zvdk"))))
6058 (inputs
6059 `(("alexandria" ,sbcl-alexandria)))
6060 (synopsis "Pattern matching in Common Lisp")
6061 (description "Trivia is a pattern matching compiler that is compatible
6062 with Optima, another pattern matching library for Common Lisp. It is meant to
6063 be faster and more extensible than Optima.")
6064 (license license:llgpl))))
6065
6066 (define-public sbcl-trivia.level1
6067 (package
6068 (inherit sbcl-trivia.level0)
6069 (name "sbcl-trivia.level1")
6070 (inputs
6071 `(("trivia.level0" ,sbcl-trivia.level0)))
6072 (description "Trivia is a pattern matching compiler that is compatible
6073 with Optima, another pattern matching library for Common Lisp. It is meant to
6074 be faster and more extensible than Optima.
6075
6076 This system contains the core patterns of Trivia.")))
6077
6078 (define-public sbcl-trivia.level2
6079 (package
6080 (inherit sbcl-trivia.level0)
6081 (name "sbcl-trivia.level2")
6082 (inputs
6083 `(("trivia.level1" ,sbcl-trivia.level1)
6084 ("lisp-namespace" ,sbcl-lisp-namespace)
6085 ("trivial-cltl2" ,sbcl-trivial-cltl2)
6086 ("closer-mop" ,sbcl-closer-mop)))
6087 (description "Trivia is a pattern matching compiler that is compatible
6088 with Optima, another pattern matching library for Common Lisp. It is meant to
6089 be faster and more extensible than Optima.
6090
6091 This system contains a non-optimized pattern matcher compatible with Optima,
6092 with extensible optimizer interface.")))
6093
6094 (define-public sbcl-trivia.trivial
6095 (package
6096 (inherit sbcl-trivia.level0)
6097 (name "sbcl-trivia.trivial")
6098 (inputs
6099 `(("trivia.level2" ,sbcl-trivia.level2)))
6100 (arguments
6101 `(#:phases
6102 (modify-phases %standard-phases
6103 (replace 'create-asd-file
6104 (lambda* (#:key outputs inputs #:allow-other-keys)
6105 (let* ((out (assoc-ref outputs "out"))
6106 (lib (string-append out "/lib/" (%lisp-type)))
6107 (level2 (assoc-ref inputs "trivia.level2")))
6108 (mkdir-p lib)
6109 (install-file "trivia.trivial.asd" lib)
6110 ;; XXX: This .asd does not have any component and the build
6111 ;; system fails to work in this case. We should update the
6112 ;; build system to handle component-less .asd.
6113 ;; TODO: How do we append to file in Guile? It seems that
6114 ;; (open-file ... "a") gets a "Permission denied".
6115 (substitute* (string-append lib "/trivia.trivial.asd")
6116 (("\"\\)")
6117 (string-append "\")
6118
6119 (progn (asdf/source-registry:ensure-source-registry)
6120 (setf (gethash
6121 \"trivia.level2\"
6122 asdf/source-registry:*source-registry*)
6123 #p\""
6124 level2
6125 "/share/common-lisp/sbcl-bundle-systems/trivia.level2.asd\"))")))))))))
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 base level system of Trivia with a trivial optimizer.")))
6131
6132 (define-public sbcl-trivia.balland2006
6133 (package
6134 (inherit sbcl-trivia.level0)
6135 (name "sbcl-trivia.balland2006")
6136 (inputs
6137 `(("trivia.trivial" ,sbcl-trivia.trivial)
6138 ("iterate" ,sbcl-iterate)
6139 ("type-i" ,sbcl-type-i)
6140 ("alexandria" ,sbcl-alexandria)))
6141 (arguments
6142 ;; Tests are done in trivia itself.
6143 `(#:tests? #f))
6144 (description "Trivia is a pattern matching compiler that is compatible
6145 with Optima, another pattern matching library for Common Lisp. It is meant to
6146 be faster and more extensible than Optima.
6147
6148 This system contains the base level system of Trivia with a trivial optimizer.")))
6149
6150 (define-public sbcl-trivia.ppcre
6151 (package
6152 (inherit sbcl-trivia.level0)
6153 (name "sbcl-trivia.ppcre")
6154 (inputs
6155 `(("trivia.trivial" ,sbcl-trivia.trivial)
6156 ("cl-ppcre" ,sbcl-cl-ppcre)))
6157 (description "Trivia is a pattern matching compiler that is compatible
6158 with Optima, another pattern matching library for Common Lisp. It is meant to
6159 be faster and more extensible than Optima.
6160
6161 This system contains the PPCRE extension.")))
6162
6163 (define-public sbcl-trivia.quasiquote
6164 (package
6165 (inherit sbcl-trivia.level0)
6166 (name "sbcl-trivia.quasiquote")
6167 (inputs
6168 `(("trivia.trivial" ,sbcl-trivia.trivial)
6169 ("fare-quasiquote" ,sbcl-fare-quasiquote)
6170 ("fare-quasiquote-readtable" ,sbcl-fare-quasiquote-readtable)))
6171 (description "Trivia is a pattern matching compiler that is compatible
6172 with Optima, another pattern matching library for Common Lisp. It is meant to
6173 be faster and more extensible than Optima.
6174
6175 This system contains the fare-quasiquote extension.")))
6176
6177 (define-public sbcl-trivia.cffi
6178 (package
6179 (inherit sbcl-trivia.level0)
6180 (name "sbcl-trivia.cffi")
6181 (inputs
6182 `(("cffi" ,sbcl-cffi)
6183 ("trivia.trivial" ,sbcl-trivia.trivial)))
6184 (description "Trivia is a pattern matching compiler that is compatible
6185 with Optima, another pattern matching library for Common Lisp. It is meant to
6186 be faster and more extensible than Optima.
6187
6188 This system contains the CFFI foreign slot access extension.")))
6189
6190 (define-public sbcl-trivia
6191 (package
6192 (inherit sbcl-trivia.level0)
6193 (name "sbcl-trivia")
6194 (inputs
6195 `(("trivia.balland2006" ,sbcl-trivia.balland2006)))
6196 (native-inputs
6197 `(("fiveam" ,sbcl-fiveam)
6198 ("trivia.ppcre" ,sbcl-trivia.ppcre)
6199 ("trivia.quasiquote" ,sbcl-trivia.quasiquote)
6200 ("trivia.cffi" ,sbcl-trivia.cffi)
6201 ("optima" ,sbcl-optima)))
6202 (arguments
6203 `(#:test-asd-file "trivia.test.asd"
6204 #:phases
6205 (modify-phases %standard-phases
6206 (add-after 'create-asd 'remove-component
6207 ;; XXX: The original .asd has no components, but our build system
6208 ;; creates an entry nonetheless. We need to remove it for the
6209 ;; generated .asd to load properly. See trivia.trivial for a
6210 ;; similar problem.
6211 (lambda* (#:key outputs #:allow-other-keys)
6212 (let* ((out (assoc-ref outputs "out"))
6213 (asd (string-append out "/lib/" (%lisp-type) "/trivia.asd")))
6214 (substitute* asd
6215 ((" :components
6216 ")
6217 ""))
6218 (substitute* asd
6219 ((" *\\(\\(:compiled-file \"trivia--system\"\\)\\)")
6220 ""))))))))
6221 (description "Trivia is a pattern matching compiler that is compatible
6222 with Optima, another pattern matching library for Common Lisp. It is meant to
6223 be faster and more extensible than Optima.")))
6224
6225 (define-public cl-trivia
6226 (sbcl-package->cl-source-package sbcl-trivia))
6227
6228 (define-public sbcl-mk-string-metrics
6229 (package
6230 (name "sbcl-mk-string-metrics")
6231 (version "0.1.2")
6232 (home-page "https://github.com/cbaggers/mk-string-metrics/")
6233 (source (origin
6234 (method git-fetch)
6235 (uri (git-reference
6236 (url home-page)
6237 (commit version)))
6238 (sha256
6239 (base32 "0bg0bv2mfd4k0g3x72x563hvmrx18xavaffr6xk5rh4if5j7kcf6"))
6240 (file-name (git-file-name name version))))
6241 (build-system asdf-build-system/sbcl)
6242 (synopsis "Calculate various string metrics efficiently in Common Lisp")
6243 (description "This library implements efficient algorithms that calculate
6244 various string metrics in Common Lisp:
6245
6246 @itemize
6247 @item Damerau-Levenshtein distance
6248 @item Hamming distance
6249 @item Jaccard similarity coefficient
6250 @item Jaro distance
6251 @item Jaro-Winkler distance
6252 @item Levenshtein distance
6253 @item Normalized Damerau-Levenshtein distance
6254 @item Normalized Levenshtein distance
6255 @item Overlap coefficient
6256 @end itemize\n")
6257 (license license:x11)))
6258
6259 (define-public cl-mk-string-metrics
6260 (sbcl-package->cl-source-package sbcl-mk-string-metrics))
6261
6262 (define-public sbcl-cl-str
6263 (let ((commit "3d5ec86e3a0199e5973aacde951086dfd754b5e5"))
6264 (package
6265 (name "sbcl-cl-str")
6266 (version (git-version "0.8" "1" commit))
6267 (home-page "https://github.com/vindarel/cl-str")
6268 (source (origin
6269 (method git-fetch)
6270 (uri (git-reference
6271 (url home-page)
6272 (commit commit)))
6273 (sha256
6274 (base32 "0szzzbygw9h985yxz909vvqrp69pmpcpahn7hn350lnyjislk9ga"))
6275 (file-name (git-file-name name version))))
6276 (build-system asdf-build-system/sbcl)
6277 (inputs
6278 `(("cl-ppcre" ,sbcl-cl-ppcre)
6279 ("cl-ppcre-unicode" ,sbcl-cl-ppcre-unicode)))
6280 (native-inputs
6281 `(("prove" ,sbcl-prove)
6282 ("prove-asdf" ,sbcl-prove-asdf)))
6283 (arguments
6284 `(#:asd-file "str.asd"
6285 #:asd-system-name "str"
6286 #:test-asd-file "str.test.asd"))
6287 (synopsis "Modern, consistent and terse Common Lisp string manipulation library")
6288 (description "A modern and consistent Common Lisp string manipulation
6289 library that focuses on modernity, simplicity and discoverability:
6290 @code{(str:trim s)} instead of @code{(string-trim '(#\\Space ...) s)}), or
6291 @code{str:concat strings} instead of an unusual format construct; one
6292 discoverable library instead of many; consistency and composability, where
6293 @code{s} is always the last argument, which makes it easier to feed pipes and
6294 arrows.")
6295 (license license:expat))))
6296
6297 (define-public cl-str
6298 (sbcl-package->cl-source-package sbcl-cl-str))
6299
6300 (define-public sbcl-cl-xmlspam
6301 (let ((commit "ea06abcca2a73a9779bcfb09081e56665f94e22a"))
6302 (package
6303 (name "sbcl-cl-xmlspam")
6304 (build-system asdf-build-system/sbcl)
6305 (version (git-version "0.0.0" "1" commit))
6306 (home-page "https://github.com/rogpeppe/cl-xmlspam")
6307 (source
6308 (origin
6309 (method git-fetch)
6310 (uri (git-reference
6311 (url home-page)
6312 (commit commit)))
6313 (file-name (string-append name "-" version))
6314 (sha256
6315 (base32
6316 "0w4rqvrgdgk3fwfq3kx4r7wwdr2bv3b6n3bdqwsiriw9psqzpz2s"))))
6317 (inputs
6318 `(("cxml" ,sbcl-cxml)
6319 ("cl-ppcre" ,sbcl-cl-ppcre)))
6320 (synopsis "Concise, regexp-like pattern matching on streaming XML for Common Lisp")
6321 (description "CXML does an excellent job at parsing XML elements, but what
6322 do you do when you have a XML file that's larger than you want to fit in
6323 memory, and you want to extract some information from it? Writing code to deal
6324 with SAX events, or even using Klacks, quickly becomes tedious.
6325 @code{cl-xmlspam} (for XML Stream PAttern Matcher) is designed to make it easy
6326 to write code that mirrors the structure of the XML that it's parsing. It
6327 also makes it easy to shift paradigms when necessary - the usual Lisp control
6328 constructs can be used interchangeably with pattern matching, and the full
6329 power of CXML is available when necessary.")
6330 (license license:bsd-3))))
6331
6332 ;; TODO: dbus uses ASDF's package-inferred-system which is not supported by
6333 ;; asdf-build-system/sbcl as of 2019-08-02. We should fix
6334 ;; asdf-build-system/sbcl.
6335 (define-public cl-dbus
6336 (let ((commit "24b452df3a45ca5dc95015500f34baad175c981a")
6337 (revision "1"))
6338 (package
6339 (name "cl-dbus")
6340 (build-system asdf-build-system/source)
6341 (version (git-version "20190408" revision commit))
6342 (home-page "https://github.com/death/dbus")
6343 (source
6344 (origin
6345 (method git-fetch)
6346 (uri (git-reference
6347 (url home-page)
6348 (commit commit)))
6349 (file-name (git-file-name name version))
6350 (sha256
6351 (base32
6352 "0fw2q866yddbf23nk9pxphm9gsasx35vjyss82xzvndnjmzlqfl5"))))
6353 ;; Inputs must be propagated or else packages depending on this won't have the necessary packages.
6354 (propagated-inputs
6355 `(("alexandria" ,sbcl-alexandria)
6356 ("trivial-garbage" ,sbcl-trivial-garbage)
6357 ("babel" ,sbcl-babel)
6358 ("iolib" ,sbcl-iolib)
6359 ("iolib+multiplex" ,(@@ (gnu packages lisp-xyz) sbcl-iolib+multiplex))
6360 ("iolib+syscalls" ,(@@ (gnu packages lisp-xyz) sbcl-iolib+syscalls))
6361 ("iolib+streams" ,(@@ (gnu packages lisp-xyz) sbcl-iolib+streams))
6362 ("iolib+sockets" ,(@@ (gnu packages lisp-xyz) sbcl-iolib+sockets))
6363 ("ieee-floats" ,sbcl-ieee-floats)
6364 ("flexi-streams" ,sbcl-flexi-streams)
6365 ("cl-xmlspam" ,sbcl-cl-xmlspam)
6366 ("ironclad" ,sbcl-ironclad)))
6367 (synopsis "D-Bus client library for Common Lisp")
6368 (description "This is a Common Lisp library that allows to publish D-Bus
6369 objects as well as send and notify other objects connected to a bus.")
6370 (license license:bsd-2))))
6371
6372 (define-public sbcl-cl-hooks
6373 (let ((commit "5b638083f3b4f1221a52631d9c8a0a265565cac7")
6374 (revision "1"))
6375 (package
6376 (name "sbcl-cl-hooks")
6377 (build-system asdf-build-system/sbcl)
6378 (version (git-version "0.2.1" revision commit))
6379 (home-page "https://github.com/scymtym/architecture.hooks")
6380 (source
6381 (origin
6382 (method git-fetch)
6383 (uri (git-reference
6384 (url home-page)
6385 (commit commit)))
6386 (file-name (git-file-name name version))
6387 (sha256
6388 (base32
6389 "0bg3l0a28lw5gqqjp6p6b5nhwqk46sgkb7184w5qbfngw1hk8x9y"))))
6390 (inputs
6391 `(("alexandria" ,sbcl-alexandria)
6392 ("let-plus" ,sbcl-let-plus)
6393 ("trivial-garbage" ,sbcl-trivial-garbage)
6394 ("closer-mop" ,sbcl-closer-mop)))
6395 (native-inputs
6396 `(("fiveam" ,sbcl-fiveam)))
6397 (synopsis "Hooks extension point mechanism (as in Emacs) for Common Lisp")
6398 (description "A hook, in the present context, is a certain kind of
6399 extension point in a program that allows interleaving the execution of
6400 arbitrary code with the execution of a the program without introducing any
6401 coupling between the two. Hooks are used extensively in the extensible editor
6402 Emacs.
6403
6404 In the Common LISP Object System (CLOS), a similar kind of extensibility is
6405 possible using the flexible multi-method dispatch mechanism. It may even seem
6406 that the concept of hooks does not provide any benefits over the possibilities
6407 of CLOS. However, there are some differences:
6408
6409 @itemize
6410
6411 @item There can be only one method for each combination of specializers and
6412 qualifiers. As a result this kind of extension point cannot be used by
6413 multiple extensions independently.
6414 @item Removing code previously attached via a @code{:before}, @code{:after} or
6415 @code{:around} method can be cumbersome.
6416 @item There could be other or even multiple extension points besides @code{:before}
6417 and @code{:after} in a single method.
6418 @item Attaching codes to individual objects using eql specializers can be
6419 cumbersome.
6420 @item Introspection of code attached a particular extension point is
6421 cumbersome since this requires enumerating and inspecting the methods of a
6422 generic function.
6423 @end itemize
6424
6425 This library tries to complement some of these weaknesses of method-based
6426 extension-points via the concept of hooks.")
6427 (license license:llgpl))))
6428
6429 (define-public cl-hooks
6430 (sbcl-package->cl-source-package sbcl-cl-hooks))
6431
6432 (define-public ecl-cl-hooks
6433 (sbcl-package->ecl-package sbcl-cl-hooks))
6434
6435 (define-public sbcl-s-sysdeps
6436 (let ((commit "d28246b5dffef9e73a0e0e6cfbc4e878006fe34d")
6437 (revision "1"))
6438 (package
6439 (name "sbcl-s-sysdeps")
6440 (build-system asdf-build-system/sbcl)
6441 (version (git-version "1" revision commit))
6442 (home-page "https://github.com/svenvc/s-sysdeps")
6443 (source
6444 (origin
6445 (method git-fetch)
6446 (uri (git-reference
6447 (url home-page)
6448 (commit commit)))
6449 (file-name (git-file-name name version))
6450 (sha256
6451 (base32
6452 "14b69b81yrxmjlvmm3lfxk04x5v7hqz4fql121334wh72czznfh9"))))
6453 (synopsis "Common Lisp abstraction layer over platform dependent functionality")
6454 (description "@code{s-sysdeps} is an abstraction layer over platform
6455 dependent functionality. This simple package is used as a building block in a
6456 number of other open source projects.
6457
6458 @code{s-sysdeps} abstracts:
6459
6460 @itemize
6461 @item managing processes,
6462 @item implementing a standard TCP/IP server,
6463 @item opening a client TCP/IP socket stream,
6464 @item working with process locks.
6465 @end itemize\n")
6466 (license license:llgpl))))
6467
6468 (define-public cl-s-sysdeps
6469 (sbcl-package->cl-source-package sbcl-s-sysdeps))
6470
6471 (define-public ecl-s-sysdeps
6472 (sbcl-package->ecl-package sbcl-s-sysdeps))
6473
6474 (define-public sbcl-cl-prevalence
6475 (let ((commit "c163c227ed85d430b82cb1e3502f72d4f88e3cfa")
6476 (revision "1"))
6477 (package
6478 (name "sbcl-cl-prevalence")
6479 (build-system asdf-build-system/sbcl)
6480 (version (git-version "5" revision commit))
6481 (home-page "https://github.com/40ants/cl-prevalence")
6482 (source
6483 (origin
6484 (method git-fetch)
6485 (uri (git-reference
6486 (url home-page)
6487 (commit commit)))
6488 (file-name (git-file-name name version))
6489 (sha256
6490 (base32
6491 "1i9zj1q2ahgwch56an21yzbgkynz0kab9fyxkq9mg8p3xrv38jjn"))))
6492 (inputs
6493 `(("s-sysdeps" ,sbcl-s-sysdeps)
6494 ("s-xml" ,sbcl-s-xml)))
6495 (synopsis "Implementation of object prevalence for Common Lisp")
6496 (description "This Common Lisp library implements object prevalence (see
6497 @url{https://en.wikipedia.org/wiki/System_prevalence}). It allows
6498 for (de)serializing to and from s-exps as well as XML. Serialization of arbitrary
6499 classes and cyclic data structures are supported.")
6500 (license license:llgpl))))
6501
6502 (define-public cl-prevalence
6503 (sbcl-package->cl-source-package sbcl-cl-prevalence))
6504
6505 (define-public ecl-cl-prevalence
6506 (sbcl-package->ecl-package sbcl-cl-prevalence))
6507
6508 (define-public sbcl-series
6509 (let ((commit "da9061b336119d1e5214aff9117171d494d5a58a")
6510 (revision "1"))
6511 (package
6512 (name "sbcl-series")
6513 (version (git-version "2.2.11" revision commit))
6514 (source
6515 (origin
6516 (method git-fetch)
6517 (uri (git-reference
6518 (url "git://git.code.sf.net/p/series/series")
6519 (commit commit)))
6520 (file-name (git-file-name name version))
6521 (sha256
6522 (base32
6523 "07hk2lhfx42zk018pxqvn4gs77vd4n4g8m4xxbqaxgca76mifwfw"))))
6524 (build-system asdf-build-system/sbcl)
6525 (arguments
6526 ;; Disable the tests, they are apparently buggy and I didn't find
6527 ;; a simple way to make them run and pass.
6528 '(#:tests? #f))
6529 (synopsis "Series data structure for Common Lisp")
6530 (description
6531 "This Common Lisp library provides a series data structure much like
6532 a sequence, with similar kinds of operations. The difference is that in many
6533 situations, operations on series may be composed functionally and yet execute
6534 iteratively, without the need to construct intermediate series values
6535 explicitly. In this manner, series provide both the clarity of a functional
6536 programming style and the efficiency of an iterative programming style.")
6537 (home-page "http://series.sourceforge.net/")
6538 (license license:expat))))
6539
6540 (define-public cl-series
6541 (sbcl-package->cl-source-package sbcl-series))
6542
6543 (define-public ecl-series
6544 (sbcl-package->ecl-package sbcl-series))
6545
6546 (define-public sbcl-periods
6547 (let ((commit "983d4a57325db3c8def942f163133cec5391ec28")
6548 (revision "1"))
6549 (package
6550 (name "sbcl-periods")
6551 (version (git-version "0.0.2" revision commit))
6552 (source
6553 (origin
6554 (method git-fetch)
6555 (uri (git-reference
6556 (url "https://github.com/jwiegley/periods.git")
6557 (commit commit)))
6558 (file-name (git-file-name name version))
6559 (sha256
6560 (base32
6561 "0z30jr3lxz3cmi019fsl4lgcgwf0yqpn95v9zkkkwgymdrkd4lga"))))
6562 (build-system asdf-build-system/sbcl)
6563 (inputs
6564 `(("local-time" ,sbcl-local-time)))
6565 (synopsis "Common Lisp library for manipulating date/time objects")
6566 (description
6567 "Periods is a Common Lisp library providing a set of utilities for
6568 manipulating times, distances between times, and both contiguous and
6569 discontiguous ranges of time.")
6570 (home-page "https://github.com/jwiegley/periods")
6571 (license license:bsd-3))))
6572
6573 (define-public cl-periods
6574 (sbcl-package->cl-source-package sbcl-periods))
6575
6576 (define-public ecl-periods
6577 (sbcl-package->ecl-package sbcl-periods))
6578
6579 (define-public sbcl-periods-series
6580 (package
6581 (inherit sbcl-periods)
6582 (name "sbcl-periods-series")
6583 (inputs
6584 `(("periods" ,sbcl-periods)
6585 ("series" ,sbcl-series)))
6586 (arguments
6587 '(#:asd-file "periods-series.asd"
6588 #:asd-system-name "periods-series"))
6589 (description
6590 "Periods-series is an extension of the periods Common Lisp library
6591 providing functions compatible with the series Common Lisp library.")))
6592
6593 (define-public cl-periods-series
6594 (sbcl-package->cl-source-package sbcl-periods-series))
6595
6596 (define-public ecl-periods-series
6597 (sbcl-package->ecl-package sbcl-periods-series))
6598
6599 (define-public sbcl-metatilities-base
6600 (let ((commit "6eaa9e3ff0939a93a92109dd0fcd218de85417d5")
6601 (revision "1"))
6602 (package
6603 (name "sbcl-metatilities-base")
6604 (version (git-version "0.6.6" revision commit))
6605 (source
6606 (origin
6607 (method git-fetch)
6608 (uri (git-reference
6609 (url "https://github.com/gwkkwg/metatilities-base.git")
6610 (commit commit)))
6611 (file-name (git-file-name name version))
6612 (sha256
6613 (base32
6614 "0xpa86pdzlnf4v5g64j3ifaplx71sx2ha8b7vvakswi652679ma0"))))
6615 (build-system asdf-build-system/sbcl)
6616 (native-inputs
6617 `(("lift" ,sbcl-lift)))
6618 (synopsis "Core of the metatilities Common Lisp library")
6619 (description
6620 "Metatilities-base is the core of the metatilities Common Lisp library
6621 which implements a set of utilities.")
6622 (home-page "https://common-lisp.net/project/metatilities-base/")
6623 (license license:expat))))
6624
6625 (define-public cl-metatilities-base
6626 (sbcl-package->cl-source-package sbcl-metatilities-base))
6627
6628 (define-public ecl-metatilities-base
6629 (sbcl-package->ecl-package sbcl-metatilities-base))
6630
6631 (define-public sbcl-cl-containers
6632 (let ((commit "810927e19d933bcf38ffeb7a23ce521efc432d45")
6633 (revision "1"))
6634 (package
6635 (name "sbcl-cl-containers")
6636 (version (git-version "0.12.1" revision commit))
6637 (source
6638 (origin
6639 (method git-fetch)
6640 (uri (git-reference
6641 (url "https://github.com/gwkkwg/cl-containers.git")
6642 (commit commit)))
6643 (file-name (git-file-name name version))
6644 (sha256
6645 (base32
6646 "1s9faxw7svhbjpkhfrz2qxgjm3cvyjb8wpyb4m8dx4i5g7vvprkv"))))
6647 (build-system asdf-build-system/sbcl)
6648 (native-inputs
6649 `(("lift" ,sbcl-lift)))
6650 (inputs
6651 `(("metatilities-base" ,sbcl-metatilities-base)))
6652 (arguments
6653 '(#:phases
6654 (modify-phases %standard-phases
6655 (add-after 'unpack 'relax-version-checks
6656 (lambda _
6657 (substitute* "cl-containers.asd"
6658 (("\\(:version \"metatilities-base\" \"0\\.6\\.6\"\\)")
6659 "\"metatilities-base\""))
6660 (substitute* "cl-containers-test.asd"
6661 (("\\(:version \"lift\" \"1\\.7\\.0\"\\)")
6662 "\"lift\""))
6663 #t)))))
6664 (synopsis "Container library for Common Lisp")
6665 (description
6666 "Common Lisp ships with a set of powerful built in data structures
6667 including the venerable list, full featured arrays, and hash-tables.
6668 CL-containers enhances and builds on these structures by adding containers
6669 that are not available in native Lisp (for example: binary search trees,
6670 red-black trees, sparse arrays and so on), and by providing a standard
6671 interface so that they are simpler to use and so that changing design
6672 decisions becomes significantly easier.")
6673 (home-page "https://common-lisp.net/project/cl-containers/")
6674 (license license:expat))))
6675
6676 (define-public cl-containers
6677 (sbcl-package->cl-source-package sbcl-cl-containers))
6678
6679 (define-public ecl-cl-containers
6680 (sbcl-package->ecl-package sbcl-cl-containers))
6681
6682 (define-public sbcl-xlunit
6683 (let ((commit "3805d34b1d8dc77f7e0ee527a2490194292dd0fc")
6684 (revision "1"))
6685 (package
6686 (name "sbcl-xlunit")
6687 (version (git-version "0.6.3" revision commit))
6688 (source
6689 (origin
6690 (method git-fetch)
6691 (uri (git-reference
6692 (url "http://git.kpe.io/xlunit.git")
6693 (commit commit)))
6694 (file-name (git-file-name name version))
6695 (sha256
6696 (base32
6697 "0argfmp9nghs4sihyj3f8ch9qfib2b7ll07v5m9ziajgzsfl5xw3"))))
6698 (build-system asdf-build-system/sbcl)
6699 (arguments
6700 '(#:phases
6701 (modify-phases %standard-phases
6702 (add-after 'unpack 'fix-tests
6703 (lambda _
6704 (substitute* "xlunit.asd"
6705 ((" :force t") ""))
6706 #t)))))
6707 (synopsis "Unit testing package for Common Lisp")
6708 (description
6709 "The XLUnit package is a toolkit for building test suites. It is based
6710 on the XPTest package by Craig Brozensky and the JUnit package by Kent Beck.")
6711 (home-page "http://quickdocs.org/xlunit/")
6712 (license license:bsd-3))))
6713
6714 (define-public cl-xlunit
6715 (sbcl-package->cl-source-package sbcl-xlunit))
6716
6717 (define-public ecl-xlunit
6718 (sbcl-package->ecl-package sbcl-xlunit))
6719
6720 (define-public sbcl-fprog
6721 (let ((commit "7016d1a98215f82605d1c158e7a16504ca1f4636")
6722 (revision "1"))
6723 (package
6724 (name "sbcl-fprog")
6725 (version (git-version "1.0.0" revision commit))
6726 (source
6727 (origin
6728 (method git-fetch)
6729 (uri (git-reference
6730 (url "https://github.com/jwiegley/cambl.git")
6731 (commit commit)))
6732 (file-name (git-file-name name version))
6733 (sha256
6734 (base32
6735 "103mry04j2k9vznsxm7wcvccgxkil92cdrv52miwcmxl8daa4jiz"))))
6736 (build-system asdf-build-system/sbcl)
6737 (synopsis "Functional programming utilities for Common Lisp")
6738 (description
6739 "@code{fprog} is a Common Lisp library allowing iteration over
6740 immutable lists sharing identical sublists.")
6741 (home-page "https://github.com/jwiegley/cambl")
6742 (license license:bsd-3))))
6743
6744 (define-public cl-fprog
6745 (sbcl-package->cl-source-package sbcl-fprog))
6746
6747 (define-public ecl-fprog
6748 (sbcl-package->ecl-package sbcl-fprog))
6749
6750 (define-public sbcl-cambl
6751 (let ((commit "7016d1a98215f82605d1c158e7a16504ca1f4636")
6752 (revision "1"))
6753 (package
6754 (inherit sbcl-fprog)
6755 (name "sbcl-cambl")
6756 (version (git-version "4.0.0" revision commit))
6757 (native-inputs
6758 `(("xlunit" ,sbcl-xlunit)))
6759 (inputs
6760 `(("alexandria" ,sbcl-alexandria)
6761 ("cl-containers" ,sbcl-cl-containers)
6762 ("local-time" ,sbcl-local-time)
6763 ("periods" ,sbcl-periods)
6764 ("fprog" ,sbcl-fprog)))
6765 (synopsis "Commoditized amounts and balances for Common Lisp")
6766 (description
6767 "CAMBL is a Common Lisp library providing a convenient facility for
6768 working with commoditized values. It does not allow compound units (and so is
6769 not suited for scientific operations) but does work rather nicely for the
6770 purpose of financial calculations."))))
6771
6772 (define-public cl-cambl
6773 (sbcl-package->cl-source-package sbcl-cambl))
6774
6775 (define-public ecl-cambl
6776 (sbcl-package->ecl-package sbcl-cambl))
6777
6778 (define-public sbcl-cl-ledger
6779 (let ((commit "08e0be41795e804cd36142e51756ad0b1caa377b")
6780 (revision "1"))
6781 (package
6782 (name "sbcl-cl-ledger")
6783 (version (git-version "4.0.0" revision commit))
6784 (source
6785 (origin
6786 (method git-fetch)
6787 (uri (git-reference
6788 (url "https://github.com/ledger/cl-ledger.git")
6789 (commit commit)))
6790 (file-name (git-file-name name version))
6791 (sha256
6792 (base32
6793 "1via0qf6wjcyxnfbmfxjvms0ik9j8rqbifgpmnhrzvkhrq9pv8h1"))))
6794 (build-system asdf-build-system/sbcl)
6795 (inputs
6796 `(("cambl" ,sbcl-cambl)
6797 ("cl-ppcre" ,sbcl-cl-ppcre)
6798 ("local-time" ,sbcl-local-time)
6799 ("periods-series" ,sbcl-periods-series)))
6800 (arguments
6801 '(#:phases
6802 (modify-phases %standard-phases
6803 (add-after 'unpack 'fix-system-definition
6804 (lambda _
6805 (substitute* "cl-ledger.asd"
6806 ((" :build-operation program-op") "")
6807 ((" :build-pathname \"cl-ledger\"") "")
6808 ((" :entry-point \"ledger::main\"") ""))
6809 #t)))))
6810 (synopsis "Common Lisp port of the Ledger accounting system")
6811 (description
6812 "CL-Ledger is a Common Lisp port of the Ledger double-entry accounting
6813 system.")
6814 (home-page "https://github.com/ledger/cl-ledger")
6815 (license license:bsd-3))))
6816
6817 (define-public cl-ledger
6818 (sbcl-package->cl-source-package sbcl-cl-ledger))
6819
6820 (define-public ecl-cl-ledger
6821 (sbcl-package->ecl-package sbcl-cl-ledger))
6822
6823 (define-public sbcl-bst
6824 (let ((commit "34f9c7e8e0a9f2c952fe310ab36cb630d5d9c15a")
6825 (revision "1"))
6826 (package
6827 (name "sbcl-bst")
6828 (version (git-version "1.1" revision commit))
6829 (source
6830 (origin
6831 (method git-fetch)
6832 (uri (git-reference
6833 (url "https://github.com/glv2/bst.git")
6834 (commit commit)))
6835 (file-name (git-file-name name version))
6836 (sha256
6837 (base32
6838 "1amxns7hvvh4arwbh8ciwfzplg127vh37dnbamv1m1kmmnmihfc8"))))
6839 (build-system asdf-build-system/sbcl)
6840 (native-inputs
6841 `(("alexandria" ,sbcl-alexandria)
6842 ("fiveam" ,sbcl-fiveam)))
6843 (synopsis "Binary search tree for Common Lisp")
6844 (description
6845 "BST is a Common Lisp library for working with binary search trees that
6846 can contain any kind of values.")
6847 (home-page "https://github.com/glv2/bst")
6848 (license license:gpl3))))
6849
6850 (define-public cl-bst
6851 (sbcl-package->cl-source-package sbcl-bst))
6852
6853 (define-public ecl-bst
6854 (sbcl-package->ecl-package sbcl-bst))
6855
6856 (define-public sbcl-cl-octet-streams
6857 (package
6858 (name "sbcl-cl-octet-streams")
6859 (version "1.0")
6860 (source
6861 (origin
6862 (method git-fetch)
6863 (uri (git-reference
6864 (url "https://github.com/glv2/cl-octet-streams.git")
6865 (commit (string-append "v" version))))
6866 (file-name (git-file-name name version))
6867 (sha256
6868 (base32
6869 "1d7mn6ydv0j2x4r7clpc9ijjwrnfpxmvhifv8n5j7jh7s744sf8d"))))
6870 (build-system asdf-build-system/sbcl)
6871 (native-inputs
6872 `(("fiveam" ,sbcl-fiveam)))
6873 (inputs
6874 `(("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
6875 (synopsis "In-memory octet streams for Common Lisp")
6876 (description
6877 "CL-octet-streams is a library implementing in-memory octet
6878 streams for Common Lisp. It was inspired by the trivial-octet-streams and
6879 cl-plumbing libraries.")
6880 (home-page "https://github.com/glv2/cl-octet-streams")
6881 (license license:gpl3+)))
6882
6883 (define-public cl-octet-streams
6884 (sbcl-package->cl-source-package sbcl-cl-octet-streams))
6885
6886 (define-public ecl-cl-octet-streams
6887 (sbcl-package->ecl-package sbcl-cl-octet-streams))
6888
6889 (define-public sbcl-lzlib
6890 (let ((commit "0de1db7129fef9a58a059d35a2fa2ecfc5b47b47")
6891 (revision "1"))
6892 (package
6893 (name "sbcl-lzlib")
6894 (version (git-version "1.0" revision commit))
6895 (source
6896 (origin
6897 (method git-fetch)
6898 (uri (git-reference
6899 (url "https://github.com/glv2/cl-lzlib.git")
6900 (commit commit)))
6901 (file-name (git-file-name name version))
6902 (sha256
6903 (base32
6904 "12ny7vj52fgnd8hb8fc8mry92vq4c1x72x2350191m4476j95clz"))))
6905 (build-system asdf-build-system/sbcl)
6906 (native-inputs
6907 `(("fiveam" ,sbcl-fiveam)))
6908 (inputs
6909 `(("cffi" ,sbcl-cffi)
6910 ("cl-octet-streams" ,sbcl-cl-octet-streams)
6911 ("lzlib" ,lzlib)))
6912 (arguments
6913 '(#:phases
6914 (modify-phases %standard-phases
6915 (add-after 'unpack 'fix-paths
6916 (lambda* (#:key inputs #:allow-other-keys)
6917 (substitute* "src/lzlib.lisp"
6918 (("liblz\\.so")
6919 (string-append (assoc-ref inputs "lzlib") "/lib/liblz.so")))
6920 #t)))))
6921 (synopsis "Common Lisp library for lzip (de)compression")
6922 (description
6923 "This Common Lisp library provides functions for lzip (LZMA)
6924 compression/decompression using bindings to the lzlib C library.")
6925 (home-page "https://github.com/glv2/cl-lzlib")
6926 (license license:gpl3+))))
6927
6928 (define-public cl-lzlib
6929 (sbcl-package->cl-source-package sbcl-lzlib))
6930
6931 (define-public ecl-lzlib
6932 (sbcl-package->ecl-package sbcl-lzlib))
6933
6934 (define-public sbcl-chanl
6935 (let ((commit "56e90a126c78b39bb621a01585e8d3b985238e8c")
6936 (revision "1"))
6937 (package
6938 (name "sbcl-chanl")
6939 (version (git-version "0.4.1" revision commit))
6940 (source
6941 (origin
6942 (method git-fetch)
6943 (uri (git-reference
6944 (url "https://github.com/zkat/chanl.git")
6945 (commit commit)))
6946 (file-name (git-file-name name version))
6947 (sha256
6948 (base32
6949 "0b1cf6c12qx5cy1fw2z42jgh566rp3l8nv5qf0qqc569s7bgmrh4"))))
6950 (build-system asdf-build-system/sbcl)
6951 (native-inputs
6952 `(("fiveam" ,sbcl-fiveam)))
6953 (inputs
6954 `(("bordeaux-threads" ,sbcl-bordeaux-threads)))
6955 (synopsis "Portable channel-based concurrency for Common Lisp")
6956 (description "Common Lisp library for channel-based concurrency. In
6957 a nutshell, you create various threads sequentially executing tasks you need
6958 done, and use channel objects to communicate and synchronize the state of these
6959 threads.")
6960 (home-page "https://github.com/zkat/chanl")
6961 (license (list license:expat license:bsd-3)))))
6962
6963 (define-public cl-chanl
6964 (sbcl-package->cl-source-package sbcl-chanl))
6965
6966 (define-public ecl-chanl
6967 (sbcl-package->ecl-package sbcl-chanl))
6968
6969 (define-public sbcl-cl-store
6970 (let ((commit "c787337a16ea8cf8a06227f35933a4ec774746b3")
6971 (revision "1"))
6972 (package
6973 (name "sbcl-cl-store")
6974 (version (git-version "0.8.11" revision commit))
6975 (source
6976 (origin
6977 (method git-fetch)
6978 (uri (git-reference
6979 (url "https://github.com/skypher/cl-store.git")
6980 (commit commit)))
6981 (file-name (git-file-name name version))
6982 (sha256
6983 (base32
6984 "194srkg8nrym19c6i7zbnkzshc1qhqa82m53qnkirz9fw928bqxr"))))
6985 (build-system asdf-build-system/sbcl)
6986 (native-inputs
6987 `(("rt" ,sbcl-rt)))
6988 (synopsis "Common Lisp library to serialize data")
6989 (description
6990 "CL-STORE is a portable serialization package which should give you the
6991 ability to store all Common Lisp data types into streams.")
6992 (home-page "https://www.common-lisp.net/project/cl-store/")
6993 (license license:expat))))
6994
6995 (define-public cl-store
6996 (sbcl-package->cl-source-package sbcl-cl-store))
6997
6998 (define-public ecl-cl-store
6999 (sbcl-package->ecl-package sbcl-cl-store))
7000
7001 (define-public sbcl-cl-gobject-introspection
7002 (let ((commit "7b703e2384945ea0ac39d9b766de434a08d81560")
7003 (revision "0"))
7004 (package
7005 (name "sbcl-cl-gobject-introspection")
7006 (version (git-version "0.3" revision commit))
7007 (home-page "https://github.com/andy128k/cl-gobject-introspection")
7008 (source
7009 (origin
7010 (method git-fetch)
7011 (uri (git-reference
7012 (url home-page)
7013 (commit commit)))
7014 (file-name (git-file-name name version))
7015 (sha256
7016 (base32
7017 "1zcqd2qj14f6b38vys8gr89s6cijsp9r8j43xa8lynilwva7bwyh"))))
7018 (build-system asdf-build-system/sbcl)
7019 (inputs
7020 `(("alexandria" ,sbcl-alexandria)
7021 ("cffi" ,sbcl-cffi)
7022 ("iterate" ,sbcl-iterate)
7023 ("trivial-garbage" ,sbcl-trivial-garbage)
7024 ("glib" ,glib)
7025 ("gobject-introspection" ,gobject-introspection)))
7026 (native-inputs
7027 `(("fiveam" ,sbcl-fiveam)))
7028 (arguments
7029 ;; TODO: Tests fail, see
7030 ;; https://github.com/andy128k/cl-gobject-introspection/issues/70.
7031 '(#:tests? #f
7032 #:phases
7033 (modify-phases %standard-phases
7034 (add-after (quote unpack) (quote fix-paths)
7035 (lambda* (#:key inputs #:allow-other-keys)
7036 (substitute* "src/init.lisp"
7037 (("libgobject-2\\.0\\.so")
7038 (string-append (assoc-ref inputs "glib") "/lib/libgobject-2.0.so"))
7039 (("libgirepository-1\\.0\\.so")
7040 (string-append (assoc-ref inputs "gobject-introspection")
7041 "/lib/libgirepository-1.0.so")))
7042 #t)))))
7043 (synopsis "Common Lisp bindings to GObject Introspection")
7044 (description
7045 "This library is a bridge between Common Lisp and GObject
7046 Introspection, which enables Common Lisp programs to access the full interface
7047 of C+GObject libraries without the need of writing dedicated bindings.")
7048 (license (list license:bsd-3
7049 ;; Tests are under a different license.
7050 license:llgpl)))))
7051
7052 (define-public cl-gobject-introspection
7053 (sbcl-package->cl-source-package sbcl-cl-gobject-introspection))
7054
7055 (define-public sbcl-string-case
7056 (let ((commit "718c761e33749e297cd2809c7ba3ade1985c49f7")
7057 (revision "0"))
7058 (package
7059 (name "sbcl-string-case")
7060 (version (git-version "0.0.2" revision commit))
7061 (home-page "https://github.com/pkhuong/string-case")
7062 (source
7063 (origin
7064 (method git-fetch)
7065 (uri (git-reference
7066 (url home-page)
7067 (commit commit)))
7068 (file-name (git-file-name name version))
7069 (sha256
7070 (base32
7071 "1n5i3yh0h5s636rcnwn7jwqy3rjflikra04lymimhpcshhjsk0md"))))
7072 (build-system asdf-build-system/sbcl)
7073 (synopsis "Efficient string= case in Common Lisp")
7074 (description
7075 "@code{string-case} is a Common Lisp macro that generates specialised decision
7076 trees to dispatch on string equality.")
7077 (license license:bsd-3))))
7078
7079 (define-public cl-string-case
7080 (sbcl-package->cl-source-package sbcl-string-case))
7081
7082 (define-public ecl-string-case
7083 (sbcl-package->ecl-package sbcl-string-case))
7084
7085 (define-public sbcl-global-vars
7086 (let ((commit "c749f32c9b606a1457daa47d59630708ac0c266e")
7087 (revision "0"))
7088 (package
7089 (name "sbcl-global-vars")
7090 (version (git-version "1.0.0" revision commit))
7091 (home-page "https://github.com/lmj/global-vars")
7092 (source
7093 (origin
7094 (method git-fetch)
7095 (uri (git-reference
7096 (url home-page)
7097 (commit commit)))
7098 (file-name (git-file-name name version))
7099 (sha256
7100 (base32
7101 "06m3xc8l3pgsapl8fvsi9wf6y46zs75cp9zn7zh6dc65v4s5wz3d"))))
7102 (build-system asdf-build-system/sbcl)
7103 (synopsis "Efficient global variables in Common Lisp")
7104 (description
7105 "In Common Lisp, a special variable that is never dynamically bound
7106 typically serves as a stand-in for a global variable. The @code{global-vars}
7107 library provides true global variables that are implemented by some compilers.
7108 An attempt to rebind a global variable properly results in a compiler error.
7109 That is, a global variable cannot be dynamically bound.
7110
7111 Global variables therefore allow us to communicate an intended usage that
7112 differs from special variables. Global variables are also more efficient than
7113 special variables, especially in the presence of threads.")
7114 (license license:expat))))
7115
7116 (define-public cl-global-vars
7117 (sbcl-package->cl-source-package sbcl-global-vars))
7118
7119 (define-public ecl-global-vars
7120 (sbcl-package->ecl-package sbcl-global-vars))
7121
7122 (define-public sbcl-trivial-file-size
7123 (let ((commit "1c1d672a01a446ba0391dbb4ffc40be3b0476f23")
7124 (revision "0"))
7125 (package
7126 (name "sbcl-trivial-file-size")
7127 (version (git-version "0.0.0" revision commit))
7128 (home-page "https://github.com/ruricolist/trivial-file-size")
7129 (source
7130 (origin
7131 (method git-fetch)
7132 (uri (git-reference
7133 (url home-page)
7134 (commit commit)))
7135 (file-name (git-file-name name version))
7136 (sha256
7137 (base32
7138 "17pp86c9zs4y7i1sh7q9gbfw9iqv6655k7fz8qbj9ly1ypgxp4qs"))))
7139 (build-system asdf-build-system/sbcl)
7140 (native-inputs
7141 `(("fiveam" ,sbcl-fiveam)))
7142 (synopsis "Size of a file in bytes in Common Lisp")
7143 (description
7144 "The canonical way to determine the size of a file in bytes, using Common Lisp,
7145 is to open the file with an element type of (unsigned-byte 8) and then
7146 calculate the length of the stream. This is less than ideal. In most cases
7147 it is better to get the size of the file from its metadata, using a system
7148 call.
7149
7150 This library exports a single function, file-size-in-octets. It returns the
7151 size of a file in bytes, using system calls when possible.")
7152 (license license:expat))))
7153
7154 (define-public cl-trivial-file-size
7155 (sbcl-package->cl-source-package sbcl-trivial-file-size))
7156
7157 (define-public ecl-trivial-file-size
7158 (sbcl-package->ecl-package sbcl-trivial-file-size))
7159
7160 (define-public sbcl-trivial-macroexpand-all
7161 (let ((commit "933270ac7107477de1bc92c1fd641fe646a7a8a9")
7162 (revision "0"))
7163 (package
7164 (name "sbcl-trivial-macroexpand-all")
7165 (version (git-version "0.0.0" revision commit))
7166 (home-page "https://github.com/cbaggers/trivial-macroexpand-all")
7167 (source
7168 (origin
7169 (method git-fetch)
7170 (uri (git-reference
7171 (url home-page)
7172 (commit commit)))
7173 (file-name (git-file-name name version))
7174 (sha256
7175 (base32
7176 "191hnn4b5j4i3crydmlzbm231kj0h7l8zj6mzj69r1npbzkas4bd"))))
7177 (build-system asdf-build-system/sbcl)
7178 (native-inputs
7179 `(("fiveam" ,sbcl-fiveam)))
7180 (synopsis "Portable macroexpand-all for Common Lisp")
7181 (description
7182 "This library provides a macroexpand-all function that calls the
7183 implementation specific equivalent.")
7184 (license license:unlicense))))
7185
7186 (define-public cl-trivial-macroexpand-all
7187 (sbcl-package->cl-source-package sbcl-trivial-macroexpand-all))
7188
7189 (define-public ecl-trivial-macroexpand-all
7190 (sbcl-package->ecl-package sbcl-trivial-macroexpand-all))
7191
7192 (define-public sbcl-serapeum
7193 (let ((commit "65837f8a0d65b36369ec8d000fff5c29a395b5fe")
7194 (revision "0"))
7195 (package
7196 (name "sbcl-serapeum")
7197 (version (git-version "0.0.0" revision commit))
7198 (home-page "https://github.com/ruricolist/serapeum")
7199 (source
7200 (origin
7201 (method git-fetch)
7202 (uri (git-reference
7203 (url home-page)
7204 (commit commit)))
7205 (file-name (git-file-name name version))
7206 (sha256
7207 (base32
7208 "0clwf81r2lvk1rbfvk91s9zmbkas9imf57ilqclw12mxaxlfsnbw"))))
7209 (build-system asdf-build-system/sbcl)
7210 (inputs
7211 `(("alexandria" ,sbcl-alexandria)
7212 ("trivia" ,sbcl-trivia)
7213 ("trivia.quasiquote" ,sbcl-trivia.quasiquote)
7214 ("split-sequence" ,sbcl-split-sequence)
7215 ("string-case" ,sbcl-string-case)
7216 ("parse-number" ,sbcl-parse-number)
7217 ("trivial-garbage" ,sbcl-trivial-garbage)
7218 ("bordeaux-threads" ,sbcl-bordeaux-threads)
7219 ("named-readtables" ,sbcl-named-readtables)
7220 ("fare-quasiquote-extras" ,sbcl-fare-quasiquote-extras)
7221 ("parse-declarations-1.0" ,sbcl-parse-declarations)
7222 ("global-vars" ,sbcl-global-vars)
7223 ("trivial-file-size" ,sbcl-trivial-file-size)
7224 ("trivial-macroexpand-all" ,sbcl-trivial-macroexpand-all)))
7225 (native-inputs
7226 `(("fiveam" ,sbcl-fiveam)
7227 ("local-time" ,sbcl-local-time)))
7228 (arguments
7229 '(#:phases
7230 (modify-phases %standard-phases
7231 (add-after 'unpack 'disable-failing-tests
7232 (lambda* (#:key inputs #:allow-other-keys)
7233 (substitute* "serapeum.asd"
7234 ;; Guix does not have Quicklisp, and probably never will.
7235 (("\\(:file \"quicklisp\"\\)") ""))
7236 #t)))))
7237 (synopsis "Common Lisp utility library beyond Alexandria")
7238 (description
7239 "Serapeum is a conservative library of Common Lisp utilities. It is a
7240 supplement, not a competitor, to Alexandria.")
7241 (license license:expat))))
7242
7243 (define-public cl-serapeum
7244 (sbcl-package->cl-source-package sbcl-serapeum))
7245
7246 (define-public sbcl-arrows
7247 (let ((commit "df7cf0067e0132d9697ac8b1a4f1b9c88d4f5382")
7248 (revision "0"))
7249 (package
7250 (name "sbcl-arrows")
7251 (version (git-version "0.2.0" revision commit))
7252 (source
7253 (origin
7254 (method git-fetch)
7255 (uri (git-reference
7256 (url "https://gitlab.com/Harleqin/arrows.git")
7257 (commit commit)))
7258 (file-name (git-file-name name version))
7259 (sha256
7260 (base32
7261 "042k9vkssrqx9nhp14wdzm942zgdxvp35mba0p2syz98i75im2yy"))))
7262 (build-system asdf-build-system/sbcl)
7263 (native-inputs
7264 `(("hu.dwim.stefil" ,sbcl-hu.dwim.stefil)))
7265 (synopsis "Clojure-like arrow macros for Common Lisp")
7266 (description
7267 "This library implements the @code{->} and @code{->>} macros from
7268 Clojure, as well as several expansions on the idea.")
7269 (home-page "https://gitlab.com/Harleqin/arrows")
7270 (license license:public-domain))))
7271
7272 (define-public cl-arrows
7273 (sbcl-package->cl-source-package sbcl-arrows))
7274
7275 (define-public ecl-arrows
7276 (sbcl-package->ecl-package sbcl-arrows))
7277
7278 (define-public sbcl-simple-parallel-tasks
7279 (let ((commit "db460f7a3f7bbfe2d3a2223ed21e162068d04dda")
7280 (revision "0"))
7281 (package
7282 (name "sbcl-simple-parallel-tasks")
7283 (version (git-version "1.0" revision commit))
7284 (source
7285 (origin
7286 (method git-fetch)
7287 (uri (git-reference
7288 (url "https://github.com/glv2/simple-parallel-tasks.git")
7289 (commit commit)))
7290 (file-name (git-file-name name version))
7291 (sha256
7292 (base32
7293 "0amw3qk23wnlyrsgzszs6rs7y4zvxv8dr03rnqhc60mnm8ds4dd5"))))
7294 (build-system asdf-build-system/sbcl)
7295 (native-inputs
7296 `(("fiveam" ,sbcl-fiveam)))
7297 (inputs
7298 `(("chanl" ,sbcl-chanl)))
7299 (synopsis "Common Lisp library to evaluate some forms in parallel")
7300 (description "This is a simple Common Lisp library to evaluate some
7301 forms in parallel.")
7302 (home-page "https://github.com/glv2/simple-parallel-tasks")
7303 (license license:gpl3))))
7304
7305 (define-public cl-simple-parallel-tasks
7306 (sbcl-package->cl-source-package sbcl-simple-parallel-tasks))
7307
7308 (define-public ecl-simple-parallel-tasks
7309 (sbcl-package->ecl-package sbcl-simple-parallel-tasks))
7310
7311 (define-public sbcl-cl-heap
7312 (package
7313 (name "sbcl-cl-heap")
7314 (version "0.1.6")
7315 (source
7316 (origin
7317 (method url-fetch)
7318 (uri (string-append "https://common-lisp.net/project/cl-heap/releases/"
7319 "cl-heap_" version ".tar.gz"))
7320 (sha256
7321 (base32
7322 "163hb07p2nxz126rpq3cj5dyala24n0by5i5786n2qcr1w0bak4i"))))
7323 (build-system asdf-build-system/sbcl)
7324 (native-inputs
7325 `(("xlunit" ,sbcl-xlunit)))
7326 (arguments
7327 `(#:test-asd-file "cl-heap-tests.asd"))
7328 (synopsis "Heap and priority queue data structures for Common Lisp")
7329 (description
7330 "CL-HEAP provides various implementations of heap data structures (a
7331 binary heap and a Fibonacci heap) as well as an efficient priority queue.")
7332 (home-page "https://common-lisp.net/project/cl-heap/")
7333 (license license:gpl3+)))
7334
7335 (define-public cl-heap
7336 (sbcl-package->cl-source-package sbcl-cl-heap))
7337
7338 (define-public ecl-cl-heap
7339 (sbcl-package->ecl-package sbcl-cl-heap))
7340
7341 (define-public sbcl-curry-compose-reader-macros
7342 (let ((commit "beaa92dedf392726c042184bfd6149fa8d9e6ac2")
7343 (revision "0"))
7344 (package
7345 (name "sbcl-curry-compose-reader-macros")
7346 (version (git-version "1.0.0" revision commit))
7347 (source
7348 (origin
7349 (method git-fetch)
7350 (uri
7351 (git-reference
7352 (url "https://github.com/eschulte/curry-compose-reader-macros.git")
7353 (commit commit)))
7354 (file-name (git-file-name name version))
7355 (sha256
7356 (base32
7357 "0rv9bl8xrad5wfcg5zs1dazvnpmvqz6297lbn8bywsrcfnlf7h98"))))
7358 (build-system asdf-build-system/sbcl)
7359 (inputs
7360 `(("alexandria" ,sbcl-alexandria)
7361 ("named-readtables" ,sbcl-named-readtables)))
7362 (synopsis "Reader macros for partial application and composition")
7363 (description
7364 "This Common Lisp library provides reader macros for concise expression
7365 of function partial application and composition.")
7366 (home-page "https://eschulte.github.io/curry-compose-reader-macros/")
7367 (license license:public-domain))))
7368
7369 (define-public cl-curry-compose-reader-macros
7370 (sbcl-package->cl-source-package sbcl-curry-compose-reader-macros))
7371
7372 (define-public ecl-curry-compose-reader-macros
7373 (sbcl-package->ecl-package sbcl-curry-compose-reader-macros))
7374
7375 (define-public sbcl-yason
7376 (package
7377 (name "sbcl-yason")
7378 (version "0.7.7")
7379 (source
7380 (origin
7381 (method git-fetch)
7382 (uri (git-reference
7383 (url "https://github.com/phmarek/yason.git")
7384 (commit (string-append "v" version))))
7385 (file-name (git-file-name name version))
7386 (sha256
7387 (base32
7388 "0479rbjgbj80jpk5bby18inlv1kfp771a82rlcq5psrz65qqa9bj"))))
7389 (build-system asdf-build-system/sbcl)
7390 (inputs
7391 `(("alexandria" ,sbcl-alexandria)
7392 ("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
7393 (synopsis "Common Lisp JSON parser/encoder")
7394 (description
7395 "YASON is a Common Lisp library for encoding and decoding data in the
7396 JSON interchange format.")
7397 (home-page "https://github.com/phmarek/yason")
7398 (license license:bsd-3)))
7399
7400 (define-public cl-yason
7401 (sbcl-package->cl-source-package sbcl-yason))
7402
7403 (define-public ecl-yason
7404 (sbcl-package->ecl-package sbcl-yason))
7405
7406 (define-public sbcl-stefil
7407 (let ((commit "0398548ec95dceb50fc2c2c03e5fb0ce49b86c7a")
7408 (revision "0"))
7409 (package
7410 (name "sbcl-stefil")
7411 (version (git-version "0.1" revision commit))
7412 (source
7413 (origin
7414 (method git-fetch)
7415 (uri (git-reference
7416 (url "https://gitlab.common-lisp.net/stefil/stefil.git")
7417 (commit commit)))
7418 (file-name (git-file-name name version))
7419 (sha256
7420 (base32
7421 "0bqz64q2szzhf91zyqyssmvrz7da6442rs01808pf3wrdq28bclh"))))
7422 (build-system asdf-build-system/sbcl)
7423 (inputs
7424 `(("alexandria" ,sbcl-alexandria)
7425 ("iterate" ,sbcl-iterate)
7426 ("metabang-bind" ,sbcl-metabang-bind)))
7427 (propagated-inputs
7428 ;; Swank doesn't have a pre-compiled package, therefore we must
7429 ;; propagate its sources.
7430 `(("swank" ,cl-slime-swank)))
7431 (arguments
7432 '(#:phases
7433 (modify-phases %standard-phases
7434 (add-after 'unpack 'drop-unnecessary-dependency
7435 (lambda _
7436 (substitute* "package.lisp"
7437 ((":stefil-system") ""))
7438 #t)))))
7439 (home-page "https://common-lisp.net/project/stefil/index-old.shtml")
7440 (synopsis "Simple test framework")
7441 (description
7442 "Stefil is a simple test framework for Common Lisp, with a focus on
7443 interactive development.")
7444 (license license:public-domain))))
7445
7446 (define-public cl-stefil
7447 (sbcl-package->cl-source-package sbcl-stefil))
7448
7449 (define-public sbcl-graph
7450 (let ((commit "78bf9ec930d8eae4f0861b5be76765fb1e45e24f")
7451 (revision "0"))
7452 (package
7453 (name "sbcl-graph")
7454 (version (git-version "0.0.0" revision commit))
7455 (source
7456 (origin
7457 (method git-fetch)
7458 (uri
7459 (git-reference
7460 (url "https://github.com/eschulte/graph.git")
7461 (commit commit)))
7462 (file-name (git-file-name name version))
7463 (sha256
7464 (base32
7465 "1qpij4xh8bqwc2myahpilcbh916v7vg0acz2fij14d3y0jm02h0g"))
7466 (patches (search-patches "sbcl-graph-asdf-definitions.patch"))))
7467 (build-system asdf-build-system/sbcl)
7468 (native-inputs
7469 `(("stefil" ,sbcl-stefil)))
7470 (inputs
7471 `(("alexandria" ,sbcl-alexandria)
7472 ("cl-heap" ,sbcl-cl-heap)
7473 ("curry-compose-reader-macros" ,sbcl-curry-compose-reader-macros)
7474 ("metabang-bind" ,sbcl-metabang-bind)
7475 ("named-readtables" ,sbcl-named-readtables)))
7476 (arguments
7477 '(#:test-asd-file "graph-test.asd"))
7478 (synopsis "Graph data structure and algorithms for Common Lisp")
7479 (description
7480 "The GRAPH Common Lisp library provides a data structures to represent
7481 graphs, as well as some graph manipulation and analysis algorithms (shortest
7482 path, maximum flow, minimum spanning tree, etc.).")
7483 (home-page "https://eschulte.github.io/graph/")
7484 (license license:gpl3+))))
7485
7486 (define-public cl-graph
7487 (sbcl-package->cl-source-package sbcl-graph))
7488
7489 (define-public sbcl-graph-dot
7490 (package
7491 (inherit sbcl-graph)
7492 (name "sbcl-graph-dot")
7493 (inputs
7494 `(("alexandria" ,sbcl-alexandria)
7495 ("cl-ppcre" ,sbcl-cl-ppcre)
7496 ("curry-compose-reader-macros" ,sbcl-curry-compose-reader-macros)
7497 ("graph" ,sbcl-graph)
7498 ("metabang-bind" ,sbcl-metabang-bind)
7499 ("named-readtables" ,sbcl-named-readtables)))
7500 (arguments
7501 (substitute-keyword-arguments (package-arguments sbcl-graph)
7502 ((#:asd-file _ "") "graph-dot.asd")
7503 ((#:asd-system-name _ #f) "graph-dot")))
7504 (synopsis "Serialize graphs to and from DOT format")))
7505
7506 (define-public sbcl-graph-json
7507 (package
7508 (inherit sbcl-graph)
7509 (name "sbcl-graph-json")
7510 (inputs
7511 `(("alexandria" ,sbcl-alexandria)
7512 ("curry-compose-reader-macros" ,sbcl-curry-compose-reader-macros)
7513 ("graph" ,sbcl-graph)
7514 ("metabang-bind" ,sbcl-metabang-bind)
7515 ("named-readtables" ,sbcl-named-readtables)
7516 ("yason" ,sbcl-yason)))
7517 (arguments
7518 (substitute-keyword-arguments (package-arguments sbcl-graph)
7519 ((#:asd-file _ "") "graph-json.asd")
7520 ((#:asd-system-name _ #f) "graph-json")))
7521 (synopsis "Serialize graphs to and from JSON format")))
7522
7523 (define-public sbcl-trivial-indent
7524 (let ((commit "2d016941751647c6cc5bd471751c2cf68861c94a")
7525 (revision "0"))
7526 (package
7527 (name "sbcl-trivial-indent")
7528 (version (git-version "1.0.0" revision commit))
7529 (source
7530 (origin
7531 (method git-fetch)
7532 (uri
7533 (git-reference
7534 (url "https://github.com/Shinmera/trivial-indent")
7535 (commit commit)))
7536 (file-name (git-file-name name version))
7537 (sha256
7538 (base32
7539 "1sj90nqz17w4jq0ixz00gb9g5g6d2s7l8r17zdby27gxxh51w266"))))
7540 (build-system asdf-build-system/sbcl)
7541 (synopsis "Simple Common Lisp library to allow indentation hints for SWANK")
7542 (description
7543 "This library allows you to define custom indentation hints for your
7544 macros if the one recognised by SLIME automatically produces unwanted
7545 results.")
7546 (home-page "https://shinmera.github.io/trivial-indent/")
7547 (license license:zlib))))
7548
7549 (define-public cl-trivial-indent
7550 (sbcl-package->cl-source-package sbcl-trivial-indent))
7551
7552 (define-public sbcl-documentation-utils
7553 (let ((commit "98630dd5f7e36ae057fa09da3523f42ccb5d1f55")
7554 (revision "0"))
7555 (package
7556 (name "sbcl-documentation-utils")
7557 (version (git-version "1.2.0" revision commit))
7558 (source
7559 (origin
7560 (method git-fetch)
7561 (uri
7562 (git-reference
7563 (url "https://github.com/Shinmera/documentation-utils.git")
7564 (commit commit)))
7565 (file-name (git-file-name name version))
7566 (sha256
7567 (base32
7568 "098qhkqskmmrh4wix34mawf7p5c87yql28r51r75yjxj577k5idq"))))
7569 (build-system asdf-build-system/sbcl)
7570 (inputs
7571 `(("trivial-indent" ,sbcl-trivial-indent)))
7572 (synopsis "Few simple tools to document Common Lisp libraries")
7573 (description
7574 "This is a small library to help you with managing the Common Lisp
7575 docstrings for your library.")
7576 (home-page "https://shinmera.github.io/documentation-utils/")
7577 (license license:zlib))))
7578
7579 (define-public cl-documentation-utils
7580 (sbcl-package->cl-source-package sbcl-documentation-utils))
7581
7582 (define-public ecl-documentation-utils
7583 (sbcl-package->ecl-package sbcl-documentation-utils))
7584
7585 (define-public sbcl-form-fiddle
7586 (let ((commit "e0c23599dbb8cff3e83e012f3d86d0764188ad18")
7587 (revision "0"))
7588 (package
7589 (name "sbcl-form-fiddle")
7590 (version (git-version "1.1.0" revision commit))
7591 (source
7592 (origin
7593 (method git-fetch)
7594 (uri
7595 (git-reference
7596 (url "https://github.com/Shinmera/form-fiddle")
7597 (commit commit)))
7598 (file-name (git-file-name name version))
7599 (sha256
7600 (base32
7601 "041iznc9mpfyrl0sv5893ys9pbb2pvbn9g3clarqi7gsfj483jln"))))
7602 (build-system asdf-build-system/sbcl)
7603 (inputs
7604 `(("documentation-utils" ,sbcl-documentation-utils)))
7605 (synopsis "Utilities to destructure Common Lisp lambda forms")
7606 (description
7607 "Often times we need to destructure a form definition in a Common Lisp
7608 macro. This library provides a set of simple utilities to help with that.")
7609 (home-page "https://shinmera.github.io/form-fiddle/")
7610 (license license:zlib))))
7611
7612 (define-public cl-form-fiddle
7613 (sbcl-package->cl-source-package sbcl-form-fiddle))
7614
7615 (define-public sbcl-parachute
7616 (let ((commit "ca04dd8e43010a6dfffa26dbe1d62af86008d666")
7617 (revision "0"))
7618 (package
7619 (name "sbcl-parachute")
7620 (version (git-version "1.1.1" revision commit))
7621 (source
7622 (origin
7623 (method git-fetch)
7624 (uri
7625 (git-reference
7626 (url "https://github.com/Shinmera/parachute")
7627 (commit commit)))
7628 (file-name (git-file-name name version))
7629 (sha256
7630 (base32
7631 "1mvsm3r0r6a2bg75nw0q7n9vlby3ch45qjl7hnb5k1z2n5x5lh60"))))
7632 (build-system asdf-build-system/sbcl)
7633 (inputs
7634 `(("documentation-utils" ,sbcl-documentation-utils)
7635 ("form-fiddle" ,sbcl-form-fiddle)))
7636 (synopsis "Extensible and cross-compatible testing framework for Common Lisp")
7637 (description
7638 "Parachute is a simple-to-use and extensible testing framework.
7639 In Parachute, things are organised as a bunch of named tests within a package.
7640 Each test can contain a bunch of test forms that make up its body.")
7641 (home-page "https://shinmera.github.io/parachute/")
7642 (license license:zlib))))
7643
7644 (define-public cl-parachute
7645 (sbcl-package->cl-source-package sbcl-parachute))
7646
7647 (define-public sbcl-array-utils
7648 (let ((commit "f90eb9070d0b2205af51126a35033574725e5c56")
7649 (revision "0"))
7650 (package
7651 (name "sbcl-array-utils")
7652 (version (git-version "1.1.1" revision commit))
7653 (source
7654 (origin
7655 (method git-fetch)
7656 (uri
7657 (git-reference
7658 (url "https://github.com/Shinmera/array-utils")
7659 (commit commit)))
7660 (file-name (git-file-name name version))
7661 (sha256
7662 (base32
7663 "0zhwfbpr53vs1ii4sx75dz2k9yhh1xpwdqqpg8nmfndxkmhpbi3x"))))
7664 (build-system asdf-build-system/sbcl)
7665 (native-inputs
7666 `(("parachute" ,sbcl-parachute)))
7667 (inputs
7668 `(("documentation-utils" ,sbcl-documentation-utils)))
7669 (synopsis "Tiny collection of array and vector utilities for Common Lisp")
7670 (description
7671 "A miniature toolkit that contains some useful shifting/popping/pushing
7672 functions for arrays and vectors. Originally from Plump.")
7673 (home-page "https://shinmera.github.io/array-utils/")
7674 (license license:zlib))))
7675
7676 (define-public cl-array-utils
7677 (sbcl-package->cl-source-package sbcl-array-utils))
7678
7679 (define-public sbcl-plump
7680 (let ((commit "16f1231bf706cfbc54d9e55a853ca945e4452a08")
7681 (revision "0"))
7682 (package
7683 (name "sbcl-plump")
7684 (version (git-version "2.0.0" revision commit))
7685 (source
7686 (origin
7687 (method git-fetch)
7688 (uri
7689 (git-reference
7690 (url "https://github.com/Shinmera/plump")
7691 (commit commit)))
7692 (file-name (git-file-name name version))
7693 (sha256
7694 (base32
7695 "0705k8pbip51v74rccgwscwph439f2pma9f915qf1h4bhjx999ip"))))
7696 (build-system asdf-build-system/sbcl)
7697 (inputs
7698 `(("array-utils" ,sbcl-array-utils)
7699 ("documentation-utils" ,sbcl-documentation-utils)))
7700 (synopsis "Lenient XML / XHTML / HTML parser for Common Lisp")
7701 (description
7702 "Plump is a parser for HTML/XML-like documents, focusing on being
7703 lenient towards invalid markup. It can handle things like invalid attributes,
7704 bad closing tag order, unencoded entities, inexistent tag types, self-closing
7705 tags and so on. It parses documents to a class representation and offers a
7706 small set of DOM functions to manipulate it. It can be extended to parse to
7707 your own classes.")
7708 (home-page "https://shinmera.github.io/plump/")
7709 (license license:zlib))))
7710
7711 (define-public cl-plump
7712 (sbcl-package->cl-source-package sbcl-plump))
7713
7714 (define-public sbcl-antik-base
7715 (let ((commit "e4711a69b3d6bf37b5727af05c3cfd03e8428ba3")
7716 (revision "1"))
7717 (package
7718 (name "sbcl-antik-base")
7719 (version (git-version "0.0.0" revision commit))
7720 (source
7721 (origin
7722 (method git-fetch)
7723 (uri (git-reference
7724 (url "https://gitlab.common-lisp.net/antik/antik.git")
7725 (commit commit)))
7726 (file-name (git-file-name name version))
7727 (sha256
7728 (base32
7729 "047ga2c38par2xbgg4qx6hwv06qhf1c1f67as8xvir6s80lip1km"))))
7730 (build-system asdf-build-system/sbcl)
7731 (inputs
7732 `(("alexandria" ,sbcl-alexandria)
7733 ("cl-ppcre" ,sbcl-cl-ppcre)
7734 ("iterate" ,sbcl-iterate)
7735 ("metabang-bind" ,sbcl-metabang-bind)
7736 ("named-readtables" ,sbcl-named-readtables)
7737 ("split-sequence" ,sbcl-split-sequence)))
7738 (native-inputs
7739 `(("lisp-unit" ,sbcl-lisp-unit)))
7740 (synopsis "Scientific and engineering computation in Common Lisp")
7741 (description
7742 "Antik provides a foundation for scientific and engineering
7743 computation in Common Lisp. It is designed not only to facilitate
7744 numerical computations, but to permit the use of numerical computation
7745 libraries and the interchange of data and procedures, whether
7746 foreign (non-Lisp) or Lisp libraries. It is named after the
7747 Antikythera mechanism, one of the oldest examples of a scientific
7748 computer known.")
7749 (home-page "https://common-lisp.net/project/antik/")
7750 (license license:gpl3))))
7751
7752 (define-public cl-antik-base
7753 (sbcl-package->cl-source-package sbcl-antik-base))
7754
7755 (define-public ecl-antik-base
7756 (sbcl-package->ecl-package sbcl-antik-base))
7757
7758 (define-public sbcl-foreign-array
7759 (package
7760 (inherit sbcl-antik-base)
7761 (name "sbcl-foreign-array")
7762 (arguments
7763 (substitute-keyword-arguments (package-arguments sbcl-antik-base)
7764 ((#:asd-file _ "") "foreign-array.asd")
7765 ((#:asd-system-name _ #f) "foreign-array")))
7766 (inputs
7767 `(("antik-base" ,sbcl-antik-base)
7768 ("cffi" ,sbcl-cffi)
7769 ("trivial-garbage" ,sbcl-trivial-garbage)
7770 ("static-vectors" ,sbcl-static-vectors)))
7771 (synopsis "Common Lisp library providing access to foreign arrays")))
7772
7773 (define-public cl-foreign-array
7774 (sbcl-package->cl-source-package sbcl-foreign-array))
7775
7776 (define-public ecl-foreign-array
7777 (sbcl-package->ecl-package sbcl-foreign-array))
7778
7779 (define-public sbcl-physical-dimension
7780 (package
7781 (inherit sbcl-antik-base)
7782 (name "sbcl-physical-dimension")
7783 (inputs
7784 `(("fare-utils" ,sbcl-fare-utils)
7785 ("foreign-array" ,sbcl-foreign-array)
7786 ("trivial-utf-8" ,sbcl-trivial-utf-8)))
7787 (arguments
7788 (substitute-keyword-arguments (package-arguments sbcl-antik-base)
7789 ((#:asd-file _ "") "physical-dimension.asd")
7790 ((#:asd-system-name _ #f) "physical-dimension")))
7791 (synopsis
7792 "Common Lisp library providing computations with physical units")))
7793
7794 (define-public cl-physical-dimension
7795 (sbcl-package->cl-source-package sbcl-physical-dimension))
7796
7797 (define-public sbcl-science-data
7798 (package
7799 (inherit sbcl-antik-base)
7800 (name "sbcl-science-data")
7801 (inputs
7802 `(("physical-dimension" ,sbcl-physical-dimension)
7803 ("drakma" ,sbcl-drakma)))
7804 (arguments
7805 (substitute-keyword-arguments (package-arguments sbcl-antik-base)
7806 ((#:asd-file _ "") "science-data.asd")
7807 ((#:asd-system-name _ #f) "science-data")))
7808 (synopsis
7809 "Common Lisp library for scientific and engineering numerical data")))
7810
7811 (define-public cl-science-data
7812 (sbcl-package->cl-source-package sbcl-science-data))
7813
7814 (define-public sbcl-gsll
7815 (let ((commit "1a8ada22f9cf5ed7372d352b2317f4ccdb6ab308")
7816 (revision "1"))
7817 (package
7818 (name "sbcl-gsll")
7819 (version (git-version "0.0.0" revision commit))
7820 (source
7821 (origin
7822 (method git-fetch)
7823 (uri (git-reference
7824 (url "https://gitlab.common-lisp.net/antik/gsll.git")
7825 (commit commit)))
7826 (file-name (git-file-name name version))
7827 (sha256
7828 (base32
7829 "0z5nypfk26hxihb08p085644afawicrgb4xvadh3lmrn46qbjfn4"))))
7830 (build-system asdf-build-system/sbcl)
7831 (native-inputs
7832 `(("lisp-unit" ,sbcl-lisp-unit)))
7833 (inputs
7834 `(("alexandria" ,sbcl-alexandria)
7835 ("cffi-grovel" ,sbcl-cffi-grovel)
7836 ("cffi-libffi" ,sbcl-cffi-libffi)
7837 ("foreign-array" ,sbcl-foreign-array)
7838 ("gsl" ,gsl)
7839 ("metabang-bind" ,sbcl-metabang-bind)
7840 ("trivial-features" ,sbcl-trivial-features)
7841 ("trivial-garbage" ,sbcl-trivial-garbage)))
7842 (arguments
7843 `(#:tests? #f
7844 #:phases
7845 (modify-phases %standard-phases
7846 (add-after 'unpack 'fix-cffi-paths
7847 (lambda* (#:key inputs #:allow-other-keys)
7848 (substitute* "gsll.asd"
7849 ((":depends-on \\(#:foreign-array")
7850 ":depends-on (#:foreign-array #:cffi-libffi"))
7851 (substitute* "init/init.lisp"
7852 (("libgslcblas.so" all)
7853 (string-append
7854 (assoc-ref inputs "gsl") "/lib/" all)))
7855 (substitute* "init/init.lisp"
7856 (("libgsl.so" all)
7857 (string-append
7858 (assoc-ref inputs "gsl") "/lib/" all))))))))
7859 (synopsis "GNU Scientific Library for Lisp")
7860 (description
7861 "The GNU Scientific Library for Lisp (GSLL) allows the use of the
7862 GNU Scientific Library (GSL) from Common Lisp. This library provides a
7863 full range of common mathematical operations useful to scientific and
7864 engineering applications. The design of the GSLL interface is such
7865 that access to most of the GSL library is possible in a Lisp-natural
7866 way; the intent is that the user not be hampered by the restrictions
7867 of the C language in which GSL has been written. GSLL thus provides
7868 interactive use of GSL for getting quick answers, even for someone not
7869 intending to program in Lisp.")
7870 (home-page "https://common-lisp.net/project/gsll/")
7871 (license license:gpl3))))
7872
7873 (define-public cl-gsll
7874 (sbcl-package->cl-source-package sbcl-gsll))
7875
7876 (define-public sbcl-antik
7877 (package
7878 (inherit sbcl-antik-base)
7879 (name "sbcl-antik")
7880 (inputs
7881 `(("gsll" ,sbcl-gsll)
7882 ("physical-dimension" ,sbcl-physical-dimension)))
7883 (arguments
7884 (substitute-keyword-arguments (package-arguments sbcl-antik-base)
7885 ((#:asd-file _ "") "antik.asd")
7886 ((#:asd-system-name _ #f) "antik")))))
7887
7888 (define-public cl-antik
7889 (sbcl-package->cl-source-package sbcl-antik))
7890
7891 (define-public sbcl-cl-interpol
7892 (let ((commit "1fd288d861db85bc4677cff3cdd6af75fda1afb4")
7893 (revision "1"))
7894 (package
7895 (name "sbcl-cl-interpol")
7896 (version (git-version "0.2.6" revision commit))
7897 (source
7898 (origin
7899 (method git-fetch)
7900 (uri (git-reference
7901 (url "https://github.com/edicl/cl-interpol.git")
7902 (commit commit)))
7903 (file-name (git-file-name name version))
7904 (sha256
7905 (base32
7906 "1hnikak52hmcq1r5f616m6qq1108qnkw80pja950nv1fq5p0ppjn"))))
7907 (build-system asdf-build-system/sbcl)
7908 (inputs
7909 `(("cl-unicode" ,sbcl-cl-unicode)
7910 ("named-readtables" ,sbcl-named-readtables)))
7911 (native-inputs
7912 `(("flexi-streams" ,sbcl-flexi-streams)))
7913 (synopsis "String interpolation for Common Lisp")
7914 (description
7915 "CL-INTERPOL is a library for Common Lisp which modifies the
7916 reader so that you can have interpolation within strings similar to
7917 Perl or Unix Shell scripts. It also provides various ways to insert
7918 arbitrary characters into literal strings even if your editor/IDE
7919 doesn't support them.")
7920 (home-page "https://edicl.github.io/cl-interpol/")
7921 (license license:bsd-3))))
7922
7923 (define-public cl-interpol
7924 (sbcl-package->cl-source-package sbcl-cl-interpol))
7925
7926 (define-public ecl-cl-interpol
7927 (sbcl-package->ecl-package sbcl-cl-interpol))
7928
7929 (define sbcl-symbol-munger-boot0
7930 ;; There is a cyclical dependency between symbol-munger and lisp-unit2.
7931 ;; See https://github.com/AccelerationNet/symbol-munger/issues/4
7932 (let ((commit "cc2bb4b7acd454d756484aec81ba487648385fc3")
7933 (revision "1"))
7934 (package
7935 (name "sbcl-symbol-munger-boot0")
7936 (version (git-version "0.0.1" revision commit))
7937 (source
7938 (origin
7939 (method git-fetch)
7940 (uri (git-reference
7941 (url "https://github.com/AccelerationNet/symbol-munger.git")
7942 (commit commit)))
7943 (file-name (git-file-name name version))
7944 (sha256
7945 (base32
7946 "0diav5ricqsybqvbp4bkxyj3bn3v9n7xb2pqqc4vg1algsw2pyjl"))))
7947 (build-system asdf-build-system/sbcl)
7948 (arguments
7949 `(#:asd-file "symbol-munger.asd"
7950 #:asd-system-name "symbol-munger"))
7951 (inputs
7952 `(("iterate" ,sbcl-iterate)
7953 ("alexandria" ,sbcl-alexandria)))
7954 (native-inputs
7955 `(("lisp-unit" ,sbcl-lisp-unit)))
7956 (synopsis
7957 "Capitalization and spacing conversion functions for Common Lisp")
7958 (description
7959 "This is a Common Lisp library to change the capitalization and spacing
7960 of a string or a symbol. It can convert to and from Lisp, english, underscore
7961 and camel-case rules.")
7962 (home-page "https://github.com/AccelerationNet/symbol-munger")
7963 ;; The package declares a BSD license, but all of the license
7964 ;; text is MIT.
7965 ;; See https://github.com/AccelerationNet/symbol-munger/issues/5
7966 (license license:expat))))
7967
7968 (define sbcl-lisp-unit2-boot0
7969 ;; There is a cyclical dependency between symbol-munger and lisp-unit2.
7970 ;; See https://github.com/AccelerationNet/symbol-munger/issues/4
7971 (let ((commit "fb9721524d1e4e73abb223ee036d74ce14a5505c")
7972 (revision "1"))
7973 (package
7974 (name "sbcl-lisp-unit2-boot0")
7975 (version (git-version "0.2.0" revision commit))
7976 (source
7977 (origin
7978 (method git-fetch)
7979 (uri (git-reference
7980 (url "https://github.com/AccelerationNet/lisp-unit2.git")
7981 (commit commit)))
7982 (file-name (git-file-name name version))
7983 (sha256
7984 (base32
7985 "1rsqy8y0jqll6xn9a593848f5wvd5ribv4csry1ly0hmdhfnqzlp"))))
7986 (build-system asdf-build-system/sbcl)
7987 (arguments
7988 `(#:asd-file "lisp-unit2.asd"
7989 #:asd-system-name "lisp-unit2"))
7990 (inputs
7991 `(("alexandria" ,sbcl-alexandria)
7992 ("cl-interpol" ,sbcl-cl-interpol)
7993 ("iterate" ,sbcl-iterate)
7994 ("symbol-munger-boot0" ,sbcl-symbol-munger-boot0)))
7995 (synopsis "Test Framework for Common Lisp")
7996 (description
7997 "LISP-UNIT2 is a Common Lisp library that supports unit testing in the
7998 style of JUnit for Java. It is a new version of the lisp-unit library written
7999 by Chris Riesbeck.")
8000 (home-page "https://github.com/AccelerationNet/lisp-unit2")
8001 (license license:expat))))
8002
8003 (define-public sbcl-symbol-munger
8004 (let ((commit "97598d4c3c53fd5da72ab78908fbd5d8c7a13416")
8005 (revision "1"))
8006 (package
8007 (name "sbcl-symbol-munger")
8008 (version (git-version "0.0.1" revision commit))
8009 (source
8010 (origin
8011 (method git-fetch)
8012 (uri (git-reference
8013 (url "https://github.com/AccelerationNet/symbol-munger.git")
8014 (commit commit)))
8015 (file-name (git-file-name name version))
8016 (sha256
8017 (base32
8018 "0y8jywjy0ldyhp7bxf16fdvdd2qgqnd7nlhlqfpfnzxcqk4xy1km"))))
8019 (build-system asdf-build-system/sbcl)
8020 (inputs
8021 `(("alexandria" ,sbcl-alexandria)
8022 ("iterate" ,sbcl-iterate)))
8023 (native-inputs
8024 `(("lisp-unit2-boot0" ,sbcl-lisp-unit2-boot0)))
8025 (synopsis
8026 "Capitalization and spacing conversion functions for Common Lisp")
8027 (description
8028 "This is a Common Lisp library to change the capitalization and spacing
8029 of a string or a symbol. It can convert to and from Lisp, english, underscore
8030 and camel-case rules.")
8031 (home-page "https://github.com/AccelerationNet/symbol-munger")
8032 ;; The package declares a BSD license, but all of the license
8033 ;; text is MIT.
8034 ;; See https://github.com/AccelerationNet/symbol-munger/issues/5
8035 (license license:expat))))
8036
8037 (define-public cl-symbol-munger
8038 (sbcl-package->cl-source-package sbcl-symbol-munger))
8039
8040 (define-public ecl-symbol-munger
8041 (sbcl-package->ecl-package sbcl-symbol-munger))
8042
8043 (define-public sbcl-lisp-unit2
8044 (package
8045 (inherit sbcl-lisp-unit2-boot0)
8046 (name "sbcl-lisp-unit2")
8047 (inputs
8048 `(("alexandria" ,sbcl-alexandria)
8049 ("cl-interpol" ,sbcl-cl-interpol)
8050 ("iterate" ,sbcl-iterate)
8051 ("symbol-munger" ,sbcl-symbol-munger)))))
8052
8053 (define-public cl-lisp-unit2
8054 (sbcl-package->cl-source-package sbcl-lisp-unit2))
8055
8056 (define-public ecl-lisp-unit2
8057 (sbcl-package->ecl-package sbcl-lisp-unit2))
8058
8059 (define-public sbcl-cl-csv
8060 (let ((commit "3eba29c8364b033fbe0d189c2500559278b6a362")
8061 (revision "1"))
8062 (package
8063 (name "sbcl-cl-csv")
8064 (version (git-version "1.0.6" revision commit))
8065 (source
8066 (origin
8067 (method git-fetch)
8068 (uri (git-reference
8069 (url "https://github.com/AccelerationNet/cl-csv.git")
8070 (commit commit)))
8071 (file-name (git-file-name name version))
8072 (sha256
8073 (base32
8074 "07h4ni89jzx93clx453hlnnb5g53hhlcmz5hghqv6ysam48lc8g6"))))
8075 (build-system asdf-build-system/sbcl)
8076 (arguments
8077 ;; See: https://github.com/AccelerationNet/cl-csv/pull/34
8078 `(#:tests? #f))
8079 (inputs
8080 `(("alexandria" ,sbcl-alexandria)
8081 ("cl-interpol" ,sbcl-cl-interpol)
8082 ("iterate" ,sbcl-iterate)))
8083 (native-inputs
8084 `(("lisp-unit2" ,sbcl-lisp-unit2)))
8085 (synopsis "Common lisp library for comma-separated values")
8086 (description
8087 "This is a Common Lisp library providing functions to read/write CSV
8088 from/to strings, streams and files.")
8089 (home-page "https://github.com/AccelerationNet/cl-csv")
8090 (license license:bsd-3))))
8091
8092 (define-public cl-csv
8093 (sbcl-package->cl-source-package sbcl-cl-csv))
8094
8095 (define-public ecl-cl-csv
8096 (sbcl-package->ecl-package sbcl-cl-csv))
8097
8098 (define-public sbcl-external-program
8099 (let ((commit "5888b8f1fd3953feeeacecbba4384ddda584a749")
8100 (revision "1"))
8101 (package
8102 (name "sbcl-external-program")
8103 (version (git-version "0.0.6" revision commit))
8104 (source
8105 (origin
8106 (method git-fetch)
8107 (uri (git-reference
8108 (url "https://github.com/sellout/external-program.git")
8109 (commit commit)))
8110 (file-name (git-file-name name version))
8111 (sha256
8112 (base32
8113 "0vww1x3yilb3bjwg6k184vaj4vxyxw4vralhnlm6lk4xac67kc9z"))))
8114 (build-system asdf-build-system/sbcl)
8115 (inputs
8116 `(("trivial-features" ,sbcl-trivial-features)))
8117 (native-inputs
8118 `(("fiveam" ,sbcl-fiveam)))
8119 (synopsis "Common Lisp library for running external programs")
8120 (description
8121 "EXTERNAL-PROGRAM enables running programs outside the Lisp
8122 process. It is an attempt to make the RUN-PROGRAM functionality in
8123 implementations like SBCL and CCL as portable as possible without
8124 sacrificing much in the way of power.")
8125 (home-page "https://github.com/sellout/external-program")
8126 (license license:llgpl))))
8127
8128 (define-public cl-external-program
8129 (sbcl-package->cl-source-package sbcl-external-program))
8130
8131 (define-public ecl-external-program
8132 (sbcl-package->ecl-package sbcl-external-program))
8133
8134 (define sbcl-cl-ana-boot0
8135 (let ((commit "fa7cee4c50aa1c859652813049ba0da7c18a0df9")
8136 (revision "1"))
8137 (package
8138 (name "sbcl-cl-ana-boot0")
8139 (version (git-version "0.0.0" revision commit))
8140 (source
8141 (origin
8142 (method git-fetch)
8143 (uri (git-reference
8144 (url "https://github.com/ghollisjr/cl-ana.git")
8145 (commit commit)))
8146 (file-name (git-file-name name version))
8147 (sha256
8148 (base32
8149 "0mr47l57m276dbpap7irr4fcnk5fgknhf6mgv4043s8h73amk5qh"))))
8150 (build-system asdf-build-system/sbcl)
8151 (synopsis "Common Lisp data analysis library")
8152 (description
8153 "CL-ANA is a data analysis library in Common Lisp providing tabular and
8154 binned data analysis along with nonlinear least squares fitting and
8155 visualization.")
8156 (home-page "https://github.com/ghollisjr/cl-ana")
8157 (license license:gpl3))))
8158
8159 (define-public sbcl-cl-ana.pathname-utils
8160 (package
8161 (inherit sbcl-cl-ana-boot0)
8162 (name "sbcl-cl-ana.pathname-utils")
8163 (arguments
8164 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8165 ((#:asd-file _ "") "pathname-utils/cl-ana.pathname-utils.asd")
8166 ((#:asd-system-name _ #f) "cl-ana.pathname-utils")))))
8167
8168 (define-public cl-ana.pathname-utils
8169 (sbcl-package->cl-source-package sbcl-cl-ana.pathname-utils))
8170
8171 (define-public ecl-cl-ana.pathname-utils
8172 (sbcl-package->ecl-package sbcl-cl-ana.pathname-utils))
8173
8174 (define-public sbcl-cl-ana.package-utils
8175 (package
8176 (inherit sbcl-cl-ana-boot0)
8177 (name "sbcl-cl-ana.package-utils")
8178 (inputs
8179 `(("alexandria" ,sbcl-alexandria)))
8180 (arguments
8181 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8182 ((#:asd-file _ "") "package-utils/cl-ana.package-utils.asd")
8183 ((#:asd-system-name _ #f) "cl-ana.package-utils")))))
8184
8185 (define-public cl-ana.package-utils
8186 (sbcl-package->cl-source-package sbcl-cl-ana.package-utils))
8187
8188 (define-public ecl-cl-ana.package-utils
8189 (sbcl-package->ecl-package sbcl-cl-ana.package-utils))
8190
8191 (define-public sbcl-cl-ana.string-utils
8192 (package
8193 (inherit sbcl-cl-ana-boot0)
8194 (name "sbcl-cl-ana.string-utils")
8195 (inputs
8196 `(("split-sequence" ,sbcl-split-sequence)))
8197 (arguments
8198 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8199 ((#:asd-file _ "") "string-utils/cl-ana.string-utils.asd")
8200 ((#:asd-system-name _ #f) "cl-ana.string-utils")))))
8201
8202 (define-public cl-ana.string-utils
8203 (sbcl-package->cl-source-package sbcl-cl-ana.string-utils))
8204
8205 (define-public ecl-cl-ana.string-utils
8206 (sbcl-package->ecl-package sbcl-cl-ana.string-utils))
8207
8208 (define-public sbcl-cl-ana.functional-utils
8209 (package
8210 (inherit sbcl-cl-ana-boot0)
8211 (name "sbcl-cl-ana.functional-utils")
8212 (arguments
8213 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8214 ((#:asd-file _ "") "functional-utils/cl-ana.functional-utils.asd")
8215 ((#:asd-system-name _ #f) "cl-ana.functional-utils")))))
8216
8217 (define-public cl-ana.functional-utils
8218 (sbcl-package->cl-source-package sbcl-cl-ana.functional-utils))
8219
8220 (define-public ecl-cl-ana.functional-utils
8221 (sbcl-package->ecl-package sbcl-cl-ana.functional-utils))
8222
8223 (define-public sbcl-cl-ana.list-utils
8224 (package
8225 (inherit sbcl-cl-ana-boot0)
8226 (name "sbcl-cl-ana.list-utils")
8227 (inputs
8228 `(("alexandria" ,sbcl-alexandria)
8229 ("cl-ana.functional-utils" ,sbcl-cl-ana.functional-utils)
8230 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)))
8231 (arguments
8232 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8233 ((#:asd-file _ "") "list-utils/cl-ana.list-utils.asd")
8234 ((#:asd-system-name _ #f) "cl-ana.list-utils")))))
8235
8236 (define-public cl-ana.list-utils
8237 (sbcl-package->cl-source-package sbcl-cl-ana.list-utils))
8238
8239 (define-public ecl-cl-ana.list-utils
8240 (sbcl-package->ecl-package sbcl-cl-ana.list-utils))
8241
8242 (define-public sbcl-cl-ana.generic-math
8243 (package
8244 (inherit sbcl-cl-ana-boot0)
8245 (name "sbcl-cl-ana.generic-math")
8246 (inputs
8247 `(("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8248 ("cl-ana.package-utils" ,sbcl-cl-ana.package-utils)))
8249 (arguments
8250 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8251 ((#:asd-file _ "") "generic-math/cl-ana.generic-math.asd")
8252 ((#:asd-system-name _ #f) "cl-ana.generic-math")))))
8253
8254 (define-public cl-ana.generic-math
8255 (sbcl-package->cl-source-package sbcl-cl-ana.generic-math))
8256
8257 (define-public ecl-cl-ana.generic-math
8258 (sbcl-package->ecl-package sbcl-cl-ana.generic-math))
8259
8260 (define-public sbcl-cl-ana.math-functions
8261 (package
8262 (inherit sbcl-cl-ana-boot0)
8263 (name "sbcl-cl-ana.math-functions")
8264 (inputs
8265 `(("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
8266 ("gsll" ,sbcl-gsll)))
8267 (arguments
8268 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8269 ((#:asd-file _ "") "math-functions/cl-ana.math-functions.asd")
8270 ((#:asd-system-name _ #f) "cl-ana.math-functions")))))
8271
8272 (define-public cl-ana.math-functions
8273 (sbcl-package->cl-source-package sbcl-cl-ana.math-functions))
8274
8275 (define-public sbcl-cl-ana.calculus
8276 (package
8277 (inherit sbcl-cl-ana-boot0)
8278 (name "sbcl-cl-ana.calculus")
8279 (inputs
8280 `(("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)))
8281 (arguments
8282 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8283 ((#:asd-file _ "") "calculus/cl-ana.calculus.asd")
8284 ((#:asd-system-name _ #f) "cl-ana.calculus")))))
8285
8286 (define-public cl-ana.calculus
8287 (sbcl-package->cl-source-package sbcl-cl-ana.calculus))
8288
8289 (define-public ecl-cl-ana.calculus
8290 (sbcl-package->ecl-package sbcl-cl-ana.calculus))
8291
8292 (define-public sbcl-cl-ana.symbol-utils
8293 (package
8294 (inherit sbcl-cl-ana-boot0)
8295 (name "sbcl-cl-ana.symbol-utils")
8296 (inputs
8297 `(("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)))
8298 (arguments
8299 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8300 ((#:asd-file _ "") "symbol-utils/cl-ana.symbol-utils.asd")
8301 ((#:asd-system-name _ #f) "cl-ana.symbol-utils")))))
8302
8303 (define-public cl-ana.symbol-utils
8304 (sbcl-package->cl-source-package sbcl-cl-ana.symbol-utils))
8305
8306 (define-public ecl-cl-ana.symbol-utils
8307 (sbcl-package->ecl-package sbcl-cl-ana.symbol-utils))
8308
8309 (define-public sbcl-cl-ana.macro-utils
8310 (package
8311 (inherit sbcl-cl-ana-boot0)
8312 (name "sbcl-cl-ana.macro-utils")
8313 (inputs
8314 `(("alexandria" ,sbcl-alexandria)
8315 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8316 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
8317 ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)
8318 ("split-sequence" ,sbcl-split-sequence)))
8319 (arguments
8320 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8321 ((#:asd-file _ "") "macro-utils/cl-ana.macro-utils.asd")
8322 ((#:asd-system-name _ #f) "cl-ana.macro-utils")))))
8323
8324 (define-public cl-ana.macro-utils
8325 (sbcl-package->cl-source-package sbcl-cl-ana.macro-utils))
8326
8327 (define-public ecl-cl-ana.macro-utils
8328 (sbcl-package->ecl-package sbcl-cl-ana.macro-utils))
8329
8330 (define-public sbcl-cl-ana.binary-tree
8331 (package
8332 (inherit sbcl-cl-ana-boot0)
8333 (name "sbcl-cl-ana.binary-tree")
8334 (inputs
8335 `(("cl-ana.functional-utils" ,sbcl-cl-ana.functional-utils)
8336 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8337 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)))
8338 (arguments
8339 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8340 ((#:asd-file _ "") "binary-tree/cl-ana.binary-tree.asd")
8341 ((#:asd-system-name _ #f) "cl-ana.binary-tree")))))
8342
8343 (define-public cl-ana.binary-tree
8344 (sbcl-package->cl-source-package sbcl-cl-ana.binary-tree))
8345
8346 (define-public ecl-cl-ana.binary-tree
8347 (sbcl-package->ecl-package sbcl-cl-ana.binary-tree))
8348
8349 (define-public sbcl-cl-ana.tensor
8350 (package
8351 (inherit sbcl-cl-ana-boot0)
8352 (name "sbcl-cl-ana.tensor")
8353 (inputs
8354 `(("alexandria" ,sbcl-alexandria)
8355 ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
8356 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8357 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
8358 ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)))
8359 (arguments
8360 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8361 ((#:asd-file _ "") "tensor/cl-ana.tensor.asd")
8362 ((#:asd-system-name _ #f) "cl-ana.tensor")))))
8363
8364 (define-public cl-ana.tensor
8365 (sbcl-package->cl-source-package sbcl-cl-ana.tensor))
8366
8367 (define-public ecl-cl-ana.tensor
8368 (sbcl-package->ecl-package sbcl-cl-ana.tensor))
8369
8370 (define-public sbcl-cl-ana.error-propogation
8371 (package
8372 (inherit sbcl-cl-ana-boot0)
8373 (name "sbcl-cl-ana.error-propogation")
8374 (inputs
8375 `(("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
8376 ("cl-ana.math-functions" ,sbcl-cl-ana.math-functions)))
8377 (arguments
8378 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8379 ((#:asd-file _ "") "error-propogation/cl-ana.error-propogation.asd")
8380 ((#:asd-system-name _ #f) "cl-ana.error-propogation")))))
8381
8382 (define-public cl-ana.error-propogation
8383 (sbcl-package->cl-source-package sbcl-cl-ana.error-propogation))
8384
8385 (define-public sbcl-cl-ana.quantity
8386 (package
8387 (inherit sbcl-cl-ana-boot0)
8388 (name "sbcl-cl-ana.quantity")
8389 (inputs
8390 `(("alexandria" ,sbcl-alexandria)
8391 ("cl-ana.error-propogation" ,sbcl-cl-ana.error-propogation)
8392 ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
8393 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8394 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
8395 ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)))
8396 (arguments
8397 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8398 ((#:asd-file _ "") "quantity/cl-ana.quantity.asd")
8399 ((#:asd-system-name _ #f) "cl-ana.quantity")))))
8400
8401 (define-public cl-ana.quantity
8402 (sbcl-package->cl-source-package sbcl-cl-ana.quantity))
8403
8404 (define-public sbcl-cl-ana.table
8405 (package
8406 (inherit sbcl-cl-ana-boot0)
8407 (name "sbcl-cl-ana.table")
8408 (inputs
8409 `(("alexandria" ,sbcl-alexandria)
8410 ("cl-ana.functional-utils" ,sbcl-cl-ana.functional-utils)
8411 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8412 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
8413 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
8414 ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)))
8415 (arguments
8416 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8417 ((#:asd-file _ "") "table/cl-ana.table.asd")
8418 ((#:asd-system-name _ #f) "cl-ana.table")))))
8419
8420 (define-public cl-ana.table
8421 (sbcl-package->cl-source-package sbcl-cl-ana.table))
8422
8423 (define-public ecl-cl-ana.table
8424 (sbcl-package->ecl-package sbcl-cl-ana.table))
8425
8426 (define-public sbcl-cl-ana.table-utils
8427 (package
8428 (inherit sbcl-cl-ana-boot0)
8429 (name "sbcl-cl-ana.table-utils")
8430 (inputs
8431 `(("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
8432 ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)
8433 ("cl-ana.table" ,sbcl-cl-ana.table)))
8434 (arguments
8435 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8436 ((#:asd-file _ "") "table-utils/cl-ana.table-utils.asd")
8437 ((#:asd-system-name _ #f) "cl-ana.table-utils")))))
8438
8439 (define-public cl-ana.table-utils
8440 (sbcl-package->cl-source-package sbcl-cl-ana.table-utils))
8441
8442 (define-public ecl-cl-ana.table-utils
8443 (sbcl-package->ecl-package sbcl-cl-ana.table-utils))
8444
8445 (define-public sbcl-cl-ana.hdf-cffi
8446 (package
8447 (inherit sbcl-cl-ana-boot0)
8448 (name "sbcl-cl-ana.hdf-cffi")
8449 (inputs
8450 `(("cffi" ,sbcl-cffi)
8451 ("hdf5" ,hdf5-parallel-openmpi)))
8452 (arguments
8453 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8454 ((#:asd-file _ "") "hdf-cffi/cl-ana.hdf-cffi.asd")
8455 ((#:asd-system-name _ #f) "cl-ana.hdf-cffi")
8456 ((#:phases phases '%standard-phases)
8457 `(modify-phases ,phases
8458 (add-after 'unpack 'fix-paths
8459 (lambda* (#:key inputs #:allow-other-keys)
8460 (substitute* "hdf-cffi/hdf-cffi.lisp"
8461 (("/usr/lib/i386-linux-gnu/hdf5/serial/libhdf5.so")
8462 (string-append
8463 (assoc-ref inputs "hdf5")
8464 "/lib/libhdf5.so")))))))))))
8465
8466 (define-public cl-ana.hdf-cffi
8467 (sbcl-package->cl-source-package sbcl-cl-ana.hdf-cffi))
8468
8469 (define-public ecl-cl-ana.hdf-cffi
8470 (sbcl-package->ecl-package sbcl-cl-ana.hdf-cffi))
8471
8472 (define-public sbcl-cl-ana.int-char
8473 (package
8474 (inherit sbcl-cl-ana-boot0)
8475 (name "sbcl-cl-ana.int-char")
8476 (arguments
8477 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8478 ((#:asd-file _ "") "int-char/cl-ana.int-char.asd")
8479 ((#:asd-system-name _ #f) "cl-ana.int-char")))))
8480
8481 (define-public cl-ana.int-char
8482 (sbcl-package->cl-source-package sbcl-cl-ana.int-char))
8483
8484 (define-public ecl-cl-ana.int-char
8485 (sbcl-package->ecl-package sbcl-cl-ana.int-char))
8486
8487 (define-public sbcl-cl-ana.memoization
8488 (package
8489 (inherit sbcl-cl-ana-boot0)
8490 (name "sbcl-cl-ana.memoization")
8491 (inputs
8492 `(("alexandria" ,sbcl-alexandria)))
8493 (arguments
8494 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8495 ((#:asd-file _ "") "memoization/cl-ana.memoization.asd")
8496 ((#:asd-system-name _ #f) "cl-ana.memoization")))))
8497
8498 (define-public cl-ana.memoization
8499 (sbcl-package->cl-source-package sbcl-cl-ana.memoization))
8500
8501 (define-public ecl-cl-ana.memoization
8502 (sbcl-package->ecl-package sbcl-cl-ana.memoization))
8503
8504 (define-public sbcl-cl-ana.typespec
8505 (package
8506 (inherit sbcl-cl-ana-boot0)
8507 (name "sbcl-cl-ana.typespec")
8508 (inputs
8509 `(("alexandria" ,sbcl-alexandria)
8510 ("cffi" ,sbcl-cffi)
8511 ("cl-ana.int-char" ,sbcl-cl-ana.int-char)
8512 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8513 ("cl-ana.memoization" ,sbcl-cl-ana.memoization)
8514 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
8515 ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)
8516 ("cl-ana.tensor" ,sbcl-cl-ana.tensor)))
8517 (arguments
8518 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8519 ((#:asd-file _ "") "typespec/cl-ana.typespec.asd")
8520 ((#:asd-system-name _ #f) "cl-ana.typespec")))))
8521
8522 (define-public cl-ana.typespec
8523 (sbcl-package->cl-source-package sbcl-cl-ana.typespec))
8524
8525 (define-public ecl-cl-ana.typespec
8526 (sbcl-package->ecl-package sbcl-cl-ana.typespec))
8527
8528 (define-public sbcl-cl-ana.hdf-typespec
8529 (package
8530 (inherit sbcl-cl-ana-boot0)
8531 (name "sbcl-cl-ana.hdf-typespec")
8532 (inputs
8533 `(("alexandria" ,sbcl-alexandria)
8534 ("cffi" ,sbcl-cffi)
8535 ("cl-ana.hdf-cffi" ,sbcl-cl-ana.hdf-cffi)
8536 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8537 ("cl-ana.memoization" ,sbcl-cl-ana.memoization)
8538 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
8539 ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)
8540 ("cl-ana.typespec" ,sbcl-cl-ana.typespec)))
8541 (arguments
8542 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8543 ((#:asd-file _ "") "hdf-typespec/cl-ana.hdf-typespec.asd")
8544 ((#:asd-system-name _ #f) "cl-ana.hdf-typespec")))))
8545
8546 (define-public cl-ana.hdf-typespec
8547 (sbcl-package->cl-source-package sbcl-cl-ana.hdf-typespec))
8548
8549 (define-public ecl-cl-ana.hdf-typespec
8550 (sbcl-package->ecl-package sbcl-cl-ana.hdf-typespec))
8551
8552 (define-public sbcl-cl-ana.hdf-utils
8553 (package
8554 (inherit sbcl-cl-ana-boot0)
8555 (name "sbcl-cl-ana.hdf-utils")
8556 (inputs
8557 `(("alexandria" ,sbcl-alexandria)
8558 ("cffi" ,sbcl-cffi)
8559 ("cl-ana.hdf-cffi" ,sbcl-cl-ana.hdf-cffi)
8560 ("cl-ana.hdf-typespec" ,sbcl-cl-ana.hdf-typespec)
8561 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
8562 ("cl-ana.memoization" ,sbcl-cl-ana.memoization)
8563 ("cl-ana.pathname-utils" ,sbcl-cl-ana.pathname-utils)
8564 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
8565 ("cl-ana.typespec" ,sbcl-cl-ana.typespec)))
8566 (arguments
8567 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8568 ((#:asd-file _ "") "hdf-utils/cl-ana.hdf-utils.asd")
8569 ((#:asd-system-name _ #f) "cl-ana.hdf-utils")))))
8570
8571 (define-public cl-ana.hdf-utils
8572 (sbcl-package->cl-source-package sbcl-cl-ana.hdf-utils))
8573
8574 (define-public ecl-cl-ana.hdf-utils
8575 (sbcl-package->ecl-package sbcl-cl-ana.hdf-utils))
8576
8577 (define-public sbcl-cl-ana.typed-table
8578 (package
8579 (inherit sbcl-cl-ana-boot0)
8580 (name "sbcl-cl-ana.typed-table")
8581 (inputs
8582 `(("alexandria" ,sbcl-alexandria)
8583 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8584 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
8585 ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)
8586 ("cl-ana.table" ,sbcl-cl-ana.table)
8587 ("cl-ana.typespec" ,sbcl-cl-ana.typespec)))
8588 (arguments
8589 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8590 ((#:asd-file _ "") "typed-table/cl-ana.typed-table.asd")
8591 ((#:asd-system-name _ #f) "cl-ana.typed-table")))))
8592
8593 (define-public cl-ana.typed-table
8594 (sbcl-package->cl-source-package sbcl-cl-ana.typed-table))
8595
8596 (define-public ecl-cl-ana.typed-table
8597 (sbcl-package->ecl-package sbcl-cl-ana.typed-table))
8598
8599 (define-public sbcl-cl-ana.hdf-table
8600 (package
8601 (inherit sbcl-cl-ana-boot0)
8602 (name "sbcl-cl-ana.hdf-table")
8603 (inputs
8604 `(("alexandria" ,sbcl-alexandria)
8605 ("cl-ana.binary-tree" ,sbcl-cl-ana.binary-tree)
8606 ("cl-ana.hdf-cffi" ,sbcl-cl-ana.hdf-cffi)
8607 ("cl-ana.hdf-typespec" ,sbcl-cl-ana.hdf-typespec)
8608 ("cl-ana.hdf-utils" ,sbcl-cl-ana.hdf-utils)
8609 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8610 ("cl-ana.memoization" ,sbcl-cl-ana.memoization)
8611 ("cl-ana.table" ,sbcl-cl-ana.table)
8612 ("cl-ana.typed-table" ,sbcl-cl-ana.typed-table)
8613 ("cl-ana.typespec" ,sbcl-cl-ana.typespec)))
8614 (arguments
8615 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8616 ((#:asd-file _ "") "hdf-table/cl-ana.hdf-table.asd")
8617 ((#:asd-system-name _ #f) "cl-ana.hdf-table")))))
8618
8619 (define-public cl-ana.hdf-table
8620 (sbcl-package->cl-source-package sbcl-cl-ana.hdf-table))
8621
8622 (define-public ecl-cl-ana.hdf-table
8623 (sbcl-package->ecl-package sbcl-cl-ana.hdf-table))
8624
8625 (define-public sbcl-cl-ana.gsl-cffi
8626 (package
8627 (inherit sbcl-cl-ana-boot0)
8628 (name "sbcl-cl-ana.gsl-cffi")
8629 (inputs
8630 `(("cffi" ,sbcl-cffi)
8631 ("gsl" ,gsl)))
8632 (arguments
8633 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8634 ((#:asd-file _ "") "gsl-cffi/cl-ana.gsl-cffi.asd")
8635 ((#:asd-system-name _ #f) "cl-ana.gsl-cffi")
8636 ((#:phases phases '%standard-phases)
8637 `(modify-phases ,phases
8638 (add-after 'unpack 'fix-paths
8639 (lambda* (#:key inputs #:allow-other-keys)
8640 (substitute* "gsl-cffi/gsl-cffi.lisp"
8641 (("define-foreign-library gsl-cffi" all)
8642 (string-append all " (:unix "
8643 (assoc-ref inputs "gsl")
8644 "/lib/libgsl.so)")))))))))))
8645
8646 (define-public cl-ana.gsl-cffi
8647 (sbcl-package->cl-source-package sbcl-cl-ana.gsl-cffi))
8648
8649 (define-public ecl-cl-ana.gsl-cffi
8650 (sbcl-package->ecl-package sbcl-cl-ana.gsl-cffi))
8651
8652 (define-public sbcl-cl-ana.ntuple-table
8653 (package
8654 (inherit sbcl-cl-ana-boot0)
8655 (name "sbcl-cl-ana.ntuple-table")
8656 (inputs
8657 `(("alexandria" ,sbcl-alexandria)
8658 ("cffi" ,sbcl-cffi)
8659 ("cl-ana.gsl-cffi" ,sbcl-cl-ana.gsl-cffi)
8660 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8661 ("cl-ana.table" ,sbcl-cl-ana.table)
8662 ("cl-ana.typed-table" ,sbcl-cl-ana.typed-table)
8663 ("cl-ana.typespec" ,sbcl-cl-ana.typespec)
8664 ("gsll" ,sbcl-gsll)))
8665 (arguments
8666 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8667 ((#:asd-file _ "") "ntuple-table/cl-ana.ntuple-table.asd")
8668 ((#:asd-system-name _ #f) "cl-ana.ntuple-table")))))
8669
8670 (define-public cl-ana.ntuple-table
8671 (sbcl-package->cl-source-package sbcl-cl-ana.ntuple-table))
8672
8673 (define-public sbcl-cl-ana.csv-table
8674 (package
8675 (inherit sbcl-cl-ana-boot0)
8676 (name "sbcl-cl-ana.csv-table")
8677 (inputs
8678 `(("alexandria" ,sbcl-alexandria)
8679 ("antik" ,sbcl-antik)
8680 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8681 ("cl-ana.table" ,sbcl-cl-ana.table)
8682 ("cl-csv" ,sbcl-cl-csv)
8683 ("iterate" ,sbcl-iterate)))
8684 (arguments
8685 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8686 ((#:asd-file _ "") "csv-table/cl-ana.csv-table.asd")
8687 ((#:asd-system-name _ #f) "cl-ana.csv-table")))))
8688
8689 (define-public cl-ana.csv-table
8690 (sbcl-package->cl-source-package sbcl-cl-ana.csv-table))
8691
8692 (define-public sbcl-cl-ana.reusable-table
8693 (package
8694 (inherit sbcl-cl-ana-boot0)
8695 (name "sbcl-cl-ana.reusable-table")
8696 (inputs
8697 `(("alexandria" ,sbcl-alexandria)
8698 ("cl-ana.table" ,sbcl-cl-ana.table)))
8699 (arguments
8700 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8701 ((#:asd-file _ "") "reusable-table/cl-ana.reusable-table.asd")
8702 ((#:asd-system-name _ #f) "cl-ana.reusable-table")))))
8703
8704 (define-public cl-ana.reusable-table
8705 (sbcl-package->cl-source-package sbcl-cl-ana.reusable-table))
8706
8707 (define-public ecl-cl-ana.reusable-table
8708 (sbcl-package->ecl-package sbcl-cl-ana.reusable-table))
8709
8710 (define-public sbcl-cl-ana.linear-algebra
8711 (package
8712 (inherit sbcl-cl-ana-boot0)
8713 (name "sbcl-cl-ana.linear-algebra")
8714 (inputs
8715 `(("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
8716 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8717 ("cl-ana.math-functions" ,sbcl-cl-ana.math-functions)
8718 ("cl-ana.tensor" ,sbcl-cl-ana.tensor)
8719 ("gsll" ,sbcl-gsll)))
8720 (arguments
8721 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8722 ((#:asd-file _ "") "linear-algebra/cl-ana.linear-algebra.asd")
8723 ((#:asd-system-name _ #f) "cl-ana.linear-algebra")))))
8724
8725 (define-public cl-ana.linear-algebra
8726 (sbcl-package->cl-source-package sbcl-cl-ana.linear-algebra))
8727
8728 (define-public sbcl-cl-ana.lorentz
8729 (package
8730 (inherit sbcl-cl-ana-boot0)
8731 (name "sbcl-cl-ana.lorentz")
8732 (inputs
8733 `(("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
8734 ("cl-ana.linear-algebra" ,sbcl-cl-ana.linear-algebra)
8735 ("cl-ana.tensor" ,sbcl-cl-ana.tensor)
8736 ("iterate" ,sbcl-iterate)))
8737 (arguments
8738 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8739 ((#:asd-file _ "") "lorentz/cl-ana.lorentz.asd")
8740 ((#:asd-system-name _ #f) "cl-ana.lorentz")))))
8741
8742 (define-public cl-ana.lorentz
8743 (sbcl-package->cl-source-package sbcl-cl-ana.lorentz))
8744
8745 (define-public sbcl-cl-ana.clos-utils
8746 (package
8747 (inherit sbcl-cl-ana-boot0)
8748 (name "sbcl-cl-ana.clos-utils")
8749 (inputs
8750 `(("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8751 ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)
8752 ("cl-ana.tensor" ,sbcl-cl-ana.tensor)
8753 ("closer-mop" ,sbcl-closer-mop)))
8754 (arguments
8755 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8756 ((#:asd-file _ "") "clos-utils/cl-ana.clos-utils.asd")
8757 ((#:asd-system-name _ #f) "cl-ana.clos-utils")))))
8758
8759 (define-public cl-ana.clos-utils
8760 (sbcl-package->cl-source-package sbcl-cl-ana.clos-utils))
8761
8762 (define-public ecl-cl-ana.clos-utils
8763 (sbcl-package->ecl-package sbcl-cl-ana.clos-utils))
8764
8765 (define-public sbcl-cl-ana.hash-table-utils
8766 (package
8767 (inherit sbcl-cl-ana-boot0)
8768 (name "sbcl-cl-ana.hash-table-utils")
8769 (arguments
8770 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8771 ((#:asd-file _ "") "hash-table-utils/cl-ana.hash-table-utils.asd")
8772 ((#:asd-system-name _ #f) "cl-ana.hash-table-utils")))))
8773
8774 (define-public cl-ana.hash-table-utils
8775 (sbcl-package->cl-source-package sbcl-cl-ana.hash-table-utils))
8776
8777 (define-public ecl-cl-ana.hash-table-utils
8778 (sbcl-package->ecl-package sbcl-cl-ana.hash-table-utils))
8779
8780 (define-public sbcl-cl-ana.map
8781 (package
8782 (inherit sbcl-cl-ana-boot0)
8783 (name "sbcl-cl-ana.map")
8784 (inputs
8785 `(("cl-ana.hash-table-utils" ,sbcl-cl-ana.hash-table-utils)))
8786 (arguments
8787 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8788 ((#:asd-file _ "") "map/cl-ana.map.asd")
8789 ((#:asd-system-name _ #f) "cl-ana.map")))))
8790
8791 (define-public cl-ana.map
8792 (sbcl-package->cl-source-package sbcl-cl-ana.map))
8793
8794 (define-public ecl-cl-ana.map
8795 (sbcl-package->ecl-package sbcl-cl-ana.map))
8796
8797 (define-public sbcl-cl-ana.fitting
8798 (package
8799 (inherit sbcl-cl-ana-boot0)
8800 (name "sbcl-cl-ana.fitting")
8801 (inputs
8802 `(("alexandria" ,sbcl-alexandria)
8803 ("cl-ana.error-propogation" ,sbcl-cl-ana.error-propogation)
8804 ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
8805 ("cl-ana.map" ,sbcl-cl-ana.map)
8806 ("cl-ana.math-functions" ,sbcl-cl-ana.math-functions)
8807 ("gsll" ,sbcl-gsll)))
8808 (arguments
8809 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8810 ((#:asd-file _ "") "fitting/cl-ana.fitting.asd")
8811 ((#:asd-system-name _ #f) "cl-ana.fitting")))))
8812
8813 (define-public cl-ana.fitting
8814 (sbcl-package->cl-source-package sbcl-cl-ana.fitting))
8815
8816 (define-public sbcl-cl-ana.histogram
8817 (package
8818 (inherit sbcl-cl-ana-boot0)
8819 (name "sbcl-cl-ana.histogram")
8820 (inputs
8821 `(("alexandria" ,sbcl-alexandria)
8822 ("iterate" ,sbcl-iterate)
8823 ("cl-ana.binary-tree" ,sbcl-cl-ana.binary-tree)
8824 ("cl-ana.clos-utils" ,sbcl-cl-ana.clos-utils)
8825 ("cl-ana.fitting" ,sbcl-cl-ana.fitting)
8826 ("cl-ana.functional-utils" ,sbcl-cl-ana.functional-utils)
8827 ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
8828 ("cl-ana.hash-table-utils" ,sbcl-cl-ana.hash-table-utils)
8829 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8830 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
8831 ("cl-ana.map" ,sbcl-cl-ana.map)
8832 ("cl-ana.tensor" ,sbcl-cl-ana.tensor)))
8833 (arguments
8834 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8835 ((#:asd-file _ "") "histogram/cl-ana.histogram.asd")
8836 ((#:asd-system-name _ #f) "cl-ana.histogram")))))
8837
8838 (define-public cl-ana.histogram
8839 (sbcl-package->cl-source-package sbcl-cl-ana.histogram))
8840
8841 (define-public sbcl-cl-ana.file-utils
8842 (package
8843 (inherit sbcl-cl-ana-boot0)
8844 (name "sbcl-cl-ana.file-utils")
8845 (inputs
8846 `(("external-program" ,sbcl-external-program)
8847 ("split-sequence" ,sbcl-split-sequence)))
8848 (arguments
8849 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8850 ((#:asd-file _ "") "file-utils/cl-ana.file-utils.asd")
8851 ((#:asd-system-name _ #f) "cl-ana.file-utils")))))
8852
8853 (define-public cl-ana.file-utils
8854 (sbcl-package->cl-source-package sbcl-cl-ana.file-utils))
8855
8856 (define-public ecl-cl-ana.file-utils
8857 (sbcl-package->ecl-package sbcl-cl-ana.file-utils))
8858
8859 (define-public sbcl-cl-ana.statistics
8860 (package
8861 (inherit sbcl-cl-ana-boot0)
8862 (name "sbcl-cl-ana.statistics")
8863 (inputs
8864 `(("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
8865 ("cl-ana.histogram" ,sbcl-cl-ana.histogram)
8866 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8867 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
8868 ("cl-ana.map" ,sbcl-cl-ana.map)))
8869 (arguments
8870 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8871 ((#:asd-file _ "") "statistics/cl-ana.statistics.asd")
8872 ((#:asd-system-name _ #f) "cl-ana.statistics")))))
8873
8874 (define-public cl-ana.statistics
8875 (sbcl-package->cl-source-package sbcl-cl-ana.statistics))
8876
8877 (define-public sbcl-cl-ana.gnuplot-interface
8878 (package
8879 (inherit sbcl-cl-ana-boot0)
8880 (name "sbcl-cl-ana.gnuplot-interface")
8881 (inputs
8882 `(("external-program" ,sbcl-external-program)))
8883 (arguments
8884 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8885 ((#:asd-file _ "") "gnuplot-interface/cl-ana.gnuplot-interface.asd")
8886 ((#:asd-system-name _ #f) "cl-ana.gnuplot-interface")))))
8887
8888 (define-public cl-ana.gnuplot-interface
8889 (sbcl-package->cl-source-package sbcl-cl-ana.gnuplot-interface))
8890
8891 (define-public ecl-cl-ana.gnuplot-interface
8892 (sbcl-package->ecl-package sbcl-cl-ana.gnuplot-interface))
8893
8894 (define-public sbcl-cl-ana.plotting
8895 (package
8896 (inherit sbcl-cl-ana-boot0)
8897 (name "sbcl-cl-ana.plotting")
8898 (inputs
8899 `(("alexandria" ,sbcl-alexandria)
8900 ("cl-ana.error-propogation" ,sbcl-cl-ana.error-propogation)
8901 ("cl-ana.functional-utils" ,sbcl-cl-ana.functional-utils)
8902 ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
8903 ("cl-ana.gnuplot-interface" ,sbcl-cl-ana.gnuplot-interface)
8904 ("cl-ana.histogram" ,sbcl-cl-ana.histogram)
8905 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8906 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
8907 ("cl-ana.map" ,sbcl-cl-ana.map)
8908 ("cl-ana.math-functions" ,sbcl-cl-ana.math-functions)
8909 ("cl-ana.pathname-utils" ,sbcl-cl-ana.pathname-utils)
8910 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
8911 ("cl-ana.tensor" ,sbcl-cl-ana.tensor)
8912 ("external-program" ,sbcl-external-program)
8913 ("split-sequence" ,sbcl-split-sequence)))
8914 (arguments
8915 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8916 ((#:asd-file _ "") "plotting/cl-ana.plotting.asd")
8917 ((#:asd-system-name _ #f) "cl-ana.plotting")))))
8918
8919 (define-public cl-ana.plotting
8920 (sbcl-package->cl-source-package sbcl-cl-ana.plotting))
8921
8922 (define-public sbcl-cl-ana.table-viewing
8923 (package
8924 (inherit sbcl-cl-ana-boot0)
8925 (name "sbcl-cl-ana.table-viewing")
8926 (inputs
8927 `(("alexandria" ,sbcl-alexandria)
8928 ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
8929 ("cl-ana.histogram" ,sbcl-cl-ana.histogram)
8930 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
8931 ("cl-ana.plotting" ,sbcl-cl-ana.plotting)
8932 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
8933 ("cl-ana.table" ,sbcl-cl-ana.table)))
8934 (arguments
8935 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8936 ((#:asd-file _ "") "table-viewing/cl-ana.table-viewing.asd")
8937 ((#:asd-system-name _ #f) "cl-ana.table-viewing")))))
8938
8939 (define-public cl-ana.table-viewing
8940 (sbcl-package->cl-source-package sbcl-cl-ana.table-viewing))
8941
8942 (define-public sbcl-cl-ana.serialization
8943 (package
8944 (inherit sbcl-cl-ana-boot0)
8945 (name "sbcl-cl-ana.serialization")
8946 (inputs
8947 `(("cl-ana.error-propogation" ,sbcl-cl-ana.error-propogation)
8948 ("cl-ana.hdf-utils" ,sbcl-cl-ana.hdf-utils)
8949 ("cl-ana.hdf-table" ,sbcl-cl-ana.hdf-table)
8950 ("cl-ana.histogram" ,sbcl-cl-ana.histogram)
8951 ("cl-ana.int-char" ,sbcl-cl-ana.int-char)
8952 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
8953 ("cl-ana.typespec" ,sbcl-cl-ana.typespec)))
8954 (arguments
8955 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8956 ((#:asd-file _ "") "serialization/cl-ana.serialization.asd")
8957 ((#:asd-system-name _ #f) "cl-ana.serialization")))))
8958
8959 (define-public cl-ana.serialization
8960 (sbcl-package->cl-source-package sbcl-cl-ana.serialization))
8961
8962 (define-public sbcl-cl-ana.makeres
8963 (package
8964 (inherit sbcl-cl-ana-boot0)
8965 (name "sbcl-cl-ana.makeres")
8966 (inputs
8967 `(("alexandria" ,sbcl-alexandria)
8968 ("cl-ana.error-propogation" ,sbcl-cl-ana.error-propogation)
8969 ("cl-ana.file-utils" ,sbcl-cl-ana.file-utils)
8970 ("cl-ana.functional-utils" ,sbcl-cl-ana.functional-utils)
8971 ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
8972 ("cl-ana.hash-table-utils" ,sbcl-cl-ana.hash-table-utils)
8973 ("cl-ana.hdf-utils" ,sbcl-cl-ana.hdf-utils)
8974 ("cl-ana.histogram" ,sbcl-cl-ana.histogram)
8975 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8976 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
8977 ("cl-ana.map" ,sbcl-cl-ana.map)
8978 ("cl-ana.memoization" ,sbcl-cl-ana.memoization)
8979 ("cl-ana.pathname-utils" ,sbcl-cl-ana.pathname-utils)
8980 ("cl-ana.plotting" ,sbcl-cl-ana.plotting)
8981 ("cl-ana.reusable-table" ,sbcl-cl-ana.reusable-table)
8982 ("cl-ana.serialization" ,sbcl-cl-ana.serialization)
8983 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
8984 ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)
8985 ("cl-ana.table" ,sbcl-cl-ana.table)
8986 ("external-program" ,sbcl-external-program)))
8987 (native-inputs
8988 `(("cl-fad" ,sbcl-cl-fad)))
8989 (arguments
8990 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8991 ((#:asd-file _ "") "makeres/cl-ana.makeres.asd")
8992 ((#:asd-system-name _ #f) "cl-ana.makeres")))))
8993
8994 (define-public cl-ana.makeres
8995 (sbcl-package->cl-source-package sbcl-cl-ana.makeres))
8996
8997 (define-public sbcl-cl-ana.makeres-macro
8998 (package
8999 (inherit sbcl-cl-ana-boot0)
9000 (name "sbcl-cl-ana.makeres-macro")
9001 (inputs
9002 `(("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
9003 ("cl-ana.makeres" ,sbcl-cl-ana.makeres)))
9004 (arguments
9005 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9006 ((#:asd-file _ "") "makeres-macro/cl-ana.makeres-macro.asd")
9007 ((#:asd-system-name _ #f) "cl-ana.makeres-macro")))))
9008
9009 (define-public cl-ana.makeres-macro
9010 (sbcl-package->cl-source-package sbcl-cl-ana.makeres-macro))
9011
9012 (define-public sbcl-cl-ana.makeres-block
9013 (package
9014 (inherit sbcl-cl-ana-boot0)
9015 (name "sbcl-cl-ana.makeres-block")
9016 (inputs
9017 `(("alexandria" ,sbcl-alexandria)
9018 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
9019 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
9020 ("cl-ana.makeres" ,sbcl-cl-ana.makeres)))
9021 (arguments
9022 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9023 ((#:asd-file _ "") "makeres-block/cl-ana.makeres-block.asd")
9024 ((#:asd-system-name _ #f) "cl-ana.makeres-block")))))
9025
9026 (define-public cl-ana.makeres-block
9027 (sbcl-package->cl-source-package sbcl-cl-ana.makeres-block))
9028
9029 (define-public sbcl-cl-ana.makeres-progress
9030 (package
9031 (inherit sbcl-cl-ana-boot0)
9032 (name "sbcl-cl-ana.makeres-progress")
9033 (inputs
9034 `(("alexandria" ,sbcl-alexandria)
9035 ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
9036 ("cl-ana.makeres" ,sbcl-cl-ana.makeres)))
9037 (arguments
9038 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9039 ((#:asd-file _ "") "makeres-progress/cl-ana.makeres-progress.asd")
9040 ((#:asd-system-name _ #f) "cl-ana.makeres-progress")))))
9041
9042 (define-public cl-ana.makeres-progress
9043 (sbcl-package->cl-source-package sbcl-cl-ana.makeres-progress))
9044
9045 (define-public sbcl-cl-ana.makeres-table
9046 (package
9047 (inherit sbcl-cl-ana-boot0)
9048 (name "sbcl-cl-ana.makeres-table")
9049 (inputs
9050 `(("cl-ana.csv-table" ,sbcl-cl-ana.csv-table)
9051 ("cl-ana.hash-table-utils" ,sbcl-cl-ana.hash-table-utils)
9052 ("cl-ana.hdf-table" ,sbcl-cl-ana.hdf-table)
9053 ("cl-ana.hdf-utils" ,sbcl-cl-ana.hdf-utils)
9054 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
9055 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
9056 ("cl-ana.makeres" ,sbcl-cl-ana.makeres)
9057 ("cl-ana.makeres-macro" ,sbcl-cl-ana.makeres-macro)
9058 ("cl-ana.memoization" ,sbcl-cl-ana.memoization)
9059 ("cl-ana.ntuple-table" ,sbcl-cl-ana.ntuple-table)
9060 ("cl-ana.reusable-table" ,sbcl-cl-ana.reusable-table)
9061 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
9062 ("cl-ana.table" ,sbcl-cl-ana.table)))
9063 (native-inputs
9064 `(("cl-fad" ,sbcl-cl-fad)))
9065 (arguments
9066 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9067 ((#:asd-file _ "") "makeres-table/cl-ana.makeres-table.asd")
9068 ((#:asd-system-name _ #f) "cl-ana.makeres-table")))))
9069
9070 (define-public cl-ana.makeres-table
9071 (sbcl-package->cl-source-package sbcl-cl-ana.makeres-table))
9072
9073 (define-public sbcl-cl-ana.makeres-graphviz
9074 (package
9075 (inherit sbcl-cl-ana-boot0)
9076 (name "sbcl-cl-ana.makeres-graphviz")
9077 (inputs
9078 `(("cl-ana.makeres" ,sbcl-cl-ana.makeres)
9079 ("external-program" ,sbcl-external-program)))
9080 (arguments
9081 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9082 ((#:asd-file _ "") "makeres-graphviz/cl-ana.makeres-graphviz.asd")
9083 ((#:asd-system-name _ #f) "cl-ana.makeres-graphviz")))))
9084
9085 (define-public cl-ana.makeres-graphviz
9086 (sbcl-package->cl-source-package sbcl-cl-ana.makeres-graphviz))
9087
9088 (define-public sbcl-cl-ana.makeres-branch
9089 (package
9090 (inherit sbcl-cl-ana-boot0)
9091 (name "sbcl-cl-ana.makeres-branch")
9092 (inputs
9093 `(("alexandria" ,sbcl-alexandria)
9094 ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
9095 ("cl-ana.hash-table-utils" ,sbcl-cl-ana.hash-table-utils)
9096 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
9097 ("cl-ana.map" ,sbcl-cl-ana.map)
9098 ("cl-ana.makeres" ,sbcl-cl-ana.makeres)))
9099 (arguments
9100 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9101 ((#:asd-file _ "") "makeres-branch/cl-ana.makeres-branch.asd")
9102 ((#:asd-system-name _ #f) "cl-ana.makeres-branch")))))
9103
9104 (define-public cl-ana.makeres-branch
9105 (sbcl-package->cl-source-package sbcl-cl-ana.makeres-branch))
9106
9107 (define-public sbcl-cl-ana.makeres-utils
9108 (package
9109 (inherit sbcl-cl-ana-boot0)
9110 (name "sbcl-cl-ana.makeres-utils")
9111 (inputs
9112 `(("alexandria" ,sbcl-alexandria)
9113 ("cl-ana.file-utils" ,sbcl-cl-ana.file-utils)
9114 ("cl-ana.fitting" ,sbcl-cl-ana.fitting)
9115 ("cl-ana.functional-utils" ,sbcl-cl-ana.functional-utils)
9116 ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
9117 ("cl-ana.histogram" ,sbcl-cl-ana.histogram)
9118 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
9119 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
9120 ("cl-ana.makeres" ,sbcl-cl-ana.makeres)
9121 ("cl-ana.map" ,sbcl-cl-ana.map)
9122 ("cl-ana.pathname-utils" ,sbcl-cl-ana.pathname-utils)
9123 ("cl-ana.plotting" ,sbcl-cl-ana.plotting)
9124 ("cl-ana.reusable-table" ,sbcl-cl-ana.reusable-table)
9125 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
9126 ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)
9127 ("cl-ana.table" ,sbcl-cl-ana.table)))
9128 (native-inputs
9129 `(("cl-fad" ,sbcl-cl-fad)))
9130 (arguments
9131 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9132 ((#:asd-file _ "") "makeres-utils/cl-ana.makeres-utils.asd")
9133 ((#:asd-system-name _ #f) "cl-ana.makeres-utils")))))
9134
9135 (define-public cl-ana.makeres-utils
9136 (sbcl-package->cl-source-package sbcl-cl-ana.makeres-utils))
9137
9138 (define-public sbcl-cl-ana.statistical-learning
9139 (package
9140 (inherit sbcl-cl-ana-boot0)
9141 (name "sbcl-cl-ana.statistical-learning")
9142 (inputs
9143 `(("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
9144 ("cl-ana.functional-utils" ,sbcl-cl-ana.functional-utils)
9145 ("cl-ana.histogram" ,sbcl-cl-ana.histogram)
9146 ("cl-ana.linear-algebra" ,sbcl-cl-ana.linear-algebra)
9147 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
9148 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
9149 ("cl-ana.math-functions" ,sbcl-cl-ana.math-functions)
9150 ("cl-ana.map" ,sbcl-cl-ana.map)
9151 ("cl-ana.statistics" ,sbcl-cl-ana.statistics)))
9152 (native-inputs
9153 `(("cl-fad" ,sbcl-cl-fad)))
9154 (arguments
9155 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9156 ((#:asd-file _ "")
9157 "statistical-learning/cl-ana.statistical-learning.asd")
9158 ((#:asd-system-name _ #f) "cl-ana.statistical-learning")))))
9159
9160 (define-public cl-ana.statistical-learning
9161 (sbcl-package->cl-source-package sbcl-cl-ana.statistical-learning))
9162
9163 (define-public sbcl-cl-ana
9164 (package
9165 (inherit sbcl-cl-ana-boot0)
9166 (name "sbcl-cl-ana")
9167 (inputs
9168 `(("cl-ana.binary-tree" ,sbcl-cl-ana.binary-tree)
9169 ("cl-ana.calculus" ,sbcl-cl-ana.calculus)
9170 ("cl-ana.clos-utils" ,sbcl-cl-ana.clos-utils)
9171 ("cl-ana.csv-table" ,sbcl-cl-ana.csv-table)
9172 ("cl-ana.error-propogation" ,sbcl-cl-ana.error-propogation)
9173 ("cl-ana.file-utils" ,sbcl-cl-ana.file-utils)
9174 ("cl-ana.fitting" ,sbcl-cl-ana.fitting)
9175 ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
9176 ("cl-ana.hash-table-utils" ,sbcl-cl-ana.hash-table-utils)
9177 ("cl-ana.hdf-table" ,sbcl-cl-ana.hdf-table)
9178 ("cl-ana.histogram" ,sbcl-cl-ana.histogram)
9179 ("cl-ana.int-char" ,sbcl-cl-ana.int-char)
9180 ("cl-ana.linear-algebra" ,sbcl-cl-ana.linear-algebra)
9181 ("cl-ana.lorentz" ,sbcl-cl-ana.lorentz)
9182 ("cl-ana.map" ,sbcl-cl-ana.map)
9183 ("cl-ana.makeres" ,sbcl-cl-ana.makeres)
9184 ("cl-ana.makeres-block" ,sbcl-cl-ana.makeres-block)
9185 ("cl-ana.makeres-branch" ,sbcl-cl-ana.makeres-branch)
9186 ("cl-ana.makeres-graphviz" ,sbcl-cl-ana.makeres-graphviz)
9187 ("cl-ana.makeres-macro" ,sbcl-cl-ana.makeres-macro)
9188 ("cl-ana.makeres-progress" ,sbcl-cl-ana.makeres-progress)
9189 ("cl-ana.makeres-table" ,sbcl-cl-ana.makeres-table)
9190 ("cl-ana.makeres-utils" ,sbcl-cl-ana.makeres-utils)
9191 ("cl-ana.math-functions" ,sbcl-cl-ana.math-functions)
9192 ("cl-ana.ntuple-table" ,sbcl-cl-ana.ntuple-table)
9193 ("cl-ana.package-utils" ,sbcl-cl-ana.package-utils)
9194 ("cl-ana.pathname-utils" ,sbcl-cl-ana.pathname-utils)
9195 ("cl-ana.plotting" ,sbcl-cl-ana.plotting)
9196 ("cl-ana.quantity" ,sbcl-cl-ana.quantity)
9197 ("cl-ana.reusable-table" ,sbcl-cl-ana.reusable-table)
9198 ("cl-ana.serialization" ,sbcl-cl-ana.serialization)
9199 ("cl-ana.statistics" ,sbcl-cl-ana.statistics)
9200 ("cl-ana.statistical-learning" ,sbcl-cl-ana.statistical-learning)
9201 ("cl-ana.table" ,sbcl-cl-ana.table)
9202 ("cl-ana.table-utils" ,sbcl-cl-ana.table-utils)
9203 ("cl-ana.table-viewing" ,sbcl-cl-ana.table-viewing)
9204 ("cl-ana.tensor" ,sbcl-cl-ana.tensor)
9205 ("libffi" ,libffi)))
9206 (native-inputs
9207 `(("cl-fad" ,sbcl-cl-fad)))
9208 (arguments
9209 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9210 ((#:asd-file _ "") "cl-ana.asd")
9211 ((#:asd-system-name _ #f) "cl-ana")))))
9212
9213 (define-public cl-ana
9214 (sbcl-package->cl-source-package sbcl-cl-ana))
9215
9216 (define-public sbcl-archive
9217 (let ((commit "631271c091ed02994bec3980cb288a2cf32c7cdc")
9218 (revision "1"))
9219 (package
9220 (name "sbcl-archive")
9221 (version (git-version "0.9" revision commit))
9222 (source (origin
9223 (method git-fetch)
9224 (uri (git-reference
9225 (url "https://github.com/sharplispers/archive.git")
9226 (commit commit)))
9227 (file-name (git-file-name name version))
9228 (sha256
9229 (base32
9230 "0pvsc9fmybx7rxd0kmzq4shi6hszdpwdc1sfy7jwyfxf8n3hnv4p"))))
9231 (build-system asdf-build-system/sbcl)
9232 (inputs
9233 `(("cl-fad" ,sbcl-cl-fad)
9234 ("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
9235 (synopsis "Common Lisp library for tar and cpio archives")
9236 (description
9237 "This is a Common Lisp library to read and write disk-based file
9238 archives such as those generated by the tar and cpio programs on Unix.")
9239 (home-page "https://github.com/sharplispers/archive")
9240 (license license:bsd-3))))
9241
9242 (define-public cl-archive
9243 (sbcl-package->cl-source-package sbcl-archive))
9244
9245 (define-public ecl-archive
9246 (sbcl-package->ecl-package sbcl-archive))
9247
9248 (define-public sbcl-misc-extensions
9249 (let ((commit "101c05112bf2f1e1bbf527396822d2f50ca6327a")
9250 (revision "1"))
9251 (package
9252 (name "sbcl-misc-extensions")
9253 (version (git-version "3.3" revision commit))
9254 (source
9255 (origin
9256 (method git-fetch)
9257 (uri (git-reference
9258 (url "https://gitlab.common-lisp.net/misc-extensions/devel.git")
9259 (commit commit)))
9260 (file-name (git-file-name name version))
9261 (sha256
9262 (base32
9263 "0gz5f4p70qzilnxsnf5lih2n9m4wjcw8hlw4w8mpn9jyhyppyyv0"))))
9264 (build-system asdf-build-system/sbcl)
9265 (synopsis "Collection of small macros and extensions for Common Lisp")
9266 (description
9267 "This project is intended as a catchall for small, general-purpose
9268 extensions to Common Lisp. It contains:
9269
9270 @itemize
9271 @item @code{new-let}, a macro that combines and generalizes @code{let},
9272 @code{let*} and @code{multiple-value-bind},
9273 @item @code{gmap}, an iteration macro that generalizes @code{map}.
9274 @end itemize\n")
9275 (home-page "https://common-lisp.net/project/misc-extensions/")
9276 (license license:public-domain))))
9277
9278 (define-public cl-misc-extensions
9279 (sbcl-package->cl-source-package sbcl-misc-extensions))
9280
9281 (define-public ecl-misc-extensions
9282 (sbcl-package->ecl-package sbcl-misc-extensions))
9283
9284 (define-public sbcl-mt19937
9285 (package
9286 (name "sbcl-mt19937")
9287 (version "1.1")
9288 (source
9289 (origin
9290 (method url-fetch)
9291 (uri (string-append "https://common-lisp.net/project/asdf-packaging/"
9292 "mt19937-latest.tar.gz"))
9293 (sha256
9294 (base32
9295 "1iw636b0iw5ygkv02y8i41lh7xj0acglv0hg5agryn0zzi2nf1xv"))))
9296 (build-system asdf-build-system/sbcl)
9297 (synopsis "Mersenne Twister pseudo-random number generator")
9298 (description
9299 "MT19937 is a portable Mersenne Twister pseudo-random number generator
9300 for Common Lisp.")
9301 (home-page "https://www.cliki.net/mt19937")
9302 (license license:public-domain)))
9303
9304 (define-public cl-mt19937
9305 (sbcl-package->cl-source-package sbcl-mt19937))
9306
9307 (define-public ecl-mt19937
9308 (sbcl-package->ecl-package sbcl-mt19937))
9309
9310 (define-public sbcl-fset
9311 (let ((commit "6d2f9ded8934d2b42f2571a0ba5bda091037d852")
9312 (revision "1"))
9313 (package
9314 (name "sbcl-fset")
9315 (version (git-version "1.3.2" revision commit))
9316 (source
9317 (origin
9318 (method git-fetch)
9319 (uri (git-reference
9320 (url "https://github.com/slburson/fset")
9321 (commit commit)))
9322 (file-name (git-file-name name version))
9323 (sha256
9324 (base32
9325 "127acblwrbqicx47h6sgvknz1cqyfn8p4xkhkn1m7hxh8w5gk1zy"))
9326 (snippet '(begin
9327 ;; Remove obsolete copy of system definition.
9328 (delete-file "Code/fset.asd")
9329 #t))))
9330 (build-system asdf-build-system/sbcl)
9331 (inputs
9332 `(("misc-extensions" ,sbcl-misc-extensions)
9333 ("mt19937" ,sbcl-mt19937)
9334 ("named-readtables" ,sbcl-named-readtables)))
9335 (synopsis "Functional set-theoretic collections library")
9336 (description
9337 "FSet is a functional set-theoretic collections library for Common Lisp.
9338 Functional means that all update operations return a new collection rather than
9339 modifying an existing one in place. Set-theoretic means that collections may
9340 be nested arbitrarily with no additional programmer effort; for instance, sets
9341 may contain sets, maps may be keyed by sets, etc.")
9342 (home-page "https://common-lisp.net/project/fset/Site/index.html")
9343 (license license:llgpl))))
9344
9345 (define-public cl-fset
9346 (sbcl-package->cl-source-package sbcl-fset))
9347
9348 (define-public sbcl-cl-cont
9349 (let ((commit "fc1fa7e6eb64894fdca13e688e6015fad5290d2a")
9350 (revision "1"))
9351 (package
9352 (name "sbcl-cl-cont")
9353 (version (git-version "0.3.8" revision commit))
9354 (source
9355 (origin
9356 (method git-fetch)
9357 (uri (git-reference
9358 (url "https://gitlab.common-lisp.net/cl-cont/cl-cont.git")
9359 (commit commit)))
9360 (file-name (git-file-name name version))
9361 (sha256
9362 (base32
9363 "1zf8zvb0i6jm3hhfks4w74hibm6avgc6f9s1qwgjrn2bcik8lrvz"))))
9364 (build-system asdf-build-system/sbcl)
9365 (inputs
9366 `(("alexandria" ,sbcl-alexandria)
9367 ("closer-mop" ,sbcl-closer-mop)))
9368 (native-inputs
9369 `(("rt" ,sbcl-rt)))
9370 (synopsis "Delimited continuations for Common Lisp")
9371 (description
9372 "This is a library that implements delimited continuations by
9373 transforming Common Lisp code to continuation passing style.")
9374 (home-page "https://common-lisp.net/project/cl-cont/")
9375 (license license:llgpl))))
9376
9377 (define-public cl-cont
9378 (sbcl-package->cl-source-package sbcl-cl-cont))
9379
9380 (define-public ecl-cl-cont
9381 (sbcl-package->ecl-package sbcl-cl-cont))
9382
9383 (define-public sbcl-cl-coroutine
9384 (let ((commit "de098f8d5debd8b14ef6864b5bdcbbf5ddbcfd72")
9385 (revision "1"))
9386 (package
9387 (name "sbcl-cl-coroutine")
9388 (version (git-version "0.1" revision commit))
9389 (source
9390 (origin
9391 (method git-fetch)
9392 (uri (git-reference
9393 (url "https://github.com/takagi/cl-coroutine.git")
9394 (commit commit)))
9395 (file-name (git-file-name name version))
9396 (sha256
9397 (base32
9398 "1cqdhdjxffgfs116l1swjlsmcbly0xgcgrckvaajd566idj9yj4l"))))
9399 (build-system asdf-build-system/sbcl)
9400 (inputs
9401 `(("alexandria" ,sbcl-alexandria)
9402 ("cl-cont" ,sbcl-cl-cont)))
9403 (native-inputs
9404 `(("prove" ,sbcl-prove)))
9405 (arguments
9406 `(;; TODO: Fix the tests. They fail with:
9407 ;; "Component CL-COROUTINE-ASD::CL-COROUTINE-TEST not found"
9408 #:tests? #f
9409 #:phases
9410 (modify-phases %standard-phases
9411 (add-after 'unpack 'fix-tests
9412 (lambda _
9413 (substitute* "cl-coroutine-test.asd"
9414 (("cl-test-more")
9415 "prove"))
9416 #t)))))
9417 (synopsis "Coroutine library for Common Lisp")
9418 (description
9419 "This is a coroutine library for Common Lisp implemented using the
9420 continuations of the @code{cl-cont} library.")
9421 (home-page "https://github.com/takagi/cl-coroutine")
9422 (license license:llgpl))))
9423
9424 (define-public cl-coroutine
9425 (sbcl-package->cl-source-package sbcl-cl-coroutine))
9426
9427 (define-public ecl-cl-coroutine
9428 (sbcl-package->ecl-package sbcl-cl-coroutine))
9429
9430 (define-public sbcl-vom
9431 (let ((commit "1aeafeb5b74c53741b79497e0ef4acf85c92ff24")
9432 (revision "1"))
9433 (package
9434 (name "sbcl-vom")
9435 (version (git-version "0.1.4" revision commit))
9436 (source
9437 (origin
9438 (method git-fetch)
9439 (uri (git-reference
9440 (url "https://github.com/orthecreedence/vom.git")
9441 (commit commit)))
9442 (file-name (git-file-name name version))
9443 (sha256
9444 (base32
9445 "0536kppj76ax4lrxhv42npkfjsmx45km2g439vf9jmw3apinz9cy"))))
9446 (build-system asdf-build-system/sbcl)
9447 (synopsis "Tiny logging utility for Common Lisp")
9448 (description
9449 "Vom is a logging library for Common Lisp. It's goal is to be useful
9450 and small. It does not provide a lot of features as other loggers do, but
9451 has a small codebase that's easy to understand and use.")
9452 (home-page "https://github.com/orthecreedence/vom")
9453 (license license:expat))))
9454
9455 (define-public cl-vom
9456 (sbcl-package->cl-source-package sbcl-vom))
9457
9458 (define-public ecl-vom
9459 (sbcl-package->ecl-package sbcl-vom))
9460
9461 (define-public sbcl-cl-libuv
9462 (let ((commit "32100c023c518038d0670a103eaa4d50dd785d29")
9463 (revision "1"))
9464 (package
9465 (name "sbcl-cl-libuv")
9466 (version (git-version "0.1.6" revision commit))
9467 (source
9468 (origin
9469 (method git-fetch)
9470 (uri (git-reference
9471 (url "https://github.com/orthecreedence/cl-libuv.git")
9472 (commit commit)))
9473 (file-name (git-file-name name version))
9474 (sha256
9475 (base32
9476 "1kwix4si8a8hza34ab2k7whrh7z0yrmx39v2wc3qblv9m244jkh1"))))
9477 (build-system asdf-build-system/sbcl)
9478 (inputs
9479 `(("alexandria" ,sbcl-alexandria)
9480 ("cffi" ,sbcl-cffi)
9481 ("cffi-grovel" ,sbcl-cffi-grovel)
9482 ("libuv" ,libuv)))
9483 (arguments
9484 `(#:phases
9485 (modify-phases %standard-phases
9486 (add-after 'unpack 'fix-paths
9487 (lambda* (#:key inputs #:allow-other-keys)
9488 (substitute* "lib.lisp"
9489 (("/usr/lib/libuv.so")
9490 (string-append (assoc-ref inputs "libuv")
9491 "/lib/libuv.so")))
9492 #t))
9493 (add-after 'fix-paths 'fix-system-definition
9494 (lambda _
9495 (substitute* "cl-libuv.asd"
9496 (("#:cffi #:alexandria")
9497 "#:cffi #:cffi-grovel #:alexandria"))
9498 #t)))))
9499 (synopsis "Common Lisp bindings to libuv")
9500 (description
9501 "This library provides low-level libuv bindings for Common Lisp.")
9502 (home-page "https://github.com/orthecreedence/cl-libuv")
9503 (license license:expat))))
9504
9505 (define-public cl-libuv
9506 (sbcl-package->cl-source-package sbcl-cl-libuv))
9507
9508 (define-public ecl-cl-libuv
9509 (sbcl-package->ecl-package sbcl-cl-libuv))
9510
9511 (define-public sbcl-cl-async-base
9512 (let ((commit "f6423e44404a44434d803605e0d2e17199158e28")
9513 (revision "1"))
9514 (package
9515 (name "sbcl-cl-async-base")
9516 (version (git-version "0.6.1" revision commit))
9517 (source
9518 (origin
9519 (method git-fetch)
9520 (uri (git-reference
9521 (url "https://github.com/orthecreedence/cl-async.git")
9522 (commit commit)))
9523 (file-name (git-file-name name version))
9524 (sha256
9525 (base32
9526 "11xi9dxb8mjgwzrkj88i0xkgk26z9w9ddxzbv6xsvfc1d4x5cf4x"))))
9527 (build-system asdf-build-system/sbcl)
9528 (inputs
9529 `(("bordeaux-threads" ,sbcl-bordeaux-threads)
9530 ("cffi" ,sbcl-cffi)
9531 ("cl-libuv" ,sbcl-cl-libuv)))
9532 (arguments
9533 `(#:asd-file "cl-async.asd"))
9534 (synopsis "Base system for cl-async")
9535 (description
9536 "Cl-async is a library for general purpose, non-blocking programming in
9537 Common Lisp. It uses the libuv library as backend.")
9538 (home-page "https://orthecreedence.github.io/cl-async/")
9539 (license license:expat))))
9540
9541 (define-public cl-async-base
9542 (sbcl-package->cl-source-package sbcl-cl-async-base))
9543
9544 (define-public ecl-cl-async-base
9545 (sbcl-package->ecl-package sbcl-cl-async-base))
9546
9547 (define-public sbcl-cl-async-util
9548 (package
9549 (inherit sbcl-cl-async-base)
9550 (name "sbcl-cl-async-util")
9551 (inputs
9552 `(("bordeaux-threads" ,sbcl-bordeaux-threads)
9553 ("cffi" ,sbcl-cffi)
9554 ("cl-async-base" ,sbcl-cl-async-base)
9555 ("cl-libuv" ,sbcl-cl-libuv)
9556 ("cl-ppcre" ,sbcl-cl-ppcre)
9557 ("fast-io" ,sbcl-fast-io)
9558 ("vom" ,sbcl-vom)))
9559 (synopsis "Internal utilities for cl-async")))
9560
9561 (define-public cl-async-util
9562 (sbcl-package->cl-source-package sbcl-cl-async-util))
9563
9564 (define-public ecl-cl-async-util
9565 (sbcl-package->ecl-package sbcl-cl-async-util))
9566
9567 (define-public sbcl-cl-async
9568 (package
9569 (inherit sbcl-cl-async-base)
9570 (name "sbcl-cl-async")
9571 (inputs
9572 `(("babel" ,sbcl-babel)
9573 ("cffi" ,sbcl-cffi)
9574 ("cl-async-base" ,sbcl-cl-async-base)
9575 ("cl-async-util" ,sbcl-cl-async-util)
9576 ("cl-libuv" ,sbcl-cl-libuv)
9577 ("cl-ppcre" ,sbcl-cl-ppcre)
9578 ("static-vectors" ,sbcl-static-vectors)
9579 ("trivial-features" ,sbcl-trivial-features)
9580 ("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
9581 (synopsis "Asynchronous operations for Common Lisp")))
9582
9583 (define-public cl-async
9584 (sbcl-package->cl-source-package sbcl-cl-async))
9585
9586 (define-public ecl-cl-async
9587 (sbcl-package->ecl-package sbcl-cl-async))
9588
9589 (define-public sbcl-cl-async-repl
9590 (package
9591 (inherit sbcl-cl-async-base)
9592 (name "sbcl-cl-async-repl")
9593 (inputs
9594 `(("bordeaux-threads" ,sbcl-bordeaux-threads)
9595 ("cl-async" ,sbcl-cl-async)))
9596 (arguments
9597 (substitute-keyword-arguments (package-arguments sbcl-cl-async-base)
9598 ((#:asd-file _ "") "cl-async-repl.asd")))
9599 (synopsis "REPL integration for cl-async")))
9600
9601 (define-public cl-async-repl
9602 (sbcl-package->cl-source-package sbcl-cl-async-repl))
9603
9604 (define-public ecl-cl-async-repl
9605 (sbcl-package->ecl-package sbcl-cl-async-repl))
9606
9607 (define-public sbcl-cl-async-ssl
9608 (package
9609 (inherit sbcl-cl-async-base)
9610 (name "sbcl-cl-async-ssl")
9611 (inputs
9612 `(("cffi" ,sbcl-cffi)
9613 ("cl-async" ,sbcl-cl-async)
9614 ("openssl" ,openssl)
9615 ("vom" ,sbcl-vom)))
9616 (arguments
9617 (substitute-keyword-arguments (package-arguments sbcl-cl-async-base)
9618 ((#:asd-file _ "") "cl-async-ssl.asd")
9619 ((#:phases phases '%standard-phases)
9620 `(modify-phases ,phases
9621 (add-after 'unpack 'fix-paths
9622 (lambda* (#:key inputs #:allow-other-keys)
9623 (substitute* "src/ssl/package.lisp"
9624 (("libcrypto\\.so")
9625 (string-append (assoc-ref inputs "openssl")
9626 "/lib/libcrypto.so"))
9627 (("libssl\\.so")
9628 (string-append (assoc-ref inputs "openssl")
9629 "/lib/libssl.so")))
9630 #t))))))
9631 (synopsis "SSL wrapper around cl-async socket implementation")))
9632
9633 (define-public cl-async-ssl
9634 (sbcl-package->cl-source-package sbcl-cl-async-ssl))
9635
9636 (define-public ecl-cl-async-ssl
9637 (sbcl-package->ecl-package sbcl-cl-async-ssl))
9638
9639 (define-public sbcl-blackbird
9640 (let ((commit "d361f81c1411dec07f6c2dcb11c78f7aea9aaca8")
9641 (revision "1"))
9642 (package
9643 (name "sbcl-blackbird")
9644 (version (git-version "0.5.2" revision commit))
9645 (source
9646 (origin
9647 (method git-fetch)
9648 (uri (git-reference
9649 (url "https://github.com/orthecreedence/blackbird.git")
9650 (commit commit)))
9651 (file-name (git-file-name name version))
9652 (sha256
9653 (base32
9654 "0xfds5yaya64arzr7w1x38karyz11swzbhxx1afldpradj9dh19c"))))
9655 (build-system asdf-build-system/sbcl)
9656 (inputs
9657 `(("vom" ,sbcl-vom)))
9658 (native-inputs
9659 `(("cl-async" ,sbcl-cl-async)
9660 ("fiveam" ,sbcl-fiveam)))
9661 (synopsis "Promise implementation for Common Lisp")
9662 (description
9663 "This is a standalone promise implementation for Common Lisp. It is
9664 the successor to the now-deprecated cl-async-future project.")
9665 (home-page "https://orthecreedence.github.io/blackbird/")
9666 (license license:expat))))
9667
9668 (define-public cl-blackbird
9669 (sbcl-package->cl-source-package sbcl-blackbird))
9670
9671 (define-public ecl-blackbird
9672 (sbcl-package->ecl-package sbcl-blackbird))
9673
9674 (define-public sbcl-cl-async-future
9675 (let ((commit "ee36c22a69a9516407458d2ed8b475f1fc473959")
9676 (revision "1"))
9677 (package
9678 (name "sbcl-cl-async-future")
9679 (version (git-version "0.4.4.1" revision commit))
9680 (source
9681 (origin
9682 (method git-fetch)
9683 (uri (git-reference
9684 (url "https://github.com/orthecreedence/cl-async-future.git")
9685 (commit commit)))
9686 (file-name (git-file-name name version))
9687 (sha256
9688 (base32
9689 "0z0sc7qlzzxk99f4l26zp6rai9kv0kj0f599sxai5s44p17zbbvh"))))
9690 (build-system asdf-build-system/sbcl)
9691 (inputs
9692 `(("blackbird" ,sbcl-blackbird)))
9693 (native-inputs
9694 `(("cl-async" ,sbcl-cl-async)
9695 ("eos" ,sbcl-eos)))
9696 (synopsis "Futures implementation for Common Lisp")
9697 (description
9698 "This is futures implementation for Common Lisp. It plugs in nicely
9699 to cl-async.")
9700 (home-page "https://orthecreedence.github.io/cl-async/future")
9701 (license license:expat))))
9702
9703 (define-public cl-async-future
9704 (sbcl-package->cl-source-package sbcl-cl-async-future))
9705
9706 (define-public ecl-cl-async-future
9707 (sbcl-package->ecl-package sbcl-cl-async-future))
9708
9709 (define-public sbcl-green-threads
9710 (let ((commit "fff5ebecb441a37e5c511773716aafd84a3c5840")
9711 (revision "1"))
9712 (package
9713 (name "sbcl-green-threads")
9714 (version (git-version "0.3" revision commit))
9715 (source
9716 (origin
9717 (method git-fetch)
9718 (uri (git-reference
9719 (url "https://github.com/thezerobit/green-threads.git")
9720 (commit commit)))
9721 (file-name (git-file-name name version))
9722 (sha256
9723 (base32
9724 "1czw7nr0dwfps76h8hjvglk1wdh53yqbfbvv30whwbgqx33iippz"))))
9725 (build-system asdf-build-system/sbcl)
9726 (inputs
9727 `(("cl-async-future" ,sbcl-cl-async-future)
9728 ("cl-cont" ,sbcl-cl-cont)))
9729 (native-inputs
9730 `(("prove" ,sbcl-prove)))
9731 (arguments
9732 `(;; TODO: Fix the tests. They fail with:
9733 ;; "The function BLACKBIRD::PROMISE-VALUES is undefined"
9734 #:tests? #f
9735 #:phases
9736 (modify-phases %standard-phases
9737 (add-after 'unpack 'fix-tests
9738 (lambda _
9739 (substitute* "green-threads-test.asd"
9740 (("cl-test-more")
9741 "prove"))
9742 #t)))))
9743 (synopsis "Cooperative multitasking library for Common Lisp")
9744 (description
9745 "This library allows for cooperative multitasking with help of cl-cont
9746 for continuations. It tries to mimic the API of bordeaux-threads as much as
9747 possible.")
9748 (home-page "https://github.com/thezerobit/green-threads")
9749 (license license:bsd-3))))
9750
9751 (define-public cl-green-threads
9752 (sbcl-package->cl-source-package sbcl-green-threads))
9753
9754 (define-public ecl-green-threads
9755 (sbcl-package->ecl-package sbcl-green-threads))
9756
9757 (define-public sbcl-cl-base32
9758 (let ((commit "8cdee06fab397f7b0a19583b57e7f0c98405be85")
9759 (revision "1"))
9760 (package
9761 (name "sbcl-cl-base32")
9762 (version (git-version "0.1" revision commit))
9763 (source
9764 (origin
9765 (method git-fetch)
9766 (uri (git-reference
9767 (url "https://github.com/hargettp/cl-base32.git")
9768 (commit commit)))
9769 (file-name (git-file-name name version))
9770 (sha256
9771 (base32 "17jrng8jb05d64ggyd11hp308c2fl5drvf9g175blgrkkl8l4mf8"))))
9772 (build-system asdf-build-system/sbcl)
9773 (native-inputs
9774 `(("lisp-unit" ,sbcl-lisp-unit)))
9775 (synopsis "Common Lisp library for base32 encoding and decoding")
9776 (description
9777 "This package provides functions for base32 encoding and decoding as
9778 defined in RFC4648.")
9779 (home-page "https://github.com/hargettp/cl-base32")
9780 (license license:expat))))
9781
9782 (define-public cl-base32
9783 (sbcl-package->cl-source-package sbcl-cl-base32))
9784
9785 (define-public ecl-cl-base32
9786 (sbcl-package->ecl-package sbcl-cl-base32))
9787
9788 (define-public sbcl-cl-z85
9789 (let ((commit "85b3951a9cfa2603acb6aee15567684f9a108098")
9790 (revision "1"))
9791 (package
9792 (name "sbcl-cl-z85")
9793 (version (git-version "1.0" revision commit))
9794 (source
9795 (origin
9796 (method git-fetch)
9797 (uri (git-reference
9798 (url "https://github.com/glv2/cl-z85.git")
9799 (commit commit)))
9800 (file-name (git-file-name name version))
9801 (sha256
9802 (base32 "0r27pidjaxbm7k1rr90nnajwl5xm2kp65g1fv0fva17lzy45z1mp"))))
9803 (build-system asdf-build-system/sbcl)
9804 (native-inputs
9805 `(("cl-octet-streams" ,sbcl-cl-octet-streams)
9806 ("fiveam" ,sbcl-fiveam)))
9807 (synopsis "Common Lisp library for Z85 encoding and decoding")
9808 (description
9809 "This package provides functions to encode or decode byte vectors or
9810 byte streams using the Z85 format, which is a base-85 encoding used by
9811 ZeroMQ.")
9812 (home-page "https://github.com/glv2/cl-z85")
9813 (license license:gpl3+))))
9814
9815 (define-public cl-z85
9816 (sbcl-package->cl-source-package sbcl-cl-z85))
9817
9818 (define-public ecl-cl-z85
9819 (sbcl-package->ecl-package sbcl-cl-z85))
9820
9821 (define-public sbcl-ltk
9822 (package
9823 (name "sbcl-ltk")
9824 (version "0.992")
9825 (source
9826 (origin
9827 (method git-fetch)
9828 (uri (git-reference
9829 (url "https://github.com/herth/ltk.git")
9830 (commit version)))
9831 (file-name (git-file-name name version))
9832 (sha256
9833 (base32 "13l2q4mskzilya9xh5wy2xvy30lwn104bd8wrq6ifds56r82iy3x"))))
9834 (build-system asdf-build-system/sbcl)
9835 (inputs
9836 `(("imagemagick" ,imagemagick)
9837 ("tk" ,tk)))
9838 (arguments
9839 `(#:asd-file "ltk/ltk.asd"
9840 #:tests? #f
9841 #:phases (modify-phases %standard-phases
9842 (add-after 'unpack 'fix-paths
9843 (lambda* (#:key inputs #:allow-other-keys)
9844 (substitute* "ltk/ltk.lisp"
9845 (("#-freebsd \"wish\"")
9846 (string-append "#-freebsd \""
9847 (assoc-ref inputs "tk")
9848 "/bin/wish\""))
9849 (("do-execute \"convert\"")
9850 (string-append "do-execute \""
9851 (assoc-ref inputs "imagemagick")
9852 "/bin/convert\"")))
9853 #t)))))
9854 (synopsis "Common Lisp bindings for the Tk GUI toolkit")
9855 (description
9856 "LTK is a Common Lisp binding for the Tk graphics toolkit. It is written
9857 in pure Common Lisp and does not require any Tk knowledge for its usage.")
9858 (home-page "http://www.peter-herth.de/ltk/")
9859 (license license:llgpl)))
9860
9861 (define-public cl-ltk
9862 (sbcl-package->cl-source-package sbcl-ltk))
9863
9864 (define-public ecl-ltk
9865 (sbcl-package->ecl-package sbcl-ltk))
9866
9867 (define-public sbcl-ltk-mw
9868 (package
9869 (inherit sbcl-ltk)
9870 (name "sbcl-ltk-mw")
9871 (inputs
9872 `(("ltk" ,sbcl-ltk)))
9873 (arguments
9874 (substitute-keyword-arguments (package-arguments sbcl-ltk)
9875 ((#:asd-file _) "ltk/ltk-mw.asd")
9876 ((#:phases _) '%standard-phases)))
9877 (synopsis "Extra widgets for LTK")
9878 (description
9879 "This is a collection of higher-level widgets built on top of LTK.")))
9880
9881 (define-public cl-ltk-mw
9882 (sbcl-package->cl-source-package sbcl-ltk-mw))
9883
9884 (define-public ecl-ltk-mw
9885 (sbcl-package->ecl-package sbcl-ltk-mw))
9886
9887 (define-public sbcl-ltk-remote
9888 (package
9889 (inherit sbcl-ltk)
9890 (name "sbcl-ltk-remote")
9891 (inputs
9892 `(("ltk" ,sbcl-ltk)))
9893 (arguments
9894 (substitute-keyword-arguments (package-arguments sbcl-ltk)
9895 ((#:asd-file _) "ltk/ltk-remote.asd")
9896 ((#:phases _) '%standard-phases)))
9897 (synopsis "Remote GUI support for LTK")
9898 (description
9899 "This LTK extension allows the GUI to be displayed on a computer different
9900 from the one running the Lisp program by using a TCP connection.")))
9901
9902 (define-public cl-ltk-remote
9903 (sbcl-package->cl-source-package sbcl-ltk-remote))
9904
9905 (define-public sbcl-cl-lex
9906 (let ((commit "f2dbbe25ef553005fb402d9a6203180c3fa1093b")
9907 (revision "1"))
9908 (package
9909 (name "sbcl-cl-lex")
9910 (version (git-version "1.1.3" revision commit))
9911 (source
9912 (origin
9913 (method git-fetch)
9914 (uri (git-reference
9915 (url "https://github.com/djr7C4/cl-lex.git")
9916 (commit commit)))
9917 (file-name (git-file-name name version))
9918 (sha256
9919 (base32 "1kg50f76bfpfxcv4dfivq1n9a0xlsra2ajb0vd68lxwgbidgyc2y"))))
9920 (build-system asdf-build-system/sbcl)
9921 (inputs
9922 `(("cl-ppcre" ,sbcl-cl-ppcre)))
9923 (synopsis "Common Lisp macros for generating lexical analyzers")
9924 (description
9925 "This is a Common Lisp library providing a set of macros for generating
9926 lexical analyzers automatically. The lexers generated using @code{cl-lex} can
9927 be used with @code{cl-yacc}.")
9928 (home-page "https://github.com/djr7C4/cl-lex")
9929 (license license:gpl3))))
9930
9931 (define-public cl-lex
9932 (sbcl-package->cl-source-package sbcl-cl-lex))
9933
9934 (define-public ecl-cl-lex
9935 (sbcl-package->ecl-package sbcl-cl-lex))
9936
9937 (define-public sbcl-clunit2
9938 (let ((commit "5e28343734eb9b7aee39306a614af92c1062d50b")
9939 (revision "1"))
9940 (package
9941 (name "sbcl-clunit2")
9942 (version (git-version "0.2.4" revision commit))
9943 (source
9944 (origin
9945 (method git-fetch)
9946 (uri (git-reference
9947 (url "https://notabug.org/cage/clunit2.git")
9948 (commit commit)))
9949 (file-name (git-file-name name version))
9950 (sha256
9951 (base32 "1ngiapfki6nm8a555mzhb5p7ch79i3w665za5bmb5j7q34fy80vw"))))
9952 (build-system asdf-build-system/sbcl)
9953 (synopsis "Unit testing framework for Common Lisp")
9954 (description
9955 "CLUnit is a Common Lisp unit testing framework. It is designed to be
9956 easy to use so that you can quickly start testing.")
9957 (home-page "https://notabug.org/cage/clunit2")
9958 (license license:expat))))
9959
9960 (define-public cl-clunit2
9961 (sbcl-package->cl-source-package sbcl-clunit2))
9962
9963 (define-public ecl-clunit2
9964 (sbcl-package->ecl-package sbcl-clunit2))
9965
9966 (define-public sbcl-cl-colors2
9967 (let ((commit "795aedee593b095fecde574bd999b520dd03ed24")
9968 (revision "1"))
9969 (package
9970 (name "sbcl-cl-colors2")
9971 (version (git-version "0.2.1" revision commit))
9972 (source
9973 (origin
9974 (method git-fetch)
9975 (uri (git-reference
9976 (url "https://notabug.org/cage/cl-colors2.git")
9977 (commit commit)))
9978 (file-name (git-file-name name version))
9979 (sha256
9980 (base32 "0hlyf4h5chkjdp9armla5w4kw5acikk159sym7y8c4jbjp9x47ih"))))
9981 (build-system asdf-build-system/sbcl)
9982 (native-inputs
9983 `(("clunit2" ,sbcl-clunit2)))
9984 (inputs
9985 `(("alexandria" ,sbcl-alexandria)
9986 ("cl-ppcre" ,sbcl-cl-ppcre)))
9987 (synopsis "Color library for Common Lisp")
9988 (description
9989 "This is a very simple color library for Common Lisp, providing:
9990
9991 @itemize
9992 @item Types for representing colors in HSV and RGB spaces.
9993 @item Simple conversion functions between the above types (and also
9994 hexadecimal representation for RGB).
9995 @item Some predefined colors (currently X11 color names -- of course
9996 the library does not depend on X11).
9997 @end itemize\n")
9998 (home-page "https://notabug.org/cage/cl-colors2")
9999 (license license:boost1.0))))
10000
10001 (define-public cl-colors2
10002 (sbcl-package->cl-source-package sbcl-cl-colors2))
10003
10004 (define-public ecl-cl-colors2
10005 (sbcl-package->ecl-package sbcl-cl-colors2))
10006
10007 (define-public sbcl-cl-jpeg
10008 (let ((commit "ec557038128df6895fbfb743bfe8faf8ec2534af")
10009 (revision "1"))
10010 (package
10011 (name "sbcl-cl-jpeg")
10012 (version (git-version "2.8" revision commit))
10013 (source
10014 (origin
10015 (method git-fetch)
10016 (uri (git-reference
10017 (url "https://github.com/sharplispers/cl-jpeg.git")
10018 (commit commit)))
10019 (file-name (git-file-name name version))
10020 (sha256
10021 (base32 "1bkkiqz8fqldlj1wbmrccjsvxcwj98h6s4b6gslr3cg2wmdv5xmy"))))
10022 (build-system asdf-build-system/sbcl)
10023 (synopsis "JPEG image library for Common Lisp")
10024 (description
10025 "This is a baseline JPEG codec written in Common Lisp. It can be used
10026 for reading and writing JPEG image files.")
10027 (home-page "https://github.com/sharplispers/cl-jpeg")
10028 (license license:bsd-3))))
10029
10030 (define-public cl-jpeg
10031 (sbcl-package->cl-source-package sbcl-cl-jpeg))
10032
10033 (define-public ecl-cl-jpeg
10034 (sbcl-package->ecl-package sbcl-cl-jpeg))
10035
10036 (define-public sbcl-nodgui
10037 (let ((commit "bc59ed9b787dfc9e68ae3bd7f7e8507c5c619212")
10038 (revision "1"))
10039 (package
10040 (name "sbcl-nodgui")
10041 (version (git-version "0.0.5" revision commit))
10042 (source
10043 (origin
10044 (method git-fetch)
10045 (uri (git-reference
10046 (url "https://notabug.org/cage/nodgui.git")
10047 (commit commit)))
10048 (file-name (git-file-name name version))
10049 (sha256
10050 (base32 "0xx0dk54d882i598ydnwmy7mnfk0b7vib3ddsgpqxhjck1rwq8l8"))))
10051 (build-system asdf-build-system/sbcl)
10052 (inputs
10053 `(("alexandria" ,sbcl-alexandria)
10054 ("bordeaux-threads" ,sbcl-bordeaux-threads)
10055 ("cl-colors2" ,sbcl-cl-colors2)
10056 ("cl-jpeg" ,sbcl-cl-jpeg)
10057 ("cl-lex" ,sbcl-cl-lex)
10058 ("cl-ppcre-unicode" ,sbcl-cl-ppcre-unicode)
10059 ("cl-unicode" ,sbcl-cl-unicode)
10060 ("cl-yacc" ,sbcl-cl-yacc)
10061 ("clunit2" ,sbcl-clunit2)
10062 ("named-readtables" ,sbcl-named-readtables)
10063 ("parse-number" ,sbcl-parse-number)
10064 ("tk" ,tk)))
10065 (arguments
10066 `(#:phases (modify-phases %standard-phases
10067 (add-after 'unpack 'fix-paths
10068 (lambda* (#:key inputs #:allow-other-keys)
10069 (substitute* "src/wish-communication.lisp"
10070 (("#-freebsd \"wish\"")
10071 (string-append "#-freebsd \""
10072 (assoc-ref inputs "tk")
10073 "/bin/wish\"")))
10074 #t)))))
10075 (synopsis "Common Lisp bindings for the Tk GUI toolkit")
10076 (description
10077 "Nodgui (@emph{No Drama GUI}) is a Common Lisp binding for the Tk GUI
10078 toolkit. It also provides a few additional widgets more than the standard Tk
10079 ones.")
10080 (home-page "https://www.autistici.org/interzona/nodgui.html")
10081 (license license:llgpl))))
10082
10083 (define-public cl-nodgui
10084 (sbcl-package->cl-source-package sbcl-nodgui))
10085
10086 (define-public ecl-nodgui
10087 (sbcl-package->ecl-package sbcl-nodgui))
10088
10089 (define-public sbcl-salza2
10090 (package
10091 (name "sbcl-salza2")
10092 (version "2.0.9")
10093 (source
10094 (origin
10095 (method git-fetch)
10096 (uri (git-reference
10097 (url "https://github.com/xach/salza2.git")
10098 (commit (string-append "release-" version))))
10099 (file-name (git-file-name name version))
10100 (sha256
10101 (base32 "0p38rj4gq7j5k807php7hrz7l2zyyfshv8i9yms7i8lkgg3433ki"))))
10102 (build-system asdf-build-system/sbcl)
10103 (synopsis "Common Lisp library for zlib, deflate and gzip compression")
10104 (description
10105 "Salza2 is a Common Lisp library for creating compressed data in the zlib,
10106 deflate, or gzip data formats, described in RFC 1950, RFC 1951, and RFC 1952,
10107 respectively.")
10108 (home-page "https://www.xach.com/lisp/salza2/")
10109 (license license:bsd-2)))
10110
10111 (define-public cl-salza2
10112 (sbcl-package->cl-source-package sbcl-salza2))
10113
10114 (define-public ecl-salza2
10115 (sbcl-package->ecl-package sbcl-salza2))
10116
10117 (define-public sbcl-png-read
10118 (let ((commit "ec29f38a689972b9f1373f13bbbcd6b05deada88")
10119 (revision "1"))
10120 (package
10121 (name "sbcl-png-read")
10122 (version (git-version "0.3.1" revision commit))
10123 (source
10124 (origin
10125 (method git-fetch)
10126 (uri (git-reference
10127 (url "https://github.com/Ramarren/png-read.git")
10128 (commit commit)))
10129 (file-name (git-file-name name version))
10130 (sha256
10131 (base32 "0vyczbcwskrygrf1hgrsnk0jil8skmvf1kiaalw5jps4fjrfdkw0"))))
10132 (build-system asdf-build-system/sbcl)
10133 (inputs
10134 `(("babel" ,sbcl-babel)
10135 ("chipz" ,sbcl-chipz)
10136 ("iterate" ,sbcl-iterate)))
10137 (synopsis "PNG decoder for Common Lisp")
10138 (description "This is a Common Lisp library for reading PNG images.")
10139 (home-page "https://github.com/Ramarren/png-read")
10140 (license license:bsd-3))))
10141
10142 (define-public cl-png-read
10143 (sbcl-package->cl-source-package sbcl-png-read))
10144
10145 (define-public ecl-png-read
10146 (sbcl-package->ecl-package sbcl-png-read))
10147
10148 (define-public sbcl-zpng
10149 (package
10150 (name "sbcl-zpng")
10151 (version "1.2.2")
10152 (source
10153 (origin
10154 (method git-fetch)
10155 (uri (git-reference
10156 (url "https://github.com/xach/zpng.git")
10157 (commit (string-append "release-" version))))
10158 (file-name (git-file-name name version))
10159 (sha256
10160 (base32 "0b3ag3jhl3z7kdls3ahdsdxsfhhw5qrizk769984f4wkxhb69rcm"))))
10161 (build-system asdf-build-system/sbcl)
10162 (inputs
10163 `(("salza2" ,sbcl-salza2)))
10164 (synopsis "PNG encoder for Common Lisp")
10165 (description "This is a Common Lisp library for creating PNG images.")
10166 (home-page "https://www.xach.com/lisp/zpng/")
10167 (license license:bsd-2)))
10168
10169 (define-public cl-zpng
10170 (sbcl-package->cl-source-package sbcl-zpng))
10171
10172 (define-public ecl-zpng
10173 (sbcl-package->ecl-package sbcl-zpng))
10174
10175 (define-public sbcl-cl-qrencode
10176 (package
10177 (name "sbcl-cl-qrencode")
10178 (version "0.1.2")
10179 (source
10180 (origin
10181 (method git-fetch)
10182 (uri (git-reference
10183 (url "https://github.com/jnjcc/cl-qrencode.git")
10184 (commit (string-append "v" version))))
10185 (file-name (git-file-name name version))
10186 (sha256
10187 (base32 "1l5k131dchbf6cj8a8xqa731790p01p3qa1kdy2wa9dawy3ymkxr"))))
10188 (build-system asdf-build-system/sbcl)
10189 (native-inputs
10190 `(("lisp-unit" ,sbcl-lisp-unit)))
10191 (inputs
10192 `(("zpng" ,sbcl-zpng)))
10193 (synopsis "QR code encoder for Common Lisp")
10194 (description
10195 "This Common Lisp library provides function to make QR codes and to save
10196 them as PNG files.")
10197 (home-page "https://github.com/jnjcc/cl-qrencode")
10198 (license license:gpl2+)))
10199
10200 (define-public cl-qrencode
10201 (sbcl-package->cl-source-package sbcl-cl-qrencode))
10202
10203 (define-public ecl-cl-qrencode
10204 (sbcl-package->ecl-package sbcl-cl-qrencode))
10205
10206 (define-public sbcl-hdf5-cffi
10207 (let ((commit "5b5c88f191e470e4fe96b462334e3ce0806eed5c")
10208 (revision "1"))
10209 (package
10210 (name "sbcl-hdf5-cffi")
10211 (version (git-version "1.8.18" revision commit))
10212 (source
10213 (origin
10214 (method git-fetch)
10215 (uri (git-reference
10216 (url "https://github.com/hdfgroup/hdf5-cffi.git")
10217 (commit commit)))
10218 (file-name (git-file-name name version))
10219 (sha256
10220 (base32
10221 "0vda3075423xz83qky998lpac5b04dwfv7bwgh9jq8cs5v0zrxjf"))))
10222 (build-system asdf-build-system/sbcl)
10223 (synopsis "Common Lisp bindings for the HDF5 library")
10224 (description
10225 "@code{hdf5-cffi} is a CFFI wrapper for the HDF5 library.")
10226 (home-page "https://github.com/hdfgroup/hdf5-cffi")
10227 (license (license:non-copyleft
10228 (string-append "https://github.com/HDFGroup/hdf5-cffi/raw/"
10229 commit
10230 "/LICENSE")))
10231 (inputs
10232 `(("cffi" ,sbcl-cffi)
10233 ("cffi-grovel" ,sbcl-cffi-grovel)
10234 ("hdf5" ,hdf5-1.10)))
10235 (native-inputs
10236 `(("fiveam" ,sbcl-fiveam)))
10237 (arguments
10238 `(#:asd-system-name "hdf5-cffi"
10239 #:asd-file "hdf5-cffi.asd"
10240 #:test-asd-file "hdf5-cffi.test.asd"
10241 ;; Tests depend on hdf5-cffi.examples.asd in addition to hdf5-cffi.asd,
10242 ;; I don't know if there is a way to tell asdf-build-system to load
10243 ;; an additional system first, so tests are disabled.
10244 #:tests? #f
10245 #:phases
10246 (modify-phases %standard-phases
10247 (add-after 'unpack 'fix-paths
10248 (lambda* (#:key inputs #:allow-other-keys)
10249 (substitute* "src/library.lisp"
10250 (("libhdf5.so")
10251 (string-append
10252 (assoc-ref inputs "hdf5")
10253 "/lib/libhdf5.so")))))
10254 (add-after 'unpack 'fix-dependencies
10255 (lambda* (#:key inputs #:allow-other-keys)
10256 (substitute* "hdf5-cffi.asd"
10257 ((":depends-on \\(:cffi\\)")
10258 ":depends-on (:cffi :cffi-grovel)"))
10259 (substitute* "hdf5-cffi.test.asd"
10260 ((":depends-on \\(:cffi :hdf5-cffi")
10261 ":depends-on (:cffi :cffi-grovel :hdf5-cffi"))))))))))
10262
10263 (define-public cl-hdf5-cffi
10264 (sbcl-package->cl-source-package sbcl-hdf5-cffi))
10265
10266 (define-public ecl-hdf5-cffi
10267 (sbcl-package->ecl-package sbcl-hdf5-cffi))
10268
10269 (define-public sbcl-cl-randist
10270 (package
10271 (name "sbcl-cl-randist")
10272 (version "0.4.2")
10273 (source
10274 (origin
10275 (method git-fetch)
10276 (uri (git-reference
10277 (url "https://github.com/lvaruzza/cl-randist.git")
10278 (commit "f088a54b540a7adefab7c04094a6103f9edda3d0")))
10279 (file-name (git-file-name name version))
10280 (sha256
10281 (base32
10282 "0l8hyd6nbxb7f50vyxz3rbbm7kgr1fnadc40jywy4xj5vi5kpj5g"))))
10283 (build-system asdf-build-system/sbcl)
10284 (synopsis "Random distributions for Common Lisp")
10285 (description
10286 "Manual translation from C to Common Lisp of some random number
10287 generation functions from the GSL library.")
10288 (home-page "https://github.com/lvaruzza/cl-randist")
10289 (license license:bsd-2)
10290 (arguments
10291 `(#:asd-system-name "cl-randist"
10292 #:asd-file "cl-randist.asd"
10293 #:tests? #f))))
10294
10295 (define-public cl-randist
10296 (sbcl-package->cl-source-package sbcl-cl-randist))
10297
10298 (define-public ecl-cl-randist
10299 (sbcl-package->ecl-package sbcl-cl-randist))
10300
10301 (define-public sbcl-float-features
10302 (package
10303 (name "sbcl-float-features")
10304 (version "1.0.0")
10305 (source
10306 (origin
10307 (method git-fetch)
10308 (uri (git-reference
10309 (url "https://github.com/Shinmera/float-features.git")
10310 (commit "d3ef60181635b0849aa28cfc238053b7ca4644b0")))
10311 (file-name (git-file-name name version))
10312 (sha256
10313 (base32
10314 "0yj419k7n59x6rh3grwr6frgwwyria2il6f7wxpfazm8cskv4lzr"))))
10315 (build-system asdf-build-system/sbcl)
10316 (synopsis "Common Lisp IEEE float portability library")
10317 (description
10318 "Portability library for IEEE float features that are not
10319 covered by the Common Lisp standard.")
10320 (home-page "https://github.com/Shinmera/float-features")
10321 (license license:zlib)
10322 (inputs
10323 `(("documentation-utils" ,sbcl-documentation-utils)))
10324 (arguments
10325 `(#:asd-system-name "float-features"
10326 #:asd-file "float-features.asd"
10327 #:tests? #f))))
10328
10329 (define-public cl-float-features
10330 (sbcl-package->cl-source-package sbcl-float-features))
10331
10332 (define-public ecl-float-features
10333 (sbcl-package->ecl-package sbcl-float-features))
10334
10335 (define-public sbcl-function-cache
10336 (package
10337 (name "sbcl-function-cache")
10338 (version "1.0.3")
10339 (source
10340 (origin
10341 (method git-fetch)
10342 (uri (git-reference
10343 (url "https://github.com/AccelerationNet/function-cache.git")
10344 (commit "6a5ada401e57da2c8abf046f582029926e61fce8")))
10345 (file-name (git-file-name name version))
10346 (sha256
10347 (base32
10348 "000vmd3f5rx5hs9nvphfric0gkzaadns31c6mxaslpv0k7pkrmc6"))))
10349 (build-system asdf-build-system/sbcl)
10350 (synopsis "Function caching / memoization library for Common Lisp")
10351 (description
10352 "A common lisp library that provides extensible function result
10353 caching based on arguments (an expanded form of memoization).")
10354 (home-page "https://github.com/AccelerationNet/function-cache")
10355 (license
10356 (license:non-copyleft
10357 "https://github.com/AccelerationNet/function-cache/blob/master/README.md"))
10358 (inputs
10359 `(("alexandria" ,sbcl-alexandria)
10360 ("cl-interpol" ,sbcl-cl-interpol)
10361 ("iterate" ,sbcl-iterate)
10362 ("symbol-munger" ,sbcl-symbol-munger)
10363 ("closer-mop" ,sbcl-closer-mop)))
10364 (arguments
10365 `(#:asd-system-name "function-cache"
10366 #:asd-file "function-cache.asd"
10367 #:tests? #f))))
10368
10369 (define-public cl-function-cache
10370 (sbcl-package->cl-source-package sbcl-function-cache))
10371
10372 (define-public ecl-function-cache
10373 (sbcl-package->ecl-package sbcl-function-cache))
10374
10375 (define-public sbcl-type-r
10376 (let ((commit "83c89e38f2f7a7b16f1012777ecaf878cfa6a267")
10377 (revision "1"))
10378 (package
10379 (name "sbcl-type-r")
10380 (version (git-version "0.0.0" revision commit))
10381 (source
10382 (origin
10383 (method git-fetch)
10384 (uri (git-reference
10385 (url "https://github.com/guicho271828/type-r.git")
10386 (commit commit)))
10387 (file-name (git-file-name name version))
10388 (sha256
10389 (base32
10390 "1arsxc2539rg8vbrdirz4xxj1b06mc6g6rqndz7a02g127qvk2sm"))))
10391 (build-system asdf-build-system/sbcl)
10392 (synopsis "Parser interface for Common Lisp built-in compound types")
10393 (description
10394 "Collections of accessor functions and patterns to access
10395 the elements in compound type specifier, e.g. @code{dimensions} in
10396 @code{(array element-type dimensions)}")
10397 (home-page "https://github.com/guicho271828/type-r")
10398 (license license:lgpl3+)
10399 (inputs
10400 `(("trivia" ,sbcl-trivia)
10401 ("alexandria" ,sbcl-alexandria)))
10402 (native-inputs
10403 `(("fiveam" ,sbcl-fiveam)))
10404 (arguments
10405 `(#:asd-system-name "type-r"
10406 #:asd-file "type-r.asd"
10407 #:test-asd-file "type-r.test.asd")))))
10408
10409 (define-public cl-type-r
10410 (sbcl-package->cl-source-package sbcl-type-r))
10411
10412 (define-public sbcl-trivialib-type-unify
10413 (let ((commit "62492ebf04db567dcf435ae84c50b7b8202ecf99")
10414 (revision "1"))
10415 (package
10416 (name "sbcl-trivialib-type-unify")
10417 (version (git-version "0.1" revision commit))
10418 (source
10419 (origin
10420 (method git-fetch)
10421 (uri (git-reference
10422 (url "https://github.com/guicho271828/trivialib.type-unify.git")
10423 (commit commit)))
10424 (file-name (git-file-name name version))
10425 (sha256
10426 (base32
10427 "1bkyfzbwv75p50zp8n1n9rh2r29pw3vgz91gmn2gzzkyq3khj1vh"))))
10428 (build-system asdf-build-system/sbcl)
10429 (synopsis "Common Lisp type unification")
10430 (description
10431 "Unifies a parametrized type specifier against an actual type specifier.
10432 Importantly, it handles complicated array-subtypes and number-related types
10433 correctly.")
10434 (home-page "https://github.com/guicho271828/trivialib.type-unify")
10435 (license license:lgpl3+)
10436 (inputs
10437 `(("alexandria" ,sbcl-alexandria)
10438 ("trivia" ,sbcl-trivia)
10439 ("introspect-environment" ,sbcl-introspect-environment)
10440 ("type-r" ,sbcl-type-r)))
10441 (native-inputs
10442 `(("fiveam" ,sbcl-fiveam)))
10443 (arguments
10444 `(#:asd-system-name "trivialib.type-unify"
10445 #:asd-file "trivialib.type-unify.asd"
10446 #:test-asd-file "trivialib.type-unify.test.asd")))))
10447
10448 (define-public cl-trivialib-type-unify
10449 (sbcl-package->cl-source-package sbcl-trivialib-type-unify))
10450
10451 (define-public sbcl-specialized-function
10452 (let ((commit "b96b6afaf8358bf91cc0703e62a5a4ee20d2b7bc")
10453 (revision "1"))
10454 (package
10455 (name "sbcl-specialized-function")
10456 (version (git-version "0.0.0" revision commit))
10457 (source
10458 (origin
10459 (method git-fetch)
10460 (uri (git-reference
10461 (url "https://github.com/numcl/specialized-function.git")
10462 (commit commit)))
10463 (file-name (git-file-name name version))
10464 (sha256
10465 (base32
10466 "12j45ff0n26578vmfbhb9mfbdchw4wy023k0m2ppgl9s0z4bhjaj"))))
10467 (build-system asdf-build-system/sbcl)
10468 (synopsis "Julia-like dispatch for Common Lisp")
10469 (description
10470 "This library is part of NUMCL. It provides a macro
10471 @code{SPECIALIZED} that performs a Julia-like dispatch on the arguments,
10472 lazily compiling a type-specific version of the function from the same
10473 code. The main target of this macro is speed.")
10474 (home-page "https://github.com/numcl/specialized-function")
10475 (license license:lgpl3+)
10476 (inputs
10477 `(("trivia" ,sbcl-trivia)
10478 ("alexandria" ,sbcl-alexandria)
10479 ("iterate" ,sbcl-iterate)
10480 ("lisp-namespace" ,sbcl-lisp-namespace)
10481 ("type-r" ,sbcl-type-r)
10482 ("trivial-cltl2" ,sbcl-trivial-cltl2)))
10483 (native-inputs
10484 `(("fiveam" ,sbcl-fiveam)))
10485 (arguments
10486 `(#:asd-system-name "specialized-function"
10487 #:asd-file "specialized-function.asd"
10488 #:test-asd-file "specialized-function.test.asd")))))
10489
10490 (define-public cl-specialized-function
10491 (sbcl-package->cl-source-package sbcl-specialized-function))
10492
10493 (define-public sbcl-constantfold
10494 (let ((commit "0ff1d97a3fbcb89264f6a2af6ce62b73e7b421f4")
10495 (revision "1"))
10496 (package
10497 (name "sbcl-constantfold")
10498 (version (git-version "0.1" revision commit))
10499 (source
10500 (origin
10501 (method git-fetch)
10502 (uri (git-reference
10503 (url "https://github.com/numcl/constantfold.git")
10504 (commit commit)))
10505 (file-name (git-file-name name version))
10506 (sha256
10507 (base32
10508 "153h0569z6bff1qbad0bdssplwwny75l7ilqwcfqfdvzsxf9jh06"))))
10509 (build-system asdf-build-system/sbcl)
10510 (synopsis "Support library for numcl")
10511 (description
10512 "Support library for numcl. Registers a function as an
10513 additional form that is considered as a candidate for a constant.")
10514 (home-page "https://github.com/numcl/constantfold")
10515 (license license:lgpl3+)
10516 (inputs
10517 `(("trivia" ,sbcl-trivia)
10518 ("alexandria" ,sbcl-alexandria)
10519 ("iterate" ,sbcl-iterate)
10520 ("lisp-namespace" ,sbcl-lisp-namespace)))
10521 (native-inputs
10522 `(("fiveam" ,sbcl-fiveam)))
10523 (arguments
10524 `(#:asd-system-name "constantfold"
10525 #:asd-file "constantfold.asd"
10526 #:test-asd-file "constantfold.test.asd")))))
10527
10528 (define-public cl-constantfold
10529 (sbcl-package->cl-source-package sbcl-constantfold))
10530
10531 (define-public sbcl-gtype
10532 (let ((commit "42275e3606242ae91e9c8dfa30c18ced50a35b66")
10533 (revision "1"))
10534 (package
10535 (name "sbcl-gtype")
10536 (version (git-version "0.1" revision commit))
10537 (source
10538 (origin
10539 (method git-fetch)
10540 (uri (git-reference
10541 (url "https://github.com/numcl/gtype.git")
10542 (commit commit)))
10543 (file-name (git-file-name name version))
10544 (sha256
10545 (base32
10546 "1f56dba998v945jcxhha391557n6md1ql25b7icfwwfivhmlaa9b"))))
10547 (build-system asdf-build-system/sbcl)
10548 (synopsis "C++/Julia-like parametric types in Common Lisp")
10549 (description
10550 "Support library for numcl that provides Julia-like runtime parametric
10551 type correctness in Common Lisp. It is based on CLtL2 extensions.")
10552 (home-page "https://github.com/numcl/gtype")
10553 (license license:lgpl3+)
10554 (inputs
10555 `(("trivialib.type-unify" ,sbcl-trivialib-type-unify)
10556 ("trivial-cltl2" ,sbcl-trivial-cltl2)
10557 ("trivia" ,sbcl-trivia)
10558 ("alexandria" ,sbcl-alexandria)
10559 ("iterate" ,sbcl-iterate)
10560 ("type-r" ,sbcl-type-r)))
10561 (native-inputs
10562 `(("fiveam" ,sbcl-fiveam)))
10563 (arguments
10564 `(#:asd-system-name "gtype"
10565 #:asd-file "gtype.asd"
10566 #:test-asd-file "gtype.test.asd")))))
10567
10568 (define-public cl-gtype
10569 (sbcl-package->cl-source-package sbcl-gtype))
10570
10571 (define-public sbcl-numcl
10572 (let ((commit "1cf7dfa59f763a24a501092870e9c5ee745d0c17")
10573 (revision "1"))
10574 (package
10575 (name "sbcl-numcl")
10576 (version (git-version "0.1.0" revision commit))
10577 (source
10578 (origin
10579 (method git-fetch)
10580 (uri (git-reference
10581 (url "https://github.com/numcl/numcl.git")
10582 (commit commit)))
10583 (file-name (git-file-name name version))
10584 (sha256
10585 (base32
10586 "0i3jby9hf4ii7blivgyza80g0vmjfhk8537i5i7kqqk0i5sdnym2"))))
10587 (build-system asdf-build-system/sbcl)
10588 (synopsis "Numpy clone in Common Lisp")
10589 (description
10590 "This is a Numpy clone in Common Lisp. At the moment the
10591 library is written in pure Common Lisp, focusing more on correctness
10592 and usefulness, not speed. Track the progress at
10593 @url{https://github.com/numcl/numcl/projects/1}.")
10594 (home-page "https://github.com/numcl/numcl")
10595 (license license:lgpl3+)
10596 (inputs
10597 `(("trivia" ,sbcl-trivia)
10598 ("alexandria" ,sbcl-alexandria)
10599 ("iterate" ,sbcl-iterate)
10600 ("lisp-namespace" ,sbcl-lisp-namespace)
10601 ("type-r" ,sbcl-type-r)
10602 ("constantfold" ,sbcl-constantfold)
10603 ("cl-randist" ,sbcl-cl-randist)
10604 ("float-features" ,sbcl-float-features)
10605 ("function-cache" ,sbcl-function-cache)
10606 ("specialized-function" ,sbcl-specialized-function)
10607 ("gtype" ,sbcl-gtype)))
10608 (native-inputs
10609 `(("fiveam" ,sbcl-fiveam)))
10610 (arguments
10611 `(#:asd-system-name "numcl"
10612 #:asd-file "numcl.asd"
10613 #:test-asd-file "numcl.test.asd")))))
10614
10615 (define-public cl-numcl
10616 (sbcl-package->cl-source-package sbcl-numcl))
10617
10618 (define-public sbcl-pzmq
10619 (let ((commit "7c7390eedc469d033c72dc497984d1536ee75826")
10620 (revision "1"))
10621 (package
10622 (name "sbcl-pzmq")
10623 (version (git-version "0.0.0" revision commit))
10624 (source
10625 (origin
10626 (method git-fetch)
10627 (uri (git-reference
10628 (url "https://github.com/orivej/pzmq.git")
10629 (commit commit)))
10630 (file-name (git-file-name name version))
10631 (sha256
10632 (base32 "0gmwzf7h90wa7v4wnk49g0hv2mdalljpwhyigxcb967wzv8lqci9"))))
10633 (build-system asdf-build-system/sbcl)
10634 (native-inputs
10635 `(("bordeaux-threads" ,sbcl-bordeaux-threads)
10636 ("fiveam" ,sbcl-fiveam)
10637 ("let-plus" ,sbcl-let-plus)))
10638 (inputs
10639 `(("cffi" ,sbcl-cffi)
10640 ("cffi-grovel" ,sbcl-cffi-grovel)
10641 ("zeromq" ,zeromq)))
10642 (arguments
10643 `(#:phases (modify-phases %standard-phases
10644 (add-after 'unpack 'fix-paths
10645 (lambda* (#:key inputs #:allow-other-keys)
10646 (substitute* "c-api.lisp"
10647 (("\"libzmq")
10648 (string-append "\""
10649 (assoc-ref inputs "zeromq")
10650 "/lib/libzmq")))
10651 #t)))))
10652 (synopsis "Common Lisp bindings for the ZeroMQ library")
10653 (description "This Common Lisp library provides bindings for the ZeroMQ
10654 lightweight messaging kernel.")
10655 (home-page "https://github.com/orivej/pzmq")
10656 (license license:unlicense))))
10657
10658 (define-public cl-pzmq
10659 (sbcl-package->cl-source-package sbcl-pzmq))
10660
10661 (define-public ecl-pzmq
10662 (sbcl-package->ecl-package sbcl-pzmq))
10663
10664 (define-public sbcl-clss
10665 (let ((revision "1")
10666 (commit "2a8e8615ab55870d4ca01928f3ed3bbeb4e75c8d"))
10667 (package
10668 (name "sbcl-clss")
10669 (version (git-version "0.3.1" revision commit))
10670 (source
10671 (origin
10672 (method git-fetch)
10673 (uri
10674 (git-reference
10675 (url "https://github.com/Shinmera/clss.git")
10676 (commit commit)))
10677 (sha256
10678 (base32 "0la4dbcda78x29szanylccrsljqrn9d1mhh569sqkyp44ni5fv91"))
10679 (file-name (git-file-name name version))))
10680 (inputs
10681 `(("array-utils" ,sbcl-array-utils)
10682 ("plump" ,sbcl-plump)))
10683 (build-system asdf-build-system/sbcl)
10684 (synopsis "DOM tree searching engine based on CSS selectors")
10685 (description "CLSS is a DOM traversal engine based on CSS
10686 selectors. It makes use of the Plump-DOM and is used by lQuery.")
10687 (home-page "https://github.com/Shinmera/clss")
10688 (license license:zlib))))
10689
10690 (define-public cl-clss
10691 (sbcl-package->cl-source-package sbcl-clss))
10692
10693 (define-public ecl-clss
10694 (sbcl-package->ecl-package sbcl-clss))
10695
10696 (define-public sbcl-lquery
10697 (let ((revision "1")
10698 (commit "8048111c6b83956daa632e7a3ffbd8c9c203bd8d"))
10699 (package
10700 (name "sbcl-lquery")
10701 (version (git-version "3.2.1" revision commit))
10702 (source
10703 (origin
10704 (method git-fetch)
10705 (uri
10706 (git-reference
10707 (url "https://github.com/Shinmera/lquery.git")
10708 (commit commit)))
10709 (sha256
10710 (base32 "0520mcpxc2d6fdm8z61arpgd2z38kan7cf06qs373n5r64rakz6w"))
10711 (file-name (git-file-name name version))))
10712 (native-inputs
10713 `(("fiveam" ,sbcl-fiveam)))
10714 (inputs
10715 `(("array-utils" ,sbcl-array-utils)
10716 ("form-fiddle" ,sbcl-form-fiddle)
10717 ("plump" ,sbcl-plump)
10718 ("clss" ,sbcl-clss)))
10719 (build-system asdf-build-system/sbcl)
10720 (synopsis "Library to allow jQuery-like HTML/DOM manipulation")
10721 (description "@code{lQuery} is a DOM manipulation library written in
10722 Common Lisp, inspired by and based on the jQuery syntax and
10723 functions. It uses Plump and CLSS as DOM and selector engines. The
10724 main idea behind lQuery is to provide a simple interface for crawling
10725 and modifying HTML sites, as well as to allow for an alternative
10726 approach to templating.")
10727 (home-page "https://github.com/Shinmera/lquery")
10728 (license license:zlib))))
10729
10730 (define-public cl-lquery
10731 (sbcl-package->cl-source-package sbcl-lquery))
10732
10733 (define-public ecl-lquery
10734 (sbcl-package->ecl-package sbcl-lquery))
10735
10736 (define-public sbcl-cl-mysql
10737 (let ((commit "ab56c279c1815aec6ca0bfe85164ff7e85cfb6f9")
10738 (revision "1"))
10739 (package
10740 (name "sbcl-cl-mysql")
10741 (version (git-version "0.1" revision commit))
10742 (source
10743 (origin
10744 (method git-fetch)
10745 (uri (git-reference
10746 (url "https://github.com/hackinghat/cl-mysql.git")
10747 (commit commit)))
10748 (file-name (git-file-name name version))
10749 (sha256
10750 (base32 "0dg5ynx2ww94d0qfwrdrm7plkn43h64hs4iiq9mj2s1s4ixnp3lr"))))
10751 (build-system asdf-build-system/sbcl)
10752 (native-inputs
10753 `(("stefil" ,sbcl-stefil)))
10754 (inputs
10755 `(("cffi" ,sbcl-cffi)
10756 ("mariadb-lib" ,mariadb "lib")))
10757 (arguments
10758 `(#:tests? #f ; TODO: Tests require a running server
10759 #:phases
10760 (modify-phases %standard-phases
10761 (add-after 'unpack 'fix-paths
10762 (lambda* (#:key inputs #:allow-other-keys)
10763 (substitute* "system.lisp"
10764 (("libmysqlclient_r" all)
10765 (string-append (assoc-ref inputs "mariadb-lib")
10766 "/lib/"
10767 all)))
10768 #t)))))
10769 (synopsis "Common Lisp wrapper for MySQL")
10770 (description
10771 "@code{cl-mysql} is a Common Lisp implementation of a MySQL wrapper.")
10772 (home-page "http://www.hackinghat.com/index.php/cl-mysql")
10773 (license license:expat))))
10774
10775 (define-public cl-mysql
10776 (sbcl-package->cl-source-package sbcl-cl-mysql))
10777
10778 (define-public sbcl-simple-date
10779 (let ((commit "74469b25bbda990ec9b77e0d0eccdba0cd7e721a")
10780 (revision "1"))
10781 (package
10782 (name "sbcl-simple-date")
10783 (version (git-version "1.19" revision commit))
10784 (source
10785 (origin
10786 (method git-fetch)
10787 (uri (git-reference
10788 (url "https://github.com/marijnh/Postmodern.git")
10789 (commit commit)))
10790 (file-name (git-file-name name version))
10791 (sha256
10792 (base32 "0im7ymnyxjhn2w74jfg76k5gpr0gl33n31akx33hl28722ljd0hd"))))
10793 (build-system asdf-build-system/sbcl)
10794 (native-inputs
10795 `(("fiveam" ,sbcl-fiveam)))
10796 (synopsis "Basic date and time objects for Common Lisp")
10797 (description
10798 "@code{simple-date} is a very basic implementation of date and time
10799 objects, used to support storing and retrieving time-related SQL types.")
10800 (home-page "https://marijnhaverbeke.nl/postmodern/")
10801 (license license:zlib))))
10802
10803 (define-public cl-simple-date
10804 (sbcl-package->cl-source-package sbcl-simple-date))
10805
10806 (define-public ecl-simple-date
10807 (sbcl-package->ecl-package sbcl-simple-date))
10808
10809 (define-public sbcl-cl-postgres
10810 (package
10811 (inherit sbcl-simple-date)
10812 (name "sbcl-cl-postgres")
10813 (native-inputs
10814 `(("fiveam" ,sbcl-fiveam)
10815 ("simple-date" ,sbcl-simple-date)))
10816 (inputs
10817 `(("md5" ,sbcl-md5)
10818 ("split-sequence" ,sbcl-split-sequence)
10819 ("usocket" ,sbcl-usocket)))
10820 (arguments
10821 `(#:tests? #f)) ; TODO: Break simple-date/postgres-glue circular dependency
10822 (synopsis "Common Lisp interface for PostgreSQL")
10823 (description
10824 "@code{cl-postgres} is a low-level library used for interfacing with
10825 a PostgreSQL server over a socket.")))
10826
10827 (define-public cl-postgres
10828 (sbcl-package->cl-source-package sbcl-cl-postgres))
10829
10830 (define-public sbcl-simple-date-postgres-glue
10831 (package
10832 (inherit sbcl-simple-date)
10833 (name "sbcl-simple-date-postgres-glue")
10834 (inputs
10835 `(("cl-postgres" ,sbcl-cl-postgres)
10836 ("simple-date" ,sbcl-simple-date)))
10837 (arguments
10838 `(#:asd-file "simple-date.asd"
10839 #:asd-system-name "simple-date/postgres-glue"))))
10840
10841 (define-public cl-simple-date-postgres-glue
10842 (sbcl-package->cl-source-package sbcl-simple-date-postgres-glue))
10843
10844 (define-public sbcl-s-sql
10845 (package
10846 (inherit sbcl-simple-date)
10847 (name "sbcl-s-sql")
10848 (inputs
10849 `(("alexandria" ,sbcl-alexandria)
10850 ("cl-postgres" ,sbcl-cl-postgres)))
10851 (arguments
10852 `(#:tests? #f)) ; TODO: Break postmodern circular dependency
10853 (synopsis "Lispy DSL for SQL")
10854 (description
10855 "@code{s-sql} is a Common Lisp library that can be used to compile
10856 s-expressions to strings of SQL code, escaping any Lisp values inside, and
10857 doing as much as possible of the work at compile time.")))
10858
10859 (define-public cl-s-sql
10860 (sbcl-package->cl-source-package sbcl-s-sql))
10861
10862 (define-public sbcl-postmodern
10863 (package
10864 (inherit sbcl-simple-date)
10865 (name "sbcl-postmodern")
10866 (native-inputs
10867 `(("fiveam" ,sbcl-fiveam)
10868 ("simple-date" ,sbcl-simple-date)
10869 ("simple-date-postgres-glue" ,sbcl-simple-date-postgres-glue)))
10870 (inputs
10871 `(("alexandria" ,sbcl-alexandria)
10872 ("bordeaux-threads" ,sbcl-bordeaux-threads)
10873 ("cl-postgres" ,sbcl-cl-postgres)
10874 ("closer-mop" ,sbcl-closer-mop)
10875 ("global-vars" ,sbcl-global-vars)
10876 ("s-sql" ,sbcl-s-sql)
10877 ("split-sequence" ,sbcl-split-sequence)))
10878 (arguments
10879 ;; TODO: Fix missing dependency errors for simple-date/postgres-glue,
10880 ;; cl-postgres/tests and s-sql/tests.
10881 `(#:tests? #f))
10882 (synopsis "Common Lisp library for interacting with PostgreSQL")
10883 (description
10884 "@code{postmodern} is a Common Lisp library for interacting with
10885 PostgreSQL databases. It provides the following features:
10886
10887 @itemize
10888 @item Efficient communication with the database server without need for
10889 foreign libraries.
10890 @item Support for UTF-8 on Unicode-aware Lisp implementations.
10891 @item A syntax for mixing SQL and Lisp code.
10892 @item Convenient support for prepared statements and stored procedures.
10893 @item A metaclass for simple database-access objects.
10894 @end itemize\n")))
10895
10896 (define-public cl-postmodern
10897 (sbcl-package->cl-source-package sbcl-postmodern))
10898
10899 (define-public sbcl-dbi
10900 (package
10901 (name "sbcl-dbi")
10902 (version "0.9.4")
10903 (source
10904 (origin
10905 (method git-fetch)
10906 (uri (git-reference
10907 (url "https://github.com/fukamachi/cl-dbi.git")
10908 (commit version)))
10909 (file-name (git-file-name name version))
10910 (sha256
10911 (base32 "0m1fsravfaizamdak84adh3jxc4j91maqnrb4m08bfbmb04cdqhs"))))
10912 (build-system asdf-build-system/sbcl)
10913 (inputs
10914 `(("bordeaux-threads" ,sbcl-bordeaux-threads)
10915 ("closer-mop" ,sbcl-closer-mop)
10916 ("split-sequence" ,sbcl-split-sequence)))
10917 (arguments
10918 `(#:tests? #f)) ; TODO: Break circular dependency with dbd-*
10919 (synopsis "Database independent interface for Common Lisp")
10920 (description
10921 "@code{dbi} is a Common Lisp library providing a database independent
10922 interface for MySQL, PostgreSQL and SQLite.")
10923 (home-page "https://github.com/fukamachi/cl-dbi")
10924 (license license:llgpl)))
10925
10926 (define-public cl-dbi
10927 (sbcl-package->cl-source-package sbcl-dbi))
10928
10929 (define-public sbcl-dbd-mysql
10930 (package
10931 (inherit sbcl-dbi)
10932 (name "sbcl-dbd-mysql")
10933 (inputs
10934 `(("cl-mysql" ,sbcl-cl-mysql)
10935 ("dbi" ,sbcl-dbi)))
10936 (synopsis "Database driver for MySQL")))
10937
10938 (define-public cl-dbd-mysql
10939 (sbcl-package->cl-source-package sbcl-dbd-mysql))
10940
10941 (define-public sbcl-dbd-postgres
10942 (package
10943 (inherit sbcl-dbi)
10944 (name "sbcl-dbd-postgres")
10945 (inputs
10946 `(("cl-postgres" ,sbcl-cl-postgres)
10947 ("dbi" ,sbcl-dbi)
10948 ("trivial-garbage" ,sbcl-trivial-garbage)))
10949 (synopsis "Database driver for PostgreSQL")))
10950
10951 (define-public cl-dbd-postgres
10952 (sbcl-package->cl-source-package sbcl-dbd-postgres))
10953
10954 (define-public sbcl-dbd-sqlite3
10955 (package
10956 (inherit sbcl-dbi)
10957 (name "sbcl-dbd-sqlite3")
10958 (inputs
10959 `(("cl-sqlite" ,sbcl-cl-sqlite)
10960 ("dbi" ,sbcl-dbi)
10961 ("trivial-garbage" ,sbcl-trivial-garbage)))
10962 (synopsis "Database driver for SQLite3")))
10963
10964 (define-public cl-dbd-sqlite3
10965 (sbcl-package->cl-source-package sbcl-dbd-sqlite3))