gnu: sbcl-cl-syntax-annot: Inherit from sbcl-cl-syntax.
[jackhill/guix/guix.git] / gnu / packages / lisp-xyz.scm
1 ;;; GNU Guix --- Functional package management for GNU
2 ;;; Copyright © 2014 John Darrington <jmd@gnu.org>
3 ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
4 ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
5 ;;; Copyright © 2016 Federico Beffa <beffa@fbengineering.ch>
6 ;;; Copyright © 2016, 2017 ng0 <ng0@n0.is>
7 ;;; Copyright © 2016, 2017 Andy Patterson <ajpatter@uwaterloo.ca>
8 ;;; Copyright © 2017, 2019, 2020 Ricardo Wurmus <rekado@elephly.net>
9 ;;; Copyright © 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
10 ;;; Copyright © 2017, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
11 ;;; Copyright © 2018 Benjamin Slade <slade@jnanam.net>
12 ;;; Copyright © 2018 Alex Vong <alexvong1995@gmail.com>
13 ;;; Copyright © 2018, 2020 Pierre Neidhardt <mail@ambrevar.xyz>
14 ;;; Copyright © 2018, 2019 Pierre Langlois <pierre.langlois@gmx.com>
15 ;;; Copyright © 2019, 2020 Katherine Cox-Buday <cox.katherine.e@gmail.com>
16 ;;; Copyright © 2019 Jesse Gildersleve <jessejohngildersleve@protonmail.com>
17 ;;; Copyright © 2019, 2020 Guillaume Le Vaillant <glv@posteo.net>
18 ;;; Copyright © 2019 Brett Gilio <brettg@gnu.org>
19 ;;; Copyright © 2020 Konrad Hinsen <konrad.hinsen@fastmail.net>
20 ;;; Copyright © 2020 Dimakis Dimakakos <me@bendersteed.tech>
21 ;;; Copyright © 2020 Oleg Pykhalov <go.wigust@gmail.com>
22 ;;;
23 ;;; This file is part of GNU Guix.
24 ;;;
25 ;;; GNU Guix is free software; you can redistribute it and/or modify it
26 ;;; under the terms of the GNU General Public License as published by
27 ;;; the Free Software Foundation; either version 3 of the License, or (at
28 ;;; your option) any later version.
29 ;;;
30 ;;; GNU Guix is distributed in the hope that it will be useful, but
31 ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
32 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
33 ;;; GNU General Public License for more details.
34 ;;;
35 ;;; You should have received a copy of the GNU General Public License
36 ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
37
38 ;;; This file only contains Common Lisp libraries.
39 ;;; Common Lisp compilers and tooling go to lisp.scm.
40 ;;; Common Lisp applications should go to the most appropriate file,
41 ;;; e.g. StumpWM is in wm.scm.
42
43 (define-module (gnu packages lisp-xyz)
44 #:use-module (gnu packages)
45 #:use-module ((guix licenses) #:prefix license:)
46 #:use-module (guix packages)
47 #:use-module (guix download)
48 #:use-module (guix git-download)
49 #:use-module (guix hg-download)
50 #:use-module (guix utils)
51 #:use-module (guix build-system asdf)
52 #:use-module (guix build-system trivial)
53 #:use-module (gnu packages c)
54 #:use-module (gnu packages compression)
55 #:use-module (gnu packages databases)
56 #:use-module (gnu packages enchant)
57 #:use-module (gnu packages glib)
58 #:use-module (gnu packages gtk)
59 #:use-module (gnu packages imagemagick)
60 #:use-module (gnu packages libevent)
61 #:use-module (gnu packages libffi)
62 #:use-module (gnu packages lisp)
63 #:use-module (gnu packages maths)
64 #:use-module (gnu packages networking)
65 #:use-module (gnu packages pkg-config)
66 #:use-module (gnu packages python)
67 #:use-module (gnu packages python-xyz)
68 #:use-module (gnu packages sqlite)
69 #:use-module (gnu packages tcl)
70 #:use-module (gnu packages tls)
71 #:use-module (gnu packages webkit)
72 #:use-module (gnu packages xdisorg)
73 #:use-module (ice-9 match)
74 #:use-module (srfi srfi-19))
75
76 (define-public sbcl-alexandria
77 (let ((commit "5e5c7d83090cc0fbf32c4628362ac3ce2c50dc59"))
78 (package
79 (name "sbcl-alexandria")
80 (version "1.0.1")
81 (source
82 (origin
83 (method git-fetch)
84 (uri (git-reference
85 (url "https://gitlab.common-lisp.net/alexandria/alexandria.git")
86 (commit commit)))
87 (sha256
88 (base32
89 "010w8829dq28jf8ajfzas9nfvpxa5bal04mg299xq6y9spihc2iz"))
90 (file-name (git-file-name name version))))
91 (build-system asdf-build-system/sbcl)
92 (native-inputs
93 `(("rt" ,sbcl-rt)))
94 (synopsis "Collection of portable utilities for Common Lisp")
95 (description
96 "Alexandria is a collection of portable utilities. It does not contain
97 conceptual extensions to Common Lisp. It is conservative in scope, and
98 portable between implementations.")
99 (home-page "https://common-lisp.net/project/alexandria/")
100 (license license:public-domain))))
101
102 (define-public cl-alexandria
103 (sbcl-package->cl-source-package sbcl-alexandria))
104
105 (define-public ecl-alexandria
106 (sbcl-package->ecl-package sbcl-alexandria))
107
108 (define-public sbcl-net.didierverna.asdf-flv
109 (package
110 (name "sbcl-net.didierverna.asdf-flv")
111 (version "2.1")
112 (source
113 (origin
114 (method git-fetch)
115 (uri (git-reference
116 (url "https://github.com/didierverna/asdf-flv")
117 (commit (string-append "version-" version))))
118 (file-name (git-file-name "asdf-flv" version))
119 (sha256
120 (base32 "1fi2y4baxan103jbg4idjddzihy03kwnj2mzbwrknw4d4x7xlgwj"))))
121 (build-system asdf-build-system/sbcl)
122 (synopsis "Common Lisp ASDF extension to provide support for file-local variables")
123 (description "ASDF-FLV provides support for file-local variables through
124 ASDF. A file-local variable behaves like @code{*PACKAGE*} and
125 @code{*READTABLE*} with respect to @code{LOAD} and @code{COMPILE-FILE}: a new
126 dynamic binding is created before processing the file, so that any
127 modification to the variable becomes essentially file-local.
128
129 In order to make one or several variables file-local, use the macros
130 @code{SET-FILE-LOCAL-VARIABLE(S)}.")
131 (home-page "https://www.lrde.epita.fr/~didier/software/lisp/misc.php#asdf-flv")
132 (license (license:non-copyleft
133 "https://www.gnu.org/prep/maintain/html_node/License-Notices-for-Other-Files.html"
134 "GNU All-Permissive License"))))
135
136 (define-public cl-net.didierverna.asdf-flv
137 (sbcl-package->cl-source-package sbcl-net.didierverna.asdf-flv))
138
139 (define-public ecl-net.didierverna.asdf-flv
140 (sbcl-package->ecl-package sbcl-net.didierverna.asdf-flv))
141
142 (define-public sbcl-fiveam
143 (package
144 (name "sbcl-fiveam")
145 (version "1.4.1")
146 (source
147 (origin
148 (method git-fetch)
149 (uri (git-reference
150 (url "https://github.com/sionescu/fiveam.git")
151 (commit (string-append "v" version))))
152 (file-name (git-file-name "fiveam" version))
153 (sha256
154 (base32 "1q3d38pwafnwnw42clq0f8g5xw7pbzr287jl9jsqmb1vb0n1vrli"))))
155 (inputs
156 `(("alexandria" ,sbcl-alexandria)
157 ("net.didierverna.asdf-flv" ,sbcl-net.didierverna.asdf-flv)
158 ("trivial-backtrace" ,sbcl-trivial-backtrace)))
159 (build-system asdf-build-system/sbcl)
160 (synopsis "Common Lisp testing framework")
161 (description "FiveAM is a simple (as far as writing and running tests
162 goes) regression testing framework. It has been designed with Common Lisp's
163 interactive development model in mind.")
164 (home-page "https://common-lisp.net/project/fiveam/")
165 (license license:bsd-3)))
166
167 (define-public cl-fiveam
168 (sbcl-package->cl-source-package sbcl-fiveam))
169
170 (define-public ecl-fiveam
171 (sbcl-package->ecl-package sbcl-fiveam))
172
173 (define-public sbcl-bordeaux-threads
174 (package
175 (name "sbcl-bordeaux-threads")
176 (version "0.8.7")
177 (source (origin
178 (method git-fetch)
179 (uri (git-reference
180 (url "https://github.com/sionescu/bordeaux-threads.git")
181 (commit (string-append "v" version))))
182 (sha256
183 (base32 "1whpfmyxp2fsw6viqj45fqgsifgr534c575bfh5vaqw5m84b6alp"))
184 (file-name
185 (git-file-name "bordeaux-threads" version))))
186 (inputs `(("alexandria" ,sbcl-alexandria)))
187 (native-inputs `(("fiveam" ,sbcl-fiveam)))
188 (build-system asdf-build-system/sbcl)
189 (synopsis "Portable shared-state concurrency library for Common Lisp")
190 (description "BORDEAUX-THREADS is a proposed standard for a minimal
191 MP/Threading interface. It is similar to the CLIM-SYS threading and lock
192 support.")
193 (home-page "https://common-lisp.net/project/bordeaux-threads/")
194 (license license:x11)))
195
196 (define-public cl-bordeaux-threads
197 (sbcl-package->cl-source-package sbcl-bordeaux-threads))
198
199 (define-public ecl-bordeaux-threads
200 (sbcl-package->ecl-package sbcl-bordeaux-threads))
201
202 (define-public sbcl-trivial-gray-streams
203 (let ((revision "1")
204 (commit "ebd59b1afed03b9dc8544320f8f432fdf92ab010"))
205 (package
206 (name "sbcl-trivial-gray-streams")
207 (version (string-append "0.0.0-" revision "." (string-take commit 7)))
208 (source
209 (origin
210 (method git-fetch)
211 (uri
212 (git-reference
213 (url "https://github.com/trivial-gray-streams/trivial-gray-streams.git")
214 (commit commit)))
215 (sha256
216 (base32 "0b1pxlccmnagk9cbh4cy8s5k66g3x0gwib5shjwr24xvrji6lp94"))
217 (file-name
218 (string-append "trivial-gray-streams-" version "-checkout"))))
219 (build-system asdf-build-system/sbcl)
220 (synopsis "Compatibility layer for Gray streams implementations")
221 (description "Gray streams is an interface proposed for inclusion with
222 ANSI CL by David N. Gray. The proposal did not make it into ANSI CL, but most
223 popular CL implementations implement it. This package provides an extremely
224 thin compatibility layer for gray streams.")
225 (home-page "https://www.cliki.net/trivial-gray-streams")
226 (license license:x11))))
227
228 (define-public cl-trivial-gray-streams
229 (sbcl-package->cl-source-package sbcl-trivial-gray-streams))
230
231 (define-public ecl-trivial-gray-streams
232 (sbcl-package->ecl-package sbcl-trivial-gray-streams))
233
234 (define-public sbcl-fiasco
235 (let ((commit "d62f7558b21addc89f87e306f65d7f760632655f")
236 (revision "1"))
237 (package
238 (name "sbcl-fiasco")
239 (version (git-version "0.0.1" revision commit))
240 (source
241 (origin
242 (method git-fetch)
243 (uri (git-reference
244 (url "https://github.com/joaotavora/fiasco.git")
245 (commit commit)))
246 (file-name (git-file-name "fiasco" version))
247 (sha256
248 (base32
249 "1zwxs3d6iswayavcmb49z2892xhym7n556d8dnmvalc32pm9bkjh"))))
250 (build-system asdf-build-system/sbcl)
251 (inputs
252 `(("alexandria" ,sbcl-alexandria)
253 ("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
254 (synopsis "Simple and powerful test framework for Common Lisp")
255 (description "A Common Lisp test framework that treasures your failures,
256 logical continuation of Stefil. It focuses on interactive debugging.")
257 (home-page "https://github.com/joaotavora/fiasco")
258 ;; LICENCE specifies this is public-domain unless the legislation
259 ;; doesn't allow or recognize it. In that case it falls back to a
260 ;; permissive licence.
261 (license (list license:public-domain
262 (license:x11-style "file://LICENCE"))))))
263
264 (define-public cl-fiasco
265 (sbcl-package->cl-source-package sbcl-fiasco))
266
267 (define-public ecl-fiasco
268 (sbcl-package->ecl-package sbcl-fiasco))
269
270 (define-public sbcl-flexi-streams
271 (package
272 (name "sbcl-flexi-streams")
273 (version "1.0.18")
274 (source
275 (origin
276 (method git-fetch)
277 (uri (git-reference
278 (url "https://github.com/edicl/flexi-streams.git")
279 (commit (string-append "v" version))))
280 (file-name (git-file-name "flexi-streams" version))
281 (sha256
282 (base32 "0bjv7fd2acknidc5dyi3h85pn10krxv5jyxs1xg8jya2rlfv7f1j"))))
283 (build-system asdf-build-system/sbcl)
284 (arguments
285 `(#:phases
286 (modify-phases %standard-phases
287 (add-after 'unpack 'make-git-checkout-writable
288 (lambda _
289 (for-each make-file-writable (find-files "."))
290 #t)))))
291 (inputs `(("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
292 (synopsis "Implementation of virtual bivalent streams for Common Lisp")
293 (description "Flexi-streams is an implementation of \"virtual\" bivalent
294 streams that can be layered atop real binary or bivalent streams and that can
295 be used to read and write character data in various single- or multi-octet
296 encodings which can be changed on the fly. It also supplies in-memory binary
297 streams which are similar to string streams.")
298 (home-page "http://weitz.de/flexi-streams/")
299 (license license:bsd-3)))
300
301 (define-public cl-flexi-streams
302 (sbcl-package->cl-source-package sbcl-flexi-streams))
303
304 (define-public ecl-flexi-streams
305 (sbcl-package->ecl-package sbcl-flexi-streams))
306
307 (define-public sbcl-cl-ppcre
308 (package
309 (name "sbcl-cl-ppcre")
310 (version "2.1.1")
311 (source
312 (origin
313 (method git-fetch)
314 (uri (git-reference
315 (url "https://github.com/edicl/cl-ppcre.git")
316 (commit (string-append "v" version))))
317 (file-name (git-file-name "cl-ppcre" version))
318 (sha256
319 (base32 "0dwvr29diqzcg5n6jvbk2rnd90i05l7n828hhw99khmqd0kz7xsi"))))
320 (build-system asdf-build-system/sbcl)
321 (native-inputs `(("flexi-streams" ,sbcl-flexi-streams)))
322 (synopsis "Portable regular expression library for Common Lisp")
323 (description "CL-PPCRE is a portable regular expression library for Common
324 Lisp, which is compatible with perl. It is pretty fast, thread-safe, and
325 compatible with ANSI-compliant Common Lisp implementations.")
326 (home-page "http://weitz.de/cl-ppcre/")
327 (license license:bsd-2)))
328
329 (define-public cl-ppcre
330 (sbcl-package->cl-source-package sbcl-cl-ppcre))
331
332 (define-public ecl-cl-ppcre
333 (sbcl-package->ecl-package sbcl-cl-ppcre))
334
335 (define sbcl-cl-unicode-base
336 (package
337 (name "sbcl-cl-unicode-base")
338 (version "0.1.6")
339 (source (origin
340 (method git-fetch)
341 (uri (git-reference
342 (url "https://github.com/edicl/cl-unicode.git")
343 (commit (string-append "v" version))))
344 (file-name (git-file-name name version))
345 (sha256
346 (base32
347 "0ykx2s9lqfl74p1px0ik3l2izd1fc9jd1b4ra68s5x34rvjy0hza"))))
348 (build-system asdf-build-system/sbcl)
349 (arguments
350 '(#:asd-file "cl-unicode.asd"
351 #:asd-system-name "cl-unicode/base"))
352 (inputs
353 `(("cl-ppcre" ,sbcl-cl-ppcre)))
354 (home-page "http://weitz.de/cl-unicode/")
355 (synopsis "Portable Unicode library for Common Lisp")
356 (description "CL-UNICODE is a portable Unicode library Common Lisp, which
357 is compatible with perl. It is pretty fast, thread-safe, and compatible with
358 ANSI-compliant Common Lisp implementations.")
359 (license license:bsd-2)))
360
361 (define-public sbcl-cl-unicode
362 (package
363 (inherit sbcl-cl-unicode-base)
364 (name "sbcl-cl-unicode")
365 (inputs
366 `(("cl-unicode/base" ,sbcl-cl-unicode-base)
367 ,@(package-inputs sbcl-cl-unicode-base)))
368 (native-inputs
369 `(("flexi-streams" ,sbcl-flexi-streams)))
370 (arguments '())))
371
372 (define-public ecl-cl-unicode
373 (sbcl-package->ecl-package sbcl-cl-unicode))
374
375 (define-public cl-unicode
376 (sbcl-package->cl-source-package sbcl-cl-unicode))
377
378 (define-public sbcl-zpb-ttf
379 (package
380 (name "sbcl-zpb-ttf")
381 (version "1.0.3")
382 (source
383 (origin
384 (method git-fetch)
385 (uri (git-reference
386 (url "https://github.com/xach/zpb-ttf.git")
387 (commit (string-append "release-" version))))
388 (file-name (git-file-name name version))
389 (sha256
390 (base32
391 "1wh66vjijzqlydnrihynpwp6796917xwrh0i9li93c17kyxa74ih"))))
392 (build-system asdf-build-system/sbcl)
393 (home-page "https://github.com/xach/zpb-ttf")
394 (synopsis "TrueType font file access for Common Lisp")
395 (description
396 "ZPB-TTF is a TrueType font file parser that provides an interface for
397 reading typographic metrics, glyph outlines, and other information from the
398 file.")
399 (license license:bsd-2)))
400
401 (define-public ecl-zpb-ttf
402 (sbcl-package->ecl-package sbcl-zpb-ttf))
403
404 (define-public cl-zpb-ttf
405 (sbcl-package->cl-source-package sbcl-zpb-ttf))
406
407 (define-public sbcl-cl-aa
408 (package
409 (name "sbcl-cl-aa")
410 (version "0.1.5")
411 (source
412 (origin
413 (method url-fetch)
414 (uri (string-append "http://projects.tuxee.net/cl-vectors/"
415 "files/cl-vectors-" version ".tar.gz"))
416 (sha256
417 (base32
418 "04lhwi0kq8pkwhgd885pk80m1cp9sfvjjn5zj70s1dnckibhdmqh"))))
419 (build-system asdf-build-system/sbcl)
420 (arguments '(#:asd-file "cl-aa.asd"))
421 (home-page "http://projects.tuxee.net/cl-vectors/")
422 (synopsis "Polygon rasterizer")
423 (description
424 "This is a Common Lisp library implementing the AA polygon rasterization
425 algorithm from the @url{http://antigrain.com, Antigrain} project.")
426 (license license:expat)))
427
428 (define-public ecl-cl-aa
429 (sbcl-package->ecl-package sbcl-cl-aa))
430
431 (define-public cl-aa
432 (sbcl-package->cl-source-package sbcl-cl-aa))
433
434 (define-public sbcl-cl-paths
435 (package
436 (inherit sbcl-cl-aa)
437 (name "sbcl-cl-paths")
438 (arguments '(#:asd-file "cl-paths.asd"))
439 (synopsis "Facilities to create and manipulate vectorial paths")
440 (description
441 "This package provides facilities to create and manipulate vectorial
442 paths.")))
443
444 (define-public ecl-cl-paths
445 (sbcl-package->ecl-package sbcl-cl-paths))
446
447 (define-public cl-paths
448 (sbcl-package->cl-source-package sbcl-cl-paths))
449
450 (define-public sbcl-cl-paths-ttf
451 (package
452 (inherit sbcl-cl-aa)
453 (name "sbcl-cl-paths-ttf")
454 (arguments '(#:asd-file "cl-paths-ttf.asd"))
455 (inputs
456 `(("cl-paths" ,sbcl-cl-paths)
457 ("zpb-ttf" ,sbcl-zpb-ttf)))
458 (synopsis "Facilities to create and manipulate vectorial paths")
459 (description
460 "This package provides facilities to create and manipulate vectorial
461 paths.")))
462
463 (define-public ecl-cl-paths-ttf
464 (sbcl-package->ecl-package sbcl-cl-paths-ttf))
465
466 (define-public cl-paths-ttf
467 (sbcl-package->cl-source-package sbcl-cl-paths-ttf))
468
469 (define-public sbcl-cl-vectors
470 (package
471 (inherit sbcl-cl-aa)
472 (name "sbcl-cl-vectors")
473 (arguments '(#:asd-file "cl-vectors.asd"))
474 (inputs
475 `(("cl-aa" ,sbcl-cl-aa)
476 ("cl-paths" ,sbcl-cl-paths)))
477 (synopsis "Create, transform and render anti-aliased vectorial paths")
478 (description
479 "This is a pure Common Lisp library to create, transform and render
480 anti-aliased vectorial paths.")))
481
482 (define-public ecl-cl-vectors
483 (sbcl-package->ecl-package sbcl-cl-vectors))
484
485 (define-public cl-vectors
486 (sbcl-package->cl-source-package sbcl-cl-vectors))
487
488 (define-public sbcl-spatial-trees
489 ;; There have been no releases.
490 (let ((commit "81fdad0a0bf109c80a53cc96eca2e093823400ba")
491 (revision "1"))
492 (package
493 (name "sbcl-spatial-trees")
494 (version (git-version "0" revision commit))
495 (source
496 (origin
497 (method git-fetch)
498 (uri (git-reference
499 (url "https://github.com/rpav/spatial-trees.git")
500 (commit commit)))
501 (file-name (git-file-name name version))
502 (sha256
503 (base32
504 "11rhc6h501dwcik2igkszz7b9n515cr99m5pjh4r2qfwgiri6ysa"))))
505 (build-system asdf-build-system/sbcl)
506 (arguments
507 '(#:tests? #f ; spatial-trees.test requires spatial-trees.nns
508 #:asd-file "spatial-trees.asd"
509 #:test-asd-file "spatial-trees.test.asd"))
510 (native-inputs
511 `(("fiveam" ,sbcl-fiveam)))
512 (home-page "https://github.com/rpav/spatial-trees")
513 (synopsis "Dynamic index data structures for spatially-extended data")
514 (description
515 "Spatial-trees is a set of dynamic index data structures for
516 spatially-extended data.")
517 (license license:bsd-3))))
518
519 (define-public ecl-spatial-trees
520 (sbcl-package->ecl-package sbcl-spatial-trees))
521
522 (define-public cl-spatial-trees
523 (sbcl-package->cl-source-package sbcl-spatial-trees))
524
525 (define-public sbcl-flexichain
526 ;; There are no releases.
527 (let ((commit "13d2a6c505ed0abfcd4c4ec7d7145059b06855d6")
528 (revision "1"))
529 (package
530 (name "sbcl-flexichain")
531 (version "1.5.1")
532 (source
533 (origin
534 (method git-fetch)
535 (uri (git-reference
536 (url "https://github.com/robert-strandh/Flexichain.git")
537 (commit commit)))
538 (file-name (git-file-name name version))
539 (sha256
540 (base32
541 "0pfyvhsfbjd2sjb30grfs52r51a428xglv7bwydvpg2lc117qimg"))))
542 (build-system asdf-build-system/sbcl)
543 (home-page "https://github.com/robert-strandh/Flexichain.git")
544 (synopsis "Dynamically add elements to or remove them from sequences")
545 (description
546 "This package provides an implementation of the flexichain protocol,
547 allowing client code to dynamically add elements to, and delete elements from
548 a sequence (or chain) of such elements.")
549 (license license:lgpl2.1+))))
550
551 (define-public ecl-flexichain
552 (sbcl-package->ecl-package sbcl-flexichain))
553
554 (define-public cl-flexichain
555 (sbcl-package->cl-source-package sbcl-flexichain))
556
557 (define-public sbcl-cl-pdf
558 ;; There are no releases
559 (let ((commit "752e337e6d6fc206f09d091a982e7f8e5c404e4e")
560 (revision "1"))
561 (package
562 (name "sbcl-cl-pdf")
563 (version (git-version "0" revision commit))
564 (source
565 (origin
566 (method git-fetch)
567 (uri (git-reference
568 (url "https://github.com/mbattyani/cl-pdf.git")
569 (commit commit)))
570 (file-name (git-file-name name version))
571 (sha256
572 (base32
573 "1cg3k3m3r11ipb8j008y8ipynj97l3xjlpi2knqc9ndmx4r3kb1r"))))
574 (build-system asdf-build-system/sbcl)
575 (inputs
576 `(("iterate" ,sbcl-iterate)
577 ("zpb-ttf" ,sbcl-zpb-ttf)))
578 (home-page "https://github.com/mbattyani/cl-pdf")
579 (synopsis "Common Lisp library for generating PDF files")
580 (description
581 "CL-PDF is a cross-platform Common Lisp library for generating PDF
582 files.")
583 (license license:bsd-2))))
584
585 (define-public ecl-cl-pdf
586 (sbcl-package->ecl-package sbcl-cl-pdf))
587
588 (define-public cl-pdf
589 (sbcl-package->cl-source-package sbcl-cl-pdf))
590
591 (define-public sbcl-clx
592 (package
593 (name "sbcl-clx")
594 (version "0.7.5")
595 (source
596 (origin
597 (method git-fetch)
598 (uri
599 (git-reference
600 (url "https://github.com/sharplispers/clx.git")
601 (commit version)))
602 (sha256
603 (base32
604 "1vi67z9hpj5rr4xcmfbfwzmlcc0ah7hzhrmfid6lqdkva238v2wf"))
605 (file-name (string-append "clx-" version))))
606 (build-system asdf-build-system/sbcl)
607 (native-inputs
608 `(("fiasco" ,sbcl-fiasco)))
609 (home-page "https://www.cliki.net/portable-clx")
610 (synopsis "X11 client library for Common Lisp")
611 (description "CLX is an X11 client library for Common Lisp. The code was
612 originally taken from a CMUCL distribution, was modified somewhat in order to
613 make it compile and run under SBCL, then a selection of patches were added
614 from other CLXes around the net.")
615 (license license:x11)))
616
617 (define-public cl-clx
618 (sbcl-package->cl-source-package sbcl-clx))
619
620 (define-public ecl-clx
621 (sbcl-package->ecl-package sbcl-clx))
622
623 (define-public sbcl-clx-truetype
624 (let ((commit "c6e10a918d46632324d5863a8ed067a83fc26de8")
625 (revision "1"))
626 (package
627 (name "sbcl-clx-truetype")
628 (version (git-version "0.0.1" revision commit))
629 (source
630 (origin
631 (method git-fetch)
632 (uri (git-reference
633 (url "https://github.com/l04m33/clx-truetype")
634 (commit commit)))
635 (file-name (git-file-name name version))
636 (sha256
637 (base32
638 "079hyp92cjkdfn6bhkxsrwnibiqbz4y4af6nl31lzw6nm91j5j37"))
639 (modules '((guix build utils)))
640 (snippet
641 '(begin
642 (substitute* "package.lisp"
643 ((":export") ":export\n :+font-cache-filename+"))
644 #t))))
645 (build-system asdf-build-system/sbcl)
646 (inputs
647 `(("clx" ,sbcl-clx)
648 ("zpb-ttf" ,sbcl-zpb-ttf)
649 ("cl-vectors" ,sbcl-cl-vectors)
650 ("cl-paths-ttf" ,sbcl-cl-paths-ttf)
651 ("cl-fad" ,sbcl-cl-fad)
652 ("cl-store" ,sbcl-cl-store)
653 ("trivial-features" ,sbcl-trivial-features)))
654 (home-page "https://github.com/l04m33/clx-truetype")
655 (synopsis "Antialiased TrueType font rendering using CLX and XRender")
656 (description "CLX-TrueType is pure common lisp solution for
657 antialiased TrueType font rendering using CLX and XRender extension.")
658 (license license:expat))))
659
660 (define-public sbcl-cl-ppcre-unicode
661 (package (inherit sbcl-cl-ppcre)
662 (name "sbcl-cl-ppcre-unicode")
663 (arguments
664 `(#:tests? #f ; tests fail with "Component :CL-PPCRE-TEST not found"
665 #:asd-file "cl-ppcre-unicode.asd"))
666 (inputs
667 `(("sbcl-cl-ppcre" ,sbcl-cl-ppcre)
668 ("sbcl-cl-unicode" ,sbcl-cl-unicode)))))
669
670 (define-public ecl-cl-ppcre-unicode
671 (sbcl-package->ecl-package sbcl-cl-ppcre-unicode))
672
673 ;; The slynk that users expect to install includes all of slynk's contrib
674 ;; modules. Therefore, we build the base module and all contribs first; then
675 ;; we expose the union of these as `sbcl-slynk'. The following variable
676 ;; describes the base module.
677 (define sbcl-slynk-boot0
678 (let ((revision "2")
679 (commit "cbf84c36c4eca8b032e3fd16177a7bc02df3ec4c"))
680 (package
681 (name "sbcl-slynk-boot0")
682 (version (string-append "1.0.0-beta-" revision "." (string-take commit 7)))
683 (source
684 (origin
685 (method git-fetch)
686 (uri
687 (git-reference
688 (url "https://github.com/joaotavora/sly.git")
689 (commit commit)))
690 (sha256
691 (base32 "13dyhsravn591p7g6is01mp2ynzjnnj7pwgi57r6xqmd4611y9vh"))
692 (file-name (string-append "slynk-" version "-checkout"))
693 (modules '((guix build utils)
694 (ice-9 ftw)))
695 (snippet
696 '(begin
697 ;; Move the contribs into the main source directory for easier
698 ;; access
699 (substitute* "slynk/slynk.asd"
700 (("\\.\\./contrib")
701 "contrib")
702 (("\\(defsystem :slynk/util")
703 "(defsystem :slynk/util :depends-on (:slynk)")
704 ((":depends-on \\(:slynk :slynk/util\\)")
705 ":depends-on (:slynk :slynk-util)"))
706 (substitute* "contrib/slynk-trace-dialog.lisp"
707 (("\\(slynk::reset-inspector\\)") ; Causes problems on load
708 "nil"))
709 (substitute* "contrib/slynk-profiler.lisp"
710 (("slynk:to-line")
711 "slynk-pprint-to-line"))
712 (substitute* "contrib/slynk-fancy-inspector.lisp"
713 (("slynk/util") "slynk-util")
714 ((":compile-toplevel :load-toplevel") ""))
715 (rename-file "contrib" "slynk/contrib")
716 ;; Move slynk's contents into the base directory for easier
717 ;; access
718 (for-each (lambda (file)
719 (unless (string-prefix? "." file)
720 (rename-file (string-append "slynk/" file)
721 (string-append "./" (basename file)))))
722 (scandir "slynk"))
723 #t))))
724 (build-system asdf-build-system/sbcl)
725 (arguments
726 `(#:tests? #f ; No test suite
727 #:asd-system-name "slynk"))
728 (synopsis "Common Lisp IDE for Emacs")
729 (description "SLY is a fork of SLIME, an IDE backend for Common Lisp.
730 It also features a completely redesigned REPL based on Emacs's own
731 full-featured comint.el, live code annotations, and a consistent interactive
732 button interface. Everything can be copied to the REPL. One can create
733 multiple inspectors with independent history.")
734 (home-page "https://github.com/joaotavora/sly")
735 (license license:public-domain)
736 (properties `((cl-source-variant . ,(delay cl-slynk)))))))
737
738 (define-public cl-slynk
739 (package
740 (inherit (sbcl-package->cl-source-package sbcl-slynk-boot0))
741 (name "cl-slynk")))
742
743 (define ecl-slynk-boot0
744 (sbcl-package->ecl-package sbcl-slynk-boot0))
745
746 (define sbcl-slynk-arglists
747 (package
748 (inherit sbcl-slynk-boot0)
749 (name "sbcl-slynk-arglists")
750 (inputs `(("slynk" ,sbcl-slynk-boot0)))
751 (arguments
752 (substitute-keyword-arguments (package-arguments sbcl-slynk-boot0)
753 ((#:asd-file _ "") "slynk.asd")
754 ((#:asd-system-name _ #f) "slynk/arglists")))))
755
756 (define ecl-slynk-arglists
757 (sbcl-package->ecl-package sbcl-slynk-arglists))
758
759 (define sbcl-slynk-util
760 (package
761 (inherit sbcl-slynk-boot0)
762 (name "sbcl-slynk-util")
763 (inputs `(("slynk" ,sbcl-slynk-boot0)))
764 (arguments
765 (substitute-keyword-arguments (package-arguments sbcl-slynk-boot0)
766 ((#:asd-file _ "") "slynk.asd")
767 ((#:asd-system-name _ #f) "slynk/util")))))
768
769 (define ecl-slynk-util
770 (sbcl-package->ecl-package sbcl-slynk-util))
771
772 (define sbcl-slynk-fancy-inspector
773 (package
774 (inherit sbcl-slynk-arglists)
775 (name "sbcl-slynk-fancy-inspector")
776 (inputs `(("slynk-util" ,sbcl-slynk-util)
777 ,@(package-inputs sbcl-slynk-arglists)))
778 (arguments
779 (substitute-keyword-arguments (package-arguments sbcl-slynk-arglists)
780 ((#:asd-system-name _ #f) "slynk/fancy-inspector")))))
781
782 (define ecl-slynk-fancy-inspector
783 (sbcl-package->ecl-package sbcl-slynk-fancy-inspector))
784
785 (define sbcl-slynk-package-fu
786 (package
787 (inherit sbcl-slynk-arglists)
788 (name "sbcl-slynk-package-fu")
789 (arguments
790 (substitute-keyword-arguments (package-arguments sbcl-slynk-arglists)
791 ((#:asd-system-name _ #f) "slynk/package-fu")))))
792
793 (define ecl-slynk-package-fu
794 (sbcl-package->ecl-package sbcl-slynk-package-fu))
795
796 (define sbcl-slynk-mrepl
797 (package
798 (inherit sbcl-slynk-fancy-inspector)
799 (name "sbcl-slynk-mrepl")
800 (arguments
801 (substitute-keyword-arguments (package-arguments sbcl-slynk-arglists)
802 ((#:asd-system-name _ #f) "slynk/mrepl")))))
803
804 (define ecl-slynk-mrepl
805 (sbcl-package->ecl-package sbcl-slynk-mrepl))
806
807 (define sbcl-slynk-trace-dialog
808 (package
809 (inherit sbcl-slynk-arglists)
810 (name "sbcl-slynk-trace-dialog")
811 (arguments
812 (substitute-keyword-arguments (package-arguments sbcl-slynk-arglists)
813 ((#:asd-system-name _ #f) "slynk/trace-dialog")))))
814
815 (define ecl-slynk-trace-dialog
816 (sbcl-package->ecl-package sbcl-slynk-trace-dialog))
817
818 (define sbcl-slynk-profiler
819 (package
820 (inherit sbcl-slynk-arglists)
821 (name "sbcl-slynk-profiler")
822 (arguments
823 (substitute-keyword-arguments (package-arguments sbcl-slynk-arglists)
824 ((#:asd-system-name _ #f) "slynk/profiler")))))
825
826 (define ecl-slynk-profiler
827 (sbcl-package->ecl-package sbcl-slynk-profiler))
828
829 (define sbcl-slynk-stickers
830 (package
831 (inherit sbcl-slynk-arglists)
832 (name "sbcl-slynk-stickers")
833 (arguments
834 (substitute-keyword-arguments (package-arguments sbcl-slynk-arglists)
835 ((#:asd-system-name _ #f) "slynk/stickers")))))
836
837 (define ecl-slynk-stickers
838 (sbcl-package->ecl-package sbcl-slynk-stickers))
839
840 (define sbcl-slynk-indentation
841 (package
842 (inherit sbcl-slynk-arglists)
843 (name "sbcl-slynk-indentation")
844 (arguments
845 (substitute-keyword-arguments (package-arguments sbcl-slynk-arglists)
846 ((#:asd-system-name _ #f) "slynk/indentation")))))
847
848 (define ecl-slynk-indentation
849 (sbcl-package->ecl-package sbcl-slynk-indentation))
850
851 (define sbcl-slynk-retro
852 (package
853 (inherit sbcl-slynk-arglists)
854 (name "sbcl-slynk-retro")
855 (arguments
856 (substitute-keyword-arguments (package-arguments sbcl-slynk-arglists)
857 ((#:asd-system-name _ #f) "slynk/retro")))))
858
859 (define ecl-slynk-retro
860 (sbcl-package->ecl-package sbcl-slynk-retro))
861
862 (define slynk-systems
863 '("slynk"
864 "slynk-util"
865 "slynk-arglists"
866 "slynk-fancy-inspector"
867 "slynk-package-fu"
868 "slynk-mrepl"
869 "slynk-profiler"
870 "slynk-trace-dialog"
871 "slynk-stickers"
872 "slynk-indentation"
873 "slynk-retro"))
874
875 (define-public sbcl-slynk
876 (package
877 (inherit sbcl-slynk-boot0)
878 (name "sbcl-slynk")
879 (inputs
880 `(("slynk" ,sbcl-slynk-boot0)
881 ("slynk-util" ,sbcl-slynk-util)
882 ("slynk-arglists" ,sbcl-slynk-arglists)
883 ("slynk-fancy-inspector" ,sbcl-slynk-fancy-inspector)
884 ("slynk-package-fu" ,sbcl-slynk-package-fu)
885 ("slynk-mrepl" ,sbcl-slynk-mrepl)
886 ("slynk-profiler" ,sbcl-slynk-profiler)
887 ("slynk-trace-dialog" ,sbcl-slynk-trace-dialog)
888 ("slynk-stickers" ,sbcl-slynk-stickers)
889 ("slynk-indentation" ,sbcl-slynk-indentation)
890 ("slynk-retro" ,sbcl-slynk-retro)))
891 (native-inputs `(("sbcl" ,sbcl)))
892 (build-system trivial-build-system)
893 (source #f)
894 (outputs '("out" "image"))
895 (arguments
896 `(#:modules ((guix build union)
897 (guix build utils)
898 (guix build lisp-utils))
899 #:builder
900 (begin
901 (use-modules (ice-9 match)
902 (srfi srfi-1)
903 (guix build union)
904 (guix build lisp-utils))
905
906 (union-build
907 (assoc-ref %outputs "out")
908 (filter-map
909 (match-lambda
910 ((name . path)
911 (if (string-prefix? "slynk" name) path #f)))
912 %build-inputs))
913
914 (prepend-to-source-registry
915 (string-append (assoc-ref %outputs "out") "//"))
916
917 (parameterize ((%lisp-type "sbcl")
918 (%lisp (string-append (assoc-ref %build-inputs "sbcl")
919 "/bin/sbcl")))
920 (build-image (string-append
921 (assoc-ref %outputs "image")
922 "/bin/slynk")
923 %outputs
924 #:dependencies ',slynk-systems))
925 #t)))))
926
927 (define-public ecl-slynk
928 (package
929 (inherit sbcl-slynk)
930 (name "ecl-slynk")
931 (inputs
932 (map (match-lambda
933 ((name pkg . _)
934 (list name (sbcl-package->ecl-package pkg))))
935 (package-inputs sbcl-slynk)))
936 (native-inputs '())
937 (outputs '("out"))
938 (arguments
939 '(#:modules ((guix build union))
940 #:builder
941 (begin
942 (use-modules (ice-9 match)
943 (guix build union))
944 (match %build-inputs
945 (((names . paths) ...)
946 (union-build (assoc-ref %outputs "out")
947 paths)
948 #t)))))))
949
950 (define-public sbcl-parse-js
951 (let ((commit "fbadc6029bec7039602abfc06c73bb52970998f6")
952 (revision "1"))
953 (package
954 (name "sbcl-parse-js")
955 (version (string-append "0.0.0-" revision "." (string-take commit 9)))
956 (source
957 (origin
958 (method git-fetch)
959 (uri (git-reference
960 (url "http://marijn.haverbeke.nl/git/parse-js")
961 (commit commit)))
962 (file-name (string-append name "-" commit "-checkout"))
963 (sha256
964 (base32
965 "1wddrnr5kiya5s3gp4cdq6crbfy9fqcz7fr44p81502sj3bvdv39"))))
966 (build-system asdf-build-system/sbcl)
967 (home-page "https://marijnhaverbeke.nl/parse-js/")
968 (synopsis "Parse JavaScript")
969 (description "Parse-js is a Common Lisp package for parsing
970 JavaScript (ECMAScript 3). It has basic support for ECMAScript 5.")
971 (license license:zlib))))
972
973 (define-public cl-parse-js
974 (sbcl-package->cl-source-package sbcl-parse-js))
975
976 (define-public sbcl-parse-number
977 (package
978 (name "sbcl-parse-number")
979 (version "1.7")
980 (source
981 (origin
982 (method git-fetch)
983 (uri (git-reference
984 (url "https://github.com/sharplispers/parse-number/")
985 (commit (string-append "v" version))))
986 (file-name (git-file-name name version))
987 (sha256
988 (base32
989 "0sk06ib1bhqv9y39vwnnw44vmbc4b0kvqm37xxmkxd4dwchq82d7"))))
990 (build-system asdf-build-system/sbcl)
991 (home-page "https://www.cliki.net/PARSE-NUMBER")
992 (synopsis "Parse numbers")
993 (description "@code{parse-number} is a library of functions for parsing
994 strings into one of the standard Common Lisp number types without using the
995 reader. @code{parse-number} accepts an arbitrary string and attempts to parse
996 the string into one of the standard Common Lisp number types, if possible, or
997 else @code{parse-number} signals an error of type @code{invalid-number}.")
998 (license license:bsd-3)))
999
1000 (define-public cl-parse-number
1001 (sbcl-package->cl-source-package sbcl-parse-number))
1002
1003 (define-public sbcl-iterate
1004 (package
1005 (name "sbcl-iterate")
1006 (version "1.5")
1007 (source
1008 (origin
1009 (method url-fetch)
1010 (uri (string-append "https://common-lisp.net/project/iterate/releases/"
1011 "iterate-" version ".tar.gz"))
1012 (sha256
1013 (base32
1014 "1lqsbhrkfl0yif46aymvb7l3nb9wdcmj4jyw485blj32jb4famzn"))))
1015 (build-system asdf-build-system/sbcl)
1016 (native-inputs
1017 `(("rt" ,sbcl-rt)))
1018 (home-page "https://common-lisp.net/project/iterate/")
1019 (synopsis "Iteration construct for Common Lisp")
1020 (description "@code{iterate} is an iteration construct for Common Lisp.
1021 It is similar to the @code{CL:LOOP} macro, with these distinguishing marks:
1022
1023 @itemize
1024 @item it is extensible,
1025 @item it helps editors like Emacs indent iterate forms by having a more
1026 lisp-like syntax, and
1027 @item it isn't part of the ANSI standard for Common Lisp.
1028 @end itemize\n")
1029 (license license:expat)))
1030
1031 (define-public cl-iterate
1032 (sbcl-package->cl-source-package sbcl-iterate))
1033
1034 (define-public ecl-iterate
1035 (sbcl-package->ecl-package sbcl-iterate))
1036
1037 (define-public sbcl-cl-uglify-js
1038 ;; There have been many bug fixes since the 2010 release.
1039 (let ((commit "429c5e1d844e2f96b44db8fccc92d6e8e28afdd5")
1040 (revision "1"))
1041 (package
1042 (name "sbcl-cl-uglify-js")
1043 (version (string-append "0.1-" revision "." (string-take commit 9)))
1044 (source
1045 (origin
1046 (method git-fetch)
1047 (uri (git-reference
1048 (url "https://github.com/mishoo/cl-uglify-js.git")
1049 (commit commit)))
1050 (file-name (git-file-name name version))
1051 (sha256
1052 (base32
1053 "0k39y3c93jgxpr7gwz7w0d8yknn1fdnxrjhd03057lvk5w8js27a"))))
1054 (build-system asdf-build-system/sbcl)
1055 (inputs
1056 `(("sbcl-parse-js" ,sbcl-parse-js)
1057 ("sbcl-cl-ppcre" ,sbcl-cl-ppcre)
1058 ("sbcl-cl-ppcre-unicode" ,sbcl-cl-ppcre-unicode)
1059 ("sbcl-parse-number" ,sbcl-parse-number)
1060 ("sbcl-iterate" ,sbcl-iterate)))
1061 (home-page "https://github.com/mishoo/cl-uglify-js")
1062 (synopsis "JavaScript compressor library for Common Lisp")
1063 (description "This is a Common Lisp version of UglifyJS, a JavaScript
1064 compressor. It works on data produced by @code{parse-js} to generate a
1065 @dfn{minified} version of the code. Currently it can:
1066
1067 @itemize
1068 @item reduce variable names (usually to single letters)
1069 @item join consecutive @code{var} statements
1070 @item resolve simple binary expressions
1071 @item group most consecutive statements using the @code{sequence} operator (comma)
1072 @item remove unnecessary blocks
1073 @item convert @code{IF} expressions in various ways that result in smaller code
1074 @item remove some unreachable code
1075 @end itemize\n")
1076 (license license:zlib))))
1077
1078 (define-public cl-uglify-js
1079 (sbcl-package->cl-source-package sbcl-cl-uglify-js))
1080
1081 (define-public uglify-js
1082 (package
1083 (inherit sbcl-cl-uglify-js)
1084 (name "uglify-js")
1085 (build-system trivial-build-system)
1086 (arguments
1087 `(#:modules ((guix build utils))
1088 #:builder
1089 (let* ((bin (string-append (assoc-ref %outputs "out") "/bin/"))
1090 (script (string-append bin "uglify-js")))
1091 (use-modules (guix build utils))
1092 (mkdir-p bin)
1093 (with-output-to-file script
1094 (lambda _
1095 (format #t "#!~a/bin/sbcl --script
1096 (require :asdf)
1097 (push (truename \"~a/lib/sbcl\") asdf:*central-registry*)"
1098 (assoc-ref %build-inputs "sbcl")
1099 (assoc-ref %build-inputs "sbcl-cl-uglify-js"))
1100 ;; FIXME: cannot use progn here because otherwise it fails to
1101 ;; find cl-uglify-js.
1102 (for-each
1103 write
1104 '(;; Quiet, please!
1105 (let ((*standard-output* (make-broadcast-stream))
1106 (*error-output* (make-broadcast-stream)))
1107 (asdf:load-system :cl-uglify-js))
1108 (let ((file (cadr *posix-argv*)))
1109 (if file
1110 (format t "~a"
1111 (cl-uglify-js:ast-gen-code
1112 (cl-uglify-js:ast-mangle
1113 (cl-uglify-js:ast-squeeze
1114 (with-open-file (in file)
1115 (parse-js:parse-js in))))
1116 :beautify nil))
1117 (progn
1118 (format *error-output*
1119 "Please provide a JavaScript file.~%")
1120 (sb-ext:exit :code 1))))))))
1121 (chmod script #o755)
1122 #t)))
1123 (inputs
1124 `(("sbcl" ,sbcl)
1125 ("sbcl-cl-uglify-js" ,sbcl-cl-uglify-js)))
1126 (synopsis "JavaScript compressor")))
1127
1128 (define-public sbcl-cl-strings
1129 (let ((revision "1")
1130 (commit "c5c5cbafbf3e6181d03c354d66e41a4f063f00ae"))
1131 (package
1132 (name "sbcl-cl-strings")
1133 (version (git-version "0.0.0" revision commit))
1134 (source
1135 (origin
1136 (method git-fetch)
1137 (uri (git-reference
1138 (url "https://github.com/diogoalexandrefranco/cl-strings")
1139 (commit commit)))
1140 (sha256
1141 (base32
1142 "00754mfaqallj480lwd346nkfb6ra8pa8xcxcylf4baqn604zlmv"))
1143 (file-name (string-append "cl-strings-" version "-checkout"))))
1144 (build-system asdf-build-system/sbcl)
1145 (synopsis "Portable, dependency-free set of utilities to manipulate strings in Common Lisp")
1146 (description
1147 "@command{cl-strings} is a small, portable, dependency-free set of
1148 utilities that make it even easier to manipulate text in Common Lisp. It has
1149 100% test coverage and works at least on sbcl, ecl, ccl, abcl and clisp.")
1150 (home-page "https://github.com/diogoalexandrefranco/cl-strings")
1151 (license license:expat))))
1152
1153 (define-public cl-strings
1154 (sbcl-package->cl-source-package sbcl-cl-strings))
1155
1156 (define-public ecl-cl-strings
1157 (sbcl-package->ecl-package sbcl-cl-strings))
1158
1159 (define-public sbcl-trivial-features
1160 (package
1161 (name "sbcl-trivial-features")
1162 (version "0.8")
1163 (source
1164 (origin
1165 (method git-fetch)
1166 (uri (git-reference
1167 (url "https://github.com/trivial-features/trivial-features.git")
1168 (commit (string-append "v" version))))
1169 (file-name (git-file-name "trivial-features" version))
1170 (sha256
1171 (base32 "0ccv7dqyrk55xga78i5vzlic7mdwp28in3g1a8fqhlk6626scsq9"))))
1172 (build-system asdf-build-system/sbcl)
1173 (arguments '(#:tests? #f))
1174 (home-page "https://cliki.net/trivial-features")
1175 (synopsis "Ensures consistency of @code{*FEATURES*} in Common Lisp")
1176 (description "Trivial-features ensures that @code{*FEATURES*} is
1177 consistent across multiple Common Lisp implementations.")
1178 (license license:expat)))
1179
1180 (define-public cl-trivial-features
1181 (sbcl-package->cl-source-package sbcl-trivial-features))
1182
1183 (define-public ecl-trivial-features
1184 (sbcl-package->ecl-package sbcl-trivial-features))
1185
1186 (define-public sbcl-hu.dwim.asdf
1187 (package
1188 (name "sbcl-hu.dwim.asdf")
1189 (version "20190521")
1190 (source
1191 (origin
1192 (method url-fetch)
1193 (uri (string-append "http://beta.quicklisp.org/archive/hu.dwim.asdf/"
1194 "2019-05-21/hu.dwim.asdf-" version "-darcs.tgz"))
1195 (sha256
1196 (base32
1197 "0rsbv71vyszy8w35yjwb5h6zcmknjq223hkzir79y72qdsc6sabn"))))
1198 (build-system asdf-build-system/sbcl)
1199 (home-page "https://hub.darcs.net/hu.dwim/hu.dwim.asdf")
1200 (synopsis "Extensions to ASDF")
1201 (description "Various ASDF extensions such as attached test and
1202 documentation system, explicit development support, etc.")
1203 (license license:public-domain)))
1204
1205 (define-public cl-hu.dwim.asdf
1206 (sbcl-package->cl-source-package sbcl-hu.dwim.asdf))
1207
1208 (define-public ecl-hu.dwim.asdf
1209 (sbcl-package->ecl-package sbcl-hu.dwim.asdf))
1210
1211 (define-public sbcl-hu.dwim.stefil
1212 (let ((commit "ab6d1aa8995878a1b66d745dfd0ba021090bbcf9"))
1213 (package
1214 (name "sbcl-hu.dwim.stefil")
1215 (version (git-version "0.0.0" "1" commit))
1216 (source
1217 (origin
1218 (method git-fetch)
1219 (uri
1220 (git-reference
1221 (url "https://gitlab.common-lisp.net/xcvb/hu.dwim.stefil.git")
1222 (commit commit)))
1223 (sha256
1224 (base32 "1d8yccw65zj3zh46cbi3x6nmn1dwdb76s9d0av035077mvyirqqp"))
1225 (file-name (git-file-name "hu.dwim.stefil" version))))
1226 (build-system asdf-build-system/sbcl)
1227 (native-inputs
1228 `(("asdf:cl-hu.dwim.asdf" ,sbcl-hu.dwim.asdf)))
1229 (inputs
1230 `(("sbcl-alexandria" ,sbcl-alexandria)))
1231 (home-page "https://hub.darcs.net/hu.dwim/hu.dwim.stefil")
1232 (synopsis "Simple test framework")
1233 (description "Stefil is a simple test framework for Common Lisp,
1234 with a focus on interactive development.")
1235 (license license:public-domain))))
1236
1237 (define-public cl-hu.dwim.stefil
1238 (sbcl-package->cl-source-package sbcl-hu.dwim.stefil))
1239
1240 (define-public ecl-hu.dwim.stefil
1241 (sbcl-package->ecl-package sbcl-hu.dwim.stefil))
1242
1243 (define-public sbcl-babel
1244 ;; No release since 2014.
1245 (let ((commit "aeed2d1b76358db48e6b70a64399c05678a6b9ea"))
1246 (package
1247 (name "sbcl-babel")
1248 (version (git-version "0.5.0" "1" commit))
1249 (source
1250 (origin
1251 (method git-fetch)
1252 (uri (git-reference
1253 (url "https://github.com/cl-babel/babel.git")
1254 (commit commit)))
1255 (file-name (git-file-name "babel" version))
1256 (sha256
1257 (base32 "0lkvv4xdpv4cv1y2bqillmabx8sdb2y4l6pbinq6mjh33w2brpvb"))))
1258 (build-system asdf-build-system/sbcl)
1259 (native-inputs
1260 `(("tests:cl-hu.dwim.stefil" ,sbcl-hu.dwim.stefil)))
1261 (inputs
1262 `(("sbcl-alexandria" ,sbcl-alexandria)
1263 ("sbcl-trivial-features" ,sbcl-trivial-features)))
1264 (home-page "https://common-lisp.net/project/babel/")
1265 (synopsis "Charset encoding and decoding library")
1266 (description "Babel is a charset encoding and decoding library, not unlike
1267 GNU libiconv, but completely written in Common Lisp.")
1268 (license license:expat))))
1269
1270 (define-public cl-babel
1271 (sbcl-package->cl-source-package sbcl-babel))
1272
1273 (define-public ecl-babel
1274 (sbcl-package->ecl-package sbcl-babel))
1275
1276 (define-public sbcl-cl-yacc
1277 (package
1278 (name "sbcl-cl-yacc")
1279 (version "0.3")
1280 (source
1281 (origin
1282 (method git-fetch)
1283 (uri (git-reference
1284 (url "https://github.com/jech/cl-yacc")
1285 (commit (string-append "cl-yacc-" version))))
1286 (sha256
1287 (base32
1288 "16946pzf8vvadnyfayvj8rbh4zjzw90h0azz2qk1mxrvhh5wklib"))
1289 (file-name (string-append "cl-yacc-" version "-checkout"))))
1290 (build-system asdf-build-system/sbcl)
1291 (arguments
1292 `(#:asd-file "yacc.asd"
1293 #:asd-system-name "yacc"))
1294 (synopsis "LALR(1) parser generator for Common Lisp, similar in spirit to Yacc")
1295 (description
1296 "CL-Yacc is a LALR(1) parser generator for Common Lisp, similar in spirit
1297 to AT&T Yacc, Berkeley Yacc, GNU Bison, Zebu, lalr.cl or lalr.scm.
1298
1299 CL-Yacc uses the algorithm due to Aho and Ullman, which is the one also used
1300 by AT&T Yacc, Berkeley Yacc and Zebu. It does not use the faster algorithm due
1301 to DeRemer and Pennello, which is used by Bison and lalr.scm (not lalr.cl).")
1302 (home-page "https://www.irif.fr/~jch//software/cl-yacc/")
1303 (license license:expat)))
1304
1305 (define-public cl-yacc
1306 (sbcl-package->cl-source-package sbcl-cl-yacc))
1307
1308 (define-public ecl-cl-yacc
1309 (sbcl-package->ecl-package sbcl-cl-yacc))
1310
1311 (define-public sbcl-jpl-util
1312 (let ((commit "0311ed374e19a49d43318064d729fe3abd9a3b62"))
1313 (package
1314 (name "sbcl-jpl-util")
1315 (version "20151005")
1316 (source
1317 (origin
1318 (method git-fetch)
1319 (uri (git-reference
1320 ;; Quicklisp uses this fork.
1321 (url "https://github.com/hawkir/cl-jpl-util")
1322 (commit commit)))
1323 (file-name
1324 (git-file-name "jpl-util" version))
1325 (sha256
1326 (base32
1327 "0nc0rk9n8grkg3045xsw34whmcmddn2sfrxki4268g7kpgz0d2yz"))))
1328 (build-system asdf-build-system/sbcl)
1329 (synopsis "Collection of Common Lisp utility functions and macros")
1330 (description
1331 "@command{cl-jpl-util} is a collection of Common Lisp utility functions
1332 and macros, primarily for software projects written in CL by the author.")
1333 (home-page "https://www.thoughtcrime.us/software/cl-jpl-util/")
1334 (license license:isc))))
1335
1336 (define-public cl-jpl-util
1337 (sbcl-package->cl-source-package sbcl-jpl-util))
1338
1339 (define-public ecl-jpl-util
1340 (sbcl-package->ecl-package sbcl-jpl-util))
1341
1342 (define-public sbcl-jpl-queues
1343 (package
1344 (name "sbcl-jpl-queues")
1345 (version "0.1")
1346 (source
1347 (origin
1348 (method url-fetch)
1349 (uri (string-append
1350 "http://www.thoughtcrime.us/software/jpl-queues/jpl-queues-"
1351 version
1352 ".tar.gz"))
1353 (sha256
1354 (base32
1355 "1wvvv7j117h9a42qaj1g4fh4mji28xqs7s60rn6d11gk9jl76h96"))))
1356 (build-system asdf-build-system/sbcl)
1357 (inputs
1358 `(("jpl-util" ,sbcl-jpl-util)
1359 ("bordeaux-threads" ,sbcl-bordeaux-threads)))
1360 (arguments
1361 ;; Tests seem to be broken.
1362 `(#:tests? #f))
1363 (synopsis "Common Lisp library implementing a few different kinds of queues")
1364 (description
1365 "A Common Lisp library implementing a few different kinds of queues:
1366
1367 @itemize
1368 @item Bounded and unbounded FIFO queues.
1369 @item Lossy bounded FIFO queues that drop elements when full.
1370 @item Unbounded random-order queues that use less memory than unbounded FIFO queues.
1371 @end itemize
1372
1373 Additionally, a synchronization wrapper is provided to make any queue
1374 conforming to the @command{jpl-queues} API thread-safe for lightweight
1375 multithreading applications. (See Calispel for a more sophisticated CL
1376 multithreaded message-passing library with timeouts and alternation among
1377 several blockable channels.)")
1378 (home-page "https://www.thoughtcrime.us/software/jpl-queues/")
1379 (license license:isc)))
1380
1381 (define-public cl-jpl-queues
1382 (sbcl-package->cl-source-package sbcl-jpl-queues))
1383
1384 (define-public ecl-jpl-queues
1385 (sbcl-package->ecl-package sbcl-jpl-queues))
1386
1387 (define-public sbcl-eos
1388 (let ((commit "b0faca83781ead9a588661e37bd47f90362ccd94"))
1389 (package
1390 (name "sbcl-eos")
1391 (version (git-version "0.0.0" "1" commit))
1392 (source
1393 (origin
1394 (method git-fetch)
1395 (uri (git-reference
1396 (url "https://github.com/adlai/Eos")
1397 (commit commit)))
1398 (sha256
1399 (base32
1400 "1bq8cfg087iyxmxi1mwgx5cfgy3b8ydrf81xljcis8qbgb2vszph"))
1401 (file-name (git-file-name "eos" version))))
1402 (build-system asdf-build-system/sbcl)
1403 (synopsis "Unit Testing for Common Lisp")
1404 (description
1405 "Eos was a unit testing library for Common Lisp.
1406 It began as a fork of FiveAM; however, FiveAM development has continued, while
1407 that of Eos has not. Thus, Eos is now deprecated in favor of FiveAM.")
1408 (home-page "https://github.com/adlai/Eos")
1409 (license license:expat))))
1410
1411 (define-public cl-eos
1412 (sbcl-package->cl-source-package sbcl-eos))
1413
1414 (define-public ecl-eos
1415 (sbcl-package->ecl-package sbcl-eos))
1416
1417 (define-public sbcl-esrap
1418 (let ((commit "133be8b05c2aae48696fe5b739eea2fa573fa48d"))
1419 (package
1420 (name "sbcl-esrap")
1421 (version (git-version "0.0.0" "1" commit))
1422 (source
1423 (origin
1424 (method git-fetch)
1425 (uri (git-reference
1426 (url "https://github.com/nikodemus/esrap")
1427 (commit commit)))
1428 (sha256
1429 (base32
1430 "02d5clihsdryhf7pix8c5di2571fdsffh75d40fkzhws90r5mksl"))
1431 (file-name (git-file-name "esrap" version))))
1432 (build-system asdf-build-system/sbcl)
1433 (native-inputs
1434 `(("eos" ,sbcl-eos))) ;For testing only.
1435 (inputs
1436 `(("alexandria" ,sbcl-alexandria)))
1437 (synopsis "Common Lisp packrat parser")
1438 (description
1439 "A packrat parser for Common Lisp.
1440 In addition to regular Packrat / Parsing Grammar / TDPL features ESRAP supports:
1441
1442 @itemize
1443 @item dynamic redefinition of nonterminals
1444 @item inline grammars
1445 @item semantic predicates
1446 @item introspective facilities (describing grammars, tracing, setting breaks)
1447 @end itemize\n")
1448 (home-page "https://nikodemus.github.io/esrap/")
1449 (license license:expat))))
1450
1451 (define-public cl-esrap
1452 (sbcl-package->cl-source-package sbcl-esrap))
1453
1454 (define-public ecl-esrap
1455 (sbcl-package->ecl-package sbcl-esrap))
1456
1457 (define-public sbcl-split-sequence
1458 (package
1459 (name "sbcl-split-sequence")
1460 (version "2.0.0")
1461 (source
1462 (origin
1463 (method git-fetch)
1464 (uri (git-reference
1465 (url "https://github.com/sharplispers/split-sequence")
1466 (commit (string-append "v" version))))
1467 (sha256
1468 (base32
1469 "0jcpnx21hkfwqj5fvp7kc6pn1qcz9hk7g2s5x8h0349x1j2irln0"))
1470 (file-name (git-file-name "split-sequence" version))))
1471 (build-system asdf-build-system/sbcl)
1472 (native-inputs
1473 `(("fiveam" ,sbcl-fiveam)))
1474 (synopsis "Member of the Common Lisp Utilities family of programs")
1475 (description
1476 "Splits sequence into a list of subsequences delimited by objects
1477 satisfying the test.")
1478 (home-page "https://cliki.net/split-sequence")
1479 (license license:expat)))
1480
1481 (define-public cl-split-sequence
1482 (sbcl-package->cl-source-package sbcl-split-sequence))
1483
1484 (define-public ecl-split-sequence
1485 (sbcl-package->ecl-package sbcl-split-sequence))
1486
1487 (define-public sbcl-html-encode
1488 (package
1489 (name "sbcl-html-encode")
1490 (version "1.2")
1491 (source
1492 (origin
1493 (method url-fetch)
1494 (uri (string-append
1495 "http://beta.quicklisp.org/archive/html-encode/2010-10-06/html-encode-"
1496 version ".tgz"))
1497 (sha256
1498 (base32
1499 "06mf8wn95yf5swhmzk4vp0xr4ylfl33dgfknkabbkd8n6jns8gcf"))
1500 (file-name (string-append "colorize" version "-checkout"))))
1501 (build-system asdf-build-system/sbcl)
1502 (synopsis "Common Lisp library for encoding text in various web-savvy encodings")
1503 (description
1504 "A library for encoding text in various web-savvy encodings.")
1505 (home-page "http://quickdocs.org/html-encode/")
1506 (license license:expat)))
1507
1508 (define-public cl-html-encode
1509 (sbcl-package->cl-source-package sbcl-html-encode))
1510
1511 (define-public ecl-html-encode
1512 (sbcl-package->ecl-package sbcl-html-encode))
1513
1514 (define-public sbcl-colorize
1515 (let ((commit "ea676b584e0899cec82f21a9e6871172fe3c0eb5"))
1516 (package
1517 (name "sbcl-colorize")
1518 (version (git-version "0.0.0" "1" commit))
1519 (source
1520 (origin
1521 (method git-fetch)
1522 (uri (git-reference
1523 (url "https://github.com/kingcons/colorize")
1524 (commit commit)))
1525 (sha256
1526 (base32
1527 "1pdg4kiaczmr3ivffhirp7m3lbr1q27rn7dhaay0vwghmi31zcw9"))
1528 (file-name (git-file-name "colorize" version))))
1529 (build-system asdf-build-system/sbcl)
1530 (inputs
1531 `(("alexandria" ,sbcl-alexandria)
1532 ("split-sequence" ,sbcl-split-sequence)
1533 ("html-encode" ,sbcl-html-encode)))
1534 (synopsis "Common Lisp for syntax highlighting")
1535 (description
1536 "@command{colorize} is a Lisp library for syntax highlighting
1537 supporting the following languages: Common Lisp, Emacs Lisp, Scheme, Clojure,
1538 C, C++, Java, Python, Erlang, Haskell, Objective-C, Diff, Webkit.")
1539 (home-page "https://github.com/kingcons/colorize")
1540 ;; TODO: Missing license?
1541 (license license:expat))))
1542
1543 (define-public cl-colorize
1544 (sbcl-package->cl-source-package sbcl-colorize))
1545
1546 (define-public ecl-colorize
1547 (sbcl-package->ecl-package sbcl-colorize))
1548
1549 (define-public sbcl-3bmd
1550 (let ((commit "192ea13435b605a96ef607df51317056914cabbd"))
1551 (package
1552 (name "sbcl-3bmd")
1553 (version (git-version "0.0.0" "1" commit))
1554 (source
1555 (origin
1556 (method git-fetch)
1557 (uri (git-reference
1558 (url "https://github.com/3b/3bmd")
1559 (commit commit)))
1560 (sha256
1561 (base32
1562 "1rgv3gi7wf963ikmmpk132wgn0icddf226gq3bmcnk1fr3v9gf2f"))
1563 (file-name (git-file-name "3bmd" version))))
1564 (build-system asdf-build-system/sbcl)
1565 (arguments
1566 ;; FIXME: We need to specify the name because the build-system thinks
1567 ;; "3" is a version marker.
1568 `(#:asd-system-name "3bmd"))
1569 (inputs
1570 `(("esrap" ,sbcl-esrap)
1571 ("split-sequence" ,sbcl-split-sequence)))
1572 (synopsis "Markdown processor in Command Lisp using esrap parser")
1573 (description
1574 "Common Lisp Markdown -> HTML converter, using @command{esrap} for
1575 parsing, and grammar based on @command{peg-markdown}.")
1576 (home-page "https://github.com/3b/3bmd")
1577 (license license:expat))))
1578
1579 (define-public cl-3bmd
1580 (sbcl-package->cl-source-package sbcl-3bmd))
1581
1582 (define-public ecl-3bmd
1583 (sbcl-package->ecl-package sbcl-3bmd))
1584
1585 (define-public sbcl-3bmd-ext-code-blocks
1586 (let ((commit "192ea13435b605a96ef607df51317056914cabbd"))
1587 (package
1588 (inherit sbcl-3bmd)
1589 (name "sbcl-3bmd-ext-code-blocks")
1590 (arguments
1591 `(#:asd-system-name "3bmd-ext-code-blocks"
1592 #:asd-file "3bmd-ext-code-blocks.asd"))
1593 (inputs
1594 `(("3bmd" ,sbcl-3bmd)
1595 ("colorize" ,sbcl-colorize)))
1596 (synopsis "3bmd extension which adds support for GitHub-style fenced
1597 code blocks")
1598 (description
1599 "3bmd extension which adds support for GitHub-style fenced code blocks,
1600 with @command{colorize} support."))))
1601
1602 (define-public cl-3bmd-ext-code-blocks
1603 (sbcl-package->cl-source-package sbcl-3bmd-ext-code-blocks))
1604
1605 (define-public ecl-3bmd-ext-code-blocks
1606 (sbcl-package->ecl-package sbcl-3bmd-ext-code-blocks))
1607
1608 (define-public sbcl-cl-fad
1609 (package
1610 (name "sbcl-cl-fad")
1611 (version "0.7.6")
1612 (source
1613 (origin
1614 (method git-fetch)
1615 (uri (git-reference
1616 (url "https://github.com/edicl/cl-fad/")
1617 (commit (string-append "v" version))))
1618 (sha256
1619 (base32
1620 "1gc8i82v6gks7g0lnm54r4prk2mklidv2flm5fvbr0a7rsys0vpa"))
1621 (file-name (string-append "cl-fad" version "-checkout"))))
1622 (build-system asdf-build-system/sbcl)
1623 (inputs
1624 `(("bordeaux-threads" ,sbcl-bordeaux-threads)))
1625 (synopsis "Portable pathname library for Common Lisp")
1626 (description
1627 "CL-FAD (for \"Files and Directories\") is a thin layer atop Common
1628 Lisp's standard pathname functions. It is intended to provide some
1629 unification between current CL implementations on Windows, OS X, Linux, and
1630 Unix. Most of the code was written by Peter Seibel for his book Practical
1631 Common Lisp.")
1632 (home-page "https://edicl.github.io/cl-fad/")
1633 (license license:bsd-2)))
1634
1635 (define-public cl-fad
1636 (sbcl-package->cl-source-package sbcl-cl-fad))
1637
1638 (define-public ecl-cl-fad
1639 (sbcl-package->ecl-package sbcl-cl-fad))
1640
1641 (define-public sbcl-rt
1642 (let ((commit "a6a7503a0b47953bc7579c90f02a6dba1f6e4c5a")
1643 (revision "1"))
1644 (package
1645 (name "sbcl-rt")
1646 (version (git-version "1990.12.19" revision commit))
1647 (source
1648 (origin
1649 (method git-fetch)
1650 (uri (git-reference
1651 (url "http://git.kpe.io/rt.git")
1652 (commit commit)))
1653 (file-name (git-file-name name version))
1654 (sha256
1655 (base32 "13si2rrxaagbr0bkvg6sqicxxpyshabx6ad6byc9n2ik5ysna69b"))))
1656 (build-system asdf-build-system/sbcl)
1657 (synopsis "MIT Regression Tester")
1658 (description
1659 "RT provides a framework for writing regression test suites.")
1660 (home-page "https://www.cliki.net/rt")
1661 (license license:expat))))
1662
1663 (define-public cl-rt
1664 (sbcl-package->cl-source-package sbcl-rt))
1665
1666 (define-public ecl-rt
1667 (sbcl-package->ecl-package sbcl-rt))
1668
1669 (define-public sbcl-nibbles
1670 (package
1671 (name "sbcl-nibbles")
1672 (version "0.14")
1673 (source
1674 (origin
1675 (method git-fetch)
1676 (uri (git-reference
1677 (url "https://github.com/sharplispers/nibbles/")
1678 (commit (string-append "v" version))))
1679 (sha256
1680 (base32
1681 "1v7qfgpvdr6nz7v63dj69d26dis0kff3rd8xamr1llfdvza2pm8f"))
1682 (file-name (git-file-name "nibbles" version))))
1683 (build-system asdf-build-system/sbcl)
1684 (native-inputs
1685 ;; Tests only.
1686 `(("rt" ,sbcl-rt)))
1687 (synopsis "Common Lisp library for accessing octet-addressed blocks of data")
1688 (description
1689 "When dealing with network protocols and file formats, it's common to
1690 have to read or write 16-, 32-, or 64-bit datatypes in signed or unsigned
1691 flavors. Common Lisp sort of supports this by specifying :element-type for
1692 streams, but that facility is underspecified and there's nothing similar for
1693 read/write from octet vectors. What most people wind up doing is rolling their
1694 own small facility for their particular needs and calling it a day.
1695
1696 This library attempts to be comprehensive and centralize such
1697 facilities. Functions to read 16-, 32-, and 64-bit quantities from octet
1698 vectors in signed or unsigned flavors are provided; these functions are also
1699 SETFable. Since it's sometimes desirable to read/write directly from streams,
1700 functions for doing so are also provided. On some implementations,
1701 reading/writing IEEE singles/doubles (i.e. single-float and double-float) will
1702 also be supported.")
1703 (home-page "https://github.com/sharplispers/nibbles")
1704 (license license:bsd-3)))
1705
1706 (define-public cl-nibbles
1707 (sbcl-package->cl-source-package sbcl-nibbles))
1708
1709 (define-public ecl-nibbles
1710 (sbcl-package->ecl-package sbcl-nibbles))
1711
1712 (define-public sbcl-ironclad
1713 (package
1714 (name "sbcl-ironclad")
1715 (version "0.49")
1716 (source
1717 (origin
1718 (method git-fetch)
1719 (uri (git-reference
1720 (url "https://github.com/sharplispers/ironclad/")
1721 (commit (string-append "v" version))))
1722 (sha256
1723 (base32 "0kbzqg2aasrhjwy3nrzy2ddy809n1j045w4qkyc3r2syqd203d4q"))
1724 (file-name (git-file-name name version))))
1725 (build-system asdf-build-system/sbcl)
1726 (native-inputs
1727 ;; Tests only.
1728 `(("rt" ,sbcl-rt)))
1729 (inputs
1730 `(("bordeaux-threads" ,sbcl-bordeaux-threads)
1731 ("flexi-streams" ,sbcl-flexi-streams)
1732 ("trivial-garbage" ,sbcl-trivial-garbage)))
1733 (synopsis "Cryptographic toolkit written in Common Lisp")
1734 (description
1735 "Ironclad is a cryptography library written entirely in Common Lisp.
1736 It includes support for several popular ciphers, digests, MACs and public key
1737 cryptography algorithms. For several implementations that support Gray
1738 streams, support is included for convenient stream wrappers.")
1739 (home-page "https://github.com/sharplispers/ironclad")
1740 (license license:bsd-3)))
1741
1742 (define-public cl-ironclad
1743 (sbcl-package->cl-source-package sbcl-ironclad))
1744
1745 (define-public ecl-ironclad
1746 (sbcl-package->ecl-package sbcl-ironclad))
1747
1748 (define-public sbcl-named-readtables
1749 (let ((commit "4dfb89fa1af6b305b6492b8af042f5190c11e9fc")
1750 (revision "1"))
1751 (package
1752 (name "sbcl-named-readtables")
1753 (version (string-append "0.9-" revision "." (string-take commit 7)))
1754 (source
1755 (origin
1756 (method git-fetch)
1757 (uri (git-reference
1758 (url "https://github.com/melisgl/named-readtables.git")
1759 (commit commit)))
1760 (sha256
1761 (base32 "083kgh5462iqbb4px6kq8s7sggvpvkm36hx4qi9rnaw53b6ilqkk"))
1762 (file-name (git-file-name "named-readtables" version))))
1763 (build-system asdf-build-system/sbcl)
1764 (arguments
1765 ;; Tests seem to be broken.
1766 `(#:tests? #f))
1767 (home-page "https://github.com/melisgl/named-readtables/")
1768 (synopsis "Library that creates a namespace for named readtables")
1769 (description "Named readtables is a library that creates a namespace for
1770 named readtables, which is akin to package namespacing in Common Lisp.")
1771 (license license:bsd-3))))
1772
1773 (define-public cl-named-readtables
1774 (sbcl-package->cl-source-package sbcl-named-readtables))
1775
1776 (define-public ecl-named-readtables
1777 (sbcl-package->ecl-package sbcl-named-readtables))
1778
1779 (define-public sbcl-pythonic-string-reader
1780 (let ((commit "47a70ba1e32362e03dad6ef8e6f36180b560f86a"))
1781 (package
1782 (name "sbcl-pythonic-string-reader")
1783 (version (git-version "0.0.0" "1" commit))
1784 (source
1785 (origin
1786 (method git-fetch)
1787 (uri (git-reference
1788 (url "https://github.com/smithzvk/pythonic-string-reader/")
1789 (commit commit)))
1790 (sha256
1791 (base32 "1b5iryqw8xsh36swckmz8rrngmc39k92si33fgy5pml3n9l5rq3j"))
1792 (file-name (git-file-name "pythonic-string-reader" version))))
1793 (build-system asdf-build-system/sbcl)
1794 (inputs
1795 `(("named-readtables" ,sbcl-named-readtables)))
1796 (home-page "https://github.com/smithzvk/pythonic-string-reader")
1797 (synopsis "Read table modification inspired by Python's three quote strings")
1798 (description "This piece of code sets up some reader macros that make it
1799 simpler to input string literals which contain backslashes and double quotes
1800 This is very useful for writing complicated docstrings and, as it turns out,
1801 writing code that contains string literals that contain code themselves.")
1802 (license license:bsd-3))))
1803
1804 (define-public cl-pythonic-string-reader
1805 (sbcl-package->cl-source-package sbcl-pythonic-string-reader))
1806
1807 (define-public ecl-pythonic-string-reader
1808 (sbcl-package->ecl-package sbcl-pythonic-string-reader))
1809
1810 ;; SLIME does not have a ASDF system definition to build all of Swank. As a
1811 ;; result, the asdf-build-system/sbcl will produce an almost empty package.
1812 ;; Some work was done to fix this at
1813 ;; https://github.com/sionescu/slime/tree/swank-asdf but it was never merged
1814 ;; and is now lagging behind. Building SBCL fasls might not be worth the
1815 ;; hassle, so let's just ship the source then.
1816 (define-public cl-slime-swank
1817 (package
1818 (name "cl-slime-swank")
1819 (version "2.24")
1820 (source
1821 (origin
1822 (file-name (string-append name "-" version ".tar.gz"))
1823 (method git-fetch)
1824 (uri (git-reference
1825 (url "https://github.com/slime/slime/")
1826 (commit (string-append "v" version))))
1827 (sha256
1828 (base32
1829 "0js24x42m7b5iymb4rxz501dff19vav5pywnzv50b673rbkaaqvh"))))
1830 (build-system asdf-build-system/source)
1831 (home-page "https://github.com/slime/slime")
1832 (synopsis "Common Lisp Swank server")
1833 (description
1834 "This is only useful if you want to start a Swank server in a Lisp
1835 processes that doesn't run under Emacs. Lisp processes created by
1836 @command{M-x slime} automatically start the server.")
1837 (license (list license:gpl2+ license:public-domain))))
1838
1839 (define-public sbcl-slime-swank
1840 (deprecated-package "sbcl-slime-swank" cl-slime-swank))
1841
1842 (define-public sbcl-mgl-pax
1843 (let ((commit "818448418d6b9de74620f606f5b23033c6082769"))
1844 (package
1845 (name "sbcl-mgl-pax")
1846 (version (git-version "0.0.0" "1" commit))
1847 (source
1848 (origin
1849 (method git-fetch)
1850 (uri (git-reference
1851 (url "https://github.com/melisgl/mgl-pax")
1852 (commit commit)))
1853 (sha256
1854 (base32
1855 "1p97zfkh130bdxqqxwaw2j9psv58751wakx7czbfpq410lg7dd7i"))
1856 (file-name (git-file-name "mgl-pax" version))))
1857 (build-system asdf-build-system/sbcl)
1858 (inputs
1859 `(("3bmd" ,sbcl-3bmd)
1860 ("3bmd-ext-code-blocks" ,sbcl-3bmd-ext-code-blocks)
1861 ("babel" ,sbcl-babel)
1862 ("cl-fad" ,sbcl-cl-fad)
1863 ("ironclad" ,sbcl-ironclad)
1864 ("named-readtables" ,sbcl-named-readtables)
1865 ("pythonic-string-reader" ,sbcl-pythonic-string-reader)))
1866 (propagated-inputs
1867 ;; Packages having mgl-pax as input complain that it can't find
1868 ;; swank if we put it in inputs, so let's put it in propageted-inputs.
1869 `(("swank" ,cl-slime-swank)))
1870 (synopsis "Exploratory programming environment and documentation generator")
1871 (description
1872 "PAX provides an extremely poor man's Explorable Programming
1873 environment. Narrative primarily lives in so called sections that mix markdown
1874 docstrings with references to functions, variables, etc, all of which should
1875 probably have their own docstrings.
1876
1877 The primary focus is on making code easily explorable by using SLIME's
1878 @command{M-.} (@command{slime-edit-definition}). See how to enable some
1879 fanciness in Emacs Integration. Generating documentation from sections and all
1880 the referenced items in Markdown or HTML format is also implemented.
1881
1882 With the simplistic tools provided, one may accomplish similar effects as with
1883 Literate Programming, but documentation is generated from code, not vice versa
1884 and there is no support for chunking yet. Code is first, code must look
1885 pretty, documentation is code.")
1886 (home-page "http://quotenil.com/")
1887 (license license:expat))))
1888
1889 (define-public cl-mgl-pax
1890 (sbcl-package->cl-source-package sbcl-mgl-pax))
1891
1892 (define-public ecl-mgl-pax
1893 (sbcl-package->ecl-package sbcl-mgl-pax))
1894
1895 (define-public sbcl-lisp-unit
1896 (let ((commit "89653a232626b67400bf9a941f9b367da38d3815"))
1897 (package
1898 (name "sbcl-lisp-unit")
1899 (version (git-version "0.0.0" "1" commit))
1900 (source
1901 (origin
1902 (method git-fetch)
1903 (uri (git-reference
1904 (url "https://github.com/OdonataResearchLLC/lisp-unit")
1905 (commit commit)))
1906 (sha256
1907 (base32
1908 "0p6gdmgr7p383nvd66c9y9fp2bjk4jx1lpa5p09g43hr9y9pp9ry"))
1909 (file-name (git-file-name "lisp-unit" version))))
1910 (build-system asdf-build-system/sbcl)
1911 (synopsis "Common Lisp Test framework inspired by JUnit to be simple of use")
1912 (description
1913 "@command{lisp-unit} is a Common Lisp library that supports unit
1914 testing. It is an extension of the library written by Chris Riesbeck.")
1915 (home-page "https://github.com/OdonataResearchLLC/lisp-unit")
1916 (license license:expat))))
1917
1918 (define-public cl-lisp-unit
1919 (sbcl-package->cl-source-package sbcl-lisp-unit))
1920
1921 (define-public ecl-lisp-unit
1922 (sbcl-package->ecl-package sbcl-lisp-unit))
1923
1924 (define-public sbcl-anaphora
1925 (package
1926 (name "sbcl-anaphora")
1927 (version "0.9.6")
1928 (source
1929 (origin
1930 (method git-fetch)
1931 (uri (git-reference
1932 (url "https://github.com/tokenrove/anaphora")
1933 (commit version)))
1934 (sha256
1935 (base32
1936 "19wfrk3asimznkli0x2rfy637hwpdgqyvwj3vhq9x7vjvyf5vv6x"))
1937 (file-name (git-file-name "anaphora" version))))
1938 (build-system asdf-build-system/sbcl)
1939 (native-inputs
1940 `(("rt" ,sbcl-rt)))
1941 (synopsis "The anaphoric macro collection from Hell")
1942 (description
1943 "Anaphora is the anaphoric macro collection from Hell: it includes many
1944 new fiends in addition to old friends like @command{aif} and
1945 @command{awhen}.")
1946 (home-page "https://github.com/tokenrove/anaphora")
1947 (license license:public-domain)))
1948
1949 (define-public cl-anaphora
1950 (sbcl-package->cl-source-package sbcl-anaphora))
1951
1952 (define-public ecl-anaphora
1953 (sbcl-package->ecl-package sbcl-anaphora))
1954
1955 (define-public sbcl-lift
1956 (let ((commit "7d49a66c62759535624037826891152223d4206c"))
1957 (package
1958 (name "sbcl-lift")
1959 (version (git-version "1.7.1" "1" commit))
1960 (source
1961 (origin
1962 (method git-fetch)
1963 (uri (git-reference
1964 (url "https://github.com/gwkkwg/lift")
1965 (commit commit)))
1966 (sha256
1967 (base32
1968 "127v5avpz1i4m0lkaxqrq8hrl69rdazqaxf6s8awf0nd7wj2g4dp"))
1969 (file-name (git-file-name "lift" version))
1970 (modules '((guix build utils)))
1971 (snippet
1972 ;; Don't keep the bundled website
1973 `(begin
1974 (delete-file-recursively "website")
1975 #t))))
1976 (build-system asdf-build-system/sbcl)
1977 (arguments
1978 ;; The tests require a debugger, but we run with the debugger disabled.
1979 '(#:tests? #f))
1980 (synopsis "LIsp Framework for Testing")
1981 (description
1982 "The LIsp Framework for Testing (LIFT) is a unit and system test tool for LISP.
1983 Though inspired by SUnit and JUnit, it's built with Lisp in mind. In LIFT,
1984 testcases are organized into hierarchical testsuites each of which can have
1985 its own fixture. When run, a testcase can succeed, fail, or error. LIFT
1986 supports randomized testing, benchmarking, profiling, and reporting.")
1987 (home-page "https://github.com/gwkkwg/lift")
1988 (license license:expat))))
1989
1990 (define-public cl-lift
1991 (sbcl-package->cl-source-package sbcl-lift))
1992
1993 (define-public ecl-lift
1994 (sbcl-package->ecl-package sbcl-lift))
1995
1996 (define-public sbcl-let-plus
1997 (let ((commit "5f14af61d501ecead02ec6b5a5c810efc0c9fdbb"))
1998 (package
1999 (name "sbcl-let-plus")
2000 (version (git-version "0.0.0" "1" commit))
2001 (source
2002 (origin
2003 (method git-fetch)
2004 (uri (git-reference
2005 (url "https://github.com/sharplispers/let-plus")
2006 (commit commit)))
2007 (sha256
2008 (base32
2009 "0i050ca2iys9f5mb7dgqgqdxfnc3b0rnjdwv95sqd490vkiwrsaj"))
2010 (file-name (git-file-name "let-plus" version))))
2011 (build-system asdf-build-system/sbcl)
2012 (inputs
2013 `(("alexandria" ,sbcl-alexandria)
2014 ("anaphora" ,sbcl-anaphora)))
2015 (native-inputs
2016 `(("lift" ,sbcl-lift)))
2017 (synopsis "Destructuring extension of let*")
2018 (description
2019 "This library implements the let+ macro, which is a dectructuring
2020 extension of let*. It features:
2021
2022 @itemize
2023 @item Clean, consistent syntax and small implementation (less than 300 LOC,
2024 not counting tests)
2025 @item Placeholder macros allow editor hints and syntax highlighting
2026 @item @command{&ign} for ignored values (in forms where that makes sense)
2027 @item Very easy to extend
2028 @end itemize\n")
2029 (home-page "https://github.com/sharplispers/let-plus")
2030 (license license:boost1.0))))
2031
2032 (define-public cl-let-plus
2033 (sbcl-package->cl-source-package sbcl-let-plus))
2034
2035 (define-public ecl-let-plus
2036 (sbcl-package->ecl-package sbcl-let-plus))
2037
2038 (define-public sbcl-cl-colors
2039 (let ((commit "827410584553f5c717eec6182343b7605f707f75"))
2040 (package
2041 (name "sbcl-cl-colors")
2042 (version (git-version "0.0.0" "1" commit))
2043 (source
2044 (origin
2045 (method git-fetch)
2046 (uri (git-reference
2047 (url "https://github.com/tpapp/cl-colors")
2048 (commit commit)))
2049 (sha256
2050 (base32
2051 "0l446lday4hybsm9bq3jli97fvv8jb1d33abg79vbylpwjmf3y9a"))
2052 (file-name (git-file-name "cl-colors" version))))
2053 (build-system asdf-build-system/sbcl)
2054 (inputs
2055 `(("alexandria" ,sbcl-alexandria)
2056 ("let-plus" ,sbcl-let-plus)))
2057 (synopsis "Simple color library for Common Lisp")
2058 (description
2059 "This is a very simple color library for Common Lisp, providing
2060
2061 @itemize
2062 @item Types for representing colors in HSV and RGB spaces.
2063 @item Simple conversion functions between the above types (and also
2064 hexadecimal representation for RGB).
2065 @item Some predefined colors (currently X11 color names – of course the
2066 library does not depend on X11).Because color in your terminal is nice.
2067 @end itemize
2068
2069 This library is no longer supported by its author.")
2070 (home-page "https://github.com/tpapp/cl-colors")
2071 (license license:boost1.0))))
2072
2073 (define-public cl-colors
2074 (sbcl-package->cl-source-package sbcl-cl-colors))
2075
2076 (define-public ecl-cl-colors
2077 (sbcl-package->ecl-package sbcl-cl-colors))
2078
2079 (define-public sbcl-cl-ansi-text
2080 (let ((commit "53badf7878f27f22f2d4a2a43e6df458e43acbe9"))
2081 (package
2082 (name "sbcl-cl-ansi-text")
2083 (version (git-version "1.0.0" "1" commit))
2084 (source
2085 (origin
2086 (method git-fetch)
2087 (uri (git-reference
2088 (url "https://github.com/pnathan/cl-ansi-text")
2089 (commit commit)))
2090 (sha256
2091 (base32
2092 "11i27n0dbz5lmygiw65zzr8lx0rac6b6yysqranphn31wls6ja3v"))
2093 (file-name (git-file-name "cl-ansi-text" version))))
2094 (build-system asdf-build-system/sbcl)
2095 (inputs
2096 `(("alexandria" ,sbcl-alexandria)
2097 ("cl-colors" ,sbcl-cl-colors)))
2098 (native-inputs
2099 `(("fiveam" ,sbcl-fiveam)))
2100 (synopsis "ANSI terminal color implementation for Common Lisp")
2101 (description
2102 "@command{cl-ansi-text} provides utilities which enable printing to an
2103 ANSI terminal with colored text. It provides the macro @command{with-color}
2104 which causes everything printed in the body to be displayed with the provided
2105 color. It further provides functions which will print the argument with the
2106 named color.")
2107 (home-page "https://github.com/pnathan/cl-ansi-text")
2108 (license license:llgpl))))
2109
2110 (define-public cl-ansi-text
2111 (sbcl-package->cl-source-package sbcl-cl-ansi-text))
2112
2113 (define-public ecl-cl-ansi-text
2114 (sbcl-package->ecl-package sbcl-cl-ansi-text))
2115
2116 (define-public sbcl-prove-asdf
2117 (let ((commit "4f9122bd393e63c5c70c1fba23070622317cfaa0"))
2118 (package
2119 (name "sbcl-prove-asdf")
2120 (version (git-version "1.0.0" "1" commit))
2121 (source
2122 (origin
2123 (method git-fetch)
2124 (uri (git-reference
2125 (url "https://github.com/fukamachi/prove")
2126 (commit commit)))
2127 (sha256
2128 (base32
2129 "07sbfw459z8bbjvx1qlmfa8qk2mvbjnnzi2mi0x72blaj8bkl4vc"))
2130 (file-name (git-file-name "prove" version))))
2131 (build-system asdf-build-system/sbcl)
2132 (arguments
2133 `(#:asd-file "prove-asdf.asd"))
2134 (synopsis "Test requirement for the Common Lisp 'prove' library")
2135 (description
2136 "Test requirement for the Common Lisp @command{prove} library.")
2137 (home-page "https://github.com/fukamachi/prove")
2138 (license license:expat))))
2139
2140 (define-public cl-prove-asdf
2141 (sbcl-package->cl-source-package sbcl-prove-asdf))
2142
2143 (define-public ecl-prove-asdf
2144 (sbcl-package->ecl-package sbcl-prove-asdf))
2145
2146 (define-public sbcl-prove
2147 (package
2148 (inherit sbcl-prove-asdf)
2149 (name "sbcl-prove")
2150 (inputs
2151 `(("alexandria" ,sbcl-alexandria)
2152 ("cl-ppcre" ,sbcl-cl-ppcre)
2153 ("cl-ansi-text" ,sbcl-cl-ansi-text)))
2154 (native-inputs
2155 `(("prove-asdf" ,sbcl-prove-asdf)))
2156 (arguments
2157 `(#:asd-file "prove.asd"))
2158 (synopsis "Yet another unit testing framework for Common Lisp")
2159 (description
2160 "This project was originally called @command{cl-test-more}.
2161 @command{prove} is yet another unit testing framework for Common Lisp. The
2162 advantages of @command{prove} are:
2163
2164 @itemize
2165 @item Various simple functions for testing and informative error messages
2166 @item ASDF integration
2167 @item Extensible test reporters
2168 @item Colorizes the report if it's available (note for SLIME)
2169 @item Reports test durations
2170 @end itemize\n")))
2171
2172 (define-public cl-prove
2173 (sbcl-package->cl-source-package sbcl-prove))
2174
2175 (define-public ecl-prove
2176 (sbcl-package->ecl-package sbcl-prove))
2177
2178 (define-public sbcl-proc-parse
2179 (let ((commit "ac3636834d561bdc2686c956dbd82494537285fd"))
2180 (package
2181 (name "sbcl-proc-parse")
2182 (version (git-version "0.0.0" "1" commit))
2183 (source
2184 (origin
2185 (method git-fetch)
2186 (uri (git-reference
2187 (url "https://github.com/fukamachi/proc-parse")
2188 (commit commit)))
2189 (sha256
2190 (base32
2191 "06rnl0h4cx6xv2wj3jczmmcxqn2703inmmvg1s4npbghmijsybfh"))
2192 (file-name (git-file-name "proc-parse" version))))
2193 (build-system asdf-build-system/sbcl)
2194 (inputs
2195 `(("alexandria" ,sbcl-alexandria)
2196 ("babel" ,sbcl-babel)))
2197 (native-inputs
2198 `(("prove" ,sbcl-prove)
2199 ("prove-asdf" ,sbcl-prove-asdf)))
2200 (arguments
2201 ;; TODO: Tests don't find "proc-parse-test", why?
2202 `(#:tests? #f))
2203 (synopsis "Procedural vector parser")
2204 (description
2205 "This is a string/octets parser library for Common Lisp with speed and
2206 readability in mind. Unlike other libraries, the code is not a
2207 pattern-matching-like, but a char-by-char procedural parser.")
2208 (home-page "https://github.com/fukamachi/proc-parse")
2209 (license license:bsd-2))))
2210
2211 (define-public cl-proc-parse
2212 (sbcl-package->cl-source-package sbcl-proc-parse))
2213
2214 (define-public ecl-proc-parse
2215 (sbcl-package->ecl-package sbcl-proc-parse))
2216
2217 (define-public sbcl-parse-float
2218 (let ((commit "2aae569f2a4b2eb3bfb5401a959425dcf151b09c"))
2219 (package
2220 (name "sbcl-parse-float")
2221 (version (git-version "0.0.0" "1" commit))
2222 (source
2223 (origin
2224 (method git-fetch)
2225 (uri (git-reference
2226 (url "https://github.com/soemraws/parse-float")
2227 (commit commit)))
2228 (sha256
2229 (base32
2230 "08xw8cchhmqcc0byng69m3f5a2izc9y2290jzz2k0qrbibp1fdk7"))
2231 (file-name (git-file-name "proc-parse" version))))
2232 (build-system asdf-build-system/sbcl)
2233 (inputs
2234 `(("alexandria" ,sbcl-alexandria)
2235 ("babel" ,sbcl-babel)))
2236 (native-inputs
2237 `(("prove" ,sbcl-prove)
2238 ("prove-asdf" ,sbcl-prove-asdf)))
2239 (arguments
2240 ;; TODO: Tests don't find "proc-parse-test", why?
2241 `(#:tests? #f))
2242 (synopsis "Parse a floating point value from a string in Common Lisp")
2243 (description
2244 "This package exports the following function to parse floating-point
2245 values from a string in Common Lisp.")
2246 (home-page "https://github.com/soemraws/parse-float")
2247 (license license:public-domain))))
2248
2249 (define-public cl-parse-float
2250 (sbcl-package->cl-source-package sbcl-parse-float))
2251
2252 (define-public ecl-parse-float
2253 (sbcl-package->ecl-package sbcl-parse-float))
2254
2255 (define-public sbcl-ascii-strings
2256 (let ((revision "1")
2257 (changeset "5048480a61243e6f1b02884012c8f25cdbee6d97"))
2258 (package
2259 (name "sbcl-ascii-strings")
2260 (version (string-append "0-" revision "." (string-take changeset 7)))
2261 (source
2262 (origin
2263 (method hg-fetch)
2264 (uri (hg-reference
2265 (url "https://bitbucket.org/vityok/cl-string-match/")
2266 (changeset changeset)))
2267 (sha256
2268 (base32
2269 "01wn5qx562w43ssy92xlfgv79w7p0nv0wbl76mpmba131n9ziq2y"))
2270 (file-name (git-file-name "cl-string-match" version))))
2271 (build-system asdf-build-system/sbcl)
2272 (inputs
2273 `(("alexandria" ,sbcl-alexandria)
2274 ("babel" ,sbcl-babel)))
2275 (arguments
2276 `(#:asd-file "ascii-strings.asd"))
2277 (synopsis "Operations on ASCII strings")
2278 (description
2279 "Operations on ASCII strings. Essentially this can be any kind of
2280 single-byte encoded strings.")
2281 (home-page "https://bitbucket.org/vityok/cl-string-match/")
2282 (license license:bsd-3))))
2283
2284 (define-public cl-ascii-strings
2285 (sbcl-package->cl-source-package sbcl-ascii-strings))
2286
2287 (define-public ecl-ascii-strings
2288 (sbcl-package->ecl-package sbcl-ascii-strings))
2289
2290 (define-public sbcl-simple-scanf
2291 (package
2292 (inherit sbcl-ascii-strings)
2293 (name "sbcl-simple-scanf")
2294 (inputs
2295 `(("alexandria" ,sbcl-alexandria)
2296 ("iterate" ,sbcl-iterate)
2297 ("proc-parse" ,sbcl-proc-parse)
2298 ("parse-float" ,sbcl-parse-float)))
2299 (arguments
2300 `(#:asd-file "simple-scanf.asd"))
2301 (synopsis "Simple scanf-like functionality implementation")
2302 (description
2303 "A simple scanf-like functionality implementation.")))
2304
2305 (define-public cl-simple-scanf
2306 (sbcl-package->cl-source-package sbcl-simple-scanf))
2307
2308 (define-public ecl-simple-scanf
2309 (sbcl-package->ecl-package sbcl-simple-scanf))
2310
2311 (define-public sbcl-cl-string-match
2312 (package
2313 (inherit sbcl-ascii-strings)
2314 (name "sbcl-cl-string-match")
2315 (inputs
2316 `(("alexandria" ,sbcl-alexandria)
2317 ("ascii-strings" ,sbcl-ascii-strings)
2318 ("yacc" ,sbcl-cl-yacc)
2319 ("jpl-util" ,sbcl-jpl-util)
2320 ("jpl-queues" ,sbcl-jpl-queues)
2321 ("mgl-pax" ,sbcl-mgl-pax)
2322 ("iterate" ,sbcl-iterate)))
2323 ;; TODO: Tests are not evaluated properly.
2324 (native-inputs
2325 ;; For testing:
2326 `(("lisp-unit" ,sbcl-lisp-unit)
2327 ("simple-scanf" ,sbcl-simple-scanf)))
2328 (arguments
2329 `(#:tests? #f
2330 #:asd-file "cl-string-match.asd"))
2331 (synopsis "Portable, dependency-free set of utilities to manipulate strings in Common Lisp")
2332 (description
2333 "@command{cl-strings} is a small, portable, dependency-free set of
2334 utilities that make it even easier to manipulate text in Common Lisp. It has
2335 100% test coverage and works at least on sbcl, ecl, ccl, abcl and clisp.")))
2336
2337 (define-public cl-string-match
2338 (sbcl-package->cl-source-package sbcl-cl-string-match))
2339
2340 (define-public ecl-cl-string-match
2341 (sbcl-package->ecl-package sbcl-cl-string-match))
2342
2343 (define-public sbcl-ptester
2344 (let ((commit "fe69fde54f4bce00ce577feb918796c293fc7253")
2345 (revision "1"))
2346 (package
2347 (name "sbcl-ptester")
2348 (version (git-version "2.1.3" revision commit))
2349 (source
2350 (origin
2351 (method git-fetch)
2352 (uri (git-reference
2353 (url "http://git.kpe.io/ptester.git")
2354 (commit commit)))
2355 (file-name (git-file-name name version))
2356 (sha256
2357 (base32 "1l0lfl7cdnr2qf4zh38hi4llxg22c49zkm639bdkmvlkzwj3ndwf"))))
2358 (build-system asdf-build-system/sbcl)
2359 (home-page "http://quickdocs.org/ptester/")
2360 (synopsis "Portable test harness package")
2361 (description
2362 "@command{ptester} is a portable testing framework based on Franz's
2363 tester module.")
2364 (license license:llgpl))))
2365
2366 (define-public cl-ptester
2367 (sbcl-package->cl-source-package sbcl-ptester))
2368
2369 (define-public ecl-ptester
2370 (sbcl-package->ecl-package sbcl-ptester))
2371
2372 (define-public sbcl-puri
2373 (let ((commit "ef5afb9e5286c8e952d4344f019c1a636a717b97")
2374 (revision "1"))
2375 (package
2376 (name "sbcl-puri")
2377 (version (git-version "1.5.7" revision commit))
2378 (source
2379 (origin
2380 (method git-fetch)
2381 (uri (git-reference
2382 (url "http://git.kpe.io/puri.git")
2383 (commit commit)))
2384 (file-name (git-file-name name version))
2385 (sha256
2386 (base32 "1vm25pdl92laj72p5vyd538kf3cjy2655z6bdc99h20ana2p231s"))))
2387 (build-system asdf-build-system/sbcl)
2388 (native-inputs
2389 `(("ptester" ,sbcl-ptester)))
2390 (home-page "http://quickdocs.org/puri/")
2391 (synopsis "Portable URI Library")
2392 (description
2393 "This is a portable Universal Resource Identifier library for Common
2394 Lisp programs. It parses URI according to the RFC 2396 specification.")
2395 (license license:llgpl))))
2396
2397 (define-public cl-puri
2398 (sbcl-package->cl-source-package sbcl-puri))
2399
2400 (define-public ecl-puri
2401 (sbcl-package->ecl-package sbcl-puri))
2402
2403 (define-public sbcl-queues
2404 (let ((commit "47d4da65e9ea20953b74aeeab7e89a831b66bc94"))
2405 (package
2406 (name "sbcl-queues")
2407 (version (git-version "0.0.0" "1" commit))
2408 (source
2409 (origin
2410 (method git-fetch)
2411 (uri (git-reference
2412 (url "https://github.com/oconnore/queues")
2413 (commit commit)))
2414 (file-name (git-file-name "queues" version))
2415 (sha256
2416 (base32
2417 "0wdhfnzi4v6d97pggzj2aw55si94w4327br94jrmyvwf351wqjvv"))))
2418 (build-system asdf-build-system/sbcl)
2419 (home-page "https://github.com/oconnore/queues")
2420 (synopsis "Common Lisp queue library")
2421 (description
2422 "This is a simple queue library for Common Lisp with features such as
2423 non-consing thread safe queues and fibonacci priority queues.")
2424 (license license:expat))))
2425
2426 (define-public cl-queues
2427 (sbcl-package->cl-source-package sbcl-queues))
2428
2429 (define-public ecl-queues
2430 (sbcl-package->ecl-package sbcl-queues))
2431
2432 (define-public sbcl-queues.simple-queue
2433 (package
2434 (inherit sbcl-queues)
2435 (name "sbcl-queues.simple-queue")
2436 (inputs
2437 `(("sbcl-queues" ,sbcl-queues)))
2438 (arguments
2439 `(#:asd-file "queues.simple-queue.asd"))
2440 (synopsis "Simple queue implementation")
2441 (description
2442 "This is a simple queue library for Common Lisp with features such as
2443 non-consing thread safe queues and fibonacci priority queues.")
2444 (license license:expat)))
2445
2446 (define-public cl-queues.simple-queue
2447 (sbcl-package->cl-source-package sbcl-queues.simple-queue))
2448
2449 (define-public ecl-queues.simple-queue
2450 (sbcl-package->ecl-package sbcl-queues.simple-queue))
2451
2452 (define-public sbcl-queues.simple-cqueue
2453 (package
2454 (inherit sbcl-queues)
2455 (name "sbcl-queues.simple-cqueue")
2456 (inputs
2457 `(("sbcl-queues" ,sbcl-queues)
2458 ("sbcl-queues.simple-queue" ,sbcl-queues.simple-queue)
2459 ("bordeaux-threads" ,sbcl-bordeaux-threads)))
2460 (arguments
2461 `(#:asd-file "queues.simple-cqueue.asd"))
2462 (synopsis "Thread safe queue implementation")
2463 (description
2464 "This is a simple queue library for Common Lisp with features such as
2465 non-consing thread safe queues and fibonacci priority queues.")
2466 (license license:expat)))
2467
2468 (define-public cl-queues.simple-cqueue
2469 (sbcl-package->cl-source-package sbcl-queues.simple-cqueue))
2470
2471 (define-public ecl-queues.simple-cqueue
2472 (sbcl-package->ecl-package sbcl-queues.simple-cqueue))
2473
2474 (define-public sbcl-queues.priority-queue
2475 (package
2476 (inherit sbcl-queues)
2477 (name "sbcl-queues.priority-queue")
2478 (inputs
2479 `(("sbcl-queues" ,sbcl-queues)))
2480 (arguments
2481 `(#:asd-file "queues.priority-queue.asd"))
2482 (synopsis "Priority queue (Fibonacci) implementation")
2483 (description
2484 "This is a simple queue library for Common Lisp with features such as
2485 non-consing thread safe queues and fibonacci priority queues.")
2486 (license license:expat)))
2487
2488 (define-public cl-queues.priority-queue
2489 (sbcl-package->cl-source-package sbcl-queues.priority-queue))
2490
2491 (define-public ecl-queues.priority-queue
2492 (sbcl-package->ecl-package sbcl-queues.priority-queue))
2493
2494 (define-public sbcl-queues.priority-cqueue
2495 (package
2496 (inherit sbcl-queues)
2497 (name "sbcl-queues.priority-cqueue")
2498 (inputs
2499 `(("sbcl-queues" ,sbcl-queues)
2500 ("sbcl-queues.priority-queue" ,sbcl-queues.priority-queue)
2501 ("bordeaux-threads" ,sbcl-bordeaux-threads)))
2502 (arguments
2503 `(#:asd-file "queues.priority-cqueue.asd"))
2504 (synopsis "Thread safe fibonacci priority queue implementation")
2505 (description
2506 "This is a simple queue library for Common Lisp with features such as
2507 non-consing thread safe queues and fibonacci priority queues.")
2508 (license license:expat)))
2509
2510 (define-public cl-queues.priority-cqueue
2511 (sbcl-package->cl-source-package sbcl-queues.priority-cqueue))
2512
2513 (define-public ecl-queues.priority-cqueue
2514 (sbcl-package->ecl-package sbcl-queues.priority-cqueue))
2515
2516 (define sbcl-cffi-bootstrap
2517 (package
2518 (name "sbcl-cffi-bootstrap")
2519 (version "0.21.0")
2520 (source
2521 (origin
2522 (method git-fetch)
2523 (uri (git-reference
2524 (url "https://github.com/cffi/cffi.git")
2525 (commit (string-append "v" version))))
2526 (file-name (git-file-name "cffi-bootstrap" version))
2527 (sha256
2528 (base32 "1qalargz9bhp850qv60ffwpdqi4xirzar4l3g6qcg8yc6xqf2cjk"))))
2529 (build-system asdf-build-system/sbcl)
2530 (inputs
2531 `(("libffi" ,libffi)
2532 ("alexandria" ,sbcl-alexandria)
2533 ("babel" ,sbcl-babel)
2534 ("trivial-features" ,sbcl-trivial-features)))
2535 (native-inputs
2536 `(("pkg-config" ,pkg-config)))
2537 (arguments
2538 '(#:phases
2539 (modify-phases %standard-phases
2540 (add-after 'unpack 'fix-paths
2541 (lambda* (#:key inputs #:allow-other-keys)
2542 (substitute* "libffi/libffi.lisp"
2543 (("libffi.so.6" all) (string-append
2544 (assoc-ref inputs "libffi")
2545 "/lib/" all)))
2546 (substitute* "toolchain/c-toolchain.lisp"
2547 (("\"cc\"") (format #f "~S" (which "gcc")))))))
2548 #:asd-system-name "cffi"
2549 #:tests? #f))
2550 (home-page "https://common-lisp.net/project/cffi/")
2551 (synopsis "Common Foreign Function Interface for Common Lisp")
2552 (description "The Common Foreign Function Interface (CFFI)
2553 purports to be a portable foreign function interface for Common Lisp.
2554 The CFFI library is composed of a Lisp-implementation-specific backend
2555 in the CFFI-SYS package, and a portable frontend in the CFFI
2556 package.")
2557 (license license:expat)))
2558
2559 (define-public sbcl-cffi-toolchain
2560 (package
2561 (inherit sbcl-cffi-bootstrap)
2562 (name "sbcl-cffi-toolchain")
2563 (inputs
2564 `(("libffi" ,libffi)
2565 ("sbcl-cffi" ,sbcl-cffi-bootstrap)))
2566 (arguments
2567 (substitute-keyword-arguments (package-arguments sbcl-cffi-bootstrap)
2568 ((#:asd-system-name _) #f)
2569 ((#:tests? _) #t)))))
2570
2571 (define-public sbcl-cffi-libffi
2572 (package
2573 (inherit sbcl-cffi-toolchain)
2574 (name "sbcl-cffi-libffi")
2575 (inputs
2576 `(("cffi" ,sbcl-cffi-bootstrap)
2577 ("cffi-grovel" ,sbcl-cffi-grovel)
2578 ("trivial-features" ,sbcl-trivial-features)
2579 ("libffi" ,libffi)))))
2580
2581 (define-public sbcl-cffi-grovel
2582 (package
2583 (inherit sbcl-cffi-toolchain)
2584 (name "sbcl-cffi-grovel")
2585 (inputs
2586 `(("libffi" ,libffi)
2587 ("cffi" ,sbcl-cffi-bootstrap)
2588 ("cffi-toolchain" ,sbcl-cffi-toolchain)
2589 ("alexandria" ,sbcl-alexandria)))
2590 (arguments
2591 (substitute-keyword-arguments (package-arguments sbcl-cffi-toolchain)
2592 ((#:phases phases)
2593 `(modify-phases ,phases
2594 (add-after 'build 'install-headers
2595 (lambda* (#:key outputs #:allow-other-keys)
2596 (install-file "grovel/common.h"
2597 (string-append
2598 (assoc-ref outputs "out")
2599 "/include/grovel"))))))))))
2600
2601 (define-public sbcl-cffi
2602 (package
2603 (inherit sbcl-cffi-toolchain)
2604 (name "sbcl-cffi")
2605 (inputs (package-inputs sbcl-cffi-bootstrap))
2606 (native-inputs
2607 `(("cffi-grovel" ,sbcl-cffi-grovel)
2608 ("cffi-libffi" ,sbcl-cffi-libffi)
2609 ("rt" ,sbcl-rt)
2610 ("bordeaux-threads" ,sbcl-bordeaux-threads)
2611 ,@(package-native-inputs sbcl-cffi-bootstrap)))))
2612
2613 (define-public cl-cffi
2614 (sbcl-package->cl-source-package sbcl-cffi))
2615
2616 (define-public sbcl-cffi-uffi-compat
2617 (package
2618 (inherit sbcl-cffi-toolchain)
2619 (name "sbcl-cffi-uffi-compat")
2620 (native-inputs
2621 `(,@(package-inputs sbcl-cffi-bootstrap))) ; For fix-paths phase
2622 (inputs
2623 `(("cffi" ,sbcl-cffi)))
2624 (synopsis "UFFI Compatibility Layer for CFFI")))
2625
2626 (define-public cl-cffi-uffi-compat
2627 (sbcl-package->cl-source-package sbcl-cffi-uffi-compat))
2628
2629 (define-public sbcl-cl-sqlite
2630 (let ((commit "c738e66d4266ef63a1debc4ef4a1b871a068c112"))
2631 (package
2632 (name "sbcl-cl-sqlite")
2633 (version (git-version "0.2" "1" commit))
2634 (source
2635 (origin
2636 (method git-fetch)
2637 (uri (git-reference
2638 (url "https://github.com/dmitryvk/cl-sqlite")
2639 (commit commit)))
2640 (file-name (git-file-name "cl-sqlite" version))
2641 (sha256
2642 (base32
2643 "1ng45k1hdb84sqjryrfx93g66bsbybmpy301wd0fdybnc5jzr36q"))))
2644 (build-system asdf-build-system/sbcl)
2645 (inputs
2646 `(("iterate" ,sbcl-iterate)
2647 ("cffi" ,sbcl-cffi)
2648 ("sqlite" ,sqlite)))
2649 (native-inputs
2650 `(("fiveam" ,sbcl-fiveam)
2651 ("bordeaux-threads" ,sbcl-bordeaux-threads)))
2652 (arguments
2653 `(#:tests? #f ; Upstream seems to have issues with tests: https://github.com/dmitryvk/cl-sqlite/issues/7
2654 #:asd-file "sqlite.asd"
2655 #:asd-system-name "sqlite"
2656 #:phases
2657 (modify-phases %standard-phases
2658 (add-after 'unpack 'fix-paths
2659 (lambda* (#:key inputs #:allow-other-keys)
2660 (substitute* "sqlite-ffi.lisp"
2661 (("libsqlite3" all) (string-append
2662 (assoc-ref inputs "sqlite")"/lib/" all))))))))
2663 (home-page "https://common-lisp.net/project/cl-sqlite/")
2664 (synopsis "Common Lisp binding for SQLite")
2665 (description
2666 "The @command{cl-sqlite} package is an interface to the SQLite embedded
2667 relational database engine.")
2668 (license license:public-domain))))
2669
2670 (define-public cl-sqlite
2671 (sbcl-package->cl-source-package sbcl-cl-sqlite))
2672
2673 (define-public sbcl-parenscript
2674 ;; Source archives are overwritten on every release, we use the Git repo instead.
2675 (let ((commit "7a1ac46353cecd144fc91915ba9f122aafcf4766"))
2676 (package
2677 (name "sbcl-parenscript")
2678 (version (git-version "2.7.1" "1" commit))
2679 (source
2680 (origin
2681 (method git-fetch)
2682 (uri (git-reference
2683 (url "https://gitlab.common-lisp.net/parenscript/parenscript")
2684 (commit commit)))
2685 (file-name (git-file-name "parenscript" version))
2686 (sha256
2687 (base32
2688 "0c22lqarrpbq82dg1sb3y6mp6w2faczp34ymzhnmff88yfq1xzsf"))))
2689 (build-system asdf-build-system/sbcl)
2690 (inputs
2691 `(("cl-ppcre" ,sbcl-cl-ppcre)
2692 ("anaphora" ,sbcl-anaphora)
2693 ("named-readtables" ,sbcl-named-readtables)))
2694 (home-page "https://common-lisp.net/project/parenscript/")
2695 (synopsis "Translator from a subset of Common Lisp to JavaScript")
2696 (description
2697 "Parenscript is a translator from an extended subset of Common Lisp to
2698 JavaScript. Parenscript code can run almost identically on both the
2699 browser (as JavaScript) and server (as Common Lisp).
2700
2701 Parenscript code is treated the same way as Common Lisp code, making the full
2702 power of Lisp macros available for JavaScript. This provides a web
2703 development environment that is unmatched in its ability to reduce code
2704 duplication and provide advanced meta-programming facilities to web
2705 developers.
2706
2707 At the same time, Parenscript is different from almost all other \"language
2708 X\" to JavaScript translators in that it imposes almost no overhead:
2709
2710 @itemize
2711 @item No run-time dependencies: Any piece of Parenscript code is runnable
2712 as-is. There are no JavaScript files to include.
2713 @item Native types: Parenscript works entirely with native JavaScript data
2714 types. There are no new types introduced, and object prototypes are not
2715 touched.
2716 @item Native calling convention: Any JavaScript code can be called without the
2717 need for bindings. Likewise, Parenscript can be used to make efficient,
2718 self-contained JavaScript libraries.
2719 @item Readable code: Parenscript generates concise, formatted, idiomatic
2720 JavaScript code. Identifier names are preserved. This enables seamless
2721 debugging in tools like Firebug.
2722 @item Efficiency: Parenscript introduces minimal overhead for advanced Common
2723 Lisp features. The generated code is almost as fast as hand-written
2724 JavaScript.
2725 @end itemize\n")
2726 (license license:bsd-3))))
2727
2728 (define-public cl-parenscript
2729 (sbcl-package->cl-source-package sbcl-parenscript))
2730
2731 (define-public ecl-parenscript
2732 (sbcl-package->ecl-package sbcl-parenscript))
2733
2734 (define-public sbcl-cl-json
2735 (let ((commit "6dfebb9540bfc3cc33582d0c03c9ec27cb913e79"))
2736 (package
2737 (name "sbcl-cl-json")
2738 (version (git-version "0.5" "1" commit))
2739 (source
2740 (origin
2741 (method git-fetch)
2742 (uri (git-reference
2743 (url "https://github.com/hankhero/cl-json")
2744 (commit commit)))
2745 (file-name (git-file-name "cl-json" version))
2746 (sha256
2747 (base32
2748 "0fx3m3x3s5ji950yzpazz4s0img3l6b3d6l3jrfjv0lr702496lh"))))
2749 (build-system asdf-build-system/sbcl)
2750 (native-inputs
2751 `(("fiveam" ,sbcl-fiveam)))
2752 (home-page "https://github.com/hankhero/cl-json")
2753 (synopsis "JSON encoder and decoder for Common-Lisp")
2754 (description
2755 "@command{cl-json} provides an encoder of Lisp objects to JSON format
2756 and a corresponding decoder of JSON data to Lisp objects. Both the encoder
2757 and the decoder are highly customizable; at the same time, the default
2758 settings ensure a very simple mode of operation, similar to that provided by
2759 @command{yason} or @command{st-json}.")
2760 (license license:expat))))
2761
2762 (define-public cl-json
2763 (sbcl-package->cl-source-package sbcl-cl-json))
2764
2765 (define-public ecl-cl-json
2766 (sbcl-package->ecl-package sbcl-cl-json))
2767
2768 (define-public sbcl-unix-opts
2769 (package
2770 (name "sbcl-unix-opts")
2771 (version "0.1.7")
2772 (source
2773 (origin
2774 (method git-fetch)
2775 (uri (git-reference
2776 (url "https://github.com/libre-man/unix-opts")
2777 (commit version)))
2778 (file-name (git-file-name "unix-opts" version))
2779 (sha256
2780 (base32
2781 "08djdi1ard09fijb7w9bdmhmwd98b1hzmcnjw9fqjiqa0g3b44rr"))))
2782 (build-system asdf-build-system/sbcl)
2783 (home-page "https://github.com/hankhero/cl-json")
2784 (synopsis "Unix-style command line options parser")
2785 (description
2786 "This is a minimalistic parser of command line options. The main
2787 advantage of the library is the ability to concisely define command line
2788 options once and then use this definition for parsing and extraction of
2789 command line arguments, as well as printing description of command line
2790 options (you get --help for free). This way you don't need to repeat
2791 yourself. Also, @command{unix-opts} doesn't depend on anything and
2792 precisely controls the behavior of the parser via Common Lisp restarts.")
2793 (license license:expat)))
2794
2795 (define-public cl-unix-opts
2796 (sbcl-package->cl-source-package sbcl-unix-opts))
2797
2798 (define-public ecl-unix-opts
2799 (sbcl-package->ecl-package sbcl-unix-opts))
2800
2801 (define-public sbcl-trivial-garbage
2802 (package
2803 (name "sbcl-trivial-garbage")
2804 (version "0.21")
2805 (source
2806 (origin
2807 (method git-fetch)
2808 (uri (git-reference
2809 (url "https://github.com/trivial-garbage/trivial-garbage.git")
2810 (commit (string-append "v" version))))
2811 (file-name (git-file-name "trivial-garbage" version))
2812 (sha256
2813 (base32 "0122jicfg7pca1wxw8zak1n92h5friqy60988ns0ysksj3fphw9n"))))
2814 (build-system asdf-build-system/sbcl)
2815 (native-inputs
2816 `(("rt" ,sbcl-rt)))
2817 (home-page "https://common-lisp.net/project/trivial-garbage/")
2818 (synopsis "Portable GC-related APIs for Common Lisp")
2819 (description "@command{trivial-garbage} provides a portable API to
2820 finalizers, weak hash-tables and weak pointers on all major implementations of
2821 the Common Lisp programming language.")
2822 (license license:public-domain)))
2823
2824 (define-public cl-trivial-garbage
2825 (sbcl-package->cl-source-package sbcl-trivial-garbage))
2826
2827 (define-public ecl-trivial-garbage
2828 (sbcl-package->ecl-package sbcl-trivial-garbage))
2829
2830 (define-public sbcl-closer-mop
2831 (let ((commit "19c9d33f576e10715fd79cc1d4f688dab0f241d6"))
2832 (package
2833 (name "sbcl-closer-mop")
2834 (version (git-version "1.0.0" "2" commit))
2835 (source
2836 (origin
2837 (method git-fetch)
2838 (uri (git-reference
2839 (url "https://github.com/pcostanza/closer-mop")
2840 (commit commit)))
2841 (sha256
2842 (base32 "1w3x087wvlwkd6swfdgbvjfs6kazf0la8ax4pjfzikwjch4snn2c"))
2843 (file-name (git-file-name "closer-mop" version ))))
2844 (build-system asdf-build-system/sbcl)
2845 (home-page "https://github.com/pcostanza/closer-mop")
2846 (synopsis "Rectifies absent or incorrect CLOS MOP features")
2847 (description "Closer to MOP is a compatibility layer that rectifies many
2848 of the absent or incorrect CLOS MOP features across a broad range of Common
2849 Lisp implementations.")
2850 (license license:expat))))
2851
2852 (define-public cl-closer-mop
2853 (sbcl-package->cl-source-package sbcl-closer-mop))
2854
2855 (define-public ecl-closer-mop
2856 (sbcl-package->ecl-package sbcl-closer-mop))
2857
2858 (define sbcl-cl-cffi-gtk-boot0
2859 (let ((commit "412d17214e092220c65a5660f5cbbd9cb69b8fe4"))
2860 (package
2861 (name "sbcl-cl-cffi-gtk-boot0")
2862 (version (git-version "0.11.2" "1" commit))
2863 (source
2864 (origin
2865 (method git-fetch)
2866 (uri (git-reference
2867 (url "https://github.com/Ferada/cl-cffi-gtk/")
2868 (commit commit)))
2869 (file-name (git-file-name "cl-cffi-gtk" version))
2870 (sha256
2871 (base32
2872 "0n997yhcnzk048nalx8ys62ja2ac8iv4mbn3mb55iapl0321hghn"))))
2873 (build-system asdf-build-system/sbcl)
2874 (inputs
2875 `(("iterate" ,sbcl-iterate)
2876 ("cffi" ,sbcl-cffi)
2877 ("trivial-features" ,sbcl-trivial-features)))
2878 (home-page "https://github.com/Ferada/cl-cffi-gtk/")
2879 (synopsis "Common Lisp binding for GTK+3")
2880 (description
2881 "@command{cl-cffi-gtk} is a Lisp binding to GTK+ 3 (GIMP Toolkit) which
2882 is a library for creating graphical user interfaces.")
2883 (license license:lgpl3))))
2884
2885 (define-public sbcl-cl-cffi-gtk-glib
2886 (package
2887 (inherit sbcl-cl-cffi-gtk-boot0)
2888 (name "sbcl-cl-cffi-gtk-glib")
2889 (inputs
2890 `(("glib" ,glib)
2891 ("bordeaux-threads" ,sbcl-bordeaux-threads)
2892 ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
2893 (arguments
2894 `(#:asd-file "glib/cl-cffi-gtk-glib.asd"
2895 #:phases
2896 (modify-phases %standard-phases
2897 (add-after 'unpack 'fix-paths
2898 (lambda* (#:key inputs #:allow-other-keys)
2899 (substitute* "glib/glib.init.lisp"
2900 (("libglib|libgthread" all)
2901 (string-append (assoc-ref inputs "glib") "/lib/" all))))))))))
2902
2903 (define-public sbcl-cl-cffi-gtk-gobject
2904 (package
2905 (inherit sbcl-cl-cffi-gtk-boot0)
2906 (name "sbcl-cl-cffi-gtk-gobject")
2907 (inputs
2908 `(("glib" ,glib)
2909 ("cl-cffi-gtk-glib" ,sbcl-cl-cffi-gtk-glib)
2910 ("trivial-garbage" ,sbcl-trivial-garbage)
2911 ("bordeaux-threads" ,sbcl-bordeaux-threads)
2912 ("closer-mop" ,sbcl-closer-mop)
2913 ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
2914 (arguments
2915 `(#:asd-file "gobject/cl-cffi-gtk-gobject.asd"
2916 #:phases
2917 (modify-phases %standard-phases
2918 (add-after 'unpack 'fix-paths
2919 (lambda* (#:key inputs #:allow-other-keys)
2920 (substitute* "gobject/gobject.init.lisp"
2921 (("libgobject" all) (string-append
2922 (assoc-ref inputs "glib") "/lib/" all)))))
2923 (add-after 'install 'link-source
2924 ;; Since source is particularly heavy (16MiB+), let's reuse it
2925 ;; across the different components of cl-ffi-gtk.
2926 (lambda* (#:key inputs outputs #:allow-other-keys)
2927 (let ((glib-source (string-append (assoc-ref inputs "cl-cffi-gtk-glib")
2928 "/share/common-lisp/sbcl-source/"
2929 "cl-cffi-gtk-glib"))
2930 (out-source (string-append (assoc-ref outputs "out")
2931 "/share/common-lisp/sbcl-source/"
2932 "cl-cffi-gtk-gobject")))
2933 (delete-file-recursively out-source)
2934 (symlink glib-source out-source)
2935 #t))))))))
2936
2937 (define-public sbcl-cl-cffi-gtk-gio
2938 (package
2939 (inherit sbcl-cl-cffi-gtk-boot0)
2940 (name "sbcl-cl-cffi-gtk-gio")
2941 (inputs
2942 `(("glib" ,glib)
2943 ("cl-cffi-gtk-glib" ,sbcl-cl-cffi-gtk-glib)
2944 ("cl-cffi-gtk-gobject" ,sbcl-cl-cffi-gtk-gobject)
2945 ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
2946 (arguments
2947 `(#:asd-file "gio/cl-cffi-gtk-gio.asd"
2948 #:phases
2949 (modify-phases %standard-phases
2950 (add-after 'unpack 'fix-paths
2951 (lambda* (#:key inputs #:allow-other-keys)
2952 (substitute* "gio/gio.init.lisp"
2953 (("libgio" all)
2954 (string-append
2955 (assoc-ref inputs "glib") "/lib/" all)))))
2956 (add-after 'install 'link-source
2957 ;; Since source is particularly heavy (16MiB+), let's reuse it
2958 ;; across the different components of cl-ffi-gtk.
2959 (lambda* (#:key inputs outputs #:allow-other-keys)
2960 (let ((glib-source (string-append (assoc-ref inputs "cl-cffi-gtk-glib")
2961 "/share/common-lisp/sbcl-source/"
2962 "cl-cffi-gtk-glib"))
2963 (out-source (string-append (assoc-ref outputs "out")
2964 "/share/common-lisp/sbcl-source/"
2965 "cl-cffi-gtk-gio")))
2966 (delete-file-recursively out-source)
2967 (symlink glib-source out-source)
2968 #t))))))))
2969
2970 (define-public sbcl-cl-cffi-gtk-cairo
2971 (package
2972 (inherit sbcl-cl-cffi-gtk-boot0)
2973 (name "sbcl-cl-cffi-gtk-cairo")
2974 (inputs
2975 `(("cairo" ,cairo)
2976 ("cl-cffi-gtk-glib" ,sbcl-cl-cffi-gtk-glib)
2977 ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
2978 (arguments
2979 `(#:asd-file "cairo/cl-cffi-gtk-cairo.asd"
2980 #:phases
2981 (modify-phases %standard-phases
2982 (add-after 'unpack 'fix-paths
2983 (lambda* (#:key inputs #:allow-other-keys)
2984 (substitute* "cairo/cairo.init.lisp"
2985 (("libcairo" all)
2986 (string-append
2987 (assoc-ref inputs "cairo") "/lib/" all)))))
2988 (add-after 'install 'link-source
2989 ;; Since source is particularly heavy (16MiB+), let's reuse it
2990 ;; across the different components of cl-ffi-gtk.
2991 (lambda* (#:key inputs outputs #:allow-other-keys)
2992 (let ((glib-source (string-append (assoc-ref inputs "cl-cffi-gtk-glib")
2993 "/share/common-lisp/sbcl-source/"
2994 "cl-cffi-gtk-glib"))
2995 (out-source (string-append (assoc-ref outputs "out")
2996 "/share/common-lisp/sbcl-source/"
2997 "cl-cffi-gtk-cairo")))
2998 (delete-file-recursively out-source)
2999 (symlink glib-source out-source)
3000 #t))))))))
3001
3002 (define-public sbcl-cl-cffi-gtk-pango
3003 (package
3004 (inherit sbcl-cl-cffi-gtk-boot0)
3005 (name "sbcl-cl-cffi-gtk-pango")
3006 (inputs
3007 `(("pango" ,pango)
3008 ("cl-cffi-gtk-glib" ,sbcl-cl-cffi-gtk-glib)
3009 ("cl-cffi-gtk-gobject" ,sbcl-cl-cffi-gtk-gobject)
3010 ("cl-cffi-gtk-cairo" ,sbcl-cl-cffi-gtk-cairo)
3011 ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
3012 (arguments
3013 `(#:asd-file "pango/cl-cffi-gtk-pango.asd"
3014 #:phases
3015 (modify-phases %standard-phases
3016 (add-after 'unpack 'fix-paths
3017 (lambda* (#:key inputs #:allow-other-keys)
3018 (substitute* "pango/pango.init.lisp"
3019 (("libpango" all)
3020 (string-append
3021 (assoc-ref inputs "pango") "/lib/" all)))))
3022 (add-after 'install 'link-source
3023 ;; Since source is particularly heavy (16MiB+), let's reuse it
3024 ;; across the different components of cl-ffi-gtk.
3025 (lambda* (#:key inputs outputs #:allow-other-keys)
3026 (let ((glib-source (string-append (assoc-ref inputs "cl-cffi-gtk-glib")
3027 "/share/common-lisp/sbcl-source/"
3028 "cl-cffi-gtk-glib"))
3029 (out-source (string-append (assoc-ref outputs "out")
3030 "/share/common-lisp/sbcl-source/"
3031 "cl-cffi-gtk-pango")))
3032 (delete-file-recursively out-source)
3033 (symlink glib-source out-source)
3034 #t))))))))
3035
3036 (define-public sbcl-cl-cffi-gtk-gdk-pixbuf
3037 (package
3038 (inherit sbcl-cl-cffi-gtk-boot0)
3039 (name "sbcl-cl-cffi-gtk-gdk-pixbuf")
3040 (inputs
3041 `(("gdk-pixbuf" ,gdk-pixbuf)
3042 ("cl-cffi-gtk-gobject" ,sbcl-cl-cffi-gtk-gobject)
3043 ("cl-cffi-gtk-glib" ,sbcl-cl-cffi-gtk-glib)
3044 ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
3045 (arguments
3046 `(#:asd-file "gdk-pixbuf/cl-cffi-gtk-gdk-pixbuf.asd"
3047 #:phases
3048 (modify-phases %standard-phases
3049 (add-after 'unpack 'fix-paths
3050 (lambda* (#:key inputs #:allow-other-keys)
3051 (substitute* "gdk-pixbuf/gdk-pixbuf.init.lisp"
3052 (("libgdk_pixbuf" all)
3053 (string-append
3054 (assoc-ref inputs "gdk-pixbuf") "/lib/" all)))))
3055 (add-after 'install 'link-source
3056 ;; Since source is particularly heavy (16MiB+), let's reuse it
3057 ;; across the different components of cl-ffi-gtk.
3058 (lambda* (#:key inputs outputs #:allow-other-keys)
3059 (let ((glib-source (string-append (assoc-ref inputs "cl-cffi-gtk-glib")
3060 "/share/common-lisp/sbcl-source/"
3061 "cl-cffi-gtk-glib"))
3062 (out-source (string-append (assoc-ref outputs "out")
3063 "/share/common-lisp/sbcl-source/"
3064 "cl-cffi-gtk-gdk-pixbuf")))
3065 (delete-file-recursively out-source)
3066 (symlink glib-source out-source)
3067 #t))))))))
3068
3069 (define-public sbcl-cl-cffi-gtk-gdk
3070 (package
3071 (inherit sbcl-cl-cffi-gtk-boot0)
3072 (name "sbcl-cl-cffi-gtk-gdk")
3073 (inputs
3074 `(("gtk" ,gtk+)
3075 ("cl-cffi-gtk-glib" ,sbcl-cl-cffi-gtk-glib)
3076 ("cl-cffi-gtk-gobject" ,sbcl-cl-cffi-gtk-gobject)
3077 ("cl-cffi-gtk-gio" ,sbcl-cl-cffi-gtk-gio)
3078 ("cl-cffi-gtk-gdk-pixbuf" ,sbcl-cl-cffi-gtk-gdk-pixbuf)
3079 ("cl-cffi-gtk-cairo" ,sbcl-cl-cffi-gtk-cairo)
3080 ("cl-cffi-gtk-pango" ,sbcl-cl-cffi-gtk-pango)
3081 ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
3082 (arguments
3083 `(#:asd-file "gdk/cl-cffi-gtk-gdk.asd"
3084 #:phases
3085 (modify-phases %standard-phases
3086 (add-after 'unpack 'fix-paths
3087 (lambda* (#:key inputs #:allow-other-keys)
3088 (substitute* "gdk/gdk.init.lisp"
3089 (("libgdk" all)
3090 (string-append
3091 (assoc-ref inputs "gtk") "/lib/" all)))
3092 (substitute* "gdk/gdk.package.lisp"
3093 (("libgtk" all)
3094 (string-append
3095 (assoc-ref inputs "gtk") "/lib/" all)))))
3096 (add-after 'install 'link-source
3097 ;; Since source is particularly heavy (16MiB+), let's reuse it
3098 ;; across the different components of cl-ffi-gtk.
3099 (lambda* (#:key inputs outputs #:allow-other-keys)
3100 (let ((glib-source (string-append (assoc-ref inputs "cl-cffi-gtk-glib")
3101 "/share/common-lisp/sbcl-source/"
3102 "cl-cffi-gtk-glib"))
3103 (out-source (string-append (assoc-ref outputs "out")
3104 "/share/common-lisp/sbcl-source/"
3105 "cl-cffi-gtk-gdk")))
3106 (delete-file-recursively out-source)
3107 (symlink glib-source out-source)
3108 #t))))))))
3109
3110 (define-public sbcl-cl-cffi-gtk
3111 (package
3112 (inherit sbcl-cl-cffi-gtk-boot0)
3113 (name "sbcl-cl-cffi-gtk")
3114 (inputs
3115 `(("cl-cffi-gtk-glib" ,sbcl-cl-cffi-gtk-glib)
3116 ("cl-cffi-gtk-gobject" ,sbcl-cl-cffi-gtk-gobject)
3117 ("cl-cffi-gtk-gio" ,sbcl-cl-cffi-gtk-gio)
3118 ("cl-cffi-gtk-gdk" ,sbcl-cl-cffi-gtk-gdk)
3119 ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
3120 (native-inputs
3121 `(("fiveam" ,sbcl-fiveam)))
3122 (arguments
3123 `(#:asd-file "gtk/cl-cffi-gtk.asd"
3124 #:test-asd-file "test/cl-cffi-gtk-test.asd"
3125 ;; TODO: Tests fail with memory fault.
3126 ;; See https://github.com/Ferada/cl-cffi-gtk/issues/24.
3127 #:tests? #f
3128 #:phases
3129 (modify-phases %standard-phases
3130 (add-after 'install 'link-source
3131 ;; Since source is particularly heavy (16MiB+), let's reuse it
3132 ;; across the different components of cl-ffi-gtk.
3133 (lambda* (#:key inputs outputs #:allow-other-keys)
3134 (let ((glib-source (string-append (assoc-ref inputs "cl-cffi-gtk-glib")
3135 "/share/common-lisp/sbcl-source/"
3136 "cl-cffi-gtk-glib"))
3137 (out-source (string-append (assoc-ref outputs "out")
3138 "/share/common-lisp/sbcl-source/"
3139 "cl-cffi-gtk")))
3140 (delete-file-recursively out-source)
3141 (symlink glib-source out-source)
3142 #t))))))))
3143
3144 (define-public cl-cffi-gtk
3145 (sbcl-package->cl-source-package sbcl-cl-cffi-gtk))
3146
3147 (define-public sbcl-cl-webkit
3148 (let ((commit "f93cb9697e8813068795fe4dc39ac950d814102d"))
3149 (package
3150 (name "sbcl-cl-webkit")
3151 (version (git-version "2.4" "3" commit))
3152 (source
3153 (origin
3154 (method git-fetch)
3155 (uri (git-reference
3156 (url "https://github.com/joachifm/cl-webkit")
3157 (commit commit)))
3158 (file-name (git-file-name "cl-webkit" version))
3159 (sha256
3160 (base32
3161 "1sjcw08kjpd5h83sms7zcq2nymddjygk9hm2rpgzrl524an9ziwc"))))
3162 (build-system asdf-build-system/sbcl)
3163 (inputs
3164 `(("cffi" ,sbcl-cffi)
3165 ("cl-cffi-gtk" ,sbcl-cl-cffi-gtk)
3166 ("webkitgtk" ,webkitgtk)))
3167 (arguments
3168 `(#:asd-file "webkit2/cl-webkit2.asd"
3169 #:asd-system-name "cl-webkit2"
3170 #:phases
3171 (modify-phases %standard-phases
3172 (add-after 'unpack 'fix-paths
3173 (lambda* (#:key inputs #:allow-other-keys)
3174 (substitute* "webkit2/webkit2.init.lisp"
3175 (("libwebkit2gtk" all)
3176 (string-append
3177 (assoc-ref inputs "webkitgtk") "/lib/" all))))))))
3178 (home-page "https://github.com/joachifm/cl-webkit")
3179 (synopsis "Binding to WebKitGTK+ for Common Lisp")
3180 (description
3181 "@command{cl-webkit} is a binding to WebKitGTK+ for Common Lisp,
3182 currently targeting WebKit version 2. The WebKitGTK+ library adds web
3183 browsing capabilities to an application, leveraging the full power of the
3184 WebKit browsing engine.")
3185 (license license:expat))))
3186
3187 (define-public cl-webkit
3188 (sbcl-package->cl-source-package sbcl-cl-webkit))
3189
3190 (define-public sbcl-lparallel
3191 (package
3192 (name "sbcl-lparallel")
3193 (version "2.8.4")
3194 (source
3195 (origin
3196 (method git-fetch)
3197 (uri (git-reference
3198 (url "https://github.com/lmj/lparallel/")
3199 (commit (string-append "lparallel-" version))))
3200 (file-name (git-file-name "lparallel" version))
3201 (sha256
3202 (base32
3203 "0g0aylrbbrqsz0ahmwhvnk4cmc2931fllbpcfgzsprwnqqd7vwq9"))))
3204 (build-system asdf-build-system/sbcl)
3205 (inputs
3206 `(("alexandria" ,sbcl-alexandria)
3207 ("bordeaux-threads" ,sbcl-bordeaux-threads)
3208 ("trivial-garbage" ,sbcl-trivial-garbage)))
3209 (home-page "https://lparallel.org/")
3210 (synopsis "Parallelism for Common Lisp")
3211 (description
3212 "@command{lparallel} is a library for parallel programming in Common
3213 Lisp, featuring:
3214
3215 @itemize
3216 @item a simple model of task submission with receiving queue,
3217 @item constructs for expressing fine-grained parallelism,
3218 @item asynchronous condition handling across thread boundaries,
3219 @item parallel versions of map, reduce, sort, remove, and many others,
3220 @item promises, futures, and delayed evaluation constructs,
3221 @item computation trees for parallelizing interconnected tasks,
3222 @item bounded and unbounded FIFO queues,
3223 @item high and low priority tasks,
3224 @item task killing by category,
3225 @item integrated timeouts.
3226 @end itemize\n")
3227 (license license:expat)))
3228
3229 (define-public cl-lparallel
3230 (sbcl-package->cl-source-package sbcl-lparallel))
3231
3232 (define-public ecl-lparallel
3233 (sbcl-package->ecl-package sbcl-lparallel))
3234
3235 (define-public sbcl-cl-markup
3236 (let ((commit "e0eb7debf4bdff98d1f49d0f811321a6a637b390"))
3237 (package
3238 (name "sbcl-cl-markup")
3239 (version (git-version "0.1" "1" commit))
3240 (source
3241 (origin
3242 (method git-fetch)
3243 (uri (git-reference
3244 (url "https://github.com/arielnetworks/cl-markup/")
3245 (commit commit)))
3246 (file-name (git-file-name "cl-markup" version))
3247 (sha256
3248 (base32
3249 "10l6k45971dl13fkdmva7zc6i453lmq9j4xax2ci6pjzlc6xjhp7"))))
3250 (build-system asdf-build-system/sbcl)
3251 (home-page "https://github.com/arielnetworks/cl-markup/")
3252 (synopsis "Markup generation library for Common Lisp")
3253 (description
3254 "A modern markup generation library for Common Lisp that features:
3255
3256 @itemize
3257 @item Fast (even faster through compiling the code)
3258 @item Safety
3259 @item Support for multiple document types (markup, xml, html, html5, xhtml)
3260 @item Output with doctype
3261 @item Direct output to stream
3262 @end itemize\n")
3263 (license license:lgpl3+))))
3264
3265 (define-public cl-markup
3266 (sbcl-package->cl-source-package sbcl-cl-markup))
3267
3268 (define-public ecl-cl-markup
3269 (sbcl-package->ecl-package sbcl-cl-markup))
3270
3271 (define-public sbcl-cl-css
3272 (let ((commit "8fe654c8f0cf95b300718101cce4feb517f78e2f"))
3273 (package
3274 (name "sbcl-cl-css")
3275 (version (git-version "0.1" "1" commit))
3276 (source
3277 (origin
3278 (method git-fetch)
3279 (uri (git-reference
3280 (url "https://github.com/inaimathi/cl-css/")
3281 (commit commit)))
3282 (file-name (git-file-name "cl-css" version))
3283 (sha256
3284 (base32
3285 "1lc42zi2sw11fl2589sc19nr5sd2p0wy7wgvgwaggxa5f3ajhsmd"))))
3286 (build-system asdf-build-system/sbcl)
3287 (home-page "https://github.com/inaimathi/cl-css/")
3288 (synopsis "Non-validating, inline CSS generator for Common Lisp")
3289 (description
3290 "This is a dead-simple, non validating, inline CSS generator for Common
3291 Lisp. Its goals are axiomatic syntax, simple implementation to support
3292 portability, and boilerplate reduction in CSS.")
3293 (license license:expat))))
3294
3295 (define-public cl-css
3296 (sbcl-package->cl-source-package sbcl-cl-css))
3297
3298 (define-public ecl-cl-css
3299 (sbcl-package->ecl-package sbcl-cl-css))
3300
3301 (define-public sbcl-portable-threads
3302 (let ((commit "c0e61a1faeb0583c80fd3f20b16cc4c555226920"))
3303 (package
3304 (name "sbcl-portable-threads")
3305 (version (git-version "2.3" "1" commit))
3306 (source
3307 (origin
3308 (method git-fetch)
3309 (uri (git-reference
3310 (url "https://github.com/binghe/portable-threads/")
3311 (commit commit)))
3312 (file-name (git-file-name "portable-threads" version))
3313 (sha256
3314 (base32
3315 "03fmxyarc0xf4kavwkfa0a2spkyfrz6hbgbi9y4q7ny5aykdyfaq"))))
3316 (build-system asdf-build-system/sbcl)
3317 (arguments
3318 `(;; Tests seem broken.
3319 #:tests? #f))
3320 (home-page "https://github.com/binghe/portable-threads")
3321 (synopsis "Portable threads (and scheduled and periodic functions) API for Common Lisp")
3322 (description
3323 "Portable Threads (and Scheduled and Periodic Functions) API for Common
3324 Lisp (from GBBopen project).")
3325 (license license:asl2.0))))
3326
3327 (define-public cl-portable-threads
3328 (sbcl-package->cl-source-package sbcl-portable-threads))
3329
3330 (define-public ecl-portable-threada
3331 (sbcl-package->ecl-package sbcl-portable-threads))
3332
3333 (define sbcl-usocket-boot0
3334 ;; usocket's test rely on usocket-server which depends on usocket itself.
3335 ;; We break this cyclic dependency with -boot0 that packages usocket.
3336 (package
3337 (name "sbcl-usocket-boot0")
3338 (version "0.8.3")
3339 (source
3340 (origin
3341 (method git-fetch)
3342 (uri (git-reference
3343 (url "https://github.com/usocket/usocket/")
3344 (commit (string-append "v" version))))
3345 (file-name (git-file-name "usocket" version))
3346 (sha256
3347 (base32
3348 "0x746wr2324l6bn7skqzgkzcbj5kd0zp2ck0c8rldrw0rzabg826"))))
3349 (build-system asdf-build-system/sbcl)
3350 (inputs
3351 `(("split-sequence" ,sbcl-split-sequence)))
3352 (arguments
3353 `(#:tests? #f
3354 #:asd-system-name "usocket"))
3355 (home-page "https://common-lisp.net/project/usocket/")
3356 (synopsis "Universal socket library for Common Lisp (server side)")
3357 (description
3358 "This library strives to provide a portable TCP/IP and UDP/IP socket
3359 interface for as many Common Lisp implementations as possible, while keeping
3360 the abstraction and portability layer as thin as possible.")
3361 (license license:expat)))
3362
3363 (define-public sbcl-usocket-server
3364 (package
3365 (inherit sbcl-usocket-boot0)
3366 (name "sbcl-usocket-server")
3367 (inputs
3368 `(("bordeaux-threads" ,sbcl-bordeaux-threads)
3369 ("usocket" ,sbcl-usocket-boot0)))
3370 (arguments
3371 '(#:asd-system-name "usocket-server"))
3372 (synopsis "Universal socket library for Common Lisp (server side)")))
3373
3374 (define-public cl-usocket-server
3375 (sbcl-package->cl-source-package sbcl-usocket-server))
3376
3377 (define-public ecl-socket-server
3378 (sbcl-package->ecl-package sbcl-usocket-server))
3379
3380 (define-public sbcl-usocket
3381 (package
3382 (inherit sbcl-usocket-boot0)
3383 (name "sbcl-usocket")
3384 (arguments
3385 ;; FIXME: Tests need network access?
3386 `(#:tests? #f))
3387 (native-inputs
3388 ;; Testing only.
3389 `(("usocket-server" ,sbcl-usocket-server)
3390 ("rt" ,sbcl-rt)))))
3391
3392 (define-public cl-usocket
3393 (sbcl-package->cl-source-package sbcl-usocket))
3394
3395 (define-public ecl-usocket
3396 (sbcl-package->ecl-package sbcl-usocket))
3397
3398 (define-public sbcl-s-xml
3399 (package
3400 (name "sbcl-s-xml")
3401 (version "3")
3402 (source
3403 (origin
3404 (method url-fetch)
3405 (uri "https://common-lisp.net/project/s-xml/s-xml.tgz")
3406 (sha256
3407 (base32
3408 "061qcr0dzshsa38s5ma4ay924cwak2nq9gy59dw6v9p0qb58nzjf"))))
3409 (build-system asdf-build-system/sbcl)
3410 (home-page "https://common-lisp.net/project/s-xml/")
3411 (synopsis "Simple XML parser implemented in Common Lisp")
3412 (description
3413 "S-XML is a simple XML parser implemented in Common Lisp. This XML
3414 parser implementation has the following features:
3415
3416 @itemize
3417 @item It works (handling many common XML usages).
3418 @item It is very small (the core is about 700 lines of code, including
3419 comments and whitespace).
3420 @item It has a core API that is simple, efficient and pure functional, much
3421 like that from SSAX (see also http://ssax.sourceforge.net).
3422 @item It supports different DOM models: an XSML-based one, an LXML-based one
3423 and a classic xml-element struct based one.
3424 @item It is reasonably time and space efficient (internally avoiding garbage
3425 generatation as much as possible).
3426 @item It does support CDATA.
3427 @item It should support the same character sets as your Common Lisp
3428 implementation.
3429 @item It does support XML name spaces.
3430 @end itemize
3431
3432 This XML parser implementation has the following limitations:
3433
3434 @itemize
3435 @item It does not support any special tags (like processing instructions).
3436 @item It is not validating, even skips DTD's all together.
3437 @end itemize\n")
3438 (license license:lgpl3+)))
3439
3440 (define-public cl-s-xml
3441 (sbcl-package->cl-source-package sbcl-s-xml))
3442
3443 (define-public ecl-s-xml
3444 (sbcl-package->ecl-package sbcl-s-xml))
3445
3446 (define-public sbcl-s-xml-rpc
3447 (package
3448 (name "sbcl-s-xml-rpc")
3449 (version "7")
3450 (source
3451 (origin
3452 (method url-fetch)
3453 (uri "https://common-lisp.net/project/s-xml-rpc/s-xml-rpc.tgz")
3454 (sha256
3455 (base32
3456 "02z7k163d51v0pzk8mn1xb6h5s6x64gjqkslhwm3a5x26k2gfs11"))))
3457 (build-system asdf-build-system/sbcl)
3458 (inputs
3459 `(("s-xml" ,sbcl-s-xml)))
3460 (home-page "https://common-lisp.net/project/s-xml-rpc/")
3461 (synopsis "Implementation of XML-RPC in Common Lisp for both client and server")
3462 (description
3463 "S-XML-RPC is an implementation of XML-RPC in Common Lisp for both
3464 client and server.")
3465 (license license:lgpl3+)))
3466
3467 (define-public cl-s-xml-rpc
3468 (sbcl-package->cl-source-package sbcl-s-xml-rpc))
3469
3470 (define-public ecl-s-xml-rpc
3471 (sbcl-package->ecl-package sbcl-s-xml-rpc))
3472
3473 (define-public sbcl-trivial-clipboard
3474 (let ((commit "5af3415d1484e6d69a1b5c178f24680d9fd01796"))
3475 (package
3476 (name "sbcl-trivial-clipboard")
3477 (version (git-version "0.0.0.0" "2" commit))
3478 (source
3479 (origin
3480 (method git-fetch)
3481 (uri (git-reference
3482 (url "https://github.com/snmsts/trivial-clipboard")
3483 (commit commit)))
3484 (file-name (git-file-name "trivial-clipboard" version))
3485 (sha256
3486 (base32
3487 "1gb515z5yq6h5548pb1fwhmb0hhq1ssyb78pvxh4alq799xipxs9"))))
3488 (build-system asdf-build-system/sbcl)
3489 (inputs
3490 `(("xclip" ,xclip)))
3491 (native-inputs
3492 `(("fiveam" ,sbcl-fiveam)))
3493 (arguments
3494 `(#:phases
3495 (modify-phases %standard-phases
3496 (add-after 'unpack 'fix-paths
3497 (lambda* (#:key inputs #:allow-other-keys)
3498 (substitute* "src/text.lisp"
3499 (("\\(executable-find \"xclip\"\\)")
3500 (string-append "(executable-find \""
3501 (assoc-ref inputs "xclip")
3502 "/bin/xclip\")"))))))))
3503 (home-page "https://github.com/snmsts/trivial-clipboard")
3504 (synopsis "Access system clipboard in Common Lisp")
3505 (description
3506 "@command{trivial-clipboard} gives access to the system clipboard.")
3507 (license license:expat))))
3508
3509 (define-public cl-trivial-clipboard
3510 (sbcl-package->cl-source-package sbcl-trivial-clipboard))
3511
3512 (define-public ecl-trivial-clipboard
3513 (sbcl-package->ecl-package sbcl-trivial-clipboard))
3514
3515 (define-public sbcl-trivial-backtrace
3516 (let ((commit "ca81c011b86424a381a7563cea3b924f24e6fbeb")
3517 (revision "1"))
3518 (package
3519 (name "sbcl-trivial-backtrace")
3520 (version (git-version "0.0.0" revision commit))
3521 (source
3522 (origin
3523 (method git-fetch)
3524 (uri (git-reference
3525 (url "https://github.com/gwkkwg/trivial-backtrace.git")
3526 (commit commit)))
3527 (file-name (git-file-name "trivial-backtrace" version))
3528 (sha256
3529 (base32 "10p41p43skj6cimdg8skjy7372s8v2xpkg8djjy0l8rm45i654k1"))))
3530 (build-system asdf-build-system/sbcl)
3531 (inputs
3532 `(("sbcl-lift" ,sbcl-lift)))
3533 (arguments
3534 `(#:phases
3535 (modify-phases %standard-phases
3536 (add-after 'check 'delete-test-results
3537 (lambda* (#:key outputs #:allow-other-keys)
3538 (let ((test-results (string-append (assoc-ref outputs "out")
3539 "/share/common-lisp/"
3540 (%lisp-type) "-source"
3541 "/trivial-backtrace"
3542 "/test-results")))
3543 (when (file-exists? test-results)
3544 (delete-file-recursively test-results)))
3545 #t)))))
3546 (home-page "https://common-lisp.net/project/trivial-backtrace/")
3547 (synopsis "Portable simple API to work with backtraces in Common Lisp")
3548 (description
3549 "On of the many things that didn't quite get into the Common Lisp
3550 standard was how to get a Lisp to output its call stack when something has
3551 gone wrong. As such, each Lisp has developed its own notion of what to
3552 display, how to display it, and what sort of arguments can be used to
3553 customize it. @code{trivial-backtrace} is a simple solution to generating a
3554 backtrace portably.")
3555 (license license:expat))))
3556
3557 (define-public cl-trivial-backtrace
3558 (sbcl-package->cl-source-package sbcl-trivial-backtrace))
3559
3560 (define-public sbcl-rfc2388
3561 (let ((commit "591bcf7e77f2c222c43953a80f8c297751dc0c4e")
3562 (revision "1"))
3563 (package
3564 (name "sbcl-rfc2388")
3565 (version (git-version "0.0.0" revision commit))
3566 (source
3567 (origin
3568 (method git-fetch)
3569 (uri (git-reference
3570 (url "https://github.com/jdz/rfc2388.git")
3571 (commit commit)))
3572 (file-name (git-file-name "rfc2388" version))
3573 (sha256
3574 (base32 "0phh5n3clhl9ji8jaxrajidn22d3f0aq87mlbfkkxlnx2pnw694k"))))
3575 (build-system asdf-build-system/sbcl)
3576 (home-page "https://github.com/jdz/rfc2388/")
3577 (synopsis "An implementation of RFC 2388 in Common Lisp")
3578 (description
3579 "This package contains an implementation of RFC 2388, which is used to
3580 process form data posted with HTTP POST method using enctype
3581 \"multipart/form-data\".")
3582 (license license:bsd-2))))
3583
3584 (define-public cl-rfc2388
3585 (sbcl-package->cl-source-package sbcl-rfc2388))
3586
3587 (define-public sbcl-md5
3588 (package
3589 (name "sbcl-md5")
3590 (version "2.0.4")
3591 (source
3592 (origin
3593 (method url-fetch)
3594 (uri (string-append
3595 "https://github.com/pmai/md5/archive/release-" version ".tar.gz"))
3596 (sha256
3597 (base32 "19yl9n0pjdz5gw4qi711lka97xcd9f81ylg434hk7jwn9f2s6w11"))))
3598 (build-system asdf-build-system/sbcl)
3599 (home-page "https://github.com/pmai/md5")
3600 (synopsis
3601 "Common Lisp implementation of the MD5 Message-Digest Algorithm (RFC 1321)")
3602 (description
3603 "This package implements The MD5 Message-Digest Algorithm, as defined in
3604 RFC 1321 by R. Rivest, published April 1992.")
3605 (license license:public-domain)))
3606
3607 (define-public cl-md5
3608 (sbcl-package->cl-source-package sbcl-md5))
3609
3610 (define-public sbcl-cl+ssl
3611 (let ((commit "701e645081e6533a3f0f0b3ac86389d6f506c4b5")
3612 (revision "1"))
3613 (package
3614 (name "sbcl-cl+ssl")
3615 (version (git-version "0.0.0" revision commit))
3616 (source
3617 (origin
3618 (method git-fetch)
3619 (uri (git-reference
3620 (url "https://github.com/cl-plus-ssl/cl-plus-ssl.git")
3621 (commit commit)))
3622 (file-name (git-file-name "cl+ssl" version))
3623 (sha256
3624 (base32 "0nfl275nwhff3m25872y388cydz14kqb6zbwywa6nj85r9k8bgs0"))))
3625 (build-system asdf-build-system/sbcl)
3626 (arguments
3627 '(#:phases
3628 (modify-phases %standard-phases
3629 (add-after 'unpack 'fix-paths
3630 (lambda* (#:key inputs #:allow-other-keys)
3631 (substitute* "src/reload.lisp"
3632 (("libssl.so" all)
3633 (string-append
3634 (assoc-ref inputs "openssl") "/lib/" all))))))))
3635 (inputs
3636 `(("openssl" ,openssl)
3637 ("sbcl-cffi" ,sbcl-cffi)
3638 ("sbcl-trivial-gray-streams" ,sbcl-trivial-gray-streams)
3639 ("sbcl-flexi-streams" ,sbcl-flexi-streams)
3640 ("sbcl-bordeaux-threads" ,sbcl-bordeaux-threads)
3641 ("sbcl-trivial-garbage" ,sbcl-trivial-garbage)
3642 ("sbcl-alexandria" ,sbcl-alexandria)
3643 ("sbcl-trivial-features" ,sbcl-trivial-features)))
3644 (home-page "https://common-lisp.net/project/cl-plus-ssl/")
3645 (synopsis "Common Lisp bindings to OpenSSL")
3646 (description
3647 "This library is a fork of SSL-CMUCL. The original SSL-CMUCL source
3648 code was written by Eric Marsden and includes contributions by Jochen Schmidt.
3649 Development into CL+SSL was done by David Lichteblau.")
3650 (license license:expat))))
3651
3652 (define-public cl-cl+ssl
3653 (sbcl-package->cl-source-package sbcl-cl+ssl))
3654
3655 (define-public sbcl-kmrcl
3656 (let ((version "1.109.0")
3657 (commit "5260068b2eb735af6796740c2db4955afac21636")
3658 (revision "1"))
3659 (package
3660 (name "sbcl-kmrcl")
3661 (version (git-version version revision commit))
3662 (source
3663 (origin
3664 (method git-fetch)
3665 (uri (git-reference
3666 (url "http://git.kpe.io/kmrcl.git/")
3667 (commit commit)))
3668 (file-name (git-file-name name version))
3669 (sha256
3670 (base32 "1va7xjgzfv674bpsli674i7zj3f7wg5kxic41kz18r6hh4n52dfv"))))
3671 (build-system asdf-build-system/sbcl)
3672 (arguments
3673 ;; Tests fail with: :FORCE and :FORCE-NOT arguments not allowed in a
3674 ;; nested call to ASDF/OPERATE:OPERATE unless identically to toplevel
3675 '(#:tests? #f))
3676 (inputs
3677 `(("sbcl-rt" ,sbcl-rt)))
3678 (home-page "http://files.kpe.io/kmrcl/")
3679 (synopsis "General utilities for Common Lisp programs")
3680 (description
3681 "KMRCL is a collection of utilities used by a number of Kevin
3682 Rosenberg's CL packages.")
3683 (license license:llgpl))))
3684
3685 (define-public cl-kmrcl
3686 (sbcl-package->cl-source-package sbcl-kmrcl))
3687
3688 (define-public sbcl-cl-base64
3689 (package
3690 (name "sbcl-cl-base64")
3691 (version "3.3.4")
3692 (source
3693 (origin
3694 (method url-fetch)
3695 (uri (string-append "http://files.kpe.io/cl-base64/cl-base64-"
3696 version ".tar.gz"))
3697 (sha256
3698 (base32 "0pl4zwn5bf18dm8fh1kn1yshaa6kpmfrjyb33z9mq4raqmj3xpv2"))))
3699 (build-system asdf-build-system/sbcl)
3700 (arguments
3701 ;; Tests fail with: :FORCE and :FORCE-NOT arguments not allowed
3702 ;; in a nested call to ASDF/OPERATE:OPERATE unless identically
3703 ;; to toplevel
3704 '(#:tests? #f))
3705 (inputs
3706 `(("sbcl-ptester" ,sbcl-ptester)
3707 ("sbcl-kmrcl" ,sbcl-kmrcl)))
3708 (home-page "http://files.kpe.io/cl-base64/")
3709 (synopsis
3710 "Common Lisp package to encode and decode base64 with URI support")
3711 (description
3712 "This package provides highly optimized base64 encoding and decoding.
3713 Besides conversion to and from strings, integer conversions are supported.
3714 Encoding with Uniform Resource Identifiers is supported by using a modified
3715 encoding table that uses only URI-compatible characters.")
3716 (license license:bsd-3)))
3717
3718 (define-public cl-base64
3719 (sbcl-package->cl-source-package sbcl-cl-base64))
3720
3721 (define-public sbcl-chunga
3722 (package
3723 (name "sbcl-chunga")
3724 (version "1.1.7")
3725 (source
3726 (origin
3727 (method git-fetch)
3728 (uri (git-reference
3729 (url "https://github.com/edicl/chunga.git")
3730 (commit (string-append "v" version))))
3731 (file-name (git-file-name name version))
3732 (sha256
3733 (base32 "0jzn3nyb3f22gm983rfk99smqs3mhb9ivjmasvhq9qla5cl9pyhd"))))
3734 (build-system asdf-build-system/sbcl)
3735 (inputs
3736 `(("sbcl-trivial-gray-streams" ,sbcl-trivial-gray-streams)))
3737 (home-page "https://edicl.github.io/chunga/")
3738 (synopsis "Portable chunked streams for Common Lisp")
3739 (description
3740 "Chunga implements streams capable of chunked encoding on demand as
3741 defined in RFC 2616.")
3742 (license license:bsd-2)))
3743
3744 (define-public cl-chunga
3745 (sbcl-package->cl-source-package sbcl-chunga))
3746
3747 (define-public sbcl-cl-who
3748 (let ((version "1.1.4")
3749 (commit "2c08caa4bafba720409af9171feeba3f32e86d32")
3750 (revision "1"))
3751 (package
3752 (name "sbcl-cl-who")
3753 (version (git-version version revision commit))
3754 (source
3755 (origin
3756 (method git-fetch)
3757 (uri (git-reference
3758 (url "https://github.com/edicl/cl-who.git")
3759 (commit commit)))
3760 (file-name (git-file-name name version))
3761 (sha256
3762 (base32
3763 "0yjb6sr3yazm288m318kqvj9xk8rm9n1lpimgf65ymqv0i5agxsb"))))
3764 (build-system asdf-build-system/sbcl)
3765 (native-inputs
3766 `(("sbcl-flexi-streams" ,sbcl-flexi-streams)))
3767 (home-page "https://edicl.github.io/cl-who/")
3768 (synopsis "Yet another Lisp markup language")
3769 (description
3770 "There are plenty of Lisp Markup Languages out there - every Lisp
3771 programmer seems to write at least one during his career - and CL-WHO (where
3772 WHO means \"with-html-output\" for want of a better acronym) is probably just
3773 as good or bad as the next one.")
3774 (license license:bsd-2))))
3775
3776 (define-public cl-cl-who
3777 (sbcl-package->cl-source-package sbcl-cl-who))
3778
3779 (define-public sbcl-chipz
3780 (let ((version "0.8")
3781 (commit "75dfbc660a5a28161c57f115adf74c8a926bfc4d")
3782 (revision "1"))
3783 (package
3784 (name "sbcl-chipz")
3785 (version (git-version version revision commit))
3786 (source
3787 (origin
3788 (method git-fetch)
3789 (uri (git-reference
3790 (url "https://github.com/froydnj/chipz.git")
3791 (commit commit)))
3792 (file-name (git-file-name name version))
3793 (sha256
3794 (base32
3795 "0plx4rs39zbs4gjk77h4a2q11zpy75fh9v8hnxrvsf8fnakajhwg"))))
3796 (build-system asdf-build-system/sbcl)
3797 (native-inputs
3798 `(("sbcl-flexi-streams" ,sbcl-flexi-streams)))
3799 (home-page "http://method-combination.net/lisp/chipz/")
3800 (synopsis
3801 "Common Lisp library for decompressing deflate, zlib, gzip, and bzip2
3802 data")
3803 (description
3804 "DEFLATE data, defined in RFC1951, forms the core of popular
3805 compression formats such as zlib (RFC 1950) and gzip (RFC 1952). As such,
3806 Chipz also provides for decompressing data in those formats as well. BZIP2 is
3807 the format used by the popular compression tool bzip2.")
3808 ;; The author describes it as "MIT-like"
3809 (license license:expat))))
3810
3811 (define-public cl-chipz
3812 (sbcl-package->cl-source-package sbcl-chipz))
3813
3814 (define-public sbcl-drakma
3815 (package
3816 (name "sbcl-drakma")
3817 (version "2.0.7")
3818 (source
3819 (origin
3820 (method git-fetch)
3821 (uri (git-reference
3822 (url "https://github.com/edicl/drakma.git")
3823 (commit (string-append "v" version))))
3824 (file-name (git-file-name name version))
3825 (sha256
3826 (base32
3827 "1441idnyif9xzx3ln1p3fg36k2v9h4wasjqrzc8y52j61420qpci"))))
3828 (build-system asdf-build-system/sbcl)
3829 (inputs
3830 `(("sbcl-puri" ,sbcl-puri)
3831 ("sbcl-cl-base64" ,sbcl-cl-base64)
3832 ("sbcl-chunga" ,sbcl-chunga)
3833 ("sbcl-flexi-streams" ,sbcl-flexi-streams)
3834 ("sbcl-cl-ppcre" ,sbcl-cl-ppcre)
3835 ("sbcl-chipz" ,sbcl-chipz)
3836 ("sbcl-usocket" ,sbcl-usocket)
3837 ("sbcl-cl+ssl" ,sbcl-cl+ssl)))
3838 (native-inputs
3839 `(("sbcl-fiveam" ,sbcl-fiveam)))
3840 (home-page "https://edicl.github.io/drakma/")
3841 (synopsis "HTTP client written in Common Lisp")
3842 (description
3843 "Drakma is a full-featured HTTP client implemented in Common Lisp. It
3844 knows how to handle HTTP/1.1 chunking, persistent connections, re-usable
3845 sockets, SSL, continuable uploads, file uploads, cookies, and more.")
3846 (license license:bsd-2)))
3847
3848 (define-public cl-drakma
3849 (sbcl-package->cl-source-package sbcl-drakma))
3850
3851 (define-public ecl-drakma
3852 (sbcl-package->ecl-package sbcl-drakma))
3853
3854 (define-public sbcl-hunchentoot
3855 (package
3856 (name "sbcl-hunchentoot")
3857 (version "1.2.38")
3858 (source
3859 (origin
3860 (method git-fetch)
3861 (uri (git-reference
3862 (url "https://github.com/edicl/hunchentoot.git")
3863 (commit (string-append "v" version))))
3864 (file-name (git-file-name "hunchentoot" version))
3865 (sha256
3866 (base32 "1anpcad7w045m4rsjs1f3xdhjwx5cppq1h0vlb3q7dz81fi3i6yq"))))
3867 (build-system asdf-build-system/sbcl)
3868 (native-inputs
3869 `(("sbcl-cl-who" ,sbcl-cl-who)
3870 ("sbcl-drakma" ,sbcl-drakma)))
3871 (inputs
3872 `(("sbcl-chunga" ,sbcl-chunga)
3873 ("sbcl-cl-base64" ,sbcl-cl-base64)
3874 ("sbcl-cl-fad" ,sbcl-cl-fad)
3875 ("sbcl-cl-ppcre" ,sbcl-cl-ppcre)
3876 ("sbcl-flexi-streams" ,sbcl-flexi-streams)
3877 ("sbcl-cl+ssl" ,sbcl-cl+ssl)
3878 ("sbcl-md5" ,sbcl-md5)
3879 ("sbcl-rfc2388" ,sbcl-rfc2388)
3880 ("sbcl-trivial-backtrace" ,sbcl-trivial-backtrace)
3881 ("sbcl-usocket" ,sbcl-usocket)))
3882 (home-page "https://edicl.github.io/hunchentoot/")
3883 (synopsis "Web server written in Common Lisp")
3884 (description
3885 "Hunchentoot is a web server written in Common Lisp and at the same
3886 time a toolkit for building dynamic websites. As a stand-alone web server,
3887 Hunchentoot is capable of HTTP/1.1 chunking (both directions), persistent
3888 connections (keep-alive), and SSL.")
3889 (license license:bsd-2)))
3890
3891 (define-public cl-hunchentoot
3892 (sbcl-package->cl-source-package sbcl-hunchentoot))
3893
3894 (define-public sbcl-trivial-types
3895 (package
3896 (name "sbcl-trivial-types")
3897 (version "0.0.1")
3898 (source
3899 (origin
3900 (method git-fetch)
3901 (uri (git-reference
3902 (url "https://github.com/m2ym/trivial-types.git")
3903 (commit "ee869f2b7504d8aa9a74403641a5b42b16f47d88")))
3904 (file-name (git-file-name name version))
3905 (sha256
3906 (base32 "1s4cp9bdlbn8447q7w7f1wkgwrbvfzp20mgs307l5pxvdslin341"))))
3907 (build-system asdf-build-system/sbcl)
3908 (home-page "https://github.com/m2ym/trivial-types")
3909 (synopsis "Trivial type definitions for Common Lisp")
3910 (description
3911 "TRIVIAL-TYPES provides missing but important type definitions such as
3912 PROPER-LIST, ASSOCIATION-LIST, PROPERTY-LIST and TUPLE.")
3913 (license license:llgpl)))
3914
3915 (define-public cl-trivial-types
3916 (sbcl-package->cl-source-package sbcl-trivial-types))
3917
3918 (define-public sbcl-cl-syntax
3919 (package
3920 (name "sbcl-cl-syntax")
3921 (version "0.0.3")
3922 (source
3923 (origin
3924 (method git-fetch)
3925 (uri (git-reference
3926 (url "https://github.com/m2ym/cl-syntax.git")
3927 (commit "03f0c329bbd55b8622c37161e6278366525e2ccc")))
3928 (file-name (git-file-name "cl-syntax" version))
3929 (sha256
3930 (base32 "17ran8xp77asagl31xv8w819wafh6whwfc9p6dgx22ca537gyl4y"))))
3931 (build-system asdf-build-system/sbcl)
3932 (arguments
3933 '(#:asd-file "cl-syntax.asd"
3934 #:asd-system-name "cl-syntax"))
3935 (inputs `(("sbcl-trivial-types" ,sbcl-trivial-types)
3936 ("sbcl-named-readtables" ,sbcl-named-readtables)))
3937 (home-page "https://github.com/m2ym/cl-syntax")
3938 (synopsis "Reader Syntax Coventions for Common Lisp and SLIME")
3939 (description
3940 "CL-SYNTAX provides Reader Syntax Coventions for Common Lisp and SLIME.")
3941 (license license:llgpl)))
3942
3943 (define-public cl-syntax
3944 (sbcl-package->cl-source-package sbcl-cl-syntax))
3945
3946 (define-public sbcl-cl-annot
3947 (let ((commit "c99e69c15d935eabc671b483349a406e0da9518d")
3948 (revision "1"))
3949 (package
3950 (name "sbcl-cl-annot")
3951 (version (git-version "0.0.0" revision commit))
3952 (source
3953 (origin
3954 (method git-fetch)
3955 (uri (git-reference
3956 (url "https://github.com/m2ym/cl-annot.git")
3957 (commit commit)))
3958 (file-name (git-file-name name version))
3959 (sha256
3960 (base32 "1wq1gs9jjd5m6iwrv06c2d7i5dvqsfjcljgbspfbc93cg5xahk4n"))))
3961 (build-system asdf-build-system/sbcl)
3962 (arguments
3963 '(#:asd-file "cl-annot.asd"
3964 #:asd-system-name "cl-annot"))
3965 (inputs
3966 `(("sbcl-alexandria" ,sbcl-alexandria)))
3967 (home-page "https://github.com/m2ym/cl-annot")
3968 (synopsis "Python-like Annotation Syntax for Common Lisp.")
3969 (description
3970 "@code{cl-annot} is an general annotation library for Common Lisp.")
3971 (license license:llgpl))))
3972
3973 (define-public cl-annot
3974 (sbcl-package->cl-source-package sbcl-cl-annot))
3975
3976 (define-public sbcl-cl-syntax-annot
3977 (package
3978 (inherit sbcl-cl-syntax)
3979 (name "sbcl-cl-syntax-annot")
3980 (arguments
3981 '(#:asd-file "cl-syntax-annot.asd"
3982 #:asd-system-name "cl-syntax-annot"))
3983 (inputs
3984 `(("sbcl-cl-syntax" ,sbcl-cl-syntax)
3985 ("sbcl-cl-annot" ,sbcl-cl-annot)))
3986 (synopsis "Common Lisp reader Syntax for cl-annot")
3987 (description
3988 "CL-SYNTAX provides reader syntax coventions for Common Lisp and
3989 @code{cl-annot}.")))
3990
3991 (define-public cl-syntax-annot
3992 (sbcl-package->cl-source-package sbcl-cl-syntax-annot))
3993
3994 (define-public sbcl-cl-utilities
3995 (let ((commit "dce2d2f6387091ea90357a130fa6d13a6776884b")
3996 (revision "1"))
3997 (package
3998 (name "sbcl-cl-utilities")
3999 (version (git-version "0.0.0" revision commit))
4000 (source
4001 (origin
4002 (method url-fetch)
4003 (uri
4004 (string-append
4005 "https://gitlab.common-lisp.net/cl-utilities/cl-utilities/-/"
4006 "archive/" commit "/cl-utilities-" commit ".tar.gz"))
4007 (sha256
4008 (base32 "1r46v730yf96nk2vb24qmagv9x96xvd08abqwhf02ghgydv1a7z2"))))
4009 (build-system asdf-build-system/sbcl)
4010 (arguments
4011 '(#:asd-file "cl-utilities.asd"
4012 #:asd-system-name "cl-utilities"
4013 #:phases
4014 (modify-phases %standard-phases
4015 (add-after 'unpack 'fix-paths
4016 (lambda* (#:key inputs #:allow-other-keys)
4017 (substitute* "rotate-byte.lisp"
4018 (("in-package :cl-utilities)" all)
4019 "in-package :cl-utilities)\n\n#+sbcl\n(require :sb-rotate-byte)")))))))
4020 (home-page "http://common-lisp.net/project/cl-utilities")
4021 (synopsis "A collection of semi-standard utilities")
4022 (description
4023 "On Cliki.net <http://www.cliki.net/Common%20Lisp%20Utilities>, there
4024 is a collection of Common Lisp Utilities, things that everybody writes since
4025 they're not part of the official standard. There are some very useful things
4026 there; the only problems are that they aren't implemented as well as you'd
4027 like (some aren't implemented at all) and they aren't conveniently packaged
4028 and maintained. It takes quite a bit of work to carefully implement utilities
4029 for common use, commented and documented, with error checking placed
4030 everywhere some dumb user might make a mistake.")
4031 (license license:public-domain))))
4032
4033 (define-public cl-utilities
4034 (sbcl-package->cl-source-package sbcl-cl-utilities))
4035
4036 (define-public sbcl-map-set
4037 (let ((commit "7b4b545b68b8")
4038 (revision "1"))
4039 (package
4040 (name "sbcl-map-set")
4041 (version (git-version "0.0.0" revision commit))
4042 (source
4043 (origin
4044 (method url-fetch)
4045 (uri (string-append
4046 "https://bitbucket.org/tarballs_are_good/map-set/get/"
4047 commit ".tar.gz"))
4048 (sha256
4049 (base32 "1sx5j5qdsy5fklspfammwb16kjrhkggdavm922a9q86jm5l0b239"))))
4050 (build-system asdf-build-system/sbcl)
4051 (home-page "https://bitbucket.org/tarballs_are_good/map-set")
4052 (synopsis "Set-like data structure")
4053 (description
4054 "Implementation of a set-like data structure with constant time
4055 addition, removal, and random selection.")
4056 (license license:bsd-3))))
4057
4058 (define-public cl-map-set
4059 (sbcl-package->cl-source-package sbcl-map-set))
4060
4061 (define-public sbcl-quri
4062 (let ((commit "76b75103f21ead092c9f715512fa82441ef61185")
4063 (revision "1"))
4064 (package
4065 (name "sbcl-quri")
4066 (version (git-version "0.1.0" revision commit))
4067 (source
4068 (origin
4069 (method git-fetch)
4070 (uri (git-reference
4071 (url "https://github.com/fukamachi/quri.git")
4072 (commit commit)))
4073 (file-name (git-file-name name version))
4074 (sha256
4075 (base32 "1ccbxsgzdibmzq33mmbmmz9vwl6l03xh6nbpsh1hkdvdcl7q0a60"))))
4076 (build-system asdf-build-system/sbcl)
4077 (arguments
4078 ;; Tests fail with: Component QURI-ASD::QURI-TEST not found,
4079 ;; required by #<SYSTEM "quri">. Why?
4080 '(#:tests? #f))
4081 (native-inputs `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
4082 ("sbcl-prove" ,sbcl-prove)))
4083 (inputs `(("sbcl-babel" ,sbcl-babel)
4084 ("sbcl-split-sequence" ,sbcl-split-sequence)
4085 ("sbcl-cl-utilities" ,sbcl-cl-utilities)
4086 ("sbcl-alexandria" ,sbcl-alexandria)))
4087 (home-page "https://github.com/fukamachi/quri")
4088 (synopsis "Yet another URI library for Common Lisp")
4089 (description
4090 "QURI (pronounced \"Q-ree\") is yet another URI library for Common
4091 Lisp. It is intended to be a replacement of PURI.")
4092 (license license:bsd-3))))
4093
4094 (define-public cl-quri
4095 (sbcl-package->cl-source-package sbcl-quri))
4096
4097 (define-public sbcl-myway
4098 (let ((commit "286230082a11f879c18b93f17ca571c5f676bfb7")
4099 (revision "1"))
4100 (package
4101 (name "sbcl-myway")
4102 (version (git-version "0.1.0" revision commit))
4103 (source
4104 (origin
4105 (method git-fetch)
4106 (uri (git-reference
4107 (url "https://github.com/fukamachi/myway.git")
4108 (commit commit)))
4109 (file-name (git-file-name "myway" version))
4110 (sha256
4111 (base32 "0briia9bk3lbr0frnx39d1qg6i38dm4j6z9w3yga3d40k6df4a90"))))
4112 (build-system asdf-build-system/sbcl)
4113 (arguments
4114 ;; Tests fail with: Component MYWAY-ASD::MYWAY-TEST not found, required
4115 ;; by #<SYSTEM "myway">. Why?
4116 '(#:tests? #f))
4117 (native-inputs
4118 `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
4119 ("sbcl-prove" ,sbcl-prove)))
4120 (inputs
4121 `(("sbcl-cl-ppcre" ,sbcl-cl-ppcre)
4122 ("sbcl-quri" ,sbcl-quri)
4123 ("sbcl-map-set" ,sbcl-map-set)))
4124 (home-page "https://github.com/fukamachi/myway")
4125 (synopsis "Sinatra-compatible URL routing library for Common Lisp")
4126 (description "My Way is a Sinatra-compatible URL routing library.")
4127 (license license:llgpl))))
4128
4129 (define-public cl-myway
4130 (sbcl-package->cl-source-package sbcl-myway))
4131
4132 (define-public sbcl-xsubseq
4133 (let ((commit "5ce430b3da5cda3a73b9cf5cee4df2843034422b")
4134 (revision "1"))
4135 (package
4136 (name "sbcl-xsubseq")
4137 (version (git-version "0.0.1" revision commit))
4138 (source
4139 (origin
4140 (method git-fetch)
4141 (uri (git-reference
4142 (url "https://github.com/fukamachi/xsubseq")
4143 (commit commit)))
4144 (file-name (git-file-name name version))
4145 (sha256
4146 (base32 "1xz79q0p2mclf3sqjiwf6izdpb6xrsr350bv4mlmdlm6rg5r99px"))))
4147 (build-system asdf-build-system/sbcl)
4148 (arguments
4149 ;; Tests fail with: Component XSUBSEQ-ASD::XSUBSEQ-TEST not found,
4150 ;; required by #<SYSTEM "xsubseq">. Why?
4151 '(#:tests? #f))
4152 (native-inputs
4153 `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
4154 ("sbcl-prove" ,sbcl-prove)))
4155 (home-page "https://github.com/fukamachi/xsubseq")
4156 (synopsis "Efficient way to use \"subseq\"s in Common Lisp")
4157 (description
4158 "XSubseq provides functions to be able to handle \"subseq\"s more
4159 effieiently.")
4160 (license license:bsd-2))))
4161
4162 (define-public cl-xsubseq
4163 (sbcl-package->cl-source-package sbcl-xsubseq))
4164
4165 (define-public sbcl-smart-buffer
4166 (let ((commit "09b9a9a0b3abaa37abe9a730f5aac2643dca4e62")
4167 (revision "1"))
4168 (package
4169 (name "sbcl-smart-buffer")
4170 (version (git-version "0.0.1" revision commit))
4171 (source
4172 (origin
4173 (method git-fetch)
4174 (uri (git-reference
4175 (url "https://github.com/fukamachi/smart-buffer")
4176 (commit commit)))
4177 (file-name (git-file-name name version))
4178 (sha256
4179 (base32 "0qz1zzxx0wm5ff7gpgsq550a59p0qj594zfmm2rglj97dahj54l7"))))
4180 (build-system asdf-build-system/sbcl)
4181 (arguments
4182 ;; Tests fail with: Component SMART-BUFFER-ASD::SMART-BUFFER-TEST not
4183 ;; found, required by #<SYSTEM "smart-buffer">. Why?
4184 `(#:tests? #f))
4185 (native-inputs
4186 `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
4187 ("sbcl-prove" ,sbcl-prove)))
4188 (inputs
4189 `(("sbcl-xsubseq" ,sbcl-xsubseq)
4190 ("sbcl-flexi-streams" ,sbcl-flexi-streams)))
4191 (home-page "https://github.com/fukamachi/smart-buffer")
4192 (synopsis "Smart octets buffer")
4193 (description
4194 "Smart-buffer provides an output buffer which changes the destination
4195 depending on content size.")
4196 (license license:bsd-3))))
4197
4198 (define-public cl-smart-buffer
4199 (sbcl-package->cl-source-package sbcl-smart-buffer))
4200
4201 (define-public sbcl-fast-http
4202 (let ((commit "f9e7597191bae380503e20724fd493a24d024935")
4203 (revision "1"))
4204 (package
4205 (name "sbcl-fast-http")
4206 (version (git-version "0.2.0" revision commit))
4207 (source
4208 (origin
4209 (method git-fetch)
4210 (uri (git-reference
4211 (url "https://github.com/fukamachi/fast-http")
4212 (commit commit)))
4213 (file-name (git-file-name name version))
4214 (sha256
4215 (base32 "0qdmwv2zm0sizxdb8nnclgwl0nfjcbjaimbakavikijw7lr9b4jp"))))
4216 (build-system asdf-build-system/sbcl)
4217 (arguments
4218 ;; Tests fail with: Component FAST-HTTP-ASD::FAST-HTTP-TEST not found,
4219 ;; required by #<SYSTEM "fast-http">. Why?
4220 `(#:tests? #f))
4221 (native-inputs
4222 `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
4223 ("sbcl-prove" ,sbcl-prove)))
4224 (inputs
4225 `(("sbcl-alexandria" ,sbcl-alexandria)
4226 ("sbcl-proc-parse" ,sbcl-proc-parse)
4227 ("sbcl-xsubseq" ,sbcl-xsubseq)
4228 ("sbcl-smart-buffer" ,sbcl-smart-buffer)
4229 ("sbcl-cl-utilities" ,sbcl-cl-utilities)))
4230 (home-page "https://github.com/fukamachi/fast-http")
4231 (synopsis "HTTP request/response parser for Common Lisp")
4232 (description
4233 "@code{fast-http} is a HTTP request/response protocol parser for Common
4234 Lisp.")
4235 ;; Author specified the MIT license
4236 (license license:expat))))
4237
4238 (define-public cl-fast-http
4239 (sbcl-package->cl-source-package sbcl-fast-http))
4240
4241 (define-public sbcl-static-vectors
4242 (package
4243 (name "sbcl-static-vectors")
4244 (version "1.8.4")
4245 (source
4246 (origin
4247 (method git-fetch)
4248 (uri (git-reference
4249 (url "https://github.com/sionescu/static-vectors.git")
4250 (commit (string-append "v" version))))
4251 (file-name (git-file-name name version))
4252 (sha256
4253 (base32 "0qvf9z6bhwhm8n45fjwkm7j8dcb58szfvndky65cyn4lpdval7m1"))))
4254 (native-inputs
4255 `(("sbcl-fiveam" ,sbcl-fiveam)))
4256 (inputs
4257 `(("sbcl-cffi-grovel" ,sbcl-cffi-grovel)
4258 ("sbcl-cffi" ,sbcl-cffi)))
4259 (build-system asdf-build-system/sbcl)
4260 (home-page "https://github.com/sionescu/static-vectors")
4261 (synopsis "Allocate SIMPLE-ARRAYs in static memory")
4262 (description
4263 "With @code{static-vectors}, you can create vectors allocated in static
4264 memory.")
4265 (license license:expat)))
4266
4267 (define-public cl-static-vectors
4268 (sbcl-package->cl-source-package sbcl-static-vectors))
4269
4270 (define-public ecl-static-vectors
4271 (sbcl-package->ecl-package sbcl-static-vectors))
4272
4273 (define-public sbcl-marshal
4274 (let ((commit "eff1b15f2b0af2f26f71ad6a4dd5c4beab9299ec")
4275 (revision "1"))
4276 (package
4277 (name "sbcl-marshal")
4278 (version (git-version "1.3.0" revision commit))
4279 (source
4280 (origin
4281 (method git-fetch)
4282 (uri (git-reference
4283 (url "https://github.com/wlbr/cl-marshal.git")
4284 (commit commit)))
4285 (file-name (git-file-name name version))
4286 (sha256
4287 (base32 "08qs6fhk38xpkkjkpcj92mxx0lgy4ygrbbzrmnivdx281syr0gwh"))))
4288 (build-system asdf-build-system/sbcl)
4289 (home-page "https://github.com/wlbr/cl-marshal")
4290 (synopsis "Simple (de)serialization of Lisp datastructures")
4291 (description
4292 "Simple and fast marshalling of Lisp datastructures. Convert any object
4293 into a string representation, put it on a stream an revive it from there.
4294 Only minimal changes required to make your CLOS objects serializable.")
4295 (license license:expat))))
4296
4297 (define-public cl-marshal
4298 (sbcl-package->cl-source-package sbcl-marshal))
4299
4300 (define-public sbcl-checkl
4301 (let ((commit "80328800d047fef9b6e32dfe6bdc98396aee3cc9")
4302 (revision "1"))
4303 (package
4304 (name "sbcl-checkl")
4305 (version (git-version "0.0.0" revision commit))
4306 (source
4307 (origin
4308 (method git-fetch)
4309 (uri (git-reference
4310 (url "https://github.com/rpav/CheckL.git")
4311 (commit commit)))
4312 (file-name (git-file-name name version))
4313 (sha256
4314 (base32 "0bpisihx1gay44xmyr1dmhlwh00j0zzi04rp9fy35i95l2r4xdlx"))))
4315 (build-system asdf-build-system/sbcl)
4316 (arguments
4317 ;; Error while trying to load definition for system checkl-test from
4318 ;; pathname [...]/checkl-test.asd: The function CHECKL:DEFINE-TEST-OP
4319 ;; is undefined.
4320 '(#:tests? #f))
4321 (native-inputs
4322 `(("sbcl-fiveam" ,sbcl-fiveam)))
4323 (inputs
4324 `(("sbcl-marshal" ,sbcl-marshal)))
4325 (home-page "https://github.com/rpav/CheckL/")
4326 (synopsis "Dynamic testing for Common Lisp")
4327 (description
4328 "CheckL lets you write tests dynamically, it checks resulting values
4329 against the last run.")
4330 ;; The author specifies both LLGPL and "BSD", but the "BSD" license
4331 ;; isn't specified anywhere, so I don't know which kind. LLGPL is the
4332 ;; stronger of the two and so I think only listing this should suffice.
4333 (license license:llgpl))))
4334
4335 (define-public cl-checkl
4336 (sbcl-package->cl-source-package sbcl-checkl))
4337
4338 (define-public sbcl-fast-io
4339 (let ((commit "603f4903dd74fb221859da7058ae6ca3853fe64b")
4340 (revision "2"))
4341 (package
4342 (name "sbcl-fast-io")
4343 (version (git-version "1.0.0" revision commit))
4344 (source
4345 (origin
4346 (method git-fetch)
4347 (uri (git-reference
4348 (url "https://github.com/rpav/fast-io.git")
4349 (commit commit)))
4350 (file-name (git-file-name name version))
4351 (sha256
4352 (base32 "00agvc0xx4w715i6ach05p995zpcpghn04xc06zyci06q677vw3n"))))
4353 (build-system asdf-build-system/sbcl)
4354 (arguments
4355 ;; Error while trying to load definition for system fast-io-test from
4356 ;; pathname [...]/fast-io-test.asd: The function CHECKL:DEFINE-TEST-OP
4357 ;; is undefined.
4358 '(#:tests? #f))
4359 (native-inputs
4360 `(("sbcl-fiveam" ,sbcl-fiveam)
4361 ("sbcl-checkl" ,sbcl-checkl)))
4362 (inputs
4363 `(("sbcl-alexandria" ,sbcl-alexandria)
4364 ("sbcl-trivial-gray-streams" ,sbcl-trivial-gray-streams)
4365 ("sbcl-static-vectors" ,sbcl-static-vectors)))
4366 (home-page "https://github.com/rpav/fast-io")
4367 (synopsis "Fast octet-vector/stream I/O for Common Lisp")
4368 (description
4369 "Fast-io is about improving performance to octet-vectors and octet
4370 streams (though primarily the former, while wrapping the latter).")
4371 ;; Author specifies this as NewBSD which is an alias
4372 (license license:bsd-3))))
4373
4374 (define-public cl-fast-io
4375 (sbcl-package->cl-source-package sbcl-fast-io))
4376
4377 (define-public sbcl-jonathan
4378 (let ((commit "1f448b4f7ac8265e56e1c02b32ce383e65316300")
4379 (revision "1"))
4380 (package
4381 (name "sbcl-jonathan")
4382 (version (git-version "0.1.0" revision commit))
4383 (source
4384 (origin
4385 (method git-fetch)
4386 (uri (git-reference
4387 (url "https://github.com/Rudolph-Miller/jonathan.git")
4388 (commit commit)))
4389 (file-name (git-file-name name version))
4390 (sha256
4391 (base32 "14x4iwz3mbag5jzzzr4sb6ai0m9r4q4kyypbq32jmsk2dx1hi807"))))
4392 (build-system asdf-build-system/sbcl)
4393 (arguments
4394 ;; Tests fail with: Component JONATHAN-ASD::JONATHAN-TEST not found,
4395 ;; required by #<SYSTEM "jonathan">. Why?
4396 `(#:tests? #f))
4397 (native-inputs
4398 `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
4399 ("sbcl-prove" ,sbcl-prove)))
4400 (inputs
4401 `(("sbcl-cl-syntax" ,sbcl-cl-syntax)
4402 ("sbcl-cl-syntax-annot" ,sbcl-cl-syntax-annot)
4403 ("sbcl-fast-io" ,sbcl-fast-io)
4404 ("sbcl-proc-parse" ,sbcl-proc-parse)
4405 ("sbcl-cl-ppcre" ,sbcl-cl-ppcre)))
4406 (home-page "https://rudolph-miller.github.io/jonathan/overview.html")
4407 (synopsis "JSON encoder and decoder")
4408 (description
4409 "High performance JSON encoder and decoder. Currently support: SBCL,
4410 CCL.")
4411 ;; Author specifies the MIT license
4412 (license license:expat))))
4413
4414 (define-public cl-jonathan
4415 (sbcl-package->cl-source-package sbcl-jonathan))
4416
4417 (define-public sbcl-http-body
4418 (let ((commit "dd01dc4f5842e3d29728552e5163acce8386eb73")
4419 (revision "1"))
4420 (package
4421 (name "sbcl-http-body")
4422 (version (git-version "0.1.0" revision commit))
4423 (source
4424 (origin
4425 (method git-fetch)
4426 (uri (git-reference
4427 (url "https://github.com/fukamachi/http-body")
4428 (commit commit)))
4429 (file-name (git-file-name name version))
4430 (sha256
4431 (base32 "1jd06snjvxcprhapgfq8sx0y5lrldkvhf206ix6d5a23dd6zcmr0"))))
4432 (build-system asdf-build-system/sbcl)
4433 (arguments
4434 ;; Tests fail with: Component HTTP-BODY-ASD::HTTP-BODY-TEST not
4435 ;; found, required by #<SYSTEM "http-body">. Why?
4436 `(#:tests? #f))
4437 (native-inputs
4438 `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
4439 ("sbcl-prove" ,sbcl-prove)))
4440 (inputs
4441 `(("sbcl-fast-http" ,sbcl-fast-http)
4442 ("sbcl-jonathan" ,sbcl-jonathan)
4443 ("sbcl-quri" ,sbcl-quri)))
4444 (home-page "https://github.com/fukamachi/http-body")
4445 (synopsis "HTTP POST data parser")
4446 (description
4447 "HTTP-Body parses HTTP POST data and returns POST parameters. It
4448 supports application/x-www-form-urlencoded, application/json, and
4449 multipart/form-data.")
4450 (license license:bsd-2))))
4451
4452 (define-public cl-http-body
4453 (sbcl-package->cl-source-package sbcl-http-body))
4454
4455 (define-public sbcl-circular-streams
4456 (let ((commit "e770bade1919c5e8533dd2078c93c3d3bbeb38df")
4457 (revision "1"))
4458 (package
4459 (name "sbcl-circular-streams")
4460 (version (git-version "0.1.0" revision commit))
4461 (source
4462 (origin
4463 (method git-fetch)
4464 (uri (git-reference
4465 (url "https://github.com/fukamachi/circular-streams")
4466 (commit commit)))
4467 (file-name (git-file-name name version))
4468 (sha256
4469 (base32 "1wpw6d5cciyqcf92f7mvihak52pd5s47kk4qq6f0r2z2as68p5rs"))))
4470 (build-system asdf-build-system/sbcl)
4471 (arguments
4472 ;; The tests depend on cl-test-more which is now prove. Prove
4473 ;; tests aren't working for some reason.
4474 `(#:tests? #f))
4475 (inputs
4476 `(("sbcl-fast-io" ,sbcl-fast-io)
4477 ("sbcl-trivial-gray-streams" ,sbcl-trivial-gray-streams)))
4478 (home-page "https://github.com/fukamachi/circular-streams")
4479 (synopsis "Circularly readable streams for Common Lisp")
4480 (description
4481 "Circular-Streams allows you to read streams circularly by wrapping real
4482 streams. Once you reach end-of-file of a stream, it's file position will be
4483 reset to 0 and you're able to read it again.")
4484 (license license:llgpl))))
4485
4486 (define-public cl-circular-streams
4487 (sbcl-package->cl-source-package sbcl-circular-streams))
4488
4489 (define-public sbcl-lack-request
4490 (let ((commit "abff8efeb0c3a848e6bb0022f2b8b7fa3a1bc88b")
4491 (revision "1"))
4492 (package
4493 (name "sbcl-lack-request")
4494 (version (git-version "0.1.0" revision commit))
4495 (source
4496 (origin
4497 (method git-fetch)
4498 (uri (git-reference
4499 (url "https://github.com/fukamachi/lack.git")
4500 (commit commit)))
4501 (file-name (git-file-name "lack-request" version))
4502 (sha256
4503 (base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85"))))
4504 (build-system asdf-build-system/sbcl)
4505 (arguments
4506 '(#:asd-file "lack-request.asd"
4507 #:asd-system-name "lack-request"
4508 #:test-asd-file "t-lack-request.asd"
4509 ;; XXX: Component :CLACK-TEST not found
4510 #:tests? #f))
4511 (native-inputs
4512 `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
4513 ("sbcl-prove" ,sbcl-prove)))
4514 (inputs
4515 `(("sbcl-quri" ,sbcl-quri)
4516 ("sbcl-http-body" ,sbcl-http-body)
4517 ("sbcl-circular-streams" ,sbcl-circular-streams)))
4518 (home-page "https://github.com/fukamachi/lack")
4519 (synopsis "Lack, the core of Clack")
4520 (description
4521 "Lack is a Common Lisp library which allows web applications to be
4522 constructed of modular components. It was originally a part of Clack, however
4523 it's going to be rewritten as an individual project since Clack v2 with
4524 performance and simplicity in mind.")
4525 (license license:llgpl))))
4526
4527 (define-public cl-lack-request
4528 (sbcl-package->cl-source-package sbcl-lack-request))
4529
4530 (define-public sbcl-local-time
4531 (let ((commit "beac054eef428552b63d4ae7820c32ffef9a3015")
4532 (revision "1"))
4533 (package
4534 (name "sbcl-local-time")
4535 (version (git-version "1.0.6" revision commit))
4536 (source
4537 (origin
4538 (method git-fetch)
4539 (uri (git-reference
4540 (url "https://github.com/dlowe-net/local-time.git")
4541 (commit commit)))
4542 (file-name (git-file-name name version))
4543 (sha256
4544 (base32 "0xhkmgxh41dg2wwlsp0h2l41jp144xn4gpxhh0lna6kh0560w2cc"))))
4545 (build-system asdf-build-system/sbcl)
4546 (arguments
4547 ;; TODO: Component :STEFIL not found, required by #<SYSTEM
4548 ;; "local-time/test">
4549 '(#:tests? #f))
4550 (native-inputs
4551 `(("stefil" ,sbcl-hu.dwim.stefil)))
4552 (inputs
4553 `(("sbcl-cl-fad" ,sbcl-cl-fad)))
4554 (home-page "https://common-lisp.net/project/local-time/")
4555 (synopsis "Time manipulation library for Common Lisp")
4556 (description
4557 "The LOCAL-TIME library is a Common Lisp library for the manipulation of
4558 dates and times. It is based almost entirely upon Erik Naggum's paper \"The
4559 Long Painful History of Time\".")
4560 (license license:expat))))
4561
4562 (define-public cl-local-time
4563 (sbcl-package->cl-source-package sbcl-local-time))
4564
4565 (define-public sbcl-lack-response
4566 (let ((commit "abff8efeb0c3a848e6bb0022f2b8b7fa3a1bc88b")
4567 (revision "1"))
4568 (package
4569 (name "sbcl-lack-response")
4570 (version (git-version "0.1.0" revision commit))
4571 (source
4572 (origin
4573 (method git-fetch)
4574 (uri (git-reference
4575 (url "https://github.com/fukamachi/lack.git")
4576 (commit commit)))
4577 (file-name (git-file-name name version))
4578 (sha256
4579 (base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85"))))
4580 (build-system asdf-build-system/sbcl)
4581 (arguments
4582 '(#:asd-file "lack-response.asd"
4583 #:asd-system-name "lack-response"
4584 ;; XXX: no tests for lack-response.
4585 #:tests? #f))
4586 (native-inputs
4587 `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
4588 ("sbcl-prove" ,sbcl-prove)))
4589 (inputs
4590 `(("sbcl-quri" ,sbcl-quri)
4591 ("sbcl-http-body" ,sbcl-http-body)
4592 ("sbcl-circular-streams" ,sbcl-circular-streams)
4593 ("sbcl-local-time" ,sbcl-local-time)))
4594 (home-page "https://github.com/fukamachi/lack")
4595 (synopsis "Lack, the core of Clack")
4596 (description
4597 "Lack is a Common Lisp library which allows web applications to be
4598 constructed of modular components. It was originally a part of Clack, however
4599 it's going to be rewritten as an individual project since Clack v2 with
4600 performance and simplicity in mind.")
4601 (license license:llgpl))))
4602
4603 (define-public cl-lack-response
4604 (sbcl-package->cl-source-package sbcl-lack-response))
4605
4606 (define-public sbcl-lack-component
4607 (let ((commit "abff8efeb0c3a848e6bb0022f2b8b7fa3a1bc88b")
4608 (revision "1"))
4609 (package
4610 (name "sbcl-lack-component")
4611 (version (git-version "0.0.0" revision commit))
4612 (source
4613 (origin
4614 (method git-fetch)
4615 (uri (git-reference
4616 (url "https://github.com/fukamachi/lack.git")
4617 (commit commit)))
4618 (file-name (git-file-name "lack-component" version))
4619 (sha256
4620 (base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85"))))
4621 (build-system asdf-build-system/sbcl)
4622 (arguments
4623 '(#:asd-file "lack-component.asd"
4624 #:asd-system-name "lack-component"
4625 #:test-asd-file "t-lack-component.asd"
4626 ;; XXX: Component :LACK-TEST not found
4627 #:tests? #f))
4628 (native-inputs
4629 `(("prove-asdf" ,sbcl-prove-asdf)))
4630 (home-page "https://github.com/fukamachi/lack")
4631 (synopsis "Lack, the core of Clack")
4632 (description
4633 "Lack is a Common Lisp library which allows web applications to be
4634 constructed of modular components. It was originally a part of Clack, however
4635 it's going to be rewritten as an individual project since Clack v2 with
4636 performance and simplicity in mind.")
4637 (license license:llgpl))))
4638
4639 (define-public cl-lack-component
4640 (sbcl-package->cl-source-package sbcl-lack-component))
4641
4642 (define-public sbcl-lack-util
4643 (let ((commit "abff8efeb0c3a848e6bb0022f2b8b7fa3a1bc88b")
4644 (revision "1"))
4645 (package
4646 (name "sbcl-lack-util")
4647 (version (git-version "0.1.0" revision commit))
4648 (source
4649 (origin
4650 (method git-fetch)
4651 (uri (git-reference
4652 (url "https://github.com/fukamachi/lack.git")
4653 (commit commit)))
4654 (file-name (git-file-name "lack-util" version))
4655 (sha256
4656 (base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85"))))
4657 (build-system asdf-build-system/sbcl)
4658 (arguments
4659 '(#:asd-file "lack-util.asd"
4660 #:asd-system-name "lack-util"
4661 #:test-asd-file "t-lack-util.asd"
4662 ;; XXX: Component :LACK-TEST not found
4663 #:tests? #f))
4664 (native-inputs
4665 `(("prove-asdf" ,sbcl-prove-asdf)))
4666 (inputs
4667 `(("sbcl-ironclad" ,sbcl-ironclad)))
4668 (home-page "https://github.com/fukamachi/lack")
4669 (synopsis "Lack, the core of Clack")
4670 (description
4671 "Lack is a Common Lisp library which allows web applications to be
4672 constructed of modular components. It was originally a part of Clack, however
4673 it's going to be rewritten as an individual project since Clack v2 with
4674 performance and simplicity in mind.")
4675 (license license:llgpl))))
4676
4677 (define-public cl-lack-util
4678 (sbcl-package->cl-source-package sbcl-lack-util))
4679
4680 (define-public sbcl-lack-middleware-backtrace
4681 (let ((commit "abff8efeb0c3a848e6bb0022f2b8b7fa3a1bc88b")
4682 (revision "1"))
4683 (package
4684 (name "sbcl-lack-middleware-backtrace")
4685 (version (git-version "0.1.0" revision commit))
4686 (source
4687 (origin
4688 (method git-fetch)
4689 (uri (git-reference
4690 (url "https://github.com/fukamachi/lack.git")
4691 (commit commit)))
4692 (file-name (git-file-name "lack-middleware-backtrace" version))
4693 (sha256
4694 (base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85"))))
4695 (build-system asdf-build-system/sbcl)
4696 (arguments
4697 '(#:asd-file "lack-middleware-backtrace.asd"
4698 #:asd-system-name "lack-middleware-backtrace"
4699 #:test-asd-file "t-lack-middleware-backtrace.asd"
4700 ;; XXX: Component :LACK not found
4701 #:tests? #f))
4702 (native-inputs
4703 `(("prove-asdf" ,sbcl-prove-asdf)))
4704 (home-page "https://github.com/fukamachi/lack")
4705 (synopsis "Lack, the core of Clack")
4706 (description
4707 "Lack is a Common Lisp library which allows web applications to be
4708 constructed of modular components. It was originally a part of Clack, however
4709 it's going to be rewritten as an individual project since Clack v2 with
4710 performance and simplicity in mind.")
4711 (license license:llgpl))))
4712
4713 (define-public cl-lack-middleware-backtrace
4714 (sbcl-package->cl-source-package sbcl-lack-middleware-backtrace))
4715
4716 (define-public sbcl-trivial-mimes
4717 (let ((commit "303f8ac0aa6ca0bc139aa3c34822e623c3723fab")
4718 (revision "1"))
4719 (package
4720 (name "sbcl-trivial-mimes")
4721 (version (git-version "1.1.0" revision commit))
4722 (source
4723 (origin
4724 (method git-fetch)
4725 (uri (git-reference
4726 (url "https://github.com/Shinmera/trivial-mimes.git")
4727 (commit commit)))
4728 (file-name (git-file-name name version))
4729 (sha256
4730 (base32 "17jxgl47r695bvsb7wi3n2ws5rp1zzgvw0zii8cy5ggw4b4ayv6m"))))
4731 (build-system asdf-build-system/sbcl)
4732 (arguments
4733 '(#:phases
4734 (modify-phases %standard-phases
4735 (add-after
4736 'unpack 'fix-paths
4737 (lambda* (#:key inputs #:allow-other-keys)
4738 (let ((anchor "#p\"/etc/mime.types\""))
4739 (substitute* "mime-types.lisp"
4740 ((anchor all)
4741 (string-append
4742 anchor "\n"
4743 "(asdf:system-relative-pathname :trivial-mimes "
4744 "\"../../share/common-lisp/" (%lisp-type)
4745 "-source/trivial-mimes/mime.types\")")))))))))
4746 (native-inputs
4747 `(("stefil" ,sbcl-hu.dwim.stefil)))
4748 (inputs
4749 `(("sbcl-cl-fad" ,sbcl-cl-fad)))
4750 (home-page "https://shinmera.github.io/trivial-mimes/")
4751 (synopsis "Tiny Common Lisp library to detect mime types in files")
4752 (description
4753 "This is a teensy library that provides some functions to determine the
4754 mime-type of a file.")
4755 (license license:artistic2.0))))
4756
4757 (define-public cl-trivial-mimes
4758 (sbcl-package->cl-source-package sbcl-trivial-mimes))
4759
4760 (define-public ecl-trivial-mimes
4761 (sbcl-package->ecl-package sbcl-trivial-mimes))
4762
4763 (define-public sbcl-lack-middleware-static
4764 (let ((commit "abff8efeb0c3a848e6bb0022f2b8b7fa3a1bc88b")
4765 (revision "1"))
4766 (package
4767 (name "sbcl-lack-middleware-static")
4768 (version (git-version "0.1.0" revision commit))
4769 (source
4770 (origin
4771 (method git-fetch)
4772 (uri (git-reference
4773 (url "https://github.com/fukamachi/lack.git")
4774 (commit commit)))
4775 (file-name (git-file-name "lack-middleware-static" version))
4776 (sha256
4777 (base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85"))))
4778 (build-system asdf-build-system/sbcl)
4779 (arguments
4780 '(#:asd-file "lack-middleware-static.asd"
4781 #:asd-system-name "lack-middleware-static"
4782 #:test-asd-file "t-lack-middleware-static.asd"
4783 ;; XXX: Component :LACK not found
4784 #:tests? #f))
4785 (native-inputs
4786 `(("prove-asdf" ,sbcl-prove-asdf)))
4787 (inputs
4788 `(("sbcl-ironclad" ,sbcl-ironclad)
4789 ("sbcl-trivial-mimes" ,sbcl-trivial-mimes)
4790 ("sbcl-local-time" ,sbcl-local-time)))
4791 (home-page "https://github.com/fukamachi/lack")
4792 (synopsis "Lack, the core of Clack")
4793 (description
4794 "Lack is a Common Lisp library which allows web applications to be
4795 constructed of modular components. It was originally a part of Clack, however
4796 it's going to be rewritten as an individual project since Clack v2 with
4797 performance and simplicity in mind.")
4798 (license license:llgpl))))
4799
4800 (define-public cl-lack-middleware-static
4801 (sbcl-package->cl-source-package sbcl-lack-middleware-static))
4802
4803 (define-public sbcl-lack
4804 (let ((commit "abff8efeb0c3a848e6bb0022f2b8b7fa3a1bc88b")
4805 (revision "1"))
4806 (package
4807 (name "sbcl-lack")
4808 (version (git-version "0.1.0" revision commit))
4809 (source
4810 (origin
4811 (method git-fetch)
4812 (uri (git-reference
4813 (url "https://github.com/fukamachi/lack.git")
4814 (commit commit)))
4815 (file-name (git-file-name "lack" version))
4816 (sha256
4817 (base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85"))))
4818 (build-system asdf-build-system/sbcl)
4819 (arguments
4820 '(#:test-asd-file "t-lack.asd"
4821 ;; XXX: Component :CLACK not found
4822 #:tests? #f))
4823 (native-inputs
4824 `(("prove-asdf" ,sbcl-prove-asdf)))
4825 (inputs
4826 `(("sbcl-lack-component" ,sbcl-lack-component)
4827 ("sbcl-lack-util" ,sbcl-lack-util)))
4828 (home-page "https://github.com/fukamachi/lack")
4829 (synopsis "Lack, the core of Clack")
4830 (description
4831 "Lack is a Common Lisp library which allows web applications to be
4832 constructed of modular components. It was originally a part of Clack, however
4833 it's going to be rewritten as an individual project since Clack v2 with
4834 performance and simplicity in mind.")
4835 (license license:llgpl))))
4836
4837 (define-public cl-lack
4838 (sbcl-package->cl-source-package sbcl-lack))
4839
4840 (define-public sbcl-ningle
4841 (let ((commit "50bd4f09b5a03a7249bd4d78265d6451563b25ad")
4842 (revision "1"))
4843 (package
4844 (name "sbcl-ningle")
4845 (version (git-version "0.3.0" revision commit))
4846 (source
4847 (origin
4848 (method git-fetch)
4849 (uri (git-reference
4850 (url "https://github.com/fukamachi/ningle.git")
4851 (commit commit)))
4852 (file-name (git-file-name name version))
4853 (sha256
4854 (base32 "1bsl8cnxhacb8p92z9n89vhk1ikmij5zavk0m2zvmj7iqm79jzgw"))))
4855 (build-system asdf-build-system/sbcl)
4856 (arguments
4857 ;; TODO: pull in clack-test
4858 '(#:tests? #f
4859 #:phases
4860 (modify-phases %standard-phases
4861 (delete 'cleanup-files)
4862 (delete 'cleanup)
4863 (add-before 'cleanup 'combine-fasls
4864 (lambda* (#:key outputs #:allow-other-keys)
4865 (let* ((out (assoc-ref outputs "out"))
4866 (lib (string-append out "/lib/sbcl"))
4867 (ningle-path (string-append lib "/ningle"))
4868 (fasl-files (find-files out "\\.fasl$")))
4869 (mkdir-p ningle-path)
4870 (let ((fasl-path (lambda (name)
4871 (string-append ningle-path
4872 "/"
4873 (basename name)
4874 "--system.fasl"))))
4875 (for-each (lambda (file)
4876 (rename-file file
4877 (fasl-path
4878 (basename file ".fasl"))))
4879 fasl-files))
4880 fasl-files)
4881 #t)))))
4882 (native-inputs
4883 `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
4884 ("sbcl-prove" ,sbcl-prove)))
4885 (inputs
4886 `(("sbcl-cl-syntax" ,sbcl-cl-syntax)
4887 ("sbcl-cl-syntax-annot" ,sbcl-cl-syntax-annot)
4888 ("sbcl-myway" ,sbcl-myway)
4889 ("sbcl-lack-request" ,sbcl-lack-request)
4890 ("sbcl-lack-response" ,sbcl-lack-response)
4891 ("sbcl-lack-component" ,sbcl-lack-component)
4892 ("sbcl-alexandria" ,sbcl-alexandria)
4893 ("sbcl-babel" ,sbcl-babel)))
4894 (home-page "https://8arrow.org/ningle/")
4895 (synopsis "Super micro framework for Common Lisp")
4896 (description
4897 "Ningle is a lightweight web application framework for Common Lisp.")
4898 (license license:llgpl))))
4899
4900 (define-public cl-ningle
4901 (sbcl-package->cl-source-package sbcl-ningle))
4902
4903 (define-public sbcl-clack
4904 (let ((commit "e3e032843bb1220ab96263c411aa7f2feb4746e0")
4905 (revision "1"))
4906 (package
4907 (name "sbcl-clack")
4908 (version (git-version "2.0.0" revision commit))
4909 (source
4910 (origin
4911 (method git-fetch)
4912 (uri (git-reference
4913 (url "https://github.com/fukamachi/clack.git")
4914 (commit commit)))
4915 (file-name (git-file-name name version))
4916 (sha256
4917 (base32 "1ymzs6qyrwhlj6cgqsnpyn6g5cbp7a3s1vgxwna20y2q7y4iacy0"))))
4918 (build-system asdf-build-system/sbcl)
4919 (inputs
4920 `(("sbcl-lack" ,sbcl-lack)
4921 ("sbcl-lack-middleware-backtrace" ,sbcl-lack-middleware-backtrace)
4922 ("sbcl-bordeaux-threads" ,sbcl-bordeaux-threads)))
4923 (home-page "https://github.com/fukamachi/clack")
4924 (synopsis "Web Application Environment for Common Lisp")
4925 (description
4926 "Clack is a web application environment for Common Lisp inspired by
4927 Python's WSGI and Ruby's Rack.")
4928 (license license:llgpl))))
4929
4930 (define-public cl-clack
4931 (sbcl-package->cl-source-package sbcl-clack))
4932
4933 (define-public sbcl-log4cl
4934 (let ((commit "611e094458504b938d49de904eab141285328c7c")
4935 (revision "1"))
4936 (package
4937 (name "sbcl-log4cl")
4938 (build-system asdf-build-system/sbcl)
4939 (version "1.1.2")
4940 (source
4941 (origin
4942 (method git-fetch)
4943 (uri (git-reference
4944 (url "https://github.com/sharplispers/log4cl")
4945 (commit commit)))
4946 (file-name (git-file-name name version))
4947 (sha256
4948 (base32
4949 "08jly0s0g26b56hhpfizxsb4j0yvbh946sd205gr42dkzv8l7dsc"))))
4950 ;; FIXME: tests require stefil, sbcl-hu.dwim.stefil wont work
4951 (arguments
4952 `(#:tests? #f))
4953 (inputs `(("bordeaux-threads" ,sbcl-bordeaux-threads)))
4954 (synopsis "Common Lisp logging framework, modeled after Log4J")
4955 (home-page "https://github.com/7max/log4cl")
4956 (description "This is a Common Lisp logging framework that can log at
4957 various levels and mix text with expressions.")
4958 (license license:asl2.0))))
4959
4960 (define-public cl-log4cl
4961 (sbcl-package->cl-source-package sbcl-log4cl))
4962
4963 (define-public ecl-log4cl
4964 (sbcl-package->ecl-package sbcl-log4cl))
4965
4966 (define-public sbcl-find-port
4967 (let ((commit "00c96a25af93a0f8681d34ec548861f2d7485478")
4968 (revision "1"))
4969 (package
4970 (name "sbcl-find-port")
4971 (build-system asdf-build-system/sbcl)
4972 (version "0.1")
4973 (home-page "https://github.com/eudoxia0/find-port")
4974 (source
4975 (origin
4976 (method git-fetch)
4977 (uri (git-reference
4978 (url home-page)
4979 (commit commit)))
4980 (file-name (git-file-name name version))
4981 (sha256
4982 (base32
4983 "0d6dzbb45jh0rx90wgs6v020k2xa87mvzas3mvfzvivjvqqlpryq"))))
4984 (native-inputs
4985 `(("fiveam" ,sbcl-fiveam)))
4986 (inputs
4987 `(("sbcl-usocket" ,sbcl-usocket)))
4988 (synopsis "Find open ports programmatically in Common Lisp")
4989 (description "This is a small Common Lisp library that finds an open
4990 port within a range.")
4991 (license license:expat))))
4992
4993 (define-public cl-find-port
4994 (sbcl-package->cl-source-package sbcl-find-port))
4995
4996 (define-public ecl-find-port
4997 (sbcl-package->ecl-package sbcl-find-port))
4998
4999 (define-public sbcl-clunit
5000 (let ((commit "6f6d72873f0e1207f037470105969384f8380628")
5001 (revision "1"))
5002 (package
5003 (name "sbcl-clunit")
5004 (version (git-version "0.2.3" revision commit))
5005 (source
5006 (origin
5007 (method git-fetch)
5008 (uri (git-reference
5009 (url "https://github.com/tgutu/clunit.git")
5010 (commit commit)))
5011 (file-name (git-file-name name version))
5012 (sha256
5013 (base32
5014 "1idf2xnqzlhi8rbrqmzpmb3i1l6pbdzhhajkmhwbp6qjkmxa4h85"))))
5015 (build-system asdf-build-system/sbcl)
5016 (synopsis "CLUnit is a Common Lisp unit testing framework")
5017 (description
5018 "CLUnit is a Common Lisp unit testing framework. It is designed
5019 to be easy to use so that you can quickly start testing. CLUnit
5020 provides a rich set of features aimed at improving your unit testing
5021 experience.")
5022 (home-page "https://tgutu.github.io/clunit/")
5023 ;; MIT License
5024 (license license:expat))))
5025
5026 (define-public cl-clunit
5027 (sbcl-package->cl-source-package sbcl-clunit))
5028
5029 (define-public ecl-clunit
5030 (sbcl-package->ecl-package sbcl-clunit))
5031
5032 (define-public sbcl-py4cl
5033 (let ((commit "4c8a2b0814fd311f978964f825ce012290f60136")
5034 (revision "1"))
5035 (package
5036 (name "sbcl-py4cl")
5037 (version (git-version "0.0.0" revision commit))
5038 (source
5039 (origin
5040 (method git-fetch)
5041 (uri (git-reference
5042 (url "https://github.com/bendudson/py4cl.git")
5043 (commit commit)))
5044 (file-name (git-file-name name version))
5045 (sha256
5046 (base32
5047 "15mk7qdqjkj56gdnbyrdyz6r7m1h26ldvn6ch96pmvg5vmr1m45r"))
5048 (modules '((guix build utils)))))
5049 (build-system asdf-build-system/sbcl)
5050 (native-inputs
5051 `(("sbcl-clunit" ,sbcl-clunit)))
5052 (inputs
5053 `(("sbcl-trivial-garbage" ,sbcl-trivial-garbage)))
5054 (propagated-inputs
5055 ;; This package doesn't do anything without python available
5056 `(("python" ,python)
5057 ;; For multi-dimensional array support
5058 ("python-numpy" ,python-numpy)))
5059 (arguments
5060 '(#:phases
5061 (modify-phases %standard-phases
5062 (add-after 'unpack 'replace-*base-directory*-var
5063 (lambda* (#:key outputs #:allow-other-keys)
5064 ;; In the ASD, the author makes an attempt to
5065 ;; programatically determine the location of the
5066 ;; source-code so lisp can call into "py4cl.py". We can
5067 ;; hard-code this since we know where this file will
5068 ;; reside.
5069 (substitute* "src/callpython.lisp"
5070 (("py4cl/config:\\*base-directory\\*")
5071 (string-append
5072 "\""
5073 (assoc-ref outputs "out")
5074 "/share/common-lisp/sbcl-source/py4cl/"
5075 "\""))))))))
5076 (synopsis "Call python from Common Lisp")
5077 (description
5078 "Py4CL is a bridge between Common Lisp and Python, which enables Common
5079 Lisp to interact with Python code. It uses streams to communicate with a
5080 separate python process, the approach taken by cl4py. This is different to
5081 the CFFI approach used by burgled-batteries, but has the same goal.")
5082 (home-page "https://github.com/bendudson/py4cl")
5083 ;; MIT License
5084 (license license:expat))))
5085
5086 (define-public cl-py4cl
5087 (sbcl-package->cl-source-package sbcl-py4cl))
5088
5089 (define-public ecl-py4cl
5090 (sbcl-package->ecl-package sbcl-py4cl))
5091
5092 (define-public sbcl-parse-declarations
5093 (let ((commit "549aebbfb9403a7fe948654126b9c814f443f4f2")
5094 (revision "1"))
5095 (package
5096 (name "sbcl-parse-declarations")
5097 (version (git-version "1.0.0" revision commit))
5098 (source
5099 (origin
5100 (method git-fetch)
5101 (uri (git-reference
5102 (url (string-append
5103 "https://gitlab.common-lisp.net/parse-declarations/"
5104 "parse-declarations.git"))
5105 (commit commit)))
5106 (file-name (git-file-name name version))
5107 (sha256
5108 (base32 "03g5qks4c59nmxa48pbslxkfh77h8hn8566jddp6m9pl15dzzpxd"))))
5109 (build-system asdf-build-system/sbcl)
5110 (arguments
5111 `(#:asd-file "parse-declarations-1.0.asd"
5112 #:asd-system-name "parse-declarations-1.0"))
5113 (home-page "https://common-lisp.net/project/parse-declarations/")
5114 (synopsis "Parse, filter, and build declarations")
5115 (description
5116 "Parse-Declarations is a Common Lisp library to help writing
5117 macros which establish bindings. To be semantically correct, such
5118 macros must take user declarations into account, as these may affect
5119 the bindings they establish. Yet the ANSI standard of Common Lisp does
5120 not provide any operators to work with declarations in a convenient,
5121 high-level way. This library provides such operators.")
5122 ;; MIT License
5123 (license license:expat))))
5124
5125 (define-public cl-parse-declarations
5126 (sbcl-package->cl-source-package sbcl-parse-declarations))
5127
5128 (define-public ecl-parse-declarations
5129 (sbcl-package->ecl-package sbcl-parse-declarations))
5130
5131 (define-public sbcl-cl-quickcheck
5132 (let ((commit "807b2792a30c883a2fbecea8e7db355b50ba662f")
5133 (revision "1"))
5134 (package
5135 (name "sbcl-cl-quickcheck")
5136 (version (git-version "0.0.4" revision commit))
5137 (source
5138 (origin
5139 (method git-fetch)
5140 (uri (git-reference
5141 (url "https://github.com/mcandre/cl-quickcheck.git")
5142 (commit commit)))
5143 (file-name (git-file-name name version))
5144 (sha256
5145 (base32
5146 "165lhypq5xkcys6hvzb3jq7ywnmqvzaflda29qk2cbs3ggas4767"))))
5147 (build-system asdf-build-system/sbcl)
5148 (synopsis
5149 "Common Lisp port of the QuickCheck unit test framework")
5150 (description
5151 "Common Lisp port of the QuickCheck unit test framework")
5152 (home-page "https://github.com/mcandre/cl-quickcheck")
5153 ;; MIT
5154 (license license:expat))))
5155
5156 (define-public cl-cl-quickcheck
5157 (sbcl-package->cl-source-package sbcl-cl-quickcheck))
5158
5159 (define-public ecl-cl-quickcheck
5160 (sbcl-package->ecl-package sbcl-cl-quickcheck))
5161
5162 (define-public sbcl-burgled-batteries3
5163 (let ((commit "f65f454d13bb6c40e17e9ec62e41eb5069e09760")
5164 (revision "2"))
5165 (package
5166 (name "sbcl-burgled-batteries3")
5167 (version (git-version "0.0.0" revision commit))
5168 (source
5169 (origin
5170 (method git-fetch)
5171 (uri (git-reference
5172 (url "https://github.com/snmsts/burgled-batteries3.git")
5173 (commit commit)))
5174 (file-name (git-file-name name version))
5175 (sha256
5176 (base32
5177 "1nzn7jawrfajyzwfnzrg2cmn9xxadcqh4szbpg0jggkhdkdzz4wa"))))
5178 (build-system asdf-build-system/sbcl)
5179 (arguments
5180 `(#:tests? #f
5181 #:modules (((guix build python-build-system) #:select (python-version))
5182 ,@%asdf-build-system-modules)
5183 #:imported-modules ((guix build python-build-system)
5184 ,@%asdf-build-system-modules)
5185 #:phases
5186 (modify-phases (@ (guix build asdf-build-system) %standard-phases)
5187 (add-after 'unpack 'set-*cpython-include-dir*-var
5188 (lambda* (#:key inputs #:allow-other-keys)
5189 (let ((python (assoc-ref inputs "python")))
5190 (setenv "BB_PYTHON3_INCLUDE_DIR"
5191 (string-append python "/include/python"
5192 (python-version python)
5193 "m"))
5194 (setenv "BB_PYTHON3_DYLIB"
5195 (string-append python "/lib/libpython3.so"))
5196 #t))))))
5197 (native-inputs
5198 `(("sbcl-cl-fad" ,sbcl-cl-fad)
5199 ("sbcl-lift" ,sbcl-lift)
5200 ("sbcl-cl-quickcheck" ,sbcl-cl-quickcheck)))
5201 (inputs
5202 `(("python" ,python)
5203 ("sbcl-cffi" ,sbcl-cffi)
5204 ("sbcl-cffi-grovel" ,sbcl-cffi-grovel)
5205 ("sbcl-alexandria" , sbcl-alexandria)
5206 ("sbcl-parse-declarations-1.0" ,sbcl-parse-declarations)
5207 ("sbcl-trivial-garbage" ,sbcl-trivial-garbage)))
5208 (synopsis "Bridge between Python and Lisp (FFI bindings, etc.)")
5209 (description
5210 "This package provides a shim between Python3 (specifically, the
5211 CPython implementation of Python) and Common Lisp.")
5212 (home-page "https://github.com/snmsts/burgled-batteries3")
5213 (license license:expat))))
5214
5215 (define-public cl-burgled-batteries3
5216 (sbcl-package->cl-source-package sbcl-burgled-batteries3))
5217
5218 (define-public ecl-burgled-batteries3
5219 (sbcl-package->ecl-package sbcl-burgled-batteries3))
5220
5221 (define-public sbcl-metabang-bind
5222 (let ((commit "c93b7f7e1c18c954c2283efd6a7fdab36746ab5e")
5223 (revision "1"))
5224 (package
5225 (name "sbcl-metabang-bind")
5226 (version (git-version "0.8.0" revision commit))
5227 (source
5228 (origin
5229 (method git-fetch)
5230 (uri (git-reference
5231 (url "https://github.com/gwkkwg/metabang-bind.git")
5232 (commit commit)))
5233 (file-name (git-file-name name version))
5234 (sha256
5235 (base32
5236 "0hd0kr91795v77akpbcyqiss9p0p7ypa9dznrllincnmgvsxlmf0"))))
5237 (build-system asdf-build-system/sbcl)
5238 (native-inputs
5239 `(("sbcl-lift" ,sbcl-lift)))
5240 (synopsis "Macro that generalizes @code{multiple-value-bind} etc.")
5241 (description
5242 "Bind extends the idea of of let and destructing to provide a uniform
5243 syntax for all your accessor needs. It combines @code{let},
5244 @code{destructuring-bind}, @code{with-slots}, @code{with-accessors}, structure
5245 editing, property or association-lists, and @code{multiple-value-bind} and a
5246 whole lot more into a single form.")
5247 (home-page "https://common-lisp.net/project/metabang-bind/")
5248 ;; MIT License
5249 (license license:expat))))
5250
5251 (define-public cl-metabang-bind
5252 (sbcl-package->cl-source-package sbcl-metabang-bind))
5253
5254 (define-public ecl-metabang-bind
5255 (sbcl-package->ecl-package sbcl-metabang-bind))
5256
5257 (define-public sbcl-fare-utils
5258 (let ((commit "66e9c6f1499140bc00ccc22febf2aa528cbb5724")
5259 (revision "1"))
5260 (package
5261 (name "sbcl-fare-utils")
5262 (version (git-version "1.0.0.5" revision commit))
5263 (source
5264 (origin
5265 (method git-fetch)
5266 (uri
5267 (git-reference
5268 (url
5269 "https://gitlab.common-lisp.net/frideau/fare-utils.git")
5270 (commit commit)))
5271 (file-name (git-file-name name version))
5272 (sha256
5273 (base32
5274 "01wsr1aap3jdzhn4hrqjbhsjx6qci9dbd3gh4gayv1p49rbg8aqr"))))
5275 (build-system asdf-build-system/sbcl)
5276 (arguments
5277 `(#:test-asd-file "test/fare-utils-test.asd"))
5278 (native-inputs
5279 `(("sbcl-hu.dwim.stefil" ,sbcl-hu.dwim.stefil)))
5280 (synopsis "Collection of utilities and data structures")
5281 (description
5282 "fare-utils is a small collection of utilities. It contains a lot of
5283 basic everyday functions and macros.")
5284 (home-page "https://gitlab.common-lisp.net/frideau/fare-utils")
5285 ;; MIT License
5286 (license license:expat))))
5287
5288 (define-public cl-fare-utils
5289 (sbcl-package->cl-source-package sbcl-fare-utils))
5290
5291 (define-public ecl-fare-utils
5292 (sbcl-package->ecl-package sbcl-fare-utils))
5293
5294 (define-public sbcl-trivial-utf-8
5295 (let ((commit "4d427cfbb1c452436a0efb71c3205c9da67f718f")
5296 (revision "1"))
5297 (package
5298 (name "sbcl-trivial-utf-8")
5299 (version (git-version "0.0.0" revision commit))
5300 (source
5301 (origin
5302 (method git-fetch)
5303 (uri
5304 (git-reference
5305 (url (string-append "https://gitlab.common-lisp.net/"
5306 "trivial-utf-8/trivial-utf-8.git"))
5307 (commit commit)))
5308 (file-name (git-file-name name version))
5309 (sha256
5310 (base32
5311 "1jz27gz8gvqdmvp3k9bxschs6d5b3qgk94qp2bj6nv1d0jc3m1l1"))))
5312 (arguments
5313 ;; Guix incorrectly assumes the "8" is part of the version
5314 ;; number and lobs it off.
5315 `(#:asd-file "trivial-utf-8.asd"
5316 #:asd-system-name "trivial-utf-8"))
5317 (build-system asdf-build-system/sbcl)
5318 (synopsis "UTF-8 input/output library")
5319 (description
5320 "The Babel library solves a similar problem while understanding more
5321 encodings. Trivial UTF-8 was written before Babel existed, but for new
5322 projects you might be better off going with Babel. The one plus that Trivial
5323 UTF-8 has is that it doesn't depend on any other libraries.")
5324 (home-page "https://common-lisp.net/project/trivial-utf-8/")
5325 (license license:bsd-3))))
5326
5327 (define-public cl-trivial-utf-8
5328 (sbcl-package->cl-source-package sbcl-trivial-utf-8))
5329
5330 (define-public ecl-trivial-utf-8
5331 (sbcl-package->ecl-package sbcl-trivial-utf-8))
5332
5333 (define-public sbcl-idna
5334 (package
5335 (name "sbcl-idna")
5336 (build-system asdf-build-system/sbcl)
5337 (version "0.2.2")
5338 (home-page "https://github.com/antifuchs/idna")
5339 (source
5340 (origin
5341 (method git-fetch)
5342 (uri (git-reference
5343 (url home-page)
5344 (commit version)))
5345 (file-name (git-file-name name version))
5346 (sha256
5347 (base32
5348 "00nbr3mffxhlq14gg9d16pa6691s4qh35inyw76v906s77khm5a2"))))
5349 (inputs
5350 `(("split-sequence" ,sbcl-split-sequence)))
5351 (synopsis "IDNA string encoding and decoding routines for Common Lisp")
5352 (description "This Common Lisp library provides string encoding and
5353 decoding routines for IDNA, the International Domain Names in Applications.")
5354 (license license:expat)))
5355
5356 (define-public cl-idna
5357 (sbcl-package->cl-source-package sbcl-idna))
5358
5359 (define-public ecl-idna
5360 (sbcl-package->ecl-package sbcl-idna))
5361
5362 (define-public sbcl-swap-bytes
5363 (package
5364 (name "sbcl-swap-bytes")
5365 (build-system asdf-build-system/sbcl)
5366 (version "1.2")
5367 (home-page "https://github.com/sionescu/swap-bytes")
5368 (source
5369 (origin
5370 (method git-fetch)
5371 (uri (git-reference
5372 (url home-page)
5373 (commit (string-append "v" version))))
5374 (file-name (git-file-name name version))
5375 (sha256
5376 (base32
5377 "1hw1v1lw26rifyznpnj1csphha9jgzwpiic16ni3pvs6hcsni9rz"))))
5378 (inputs
5379 `(("trivial-features" ,sbcl-trivial-features)))
5380 (native-inputs
5381 `(("fiveam" ,sbcl-fiveam)))
5382 (synopsis "Efficient endianness conversion for Common Lisp")
5383 (description "This Common Lisp library provides optimized byte-swapping
5384 primitives. The library can change endianness of unsigned integers of length
5385 1/2/4/8. Very useful in implementing various network protocols and file
5386 formats.")
5387 (license license:expat)))
5388
5389 (define-public cl-swap-bytes
5390 (sbcl-package->cl-source-package sbcl-swap-bytes))
5391
5392 (define-public ecl-swap-bytes
5393 (sbcl-package->ecl-package sbcl-swap-bytes))
5394
5395 (define-public sbcl-iolib.asdf
5396 ;; Latest release is from June 2017.
5397 (let ((commit "7f5ea3a8457a29d224b24653c2b3657fb1898021")
5398 (revision "2"))
5399 (package
5400 (name "sbcl-iolib.asdf")
5401 (build-system asdf-build-system/sbcl)
5402 (version (git-version "0.8.3" revision commit))
5403 (home-page "https://github.com/sionescu/iolib")
5404 (source
5405 (origin
5406 (method git-fetch)
5407 (uri (git-reference
5408 (url home-page)
5409 (commit commit)))
5410 (file-name (git-file-name name version))
5411 (sha256
5412 (base32
5413 "1bg5w7lm61hqk4b0svmri8a590q36z76jfa0sdgzb39r98c04w12"))))
5414 (inputs
5415 `(("alexandria" ,sbcl-alexandria)))
5416 (arguments
5417 '(#:asd-file "iolib.asdf.asd"))
5418 (synopsis "ASDF component classes for IOLib, a Common Lisp I/O library")
5419 (description "IOlib is to be a better and more modern I/O library than
5420 the standard Common Lisp library. It contains a socket library, a DNS
5421 resolver, an I/O multiplexer(which supports @code{select(2)}, @code{epoll(4)}
5422 and @code{kqueue(2)}), a pathname library and file-system utilities.")
5423 (license license:expat))))
5424
5425 (define-public sbcl-iolib.conf
5426 (package
5427 (inherit sbcl-iolib.asdf)
5428 (name "sbcl-iolib.conf")
5429 (inputs
5430 `(("iolib.asdf" ,sbcl-iolib.asdf)))
5431 (arguments
5432 '(#:asd-file "iolib.conf.asd"))
5433 (synopsis "Compile-time configuration for IOLib, a Common Lisp I/O library")))
5434
5435 (define-public sbcl-iolib.common-lisp
5436 (package
5437 (inherit sbcl-iolib.asdf)
5438 (name "sbcl-iolib.common-lisp")
5439 (inputs
5440 `(("iolib.asdf" ,sbcl-iolib.asdf)
5441 ("iolib.conf" ,sbcl-iolib.conf)))
5442 (arguments
5443 '(#:asd-file "iolib.common-lisp.asd"))
5444 (synopsis "Slightly modified Common Lisp for IOLib, a Common Lisp I/O library")))
5445
5446 (define-public sbcl-iolib.base
5447 (package
5448 (inherit sbcl-iolib.asdf)
5449 (name "sbcl-iolib.base")
5450 (inputs
5451 `(("iolib.asdf" ,sbcl-iolib.asdf)
5452 ("iolib.conf" ,sbcl-iolib.conf)
5453 ("iolib.common-lisp" ,sbcl-iolib.common-lisp)
5454 ("split-sequence" ,sbcl-split-sequence)))
5455 (arguments
5456 '(#:asd-file "iolib.base.asd"))
5457 (synopsis "Base package for IOLib, a Common Lisp I/O library")))
5458
5459 (define-public sbcl-iolib.grovel
5460 (package
5461 (inherit sbcl-iolib.asdf)
5462 (name "sbcl-iolib.grovel")
5463 (inputs
5464 `(("iolib.asdf" ,sbcl-iolib.asdf)
5465 ("iolib.conf" ,sbcl-iolib.conf)
5466 ("iolib.base", sbcl-iolib.base)
5467 ("cffi", sbcl-cffi)))
5468 (arguments
5469 '(#:asd-file "iolib.grovel.asd"
5470 #:phases
5471 (modify-phases %standard-phases
5472 (add-after 'install 'install-header
5473 (lambda* (#:key outputs #:allow-other-keys)
5474 ;; This header is required by sbcl-iolib.
5475 (install-file "src/grovel/grovel-common.h"
5476 (string-append (assoc-ref outputs "out")
5477 "/lib/sbcl"))
5478 #t)))))
5479 (synopsis "CFFI Groveller for IOLib, a Common Lisp I/O library")))
5480
5481 (define sbcl-iolib+syscalls
5482 (package
5483 (inherit sbcl-iolib.asdf)
5484 (name "sbcl-iolib+syscalls")
5485 (inputs
5486 `(("iolib.asdf" ,sbcl-iolib.asdf)
5487 ("iolib.conf" ,sbcl-iolib.conf)
5488 ("cffi-grovel" ,sbcl-cffi-grovel)
5489 ("iolib.base" ,sbcl-iolib.base)
5490 ("bordeaux-threads" ,sbcl-bordeaux-threads)
5491 ("idna" ,sbcl-idna)
5492 ("swap-bytes" ,sbcl-swap-bytes)
5493 ("libfixposix" ,libfixposix)
5494 ("cffi" ,sbcl-cffi)))
5495 (native-inputs
5496 `(("fiveam" ,sbcl-fiveam)))
5497 (arguments
5498 '(#:asd-file "iolib.asd"
5499 #:asd-system-name "iolib/syscalls"
5500 #:phases
5501 (modify-phases %standard-phases
5502 (add-after 'unpack 'fix-paths
5503 (lambda* (#:key inputs #:allow-other-keys)
5504 (substitute* "src/syscalls/ffi-functions-unix.lisp"
5505 (("\\(:default \"libfixposix\"\\)")
5506 (string-append
5507 "(:default \""
5508 (assoc-ref inputs "libfixposix") "/lib/libfixposix\")")))
5509 ;; Socket tests need Internet access, disable them.
5510 (substitute* "iolib.asd"
5511 (("\\(:file \"sockets\" :depends-on \\(\"pkgdcl\" \"defsuites\"\\)\\)")
5512 "")))))))
5513 (synopsis "Common Lisp I/O library")))
5514
5515 (define sbcl-iolib+multiplex
5516 (package
5517 (inherit sbcl-iolib+syscalls)
5518 (name "sbcl-iolib+multiplex")
5519 (inputs
5520 `(("iolib+syscalls" ,sbcl-iolib+syscalls)
5521 ,@(package-inputs sbcl-iolib+syscalls)))
5522 (arguments
5523 (substitute-keyword-arguments (package-arguments sbcl-iolib+syscalls)
5524 ((#:asd-system-name _) "iolib/multiplex")))))
5525
5526 (define sbcl-iolib+streams
5527 (package
5528 (inherit sbcl-iolib+syscalls)
5529 (name "sbcl-iolib+streams")
5530 (inputs
5531 `(("iolib+multiplex" ,sbcl-iolib+multiplex)
5532 ,@(package-inputs sbcl-iolib+syscalls)))
5533 (arguments
5534 (substitute-keyword-arguments (package-arguments sbcl-iolib+syscalls)
5535 ((#:asd-system-name _) "iolib/streams")))))
5536
5537 (define sbcl-iolib+sockets
5538 (package
5539 (inherit sbcl-iolib+syscalls)
5540 (name "sbcl-iolib+sockets")
5541 (inputs
5542 `(("iolib+syscalls" ,sbcl-iolib+syscalls)
5543 ("iolib+streams" ,sbcl-iolib+streams)
5544 ,@(package-inputs sbcl-iolib+syscalls)))
5545 (arguments
5546 (substitute-keyword-arguments (package-arguments sbcl-iolib+syscalls)
5547 ((#:asd-system-name _) "iolib/sockets")))))
5548
5549 (define-public sbcl-iolib
5550 (package
5551 (inherit sbcl-iolib+syscalls)
5552 (name "sbcl-iolib")
5553 (inputs
5554 `(("iolib+multiplex" ,sbcl-iolib+multiplex)
5555 ("iolib+streams" ,sbcl-iolib+streams)
5556 ("iolib+sockets" ,sbcl-iolib+sockets)
5557 ,@(package-inputs sbcl-iolib+syscalls)))
5558 (arguments
5559 (substitute-keyword-arguments (package-arguments sbcl-iolib+syscalls)
5560 ((#:asd-system-name _) "iolib")))))
5561
5562 (define-public cl-iolib
5563 (sbcl-package->cl-source-package sbcl-iolib))
5564
5565 (define-public sbcl-ieee-floats
5566 (let ((commit "566b51a005e81ff618554b9b2f0b795d3b29398d")
5567 (revision "1"))
5568 (package
5569 (name "sbcl-ieee-floats")
5570 (build-system asdf-build-system/sbcl)
5571 (version (git-version "20170924" revision commit))
5572 (home-page "https://github.com/marijnh/ieee-floats/")
5573 (source
5574 (origin
5575 (method git-fetch)
5576 (uri (git-reference
5577 (url home-page)
5578 (commit commit)))
5579 (file-name (git-file-name name version))
5580 (sha256
5581 (base32
5582 "1xyj49j9x3lc84cv3dhbf9ja34ywjk1c46dklx425fxw9mkwm83m"))))
5583 (native-inputs
5584 `(("fiveam" ,sbcl-fiveam)))
5585 (synopsis "IEEE 754 binary representation for floats in Common Lisp")
5586 (description "This is a Common Lisp library that converts
5587 floating point values to IEEE 754 binary representation.")
5588 (license license:bsd-3))))
5589
5590 (define-public cl-ieee-floats
5591 (sbcl-package->cl-source-package sbcl-ieee-floats))
5592
5593 (define sbcl-closure-common
5594 (let ((commit "e3c5f5f454b72b01b89115e581c3c52a7e201e5c")
5595 (revision "1"))
5596 (package
5597 (name "sbcl-closure-common")
5598 (build-system asdf-build-system/sbcl)
5599 (version (git-version "20101006" revision commit))
5600 (home-page "https://common-lisp.net/project/cxml/")
5601 (source
5602 (origin
5603 (method git-fetch)
5604 (uri (git-reference
5605 (url "https://github.com/sharplispers/closure-common")
5606 (commit commit)))
5607 (file-name (git-file-name name version))
5608 (sha256
5609 (base32
5610 "0k5r2qxn122pxi301ijir3nayi9sg4d7yiy276l36qmzwhp4mg5n"))))
5611 (inputs
5612 `(("trivial-gray-streams" ,sbcl-trivial-gray-streams)
5613 ("babel" ,sbcl-babel)))
5614 (synopsis "Support Common Lisp library for CXML")
5615 (description "Closure-common is an internal helper library. The name
5616 Closure is a reference to the web browser it was originally written for.")
5617 ;; TODO: License?
5618 (license #f))))
5619
5620 (define-public sbcl-cxml+xml
5621 (let ((commit "00b22bf4c4cf11c993d5866fae284f95ab18e6bf")
5622 (revision "1"))
5623 (package
5624 (name "sbcl-cxml+xml")
5625 (build-system asdf-build-system/sbcl)
5626 (version (git-version "0.0.0" revision commit))
5627 (home-page "https://common-lisp.net/project/cxml/")
5628 (source
5629 (origin
5630 (method git-fetch)
5631 (uri (git-reference
5632 (url "https://github.com/sharplispers/cxml")
5633 (commit commit)))
5634 (file-name (git-file-name name version))
5635 (sha256
5636 (base32
5637 "13kif7rf3gqdycsk9zq0d7y0g9y81krkl0z87k0p2fkbjfgrph37"))))
5638 (inputs
5639 `(("closure-common" ,sbcl-closure-common)
5640 ("puri" ,sbcl-puri)
5641 ("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
5642 (arguments
5643 `(#:asd-file "cxml.asd"
5644 #:asd-system-name "cxml/xml"))
5645 (synopsis "Common Lisp XML parser")
5646 (description "CXML implements a namespace-aware, validating XML 1.0
5647 parser as well as the DOM Level 2 Core interfaces. Two parser interfaces are
5648 offered, one SAX-like, the other similar to StAX.")
5649 (license license:llgpl))))
5650
5651 (define sbcl-cxml+dom
5652 (package
5653 (inherit sbcl-cxml+xml)
5654 (name "sbcl-cxml+dom")
5655 (inputs
5656 `(("closure-common" ,sbcl-closure-common)
5657 ("puri" ,sbcl-puri)
5658 ("cxml+xml" ,sbcl-cxml+xml)))
5659 (arguments
5660 `(#:asd-file "cxml.asd"
5661 #:asd-system-name "cxml/dom"))))
5662
5663 (define sbcl-cxml+klacks
5664 (package
5665 (inherit sbcl-cxml+xml)
5666 (name "sbcl-cxml+klacks")
5667 (inputs
5668 `(("closure-common" ,sbcl-closure-common)
5669 ("puri" ,sbcl-puri)
5670 ("cxml+xml" ,sbcl-cxml+xml)))
5671 (arguments
5672 `(#:asd-file "cxml.asd"
5673 #:asd-system-name "cxml/klacks"))))
5674
5675 (define sbcl-cxml+test
5676 (package
5677 (inherit sbcl-cxml+xml)
5678 (name "sbcl-cxml+test")
5679 (inputs
5680 `(("closure-common" ,sbcl-closure-common)
5681 ("puri" ,sbcl-puri)
5682 ("cxml+xml" ,sbcl-cxml+xml)))
5683 (arguments
5684 `(#:asd-file "cxml.asd"
5685 #:asd-system-name "cxml/test"))))
5686
5687 (define-public sbcl-cxml
5688 (package
5689 (inherit sbcl-cxml+xml)
5690 (name "sbcl-cxml")
5691 (inputs
5692 `(("closure-common" ,sbcl-closure-common)
5693 ("puri" ,sbcl-puri)
5694 ("trivial-gray-streams" ,sbcl-trivial-gray-streams)
5695 ("cxml+dom" ,sbcl-cxml+dom)
5696 ("cxml+klacks" ,sbcl-cxml+klacks)
5697 ("cxml+test" ,sbcl-cxml+test)))
5698 (arguments
5699 `(#:asd-file "cxml.asd"
5700 #:asd-system-name "cxml"
5701 #:phases
5702 (modify-phases %standard-phases
5703 (add-after 'build 'install-dtd
5704 (lambda* (#:key outputs #:allow-other-keys)
5705 (install-file "catalog.dtd"
5706 (string-append
5707 (assoc-ref outputs "out")
5708 "/lib/" (%lisp-type)))))
5709 (add-after 'create-asd 'remove-component
5710 ;; XXX: The original .asd has no components, but our build system
5711 ;; creates an entry nonetheless. We need to remove it for the
5712 ;; generated .asd to load properly. See trivia.trivial for a
5713 ;; similar problem.
5714 (lambda* (#:key outputs #:allow-other-keys)
5715 (let* ((out (assoc-ref outputs "out"))
5716 (asd (string-append out "/lib/sbcl/cxml.asd")))
5717 (substitute* asd
5718 ((" :components
5719 ")
5720 ""))
5721 (substitute* asd
5722 ((" *\\(\\(:compiled-file \"cxml--system\"\\)\\)")
5723 ""))))))))))
5724
5725 (define-public cl-cxml
5726 (sbcl-package->cl-source-package sbcl-cxml))
5727
5728 (define-public sbcl-cl-reexport
5729 (let ((commit "312f3661bbe187b5f28536cd7ec2956e91366c3b")
5730 (revision "1"))
5731 (package
5732 (name "sbcl-cl-reexport")
5733 (build-system asdf-build-system/sbcl)
5734 (version (git-version "0.1" revision commit))
5735 (home-page "https://github.com/takagi/cl-reexport")
5736 (source
5737 (origin
5738 (method git-fetch)
5739 (uri (git-reference
5740 (url home-page)
5741 (commit commit)))
5742 (file-name (git-file-name name version))
5743 (sha256
5744 (base32
5745 "1cwpn1m3wrl0fl9plznn7p464db646gnfc8zkyk97dyxski2aq0x"))))
5746 (inputs
5747 `(("alexandria" ,sbcl-alexandria)))
5748 (arguments
5749 ;; TODO: Tests fail because cl-test-more is missing, but I can't find it online.
5750 `(#:tests? #f))
5751 (synopsis "HTTP cookie manager for Common Lisp")
5752 (description "cl-cookie is a Common Lisp library featuring parsing of
5753 cookie headers, cookie creation, cookie jar creation and more.")
5754 (license license:llgpl))))
5755
5756 (define-public cl-reexport
5757 (sbcl-package->cl-source-package sbcl-cl-reexport))
5758
5759 (define-public sbcl-cl-cookie
5760 (let ((commit "cea55aed8b9ad25fafd13defbcb9fe8f41b29546")
5761 (revision "1"))
5762 (package
5763 (name "sbcl-cl-cookie")
5764 (build-system asdf-build-system/sbcl)
5765 (version (git-version "0.9.10" revision commit))
5766 (home-page "https://github.com/fukamachi/cl-cookie")
5767 (source
5768 (origin
5769 (method git-fetch)
5770 (uri (git-reference
5771 (url home-page)
5772 (commit commit)))
5773 (file-name (git-file-name name version))
5774 (sha256
5775 (base32
5776 "090g7z75h98zvc1ldx0vh4jn4086dhjm2w30jcwkq553qmyxwl8h"))))
5777 (inputs
5778 `(("proc-parse" ,sbcl-proc-parse)
5779 ("alexandria" ,sbcl-alexandria)
5780 ("quri" ,sbcl-quri)
5781 ("cl-ppcre" ,sbcl-cl-ppcre)
5782 ("local-time" ,sbcl-local-time)))
5783 (native-inputs
5784 `(("prove-asdf" ,sbcl-prove-asdf)
5785 ("prove" ,sbcl-prove)))
5786 (arguments
5787 ;; TODO: Tests fail because cl-cookie depends on cl-cookie-test.
5788 `(#:tests? #f))
5789 (synopsis "HTTP cookie manager for Common Lisp")
5790 (description "cl-cookie is a Common Lisp library featuring parsing of
5791 cookie headers, cookie creation, cookie jar creation and more.")
5792 (license license:bsd-2))))
5793
5794 (define-public cl-cookie
5795 (sbcl-package->cl-source-package sbcl-cl-cookie))
5796
5797 (define-public sbcl-dexador
5798 (let ((commit "953090f04c4d1a9ee6632b90133cdc297b68badc")
5799 (revision "1"))
5800 (package
5801 (name "sbcl-dexador")
5802 (build-system asdf-build-system/sbcl)
5803 (version "0.9.14" )
5804 (home-page "https://github.com/fukamachi/dexador")
5805 (source
5806 (origin
5807 (method git-fetch)
5808 (uri (git-reference
5809 (url home-page)
5810 (commit commit)))
5811 (file-name (git-file-name name version))
5812 (sha256
5813 (base32
5814 "0w18fz3301rpmwc3kwb810czcd24mbf7r1z8vdyc0v5crjfpw3mn"))))
5815 (inputs
5816 `(("trivial-gray-streams" ,sbcl-trivial-gray-streams)
5817 ("babel" ,sbcl-babel)
5818 ("usocket" ,sbcl-usocket)
5819 ("fast-http" ,sbcl-fast-http)
5820 ("quri" ,sbcl-quri)
5821 ("fast-io" ,sbcl-fast-io)
5822 ("chunga" ,sbcl-chunga)
5823 ("cl-ppcre" ,sbcl-cl-ppcre)
5824 ("cl-cookie" ,sbcl-cl-cookie)
5825 ("trivial-mimes" ,sbcl-trivial-mimes)
5826 ("chipz" ,sbcl-chipz)
5827 ("cl-base64" ,sbcl-cl-base64)
5828 ("cl-reexport" ,sbcl-cl-reexport)
5829 ("cl+ssl" ,sbcl-cl+ssl)
5830 ("bordeaux-threads" ,sbcl-bordeaux-threads)
5831 ("alexandria" ,sbcl-alexandria)))
5832 (native-inputs
5833 `(("prove" ,sbcl-prove)
5834 ("prove-asdf" ,sbcl-prove-asdf)
5835 ("lack-request" ,sbcl-lack-request)
5836 ("clack" ,sbcl-clack)
5837 ("babel" ,sbcl-babel)
5838 ("alexandria" ,sbcl-alexandria)
5839 ("cl-ppcre" ,sbcl-cl-ppcre)
5840 ("local-time" ,sbcl-local-time)
5841 ("trivial-features" ,sbcl-trivial-features)))
5842 (arguments
5843 ;; TODO: Circular dependency: tests depend on clack-test which depends on dexador.
5844 `(#:tests? #f
5845 #:phases
5846 (modify-phases %standard-phases
5847 (add-after 'unpack 'fix-permissions
5848 (lambda _ (make-file-writable "t/data/test.gz") #t)))))
5849 (synopsis "Yet another HTTP client for Common Lisp")
5850 (description "Dexador is yet another HTTP client for Common Lisp with
5851 neat APIs and connection-pooling. It is meant to supersede Drakma.")
5852 (license license:expat))))
5853
5854 (define-public cl-dexador
5855 (package
5856 (inherit (sbcl-package->cl-source-package sbcl-dexador))
5857 (arguments
5858 `(#:phases
5859 ;; asdf-build-system/source has its own phases and does not inherit
5860 ;; from asdf-build-system/sbcl phases.
5861 (modify-phases %standard-phases/source
5862 (add-after 'unpack 'fix-permissions
5863 (lambda _ (make-file-writable "t/data/test.gz") #t)))))))
5864
5865 (define-public ecl-dexador
5866 (sbcl-package->ecl-package sbcl-dexador))
5867
5868 (define-public sbcl-lisp-namespace
5869 (let ((commit "28107cafe34e4c1c67490fde60c7f92dc610b2e0")
5870 (revision "1"))
5871 (package
5872 (name "sbcl-lisp-namespace")
5873 (build-system asdf-build-system/sbcl)
5874 (version (git-version "0.1" revision commit))
5875 (home-page "https://github.com/guicho271828/lisp-namespace")
5876 (source
5877 (origin
5878 (method git-fetch)
5879 (uri (git-reference
5880 (url home-page)
5881 (commit commit)))
5882 (file-name (git-file-name name version))
5883 (sha256
5884 (base32
5885 "1jw2wykp06z2afb9nm1lgfzll5cjlj36pnknjx614057zkkxq4iy"))))
5886 (inputs
5887 `(("alexandria" ,sbcl-alexandria)))
5888 (native-inputs
5889 `(("fiveam" ,sbcl-fiveam)))
5890 (arguments
5891 `(#:test-asd-file "lisp-namespace.test.asd"
5892 ;; XXX: Component LISP-NAMESPACE-ASD::LISP-NAMESPACE.TEST not found
5893 #:tests? #f))
5894 (synopsis "LISP-N, or extensible namespaces in Common Lisp")
5895 (description "Common Lisp already has major 2 namespaces, function
5896 namespace and value namespace (or variable namespace), but there are actually
5897 more — e.g., class namespace.
5898 This library offers macros to deal with symbols from any namespace.")
5899 (license license:llgpl))))
5900
5901 (define-public cl-lisp-namespace
5902 (sbcl-package->cl-source-package sbcl-lisp-namespace))
5903
5904 (define-public sbcl-trivial-cltl2
5905 (let ((commit "8eec8407df833e8f27df8a388bc10913f16d9e83")
5906 (revision "1"))
5907 (package
5908 (name "sbcl-trivial-cltl2")
5909 (build-system asdf-build-system/sbcl)
5910 (version (git-version "0.1.1" revision commit))
5911 (home-page "https://github.com/Zulu-Inuoe/trivial-cltl2")
5912 (source
5913 (origin
5914 (method git-fetch)
5915 (uri (git-reference
5916 (url home-page)
5917 (commit commit)))
5918 (file-name (git-file-name name version))
5919 (sha256
5920 (base32
5921 "1dyyxz17vqv8hlfwq287gl8xxbvcnq798ajb7p5jdjz91wqf4bgk"))))
5922 (synopsis "Simple CLtL2 compatibility layer for Common Lisp")
5923 (description "This library is a portable compatibility layer around
5924 \"Common Lisp the Language, 2nd
5925 Edition\" (@url{https://www.cs.cmu.edu/Groups/AI/html/cltl/clm/node102.html})
5926 and it exports symbols from implementation-specific packages.")
5927 (license license:llgpl))))
5928
5929 (define-public cl-trivial-cltl2
5930 (sbcl-package->cl-source-package sbcl-trivial-cltl2))
5931
5932 (define-public sbcl-introspect-environment
5933 (let ((commit "fff42f8f8fd0d99db5ad6c5812e53de7d660020b")
5934 (revision "1"))
5935 (package
5936 (name "sbcl-introspect-environment")
5937 (build-system asdf-build-system/sbcl)
5938 (version (git-version "0.1" revision commit))
5939 (home-page "https://github.com/Bike/introspect-environment")
5940 (source
5941 (origin
5942 (method git-fetch)
5943 (uri (git-reference
5944 (url home-page)
5945 (commit commit)))
5946 (file-name (git-file-name name version))
5947 (sha256
5948 (base32
5949 "1i305n0wfmpac63ni4i3vixnnkl8daw5ncxy0k3dv92krgx6qzhp"))))
5950 (native-inputs
5951 `(("fiveam" ,sbcl-fiveam)))
5952 (synopsis "Common Lisp environment introspection portability layer")
5953 (description "This library is a small interface to portable but
5954 nonstandard introspection of Common Lisp environments. It is intended to
5955 allow a bit more compile-time introspection of environments in Common Lisp.
5956
5957 Quite a bit of information is available at the time a macro or compiler-macro
5958 runs; inlining info, type declarations, that sort of thing. This information
5959 is all standard - any Common Lisp program can @code{(declare (integer x))} and
5960 such.
5961
5962 This info ought to be accessible through the standard @code{&environment}
5963 parameters, but it is not. Several implementations keep the information for
5964 their own purposes but do not make it available to user programs, because
5965 there is no standard mechanism to do so.
5966
5967 This library uses implementation-specific hooks to make information available
5968 to users. This is currently supported on SBCL, CCL, and CMUCL. Other
5969 implementations have implementations of the functions that do as much as they
5970 can and/or provide reasonable defaults.")
5971 (license license:wtfpl2))))
5972
5973 (define-public cl-introspect-environment
5974 (sbcl-package->cl-source-package sbcl-introspect-environment))
5975
5976 (define-public sbcl-type-i
5977 (let ((commit "dea233f45f94064105ec09f0767de338f67dcbe2")
5978 (revision "1"))
5979 (package
5980 (name "sbcl-type-i")
5981 (build-system asdf-build-system/sbcl)
5982 (version (git-version "0.1" revision commit))
5983 (home-page "https://github.com/guicho271828/type-i")
5984 (source
5985 (origin
5986 (method git-fetch)
5987 (uri (git-reference
5988 (url home-page)
5989 (commit commit)))
5990 (file-name (git-file-name name version))
5991 (sha256
5992 (base32
5993 "039g5pbrhh65s0bhr9314gmd2nwc2y5lp2377c5qrc2lxky89qs3"))))
5994 (inputs
5995 `(("alexandria" ,sbcl-alexandria)
5996 ("introspect-environment" ,sbcl-introspect-environment)
5997 ("trivia.trivial" ,sbcl-trivia.trivial)))
5998 (native-inputs
5999 `(("fiveam" ,sbcl-fiveam)))
6000 (arguments
6001 `(#:test-asd-file "type-i.test.asd"))
6002 (synopsis "Type inference utility on unary predicates for Common Lisp")
6003 (description "This library tries to provide a way to detect what kind of
6004 type the given predicate is trying to check. This is different from inferring
6005 the return type of a function.")
6006 (license license:llgpl))))
6007
6008 (define-public cl-type-i
6009 (sbcl-package->cl-source-package sbcl-type-i))
6010
6011 (define-public sbcl-optima
6012 (let ((commit "373b245b928c1a5cce91a6cb5bfe5dd77eb36195")
6013 (revision "1"))
6014 (package
6015 (name "sbcl-optima")
6016 (build-system asdf-build-system/sbcl)
6017 (version (git-version "1.0" revision commit))
6018 (home-page "https://github.com/m2ym/optima")
6019 (source
6020 (origin
6021 (method git-fetch)
6022 (uri (git-reference
6023 (url home-page)
6024 (commit commit)))
6025 (file-name (git-file-name name version))
6026 (sha256
6027 (base32
6028 "1yw4ymq7ms89342kkvb3aqxgv0w38m9kd8ikdqxxzyybnkjhndal"))))
6029 (inputs
6030 `(("alexandria" ,sbcl-alexandria)
6031 ("closer-mop" ,sbcl-closer-mop)))
6032 (native-inputs
6033 `(("eos" ,sbcl-eos)))
6034 (arguments
6035 ;; XXX: Circular dependencies: tests depend on optima.ppcre which depends on optima.
6036 `(#:tests? #f
6037 #:test-asd-file "optima.test.asd"))
6038 (synopsis "Optimized pattern matching library for Common Lisp")
6039 (description "Optima is a fast pattern matching library which uses
6040 optimizing techniques widely used in the functional programming world.")
6041 (license license:expat))))
6042
6043 (define-public cl-optima
6044 (sbcl-package->cl-source-package sbcl-optima))
6045
6046 (define-public sbcl-fare-quasiquote
6047 (let ((commit "640d39a0451094071b3e093c97667b3947f43639")
6048 (revision "1"))
6049 (package
6050 (name "sbcl-fare-quasiquote")
6051 (build-system asdf-build-system/sbcl)
6052 (version (git-version "1.0.1" revision commit))
6053 (home-page "https://gitlab.common-lisp.net/frideau/fare-quasiquote")
6054 (source
6055 (origin
6056 (method git-fetch)
6057 (uri (git-reference
6058 (url (string-append "https://gitlab.common-lisp.net/frideau/"
6059 "fare-quasiquote.git"))
6060 (commit commit)))
6061 (file-name (git-file-name name version))
6062 (sha256
6063 (base32 "1g6q11l50kgija9f55lzqpcwvaq0ljiw8v1j265hnyg6nahjwjvg"))))
6064 (inputs
6065 `(("fare-utils" ,sbcl-fare-utils)))
6066 (arguments
6067 ;; XXX: Circular dependencies: Tests depend on subsystems,
6068 ;; which depend on the main systems.
6069 `(#:tests? #f
6070 #:phases
6071 (modify-phases %standard-phases
6072 ;; XXX: Require 1.0.0 version of fare-utils, and we package some
6073 ;; commits after 1.0.0.5, but ASDF fails to read the
6074 ;; "-REVISION-COMMIT" part generated by Guix.
6075 (add-after 'unpack 'patch-requirement
6076 (lambda _
6077 (substitute* "fare-quasiquote.asd"
6078 (("\\(:version \"fare-utils\" \"1.0.0\"\\)")
6079 "\"fare-utils\"")))))))
6080 (synopsis "Pattern-matching friendly implementation of quasiquote")
6081 (description "The main purpose of this n+2nd reimplementation of
6082 quasiquote is enable matching of quasiquoted patterns, using Optima or
6083 Trivia.")
6084 (license license:expat))))
6085
6086 (define-public cl-fare-quasiquote
6087 (sbcl-package->cl-source-package sbcl-fare-quasiquote))
6088
6089 (define-public sbcl-fare-quasiquote-optima
6090 (package
6091 (inherit sbcl-fare-quasiquote)
6092 (name "sbcl-fare-quasiquote-optima")
6093 (inputs
6094 `(("optima" ,sbcl-optima)
6095 ("fare-quasiquote" ,sbcl-fare-quasiquote)))
6096 (arguments
6097 '(#:phases
6098 (modify-phases %standard-phases
6099 (add-after 'unpack 'patch-requirement
6100 (lambda _
6101 (substitute* "fare-quasiquote-optima.asd"
6102 (("\\(:version \"optima\" \"1\\.0\"\\)")
6103 "\"optima\""))
6104 #t)))))))
6105
6106 (define-public cl-fare-quasiquote-optima
6107 (sbcl-package->cl-source-package sbcl-fare-quasiquote-optima))
6108
6109 (define-public sbcl-fare-quasiquote-readtable
6110 (package
6111 (inherit sbcl-fare-quasiquote)
6112 (name "sbcl-fare-quasiquote-readtable")
6113 (inputs
6114 `(("fare-quasiquote" ,sbcl-fare-quasiquote)
6115 ("named-readtables" ,sbcl-named-readtables)))
6116 (description "The main purpose of this n+2nd reimplementation of
6117 quasiquote is enable matching of quasiquoted patterns, using Optima or
6118 Trivia.
6119
6120 This package uses fare-quasiquote with named-readtable.")))
6121
6122 (define-public cl-fare-quasiquote-readtable
6123 (sbcl-package->cl-source-package sbcl-fare-quasiquote-readtable))
6124
6125 ;; TODO: Add support for component-less system in asdf-build-system/sbcl.
6126 (define-public sbcl-fare-quasiquote-extras
6127 (package
6128 (inherit sbcl-fare-quasiquote)
6129 (name "sbcl-fare-quasiquote-extras")
6130 (build-system asdf-build-system/sbcl)
6131 (inputs
6132 `(("fare-quasiquote-optima" ,sbcl-fare-quasiquote-optima)
6133 ("fare-quasiquote-readtable" ,sbcl-fare-quasiquote-readtable)))
6134 (arguments
6135 `(#:phases
6136 (modify-phases %standard-phases
6137 (replace 'build
6138 (lambda* (#:key outputs #:allow-other-keys)
6139 (let* ((out (assoc-ref outputs "out"))
6140 (lib (string-append out "/lib/" (%lisp-type))))
6141 (mkdir-p lib)
6142 (install-file "fare-quasiquote-extras.asd" lib)
6143 (make-file-writable
6144 (string-append lib "/fare-quasiquote-extras.asd"))
6145 #t)))
6146 (add-after 'create-asd-file 'fix-asd-file
6147 (lambda* (#:key outputs #:allow-other-keys)
6148 (let* ((out (assoc-ref outputs "out"))
6149 (lib (string-append out "/lib/" (%lisp-type)))
6150 (asd (string-append lib "/fare-quasiquote-extras.asd")))
6151 (substitute* asd
6152 ((":class")
6153 "")
6154 (("asdf/bundle:prebuilt-system")
6155 "")
6156 ((":components")
6157 "")
6158 (("\\(\\(:compiled-file \"fare-quasiquote-extras--system\"\\)\\)")
6159 "")))
6160 #t)))))
6161 (description "This library combines @code{fare-quasiquote-readtable} and
6162 @code{fare-quasiquote-optima}.")))
6163
6164 (define-public cl-fare-quasiquote-extras
6165 (package
6166 (inherit cl-fare-quasiquote)
6167 (name "cl-fare-quasiquote-extras")
6168 (build-system asdf-build-system/source)
6169 (propagated-inputs
6170 `(("fare-quasiquote" ,cl-fare-quasiquote)
6171 ("fare-quasiquote-optima" ,cl-fare-quasiquote-optima)
6172 ("fare-quasiquote-readtable" ,cl-fare-quasiquote-readtable)))
6173 (description "This library combines @code{fare-quasiquote-readtable} and
6174 @code{fare-quasiquote-optima}.")))
6175
6176 (define-public sbcl-trivia.level0
6177 (let ((commit "574901ac376ae54c9d37169fd5efab9b3b8fcc63")
6178 (revision "1"))
6179 (package
6180 (name "sbcl-trivia.level0")
6181 (build-system asdf-build-system/sbcl)
6182 (version (git-version "0.0.0" revision commit))
6183 (home-page "https://github.com/guicho271828/trivia")
6184 (source
6185 (origin
6186 (method git-fetch)
6187 (uri (git-reference
6188 (url home-page)
6189 (commit commit)))
6190 (file-name (git-file-name name version))
6191 (sha256
6192 (base32
6193 "0hf53n71xzr9sjwrxis5fivx3drclf4s39h5ck8vh21ndqj9zvdk"))))
6194 (inputs
6195 `(("alexandria" ,sbcl-alexandria)))
6196 (synopsis "Pattern matching in Common Lisp")
6197 (description "Trivia is a pattern matching compiler that is compatible
6198 with Optima, another pattern matching library for Common Lisp. It is meant to
6199 be faster and more extensible than Optima.")
6200 (license license:llgpl))))
6201
6202 (define-public sbcl-trivia.level1
6203 (package
6204 (inherit sbcl-trivia.level0)
6205 (name "sbcl-trivia.level1")
6206 (inputs
6207 `(("trivia.level0" ,sbcl-trivia.level0)))
6208 (description "Trivia is a pattern matching compiler that is compatible
6209 with Optima, another pattern matching library for Common Lisp. It is meant to
6210 be faster and more extensible than Optima.
6211
6212 This system contains the core patterns of Trivia.")))
6213
6214 (define-public sbcl-trivia.level2
6215 (package
6216 (inherit sbcl-trivia.level0)
6217 (name "sbcl-trivia.level2")
6218 (inputs
6219 `(("trivia.level1" ,sbcl-trivia.level1)
6220 ("lisp-namespace" ,sbcl-lisp-namespace)
6221 ("trivial-cltl2" ,sbcl-trivial-cltl2)
6222 ("closer-mop" ,sbcl-closer-mop)))
6223 (description "Trivia is a pattern matching compiler that is compatible
6224 with Optima, another pattern matching library for Common Lisp. It is meant to
6225 be faster and more extensible than Optima.
6226
6227 This system contains a non-optimized pattern matcher compatible with Optima,
6228 with extensible optimizer interface.")))
6229
6230 (define-public sbcl-trivia.trivial
6231 (package
6232 (inherit sbcl-trivia.level0)
6233 (name "sbcl-trivia.trivial")
6234 (inputs
6235 `(("trivia.level2" ,sbcl-trivia.level2)))
6236 (arguments
6237 `(#:phases
6238 (modify-phases %standard-phases
6239 (replace 'create-asd-file
6240 (lambda* (#:key outputs inputs #:allow-other-keys)
6241 (let* ((out (assoc-ref outputs "out"))
6242 (lib (string-append out "/lib/" (%lisp-type)))
6243 (level2 (assoc-ref inputs "trivia.level2")))
6244 (mkdir-p lib)
6245 (install-file "trivia.trivial.asd" lib)
6246 ;; XXX: This .asd does not have any component and the build
6247 ;; system fails to work in this case. We should update the
6248 ;; build system to handle component-less .asd.
6249 ;; TODO: How do we append to file in Guile? It seems that
6250 ;; (open-file ... "a") gets a "Permission denied".
6251 (substitute* (string-append lib "/trivia.trivial.asd")
6252 (("\"\\)")
6253 (string-append "\")
6254
6255 (progn (asdf/source-registry:ensure-source-registry)
6256 (setf (gethash
6257 \"trivia.level2\"
6258 asdf/source-registry:*source-registry*)
6259 #p\""
6260 level2
6261 "/share/common-lisp/sbcl-bundle-systems/trivia.level2.asd\"))")))))))))
6262 (description "Trivia is a pattern matching compiler that is compatible
6263 with Optima, another pattern matching library for Common Lisp. It is meant to
6264 be faster and more extensible than Optima.
6265
6266 This system contains the base level system of Trivia with a trivial optimizer.")))
6267
6268 (define-public sbcl-trivia.balland2006
6269 (package
6270 (inherit sbcl-trivia.level0)
6271 (name "sbcl-trivia.balland2006")
6272 (inputs
6273 `(("trivia.trivial" ,sbcl-trivia.trivial)
6274 ("iterate" ,sbcl-iterate)
6275 ("type-i" ,sbcl-type-i)
6276 ("alexandria" ,sbcl-alexandria)))
6277 (arguments
6278 ;; Tests are done in trivia itself.
6279 `(#:tests? #f))
6280 (description "Trivia is a pattern matching compiler that is compatible
6281 with Optima, another pattern matching library for Common Lisp. It is meant to
6282 be faster and more extensible than Optima.
6283
6284 This system contains the base level system of Trivia with a trivial optimizer.")))
6285
6286 (define-public sbcl-trivia.ppcre
6287 (package
6288 (inherit sbcl-trivia.level0)
6289 (name "sbcl-trivia.ppcre")
6290 (inputs
6291 `(("trivia.trivial" ,sbcl-trivia.trivial)
6292 ("cl-ppcre" ,sbcl-cl-ppcre)))
6293 (description "Trivia is a pattern matching compiler that is compatible
6294 with Optima, another pattern matching library for Common Lisp. It is meant to
6295 be faster and more extensible than Optima.
6296
6297 This system contains the PPCRE extension.")))
6298
6299 (define-public sbcl-trivia.quasiquote
6300 (package
6301 (inherit sbcl-trivia.level0)
6302 (name "sbcl-trivia.quasiquote")
6303 (inputs
6304 `(("trivia.trivial" ,sbcl-trivia.trivial)
6305 ("fare-quasiquote" ,sbcl-fare-quasiquote)
6306 ("fare-quasiquote-readtable" ,sbcl-fare-quasiquote-readtable)))
6307 (description "Trivia is a pattern matching compiler that is compatible
6308 with Optima, another pattern matching library for Common Lisp. It is meant to
6309 be faster and more extensible than Optima.
6310
6311 This system contains the fare-quasiquote extension.")))
6312
6313 (define-public sbcl-trivia.cffi
6314 (package
6315 (inherit sbcl-trivia.level0)
6316 (name "sbcl-trivia.cffi")
6317 (inputs
6318 `(("cffi" ,sbcl-cffi)
6319 ("trivia.trivial" ,sbcl-trivia.trivial)))
6320 (description "Trivia is a pattern matching compiler that is compatible
6321 with Optima, another pattern matching library for Common Lisp. It is meant to
6322 be faster and more extensible than Optima.
6323
6324 This system contains the CFFI foreign slot access extension.")))
6325
6326 (define-public sbcl-trivia
6327 (package
6328 (inherit sbcl-trivia.level0)
6329 (name "sbcl-trivia")
6330 (inputs
6331 `(("trivia.balland2006" ,sbcl-trivia.balland2006)))
6332 (native-inputs
6333 `(("fiveam" ,sbcl-fiveam)
6334 ("trivia.ppcre" ,sbcl-trivia.ppcre)
6335 ("trivia.quasiquote" ,sbcl-trivia.quasiquote)
6336 ("trivia.cffi" ,sbcl-trivia.cffi)
6337 ("optima" ,sbcl-optima)))
6338 (arguments
6339 `(#:test-asd-file "trivia.test.asd"
6340 #:phases
6341 (modify-phases %standard-phases
6342 (add-after 'create-asd 'remove-component
6343 ;; XXX: The original .asd has no components, but our build system
6344 ;; creates an entry nonetheless. We need to remove it for the
6345 ;; generated .asd to load properly. See trivia.trivial for a
6346 ;; similar problem.
6347 (lambda* (#:key outputs #:allow-other-keys)
6348 (let* ((out (assoc-ref outputs "out"))
6349 (asd (string-append out "/lib/" (%lisp-type) "/trivia.asd")))
6350 (substitute* asd
6351 ((" :components
6352 ")
6353 ""))
6354 (substitute* asd
6355 ((" *\\(\\(:compiled-file \"trivia--system\"\\)\\)")
6356 ""))))))))
6357 (description "Trivia is a pattern matching compiler that is compatible
6358 with Optima, another pattern matching library for Common Lisp. It is meant to
6359 be faster and more extensible than Optima.")))
6360
6361 (define-public cl-trivia
6362 (sbcl-package->cl-source-package sbcl-trivia))
6363
6364 (define-public sbcl-mk-string-metrics
6365 (package
6366 (name "sbcl-mk-string-metrics")
6367 (version "0.1.2")
6368 (home-page "https://github.com/cbaggers/mk-string-metrics/")
6369 (source (origin
6370 (method git-fetch)
6371 (uri (git-reference
6372 (url home-page)
6373 (commit version)))
6374 (sha256
6375 (base32 "0bg0bv2mfd4k0g3x72x563hvmrx18xavaffr6xk5rh4if5j7kcf6"))
6376 (file-name (git-file-name name version))))
6377 (build-system asdf-build-system/sbcl)
6378 (synopsis "Calculate various string metrics efficiently in Common Lisp")
6379 (description "This library implements efficient algorithms that calculate
6380 various string metrics in Common Lisp:
6381
6382 @itemize
6383 @item Damerau-Levenshtein distance
6384 @item Hamming distance
6385 @item Jaccard similarity coefficient
6386 @item Jaro distance
6387 @item Jaro-Winkler distance
6388 @item Levenshtein distance
6389 @item Normalized Damerau-Levenshtein distance
6390 @item Normalized Levenshtein distance
6391 @item Overlap coefficient
6392 @end itemize\n")
6393 (license license:x11)))
6394
6395 (define-public cl-mk-string-metrics
6396 (sbcl-package->cl-source-package sbcl-mk-string-metrics))
6397
6398 (define-public sbcl-cl-str
6399 (let ((commit "eb480f283e28802d67b35bf916506701152f9a2a"))
6400 (package
6401 (name "sbcl-cl-str")
6402 (version (git-version "0.17" "1" commit))
6403 (home-page "https://github.com/vindarel/cl-str")
6404 (source (origin
6405 (method git-fetch)
6406 (uri (git-reference
6407 (url home-page)
6408 (commit commit)))
6409 (sha256
6410 (base32 "1hpq5m8zjjnzns370zy27z2vcm1p8n2ka5ij2x67gyc9amz9vla0"))
6411 (file-name (git-file-name name version))))
6412 (build-system asdf-build-system/sbcl)
6413 (inputs
6414 `(("cl-ppcre" ,sbcl-cl-ppcre)
6415 ("cl-ppcre-unicode" ,sbcl-cl-ppcre-unicode)
6416 ("cl-change-case" ,sbcl-cl-change-case)))
6417 (native-inputs
6418 `(("prove" ,sbcl-prove)
6419 ("prove-asdf" ,sbcl-prove-asdf)))
6420 (arguments
6421 `(#:asd-file "str.asd"
6422 #:asd-system-name "str"
6423 #:test-asd-file "str.test.asd"))
6424 (synopsis "Modern, consistent and terse Common Lisp string manipulation library")
6425 (description "A modern and consistent Common Lisp string manipulation
6426 library that focuses on modernity, simplicity and discoverability:
6427 @code{(str:trim s)} instead of @code{(string-trim '(#\\Space ...) s)}), or
6428 @code{str:concat strings} instead of an unusual format construct; one
6429 discoverable library instead of many; consistency and composability, where
6430 @code{s} is always the last argument, which makes it easier to feed pipes and
6431 arrows.")
6432 (license license:expat))))
6433
6434 (define-public cl-str
6435 (sbcl-package->cl-source-package sbcl-cl-str))
6436
6437 (define-public sbcl-cl-xmlspam
6438 (let ((commit "ea06abcca2a73a9779bcfb09081e56665f94e22a"))
6439 (package
6440 (name "sbcl-cl-xmlspam")
6441 (build-system asdf-build-system/sbcl)
6442 (version (git-version "0.0.0" "1" commit))
6443 (home-page "https://github.com/rogpeppe/cl-xmlspam")
6444 (source
6445 (origin
6446 (method git-fetch)
6447 (uri (git-reference
6448 (url home-page)
6449 (commit commit)))
6450 (file-name (string-append name "-" version))
6451 (sha256
6452 (base32
6453 "0w4rqvrgdgk3fwfq3kx4r7wwdr2bv3b6n3bdqwsiriw9psqzpz2s"))))
6454 (inputs
6455 `(("cxml" ,sbcl-cxml)
6456 ("cl-ppcre" ,sbcl-cl-ppcre)))
6457 (synopsis "Concise, regexp-like pattern matching on streaming XML for Common Lisp")
6458 (description "CXML does an excellent job at parsing XML elements, but what
6459 do you do when you have a XML file that's larger than you want to fit in
6460 memory, and you want to extract some information from it? Writing code to deal
6461 with SAX events, or even using Klacks, quickly becomes tedious.
6462 @code{cl-xmlspam} (for XML Stream PAttern Matcher) is designed to make it easy
6463 to write code that mirrors the structure of the XML that it's parsing. It
6464 also makes it easy to shift paradigms when necessary - the usual Lisp control
6465 constructs can be used interchangeably with pattern matching, and the full
6466 power of CXML is available when necessary.")
6467 (license license:bsd-3))))
6468
6469 ;; TODO: dbus uses ASDF's package-inferred-system which is not supported by
6470 ;; asdf-build-system/sbcl as of 2019-08-02. We should fix
6471 ;; asdf-build-system/sbcl.
6472 (define-public cl-dbus
6473 (let ((commit "24b452df3a45ca5dc95015500f34baad175c981a")
6474 (revision "1"))
6475 (package
6476 (name "cl-dbus")
6477 (build-system asdf-build-system/source)
6478 (version (git-version "20190408" revision commit))
6479 (home-page "https://github.com/death/dbus")
6480 (source
6481 (origin
6482 (method git-fetch)
6483 (uri (git-reference
6484 (url home-page)
6485 (commit commit)))
6486 (file-name (git-file-name name version))
6487 (sha256
6488 (base32
6489 "0fw2q866yddbf23nk9pxphm9gsasx35vjyss82xzvndnjmzlqfl5"))))
6490 ;; Inputs must be propagated or else packages depending on this won't
6491 ;; have the necessary packages.
6492 (propagated-inputs
6493 `(("alexandria" ,sbcl-alexandria)
6494 ("trivial-garbage" ,sbcl-trivial-garbage)
6495 ("babel" ,sbcl-babel)
6496 ("iolib" ,sbcl-iolib)
6497 ("ieee-floats" ,sbcl-ieee-floats)
6498 ("flexi-streams" ,sbcl-flexi-streams)
6499 ("cl-xmlspam" ,sbcl-cl-xmlspam)
6500 ("ironclad" ,sbcl-ironclad)))
6501 (synopsis "D-Bus client library for Common Lisp")
6502 (description "This is a Common Lisp library that publishes D-Bus
6503 objects as well as send and notify other objects connected to a bus.")
6504 (license license:bsd-2))))
6505
6506 (define-public sbcl-cl-hooks
6507 (let ((commit "5b638083f3b4f1221a52631d9c8a0a265565cac7")
6508 (revision "1"))
6509 (package
6510 (name "sbcl-cl-hooks")
6511 (build-system asdf-build-system/sbcl)
6512 (version (git-version "0.2.1" revision commit))
6513 (home-page "https://github.com/scymtym/architecture.hooks")
6514 (source
6515 (origin
6516 (method git-fetch)
6517 (uri (git-reference
6518 (url home-page)
6519 (commit commit)))
6520 (file-name (git-file-name name version))
6521 (sha256
6522 (base32
6523 "0bg3l0a28lw5gqqjp6p6b5nhwqk46sgkb7184w5qbfngw1hk8x9y"))))
6524 (inputs
6525 `(("alexandria" ,sbcl-alexandria)
6526 ("let-plus" ,sbcl-let-plus)
6527 ("trivial-garbage" ,sbcl-trivial-garbage)
6528 ("closer-mop" ,sbcl-closer-mop)))
6529 (native-inputs
6530 `(("fiveam" ,sbcl-fiveam)))
6531 (synopsis "Hooks extension point mechanism (as in Emacs) for Common Lisp")
6532 (description "A hook, in the present context, is a certain kind of
6533 extension point in a program that allows interleaving the execution of
6534 arbitrary code with the execution of a the program without introducing any
6535 coupling between the two. Hooks are used extensively in the extensible editor
6536 Emacs.
6537
6538 In the Common LISP Object System (CLOS), a similar kind of extensibility is
6539 possible using the flexible multi-method dispatch mechanism. It may even seem
6540 that the concept of hooks does not provide any benefits over the possibilities
6541 of CLOS. However, there are some differences:
6542
6543 @itemize
6544
6545 @item There can be only one method for each combination of specializers and
6546 qualifiers. As a result this kind of extension point cannot be used by
6547 multiple extensions independently.
6548 @item Removing code previously attached via a @code{:before}, @code{:after} or
6549 @code{:around} method can be cumbersome.
6550 @item There could be other or even multiple extension points besides @code{:before}
6551 and @code{:after} in a single method.
6552 @item Attaching codes to individual objects using eql specializers can be
6553 cumbersome.
6554 @item Introspection of code attached a particular extension point is
6555 cumbersome since this requires enumerating and inspecting the methods of a
6556 generic function.
6557 @end itemize
6558
6559 This library tries to complement some of these weaknesses of method-based
6560 extension-points via the concept of hooks.")
6561 (license license:llgpl))))
6562
6563 (define-public cl-hooks
6564 (sbcl-package->cl-source-package sbcl-cl-hooks))
6565
6566 (define-public ecl-cl-hooks
6567 (sbcl-package->ecl-package sbcl-cl-hooks))
6568
6569 (define-public sbcl-s-sysdeps
6570 ;; No release since 2013.
6571 (let ((commit "9aa23bbdceb24bcdbe0e7c39fa1901858f823106")
6572 (revision "2"))
6573 (package
6574 (name "sbcl-s-sysdeps")
6575 (build-system asdf-build-system/sbcl)
6576 (version (git-version "1" revision commit))
6577 (home-page "https://github.com/svenvc/s-sysdeps")
6578 (source
6579 (origin
6580 (method git-fetch)
6581 (uri (git-reference
6582 (url home-page)
6583 (commit commit)))
6584 (file-name (git-file-name name version))
6585 (sha256
6586 (base32
6587 "1fh8r7kf8s3hvqdg6b71b8p7w3v2kkga9bw8j3qqdxhzr6anpm0b"))))
6588 (inputs
6589 `(("bordeaux-threads" ,sbcl-bordeaux-threads)
6590 ("usocket" ,sbcl-usocket)
6591 ("usocket-server" ,sbcl-usocket-server)))
6592 (synopsis "Common Lisp abstraction layer over platform dependent functionality")
6593 (description "@code{s-sysdeps} is an abstraction layer over platform
6594 dependent functionality. This simple package is used as a building block in a
6595 number of other open source projects.
6596
6597 @code{s-sysdeps} abstracts:
6598
6599 @itemize
6600 @item managing processes,
6601 @item implementing a standard TCP/IP server,
6602 @item opening a client TCP/IP socket stream,
6603 @item working with process locks.
6604 @end itemize\n")
6605 (license license:llgpl))))
6606
6607 (define-public cl-s-sysdeps
6608 (sbcl-package->cl-source-package sbcl-s-sysdeps))
6609
6610 (define-public ecl-s-sysdeps
6611 (sbcl-package->ecl-package sbcl-s-sysdeps))
6612
6613 (define-public sbcl-cl-prevalence
6614 (let ((commit "da3ed6c4594b1c2fca90c178c1993973c4bf16c9")
6615 (revision "2"))
6616 (package
6617 (name "sbcl-cl-prevalence")
6618 (build-system asdf-build-system/sbcl)
6619 (version (git-version "5" revision commit))
6620 (home-page "https://github.com/40ants/cl-prevalence")
6621 (source
6622 (origin
6623 (method git-fetch)
6624 (uri (git-reference
6625 (url home-page)
6626 (commit commit)))
6627 (file-name (git-file-name name version))
6628 (sha256
6629 (base32
6630 "0bq905hv1626dl6b7s0zn4lbdh608g1pxaljl1fda6pwp9hmj95a"))))
6631 (inputs
6632 `(("s-sysdeps" ,sbcl-s-sysdeps)
6633 ("s-xml" ,sbcl-s-xml)))
6634 (synopsis "Implementation of object prevalence for Common Lisp")
6635 (description "This Common Lisp library implements object prevalence (see
6636 @url{https://en.wikipedia.org/wiki/System_prevalence}). It allows
6637 for (de)serializing to and from s-exps as well as XML. Serialization of arbitrary
6638 classes and cyclic data structures are supported.")
6639 (license license:llgpl))))
6640
6641 (define-public cl-prevalence
6642 (sbcl-package->cl-source-package sbcl-cl-prevalence))
6643
6644 (define-public ecl-cl-prevalence
6645 (sbcl-package->ecl-package sbcl-cl-prevalence))
6646
6647 (define-public sbcl-series
6648 (let ((commit "da9061b336119d1e5214aff9117171d494d5a58a")
6649 (revision "1"))
6650 (package
6651 (name "sbcl-series")
6652 (version (git-version "2.2.11" revision commit))
6653 (source
6654 (origin
6655 (method git-fetch)
6656 (uri (git-reference
6657 (url "git://git.code.sf.net/p/series/series")
6658 (commit commit)))
6659 (file-name (git-file-name name version))
6660 (sha256
6661 (base32
6662 "07hk2lhfx42zk018pxqvn4gs77vd4n4g8m4xxbqaxgca76mifwfw"))))
6663 (build-system asdf-build-system/sbcl)
6664 (arguments
6665 ;; Disable the tests, they are apparently buggy and I didn't find
6666 ;; a simple way to make them run and pass.
6667 '(#:tests? #f))
6668 (synopsis "Series data structure for Common Lisp")
6669 (description
6670 "This Common Lisp library provides a series data structure much like
6671 a sequence, with similar kinds of operations. The difference is that in many
6672 situations, operations on series may be composed functionally and yet execute
6673 iteratively, without the need to construct intermediate series values
6674 explicitly. In this manner, series provide both the clarity of a functional
6675 programming style and the efficiency of an iterative programming style.")
6676 (home-page "http://series.sourceforge.net/")
6677 (license license:expat))))
6678
6679 (define-public cl-series
6680 (sbcl-package->cl-source-package sbcl-series))
6681
6682 (define-public ecl-series
6683 (sbcl-package->ecl-package sbcl-series))
6684
6685 (define-public sbcl-periods
6686 (let ((commit "983d4a57325db3c8def942f163133cec5391ec28")
6687 (revision "1"))
6688 (package
6689 (name "sbcl-periods")
6690 (version (git-version "0.0.2" revision commit))
6691 (source
6692 (origin
6693 (method git-fetch)
6694 (uri (git-reference
6695 (url "https://github.com/jwiegley/periods.git")
6696 (commit commit)))
6697 (file-name (git-file-name name version))
6698 (sha256
6699 (base32
6700 "0z30jr3lxz3cmi019fsl4lgcgwf0yqpn95v9zkkkwgymdrkd4lga"))))
6701 (build-system asdf-build-system/sbcl)
6702 (inputs
6703 `(("local-time" ,sbcl-local-time)))
6704 (synopsis "Common Lisp library for manipulating date/time objects")
6705 (description
6706 "Periods is a Common Lisp library providing a set of utilities for
6707 manipulating times, distances between times, and both contiguous and
6708 discontiguous ranges of time.")
6709 (home-page "https://github.com/jwiegley/periods")
6710 (license license:bsd-3))))
6711
6712 (define-public cl-periods
6713 (sbcl-package->cl-source-package sbcl-periods))
6714
6715 (define-public ecl-periods
6716 (sbcl-package->ecl-package sbcl-periods))
6717
6718 (define-public sbcl-periods-series
6719 (package
6720 (inherit sbcl-periods)
6721 (name "sbcl-periods-series")
6722 (inputs
6723 `(("periods" ,sbcl-periods)
6724 ("series" ,sbcl-series)))
6725 (arguments
6726 '(#:asd-file "periods-series.asd"
6727 #:asd-system-name "periods-series"))
6728 (description
6729 "Periods-series is an extension of the periods Common Lisp library
6730 providing functions compatible with the series Common Lisp library.")))
6731
6732 (define-public cl-periods-series
6733 (sbcl-package->cl-source-package sbcl-periods-series))
6734
6735 (define-public ecl-periods-series
6736 (sbcl-package->ecl-package sbcl-periods-series))
6737
6738 (define-public sbcl-metatilities-base
6739 (let ((commit "6eaa9e3ff0939a93a92109dd0fcd218de85417d5")
6740 (revision "1"))
6741 (package
6742 (name "sbcl-metatilities-base")
6743 (version (git-version "0.6.6" revision commit))
6744 (source
6745 (origin
6746 (method git-fetch)
6747 (uri (git-reference
6748 (url "https://github.com/gwkkwg/metatilities-base.git")
6749 (commit commit)))
6750 (file-name (git-file-name name version))
6751 (sha256
6752 (base32
6753 "0xpa86pdzlnf4v5g64j3ifaplx71sx2ha8b7vvakswi652679ma0"))))
6754 (build-system asdf-build-system/sbcl)
6755 (native-inputs
6756 `(("lift" ,sbcl-lift)))
6757 (synopsis "Core of the metatilities Common Lisp library")
6758 (description
6759 "Metatilities-base is the core of the metatilities Common Lisp library
6760 which implements a set of utilities.")
6761 (home-page "https://common-lisp.net/project/metatilities-base/")
6762 (license license:expat))))
6763
6764 (define-public cl-metatilities-base
6765 (sbcl-package->cl-source-package sbcl-metatilities-base))
6766
6767 (define-public ecl-metatilities-base
6768 (sbcl-package->ecl-package sbcl-metatilities-base))
6769
6770 (define-public sbcl-cl-containers
6771 (let ((commit "3d1df53c22403121bffb5d553cf7acb1503850e7")
6772 (revision "3"))
6773 (package
6774 (name "sbcl-cl-containers")
6775 (version (git-version "0.12.1" revision commit))
6776 (source
6777 (origin
6778 (method git-fetch)
6779 (uri (git-reference
6780 (url "https://github.com/gwkkwg/cl-containers.git")
6781 (commit commit)))
6782 (file-name (git-file-name name version))
6783 (sha256
6784 (base32
6785 "18s6jfq11n8nv9k4biz32pm1s7y9zl054ry1gmdbcf39nisy377y"))))
6786 (build-system asdf-build-system/sbcl)
6787 (native-inputs
6788 `(("lift" ,sbcl-lift)))
6789 (inputs
6790 `(("metatilities-base" ,sbcl-metatilities-base)))
6791 (arguments
6792 '(#:phases
6793 (modify-phases %standard-phases
6794 (add-after 'unpack 'relax-version-checks
6795 (lambda _
6796 (substitute* "cl-containers.asd"
6797 (("\\(:version \"metatilities-base\" \"0\\.6\\.6\"\\)")
6798 "\"metatilities-base\""))
6799 (substitute* "cl-containers-test.asd"
6800 (("\\(:version \"lift\" \"1\\.7\\.0\"\\)")
6801 "\"lift\""))
6802 #t)))))
6803 (synopsis "Container library for Common Lisp")
6804 (description
6805 "Common Lisp ships with a set of powerful built in data structures
6806 including the venerable list, full featured arrays, and hash-tables.
6807 CL-containers enhances and builds on these structures by adding containers
6808 that are not available in native Lisp (for example: binary search trees,
6809 red-black trees, sparse arrays and so on), and by providing a standard
6810 interface so that they are simpler to use and so that changing design
6811 decisions becomes significantly easier.")
6812 (home-page "https://common-lisp.net/project/cl-containers/")
6813 (license license:expat))))
6814
6815 (define-public cl-containers
6816 (sbcl-package->cl-source-package sbcl-cl-containers))
6817
6818 (define-public ecl-cl-containers
6819 (sbcl-package->ecl-package sbcl-cl-containers))
6820
6821 (define-public sbcl-xlunit
6822 (let ((commit "3805d34b1d8dc77f7e0ee527a2490194292dd0fc")
6823 (revision "1"))
6824 (package
6825 (name "sbcl-xlunit")
6826 (version (git-version "0.6.3" revision commit))
6827 (source
6828 (origin
6829 (method git-fetch)
6830 (uri (git-reference
6831 (url "http://git.kpe.io/xlunit.git")
6832 (commit commit)))
6833 (file-name (git-file-name name version))
6834 (sha256
6835 (base32
6836 "0argfmp9nghs4sihyj3f8ch9qfib2b7ll07v5m9ziajgzsfl5xw3"))))
6837 (build-system asdf-build-system/sbcl)
6838 (arguments
6839 '(#:phases
6840 (modify-phases %standard-phases
6841 (add-after 'unpack 'fix-tests
6842 (lambda _
6843 (substitute* "xlunit.asd"
6844 ((" :force t") ""))
6845 #t)))))
6846 (synopsis "Unit testing package for Common Lisp")
6847 (description
6848 "The XLUnit package is a toolkit for building test suites. It is based
6849 on the XPTest package by Craig Brozensky and the JUnit package by Kent Beck.")
6850 (home-page "http://quickdocs.org/xlunit/")
6851 (license license:bsd-3))))
6852
6853 (define-public cl-xlunit
6854 (sbcl-package->cl-source-package sbcl-xlunit))
6855
6856 (define-public ecl-xlunit
6857 (sbcl-package->ecl-package sbcl-xlunit))
6858
6859 (define-public sbcl-fprog
6860 (let ((commit "7016d1a98215f82605d1c158e7a16504ca1f4636")
6861 (revision "1"))
6862 (package
6863 (name "sbcl-fprog")
6864 (version (git-version "1.0.0" revision commit))
6865 (source
6866 (origin
6867 (method git-fetch)
6868 (uri (git-reference
6869 (url "https://github.com/jwiegley/cambl.git")
6870 (commit commit)))
6871 (file-name (git-file-name name version))
6872 (sha256
6873 (base32
6874 "103mry04j2k9vznsxm7wcvccgxkil92cdrv52miwcmxl8daa4jiz"))))
6875 (build-system asdf-build-system/sbcl)
6876 (synopsis "Functional programming utilities for Common Lisp")
6877 (description
6878 "@code{fprog} is a Common Lisp library allowing iteration over
6879 immutable lists sharing identical sublists.")
6880 (home-page "https://github.com/jwiegley/cambl")
6881 (license license:bsd-3))))
6882
6883 (define-public cl-fprog
6884 (sbcl-package->cl-source-package sbcl-fprog))
6885
6886 (define-public ecl-fprog
6887 (sbcl-package->ecl-package sbcl-fprog))
6888
6889 (define-public sbcl-cambl
6890 (let ((commit "7016d1a98215f82605d1c158e7a16504ca1f4636")
6891 (revision "1"))
6892 (package
6893 (inherit sbcl-fprog)
6894 (name "sbcl-cambl")
6895 (version (git-version "4.0.0" revision commit))
6896 (native-inputs
6897 `(("xlunit" ,sbcl-xlunit)))
6898 (inputs
6899 `(("alexandria" ,sbcl-alexandria)
6900 ("cl-containers" ,sbcl-cl-containers)
6901 ("local-time" ,sbcl-local-time)
6902 ("periods" ,sbcl-periods)
6903 ("fprog" ,sbcl-fprog)))
6904 (synopsis "Commoditized amounts and balances for Common Lisp")
6905 (description
6906 "CAMBL is a Common Lisp library providing a convenient facility for
6907 working with commoditized values. It does not allow compound units (and so is
6908 not suited for scientific operations) but does work rather nicely for the
6909 purpose of financial calculations."))))
6910
6911 (define-public cl-cambl
6912 (sbcl-package->cl-source-package sbcl-cambl))
6913
6914 (define-public ecl-cambl
6915 (sbcl-package->ecl-package sbcl-cambl))
6916
6917 (define-public sbcl-cl-ledger
6918 (let ((commit "08e0be41795e804cd36142e51756ad0b1caa377b")
6919 (revision "1"))
6920 (package
6921 (name "sbcl-cl-ledger")
6922 (version (git-version "4.0.0" revision commit))
6923 (source
6924 (origin
6925 (method git-fetch)
6926 (uri (git-reference
6927 (url "https://github.com/ledger/cl-ledger.git")
6928 (commit commit)))
6929 (file-name (git-file-name name version))
6930 (sha256
6931 (base32
6932 "1via0qf6wjcyxnfbmfxjvms0ik9j8rqbifgpmnhrzvkhrq9pv8h1"))))
6933 (build-system asdf-build-system/sbcl)
6934 (inputs
6935 `(("cambl" ,sbcl-cambl)
6936 ("cl-ppcre" ,sbcl-cl-ppcre)
6937 ("local-time" ,sbcl-local-time)
6938 ("periods-series" ,sbcl-periods-series)))
6939 (arguments
6940 '(#:phases
6941 (modify-phases %standard-phases
6942 (add-after 'unpack 'fix-system-definition
6943 (lambda _
6944 (substitute* "cl-ledger.asd"
6945 ((" :build-operation program-op") "")
6946 ((" :build-pathname \"cl-ledger\"") "")
6947 ((" :entry-point \"ledger::main\"") ""))
6948 #t)))))
6949 (synopsis "Common Lisp port of the Ledger accounting system")
6950 (description
6951 "CL-Ledger is a Common Lisp port of the Ledger double-entry accounting
6952 system.")
6953 (home-page "https://github.com/ledger/cl-ledger")
6954 (license license:bsd-3))))
6955
6956 (define-public cl-ledger
6957 (sbcl-package->cl-source-package sbcl-cl-ledger))
6958
6959 (define-public ecl-cl-ledger
6960 (sbcl-package->ecl-package sbcl-cl-ledger))
6961
6962 (define-public sbcl-bst
6963 (let ((commit "34f9c7e8e0a9f2c952fe310ab36cb630d5d9c15a")
6964 (revision "1"))
6965 (package
6966 (name "sbcl-bst")
6967 (version (git-version "1.1" revision commit))
6968 (source
6969 (origin
6970 (method git-fetch)
6971 (uri (git-reference
6972 (url "https://github.com/glv2/bst.git")
6973 (commit commit)))
6974 (file-name (git-file-name name version))
6975 (sha256
6976 (base32
6977 "1amxns7hvvh4arwbh8ciwfzplg127vh37dnbamv1m1kmmnmihfc8"))))
6978 (build-system asdf-build-system/sbcl)
6979 (native-inputs
6980 `(("alexandria" ,sbcl-alexandria)
6981 ("fiveam" ,sbcl-fiveam)))
6982 (synopsis "Binary search tree for Common Lisp")
6983 (description
6984 "BST is a Common Lisp library for working with binary search trees that
6985 can contain any kind of values.")
6986 (home-page "https://github.com/glv2/bst")
6987 (license license:gpl3))))
6988
6989 (define-public cl-bst
6990 (sbcl-package->cl-source-package sbcl-bst))
6991
6992 (define-public ecl-bst
6993 (sbcl-package->ecl-package sbcl-bst))
6994
6995 (define-public sbcl-cl-octet-streams
6996 (package
6997 (name "sbcl-cl-octet-streams")
6998 (version "1.0")
6999 (source
7000 (origin
7001 (method git-fetch)
7002 (uri (git-reference
7003 (url "https://github.com/glv2/cl-octet-streams.git")
7004 (commit (string-append "v" version))))
7005 (file-name (git-file-name name version))
7006 (sha256
7007 (base32
7008 "1d7mn6ydv0j2x4r7clpc9ijjwrnfpxmvhifv8n5j7jh7s744sf8d"))))
7009 (build-system asdf-build-system/sbcl)
7010 (native-inputs
7011 `(("fiveam" ,sbcl-fiveam)))
7012 (inputs
7013 `(("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
7014 (synopsis "In-memory octet streams for Common Lisp")
7015 (description
7016 "CL-octet-streams is a library implementing in-memory octet
7017 streams for Common Lisp. It was inspired by the trivial-octet-streams and
7018 cl-plumbing libraries.")
7019 (home-page "https://github.com/glv2/cl-octet-streams")
7020 (license license:gpl3+)))
7021
7022 (define-public cl-octet-streams
7023 (sbcl-package->cl-source-package sbcl-cl-octet-streams))
7024
7025 (define-public ecl-cl-octet-streams
7026 (sbcl-package->ecl-package sbcl-cl-octet-streams))
7027
7028 (define-public sbcl-lzlib
7029 (let ((commit "0de1db7129fef9a58a059d35a2fa2ecfc5b47b47")
7030 (revision "1"))
7031 (package
7032 (name "sbcl-lzlib")
7033 (version (git-version "1.0" revision commit))
7034 (source
7035 (origin
7036 (method git-fetch)
7037 (uri (git-reference
7038 (url "https://github.com/glv2/cl-lzlib.git")
7039 (commit commit)))
7040 (file-name (git-file-name name version))
7041 (sha256
7042 (base32
7043 "12ny7vj52fgnd8hb8fc8mry92vq4c1x72x2350191m4476j95clz"))))
7044 (build-system asdf-build-system/sbcl)
7045 (native-inputs
7046 `(("fiveam" ,sbcl-fiveam)))
7047 (inputs
7048 `(("cffi" ,sbcl-cffi)
7049 ("cl-octet-streams" ,sbcl-cl-octet-streams)
7050 ("lzlib" ,lzlib)))
7051 (arguments
7052 '(#:phases
7053 (modify-phases %standard-phases
7054 (add-after 'unpack 'fix-paths
7055 (lambda* (#:key inputs #:allow-other-keys)
7056 (substitute* "src/lzlib.lisp"
7057 (("liblz\\.so")
7058 (string-append (assoc-ref inputs "lzlib") "/lib/liblz.so")))
7059 #t)))))
7060 (synopsis "Common Lisp library for lzip (de)compression")
7061 (description
7062 "This Common Lisp library provides functions for lzip (LZMA)
7063 compression/decompression using bindings to the lzlib C library.")
7064 (home-page "https://github.com/glv2/cl-lzlib")
7065 (license license:gpl3+))))
7066
7067 (define-public cl-lzlib
7068 (sbcl-package->cl-source-package sbcl-lzlib))
7069
7070 (define-public ecl-lzlib
7071 (sbcl-package->ecl-package sbcl-lzlib))
7072
7073 (define-public sbcl-chanl
7074 (let ((commit "56e90a126c78b39bb621a01585e8d3b985238e8c")
7075 (revision "1"))
7076 (package
7077 (name "sbcl-chanl")
7078 (version (git-version "0.4.1" revision commit))
7079 (source
7080 (origin
7081 (method git-fetch)
7082 (uri (git-reference
7083 (url "https://github.com/zkat/chanl.git")
7084 (commit commit)))
7085 (file-name (git-file-name name version))
7086 (sha256
7087 (base32
7088 "0b1cf6c12qx5cy1fw2z42jgh566rp3l8nv5qf0qqc569s7bgmrh4"))))
7089 (build-system asdf-build-system/sbcl)
7090 (native-inputs
7091 `(("fiveam" ,sbcl-fiveam)))
7092 (inputs
7093 `(("bordeaux-threads" ,sbcl-bordeaux-threads)))
7094 (synopsis "Portable channel-based concurrency for Common Lisp")
7095 (description "Common Lisp library for channel-based concurrency. In
7096 a nutshell, you create various threads sequentially executing tasks you need
7097 done, and use channel objects to communicate and synchronize the state of these
7098 threads.")
7099 (home-page "https://github.com/zkat/chanl")
7100 (license (list license:expat license:bsd-3)))))
7101
7102 (define-public cl-chanl
7103 (sbcl-package->cl-source-package sbcl-chanl))
7104
7105 (define-public ecl-chanl
7106 (sbcl-package->ecl-package sbcl-chanl))
7107
7108 (define-public sbcl-cl-store
7109 (let ((commit "c787337a16ea8cf8a06227f35933a4ec774746b3")
7110 (revision "1"))
7111 (package
7112 (name "sbcl-cl-store")
7113 (version (git-version "0.8.11" revision commit))
7114 (source
7115 (origin
7116 (method git-fetch)
7117 (uri (git-reference
7118 (url "https://github.com/skypher/cl-store.git")
7119 (commit commit)))
7120 (file-name (git-file-name name version))
7121 (sha256
7122 (base32
7123 "194srkg8nrym19c6i7zbnkzshc1qhqa82m53qnkirz9fw928bqxr"))))
7124 (build-system asdf-build-system/sbcl)
7125 (native-inputs
7126 `(("rt" ,sbcl-rt)))
7127 (synopsis "Common Lisp library to serialize data")
7128 (description
7129 "CL-STORE is a portable serialization package which should give you the
7130 ability to store all Common Lisp data types into streams.")
7131 (home-page "https://www.common-lisp.net/project/cl-store/")
7132 (license license:expat))))
7133
7134 (define-public cl-store
7135 (sbcl-package->cl-source-package sbcl-cl-store))
7136
7137 (define-public ecl-cl-store
7138 (sbcl-package->ecl-package sbcl-cl-store))
7139
7140 (define-public sbcl-cl-gobject-introspection
7141 (let ((commit "7b703e2384945ea0ac39d9b766de434a08d81560")
7142 (revision "0"))
7143 (package
7144 (name "sbcl-cl-gobject-introspection")
7145 (version (git-version "0.3" revision commit))
7146 (home-page "https://github.com/andy128k/cl-gobject-introspection")
7147 (source
7148 (origin
7149 (method git-fetch)
7150 (uri (git-reference
7151 (url home-page)
7152 (commit commit)))
7153 (file-name (git-file-name name version))
7154 (sha256
7155 (base32
7156 "1zcqd2qj14f6b38vys8gr89s6cijsp9r8j43xa8lynilwva7bwyh"))))
7157 (build-system asdf-build-system/sbcl)
7158 (inputs
7159 `(("alexandria" ,sbcl-alexandria)
7160 ("cffi" ,sbcl-cffi)
7161 ("iterate" ,sbcl-iterate)
7162 ("trivial-garbage" ,sbcl-trivial-garbage)
7163 ("glib" ,glib)
7164 ("gobject-introspection" ,gobject-introspection)))
7165 (native-inputs
7166 `(("fiveam" ,sbcl-fiveam)))
7167 (arguments
7168 ;; TODO: Tests fail, see
7169 ;; https://github.com/andy128k/cl-gobject-introspection/issues/70.
7170 '(#:tests? #f
7171 #:phases
7172 (modify-phases %standard-phases
7173 (add-after (quote unpack) (quote fix-paths)
7174 (lambda* (#:key inputs #:allow-other-keys)
7175 (substitute* "src/init.lisp"
7176 (("libgobject-2\\.0\\.so")
7177 (string-append (assoc-ref inputs "glib") "/lib/libgobject-2.0.so"))
7178 (("libgirepository-1\\.0\\.so")
7179 (string-append (assoc-ref inputs "gobject-introspection")
7180 "/lib/libgirepository-1.0.so")))
7181 #t)))))
7182 (synopsis "Common Lisp bindings to GObject Introspection")
7183 (description
7184 "This library is a bridge between Common Lisp and GObject
7185 Introspection, which enables Common Lisp programs to access the full interface
7186 of C+GObject libraries without the need of writing dedicated bindings.")
7187 (license (list license:bsd-3
7188 ;; Tests are under a different license.
7189 license:llgpl)))))
7190
7191 (define-public cl-gobject-introspection
7192 (sbcl-package->cl-source-package sbcl-cl-gobject-introspection))
7193
7194 (define-public sbcl-string-case
7195 (let ((commit "718c761e33749e297cd2809c7ba3ade1985c49f7")
7196 (revision "0"))
7197 (package
7198 (name "sbcl-string-case")
7199 (version (git-version "0.0.2" revision commit))
7200 (home-page "https://github.com/pkhuong/string-case")
7201 (source
7202 (origin
7203 (method git-fetch)
7204 (uri (git-reference
7205 (url home-page)
7206 (commit commit)))
7207 (file-name (git-file-name name version))
7208 (sha256
7209 (base32
7210 "1n5i3yh0h5s636rcnwn7jwqy3rjflikra04lymimhpcshhjsk0md"))))
7211 (build-system asdf-build-system/sbcl)
7212 (synopsis "Efficient string= case in Common Lisp")
7213 (description
7214 "@code{string-case} is a Common Lisp macro that generates specialised decision
7215 trees to dispatch on string equality.")
7216 (license license:bsd-3))))
7217
7218 (define-public cl-string-case
7219 (sbcl-package->cl-source-package sbcl-string-case))
7220
7221 (define-public ecl-string-case
7222 (sbcl-package->ecl-package sbcl-string-case))
7223
7224 (define-public sbcl-global-vars
7225 (let ((commit "c749f32c9b606a1457daa47d59630708ac0c266e")
7226 (revision "0"))
7227 (package
7228 (name "sbcl-global-vars")
7229 (version (git-version "1.0.0" revision commit))
7230 (home-page "https://github.com/lmj/global-vars")
7231 (source
7232 (origin
7233 (method git-fetch)
7234 (uri (git-reference
7235 (url home-page)
7236 (commit commit)))
7237 (file-name (git-file-name name version))
7238 (sha256
7239 (base32
7240 "06m3xc8l3pgsapl8fvsi9wf6y46zs75cp9zn7zh6dc65v4s5wz3d"))))
7241 (build-system asdf-build-system/sbcl)
7242 (synopsis "Efficient global variables in Common Lisp")
7243 (description
7244 "In Common Lisp, a special variable that is never dynamically bound
7245 typically serves as a stand-in for a global variable. The @code{global-vars}
7246 library provides true global variables that are implemented by some compilers.
7247 An attempt to rebind a global variable properly results in a compiler error.
7248 That is, a global variable cannot be dynamically bound.
7249
7250 Global variables therefore allow us to communicate an intended usage that
7251 differs from special variables. Global variables are also more efficient than
7252 special variables, especially in the presence of threads.")
7253 (license license:expat))))
7254
7255 (define-public cl-global-vars
7256 (sbcl-package->cl-source-package sbcl-global-vars))
7257
7258 (define-public ecl-global-vars
7259 (sbcl-package->ecl-package sbcl-global-vars))
7260
7261 (define-public sbcl-trivial-file-size
7262 (let ((commit "1c1d672a01a446ba0391dbb4ffc40be3b0476f23")
7263 (revision "0"))
7264 (package
7265 (name "sbcl-trivial-file-size")
7266 (version (git-version "0.0.0" revision commit))
7267 (home-page "https://github.com/ruricolist/trivial-file-size")
7268 (source
7269 (origin
7270 (method git-fetch)
7271 (uri (git-reference
7272 (url home-page)
7273 (commit commit)))
7274 (file-name (git-file-name name version))
7275 (sha256
7276 (base32
7277 "17pp86c9zs4y7i1sh7q9gbfw9iqv6655k7fz8qbj9ly1ypgxp4qs"))))
7278 (build-system asdf-build-system/sbcl)
7279 (native-inputs
7280 `(("fiveam" ,sbcl-fiveam)))
7281 (synopsis "Size of a file in bytes in Common Lisp")
7282 (description
7283 "The canonical way to determine the size of a file in bytes, using Common Lisp,
7284 is to open the file with an element type of (unsigned-byte 8) and then
7285 calculate the length of the stream. This is less than ideal. In most cases
7286 it is better to get the size of the file from its metadata, using a system
7287 call.
7288
7289 This library exports a single function, file-size-in-octets. It returns the
7290 size of a file in bytes, using system calls when possible.")
7291 (license license:expat))))
7292
7293 (define-public cl-trivial-file-size
7294 (sbcl-package->cl-source-package sbcl-trivial-file-size))
7295
7296 (define-public ecl-trivial-file-size
7297 (sbcl-package->ecl-package sbcl-trivial-file-size))
7298
7299 (define-public sbcl-trivial-macroexpand-all
7300 (let ((commit "933270ac7107477de1bc92c1fd641fe646a7a8a9")
7301 (revision "0"))
7302 (package
7303 (name "sbcl-trivial-macroexpand-all")
7304 (version (git-version "0.0.0" revision commit))
7305 (home-page "https://github.com/cbaggers/trivial-macroexpand-all")
7306 (source
7307 (origin
7308 (method git-fetch)
7309 (uri (git-reference
7310 (url home-page)
7311 (commit commit)))
7312 (file-name (git-file-name name version))
7313 (sha256
7314 (base32
7315 "191hnn4b5j4i3crydmlzbm231kj0h7l8zj6mzj69r1npbzkas4bd"))))
7316 (build-system asdf-build-system/sbcl)
7317 (native-inputs
7318 `(("fiveam" ,sbcl-fiveam)))
7319 (synopsis "Portable macroexpand-all for Common Lisp")
7320 (description
7321 "This library provides a macroexpand-all function that calls the
7322 implementation specific equivalent.")
7323 (license license:unlicense))))
7324
7325 (define-public cl-trivial-macroexpand-all
7326 (sbcl-package->cl-source-package sbcl-trivial-macroexpand-all))
7327
7328 (define-public ecl-trivial-macroexpand-all
7329 (sbcl-package->ecl-package sbcl-trivial-macroexpand-all))
7330
7331 (define-public sbcl-serapeum
7332 (let ((commit "64f0c4a161bbbda7c275012ca1415b4293b9e169")
7333 (revision "1"))
7334 (package
7335 (name "sbcl-serapeum")
7336 (version (git-version "0.0.0" revision commit))
7337 (home-page "https://github.com/ruricolist/serapeum")
7338 (source
7339 (origin
7340 (method git-fetch)
7341 (uri (git-reference
7342 (url home-page)
7343 (commit commit)))
7344 (file-name (git-file-name name version))
7345 (sha256
7346 (base32
7347 "0djnj0py8hdjnk5j6shjq2kbmyxqd5sw79cilcfmpfz4dzjdgkx9"))))
7348 (build-system asdf-build-system/sbcl)
7349 (inputs
7350 `(("alexandria" ,sbcl-alexandria)
7351 ("trivia" ,sbcl-trivia)
7352 ("trivia.quasiquote" ,sbcl-trivia.quasiquote)
7353 ("split-sequence" ,sbcl-split-sequence)
7354 ("string-case" ,sbcl-string-case)
7355 ("parse-number" ,sbcl-parse-number)
7356 ("trivial-garbage" ,sbcl-trivial-garbage)
7357 ("bordeaux-threads" ,sbcl-bordeaux-threads)
7358 ("named-readtables" ,sbcl-named-readtables)
7359 ("fare-quasiquote-extras" ,sbcl-fare-quasiquote-extras)
7360 ("parse-declarations-1.0" ,sbcl-parse-declarations)
7361 ("global-vars" ,sbcl-global-vars)
7362 ("trivial-file-size" ,sbcl-trivial-file-size)
7363 ("trivial-macroexpand-all" ,sbcl-trivial-macroexpand-all)))
7364 (native-inputs
7365 `(("fiveam" ,sbcl-fiveam)
7366 ("local-time" ,sbcl-local-time)))
7367 (arguments
7368 '(#:phases
7369 (modify-phases %standard-phases
7370 (add-after 'unpack 'disable-failing-tests
7371 (lambda* (#:key inputs #:allow-other-keys)
7372 (substitute* "serapeum.asd"
7373 ;; Guix does not have Quicklisp, and probably never will.
7374 (("\\(:file \"quicklisp\"\\)") ""))
7375 #t)))))
7376 (synopsis "Common Lisp utility library beyond Alexandria")
7377 (description
7378 "Serapeum is a conservative library of Common Lisp utilities. It is a
7379 supplement, not a competitor, to Alexandria.")
7380 (license license:expat))))
7381
7382 (define-public cl-serapeum
7383 (sbcl-package->cl-source-package sbcl-serapeum))
7384
7385 (define-public sbcl-arrows
7386 (let ((commit "df7cf0067e0132d9697ac8b1a4f1b9c88d4f5382")
7387 (revision "0"))
7388 (package
7389 (name "sbcl-arrows")
7390 (version (git-version "0.2.0" revision commit))
7391 (source
7392 (origin
7393 (method git-fetch)
7394 (uri (git-reference
7395 (url "https://gitlab.com/Harleqin/arrows.git")
7396 (commit commit)))
7397 (file-name (git-file-name name version))
7398 (sha256
7399 (base32
7400 "042k9vkssrqx9nhp14wdzm942zgdxvp35mba0p2syz98i75im2yy"))))
7401 (build-system asdf-build-system/sbcl)
7402 (native-inputs
7403 `(("hu.dwim.stefil" ,sbcl-hu.dwim.stefil)))
7404 (synopsis "Clojure-like arrow macros for Common Lisp")
7405 (description
7406 "This library implements the @code{->} and @code{->>} macros from
7407 Clojure, as well as several expansions on the idea.")
7408 (home-page "https://gitlab.com/Harleqin/arrows")
7409 (license license:public-domain))))
7410
7411 (define-public cl-arrows
7412 (sbcl-package->cl-source-package sbcl-arrows))
7413
7414 (define-public ecl-arrows
7415 (sbcl-package->ecl-package sbcl-arrows))
7416
7417 (define-public sbcl-simple-parallel-tasks
7418 (let ((commit "db460f7a3f7bbfe2d3a2223ed21e162068d04dda")
7419 (revision "0"))
7420 (package
7421 (name "sbcl-simple-parallel-tasks")
7422 (version (git-version "1.0" revision commit))
7423 (source
7424 (origin
7425 (method git-fetch)
7426 (uri (git-reference
7427 (url "https://github.com/glv2/simple-parallel-tasks.git")
7428 (commit commit)))
7429 (file-name (git-file-name name version))
7430 (sha256
7431 (base32
7432 "0amw3qk23wnlyrsgzszs6rs7y4zvxv8dr03rnqhc60mnm8ds4dd5"))))
7433 (build-system asdf-build-system/sbcl)
7434 (native-inputs
7435 `(("fiveam" ,sbcl-fiveam)))
7436 (inputs
7437 `(("chanl" ,sbcl-chanl)))
7438 (synopsis "Common Lisp library to evaluate some forms in parallel")
7439 (description "This is a simple Common Lisp library to evaluate some
7440 forms in parallel.")
7441 (home-page "https://github.com/glv2/simple-parallel-tasks")
7442 (license license:gpl3))))
7443
7444 (define-public cl-simple-parallel-tasks
7445 (sbcl-package->cl-source-package sbcl-simple-parallel-tasks))
7446
7447 (define-public ecl-simple-parallel-tasks
7448 (sbcl-package->ecl-package sbcl-simple-parallel-tasks))
7449
7450 (define-public sbcl-cl-heap
7451 (package
7452 (name "sbcl-cl-heap")
7453 (version "0.1.6")
7454 (source
7455 (origin
7456 (method url-fetch)
7457 (uri (string-append "https://common-lisp.net/project/cl-heap/releases/"
7458 "cl-heap_" version ".tar.gz"))
7459 (sha256
7460 (base32
7461 "163hb07p2nxz126rpq3cj5dyala24n0by5i5786n2qcr1w0bak4i"))))
7462 (build-system asdf-build-system/sbcl)
7463 (native-inputs
7464 `(("xlunit" ,sbcl-xlunit)))
7465 (arguments
7466 `(#:test-asd-file "cl-heap-tests.asd"))
7467 (synopsis "Heap and priority queue data structures for Common Lisp")
7468 (description
7469 "CL-HEAP provides various implementations of heap data structures (a
7470 binary heap and a Fibonacci heap) as well as an efficient priority queue.")
7471 (home-page "https://common-lisp.net/project/cl-heap/")
7472 (license license:gpl3+)))
7473
7474 (define-public cl-heap
7475 (sbcl-package->cl-source-package sbcl-cl-heap))
7476
7477 (define-public ecl-cl-heap
7478 (sbcl-package->ecl-package sbcl-cl-heap))
7479
7480 (define-public sbcl-curry-compose-reader-macros
7481 (let ((commit "beaa92dedf392726c042184bfd6149fa8d9e6ac2")
7482 (revision "0"))
7483 (package
7484 (name "sbcl-curry-compose-reader-macros")
7485 (version (git-version "1.0.0" revision commit))
7486 (source
7487 (origin
7488 (method git-fetch)
7489 (uri
7490 (git-reference
7491 (url "https://github.com/eschulte/curry-compose-reader-macros.git")
7492 (commit commit)))
7493 (file-name (git-file-name name version))
7494 (sha256
7495 (base32
7496 "0rv9bl8xrad5wfcg5zs1dazvnpmvqz6297lbn8bywsrcfnlf7h98"))))
7497 (build-system asdf-build-system/sbcl)
7498 (inputs
7499 `(("alexandria" ,sbcl-alexandria)
7500 ("named-readtables" ,sbcl-named-readtables)))
7501 (synopsis "Reader macros for partial application and composition")
7502 (description
7503 "This Common Lisp library provides reader macros for concise expression
7504 of function partial application and composition.")
7505 (home-page "https://eschulte.github.io/curry-compose-reader-macros/")
7506 (license license:public-domain))))
7507
7508 (define-public cl-curry-compose-reader-macros
7509 (sbcl-package->cl-source-package sbcl-curry-compose-reader-macros))
7510
7511 (define-public ecl-curry-compose-reader-macros
7512 (sbcl-package->ecl-package sbcl-curry-compose-reader-macros))
7513
7514 (define-public sbcl-yason
7515 (package
7516 (name "sbcl-yason")
7517 (version "0.7.7")
7518 (source
7519 (origin
7520 (method git-fetch)
7521 (uri (git-reference
7522 (url "https://github.com/phmarek/yason.git")
7523 (commit (string-append "v" version))))
7524 (file-name (git-file-name name version))
7525 (sha256
7526 (base32
7527 "0479rbjgbj80jpk5bby18inlv1kfp771a82rlcq5psrz65qqa9bj"))))
7528 (build-system asdf-build-system/sbcl)
7529 (inputs
7530 `(("alexandria" ,sbcl-alexandria)
7531 ("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
7532 (synopsis "Common Lisp JSON parser/encoder")
7533 (description
7534 "YASON is a Common Lisp library for encoding and decoding data in the
7535 JSON interchange format.")
7536 (home-page "https://github.com/phmarek/yason")
7537 (license license:bsd-3)))
7538
7539 (define-public cl-yason
7540 (sbcl-package->cl-source-package sbcl-yason))
7541
7542 (define-public ecl-yason
7543 (sbcl-package->ecl-package sbcl-yason))
7544
7545 (define-public sbcl-stefil
7546 (let ((commit "0398548ec95dceb50fc2c2c03e5fb0ce49b86c7a")
7547 (revision "0"))
7548 (package
7549 (name "sbcl-stefil")
7550 (version (git-version "0.1" revision commit))
7551 (source
7552 (origin
7553 (method git-fetch)
7554 (uri (git-reference
7555 (url "https://gitlab.common-lisp.net/stefil/stefil.git")
7556 (commit commit)))
7557 (file-name (git-file-name name version))
7558 (sha256
7559 (base32
7560 "0bqz64q2szzhf91zyqyssmvrz7da6442rs01808pf3wrdq28bclh"))))
7561 (build-system asdf-build-system/sbcl)
7562 (inputs
7563 `(("alexandria" ,sbcl-alexandria)
7564 ("iterate" ,sbcl-iterate)
7565 ("metabang-bind" ,sbcl-metabang-bind)))
7566 (propagated-inputs
7567 ;; Swank doesn't have a pre-compiled package, therefore we must
7568 ;; propagate its sources.
7569 `(("swank" ,cl-slime-swank)))
7570 (arguments
7571 '(#:phases
7572 (modify-phases %standard-phases
7573 (add-after 'unpack 'drop-unnecessary-dependency
7574 (lambda _
7575 (substitute* "package.lisp"
7576 ((":stefil-system") ""))
7577 #t)))))
7578 (home-page "https://common-lisp.net/project/stefil/index-old.shtml")
7579 (synopsis "Simple test framework")
7580 (description
7581 "Stefil is a simple test framework for Common Lisp, with a focus on
7582 interactive development.")
7583 (license license:public-domain))))
7584
7585 (define-public cl-stefil
7586 (sbcl-package->cl-source-package sbcl-stefil))
7587
7588 (define-public sbcl-graph
7589 (let ((commit "78bf9ec930d8eae4f0861b5be76765fb1e45e24f")
7590 (revision "0"))
7591 (package
7592 (name "sbcl-graph")
7593 (version (git-version "0.0.0" revision commit))
7594 (source
7595 (origin
7596 (method git-fetch)
7597 (uri
7598 (git-reference
7599 (url "https://github.com/eschulte/graph.git")
7600 (commit commit)))
7601 (file-name (git-file-name name version))
7602 (sha256
7603 (base32
7604 "1qpij4xh8bqwc2myahpilcbh916v7vg0acz2fij14d3y0jm02h0g"))
7605 (patches (search-patches "sbcl-graph-asdf-definitions.patch"))))
7606 (build-system asdf-build-system/sbcl)
7607 (native-inputs
7608 `(("stefil" ,sbcl-stefil)))
7609 (inputs
7610 `(("alexandria" ,sbcl-alexandria)
7611 ("cl-heap" ,sbcl-cl-heap)
7612 ("curry-compose-reader-macros" ,sbcl-curry-compose-reader-macros)
7613 ("metabang-bind" ,sbcl-metabang-bind)
7614 ("named-readtables" ,sbcl-named-readtables)))
7615 (arguments
7616 '(#:test-asd-file "graph-test.asd"))
7617 (synopsis "Graph data structure and algorithms for Common Lisp")
7618 (description
7619 "The GRAPH Common Lisp library provides a data structures to represent
7620 graphs, as well as some graph manipulation and analysis algorithms (shortest
7621 path, maximum flow, minimum spanning tree, etc.).")
7622 (home-page "https://eschulte.github.io/graph/")
7623 (license license:gpl3+))))
7624
7625 (define-public cl-graph
7626 (sbcl-package->cl-source-package sbcl-graph))
7627
7628 (define-public sbcl-graph-dot
7629 (package
7630 (inherit sbcl-graph)
7631 (name "sbcl-graph-dot")
7632 (inputs
7633 `(("alexandria" ,sbcl-alexandria)
7634 ("cl-ppcre" ,sbcl-cl-ppcre)
7635 ("curry-compose-reader-macros" ,sbcl-curry-compose-reader-macros)
7636 ("graph" ,sbcl-graph)
7637 ("metabang-bind" ,sbcl-metabang-bind)
7638 ("named-readtables" ,sbcl-named-readtables)))
7639 (arguments
7640 (substitute-keyword-arguments (package-arguments sbcl-graph)
7641 ((#:asd-file _ "") "graph-dot.asd")
7642 ((#:asd-system-name _ #f) "graph-dot")))
7643 (synopsis "Serialize graphs to and from DOT format")))
7644
7645 (define-public sbcl-graph-json
7646 (package
7647 (inherit sbcl-graph)
7648 (name "sbcl-graph-json")
7649 (inputs
7650 `(("alexandria" ,sbcl-alexandria)
7651 ("curry-compose-reader-macros" ,sbcl-curry-compose-reader-macros)
7652 ("graph" ,sbcl-graph)
7653 ("metabang-bind" ,sbcl-metabang-bind)
7654 ("named-readtables" ,sbcl-named-readtables)
7655 ("yason" ,sbcl-yason)))
7656 (arguments
7657 (substitute-keyword-arguments (package-arguments sbcl-graph)
7658 ((#:asd-file _ "") "graph-json.asd")
7659 ((#:asd-system-name _ #f) "graph-json")))
7660 (synopsis "Serialize graphs to and from JSON format")))
7661
7662 (define-public sbcl-trivial-indent
7663 (let ((commit "2d016941751647c6cc5bd471751c2cf68861c94a")
7664 (revision "0"))
7665 (package
7666 (name "sbcl-trivial-indent")
7667 (version (git-version "1.0.0" revision commit))
7668 (source
7669 (origin
7670 (method git-fetch)
7671 (uri
7672 (git-reference
7673 (url "https://github.com/Shinmera/trivial-indent")
7674 (commit commit)))
7675 (file-name (git-file-name name version))
7676 (sha256
7677 (base32
7678 "1sj90nqz17w4jq0ixz00gb9g5g6d2s7l8r17zdby27gxxh51w266"))))
7679 (build-system asdf-build-system/sbcl)
7680 (synopsis "Simple Common Lisp library to allow indentation hints for SWANK")
7681 (description
7682 "This library allows you to define custom indentation hints for your
7683 macros if the one recognised by SLIME automatically produces unwanted
7684 results.")
7685 (home-page "https://shinmera.github.io/trivial-indent/")
7686 (license license:zlib))))
7687
7688 (define-public cl-trivial-indent
7689 (sbcl-package->cl-source-package sbcl-trivial-indent))
7690
7691 (define-public sbcl-documentation-utils
7692 (let ((commit "98630dd5f7e36ae057fa09da3523f42ccb5d1f55")
7693 (revision "0"))
7694 (package
7695 (name "sbcl-documentation-utils")
7696 (version (git-version "1.2.0" revision commit))
7697 (source
7698 (origin
7699 (method git-fetch)
7700 (uri
7701 (git-reference
7702 (url "https://github.com/Shinmera/documentation-utils.git")
7703 (commit commit)))
7704 (file-name (git-file-name name version))
7705 (sha256
7706 (base32
7707 "098qhkqskmmrh4wix34mawf7p5c87yql28r51r75yjxj577k5idq"))))
7708 (build-system asdf-build-system/sbcl)
7709 (inputs
7710 `(("trivial-indent" ,sbcl-trivial-indent)))
7711 (synopsis "Few simple tools to document Common Lisp libraries")
7712 (description
7713 "This is a small library to help you with managing the Common Lisp
7714 docstrings for your library.")
7715 (home-page "https://shinmera.github.io/documentation-utils/")
7716 (license license:zlib))))
7717
7718 (define-public cl-documentation-utils
7719 (sbcl-package->cl-source-package sbcl-documentation-utils))
7720
7721 (define-public ecl-documentation-utils
7722 (sbcl-package->ecl-package sbcl-documentation-utils))
7723
7724 (define-public sbcl-form-fiddle
7725 (let ((commit "e0c23599dbb8cff3e83e012f3d86d0764188ad18")
7726 (revision "0"))
7727 (package
7728 (name "sbcl-form-fiddle")
7729 (version (git-version "1.1.0" revision commit))
7730 (source
7731 (origin
7732 (method git-fetch)
7733 (uri
7734 (git-reference
7735 (url "https://github.com/Shinmera/form-fiddle")
7736 (commit commit)))
7737 (file-name (git-file-name name version))
7738 (sha256
7739 (base32
7740 "041iznc9mpfyrl0sv5893ys9pbb2pvbn9g3clarqi7gsfj483jln"))))
7741 (build-system asdf-build-system/sbcl)
7742 (inputs
7743 `(("documentation-utils" ,sbcl-documentation-utils)))
7744 (synopsis "Utilities to destructure Common Lisp lambda forms")
7745 (description
7746 "Often times we need to destructure a form definition in a Common Lisp
7747 macro. This library provides a set of simple utilities to help with that.")
7748 (home-page "https://shinmera.github.io/form-fiddle/")
7749 (license license:zlib))))
7750
7751 (define-public cl-form-fiddle
7752 (sbcl-package->cl-source-package sbcl-form-fiddle))
7753
7754 (define-public sbcl-parachute
7755 (let ((commit "ca04dd8e43010a6dfffa26dbe1d62af86008d666")
7756 (revision "0"))
7757 (package
7758 (name "sbcl-parachute")
7759 (version (git-version "1.1.1" revision commit))
7760 (source
7761 (origin
7762 (method git-fetch)
7763 (uri
7764 (git-reference
7765 (url "https://github.com/Shinmera/parachute")
7766 (commit commit)))
7767 (file-name (git-file-name name version))
7768 (sha256
7769 (base32
7770 "1mvsm3r0r6a2bg75nw0q7n9vlby3ch45qjl7hnb5k1z2n5x5lh60"))))
7771 (build-system asdf-build-system/sbcl)
7772 (inputs
7773 `(("documentation-utils" ,sbcl-documentation-utils)
7774 ("form-fiddle" ,sbcl-form-fiddle)))
7775 (synopsis "Extensible and cross-compatible testing framework for Common Lisp")
7776 (description
7777 "Parachute is a simple-to-use and extensible testing framework.
7778 In Parachute, things are organised as a bunch of named tests within a package.
7779 Each test can contain a bunch of test forms that make up its body.")
7780 (home-page "https://shinmera.github.io/parachute/")
7781 (license license:zlib))))
7782
7783 (define-public cl-parachute
7784 (sbcl-package->cl-source-package sbcl-parachute))
7785
7786 (define-public sbcl-array-utils
7787 (let ((commit "f90eb9070d0b2205af51126a35033574725e5c56")
7788 (revision "0"))
7789 (package
7790 (name "sbcl-array-utils")
7791 (version (git-version "1.1.1" revision commit))
7792 (source
7793 (origin
7794 (method git-fetch)
7795 (uri
7796 (git-reference
7797 (url "https://github.com/Shinmera/array-utils")
7798 (commit commit)))
7799 (file-name (git-file-name name version))
7800 (sha256
7801 (base32
7802 "0zhwfbpr53vs1ii4sx75dz2k9yhh1xpwdqqpg8nmfndxkmhpbi3x"))))
7803 (build-system asdf-build-system/sbcl)
7804 (native-inputs
7805 `(("parachute" ,sbcl-parachute)))
7806 (inputs
7807 `(("documentation-utils" ,sbcl-documentation-utils)))
7808 (synopsis "Tiny collection of array and vector utilities for Common Lisp")
7809 (description
7810 "A miniature toolkit that contains some useful shifting/popping/pushing
7811 functions for arrays and vectors. Originally from Plump.")
7812 (home-page "https://shinmera.github.io/array-utils/")
7813 (license license:zlib))))
7814
7815 (define-public cl-array-utils
7816 (sbcl-package->cl-source-package sbcl-array-utils))
7817
7818 (define-public sbcl-plump
7819 (let ((commit "16f1231bf706cfbc54d9e55a853ca945e4452a08")
7820 (revision "0"))
7821 (package
7822 (name "sbcl-plump")
7823 (version (git-version "2.0.0" revision commit))
7824 (source
7825 (origin
7826 (method git-fetch)
7827 (uri
7828 (git-reference
7829 (url "https://github.com/Shinmera/plump")
7830 (commit commit)))
7831 (file-name (git-file-name name version))
7832 (sha256
7833 (base32
7834 "0705k8pbip51v74rccgwscwph439f2pma9f915qf1h4bhjx999ip"))))
7835 (build-system asdf-build-system/sbcl)
7836 (inputs
7837 `(("array-utils" ,sbcl-array-utils)
7838 ("documentation-utils" ,sbcl-documentation-utils)))
7839 (synopsis "Lenient XML / XHTML / HTML parser for Common Lisp")
7840 (description
7841 "Plump is a parser for HTML/XML-like documents, focusing on being
7842 lenient towards invalid markup. It can handle things like invalid attributes,
7843 bad closing tag order, unencoded entities, inexistent tag types, self-closing
7844 tags and so on. It parses documents to a class representation and offers a
7845 small set of DOM functions to manipulate it. It can be extended to parse to
7846 your own classes.")
7847 (home-page "https://shinmera.github.io/plump/")
7848 (license license:zlib))))
7849
7850 (define-public cl-plump
7851 (sbcl-package->cl-source-package sbcl-plump))
7852
7853 (define-public sbcl-antik-base
7854 (let ((commit "e4711a69b3d6bf37b5727af05c3cfd03e8428ba3")
7855 (revision "1"))
7856 (package
7857 (name "sbcl-antik-base")
7858 (version (git-version "0.0.0" revision commit))
7859 (source
7860 (origin
7861 (method git-fetch)
7862 (uri (git-reference
7863 (url "https://gitlab.common-lisp.net/antik/antik.git")
7864 (commit commit)))
7865 (file-name (git-file-name name version))
7866 (sha256
7867 (base32
7868 "047ga2c38par2xbgg4qx6hwv06qhf1c1f67as8xvir6s80lip1km"))))
7869 (build-system asdf-build-system/sbcl)
7870 (inputs
7871 `(("alexandria" ,sbcl-alexandria)
7872 ("cl-ppcre" ,sbcl-cl-ppcre)
7873 ("iterate" ,sbcl-iterate)
7874 ("metabang-bind" ,sbcl-metabang-bind)
7875 ("named-readtables" ,sbcl-named-readtables)
7876 ("split-sequence" ,sbcl-split-sequence)))
7877 (native-inputs
7878 `(("lisp-unit" ,sbcl-lisp-unit)))
7879 (synopsis "Scientific and engineering computation in Common Lisp")
7880 (description
7881 "Antik provides a foundation for scientific and engineering
7882 computation in Common Lisp. It is designed not only to facilitate
7883 numerical computations, but to permit the use of numerical computation
7884 libraries and the interchange of data and procedures, whether
7885 foreign (non-Lisp) or Lisp libraries. It is named after the
7886 Antikythera mechanism, one of the oldest examples of a scientific
7887 computer known.")
7888 (home-page "https://common-lisp.net/project/antik/")
7889 (license license:gpl3))))
7890
7891 (define-public cl-antik-base
7892 (sbcl-package->cl-source-package sbcl-antik-base))
7893
7894 (define-public ecl-antik-base
7895 (sbcl-package->ecl-package sbcl-antik-base))
7896
7897 (define-public sbcl-foreign-array
7898 (package
7899 (inherit sbcl-antik-base)
7900 (name "sbcl-foreign-array")
7901 (arguments
7902 (substitute-keyword-arguments (package-arguments sbcl-antik-base)
7903 ((#:asd-file _ "") "foreign-array.asd")
7904 ((#:asd-system-name _ #f) "foreign-array")))
7905 (inputs
7906 `(("antik-base" ,sbcl-antik-base)
7907 ("cffi" ,sbcl-cffi)
7908 ("trivial-garbage" ,sbcl-trivial-garbage)
7909 ("static-vectors" ,sbcl-static-vectors)))
7910 (synopsis "Common Lisp library providing access to foreign arrays")))
7911
7912 (define-public cl-foreign-array
7913 (sbcl-package->cl-source-package sbcl-foreign-array))
7914
7915 (define-public ecl-foreign-array
7916 (sbcl-package->ecl-package sbcl-foreign-array))
7917
7918 (define-public sbcl-physical-dimension
7919 (package
7920 (inherit sbcl-antik-base)
7921 (name "sbcl-physical-dimension")
7922 (inputs
7923 `(("fare-utils" ,sbcl-fare-utils)
7924 ("foreign-array" ,sbcl-foreign-array)
7925 ("trivial-utf-8" ,sbcl-trivial-utf-8)))
7926 (arguments
7927 (substitute-keyword-arguments (package-arguments sbcl-antik-base)
7928 ((#:asd-file _ "") "physical-dimension.asd")
7929 ((#:asd-system-name _ #f) "physical-dimension")))
7930 (synopsis
7931 "Common Lisp library providing computations with physical units")))
7932
7933 (define-public cl-physical-dimension
7934 (sbcl-package->cl-source-package sbcl-physical-dimension))
7935
7936 (define-public sbcl-science-data
7937 (package
7938 (inherit sbcl-antik-base)
7939 (name "sbcl-science-data")
7940 (inputs
7941 `(("physical-dimension" ,sbcl-physical-dimension)
7942 ("drakma" ,sbcl-drakma)))
7943 (arguments
7944 (substitute-keyword-arguments (package-arguments sbcl-antik-base)
7945 ((#:asd-file _ "") "science-data.asd")
7946 ((#:asd-system-name _ #f) "science-data")))
7947 (synopsis
7948 "Common Lisp library for scientific and engineering numerical data")))
7949
7950 (define-public cl-science-data
7951 (sbcl-package->cl-source-package sbcl-science-data))
7952
7953 (define-public sbcl-gsll
7954 (let ((commit "1a8ada22f9cf5ed7372d352b2317f4ccdb6ab308")
7955 (revision "1"))
7956 (package
7957 (name "sbcl-gsll")
7958 (version (git-version "0.0.0" revision commit))
7959 (source
7960 (origin
7961 (method git-fetch)
7962 (uri (git-reference
7963 (url "https://gitlab.common-lisp.net/antik/gsll.git")
7964 (commit commit)))
7965 (file-name (git-file-name name version))
7966 (sha256
7967 (base32
7968 "0z5nypfk26hxihb08p085644afawicrgb4xvadh3lmrn46qbjfn4"))))
7969 (build-system asdf-build-system/sbcl)
7970 (native-inputs
7971 `(("lisp-unit" ,sbcl-lisp-unit)))
7972 (inputs
7973 `(("alexandria" ,sbcl-alexandria)
7974 ("cffi-grovel" ,sbcl-cffi-grovel)
7975 ("cffi-libffi" ,sbcl-cffi-libffi)
7976 ("foreign-array" ,sbcl-foreign-array)
7977 ("gsl" ,gsl)
7978 ("metabang-bind" ,sbcl-metabang-bind)
7979 ("trivial-features" ,sbcl-trivial-features)
7980 ("trivial-garbage" ,sbcl-trivial-garbage)))
7981 (arguments
7982 `(#:tests? #f
7983 #:phases
7984 (modify-phases %standard-phases
7985 (add-after 'unpack 'fix-cffi-paths
7986 (lambda* (#:key inputs #:allow-other-keys)
7987 (substitute* "gsll.asd"
7988 ((":depends-on \\(#:foreign-array")
7989 ":depends-on (#:foreign-array #:cffi-libffi"))
7990 (substitute* "init/init.lisp"
7991 (("libgslcblas.so" all)
7992 (string-append
7993 (assoc-ref inputs "gsl") "/lib/" all)))
7994 (substitute* "init/init.lisp"
7995 (("libgsl.so" all)
7996 (string-append
7997 (assoc-ref inputs "gsl") "/lib/" all))))))))
7998 (synopsis "GNU Scientific Library for Lisp")
7999 (description
8000 "The GNU Scientific Library for Lisp (GSLL) allows the use of the
8001 GNU Scientific Library (GSL) from Common Lisp. This library provides a
8002 full range of common mathematical operations useful to scientific and
8003 engineering applications. The design of the GSLL interface is such
8004 that access to most of the GSL library is possible in a Lisp-natural
8005 way; the intent is that the user not be hampered by the restrictions
8006 of the C language in which GSL has been written. GSLL thus provides
8007 interactive use of GSL for getting quick answers, even for someone not
8008 intending to program in Lisp.")
8009 (home-page "https://common-lisp.net/project/gsll/")
8010 (license license:gpl3))))
8011
8012 (define-public cl-gsll
8013 (sbcl-package->cl-source-package sbcl-gsll))
8014
8015 (define-public sbcl-antik
8016 (package
8017 (inherit sbcl-antik-base)
8018 (name "sbcl-antik")
8019 (inputs
8020 `(("gsll" ,sbcl-gsll)
8021 ("physical-dimension" ,sbcl-physical-dimension)))
8022 (arguments
8023 (substitute-keyword-arguments (package-arguments sbcl-antik-base)
8024 ((#:asd-file _ "") "antik.asd")
8025 ((#:asd-system-name _ #f) "antik")))))
8026
8027 (define-public cl-antik
8028 (sbcl-package->cl-source-package sbcl-antik))
8029
8030 (define-public sbcl-cl-interpol
8031 (let ((commit "1fd288d861db85bc4677cff3cdd6af75fda1afb4")
8032 (revision "1"))
8033 (package
8034 (name "sbcl-cl-interpol")
8035 (version (git-version "0.2.6" revision commit))
8036 (source
8037 (origin
8038 (method git-fetch)
8039 (uri (git-reference
8040 (url "https://github.com/edicl/cl-interpol.git")
8041 (commit commit)))
8042 (file-name (git-file-name name version))
8043 (sha256
8044 (base32
8045 "1hnikak52hmcq1r5f616m6qq1108qnkw80pja950nv1fq5p0ppjn"))))
8046 (build-system asdf-build-system/sbcl)
8047 (inputs
8048 `(("cl-unicode" ,sbcl-cl-unicode)
8049 ("named-readtables" ,sbcl-named-readtables)))
8050 (native-inputs
8051 `(("flexi-streams" ,sbcl-flexi-streams)))
8052 (synopsis "String interpolation for Common Lisp")
8053 (description
8054 "CL-INTERPOL is a library for Common Lisp which modifies the
8055 reader so that you can have interpolation within strings similar to
8056 Perl or Unix Shell scripts. It also provides various ways to insert
8057 arbitrary characters into literal strings even if your editor/IDE
8058 doesn't support them.")
8059 (home-page "https://edicl.github.io/cl-interpol/")
8060 (license license:bsd-3))))
8061
8062 (define-public cl-interpol
8063 (sbcl-package->cl-source-package sbcl-cl-interpol))
8064
8065 (define-public ecl-cl-interpol
8066 (sbcl-package->ecl-package sbcl-cl-interpol))
8067
8068 (define sbcl-symbol-munger-boot0
8069 ;; There is a cyclical dependency between symbol-munger and lisp-unit2.
8070 ;; See https://github.com/AccelerationNet/symbol-munger/issues/4
8071 (let ((commit "cc2bb4b7acd454d756484aec81ba487648385fc3")
8072 (revision "1"))
8073 (package
8074 (name "sbcl-symbol-munger-boot0")
8075 (version (git-version "0.0.1" revision commit))
8076 (source
8077 (origin
8078 (method git-fetch)
8079 (uri (git-reference
8080 (url "https://github.com/AccelerationNet/symbol-munger.git")
8081 (commit commit)))
8082 (file-name (git-file-name name version))
8083 (sha256
8084 (base32
8085 "0diav5ricqsybqvbp4bkxyj3bn3v9n7xb2pqqc4vg1algsw2pyjl"))))
8086 (build-system asdf-build-system/sbcl)
8087 (arguments
8088 `(#:asd-file "symbol-munger.asd"
8089 #:asd-system-name "symbol-munger"))
8090 (inputs
8091 `(("iterate" ,sbcl-iterate)
8092 ("alexandria" ,sbcl-alexandria)))
8093 (native-inputs
8094 `(("lisp-unit" ,sbcl-lisp-unit)))
8095 (synopsis
8096 "Capitalization and spacing conversion functions for Common Lisp")
8097 (description
8098 "This is a Common Lisp library to change the capitalization and spacing
8099 of a string or a symbol. It can convert to and from Lisp, english, underscore
8100 and camel-case rules.")
8101 (home-page "https://github.com/AccelerationNet/symbol-munger")
8102 ;; The package declares a BSD license, but all of the license
8103 ;; text is MIT.
8104 ;; See https://github.com/AccelerationNet/symbol-munger/issues/5
8105 (license license:expat))))
8106
8107 (define sbcl-lisp-unit2-boot0
8108 ;; There is a cyclical dependency between symbol-munger and lisp-unit2.
8109 ;; See https://github.com/AccelerationNet/symbol-munger/issues/4
8110 (let ((commit "fb9721524d1e4e73abb223ee036d74ce14a5505c")
8111 (revision "1"))
8112 (package
8113 (name "sbcl-lisp-unit2-boot0")
8114 (version (git-version "0.2.0" revision commit))
8115 (source
8116 (origin
8117 (method git-fetch)
8118 (uri (git-reference
8119 (url "https://github.com/AccelerationNet/lisp-unit2.git")
8120 (commit commit)))
8121 (file-name (git-file-name name version))
8122 (sha256
8123 (base32
8124 "1rsqy8y0jqll6xn9a593848f5wvd5ribv4csry1ly0hmdhfnqzlp"))))
8125 (build-system asdf-build-system/sbcl)
8126 (arguments
8127 `(#:asd-file "lisp-unit2.asd"
8128 #:asd-system-name "lisp-unit2"))
8129 (inputs
8130 `(("alexandria" ,sbcl-alexandria)
8131 ("cl-interpol" ,sbcl-cl-interpol)
8132 ("iterate" ,sbcl-iterate)
8133 ("symbol-munger-boot0" ,sbcl-symbol-munger-boot0)))
8134 (synopsis "Test Framework for Common Lisp")
8135 (description
8136 "LISP-UNIT2 is a Common Lisp library that supports unit testing in the
8137 style of JUnit for Java. It is a new version of the lisp-unit library written
8138 by Chris Riesbeck.")
8139 (home-page "https://github.com/AccelerationNet/lisp-unit2")
8140 (license license:expat))))
8141
8142 (define-public sbcl-symbol-munger
8143 (let ((commit "97598d4c3c53fd5da72ab78908fbd5d8c7a13416")
8144 (revision "1"))
8145 (package
8146 (name "sbcl-symbol-munger")
8147 (version (git-version "0.0.1" revision commit))
8148 (source
8149 (origin
8150 (method git-fetch)
8151 (uri (git-reference
8152 (url "https://github.com/AccelerationNet/symbol-munger.git")
8153 (commit commit)))
8154 (file-name (git-file-name name version))
8155 (sha256
8156 (base32
8157 "0y8jywjy0ldyhp7bxf16fdvdd2qgqnd7nlhlqfpfnzxcqk4xy1km"))))
8158 (build-system asdf-build-system/sbcl)
8159 (inputs
8160 `(("alexandria" ,sbcl-alexandria)
8161 ("iterate" ,sbcl-iterate)))
8162 (native-inputs
8163 `(("lisp-unit2-boot0" ,sbcl-lisp-unit2-boot0)))
8164 (synopsis
8165 "Capitalization and spacing conversion functions for Common Lisp")
8166 (description
8167 "This is a Common Lisp library to change the capitalization and spacing
8168 of a string or a symbol. It can convert to and from Lisp, english, underscore
8169 and camel-case rules.")
8170 (home-page "https://github.com/AccelerationNet/symbol-munger")
8171 ;; The package declares a BSD license, but all of the license
8172 ;; text is MIT.
8173 ;; See https://github.com/AccelerationNet/symbol-munger/issues/5
8174 (license license:expat))))
8175
8176 (define-public cl-symbol-munger
8177 (sbcl-package->cl-source-package sbcl-symbol-munger))
8178
8179 (define-public ecl-symbol-munger
8180 (sbcl-package->ecl-package sbcl-symbol-munger))
8181
8182 (define-public sbcl-lisp-unit2
8183 (package
8184 (inherit sbcl-lisp-unit2-boot0)
8185 (name "sbcl-lisp-unit2")
8186 (inputs
8187 `(("alexandria" ,sbcl-alexandria)
8188 ("cl-interpol" ,sbcl-cl-interpol)
8189 ("iterate" ,sbcl-iterate)
8190 ("symbol-munger" ,sbcl-symbol-munger)))))
8191
8192 (define-public cl-lisp-unit2
8193 (sbcl-package->cl-source-package sbcl-lisp-unit2))
8194
8195 (define-public ecl-lisp-unit2
8196 (sbcl-package->ecl-package sbcl-lisp-unit2))
8197
8198 (define-public sbcl-cl-csv
8199 (let ((commit "3eba29c8364b033fbe0d189c2500559278b6a362")
8200 (revision "1"))
8201 (package
8202 (name "sbcl-cl-csv")
8203 (version (git-version "1.0.6" revision commit))
8204 (source
8205 (origin
8206 (method git-fetch)
8207 (uri (git-reference
8208 (url "https://github.com/AccelerationNet/cl-csv.git")
8209 (commit commit)))
8210 (file-name (git-file-name name version))
8211 (sha256
8212 (base32
8213 "07h4ni89jzx93clx453hlnnb5g53hhlcmz5hghqv6ysam48lc8g6"))))
8214 (build-system asdf-build-system/sbcl)
8215 (arguments
8216 ;; See: https://github.com/AccelerationNet/cl-csv/pull/34
8217 `(#:tests? #f))
8218 (inputs
8219 `(("alexandria" ,sbcl-alexandria)
8220 ("cl-interpol" ,sbcl-cl-interpol)
8221 ("iterate" ,sbcl-iterate)))
8222 (native-inputs
8223 `(("lisp-unit2" ,sbcl-lisp-unit2)))
8224 (synopsis "Common lisp library for comma-separated values")
8225 (description
8226 "This is a Common Lisp library providing functions to read/write CSV
8227 from/to strings, streams and files.")
8228 (home-page "https://github.com/AccelerationNet/cl-csv")
8229 (license license:bsd-3))))
8230
8231 (define-public cl-csv
8232 (sbcl-package->cl-source-package sbcl-cl-csv))
8233
8234 (define-public ecl-cl-csv
8235 (sbcl-package->ecl-package sbcl-cl-csv))
8236
8237 (define-public sbcl-external-program
8238 (let ((commit "5888b8f1fd3953feeeacecbba4384ddda584a749")
8239 (revision "1"))
8240 (package
8241 (name "sbcl-external-program")
8242 (version (git-version "0.0.6" revision commit))
8243 (source
8244 (origin
8245 (method git-fetch)
8246 (uri (git-reference
8247 (url "https://github.com/sellout/external-program.git")
8248 (commit commit)))
8249 (file-name (git-file-name name version))
8250 (sha256
8251 (base32
8252 "0vww1x3yilb3bjwg6k184vaj4vxyxw4vralhnlm6lk4xac67kc9z"))))
8253 (build-system asdf-build-system/sbcl)
8254 (inputs
8255 `(("trivial-features" ,sbcl-trivial-features)))
8256 (native-inputs
8257 `(("fiveam" ,sbcl-fiveam)))
8258 (synopsis "Common Lisp library for running external programs")
8259 (description
8260 "EXTERNAL-PROGRAM enables running programs outside the Lisp
8261 process. It is an attempt to make the RUN-PROGRAM functionality in
8262 implementations like SBCL and CCL as portable as possible without
8263 sacrificing much in the way of power.")
8264 (home-page "https://github.com/sellout/external-program")
8265 (license license:llgpl))))
8266
8267 (define-public cl-external-program
8268 (sbcl-package->cl-source-package sbcl-external-program))
8269
8270 (define-public ecl-external-program
8271 (sbcl-package->ecl-package sbcl-external-program))
8272
8273 (define sbcl-cl-ana-boot0
8274 (let ((commit "fa7cee4c50aa1c859652813049ba0da7c18a0df9")
8275 (revision "1"))
8276 (package
8277 (name "sbcl-cl-ana-boot0")
8278 (version (git-version "0.0.0" revision commit))
8279 (source
8280 (origin
8281 (method git-fetch)
8282 (uri (git-reference
8283 (url "https://github.com/ghollisjr/cl-ana.git")
8284 (commit commit)))
8285 (file-name (git-file-name name version))
8286 (sha256
8287 (base32
8288 "0mr47l57m276dbpap7irr4fcnk5fgknhf6mgv4043s8h73amk5qh"))))
8289 (build-system asdf-build-system/sbcl)
8290 (synopsis "Common Lisp data analysis library")
8291 (description
8292 "CL-ANA is a data analysis library in Common Lisp providing tabular and
8293 binned data analysis along with nonlinear least squares fitting and
8294 visualization.")
8295 (home-page "https://github.com/ghollisjr/cl-ana")
8296 (license license:gpl3))))
8297
8298 (define-public sbcl-cl-ana.pathname-utils
8299 (package
8300 (inherit sbcl-cl-ana-boot0)
8301 (name "sbcl-cl-ana.pathname-utils")
8302 (arguments
8303 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8304 ((#:asd-file _ "") "pathname-utils/cl-ana.pathname-utils.asd")
8305 ((#:asd-system-name _ #f) "cl-ana.pathname-utils")))))
8306
8307 (define-public cl-ana.pathname-utils
8308 (sbcl-package->cl-source-package sbcl-cl-ana.pathname-utils))
8309
8310 (define-public ecl-cl-ana.pathname-utils
8311 (sbcl-package->ecl-package sbcl-cl-ana.pathname-utils))
8312
8313 (define-public sbcl-cl-ana.package-utils
8314 (package
8315 (inherit sbcl-cl-ana-boot0)
8316 (name "sbcl-cl-ana.package-utils")
8317 (inputs
8318 `(("alexandria" ,sbcl-alexandria)))
8319 (arguments
8320 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8321 ((#:asd-file _ "") "package-utils/cl-ana.package-utils.asd")
8322 ((#:asd-system-name _ #f) "cl-ana.package-utils")))))
8323
8324 (define-public cl-ana.package-utils
8325 (sbcl-package->cl-source-package sbcl-cl-ana.package-utils))
8326
8327 (define-public ecl-cl-ana.package-utils
8328 (sbcl-package->ecl-package sbcl-cl-ana.package-utils))
8329
8330 (define-public sbcl-cl-ana.string-utils
8331 (package
8332 (inherit sbcl-cl-ana-boot0)
8333 (name "sbcl-cl-ana.string-utils")
8334 (inputs
8335 `(("split-sequence" ,sbcl-split-sequence)))
8336 (arguments
8337 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8338 ((#:asd-file _ "") "string-utils/cl-ana.string-utils.asd")
8339 ((#:asd-system-name _ #f) "cl-ana.string-utils")))))
8340
8341 (define-public cl-ana.string-utils
8342 (sbcl-package->cl-source-package sbcl-cl-ana.string-utils))
8343
8344 (define-public ecl-cl-ana.string-utils
8345 (sbcl-package->ecl-package sbcl-cl-ana.string-utils))
8346
8347 (define-public sbcl-cl-ana.functional-utils
8348 (package
8349 (inherit sbcl-cl-ana-boot0)
8350 (name "sbcl-cl-ana.functional-utils")
8351 (arguments
8352 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8353 ((#:asd-file _ "") "functional-utils/cl-ana.functional-utils.asd")
8354 ((#:asd-system-name _ #f) "cl-ana.functional-utils")))))
8355
8356 (define-public cl-ana.functional-utils
8357 (sbcl-package->cl-source-package sbcl-cl-ana.functional-utils))
8358
8359 (define-public ecl-cl-ana.functional-utils
8360 (sbcl-package->ecl-package sbcl-cl-ana.functional-utils))
8361
8362 (define-public sbcl-cl-ana.list-utils
8363 (package
8364 (inherit sbcl-cl-ana-boot0)
8365 (name "sbcl-cl-ana.list-utils")
8366 (inputs
8367 `(("alexandria" ,sbcl-alexandria)
8368 ("cl-ana.functional-utils" ,sbcl-cl-ana.functional-utils)
8369 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)))
8370 (arguments
8371 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8372 ((#:asd-file _ "") "list-utils/cl-ana.list-utils.asd")
8373 ((#:asd-system-name _ #f) "cl-ana.list-utils")))))
8374
8375 (define-public cl-ana.list-utils
8376 (sbcl-package->cl-source-package sbcl-cl-ana.list-utils))
8377
8378 (define-public ecl-cl-ana.list-utils
8379 (sbcl-package->ecl-package sbcl-cl-ana.list-utils))
8380
8381 (define-public sbcl-cl-ana.generic-math
8382 (package
8383 (inherit sbcl-cl-ana-boot0)
8384 (name "sbcl-cl-ana.generic-math")
8385 (inputs
8386 `(("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8387 ("cl-ana.package-utils" ,sbcl-cl-ana.package-utils)))
8388 (arguments
8389 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8390 ((#:asd-file _ "") "generic-math/cl-ana.generic-math.asd")
8391 ((#:asd-system-name _ #f) "cl-ana.generic-math")))))
8392
8393 (define-public cl-ana.generic-math
8394 (sbcl-package->cl-source-package sbcl-cl-ana.generic-math))
8395
8396 (define-public ecl-cl-ana.generic-math
8397 (sbcl-package->ecl-package sbcl-cl-ana.generic-math))
8398
8399 (define-public sbcl-cl-ana.math-functions
8400 (package
8401 (inherit sbcl-cl-ana-boot0)
8402 (name "sbcl-cl-ana.math-functions")
8403 (inputs
8404 `(("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
8405 ("gsll" ,sbcl-gsll)))
8406 (arguments
8407 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8408 ((#:asd-file _ "") "math-functions/cl-ana.math-functions.asd")
8409 ((#:asd-system-name _ #f) "cl-ana.math-functions")))))
8410
8411 (define-public cl-ana.math-functions
8412 (sbcl-package->cl-source-package sbcl-cl-ana.math-functions))
8413
8414 (define-public sbcl-cl-ana.calculus
8415 (package
8416 (inherit sbcl-cl-ana-boot0)
8417 (name "sbcl-cl-ana.calculus")
8418 (inputs
8419 `(("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)))
8420 (arguments
8421 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8422 ((#:asd-file _ "") "calculus/cl-ana.calculus.asd")
8423 ((#:asd-system-name _ #f) "cl-ana.calculus")))))
8424
8425 (define-public cl-ana.calculus
8426 (sbcl-package->cl-source-package sbcl-cl-ana.calculus))
8427
8428 (define-public ecl-cl-ana.calculus
8429 (sbcl-package->ecl-package sbcl-cl-ana.calculus))
8430
8431 (define-public sbcl-cl-ana.symbol-utils
8432 (package
8433 (inherit sbcl-cl-ana-boot0)
8434 (name "sbcl-cl-ana.symbol-utils")
8435 (inputs
8436 `(("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)))
8437 (arguments
8438 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8439 ((#:asd-file _ "") "symbol-utils/cl-ana.symbol-utils.asd")
8440 ((#:asd-system-name _ #f) "cl-ana.symbol-utils")))))
8441
8442 (define-public cl-ana.symbol-utils
8443 (sbcl-package->cl-source-package sbcl-cl-ana.symbol-utils))
8444
8445 (define-public ecl-cl-ana.symbol-utils
8446 (sbcl-package->ecl-package sbcl-cl-ana.symbol-utils))
8447
8448 (define-public sbcl-cl-ana.macro-utils
8449 (package
8450 (inherit sbcl-cl-ana-boot0)
8451 (name "sbcl-cl-ana.macro-utils")
8452 (inputs
8453 `(("alexandria" ,sbcl-alexandria)
8454 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8455 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
8456 ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)
8457 ("split-sequence" ,sbcl-split-sequence)))
8458 (arguments
8459 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8460 ((#:asd-file _ "") "macro-utils/cl-ana.macro-utils.asd")
8461 ((#:asd-system-name _ #f) "cl-ana.macro-utils")))))
8462
8463 (define-public cl-ana.macro-utils
8464 (sbcl-package->cl-source-package sbcl-cl-ana.macro-utils))
8465
8466 (define-public ecl-cl-ana.macro-utils
8467 (sbcl-package->ecl-package sbcl-cl-ana.macro-utils))
8468
8469 (define-public sbcl-cl-ana.binary-tree
8470 (package
8471 (inherit sbcl-cl-ana-boot0)
8472 (name "sbcl-cl-ana.binary-tree")
8473 (inputs
8474 `(("cl-ana.functional-utils" ,sbcl-cl-ana.functional-utils)
8475 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8476 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)))
8477 (arguments
8478 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8479 ((#:asd-file _ "") "binary-tree/cl-ana.binary-tree.asd")
8480 ((#:asd-system-name _ #f) "cl-ana.binary-tree")))))
8481
8482 (define-public cl-ana.binary-tree
8483 (sbcl-package->cl-source-package sbcl-cl-ana.binary-tree))
8484
8485 (define-public ecl-cl-ana.binary-tree
8486 (sbcl-package->ecl-package sbcl-cl-ana.binary-tree))
8487
8488 (define-public sbcl-cl-ana.tensor
8489 (package
8490 (inherit sbcl-cl-ana-boot0)
8491 (name "sbcl-cl-ana.tensor")
8492 (inputs
8493 `(("alexandria" ,sbcl-alexandria)
8494 ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
8495 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8496 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
8497 ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)))
8498 (arguments
8499 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8500 ((#:asd-file _ "") "tensor/cl-ana.tensor.asd")
8501 ((#:asd-system-name _ #f) "cl-ana.tensor")))))
8502
8503 (define-public cl-ana.tensor
8504 (sbcl-package->cl-source-package sbcl-cl-ana.tensor))
8505
8506 (define-public ecl-cl-ana.tensor
8507 (sbcl-package->ecl-package sbcl-cl-ana.tensor))
8508
8509 (define-public sbcl-cl-ana.error-propogation
8510 (package
8511 (inherit sbcl-cl-ana-boot0)
8512 (name "sbcl-cl-ana.error-propogation")
8513 (inputs
8514 `(("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
8515 ("cl-ana.math-functions" ,sbcl-cl-ana.math-functions)))
8516 (arguments
8517 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8518 ((#:asd-file _ "") "error-propogation/cl-ana.error-propogation.asd")
8519 ((#:asd-system-name _ #f) "cl-ana.error-propogation")))))
8520
8521 (define-public cl-ana.error-propogation
8522 (sbcl-package->cl-source-package sbcl-cl-ana.error-propogation))
8523
8524 (define-public sbcl-cl-ana.quantity
8525 (package
8526 (inherit sbcl-cl-ana-boot0)
8527 (name "sbcl-cl-ana.quantity")
8528 (inputs
8529 `(("alexandria" ,sbcl-alexandria)
8530 ("cl-ana.error-propogation" ,sbcl-cl-ana.error-propogation)
8531 ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
8532 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8533 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
8534 ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)))
8535 (arguments
8536 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8537 ((#:asd-file _ "") "quantity/cl-ana.quantity.asd")
8538 ((#:asd-system-name _ #f) "cl-ana.quantity")))))
8539
8540 (define-public cl-ana.quantity
8541 (sbcl-package->cl-source-package sbcl-cl-ana.quantity))
8542
8543 (define-public sbcl-cl-ana.table
8544 (package
8545 (inherit sbcl-cl-ana-boot0)
8546 (name "sbcl-cl-ana.table")
8547 (inputs
8548 `(("alexandria" ,sbcl-alexandria)
8549 ("cl-ana.functional-utils" ,sbcl-cl-ana.functional-utils)
8550 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8551 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
8552 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
8553 ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)))
8554 (arguments
8555 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8556 ((#:asd-file _ "") "table/cl-ana.table.asd")
8557 ((#:asd-system-name _ #f) "cl-ana.table")))))
8558
8559 (define-public cl-ana.table
8560 (sbcl-package->cl-source-package sbcl-cl-ana.table))
8561
8562 (define-public ecl-cl-ana.table
8563 (sbcl-package->ecl-package sbcl-cl-ana.table))
8564
8565 (define-public sbcl-cl-ana.table-utils
8566 (package
8567 (inherit sbcl-cl-ana-boot0)
8568 (name "sbcl-cl-ana.table-utils")
8569 (inputs
8570 `(("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
8571 ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)
8572 ("cl-ana.table" ,sbcl-cl-ana.table)))
8573 (arguments
8574 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8575 ((#:asd-file _ "") "table-utils/cl-ana.table-utils.asd")
8576 ((#:asd-system-name _ #f) "cl-ana.table-utils")))))
8577
8578 (define-public cl-ana.table-utils
8579 (sbcl-package->cl-source-package sbcl-cl-ana.table-utils))
8580
8581 (define-public ecl-cl-ana.table-utils
8582 (sbcl-package->ecl-package sbcl-cl-ana.table-utils))
8583
8584 (define-public sbcl-cl-ana.hdf-cffi
8585 (package
8586 (inherit sbcl-cl-ana-boot0)
8587 (name "sbcl-cl-ana.hdf-cffi")
8588 (inputs
8589 `(("cffi" ,sbcl-cffi)
8590 ("hdf5" ,hdf5-parallel-openmpi)))
8591 (arguments
8592 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8593 ((#:asd-file _ "") "hdf-cffi/cl-ana.hdf-cffi.asd")
8594 ((#:asd-system-name _ #f) "cl-ana.hdf-cffi")
8595 ((#:phases phases '%standard-phases)
8596 `(modify-phases ,phases
8597 (add-after 'unpack 'fix-paths
8598 (lambda* (#:key inputs #:allow-other-keys)
8599 (substitute* "hdf-cffi/hdf-cffi.lisp"
8600 (("/usr/lib/i386-linux-gnu/hdf5/serial/libhdf5.so")
8601 (string-append
8602 (assoc-ref inputs "hdf5")
8603 "/lib/libhdf5.so")))))))))))
8604
8605 (define-public cl-ana.hdf-cffi
8606 (sbcl-package->cl-source-package sbcl-cl-ana.hdf-cffi))
8607
8608 (define-public ecl-cl-ana.hdf-cffi
8609 (sbcl-package->ecl-package sbcl-cl-ana.hdf-cffi))
8610
8611 (define-public sbcl-cl-ana.int-char
8612 (package
8613 (inherit sbcl-cl-ana-boot0)
8614 (name "sbcl-cl-ana.int-char")
8615 (arguments
8616 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8617 ((#:asd-file _ "") "int-char/cl-ana.int-char.asd")
8618 ((#:asd-system-name _ #f) "cl-ana.int-char")))))
8619
8620 (define-public cl-ana.int-char
8621 (sbcl-package->cl-source-package sbcl-cl-ana.int-char))
8622
8623 (define-public ecl-cl-ana.int-char
8624 (sbcl-package->ecl-package sbcl-cl-ana.int-char))
8625
8626 (define-public sbcl-cl-ana.memoization
8627 (package
8628 (inherit sbcl-cl-ana-boot0)
8629 (name "sbcl-cl-ana.memoization")
8630 (inputs
8631 `(("alexandria" ,sbcl-alexandria)))
8632 (arguments
8633 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8634 ((#:asd-file _ "") "memoization/cl-ana.memoization.asd")
8635 ((#:asd-system-name _ #f) "cl-ana.memoization")))))
8636
8637 (define-public cl-ana.memoization
8638 (sbcl-package->cl-source-package sbcl-cl-ana.memoization))
8639
8640 (define-public ecl-cl-ana.memoization
8641 (sbcl-package->ecl-package sbcl-cl-ana.memoization))
8642
8643 (define-public sbcl-cl-ana.typespec
8644 (package
8645 (inherit sbcl-cl-ana-boot0)
8646 (name "sbcl-cl-ana.typespec")
8647 (inputs
8648 `(("alexandria" ,sbcl-alexandria)
8649 ("cffi" ,sbcl-cffi)
8650 ("cl-ana.int-char" ,sbcl-cl-ana.int-char)
8651 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8652 ("cl-ana.memoization" ,sbcl-cl-ana.memoization)
8653 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
8654 ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)
8655 ("cl-ana.tensor" ,sbcl-cl-ana.tensor)))
8656 (arguments
8657 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8658 ((#:asd-file _ "") "typespec/cl-ana.typespec.asd")
8659 ((#:asd-system-name _ #f) "cl-ana.typespec")))))
8660
8661 (define-public cl-ana.typespec
8662 (sbcl-package->cl-source-package sbcl-cl-ana.typespec))
8663
8664 (define-public ecl-cl-ana.typespec
8665 (sbcl-package->ecl-package sbcl-cl-ana.typespec))
8666
8667 (define-public sbcl-cl-ana.hdf-typespec
8668 (package
8669 (inherit sbcl-cl-ana-boot0)
8670 (name "sbcl-cl-ana.hdf-typespec")
8671 (inputs
8672 `(("alexandria" ,sbcl-alexandria)
8673 ("cffi" ,sbcl-cffi)
8674 ("cl-ana.hdf-cffi" ,sbcl-cl-ana.hdf-cffi)
8675 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8676 ("cl-ana.memoization" ,sbcl-cl-ana.memoization)
8677 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
8678 ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)
8679 ("cl-ana.typespec" ,sbcl-cl-ana.typespec)))
8680 (arguments
8681 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8682 ((#:asd-file _ "") "hdf-typespec/cl-ana.hdf-typespec.asd")
8683 ((#:asd-system-name _ #f) "cl-ana.hdf-typespec")))))
8684
8685 (define-public cl-ana.hdf-typespec
8686 (sbcl-package->cl-source-package sbcl-cl-ana.hdf-typespec))
8687
8688 (define-public ecl-cl-ana.hdf-typespec
8689 (sbcl-package->ecl-package sbcl-cl-ana.hdf-typespec))
8690
8691 (define-public sbcl-cl-ana.hdf-utils
8692 (package
8693 (inherit sbcl-cl-ana-boot0)
8694 (name "sbcl-cl-ana.hdf-utils")
8695 (inputs
8696 `(("alexandria" ,sbcl-alexandria)
8697 ("cffi" ,sbcl-cffi)
8698 ("cl-ana.hdf-cffi" ,sbcl-cl-ana.hdf-cffi)
8699 ("cl-ana.hdf-typespec" ,sbcl-cl-ana.hdf-typespec)
8700 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
8701 ("cl-ana.memoization" ,sbcl-cl-ana.memoization)
8702 ("cl-ana.pathname-utils" ,sbcl-cl-ana.pathname-utils)
8703 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
8704 ("cl-ana.typespec" ,sbcl-cl-ana.typespec)))
8705 (arguments
8706 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8707 ((#:asd-file _ "") "hdf-utils/cl-ana.hdf-utils.asd")
8708 ((#:asd-system-name _ #f) "cl-ana.hdf-utils")))))
8709
8710 (define-public cl-ana.hdf-utils
8711 (sbcl-package->cl-source-package sbcl-cl-ana.hdf-utils))
8712
8713 (define-public ecl-cl-ana.hdf-utils
8714 (sbcl-package->ecl-package sbcl-cl-ana.hdf-utils))
8715
8716 (define-public sbcl-cl-ana.typed-table
8717 (package
8718 (inherit sbcl-cl-ana-boot0)
8719 (name "sbcl-cl-ana.typed-table")
8720 (inputs
8721 `(("alexandria" ,sbcl-alexandria)
8722 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8723 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
8724 ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)
8725 ("cl-ana.table" ,sbcl-cl-ana.table)
8726 ("cl-ana.typespec" ,sbcl-cl-ana.typespec)))
8727 (arguments
8728 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8729 ((#:asd-file _ "") "typed-table/cl-ana.typed-table.asd")
8730 ((#:asd-system-name _ #f) "cl-ana.typed-table")))))
8731
8732 (define-public cl-ana.typed-table
8733 (sbcl-package->cl-source-package sbcl-cl-ana.typed-table))
8734
8735 (define-public ecl-cl-ana.typed-table
8736 (sbcl-package->ecl-package sbcl-cl-ana.typed-table))
8737
8738 (define-public sbcl-cl-ana.hdf-table
8739 (package
8740 (inherit sbcl-cl-ana-boot0)
8741 (name "sbcl-cl-ana.hdf-table")
8742 (inputs
8743 `(("alexandria" ,sbcl-alexandria)
8744 ("cl-ana.binary-tree" ,sbcl-cl-ana.binary-tree)
8745 ("cl-ana.hdf-cffi" ,sbcl-cl-ana.hdf-cffi)
8746 ("cl-ana.hdf-typespec" ,sbcl-cl-ana.hdf-typespec)
8747 ("cl-ana.hdf-utils" ,sbcl-cl-ana.hdf-utils)
8748 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8749 ("cl-ana.memoization" ,sbcl-cl-ana.memoization)
8750 ("cl-ana.table" ,sbcl-cl-ana.table)
8751 ("cl-ana.typed-table" ,sbcl-cl-ana.typed-table)
8752 ("cl-ana.typespec" ,sbcl-cl-ana.typespec)))
8753 (arguments
8754 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8755 ((#:asd-file _ "") "hdf-table/cl-ana.hdf-table.asd")
8756 ((#:asd-system-name _ #f) "cl-ana.hdf-table")))))
8757
8758 (define-public cl-ana.hdf-table
8759 (sbcl-package->cl-source-package sbcl-cl-ana.hdf-table))
8760
8761 (define-public ecl-cl-ana.hdf-table
8762 (sbcl-package->ecl-package sbcl-cl-ana.hdf-table))
8763
8764 (define-public sbcl-cl-ana.gsl-cffi
8765 (package
8766 (inherit sbcl-cl-ana-boot0)
8767 (name "sbcl-cl-ana.gsl-cffi")
8768 (inputs
8769 `(("cffi" ,sbcl-cffi)
8770 ("gsl" ,gsl)))
8771 (arguments
8772 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8773 ((#:asd-file _ "") "gsl-cffi/cl-ana.gsl-cffi.asd")
8774 ((#:asd-system-name _ #f) "cl-ana.gsl-cffi")
8775 ((#:phases phases '%standard-phases)
8776 `(modify-phases ,phases
8777 (add-after 'unpack 'fix-paths
8778 (lambda* (#:key inputs #:allow-other-keys)
8779 (substitute* "gsl-cffi/gsl-cffi.lisp"
8780 (("define-foreign-library gsl-cffi" all)
8781 (string-append all " (:unix "
8782 (assoc-ref inputs "gsl")
8783 "/lib/libgsl.so)")))))))))))
8784
8785 (define-public cl-ana.gsl-cffi
8786 (sbcl-package->cl-source-package sbcl-cl-ana.gsl-cffi))
8787
8788 (define-public ecl-cl-ana.gsl-cffi
8789 (sbcl-package->ecl-package sbcl-cl-ana.gsl-cffi))
8790
8791 (define-public sbcl-cl-ana.ntuple-table
8792 (package
8793 (inherit sbcl-cl-ana-boot0)
8794 (name "sbcl-cl-ana.ntuple-table")
8795 (inputs
8796 `(("alexandria" ,sbcl-alexandria)
8797 ("cffi" ,sbcl-cffi)
8798 ("cl-ana.gsl-cffi" ,sbcl-cl-ana.gsl-cffi)
8799 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8800 ("cl-ana.table" ,sbcl-cl-ana.table)
8801 ("cl-ana.typed-table" ,sbcl-cl-ana.typed-table)
8802 ("cl-ana.typespec" ,sbcl-cl-ana.typespec)
8803 ("gsll" ,sbcl-gsll)))
8804 (arguments
8805 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8806 ((#:asd-file _ "") "ntuple-table/cl-ana.ntuple-table.asd")
8807 ((#:asd-system-name _ #f) "cl-ana.ntuple-table")))))
8808
8809 (define-public cl-ana.ntuple-table
8810 (sbcl-package->cl-source-package sbcl-cl-ana.ntuple-table))
8811
8812 (define-public sbcl-cl-ana.csv-table
8813 (package
8814 (inherit sbcl-cl-ana-boot0)
8815 (name "sbcl-cl-ana.csv-table")
8816 (inputs
8817 `(("alexandria" ,sbcl-alexandria)
8818 ("antik" ,sbcl-antik)
8819 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8820 ("cl-ana.table" ,sbcl-cl-ana.table)
8821 ("cl-csv" ,sbcl-cl-csv)
8822 ("iterate" ,sbcl-iterate)))
8823 (arguments
8824 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8825 ((#:asd-file _ "") "csv-table/cl-ana.csv-table.asd")
8826 ((#:asd-system-name _ #f) "cl-ana.csv-table")))))
8827
8828 (define-public cl-ana.csv-table
8829 (sbcl-package->cl-source-package sbcl-cl-ana.csv-table))
8830
8831 (define-public sbcl-cl-ana.reusable-table
8832 (package
8833 (inherit sbcl-cl-ana-boot0)
8834 (name "sbcl-cl-ana.reusable-table")
8835 (inputs
8836 `(("alexandria" ,sbcl-alexandria)
8837 ("cl-ana.table" ,sbcl-cl-ana.table)))
8838 (arguments
8839 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8840 ((#:asd-file _ "") "reusable-table/cl-ana.reusable-table.asd")
8841 ((#:asd-system-name _ #f) "cl-ana.reusable-table")))))
8842
8843 (define-public cl-ana.reusable-table
8844 (sbcl-package->cl-source-package sbcl-cl-ana.reusable-table))
8845
8846 (define-public ecl-cl-ana.reusable-table
8847 (sbcl-package->ecl-package sbcl-cl-ana.reusable-table))
8848
8849 (define-public sbcl-cl-ana.linear-algebra
8850 (package
8851 (inherit sbcl-cl-ana-boot0)
8852 (name "sbcl-cl-ana.linear-algebra")
8853 (inputs
8854 `(("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
8855 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8856 ("cl-ana.math-functions" ,sbcl-cl-ana.math-functions)
8857 ("cl-ana.tensor" ,sbcl-cl-ana.tensor)
8858 ("gsll" ,sbcl-gsll)))
8859 (arguments
8860 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8861 ((#:asd-file _ "") "linear-algebra/cl-ana.linear-algebra.asd")
8862 ((#:asd-system-name _ #f) "cl-ana.linear-algebra")))))
8863
8864 (define-public cl-ana.linear-algebra
8865 (sbcl-package->cl-source-package sbcl-cl-ana.linear-algebra))
8866
8867 (define-public sbcl-cl-ana.lorentz
8868 (package
8869 (inherit sbcl-cl-ana-boot0)
8870 (name "sbcl-cl-ana.lorentz")
8871 (inputs
8872 `(("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
8873 ("cl-ana.linear-algebra" ,sbcl-cl-ana.linear-algebra)
8874 ("cl-ana.tensor" ,sbcl-cl-ana.tensor)
8875 ("iterate" ,sbcl-iterate)))
8876 (arguments
8877 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8878 ((#:asd-file _ "") "lorentz/cl-ana.lorentz.asd")
8879 ((#:asd-system-name _ #f) "cl-ana.lorentz")))))
8880
8881 (define-public cl-ana.lorentz
8882 (sbcl-package->cl-source-package sbcl-cl-ana.lorentz))
8883
8884 (define-public sbcl-cl-ana.clos-utils
8885 (package
8886 (inherit sbcl-cl-ana-boot0)
8887 (name "sbcl-cl-ana.clos-utils")
8888 (inputs
8889 `(("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8890 ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)
8891 ("cl-ana.tensor" ,sbcl-cl-ana.tensor)
8892 ("closer-mop" ,sbcl-closer-mop)))
8893 (arguments
8894 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8895 ((#:asd-file _ "") "clos-utils/cl-ana.clos-utils.asd")
8896 ((#:asd-system-name _ #f) "cl-ana.clos-utils")))))
8897
8898 (define-public cl-ana.clos-utils
8899 (sbcl-package->cl-source-package sbcl-cl-ana.clos-utils))
8900
8901 (define-public ecl-cl-ana.clos-utils
8902 (sbcl-package->ecl-package sbcl-cl-ana.clos-utils))
8903
8904 (define-public sbcl-cl-ana.hash-table-utils
8905 (package
8906 (inherit sbcl-cl-ana-boot0)
8907 (name "sbcl-cl-ana.hash-table-utils")
8908 (arguments
8909 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8910 ((#:asd-file _ "") "hash-table-utils/cl-ana.hash-table-utils.asd")
8911 ((#:asd-system-name _ #f) "cl-ana.hash-table-utils")))))
8912
8913 (define-public cl-ana.hash-table-utils
8914 (sbcl-package->cl-source-package sbcl-cl-ana.hash-table-utils))
8915
8916 (define-public ecl-cl-ana.hash-table-utils
8917 (sbcl-package->ecl-package sbcl-cl-ana.hash-table-utils))
8918
8919 (define-public sbcl-cl-ana.map
8920 (package
8921 (inherit sbcl-cl-ana-boot0)
8922 (name "sbcl-cl-ana.map")
8923 (inputs
8924 `(("cl-ana.hash-table-utils" ,sbcl-cl-ana.hash-table-utils)))
8925 (arguments
8926 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8927 ((#:asd-file _ "") "map/cl-ana.map.asd")
8928 ((#:asd-system-name _ #f) "cl-ana.map")))))
8929
8930 (define-public cl-ana.map
8931 (sbcl-package->cl-source-package sbcl-cl-ana.map))
8932
8933 (define-public ecl-cl-ana.map
8934 (sbcl-package->ecl-package sbcl-cl-ana.map))
8935
8936 (define-public sbcl-cl-ana.fitting
8937 (package
8938 (inherit sbcl-cl-ana-boot0)
8939 (name "sbcl-cl-ana.fitting")
8940 (inputs
8941 `(("alexandria" ,sbcl-alexandria)
8942 ("cl-ana.error-propogation" ,sbcl-cl-ana.error-propogation)
8943 ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
8944 ("cl-ana.map" ,sbcl-cl-ana.map)
8945 ("cl-ana.math-functions" ,sbcl-cl-ana.math-functions)
8946 ("gsll" ,sbcl-gsll)))
8947 (arguments
8948 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8949 ((#:asd-file _ "") "fitting/cl-ana.fitting.asd")
8950 ((#:asd-system-name _ #f) "cl-ana.fitting")))))
8951
8952 (define-public cl-ana.fitting
8953 (sbcl-package->cl-source-package sbcl-cl-ana.fitting))
8954
8955 (define-public sbcl-cl-ana.histogram
8956 (package
8957 (inherit sbcl-cl-ana-boot0)
8958 (name "sbcl-cl-ana.histogram")
8959 (inputs
8960 `(("alexandria" ,sbcl-alexandria)
8961 ("iterate" ,sbcl-iterate)
8962 ("cl-ana.binary-tree" ,sbcl-cl-ana.binary-tree)
8963 ("cl-ana.clos-utils" ,sbcl-cl-ana.clos-utils)
8964 ("cl-ana.fitting" ,sbcl-cl-ana.fitting)
8965 ("cl-ana.functional-utils" ,sbcl-cl-ana.functional-utils)
8966 ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
8967 ("cl-ana.hash-table-utils" ,sbcl-cl-ana.hash-table-utils)
8968 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
8969 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
8970 ("cl-ana.map" ,sbcl-cl-ana.map)
8971 ("cl-ana.tensor" ,sbcl-cl-ana.tensor)))
8972 (arguments
8973 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8974 ((#:asd-file _ "") "histogram/cl-ana.histogram.asd")
8975 ((#:asd-system-name _ #f) "cl-ana.histogram")))))
8976
8977 (define-public cl-ana.histogram
8978 (sbcl-package->cl-source-package sbcl-cl-ana.histogram))
8979
8980 (define-public sbcl-cl-ana.file-utils
8981 (package
8982 (inherit sbcl-cl-ana-boot0)
8983 (name "sbcl-cl-ana.file-utils")
8984 (inputs
8985 `(("external-program" ,sbcl-external-program)
8986 ("split-sequence" ,sbcl-split-sequence)))
8987 (arguments
8988 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
8989 ((#:asd-file _ "") "file-utils/cl-ana.file-utils.asd")
8990 ((#:asd-system-name _ #f) "cl-ana.file-utils")))))
8991
8992 (define-public cl-ana.file-utils
8993 (sbcl-package->cl-source-package sbcl-cl-ana.file-utils))
8994
8995 (define-public ecl-cl-ana.file-utils
8996 (sbcl-package->ecl-package sbcl-cl-ana.file-utils))
8997
8998 (define-public sbcl-cl-ana.statistics
8999 (package
9000 (inherit sbcl-cl-ana-boot0)
9001 (name "sbcl-cl-ana.statistics")
9002 (inputs
9003 `(("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
9004 ("cl-ana.histogram" ,sbcl-cl-ana.histogram)
9005 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
9006 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
9007 ("cl-ana.map" ,sbcl-cl-ana.map)))
9008 (arguments
9009 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9010 ((#:asd-file _ "") "statistics/cl-ana.statistics.asd")
9011 ((#:asd-system-name _ #f) "cl-ana.statistics")))))
9012
9013 (define-public cl-ana.statistics
9014 (sbcl-package->cl-source-package sbcl-cl-ana.statistics))
9015
9016 (define-public sbcl-cl-ana.gnuplot-interface
9017 (package
9018 (inherit sbcl-cl-ana-boot0)
9019 (name "sbcl-cl-ana.gnuplot-interface")
9020 (inputs
9021 `(("external-program" ,sbcl-external-program)))
9022 (arguments
9023 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9024 ((#:asd-file _ "") "gnuplot-interface/cl-ana.gnuplot-interface.asd")
9025 ((#:asd-system-name _ #f) "cl-ana.gnuplot-interface")))))
9026
9027 (define-public cl-ana.gnuplot-interface
9028 (sbcl-package->cl-source-package sbcl-cl-ana.gnuplot-interface))
9029
9030 (define-public ecl-cl-ana.gnuplot-interface
9031 (sbcl-package->ecl-package sbcl-cl-ana.gnuplot-interface))
9032
9033 (define-public sbcl-cl-ana.plotting
9034 (package
9035 (inherit sbcl-cl-ana-boot0)
9036 (name "sbcl-cl-ana.plotting")
9037 (inputs
9038 `(("alexandria" ,sbcl-alexandria)
9039 ("cl-ana.error-propogation" ,sbcl-cl-ana.error-propogation)
9040 ("cl-ana.functional-utils" ,sbcl-cl-ana.functional-utils)
9041 ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
9042 ("cl-ana.gnuplot-interface" ,sbcl-cl-ana.gnuplot-interface)
9043 ("cl-ana.histogram" ,sbcl-cl-ana.histogram)
9044 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
9045 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
9046 ("cl-ana.map" ,sbcl-cl-ana.map)
9047 ("cl-ana.math-functions" ,sbcl-cl-ana.math-functions)
9048 ("cl-ana.pathname-utils" ,sbcl-cl-ana.pathname-utils)
9049 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
9050 ("cl-ana.tensor" ,sbcl-cl-ana.tensor)
9051 ("external-program" ,sbcl-external-program)
9052 ("split-sequence" ,sbcl-split-sequence)))
9053 (arguments
9054 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9055 ((#:asd-file _ "") "plotting/cl-ana.plotting.asd")
9056 ((#:asd-system-name _ #f) "cl-ana.plotting")))))
9057
9058 (define-public cl-ana.plotting
9059 (sbcl-package->cl-source-package sbcl-cl-ana.plotting))
9060
9061 (define-public sbcl-cl-ana.table-viewing
9062 (package
9063 (inherit sbcl-cl-ana-boot0)
9064 (name "sbcl-cl-ana.table-viewing")
9065 (inputs
9066 `(("alexandria" ,sbcl-alexandria)
9067 ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
9068 ("cl-ana.histogram" ,sbcl-cl-ana.histogram)
9069 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
9070 ("cl-ana.plotting" ,sbcl-cl-ana.plotting)
9071 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
9072 ("cl-ana.table" ,sbcl-cl-ana.table)))
9073 (arguments
9074 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9075 ((#:asd-file _ "") "table-viewing/cl-ana.table-viewing.asd")
9076 ((#:asd-system-name _ #f) "cl-ana.table-viewing")))))
9077
9078 (define-public cl-ana.table-viewing
9079 (sbcl-package->cl-source-package sbcl-cl-ana.table-viewing))
9080
9081 (define-public sbcl-cl-ana.serialization
9082 (package
9083 (inherit sbcl-cl-ana-boot0)
9084 (name "sbcl-cl-ana.serialization")
9085 (inputs
9086 `(("cl-ana.error-propogation" ,sbcl-cl-ana.error-propogation)
9087 ("cl-ana.hdf-utils" ,sbcl-cl-ana.hdf-utils)
9088 ("cl-ana.hdf-table" ,sbcl-cl-ana.hdf-table)
9089 ("cl-ana.histogram" ,sbcl-cl-ana.histogram)
9090 ("cl-ana.int-char" ,sbcl-cl-ana.int-char)
9091 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
9092 ("cl-ana.typespec" ,sbcl-cl-ana.typespec)))
9093 (arguments
9094 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9095 ((#:asd-file _ "") "serialization/cl-ana.serialization.asd")
9096 ((#:asd-system-name _ #f) "cl-ana.serialization")))))
9097
9098 (define-public cl-ana.serialization
9099 (sbcl-package->cl-source-package sbcl-cl-ana.serialization))
9100
9101 (define-public sbcl-cl-ana.makeres
9102 (package
9103 (inherit sbcl-cl-ana-boot0)
9104 (name "sbcl-cl-ana.makeres")
9105 (inputs
9106 `(("alexandria" ,sbcl-alexandria)
9107 ("cl-ana.error-propogation" ,sbcl-cl-ana.error-propogation)
9108 ("cl-ana.file-utils" ,sbcl-cl-ana.file-utils)
9109 ("cl-ana.functional-utils" ,sbcl-cl-ana.functional-utils)
9110 ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
9111 ("cl-ana.hash-table-utils" ,sbcl-cl-ana.hash-table-utils)
9112 ("cl-ana.hdf-utils" ,sbcl-cl-ana.hdf-utils)
9113 ("cl-ana.histogram" ,sbcl-cl-ana.histogram)
9114 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
9115 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
9116 ("cl-ana.map" ,sbcl-cl-ana.map)
9117 ("cl-ana.memoization" ,sbcl-cl-ana.memoization)
9118 ("cl-ana.pathname-utils" ,sbcl-cl-ana.pathname-utils)
9119 ("cl-ana.plotting" ,sbcl-cl-ana.plotting)
9120 ("cl-ana.reusable-table" ,sbcl-cl-ana.reusable-table)
9121 ("cl-ana.serialization" ,sbcl-cl-ana.serialization)
9122 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
9123 ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)
9124 ("cl-ana.table" ,sbcl-cl-ana.table)
9125 ("external-program" ,sbcl-external-program)))
9126 (native-inputs
9127 `(("cl-fad" ,sbcl-cl-fad)))
9128 (arguments
9129 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9130 ((#:asd-file _ "") "makeres/cl-ana.makeres.asd")
9131 ((#:asd-system-name _ #f) "cl-ana.makeres")))))
9132
9133 (define-public cl-ana.makeres
9134 (sbcl-package->cl-source-package sbcl-cl-ana.makeres))
9135
9136 (define-public sbcl-cl-ana.makeres-macro
9137 (package
9138 (inherit sbcl-cl-ana-boot0)
9139 (name "sbcl-cl-ana.makeres-macro")
9140 (inputs
9141 `(("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
9142 ("cl-ana.makeres" ,sbcl-cl-ana.makeres)))
9143 (arguments
9144 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9145 ((#:asd-file _ "") "makeres-macro/cl-ana.makeres-macro.asd")
9146 ((#:asd-system-name _ #f) "cl-ana.makeres-macro")))))
9147
9148 (define-public cl-ana.makeres-macro
9149 (sbcl-package->cl-source-package sbcl-cl-ana.makeres-macro))
9150
9151 (define-public sbcl-cl-ana.makeres-block
9152 (package
9153 (inherit sbcl-cl-ana-boot0)
9154 (name "sbcl-cl-ana.makeres-block")
9155 (inputs
9156 `(("alexandria" ,sbcl-alexandria)
9157 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
9158 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
9159 ("cl-ana.makeres" ,sbcl-cl-ana.makeres)))
9160 (arguments
9161 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9162 ((#:asd-file _ "") "makeres-block/cl-ana.makeres-block.asd")
9163 ((#:asd-system-name _ #f) "cl-ana.makeres-block")))))
9164
9165 (define-public cl-ana.makeres-block
9166 (sbcl-package->cl-source-package sbcl-cl-ana.makeres-block))
9167
9168 (define-public sbcl-cl-ana.makeres-progress
9169 (package
9170 (inherit sbcl-cl-ana-boot0)
9171 (name "sbcl-cl-ana.makeres-progress")
9172 (inputs
9173 `(("alexandria" ,sbcl-alexandria)
9174 ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
9175 ("cl-ana.makeres" ,sbcl-cl-ana.makeres)))
9176 (arguments
9177 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9178 ((#:asd-file _ "") "makeres-progress/cl-ana.makeres-progress.asd")
9179 ((#:asd-system-name _ #f) "cl-ana.makeres-progress")))))
9180
9181 (define-public cl-ana.makeres-progress
9182 (sbcl-package->cl-source-package sbcl-cl-ana.makeres-progress))
9183
9184 (define-public sbcl-cl-ana.makeres-table
9185 (package
9186 (inherit sbcl-cl-ana-boot0)
9187 (name "sbcl-cl-ana.makeres-table")
9188 (inputs
9189 `(("cl-ana.csv-table" ,sbcl-cl-ana.csv-table)
9190 ("cl-ana.hash-table-utils" ,sbcl-cl-ana.hash-table-utils)
9191 ("cl-ana.hdf-table" ,sbcl-cl-ana.hdf-table)
9192 ("cl-ana.hdf-utils" ,sbcl-cl-ana.hdf-utils)
9193 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
9194 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
9195 ("cl-ana.makeres" ,sbcl-cl-ana.makeres)
9196 ("cl-ana.makeres-macro" ,sbcl-cl-ana.makeres-macro)
9197 ("cl-ana.memoization" ,sbcl-cl-ana.memoization)
9198 ("cl-ana.ntuple-table" ,sbcl-cl-ana.ntuple-table)
9199 ("cl-ana.reusable-table" ,sbcl-cl-ana.reusable-table)
9200 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
9201 ("cl-ana.table" ,sbcl-cl-ana.table)))
9202 (native-inputs
9203 `(("cl-fad" ,sbcl-cl-fad)))
9204 (arguments
9205 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9206 ((#:asd-file _ "") "makeres-table/cl-ana.makeres-table.asd")
9207 ((#:asd-system-name _ #f) "cl-ana.makeres-table")))))
9208
9209 (define-public cl-ana.makeres-table
9210 (sbcl-package->cl-source-package sbcl-cl-ana.makeres-table))
9211
9212 (define-public sbcl-cl-ana.makeres-graphviz
9213 (package
9214 (inherit sbcl-cl-ana-boot0)
9215 (name "sbcl-cl-ana.makeres-graphviz")
9216 (inputs
9217 `(("cl-ana.makeres" ,sbcl-cl-ana.makeres)
9218 ("external-program" ,sbcl-external-program)))
9219 (arguments
9220 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9221 ((#:asd-file _ "") "makeres-graphviz/cl-ana.makeres-graphviz.asd")
9222 ((#:asd-system-name _ #f) "cl-ana.makeres-graphviz")))))
9223
9224 (define-public cl-ana.makeres-graphviz
9225 (sbcl-package->cl-source-package sbcl-cl-ana.makeres-graphviz))
9226
9227 (define-public sbcl-cl-ana.makeres-branch
9228 (package
9229 (inherit sbcl-cl-ana-boot0)
9230 (name "sbcl-cl-ana.makeres-branch")
9231 (inputs
9232 `(("alexandria" ,sbcl-alexandria)
9233 ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
9234 ("cl-ana.hash-table-utils" ,sbcl-cl-ana.hash-table-utils)
9235 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
9236 ("cl-ana.map" ,sbcl-cl-ana.map)
9237 ("cl-ana.makeres" ,sbcl-cl-ana.makeres)))
9238 (arguments
9239 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9240 ((#:asd-file _ "") "makeres-branch/cl-ana.makeres-branch.asd")
9241 ((#:asd-system-name _ #f) "cl-ana.makeres-branch")))))
9242
9243 (define-public cl-ana.makeres-branch
9244 (sbcl-package->cl-source-package sbcl-cl-ana.makeres-branch))
9245
9246 (define-public sbcl-cl-ana.makeres-utils
9247 (package
9248 (inherit sbcl-cl-ana-boot0)
9249 (name "sbcl-cl-ana.makeres-utils")
9250 (inputs
9251 `(("alexandria" ,sbcl-alexandria)
9252 ("cl-ana.file-utils" ,sbcl-cl-ana.file-utils)
9253 ("cl-ana.fitting" ,sbcl-cl-ana.fitting)
9254 ("cl-ana.functional-utils" ,sbcl-cl-ana.functional-utils)
9255 ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
9256 ("cl-ana.histogram" ,sbcl-cl-ana.histogram)
9257 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
9258 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
9259 ("cl-ana.makeres" ,sbcl-cl-ana.makeres)
9260 ("cl-ana.map" ,sbcl-cl-ana.map)
9261 ("cl-ana.pathname-utils" ,sbcl-cl-ana.pathname-utils)
9262 ("cl-ana.plotting" ,sbcl-cl-ana.plotting)
9263 ("cl-ana.reusable-table" ,sbcl-cl-ana.reusable-table)
9264 ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
9265 ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)
9266 ("cl-ana.table" ,sbcl-cl-ana.table)))
9267 (native-inputs
9268 `(("cl-fad" ,sbcl-cl-fad)))
9269 (arguments
9270 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9271 ((#:asd-file _ "") "makeres-utils/cl-ana.makeres-utils.asd")
9272 ((#:asd-system-name _ #f) "cl-ana.makeres-utils")))))
9273
9274 (define-public cl-ana.makeres-utils
9275 (sbcl-package->cl-source-package sbcl-cl-ana.makeres-utils))
9276
9277 (define-public sbcl-cl-ana.statistical-learning
9278 (package
9279 (inherit sbcl-cl-ana-boot0)
9280 (name "sbcl-cl-ana.statistical-learning")
9281 (inputs
9282 `(("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
9283 ("cl-ana.functional-utils" ,sbcl-cl-ana.functional-utils)
9284 ("cl-ana.histogram" ,sbcl-cl-ana.histogram)
9285 ("cl-ana.linear-algebra" ,sbcl-cl-ana.linear-algebra)
9286 ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
9287 ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
9288 ("cl-ana.math-functions" ,sbcl-cl-ana.math-functions)
9289 ("cl-ana.map" ,sbcl-cl-ana.map)
9290 ("cl-ana.statistics" ,sbcl-cl-ana.statistics)))
9291 (native-inputs
9292 `(("cl-fad" ,sbcl-cl-fad)))
9293 (arguments
9294 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9295 ((#:asd-file _ "")
9296 "statistical-learning/cl-ana.statistical-learning.asd")
9297 ((#:asd-system-name _ #f) "cl-ana.statistical-learning")))))
9298
9299 (define-public cl-ana.statistical-learning
9300 (sbcl-package->cl-source-package sbcl-cl-ana.statistical-learning))
9301
9302 (define-public sbcl-cl-ana
9303 (package
9304 (inherit sbcl-cl-ana-boot0)
9305 (name "sbcl-cl-ana")
9306 (inputs
9307 `(("cl-ana.binary-tree" ,sbcl-cl-ana.binary-tree)
9308 ("cl-ana.calculus" ,sbcl-cl-ana.calculus)
9309 ("cl-ana.clos-utils" ,sbcl-cl-ana.clos-utils)
9310 ("cl-ana.csv-table" ,sbcl-cl-ana.csv-table)
9311 ("cl-ana.error-propogation" ,sbcl-cl-ana.error-propogation)
9312 ("cl-ana.file-utils" ,sbcl-cl-ana.file-utils)
9313 ("cl-ana.fitting" ,sbcl-cl-ana.fitting)
9314 ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
9315 ("cl-ana.hash-table-utils" ,sbcl-cl-ana.hash-table-utils)
9316 ("cl-ana.hdf-table" ,sbcl-cl-ana.hdf-table)
9317 ("cl-ana.histogram" ,sbcl-cl-ana.histogram)
9318 ("cl-ana.int-char" ,sbcl-cl-ana.int-char)
9319 ("cl-ana.linear-algebra" ,sbcl-cl-ana.linear-algebra)
9320 ("cl-ana.lorentz" ,sbcl-cl-ana.lorentz)
9321 ("cl-ana.map" ,sbcl-cl-ana.map)
9322 ("cl-ana.makeres" ,sbcl-cl-ana.makeres)
9323 ("cl-ana.makeres-block" ,sbcl-cl-ana.makeres-block)
9324 ("cl-ana.makeres-branch" ,sbcl-cl-ana.makeres-branch)
9325 ("cl-ana.makeres-graphviz" ,sbcl-cl-ana.makeres-graphviz)
9326 ("cl-ana.makeres-macro" ,sbcl-cl-ana.makeres-macro)
9327 ("cl-ana.makeres-progress" ,sbcl-cl-ana.makeres-progress)
9328 ("cl-ana.makeres-table" ,sbcl-cl-ana.makeres-table)
9329 ("cl-ana.makeres-utils" ,sbcl-cl-ana.makeres-utils)
9330 ("cl-ana.math-functions" ,sbcl-cl-ana.math-functions)
9331 ("cl-ana.ntuple-table" ,sbcl-cl-ana.ntuple-table)
9332 ("cl-ana.package-utils" ,sbcl-cl-ana.package-utils)
9333 ("cl-ana.pathname-utils" ,sbcl-cl-ana.pathname-utils)
9334 ("cl-ana.plotting" ,sbcl-cl-ana.plotting)
9335 ("cl-ana.quantity" ,sbcl-cl-ana.quantity)
9336 ("cl-ana.reusable-table" ,sbcl-cl-ana.reusable-table)
9337 ("cl-ana.serialization" ,sbcl-cl-ana.serialization)
9338 ("cl-ana.statistics" ,sbcl-cl-ana.statistics)
9339 ("cl-ana.statistical-learning" ,sbcl-cl-ana.statistical-learning)
9340 ("cl-ana.table" ,sbcl-cl-ana.table)
9341 ("cl-ana.table-utils" ,sbcl-cl-ana.table-utils)
9342 ("cl-ana.table-viewing" ,sbcl-cl-ana.table-viewing)
9343 ("cl-ana.tensor" ,sbcl-cl-ana.tensor)
9344 ("libffi" ,libffi)))
9345 (native-inputs
9346 `(("cl-fad" ,sbcl-cl-fad)))
9347 (arguments
9348 (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
9349 ((#:asd-file _ "") "cl-ana.asd")
9350 ((#:asd-system-name _ #f) "cl-ana")))))
9351
9352 (define-public cl-ana
9353 (sbcl-package->cl-source-package sbcl-cl-ana))
9354
9355 (define-public sbcl-archive
9356 (let ((commit "631271c091ed02994bec3980cb288a2cf32c7cdc")
9357 (revision "1"))
9358 (package
9359 (name "sbcl-archive")
9360 (version (git-version "0.9" revision commit))
9361 (source (origin
9362 (method git-fetch)
9363 (uri (git-reference
9364 (url "https://github.com/sharplispers/archive.git")
9365 (commit commit)))
9366 (file-name (git-file-name name version))
9367 (sha256
9368 (base32
9369 "0pvsc9fmybx7rxd0kmzq4shi6hszdpwdc1sfy7jwyfxf8n3hnv4p"))))
9370 (build-system asdf-build-system/sbcl)
9371 (inputs
9372 `(("cl-fad" ,sbcl-cl-fad)
9373 ("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
9374 (synopsis "Common Lisp library for tar and cpio archives")
9375 (description
9376 "This is a Common Lisp library to read and write disk-based file
9377 archives such as those generated by the tar and cpio programs on Unix.")
9378 (home-page "https://github.com/sharplispers/archive")
9379 (license license:bsd-3))))
9380
9381 (define-public cl-archive
9382 (sbcl-package->cl-source-package sbcl-archive))
9383
9384 (define-public ecl-archive
9385 (sbcl-package->ecl-package sbcl-archive))
9386
9387 (define-public sbcl-misc-extensions
9388 (let ((commit "101c05112bf2f1e1bbf527396822d2f50ca6327a")
9389 (revision "1"))
9390 (package
9391 (name "sbcl-misc-extensions")
9392 (version (git-version "3.3" revision commit))
9393 (source
9394 (origin
9395 (method git-fetch)
9396 (uri (git-reference
9397 (url "https://gitlab.common-lisp.net/misc-extensions/devel.git")
9398 (commit commit)))
9399 (file-name (git-file-name name version))
9400 (sha256
9401 (base32
9402 "0gz5f4p70qzilnxsnf5lih2n9m4wjcw8hlw4w8mpn9jyhyppyyv0"))))
9403 (build-system asdf-build-system/sbcl)
9404 (synopsis "Collection of small macros and extensions for Common Lisp")
9405 (description
9406 "This project is intended as a catchall for small, general-purpose
9407 extensions to Common Lisp. It contains:
9408
9409 @itemize
9410 @item @code{new-let}, a macro that combines and generalizes @code{let},
9411 @code{let*} and @code{multiple-value-bind},
9412 @item @code{gmap}, an iteration macro that generalizes @code{map}.
9413 @end itemize\n")
9414 (home-page "https://common-lisp.net/project/misc-extensions/")
9415 (license license:public-domain))))
9416
9417 (define-public cl-misc-extensions
9418 (sbcl-package->cl-source-package sbcl-misc-extensions))
9419
9420 (define-public ecl-misc-extensions
9421 (sbcl-package->ecl-package sbcl-misc-extensions))
9422
9423 (define-public sbcl-mt19937
9424 (package
9425 (name "sbcl-mt19937")
9426 (version "1.1")
9427 (source
9428 (origin
9429 (method url-fetch)
9430 (uri (string-append "https://common-lisp.net/project/asdf-packaging/"
9431 "mt19937-latest.tar.gz"))
9432 (sha256
9433 (base32
9434 "1iw636b0iw5ygkv02y8i41lh7xj0acglv0hg5agryn0zzi2nf1xv"))))
9435 (build-system asdf-build-system/sbcl)
9436 (synopsis "Mersenne Twister pseudo-random number generator")
9437 (description
9438 "MT19937 is a portable Mersenne Twister pseudo-random number generator
9439 for Common Lisp.")
9440 (home-page "https://www.cliki.net/mt19937")
9441 (license license:public-domain)))
9442
9443 (define-public cl-mt19937
9444 (sbcl-package->cl-source-package sbcl-mt19937))
9445
9446 (define-public ecl-mt19937
9447 (sbcl-package->ecl-package sbcl-mt19937))
9448
9449 (define-public sbcl-fset
9450 (let ((commit "6d2f9ded8934d2b42f2571a0ba5bda091037d852")
9451 (revision "1"))
9452 (package
9453 (name "sbcl-fset")
9454 (version (git-version "1.3.2" revision commit))
9455 (source
9456 (origin
9457 (method git-fetch)
9458 (uri (git-reference
9459 (url "https://github.com/slburson/fset")
9460 (commit commit)))
9461 (file-name (git-file-name name version))
9462 (sha256
9463 (base32
9464 "127acblwrbqicx47h6sgvknz1cqyfn8p4xkhkn1m7hxh8w5gk1zy"))
9465 (snippet '(begin
9466 ;; Remove obsolete copy of system definition.
9467 (delete-file "Code/fset.asd")
9468 #t))))
9469 (build-system asdf-build-system/sbcl)
9470 (inputs
9471 `(("misc-extensions" ,sbcl-misc-extensions)
9472 ("mt19937" ,sbcl-mt19937)
9473 ("named-readtables" ,sbcl-named-readtables)))
9474 (synopsis "Functional set-theoretic collections library")
9475 (description
9476 "FSet is a functional set-theoretic collections library for Common Lisp.
9477 Functional means that all update operations return a new collection rather than
9478 modifying an existing one in place. Set-theoretic means that collections may
9479 be nested arbitrarily with no additional programmer effort; for instance, sets
9480 may contain sets, maps may be keyed by sets, etc.")
9481 (home-page "https://common-lisp.net/project/fset/Site/index.html")
9482 (license license:llgpl))))
9483
9484 (define-public cl-fset
9485 (sbcl-package->cl-source-package sbcl-fset))
9486
9487 (define-public sbcl-cl-cont
9488 (let ((commit "fc1fa7e6eb64894fdca13e688e6015fad5290d2a")
9489 (revision "1"))
9490 (package
9491 (name "sbcl-cl-cont")
9492 (version (git-version "0.3.8" revision commit))
9493 (source
9494 (origin
9495 (method git-fetch)
9496 (uri (git-reference
9497 (url "https://gitlab.common-lisp.net/cl-cont/cl-cont.git")
9498 (commit commit)))
9499 (file-name (git-file-name name version))
9500 (sha256
9501 (base32
9502 "1zf8zvb0i6jm3hhfks4w74hibm6avgc6f9s1qwgjrn2bcik8lrvz"))))
9503 (build-system asdf-build-system/sbcl)
9504 (inputs
9505 `(("alexandria" ,sbcl-alexandria)
9506 ("closer-mop" ,sbcl-closer-mop)))
9507 (native-inputs
9508 `(("rt" ,sbcl-rt)))
9509 (synopsis "Delimited continuations for Common Lisp")
9510 (description
9511 "This is a library that implements delimited continuations by
9512 transforming Common Lisp code to continuation passing style.")
9513 (home-page "https://common-lisp.net/project/cl-cont/")
9514 (license license:llgpl))))
9515
9516 (define-public cl-cont
9517 (sbcl-package->cl-source-package sbcl-cl-cont))
9518
9519 (define-public ecl-cl-cont
9520 (sbcl-package->ecl-package sbcl-cl-cont))
9521
9522 (define-public sbcl-cl-coroutine
9523 (let ((commit "de098f8d5debd8b14ef6864b5bdcbbf5ddbcfd72")
9524 (revision "1"))
9525 (package
9526 (name "sbcl-cl-coroutine")
9527 (version (git-version "0.1" revision commit))
9528 (source
9529 (origin
9530 (method git-fetch)
9531 (uri (git-reference
9532 (url "https://github.com/takagi/cl-coroutine.git")
9533 (commit commit)))
9534 (file-name (git-file-name name version))
9535 (sha256
9536 (base32
9537 "1cqdhdjxffgfs116l1swjlsmcbly0xgcgrckvaajd566idj9yj4l"))))
9538 (build-system asdf-build-system/sbcl)
9539 (inputs
9540 `(("alexandria" ,sbcl-alexandria)
9541 ("cl-cont" ,sbcl-cl-cont)))
9542 (native-inputs
9543 `(("prove" ,sbcl-prove)))
9544 (arguments
9545 `(;; TODO: Fix the tests. They fail with:
9546 ;; "Component CL-COROUTINE-ASD::CL-COROUTINE-TEST not found"
9547 #:tests? #f
9548 #:phases
9549 (modify-phases %standard-phases
9550 (add-after 'unpack 'fix-tests
9551 (lambda _
9552 (substitute* "cl-coroutine-test.asd"
9553 (("cl-test-more")
9554 "prove"))
9555 #t)))))
9556 (synopsis "Coroutine library for Common Lisp")
9557 (description
9558 "This is a coroutine library for Common Lisp implemented using the
9559 continuations of the @code{cl-cont} library.")
9560 (home-page "https://github.com/takagi/cl-coroutine")
9561 (license license:llgpl))))
9562
9563 (define-public cl-coroutine
9564 (sbcl-package->cl-source-package sbcl-cl-coroutine))
9565
9566 (define-public ecl-cl-coroutine
9567 (sbcl-package->ecl-package sbcl-cl-coroutine))
9568
9569 (define-public sbcl-vom
9570 (let ((commit "1aeafeb5b74c53741b79497e0ef4acf85c92ff24")
9571 (revision "1"))
9572 (package
9573 (name "sbcl-vom")
9574 (version (git-version "0.1.4" revision commit))
9575 (source
9576 (origin
9577 (method git-fetch)
9578 (uri (git-reference
9579 (url "https://github.com/orthecreedence/vom.git")
9580 (commit commit)))
9581 (file-name (git-file-name name version))
9582 (sha256
9583 (base32
9584 "0536kppj76ax4lrxhv42npkfjsmx45km2g439vf9jmw3apinz9cy"))))
9585 (build-system asdf-build-system/sbcl)
9586 (synopsis "Tiny logging utility for Common Lisp")
9587 (description
9588 "Vom is a logging library for Common Lisp. It's goal is to be useful
9589 and small. It does not provide a lot of features as other loggers do, but
9590 has a small codebase that's easy to understand and use.")
9591 (home-page "https://github.com/orthecreedence/vom")
9592 (license license:expat))))
9593
9594 (define-public cl-vom
9595 (sbcl-package->cl-source-package sbcl-vom))
9596
9597 (define-public ecl-vom
9598 (sbcl-package->ecl-package sbcl-vom))
9599
9600 (define-public sbcl-cl-libuv
9601 (let ((commit "32100c023c518038d0670a103eaa4d50dd785d29")
9602 (revision "1"))
9603 (package
9604 (name "sbcl-cl-libuv")
9605 (version (git-version "0.1.6" revision commit))
9606 (source
9607 (origin
9608 (method git-fetch)
9609 (uri (git-reference
9610 (url "https://github.com/orthecreedence/cl-libuv.git")
9611 (commit commit)))
9612 (file-name (git-file-name name version))
9613 (sha256
9614 (base32
9615 "1kwix4si8a8hza34ab2k7whrh7z0yrmx39v2wc3qblv9m244jkh1"))))
9616 (build-system asdf-build-system/sbcl)
9617 (inputs
9618 `(("alexandria" ,sbcl-alexandria)
9619 ("cffi" ,sbcl-cffi)
9620 ("cffi-grovel" ,sbcl-cffi-grovel)
9621 ("libuv" ,libuv)))
9622 (arguments
9623 `(#:phases
9624 (modify-phases %standard-phases
9625 (add-after 'unpack 'fix-paths
9626 (lambda* (#:key inputs #:allow-other-keys)
9627 (substitute* "lib.lisp"
9628 (("/usr/lib/libuv.so")
9629 (string-append (assoc-ref inputs "libuv")
9630 "/lib/libuv.so")))
9631 #t))
9632 (add-after 'fix-paths 'fix-system-definition
9633 (lambda _
9634 (substitute* "cl-libuv.asd"
9635 (("#:cffi #:alexandria")
9636 "#:cffi #:cffi-grovel #:alexandria"))
9637 #t)))))
9638 (synopsis "Common Lisp bindings to libuv")
9639 (description
9640 "This library provides low-level libuv bindings for Common Lisp.")
9641 (home-page "https://github.com/orthecreedence/cl-libuv")
9642 (license license:expat))))
9643
9644 (define-public cl-libuv
9645 (sbcl-package->cl-source-package sbcl-cl-libuv))
9646
9647 (define-public ecl-cl-libuv
9648 (sbcl-package->ecl-package sbcl-cl-libuv))
9649
9650 (define-public sbcl-cl-async-base
9651 (let ((commit "f6423e44404a44434d803605e0d2e17199158e28")
9652 (revision "1"))
9653 (package
9654 (name "sbcl-cl-async-base")
9655 (version (git-version "0.6.1" revision commit))
9656 (source
9657 (origin
9658 (method git-fetch)
9659 (uri (git-reference
9660 (url "https://github.com/orthecreedence/cl-async.git")
9661 (commit commit)))
9662 (file-name (git-file-name name version))
9663 (sha256
9664 (base32
9665 "11xi9dxb8mjgwzrkj88i0xkgk26z9w9ddxzbv6xsvfc1d4x5cf4x"))))
9666 (build-system asdf-build-system/sbcl)
9667 (inputs
9668 `(("bordeaux-threads" ,sbcl-bordeaux-threads)
9669 ("cffi" ,sbcl-cffi)
9670 ("cl-libuv" ,sbcl-cl-libuv)))
9671 (arguments
9672 `(#:asd-file "cl-async.asd"))
9673 (synopsis "Base system for cl-async")
9674 (description
9675 "Cl-async is a library for general purpose, non-blocking programming in
9676 Common Lisp. It uses the libuv library as backend.")
9677 (home-page "https://orthecreedence.github.io/cl-async/")
9678 (license license:expat))))
9679
9680 (define-public cl-async-base
9681 (sbcl-package->cl-source-package sbcl-cl-async-base))
9682
9683 (define-public ecl-cl-async-base
9684 (sbcl-package->ecl-package sbcl-cl-async-base))
9685
9686 (define-public sbcl-cl-async-util
9687 (package
9688 (inherit sbcl-cl-async-base)
9689 (name "sbcl-cl-async-util")
9690 (inputs
9691 `(("bordeaux-threads" ,sbcl-bordeaux-threads)
9692 ("cffi" ,sbcl-cffi)
9693 ("cl-async-base" ,sbcl-cl-async-base)
9694 ("cl-libuv" ,sbcl-cl-libuv)
9695 ("cl-ppcre" ,sbcl-cl-ppcre)
9696 ("fast-io" ,sbcl-fast-io)
9697 ("vom" ,sbcl-vom)))
9698 (synopsis "Internal utilities for cl-async")))
9699
9700 (define-public cl-async-util
9701 (sbcl-package->cl-source-package sbcl-cl-async-util))
9702
9703 (define-public ecl-cl-async-util
9704 (sbcl-package->ecl-package sbcl-cl-async-util))
9705
9706 (define-public sbcl-cl-async
9707 (package
9708 (inherit sbcl-cl-async-base)
9709 (name "sbcl-cl-async")
9710 (inputs
9711 `(("babel" ,sbcl-babel)
9712 ("cffi" ,sbcl-cffi)
9713 ("cl-async-base" ,sbcl-cl-async-base)
9714 ("cl-async-util" ,sbcl-cl-async-util)
9715 ("cl-libuv" ,sbcl-cl-libuv)
9716 ("cl-ppcre" ,sbcl-cl-ppcre)
9717 ("static-vectors" ,sbcl-static-vectors)
9718 ("trivial-features" ,sbcl-trivial-features)
9719 ("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
9720 (synopsis "Asynchronous operations for Common Lisp")))
9721
9722 (define-public cl-async
9723 (sbcl-package->cl-source-package sbcl-cl-async))
9724
9725 (define-public ecl-cl-async
9726 (sbcl-package->ecl-package sbcl-cl-async))
9727
9728 (define-public sbcl-cl-async-repl
9729 (package
9730 (inherit sbcl-cl-async-base)
9731 (name "sbcl-cl-async-repl")
9732 (inputs
9733 `(("bordeaux-threads" ,sbcl-bordeaux-threads)
9734 ("cl-async" ,sbcl-cl-async)))
9735 (arguments
9736 (substitute-keyword-arguments (package-arguments sbcl-cl-async-base)
9737 ((#:asd-file _ "") "cl-async-repl.asd")))
9738 (synopsis "REPL integration for cl-async")))
9739
9740 (define-public cl-async-repl
9741 (sbcl-package->cl-source-package sbcl-cl-async-repl))
9742
9743 (define-public ecl-cl-async-repl
9744 (sbcl-package->ecl-package sbcl-cl-async-repl))
9745
9746 (define-public sbcl-cl-async-ssl
9747 (package
9748 (inherit sbcl-cl-async-base)
9749 (name "sbcl-cl-async-ssl")
9750 (inputs
9751 `(("cffi" ,sbcl-cffi)
9752 ("cl-async" ,sbcl-cl-async)
9753 ("openssl" ,openssl)
9754 ("vom" ,sbcl-vom)))
9755 (arguments
9756 (substitute-keyword-arguments (package-arguments sbcl-cl-async-base)
9757 ((#:asd-file _ "") "cl-async-ssl.asd")
9758 ((#:phases phases '%standard-phases)
9759 `(modify-phases ,phases
9760 (add-after 'unpack 'fix-paths
9761 (lambda* (#:key inputs #:allow-other-keys)
9762 (substitute* "src/ssl/package.lisp"
9763 (("libcrypto\\.so")
9764 (string-append (assoc-ref inputs "openssl")
9765 "/lib/libcrypto.so"))
9766 (("libssl\\.so")
9767 (string-append (assoc-ref inputs "openssl")
9768 "/lib/libssl.so")))
9769 #t))))))
9770 (synopsis "SSL wrapper around cl-async socket implementation")))
9771
9772 (define-public cl-async-ssl
9773 (sbcl-package->cl-source-package sbcl-cl-async-ssl))
9774
9775 (define-public ecl-cl-async-ssl
9776 (sbcl-package->ecl-package sbcl-cl-async-ssl))
9777
9778 (define-public sbcl-blackbird
9779 (let ((commit "d361f81c1411dec07f6c2dcb11c78f7aea9aaca8")
9780 (revision "1"))
9781 (package
9782 (name "sbcl-blackbird")
9783 (version (git-version "0.5.2" revision commit))
9784 (source
9785 (origin
9786 (method git-fetch)
9787 (uri (git-reference
9788 (url "https://github.com/orthecreedence/blackbird.git")
9789 (commit commit)))
9790 (file-name (git-file-name name version))
9791 (sha256
9792 (base32
9793 "0xfds5yaya64arzr7w1x38karyz11swzbhxx1afldpradj9dh19c"))))
9794 (build-system asdf-build-system/sbcl)
9795 (inputs
9796 `(("vom" ,sbcl-vom)))
9797 (native-inputs
9798 `(("cl-async" ,sbcl-cl-async)
9799 ("fiveam" ,sbcl-fiveam)))
9800 (synopsis "Promise implementation for Common Lisp")
9801 (description
9802 "This is a standalone promise implementation for Common Lisp. It is
9803 the successor to the now-deprecated cl-async-future project.")
9804 (home-page "https://orthecreedence.github.io/blackbird/")
9805 (license license:expat))))
9806
9807 (define-public cl-blackbird
9808 (sbcl-package->cl-source-package sbcl-blackbird))
9809
9810 (define-public ecl-blackbird
9811 (sbcl-package->ecl-package sbcl-blackbird))
9812
9813 (define-public sbcl-cl-async-future
9814 (let ((commit "ee36c22a69a9516407458d2ed8b475f1fc473959")
9815 (revision "1"))
9816 (package
9817 (name "sbcl-cl-async-future")
9818 (version (git-version "0.4.4.1" revision commit))
9819 (source
9820 (origin
9821 (method git-fetch)
9822 (uri (git-reference
9823 (url "https://github.com/orthecreedence/cl-async-future.git")
9824 (commit commit)))
9825 (file-name (git-file-name name version))
9826 (sha256
9827 (base32
9828 "0z0sc7qlzzxk99f4l26zp6rai9kv0kj0f599sxai5s44p17zbbvh"))))
9829 (build-system asdf-build-system/sbcl)
9830 (inputs
9831 `(("blackbird" ,sbcl-blackbird)))
9832 (native-inputs
9833 `(("cl-async" ,sbcl-cl-async)
9834 ("eos" ,sbcl-eos)))
9835 (synopsis "Futures implementation for Common Lisp")
9836 (description
9837 "This is futures implementation for Common Lisp. It plugs in nicely
9838 to cl-async.")
9839 (home-page "https://orthecreedence.github.io/cl-async/future")
9840 (license license:expat))))
9841
9842 (define-public cl-async-future
9843 (sbcl-package->cl-source-package sbcl-cl-async-future))
9844
9845 (define-public ecl-cl-async-future
9846 (sbcl-package->ecl-package sbcl-cl-async-future))
9847
9848 (define-public sbcl-green-threads
9849 (let ((commit "fff5ebecb441a37e5c511773716aafd84a3c5840")
9850 (revision "1"))
9851 (package
9852 (name "sbcl-green-threads")
9853 (version (git-version "0.3" revision commit))
9854 (source
9855 (origin
9856 (method git-fetch)
9857 (uri (git-reference
9858 (url "https://github.com/thezerobit/green-threads.git")
9859 (commit commit)))
9860 (file-name (git-file-name name version))
9861 (sha256
9862 (base32
9863 "1czw7nr0dwfps76h8hjvglk1wdh53yqbfbvv30whwbgqx33iippz"))))
9864 (build-system asdf-build-system/sbcl)
9865 (inputs
9866 `(("cl-async-future" ,sbcl-cl-async-future)
9867 ("cl-cont" ,sbcl-cl-cont)))
9868 (native-inputs
9869 `(("prove" ,sbcl-prove)))
9870 (arguments
9871 `(;; TODO: Fix the tests. They fail with:
9872 ;; "The function BLACKBIRD::PROMISE-VALUES is undefined"
9873 #:tests? #f
9874 #:phases
9875 (modify-phases %standard-phases
9876 (add-after 'unpack 'fix-tests
9877 (lambda _
9878 (substitute* "green-threads-test.asd"
9879 (("cl-test-more")
9880 "prove"))
9881 #t)))))
9882 (synopsis "Cooperative multitasking library for Common Lisp")
9883 (description
9884 "This library allows for cooperative multitasking with help of cl-cont
9885 for continuations. It tries to mimic the API of bordeaux-threads as much as
9886 possible.")
9887 (home-page "https://github.com/thezerobit/green-threads")
9888 (license license:bsd-3))))
9889
9890 (define-public cl-green-threads
9891 (sbcl-package->cl-source-package sbcl-green-threads))
9892
9893 (define-public ecl-green-threads
9894 (sbcl-package->ecl-package sbcl-green-threads))
9895
9896 (define-public sbcl-cl-base32
9897 (let ((commit "8cdee06fab397f7b0a19583b57e7f0c98405be85")
9898 (revision "1"))
9899 (package
9900 (name "sbcl-cl-base32")
9901 (version (git-version "0.1" revision commit))
9902 (source
9903 (origin
9904 (method git-fetch)
9905 (uri (git-reference
9906 (url "https://github.com/hargettp/cl-base32.git")
9907 (commit commit)))
9908 (file-name (git-file-name name version))
9909 (sha256
9910 (base32 "17jrng8jb05d64ggyd11hp308c2fl5drvf9g175blgrkkl8l4mf8"))))
9911 (build-system asdf-build-system/sbcl)
9912 (native-inputs
9913 `(("lisp-unit" ,sbcl-lisp-unit)))
9914 (synopsis "Common Lisp library for base32 encoding and decoding")
9915 (description
9916 "This package provides functions for base32 encoding and decoding as
9917 defined in RFC4648.")
9918 (home-page "https://github.com/hargettp/cl-base32")
9919 (license license:expat))))
9920
9921 (define-public cl-base32
9922 (sbcl-package->cl-source-package sbcl-cl-base32))
9923
9924 (define-public ecl-cl-base32
9925 (sbcl-package->ecl-package sbcl-cl-base32))
9926
9927 (define-public sbcl-cl-z85
9928 (let ((commit "85b3951a9cfa2603acb6aee15567684f9a108098")
9929 (revision "1"))
9930 (package
9931 (name "sbcl-cl-z85")
9932 (version (git-version "1.0" revision commit))
9933 (source
9934 (origin
9935 (method git-fetch)
9936 (uri (git-reference
9937 (url "https://github.com/glv2/cl-z85.git")
9938 (commit commit)))
9939 (file-name (git-file-name name version))
9940 (sha256
9941 (base32 "0r27pidjaxbm7k1rr90nnajwl5xm2kp65g1fv0fva17lzy45z1mp"))))
9942 (build-system asdf-build-system/sbcl)
9943 (native-inputs
9944 `(("cl-octet-streams" ,sbcl-cl-octet-streams)
9945 ("fiveam" ,sbcl-fiveam)))
9946 (synopsis "Common Lisp library for Z85 encoding and decoding")
9947 (description
9948 "This package provides functions to encode or decode byte vectors or
9949 byte streams using the Z85 format, which is a base-85 encoding used by
9950 ZeroMQ.")
9951 (home-page "https://github.com/glv2/cl-z85")
9952 (license license:gpl3+))))
9953
9954 (define-public cl-z85
9955 (sbcl-package->cl-source-package sbcl-cl-z85))
9956
9957 (define-public ecl-cl-z85
9958 (sbcl-package->ecl-package sbcl-cl-z85))
9959
9960 (define-public sbcl-ltk
9961 (package
9962 (name "sbcl-ltk")
9963 (version "0.992")
9964 (source
9965 (origin
9966 (method git-fetch)
9967 (uri (git-reference
9968 (url "https://github.com/herth/ltk.git")
9969 (commit version)))
9970 (file-name (git-file-name name version))
9971 (sha256
9972 (base32 "13l2q4mskzilya9xh5wy2xvy30lwn104bd8wrq6ifds56r82iy3x"))))
9973 (build-system asdf-build-system/sbcl)
9974 (inputs
9975 `(("imagemagick" ,imagemagick)
9976 ("tk" ,tk)))
9977 (arguments
9978 `(#:asd-file "ltk/ltk.asd"
9979 #:tests? #f
9980 #:phases (modify-phases %standard-phases
9981 (add-after 'unpack 'fix-paths
9982 (lambda* (#:key inputs #:allow-other-keys)
9983 (substitute* "ltk/ltk.lisp"
9984 (("#-freebsd \"wish\"")
9985 (string-append "#-freebsd \""
9986 (assoc-ref inputs "tk")
9987 "/bin/wish\""))
9988 (("do-execute \"convert\"")
9989 (string-append "do-execute \""
9990 (assoc-ref inputs "imagemagick")
9991 "/bin/convert\"")))
9992 #t)))))
9993 (synopsis "Common Lisp bindings for the Tk GUI toolkit")
9994 (description
9995 "LTK is a Common Lisp binding for the Tk graphics toolkit. It is written
9996 in pure Common Lisp and does not require any Tk knowledge for its usage.")
9997 (home-page "http://www.peter-herth.de/ltk/")
9998 (license license:llgpl)))
9999
10000 (define-public cl-ltk
10001 (sbcl-package->cl-source-package sbcl-ltk))
10002
10003 (define-public ecl-ltk
10004 (sbcl-package->ecl-package sbcl-ltk))
10005
10006 (define-public sbcl-ltk-mw
10007 (package
10008 (inherit sbcl-ltk)
10009 (name "sbcl-ltk-mw")
10010 (inputs
10011 `(("ltk" ,sbcl-ltk)))
10012 (arguments
10013 (substitute-keyword-arguments (package-arguments sbcl-ltk)
10014 ((#:asd-file _) "ltk/ltk-mw.asd")
10015 ((#:phases _) '%standard-phases)))
10016 (synopsis "Extra widgets for LTK")
10017 (description
10018 "This is a collection of higher-level widgets built on top of LTK.")))
10019
10020 (define-public cl-ltk-mw
10021 (sbcl-package->cl-source-package sbcl-ltk-mw))
10022
10023 (define-public ecl-ltk-mw
10024 (sbcl-package->ecl-package sbcl-ltk-mw))
10025
10026 (define-public sbcl-ltk-remote
10027 (package
10028 (inherit sbcl-ltk)
10029 (name "sbcl-ltk-remote")
10030 (inputs
10031 `(("ltk" ,sbcl-ltk)))
10032 (arguments
10033 (substitute-keyword-arguments (package-arguments sbcl-ltk)
10034 ((#:asd-file _) "ltk/ltk-remote.asd")
10035 ((#:phases _) '%standard-phases)))
10036 (synopsis "Remote GUI support for LTK")
10037 (description
10038 "This LTK extension allows the GUI to be displayed on a computer different
10039 from the one running the Lisp program by using a TCP connection.")))
10040
10041 (define-public cl-ltk-remote
10042 (sbcl-package->cl-source-package sbcl-ltk-remote))
10043
10044 (define-public sbcl-cl-lex
10045 (let ((commit "f2dbbe25ef553005fb402d9a6203180c3fa1093b")
10046 (revision "1"))
10047 (package
10048 (name "sbcl-cl-lex")
10049 (version (git-version "1.1.3" revision commit))
10050 (source
10051 (origin
10052 (method git-fetch)
10053 (uri (git-reference
10054 (url "https://github.com/djr7C4/cl-lex.git")
10055 (commit commit)))
10056 (file-name (git-file-name name version))
10057 (sha256
10058 (base32 "1kg50f76bfpfxcv4dfivq1n9a0xlsra2ajb0vd68lxwgbidgyc2y"))))
10059 (build-system asdf-build-system/sbcl)
10060 (inputs
10061 `(("cl-ppcre" ,sbcl-cl-ppcre)))
10062 (synopsis "Common Lisp macros for generating lexical analyzers")
10063 (description
10064 "This is a Common Lisp library providing a set of macros for generating
10065 lexical analyzers automatically. The lexers generated using @code{cl-lex} can
10066 be used with @code{cl-yacc}.")
10067 (home-page "https://github.com/djr7C4/cl-lex")
10068 (license license:gpl3))))
10069
10070 (define-public cl-lex
10071 (sbcl-package->cl-source-package sbcl-cl-lex))
10072
10073 (define-public ecl-cl-lex
10074 (sbcl-package->ecl-package sbcl-cl-lex))
10075
10076 (define-public sbcl-clunit2
10077 (let ((commit "5e28343734eb9b7aee39306a614af92c1062d50b")
10078 (revision "1"))
10079 (package
10080 (name "sbcl-clunit2")
10081 (version (git-version "0.2.4" revision commit))
10082 (source
10083 (origin
10084 (method git-fetch)
10085 (uri (git-reference
10086 (url "https://notabug.org/cage/clunit2.git")
10087 (commit commit)))
10088 (file-name (git-file-name name version))
10089 (sha256
10090 (base32 "1ngiapfki6nm8a555mzhb5p7ch79i3w665za5bmb5j7q34fy80vw"))))
10091 (build-system asdf-build-system/sbcl)
10092 (synopsis "Unit testing framework for Common Lisp")
10093 (description
10094 "CLUnit is a Common Lisp unit testing framework. It is designed to be
10095 easy to use so that you can quickly start testing.")
10096 (home-page "https://notabug.org/cage/clunit2")
10097 (license license:expat))))
10098
10099 (define-public cl-clunit2
10100 (sbcl-package->cl-source-package sbcl-clunit2))
10101
10102 (define-public ecl-clunit2
10103 (sbcl-package->ecl-package sbcl-clunit2))
10104
10105 (define-public sbcl-cl-colors2
10106 (let ((commit "795aedee593b095fecde574bd999b520dd03ed24")
10107 (revision "1"))
10108 (package
10109 (name "sbcl-cl-colors2")
10110 (version (git-version "0.2.1" revision commit))
10111 (source
10112 (origin
10113 (method git-fetch)
10114 (uri (git-reference
10115 (url "https://notabug.org/cage/cl-colors2.git")
10116 (commit commit)))
10117 (file-name (git-file-name name version))
10118 (sha256
10119 (base32 "0hlyf4h5chkjdp9armla5w4kw5acikk159sym7y8c4jbjp9x47ih"))))
10120 (build-system asdf-build-system/sbcl)
10121 (native-inputs
10122 `(("clunit2" ,sbcl-clunit2)))
10123 (inputs
10124 `(("alexandria" ,sbcl-alexandria)
10125 ("cl-ppcre" ,sbcl-cl-ppcre)))
10126 (synopsis "Color library for Common Lisp")
10127 (description
10128 "This is a very simple color library for Common Lisp, providing:
10129
10130 @itemize
10131 @item Types for representing colors in HSV and RGB spaces.
10132 @item Simple conversion functions between the above types (and also
10133 hexadecimal representation for RGB).
10134 @item Some predefined colors (currently X11 color names -- of course
10135 the library does not depend on X11).
10136 @end itemize\n")
10137 (home-page "https://notabug.org/cage/cl-colors2")
10138 (license license:boost1.0))))
10139
10140 (define-public cl-colors2
10141 (sbcl-package->cl-source-package sbcl-cl-colors2))
10142
10143 (define-public ecl-cl-colors2
10144 (sbcl-package->ecl-package sbcl-cl-colors2))
10145
10146 (define-public sbcl-cl-jpeg
10147 (let ((commit "ec557038128df6895fbfb743bfe8faf8ec2534af")
10148 (revision "1"))
10149 (package
10150 (name "sbcl-cl-jpeg")
10151 (version (git-version "2.8" revision commit))
10152 (source
10153 (origin
10154 (method git-fetch)
10155 (uri (git-reference
10156 (url "https://github.com/sharplispers/cl-jpeg.git")
10157 (commit commit)))
10158 (file-name (git-file-name name version))
10159 (sha256
10160 (base32 "1bkkiqz8fqldlj1wbmrccjsvxcwj98h6s4b6gslr3cg2wmdv5xmy"))))
10161 (build-system asdf-build-system/sbcl)
10162 (synopsis "JPEG image library for Common Lisp")
10163 (description
10164 "This is a baseline JPEG codec written in Common Lisp. It can be used
10165 for reading and writing JPEG image files.")
10166 (home-page "https://github.com/sharplispers/cl-jpeg")
10167 (license license:bsd-3))))
10168
10169 (define-public cl-jpeg
10170 (sbcl-package->cl-source-package sbcl-cl-jpeg))
10171
10172 (define-public ecl-cl-jpeg
10173 (sbcl-package->ecl-package sbcl-cl-jpeg))
10174
10175 (define-public sbcl-nodgui
10176 (let ((commit "bc59ed9b787dfc9e68ae3bd7f7e8507c5c619212")
10177 (revision "1"))
10178 (package
10179 (name "sbcl-nodgui")
10180 (version (git-version "0.0.5" revision commit))
10181 (source
10182 (origin
10183 (method git-fetch)
10184 (uri (git-reference
10185 (url "https://notabug.org/cage/nodgui.git")
10186 (commit commit)))
10187 (file-name (git-file-name name version))
10188 (sha256
10189 (base32 "0xx0dk54d882i598ydnwmy7mnfk0b7vib3ddsgpqxhjck1rwq8l8"))))
10190 (build-system asdf-build-system/sbcl)
10191 (inputs
10192 `(("alexandria" ,sbcl-alexandria)
10193 ("bordeaux-threads" ,sbcl-bordeaux-threads)
10194 ("cl-colors2" ,sbcl-cl-colors2)
10195 ("cl-jpeg" ,sbcl-cl-jpeg)
10196 ("cl-lex" ,sbcl-cl-lex)
10197 ("cl-ppcre-unicode" ,sbcl-cl-ppcre-unicode)
10198 ("cl-unicode" ,sbcl-cl-unicode)
10199 ("cl-yacc" ,sbcl-cl-yacc)
10200 ("clunit2" ,sbcl-clunit2)
10201 ("named-readtables" ,sbcl-named-readtables)
10202 ("parse-number" ,sbcl-parse-number)
10203 ("tk" ,tk)))
10204 (arguments
10205 `(#:phases (modify-phases %standard-phases
10206 (add-after 'unpack 'fix-paths
10207 (lambda* (#:key inputs #:allow-other-keys)
10208 (substitute* "src/wish-communication.lisp"
10209 (("#-freebsd \"wish\"")
10210 (string-append "#-freebsd \""
10211 (assoc-ref inputs "tk")
10212 "/bin/wish\"")))
10213 #t)))))
10214 (synopsis "Common Lisp bindings for the Tk GUI toolkit")
10215 (description
10216 "Nodgui (@emph{No Drama GUI}) is a Common Lisp binding for the Tk GUI
10217 toolkit. It also provides a few additional widgets more than the standard Tk
10218 ones.")
10219 (home-page "https://www.autistici.org/interzona/nodgui.html")
10220 (license license:llgpl))))
10221
10222 (define-public cl-nodgui
10223 (sbcl-package->cl-source-package sbcl-nodgui))
10224
10225 (define-public ecl-nodgui
10226 (sbcl-package->ecl-package sbcl-nodgui))
10227
10228 (define-public sbcl-salza2
10229 (package
10230 (name "sbcl-salza2")
10231 (version "2.0.9")
10232 (source
10233 (origin
10234 (method git-fetch)
10235 (uri (git-reference
10236 (url "https://github.com/xach/salza2.git")
10237 (commit (string-append "release-" version))))
10238 (file-name (git-file-name name version))
10239 (sha256
10240 (base32 "0p38rj4gq7j5k807php7hrz7l2zyyfshv8i9yms7i8lkgg3433ki"))))
10241 (build-system asdf-build-system/sbcl)
10242 (synopsis "Common Lisp library for zlib, deflate and gzip compression")
10243 (description
10244 "Salza2 is a Common Lisp library for creating compressed data in the zlib,
10245 deflate, or gzip data formats, described in RFC 1950, RFC 1951, and RFC 1952,
10246 respectively.")
10247 (home-page "https://www.xach.com/lisp/salza2/")
10248 (license license:bsd-2)))
10249
10250 (define-public cl-salza2
10251 (sbcl-package->cl-source-package sbcl-salza2))
10252
10253 (define-public ecl-salza2
10254 (sbcl-package->ecl-package sbcl-salza2))
10255
10256 (define-public sbcl-png-read
10257 (let ((commit "ec29f38a689972b9f1373f13bbbcd6b05deada88")
10258 (revision "1"))
10259 (package
10260 (name "sbcl-png-read")
10261 (version (git-version "0.3.1" revision commit))
10262 (source
10263 (origin
10264 (method git-fetch)
10265 (uri (git-reference
10266 (url "https://github.com/Ramarren/png-read.git")
10267 (commit commit)))
10268 (file-name (git-file-name name version))
10269 (sha256
10270 (base32 "0vyczbcwskrygrf1hgrsnk0jil8skmvf1kiaalw5jps4fjrfdkw0"))))
10271 (build-system asdf-build-system/sbcl)
10272 (inputs
10273 `(("babel" ,sbcl-babel)
10274 ("chipz" ,sbcl-chipz)
10275 ("iterate" ,sbcl-iterate)))
10276 (synopsis "PNG decoder for Common Lisp")
10277 (description "This is a Common Lisp library for reading PNG images.")
10278 (home-page "https://github.com/Ramarren/png-read")
10279 (license license:bsd-3))))
10280
10281 (define-public cl-png-read
10282 (sbcl-package->cl-source-package sbcl-png-read))
10283
10284 (define-public ecl-png-read
10285 (sbcl-package->ecl-package sbcl-png-read))
10286
10287 (define-public sbcl-zpng
10288 (package
10289 (name "sbcl-zpng")
10290 (version "1.2.2")
10291 (source
10292 (origin
10293 (method git-fetch)
10294 (uri (git-reference
10295 (url "https://github.com/xach/zpng.git")
10296 (commit (string-append "release-" version))))
10297 (file-name (git-file-name name version))
10298 (sha256
10299 (base32 "0b3ag3jhl3z7kdls3ahdsdxsfhhw5qrizk769984f4wkxhb69rcm"))))
10300 (build-system asdf-build-system/sbcl)
10301 (inputs
10302 `(("salza2" ,sbcl-salza2)))
10303 (synopsis "PNG encoder for Common Lisp")
10304 (description "This is a Common Lisp library for creating PNG images.")
10305 (home-page "https://www.xach.com/lisp/zpng/")
10306 (license license:bsd-2)))
10307
10308 (define-public cl-zpng
10309 (sbcl-package->cl-source-package sbcl-zpng))
10310
10311 (define-public ecl-zpng
10312 (sbcl-package->ecl-package sbcl-zpng))
10313
10314 (define-public sbcl-cl-qrencode
10315 (package
10316 (name "sbcl-cl-qrencode")
10317 (version "0.1.2")
10318 (source
10319 (origin
10320 (method git-fetch)
10321 (uri (git-reference
10322 (url "https://github.com/jnjcc/cl-qrencode.git")
10323 (commit (string-append "v" version))))
10324 (file-name (git-file-name name version))
10325 (sha256
10326 (base32 "1l5k131dchbf6cj8a8xqa731790p01p3qa1kdy2wa9dawy3ymkxr"))))
10327 (build-system asdf-build-system/sbcl)
10328 (native-inputs
10329 `(("lisp-unit" ,sbcl-lisp-unit)))
10330 (inputs
10331 `(("zpng" ,sbcl-zpng)))
10332 (synopsis "QR code encoder for Common Lisp")
10333 (description
10334 "This Common Lisp library provides function to make QR codes and to save
10335 them as PNG files.")
10336 (home-page "https://github.com/jnjcc/cl-qrencode")
10337 (license license:gpl2+)))
10338
10339 (define-public cl-qrencode
10340 (sbcl-package->cl-source-package sbcl-cl-qrencode))
10341
10342 (define-public ecl-cl-qrencode
10343 (sbcl-package->ecl-package sbcl-cl-qrencode))
10344
10345 (define-public sbcl-hdf5-cffi
10346 (let ((commit "5b5c88f191e470e4fe96b462334e3ce0806eed5c")
10347 (revision "1"))
10348 (package
10349 (name "sbcl-hdf5-cffi")
10350 (version (git-version "1.8.18" revision commit))
10351 (source
10352 (origin
10353 (method git-fetch)
10354 (uri (git-reference
10355 (url "https://github.com/hdfgroup/hdf5-cffi.git")
10356 (commit commit)))
10357 (file-name (git-file-name name version))
10358 (sha256
10359 (base32
10360 "0vda3075423xz83qky998lpac5b04dwfv7bwgh9jq8cs5v0zrxjf"))))
10361 (build-system asdf-build-system/sbcl)
10362 (synopsis "Common Lisp bindings for the HDF5 library")
10363 (description
10364 "@code{hdf5-cffi} is a CFFI wrapper for the HDF5 library.")
10365 (home-page "https://github.com/hdfgroup/hdf5-cffi")
10366 (license (license:non-copyleft
10367 (string-append "https://github.com/HDFGroup/hdf5-cffi/raw/"
10368 commit
10369 "/LICENSE")))
10370 (inputs
10371 `(("cffi" ,sbcl-cffi)
10372 ("cffi-grovel" ,sbcl-cffi-grovel)
10373 ("hdf5" ,hdf5-1.10)))
10374 (native-inputs
10375 `(("fiveam" ,sbcl-fiveam)))
10376 (arguments
10377 `(#:asd-system-name "hdf5-cffi"
10378 #:asd-file "hdf5-cffi.asd"
10379 #:test-asd-file "hdf5-cffi.test.asd"
10380 ;; Tests depend on hdf5-cffi.examples.asd in addition to hdf5-cffi.asd,
10381 ;; I don't know if there is a way to tell asdf-build-system to load
10382 ;; an additional system first, so tests are disabled.
10383 #:tests? #f
10384 #:phases
10385 (modify-phases %standard-phases
10386 (add-after 'unpack 'fix-paths
10387 (lambda* (#:key inputs #:allow-other-keys)
10388 (substitute* "src/library.lisp"
10389 (("libhdf5.so")
10390 (string-append
10391 (assoc-ref inputs "hdf5")
10392 "/lib/libhdf5.so")))))
10393 (add-after 'unpack 'fix-dependencies
10394 (lambda* (#:key inputs #:allow-other-keys)
10395 (substitute* "hdf5-cffi.asd"
10396 ((":depends-on \\(:cffi\\)")
10397 ":depends-on (:cffi :cffi-grovel)"))
10398 (substitute* "hdf5-cffi.test.asd"
10399 ((":depends-on \\(:cffi :hdf5-cffi")
10400 ":depends-on (:cffi :cffi-grovel :hdf5-cffi"))))))))))
10401
10402 (define-public cl-hdf5-cffi
10403 (sbcl-package->cl-source-package sbcl-hdf5-cffi))
10404
10405 (define-public ecl-hdf5-cffi
10406 (sbcl-package->ecl-package sbcl-hdf5-cffi))
10407
10408 (define-public sbcl-cl-randist
10409 (package
10410 (name "sbcl-cl-randist")
10411 (version "0.4.2")
10412 (source
10413 (origin
10414 (method git-fetch)
10415 (uri (git-reference
10416 (url "https://github.com/lvaruzza/cl-randist.git")
10417 (commit "f088a54b540a7adefab7c04094a6103f9edda3d0")))
10418 (file-name (git-file-name name version))
10419 (sha256
10420 (base32
10421 "0l8hyd6nbxb7f50vyxz3rbbm7kgr1fnadc40jywy4xj5vi5kpj5g"))))
10422 (build-system asdf-build-system/sbcl)
10423 (synopsis "Random distributions for Common Lisp")
10424 (description
10425 "Manual translation from C to Common Lisp of some random number
10426 generation functions from the GSL library.")
10427 (home-page "https://github.com/lvaruzza/cl-randist")
10428 (license license:bsd-2)
10429 (arguments
10430 `(#:asd-system-name "cl-randist"
10431 #:asd-file "cl-randist.asd"
10432 #:tests? #f))))
10433
10434 (define-public cl-randist
10435 (sbcl-package->cl-source-package sbcl-cl-randist))
10436
10437 (define-public ecl-cl-randist
10438 (sbcl-package->ecl-package sbcl-cl-randist))
10439
10440 (define-public sbcl-float-features
10441 (package
10442 (name "sbcl-float-features")
10443 (version "1.0.0")
10444 (source
10445 (origin
10446 (method git-fetch)
10447 (uri (git-reference
10448 (url "https://github.com/Shinmera/float-features.git")
10449 (commit "d3ef60181635b0849aa28cfc238053b7ca4644b0")))
10450 (file-name (git-file-name name version))
10451 (sha256
10452 (base32
10453 "0yj419k7n59x6rh3grwr6frgwwyria2il6f7wxpfazm8cskv4lzr"))))
10454 (build-system asdf-build-system/sbcl)
10455 (synopsis "Common Lisp IEEE float portability library")
10456 (description
10457 "Portability library for IEEE float features that are not
10458 covered by the Common Lisp standard.")
10459 (home-page "https://github.com/Shinmera/float-features")
10460 (license license:zlib)
10461 (inputs
10462 `(("documentation-utils" ,sbcl-documentation-utils)))
10463 (arguments
10464 `(#:asd-system-name "float-features"
10465 #:asd-file "float-features.asd"
10466 #:tests? #f))))
10467
10468 (define-public cl-float-features
10469 (sbcl-package->cl-source-package sbcl-float-features))
10470
10471 (define-public ecl-float-features
10472 (sbcl-package->ecl-package sbcl-float-features))
10473
10474 (define-public sbcl-function-cache
10475 (package
10476 (name "sbcl-function-cache")
10477 (version "1.0.3")
10478 (source
10479 (origin
10480 (method git-fetch)
10481 (uri (git-reference
10482 (url "https://github.com/AccelerationNet/function-cache.git")
10483 (commit "6a5ada401e57da2c8abf046f582029926e61fce8")))
10484 (file-name (git-file-name name version))
10485 (sha256
10486 (base32
10487 "000vmd3f5rx5hs9nvphfric0gkzaadns31c6mxaslpv0k7pkrmc6"))))
10488 (build-system asdf-build-system/sbcl)
10489 (synopsis "Function caching / memoization library for Common Lisp")
10490 (description
10491 "A common lisp library that provides extensible function result
10492 caching based on arguments (an expanded form of memoization).")
10493 (home-page "https://github.com/AccelerationNet/function-cache")
10494 (license
10495 (license:non-copyleft
10496 "https://github.com/AccelerationNet/function-cache/blob/master/README.md"))
10497 (inputs
10498 `(("alexandria" ,sbcl-alexandria)
10499 ("cl-interpol" ,sbcl-cl-interpol)
10500 ("iterate" ,sbcl-iterate)
10501 ("symbol-munger" ,sbcl-symbol-munger)
10502 ("closer-mop" ,sbcl-closer-mop)))
10503 (arguments
10504 `(#:asd-system-name "function-cache"
10505 #:asd-file "function-cache.asd"
10506 #:tests? #f))))
10507
10508 (define-public cl-function-cache
10509 (sbcl-package->cl-source-package sbcl-function-cache))
10510
10511 (define-public ecl-function-cache
10512 (sbcl-package->ecl-package sbcl-function-cache))
10513
10514 (define-public sbcl-type-r
10515 (let ((commit "83c89e38f2f7a7b16f1012777ecaf878cfa6a267")
10516 (revision "1"))
10517 (package
10518 (name "sbcl-type-r")
10519 (version (git-version "0.0.0" revision commit))
10520 (source
10521 (origin
10522 (method git-fetch)
10523 (uri (git-reference
10524 (url "https://github.com/guicho271828/type-r.git")
10525 (commit commit)))
10526 (file-name (git-file-name name version))
10527 (sha256
10528 (base32
10529 "1arsxc2539rg8vbrdirz4xxj1b06mc6g6rqndz7a02g127qvk2sm"))))
10530 (build-system asdf-build-system/sbcl)
10531 (synopsis "Parser interface for Common Lisp built-in compound types")
10532 (description
10533 "Collections of accessor functions and patterns to access
10534 the elements in compound type specifier, e.g. @code{dimensions} in
10535 @code{(array element-type dimensions)}")
10536 (home-page "https://github.com/guicho271828/type-r")
10537 (license license:lgpl3+)
10538 (inputs
10539 `(("trivia" ,sbcl-trivia)
10540 ("alexandria" ,sbcl-alexandria)))
10541 (native-inputs
10542 `(("fiveam" ,sbcl-fiveam)))
10543 (arguments
10544 `(#:asd-system-name "type-r"
10545 #:asd-file "type-r.asd"
10546 #:test-asd-file "type-r.test.asd")))))
10547
10548 (define-public cl-type-r
10549 (sbcl-package->cl-source-package sbcl-type-r))
10550
10551 (define-public sbcl-trivialib-type-unify
10552 (let ((commit "62492ebf04db567dcf435ae84c50b7b8202ecf99")
10553 (revision "1"))
10554 (package
10555 (name "sbcl-trivialib-type-unify")
10556 (version (git-version "0.1" revision commit))
10557 (source
10558 (origin
10559 (method git-fetch)
10560 (uri (git-reference
10561 (url "https://github.com/guicho271828/trivialib.type-unify.git")
10562 (commit commit)))
10563 (file-name (git-file-name name version))
10564 (sha256
10565 (base32
10566 "1bkyfzbwv75p50zp8n1n9rh2r29pw3vgz91gmn2gzzkyq3khj1vh"))))
10567 (build-system asdf-build-system/sbcl)
10568 (synopsis "Common Lisp type unification")
10569 (description
10570 "Unifies a parametrized type specifier against an actual type specifier.
10571 Importantly, it handles complicated array-subtypes and number-related types
10572 correctly.")
10573 (home-page "https://github.com/guicho271828/trivialib.type-unify")
10574 (license license:lgpl3+)
10575 (inputs
10576 `(("alexandria" ,sbcl-alexandria)
10577 ("trivia" ,sbcl-trivia)
10578 ("introspect-environment" ,sbcl-introspect-environment)
10579 ("type-r" ,sbcl-type-r)))
10580 (native-inputs
10581 `(("fiveam" ,sbcl-fiveam)))
10582 (arguments
10583 `(#:asd-system-name "trivialib.type-unify"
10584 #:asd-file "trivialib.type-unify.asd"
10585 #:test-asd-file "trivialib.type-unify.test.asd")))))
10586
10587 (define-public cl-trivialib-type-unify
10588 (sbcl-package->cl-source-package sbcl-trivialib-type-unify))
10589
10590 (define-public sbcl-specialized-function
10591 (let ((commit "b96b6afaf8358bf91cc0703e62a5a4ee20d2b7bc")
10592 (revision "1"))
10593 (package
10594 (name "sbcl-specialized-function")
10595 (version (git-version "0.0.0" revision commit))
10596 (source
10597 (origin
10598 (method git-fetch)
10599 (uri (git-reference
10600 (url "https://github.com/numcl/specialized-function.git")
10601 (commit commit)))
10602 (file-name (git-file-name name version))
10603 (sha256
10604 (base32
10605 "12j45ff0n26578vmfbhb9mfbdchw4wy023k0m2ppgl9s0z4bhjaj"))))
10606 (build-system asdf-build-system/sbcl)
10607 (synopsis "Julia-like dispatch for Common Lisp")
10608 (description
10609 "This library is part of NUMCL. It provides a macro
10610 @code{SPECIALIZED} that performs a Julia-like dispatch on the arguments,
10611 lazily compiling a type-specific version of the function from the same
10612 code. The main target of this macro is speed.")
10613 (home-page "https://github.com/numcl/specialized-function")
10614 (license license:lgpl3+)
10615 (inputs
10616 `(("trivia" ,sbcl-trivia)
10617 ("alexandria" ,sbcl-alexandria)
10618 ("iterate" ,sbcl-iterate)
10619 ("lisp-namespace" ,sbcl-lisp-namespace)
10620 ("type-r" ,sbcl-type-r)
10621 ("trivial-cltl2" ,sbcl-trivial-cltl2)))
10622 (native-inputs
10623 `(("fiveam" ,sbcl-fiveam)))
10624 (arguments
10625 `(#:asd-system-name "specialized-function"
10626 #:asd-file "specialized-function.asd"
10627 #:test-asd-file "specialized-function.test.asd")))))
10628
10629 (define-public cl-specialized-function
10630 (sbcl-package->cl-source-package sbcl-specialized-function))
10631
10632 (define-public sbcl-constantfold
10633 (let ((commit "0ff1d97a3fbcb89264f6a2af6ce62b73e7b421f4")
10634 (revision "1"))
10635 (package
10636 (name "sbcl-constantfold")
10637 (version (git-version "0.1" revision commit))
10638 (source
10639 (origin
10640 (method git-fetch)
10641 (uri (git-reference
10642 (url "https://github.com/numcl/constantfold.git")
10643 (commit commit)))
10644 (file-name (git-file-name name version))
10645 (sha256
10646 (base32
10647 "153h0569z6bff1qbad0bdssplwwny75l7ilqwcfqfdvzsxf9jh06"))))
10648 (build-system asdf-build-system/sbcl)
10649 (synopsis "Support library for numcl")
10650 (description
10651 "Support library for numcl. Registers a function as an
10652 additional form that is considered as a candidate for a constant.")
10653 (home-page "https://github.com/numcl/constantfold")
10654 (license license:lgpl3+)
10655 (inputs
10656 `(("trivia" ,sbcl-trivia)
10657 ("alexandria" ,sbcl-alexandria)
10658 ("iterate" ,sbcl-iterate)
10659 ("lisp-namespace" ,sbcl-lisp-namespace)))
10660 (native-inputs
10661 `(("fiveam" ,sbcl-fiveam)))
10662 (arguments
10663 `(#:asd-system-name "constantfold"
10664 #:asd-file "constantfold.asd"
10665 #:test-asd-file "constantfold.test.asd")))))
10666
10667 (define-public cl-constantfold
10668 (sbcl-package->cl-source-package sbcl-constantfold))
10669
10670 (define-public sbcl-gtype
10671 (let ((commit "42275e3606242ae91e9c8dfa30c18ced50a35b66")
10672 (revision "1"))
10673 (package
10674 (name "sbcl-gtype")
10675 (version (git-version "0.1" revision commit))
10676 (source
10677 (origin
10678 (method git-fetch)
10679 (uri (git-reference
10680 (url "https://github.com/numcl/gtype.git")
10681 (commit commit)))
10682 (file-name (git-file-name name version))
10683 (sha256
10684 (base32
10685 "1f56dba998v945jcxhha391557n6md1ql25b7icfwwfivhmlaa9b"))))
10686 (build-system asdf-build-system/sbcl)
10687 (synopsis "C++/Julia-like parametric types in Common Lisp")
10688 (description
10689 "Support library for numcl that provides Julia-like runtime parametric
10690 type correctness in Common Lisp. It is based on CLtL2 extensions.")
10691 (home-page "https://github.com/numcl/gtype")
10692 (license license:lgpl3+)
10693 (inputs
10694 `(("trivialib.type-unify" ,sbcl-trivialib-type-unify)
10695 ("trivial-cltl2" ,sbcl-trivial-cltl2)
10696 ("trivia" ,sbcl-trivia)
10697 ("alexandria" ,sbcl-alexandria)
10698 ("iterate" ,sbcl-iterate)
10699 ("type-r" ,sbcl-type-r)))
10700 (native-inputs
10701 `(("fiveam" ,sbcl-fiveam)))
10702 (arguments
10703 `(#:asd-system-name "gtype"
10704 #:asd-file "gtype.asd"
10705 #:test-asd-file "gtype.test.asd")))))
10706
10707 (define-public cl-gtype
10708 (sbcl-package->cl-source-package sbcl-gtype))
10709
10710 (define-public sbcl-numcl
10711 (let ((commit "1cf7dfa59f763a24a501092870e9c5ee745d0c17")
10712 (revision "1"))
10713 (package
10714 (name "sbcl-numcl")
10715 (version (git-version "0.1.0" revision commit))
10716 (source
10717 (origin
10718 (method git-fetch)
10719 (uri (git-reference
10720 (url "https://github.com/numcl/numcl.git")
10721 (commit commit)))
10722 (file-name (git-file-name name version))
10723 (sha256
10724 (base32
10725 "0i3jby9hf4ii7blivgyza80g0vmjfhk8537i5i7kqqk0i5sdnym2"))))
10726 (build-system asdf-build-system/sbcl)
10727 (synopsis "Numpy clone in Common Lisp")
10728 (description
10729 "This is a Numpy clone in Common Lisp. At the moment the
10730 library is written in pure Common Lisp, focusing more on correctness
10731 and usefulness, not speed. Track the progress at
10732 @url{https://github.com/numcl/numcl/projects/1}.")
10733 (home-page "https://github.com/numcl/numcl")
10734 (license license:lgpl3+)
10735 (inputs
10736 `(("trivia" ,sbcl-trivia)
10737 ("alexandria" ,sbcl-alexandria)
10738 ("iterate" ,sbcl-iterate)
10739 ("lisp-namespace" ,sbcl-lisp-namespace)
10740 ("type-r" ,sbcl-type-r)
10741 ("constantfold" ,sbcl-constantfold)
10742 ("cl-randist" ,sbcl-cl-randist)
10743 ("float-features" ,sbcl-float-features)
10744 ("function-cache" ,sbcl-function-cache)
10745 ("specialized-function" ,sbcl-specialized-function)
10746 ("gtype" ,sbcl-gtype)))
10747 (native-inputs
10748 `(("fiveam" ,sbcl-fiveam)))
10749 (arguments
10750 `(#:asd-system-name "numcl"
10751 #:asd-file "numcl.asd"
10752 #:test-asd-file "numcl.test.asd")))))
10753
10754 (define-public cl-numcl
10755 (sbcl-package->cl-source-package sbcl-numcl))
10756
10757 (define-public sbcl-pzmq
10758 (let ((commit "7c7390eedc469d033c72dc497984d1536ee75826")
10759 (revision "1"))
10760 (package
10761 (name "sbcl-pzmq")
10762 (version (git-version "0.0.0" revision commit))
10763 (source
10764 (origin
10765 (method git-fetch)
10766 (uri (git-reference
10767 (url "https://github.com/orivej/pzmq.git")
10768 (commit commit)))
10769 (file-name (git-file-name name version))
10770 (sha256
10771 (base32 "0gmwzf7h90wa7v4wnk49g0hv2mdalljpwhyigxcb967wzv8lqci9"))))
10772 (build-system asdf-build-system/sbcl)
10773 (native-inputs
10774 `(("bordeaux-threads" ,sbcl-bordeaux-threads)
10775 ("fiveam" ,sbcl-fiveam)
10776 ("let-plus" ,sbcl-let-plus)))
10777 (inputs
10778 `(("cffi" ,sbcl-cffi)
10779 ("cffi-grovel" ,sbcl-cffi-grovel)
10780 ("zeromq" ,zeromq)))
10781 (arguments
10782 `(#:phases (modify-phases %standard-phases
10783 (add-after 'unpack 'fix-paths
10784 (lambda* (#:key inputs #:allow-other-keys)
10785 (substitute* "c-api.lisp"
10786 (("\"libzmq")
10787 (string-append "\""
10788 (assoc-ref inputs "zeromq")
10789 "/lib/libzmq")))
10790 #t)))))
10791 (synopsis "Common Lisp bindings for the ZeroMQ library")
10792 (description "This Common Lisp library provides bindings for the ZeroMQ
10793 lightweight messaging kernel.")
10794 (home-page "https://github.com/orivej/pzmq")
10795 (license license:unlicense))))
10796
10797 (define-public cl-pzmq
10798 (sbcl-package->cl-source-package sbcl-pzmq))
10799
10800 (define-public ecl-pzmq
10801 (sbcl-package->ecl-package sbcl-pzmq))
10802
10803 (define-public sbcl-clss
10804 (let ((revision "1")
10805 (commit "2a8e8615ab55870d4ca01928f3ed3bbeb4e75c8d"))
10806 (package
10807 (name "sbcl-clss")
10808 (version (git-version "0.3.1" revision commit))
10809 (source
10810 (origin
10811 (method git-fetch)
10812 (uri
10813 (git-reference
10814 (url "https://github.com/Shinmera/clss.git")
10815 (commit commit)))
10816 (sha256
10817 (base32 "0la4dbcda78x29szanylccrsljqrn9d1mhh569sqkyp44ni5fv91"))
10818 (file-name (git-file-name name version))))
10819 (inputs
10820 `(("array-utils" ,sbcl-array-utils)
10821 ("plump" ,sbcl-plump)))
10822 (build-system asdf-build-system/sbcl)
10823 (synopsis "DOM tree searching engine based on CSS selectors")
10824 (description "CLSS is a DOM traversal engine based on CSS
10825 selectors. It makes use of the Plump-DOM and is used by lQuery.")
10826 (home-page "https://github.com/Shinmera/clss")
10827 (license license:zlib))))
10828
10829 (define-public cl-clss
10830 (sbcl-package->cl-source-package sbcl-clss))
10831
10832 (define-public ecl-clss
10833 (sbcl-package->ecl-package sbcl-clss))
10834
10835 (define-public sbcl-lquery
10836 (let ((revision "1")
10837 (commit "8048111c6b83956daa632e7a3ffbd8c9c203bd8d"))
10838 (package
10839 (name "sbcl-lquery")
10840 (version (git-version "3.2.1" revision commit))
10841 (source
10842 (origin
10843 (method git-fetch)
10844 (uri
10845 (git-reference
10846 (url "https://github.com/Shinmera/lquery.git")
10847 (commit commit)))
10848 (sha256
10849 (base32 "0520mcpxc2d6fdm8z61arpgd2z38kan7cf06qs373n5r64rakz6w"))
10850 (file-name (git-file-name name version))))
10851 (native-inputs
10852 `(("fiveam" ,sbcl-fiveam)))
10853 (inputs
10854 `(("array-utils" ,sbcl-array-utils)
10855 ("form-fiddle" ,sbcl-form-fiddle)
10856 ("plump" ,sbcl-plump)
10857 ("clss" ,sbcl-clss)))
10858 (build-system asdf-build-system/sbcl)
10859 (synopsis "Library to allow jQuery-like HTML/DOM manipulation")
10860 (description "@code{lQuery} is a DOM manipulation library written in
10861 Common Lisp, inspired by and based on the jQuery syntax and
10862 functions. It uses Plump and CLSS as DOM and selector engines. The
10863 main idea behind lQuery is to provide a simple interface for crawling
10864 and modifying HTML sites, as well as to allow for an alternative
10865 approach to templating.")
10866 (home-page "https://github.com/Shinmera/lquery")
10867 (license license:zlib))))
10868
10869 (define-public cl-lquery
10870 (sbcl-package->cl-source-package sbcl-lquery))
10871
10872 (define-public ecl-lquery
10873 (sbcl-package->ecl-package sbcl-lquery))
10874
10875 (define-public sbcl-cl-mysql
10876 (let ((commit "ab56c279c1815aec6ca0bfe85164ff7e85cfb6f9")
10877 (revision "1"))
10878 (package
10879 (name "sbcl-cl-mysql")
10880 (version (git-version "0.1" revision commit))
10881 (source
10882 (origin
10883 (method git-fetch)
10884 (uri (git-reference
10885 (url "https://github.com/hackinghat/cl-mysql.git")
10886 (commit commit)))
10887 (file-name (git-file-name name version))
10888 (sha256
10889 (base32 "0dg5ynx2ww94d0qfwrdrm7plkn43h64hs4iiq9mj2s1s4ixnp3lr"))))
10890 (build-system asdf-build-system/sbcl)
10891 (native-inputs
10892 `(("stefil" ,sbcl-stefil)))
10893 (inputs
10894 `(("cffi" ,sbcl-cffi)
10895 ("mariadb-lib" ,mariadb "lib")))
10896 (arguments
10897 `(#:tests? #f ; TODO: Tests require a running server
10898 #:phases
10899 (modify-phases %standard-phases
10900 (add-after 'unpack 'fix-paths
10901 (lambda* (#:key inputs #:allow-other-keys)
10902 (substitute* "system.lisp"
10903 (("libmysqlclient_r" all)
10904 (string-append (assoc-ref inputs "mariadb-lib")
10905 "/lib/"
10906 all)))
10907 #t)))))
10908 (synopsis "Common Lisp wrapper for MySQL")
10909 (description
10910 "@code{cl-mysql} is a Common Lisp implementation of a MySQL wrapper.")
10911 (home-page "http://www.hackinghat.com/index.php/cl-mysql")
10912 (license license:expat))))
10913
10914 (define-public cl-mysql
10915 (sbcl-package->cl-source-package sbcl-cl-mysql))
10916
10917 (define-public sbcl-simple-date
10918 (let ((commit "74469b25bbda990ec9b77e0d0eccdba0cd7e721a")
10919 (revision "1"))
10920 (package
10921 (name "sbcl-simple-date")
10922 (version (git-version "1.19" revision commit))
10923 (source
10924 (origin
10925 (method git-fetch)
10926 (uri (git-reference
10927 (url "https://github.com/marijnh/Postmodern.git")
10928 (commit commit)))
10929 (file-name (git-file-name name version))
10930 (sha256
10931 (base32 "0im7ymnyxjhn2w74jfg76k5gpr0gl33n31akx33hl28722ljd0hd"))))
10932 (build-system asdf-build-system/sbcl)
10933 (native-inputs
10934 `(("fiveam" ,sbcl-fiveam)))
10935 (synopsis "Basic date and time objects for Common Lisp")
10936 (description
10937 "@code{simple-date} is a very basic implementation of date and time
10938 objects, used to support storing and retrieving time-related SQL types.")
10939 (home-page "https://marijnhaverbeke.nl/postmodern/")
10940 (license license:zlib))))
10941
10942 (define-public cl-simple-date
10943 (sbcl-package->cl-source-package sbcl-simple-date))
10944
10945 (define-public ecl-simple-date
10946 (sbcl-package->ecl-package sbcl-simple-date))
10947
10948 (define-public sbcl-cl-postgres
10949 (package
10950 (inherit sbcl-simple-date)
10951 (name "sbcl-cl-postgres")
10952 (native-inputs
10953 `(("fiveam" ,sbcl-fiveam)
10954 ("simple-date" ,sbcl-simple-date)))
10955 (inputs
10956 `(("md5" ,sbcl-md5)
10957 ("split-sequence" ,sbcl-split-sequence)
10958 ("usocket" ,sbcl-usocket)))
10959 (arguments
10960 `(#:tests? #f)) ; TODO: Break simple-date/postgres-glue circular dependency
10961 (synopsis "Common Lisp interface for PostgreSQL")
10962 (description
10963 "@code{cl-postgres} is a low-level library used for interfacing with
10964 a PostgreSQL server over a socket.")))
10965
10966 (define-public cl-postgres
10967 (sbcl-package->cl-source-package sbcl-cl-postgres))
10968
10969 (define-public sbcl-simple-date-postgres-glue
10970 (package
10971 (inherit sbcl-simple-date)
10972 (name "sbcl-simple-date-postgres-glue")
10973 (inputs
10974 `(("cl-postgres" ,sbcl-cl-postgres)
10975 ("simple-date" ,sbcl-simple-date)))
10976 (arguments
10977 `(#:asd-file "simple-date.asd"
10978 #:asd-system-name "simple-date/postgres-glue"))))
10979
10980 (define-public cl-simple-date-postgres-glue
10981 (sbcl-package->cl-source-package sbcl-simple-date-postgres-glue))
10982
10983 (define-public sbcl-s-sql
10984 (package
10985 (inherit sbcl-simple-date)
10986 (name "sbcl-s-sql")
10987 (inputs
10988 `(("alexandria" ,sbcl-alexandria)
10989 ("cl-postgres" ,sbcl-cl-postgres)))
10990 (arguments
10991 `(#:tests? #f)) ; TODO: Break postmodern circular dependency
10992 (synopsis "Lispy DSL for SQL")
10993 (description
10994 "@code{s-sql} is a Common Lisp library that can be used to compile
10995 s-expressions to strings of SQL code, escaping any Lisp values inside, and
10996 doing as much as possible of the work at compile time.")))
10997
10998 (define-public cl-s-sql
10999 (sbcl-package->cl-source-package sbcl-s-sql))
11000
11001 (define-public sbcl-postmodern
11002 (package
11003 (inherit sbcl-simple-date)
11004 (name "sbcl-postmodern")
11005 (native-inputs
11006 `(("fiveam" ,sbcl-fiveam)
11007 ("simple-date" ,sbcl-simple-date)
11008 ("simple-date-postgres-glue" ,sbcl-simple-date-postgres-glue)))
11009 (inputs
11010 `(("alexandria" ,sbcl-alexandria)
11011 ("bordeaux-threads" ,sbcl-bordeaux-threads)
11012 ("cl-postgres" ,sbcl-cl-postgres)
11013 ("closer-mop" ,sbcl-closer-mop)
11014 ("global-vars" ,sbcl-global-vars)
11015 ("s-sql" ,sbcl-s-sql)
11016 ("split-sequence" ,sbcl-split-sequence)))
11017 (arguments
11018 ;; TODO: Fix missing dependency errors for simple-date/postgres-glue,
11019 ;; cl-postgres/tests and s-sql/tests.
11020 `(#:tests? #f))
11021 (synopsis "Common Lisp library for interacting with PostgreSQL")
11022 (description
11023 "@code{postmodern} is a Common Lisp library for interacting with
11024 PostgreSQL databases. It provides the following features:
11025
11026 @itemize
11027 @item Efficient communication with the database server without need for
11028 foreign libraries.
11029 @item Support for UTF-8 on Unicode-aware Lisp implementations.
11030 @item A syntax for mixing SQL and Lisp code.
11031 @item Convenient support for prepared statements and stored procedures.
11032 @item A metaclass for simple database-access objects.
11033 @end itemize\n")))
11034
11035 (define-public cl-postmodern
11036 (sbcl-package->cl-source-package sbcl-postmodern))
11037
11038 (define-public sbcl-dbi
11039 (package
11040 (name "sbcl-dbi")
11041 (version "0.9.4")
11042 (source
11043 (origin
11044 (method git-fetch)
11045 (uri (git-reference
11046 (url "https://github.com/fukamachi/cl-dbi.git")
11047 (commit version)))
11048 (file-name (git-file-name name version))
11049 (sha256
11050 (base32 "0m1fsravfaizamdak84adh3jxc4j91maqnrb4m08bfbmb04cdqhs"))))
11051 (build-system asdf-build-system/sbcl)
11052 (inputs
11053 `(("bordeaux-threads" ,sbcl-bordeaux-threads)
11054 ("closer-mop" ,sbcl-closer-mop)
11055 ("split-sequence" ,sbcl-split-sequence)))
11056 (arguments
11057 `(#:tests? #f)) ; TODO: Break circular dependency with dbd-*
11058 (synopsis "Database independent interface for Common Lisp")
11059 (description
11060 "@code{dbi} is a Common Lisp library providing a database independent
11061 interface for MySQL, PostgreSQL and SQLite.")
11062 (home-page "https://github.com/fukamachi/cl-dbi")
11063 (license license:llgpl)))
11064
11065 (define-public cl-dbi
11066 (sbcl-package->cl-source-package sbcl-dbi))
11067
11068 (define-public sbcl-dbd-mysql
11069 (package
11070 (inherit sbcl-dbi)
11071 (name "sbcl-dbd-mysql")
11072 (inputs
11073 `(("cl-mysql" ,sbcl-cl-mysql)
11074 ("dbi" ,sbcl-dbi)))
11075 (synopsis "Database driver for MySQL")))
11076
11077 (define-public cl-dbd-mysql
11078 (sbcl-package->cl-source-package sbcl-dbd-mysql))
11079
11080 (define-public sbcl-dbd-postgres
11081 (package
11082 (inherit sbcl-dbi)
11083 (name "sbcl-dbd-postgres")
11084 (inputs
11085 `(("cl-postgres" ,sbcl-cl-postgres)
11086 ("dbi" ,sbcl-dbi)
11087 ("trivial-garbage" ,sbcl-trivial-garbage)))
11088 (synopsis "Database driver for PostgreSQL")))
11089
11090 (define-public cl-dbd-postgres
11091 (sbcl-package->cl-source-package sbcl-dbd-postgres))
11092
11093 (define-public sbcl-dbd-sqlite3
11094 (package
11095 (inherit sbcl-dbi)
11096 (name "sbcl-dbd-sqlite3")
11097 (inputs
11098 `(("cl-sqlite" ,sbcl-cl-sqlite)
11099 ("dbi" ,sbcl-dbi)
11100 ("trivial-garbage" ,sbcl-trivial-garbage)))
11101 (synopsis "Database driver for SQLite3")))
11102
11103 (define-public cl-dbd-sqlite3
11104 (sbcl-package->cl-source-package sbcl-dbd-sqlite3))
11105
11106 (define-public sbcl-uffi
11107 (package
11108 (name "sbcl-uffi")
11109 (version "2.1.2")
11110 (source
11111 (origin
11112 (method git-fetch)
11113 (uri (git-reference
11114 (url "http://git.kpe.io/uffi.git")
11115 (commit (string-append "v" version))))
11116 (file-name (git-file-name name version))
11117 (sha256
11118 (base32 "1hqszvz0a3wk4s9faa83sc3vjxcb5rxmjclyr17yzwg55z733kry"))))
11119 (build-system asdf-build-system/sbcl)
11120 (arguments
11121 `(#:tests? #f ; TODO: Fix use of deprecated ASDF functions
11122 #:phases
11123 (modify-phases %standard-phases
11124 (add-after 'unpack 'fix-permissions
11125 (lambda _
11126 (make-file-writable "doc/html.tar.gz")
11127 #t)))))
11128 (synopsis "Universal foreign function library for Common Lisp")
11129 (description
11130 "UFFI provides a universal foreign function interface (FFI)
11131 for Common Lisp.")
11132 (home-page "http://quickdocs.org/uffi/")
11133 (license license:llgpl)))
11134
11135 (define-public cl-uffi
11136 (package
11137 (inherit (sbcl-package->cl-source-package sbcl-uffi))
11138 (arguments
11139 `(#:phases
11140 ;; asdf-build-system/source has its own phases and does not inherit
11141 ;; from asdf-build-system/sbcl phases.
11142 (modify-phases %standard-phases/source
11143 (add-after 'unpack 'fix-permissions
11144 (lambda _
11145 (make-file-writable "doc/html.tar.gz")
11146 #t)))))))
11147
11148 (define-public sbcl-clsql
11149 (package
11150 (name "sbcl-clsql")
11151 (version "6.7.0")
11152 (source
11153 (origin
11154 (method git-fetch)
11155 (uri (git-reference
11156 (url "http://git.kpe.io/clsql.git")
11157 (commit (string-append "v" version))))
11158 (file-name (git-file-name name version))
11159 (sha256
11160 (base32 "1v1k3s5bsy3lgd9gk459bzpb1r0kdjda25s29samxw4gsgf1fqvp"))
11161 (snippet
11162 '(begin
11163 ;; Remove precompiled libraries.
11164 (delete-file "db-mysql/clsql_mysql.dll")
11165 (delete-file "uffi/clsql_uffi.dll")
11166 (delete-file "uffi/clsql_uffi.lib")
11167 #t))))
11168 (build-system asdf-build-system/sbcl)
11169 (native-inputs
11170 `(("cffi-uffi-compat" ,sbcl-cffi-uffi-compat)
11171 ("rt" ,sbcl-rt)
11172 ("uffi" ,sbcl-uffi)))
11173 (arguments
11174 `(#:phases
11175 (modify-phases %standard-phases
11176 (add-after 'unpack 'fix-permissions
11177 (lambda _
11178 (make-file-writable "doc/html.tar.gz")
11179 #t))
11180 (add-after 'unpack 'fix-tests
11181 (lambda _
11182 (substitute* "clsql.asd"
11183 (("clsql-tests :force t")
11184 "clsql-tests"))
11185 #t)))))
11186 (synopsis "Common Lisp SQL Interface library")
11187 (description
11188 "@code{clsql} is a Common Lisp interface to SQL RDBMS based on the
11189 Xanalys CommonSQL interface for Lispworks. It provides low-level database
11190 interfaces as well as a functional and an object oriented interface.")
11191 (home-page "http://clsql.kpe.io/")
11192 (license license:llgpl)))
11193
11194 (define-public cl-clsql
11195 (package
11196 (inherit (sbcl-package->cl-source-package sbcl-clsql))
11197 (native-inputs
11198 `(("rt" ,cl-rt)))
11199 (inputs
11200 `(("mysql" ,mysql)
11201 ("postgresql" ,postgresql)
11202 ("sqlite" ,sqlite)
11203 ("zlib" ,zlib)))
11204 (propagated-inputs
11205 `(("cl-postgres" ,cl-postgres)
11206 ("cffi-uffi-compat" ,cl-cffi-uffi-compat)
11207 ("md5" ,cl-md5)
11208 ("uffi" ,cl-uffi)))
11209 (arguments
11210 `(#:phases
11211 ;; asdf-build-system/source has its own phases and does not inherit
11212 ;; from asdf-build-system/sbcl phases.
11213 (modify-phases %standard-phases/source
11214 (add-after 'unpack 'fix-permissions
11215 (lambda _
11216 (make-file-writable "doc/html.tar.gz")
11217 #t)))))))
11218
11219 (define-public sbcl-clsql-uffi
11220 (package
11221 (inherit sbcl-clsql)
11222 (name "sbcl-clsql-uffi")
11223 (inputs
11224 `(("cffi-uffi-compat" ,sbcl-cffi-uffi-compat)
11225 ("clsql" ,sbcl-clsql)
11226 ("uffi" ,sbcl-uffi)))
11227 (synopsis "UFFI helper functions for Common Lisp SQL interface library")))
11228
11229 (define-public sbcl-clsql-sqlite3
11230 (package
11231 (inherit sbcl-clsql)
11232 (name "sbcl-clsql-sqlite3")
11233 (inputs
11234 `(("clsql" ,sbcl-clsql)
11235 ("clsql-uffi" ,sbcl-clsql-uffi)
11236 ("sqlite" ,sqlite)))
11237 (arguments
11238 (substitute-keyword-arguments (package-arguments sbcl-clsql)
11239 ((#:phases phases '%standard-phases)
11240 `(modify-phases ,phases
11241 (add-after 'unpack 'fix-paths
11242 (lambda* (#:key inputs #:allow-other-keys)
11243 (substitute* "db-sqlite3/sqlite3-loader.lisp"
11244 (("libsqlite3")
11245 (string-append (assoc-ref inputs "sqlite")
11246 "/lib/libsqlite3")))
11247 #t))))))
11248 (synopsis "SQLite3 driver for Common Lisp SQL interface library")))
11249
11250 (define-public sbcl-clsql-postgresql
11251 (package
11252 (inherit sbcl-clsql)
11253 (name "sbcl-clsql-postgresql")
11254 (inputs
11255 `(("clsql" ,sbcl-clsql)
11256 ("clsql-uffi" ,sbcl-clsql-uffi)
11257 ("postgresql" ,postgresql)))
11258 (arguments
11259 (substitute-keyword-arguments (package-arguments sbcl-clsql)
11260 ((#:phases phases '%standard-phases)
11261 `(modify-phases ,phases
11262 (add-after 'unpack 'fix-paths
11263 (lambda* (#:key inputs #:allow-other-keys)
11264 (substitute* "db-postgresql/postgresql-loader.lisp"
11265 (("libpq")
11266 (string-append (assoc-ref inputs "postgresql")
11267 "/lib/libpq")))
11268 #t))))))
11269 (synopsis "PostgreSQL driver for Common Lisp SQL interface library")))
11270
11271 (define-public sbcl-clsql-postgresql-socket3
11272 (package
11273 (inherit sbcl-clsql)
11274 (name "sbcl-clsql-postgresql-socket3")
11275 (inputs
11276 `(("cl-postgres" ,sbcl-cl-postgres)
11277 ("clsql" ,sbcl-clsql)
11278 ("md5" ,sbcl-md5)))
11279 (arguments
11280 (substitute-keyword-arguments (package-arguments sbcl-clsql)
11281 ((#:phases phases '%standard-phases)
11282 `(modify-phases ,phases
11283 (add-after 'create-asd-file 'fix-asd-file
11284 (lambda* (#:key outputs #:allow-other-keys)
11285 (let* ((out (assoc-ref outputs "out"))
11286 (lib (string-append out "/lib/" (%lisp-type)))
11287 (asd (string-append lib "/clsql-postgresql-socket3.asd")))
11288 (substitute* asd
11289 (("CLSQL-POSTGRESQL-SOCKET-SYSTEM::")
11290 "")))
11291 #t))))))
11292 (synopsis "PostgreSQL driver for Common Lisp SQL interface library")))
11293
11294 (define-public sbcl-clsql-mysql
11295 (package
11296 (inherit sbcl-clsql)
11297 (name "sbcl-clsql-mysql")
11298 (inputs
11299 `(("mysql" ,mysql)
11300 ("sbcl-clsql" ,sbcl-clsql)
11301 ("sbcl-clsql-uffi" ,sbcl-clsql-uffi)
11302 ("zlib" ,zlib)))
11303 (arguments
11304 (substitute-keyword-arguments (package-arguments sbcl-clsql)
11305 ((#:phases phases '%standard-phases)
11306 `(modify-phases ,phases
11307 (add-after 'unpack 'fix-paths
11308 (lambda* (#:key inputs outputs #:allow-other-keys)
11309 (let ((lib (string-append "#p\""
11310 (assoc-ref outputs "out")
11311 "/lib/\"")))
11312 (substitute* "clsql-mysql.asd"
11313 (("#p\"/usr/lib/clsql/clsql_mysql\\.so\"")
11314 lib))
11315 (substitute* "db-mysql/mysql-loader.lisp"
11316 (("libmysqlclient" all)
11317 (string-append (assoc-ref inputs "mysql") "/lib/" all))
11318 (("clsql-mysql-system::\\*library-file-dir\\*")
11319 lib)))
11320 #t))
11321 (add-before 'build 'build-helper-library
11322 (lambda* (#:key inputs outputs #:allow-other-keys)
11323 (let* ((mysql (assoc-ref inputs "mysql"))
11324 (inc-dir (string-append mysql "/include/mysql"))
11325 (lib-dir (string-append mysql "/lib"))
11326 (shared-lib-dir (string-append (assoc-ref outputs "out")
11327 "/lib"))
11328 (shared-lib (string-append shared-lib-dir
11329 "/clsql_mysql.so")))
11330 (mkdir-p shared-lib-dir)
11331 (invoke "gcc" "-fPIC" "-shared"
11332 "-I" inc-dir
11333 "db-mysql/clsql_mysql.c"
11334 "-Wl,-soname=clsql_mysql"
11335 "-L" lib-dir "-lmysqlclient" "-lz"
11336 "-o" shared-lib)
11337 #t)))))))
11338 (synopsis "MySQL driver for Common Lisp SQL interface library")))
11339
11340 (define-public sbcl-sycamore
11341 (let ((commit "fd2820fec165ad514493426dea209728f64e6d18"))
11342 (package
11343 (name "sbcl-sycamore")
11344 (version "0.0.20120604")
11345 (source
11346 (origin
11347 (method git-fetch)
11348 (uri (git-reference
11349 (url "https://github.com/ndantam/sycamore/")
11350 (commit commit)))
11351 (file-name (git-file-name name version))
11352 (sha256
11353 (base32 "00bv1aj89q5vldmq92zp2364jq312zjq2mbd3iyz1s2b4widzhl7"))))
11354 (build-system asdf-build-system/sbcl)
11355 (arguments
11356 `(#:asd-file "src/sycamore.asd"))
11357 (inputs
11358 `(("alexandria" ,sbcl-alexandria)
11359 ("cl-ppcre" ,sbcl-cl-ppcre)))
11360 (synopsis "Purely functional data structure library in Common Lisp")
11361 (description
11362 "Sycamore is a fast, purely functional data structure library in Common Lisp.
11363 If features:
11364
11365 @itemize
11366 @item Fast, purely functional weight-balanced binary trees.
11367 @item Leaf nodes are simple-vectors, greatly reducing tree height.
11368 @item Interfaces for tree Sets and Maps (dictionaries).
11369 @item Ropes.
11370 @item Purely functional pairing heaps.
11371 @item Purely functional amortized queue.
11372 @end itemize\n")
11373 (home-page "http://ndantam.github.io/sycamore/")
11374 (license license:bsd-3))))
11375
11376 (define-public cl-sycamore
11377 (sbcl-package->cl-source-package sbcl-sycamore))
11378
11379 (define-public sbcl-trivial-package-local-nicknames
11380 (package
11381 (name "sbcl-trivial-package-local-nicknames")
11382 (version "0.2")
11383 (home-page "https://github.com/phoe/trivial-package-local-nicknames")
11384 (source
11385 (origin
11386 (method git-fetch)
11387 (uri (git-reference
11388 (url home-page)
11389 (commit "16b7ad4c2b120f50da65154191f468ea5598460e")))
11390 (file-name (git-file-name name version))
11391 (sha256
11392 (base32 "18qc27xkjzdcqrilpk3pm7djldwq5rm3ggd5h9cr8hqcd54i2fqg"))))
11393 (build-system asdf-build-system/sbcl)
11394 (synopsis "Common Lisp compatibility library for package local nicknames")
11395 (description
11396 "This library is a portable compatibility layer around package local nicknames (PLN).
11397 This was done so there is a portability library for the PLN API not included
11398 in DEFPACKAGE.")
11399 (license license:unlicense)))
11400
11401 (define-public cl-trivial-package-local-nicknames
11402 (sbcl-package->cl-source-package sbcl-trivial-package-local-nicknames))
11403
11404 (define-public sbcl-enchant
11405 (let ((commit "6af162a7bf10541cbcfcfa6513894900329713fa"))
11406 (package
11407 (name "sbcl-enchant")
11408 (version (git-version "0.0.0" "1" commit))
11409 (home-page "https://github.com/tlikonen/cl-enchant")
11410 (source
11411 (origin
11412 (method git-fetch)
11413 (uri (git-reference
11414 (url home-page)
11415 (commit commit)))
11416 (file-name (git-file-name name version))
11417 (sha256
11418 (base32 "19yh5ihirzi1d8xqy1cjqipzd6ly3245cfxa5s9xx496rryz0s01"))))
11419 (build-system asdf-build-system/sbcl)
11420 (inputs
11421 `(("enchant" ,enchant)
11422 ("cffi" ,sbcl-cffi)))
11423 (arguments
11424 `(#:phases
11425 (modify-phases %standard-phases
11426 (add-after 'unpack 'fix-paths
11427 (lambda* (#:key inputs #:allow-other-keys)
11428 (substitute* "load-enchant.lisp"
11429 (("libenchant")
11430 (string-append
11431 (assoc-ref inputs "enchant") "/lib/libenchant-2"))))))))
11432 (synopsis "Common Lisp interface for the Enchant spell-checker library")
11433 (description
11434 "Enchant is a Common Lisp interface for the Enchant spell-checker
11435 library. The Enchant library is a generic spell-checker library which uses
11436 other spell-checkers transparently as back-end. The library supports the
11437 multiple checkers, including Aspell and Hunspell.")
11438 (license license:public-domain))))
11439
11440 (define-public cl-enchant
11441 (sbcl-package->cl-source-package sbcl-enchant))
11442
11443 (define-public sbcl-cl-change-case
11444 (let ((commit "5ceff2a5f8bd845b6cb510c6364176b27a238fd3"))
11445 (package
11446 (name "sbcl-cl-change-case")
11447 (version (git-version "0.1.0" "1" commit))
11448 (home-page "https://github.com/rudolfochrist/cl-change-case")
11449 (source
11450 (origin
11451 (method git-fetch)
11452 (uri (git-reference
11453 (url home-page)
11454 (commit commit)))
11455 (file-name (git-file-name name version))
11456 (sha256
11457 (base32 "1afyglglk9z3yg8gylcl301bl2r8vq3sllyznzj9s5xi5gs6qyf2"))))
11458 (build-system asdf-build-system/sbcl)
11459 (inputs
11460 `(("cl-ppcre" ,sbcl-cl-ppcre)
11461 ("cl-ppcre-unicode" ,sbcl-cl-ppcre-unicode)))
11462 (native-inputs
11463 `(("fiveam" ,sbcl-fiveam)))
11464 (arguments
11465 '(;; FIXME: Test pass but phase fails with 'Component
11466 ;; "cl-change-case-test" not found, required by'.
11467 #:tests? #f
11468 #:test-asd-file "cl-change-case-test.asd"))
11469 (synopsis "Convert Common Lisp strings between camelCase, PascalCase and more")
11470 (description
11471 "@code{cl-change-case} is library to convert strings between camelCase,
11472 PascalCase, snake_case, param-case, CONSTANT_CASE and more.")
11473 (license license:llgpl))))
11474
11475 (define-public cl-change-case
11476 (sbcl-package->cl-source-package sbcl-cl-change-case))
11477
11478 (define-public sbcl-moptilities
11479 (let ((commit "a436f16b357c96b82397ec018ea469574c10dd41"))
11480 (package
11481 (name "sbcl-moptilities")
11482 (version (git-version "0.3.13" "1" commit))
11483 (home-page "https://github.com/gwkkwg/moptilities/")
11484 (source
11485 (origin
11486 (method git-fetch)
11487 (uri (git-reference
11488 (url home-page)
11489 (commit commit)))
11490 (file-name (git-file-name name version))
11491 (sha256
11492 (base32 "1q12bqjbj47lx98yim1kfnnhgfhkl80102fkgp9pdqxg0fp6g5fc"))))
11493 (build-system asdf-build-system/sbcl)
11494 (inputs
11495 `(("closer-mop" ,sbcl-closer-mop)))
11496 (native-inputs
11497 `(("lift" ,sbcl-lift)))
11498 (synopsis "Compatibility layer for Common Lisp MOP implementation differences")
11499 (description
11500 "MOP utilities provide a common interface between Lisps and make the
11501 MOP easier to use.")
11502 (license license:expat))))
11503
11504 (define-public cl-moptilities
11505 (sbcl-package->cl-source-package sbcl-moptilities))
11506
11507 (define-public sbcl-osicat
11508 (let ((commit "de0c18a367eedc857e1902a7319828af072a0d97"))
11509 (package
11510 (name "sbcl-osicat")
11511 (version (git-version "0.7.0" "1" commit))
11512 (home-page "http://www.common-lisp.net/project/osicat/")
11513 (source
11514 (origin
11515 (method git-fetch)
11516 (uri (git-reference
11517 (url "https://github.com/osicat/osicat")
11518 (commit commit)))
11519 (file-name (git-file-name name version))
11520 (sha256
11521 (base32 "15viw5pi5sa7qq9b4n2rr3dj2jkqr180rh9z1lh8w3rgl42i2adc"))))
11522 (build-system asdf-build-system/sbcl)
11523 (arguments
11524 `(#:phases
11525 (modify-phases %standard-phases
11526 ;; The cleanup phase moves files around but we need to keep the
11527 ;; directory structure for the grovel-generated library.
11528 (replace 'cleanup
11529 (lambda* (#:key outputs #:allow-other-keys)
11530 (let* ((out (assoc-ref outputs "out"))
11531 (lib (string-append out "/lib/sbcl/")))
11532 (delete-file-recursively (string-append lib "src"))
11533 (delete-file-recursively (string-append lib "tests"))
11534 (for-each delete-file
11535 (filter (lambda (file)
11536 (not (member (basename file) '("libosicat.so"))))
11537 (find-files (string-append lib "posix") ".*"))))
11538 #t)))))
11539 (inputs
11540 `(("alexandria" ,sbcl-alexandria)
11541 ("cffi" ,sbcl-cffi)
11542 ("trivial-features" ,sbcl-trivial-features)))
11543 (native-inputs
11544 `(("cffi-grovel" ,sbcl-cffi-grovel)
11545 ("rt" ,sbcl-rt)))
11546 (synopsis "Operating system interface for Common Lisp")
11547 (description
11548 "Osicat is a lightweight operating system interface for Common Lisp on
11549 Unix-platforms. It is not a POSIX-style API, but rather a simple lispy
11550 accompaniment to the standard ANSI facilities.")
11551 (license license:expat))))
11552
11553 (define-public cl-osicat
11554 (sbcl-package->cl-source-package sbcl-osicat))