gnu: Add cl-log.
[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 Nikita <nikita@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, 2020 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 ;;; Copyright © 2020 Adam Kandur <rndd@tuta.io>
23 ;;; Copyright © 2020 Sharlatan Hellseher <sharlatanus@gmail.com>
24 ;;;
25 ;;; This file is part of GNU Guix.
26 ;;;
27 ;;; GNU Guix is free software; you can redistribute it and/or modify it
28 ;;; under the terms of the GNU General Public License as published by
29 ;;; the Free Software Foundation; either version 3 of the License, or (at
30 ;;; your option) any later version.
31 ;;;
32 ;;; GNU Guix is distributed in the hope that it will be useful, but
33 ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
34 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
35 ;;; GNU General Public License for more details.
36 ;;;
37 ;;; You should have received a copy of the GNU General Public License
38 ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
39
40 ;;; This file only contains Common Lisp libraries.
41 ;;; Common Lisp compilers and tooling go to lisp.scm.
42 ;;; Common Lisp applications should go to the most appropriate file,
43 ;;; e.g. StumpWM is in wm.scm.
44
45 (define-module (gnu packages lisp-xyz)
46 #:use-module (gnu packages)
47 #:use-module ((guix licenses) #:prefix license:)
48 #:use-module (guix packages)
49 #:use-module (guix download)
50 #:use-module (guix git-download)
51 #:use-module (guix hg-download)
52 #:use-module (guix utils)
53 #:use-module (guix build-system asdf)
54 #:use-module (guix build-system trivial)
55 #:use-module (gnu packages c)
56 #:use-module (gnu packages compression)
57 #:use-module (gnu packages databases)
58 #:use-module (gnu packages enchant)
59 #:use-module (gnu packages fonts)
60 #:use-module (gnu packages fontutils)
61 #:use-module (gnu packages glib)
62 #:use-module (gnu packages gtk)
63 #:use-module (gnu packages imagemagick)
64 #:use-module (gnu packages libevent)
65 #:use-module (gnu packages libffi)
66 #:use-module (gnu packages lisp)
67 #:use-module (gnu packages maths)
68 #:use-module (gnu packages networking)
69 #:use-module (gnu packages pkg-config)
70 #:use-module (gnu packages python)
71 #:use-module (gnu packages python-xyz)
72 #:use-module (gnu packages sqlite)
73 #:use-module (gnu packages tcl)
74 #:use-module (gnu packages tls)
75 #:use-module (gnu packages web)
76 #:use-module (gnu packages webkit)
77 #:use-module (gnu packages xdisorg)
78 #:use-module (ice-9 match)
79 #:use-module (srfi srfi-1)
80 #:use-module (srfi srfi-19))
81
82 (define-public sbcl-alexandria
83 (package
84 (name "sbcl-alexandria")
85 (version "1.2")
86 (source
87 (origin
88 (method git-fetch)
89 (uri (git-reference
90 (url "https://gitlab.common-lisp.net/alexandria/alexandria.git")
91 (commit (string-append "v" version))))
92 (sha256
93 (base32
94 "0bcqs0z9xlqgjz43qzgq9i07vdlnjllpm1wwa37wpkg0w975r712"))
95 (file-name (git-file-name name version))))
96 (build-system asdf-build-system/sbcl)
97 (native-inputs
98 `(("rt" ,sbcl-rt)))
99 (synopsis "Collection of portable utilities for Common Lisp")
100 (description
101 "Alexandria is a collection of portable utilities. It does not contain
102 conceptual extensions to Common Lisp. It is conservative in scope, and
103 portable between implementations.")
104 (home-page "https://common-lisp.net/project/alexandria/")
105 (license license:public-domain)))
106
107 (define-public cl-alexandria
108 (sbcl-package->cl-source-package sbcl-alexandria))
109
110 (define-public ecl-alexandria
111 (sbcl-package->ecl-package sbcl-alexandria))
112
113 (define-public sbcl-net.didierverna.asdf-flv
114 (package
115 (name "sbcl-net.didierverna.asdf-flv")
116 (version "2.1")
117 (source
118 (origin
119 (method git-fetch)
120 (uri (git-reference
121 (url "https://github.com/didierverna/asdf-flv")
122 (commit (string-append "version-" version))))
123 (file-name (git-file-name "asdf-flv" version))
124 (sha256
125 (base32 "1fi2y4baxan103jbg4idjddzihy03kwnj2mzbwrknw4d4x7xlgwj"))))
126 (build-system asdf-build-system/sbcl)
127 (synopsis "Common Lisp ASDF extension to provide support for file-local variables")
128 (description "ASDF-FLV provides support for file-local variables through
129 ASDF. A file-local variable behaves like @code{*PACKAGE*} and
130 @code{*READTABLE*} with respect to @code{LOAD} and @code{COMPILE-FILE}: a new
131 dynamic binding is created before processing the file, so that any
132 modification to the variable becomes essentially file-local.
133
134 In order to make one or several variables file-local, use the macros
135 @code{SET-FILE-LOCAL-VARIABLE(S)}.")
136 (home-page "https://www.lrde.epita.fr/~didier/software/lisp/misc.php#asdf-flv")
137 (license (license:non-copyleft
138 "https://www.gnu.org/prep/maintain/html_node/License-Notices-for-Other-Files.html"
139 "GNU All-Permissive License"))))
140
141 (define-public cl-net.didierverna.asdf-flv
142 (sbcl-package->cl-source-package sbcl-net.didierverna.asdf-flv))
143
144 (define-public ecl-net.didierverna.asdf-flv
145 (sbcl-package->ecl-package sbcl-net.didierverna.asdf-flv))
146
147 (define-public sbcl-fiveam
148 (package
149 (name "sbcl-fiveam")
150 (version "1.4.1")
151 (source
152 (origin
153 (method git-fetch)
154 (uri (git-reference
155 (url "https://github.com/sionescu/fiveam")
156 (commit (string-append "v" version))))
157 (file-name (git-file-name "fiveam" version))
158 (sha256
159 (base32 "1q3d38pwafnwnw42clq0f8g5xw7pbzr287jl9jsqmb1vb0n1vrli"))))
160 (inputs
161 `(("alexandria" ,sbcl-alexandria)
162 ("net.didierverna.asdf-flv" ,sbcl-net.didierverna.asdf-flv)
163 ("trivial-backtrace" ,sbcl-trivial-backtrace)))
164 (build-system asdf-build-system/sbcl)
165 (synopsis "Common Lisp testing framework")
166 (description "FiveAM is a simple (as far as writing and running tests
167 goes) regression testing framework. It has been designed with Common Lisp's
168 interactive development model in mind.")
169 (home-page "https://common-lisp.net/project/fiveam/")
170 (license license:bsd-3)))
171
172 (define-public cl-fiveam
173 (sbcl-package->cl-source-package sbcl-fiveam))
174
175 (define-public ecl-fiveam
176 (sbcl-package->ecl-package sbcl-fiveam))
177
178 (define-public sbcl-bordeaux-threads
179 (package
180 (name "sbcl-bordeaux-threads")
181 (version "0.8.8")
182 (source (origin
183 (method git-fetch)
184 (uri (git-reference
185 (url "https://github.com/sionescu/bordeaux-threads")
186 (commit (string-append "v" version))))
187 (sha256
188 (base32 "19i443fz3488v1pbbr9x24y8h8vlyhny9vj6c9jk5prm702awrp6"))
189 (file-name
190 (git-file-name "bordeaux-threads" version))))
191 (inputs `(("alexandria" ,sbcl-alexandria)))
192 (native-inputs `(("fiveam" ,sbcl-fiveam)))
193 (build-system asdf-build-system/sbcl)
194 (synopsis "Portable shared-state concurrency library for Common Lisp")
195 (description "BORDEAUX-THREADS is a proposed standard for a minimal
196 MP/Threading interface. It is similar to the CLIM-SYS threading and lock
197 support.")
198 (home-page "https://common-lisp.net/project/bordeaux-threads/")
199 (license license:x11)))
200
201 (define-public cl-bordeaux-threads
202 (sbcl-package->cl-source-package sbcl-bordeaux-threads))
203
204 (define-public ecl-bordeaux-threads
205 (sbcl-package->ecl-package sbcl-bordeaux-threads))
206
207 (define-public sbcl-trivial-gray-streams
208 (let ((revision "1")
209 (commit "ebd59b1afed03b9dc8544320f8f432fdf92ab010"))
210 (package
211 (name "sbcl-trivial-gray-streams")
212 (version (string-append "0.0.0-" revision "." (string-take commit 7)))
213 (source
214 (origin
215 (method git-fetch)
216 (uri
217 (git-reference
218 (url "https://github.com/trivial-gray-streams/trivial-gray-streams")
219 (commit commit)))
220 (sha256
221 (base32 "0b1pxlccmnagk9cbh4cy8s5k66g3x0gwib5shjwr24xvrji6lp94"))
222 (file-name
223 (string-append "trivial-gray-streams-" version "-checkout"))))
224 (build-system asdf-build-system/sbcl)
225 (synopsis "Compatibility layer for Gray streams implementations")
226 (description "Gray streams is an interface proposed for inclusion with
227 ANSI CL by David N. Gray. The proposal did not make it into ANSI CL, but most
228 popular CL implementations implement it. This package provides an extremely
229 thin compatibility layer for gray streams.")
230 (home-page "https://www.cliki.net/trivial-gray-streams")
231 (license license:x11))))
232
233 (define-public cl-trivial-gray-streams
234 (sbcl-package->cl-source-package sbcl-trivial-gray-streams))
235
236 (define-public ecl-trivial-gray-streams
237 (sbcl-package->ecl-package sbcl-trivial-gray-streams))
238
239 (define-public sbcl-fiasco
240 (let ((commit "d62f7558b21addc89f87e306f65d7f760632655f")
241 (revision "1"))
242 (package
243 (name "sbcl-fiasco")
244 (version (git-version "0.0.1" revision commit))
245 (source
246 (origin
247 (method git-fetch)
248 (uri (git-reference
249 (url "https://github.com/joaotavora/fiasco")
250 (commit commit)))
251 (file-name (git-file-name "fiasco" version))
252 (sha256
253 (base32
254 "1zwxs3d6iswayavcmb49z2892xhym7n556d8dnmvalc32pm9bkjh"))))
255 (build-system asdf-build-system/sbcl)
256 (inputs
257 `(("alexandria" ,sbcl-alexandria)
258 ("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
259 (synopsis "Simple and powerful test framework for Common Lisp")
260 (description "A Common Lisp test framework that treasures your failures,
261 logical continuation of Stefil. It focuses on interactive debugging.")
262 (home-page "https://github.com/joaotavora/fiasco")
263 ;; LICENCE specifies this is public-domain unless the legislation
264 ;; doesn't allow or recognize it. In that case it falls back to a
265 ;; permissive licence.
266 (license (list license:public-domain
267 (license:x11-style "file://LICENCE"))))))
268
269 (define-public cl-fiasco
270 (sbcl-package->cl-source-package sbcl-fiasco))
271
272 (define-public ecl-fiasco
273 (sbcl-package->ecl-package sbcl-fiasco))
274
275 (define-public sbcl-flexi-streams
276 (package
277 (name "sbcl-flexi-streams")
278 (version "1.0.18")
279 (source
280 (origin
281 (method git-fetch)
282 (uri (git-reference
283 (url "https://github.com/edicl/flexi-streams")
284 (commit (string-append "v" version))))
285 (file-name (git-file-name "flexi-streams" version))
286 (sha256
287 (base32 "0bjv7fd2acknidc5dyi3h85pn10krxv5jyxs1xg8jya2rlfv7f1j"))))
288 (build-system asdf-build-system/sbcl)
289 (arguments
290 `(#:phases
291 (modify-phases %standard-phases
292 (add-after 'unpack 'make-git-checkout-writable
293 (lambda _
294 (for-each make-file-writable (find-files "."))
295 #t)))))
296 (inputs `(("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
297 (synopsis "Implementation of virtual bivalent streams for Common Lisp")
298 (description "Flexi-streams is an implementation of \"virtual\" bivalent
299 streams that can be layered atop real binary or bivalent streams and that can
300 be used to read and write character data in various single- or multi-octet
301 encodings which can be changed on the fly. It also supplies in-memory binary
302 streams which are similar to string streams.")
303 (home-page "http://weitz.de/flexi-streams/")
304 (license license:bsd-3)))
305
306 (define-public cl-flexi-streams
307 (sbcl-package->cl-source-package sbcl-flexi-streams))
308
309 (define-public ecl-flexi-streams
310 (sbcl-package->ecl-package sbcl-flexi-streams))
311
312 (define-public sbcl-cl-ppcre
313 (package
314 (name "sbcl-cl-ppcre")
315 (version "2.1.1")
316 (source
317 (origin
318 (method git-fetch)
319 (uri (git-reference
320 (url "https://github.com/edicl/cl-ppcre")
321 (commit (string-append "v" version))))
322 (file-name (git-file-name "cl-ppcre" version))
323 (sha256
324 (base32 "0dwvr29diqzcg5n6jvbk2rnd90i05l7n828hhw99khmqd0kz7xsi"))))
325 (build-system asdf-build-system/sbcl)
326 (native-inputs
327 `(("flexi-streams" ,sbcl-flexi-streams)))
328 (arguments
329 `(#:phases
330 (modify-phases %standard-phases
331 (add-after 'unpack 'disable-ppcre-unicode
332 ;; cl-ppcre and cl-ppcre-unicode are put in different packages
333 ;; to work around the circular dependency between edicl/cl-ppcre
334 ;; and edicl/cl-unicode.
335 (lambda _
336 (delete-file "cl-ppcre-unicode.asd")
337 #t)))))
338 (synopsis "Portable regular expression library for Common Lisp")
339 (description "CL-PPCRE is a portable regular expression library for Common
340 Lisp, which is compatible with perl. It is pretty fast, thread-safe, and
341 compatible with ANSI-compliant Common Lisp implementations.")
342 (home-page "http://weitz.de/cl-ppcre/")
343 (license license:bsd-2)))
344
345 (define-public cl-ppcre
346 (sbcl-package->cl-source-package sbcl-cl-ppcre))
347
348 (define-public ecl-cl-ppcre
349 (sbcl-package->ecl-package sbcl-cl-ppcre))
350
351 (define-public sbcl-cl-unicode
352 (package
353 (name "sbcl-cl-unicode")
354 (version "0.1.6")
355 (source (origin
356 (method git-fetch)
357 (uri (git-reference
358 (url "https://github.com/edicl/cl-unicode")
359 (commit (string-append "v" version))))
360 (file-name (git-file-name name version))
361 (sha256
362 (base32
363 "0ykx2s9lqfl74p1px0ik3l2izd1fc9jd1b4ra68s5x34rvjy0hza"))))
364 (build-system asdf-build-system/sbcl)
365 (native-inputs
366 `(("flexi-streams" ,sbcl-flexi-streams)))
367 (inputs
368 `(("cl-ppcre" ,sbcl-cl-ppcre)))
369 (home-page "http://weitz.de/cl-unicode/")
370 (synopsis "Portable Unicode library for Common Lisp")
371 (description "CL-UNICODE is a portable Unicode library Common Lisp, which
372 is compatible with perl. It is pretty fast, thread-safe, and compatible with
373 ANSI-compliant Common Lisp implementations.")
374 (license license:bsd-2)))
375
376 (define-public ecl-cl-unicode
377 (sbcl-package->ecl-package sbcl-cl-unicode))
378
379 (define-public cl-unicode
380 (sbcl-package->cl-source-package sbcl-cl-unicode))
381
382 (define-public sbcl-cl-ppcre-unicode
383 (package (inherit sbcl-cl-ppcre)
384 (name "sbcl-cl-ppcre-unicode")
385 (inputs
386 `(("sbcl-cl-ppcre" ,sbcl-cl-ppcre)
387 ("sbcl-cl-unicode" ,sbcl-cl-unicode)))
388 (arguments
389 `(#:tests? #f ; tests fail with "Component :CL-PPCRE-TEST not found"
390 #:phases
391 (modify-phases %standard-phases
392 (add-after 'unpack 'disable-ppcre
393 ;; cl-ppcre and cl-ppcre-unicode are put in different packages
394 ;; to work around the circular dependency between edicl/cl-ppcre
395 ;; and edicl/cl-unicode.
396 (lambda _
397 (delete-file "cl-ppcre.asd")
398 #t)))))))
399
400 (define-public cl-ppcre-unicode
401 (sbcl-package->cl-source-package sbcl-cl-ppcre-unicode))
402
403 (define-public ecl-cl-ppcre-unicode
404 (sbcl-package->ecl-package sbcl-cl-ppcre-unicode))
405
406 (define-public sbcl-zpb-ttf
407 (package
408 (name "sbcl-zpb-ttf")
409 (version "1.0.3")
410 (source
411 (origin
412 (method git-fetch)
413 (uri (git-reference
414 (url "https://github.com/xach/zpb-ttf")
415 (commit (string-append "release-" version))))
416 (file-name (git-file-name name version))
417 (sha256
418 (base32
419 "1wh66vjijzqlydnrihynpwp6796917xwrh0i9li93c17kyxa74ih"))))
420 (build-system asdf-build-system/sbcl)
421 (home-page "https://github.com/xach/zpb-ttf")
422 (synopsis "TrueType font file access for Common Lisp")
423 (description
424 "ZPB-TTF is a TrueType font file parser that provides an interface for
425 reading typographic metrics, glyph outlines, and other information from the
426 file.")
427 (license license:bsd-2)))
428
429 (define-public ecl-zpb-ttf
430 (sbcl-package->ecl-package sbcl-zpb-ttf))
431
432 (define-public cl-zpb-ttf
433 (sbcl-package->cl-source-package sbcl-zpb-ttf))
434
435 (define-public sbcl-cl-vectors
436 (package
437 (name "sbcl-cl-vectors")
438 (version "0.1.5")
439 (source
440 (origin
441 (method url-fetch)
442 (uri (string-append "http://projects.tuxee.net/cl-vectors/"
443 "files/cl-vectors-" version ".tar.gz"))
444 (sha256
445 (base32
446 "04lhwi0kq8pkwhgd885pk80m1cp9sfvjjn5zj70s1dnckibhdmqh"))))
447 (build-system asdf-build-system/sbcl)
448 (inputs
449 `(("zpb-ttf" ,sbcl-zpb-ttf)))
450 (arguments
451 '(#:asd-systems '("cl-vectors"
452 "cl-paths-ttf")))
453 (home-page "http://projects.tuxee.net/cl-vectors/")
454 (synopsis "Create, transform and render anti-aliased vectorial paths")
455 (description
456 "This is a pure Common Lisp library to create, transform and render
457 anti-aliased vectorial paths.")
458 (license license:expat)))
459
460 (define-public ecl-cl-vectors
461 (sbcl-package->ecl-package sbcl-cl-vectors))
462
463 (define-public cl-vectors
464 (sbcl-package->cl-source-package sbcl-cl-vectors))
465
466 (define-public sbcl-spatial-trees
467 ;; There have been no releases.
468 (let ((commit "81fdad0a0bf109c80a53cc96eca2e093823400ba")
469 (revision "1"))
470 (package
471 (name "sbcl-spatial-trees")
472 (version (git-version "0" revision commit))
473 (source
474 (origin
475 (method git-fetch)
476 (uri (git-reference
477 (url "https://github.com/rpav/spatial-trees")
478 (commit commit)))
479 (file-name (git-file-name name version))
480 (sha256
481 (base32
482 "11rhc6h501dwcik2igkszz7b9n515cr99m5pjh4r2qfwgiri6ysa"))))
483 (build-system asdf-build-system/sbcl)
484 (arguments
485 '(#:tests? #f ; spatial-trees.test requires spatial-trees.nns
486 #:test-asd-file "spatial-trees.test.asd"))
487 (native-inputs
488 `(("fiveam" ,sbcl-fiveam)))
489 (home-page "https://github.com/rpav/spatial-trees")
490 (synopsis "Dynamic index data structures for spatially-extended data")
491 (description
492 "Spatial-trees is a set of dynamic index data structures for
493 spatially-extended data.")
494 (license license:bsd-3))))
495
496 (define-public ecl-spatial-trees
497 (sbcl-package->ecl-package sbcl-spatial-trees))
498
499 (define-public cl-spatial-trees
500 (sbcl-package->cl-source-package sbcl-spatial-trees))
501
502 (define-public sbcl-flexichain
503 ;; There are no releases.
504 (let ((commit "13d2a6c505ed0abfcd4c4ec7d7145059b06855d6")
505 (revision "1"))
506 (package
507 (name "sbcl-flexichain")
508 (version "1.5.1")
509 (source
510 (origin
511 (method git-fetch)
512 (uri (git-reference
513 (url "https://github.com/robert-strandh/Flexichain")
514 (commit commit)))
515 (file-name (git-file-name name version))
516 (sha256
517 (base32
518 "0pfyvhsfbjd2sjb30grfs52r51a428xglv7bwydvpg2lc117qimg"))))
519 (build-system asdf-build-system/sbcl)
520 (home-page "https://github.com/robert-strandh/Flexichain.git")
521 (synopsis "Dynamically add elements to or remove them from sequences")
522 (description
523 "This package provides an implementation of the flexichain protocol,
524 allowing client code to dynamically add elements to, and delete elements from
525 a sequence (or chain) of such elements.")
526 (license license:lgpl2.1+))))
527
528 (define-public ecl-flexichain
529 (sbcl-package->ecl-package sbcl-flexichain))
530
531 (define-public cl-flexichain
532 (sbcl-package->cl-source-package sbcl-flexichain))
533
534 (define-public sbcl-cl-pdf
535 ;; There are no releases
536 (let ((commit "752e337e6d6fc206f09d091a982e7f8e5c404e4e")
537 (revision "1"))
538 (package
539 (name "sbcl-cl-pdf")
540 (version (git-version "0" revision commit))
541 (source
542 (origin
543 (method git-fetch)
544 (uri (git-reference
545 (url "https://github.com/mbattyani/cl-pdf")
546 (commit commit)))
547 (file-name (git-file-name name version))
548 (sha256
549 (base32
550 "1cg3k3m3r11ipb8j008y8ipynj97l3xjlpi2knqc9ndmx4r3kb1r"))))
551 (build-system asdf-build-system/sbcl)
552 (inputs
553 `(("iterate" ,sbcl-iterate)
554 ("zpb-ttf" ,sbcl-zpb-ttf)))
555 (home-page "https://github.com/mbattyani/cl-pdf")
556 (synopsis "Common Lisp library for generating PDF files")
557 (description
558 "CL-PDF is a cross-platform Common Lisp library for generating PDF
559 files.")
560 (license license:bsd-2))))
561
562 (define-public ecl-cl-pdf
563 (sbcl-package->ecl-package sbcl-cl-pdf))
564
565 (define-public cl-pdf
566 (sbcl-package->cl-source-package sbcl-cl-pdf))
567
568 (define-public sbcl-clx
569 (package
570 (name "sbcl-clx")
571 (version "0.7.5")
572 (source
573 (origin
574 (method git-fetch)
575 (uri
576 (git-reference
577 (url "https://github.com/sharplispers/clx")
578 (commit version)))
579 (sha256
580 (base32
581 "1vi67z9hpj5rr4xcmfbfwzmlcc0ah7hzhrmfid6lqdkva238v2wf"))
582 (file-name (string-append "clx-" version))))
583 (build-system asdf-build-system/sbcl)
584 (native-inputs
585 `(("fiasco" ,sbcl-fiasco)))
586 (home-page "https://www.cliki.net/portable-clx")
587 (synopsis "X11 client library for Common Lisp")
588 (description "CLX is an X11 client library for Common Lisp. The code was
589 originally taken from a CMUCL distribution, was modified somewhat in order to
590 make it compile and run under SBCL, then a selection of patches were added
591 from other CLXes around the net.")
592 (license license:x11)))
593
594 (define-public cl-clx
595 (sbcl-package->cl-source-package sbcl-clx))
596
597 (define-public ecl-clx
598 (sbcl-package->ecl-package sbcl-clx))
599
600 (define-public sbcl-clx-truetype
601 (let ((commit "c6e10a918d46632324d5863a8ed067a83fc26de8")
602 (revision "1"))
603 (package
604 (name "sbcl-clx-truetype")
605 (version (git-version "0.0.1" revision commit))
606 (source
607 (origin
608 (method git-fetch)
609 (uri (git-reference
610 (url "https://github.com/l04m33/clx-truetype")
611 (commit commit)))
612 (file-name (git-file-name name version))
613 (sha256
614 (base32
615 "079hyp92cjkdfn6bhkxsrwnibiqbz4y4af6nl31lzw6nm91j5j37"))
616 (modules '((guix build utils)))
617 (snippet
618 '(begin
619 (substitute* "package.lisp"
620 ((":export") ":export\n :+font-cache-filename+"))
621 #t))))
622 (build-system asdf-build-system/sbcl)
623 (inputs
624 `(("clx" ,sbcl-clx)
625 ("zpb-ttf" ,sbcl-zpb-ttf)
626 ("cl-vectors" ,sbcl-cl-vectors)
627 ("cl-fad" ,sbcl-cl-fad)
628 ("cl-store" ,sbcl-cl-store)
629 ("trivial-features" ,sbcl-trivial-features)))
630 (home-page "https://github.com/l04m33/clx-truetype")
631 (synopsis "Antialiased TrueType font rendering using CLX and XRender")
632 (description "CLX-TrueType is pure common lisp solution for
633 antialiased TrueType font rendering using CLX and XRender extension.")
634 (license license:expat))))
635
636 (define-public cl-clx-truetype
637 (sbcl-package->cl-source-package sbcl-clx-truetype))
638
639 (define-public ecl-clx-truetype
640 (sbcl-package->ecl-package sbcl-clx-truetype))
641
642 (define-public sbcl-slynk
643 (let ((revision "4")
644 ;; Update together with emacs-sly.
645 (commit "68561f1b7b66fa0240766ece836bb04da31ea17d"))
646 (package
647 (name "sbcl-slynk")
648 (version (git-version "1.0.0-beta" revision commit))
649 (source
650 (origin
651 (method git-fetch)
652 (uri
653 (git-reference
654 (url "https://github.com/joaotavora/sly")
655 (commit commit)))
656 (sha256
657 (base32 "1xwx537dhgclngi6b0faf320i8pnac9309wvmk6z2g6dm3v652ds"))
658 (file-name (git-file-name "slynk" version))
659 (modules '((guix build utils)
660 (ice-9 ftw)))
661 (snippet
662 '(begin
663 ;; Move the contribs into the main source directory for easier
664 ;; access
665 (substitute* "slynk/slynk.asd"
666 (("\\.\\./contrib")
667 "contrib"))
668 (rename-file "contrib" "slynk/contrib")
669 ;; Move slynk's contents into the base directory for easier
670 ;; access
671 (for-each (lambda (file)
672 (unless (string-prefix? "." file)
673 (rename-file (string-append "slynk/" file)
674 (string-append "./" (basename file)))))
675 (scandir "slynk"))
676 #t))))
677 (build-system asdf-build-system/sbcl)
678 (outputs '("out" "image"))
679 (arguments
680 `(#:tests? #f ; No test suite
681 #:asd-systems '("slynk"
682 "slynk/arglists"
683 "slynk/fancy-inspector"
684 "slynk/package-fu"
685 "slynk/mrepl"
686 "slynk/trace-dialog"
687 "slynk/profiler"
688 "slynk/stickers"
689 "slynk/indentation"
690 "slynk/retro")
691 #:phases
692 (modify-phases %standard-phases
693 (add-after 'create-asdf-configuration 'build-image
694 (lambda* (#:key outputs #:allow-other-keys)
695 (build-image (string-append
696 (assoc-ref %outputs "image")
697 "/bin/slynk")
698 %outputs
699 #:dependencies '("slynk"
700 "slynk/arglists"
701 "slynk/fancy-inspector"
702 "slynk/package-fu"
703 "slynk/mrepl"
704 "slynk/trace-dialog"
705 "slynk/profiler"
706 "slynk/stickers"
707 "slynk/indentation"
708 "slynk/retro"))
709 #t)))))
710 (synopsis "Common Lisp IDE for Emacs")
711 (description "SLY is a fork of SLIME, an IDE backend for Common Lisp.
712 It also features a completely redesigned REPL based on Emacs's own
713 full-featured @code{comint-mode}, live code annotations, and a consistent interactive
714 button interface. Everything can be copied to the REPL. One can create
715 multiple inspectors with independent history.")
716 (home-page "https://github.com/joaotavora/sly")
717 (license license:public-domain)
718 (properties `((cl-source-variant . ,(delay cl-slynk)))))))
719
720 (define-public cl-slynk
721 (sbcl-package->cl-source-package sbcl-slynk))
722
723 (define-public ecl-slynk
724 (let ((pkg (sbcl-package->ecl-package sbcl-slynk)))
725 (package
726 (inherit pkg)
727 (outputs '("out"))
728 (arguments
729 (substitute-keyword-arguments (package-arguments pkg)
730 ((#:phases phases)
731 `(modify-phases ,phases
732 (delete 'build-image))))))))
733
734 (define-public sbcl-parse-js
735 (let ((commit "fbadc6029bec7039602abfc06c73bb52970998f6")
736 (revision "1"))
737 (package
738 (name "sbcl-parse-js")
739 (version (string-append "0.0.0-" revision "." (string-take commit 9)))
740 (source
741 (origin
742 (method git-fetch)
743 (uri (git-reference
744 (url "http://marijn.haverbeke.nl/git/parse-js")
745 (commit commit)))
746 (file-name (string-append name "-" commit "-checkout"))
747 (sha256
748 (base32
749 "1wddrnr5kiya5s3gp4cdq6crbfy9fqcz7fr44p81502sj3bvdv39"))))
750 (build-system asdf-build-system/sbcl)
751 (home-page "https://marijnhaverbeke.nl/parse-js/")
752 (synopsis "Parse JavaScript")
753 (description "Parse-js is a Common Lisp package for parsing
754 JavaScript (ECMAScript 3). It has basic support for ECMAScript 5.")
755 (license license:zlib))))
756
757 (define-public cl-parse-js
758 (sbcl-package->cl-source-package sbcl-parse-js))
759
760 (define-public ecl-parse-js
761 (sbcl-package->ecl-package sbcl-parse-js))
762
763 (define-public sbcl-parse-number
764 (package
765 (name "sbcl-parse-number")
766 (version "1.7")
767 (source
768 (origin
769 (method git-fetch)
770 (uri (git-reference
771 (url "https://github.com/sharplispers/parse-number/")
772 (commit (string-append "v" version))))
773 (file-name (git-file-name name version))
774 (sha256
775 (base32
776 "0sk06ib1bhqv9y39vwnnw44vmbc4b0kvqm37xxmkxd4dwchq82d7"))))
777 (build-system asdf-build-system/sbcl)
778 (home-page "https://www.cliki.net/PARSE-NUMBER")
779 (synopsis "Parse numbers")
780 (description "@code{parse-number} is a library of functions for parsing
781 strings into one of the standard Common Lisp number types without using the
782 reader. @code{parse-number} accepts an arbitrary string and attempts to parse
783 the string into one of the standard Common Lisp number types, if possible, or
784 else @code{parse-number} signals an error of type @code{invalid-number}.")
785 (license license:bsd-3)))
786
787 (define-public cl-parse-number
788 (sbcl-package->cl-source-package sbcl-parse-number))
789
790 (define-public ecl-parse-number
791 (sbcl-package->ecl-package sbcl-parse-number))
792
793 (define-public sbcl-iterate
794 (package
795 (name "sbcl-iterate")
796 (version "1.5")
797 (source
798 (origin
799 (method url-fetch)
800 (uri (string-append "https://common-lisp.net/project/iterate/releases/"
801 "iterate-" version ".tar.gz"))
802 (sha256
803 (base32
804 "1lqsbhrkfl0yif46aymvb7l3nb9wdcmj4jyw485blj32jb4famzn"))))
805 (build-system asdf-build-system/sbcl)
806 (native-inputs
807 `(("rt" ,sbcl-rt)))
808 (home-page "https://common-lisp.net/project/iterate/")
809 (synopsis "Iteration construct for Common Lisp")
810 (description "@code{iterate} is an iteration construct for Common Lisp.
811 It is similar to the @code{CL:LOOP} macro, with these distinguishing marks:
812
813 @itemize
814 @item it is extensible,
815 @item it helps editors like Emacs indent iterate forms by having a more
816 lisp-like syntax, and
817 @item it isn't part of the ANSI standard for Common Lisp.
818 @end itemize\n")
819 (license license:expat)))
820
821 (define-public cl-iterate
822 (sbcl-package->cl-source-package sbcl-iterate))
823
824 (define-public ecl-iterate
825 (sbcl-package->ecl-package sbcl-iterate))
826
827 (define-public sbcl-cl-uglify-js
828 ;; There have been many bug fixes since the 2010 release.
829 (let ((commit "429c5e1d844e2f96b44db8fccc92d6e8e28afdd5")
830 (revision "1"))
831 (package
832 (name "sbcl-cl-uglify-js")
833 (version (string-append "0.1-" revision "." (string-take commit 9)))
834 (source
835 (origin
836 (method git-fetch)
837 (uri (git-reference
838 (url "https://github.com/mishoo/cl-uglify-js")
839 (commit commit)))
840 (file-name (git-file-name name version))
841 (sha256
842 (base32
843 "0k39y3c93jgxpr7gwz7w0d8yknn1fdnxrjhd03057lvk5w8js27a"))))
844 (build-system asdf-build-system/sbcl)
845 (inputs
846 `(("sbcl-parse-js" ,sbcl-parse-js)
847 ("sbcl-cl-ppcre" ,sbcl-cl-ppcre)
848 ("sbcl-cl-ppcre-unicode" ,sbcl-cl-ppcre-unicode)
849 ("sbcl-parse-number" ,sbcl-parse-number)
850 ("sbcl-iterate" ,sbcl-iterate)))
851 (home-page "https://github.com/mishoo/cl-uglify-js")
852 (synopsis "JavaScript compressor library for Common Lisp")
853 (description "This is a Common Lisp version of UglifyJS, a JavaScript
854 compressor. It works on data produced by @code{parse-js} to generate a
855 @dfn{minified} version of the code. Currently it can:
856
857 @itemize
858 @item reduce variable names (usually to single letters)
859 @item join consecutive @code{var} statements
860 @item resolve simple binary expressions
861 @item group most consecutive statements using the @code{sequence} operator (comma)
862 @item remove unnecessary blocks
863 @item convert @code{IF} expressions in various ways that result in smaller code
864 @item remove some unreachable code
865 @end itemize\n")
866 (license license:zlib))))
867
868 (define-public cl-uglify-js
869 (sbcl-package->cl-source-package sbcl-cl-uglify-js))
870
871 (define-public ecl-cl-uglify-js
872 (sbcl-package->ecl-package sbcl-cl-uglify-js))
873
874 (define-public uglify-js
875 (package
876 (inherit sbcl-cl-uglify-js)
877 (name "uglify-js")
878 (build-system trivial-build-system)
879 (arguments
880 `(#:modules ((guix build utils))
881 #:builder
882 (let* ((bin (string-append (assoc-ref %outputs "out") "/bin/"))
883 (script (string-append bin "uglify-js")))
884 (use-modules (guix build utils))
885 (mkdir-p bin)
886 (with-output-to-file script
887 (lambda _
888 (format #t "#!~a/bin/sbcl --script
889
890 (require :asdf)
891 (asdf:initialize-source-registry
892 #p\"~a/etc/common-lisp/source-registry.conf.d/\")
893 (asdf:initialize-output-translations
894 #p\"~a/etc/common-lisp/asdf-output-translations.conf.d/\")"
895 (assoc-ref %build-inputs "sbcl")
896 (assoc-ref %build-inputs "sbcl-cl-uglify-js")
897 (assoc-ref %build-inputs "sbcl-cl-uglify-js"))
898 ;; FIXME: cannot use progn here because otherwise it fails to
899 ;; find cl-uglify-js.
900 (for-each
901 write
902 '(;; Quiet, please!
903 (let ((*standard-output* (make-broadcast-stream))
904 (*error-output* (make-broadcast-stream)))
905 (asdf:load-system :cl-uglify-js))
906 (let ((file (cadr *posix-argv*)))
907 (if file
908 (format t "~a"
909 (cl-uglify-js:ast-gen-code
910 (cl-uglify-js:ast-mangle
911 (cl-uglify-js:ast-squeeze
912 (with-open-file (in file)
913 (parse-js:parse-js in))))
914 :beautify nil))
915 (progn
916 (format *error-output*
917 "Please provide a JavaScript file.~%")
918 (sb-ext:exit :code 1))))))))
919 (chmod script #o755)
920 #t)))
921 (inputs
922 `(("sbcl" ,sbcl)
923 ("sbcl-cl-uglify-js" ,sbcl-cl-uglify-js)))
924 (synopsis "JavaScript compressor")))
925
926 (define-public sbcl-cl-strings
927 (let ((revision "1")
928 (commit "c5c5cbafbf3e6181d03c354d66e41a4f063f00ae"))
929 (package
930 (name "sbcl-cl-strings")
931 (version (git-version "0.0.0" revision commit))
932 (source
933 (origin
934 (method git-fetch)
935 (uri (git-reference
936 (url "https://github.com/diogoalexandrefranco/cl-strings")
937 (commit commit)))
938 (sha256
939 (base32
940 "00754mfaqallj480lwd346nkfb6ra8pa8xcxcylf4baqn604zlmv"))
941 (file-name (string-append "cl-strings-" version "-checkout"))))
942 (build-system asdf-build-system/sbcl)
943 (synopsis "Portable, dependency-free set of utilities to manipulate strings in Common Lisp")
944 (description
945 "@command{cl-strings} is a small, portable, dependency-free set of
946 utilities that make it even easier to manipulate text in Common Lisp. It has
947 100% test coverage and works at least on sbcl, ecl, ccl, abcl and clisp.")
948 (home-page "https://github.com/diogoalexandrefranco/cl-strings")
949 (license license:expat))))
950
951 (define-public cl-strings
952 (sbcl-package->cl-source-package sbcl-cl-strings))
953
954 (define-public ecl-cl-strings
955 (sbcl-package->ecl-package sbcl-cl-strings))
956
957 (define-public sbcl-trivial-features
958 ;; No release since 2014.
959 (let ((commit "870d03de0ed44067963350936856e17ee725153e"))
960 (package
961 (name "sbcl-trivial-features")
962 (version (git-version "0.8" "1" commit))
963 (source
964 (origin
965 (method git-fetch)
966 (uri (git-reference
967 (url "https://github.com/trivial-features/trivial-features")
968 (commit commit)))
969 (file-name (git-file-name "trivial-features" version))
970 (sha256
971 (base32 "14pcahr8r2j3idhyy216zyw8jnj1dnrx0qbkkbdqkvwzign1ah4j"))))
972 (build-system asdf-build-system/sbcl)
973 (arguments
974 '(#:asd-files '("trivial-features.asd")
975 #:tests? #f))
976 (home-page "https://cliki.net/trivial-features")
977 (synopsis "Ensures consistency of @code{*FEATURES*} in Common Lisp")
978 (description "Trivial-features ensures that @code{*FEATURES*} is
979 consistent across multiple Common Lisp implementations.")
980 (license license:expat))))
981
982 (define-public cl-trivial-features
983 (sbcl-package->cl-source-package sbcl-trivial-features))
984
985 (define-public ecl-trivial-features
986 (sbcl-package->ecl-package sbcl-trivial-features))
987
988 (define-public sbcl-hu.dwim.asdf
989 (package
990 (name "sbcl-hu.dwim.asdf")
991 (version "20190521")
992 (source
993 (origin
994 (method url-fetch)
995 (uri (string-append "http://beta.quicklisp.org/archive/hu.dwim.asdf/"
996 "2019-05-21/hu.dwim.asdf-" version "-darcs.tgz"))
997 (sha256
998 (base32
999 "0rsbv71vyszy8w35yjwb5h6zcmknjq223hkzir79y72qdsc6sabn"))))
1000 (build-system asdf-build-system/sbcl)
1001 (home-page "https://hub.darcs.net/hu.dwim/hu.dwim.asdf")
1002 (synopsis "Extensions to ASDF")
1003 (description "Various ASDF extensions such as attached test and
1004 documentation system, explicit development support, etc.")
1005 (license license:public-domain)))
1006
1007 (define-public cl-hu.dwim.asdf
1008 (sbcl-package->cl-source-package sbcl-hu.dwim.asdf))
1009
1010 (define-public ecl-hu.dwim.asdf
1011 (sbcl-package->ecl-package sbcl-hu.dwim.asdf))
1012
1013 (define-public sbcl-hu.dwim.stefil
1014 (let ((commit "ab6d1aa8995878a1b66d745dfd0ba021090bbcf9"))
1015 (package
1016 (name "sbcl-hu.dwim.stefil")
1017 (version (git-version "0.0.0" "1" commit))
1018 (source
1019 (origin
1020 (method git-fetch)
1021 (uri
1022 (git-reference
1023 (url "https://gitlab.common-lisp.net/xcvb/hu.dwim.stefil.git")
1024 (commit commit)))
1025 (sha256
1026 (base32 "1d8yccw65zj3zh46cbi3x6nmn1dwdb76s9d0av035077mvyirqqp"))
1027 (file-name (git-file-name "hu.dwim.stefil" version))))
1028 (build-system asdf-build-system/sbcl)
1029 (native-inputs
1030 `(("asdf:cl-hu.dwim.asdf" ,sbcl-hu.dwim.asdf)))
1031 (inputs
1032 `(("sbcl-alexandria" ,sbcl-alexandria)))
1033 (home-page "https://hub.darcs.net/hu.dwim/hu.dwim.stefil")
1034 (synopsis "Simple test framework")
1035 (description "Stefil is a simple test framework for Common Lisp,
1036 with a focus on interactive development.")
1037 (license license:public-domain))))
1038
1039 (define-public cl-hu.dwim.stefil
1040 (sbcl-package->cl-source-package sbcl-hu.dwim.stefil))
1041
1042 (define-public ecl-hu.dwim.stefil
1043 (sbcl-package->ecl-package sbcl-hu.dwim.stefil))
1044
1045 (define-public sbcl-babel
1046 ;; No release since 2014.
1047 (let ((commit "aeed2d1b76358db48e6b70a64399c05678a6b9ea"))
1048 (package
1049 (name "sbcl-babel")
1050 (version (git-version "0.5.0" "1" commit))
1051 (source
1052 (origin
1053 (method git-fetch)
1054 (uri (git-reference
1055 (url "https://github.com/cl-babel/babel")
1056 (commit commit)))
1057 (file-name (git-file-name "babel" version))
1058 (sha256
1059 (base32 "0lkvv4xdpv4cv1y2bqillmabx8sdb2y4l6pbinq6mjh33w2brpvb"))))
1060 (build-system asdf-build-system/sbcl)
1061 (native-inputs
1062 `(("tests:cl-hu.dwim.stefil" ,sbcl-hu.dwim.stefil)))
1063 (inputs
1064 `(("sbcl-alexandria" ,sbcl-alexandria)
1065 ("sbcl-trivial-features" ,sbcl-trivial-features)))
1066 (home-page "https://common-lisp.net/project/babel/")
1067 (synopsis "Charset encoding and decoding library")
1068 (description "Babel is a charset encoding and decoding library, not unlike
1069 GNU libiconv, but completely written in Common Lisp.")
1070 (license license:expat))))
1071
1072 (define-public cl-babel
1073 (sbcl-package->cl-source-package sbcl-babel))
1074
1075 (define-public ecl-babel
1076 (sbcl-package->ecl-package sbcl-babel))
1077
1078 (define-public sbcl-cl-yacc
1079 (package
1080 (name "sbcl-cl-yacc")
1081 (version "0.3")
1082 (source
1083 (origin
1084 (method git-fetch)
1085 (uri (git-reference
1086 (url "https://github.com/jech/cl-yacc")
1087 (commit (string-append "cl-yacc-" version))))
1088 (sha256
1089 (base32
1090 "16946pzf8vvadnyfayvj8rbh4zjzw90h0azz2qk1mxrvhh5wklib"))
1091 (file-name (string-append "cl-yacc-" version "-checkout"))))
1092 (build-system asdf-build-system/sbcl)
1093 (arguments
1094 `(#:asd-systems '("yacc")))
1095 (synopsis "LALR(1) parser generator for Common Lisp, similar in spirit to Yacc")
1096 (description
1097 "CL-Yacc is a LALR(1) parser generator for Common Lisp, similar in spirit
1098 to AT&T Yacc, Berkeley Yacc, GNU Bison, Zebu, lalr.cl or lalr.scm.
1099
1100 CL-Yacc uses the algorithm due to Aho and Ullman, which is the one also used
1101 by AT&T Yacc, Berkeley Yacc and Zebu. It does not use the faster algorithm due
1102 to DeRemer and Pennello, which is used by Bison and lalr.scm (not lalr.cl).")
1103 (home-page "https://www.irif.fr/~jch//software/cl-yacc/")
1104 (license license:expat)))
1105
1106 (define-public cl-yacc
1107 (sbcl-package->cl-source-package sbcl-cl-yacc))
1108
1109 (define-public ecl-cl-yacc
1110 (sbcl-package->ecl-package sbcl-cl-yacc))
1111
1112 (define-public sbcl-eager-future2
1113 (let ((commit "54df8effd9d9eccac917509590286b5ac5f9cb30"))
1114 (package
1115 (name "sbcl-eager-future2")
1116 (version (git-version "0.0.0" "1" commit))
1117 (source
1118 (origin
1119 (method git-fetch)
1120 (uri (git-reference
1121 (url "https://gitlab.common-lisp.net/vsedach/eager-future2.git")
1122 (commit commit)))
1123 (file-name (git-file-name name version))
1124 (sha256
1125 (base32
1126 "1qs1bv3m0ki8l5czhsflxcryh22r9d9g9a3a3b0cr0pl954q5rld"))))
1127 (build-system asdf-build-system/sbcl)
1128 (inputs
1129 `(("bordeaux-threads" ,sbcl-bordeaux-threads)
1130 ("trivial-garbage" ,sbcl-trivial-garbage)))
1131 (synopsis "Futures promises synchronization mechanism for Common Lisp")
1132 (description
1133 "Eager Future2 is a Common Lisp library that provides composable
1134 concurrency primitives that unify parallel and lazy evaluation, are integrated
1135 with the Common Lisp condition system, and have automatic resource
1136 management.")
1137 (home-page "https://gitlab.common-lisp.net/vsedach/eager-future2")
1138 (license license:lgpl3+))))
1139
1140 (define-public cl-eager-future2
1141 (sbcl-package->cl-source-package sbcl-eager-future2))
1142
1143 (define-public ecl-eager-future2
1144 (sbcl-package->ecl-package sbcl-eager-future2))
1145
1146 (define-public sbcl-jpl-util
1147 (let ((commit "0311ed374e19a49d43318064d729fe3abd9a3b62"))
1148 (package
1149 (name "sbcl-jpl-util")
1150 (version "20151005")
1151 (source
1152 (origin
1153 (method git-fetch)
1154 (uri (git-reference
1155 ;; Quicklisp uses this fork.
1156 (url "https://github.com/hawkir/cl-jpl-util")
1157 (commit commit)))
1158 (file-name
1159 (git-file-name "jpl-util" version))
1160 (sha256
1161 (base32
1162 "0nc0rk9n8grkg3045xsw34whmcmddn2sfrxki4268g7kpgz0d2yz"))))
1163 (build-system asdf-build-system/sbcl)
1164 (synopsis "Collection of Common Lisp utility functions and macros")
1165 (description
1166 "@command{cl-jpl-util} is a collection of Common Lisp utility functions
1167 and macros, primarily for software projects written in CL by the author.")
1168 (home-page "https://www.thoughtcrime.us/software/cl-jpl-util/")
1169 (license license:isc))))
1170
1171 (define-public cl-jpl-util
1172 (sbcl-package->cl-source-package sbcl-jpl-util))
1173
1174 (define-public ecl-jpl-util
1175 (sbcl-package->ecl-package sbcl-jpl-util))
1176
1177 (define-public sbcl-jpl-queues
1178 (package
1179 (name "sbcl-jpl-queues")
1180 (version "0.1")
1181 (source
1182 (origin
1183 (method url-fetch)
1184 (uri (string-append
1185 "http://www.thoughtcrime.us/software/jpl-queues/jpl-queues-"
1186 version
1187 ".tar.gz"))
1188 (sha256
1189 (base32
1190 "1wvvv7j117h9a42qaj1g4fh4mji28xqs7s60rn6d11gk9jl76h96"))))
1191 (build-system asdf-build-system/sbcl)
1192 (inputs
1193 `(("jpl-util" ,sbcl-jpl-util)
1194 ("bordeaux-threads" ,sbcl-bordeaux-threads)))
1195 (arguments
1196 ;; Tests seem to be broken.
1197 `(#:tests? #f))
1198 (synopsis "Common Lisp library implementing a few different kinds of queues")
1199 (description
1200 "A Common Lisp library implementing a few different kinds of queues:
1201
1202 @itemize
1203 @item Bounded and unbounded FIFO queues.
1204 @item Lossy bounded FIFO queues that drop elements when full.
1205 @item Unbounded random-order queues that use less memory than unbounded FIFO queues.
1206 @end itemize
1207
1208 Additionally, a synchronization wrapper is provided to make any queue
1209 conforming to the @command{jpl-queues} API thread-safe for lightweight
1210 multithreading applications. (See Calispel for a more sophisticated CL
1211 multithreaded message-passing library with timeouts and alternation among
1212 several blockable channels.)")
1213 (home-page "https://www.thoughtcrime.us/software/jpl-queues/")
1214 (license license:isc)))
1215
1216 (define-public cl-jpl-queues
1217 (sbcl-package->cl-source-package sbcl-jpl-queues))
1218
1219 (define-public ecl-jpl-queues
1220 (sbcl-package->ecl-package sbcl-jpl-queues))
1221
1222 (define-public sbcl-calispel
1223 (let ((commit "e9f2f9c1af97f4d7bb4c8ac25fb2a8f3e8fada7a"))
1224 (package
1225 (name "sbcl-calispel")
1226 (version (git-version "0.1" "1" commit))
1227 (source
1228 (origin
1229 (method git-fetch)
1230 (uri (git-reference
1231 ;; This fork replaces the dependency on the obsolete
1232 ;; eager-future with eager-future2.
1233 (url "https://github.com/hawkir/calispel")
1234 (commit commit)))
1235 (file-name (git-file-name name version))
1236 (sha256
1237 (base32
1238 "08bmf3pi7n5hadpmqqkg65cxcj6kbvm997wcs1f53ml1nb79d9z8"))))
1239 (build-system asdf-build-system/sbcl)
1240 (inputs
1241 `(("jpl-queues" ,sbcl-jpl-queues)
1242 ("bordeaux-threads" ,sbcl-bordeaux-threads)))
1243 (native-inputs
1244 `(("eager-future2" ,sbcl-eager-future2)))
1245 (synopsis "Thread-safe message-passing channels in Common Lisp")
1246 (description
1247 "Calispel is a Common Lisp library for thread-safe message-passing
1248 channels, in the style of the occam programming language, also known as
1249 communicating sequential processes (CSP). See
1250 @url{https://en.wikipedia.org/wiki/Communicating_sequential_processes}.
1251
1252 Calispel channels let one thread communicate with another, facilitating
1253 unidirectional communication of any Lisp object. Channels may be unbuffered,
1254 where a sender waits for a receiver (or vice versa) before either operation can
1255 continue, or channels may be buffered with flexible policy options.
1256
1257 Because sending and receiving on a channel may block, either operation can time
1258 out after a specified amount of time.
1259
1260 A syntax for alternation is provided (like @code{ALT} in occam, or Unix
1261 @code{select()}): given a sequence of operations, any or all of which may
1262 block, alternation selects the first operation that doesn't block and executes
1263 associated code. Alternation can also time out, executing an \"otherwise\"
1264 clause if no operation becomes available within a set amount of time.
1265
1266 Calispel is a message-passing library, and as such leaves the role of
1267 threading abstractions and utilities left to be filled by complementary
1268 libraries such as Bordeaux-Threads and Eager Future.")
1269 (home-page "https://www.thoughtcrime.us/software/jpl-queues/")
1270 (license license:isc))))
1271
1272 (define-public cl-calispel
1273 (sbcl-package->cl-source-package sbcl-calispel))
1274
1275 (define-public ecl-calispel
1276 (sbcl-package->ecl-package sbcl-calispel))
1277
1278 (define-public sbcl-eos
1279 (let ((commit "b4413bccc4d142cbe1bf49516c3a0a22c9d99243")
1280 (revision "2"))
1281 (package
1282 (name "sbcl-eos")
1283 (version (git-version "0.0.0" revision commit))
1284 (source
1285 (origin
1286 (method git-fetch)
1287 (uri (git-reference
1288 (url "https://github.com/adlai/Eos")
1289 (commit commit)))
1290 (sha256
1291 (base32 "1afllvmlnx97yzz404gycl3pa3kwx427k3hrbf37rpmjlv47knhk"))
1292 (file-name (git-file-name "eos" version))))
1293 (build-system asdf-build-system/sbcl)
1294 (synopsis "Unit Testing for Common Lisp")
1295 (description
1296 "Eos was a unit testing library for Common Lisp.
1297 It began as a fork of FiveAM; however, FiveAM development has continued, while
1298 that of Eos has not. Thus, Eos is now deprecated in favor of FiveAM.")
1299 (home-page "https://github.com/adlai/Eos")
1300 (license license:expat))))
1301
1302 (define-public cl-eos
1303 (sbcl-package->cl-source-package sbcl-eos))
1304
1305 (define-public ecl-eos
1306 (sbcl-package->ecl-package sbcl-eos))
1307
1308 (define-public sbcl-esrap
1309 (let ((commit "133be8b05c2aae48696fe5b739eea2fa573fa48d"))
1310 (package
1311 (name "sbcl-esrap")
1312 (version (git-version "0.0.0" "1" commit))
1313 (source
1314 (origin
1315 (method git-fetch)
1316 (uri (git-reference
1317 (url "https://github.com/nikodemus/esrap")
1318 (commit commit)))
1319 (sha256
1320 (base32
1321 "02d5clihsdryhf7pix8c5di2571fdsffh75d40fkzhws90r5mksl"))
1322 (file-name (git-file-name "esrap" version))))
1323 (build-system asdf-build-system/sbcl)
1324 (native-inputs
1325 `(("eos" ,sbcl-eos))) ;For testing only.
1326 (inputs
1327 `(("alexandria" ,sbcl-alexandria)))
1328 (synopsis "Common Lisp packrat parser")
1329 (description
1330 "A packrat parser for Common Lisp.
1331 In addition to regular Packrat / Parsing Grammar / TDPL features ESRAP supports:
1332
1333 @itemize
1334 @item dynamic redefinition of nonterminals
1335 @item inline grammars
1336 @item semantic predicates
1337 @item introspective facilities (describing grammars, tracing, setting breaks)
1338 @end itemize\n")
1339 (home-page "https://nikodemus.github.io/esrap/")
1340 (license license:expat))))
1341
1342 (define-public cl-esrap
1343 (sbcl-package->cl-source-package sbcl-esrap))
1344
1345 (define-public ecl-esrap
1346 (sbcl-package->ecl-package sbcl-esrap))
1347
1348 (define-public sbcl-split-sequence
1349 (package
1350 (name "sbcl-split-sequence")
1351 (version "2.0.0")
1352 (source
1353 (origin
1354 (method git-fetch)
1355 (uri (git-reference
1356 (url "https://github.com/sharplispers/split-sequence")
1357 (commit (string-append "v" version))))
1358 (sha256
1359 (base32
1360 "0jcpnx21hkfwqj5fvp7kc6pn1qcz9hk7g2s5x8h0349x1j2irln0"))
1361 (file-name (git-file-name "split-sequence" version))))
1362 (build-system asdf-build-system/sbcl)
1363 (native-inputs
1364 `(("fiveam" ,sbcl-fiveam)))
1365 (synopsis "Member of the Common Lisp Utilities family of programs")
1366 (description
1367 "Splits sequence into a list of subsequences delimited by objects
1368 satisfying the test.")
1369 (home-page "https://cliki.net/split-sequence")
1370 (license license:expat)))
1371
1372 (define-public cl-split-sequence
1373 (sbcl-package->cl-source-package sbcl-split-sequence))
1374
1375 (define-public ecl-split-sequence
1376 (sbcl-package->ecl-package sbcl-split-sequence))
1377
1378 (define-public sbcl-html-encode
1379 (package
1380 (name "sbcl-html-encode")
1381 (version "1.2")
1382 (source
1383 (origin
1384 (method url-fetch)
1385 (uri (string-append
1386 "http://beta.quicklisp.org/archive/html-encode/2010-10-06/html-encode-"
1387 version ".tgz"))
1388 (sha256
1389 (base32
1390 "06mf8wn95yf5swhmzk4vp0xr4ylfl33dgfknkabbkd8n6jns8gcf"))
1391 (file-name (string-append "colorize" version "-checkout"))))
1392 (build-system asdf-build-system/sbcl)
1393 (synopsis "Common Lisp library for encoding text in various web-savvy encodings")
1394 (description
1395 "A library for encoding text in various web-savvy encodings.")
1396 (home-page "http://quickdocs.org/html-encode/")
1397 (license license:expat)))
1398
1399 (define-public cl-html-encode
1400 (sbcl-package->cl-source-package sbcl-html-encode))
1401
1402 (define-public ecl-html-encode
1403 (sbcl-package->ecl-package sbcl-html-encode))
1404
1405 (define-public sbcl-colorize
1406 (let ((commit "ea676b584e0899cec82f21a9e6871172fe3c0eb5"))
1407 (package
1408 (name "sbcl-colorize")
1409 (version (git-version "0.0.0" "1" commit))
1410 (source
1411 (origin
1412 (method git-fetch)
1413 (uri (git-reference
1414 (url "https://github.com/kingcons/colorize")
1415 (commit commit)))
1416 (sha256
1417 (base32
1418 "1pdg4kiaczmr3ivffhirp7m3lbr1q27rn7dhaay0vwghmi31zcw9"))
1419 (file-name (git-file-name "colorize" version))))
1420 (build-system asdf-build-system/sbcl)
1421 (inputs
1422 `(("alexandria" ,sbcl-alexandria)
1423 ("split-sequence" ,sbcl-split-sequence)
1424 ("html-encode" ,sbcl-html-encode)))
1425 (synopsis "Common Lisp for syntax highlighting")
1426 (description
1427 "@command{colorize} is a Lisp library for syntax highlighting
1428 supporting the following languages: Common Lisp, Emacs Lisp, Scheme, Clojure,
1429 C, C++, Java, Python, Erlang, Haskell, Objective-C, Diff, Webkit.")
1430 (home-page "https://github.com/kingcons/colorize")
1431 ;; TODO: Missing license?
1432 (license license:expat))))
1433
1434 (define-public cl-colorize
1435 (sbcl-package->cl-source-package sbcl-colorize))
1436
1437 (define-public ecl-colorize
1438 (sbcl-package->ecl-package sbcl-colorize))
1439
1440 (define-public sbcl-3bmd
1441 (let ((commit "192ea13435b605a96ef607df51317056914cabbd"))
1442 (package
1443 (name "sbcl-3bmd")
1444 (version (git-version "0.0.0" "1" commit))
1445 (source
1446 (origin
1447 (method git-fetch)
1448 (uri (git-reference
1449 (url "https://github.com/3b/3bmd")
1450 (commit commit)))
1451 (sha256
1452 (base32
1453 "1rgv3gi7wf963ikmmpk132wgn0icddf226gq3bmcnk1fr3v9gf2f"))
1454 (file-name (git-file-name "3bmd" version))))
1455 (build-system asdf-build-system/sbcl)
1456 (arguments
1457 ;; FIXME: We need to specify the name because the build-system thinks
1458 ;; "3" is a version marker.
1459 `(#:asd-systems '("3bmd"
1460 "3bmd-ext-code-blocks")))
1461 (inputs
1462 `(("colorize" ,sbcl-colorize)
1463 ("esrap" ,sbcl-esrap)
1464 ("split-sequence" ,sbcl-split-sequence)))
1465 (synopsis "Markdown processor in Command Lisp using esrap parser")
1466 (description
1467 "Common Lisp Markdown -> HTML converter, using @command{esrap} for
1468 parsing, and grammar based on @command{peg-markdown}.")
1469 (home-page "https://github.com/3b/3bmd")
1470 (license license:expat))))
1471
1472 (define-public cl-3bmd
1473 (sbcl-package->cl-source-package sbcl-3bmd))
1474
1475 (define-public ecl-3bmd
1476 (sbcl-package->ecl-package sbcl-3bmd))
1477
1478 (define-public sbcl-cl-fad
1479 (package
1480 (name "sbcl-cl-fad")
1481 (version "0.7.6")
1482 (source
1483 (origin
1484 (method git-fetch)
1485 (uri (git-reference
1486 (url "https://github.com/edicl/cl-fad/")
1487 (commit (string-append "v" version))))
1488 (sha256
1489 (base32
1490 "1gc8i82v6gks7g0lnm54r4prk2mklidv2flm5fvbr0a7rsys0vpa"))
1491 (file-name (string-append "cl-fad" version "-checkout"))))
1492 (build-system asdf-build-system/sbcl)
1493 (inputs
1494 `(("bordeaux-threads" ,sbcl-bordeaux-threads)))
1495 (synopsis "Portable pathname library for Common Lisp")
1496 (description
1497 "CL-FAD (for \"Files and Directories\") is a thin layer atop Common
1498 Lisp's standard pathname functions. It is intended to provide some
1499 unification between current CL implementations on Windows, OS X, Linux, and
1500 Unix. Most of the code was written by Peter Seibel for his book Practical
1501 Common Lisp.")
1502 (home-page "https://edicl.github.io/cl-fad/")
1503 (license license:bsd-2)))
1504
1505 (define-public cl-fad
1506 (sbcl-package->cl-source-package sbcl-cl-fad))
1507
1508 (define-public ecl-cl-fad
1509 (sbcl-package->ecl-package sbcl-cl-fad))
1510
1511 (define-public sbcl-rt
1512 (let ((commit "a6a7503a0b47953bc7579c90f02a6dba1f6e4c5a")
1513 (revision "1"))
1514 (package
1515 (name "sbcl-rt")
1516 (version (git-version "1990.12.19" revision commit))
1517 (source
1518 (origin
1519 (method git-fetch)
1520 (uri (git-reference
1521 (url "http://git.kpe.io/rt.git")
1522 (commit commit)))
1523 (file-name (git-file-name name version))
1524 (sha256
1525 (base32 "13si2rrxaagbr0bkvg6sqicxxpyshabx6ad6byc9n2ik5ysna69b"))))
1526 (build-system asdf-build-system/sbcl)
1527 (synopsis "MIT Regression Tester")
1528 (description
1529 "RT provides a framework for writing regression test suites.")
1530 (home-page "https://www.cliki.net/rt")
1531 (license license:expat))))
1532
1533 (define-public cl-rt
1534 (sbcl-package->cl-source-package sbcl-rt))
1535
1536 (define-public ecl-rt
1537 (sbcl-package->ecl-package sbcl-rt))
1538
1539 (define-public sbcl-nibbles
1540 (package
1541 (name "sbcl-nibbles")
1542 (version "0.14")
1543 (source
1544 (origin
1545 (method git-fetch)
1546 (uri (git-reference
1547 (url "https://github.com/sharplispers/nibbles/")
1548 (commit (string-append "v" version))))
1549 (sha256
1550 (base32
1551 "1v7qfgpvdr6nz7v63dj69d26dis0kff3rd8xamr1llfdvza2pm8f"))
1552 (file-name (git-file-name "nibbles" version))))
1553 (build-system asdf-build-system/sbcl)
1554 (native-inputs
1555 ;; Tests only.
1556 `(("rt" ,sbcl-rt)))
1557 (synopsis "Common Lisp library for accessing octet-addressed blocks of data")
1558 (description
1559 "When dealing with network protocols and file formats, it's common to
1560 have to read or write 16-, 32-, or 64-bit datatypes in signed or unsigned
1561 flavors. Common Lisp sort of supports this by specifying :element-type for
1562 streams, but that facility is underspecified and there's nothing similar for
1563 read/write from octet vectors. What most people wind up doing is rolling their
1564 own small facility for their particular needs and calling it a day.
1565
1566 This library attempts to be comprehensive and centralize such
1567 facilities. Functions to read 16-, 32-, and 64-bit quantities from octet
1568 vectors in signed or unsigned flavors are provided; these functions are also
1569 SETFable. Since it's sometimes desirable to read/write directly from streams,
1570 functions for doing so are also provided. On some implementations,
1571 reading/writing IEEE singles/doubles (i.e. single-float and double-float) will
1572 also be supported.")
1573 (home-page "https://github.com/sharplispers/nibbles")
1574 (license license:bsd-3)))
1575
1576 (define-public cl-nibbles
1577 (sbcl-package->cl-source-package sbcl-nibbles))
1578
1579 (define-public ecl-nibbles
1580 (sbcl-package->ecl-package sbcl-nibbles))
1581
1582 (define-public sbcl-ironclad
1583 (package
1584 (name "sbcl-ironclad")
1585 (version "0.52")
1586 (source
1587 (origin
1588 (method git-fetch)
1589 (uri (git-reference
1590 (url "https://github.com/sharplispers/ironclad/")
1591 (commit (string-append "v" version))))
1592 (sha256
1593 (base32 "0cyghppxwg7jr56af6098drbl6byknqlqcnj9sqlab5pxlywzkxx"))
1594 (file-name (git-file-name name version))))
1595 (build-system asdf-build-system/sbcl)
1596 (native-inputs
1597 ;; Tests only.
1598 `(("rt" ,sbcl-rt)))
1599 (inputs
1600 `(("bordeaux-threads" ,sbcl-bordeaux-threads)
1601 ("flexi-streams" ,sbcl-flexi-streams)))
1602 (synopsis "Cryptographic toolkit written in Common Lisp")
1603 (description
1604 "Ironclad is a cryptography library written entirely in Common Lisp.
1605 It includes support for several popular ciphers, digests, MACs and public key
1606 cryptography algorithms. For several implementations that support Gray
1607 streams, support is included for convenient stream wrappers.")
1608 (home-page "https://github.com/sharplispers/ironclad")
1609 (license license:bsd-3)))
1610
1611 (define-public cl-ironclad
1612 (sbcl-package->cl-source-package sbcl-ironclad))
1613
1614 (define-public ecl-ironclad
1615 (sbcl-package->ecl-package sbcl-ironclad))
1616
1617 (define-public sbcl-named-readtables
1618 (let ((commit "64bd53f37a1694cfde48fc38b8f03901f6f0c05b")
1619 (revision "2"))
1620 (package
1621 (name "sbcl-named-readtables")
1622 (version (git-version "0.9" revision commit))
1623 (source
1624 (origin
1625 (method git-fetch)
1626 (uri (git-reference
1627 (url "https://github.com/melisgl/named-readtables")
1628 (commit commit)))
1629 (sha256
1630 (base32 "01l4831m7k84qvhzyx0qgdl50isr4zmp40qf6dfq2iqcaj8y4h3n"))
1631 (file-name (git-file-name "named-readtables" version))))
1632 (build-system asdf-build-system/sbcl)
1633 (arguments
1634 ;; Tests seem to be broken.
1635 `(#:tests? #f))
1636 (home-page "https://github.com/melisgl/named-readtables/")
1637 (synopsis "Library that creates a namespace for named readtables")
1638 (description "Named readtables is a library that creates a namespace for
1639 named readtables, which is akin to package namespacing in Common Lisp.")
1640 (license license:bsd-3))))
1641
1642 (define-public cl-named-readtables
1643 (sbcl-package->cl-source-package sbcl-named-readtables))
1644
1645 (define-public ecl-named-readtables
1646 (sbcl-package->ecl-package sbcl-named-readtables))
1647
1648 (define-public sbcl-pythonic-string-reader
1649 (let ((commit "47a70ba1e32362e03dad6ef8e6f36180b560f86a"))
1650 (package
1651 (name "sbcl-pythonic-string-reader")
1652 (version (git-version "0.0.0" "1" commit))
1653 (source
1654 (origin
1655 (method git-fetch)
1656 (uri (git-reference
1657 (url "https://github.com/smithzvk/pythonic-string-reader/")
1658 (commit commit)))
1659 (sha256
1660 (base32 "1b5iryqw8xsh36swckmz8rrngmc39k92si33fgy5pml3n9l5rq3j"))
1661 (file-name (git-file-name "pythonic-string-reader" version))))
1662 (build-system asdf-build-system/sbcl)
1663 (inputs
1664 `(("named-readtables" ,sbcl-named-readtables)))
1665 (home-page "https://github.com/smithzvk/pythonic-string-reader")
1666 (synopsis "Read table modification inspired by Python's three quote strings")
1667 (description "This piece of code sets up some reader macros that make it
1668 simpler to input string literals which contain backslashes and double quotes
1669 This is very useful for writing complicated docstrings and, as it turns out,
1670 writing code that contains string literals that contain code themselves.")
1671 (license license:bsd-3))))
1672
1673 (define-public cl-pythonic-string-reader
1674 (sbcl-package->cl-source-package sbcl-pythonic-string-reader))
1675
1676 (define-public ecl-pythonic-string-reader
1677 (sbcl-package->ecl-package sbcl-pythonic-string-reader))
1678
1679 (define-public sbcl-slime-swank
1680 (package
1681 (name "sbcl-slime-swank")
1682 (version "2.26")
1683 (source
1684 (origin
1685 (file-name (git-file-name "slime-swank" version))
1686 (method git-fetch)
1687 (uri (git-reference
1688 (url "https://github.com/slime/slime/")
1689 (commit (string-append "v" version))))
1690 (sha256
1691 (base32
1692 "0mxb1wnw19v0s72w2wkz5afdlzvpy5nn7pr4vav403qybac0sw5c"))))
1693 (build-system asdf-build-system/sbcl)
1694 (arguments
1695 '(#:asd-systems '("swank")))
1696 (home-page "https://github.com/slime/slime")
1697 (synopsis "Common Lisp Swank server")
1698 (description
1699 "This is only useful if you want to start a Swank server in a Lisp
1700 processes that doesn't run under Emacs. Lisp processes created by
1701 @command{M-x slime} automatically start the server.")
1702 (license (list license:gpl2+ license:public-domain))))
1703
1704 (define-public cl-slime-swank
1705 (sbcl-package->cl-source-package sbcl-slime-swank))
1706
1707 (define-public ecl-slime-swank
1708 (sbcl-package->ecl-package sbcl-slime-swank))
1709
1710 (define-public sbcl-mgl-pax
1711 (let ((commit "818448418d6b9de74620f606f5b23033c6082769"))
1712 (package
1713 (name "sbcl-mgl-pax")
1714 (version (git-version "0.0.0" "1" commit))
1715 (source
1716 (origin
1717 (method git-fetch)
1718 (uri (git-reference
1719 (url "https://github.com/melisgl/mgl-pax")
1720 (commit commit)))
1721 (sha256
1722 (base32
1723 "1p97zfkh130bdxqqxwaw2j9psv58751wakx7czbfpq410lg7dd7i"))
1724 (file-name (git-file-name "mgl-pax" version))))
1725 (build-system asdf-build-system/sbcl)
1726 (inputs
1727 `(("3bmd" ,sbcl-3bmd)
1728 ("babel" ,sbcl-babel)
1729 ("cl-fad" ,sbcl-cl-fad)
1730 ("ironclad" ,sbcl-ironclad)
1731 ("named-readtables" ,sbcl-named-readtables)
1732 ("pythonic-string-reader" ,sbcl-pythonic-string-reader)
1733 ("swank" ,sbcl-slime-swank)))
1734 (synopsis "Exploratory programming environment and documentation generator")
1735 (description
1736 "PAX provides an extremely poor man's Explorable Programming
1737 environment. Narrative primarily lives in so called sections that mix markdown
1738 docstrings with references to functions, variables, etc, all of which should
1739 probably have their own docstrings.
1740
1741 The primary focus is on making code easily explorable by using SLIME's
1742 @command{M-.} (@command{slime-edit-definition}). See how to enable some
1743 fanciness in Emacs Integration. Generating documentation from sections and all
1744 the referenced items in Markdown or HTML format is also implemented.
1745
1746 With the simplistic tools provided, one may accomplish similar effects as with
1747 Literate Programming, but documentation is generated from code, not vice versa
1748 and there is no support for chunking yet. Code is first, code must look
1749 pretty, documentation is code.")
1750 (home-page "http://quotenil.com/")
1751 (license license:expat))))
1752
1753 (define-public cl-mgl-pax
1754 (sbcl-package->cl-source-package sbcl-mgl-pax))
1755
1756 (define-public ecl-mgl-pax
1757 (let ((pkg (sbcl-package->ecl-package sbcl-mgl-pax)))
1758 (package
1759 (inherit pkg)
1760 (arguments
1761 (substitute-keyword-arguments (package-arguments pkg)
1762 ;; TODO: Find why the tests fail on ECL.
1763 ((#:tests? _ #f) #f))))))
1764
1765 (define-public sbcl-lisp-unit
1766 (let ((commit "89653a232626b67400bf9a941f9b367da38d3815"))
1767 (package
1768 (name "sbcl-lisp-unit")
1769 (version (git-version "0.0.0" "1" commit))
1770 (source
1771 (origin
1772 (method git-fetch)
1773 (uri (git-reference
1774 (url "https://github.com/OdonataResearchLLC/lisp-unit")
1775 (commit commit)))
1776 (sha256
1777 (base32
1778 "0p6gdmgr7p383nvd66c9y9fp2bjk4jx1lpa5p09g43hr9y9pp9ry"))
1779 (file-name (git-file-name "lisp-unit" version))))
1780 (build-system asdf-build-system/sbcl)
1781 (synopsis "Common Lisp Test framework inspired by JUnit to be simple of use")
1782 (description
1783 "@command{lisp-unit} is a Common Lisp library that supports unit
1784 testing. It is an extension of the library written by Chris Riesbeck.")
1785 (home-page "https://github.com/OdonataResearchLLC/lisp-unit")
1786 (license license:expat))))
1787
1788 (define-public cl-lisp-unit
1789 (sbcl-package->cl-source-package sbcl-lisp-unit))
1790
1791 (define-public ecl-lisp-unit
1792 (sbcl-package->ecl-package sbcl-lisp-unit))
1793
1794 (define-public sbcl-anaphora
1795 (package
1796 (name "sbcl-anaphora")
1797 (version "0.9.6")
1798 (source
1799 (origin
1800 (method git-fetch)
1801 (uri (git-reference
1802 (url "https://github.com/tokenrove/anaphora")
1803 (commit version)))
1804 (sha256
1805 (base32
1806 "19wfrk3asimznkli0x2rfy637hwpdgqyvwj3vhq9x7vjvyf5vv6x"))
1807 (file-name (git-file-name "anaphora" version))))
1808 (build-system asdf-build-system/sbcl)
1809 (native-inputs
1810 `(("rt" ,sbcl-rt)))
1811 (synopsis "The anaphoric macro collection from Hell")
1812 (description
1813 "Anaphora is the anaphoric macro collection from Hell: it includes many
1814 new fiends in addition to old friends like @command{aif} and
1815 @command{awhen}.")
1816 (home-page "https://github.com/tokenrove/anaphora")
1817 (license license:public-domain)))
1818
1819 (define-public cl-anaphora
1820 (sbcl-package->cl-source-package sbcl-anaphora))
1821
1822 (define-public ecl-anaphora
1823 (sbcl-package->ecl-package sbcl-anaphora))
1824
1825 (define-public sbcl-lift
1826 (let ((commit "7d49a66c62759535624037826891152223d4206c"))
1827 (package
1828 (name "sbcl-lift")
1829 (version (git-version "1.7.1" "1" commit))
1830 (source
1831 (origin
1832 (method git-fetch)
1833 (uri (git-reference
1834 (url "https://github.com/gwkkwg/lift")
1835 (commit commit)))
1836 (sha256
1837 (base32
1838 "127v5avpz1i4m0lkaxqrq8hrl69rdazqaxf6s8awf0nd7wj2g4dp"))
1839 (file-name (git-file-name "lift" version))
1840 (modules '((guix build utils)))
1841 (snippet
1842 ;; Don't keep the bundled website
1843 `(begin
1844 (delete-file-recursively "website")
1845 #t))))
1846 (build-system asdf-build-system/sbcl)
1847 (arguments
1848 ;; The tests require a debugger, but we run with the debugger disabled.
1849 '(#:tests? #f))
1850 (synopsis "LIsp Framework for Testing")
1851 (description
1852 "The LIsp Framework for Testing (LIFT) is a unit and system test tool for LISP.
1853 Though inspired by SUnit and JUnit, it's built with Lisp in mind. In LIFT,
1854 testcases are organized into hierarchical testsuites each of which can have
1855 its own fixture. When run, a testcase can succeed, fail, or error. LIFT
1856 supports randomized testing, benchmarking, profiling, and reporting.")
1857 (home-page "https://github.com/gwkkwg/lift")
1858 (license license:expat))))
1859
1860 (define-public cl-lift
1861 (sbcl-package->cl-source-package sbcl-lift))
1862
1863 (define-public ecl-lift
1864 (sbcl-package->ecl-package sbcl-lift))
1865
1866 (define-public sbcl-let-plus
1867 (let ((commit "5f14af61d501ecead02ec6b5a5c810efc0c9fdbb"))
1868 (package
1869 (name "sbcl-let-plus")
1870 (version (git-version "0.0.0" "1" commit))
1871 (source
1872 (origin
1873 (method git-fetch)
1874 (uri (git-reference
1875 (url "https://github.com/sharplispers/let-plus")
1876 (commit commit)))
1877 (sha256
1878 (base32
1879 "0i050ca2iys9f5mb7dgqgqdxfnc3b0rnjdwv95sqd490vkiwrsaj"))
1880 (file-name (git-file-name "let-plus" version))))
1881 (build-system asdf-build-system/sbcl)
1882 (inputs
1883 `(("alexandria" ,sbcl-alexandria)
1884 ("anaphora" ,sbcl-anaphora)))
1885 (native-inputs
1886 `(("lift" ,sbcl-lift)))
1887 (synopsis "Destructuring extension of let*")
1888 (description
1889 "This library implements the let+ macro, which is a dectructuring
1890 extension of let*. It features:
1891
1892 @itemize
1893 @item Clean, consistent syntax and small implementation (less than 300 LOC,
1894 not counting tests)
1895 @item Placeholder macros allow editor hints and syntax highlighting
1896 @item @command{&ign} for ignored values (in forms where that makes sense)
1897 @item Very easy to extend
1898 @end itemize\n")
1899 (home-page "https://github.com/sharplispers/let-plus")
1900 (license license:boost1.0))))
1901
1902 (define-public cl-let-plus
1903 (sbcl-package->cl-source-package sbcl-let-plus))
1904
1905 (define-public ecl-let-plus
1906 (sbcl-package->ecl-package sbcl-let-plus))
1907
1908 (define-public sbcl-cl-colors
1909 (let ((commit "827410584553f5c717eec6182343b7605f707f75"))
1910 (package
1911 (name "sbcl-cl-colors")
1912 (version (git-version "0.0.0" "1" commit))
1913 (source
1914 (origin
1915 (method git-fetch)
1916 (uri (git-reference
1917 (url "https://github.com/tpapp/cl-colors")
1918 (commit commit)))
1919 (sha256
1920 (base32
1921 "0l446lday4hybsm9bq3jli97fvv8jb1d33abg79vbylpwjmf3y9a"))
1922 (file-name (git-file-name "cl-colors" version))))
1923 (build-system asdf-build-system/sbcl)
1924 (inputs
1925 `(("alexandria" ,sbcl-alexandria)
1926 ("let-plus" ,sbcl-let-plus)))
1927 (synopsis "Simple color library for Common Lisp")
1928 (description
1929 "This is a very simple color library for Common Lisp, providing
1930
1931 @itemize
1932 @item Types for representing colors in HSV and RGB spaces.
1933 @item Simple conversion functions between the above types (and also
1934 hexadecimal representation for RGB).
1935 @item Some predefined colors (currently X11 color names – of course the
1936 library does not depend on X11).Because color in your terminal is nice.
1937 @end itemize
1938
1939 This library is no longer supported by its author.")
1940 (home-page "https://github.com/tpapp/cl-colors")
1941 (license license:boost1.0))))
1942
1943 (define-public cl-colors
1944 (sbcl-package->cl-source-package sbcl-cl-colors))
1945
1946 (define-public ecl-cl-colors
1947 (sbcl-package->ecl-package sbcl-cl-colors))
1948
1949 (define-public sbcl-cl-ansi-text
1950 (let ((commit "53badf7878f27f22f2d4a2a43e6df458e43acbe9"))
1951 (package
1952 (name "sbcl-cl-ansi-text")
1953 (version (git-version "1.0.0" "1" commit))
1954 (source
1955 (origin
1956 (method git-fetch)
1957 (uri (git-reference
1958 (url "https://github.com/pnathan/cl-ansi-text")
1959 (commit commit)))
1960 (sha256
1961 (base32
1962 "11i27n0dbz5lmygiw65zzr8lx0rac6b6yysqranphn31wls6ja3v"))
1963 (file-name (git-file-name "cl-ansi-text" version))))
1964 (build-system asdf-build-system/sbcl)
1965 (inputs
1966 `(("alexandria" ,sbcl-alexandria)
1967 ("cl-colors" ,sbcl-cl-colors)))
1968 (native-inputs
1969 `(("fiveam" ,sbcl-fiveam)))
1970 (synopsis "ANSI terminal color implementation for Common Lisp")
1971 (description
1972 "@command{cl-ansi-text} provides utilities which enable printing to an
1973 ANSI terminal with colored text. It provides the macro @command{with-color}
1974 which causes everything printed in the body to be displayed with the provided
1975 color. It further provides functions which will print the argument with the
1976 named color.")
1977 (home-page "https://github.com/pnathan/cl-ansi-text")
1978 (license license:llgpl))))
1979
1980 (define-public cl-ansi-text
1981 (sbcl-package->cl-source-package sbcl-cl-ansi-text))
1982
1983 (define-public ecl-cl-ansi-text
1984 (sbcl-package->ecl-package sbcl-cl-ansi-text))
1985
1986 (define-public sbcl-prove
1987 (let ((commit "4f9122bd393e63c5c70c1fba23070622317cfaa0"))
1988 (package
1989 (name "sbcl-prove")
1990 (version (git-version "1.0.0" "1" commit))
1991 (source
1992 (origin
1993 (method git-fetch)
1994 (uri (git-reference
1995 (url "https://github.com/fukamachi/prove")
1996 (commit commit)))
1997 (sha256
1998 (base32
1999 "07sbfw459z8bbjvx1qlmfa8qk2mvbjnnzi2mi0x72blaj8bkl4vc"))
2000 (file-name (git-file-name "prove" version))))
2001 (build-system asdf-build-system/sbcl)
2002 (inputs
2003 `(("alexandria" ,sbcl-alexandria)
2004 ("cl-ppcre" ,sbcl-cl-ppcre)
2005 ("cl-ansi-text" ,sbcl-cl-ansi-text)))
2006 (synopsis "Yet another unit testing framework for Common Lisp")
2007 (description
2008 "This project was originally called @command{cl-test-more}.
2009 @command{prove} is yet another unit testing framework for Common Lisp. The
2010 advantages of @command{prove} are:
2011
2012 @itemize
2013 @item Various simple functions for testing and informative error messages
2014 @item ASDF integration
2015 @item Extensible test reporters
2016 @item Colorizes the report if it's available (note for SLIME)
2017 @item Reports test durations
2018 @end itemize\n")
2019 (home-page "https://github.com/fukamachi/prove")
2020 (license license:expat))))
2021
2022 (define-public cl-prove
2023 (sbcl-package->cl-source-package sbcl-prove))
2024
2025 (define-public ecl-prove
2026 (sbcl-package->ecl-package sbcl-prove))
2027
2028 (define-public sbcl-proc-parse
2029 (let ((commit "ac3636834d561bdc2686c956dbd82494537285fd"))
2030 (package
2031 (name "sbcl-proc-parse")
2032 (version (git-version "0.0.0" "1" commit))
2033 (source
2034 (origin
2035 (method git-fetch)
2036 (uri (git-reference
2037 (url "https://github.com/fukamachi/proc-parse")
2038 (commit commit)))
2039 (sha256
2040 (base32
2041 "06rnl0h4cx6xv2wj3jczmmcxqn2703inmmvg1s4npbghmijsybfh"))
2042 (file-name (git-file-name "proc-parse" version))))
2043 (build-system asdf-build-system/sbcl)
2044 (inputs
2045 `(("alexandria" ,sbcl-alexandria)
2046 ("babel" ,sbcl-babel)))
2047 (native-inputs
2048 `(("prove" ,sbcl-prove)))
2049 (arguments
2050 ;; TODO: Tests don't find "proc-parse-test", why?
2051 `(#:tests? #f))
2052 (synopsis "Procedural vector parser")
2053 (description
2054 "This is a string/octets parser library for Common Lisp with speed and
2055 readability in mind. Unlike other libraries, the code is not a
2056 pattern-matching-like, but a char-by-char procedural parser.")
2057 (home-page "https://github.com/fukamachi/proc-parse")
2058 (license license:bsd-2))))
2059
2060 (define-public cl-proc-parse
2061 (sbcl-package->cl-source-package sbcl-proc-parse))
2062
2063 (define-public ecl-proc-parse
2064 (sbcl-package->ecl-package sbcl-proc-parse))
2065
2066 (define-public sbcl-parse-float
2067 (let ((commit "2aae569f2a4b2eb3bfb5401a959425dcf151b09c"))
2068 (package
2069 (name "sbcl-parse-float")
2070 (version (git-version "0.0.0" "1" commit))
2071 (source
2072 (origin
2073 (method git-fetch)
2074 (uri (git-reference
2075 (url "https://github.com/soemraws/parse-float")
2076 (commit commit)))
2077 (sha256
2078 (base32
2079 "08xw8cchhmqcc0byng69m3f5a2izc9y2290jzz2k0qrbibp1fdk7"))
2080 (file-name (git-file-name "proc-parse" version))))
2081 (build-system asdf-build-system/sbcl)
2082 (inputs
2083 `(("alexandria" ,sbcl-alexandria)
2084 ("babel" ,sbcl-babel)))
2085 (native-inputs
2086 `(("prove" ,sbcl-prove)))
2087 (arguments
2088 ;; TODO: Tests don't find "proc-parse-test", why?
2089 `(#:tests? #f))
2090 (synopsis "Parse a floating point value from a string in Common Lisp")
2091 (description
2092 "This package exports the following function to parse floating-point
2093 values from a string in Common Lisp.")
2094 (home-page "https://github.com/soemraws/parse-float")
2095 (license license:public-domain))))
2096
2097 (define-public cl-parse-float
2098 (sbcl-package->cl-source-package sbcl-parse-float))
2099
2100 (define-public ecl-parse-float
2101 (sbcl-package->ecl-package sbcl-parse-float))
2102
2103 (define-public sbcl-cl-string-match
2104 (let ((revision "1")
2105 (changeset "5048480a61243e6f1b02884012c8f25cdbee6d97"))
2106 (package
2107 (name "sbcl-cl-string-match")
2108 (version (git-version "0" revision changeset))
2109 (source
2110 (origin
2111 (method hg-fetch)
2112 (uri (hg-reference
2113 (url "https://bitbucket.org/vityok/cl-string-match/")
2114 (changeset changeset)))
2115 (sha256
2116 (base32
2117 "01wn5qx562w43ssy92xlfgv79w7p0nv0wbl76mpmba131n9ziq2y"))
2118 (file-name (git-file-name "cl-string-match" version))))
2119 (build-system asdf-build-system/sbcl)
2120 (inputs
2121 `(("alexandria" ,sbcl-alexandria)
2122 ("babel" ,sbcl-babel)
2123 ("iterate" ,sbcl-iterate)
2124 ("jpl-queues" ,sbcl-jpl-queues)
2125 ("jpl-util" ,sbcl-jpl-util)
2126 ("mgl-pax" ,sbcl-mgl-pax)
2127 ("parse-float" ,sbcl-parse-float)
2128 ("proc-parse" ,sbcl-proc-parse)
2129 ("yacc" ,sbcl-cl-yacc)))
2130 ;; TODO: Tests are not evaluated properly.
2131 (native-inputs
2132 ;; For testing:
2133 `(("lisp-unit" ,sbcl-lisp-unit)))
2134 (arguments
2135 `(#:tests? #f))
2136 (synopsis "Set of utilities to manipulate strings in Common Lisp")
2137 (description
2138 "@command{cl-strings} is a small, portable, dependency-free set of
2139 utilities that make it even easier to manipulate text in Common Lisp. It has
2140 100% test coverage and works at least on sbcl, ecl, ccl, abcl and clisp.")
2141 (home-page "https://bitbucket.org/vityok/cl-string-match/")
2142 (license license:bsd-3))))
2143
2144 (define-public cl-string-match
2145 (sbcl-package->cl-source-package sbcl-cl-string-match))
2146
2147 (define-public ecl-cl-string-match
2148 (sbcl-package->ecl-package sbcl-cl-string-match))
2149
2150 (define-public sbcl-ptester
2151 (let ((commit "fe69fde54f4bce00ce577feb918796c293fc7253")
2152 (revision "1"))
2153 (package
2154 (name "sbcl-ptester")
2155 (version (git-version "2.1.3" revision commit))
2156 (source
2157 (origin
2158 (method git-fetch)
2159 (uri (git-reference
2160 (url "http://git.kpe.io/ptester.git")
2161 (commit commit)))
2162 (file-name (git-file-name name version))
2163 (sha256
2164 (base32 "1l0lfl7cdnr2qf4zh38hi4llxg22c49zkm639bdkmvlkzwj3ndwf"))))
2165 (build-system asdf-build-system/sbcl)
2166 (home-page "http://quickdocs.org/ptester/")
2167 (synopsis "Portable test harness package")
2168 (description
2169 "@command{ptester} is a portable testing framework based on Franz's
2170 tester module.")
2171 (license license:llgpl))))
2172
2173 (define-public cl-ptester
2174 (sbcl-package->cl-source-package sbcl-ptester))
2175
2176 (define-public ecl-ptester
2177 (sbcl-package->ecl-package sbcl-ptester))
2178
2179 (define-public sbcl-puri
2180 (let ((commit "ef5afb9e5286c8e952d4344f019c1a636a717b97")
2181 (revision "1"))
2182 (package
2183 (name "sbcl-puri")
2184 (version (git-version "1.5.7" revision commit))
2185 (source
2186 (origin
2187 (method git-fetch)
2188 (uri (git-reference
2189 (url "http://git.kpe.io/puri.git")
2190 (commit commit)))
2191 (file-name (git-file-name name version))
2192 (sha256
2193 (base32 "1vm25pdl92laj72p5vyd538kf3cjy2655z6bdc99h20ana2p231s"))))
2194 (build-system asdf-build-system/sbcl)
2195 (native-inputs
2196 `(("ptester" ,sbcl-ptester)))
2197 (home-page "http://quickdocs.org/puri/")
2198 (synopsis "Portable URI Library")
2199 (description
2200 "This is a portable Universal Resource Identifier library for Common
2201 Lisp programs. It parses URI according to the RFC 2396 specification.")
2202 (license license:llgpl))))
2203
2204 (define-public cl-puri
2205 (sbcl-package->cl-source-package sbcl-puri))
2206
2207 (define-public ecl-puri
2208 (sbcl-package->ecl-package sbcl-puri))
2209
2210 (define-public sbcl-queues
2211 (let ((commit "47d4da65e9ea20953b74aeeab7e89a831b66bc94"))
2212 (package
2213 (name "sbcl-queues")
2214 (version (git-version "0.0.0" "1" commit))
2215 (source
2216 (origin
2217 (method git-fetch)
2218 (uri (git-reference
2219 (url "https://github.com/oconnore/queues")
2220 (commit commit)))
2221 (file-name (git-file-name "queues" version))
2222 (sha256
2223 (base32
2224 "0wdhfnzi4v6d97pggzj2aw55si94w4327br94jrmyvwf351wqjvv"))))
2225 (build-system asdf-build-system/sbcl)
2226 (inputs
2227 `(("bordeaux-threads" ,sbcl-bordeaux-threads)))
2228 (arguments
2229 '(#:asd-systems '("queues"
2230 "queues.simple-queue"
2231 "queues.simple-cqueue"
2232 "queues.priority-queue"
2233 "queues.priority-cqueue")))
2234 (home-page "https://github.com/oconnore/queues")
2235 (synopsis "Common Lisp queue library")
2236 (description
2237 "This is a simple queue library for Common Lisp with features such as
2238 non-consing thread safe queues and fibonacci priority queues.")
2239 (license license:expat))))
2240
2241 (define-public cl-queues
2242 (sbcl-package->cl-source-package sbcl-queues))
2243
2244 (define-public ecl-queues
2245 (sbcl-package->ecl-package sbcl-queues))
2246
2247 (define-public sbcl-cffi
2248 (package
2249 (name "sbcl-cffi")
2250 (version "0.21.0")
2251 (source
2252 (origin
2253 (method git-fetch)
2254 (uri (git-reference
2255 (url "https://github.com/cffi/cffi")
2256 (commit (string-append "v" version))))
2257 (file-name (git-file-name "cffi-bootstrap" version))
2258 (sha256
2259 (base32 "1qalargz9bhp850qv60ffwpdqi4xirzar4l3g6qcg8yc6xqf2cjk"))))
2260 (build-system asdf-build-system/sbcl)
2261 (inputs
2262 `(("alexandria" ,sbcl-alexandria)
2263 ("babel" ,sbcl-babel)
2264 ("libffi" ,libffi)
2265 ("trivial-features" ,sbcl-trivial-features)))
2266 (native-inputs
2267 `(("bordeaux-threads" ,sbcl-bordeaux-threads)
2268 ("pkg-config" ,pkg-config)
2269 ("rt" ,sbcl-rt)))
2270 (arguments
2271 '(#:phases
2272 (modify-phases %standard-phases
2273 (add-after 'unpack 'fix-arm-support
2274 (lambda _
2275 ;; This is apparently deprecated since libffi-3.3.
2276 (substitute* "libffi/libffi-types.lisp"
2277 (("\\\(\\\(:unix64.*") ")\n"))
2278 #t))
2279 (add-after 'unpack 'fix-paths
2280 (lambda* (#:key inputs #:allow-other-keys)
2281 (substitute* "libffi/libffi.lisp"
2282 (("libffi.so.7" all) (string-append
2283 (assoc-ref inputs "libffi")
2284 "/lib/" all)))
2285 (substitute* "toolchain/c-toolchain.lisp"
2286 (("\"cc\"") (format #f "~S" (which "gcc"))))))
2287 (add-after 'build 'install-headers
2288 (lambda* (#:key outputs #:allow-other-keys)
2289 (install-file "grovel/common.h"
2290 (string-append
2291 (assoc-ref outputs "out")
2292 "/include/grovel")))))
2293 #:asd-files '("cffi.asd"
2294 "cffi-toolchain.asd"
2295 "cffi-grovel.asd"
2296 "cffi-libffi.asd"
2297 "cffi-uffi-compat.asd")
2298 #:asd-systems '("cffi"
2299 "cffi-libffi"
2300 "cffi-uffi-compat")))
2301 (home-page "https://common-lisp.net/project/cffi/")
2302 (synopsis "Common Foreign Function Interface for Common Lisp")
2303 (description "The Common Foreign Function Interface (CFFI)
2304 purports to be a portable foreign function interface for Common Lisp.
2305 The CFFI library is composed of a Lisp-implementation-specific backend
2306 in the CFFI-SYS package, and a portable frontend in the CFFI
2307 package.")
2308 (license license:expat)))
2309
2310 (define-public cl-cffi
2311 (sbcl-package->cl-source-package sbcl-cffi))
2312
2313 (define-public ecl-cffi
2314 (sbcl-package->ecl-package sbcl-cffi))
2315
2316 (define-public sbcl-cl-sqlite
2317 (package
2318 (name "sbcl-cl-sqlite")
2319 (version "0.2.1")
2320 (source
2321 (origin
2322 (method git-fetch)
2323 (uri (git-reference
2324 (url "https://github.com/dmitryvk/cl-sqlite")
2325 (commit version)))
2326 (file-name (git-file-name "cl-sqlite" version))
2327 (sha256
2328 (base32
2329 "08iv7b4m0hh7qx2cvq4f510nrgdld0vicnvmqsh9w0fgrcgmyg4k"))))
2330 (build-system asdf-build-system/sbcl)
2331 (inputs
2332 `(("iterate" ,sbcl-iterate)
2333 ("cffi" ,sbcl-cffi)
2334 ("sqlite" ,sqlite)))
2335 (native-inputs
2336 `(("fiveam" ,sbcl-fiveam)
2337 ("bordeaux-threads" ,sbcl-bordeaux-threads)))
2338 (arguments
2339 `(#:asd-systems '("sqlite")
2340 #:phases
2341 (modify-phases %standard-phases
2342 (add-after 'unpack 'fix-paths
2343 (lambda* (#:key inputs #:allow-other-keys)
2344 (substitute* "sqlite-ffi.lisp"
2345 (("libsqlite3" all) (string-append
2346 (assoc-ref inputs "sqlite")"/lib/" all))))))))
2347 (home-page "https://common-lisp.net/project/cl-sqlite/")
2348 (synopsis "Common Lisp binding for SQLite")
2349 (description
2350 "The @command{cl-sqlite} package is an interface to the SQLite embedded
2351 relational database engine.")
2352 (license license:public-domain)))
2353
2354 (define-public cl-sqlite
2355 (sbcl-package->cl-source-package sbcl-cl-sqlite))
2356
2357 (define-public ecl-cl-sqlite
2358 (sbcl-package->ecl-package sbcl-cl-sqlite))
2359
2360 (define-public sbcl-parenscript
2361 ;; Source archives are overwritten on every release, we use the Git repo instead.
2362 (let ((commit "7a1ac46353cecd144fc91915ba9f122aafcf4766"))
2363 (package
2364 (name "sbcl-parenscript")
2365 (version (git-version "2.7.1" "1" commit))
2366 (source
2367 (origin
2368 (method git-fetch)
2369 (uri (git-reference
2370 (url "https://gitlab.common-lisp.net/parenscript/parenscript")
2371 (commit commit)))
2372 (file-name (git-file-name "parenscript" version))
2373 (sha256
2374 (base32
2375 "0c22lqarrpbq82dg1sb3y6mp6w2faczp34ymzhnmff88yfq1xzsf"))))
2376 (build-system asdf-build-system/sbcl)
2377 (inputs
2378 `(("cl-ppcre" ,sbcl-cl-ppcre)
2379 ("anaphora" ,sbcl-anaphora)
2380 ("named-readtables" ,sbcl-named-readtables)))
2381 (home-page "https://common-lisp.net/project/parenscript/")
2382 (synopsis "Translator from a subset of Common Lisp to JavaScript")
2383 (description
2384 "Parenscript is a translator from an extended subset of Common Lisp to
2385 JavaScript. Parenscript code can run almost identically on both the
2386 browser (as JavaScript) and server (as Common Lisp).
2387
2388 Parenscript code is treated the same way as Common Lisp code, making the full
2389 power of Lisp macros available for JavaScript. This provides a web
2390 development environment that is unmatched in its ability to reduce code
2391 duplication and provide advanced meta-programming facilities to web
2392 developers.
2393
2394 At the same time, Parenscript is different from almost all other \"language
2395 X\" to JavaScript translators in that it imposes almost no overhead:
2396
2397 @itemize
2398 @item No run-time dependencies: Any piece of Parenscript code is runnable
2399 as-is. There are no JavaScript files to include.
2400 @item Native types: Parenscript works entirely with native JavaScript data
2401 types. There are no new types introduced, and object prototypes are not
2402 touched.
2403 @item Native calling convention: Any JavaScript code can be called without the
2404 need for bindings. Likewise, Parenscript can be used to make efficient,
2405 self-contained JavaScript libraries.
2406 @item Readable code: Parenscript generates concise, formatted, idiomatic
2407 JavaScript code. Identifier names are preserved. This enables seamless
2408 debugging in tools like Firebug.
2409 @item Efficiency: Parenscript introduces minimal overhead for advanced Common
2410 Lisp features. The generated code is almost as fast as hand-written
2411 JavaScript.
2412 @end itemize\n")
2413 (license license:bsd-3))))
2414
2415 (define-public cl-parenscript
2416 (sbcl-package->cl-source-package sbcl-parenscript))
2417
2418 (define-public ecl-parenscript
2419 (sbcl-package->ecl-package sbcl-parenscript))
2420
2421 (define-public sbcl-cl-json
2422 (let ((commit "6dfebb9540bfc3cc33582d0c03c9ec27cb913e79"))
2423 (package
2424 (name "sbcl-cl-json")
2425 (version (git-version "0.5" "1" commit))
2426 (source
2427 (origin
2428 (method git-fetch)
2429 (uri (git-reference
2430 (url "https://github.com/hankhero/cl-json")
2431 (commit commit)))
2432 (file-name (git-file-name "cl-json" version))
2433 (sha256
2434 (base32
2435 "0fx3m3x3s5ji950yzpazz4s0img3l6b3d6l3jrfjv0lr702496lh"))))
2436 (build-system asdf-build-system/sbcl)
2437 (native-inputs
2438 `(("fiveam" ,sbcl-fiveam)))
2439 (home-page "https://github.com/hankhero/cl-json")
2440 (synopsis "JSON encoder and decoder for Common-Lisp")
2441 (description
2442 "@command{cl-json} provides an encoder of Lisp objects to JSON format
2443 and a corresponding decoder of JSON data to Lisp objects. Both the encoder
2444 and the decoder are highly customizable; at the same time, the default
2445 settings ensure a very simple mode of operation, similar to that provided by
2446 @command{yason} or @command{st-json}.")
2447 (license license:expat))))
2448
2449 (define-public cl-json
2450 (sbcl-package->cl-source-package sbcl-cl-json))
2451
2452 (define-public ecl-cl-json
2453 (sbcl-package->ecl-package sbcl-cl-json))
2454
2455 (define-public sbcl-unix-opts
2456 (package
2457 (name "sbcl-unix-opts")
2458 (version "0.1.7")
2459 (source
2460 (origin
2461 (method git-fetch)
2462 (uri (git-reference
2463 (url "https://github.com/libre-man/unix-opts")
2464 (commit version)))
2465 (file-name (git-file-name "unix-opts" version))
2466 (sha256
2467 (base32
2468 "08djdi1ard09fijb7w9bdmhmwd98b1hzmcnjw9fqjiqa0g3b44rr"))))
2469 (build-system asdf-build-system/sbcl)
2470 (home-page "https://github.com/hankhero/cl-json")
2471 (synopsis "Unix-style command line options parser")
2472 (description
2473 "This is a minimalistic parser of command line options. The main
2474 advantage of the library is the ability to concisely define command line
2475 options once and then use this definition for parsing and extraction of
2476 command line arguments, as well as printing description of command line
2477 options (you get --help for free). This way you don't need to repeat
2478 yourself. Also, @command{unix-opts} doesn't depend on anything and
2479 precisely controls the behavior of the parser via Common Lisp restarts.")
2480 (license license:expat)))
2481
2482 (define-public cl-unix-opts
2483 (sbcl-package->cl-source-package sbcl-unix-opts))
2484
2485 (define-public ecl-unix-opts
2486 (sbcl-package->ecl-package sbcl-unix-opts))
2487
2488 (define-public sbcl-trivial-garbage
2489 (package
2490 (name "sbcl-trivial-garbage")
2491 (version "0.21")
2492 (source
2493 (origin
2494 (method git-fetch)
2495 (uri (git-reference
2496 (url "https://github.com/trivial-garbage/trivial-garbage")
2497 (commit (string-append "v" version))))
2498 (file-name (git-file-name "trivial-garbage" version))
2499 (sha256
2500 (base32 "0122jicfg7pca1wxw8zak1n92h5friqy60988ns0ysksj3fphw9n"))))
2501 (build-system asdf-build-system/sbcl)
2502 (native-inputs
2503 `(("rt" ,sbcl-rt)))
2504 (home-page "https://common-lisp.net/project/trivial-garbage/")
2505 (synopsis "Portable GC-related APIs for Common Lisp")
2506 (description "@command{trivial-garbage} provides a portable API to
2507 finalizers, weak hash-tables and weak pointers on all major implementations of
2508 the Common Lisp programming language.")
2509 (license license:public-domain)))
2510
2511 (define-public cl-trivial-garbage
2512 (sbcl-package->cl-source-package sbcl-trivial-garbage))
2513
2514 (define-public ecl-trivial-garbage
2515 (sbcl-package->ecl-package sbcl-trivial-garbage))
2516
2517 (define-public sbcl-closer-mop
2518 (let ((commit "19c9d33f576e10715fd79cc1d4f688dab0f241d6"))
2519 (package
2520 (name "sbcl-closer-mop")
2521 (version (git-version "1.0.0" "2" commit))
2522 (source
2523 (origin
2524 (method git-fetch)
2525 (uri (git-reference
2526 (url "https://github.com/pcostanza/closer-mop")
2527 (commit commit)))
2528 (sha256
2529 (base32 "1w3x087wvlwkd6swfdgbvjfs6kazf0la8ax4pjfzikwjch4snn2c"))
2530 (file-name (git-file-name "closer-mop" version ))))
2531 (build-system asdf-build-system/sbcl)
2532 (home-page "https://github.com/pcostanza/closer-mop")
2533 (synopsis "Rectifies absent or incorrect CLOS MOP features")
2534 (description "Closer to MOP is a compatibility layer that rectifies many
2535 of the absent or incorrect CLOS MOP features across a broad range of Common
2536 Lisp implementations.")
2537 (license license:expat))))
2538
2539 (define-public cl-closer-mop
2540 (sbcl-package->cl-source-package sbcl-closer-mop))
2541
2542 (define-public ecl-closer-mop
2543 (sbcl-package->ecl-package sbcl-closer-mop))
2544
2545 (define-public sbcl-cl-cffi-gtk
2546 (let ((commit "e9a46df65995d9a16e6c8dbdc1e09b775eb4a966"))
2547 (package
2548 (name "sbcl-cl-cffi-gtk")
2549 (version (git-version "0.11.2" "2" commit))
2550 (source
2551 (origin
2552 (method git-fetch)
2553 (uri (git-reference
2554 (url "https://github.com/Ferada/cl-cffi-gtk/")
2555 (commit commit)))
2556 (file-name (git-file-name "cl-cffi-gtk" version))
2557 (sha256
2558 (base32
2559 "04vix0gmqsj91lm975sx7jhlnz5gq1xf9jp873mp7c8frc5dk1jj"))))
2560 (build-system asdf-build-system/sbcl)
2561 (native-inputs
2562 `(("fiveam" ,sbcl-fiveam)))
2563 (inputs
2564 `(("bordeaux-threads" ,sbcl-bordeaux-threads)
2565 ("cairo" ,cairo)
2566 ("cffi" ,sbcl-cffi)
2567 ("closer-mop" ,sbcl-closer-mop)
2568 ("gdk-pixbuf" ,gdk-pixbuf)
2569 ("glib" ,glib)
2570 ("gtk" ,gtk+)
2571 ("iterate" ,sbcl-iterate)
2572 ("pango" ,pango)
2573 ("trivial-features" ,sbcl-trivial-features)
2574 ("trivial-garbage" ,sbcl-trivial-garbage)))
2575 (arguments
2576 `(#:asd-files '("gtk/cl-cffi-gtk.asd"
2577 "glib/cl-cffi-gtk-glib.asd"
2578 "gobject/cl-cffi-gtk-gobject.asd"
2579 "gio/cl-cffi-gtk-gio.asd"
2580 "cairo/cl-cffi-gtk-cairo.asd"
2581 "pango/cl-cffi-gtk-pango.asd"
2582 "gdk-pixbuf/cl-cffi-gtk-gdk-pixbuf.asd"
2583 "gdk/cl-cffi-gtk-gdk.asd")
2584 #:test-asd-file "test/cl-cffi-gtk-test.asd"
2585 ;; TODO: Tests fail with memory fault.
2586 ;; See https://github.com/Ferada/cl-cffi-gtk/issues/24.
2587 #:tests? #f
2588 #:phases
2589 (modify-phases %standard-phases
2590 (add-after 'unpack 'fix-paths
2591 (lambda* (#:key inputs #:allow-other-keys)
2592 (substitute* "glib/glib.init.lisp"
2593 (("libglib|libgthread" all)
2594 (string-append (assoc-ref inputs "glib") "/lib/" all)))
2595 (substitute* "gobject/gobject.init.lisp"
2596 (("libgobject" all)
2597 (string-append (assoc-ref inputs "glib") "/lib/" all)))
2598 (substitute* "gio/gio.init.lisp"
2599 (("libgio" all)
2600 (string-append (assoc-ref inputs "glib") "/lib/" all)))
2601 (substitute* "cairo/cairo.init.lisp"
2602 (("libcairo" all)
2603 (string-append (assoc-ref inputs "cairo") "/lib/" all)))
2604 (substitute* "pango/pango.init.lisp"
2605 (("libpango" all)
2606 (string-append (assoc-ref inputs "pango") "/lib/" all)))
2607 (substitute* "gdk-pixbuf/gdk-pixbuf.init.lisp"
2608 (("libgdk_pixbuf" all)
2609 (string-append (assoc-ref inputs "gdk-pixbuf") "/lib/" all)))
2610 (substitute* "gdk/gdk.init.lisp"
2611 (("libgdk" all)
2612 (string-append (assoc-ref inputs "gtk") "/lib/" all)))
2613 (substitute* "gdk/gdk.package.lisp"
2614 (("libgtk" all)
2615 (string-append (assoc-ref inputs "gtk") "/lib/" all))))))))
2616 (home-page "https://github.com/Ferada/cl-cffi-gtk/")
2617 (synopsis "Common Lisp binding for GTK+3")
2618 (description
2619 "@command{cl-cffi-gtk} is a Lisp binding to GTK+ 3 (GIMP Toolkit) which
2620 is a library for creating graphical user interfaces.")
2621 (license license:lgpl3))))
2622
2623 (define-public cl-cffi-gtk
2624 (sbcl-package->cl-source-package sbcl-cl-cffi-gtk))
2625
2626 (define-public ecl-cl-cffi-gtk
2627 (sbcl-package->ecl-package sbcl-cl-cffi-gtk))
2628
2629 (define-public sbcl-cl-webkit
2630 (let ((commit "5ce3ea1fbf2b21e7ccb98402a818508ca9b79395"))
2631 (package
2632 (name "sbcl-cl-webkit")
2633 (version (git-version "2.4" "10" commit))
2634 (source
2635 (origin
2636 (method git-fetch)
2637 (uri (git-reference
2638 (url "https://github.com/joachifm/cl-webkit")
2639 (commit commit)))
2640 (file-name (git-file-name "cl-webkit" version))
2641 (sha256
2642 (base32
2643 "0zgd8hp2nalh0v4xgjvqxd6rf95f7mci181xbg3gmqxxwxd4mkpk"))))
2644 (build-system asdf-build-system/sbcl)
2645 (inputs
2646 `(("cffi" ,sbcl-cffi)
2647 ("cl-cffi-gtk" ,sbcl-cl-cffi-gtk)
2648 ("webkitgtk" ,webkitgtk)))
2649 (arguments
2650 `(#:asd-systems '("cl-webkit2")
2651 #:phases
2652 (modify-phases %standard-phases
2653 (add-after 'unpack 'fix-paths
2654 (lambda* (#:key inputs #:allow-other-keys)
2655 (substitute* "webkit2/webkit2.init.lisp"
2656 (("libwebkit2gtk" all)
2657 (string-append
2658 (assoc-ref inputs "webkitgtk") "/lib/" all))))))))
2659 (home-page "https://github.com/joachifm/cl-webkit")
2660 (synopsis "Binding to WebKitGTK+ for Common Lisp")
2661 (description
2662 "@command{cl-webkit} is a binding to WebKitGTK+ for Common Lisp,
2663 currently targeting WebKit version 2. The WebKitGTK+ library adds web
2664 browsing capabilities to an application, leveraging the full power of the
2665 WebKit browsing engine.")
2666 (license license:expat))))
2667
2668 (define-public cl-webkit
2669 (sbcl-package->cl-source-package sbcl-cl-webkit))
2670
2671 (define-public ecl-cl-webkit
2672 (sbcl-package->ecl-package sbcl-cl-webkit))
2673
2674 (define-public sbcl-lparallel
2675 (package
2676 (name "sbcl-lparallel")
2677 (version "2.8.4")
2678 (source
2679 (origin
2680 (method git-fetch)
2681 (uri (git-reference
2682 (url "https://github.com/lmj/lparallel/")
2683 (commit (string-append "lparallel-" version))))
2684 (file-name (git-file-name "lparallel" version))
2685 (sha256
2686 (base32
2687 "0g0aylrbbrqsz0ahmwhvnk4cmc2931fllbpcfgzsprwnqqd7vwq9"))))
2688 (build-system asdf-build-system/sbcl)
2689 (inputs
2690 `(("alexandria" ,sbcl-alexandria)
2691 ("bordeaux-threads" ,sbcl-bordeaux-threads)
2692 ("trivial-garbage" ,sbcl-trivial-garbage)))
2693 (arguments
2694 `(#:phases
2695 (modify-phases %standard-phases
2696 (add-after 'unpack 'fix-dependency
2697 ;; lparallel loads a SBCL specific system in its asd file. This is
2698 ;; not carried over into the fasl which is generated. In order for
2699 ;; it to be carried over, it needs to be listed as a dependency.
2700 (lambda _
2701 (substitute* "lparallel.asd"
2702 ((":depends-on \\(:alexandria" all)
2703 (string-append all " #+sbcl :sb-cltl2"))))))))
2704 (home-page "https://lparallel.org/")
2705 (synopsis "Parallelism for Common Lisp")
2706 (description
2707 "@command{lparallel} is a library for parallel programming in Common
2708 Lisp, featuring:
2709
2710 @itemize
2711 @item a simple model of task submission with receiving queue,
2712 @item constructs for expressing fine-grained parallelism,
2713 @item asynchronous condition handling across thread boundaries,
2714 @item parallel versions of map, reduce, sort, remove, and many others,
2715 @item promises, futures, and delayed evaluation constructs,
2716 @item computation trees for parallelizing interconnected tasks,
2717 @item bounded and unbounded FIFO queues,
2718 @item high and low priority tasks,
2719 @item task killing by category,
2720 @item integrated timeouts.
2721 @end itemize\n")
2722 (license license:expat)))
2723
2724 (define-public cl-lparallel
2725 (sbcl-package->cl-source-package sbcl-lparallel))
2726
2727 (define-public ecl-lparallel
2728 (sbcl-package->ecl-package sbcl-lparallel))
2729
2730 (define-public sbcl-cl-markup
2731 (let ((commit "e0eb7debf4bdff98d1f49d0f811321a6a637b390"))
2732 (package
2733 (name "sbcl-cl-markup")
2734 (version (git-version "0.1" "1" commit))
2735 (source
2736 (origin
2737 (method git-fetch)
2738 (uri (git-reference
2739 (url "https://github.com/arielnetworks/cl-markup/")
2740 (commit commit)))
2741 (file-name (git-file-name "cl-markup" version))
2742 (sha256
2743 (base32
2744 "10l6k45971dl13fkdmva7zc6i453lmq9j4xax2ci6pjzlc6xjhp7"))))
2745 (build-system asdf-build-system/sbcl)
2746 (home-page "https://github.com/arielnetworks/cl-markup/")
2747 (synopsis "Markup generation library for Common Lisp")
2748 (description
2749 "A modern markup generation library for Common Lisp that features:
2750
2751 @itemize
2752 @item Fast (even faster through compiling the code)
2753 @item Safety
2754 @item Support for multiple document types (markup, xml, html, html5, xhtml)
2755 @item Output with doctype
2756 @item Direct output to stream
2757 @end itemize\n")
2758 (license license:lgpl3+))))
2759
2760 (define-public cl-markup
2761 (sbcl-package->cl-source-package sbcl-cl-markup))
2762
2763 (define-public ecl-cl-markup
2764 (sbcl-package->ecl-package sbcl-cl-markup))
2765
2766 (define-public sbcl-cl-css
2767 (let ((commit "8fe654c8f0cf95b300718101cce4feb517f78e2f"))
2768 (package
2769 (name "sbcl-cl-css")
2770 (version (git-version "0.1" "1" commit))
2771 (source
2772 (origin
2773 (method git-fetch)
2774 (uri (git-reference
2775 (url "https://github.com/inaimathi/cl-css/")
2776 (commit commit)))
2777 (file-name (git-file-name "cl-css" version))
2778 (sha256
2779 (base32
2780 "1lc42zi2sw11fl2589sc19nr5sd2p0wy7wgvgwaggxa5f3ajhsmd"))))
2781 (build-system asdf-build-system/sbcl)
2782 (home-page "https://github.com/inaimathi/cl-css/")
2783 (synopsis "Non-validating, inline CSS generator for Common Lisp")
2784 (description
2785 "This is a dead-simple, non validating, inline CSS generator for Common
2786 Lisp. Its goals are axiomatic syntax, simple implementation to support
2787 portability, and boilerplate reduction in CSS.")
2788 (license license:expat))))
2789
2790 (define-public cl-css
2791 (sbcl-package->cl-source-package sbcl-cl-css))
2792
2793 (define-public ecl-cl-css
2794 (sbcl-package->ecl-package sbcl-cl-css))
2795
2796 (define-public sbcl-portable-threads
2797 (let ((commit "aa26bf38338a6b068bf8bfb3375d8d8c3b0a28df"))
2798 (package
2799 (name "sbcl-portable-threads")
2800 (version (git-version "2.3" "2" commit))
2801 (source
2802 (origin
2803 (method git-fetch)
2804 (uri (git-reference
2805 (url "https://github.com/binghe/portable-threads/")
2806 (commit commit)))
2807 (file-name (git-file-name "portable-threads" version))
2808 (sha256
2809 (base32 "058ksi07vfdmhrf5mdlc833s82m1rcqfja2266520m3r8bzs8bvs"))))
2810 (build-system asdf-build-system/sbcl)
2811 (arguments
2812 `(;; Tests seem broken.
2813 #:tests? #f))
2814 (home-page "https://github.com/binghe/portable-threads")
2815 (synopsis "Portable threads API for Common Lisp")
2816 (description
2817 "Portable Threads (and Scheduled and Periodic Functions) API for Common
2818 Lisp (from GBBopen project).")
2819 (license license:asl2.0))))
2820
2821 (define-public cl-portable-threads
2822 (sbcl-package->cl-source-package sbcl-portable-threads))
2823
2824 (define-public ecl-portable-threads
2825 (sbcl-package->ecl-package sbcl-portable-threads))
2826
2827 (define-public sbcl-usocket
2828 (package
2829 (name "sbcl-usocket")
2830 (version "0.8.3")
2831 (source
2832 (origin
2833 (method git-fetch)
2834 (uri (git-reference
2835 (url "https://github.com/usocket/usocket/")
2836 (commit (string-append "v" version))))
2837 (file-name (git-file-name "usocket" version))
2838 (sha256
2839 (base32
2840 "0x746wr2324l6bn7skqzgkzcbj5kd0zp2ck0c8rldrw0rzabg826"))))
2841 (build-system asdf-build-system/sbcl)
2842 (native-inputs
2843 `(("rt" ,sbcl-rt)))
2844 (inputs
2845 `(("bordeaux-threads" ,sbcl-bordeaux-threads)
2846 ("split-sequence" ,sbcl-split-sequence)))
2847 (arguments
2848 `(#:tests? #f ; FIXME: Tests need network access?
2849 #:asd-systems '("usocket"
2850 "usocket-server")))
2851 (home-page "https://common-lisp.net/project/usocket/")
2852 (synopsis "Universal socket library for Common Lisp")
2853 (description
2854 "This library strives to provide a portable TCP/IP and UDP/IP socket
2855 interface for as many Common Lisp implementations as possible, while keeping
2856 the abstraction and portability layer as thin as possible.")
2857 (license license:expat)))
2858
2859 (define-public cl-usocket
2860 (sbcl-package->cl-source-package sbcl-usocket))
2861
2862 (define-public ecl-usocket
2863 (sbcl-package->ecl-package sbcl-usocket))
2864
2865 (define-public sbcl-s-xml
2866 (package
2867 (name "sbcl-s-xml")
2868 (version "3")
2869 (source
2870 (origin
2871 (method url-fetch)
2872 (uri "https://common-lisp.net/project/s-xml/s-xml.tgz")
2873 (sha256
2874 (base32
2875 "061qcr0dzshsa38s5ma4ay924cwak2nq9gy59dw6v9p0qb58nzjf"))))
2876 (build-system asdf-build-system/sbcl)
2877 (home-page "https://common-lisp.net/project/s-xml/")
2878 (synopsis "Simple XML parser implemented in Common Lisp")
2879 (description
2880 "S-XML is a simple XML parser implemented in Common Lisp. This XML
2881 parser implementation has the following features:
2882
2883 @itemize
2884 @item It works (handling many common XML usages).
2885 @item It is very small (the core is about 700 lines of code, including
2886 comments and whitespace).
2887 @item It has a core API that is simple, efficient and pure functional, much
2888 like that from SSAX (see also http://ssax.sourceforge.net).
2889 @item It supports different DOM models: an XSML-based one, an LXML-based one
2890 and a classic xml-element struct based one.
2891 @item It is reasonably time and space efficient (internally avoiding garbage
2892 generatation as much as possible).
2893 @item It does support CDATA.
2894 @item It should support the same character sets as your Common Lisp
2895 implementation.
2896 @item It does support XML name spaces.
2897 @end itemize
2898
2899 This XML parser implementation has the following limitations:
2900
2901 @itemize
2902 @item It does not support any special tags (like processing instructions).
2903 @item It is not validating, even skips DTD's all together.
2904 @end itemize\n")
2905 (license license:lgpl3+)))
2906
2907 (define-public cl-s-xml
2908 (sbcl-package->cl-source-package sbcl-s-xml))
2909
2910 (define-public ecl-s-xml
2911 (sbcl-package->ecl-package sbcl-s-xml))
2912
2913 (define-public sbcl-s-xml-rpc
2914 (package
2915 (name "sbcl-s-xml-rpc")
2916 (version "7")
2917 (source
2918 (origin
2919 (method url-fetch)
2920 (uri "https://common-lisp.net/project/s-xml-rpc/s-xml-rpc.tgz")
2921 (sha256
2922 (base32
2923 "02z7k163d51v0pzk8mn1xb6h5s6x64gjqkslhwm3a5x26k2gfs11"))))
2924 (build-system asdf-build-system/sbcl)
2925 (inputs
2926 `(("s-xml" ,sbcl-s-xml)))
2927 (home-page "https://common-lisp.net/project/s-xml-rpc/")
2928 (synopsis "Implementation of XML-RPC in Common Lisp for both client and server")
2929 (description
2930 "S-XML-RPC is an implementation of XML-RPC in Common Lisp for both
2931 client and server.")
2932 (license license:lgpl3+)))
2933
2934 (define-public cl-s-xml-rpc
2935 (sbcl-package->cl-source-package sbcl-s-xml-rpc))
2936
2937 (define-public ecl-s-xml-rpc
2938 (sbcl-package->ecl-package sbcl-s-xml-rpc))
2939
2940 (define-public sbcl-trivial-clipboard
2941 (let ((commit "afcd3743b842f5a81fc86dba60f9db59970f49c5"))
2942 (package
2943 (name "sbcl-trivial-clipboard")
2944 (version (git-version "0.0.0.0" "3" commit))
2945 (source
2946 (origin
2947 (method git-fetch)
2948 (uri (git-reference
2949 (url "https://github.com/snmsts/trivial-clipboard")
2950 (commit commit)))
2951 (file-name (git-file-name "trivial-clipboard" version))
2952 (sha256
2953 (base32
2954 "1qfbvkzmvkbqpc5s3sx31c5653sy6qlcixafgzd10qpykb843prr"))))
2955 (build-system asdf-build-system/sbcl)
2956 (inputs
2957 `(("xclip" ,xclip)))
2958 (native-inputs
2959 `(("fiveam" ,sbcl-fiveam)))
2960 (arguments
2961 `(#:phases
2962 (modify-phases %standard-phases
2963 (add-after 'unpack 'fix-paths
2964 (lambda* (#:key inputs #:allow-other-keys)
2965 (substitute* "src/text.lisp"
2966 (("\\(executable-find \"xclip\"\\)")
2967 (string-append "(executable-find \""
2968 (assoc-ref inputs "xclip")
2969 "/bin/xclip\")"))))))))
2970 (home-page "https://github.com/snmsts/trivial-clipboard")
2971 (synopsis "Access system clipboard in Common Lisp")
2972 (description
2973 "@command{trivial-clipboard} gives access to the system clipboard.")
2974 (license license:expat))))
2975
2976 (define-public cl-trivial-clipboard
2977 (sbcl-package->cl-source-package sbcl-trivial-clipboard))
2978
2979 (define-public ecl-trivial-clipboard
2980 (sbcl-package->ecl-package sbcl-trivial-clipboard))
2981
2982 (define-public sbcl-trivial-backtrace
2983 (let ((commit "ca81c011b86424a381a7563cea3b924f24e6fbeb")
2984 (revision "1"))
2985 (package
2986 (name "sbcl-trivial-backtrace")
2987 (version (git-version "0.0.0" revision commit))
2988 (source
2989 (origin
2990 (method git-fetch)
2991 (uri (git-reference
2992 (url "https://github.com/gwkkwg/trivial-backtrace")
2993 (commit commit)))
2994 (file-name (git-file-name "trivial-backtrace" version))
2995 (sha256
2996 (base32 "10p41p43skj6cimdg8skjy7372s8v2xpkg8djjy0l8rm45i654k1"))))
2997 (build-system asdf-build-system/sbcl)
2998 (inputs
2999 `(("sbcl-lift" ,sbcl-lift)))
3000 (arguments
3001 `(#:phases
3002 (modify-phases %standard-phases
3003 (add-after 'check 'delete-test-results
3004 (lambda* (#:key outputs #:allow-other-keys)
3005 (let ((test-results (string-append (assoc-ref outputs "out")
3006 "/share/common-lisp/"
3007 (%lisp-type)
3008 "/trivial-backtrace"
3009 "/test-results")))
3010 (when (file-exists? test-results)
3011 (delete-file-recursively test-results)))
3012 #t)))))
3013 (home-page "https://common-lisp.net/project/trivial-backtrace/")
3014 (synopsis "Portable simple API to work with backtraces in Common Lisp")
3015 (description
3016 "One of the many things that didn't quite get into the Common Lisp
3017 standard was how to get a Lisp to output its call stack when something has
3018 gone wrong. As such, each Lisp has developed its own notion of what to
3019 display, how to display it, and what sort of arguments can be used to
3020 customize it. @code{trivial-backtrace} is a simple solution to generating a
3021 backtrace portably.")
3022 (license license:expat))))
3023
3024 (define-public cl-trivial-backtrace
3025 (sbcl-package->cl-source-package sbcl-trivial-backtrace))
3026
3027 (define-public ecl-trivial-backtrace
3028 (sbcl-package->ecl-package sbcl-trivial-backtrace))
3029
3030 (define-public sbcl-rfc2388
3031 (let ((commit "591bcf7e77f2c222c43953a80f8c297751dc0c4e")
3032 (revision "1"))
3033 (package
3034 (name "sbcl-rfc2388")
3035 (version (git-version "0.0.0" revision commit))
3036 (source
3037 (origin
3038 (method git-fetch)
3039 (uri (git-reference
3040 (url "https://github.com/jdz/rfc2388")
3041 (commit commit)))
3042 (file-name (git-file-name "rfc2388" version))
3043 (sha256
3044 (base32 "0phh5n3clhl9ji8jaxrajidn22d3f0aq87mlbfkkxlnx2pnw694k"))))
3045 (build-system asdf-build-system/sbcl)
3046 (home-page "https://github.com/jdz/rfc2388/")
3047 (synopsis "An implementation of RFC 2388 in Common Lisp")
3048 (description
3049 "This package contains an implementation of RFC 2388, which is used to
3050 process form data posted with HTTP POST method using enctype
3051 \"multipart/form-data\".")
3052 (license license:bsd-2))))
3053
3054 (define-public cl-rfc2388
3055 (sbcl-package->cl-source-package sbcl-rfc2388))
3056
3057 (define-public ecl-rfc2388
3058 (sbcl-package->ecl-package sbcl-rfc2388))
3059
3060 (define-public sbcl-md5
3061 (package
3062 (name "sbcl-md5")
3063 (version "2.0.4")
3064 (source
3065 (origin
3066 (method git-fetch)
3067 (uri (git-reference
3068 (url "https://github.com/pmai/md5")
3069 (commit (string-append "release-" version))))
3070 (file-name (git-file-name "md5" version))
3071 (sha256
3072 (base32 "1waqxzm7vlc22n92hv8r27anlvvjkkh9slhrky1ww7mdx4mmxwb8"))))
3073 (build-system asdf-build-system/sbcl)
3074 (home-page "https://github.com/pmai/md5")
3075 (synopsis
3076 "Common Lisp implementation of the MD5 Message-Digest Algorithm (RFC 1321)")
3077 (description
3078 "This package implements The MD5 Message-Digest Algorithm, as defined in
3079 RFC 1321 by R. Rivest, published April 1992.")
3080 (license license:public-domain)))
3081
3082 (define-public cl-md5
3083 (sbcl-package->cl-source-package sbcl-md5))
3084
3085 (define-public ecl-md5
3086 (package
3087 (inherit (sbcl-package->ecl-package sbcl-md5))
3088 (inputs
3089 `(("flexi-streams" ,ecl-flexi-streams)))))
3090
3091 (define-public sbcl-cl+ssl
3092 (let ((commit "701e645081e6533a3f0f0b3ac86389d6f506c4b5")
3093 (revision "1"))
3094 (package
3095 (name "sbcl-cl+ssl")
3096 (version (git-version "0.0.0" revision commit))
3097 (source
3098 (origin
3099 (method git-fetch)
3100 (uri (git-reference
3101 (url "https://github.com/cl-plus-ssl/cl-plus-ssl")
3102 (commit commit)))
3103 (file-name (git-file-name "cl+ssl" version))
3104 (sha256
3105 (base32 "0nfl275nwhff3m25872y388cydz14kqb6zbwywa6nj85r9k8bgs0"))))
3106 (build-system asdf-build-system/sbcl)
3107 (arguments
3108 '(#:phases
3109 (modify-phases %standard-phases
3110 (add-after 'unpack 'fix-paths
3111 (lambda* (#:key inputs #:allow-other-keys)
3112 (substitute* "src/reload.lisp"
3113 (("libssl.so" all)
3114 (string-append
3115 (assoc-ref inputs "openssl") "/lib/" all))))))))
3116 (inputs
3117 `(("openssl" ,openssl)
3118 ("sbcl-cffi" ,sbcl-cffi)
3119 ("sbcl-trivial-gray-streams" ,sbcl-trivial-gray-streams)
3120 ("sbcl-flexi-streams" ,sbcl-flexi-streams)
3121 ("sbcl-bordeaux-threads" ,sbcl-bordeaux-threads)
3122 ("sbcl-trivial-garbage" ,sbcl-trivial-garbage)
3123 ("sbcl-alexandria" ,sbcl-alexandria)
3124 ("sbcl-trivial-features" ,sbcl-trivial-features)))
3125 (home-page "https://common-lisp.net/project/cl-plus-ssl/")
3126 (synopsis "Common Lisp bindings to OpenSSL")
3127 (description
3128 "This library is a fork of SSL-CMUCL. The original SSL-CMUCL source
3129 code was written by Eric Marsden and includes contributions by Jochen Schmidt.
3130 Development into CL+SSL was done by David Lichteblau.")
3131 (license license:expat))))
3132
3133 (define-public cl-cl+ssl
3134 (sbcl-package->cl-source-package sbcl-cl+ssl))
3135
3136 (define-public ecl-cl+ssl
3137 (sbcl-package->ecl-package sbcl-cl+ssl))
3138
3139 (define-public sbcl-kmrcl
3140 (let ((version "1.111")
3141 (commit "4a27407aad9deb607ffb8847630cde3d041ea25a")
3142 (revision "1"))
3143 (package
3144 (name "sbcl-kmrcl")
3145 (version (git-version version revision commit))
3146 (source
3147 (origin
3148 (method git-fetch)
3149 (uri (git-reference
3150 (url "http://git.kpe.io/kmrcl.git/")
3151 (commit commit)))
3152 (file-name (git-file-name name version))
3153 (sha256
3154 (base32 "06gx04mah5nc8w78s0j8628divbf1s5w7af8w7pvzb2d5mgvrbd2"))))
3155 (build-system asdf-build-system/sbcl)
3156 (inputs
3157 `(("sbcl-rt" ,sbcl-rt)))
3158 (home-page "http://files.kpe.io/kmrcl/")
3159 (synopsis "General utilities for Common Lisp programs")
3160 (description
3161 "KMRCL is a collection of utilities used by a number of Kevin
3162 Rosenberg's Common Lisp packages.")
3163 (license license:llgpl))))
3164
3165 (define-public cl-kmrcl
3166 (sbcl-package->cl-source-package sbcl-kmrcl))
3167
3168 (define-public ecl-kmrcl
3169 (sbcl-package->ecl-package sbcl-kmrcl))
3170
3171 (define-public sbcl-cl-base64
3172 ;; 3.3.4 tests are broken, upstream fixes them.
3173 (let ((commit "577683b18fd880b82274d99fc96a18a710e3987a"))
3174 (package
3175 (name "sbcl-cl-base64")
3176 (version (git-version "3.3.4" "1" commit))
3177 (source
3178 (origin
3179 (method git-fetch)
3180 (uri (git-reference
3181 (url "http://git.kpe.io/cl-base64.git/")
3182 (commit commit)))
3183 (file-name (git-file-name name version))
3184 (sha256
3185 (base32 "12jj54h0fs6n237cvnp8v6hn0imfksammq22ys6pi0gwz2w47rbj"))))
3186 (build-system asdf-build-system/sbcl)
3187 (native-inputs ; For tests.
3188 `(("sbcl-ptester" ,sbcl-ptester)
3189 ("sbcl-kmrcl" ,sbcl-kmrcl)))
3190 (home-page "http://files.kpe.io/cl-base64/")
3191 (synopsis
3192 "Common Lisp package to encode and decode base64 with URI support")
3193 (description
3194 "This package provides highly optimized base64 encoding and decoding.
3195 Besides conversion to and from strings, integer conversions are supported.
3196 Encoding with Uniform Resource Identifiers is supported by using a modified
3197 encoding table that uses only URI-compatible characters.")
3198 (license license:bsd-3))))
3199
3200 (define-public cl-base64
3201 (sbcl-package->cl-source-package sbcl-cl-base64))
3202
3203 (define-public ecl-cl-base64
3204 (sbcl-package->ecl-package sbcl-cl-base64))
3205
3206 (define-public sbcl-chunga
3207 (package
3208 (name "sbcl-chunga")
3209 (version "1.1.7")
3210 (source
3211 (origin
3212 (method git-fetch)
3213 (uri (git-reference
3214 (url "https://github.com/edicl/chunga")
3215 (commit (string-append "v" version))))
3216 (file-name (git-file-name name version))
3217 (sha256
3218 (base32 "0jzn3nyb3f22gm983rfk99smqs3mhb9ivjmasvhq9qla5cl9pyhd"))))
3219 (build-system asdf-build-system/sbcl)
3220 (inputs
3221 `(("sbcl-trivial-gray-streams" ,sbcl-trivial-gray-streams)))
3222 (home-page "https://edicl.github.io/chunga/")
3223 (synopsis "Portable chunked streams for Common Lisp")
3224 (description
3225 "Chunga implements streams capable of chunked encoding on demand as
3226 defined in RFC 2616.")
3227 (license license:bsd-2)))
3228
3229 (define-public cl-chunga
3230 (sbcl-package->cl-source-package sbcl-chunga))
3231
3232 (define-public ecl-chunga
3233 (sbcl-package->ecl-package sbcl-chunga))
3234
3235 (define-public sbcl-cl-who
3236 (let ((version "1.1.4")
3237 (commit "2c08caa4bafba720409af9171feeba3f32e86d32")
3238 (revision "1"))
3239 (package
3240 (name "sbcl-cl-who")
3241 (version (git-version version revision commit))
3242 (source
3243 (origin
3244 (method git-fetch)
3245 (uri (git-reference
3246 (url "https://github.com/edicl/cl-who")
3247 (commit commit)))
3248 (file-name (git-file-name name version))
3249 (sha256
3250 (base32
3251 "0yjb6sr3yazm288m318kqvj9xk8rm9n1lpimgf65ymqv0i5agxsb"))))
3252 (build-system asdf-build-system/sbcl)
3253 (native-inputs
3254 `(("sbcl-flexi-streams" ,sbcl-flexi-streams)))
3255 (home-page "https://edicl.github.io/cl-who/")
3256 (synopsis "Yet another Lisp markup language")
3257 (description
3258 "There are plenty of Lisp Markup Languages out there - every Lisp
3259 programmer seems to write at least one during his career - and CL-WHO (where
3260 WHO means \"with-html-output\" for want of a better acronym) is probably just
3261 as good or bad as the next one.")
3262 (license license:bsd-2))))
3263
3264 (define-public cl-who
3265 (sbcl-package->cl-source-package sbcl-cl-who))
3266
3267 (define-public ecl-cl-who
3268 (sbcl-package->ecl-package sbcl-cl-who))
3269
3270 (define-public sbcl-chipz
3271 (let ((version "0.8")
3272 (commit "75dfbc660a5a28161c57f115adf74c8a926bfc4d")
3273 (revision "1"))
3274 (package
3275 (name "sbcl-chipz")
3276 (version (git-version version revision commit))
3277 (source
3278 (origin
3279 (method git-fetch)
3280 (uri (git-reference
3281 (url "https://github.com/froydnj/chipz")
3282 (commit commit)))
3283 (file-name (git-file-name name version))
3284 (sha256
3285 (base32
3286 "0plx4rs39zbs4gjk77h4a2q11zpy75fh9v8hnxrvsf8fnakajhwg"))))
3287 (build-system asdf-build-system/sbcl)
3288 (native-inputs
3289 `(("sbcl-flexi-streams" ,sbcl-flexi-streams)))
3290 (home-page "http://method-combination.net/lisp/chipz/")
3291 (synopsis
3292 "Common Lisp library for decompressing deflate, zlib, gzip, and bzip2
3293 data")
3294 (description
3295 "DEFLATE data, defined in RFC1951, forms the core of popular
3296 compression formats such as zlib (RFC 1950) and gzip (RFC 1952). As such,
3297 Chipz also provides for decompressing data in those formats as well. BZIP2 is
3298 the format used by the popular compression tool bzip2.")
3299 ;; The author describes it as "MIT-like"
3300 (license license:expat))))
3301
3302 (define-public cl-chipz
3303 (sbcl-package->cl-source-package sbcl-chipz))
3304
3305 (define-public ecl-chipz
3306 (sbcl-package->ecl-package sbcl-chipz))
3307
3308 (define-public sbcl-drakma
3309 (package
3310 (name "sbcl-drakma")
3311 (version "2.0.7")
3312 (source
3313 (origin
3314 (method git-fetch)
3315 (uri (git-reference
3316 (url "https://github.com/edicl/drakma")
3317 (commit (string-append "v" version))))
3318 (file-name (git-file-name name version))
3319 (sha256
3320 (base32
3321 "1441idnyif9xzx3ln1p3fg36k2v9h4wasjqrzc8y52j61420qpci"))))
3322 (build-system asdf-build-system/sbcl)
3323 (inputs
3324 `(("sbcl-puri" ,sbcl-puri)
3325 ("sbcl-cl-base64" ,sbcl-cl-base64)
3326 ("sbcl-chunga" ,sbcl-chunga)
3327 ("sbcl-flexi-streams" ,sbcl-flexi-streams)
3328 ("sbcl-cl-ppcre" ,sbcl-cl-ppcre)
3329 ("sbcl-chipz" ,sbcl-chipz)
3330 ("sbcl-usocket" ,sbcl-usocket)
3331 ("sbcl-cl+ssl" ,sbcl-cl+ssl)))
3332 (native-inputs
3333 `(("sbcl-fiveam" ,sbcl-fiveam)))
3334 (home-page "https://edicl.github.io/drakma/")
3335 (synopsis "HTTP client written in Common Lisp")
3336 (description
3337 "Drakma is a full-featured HTTP client implemented in Common Lisp. It
3338 knows how to handle HTTP/1.1 chunking, persistent connections, re-usable
3339 sockets, SSL, continuable uploads, file uploads, cookies, and more.")
3340 (license license:bsd-2)))
3341
3342 (define-public cl-drakma
3343 (sbcl-package->cl-source-package sbcl-drakma))
3344
3345 (define-public ecl-drakma
3346 (sbcl-package->ecl-package sbcl-drakma))
3347
3348 (define-public sbcl-hunchentoot
3349 (package
3350 (name "sbcl-hunchentoot")
3351 (version "1.2.38")
3352 (source
3353 (origin
3354 (method git-fetch)
3355 (uri (git-reference
3356 (url "https://github.com/edicl/hunchentoot")
3357 (commit (string-append "v" version))))
3358 (file-name (git-file-name "hunchentoot" version))
3359 (sha256
3360 (base32 "1anpcad7w045m4rsjs1f3xdhjwx5cppq1h0vlb3q7dz81fi3i6yq"))))
3361 (build-system asdf-build-system/sbcl)
3362 (native-inputs
3363 `(("sbcl-cl-who" ,sbcl-cl-who)
3364 ("sbcl-drakma" ,sbcl-drakma)))
3365 (inputs
3366 `(("sbcl-chunga" ,sbcl-chunga)
3367 ("sbcl-cl-base64" ,sbcl-cl-base64)
3368 ("sbcl-cl-fad" ,sbcl-cl-fad)
3369 ("sbcl-cl-ppcre" ,sbcl-cl-ppcre)
3370 ("sbcl-flexi-streams" ,sbcl-flexi-streams)
3371 ("sbcl-cl+ssl" ,sbcl-cl+ssl)
3372 ("sbcl-md5" ,sbcl-md5)
3373 ("sbcl-rfc2388" ,sbcl-rfc2388)
3374 ("sbcl-trivial-backtrace" ,sbcl-trivial-backtrace)
3375 ("sbcl-usocket" ,sbcl-usocket)))
3376 (home-page "https://edicl.github.io/hunchentoot/")
3377 (synopsis "Web server written in Common Lisp")
3378 (description
3379 "Hunchentoot is a web server written in Common Lisp and at the same
3380 time a toolkit for building dynamic websites. As a stand-alone web server,
3381 Hunchentoot is capable of HTTP/1.1 chunking (both directions), persistent
3382 connections (keep-alive), and SSL.")
3383 (license license:bsd-2)))
3384
3385 (define-public cl-hunchentoot
3386 (sbcl-package->cl-source-package sbcl-hunchentoot))
3387
3388 (define-public ecl-hunchentoot
3389 (package
3390 (inherit (sbcl-package->ecl-package sbcl-hunchentoot))
3391 (arguments
3392 ;; Tests fail on ECL with 'Socket error in "socket": EINVAL'.
3393 '(#:tests? #f))))
3394
3395 (define-public sbcl-trivial-types
3396 (package
3397 (name "sbcl-trivial-types")
3398 (version "0.0.1")
3399 (source
3400 (origin
3401 (method git-fetch)
3402 (uri (git-reference
3403 (url "https://github.com/m2ym/trivial-types")
3404 (commit "ee869f2b7504d8aa9a74403641a5b42b16f47d88")))
3405 (file-name (git-file-name name version))
3406 (sha256
3407 (base32 "1s4cp9bdlbn8447q7w7f1wkgwrbvfzp20mgs307l5pxvdslin341"))))
3408 (build-system asdf-build-system/sbcl)
3409 (home-page "https://github.com/m2ym/trivial-types")
3410 (synopsis "Trivial type definitions for Common Lisp")
3411 (description
3412 "TRIVIAL-TYPES provides missing but important type definitions such as
3413 PROPER-LIST, ASSOCIATION-LIST, PROPERTY-LIST and TUPLE.")
3414 (license license:llgpl)))
3415
3416 (define-public cl-trivial-types
3417 (sbcl-package->cl-source-package sbcl-trivial-types))
3418
3419 (define-public ecl-trivial-types
3420 (sbcl-package->ecl-package sbcl-trivial-types))
3421
3422 (define-public sbcl-cl-annot
3423 (let ((commit "c99e69c15d935eabc671b483349a406e0da9518d")
3424 (revision "1"))
3425 (package
3426 (name "sbcl-cl-annot")
3427 (version (git-version "0.0.0" revision commit))
3428 (source
3429 (origin
3430 (method git-fetch)
3431 (uri (git-reference
3432 (url "https://github.com/m2ym/cl-annot")
3433 (commit commit)))
3434 (file-name (git-file-name name version))
3435 (sha256
3436 (base32 "1wq1gs9jjd5m6iwrv06c2d7i5dvqsfjcljgbspfbc93cg5xahk4n"))))
3437 (build-system asdf-build-system/sbcl)
3438 (inputs
3439 `(("sbcl-alexandria" ,sbcl-alexandria)))
3440 (home-page "https://github.com/m2ym/cl-annot")
3441 (synopsis "Python-like Annotation Syntax for Common Lisp.")
3442 (description
3443 "@code{cl-annot} is an general annotation library for Common Lisp.")
3444 (license license:llgpl))))
3445
3446 (define-public cl-annot
3447 (sbcl-package->cl-source-package sbcl-cl-annot))
3448
3449 (define-public ecl-cl-annot
3450 (sbcl-package->ecl-package sbcl-cl-annot))
3451
3452 (define-public sbcl-cl-syntax
3453 (package
3454 (name "sbcl-cl-syntax")
3455 (version "0.0.3")
3456 (source
3457 (origin
3458 (method git-fetch)
3459 (uri (git-reference
3460 (url "https://github.com/m2ym/cl-syntax")
3461 (commit "03f0c329bbd55b8622c37161e6278366525e2ccc")))
3462 (file-name (git-file-name "cl-syntax" version))
3463 (sha256
3464 (base32 "17ran8xp77asagl31xv8w819wafh6whwfc9p6dgx22ca537gyl4y"))))
3465 (build-system asdf-build-system/sbcl)
3466 (inputs
3467 `(("cl-annot" ,sbcl-cl-annot)
3468 ("cl-interpol" ,sbcl-cl-interpol)
3469 ("named-readtables" ,sbcl-named-readtables)
3470 ("trivial-types" ,sbcl-trivial-types)))
3471 (arguments
3472 '(#:asd-systems '("cl-syntax"
3473 "cl-syntax-annot"
3474 "cl-syntax-interpol")))
3475 (home-page "https://github.com/m2ym/cl-syntax")
3476 (synopsis "Reader Syntax Coventions for Common Lisp and SLIME")
3477 (description
3478 "CL-SYNTAX provides Reader Syntax Coventions for Common Lisp and SLIME.")
3479 (license license:llgpl)))
3480
3481 (define-public cl-syntax
3482 (sbcl-package->cl-source-package sbcl-cl-syntax))
3483
3484 (define-public ecl-cl-syntax
3485 (sbcl-package->ecl-package sbcl-cl-syntax))
3486
3487 (define-public sbcl-cl-utilities
3488 (let ((commit "dce2d2f6387091ea90357a130fa6d13a6776884b")
3489 (revision "1"))
3490 (package
3491 (name "sbcl-cl-utilities")
3492 (version (git-version "0.0.0" revision commit))
3493 (source
3494 (origin
3495 (method url-fetch)
3496 (uri
3497 (string-append
3498 "https://gitlab.common-lisp.net/cl-utilities/cl-utilities/-/"
3499 "archive/" commit "/cl-utilities-" commit ".tar.gz"))
3500 (sha256
3501 (base32 "1r46v730yf96nk2vb24qmagv9x96xvd08abqwhf02ghgydv1a7z2"))))
3502 (build-system asdf-build-system/sbcl)
3503 (arguments
3504 '(#:phases
3505 (modify-phases %standard-phases
3506 (add-after 'unpack 'fix-paths
3507 (lambda* (#:key inputs #:allow-other-keys)
3508 (substitute* "rotate-byte.lisp"
3509 (("in-package :cl-utilities)" all)
3510 "in-package :cl-utilities)\n\n#+sbcl\n(require :sb-rotate-byte)")))))))
3511 (home-page "http://common-lisp.net/project/cl-utilities")
3512 (synopsis "A collection of semi-standard utilities")
3513 (description
3514 "On Cliki.net <http://www.cliki.net/Common%20Lisp%20Utilities>, there
3515 is a collection of Common Lisp Utilities, things that everybody writes since
3516 they're not part of the official standard. There are some very useful things
3517 there; the only problems are that they aren't implemented as well as you'd
3518 like (some aren't implemented at all) and they aren't conveniently packaged
3519 and maintained. It takes quite a bit of work to carefully implement utilities
3520 for common use, commented and documented, with error checking placed
3521 everywhere some dumb user might make a mistake.")
3522 (license license:public-domain))))
3523
3524 (define-public cl-utilities
3525 (sbcl-package->cl-source-package sbcl-cl-utilities))
3526
3527 (define-public ecl-cl-utilities
3528 (sbcl-package->ecl-package sbcl-cl-utilities))
3529
3530 (define-public sbcl-map-set
3531 (let ((commit "7b4b545b68b8")
3532 (revision "1"))
3533 (package
3534 (name "sbcl-map-set")
3535 (version (git-version "0.0.0" revision commit))
3536 (source
3537 (origin
3538 (method url-fetch)
3539 (uri (string-append
3540 "https://bitbucket.org/tarballs_are_good/map-set/get/"
3541 commit ".tar.gz"))
3542 (sha256
3543 (base32 "1sx5j5qdsy5fklspfammwb16kjrhkggdavm922a9q86jm5l0b239"))))
3544 (build-system asdf-build-system/sbcl)
3545 (home-page "https://bitbucket.org/tarballs_are_good/map-set")
3546 (synopsis "Set-like data structure")
3547 (description
3548 "Implementation of a set-like data structure with constant time
3549 addition, removal, and random selection.")
3550 (license license:bsd-3))))
3551
3552 (define-public cl-map-set
3553 (sbcl-package->cl-source-package sbcl-map-set))
3554
3555 (define-public ecl-map-set
3556 (sbcl-package->ecl-package sbcl-map-set))
3557
3558 (define-public sbcl-quri
3559 (let ((commit "b53231c5f19446dd7c24b15a249fefa45ae94f9a")
3560 (revision "2"))
3561 (package
3562 (name "sbcl-quri")
3563 (version (git-version "0.1.0" revision commit))
3564 (source
3565 (origin
3566 (method git-fetch)
3567 (uri (git-reference
3568 (url "https://github.com/fukamachi/quri")
3569 (commit commit)))
3570 (file-name (git-file-name name version))
3571 (sha256
3572 (base32 "0cansr63m690ymvhway419178mq2sqnmxm4rdxclbsrnjwwbi36m"))))
3573 (build-system asdf-build-system/sbcl)
3574 (arguments
3575 ;; Tests fail with: Component QURI-ASD::QURI-TEST not found,
3576 ;; required by #<SYSTEM "quri">. Why?
3577 '(#:tests? #f))
3578 (native-inputs `(("sbcl-prove" ,sbcl-prove)))
3579 (inputs `(("sbcl-babel" ,sbcl-babel)
3580 ("sbcl-split-sequence" ,sbcl-split-sequence)
3581 ("sbcl-cl-utilities" ,sbcl-cl-utilities)
3582 ("sbcl-alexandria" ,sbcl-alexandria)))
3583 (home-page "https://github.com/fukamachi/quri")
3584 (synopsis "Yet another URI library for Common Lisp")
3585 (description
3586 "QURI (pronounced \"Q-ree\") is yet another URI library for Common
3587 Lisp. It is intended to be a replacement of PURI.")
3588 (license license:bsd-3))))
3589
3590 (define-public cl-quri
3591 (sbcl-package->cl-source-package sbcl-quri))
3592
3593 (define-public ecl-quri
3594 (sbcl-package->ecl-package sbcl-quri))
3595
3596 (define-public sbcl-myway
3597 (let ((commit "286230082a11f879c18b93f17ca571c5f676bfb7")
3598 (revision "1"))
3599 (package
3600 (name "sbcl-myway")
3601 (version (git-version "0.1.0" revision commit))
3602 (source
3603 (origin
3604 (method git-fetch)
3605 (uri (git-reference
3606 (url "https://github.com/fukamachi/myway")
3607 (commit commit)))
3608 (file-name (git-file-name "myway" version))
3609 (sha256
3610 (base32 "0briia9bk3lbr0frnx39d1qg6i38dm4j6z9w3yga3d40k6df4a90"))))
3611 (build-system asdf-build-system/sbcl)
3612 (arguments
3613 ;; Tests fail with: Component MYWAY-ASD::MYWAY-TEST not found, required
3614 ;; by #<SYSTEM "myway">. Why?
3615 '(#:tests? #f))
3616 (native-inputs
3617 `(("sbcl-prove" ,sbcl-prove)))
3618 (inputs
3619 `(("sbcl-cl-ppcre" ,sbcl-cl-ppcre)
3620 ("sbcl-quri" ,sbcl-quri)
3621 ("sbcl-map-set" ,sbcl-map-set)))
3622 (home-page "https://github.com/fukamachi/myway")
3623 (synopsis "Sinatra-compatible URL routing library for Common Lisp")
3624 (description "My Way is a Sinatra-compatible URL routing library.")
3625 (license license:llgpl))))
3626
3627 (define-public cl-myway
3628 (sbcl-package->cl-source-package sbcl-myway))
3629
3630 (define-public ecl-myway
3631 (sbcl-package->ecl-package sbcl-myway))
3632
3633 (define-public sbcl-xsubseq
3634 (let ((commit "5ce430b3da5cda3a73b9cf5cee4df2843034422b")
3635 (revision "1"))
3636 (package
3637 (name "sbcl-xsubseq")
3638 (version (git-version "0.0.1" revision commit))
3639 (source
3640 (origin
3641 (method git-fetch)
3642 (uri (git-reference
3643 (url "https://github.com/fukamachi/xsubseq")
3644 (commit commit)))
3645 (file-name (git-file-name name version))
3646 (sha256
3647 (base32 "1xz79q0p2mclf3sqjiwf6izdpb6xrsr350bv4mlmdlm6rg5r99px"))))
3648 (build-system asdf-build-system/sbcl)
3649 (arguments
3650 ;; Tests fail with: Component XSUBSEQ-ASD::XSUBSEQ-TEST not found,
3651 ;; required by #<SYSTEM "xsubseq">. Why?
3652 '(#:tests? #f))
3653 (native-inputs
3654 `(("sbcl-prove" ,sbcl-prove)))
3655 (home-page "https://github.com/fukamachi/xsubseq")
3656 (synopsis "Efficient way to use \"subseq\"s in Common Lisp")
3657 (description
3658 "XSubseq provides functions to be able to handle \"subseq\"s more
3659 effieiently.")
3660 (license license:bsd-2))))
3661
3662 (define-public cl-xsubseq
3663 (sbcl-package->cl-source-package sbcl-xsubseq))
3664
3665 (define-public ecl-xsubseq
3666 (sbcl-package->ecl-package sbcl-xsubseq))
3667
3668 (define-public sbcl-smart-buffer
3669 (let ((commit "09b9a9a0b3abaa37abe9a730f5aac2643dca4e62")
3670 (revision "1"))
3671 (package
3672 (name "sbcl-smart-buffer")
3673 (version (git-version "0.0.1" revision commit))
3674 (source
3675 (origin
3676 (method git-fetch)
3677 (uri (git-reference
3678 (url "https://github.com/fukamachi/smart-buffer")
3679 (commit commit)))
3680 (file-name (git-file-name name version))
3681 (sha256
3682 (base32 "0qz1zzxx0wm5ff7gpgsq550a59p0qj594zfmm2rglj97dahj54l7"))))
3683 (build-system asdf-build-system/sbcl)
3684 (arguments
3685 ;; Tests fail with: Component SMART-BUFFER-ASD::SMART-BUFFER-TEST not
3686 ;; found, required by #<SYSTEM "smart-buffer">. Why?
3687 `(#:tests? #f))
3688 (native-inputs
3689 `(("sbcl-prove" ,sbcl-prove)))
3690 (inputs
3691 `(("sbcl-xsubseq" ,sbcl-xsubseq)
3692 ("sbcl-flexi-streams" ,sbcl-flexi-streams)))
3693 (home-page "https://github.com/fukamachi/smart-buffer")
3694 (synopsis "Smart octets buffer")
3695 (description
3696 "Smart-buffer provides an output buffer which changes the destination
3697 depending on content size.")
3698 (license license:bsd-3))))
3699
3700 (define-public cl-smart-buffer
3701 (sbcl-package->cl-source-package sbcl-smart-buffer))
3702
3703 (define-public ecl-smart-buffer
3704 (sbcl-package->ecl-package sbcl-smart-buffer))
3705
3706 (define-public sbcl-fast-http
3707 (let ((commit "502a37715dcb8544cc8528b78143a942de662c5a")
3708 (revision "2"))
3709 (package
3710 (name "sbcl-fast-http")
3711 (version (git-version "0.2.0" revision commit))
3712 (source
3713 (origin
3714 (method git-fetch)
3715 (uri (git-reference
3716 (url "https://github.com/fukamachi/fast-http")
3717 (commit commit)))
3718 (file-name (git-file-name name version))
3719 (sha256
3720 (base32 "0al2g7g219jjljsf7b23pbilpgacxy5as5gs2nqf76b5qni396mi"))))
3721 (build-system asdf-build-system/sbcl)
3722 (arguments
3723 ;; Tests fail with: Component FAST-HTTP-ASD::FAST-HTTP-TEST not found,
3724 ;; required by #<SYSTEM "fast-http">. Why?
3725 `(#:tests? #f))
3726 (native-inputs
3727 `(("sbcl-prove" ,sbcl-prove)
3728 ("cl-syntax" ,sbcl-cl-syntax)))
3729 (inputs
3730 `(("sbcl-alexandria" ,sbcl-alexandria)
3731 ("sbcl-proc-parse" ,sbcl-proc-parse)
3732 ("sbcl-xsubseq" ,sbcl-xsubseq)
3733 ("sbcl-smart-buffer" ,sbcl-smart-buffer)
3734 ("sbcl-cl-utilities" ,sbcl-cl-utilities)))
3735 (home-page "https://github.com/fukamachi/fast-http")
3736 (synopsis "HTTP request/response parser for Common Lisp")
3737 (description
3738 "@code{fast-http} is a HTTP request/response protocol parser for Common
3739 Lisp.")
3740 ;; Author specified the MIT license
3741 (license license:expat))))
3742
3743 (define-public cl-fast-http
3744 (sbcl-package->cl-source-package sbcl-fast-http))
3745
3746 (define-public ecl-fast-http
3747 (sbcl-package->ecl-package sbcl-fast-http))
3748
3749 (define-public sbcl-static-vectors
3750 (package
3751 (name "sbcl-static-vectors")
3752 (version "1.8.4")
3753 (source
3754 (origin
3755 (method git-fetch)
3756 (uri (git-reference
3757 (url "https://github.com/sionescu/static-vectors")
3758 (commit (string-append "v" version))))
3759 (file-name (git-file-name name version))
3760 (sha256
3761 (base32 "0qvf9z6bhwhm8n45fjwkm7j8dcb58szfvndky65cyn4lpdval7m1"))))
3762 (native-inputs
3763 `(("sbcl-fiveam" ,sbcl-fiveam)))
3764 (inputs
3765 `(("sbcl-cffi" ,sbcl-cffi)))
3766 (build-system asdf-build-system/sbcl)
3767 (home-page "https://github.com/sionescu/static-vectors")
3768 (synopsis "Allocate SIMPLE-ARRAYs in static memory")
3769 (description
3770 "With @code{static-vectors}, you can create vectors allocated in static
3771 memory.")
3772 (license license:expat)))
3773
3774 (define-public cl-static-vectors
3775 (sbcl-package->cl-source-package sbcl-static-vectors))
3776
3777 (define-public ecl-static-vectors
3778 (sbcl-package->ecl-package sbcl-static-vectors))
3779
3780 (define-public sbcl-marshal
3781 (let ((commit "eff1b15f2b0af2f26f71ad6a4dd5c4beab9299ec")
3782 (revision "1"))
3783 (package
3784 (name "sbcl-marshal")
3785 (version (git-version "1.3.0" revision commit))
3786 (source
3787 (origin
3788 (method git-fetch)
3789 (uri (git-reference
3790 (url "https://github.com/wlbr/cl-marshal")
3791 (commit commit)))
3792 (file-name (git-file-name name version))
3793 (sha256
3794 (base32 "08qs6fhk38xpkkjkpcj92mxx0lgy4ygrbbzrmnivdx281syr0gwh"))))
3795 (build-system asdf-build-system/sbcl)
3796 (home-page "https://github.com/wlbr/cl-marshal")
3797 (synopsis "Simple (de)serialization of Lisp datastructures")
3798 (description
3799 "Simple and fast marshalling of Lisp datastructures. Convert any object
3800 into a string representation, put it on a stream an revive it from there.
3801 Only minimal changes required to make your CLOS objects serializable.")
3802 (license license:expat))))
3803
3804 (define-public cl-marshal
3805 (sbcl-package->cl-source-package sbcl-marshal))
3806
3807 (define-public ecl-marshal
3808 (sbcl-package->ecl-package sbcl-marshal))
3809
3810 (define-public sbcl-checkl
3811 (let ((commit "80328800d047fef9b6e32dfe6bdc98396aee3cc9")
3812 (revision "1"))
3813 (package
3814 (name "sbcl-checkl")
3815 (version (git-version "0.0.0" revision commit))
3816 (source
3817 (origin
3818 (method git-fetch)
3819 (uri (git-reference
3820 (url "https://github.com/rpav/CheckL")
3821 (commit commit)))
3822 (file-name (git-file-name name version))
3823 (sha256
3824 (base32 "0bpisihx1gay44xmyr1dmhlwh00j0zzi04rp9fy35i95l2r4xdlx"))))
3825 (build-system asdf-build-system/sbcl)
3826 (arguments
3827 ;; Error while trying to load definition for system checkl-test from
3828 ;; pathname [...]/checkl-test.asd: The function CHECKL:DEFINE-TEST-OP
3829 ;; is undefined.
3830 '(#:asd-files '("checkl.asd")
3831 #:tests? #f))
3832 (native-inputs
3833 `(("sbcl-fiveam" ,sbcl-fiveam)))
3834 (inputs
3835 `(("sbcl-marshal" ,sbcl-marshal)))
3836 (home-page "https://github.com/rpav/CheckL/")
3837 (synopsis "Dynamic testing for Common Lisp")
3838 (description
3839 "CheckL lets you write tests dynamically, it checks resulting values
3840 against the last run.")
3841 ;; The author specifies both LLGPL and "BSD", but the "BSD" license
3842 ;; isn't specified anywhere, so I don't know which kind. LLGPL is the
3843 ;; stronger of the two and so I think only listing this should suffice.
3844 (license license:llgpl))))
3845
3846 (define-public cl-checkl
3847 (sbcl-package->cl-source-package sbcl-checkl))
3848
3849 (define-public ecl-checkl
3850 (sbcl-package->ecl-package sbcl-checkl))
3851
3852 (define-public sbcl-fast-io
3853 (let ((commit "603f4903dd74fb221859da7058ae6ca3853fe64b")
3854 (revision "2"))
3855 (package
3856 (name "sbcl-fast-io")
3857 (version (git-version "1.0.0" revision commit))
3858 (source
3859 (origin
3860 (method git-fetch)
3861 (uri (git-reference
3862 (url "https://github.com/rpav/fast-io")
3863 (commit commit)))
3864 (file-name (git-file-name name version))
3865 (sha256
3866 (base32 "00agvc0xx4w715i6ach05p995zpcpghn04xc06zyci06q677vw3n"))))
3867 (build-system asdf-build-system/sbcl)
3868 (arguments
3869 ;; Error while trying to load definition for system fast-io-test from
3870 ;; pathname [...]/fast-io-test.asd: The function CHECKL:DEFINE-TEST-OP
3871 ;; is undefined.
3872 '(#:tests? #f
3873 #:asd-files '("fast-io.asd")))
3874 (native-inputs
3875 `(("sbcl-fiveam" ,sbcl-fiveam)
3876 ("sbcl-checkl" ,sbcl-checkl)))
3877 (inputs
3878 `(("sbcl-alexandria" ,sbcl-alexandria)
3879 ("sbcl-trivial-gray-streams" ,sbcl-trivial-gray-streams)
3880 ("sbcl-static-vectors" ,sbcl-static-vectors)))
3881 (home-page "https://github.com/rpav/fast-io")
3882 (synopsis "Fast octet-vector/stream I/O for Common Lisp")
3883 (description
3884 "Fast-io is about improving performance to octet-vectors and octet
3885 streams (though primarily the former, while wrapping the latter).")
3886 ;; Author specifies this as NewBSD which is an alias
3887 (license license:bsd-3))))
3888
3889 (define-public cl-fast-io
3890 (sbcl-package->cl-source-package sbcl-fast-io))
3891
3892 (define-public ecl-fast-io
3893 (sbcl-package->ecl-package sbcl-fast-io))
3894
3895 (define-public sbcl-jonathan
3896 (let ((commit "1f448b4f7ac8265e56e1c02b32ce383e65316300")
3897 (revision "1"))
3898 (package
3899 (name "sbcl-jonathan")
3900 (version (git-version "0.1.0" revision commit))
3901 (source
3902 (origin
3903 (method git-fetch)
3904 (uri (git-reference
3905 (url "https://github.com/Rudolph-Miller/jonathan")
3906 (commit commit)))
3907 (file-name (git-file-name name version))
3908 (sha256
3909 (base32 "14x4iwz3mbag5jzzzr4sb6ai0m9r4q4kyypbq32jmsk2dx1hi807"))))
3910 (build-system asdf-build-system/sbcl)
3911 (arguments
3912 ;; Tests fail with: Component JONATHAN-ASD::JONATHAN-TEST not found,
3913 ;; required by #<SYSTEM "jonathan">. Why?
3914 `(#:tests? #f))
3915 (native-inputs
3916 `(("sbcl-prove" ,sbcl-prove)))
3917 (inputs
3918 `(("sbcl-cl-syntax" ,sbcl-cl-syntax)
3919 ("sbcl-fast-io" ,sbcl-fast-io)
3920 ("sbcl-proc-parse" ,sbcl-proc-parse)
3921 ("sbcl-cl-ppcre" ,sbcl-cl-ppcre)))
3922 (home-page "https://rudolph-miller.github.io/jonathan/overview.html")
3923 (synopsis "JSON encoder and decoder")
3924 (description
3925 "High performance JSON encoder and decoder. Currently support: SBCL,
3926 CCL.")
3927 ;; Author specifies the MIT license
3928 (license license:expat))))
3929
3930 (define-public cl-jonathan
3931 (sbcl-package->cl-source-package sbcl-jonathan))
3932
3933 (define-public ecl-jonathan
3934 (sbcl-package->ecl-package sbcl-jonathan))
3935
3936 (define-public sbcl-http-body
3937 (let ((commit "dd01dc4f5842e3d29728552e5163acce8386eb73")
3938 (revision "1"))
3939 (package
3940 (name "sbcl-http-body")
3941 (version (git-version "0.1.0" revision commit))
3942 (source
3943 (origin
3944 (method git-fetch)
3945 (uri (git-reference
3946 (url "https://github.com/fukamachi/http-body")
3947 (commit commit)))
3948 (file-name (git-file-name name version))
3949 (sha256
3950 (base32 "1jd06snjvxcprhapgfq8sx0y5lrldkvhf206ix6d5a23dd6zcmr0"))))
3951 (build-system asdf-build-system/sbcl)
3952 (arguments
3953 ;; Tests fail with: Component HTTP-BODY-ASD::HTTP-BODY-TEST not
3954 ;; found, required by #<SYSTEM "http-body">. Why?
3955 `(#:tests? #f))
3956 (native-inputs
3957 `(("sbcl-prove" ,sbcl-prove)))
3958 (inputs
3959 `(("sbcl-fast-http" ,sbcl-fast-http)
3960 ("sbcl-jonathan" ,sbcl-jonathan)
3961 ("sbcl-quri" ,sbcl-quri)))
3962 (home-page "https://github.com/fukamachi/http-body")
3963 (synopsis "HTTP POST data parser")
3964 (description
3965 "HTTP-Body parses HTTP POST data and returns POST parameters. It
3966 supports application/x-www-form-urlencoded, application/json, and
3967 multipart/form-data.")
3968 (license license:bsd-2))))
3969
3970 (define-public cl-http-body
3971 (sbcl-package->cl-source-package sbcl-http-body))
3972
3973 (define-public ecl-http-body
3974 (sbcl-package->ecl-package sbcl-http-body))
3975
3976 (define-public sbcl-circular-streams
3977 (let ((commit "e770bade1919c5e8533dd2078c93c3d3bbeb38df")
3978 (revision "1"))
3979 (package
3980 (name "sbcl-circular-streams")
3981 (version (git-version "0.1.0" revision commit))
3982 (source
3983 (origin
3984 (method git-fetch)
3985 (uri (git-reference
3986 (url "https://github.com/fukamachi/circular-streams")
3987 (commit commit)))
3988 (file-name (git-file-name name version))
3989 (sha256
3990 (base32 "1wpw6d5cciyqcf92f7mvihak52pd5s47kk4qq6f0r2z2as68p5rs"))))
3991 (build-system asdf-build-system/sbcl)
3992 (arguments
3993 ;; The tests depend on cl-test-more which is now prove. Prove
3994 ;; tests aren't working for some reason.
3995 `(#:tests? #f))
3996 (inputs
3997 `(("sbcl-fast-io" ,sbcl-fast-io)
3998 ("sbcl-trivial-gray-streams" ,sbcl-trivial-gray-streams)))
3999 (home-page "https://github.com/fukamachi/circular-streams")
4000 (synopsis "Circularly readable streams for Common Lisp")
4001 (description
4002 "Circular-Streams allows you to read streams circularly by wrapping real
4003 streams. Once you reach end-of-file of a stream, it's file position will be
4004 reset to 0 and you're able to read it again.")
4005 (license license:llgpl))))
4006
4007 (define-public cl-circular-streams
4008 (sbcl-package->cl-source-package sbcl-circular-streams))
4009
4010 (define-public ecl-circular-streams
4011 (sbcl-package->ecl-package sbcl-circular-streams))
4012
4013 (define-public sbcl-lack
4014 (let ((commit "abff8efeb0c3a848e6bb0022f2b8b7fa3a1bc88b")
4015 (revision "1"))
4016 (package
4017 (name "sbcl-lack")
4018 (version (git-version "0.1.0" revision commit))
4019 (source
4020 (origin
4021 (method git-fetch)
4022 (uri (git-reference
4023 (url "https://github.com/fukamachi/lack")
4024 (commit commit)))
4025 (file-name (git-file-name "lack" version))
4026 (sha256
4027 (base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85"))))
4028 (build-system asdf-build-system/sbcl)
4029 (native-inputs
4030 `(("prove" ,sbcl-prove)))
4031 (inputs
4032 `(("circular-streams" ,sbcl-circular-streams)
4033 ("http-body" ,sbcl-http-body)
4034 ("ironclad" ,sbcl-ironclad)
4035 ("local-time" ,sbcl-local-time)
4036 ("quri" ,sbcl-quri)
4037 ("trivial-mimes" ,sbcl-trivial-mimes)))
4038 (arguments
4039 '(#:asd-systems '("lack"
4040 "lack-request"
4041 "lack-response"
4042 "lack-component"
4043 "lack-util"
4044 "lack-middleware-backtrace"
4045 "lack-middleware-static")
4046 #:test-asd-file "t-lack.asd"
4047 ;; XXX: Component :CLACK not found
4048 #:tests? #f))
4049 (home-page "https://github.com/fukamachi/lack")
4050 (synopsis "Lack, the core of Clack")
4051 (description
4052 "Lack is a Common Lisp library which allows web applications to be
4053 constructed of modular components. It was originally a part of Clack, however
4054 it's going to be rewritten as an individual project since Clack v2 with
4055 performance and simplicity in mind.")
4056 (license license:llgpl))))
4057
4058 (define-public cl-lack
4059 (sbcl-package->cl-source-package sbcl-lack))
4060
4061 (define-public ecl-lack
4062 (sbcl-package->ecl-package sbcl-lack))
4063
4064 (define-public sbcl-local-time
4065 (let ((commit "62792705245168d3fc2e04164b9a143477284142")
4066 (revision "1"))
4067 (package
4068 (name "sbcl-local-time")
4069 (version (git-version "1.0.6" revision commit))
4070 (source
4071 (origin
4072 (method git-fetch)
4073 (uri (git-reference
4074 (url "https://github.com/dlowe-net/local-time")
4075 (commit commit)))
4076 (file-name (git-file-name name version))
4077 (sha256
4078 (base32 "1r5zq4l1lrgprdr2pw7wwry194yknnllyjf6lx7snypb3k4r3yir"))))
4079 (build-system asdf-build-system/sbcl)
4080 (arguments
4081 ;; TODO: Component :STEFIL not found, required by #<SYSTEM
4082 ;; "local-time/test">
4083 '(#:tests? #f))
4084 (native-inputs
4085 `(("stefil" ,sbcl-hu.dwim.stefil)))
4086 (inputs
4087 `(("sbcl-cl-fad" ,sbcl-cl-fad)))
4088 (home-page "https://common-lisp.net/project/local-time/")
4089 (synopsis "Time manipulation library for Common Lisp")
4090 (description
4091 "The LOCAL-TIME library is a Common Lisp library for the manipulation of
4092 dates and times. It is based almost entirely upon Erik Naggum's paper \"The
4093 Long Painful History of Time\".")
4094 (license license:expat))))
4095
4096 (define-public cl-local-time
4097 (sbcl-package->cl-source-package sbcl-local-time))
4098
4099 (define-public ecl-local-time
4100 (sbcl-package->ecl-package sbcl-local-time))
4101
4102 (define-public sbcl-trivial-mimes
4103 (let ((commit "303f8ac0aa6ca0bc139aa3c34822e623c3723fab")
4104 (revision "1"))
4105 (package
4106 (name "sbcl-trivial-mimes")
4107 (version (git-version "1.1.0" revision commit))
4108 (source
4109 (origin
4110 (method git-fetch)
4111 (uri (git-reference
4112 (url "https://github.com/Shinmera/trivial-mimes")
4113 (commit commit)))
4114 (file-name (git-file-name name version))
4115 (sha256
4116 (base32 "17jxgl47r695bvsb7wi3n2ws5rp1zzgvw0zii8cy5ggw4b4ayv6m"))))
4117 (build-system asdf-build-system/sbcl)
4118 (native-inputs
4119 `(("stefil" ,sbcl-hu.dwim.stefil)))
4120 (inputs
4121 `(("sbcl-cl-fad" ,sbcl-cl-fad)))
4122 (home-page "https://shinmera.github.io/trivial-mimes/")
4123 (synopsis "Tiny Common Lisp library to detect mime types in files")
4124 (description
4125 "This is a teensy library that provides some functions to determine the
4126 mime-type of a file.")
4127 (license license:artistic2.0))))
4128
4129 (define-public cl-trivial-mimes
4130 (sbcl-package->cl-source-package sbcl-trivial-mimes))
4131
4132 (define-public ecl-trivial-mimes
4133 (sbcl-package->ecl-package sbcl-trivial-mimes))
4134
4135 (define-public sbcl-ningle
4136 (let ((commit "50bd4f09b5a03a7249bd4d78265d6451563b25ad")
4137 (revision "1"))
4138 (package
4139 (name "sbcl-ningle")
4140 (version (git-version "0.3.0" revision commit))
4141 (source
4142 (origin
4143 (method git-fetch)
4144 (uri (git-reference
4145 (url "https://github.com/fukamachi/ningle")
4146 (commit commit)))
4147 (file-name (git-file-name name version))
4148 (sha256
4149 (base32 "1bsl8cnxhacb8p92z9n89vhk1ikmij5zavk0m2zvmj7iqm79jzgw"))))
4150 (build-system asdf-build-system/sbcl)
4151 (arguments
4152 ;; TODO: pull in clack-test
4153 '(#:tests? #f
4154 #:phases
4155 (modify-phases %standard-phases
4156 (delete 'cleanup-files)
4157 (delete 'cleanup)
4158 (add-before 'cleanup 'combine-fasls
4159 (lambda* (#:key outputs #:allow-other-keys)
4160 (let* ((out (assoc-ref outputs "out"))
4161 (lib (string-append out "/lib/sbcl"))
4162 (ningle-path (string-append lib "/ningle"))
4163 (fasl-files (find-files out "\\.fasl$")))
4164 (mkdir-p ningle-path)
4165 (let ((fasl-path (lambda (name)
4166 (string-append ningle-path
4167 "/"
4168 (basename name)
4169 "--system.fasl"))))
4170 (for-each (lambda (file)
4171 (rename-file file
4172 (fasl-path
4173 (basename file ".fasl"))))
4174 fasl-files))
4175 fasl-files)
4176 #t)))))
4177 (native-inputs
4178 `(("sbcl-prove" ,sbcl-prove)))
4179 (inputs
4180 `(("sbcl-cl-syntax" ,sbcl-cl-syntax)
4181 ("sbcl-myway" ,sbcl-myway)
4182 ("sbcl-lack" ,sbcl-lack)
4183 ("sbcl-alexandria" ,sbcl-alexandria)
4184 ("sbcl-babel" ,sbcl-babel)))
4185 (home-page "https://8arrow.org/ningle/")
4186 (synopsis "Super micro framework for Common Lisp")
4187 (description
4188 "Ningle is a lightweight web application framework for Common Lisp.")
4189 (license license:llgpl))))
4190
4191 (define-public cl-ningle
4192 (sbcl-package->cl-source-package sbcl-ningle))
4193
4194 (define-public ecl-ningle
4195 (sbcl-package->ecl-package sbcl-ningle))
4196
4197 (define-public sbcl-cl-fastcgi
4198 (let ((commit "d576d20eeb12f225201074b28934ba395b15781a")
4199 (revision "1"))
4200 (package
4201 (name "sbcl-cl-fastcgi")
4202 (version (git-version "0.2" revision commit))
4203 (source
4204 (origin
4205 (method git-fetch)
4206 (uri (git-reference
4207 (url "https://github.com/KDr2/cl-fastcgi/")
4208 (commit commit)))
4209 (file-name (git-file-name name version))
4210 (sha256
4211 (base32 "02mvzzyn0k960s38rbxaqqmdkwcfmyhf8dx6ynz8xyxflmp0s5zv"))))
4212 (build-system asdf-build-system/sbcl)
4213 (inputs
4214 `(("usocket" ,sbcl-usocket)
4215 ("cffi" ,sbcl-cffi)
4216 ("fcgi" ,fcgi)))
4217 (arguments
4218 `(#:phases
4219 (modify-phases %standard-phases
4220 (add-after 'unpack 'fix-paths
4221 (lambda* (#:key inputs #:allow-other-keys)
4222 (substitute* "cl-fastcgi.lisp"
4223 (("\"libfcgi.so\"")
4224 (string-append
4225 "\""
4226 (assoc-ref inputs "fcgi") "/lib/libfcgi.so\""))))))))
4227 (home-page "https://kdr2.com/project/cl-fastcgi.html")
4228 (synopsis "FastCGI wrapper for Common Lisp")
4229 (description
4230 "CL-FastCGI is a generic version of SB-FastCGI, targeting to run on
4231 mostly Common Lisp implementation.")
4232 ;; TODO: Upstream on specifies "BSD license":
4233 ;; https://github.com/KDr2/cl-fastcgi/issues/4
4234 (license license:bsd-2))))
4235
4236 (define-public cl-fastcgi
4237 (sbcl-package->cl-source-package sbcl-cl-fastcgi))
4238
4239 (define-public ecl-cl-fastcgi
4240 (sbcl-package->ecl-package sbcl-cl-fastcgi))
4241
4242 (define-public sbcl-clack
4243 (let ((commit "e3e032843bb1220ab96263c411aa7f2feb4746e0")
4244 (revision "1"))
4245 (package
4246 (name "sbcl-clack")
4247 (version (git-version "2.0.0" revision commit))
4248 (source
4249 (origin
4250 (method git-fetch)
4251 (uri (git-reference
4252 (url "https://github.com/fukamachi/clack")
4253 (commit commit)))
4254 (file-name (git-file-name name version))
4255 (sha256
4256 (base32 "1ymzs6qyrwhlj6cgqsnpyn6g5cbp7a3s1vgxwna20y2q7y4iacy0"))))
4257 (build-system asdf-build-system/sbcl)
4258 (inputs
4259 `(("alexandria" ,sbcl-alexandria)
4260 ("bordeaux-threads" ,sbcl-bordeaux-threads)
4261 ("cl-fastcgi" ,sbcl-cl-fastcgi)
4262 ("flexi-streams" ,sbcl-flexi-streams)
4263 ("hunchentoot" ,sbcl-hunchentoot)
4264 ("lack" ,sbcl-lack)
4265 ("split-sequence" ,sbcl-split-sequence)
4266 ("usocket" ,sbcl-usocket)
4267 ("quri" ,sbcl-quri)))
4268 (arguments
4269 '(#:asd-systems '("clack"
4270 "clack-handler-fcgi"
4271 "clack-socket"
4272 "clack-handler-hunchentoot")))
4273 (home-page "https://github.com/fukamachi/clack")
4274 (synopsis "Web Application Environment for Common Lisp")
4275 (description
4276 "Clack is a web application environment for Common Lisp inspired by
4277 Python's WSGI and Ruby's Rack.")
4278 (license license:llgpl))))
4279
4280 (define-public cl-clack
4281 (sbcl-package->cl-source-package sbcl-clack))
4282
4283 (define-public ecl-clack
4284 (sbcl-package->ecl-package sbcl-clack))
4285
4286 (define-public sbcl-cl-log
4287 (let ((commit "8f4b766d51e02245c310526cf1e4534ce634f837")
4288 (revision "1"))
4289 (package
4290 (name "sbcl-cl-log")
4291 (version "1.0.1")
4292 (source
4293 (origin
4294 (method git-fetch)
4295 (uri (git-reference
4296 (url "https://github.com/nicklevine/cl-log")
4297 (commit commit)))
4298 (sha256
4299 (base32 "1r3z9swy1b59swvaa5b97is9ysrfmjvjjhhw56p7p5hqg93b92ak"))
4300 (file-name (git-file-name "cl-log" version))))
4301 (build-system asdf-build-system/sbcl)
4302 (synopsis "Common Lisp general purpose logging utility")
4303 (description "CL-LOG is a general purpose logging utility, loosely modelled
4304 in some respects after Gary King's Log5. Its features include: logging to
4305 several destinations at once, via \"messengers\", each messenger is tailored to
4306 accept some log messages and reject others, and this tailoring can be changed
4307 on-the-fly, very rapid processing of messages which are rejected by all
4308 messengers, fully independent use of the utility by several different
4309 sub-systems in an application, support for messengers which cl:format text to a
4310 stream, support for messengers which do not invoke cl:format, timestamps in
4311 theory accurate to internal-time-units-per-second.")
4312 (home-page "https://github.com/nicklevine/cl-log")
4313 (license license:expat))))
4314
4315 (define-public cl-log
4316 (sbcl-package->cl-source-package sbcl-cl-log))
4317
4318 (define-public ecl-cl-log
4319 (sbcl-package->ecl-package sbcl-cl-log))
4320
4321 (define-public sbcl-log4cl
4322 (let ((commit "611e094458504b938d49de904eab141285328c7c")
4323 (revision "1"))
4324 (package
4325 (name "sbcl-log4cl")
4326 (build-system asdf-build-system/sbcl)
4327 (version "1.1.2")
4328 (source
4329 (origin
4330 (method git-fetch)
4331 (uri (git-reference
4332 (url "https://github.com/sharplispers/log4cl")
4333 (commit commit)))
4334 (file-name (git-file-name name version))
4335 (sha256
4336 (base32
4337 "08jly0s0g26b56hhpfizxsb4j0yvbh946sd205gr42dkzv8l7dsc"))))
4338 ;; FIXME: tests require stefil, sbcl-hu.dwim.stefil wont work
4339 (arguments
4340 `(#:tests? #f))
4341 (inputs `(("bordeaux-threads" ,sbcl-bordeaux-threads)))
4342 (synopsis "Common Lisp logging framework, modeled after Log4J")
4343 (home-page "https://github.com/7max/log4cl")
4344 (description "This is a Common Lisp logging framework that can log at
4345 various levels and mix text with expressions.")
4346 (license license:asl2.0))))
4347
4348 (define-public cl-log4cl
4349 (sbcl-package->cl-source-package sbcl-log4cl))
4350
4351 (define-public ecl-log4cl
4352 (sbcl-package->ecl-package sbcl-log4cl))
4353
4354 (define-public sbcl-find-port
4355 (let ((commit "00c96a25af93a0f8681d34ec548861f2d7485478")
4356 (revision "1"))
4357 (package
4358 (name "sbcl-find-port")
4359 (build-system asdf-build-system/sbcl)
4360 (version "0.1")
4361 (home-page "https://github.com/eudoxia0/find-port")
4362 (source
4363 (origin
4364 (method git-fetch)
4365 (uri (git-reference
4366 (url home-page)
4367 (commit commit)))
4368 (file-name (git-file-name name version))
4369 (sha256
4370 (base32
4371 "0d6dzbb45jh0rx90wgs6v020k2xa87mvzas3mvfzvivjvqqlpryq"))))
4372 (native-inputs
4373 `(("fiveam" ,sbcl-fiveam)))
4374 (inputs
4375 `(("sbcl-usocket" ,sbcl-usocket)))
4376 (synopsis "Find open ports programmatically in Common Lisp")
4377 (description "This is a small Common Lisp library that finds an open
4378 port within a range.")
4379 (license license:expat))))
4380
4381 (define-public cl-find-port
4382 (sbcl-package->cl-source-package sbcl-find-port))
4383
4384 (define-public ecl-find-port
4385 (sbcl-package->ecl-package sbcl-find-port))
4386
4387 (define-public sbcl-clunit
4388 (let ((commit "6f6d72873f0e1207f037470105969384f8380628")
4389 (revision "1"))
4390 (package
4391 (name "sbcl-clunit")
4392 (version (git-version "0.2.3" revision commit))
4393 (source
4394 (origin
4395 (method git-fetch)
4396 (uri (git-reference
4397 (url "https://github.com/tgutu/clunit")
4398 (commit commit)))
4399 (file-name (git-file-name name version))
4400 (sha256
4401 (base32
4402 "1idf2xnqzlhi8rbrqmzpmb3i1l6pbdzhhajkmhwbp6qjkmxa4h85"))))
4403 (build-system asdf-build-system/sbcl)
4404 (synopsis "CLUnit is a Common Lisp unit testing framework")
4405 (description
4406 "CLUnit is a Common Lisp unit testing framework. It is designed
4407 to be easy to use so that you can quickly start testing. CLUnit
4408 provides a rich set of features aimed at improving your unit testing
4409 experience.")
4410 (home-page "https://tgutu.github.io/clunit/")
4411 ;; MIT License
4412 (license license:expat))))
4413
4414 (define-public cl-clunit
4415 (sbcl-package->cl-source-package sbcl-clunit))
4416
4417 (define-public ecl-clunit
4418 (sbcl-package->ecl-package sbcl-clunit))
4419
4420 (define-public sbcl-py4cl
4421 (let ((commit "4c8a2b0814fd311f978964f825ce012290f60136")
4422 (revision "1"))
4423 (package
4424 (name "sbcl-py4cl")
4425 (version (git-version "0.0.0" revision commit))
4426 (source
4427 (origin
4428 (method git-fetch)
4429 (uri (git-reference
4430 (url "https://github.com/bendudson/py4cl")
4431 (commit commit)))
4432 (file-name (git-file-name name version))
4433 (sha256
4434 (base32
4435 "15mk7qdqjkj56gdnbyrdyz6r7m1h26ldvn6ch96pmvg5vmr1m45r"))
4436 (modules '((guix build utils)))))
4437 (build-system asdf-build-system/sbcl)
4438 (native-inputs
4439 `(("sbcl-clunit" ,sbcl-clunit)))
4440 (inputs
4441 `(("sbcl-trivial-garbage" ,sbcl-trivial-garbage)))
4442 (propagated-inputs
4443 ;; This package doesn't do anything without python available
4444 `(("python" ,python)
4445 ;; For multi-dimensional array support
4446 ("python-numpy" ,python-numpy)))
4447 (arguments
4448 '(#:phases
4449 (modify-phases %standard-phases
4450 (add-after 'unpack 'replace-*base-directory*-var
4451 (lambda* (#:key outputs #:allow-other-keys)
4452 ;; In the ASD, the author makes an attempt to
4453 ;; programatically determine the location of the
4454 ;; source-code so lisp can call into "py4cl.py". We can
4455 ;; hard-code this since we know where this file will
4456 ;; reside.
4457 (substitute* "src/callpython.lisp"
4458 (("py4cl/config:\\*base-directory\\*")
4459 (string-append
4460 "\""
4461 (assoc-ref outputs "out")
4462 "/share/common-lisp/sbcl-source/py4cl/"
4463 "\""))))))))
4464 (synopsis "Call python from Common Lisp")
4465 (description
4466 "Py4CL is a bridge between Common Lisp and Python, which enables Common
4467 Lisp to interact with Python code. It uses streams to communicate with a
4468 separate python process, the approach taken by cl4py. This is different to
4469 the CFFI approach used by burgled-batteries, but has the same goal.")
4470 (home-page "https://github.com/bendudson/py4cl")
4471 ;; MIT License
4472 (license license:expat))))
4473
4474 (define-public cl-py4cl
4475 (sbcl-package->cl-source-package sbcl-py4cl))
4476
4477 (define-public ecl-py4cl
4478 (sbcl-package->ecl-package sbcl-py4cl))
4479
4480 (define-public sbcl-parse-declarations
4481 (let ((commit "549aebbfb9403a7fe948654126b9c814f443f4f2")
4482 (revision "1"))
4483 (package
4484 (name "sbcl-parse-declarations")
4485 (version (git-version "1.0.0" revision commit))
4486 (source
4487 (origin
4488 (method git-fetch)
4489 (uri (git-reference
4490 (url (string-append
4491 "https://gitlab.common-lisp.net/parse-declarations/"
4492 "parse-declarations.git"))
4493 (commit commit)))
4494 (file-name (git-file-name name version))
4495 (sha256
4496 (base32 "03g5qks4c59nmxa48pbslxkfh77h8hn8566jddp6m9pl15dzzpxd"))))
4497 (build-system asdf-build-system/sbcl)
4498 (arguments
4499 `(#:asd-systems '("parse-declarations-1.0")))
4500 (home-page "https://common-lisp.net/project/parse-declarations/")
4501 (synopsis "Parse, filter, and build declarations")
4502 (description
4503 "Parse-Declarations is a Common Lisp library to help writing
4504 macros which establish bindings. To be semantically correct, such
4505 macros must take user declarations into account, as these may affect
4506 the bindings they establish. Yet the ANSI standard of Common Lisp does
4507 not provide any operators to work with declarations in a convenient,
4508 high-level way. This library provides such operators.")
4509 ;; MIT License
4510 (license license:expat))))
4511
4512 (define-public cl-parse-declarations
4513 (sbcl-package->cl-source-package sbcl-parse-declarations))
4514
4515 (define-public ecl-parse-declarations
4516 (sbcl-package->ecl-package sbcl-parse-declarations))
4517
4518 (define-public sbcl-cl-quickcheck
4519 (let ((commit "807b2792a30c883a2fbecea8e7db355b50ba662f")
4520 (revision "1"))
4521 (package
4522 (name "sbcl-cl-quickcheck")
4523 (version (git-version "0.0.4" revision commit))
4524 (source
4525 (origin
4526 (method git-fetch)
4527 (uri (git-reference
4528 (url "https://github.com/mcandre/cl-quickcheck")
4529 (commit commit)))
4530 (file-name (git-file-name name version))
4531 (sha256
4532 (base32
4533 "165lhypq5xkcys6hvzb3jq7ywnmqvzaflda29qk2cbs3ggas4767"))))
4534 (build-system asdf-build-system/sbcl)
4535 (synopsis
4536 "Common Lisp port of the QuickCheck unit test framework")
4537 (description
4538 "Common Lisp port of the QuickCheck unit test framework")
4539 (home-page "https://github.com/mcandre/cl-quickcheck")
4540 ;; MIT
4541 (license license:expat))))
4542
4543 (define-public cl-quickcheck
4544 (sbcl-package->cl-source-package sbcl-cl-quickcheck))
4545
4546 (define-public ecl-cl-quickcheck
4547 (sbcl-package->ecl-package sbcl-cl-quickcheck))
4548
4549 (define-public sbcl-burgled-batteries3
4550 (let ((commit "f65f454d13bb6c40e17e9ec62e41eb5069e09760")
4551 (revision "2"))
4552 (package
4553 (name "sbcl-burgled-batteries3")
4554 (version (git-version "0.0.0" revision commit))
4555 (source
4556 (origin
4557 (method git-fetch)
4558 (uri (git-reference
4559 (url "https://github.com/snmsts/burgled-batteries3")
4560 (commit commit)))
4561 (file-name (git-file-name name version))
4562 (sha256
4563 (base32
4564 "1nzn7jawrfajyzwfnzrg2cmn9xxadcqh4szbpg0jggkhdkdzz4wa"))))
4565 (build-system asdf-build-system/sbcl)
4566 (arguments
4567 `(#:tests? #f
4568 #:modules (((guix build python-build-system) #:select (python-version))
4569 ,@%asdf-build-system-modules)
4570 #:imported-modules ((guix build python-build-system)
4571 ,@%asdf-build-system-modules)
4572 #:phases
4573 (modify-phases (@ (guix build asdf-build-system) %standard-phases)
4574 (add-after 'unpack 'set-*cpython-include-dir*-var
4575 (lambda* (#:key inputs #:allow-other-keys)
4576 (let ((python (assoc-ref inputs "python")))
4577 (setenv "BB_PYTHON3_INCLUDE_DIR"
4578 (string-append python "/include/python"
4579 (python-version python)))
4580 (setenv "BB_PYTHON3_DYLIB"
4581 (string-append python "/lib/libpython3.so"))
4582 #t)))
4583 (add-after 'unpack 'adjust-for-python-3.8
4584 (lambda _
4585 ;; This method is no longer part of the public API.
4586 (substitute* "ffi-interface.lisp"
4587 ((".*PyEval_ReInitThreads.*")
4588 ""))
4589 #t)))))
4590 (native-inputs
4591 `(("sbcl-cl-fad" ,sbcl-cl-fad)
4592 ("sbcl-lift" ,sbcl-lift)
4593 ("sbcl-cl-quickcheck" ,sbcl-cl-quickcheck)))
4594 (inputs
4595 `(("python" ,python)
4596 ("sbcl-cffi" ,sbcl-cffi)
4597 ("sbcl-alexandria" , sbcl-alexandria)
4598 ("sbcl-parse-declarations-1.0" ,sbcl-parse-declarations)
4599 ("sbcl-trivial-garbage" ,sbcl-trivial-garbage)))
4600 (synopsis "Bridge between Python and Lisp (FFI bindings, etc.)")
4601 (description
4602 "This package provides a shim between Python3 (specifically, the
4603 CPython implementation of Python) and Common Lisp.")
4604 (home-page "https://github.com/snmsts/burgled-batteries3")
4605 (license license:expat))))
4606
4607 (define-public cl-burgled-batteries3
4608 (sbcl-package->cl-source-package sbcl-burgled-batteries3))
4609
4610 (define-public ecl-burgled-batteries3
4611 (sbcl-package->ecl-package sbcl-burgled-batteries3))
4612
4613 (define-public sbcl-metabang-bind
4614 (let ((commit "c93b7f7e1c18c954c2283efd6a7fdab36746ab5e")
4615 (revision "1"))
4616 (package
4617 (name "sbcl-metabang-bind")
4618 (version (git-version "0.8.0" revision commit))
4619 (source
4620 (origin
4621 (method git-fetch)
4622 (uri (git-reference
4623 (url "https://github.com/gwkkwg/metabang-bind")
4624 (commit commit)))
4625 (file-name (git-file-name name version))
4626 (sha256
4627 (base32
4628 "0hd0kr91795v77akpbcyqiss9p0p7ypa9dznrllincnmgvsxlmf0"))))
4629 (build-system asdf-build-system/sbcl)
4630 (native-inputs
4631 `(("sbcl-lift" ,sbcl-lift)))
4632 (synopsis "Macro that generalizes @code{multiple-value-bind} etc.")
4633 (description
4634 "Bind extends the idea of of let and destructing to provide a uniform
4635 syntax for all your accessor needs. It combines @code{let},
4636 @code{destructuring-bind}, @code{with-slots}, @code{with-accessors}, structure
4637 editing, property or association-lists, and @code{multiple-value-bind} and a
4638 whole lot more into a single form.")
4639 (home-page "https://common-lisp.net/project/metabang-bind/")
4640 ;; MIT License
4641 (license license:expat))))
4642
4643 (define-public cl-metabang-bind
4644 (sbcl-package->cl-source-package sbcl-metabang-bind))
4645
4646 (define-public ecl-metabang-bind
4647 (sbcl-package->ecl-package sbcl-metabang-bind))
4648
4649 (define-public sbcl-fare-utils
4650 (let ((commit "66e9c6f1499140bc00ccc22febf2aa528cbb5724")
4651 (revision "1"))
4652 (package
4653 (name "sbcl-fare-utils")
4654 (version (git-version "1.0.0.5" revision commit))
4655 (source
4656 (origin
4657 (method git-fetch)
4658 (uri
4659 (git-reference
4660 (url
4661 "https://gitlab.common-lisp.net/frideau/fare-utils.git")
4662 (commit commit)))
4663 (file-name (git-file-name name version))
4664 (sha256
4665 (base32
4666 "01wsr1aap3jdzhn4hrqjbhsjx6qci9dbd3gh4gayv1p49rbg8aqr"))))
4667 (build-system asdf-build-system/sbcl)
4668 (arguments
4669 `(#:test-asd-file "test/fare-utils-test.asd"))
4670 (native-inputs
4671 `(("sbcl-hu.dwim.stefil" ,sbcl-hu.dwim.stefil)))
4672 (synopsis "Collection of utilities and data structures")
4673 (description
4674 "fare-utils is a small collection of utilities. It contains a lot of
4675 basic everyday functions and macros.")
4676 (home-page "https://gitlab.common-lisp.net/frideau/fare-utils")
4677 ;; MIT License
4678 (license license:expat))))
4679
4680 (define-public cl-fare-utils
4681 (sbcl-package->cl-source-package sbcl-fare-utils))
4682
4683 (define-public ecl-fare-utils
4684 (sbcl-package->ecl-package sbcl-fare-utils))
4685
4686 (define-public sbcl-trivial-utf-8
4687 (let ((commit "4d427cfbb1c452436a0efb71c3205c9da67f718f")
4688 (revision "1"))
4689 (package
4690 (name "sbcl-trivial-utf-8")
4691 (version (git-version "0.0.0" revision commit))
4692 (source
4693 (origin
4694 (method git-fetch)
4695 (uri
4696 (git-reference
4697 (url (string-append "https://gitlab.common-lisp.net/"
4698 "trivial-utf-8/trivial-utf-8.git"))
4699 (commit commit)))
4700 (file-name (git-file-name name version))
4701 (sha256
4702 (base32
4703 "1jz27gz8gvqdmvp3k9bxschs6d5b3qgk94qp2bj6nv1d0jc3m1l1"))))
4704 (arguments
4705 ;; Guix incorrectly assumes the "8" is part of the version
4706 ;; number and lobs it off.
4707 `(#:asd-systems '("trivial-utf-8")))
4708 (build-system asdf-build-system/sbcl)
4709 (synopsis "UTF-8 input/output library")
4710 (description
4711 "The Babel library solves a similar problem while understanding more
4712 encodings. Trivial UTF-8 was written before Babel existed, but for new
4713 projects you might be better off going with Babel. The one plus that Trivial
4714 UTF-8 has is that it doesn't depend on any other libraries.")
4715 (home-page "https://common-lisp.net/project/trivial-utf-8/")
4716 (license license:bsd-3))))
4717
4718 (define-public cl-trivial-utf-8
4719 (sbcl-package->cl-source-package sbcl-trivial-utf-8))
4720
4721 (define-public ecl-trivial-utf-8
4722 (sbcl-package->ecl-package sbcl-trivial-utf-8))
4723
4724 (define-public sbcl-idna
4725 (package
4726 (name "sbcl-idna")
4727 (build-system asdf-build-system/sbcl)
4728 (version "0.2.2")
4729 (home-page "https://github.com/antifuchs/idna")
4730 (source
4731 (origin
4732 (method git-fetch)
4733 (uri (git-reference
4734 (url home-page)
4735 (commit version)))
4736 (file-name (git-file-name name version))
4737 (sha256
4738 (base32
4739 "00nbr3mffxhlq14gg9d16pa6691s4qh35inyw76v906s77khm5a2"))))
4740 (inputs
4741 `(("split-sequence" ,sbcl-split-sequence)))
4742 (synopsis "IDNA string encoding and decoding routines for Common Lisp")
4743 (description "This Common Lisp library provides string encoding and
4744 decoding routines for IDNA, the International Domain Names in Applications.")
4745 (license license:expat)))
4746
4747 (define-public cl-idna
4748 (sbcl-package->cl-source-package sbcl-idna))
4749
4750 (define-public ecl-idna
4751 (sbcl-package->ecl-package sbcl-idna))
4752
4753 (define-public sbcl-swap-bytes
4754 (package
4755 (name "sbcl-swap-bytes")
4756 (build-system asdf-build-system/sbcl)
4757 (version "1.2")
4758 (home-page "https://github.com/sionescu/swap-bytes")
4759 (source
4760 (origin
4761 (method git-fetch)
4762 (uri (git-reference
4763 (url home-page)
4764 (commit (string-append "v" version))))
4765 (file-name (git-file-name name version))
4766 (sha256
4767 (base32
4768 "1hw1v1lw26rifyznpnj1csphha9jgzwpiic16ni3pvs6hcsni9rz"))))
4769 (inputs
4770 `(("trivial-features" ,sbcl-trivial-features)))
4771 (native-inputs
4772 `(("fiveam" ,sbcl-fiveam)))
4773 (synopsis "Efficient endianness conversion for Common Lisp")
4774 (description "This Common Lisp library provides optimized byte-swapping
4775 primitives. The library can change endianness of unsigned integers of length
4776 1/2/4/8. Very useful in implementing various network protocols and file
4777 formats.")
4778 (license license:expat)))
4779
4780 (define-public cl-swap-bytes
4781 (sbcl-package->cl-source-package sbcl-swap-bytes))
4782
4783 (define-public ecl-swap-bytes
4784 (sbcl-package->ecl-package sbcl-swap-bytes))
4785
4786 (define-public sbcl-iolib
4787 ;; Latest release is from June 2017.
4788 (let ((commit "7f5ea3a8457a29d224b24653c2b3657fb1898021")
4789 (revision "2"))
4790 (package
4791 (name "sbcl-iolib")
4792 (version (git-version "0.8.3" revision commit))
4793 (home-page "https://github.com/sionescu/iolib")
4794 (source
4795 (origin
4796 (method git-fetch)
4797 (uri (git-reference
4798 (url home-page)
4799 (commit commit)))
4800 (file-name (git-file-name name version))
4801 (sha256
4802 (base32
4803 "1bg5w7lm61hqk4b0svmri8a590q36z76jfa0sdgzb39r98c04w12"))))
4804 (build-system asdf-build-system/sbcl)
4805 (inputs
4806 `(("alexandria" ,sbcl-alexandria)
4807 ("bordeaux-threads" ,sbcl-bordeaux-threads)
4808 ("cffi" ,sbcl-cffi)
4809 ("idna" ,sbcl-idna)
4810 ("libfixposix" ,libfixposix)
4811 ("split-sequence" ,sbcl-split-sequence)
4812 ("swap-bytes" ,sbcl-swap-bytes)))
4813 (arguments
4814 '(#:asd-files '("iolib.asdf.asd"
4815 "iolib.conf.asd"
4816 "iolib.common-lisp.asd"
4817 "iolib.base.asd"
4818 "iolib.asd")
4819 #:phases
4820 (modify-phases %standard-phases
4821 (add-after 'unpack 'fix-paths
4822 (lambda* (#:key inputs #:allow-other-keys)
4823 (substitute* "src/syscalls/ffi-functions-unix.lisp"
4824 (("\\(:default \"libfixposix\"\\)")
4825 (string-append
4826 "(:default \""
4827 (assoc-ref inputs "libfixposix") "/lib/libfixposix\")")))
4828 ;; Socket tests need Internet access, disable them.
4829 (substitute* "iolib.asd"
4830 (("\\(:file \"sockets\" :depends-on \\(\"pkgdcl\" \"defsuites\"\\)\\)")
4831 "")))))))
4832 (synopsis "Common Lisp I/O library")
4833 (description "IOlib is to be a better and more modern I/O library than
4834 the standard Common Lisp library. It contains a socket library, a DNS
4835 resolver, an I/O multiplexer(which supports @code{select(2)}, @code{epoll(4)}
4836 and @code{kqueue(2)}), a pathname library and file-system utilities.")
4837 (license license:expat))))
4838
4839 (define-public cl-iolib
4840 (let ((parent (sbcl-package->cl-source-package sbcl-iolib)))
4841 (package
4842 (inherit parent)
4843 (propagated-inputs
4844 ;; Need header to compile.
4845 `(("libfixposix" ,libfixposix)
4846 ,@(package-propagated-inputs parent))))))
4847
4848 (define-public ecl-iolib
4849 (sbcl-package->ecl-package sbcl-iolib))
4850
4851 (define-public sbcl-ieee-floats
4852 (let ((commit "566b51a005e81ff618554b9b2f0b795d3b29398d")
4853 (revision "1"))
4854 (package
4855 (name "sbcl-ieee-floats")
4856 (build-system asdf-build-system/sbcl)
4857 (version (git-version "20170924" revision commit))
4858 (home-page "https://github.com/marijnh/ieee-floats/")
4859 (source
4860 (origin
4861 (method git-fetch)
4862 (uri (git-reference
4863 (url home-page)
4864 (commit commit)))
4865 (file-name (git-file-name name version))
4866 (sha256
4867 (base32
4868 "1xyj49j9x3lc84cv3dhbf9ja34ywjk1c46dklx425fxw9mkwm83m"))))
4869 (native-inputs
4870 `(("fiveam" ,sbcl-fiveam)))
4871 (synopsis "IEEE 754 binary representation for floats in Common Lisp")
4872 (description "This is a Common Lisp library that converts
4873 floating point values to IEEE 754 binary representation.")
4874 (license license:bsd-3))))
4875
4876 (define-public cl-ieee-floats
4877 (sbcl-package->cl-source-package sbcl-ieee-floats))
4878
4879 (define-public ecl-ieee-floats
4880 (sbcl-package->ecl-package sbcl-ieee-floats))
4881
4882 (define sbcl-closure-common
4883 (let ((commit "e3c5f5f454b72b01b89115e581c3c52a7e201e5c")
4884 (revision "1"))
4885 (package
4886 (name "sbcl-closure-common")
4887 (build-system asdf-build-system/sbcl)
4888 (version (git-version "20101006" revision commit))
4889 (home-page "https://common-lisp.net/project/cxml/")
4890 (source
4891 (origin
4892 (method git-fetch)
4893 (uri (git-reference
4894 (url "https://github.com/sharplispers/closure-common")
4895 (commit commit)))
4896 (file-name (git-file-name name version))
4897 (sha256
4898 (base32
4899 "0k5r2qxn122pxi301ijir3nayi9sg4d7yiy276l36qmzwhp4mg5n"))))
4900 (inputs
4901 `(("trivial-gray-streams" ,sbcl-trivial-gray-streams)
4902 ("babel" ,sbcl-babel)))
4903 (synopsis "Support Common Lisp library for CXML")
4904 (description "Closure-common is an internal helper library. The name
4905 Closure is a reference to the web browser it was originally written for.")
4906 ;; TODO: License?
4907 (license #f))))
4908
4909 (define-public sbcl-cxml
4910 (let ((commit "00b22bf4c4cf11c993d5866fae284f95ab18e6bf")
4911 (revision "1"))
4912 (package
4913 (name "sbcl-cxml")
4914 (version (git-version "0.0.0" revision commit))
4915 (source
4916 (origin
4917 (method git-fetch)
4918 (uri (git-reference
4919 (url "https://github.com/sharplispers/cxml")
4920 (commit commit)))
4921 (file-name (git-file-name name version))
4922 (sha256
4923 (base32
4924 "13kif7rf3gqdycsk9zq0d7y0g9y81krkl0z87k0p2fkbjfgrph37"))))
4925 (build-system asdf-build-system/sbcl)
4926 (inputs
4927 `(("closure-common" ,sbcl-closure-common)
4928 ("puri" ,sbcl-puri)
4929 ("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
4930 (synopsis "Common Lisp XML parser")
4931 (description "CXML implements a namespace-aware, validating XML 1.0
4932 parser as well as the DOM Level 2 Core interfaces. Two parser interfaces are
4933 offered, one SAX-like, the other similar to StAX.")
4934 (home-page "https://common-lisp.net/project/cxml/")
4935 (license license:llgpl))))
4936
4937 (define-public cl-cxml
4938 (sbcl-package->cl-source-package sbcl-cxml))
4939
4940 (define-public ecl-cxml
4941 (sbcl-package->ecl-package sbcl-cxml))
4942
4943 (define-public sbcl-cl-reexport
4944 (let ((commit "312f3661bbe187b5f28536cd7ec2956e91366c3b")
4945 (revision "1"))
4946 (package
4947 (name "sbcl-cl-reexport")
4948 (build-system asdf-build-system/sbcl)
4949 (version (git-version "0.1" revision commit))
4950 (home-page "https://github.com/takagi/cl-reexport")
4951 (source
4952 (origin
4953 (method git-fetch)
4954 (uri (git-reference
4955 (url home-page)
4956 (commit commit)))
4957 (file-name (git-file-name name version))
4958 (sha256
4959 (base32
4960 "1cwpn1m3wrl0fl9plznn7p464db646gnfc8zkyk97dyxski2aq0x"))))
4961 (inputs
4962 `(("alexandria" ,sbcl-alexandria)))
4963 (arguments
4964 ;; TODO: Tests fail because cl-test-more is missing, but I can't find it online.
4965 `(#:tests? #f))
4966 (synopsis "HTTP cookie manager for Common Lisp")
4967 (description "cl-cookie is a Common Lisp library featuring parsing of
4968 cookie headers, cookie creation, cookie jar creation and more.")
4969 (license license:llgpl))))
4970
4971 (define-public cl-reexport
4972 (sbcl-package->cl-source-package sbcl-cl-reexport))
4973
4974 (define-public ecl-cl-reexport
4975 (sbcl-package->ecl-package sbcl-cl-reexport))
4976
4977 (define-public sbcl-cl-cookie
4978 (let ((commit "cea55aed8b9ad25fafd13defbcb9fe8f41b29546")
4979 (revision "1"))
4980 (package
4981 (name "sbcl-cl-cookie")
4982 (build-system asdf-build-system/sbcl)
4983 (version (git-version "0.9.10" revision commit))
4984 (home-page "https://github.com/fukamachi/cl-cookie")
4985 (source
4986 (origin
4987 (method git-fetch)
4988 (uri (git-reference
4989 (url home-page)
4990 (commit commit)))
4991 (file-name (git-file-name name version))
4992 (sha256
4993 (base32
4994 "090g7z75h98zvc1ldx0vh4jn4086dhjm2w30jcwkq553qmyxwl8h"))))
4995 (inputs
4996 `(("proc-parse" ,sbcl-proc-parse)
4997 ("alexandria" ,sbcl-alexandria)
4998 ("quri" ,sbcl-quri)
4999 ("cl-ppcre" ,sbcl-cl-ppcre)
5000 ("local-time" ,sbcl-local-time)))
5001 (native-inputs
5002 `(("prove" ,sbcl-prove)))
5003 (arguments
5004 ;; TODO: Tests fail because cl-cookie depends on cl-cookie-test.
5005 `(#:tests? #f))
5006 (synopsis "HTTP cookie manager for Common Lisp")
5007 (description "cl-cookie is a Common Lisp library featuring parsing of
5008 cookie headers, cookie creation, cookie jar creation and more.")
5009 (license license:bsd-2))))
5010
5011 (define-public cl-cookie
5012 (sbcl-package->cl-source-package sbcl-cl-cookie))
5013
5014 (define-public ecl-cl-cookie
5015 (sbcl-package->ecl-package sbcl-cl-cookie))
5016
5017 (define-public sbcl-dexador
5018 (let ((commit "953090f04c4d1a9ee6632b90133cdc297b68badc")
5019 (revision "1"))
5020 (package
5021 (name "sbcl-dexador")
5022 (build-system asdf-build-system/sbcl)
5023 (version "0.9.14" )
5024 (home-page "https://github.com/fukamachi/dexador")
5025 (source
5026 (origin
5027 (method git-fetch)
5028 (uri (git-reference
5029 (url home-page)
5030 (commit commit)))
5031 (file-name (git-file-name name version))
5032 (sha256
5033 (base32
5034 "0w18fz3301rpmwc3kwb810czcd24mbf7r1z8vdyc0v5crjfpw3mn"))))
5035 (inputs
5036 `(("trivial-gray-streams" ,sbcl-trivial-gray-streams)
5037 ("babel" ,sbcl-babel)
5038 ("usocket" ,sbcl-usocket)
5039 ("fast-http" ,sbcl-fast-http)
5040 ("quri" ,sbcl-quri)
5041 ("fast-io" ,sbcl-fast-io)
5042 ("chunga" ,sbcl-chunga)
5043 ("cl-ppcre" ,sbcl-cl-ppcre)
5044 ("cl-cookie" ,sbcl-cl-cookie)
5045 ("trivial-mimes" ,sbcl-trivial-mimes)
5046 ("chipz" ,sbcl-chipz)
5047 ("cl-base64" ,sbcl-cl-base64)
5048 ("cl-reexport" ,sbcl-cl-reexport)
5049 ("cl+ssl" ,sbcl-cl+ssl)
5050 ("bordeaux-threads" ,sbcl-bordeaux-threads)
5051 ("alexandria" ,sbcl-alexandria)))
5052 (native-inputs
5053 `(("prove" ,sbcl-prove)
5054 ("lack" ,sbcl-lack)
5055 ("clack" ,sbcl-clack)
5056 ("babel" ,sbcl-babel)
5057 ("alexandria" ,sbcl-alexandria)
5058 ("cl-ppcre" ,sbcl-cl-ppcre)
5059 ("local-time" ,sbcl-local-time)
5060 ("trivial-features" ,sbcl-trivial-features)))
5061 (arguments
5062 ;; TODO: Circular dependency: tests depend on clack-test which depends on dexador.
5063 `(#:tests? #f
5064 #:phases
5065 (modify-phases %standard-phases
5066 (add-after 'unpack 'fix-permissions
5067 (lambda _ (make-file-writable "t/data/test.gz") #t)))))
5068 (synopsis "Yet another HTTP client for Common Lisp")
5069 (description "Dexador is yet another HTTP client for Common Lisp with
5070 neat APIs and connection-pooling. It is meant to supersede Drakma.")
5071 (license license:expat))))
5072
5073 (define-public cl-dexador
5074 (package
5075 (inherit (sbcl-package->cl-source-package sbcl-dexador))
5076 (arguments
5077 `(#:phases
5078 ;; asdf-build-system/source has its own phases and does not inherit
5079 ;; from asdf-build-system/sbcl phases.
5080 (modify-phases %standard-phases/source
5081 ;; Already done in SBCL package.
5082 (delete 'reset-gzip-timestamps))))))
5083
5084 (define-public ecl-dexador
5085 (sbcl-package->ecl-package sbcl-dexador))
5086
5087 (define-public sbcl-lisp-namespace
5088 (let ((commit "28107cafe34e4c1c67490fde60c7f92dc610b2e0")
5089 (revision "1"))
5090 (package
5091 (name "sbcl-lisp-namespace")
5092 (build-system asdf-build-system/sbcl)
5093 (version (git-version "0.1" revision commit))
5094 (home-page "https://github.com/guicho271828/lisp-namespace")
5095 (source
5096 (origin
5097 (method git-fetch)
5098 (uri (git-reference
5099 (url home-page)
5100 (commit commit)))
5101 (file-name (git-file-name name version))
5102 (sha256
5103 (base32
5104 "1jw2wykp06z2afb9nm1lgfzll5cjlj36pnknjx614057zkkxq4iy"))))
5105 (inputs
5106 `(("alexandria" ,sbcl-alexandria)))
5107 (native-inputs
5108 `(("fiveam" ,sbcl-fiveam)))
5109 (arguments
5110 `(#:test-asd-file "lisp-namespace.test.asd"
5111 ;; XXX: Component LISP-NAMESPACE-ASD::LISP-NAMESPACE.TEST not found
5112 #:tests? #f))
5113 (synopsis "LISP-N, or extensible namespaces in Common Lisp")
5114 (description "Common Lisp already has major 2 namespaces, function
5115 namespace and value namespace (or variable namespace), but there are actually
5116 more — e.g., class namespace.
5117 This library offers macros to deal with symbols from any namespace.")
5118 (license license:llgpl))))
5119
5120 (define-public cl-lisp-namespace
5121 (sbcl-package->cl-source-package sbcl-lisp-namespace))
5122
5123 (define-public ecl-lisp-namespace
5124 (sbcl-package->ecl-package sbcl-lisp-namespace))
5125
5126 (define-public sbcl-trivial-cltl2
5127 (let ((commit "8a3bda30dc25d2f65fcf514d0eb6e6db75252c61")
5128 (revision "2"))
5129 (package
5130 (name "sbcl-trivial-cltl2")
5131 (build-system asdf-build-system/sbcl)
5132 (version (git-version "0.1.1" revision commit))
5133 (home-page "https://github.com/Zulu-Inuoe/trivial-cltl2")
5134 (source
5135 (origin
5136 (method git-fetch)
5137 (uri (git-reference
5138 (url home-page)
5139 (commit commit)))
5140 (file-name (git-file-name name version))
5141 (sha256
5142 (base32
5143 "08cnzb9rnczn4pn2zpf0587ny4wjy1mjndy885fz9pw7xrlx37ip"))))
5144 (synopsis "Simple CLtL2 compatibility layer for Common Lisp")
5145 (description "This library is a portable compatibility layer around
5146 \"Common Lisp the Language, 2nd
5147 Edition\" (@url{https://www.cs.cmu.edu/Groups/AI/html/cltl/clm/node102.html})
5148 and it exports symbols from implementation-specific packages.")
5149 (license license:llgpl))))
5150
5151 (define-public cl-trivial-cltl2
5152 (sbcl-package->cl-source-package sbcl-trivial-cltl2))
5153
5154 (define-public ecl-trivial-cltl2
5155 (sbcl-package->ecl-package sbcl-trivial-cltl2))
5156
5157 (define-public sbcl-introspect-environment
5158 (let ((commit "fff42f8f8fd0d99db5ad6c5812e53de7d660020b")
5159 (revision "1"))
5160 (package
5161 (name "sbcl-introspect-environment")
5162 (build-system asdf-build-system/sbcl)
5163 (version (git-version "0.1" revision commit))
5164 (home-page "https://github.com/Bike/introspect-environment")
5165 (source
5166 (origin
5167 (method git-fetch)
5168 (uri (git-reference
5169 (url home-page)
5170 (commit commit)))
5171 (file-name (git-file-name name version))
5172 (sha256
5173 (base32
5174 "1i305n0wfmpac63ni4i3vixnnkl8daw5ncxy0k3dv92krgx6qzhp"))))
5175 (native-inputs
5176 `(("fiveam" ,sbcl-fiveam)))
5177 (synopsis "Common Lisp environment introspection portability layer")
5178 (description "This library is a small interface to portable but
5179 nonstandard introspection of Common Lisp environments. It is intended to
5180 allow a bit more compile-time introspection of environments in Common Lisp.
5181
5182 Quite a bit of information is available at the time a macro or compiler-macro
5183 runs; inlining info, type declarations, that sort of thing. This information
5184 is all standard - any Common Lisp program can @code{(declare (integer x))} and
5185 such.
5186
5187 This info ought to be accessible through the standard @code{&environment}
5188 parameters, but it is not. Several implementations keep the information for
5189 their own purposes but do not make it available to user programs, because
5190 there is no standard mechanism to do so.
5191
5192 This library uses implementation-specific hooks to make information available
5193 to users. This is currently supported on SBCL, CCL, and CMUCL. Other
5194 implementations have implementations of the functions that do as much as they
5195 can and/or provide reasonable defaults.")
5196 (license license:wtfpl2))))
5197
5198 (define-public cl-introspect-environment
5199 (sbcl-package->cl-source-package sbcl-introspect-environment))
5200
5201 (define-public ecl-introspect-environment
5202 (sbcl-package->ecl-package sbcl-introspect-environment))
5203
5204 (define-public sbcl-type-i
5205 (let ((commit "d34440ab4ebf5a46a58deccb35950b15670e3667")
5206 (revision "2"))
5207 (package
5208 (name "sbcl-type-i")
5209 (build-system asdf-build-system/sbcl)
5210 (version (git-version "0.1" revision commit))
5211 (home-page "https://github.com/guicho271828/type-i")
5212 (source
5213 (origin
5214 (method git-fetch)
5215 (uri (git-reference
5216 (url home-page)
5217 (commit commit)))
5218 (file-name (git-file-name name version))
5219 (sha256
5220 (base32
5221 "12wsga0pwjkkr176lnjwkmmlm3ccp0n310sjj9h20lk53iyd0z69"))))
5222 (inputs
5223 `(("alexandria" ,sbcl-alexandria)
5224 ("introspect-environment" ,sbcl-introspect-environment)
5225 ("trivia.trivial" ,sbcl-trivia.trivial)))
5226 (native-inputs
5227 `(("fiveam" ,sbcl-fiveam)))
5228 (arguments
5229 `(#:test-asd-file "type-i.test.asd"))
5230 (synopsis "Type inference utility on unary predicates for Common Lisp")
5231 (description "This library tries to provide a way to detect what kind of
5232 type the given predicate is trying to check. This is different from inferring
5233 the return type of a function.")
5234 (license license:llgpl))))
5235
5236 (define-public cl-type-i
5237 (sbcl-package->cl-source-package sbcl-type-i))
5238
5239 (define-public ecl-type-i
5240 (package
5241 (inherit (sbcl-package->ecl-package sbcl-type-i))
5242 (arguments
5243 ;; The tests get stuck indefinitly
5244 '(#:tests? #f))))
5245
5246 (define-public sbcl-optima
5247 (let ((commit "373b245b928c1a5cce91a6cb5bfe5dd77eb36195")
5248 (revision "1"))
5249 (package
5250 (name "sbcl-optima")
5251 (build-system asdf-build-system/sbcl)
5252 (version (git-version "1.0" revision commit))
5253 (home-page "https://github.com/m2ym/optima")
5254 (source
5255 (origin
5256 (method git-fetch)
5257 (uri (git-reference
5258 (url home-page)
5259 (commit commit)))
5260 (file-name (git-file-name name version))
5261 (sha256
5262 (base32
5263 "1yw4ymq7ms89342kkvb3aqxgv0w38m9kd8ikdqxxzyybnkjhndal"))))
5264 (inputs
5265 `(("alexandria" ,sbcl-alexandria)
5266 ("closer-mop" ,sbcl-closer-mop)))
5267 (native-inputs
5268 `(("eos" ,sbcl-eos)))
5269 (arguments
5270 ;; XXX: Circular dependencies: tests depend on optima.ppcre which depends on optima.
5271 `(#:tests? #f
5272 #:test-asd-file "optima.test.asd"))
5273 (synopsis "Optimized pattern matching library for Common Lisp")
5274 (description "Optima is a fast pattern matching library which uses
5275 optimizing techniques widely used in the functional programming world.")
5276 (license license:expat))))
5277
5278 (define-public cl-optima
5279 (sbcl-package->cl-source-package sbcl-optima))
5280
5281 (define-public ecl-optima
5282 (sbcl-package->ecl-package sbcl-optima))
5283
5284 (define-public sbcl-fare-quasiquote
5285 (let ((commit "640d39a0451094071b3e093c97667b3947f43639")
5286 (revision "1"))
5287 (package
5288 (name "sbcl-fare-quasiquote")
5289 (build-system asdf-build-system/sbcl)
5290 (version (git-version "1.0.1" revision commit))
5291 (home-page "https://gitlab.common-lisp.net/frideau/fare-quasiquote")
5292 (source
5293 (origin
5294 (method git-fetch)
5295 (uri (git-reference
5296 (url (string-append "https://gitlab.common-lisp.net/frideau/"
5297 "fare-quasiquote.git"))
5298 (commit commit)))
5299 (file-name (git-file-name name version))
5300 (sha256
5301 (base32 "1g6q11l50kgija9f55lzqpcwvaq0ljiw8v1j265hnyg6nahjwjvg"))))
5302 (inputs
5303 `(("fare-utils" ,sbcl-fare-utils)
5304 ("named-readtables" ,sbcl-named-readtables)
5305 ("optima" ,sbcl-optima)))
5306 (arguments
5307 ;; XXX: Circular dependencies: Tests depend on subsystems,
5308 ;; which depend on the main systems.
5309 `(#:tests? #f
5310 #:asd-systems '("fare-quasiquote"
5311 "fare-quasiquote-extras")
5312 #:phases
5313 (modify-phases %standard-phases
5314 ;; XXX: Require 1.0.0 version of fare-utils, and we package some
5315 ;; commits after 1.0.0.5, but ASDF fails to read the
5316 ;; "-REVISION-COMMIT" part generated by Guix.
5317 (add-after 'unpack 'patch-requirement
5318 (lambda _
5319 (substitute* "fare-quasiquote.asd"
5320 (("\\(:version \"fare-utils\" \"1.0.0\"\\)")
5321 "\"fare-utils\""))
5322 (substitute* "fare-quasiquote-optima.asd"
5323 (("\\(:version \"optima\" \"1\\.0\"\\)")
5324 "\"optima\""))
5325 #t)))))
5326 (synopsis "Pattern-matching friendly implementation of quasiquote")
5327 (description "The main purpose of this n+2nd reimplementation of
5328 quasiquote is enable matching of quasiquoted patterns, using Optima or
5329 Trivia.")
5330 (license license:expat))))
5331
5332 (define-public cl-fare-quasiquote
5333 (sbcl-package->cl-source-package sbcl-fare-quasiquote))
5334
5335 (define-public ecl-fare-quasiquote
5336 (sbcl-package->ecl-package sbcl-fare-quasiquote))
5337
5338 ;;; Split the trivia package in two to work around the circular dependency
5339 ;;; between guicho271828/trivia and guicho271828/type-i.
5340 (define-public sbcl-trivia.trivial
5341 (let ((commit "37698b47a14c2007630468de7a993694ef7bd475")
5342 (revision "2"))
5343 (package
5344 (name "sbcl-trivia.trivial")
5345 (version (git-version "0.0.0" revision commit))
5346 (source
5347 (origin
5348 (method git-fetch)
5349 (uri (git-reference
5350 (url "https://github.com/guicho271828/trivia")
5351 (commit commit)))
5352 (file-name (git-file-name "trivia" version))
5353 (sha256
5354 (base32
5355 "0rsbwbw3ipxxgr6zzhci12nilq8zky475kmhz1rcxy4q8a85vn72"))))
5356 (build-system asdf-build-system/sbcl)
5357 (inputs
5358 `(("alexandria" ,sbcl-alexandria)
5359 ("closer-mop" ,sbcl-closer-mop)
5360 ("lisp-namespace" ,sbcl-lisp-namespace)
5361 ("trivial-cltl2" ,sbcl-trivial-cltl2)))
5362 (arguments
5363 '(#:phases
5364 (modify-phases %standard-phases
5365 (add-after 'unpack 'fix-build
5366 (lambda _
5367 (for-each delete-file
5368 '("trivia.balland2006.asd"
5369 "trivia.ppcre.asd"
5370 "trivia.quasiquote.asd"
5371 "trivia.cffi.asd"
5372 "trivia.asd"
5373 "trivia.test.asd"))
5374 #t)))))
5375 (synopsis "Pattern matching in Common Lisp")
5376 (description "Trivia is a pattern matching compiler that is compatible
5377 with Optima, another pattern matching library for Common Lisp. It is meant to
5378 be faster and more extensible than Optima.")
5379 (home-page "https://github.com/guicho271828/trivia")
5380 (license license:llgpl))))
5381
5382 (define-public cl-trivia.trivial
5383 (sbcl-package->cl-source-package sbcl-trivia.trivial))
5384
5385 (define-public ecl-trivia.trivial
5386 (sbcl-package->ecl-package sbcl-trivia.trivial))
5387
5388 (define-public sbcl-trivia
5389 (package
5390 (inherit sbcl-trivia.trivial)
5391 (name "sbcl-trivia")
5392 (native-inputs
5393 `(("fiveam" ,sbcl-fiveam)
5394 ("optima" ,sbcl-optima)))
5395 (inputs
5396 `(("alexandria" ,sbcl-alexandria)
5397 ("cffi" ,sbcl-cffi)
5398 ("cl-ppcre" ,sbcl-cl-ppcre)
5399 ("fare-quasiquote" ,sbcl-fare-quasiquote)
5400 ("iterate" ,sbcl-iterate)
5401 ("trivia.trivial" ,sbcl-trivia.trivial)
5402 ("type-i" ,sbcl-type-i)))
5403 (arguments
5404 '(#:asd-systems '("trivia"
5405 "trivia.ppcre"
5406 "trivia.quasiquote"
5407 "trivia.cffi")
5408 #:test-asd-file "trivia.test.asd"
5409 #:phases
5410 (modify-phases %standard-phases
5411 (add-after 'unpack 'fix-build
5412 (lambda _
5413 (for-each delete-file
5414 '("trivia.level0.asd"
5415 "trivia.level1.asd"
5416 "trivia.level2.asd"
5417 "trivia.trivial.asd"))
5418 #t)))))))
5419
5420 (define-public cl-trivia
5421 (sbcl-package->cl-source-package sbcl-trivia))
5422
5423 (define-public ecl-trivia
5424 (sbcl-package->ecl-package sbcl-trivia))
5425
5426 (define-public sbcl-mk-string-metrics
5427 (package
5428 (name "sbcl-mk-string-metrics")
5429 (version "0.1.2")
5430 (home-page "https://github.com/cbaggers/mk-string-metrics/")
5431 (source (origin
5432 (method git-fetch)
5433 (uri (git-reference
5434 (url home-page)
5435 (commit version)))
5436 (sha256
5437 (base32 "0bg0bv2mfd4k0g3x72x563hvmrx18xavaffr6xk5rh4if5j7kcf6"))
5438 (file-name (git-file-name name version))))
5439 (build-system asdf-build-system/sbcl)
5440 (synopsis "Calculate various string metrics efficiently in Common Lisp")
5441 (description "This library implements efficient algorithms that calculate
5442 various string metrics in Common Lisp:
5443
5444 @itemize
5445 @item Damerau-Levenshtein distance
5446 @item Hamming distance
5447 @item Jaccard similarity coefficient
5448 @item Jaro distance
5449 @item Jaro-Winkler distance
5450 @item Levenshtein distance
5451 @item Normalized Damerau-Levenshtein distance
5452 @item Normalized Levenshtein distance
5453 @item Overlap coefficient
5454 @end itemize\n")
5455 (license license:x11)))
5456
5457 (define-public cl-mk-string-metrics
5458 (sbcl-package->cl-source-package sbcl-mk-string-metrics))
5459
5460 (define-public ecl-mk-string-metrics
5461 (sbcl-package->ecl-package sbcl-mk-string-metrics))
5462
5463 (define-public sbcl-cl-str
5464 (package
5465 (name "sbcl-cl-str")
5466 (version "0.19")
5467 (home-page "https://github.com/vindarel/cl-str")
5468 (source (origin
5469 (method git-fetch)
5470 (uri (git-reference
5471 (url home-page)
5472 (commit version)))
5473 (sha256
5474 (base32 "1jyza2jhn7w6fl4w87pv0m87z5ia48m6dqw12k0mdh7l3mgjq839"))
5475 (file-name (git-file-name name version))))
5476 (build-system asdf-build-system/sbcl)
5477 (inputs
5478 `(("cl-ppcre" ,sbcl-cl-ppcre)
5479 ("cl-ppcre-unicode" ,sbcl-cl-ppcre-unicode)
5480 ("cl-change-case" ,sbcl-cl-change-case)))
5481 (native-inputs
5482 `(("prove" ,sbcl-prove)))
5483 (arguments
5484 `(#:asd-systems '("str")
5485 #:test-asd-file "str.test.asd"))
5486 (synopsis "Modern, consistent and terse Common Lisp string manipulation library")
5487 (description "A modern and consistent Common Lisp string manipulation
5488 library that focuses on modernity, simplicity and discoverability:
5489 @code{(str:trim s)} instead of @code{(string-trim '(#\\Space ...) s)}), or
5490 @code{str:concat strings} instead of an unusual format construct; one
5491 discoverable library instead of many; consistency and composability, where
5492 @code{s} is always the last argument, which makes it easier to feed pipes and
5493 arrows.")
5494 (license license:expat)))
5495
5496 (define-public cl-str
5497 (sbcl-package->cl-source-package sbcl-cl-str))
5498
5499 (define-public ecl-cl-str
5500 (sbcl-package->ecl-package sbcl-cl-str))
5501
5502 (define-public sbcl-cl-xmlspam
5503 (let ((commit "ea06abcca2a73a9779bcfb09081e56665f94e22a"))
5504 (package
5505 (name "sbcl-cl-xmlspam")
5506 (build-system asdf-build-system/sbcl)
5507 (version (git-version "0.0.0" "1" commit))
5508 (home-page "https://github.com/rogpeppe/cl-xmlspam")
5509 (source
5510 (origin
5511 (method git-fetch)
5512 (uri (git-reference
5513 (url home-page)
5514 (commit commit)))
5515 (file-name (string-append name "-" version))
5516 (sha256
5517 (base32
5518 "0w4rqvrgdgk3fwfq3kx4r7wwdr2bv3b6n3bdqwsiriw9psqzpz2s"))))
5519 (inputs
5520 `(("cxml" ,sbcl-cxml)
5521 ("cl-ppcre" ,sbcl-cl-ppcre)))
5522 (synopsis "Concise, regexp-like pattern matching on streaming XML for Common Lisp")
5523 (description "CXML does an excellent job at parsing XML elements, but what
5524 do you do when you have a XML file that's larger than you want to fit in
5525 memory, and you want to extract some information from it? Writing code to deal
5526 with SAX events, or even using Klacks, quickly becomes tedious.
5527 @code{cl-xmlspam} (for XML Stream PAttern Matcher) is designed to make it easy
5528 to write code that mirrors the structure of the XML that it's parsing. It
5529 also makes it easy to shift paradigms when necessary - the usual Lisp control
5530 constructs can be used interchangeably with pattern matching, and the full
5531 power of CXML is available when necessary.")
5532 (license license:bsd-3))))
5533
5534 (define-public cl-xmlspam
5535 (sbcl-package->cl-source-package sbcl-cl-xmlspam))
5536
5537 (define-public ecl-cl-xmlspam
5538 (sbcl-package->ecl-package sbcl-cl-xmlspam))
5539
5540 (define-public sbcl-dbus
5541 (let ((commit "24b452df3a45ca5dc95015500f34baad175c981a")
5542 (revision "1"))
5543 (package
5544 (name "sbcl-dbus")
5545 (version (git-version "20190408" revision commit))
5546 (home-page "https://github.com/death/dbus")
5547 (source
5548 (origin
5549 (method git-fetch)
5550 (uri (git-reference
5551 (url home-page)
5552 (commit commit)))
5553 (file-name (git-file-name name version))
5554 (sha256
5555 (base32
5556 "0fw2q866yddbf23nk9pxphm9gsasx35vjyss82xzvndnjmzlqfl5"))))
5557 (build-system asdf-build-system/sbcl)
5558 (inputs
5559 `(("alexandria" ,sbcl-alexandria)
5560 ("trivial-garbage" ,sbcl-trivial-garbage)
5561 ("babel" ,sbcl-babel)
5562 ("iolib" ,sbcl-iolib)
5563 ("ieee-floats" ,sbcl-ieee-floats)
5564 ("flexi-streams" ,sbcl-flexi-streams)
5565 ("cl-xmlspam" ,sbcl-cl-xmlspam)
5566 ("ironclad" ,sbcl-ironclad)))
5567 (synopsis "D-Bus client library for Common Lisp")
5568 (description "This is a Common Lisp library that publishes D-Bus
5569 objects as well as send and notify other objects connected to a bus.")
5570 (license license:bsd-2))))
5571
5572 (define-public cl-dbus
5573 (sbcl-package->cl-source-package sbcl-dbus))
5574
5575 (define-public ecl-dbus
5576 (sbcl-package->ecl-package sbcl-dbus))
5577
5578 (define-public sbcl-cl-hooks
5579 (let ((commit "5b638083f3b4f1221a52631d9c8a0a265565cac7")
5580 (revision "1"))
5581 (package
5582 (name "sbcl-cl-hooks")
5583 (build-system asdf-build-system/sbcl)
5584 (version (git-version "0.2.1" revision commit))
5585 (home-page "https://github.com/scymtym/architecture.hooks")
5586 (source
5587 (origin
5588 (method git-fetch)
5589 (uri (git-reference
5590 (url home-page)
5591 (commit commit)))
5592 (file-name (git-file-name name version))
5593 (sha256
5594 (base32
5595 "0bg3l0a28lw5gqqjp6p6b5nhwqk46sgkb7184w5qbfngw1hk8x9y"))))
5596 (inputs
5597 `(("alexandria" ,sbcl-alexandria)
5598 ("let-plus" ,sbcl-let-plus)
5599 ("trivial-garbage" ,sbcl-trivial-garbage)
5600 ("closer-mop" ,sbcl-closer-mop)))
5601 (native-inputs
5602 `(("fiveam" ,sbcl-fiveam)))
5603 (synopsis "Hooks extension point mechanism (as in Emacs) for Common Lisp")
5604 (description "A hook, in the present context, is a certain kind of
5605 extension point in a program that allows interleaving the execution of
5606 arbitrary code with the execution of a the program without introducing any
5607 coupling between the two. Hooks are used extensively in the extensible editor
5608 Emacs.
5609
5610 In the Common LISP Object System (CLOS), a similar kind of extensibility is
5611 possible using the flexible multi-method dispatch mechanism. It may even seem
5612 that the concept of hooks does not provide any benefits over the possibilities
5613 of CLOS. However, there are some differences:
5614
5615 @itemize
5616
5617 @item There can be only one method for each combination of specializers and
5618 qualifiers. As a result this kind of extension point cannot be used by
5619 multiple extensions independently.
5620 @item Removing code previously attached via a @code{:before}, @code{:after} or
5621 @code{:around} method can be cumbersome.
5622 @item There could be other or even multiple extension points besides @code{:before}
5623 and @code{:after} in a single method.
5624 @item Attaching codes to individual objects using eql specializers can be
5625 cumbersome.
5626 @item Introspection of code attached a particular extension point is
5627 cumbersome since this requires enumerating and inspecting the methods of a
5628 generic function.
5629 @end itemize
5630
5631 This library tries to complement some of these weaknesses of method-based
5632 extension-points via the concept of hooks.")
5633 (license license:llgpl))))
5634
5635 (define-public cl-hooks
5636 (sbcl-package->cl-source-package sbcl-cl-hooks))
5637
5638 (define-public ecl-cl-hooks
5639 (sbcl-package->ecl-package sbcl-cl-hooks))
5640
5641 (define-public sbcl-s-sysdeps
5642 ;; No release since 2013.
5643 (let ((commit "9aa23bbdceb24bcdbe0e7c39fa1901858f823106")
5644 (revision "2"))
5645 (package
5646 (name "sbcl-s-sysdeps")
5647 (build-system asdf-build-system/sbcl)
5648 (version (git-version "1" revision commit))
5649 (home-page "https://github.com/svenvc/s-sysdeps")
5650 (source
5651 (origin
5652 (method git-fetch)
5653 (uri (git-reference
5654 (url home-page)
5655 (commit commit)))
5656 (file-name (git-file-name name version))
5657 (sha256
5658 (base32
5659 "1fh8r7kf8s3hvqdg6b71b8p7w3v2kkga9bw8j3qqdxhzr6anpm0b"))))
5660 (inputs
5661 `(("bordeaux-threads" ,sbcl-bordeaux-threads)
5662 ("usocket" ,sbcl-usocket)))
5663 (synopsis "Common Lisp abstraction layer over platform dependent functionality")
5664 (description "@code{s-sysdeps} is an abstraction layer over platform
5665 dependent functionality. This simple package is used as a building block in a
5666 number of other open source projects.
5667
5668 @code{s-sysdeps} abstracts:
5669
5670 @itemize
5671 @item managing processes,
5672 @item implementing a standard TCP/IP server,
5673 @item opening a client TCP/IP socket stream,
5674 @item working with process locks.
5675 @end itemize\n")
5676 (license license:llgpl))))
5677
5678 (define-public cl-s-sysdeps
5679 (sbcl-package->cl-source-package sbcl-s-sysdeps))
5680
5681 (define-public ecl-s-sysdeps
5682 (sbcl-package->ecl-package sbcl-s-sysdeps))
5683
5684 (define-public sbcl-cl-prevalence
5685 (let ((commit "5a76be036092ed6c18cb695a9e03bce87e21b840")
5686 (revision "4"))
5687 (package
5688 (name "sbcl-cl-prevalence")
5689 (build-system asdf-build-system/sbcl)
5690 (version (git-version "5" revision commit))
5691 (home-page "https://github.com/40ants/cl-prevalence")
5692 (source
5693 (origin
5694 (method git-fetch)
5695 (uri (git-reference
5696 (url home-page)
5697 (commit commit)))
5698 (file-name (git-file-name name version))
5699 (sha256
5700 (base32
5701 "050h6hwv8f16b5v6fzba8zmih92hgaaq27i2x9wv1iib41gbia3r"))))
5702 (inputs
5703 `(("s-sysdeps" ,sbcl-s-sysdeps)
5704 ("s-xml" ,sbcl-s-xml)))
5705 (native-inputs
5706 `(("fiveam" ,sbcl-fiveam)))
5707 (synopsis "Implementation of object prevalence for Common Lisp")
5708 (description "This Common Lisp library implements object prevalence (see
5709 @url{https://en.wikipedia.org/wiki/System_prevalence}). It allows
5710 for (de)serializing to and from s-exps as well as XML. Serialization of arbitrary
5711 classes and cyclic data structures are supported.")
5712 (license license:llgpl))))
5713
5714 (define-public cl-prevalence
5715 (sbcl-package->cl-source-package sbcl-cl-prevalence))
5716
5717 (define-public ecl-cl-prevalence
5718 (sbcl-package->ecl-package sbcl-cl-prevalence))
5719
5720 (define-public sbcl-series
5721 (let ((commit "da9061b336119d1e5214aff9117171d494d5a58a")
5722 (revision "1"))
5723 (package
5724 (name "sbcl-series")
5725 (version (git-version "2.2.11" revision commit))
5726 (source
5727 (origin
5728 (method git-fetch)
5729 (uri (git-reference
5730 (url "git://git.code.sf.net/p/series/series")
5731 (commit commit)))
5732 (file-name (git-file-name name version))
5733 (sha256
5734 (base32
5735 "07hk2lhfx42zk018pxqvn4gs77vd4n4g8m4xxbqaxgca76mifwfw"))))
5736 (build-system asdf-build-system/sbcl)
5737 (arguments
5738 ;; Disable the tests, they are apparently buggy and I didn't find
5739 ;; a simple way to make them run and pass.
5740 '(#:tests? #f))
5741 (synopsis "Series data structure for Common Lisp")
5742 (description
5743 "This Common Lisp library provides a series data structure much like
5744 a sequence, with similar kinds of operations. The difference is that in many
5745 situations, operations on series may be composed functionally and yet execute
5746 iteratively, without the need to construct intermediate series values
5747 explicitly. In this manner, series provide both the clarity of a functional
5748 programming style and the efficiency of an iterative programming style.")
5749 (home-page "http://series.sourceforge.net/")
5750 (license license:expat))))
5751
5752 (define-public cl-series
5753 (sbcl-package->cl-source-package sbcl-series))
5754
5755 (define-public ecl-series
5756 (sbcl-package->ecl-package sbcl-series))
5757
5758 (define-public sbcl-periods
5759 (let ((commit "983d4a57325db3c8def942f163133cec5391ec28")
5760 (revision "1"))
5761 (package
5762 (name "sbcl-periods")
5763 (version (git-version "0.0.2" revision commit))
5764 (source
5765 (origin
5766 (method git-fetch)
5767 (uri (git-reference
5768 (url "https://github.com/jwiegley/periods")
5769 (commit commit)))
5770 (file-name (git-file-name name version))
5771 (sha256
5772 (base32
5773 "0z30jr3lxz3cmi019fsl4lgcgwf0yqpn95v9zkkkwgymdrkd4lga"))))
5774 (build-system asdf-build-system/sbcl)
5775 (inputs
5776 `(("local-time" ,sbcl-local-time)
5777 ("series" ,sbcl-series)))
5778 (arguments
5779 '(#:asd-systems '("periods"
5780 "periods-series")))
5781 (synopsis "Common Lisp library for manipulating date/time objects")
5782 (description
5783 "Periods is a Common Lisp library providing a set of utilities for
5784 manipulating times, distances between times, and both contiguous and
5785 discontiguous ranges of time.")
5786 (home-page "https://github.com/jwiegley/periods")
5787 (license license:bsd-3))))
5788
5789 (define-public cl-periods
5790 (sbcl-package->cl-source-package sbcl-periods))
5791
5792 (define-public ecl-periods
5793 (sbcl-package->ecl-package sbcl-periods))
5794
5795 (define-public sbcl-metatilities-base
5796 (let ((commit "6eaa9e3ff0939a93a92109dd0fcd218de85417d5")
5797 (revision "1"))
5798 (package
5799 (name "sbcl-metatilities-base")
5800 (version (git-version "0.6.6" revision commit))
5801 (source
5802 (origin
5803 (method git-fetch)
5804 (uri (git-reference
5805 (url "https://github.com/gwkkwg/metatilities-base")
5806 (commit commit)))
5807 (file-name (git-file-name name version))
5808 (sha256
5809 (base32
5810 "0xpa86pdzlnf4v5g64j3ifaplx71sx2ha8b7vvakswi652679ma0"))))
5811 (build-system asdf-build-system/sbcl)
5812 (native-inputs
5813 `(("lift" ,sbcl-lift)))
5814 (synopsis "Core of the metatilities Common Lisp library")
5815 (description
5816 "Metatilities-base is the core of the metatilities Common Lisp library
5817 which implements a set of utilities.")
5818 (home-page "https://common-lisp.net/project/metatilities-base/")
5819 (license license:expat))))
5820
5821 (define-public cl-metatilities-base
5822 (sbcl-package->cl-source-package sbcl-metatilities-base))
5823
5824 (define-public ecl-metatilities-base
5825 (sbcl-package->ecl-package sbcl-metatilities-base))
5826
5827 (define-public sbcl-cl-containers
5828 (let ((commit "3d1df53c22403121bffb5d553cf7acb1503850e7")
5829 (revision "3"))
5830 (package
5831 (name "sbcl-cl-containers")
5832 (version (git-version "0.12.1" revision commit))
5833 (source
5834 (origin
5835 (method git-fetch)
5836 (uri (git-reference
5837 (url "https://github.com/gwkkwg/cl-containers")
5838 (commit commit)))
5839 (file-name (git-file-name name version))
5840 (sha256
5841 (base32
5842 "18s6jfq11n8nv9k4biz32pm1s7y9zl054ry1gmdbcf39nisy377y"))))
5843 (build-system asdf-build-system/sbcl)
5844 (native-inputs
5845 `(("lift" ,sbcl-lift)))
5846 (inputs
5847 `(("metatilities-base" ,sbcl-metatilities-base)))
5848 (arguments
5849 '(#:asd-files '("cl-containers.asd")
5850 #:phases
5851 (modify-phases %standard-phases
5852 (add-after 'unpack 'relax-version-checks
5853 (lambda _
5854 (substitute* "cl-containers.asd"
5855 (("\\(:version \"metatilities-base\" \"0\\.6\\.6\"\\)")
5856 "\"metatilities-base\""))
5857 (substitute* "cl-containers-test.asd"
5858 (("\\(:version \"lift\" \"1\\.7\\.0\"\\)")
5859 "\"lift\""))
5860 #t)))))
5861 (synopsis "Container library for Common Lisp")
5862 (description
5863 "Common Lisp ships with a set of powerful built in data structures
5864 including the venerable list, full featured arrays, and hash-tables.
5865 CL-containers enhances and builds on these structures by adding containers
5866 that are not available in native Lisp (for example: binary search trees,
5867 red-black trees, sparse arrays and so on), and by providing a standard
5868 interface so that they are simpler to use and so that changing design
5869 decisions becomes significantly easier.")
5870 (home-page "https://common-lisp.net/project/cl-containers/")
5871 (license license:expat))))
5872
5873 (define-public cl-containers
5874 (sbcl-package->cl-source-package sbcl-cl-containers))
5875
5876 (define-public ecl-cl-containers
5877 (sbcl-package->ecl-package sbcl-cl-containers))
5878
5879 (define-public sbcl-xlunit
5880 (let ((commit "3805d34b1d8dc77f7e0ee527a2490194292dd0fc")
5881 (revision "1"))
5882 (package
5883 (name "sbcl-xlunit")
5884 (version (git-version "0.6.3" revision commit))
5885 (source
5886 (origin
5887 (method git-fetch)
5888 (uri (git-reference
5889 (url "http://git.kpe.io/xlunit.git")
5890 (commit commit)))
5891 (file-name (git-file-name name version))
5892 (sha256
5893 (base32
5894 "0argfmp9nghs4sihyj3f8ch9qfib2b7ll07v5m9ziajgzsfl5xw3"))))
5895 (build-system asdf-build-system/sbcl)
5896 (arguments
5897 '(#:phases
5898 (modify-phases %standard-phases
5899 (add-after 'unpack 'fix-tests
5900 (lambda _
5901 (substitute* "xlunit.asd"
5902 ((" :force t") ""))
5903 #t)))))
5904 (synopsis "Unit testing package for Common Lisp")
5905 (description
5906 "The XLUnit package is a toolkit for building test suites. It is based
5907 on the XPTest package by Craig Brozensky and the JUnit package by Kent Beck.")
5908 (home-page "http://quickdocs.org/xlunit/")
5909 (license license:bsd-3))))
5910
5911 (define-public cl-xlunit
5912 (sbcl-package->cl-source-package sbcl-xlunit))
5913
5914 (define-public ecl-xlunit
5915 (sbcl-package->ecl-package sbcl-xlunit))
5916
5917 (define-public sbcl-cambl
5918 (let ((commit "7016d1a98215f82605d1c158e7a16504ca1f4636")
5919 (revision "1"))
5920 (package
5921 (name "sbcl-cambl")
5922 (version (git-version "4.0.0" revision commit))
5923 (source
5924 (origin
5925 (method git-fetch)
5926 (uri (git-reference
5927 (url "https://github.com/jwiegley/cambl")
5928 (commit commit)))
5929 (file-name (git-file-name "cambl" version))
5930 (sha256
5931 (base32 "103mry04j2k9vznsxm7wcvccgxkil92cdrv52miwcmxl8daa4jiz"))))
5932 (build-system asdf-build-system/sbcl)
5933 (native-inputs
5934 `(("xlunit" ,sbcl-xlunit)))
5935 (inputs
5936 `(("alexandria" ,sbcl-alexandria)
5937 ("cl-containers" ,sbcl-cl-containers)
5938 ("local-time" ,sbcl-local-time)
5939 ("periods" ,sbcl-periods)))
5940 (arguments
5941 '(#:asd-files '("fprog.asd"
5942 "cambl.asd")))
5943 (synopsis "Commoditized amounts and balances for Common Lisp")
5944 (description
5945 "CAMBL is a Common Lisp library providing a convenient facility for
5946 working with commoditized values. It does not allow compound units (and so is
5947 not suited for scientific operations) but does work rather nicely for the
5948 purpose of financial calculations.")
5949 (home-page "https://github.com/jwiegley/cambl")
5950 (license license:bsd-3))))
5951
5952 (define-public cl-cambl
5953 (sbcl-package->cl-source-package sbcl-cambl))
5954
5955 (define-public ecl-cambl
5956 (sbcl-package->ecl-package sbcl-cambl))
5957
5958 (define-public sbcl-cl-ledger
5959 (let ((commit "08e0be41795e804cd36142e51756ad0b1caa377b")
5960 (revision "1"))
5961 (package
5962 (name "sbcl-cl-ledger")
5963 (version (git-version "4.0.0" revision commit))
5964 (source
5965 (origin
5966 (method git-fetch)
5967 (uri (git-reference
5968 (url "https://github.com/ledger/cl-ledger")
5969 (commit commit)))
5970 (file-name (git-file-name name version))
5971 (sha256
5972 (base32
5973 "1via0qf6wjcyxnfbmfxjvms0ik9j8rqbifgpmnhrzvkhrq9pv8h1"))))
5974 (build-system asdf-build-system/sbcl)
5975 (inputs
5976 `(("cambl" ,sbcl-cambl)
5977 ("cl-ppcre" ,sbcl-cl-ppcre)
5978 ("local-time" ,sbcl-local-time)
5979 ("periods" ,sbcl-periods)))
5980 (arguments
5981 '(#:phases
5982 (modify-phases %standard-phases
5983 (add-after 'unpack 'fix-system-definition
5984 (lambda _
5985 (substitute* "cl-ledger.asd"
5986 ((" :build-operation program-op") "")
5987 ((" :build-pathname \"cl-ledger\"") "")
5988 ((" :entry-point \"ledger::main\"") ""))
5989 #t)))))
5990 (synopsis "Common Lisp port of the Ledger accounting system")
5991 (description
5992 "CL-Ledger is a Common Lisp port of the Ledger double-entry accounting
5993 system.")
5994 (home-page "https://github.com/ledger/cl-ledger")
5995 (license license:bsd-3))))
5996
5997 (define-public cl-ledger
5998 (sbcl-package->cl-source-package sbcl-cl-ledger))
5999
6000 (define-public ecl-cl-ledger
6001 (sbcl-package->ecl-package sbcl-cl-ledger))
6002
6003 (define-public sbcl-bst
6004 (let ((commit "8545aed0d504df2829ad139566feeabe22305388")
6005 (revision "0"))
6006 (package
6007 (name "sbcl-bst")
6008 (version (git-version "2.0" revision commit))
6009 (source
6010 (origin
6011 (method git-fetch)
6012 (uri (git-reference
6013 (url "https://github.com/glv2/bst")
6014 (commit commit)))
6015 (file-name (git-file-name name version))
6016 (sha256
6017 (base32 "18ig7rvxcra69437g0i8sxyv7c5dg26jqnx1rc2f9pxmihdprgk8"))))
6018 (build-system asdf-build-system/sbcl)
6019 (native-inputs
6020 `(("alexandria" ,sbcl-alexandria)
6021 ("fiveam" ,sbcl-fiveam)))
6022 (synopsis "Binary search tree for Common Lisp")
6023 (description
6024 "BST is a Common Lisp library for working with binary search trees that
6025 can contain any kind of values.")
6026 (home-page "https://github.com/glv2/bst")
6027 (license license:gpl3))))
6028
6029 (define-public cl-bst
6030 (sbcl-package->cl-source-package sbcl-bst))
6031
6032 (define-public ecl-bst
6033 (sbcl-package->ecl-package sbcl-bst))
6034
6035 (define-public sbcl-cl-octet-streams
6036 (package
6037 (name "sbcl-cl-octet-streams")
6038 (version "1.0")
6039 (source
6040 (origin
6041 (method git-fetch)
6042 (uri (git-reference
6043 (url "https://github.com/glv2/cl-octet-streams")
6044 (commit (string-append "v" version))))
6045 (file-name (git-file-name name version))
6046 (sha256
6047 (base32
6048 "1d7mn6ydv0j2x4r7clpc9ijjwrnfpxmvhifv8n5j7jh7s744sf8d"))))
6049 (build-system asdf-build-system/sbcl)
6050 (native-inputs
6051 `(("fiveam" ,sbcl-fiveam)))
6052 (inputs
6053 `(("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
6054 (synopsis "In-memory octet streams for Common Lisp")
6055 (description
6056 "CL-octet-streams is a library implementing in-memory octet
6057 streams for Common Lisp. It was inspired by the trivial-octet-streams and
6058 cl-plumbing libraries.")
6059 (home-page "https://github.com/glv2/cl-octet-streams")
6060 (license license:gpl3+)))
6061
6062 (define-public cl-octet-streams
6063 (sbcl-package->cl-source-package sbcl-cl-octet-streams))
6064
6065 (define-public ecl-cl-octet-streams
6066 (sbcl-package->ecl-package sbcl-cl-octet-streams))
6067
6068 (define-public sbcl-lzlib
6069 (let ((commit "0de1db7129fef9a58a059d35a2fa2ecfc5b47b47")
6070 (revision "1"))
6071 (package
6072 (name "sbcl-lzlib")
6073 (version (git-version "1.0" revision commit))
6074 (source
6075 (origin
6076 (method git-fetch)
6077 (uri (git-reference
6078 (url "https://github.com/glv2/cl-lzlib")
6079 (commit commit)))
6080 (file-name (git-file-name name version))
6081 (sha256
6082 (base32
6083 "12ny7vj52fgnd8hb8fc8mry92vq4c1x72x2350191m4476j95clz"))))
6084 (build-system asdf-build-system/sbcl)
6085 (native-inputs
6086 `(("fiveam" ,sbcl-fiveam)))
6087 (inputs
6088 `(("cffi" ,sbcl-cffi)
6089 ("cl-octet-streams" ,sbcl-cl-octet-streams)
6090 ("lzlib" ,lzlib)))
6091 (arguments
6092 '(#:phases
6093 (modify-phases %standard-phases
6094 (add-after 'unpack 'fix-paths
6095 (lambda* (#:key inputs #:allow-other-keys)
6096 (substitute* "src/lzlib.lisp"
6097 (("liblz\\.so")
6098 (string-append (assoc-ref inputs "lzlib") "/lib/liblz.so")))
6099 #t)))))
6100 (synopsis "Common Lisp library for lzip (de)compression")
6101 (description
6102 "This Common Lisp library provides functions for lzip (LZMA)
6103 compression/decompression using bindings to the lzlib C library.")
6104 (home-page "https://github.com/glv2/cl-lzlib")
6105 (license license:gpl3+))))
6106
6107 (define-public cl-lzlib
6108 (sbcl-package->cl-source-package sbcl-lzlib))
6109
6110 (define-public ecl-lzlib
6111 (sbcl-package->ecl-package sbcl-lzlib))
6112
6113 (define-public sbcl-chanl
6114 (let ((commit "56e90a126c78b39bb621a01585e8d3b985238e8c")
6115 (revision "1"))
6116 (package
6117 (name "sbcl-chanl")
6118 (version (git-version "0.4.1" revision commit))
6119 (source
6120 (origin
6121 (method git-fetch)
6122 (uri (git-reference
6123 (url "https://github.com/zkat/chanl")
6124 (commit commit)))
6125 (file-name (git-file-name name version))
6126 (sha256
6127 (base32
6128 "0b1cf6c12qx5cy1fw2z42jgh566rp3l8nv5qf0qqc569s7bgmrh4"))))
6129 (build-system asdf-build-system/sbcl)
6130 (native-inputs
6131 `(("fiveam" ,sbcl-fiveam)))
6132 (inputs
6133 `(("bordeaux-threads" ,sbcl-bordeaux-threads)))
6134 (synopsis "Portable channel-based concurrency for Common Lisp")
6135 (description "Common Lisp library for channel-based concurrency. In
6136 a nutshell, you create various threads sequentially executing tasks you need
6137 done, and use channel objects to communicate and synchronize the state of these
6138 threads.")
6139 (home-page "https://github.com/zkat/chanl")
6140 (license (list license:expat license:bsd-3)))))
6141
6142 (define-public cl-chanl
6143 (sbcl-package->cl-source-package sbcl-chanl))
6144
6145 (define-public ecl-chanl
6146 (sbcl-package->ecl-package sbcl-chanl))
6147
6148 (define-public sbcl-cl-store
6149 (let ((commit "c787337a16ea8cf8a06227f35933a4ec774746b3")
6150 (revision "1"))
6151 (package
6152 (name "sbcl-cl-store")
6153 (version (git-version "0.8.11" revision commit))
6154 (source
6155 (origin
6156 (method git-fetch)
6157 (uri (git-reference
6158 (url "https://github.com/skypher/cl-store")
6159 (commit commit)))
6160 (file-name (git-file-name name version))
6161 (sha256
6162 (base32
6163 "194srkg8nrym19c6i7zbnkzshc1qhqa82m53qnkirz9fw928bqxr"))))
6164 (build-system asdf-build-system/sbcl)
6165 (native-inputs
6166 `(("rt" ,sbcl-rt)))
6167 (synopsis "Common Lisp library to serialize data")
6168 (description
6169 "CL-STORE is a portable serialization package which should give you the
6170 ability to store all Common Lisp data types into streams.")
6171 (home-page "https://www.common-lisp.net/project/cl-store/")
6172 (license license:expat))))
6173
6174 (define-public cl-store
6175 (sbcl-package->cl-source-package sbcl-cl-store))
6176
6177 (define-public ecl-cl-store
6178 (sbcl-package->ecl-package sbcl-cl-store))
6179
6180 (define-public sbcl-cl-gobject-introspection
6181 (let ((commit "7b703e2384945ea0ac39d9b766de434a08d81560")
6182 (revision "0"))
6183 (package
6184 (name "sbcl-cl-gobject-introspection")
6185 (version (git-version "0.3" revision commit))
6186 (home-page "https://github.com/andy128k/cl-gobject-introspection")
6187 (source
6188 (origin
6189 (method git-fetch)
6190 (uri (git-reference
6191 (url home-page)
6192 (commit commit)))
6193 (file-name (git-file-name name version))
6194 (sha256
6195 (base32
6196 "1zcqd2qj14f6b38vys8gr89s6cijsp9r8j43xa8lynilwva7bwyh"))))
6197 (build-system asdf-build-system/sbcl)
6198 (inputs
6199 `(("alexandria" ,sbcl-alexandria)
6200 ("cffi" ,sbcl-cffi)
6201 ("iterate" ,sbcl-iterate)
6202 ("trivial-garbage" ,sbcl-trivial-garbage)
6203 ("glib" ,glib)
6204 ("gobject-introspection" ,gobject-introspection)))
6205 (native-inputs
6206 `(("fiveam" ,sbcl-fiveam)))
6207 (arguments
6208 ;; TODO: Tests fail, see
6209 ;; https://github.com/andy128k/cl-gobject-introspection/issues/70.
6210 '(#:tests? #f
6211 #:phases
6212 (modify-phases %standard-phases
6213 (add-after (quote unpack) (quote fix-paths)
6214 (lambda* (#:key inputs #:allow-other-keys)
6215 (substitute* "src/init.lisp"
6216 (("libgobject-2\\.0\\.so")
6217 (string-append (assoc-ref inputs "glib") "/lib/libgobject-2.0.so"))
6218 (("libgirepository-1\\.0\\.so")
6219 (string-append (assoc-ref inputs "gobject-introspection")
6220 "/lib/libgirepository-1.0.so")))
6221 #t)))))
6222 (synopsis "Common Lisp bindings to GObject Introspection")
6223 (description
6224 "This library is a bridge between Common Lisp and GObject
6225 Introspection, which enables Common Lisp programs to access the full interface
6226 of C+GObject libraries without the need of writing dedicated bindings.")
6227 (license (list license:bsd-3
6228 ;; Tests are under a different license.
6229 license:llgpl)))))
6230
6231 (define-public cl-gobject-introspection
6232 (sbcl-package->cl-source-package sbcl-cl-gobject-introspection))
6233
6234 (define-public ecl-cl-gobject-introspection
6235 (sbcl-package->ecl-package sbcl-cl-gobject-introspection))
6236
6237 (define-public sbcl-string-case
6238 (let ((commit "718c761e33749e297cd2809c7ba3ade1985c49f7")
6239 (revision "0"))
6240 (package
6241 (name "sbcl-string-case")
6242 (version (git-version "0.0.2" revision commit))
6243 (home-page "https://github.com/pkhuong/string-case")
6244 (source
6245 (origin
6246 (method git-fetch)
6247 (uri (git-reference
6248 (url home-page)
6249 (commit commit)))
6250 (file-name (git-file-name name version))
6251 (sha256
6252 (base32
6253 "1n5i3yh0h5s636rcnwn7jwqy3rjflikra04lymimhpcshhjsk0md"))))
6254 (build-system asdf-build-system/sbcl)
6255 (synopsis "Efficient string= case in Common Lisp")
6256 (description
6257 "@code{string-case} is a Common Lisp macro that generates specialised decision
6258 trees to dispatch on string equality.")
6259 (license license:bsd-3))))
6260
6261 (define-public cl-string-case
6262 (sbcl-package->cl-source-package sbcl-string-case))
6263
6264 (define-public ecl-string-case
6265 (sbcl-package->ecl-package sbcl-string-case))
6266
6267 (define-public sbcl-global-vars
6268 (let ((commit "c749f32c9b606a1457daa47d59630708ac0c266e")
6269 (revision "0"))
6270 (package
6271 (name "sbcl-global-vars")
6272 (version (git-version "1.0.0" revision commit))
6273 (home-page "https://github.com/lmj/global-vars")
6274 (source
6275 (origin
6276 (method git-fetch)
6277 (uri (git-reference
6278 (url home-page)
6279 (commit commit)))
6280 (file-name (git-file-name name version))
6281 (sha256
6282 (base32
6283 "06m3xc8l3pgsapl8fvsi9wf6y46zs75cp9zn7zh6dc65v4s5wz3d"))))
6284 (build-system asdf-build-system/sbcl)
6285 (synopsis "Efficient global variables in Common Lisp")
6286 (description
6287 "In Common Lisp, a special variable that is never dynamically bound
6288 typically serves as a stand-in for a global variable. The @code{global-vars}
6289 library provides true global variables that are implemented by some compilers.
6290 An attempt to rebind a global variable properly results in a compiler error.
6291 That is, a global variable cannot be dynamically bound.
6292
6293 Global variables therefore allow us to communicate an intended usage that
6294 differs from special variables. Global variables are also more efficient than
6295 special variables, especially in the presence of threads.")
6296 (license license:expat))))
6297
6298 (define-public cl-global-vars
6299 (sbcl-package->cl-source-package sbcl-global-vars))
6300
6301 (define-public ecl-global-vars
6302 (sbcl-package->ecl-package sbcl-global-vars))
6303
6304 (define-public sbcl-trivial-file-size
6305 (let ((commit "1c1d672a01a446ba0391dbb4ffc40be3b0476f23")
6306 (revision "0"))
6307 (package
6308 (name "sbcl-trivial-file-size")
6309 (version (git-version "0.0.0" revision commit))
6310 (home-page "https://github.com/ruricolist/trivial-file-size")
6311 (source
6312 (origin
6313 (method git-fetch)
6314 (uri (git-reference
6315 (url home-page)
6316 (commit commit)))
6317 (file-name (git-file-name name version))
6318 (sha256
6319 (base32
6320 "17pp86c9zs4y7i1sh7q9gbfw9iqv6655k7fz8qbj9ly1ypgxp4qs"))))
6321 (build-system asdf-build-system/sbcl)
6322 (native-inputs
6323 `(("fiveam" ,sbcl-fiveam)))
6324 (synopsis "Size of a file in bytes in Common Lisp")
6325 (description
6326 "The canonical way to determine the size of a file in bytes, using Common Lisp,
6327 is to open the file with an element type of (unsigned-byte 8) and then
6328 calculate the length of the stream. This is less than ideal. In most cases
6329 it is better to get the size of the file from its metadata, using a system
6330 call.
6331
6332 This library exports a single function, file-size-in-octets. It returns the
6333 size of a file in bytes, using system calls when possible.")
6334 (license license:expat))))
6335
6336 (define-public cl-trivial-file-size
6337 (sbcl-package->cl-source-package sbcl-trivial-file-size))
6338
6339 (define-public ecl-trivial-file-size
6340 (sbcl-package->ecl-package sbcl-trivial-file-size))
6341
6342 (define-public sbcl-trivial-macroexpand-all
6343 (let ((commit "933270ac7107477de1bc92c1fd641fe646a7a8a9")
6344 (revision "0"))
6345 (package
6346 (name "sbcl-trivial-macroexpand-all")
6347 (version (git-version "0.0.0" revision commit))
6348 (home-page "https://github.com/cbaggers/trivial-macroexpand-all")
6349 (source
6350 (origin
6351 (method git-fetch)
6352 (uri (git-reference
6353 (url home-page)
6354 (commit commit)))
6355 (file-name (git-file-name name version))
6356 (sha256
6357 (base32
6358 "191hnn4b5j4i3crydmlzbm231kj0h7l8zj6mzj69r1npbzkas4bd"))))
6359 (build-system asdf-build-system/sbcl)
6360 (native-inputs
6361 `(("fiveam" ,sbcl-fiveam)))
6362 (synopsis "Portable macroexpand-all for Common Lisp")
6363 (description
6364 "This library provides a macroexpand-all function that calls the
6365 implementation specific equivalent.")
6366 (license license:unlicense))))
6367
6368 (define-public cl-trivial-macroexpand-all
6369 (sbcl-package->cl-source-package sbcl-trivial-macroexpand-all))
6370
6371 (define-public ecl-trivial-macroexpand-all
6372 (sbcl-package->ecl-package sbcl-trivial-macroexpand-all))
6373
6374 (define-public sbcl-serapeum
6375 (let ((commit "c5e352a9f04a84a93742193c01734f4fb31d9f82")
6376 (revision "3"))
6377 (package
6378 (name "sbcl-serapeum")
6379 (version (git-version "0.0.0" revision commit))
6380 (home-page "https://github.com/ruricolist/serapeum")
6381 (source
6382 (origin
6383 (method git-fetch)
6384 (uri (git-reference
6385 (url home-page)
6386 (commit commit)))
6387 (file-name (git-file-name name version))
6388 (sha256
6389 (base32
6390 "16767pxl766c15jznr4srcbp7cnxf8w9lkyaqpp5w5crqymw84nw"))))
6391 (build-system asdf-build-system/sbcl)
6392 (inputs
6393 `(("alexandria" ,sbcl-alexandria)
6394 ("trivia" ,sbcl-trivia)
6395 ("split-sequence" ,sbcl-split-sequence)
6396 ("string-case" ,sbcl-string-case)
6397 ("parse-number" ,sbcl-parse-number)
6398 ("trivial-garbage" ,sbcl-trivial-garbage)
6399 ("bordeaux-threads" ,sbcl-bordeaux-threads)
6400 ("named-readtables" ,sbcl-named-readtables)
6401 ("fare-quasiquote" ,sbcl-fare-quasiquote)
6402 ("parse-declarations-1.0" ,sbcl-parse-declarations)
6403 ("global-vars" ,sbcl-global-vars)
6404 ("trivial-file-size" ,sbcl-trivial-file-size)
6405 ("trivial-macroexpand-all" ,sbcl-trivial-macroexpand-all)))
6406 (native-inputs
6407 `(("fiveam" ,sbcl-fiveam)
6408 ("local-time" ,sbcl-local-time)))
6409 (arguments
6410 '(#:phases
6411 (modify-phases %standard-phases
6412 (add-after 'unpack 'disable-failing-tests
6413 (lambda* (#:key inputs #:allow-other-keys)
6414 (substitute* "serapeum.asd"
6415 ;; Guix does not have Quicklisp, and probably never will.
6416 (("\\(:file \"quicklisp\"\\)") ""))
6417 #t)))))
6418 (synopsis "Common Lisp utility library beyond Alexandria")
6419 (description
6420 "Serapeum is a conservative library of Common Lisp utilities. It is a
6421 supplement, not a competitor, to Alexandria.")
6422 (license license:expat))))
6423
6424 (define-public cl-serapeum
6425 (sbcl-package->cl-source-package sbcl-serapeum))
6426
6427 (define-public ecl-serapeum
6428 (sbcl-package->ecl-package sbcl-serapeum))
6429
6430 (define-public sbcl-arrows
6431 (let ((commit "df7cf0067e0132d9697ac8b1a4f1b9c88d4f5382")
6432 (revision "0"))
6433 (package
6434 (name "sbcl-arrows")
6435 (version (git-version "0.2.0" revision commit))
6436 (source
6437 (origin
6438 (method git-fetch)
6439 (uri (git-reference
6440 (url "https://gitlab.com/Harleqin/arrows.git")
6441 (commit commit)))
6442 (file-name (git-file-name name version))
6443 (sha256
6444 (base32
6445 "042k9vkssrqx9nhp14wdzm942zgdxvp35mba0p2syz98i75im2yy"))))
6446 (build-system asdf-build-system/sbcl)
6447 (native-inputs
6448 `(("hu.dwim.stefil" ,sbcl-hu.dwim.stefil)))
6449 (synopsis "Clojure-like arrow macros for Common Lisp")
6450 (description
6451 "This library implements the @code{->} and @code{->>} macros from
6452 Clojure, as well as several expansions on the idea.")
6453 (home-page "https://gitlab.com/Harleqin/arrows")
6454 (license license:public-domain))))
6455
6456 (define-public cl-arrows
6457 (sbcl-package->cl-source-package sbcl-arrows))
6458
6459 (define-public ecl-arrows
6460 (sbcl-package->ecl-package sbcl-arrows))
6461
6462 (define-public sbcl-simple-parallel-tasks
6463 (let ((commit "ce7b60f788d8f68dfb69b24aac54c0e3b63379a6")
6464 (revision "1"))
6465 (package
6466 (name "sbcl-simple-parallel-tasks")
6467 (version (git-version "1.0" revision commit))
6468 (source
6469 (origin
6470 (method git-fetch)
6471 (uri (git-reference
6472 (url "https://github.com/glv2/simple-parallel-tasks")
6473 (commit commit)))
6474 (file-name (git-file-name name version))
6475 (sha256
6476 (base32 "0gvbpyff4siifp3cp86cpr9ksmakn66fx21f3h0hpn647zl07nj7"))))
6477 (build-system asdf-build-system/sbcl)
6478 (native-inputs
6479 `(("fiveam" ,sbcl-fiveam)))
6480 (inputs
6481 `(("chanl" ,sbcl-chanl)))
6482 (synopsis "Common Lisp library to evaluate some forms in parallel")
6483 (description "This is a simple Common Lisp library to evaluate some
6484 forms in parallel.")
6485 (home-page "https://github.com/glv2/simple-parallel-tasks")
6486 (license license:gpl3))))
6487
6488 (define-public cl-simple-parallel-tasks
6489 (sbcl-package->cl-source-package sbcl-simple-parallel-tasks))
6490
6491 (define-public ecl-simple-parallel-tasks
6492 (sbcl-package->ecl-package sbcl-simple-parallel-tasks))
6493
6494 (define-public sbcl-cl-heap
6495 (package
6496 (name "sbcl-cl-heap")
6497 (version "0.1.6")
6498 (source
6499 (origin
6500 (method url-fetch)
6501 (uri (string-append "https://common-lisp.net/project/cl-heap/releases/"
6502 "cl-heap_" version ".tar.gz"))
6503 (sha256
6504 (base32
6505 "163hb07p2nxz126rpq3cj5dyala24n0by5i5786n2qcr1w0bak4i"))))
6506 (build-system asdf-build-system/sbcl)
6507 (native-inputs
6508 `(("xlunit" ,sbcl-xlunit)))
6509 (arguments
6510 `(#:test-asd-file "cl-heap-tests.asd"))
6511 (synopsis "Heap and priority queue data structures for Common Lisp")
6512 (description
6513 "CL-HEAP provides various implementations of heap data structures (a
6514 binary heap and a Fibonacci heap) as well as an efficient priority queue.")
6515 (home-page "https://common-lisp.net/project/cl-heap/")
6516 (license license:gpl3+)))
6517
6518 (define-public cl-heap
6519 (sbcl-package->cl-source-package sbcl-cl-heap))
6520
6521 (define-public ecl-cl-heap
6522 (sbcl-package->ecl-package sbcl-cl-heap))
6523
6524 (define-public sbcl-curry-compose-reader-macros
6525 (let ((commit "beaa92dedf392726c042184bfd6149fa8d9e6ac2")
6526 (revision "0"))
6527 (package
6528 (name "sbcl-curry-compose-reader-macros")
6529 (version (git-version "1.0.0" revision commit))
6530 (source
6531 (origin
6532 (method git-fetch)
6533 (uri
6534 (git-reference
6535 (url "https://github.com/eschulte/curry-compose-reader-macros")
6536 (commit commit)))
6537 (file-name (git-file-name name version))
6538 (sha256
6539 (base32
6540 "0rv9bl8xrad5wfcg5zs1dazvnpmvqz6297lbn8bywsrcfnlf7h98"))))
6541 (build-system asdf-build-system/sbcl)
6542 (inputs
6543 `(("alexandria" ,sbcl-alexandria)
6544 ("named-readtables" ,sbcl-named-readtables)))
6545 (synopsis "Reader macros for partial application and composition")
6546 (description
6547 "This Common Lisp library provides reader macros for concise expression
6548 of function partial application and composition.")
6549 (home-page "https://eschulte.github.io/curry-compose-reader-macros/")
6550 (license license:public-domain))))
6551
6552 (define-public cl-curry-compose-reader-macros
6553 (sbcl-package->cl-source-package sbcl-curry-compose-reader-macros))
6554
6555 (define-public ecl-curry-compose-reader-macros
6556 (sbcl-package->ecl-package sbcl-curry-compose-reader-macros))
6557
6558 (define-public sbcl-yason
6559 (package
6560 (name "sbcl-yason")
6561 (version "0.7.7")
6562 (source
6563 (origin
6564 (method git-fetch)
6565 (uri (git-reference
6566 (url "https://github.com/phmarek/yason")
6567 (commit (string-append "v" version))))
6568 (file-name (git-file-name name version))
6569 (sha256
6570 (base32
6571 "0479rbjgbj80jpk5bby18inlv1kfp771a82rlcq5psrz65qqa9bj"))))
6572 (build-system asdf-build-system/sbcl)
6573 (inputs
6574 `(("alexandria" ,sbcl-alexandria)
6575 ("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
6576 (synopsis "Common Lisp JSON parser/encoder")
6577 (description
6578 "YASON is a Common Lisp library for encoding and decoding data in the
6579 JSON interchange format.")
6580 (home-page "https://github.com/phmarek/yason")
6581 (license license:bsd-3)))
6582
6583 (define-public cl-yason
6584 (sbcl-package->cl-source-package sbcl-yason))
6585
6586 (define-public ecl-yason
6587 (sbcl-package->ecl-package sbcl-yason))
6588
6589 (define-public sbcl-stefil
6590 (let ((commit "0398548ec95dceb50fc2c2c03e5fb0ce49b86c7a")
6591 (revision "0"))
6592 (package
6593 (name "sbcl-stefil")
6594 (version (git-version "0.1" revision commit))
6595 (source
6596 (origin
6597 (method git-fetch)
6598 (uri (git-reference
6599 (url "https://gitlab.common-lisp.net/stefil/stefil.git")
6600 (commit commit)))
6601 (file-name (git-file-name name version))
6602 (sha256
6603 (base32
6604 "0bqz64q2szzhf91zyqyssmvrz7da6442rs01808pf3wrdq28bclh"))))
6605 (build-system asdf-build-system/sbcl)
6606 (inputs
6607 `(("alexandria" ,sbcl-alexandria)
6608 ("iterate" ,sbcl-iterate)
6609 ("metabang-bind" ,sbcl-metabang-bind)
6610 ("swank" ,sbcl-slime-swank)))
6611 (arguments
6612 '(#:phases
6613 (modify-phases %standard-phases
6614 (add-after 'unpack 'drop-unnecessary-dependency
6615 (lambda _
6616 (substitute* "package.lisp"
6617 ((":stefil-system") ""))
6618 #t)))))
6619 (home-page "https://common-lisp.net/project/stefil/index-old.shtml")
6620 (synopsis "Simple test framework")
6621 (description
6622 "Stefil is a simple test framework for Common Lisp, with a focus on
6623 interactive development.")
6624 (license license:public-domain))))
6625
6626 (define-public cl-stefil
6627 (sbcl-package->cl-source-package sbcl-stefil))
6628
6629 (define-public ecl-stefil
6630 (sbcl-package->ecl-package sbcl-stefil))
6631
6632 (define-public sbcl-graph
6633 (let ((commit "78bf9ec930d8eae4f0861b5be76765fb1e45e24f")
6634 (revision "0"))
6635 (package
6636 (name "sbcl-graph")
6637 (version (git-version "0.0.0" revision commit))
6638 (source
6639 (origin
6640 (method git-fetch)
6641 (uri
6642 (git-reference
6643 (url "https://github.com/eschulte/graph")
6644 (commit commit)))
6645 (file-name (git-file-name name version))
6646 (sha256
6647 (base32
6648 "1qpij4xh8bqwc2myahpilcbh916v7vg0acz2fij14d3y0jm02h0g"))))
6649 (build-system asdf-build-system/sbcl)
6650 (native-inputs
6651 `(("stefil" ,sbcl-stefil)))
6652 (inputs
6653 `(("alexandria" ,sbcl-alexandria)
6654 ("cl-heap" ,sbcl-cl-heap)
6655 ("cl-ppcre" ,sbcl-cl-ppcre)
6656 ("curry-compose-reader-macros" ,sbcl-curry-compose-reader-macros)
6657 ("metabang-bind" ,sbcl-metabang-bind)
6658 ("named-readtables" ,sbcl-named-readtables)
6659 ("yason" ,sbcl-yason)))
6660 (arguments
6661 '(#:asd-systems '("graph"
6662 "graph/dot"
6663 "graph/json")))
6664 (synopsis "Graph data structure and algorithms for Common Lisp")
6665 (description
6666 "The GRAPH Common Lisp library provides a data structures to represent
6667 graphs, as well as some graph manipulation and analysis algorithms (shortest
6668 path, maximum flow, minimum spanning tree, etc.).")
6669 (home-page "https://eschulte.github.io/graph/")
6670 (license license:gpl3+))))
6671
6672 (define-public cl-graph
6673 (sbcl-package->cl-source-package sbcl-graph))
6674
6675 (define-public ecl-graph
6676 (sbcl-package->ecl-package sbcl-graph))
6677
6678 (define-public sbcl-trivial-indent
6679 (let ((commit "2d016941751647c6cc5bd471751c2cf68861c94a")
6680 (revision "0"))
6681 (package
6682 (name "sbcl-trivial-indent")
6683 (version (git-version "1.0.0" revision commit))
6684 (source
6685 (origin
6686 (method git-fetch)
6687 (uri
6688 (git-reference
6689 (url "https://github.com/Shinmera/trivial-indent")
6690 (commit commit)))
6691 (file-name (git-file-name name version))
6692 (sha256
6693 (base32
6694 "1sj90nqz17w4jq0ixz00gb9g5g6d2s7l8r17zdby27gxxh51w266"))))
6695 (build-system asdf-build-system/sbcl)
6696 (synopsis "Simple Common Lisp library to allow indentation hints for SWANK")
6697 (description
6698 "This library allows you to define custom indentation hints for your
6699 macros if the one recognised by SLIME automatically produces unwanted
6700 results.")
6701 (home-page "https://shinmera.github.io/trivial-indent/")
6702 (license license:zlib))))
6703
6704 (define-public cl-trivial-indent
6705 (sbcl-package->cl-source-package sbcl-trivial-indent))
6706
6707 (define-public ecl-trivial-indent
6708 (sbcl-package->ecl-package sbcl-trivial-indent))
6709
6710 (define-public sbcl-documentation-utils
6711 (let ((commit "98630dd5f7e36ae057fa09da3523f42ccb5d1f55")
6712 (revision "0"))
6713 (package
6714 (name "sbcl-documentation-utils")
6715 (version (git-version "1.2.0" revision commit))
6716 (source
6717 (origin
6718 (method git-fetch)
6719 (uri
6720 (git-reference
6721 (url "https://github.com/Shinmera/documentation-utils")
6722 (commit commit)))
6723 (file-name (git-file-name name version))
6724 (sha256
6725 (base32
6726 "098qhkqskmmrh4wix34mawf7p5c87yql28r51r75yjxj577k5idq"))))
6727 (build-system asdf-build-system/sbcl)
6728 (inputs
6729 `(("trivial-indent" ,sbcl-trivial-indent)))
6730 (synopsis "Few simple tools to document Common Lisp libraries")
6731 (description
6732 "This is a small library to help you with managing the Common Lisp
6733 docstrings for your library.")
6734 (home-page "https://shinmera.github.io/documentation-utils/")
6735 (license license:zlib))))
6736
6737 (define-public cl-documentation-utils
6738 (sbcl-package->cl-source-package sbcl-documentation-utils))
6739
6740 (define-public ecl-documentation-utils
6741 (sbcl-package->ecl-package sbcl-documentation-utils))
6742
6743 (define-public sbcl-documentation-utils-extensions
6744 (let ((commit "f67f8a05d583174662a594b79356b201c1d9d750"))
6745 (package
6746 (name "sbcl-documentation-utils-extensions")
6747 (version (git-version "0.0.0" "1" commit))
6748 (source
6749 (origin
6750 (method git-fetch)
6751 (uri
6752 (git-reference
6753 (url "https://github.com/sirherrbatka/documentation-utils-extensions/")
6754 (commit commit)))
6755 (file-name (git-file-name name version))
6756 (sha256
6757 (base32
6758 "0pn45c9rbxlnhn5nvhqz6kyv0nlirwxpg4j27niwdq80yxzsn51f"))))
6759 (build-system asdf-build-system/sbcl)
6760 (inputs
6761 `(("documentation-utils" ,sbcl-documentation-utils)))
6762 (home-page "https://github.com/sirherrbatka/documentation-utils-extensions")
6763 (synopsis "Set of extensions for documentation-utils")
6764 (description
6765 "Use @code{rich-formatter} to format documentation with sections @code{:syntax},
6766 @code{:arguments}, @code{:examples}, @code{:description}, @code{:returns},
6767 @code{:side-effects}, @code{:thread-safety}, @code{:affected-by},
6768 @code{:see-also} and @code{:notes}. Gather unformatted input by using
6769 @code{rich-aggregating-formatter} and @code{*DOCUMENTATION*} variable. Find
6770 gathered documentation with find-documentation function. Execute code stored
6771 in documentation with @code{execute-documentation}. See the examples in the
6772 @code{src/documentation.lisp} file. See the @code{documentation-utils} system
6773 for more information.")
6774 (license license:expat))))
6775
6776 (define-public cl-documentation-utils-extensions
6777 (sbcl-package->cl-source-package sbcl-documentation-utils-extensions))
6778
6779 (define-public ecl-documentation-utils-extensions
6780 (sbcl-package->ecl-package sbcl-documentation-utils-extensions))
6781
6782 (define-public sbcl-form-fiddle
6783 (let ((commit "e0c23599dbb8cff3e83e012f3d86d0764188ad18")
6784 (revision "0"))
6785 (package
6786 (name "sbcl-form-fiddle")
6787 (version (git-version "1.1.0" revision commit))
6788 (source
6789 (origin
6790 (method git-fetch)
6791 (uri
6792 (git-reference
6793 (url "https://github.com/Shinmera/form-fiddle")
6794 (commit commit)))
6795 (file-name (git-file-name name version))
6796 (sha256
6797 (base32
6798 "041iznc9mpfyrl0sv5893ys9pbb2pvbn9g3clarqi7gsfj483jln"))))
6799 (build-system asdf-build-system/sbcl)
6800 (inputs
6801 `(("documentation-utils" ,sbcl-documentation-utils)))
6802 (synopsis "Utilities to destructure Common Lisp lambda forms")
6803 (description
6804 "Often times we need to destructure a form definition in a Common Lisp
6805 macro. This library provides a set of simple utilities to help with that.")
6806 (home-page "https://shinmera.github.io/form-fiddle/")
6807 (license license:zlib))))
6808
6809 (define-public cl-form-fiddle
6810 (sbcl-package->cl-source-package sbcl-form-fiddle))
6811
6812 (define-public ecl-form-fiddle
6813 (sbcl-package->ecl-package sbcl-form-fiddle))
6814
6815 (define-public sbcl-parachute
6816 (let ((commit "ca04dd8e43010a6dfffa26dbe1d62af86008d666")
6817 (revision "0"))
6818 (package
6819 (name "sbcl-parachute")
6820 (version (git-version "1.1.1" revision commit))
6821 (source
6822 (origin
6823 (method git-fetch)
6824 (uri
6825 (git-reference
6826 (url "https://github.com/Shinmera/parachute")
6827 (commit commit)))
6828 (file-name (git-file-name name version))
6829 (sha256
6830 (base32
6831 "1mvsm3r0r6a2bg75nw0q7n9vlby3ch45qjl7hnb5k1z2n5x5lh60"))))
6832 (build-system asdf-build-system/sbcl)
6833 (inputs
6834 `(("documentation-utils" ,sbcl-documentation-utils)
6835 ("form-fiddle" ,sbcl-form-fiddle)))
6836 (synopsis "Extensible and cross-compatible testing framework for Common Lisp")
6837 (description
6838 "Parachute is a simple-to-use and extensible testing framework.
6839 In Parachute, things are organised as a bunch of named tests within a package.
6840 Each test can contain a bunch of test forms that make up its body.")
6841 (home-page "https://shinmera.github.io/parachute/")
6842 (license license:zlib))))
6843
6844 (define-public cl-parachute
6845 (sbcl-package->cl-source-package sbcl-parachute))
6846
6847 (define-public ecl-parachute
6848 (sbcl-package->ecl-package sbcl-parachute))
6849
6850 (define-public sbcl-array-utils
6851 (let ((commit "f90eb9070d0b2205af51126a35033574725e5c56")
6852 (revision "0"))
6853 (package
6854 (name "sbcl-array-utils")
6855 (version (git-version "1.1.1" revision commit))
6856 (source
6857 (origin
6858 (method git-fetch)
6859 (uri
6860 (git-reference
6861 (url "https://github.com/Shinmera/array-utils")
6862 (commit commit)))
6863 (file-name (git-file-name name version))
6864 (sha256
6865 (base32
6866 "0zhwfbpr53vs1ii4sx75dz2k9yhh1xpwdqqpg8nmfndxkmhpbi3x"))))
6867 (build-system asdf-build-system/sbcl)
6868 (native-inputs
6869 `(("parachute" ,sbcl-parachute)))
6870 (inputs
6871 `(("documentation-utils" ,sbcl-documentation-utils)))
6872 (synopsis "Tiny collection of array and vector utilities for Common Lisp")
6873 (description
6874 "A miniature toolkit that contains some useful shifting/popping/pushing
6875 functions for arrays and vectors. Originally from Plump.")
6876 (home-page "https://shinmera.github.io/array-utils/")
6877 (license license:zlib))))
6878
6879 (define-public cl-array-utils
6880 (sbcl-package->cl-source-package sbcl-array-utils))
6881
6882 (define-public ecl-array-utils
6883 (sbcl-package->ecl-package sbcl-array-utils))
6884
6885 (define-public sbcl-plump
6886 (let ((commit "34f890fe46efdebe7bb70d218f1937e98f632bf9")
6887 (revision "1"))
6888 (package
6889 (name "sbcl-plump")
6890 (version (git-version "2.0.0" revision commit))
6891 (source
6892 (origin
6893 (method git-fetch)
6894 (uri
6895 (git-reference
6896 (url "https://github.com/Shinmera/plump")
6897 (commit commit)))
6898 (file-name (git-file-name name version))
6899 (sha256
6900 (base32
6901 "0a0x8wn6vv1ylxcwck12k18gy0a366kdm6ddxxk7yynl4mwnqgkh"))))
6902 (build-system asdf-build-system/sbcl)
6903 (inputs
6904 `(("array-utils" ,sbcl-array-utils)
6905 ("documentation-utils" ,sbcl-documentation-utils)))
6906 (synopsis "Lenient XML / XHTML / HTML parser for Common Lisp")
6907 (description
6908 "Plump is a parser for HTML/XML-like documents, focusing on being
6909 lenient towards invalid markup. It can handle things like invalid attributes,
6910 bad closing tag order, unencoded entities, inexistent tag types, self-closing
6911 tags and so on. It parses documents to a class representation and offers a
6912 small set of DOM functions to manipulate it. It can be extended to parse to
6913 your own classes.")
6914 (home-page "https://shinmera.github.io/plump/")
6915 (license license:zlib))))
6916
6917 (define-public cl-plump
6918 (sbcl-package->cl-source-package sbcl-plump))
6919
6920 (define-public ecl-plump
6921 (sbcl-package->ecl-package sbcl-plump))
6922
6923 ;;; Split the antik package in two to work around the circular dependency
6924 ;;; between antik/antik and antik/gsll.
6925 (define-public sbcl-antik-base
6926 (let ((commit "e4711a69b3d6bf37b5727af05c3cfd03e8428ba3")
6927 (revision "1"))
6928 (package
6929 (name "sbcl-antik-base")
6930 (version (git-version "0.0.0" revision commit))
6931 (source
6932 (origin
6933 (method git-fetch)
6934 (uri (git-reference
6935 (url "https://gitlab.common-lisp.net/antik/antik.git")
6936 (commit commit)))
6937 (file-name (git-file-name name version))
6938 (sha256
6939 (base32
6940 "047ga2c38par2xbgg4qx6hwv06qhf1c1f67as8xvir6s80lip1km"))))
6941 (build-system asdf-build-system/sbcl)
6942 (inputs
6943 `(("alexandria" ,sbcl-alexandria)
6944 ("cffi" ,sbcl-cffi)
6945 ("cl-ppcre" ,sbcl-cl-ppcre)
6946 ("drakma" ,sbcl-drakma)
6947 ("fare-utils" ,sbcl-fare-utils)
6948 ("iterate" ,sbcl-iterate)
6949 ("metabang-bind" ,sbcl-metabang-bind)
6950 ("named-readtables" ,sbcl-named-readtables)
6951 ("split-sequence" ,sbcl-split-sequence)
6952 ("static-vectors" ,sbcl-static-vectors)
6953 ("trivial-garbage" ,sbcl-trivial-garbage)
6954 ("trivial-utf-8" ,sbcl-trivial-utf-8)))
6955 (native-inputs
6956 `(("lisp-unit" ,sbcl-lisp-unit)))
6957 (arguments
6958 '(#:asd-systems '("antik-base"
6959 "foreign-array")
6960 #:phases
6961 (modify-phases %standard-phases
6962 (add-after 'unpack 'fix-build
6963 (lambda _
6964 (for-each delete-file
6965 '("antik.asd"
6966 "physical-dimension.asd"
6967 "science-data.asd"))
6968 #t)))))
6969 (synopsis "Scientific and engineering computation in Common Lisp")
6970 (description
6971 "Antik provides a foundation for scientific and engineering
6972 computation in Common Lisp. It is designed not only to facilitate
6973 numerical computations, but to permit the use of numerical computation
6974 libraries and the interchange of data and procedures, whether
6975 foreign (non-Lisp) or Lisp libraries. It is named after the
6976 Antikythera mechanism, one of the oldest examples of a scientific
6977 computer known.")
6978 (home-page "https://common-lisp.net/project/antik/")
6979 (license license:gpl3))))
6980
6981 (define-public cl-antik-base
6982 (sbcl-package->cl-source-package sbcl-antik-base))
6983
6984 (define-public ecl-antik-base
6985 (let ((pkg (sbcl-package->ecl-package sbcl-antik-base)))
6986 (package
6987 (inherit pkg)
6988 (arguments
6989 (substitute-keyword-arguments (package-arguments pkg)
6990 ((#:phases phases)
6991 `(modify-phases ,phases
6992 (add-after 'unpack 'fix-readtable
6993 (lambda _
6994 (substitute* "input-output/readtable.lisp"
6995 (("#-ccl")
6996 "#-(or ccl ecl)"))
6997 #t)))))))))
6998
6999 (define-public sbcl-gsll
7000 (let ((commit "1a8ada22f9cf5ed7372d352b2317f4ccdb6ab308")
7001 (revision "1"))
7002 (package
7003 (name "sbcl-gsll")
7004 (version (git-version "0.0.0" revision commit))
7005 (source
7006 (origin
7007 (method git-fetch)
7008 (uri (git-reference
7009 (url "https://gitlab.common-lisp.net/antik/gsll.git")
7010 (commit commit)))
7011 (file-name (git-file-name name version))
7012 (sha256
7013 (base32
7014 "0z5nypfk26hxihb08p085644afawicrgb4xvadh3lmrn46qbjfn4"))))
7015 (build-system asdf-build-system/sbcl)
7016 (native-inputs
7017 `(("lisp-unit" ,sbcl-lisp-unit)))
7018 (inputs
7019 `(("alexandria" ,sbcl-alexandria)
7020 ("antik-base" ,sbcl-antik-base)
7021 ("cffi" ,sbcl-cffi)
7022 ("gsl" ,gsl)
7023 ("metabang-bind" ,sbcl-metabang-bind)
7024 ("trivial-features" ,sbcl-trivial-features)
7025 ("trivial-garbage" ,sbcl-trivial-garbage)))
7026 (arguments
7027 `(#:tests? #f
7028 #:phases
7029 (modify-phases %standard-phases
7030 (add-after 'unpack 'fix-cffi-paths
7031 (lambda* (#:key inputs #:allow-other-keys)
7032 (substitute* "gsll.asd"
7033 ((":depends-on \\(#:foreign-array")
7034 ":depends-on (#:foreign-array #:cffi-libffi"))
7035 (substitute* "init/init.lisp"
7036 (("libgslcblas.so" all)
7037 (string-append
7038 (assoc-ref inputs "gsl") "/lib/" all)))
7039 (substitute* "init/init.lisp"
7040 (("libgsl.so" all)
7041 (string-append
7042 (assoc-ref inputs "gsl") "/lib/" all))))))))
7043 (synopsis "GNU Scientific Library for Lisp")
7044 (description
7045 "The GNU Scientific Library for Lisp (GSLL) allows the use of the
7046 GNU Scientific Library (GSL) from Common Lisp. This library provides a
7047 full range of common mathematical operations useful to scientific and
7048 engineering applications. The design of the GSLL interface is such
7049 that access to most of the GSL library is possible in a Lisp-natural
7050 way; the intent is that the user not be hampered by the restrictions
7051 of the C language in which GSL has been written. GSLL thus provides
7052 interactive use of GSL for getting quick answers, even for someone not
7053 intending to program in Lisp.")
7054 (home-page "https://common-lisp.net/project/gsll/")
7055 (license license:gpl3))))
7056
7057 (define-public cl-gsll
7058 (sbcl-package->cl-source-package sbcl-gsll))
7059
7060 (define-public ecl-gsll
7061 (sbcl-package->ecl-package sbcl-gsll))
7062
7063 (define-public sbcl-antik
7064 (package
7065 (inherit sbcl-antik-base)
7066 (name "sbcl-antik")
7067 (inputs
7068 `(("antik-base" ,sbcl-antik-base)
7069 ("gsll" ,sbcl-gsll)))
7070 (arguments
7071 '(#:asd-systems '("antik"
7072 "science-data")
7073 #:phases
7074 (modify-phases %standard-phases
7075 (add-after 'unpack 'fix-build
7076 (lambda _
7077 (for-each delete-file
7078 '("antik-base.asd"
7079 "foreign-array.asd"))
7080 #t)))))))
7081
7082 (define-public cl-antik
7083 (sbcl-package->cl-source-package sbcl-antik))
7084
7085 (define-public sbcl-cl-interpol
7086 (let ((commit "1fd288d861db85bc4677cff3cdd6af75fda1afb4")
7087 (revision "1"))
7088 (package
7089 (name "sbcl-cl-interpol")
7090 (version (git-version "0.2.6" revision commit))
7091 (source
7092 (origin
7093 (method git-fetch)
7094 (uri (git-reference
7095 (url "https://github.com/edicl/cl-interpol")
7096 (commit commit)))
7097 (file-name (git-file-name name version))
7098 (sha256
7099 (base32
7100 "1hnikak52hmcq1r5f616m6qq1108qnkw80pja950nv1fq5p0ppjn"))))
7101 (build-system asdf-build-system/sbcl)
7102 (inputs
7103 `(("cl-unicode" ,sbcl-cl-unicode)
7104 ("named-readtables" ,sbcl-named-readtables)))
7105 (native-inputs
7106 `(("flexi-streams" ,sbcl-flexi-streams)))
7107 (synopsis "String interpolation for Common Lisp")
7108 (description
7109 "CL-INTERPOL is a library for Common Lisp which modifies the
7110 reader so that you can have interpolation within strings similar to
7111 Perl or Unix Shell scripts. It also provides various ways to insert
7112 arbitrary characters into literal strings even if your editor/IDE
7113 doesn't support them.")
7114 (home-page "https://edicl.github.io/cl-interpol/")
7115 (license license:bsd-3))))
7116
7117 (define-public cl-interpol
7118 (sbcl-package->cl-source-package sbcl-cl-interpol))
7119
7120 (define-public ecl-cl-interpol
7121 (sbcl-package->ecl-package sbcl-cl-interpol))
7122
7123 (define-public sbcl-symbol-munger
7124 (let ((commit "97598d4c3c53fd5da72ab78908fbd5d8c7a13416")
7125 (revision "1"))
7126 (package
7127 (name "sbcl-symbol-munger")
7128 (version (git-version "0.0.1" revision commit))
7129 (source
7130 (origin
7131 (method git-fetch)
7132 (uri (git-reference
7133 (url "https://github.com/AccelerationNet/symbol-munger")
7134 (commit commit)))
7135 (file-name (git-file-name name version))
7136 (sha256
7137 (base32
7138 "0y8jywjy0ldyhp7bxf16fdvdd2qgqnd7nlhlqfpfnzxcqk4xy1km"))))
7139 (build-system asdf-build-system/sbcl)
7140 (inputs
7141 `(("alexandria" ,sbcl-alexandria)
7142 ("iterate" ,sbcl-iterate)))
7143 (arguments
7144 ;; There is a cyclical dependency between symbol-munger and lisp-unit2.
7145 ;; See https://github.com/AccelerationNet/symbol-munger/issues/4
7146 '(#:tests? #f))
7147 (synopsis
7148 "Capitalization and spacing conversion functions for Common Lisp")
7149 (description
7150 "This is a Common Lisp library to change the capitalization and spacing
7151 of a string or a symbol. It can convert to and from Lisp, english, underscore
7152 and camel-case rules.")
7153 (home-page "https://github.com/AccelerationNet/symbol-munger")
7154 ;; The package declares a BSD license, but all of the license
7155 ;; text is MIT.
7156 ;; See https://github.com/AccelerationNet/symbol-munger/issues/5
7157 (license license:expat))))
7158
7159 (define-public cl-symbol-munger
7160 (sbcl-package->cl-source-package sbcl-symbol-munger))
7161
7162 (define-public ecl-symbol-munger
7163 (sbcl-package->ecl-package sbcl-symbol-munger))
7164
7165 (define-public sbcl-lisp-unit2
7166 ;; There is a cyclical dependency between symbol-munger and lisp-unit2.
7167 ;; See https://github.com/AccelerationNet/symbol-munger/issues/4
7168 (let ((commit "fb9721524d1e4e73abb223ee036d74ce14a5505c")
7169 (revision "1"))
7170 (package
7171 (name "sbcl-lisp-unit2")
7172 (version (git-version "0.2.0" revision commit))
7173 (source
7174 (origin
7175 (method git-fetch)
7176 (uri (git-reference
7177 (url "https://github.com/AccelerationNet/lisp-unit2")
7178 (commit commit)))
7179 (file-name (git-file-name name version))
7180 (sha256
7181 (base32
7182 "1rsqy8y0jqll6xn9a593848f5wvd5ribv4csry1ly0hmdhfnqzlp"))))
7183 (build-system asdf-build-system/sbcl)
7184 (inputs
7185 `(("alexandria" ,sbcl-alexandria)
7186 ("cl-interpol" ,sbcl-cl-interpol)
7187 ("iterate" ,sbcl-iterate)
7188 ("symbol-munger" ,sbcl-symbol-munger)))
7189 (synopsis "Test Framework for Common Lisp")
7190 (description
7191 "LISP-UNIT2 is a Common Lisp library that supports unit testing in the
7192 style of JUnit for Java. It is a new version of the lisp-unit library written
7193 by Chris Riesbeck.")
7194 (home-page "https://github.com/AccelerationNet/lisp-unit2")
7195 (license license:expat))))
7196
7197 (define-public cl-lisp-unit2
7198 (sbcl-package->cl-source-package sbcl-lisp-unit2))
7199
7200 (define-public ecl-lisp-unit2
7201 (sbcl-package->ecl-package sbcl-lisp-unit2))
7202
7203 (define-public sbcl-cl-csv
7204 (let ((commit "68ecb5d816545677513d7f6308d9e5e8d2265651")
7205 (revision "2"))
7206 (package
7207 (name "sbcl-cl-csv")
7208 (version (git-version "1.0.6" revision commit))
7209 (source
7210 (origin
7211 (method git-fetch)
7212 (uri (git-reference
7213 (url "https://github.com/AccelerationNet/cl-csv")
7214 (commit commit)))
7215 (file-name (git-file-name name version))
7216 (sha256
7217 (base32
7218 "0gcmlbwx5m3kwgk12qi80w08ak8fgdnvyia429fz6gnxmhg0k54x"))))
7219 (build-system asdf-build-system/sbcl)
7220 (arguments
7221 ;; See: https://github.com/AccelerationNet/cl-csv/pull/34
7222 `(#:tests? #f))
7223 (inputs
7224 `(("alexandria" ,sbcl-alexandria)
7225 ("cl-interpol" ,sbcl-cl-interpol)
7226 ("iterate" ,sbcl-iterate)))
7227 (native-inputs
7228 `(("lisp-unit2" ,sbcl-lisp-unit2)))
7229 (synopsis "Common lisp library for comma-separated values")
7230 (description
7231 "This is a Common Lisp library providing functions to read/write CSV
7232 from/to strings, streams and files.")
7233 (home-page "https://github.com/AccelerationNet/cl-csv")
7234 (license license:bsd-3))))
7235
7236 (define-public cl-csv
7237 (sbcl-package->cl-source-package sbcl-cl-csv))
7238
7239 (define-public ecl-cl-csv
7240 (sbcl-package->ecl-package sbcl-cl-csv))
7241
7242 (define-public sbcl-external-program
7243 (let ((commit "5888b8f1fd3953feeeacecbba4384ddda584a749")
7244 (revision "1"))
7245 (package
7246 (name "sbcl-external-program")
7247 (version (git-version "0.0.6" revision commit))
7248 (source
7249 (origin
7250 (method git-fetch)
7251 (uri (git-reference
7252 (url "https://github.com/sellout/external-program")
7253 (commit commit)))
7254 (file-name (git-file-name name version))
7255 (sha256
7256 (base32
7257 "0vww1x3yilb3bjwg6k184vaj4vxyxw4vralhnlm6lk4xac67kc9z"))))
7258 (build-system asdf-build-system/sbcl)
7259 (inputs
7260 `(("trivial-features" ,sbcl-trivial-features)))
7261 (native-inputs
7262 `(("fiveam" ,sbcl-fiveam)))
7263 (synopsis "Common Lisp library for running external programs")
7264 (description
7265 "EXTERNAL-PROGRAM enables running programs outside the Lisp
7266 process. It is an attempt to make the RUN-PROGRAM functionality in
7267 implementations like SBCL and CCL as portable as possible without
7268 sacrificing much in the way of power.")
7269 (home-page "https://github.com/sellout/external-program")
7270 (license license:llgpl))))
7271
7272 (define-public cl-external-program
7273 (sbcl-package->cl-source-package sbcl-external-program))
7274
7275 (define-public ecl-external-program
7276 (sbcl-package->ecl-package sbcl-external-program))
7277
7278 (define-public sbcl-cl-ana
7279 (let ((commit "fa7cee4c50aa1c859652813049ba0da7c18a0df9")
7280 (revision "1"))
7281 (package
7282 (name "sbcl-cl-ana")
7283 (version (git-version "0.0.0" revision commit))
7284 (source
7285 (origin
7286 (method git-fetch)
7287 (uri (git-reference
7288 (url "https://github.com/ghollisjr/cl-ana")
7289 (commit commit)))
7290 (file-name (git-file-name name version))
7291 (sha256
7292 (base32 "0mr47l57m276dbpap7irr4fcnk5fgknhf6mgv4043s8h73amk5qh"))))
7293 (build-system asdf-build-system/sbcl)
7294 (native-inputs
7295 `(("cl-fad" ,sbcl-cl-fad)))
7296 (inputs
7297 `(("alexandria" ,sbcl-alexandria)
7298 ("antik" ,sbcl-antik)
7299 ("cffi" ,sbcl-cffi)
7300 ("cl-csv" ,sbcl-cl-csv)
7301 ("closer-mop" ,sbcl-closer-mop)
7302 ("external-program" ,sbcl-external-program)
7303 ("gsl" ,gsl)
7304 ("gsll" ,sbcl-gsll)
7305 ("hdf5" ,hdf5-parallel-openmpi)
7306 ("iterate" ,sbcl-iterate)
7307 ("libffi" ,libffi)
7308 ("split-sequence" ,sbcl-split-sequence)))
7309 (arguments
7310 `(#:phases
7311 (modify-phases %standard-phases
7312 (add-after 'unpack 'fix-paths
7313 (lambda* (#:key inputs #:allow-other-keys)
7314 (substitute* "hdf-cffi/hdf-cffi.lisp"
7315 (("/usr/lib/i386-linux-gnu/hdf5/serial/libhdf5.so")
7316 (string-append (assoc-ref inputs "hdf5")
7317 "/lib/libhdf5.so")))
7318 (substitute* "gsl-cffi/gsl-cffi.lisp"
7319 (("define-foreign-library gsl-cffi" all)
7320 (string-append all " (:unix "
7321 (assoc-ref inputs "gsl")
7322 "/lib/libgsl.so)")))
7323 #t)))))
7324 (synopsis "Common Lisp data analysis library")
7325 (description
7326 "CL-ANA is a data analysis library in Common Lisp providing tabular and
7327 binned data analysis along with nonlinear least squares fitting and
7328 visualization.")
7329 (home-page "https://github.com/ghollisjr/cl-ana")
7330 (license license:gpl3))))
7331
7332 (define-public cl-ana
7333 (sbcl-package->cl-source-package sbcl-cl-ana))
7334
7335 (define-public sbcl-archive
7336 (let ((commit "631271c091ed02994bec3980cb288a2cf32c7cdc")
7337 (revision "1"))
7338 (package
7339 (name "sbcl-archive")
7340 (version (git-version "0.9" revision commit))
7341 (source (origin
7342 (method git-fetch)
7343 (uri (git-reference
7344 (url "https://github.com/sharplispers/archive")
7345 (commit commit)))
7346 (file-name (git-file-name name version))
7347 (sha256
7348 (base32
7349 "0pvsc9fmybx7rxd0kmzq4shi6hszdpwdc1sfy7jwyfxf8n3hnv4p"))))
7350 (build-system asdf-build-system/sbcl)
7351 (inputs
7352 `(("cl-fad" ,sbcl-cl-fad)
7353 ("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
7354 (synopsis "Common Lisp library for tar and cpio archives")
7355 (description
7356 "This is a Common Lisp library to read and write disk-based file
7357 archives such as those generated by the tar and cpio programs on Unix.")
7358 (home-page "https://github.com/sharplispers/archive")
7359 (license license:bsd-3))))
7360
7361 (define-public cl-archive
7362 (sbcl-package->cl-source-package sbcl-archive))
7363
7364 (define-public ecl-archive
7365 (sbcl-package->ecl-package sbcl-archive))
7366
7367 (define-public sbcl-misc-extensions
7368 (let ((commit "101c05112bf2f1e1bbf527396822d2f50ca6327a")
7369 (revision "1"))
7370 (package
7371 (name "sbcl-misc-extensions")
7372 (version (git-version "3.3" revision commit))
7373 (source
7374 (origin
7375 (method git-fetch)
7376 (uri (git-reference
7377 (url "https://gitlab.common-lisp.net/misc-extensions/devel.git")
7378 (commit commit)))
7379 (file-name (git-file-name name version))
7380 (sha256
7381 (base32
7382 "0gz5f4p70qzilnxsnf5lih2n9m4wjcw8hlw4w8mpn9jyhyppyyv0"))))
7383 (build-system asdf-build-system/sbcl)
7384 (synopsis "Collection of small macros and extensions for Common Lisp")
7385 (description
7386 "This project is intended as a catchall for small, general-purpose
7387 extensions to Common Lisp. It contains:
7388
7389 @itemize
7390 @item @code{new-let}, a macro that combines and generalizes @code{let},
7391 @code{let*} and @code{multiple-value-bind},
7392 @item @code{gmap}, an iteration macro that generalizes @code{map}.
7393 @end itemize\n")
7394 (home-page "https://common-lisp.net/project/misc-extensions/")
7395 (license license:public-domain))))
7396
7397 (define-public cl-misc-extensions
7398 (sbcl-package->cl-source-package sbcl-misc-extensions))
7399
7400 (define-public ecl-misc-extensions
7401 (sbcl-package->ecl-package sbcl-misc-extensions))
7402
7403 (define-public sbcl-mt19937
7404 (package
7405 (name "sbcl-mt19937")
7406 (version "1.1")
7407 (source
7408 (origin
7409 (method url-fetch)
7410 (uri (string-append "https://common-lisp.net/project/asdf-packaging/"
7411 "mt19937-latest.tar.gz"))
7412 (sha256
7413 (base32
7414 "1iw636b0iw5ygkv02y8i41lh7xj0acglv0hg5agryn0zzi2nf1xv"))))
7415 (build-system asdf-build-system/sbcl)
7416 (synopsis "Mersenne Twister pseudo-random number generator")
7417 (description
7418 "MT19937 is a portable Mersenne Twister pseudo-random number generator
7419 for Common Lisp.")
7420 (home-page "https://www.cliki.net/mt19937")
7421 (license license:public-domain)))
7422
7423 (define-public cl-mt19937
7424 (sbcl-package->cl-source-package sbcl-mt19937))
7425
7426 (define-public ecl-mt19937
7427 (sbcl-package->ecl-package sbcl-mt19937))
7428
7429 (define-public sbcl-fset
7430 (let ((commit "6d2f9ded8934d2b42f2571a0ba5bda091037d852")
7431 (revision "1"))
7432 (package
7433 (name "sbcl-fset")
7434 (version (git-version "1.3.2" revision commit))
7435 (source
7436 (origin
7437 (method git-fetch)
7438 (uri (git-reference
7439 (url "https://github.com/slburson/fset")
7440 (commit commit)))
7441 (file-name (git-file-name name version))
7442 (sha256
7443 (base32
7444 "127acblwrbqicx47h6sgvknz1cqyfn8p4xkhkn1m7hxh8w5gk1zy"))
7445 (snippet '(begin
7446 ;; Remove obsolete copy of system definition.
7447 (delete-file "Code/fset.asd")
7448 #t))))
7449 (build-system asdf-build-system/sbcl)
7450 (inputs
7451 `(("misc-extensions" ,sbcl-misc-extensions)
7452 ("mt19937" ,sbcl-mt19937)
7453 ("named-readtables" ,sbcl-named-readtables)))
7454 (synopsis "Functional set-theoretic collections library")
7455 (description
7456 "FSet is a functional set-theoretic collections library for Common Lisp.
7457 Functional means that all update operations return a new collection rather than
7458 modifying an existing one in place. Set-theoretic means that collections may
7459 be nested arbitrarily with no additional programmer effort; for instance, sets
7460 may contain sets, maps may be keyed by sets, etc.")
7461 (home-page "https://common-lisp.net/project/fset/Site/index.html")
7462 (license license:llgpl))))
7463
7464 (define-public cl-fset
7465 (sbcl-package->cl-source-package sbcl-fset))
7466
7467 (define-public ecl-fset
7468 (package
7469 (inherit (sbcl-package->ecl-package sbcl-fset))
7470 (arguments
7471 ;; Tests fails on ECL with "The function FSET::MAKE-CHAR is undefined".
7472 '(#:tests? #f))))
7473
7474 (define-public sbcl-cl-cont
7475 (let ((commit "fc1fa7e6eb64894fdca13e688e6015fad5290d2a")
7476 (revision "1"))
7477 (package
7478 (name "sbcl-cl-cont")
7479 (version (git-version "0.3.8" revision commit))
7480 (source
7481 (origin
7482 (method git-fetch)
7483 (uri (git-reference
7484 (url "https://gitlab.common-lisp.net/cl-cont/cl-cont.git")
7485 (commit commit)))
7486 (file-name (git-file-name name version))
7487 (sha256
7488 (base32
7489 "1zf8zvb0i6jm3hhfks4w74hibm6avgc6f9s1qwgjrn2bcik8lrvz"))))
7490 (build-system asdf-build-system/sbcl)
7491 (inputs
7492 `(("alexandria" ,sbcl-alexandria)
7493 ("closer-mop" ,sbcl-closer-mop)))
7494 (native-inputs
7495 `(("rt" ,sbcl-rt)))
7496 (synopsis "Delimited continuations for Common Lisp")
7497 (description
7498 "This is a library that implements delimited continuations by
7499 transforming Common Lisp code to continuation passing style.")
7500 (home-page "https://common-lisp.net/project/cl-cont/")
7501 (license license:llgpl))))
7502
7503 (define-public cl-cont
7504 (sbcl-package->cl-source-package sbcl-cl-cont))
7505
7506 (define-public ecl-cl-cont
7507 (sbcl-package->ecl-package sbcl-cl-cont))
7508
7509 (define-public sbcl-cl-coroutine
7510 (let ((commit "de098f8d5debd8b14ef6864b5bdcbbf5ddbcfd72")
7511 (revision "1"))
7512 (package
7513 (name "sbcl-cl-coroutine")
7514 (version (git-version "0.1" revision commit))
7515 (source
7516 (origin
7517 (method git-fetch)
7518 (uri (git-reference
7519 (url "https://github.com/takagi/cl-coroutine")
7520 (commit commit)))
7521 (file-name (git-file-name name version))
7522 (sha256
7523 (base32
7524 "1cqdhdjxffgfs116l1swjlsmcbly0xgcgrckvaajd566idj9yj4l"))))
7525 (build-system asdf-build-system/sbcl)
7526 (inputs
7527 `(("alexandria" ,sbcl-alexandria)
7528 ("cl-cont" ,sbcl-cl-cont)))
7529 (native-inputs
7530 `(("prove" ,sbcl-prove)))
7531 (arguments
7532 `(;; TODO: Fix the tests. They fail with:
7533 ;; "Component CL-COROUTINE-ASD::CL-COROUTINE-TEST not found"
7534 #:tests? #f
7535 #:phases
7536 (modify-phases %standard-phases
7537 (add-after 'unpack 'fix-tests
7538 (lambda _
7539 (substitute* "cl-coroutine-test.asd"
7540 (("cl-test-more")
7541 "prove"))
7542 #t)))))
7543 (synopsis "Coroutine library for Common Lisp")
7544 (description
7545 "This is a coroutine library for Common Lisp implemented using the
7546 continuations of the @code{cl-cont} library.")
7547 (home-page "https://github.com/takagi/cl-coroutine")
7548 (license license:llgpl))))
7549
7550 (define-public cl-coroutine
7551 (sbcl-package->cl-source-package sbcl-cl-coroutine))
7552
7553 (define-public ecl-cl-coroutine
7554 (sbcl-package->ecl-package sbcl-cl-coroutine))
7555
7556 (define-public sbcl-vom
7557 (let ((commit "1aeafeb5b74c53741b79497e0ef4acf85c92ff24")
7558 (revision "1"))
7559 (package
7560 (name "sbcl-vom")
7561 (version (git-version "0.1.4" revision commit))
7562 (source
7563 (origin
7564 (method git-fetch)
7565 (uri (git-reference
7566 (url "https://github.com/orthecreedence/vom")
7567 (commit commit)))
7568 (file-name (git-file-name name version))
7569 (sha256
7570 (base32
7571 "0536kppj76ax4lrxhv42npkfjsmx45km2g439vf9jmw3apinz9cy"))))
7572 (build-system asdf-build-system/sbcl)
7573 (synopsis "Tiny logging utility for Common Lisp")
7574 (description
7575 "Vom is a logging library for Common Lisp. It's goal is to be useful
7576 and small. It does not provide a lot of features as other loggers do, but
7577 has a small codebase that's easy to understand and use.")
7578 (home-page "https://github.com/orthecreedence/vom")
7579 (license license:expat))))
7580
7581 (define-public cl-vom
7582 (sbcl-package->cl-source-package sbcl-vom))
7583
7584 (define-public ecl-vom
7585 (sbcl-package->ecl-package sbcl-vom))
7586
7587 (define-public sbcl-cl-libuv
7588 (let ((commit "32100c023c518038d0670a103eaa4d50dd785d29")
7589 (revision "1"))
7590 (package
7591 (name "sbcl-cl-libuv")
7592 (version (git-version "0.1.6" revision commit))
7593 (source
7594 (origin
7595 (method git-fetch)
7596 (uri (git-reference
7597 (url "https://github.com/orthecreedence/cl-libuv")
7598 (commit commit)))
7599 (file-name (git-file-name name version))
7600 (sha256
7601 (base32
7602 "1kwix4si8a8hza34ab2k7whrh7z0yrmx39v2wc3qblv9m244jkh1"))))
7603 (build-system asdf-build-system/sbcl)
7604 (inputs
7605 `(("alexandria" ,sbcl-alexandria)
7606 ("cffi" ,sbcl-cffi)
7607 ("libuv" ,libuv)))
7608 (arguments
7609 `(#:phases
7610 (modify-phases %standard-phases
7611 (add-after 'unpack 'fix-paths
7612 (lambda* (#:key inputs #:allow-other-keys)
7613 (substitute* "lib.lisp"
7614 (("/usr/lib/libuv.so")
7615 (string-append (assoc-ref inputs "libuv")
7616 "/lib/libuv.so")))
7617 #t))
7618 (add-after 'fix-paths 'fix-system-definition
7619 (lambda _
7620 (substitute* "cl-libuv.asd"
7621 (("#:cffi #:alexandria")
7622 "#:cffi #:cffi-grovel #:alexandria"))
7623 #t)))))
7624 (synopsis "Common Lisp bindings to libuv")
7625 (description
7626 "This library provides low-level libuv bindings for Common Lisp.")
7627 (home-page "https://github.com/orthecreedence/cl-libuv")
7628 (license license:expat))))
7629
7630 (define-public cl-libuv
7631 (sbcl-package->cl-source-package sbcl-cl-libuv))
7632
7633 (define-public ecl-cl-libuv
7634 (sbcl-package->ecl-package sbcl-cl-libuv))
7635
7636 (define-public sbcl-cl-async
7637 (let ((commit "f6423e44404a44434d803605e0d2e17199158e28")
7638 (revision "1"))
7639 (package
7640 (name "sbcl-cl-async")
7641 (version (git-version "0.6.1" revision commit))
7642 (source
7643 (origin
7644 (method git-fetch)
7645 (uri (git-reference
7646 (url "https://github.com/orthecreedence/cl-async")
7647 (commit commit)))
7648 (file-name (git-file-name name version))
7649 (sha256
7650 (base32
7651 "11xi9dxb8mjgwzrkj88i0xkgk26z9w9ddxzbv6xsvfc1d4x5cf4x"))))
7652 (build-system asdf-build-system/sbcl)
7653 (inputs
7654 `(("babel" ,sbcl-babel)
7655 ("bordeaux-threads" ,sbcl-bordeaux-threads)
7656 ("cffi" ,sbcl-cffi)
7657 ("cl-libuv" ,sbcl-cl-libuv)
7658 ("cl-ppcre" ,sbcl-cl-ppcre)
7659 ("fast-io" ,sbcl-fast-io)
7660 ("openssl" ,openssl)
7661 ("static-vectors" ,sbcl-static-vectors)
7662 ("trivial-features" ,sbcl-trivial-features)
7663 ("trivial-gray-streams" ,sbcl-trivial-gray-streams)
7664 ("vom" ,sbcl-vom)))
7665 (arguments
7666 `(#:asd-systems '("cl-async"
7667 "cl-async-repl"
7668 "cl-async-ssl")
7669 #:phases
7670 (modify-phases %standard-phases
7671 (add-after 'unpack 'fix-paths
7672 (lambda* (#:key inputs #:allow-other-keys)
7673 (substitute* "src/ssl/package.lisp"
7674 (("libcrypto\\.so")
7675 (string-append (assoc-ref inputs "openssl")
7676 "/lib/libcrypto.so"))
7677 (("libssl\\.so")
7678 (string-append (assoc-ref inputs "openssl")
7679 "/lib/libssl.so")))
7680 #t)))))
7681 (synopsis "Asynchronous operations for Common Lisp")
7682 (description
7683 "Cl-async is a library for general purpose, non-blocking programming in
7684 Common Lisp. It uses the libuv library as backend.")
7685 (home-page "https://orthecreedence.github.io/cl-async/")
7686 (license license:expat))))
7687
7688 (define-public cl-async
7689 (sbcl-package->cl-source-package sbcl-cl-async))
7690
7691 (define-public ecl-cl-async
7692 (sbcl-package->ecl-package sbcl-cl-async))
7693
7694 (define-public sbcl-blackbird
7695 (let ((commit "d361f81c1411dec07f6c2dcb11c78f7aea9aaca8")
7696 (revision "1"))
7697 (package
7698 (name "sbcl-blackbird")
7699 (version (git-version "0.5.2" revision commit))
7700 (source
7701 (origin
7702 (method git-fetch)
7703 (uri (git-reference
7704 (url "https://github.com/orthecreedence/blackbird")
7705 (commit commit)))
7706 (file-name (git-file-name name version))
7707 (sha256
7708 (base32
7709 "0xfds5yaya64arzr7w1x38karyz11swzbhxx1afldpradj9dh19c"))))
7710 (build-system asdf-build-system/sbcl)
7711 (inputs
7712 `(("vom" ,sbcl-vom)))
7713 (native-inputs
7714 `(("cl-async" ,sbcl-cl-async)
7715 ("fiveam" ,sbcl-fiveam)))
7716 (synopsis "Promise implementation for Common Lisp")
7717 (description
7718 "This is a standalone promise implementation for Common Lisp. It is
7719 the successor to the now-deprecated cl-async-future project.")
7720 (home-page "https://orthecreedence.github.io/blackbird/")
7721 (license license:expat))))
7722
7723 (define-public cl-blackbird
7724 (sbcl-package->cl-source-package sbcl-blackbird))
7725
7726 (define-public ecl-blackbird
7727 (sbcl-package->ecl-package sbcl-blackbird))
7728
7729 (define-public sbcl-cl-async-future
7730 (let ((commit "ee36c22a69a9516407458d2ed8b475f1fc473959")
7731 (revision "1"))
7732 (package
7733 (name "sbcl-cl-async-future")
7734 (version (git-version "0.4.4.1" revision commit))
7735 (source
7736 (origin
7737 (method git-fetch)
7738 (uri (git-reference
7739 (url "https://github.com/orthecreedence/cl-async-future")
7740 (commit commit)))
7741 (file-name (git-file-name name version))
7742 (sha256
7743 (base32
7744 "0z0sc7qlzzxk99f4l26zp6rai9kv0kj0f599sxai5s44p17zbbvh"))))
7745 (build-system asdf-build-system/sbcl)
7746 (inputs
7747 `(("blackbird" ,sbcl-blackbird)))
7748 (native-inputs
7749 `(("cl-async" ,sbcl-cl-async)
7750 ("eos" ,sbcl-eos)))
7751 (synopsis "Futures implementation for Common Lisp")
7752 (description
7753 "This is futures implementation for Common Lisp. It plugs in nicely
7754 to cl-async.")
7755 (home-page "https://orthecreedence.github.io/cl-async/future")
7756 (license license:expat))))
7757
7758 (define-public cl-async-future
7759 (sbcl-package->cl-source-package sbcl-cl-async-future))
7760
7761 (define-public ecl-cl-async-future
7762 (sbcl-package->ecl-package sbcl-cl-async-future))
7763
7764 (define-public sbcl-green-threads
7765 (let ((commit "fff5ebecb441a37e5c511773716aafd84a3c5840")
7766 (revision "1"))
7767 (package
7768 (name "sbcl-green-threads")
7769 (version (git-version "0.3" revision commit))
7770 (source
7771 (origin
7772 (method git-fetch)
7773 (uri (git-reference
7774 (url "https://github.com/thezerobit/green-threads")
7775 (commit commit)))
7776 (file-name (git-file-name name version))
7777 (sha256
7778 (base32
7779 "1czw7nr0dwfps76h8hjvglk1wdh53yqbfbvv30whwbgqx33iippz"))))
7780 (build-system asdf-build-system/sbcl)
7781 (inputs
7782 `(("cl-async-future" ,sbcl-cl-async-future)
7783 ("cl-cont" ,sbcl-cl-cont)))
7784 (native-inputs
7785 `(("prove" ,sbcl-prove)))
7786 (arguments
7787 `(;; TODO: Fix the tests. They fail with:
7788 ;; "The function BLACKBIRD::PROMISE-VALUES is undefined"
7789 #:tests? #f
7790 #:phases
7791 (modify-phases %standard-phases
7792 (add-after 'unpack 'fix-tests
7793 (lambda _
7794 (substitute* "green-threads-test.asd"
7795 (("cl-test-more")
7796 "prove"))
7797 #t)))))
7798 (synopsis "Cooperative multitasking library for Common Lisp")
7799 (description
7800 "This library allows for cooperative multitasking with help of cl-cont
7801 for continuations. It tries to mimic the API of bordeaux-threads as much as
7802 possible.")
7803 (home-page "https://github.com/thezerobit/green-threads")
7804 (license license:bsd-3))))
7805
7806 (define-public cl-green-threads
7807 (sbcl-package->cl-source-package sbcl-green-threads))
7808
7809 (define-public ecl-green-threads
7810 (sbcl-package->ecl-package sbcl-green-threads))
7811
7812 (define-public sbcl-cl-base32
7813 (let ((commit "8cdee06fab397f7b0a19583b57e7f0c98405be85")
7814 (revision "1"))
7815 (package
7816 (name "sbcl-cl-base32")
7817 (version (git-version "0.1" revision commit))
7818 (source
7819 (origin
7820 (method git-fetch)
7821 (uri (git-reference
7822 (url "https://github.com/hargettp/cl-base32")
7823 (commit commit)))
7824 (file-name (git-file-name name version))
7825 (sha256
7826 (base32 "17jrng8jb05d64ggyd11hp308c2fl5drvf9g175blgrkkl8l4mf8"))))
7827 (build-system asdf-build-system/sbcl)
7828 (native-inputs
7829 `(("lisp-unit" ,sbcl-lisp-unit)))
7830 (synopsis "Common Lisp library for base32 encoding and decoding")
7831 (description
7832 "This package provides functions for base32 encoding and decoding as
7833 defined in RFC4648.")
7834 (home-page "https://github.com/hargettp/cl-base32")
7835 (license license:expat))))
7836
7837 (define-public cl-base32
7838 (sbcl-package->cl-source-package sbcl-cl-base32))
7839
7840 (define-public ecl-cl-base32
7841 (sbcl-package->ecl-package sbcl-cl-base32))
7842
7843 (define-public sbcl-cl-z85
7844 (let ((commit "85b3951a9cfa2603acb6aee15567684f9a108098")
7845 (revision "1"))
7846 (package
7847 (name "sbcl-cl-z85")
7848 (version (git-version "1.0" revision commit))
7849 (source
7850 (origin
7851 (method git-fetch)
7852 (uri (git-reference
7853 (url "https://github.com/glv2/cl-z85")
7854 (commit commit)))
7855 (file-name (git-file-name name version))
7856 (sha256
7857 (base32 "0r27pidjaxbm7k1rr90nnajwl5xm2kp65g1fv0fva17lzy45z1mp"))))
7858 (build-system asdf-build-system/sbcl)
7859 (native-inputs
7860 `(("cl-octet-streams" ,sbcl-cl-octet-streams)
7861 ("fiveam" ,sbcl-fiveam)))
7862 (synopsis "Common Lisp library for Z85 encoding and decoding")
7863 (description
7864 "This package provides functions to encode or decode byte vectors or
7865 byte streams using the Z85 format, which is a base-85 encoding used by
7866 ZeroMQ.")
7867 (home-page "https://github.com/glv2/cl-z85")
7868 (license license:gpl3+))))
7869
7870 (define-public cl-z85
7871 (sbcl-package->cl-source-package sbcl-cl-z85))
7872
7873 (define-public ecl-cl-z85
7874 (sbcl-package->ecl-package sbcl-cl-z85))
7875
7876 (define-public sbcl-ltk
7877 (package
7878 (name "sbcl-ltk")
7879 (version "0.992")
7880 (source
7881 (origin
7882 (method git-fetch)
7883 (uri (git-reference
7884 (url "https://github.com/herth/ltk")
7885 (commit version)))
7886 (file-name (git-file-name name version))
7887 (sha256
7888 (base32 "13l2q4mskzilya9xh5wy2xvy30lwn104bd8wrq6ifds56r82iy3x"))))
7889 (build-system asdf-build-system/sbcl)
7890 (inputs
7891 `(("imagemagick" ,imagemagick)
7892 ("tk" ,tk)))
7893 (arguments
7894 `(#:asd-systems '("ltk"
7895 "ltk-mw"
7896 "ltk-remote")
7897 #:tests? #f
7898 #:phases
7899 (modify-phases %standard-phases
7900 (add-after 'unpack 'fix-paths
7901 (lambda* (#:key inputs #:allow-other-keys)
7902 (substitute* "ltk/ltk.lisp"
7903 (("#-freebsd \"wish\"")
7904 (string-append "#-freebsd \""
7905 (assoc-ref inputs "tk")
7906 "/bin/wish\""))
7907 (("do-execute \"convert\"")
7908 (string-append "do-execute \""
7909 (assoc-ref inputs "imagemagick")
7910 "/bin/convert\"")))
7911 #t))
7912 (add-after 'unpack 'fix-build
7913 (lambda _
7914 (substitute* "ltk/ltk-remote.lisp"
7915 (("\\(:export")
7916 "(:shadow #:raise) (:export"))
7917 #t)))))
7918 (synopsis "Common Lisp bindings for the Tk GUI toolkit")
7919 (description
7920 "LTK is a Common Lisp binding for the Tk graphics toolkit. It is written
7921 in pure Common Lisp and does not require any Tk knowledge for its usage.")
7922 (home-page "http://www.peter-herth.de/ltk/")
7923 (license license:llgpl)))
7924
7925 (define-public cl-ltk
7926 (sbcl-package->cl-source-package sbcl-ltk))
7927
7928 (define-public ecl-ltk
7929 (sbcl-package->ecl-package sbcl-ltk))
7930
7931 (define-public sbcl-cl-lex
7932 (let ((commit "f2dbbe25ef553005fb402d9a6203180c3fa1093b")
7933 (revision "1"))
7934 (package
7935 (name "sbcl-cl-lex")
7936 (version (git-version "1.1.3" revision commit))
7937 (source
7938 (origin
7939 (method git-fetch)
7940 (uri (git-reference
7941 (url "https://github.com/djr7C4/cl-lex")
7942 (commit commit)))
7943 (file-name (git-file-name name version))
7944 (sha256
7945 (base32 "1kg50f76bfpfxcv4dfivq1n9a0xlsra2ajb0vd68lxwgbidgyc2y"))))
7946 (build-system asdf-build-system/sbcl)
7947 (inputs
7948 `(("cl-ppcre" ,sbcl-cl-ppcre)))
7949 (synopsis "Common Lisp macros for generating lexical analyzers")
7950 (description
7951 "This is a Common Lisp library providing a set of macros for generating
7952 lexical analyzers automatically. The lexers generated using @code{cl-lex} can
7953 be used with @code{cl-yacc}.")
7954 (home-page "https://github.com/djr7C4/cl-lex")
7955 (license license:gpl3))))
7956
7957 (define-public cl-lex
7958 (sbcl-package->cl-source-package sbcl-cl-lex))
7959
7960 (define-public ecl-cl-lex
7961 (sbcl-package->ecl-package sbcl-cl-lex))
7962
7963 (define-public sbcl-clunit2
7964 (let ((commit "5e28343734eb9b7aee39306a614af92c1062d50b")
7965 (revision "1"))
7966 (package
7967 (name "sbcl-clunit2")
7968 (version (git-version "0.2.4" revision commit))
7969 (source
7970 (origin
7971 (method git-fetch)
7972 (uri (git-reference
7973 (url "https://notabug.org/cage/clunit2.git")
7974 (commit commit)))
7975 (file-name (git-file-name name version))
7976 (sha256
7977 (base32 "1ngiapfki6nm8a555mzhb5p7ch79i3w665za5bmb5j7q34fy80vw"))))
7978 (build-system asdf-build-system/sbcl)
7979 (synopsis "Unit testing framework for Common Lisp")
7980 (description
7981 "CLUnit is a Common Lisp unit testing framework. It is designed to be
7982 easy to use so that you can quickly start testing.")
7983 (home-page "https://notabug.org/cage/clunit2")
7984 (license license:expat))))
7985
7986 (define-public cl-clunit2
7987 (sbcl-package->cl-source-package sbcl-clunit2))
7988
7989 (define-public ecl-clunit2
7990 (sbcl-package->ecl-package sbcl-clunit2))
7991
7992 (define-public sbcl-cl-colors2
7993 (let ((commit "795aedee593b095fecde574bd999b520dd03ed24")
7994 (revision "1"))
7995 (package
7996 (name "sbcl-cl-colors2")
7997 (version (git-version "0.2.1" revision commit))
7998 (source
7999 (origin
8000 (method git-fetch)
8001 (uri (git-reference
8002 (url "https://notabug.org/cage/cl-colors2.git")
8003 (commit commit)))
8004 (file-name (git-file-name name version))
8005 (sha256
8006 (base32 "0hlyf4h5chkjdp9armla5w4kw5acikk159sym7y8c4jbjp9x47ih"))))
8007 (build-system asdf-build-system/sbcl)
8008 (native-inputs
8009 `(("clunit2" ,sbcl-clunit2)))
8010 (inputs
8011 `(("alexandria" ,sbcl-alexandria)
8012 ("cl-ppcre" ,sbcl-cl-ppcre)))
8013 (synopsis "Color library for Common Lisp")
8014 (description
8015 "This is a very simple color library for Common Lisp, providing:
8016
8017 @itemize
8018 @item Types for representing colors in HSV and RGB spaces.
8019 @item Simple conversion functions between the above types (and also
8020 hexadecimal representation for RGB).
8021 @item Some predefined colors (currently X11 color names -- of course
8022 the library does not depend on X11).
8023 @end itemize\n")
8024 (home-page "https://notabug.org/cage/cl-colors2")
8025 (license license:boost1.0))))
8026
8027 (define-public cl-colors2
8028 (sbcl-package->cl-source-package sbcl-cl-colors2))
8029
8030 (define-public ecl-cl-colors2
8031 (sbcl-package->ecl-package sbcl-cl-colors2))
8032
8033 (define-public sbcl-cl-jpeg
8034 (let ((commit "ec557038128df6895fbfb743bfe8faf8ec2534af")
8035 (revision "1"))
8036 (package
8037 (name "sbcl-cl-jpeg")
8038 (version (git-version "2.8" revision commit))
8039 (source
8040 (origin
8041 (method git-fetch)
8042 (uri (git-reference
8043 (url "https://github.com/sharplispers/cl-jpeg")
8044 (commit commit)))
8045 (file-name (git-file-name name version))
8046 (sha256
8047 (base32 "1bkkiqz8fqldlj1wbmrccjsvxcwj98h6s4b6gslr3cg2wmdv5xmy"))))
8048 (build-system asdf-build-system/sbcl)
8049 (synopsis "JPEG image library for Common Lisp")
8050 (description
8051 "This is a baseline JPEG codec written in Common Lisp. It can be used
8052 for reading and writing JPEG image files.")
8053 (home-page "https://github.com/sharplispers/cl-jpeg")
8054 (license license:bsd-3))))
8055
8056 (define-public cl-jpeg
8057 (sbcl-package->cl-source-package sbcl-cl-jpeg))
8058
8059 (define-public ecl-cl-jpeg
8060 (sbcl-package->ecl-package sbcl-cl-jpeg))
8061
8062 (define-public sbcl-nodgui
8063 (let ((commit "bc59ed9b787dfc9e68ae3bd7f7e8507c5c619212")
8064 (revision "1"))
8065 (package
8066 (name "sbcl-nodgui")
8067 (version (git-version "0.0.5" revision commit))
8068 (source
8069 (origin
8070 (method git-fetch)
8071 (uri (git-reference
8072 (url "https://notabug.org/cage/nodgui.git")
8073 (commit commit)))
8074 (file-name (git-file-name name version))
8075 (sha256
8076 (base32 "0xx0dk54d882i598ydnwmy7mnfk0b7vib3ddsgpqxhjck1rwq8l8"))))
8077 (build-system asdf-build-system/sbcl)
8078 (inputs
8079 `(("alexandria" ,sbcl-alexandria)
8080 ("bordeaux-threads" ,sbcl-bordeaux-threads)
8081 ("cl-colors2" ,sbcl-cl-colors2)
8082 ("cl-jpeg" ,sbcl-cl-jpeg)
8083 ("cl-lex" ,sbcl-cl-lex)
8084 ("cl-ppcre-unicode" ,sbcl-cl-ppcre-unicode)
8085 ("cl-unicode" ,sbcl-cl-unicode)
8086 ("cl-yacc" ,sbcl-cl-yacc)
8087 ("clunit2" ,sbcl-clunit2)
8088 ("named-readtables" ,sbcl-named-readtables)
8089 ("parse-number" ,sbcl-parse-number)
8090 ("tk" ,tk)))
8091 (arguments
8092 `(#:phases (modify-phases %standard-phases
8093 (add-after 'unpack 'fix-paths
8094 (lambda* (#:key inputs #:allow-other-keys)
8095 (substitute* "src/wish-communication.lisp"
8096 (("#-freebsd \"wish\"")
8097 (string-append "#-freebsd \""
8098 (assoc-ref inputs "tk")
8099 "/bin/wish\"")))
8100 #t)))))
8101 (synopsis "Common Lisp bindings for the Tk GUI toolkit")
8102 (description
8103 "Nodgui (@emph{No Drama GUI}) is a Common Lisp binding for the Tk GUI
8104 toolkit. It also provides a few additional widgets more than the standard Tk
8105 ones.")
8106 (home-page "https://www.autistici.org/interzona/nodgui.html")
8107 (license license:llgpl))))
8108
8109 (define-public cl-nodgui
8110 (sbcl-package->cl-source-package sbcl-nodgui))
8111
8112 (define-public ecl-nodgui
8113 (sbcl-package->ecl-package sbcl-nodgui))
8114
8115 (define-public sbcl-salza2
8116 (package
8117 (name "sbcl-salza2")
8118 (version "2.0.9")
8119 (source
8120 (origin
8121 (method git-fetch)
8122 (uri (git-reference
8123 (url "https://github.com/xach/salza2")
8124 (commit (string-append "release-" version))))
8125 (file-name (git-file-name name version))
8126 (sha256
8127 (base32 "0p38rj4gq7j5k807php7hrz7l2zyyfshv8i9yms7i8lkgg3433ki"))))
8128 (build-system asdf-build-system/sbcl)
8129 (synopsis "Common Lisp library for zlib, deflate and gzip compression")
8130 (description
8131 "Salza2 is a Common Lisp library for creating compressed data in the zlib,
8132 deflate, or gzip data formats, described in RFC 1950, RFC 1951, and RFC 1952,
8133 respectively.")
8134 (home-page "https://www.xach.com/lisp/salza2/")
8135 (license license:bsd-2)))
8136
8137 (define-public cl-salza2
8138 (sbcl-package->cl-source-package sbcl-salza2))
8139
8140 (define-public ecl-salza2
8141 (sbcl-package->ecl-package sbcl-salza2))
8142
8143 (define-public sbcl-png-read
8144 (let ((commit "ec29f38a689972b9f1373f13bbbcd6b05deada88")
8145 (revision "1"))
8146 (package
8147 (name "sbcl-png-read")
8148 (version (git-version "0.3.1" revision commit))
8149 (source
8150 (origin
8151 (method git-fetch)
8152 (uri (git-reference
8153 (url "https://github.com/Ramarren/png-read")
8154 (commit commit)))
8155 (file-name (git-file-name name version))
8156 (sha256
8157 (base32 "0vyczbcwskrygrf1hgrsnk0jil8skmvf1kiaalw5jps4fjrfdkw0"))))
8158 (build-system asdf-build-system/sbcl)
8159 (inputs
8160 `(("babel" ,sbcl-babel)
8161 ("chipz" ,sbcl-chipz)
8162 ("iterate" ,sbcl-iterate)))
8163 (synopsis "PNG decoder for Common Lisp")
8164 (description "This is a Common Lisp library for reading PNG images.")
8165 (home-page "https://github.com/Ramarren/png-read")
8166 (license license:bsd-3))))
8167
8168 (define-public cl-png-read
8169 (sbcl-package->cl-source-package sbcl-png-read))
8170
8171 (define-public ecl-png-read
8172 (sbcl-package->ecl-package sbcl-png-read))
8173
8174 (define-public sbcl-zpng
8175 (package
8176 (name "sbcl-zpng")
8177 (version "1.2.2")
8178 (source
8179 (origin
8180 (method git-fetch)
8181 (uri (git-reference
8182 (url "https://github.com/xach/zpng")
8183 (commit (string-append "release-" version))))
8184 (file-name (git-file-name name version))
8185 (sha256
8186 (base32 "0b3ag3jhl3z7kdls3ahdsdxsfhhw5qrizk769984f4wkxhb69rcm"))))
8187 (build-system asdf-build-system/sbcl)
8188 (inputs
8189 `(("salza2" ,sbcl-salza2)))
8190 (synopsis "PNG encoder for Common Lisp")
8191 (description "This is a Common Lisp library for creating PNG images.")
8192 (home-page "https://www.xach.com/lisp/zpng/")
8193 (license license:bsd-2)))
8194
8195 (define-public cl-zpng
8196 (sbcl-package->cl-source-package sbcl-zpng))
8197
8198 (define-public ecl-zpng
8199 (sbcl-package->ecl-package sbcl-zpng))
8200
8201 (define-public sbcl-cl-qrencode
8202 (package
8203 (name "sbcl-cl-qrencode")
8204 (version "0.1.2")
8205 (source
8206 (origin
8207 (method git-fetch)
8208 (uri (git-reference
8209 (url "https://github.com/jnjcc/cl-qrencode")
8210 (commit (string-append "v" version))))
8211 (file-name (git-file-name name version))
8212 (sha256
8213 (base32 "1l5k131dchbf6cj8a8xqa731790p01p3qa1kdy2wa9dawy3ymkxr"))))
8214 (build-system asdf-build-system/sbcl)
8215 (native-inputs
8216 `(("lisp-unit" ,sbcl-lisp-unit)))
8217 (inputs
8218 `(("zpng" ,sbcl-zpng)))
8219 (synopsis "QR code encoder for Common Lisp")
8220 (description
8221 "This Common Lisp library provides function to make QR codes and to save
8222 them as PNG files.")
8223 (home-page "https://github.com/jnjcc/cl-qrencode")
8224 (license license:gpl2+)))
8225
8226 (define-public cl-qrencode
8227 (sbcl-package->cl-source-package sbcl-cl-qrencode))
8228
8229 (define-public ecl-cl-qrencode
8230 (sbcl-package->ecl-package sbcl-cl-qrencode))
8231
8232 (define-public sbcl-hdf5-cffi
8233 (let ((commit "5b5c88f191e470e4fe96b462334e3ce0806eed5c")
8234 (revision "1"))
8235 (package
8236 (name "sbcl-hdf5-cffi")
8237 (version (git-version "1.8.18" revision commit))
8238 (source
8239 (origin
8240 (method git-fetch)
8241 (uri (git-reference
8242 (url "https://github.com/hdfgroup/hdf5-cffi")
8243 (commit commit)))
8244 (file-name (git-file-name name version))
8245 (sha256
8246 (base32
8247 "0vda3075423xz83qky998lpac5b04dwfv7bwgh9jq8cs5v0zrxjf"))))
8248 (build-system asdf-build-system/sbcl)
8249 (synopsis "Common Lisp bindings for the HDF5 library")
8250 (description
8251 "@code{hdf5-cffi} is a CFFI wrapper for the HDF5 library.")
8252 (home-page "https://github.com/hdfgroup/hdf5-cffi")
8253 (license (license:non-copyleft
8254 (string-append "https://github.com/HDFGroup/hdf5-cffi/raw/"
8255 commit
8256 "/LICENSE")))
8257 (inputs
8258 `(("cffi" ,sbcl-cffi)
8259 ("hdf5" ,hdf5-1.10)))
8260 (native-inputs
8261 `(("fiveam" ,sbcl-fiveam)))
8262 (arguments
8263 `(#:test-asd-file "hdf5-cffi.test.asd"
8264 ;; Tests depend on hdf5-cffi.examples.asd in addition to hdf5-cffi.asd,
8265 ;; I don't know if there is a way to tell asdf-build-system to load
8266 ;; an additional system first, so tests are disabled.
8267 #:tests? #f
8268 #:phases
8269 (modify-phases %standard-phases
8270 (add-after 'unpack 'fix-paths
8271 (lambda* (#:key inputs #:allow-other-keys)
8272 (substitute* "src/library.lisp"
8273 (("libhdf5.so")
8274 (string-append
8275 (assoc-ref inputs "hdf5")
8276 "/lib/libhdf5.so")))))
8277 (add-after 'unpack 'fix-dependencies
8278 (lambda* (#:key inputs #:allow-other-keys)
8279 (substitute* "hdf5-cffi.asd"
8280 ((":depends-on \\(:cffi\\)")
8281 ":depends-on (:cffi :cffi-grovel)"))
8282 (substitute* "hdf5-cffi.test.asd"
8283 ((":depends-on \\(:cffi :hdf5-cffi")
8284 ":depends-on (:cffi :cffi-grovel :hdf5-cffi"))))))))))
8285
8286 (define-public cl-hdf5-cffi
8287 (sbcl-package->cl-source-package sbcl-hdf5-cffi))
8288
8289 (define-public ecl-hdf5-cffi
8290 (sbcl-package->ecl-package sbcl-hdf5-cffi))
8291
8292 (define-public sbcl-cl-randist
8293 (package
8294 (name "sbcl-cl-randist")
8295 (version "0.4.2")
8296 (source
8297 (origin
8298 (method git-fetch)
8299 (uri (git-reference
8300 (url "https://github.com/lvaruzza/cl-randist")
8301 (commit "f088a54b540a7adefab7c04094a6103f9edda3d0")))
8302 (file-name (git-file-name name version))
8303 (sha256
8304 (base32
8305 "0l8hyd6nbxb7f50vyxz3rbbm7kgr1fnadc40jywy4xj5vi5kpj5g"))))
8306 (build-system asdf-build-system/sbcl)
8307 (synopsis "Random distributions for Common Lisp")
8308 (description
8309 "Manual translation from C to Common Lisp of some random number
8310 generation functions from the GSL library.")
8311 (home-page "https://github.com/lvaruzza/cl-randist")
8312 (license license:bsd-2)
8313 (arguments
8314 `(#:tests? #f))))
8315
8316 (define-public cl-randist
8317 (sbcl-package->cl-source-package sbcl-cl-randist))
8318
8319 (define-public ecl-cl-randist
8320 (sbcl-package->ecl-package sbcl-cl-randist))
8321
8322 (define-public sbcl-float-features
8323 (package
8324 (name "sbcl-float-features")
8325 (version "1.0.0")
8326 (source
8327 (origin
8328 (method git-fetch)
8329 (uri (git-reference
8330 (url "https://github.com/Shinmera/float-features")
8331 (commit "d3ef60181635b0849aa28cfc238053b7ca4644b0")))
8332 (file-name (git-file-name name version))
8333 (sha256
8334 (base32
8335 "0yj419k7n59x6rh3grwr6frgwwyria2il6f7wxpfazm8cskv4lzr"))))
8336 (build-system asdf-build-system/sbcl)
8337 (synopsis "Common Lisp IEEE float portability library")
8338 (description
8339 "Portability library for IEEE float features that are not
8340 covered by the Common Lisp standard.")
8341 (home-page "https://github.com/Shinmera/float-features")
8342 (license license:zlib)
8343 (inputs
8344 `(("documentation-utils" ,sbcl-documentation-utils)))
8345 (arguments
8346 `(#:tests? #f))))
8347
8348 (define-public cl-float-features
8349 (sbcl-package->cl-source-package sbcl-float-features))
8350
8351 (define-public ecl-float-features
8352 (sbcl-package->ecl-package sbcl-float-features))
8353
8354 (define-public sbcl-function-cache
8355 (package
8356 (name "sbcl-function-cache")
8357 (version "1.0.3")
8358 (source
8359 (origin
8360 (method git-fetch)
8361 (uri (git-reference
8362 (url "https://github.com/AccelerationNet/function-cache")
8363 (commit "6a5ada401e57da2c8abf046f582029926e61fce8")))
8364 (file-name (git-file-name name version))
8365 (sha256
8366 (base32
8367 "000vmd3f5rx5hs9nvphfric0gkzaadns31c6mxaslpv0k7pkrmc6"))))
8368 (build-system asdf-build-system/sbcl)
8369 (synopsis "Function caching / memoization library for Common Lisp")
8370 (description
8371 "A common lisp library that provides extensible function result
8372 caching based on arguments (an expanded form of memoization).")
8373 (home-page "https://github.com/AccelerationNet/function-cache")
8374 (license
8375 (license:non-copyleft
8376 "https://github.com/AccelerationNet/function-cache/blob/master/README.md"))
8377 (inputs
8378 `(("alexandria" ,sbcl-alexandria)
8379 ("cl-interpol" ,sbcl-cl-interpol)
8380 ("iterate" ,sbcl-iterate)
8381 ("symbol-munger" ,sbcl-symbol-munger)
8382 ("closer-mop" ,sbcl-closer-mop)))
8383 (arguments
8384 `(#:tests? #f))))
8385
8386 (define-public cl-function-cache
8387 (sbcl-package->cl-source-package sbcl-function-cache))
8388
8389 (define-public ecl-function-cache
8390 (sbcl-package->ecl-package sbcl-function-cache))
8391
8392 (define-public sbcl-type-r
8393 (let ((commit "83c89e38f2f7a7b16f1012777ecaf878cfa6a267")
8394 (revision "1"))
8395 (package
8396 (name "sbcl-type-r")
8397 (version (git-version "0.0.0" revision commit))
8398 (source
8399 (origin
8400 (method git-fetch)
8401 (uri (git-reference
8402 (url "https://github.com/guicho271828/type-r")
8403 (commit commit)))
8404 (file-name (git-file-name name version))
8405 (sha256
8406 (base32
8407 "1arsxc2539rg8vbrdirz4xxj1b06mc6g6rqndz7a02g127qvk2sm"))))
8408 (build-system asdf-build-system/sbcl)
8409 (synopsis "Parser interface for Common Lisp built-in compound types")
8410 (description
8411 "Collections of accessor functions and patterns to access
8412 the elements in compound type specifier, e.g. @code{dimensions} in
8413 @code{(array element-type dimensions)}")
8414 (home-page "https://github.com/guicho271828/type-r")
8415 (license license:lgpl3+)
8416 (inputs
8417 `(("trivia" ,sbcl-trivia)
8418 ("alexandria" ,sbcl-alexandria)))
8419 (native-inputs
8420 `(("fiveam" ,sbcl-fiveam)))
8421 (arguments
8422 `(#:test-asd-file "type-r.test.asd")))))
8423
8424 (define-public cl-type-r
8425 (sbcl-package->cl-source-package sbcl-type-r))
8426
8427 (define-public ecl-type-r
8428 (sbcl-package->ecl-package sbcl-type-r))
8429
8430 (define-public sbcl-trivialib-type-unify
8431 (let ((commit "62492ebf04db567dcf435ae84c50b7b8202ecf99")
8432 (revision "1"))
8433 (package
8434 (name "sbcl-trivialib-type-unify")
8435 (version (git-version "0.1" revision commit))
8436 (source
8437 (origin
8438 (method git-fetch)
8439 (uri (git-reference
8440 (url "https://github.com/guicho271828/trivialib.type-unify")
8441 (commit commit)))
8442 (file-name (git-file-name name version))
8443 (sha256
8444 (base32
8445 "1bkyfzbwv75p50zp8n1n9rh2r29pw3vgz91gmn2gzzkyq3khj1vh"))))
8446 (build-system asdf-build-system/sbcl)
8447 (synopsis "Common Lisp type unification")
8448 (description
8449 "Unifies a parametrized type specifier against an actual type specifier.
8450 Importantly, it handles complicated array-subtypes and number-related types
8451 correctly.")
8452 (home-page "https://github.com/guicho271828/trivialib.type-unify")
8453 (license license:lgpl3+)
8454 (inputs
8455 `(("alexandria" ,sbcl-alexandria)
8456 ("trivia" ,sbcl-trivia)
8457 ("introspect-environment" ,sbcl-introspect-environment)
8458 ("type-r" ,sbcl-type-r)))
8459 (native-inputs
8460 `(("fiveam" ,sbcl-fiveam)))
8461 (arguments
8462 `(#:asd-systems '("trivialib.type-unify")
8463 #:test-asd-file "trivialib.type-unify.test.asd")))))
8464
8465 (define-public cl-trivialib-type-unify
8466 (sbcl-package->cl-source-package sbcl-trivialib-type-unify))
8467
8468 (define-public ecl-trivialib-type-unify
8469 (sbcl-package->ecl-package sbcl-trivialib-type-unify))
8470
8471 (define-public sbcl-specialized-function
8472 (let ((commit "dee56d2d2b6ecd10500ad291c56217698604ec35")
8473 (revision "2"))
8474 (package
8475 (name "sbcl-specialized-function")
8476 (version (git-version "0.0.0" revision commit))
8477 (source
8478 (origin
8479 (method git-fetch)
8480 (uri (git-reference
8481 (url "https://github.com/numcl/specialized-function")
8482 (commit commit)))
8483 (file-name (git-file-name name version))
8484 (sha256
8485 (base32 "1mcc7mmpbnmgnr1cl2jl5r1ai54gn7fbisv2c14sh9za5w4sib82"))))
8486 (build-system asdf-build-system/sbcl)
8487 (synopsis "Julia-like dispatch for Common Lisp")
8488 (description
8489 "This library is part of NUMCL. It provides a macro
8490 @code{SPECIALIZED} that performs a Julia-like dispatch on the arguments,
8491 lazily compiling a type-specific version of the function from the same
8492 code. The main target of this macro is speed.")
8493 (home-page "https://github.com/numcl/specialized-function")
8494 (license license:lgpl3+)
8495 (inputs
8496 `(("trivia" ,sbcl-trivia)
8497 ("alexandria" ,sbcl-alexandria)
8498 ("iterate" ,sbcl-iterate)
8499 ("lisp-namespace" ,sbcl-lisp-namespace)
8500 ("type-r" ,sbcl-type-r)
8501 ("trivial-cltl2" ,sbcl-trivial-cltl2)))
8502 (native-inputs
8503 `(("fiveam" ,sbcl-fiveam)))
8504 (arguments
8505 `(#:asd-files '("specialized-function.asd")
8506 #:test-asd-file "specialized-function.test.asd"
8507 ;; Tests fail because they try to use an internal symbol of SBCL
8508 ;; that does not exists in recent versions:
8509 ;; "The variable SB-VM:COMPLEX-VECTOR-NIL-WIDETAG is unbound."
8510 #:tests? #f)))))
8511
8512 (define-public cl-specialized-function
8513 (sbcl-package->cl-source-package sbcl-specialized-function))
8514
8515 (define-public ecl-specialized-function
8516 (sbcl-package->ecl-package sbcl-specialized-function))
8517
8518 (define-public sbcl-constantfold
8519 (let ((commit "0ff1d97a3fbcb89264f6a2af6ce62b73e7b421f4")
8520 (revision "1"))
8521 (package
8522 (name "sbcl-constantfold")
8523 (version (git-version "0.1" revision commit))
8524 (source
8525 (origin
8526 (method git-fetch)
8527 (uri (git-reference
8528 (url "https://github.com/numcl/constantfold")
8529 (commit commit)))
8530 (file-name (git-file-name name version))
8531 (sha256
8532 (base32
8533 "153h0569z6bff1qbad0bdssplwwny75l7ilqwcfqfdvzsxf9jh06"))))
8534 (build-system asdf-build-system/sbcl)
8535 (synopsis "Support library for numcl")
8536 (description
8537 "Support library for numcl. Registers a function as an
8538 additional form that is considered as a candidate for a constant.")
8539 (home-page "https://github.com/numcl/constantfold")
8540 (license license:lgpl3+)
8541 (inputs
8542 `(("trivia" ,sbcl-trivia)
8543 ("alexandria" ,sbcl-alexandria)
8544 ("iterate" ,sbcl-iterate)
8545 ("lisp-namespace" ,sbcl-lisp-namespace)))
8546 (native-inputs
8547 `(("fiveam" ,sbcl-fiveam)))
8548 (arguments
8549 `(#:asd-files '("constantfold.asd")
8550 #:test-asd-file "constantfold.test.asd")))))
8551
8552 (define-public cl-constantfold
8553 (sbcl-package->cl-source-package sbcl-constantfold))
8554
8555 (define-public ecl-constantfold
8556 (sbcl-package->ecl-package sbcl-constantfold))
8557
8558 (define-public sbcl-gtype
8559 (let ((commit "2442e32485635525af278ebd8fa69a27d5b8cf18")
8560 (revision "2"))
8561 (package
8562 (name "sbcl-gtype")
8563 (version (git-version "0.1" revision commit))
8564 (source
8565 (origin
8566 (method git-fetch)
8567 (uri (git-reference
8568 (url "https://github.com/numcl/gtype")
8569 (commit commit)))
8570 (file-name (git-file-name name version))
8571 (sha256
8572 (base32 "0hbkfdw00v7bsa6zbric34p5w6hfwxycccg8wc2faq0cxhsvpv9h"))))
8573 (build-system asdf-build-system/sbcl)
8574 (synopsis "C++/Julia-like parametric types in Common Lisp")
8575 (description
8576 "Support library for numcl that provides Julia-like runtime parametric
8577 type correctness in Common Lisp. It is based on CLtL2 extensions.")
8578 (home-page "https://github.com/numcl/gtype")
8579 (license license:lgpl3+)
8580 (inputs
8581 `(("trivialib.type-unify" ,sbcl-trivialib-type-unify)
8582 ("trivial-cltl2" ,sbcl-trivial-cltl2)
8583 ("trivia" ,sbcl-trivia)
8584 ("alexandria" ,sbcl-alexandria)
8585 ("iterate" ,sbcl-iterate)
8586 ("type-r" ,sbcl-type-r)))
8587 (native-inputs
8588 `(("fiveam" ,sbcl-fiveam)))
8589 (arguments
8590 `(#:asd-files '("gtype.asd")
8591 #:test-asd-file "gtype.test.asd")))))
8592
8593 (define-public cl-gtype
8594 (sbcl-package->cl-source-package sbcl-gtype))
8595
8596 (define-public ecl-gtype
8597 (let ((pkg (sbcl-package->ecl-package sbcl-gtype)))
8598 (package
8599 (inherit pkg)
8600 (arguments
8601 (substitute-keyword-arguments (package-arguments pkg)
8602 ;; The tests fail on ECL with a COMPILE-FILE-ERROR for t/package.lisp.
8603 ((#:tests? _ #f) #f))))))
8604
8605 (define-public sbcl-numcl
8606 (let ((commit "3e8d40bf774e070e7af1d3dbf01bc8c37dbebd3a")
8607 (revision "2"))
8608 (package
8609 (name "sbcl-numcl")
8610 (version (git-version "0.1.0" revision commit))
8611 (source
8612 (origin
8613 (method git-fetch)
8614 (uri (git-reference
8615 (url "https://github.com/numcl/numcl")
8616 (commit commit)))
8617 (file-name (git-file-name name version))
8618 (sha256
8619 (base32 "1hqpr68f6xkxaj1hjjayyh97wcdmj51k20qrd3nsv1rcpmdc5ll4"))))
8620 (build-system asdf-build-system/sbcl)
8621 (synopsis "Numpy clone in Common Lisp")
8622 (description
8623 "This is a Numpy clone in Common Lisp. At the moment the
8624 library is written in pure Common Lisp, focusing more on correctness
8625 and usefulness, not speed. Track the progress at
8626 @url{https://github.com/numcl/numcl/projects/1}.")
8627 (home-page "https://github.com/numcl/numcl")
8628 (license license:lgpl3+)
8629 (inputs
8630 `(("trivia" ,sbcl-trivia)
8631 ("alexandria" ,sbcl-alexandria)
8632 ("iterate" ,sbcl-iterate)
8633 ("lisp-namespace" ,sbcl-lisp-namespace)
8634 ("type-r" ,sbcl-type-r)
8635 ("constantfold" ,sbcl-constantfold)
8636 ("cl-randist" ,sbcl-cl-randist)
8637 ("float-features" ,sbcl-float-features)
8638 ("function-cache" ,sbcl-function-cache)
8639 ("specialized-function" ,sbcl-specialized-function)
8640 ("gtype" ,sbcl-gtype)))
8641 (native-inputs
8642 `(("fiveam" ,sbcl-fiveam)))
8643 (arguments
8644 `(#:asd-files '("numcl.asd")
8645 #:test-asd-file "numcl.test.asd"
8646 ;; Tests fail on SBCL with "Heap exhausted, game over",
8647 ;; but they pass on ECL.
8648 #:tests? #f)))))
8649
8650 (define-public cl-numcl
8651 (sbcl-package->cl-source-package sbcl-numcl))
8652
8653 (define-public ecl-numcl
8654 (let ((pkg (sbcl-package->ecl-package sbcl-numcl)))
8655 (package
8656 (inherit pkg)
8657 (arguments
8658 (substitute-keyword-arguments (package-arguments pkg)
8659 ((#:tests? _ #f) #t))))))
8660
8661 (define-public sbcl-pzmq
8662 (let ((commit "7c7390eedc469d033c72dc497984d1536ee75826")
8663 (revision "1"))
8664 (package
8665 (name "sbcl-pzmq")
8666 (version (git-version "0.0.0" revision commit))
8667 (source
8668 (origin
8669 (method git-fetch)
8670 (uri (git-reference
8671 (url "https://github.com/orivej/pzmq")
8672 (commit commit)))
8673 (file-name (git-file-name name version))
8674 (sha256
8675 (base32 "0gmwzf7h90wa7v4wnk49g0hv2mdalljpwhyigxcb967wzv8lqci9"))))
8676 (build-system asdf-build-system/sbcl)
8677 (native-inputs
8678 `(("bordeaux-threads" ,sbcl-bordeaux-threads)
8679 ("fiveam" ,sbcl-fiveam)
8680 ("let-plus" ,sbcl-let-plus)))
8681 (inputs
8682 `(("cffi" ,sbcl-cffi)
8683 ("zeromq" ,zeromq)))
8684 (arguments
8685 `(#:phases (modify-phases %standard-phases
8686 (add-after 'unpack 'fix-paths
8687 (lambda* (#:key inputs #:allow-other-keys)
8688 (substitute* "c-api.lisp"
8689 (("\"libzmq")
8690 (string-append "\""
8691 (assoc-ref inputs "zeromq")
8692 "/lib/libzmq")))
8693 #t)))))
8694 (synopsis "Common Lisp bindings for the ZeroMQ library")
8695 (description "This Common Lisp library provides bindings for the ZeroMQ
8696 lightweight messaging kernel.")
8697 (home-page "https://github.com/orivej/pzmq")
8698 (license license:unlicense))))
8699
8700 (define-public cl-pzmq
8701 (sbcl-package->cl-source-package sbcl-pzmq))
8702
8703 (define-public ecl-pzmq
8704 (sbcl-package->ecl-package sbcl-pzmq))
8705
8706 (define-public sbcl-clss
8707 (let ((revision "1")
8708 (commit "2a8e8615ab55870d4ca01928f3ed3bbeb4e75c8d"))
8709 (package
8710 (name "sbcl-clss")
8711 (version (git-version "0.3.1" revision commit))
8712 (source
8713 (origin
8714 (method git-fetch)
8715 (uri
8716 (git-reference
8717 (url "https://github.com/Shinmera/clss")
8718 (commit commit)))
8719 (sha256
8720 (base32 "0la4dbcda78x29szanylccrsljqrn9d1mhh569sqkyp44ni5fv91"))
8721 (file-name (git-file-name name version))))
8722 (inputs
8723 `(("array-utils" ,sbcl-array-utils)
8724 ("plump" ,sbcl-plump)))
8725 (build-system asdf-build-system/sbcl)
8726 (synopsis "DOM tree searching engine based on CSS selectors")
8727 (description "CLSS is a DOM traversal engine based on CSS
8728 selectors. It makes use of the Plump-DOM and is used by lQuery.")
8729 (home-page "https://github.com/Shinmera/clss")
8730 (license license:zlib))))
8731
8732 (define-public cl-clss
8733 (sbcl-package->cl-source-package sbcl-clss))
8734
8735 (define-public ecl-clss
8736 (sbcl-package->ecl-package sbcl-clss))
8737
8738 (define-public sbcl-lquery
8739 (let ((revision "1")
8740 (commit "8048111c6b83956daa632e7a3ffbd8c9c203bd8d"))
8741 (package
8742 (name "sbcl-lquery")
8743 (version (git-version "3.2.1" revision commit))
8744 (source
8745 (origin
8746 (method git-fetch)
8747 (uri
8748 (git-reference
8749 (url "https://github.com/Shinmera/lquery")
8750 (commit commit)))
8751 (sha256
8752 (base32 "0520mcpxc2d6fdm8z61arpgd2z38kan7cf06qs373n5r64rakz6w"))
8753 (file-name (git-file-name name version))))
8754 (native-inputs
8755 `(("fiveam" ,sbcl-fiveam)))
8756 (inputs
8757 `(("array-utils" ,sbcl-array-utils)
8758 ("form-fiddle" ,sbcl-form-fiddle)
8759 ("plump" ,sbcl-plump)
8760 ("clss" ,sbcl-clss)))
8761 (build-system asdf-build-system/sbcl)
8762 (synopsis "Library to allow jQuery-like HTML/DOM manipulation")
8763 (description "@code{lQuery} is a DOM manipulation library written in
8764 Common Lisp, inspired by and based on the jQuery syntax and
8765 functions. It uses Plump and CLSS as DOM and selector engines. The
8766 main idea behind lQuery is to provide a simple interface for crawling
8767 and modifying HTML sites, as well as to allow for an alternative
8768 approach to templating.")
8769 (home-page "https://github.com/Shinmera/lquery")
8770 (license license:zlib))))
8771
8772 (define-public cl-lquery
8773 (sbcl-package->cl-source-package sbcl-lquery))
8774
8775 (define-public ecl-lquery
8776 (sbcl-package->ecl-package sbcl-lquery))
8777
8778 (define-public sbcl-cl-mysql
8779 (let ((commit "ab56c279c1815aec6ca0bfe85164ff7e85cfb6f9")
8780 (revision "1"))
8781 (package
8782 (name "sbcl-cl-mysql")
8783 (version (git-version "0.1" revision commit))
8784 (source
8785 (origin
8786 (method git-fetch)
8787 (uri (git-reference
8788 (url "https://github.com/hackinghat/cl-mysql")
8789 (commit commit)))
8790 (file-name (git-file-name name version))
8791 (sha256
8792 (base32 "0dg5ynx2ww94d0qfwrdrm7plkn43h64hs4iiq9mj2s1s4ixnp3lr"))))
8793 (build-system asdf-build-system/sbcl)
8794 (native-inputs
8795 `(("stefil" ,sbcl-stefil)))
8796 (inputs
8797 `(("cffi" ,sbcl-cffi)
8798 ("mariadb-lib" ,mariadb "lib")))
8799 (arguments
8800 `(#:tests? #f ; TODO: Tests require a running server
8801 #:phases
8802 (modify-phases %standard-phases
8803 (add-after 'unpack 'fix-paths
8804 (lambda* (#:key inputs #:allow-other-keys)
8805 (substitute* "system.lisp"
8806 (("libmysqlclient_r" all)
8807 (string-append (assoc-ref inputs "mariadb-lib")
8808 "/lib/"
8809 all)))
8810 #t)))))
8811 (synopsis "Common Lisp wrapper for MySQL")
8812 (description
8813 "@code{cl-mysql} is a Common Lisp implementation of a MySQL wrapper.")
8814 (home-page "http://www.hackinghat.com/index.php/cl-mysql")
8815 (license license:expat))))
8816
8817 (define-public cl-mysql
8818 (sbcl-package->cl-source-package sbcl-cl-mysql))
8819
8820 (define-public ecl-cl-mysql
8821 (sbcl-package->ecl-package sbcl-cl-mysql))
8822
8823 (define-public sbcl-postmodern
8824 (let ((commit "74469b25bbda990ec9b77e0d0eccdba0cd7e721a")
8825 (revision "1"))
8826 (package
8827 (name "sbcl-postmodern")
8828 (version (git-version "1.19" revision commit))
8829 (source
8830 (origin
8831 (method git-fetch)
8832 (uri (git-reference
8833 (url "https://github.com/marijnh/Postmodern")
8834 (commit commit)))
8835 (file-name (git-file-name name version))
8836 (sha256
8837 (base32 "0im7ymnyxjhn2w74jfg76k5gpr0gl33n31akx33hl28722ljd0hd"))))
8838 (build-system asdf-build-system/sbcl)
8839 (native-inputs
8840 `(("fiveam" ,sbcl-fiveam)))
8841 (inputs
8842 `(("alexandria" ,sbcl-alexandria)
8843 ("bordeaux-threads" ,sbcl-bordeaux-threads)
8844 ("closer-mop" ,sbcl-closer-mop)
8845 ("global-vars" ,sbcl-global-vars)
8846 ("md5" ,sbcl-md5)
8847 ("split-sequence" ,sbcl-split-sequence)
8848 ("usocket" ,sbcl-usocket)))
8849 (arguments
8850 ;; TODO: Fix missing dependency errors for simple-date/postgres-glue,
8851 ;; cl-postgres/tests and s-sql/tests.
8852 `(#:tests? #f
8853 #:asd-systems '("postmodern"
8854 "simple-date/postgres-glue")))
8855 (synopsis "Common Lisp library for interacting with PostgreSQL")
8856 (description
8857 "@code{postmodern} is a Common Lisp library for interacting with
8858 PostgreSQL databases. It provides the following features:
8859
8860 @itemize
8861 @item Efficient communication with the database server without need for
8862 foreign libraries.
8863 @item Support for UTF-8 on Unicode-aware Lisp implementations.
8864 @item A syntax for mixing SQL and Lisp code.
8865 @item Convenient support for prepared statements and stored procedures.
8866 @item A metaclass for simple database-access objects.
8867 @end itemize\n")
8868 (home-page "https://marijnhaverbeke.nl/postmodern/")
8869 (license license:zlib))))
8870
8871 (define-public cl-postmodern
8872 (sbcl-package->cl-source-package sbcl-postmodern))
8873
8874 (define-public ecl-postmodern
8875 (package
8876 (inherit (sbcl-package->ecl-package sbcl-postmodern))
8877 (arguments
8878 `(#:tests? #f
8879 #:asd-systems '("postmodern"
8880 "simple-date/postgres-glue")
8881 #:phases
8882 (modify-phases %standard-phases
8883 (add-after 'unpack 'fix-build
8884 (lambda _
8885 (substitute* "cl-postgres.asd"
8886 (("\\) \"usocket\"")
8887 " :ecl) \"usocket\""))
8888 #t)))))))
8889
8890 (define-public sbcl-dbi
8891 ;; Master includes a breaking change which other packages depend on since
8892 ;; Quicklisp decided to follow it:
8893 ;; https://github.com/fukamachi/cl-dbi/commit/31c46869722f77fd5292a81b5b101f1347d7fce1
8894 (let ((commit "31c46869722f77fd5292a81b5b101f1347d7fce1"))
8895 (package
8896 (name "sbcl-dbi")
8897 (version (git-version "0.9.4" "1" commit))
8898 (source
8899 (origin
8900 (method git-fetch)
8901 (uri (git-reference
8902 (url "https://github.com/fukamachi/cl-dbi")
8903 (commit commit)))
8904 (file-name (git-file-name name version))
8905 (sha256
8906 (base32 "0r3n4rw12qqxad0cryym2ibm4ddl49gbq4ra227afibsr43nw5k3"))))
8907 (build-system asdf-build-system/sbcl)
8908 (native-inputs
8909 `(("rove" ,sbcl-rove)
8910 ("trivial-types" ,sbcl-trivial-types)))
8911 (inputs
8912 `(("bordeaux-threads" ,sbcl-bordeaux-threads)
8913 ("cl-mysql" ,sbcl-cl-mysql)
8914 ("cl-sqlite" ,sbcl-cl-sqlite)
8915 ("closer-mop" ,sbcl-closer-mop)
8916 ("postmodern" ,sbcl-postmodern)
8917 ("split-sequence" ,sbcl-split-sequence)
8918 ("trivial-garbage" ,sbcl-trivial-garbage)))
8919 (arguments
8920 `(#:asd-systems '("dbi"
8921 "dbd-mysql"
8922 "dbd-postgres"
8923 "dbd-sqlite3")))
8924 (synopsis "Database independent interface for Common Lisp")
8925 (description
8926 "@code{dbi} is a Common Lisp library providing a database independent
8927 interface for MySQL, PostgreSQL and SQLite.")
8928 (home-page "https://github.com/fukamachi/cl-dbi")
8929 (license license:llgpl))))
8930
8931 (define-public cl-dbi
8932 (sbcl-package->cl-source-package sbcl-dbi))
8933
8934 (define-public ecl-dbi
8935 (sbcl-package->ecl-package sbcl-dbi))
8936
8937 (define-public sbcl-uffi
8938 (package
8939 (name "sbcl-uffi")
8940 (version "2.1.2")
8941 (source
8942 (origin
8943 (method git-fetch)
8944 (uri (git-reference
8945 (url "http://git.kpe.io/uffi.git")
8946 (commit (string-append "v" version))))
8947 (file-name (git-file-name name version))
8948 (sha256
8949 (base32 "1hqszvz0a3wk4s9faa83sc3vjxcb5rxmjclyr17yzwg55z733kry"))))
8950 (build-system asdf-build-system/sbcl)
8951 (arguments
8952 `(#:tests? #f ; TODO: Fix use of deprecated ASDF functions
8953 #:asd-files '("uffi.asd")
8954 #:phases
8955 (modify-phases %standard-phases
8956 (add-after 'unpack 'fix-permissions
8957 (lambda _
8958 (make-file-writable "doc/html.tar.gz")
8959 #t)))))
8960 (synopsis "Universal foreign function library for Common Lisp")
8961 (description
8962 "UFFI provides a universal foreign function interface (FFI)
8963 for Common Lisp.")
8964 (home-page "http://quickdocs.org/uffi/")
8965 (license license:llgpl)))
8966
8967 (define-public cl-uffi
8968 (package
8969 (inherit (sbcl-package->cl-source-package sbcl-uffi))
8970 (arguments
8971 `(#:phases
8972 ;; asdf-build-system/source has its own phases and does not inherit
8973 ;; from asdf-build-system/sbcl phases.
8974 (modify-phases %standard-phases/source
8975 ;; Already done in SBCL package.
8976 (delete 'reset-gzip-timestamps))))))
8977
8978 (define-public sbcl-clsql
8979 (package
8980 (name "sbcl-clsql")
8981 (version "6.7.0")
8982 (source
8983 (origin
8984 (method git-fetch)
8985 (uri (git-reference
8986 (url "http://git.kpe.io/clsql.git")
8987 (commit (string-append "v" version))))
8988 (file-name (git-file-name name version))
8989 (sha256
8990 (base32 "1v1k3s5bsy3lgd9gk459bzpb1r0kdjda25s29samxw4gsgf1fqvp"))
8991 (snippet
8992 '(begin
8993 ;; Remove precompiled libraries.
8994 (delete-file "db-mysql/clsql_mysql.dll")
8995 (delete-file "uffi/clsql_uffi.dll")
8996 (delete-file "uffi/clsql_uffi.lib")
8997 #t))))
8998 (build-system asdf-build-system/sbcl)
8999 (native-inputs
9000 `(("rt" ,sbcl-rt)))
9001 (inputs
9002 `(("cffi" ,sbcl-cffi)
9003 ("md5" ,sbcl-md5)
9004 ("mysql" ,mysql)
9005 ("postgresql" ,postgresql)
9006 ("postmodern" ,sbcl-postmodern)
9007 ("sqlite" ,sqlite)
9008 ("uffi" ,sbcl-uffi)
9009 ("zlib" ,zlib)))
9010 (arguments
9011 `(#:asd-files '("clsql.asd"
9012 "clsql-uffi.asd"
9013 "clsql-sqlite3.asd"
9014 "clsql-postgresql.asd"
9015 "clsql-postgresql-socket3.asd"
9016 "clsql-mysql.asd")
9017 #:asd-systems '("clsql"
9018 "clsql-sqlite3"
9019 "clsql-postgresql"
9020 "clsql-postgresql-socket3"
9021 "clsql-mysql")
9022 #:phases
9023 (modify-phases %standard-phases
9024 (add-after 'unpack 'fix-permissions
9025 (lambda _
9026 (make-file-writable "doc/html.tar.gz")
9027 #t))
9028 (add-after 'unpack 'fix-build
9029 (lambda _
9030 (substitute* "clsql-uffi.asd"
9031 (("\\(:version uffi \"2.0\"\\)")
9032 "uffi"))
9033 (substitute* "db-postgresql/postgresql-api.lisp"
9034 (("\\(data :cstring\\)")
9035 "(data :string)"))
9036 #t))
9037 (add-after 'unpack 'fix-paths
9038 (lambda* (#:key inputs outputs #:allow-other-keys)
9039 (substitute* "db-sqlite3/sqlite3-loader.lisp"
9040 (("libsqlite3")
9041 (string-append (assoc-ref inputs "sqlite")
9042 "/lib/libsqlite3")))
9043 (substitute* "db-postgresql/postgresql-loader.lisp"
9044 (("libpq")
9045 (string-append (assoc-ref inputs "postgresql")
9046 "/lib/libpq")))
9047 (let ((lib (string-append "#p\""
9048 (assoc-ref outputs "out")
9049 "/lib/\"")))
9050 (substitute* "clsql-mysql.asd"
9051 (("#p\"/usr/lib/clsql/clsql_mysql\\.so\"")
9052 lib))
9053 (substitute* "db-mysql/mysql-loader.lisp"
9054 (("libmysqlclient" all)
9055 (string-append (assoc-ref inputs "mysql") "/lib/" all))
9056 (("clsql-mysql-system::\\*library-file-dir\\*")
9057 lib)))
9058 #t))
9059 (add-before 'build 'build-helper-library
9060 (lambda* (#:key inputs outputs #:allow-other-keys)
9061 (let* ((mysql (assoc-ref inputs "mysql"))
9062 (inc-dir (string-append mysql "/include/mysql"))
9063 (lib-dir (string-append mysql "/lib"))
9064 (shared-lib-dir (string-append (assoc-ref outputs "out")
9065 "/lib"))
9066 (shared-lib (string-append shared-lib-dir
9067 "/clsql_mysql.so")))
9068 (mkdir-p shared-lib-dir)
9069 (invoke "gcc" "-fPIC" "-shared"
9070 "-I" inc-dir
9071 "db-mysql/clsql_mysql.c"
9072 "-Wl,-soname=clsql_mysql"
9073 "-L" lib-dir "-lmysqlclient" "-lz"
9074 "-o" shared-lib)
9075 #t)))
9076 (add-after 'unpack 'fix-tests
9077 (lambda _
9078 (substitute* "clsql.asd"
9079 (("clsql-tests :force t")
9080 "clsql-tests"))
9081 #t)))))
9082 (synopsis "Common Lisp SQL Interface library")
9083 (description
9084 "@code{clsql} is a Common Lisp interface to SQL RDBMS based on the
9085 Xanalys CommonSQL interface for Lispworks. It provides low-level database
9086 interfaces as well as a functional and an object oriented interface.")
9087 (home-page "http://clsql.kpe.io/")
9088 (license license:llgpl)))
9089
9090 (define-public cl-clsql
9091 (package
9092 (inherit (sbcl-package->cl-source-package sbcl-clsql))
9093 (native-inputs
9094 `(("rt" ,cl-rt)))
9095 (inputs
9096 `(("mysql" ,mysql)
9097 ("postgresql" ,postgresql)
9098 ("sqlite" ,sqlite)
9099 ("zlib" ,zlib)))
9100 (propagated-inputs
9101 `(("cffi" ,cl-cffi)
9102 ("md5" ,cl-md5)
9103 ("postmodern" ,cl-postmodern)
9104 ("uffi" ,cl-uffi)))
9105 (arguments
9106 `(#:phases
9107 ;; asdf-build-system/source has its own phases and does not inherit
9108 ;; from asdf-build-system/sbcl phases.
9109 (modify-phases %standard-phases/source
9110 (add-after 'unpack 'fix-permissions
9111 (lambda _
9112 (make-file-writable "doc/html.tar.gz")
9113 #t)))))))
9114
9115 (define-public ecl-clsql
9116 (let ((pkg (sbcl-package->ecl-package sbcl-clsql)))
9117 (package
9118 (inherit pkg)
9119 (inputs
9120 (alist-delete "uffi" (package-inputs pkg)))
9121 (arguments
9122 (substitute-keyword-arguments (package-arguments pkg)
9123 ((#:asd-files asd-files '())
9124 `(cons "clsql-cffi.asd" ,asd-files)))))))
9125
9126 (define-public sbcl-sycamore
9127 (let ((commit "fd2820fec165ad514493426dea209728f64e6d18"))
9128 (package
9129 (name "sbcl-sycamore")
9130 (version "0.0.20120604")
9131 (source
9132 (origin
9133 (method git-fetch)
9134 (uri (git-reference
9135 (url "https://github.com/ndantam/sycamore/")
9136 (commit commit)))
9137 (file-name (git-file-name name version))
9138 (sha256
9139 (base32 "00bv1aj89q5vldmq92zp2364jq312zjq2mbd3iyz1s2b4widzhl7"))))
9140 (build-system asdf-build-system/sbcl)
9141 (inputs
9142 `(("alexandria" ,sbcl-alexandria)
9143 ("cl-ppcre" ,sbcl-cl-ppcre)))
9144 (synopsis "Purely functional data structure library in Common Lisp")
9145 (description
9146 "Sycamore is a fast, purely functional data structure library in Common Lisp.
9147 If features:
9148
9149 @itemize
9150 @item Fast, purely functional weight-balanced binary trees.
9151 @item Leaf nodes are simple-vectors, greatly reducing tree height.
9152 @item Interfaces for tree Sets and Maps (dictionaries).
9153 @item Ropes.
9154 @item Purely functional pairing heaps.
9155 @item Purely functional amortized queue.
9156 @end itemize\n")
9157 (home-page "http://ndantam.github.io/sycamore/")
9158 (license license:bsd-3))))
9159
9160 (define-public cl-sycamore
9161 (sbcl-package->cl-source-package sbcl-sycamore))
9162
9163 (define-public ecl-sycamore
9164 (sbcl-package->ecl-package sbcl-sycamore))
9165
9166 (define-public sbcl-trivial-package-local-nicknames
9167 (package
9168 (name "sbcl-trivial-package-local-nicknames")
9169 (version "0.2")
9170 (home-page "https://github.com/phoe/trivial-package-local-nicknames")
9171 (source
9172 (origin
9173 (method git-fetch)
9174 (uri (git-reference
9175 (url home-page)
9176 (commit "16b7ad4c2b120f50da65154191f468ea5598460e")))
9177 (file-name (git-file-name name version))
9178 (sha256
9179 (base32 "18qc27xkjzdcqrilpk3pm7djldwq5rm3ggd5h9cr8hqcd54i2fqg"))))
9180 (build-system asdf-build-system/sbcl)
9181 (synopsis "Common Lisp compatibility library for package local nicknames")
9182 (description
9183 "This library is a portable compatibility layer around package local nicknames (PLN).
9184 This was done so there is a portability library for the PLN API not included
9185 in DEFPACKAGE.")
9186 (license license:unlicense)))
9187
9188 (define-public cl-trivial-package-local-nicknames
9189 (sbcl-package->cl-source-package sbcl-trivial-package-local-nicknames))
9190
9191 (define-public ecl-trivial-package-local-nicknames
9192 (sbcl-package->ecl-package sbcl-trivial-package-local-nicknames))
9193
9194 (define-public sbcl-enchant
9195 (let ((commit "6af162a7bf10541cbcfcfa6513894900329713fa"))
9196 (package
9197 (name "sbcl-enchant")
9198 (version (git-version "0.0.0" "1" commit))
9199 (home-page "https://github.com/tlikonen/cl-enchant")
9200 (source
9201 (origin
9202 (method git-fetch)
9203 (uri (git-reference
9204 (url home-page)
9205 (commit commit)))
9206 (file-name (git-file-name name version))
9207 (sha256
9208 (base32 "19yh5ihirzi1d8xqy1cjqipzd6ly3245cfxa5s9xx496rryz0s01"))))
9209 (build-system asdf-build-system/sbcl)
9210 (inputs
9211 `(("enchant" ,enchant)
9212 ("cffi" ,sbcl-cffi)))
9213 (arguments
9214 `(#:phases
9215 (modify-phases %standard-phases
9216 (add-after 'unpack 'fix-paths
9217 (lambda* (#:key inputs #:allow-other-keys)
9218 (substitute* "load-enchant.lisp"
9219 (("libenchant")
9220 (string-append
9221 (assoc-ref inputs "enchant") "/lib/libenchant-2"))))))))
9222 (synopsis "Common Lisp interface for the Enchant spell-checker library")
9223 (description
9224 "Enchant is a Common Lisp interface for the Enchant spell-checker
9225 library. The Enchant library is a generic spell-checker library which uses
9226 other spell-checkers transparently as back-end. The library supports the
9227 multiple checkers, including Aspell and Hunspell.")
9228 (license license:public-domain))))
9229
9230 (define-public cl-enchant
9231 (sbcl-package->cl-source-package sbcl-enchant))
9232
9233 (define-public ecl-enchant
9234 (sbcl-package->ecl-package sbcl-enchant))
9235
9236 (define-public sbcl-cl-change-case
9237 (let ((commit "5ceff2a5f8bd845b6cb510c6364176b27a238fd3"))
9238 (package
9239 (name "sbcl-cl-change-case")
9240 (version (git-version "0.1.0" "1" commit))
9241 (home-page "https://github.com/rudolfochrist/cl-change-case")
9242 (source
9243 (origin
9244 (method git-fetch)
9245 (uri (git-reference
9246 (url home-page)
9247 (commit commit)))
9248 (file-name (git-file-name name version))
9249 (sha256
9250 (base32 "1afyglglk9z3yg8gylcl301bl2r8vq3sllyznzj9s5xi5gs6qyf2"))))
9251 (build-system asdf-build-system/sbcl)
9252 (inputs
9253 `(("cl-ppcre" ,sbcl-cl-ppcre)
9254 ("cl-ppcre-unicode" ,sbcl-cl-ppcre-unicode)))
9255 (native-inputs
9256 `(("fiveam" ,sbcl-fiveam)))
9257 (arguments
9258 '(;; FIXME: Test pass but phase fails with 'Component
9259 ;; "cl-change-case-test" not found, required by'.
9260 #:tests? #f
9261 #:test-asd-file "cl-change-case-test.asd"))
9262 (synopsis "Convert Common Lisp strings between camelCase, PascalCase and more")
9263 (description
9264 "@code{cl-change-case} is library to convert strings between camelCase,
9265 PascalCase, snake_case, param-case, CONSTANT_CASE and more.")
9266 (license license:llgpl))))
9267
9268 (define-public cl-change-case
9269 (sbcl-package->cl-source-package sbcl-cl-change-case))
9270
9271 (define-public ecl-cl-change-case
9272 (sbcl-package->ecl-package sbcl-cl-change-case))
9273
9274 (define-public sbcl-moptilities
9275 (let ((commit "a436f16b357c96b82397ec018ea469574c10dd41"))
9276 (package
9277 (name "sbcl-moptilities")
9278 (version (git-version "0.3.13" "1" commit))
9279 (home-page "https://github.com/gwkkwg/moptilities/")
9280 (source
9281 (origin
9282 (method git-fetch)
9283 (uri (git-reference
9284 (url home-page)
9285 (commit commit)))
9286 (file-name (git-file-name name version))
9287 (sha256
9288 (base32 "1q12bqjbj47lx98yim1kfnnhgfhkl80102fkgp9pdqxg0fp6g5fc"))))
9289 (build-system asdf-build-system/sbcl)
9290 (inputs
9291 `(("closer-mop" ,sbcl-closer-mop)))
9292 (native-inputs
9293 `(("lift" ,sbcl-lift)))
9294 (arguments
9295 `(#:phases
9296 (modify-phases %standard-phases
9297 (add-after 'unpack 'fix-tests
9298 (lambda _
9299 (substitute* "lift-standard.config"
9300 ((":relative-to lift-test")
9301 ":relative-to moptilities-test"))
9302 #t)))))
9303 (synopsis "Compatibility layer for Common Lisp MOP implementation differences")
9304 (description
9305 "MOP utilities provide a common interface between Lisps and make the
9306 MOP easier to use.")
9307 (license license:expat))))
9308
9309 (define-public cl-moptilities
9310 (sbcl-package->cl-source-package sbcl-moptilities))
9311
9312 (define-public sbcl-osicat
9313 (let ((commit "de0c18a367eedc857e1902a7319828af072a0d97"))
9314 (package
9315 (name "sbcl-osicat")
9316 (version (git-version "0.7.0" "1" commit))
9317 (home-page "http://www.common-lisp.net/project/osicat/")
9318 (source
9319 (origin
9320 (method git-fetch)
9321 (uri (git-reference
9322 (url "https://github.com/osicat/osicat")
9323 (commit commit)))
9324 (file-name (git-file-name name version))
9325 (sha256
9326 (base32 "15viw5pi5sa7qq9b4n2rr3dj2jkqr180rh9z1lh8w3rgl42i2adc"))))
9327 (build-system asdf-build-system/sbcl)
9328 (inputs
9329 `(("alexandria" ,sbcl-alexandria)
9330 ("cffi" ,sbcl-cffi)
9331 ("trivial-features" ,sbcl-trivial-features)))
9332 (native-inputs
9333 `(("rt" ,sbcl-rt)))
9334 (synopsis "Operating system interface for Common Lisp")
9335 (description
9336 "Osicat is a lightweight operating system interface for Common Lisp on
9337 Unix-platforms. It is not a POSIX-style API, but rather a simple lispy
9338 accompaniment to the standard ANSI facilities.")
9339 (license license:expat))))
9340
9341 (define-public cl-osicat
9342 (sbcl-package->cl-source-package sbcl-osicat))
9343
9344 (define-public ecl-osicat
9345 (sbcl-package->ecl-package sbcl-osicat))
9346
9347 (define-public sbcl-clx-xembed
9348 (let ((commit "a5c4b844d31ee68ffa58c933cc1cdddde6990743")
9349 (revision "1"))
9350 (package
9351 (name "sbcl-clx-xembed")
9352 (version (git-version "0.1" revision commit))
9353 (home-page "https://github.com/laynor/clx-xembed")
9354 (source
9355 (origin
9356 (method git-fetch)
9357 (uri (git-reference
9358 (url "https://github.com/laynor/clx-xembed")
9359 (commit commit)))
9360 (file-name (git-file-name name version))
9361 (sha256
9362 (base32 "1abx4v36ycmfjdwpjk4hh8058ya8whwia7ds9vd96q2qsrs57f12"))))
9363 (build-system asdf-build-system/sbcl)
9364 (arguments
9365 `(#:asd-systems '("xembed")))
9366 (inputs
9367 `(("sbcl-clx" ,sbcl-clx)))
9368 (synopsis "CL(x) xembed protocol implementation ")
9369 (description "CL(x) xembed protocol implementation")
9370 ;; MIT License
9371 (license license:expat))))
9372
9373 (define-public cl-clx-xembed
9374 (sbcl-package->cl-source-package sbcl-clx-xembed))
9375
9376 (define-public ecl-clx-xembed
9377 (sbcl-package->ecl-package sbcl-clx-xembed))
9378
9379 (define-public sbcl-quantile-estimator
9380 (package
9381 (name "sbcl-quantile-estimator")
9382 (version "0.0.1")
9383 (source
9384 (origin
9385 (method git-fetch)
9386 (uri (git-reference
9387 (url "https://github.com/deadtrickster/quantile-estimator.cl")
9388 (commit "84d0ea405d793f5e808c68c4ddaf25417b0ff8e5")))
9389 (file-name (git-file-name name version))
9390 (sha256
9391 (base32
9392 "0rlswkf0siaabsvvch3dgxmg45fw5w8pd9b7ri2w7a298aya52z9"))))
9393 (build-system asdf-build-system/sbcl)
9394 (arguments
9395 '(#:asd-files '("quantile-estimator.asd")))
9396 (inputs
9397 `(("alexandria" ,sbcl-alexandria)))
9398 (home-page "https://github.com/deadtrickster/quantile-estimator.cl")
9399 (synopsis
9400 "Effective computation of biased quantiles over data streams")
9401 (description
9402 "Common Lisp implementation of Graham Cormode and S.
9403 Muthukrishnan's Effective Computation of Biased Quantiles over Data
9404 Streams in ICDE’05.")
9405 (license license:expat)))
9406
9407 (define-public cl-quantile-estimator
9408 (sbcl-package->cl-source-package sbcl-quantile-estimator))
9409
9410 (define-public ecl-quantile-estimator
9411 (sbcl-package->ecl-package sbcl-quantile-estimator))
9412
9413 (define-public sbcl-prometheus
9414 (package
9415 (name "sbcl-prometheus")
9416 (version "0.4.1")
9417 (source
9418 (origin
9419 (method git-fetch)
9420 (uri (git-reference
9421 (url "https://github.com/deadtrickster/prometheus.cl")
9422 (commit "7352b92296996ff383503e19bdd3bcea30409a15")))
9423 (file-name (git-file-name name version))
9424 (sha256
9425 (base32
9426 "0fzczls2kfgdx18pja4lqxjrz72i583185d8nq0pb3s331hhzh0z"))))
9427 (build-system asdf-build-system/sbcl)
9428 (inputs
9429 `(("alexandria" ,sbcl-alexandria)
9430 ("bordeaux-threads" ,sbcl-bordeaux-threads)
9431 ("cffi" ,sbcl-cffi)
9432 ("cl-fad" ,sbcl-cl-fad)
9433 ("cl-ppcre" ,sbcl-cl-ppcre)
9434 ("drakma" ,sbcl-drakma)
9435 ("hunchentoot" ,sbcl-hunchentoot)
9436 ("local-time" ,sbcl-local-time)
9437 ("quantile-estimator" ,sbcl-quantile-estimator)
9438 ("salza2" ,sbcl-salza2)
9439 ("split-sequence" ,sbcl-split-sequence)
9440 ("trivial-utf-8" ,sbcl-trivial-utf-8)))
9441 (arguments
9442 '(#:asd-files '("prometheus.asd"
9443 "prometheus.collectors.sbcl.asd"
9444 "prometheus.collectors.process.asd"
9445 "prometheus.formats.text.asd"
9446 "prometheus.exposers.hunchentoot.asd"
9447 "prometheus.pushgateway.asd")
9448 #:asd-systems '("prometheus"
9449 "prometheus.collectors.sbcl"
9450 "prometheus.collectors.process"
9451 "prometheus.formats.text"
9452 "prometheus.exposers.hunchentoot"
9453 "prometheus.pushgateway")))
9454 (home-page "https://github.com/deadtrickster/prometheus.cl")
9455 (synopsis "Prometheus.io Common Lisp client")
9456 (description "Prometheus.io Common Lisp client.")
9457 (license license:expat)))
9458
9459 (define-public cl-prometheus
9460 (sbcl-package->cl-source-package sbcl-prometheus))
9461
9462 (define-public ecl-prometheus
9463 (sbcl-package->ecl-package sbcl-prometheus))
9464
9465 (define-public sbcl-uuid
9466 (let ((commit "e7d6680c3138385c0708f7aaf0c96622eeb140e8"))
9467 (package
9468 (name "sbcl-uuid")
9469 (version (git-version "2012.12.26" "1" commit))
9470 (source
9471 (origin
9472 (method git-fetch)
9473 (uri (git-reference
9474 (url "https://github.com/dardoria/uuid")
9475 (commit commit)))
9476 (file-name (git-file-name name version))
9477 (sha256
9478 (base32
9479 "0jnyp2kibcf5cwi60l6grjrj8wws9chasjvsw7xzwyym2lyid46f"))))
9480 (build-system asdf-build-system/sbcl)
9481 (inputs
9482 `(("ironclad" ,sbcl-ironclad)
9483 ("trivial-utf-8" ,sbcl-trivial-utf-8)))
9484 (home-page "https://github.com/dardoria/uuid")
9485 (synopsis
9486 "Common Lisp implementation of UUIDs according to RFC4122")
9487 (description
9488 "Common Lisp implementation of UUIDs according to RFC4122.")
9489 (license license:llgpl))))
9490
9491 (define-public cl-uuid
9492 (sbcl-package->cl-source-package sbcl-uuid))
9493
9494 (define-public ecl-uuid
9495 (sbcl-package->ecl-package sbcl-uuid))
9496
9497 (define-public sbcl-dissect
9498 (let ((commit "cffd38479f0e64e805f167bbdb240b783ecc8d45"))
9499 (package
9500 (name "sbcl-dissect")
9501 (version (git-version "1.0.0" "1" commit))
9502 (source
9503 (origin
9504 (method git-fetch)
9505 (uri (git-reference
9506 (url "https://github.com/Shinmera/dissect")
9507 (commit commit)))
9508 (file-name (git-file-name name version))
9509 (sha256
9510 (base32
9511 "0rmsjkgjl90gl6ssvgd60hb0d5diyhsiyypvw9hbc0ripvbmk5r5"))))
9512 (build-system asdf-build-system/sbcl)
9513 (inputs
9514 `(("cl-ppcre" ,sbcl-cl-ppcre)))
9515 (home-page "https://shinmera.github.io/dissect/")
9516 (synopsis
9517 "Introspection library for the call stack and restarts")
9518 (description
9519 "Dissect is a small Common Lisp library for introspecting the call stack
9520 and active restarts.")
9521 (license license:zlib))))
9522
9523 (define-public cl-dissect
9524 (sbcl-package->cl-source-package sbcl-dissect))
9525
9526 (define-public ecl-dissect
9527 (sbcl-package->ecl-package sbcl-dissect))
9528
9529 (define-public sbcl-rove
9530 (package
9531 (name "sbcl-rove")
9532 (version "0.9.6")
9533 (source
9534 (origin
9535 (method git-fetch)
9536 (uri (git-reference
9537 (url "https://github.com/fukamachi/rove")
9538 (commit "f3695db08203bf26f3b861dc22ac0f4257d3ec21")))
9539 (file-name (git-file-name name version))
9540 (sha256
9541 (base32
9542 "07ala4l2fncxf540fzxj3h5mhi9i4wqllhj0rqk8m2ljl5zbz89q"))))
9543 (build-system asdf-build-system/sbcl)
9544 (inputs
9545 `(("bordeaux-threads" ,sbcl-bordeaux-threads)
9546 ("dissect" ,sbcl-dissect)
9547 ("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
9548 (home-page "https://github.com/fukamachi/rove")
9549 (synopsis
9550 "Yet another common lisp testing library")
9551 (description
9552 "Rove is a unit testing framework for Common Lisp applications.
9553 This is intended to be a successor of Prove.")
9554 (license license:bsd-3)))
9555
9556 (define-public cl-rove
9557 (sbcl-package->cl-source-package sbcl-rove))
9558
9559 (define-public ecl-rove
9560 (sbcl-package->ecl-package sbcl-rove))
9561
9562 (define-public sbcl-exponential-backoff
9563 (let ((commit "8d9e8444d8b3184a524c12ce3449f91613ab714f"))
9564 (package
9565 (name "sbcl-exponential-backoff")
9566 (version (git-version "0" "1" commit))
9567 (source
9568 (origin
9569 (method git-fetch)
9570 (uri (git-reference
9571 (url "https://github.com/death/exponential-backoff")
9572 (commit commit)))
9573 (file-name (git-file-name name version))
9574 (sha256
9575 (base32
9576 "1389hm9hxv85s0125ja4js1bvh8ay4dsy9q1gaynjv27ynik6gmv"))))
9577 (build-system asdf-build-system/sbcl)
9578 (home-page "https://github.com/death/exponential-backoff")
9579 (synopsis "Exponential backoff algorithm in Common Lisp")
9580 (description
9581 "An implementation of the exponential backoff algorithm in Common Lisp.
9582 Inspired by the implementation found in Chromium. Read the header file to
9583 learn about each of the parameters.")
9584 (license license:expat))))
9585
9586 (define-public cl-exponential-backoff
9587 (sbcl-package->cl-source-package sbcl-exponential-backoff))
9588
9589 (define-public ecl-exponential-backoff
9590 (sbcl-package->ecl-package sbcl-exponential-backoff))
9591
9592 (define-public sbcl-sxql
9593 (let ((commit "5aa8b739492c5829e8623432b5d46482263990e8"))
9594 (package
9595 (name "sbcl-sxql")
9596 (version (git-version "0.1.0" "1" commit))
9597 (source
9598 (origin
9599 (method git-fetch)
9600 (uri (git-reference
9601 (url "https://github.com/fukamachi/sxql")
9602 (commit commit)))
9603 (file-name (git-file-name name version))
9604 (sha256
9605 (base32
9606 "0k25p6w2ld9cn8q8s20lda6yjfyp4q89219sviayfgixnj27avnj"))))
9607 (build-system asdf-build-system/sbcl)
9608 (arguments
9609 `(#:test-asd-file "sxql-test.asd"))
9610 (inputs
9611 `(("alexandria" ,sbcl-alexandria)
9612 ("cl-syntax" ,sbcl-cl-syntax)
9613 ("iterate" ,sbcl-iterate)
9614 ("optima" ,sbcl-optima)
9615 ("split-sequence" ,sbcl-split-sequence)
9616 ("trivial-types" ,sbcl-trivial-types)))
9617 (native-inputs
9618 `(("prove" ,sbcl-prove)))
9619 (home-page "https://github.com/fukamachi/sxql")
9620 (synopsis "SQL generator for Common Lisp")
9621 (description "SQL generator for Common Lisp.")
9622 (license license:bsd-3))))
9623
9624 (define-public cl-sxql
9625 (sbcl-package->cl-source-package sbcl-sxql))
9626
9627 (define-public ecl-sxql
9628 (sbcl-package->ecl-package sbcl-sxql))
9629
9630 (define-public sbcl-1am
9631 (let ((commit "8b1da94eca4613fd8a20bdf63f0e609e379b0ba5"))
9632 (package
9633 (name "sbcl-1am")
9634 (version (git-version "0.0" "1" commit))
9635 (source
9636 (origin
9637 (method git-fetch)
9638 (uri (git-reference
9639 (url "https://github.com/lmj/1am")
9640 (commit commit)))
9641 (file-name (git-file-name name version))
9642 (sha256
9643 (base32
9644 "05ss4nz1jb9kb796295482b62w5cj29msfj8zis33sp2rw2vmv2g"))))
9645 (build-system asdf-build-system/sbcl)
9646 (arguments
9647 `(#:asd-systems '("1am")))
9648 (home-page "https://github.com/lmj/1am")
9649 (synopsis "Minimal testing framework for Common Lisp")
9650 (description "A minimal testing framework for Common Lisp.")
9651 (license license:expat))))
9652
9653 (define-public cl-1am
9654 (sbcl-package->cl-source-package sbcl-1am))
9655
9656 (define-public ecl-1am
9657 (sbcl-package->ecl-package sbcl-1am))
9658
9659 (define-public sbcl-cl-ascii-table
9660 (let ((commit "d9f5e774a56fad1b416e4dadb8f8a5b0e84094e2")
9661 (revision "1"))
9662 (package
9663 (name "sbcl-cl-ascii-table")
9664 (version (git-version "0.0.0" revision commit))
9665 (source
9666 (origin
9667 (method git-fetch)
9668 (uri (git-reference
9669 (url "https://github.com/telephil/cl-ascii-table")
9670 (commit commit)))
9671 (file-name (git-file-name name version))
9672 (sha256
9673 (base32 "125fdif9sgl7k0ngjhxv0wjas2q27d075025hvj2rx1b1x948z4s"))))
9674 (build-system asdf-build-system/sbcl)
9675 (synopsis "Library to make ascii-art tables")
9676 (description
9677 "This is a Common Lisp library to present tabular data in ascii-art
9678 tables.")
9679 (home-page "https://github.com/telephil/cl-ascii-table")
9680 (license license:expat))))
9681
9682 (define-public cl-ascii-table
9683 (sbcl-package->cl-source-package sbcl-cl-ascii-table))
9684
9685 (define-public ecl-cl-ascii-table
9686 (sbcl-package->ecl-package sbcl-cl-ascii-table))
9687
9688 (define-public sbcl-cl-rdkafka
9689 (package
9690 (name "sbcl-cl-rdkafka")
9691 (version "1.0.2")
9692 (source
9693 (origin
9694 (method git-fetch)
9695 (uri (git-reference
9696 (url "https://github.com/SahilKang/cl-rdkafka")
9697 (commit (string-append "v" version))))
9698 (file-name (git-file-name name version))
9699 (sha256
9700 (base32
9701 "1qcgfd4h7syilzmrmd4z2vknbvawda3q3ykw7xm8n381syry4g82"))))
9702 (build-system asdf-build-system/sbcl)
9703 (arguments
9704 `(#:tests? #f ; Attempts to connect to locally running Kafka
9705 #:phases
9706 (modify-phases %standard-phases
9707 (add-after 'unpack 'fix-paths
9708 (lambda* (#:key inputs #:allow-other-keys)
9709 (substitute* "src/low-level/librdkafka-bindings.lisp"
9710 (("librdkafka" all)
9711 (string-append (assoc-ref inputs "librdkafka") "/lib/"
9712 all))))))))
9713 (inputs
9714 `(("bordeaux-threads" ,sbcl-bordeaux-threads)
9715 ("cffi" ,sbcl-cffi)
9716 ("librdkafka" ,librdkafka)
9717 ("lparallel" ,sbcl-lparallel)
9718 ("trivial-garbage" ,sbcl-trivial-garbage)))
9719 (home-page "https://github.com/SahilKang/cl-rdkafka")
9720 (synopsis "Common Lisp client library for Apache Kafka")
9721 (description "A Common Lisp client library for Apache Kafka.")
9722 (license license:gpl3)))
9723
9724 (define-public cl-rdkafka
9725 (sbcl-package->cl-source-package sbcl-cl-rdkafka))
9726
9727 (define-public ecl-cl-rdkafka
9728 (sbcl-package->ecl-package sbcl-cl-rdkafka))
9729
9730 (define-public sbcl-acclimation
9731 (let ((commit "4d51150902568fcd59335f4cc4cfa022df6116a5"))
9732 (package
9733 (name "sbcl-acclimation")
9734 (version (git-version "0.0.0" "1" commit))
9735 (source
9736 (origin
9737 (method git-fetch)
9738 (uri (git-reference
9739 (url "https://github.com/robert-strandh/Acclimation")
9740 (commit commit)))
9741 (file-name (git-file-name name version))
9742 (sha256
9743 (base32
9744 "1aw7rarjl8ai57h0jxnp9hr3dka7qrs55mmbl1p6rhd6xj8mp9wq"))))
9745 (build-system asdf-build-system/sbcl)
9746 (home-page "https://github.com/robert-strandh/Acclimation")
9747 (synopsis "Internationalization library for Common Lisp")
9748 (description "This project is meant to provide tools for
9749 internationalizing Common Lisp programs.
9750
9751 One important aspect of internationalization is of course the language used in
9752 error messages, documentation strings, etc. But with this project we provide
9753 tools for all other aspects of internationalization as well, including dates,
9754 weight, temperature, names of physical quantitites, etc.")
9755 (license license:bsd-2))))
9756
9757 (define-public cl-acclimation
9758 (sbcl-package->cl-source-package sbcl-acclimation))
9759
9760 (define-public ecl-acclimation
9761 (sbcl-package->ecl-package sbcl-acclimation))
9762
9763 (define-public sbcl-clump
9764 (let ((commit "1ea4dbac1cb86713acff9ae58727dd187d21048a"))
9765 (package
9766 (name "sbcl-clump")
9767 (version (git-version "0.0.0" "1" commit))
9768 (source
9769 (origin
9770 (method git-fetch)
9771 (uri (git-reference
9772 (url "https://github.com/robert-strandh/Clump")
9773 (commit commit)))
9774 (file-name (git-file-name name version))
9775 (sha256
9776 (base32
9777 "1639msyagsswj85gc0wd90jgh8588j3qg5q70by9s2brf2q6w4lh"))))
9778 (inputs
9779 `(("acclimation" ,sbcl-acclimation)))
9780 (build-system asdf-build-system/sbcl)
9781 (home-page "https://github.com/robert-strandh/Clump")
9782 (synopsis "Collection of tree implementations for Common Lisp")
9783 (description "The purpose of this library is to provide a collection of
9784 implementations of trees.
9785
9786 In contrast to existing libraries such as cl-containers, it does not impose a
9787 particular use for the trees. Instead, it aims for a stratified design,
9788 allowing client code to choose between different levels of abstraction.
9789
9790 As a consequence of this policy, low-level interfaces are provided where
9791 the concrete representation is exposed, but also high level interfaces
9792 where the trees can be used as search trees or as trees that represent
9793 sequences of objects.")
9794 (license license:bsd-2))))
9795
9796 (define-public cl-clump
9797 (sbcl-package->cl-source-package sbcl-clump))
9798
9799 (define-public ecl-clump
9800 (sbcl-package->ecl-package sbcl-clump))
9801
9802 (define-public sbcl-cluffer
9803 (let ((commit "4aad29c276a58a593064e79972ee4d77cae0af4a"))
9804 (package
9805 (name "sbcl-cluffer")
9806 (version (git-version "0.0.0" "1" commit))
9807 (source
9808 (origin
9809 (method git-fetch)
9810 (uri (git-reference
9811 (url "https://github.com/robert-strandh/cluffer")
9812 (commit commit)))
9813 (file-name (git-file-name name version))
9814 (sha256
9815 (base32
9816 "1bcg13g7qb3dr8z50aihdjqa6miz5ivlc9wsj2csgv1km1mak2kj"))))
9817 (build-system asdf-build-system/sbcl)
9818 (inputs
9819 `(("acclimation" ,sbcl-acclimation)
9820 ("clump" ,sbcl-clump)))
9821 (home-page "https://github.com/robert-strandh/cluffer")
9822 (synopsis "Common Lisp library providing a protocol for text-editor buffers")
9823 (description "Cluffer is a library for representing the buffer of a text
9824 editor. As such, it defines a set of CLOS protocols for client code to
9825 interact with the buffer contents in various ways, and it supplies different
9826 implementations of those protocols for different purposes.")
9827 (license license:bsd-2))))
9828
9829 (define-public cl-cluffer
9830 (sbcl-package->cl-source-package sbcl-cluffer))
9831
9832 (define-public ecl-cluffer
9833 (sbcl-package->ecl-package sbcl-cluffer))
9834
9835 (define-public sbcl-cl-libsvm-format
9836 (let ((commit "3300f84fd8d9f5beafc114f543f9d83417c742fb")
9837 (revision "0"))
9838 (package
9839 (name "sbcl-cl-libsvm-format")
9840 (version (git-version "0.1.0" revision commit))
9841 (source
9842 (origin
9843 (method git-fetch)
9844 (uri (git-reference
9845 (url "https://github.com/masatoi/cl-libsvm-format")
9846 (commit commit)))
9847 (file-name (git-file-name name version))
9848 (sha256
9849 (base32
9850 "0284aj84xszhkhlivaigf9qj855fxad3mzmv3zfr0qzb5k0nzwrg"))))
9851 (build-system asdf-build-system/sbcl)
9852 (native-inputs
9853 `(("prove" ,sbcl-prove)))
9854 (inputs
9855 `(("alexandria" ,sbcl-alexandria)))
9856 (synopsis "LibSVM data format reader for Common Lisp")
9857 (description
9858 "This Common Lisp library provides a fast reader for data in LibSVM
9859 format.")
9860 (home-page "https://github.com/masatoi/cl-libsvm-format")
9861 (license license:expat))))
9862
9863 (define-public cl-libsvm-format
9864 (sbcl-package->cl-source-package sbcl-cl-libsvm-format))
9865
9866 (define-public ecl-cl-libsvm-format
9867 (sbcl-package->ecl-package sbcl-cl-libsvm-format))
9868
9869 (define-public sbcl-cl-online-learning
9870 (let ((commit "fc7a34f4f161cd1c7dd747d2ed8f698947781423")
9871 (revision "0"))
9872 (package
9873 (name "sbcl-cl-online-learning")
9874 (version (git-version "0.5" revision commit))
9875 (source
9876 (origin
9877 (method git-fetch)
9878 (uri (git-reference
9879 (url "https://github.com/masatoi/cl-online-learning")
9880 (commit commit)))
9881 (file-name (git-file-name name version))
9882 (sha256
9883 (base32
9884 "14x95rlg80ay5hv645ki57pqvy12v28hz4k1w0f6bsfi2rmpxchq"))))
9885 (build-system asdf-build-system/sbcl)
9886 (native-inputs
9887 `(("prove" ,sbcl-prove)))
9888 (inputs
9889 `(("cl-libsvm-format" ,sbcl-cl-libsvm-format)
9890 ("cl-store" ,sbcl-cl-store)))
9891 (arguments
9892 `(;; FIXME: Tests pass but then the check phase crashes
9893 #:tests? #f))
9894 (synopsis "Online Machine Learning for Common Lisp")
9895 (description
9896 "This library contains a collection of machine learning algorithms for
9897 online linear classification written in Common Lisp.")
9898 (home-page "https://github.com/masatoi/cl-online-learning")
9899 (license license:expat))))
9900
9901 (define-public cl-online-learning
9902 (sbcl-package->cl-source-package sbcl-cl-online-learning))
9903
9904 (define-public ecl-cl-online-learning
9905 (sbcl-package->ecl-package sbcl-cl-online-learning))
9906
9907 (define-public sbcl-cl-random-forest
9908 (let ((commit "fedb36ce99bb6f4d7e3a7dd6d8b058f331308f91")
9909 (revision "1"))
9910 (package
9911 (name "sbcl-cl-random-forest")
9912 (version (git-version "0.1" revision commit))
9913 (source
9914 (origin
9915 (method git-fetch)
9916 (uri (git-reference
9917 (url "https://github.com/masatoi/cl-random-forest")
9918 (commit commit)))
9919 (file-name (git-file-name name version))
9920 (sha256
9921 (base32
9922 "0wqh4dxy5hrvm14jgyfypwhdw35f24rsksid4blz5a6l2z16rlmq"))))
9923 (build-system asdf-build-system/sbcl)
9924 (native-inputs
9925 `(("prove" ,sbcl-prove)
9926 ("trivial-garbage" ,sbcl-trivial-garbage)))
9927 (inputs
9928 `(("alexandria" ,sbcl-alexandria)
9929 ("cl-libsvm-format" ,sbcl-cl-libsvm-format)
9930 ("cl-online-learning" ,sbcl-cl-online-learning)
9931 ("lparallel" ,sbcl-lparallel)))
9932 (arguments
9933 `(#:tests? #f)) ; The tests download data from the Internet
9934 (synopsis "Random Forest and Global Refinement for Common Lisp")
9935 (description
9936 "CL-random-forest is an implementation of Random Forest for multiclass
9937 classification and univariate regression written in Common Lisp. It also
9938 includes an implementation of Global Refinement of Random Forest.")
9939 (home-page "https://github.com/masatoi/cl-random-forest")
9940 (license license:expat))))
9941
9942 (define-public cl-random-forest
9943 (sbcl-package->cl-source-package sbcl-cl-random-forest))
9944
9945 (define-public ecl-cl-random-forest
9946 (sbcl-package->ecl-package sbcl-cl-random-forest))
9947
9948 (define-public sbcl-bordeaux-fft
9949 (let ((commit "4a1f5600cae59bdabcb32de4ee2d7d73a9450d6e")
9950 (revision "0"))
9951 (package
9952 (name "sbcl-bordeaux-fft")
9953 (version (git-version "1.0.1" revision commit))
9954 (source
9955 (origin
9956 (method git-fetch)
9957 (uri (git-reference
9958 (url "https://github.com/ahefner/bordeaux-fft")
9959 (commit commit)))
9960 (file-name (git-file-name name version))
9961 (sha256
9962 (base32 "0j584w6kq2k6r8lp2i14f9605rxhp3r15s33xs08iz1pndn6iwqf"))))
9963 (build-system asdf-build-system/sbcl)
9964 (home-page "http://vintage-digital.com/hefner/software/bordeaux-fft/")
9965 (synopsis "Fast Fourier Transform for Common Lisp")
9966 (description
9967 "The Bordeaux-FFT library provides a reasonably efficient implementation
9968 of the Fast Fourier Transform and its inverse for complex-valued inputs, in
9969 portable Common Lisp.")
9970 (license license:gpl2+))))
9971
9972 (define-public cl-bordeaux-fft
9973 (sbcl-package->cl-source-package sbcl-bordeaux-fft))
9974
9975 (define-public ecl-bordeaux-fft
9976 (sbcl-package->ecl-package sbcl-bordeaux-fft))
9977
9978 (define-public sbcl-napa-fft3
9979 (let ((commit "f2d9614c7167da327c9ceebefb04ff6eae2d2236")
9980 (revision "0"))
9981 (package
9982 (name "sbcl-napa-fft3")
9983 (version (git-version "0.0.1" revision commit))
9984 (source
9985 (origin
9986 (method git-fetch)
9987 (uri (git-reference
9988 (url "https://github.com/pkhuong/Napa-FFT3")
9989 (commit commit)))
9990 (file-name (git-file-name name version))
9991 (sha256
9992 (base32 "1hxjf599xgwm28gbryy7q96j9ys6hfszmv0qxpr5698hxnhknscp"))))
9993 (build-system asdf-build-system/sbcl)
9994 (home-page "https://github.com/pkhuong/Napa-FFT3")
9995 (synopsis "Fast Fourier Transform routines in Common Lisp")
9996 (description
9997 "Napa-FFT3 provides Discrete Fourier Transform (DFT) routines, but also
9998 buildings blocks to express common operations that involve DFTs: filtering,
9999 convolutions, etc.")
10000 (license license:bsd-3))))
10001
10002 (define-public cl-napa-fft3
10003 (sbcl-package->cl-source-package sbcl-napa-fft3))
10004
10005 (define-public sbcl-cl-tga
10006 (let ((commit "4dc2f7b8a259b9360862306640a07a23d4afaacc")
10007 (revision "0"))
10008 (package
10009 (name "sbcl-cl-tga")
10010 (version (git-version "0.0.0" revision commit))
10011 (source
10012 (origin
10013 (method git-fetch)
10014 (uri (git-reference
10015 (url "https://github.com/fisxoj/cl-tga")
10016 (commit commit)))
10017 (file-name (git-file-name name version))
10018 (sha256
10019 (base32 "03k3npmn0xd3fd2m7vwxph82av2xrfb150imqrinlzqmzvz1v1br"))))
10020 (build-system asdf-build-system/sbcl)
10021 (home-page "https://github.com/fisxoj/cl-tga")
10022 (synopsis "TGA file loader for Common Lisp")
10023 (description
10024 "Cl-tga was written to facilitate loading @emph{.tga} files into OpenGL
10025 programs. It's a very simple library, and, at the moment, only supports
10026 non-RLE encoded forms of the files.")
10027 (license license:expat))))
10028
10029 (define-public cl-tga
10030 (sbcl-package->cl-source-package sbcl-cl-tga))
10031
10032 (define-public ecl-cl-tga
10033 (sbcl-package->ecl-package sbcl-cl-tga))
10034
10035 (define-public sbcl-com.gigamonkeys.binary-data
10036 (let ((commit "22e908976d7f3e2318b7168909f911b4a00963ee")
10037 (revision "0"))
10038 (package
10039 (name "sbcl-com.gigamonkeys.binary-data")
10040 (version (git-version "0.0.0" revision commit))
10041 (source
10042 (origin
10043 (method git-fetch)
10044 (uri (git-reference
10045 (url "https://github.com/gigamonkey/monkeylib-binary-data")
10046 (commit commit)))
10047 (file-name (git-file-name name version))
10048 (sha256
10049 (base32 "072v417vmcnvmyh8ddq9vmwwrizm7zwz9dpzi14qy9nsw8q649zw"))))
10050 (build-system asdf-build-system/sbcl)
10051 (inputs
10052 `(("alexandria" ,sbcl-alexandria)))
10053 (home-page "https://github.com/gigamonkey/monkeylib-binary-data")
10054 (synopsis "Common Lisp library for reading and writing binary data")
10055 (description
10056 "This a Common Lisp library for reading and writing binary data. It is
10057 based on code from chapter 24 of the book @emph{Practical Common Lisp}.")
10058 (license license:bsd-3))))
10059
10060 (define-public cl-com.gigamonkeys.binary-data
10061 (sbcl-package->cl-source-package sbcl-com.gigamonkeys.binary-data))
10062
10063 (define-public ecl-com.gigamonkeys.binary-data
10064 (sbcl-package->ecl-package sbcl-com.gigamonkeys.binary-data))
10065
10066 (define-public sbcl-deflate
10067 (package
10068 (name "sbcl-deflate")
10069 (version "1.0.3")
10070 (source
10071 (origin
10072 (method git-fetch)
10073 (uri (git-reference
10074 (url "https://github.com/pmai/Deflate")
10075 (commit (string-append "release-" version))))
10076 (file-name (git-file-name name version))
10077 (sha256
10078 (base32 "1jpdjnxh6cw2d8hk70r2sxn92is52s9b855irvwkdd777fdciids"))))
10079 (build-system asdf-build-system/sbcl)
10080 (home-page "https://github.com/pmai/Deflate")
10081 (synopsis "Native deflate decompression for Common Lisp")
10082 (description
10083 "This library is an implementation of Deflate (RFC 1951) decompression,
10084 with optional support for ZLIB-style (RFC 1950) and gzip-style (RFC 1952)
10085 wrappers of deflate streams. It currently does not handle compression.")
10086 (license license:expat)))
10087
10088 (define-public cl-deflate
10089 (sbcl-package->cl-source-package sbcl-deflate))
10090
10091 (define-public ecl-deflate
10092 (sbcl-package->ecl-package sbcl-deflate))
10093
10094 (define-public sbcl-skippy
10095 (let ((commit "e456210202ca702c792292c5060a264d45e47090")
10096 (revision "0"))
10097 (package
10098 (name "sbcl-skippy")
10099 (version (git-version "1.3.12" revision commit))
10100 (source
10101 (origin
10102 (method git-fetch)
10103 (uri (git-reference
10104 (url "https://github.com/xach/skippy")
10105 (commit commit)))
10106 (file-name (git-file-name name version))
10107 (sha256
10108 (base32 "1sxbn5nh24qpx9w64x8mhp259cxcl1x8p126wk3b91ijjsj7l5vj"))))
10109 (build-system asdf-build-system/sbcl)
10110 (home-page "https://xach.com/lisp/skippy/")
10111 (synopsis "Common Lisp library for GIF images")
10112 (description
10113 "Skippy is a Common Lisp library to read and write GIF image files.")
10114 (license license:bsd-2))))
10115
10116 (define-public cl-skippy
10117 (sbcl-package->cl-source-package sbcl-skippy))
10118
10119 (define-public ecl-skippy
10120 (sbcl-package->ecl-package sbcl-skippy))
10121
10122 (define-public sbcl-cl-freetype2
10123 (let ((commit "96058da730b4812df916c1f4ee18c99b3b15a3de")
10124 (revision "0"))
10125 (package
10126 (name "sbcl-cl-freetype2")
10127 (version (git-version "1.1" revision commit))
10128 (source
10129 (origin
10130 (method git-fetch)
10131 (uri (git-reference
10132 (url "https://github.com/rpav/cl-freetype2")
10133 (commit commit)))
10134 (file-name (git-file-name name version))
10135 (sha256
10136 (base32 "0f8darhairgxnb5bzqcny7nh7ss3471bdzix5rzcyiwdbr5kymjl"))))
10137 (build-system asdf-build-system/sbcl)
10138 (native-inputs
10139 `(("fiveam" ,sbcl-fiveam)))
10140 (inputs
10141 `(("alexandria" ,sbcl-alexandria)
10142 ("cffi" ,sbcl-cffi)
10143 ("freetype" ,freetype)
10144 ("trivial-garbage" ,sbcl-trivial-garbage)))
10145 (arguments
10146 `(#:phases
10147 (modify-phases %standard-phases
10148 (add-after 'unpack 'fix-paths
10149 (lambda* (#:key inputs #:allow-other-keys)
10150 (substitute* "src/ffi/ft2-lib.lisp"
10151 (("\"libfreetype\"")
10152 (string-append "\"" (assoc-ref inputs "freetype")
10153 "/lib/libfreetype\"")))
10154 (substitute* "src/ffi/grovel/grovel-freetype2.lisp"
10155 (("-I/usr/include/freetype")
10156 (string-append "-I" (assoc-ref inputs "freetype")
10157 "/include/freetype")))
10158 #t)))))
10159 (home-page "https://github.com/rpav/cl-freetype2")
10160 (synopsis "Common Lisp bindings for Freetype 2")
10161 (description
10162 "This is a general Freetype 2 wrapper for Common Lisp using CFFI. It's
10163 geared toward both using Freetype directly by providing a simplified API, as
10164 well as providing access to the underlying C structures and functions for use
10165 with other libraries which may also use Freetype.")
10166 (license license:bsd-3))))
10167
10168 (define-public cl-freetype2
10169 (sbcl-package->cl-source-package sbcl-cl-freetype2))
10170
10171 (define-public ecl-cl-freetype2
10172 (sbcl-package->ecl-package sbcl-cl-freetype2))
10173
10174 (define-public sbcl-opticl-core
10175 (let ((commit "b7cd13d26df6b824b216fbc360dc27bfadf04999")
10176 (revision "0"))
10177 (package
10178 (name "sbcl-opticl-core")
10179 (version (git-version "0.0.0" revision commit))
10180 (source
10181 (origin
10182 (method git-fetch)
10183 (uri (git-reference
10184 (url "https://github.com/slyrus/opticl-core")
10185 (commit commit)))
10186 (file-name (git-file-name name version))
10187 (sha256
10188 (base32 "0458bllabcdjghfrqx6aki49c9qmvfmkk8jl75cfpi7q0i12kh95"))))
10189 (build-system asdf-build-system/sbcl)
10190 (inputs
10191 `(("alexandria" ,sbcl-alexandria)))
10192 (home-page "https://github.com/slyrus/opticl-core")
10193 (synopsis "Core classes and pixel access macros for Opticl")
10194 (description
10195 "This Common Lisp library contains the core classes and pixel access
10196 macros for the Opticl image processing library.")
10197 (license license:bsd-2))))
10198
10199 (define-public cl-opticl-core
10200 (sbcl-package->cl-source-package sbcl-opticl-core))
10201
10202 (define-public ecl-opticl-core
10203 (sbcl-package->ecl-package sbcl-opticl-core))
10204
10205 (define-public sbcl-retrospectiff
10206 (let ((commit "c2a69d77d5010f8cdd9045b3e36a08a73da5d321")
10207 (revision "0"))
10208 (package
10209 (name "sbcl-retrospectiff")
10210 (version (git-version "0.2" revision commit))
10211 (source
10212 (origin
10213 (method git-fetch)
10214 (uri (git-reference
10215 (url "https://github.com/slyrus/retrospectiff")
10216 (commit commit)))
10217 (file-name (git-file-name name version))
10218 (sha256
10219 (base32 "0qsn9hpd8j2kp43dk05j8dczz9zppdff5rrclbp45n3ksk9inw8i"))))
10220 (build-system asdf-build-system/sbcl)
10221 (native-inputs
10222 `(("fiveam" ,sbcl-fiveam)))
10223 (inputs
10224 `(("cl-jpeg" ,sbcl-cl-jpeg)
10225 ("com.gigamonkeys.binary-data" ,sbcl-com.gigamonkeys.binary-data)
10226 ("deflate" ,sbcl-deflate)
10227 ("flexi-streams" ,sbcl-flexi-streams)
10228 ("ieee-floats" ,sbcl-ieee-floats)
10229 ("opticl-core" ,sbcl-opticl-core)))
10230 (home-page "https://github.com/slyrus/retrospectiff")
10231 (synopsis "Common Lisp library for TIFF images")
10232 (description
10233 "Retrospectiff is a common lisp library for reading and writing images
10234 in the TIFF (Tagged Image File Format) format.")
10235 (license license:bsd-2))))
10236
10237 (define-public cl-retrospectif
10238 (sbcl-package->cl-source-package sbcl-retrospectiff))
10239
10240 (define-public ecl-retrospectiff
10241 (sbcl-package->ecl-package sbcl-retrospectiff))
10242
10243 (define-public sbcl-mmap
10244 (let ((commit "ba2e98c67e25f0fb8ff838238561120a23903ce7")
10245 (revision "0"))
10246 (package
10247 (name "sbcl-mmap")
10248 (version (git-version "1.0.0" revision commit))
10249 (source
10250 (origin
10251 (method git-fetch)
10252 (uri (git-reference
10253 (url "https://github.com/Shinmera/mmap")
10254 (commit commit)))
10255 (file-name (git-file-name name version))
10256 (sha256
10257 (base32 "0qd0xp20i1pcfn12kkapv9pirb6hd4ns7kz4zf1mmjwykpsln96q"))))
10258 (build-system asdf-build-system/sbcl)
10259 (native-inputs
10260 `(("alexandria" ,sbcl-alexandria)
10261 ("cffi" ,sbcl-cffi)
10262 ("parachute" ,sbcl-parachute)
10263 ("trivial-features" ,sbcl-trivial-features)))
10264 (inputs
10265 `(("cffi" ,sbcl-cffi)
10266 ("documentation-utils" ,sbcl-documentation-utils)))
10267 (home-page "https://shinmera.github.io/mmap/")
10268 (synopsis "File memory mapping for Common Lisp")
10269 (description
10270 "This is a utility library providing access to the @emph{mmap} family of
10271 functions in a portable way. It allows you to directly map a file into the
10272 address space of your process without having to manually read it into memory
10273 sequentially. Typically this is much more efficient for files that are larger
10274 than a few Kb.")
10275 (license license:zlib))))
10276
10277 (define-public cl-mmap
10278 (sbcl-package->cl-source-package sbcl-mmap))
10279
10280 (define-public ecl-mmap
10281 (sbcl-package->ecl-package sbcl-mmap))
10282
10283 (define-public sbcl-3bz
10284 (let ((commit "d6119083b5e0b0a6dd3abc2877936c51f3f3deed")
10285 (revision "0"))
10286 (package
10287 (name "sbcl-3bz")
10288 (version (git-version "0.0.0" revision commit))
10289 (source
10290 (origin
10291 (method git-fetch)
10292 (uri (git-reference
10293 (url "https://github.com/3b/3bz")
10294 (commit commit)))
10295 (file-name (git-file-name name version))
10296 (sha256
10297 (base32 "0fyxzyf2b6sc0w8d9g4nlva861565z6f3xszj0lw29x526dd9rhj"))))
10298 (build-system asdf-build-system/sbcl)
10299 (inputs
10300 `(("alexandria" ,sbcl-alexandria)
10301 ("babel" ,sbcl-babel)
10302 ("cffi" ,sbcl-cffi)
10303 ("mmap" ,sbcl-mmap)
10304 ("nibbles" ,sbcl-nibbles)
10305 ("trivial-features" ,sbcl-trivial-features)))
10306 (arguments
10307 ;; FIXME: Without the following line, the build fails (see issue 41437).
10308 `(#:asd-systems '("3bz")))
10309 (home-page "https://github.com/3b/3bz")
10310 (synopsis "Deflate decompression for Common Lisp")
10311 (description
10312 "3bz is an implementation of Deflate decompression (RFC 1951) optionally
10313 with zlib (RFC 1950) or gzip (RFC 1952) wrappers, with support for reading from
10314 foreign pointers (for use with mmap and similar, etc), and from CL octet
10315 vectors and streams.")
10316 (license license:expat))))
10317
10318 (define-public cl-3bz
10319 (sbcl-package->cl-source-package sbcl-3bz))
10320
10321 (define-public ecl-3bz
10322 (sbcl-package->ecl-package sbcl-3bz))
10323
10324 (define-public sbcl-zpb-exif
10325 (package
10326 (name "sbcl-zpb-exif")
10327 (version "1.2.4")
10328 (source
10329 (origin
10330 (method git-fetch)
10331 (uri (git-reference
10332 (url "https://github.com/xach/zpb-exif")
10333 (commit (string-append "release-" version))))
10334 (file-name (git-file-name name version))
10335 (sha256
10336 (base32 "15s227jhby55cisz14xafb0p1ws2jmrg2rrbbd00lrb97im84hy6"))))
10337 (build-system asdf-build-system/sbcl)
10338 (home-page "https://xach.com/lisp/zpb-exif/")
10339 (synopsis "EXIF information extractor for Common Lisp")
10340 (description
10341 "This is a Common Lisp library to extract EXIF information from image
10342 files.")
10343 (license license:bsd-2)))
10344
10345 (define-public cl-zpb-exif
10346 (sbcl-package->cl-source-package sbcl-zpb-exif))
10347
10348 (define-public ecl-zpb-exif
10349 (sbcl-package->ecl-package sbcl-zpb-exif))
10350
10351 (define-public sbcl-pngload
10352 (package
10353 (name "sbcl-pngload")
10354 (version "2.0.0")
10355 (source
10356 (origin
10357 (method git-fetch)
10358 (uri (git-reference
10359 (url "https://github.com/bufferswap/pngload")
10360 (commit version)))
10361 (file-name (git-file-name name version))
10362 (sha256
10363 (base32 "1ix8dd0fxlf8xm0bszh1s7sx83hn0vqq8b8c9gkrd5m310w8mpvh"))))
10364 (build-system asdf-build-system/sbcl)
10365 (inputs
10366 `(("3bz" ,sbcl-3bz)
10367 ("alexandria" ,sbcl-alexandria)
10368 ("cffi" ,sbcl-cffi)
10369 ("mmap" ,sbcl-mmap)
10370 ("parse-float" ,sbcl-parse-float)
10371 ("static-vectors" ,sbcl-static-vectors)
10372 ("swap-bytes" ,sbcl-swap-bytes)
10373 ("zpb-exif" ,sbcl-zpb-exif)))
10374 (arguments
10375 ;; Test suite disabled because of a dependency cycle.
10376 ;; pngload tests depend on opticl which depends on pngload.
10377 '(#:tests? #f))
10378 (home-page "https://github.com/bufferswap/pngload")
10379 (synopsis "PNG image decoder for Common Lisp")
10380 (description
10381 "This is a Common Lisp library to load images in the PNG image format,
10382 both from files on disk, or streams in memory.")
10383 (license license:expat)))
10384
10385 (define-public cl-pngload
10386 (sbcl-package->cl-source-package sbcl-pngload))
10387
10388 (define-public ecl-pngload
10389 (sbcl-package->ecl-package sbcl-pngload))
10390
10391 (define-public sbcl-opticl
10392 (let ((commit "e8684416eca2e78e82a7b436d436ef2ea24c019d")
10393 (revision "0"))
10394 (package
10395 (name "sbcl-opticl")
10396 (version (git-version "0.0.0" revision commit))
10397 (source
10398 (origin
10399 (method git-fetch)
10400 (uri (git-reference
10401 (url "https://github.com/slyrus/opticl")
10402 (commit commit)))
10403 (file-name (git-file-name name version))
10404 (sha256
10405 (base32 "03rirnnhhisjbimlmpi725h1d3x0cfv00r57988am873dyzawmm1"))))
10406 (build-system asdf-build-system/sbcl)
10407 (native-inputs
10408 `(("fiveam" ,sbcl-fiveam)))
10409 (inputs
10410 `(("alexandria" ,sbcl-alexandria)
10411 ("cl-jpeg" ,sbcl-cl-jpeg)
10412 ("cl-tga" ,sbcl-cl-tga)
10413 ("png-read" ,sbcl-png-read)
10414 ("pngload" ,sbcl-pngload)
10415 ("retrospectiff" ,sbcl-retrospectiff)
10416 ("skippy" ,sbcl-skippy)
10417 ("zpng" ,sbcl-zpng)))
10418 (arguments
10419 '(#:asd-files '("opticl.asd")))
10420 (home-page "https://github.com/slyrus/opticl")
10421 (synopsis "Image processing library for Common Lisp")
10422 (description
10423 "Opticl is a Common Lisp library for representing, processing, loading,
10424 and saving 2-dimensional pixel-based images.")
10425 (license license:bsd-2))))
10426
10427 (define-public cl-opticl
10428 (sbcl-package->cl-source-package sbcl-opticl))
10429
10430 (define-public ecl-opticl
10431 (sbcl-package->ecl-package sbcl-opticl))
10432
10433 (define-public sbcl-mcclim
10434 (let ((commit "27b4d7a667c9b3faa74cabcb57706b888314fff7")
10435 (revision "0"))
10436 (package
10437 (name "sbcl-mcclim")
10438 (version (git-version "0.9.7" revision commit))
10439 (source
10440 (origin
10441 (method git-fetch)
10442 (uri (git-reference
10443 (url "https://github.com/mcclim/mcclim")
10444 (commit commit)))
10445 (file-name (git-file-name name version))
10446 (sha256
10447 (base32 "0jijfgkwas6xnpp5wiii6slcx9pgsalngacb8zm29x6pamx2193h"))))
10448 (build-system asdf-build-system/sbcl)
10449 (native-inputs
10450 `(("fiveam" ,sbcl-fiveam)
10451 ("pkg-config" ,pkg-config)))
10452 (inputs
10453 `(("alexandria" ,sbcl-alexandria)
10454 ("babel" ,sbcl-babel)
10455 ("bordeaux-threads" ,sbcl-bordeaux-threads)
10456 ("cl-freetype2" ,sbcl-cl-freetype2)
10457 ("cl-pdf" ,sbcl-cl-pdf)
10458 ("cffi" ,sbcl-cffi)
10459 ("cl-unicode" ,sbcl-cl-unicode)
10460 ("cl-vectors" ,sbcl-cl-vectors)
10461 ("closer-mop" ,sbcl-closer-mop)
10462 ("clx" ,sbcl-clx)
10463 ("flexi-streams" ,sbcl-flexi-streams)
10464 ("flexichain" ,sbcl-flexichain)
10465 ("font-dejavu" ,font-dejavu)
10466 ("fontconfig" ,fontconfig)
10467 ("freetype" ,freetype)
10468 ("harfbuzz" ,harfbuzz)
10469 ("log4cl" ,sbcl-log4cl)
10470 ("opticl" ,sbcl-opticl)
10471 ("spatial-trees" ,sbcl-spatial-trees)
10472 ("swank" ,sbcl-slime-swank)
10473 ("trivial-features" ,sbcl-trivial-features)
10474 ("trivial-garbage" ,sbcl-trivial-garbage)
10475 ("trivial-gray-streams" ,sbcl-trivial-gray-streams)
10476 ("zpb-ttf" ,sbcl-zpb-ttf)))
10477 (arguments
10478 '(#:asd-systems '("mcclim"
10479 "clim-examples")
10480 #:phases
10481 (modify-phases %standard-phases
10482 (add-after 'unpack 'fix-paths
10483 (lambda* (#:key inputs #:allow-other-keys)
10484 ;; mcclim-truetype uses DejaVu as default font and
10485 ;; sets the path at build time.
10486 (substitute* "Extensions/fonts/fontconfig.lisp"
10487 (("/usr/share/fonts/truetype/dejavu/")
10488 (string-append (assoc-ref inputs "font-dejavu")
10489 "/share/fonts/truetype/")))
10490 (substitute* "Extensions/fontconfig/src/functions.lisp"
10491 (("libfontconfig\\.so")
10492 (string-append (assoc-ref inputs "fontconfig")
10493 "/lib/libfontconfig.so")))
10494 (substitute* "Extensions/harfbuzz/src/functions.lisp"
10495 (("libharfbuzz\\.so")
10496 (string-append (assoc-ref inputs "harfbuzz")
10497 "/lib/libharfbuzz.so")))
10498 #t))
10499 (add-after 'unpack 'fix-build
10500 (lambda _
10501 ;; The cffi-grovel system does not get loaded automatically,
10502 ;; so we load it explicitly.
10503 (substitute* "Extensions/fontconfig/mcclim-fontconfig.asd"
10504 (("\\(asdf:defsystem #:mcclim-fontconfig" all)
10505 (string-append "(asdf:load-system :cffi-grovel)\n" all)))
10506 (substitute* "Extensions/harfbuzz/mcclim-harfbuzz.asd"
10507 (("\\(asdf:defsystem #:mcclim-harfbuzz" all)
10508 (string-append "(asdf:load-system :cffi-grovel)\n" all)))
10509 #t)))))
10510 (home-page "https://common-lisp.net/project/mcclim/")
10511 (synopsis "Common Lisp GUI toolkit")
10512 (description
10513 "McCLIM is an implementation of the @emph{Common Lisp Interface Manager
10514 specification}, a toolkit for writing GUIs in Common Lisp.")
10515 (license license:lgpl2.1+))))
10516
10517 (define-public cl-mcclim
10518 (sbcl-package->cl-source-package sbcl-mcclim))
10519
10520 (define-public ecl-mcclim
10521 (sbcl-package->ecl-package sbcl-mcclim))
10522
10523 (define-public sbcl-cl-inflector
10524 (let ((commit "f1ab16919ccce3bd82a0042677d9616dde2034fe")
10525 (revision "1"))
10526 (package
10527 (name "sbcl-cl-inflector")
10528 (version (git-version "0.2" revision commit))
10529 (source
10530 (origin
10531 (method git-fetch)
10532 (uri (git-reference
10533 (url "https://github.com/AccelerationNet/cl-inflector")
10534 (commit commit)))
10535 (file-name (git-file-name name version))
10536 (sha256
10537 (base32 "1xwwlhik1la4fp984qnx2dqq24v012qv4x0y49sngfpwg7n0ya7y"))))
10538 (build-system asdf-build-system/sbcl)
10539 (native-inputs
10540 `(("lisp-unit2" ,sbcl-lisp-unit2)))
10541 (inputs
10542 `(("alexandria" ,sbcl-alexandria)
10543 ("cl-ppcre" ,sbcl-cl-ppcre)))
10544 (home-page "https://github.com/AccelerationNet/cl-inflector")
10545 (synopsis "Library to pluralize/singularize English and Portuguese words")
10546 (description
10547 "This is a common lisp library to easily pluralize and singularize
10548 English and Portuguese words. This is a port of the ruby ActiveSupport
10549 Inflector module.")
10550 (license license:expat))))
10551
10552 (define-public cl-inflector
10553 (sbcl-package->cl-source-package sbcl-cl-inflector))
10554
10555 (define-public ecl-cl-inflector
10556 (sbcl-package->ecl-package sbcl-cl-inflector))
10557
10558 (define-public sbcl-qbase64
10559 (package
10560 (name "sbcl-qbase64")
10561 (version "0.3.0")
10562 (source
10563 (origin
10564 (method git-fetch)
10565 (uri (git-reference
10566 (url "https://github.com/chaitanyagupta/qbase64")
10567 (commit version)))
10568 (file-name (git-file-name name version))
10569 (sha256
10570 (base32 "1dir0s70ca3hagxv9x15zq4p4ajgl7jrcgqsza2n2y7iqbxh0dwi"))))
10571 (build-system asdf-build-system/sbcl)
10572 (inputs
10573 `(("metabang-bind" ,sbcl-metabang-bind)
10574 ("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
10575 (native-inputs
10576 `(("fiveam" ,sbcl-fiveam)))
10577 (home-page "https://github.com/chaitanyagupta/qbase64")
10578 (synopsis "Base64 encoder and decoder for Common Lisp")
10579 (description "@code{qbase64} provides a fast and flexible base64 encoder
10580 and decoder for Common Lisp.")
10581 (license license:bsd-3)))
10582
10583 (define-public cl-qbase64
10584 (sbcl-package->cl-source-package sbcl-qbase64))
10585
10586 (define-public ecl-qbase64
10587 (sbcl-package->ecl-package sbcl-qbase64))
10588
10589 (define-public sbcl-lw-compat
10590 ;; No release since 2013.
10591 (let ((commit "aabfe28c6c1a4949f9d7b3cb30319367c9fd1c0d"))
10592 (package
10593 (name "sbcl-lw-compat")
10594 (version (git-version "1.0.0" "1" commit))
10595 (source
10596 (origin
10597 (method git-fetch)
10598 (uri (git-reference
10599 (url "https://github.com/pcostanza/lw-compat/")
10600 (commit commit)))
10601 (file-name (git-file-name name version))
10602 (sha256
10603 (base32 "131rq5k2mlv9bfhmafiv6nfsivl4cxx13d9wr06v5jrqnckh4aav"))))
10604 (build-system asdf-build-system/sbcl)
10605 (home-page "https://github.com/pcostanza/lw-compat/")
10606 (synopsis "LispWorks utilities ported to other Common Lisp implementations")
10607 (description "This package contains a few utility functions from the
10608 LispWorks library that are used in software such as ContextL.")
10609 (license license:expat))))
10610
10611 (define-public cl-lw-compat
10612 (sbcl-package->cl-source-package sbcl-lw-compat))
10613
10614 (define-public ecl-lw-compat
10615 (sbcl-package->ecl-package sbcl-lw-compat))
10616
10617 (define-public sbcl-contextl
10618 ;; No release since 2013.
10619 (let ((commit "5d18a71a85824f6c25a9f35a21052f967b8b6bb9"))
10620 (package
10621 (name "sbcl-contextl")
10622 (version (git-version "1.0.0" "1" commit))
10623 (source
10624 (origin
10625 (method git-fetch)
10626 (uri (git-reference
10627 (url "https://github.com/pcostanza/contextl/")
10628 (commit commit)))
10629 (file-name (git-file-name name version))
10630 (sha256
10631 (base32 "0gk1izx6l6g48nypmnm9r6mzjx0jixqjj2kc6klf8a88rr5xd226"))))
10632 (build-system asdf-build-system/sbcl)
10633 (inputs
10634 `(("closer-mop" ,sbcl-closer-mop)
10635 ("lw-compat" ,sbcl-lw-compat)))
10636 (home-page "https://github.com/pcostanza/contextl")
10637 (synopsis "Context-oriented programming for Common Lisp")
10638 (description "ContextL is a CLOS extension for Context-Oriented
10639 Programming (COP).
10640
10641 Find overview of ContextL's features in an overview paper:
10642 @url{http://www.p-cos.net/documents/contextl-soa.pdf}. See also this general
10643 overview article about COP which also contains some ContextL examples:
10644 @url{http://www.jot.fm/issues/issue_2008_03/article4/}.")
10645 (license license:expat))))
10646
10647 (define-public cl-contextl
10648 (sbcl-package->cl-source-package sbcl-contextl))
10649
10650 (define-public ecl-contextl
10651 (sbcl-package->ecl-package sbcl-contextl))
10652
10653 (define-public sbcl-hu.dwim.common-lisp
10654 (package
10655 (name "sbcl-hu.dwim.common-lisp")
10656 (version "2015-07-09")
10657 (source
10658 (origin
10659 (method url-fetch)
10660 (uri (string-append
10661 "http://beta.quicklisp.org/archive/hu.dwim.common-lisp/"
10662 version "/hu.dwim.common-lisp-"
10663 (string-replace-substring version "-" "")
10664 "-darcs.tgz"))
10665 (sha256
10666 (base32 "13cxrvh55rw080mvfir7s7k735l9rcfh3khxp97qfwd5rz0gadb9"))))
10667 (build-system asdf-build-system/sbcl)
10668 (native-inputs
10669 `(("hu.dwim.asdf" ,sbcl-hu.dwim.asdf)))
10670 (home-page "http://dwim.hu/")
10671 (synopsis "Redefine some standard Common Lisp names")
10672 (description "This library is a redefinition of the standard Common Lisp
10673 package that includes a number of renames and shadows. ")
10674 (license license:public-domain)))
10675
10676 (define-public cl-hu.dwim.common-lisp
10677 (sbcl-package->cl-source-package sbcl-hu.dwim.common-lisp))
10678
10679 (define-public ecl-hu.dwim.common-lisp
10680 (sbcl-package->ecl-package sbcl-hu.dwim.common-lisp))
10681
10682 (define-public sbcl-hu.dwim.common
10683 (package
10684 (name "sbcl-hu.dwim.common")
10685 (version "2015-07-09")
10686 (source
10687 (origin
10688 (method url-fetch)
10689 (uri (string-append
10690 "http://beta.quicklisp.org/archive/hu.dwim.common/"
10691 version "/hu.dwim.common-"
10692 (string-replace-substring version "-" "")
10693 "-darcs.tgz"))
10694 (sha256
10695 (base32 "12l1rr6w9m99w0b5gc6hv58ainjfhbc588kz6vwshn4gqsxyzbhp"))))
10696 (build-system asdf-build-system/sbcl)
10697 (native-inputs
10698 `(("hu.dwim.asdf" ,sbcl-hu.dwim.asdf)))
10699 (inputs
10700 `(("alexandria" ,sbcl-alexandria)
10701 ("anaphora" ,sbcl-anaphora)
10702 ("closer-mop" ,sbcl-closer-mop)
10703 ("hu.dwim.common-lisp" ,sbcl-hu.dwim.common-lisp)
10704 ("iterate" ,sbcl-iterate)
10705 ("metabang-bind" ,sbcl-metabang-bind)))
10706 (home-page "http://dwim.hu/")
10707 (synopsis "Common Lisp library shared by other hu.dwim systems")
10708 (description "This package contains a support library for other
10709 hu.dwim systems.")
10710 (license license:public-domain)))
10711
10712 (define-public cl-hu.dwim.common
10713 (sbcl-package->cl-source-package sbcl-hu.dwim.common))
10714
10715 (define-public ecl-hu.dwim.common
10716 (sbcl-package->ecl-package sbcl-hu.dwim.common))
10717
10718 (define-public sbcl-hu.dwim.defclass-star
10719 (package
10720 (name "sbcl-hu.dwim.defclass-star")
10721 (version "2015-07-09")
10722 (source
10723 (origin
10724 (method url-fetch)
10725 (uri (string-append
10726 "http://beta.quicklisp.org/archive/hu.dwim.defclass-star/"
10727 version "/hu.dwim.defclass-star-"
10728 (string-replace-substring version "-" "")
10729 "-darcs.tgz"))
10730 (sha256
10731 (base32 "032982lyp0hm0ssxlyh572whi2hr4j1nqkyqlllaj373v0dbs3vs"))))
10732 (build-system asdf-build-system/sbcl)
10733 (native-inputs
10734 `(;; These 2 inputs are only needed tests which are disabled, see below.
10735 ;; ("hu.dwim.common" ,sbcl-hu.dwim.common)
10736 ;; Need cl- package for the :hu.dwim.stefil+hu.dwim.def+swank system.
10737 ;; ("hu.dwim.stefil" ,cl-hu.dwim.stefil)
10738 ("hu.dwim.asdf" ,sbcl-hu.dwim.asdf)))
10739 (arguments
10740 `(#:test-asd-file "hu.dwim.defclass-star.test.asd"
10741 ;; Tests require a circular dependency: hu.dwim.stefil -> hu.dwim.def
10742 ;; -> hu.dwim.util -> hu.dwim.defclass-star.
10743 #:tests? #f))
10744 (home-page "http://dwim.hu/?_x=dfxn&_f=mRIMfonK")
10745 (synopsis "Simplify definitions with defclass* and friends in Common Lisp")
10746 (description "@code{defclass-star} provides defclass* and defcondition* to
10747 simplify class and condition declarations. Features include:
10748
10749 @itemize
10750 @item Automatically export all or select slots at compile time.
10751 @item Define the @code{:initarg} and @code{:accessor} automatically.
10752 @item Specify a name transformer for both the @code{:initarg} and
10753 @code{:accessor}, etc.
10754 @item Specify the @code{:initform} as second slot value.
10755 @end itemize
10756
10757 See
10758 @url{https://common-lisp.net/project/defclass-star/configuration.lisp.html}
10759 for an example.")
10760 (license license:public-domain)))
10761
10762 (define-public cl-hu.dwim.defclass-star
10763 (sbcl-package->cl-source-package sbcl-hu.dwim.defclass-star))
10764
10765 (define-public ecl-hu.dwim.defclass-star
10766 (sbcl-package->ecl-package sbcl-hu.dwim.defclass-star))
10767
10768 (define-public sbcl-livesupport
10769 (let ((commit "71e6e412df9f3759ad8378fabb203913d82e228a")
10770 (revision "1"))
10771 (package
10772 (name "sbcl-livesupport")
10773 (version (git-version "0.0.0" revision commit))
10774 (source
10775 (origin
10776 (method git-fetch)
10777 (uri (git-reference
10778 (url "https://github.com/cbaggers/livesupport")
10779 (commit commit)))
10780 (file-name (git-file-name name version))
10781 (sha256
10782 (base32 "1rvnl0mncylbx63608pz5llss7y92j7z3ydambk9mcnjg2mjaapg"))))
10783 (build-system asdf-build-system/sbcl)
10784 (home-page "https://github.com/cbaggers/livesupport")
10785 (synopsis "Some helpers that make livecoding a little easier")
10786 (description "This package provides a macro commonly used in livecoding to
10787 enable continuing when errors are raised. Simply wrap around a chunk of code
10788 and it provides a restart called @code{continue} which ignores the error and
10789 carrys on from the end of the body.")
10790 (license license:bsd-2))))
10791
10792 (define-public cl-livesupport
10793 (sbcl-package->cl-source-package sbcl-livesupport))
10794
10795 (define-public ecl-livesupport
10796 (sbcl-package->ecl-package sbcl-livesupport))
10797
10798 (define-public sbcl-envy
10799 (let ((commit "956321b2852d58ba71c6fe621f5c2924178e9f88")
10800 (revision "1"))
10801 (package
10802 (name "sbcl-envy")
10803 (version (git-version "0.1" revision commit))
10804 (home-page "https://github.com/fukamachi/envy")
10805 (source
10806 (origin
10807 (method git-fetch)
10808 (uri (git-reference
10809 (url home-page)
10810 (commit commit)))
10811 (file-name (git-file-name name version))
10812 (sha256
10813 (base32 "17iwrfxcdinjbb2h6l09qf40s7xkbhrpmnljlwpjy8l8rll8h3vg"))))
10814 (build-system asdf-build-system/sbcl)
10815 ;; (native-inputs ; Only for tests.
10816 ;; `(("prove" ,sbcl-prove)
10817 ;; ("osicat" ,sbcl-osicat)))
10818 (arguments
10819 '(#:phases
10820 (modify-phases %standard-phases
10821 (add-after 'unpack 'fix-tests
10822 (lambda _
10823 (substitute* "envy-test.asd"
10824 (("cl-test-more") "prove"))
10825 #t)))
10826 ;; Tests fail with
10827 ;; Component ENVY-ASD::ENVY-TEST not found, required by #<SYSTEM "envy">
10828 ;; like xsubseq. Why?
10829 #:tests? #f))
10830 (synopsis "Common Lisp configuration switcher inspired by Perl's Config::ENV.")
10831 (description "Envy is a configuration manager for various applications.
10832 Envy uses an environment variable to determine a configuration to use. This
10833 can separate configuration system from an implementation.")
10834 (license license:bsd-2))))
10835
10836 (define-public cl-envy
10837 (sbcl-package->cl-source-package sbcl-envy))
10838
10839 (define-public ecl-envy
10840 (sbcl-package->ecl-package sbcl-envy))
10841
10842 (define-public sbcl-mito
10843 (let ((commit "d3b9e375ef364a65692da2185085a08c969ac88a")
10844 (revision "1"))
10845 (package
10846 (name "sbcl-mito")
10847 (version (git-version "0.1" revision commit))
10848 (home-page "https://github.com/fukamachi/mito")
10849 (source
10850 (origin
10851 (method git-fetch)
10852 (uri (git-reference
10853 (url home-page)
10854 (commit commit)))
10855 (file-name (git-file-name name version))
10856 (sha256
10857 (base32 "08mncgzjnbbsf1a6am3l73iw4lyfvz5ldjg5g84awfaxml4p73mb"))))
10858 (build-system asdf-build-system/sbcl)
10859 (native-inputs
10860 `(("prove" ,sbcl-prove)))
10861 (inputs
10862 `(("alexandria" ,sbcl-alexandria)
10863 ("cl-ppcre" ,sbcl-cl-ppcre)
10864 ("cl-reexport" ,sbcl-cl-reexport)
10865 ("closer-mop" ,sbcl-closer-mop)
10866 ("dbi" ,sbcl-dbi)
10867 ("dissect" ,sbcl-dissect)
10868 ("esrap" ,sbcl-esrap)
10869 ("local-time" ,sbcl-local-time)
10870 ("optima" ,sbcl-optima)
10871 ("sxql" ,sbcl-sxql)
10872 ("uuid" ,sbcl-uuid)))
10873 (arguments
10874 '(#:phases
10875 (modify-phases %standard-phases
10876 (add-after 'unpack 'remove-non-functional-tests
10877 (lambda _
10878 (substitute* "mito-test.asd"
10879 (("\\(:test-file \"db/mysql\"\\)") "")
10880 (("\\(:test-file \"db/postgres\"\\)") "")
10881 (("\\(:test-file \"dao\"\\)") "")
10882 ;; TODO: migration/sqlite3 should work, re-enable once
10883 ;; upstream has fixed it:
10884 ;; https://github.com/fukamachi/mito/issues/70
10885 (("\\(:test-file \"migration/sqlite3\"\\)") "")
10886 (("\\(:test-file \"migration/mysql\"\\)") "")
10887 (("\\(:test-file \"migration/postgres\"\\)") "")
10888 (("\\(:test-file \"postgres-types\"\\)") "")
10889 (("\\(:test-file \"mixin\"\\)") ""))
10890 #t)))
10891 ;; TODO: While all enabled tests pass, the phase fails with:
10892 ;; Component MITO-ASD::MITO-TEST not found, required by #<SYSTEM "mito">
10893 #:tests? #f))
10894 (synopsis "ORM for Common Lisp with migrations and relationships support")
10895 (description "Mito is yet another object relational mapper, and it aims
10896 to be a successor of Integral.
10897
10898 @itemize
10899 @item Support MySQL, PostgreSQL and SQLite3.
10900 @item Add id (serial/uuid primary key), created_at and updated_at by default
10901 like Ruby's ActiveRecord.
10902 @item Migrations.
10903 @item Database schema versioning.
10904 @end itemize\n")
10905 (license license:llgpl))))
10906
10907 (define-public cl-mito
10908 (sbcl-package->cl-source-package sbcl-mito))
10909
10910 (define-public ecl-mito
10911 (sbcl-package->ecl-package sbcl-mito))
10912
10913 (define-public sbcl-kebab
10914 (let ((commit "e7f77644c4e46131e7b8039d191d35fe6211f31b")
10915 (revision "1"))
10916 (package
10917 (name "sbcl-kebab")
10918 (version (git-version "0.1" revision commit))
10919 (home-page "https://github.com/pocket7878/kebab")
10920 (source
10921 (origin
10922 (method git-fetch)
10923 (uri (git-reference
10924 (url home-page)
10925 (commit commit)))
10926 (file-name (git-file-name name version))
10927 (sha256
10928 (base32 "0j5haabnvj0vz0rx9mwyfsb3qzpga9nickbjw8xs6vypkdzlqv1b"))))
10929 (build-system asdf-build-system/sbcl)
10930 (inputs
10931 `(("cl-ppcre" ,sbcl-cl-ppcre)
10932 ("alexandria" ,sbcl-alexandria)
10933 ("cl-interpol" ,sbcl-cl-interpol)
10934 ("split-sequence" ,sbcl-split-sequence)))
10935 (native-inputs
10936 `(("prove" ,sbcl-prove)))
10937 (arguments
10938 ;; Tests passes but the phase fails with
10939 ;; Component KEBAB-ASD::KEBAB-TEST not found, required by #<SYSTEM "kebab">.
10940 `(#:tests? #f))
10941 (synopsis "Common Lisp case converter")
10942 (description "This Common Lisp library converts strings, symbols and
10943 keywords between any of the following typographical cases: PascalCase,
10944 camelCase, snake_case, kebab-case (lisp-case).")
10945 (license license:llgpl))))
10946
10947 (define-public cl-kebab
10948 (sbcl-package->cl-source-package sbcl-kebab))
10949
10950 (define-public ecl-kebab
10951 (sbcl-package->ecl-package sbcl-kebab))
10952
10953 (define-public sbcl-datafly
10954 (let ((commit "adece27fcbc4b5ea39ad1a105048b6b7166e3b0d")
10955 (revision "1"))
10956 (package
10957 (name "sbcl-datafly")
10958 (version (git-version "0.1" revision commit))
10959 (home-page "https://github.com/fukamachi/datafly")
10960 (source
10961 (origin
10962 (method git-fetch)
10963 (uri (git-reference
10964 (url home-page)
10965 (commit commit)))
10966 (file-name (git-file-name name version))
10967 (sha256
10968 (base32 "16b78kzmglp2a4nxlxxl7rpf5zaibsgagn0p3c56fsxvx0c4hszv"))))
10969 (build-system asdf-build-system/sbcl)
10970 (inputs
10971 `(("alexandria" ,sbcl-alexandria)
10972 ("iterate" ,sbcl-iterate)
10973 ("optima" ,sbcl-optima)
10974 ("trivial-types" ,sbcl-trivial-types)
10975 ("closer-mop" ,sbcl-closer-mop)
10976 ("cl-syntax" ,sbcl-cl-syntax)
10977 ("sxql" ,sbcl-sxql)
10978 ("dbi" ,sbcl-dbi)
10979 ("babel" ,sbcl-babel)
10980 ("local-time" ,sbcl-local-time)
10981 ("function-cache" ,sbcl-function-cache)
10982 ("jonathan" ,sbcl-jonathan)
10983 ("kebab" ,sbcl-kebab)
10984 ("log4cl" ,sbcl-log4cl)))
10985 (native-inputs
10986 `(("prove" ,sbcl-prove)))
10987 (arguments
10988 ;; TODO: Tests fail with
10989 ;; While evaluating the form starting at line 22, column 0
10990 ;; of #P"/tmp/guix-build-sbcl-datafly-0.1-1.adece27.drv-0/source/t/datafly.lisp":
10991 ;; Unhandled SQLITE:SQLITE-ERROR in thread #<SB-THREAD:THREAD "main thread" RUNNING
10992 ;; {10009F8083}>:
10993 ;; Error when binding parameter 1 to value NIL.
10994 ;; Code RANGE: column index out of range.
10995 `(#:tests? #f))
10996 (synopsis "Lightweight database library for Common Lisp")
10997 (description "Datafly is a lightweight database library for Common Lisp.")
10998 (license license:bsd-3))))
10999
11000 (define-public cl-datafly
11001 (sbcl-package->cl-source-package sbcl-datafly))
11002
11003 (define-public ecl-datafly
11004 (sbcl-package->ecl-package sbcl-datafly))
11005
11006 (define-public sbcl-do-urlencode
11007 (let ((commit "199846441dad5dfac5478b8dee4b4e20d107af6a")
11008 (revision "1"))
11009 (package
11010 (name "sbcl-do-urlencode")
11011 (version (git-version "0.0.0" revision commit))
11012 (home-page "https://github.com/drdo/do-urlencode")
11013 (source
11014 (origin
11015 (method git-fetch)
11016 (uri (git-reference
11017 (url home-page)
11018 (commit commit)))
11019 (file-name (git-file-name name version))
11020 (sha256
11021 (base32 "0k2i3d4k9cpci235mwfm0c5a4yqfkijr716bjv7cdlpzx88lazm9"))))
11022 (build-system asdf-build-system/sbcl)
11023 (inputs
11024 `(("alexandria" ,sbcl-alexandria)
11025 ("babel" ,sbcl-babel)))
11026 (synopsis "Percent Encoding (aka URL Encoding) Common Lisp library")
11027 (description "This library provides trivial percent encoding and
11028 decoding functions for URLs.")
11029 (license license:isc))))
11030
11031 (define-public cl-do-urlencode
11032 (sbcl-package->cl-source-package sbcl-do-urlencode))
11033
11034 (define-public ecl-do-urlencode
11035 (sbcl-package->ecl-package sbcl-do-urlencode))
11036
11037 (define-public sbcl-cl-emb
11038 (let ((commit "fd8652174d048d4525a81f38cdf42f4fa519f840")
11039 (revision "1"))
11040 (package
11041 (name "sbcl-cl-emb")
11042 (version (git-version "0.4.3" revision commit))
11043 (home-page "https://common-lisp.net/project/cl-emb/")
11044 (source
11045 (origin
11046 (method git-fetch)
11047 (uri (git-reference
11048 (url "https://github.com/38a938c2/cl-emb")
11049 (commit commit)))
11050 (file-name (git-file-name name version))
11051 (sha256
11052 (base32 "1xcm31n7afh5316lwz8iqbjx7kn5lw0l11arg8mhdmkx42aj4gkk"))))
11053 (build-system asdf-build-system/sbcl)
11054 (inputs
11055 `(("cl-ppcre" ,sbcl-cl-ppcre)))
11056 (synopsis "Templating system for Common Lisp")
11057 (description "A mixture of features from eRuby and HTML::Template. You
11058 could name it \"Yet Another LSP\" (LispServer Pages) but it's a bit more than
11059 that and not limited to a certain server or text format.")
11060 (license license:llgpl))))
11061
11062 (define-public cl-emb
11063 (sbcl-package->cl-source-package sbcl-cl-emb))
11064
11065 (define-public ecl-cl-emb
11066 (sbcl-package->ecl-package sbcl-cl-emb))
11067
11068 (define-public sbcl-cl-project
11069 (let ((commit "151107014e534fc4666222d57fec2cc8549c8814")
11070 (revision "1"))
11071 (package
11072 (name "sbcl-cl-project")
11073 (version (git-version "0.3.1" revision commit))
11074 (home-page "https://github.com/fukamachi/cl-project")
11075 (source
11076 (origin
11077 (method git-fetch)
11078 (uri (git-reference
11079 (url home-page)
11080 (commit commit)))
11081 (file-name (git-file-name name version))
11082 (sha256
11083 (base32 "1rmh6s1ncv8s2yrr14ja9wisgg745sq6xibqwb341ikdicxdp26y"))))
11084 (build-system asdf-build-system/sbcl)
11085 (inputs
11086 `(("cl-emb" ,sbcl-cl-emb)
11087 ("cl-ppcre" ,sbcl-cl-ppcre)
11088 ("local-time" ,sbcl-local-time)
11089 ("prove" ,sbcl-prove)))
11090 (arguments
11091 ;; Tests depend on caveman, which in turns depends on cl-project.
11092 '(#:tests? #f
11093 #:asd-files '("cl-project.asd")))
11094 (synopsis "Generate a skeleton for modern Common Lisp projects")
11095 (description "This library provides a modern project skeleton generator.
11096 In contract with other generators, CL-Project generates one package per file
11097 and encourages unit testing by generating a system for unit testing, so you
11098 can begin writing unit tests as soon as the project is generated.")
11099 (license license:llgpl))))
11100
11101 (define-public cl-project
11102 (sbcl-package->cl-source-package sbcl-cl-project))
11103
11104 (define-public ecl-cl-project
11105 (sbcl-package->ecl-package sbcl-cl-project))
11106
11107 (define-public sbcl-caveman
11108 (let ((commit "faa5f7e3b364fd7e7096af9a7bb06728b8d80441") ; No release since 2012
11109 (revision "1"))
11110 (package
11111 (name "sbcl-caveman")
11112 (version (git-version "2.4.0" revision commit))
11113 (home-page "http://8arrow.org/caveman/")
11114 (source
11115 (origin
11116 (method git-fetch)
11117 (uri (git-reference
11118 (url "https://github.com/fukamachi/caveman/")
11119 (commit commit)))
11120 (file-name (git-file-name name version))
11121 (sha256
11122 (base32 "0kh0gx05pczk8f7r9qdi4zn1p3d0a2prps27k7jpgvc1dxkl8qhq"))))
11123 (build-system asdf-build-system/sbcl)
11124 (inputs
11125 `(("ningle" ,cl-ningle)
11126 ("lack" ,sbcl-lack)
11127 ("cl-project" ,sbcl-cl-project)
11128 ("dbi" ,sbcl-dbi)
11129 ("cl-syntax" ,sbcl-cl-syntax)
11130 ("myway" ,sbcl-myway)
11131 ("quri" ,sbcl-quri)))
11132 (native-inputs
11133 `(("usocket" ,sbcl-usocket)
11134 ("dexador" ,sbcl-dexador)))
11135 (arguments
11136 `(#:asd-files '("caveman2.asd")
11137 #:asd-systems '("caveman2")
11138 #:phases
11139 (modify-phases %standard-phases
11140 (add-after 'unpack 'remove-v1
11141 (lambda _
11142 (delete-file-recursively "v1")
11143 (for-each delete-file
11144 '("README.v1.markdown" "caveman.asd" "caveman-test.asd")))))
11145 ;; TODO: Tests fail with:
11146 ;; writing /gnu/store/...-sbcl-caveman-2.4.0-1.faa5f7e/share/common-lisp/sbcl-source/caveman2/v2/t/tmp/myapp573/tests/myapp573.lisp
11147 ;; While evaluating the form starting at line 38, column 0
11148 ;; of #P"/tmp/guix-build-sbcl-caveman-2.4.0-1.faa5f7e.drv-0/source/v2/t/caveman.lisp":
11149 ;; Unhandled ASDF/FIND-COMPONENT:MISSING-COMPONENT in thread #<SB-THREAD:THREAD "main thread" RUNNING
11150 ;; {10009F8083}>:
11151 ;; Component "myapp573" not found
11152 #:tests? #f))
11153 (synopsis "Lightweight web application framework in Common Lisp")
11154 (description "Caveman is intended to be a collection of common parts for
11155 web applications. Caveman2 has three design goals:
11156
11157 @itemize
11158 @item Be extensible.
11159 @item Be practical.
11160 @item Don't force anything.
11161 @end itemize\n")
11162 (license license:llgpl))))
11163
11164 (define-public cl-caveman
11165 (package
11166 (inherit
11167 (sbcl-package->cl-source-package sbcl-caveman))
11168 (propagated-inputs
11169 `(("ningle" ,cl-ningle)))))
11170
11171 (define-public ecl-caveman
11172 (sbcl-package->ecl-package sbcl-caveman))
11173
11174 (define-public sbcl-lambda-fiddle
11175 (let ((commit "d16bba55acf6065b412f64ab8fdff679a4a32b1e") ;; no tagged branch
11176 (revision "1"))
11177 (package
11178 (name "sbcl-lambda-fiddle")
11179 (version (git-version "1.0.0" revision commit))
11180 (source
11181 (origin
11182 (method git-fetch)
11183 (uri (git-reference
11184 (url "https://github.com/Shinmera/lambda-fiddle")
11185 (commit commit)))
11186 (file-name (git-file-name name version))
11187 (sha256
11188 (base32 "1zarj1pqjqmk95kdx1axkgpwy2wq3canczk7f9z5hvaw5an6gand"))))
11189 (build-system asdf-build-system/sbcl)
11190 (home-page "https://github.com/Shinmera/lambda-fiddle")
11191 (synopsis "Collection of utilities to process lambda-lists")
11192 (description "This collection of utilities is useful in contexts where
11193 you want a macro that uses lambda-lists in some fashion but need more precise
11194 processing.")
11195 (license license:zlib))))
11196
11197 (define-public cl-lambda-fiddle
11198 (sbcl-package->cl-source-package sbcl-lambda-fiddle))
11199
11200 (define-public ecl-lambda-fiddle
11201 (sbcl-package->ecl-package sbcl-lambda-fiddle))
11202
11203 (define-public sbcl-xmls
11204 (let ((commit "18546f0850b1338e03997ffd1696add1cb1800d1") ;; no tagged branch
11205 (revision "1"))
11206 (package
11207 (name "sbcl-xmls")
11208 (version (git-version "3.0.2" revision commit))
11209 (source
11210 (origin
11211 (method git-fetch)
11212 (uri (git-reference
11213 (url "https://github.com/rpgoldman/xmls")
11214 (commit commit)))
11215 (file-name (git-file-name name version))
11216 (sha256
11217 (base32 "1lmvfml2ldbb1wkhm25jqqk2bhwsz52hhcgljbnzj1xr8xhc3anp"))))
11218 (native-inputs
11219 `(("fiveam" ,sbcl-fiveam)))
11220 (build-system asdf-build-system/sbcl)
11221 (home-page "https://github.com/rpgoldman/xmls")
11222 (synopsis "Non-validating XML parser for Common Lisp")
11223 (description "Xmls is a self-contained, easily embedded parser that
11224 recognizes a useful subset of the XML spec. It provides a simple mapping from
11225 XML to Lisp structures or s-expressions and back.")
11226 (license license:bsd-2))))
11227
11228 (define-public cl-xmls
11229 (sbcl-package->cl-source-package sbcl-xmls))
11230
11231 (define-public ecl-xmls
11232 (sbcl-package->ecl-package sbcl-xmls))
11233
11234 (define-public sbcl-geco
11235 (package
11236 (name "sbcl-geco")
11237 (version "2.01a")
11238 (source
11239 (origin
11240 (method url-fetch)
11241 (uri (string-append "https://common-lisp.net/project/geco/download/"
11242 "geco-" version ".tar.gz"))
11243 (sha256
11244 (base32 "0kk0bzr1019cfmf2b1jl1rk9shv3gx5z1znifxllg9mb98yqsgw0"))
11245 (patches (search-patches "sbcl-geco-fix-organism-class.patch"))))
11246 (build-system asdf-build-system/sbcl)
11247 (home-page "https://common-lisp.net/project/geco/")
11248 (synopsis "Genetic algorithm toolkit for Common Lisp")
11249 (description
11250 "GECO (Genetic Evolution through Combination of Objects) is an extensible,
11251 object-oriented framework for prototyping genetic algorithms in Common Lisp.")
11252 (license license:lgpl2.1+)))
11253
11254 (define-public cl-geco
11255 (sbcl-package->cl-source-package sbcl-geco))
11256
11257 (define-public ecl-geco
11258 (sbcl-package->ecl-package sbcl-geco))
11259
11260 (define-public sbcl-html-entities
11261 (let ((commit "4af018048e891f41d77e7d680ed3aeb639e1eedb"))
11262 (package
11263 (name "sbcl-html-entities")
11264 (version (git-version "0.02" "1" commit))
11265 (source
11266 (origin
11267 (method git-fetch)
11268 (uri (git-reference
11269 (url "https://github.com/BnMcGn/html-entities/")
11270 (commit commit)))
11271 (file-name (git-file-name name version))
11272 (sha256
11273 (base32 "1b2yl6lf6vis17y4n5s505p7ica96bdafcl6vydy1hg50fy33nfr"))))
11274 (build-system asdf-build-system/sbcl)
11275 (inputs
11276 `(("ppcre" ,sbcl-cl-ppcre)))
11277 (native-inputs
11278 `(("fiveam" ,sbcl-fiveam)))
11279 (home-page "https://github.com/BnMcGn/html-entities/")
11280 (synopsis "Encode and decode entities in HTML with Common Lisp")
11281 (description "Html-entities is a Common Lisp library that lets you
11282 encode and decode entities in HTML.")
11283 (license license:expat))))
11284
11285 (define-public cl-html-entities
11286 (sbcl-package->cl-source-package sbcl-html-entities))
11287
11288 (define-public ecl-html-entities
11289 (sbcl-package->ecl-package sbcl-html-entities))
11290
11291 (define-public sbcl-quicksearch
11292 (let ((commit "fb02ecf7c876ec580ab18c7d2c8c7814c06af599"))
11293 (package
11294 (name "sbcl-quicksearch")
11295 (version (git-version "0.01.04" "1" commit))
11296 (source
11297 (origin
11298 (method git-fetch)
11299 (uri (git-reference
11300 (url "https://github.com/tkych/quicksearch/")
11301 (commit commit)))
11302 (file-name (git-file-name name version))
11303 (sha256
11304 (base32 "16k19zjkhh7r64vjq371k5jwjs7cdfjz83flh561n4h4v1z89fps"))))
11305 (build-system asdf-build-system/sbcl)
11306 (inputs
11307 `(("bordeaux-threads" ,sbcl-bordeaux-threads)
11308 ("iterate" ,sbcl-iterate)
11309 ("alexandria" ,sbcl-alexandria)
11310 ("anaphora" ,sbcl-anaphora)
11311 ("ppcre" ,sbcl-cl-ppcre)
11312 ("drakma" ,sbcl-drakma)
11313 ("html-entities" ,sbcl-html-entities)
11314 ("yason" ,sbcl-yason)
11315 ("flexi-streams" ,sbcl-flexi-streams)
11316 ("do-urlencode" ,sbcl-do-urlencode)))
11317 (home-page "https://github.com/tkych/quicksearch/")
11318 (synopsis "Search Engine Interface for Common Lisp packages")
11319 (description "Quicksearch is a search-engine-interface for Common Lisp.
11320 The goal of Quicksearch is to find the Common Lisp library quickly. For
11321 example, if you will find the library about json, just type @code{(qs:?
11322 'json)} at REPL.
11323
11324 The function @code{quicksearch} searches for Common Lisp projects in
11325 Quicklisp, Cliki, GitHub and BitBucket, then outputs results in REPL. The
11326 function @code{?} is abbreviation wrapper for @code{quicksearch}.")
11327 (license license:expat))))
11328
11329 (define-public cl-quicksearch
11330 (sbcl-package->cl-source-package sbcl-quicksearch))
11331
11332 (define-public ecl-quicksearch
11333 (sbcl-package->ecl-package sbcl-quicksearch))
11334
11335 (define-public sbcl-agutil
11336 (let ((commit "df188d754d472da9faa1601a48f1f37bb7b34d68"))
11337 (package
11338 (name "sbcl-agutil")
11339 (version (git-version "0.0.1" "1" commit))
11340 (source
11341 (origin
11342 (method git-fetch)
11343 (uri (git-reference
11344 (url "https://github.com/alex-gutev/agutil/")
11345 (commit commit)))
11346 (file-name (git-file-name name version))
11347 (sha256
11348 (base32 "1xpnyzksk2xld64b6lw6rw0gn5zxlb77jwna59sd4yl7kxhxlfpf"))))
11349 (build-system asdf-build-system/sbcl)
11350 (inputs
11351 `(("alexandria" ,sbcl-alexandria)
11352 ("trivia" ,sbcl-trivia)))
11353 (home-page "https://github.com/alex-gutev/agutil/")
11354 (synopsis "Collection of Common Lisp utilities")
11355 (description "A collection of Common Lisp utility functions and macros
11356 mostly not found in other utility packages.")
11357 (license license:expat))))
11358
11359 (define-public cl-agutil
11360 (sbcl-package->cl-source-package sbcl-agutil))
11361
11362 (define-public ecl-agutil
11363 (sbcl-package->ecl-package sbcl-agutil))
11364
11365 (define-public sbcl-custom-hash-table
11366 (let ((commit "f26983133940f5edf826ebbc8077acc04816ddfa"))
11367 (package
11368 (name "sbcl-custom-hash-table")
11369 (version (git-version "0.3" "1" commit))
11370 (source
11371 (origin
11372 (method git-fetch)
11373 (uri (git-reference
11374 (url "https://github.com/metawilm/cl-custom-hash-table")
11375 (commit commit)))
11376 (file-name (git-file-name name version))
11377 (sha256
11378 (base32 "1k4mvrpbqqds2fwjxp1bxmrfmr8ch4dkwhnkbw559knbqshvrlj5"))))
11379 (build-system asdf-build-system/sbcl)
11380 (arguments
11381 '(#:asd-files '("cl-custom-hash-table.asd")
11382 #:asd-systems '("cl-custom-hash-table")))
11383 (home-page "https://github.com/metawilm/cl-custom-hash-table")
11384 (synopsis "Custom hash tables for Common Lisp")
11385 (description "This library allows creation of hash tables with arbitrary
11386 @code{test}/@code{hash} functions, in addition to the @code{test} functions
11387 allowed by the standard (@code{EQ}, @code{EQL}, @code{EQUAL} and
11388 @code{EQUALP}), even in implementations that don't support this functionality
11389 directly.")
11390 (license license:expat))))
11391
11392 (define-public cl-custom-hash-table
11393 (sbcl-package->cl-source-package sbcl-custom-hash-table))
11394
11395 (define-public ecl-custom-hash-table
11396 (sbcl-package->ecl-package sbcl-custom-hash-table))
11397
11398 (define-public sbcl-collectors
11399 (let ((commit "13acef25d8422d1d82e067b1861e513587c166ee"))
11400 (package
11401 (name "sbcl-collectors")
11402 (version (git-version "0.1" "1" commit))
11403 (source
11404 (origin
11405 (method git-fetch)
11406 (uri (git-reference
11407 (url "https://github.com/AccelerationNet/collectors")
11408 (commit commit)))
11409 (file-name (git-file-name name version))
11410 (sha256
11411 (base32 "1si68n1j6rpns8jw6ksqjpb937pdl30v7xza8rld7j5vh0jhy2yi"))))
11412 (build-system asdf-build-system/sbcl)
11413 (inputs
11414 `(("alexandria" ,sbcl-alexandria)
11415 ("closer-mop" ,sbcl-closer-mop)
11416 ("symbol-munger" ,sbcl-symbol-munger)))
11417 (native-inputs
11418 `(("lisp-unit2" ,sbcl-lisp-unit2)))
11419 (home-page "https://github.com/AccelerationNet/collectors/")
11420 (synopsis "Common lisp library providing collector macros")
11421 (description "A small collection of common lisp macros to make
11422 collecting values easier.")
11423 (license license:bsd-3))))
11424
11425 (define-public cl-collectors
11426 (sbcl-package->cl-source-package sbcl-collectors))
11427
11428 (define-public ecl-collectors
11429 (sbcl-package->ecl-package sbcl-collectors))
11430
11431 (define-public sbcl-cl-environments
11432 (let ((commit "0b22154c5afefef23d1eba9a4fae11d73580ef41")) ; No version in 2 years.
11433 (package
11434 (name "sbcl-cl-environments")
11435 (version (git-version "0.2.3" "1" commit))
11436 (source
11437 (origin
11438 (method git-fetch)
11439 (uri (git-reference
11440 (url "https://github.com/alex-gutev/cl-environments")
11441 (commit commit)))
11442 (file-name (git-file-name name version))
11443 (sha256
11444 (base32
11445 "18r3wfarr7lgn78m6c66r0r9aazirv07gy7xgvqkl9pmrz1bc47m"))))
11446 (build-system asdf-build-system/sbcl)
11447 (propagated-inputs
11448 `(("alexandria" ,cl-alexandria)
11449 ("anaphora" ,cl-anaphora)
11450 ("collectors" ,cl-collectors)
11451 ("optima" ,cl-optima)))
11452 (native-inputs
11453 `(("prove" ,sbcl-prove)))
11454 (home-page "https://github.com/alex-gutev/cl-environments")
11455 (synopsis "Implements the Common Lisp standard environment access API")
11456 (description "This library provides a uniform API, as specified in Common
11457 Lisp the Language 2, for accessing information about variable and function
11458 bindings from implementation-defined lexical environment objects. All major
11459 Common Lisp implementations are supported, even those which don't support the
11460 CLTL2 environment access API.")
11461 (license license:expat))))
11462
11463 (define-public cl-environments
11464 (sbcl-package->cl-source-package sbcl-cl-environments))
11465
11466 (define-public ecl-environments
11467 (sbcl-package->ecl-package sbcl-cl-environments))
11468
11469 (define-public sbcl-static-dispatch
11470 (package
11471 (name "sbcl-static-dispatch")
11472 (version "0.3")
11473 (source
11474 (origin
11475 (method git-fetch)
11476 (uri (git-reference
11477 (url "https://github.com/alex-gutev/static-dispatch")
11478 (commit (string-append "v" version))))
11479 (file-name (git-file-name name version))
11480 (sha256
11481 (base32 "1wp5yz8liqqic3yifqf33qhccd755pd7ycvsq1j4i7k3f1wm18i0"))))
11482 (build-system asdf-build-system/sbcl)
11483 (inputs
11484 `(("agutil" ,sbcl-agutil)
11485 ("alexandria" ,sbcl-alexandria)
11486 ("anaphora" ,sbcl-anaphora)
11487 ("arrows" ,sbcl-arrows)
11488 ("closer-mop" ,sbcl-closer-mop)
11489 ("iterate" ,sbcl-iterate)
11490 ("trivia" ,sbcl-trivia)))
11491 (propagated-inputs
11492 ;; FIXME: `sbcl-cl-environments' input fails with
11493 ;;
11494 ;; compiling #<CL-SOURCE-FILE "collectors" "collectors">
11495 ;; Unhandled SB-INT:SIMPLE-FILE-ERROR in thread #<SB-THREAD:THREAD "main thread" RUNNING
11496 ;; {1008238213}>:
11497 ;; Error opening #P"/.../cl-environments/src/common/package-tmp5GEXGEG5.fasl":
11498 ;; Permission denied
11499 `(("cl-environments" ,cl-environments)))
11500 (native-inputs
11501 `(("prove" ,sbcl-prove)))
11502 (arguments
11503 `(#:phases
11504 (modify-phases %standard-phases
11505 ;; Use `arrows' instead of cl-arrows which is abandoned and unlicensed.
11506 ;; https://github.com/nightfly19/cl-arrows/issues/5
11507 (add-after 'unpack 'use-arrows-instead-of-cl-arrows
11508 (lambda _
11509 (for-each
11510 (lambda (file)
11511 (substitute* file
11512 ((":cl-arrows") ":arrows")))
11513 '("static-dispatch.asd"
11514 "src/package.lisp"
11515 "test/methods.lisp"
11516 "test/test.lisp")))))))
11517 (home-page "https://github.com/alex-gutev/static-dispatch")
11518 (synopsis "Static generic function dispatch for Common Lisp")
11519 (description "Static dispatch is a Common Lisp library, inspired by
11520 @code{inlined-generic-function}, which allows standard Common Lisp generic
11521 function dispatch to be performed statically (at compile time) rather than
11522 dynamically (runtime). This is similar to what is known as \"overloading\" in
11523 languages such as C++ and Java.
11524
11525 The purpose of static dispatch is to provide an optimization in cases where
11526 the usual dynamic dispatch is too slow, and the dynamic features of generic
11527 functions, such as adding/removing methods at runtime are not required. An
11528 example of such a case is a generic equality comparison function. Currently
11529 generic functions are considered far too slow to implement generic arithmetic
11530 and comparison operations when used heavily in numeric code.")
11531 (license license:expat)))
11532
11533 (define-public cl-static-dispatch
11534 (sbcl-package->cl-source-package sbcl-static-dispatch))
11535
11536 (define-public ecl-static-dispatch
11537 (sbcl-package->ecl-package sbcl-static-dispatch))
11538
11539 (define-public sbcl-generic-cl
11540 ;; Latest commit includes a necessary fix for our Guix build.
11541 (let ((commit "8e5a81487ee3c13fe5ffdc8bdda161d476639535"))
11542 (package
11543 (name "sbcl-generic-cl")
11544 (version (git-version "0.7.1" "1" commit))
11545 (source
11546 (origin
11547 (method git-fetch)
11548 (uri (git-reference
11549 (url "https://github.com/alex-gutev/generic-cl")
11550 (commit commit)))
11551 (file-name (git-file-name name version))
11552 (sha256
11553 (base32
11554 "11w0g79s4wmc78vmfng437rmsgnp5qn246zcyr540fp5nw0ad6ix"))))
11555 (build-system asdf-build-system/sbcl)
11556 (inputs
11557 `(("agutil" ,sbcl-agutil)
11558 ("alexandria" ,sbcl-alexandria)
11559 ("anaphora" ,sbcl-anaphora)
11560 ("arrows" ,sbcl-arrows)
11561 ("cl-custom-hash-table" ,sbcl-custom-hash-table)
11562 ("trivia" ,sbcl-trivia)))
11563 (propagated-inputs
11564 ;; FIXME: Same error as for `sbcl-static-dispatch'.
11565 `(("static-dispatch" ,cl-static-dispatch)))
11566 (native-inputs
11567 `(("prove" ,sbcl-prove)))
11568 (arguments
11569 ;; Tests fail because SBCL head size is not high enough.
11570 ;; https://github.com/alex-gutev/generic-cl/issues/6
11571 `(#:tests? #f))
11572 (home-page "https://alex-gutev.github.io/generic-cl/")
11573 (synopsis "Generic function interface to standard Common Lisp functions")
11574 (description "@code{generic-cl} provides a generic function wrapper over
11575 various functions in the Common Lisp standard, such as equality predicates and
11576 sequence operations. The goal of this wrapper is to provide a standard
11577 interface to common operations, such as testing for the equality of two
11578 objects, which is extensible to user-defined types.")
11579 (license license:expat))))
11580
11581 (define-public cl-generic-cl
11582 (sbcl-package->cl-source-package sbcl-generic-cl))
11583
11584 (define-public ecl-generic-cl
11585 (sbcl-package->ecl-package sbcl-generic-cl))
11586
11587 (define-public sbcl-defpackage-plus
11588 (let ((revision "0")
11589 (commit "5492e27e0bdb7b75fa5177ea4388519dc7a75f11"))
11590 (package
11591 (name "sbcl-defpackage-plus")
11592 (version (git-version "1.0" revision commit))
11593 (source
11594 (origin
11595 (method git-fetch)
11596 (uri (git-reference
11597 (url "https://github.com/rpav/defpackage-plus")
11598 (commit commit)))
11599 (file-name (git-file-name name version))
11600 (sha256
11601 (base32 "0lzljvf343xb6mlh6lni2i27hpm5qd376522mk6hr2pa20vd6rdq"))))
11602 (build-system asdf-build-system/sbcl)
11603 (inputs
11604 `(("alexandria" ,sbcl-alexandria)))
11605 (home-page "https://github.com/rpav/defpackage-plus")
11606 (synopsis "Extensible @code{DEFPACKAGE} variant with version support")
11607 (description
11608 "@code{DEFPACKAGE-PLUS} is an extensible @code{DEFPACKAGE} variant with
11609 predictable cross-platform behavior and some utilities useful for versioning.")
11610 (license license:bsd-2))))
11611
11612 (define-public cl-defpackage-plus
11613 (sbcl-package->cl-source-package sbcl-defpackage-plus))
11614
11615 (define-public ecl-defpackage-plus
11616 (sbcl-package->ecl-package sbcl-defpackage-plus))
11617
11618 (define-public sbcl-deploy
11619 ;; tagged branch is outdated
11620 (let ((revision "1")
11621 (commit "59fd49719ef651a8fc11750bcfb337f132cff75f"))
11622 (package
11623 (name "sbcl-deploy")
11624 (version (git-version "1.0.0" revision commit))
11625 (source
11626 (origin
11627 (method git-fetch)
11628 (uri (git-reference
11629 (url "https://github.com/Shinmera/deploy")
11630 (commit commit)))
11631 (file-name (git-file-name name version))
11632 (sha256
11633 (base32 "1vl2116z4kw2pd3qd3n6mmg8g0mnwxr9dgddk86g7j1bis1z8k9a"))))
11634 (build-system asdf-build-system/sbcl)
11635 (inputs
11636 `(("cffi" ,sbcl-cffi)
11637 ("documentation-utils" ,sbcl-documentation-utils)))
11638 (arguments
11639 '(#:asd-files '("deploy.asd")))
11640 (home-page "https://shinmera.github.io/deploy/")
11641 (synopsis "Deployment tools for standalone Common Lisp application")
11642 (description
11643 "This is a system to help you easily and quickly deploy standalone
11644 common lisp applications as binaries. Specifically it is geared towards
11645 applications with foreign library dependencies that run some kind of GUI.")
11646 (license license:artistic2.0))))
11647
11648 (define-public cl-deploy
11649 (sbcl-package->cl-source-package sbcl-deploy))
11650
11651 (define-public ecl-deploy
11652 (sbcl-package->ecl-package sbcl-deploy))
11653
11654 (define-public sbcl-deeds
11655 ;; taged branch is outdated
11656 (let ((revision "1")
11657 (commit "f5df54eac79b58a34030e0eb8acf3952c788410d"))
11658 (package
11659 (name "sbcl-deeds")
11660 (version (git-version "1.1.1" revision commit))
11661 (source
11662 (origin
11663 (method git-fetch)
11664 (uri (git-reference
11665 (url "https://github.com/Shinmera/deeds")
11666 (commit commit)))
11667 (file-name (git-file-name name version))
11668 (sha256
11669 (base32 "062cnb2dwli6pw3zvv46jfxyxdzcbzwsck5pa6nw03qf1j1hyg3k"))))
11670 (build-system asdf-build-system/sbcl)
11671 (inputs
11672 `(("bordeaux-threads" ,sbcl-bordeaux-threads)
11673 ("closer-mop" ,sbcl-closer-mop)
11674 ("form-fiddle" ,sbcl-form-fiddle)
11675 ("lambda-fiddle" ,sbcl-lambda-fiddle)))
11676 (home-page "https://github.com/Shinmera/deeds")
11677 (synopsis "Extensible Event Delivery System")
11678 (description
11679 "@code{deeds} allows for efficient event delivery to multiple handlers
11680 with a complex event filtering system.")
11681 (license license:zlib))))
11682
11683 (define-public cl-deeds
11684 (sbcl-package->cl-source-package sbcl-deeds))
11685
11686 (define-public ecl-deeds
11687 (sbcl-package->ecl-package sbcl-deeds))
11688
11689 (define-public sbcl-make-hash
11690 ;; no tagged branch
11691 (let ((revision "1")
11692 (commit "ae0909cd8e697520a1085fac6f54ac2b448ebd21"))
11693 (package
11694 (name "sbcl-make-hash")
11695 (version (git-version "1.0.2" revision commit))
11696 (source
11697 (origin
11698 (method git-fetch)
11699 (uri (git-reference
11700 (url "https://github.com/genovese/make-hash")
11701 (commit commit)))
11702 (file-name (git-file-name name version))
11703 (sha256
11704 (base32 "1qa4mcmb3pv44py0j129dd8hjx09c2akpnds53b69151mgwv5qz8"))))
11705 (build-system asdf-build-system/sbcl)
11706 (home-page "https://github.com/genovese/make-hash")
11707 (synopsis "Common Lisp package for flexible hash table creation")
11708 (description
11709 "This is a Common Lisp package for hash table creation with flexible,
11710 extensible initializers.")
11711 (license license:bsd-3))))
11712
11713 (define-public cl-make-hash
11714 (sbcl-package->cl-source-package sbcl-make-hash))
11715
11716 (define-public ecl-make-hash
11717 (sbcl-package->ecl-package sbcl-make-hash))
11718
11719 (define-public sbcl-claw-support
11720 (package
11721 (name "sbcl-claw-support")
11722 (version "1.0.0")
11723 (source
11724 (origin
11725 (method git-fetch)
11726 (uri (git-reference
11727 (url "https://github.com/borodust/claw-support")
11728 (commit "9a15c8bed04585f45e6a461bcda1b475144dbd0b")))
11729 (file-name (git-file-name name version))
11730 (sha256
11731 (base32 "1my2ka7h72ipx5n3b465g6kjkasrhsvhqlijwcg6dhlzs5yygl23"))))
11732 (build-system asdf-build-system/sbcl)
11733 (home-page "https://github.com/borodust/claw-support")
11734 (synopsis "Support routines for claw")
11735 (description
11736 "This package provides support routines for the @code{claw} Common Lisp
11737 package.")
11738 (license license:expat)))
11739
11740 (define-public cl-claw-support
11741 (sbcl-package->cl-source-package sbcl-claw-support))
11742
11743 (define-public ecl-claw-support
11744 (sbcl-package->ecl-package sbcl-claw-support))
11745
11746 (define-public sbcl-array-operations
11747 (let ((commit "75cbc3b1adb2e3ce2109489753d0f290b071e81b")
11748 (revision "0"))
11749 (package
11750 (name "sbcl-array-operations")
11751 (version (git-version "0.0.0" revision commit))
11752 (source
11753 (origin
11754 (method git-fetch)
11755 (uri (git-reference
11756 (url "https://github.com/bendudson/array-operations")
11757 (commit commit)))
11758 (file-name (git-file-name "array-operations" version))
11759 (sha256
11760 (base32 "0ip49hhq32w80qsc7jmspyda5r2rsszvw0mk2r3341cld78sz9ya"))))
11761 (build-system asdf-build-system/sbcl)
11762 (native-inputs
11763 `(("alexandria" ,sbcl-alexandria)
11764 ("clunit2" ,sbcl-clunit2)))
11765 (inputs
11766 `(("let-plus" ,sbcl-let-plus)))
11767 (synopsis "Simple array operations library for Common Lisp")
11768 (description
11769 "This library is a collection of functions and macros for manipulating
11770 Common Lisp arrays and performing numerical calculations with them.")
11771 (home-page "https://github.com/bendudson/array-operations")
11772 (license license:expat))))
11773
11774 (define-public cl-array-operations
11775 (sbcl-package->cl-source-package sbcl-array-operations))
11776
11777 (define-public ecl-array-operations
11778 (sbcl-package->ecl-package sbcl-array-operations))
11779
11780 (define-public sbcl-clml
11781 (let ((commit "95505b54c8c7b4b27f500c3be97fa5732f4b51a8")
11782 (revision "0"))
11783 (package
11784 (name "sbcl-clml")
11785 (version (git-version "0.0.0" revision commit))
11786 (source
11787 (origin
11788 (method git-fetch)
11789 (uri (git-reference
11790 (url "https://github.com/mmaul/clml")
11791 (commit commit)))
11792 (file-name (git-file-name "clml" version))
11793 (sha256
11794 (base32 "006pii59nmpc61n7p7h8ha5vjg6x0dya327i58z0rnvxs249h345"))
11795 ;; TODO: Remove this when the patch has been merged upstream.
11796 (patches (search-patches "sbcl-clml-fix-types.patch"))))
11797 (build-system asdf-build-system/sbcl)
11798 (inputs
11799 `(("alexandia" ,sbcl-alexandria)
11800 ("array-operations" ,sbcl-array-operations)
11801 ("cl-fad" ,sbcl-cl-fad)
11802 ("cl-ppcre" ,sbcl-cl-ppcre)
11803 ("drakma" ,sbcl-drakma)
11804 ("introspect-environment" ,sbcl-introspect-environment)
11805 ("iterate" ,sbcl-iterate)
11806 ("lparallel" ,sbcl-lparallel)
11807 ("parse-number" ,sbcl-parse-number)
11808 ("split-sequence" ,sbcl-split-sequence)
11809 ("trivial-garbage" ,sbcl-trivial-garbage)))
11810 (synopsis "Common Lisp machine learning library")
11811 (description
11812 "CLML (Common Lisp Machine Learning) is a high performance and large
11813 scale statistical machine learning package")
11814 (home-page "https://mmaul.github.io/clml/")
11815 (license license:llgpl))))
11816
11817 (define-public cl-clml
11818 (sbcl-package->cl-source-package sbcl-clml))
11819
11820 (define-public sbcl-utm-ups
11821 (let ((commit "780f1d8ab6290ad2be0f40e2cddc2535fa6fe979")
11822 (revision "0"))
11823 (package
11824 (name "sbcl-utm-ups")
11825 (version (git-version "1.0" revision commit))
11826 (source
11827 (origin
11828 (method git-fetch)
11829 (uri (git-reference
11830 (url "https://github.com/glv2/utm-ups")
11831 (commit commit)))
11832 (file-name (git-file-name "utm-ups" version))
11833 (sha256
11834 (base32 "0l3kr2m56skf5cx3kkkdcis7msmidcsixx9fqjapkcjsj8x67aqq"))))
11835 (build-system asdf-build-system/sbcl)
11836 (native-inputs
11837 `(("fiveam" ,sbcl-fiveam)))
11838 (synopsis
11839 "Convert coordinates between latitude/longitude and UTM or UPS")
11840 (description
11841 "This a Common Lisp library to convert geographic coordinates between
11842 latitude/longitude and UTM (Universal Transverse Mercator) or UPS (Universal
11843 Polar Stereographic).")
11844 (home-page "https://github.com/glv2/utm-ups")
11845 (license license:gpl3+))))
11846
11847 (define-public cl-utm-ups
11848 (sbcl-package->cl-source-package sbcl-utm-ups))
11849
11850 (define-public ecl-utm-ups
11851 (sbcl-package->ecl-package sbcl-utm-ups))
11852
11853 (define-public sbcl-mgrs
11854 (let ((commit "00455460407b7e5509d1be3da09bf6152956761f")
11855 (revision "0"))
11856 (package
11857 (name "sbcl-mgrs")
11858 (version (git-version "1.0" revision commit))
11859 (source
11860 (origin
11861 (method git-fetch)
11862 (uri (git-reference
11863 (url "https://github.com/glv2/mgrs")
11864 (commit commit)))
11865 (file-name (git-file-name "mgrs" version))
11866 (sha256
11867 (base32 "0ckvn4hg3wwivzavhfashb6fap4a1q10l8krhbng8bdb54ac10sz"))))
11868 (build-system asdf-build-system/sbcl)
11869 (native-inputs
11870 `(("fiveam" ,sbcl-fiveam)))
11871 (inputs
11872 `(("utm-ups" ,sbcl-utm-ups)))
11873 (synopsis
11874 "Convert coordinates between latitude/longitude and MGRS")
11875 (description
11876 "This a Common Lisp library to convert geographic coordinates between
11877 latitude/longitude and MGRS.")
11878 (home-page "https://github.com/glv2/mgrs")
11879 (license license:gpl3+))))
11880
11881 (define-public cl-mgrs
11882 (sbcl-package->cl-source-package sbcl-mgrs))
11883
11884 (define-public ecl-mgrs
11885 (sbcl-package->ecl-package sbcl-mgrs))
11886
11887 (define-public sbcl-maidenhead
11888 (let ((commit "b756d235c27b5d6798867aa240318af1a8f35d6d")
11889 (revision "0"))
11890 (package
11891 (name "sbcl-maidenhead")
11892 (version (git-version "1.0" revision commit))
11893 (source
11894 (origin
11895 (method git-fetch)
11896 (uri (git-reference
11897 (url "https://github.com/glv2/maidenhead")
11898 (commit commit)))
11899 (file-name (git-file-name "maidenhead" version))
11900 (sha256
11901 (base32 "02p990zprhjvifmsfk8yh3frvz6xyw26ikzxvzglqdixbal36nr3"))))
11902 (build-system asdf-build-system/sbcl)
11903 (native-inputs
11904 `(("fiveam" ,sbcl-fiveam)))
11905 (synopsis
11906 "Convert coordinates between latitude/longitude and Maidenhead")
11907 (description
11908 "This a Common Lisp library to convert geographic coordinates between
11909 latitude/longitude and Maidenhead locator system.")
11910 (home-page "https://github.com/glv2/maidenhead")
11911 (license license:gpl3+))))
11912
11913 (define-public cl-maidenhead
11914 (sbcl-package->cl-source-package sbcl-maidenhead))
11915
11916 (define-public ecl-maidenhead
11917 (sbcl-package->ecl-package sbcl-maidenhead))
11918
11919 (define-public sbcl-olc
11920 (let ((commit "517e27fa57d9a119b00a29c4b6b31e553deff309")
11921 (revision "0"))
11922 (package
11923 (name "sbcl-olc")
11924 (version (git-version "1.0" revision commit))
11925 (source
11926 (origin
11927 (method git-fetch)
11928 (uri (git-reference
11929 (url "https://github.com/glv2/olc")
11930 (commit commit)))
11931 (file-name (git-file-name "olc" version))
11932 (sha256
11933 (base32 "1lnfhp6z6kc8l605zp4siyjiw74y1h4bdq3jfizi084v505wxhgr"))))
11934 (build-system asdf-build-system/sbcl)
11935 (native-inputs
11936 `(("fiveam" ,sbcl-fiveam)))
11937 (synopsis
11938 "Convert coordinates between latitude/longitude and Open Location Code")
11939 (description
11940 "This a Common Lisp library to convert geographic coordinates between
11941 latitude/longitude and Open Location Code.")
11942 (home-page "https://github.com/glv2/olc")
11943 (license license:gpl3+))))
11944
11945 (define-public cl-olc
11946 (sbcl-package->cl-source-package sbcl-olc))
11947
11948 (define-public ecl-olc
11949 (sbcl-package->ecl-package sbcl-olc))
11950
11951 (define-public sbcl-regex
11952 (let ((commit "fbc9a9f313b9edc1788f33d4b23a29151635ae22"))
11953 (package
11954 (name "sbcl-regex")
11955 (version (git-version "1" "1" commit))
11956 (source
11957 (origin
11958 (method git-fetch)
11959 (uri (git-reference
11960 (url "https://github.com/michaelw/regex/")
11961 (commit commit)))
11962 (file-name (git-file-name name version))
11963 (sha256
11964 (base32 "0wq5wlafrxv13wg28hg5b10sc48b88swsvznpy2zg7x37m4nmm6a"))))
11965 (build-system asdf-build-system/sbcl)
11966 (home-page "https://github.com/michaelw/regex/")
11967 (synopsis "Regular expression engine for Common Lisp")
11968 (description
11969 "This Common Lisp package provides a regular expression engine.")
11970 (license license:bsd-2))))
11971
11972 (define-public cl-regex
11973 (sbcl-package->cl-source-package sbcl-regex))
11974
11975 (define-public ecl-regex
11976 (sbcl-package->ecl-package sbcl-regex))
11977
11978 (define-public sbcl-clawk
11979 (let ((commit "3a91634df686417114044a98c063cbe76bfac7b6"))
11980 (package
11981 (name "sbcl-clawk")
11982 (version (git-version "4" "1" commit))
11983 (source
11984 (origin
11985 (method git-fetch)
11986 (uri (git-reference
11987 (url "https://github.com/sharplispers/clawk")
11988 (commit commit)))
11989 (file-name (git-file-name name version))
11990 (sha256
11991 (base32 "1ph3xjqilvinvgr9q3w47zxqyz1sqnq030nlx7kgkkv8j3bnqk7a"))))
11992 (build-system asdf-build-system/sbcl)
11993 (inputs
11994 `(("sbcl-regex" ,sbcl-regex)))
11995 (home-page "https://github.com/sharplispers/clawk")
11996 (synopsis "Common Lisp AWK")
11997 (description
11998 "CLAWK is an AWK implementation embedded into Common Lisp.")
11999 (license license:bsd-2))))
12000
12001 (define-public cl-clawk
12002 (sbcl-package->cl-source-package sbcl-clawk))
12003
12004 (define-public ecl-clawk
12005 (sbcl-package->ecl-package sbcl-clawk))
12006
12007 (define-public sbcl-check-it
12008 (let ((commit "b79c9103665be3976915b56b570038f03486e62f"))
12009 (package
12010 (name "sbcl-check-it")
12011 (version (git-version "0.1.0" "1" commit))
12012 (source
12013 (origin
12014 (method git-fetch)
12015 (uri (git-reference
12016 (url "https://github.com/DalekBaldwin/check-it/")
12017 (commit commit)))
12018 (file-name (git-file-name name version))
12019 (sha256
12020 (base32 "1kbjwpniffdpv003igmlz5r0vy65m7wpfnhg54fhwirp1227hgg7"))))
12021 (build-system asdf-build-system/sbcl)
12022 (inputs
12023 `(("alexandria" ,sbcl-alexandria)
12024 ("closer-mop" ,sbcl-closer-mop)
12025 ("optima" ,sbcl-optima)))
12026 (native-inputs
12027 `(("stefil" ,sbcl-stefil)))
12028 (home-page "https://github.com/arclanguage/Clamp")
12029 (synopsis "Randomized specification-based testing for Common Lisp")
12030 (description
12031 "This is a randomized property-based testing library for Common Lisp.
12032 Rather than being a full-fledged general test framework in its own right, it's
12033 designed to embed randomized tests in whatever framework you like.")
12034 (license license:llgpl))))
12035
12036 (define-public cl-check-it
12037 (sbcl-package->cl-source-package sbcl-check-it))
12038
12039 (define-public ecl-check-it
12040 (sbcl-package->ecl-package sbcl-check-it))
12041
12042 (define-public sbcl-clamp
12043 (let ((commit "02b8f3953e5753cc61a719807c82f3795cd28fe1"))
12044 (package
12045 (name "sbcl-clamp")
12046 (version (git-version "0.3" "1" commit))
12047 (source
12048 (origin
12049 (method git-fetch)
12050 (uri (git-reference
12051 (url "https://github.com/arclanguage/Clamp")
12052 (commit commit)))
12053 (file-name (git-file-name name version))
12054 (sha256
12055 (base32 "0fdr9nqfmmpxm6hvjdxi1jkclya9xlnrw1yc3cn1m4ww3f50p31m"))))
12056 (build-system asdf-build-system/sbcl)
12057 (inputs
12058 `(("iterate" ,sbcl-iterate)
12059 ("cl-syntax" ,sbcl-cl-syntax)))
12060 (native-inputs
12061 `(("cl-unit" ,sbcl-clunit)
12062 ("check-it" ,sbcl-check-it)))
12063 (arguments
12064 `(#:phases
12065 (modify-phases %standard-phases
12066 (add-after 'unpack 'fix-build
12067 (lambda _
12068 (substitute* "clamp.asd"
12069 (("\\(:file \"read\" :depends-on \\(\"aliases\"\\)\\)")
12070 "(:file \"read\" :depends-on (\"aliases\" \"base\"))"))
12071 #t)))))
12072 (home-page "https://github.com/arclanguage/Clamp")
12073 (synopsis "Common Lisp with Arc macros and procedures")
12074 (description
12075 "Clamp is an attempt to bring the powerful, but verbose, language of
12076 Common Lisp up to the terseness of Arc.
12077
12078 There are two parts to Clamp. There is the core of Clamp, which implements
12079 the utilities of Arc that are easily converted from Arc to Common Lisp. The
12080 other part is the \"experimental\" part. It contains features of Arc that are
12081 not so easy to copy (ssyntax, argument destructuring, etc.).")
12082 (license license:artistic2.0))))
12083
12084 (define-public cl-clamp
12085 (sbcl-package->cl-source-package sbcl-clamp))
12086
12087 (define-public ecl-clamp
12088 (sbcl-package->ecl-package sbcl-clamp))
12089
12090 (define-public sbcl-trivial-shell
12091 (let ((commit "e02ec191b34b52deca5d1c4ee99d4fa13b8772e0"))
12092 (package
12093 (name "sbcl-trivial-shell")
12094 (version (git-version "0.2.0" "1" commit))
12095 (source
12096 (origin
12097 (method git-fetch)
12098 (uri (git-reference
12099 (url "https://github.com/gwkkwg/trivial-shell")
12100 (commit commit)))
12101 (file-name (git-file-name name version))
12102 (sha256
12103 (base32 "08mpkl5ij5sjfsyn8pq2kvsvpvyvr7ha1r8g1224fa667b8k2q85"))))
12104 (build-system asdf-build-system/sbcl)
12105 (native-inputs
12106 `(("lift" ,sbcl-lift)))
12107 (home-page "http://common-lisp.net/project/trivial-shell/")
12108 (synopsis "Common Lisp access to the shell")
12109 (description
12110 "A simple Common-Lisp interface to the underlying operating system.
12111 It's independent of the implementation and operating system.")
12112 (license license:expat))))
12113
12114 (define-public cl-trivial-shell
12115 (sbcl-package->cl-source-package sbcl-trivial-shell))
12116
12117 (define-public ecl-trivial-shell
12118 (sbcl-package->ecl-package sbcl-trivial-shell))
12119
12120 (define-public sbcl-clesh
12121 (let ((commit "44e96e04a72e5bc006dc4eb02ce8962348dd4a11"))
12122 (package
12123 (name "sbcl-clesh")
12124 (version (git-version "0.0.0" "1" commit))
12125 (source
12126 (origin
12127 (method git-fetch)
12128 (uri (git-reference
12129 (url "https://github.com/Neronus/Clesh")
12130 (commit commit)))
12131 (file-name (git-file-name name version))
12132 (sha256
12133 (base32 "012ry02djnqyvvs61wbbqj3saz621w2l9gczrywdxhi5p4ycx318"))))
12134 (build-system asdf-build-system/sbcl)
12135 (inputs
12136 `(("trivial-shell" ,sbcl-trivial-shell)
12137 ("named-readtables" ,sbcl-named-readtables)))
12138 (home-page "https://github.com/Neronus/Clesh")
12139 (synopsis "Embed shell code in Common Lisp")
12140 (description
12141 "This is a very short and simple program, written in Common Lisp, that
12142 extends Common Lisp to embed shell code in a manner similar to Perl's
12143 backtick. It has been forked from SHELISP.")
12144 (license license:bsd-2))))
12145
12146 (define-public cl-clesh
12147 (sbcl-package->cl-source-package sbcl-clesh))
12148
12149 (define-public ecl-clesh
12150 (sbcl-package->ecl-package sbcl-clesh))
12151
12152 (define-public sbcl-trivial-download
12153 (let ((commit "d2472061d86b1cf3d32f388daacd4e32a13af699"))
12154 (package
12155 (name "sbcl-trivial-download")
12156 (version (git-version "0.3" "1" commit))
12157 (source
12158 (origin
12159 (method git-fetch)
12160 (uri (git-reference
12161 (url "https://github.com/eudoxia0/trivial-download/")
12162 (commit commit)))
12163 (file-name (git-file-name name version))
12164 (sha256
12165 (base32 "06f46zr3gp3wlm2kgxna24qd2gpr1v89x9fynh1x5vrw6c6hqjcv"))))
12166 (build-system asdf-build-system/sbcl)
12167 (inputs
12168 `(("drakma" ,sbcl-drakma)))
12169 (home-page "https://github.com/eudoxia0/trivial-download/")
12170 (synopsis "Download files from Common Lisp")
12171 (description
12172 "@code{trivial-download} allows you to download files from the Internet
12173 from Common Lisp. It provides a progress bar.")
12174 (license license:bsd-2))))
12175
12176 (define-public cl-trivial-download
12177 (sbcl-package->cl-source-package sbcl-trivial-download))
12178
12179 (define-public ecl-trivial-download
12180 (sbcl-package->ecl-package sbcl-trivial-download))
12181
12182 (define-public sbcl-gtwiwtg
12183 (package
12184 (name "sbcl-gtwiwtg")
12185 (version "0.1.1")
12186 (source
12187 (origin
12188 (method git-fetch)
12189 (uri (git-reference
12190 (url "https://github.com/cbeo/gtwiwtg/")
12191 (commit version)))
12192 (file-name (git-file-name name version))
12193 (sha256
12194 (base32 "0lkraw0dwh4is4x5sp5rjrw6f93m0gr9849abrbi12s25ws7jbw4"))))
12195 (build-system asdf-build-system/sbcl)
12196 (native-inputs
12197 `(("osicat" ,sbcl-osicat)
12198 ("prove" ,sbcl-prove)))
12199 (home-page "https://github.com/cbeo/gtwiwtg/")
12200 (synopsis "Naive generators for Common Lisp")
12201 (description
12202 "The GTWIWTG library (Generators The Way I Want Them Generated --
12203 technically not generators, but iterators) is meant to be small, explorable,
12204 and understandable.")
12205 (license license:gpl3)))
12206
12207 (define-public cl-gtwiwtg
12208 (sbcl-package->cl-source-package sbcl-gtwiwtg))
12209
12210 (define-public ecl-gtwiwtg
12211 (sbcl-package->ecl-package sbcl-gtwiwtg))
12212
12213 (define-public sbcl-cl-progress-bar
12214 (let ((commit "9374170858663c8fe829e9fb5a29bd2cb48d95ae"))
12215 (package
12216 (name "sbcl-cl-progress-bar")
12217 (version (git-version "0.0.0" "1" commit))
12218 (source
12219 (origin
12220 (method git-fetch)
12221 (uri (git-reference
12222 (url "https://github.com/sirherrbatka/cl-progress-bar/")
12223 (commit commit)))
12224 (file-name (git-file-name name version))
12225 (sha256
12226 (base32 "1ldb4qhmx431n3lsq71ynwb9ybazbfqd55icjbhi06mj52ngndir"))))
12227 (build-system asdf-build-system/sbcl)
12228 (inputs
12229 `(("bordeaux-threads" ,sbcl-bordeaux-threads)
12230 ("documentation-utils-extensions" ,sbcl-documentation-utils-extensions)))
12231 (home-page "https://github.com/sirherrbatka/cl-progress-bar/")
12232 (synopsis "Progress bars in Common Lisp")
12233 (description
12234 "This library provides almost the same code as used inside Quicklisp
12235 for drawning progress bars")
12236 (license license:expat))))
12237
12238 (define-public cl-progress-bar
12239 (sbcl-package->cl-source-package sbcl-cl-progress-bar))
12240
12241 (define-public ecl-cl-progress-bar
12242 (sbcl-package->ecl-package sbcl-cl-progress-bar))
12243
12244 (define-public sbcl-repl-utilities
12245 (let ((commit "e0de9c92e774f77cab1a4cd92e2ac922ac3a807e"))
12246 (package
12247 (name "sbcl-repl-utilities")
12248 (version (git-version "0.0.0" "1" commit))
12249 (source
12250 (origin
12251 (method git-fetch)
12252 (uri (git-reference
12253 (url "https://github.com/m-n/repl-utilities/")
12254 (commit commit)))
12255 (file-name (git-file-name name version))
12256 (sha256
12257 (base32 "1r5icmw3ha5y77kvzqni3a9bcd66d9pz5mjsbw04xg3jk0d15cgz"))))
12258 (build-system asdf-build-system/sbcl)
12259 (home-page "https://github.com/m-n/repl-utilities")
12260 (synopsis "Ease common tasks at the Common Lisp REPL")
12261 (description
12262 "@code{repl-utilities} is a set of utilities which ease life at the
12263 REPL. It includes three sorts of features: introspective procedures,
12264 miscellaneous utility functions, and, pulling them together, methods to
12265 conveniently keep these symbols and optionally additional symbols available in
12266 whichever package you switch to.")
12267 (license license:bsd-2))))
12268
12269 (define-public cl-repl-utilities
12270 (sbcl-package->cl-source-package sbcl-repl-utilities))
12271
12272 (define-public ecl-repl-utilities
12273 (sbcl-package->ecl-package sbcl-repl-utilities))
12274
12275 (define-public sbcl-supertrace
12276 (let ((commit "66d22c3ff131ecd1c8048dfced1d62ed6024ecb0"))
12277 (package
12278 (name "sbcl-supertrace")
12279 (version (git-version "0.1.0" "1" commit))
12280 (source
12281 (origin
12282 (method git-fetch)
12283 (uri (git-reference
12284 (url "https://github.com/fukamachi/supertrace")
12285 (commit commit)))
12286 (file-name (git-file-name name version))
12287 (sha256
12288 (base32 "0n369n6b7y1m49biccnnr7svymjdsk8sksrkqrn3mj21vgv7s7bg"))))
12289 (build-system asdf-build-system/sbcl)
12290 (native-inputs
12291 `(("cffi-grovel" ,sbcl-cffi)
12292 ("rove" ,sbcl-rove)
12293 ("cl-ppcre" ,sbcl-cl-ppcre)
12294 ("bordeaux-threads" ,sbcl-bordeaux-threads)))
12295 (inputs
12296 `(("cffi" ,sbcl-cffi)))
12297 (home-page "https://github.com/fukamachi/supertrace")
12298 (synopsis "Improved Common Lisp tracing for debugging and profiling")
12299 (description
12300 "Supertrace provides a superior Common Lisp @code{trace} functionality
12301 for debugging and profiling real world applications.")
12302 (license license:bsd-2))))
12303
12304 (define-public cl-supertrace
12305 (sbcl-package->cl-source-package sbcl-supertrace))
12306
12307 (define-public ecl-supertrace
12308 (sbcl-package->ecl-package sbcl-supertrace))
12309
12310 (define-public sbcl-trivial-benchmark
12311 (let ((commit "42d76733dd2e873471c6f1e27d39113293f7dd5c"))
12312 (package
12313 (name "sbcl-trivial-benchmark")
12314 (version (git-version "2.0.0" "1" commit))
12315 (source
12316 (origin
12317 (method git-fetch)
12318 (uri (git-reference
12319 (url "https://github.com/Shinmera/trivial-benchmark/")
12320 (commit commit)))
12321 (file-name (git-file-name name version))
12322 (sha256
12323 (base32 "0fbzqbpm2ixz85555krl36kbbbjyn699vdj6k383khi3g9y629fa"))))
12324 (build-system asdf-build-system/sbcl)
12325 (inputs
12326 `(("alexandria" ,sbcl-alexandria)))
12327 (home-page "http://shinmera.github.io/trivial-benchmark/")
12328 (synopsis "Easy to use benchmarking system for Common Lisp")
12329 (description
12330 "Trivial-Benchmark runs a block of code many times and outputs some
12331 statistical data for it. On SBCL this includes the data from @code{time}, for
12332 all other implementations just the @code{real-time} and @code{run-time} data.
12333 However, you can extend the system by adding your own @code{metrics} to it, or
12334 even by adding additional statistical @code{compute}ations. ")
12335 (license license:zlib))))
12336
12337 (define-public cl-trivial-benchmark
12338 (sbcl-package->cl-source-package sbcl-trivial-benchmark))
12339
12340 (define-public ecl-trivial-benchmark
12341 (sbcl-package->ecl-package sbcl-trivial-benchmark))
12342
12343 (define-public sbcl-glyphs
12344 (let ((commit "1ff5714e8c1dca327bc604dfe3e3d1f4b7755373"))
12345 (package
12346 (name "sbcl-glyphs")
12347 (version (git-version "0.0.0" "1" commit))
12348 (source
12349 (origin
12350 (method git-fetch)
12351 (uri (git-reference
12352 (url "https://github.com/ahungry/glyphs/")
12353 (commit commit)))
12354 (file-name (git-file-name name version))
12355 (sha256
12356 (base32 "17kai1anbkk5dj5sbrsin2fc019cmcbglb900db60v38myj0y0wf"))))
12357 (build-system asdf-build-system/sbcl)
12358 (inputs
12359 `(("cl-ppcre" ,sbcl-cl-ppcre)
12360 ("parenscript" ,sbcl-parenscript)
12361 ("named-readtables" ,sbcl-named-readtables)))
12362 (home-page "https://github.com/ahungry/glyphs/")
12363 (synopsis "Reduce Common Lisp verbosity")
12364 (description
12365 "This library is a little experiment in reducing verbosity in Common
12366 Lisp, inspired by BODOL (@url{https://github.com/bodil/BODOL}).")
12367 (license license:gpl3))))
12368
12369 (define-public cl-glyphs
12370 (sbcl-package->cl-source-package sbcl-glyphs))
12371
12372 (define-public ecl-glyphs
12373 (sbcl-package->ecl-package sbcl-glyphs))