gnu: Add cl-seedable-rng.
[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, 2021 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, 2021 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, 2021 Adam Kandur <rndd@tuta.io>
23 ;;; Copyright © 2020, 2021 Sharlatan Hellseher <sharlatanus@gmail.com>
24 ;;; Copyright © 2021 Aurora <rind38@disroot.org>
25 ;;; Copyright © 2021 Matthew Kraai <kraai@ftbfs.org>
26 ;;;
27 ;;; This file is part of GNU Guix.
28 ;;;
29 ;;; GNU Guix is free software; you can redistribute it and/or modify it
30 ;;; under the terms of the GNU General Public License as published by
31 ;;; the Free Software Foundation; either version 3 of the License, or (at
32 ;;; your option) any later version.
33 ;;;
34 ;;; GNU Guix is distributed in the hope that it will be useful, but
35 ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
36 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
37 ;;; GNU General Public License for more details.
38 ;;;
39 ;;; You should have received a copy of the GNU General Public License
40 ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
41
42 ;;; This file only contains Common Lisp libraries.
43 ;;; Common Lisp compilers and tooling go to lisp.scm.
44 ;;; Common Lisp applications should go to the most appropriate file,
45 ;;; e.g. StumpWM is in wm.scm.
46
47 (define-module (gnu packages lisp-xyz)
48 #:use-module (gnu packages)
49 #:use-module ((guix licenses) #:prefix license:)
50 #:use-module (guix packages)
51 #:use-module (guix download)
52 #:use-module (guix git-download)
53 #:use-module (guix hg-download)
54 #:use-module (guix utils)
55 #:use-module (guix build-system asdf)
56 #:use-module (guix build-system trivial)
57 #:use-module (gnu packages base)
58 #:use-module (gnu packages c)
59 #:use-module (gnu packages compression)
60 #:use-module (gnu packages databases)
61 #:use-module (gnu packages enchant)
62 #:use-module (gnu packages file)
63 #:use-module (gnu packages fonts)
64 #:use-module (gnu packages fontutils)
65 #:use-module (gnu packages glib)
66 #:use-module (gnu packages gtk)
67 #:use-module (gnu packages imagemagick)
68 #:use-module (gnu packages libevent)
69 #:use-module (gnu packages libffi)
70 #:use-module (gnu packages linux)
71 #:use-module (gnu packages lisp)
72 #:use-module (gnu packages maths)
73 #:use-module (gnu packages mp3)
74 #:use-module (gnu packages networking)
75 #:use-module (gnu packages pkg-config)
76 #:use-module (gnu packages python)
77 #:use-module (gnu packages python-xyz)
78 #:use-module (gnu packages sqlite)
79 #:use-module (gnu packages tcl)
80 #:use-module (gnu packages tls)
81 #:use-module (gnu packages web)
82 #:use-module (gnu packages webkit)
83 #:use-module (gnu packages xdisorg)
84 #:use-module (ice-9 match)
85 #:use-module (srfi srfi-1)
86 #:use-module (srfi srfi-19))
87
88 (define-public sbcl-alexandria
89 (package
90 (name "sbcl-alexandria")
91 (version "1.2")
92 (source
93 (origin
94 (method git-fetch)
95 (uri (git-reference
96 (url "https://gitlab.common-lisp.net/alexandria/alexandria.git")
97 (commit (string-append "v" version))))
98 (sha256
99 (base32
100 "0bcqs0z9xlqgjz43qzgq9i07vdlnjllpm1wwa37wpkg0w975r712"))
101 (file-name (git-file-name name version))))
102 (build-system asdf-build-system/sbcl)
103 (native-inputs
104 `(("rt" ,sbcl-rt)))
105 (synopsis "Collection of portable utilities for Common Lisp")
106 (description
107 "Alexandria is a collection of portable utilities. It does not contain
108 conceptual extensions to Common Lisp. It is conservative in scope, and
109 portable between implementations.")
110 (home-page "https://common-lisp.net/project/alexandria/")
111 (license license:public-domain)))
112
113 (define-public cl-alexandria
114 (sbcl-package->cl-source-package sbcl-alexandria))
115
116 (define-public ecl-alexandria
117 (sbcl-package->ecl-package sbcl-alexandria))
118
119 (define-public sbcl-golden-utils
120 (let ((commit "9424419d867d5c2f819196ee41667a818a5058e7")
121 (revision "1"))
122 (package
123 (name "sbcl-golden-utils")
124 (version (git-version "0.0.0" revision commit))
125 (source
126 (origin
127 (method git-fetch)
128 (uri (git-reference
129 (url "https://git.mfiano.net/mfiano/golden-utils")
130 (commit commit)))
131 (file-name (git-file-name name version))
132 (sha256
133 (base32 "15x0phm6820yj3h37ibi06gjyh6z45sd2nz2n8lcbfflwm086q0h"))))
134 (build-system asdf-build-system/sbcl)
135 (inputs
136 `(("alexandria" ,sbcl-alexandria)))
137 (home-page "https://git.mfiano.net/mfiano/golden-utils")
138 (synopsis "Common Lisp utility library")
139 (description
140 "This is a Common Lisp library providing various utilities.")
141 (license license:expat))))
142
143 (define-public ecl-golden-utils
144 (sbcl-package->ecl-package sbcl-golden-utils))
145
146 (define-public cl-golden-utils
147 (sbcl-package->cl-source-package sbcl-golden-utils))
148
149 (define-public sbcl-asdf-finalizers
150 (let ((commit "7f537f6c598b662ae987c6acc268dd27c25977e0")
151 (revision "1"))
152 (package
153 (name "sbcl-asdf-finalizers")
154 (version (git-version "0.0.0" revision commit))
155 (source
156 (origin
157 (method git-fetch)
158 (uri (git-reference
159 (url "https://gitlab.common-lisp.net/asdf/asdf-finalizers")
160 (commit commit)))
161 (file-name (git-file-name name version))
162 (sha256
163 (base32 "1w56c9yjjydjshsgqxz57qlp2v3r4ilbisnsgiqphvxnhvd41y0v"))))
164 (build-system asdf-build-system/sbcl)
165 (native-inputs
166 `(("fare-utils" ,sbcl-fare-utils)
167 ("hu.dwim.stefil" ,sbcl-hu.dwim.stefil)))
168 (arguments
169 `(#:asd-files '("asdf-finalizers.asd"
170 "list-of.asd"
171 "asdf-finalizers-test.asd")
172 #:asd-systems '("asdf-finalizers"
173 "list-of")))
174 (home-page "https://gitlab.common-lisp.net/asdf/asdf-finalizers")
175 (synopsis "Enforced calling of finalizers for Lisp code")
176 (description "This library allows you to implement and enforce proper
177 finalization of compile-time constructs while building Lisp source files.
178
179 It produces two systems: asdf-finalizers and list-of.")
180 (license license:expat))))
181
182 (define-public ecl-asdf-finalizers
183 (sbcl-package->ecl-package sbcl-asdf-finalizers))
184
185 (define-public cl-asdf-finalizers
186 (sbcl-package->cl-source-package sbcl-asdf-finalizers))
187
188 (define-public sbcl-net.didierverna.asdf-flv
189 (package
190 (name "sbcl-net.didierverna.asdf-flv")
191 (version "2.1")
192 (source
193 (origin
194 (method git-fetch)
195 (uri (git-reference
196 (url "https://github.com/didierverna/asdf-flv")
197 (commit (string-append "version-" version))))
198 (file-name (git-file-name "asdf-flv" version))
199 (sha256
200 (base32 "1fi2y4baxan103jbg4idjddzihy03kwnj2mzbwrknw4d4x7xlgwj"))))
201 (build-system asdf-build-system/sbcl)
202 (synopsis "Common Lisp ASDF extension to provide support for file-local variables")
203 (description "ASDF-FLV provides support for file-local variables through
204 ASDF. A file-local variable behaves like @code{*PACKAGE*} and
205 @code{*READTABLE*} with respect to @code{LOAD} and @code{COMPILE-FILE}: a new
206 dynamic binding is created before processing the file, so that any
207 modification to the variable becomes essentially file-local.
208
209 In order to make one or several variables file-local, use the macros
210 @code{SET-FILE-LOCAL-VARIABLE(S)}.")
211 (home-page "https://www.lrde.epita.fr/~didier/software/lisp/misc.php#asdf-flv")
212 (license (license:non-copyleft
213 "https://www.gnu.org/prep/maintain/html_node/License-Notices-for-Other-Files.html"
214 "GNU All-Permissive License"))))
215
216 (define-public cl-net.didierverna.asdf-flv
217 (sbcl-package->cl-source-package sbcl-net.didierverna.asdf-flv))
218
219 (define-public ecl-net.didierverna.asdf-flv
220 (sbcl-package->ecl-package sbcl-net.didierverna.asdf-flv))
221
222 (define-public sbcl-command-line-arguments
223 (let ((commit "fbac862fb01c0e368141204f3f639920462c23fe")
224 (revision "1"))
225 (package
226 (name "sbcl-command-line-arguments")
227 (version (git-version "2.0.0" revision commit))
228 (source
229 (origin
230 (method git-fetch)
231 (uri (git-reference
232 (url "https://github.com/fare/command-line-arguments")
233 (commit commit)))
234 (file-name (git-file-name name version))
235 (sha256
236 (base32 "054m1ikndzqf72mb9ajaa64136cwr3bgag4yfbi1574a9vq75mjq"))))
237 (build-system asdf-build-system/sbcl)
238 (home-page "https://github.com/fare/command-line-arguments")
239 (synopsis "Trivial command-line argument parsing library for Common Lisp")
240 (description "This is a library to abstract away the parsing of
241 Unix-style command-line arguments. Use it in conjunction with asdf:program-op
242 or cl-launch for portable processing of command-line arguments.")
243 (license license:expat))))
244
245 (define-public ecl-command-line-arguments
246 (sbcl-package->ecl-package sbcl-command-line-arguments))
247
248 (define-public cl-command-line-arguments
249 (sbcl-package->cl-source-package sbcl-command-line-arguments))
250
251 (define-public sbcl-fiveam
252 (package
253 (name "sbcl-fiveam")
254 (version "1.4.1")
255 (source
256 (origin
257 (method git-fetch)
258 (uri (git-reference
259 (url "https://github.com/sionescu/fiveam")
260 (commit (string-append "v" version))))
261 (file-name (git-file-name "fiveam" version))
262 (sha256
263 (base32 "1q3d38pwafnwnw42clq0f8g5xw7pbzr287jl9jsqmb1vb0n1vrli"))))
264 (inputs
265 `(("alexandria" ,sbcl-alexandria)
266 ("net.didierverna.asdf-flv" ,sbcl-net.didierverna.asdf-flv)
267 ("trivial-backtrace" ,sbcl-trivial-backtrace)))
268 (build-system asdf-build-system/sbcl)
269 (synopsis "Common Lisp testing framework")
270 (description "FiveAM is a simple (as far as writing and running tests
271 goes) regression testing framework. It has been designed with Common Lisp's
272 interactive development model in mind.")
273 (home-page "https://common-lisp.net/project/fiveam/")
274 (license license:bsd-3)))
275
276 (define-public cl-fiveam
277 (sbcl-package->cl-source-package sbcl-fiveam))
278
279 (define-public ecl-fiveam
280 (sbcl-package->ecl-package sbcl-fiveam))
281
282 (define-public sbcl-trivial-timeout
283 (let ((commit "feb869357f40f5e109570fb40abad215fb370c6c")
284 (revision "1"))
285 (package
286 (name "sbcl-trivial-timeout")
287 (version (git-version "0.1.5" revision commit))
288 (source
289 (origin
290 (method git-fetch)
291 (uri (git-reference
292 (url "https://github.com/gwkkwg/trivial-timeout/")
293 (commit commit)))
294 (file-name (git-file-name "trivial-timeout" version))
295 (sha256
296 (base32 "1kninxwvvih9nhh7a9y8lfgi7pdr76675y1clw4ss17vz8fbim5p"))))
297 (build-system asdf-build-system/sbcl)
298 (native-inputs
299 `(("lift" ,sbcl-lift)))
300 (arguments
301 ;; NOTE: (Sharlatan-20210202T231437+0000): Due to the age of this library
302 ;; tests use some deprecated functionality and keep failing.
303 `(#:tests? #f))
304 (home-page "https://github.com/gwkkwg/trivial-timeout/")
305 (synopsis "Timeout library for Common Lisp")
306 (description
307 "This library provides an OS and implementation independent access to
308 timeouts.")
309 (license license:expat))))
310
311 (define-public ecl-trivial-timeout
312 (sbcl-package->ecl-package sbcl-trivial-timeout))
313
314 (define-public cl-trivial-timeout
315 (sbcl-package->cl-source-package sbcl-trivial-timeout))
316
317 (define-public sbcl-bordeaux-threads
318 (package
319 (name "sbcl-bordeaux-threads")
320 (version "0.8.8")
321 (source (origin
322 (method git-fetch)
323 (uri (git-reference
324 (url "https://github.com/sionescu/bordeaux-threads")
325 (commit (string-append "v" version))))
326 (sha256
327 (base32 "19i443fz3488v1pbbr9x24y8h8vlyhny9vj6c9jk5prm702awrp6"))
328 (file-name
329 (git-file-name "bordeaux-threads" version))))
330 (inputs `(("alexandria" ,sbcl-alexandria)))
331 (native-inputs `(("fiveam" ,sbcl-fiveam)))
332 (build-system asdf-build-system/sbcl)
333 (synopsis "Portable shared-state concurrency library for Common Lisp")
334 (description "BORDEAUX-THREADS is a proposed standard for a minimal
335 MP/Threading interface. It is similar to the CLIM-SYS threading and lock
336 support.")
337 (home-page "https://common-lisp.net/project/bordeaux-threads/")
338 (license license:x11)))
339
340 (define-public cl-bordeaux-threads
341 (sbcl-package->cl-source-package sbcl-bordeaux-threads))
342
343 (define-public ecl-bordeaux-threads
344 (sbcl-package->ecl-package sbcl-bordeaux-threads))
345
346 (define-public sbcl-trivial-gray-streams
347 (let ((revision "1")
348 (commit "ebd59b1afed03b9dc8544320f8f432fdf92ab010"))
349 (package
350 (name "sbcl-trivial-gray-streams")
351 (version (string-append "0.0.0-" revision "." (string-take commit 7)))
352 (source
353 (origin
354 (method git-fetch)
355 (uri
356 (git-reference
357 (url "https://github.com/trivial-gray-streams/trivial-gray-streams")
358 (commit commit)))
359 (sha256
360 (base32 "0b1pxlccmnagk9cbh4cy8s5k66g3x0gwib5shjwr24xvrji6lp94"))
361 (file-name
362 (string-append "trivial-gray-streams-" version "-checkout"))))
363 (build-system asdf-build-system/sbcl)
364 (synopsis "Compatibility layer for Gray streams implementations")
365 (description "Gray streams is an interface proposed for inclusion with
366 ANSI CL by David N. Gray. The proposal did not make it into ANSI CL, but most
367 popular CL implementations implement it. This package provides an extremely
368 thin compatibility layer for gray streams.")
369 (home-page "https://www.cliki.net/trivial-gray-streams")
370 (license license:x11))))
371
372 (define-public cl-trivial-gray-streams
373 (sbcl-package->cl-source-package sbcl-trivial-gray-streams))
374
375 (define-public ecl-trivial-gray-streams
376 (sbcl-package->ecl-package sbcl-trivial-gray-streams))
377
378 (define-public sbcl-fiasco
379 (let ((commit "d62f7558b21addc89f87e306f65d7f760632655f")
380 (revision "1"))
381 (package
382 (name "sbcl-fiasco")
383 (version (git-version "0.0.1" revision commit))
384 (source
385 (origin
386 (method git-fetch)
387 (uri (git-reference
388 (url "https://github.com/joaotavora/fiasco")
389 (commit commit)))
390 (file-name (git-file-name "fiasco" version))
391 (sha256
392 (base32
393 "1zwxs3d6iswayavcmb49z2892xhym7n556d8dnmvalc32pm9bkjh"))))
394 (build-system asdf-build-system/sbcl)
395 (inputs
396 `(("alexandria" ,sbcl-alexandria)
397 ("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
398 (synopsis "Simple and powerful test framework for Common Lisp")
399 (description "A Common Lisp test framework that treasures your failures,
400 logical continuation of Stefil. It focuses on interactive debugging.")
401 (home-page "https://github.com/joaotavora/fiasco")
402 ;; LICENCE specifies this is public-domain unless the legislation
403 ;; doesn't allow or recognize it. In that case it falls back to a
404 ;; permissive licence.
405 (license (list license:public-domain
406 (license:x11-style "file://LICENCE"))))))
407
408 (define-public cl-fiasco
409 (sbcl-package->cl-source-package sbcl-fiasco))
410
411 (define-public ecl-fiasco
412 (sbcl-package->ecl-package sbcl-fiasco))
413
414 (define-public sbcl-flexi-streams
415 (package
416 (name "sbcl-flexi-streams")
417 (version "1.0.18")
418 (source
419 (origin
420 (method git-fetch)
421 (uri (git-reference
422 (url "https://github.com/edicl/flexi-streams")
423 (commit (string-append "v" version))))
424 (file-name (git-file-name "flexi-streams" version))
425 (sha256
426 (base32 "0bjv7fd2acknidc5dyi3h85pn10krxv5jyxs1xg8jya2rlfv7f1j"))))
427 (build-system asdf-build-system/sbcl)
428 (arguments
429 `(#:phases
430 (modify-phases %standard-phases
431 (add-after 'unpack 'make-git-checkout-writable
432 (lambda _
433 (for-each make-file-writable (find-files "."))
434 #t)))))
435 (inputs `(("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
436 (synopsis "Implementation of virtual bivalent streams for Common Lisp")
437 (description "Flexi-streams is an implementation of \"virtual\" bivalent
438 streams that can be layered atop real binary or bivalent streams and that can
439 be used to read and write character data in various single- or multi-octet
440 encodings which can be changed on the fly. It also supplies in-memory binary
441 streams which are similar to string streams.")
442 (home-page "http://weitz.de/flexi-streams/")
443 (license license:bsd-3)))
444
445 (define-public cl-flexi-streams
446 (sbcl-package->cl-source-package sbcl-flexi-streams))
447
448 (define-public ecl-flexi-streams
449 (sbcl-package->ecl-package sbcl-flexi-streams))
450
451 (define-public sbcl-cl-abnf
452 ;; There are no releases
453 (let ((commit "ba1fbb104dedbdaddb1ef93d2e4da711bd96cd70")
454 (revision "1"))
455 (package
456 (name "sbcl-cl-abnf")
457 (version (git-version "0.0.0" revision commit))
458 (source
459 (origin
460 (method git-fetch)
461 (uri (git-reference
462 (url "https://github.com/dimitri/cl-abnf")
463 (commit commit)))
464 (file-name (git-file-name "cl-abnf" version))
465 (sha256
466 (base32 "0f09nsndxa90acm71zd4qdnp40v705a4sqm04mnv9x76h6dlggmz"))))
467 (build-system asdf-build-system/sbcl)
468 (inputs
469 `(("cl-ppcre" ,sbcl-cl-ppcre)
470 ("esrap" ,sbcl-esrap)))
471 (arguments
472 `(#:asd-systems '("abnf")))
473 (home-page "https://github.com/dimitri/cl-abnf")
474 (synopsis "ABNF parser generator for Common Lisp")
475 (description "This Common Lisp library implements a parser generator for
476 the ABNF grammar format as described in RFC2234. The generated parser is a
477 regular expression scanner provided by the cl-ppcre lib, which means that we
478 can't parse recursive grammar definition. One such definition is the ABNF
479 definition as given by the RFC. Fortunately, as you have this lib, you most
480 probably don't need to generate another parser to handle that particular ABNF
481 grammar.")
482 (license license:expat))))
483
484 (define-public cl-abnf
485 (sbcl-package->cl-source-package sbcl-cl-abnf))
486
487 (define-public ecl-cl-abnf
488 (sbcl-package->ecl-package sbcl-cl-abnf))
489
490 (define-public sbcl-cl-ppcre
491 (package
492 (name "sbcl-cl-ppcre")
493 (version "2.1.1")
494 (source
495 (origin
496 (method git-fetch)
497 (uri (git-reference
498 (url "https://github.com/edicl/cl-ppcre")
499 (commit (string-append "v" version))))
500 (file-name (git-file-name "cl-ppcre" version))
501 (sha256
502 (base32 "0dwvr29diqzcg5n6jvbk2rnd90i05l7n828hhw99khmqd0kz7xsi"))))
503 (build-system asdf-build-system/sbcl)
504 (native-inputs
505 `(("flexi-streams" ,sbcl-flexi-streams)))
506 (arguments
507 `(#:phases
508 (modify-phases %standard-phases
509 (add-after 'unpack 'disable-ppcre-unicode
510 ;; cl-ppcre and cl-ppcre-unicode are put in different packages
511 ;; to work around the circular dependency between edicl/cl-ppcre
512 ;; and edicl/cl-unicode.
513 (lambda _
514 (delete-file "cl-ppcre-unicode.asd")
515 #t)))))
516 (synopsis "Portable regular expression library for Common Lisp")
517 (description "CL-PPCRE is a portable regular expression library for Common
518 Lisp, which is compatible with perl. It is pretty fast, thread-safe, and
519 compatible with ANSI-compliant Common Lisp implementations.")
520 (home-page "http://weitz.de/cl-ppcre/")
521 (license license:bsd-2)))
522
523 (define-public cl-ppcre
524 (sbcl-package->cl-source-package sbcl-cl-ppcre))
525
526 (define-public ecl-cl-ppcre
527 (sbcl-package->ecl-package sbcl-cl-ppcre))
528
529 (define-public sbcl-ubiquitous
530 (let ((commit "35eb7bd9e1b3daee1705f6b41260775180cce8af")
531 (revision "1"))
532 (package
533 (name "sbcl-ubiquitous")
534 (version (git-version "2.0.0" revision commit))
535 (source
536 (origin
537 (method git-fetch)
538 (uri (git-reference
539 (url "https://github.com/Shinmera/ubiquitous")
540 (commit commit)))
541 (file-name (git-file-name "ubiquitous" version))
542 (sha256
543 (base32 "1xlkaqmjcpkiv2xl2s2pvvrv976dlc846wm16s1lj62iy1315i49"))))
544 (build-system asdf-build-system/sbcl)
545 (inputs
546 `(("bordeaux-threads" ,sbcl-bordeaux-threads)))
547 (arguments
548 '(#:asd-systems '("ubiquitous"
549 "ubiquitous-concurrent")))
550 (home-page "https://shinmera.github.io/ubiquitous/")
551 (synopsis "Application configuration mechanism for Common Lisp")
552 (description
553 "@code{UBIQUITOUS} is a very easy-to-use library for persistent
554 configuration storage. It automatically takes care of finding a suitable place
555 to save your data, and provides simple functions to access and modify the data
556 within.")
557 (license license:zlib))))
558
559 (define-public ecl-ubiquitous
560 (sbcl-package->ecl-package sbcl-ubiquitous))
561
562 (define-public cl-ubiquitous
563 (sbcl-package->cl-source-package sbcl-ubiquitous))
564
565 (define-public sbcl-uax-15
566 (package
567 (name "sbcl-uax-15")
568 (version "0.1.1")
569 (source
570 (origin
571 (method git-fetch)
572 (uri (git-reference
573 (url "https://github.com/sabracrolleton/uax-15")
574 (commit (string-append "v" version))))
575 (file-name (git-file-name "uax-15" version))
576 (sha256
577 (base32 "0p2ckw7mzxhwa9vbwj2q2dzayz9dl94d9yqd2ynp0pc5v8i0n2fr"))))
578 (build-system asdf-build-system/sbcl)
579 (arguments
580 `(#:asd-systems
581 '("uax-15")))
582 (native-inputs
583 `(("fiveam" ,sbcl-fiveam)))
584 (inputs
585 `(("cl-ppcre" ,sbcl-cl-ppcre)
586 ("split-sequence" ,sbcl-split-sequence)))
587 (home-page "https://github.com/sabracrolleton/uax-15")
588 (synopsis "Common Lisp implementation of unicode normalization functions")
589 (description
590 "This package provides supports for unicode normalization, RFC8264 and
591 RFC7564.")
592 (license license:expat)))
593
594 (define-public cl-uax-15
595 (sbcl-package->cl-source-package sbcl-uax-15))
596
597 (define-public ecl-uax-15
598 (sbcl-package->ecl-package sbcl-uax-15))
599
600 (define-public sbcl-cl-unicode
601 (package
602 (name "sbcl-cl-unicode")
603 (version "0.1.6")
604 (source (origin
605 (method git-fetch)
606 (uri (git-reference
607 (url "https://github.com/edicl/cl-unicode")
608 (commit (string-append "v" version))))
609 (file-name (git-file-name name version))
610 (sha256
611 (base32
612 "0ykx2s9lqfl74p1px0ik3l2izd1fc9jd1b4ra68s5x34rvjy0hza"))))
613 (build-system asdf-build-system/sbcl)
614 (native-inputs
615 `(("flexi-streams" ,sbcl-flexi-streams)))
616 (inputs
617 `(("cl-ppcre" ,sbcl-cl-ppcre)))
618 (home-page "http://weitz.de/cl-unicode/")
619 (synopsis "Portable Unicode library for Common Lisp")
620 (description "CL-UNICODE is a portable Unicode library Common Lisp, which
621 is compatible with perl. It is pretty fast, thread-safe, and compatible with
622 ANSI-compliant Common Lisp implementations.")
623 (license license:bsd-2)))
624
625 (define-public ecl-cl-unicode
626 (sbcl-package->ecl-package sbcl-cl-unicode))
627
628 (define-public cl-unicode
629 (sbcl-package->cl-source-package sbcl-cl-unicode))
630
631 (define-public sbcl-cl-ppcre-unicode
632 (package (inherit sbcl-cl-ppcre)
633 (name "sbcl-cl-ppcre-unicode")
634 (inputs
635 `(("sbcl-cl-ppcre" ,sbcl-cl-ppcre)
636 ("sbcl-cl-unicode" ,sbcl-cl-unicode)))
637 (arguments
638 `(#:tests? #f ; tests fail with "Component :CL-PPCRE-TEST not found"
639 #:phases
640 (modify-phases %standard-phases
641 (add-after 'unpack 'disable-ppcre
642 ;; cl-ppcre and cl-ppcre-unicode are put in different packages
643 ;; to work around the circular dependency between edicl/cl-ppcre
644 ;; and edicl/cl-unicode.
645 (lambda _
646 (delete-file "cl-ppcre.asd")
647 #t)))))))
648
649 (define-public cl-ppcre-unicode
650 (sbcl-package->cl-source-package sbcl-cl-ppcre-unicode))
651
652 (define-public ecl-cl-ppcre-unicode
653 (sbcl-package->ecl-package sbcl-cl-ppcre-unicode))
654
655 (define-public sbcl-zpb-ttf
656 (package
657 (name "sbcl-zpb-ttf")
658 (version "1.0.3")
659 (source
660 (origin
661 (method git-fetch)
662 (uri (git-reference
663 (url "https://github.com/xach/zpb-ttf")
664 (commit (string-append "release-" version))))
665 (file-name (git-file-name name version))
666 (sha256
667 (base32
668 "1wh66vjijzqlydnrihynpwp6796917xwrh0i9li93c17kyxa74ih"))))
669 (build-system asdf-build-system/sbcl)
670 (home-page "https://github.com/xach/zpb-ttf")
671 (synopsis "TrueType font file access for Common Lisp")
672 (description
673 "ZPB-TTF is a TrueType font file parser that provides an interface for
674 reading typographic metrics, glyph outlines, and other information from the
675 file.")
676 (license license:bsd-2)))
677
678 (define-public ecl-zpb-ttf
679 (sbcl-package->ecl-package sbcl-zpb-ttf))
680
681 (define-public cl-zpb-ttf
682 (sbcl-package->cl-source-package sbcl-zpb-ttf))
683
684 (define-public sbcl-cl-vectors
685 (package
686 (name "sbcl-cl-vectors")
687 (version "0.1.5")
688 (source
689 (origin
690 (method url-fetch)
691 (uri (string-append "http://projects.tuxee.net/cl-vectors/"
692 "files/cl-vectors-" version ".tar.gz"))
693 (sha256
694 (base32
695 "04lhwi0kq8pkwhgd885pk80m1cp9sfvjjn5zj70s1dnckibhdmqh"))))
696 (build-system asdf-build-system/sbcl)
697 (inputs
698 `(("zpb-ttf" ,sbcl-zpb-ttf)))
699 (arguments
700 '(#:asd-systems '("cl-vectors"
701 "cl-paths-ttf")))
702 (home-page "http://projects.tuxee.net/cl-vectors/")
703 (synopsis "Create, transform and render anti-aliased vectorial paths")
704 (description
705 "This is a pure Common Lisp library to create, transform and render
706 anti-aliased vectorial paths.")
707 (license license:expat)))
708
709 (define-public ecl-cl-vectors
710 (sbcl-package->ecl-package sbcl-cl-vectors))
711
712 (define-public cl-vectors
713 (sbcl-package->cl-source-package sbcl-cl-vectors))
714
715 (define-public sbcl-spatial-trees
716 ;; There have been no releases.
717 (let ((commit "81fdad0a0bf109c80a53cc96eca2e093823400ba")
718 (revision "1"))
719 (package
720 (name "sbcl-spatial-trees")
721 (version (git-version "0" revision commit))
722 (source
723 (origin
724 (method git-fetch)
725 (uri (git-reference
726 (url "https://github.com/rpav/spatial-trees")
727 (commit commit)))
728 (file-name (git-file-name name version))
729 (sha256
730 (base32
731 "11rhc6h501dwcik2igkszz7b9n515cr99m5pjh4r2qfwgiri6ysa"))))
732 (build-system asdf-build-system/sbcl)
733 (arguments
734 '(#:tests? #f ; spatial-trees.test requires spatial-trees.nns
735 #:test-asd-file "spatial-trees.test.asd"))
736 (native-inputs
737 `(("fiveam" ,sbcl-fiveam)))
738 (home-page "https://github.com/rpav/spatial-trees")
739 (synopsis "Dynamic index data structures for spatially-extended data")
740 (description
741 "Spatial-trees is a set of dynamic index data structures for
742 spatially-extended data.")
743 (license license:bsd-3))))
744
745 (define-public ecl-spatial-trees
746 (sbcl-package->ecl-package sbcl-spatial-trees))
747
748 (define-public cl-spatial-trees
749 (sbcl-package->cl-source-package sbcl-spatial-trees))
750
751 (define-public sbcl-flexichain
752 ;; There are no releases.
753 (let ((commit "13d2a6c505ed0abfcd4c4ec7d7145059b06855d6")
754 (revision "1"))
755 (package
756 (name "sbcl-flexichain")
757 (version "1.5.1")
758 (source
759 (origin
760 (method git-fetch)
761 (uri (git-reference
762 (url "https://github.com/robert-strandh/Flexichain")
763 (commit commit)))
764 (file-name (git-file-name name version))
765 (sha256
766 (base32
767 "0pfyvhsfbjd2sjb30grfs52r51a428xglv7bwydvpg2lc117qimg"))))
768 (build-system asdf-build-system/sbcl)
769 (home-page "https://github.com/robert-strandh/Flexichain.git")
770 (synopsis "Dynamically add elements to or remove them from sequences")
771 (description
772 "This package provides an implementation of the flexichain protocol,
773 allowing client code to dynamically add elements to, and delete elements from
774 a sequence (or chain) of such elements.")
775 (license license:lgpl2.1+))))
776
777 (define-public ecl-flexichain
778 (sbcl-package->ecl-package sbcl-flexichain))
779
780 (define-public cl-flexichain
781 (sbcl-package->cl-source-package sbcl-flexichain))
782
783 (define-public sbcl-cl-pdf
784 ;; There are no releases
785 (let ((commit "752e337e6d6fc206f09d091a982e7f8e5c404e4e")
786 (revision "1"))
787 (package
788 (name "sbcl-cl-pdf")
789 (version (git-version "0" revision commit))
790 (source
791 (origin
792 (method git-fetch)
793 (uri (git-reference
794 (url "https://github.com/mbattyani/cl-pdf")
795 (commit commit)))
796 (file-name (git-file-name name version))
797 (sha256
798 (base32
799 "1cg3k3m3r11ipb8j008y8ipynj97l3xjlpi2knqc9ndmx4r3kb1r"))))
800 (build-system asdf-build-system/sbcl)
801 (inputs
802 `(("iterate" ,sbcl-iterate)
803 ("zpb-ttf" ,sbcl-zpb-ttf)))
804 (home-page "https://github.com/mbattyani/cl-pdf")
805 (synopsis "Common Lisp library for generating PDF files")
806 (description
807 "CL-PDF is a cross-platform Common Lisp library for generating PDF
808 files.")
809 (license license:bsd-2))))
810
811 (define-public ecl-cl-pdf
812 (sbcl-package->ecl-package sbcl-cl-pdf))
813
814 (define-public cl-pdf
815 (sbcl-package->cl-source-package sbcl-cl-pdf))
816
817 (define-public sbcl-clx
818 (package
819 (name "sbcl-clx")
820 (version "0.7.5")
821 (source
822 (origin
823 (method git-fetch)
824 (uri
825 (git-reference
826 (url "https://github.com/sharplispers/clx")
827 (commit version)))
828 (sha256
829 (base32
830 "1vi67z9hpj5rr4xcmfbfwzmlcc0ah7hzhrmfid6lqdkva238v2wf"))
831 (file-name (string-append "clx-" version))))
832 (build-system asdf-build-system/sbcl)
833 (native-inputs
834 `(("fiasco" ,sbcl-fiasco)))
835 (home-page "https://www.cliki.net/portable-clx")
836 (synopsis "X11 client library for Common Lisp")
837 (description "CLX is an X11 client library for Common Lisp. The code was
838 originally taken from a CMUCL distribution, was modified somewhat in order to
839 make it compile and run under SBCL, then a selection of patches were added
840 from other CLXes around the net.")
841 (license license:x11)))
842
843 (define-public cl-clx
844 (sbcl-package->cl-source-package sbcl-clx))
845
846 (define-public ecl-clx
847 (sbcl-package->ecl-package sbcl-clx))
848
849 (define-public sbcl-clx-truetype
850 (let ((commit "c6e10a918d46632324d5863a8ed067a83fc26de8")
851 (revision "1"))
852 (package
853 (name "sbcl-clx-truetype")
854 (version (git-version "0.0.1" revision commit))
855 (source
856 (origin
857 (method git-fetch)
858 (uri (git-reference
859 (url "https://github.com/l04m33/clx-truetype")
860 (commit commit)))
861 (file-name (git-file-name name version))
862 (sha256
863 (base32
864 "079hyp92cjkdfn6bhkxsrwnibiqbz4y4af6nl31lzw6nm91j5j37"))
865 (modules '((guix build utils)))
866 (snippet
867 '(begin
868 (substitute* "package.lisp"
869 ((":export") ":export\n :+font-cache-filename+"))
870 #t))))
871 (build-system asdf-build-system/sbcl)
872 (inputs
873 `(("clx" ,sbcl-clx)
874 ("zpb-ttf" ,sbcl-zpb-ttf)
875 ("cl-vectors" ,sbcl-cl-vectors)
876 ("cl-fad" ,sbcl-cl-fad)
877 ("cl-store" ,sbcl-cl-store)
878 ("trivial-features" ,sbcl-trivial-features)))
879 (home-page "https://github.com/l04m33/clx-truetype")
880 (synopsis "Antialiased TrueType font rendering using CLX and XRender")
881 (description "CLX-TrueType is pure common lisp solution for
882 antialiased TrueType font rendering using CLX and XRender extension.")
883 (license license:expat))))
884
885 (define-public cl-clx-truetype
886 (sbcl-package->cl-source-package sbcl-clx-truetype))
887
888 (define-public ecl-clx-truetype
889 (sbcl-package->ecl-package sbcl-clx-truetype))
890
891 (define-public sbcl-slynk
892 (let ((commit "0f46f91a9542599d62c0c332b39636b2941ea372"))
893 (package
894 (name "sbcl-slynk")
895 (version (git-version "1.0.43" "3" commit))
896 (source
897 (origin
898 (method git-fetch)
899 (uri
900 (git-reference
901 (url "https://github.com/joaotavora/sly")
902 (commit commit)))
903 (sha256
904 (base32 "0p3j0zylacy6vms8ngis2hx2351xnwfzsw3zy043q6vmqd14wrf1"))
905 (file-name (git-file-name "slynk" version))))
906 (build-system asdf-build-system/sbcl)
907 (outputs '("out" "image"))
908 (arguments
909 `(#:phases
910 (modify-phases %standard-phases
911 (add-after 'create-asdf-configuration 'build-image
912 (lambda* (#:key outputs #:allow-other-keys)
913 (build-image (string-append
914 (assoc-ref %outputs "image")
915 "/bin/slynk")
916 %outputs
917 #:dependencies '("slynk"
918 "slynk/arglists"
919 "slynk/fancy-inspector"
920 "slynk/package-fu"
921 "slynk/mrepl"
922 "slynk/trace-dialog"
923 "slynk/profiler"
924 "slynk/stickers"
925 "slynk/indentation"
926 "slynk/retro"))
927 #t)))))
928 (synopsis "Common Lisp IDE for Emacs")
929 (description "SLY is a fork of SLIME, an IDE backend for Common Lisp.
930 It also features a completely redesigned REPL based on Emacs's own
931 full-featured @code{comint-mode}, live code annotations, and a consistent interactive
932 button interface. Everything can be copied to the REPL. One can create
933 multiple inspectors with independent history.")
934 (home-page "https://github.com/joaotavora/sly")
935 (license license:public-domain)
936 (properties `((cl-source-variant . ,(delay cl-slynk)))))))
937
938 (define-public cl-slynk
939 (sbcl-package->cl-source-package sbcl-slynk))
940
941 (define-public ecl-slynk
942 (let ((pkg (sbcl-package->ecl-package sbcl-slynk)))
943 (package
944 (inherit pkg)
945 (outputs '("out"))
946 (arguments
947 (substitute-keyword-arguments (package-arguments pkg)
948 ((#:phases phases)
949 `(modify-phases ,phases
950 (delete 'build-image))))))))
951
952 (define-public sbcl-parse-js
953 (let ((commit "fbadc6029bec7039602abfc06c73bb52970998f6")
954 (revision "1"))
955 (package
956 (name "sbcl-parse-js")
957 (version (string-append "0.0.0-" revision "." (string-take commit 9)))
958 (source
959 (origin
960 (method git-fetch)
961 (uri (git-reference
962 (url "http://marijn.haverbeke.nl/git/parse-js")
963 (commit commit)))
964 (file-name (string-append name "-" commit "-checkout"))
965 (sha256
966 (base32
967 "1wddrnr5kiya5s3gp4cdq6crbfy9fqcz7fr44p81502sj3bvdv39"))))
968 (build-system asdf-build-system/sbcl)
969 (home-page "https://marijnhaverbeke.nl/parse-js/")
970 (synopsis "Parse JavaScript")
971 (description "Parse-js is a Common Lisp package for parsing
972 JavaScript (ECMAScript 3). It has basic support for ECMAScript 5.")
973 (license license:zlib))))
974
975 (define-public cl-parse-js
976 (sbcl-package->cl-source-package sbcl-parse-js))
977
978 (define-public ecl-parse-js
979 (sbcl-package->ecl-package sbcl-parse-js))
980
981 (define-public sbcl-parse-number
982 (package
983 (name "sbcl-parse-number")
984 (version "1.7")
985 (source
986 (origin
987 (method git-fetch)
988 (uri (git-reference
989 (url "https://github.com/sharplispers/parse-number/")
990 (commit (string-append "v" version))))
991 (file-name (git-file-name name version))
992 (sha256
993 (base32
994 "0sk06ib1bhqv9y39vwnnw44vmbc4b0kvqm37xxmkxd4dwchq82d7"))))
995 (build-system asdf-build-system/sbcl)
996 (home-page "https://www.cliki.net/PARSE-NUMBER")
997 (synopsis "Parse numbers")
998 (description "@code{parse-number} is a library of functions for parsing
999 strings into one of the standard Common Lisp number types without using the
1000 reader. @code{parse-number} accepts an arbitrary string and attempts to parse
1001 the string into one of the standard Common Lisp number types, if possible, or
1002 else @code{parse-number} signals an error of type @code{invalid-number}.")
1003 (license license:bsd-3)))
1004
1005 (define-public cl-parse-number
1006 (sbcl-package->cl-source-package sbcl-parse-number))
1007
1008 (define-public ecl-parse-number
1009 (sbcl-package->ecl-package sbcl-parse-number))
1010
1011 (define-public sbcl-iterate
1012 (package
1013 (name "sbcl-iterate")
1014 (version "1.5")
1015 (source
1016 (origin
1017 (method url-fetch)
1018 (uri (string-append "https://common-lisp.net/project/iterate/releases/"
1019 "iterate-" version ".tar.gz"))
1020 (sha256
1021 (base32
1022 "1lqsbhrkfl0yif46aymvb7l3nb9wdcmj4jyw485blj32jb4famzn"))))
1023 (build-system asdf-build-system/sbcl)
1024 (native-inputs
1025 `(("rt" ,sbcl-rt)))
1026 (home-page "https://common-lisp.net/project/iterate/")
1027 (synopsis "Iteration construct for Common Lisp")
1028 (description "@code{iterate} is an iteration construct for Common Lisp.
1029 It is similar to the @code{CL:LOOP} macro, with these distinguishing marks:
1030
1031 @itemize
1032 @item it is extensible,
1033 @item it helps editors like Emacs indent iterate forms by having a more
1034 lisp-like syntax, and
1035 @item it isn't part of the ANSI standard for Common Lisp.
1036 @end itemize\n")
1037 (license license:expat)))
1038
1039 (define-public cl-iterate
1040 (sbcl-package->cl-source-package sbcl-iterate))
1041
1042 (define-public ecl-iterate
1043 (sbcl-package->ecl-package sbcl-iterate))
1044
1045 (define-public sbcl-cl-uglify-js
1046 ;; There have been many bug fixes since the 2010 release.
1047 (let ((commit "429c5e1d844e2f96b44db8fccc92d6e8e28afdd5")
1048 (revision "1"))
1049 (package
1050 (name "sbcl-cl-uglify-js")
1051 (version (string-append "0.1-" revision "." (string-take commit 9)))
1052 (source
1053 (origin
1054 (method git-fetch)
1055 (uri (git-reference
1056 (url "https://github.com/mishoo/cl-uglify-js")
1057 (commit commit)))
1058 (file-name (git-file-name name version))
1059 (sha256
1060 (base32
1061 "0k39y3c93jgxpr7gwz7w0d8yknn1fdnxrjhd03057lvk5w8js27a"))))
1062 (build-system asdf-build-system/sbcl)
1063 (inputs
1064 `(("sbcl-parse-js" ,sbcl-parse-js)
1065 ("sbcl-cl-ppcre" ,sbcl-cl-ppcre)
1066 ("sbcl-cl-ppcre-unicode" ,sbcl-cl-ppcre-unicode)
1067 ("sbcl-parse-number" ,sbcl-parse-number)
1068 ("sbcl-iterate" ,sbcl-iterate)))
1069 (home-page "https://github.com/mishoo/cl-uglify-js")
1070 (synopsis "JavaScript compressor library for Common Lisp")
1071 (description "This is a Common Lisp version of UglifyJS, a JavaScript
1072 compressor. It works on data produced by @code{parse-js} to generate a
1073 @dfn{minified} version of the code. Currently it can:
1074
1075 @itemize
1076 @item reduce variable names (usually to single letters)
1077 @item join consecutive @code{var} statements
1078 @item resolve simple binary expressions
1079 @item group most consecutive statements using the @code{sequence} operator (comma)
1080 @item remove unnecessary blocks
1081 @item convert @code{IF} expressions in various ways that result in smaller code
1082 @item remove some unreachable code
1083 @end itemize\n")
1084 (license license:zlib))))
1085
1086 (define-public cl-uglify-js
1087 (sbcl-package->cl-source-package sbcl-cl-uglify-js))
1088
1089 (define-public ecl-cl-uglify-js
1090 (sbcl-package->ecl-package sbcl-cl-uglify-js))
1091
1092 (define-public uglify-js
1093 (package
1094 (inherit sbcl-cl-uglify-js)
1095 (name "uglify-js")
1096 (build-system trivial-build-system)
1097 (arguments
1098 `(#:modules ((guix build utils))
1099 #:builder
1100 (let* ((bin (string-append (assoc-ref %outputs "out") "/bin/"))
1101 (script (string-append bin "uglify-js")))
1102 (use-modules (guix build utils))
1103 (mkdir-p bin)
1104 (with-output-to-file script
1105 (lambda _
1106 (format #t "#!~a/bin/sbcl --script
1107
1108 (require :asdf)
1109 (asdf:initialize-source-registry
1110 #p\"~a/etc/common-lisp/source-registry.conf.d/\")
1111 (asdf:initialize-output-translations
1112 #p\"~a/etc/common-lisp/asdf-output-translations.conf.d/\")"
1113 (assoc-ref %build-inputs "sbcl")
1114 (assoc-ref %build-inputs "sbcl-cl-uglify-js")
1115 (assoc-ref %build-inputs "sbcl-cl-uglify-js"))
1116 ;; FIXME: cannot use progn here because otherwise it fails to
1117 ;; find cl-uglify-js.
1118 (for-each
1119 write
1120 '(;; Quiet, please!
1121 (let ((*standard-output* (make-broadcast-stream))
1122 (*error-output* (make-broadcast-stream)))
1123 (asdf:load-system :cl-uglify-js))
1124 (let ((file (cadr *posix-argv*)))
1125 (if file
1126 (format t "~a"
1127 (cl-uglify-js:ast-gen-code
1128 (cl-uglify-js:ast-mangle
1129 (cl-uglify-js:ast-squeeze
1130 (with-open-file (in file)
1131 (parse-js:parse-js in))))
1132 :beautify nil))
1133 (progn
1134 (format *error-output*
1135 "Please provide a JavaScript file.~%")
1136 (sb-ext:exit :code 1))))))))
1137 (chmod script #o755)
1138 #t)))
1139 (inputs
1140 `(("sbcl" ,sbcl)
1141 ("sbcl-cl-uglify-js" ,sbcl-cl-uglify-js)))
1142 (synopsis "JavaScript compressor")))
1143
1144 (define-public sbcl-cl-strings
1145 (let ((revision "1")
1146 (commit "c5c5cbafbf3e6181d03c354d66e41a4f063f00ae"))
1147 (package
1148 (name "sbcl-cl-strings")
1149 (version (git-version "0.0.0" revision commit))
1150 (source
1151 (origin
1152 (method git-fetch)
1153 (uri (git-reference
1154 (url "https://github.com/diogoalexandrefranco/cl-strings")
1155 (commit commit)))
1156 (sha256
1157 (base32
1158 "00754mfaqallj480lwd346nkfb6ra8pa8xcxcylf4baqn604zlmv"))
1159 (file-name (string-append "cl-strings-" version "-checkout"))))
1160 (build-system asdf-build-system/sbcl)
1161 (synopsis "Portable, dependency-free set of utilities to manipulate strings in Common Lisp")
1162 (description
1163 "@command{cl-strings} is a small, portable, dependency-free set of
1164 utilities that make it even easier to manipulate text in Common Lisp. It has
1165 100% test coverage and works at least on sbcl, ecl, ccl, abcl and clisp.")
1166 (home-page "https://github.com/diogoalexandrefranco/cl-strings")
1167 (license license:expat))))
1168
1169 (define-public cl-strings
1170 (sbcl-package->cl-source-package sbcl-cl-strings))
1171
1172 (define-public ecl-cl-strings
1173 (sbcl-package->ecl-package sbcl-cl-strings))
1174
1175 (define-public sbcl-trivial-features
1176 ;; No release since 2014.
1177 (let ((commit "870d03de0ed44067963350936856e17ee725153e"))
1178 (package
1179 (name "sbcl-trivial-features")
1180 (version (git-version "0.8" "1" commit))
1181 (source
1182 (origin
1183 (method git-fetch)
1184 (uri (git-reference
1185 (url "https://github.com/trivial-features/trivial-features")
1186 (commit commit)))
1187 (file-name (git-file-name "trivial-features" version))
1188 (sha256
1189 (base32 "14pcahr8r2j3idhyy216zyw8jnj1dnrx0qbkkbdqkvwzign1ah4j"))))
1190 (build-system asdf-build-system/sbcl)
1191 (arguments
1192 '(#:asd-files '("trivial-features.asd")
1193 #:tests? #f))
1194 (home-page "https://cliki.net/trivial-features")
1195 (synopsis "Ensures consistency of @code{*FEATURES*} in Common Lisp")
1196 (description "Trivial-features ensures that @code{*FEATURES*} is
1197 consistent across multiple Common Lisp implementations.")
1198 (license license:expat))))
1199
1200 (define-public cl-trivial-features
1201 (sbcl-package->cl-source-package sbcl-trivial-features))
1202
1203 (define-public ecl-trivial-features
1204 (sbcl-package->ecl-package sbcl-trivial-features))
1205
1206 (define-public sbcl-hu.dwim.asdf
1207 (package
1208 (name "sbcl-hu.dwim.asdf")
1209 (version "20190521")
1210 (source
1211 (origin
1212 (method url-fetch)
1213 (uri (string-append "http://beta.quicklisp.org/archive/hu.dwim.asdf/"
1214 "2019-05-21/hu.dwim.asdf-" version "-darcs.tgz"))
1215 (sha256
1216 (base32
1217 "0rsbv71vyszy8w35yjwb5h6zcmknjq223hkzir79y72qdsc6sabn"))))
1218 (build-system asdf-build-system/sbcl)
1219 (home-page "https://hub.darcs.net/hu.dwim/hu.dwim.asdf")
1220 (synopsis "Extensions to ASDF")
1221 (description "Various ASDF extensions such as attached test and
1222 documentation system, explicit development support, etc.")
1223 (license license:public-domain)))
1224
1225 (define-public cl-hu.dwim.asdf
1226 (sbcl-package->cl-source-package sbcl-hu.dwim.asdf))
1227
1228 (define-public ecl-hu.dwim.asdf
1229 (sbcl-package->ecl-package sbcl-hu.dwim.asdf))
1230
1231 (define-public sbcl-hu.dwim.stefil
1232 (let ((commit "ab6d1aa8995878a1b66d745dfd0ba021090bbcf9"))
1233 (package
1234 (name "sbcl-hu.dwim.stefil")
1235 (version (git-version "0.0.0" "1" commit))
1236 (source
1237 (origin
1238 (method git-fetch)
1239 (uri
1240 (git-reference
1241 (url "https://gitlab.common-lisp.net/xcvb/hu.dwim.stefil.git")
1242 (commit commit)))
1243 (sha256
1244 (base32 "1d8yccw65zj3zh46cbi3x6nmn1dwdb76s9d0av035077mvyirqqp"))
1245 (file-name (git-file-name "hu.dwim.stefil" version))))
1246 (build-system asdf-build-system/sbcl)
1247 (native-inputs
1248 `(("asdf:cl-hu.dwim.asdf" ,sbcl-hu.dwim.asdf)))
1249 (inputs
1250 `(("sbcl-alexandria" ,sbcl-alexandria)))
1251 (home-page "https://hub.darcs.net/hu.dwim/hu.dwim.stefil")
1252 (synopsis "Simple test framework")
1253 (description "Stefil is a simple test framework for Common Lisp,
1254 with a focus on interactive development.")
1255 (license license:public-domain))))
1256
1257 (define-public cl-hu.dwim.stefil
1258 (sbcl-package->cl-source-package sbcl-hu.dwim.stefil))
1259
1260 (define-public ecl-hu.dwim.stefil
1261 (sbcl-package->ecl-package sbcl-hu.dwim.stefil))
1262
1263 (define-public sbcl-babel
1264 ;; No release since 2014.
1265 (let ((commit "aeed2d1b76358db48e6b70a64399c05678a6b9ea"))
1266 (package
1267 (name "sbcl-babel")
1268 (version (git-version "0.5.0" "1" commit))
1269 (source
1270 (origin
1271 (method git-fetch)
1272 (uri (git-reference
1273 (url "https://github.com/cl-babel/babel")
1274 (commit commit)))
1275 (file-name (git-file-name "babel" version))
1276 (sha256
1277 (base32 "0lkvv4xdpv4cv1y2bqillmabx8sdb2y4l6pbinq6mjh33w2brpvb"))))
1278 (build-system asdf-build-system/sbcl)
1279 (native-inputs
1280 `(("tests:cl-hu.dwim.stefil" ,sbcl-hu.dwim.stefil)))
1281 (inputs
1282 `(("sbcl-alexandria" ,sbcl-alexandria)
1283 ("sbcl-trivial-features" ,sbcl-trivial-features)))
1284 (home-page "https://common-lisp.net/project/babel/")
1285 (synopsis "Charset encoding and decoding library")
1286 (description "Babel is a charset encoding and decoding library, not unlike
1287 GNU libiconv, but completely written in Common Lisp.")
1288 (license license:expat))))
1289
1290 (define-public cl-babel
1291 (sbcl-package->cl-source-package sbcl-babel))
1292
1293 (define-public ecl-babel
1294 (sbcl-package->ecl-package sbcl-babel))
1295
1296 (define-public sbcl-cl-yacc
1297 (package
1298 (name "sbcl-cl-yacc")
1299 (version "0.3")
1300 (source
1301 (origin
1302 (method git-fetch)
1303 (uri (git-reference
1304 (url "https://github.com/jech/cl-yacc")
1305 (commit (string-append "cl-yacc-" version))))
1306 (sha256
1307 (base32
1308 "16946pzf8vvadnyfayvj8rbh4zjzw90h0azz2qk1mxrvhh5wklib"))
1309 (file-name (string-append "cl-yacc-" version "-checkout"))))
1310 (build-system asdf-build-system/sbcl)
1311 (arguments
1312 `(#:asd-systems '("yacc")))
1313 (synopsis "LALR(1) parser generator for Common Lisp, similar in spirit to Yacc")
1314 (description
1315 "CL-Yacc is a LALR(1) parser generator for Common Lisp, similar in spirit
1316 to AT&T Yacc, Berkeley Yacc, GNU Bison, Zebu, lalr.cl or lalr.scm.
1317
1318 CL-Yacc uses the algorithm due to Aho and Ullman, which is the one also used
1319 by AT&T Yacc, Berkeley Yacc and Zebu. It does not use the faster algorithm due
1320 to DeRemer and Pennello, which is used by Bison and lalr.scm (not lalr.cl).")
1321 (home-page "https://www.irif.fr/~jch//software/cl-yacc/")
1322 (license license:expat)))
1323
1324 (define-public cl-yacc
1325 (sbcl-package->cl-source-package sbcl-cl-yacc))
1326
1327 (define-public ecl-cl-yacc
1328 (sbcl-package->ecl-package sbcl-cl-yacc))
1329
1330 (define-public sbcl-eager-future2
1331 (let ((commit "54df8effd9d9eccac917509590286b5ac5f9cb30"))
1332 (package
1333 (name "sbcl-eager-future2")
1334 (version (git-version "0.0.0" "1" commit))
1335 (source
1336 (origin
1337 (method git-fetch)
1338 (uri (git-reference
1339 (url "https://gitlab.common-lisp.net/vsedach/eager-future2.git")
1340 (commit commit)))
1341 (file-name (git-file-name name version))
1342 (sha256
1343 (base32
1344 "1qs1bv3m0ki8l5czhsflxcryh22r9d9g9a3a3b0cr0pl954q5rld"))))
1345 (build-system asdf-build-system/sbcl)
1346 (inputs
1347 `(("bordeaux-threads" ,sbcl-bordeaux-threads)
1348 ("trivial-garbage" ,sbcl-trivial-garbage)))
1349 (synopsis "Futures promises synchronization mechanism for Common Lisp")
1350 (description
1351 "Eager Future2 is a Common Lisp library that provides composable
1352 concurrency primitives that unify parallel and lazy evaluation, are integrated
1353 with the Common Lisp condition system, and have automatic resource
1354 management.")
1355 (home-page "https://gitlab.common-lisp.net/vsedach/eager-future2")
1356 (license license:lgpl3+))))
1357
1358 (define-public cl-eager-future2
1359 (sbcl-package->cl-source-package sbcl-eager-future2))
1360
1361 (define-public ecl-eager-future2
1362 (sbcl-package->ecl-package sbcl-eager-future2))
1363
1364 (define-public sbcl-jpl-util
1365 (let ((commit "0311ed374e19a49d43318064d729fe3abd9a3b62"))
1366 (package
1367 (name "sbcl-jpl-util")
1368 (version "20151005")
1369 (source
1370 (origin
1371 (method git-fetch)
1372 (uri (git-reference
1373 ;; Quicklisp uses this fork.
1374 (url "https://github.com/hawkir/cl-jpl-util")
1375 (commit commit)))
1376 (file-name
1377 (git-file-name "jpl-util" version))
1378 (sha256
1379 (base32
1380 "0nc0rk9n8grkg3045xsw34whmcmddn2sfrxki4268g7kpgz0d2yz"))))
1381 (build-system asdf-build-system/sbcl)
1382 (synopsis "Collection of Common Lisp utility functions and macros")
1383 (description
1384 "@command{cl-jpl-util} is a collection of Common Lisp utility functions
1385 and macros, primarily for software projects written in CL by the author.")
1386 (home-page "https://www.thoughtcrime.us/software/cl-jpl-util/")
1387 (license license:isc))))
1388
1389 (define-public cl-jpl-util
1390 (sbcl-package->cl-source-package sbcl-jpl-util))
1391
1392 (define-public ecl-jpl-util
1393 (sbcl-package->ecl-package sbcl-jpl-util))
1394
1395 (define-public sbcl-piping
1396 (let ((commit "c7a4163c00dea7e72bf6ad33d6abac0d5826a656")
1397 (revision "1"))
1398 (package
1399 (name "sbcl-piping")
1400 (version (git-version "2.0.0" revision commit))
1401 (source
1402 (origin
1403 (method git-fetch)
1404 (uri (git-reference
1405 (url "https://github.com/Shinmera/piping/")
1406 (commit commit)))
1407 (file-name (git-file-name "piping" version))
1408 (sha256
1409 (base32 "0in84qnfkynm36d4n4d6v87vprpi27xrydnga462wfhplji6klv5"))))
1410 (build-system asdf-build-system/sbcl)
1411 (home-page "https://shinmera.github.io/piping/")
1412 (synopsis "Library to enable simple message pipelines")
1413 (description
1414 "This is a Common Lisp library to enable simple message pipelines.")
1415 (license license:zlib))))
1416
1417 (define-public ecl-piping
1418 (sbcl-package->ecl-package sbcl-piping))
1419
1420 (define-public cl-piping
1421 (sbcl-package->cl-source-package sbcl-piping))
1422
1423 (define-public sbcl-cl-pcg
1424 (let ((commit "8263d85ab0ca17fb05637a4430c2d564456bce8f")
1425 (revision "1"))
1426 (package
1427 (name "sbcl-cl-pcg")
1428 (version (git-version "1.0.0" revision commit))
1429 (source
1430 (origin
1431 (method git-fetch)
1432 (uri (git-reference
1433 (url "https://github.com/sjl/cl-pcg")
1434 (commit commit)))
1435 (file-name (git-file-name "cl-pcg" version))
1436 (sha256
1437 (base32 "0s57wvvlvshp1gcp9i9d3qcmqhswnxps3i0y7wbb0v8i1a3p46m4"))))
1438 (build-system asdf-build-system/sbcl)
1439 (native-inputs
1440 `(("1am" ,sbcl-1am)))
1441 (home-page "https://github.com/sjl/cl-pcg")
1442 (synopsis "Permuted congruential generators in Common Lisp")
1443 (description
1444 "This is a bare-bones Permuted Congruential Generator implementation in
1445 pure Common Lisp.")
1446 (license license:expat))))
1447
1448 (define-public ecl-cl-pcg
1449 (sbcl-package->ecl-package sbcl-cl-pcg))
1450
1451 (define-public cl-pcg
1452 (sbcl-package->cl-source-package sbcl-cl-pcg))
1453
1454 (define-public sbcl-seedable-rng
1455 (let ((commit "aa1a1564b6e07e2698df37c7a98348c4f762cb15")
1456 (revision "1"))
1457 (package
1458 (name "sbcl-seedable-rng")
1459 (version (git-version "0.0.0" revision commit))
1460 (source
1461 (origin
1462 (method git-fetch)
1463 (uri (git-reference
1464 (url "https://git.mfiano.net/mfiano/seedable-rng")
1465 (commit commit)))
1466 (file-name (git-file-name "seedable-rng" version))
1467 (sha256
1468 (base32 "1ldpsbp3qrfzvknclsxj3sdyms1jf9ad20dvh4w0kw3zgahn2nr5"))))
1469 (build-system asdf-build-system/sbcl)
1470 (inputs
1471 `(("cl-pcg" ,sbcl-cl-pcg)
1472 ("golden-utils" ,sbcl-golden-utils)
1473 ("ironclad" ,sbcl-ironclad)))
1474 (home-page "https://git.mfiano.net/mfiano/seedable-rng")
1475 (synopsis "Common Lisp random number generator")
1476 (description
1477 "SEEDABLE-RNG provides a convenient means of generating random numbers
1478 that are seedable with deterministic results across hardware and Common Lisp
1479 implementations.")
1480 (license license:expat))))
1481
1482 (define-public ecl-seedable-rng
1483 (sbcl-package->ecl-package sbcl-seedable-rng))
1484
1485 (define-public cl-seedable-rng
1486 (sbcl-package->cl-source-package sbcl-seedable-rng))
1487
1488 (define-public sbcl-jpl-queues
1489 (package
1490 (name "sbcl-jpl-queues")
1491 (version "0.1")
1492 (source
1493 (origin
1494 (method url-fetch)
1495 (uri (string-append
1496 "http://www.thoughtcrime.us/software/jpl-queues/jpl-queues-"
1497 version
1498 ".tar.gz"))
1499 (sha256
1500 (base32
1501 "1wvvv7j117h9a42qaj1g4fh4mji28xqs7s60rn6d11gk9jl76h96"))))
1502 (build-system asdf-build-system/sbcl)
1503 (inputs
1504 `(("jpl-util" ,sbcl-jpl-util)
1505 ("bordeaux-threads" ,sbcl-bordeaux-threads)))
1506 (arguments
1507 ;; Tests seem to be broken.
1508 `(#:tests? #f))
1509 (synopsis "Common Lisp library implementing a few different kinds of queues")
1510 (description
1511 "A Common Lisp library implementing a few different kinds of queues:
1512
1513 @itemize
1514 @item Bounded and unbounded FIFO queues.
1515 @item Lossy bounded FIFO queues that drop elements when full.
1516 @item Unbounded random-order queues that use less memory than unbounded FIFO queues.
1517 @end itemize
1518
1519 Additionally, a synchronization wrapper is provided to make any queue
1520 conforming to the @command{jpl-queues} API thread-safe for lightweight
1521 multithreading applications. (See Calispel for a more sophisticated CL
1522 multithreaded message-passing library with timeouts and alternation among
1523 several blockable channels.)")
1524 (home-page "https://www.thoughtcrime.us/software/jpl-queues/")
1525 (license license:isc)))
1526
1527 (define-public cl-jpl-queues
1528 (sbcl-package->cl-source-package sbcl-jpl-queues))
1529
1530 (define-public ecl-jpl-queues
1531 (sbcl-package->ecl-package sbcl-jpl-queues))
1532
1533 (define-public sbcl-calispel
1534 (let ((commit "e9f2f9c1af97f4d7bb4c8ac25fb2a8f3e8fada7a"))
1535 (package
1536 (name "sbcl-calispel")
1537 (version (git-version "0.1" "1" commit))
1538 (source
1539 (origin
1540 (method git-fetch)
1541 (uri (git-reference
1542 ;; This fork replaces the dependency on the obsolete
1543 ;; eager-future with eager-future2.
1544 (url "https://github.com/hawkir/calispel")
1545 (commit commit)))
1546 (file-name (git-file-name name version))
1547 (sha256
1548 (base32
1549 "08bmf3pi7n5hadpmqqkg65cxcj6kbvm997wcs1f53ml1nb79d9z8"))))
1550 (build-system asdf-build-system/sbcl)
1551 (inputs
1552 `(("jpl-queues" ,sbcl-jpl-queues)
1553 ("bordeaux-threads" ,sbcl-bordeaux-threads)))
1554 (native-inputs
1555 `(("eager-future2" ,sbcl-eager-future2)))
1556 (synopsis "Thread-safe message-passing channels in Common Lisp")
1557 (description
1558 "Calispel is a Common Lisp library for thread-safe message-passing
1559 channels, in the style of the occam programming language, also known as
1560 communicating sequential processes (CSP). See
1561 @url{https://en.wikipedia.org/wiki/Communicating_sequential_processes}.
1562
1563 Calispel channels let one thread communicate with another, facilitating
1564 unidirectional communication of any Lisp object. Channels may be unbuffered,
1565 where a sender waits for a receiver (or vice versa) before either operation can
1566 continue, or channels may be buffered with flexible policy options.
1567
1568 Because sending and receiving on a channel may block, either operation can time
1569 out after a specified amount of time.
1570
1571 A syntax for alternation is provided (like @code{ALT} in occam, or Unix
1572 @code{select()}): given a sequence of operations, any or all of which may
1573 block, alternation selects the first operation that doesn't block and executes
1574 associated code. Alternation can also time out, executing an \"otherwise\"
1575 clause if no operation becomes available within a set amount of time.
1576
1577 Calispel is a message-passing library, and as such leaves the role of
1578 threading abstractions and utilities left to be filled by complementary
1579 libraries such as Bordeaux-Threads and Eager Future.")
1580 (home-page "https://www.thoughtcrime.us/software/jpl-queues/")
1581 (license license:isc))))
1582
1583 (define-public cl-calispel
1584 (sbcl-package->cl-source-package sbcl-calispel))
1585
1586 (define-public ecl-calispel
1587 (sbcl-package->ecl-package sbcl-calispel))
1588
1589 (define-public sbcl-eos
1590 (let ((commit "b4413bccc4d142cbe1bf49516c3a0a22c9d99243")
1591 (revision "2"))
1592 (package
1593 (name "sbcl-eos")
1594 (version (git-version "0.0.0" revision commit))
1595 (source
1596 (origin
1597 (method git-fetch)
1598 (uri (git-reference
1599 (url "https://github.com/adlai/Eos")
1600 (commit commit)))
1601 (sha256
1602 (base32 "1afllvmlnx97yzz404gycl3pa3kwx427k3hrbf37rpmjlv47knhk"))
1603 (file-name (git-file-name "eos" version))))
1604 (build-system asdf-build-system/sbcl)
1605 (synopsis "Unit Testing for Common Lisp")
1606 (description
1607 "Eos was a unit testing library for Common Lisp.
1608 It began as a fork of FiveAM; however, FiveAM development has continued, while
1609 that of Eos has not. Thus, Eos is now deprecated in favor of FiveAM.")
1610 (home-page "https://github.com/adlai/Eos")
1611 (license license:expat))))
1612
1613 (define-public cl-eos
1614 (sbcl-package->cl-source-package sbcl-eos))
1615
1616 (define-public ecl-eos
1617 (sbcl-package->ecl-package sbcl-eos))
1618
1619 (define-public sbcl-esrap
1620 (let ((commit "133be8b05c2aae48696fe5b739eea2fa573fa48d"))
1621 (package
1622 (name "sbcl-esrap")
1623 (version (git-version "0.0.0" "1" commit))
1624 (source
1625 (origin
1626 (method git-fetch)
1627 (uri (git-reference
1628 (url "https://github.com/nikodemus/esrap")
1629 (commit commit)))
1630 (sha256
1631 (base32
1632 "02d5clihsdryhf7pix8c5di2571fdsffh75d40fkzhws90r5mksl"))
1633 (file-name (git-file-name "esrap" version))))
1634 (build-system asdf-build-system/sbcl)
1635 (native-inputs
1636 `(("eos" ,sbcl-eos))) ;For testing only.
1637 (inputs
1638 `(("alexandria" ,sbcl-alexandria)))
1639 (synopsis "Common Lisp packrat parser")
1640 (description
1641 "A packrat parser for Common Lisp.
1642 In addition to regular Packrat / Parsing Grammar / TDPL features ESRAP supports:
1643
1644 @itemize
1645 @item dynamic redefinition of nonterminals
1646 @item inline grammars
1647 @item semantic predicates
1648 @item introspective facilities (describing grammars, tracing, setting breaks)
1649 @end itemize\n")
1650 (home-page "https://nikodemus.github.io/esrap/")
1651 (license license:expat))))
1652
1653 (define-public cl-esrap
1654 (sbcl-package->cl-source-package sbcl-esrap))
1655
1656 (define-public ecl-esrap
1657 (sbcl-package->ecl-package sbcl-esrap))
1658
1659 (define-public sbcl-split-sequence
1660 (package
1661 (name "sbcl-split-sequence")
1662 (version "2.0.0")
1663 (source
1664 (origin
1665 (method git-fetch)
1666 (uri (git-reference
1667 (url "https://github.com/sharplispers/split-sequence")
1668 (commit (string-append "v" version))))
1669 (sha256
1670 (base32
1671 "0jcpnx21hkfwqj5fvp7kc6pn1qcz9hk7g2s5x8h0349x1j2irln0"))
1672 (file-name (git-file-name "split-sequence" version))))
1673 (build-system asdf-build-system/sbcl)
1674 (native-inputs
1675 `(("fiveam" ,sbcl-fiveam)))
1676 (synopsis "Member of the Common Lisp Utilities family of programs")
1677 (description
1678 "Splits sequence into a list of subsequences delimited by objects
1679 satisfying the test.")
1680 (home-page "https://cliki.net/split-sequence")
1681 (license license:expat)))
1682
1683 (define-public cl-split-sequence
1684 (sbcl-package->cl-source-package sbcl-split-sequence))
1685
1686 (define-public ecl-split-sequence
1687 (sbcl-package->ecl-package sbcl-split-sequence))
1688
1689 (define-public sbcl-html-encode
1690 (package
1691 (name "sbcl-html-encode")
1692 (version "1.2")
1693 (source
1694 (origin
1695 (method url-fetch)
1696 (uri (string-append
1697 "http://beta.quicklisp.org/archive/html-encode/2010-10-06/html-encode-"
1698 version ".tgz"))
1699 (sha256
1700 (base32
1701 "06mf8wn95yf5swhmzk4vp0xr4ylfl33dgfknkabbkd8n6jns8gcf"))
1702 (file-name (string-append "colorize" version "-checkout"))))
1703 (build-system asdf-build-system/sbcl)
1704 (synopsis "Common Lisp library for encoding text in various web-savvy encodings")
1705 (description
1706 "A library for encoding text in various web-savvy encodings.")
1707 (home-page "http://quickdocs.org/html-encode/")
1708 (license license:expat)))
1709
1710 (define-public cl-html-encode
1711 (sbcl-package->cl-source-package sbcl-html-encode))
1712
1713 (define-public ecl-html-encode
1714 (sbcl-package->ecl-package sbcl-html-encode))
1715
1716 (define-public sbcl-colorize
1717 (let ((commit "ea676b584e0899cec82f21a9e6871172fe3c0eb5"))
1718 (package
1719 (name "sbcl-colorize")
1720 (version (git-version "0.0.0" "1" commit))
1721 (source
1722 (origin
1723 (method git-fetch)
1724 (uri (git-reference
1725 (url "https://github.com/kingcons/colorize")
1726 (commit commit)))
1727 (sha256
1728 (base32
1729 "1pdg4kiaczmr3ivffhirp7m3lbr1q27rn7dhaay0vwghmi31zcw9"))
1730 (file-name (git-file-name "colorize" version))))
1731 (build-system asdf-build-system/sbcl)
1732 (inputs
1733 `(("alexandria" ,sbcl-alexandria)
1734 ("split-sequence" ,sbcl-split-sequence)
1735 ("html-encode" ,sbcl-html-encode)))
1736 (synopsis "Common Lisp for syntax highlighting")
1737 (description
1738 "@command{colorize} is a Lisp library for syntax highlighting
1739 supporting the following languages: Common Lisp, Emacs Lisp, Scheme, Clojure,
1740 C, C++, Java, Python, Erlang, Haskell, Objective-C, Diff, Webkit.")
1741 (home-page "https://github.com/kingcons/colorize")
1742 ;; TODO: Missing license?
1743 (license license:expat))))
1744
1745 (define-public cl-colorize
1746 (sbcl-package->cl-source-package sbcl-colorize))
1747
1748 (define-public ecl-colorize
1749 (sbcl-package->ecl-package sbcl-colorize))
1750
1751 (define-public sbcl-3bmd
1752 (let ((commit "6fc5759448f6f6df6f6df556e020a289a2643288")
1753 (revision "2"))
1754 (package
1755 (name "sbcl-3bmd")
1756 (version (git-version "0.0.0" revision commit))
1757 (source
1758 (origin
1759 (method git-fetch)
1760 (uri (git-reference
1761 (url "https://github.com/3b/3bmd")
1762 (commit commit)))
1763 (sha256
1764 (base32 "1avmbp8xdjlbqpqk7p3vmj7abiw5p3vb5mrxp4wlvgql4sf6z3p4"))
1765 (file-name (git-file-name "3bmd" version))))
1766 (build-system asdf-build-system/sbcl)
1767 (arguments
1768 ;; FIXME: #41437 - Build fails when package name starts from a digit
1769 `(#:asd-systems
1770 '("3bmd"
1771 "3bmd-ext-definition-lists"
1772 "3bmd-ext-math"
1773 "3bmd-ext-tables"
1774 "3bmd-ext-wiki-links"
1775 "3bmd-youtube"
1776 "3bmd-ext-code-blocks")))
1777 (inputs
1778 `(("alexandria" ,sbcl-alexandria)
1779 ("colorize" ,sbcl-colorize)
1780 ("esrap" ,sbcl-esrap)
1781 ("split-sequence" ,sbcl-split-sequence)))
1782 (home-page "https://github.com/3b/3bmd")
1783 (synopsis "Markdown processor in Command Lisp using esrap parser")
1784 (description
1785 "This is a Common Lisp Markdown to HTML converter, using @command{esrap}
1786 for parsing, and grammar based on @command{peg-markdown}.")
1787 (license license:expat))))
1788
1789 (define-public cl-3bmd
1790 (sbcl-package->cl-source-package sbcl-3bmd))
1791
1792 (define-public ecl-3bmd
1793 (sbcl-package->ecl-package sbcl-3bmd))
1794
1795 (define-public sbcl-cl-fad
1796 (package
1797 (name "sbcl-cl-fad")
1798 (version "0.7.6")
1799 (source
1800 (origin
1801 (method git-fetch)
1802 (uri (git-reference
1803 (url "https://github.com/edicl/cl-fad/")
1804 (commit (string-append "v" version))))
1805 (sha256
1806 (base32
1807 "1gc8i82v6gks7g0lnm54r4prk2mklidv2flm5fvbr0a7rsys0vpa"))
1808 (file-name (string-append "cl-fad" version "-checkout"))))
1809 (build-system asdf-build-system/sbcl)
1810 (inputs
1811 `(("bordeaux-threads" ,sbcl-bordeaux-threads)))
1812 (synopsis "Portable pathname library for Common Lisp")
1813 (description
1814 "CL-FAD (for \"Files and Directories\") is a thin layer atop Common
1815 Lisp's standard pathname functions. It is intended to provide some
1816 unification between current CL implementations on Windows, OS X, Linux, and
1817 Unix. Most of the code was written by Peter Seibel for his book Practical
1818 Common Lisp.")
1819 (home-page "https://edicl.github.io/cl-fad/")
1820 (license license:bsd-2)))
1821
1822 (define-public cl-fad
1823 (sbcl-package->cl-source-package sbcl-cl-fad))
1824
1825 (define-public ecl-cl-fad
1826 (sbcl-package->ecl-package sbcl-cl-fad))
1827
1828 (define-public sbcl-fn
1829 (let ((commit "8d8587d03a7b5e26b306fc90018e385d9e5acc2c")
1830 (revision "1"))
1831 (package
1832 (name "sbcl-fn")
1833 (version (git-version "0.0.0" revision commit))
1834 (source
1835 (origin
1836 (method git-fetch)
1837 (uri (git-reference
1838 (url "https://github.com/cbaggers/fn")
1839 (commit commit)))
1840 (file-name (git-file-name "fn" version))
1841 (sha256
1842 (base32 "0yyp9z6iwx476whz0n1rpjznjyqqhlylhzwpgg5xx92lxmskl752"))))
1843 (build-system asdf-build-system/sbcl)
1844 (inputs
1845 `(("named-readtables" ,sbcl-named-readtables)))
1846 (home-page "https://github.com/cbaggers/fn")
1847 (synopsis "Macros for lambda brevity")
1848 (description
1849 "This is a Common Lisp library providing lambda shorthand macros aiming
1850 to be used in cases where the word @emph{lambda} and the arguments are longer
1851 than the body of the lambda.")
1852 (license license:public-domain))))
1853
1854 (define-public ecl-fn
1855 (sbcl-package->ecl-package sbcl-fn))
1856
1857 (define-public cl-fn
1858 (sbcl-package->cl-source-package sbcl-fn))
1859
1860 (define-public sbcl-rt
1861 (let ((commit "a6a7503a0b47953bc7579c90f02a6dba1f6e4c5a")
1862 (revision "1"))
1863 (package
1864 (name "sbcl-rt")
1865 (version (git-version "1990.12.19" revision commit))
1866 (source
1867 (origin
1868 (method git-fetch)
1869 (uri (git-reference
1870 (url "http://git.kpe.io/rt.git")
1871 (commit commit)))
1872 (file-name (git-file-name name version))
1873 (sha256
1874 (base32 "13si2rrxaagbr0bkvg6sqicxxpyshabx6ad6byc9n2ik5ysna69b"))))
1875 (build-system asdf-build-system/sbcl)
1876 (synopsis "MIT Regression Tester")
1877 (description
1878 "RT provides a framework for writing regression test suites.")
1879 (home-page "https://www.cliki.net/rt")
1880 (license license:expat))))
1881
1882 (define-public cl-rt
1883 (sbcl-package->cl-source-package sbcl-rt))
1884
1885 (define-public ecl-rt
1886 (sbcl-package->ecl-package sbcl-rt))
1887
1888 (define-public sbcl-nibbles
1889 ;; No tagged release since 2018.
1890 (let ((commit "8e6b9b42d9f69000f55e5c45ad974d9e376ffdbd")
1891 (revision "1"))
1892 (package
1893 (name "sbcl-nibbles")
1894 (version (git-version "0.14" revision commit))
1895 (source
1896 (origin
1897 (method git-fetch)
1898 (uri (git-reference
1899 (url "https://github.com/sharplispers/nibbles/")
1900 (commit commit)))
1901 (sha256
1902 (base32 "15qlsm82h36pjgvfnbzdg60l21qxbaii4d049jc5y0dn56y93amb"))
1903 (file-name (git-file-name "nibbles" version))))
1904 (build-system asdf-build-system/sbcl)
1905 (native-inputs
1906 ;; Tests only.
1907 `(("rt" ,sbcl-rt)))
1908 (synopsis
1909 "Common Lisp library for accessing octet-addressed blocks of data")
1910 (description
1911 "When dealing with network protocols and file formats, it's common to
1912 have to read or write 16-, 32-, or 64-bit datatypes in signed or unsigned
1913 flavors. Common Lisp sort of supports this by specifying :element-type for
1914 streams, but that facility is underspecified and there's nothing similar for
1915 read/write from octet vectors. What most people wind up doing is rolling their
1916 own small facility for their particular needs and calling it a day.
1917
1918 This library attempts to be comprehensive and centralize such
1919 facilities. Functions to read 16-, 32-, and 64-bit quantities from octet
1920 vectors in signed or unsigned flavors are provided; these functions are also
1921 SETFable. Since it's sometimes desirable to read/write directly from streams,
1922 functions for doing so are also provided. On some implementations,
1923 reading/writing IEEE singles/doubles (i.e. single-float and double-float) will
1924 also be supported.")
1925 (home-page "https://github.com/sharplispers/nibbles")
1926 (license license:bsd-3))))
1927
1928 (define-public cl-nibbles
1929 (sbcl-package->cl-source-package sbcl-nibbles))
1930
1931 (define-public ecl-nibbles
1932 (sbcl-package->ecl-package sbcl-nibbles))
1933
1934 (define-public sbcl-ironclad
1935 (package
1936 (name "sbcl-ironclad")
1937 (version "0.54")
1938 (source
1939 (origin
1940 (method git-fetch)
1941 (uri (git-reference
1942 (url "https://github.com/sharplispers/ironclad/")
1943 (commit (string-append "v" version))))
1944 (sha256
1945 (base32 "07g0wpvfqq2yk23prs890d4qvbnr3xd6w8ssd88g89xdg483wpvk"))
1946 (file-name (git-file-name name version))))
1947 (build-system asdf-build-system/sbcl)
1948 (native-inputs
1949 ;; Tests only.
1950 `(("rt" ,sbcl-rt)))
1951 (inputs
1952 `(("bordeaux-threads" ,sbcl-bordeaux-threads)
1953 ("flexi-streams" ,sbcl-flexi-streams)))
1954 (synopsis "Cryptographic toolkit written in Common Lisp")
1955 (description
1956 "Ironclad is a cryptography library written entirely in Common Lisp.
1957 It includes support for several popular ciphers, digests, MACs and public key
1958 cryptography algorithms. For several implementations that support Gray
1959 streams, support is included for convenient stream wrappers.")
1960 (home-page "https://github.com/sharplispers/ironclad")
1961 (license license:bsd-3)))
1962
1963 (define-public cl-ironclad
1964 (sbcl-package->cl-source-package sbcl-ironclad))
1965
1966 (define-public ecl-ironclad
1967 (sbcl-package->ecl-package sbcl-ironclad))
1968
1969 (define-public sbcl-named-readtables
1970 (let ((commit "585a28eee8b1b1999279b48cb7e9731187e14b66")
1971 (revision "3"))
1972 (package
1973 (name "sbcl-named-readtables")
1974 (version (git-version "0.9" revision commit))
1975 (source
1976 (origin
1977 (method git-fetch)
1978 (uri (git-reference
1979 (url "https://github.com/melisgl/named-readtables")
1980 (commit commit)))
1981 (sha256
1982 (base32 "072p5djqq9pliw9r20rmpz5r5q5yn6rhbp98vkkp7gfcnp5ppj51"))
1983 (file-name (git-file-name "named-readtables" version))))
1984 (build-system asdf-build-system/sbcl)
1985 (home-page "https://github.com/melisgl/named-readtables/")
1986 (synopsis "Library that creates a namespace for named readtables")
1987 (description
1988 "Named readtables is a library that creates a namespace for named
1989 readtables, which is akin to package namespacing in Common Lisp.")
1990 (license license:bsd-3))))
1991
1992 (define-public cl-named-readtables
1993 (sbcl-package->cl-source-package sbcl-named-readtables))
1994
1995 (define-public ecl-named-readtables
1996 (sbcl-package->ecl-package sbcl-named-readtables))
1997
1998 (define-public sbcl-py-configparser
1999 ;; NOTE: (Sharlatan <2021-01-05 Tue> <19:52:19 UTC+0000>) Project updated last
2000 ;; time 8y ago, it looks like abandoned. VCS of the project:
2001 ;; https://svn.common-lisp.net/py-configparser/trunk
2002 (package
2003 (name "sbcl-py-configparser")
2004 (version "1.0.3")
2005 (source
2006 (origin
2007 (method url-fetch)
2008 (uri (string-append
2009 "https://common-lisp.net/project/py-configparser/releases/"
2010 "py-configparser-" version ".tar.gz"))
2011 (sha256
2012 (base32 "0i4rqz5cv7d7c2w81x5lwy05s6fbi3zikf4k5kpi3bkx3cabwdxj"))))
2013 (build-system asdf-build-system/sbcl)
2014 (inputs
2015 `(("parse-number" ,sbcl-parse-number)))
2016 (home-page "http://common-lisp.net/project/py-configparser/")
2017 (synopsis "ConfigParser Python module functionality for Common Lisp")
2018 (description "The py-configparser package implements the ConfigParser
2019 Python module functionality in Common Lisp. In short, it implements reading
2020 and writing of .INI-file style configuration files with sections containing
2021 key/value pairs of configuration options. In line with the functionalities in
2022 the python module, does this package implement basic interpolation of option
2023 values in other options.")
2024 (license license:expat)))
2025
2026 (define-public cl-py-configparser
2027 (sbcl-package->cl-source-package sbcl-py-configparser))
2028
2029 (define-public ecl-py-configparser
2030 (sbcl-package->ecl-package sbcl-py-configparser))
2031
2032 (define-public sbcl-pythonic-string-reader
2033 (let ((commit "47a70ba1e32362e03dad6ef8e6f36180b560f86a"))
2034 (package
2035 (name "sbcl-pythonic-string-reader")
2036 (version (git-version "0.0.0" "1" commit))
2037 (source
2038 (origin
2039 (method git-fetch)
2040 (uri (git-reference
2041 (url "https://github.com/smithzvk/pythonic-string-reader/")
2042 (commit commit)))
2043 (sha256
2044 (base32 "1b5iryqw8xsh36swckmz8rrngmc39k92si33fgy5pml3n9l5rq3j"))
2045 (file-name (git-file-name "pythonic-string-reader" version))))
2046 (build-system asdf-build-system/sbcl)
2047 (inputs
2048 `(("named-readtables" ,sbcl-named-readtables)))
2049 (home-page "https://github.com/smithzvk/pythonic-string-reader")
2050 (synopsis "Read table modification inspired by Python's three quote strings")
2051 (description "This piece of code sets up some reader macros that make it
2052 simpler to input string literals which contain backslashes and double quotes
2053 This is very useful for writing complicated docstrings and, as it turns out,
2054 writing code that contains string literals that contain code themselves.")
2055 (license license:bsd-3))))
2056
2057 (define-public cl-pythonic-string-reader
2058 (sbcl-package->cl-source-package sbcl-pythonic-string-reader))
2059
2060 (define-public ecl-pythonic-string-reader
2061 (sbcl-package->ecl-package sbcl-pythonic-string-reader))
2062
2063 (define-public sbcl-slime-swank
2064 (package
2065 (name "sbcl-slime-swank")
2066 (version "2.26")
2067 (source
2068 (origin
2069 (file-name (git-file-name "slime-swank" version))
2070 (method git-fetch)
2071 (uri (git-reference
2072 (url "https://github.com/slime/slime/")
2073 (commit (string-append "v" version))))
2074 (sha256
2075 (base32
2076 "0mxb1wnw19v0s72w2wkz5afdlzvpy5nn7pr4vav403qybac0sw5c"))))
2077 (build-system asdf-build-system/sbcl)
2078 (arguments
2079 '(#:asd-systems '("swank")))
2080 (home-page "https://github.com/slime/slime")
2081 (synopsis "Common Lisp Swank server")
2082 (description
2083 "This is only useful if you want to start a Swank server in a Lisp
2084 processes that doesn't run under Emacs. Lisp processes created by
2085 @command{M-x slime} automatically start the server.")
2086 (license (list license:gpl2+ license:public-domain))))
2087
2088 (define-public cl-slime-swank
2089 (sbcl-package->cl-source-package sbcl-slime-swank))
2090
2091 (define-public ecl-slime-swank
2092 (sbcl-package->ecl-package sbcl-slime-swank))
2093
2094 (define-public sbcl-mgl-pax
2095 (let ((commit "818448418d6b9de74620f606f5b23033c6082769"))
2096 (package
2097 (name "sbcl-mgl-pax")
2098 (version (git-version "0.0.0" "1" commit))
2099 (source
2100 (origin
2101 (method git-fetch)
2102 (uri (git-reference
2103 (url "https://github.com/melisgl/mgl-pax")
2104 (commit commit)))
2105 (sha256
2106 (base32
2107 "1p97zfkh130bdxqqxwaw2j9psv58751wakx7czbfpq410lg7dd7i"))
2108 (file-name (git-file-name "mgl-pax" version))))
2109 (build-system asdf-build-system/sbcl)
2110 (inputs
2111 `(("3bmd" ,sbcl-3bmd)
2112 ("babel" ,sbcl-babel)
2113 ("cl-fad" ,sbcl-cl-fad)
2114 ("ironclad" ,sbcl-ironclad)
2115 ("named-readtables" ,sbcl-named-readtables)
2116 ("pythonic-string-reader" ,sbcl-pythonic-string-reader)
2117 ("swank" ,sbcl-slime-swank)))
2118 (synopsis "Exploratory programming environment and documentation generator")
2119 (description
2120 "PAX provides an extremely poor man's Explorable Programming
2121 environment. Narrative primarily lives in so called sections that mix markdown
2122 docstrings with references to functions, variables, etc, all of which should
2123 probably have their own docstrings.
2124
2125 The primary focus is on making code easily explorable by using SLIME's
2126 @command{M-.} (@command{slime-edit-definition}). See how to enable some
2127 fanciness in Emacs Integration. Generating documentation from sections and all
2128 the referenced items in Markdown or HTML format is also implemented.
2129
2130 With the simplistic tools provided, one may accomplish similar effects as with
2131 Literate Programming, but documentation is generated from code, not vice versa
2132 and there is no support for chunking yet. Code is first, code must look
2133 pretty, documentation is code.")
2134 (home-page "http://quotenil.com/")
2135 (license license:expat))))
2136
2137 (define-public cl-mgl-pax
2138 (sbcl-package->cl-source-package sbcl-mgl-pax))
2139
2140 (define-public ecl-mgl-pax
2141 (let ((pkg (sbcl-package->ecl-package sbcl-mgl-pax)))
2142 (package
2143 (inherit pkg)
2144 (arguments
2145 (substitute-keyword-arguments (package-arguments pkg)
2146 ;; TODO: Find why the tests fail on ECL.
2147 ((#:tests? _ #f) #f))))))
2148
2149 (define-public sbcl-mssql
2150 (let ((commit "045602a19a32254108f2b75871049293f49731eb")
2151 (revision "1"))
2152 (package
2153 (name "sbcl-mssql")
2154 (version (git-version "0.0.3" revision commit))
2155 (source
2156 (origin
2157 (method git-fetch)
2158 (uri (git-reference
2159 (url "https://github.com/archimag/cl-mssql")
2160 (commit commit)))
2161 (file-name (git-file-name "cl-mssql" version))
2162 (sha256
2163 (base32 "09i50adppgc1ybm3ka9vbindhwa2x29f9n3n0jkrryymdhb8zknm"))))
2164 (build-system asdf-build-system/sbcl)
2165 (inputs
2166 `(("cffi" ,sbcl-cffi)
2167 ("freetds" ,freetds)
2168 ("garbage-pools" ,sbcl-garbage-pools)
2169 ("iterate" ,sbcl-iterate)
2170 ("parse-number" ,sbcl-parse-number)))
2171 (arguments
2172 `(#:phases
2173 (modify-phases %standard-phases
2174 (add-after 'unpack 'fix-paths
2175 (lambda* (#:key inputs #:allow-other-keys)
2176 (substitute* "src/mssql.lisp"
2177 (("libsybdb" all)
2178 (string-append (assoc-ref inputs "freetds") "/lib/" all)))
2179 #t)))))
2180 (home-page "https://github.com/archimag/cl-mssql")
2181 (synopsis "Common Lisp library to interact with MS SQL Server databases")
2182 (description
2183 "@code{cl-mssql} provides an interface to connect to Microsoft SQL
2184 server. It uses the @code{libsybdb} foreign library provided by the FreeTDS
2185 project.")
2186 (license license:llgpl))))
2187
2188 (define-public ecl-mssql
2189 (sbcl-package->ecl-package sbcl-mssql))
2190
2191 (define-public cl-mssql
2192 (sbcl-package->cl-source-package sbcl-mssql))
2193
2194 (define-public sbcl-lisp-unit
2195 (let ((commit "89653a232626b67400bf9a941f9b367da38d3815"))
2196 (package
2197 (name "sbcl-lisp-unit")
2198 (version (git-version "0.0.0" "1" commit))
2199 (source
2200 (origin
2201 (method git-fetch)
2202 (uri (git-reference
2203 (url "https://github.com/OdonataResearchLLC/lisp-unit")
2204 (commit commit)))
2205 (sha256
2206 (base32
2207 "0p6gdmgr7p383nvd66c9y9fp2bjk4jx1lpa5p09g43hr9y9pp9ry"))
2208 (file-name (git-file-name "lisp-unit" version))))
2209 (build-system asdf-build-system/sbcl)
2210 (synopsis "Common Lisp Test framework inspired by JUnit to be simple of use")
2211 (description
2212 "@command{lisp-unit} is a Common Lisp library that supports unit
2213 testing. It is an extension of the library written by Chris Riesbeck.")
2214 (home-page "https://github.com/OdonataResearchLLC/lisp-unit")
2215 (license license:expat))))
2216
2217 (define-public cl-lisp-unit
2218 (sbcl-package->cl-source-package sbcl-lisp-unit))
2219
2220 (define-public ecl-lisp-unit
2221 (sbcl-package->ecl-package sbcl-lisp-unit))
2222
2223 (define-public sbcl-anaphora
2224 (package
2225 (name "sbcl-anaphora")
2226 (version "0.9.6")
2227 (source
2228 (origin
2229 (method git-fetch)
2230 (uri (git-reference
2231 (url "https://github.com/tokenrove/anaphora")
2232 (commit version)))
2233 (sha256
2234 (base32
2235 "19wfrk3asimznkli0x2rfy637hwpdgqyvwj3vhq9x7vjvyf5vv6x"))
2236 (file-name (git-file-name "anaphora" version))))
2237 (build-system asdf-build-system/sbcl)
2238 (native-inputs
2239 `(("rt" ,sbcl-rt)))
2240 (synopsis "The anaphoric macro collection from Hell")
2241 (description
2242 "Anaphora is the anaphoric macro collection from Hell: it includes many
2243 new fiends in addition to old friends like @command{aif} and
2244 @command{awhen}.")
2245 (home-page "https://github.com/tokenrove/anaphora")
2246 (license license:public-domain)))
2247
2248 (define-public cl-anaphora
2249 (sbcl-package->cl-source-package sbcl-anaphora))
2250
2251 (define-public ecl-anaphora
2252 (sbcl-package->ecl-package sbcl-anaphora))
2253
2254 (define-public sbcl-lift
2255 (let ((commit "7d49a66c62759535624037826891152223d4206c"))
2256 (package
2257 (name "sbcl-lift")
2258 (version (git-version "1.7.1" "1" commit))
2259 (source
2260 (origin
2261 (method git-fetch)
2262 (uri (git-reference
2263 (url "https://github.com/gwkkwg/lift")
2264 (commit commit)))
2265 (sha256
2266 (base32
2267 "127v5avpz1i4m0lkaxqrq8hrl69rdazqaxf6s8awf0nd7wj2g4dp"))
2268 (file-name (git-file-name "lift" version))
2269 (modules '((guix build utils)))
2270 (snippet
2271 ;; Don't keep the bundled website
2272 `(begin
2273 (delete-file-recursively "website")
2274 #t))))
2275 (build-system asdf-build-system/sbcl)
2276 (arguments
2277 ;; The tests require a debugger, but we run with the debugger disabled.
2278 '(#:tests? #f))
2279 (synopsis "LIsp Framework for Testing")
2280 (description
2281 "The LIsp Framework for Testing (LIFT) is a unit and system test tool for LISP.
2282 Though inspired by SUnit and JUnit, it's built with Lisp in mind. In LIFT,
2283 testcases are organized into hierarchical testsuites each of which can have
2284 its own fixture. When run, a testcase can succeed, fail, or error. LIFT
2285 supports randomized testing, benchmarking, profiling, and reporting.")
2286 (home-page "https://github.com/gwkkwg/lift")
2287 (license license:expat))))
2288
2289 (define-public cl-lift
2290 (sbcl-package->cl-source-package sbcl-lift))
2291
2292 (define-public ecl-lift
2293 (sbcl-package->ecl-package sbcl-lift))
2294
2295 (define-public sbcl-let-plus
2296 (let ((commit "5f14af61d501ecead02ec6b5a5c810efc0c9fdbb"))
2297 (package
2298 (name "sbcl-let-plus")
2299 (version (git-version "0.0.0" "1" commit))
2300 (source
2301 (origin
2302 (method git-fetch)
2303 (uri (git-reference
2304 (url "https://github.com/sharplispers/let-plus")
2305 (commit commit)))
2306 (sha256
2307 (base32
2308 "0i050ca2iys9f5mb7dgqgqdxfnc3b0rnjdwv95sqd490vkiwrsaj"))
2309 (file-name (git-file-name "let-plus" version))))
2310 (build-system asdf-build-system/sbcl)
2311 (inputs
2312 `(("alexandria" ,sbcl-alexandria)
2313 ("anaphora" ,sbcl-anaphora)))
2314 (native-inputs
2315 `(("lift" ,sbcl-lift)))
2316 (synopsis "Destructuring extension of let*")
2317 (description
2318 "This library implements the let+ macro, which is a dectructuring
2319 extension of let*. It features:
2320
2321 @itemize
2322 @item Clean, consistent syntax and small implementation (less than 300 LOC,
2323 not counting tests)
2324 @item Placeholder macros allow editor hints and syntax highlighting
2325 @item @command{&ign} for ignored values (in forms where that makes sense)
2326 @item Very easy to extend
2327 @end itemize\n")
2328 (home-page "https://github.com/sharplispers/let-plus")
2329 (license license:boost1.0))))
2330
2331 (define-public cl-let-plus
2332 (sbcl-package->cl-source-package sbcl-let-plus))
2333
2334 (define-public ecl-let-plus
2335 (sbcl-package->ecl-package sbcl-let-plus))
2336
2337 (define-public sbcl-cl-colors
2338 (let ((commit "827410584553f5c717eec6182343b7605f707f75"))
2339 (package
2340 (name "sbcl-cl-colors")
2341 (version (git-version "0.0.0" "1" commit))
2342 (source
2343 (origin
2344 (method git-fetch)
2345 (uri (git-reference
2346 (url "https://github.com/tpapp/cl-colors")
2347 (commit commit)))
2348 (sha256
2349 (base32
2350 "0l446lday4hybsm9bq3jli97fvv8jb1d33abg79vbylpwjmf3y9a"))
2351 (file-name (git-file-name "cl-colors" version))))
2352 (build-system asdf-build-system/sbcl)
2353 (inputs
2354 `(("alexandria" ,sbcl-alexandria)
2355 ("let-plus" ,sbcl-let-plus)))
2356 (synopsis "Simple color library for Common Lisp")
2357 (description
2358 "This is a very simple color library for Common Lisp, providing
2359
2360 @itemize
2361 @item Types for representing colors in HSV and RGB spaces.
2362 @item Simple conversion functions between the above types (and also
2363 hexadecimal representation for RGB).
2364 @item Some predefined colors (currently X11 color names – of course the
2365 library does not depend on X11).Because color in your terminal is nice.
2366 @end itemize
2367
2368 This library is no longer supported by its author.")
2369 (home-page "https://github.com/tpapp/cl-colors")
2370 (license license:boost1.0))))
2371
2372 (define-public cl-colors
2373 (sbcl-package->cl-source-package sbcl-cl-colors))
2374
2375 (define-public ecl-cl-colors
2376 (sbcl-package->ecl-package sbcl-cl-colors))
2377
2378 (define-public sbcl-cl-ansi-text
2379 (let ((commit "53badf7878f27f22f2d4a2a43e6df458e43acbe9"))
2380 (package
2381 (name "sbcl-cl-ansi-text")
2382 (version (git-version "1.0.0" "1" commit))
2383 (source
2384 (origin
2385 (method git-fetch)
2386 (uri (git-reference
2387 (url "https://github.com/pnathan/cl-ansi-text")
2388 (commit commit)))
2389 (sha256
2390 (base32
2391 "11i27n0dbz5lmygiw65zzr8lx0rac6b6yysqranphn31wls6ja3v"))
2392 (file-name (git-file-name "cl-ansi-text" version))))
2393 (build-system asdf-build-system/sbcl)
2394 (inputs
2395 `(("alexandria" ,sbcl-alexandria)
2396 ("cl-colors" ,sbcl-cl-colors)))
2397 (native-inputs
2398 `(("fiveam" ,sbcl-fiveam)))
2399 (synopsis "ANSI terminal color implementation for Common Lisp")
2400 (description
2401 "@command{cl-ansi-text} provides utilities which enable printing to an
2402 ANSI terminal with colored text. It provides the macro @command{with-color}
2403 which causes everything printed in the body to be displayed with the provided
2404 color. It further provides functions which will print the argument with the
2405 named color.")
2406 (home-page "https://github.com/pnathan/cl-ansi-text")
2407 (license license:llgpl))))
2408
2409 (define-public cl-ansi-text
2410 (sbcl-package->cl-source-package sbcl-cl-ansi-text))
2411
2412 (define-public ecl-cl-ansi-text
2413 (sbcl-package->ecl-package sbcl-cl-ansi-text))
2414
2415 (define-public sbcl-prove
2416 (let ((commit "4f9122bd393e63c5c70c1fba23070622317cfaa0"))
2417 (package
2418 (name "sbcl-prove")
2419 (version (git-version "1.0.0" "1" commit))
2420 (source
2421 (origin
2422 (method git-fetch)
2423 (uri (git-reference
2424 (url "https://github.com/fukamachi/prove")
2425 (commit commit)))
2426 (sha256
2427 (base32
2428 "07sbfw459z8bbjvx1qlmfa8qk2mvbjnnzi2mi0x72blaj8bkl4vc"))
2429 (file-name (git-file-name "prove" version))))
2430 (build-system asdf-build-system/sbcl)
2431 (inputs
2432 `(("alexandria" ,sbcl-alexandria)
2433 ("cl-ppcre" ,sbcl-cl-ppcre)
2434 ("cl-ansi-text" ,sbcl-cl-ansi-text)))
2435 (synopsis "Yet another unit testing framework for Common Lisp")
2436 (description
2437 "This project was originally called @command{cl-test-more}.
2438 @command{prove} is yet another unit testing framework for Common Lisp. The
2439 advantages of @command{prove} are:
2440
2441 @itemize
2442 @item Various simple functions for testing and informative error messages
2443 @item ASDF integration
2444 @item Extensible test reporters
2445 @item Colorizes the report if it's available (note for SLIME)
2446 @item Reports test durations
2447 @end itemize\n")
2448 (home-page "https://github.com/fukamachi/prove")
2449 (license license:expat))))
2450
2451 (define-public cl-prove
2452 (sbcl-package->cl-source-package sbcl-prove))
2453
2454 (define-public ecl-prove
2455 (sbcl-package->ecl-package sbcl-prove))
2456
2457 (define-public sbcl-proc-parse
2458 (let ((commit "ac3636834d561bdc2686c956dbd82494537285fd"))
2459 (package
2460 (name "sbcl-proc-parse")
2461 (version (git-version "0.0.0" "1" commit))
2462 (source
2463 (origin
2464 (method git-fetch)
2465 (uri (git-reference
2466 (url "https://github.com/fukamachi/proc-parse")
2467 (commit commit)))
2468 (sha256
2469 (base32
2470 "06rnl0h4cx6xv2wj3jczmmcxqn2703inmmvg1s4npbghmijsybfh"))
2471 (file-name (git-file-name "proc-parse" version))))
2472 (build-system asdf-build-system/sbcl)
2473 (inputs
2474 `(("alexandria" ,sbcl-alexandria)
2475 ("babel" ,sbcl-babel)))
2476 (native-inputs
2477 `(("prove" ,sbcl-prove)))
2478 (arguments
2479 ;; TODO: Tests don't find "proc-parse-test", why?
2480 `(#:tests? #f))
2481 (synopsis "Procedural vector parser")
2482 (description
2483 "This is a string/octets parser library for Common Lisp with speed and
2484 readability in mind. Unlike other libraries, the code is not a
2485 pattern-matching-like, but a char-by-char procedural parser.")
2486 (home-page "https://github.com/fukamachi/proc-parse")
2487 (license license:bsd-2))))
2488
2489 (define-public cl-proc-parse
2490 (sbcl-package->cl-source-package sbcl-proc-parse))
2491
2492 (define-public ecl-proc-parse
2493 (sbcl-package->ecl-package sbcl-proc-parse))
2494
2495 (define-public sbcl-parse-float
2496 (let ((commit "3074765101e41222b6b624a66aaf1e6416379f9c")
2497 (revision "2"))
2498 (package
2499 (name "sbcl-parse-float")
2500 (version (git-version "0.0.0" revision commit))
2501 (source
2502 (origin
2503 (method git-fetch)
2504 (uri (git-reference
2505 (url "https://github.com/soemraws/parse-float")
2506 (commit commit)))
2507 (sha256
2508 (base32 "0jd2spawc3v8vzqf8ky4cngl45jm65fhkrdf20mf6dcbn3mzpkmr"))
2509 (file-name (git-file-name "proc-parse" version))))
2510 (build-system asdf-build-system/sbcl)
2511 (arguments
2512 ;; FIXME: https://github.com/soemraws/parse-float/issues/12
2513 `(#:asd-systems '("parse-float" "parse-float-tests")))
2514 (native-inputs
2515 `(("lisp-unit" ,sbcl-lisp-unit)))
2516 (inputs
2517 `(("alexandria" ,sbcl-alexandria)))
2518 (home-page "https://github.com/soemraws/parse-float")
2519 (synopsis "Parse a floating point value from a string in Common Lisp")
2520 (description
2521 "This package exports the following function to parse floating-point
2522 values from a string in Common Lisp.")
2523 (license license:public-domain))))
2524
2525 (define-public cl-parse-float
2526 (sbcl-package->cl-source-package sbcl-parse-float))
2527
2528 (define-public ecl-parse-float
2529 (sbcl-package->ecl-package sbcl-parse-float))
2530
2531 (define-public sbcl-cl-string-match
2532 (let ((revision "1")
2533 (changeset "5048480a61243e6f1b02884012c8f25cdbee6d97"))
2534 (package
2535 (name "sbcl-cl-string-match")
2536 (version (git-version "0" revision changeset))
2537 (source
2538 (origin
2539 (method hg-fetch)
2540 (uri (hg-reference
2541 (url "https://bitbucket.org/vityok/cl-string-match/")
2542 (changeset changeset)))
2543 (sha256
2544 (base32
2545 "01wn5qx562w43ssy92xlfgv79w7p0nv0wbl76mpmba131n9ziq2y"))
2546 (file-name (git-file-name "cl-string-match" version))))
2547 (build-system asdf-build-system/sbcl)
2548 (inputs
2549 `(("alexandria" ,sbcl-alexandria)
2550 ("babel" ,sbcl-babel)
2551 ("iterate" ,sbcl-iterate)
2552 ("jpl-queues" ,sbcl-jpl-queues)
2553 ("jpl-util" ,sbcl-jpl-util)
2554 ("mgl-pax" ,sbcl-mgl-pax)
2555 ("parse-float" ,sbcl-parse-float)
2556 ("proc-parse" ,sbcl-proc-parse)
2557 ("yacc" ,sbcl-cl-yacc)))
2558 ;; TODO: Tests are not evaluated properly.
2559 (native-inputs
2560 ;; For testing:
2561 `(("lisp-unit" ,sbcl-lisp-unit)))
2562 (arguments
2563 `(#:tests? #f))
2564 (synopsis "Set of utilities to manipulate strings in Common Lisp")
2565 (description
2566 "@command{cl-strings} is a small, portable, dependency-free set of
2567 utilities that make it even easier to manipulate text in Common Lisp. It has
2568 100% test coverage and works at least on sbcl, ecl, ccl, abcl and clisp.")
2569 (home-page "https://bitbucket.org/vityok/cl-string-match/")
2570 (license license:bsd-3))))
2571
2572 (define-public cl-string-match
2573 (sbcl-package->cl-source-package sbcl-cl-string-match))
2574
2575 (define-public ecl-cl-string-match
2576 (sbcl-package->ecl-package sbcl-cl-string-match))
2577
2578 (define-public sbcl-ptester
2579 (let ((commit "fe69fde54f4bce00ce577feb918796c293fc7253")
2580 (revision "1"))
2581 (package
2582 (name "sbcl-ptester")
2583 (version (git-version "2.1.3" revision commit))
2584 (source
2585 (origin
2586 (method git-fetch)
2587 (uri (git-reference
2588 (url "http://git.kpe.io/ptester.git")
2589 (commit commit)))
2590 (file-name (git-file-name name version))
2591 (sha256
2592 (base32 "1l0lfl7cdnr2qf4zh38hi4llxg22c49zkm639bdkmvlkzwj3ndwf"))))
2593 (build-system asdf-build-system/sbcl)
2594 (home-page "http://quickdocs.org/ptester/")
2595 (synopsis "Portable test harness package")
2596 (description
2597 "@command{ptester} is a portable testing framework based on Franz's
2598 tester module.")
2599 (license license:llgpl))))
2600
2601 (define-public cl-ptester
2602 (sbcl-package->cl-source-package sbcl-ptester))
2603
2604 (define-public ecl-ptester
2605 (sbcl-package->ecl-package sbcl-ptester))
2606
2607 (define-public sbcl-puri
2608 (let ((commit "4bbab89d9ccbb26346899d1f496c97604fec567b")
2609 (revision "2"))
2610 (package
2611 (name "sbcl-puri")
2612 (version (git-version "1.5.7" revision commit))
2613 (source
2614 (origin
2615 (method git-fetch)
2616 (uri (git-reference
2617 (url "http://git.kpe.io/puri.git")
2618 (commit commit)))
2619 (file-name (git-file-name "puri" version))
2620 (sha256
2621 (base32 "0gq2rsr0aihs0z20v4zqvmdl4szq53b52rh97pvnmwrlbn4mapmd"))))
2622 (build-system asdf-build-system/sbcl)
2623 (native-inputs
2624 `(("ptester" ,sbcl-ptester)))
2625 (home-page "http://puri.kpe.io/")
2626 (synopsis "Portable URI Library")
2627 (description
2628 "This is a portable Universal Resource Identifier library for Common
2629 Lisp programs. It parses URI according to the RFC 2396 specification.")
2630 (license license:llgpl))))
2631
2632 (define-public cl-puri
2633 (sbcl-package->cl-source-package sbcl-puri))
2634
2635 (define-public ecl-puri
2636 (sbcl-package->ecl-package sbcl-puri))
2637
2638 (define-public sbcl-qmynd
2639 (let ((commit "7e56daf73f0ed5f49a931c01af75fb874bcf3445")
2640 (revision "1"))
2641 (package
2642 (name "sbcl-qmynd")
2643 (version (git-version "1.0.0" revision commit))
2644 (source
2645 (origin
2646 (method git-fetch)
2647 (uri (git-reference
2648 (url "https://github.com/qitab/qmynd")
2649 (commit commit)))
2650 (file-name (git-file-name name version))
2651 (sha256
2652 (base32
2653 "06gw5wxcpdclb6a5i5k9lbmdlyqsp182czrm9bm1cpklzbj0ihrl"))))
2654 (build-system asdf-build-system/sbcl)
2655 (inputs
2656 `(("asdf-finalizers" ,sbcl-asdf-finalizers)
2657 ("babel" ,sbcl-babel)
2658 ("chipz" ,sbcl-chipz)
2659 ("cl+ssl" ,sbcl-cl+ssl)
2660 ("flexi-streams" ,sbcl-flexi-streams)
2661 ("ironclad" ,sbcl-ironclad)
2662 ("salza2" ,sbcl-salza2)
2663 ("trivial-gray-streams" ,sbcl-trivial-gray-streams)
2664 ("usocket" ,sbcl-usocket)))
2665 (home-page "https://github.com/qitab/qmynd")
2666 (synopsis "QITAB MySQL Native Driver for Common Lisp")
2667 (description "QMyND, the QITAB MySQL Native Driver, is a MySQL client
2668 library that directly talks to a MySQL server in its native network protocol.
2669
2670 It's a part of QITAB umbrella project.")
2671 (license license:expat))))
2672
2673 (define-public ecl-qmynd
2674 (sbcl-package->ecl-package sbcl-qmynd))
2675
2676 (define-public cl-qmynd
2677 (sbcl-package->cl-source-package sbcl-qmynd))
2678
2679 (define-public sbcl-queues
2680 (let ((commit "47d4da65e9ea20953b74aeeab7e89a831b66bc94"))
2681 (package
2682 (name "sbcl-queues")
2683 (version (git-version "0.0.0" "1" commit))
2684 (source
2685 (origin
2686 (method git-fetch)
2687 (uri (git-reference
2688 (url "https://github.com/oconnore/queues")
2689 (commit commit)))
2690 (file-name (git-file-name "queues" version))
2691 (sha256
2692 (base32
2693 "0wdhfnzi4v6d97pggzj2aw55si94w4327br94jrmyvwf351wqjvv"))))
2694 (build-system asdf-build-system/sbcl)
2695 (inputs
2696 `(("bordeaux-threads" ,sbcl-bordeaux-threads)))
2697 (arguments
2698 '(#:asd-systems '("queues"
2699 "queues.simple-queue"
2700 "queues.simple-cqueue"
2701 "queues.priority-queue"
2702 "queues.priority-cqueue")))
2703 (home-page "https://github.com/oconnore/queues")
2704 (synopsis "Common Lisp queue library")
2705 (description
2706 "This is a simple queue library for Common Lisp with features such as
2707 non-consing thread safe queues and fibonacci priority queues.")
2708 (license license:expat))))
2709
2710 (define-public cl-queues
2711 (sbcl-package->cl-source-package sbcl-queues))
2712
2713 (define-public ecl-queues
2714 (sbcl-package->ecl-package sbcl-queues))
2715
2716 (define-public sbcl-glsl-spec
2717 (let ((commit "f04476f7da89355ae6856b33283c60ba95c6555d")
2718 (revision "1"))
2719 (package
2720 (name "sbcl-glsl-spec")
2721 (version (git-version "0.0.0" revision commit))
2722 (source
2723 (origin
2724 (method git-fetch)
2725 (uri (git-reference
2726 (url "https://github.com/cbaggers/glsl-spec")
2727 (commit commit)))
2728 (file-name (git-file-name "glsl-spec" version))
2729 (sha256
2730 (base32 "01ipspr22fgfj3w8wq2y81lzrjc4vpfiwnr3dqhjlpzzra46am8c"))))
2731 (build-system asdf-build-system/sbcl)
2732 (arguments
2733 `(#:asd-systems '("glsl-spec" "glsl-symbols" "glsl-docs")))
2734 (home-page "https://github.com/cbaggers/glsl-spec")
2735 (synopsis "Common Lisp GLSL specification as a datastructure")
2736 (description
2737 "This package contains the specification of all functions and variables
2738 from GLSL as data.")
2739 (license license:unlicense))))
2740
2741 (define-public ecl-glsl-spec
2742 (sbcl-package->ecl-package sbcl-glsl-spec))
2743
2744 (define-public cl-glsl-spec
2745 (sbcl-package->cl-source-package sbcl-glsl-spec))
2746
2747 (define-public sbcl-varjo
2748 (let ((commit "9e77f30220053155d2ef8870ceba157f75e538d4")
2749 (revision "1"))
2750 (package
2751 (name "sbcl-varjo")
2752 (version (git-version "0.0.0" revision commit))
2753 (source
2754 (origin
2755 (method git-fetch)
2756 (uri (git-reference
2757 (url "https://github.com/cbaggers/varjo")
2758 (commit commit)))
2759 (file-name (git-file-name "varjo" version))
2760 (sha256
2761 (base32 "1p9x1wj576x5d31yvls9r1avkjkyhri7kyxbjfkg9z93a1w18j9z"))))
2762 (build-system asdf-build-system/sbcl)
2763 (native-inputs
2764 `(("fiveam" ,sbcl-fiveam)))
2765 (inputs
2766 `(("alexandria" ,sbcl-alexandria)
2767 ("cl-ppcre" ,sbcl-cl-ppcre)
2768 ("documentation-utils" ,sbcl-documentation-utils)
2769 ("fn" ,sbcl-fn)
2770 ("glsl-spec" ,sbcl-glsl-spec)
2771 ("named-readtables" ,sbcl-named-readtables)
2772 ("parse-float" ,sbcl-parse-float)
2773 ("vas-string-metrics" ,sbcl-vas-string-metrics)))
2774 (home-page "https://github.com/cbaggers/varjo")
2775 (synopsis "Lisp to GLSL Language Translator")
2776 (description
2777 "Varjo is a Lisp to GLSL compiler. Vari is the dialect of lisp Varjo
2778 compiles. It aims to be as close to Common Lisp as possible, but naturally it
2779 is statically typed so there are differences.")
2780 (license license:bsd-2))))
2781
2782 (define-public ecl-varjo
2783 (sbcl-package->ecl-package sbcl-varjo))
2784
2785 (define-public cl-varjo
2786 (sbcl-package->cl-source-package sbcl-varjo))
2787
2788 (define-public sbcl-cffi
2789 (package
2790 (name "sbcl-cffi")
2791 (version "0.23.0")
2792 (source
2793 (origin
2794 (method git-fetch)
2795 (uri (git-reference
2796 (url "https://github.com/cffi/cffi")
2797 (commit (string-append "v" version))))
2798 (file-name (git-file-name "cffi-bootstrap" version))
2799 (sha256
2800 (base32 "03s98imc5niwnpj3hhrafl7dmxq45g74h96sm68976k7ahi3vl5b"))))
2801 (build-system asdf-build-system/sbcl)
2802 (inputs
2803 `(("alexandria" ,sbcl-alexandria)
2804 ("babel" ,sbcl-babel)
2805 ("libffi" ,libffi)
2806 ("trivial-features" ,sbcl-trivial-features)))
2807 (native-inputs
2808 `(("bordeaux-threads" ,sbcl-bordeaux-threads)
2809 ("pkg-config" ,pkg-config)
2810 ("rt" ,sbcl-rt)))
2811 (arguments
2812 '(#:phases
2813 (modify-phases %standard-phases
2814 (add-after 'unpack 'fix-arm-support
2815 (lambda _
2816 ;; This is apparently deprecated since libffi-3.3.
2817 (substitute* "libffi/libffi-types.lisp"
2818 (("\\\(\\\(:unix64.*") ")\n"))
2819 #t))
2820 (add-after 'unpack 'fix-paths
2821 (lambda* (#:key inputs #:allow-other-keys)
2822 (substitute* "libffi/libffi.lisp"
2823 (("libffi.so.7" all) (string-append
2824 (assoc-ref inputs "libffi")
2825 "/lib/" all)))
2826 (substitute* "toolchain/c-toolchain.lisp"
2827 (("\"cc\"") (format #f "~S" (which "gcc"))))))
2828 (add-after 'build 'install-headers
2829 (lambda* (#:key outputs #:allow-other-keys)
2830 (install-file "grovel/common.h"
2831 (string-append
2832 (assoc-ref outputs "out")
2833 "/include/grovel")))))
2834 #:asd-files '("cffi.asd"
2835 "cffi-toolchain.asd"
2836 "cffi-grovel.asd"
2837 "cffi-libffi.asd"
2838 "cffi-uffi-compat.asd")
2839 #:asd-systems '("cffi"
2840 "cffi-libffi"
2841 "cffi-uffi-compat")))
2842 (home-page "https://common-lisp.net/project/cffi/")
2843 (synopsis "Common Foreign Function Interface for Common Lisp")
2844 (description "The Common Foreign Function Interface (CFFI)
2845 purports to be a portable foreign function interface for Common Lisp.
2846 The CFFI library is composed of a Lisp-implementation-specific backend
2847 in the CFFI-SYS package, and a portable frontend in the CFFI
2848 package.")
2849 (license license:expat)))
2850
2851 (define-public cl-cffi
2852 (sbcl-package->cl-source-package sbcl-cffi))
2853
2854 (define-public ecl-cffi
2855 (sbcl-package->ecl-package sbcl-cffi))
2856
2857 (define-public sbcl-cl-sqlite
2858 (package
2859 (name "sbcl-cl-sqlite")
2860 (version "0.2.1")
2861 (source
2862 (origin
2863 (method git-fetch)
2864 (uri (git-reference
2865 (url "https://github.com/dmitryvk/cl-sqlite")
2866 (commit version)))
2867 (file-name (git-file-name "cl-sqlite" version))
2868 (sha256
2869 (base32
2870 "08iv7b4m0hh7qx2cvq4f510nrgdld0vicnvmqsh9w0fgrcgmyg4k"))))
2871 (build-system asdf-build-system/sbcl)
2872 (inputs
2873 `(("iterate" ,sbcl-iterate)
2874 ("cffi" ,sbcl-cffi)
2875 ("sqlite" ,sqlite)))
2876 (native-inputs
2877 `(("fiveam" ,sbcl-fiveam)
2878 ("bordeaux-threads" ,sbcl-bordeaux-threads)))
2879 (arguments
2880 `(#:asd-systems '("sqlite")
2881 #:phases
2882 (modify-phases %standard-phases
2883 (add-after 'unpack 'fix-paths
2884 (lambda* (#:key inputs #:allow-other-keys)
2885 (substitute* "sqlite-ffi.lisp"
2886 (("libsqlite3" all) (string-append
2887 (assoc-ref inputs "sqlite")"/lib/" all))))))))
2888 (home-page "https://common-lisp.net/project/cl-sqlite/")
2889 (synopsis "Common Lisp binding for SQLite")
2890 (description
2891 "The @command{cl-sqlite} package is an interface to the SQLite embedded
2892 relational database engine.")
2893 (license license:public-domain)))
2894
2895 (define-public cl-sqlite
2896 (sbcl-package->cl-source-package sbcl-cl-sqlite))
2897
2898 (define-public ecl-cl-sqlite
2899 (sbcl-package->ecl-package sbcl-cl-sqlite))
2900
2901 (define-public sbcl-parenscript
2902 ;; Source archives are overwritten on every release, we use the Git repo instead.
2903 (let ((commit "7a1ac46353cecd144fc91915ba9f122aafcf4766"))
2904 (package
2905 (name "sbcl-parenscript")
2906 (version (git-version "2.7.1" "1" commit))
2907 (source
2908 (origin
2909 (method git-fetch)
2910 (uri (git-reference
2911 (url "https://gitlab.common-lisp.net/parenscript/parenscript")
2912 (commit commit)))
2913 (file-name (git-file-name "parenscript" version))
2914 (sha256
2915 (base32
2916 "0c22lqarrpbq82dg1sb3y6mp6w2faczp34ymzhnmff88yfq1xzsf"))))
2917 (build-system asdf-build-system/sbcl)
2918 (inputs
2919 `(("cl-ppcre" ,sbcl-cl-ppcre)
2920 ("anaphora" ,sbcl-anaphora)
2921 ("named-readtables" ,sbcl-named-readtables)))
2922 (home-page "https://common-lisp.net/project/parenscript/")
2923 (synopsis "Translator from a subset of Common Lisp to JavaScript")
2924 (description
2925 "Parenscript is a translator from an extended subset of Common Lisp to
2926 JavaScript. Parenscript code can run almost identically on both the
2927 browser (as JavaScript) and server (as Common Lisp).
2928
2929 Parenscript code is treated the same way as Common Lisp code, making the full
2930 power of Lisp macros available for JavaScript. This provides a web
2931 development environment that is unmatched in its ability to reduce code
2932 duplication and provide advanced meta-programming facilities to web
2933 developers.
2934
2935 At the same time, Parenscript is different from almost all other \"language
2936 X\" to JavaScript translators in that it imposes almost no overhead:
2937
2938 @itemize
2939 @item No run-time dependencies: Any piece of Parenscript code is runnable
2940 as-is. There are no JavaScript files to include.
2941 @item Native types: Parenscript works entirely with native JavaScript data
2942 types. There are no new types introduced, and object prototypes are not
2943 touched.
2944 @item Native calling convention: Any JavaScript code can be called without the
2945 need for bindings. Likewise, Parenscript can be used to make efficient,
2946 self-contained JavaScript libraries.
2947 @item Readable code: Parenscript generates concise, formatted, idiomatic
2948 JavaScript code. Identifier names are preserved. This enables seamless
2949 debugging in tools like Firebug.
2950 @item Efficiency: Parenscript introduces minimal overhead for advanced Common
2951 Lisp features. The generated code is almost as fast as hand-written
2952 JavaScript.
2953 @end itemize\n")
2954 (license license:bsd-3))))
2955
2956 (define-public cl-parenscript
2957 (sbcl-package->cl-source-package sbcl-parenscript))
2958
2959 (define-public ecl-parenscript
2960 (sbcl-package->ecl-package sbcl-parenscript))
2961
2962 (define-public sbcl-cl-json
2963 (let ((commit "6dfebb9540bfc3cc33582d0c03c9ec27cb913e79"))
2964 (package
2965 (name "sbcl-cl-json")
2966 (version (git-version "0.5" "1" commit))
2967 (source
2968 (origin
2969 (method git-fetch)
2970 (uri (git-reference
2971 (url "https://github.com/hankhero/cl-json")
2972 (commit commit)))
2973 (file-name (git-file-name "cl-json" version))
2974 (sha256
2975 (base32
2976 "0fx3m3x3s5ji950yzpazz4s0img3l6b3d6l3jrfjv0lr702496lh"))))
2977 (build-system asdf-build-system/sbcl)
2978 (native-inputs
2979 `(("fiveam" ,sbcl-fiveam)))
2980 (home-page "https://github.com/hankhero/cl-json")
2981 (synopsis "JSON encoder and decoder for Common-Lisp")
2982 (description
2983 "@command{cl-json} provides an encoder of Lisp objects to JSON format
2984 and a corresponding decoder of JSON data to Lisp objects. Both the encoder
2985 and the decoder are highly customizable; at the same time, the default
2986 settings ensure a very simple mode of operation, similar to that provided by
2987 @command{yason} or @command{st-json}.")
2988 (license license:expat))))
2989
2990 (define-public cl-json
2991 (sbcl-package->cl-source-package sbcl-cl-json))
2992
2993 (define-public ecl-cl-json
2994 (sbcl-package->ecl-package sbcl-cl-json))
2995
2996 (define-public sbcl-unix-opts
2997 (package
2998 (name "sbcl-unix-opts")
2999 (version "0.1.7")
3000 (source
3001 (origin
3002 (method git-fetch)
3003 (uri (git-reference
3004 (url "https://github.com/libre-man/unix-opts")
3005 (commit version)))
3006 (file-name (git-file-name "unix-opts" version))
3007 (sha256
3008 (base32
3009 "08djdi1ard09fijb7w9bdmhmwd98b1hzmcnjw9fqjiqa0g3b44rr"))))
3010 (build-system asdf-build-system/sbcl)
3011 (home-page "https://github.com/hankhero/cl-json")
3012 (synopsis "Unix-style command line options parser")
3013 (description
3014 "This is a minimalistic parser of command line options. The main
3015 advantage of the library is the ability to concisely define command line
3016 options once and then use this definition for parsing and extraction of
3017 command line arguments, as well as printing description of command line
3018 options (you get --help for free). This way you don't need to repeat
3019 yourself. Also, @command{unix-opts} doesn't depend on anything and
3020 precisely controls the behavior of the parser via Common Lisp restarts.")
3021 (license license:expat)))
3022
3023 (define-public cl-unix-opts
3024 (sbcl-package->cl-source-package sbcl-unix-opts))
3025
3026 (define-public ecl-unix-opts
3027 (sbcl-package->ecl-package sbcl-unix-opts))
3028
3029 (define-public sbcl-trivial-garbage
3030 (package
3031 (name "sbcl-trivial-garbage")
3032 (version "0.21")
3033 (source
3034 (origin
3035 (method git-fetch)
3036 (uri (git-reference
3037 (url "https://github.com/trivial-garbage/trivial-garbage")
3038 (commit (string-append "v" version))))
3039 (file-name (git-file-name "trivial-garbage" version))
3040 (sha256
3041 (base32 "0122jicfg7pca1wxw8zak1n92h5friqy60988ns0ysksj3fphw9n"))))
3042 (build-system asdf-build-system/sbcl)
3043 (native-inputs
3044 `(("rt" ,sbcl-rt)))
3045 (home-page "https://common-lisp.net/project/trivial-garbage/")
3046 (synopsis "Portable GC-related APIs for Common Lisp")
3047 (description "@command{trivial-garbage} provides a portable API to
3048 finalizers, weak hash-tables and weak pointers on all major implementations of
3049 the Common Lisp programming language.")
3050 (license license:public-domain)))
3051
3052 (define-public cl-trivial-garbage
3053 (sbcl-package->cl-source-package sbcl-trivial-garbage))
3054
3055 (define-public ecl-trivial-garbage
3056 (sbcl-package->ecl-package sbcl-trivial-garbage))
3057
3058 (define-public sbcl-closer-mop
3059 (let ((commit "19c9d33f576e10715fd79cc1d4f688dab0f241d6"))
3060 (package
3061 (name "sbcl-closer-mop")
3062 (version (git-version "1.0.0" "2" commit))
3063 (source
3064 (origin
3065 (method git-fetch)
3066 (uri (git-reference
3067 (url "https://github.com/pcostanza/closer-mop")
3068 (commit commit)))
3069 (sha256
3070 (base32 "1w3x087wvlwkd6swfdgbvjfs6kazf0la8ax4pjfzikwjch4snn2c"))
3071 (file-name (git-file-name "closer-mop" version ))))
3072 (build-system asdf-build-system/sbcl)
3073 (home-page "https://github.com/pcostanza/closer-mop")
3074 (synopsis "Rectifies absent or incorrect CLOS MOP features")
3075 (description "Closer to MOP is a compatibility layer that rectifies many
3076 of the absent or incorrect CLOS MOP features across a broad range of Common
3077 Lisp implementations.")
3078 (license license:expat))))
3079
3080 (define-public cl-closer-mop
3081 (sbcl-package->cl-source-package sbcl-closer-mop))
3082
3083 (define-public ecl-closer-mop
3084 (sbcl-package->ecl-package sbcl-closer-mop))
3085
3086 (define-public sbcl-cl-cffi-gtk
3087 (let ((commit "e9a46df65995d9a16e6c8dbdc1e09b775eb4a966"))
3088 (package
3089 (name "sbcl-cl-cffi-gtk")
3090 (version (git-version "0.11.2" "2" commit))
3091 (source
3092 (origin
3093 (method git-fetch)
3094 (uri (git-reference
3095 (url "https://github.com/Ferada/cl-cffi-gtk/")
3096 (commit commit)))
3097 (file-name (git-file-name "cl-cffi-gtk" version))
3098 (sha256
3099 (base32
3100 "04vix0gmqsj91lm975sx7jhlnz5gq1xf9jp873mp7c8frc5dk1jj"))))
3101 (build-system asdf-build-system/sbcl)
3102 (native-inputs
3103 `(("fiveam" ,sbcl-fiveam)))
3104 (inputs
3105 `(("bordeaux-threads" ,sbcl-bordeaux-threads)
3106 ("cairo" ,cairo)
3107 ("cffi" ,sbcl-cffi)
3108 ("closer-mop" ,sbcl-closer-mop)
3109 ("gdk-pixbuf" ,gdk-pixbuf)
3110 ("glib" ,glib)
3111 ("gtk" ,gtk+)
3112 ("iterate" ,sbcl-iterate)
3113 ("pango" ,pango)
3114 ("trivial-features" ,sbcl-trivial-features)
3115 ("trivial-garbage" ,sbcl-trivial-garbage)))
3116 (arguments
3117 `(#:asd-files '("gtk/cl-cffi-gtk.asd"
3118 "glib/cl-cffi-gtk-glib.asd"
3119 "gobject/cl-cffi-gtk-gobject.asd"
3120 "gio/cl-cffi-gtk-gio.asd"
3121 "cairo/cl-cffi-gtk-cairo.asd"
3122 "pango/cl-cffi-gtk-pango.asd"
3123 "gdk-pixbuf/cl-cffi-gtk-gdk-pixbuf.asd"
3124 "gdk/cl-cffi-gtk-gdk.asd")
3125 #:test-asd-file "test/cl-cffi-gtk-test.asd"
3126 ;; TODO: Tests fail with memory fault.
3127 ;; See https://github.com/Ferada/cl-cffi-gtk/issues/24.
3128 #:tests? #f
3129 #:phases
3130 (modify-phases %standard-phases
3131 (add-after 'unpack 'fix-paths
3132 (lambda* (#:key inputs #:allow-other-keys)
3133 (substitute* "glib/glib.init.lisp"
3134 (("libglib|libgthread" all)
3135 (string-append (assoc-ref inputs "glib") "/lib/" all)))
3136 (substitute* "gobject/gobject.init.lisp"
3137 (("libgobject" all)
3138 (string-append (assoc-ref inputs "glib") "/lib/" all)))
3139 (substitute* "gio/gio.init.lisp"
3140 (("libgio" all)
3141 (string-append (assoc-ref inputs "glib") "/lib/" all)))
3142 (substitute* "cairo/cairo.init.lisp"
3143 (("libcairo" all)
3144 (string-append (assoc-ref inputs "cairo") "/lib/" all)))
3145 (substitute* "pango/pango.init.lisp"
3146 (("libpango" all)
3147 (string-append (assoc-ref inputs "pango") "/lib/" all)))
3148 (substitute* "gdk-pixbuf/gdk-pixbuf.init.lisp"
3149 (("libgdk_pixbuf" all)
3150 (string-append (assoc-ref inputs "gdk-pixbuf") "/lib/" all)))
3151 (substitute* "gdk/gdk.init.lisp"
3152 (("libgdk" all)
3153 (string-append (assoc-ref inputs "gtk") "/lib/" all)))
3154 (substitute* "gdk/gdk.package.lisp"
3155 (("libgtk" all)
3156 (string-append (assoc-ref inputs "gtk") "/lib/" all))))))))
3157 (home-page "https://github.com/Ferada/cl-cffi-gtk/")
3158 (synopsis "Common Lisp binding for GTK+3")
3159 (description
3160 "@command{cl-cffi-gtk} is a Lisp binding to GTK+ 3 (GIMP Toolkit) which
3161 is a library for creating graphical user interfaces.")
3162 (license license:lgpl3))))
3163
3164 (define-public cl-cffi-gtk
3165 (sbcl-package->cl-source-package sbcl-cl-cffi-gtk))
3166
3167 (define-public ecl-cl-cffi-gtk
3168 (sbcl-package->ecl-package sbcl-cl-cffi-gtk))
3169
3170 (define-public sbcl-cl-webkit
3171 (let ((commit "0bc05cc73257670ab241853b9cc9ccb68940fe44"))
3172 (package
3173 (name "sbcl-cl-webkit")
3174 (version (git-version "2.4" "10" commit))
3175 (source
3176 (origin
3177 (method git-fetch)
3178 (uri (git-reference
3179 (url "https://github.com/joachifm/cl-webkit")
3180 (commit commit)))
3181 (file-name (git-file-name "cl-webkit" version))
3182 (sha256
3183 (base32
3184 "1kg6illspvb5647pm0x819ag2n7njnqvrm18jzgd28vk6nlkrcmq"))))
3185 (build-system asdf-build-system/sbcl)
3186 (inputs
3187 `(("cffi" ,sbcl-cffi)
3188 ("cl-cffi-gtk" ,sbcl-cl-cffi-gtk)
3189 ("webkitgtk" ,webkitgtk)))
3190 (arguments
3191 `(#:asd-systems '("cl-webkit2")
3192 #:phases
3193 (modify-phases %standard-phases
3194 (add-after 'unpack 'fix-paths
3195 (lambda* (#:key inputs #:allow-other-keys)
3196 (substitute* "webkit2/webkit2.init.lisp"
3197 (("libwebkit2gtk" all)
3198 (string-append
3199 (assoc-ref inputs "webkitgtk") "/lib/" all))))))))
3200 (home-page "https://github.com/joachifm/cl-webkit")
3201 (synopsis "Binding to WebKitGTK+ for Common Lisp")
3202 (description
3203 "@command{cl-webkit} is a binding to WebKitGTK+ for Common Lisp,
3204 currently targeting WebKit version 2. The WebKitGTK+ library adds web
3205 browsing capabilities to an application, leveraging the full power of the
3206 WebKit browsing engine.")
3207 (license license:expat))))
3208
3209 (define-public cl-webkit
3210 (sbcl-package->cl-source-package sbcl-cl-webkit))
3211
3212 (define-public ecl-cl-webkit
3213 (sbcl-package->ecl-package sbcl-cl-webkit))
3214
3215 (define-public sbcl-lparallel
3216 (package
3217 (name "sbcl-lparallel")
3218 (version "2.8.4")
3219 (source
3220 (origin
3221 (method git-fetch)
3222 (uri (git-reference
3223 (url "https://github.com/lmj/lparallel/")
3224 (commit (string-append "lparallel-" version))))
3225 (file-name (git-file-name "lparallel" version))
3226 (sha256
3227 (base32
3228 "0g0aylrbbrqsz0ahmwhvnk4cmc2931fllbpcfgzsprwnqqd7vwq9"))))
3229 (build-system asdf-build-system/sbcl)
3230 (inputs
3231 `(("alexandria" ,sbcl-alexandria)
3232 ("bordeaux-threads" ,sbcl-bordeaux-threads)
3233 ("trivial-garbage" ,sbcl-trivial-garbage)))
3234 (arguments
3235 `(#:phases
3236 (modify-phases %standard-phases
3237 (add-after 'unpack 'fix-dependency
3238 ;; lparallel loads a SBCL specific system in its asd file. This is
3239 ;; not carried over into the fasl which is generated. In order for
3240 ;; it to be carried over, it needs to be listed as a dependency.
3241 (lambda _
3242 (substitute* "lparallel.asd"
3243 ((":depends-on \\(:alexandria" all)
3244 (string-append all " #+sbcl :sb-cltl2"))))))))
3245 (home-page "https://lparallel.org/")
3246 (synopsis "Parallelism for Common Lisp")
3247 (description
3248 "@command{lparallel} is a library for parallel programming in Common
3249 Lisp, featuring:
3250
3251 @itemize
3252 @item a simple model of task submission with receiving queue,
3253 @item constructs for expressing fine-grained parallelism,
3254 @item asynchronous condition handling across thread boundaries,
3255 @item parallel versions of map, reduce, sort, remove, and many others,
3256 @item promises, futures, and delayed evaluation constructs,
3257 @item computation trees for parallelizing interconnected tasks,
3258 @item bounded and unbounded FIFO queues,
3259 @item high and low priority tasks,
3260 @item task killing by category,
3261 @item integrated timeouts.
3262 @end itemize\n")
3263 (license license:expat)))
3264
3265 (define-public cl-lparallel
3266 (sbcl-package->cl-source-package sbcl-lparallel))
3267
3268 (define-public ecl-lparallel
3269 (package
3270 (inherit (sbcl-package->ecl-package sbcl-lparallel))
3271 (arguments
3272 ;; TODO: Find why the tests get stuck forever; disable them for now.
3273 `(#:tests? #f))))
3274
3275 (define-public sbcl-cl-markup
3276 (let ((commit "e0eb7debf4bdff98d1f49d0f811321a6a637b390"))
3277 (package
3278 (name "sbcl-cl-markup")
3279 (version (git-version "0.1" "1" commit))
3280 (source
3281 (origin
3282 (method git-fetch)
3283 (uri (git-reference
3284 (url "https://github.com/arielnetworks/cl-markup/")
3285 (commit commit)))
3286 (file-name (git-file-name "cl-markup" version))
3287 (sha256
3288 (base32
3289 "10l6k45971dl13fkdmva7zc6i453lmq9j4xax2ci6pjzlc6xjhp7"))))
3290 (build-system asdf-build-system/sbcl)
3291 (home-page "https://github.com/arielnetworks/cl-markup/")
3292 (synopsis "Markup generation library for Common Lisp")
3293 (description
3294 "A modern markup generation library for Common Lisp that features:
3295
3296 @itemize
3297 @item Fast (even faster through compiling the code)
3298 @item Safety
3299 @item Support for multiple document types (markup, xml, html, html5, xhtml)
3300 @item Output with doctype
3301 @item Direct output to stream
3302 @end itemize\n")
3303 (license license:lgpl3+))))
3304
3305 (define-public cl-markup
3306 (sbcl-package->cl-source-package sbcl-cl-markup))
3307
3308 (define-public ecl-cl-markup
3309 (sbcl-package->ecl-package sbcl-cl-markup))
3310
3311 (define-public sbcl-cl-mustache
3312 (package
3313 (name "sbcl-cl-mustache")
3314 (version "0.12.1")
3315 (source
3316 (origin
3317 (method git-fetch)
3318 (uri (git-reference
3319 (url "https://github.com/kanru/cl-mustache")
3320 (commit (string-append "v" version))))
3321 (file-name (git-file-name "cl-mustache" version))
3322 (sha256
3323 (base32 "149xbb6wxq1napliwm9cv729hwcgfnjli6y8hingfixz7f10lhks"))))
3324 (build-system asdf-build-system/sbcl)
3325 (home-page "https://github.com/kanru/cl-mustache")
3326 (synopsis "Common Lisp Mustache template renderer")
3327 (description "This is a Common Lisp implementation for the Mustache
3328 template system. More details on the standard are available at
3329 @url{https://mustache.github.io}.")
3330 (license license:expat)))
3331
3332 (define-public cl-mustache
3333 (sbcl-package->cl-source-package sbcl-cl-mustache))
3334
3335 (define-public ecl-cl-mustache
3336 (sbcl-package->ecl-package sbcl-cl-mustache))
3337
3338 (define-public sbcl-cl-css
3339 (let ((commit "8fe654c8f0cf95b300718101cce4feb517f78e2f"))
3340 (package
3341 (name "sbcl-cl-css")
3342 (version (git-version "0.1" "1" commit))
3343 (source
3344 (origin
3345 (method git-fetch)
3346 (uri (git-reference
3347 (url "https://github.com/inaimathi/cl-css/")
3348 (commit commit)))
3349 (file-name (git-file-name "cl-css" version))
3350 (sha256
3351 (base32
3352 "1lc42zi2sw11fl2589sc19nr5sd2p0wy7wgvgwaggxa5f3ajhsmd"))))
3353 (build-system asdf-build-system/sbcl)
3354 (home-page "https://github.com/inaimathi/cl-css/")
3355 (synopsis "Non-validating, inline CSS generator for Common Lisp")
3356 (description
3357 "This is a dead-simple, non validating, inline CSS generator for Common
3358 Lisp. Its goals are axiomatic syntax, simple implementation to support
3359 portability, and boilerplate reduction in CSS.")
3360 (license license:expat))))
3361
3362 (define-public cl-css
3363 (sbcl-package->cl-source-package sbcl-cl-css))
3364
3365 (define-public ecl-cl-css
3366 (sbcl-package->ecl-package sbcl-cl-css))
3367
3368 (define-public sbcl-portable-threads
3369 (let ((commit "aa26bf38338a6b068bf8bfb3375d8d8c3b0a28df"))
3370 (package
3371 (name "sbcl-portable-threads")
3372 (version (git-version "2.3" "2" commit))
3373 (source
3374 (origin
3375 (method git-fetch)
3376 (uri (git-reference
3377 (url "https://github.com/binghe/portable-threads/")
3378 (commit commit)))
3379 (file-name (git-file-name "portable-threads" version))
3380 (sha256
3381 (base32 "058ksi07vfdmhrf5mdlc833s82m1rcqfja2266520m3r8bzs8bvs"))))
3382 (build-system asdf-build-system/sbcl)
3383 (arguments
3384 `(;; Tests seem broken.
3385 #:tests? #f))
3386 (home-page "https://github.com/binghe/portable-threads")
3387 (synopsis "Portable threads API for Common Lisp")
3388 (description
3389 "Portable Threads (and Scheduled and Periodic Functions) API for Common
3390 Lisp (from GBBopen project).")
3391 (license license:asl2.0))))
3392
3393 (define-public cl-portable-threads
3394 (sbcl-package->cl-source-package sbcl-portable-threads))
3395
3396 (define-public ecl-portable-threads
3397 (sbcl-package->ecl-package sbcl-portable-threads))
3398
3399 (define-public sbcl-usocket
3400 (package
3401 (name "sbcl-usocket")
3402 (version "0.8.3")
3403 (source
3404 (origin
3405 (method git-fetch)
3406 (uri (git-reference
3407 (url "https://github.com/usocket/usocket/")
3408 (commit (string-append "v" version))))
3409 (file-name (git-file-name "usocket" version))
3410 (sha256
3411 (base32
3412 "0x746wr2324l6bn7skqzgkzcbj5kd0zp2ck0c8rldrw0rzabg826"))))
3413 (build-system asdf-build-system/sbcl)
3414 (native-inputs
3415 `(("rt" ,sbcl-rt)))
3416 (inputs
3417 `(("bordeaux-threads" ,sbcl-bordeaux-threads)
3418 ("split-sequence" ,sbcl-split-sequence)))
3419 (arguments
3420 `(#:tests? #f ; FIXME: Tests need network access?
3421 #:asd-systems '("usocket"
3422 "usocket-server")))
3423 (home-page "https://common-lisp.net/project/usocket/")
3424 (synopsis "Universal socket library for Common Lisp")
3425 (description
3426 "This library strives to provide a portable TCP/IP and UDP/IP socket
3427 interface for as many Common Lisp implementations as possible, while keeping
3428 the abstraction and portability layer as thin as possible.")
3429 (license license:expat)))
3430
3431 (define-public cl-usocket
3432 (sbcl-package->cl-source-package sbcl-usocket))
3433
3434 (define-public ecl-usocket
3435 (sbcl-package->ecl-package sbcl-usocket))
3436
3437 (define-public sbcl-s-xml
3438 (package
3439 (name "sbcl-s-xml")
3440 (version "3")
3441 (source
3442 (origin
3443 (method url-fetch)
3444 (uri "https://common-lisp.net/project/s-xml/s-xml.tgz")
3445 (sha256
3446 (base32
3447 "061qcr0dzshsa38s5ma4ay924cwak2nq9gy59dw6v9p0qb58nzjf"))))
3448 (build-system asdf-build-system/sbcl)
3449 (home-page "https://common-lisp.net/project/s-xml/")
3450 (synopsis "Simple XML parser implemented in Common Lisp")
3451 (description
3452 "S-XML is a simple XML parser implemented in Common Lisp. This XML
3453 parser implementation has the following features:
3454
3455 @itemize
3456 @item It works (handling many common XML usages).
3457 @item It is very small (the core is about 700 lines of code, including
3458 comments and whitespace).
3459 @item It has a core API that is simple, efficient and pure functional, much
3460 like that from SSAX (see also http://ssax.sourceforge.net).
3461 @item It supports different DOM models: an XSML-based one, an LXML-based one
3462 and a classic xml-element struct based one.
3463 @item It is reasonably time and space efficient (internally avoiding garbage
3464 generatation as much as possible).
3465 @item It does support CDATA.
3466 @item It should support the same character sets as your Common Lisp
3467 implementation.
3468 @item It does support XML name spaces.
3469 @end itemize
3470
3471 This XML parser implementation has the following limitations:
3472
3473 @itemize
3474 @item It does not support any special tags (like processing instructions).
3475 @item It is not validating, even skips DTD's all together.
3476 @end itemize\n")
3477 (license license:lgpl3+)))
3478
3479 (define-public cl-s-xml
3480 (sbcl-package->cl-source-package sbcl-s-xml))
3481
3482 (define-public ecl-s-xml
3483 (sbcl-package->ecl-package sbcl-s-xml))
3484
3485 (define-public sbcl-s-xml-rpc
3486 (package
3487 (name "sbcl-s-xml-rpc")
3488 (version "7")
3489 (source
3490 (origin
3491 (method url-fetch)
3492 (uri "https://common-lisp.net/project/s-xml-rpc/s-xml-rpc.tgz")
3493 (sha256
3494 (base32
3495 "02z7k163d51v0pzk8mn1xb6h5s6x64gjqkslhwm3a5x26k2gfs11"))))
3496 (build-system asdf-build-system/sbcl)
3497 (inputs
3498 `(("s-xml" ,sbcl-s-xml)))
3499 (home-page "https://common-lisp.net/project/s-xml-rpc/")
3500 (synopsis "Implementation of XML-RPC in Common Lisp for both client and server")
3501 (description
3502 "S-XML-RPC is an implementation of XML-RPC in Common Lisp for both
3503 client and server.")
3504 (license license:lgpl3+)))
3505
3506 (define-public cl-s-xml-rpc
3507 (sbcl-package->cl-source-package sbcl-s-xml-rpc))
3508
3509 (define-public ecl-s-xml-rpc
3510 (sbcl-package->ecl-package sbcl-s-xml-rpc))
3511
3512 (define-public sbcl-trivial-arguments
3513 (let ((commit "ecd84ed9cf9ef8f1e873d7409e6bd04979372aa7")
3514 (revision "1"))
3515 (package
3516 (name "sbcl-trivial-arguments")
3517 (version (git-version "1.1.0" revision commit))
3518 (source
3519 (origin
3520 (method git-fetch)
3521 (uri (git-reference
3522 (url "https://github.com/Shinmera/trivial-arguments")
3523 (commit commit)))
3524 (file-name (git-file-name "trivial-arguments" version))
3525 (sha256
3526 (base32 "02vaqfavhj8jqxnr68nnzvzshm8jbgcy6m9lvyv4daa6f7ihqf88"))))
3527 (build-system asdf-build-system/sbcl)
3528 (home-page "https://github.com/Shinmera/trivial-arguments")
3529 (synopsis "Common Lisp library to retrieve a function's lambda-list")
3530 (description
3531 "This is a simple library to retrieve the argument list of a function.")
3532 (license license:zlib))))
3533
3534 (define-public ecl-trivial-arguments
3535 (sbcl-package->ecl-package sbcl-trivial-arguments))
3536
3537 (define-public cl-trivial-arguments
3538 (sbcl-package->cl-source-package sbcl-trivial-arguments))
3539
3540 (define-public sbcl-trivial-clipboard
3541 (let ((commit "afcd3743b842f5a81fc86dba60f9db59970f49c5"))
3542 (package
3543 (name "sbcl-trivial-clipboard")
3544 (version (git-version "0.0.0.0" "3" commit))
3545 (source
3546 (origin
3547 (method git-fetch)
3548 (uri (git-reference
3549 (url "https://github.com/snmsts/trivial-clipboard")
3550 (commit commit)))
3551 (file-name (git-file-name "trivial-clipboard" version))
3552 (sha256
3553 (base32
3554 "1qfbvkzmvkbqpc5s3sx31c5653sy6qlcixafgzd10qpykb843prr"))))
3555 (build-system asdf-build-system/sbcl)
3556 (inputs
3557 `(("xclip" ,xclip)))
3558 (native-inputs
3559 `(("fiveam" ,sbcl-fiveam)))
3560 (arguments
3561 `(#:phases
3562 (modify-phases %standard-phases
3563 (add-after 'unpack 'fix-paths
3564 (lambda* (#:key inputs #:allow-other-keys)
3565 (substitute* "src/text.lisp"
3566 (("\\(executable-find \"xclip\"\\)")
3567 (string-append "(executable-find \""
3568 (assoc-ref inputs "xclip")
3569 "/bin/xclip\")"))))))))
3570 (home-page "https://github.com/snmsts/trivial-clipboard")
3571 (synopsis "Access system clipboard in Common Lisp")
3572 (description
3573 "@command{trivial-clipboard} gives access to the system clipboard.")
3574 (license license:expat))))
3575
3576 (define-public cl-trivial-clipboard
3577 (sbcl-package->cl-source-package sbcl-trivial-clipboard))
3578
3579 (define-public ecl-trivial-clipboard
3580 (sbcl-package->ecl-package sbcl-trivial-clipboard))
3581
3582 (define-public sbcl-trivial-backtrace
3583 (let ((commit "ca81c011b86424a381a7563cea3b924f24e6fbeb")
3584 (revision "1"))
3585 (package
3586 (name "sbcl-trivial-backtrace")
3587 (version (git-version "0.0.0" revision commit))
3588 (source
3589 (origin
3590 (method git-fetch)
3591 (uri (git-reference
3592 (url "https://github.com/gwkkwg/trivial-backtrace")
3593 (commit commit)))
3594 (file-name (git-file-name "trivial-backtrace" version))
3595 (sha256
3596 (base32 "10p41p43skj6cimdg8skjy7372s8v2xpkg8djjy0l8rm45i654k1"))))
3597 (build-system asdf-build-system/sbcl)
3598 (inputs
3599 `(("sbcl-lift" ,sbcl-lift)))
3600 (arguments
3601 `(#:phases
3602 (modify-phases %standard-phases
3603 (add-after 'check 'delete-test-results
3604 (lambda* (#:key outputs #:allow-other-keys)
3605 (let ((test-results (string-append (assoc-ref outputs "out")
3606 "/share/common-lisp/"
3607 (%lisp-type)
3608 "/trivial-backtrace"
3609 "/test-results")))
3610 (when (file-exists? test-results)
3611 (delete-file-recursively test-results)))
3612 #t)))))
3613 (home-page "https://common-lisp.net/project/trivial-backtrace/")
3614 (synopsis "Portable simple API to work with backtraces in Common Lisp")
3615 (description
3616 "One of the many things that didn't quite get into the Common Lisp
3617 standard was how to get a Lisp to output its call stack when something has
3618 gone wrong. As such, each Lisp has developed its own notion of what to
3619 display, how to display it, and what sort of arguments can be used to
3620 customize it. @code{trivial-backtrace} is a simple solution to generating a
3621 backtrace portably.")
3622 (license license:expat))))
3623
3624 (define-public cl-trivial-backtrace
3625 (sbcl-package->cl-source-package sbcl-trivial-backtrace))
3626
3627 (define-public ecl-trivial-backtrace
3628 (sbcl-package->ecl-package sbcl-trivial-backtrace))
3629
3630 (define-public sbcl-rfc2388
3631 (let ((commit "591bcf7e77f2c222c43953a80f8c297751dc0c4e")
3632 (revision "1"))
3633 (package
3634 (name "sbcl-rfc2388")
3635 (version (git-version "0.0.0" revision commit))
3636 (source
3637 (origin
3638 (method git-fetch)
3639 (uri (git-reference
3640 (url "https://github.com/jdz/rfc2388")
3641 (commit commit)))
3642 (file-name (git-file-name "rfc2388" version))
3643 (sha256
3644 (base32 "0phh5n3clhl9ji8jaxrajidn22d3f0aq87mlbfkkxlnx2pnw694k"))))
3645 (build-system asdf-build-system/sbcl)
3646 (home-page "https://github.com/jdz/rfc2388/")
3647 (synopsis "An implementation of RFC 2388 in Common Lisp")
3648 (description
3649 "This package contains an implementation of RFC 2388, which is used to
3650 process form data posted with HTTP POST method using enctype
3651 \"multipart/form-data\".")
3652 (license license:bsd-2))))
3653
3654 (define-public cl-rfc2388
3655 (sbcl-package->cl-source-package sbcl-rfc2388))
3656
3657 (define-public ecl-rfc2388
3658 (sbcl-package->ecl-package sbcl-rfc2388))
3659
3660 (define-public sbcl-md5
3661 (package
3662 (name "sbcl-md5")
3663 (version "2.0.4")
3664 (source
3665 (origin
3666 (method git-fetch)
3667 (uri (git-reference
3668 (url "https://github.com/pmai/md5")
3669 (commit (string-append "release-" version))))
3670 (file-name (git-file-name "md5" version))
3671 (sha256
3672 (base32 "1waqxzm7vlc22n92hv8r27anlvvjkkh9slhrky1ww7mdx4mmxwb8"))))
3673 (build-system asdf-build-system/sbcl)
3674 (home-page "https://github.com/pmai/md5")
3675 (synopsis
3676 "Common Lisp implementation of the MD5 Message-Digest Algorithm (RFC 1321)")
3677 (description
3678 "This package implements The MD5 Message-Digest Algorithm, as defined in
3679 RFC 1321 by R. Rivest, published April 1992.")
3680 (license license:public-domain)))
3681
3682 (define-public cl-md5
3683 (sbcl-package->cl-source-package sbcl-md5))
3684
3685 (define-public ecl-md5
3686 (package
3687 (inherit (sbcl-package->ecl-package sbcl-md5))
3688 (inputs
3689 `(("flexi-streams" ,ecl-flexi-streams)))))
3690
3691 (define-public sbcl-cl+ssl
3692 (let ((commit "701e645081e6533a3f0f0b3ac86389d6f506c4b5")
3693 (revision "1"))
3694 (package
3695 (name "sbcl-cl+ssl")
3696 (version (git-version "0.0.0" revision commit))
3697 (source
3698 (origin
3699 (method git-fetch)
3700 (uri (git-reference
3701 (url "https://github.com/cl-plus-ssl/cl-plus-ssl")
3702 (commit commit)))
3703 (file-name (git-file-name "cl+ssl" version))
3704 (sha256
3705 (base32 "0nfl275nwhff3m25872y388cydz14kqb6zbwywa6nj85r9k8bgs0"))))
3706 (build-system asdf-build-system/sbcl)
3707 (arguments
3708 '(#:phases
3709 (modify-phases %standard-phases
3710 (add-after 'unpack 'fix-paths
3711 (lambda* (#:key inputs #:allow-other-keys)
3712 (substitute* "src/reload.lisp"
3713 (("libssl.so" all)
3714 (string-append
3715 (assoc-ref inputs "openssl") "/lib/" all))))))))
3716 (inputs
3717 `(("openssl" ,openssl)
3718 ("sbcl-cffi" ,sbcl-cffi)
3719 ("sbcl-trivial-gray-streams" ,sbcl-trivial-gray-streams)
3720 ("sbcl-flexi-streams" ,sbcl-flexi-streams)
3721 ("sbcl-bordeaux-threads" ,sbcl-bordeaux-threads)
3722 ("sbcl-trivial-garbage" ,sbcl-trivial-garbage)
3723 ("sbcl-alexandria" ,sbcl-alexandria)
3724 ("sbcl-trivial-features" ,sbcl-trivial-features)))
3725 (home-page "https://common-lisp.net/project/cl-plus-ssl/")
3726 (synopsis "Common Lisp bindings to OpenSSL")
3727 (description
3728 "This library is a fork of SSL-CMUCL. The original SSL-CMUCL source
3729 code was written by Eric Marsden and includes contributions by Jochen Schmidt.
3730 Development into CL+SSL was done by David Lichteblau.")
3731 (license license:expat))))
3732
3733 (define-public cl-cl+ssl
3734 (sbcl-package->cl-source-package sbcl-cl+ssl))
3735
3736 (define-public ecl-cl+ssl
3737 (sbcl-package->ecl-package sbcl-cl+ssl))
3738
3739 (define-public sbcl-kmrcl
3740 (let ((version "1.111")
3741 (commit "4a27407aad9deb607ffb8847630cde3d041ea25a")
3742 (revision "1"))
3743 (package
3744 (name "sbcl-kmrcl")
3745 (version (git-version version revision commit))
3746 (source
3747 (origin
3748 (method git-fetch)
3749 (uri (git-reference
3750 (url "http://git.kpe.io/kmrcl.git/")
3751 (commit commit)))
3752 (file-name (git-file-name name version))
3753 (sha256
3754 (base32 "06gx04mah5nc8w78s0j8628divbf1s5w7af8w7pvzb2d5mgvrbd2"))))
3755 (build-system asdf-build-system/sbcl)
3756 (inputs
3757 `(("sbcl-rt" ,sbcl-rt)))
3758 (home-page "http://files.kpe.io/kmrcl/")
3759 (synopsis "General utilities for Common Lisp programs")
3760 (description
3761 "KMRCL is a collection of utilities used by a number of Kevin
3762 Rosenberg's Common Lisp packages.")
3763 (license license:llgpl))))
3764
3765 (define-public cl-kmrcl
3766 (sbcl-package->cl-source-package sbcl-kmrcl))
3767
3768 (define-public ecl-kmrcl
3769 (sbcl-package->ecl-package sbcl-kmrcl))
3770
3771 (define-public sbcl-cl-base64
3772 ;; 3.3.4 tests are broken, upstream fixes them.
3773 (let ((commit "577683b18fd880b82274d99fc96a18a710e3987a"))
3774 (package
3775 (name "sbcl-cl-base64")
3776 (version (git-version "3.3.4" "1" commit))
3777 (source
3778 (origin
3779 (method git-fetch)
3780 (uri (git-reference
3781 (url "http://git.kpe.io/cl-base64.git/")
3782 (commit commit)))
3783 (file-name (git-file-name name version))
3784 (sha256
3785 (base32 "12jj54h0fs6n237cvnp8v6hn0imfksammq22ys6pi0gwz2w47rbj"))))
3786 (build-system asdf-build-system/sbcl)
3787 (native-inputs ; For tests.
3788 `(("sbcl-ptester" ,sbcl-ptester)
3789 ("sbcl-kmrcl" ,sbcl-kmrcl)))
3790 (home-page "http://files.kpe.io/cl-base64/")
3791 (synopsis
3792 "Common Lisp package to encode and decode base64 with URI support")
3793 (description
3794 "This package provides highly optimized base64 encoding and decoding.
3795 Besides conversion to and from strings, integer conversions are supported.
3796 Encoding with Uniform Resource Identifiers is supported by using a modified
3797 encoding table that uses only URI-compatible characters.")
3798 (license license:bsd-3))))
3799
3800 (define-public cl-base64
3801 (sbcl-package->cl-source-package sbcl-cl-base64))
3802
3803 (define-public ecl-cl-base64
3804 (sbcl-package->ecl-package sbcl-cl-base64))
3805
3806 (define-public sbcl-chunga
3807 (package
3808 (name "sbcl-chunga")
3809 (version "1.1.7")
3810 (source
3811 (origin
3812 (method git-fetch)
3813 (uri (git-reference
3814 (url "https://github.com/edicl/chunga")
3815 (commit (string-append "v" version))))
3816 (file-name (git-file-name name version))
3817 (sha256
3818 (base32 "0jzn3nyb3f22gm983rfk99smqs3mhb9ivjmasvhq9qla5cl9pyhd"))))
3819 (build-system asdf-build-system/sbcl)
3820 (inputs
3821 `(("sbcl-trivial-gray-streams" ,sbcl-trivial-gray-streams)))
3822 (home-page "https://edicl.github.io/chunga/")
3823 (synopsis "Portable chunked streams for Common Lisp")
3824 (description
3825 "Chunga implements streams capable of chunked encoding on demand as
3826 defined in RFC 2616.")
3827 (license license:bsd-2)))
3828
3829 (define-public cl-chunga
3830 (sbcl-package->cl-source-package sbcl-chunga))
3831
3832 (define-public ecl-chunga
3833 (sbcl-package->ecl-package sbcl-chunga))
3834
3835 (define-public sbcl-cl-who
3836 (let ((version "1.1.4")
3837 (commit "2c08caa4bafba720409af9171feeba3f32e86d32")
3838 (revision "1"))
3839 (package
3840 (name "sbcl-cl-who")
3841 (version (git-version version revision commit))
3842 (source
3843 (origin
3844 (method git-fetch)
3845 (uri (git-reference
3846 (url "https://github.com/edicl/cl-who")
3847 (commit commit)))
3848 (file-name (git-file-name name version))
3849 (sha256
3850 (base32
3851 "0yjb6sr3yazm288m318kqvj9xk8rm9n1lpimgf65ymqv0i5agxsb"))))
3852 (build-system asdf-build-system/sbcl)
3853 (native-inputs
3854 `(("sbcl-flexi-streams" ,sbcl-flexi-streams)))
3855 (home-page "https://edicl.github.io/cl-who/")
3856 (synopsis "Yet another Lisp markup language")
3857 (description
3858 "There are plenty of Lisp Markup Languages out there - every Lisp
3859 programmer seems to write at least one during his career - and CL-WHO (where
3860 WHO means \"with-html-output\" for want of a better acronym) is probably just
3861 as good or bad as the next one.")
3862 (license license:bsd-2))))
3863
3864 (define-public cl-who
3865 (sbcl-package->cl-source-package sbcl-cl-who))
3866
3867 (define-public ecl-cl-who
3868 (sbcl-package->ecl-package sbcl-cl-who))
3869
3870 (define-public sbcl-chipz
3871 (let ((version "0.8")
3872 (commit "75dfbc660a5a28161c57f115adf74c8a926bfc4d")
3873 (revision "1"))
3874 (package
3875 (name "sbcl-chipz")
3876 (version (git-version version revision commit))
3877 (source
3878 (origin
3879 (method git-fetch)
3880 (uri (git-reference
3881 (url "https://github.com/froydnj/chipz")
3882 (commit commit)))
3883 (file-name (git-file-name name version))
3884 (sha256
3885 (base32
3886 "0plx4rs39zbs4gjk77h4a2q11zpy75fh9v8hnxrvsf8fnakajhwg"))))
3887 (build-system asdf-build-system/sbcl)
3888 (native-inputs
3889 `(("sbcl-flexi-streams" ,sbcl-flexi-streams)))
3890 (home-page "http://method-combination.net/lisp/chipz/")
3891 (synopsis
3892 "Common Lisp library for decompressing deflate, zlib, gzip, and bzip2
3893 data")
3894 (description
3895 "DEFLATE data, defined in RFC1951, forms the core of popular
3896 compression formats such as zlib (RFC 1950) and gzip (RFC 1952). As such,
3897 Chipz also provides for decompressing data in those formats as well. BZIP2 is
3898 the format used by the popular compression tool bzip2.")
3899 ;; The author describes it as "MIT-like"
3900 (license license:expat))))
3901
3902 (define-public cl-chipz
3903 (sbcl-package->cl-source-package sbcl-chipz))
3904
3905 (define-public ecl-chipz
3906 (sbcl-package->ecl-package sbcl-chipz))
3907
3908 (define-public sbcl-drakma
3909 (package
3910 (name "sbcl-drakma")
3911 (version "2.0.7")
3912 (source
3913 (origin
3914 (method git-fetch)
3915 (uri (git-reference
3916 (url "https://github.com/edicl/drakma")
3917 (commit (string-append "v" version))))
3918 (file-name (git-file-name name version))
3919 (sha256
3920 (base32
3921 "1441idnyif9xzx3ln1p3fg36k2v9h4wasjqrzc8y52j61420qpci"))))
3922 (build-system asdf-build-system/sbcl)
3923 (inputs
3924 `(("sbcl-puri" ,sbcl-puri)
3925 ("sbcl-cl-base64" ,sbcl-cl-base64)
3926 ("sbcl-chunga" ,sbcl-chunga)
3927 ("sbcl-flexi-streams" ,sbcl-flexi-streams)
3928 ("sbcl-cl-ppcre" ,sbcl-cl-ppcre)
3929 ("sbcl-chipz" ,sbcl-chipz)
3930 ("sbcl-usocket" ,sbcl-usocket)
3931 ("sbcl-cl+ssl" ,sbcl-cl+ssl)))
3932 (native-inputs
3933 `(("sbcl-fiveam" ,sbcl-fiveam)))
3934 (home-page "https://edicl.github.io/drakma/")
3935 (synopsis "HTTP client written in Common Lisp")
3936 (description
3937 "Drakma is a full-featured HTTP client implemented in Common Lisp. It
3938 knows how to handle HTTP/1.1 chunking, persistent connections, re-usable
3939 sockets, SSL, continuable uploads, file uploads, cookies, and more.")
3940 (license license:bsd-2)))
3941
3942 (define-public cl-drakma
3943 (sbcl-package->cl-source-package sbcl-drakma))
3944
3945 (define-public ecl-drakma
3946 (sbcl-package->ecl-package sbcl-drakma))
3947
3948 (define-public sbcl-hunchentoot
3949 (package
3950 (name "sbcl-hunchentoot")
3951 (version "1.2.38")
3952 (source
3953 (origin
3954 (method git-fetch)
3955 (uri (git-reference
3956 (url "https://github.com/edicl/hunchentoot")
3957 (commit (string-append "v" version))))
3958 (file-name (git-file-name "hunchentoot" version))
3959 (sha256
3960 (base32 "1anpcad7w045m4rsjs1f3xdhjwx5cppq1h0vlb3q7dz81fi3i6yq"))))
3961 (build-system asdf-build-system/sbcl)
3962 (native-inputs
3963 `(("sbcl-cl-who" ,sbcl-cl-who)
3964 ("sbcl-drakma" ,sbcl-drakma)))
3965 (inputs
3966 `(("sbcl-chunga" ,sbcl-chunga)
3967 ("sbcl-cl-base64" ,sbcl-cl-base64)
3968 ("sbcl-cl-fad" ,sbcl-cl-fad)
3969 ("sbcl-cl-ppcre" ,sbcl-cl-ppcre)
3970 ("sbcl-flexi-streams" ,sbcl-flexi-streams)
3971 ("sbcl-cl+ssl" ,sbcl-cl+ssl)
3972 ("sbcl-md5" ,sbcl-md5)
3973 ("sbcl-rfc2388" ,sbcl-rfc2388)
3974 ("sbcl-trivial-backtrace" ,sbcl-trivial-backtrace)
3975 ("sbcl-usocket" ,sbcl-usocket)))
3976 (home-page "https://edicl.github.io/hunchentoot/")
3977 (synopsis "Web server written in Common Lisp")
3978 (description
3979 "Hunchentoot is a web server written in Common Lisp and at the same
3980 time a toolkit for building dynamic websites. As a stand-alone web server,
3981 Hunchentoot is capable of HTTP/1.1 chunking (both directions), persistent
3982 connections (keep-alive), and SSL.")
3983 (license license:bsd-2)))
3984
3985 (define-public cl-hunchentoot
3986 (sbcl-package->cl-source-package sbcl-hunchentoot))
3987
3988 (define-public ecl-hunchentoot
3989 (package
3990 (inherit (sbcl-package->ecl-package sbcl-hunchentoot))
3991 (arguments
3992 ;; Tests fail on ECL with 'Socket error in "socket": EINVAL'.
3993 '(#:tests? #f))))
3994
3995 (define-public sbcl-trivial-types
3996 (package
3997 (name "sbcl-trivial-types")
3998 (version "0.0.1")
3999 (source
4000 (origin
4001 (method git-fetch)
4002 (uri (git-reference
4003 (url "https://github.com/m2ym/trivial-types")
4004 (commit "ee869f2b7504d8aa9a74403641a5b42b16f47d88")))
4005 (file-name (git-file-name name version))
4006 (sha256
4007 (base32 "1s4cp9bdlbn8447q7w7f1wkgwrbvfzp20mgs307l5pxvdslin341"))))
4008 (build-system asdf-build-system/sbcl)
4009 (home-page "https://github.com/m2ym/trivial-types")
4010 (synopsis "Trivial type definitions for Common Lisp")
4011 (description
4012 "TRIVIAL-TYPES provides missing but important type definitions such as
4013 PROPER-LIST, ASSOCIATION-LIST, PROPERTY-LIST and TUPLE.")
4014 (license license:llgpl)))
4015
4016 (define-public cl-trivial-types
4017 (sbcl-package->cl-source-package sbcl-trivial-types))
4018
4019 (define-public ecl-trivial-types
4020 (sbcl-package->ecl-package sbcl-trivial-types))
4021
4022 (define-public sbcl-cl-annot
4023 (let ((commit "c99e69c15d935eabc671b483349a406e0da9518d")
4024 (revision "1"))
4025 (package
4026 (name "sbcl-cl-annot")
4027 (version (git-version "0.0.0" revision commit))
4028 (source
4029 (origin
4030 (method git-fetch)
4031 (uri (git-reference
4032 (url "https://github.com/m2ym/cl-annot")
4033 (commit commit)))
4034 (file-name (git-file-name name version))
4035 (sha256
4036 (base32 "1wq1gs9jjd5m6iwrv06c2d7i5dvqsfjcljgbspfbc93cg5xahk4n"))))
4037 (build-system asdf-build-system/sbcl)
4038 (inputs
4039 `(("sbcl-alexandria" ,sbcl-alexandria)))
4040 (home-page "https://github.com/m2ym/cl-annot")
4041 (synopsis "Python-like Annotation Syntax for Common Lisp.")
4042 (description
4043 "@code{cl-annot} is an general annotation library for Common Lisp.")
4044 (license license:llgpl))))
4045
4046 (define-public cl-annot
4047 (sbcl-package->cl-source-package sbcl-cl-annot))
4048
4049 (define-public ecl-cl-annot
4050 (sbcl-package->ecl-package sbcl-cl-annot))
4051
4052 (define-public sbcl-cl-syntax
4053 (package
4054 (name "sbcl-cl-syntax")
4055 (version "0.0.3")
4056 (source
4057 (origin
4058 (method git-fetch)
4059 (uri (git-reference
4060 (url "https://github.com/m2ym/cl-syntax")
4061 (commit "03f0c329bbd55b8622c37161e6278366525e2ccc")))
4062 (file-name (git-file-name "cl-syntax" version))
4063 (sha256
4064 (base32 "17ran8xp77asagl31xv8w819wafh6whwfc9p6dgx22ca537gyl4y"))))
4065 (build-system asdf-build-system/sbcl)
4066 (inputs
4067 `(("cl-annot" ,sbcl-cl-annot)
4068 ("cl-interpol" ,sbcl-cl-interpol)
4069 ("named-readtables" ,sbcl-named-readtables)
4070 ("trivial-types" ,sbcl-trivial-types)))
4071 (arguments
4072 '(#:asd-systems '("cl-syntax"
4073 "cl-syntax-annot"
4074 "cl-syntax-interpol")))
4075 (home-page "https://github.com/m2ym/cl-syntax")
4076 (synopsis "Reader Syntax Coventions for Common Lisp and SLIME")
4077 (description
4078 "CL-SYNTAX provides Reader Syntax Coventions for Common Lisp and SLIME.")
4079 (license license:llgpl)))
4080
4081 (define-public cl-syntax
4082 (sbcl-package->cl-source-package sbcl-cl-syntax))
4083
4084 (define-public ecl-cl-syntax
4085 (sbcl-package->ecl-package sbcl-cl-syntax))
4086
4087 (define-public sbcl-cl-utilities
4088 (let ((commit "dce2d2f6387091ea90357a130fa6d13a6776884b")
4089 (revision "1"))
4090 (package
4091 (name "sbcl-cl-utilities")
4092 (version (git-version "0.0.0" revision commit))
4093 (source
4094 (origin
4095 (method url-fetch)
4096 (uri
4097 (string-append
4098 "https://gitlab.common-lisp.net/cl-utilities/cl-utilities/-/"
4099 "archive/" commit "/cl-utilities-" commit ".tar.gz"))
4100 (sha256
4101 (base32 "1r46v730yf96nk2vb24qmagv9x96xvd08abqwhf02ghgydv1a7z2"))))
4102 (build-system asdf-build-system/sbcl)
4103 (arguments
4104 '(#:phases
4105 (modify-phases %standard-phases
4106 (add-after 'unpack 'fix-paths
4107 (lambda* (#:key inputs #:allow-other-keys)
4108 (substitute* "rotate-byte.lisp"
4109 (("in-package :cl-utilities)" all)
4110 "in-package :cl-utilities)\n\n#+sbcl\n(require :sb-rotate-byte)")))))))
4111 (home-page "http://common-lisp.net/project/cl-utilities")
4112 (synopsis "A collection of semi-standard utilities")
4113 (description
4114 "On Cliki.net <http://www.cliki.net/Common%20Lisp%20Utilities>, there
4115 is a collection of Common Lisp Utilities, things that everybody writes since
4116 they're not part of the official standard. There are some very useful things
4117 there; the only problems are that they aren't implemented as well as you'd
4118 like (some aren't implemented at all) and they aren't conveniently packaged
4119 and maintained. It takes quite a bit of work to carefully implement utilities
4120 for common use, commented and documented, with error checking placed
4121 everywhere some dumb user might make a mistake.")
4122 (license license:public-domain))))
4123
4124 (define-public cl-utilities
4125 (sbcl-package->cl-source-package sbcl-cl-utilities))
4126
4127 (define-public ecl-cl-utilities
4128 (sbcl-package->ecl-package sbcl-cl-utilities))
4129
4130 (define-public sbcl-map-set
4131 (let ((commit "7b4b545b68b8")
4132 (revision "1"))
4133 (package
4134 (name "sbcl-map-set")
4135 (version (git-version "0.0.0" revision commit))
4136 (source
4137 (origin
4138 (method url-fetch)
4139 (uri (string-append
4140 "https://bitbucket.org/tarballs_are_good/map-set/get/"
4141 commit ".tar.gz"))
4142 (sha256
4143 (base32 "1sx5j5qdsy5fklspfammwb16kjrhkggdavm922a9q86jm5l0b239"))))
4144 (build-system asdf-build-system/sbcl)
4145 (home-page "https://bitbucket.org/tarballs_are_good/map-set")
4146 (synopsis "Set-like data structure")
4147 (description
4148 "Implementation of a set-like data structure with constant time
4149 addition, removal, and random selection.")
4150 (license license:bsd-3))))
4151
4152 (define-public cl-map-set
4153 (sbcl-package->cl-source-package sbcl-map-set))
4154
4155 (define-public ecl-map-set
4156 (sbcl-package->ecl-package sbcl-map-set))
4157
4158 (define-public sbcl-quri
4159 (let ((commit "d7f2720568146c6674187f625f115925e6364a7f")
4160 (revision "4"))
4161 (package
4162 (name "sbcl-quri")
4163 (version (git-version "0.1.0" revision commit))
4164 (source
4165 (origin
4166 (method git-fetch)
4167 (uri (git-reference
4168 (url "https://github.com/fukamachi/quri")
4169 (commit commit)))
4170 (file-name (git-file-name name version))
4171 (sha256
4172 (base32 "0yrcvz5ksfr7x8yx741vp65il0fxxaskppq3iyk9bq895s1jn37w"))))
4173 (build-system asdf-build-system/sbcl)
4174 (arguments
4175 ;; Test system must be loaded before, otherwise tests fail with:
4176 ;; Component QURI-ASD::QURI-TEST not found, required by #<SYSTEM
4177 ;; "quri">.
4178 '(#:asd-systems '("quri-test"
4179 "quri")))
4180 (native-inputs `(("sbcl-prove" ,sbcl-prove)))
4181 (inputs `(("sbcl-babel" ,sbcl-babel)
4182 ("sbcl-split-sequence" ,sbcl-split-sequence)
4183 ("sbcl-cl-utilities" ,sbcl-cl-utilities)
4184 ("sbcl-alexandria" ,sbcl-alexandria)))
4185 (home-page "https://github.com/fukamachi/quri")
4186 (synopsis "Yet another URI library for Common Lisp")
4187 (description
4188 "QURI (pronounced \"Q-ree\") is yet another URI library for Common
4189 Lisp. It is intended to be a replacement of PURI.")
4190 (license license:bsd-3))))
4191
4192 (define-public cl-quri
4193 (sbcl-package->cl-source-package sbcl-quri))
4194
4195 (define-public ecl-quri
4196 (sbcl-package->ecl-package sbcl-quri))
4197
4198 (define-public sbcl-myway
4199 (let ((commit "286230082a11f879c18b93f17ca571c5f676bfb7")
4200 (revision "1"))
4201 (package
4202 (name "sbcl-myway")
4203 (version (git-version "0.1.0" revision commit))
4204 (source
4205 (origin
4206 (method git-fetch)
4207 (uri (git-reference
4208 (url "https://github.com/fukamachi/myway")
4209 (commit commit)))
4210 (file-name (git-file-name "myway" version))
4211 (sha256
4212 (base32 "0briia9bk3lbr0frnx39d1qg6i38dm4j6z9w3yga3d40k6df4a90"))))
4213 (build-system asdf-build-system/sbcl)
4214 (arguments
4215 ;; Tests fail with: Component MYWAY-ASD::MYWAY-TEST not found, required
4216 ;; by #<SYSTEM "myway">. Why?
4217 '(#:tests? #f))
4218 (native-inputs
4219 `(("sbcl-prove" ,sbcl-prove)))
4220 (inputs
4221 `(("sbcl-cl-ppcre" ,sbcl-cl-ppcre)
4222 ("sbcl-quri" ,sbcl-quri)
4223 ("sbcl-map-set" ,sbcl-map-set)))
4224 (home-page "https://github.com/fukamachi/myway")
4225 (synopsis "Sinatra-compatible URL routing library for Common Lisp")
4226 (description "My Way is a Sinatra-compatible URL routing library.")
4227 (license license:llgpl))))
4228
4229 (define-public cl-myway
4230 (sbcl-package->cl-source-package sbcl-myway))
4231
4232 (define-public ecl-myway
4233 (sbcl-package->ecl-package sbcl-myway))
4234
4235 (define-public sbcl-xsubseq
4236 (let ((commit "5ce430b3da5cda3a73b9cf5cee4df2843034422b")
4237 (revision "1"))
4238 (package
4239 (name "sbcl-xsubseq")
4240 (version (git-version "0.0.1" revision commit))
4241 (source
4242 (origin
4243 (method git-fetch)
4244 (uri (git-reference
4245 (url "https://github.com/fukamachi/xsubseq")
4246 (commit commit)))
4247 (file-name (git-file-name name version))
4248 (sha256
4249 (base32 "1xz79q0p2mclf3sqjiwf6izdpb6xrsr350bv4mlmdlm6rg5r99px"))))
4250 (build-system asdf-build-system/sbcl)
4251 (arguments
4252 ;; Tests fail with: Component XSUBSEQ-ASD::XSUBSEQ-TEST not found,
4253 ;; required by #<SYSTEM "xsubseq">. Why?
4254 '(#:tests? #f))
4255 (native-inputs
4256 `(("sbcl-prove" ,sbcl-prove)))
4257 (home-page "https://github.com/fukamachi/xsubseq")
4258 (synopsis "Efficient way to use \"subseq\"s in Common Lisp")
4259 (description
4260 "XSubseq provides functions to be able to handle \"subseq\"s more
4261 effieiently.")
4262 (license license:bsd-2))))
4263
4264 (define-public cl-xsubseq
4265 (sbcl-package->cl-source-package sbcl-xsubseq))
4266
4267 (define-public ecl-xsubseq
4268 (sbcl-package->ecl-package sbcl-xsubseq))
4269
4270 (define-public sbcl-smart-buffer
4271 (let ((commit "09b9a9a0b3abaa37abe9a730f5aac2643dca4e62")
4272 (revision "1"))
4273 (package
4274 (name "sbcl-smart-buffer")
4275 (version (git-version "0.0.1" revision commit))
4276 (source
4277 (origin
4278 (method git-fetch)
4279 (uri (git-reference
4280 (url "https://github.com/fukamachi/smart-buffer")
4281 (commit commit)))
4282 (file-name (git-file-name name version))
4283 (sha256
4284 (base32 "0qz1zzxx0wm5ff7gpgsq550a59p0qj594zfmm2rglj97dahj54l7"))))
4285 (build-system asdf-build-system/sbcl)
4286 (arguments
4287 ;; Tests fail with: Component SMART-BUFFER-ASD::SMART-BUFFER-TEST not
4288 ;; found, required by #<SYSTEM "smart-buffer">. Why?
4289 `(#:tests? #f))
4290 (native-inputs
4291 `(("sbcl-prove" ,sbcl-prove)))
4292 (inputs
4293 `(("sbcl-xsubseq" ,sbcl-xsubseq)
4294 ("sbcl-flexi-streams" ,sbcl-flexi-streams)))
4295 (home-page "https://github.com/fukamachi/smart-buffer")
4296 (synopsis "Smart octets buffer")
4297 (description
4298 "Smart-buffer provides an output buffer which changes the destination
4299 depending on content size.")
4300 (license license:bsd-3))))
4301
4302 (define-public cl-smart-buffer
4303 (sbcl-package->cl-source-package sbcl-smart-buffer))
4304
4305 (define-public ecl-smart-buffer
4306 (sbcl-package->ecl-package sbcl-smart-buffer))
4307
4308 (define-public sbcl-fast-http
4309 (let ((commit "502a37715dcb8544cc8528b78143a942de662c5a")
4310 (revision "2"))
4311 (package
4312 (name "sbcl-fast-http")
4313 (version (git-version "0.2.0" revision commit))
4314 (source
4315 (origin
4316 (method git-fetch)
4317 (uri (git-reference
4318 (url "https://github.com/fukamachi/fast-http")
4319 (commit commit)))
4320 (file-name (git-file-name name version))
4321 (sha256
4322 (base32 "0al2g7g219jjljsf7b23pbilpgacxy5as5gs2nqf76b5qni396mi"))))
4323 (build-system asdf-build-system/sbcl)
4324 (arguments
4325 ;; Tests fail with: Component FAST-HTTP-ASD::FAST-HTTP-TEST not found,
4326 ;; required by #<SYSTEM "fast-http">. Why?
4327 `(#:tests? #f))
4328 (native-inputs
4329 `(("sbcl-prove" ,sbcl-prove)
4330 ("cl-syntax" ,sbcl-cl-syntax)))
4331 (inputs
4332 `(("sbcl-alexandria" ,sbcl-alexandria)
4333 ("sbcl-proc-parse" ,sbcl-proc-parse)
4334 ("sbcl-xsubseq" ,sbcl-xsubseq)
4335 ("sbcl-smart-buffer" ,sbcl-smart-buffer)
4336 ("sbcl-cl-utilities" ,sbcl-cl-utilities)))
4337 (home-page "https://github.com/fukamachi/fast-http")
4338 (synopsis "HTTP request/response parser for Common Lisp")
4339 (description
4340 "@code{fast-http} is a HTTP request/response protocol parser for Common
4341 Lisp.")
4342 ;; Author specified the MIT license
4343 (license license:expat))))
4344
4345 (define-public cl-fast-http
4346 (sbcl-package->cl-source-package sbcl-fast-http))
4347
4348 (define-public ecl-fast-http
4349 (sbcl-package->ecl-package sbcl-fast-http))
4350
4351 (define-public sbcl-static-vectors
4352 (package
4353 (name "sbcl-static-vectors")
4354 (version "1.8.6")
4355 (source
4356 (origin
4357 (method git-fetch)
4358 (uri (git-reference
4359 (url "https://github.com/sionescu/static-vectors")
4360 (commit (string-append "v" version))))
4361 (file-name (git-file-name name version))
4362 (sha256
4363 (base32 "01hwxzhyjkhsd3949g70120g7msw01byf0ia0pbj319q1a3cq7j9"))))
4364 (native-inputs
4365 `(("sbcl-fiveam" ,sbcl-fiveam)))
4366 (inputs
4367 `(("sbcl-alexandria" ,sbcl-alexandria)
4368 ("sbcl-cffi" ,sbcl-cffi)))
4369 (build-system asdf-build-system/sbcl)
4370 (home-page "https://github.com/sionescu/static-vectors")
4371 (synopsis "Allocate SIMPLE-ARRAYs in static memory")
4372 (description
4373 "With @code{static-vectors}, you can create vectors allocated in static
4374 memory.")
4375 (license license:expat)))
4376
4377 (define-public cl-static-vectors
4378 (sbcl-package->cl-source-package sbcl-static-vectors))
4379
4380 (define-public ecl-static-vectors
4381 (sbcl-package->ecl-package sbcl-static-vectors))
4382
4383 (define-public sbcl-marshal
4384 (let ((commit "eff1b15f2b0af2f26f71ad6a4dd5c4beab9299ec")
4385 (revision "1"))
4386 (package
4387 (name "sbcl-marshal")
4388 (version (git-version "1.3.0" revision commit))
4389 (source
4390 (origin
4391 (method git-fetch)
4392 (uri (git-reference
4393 (url "https://github.com/wlbr/cl-marshal")
4394 (commit commit)))
4395 (file-name (git-file-name name version))
4396 (sha256
4397 (base32 "08qs6fhk38xpkkjkpcj92mxx0lgy4ygrbbzrmnivdx281syr0gwh"))))
4398 (build-system asdf-build-system/sbcl)
4399 (home-page "https://github.com/wlbr/cl-marshal")
4400 (synopsis "Simple (de)serialization of Lisp datastructures")
4401 (description
4402 "Simple and fast marshalling of Lisp datastructures. Convert any object
4403 into a string representation, put it on a stream an revive it from there.
4404 Only minimal changes required to make your CLOS objects serializable.")
4405 (license license:expat))))
4406
4407 (define-public cl-marshal
4408 (sbcl-package->cl-source-package sbcl-marshal))
4409
4410 (define-public ecl-marshal
4411 (sbcl-package->ecl-package sbcl-marshal))
4412
4413 (define-public sbcl-checkl
4414 (let ((commit "80328800d047fef9b6e32dfe6bdc98396aee3cc9")
4415 (revision "1"))
4416 (package
4417 (name "sbcl-checkl")
4418 (version (git-version "0.0.0" revision commit))
4419 (source
4420 (origin
4421 (method git-fetch)
4422 (uri (git-reference
4423 (url "https://github.com/rpav/CheckL")
4424 (commit commit)))
4425 (file-name (git-file-name name version))
4426 (sha256
4427 (base32 "0bpisihx1gay44xmyr1dmhlwh00j0zzi04rp9fy35i95l2r4xdlx"))))
4428 (build-system asdf-build-system/sbcl)
4429 (arguments
4430 ;; Error while trying to load definition for system checkl-test from
4431 ;; pathname [...]/checkl-test.asd: The function CHECKL:DEFINE-TEST-OP
4432 ;; is undefined.
4433 '(#:asd-files '("checkl.asd")
4434 #:tests? #f))
4435 (native-inputs
4436 `(("sbcl-fiveam" ,sbcl-fiveam)))
4437 (inputs
4438 `(("sbcl-marshal" ,sbcl-marshal)))
4439 (home-page "https://github.com/rpav/CheckL/")
4440 (synopsis "Dynamic testing for Common Lisp")
4441 (description
4442 "CheckL lets you write tests dynamically, it checks resulting values
4443 against the last run.")
4444 ;; The author specifies both LLGPL and "BSD", but the "BSD" license
4445 ;; isn't specified anywhere, so I don't know which kind. LLGPL is the
4446 ;; stronger of the two and so I think only listing this should suffice.
4447 (license license:llgpl))))
4448
4449 (define-public cl-checkl
4450 (sbcl-package->cl-source-package sbcl-checkl))
4451
4452 (define-public ecl-checkl
4453 (sbcl-package->ecl-package sbcl-checkl))
4454
4455 (define-public sbcl-fast-io
4456 (let ((commit "603f4903dd74fb221859da7058ae6ca3853fe64b")
4457 (revision "2"))
4458 (package
4459 (name "sbcl-fast-io")
4460 (version (git-version "1.0.0" revision commit))
4461 (source
4462 (origin
4463 (method git-fetch)
4464 (uri (git-reference
4465 (url "https://github.com/rpav/fast-io")
4466 (commit commit)))
4467 (file-name (git-file-name name version))
4468 (sha256
4469 (base32 "00agvc0xx4w715i6ach05p995zpcpghn04xc06zyci06q677vw3n"))))
4470 (build-system asdf-build-system/sbcl)
4471 (arguments
4472 ;; Error while trying to load definition for system fast-io-test from
4473 ;; pathname [...]/fast-io-test.asd: The function CHECKL:DEFINE-TEST-OP
4474 ;; is undefined.
4475 '(#:tests? #f
4476 #:asd-files '("fast-io.asd")))
4477 (native-inputs
4478 `(("sbcl-fiveam" ,sbcl-fiveam)
4479 ("sbcl-checkl" ,sbcl-checkl)))
4480 (inputs
4481 `(("sbcl-alexandria" ,sbcl-alexandria)
4482 ("sbcl-trivial-gray-streams" ,sbcl-trivial-gray-streams)
4483 ("sbcl-static-vectors" ,sbcl-static-vectors)))
4484 (home-page "https://github.com/rpav/fast-io")
4485 (synopsis "Fast octet-vector/stream I/O for Common Lisp")
4486 (description
4487 "Fast-io is about improving performance to octet-vectors and octet
4488 streams (though primarily the former, while wrapping the latter).")
4489 ;; Author specifies this as NewBSD which is an alias
4490 (license license:bsd-3))))
4491
4492 (define-public cl-fast-io
4493 (sbcl-package->cl-source-package sbcl-fast-io))
4494
4495 (define-public ecl-fast-io
4496 (sbcl-package->ecl-package sbcl-fast-io))
4497
4498 (define-public sbcl-jonathan
4499 (let ((commit "1f448b4f7ac8265e56e1c02b32ce383e65316300")
4500 (revision "1"))
4501 (package
4502 (name "sbcl-jonathan")
4503 (version (git-version "0.1.0" revision commit))
4504 (source
4505 (origin
4506 (method git-fetch)
4507 (uri (git-reference
4508 (url "https://github.com/Rudolph-Miller/jonathan")
4509 (commit commit)))
4510 (file-name (git-file-name name version))
4511 (sha256
4512 (base32 "14x4iwz3mbag5jzzzr4sb6ai0m9r4q4kyypbq32jmsk2dx1hi807"))))
4513 (build-system asdf-build-system/sbcl)
4514 (arguments
4515 ;; Tests fail with: Component JONATHAN-ASD::JONATHAN-TEST not found,
4516 ;; required by #<SYSTEM "jonathan">. Why?
4517 `(#:tests? #f))
4518 (native-inputs
4519 `(("sbcl-prove" ,sbcl-prove)))
4520 (inputs
4521 `(("sbcl-cl-syntax" ,sbcl-cl-syntax)
4522 ("sbcl-fast-io" ,sbcl-fast-io)
4523 ("sbcl-proc-parse" ,sbcl-proc-parse)
4524 ("sbcl-cl-ppcre" ,sbcl-cl-ppcre)))
4525 (home-page "https://rudolph-miller.github.io/jonathan/overview.html")
4526 (synopsis "JSON encoder and decoder")
4527 (description
4528 "High performance JSON encoder and decoder. Currently support: SBCL,
4529 CCL.")
4530 ;; Author specifies the MIT license
4531 (license license:expat))))
4532
4533 (define-public cl-jonathan
4534 (sbcl-package->cl-source-package sbcl-jonathan))
4535
4536 (define-public ecl-jonathan
4537 (sbcl-package->ecl-package sbcl-jonathan))
4538
4539 (define-public sbcl-http-body
4540 (let ((commit "dd01dc4f5842e3d29728552e5163acce8386eb73")
4541 (revision "1"))
4542 (package
4543 (name "sbcl-http-body")
4544 (version (git-version "0.1.0" revision commit))
4545 (source
4546 (origin
4547 (method git-fetch)
4548 (uri (git-reference
4549 (url "https://github.com/fukamachi/http-body")
4550 (commit commit)))
4551 (file-name (git-file-name name version))
4552 (sha256
4553 (base32 "1jd06snjvxcprhapgfq8sx0y5lrldkvhf206ix6d5a23dd6zcmr0"))))
4554 (build-system asdf-build-system/sbcl)
4555 (arguments
4556 ;; Tests fail with: Component HTTP-BODY-ASD::HTTP-BODY-TEST not
4557 ;; found, required by #<SYSTEM "http-body">. Why?
4558 `(#:tests? #f))
4559 (native-inputs
4560 `(("sbcl-prove" ,sbcl-prove)))
4561 (inputs
4562 `(("sbcl-fast-http" ,sbcl-fast-http)
4563 ("sbcl-jonathan" ,sbcl-jonathan)
4564 ("sbcl-quri" ,sbcl-quri)))
4565 (home-page "https://github.com/fukamachi/http-body")
4566 (synopsis "HTTP POST data parser")
4567 (description
4568 "HTTP-Body parses HTTP POST data and returns POST parameters. It
4569 supports application/x-www-form-urlencoded, application/json, and
4570 multipart/form-data.")
4571 (license license:bsd-2))))
4572
4573 (define-public cl-http-body
4574 (sbcl-package->cl-source-package sbcl-http-body))
4575
4576 (define-public ecl-http-body
4577 (sbcl-package->ecl-package sbcl-http-body))
4578
4579 (define-public sbcl-circular-streams
4580 (let ((commit "e770bade1919c5e8533dd2078c93c3d3bbeb38df")
4581 (revision "1"))
4582 (package
4583 (name "sbcl-circular-streams")
4584 (version (git-version "0.1.0" revision commit))
4585 (source
4586 (origin
4587 (method git-fetch)
4588 (uri (git-reference
4589 (url "https://github.com/fukamachi/circular-streams")
4590 (commit commit)))
4591 (file-name (git-file-name name version))
4592 (sha256
4593 (base32 "1wpw6d5cciyqcf92f7mvihak52pd5s47kk4qq6f0r2z2as68p5rs"))))
4594 (build-system asdf-build-system/sbcl)
4595 (arguments
4596 ;; The tests depend on cl-test-more which is now prove. Prove
4597 ;; tests aren't working for some reason.
4598 `(#:tests? #f))
4599 (inputs
4600 `(("sbcl-fast-io" ,sbcl-fast-io)
4601 ("sbcl-trivial-gray-streams" ,sbcl-trivial-gray-streams)))
4602 (home-page "https://github.com/fukamachi/circular-streams")
4603 (synopsis "Circularly readable streams for Common Lisp")
4604 (description
4605 "Circular-Streams allows you to read streams circularly by wrapping real
4606 streams. Once you reach end-of-file of a stream, it's file position will be
4607 reset to 0 and you're able to read it again.")
4608 (license license:llgpl))))
4609
4610 (define-public cl-circular-streams
4611 (sbcl-package->cl-source-package sbcl-circular-streams))
4612
4613 (define-public ecl-circular-streams
4614 (sbcl-package->ecl-package sbcl-circular-streams))
4615
4616 (define-public sbcl-lack
4617 (let ((commit "abff8efeb0c3a848e6bb0022f2b8b7fa3a1bc88b")
4618 (revision "1"))
4619 (package
4620 (name "sbcl-lack")
4621 (version (git-version "0.1.0" revision commit))
4622 (source
4623 (origin
4624 (method git-fetch)
4625 (uri (git-reference
4626 (url "https://github.com/fukamachi/lack")
4627 (commit commit)))
4628 (file-name (git-file-name "lack" version))
4629 (sha256
4630 (base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85"))))
4631 (build-system asdf-build-system/sbcl)
4632 (native-inputs
4633 `(("prove" ,sbcl-prove)))
4634 (inputs
4635 `(("circular-streams" ,sbcl-circular-streams)
4636 ("http-body" ,sbcl-http-body)
4637 ("ironclad" ,sbcl-ironclad)
4638 ("local-time" ,sbcl-local-time)
4639 ("quri" ,sbcl-quri)
4640 ("trivial-mimes" ,sbcl-trivial-mimes)))
4641 (arguments
4642 '(#:asd-systems '("lack"
4643 "lack-request"
4644 "lack-response"
4645 "lack-component"
4646 "lack-util"
4647 "lack-middleware-backtrace"
4648 "lack-middleware-static")
4649 #:test-asd-file "t-lack.asd"
4650 ;; XXX: Component :CLACK not found
4651 #:tests? #f))
4652 (home-page "https://github.com/fukamachi/lack")
4653 (synopsis "Lack, the core of Clack")
4654 (description
4655 "Lack is a Common Lisp library which allows web applications to be
4656 constructed of modular components. It was originally a part of Clack, however
4657 it's going to be rewritten as an individual project since Clack v2 with
4658 performance and simplicity in mind.")
4659 (license license:llgpl))))
4660
4661 (define-public cl-lack
4662 (sbcl-package->cl-source-package sbcl-lack))
4663
4664 (define-public ecl-lack
4665 (sbcl-package->ecl-package sbcl-lack))
4666
4667 (define-public sbcl-local-time
4668 (let ((commit "a177eb911c0e8116e2bfceb79049265a884b701b")
4669 (revision "2"))
4670 (package
4671 (name "sbcl-local-time")
4672 (version (git-version "1.0.6" revision commit))
4673 (source
4674 (origin
4675 (method git-fetch)
4676 (uri (git-reference
4677 (url "https://github.com/dlowe-net/local-time")
4678 (commit commit)))
4679 (file-name (git-file-name name version))
4680 (sha256
4681 (base32 "0wld28xx20k0ysgg6akic5lg4vkjd0iyhv86m388xfrv8xh87wii"))))
4682 (build-system asdf-build-system/sbcl)
4683 (native-inputs
4684 `(("hu.dwim.stefil" ,sbcl-hu.dwim.stefil)))
4685 (home-page "https://common-lisp.net/project/local-time/")
4686 (synopsis "Time manipulation library for Common Lisp")
4687 (description
4688 "The LOCAL-TIME library is a Common Lisp library for the manipulation of
4689 dates and times. It is based almost entirely upon Erik Naggum's paper \"The
4690 Long Painful History of Time\".")
4691 (license license:expat))))
4692
4693 (define-public cl-local-time
4694 (sbcl-package->cl-source-package sbcl-local-time))
4695
4696 (define-public ecl-local-time
4697 (sbcl-package->ecl-package sbcl-local-time))
4698
4699 (define-public sbcl-trivial-mimes
4700 (let ((commit "a741fc2f567a4f86b853fd4677d75e62c03e51d9")
4701 (revision "2"))
4702 (package
4703 (name "sbcl-trivial-mimes")
4704 (version (git-version "1.1.0" revision commit))
4705 (source
4706 (origin
4707 (method git-fetch)
4708 (uri (git-reference
4709 (url "https://github.com/Shinmera/trivial-mimes")
4710 (commit commit)))
4711 (file-name (git-file-name name version))
4712 (sha256
4713 (base32 "00kcm17q5plpzdj1qwg83ldhxksilgpcdkf3m9azxcdr968xs9di"))))
4714 (build-system asdf-build-system/sbcl)
4715 (native-inputs
4716 `(("stefil" ,sbcl-hu.dwim.stefil)))
4717 (inputs
4718 `(("sbcl-cl-fad" ,sbcl-cl-fad)))
4719 (home-page "https://shinmera.github.io/trivial-mimes/")
4720 (synopsis "Tiny Common Lisp library to detect mime types in files")
4721 (description
4722 "This is a teensy library that provides some functions to determine the
4723 mime-type of a file.")
4724 (license license:zlib))))
4725
4726 (define-public cl-trivial-mimes
4727 (sbcl-package->cl-source-package sbcl-trivial-mimes))
4728
4729 (define-public ecl-trivial-mimes
4730 (sbcl-package->ecl-package sbcl-trivial-mimes))
4731
4732 (define-public sbcl-ningle
4733 (let ((commit "50bd4f09b5a03a7249bd4d78265d6451563b25ad")
4734 (revision "1"))
4735 (package
4736 (name "sbcl-ningle")
4737 (version (git-version "0.3.0" revision commit))
4738 (source
4739 (origin
4740 (method git-fetch)
4741 (uri (git-reference
4742 (url "https://github.com/fukamachi/ningle")
4743 (commit commit)))
4744 (file-name (git-file-name name version))
4745 (sha256
4746 (base32 "1bsl8cnxhacb8p92z9n89vhk1ikmij5zavk0m2zvmj7iqm79jzgw"))))
4747 (build-system asdf-build-system/sbcl)
4748 (arguments
4749 ;; TODO: pull in clack-test
4750 '(#:tests? #f
4751 #:phases
4752 (modify-phases %standard-phases
4753 (delete 'cleanup-files)
4754 (delete 'cleanup)
4755 (add-before 'cleanup 'combine-fasls
4756 (lambda* (#:key outputs #:allow-other-keys)
4757 (let* ((out (assoc-ref outputs "out"))
4758 (lib (string-append out "/lib/sbcl"))
4759 (ningle-path (string-append lib "/ningle"))
4760 (fasl-files (find-files out "\\.fasl$")))
4761 (mkdir-p ningle-path)
4762 (let ((fasl-path (lambda (name)
4763 (string-append ningle-path
4764 "/"
4765 (basename name)
4766 "--system.fasl"))))
4767 (for-each (lambda (file)
4768 (rename-file file
4769 (fasl-path
4770 (basename file ".fasl"))))
4771 fasl-files))
4772 fasl-files)
4773 #t)))))
4774 (native-inputs
4775 `(("sbcl-prove" ,sbcl-prove)))
4776 (inputs
4777 `(("sbcl-cl-syntax" ,sbcl-cl-syntax)
4778 ("sbcl-myway" ,sbcl-myway)
4779 ("sbcl-lack" ,sbcl-lack)
4780 ("sbcl-alexandria" ,sbcl-alexandria)
4781 ("sbcl-babel" ,sbcl-babel)))
4782 (home-page "https://8arrow.org/ningle/")
4783 (synopsis "Super micro framework for Common Lisp")
4784 (description
4785 "Ningle is a lightweight web application framework for Common Lisp.")
4786 (license license:llgpl))))
4787
4788 (define-public cl-ningle
4789 (sbcl-package->cl-source-package sbcl-ningle))
4790
4791 (define-public ecl-ningle
4792 (sbcl-package->ecl-package sbcl-ningle))
4793
4794 (define-public sbcl-cl-fastcgi
4795 (let ((commit "de8b49b26de9863996ec18db28af8ab7e8ac4e20")
4796 (revision "2"))
4797 (package
4798 (name "sbcl-cl-fastcgi")
4799 (version (git-version "0.2" revision commit))
4800 (source
4801 (origin
4802 (method git-fetch)
4803 (uri (git-reference
4804 (url "https://github.com/KDr2/cl-fastcgi/")
4805 (commit commit)))
4806 (file-name (git-file-name name version))
4807 (sha256
4808 (base32 "0xgmhx766q4nmrvn5z7ag3ikpr9phlh8ypi8b14azshq9lqbq0m7"))))
4809 (build-system asdf-build-system/sbcl)
4810 (inputs
4811 `(("usocket" ,sbcl-usocket)
4812 ("cffi" ,sbcl-cffi)
4813 ("fcgi" ,fcgi)))
4814 (arguments
4815 `(#:phases
4816 (modify-phases %standard-phases
4817 (add-after 'unpack 'fix-paths
4818 (lambda* (#:key inputs #:allow-other-keys)
4819 (substitute* "cl-fastcgi.lisp"
4820 (("\"libfcgi.so\"")
4821 (string-append
4822 "\""
4823 (assoc-ref inputs "fcgi") "/lib/libfcgi.so\""))))))))
4824 (home-page "https://kdr2.com/project/cl-fastcgi.html")
4825 (synopsis "FastCGI wrapper for Common Lisp")
4826 (description
4827 "CL-FastCGI is a generic version of SB-FastCGI, targeting to run on
4828 mostly Common Lisp implementation.")
4829 (license license:bsd-2))))
4830
4831 (define-public cl-fastcgi
4832 (sbcl-package->cl-source-package sbcl-cl-fastcgi))
4833
4834 (define-public ecl-cl-fastcgi
4835 (sbcl-package->ecl-package sbcl-cl-fastcgi))
4836
4837 (define-public sbcl-clack
4838 (let ((commit "e3e032843bb1220ab96263c411aa7f2feb4746e0")
4839 (revision "1"))
4840 (package
4841 (name "sbcl-clack")
4842 (version (git-version "2.0.0" revision commit))
4843 (source
4844 (origin
4845 (method git-fetch)
4846 (uri (git-reference
4847 (url "https://github.com/fukamachi/clack")
4848 (commit commit)))
4849 (file-name (git-file-name name version))
4850 (sha256
4851 (base32 "1ymzs6qyrwhlj6cgqsnpyn6g5cbp7a3s1vgxwna20y2q7y4iacy0"))))
4852 (build-system asdf-build-system/sbcl)
4853 (inputs
4854 `(("alexandria" ,sbcl-alexandria)
4855 ("bordeaux-threads" ,sbcl-bordeaux-threads)
4856 ("cl-fastcgi" ,sbcl-cl-fastcgi)
4857 ("flexi-streams" ,sbcl-flexi-streams)
4858 ("hunchentoot" ,sbcl-hunchentoot)
4859 ("lack" ,sbcl-lack)
4860 ("split-sequence" ,sbcl-split-sequence)
4861 ("usocket" ,sbcl-usocket)
4862 ("quri" ,sbcl-quri)))
4863 (arguments
4864 '(#:asd-systems '("clack"
4865 "clack-handler-fcgi"
4866 "clack-socket"
4867 "clack-handler-hunchentoot")))
4868 (home-page "https://github.com/fukamachi/clack")
4869 (synopsis "Web Application Environment for Common Lisp")
4870 (description
4871 "Clack is a web application environment for Common Lisp inspired by
4872 Python's WSGI and Ruby's Rack.")
4873 (license license:llgpl))))
4874
4875 (define-public cl-clack
4876 (sbcl-package->cl-source-package sbcl-clack))
4877
4878 (define-public ecl-clack
4879 (sbcl-package->ecl-package sbcl-clack))
4880
4881 (define-public sbcl-cl-log
4882 (let ((commit "8f4b766d51e02245c310526cf1e4534ce634f837")
4883 (revision "1"))
4884 (package
4885 (name "sbcl-cl-log")
4886 (version "1.0.1")
4887 (source
4888 (origin
4889 (method git-fetch)
4890 (uri (git-reference
4891 (url "https://github.com/nicklevine/cl-log")
4892 (commit commit)))
4893 (sha256
4894 (base32 "1r3z9swy1b59swvaa5b97is9ysrfmjvjjhhw56p7p5hqg93b92ak"))
4895 (file-name (git-file-name "cl-log" version))))
4896 (build-system asdf-build-system/sbcl)
4897 (synopsis "Common Lisp general purpose logging utility")
4898 (description "CL-LOG is a general purpose logging utility, loosely modelled
4899 in some respects after Gary King's Log5. Its features include: logging to
4900 several destinations at once, via \"messengers\", each messenger is tailored to
4901 accept some log messages and reject others, and this tailoring can be changed
4902 on-the-fly, very rapid processing of messages which are rejected by all
4903 messengers, fully independent use of the utility by several different
4904 sub-systems in an application, support for messengers which cl:format text to a
4905 stream, support for messengers which do not invoke cl:format, timestamps in
4906 theory accurate to internal-time-units-per-second.")
4907 (home-page "https://github.com/nicklevine/cl-log")
4908 (license license:expat))))
4909
4910 (define-public cl-log
4911 (sbcl-package->cl-source-package sbcl-cl-log))
4912
4913 (define-public ecl-cl-log
4914 (sbcl-package->ecl-package sbcl-cl-log))
4915
4916 (define-public sbcl-log4cl
4917 (let ((commit "8c48d6f41d3a1475d0a91eed0638b9eecc398e35")
4918 (revision "1"))
4919 (package
4920 (name "sbcl-log4cl")
4921 (version (git-version "1.1.3" revision commit))
4922 (source
4923 (origin
4924 (method git-fetch)
4925 (uri (git-reference
4926 (url "https://github.com/sharplispers/log4cl")
4927 (commit commit)))
4928 (file-name (git-file-name "log4cl" version))
4929 (sha256
4930 (base32 "0166d9aip366pbpdk5gsi2f6xad6q61lssxgbrypa8zslwjn8736"))))
4931 (build-system asdf-build-system/sbcl)
4932 (native-inputs
4933 `(("stefil" ,sbcl-stefil)))
4934 (inputs
4935 `(("bordeaux-threads" ,sbcl-bordeaux-threads)))
4936 (home-page "https://github.com/7max/log4cl")
4937 (synopsis "Common Lisp logging framework, modeled after Log4J")
4938 (description
4939 "This is a Common Lisp logging framework that can log at various levels
4940 and mix text with expressions.")
4941 (license license:asl2.0))))
4942
4943 (define-public cl-log4cl
4944 (sbcl-package->cl-source-package sbcl-log4cl))
4945
4946 (define-public ecl-log4cl
4947 (sbcl-package->ecl-package sbcl-log4cl))
4948
4949 (define-public sbcl-printv
4950 (let ((commit "646d31978dbbb460fffb160fd65bb2be9a5a434e")
4951 (revision "1"))
4952 (package
4953 (name "sbcl-printv")
4954 (version (git-version "0.1.0" revision commit))
4955 (source
4956 (origin
4957 (method git-fetch)
4958 (uri (git-reference
4959 (url "https://github.com/danlentz/printv")
4960 (commit commit)))
4961 (file-name (git-file-name "printv" version))
4962 (sha256
4963 (base32 "08jvy82abm7qi3wrxh6gvmwg9gy0zzhg4cfqajdwrggbah8mj5a6"))))
4964 (build-system asdf-build-system/sbcl)
4965 (home-page "https://github.com/danlentz/printv")
4966 (synopsis "Common Lisp tracing and debug-logging macro")
4967 (description
4968 "@code{PRINTV} is a \"batteries-included\" tracing and debug-logging
4969 macro for Common Lisp.")
4970 (license license:asl2.0))))
4971
4972 (define-public ecl-printv
4973 (sbcl-package->ecl-package sbcl-printv))
4974
4975 (define-public cl-printv
4976 (sbcl-package->cl-source-package sbcl-printv))
4977
4978 (define-public sbcl-verbose
4979 (let ((commit "c5b7ecd465be61b35af17ef57564697b88397174")
4980 (revision "1"))
4981 (package
4982 (name "sbcl-verbose")
4983 (version (git-version "2.0.0" revision commit))
4984 (source
4985 (origin
4986 (method git-fetch)
4987 (uri (git-reference
4988 (url "https://github.com/Shinmera/verbose/")
4989 (commit commit)))
4990 (file-name (git-file-name "verbose" version))
4991 (sha256
4992 (base32 "0r51ydj5v7afi2jrlscbhxprv13d9vzg5316g1yzwaxc1kzsdsw6"))))
4993 (build-system asdf-build-system/sbcl)
4994 (inputs
4995 `(("bordeaux-threads" ,sbcl-bordeaux-threads)
4996 ("dissect" ,sbcl-dissect)
4997 ("documentation-utils" ,sbcl-documentation-utils)
4998 ("local-time" ,sbcl-local-time)
4999 ("piping" ,sbcl-piping)))
5000 (home-page "https://shinmera.github.io/verbose/")
5001 (synopsis "Logging framework using the piping library")
5002 (description
5003 "This is a Common Lisp library providing logging faciltiy similar to
5004 @code{CL-LOG} and @code{LOG4CL}.")
5005 (license license:zlib))))
5006
5007 (define-public ecl-verbose
5008 (sbcl-package->ecl-package sbcl-verbose))
5009
5010 (define-public cl-verbose
5011 (sbcl-package->cl-source-package sbcl-verbose))
5012
5013 (define-public sbcl-find-port
5014 (let ((commit "00c96a25af93a0f8681d34ec548861f2d7485478")
5015 (revision "1"))
5016 (package
5017 (name "sbcl-find-port")
5018 (build-system asdf-build-system/sbcl)
5019 (version "0.1")
5020 (home-page "https://github.com/eudoxia0/find-port")
5021 (source
5022 (origin
5023 (method git-fetch)
5024 (uri (git-reference
5025 (url home-page)
5026 (commit commit)))
5027 (file-name (git-file-name name version))
5028 (sha256
5029 (base32
5030 "0d6dzbb45jh0rx90wgs6v020k2xa87mvzas3mvfzvivjvqqlpryq"))))
5031 (native-inputs
5032 `(("fiveam" ,sbcl-fiveam)))
5033 (inputs
5034 `(("sbcl-usocket" ,sbcl-usocket)))
5035 (synopsis "Find open ports programmatically in Common Lisp")
5036 (description "This is a small Common Lisp library that finds an open
5037 port within a range.")
5038 (license license:expat))))
5039
5040 (define-public cl-find-port
5041 (sbcl-package->cl-source-package sbcl-find-port))
5042
5043 (define-public ecl-find-port
5044 (sbcl-package->ecl-package sbcl-find-port))
5045
5046 (define-public sbcl-clunit
5047 (let ((commit "6f6d72873f0e1207f037470105969384f8380628")
5048 (revision "1"))
5049 (package
5050 (name "sbcl-clunit")
5051 (version (git-version "0.2.3" revision commit))
5052 (source
5053 (origin
5054 (method git-fetch)
5055 (uri (git-reference
5056 (url "https://github.com/tgutu/clunit")
5057 (commit commit)))
5058 (file-name (git-file-name name version))
5059 (sha256
5060 (base32
5061 "1idf2xnqzlhi8rbrqmzpmb3i1l6pbdzhhajkmhwbp6qjkmxa4h85"))))
5062 (build-system asdf-build-system/sbcl)
5063 (synopsis "CLUnit is a Common Lisp unit testing framework")
5064 (description
5065 "CLUnit is a Common Lisp unit testing framework. It is designed
5066 to be easy to use so that you can quickly start testing. CLUnit
5067 provides a rich set of features aimed at improving your unit testing
5068 experience.")
5069 (home-page "https://tgutu.github.io/clunit/")
5070 ;; MIT License
5071 (license license:expat))))
5072
5073 (define-public cl-clunit
5074 (sbcl-package->cl-source-package sbcl-clunit))
5075
5076 (define-public ecl-clunit
5077 (sbcl-package->ecl-package sbcl-clunit))
5078
5079 (define-public sbcl-py4cl
5080 (let ((commit "4c8a2b0814fd311f978964f825ce012290f60136")
5081 (revision "1"))
5082 (package
5083 (name "sbcl-py4cl")
5084 (version (git-version "0.0.0" revision commit))
5085 (source
5086 (origin
5087 (method git-fetch)
5088 (uri (git-reference
5089 (url "https://github.com/bendudson/py4cl")
5090 (commit commit)))
5091 (file-name (git-file-name name version))
5092 (sha256
5093 (base32
5094 "15mk7qdqjkj56gdnbyrdyz6r7m1h26ldvn6ch96pmvg5vmr1m45r"))
5095 (modules '((guix build utils)))))
5096 (build-system asdf-build-system/sbcl)
5097 (native-inputs
5098 `(("sbcl-clunit" ,sbcl-clunit)))
5099 (inputs
5100 `(("sbcl-trivial-garbage" ,sbcl-trivial-garbage)))
5101 (propagated-inputs
5102 ;; This package doesn't do anything without python available
5103 `(("python" ,python)
5104 ;; For multi-dimensional array support
5105 ("python-numpy" ,python-numpy)))
5106 (arguments
5107 '(#:phases
5108 (modify-phases %standard-phases
5109 (add-after 'unpack 'replace-*base-directory*-var
5110 (lambda* (#:key outputs #:allow-other-keys)
5111 ;; In the ASD, the author makes an attempt to
5112 ;; programatically determine the location of the
5113 ;; source-code so lisp can call into "py4cl.py". We can
5114 ;; hard-code this since we know where this file will
5115 ;; reside.
5116 (substitute* "src/callpython.lisp"
5117 (("py4cl/config:\\*base-directory\\*")
5118 (string-append
5119 "\""
5120 (assoc-ref outputs "out")
5121 "/share/common-lisp/sbcl-source/py4cl/"
5122 "\""))))))))
5123 (synopsis "Call python from Common Lisp")
5124 (description
5125 "Py4CL is a bridge between Common Lisp and Python, which enables Common
5126 Lisp to interact with Python code. It uses streams to communicate with a
5127 separate python process, the approach taken by cl4py. This is different to
5128 the CFFI approach used by burgled-batteries, but has the same goal.")
5129 (home-page "https://github.com/bendudson/py4cl")
5130 ;; MIT License
5131 (license license:expat))))
5132
5133 (define-public cl-py4cl
5134 (sbcl-package->cl-source-package sbcl-py4cl))
5135
5136 (define-public ecl-py4cl
5137 (sbcl-package->ecl-package sbcl-py4cl))
5138
5139 (define-public sbcl-parse-declarations
5140 (let ((commit "549aebbfb9403a7fe948654126b9c814f443f4f2")
5141 (revision "1"))
5142 (package
5143 (name "sbcl-parse-declarations")
5144 (version (git-version "1.0.0" revision commit))
5145 (source
5146 (origin
5147 (method git-fetch)
5148 (uri (git-reference
5149 (url (string-append
5150 "https://gitlab.common-lisp.net/parse-declarations/"
5151 "parse-declarations.git"))
5152 (commit commit)))
5153 (file-name (git-file-name name version))
5154 (sha256
5155 (base32 "03g5qks4c59nmxa48pbslxkfh77h8hn8566jddp6m9pl15dzzpxd"))))
5156 (build-system asdf-build-system/sbcl)
5157 (arguments
5158 `(#:asd-systems '("parse-declarations-1.0")))
5159 (home-page "https://common-lisp.net/project/parse-declarations/")
5160 (synopsis "Parse, filter, and build declarations")
5161 (description
5162 "Parse-Declarations is a Common Lisp library to help writing
5163 macros which establish bindings. To be semantically correct, such
5164 macros must take user declarations into account, as these may affect
5165 the bindings they establish. Yet the ANSI standard of Common Lisp does
5166 not provide any operators to work with declarations in a convenient,
5167 high-level way. This library provides such operators.")
5168 ;; MIT License
5169 (license license:expat))))
5170
5171 (define-public cl-parse-declarations
5172 (sbcl-package->cl-source-package sbcl-parse-declarations))
5173
5174 (define-public ecl-parse-declarations
5175 (sbcl-package->ecl-package sbcl-parse-declarations))
5176
5177 (define-public sbcl-cl-quickcheck
5178 (let ((commit "807b2792a30c883a2fbecea8e7db355b50ba662f")
5179 (revision "1"))
5180 (package
5181 (name "sbcl-cl-quickcheck")
5182 (version (git-version "0.0.4" revision commit))
5183 (source
5184 (origin
5185 (method git-fetch)
5186 (uri (git-reference
5187 (url "https://github.com/mcandre/cl-quickcheck")
5188 (commit commit)))
5189 (file-name (git-file-name name version))
5190 (sha256
5191 (base32
5192 "165lhypq5xkcys6hvzb3jq7ywnmqvzaflda29qk2cbs3ggas4767"))))
5193 (build-system asdf-build-system/sbcl)
5194 (synopsis
5195 "Common Lisp port of the QuickCheck unit test framework")
5196 (description
5197 "Common Lisp port of the QuickCheck unit test framework")
5198 (home-page "https://github.com/mcandre/cl-quickcheck")
5199 ;; MIT
5200 (license license:expat))))
5201
5202 (define-public cl-quickcheck
5203 (sbcl-package->cl-source-package sbcl-cl-quickcheck))
5204
5205 (define-public ecl-cl-quickcheck
5206 (sbcl-package->ecl-package sbcl-cl-quickcheck))
5207
5208 (define-public sbcl-burgled-batteries3
5209 (let ((commit "f65f454d13bb6c40e17e9ec62e41eb5069e09760")
5210 (revision "2"))
5211 (package
5212 (name "sbcl-burgled-batteries3")
5213 (version (git-version "0.0.0" revision commit))
5214 (source
5215 (origin
5216 (method git-fetch)
5217 (uri (git-reference
5218 (url "https://github.com/snmsts/burgled-batteries3")
5219 (commit commit)))
5220 (file-name (git-file-name name version))
5221 (sha256
5222 (base32
5223 "1nzn7jawrfajyzwfnzrg2cmn9xxadcqh4szbpg0jggkhdkdzz4wa"))))
5224 (build-system asdf-build-system/sbcl)
5225 (arguments
5226 `(#:tests? #f
5227 #:modules (((guix build python-build-system) #:select (python-version))
5228 ,@%asdf-build-system-modules)
5229 #:imported-modules ((guix build python-build-system)
5230 ,@%asdf-build-system-modules)
5231 #:phases
5232 (modify-phases (@ (guix build asdf-build-system) %standard-phases)
5233 (add-after 'unpack 'set-*cpython-include-dir*-var
5234 (lambda* (#:key inputs #:allow-other-keys)
5235 (let ((python (assoc-ref inputs "python")))
5236 (setenv "BB_PYTHON3_INCLUDE_DIR"
5237 (string-append python "/include/python"
5238 (python-version python)))
5239 (setenv "BB_PYTHON3_DYLIB"
5240 (string-append python "/lib/libpython3.so"))
5241 #t)))
5242 (add-after 'unpack 'adjust-for-python-3.8
5243 (lambda _
5244 ;; This method is no longer part of the public API.
5245 (substitute* "ffi-interface.lisp"
5246 ((".*PyEval_ReInitThreads.*")
5247 ""))
5248 #t)))))
5249 (native-inputs
5250 `(("sbcl-cl-fad" ,sbcl-cl-fad)
5251 ("sbcl-lift" ,sbcl-lift)
5252 ("sbcl-cl-quickcheck" ,sbcl-cl-quickcheck)))
5253 (inputs
5254 `(("python" ,python)
5255 ("sbcl-cffi" ,sbcl-cffi)
5256 ("sbcl-alexandria" , sbcl-alexandria)
5257 ("sbcl-parse-declarations-1.0" ,sbcl-parse-declarations)
5258 ("sbcl-trivial-garbage" ,sbcl-trivial-garbage)))
5259 (synopsis "Bridge between Python and Lisp (FFI bindings, etc.)")
5260 (description
5261 "This package provides a shim between Python3 (specifically, the
5262 CPython implementation of Python) and Common Lisp.")
5263 (home-page "https://github.com/snmsts/burgled-batteries3")
5264 (license license:expat))))
5265
5266 (define-public cl-burgled-batteries3
5267 (sbcl-package->cl-source-package sbcl-burgled-batteries3))
5268
5269 (define-public ecl-burgled-batteries3
5270 (sbcl-package->ecl-package sbcl-burgled-batteries3))
5271
5272 (define-public sbcl-metabang-bind
5273 (let ((commit "c93b7f7e1c18c954c2283efd6a7fdab36746ab5e")
5274 (revision "1"))
5275 (package
5276 (name "sbcl-metabang-bind")
5277 (version (git-version "0.8.0" revision commit))
5278 (source
5279 (origin
5280 (method git-fetch)
5281 (uri (git-reference
5282 (url "https://github.com/gwkkwg/metabang-bind")
5283 (commit commit)))
5284 (file-name (git-file-name name version))
5285 (sha256
5286 (base32
5287 "0hd0kr91795v77akpbcyqiss9p0p7ypa9dznrllincnmgvsxlmf0"))))
5288 (build-system asdf-build-system/sbcl)
5289 (native-inputs
5290 `(("sbcl-lift" ,sbcl-lift)))
5291 (synopsis "Macro that generalizes @code{multiple-value-bind} etc.")
5292 (description
5293 "Bind extends the idea of of let and destructing to provide a uniform
5294 syntax for all your accessor needs. It combines @code{let},
5295 @code{destructuring-bind}, @code{with-slots}, @code{with-accessors}, structure
5296 editing, property or association-lists, and @code{multiple-value-bind} and a
5297 whole lot more into a single form.")
5298 (home-page "https://common-lisp.net/project/metabang-bind/")
5299 ;; MIT License
5300 (license license:expat))))
5301
5302 (define-public cl-metabang-bind
5303 (sbcl-package->cl-source-package sbcl-metabang-bind))
5304
5305 (define-public ecl-metabang-bind
5306 (sbcl-package->ecl-package sbcl-metabang-bind))
5307
5308 (define-public sbcl-fare-utils
5309 (let ((commit "66e9c6f1499140bc00ccc22febf2aa528cbb5724")
5310 (revision "1"))
5311 (package
5312 (name "sbcl-fare-utils")
5313 (version (git-version "1.0.0.5" revision commit))
5314 (source
5315 (origin
5316 (method git-fetch)
5317 (uri
5318 (git-reference
5319 (url
5320 "https://gitlab.common-lisp.net/frideau/fare-utils.git")
5321 (commit commit)))
5322 (file-name (git-file-name name version))
5323 (sha256
5324 (base32
5325 "01wsr1aap3jdzhn4hrqjbhsjx6qci9dbd3gh4gayv1p49rbg8aqr"))))
5326 (build-system asdf-build-system/sbcl)
5327 (arguments
5328 `(#:test-asd-file "test/fare-utils-test.asd"))
5329 (native-inputs
5330 `(("sbcl-hu.dwim.stefil" ,sbcl-hu.dwim.stefil)))
5331 (synopsis "Collection of utilities and data structures")
5332 (description
5333 "fare-utils is a small collection of utilities. It contains a lot of
5334 basic everyday functions and macros.")
5335 (home-page "https://gitlab.common-lisp.net/frideau/fare-utils")
5336 ;; MIT License
5337 (license license:expat))))
5338
5339 (define-public cl-fare-utils
5340 (sbcl-package->cl-source-package sbcl-fare-utils))
5341
5342 (define-public ecl-fare-utils
5343 (sbcl-package->ecl-package sbcl-fare-utils))
5344
5345 (define-public sbcl-trivial-utf-8
5346 (let ((commit "4d427cfbb1c452436a0efb71c3205c9da67f718f")
5347 (revision "1"))
5348 (package
5349 (name "sbcl-trivial-utf-8")
5350 (version (git-version "0.0.0" revision commit))
5351 (source
5352 (origin
5353 (method git-fetch)
5354 (uri
5355 (git-reference
5356 (url (string-append "https://gitlab.common-lisp.net/"
5357 "trivial-utf-8/trivial-utf-8.git"))
5358 (commit commit)))
5359 (file-name (git-file-name name version))
5360 (sha256
5361 (base32
5362 "1jz27gz8gvqdmvp3k9bxschs6d5b3qgk94qp2bj6nv1d0jc3m1l1"))))
5363 (arguments
5364 ;; Guix incorrectly assumes the "8" is part of the version
5365 ;; number and lobs it off.
5366 `(#:asd-systems '("trivial-utf-8")))
5367 (build-system asdf-build-system/sbcl)
5368 (synopsis "UTF-8 input/output library")
5369 (description
5370 "The Babel library solves a similar problem while understanding more
5371 encodings. Trivial UTF-8 was written before Babel existed, but for new
5372 projects you might be better off going with Babel. The one plus that Trivial
5373 UTF-8 has is that it doesn't depend on any other libraries.")
5374 (home-page "https://common-lisp.net/project/trivial-utf-8/")
5375 (license license:bsd-3))))
5376
5377 (define-public cl-trivial-utf-8
5378 (sbcl-package->cl-source-package sbcl-trivial-utf-8))
5379
5380 (define-public ecl-trivial-utf-8
5381 (sbcl-package->ecl-package sbcl-trivial-utf-8))
5382
5383 (define-public sbcl-idna
5384 (package
5385 (name "sbcl-idna")
5386 (build-system asdf-build-system/sbcl)
5387 (version "0.2.2")
5388 (home-page "https://github.com/antifuchs/idna")
5389 (source
5390 (origin
5391 (method git-fetch)
5392 (uri (git-reference
5393 (url home-page)
5394 (commit version)))
5395 (file-name (git-file-name name version))
5396 (sha256
5397 (base32
5398 "00nbr3mffxhlq14gg9d16pa6691s4qh35inyw76v906s77khm5a2"))))
5399 (inputs
5400 `(("split-sequence" ,sbcl-split-sequence)))
5401 (synopsis "IDNA string encoding and decoding routines for Common Lisp")
5402 (description "This Common Lisp library provides string encoding and
5403 decoding routines for IDNA, the International Domain Names in Applications.")
5404 (license license:expat)))
5405
5406 (define-public cl-idna
5407 (sbcl-package->cl-source-package sbcl-idna))
5408
5409 (define-public ecl-idna
5410 (sbcl-package->ecl-package sbcl-idna))
5411
5412 (define-public sbcl-swap-bytes
5413 (package
5414 (name "sbcl-swap-bytes")
5415 (build-system asdf-build-system/sbcl)
5416 (version "1.2")
5417 (home-page "https://github.com/sionescu/swap-bytes")
5418 (source
5419 (origin
5420 (method git-fetch)
5421 (uri (git-reference
5422 (url home-page)
5423 (commit (string-append "v" version))))
5424 (file-name (git-file-name name version))
5425 (sha256
5426 (base32
5427 "1hw1v1lw26rifyznpnj1csphha9jgzwpiic16ni3pvs6hcsni9rz"))))
5428 (inputs
5429 `(("trivial-features" ,sbcl-trivial-features)))
5430 (native-inputs
5431 `(("fiveam" ,sbcl-fiveam)))
5432 (synopsis "Efficient endianness conversion for Common Lisp")
5433 (description "This Common Lisp library provides optimized byte-swapping
5434 primitives. The library can change endianness of unsigned integers of length
5435 1/2/4/8. Very useful in implementing various network protocols and file
5436 formats.")
5437 (license license:expat)))
5438
5439 (define-public cl-swap-bytes
5440 (sbcl-package->cl-source-package sbcl-swap-bytes))
5441
5442 (define-public ecl-swap-bytes
5443 (sbcl-package->ecl-package sbcl-swap-bytes))
5444
5445 (define-public sbcl-iolib
5446 ;; Latest release is from June 2017.
5447 (let ((commit "7f5ea3a8457a29d224b24653c2b3657fb1898021")
5448 (revision "2"))
5449 (package
5450 (name "sbcl-iolib")
5451 (version (git-version "0.8.3" revision commit))
5452 (home-page "https://github.com/sionescu/iolib")
5453 (source
5454 (origin
5455 (method git-fetch)
5456 (uri (git-reference
5457 (url home-page)
5458 (commit commit)))
5459 (file-name (git-file-name name version))
5460 (sha256
5461 (base32
5462 "1bg5w7lm61hqk4b0svmri8a590q36z76jfa0sdgzb39r98c04w12"))))
5463 (build-system asdf-build-system/sbcl)
5464 (inputs
5465 `(("alexandria" ,sbcl-alexandria)
5466 ("bordeaux-threads" ,sbcl-bordeaux-threads)
5467 ("cffi" ,sbcl-cffi)
5468 ("idna" ,sbcl-idna)
5469 ("libfixposix" ,libfixposix)
5470 ("split-sequence" ,sbcl-split-sequence)
5471 ("swap-bytes" ,sbcl-swap-bytes)))
5472 (arguments
5473 '(#:asd-files '("iolib.asdf.asd"
5474 "iolib.conf.asd"
5475 "iolib.common-lisp.asd"
5476 "iolib.base.asd"
5477 "iolib.asd")
5478 #:phases
5479 (modify-phases %standard-phases
5480 (add-after 'unpack 'fix-paths
5481 (lambda* (#:key inputs #:allow-other-keys)
5482 (substitute* "src/syscalls/ffi-functions-unix.lisp"
5483 (("\\(:default \"libfixposix\"\\)")
5484 (string-append
5485 "(:default \""
5486 (assoc-ref inputs "libfixposix") "/lib/libfixposix\")")))
5487 ;; Socket tests need Internet access, disable them.
5488 (substitute* "iolib.asd"
5489 (("\\(:file \"sockets\" :depends-on \\(\"pkgdcl\" \"defsuites\"\\)\\)")
5490 "")))))))
5491 (synopsis "Common Lisp I/O library")
5492 (description "IOlib is to be a better and more modern I/O library than
5493 the standard Common Lisp library. It contains a socket library, a DNS
5494 resolver, an I/O multiplexer(which supports @code{select(2)}, @code{epoll(4)}
5495 and @code{kqueue(2)}), a pathname library and file-system utilities.")
5496 (license license:expat))))
5497
5498 (define-public cl-iolib
5499 (let ((parent (sbcl-package->cl-source-package sbcl-iolib)))
5500 (package
5501 (inherit parent)
5502 (propagated-inputs
5503 ;; Need header to compile.
5504 `(("libfixposix" ,libfixposix)
5505 ,@(package-propagated-inputs parent))))))
5506
5507 (define-public ecl-iolib
5508 (sbcl-package->ecl-package sbcl-iolib))
5509
5510 (define-public sbcl-ieee-floats
5511 (let ((commit "566b51a005e81ff618554b9b2f0b795d3b29398d")
5512 (revision "1"))
5513 (package
5514 (name "sbcl-ieee-floats")
5515 (build-system asdf-build-system/sbcl)
5516 (version (git-version "20170924" revision commit))
5517 (home-page "https://github.com/marijnh/ieee-floats/")
5518 (source
5519 (origin
5520 (method git-fetch)
5521 (uri (git-reference
5522 (url home-page)
5523 (commit commit)))
5524 (file-name (git-file-name name version))
5525 (sha256
5526 (base32
5527 "1xyj49j9x3lc84cv3dhbf9ja34ywjk1c46dklx425fxw9mkwm83m"))))
5528 (native-inputs
5529 `(("fiveam" ,sbcl-fiveam)))
5530 (synopsis "IEEE 754 binary representation for floats in Common Lisp")
5531 (description "This is a Common Lisp library that converts
5532 floating point values to IEEE 754 binary representation.")
5533 (license license:bsd-3))))
5534
5535 (define-public cl-ieee-floats
5536 (sbcl-package->cl-source-package sbcl-ieee-floats))
5537
5538 (define-public ecl-ieee-floats
5539 (sbcl-package->ecl-package sbcl-ieee-floats))
5540
5541 (define sbcl-closure-common
5542 (let ((commit "e3c5f5f454b72b01b89115e581c3c52a7e201e5c")
5543 (revision "1"))
5544 (package
5545 (name "sbcl-closure-common")
5546 (build-system asdf-build-system/sbcl)
5547 (version (git-version "20101006" revision commit))
5548 (home-page "https://common-lisp.net/project/cxml/")
5549 (source
5550 (origin
5551 (method git-fetch)
5552 (uri (git-reference
5553 (url "https://github.com/sharplispers/closure-common")
5554 (commit commit)))
5555 (file-name (git-file-name name version))
5556 (sha256
5557 (base32
5558 "0k5r2qxn122pxi301ijir3nayi9sg4d7yiy276l36qmzwhp4mg5n"))))
5559 (inputs
5560 `(("trivial-gray-streams" ,sbcl-trivial-gray-streams)
5561 ("babel" ,sbcl-babel)))
5562 (synopsis "Support Common Lisp library for CXML")
5563 (description "Closure-common is an internal helper library. The name
5564 Closure is a reference to the web browser it was originally written for.")
5565 ;; TODO: License?
5566 (license #f))))
5567
5568 (define-public sbcl-cxml
5569 (let ((commit "00b22bf4c4cf11c993d5866fae284f95ab18e6bf")
5570 (revision "1"))
5571 (package
5572 (name "sbcl-cxml")
5573 (version (git-version "0.0.0" revision commit))
5574 (source
5575 (origin
5576 (method git-fetch)
5577 (uri (git-reference
5578 (url "https://github.com/sharplispers/cxml")
5579 (commit commit)))
5580 (file-name (git-file-name name version))
5581 (sha256
5582 (base32
5583 "13kif7rf3gqdycsk9zq0d7y0g9y81krkl0z87k0p2fkbjfgrph37"))))
5584 (build-system asdf-build-system/sbcl)
5585 (inputs
5586 `(("closure-common" ,sbcl-closure-common)
5587 ("puri" ,sbcl-puri)
5588 ("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
5589 (synopsis "Common Lisp XML parser")
5590 (description "CXML implements a namespace-aware, validating XML 1.0
5591 parser as well as the DOM Level 2 Core interfaces. Two parser interfaces are
5592 offered, one SAX-like, the other similar to StAX.")
5593 (home-page "https://common-lisp.net/project/cxml/")
5594 (license license:llgpl))))
5595
5596 (define-public cl-cxml
5597 (sbcl-package->cl-source-package sbcl-cxml))
5598
5599 (define-public ecl-cxml
5600 (sbcl-package->ecl-package sbcl-cxml))
5601
5602 (define-public sbcl-cl-reexport
5603 (let ((commit "312f3661bbe187b5f28536cd7ec2956e91366c3b")
5604 (revision "1"))
5605 (package
5606 (name "sbcl-cl-reexport")
5607 (build-system asdf-build-system/sbcl)
5608 (version (git-version "0.1" revision commit))
5609 (home-page "https://github.com/takagi/cl-reexport")
5610 (source
5611 (origin
5612 (method git-fetch)
5613 (uri (git-reference
5614 (url home-page)
5615 (commit commit)))
5616 (file-name (git-file-name name version))
5617 (sha256
5618 (base32
5619 "1cwpn1m3wrl0fl9plznn7p464db646gnfc8zkyk97dyxski2aq0x"))))
5620 (inputs
5621 `(("alexandria" ,sbcl-alexandria)))
5622 (arguments
5623 ;; TODO: Tests fail because cl-test-more is missing, but I can't find it online.
5624 `(#:tests? #f))
5625 (synopsis "HTTP cookie manager for Common Lisp")
5626 (description "cl-cookie is a Common Lisp library featuring parsing of
5627 cookie headers, cookie creation, cookie jar creation and more.")
5628 (license license:llgpl))))
5629
5630 (define-public cl-reexport
5631 (sbcl-package->cl-source-package sbcl-cl-reexport))
5632
5633 (define-public ecl-cl-reexport
5634 (sbcl-package->ecl-package sbcl-cl-reexport))
5635
5636 (define-public sbcl-cl-cookie
5637 (let ((commit "cea55aed8b9ad25fafd13defbcb9fe8f41b29546")
5638 (revision "1"))
5639 (package
5640 (name "sbcl-cl-cookie")
5641 (build-system asdf-build-system/sbcl)
5642 (version (git-version "0.9.10" revision commit))
5643 (home-page "https://github.com/fukamachi/cl-cookie")
5644 (source
5645 (origin
5646 (method git-fetch)
5647 (uri (git-reference
5648 (url home-page)
5649 (commit commit)))
5650 (file-name (git-file-name name version))
5651 (sha256
5652 (base32
5653 "090g7z75h98zvc1ldx0vh4jn4086dhjm2w30jcwkq553qmyxwl8h"))))
5654 (inputs
5655 `(("proc-parse" ,sbcl-proc-parse)
5656 ("alexandria" ,sbcl-alexandria)
5657 ("quri" ,sbcl-quri)
5658 ("cl-ppcre" ,sbcl-cl-ppcre)
5659 ("local-time" ,sbcl-local-time)))
5660 (native-inputs
5661 `(("prove" ,sbcl-prove)))
5662 (arguments
5663 ;; TODO: Tests fail because cl-cookie depends on cl-cookie-test.
5664 `(#:tests? #f))
5665 (synopsis "HTTP cookie manager for Common Lisp")
5666 (description "cl-cookie is a Common Lisp library featuring parsing of
5667 cookie headers, cookie creation, cookie jar creation and more.")
5668 (license license:bsd-2))))
5669
5670 (define-public cl-cookie
5671 (sbcl-package->cl-source-package sbcl-cl-cookie))
5672
5673 (define-public ecl-cl-cookie
5674 (sbcl-package->ecl-package sbcl-cl-cookie))
5675
5676 (define-public sbcl-dexador
5677 (let ((commit "953090f04c4d1a9ee6632b90133cdc297b68badc")
5678 (revision "1"))
5679 (package
5680 (name "sbcl-dexador")
5681 (build-system asdf-build-system/sbcl)
5682 (version "0.9.14" )
5683 (home-page "https://github.com/fukamachi/dexador")
5684 (source
5685 (origin
5686 (method git-fetch)
5687 (uri (git-reference
5688 (url home-page)
5689 (commit commit)))
5690 (file-name (git-file-name name version))
5691 (sha256
5692 (base32
5693 "0w18fz3301rpmwc3kwb810czcd24mbf7r1z8vdyc0v5crjfpw3mn"))))
5694 (inputs
5695 `(("trivial-gray-streams" ,sbcl-trivial-gray-streams)
5696 ("babel" ,sbcl-babel)
5697 ("usocket" ,sbcl-usocket)
5698 ("fast-http" ,sbcl-fast-http)
5699 ("quri" ,sbcl-quri)
5700 ("fast-io" ,sbcl-fast-io)
5701 ("chunga" ,sbcl-chunga)
5702 ("cl-ppcre" ,sbcl-cl-ppcre)
5703 ("cl-cookie" ,sbcl-cl-cookie)
5704 ("trivial-mimes" ,sbcl-trivial-mimes)
5705 ("chipz" ,sbcl-chipz)
5706 ("cl-base64" ,sbcl-cl-base64)
5707 ("cl-reexport" ,sbcl-cl-reexport)
5708 ("cl+ssl" ,sbcl-cl+ssl)
5709 ("bordeaux-threads" ,sbcl-bordeaux-threads)
5710 ("alexandria" ,sbcl-alexandria)))
5711 (native-inputs
5712 `(("prove" ,sbcl-prove)
5713 ("lack" ,sbcl-lack)
5714 ("clack" ,sbcl-clack)
5715 ("babel" ,sbcl-babel)
5716 ("alexandria" ,sbcl-alexandria)
5717 ("cl-ppcre" ,sbcl-cl-ppcre)
5718 ("local-time" ,sbcl-local-time)
5719 ("trivial-features" ,sbcl-trivial-features)))
5720 (arguments
5721 ;; TODO: Circular dependency: tests depend on clack-test which depends on dexador.
5722 `(#:tests? #f
5723 #:phases
5724 (modify-phases %standard-phases
5725 (add-after 'unpack 'fix-permissions
5726 (lambda _ (make-file-writable "t/data/test.gz") #t)))))
5727 (synopsis "Yet another HTTP client for Common Lisp")
5728 (description "Dexador is yet another HTTP client for Common Lisp with
5729 neat APIs and connection-pooling. It is meant to supersede Drakma.")
5730 (license license:expat))))
5731
5732 (define-public cl-dexador
5733 (package
5734 (inherit (sbcl-package->cl-source-package sbcl-dexador))
5735 (arguments
5736 `(#:phases
5737 ;; asdf-build-system/source has its own phases and does not inherit
5738 ;; from asdf-build-system/sbcl phases.
5739 (modify-phases %standard-phases/source
5740 ;; Already done in SBCL package.
5741 (delete 'reset-gzip-timestamps))))))
5742
5743 (define-public ecl-dexador
5744 (sbcl-package->ecl-package sbcl-dexador))
5745
5746 (define-public sbcl-lisp-namespace
5747 (let ((commit "28107cafe34e4c1c67490fde60c7f92dc610b2e0")
5748 (revision "1"))
5749 (package
5750 (name "sbcl-lisp-namespace")
5751 (build-system asdf-build-system/sbcl)
5752 (version (git-version "0.1" revision commit))
5753 (home-page "https://github.com/guicho271828/lisp-namespace")
5754 (source
5755 (origin
5756 (method git-fetch)
5757 (uri (git-reference
5758 (url home-page)
5759 (commit commit)))
5760 (file-name (git-file-name name version))
5761 (sha256
5762 (base32
5763 "1jw2wykp06z2afb9nm1lgfzll5cjlj36pnknjx614057zkkxq4iy"))))
5764 (inputs
5765 `(("alexandria" ,sbcl-alexandria)))
5766 (native-inputs
5767 `(("fiveam" ,sbcl-fiveam)))
5768 (arguments
5769 `(#:test-asd-file "lisp-namespace.test.asd"
5770 ;; XXX: Component LISP-NAMESPACE-ASD::LISP-NAMESPACE.TEST not found
5771 #:tests? #f))
5772 (synopsis "LISP-N, or extensible namespaces in Common Lisp")
5773 (description "Common Lisp already has major 2 namespaces, function
5774 namespace and value namespace (or variable namespace), but there are actually
5775 more — e.g., class namespace.
5776 This library offers macros to deal with symbols from any namespace.")
5777 (license license:llgpl))))
5778
5779 (define-public cl-lisp-namespace
5780 (sbcl-package->cl-source-package sbcl-lisp-namespace))
5781
5782 (define-public ecl-lisp-namespace
5783 (sbcl-package->ecl-package sbcl-lisp-namespace))
5784
5785 (define-public sbcl-trivial-cltl2
5786 (let ((commit "8a3bda30dc25d2f65fcf514d0eb6e6db75252c61")
5787 (revision "2"))
5788 (package
5789 (name "sbcl-trivial-cltl2")
5790 (build-system asdf-build-system/sbcl)
5791 (version (git-version "0.1.1" revision commit))
5792 (home-page "https://github.com/Zulu-Inuoe/trivial-cltl2")
5793 (source
5794 (origin
5795 (method git-fetch)
5796 (uri (git-reference
5797 (url home-page)
5798 (commit commit)))
5799 (file-name (git-file-name name version))
5800 (sha256
5801 (base32
5802 "08cnzb9rnczn4pn2zpf0587ny4wjy1mjndy885fz9pw7xrlx37ip"))))
5803 (synopsis "Simple CLtL2 compatibility layer for Common Lisp")
5804 (description "This library is a portable compatibility layer around
5805 \"Common Lisp the Language, 2nd
5806 Edition\" (@url{https://www.cs.cmu.edu/Groups/AI/html/cltl/clm/node102.html})
5807 and it exports symbols from implementation-specific packages.")
5808 (license license:llgpl))))
5809
5810 (define-public cl-trivial-cltl2
5811 (sbcl-package->cl-source-package sbcl-trivial-cltl2))
5812
5813 (define-public ecl-trivial-cltl2
5814 (sbcl-package->ecl-package sbcl-trivial-cltl2))
5815
5816 (define-public sbcl-introspect-environment
5817 (let ((commit "fff42f8f8fd0d99db5ad6c5812e53de7d660020b")
5818 (revision "1"))
5819 (package
5820 (name "sbcl-introspect-environment")
5821 (build-system asdf-build-system/sbcl)
5822 (version (git-version "0.1" revision commit))
5823 (home-page "https://github.com/Bike/introspect-environment")
5824 (source
5825 (origin
5826 (method git-fetch)
5827 (uri (git-reference
5828 (url home-page)
5829 (commit commit)))
5830 (file-name (git-file-name name version))
5831 (sha256
5832 (base32
5833 "1i305n0wfmpac63ni4i3vixnnkl8daw5ncxy0k3dv92krgx6qzhp"))))
5834 (native-inputs
5835 `(("fiveam" ,sbcl-fiveam)))
5836 (synopsis "Common Lisp environment introspection portability layer")
5837 (description "This library is a small interface to portable but
5838 nonstandard introspection of Common Lisp environments. It is intended to
5839 allow a bit more compile-time introspection of environments in Common Lisp.
5840
5841 Quite a bit of information is available at the time a macro or compiler-macro
5842 runs; inlining info, type declarations, that sort of thing. This information
5843 is all standard - any Common Lisp program can @code{(declare (integer x))} and
5844 such.
5845
5846 This info ought to be accessible through the standard @code{&environment}
5847 parameters, but it is not. Several implementations keep the information for
5848 their own purposes but do not make it available to user programs, because
5849 there is no standard mechanism to do so.
5850
5851 This library uses implementation-specific hooks to make information available
5852 to users. This is currently supported on SBCL, CCL, and CMUCL. Other
5853 implementations have implementations of the functions that do as much as they
5854 can and/or provide reasonable defaults.")
5855 (license license:wtfpl2))))
5856
5857 (define-public cl-introspect-environment
5858 (sbcl-package->cl-source-package sbcl-introspect-environment))
5859
5860 (define-public ecl-introspect-environment
5861 (sbcl-package->ecl-package sbcl-introspect-environment))
5862
5863 (define-public sbcl-type-i
5864 (let ((commit "d34440ab4ebf5a46a58deccb35950b15670e3667")
5865 (revision "2"))
5866 (package
5867 (name "sbcl-type-i")
5868 (build-system asdf-build-system/sbcl)
5869 (version (git-version "0.1" revision commit))
5870 (home-page "https://github.com/guicho271828/type-i")
5871 (source
5872 (origin
5873 (method git-fetch)
5874 (uri (git-reference
5875 (url home-page)
5876 (commit commit)))
5877 (file-name (git-file-name name version))
5878 (sha256
5879 (base32
5880 "12wsga0pwjkkr176lnjwkmmlm3ccp0n310sjj9h20lk53iyd0z69"))))
5881 (inputs
5882 `(("alexandria" ,sbcl-alexandria)
5883 ("introspect-environment" ,sbcl-introspect-environment)
5884 ("trivia.trivial" ,sbcl-trivia.trivial)))
5885 (native-inputs
5886 `(("fiveam" ,sbcl-fiveam)))
5887 (arguments
5888 `(#:test-asd-file "type-i.test.asd"))
5889 (synopsis "Type inference utility on unary predicates for Common Lisp")
5890 (description "This library tries to provide a way to detect what kind of
5891 type the given predicate is trying to check. This is different from inferring
5892 the return type of a function.")
5893 (license license:llgpl))))
5894
5895 (define-public cl-type-i
5896 (sbcl-package->cl-source-package sbcl-type-i))
5897
5898 (define-public ecl-type-i
5899 (package
5900 (inherit (sbcl-package->ecl-package sbcl-type-i))
5901 (arguments
5902 ;; The tests get stuck indefinitly
5903 '(#:tests? #f))))
5904
5905 (define-public sbcl-optima
5906 (let ((commit "373b245b928c1a5cce91a6cb5bfe5dd77eb36195")
5907 (revision "1"))
5908 (package
5909 (name "sbcl-optima")
5910 (build-system asdf-build-system/sbcl)
5911 (version (git-version "1.0" revision commit))
5912 (home-page "https://github.com/m2ym/optima")
5913 (source
5914 (origin
5915 (method git-fetch)
5916 (uri (git-reference
5917 (url home-page)
5918 (commit commit)))
5919 (file-name (git-file-name name version))
5920 (sha256
5921 (base32
5922 "1yw4ymq7ms89342kkvb3aqxgv0w38m9kd8ikdqxxzyybnkjhndal"))))
5923 (inputs
5924 `(("alexandria" ,sbcl-alexandria)
5925 ("closer-mop" ,sbcl-closer-mop)))
5926 (native-inputs
5927 `(("eos" ,sbcl-eos)))
5928 (arguments
5929 ;; XXX: Circular dependencies: tests depend on optima.ppcre which depends on optima.
5930 `(#:tests? #f
5931 #:test-asd-file "optima.test.asd"))
5932 (synopsis "Optimized pattern matching library for Common Lisp")
5933 (description "Optima is a fast pattern matching library which uses
5934 optimizing techniques widely used in the functional programming world.")
5935 (license license:expat))))
5936
5937 (define-public cl-optima
5938 (sbcl-package->cl-source-package sbcl-optima))
5939
5940 (define-public ecl-optima
5941 (sbcl-package->ecl-package sbcl-optima))
5942
5943 (define-public sbcl-fare-quasiquote
5944 (let ((commit "640d39a0451094071b3e093c97667b3947f43639")
5945 (revision "1"))
5946 (package
5947 (name "sbcl-fare-quasiquote")
5948 (build-system asdf-build-system/sbcl)
5949 (version (git-version "1.0.1" revision commit))
5950 (home-page "https://gitlab.common-lisp.net/frideau/fare-quasiquote")
5951 (source
5952 (origin
5953 (method git-fetch)
5954 (uri (git-reference
5955 (url (string-append "https://gitlab.common-lisp.net/frideau/"
5956 "fare-quasiquote.git"))
5957 (commit commit)))
5958 (file-name (git-file-name name version))
5959 (sha256
5960 (base32 "1g6q11l50kgija9f55lzqpcwvaq0ljiw8v1j265hnyg6nahjwjvg"))))
5961 (inputs
5962 `(("fare-utils" ,sbcl-fare-utils)
5963 ("named-readtables" ,sbcl-named-readtables)
5964 ("optima" ,sbcl-optima)))
5965 (arguments
5966 ;; XXX: Circular dependencies: Tests depend on subsystems,
5967 ;; which depend on the main systems.
5968 `(#:tests? #f
5969 #:asd-systems '("fare-quasiquote"
5970 "fare-quasiquote-extras")
5971 #:phases
5972 (modify-phases %standard-phases
5973 ;; XXX: Require 1.0.0 version of fare-utils, and we package some
5974 ;; commits after 1.0.0.5, but ASDF fails to read the
5975 ;; "-REVISION-COMMIT" part generated by Guix.
5976 (add-after 'unpack 'patch-requirement
5977 (lambda _
5978 (substitute* "fare-quasiquote.asd"
5979 (("\\(:version \"fare-utils\" \"1.0.0\"\\)")
5980 "\"fare-utils\""))
5981 (substitute* "fare-quasiquote-optima.asd"
5982 (("\\(:version \"optima\" \"1\\.0\"\\)")
5983 "\"optima\""))
5984 #t)))))
5985 (synopsis "Pattern-matching friendly implementation of quasiquote")
5986 (description "The main purpose of this n+2nd reimplementation of
5987 quasiquote is enable matching of quasiquoted patterns, using Optima or
5988 Trivia.")
5989 (license license:expat))))
5990
5991 (define-public cl-fare-quasiquote
5992 (sbcl-package->cl-source-package sbcl-fare-quasiquote))
5993
5994 (define-public ecl-fare-quasiquote
5995 (sbcl-package->ecl-package sbcl-fare-quasiquote))
5996
5997 ;;; Split the trivia package in two to work around the circular dependency
5998 ;;; between guicho271828/trivia and guicho271828/type-i.
5999 (define-public sbcl-trivia.trivial
6000 (let ((commit "7286d5d2a4f685f1cac8370816f95276c0851111")
6001 (revision "3"))
6002 (package
6003 (name "sbcl-trivia.trivial")
6004 (version (git-version "0.0.0" revision commit))
6005 (source
6006 (origin
6007 (method git-fetch)
6008 (uri (git-reference
6009 (url "https://github.com/guicho271828/trivia")
6010 (commit commit)))
6011 (file-name (git-file-name "trivia" version))
6012 (sha256
6013 (base32
6014 "0ln0sj3jry7kzbmxhnin66kpbqan1wp8wwgdbw4k29afbdblkcca"))))
6015 (build-system asdf-build-system/sbcl)
6016 (inputs
6017 `(("alexandria" ,sbcl-alexandria)
6018 ("closer-mop" ,sbcl-closer-mop)
6019 ("lisp-namespace" ,sbcl-lisp-namespace)
6020 ("trivial-cltl2" ,sbcl-trivial-cltl2)))
6021 (arguments
6022 '(#:phases
6023 (modify-phases %standard-phases
6024 (add-after 'unpack 'fix-build
6025 (lambda _
6026 (for-each delete-file
6027 '("trivia.balland2006.asd"
6028 "trivia.ppcre.asd"
6029 "trivia.quasiquote.asd"
6030 "trivia.cffi.asd"
6031 "trivia.asd"
6032 "trivia.test.asd"))
6033 #t)))))
6034 (synopsis "Pattern matching in Common Lisp")
6035 (description "Trivia is a pattern matching compiler that is compatible
6036 with Optima, another pattern matching library for Common Lisp. It is meant to
6037 be faster and more extensible than Optima.")
6038 (home-page "https://github.com/guicho271828/trivia")
6039 (license license:llgpl))))
6040
6041 (define-public cl-trivia.trivial
6042 (sbcl-package->cl-source-package sbcl-trivia.trivial))
6043
6044 (define-public ecl-trivia.trivial
6045 (sbcl-package->ecl-package sbcl-trivia.trivial))
6046
6047 (define-public sbcl-trivia
6048 (package
6049 (inherit sbcl-trivia.trivial)
6050 (name "sbcl-trivia")
6051 (native-inputs
6052 `(("fiveam" ,sbcl-fiveam)
6053 ("optima" ,sbcl-optima)))
6054 (inputs
6055 `(("alexandria" ,sbcl-alexandria)
6056 ("cffi" ,sbcl-cffi)
6057 ("cl-ppcre" ,sbcl-cl-ppcre)
6058 ("fare-quasiquote" ,sbcl-fare-quasiquote)
6059 ("iterate" ,sbcl-iterate)
6060 ("trivia.trivial" ,sbcl-trivia.trivial)
6061 ("type-i" ,sbcl-type-i)))
6062 (arguments
6063 '(#:asd-systems '("trivia"
6064 "trivia.ppcre"
6065 "trivia.quasiquote"
6066 "trivia.cffi")
6067 #:test-asd-file "trivia.test.asd"
6068 #:phases
6069 (modify-phases %standard-phases
6070 (add-after 'unpack 'fix-build
6071 (lambda _
6072 (for-each delete-file
6073 '("trivia.level0.asd"
6074 "trivia.level1.asd"
6075 "trivia.level2.asd"
6076 "trivia.trivial.asd"))
6077 #t)))))))
6078
6079 (define-public cl-trivia
6080 (sbcl-package->cl-source-package sbcl-trivia))
6081
6082 (define-public ecl-trivia
6083 (sbcl-package->ecl-package sbcl-trivia))
6084
6085 (define-public sbcl-mk-string-metrics
6086 (package
6087 (name "sbcl-mk-string-metrics")
6088 (version "0.1.2")
6089 (home-page "https://github.com/cbaggers/mk-string-metrics/")
6090 (source (origin
6091 (method git-fetch)
6092 (uri (git-reference
6093 (url home-page)
6094 (commit version)))
6095 (sha256
6096 (base32 "0bg0bv2mfd4k0g3x72x563hvmrx18xavaffr6xk5rh4if5j7kcf6"))
6097 (file-name (git-file-name name version))))
6098 (build-system asdf-build-system/sbcl)
6099 (synopsis "Calculate various string metrics efficiently in Common Lisp")
6100 (description "This library implements efficient algorithms that calculate
6101 various string metrics in Common Lisp:
6102
6103 @itemize
6104 @item Damerau-Levenshtein distance
6105 @item Hamming distance
6106 @item Jaccard similarity coefficient
6107 @item Jaro distance
6108 @item Jaro-Winkler distance
6109 @item Levenshtein distance
6110 @item Normalized Damerau-Levenshtein distance
6111 @item Normalized Levenshtein distance
6112 @item Overlap coefficient
6113 @end itemize\n")
6114 (license license:x11)))
6115
6116 (define-public cl-mk-string-metrics
6117 (sbcl-package->cl-source-package sbcl-mk-string-metrics))
6118
6119 (define-public ecl-mk-string-metrics
6120 (sbcl-package->ecl-package sbcl-mk-string-metrics))
6121
6122 (define-public sbcl-cl-str
6123 (package
6124 (name "sbcl-cl-str")
6125 (version "0.19")
6126 (home-page "https://github.com/vindarel/cl-str")
6127 (source (origin
6128 (method git-fetch)
6129 (uri (git-reference
6130 (url home-page)
6131 (commit version)))
6132 (sha256
6133 (base32 "1jyza2jhn7w6fl4w87pv0m87z5ia48m6dqw12k0mdh7l3mgjq839"))
6134 (file-name (git-file-name name version))))
6135 (build-system asdf-build-system/sbcl)
6136 (inputs
6137 `(("cl-ppcre" ,sbcl-cl-ppcre)
6138 ("cl-ppcre-unicode" ,sbcl-cl-ppcre-unicode)
6139 ("cl-change-case" ,sbcl-cl-change-case)))
6140 (native-inputs
6141 `(("prove" ,sbcl-prove)))
6142 (arguments
6143 `(#:asd-systems '("str")
6144 #:test-asd-file "str.test.asd"))
6145 (synopsis "Modern, consistent and terse Common Lisp string manipulation library")
6146 (description "A modern and consistent Common Lisp string manipulation
6147 library that focuses on modernity, simplicity and discoverability:
6148 @code{(str:trim s)} instead of @code{(string-trim '(#\\Space ...) s)}), or
6149 @code{str:concat strings} instead of an unusual format construct; one
6150 discoverable library instead of many; consistency and composability, where
6151 @code{s} is always the last argument, which makes it easier to feed pipes and
6152 arrows.")
6153 (license license:expat)))
6154
6155 (define-public cl-str
6156 (sbcl-package->cl-source-package sbcl-cl-str))
6157
6158 (define-public ecl-cl-str
6159 (sbcl-package->ecl-package sbcl-cl-str))
6160
6161 (define-public sbcl-cl-xmlspam
6162 (let ((commit "ea06abcca2a73a9779bcfb09081e56665f94e22a"))
6163 (package
6164 (name "sbcl-cl-xmlspam")
6165 (build-system asdf-build-system/sbcl)
6166 (version (git-version "0.0.0" "1" commit))
6167 (home-page "https://github.com/rogpeppe/cl-xmlspam")
6168 (source
6169 (origin
6170 (method git-fetch)
6171 (uri (git-reference
6172 (url home-page)
6173 (commit commit)))
6174 (file-name (string-append name "-" version))
6175 (sha256
6176 (base32
6177 "0w4rqvrgdgk3fwfq3kx4r7wwdr2bv3b6n3bdqwsiriw9psqzpz2s"))))
6178 (inputs
6179 `(("cxml" ,sbcl-cxml)
6180 ("cl-ppcre" ,sbcl-cl-ppcre)))
6181 (synopsis "Concise, regexp-like pattern matching on streaming XML for Common Lisp")
6182 (description "CXML does an excellent job at parsing XML elements, but what
6183 do you do when you have a XML file that's larger than you want to fit in
6184 memory, and you want to extract some information from it? Writing code to deal
6185 with SAX events, or even using Klacks, quickly becomes tedious.
6186 @code{cl-xmlspam} (for XML Stream PAttern Matcher) is designed to make it easy
6187 to write code that mirrors the structure of the XML that it's parsing. It
6188 also makes it easy to shift paradigms when necessary - the usual Lisp control
6189 constructs can be used interchangeably with pattern matching, and the full
6190 power of CXML is available when necessary.")
6191 (license license:bsd-3))))
6192
6193 (define-public cl-xmlspam
6194 (sbcl-package->cl-source-package sbcl-cl-xmlspam))
6195
6196 (define-public ecl-cl-xmlspam
6197 (sbcl-package->ecl-package sbcl-cl-xmlspam))
6198
6199 (define-public sbcl-dbus
6200 (let ((commit "24b452df3a45ca5dc95015500f34baad175c981a")
6201 (revision "1"))
6202 (package
6203 (name "sbcl-dbus")
6204 (version (git-version "20190408" revision commit))
6205 (home-page "https://github.com/death/dbus")
6206 (source
6207 (origin
6208 (method git-fetch)
6209 (uri (git-reference
6210 (url home-page)
6211 (commit commit)))
6212 (file-name (git-file-name name version))
6213 (sha256
6214 (base32
6215 "0fw2q866yddbf23nk9pxphm9gsasx35vjyss82xzvndnjmzlqfl5"))))
6216 (build-system asdf-build-system/sbcl)
6217 (inputs
6218 `(("alexandria" ,sbcl-alexandria)
6219 ("trivial-garbage" ,sbcl-trivial-garbage)
6220 ("babel" ,sbcl-babel)
6221 ("iolib" ,sbcl-iolib)
6222 ("ieee-floats" ,sbcl-ieee-floats)
6223 ("flexi-streams" ,sbcl-flexi-streams)
6224 ("cl-xmlspam" ,sbcl-cl-xmlspam)
6225 ("ironclad" ,sbcl-ironclad)))
6226 (synopsis "D-Bus client library for Common Lisp")
6227 (description "This is a Common Lisp library that publishes D-Bus
6228 objects as well as send and notify other objects connected to a bus.")
6229 (license license:bsd-2))))
6230
6231 (define-public cl-dbus
6232 (sbcl-package->cl-source-package sbcl-dbus))
6233
6234 (define-public ecl-dbus
6235 (sbcl-package->ecl-package sbcl-dbus))
6236
6237 (define-public sbcl-cl-hooks
6238 (let ((commit "5b638083f3b4f1221a52631d9c8a0a265565cac7")
6239 (revision "1"))
6240 (package
6241 (name "sbcl-cl-hooks")
6242 (build-system asdf-build-system/sbcl)
6243 (version (git-version "0.2.1" revision commit))
6244 (home-page "https://github.com/scymtym/architecture.hooks")
6245 (source
6246 (origin
6247 (method git-fetch)
6248 (uri (git-reference
6249 (url home-page)
6250 (commit commit)))
6251 (file-name (git-file-name name version))
6252 (sha256
6253 (base32
6254 "0bg3l0a28lw5gqqjp6p6b5nhwqk46sgkb7184w5qbfngw1hk8x9y"))))
6255 (inputs
6256 `(("alexandria" ,sbcl-alexandria)
6257 ("let-plus" ,sbcl-let-plus)
6258 ("trivial-garbage" ,sbcl-trivial-garbage)
6259 ("closer-mop" ,sbcl-closer-mop)))
6260 (native-inputs
6261 `(("fiveam" ,sbcl-fiveam)))
6262 (synopsis "Hooks extension point mechanism (as in Emacs) for Common Lisp")
6263 (description "A hook, in the present context, is a certain kind of
6264 extension point in a program that allows interleaving the execution of
6265 arbitrary code with the execution of a the program without introducing any
6266 coupling between the two. Hooks are used extensively in the extensible editor
6267 Emacs.
6268
6269 In the Common LISP Object System (CLOS), a similar kind of extensibility is
6270 possible using the flexible multi-method dispatch mechanism. It may even seem
6271 that the concept of hooks does not provide any benefits over the possibilities
6272 of CLOS. However, there are some differences:
6273
6274 @itemize
6275
6276 @item There can be only one method for each combination of specializers and
6277 qualifiers. As a result this kind of extension point cannot be used by
6278 multiple extensions independently.
6279 @item Removing code previously attached via a @code{:before}, @code{:after} or
6280 @code{:around} method can be cumbersome.
6281 @item There could be other or even multiple extension points besides @code{:before}
6282 and @code{:after} in a single method.
6283 @item Attaching codes to individual objects using eql specializers can be
6284 cumbersome.
6285 @item Introspection of code attached a particular extension point is
6286 cumbersome since this requires enumerating and inspecting the methods of a
6287 generic function.
6288 @end itemize
6289
6290 This library tries to complement some of these weaknesses of method-based
6291 extension-points via the concept of hooks.")
6292 (license license:llgpl))))
6293
6294 (define-public cl-hooks
6295 (sbcl-package->cl-source-package sbcl-cl-hooks))
6296
6297 (define-public ecl-cl-hooks
6298 (sbcl-package->ecl-package sbcl-cl-hooks))
6299
6300 (define-public sbcl-cl-autowrap
6301 (let ((revision "1")
6302 (commit "ae846d6968fc0d000de0c541638929a157f3009e"))
6303 ;; no taged branches
6304 (package
6305 (name "sbcl-cl-autowrap")
6306 (version (git-version "1.0" revision commit))
6307 (source
6308 (origin
6309 (method git-fetch)
6310 (uri (git-reference
6311 (url "https://github.com/rpav/cl-autowrap")
6312 (commit commit)))
6313 (file-name (git-file-name name version))
6314 (sha256
6315 (base32 "1gisldp2zns92kdcaikghm7c38ldy2d884n8bfg0wcjvbz78p3ar"))))
6316 (build-system asdf-build-system/sbcl)
6317 (inputs
6318 `(("alexandria" ,sbcl-alexandria)
6319 ("cffi" ,sbcl-cffi)
6320 ("cl-json" ,sbcl-cl-json)
6321 ("cl-ppcre" ,sbcl-cl-ppcre)
6322 ("defpackage-plus" ,sbcl-defpackage-plus)
6323 ("trivial-features" ,sbcl-trivial-features)))
6324 (home-page "https://github.com/rpav/cl-autowrap")
6325 (synopsis "FFI wrapper generator for Common Lisp")
6326 (description "This is a c2ffi-based wrapper generator for Common Lisp.")
6327 (license license:bsd-2))))
6328
6329 (define-public cl-autowrap
6330 (sbcl-package->cl-source-package sbcl-cl-autowrap))
6331
6332 (define-public ecl-cl-autowrap
6333 (sbcl-package->ecl-package sbcl-cl-autowrap))
6334
6335 (define-public sbcl-s-sysdeps
6336 ;; No release since 2013.
6337 (let ((commit "9aa23bbdceb24bcdbe0e7c39fa1901858f823106")
6338 (revision "2"))
6339 (package
6340 (name "sbcl-s-sysdeps")
6341 (build-system asdf-build-system/sbcl)
6342 (version (git-version "1" revision commit))
6343 (home-page "https://github.com/svenvc/s-sysdeps")
6344 (source
6345 (origin
6346 (method git-fetch)
6347 (uri (git-reference
6348 (url home-page)
6349 (commit commit)))
6350 (file-name (git-file-name name version))
6351 (sha256
6352 (base32
6353 "1fh8r7kf8s3hvqdg6b71b8p7w3v2kkga9bw8j3qqdxhzr6anpm0b"))))
6354 (inputs
6355 `(("bordeaux-threads" ,sbcl-bordeaux-threads)
6356 ("usocket" ,sbcl-usocket)))
6357 (synopsis "Common Lisp abstraction layer over platform dependent functionality")
6358 (description "@code{s-sysdeps} is an abstraction layer over platform
6359 dependent functionality. This simple package is used as a building block in a
6360 number of other open source projects.
6361
6362 @code{s-sysdeps} abstracts:
6363
6364 @itemize
6365 @item managing processes,
6366 @item implementing a standard TCP/IP server,
6367 @item opening a client TCP/IP socket stream,
6368 @item working with process locks.
6369 @end itemize\n")
6370 (license license:llgpl))))
6371
6372 (define-public cl-s-sysdeps
6373 (sbcl-package->cl-source-package sbcl-s-sysdeps))
6374
6375 (define-public ecl-s-sysdeps
6376 (sbcl-package->ecl-package sbcl-s-sysdeps))
6377
6378 (define-public sbcl-cl-prevalence
6379 (let ((commit "5a76be036092ed6c18cb695a9e03bce87e21b840")
6380 (revision "4"))
6381 (package
6382 (name "sbcl-cl-prevalence")
6383 (build-system asdf-build-system/sbcl)
6384 (version (git-version "5" revision commit))
6385 (home-page "https://github.com/40ants/cl-prevalence")
6386 (source
6387 (origin
6388 (method git-fetch)
6389 (uri (git-reference
6390 (url home-page)
6391 (commit commit)))
6392 (file-name (git-file-name name version))
6393 (sha256
6394 (base32
6395 "050h6hwv8f16b5v6fzba8zmih92hgaaq27i2x9wv1iib41gbia3r"))))
6396 (inputs
6397 `(("s-sysdeps" ,sbcl-s-sysdeps)
6398 ("s-xml" ,sbcl-s-xml)))
6399 (native-inputs
6400 `(("fiveam" ,sbcl-fiveam)))
6401 (synopsis "Implementation of object prevalence for Common Lisp")
6402 (description "This Common Lisp library implements object prevalence (see
6403 @url{https://en.wikipedia.org/wiki/System_prevalence}). It allows
6404 for (de)serializing to and from s-exps as well as XML. Serialization of arbitrary
6405 classes and cyclic data structures are supported.")
6406 (license license:llgpl))))
6407
6408 (define-public cl-prevalence
6409 (sbcl-package->cl-source-package sbcl-cl-prevalence))
6410
6411 (define-public ecl-cl-prevalence
6412 (sbcl-package->ecl-package sbcl-cl-prevalence))
6413
6414 (define-public sbcl-series
6415 (let ((commit "da9061b336119d1e5214aff9117171d494d5a58a")
6416 (revision "1"))
6417 (package
6418 (name "sbcl-series")
6419 (version (git-version "2.2.11" revision commit))
6420 (source
6421 (origin
6422 (method git-fetch)
6423 (uri (git-reference
6424 (url "git://git.code.sf.net/p/series/series")
6425 (commit commit)))
6426 (file-name (git-file-name name version))
6427 (sha256
6428 (base32
6429 "07hk2lhfx42zk018pxqvn4gs77vd4n4g8m4xxbqaxgca76mifwfw"))))
6430 (build-system asdf-build-system/sbcl)
6431 (arguments
6432 ;; Disable the tests, they are apparently buggy and I didn't find
6433 ;; a simple way to make them run and pass.
6434 '(#:tests? #f))
6435 (synopsis "Series data structure for Common Lisp")
6436 (description
6437 "This Common Lisp library provides a series data structure much like
6438 a sequence, with similar kinds of operations. The difference is that in many
6439 situations, operations on series may be composed functionally and yet execute
6440 iteratively, without the need to construct intermediate series values
6441 explicitly. In this manner, series provide both the clarity of a functional
6442 programming style and the efficiency of an iterative programming style.")
6443 (home-page "http://series.sourceforge.net/")
6444 (license license:expat))))
6445
6446 (define-public cl-series
6447 (sbcl-package->cl-source-package sbcl-series))
6448
6449 (define-public ecl-series
6450 (sbcl-package->ecl-package sbcl-series))
6451
6452 (define-public sbcl-periods
6453 (let ((commit "60383dcef88a1ac11f82804ae7a33c361dcd2949")
6454 (revision "2"))
6455 (package
6456 (name "sbcl-periods")
6457 (version (git-version "0.0.2" revision commit))
6458 (source
6459 (origin
6460 (method git-fetch)
6461 (uri (git-reference
6462 (url "https://github.com/jwiegley/periods")
6463 (commit commit)))
6464 (file-name (git-file-name name version))
6465 (sha256
6466 (base32
6467 "1ym2j4an9ig2hl210jg91gpf7xfnp6mlhkw3n9kkdnwiji3ipqlk"))))
6468 (build-system asdf-build-system/sbcl)
6469 (inputs
6470 `(("local-time" ,sbcl-local-time)
6471 ("series" ,sbcl-series)))
6472 (arguments
6473 '(#:asd-systems '("periods"
6474 "periods-series")))
6475 (synopsis "Common Lisp library for manipulating date/time objects")
6476 (description
6477 "Periods is a Common Lisp library providing a set of utilities for
6478 manipulating times, distances between times, and both contiguous and
6479 discontiguous ranges of time.")
6480 (home-page "https://github.com/jwiegley/periods")
6481 (license license:bsd-3))))
6482
6483 (define-public cl-periods
6484 (sbcl-package->cl-source-package sbcl-periods))
6485
6486 (define-public ecl-periods
6487 (sbcl-package->ecl-package sbcl-periods))
6488
6489 (define-public sbcl-metatilities-base
6490 (let ((commit "6eaa9e3ff0939a93a92109dd0fcd218de85417d5")
6491 (revision "1"))
6492 (package
6493 (name "sbcl-metatilities-base")
6494 (version (git-version "0.6.6" revision commit))
6495 (source
6496 (origin
6497 (method git-fetch)
6498 (uri (git-reference
6499 (url "https://github.com/gwkkwg/metatilities-base")
6500 (commit commit)))
6501 (file-name (git-file-name name version))
6502 (sha256
6503 (base32
6504 "0xpa86pdzlnf4v5g64j3ifaplx71sx2ha8b7vvakswi652679ma0"))))
6505 (build-system asdf-build-system/sbcl)
6506 (native-inputs
6507 `(("lift" ,sbcl-lift)))
6508 (synopsis "Core of the metatilities Common Lisp library")
6509 (description
6510 "Metatilities-base is the core of the metatilities Common Lisp library
6511 which implements a set of utilities.")
6512 (home-page "https://common-lisp.net/project/metatilities-base/")
6513 (license license:expat))))
6514
6515 (define-public cl-metatilities-base
6516 (sbcl-package->cl-source-package sbcl-metatilities-base))
6517
6518 (define-public ecl-metatilities-base
6519 (sbcl-package->ecl-package sbcl-metatilities-base))
6520
6521 (define-public sbcl-cl-containers
6522 (let ((commit "3d1df53c22403121bffb5d553cf7acb1503850e7")
6523 (revision "3"))
6524 (package
6525 (name "sbcl-cl-containers")
6526 (version (git-version "0.12.1" revision commit))
6527 (source
6528 (origin
6529 (method git-fetch)
6530 (uri (git-reference
6531 (url "https://github.com/gwkkwg/cl-containers")
6532 (commit commit)))
6533 (file-name (git-file-name name version))
6534 (sha256
6535 (base32
6536 "18s6jfq11n8nv9k4biz32pm1s7y9zl054ry1gmdbcf39nisy377y"))))
6537 (build-system asdf-build-system/sbcl)
6538 (native-inputs
6539 `(("lift" ,sbcl-lift)))
6540 (inputs
6541 `(("metatilities-base" ,sbcl-metatilities-base)))
6542 (arguments
6543 '(#:asd-files '("cl-containers.asd")
6544 #:phases
6545 (modify-phases %standard-phases
6546 (add-after 'unpack 'relax-version-checks
6547 (lambda _
6548 (substitute* "cl-containers.asd"
6549 (("\\(:version \"metatilities-base\" \"0\\.6\\.6\"\\)")
6550 "\"metatilities-base\""))
6551 (substitute* "cl-containers-test.asd"
6552 (("\\(:version \"lift\" \"1\\.7\\.0\"\\)")
6553 "\"lift\""))
6554 #t)))))
6555 (synopsis "Container library for Common Lisp")
6556 (description
6557 "Common Lisp ships with a set of powerful built in data structures
6558 including the venerable list, full featured arrays, and hash-tables.
6559 CL-containers enhances and builds on these structures by adding containers
6560 that are not available in native Lisp (for example: binary search trees,
6561 red-black trees, sparse arrays and so on), and by providing a standard
6562 interface so that they are simpler to use and so that changing design
6563 decisions becomes significantly easier.")
6564 (home-page "https://common-lisp.net/project/cl-containers/")
6565 (license license:expat))))
6566
6567 (define-public cl-containers
6568 (sbcl-package->cl-source-package sbcl-cl-containers))
6569
6570 (define-public ecl-cl-containers
6571 (sbcl-package->ecl-package sbcl-cl-containers))
6572
6573 (define-public sbcl-xlunit
6574 (let ((commit "3805d34b1d8dc77f7e0ee527a2490194292dd0fc")
6575 (revision "1"))
6576 (package
6577 (name "sbcl-xlunit")
6578 (version (git-version "0.6.3" revision commit))
6579 (source
6580 (origin
6581 (method git-fetch)
6582 (uri (git-reference
6583 (url "http://git.kpe.io/xlunit.git")
6584 (commit commit)))
6585 (file-name (git-file-name name version))
6586 (sha256
6587 (base32
6588 "0argfmp9nghs4sihyj3f8ch9qfib2b7ll07v5m9ziajgzsfl5xw3"))))
6589 (build-system asdf-build-system/sbcl)
6590 (arguments
6591 '(#:phases
6592 (modify-phases %standard-phases
6593 (add-after 'unpack 'fix-tests
6594 (lambda _
6595 (substitute* "xlunit.asd"
6596 ((" :force t") ""))
6597 #t)))))
6598 (synopsis "Unit testing package for Common Lisp")
6599 (description
6600 "The XLUnit package is a toolkit for building test suites. It is based
6601 on the XPTest package by Craig Brozensky and the JUnit package by Kent Beck.")
6602 (home-page "http://quickdocs.org/xlunit/")
6603 (license license:bsd-3))))
6604
6605 (define-public cl-xlunit
6606 (sbcl-package->cl-source-package sbcl-xlunit))
6607
6608 (define-public ecl-xlunit
6609 (sbcl-package->ecl-package sbcl-xlunit))
6610
6611 (define-public sbcl-cambl
6612 (let ((commit "7016d1a98215f82605d1c158e7a16504ca1f4636")
6613 (revision "1"))
6614 (package
6615 (name "sbcl-cambl")
6616 (version (git-version "4.0.0" revision commit))
6617 (source
6618 (origin
6619 (method git-fetch)
6620 (uri (git-reference
6621 (url "https://github.com/jwiegley/cambl")
6622 (commit commit)))
6623 (file-name (git-file-name "cambl" version))
6624 (sha256
6625 (base32 "103mry04j2k9vznsxm7wcvccgxkil92cdrv52miwcmxl8daa4jiz"))))
6626 (build-system asdf-build-system/sbcl)
6627 (native-inputs
6628 `(("xlunit" ,sbcl-xlunit)))
6629 (inputs
6630 `(("alexandria" ,sbcl-alexandria)
6631 ("cl-containers" ,sbcl-cl-containers)
6632 ("local-time" ,sbcl-local-time)
6633 ("periods" ,sbcl-periods)))
6634 (arguments
6635 '(#:asd-files '("fprog.asd"
6636 "cambl.asd")))
6637 (synopsis "Commoditized amounts and balances for Common Lisp")
6638 (description
6639 "CAMBL is a Common Lisp library providing a convenient facility for
6640 working with commoditized values. It does not allow compound units (and so is
6641 not suited for scientific operations) but does work rather nicely for the
6642 purpose of financial calculations.")
6643 (home-page "https://github.com/jwiegley/cambl")
6644 (license license:bsd-3))))
6645
6646 (define-public cl-cambl
6647 (sbcl-package->cl-source-package sbcl-cambl))
6648
6649 (define-public ecl-cambl
6650 (sbcl-package->ecl-package sbcl-cambl))
6651
6652 (define-public sbcl-cl-ledger
6653 (let ((commit "08e0be41795e804cd36142e51756ad0b1caa377b")
6654 (revision "1"))
6655 (package
6656 (name "sbcl-cl-ledger")
6657 (version (git-version "4.0.0" revision commit))
6658 (source
6659 (origin
6660 (method git-fetch)
6661 (uri (git-reference
6662 (url "https://github.com/ledger/cl-ledger")
6663 (commit commit)))
6664 (file-name (git-file-name name version))
6665 (sha256
6666 (base32
6667 "1via0qf6wjcyxnfbmfxjvms0ik9j8rqbifgpmnhrzvkhrq9pv8h1"))))
6668 (build-system asdf-build-system/sbcl)
6669 (inputs
6670 `(("cambl" ,sbcl-cambl)
6671 ("cl-ppcre" ,sbcl-cl-ppcre)
6672 ("local-time" ,sbcl-local-time)
6673 ("periods" ,sbcl-periods)))
6674 (arguments
6675 '(#:phases
6676 (modify-phases %standard-phases
6677 (add-after 'unpack 'fix-system-definition
6678 (lambda _
6679 (substitute* "cl-ledger.asd"
6680 ((" :build-operation program-op") "")
6681 ((" :build-pathname \"cl-ledger\"") "")
6682 ((" :entry-point \"ledger::main\"") ""))
6683 #t)))))
6684 (synopsis "Common Lisp port of the Ledger accounting system")
6685 (description
6686 "CL-Ledger is a Common Lisp port of the Ledger double-entry accounting
6687 system.")
6688 (home-page "https://github.com/ledger/cl-ledger")
6689 (license license:bsd-3))))
6690
6691 (define-public cl-ledger
6692 (sbcl-package->cl-source-package sbcl-cl-ledger))
6693
6694 (define-public ecl-cl-ledger
6695 (sbcl-package->ecl-package sbcl-cl-ledger))
6696
6697 (define-public sbcl-bst
6698 (let ((commit "8545aed0d504df2829ad139566feeabe22305388")
6699 (revision "0"))
6700 (package
6701 (name "sbcl-bst")
6702 (version (git-version "2.0" revision commit))
6703 (source
6704 (origin
6705 (method git-fetch)
6706 (uri (git-reference
6707 (url "https://github.com/glv2/bst")
6708 (commit commit)))
6709 (file-name (git-file-name name version))
6710 (sha256
6711 (base32 "18ig7rvxcra69437g0i8sxyv7c5dg26jqnx1rc2f9pxmihdprgk8"))))
6712 (build-system asdf-build-system/sbcl)
6713 (native-inputs
6714 `(("alexandria" ,sbcl-alexandria)
6715 ("fiveam" ,sbcl-fiveam)))
6716 (synopsis "Binary search tree for Common Lisp")
6717 (description
6718 "BST is a Common Lisp library for working with binary search trees that
6719 can contain any kind of values.")
6720 (home-page "https://github.com/glv2/bst")
6721 (license license:gpl3))))
6722
6723 (define-public cl-bst
6724 (sbcl-package->cl-source-package sbcl-bst))
6725
6726 (define-public ecl-bst
6727 (sbcl-package->ecl-package sbcl-bst))
6728
6729 (define-public sbcl-cl-octet-streams
6730 (package
6731 (name "sbcl-cl-octet-streams")
6732 (version "1.2")
6733 (source
6734 (origin
6735 (method git-fetch)
6736 (uri (git-reference
6737 (url "https://github.com/glv2/cl-octet-streams")
6738 (commit (string-append "v" version))))
6739 (file-name (git-file-name name version))
6740 (sha256
6741 (base32 "1hffh98bv4w5yrchagzwqrc43d2p473pvw7ka4kyyvhrr52dk2f8"))))
6742 (build-system asdf-build-system/sbcl)
6743 (native-inputs
6744 `(("fiveam" ,sbcl-fiveam)))
6745 (inputs
6746 `(("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
6747 (synopsis "In-memory octet streams for Common Lisp")
6748 (description
6749 "CL-octet-streams is a library implementing in-memory octet
6750 streams for Common Lisp. It was inspired by the trivial-octet-streams and
6751 cl-plumbing libraries.")
6752 (home-page "https://github.com/glv2/cl-octet-streams")
6753 (license license:gpl3+)))
6754
6755 (define-public cl-octet-streams
6756 (sbcl-package->cl-source-package sbcl-cl-octet-streams))
6757
6758 (define-public ecl-cl-octet-streams
6759 (sbcl-package->ecl-package sbcl-cl-octet-streams))
6760
6761 (define-public sbcl-lzlib
6762 (let ((commit "cad10f5becbcfebb44b9d311a257563778803452")
6763 (revision "2"))
6764 (package
6765 (name "sbcl-lzlib")
6766 (version (git-version "1.1" revision commit))
6767 (source
6768 (origin
6769 (method git-fetch)
6770 (uri (git-reference
6771 (url "https://github.com/glv2/cl-lzlib")
6772 (commit commit)))
6773 (file-name (git-file-name name version))
6774 (sha256
6775 (base32 "09lp7li35h4jkls0448fj1sh6pjslr1w7ranbc4szjr8g0c2bdry"))))
6776 (build-system asdf-build-system/sbcl)
6777 (native-inputs
6778 `(("fiveam" ,sbcl-fiveam)))
6779 (inputs
6780 `(("cffi" ,sbcl-cffi)
6781 ("cl-octet-streams" ,sbcl-cl-octet-streams)
6782 ("lparallel" ,sbcl-lparallel)
6783 ("lzlib" ,lzlib)))
6784 (arguments
6785 '(#:phases
6786 (modify-phases %standard-phases
6787 (add-after 'unpack 'fix-paths
6788 (lambda* (#:key inputs #:allow-other-keys)
6789 (substitute* "src/lzlib.lisp"
6790 (("liblz\\.so")
6791 (string-append (assoc-ref inputs "lzlib") "/lib/liblz.so")))
6792 #t)))))
6793 (synopsis "Common Lisp library for lzip (de)compression")
6794 (description
6795 "This Common Lisp library provides functions for lzip (LZMA)
6796 compression/decompression using bindings to the lzlib C library.")
6797 (home-page "https://github.com/glv2/cl-lzlib")
6798 (license license:gpl3+))))
6799
6800 (define-public cl-lzlib
6801 (sbcl-package->cl-source-package sbcl-lzlib))
6802
6803 (define-public ecl-lzlib
6804 (sbcl-package->ecl-package sbcl-lzlib))
6805
6806 (define-public sbcl-chanl
6807 (let ((commit "56e90a126c78b39bb621a01585e8d3b985238e8c")
6808 (revision "1"))
6809 (package
6810 (name "sbcl-chanl")
6811 (version (git-version "0.4.1" revision commit))
6812 (source
6813 (origin
6814 (method git-fetch)
6815 (uri (git-reference
6816 (url "https://github.com/zkat/chanl")
6817 (commit commit)))
6818 (file-name (git-file-name name version))
6819 (sha256
6820 (base32
6821 "0b1cf6c12qx5cy1fw2z42jgh566rp3l8nv5qf0qqc569s7bgmrh4"))))
6822 (build-system asdf-build-system/sbcl)
6823 (native-inputs
6824 `(("fiveam" ,sbcl-fiveam)))
6825 (inputs
6826 `(("bordeaux-threads" ,sbcl-bordeaux-threads)))
6827 (synopsis "Portable channel-based concurrency for Common Lisp")
6828 (description "Common Lisp library for channel-based concurrency. In
6829 a nutshell, you create various threads sequentially executing tasks you need
6830 done, and use channel objects to communicate and synchronize the state of these
6831 threads.")
6832 (home-page "https://github.com/zkat/chanl")
6833 (license (list license:expat license:bsd-3)))))
6834
6835 (define-public cl-chanl
6836 (sbcl-package->cl-source-package sbcl-chanl))
6837
6838 (define-public ecl-chanl
6839 (sbcl-package->ecl-package sbcl-chanl))
6840
6841 (define-public sbcl-cl-store
6842 (let ((commit "c787337a16ea8cf8a06227f35933a4ec774746b3")
6843 (revision "1"))
6844 (package
6845 (name "sbcl-cl-store")
6846 (version (git-version "0.8.11" revision commit))
6847 (source
6848 (origin
6849 (method git-fetch)
6850 (uri (git-reference
6851 (url "https://github.com/skypher/cl-store")
6852 (commit commit)))
6853 (file-name (git-file-name name version))
6854 (sha256
6855 (base32
6856 "194srkg8nrym19c6i7zbnkzshc1qhqa82m53qnkirz9fw928bqxr"))))
6857 (build-system asdf-build-system/sbcl)
6858 (native-inputs
6859 `(("rt" ,sbcl-rt)))
6860 (synopsis "Common Lisp library to serialize data")
6861 (description
6862 "CL-STORE is a portable serialization package which should give you the
6863 ability to store all Common Lisp data types into streams.")
6864 (home-page "https://www.common-lisp.net/project/cl-store/")
6865 (license license:expat))))
6866
6867 (define-public cl-store
6868 (sbcl-package->cl-source-package sbcl-cl-store))
6869
6870 (define-public ecl-cl-store
6871 (sbcl-package->ecl-package sbcl-cl-store))
6872
6873 (define-public sbcl-specialization-store
6874 (let ((commit "8d39a866a6f24986aad3cc52349e9cb2653496f3")
6875 (revision "1"))
6876 (package
6877 (name "sbcl-specialization-store")
6878 (version (git-version "0.0.5" revision commit))
6879 (source
6880 (origin
6881 (method git-fetch)
6882 (uri (git-reference
6883 (url "https://github.com/markcox80/specialization-store")
6884 (commit commit)))
6885 (file-name (git-file-name "specialization-store" version))
6886 (sha256
6887 (base32 "0r0bgb46q4gy72l78s7djkxq8ibb4bb3yh9brsry5lih7br8lhi0"))))
6888 (build-system asdf-build-system/sbcl)
6889 (native-inputs
6890 `(("fiveam" ,sbcl-fiveam)))
6891 (inputs
6892 `(("alexandria" ,sbcl-alexandria)
6893 ("introspect-environment" ,sbcl-introspect-environment)))
6894 (home-page "https://github.com/markcox80/specialization-store")
6895 (synopsis "Different type of generic function for Common Lisp")
6896 (description
6897 "SPECIALIZATION-STORE system provides a new kind of function, called
6898 a store function, whose behavior depends on the types of objects passed to the
6899 function.")
6900 (license license:bsd-2))))
6901
6902 (define-public ecl-specialization-store
6903 (package
6904 (inherit (sbcl-package->ecl-package sbcl-specialization-store))
6905 (arguments
6906 ;; TODO: Find why the tests get stuck forever; disable them for now.
6907 `(#:tests? #f))))
6908
6909 (define-public cl-specialization-store
6910 (sbcl-package->cl-source-package sbcl-specialization-store))
6911
6912 (define-public sbcl-cl-gobject-introspection
6913 (let ((commit "d0136c8d9ade2560123af1fc55bbf70d2e3db539")
6914 (revision "1"))
6915 (package
6916 (name "sbcl-cl-gobject-introspection")
6917 (version (git-version "0.3" revision commit))
6918 (home-page "https://github.com/andy128k/cl-gobject-introspection")
6919 (source
6920 (origin
6921 (method git-fetch)
6922 (uri (git-reference
6923 (url home-page)
6924 (commit commit)))
6925 (file-name (git-file-name name version))
6926 (sha256
6927 (base32
6928 "0dz0r73pq7yhz2iq2jnkq977awx2zws2qfxdcy33329sys1ii32p"))))
6929 (build-system asdf-build-system/sbcl)
6930 (inputs
6931 `(("alexandria" ,sbcl-alexandria)
6932 ("cffi" ,sbcl-cffi)
6933 ("iterate" ,sbcl-iterate)
6934 ("trivial-garbage" ,sbcl-trivial-garbage)
6935 ("glib" ,glib)
6936 ("gobject-introspection" ,gobject-introspection)))
6937 (native-inputs
6938 `(("fiveam" ,sbcl-fiveam)))
6939 (arguments
6940 '(#:phases
6941 (modify-phases %standard-phases
6942 (add-after 'unpack 'fix-paths
6943 (lambda* (#:key inputs #:allow-other-keys)
6944 (substitute* "src/init.lisp"
6945 (("libgobject-2\\.0\\.so")
6946 (string-append (assoc-ref inputs "glib") "/lib/libgobject-2.0.so"))
6947 (("libgirepository-1\\.0\\.so")
6948 (string-append (assoc-ref inputs "gobject-introspection")
6949 "/lib/libgirepository-1.0.so")))
6950 #t)))))
6951 (synopsis "Common Lisp bindings to GObject Introspection")
6952 (description
6953 "This library is a bridge between Common Lisp and GObject
6954 Introspection, which enables Common Lisp programs to access the full interface
6955 of C+GObject libraries without the need of writing dedicated bindings.")
6956 (license (list license:bsd-3
6957 ;; Tests are under a different license.
6958 license:llgpl)))))
6959
6960 (define-public cl-gobject-introspection
6961 (sbcl-package->cl-source-package sbcl-cl-gobject-introspection))
6962
6963 (define-public ecl-cl-gobject-introspection
6964 (sbcl-package->ecl-package sbcl-cl-gobject-introspection))
6965
6966 (define-public sbcl-cl-slug
6967 (let ((commit "ffb229d10f0d3f7f54e706791725225e200bf749")
6968 (revision "1"))
6969 (package
6970 (name "sbcl-cl-slug")
6971 (version (git-version "0.4.1" revision commit))
6972 (source
6973 (origin
6974 (method git-fetch)
6975 (uri (git-reference
6976 (url "https://github.com/EuAndreh/cl-slug")
6977 (commit commit)))
6978 (file-name (git-file-name "cl-slug" version))
6979 (sha256
6980 (base32 "1asdq6xllmsvfw5fky9wblqcx9isac9jrrlkfl7vyxcq1wxrnflx"))))
6981 (build-system asdf-build-system/sbcl)
6982 (arguments
6983 `(#:asd-files '("cl-slug-test.asd" "cl-slug.asd")
6984 #:asd-systems '("cl-slug-test" "cl-slug")))
6985 (native-inputs
6986 `(("prove" ,sbcl-prove)))
6987 (inputs
6988 `(("ppcre" ,sbcl-cl-ppcre)))
6989 (home-page "https://github.com/EuAndreh/cl-slug")
6990 (synopsis "Multi-language slug formater")
6991 (description
6992 "This is a small Common Lisp library to make slugs, mainly for URIs,
6993 from english and beyond.")
6994 (license license:llgpl))))
6995
6996 (define-public ecl-cl-slug
6997 (sbcl-package->ecl-package sbcl-cl-slug))
6998
6999 (define-public cl-slug
7000 (sbcl-package->cl-source-package sbcl-cl-slug))
7001
7002 (define-public sbcl-string-case
7003 (let ((commit "718c761e33749e297cd2809c7ba3ade1985c49f7")
7004 (revision "0"))
7005 (package
7006 (name "sbcl-string-case")
7007 (version (git-version "0.0.2" revision commit))
7008 (home-page "https://github.com/pkhuong/string-case")
7009 (source
7010 (origin
7011 (method git-fetch)
7012 (uri (git-reference
7013 (url home-page)
7014 (commit commit)))
7015 (file-name (git-file-name name version))
7016 (sha256
7017 (base32
7018 "1n5i3yh0h5s636rcnwn7jwqy3rjflikra04lymimhpcshhjsk0md"))))
7019 (build-system asdf-build-system/sbcl)
7020 (synopsis "Efficient string= case in Common Lisp")
7021 (description
7022 "@code{string-case} is a Common Lisp macro that generates specialised decision
7023 trees to dispatch on string equality.")
7024 (license license:bsd-3))))
7025
7026 (define-public cl-string-case
7027 (sbcl-package->cl-source-package sbcl-string-case))
7028
7029 (define-public ecl-string-case
7030 (sbcl-package->ecl-package sbcl-string-case))
7031
7032 (define-public sbcl-garbage-pools
7033 (let ((commit "9a7cb7f48b04197c0495df3b6d2e8395ad13f790")
7034 (revision "1"))
7035 (package
7036 (name "sbcl-garbage-pools")
7037 (version (git-version "0.1.2" revision commit))
7038 (source
7039 (origin
7040 (method git-fetch)
7041 (uri (git-reference
7042 (url "https://github.com/archimag/garbage-pools")
7043 (commit commit)))
7044 (file-name (git-file-name name version))
7045 (sha256
7046 (base32 "04jqwr6j138him6wc4nrwjzm4lvyj5j31xqab02nkf8h9hmsf5v1"))))
7047 (build-system asdf-build-system/sbcl)
7048 (home-page "https://github.com/archimag/garbage-pools")
7049 (synopsis "Resource management pools for Common Lisp")
7050 (description "GARBAGE-POOLS is Common Lisp re-implementation of the APR
7051 Pools for resource management.")
7052 (license license:expat))))
7053
7054 (define-public ecl-garbage-pools
7055 (sbcl-package->ecl-package sbcl-garbage-pools))
7056
7057 (define-public cl-garbage-pools
7058 (sbcl-package->cl-source-package sbcl-garbage-pools))
7059
7060 (define-public sbcl-global-vars
7061 (let ((commit "c749f32c9b606a1457daa47d59630708ac0c266e")
7062 (revision "0"))
7063 (package
7064 (name "sbcl-global-vars")
7065 (version (git-version "1.0.0" revision commit))
7066 (home-page "https://github.com/lmj/global-vars")
7067 (source
7068 (origin
7069 (method git-fetch)
7070 (uri (git-reference
7071 (url home-page)
7072 (commit commit)))
7073 (file-name (git-file-name name version))
7074 (sha256
7075 (base32
7076 "06m3xc8l3pgsapl8fvsi9wf6y46zs75cp9zn7zh6dc65v4s5wz3d"))))
7077 (build-system asdf-build-system/sbcl)
7078 (synopsis "Efficient global variables in Common Lisp")
7079 (description
7080 "In Common Lisp, a special variable that is never dynamically bound
7081 typically serves as a stand-in for a global variable. The @code{global-vars}
7082 library provides true global variables that are implemented by some compilers.
7083 An attempt to rebind a global variable properly results in a compiler error.
7084 That is, a global variable cannot be dynamically bound.
7085
7086 Global variables therefore allow us to communicate an intended usage that
7087 differs from special variables. Global variables are also more efficient than
7088 special variables, especially in the presence of threads.")
7089 (license license:expat))))
7090
7091 (define-public cl-global-vars
7092 (sbcl-package->cl-source-package sbcl-global-vars))
7093
7094 (define-public ecl-global-vars
7095 (sbcl-package->ecl-package sbcl-global-vars))
7096
7097 (define-public sbcl-trivial-file-size
7098 (let ((commit "1c1d672a01a446ba0391dbb4ffc40be3b0476f23")
7099 (revision "0"))
7100 (package
7101 (name "sbcl-trivial-file-size")
7102 (version (git-version "0.0.0" revision commit))
7103 (home-page "https://github.com/ruricolist/trivial-file-size")
7104 (source
7105 (origin
7106 (method git-fetch)
7107 (uri (git-reference
7108 (url home-page)
7109 (commit commit)))
7110 (file-name (git-file-name name version))
7111 (sha256
7112 (base32
7113 "17pp86c9zs4y7i1sh7q9gbfw9iqv6655k7fz8qbj9ly1ypgxp4qs"))))
7114 (build-system asdf-build-system/sbcl)
7115 (native-inputs
7116 `(("fiveam" ,sbcl-fiveam)))
7117 (synopsis "Size of a file in bytes in Common Lisp")
7118 (description
7119 "The canonical way to determine the size of a file in bytes, using Common Lisp,
7120 is to open the file with an element type of (unsigned-byte 8) and then
7121 calculate the length of the stream. This is less than ideal. In most cases
7122 it is better to get the size of the file from its metadata, using a system
7123 call.
7124
7125 This library exports a single function, file-size-in-octets. It returns the
7126 size of a file in bytes, using system calls when possible.")
7127 (license license:expat))))
7128
7129 (define-public cl-trivial-file-size
7130 (sbcl-package->cl-source-package sbcl-trivial-file-size))
7131
7132 (define-public ecl-trivial-file-size
7133 (sbcl-package->ecl-package sbcl-trivial-file-size))
7134
7135 (define-public sbcl-trivial-macroexpand-all
7136 (let ((commit "933270ac7107477de1bc92c1fd641fe646a7a8a9")
7137 (revision "0"))
7138 (package
7139 (name "sbcl-trivial-macroexpand-all")
7140 (version (git-version "0.0.0" revision commit))
7141 (home-page "https://github.com/cbaggers/trivial-macroexpand-all")
7142 (source
7143 (origin
7144 (method git-fetch)
7145 (uri (git-reference
7146 (url home-page)
7147 (commit commit)))
7148 (file-name (git-file-name name version))
7149 (sha256
7150 (base32
7151 "191hnn4b5j4i3crydmlzbm231kj0h7l8zj6mzj69r1npbzkas4bd"))))
7152 (build-system asdf-build-system/sbcl)
7153 (native-inputs
7154 `(("fiveam" ,sbcl-fiveam)))
7155 (synopsis "Portable macroexpand-all for Common Lisp")
7156 (description
7157 "This library provides a macroexpand-all function that calls the
7158 implementation specific equivalent.")
7159 (license license:unlicense))))
7160
7161 (define-public cl-trivial-macroexpand-all
7162 (sbcl-package->cl-source-package sbcl-trivial-macroexpand-all))
7163
7164 (define-public ecl-trivial-macroexpand-all
7165 (sbcl-package->ecl-package sbcl-trivial-macroexpand-all))
7166
7167 (define-public sbcl-serapeum
7168 (let ((commit "263f415a350736b44e3878524ff3997e656fca32")
7169 (revision "4"))
7170 (package
7171 (name "sbcl-serapeum")
7172 (version (git-version "0.0.0" revision commit))
7173 (home-page "https://github.com/ruricolist/serapeum")
7174 (source
7175 (origin
7176 (method git-fetch)
7177 (uri (git-reference
7178 (url home-page)
7179 (commit commit)))
7180 (file-name (git-file-name name version))
7181 (sha256
7182 (base32
7183 "1669yidvxq41s3g6hb2jk21bcb5s2bnfsacpyd5b0hdxbmc7knq3"))))
7184 (build-system asdf-build-system/sbcl)
7185 (inputs
7186 `(("alexandria" ,sbcl-alexandria)
7187 ("trivia" ,sbcl-trivia)
7188 ("split-sequence" ,sbcl-split-sequence)
7189 ("string-case" ,sbcl-string-case)
7190 ("parse-number" ,sbcl-parse-number)
7191 ("trivial-garbage" ,sbcl-trivial-garbage)
7192 ("bordeaux-threads" ,sbcl-bordeaux-threads)
7193 ("named-readtables" ,sbcl-named-readtables)
7194 ("fare-quasiquote" ,sbcl-fare-quasiquote)
7195 ("parse-declarations-1.0" ,sbcl-parse-declarations)
7196 ("global-vars" ,sbcl-global-vars)
7197 ("trivial-file-size" ,sbcl-trivial-file-size)
7198 ("trivial-macroexpand-all" ,sbcl-trivial-macroexpand-all)))
7199 (native-inputs
7200 `(("fiveam" ,sbcl-fiveam)
7201 ("local-time" ,sbcl-local-time)))
7202 (arguments
7203 '(#:phases
7204 (modify-phases %standard-phases
7205 (add-after 'unpack 'disable-failing-tests
7206 (lambda* (#:key inputs #:allow-other-keys)
7207 (substitute* "serapeum.asd"
7208 ;; Guix does not have Quicklisp, and probably never will.
7209 (("\\(:file \"quicklisp\"\\)") ""))
7210 #t)))))
7211 (synopsis "Common Lisp utility library beyond Alexandria")
7212 (description
7213 "Serapeum is a conservative library of Common Lisp utilities. It is a
7214 supplement, not a competitor, to Alexandria.")
7215 (license license:expat))))
7216
7217 (define-public cl-serapeum
7218 (sbcl-package->cl-source-package sbcl-serapeum))
7219
7220 (define-public ecl-serapeum
7221 (sbcl-package->ecl-package sbcl-serapeum))
7222
7223 (define-public sbcl-arrows
7224 (let ((commit "df7cf0067e0132d9697ac8b1a4f1b9c88d4f5382")
7225 (revision "0"))
7226 (package
7227 (name "sbcl-arrows")
7228 (version (git-version "0.2.0" revision commit))
7229 (source
7230 (origin
7231 (method git-fetch)
7232 (uri (git-reference
7233 (url "https://gitlab.com/Harleqin/arrows.git")
7234 (commit commit)))
7235 (file-name (git-file-name name version))
7236 (sha256
7237 (base32
7238 "042k9vkssrqx9nhp14wdzm942zgdxvp35mba0p2syz98i75im2yy"))))
7239 (build-system asdf-build-system/sbcl)
7240 (native-inputs
7241 `(("hu.dwim.stefil" ,sbcl-hu.dwim.stefil)))
7242 (synopsis "Clojure-like arrow macros for Common Lisp")
7243 (description
7244 "This library implements the @code{->} and @code{->>} macros from
7245 Clojure, as well as several expansions on the idea.")
7246 (home-page "https://gitlab.com/Harleqin/arrows")
7247 (license license:public-domain))))
7248
7249 (define-public cl-arrows
7250 (sbcl-package->cl-source-package sbcl-arrows))
7251
7252 (define-public ecl-arrows
7253 (sbcl-package->ecl-package sbcl-arrows))
7254
7255 (define-public sbcl-simple-parallel-tasks
7256 (let ((commit "ce7b60f788d8f68dfb69b24aac54c0e3b63379a6")
7257 (revision "1"))
7258 (package
7259 (name "sbcl-simple-parallel-tasks")
7260 (version (git-version "1.0" revision commit))
7261 (source
7262 (origin
7263 (method git-fetch)
7264 (uri (git-reference
7265 (url "https://github.com/glv2/simple-parallel-tasks")
7266 (commit commit)))
7267 (file-name (git-file-name name version))
7268 (sha256
7269 (base32 "0gvbpyff4siifp3cp86cpr9ksmakn66fx21f3h0hpn647zl07nj7"))))
7270 (build-system asdf-build-system/sbcl)
7271 (native-inputs
7272 `(("fiveam" ,sbcl-fiveam)))
7273 (inputs
7274 `(("chanl" ,sbcl-chanl)))
7275 (synopsis "Common Lisp library to evaluate some forms in parallel")
7276 (description "This is a simple Common Lisp library to evaluate some
7277 forms in parallel.")
7278 (home-page "https://github.com/glv2/simple-parallel-tasks")
7279 (license license:gpl3))))
7280
7281 (define-public cl-simple-parallel-tasks
7282 (sbcl-package->cl-source-package sbcl-simple-parallel-tasks))
7283
7284 (define-public ecl-simple-parallel-tasks
7285 (sbcl-package->ecl-package sbcl-simple-parallel-tasks))
7286
7287 (define-public sbcl-cl-heap
7288 (package
7289 (name "sbcl-cl-heap")
7290 (version "0.1.6")
7291 (source
7292 (origin
7293 (method url-fetch)
7294 (uri (string-append "https://common-lisp.net/project/cl-heap/releases/"
7295 "cl-heap_" version ".tar.gz"))
7296 (sha256
7297 (base32
7298 "163hb07p2nxz126rpq3cj5dyala24n0by5i5786n2qcr1w0bak4i"))))
7299 (build-system asdf-build-system/sbcl)
7300 (native-inputs
7301 `(("xlunit" ,sbcl-xlunit)))
7302 (arguments
7303 `(#:test-asd-file "cl-heap-tests.asd"))
7304 (synopsis "Heap and priority queue data structures for Common Lisp")
7305 (description
7306 "CL-HEAP provides various implementations of heap data structures (a
7307 binary heap and a Fibonacci heap) as well as an efficient priority queue.")
7308 (home-page "https://common-lisp.net/project/cl-heap/")
7309 (license license:gpl3+)))
7310
7311 (define-public cl-heap
7312 (sbcl-package->cl-source-package sbcl-cl-heap))
7313
7314 (define-public ecl-cl-heap
7315 (sbcl-package->ecl-package sbcl-cl-heap))
7316
7317 (define-public sbcl-curry-compose-reader-macros
7318 (let ((commit "beaa92dedf392726c042184bfd6149fa8d9e6ac2")
7319 (revision "0"))
7320 (package
7321 (name "sbcl-curry-compose-reader-macros")
7322 (version (git-version "1.0.0" revision commit))
7323 (source
7324 (origin
7325 (method git-fetch)
7326 (uri
7327 (git-reference
7328 (url "https://github.com/eschulte/curry-compose-reader-macros")
7329 (commit commit)))
7330 (file-name (git-file-name name version))
7331 (sha256
7332 (base32
7333 "0rv9bl8xrad5wfcg5zs1dazvnpmvqz6297lbn8bywsrcfnlf7h98"))))
7334 (build-system asdf-build-system/sbcl)
7335 (inputs
7336 `(("alexandria" ,sbcl-alexandria)
7337 ("named-readtables" ,sbcl-named-readtables)))
7338 (synopsis "Reader macros for partial application and composition")
7339 (description
7340 "This Common Lisp library provides reader macros for concise expression
7341 of function partial application and composition.")
7342 (home-page "https://eschulte.github.io/curry-compose-reader-macros/")
7343 (license license:public-domain))))
7344
7345 (define-public cl-curry-compose-reader-macros
7346 (sbcl-package->cl-source-package sbcl-curry-compose-reader-macros))
7347
7348 (define-public ecl-curry-compose-reader-macros
7349 (sbcl-package->ecl-package sbcl-curry-compose-reader-macros))
7350
7351 (define-public sbcl-yason
7352 (package
7353 (name "sbcl-yason")
7354 (version "0.7.7")
7355 (source
7356 (origin
7357 (method git-fetch)
7358 (uri (git-reference
7359 (url "https://github.com/phmarek/yason")
7360 (commit (string-append "v" version))))
7361 (file-name (git-file-name name version))
7362 (sha256
7363 (base32
7364 "0479rbjgbj80jpk5bby18inlv1kfp771a82rlcq5psrz65qqa9bj"))))
7365 (build-system asdf-build-system/sbcl)
7366 (inputs
7367 `(("alexandria" ,sbcl-alexandria)
7368 ("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
7369 (synopsis "Common Lisp JSON parser/encoder")
7370 (description
7371 "YASON is a Common Lisp library for encoding and decoding data in the
7372 JSON interchange format.")
7373 (home-page "https://github.com/phmarek/yason")
7374 (license license:bsd-3)))
7375
7376 (define-public cl-yason
7377 (sbcl-package->cl-source-package sbcl-yason))
7378
7379 (define-public ecl-yason
7380 (sbcl-package->ecl-package sbcl-yason))
7381
7382 (define-public sbcl-stefil
7383 (let ((commit "0398548ec95dceb50fc2c2c03e5fb0ce49b86c7a")
7384 (revision "0"))
7385 (package
7386 (name "sbcl-stefil")
7387 (version (git-version "0.1" revision commit))
7388 (source
7389 (origin
7390 (method git-fetch)
7391 (uri (git-reference
7392 (url "https://gitlab.common-lisp.net/stefil/stefil.git")
7393 (commit commit)))
7394 (file-name (git-file-name name version))
7395 (sha256
7396 (base32
7397 "0bqz64q2szzhf91zyqyssmvrz7da6442rs01808pf3wrdq28bclh"))))
7398 (build-system asdf-build-system/sbcl)
7399 (inputs
7400 `(("alexandria" ,sbcl-alexandria)
7401 ("iterate" ,sbcl-iterate)
7402 ("metabang-bind" ,sbcl-metabang-bind)
7403 ("swank" ,sbcl-slime-swank)))
7404 (arguments
7405 '(#:phases
7406 (modify-phases %standard-phases
7407 (add-after 'unpack 'drop-unnecessary-dependency
7408 (lambda _
7409 (substitute* "package.lisp"
7410 ((":stefil-system") ""))
7411 #t)))))
7412 (home-page "https://common-lisp.net/project/stefil/index-old.shtml")
7413 (synopsis "Simple test framework")
7414 (description
7415 "Stefil is a simple test framework for Common Lisp, with a focus on
7416 interactive development.")
7417 (license license:public-domain))))
7418
7419 (define-public cl-stefil
7420 (sbcl-package->cl-source-package sbcl-stefil))
7421
7422 (define-public ecl-stefil
7423 (sbcl-package->ecl-package sbcl-stefil))
7424
7425 (define-public sbcl-graph
7426 (let ((commit "78bf9ec930d8eae4f0861b5be76765fb1e45e24f")
7427 (revision "0"))
7428 (package
7429 (name "sbcl-graph")
7430 (version (git-version "0.0.0" revision commit))
7431 (source
7432 (origin
7433 (method git-fetch)
7434 (uri
7435 (git-reference
7436 (url "https://github.com/eschulte/graph")
7437 (commit commit)))
7438 (file-name (git-file-name name version))
7439 (sha256
7440 (base32
7441 "1qpij4xh8bqwc2myahpilcbh916v7vg0acz2fij14d3y0jm02h0g"))))
7442 (build-system asdf-build-system/sbcl)
7443 (native-inputs
7444 `(("stefil" ,sbcl-stefil)))
7445 (inputs
7446 `(("alexandria" ,sbcl-alexandria)
7447 ("cl-heap" ,sbcl-cl-heap)
7448 ("cl-ppcre" ,sbcl-cl-ppcre)
7449 ("curry-compose-reader-macros" ,sbcl-curry-compose-reader-macros)
7450 ("metabang-bind" ,sbcl-metabang-bind)
7451 ("named-readtables" ,sbcl-named-readtables)
7452 ("yason" ,sbcl-yason)))
7453 (arguments
7454 '(#:asd-systems '("graph"
7455 "graph/dot"
7456 "graph/json")))
7457 (synopsis "Graph data structure and algorithms for Common Lisp")
7458 (description
7459 "The GRAPH Common Lisp library provides a data structures to represent
7460 graphs, as well as some graph manipulation and analysis algorithms (shortest
7461 path, maximum flow, minimum spanning tree, etc.).")
7462 (home-page "https://eschulte.github.io/graph/")
7463 (license license:gpl3+))))
7464
7465 (define-public cl-graph
7466 (sbcl-package->cl-source-package sbcl-graph))
7467
7468 (define-public ecl-graph
7469 (sbcl-package->ecl-package sbcl-graph))
7470
7471 (define-public sbcl-trivial-indent
7472 (let ((commit "2d016941751647c6cc5bd471751c2cf68861c94a")
7473 (revision "0"))
7474 (package
7475 (name "sbcl-trivial-indent")
7476 (version (git-version "1.0.0" revision commit))
7477 (source
7478 (origin
7479 (method git-fetch)
7480 (uri
7481 (git-reference
7482 (url "https://github.com/Shinmera/trivial-indent")
7483 (commit commit)))
7484 (file-name (git-file-name name version))
7485 (sha256
7486 (base32
7487 "1sj90nqz17w4jq0ixz00gb9g5g6d2s7l8r17zdby27gxxh51w266"))))
7488 (build-system asdf-build-system/sbcl)
7489 (synopsis "Simple Common Lisp library to allow indentation hints for SWANK")
7490 (description
7491 "This library allows you to define custom indentation hints for your
7492 macros if the one recognised by SLIME automatically produces unwanted
7493 results.")
7494 (home-page "https://shinmera.github.io/trivial-indent/")
7495 (license license:zlib))))
7496
7497 (define-public cl-trivial-indent
7498 (sbcl-package->cl-source-package sbcl-trivial-indent))
7499
7500 (define-public ecl-trivial-indent
7501 (sbcl-package->ecl-package sbcl-trivial-indent))
7502
7503 (define-public sbcl-documentation-utils
7504 (let ((commit "98630dd5f7e36ae057fa09da3523f42ccb5d1f55")
7505 (revision "0"))
7506 (package
7507 (name "sbcl-documentation-utils")
7508 (version (git-version "1.2.0" revision commit))
7509 (source
7510 (origin
7511 (method git-fetch)
7512 (uri
7513 (git-reference
7514 (url "https://github.com/Shinmera/documentation-utils")
7515 (commit commit)))
7516 (file-name (git-file-name name version))
7517 (sha256
7518 (base32
7519 "098qhkqskmmrh4wix34mawf7p5c87yql28r51r75yjxj577k5idq"))))
7520 (build-system asdf-build-system/sbcl)
7521 (inputs
7522 `(("trivial-indent" ,sbcl-trivial-indent)))
7523 (synopsis "Few simple tools to document Common Lisp libraries")
7524 (description
7525 "This is a small library to help you with managing the Common Lisp
7526 docstrings for your library.")
7527 (home-page "https://shinmera.github.io/documentation-utils/")
7528 (license license:zlib))))
7529
7530 (define-public cl-documentation-utils
7531 (sbcl-package->cl-source-package sbcl-documentation-utils))
7532
7533 (define-public ecl-documentation-utils
7534 (sbcl-package->ecl-package sbcl-documentation-utils))
7535
7536 (define-public sbcl-documentation-utils-extensions
7537 (let ((commit "f67f8a05d583174662a594b79356b201c1d9d750"))
7538 (package
7539 (name "sbcl-documentation-utils-extensions")
7540 (version (git-version "0.0.0" "1" commit))
7541 (source
7542 (origin
7543 (method git-fetch)
7544 (uri
7545 (git-reference
7546 (url "https://github.com/sirherrbatka/documentation-utils-extensions/")
7547 (commit commit)))
7548 (file-name (git-file-name name version))
7549 (sha256
7550 (base32
7551 "0pn45c9rbxlnhn5nvhqz6kyv0nlirwxpg4j27niwdq80yxzsn51f"))))
7552 (build-system asdf-build-system/sbcl)
7553 (inputs
7554 `(("documentation-utils" ,sbcl-documentation-utils)))
7555 (home-page "https://github.com/sirherrbatka/documentation-utils-extensions")
7556 (synopsis "Set of extensions for documentation-utils")
7557 (description
7558 "Use @code{rich-formatter} to format documentation with sections @code{:syntax},
7559 @code{:arguments}, @code{:examples}, @code{:description}, @code{:returns},
7560 @code{:side-effects}, @code{:thread-safety}, @code{:affected-by},
7561 @code{:see-also} and @code{:notes}. Gather unformatted input by using
7562 @code{rich-aggregating-formatter} and @code{*DOCUMENTATION*} variable. Find
7563 gathered documentation with find-documentation function. Execute code stored
7564 in documentation with @code{execute-documentation}. See the examples in the
7565 @code{src/documentation.lisp} file. See the @code{documentation-utils} system
7566 for more information.")
7567 (license license:expat))))
7568
7569 (define-public cl-documentation-utils-extensions
7570 (sbcl-package->cl-source-package sbcl-documentation-utils-extensions))
7571
7572 (define-public ecl-documentation-utils-extensions
7573 (sbcl-package->ecl-package sbcl-documentation-utils-extensions))
7574
7575 (define-public sbcl-form-fiddle
7576 (let ((commit "e0c23599dbb8cff3e83e012f3d86d0764188ad18")
7577 (revision "0"))
7578 (package
7579 (name "sbcl-form-fiddle")
7580 (version (git-version "1.1.0" revision commit))
7581 (source
7582 (origin
7583 (method git-fetch)
7584 (uri
7585 (git-reference
7586 (url "https://github.com/Shinmera/form-fiddle")
7587 (commit commit)))
7588 (file-name (git-file-name name version))
7589 (sha256
7590 (base32
7591 "041iznc9mpfyrl0sv5893ys9pbb2pvbn9g3clarqi7gsfj483jln"))))
7592 (build-system asdf-build-system/sbcl)
7593 (inputs
7594 `(("documentation-utils" ,sbcl-documentation-utils)))
7595 (synopsis "Utilities to destructure Common Lisp lambda forms")
7596 (description
7597 "Often times we need to destructure a form definition in a Common Lisp
7598 macro. This library provides a set of simple utilities to help with that.")
7599 (home-page "https://shinmera.github.io/form-fiddle/")
7600 (license license:zlib))))
7601
7602 (define-public cl-form-fiddle
7603 (sbcl-package->cl-source-package sbcl-form-fiddle))
7604
7605 (define-public ecl-form-fiddle
7606 (sbcl-package->ecl-package sbcl-form-fiddle))
7607
7608 (define-public sbcl-parachute
7609 (let ((commit "ca04dd8e43010a6dfffa26dbe1d62af86008d666")
7610 (revision "0"))
7611 (package
7612 (name "sbcl-parachute")
7613 (version (git-version "1.1.1" revision commit))
7614 (source
7615 (origin
7616 (method git-fetch)
7617 (uri
7618 (git-reference
7619 (url "https://github.com/Shinmera/parachute")
7620 (commit commit)))
7621 (file-name (git-file-name name version))
7622 (sha256
7623 (base32
7624 "1mvsm3r0r6a2bg75nw0q7n9vlby3ch45qjl7hnb5k1z2n5x5lh60"))))
7625 (build-system asdf-build-system/sbcl)
7626 (inputs
7627 `(("documentation-utils" ,sbcl-documentation-utils)
7628 ("form-fiddle" ,sbcl-form-fiddle)))
7629 (synopsis "Extensible and cross-compatible testing framework for Common Lisp")
7630 (description
7631 "Parachute is a simple-to-use and extensible testing framework.
7632 In Parachute, things are organised as a bunch of named tests within a package.
7633 Each test can contain a bunch of test forms that make up its body.")
7634 (home-page "https://shinmera.github.io/parachute/")
7635 (license license:zlib))))
7636
7637 (define-public cl-parachute
7638 (sbcl-package->cl-source-package sbcl-parachute))
7639
7640 (define-public ecl-parachute
7641 (sbcl-package->ecl-package sbcl-parachute))
7642
7643 (define-public sbcl-array-utils
7644 (let ((commit "f90eb9070d0b2205af51126a35033574725e5c56")
7645 (revision "0"))
7646 (package
7647 (name "sbcl-array-utils")
7648 (version (git-version "1.1.1" revision commit))
7649 (source
7650 (origin
7651 (method git-fetch)
7652 (uri
7653 (git-reference
7654 (url "https://github.com/Shinmera/array-utils")
7655 (commit commit)))
7656 (file-name (git-file-name name version))
7657 (sha256
7658 (base32
7659 "0zhwfbpr53vs1ii4sx75dz2k9yhh1xpwdqqpg8nmfndxkmhpbi3x"))))
7660 (build-system asdf-build-system/sbcl)
7661 (native-inputs
7662 `(("parachute" ,sbcl-parachute)))
7663 (inputs
7664 `(("documentation-utils" ,sbcl-documentation-utils)))
7665 (synopsis "Tiny collection of array and vector utilities for Common Lisp")
7666 (description
7667 "A miniature toolkit that contains some useful shifting/popping/pushing
7668 functions for arrays and vectors. Originally from Plump.")
7669 (home-page "https://shinmera.github.io/array-utils/")
7670 (license license:zlib))))
7671
7672 (define-public cl-array-utils
7673 (sbcl-package->cl-source-package sbcl-array-utils))
7674
7675 (define-public ecl-array-utils
7676 (sbcl-package->ecl-package sbcl-array-utils))
7677
7678 (define-public sbcl-plump
7679 (let ((commit "34f890fe46efdebe7bb70d218f1937e98f632bf9")
7680 (revision "1"))
7681 (package
7682 (name "sbcl-plump")
7683 (version (git-version "2.0.0" revision commit))
7684 (source
7685 (origin
7686 (method git-fetch)
7687 (uri
7688 (git-reference
7689 (url "https://github.com/Shinmera/plump")
7690 (commit commit)))
7691 (file-name (git-file-name name version))
7692 (sha256
7693 (base32
7694 "0a0x8wn6vv1ylxcwck12k18gy0a366kdm6ddxxk7yynl4mwnqgkh"))))
7695 (build-system asdf-build-system/sbcl)
7696 (inputs
7697 `(("array-utils" ,sbcl-array-utils)
7698 ("documentation-utils" ,sbcl-documentation-utils)))
7699 (synopsis "Lenient XML / XHTML / HTML parser for Common Lisp")
7700 (description
7701 "Plump is a parser for HTML/XML-like documents, focusing on being
7702 lenient towards invalid markup. It can handle things like invalid attributes,
7703 bad closing tag order, unencoded entities, inexistent tag types, self-closing
7704 tags and so on. It parses documents to a class representation and offers a
7705 small set of DOM functions to manipulate it. It can be extended to parse to
7706 your own classes.")
7707 (home-page "https://shinmera.github.io/plump/")
7708 (license license:zlib))))
7709
7710 (define-public cl-plump
7711 (sbcl-package->cl-source-package sbcl-plump))
7712
7713 (define-public ecl-plump
7714 (sbcl-package->ecl-package sbcl-plump))
7715
7716 ;;; Split the antik package in two to work around the circular dependency
7717 ;;; between antik/antik and antik/gsll.
7718 (define-public sbcl-antik-base
7719 (let ((commit "e4711a69b3d6bf37b5727af05c3cfd03e8428ba3")
7720 (revision "1"))
7721 (package
7722 (name "sbcl-antik-base")
7723 (version (git-version "0.0.0" revision commit))
7724 (source
7725 (origin
7726 (method git-fetch)
7727 (uri (git-reference
7728 (url "https://gitlab.common-lisp.net/antik/antik.git")
7729 (commit commit)))
7730 (file-name (git-file-name name version))
7731 (sha256
7732 (base32
7733 "047ga2c38par2xbgg4qx6hwv06qhf1c1f67as8xvir6s80lip1km"))))
7734 (build-system asdf-build-system/sbcl)
7735 (inputs
7736 `(("alexandria" ,sbcl-alexandria)
7737 ("cffi" ,sbcl-cffi)
7738 ("cl-ppcre" ,sbcl-cl-ppcre)
7739 ("drakma" ,sbcl-drakma)
7740 ("fare-utils" ,sbcl-fare-utils)
7741 ("iterate" ,sbcl-iterate)
7742 ("metabang-bind" ,sbcl-metabang-bind)
7743 ("named-readtables" ,sbcl-named-readtables)
7744 ("split-sequence" ,sbcl-split-sequence)
7745 ("static-vectors" ,sbcl-static-vectors)
7746 ("trivial-garbage" ,sbcl-trivial-garbage)
7747 ("trivial-utf-8" ,sbcl-trivial-utf-8)))
7748 (native-inputs
7749 `(("lisp-unit" ,sbcl-lisp-unit)))
7750 (arguments
7751 '(#:asd-systems '("antik-base"
7752 "foreign-array")
7753 #:phases
7754 (modify-phases %standard-phases
7755 (add-after 'unpack 'fix-build
7756 (lambda _
7757 (for-each delete-file
7758 '("antik.asd"
7759 "physical-dimension.asd"
7760 "science-data.asd"))
7761 #t)))))
7762 (synopsis "Scientific and engineering computation in Common Lisp")
7763 (description
7764 "Antik provides a foundation for scientific and engineering
7765 computation in Common Lisp. It is designed not only to facilitate
7766 numerical computations, but to permit the use of numerical computation
7767 libraries and the interchange of data and procedures, whether
7768 foreign (non-Lisp) or Lisp libraries. It is named after the
7769 Antikythera mechanism, one of the oldest examples of a scientific
7770 computer known.")
7771 (home-page "https://common-lisp.net/project/antik/")
7772 (license license:gpl3))))
7773
7774 (define-public cl-antik-base
7775 (sbcl-package->cl-source-package sbcl-antik-base))
7776
7777 (define-public ecl-antik-base
7778 (let ((pkg (sbcl-package->ecl-package sbcl-antik-base)))
7779 (package
7780 (inherit pkg)
7781 (arguments
7782 (substitute-keyword-arguments (package-arguments pkg)
7783 ((#:phases phases)
7784 `(modify-phases ,phases
7785 (add-after 'unpack 'fix-readtable
7786 (lambda _
7787 (substitute* "input-output/readtable.lisp"
7788 (("#-ccl")
7789 "#-(or ccl ecl)"))
7790 #t)))))))))
7791
7792 (define-public sbcl-gsll
7793 (let ((commit "1a8ada22f9cf5ed7372d352b2317f4ccdb6ab308")
7794 (revision "1"))
7795 (package
7796 (name "sbcl-gsll")
7797 (version (git-version "0.0.0" revision commit))
7798 (source
7799 (origin
7800 (method git-fetch)
7801 (uri (git-reference
7802 (url "https://gitlab.common-lisp.net/antik/gsll.git")
7803 (commit commit)))
7804 (file-name (git-file-name name version))
7805 (sha256
7806 (base32
7807 "0z5nypfk26hxihb08p085644afawicrgb4xvadh3lmrn46qbjfn4"))))
7808 (build-system asdf-build-system/sbcl)
7809 (native-inputs
7810 `(("lisp-unit" ,sbcl-lisp-unit)))
7811 (inputs
7812 `(("alexandria" ,sbcl-alexandria)
7813 ("antik-base" ,sbcl-antik-base)
7814 ("cffi" ,sbcl-cffi)
7815 ("gsl" ,gsl)
7816 ("metabang-bind" ,sbcl-metabang-bind)
7817 ("trivial-features" ,sbcl-trivial-features)
7818 ("trivial-garbage" ,sbcl-trivial-garbage)))
7819 (arguments
7820 `(#:tests? #f
7821 #:phases
7822 (modify-phases %standard-phases
7823 (add-after 'unpack 'fix-cffi-paths
7824 (lambda* (#:key inputs #:allow-other-keys)
7825 (substitute* "gsll.asd"
7826 ((":depends-on \\(#:foreign-array")
7827 ":depends-on (#:foreign-array #:cffi-libffi"))
7828 (substitute* "init/init.lisp"
7829 (("libgslcblas.so" all)
7830 (string-append
7831 (assoc-ref inputs "gsl") "/lib/" all)))
7832 (substitute* "init/init.lisp"
7833 (("libgsl.so" all)
7834 (string-append
7835 (assoc-ref inputs "gsl") "/lib/" all))))))))
7836 (synopsis "GNU Scientific Library for Lisp")
7837 (description
7838 "The GNU Scientific Library for Lisp (GSLL) allows the use of the
7839 GNU Scientific Library (GSL) from Common Lisp. This library provides a
7840 full range of common mathematical operations useful to scientific and
7841 engineering applications. The design of the GSLL interface is such
7842 that access to most of the GSL library is possible in a Lisp-natural
7843 way; the intent is that the user not be hampered by the restrictions
7844 of the C language in which GSL has been written. GSLL thus provides
7845 interactive use of GSL for getting quick answers, even for someone not
7846 intending to program in Lisp.")
7847 (home-page "https://common-lisp.net/project/gsll/")
7848 (license license:gpl3))))
7849
7850 (define-public cl-gsll
7851 (sbcl-package->cl-source-package sbcl-gsll))
7852
7853 (define-public ecl-gsll
7854 (sbcl-package->ecl-package sbcl-gsll))
7855
7856 (define-public sbcl-antik
7857 (package
7858 (inherit sbcl-antik-base)
7859 (name "sbcl-antik")
7860 (inputs
7861 `(("antik-base" ,sbcl-antik-base)
7862 ("gsll" ,sbcl-gsll)))
7863 (arguments
7864 '(#:asd-systems '("antik"
7865 "science-data")
7866 #:phases
7867 (modify-phases %standard-phases
7868 (add-after 'unpack 'fix-build
7869 (lambda _
7870 (for-each delete-file
7871 '("antik-base.asd"
7872 "foreign-array.asd"))
7873 #t)))))))
7874
7875 (define-public cl-antik
7876 (sbcl-package->cl-source-package sbcl-antik))
7877
7878 (define-public sbcl-cl-interpol
7879 (let ((commit "1fd288d861db85bc4677cff3cdd6af75fda1afb4")
7880 (revision "1"))
7881 (package
7882 (name "sbcl-cl-interpol")
7883 (version (git-version "0.2.6" revision commit))
7884 (source
7885 (origin
7886 (method git-fetch)
7887 (uri (git-reference
7888 (url "https://github.com/edicl/cl-interpol")
7889 (commit commit)))
7890 (file-name (git-file-name name version))
7891 (sha256
7892 (base32
7893 "1hnikak52hmcq1r5f616m6qq1108qnkw80pja950nv1fq5p0ppjn"))))
7894 (build-system asdf-build-system/sbcl)
7895 (inputs
7896 `(("cl-unicode" ,sbcl-cl-unicode)
7897 ("named-readtables" ,sbcl-named-readtables)))
7898 (native-inputs
7899 `(("flexi-streams" ,sbcl-flexi-streams)))
7900 (synopsis "String interpolation for Common Lisp")
7901 (description
7902 "CL-INTERPOL is a library for Common Lisp which modifies the
7903 reader so that you can have interpolation within strings similar to
7904 Perl or Unix Shell scripts. It also provides various ways to insert
7905 arbitrary characters into literal strings even if your editor/IDE
7906 doesn't support them.")
7907 (home-page "https://edicl.github.io/cl-interpol/")
7908 (license license:bsd-3))))
7909
7910 (define-public cl-interpol
7911 (sbcl-package->cl-source-package sbcl-cl-interpol))
7912
7913 (define-public ecl-cl-interpol
7914 (sbcl-package->ecl-package sbcl-cl-interpol))
7915
7916 (define-public sbcl-symbol-munger
7917 (let ((commit "97598d4c3c53fd5da72ab78908fbd5d8c7a13416")
7918 (revision "1"))
7919 (package
7920 (name "sbcl-symbol-munger")
7921 (version (git-version "0.0.1" revision commit))
7922 (source
7923 (origin
7924 (method git-fetch)
7925 (uri (git-reference
7926 (url "https://github.com/AccelerationNet/symbol-munger")
7927 (commit commit)))
7928 (file-name (git-file-name name version))
7929 (sha256
7930 (base32
7931 "0y8jywjy0ldyhp7bxf16fdvdd2qgqnd7nlhlqfpfnzxcqk4xy1km"))))
7932 (build-system asdf-build-system/sbcl)
7933 (inputs
7934 `(("alexandria" ,sbcl-alexandria)
7935 ("iterate" ,sbcl-iterate)))
7936 (arguments
7937 ;; There is a cyclical dependency between symbol-munger and lisp-unit2.
7938 ;; See https://github.com/AccelerationNet/symbol-munger/issues/4
7939 '(#:tests? #f))
7940 (synopsis
7941 "Capitalization and spacing conversion functions for Common Lisp")
7942 (description
7943 "This is a Common Lisp library to change the capitalization and spacing
7944 of a string or a symbol. It can convert to and from Lisp, english, underscore
7945 and camel-case rules.")
7946 (home-page "https://github.com/AccelerationNet/symbol-munger")
7947 ;; The package declares a BSD license, but all of the license
7948 ;; text is MIT.
7949 ;; See https://github.com/AccelerationNet/symbol-munger/issues/5
7950 (license license:expat))))
7951
7952 (define-public cl-symbol-munger
7953 (sbcl-package->cl-source-package sbcl-symbol-munger))
7954
7955 (define-public ecl-symbol-munger
7956 (sbcl-package->ecl-package sbcl-symbol-munger))
7957
7958 (define-public sbcl-lisp-unit2
7959 ;; There is a cyclical dependency between symbol-munger and lisp-unit2.
7960 ;; See https://github.com/AccelerationNet/symbol-munger/issues/4
7961 (let ((commit "fb9721524d1e4e73abb223ee036d74ce14a5505c")
7962 (revision "1"))
7963 (package
7964 (name "sbcl-lisp-unit2")
7965 (version (git-version "0.2.0" revision commit))
7966 (source
7967 (origin
7968 (method git-fetch)
7969 (uri (git-reference
7970 (url "https://github.com/AccelerationNet/lisp-unit2")
7971 (commit commit)))
7972 (file-name (git-file-name name version))
7973 (sha256
7974 (base32
7975 "1rsqy8y0jqll6xn9a593848f5wvd5ribv4csry1ly0hmdhfnqzlp"))))
7976 (build-system asdf-build-system/sbcl)
7977 (inputs
7978 `(("alexandria" ,sbcl-alexandria)
7979 ("cl-interpol" ,sbcl-cl-interpol)
7980 ("iterate" ,sbcl-iterate)
7981 ("symbol-munger" ,sbcl-symbol-munger)))
7982 (synopsis "Test Framework for Common Lisp")
7983 (description
7984 "LISP-UNIT2 is a Common Lisp library that supports unit testing in the
7985 style of JUnit for Java. It is a new version of the lisp-unit library written
7986 by Chris Riesbeck.")
7987 (home-page "https://github.com/AccelerationNet/lisp-unit2")
7988 (license license:expat))))
7989
7990 (define-public cl-lisp-unit2
7991 (sbcl-package->cl-source-package sbcl-lisp-unit2))
7992
7993 (define-public ecl-lisp-unit2
7994 (sbcl-package->ecl-package sbcl-lisp-unit2))
7995
7996 (define-public sbcl-cl-csv
7997 (let ((commit "68ecb5d816545677513d7f6308d9e5e8d2265651")
7998 (revision "2"))
7999 (package
8000 (name "sbcl-cl-csv")
8001 (version (git-version "1.0.6" revision commit))
8002 (source
8003 (origin
8004 (method git-fetch)
8005 (uri (git-reference
8006 (url "https://github.com/AccelerationNet/cl-csv")
8007 (commit commit)))
8008 (file-name (git-file-name name version))
8009 (sha256
8010 (base32
8011 "0gcmlbwx5m3kwgk12qi80w08ak8fgdnvyia429fz6gnxmhg0k54x"))))
8012 (build-system asdf-build-system/sbcl)
8013 (arguments
8014 ;; See: https://github.com/AccelerationNet/cl-csv/pull/34
8015 `(#:tests? #f))
8016 (inputs
8017 `(("alexandria" ,sbcl-alexandria)
8018 ("cl-interpol" ,sbcl-cl-interpol)
8019 ("iterate" ,sbcl-iterate)))
8020 (native-inputs
8021 `(("lisp-unit2" ,sbcl-lisp-unit2)))
8022 (synopsis "Common lisp library for comma-separated values")
8023 (description
8024 "This is a Common Lisp library providing functions to read/write CSV
8025 from/to strings, streams and files.")
8026 (home-page "https://github.com/AccelerationNet/cl-csv")
8027 (license license:bsd-3))))
8028
8029 (define-public cl-csv
8030 (sbcl-package->cl-source-package sbcl-cl-csv))
8031
8032 (define-public ecl-cl-csv
8033 (sbcl-package->ecl-package sbcl-cl-csv))
8034
8035 (define-public sbcl-external-program
8036 (let ((commit "5888b8f1fd3953feeeacecbba4384ddda584a749")
8037 (revision "1"))
8038 (package
8039 (name "sbcl-external-program")
8040 (version (git-version "0.0.6" revision commit))
8041 (source
8042 (origin
8043 (method git-fetch)
8044 (uri (git-reference
8045 (url "https://github.com/sellout/external-program")
8046 (commit commit)))
8047 (file-name (git-file-name name version))
8048 (sha256
8049 (base32
8050 "0vww1x3yilb3bjwg6k184vaj4vxyxw4vralhnlm6lk4xac67kc9z"))))
8051 (build-system asdf-build-system/sbcl)
8052 (inputs
8053 `(("trivial-features" ,sbcl-trivial-features)))
8054 (native-inputs
8055 `(("fiveam" ,sbcl-fiveam)))
8056 (synopsis "Common Lisp library for running external programs")
8057 (description
8058 "EXTERNAL-PROGRAM enables running programs outside the Lisp
8059 process. It is an attempt to make the RUN-PROGRAM functionality in
8060 implementations like SBCL and CCL as portable as possible without
8061 sacrificing much in the way of power.")
8062 (home-page "https://github.com/sellout/external-program")
8063 (license license:llgpl))))
8064
8065 (define-public cl-external-program
8066 (sbcl-package->cl-source-package sbcl-external-program))
8067
8068 (define-public ecl-external-program
8069 (sbcl-package->ecl-package sbcl-external-program))
8070
8071 (define-public sbcl-cl-ana
8072 (let ((commit "fa7cee4c50aa1c859652813049ba0da7c18a0df9")
8073 (revision "1"))
8074 (package
8075 (name "sbcl-cl-ana")
8076 (version (git-version "0.0.0" revision commit))
8077 (source
8078 (origin
8079 (method git-fetch)
8080 (uri (git-reference
8081 (url "https://github.com/ghollisjr/cl-ana")
8082 (commit commit)))
8083 (file-name (git-file-name name version))
8084 (sha256
8085 (base32 "0mr47l57m276dbpap7irr4fcnk5fgknhf6mgv4043s8h73amk5qh"))))
8086 (build-system asdf-build-system/sbcl)
8087 (native-inputs
8088 `(("cl-fad" ,sbcl-cl-fad)))
8089 (inputs
8090 `(("alexandria" ,sbcl-alexandria)
8091 ("antik" ,sbcl-antik)
8092 ("cffi" ,sbcl-cffi)
8093 ("cl-csv" ,sbcl-cl-csv)
8094 ("closer-mop" ,sbcl-closer-mop)
8095 ("external-program" ,sbcl-external-program)
8096 ("gsl" ,gsl)
8097 ("gsll" ,sbcl-gsll)
8098 ("hdf5" ,hdf5-parallel-openmpi)
8099 ("iterate" ,sbcl-iterate)
8100 ("libffi" ,libffi)
8101 ("split-sequence" ,sbcl-split-sequence)))
8102 (arguments
8103 `(#:phases
8104 (modify-phases %standard-phases
8105 (add-after 'unpack 'fix-paths
8106 (lambda* (#:key inputs #:allow-other-keys)
8107 (substitute* "hdf-cffi/hdf-cffi.lisp"
8108 (("/usr/lib/i386-linux-gnu/hdf5/serial/libhdf5.so")
8109 (string-append (assoc-ref inputs "hdf5")
8110 "/lib/libhdf5.so")))
8111 (substitute* "gsl-cffi/gsl-cffi.lisp"
8112 (("define-foreign-library gsl-cffi" all)
8113 (string-append all " (:unix "
8114 (assoc-ref inputs "gsl")
8115 "/lib/libgsl.so)")))
8116 #t)))))
8117 (synopsis "Common Lisp data analysis library")
8118 (description
8119 "CL-ANA is a data analysis library in Common Lisp providing tabular and
8120 binned data analysis along with nonlinear least squares fitting and
8121 visualization.")
8122 (home-page "https://github.com/ghollisjr/cl-ana")
8123 (license license:gpl3))))
8124
8125 (define-public cl-ana
8126 (sbcl-package->cl-source-package sbcl-cl-ana))
8127
8128 (define-public sbcl-archive
8129 (let ((commit "631271c091ed02994bec3980cb288a2cf32c7cdc")
8130 (revision "1"))
8131 (package
8132 (name "sbcl-archive")
8133 (version (git-version "0.9" revision commit))
8134 (source (origin
8135 (method git-fetch)
8136 (uri (git-reference
8137 (url "https://github.com/sharplispers/archive")
8138 (commit commit)))
8139 (file-name (git-file-name name version))
8140 (sha256
8141 (base32
8142 "0pvsc9fmybx7rxd0kmzq4shi6hszdpwdc1sfy7jwyfxf8n3hnv4p"))))
8143 (build-system asdf-build-system/sbcl)
8144 (inputs
8145 `(("cl-fad" ,sbcl-cl-fad)
8146 ("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
8147 (synopsis "Common Lisp library for tar and cpio archives")
8148 (description
8149 "This is a Common Lisp library to read and write disk-based file
8150 archives such as those generated by the tar and cpio programs on Unix.")
8151 (home-page "https://github.com/sharplispers/archive")
8152 (license license:bsd-3))))
8153
8154 (define-public cl-archive
8155 (sbcl-package->cl-source-package sbcl-archive))
8156
8157 (define-public ecl-archive
8158 (sbcl-package->ecl-package sbcl-archive))
8159
8160 (define-public sbcl-misc-extensions
8161 (let ((commit "101c05112bf2f1e1bbf527396822d2f50ca6327a")
8162 (revision "1"))
8163 (package
8164 (name "sbcl-misc-extensions")
8165 (version (git-version "3.3" revision commit))
8166 (source
8167 (origin
8168 (method git-fetch)
8169 (uri (git-reference
8170 (url "https://gitlab.common-lisp.net/misc-extensions/devel.git")
8171 (commit commit)))
8172 (file-name (git-file-name name version))
8173 (sha256
8174 (base32
8175 "0gz5f4p70qzilnxsnf5lih2n9m4wjcw8hlw4w8mpn9jyhyppyyv0"))))
8176 (build-system asdf-build-system/sbcl)
8177 (synopsis "Collection of small macros and extensions for Common Lisp")
8178 (description
8179 "This project is intended as a catchall for small, general-purpose
8180 extensions to Common Lisp. It contains:
8181
8182 @itemize
8183 @item @code{new-let}, a macro that combines and generalizes @code{let},
8184 @code{let*} and @code{multiple-value-bind},
8185 @item @code{gmap}, an iteration macro that generalizes @code{map}.
8186 @end itemize\n")
8187 (home-page "https://common-lisp.net/project/misc-extensions/")
8188 (license license:public-domain))))
8189
8190 (define-public cl-misc-extensions
8191 (sbcl-package->cl-source-package sbcl-misc-extensions))
8192
8193 (define-public ecl-misc-extensions
8194 (sbcl-package->ecl-package sbcl-misc-extensions))
8195
8196 (define-public sbcl-mt19937
8197 (package
8198 (name "sbcl-mt19937")
8199 (version "1.1")
8200 (source
8201 (origin
8202 (method url-fetch)
8203 (uri (string-append "https://common-lisp.net/project/asdf-packaging/"
8204 "mt19937-latest.tar.gz"))
8205 (sha256
8206 (base32
8207 "1iw636b0iw5ygkv02y8i41lh7xj0acglv0hg5agryn0zzi2nf1xv"))))
8208 (build-system asdf-build-system/sbcl)
8209 (synopsis "Mersenne Twister pseudo-random number generator")
8210 (description
8211 "MT19937 is a portable Mersenne Twister pseudo-random number generator
8212 for Common Lisp.")
8213 (home-page "https://www.cliki.net/mt19937")
8214 (license license:public-domain)))
8215
8216 (define-public cl-mt19937
8217 (sbcl-package->cl-source-package sbcl-mt19937))
8218
8219 (define-public ecl-mt19937
8220 (sbcl-package->ecl-package sbcl-mt19937))
8221
8222 (define-public sbcl-fset
8223 (let ((commit "6d2f9ded8934d2b42f2571a0ba5bda091037d852")
8224 (revision "1"))
8225 (package
8226 (name "sbcl-fset")
8227 (version (git-version "1.3.2" revision commit))
8228 (source
8229 (origin
8230 (method git-fetch)
8231 (uri (git-reference
8232 (url "https://github.com/slburson/fset")
8233 (commit commit)))
8234 (file-name (git-file-name name version))
8235 (sha256
8236 (base32
8237 "127acblwrbqicx47h6sgvknz1cqyfn8p4xkhkn1m7hxh8w5gk1zy"))
8238 (snippet '(begin
8239 ;; Remove obsolete copy of system definition.
8240 (delete-file "Code/fset.asd")
8241 #t))))
8242 (build-system asdf-build-system/sbcl)
8243 (inputs
8244 `(("misc-extensions" ,sbcl-misc-extensions)
8245 ("mt19937" ,sbcl-mt19937)
8246 ("named-readtables" ,sbcl-named-readtables)))
8247 (synopsis "Functional set-theoretic collections library")
8248 (description
8249 "FSet is a functional set-theoretic collections library for Common Lisp.
8250 Functional means that all update operations return a new collection rather than
8251 modifying an existing one in place. Set-theoretic means that collections may
8252 be nested arbitrarily with no additional programmer effort; for instance, sets
8253 may contain sets, maps may be keyed by sets, etc.")
8254 (home-page "https://common-lisp.net/project/fset/Site/index.html")
8255 (license license:llgpl))))
8256
8257 (define-public cl-fset
8258 (sbcl-package->cl-source-package sbcl-fset))
8259
8260 (define-public ecl-fset
8261 (package
8262 (inherit (sbcl-package->ecl-package sbcl-fset))
8263 (arguments
8264 ;; Tests fails on ECL with "The function FSET::MAKE-CHAR is undefined".
8265 '(#:tests? #f))))
8266
8267 (define-public sbcl-cl-cont
8268 (let ((commit "fc1fa7e6eb64894fdca13e688e6015fad5290d2a")
8269 (revision "1"))
8270 (package
8271 (name "sbcl-cl-cont")
8272 (version (git-version "0.3.8" revision commit))
8273 (source
8274 (origin
8275 (method git-fetch)
8276 (uri (git-reference
8277 (url "https://gitlab.common-lisp.net/cl-cont/cl-cont.git")
8278 (commit commit)))
8279 (file-name (git-file-name name version))
8280 (sha256
8281 (base32
8282 "1zf8zvb0i6jm3hhfks4w74hibm6avgc6f9s1qwgjrn2bcik8lrvz"))))
8283 (build-system asdf-build-system/sbcl)
8284 (inputs
8285 `(("alexandria" ,sbcl-alexandria)
8286 ("closer-mop" ,sbcl-closer-mop)))
8287 (native-inputs
8288 `(("rt" ,sbcl-rt)))
8289 (synopsis "Delimited continuations for Common Lisp")
8290 (description
8291 "This is a library that implements delimited continuations by
8292 transforming Common Lisp code to continuation passing style.")
8293 (home-page "https://common-lisp.net/project/cl-cont/")
8294 (license license:llgpl))))
8295
8296 (define-public cl-cont
8297 (sbcl-package->cl-source-package sbcl-cl-cont))
8298
8299 (define-public ecl-cl-cont
8300 (sbcl-package->ecl-package sbcl-cl-cont))
8301
8302 (define-public sbcl-cl-coroutine
8303 (let ((commit "de098f8d5debd8b14ef6864b5bdcbbf5ddbcfd72")
8304 (revision "1"))
8305 (package
8306 (name "sbcl-cl-coroutine")
8307 (version (git-version "0.1" revision commit))
8308 (source
8309 (origin
8310 (method git-fetch)
8311 (uri (git-reference
8312 (url "https://github.com/takagi/cl-coroutine")
8313 (commit commit)))
8314 (file-name (git-file-name name version))
8315 (sha256
8316 (base32
8317 "1cqdhdjxffgfs116l1swjlsmcbly0xgcgrckvaajd566idj9yj4l"))))
8318 (build-system asdf-build-system/sbcl)
8319 (inputs
8320 `(("alexandria" ,sbcl-alexandria)
8321 ("cl-cont" ,sbcl-cl-cont)))
8322 (native-inputs
8323 `(("prove" ,sbcl-prove)))
8324 (arguments
8325 `(;; TODO: Fix the tests. They fail with:
8326 ;; "Component CL-COROUTINE-ASD::CL-COROUTINE-TEST not found"
8327 #:tests? #f
8328 #:phases
8329 (modify-phases %standard-phases
8330 (add-after 'unpack 'fix-tests
8331 (lambda _
8332 (substitute* "cl-coroutine-test.asd"
8333 (("cl-test-more")
8334 "prove"))
8335 #t)))))
8336 (synopsis "Coroutine library for Common Lisp")
8337 (description
8338 "This is a coroutine library for Common Lisp implemented using the
8339 continuations of the @code{cl-cont} library.")
8340 (home-page "https://github.com/takagi/cl-coroutine")
8341 (license license:llgpl))))
8342
8343 (define-public cl-coroutine
8344 (sbcl-package->cl-source-package sbcl-cl-coroutine))
8345
8346 (define-public ecl-cl-coroutine
8347 (sbcl-package->ecl-package sbcl-cl-coroutine))
8348
8349 (define-public sbcl-vas-string-metrics
8350 (let ((commit "f2e4500b180316123fbd549bd51c751ee2d6ba0f")
8351 (revision "1"))
8352 (package
8353 (name "sbcl-vas-string-metrics")
8354 (version (git-version "0.0.0" revision commit))
8355 (source
8356 (origin
8357 (method git-fetch)
8358 (uri (git-reference
8359 (url "https://github.com/vsedach/vas-string-metrics")
8360 (commit commit)))
8361 (file-name (git-file-name "vas-string-metrics" version))
8362 (sha256
8363 (base32 "11fcnd03ybzz37rkg3z0wsb727yqgcd9gn70sccfb34l89ia279k"))))
8364 (build-system asdf-build-system/sbcl)
8365 (arguments
8366 `(#:test-asd-file "test.vas-string-metrics.asd"))
8367 (home-page "https://github.com/vsedach/vas-string-metrics")
8368 (synopsis "String distance algorithms for Common Lisp")
8369 (description
8370 "VAS-STRING-METRICS provides the Jaro, Jaro-Winkler, Soerensen-Dice,
8371 Levenshtein, and normalized Levenshtein string distance/similarity metrics
8372 algorithms.")
8373 (license license:lgpl3+))))
8374
8375 (define-public ecl-vas-string-metrics
8376 (sbcl-package->ecl-package sbcl-vas-string-metrics))
8377
8378 (define-public cl-vas-string-metrics
8379 (sbcl-package->cl-source-package sbcl-vas-string-metrics))
8380
8381 (define-public sbcl-vom
8382 (let ((commit "1aeafeb5b74c53741b79497e0ef4acf85c92ff24")
8383 (revision "1"))
8384 (package
8385 (name "sbcl-vom")
8386 (version (git-version "0.1.4" revision commit))
8387 (source
8388 (origin
8389 (method git-fetch)
8390 (uri (git-reference
8391 (url "https://github.com/orthecreedence/vom")
8392 (commit commit)))
8393 (file-name (git-file-name name version))
8394 (sha256
8395 (base32
8396 "0536kppj76ax4lrxhv42npkfjsmx45km2g439vf9jmw3apinz9cy"))))
8397 (build-system asdf-build-system/sbcl)
8398 (synopsis "Tiny logging utility for Common Lisp")
8399 (description
8400 "Vom is a logging library for Common Lisp. It's goal is to be useful
8401 and small. It does not provide a lot of features as other loggers do, but
8402 has a small codebase that's easy to understand and use.")
8403 (home-page "https://github.com/orthecreedence/vom")
8404 (license license:expat))))
8405
8406 (define-public cl-vom
8407 (sbcl-package->cl-source-package sbcl-vom))
8408
8409 (define-public ecl-vom
8410 (sbcl-package->ecl-package sbcl-vom))
8411
8412 (define-public sbcl-cl-libuv
8413 (let ((commit "32100c023c518038d0670a103eaa4d50dd785d29")
8414 (revision "1"))
8415 (package
8416 (name "sbcl-cl-libuv")
8417 (version (git-version "0.1.6" revision commit))
8418 (source
8419 (origin
8420 (method git-fetch)
8421 (uri (git-reference
8422 (url "https://github.com/orthecreedence/cl-libuv")
8423 (commit commit)))
8424 (file-name (git-file-name name version))
8425 (sha256
8426 (base32
8427 "1kwix4si8a8hza34ab2k7whrh7z0yrmx39v2wc3qblv9m244jkh1"))))
8428 (build-system asdf-build-system/sbcl)
8429 (inputs
8430 `(("alexandria" ,sbcl-alexandria)
8431 ("cffi" ,sbcl-cffi)
8432 ("libuv" ,libuv)))
8433 (arguments
8434 `(#:phases
8435 (modify-phases %standard-phases
8436 (add-after 'unpack 'fix-paths
8437 (lambda* (#:key inputs #:allow-other-keys)
8438 (substitute* "lib.lisp"
8439 (("/usr/lib/libuv.so")
8440 (string-append (assoc-ref inputs "libuv")
8441 "/lib/libuv.so")))
8442 #t))
8443 (add-after 'fix-paths 'fix-system-definition
8444 (lambda _
8445 (substitute* "cl-libuv.asd"
8446 (("#:cffi #:alexandria")
8447 "#:cffi #:cffi-grovel #:alexandria"))
8448 #t)))))
8449 (synopsis "Common Lisp bindings to libuv")
8450 (description
8451 "This library provides low-level libuv bindings for Common Lisp.")
8452 (home-page "https://github.com/orthecreedence/cl-libuv")
8453 (license license:expat))))
8454
8455 (define-public cl-libuv
8456 (sbcl-package->cl-source-package sbcl-cl-libuv))
8457
8458 (define-public ecl-cl-libuv
8459 (sbcl-package->ecl-package sbcl-cl-libuv))
8460
8461 (define-public sbcl-cl-async
8462 (let ((commit "f6423e44404a44434d803605e0d2e17199158e28")
8463 (revision "1"))
8464 (package
8465 (name "sbcl-cl-async")
8466 (version (git-version "0.6.1" revision commit))
8467 (source
8468 (origin
8469 (method git-fetch)
8470 (uri (git-reference
8471 (url "https://github.com/orthecreedence/cl-async")
8472 (commit commit)))
8473 (file-name (git-file-name name version))
8474 (sha256
8475 (base32
8476 "11xi9dxb8mjgwzrkj88i0xkgk26z9w9ddxzbv6xsvfc1d4x5cf4x"))))
8477 (build-system asdf-build-system/sbcl)
8478 (inputs
8479 `(("babel" ,sbcl-babel)
8480 ("bordeaux-threads" ,sbcl-bordeaux-threads)
8481 ("cffi" ,sbcl-cffi)
8482 ("cl-libuv" ,sbcl-cl-libuv)
8483 ("cl-ppcre" ,sbcl-cl-ppcre)
8484 ("fast-io" ,sbcl-fast-io)
8485 ("openssl" ,openssl)
8486 ("static-vectors" ,sbcl-static-vectors)
8487 ("trivial-features" ,sbcl-trivial-features)
8488 ("trivial-gray-streams" ,sbcl-trivial-gray-streams)
8489 ("vom" ,sbcl-vom)))
8490 (arguments
8491 `(#:asd-systems '("cl-async"
8492 "cl-async-repl"
8493 "cl-async-ssl")
8494 #:phases
8495 (modify-phases %standard-phases
8496 (add-after 'unpack 'fix-paths
8497 (lambda* (#:key inputs #:allow-other-keys)
8498 (substitute* "src/ssl/package.lisp"
8499 (("libcrypto\\.so")
8500 (string-append (assoc-ref inputs "openssl")
8501 "/lib/libcrypto.so"))
8502 (("libssl\\.so")
8503 (string-append (assoc-ref inputs "openssl")
8504 "/lib/libssl.so")))
8505 #t)))))
8506 (synopsis "Asynchronous operations for Common Lisp")
8507 (description
8508 "Cl-async is a library for general purpose, non-blocking programming in
8509 Common Lisp. It uses the libuv library as backend.")
8510 (home-page "https://orthecreedence.github.io/cl-async/")
8511 (license license:expat))))
8512
8513 (define-public cl-async
8514 (sbcl-package->cl-source-package sbcl-cl-async))
8515
8516 (define-public ecl-cl-async
8517 (sbcl-package->ecl-package sbcl-cl-async))
8518
8519 (define-public sbcl-blackbird
8520 (let ((commit "d361f81c1411dec07f6c2dcb11c78f7aea9aaca8")
8521 (revision "1"))
8522 (package
8523 (name "sbcl-blackbird")
8524 (version (git-version "0.5.2" revision commit))
8525 (source
8526 (origin
8527 (method git-fetch)
8528 (uri (git-reference
8529 (url "https://github.com/orthecreedence/blackbird")
8530 (commit commit)))
8531 (file-name (git-file-name name version))
8532 (sha256
8533 (base32
8534 "0xfds5yaya64arzr7w1x38karyz11swzbhxx1afldpradj9dh19c"))))
8535 (build-system asdf-build-system/sbcl)
8536 (inputs
8537 `(("vom" ,sbcl-vom)))
8538 (native-inputs
8539 `(("cl-async" ,sbcl-cl-async)
8540 ("fiveam" ,sbcl-fiveam)))
8541 (synopsis "Promise implementation for Common Lisp")
8542 (description
8543 "This is a standalone promise implementation for Common Lisp. It is
8544 the successor to the now-deprecated cl-async-future project.")
8545 (home-page "https://orthecreedence.github.io/blackbird/")
8546 (license license:expat))))
8547
8548 (define-public cl-blackbird
8549 (sbcl-package->cl-source-package sbcl-blackbird))
8550
8551 (define-public ecl-blackbird
8552 (sbcl-package->ecl-package sbcl-blackbird))
8553
8554 (define-public sbcl-cl-async-future
8555 (let ((commit "ee36c22a69a9516407458d2ed8b475f1fc473959")
8556 (revision "1"))
8557 (package
8558 (name "sbcl-cl-async-future")
8559 (version (git-version "0.4.4.1" revision commit))
8560 (source
8561 (origin
8562 (method git-fetch)
8563 (uri (git-reference
8564 (url "https://github.com/orthecreedence/cl-async-future")
8565 (commit commit)))
8566 (file-name (git-file-name name version))
8567 (sha256
8568 (base32
8569 "0z0sc7qlzzxk99f4l26zp6rai9kv0kj0f599sxai5s44p17zbbvh"))))
8570 (build-system asdf-build-system/sbcl)
8571 (inputs
8572 `(("blackbird" ,sbcl-blackbird)))
8573 (native-inputs
8574 `(("cl-async" ,sbcl-cl-async)
8575 ("eos" ,sbcl-eos)))
8576 (synopsis "Futures implementation for Common Lisp")
8577 (description
8578 "This is futures implementation for Common Lisp. It plugs in nicely
8579 to cl-async.")
8580 (home-page "https://orthecreedence.github.io/cl-async/future")
8581 (license license:expat))))
8582
8583 (define-public cl-async-future
8584 (sbcl-package->cl-source-package sbcl-cl-async-future))
8585
8586 (define-public ecl-cl-async-future
8587 (sbcl-package->ecl-package sbcl-cl-async-future))
8588
8589 (define-public sbcl-green-threads
8590 (let ((commit "fff5ebecb441a37e5c511773716aafd84a3c5840")
8591 (revision "1"))
8592 (package
8593 (name "sbcl-green-threads")
8594 (version (git-version "0.3" revision commit))
8595 (source
8596 (origin
8597 (method git-fetch)
8598 (uri (git-reference
8599 (url "https://github.com/thezerobit/green-threads")
8600 (commit commit)))
8601 (file-name (git-file-name name version))
8602 (sha256
8603 (base32
8604 "1czw7nr0dwfps76h8hjvglk1wdh53yqbfbvv30whwbgqx33iippz"))))
8605 (build-system asdf-build-system/sbcl)
8606 (inputs
8607 `(("cl-async-future" ,sbcl-cl-async-future)
8608 ("cl-cont" ,sbcl-cl-cont)))
8609 (native-inputs
8610 `(("prove" ,sbcl-prove)))
8611 (arguments
8612 `(;; TODO: Fix the tests. They fail with:
8613 ;; "The function BLACKBIRD::PROMISE-VALUES is undefined"
8614 #:tests? #f
8615 #:phases
8616 (modify-phases %standard-phases
8617 (add-after 'unpack 'fix-tests
8618 (lambda _
8619 (substitute* "green-threads-test.asd"
8620 (("cl-test-more")
8621 "prove"))
8622 #t)))))
8623 (synopsis "Cooperative multitasking library for Common Lisp")
8624 (description
8625 "This library allows for cooperative multitasking with help of cl-cont
8626 for continuations. It tries to mimic the API of bordeaux-threads as much as
8627 possible.")
8628 (home-page "https://github.com/thezerobit/green-threads")
8629 (license license:bsd-3))))
8630
8631 (define-public cl-green-threads
8632 (sbcl-package->cl-source-package sbcl-green-threads))
8633
8634 (define-public ecl-green-threads
8635 (sbcl-package->ecl-package sbcl-green-threads))
8636
8637 (define-public sbcl-cl-base32
8638 (let ((commit "8cdee06fab397f7b0a19583b57e7f0c98405be85")
8639 (revision "1"))
8640 (package
8641 (name "sbcl-cl-base32")
8642 (version (git-version "0.1" revision commit))
8643 (source
8644 (origin
8645 (method git-fetch)
8646 (uri (git-reference
8647 (url "https://github.com/hargettp/cl-base32")
8648 (commit commit)))
8649 (file-name (git-file-name name version))
8650 (sha256
8651 (base32 "17jrng8jb05d64ggyd11hp308c2fl5drvf9g175blgrkkl8l4mf8"))))
8652 (build-system asdf-build-system/sbcl)
8653 (native-inputs
8654 `(("lisp-unit" ,sbcl-lisp-unit)))
8655 (synopsis "Common Lisp library for base32 encoding and decoding")
8656 (description
8657 "This package provides functions for base32 encoding and decoding as
8658 defined in RFC4648.")
8659 (home-page "https://github.com/hargettp/cl-base32")
8660 (license license:expat))))
8661
8662 (define-public cl-base32
8663 (sbcl-package->cl-source-package sbcl-cl-base32))
8664
8665 (define-public ecl-cl-base32
8666 (sbcl-package->ecl-package sbcl-cl-base32))
8667
8668 (define-public sbcl-cl-z85
8669 (let ((commit "85b3951a9cfa2603acb6aee15567684f9a108098")
8670 (revision "1"))
8671 (package
8672 (name "sbcl-cl-z85")
8673 (version (git-version "1.0" revision commit))
8674 (source
8675 (origin
8676 (method git-fetch)
8677 (uri (git-reference
8678 (url "https://github.com/glv2/cl-z85")
8679 (commit commit)))
8680 (file-name (git-file-name name version))
8681 (sha256
8682 (base32 "0r27pidjaxbm7k1rr90nnajwl5xm2kp65g1fv0fva17lzy45z1mp"))))
8683 (build-system asdf-build-system/sbcl)
8684 (native-inputs
8685 `(("cl-octet-streams" ,sbcl-cl-octet-streams)
8686 ("fiveam" ,sbcl-fiveam)))
8687 (synopsis "Common Lisp library for Z85 encoding and decoding")
8688 (description
8689 "This package provides functions to encode or decode byte vectors or
8690 byte streams using the Z85 format, which is a base-85 encoding used by
8691 ZeroMQ.")
8692 (home-page "https://github.com/glv2/cl-z85")
8693 (license license:gpl3+))))
8694
8695 (define-public cl-z85
8696 (sbcl-package->cl-source-package sbcl-cl-z85))
8697
8698 (define-public ecl-cl-z85
8699 (sbcl-package->ecl-package sbcl-cl-z85))
8700
8701 (define-public sbcl-ltk
8702 (package
8703 (name "sbcl-ltk")
8704 (version "0.992")
8705 (source
8706 (origin
8707 (method git-fetch)
8708 (uri (git-reference
8709 (url "https://github.com/herth/ltk")
8710 (commit version)))
8711 (file-name (git-file-name name version))
8712 (sha256
8713 (base32 "13l2q4mskzilya9xh5wy2xvy30lwn104bd8wrq6ifds56r82iy3x"))))
8714 (build-system asdf-build-system/sbcl)
8715 (inputs
8716 `(("imagemagick" ,imagemagick)
8717 ("tk" ,tk)))
8718 (arguments
8719 `(#:asd-systems '("ltk"
8720 "ltk-mw"
8721 "ltk-remote")
8722 #:tests? #f
8723 #:phases
8724 (modify-phases %standard-phases
8725 (add-after 'unpack 'fix-paths
8726 (lambda* (#:key inputs #:allow-other-keys)
8727 (substitute* "ltk/ltk.lisp"
8728 (("#-freebsd \"wish\"")
8729 (string-append "#-freebsd \""
8730 (assoc-ref inputs "tk")
8731 "/bin/wish\""))
8732 (("do-execute \"convert\"")
8733 (string-append "do-execute \""
8734 (assoc-ref inputs "imagemagick")
8735 "/bin/convert\"")))
8736 #t))
8737 (add-after 'unpack 'fix-build
8738 (lambda _
8739 (substitute* "ltk/ltk-remote.lisp"
8740 (("\\(:export")
8741 "(:shadow #:raise) (:export"))
8742 #t)))))
8743 (synopsis "Common Lisp bindings for the Tk GUI toolkit")
8744 (description
8745 "LTK is a Common Lisp binding for the Tk graphics toolkit. It is written
8746 in pure Common Lisp and does not require any Tk knowledge for its usage.")
8747 (home-page "http://www.peter-herth.de/ltk/")
8748 (license license:llgpl)))
8749
8750 (define-public cl-ltk
8751 (sbcl-package->cl-source-package sbcl-ltk))
8752
8753 (define-public ecl-ltk
8754 (sbcl-package->ecl-package sbcl-ltk))
8755
8756 (define-public sbcl-cl-lex
8757 (let ((commit "f2dbbe25ef553005fb402d9a6203180c3fa1093b")
8758 (revision "1"))
8759 (package
8760 (name "sbcl-cl-lex")
8761 (version (git-version "1.1.3" revision commit))
8762 (source
8763 (origin
8764 (method git-fetch)
8765 (uri (git-reference
8766 (url "https://github.com/djr7C4/cl-lex")
8767 (commit commit)))
8768 (file-name (git-file-name name version))
8769 (sha256
8770 (base32 "1kg50f76bfpfxcv4dfivq1n9a0xlsra2ajb0vd68lxwgbidgyc2y"))))
8771 (build-system asdf-build-system/sbcl)
8772 (inputs
8773 `(("cl-ppcre" ,sbcl-cl-ppcre)))
8774 (synopsis "Common Lisp macros for generating lexical analyzers")
8775 (description
8776 "This is a Common Lisp library providing a set of macros for generating
8777 lexical analyzers automatically. The lexers generated using @code{cl-lex} can
8778 be used with @code{cl-yacc}.")
8779 (home-page "https://github.com/djr7C4/cl-lex")
8780 (license license:gpl3))))
8781
8782 (define-public cl-lex
8783 (sbcl-package->cl-source-package sbcl-cl-lex))
8784
8785 (define-public ecl-cl-lex
8786 (sbcl-package->ecl-package sbcl-cl-lex))
8787
8788 (define-public sbcl-clunit2
8789 (let ((commit "5e28343734eb9b7aee39306a614af92c1062d50b")
8790 (revision "1"))
8791 (package
8792 (name "sbcl-clunit2")
8793 (version (git-version "0.2.4" revision commit))
8794 (source
8795 (origin
8796 (method git-fetch)
8797 (uri (git-reference
8798 (url "https://notabug.org/cage/clunit2.git")
8799 (commit commit)))
8800 (file-name (git-file-name name version))
8801 (sha256
8802 (base32 "1ngiapfki6nm8a555mzhb5p7ch79i3w665za5bmb5j7q34fy80vw"))))
8803 (build-system asdf-build-system/sbcl)
8804 (synopsis "Unit testing framework for Common Lisp")
8805 (description
8806 "CLUnit is a Common Lisp unit testing framework. It is designed to be
8807 easy to use so that you can quickly start testing.")
8808 (home-page "https://notabug.org/cage/clunit2")
8809 (license license:expat))))
8810
8811 (define-public cl-clunit2
8812 (sbcl-package->cl-source-package sbcl-clunit2))
8813
8814 (define-public ecl-clunit2
8815 (sbcl-package->ecl-package sbcl-clunit2))
8816
8817 (define-public sbcl-cl-colors2
8818 (let ((commit "795aedee593b095fecde574bd999b520dd03ed24")
8819 (revision "1"))
8820 (package
8821 (name "sbcl-cl-colors2")
8822 (version (git-version "0.2.1" revision commit))
8823 (source
8824 (origin
8825 (method git-fetch)
8826 (uri (git-reference
8827 (url "https://notabug.org/cage/cl-colors2.git")
8828 (commit commit)))
8829 (file-name (git-file-name name version))
8830 (sha256
8831 (base32 "0hlyf4h5chkjdp9armla5w4kw5acikk159sym7y8c4jbjp9x47ih"))))
8832 (build-system asdf-build-system/sbcl)
8833 (native-inputs
8834 `(("clunit2" ,sbcl-clunit2)))
8835 (inputs
8836 `(("alexandria" ,sbcl-alexandria)
8837 ("cl-ppcre" ,sbcl-cl-ppcre)))
8838 (synopsis "Color library for Common Lisp")
8839 (description
8840 "This is a very simple color library for Common Lisp, providing:
8841
8842 @itemize
8843 @item Types for representing colors in HSV and RGB spaces.
8844 @item Simple conversion functions between the above types (and also
8845 hexadecimal representation for RGB).
8846 @item Some predefined colors (currently X11 color names -- of course
8847 the library does not depend on X11).
8848 @end itemize\n")
8849 (home-page "https://notabug.org/cage/cl-colors2")
8850 (license license:boost1.0))))
8851
8852 (define-public cl-colors2
8853 (sbcl-package->cl-source-package sbcl-cl-colors2))
8854
8855 (define-public ecl-cl-colors2
8856 (sbcl-package->ecl-package sbcl-cl-colors2))
8857
8858 (define-public sbcl-cl-jpeg
8859 (let ((commit "ec557038128df6895fbfb743bfe8faf8ec2534af")
8860 (revision "1"))
8861 (package
8862 (name "sbcl-cl-jpeg")
8863 (version (git-version "2.8" revision commit))
8864 (source
8865 (origin
8866 (method git-fetch)
8867 (uri (git-reference
8868 (url "https://github.com/sharplispers/cl-jpeg")
8869 (commit commit)))
8870 (file-name (git-file-name name version))
8871 (sha256
8872 (base32 "1bkkiqz8fqldlj1wbmrccjsvxcwj98h6s4b6gslr3cg2wmdv5xmy"))))
8873 (build-system asdf-build-system/sbcl)
8874 (synopsis "JPEG image library for Common Lisp")
8875 (description
8876 "This is a baseline JPEG codec written in Common Lisp. It can be used
8877 for reading and writing JPEG image files.")
8878 (home-page "https://github.com/sharplispers/cl-jpeg")
8879 (license license:bsd-3))))
8880
8881 (define-public cl-jpeg
8882 (sbcl-package->cl-source-package sbcl-cl-jpeg))
8883
8884 (define-public ecl-cl-jpeg
8885 (sbcl-package->ecl-package sbcl-cl-jpeg))
8886
8887 (define-public sbcl-nodgui
8888 (let ((commit "bc59ed9b787dfc9e68ae3bd7f7e8507c5c619212")
8889 (revision "1"))
8890 (package
8891 (name "sbcl-nodgui")
8892 (version (git-version "0.0.5" revision commit))
8893 (source
8894 (origin
8895 (method git-fetch)
8896 (uri (git-reference
8897 (url "https://notabug.org/cage/nodgui.git")
8898 (commit commit)))
8899 (file-name (git-file-name name version))
8900 (sha256
8901 (base32 "0xx0dk54d882i598ydnwmy7mnfk0b7vib3ddsgpqxhjck1rwq8l8"))))
8902 (build-system asdf-build-system/sbcl)
8903 (inputs
8904 `(("alexandria" ,sbcl-alexandria)
8905 ("bordeaux-threads" ,sbcl-bordeaux-threads)
8906 ("cl-colors2" ,sbcl-cl-colors2)
8907 ("cl-jpeg" ,sbcl-cl-jpeg)
8908 ("cl-lex" ,sbcl-cl-lex)
8909 ("cl-ppcre-unicode" ,sbcl-cl-ppcre-unicode)
8910 ("cl-unicode" ,sbcl-cl-unicode)
8911 ("cl-yacc" ,sbcl-cl-yacc)
8912 ("clunit2" ,sbcl-clunit2)
8913 ("named-readtables" ,sbcl-named-readtables)
8914 ("parse-number" ,sbcl-parse-number)
8915 ("tk" ,tk)))
8916 (arguments
8917 `(#:phases (modify-phases %standard-phases
8918 (add-after 'unpack 'fix-paths
8919 (lambda* (#:key inputs #:allow-other-keys)
8920 (substitute* "src/wish-communication.lisp"
8921 (("#-freebsd \"wish\"")
8922 (string-append "#-freebsd \""
8923 (assoc-ref inputs "tk")
8924 "/bin/wish\"")))
8925 #t)))))
8926 (synopsis "Common Lisp bindings for the Tk GUI toolkit")
8927 (description
8928 "Nodgui (@emph{No Drama GUI}) is a Common Lisp binding for the Tk GUI
8929 toolkit. It also provides a few additional widgets more than the standard Tk
8930 ones.")
8931 (home-page "https://www.autistici.org/interzona/nodgui.html")
8932 (license license:llgpl))))
8933
8934 (define-public cl-nodgui
8935 (sbcl-package->cl-source-package sbcl-nodgui))
8936
8937 (define-public ecl-nodgui
8938 (sbcl-package->ecl-package sbcl-nodgui))
8939
8940 (define-public sbcl-salza2
8941 (package
8942 (name "sbcl-salza2")
8943 (version "2.0.9")
8944 (source
8945 (origin
8946 (method git-fetch)
8947 (uri (git-reference
8948 (url "https://github.com/xach/salza2")
8949 (commit (string-append "release-" version))))
8950 (file-name (git-file-name name version))
8951 (sha256
8952 (base32 "0p38rj4gq7j5k807php7hrz7l2zyyfshv8i9yms7i8lkgg3433ki"))))
8953 (build-system asdf-build-system/sbcl)
8954 (synopsis "Common Lisp library for zlib, deflate and gzip compression")
8955 (description
8956 "Salza2 is a Common Lisp library for creating compressed data in the zlib,
8957 deflate, or gzip data formats, described in RFC 1950, RFC 1951, and RFC 1952,
8958 respectively.")
8959 (home-page "https://www.xach.com/lisp/salza2/")
8960 (license license:bsd-2)))
8961
8962 (define-public cl-salza2
8963 (sbcl-package->cl-source-package sbcl-salza2))
8964
8965 (define-public ecl-salza2
8966 (sbcl-package->ecl-package sbcl-salza2))
8967
8968 (define-public sbcl-origin
8969 (let ((commit "d646134302456408d6d43580bb05299f1695ab8e")
8970 (revision "1"))
8971 (package
8972 (name "sbcl-origin")
8973 (version (git-version "2.0.0" revision commit))
8974 (source
8975 (origin
8976 (method git-fetch)
8977 (uri (git-reference
8978 (url "https://git.mfiano.net/mfiano/origin")
8979 (commit commit)))
8980 (file-name (git-file-name "origin" version))
8981 (sha256
8982 (base32 "1n9aszaif3yh8prs5r8v51fbj4r5jd1a048mivd5yij3hplkm82b"))))
8983 (build-system asdf-build-system/sbcl)
8984 (native-inputs
8985 `(("parachute" ,sbcl-parachute)))
8986 (inputs
8987 `(("golden-utils" ,sbcl-golden-utils)
8988 ("specialization-store" ,sbcl-specialization-store)))
8989 (home-page "https://git.mfiano.net/mfiano/origin")
8990 (synopsis "Common Lisp graphics math library")
8991 (description
8992 "This is a native Common Lisp graphics math library with an emphasis on
8993 performance and correctness.")
8994 (license license:expat))))
8995
8996 (define-public ecl-origin
8997 (sbcl-package->ecl-package sbcl-origin))
8998
8999 (define-public cl-origin
9000 (sbcl-package->cl-source-package sbcl-origin))
9001
9002 (define-public sbcl-png-read
9003 (let ((commit "ec29f38a689972b9f1373f13bbbcd6b05deada88")
9004 (revision "1"))
9005 (package
9006 (name "sbcl-png-read")
9007 (version (git-version "0.3.1" revision commit))
9008 (source
9009 (origin
9010 (method git-fetch)
9011 (uri (git-reference
9012 (url "https://github.com/Ramarren/png-read")
9013 (commit commit)))
9014 (file-name (git-file-name name version))
9015 (sha256
9016 (base32 "0vyczbcwskrygrf1hgrsnk0jil8skmvf1kiaalw5jps4fjrfdkw0"))))
9017 (build-system asdf-build-system/sbcl)
9018 (inputs
9019 `(("babel" ,sbcl-babel)
9020 ("chipz" ,sbcl-chipz)
9021 ("iterate" ,sbcl-iterate)))
9022 (synopsis "PNG decoder for Common Lisp")
9023 (description "This is a Common Lisp library for reading PNG images.")
9024 (home-page "https://github.com/Ramarren/png-read")
9025 (license license:bsd-3))))
9026
9027 (define-public cl-png-read
9028 (sbcl-package->cl-source-package sbcl-png-read))
9029
9030 (define-public ecl-png-read
9031 (sbcl-package->ecl-package sbcl-png-read))
9032
9033 (define-public sbcl-3b-bmfont
9034 (let ((commit "d1b5bec0de580c2d08ec947a93c56b1400f2a37a")
9035 (revision "1"))
9036 (package
9037 (name "sbcl-3b-bmfont")
9038 (version (git-version "0.0.1" revision commit))
9039 (source
9040 (origin
9041 (method git-fetch)
9042 (uri (git-reference
9043 (url "https://github.com/3b/3b-bmfont/")
9044 (commit commit)))
9045 (file-name (git-file-name "3b-bmfont" version))
9046 (sha256
9047 (base32 "12sgf7m0h6fqzhvkas7vmci6mprj3j3fnz778jlbqbsydln6v2yc"))))
9048 (build-system asdf-build-system/sbcl)
9049 (arguments
9050 `(#:asd-systems
9051 '("3b-bmfont"
9052 "3b-bmfont/text"
9053 "3b-bmfont/common"
9054 "3b-bmfont/xml"
9055 "3b-bmfont/json")))
9056 (inputs
9057 `(("alexandria" ,sbcl-alexandria)
9058 ("cxml" ,sbcl-cxml)
9059 ("flexi-streams" ,sbcl-flexi-streams)
9060 ("jsown" ,sbcl-jsown)
9061 ("split-sequence" ,sbcl-split-sequence)))
9062 (home-page "https://github.com/3b/3b-bmfont/")
9063 (synopsis "Read/write bmfont metadata files")
9064 (description
9065 "This is a Common Lisp library which provides functionality to
9066 read/write Bit Map Font (BMF) into text, JSON and XML.")
9067 (license license:expat))))
9068
9069 (define-public ecl-3b-bmfont
9070 (sbcl-package->ecl-package sbcl-3b-bmfont))
9071
9072 (define-public cl-3b-bmfont
9073 (sbcl-package->cl-source-package sbcl-3b-bmfont))
9074
9075 (define-public sbcl-zpng
9076 (package
9077 (name "sbcl-zpng")
9078 (version "1.2.2")
9079 (source
9080 (origin
9081 (method git-fetch)
9082 (uri (git-reference
9083 (url "https://github.com/xach/zpng")
9084 (commit (string-append "release-" version))))
9085 (file-name (git-file-name name version))
9086 (sha256
9087 (base32 "0b3ag3jhl3z7kdls3ahdsdxsfhhw5qrizk769984f4wkxhb69rcm"))))
9088 (build-system asdf-build-system/sbcl)
9089 (inputs
9090 `(("salza2" ,sbcl-salza2)))
9091 (synopsis "PNG encoder for Common Lisp")
9092 (description "This is a Common Lisp library for creating PNG images.")
9093 (home-page "https://www.xach.com/lisp/zpng/")
9094 (license license:bsd-2)))
9095
9096 (define-public cl-zpng
9097 (sbcl-package->cl-source-package sbcl-zpng))
9098
9099 (define-public ecl-zpng
9100 (sbcl-package->ecl-package sbcl-zpng))
9101
9102 (define-public sbcl-cl-qrencode
9103 (package
9104 (name "sbcl-cl-qrencode")
9105 (version "0.1.2")
9106 (source
9107 (origin
9108 (method git-fetch)
9109 (uri (git-reference
9110 (url "https://github.com/jnjcc/cl-qrencode")
9111 (commit (string-append "v" version))))
9112 (file-name (git-file-name name version))
9113 (sha256
9114 (base32 "1l5k131dchbf6cj8a8xqa731790p01p3qa1kdy2wa9dawy3ymkxr"))))
9115 (build-system asdf-build-system/sbcl)
9116 (native-inputs
9117 `(("lisp-unit" ,sbcl-lisp-unit)))
9118 (inputs
9119 `(("zpng" ,sbcl-zpng)))
9120 (synopsis "QR code encoder for Common Lisp")
9121 (description
9122 "This Common Lisp library provides function to make QR codes and to save
9123 them as PNG files.")
9124 (home-page "https://github.com/jnjcc/cl-qrencode")
9125 (license license:gpl2+)))
9126
9127 (define-public cl-qrencode
9128 (sbcl-package->cl-source-package sbcl-cl-qrencode))
9129
9130 (define-public ecl-cl-qrencode
9131 (sbcl-package->ecl-package sbcl-cl-qrencode))
9132
9133 (define-public sbcl-hdf5-cffi
9134 (let ((commit "5b5c88f191e470e4fe96b462334e3ce0806eed5c")
9135 (revision "1"))
9136 (package
9137 (name "sbcl-hdf5-cffi")
9138 (version (git-version "1.8.18" revision commit))
9139 (source
9140 (origin
9141 (method git-fetch)
9142 (uri (git-reference
9143 (url "https://github.com/hdfgroup/hdf5-cffi")
9144 (commit commit)))
9145 (file-name (git-file-name name version))
9146 (sha256
9147 (base32
9148 "0vda3075423xz83qky998lpac5b04dwfv7bwgh9jq8cs5v0zrxjf"))))
9149 (build-system asdf-build-system/sbcl)
9150 (synopsis "Common Lisp bindings for the HDF5 library")
9151 (description
9152 "@code{hdf5-cffi} is a CFFI wrapper for the HDF5 library.")
9153 (home-page "https://github.com/hdfgroup/hdf5-cffi")
9154 (license (license:non-copyleft
9155 (string-append "https://github.com/HDFGroup/hdf5-cffi/raw/"
9156 commit
9157 "/LICENSE")))
9158 (inputs
9159 `(("cffi" ,sbcl-cffi)
9160 ("hdf5" ,hdf5-1.10)))
9161 (native-inputs
9162 `(("fiveam" ,sbcl-fiveam)))
9163 (arguments
9164 `(#:test-asd-file "hdf5-cffi.test.asd"
9165 ;; Tests depend on hdf5-cffi.examples.asd in addition to hdf5-cffi.asd,
9166 ;; I don't know if there is a way to tell asdf-build-system to load
9167 ;; an additional system first, so tests are disabled.
9168 #:tests? #f
9169 #:phases
9170 (modify-phases %standard-phases
9171 (add-after 'unpack 'fix-paths
9172 (lambda* (#:key inputs #:allow-other-keys)
9173 (substitute* "src/library.lisp"
9174 (("libhdf5.so")
9175 (string-append
9176 (assoc-ref inputs "hdf5")
9177 "/lib/libhdf5.so")))))
9178 (add-after 'unpack 'fix-dependencies
9179 (lambda* (#:key inputs #:allow-other-keys)
9180 (substitute* "hdf5-cffi.asd"
9181 ((":depends-on \\(:cffi\\)")
9182 ":depends-on (:cffi :cffi-grovel)"))
9183 (substitute* "hdf5-cffi.test.asd"
9184 ((":depends-on \\(:cffi :hdf5-cffi")
9185 ":depends-on (:cffi :cffi-grovel :hdf5-cffi"))))))))))
9186
9187 (define-public cl-hdf5-cffi
9188 (sbcl-package->cl-source-package sbcl-hdf5-cffi))
9189
9190 (define-public ecl-hdf5-cffi
9191 (sbcl-package->ecl-package sbcl-hdf5-cffi))
9192
9193 (define-public sbcl-cl-randist
9194 (package
9195 (name "sbcl-cl-randist")
9196 (version "0.4.2")
9197 (source
9198 (origin
9199 (method git-fetch)
9200 (uri (git-reference
9201 (url "https://github.com/lvaruzza/cl-randist")
9202 (commit "f088a54b540a7adefab7c04094a6103f9edda3d0")))
9203 (file-name (git-file-name name version))
9204 (sha256
9205 (base32
9206 "0l8hyd6nbxb7f50vyxz3rbbm7kgr1fnadc40jywy4xj5vi5kpj5g"))))
9207 (build-system asdf-build-system/sbcl)
9208 (synopsis "Random distributions for Common Lisp")
9209 (description
9210 "Manual translation from C to Common Lisp of some random number
9211 generation functions from the GSL library.")
9212 (home-page "https://github.com/lvaruzza/cl-randist")
9213 (license license:bsd-2)
9214 (arguments
9215 `(#:tests? #f))))
9216
9217 (define-public cl-randist
9218 (sbcl-package->cl-source-package sbcl-cl-randist))
9219
9220 (define-public ecl-cl-randist
9221 (sbcl-package->ecl-package sbcl-cl-randist))
9222
9223 (define-public sbcl-float-features
9224 (package
9225 (name "sbcl-float-features")
9226 (version "1.0.0")
9227 (source
9228 (origin
9229 (method git-fetch)
9230 (uri (git-reference
9231 (url "https://github.com/Shinmera/float-features")
9232 (commit "d3ef60181635b0849aa28cfc238053b7ca4644b0")))
9233 (file-name (git-file-name name version))
9234 (sha256
9235 (base32
9236 "0yj419k7n59x6rh3grwr6frgwwyria2il6f7wxpfazm8cskv4lzr"))))
9237 (build-system asdf-build-system/sbcl)
9238 (synopsis "Common Lisp IEEE float portability library")
9239 (description
9240 "Portability library for IEEE float features that are not
9241 covered by the Common Lisp standard.")
9242 (home-page "https://github.com/Shinmera/float-features")
9243 (license license:zlib)
9244 (inputs
9245 `(("documentation-utils" ,sbcl-documentation-utils)))
9246 (arguments
9247 `(#:tests? #f))))
9248
9249 (define-public cl-float-features
9250 (sbcl-package->cl-source-package sbcl-float-features))
9251
9252 (define-public ecl-float-features
9253 (sbcl-package->ecl-package sbcl-float-features))
9254
9255 (define-public sbcl-function-cache
9256 (package
9257 (name "sbcl-function-cache")
9258 (version "1.0.3")
9259 (source
9260 (origin
9261 (method git-fetch)
9262 (uri (git-reference
9263 (url "https://github.com/AccelerationNet/function-cache")
9264 (commit "6a5ada401e57da2c8abf046f582029926e61fce8")))
9265 (file-name (git-file-name name version))
9266 (sha256
9267 (base32
9268 "000vmd3f5rx5hs9nvphfric0gkzaadns31c6mxaslpv0k7pkrmc6"))))
9269 (build-system asdf-build-system/sbcl)
9270 (synopsis "Function caching / memoization library for Common Lisp")
9271 (description
9272 "A common lisp library that provides extensible function result
9273 caching based on arguments (an expanded form of memoization).")
9274 (home-page "https://github.com/AccelerationNet/function-cache")
9275 (license
9276 (license:non-copyleft
9277 "https://github.com/AccelerationNet/function-cache/blob/master/README.md"))
9278 (inputs
9279 `(("alexandria" ,sbcl-alexandria)
9280 ("cl-interpol" ,sbcl-cl-interpol)
9281 ("iterate" ,sbcl-iterate)
9282 ("symbol-munger" ,sbcl-symbol-munger)
9283 ("closer-mop" ,sbcl-closer-mop)))
9284 (arguments
9285 `(#:tests? #f))))
9286
9287 (define-public cl-function-cache
9288 (sbcl-package->cl-source-package sbcl-function-cache))
9289
9290 (define-public ecl-function-cache
9291 (sbcl-package->ecl-package sbcl-function-cache))
9292
9293 (define-public sbcl-type-r
9294 (let ((commit "83c89e38f2f7a7b16f1012777ecaf878cfa6a267")
9295 (revision "1"))
9296 (package
9297 (name "sbcl-type-r")
9298 (version (git-version "0.0.0" revision commit))
9299 (source
9300 (origin
9301 (method git-fetch)
9302 (uri (git-reference
9303 (url "https://github.com/guicho271828/type-r")
9304 (commit commit)))
9305 (file-name (git-file-name name version))
9306 (sha256
9307 (base32
9308 "1arsxc2539rg8vbrdirz4xxj1b06mc6g6rqndz7a02g127qvk2sm"))))
9309 (build-system asdf-build-system/sbcl)
9310 (synopsis "Parser interface for Common Lisp built-in compound types")
9311 (description
9312 "Collections of accessor functions and patterns to access
9313 the elements in compound type specifier, e.g. @code{dimensions} in
9314 @code{(array element-type dimensions)}")
9315 (home-page "https://github.com/guicho271828/type-r")
9316 (license license:lgpl3+)
9317 (inputs
9318 `(("trivia" ,sbcl-trivia)
9319 ("alexandria" ,sbcl-alexandria)))
9320 (native-inputs
9321 `(("fiveam" ,sbcl-fiveam)))
9322 (arguments
9323 `(#:test-asd-file "type-r.test.asd")))))
9324
9325 (define-public cl-type-r
9326 (sbcl-package->cl-source-package sbcl-type-r))
9327
9328 (define-public ecl-type-r
9329 (sbcl-package->ecl-package sbcl-type-r))
9330
9331 (define-public sbcl-trivialib-type-unify
9332 (let ((commit "62492ebf04db567dcf435ae84c50b7b8202ecf99")
9333 (revision "1"))
9334 (package
9335 (name "sbcl-trivialib-type-unify")
9336 (version (git-version "0.1" revision commit))
9337 (source
9338 (origin
9339 (method git-fetch)
9340 (uri (git-reference
9341 (url "https://github.com/guicho271828/trivialib.type-unify")
9342 (commit commit)))
9343 (file-name (git-file-name name version))
9344 (sha256
9345 (base32
9346 "1bkyfzbwv75p50zp8n1n9rh2r29pw3vgz91gmn2gzzkyq3khj1vh"))))
9347 (build-system asdf-build-system/sbcl)
9348 (synopsis "Common Lisp type unification")
9349 (description
9350 "Unifies a parametrized type specifier against an actual type specifier.
9351 Importantly, it handles complicated array-subtypes and number-related types
9352 correctly.")
9353 (home-page "https://github.com/guicho271828/trivialib.type-unify")
9354 (license license:lgpl3+)
9355 (inputs
9356 `(("alexandria" ,sbcl-alexandria)
9357 ("trivia" ,sbcl-trivia)
9358 ("introspect-environment" ,sbcl-introspect-environment)
9359 ("type-r" ,sbcl-type-r)))
9360 (native-inputs
9361 `(("fiveam" ,sbcl-fiveam)))
9362 (arguments
9363 `(#:asd-systems '("trivialib.type-unify")
9364 #:test-asd-file "trivialib.type-unify.test.asd")))))
9365
9366 (define-public cl-trivialib-type-unify
9367 (sbcl-package->cl-source-package sbcl-trivialib-type-unify))
9368
9369 (define-public ecl-trivialib-type-unify
9370 (sbcl-package->ecl-package sbcl-trivialib-type-unify))
9371
9372 (define-public sbcl-specialized-function
9373 (let ((commit "dee56d2d2b6ecd10500ad291c56217698604ec35")
9374 (revision "2"))
9375 (package
9376 (name "sbcl-specialized-function")
9377 (version (git-version "0.0.0" revision commit))
9378 (source
9379 (origin
9380 (method git-fetch)
9381 (uri (git-reference
9382 (url "https://github.com/numcl/specialized-function")
9383 (commit commit)))
9384 (file-name (git-file-name name version))
9385 (sha256
9386 (base32 "1mcc7mmpbnmgnr1cl2jl5r1ai54gn7fbisv2c14sh9za5w4sib82"))))
9387 (build-system asdf-build-system/sbcl)
9388 (synopsis "Julia-like dispatch for Common Lisp")
9389 (description
9390 "This library is part of NUMCL. It provides a macro
9391 @code{SPECIALIZED} that performs a Julia-like dispatch on the arguments,
9392 lazily compiling a type-specific version of the function from the same
9393 code. The main target of this macro is speed.")
9394 (home-page "https://github.com/numcl/specialized-function")
9395 (license license:lgpl3+)
9396 (inputs
9397 `(("trivia" ,sbcl-trivia)
9398 ("alexandria" ,sbcl-alexandria)
9399 ("iterate" ,sbcl-iterate)
9400 ("lisp-namespace" ,sbcl-lisp-namespace)
9401 ("type-r" ,sbcl-type-r)
9402 ("trivial-cltl2" ,sbcl-trivial-cltl2)))
9403 (native-inputs
9404 `(("fiveam" ,sbcl-fiveam)))
9405 (arguments
9406 `(#:asd-files '("specialized-function.asd")
9407 #:test-asd-file "specialized-function.test.asd"
9408 ;; Tests fail because they try to use an internal symbol of SBCL
9409 ;; that does not exists in recent versions:
9410 ;; "The variable SB-VM:COMPLEX-VECTOR-NIL-WIDETAG is unbound."
9411 #:tests? #f)))))
9412
9413 (define-public cl-specialized-function
9414 (sbcl-package->cl-source-package sbcl-specialized-function))
9415
9416 (define-public ecl-specialized-function
9417 (sbcl-package->ecl-package sbcl-specialized-function))
9418
9419 (define-public sbcl-constantfold
9420 (let ((commit "0ff1d97a3fbcb89264f6a2af6ce62b73e7b421f4")
9421 (revision "1"))
9422 (package
9423 (name "sbcl-constantfold")
9424 (version (git-version "0.1" revision commit))
9425 (source
9426 (origin
9427 (method git-fetch)
9428 (uri (git-reference
9429 (url "https://github.com/numcl/constantfold")
9430 (commit commit)))
9431 (file-name (git-file-name name version))
9432 (sha256
9433 (base32
9434 "153h0569z6bff1qbad0bdssplwwny75l7ilqwcfqfdvzsxf9jh06"))))
9435 (build-system asdf-build-system/sbcl)
9436 (synopsis "Support library for numcl")
9437 (description
9438 "Support library for numcl. Registers a function as an
9439 additional form that is considered as a candidate for a constant.")
9440 (home-page "https://github.com/numcl/constantfold")
9441 (license license:lgpl3+)
9442 (inputs
9443 `(("trivia" ,sbcl-trivia)
9444 ("alexandria" ,sbcl-alexandria)
9445 ("iterate" ,sbcl-iterate)
9446 ("lisp-namespace" ,sbcl-lisp-namespace)))
9447 (native-inputs
9448 `(("fiveam" ,sbcl-fiveam)))
9449 (arguments
9450 `(#:asd-files '("constantfold.asd")
9451 #:test-asd-file "constantfold.test.asd")))))
9452
9453 (define-public cl-constantfold
9454 (sbcl-package->cl-source-package sbcl-constantfold))
9455
9456 (define-public ecl-constantfold
9457 (sbcl-package->ecl-package sbcl-constantfold))
9458
9459 (define-public sbcl-gtype
9460 (let ((commit "2442e32485635525af278ebd8fa69a27d5b8cf18")
9461 (revision "2"))
9462 (package
9463 (name "sbcl-gtype")
9464 (version (git-version "0.1" revision commit))
9465 (source
9466 (origin
9467 (method git-fetch)
9468 (uri (git-reference
9469 (url "https://github.com/numcl/gtype")
9470 (commit commit)))
9471 (file-name (git-file-name name version))
9472 (sha256
9473 (base32 "0hbkfdw00v7bsa6zbric34p5w6hfwxycccg8wc2faq0cxhsvpv9h"))))
9474 (build-system asdf-build-system/sbcl)
9475 (synopsis "C++/Julia-like parametric types in Common Lisp")
9476 (description
9477 "Support library for numcl that provides Julia-like runtime parametric
9478 type correctness in Common Lisp. It is based on CLtL2 extensions.")
9479 (home-page "https://github.com/numcl/gtype")
9480 (license license:lgpl3+)
9481 (inputs
9482 `(("trivialib.type-unify" ,sbcl-trivialib-type-unify)
9483 ("trivial-cltl2" ,sbcl-trivial-cltl2)
9484 ("trivia" ,sbcl-trivia)
9485 ("alexandria" ,sbcl-alexandria)
9486 ("iterate" ,sbcl-iterate)
9487 ("type-r" ,sbcl-type-r)))
9488 (native-inputs
9489 `(("fiveam" ,sbcl-fiveam)))
9490 (arguments
9491 `(#:asd-files '("gtype.asd")
9492 #:test-asd-file "gtype.test.asd")))))
9493
9494 (define-public cl-gtype
9495 (sbcl-package->cl-source-package sbcl-gtype))
9496
9497 (define-public ecl-gtype
9498 (let ((pkg (sbcl-package->ecl-package sbcl-gtype)))
9499 (package
9500 (inherit pkg)
9501 (arguments
9502 (substitute-keyword-arguments (package-arguments pkg)
9503 ;; The tests fail on ECL with a COMPILE-FILE-ERROR for t/package.lisp.
9504 ((#:tests? _ #f) #f))))))
9505
9506 (define-public sbcl-numcl
9507 (let ((commit "3e8d40bf774e070e7af1d3dbf01bc8c37dbebd3a")
9508 (revision "2"))
9509 (package
9510 (name "sbcl-numcl")
9511 (version (git-version "0.1.0" revision commit))
9512 (source
9513 (origin
9514 (method git-fetch)
9515 (uri (git-reference
9516 (url "https://github.com/numcl/numcl")
9517 (commit commit)))
9518 (file-name (git-file-name name version))
9519 (sha256
9520 (base32 "1hqpr68f6xkxaj1hjjayyh97wcdmj51k20qrd3nsv1rcpmdc5ll4"))))
9521 (build-system asdf-build-system/sbcl)
9522 (synopsis "Numpy clone in Common Lisp")
9523 (description
9524 "This is a Numpy clone in Common Lisp. At the moment the
9525 library is written in pure Common Lisp, focusing more on correctness
9526 and usefulness, not speed. Track the progress at
9527 @url{https://github.com/numcl/numcl/projects/1}.")
9528 (home-page "https://github.com/numcl/numcl")
9529 (license license:lgpl3+)
9530 (inputs
9531 `(("trivia" ,sbcl-trivia)
9532 ("alexandria" ,sbcl-alexandria)
9533 ("iterate" ,sbcl-iterate)
9534 ("lisp-namespace" ,sbcl-lisp-namespace)
9535 ("type-r" ,sbcl-type-r)
9536 ("constantfold" ,sbcl-constantfold)
9537 ("cl-randist" ,sbcl-cl-randist)
9538 ("float-features" ,sbcl-float-features)
9539 ("function-cache" ,sbcl-function-cache)
9540 ("specialized-function" ,sbcl-specialized-function)
9541 ("gtype" ,sbcl-gtype)))
9542 (native-inputs
9543 `(("fiveam" ,sbcl-fiveam)))
9544 (arguments
9545 `(#:asd-files '("numcl.asd")
9546 #:test-asd-file "numcl.test.asd"
9547 ;; Tests fail on SBCL with "Heap exhausted, game over",
9548 ;; but they pass on ECL.
9549 #:tests? #f)))))
9550
9551 (define-public cl-numcl
9552 (sbcl-package->cl-source-package sbcl-numcl))
9553
9554 (define-public ecl-numcl
9555 (let ((pkg (sbcl-package->ecl-package sbcl-numcl)))
9556 (package
9557 (inherit pkg)
9558 (arguments
9559 (substitute-keyword-arguments (package-arguments pkg)
9560 ((#:tests? _ #f) #t))))))
9561
9562 (define-public sbcl-pzmq
9563 (let ((commit "7c7390eedc469d033c72dc497984d1536ee75826")
9564 (revision "1"))
9565 (package
9566 (name "sbcl-pzmq")
9567 (version (git-version "0.0.0" revision commit))
9568 (source
9569 (origin
9570 (method git-fetch)
9571 (uri (git-reference
9572 (url "https://github.com/orivej/pzmq")
9573 (commit commit)))
9574 (file-name (git-file-name name version))
9575 (sha256
9576 (base32 "0gmwzf7h90wa7v4wnk49g0hv2mdalljpwhyigxcb967wzv8lqci9"))))
9577 (build-system asdf-build-system/sbcl)
9578 (native-inputs
9579 `(("bordeaux-threads" ,sbcl-bordeaux-threads)
9580 ("fiveam" ,sbcl-fiveam)
9581 ("let-plus" ,sbcl-let-plus)))
9582 (inputs
9583 `(("cffi" ,sbcl-cffi)
9584 ("zeromq" ,zeromq)))
9585 (arguments
9586 `(#:phases (modify-phases %standard-phases
9587 (add-after 'unpack 'fix-paths
9588 (lambda* (#:key inputs #:allow-other-keys)
9589 (substitute* "c-api.lisp"
9590 (("\"libzmq")
9591 (string-append "\""
9592 (assoc-ref inputs "zeromq")
9593 "/lib/libzmq")))
9594 #t)))))
9595 (synopsis "Common Lisp bindings for the ZeroMQ library")
9596 (description "This Common Lisp library provides bindings for the ZeroMQ
9597 lightweight messaging kernel.")
9598 (home-page "https://github.com/orivej/pzmq")
9599 (license license:unlicense))))
9600
9601 (define-public cl-pzmq
9602 (sbcl-package->cl-source-package sbcl-pzmq))
9603
9604 (define-public ecl-pzmq
9605 (sbcl-package->ecl-package sbcl-pzmq))
9606
9607 (define-public sbcl-clss
9608 (let ((revision "1")
9609 (commit "2a8e8615ab55870d4ca01928f3ed3bbeb4e75c8d"))
9610 (package
9611 (name "sbcl-clss")
9612 (version (git-version "0.3.1" revision commit))
9613 (source
9614 (origin
9615 (method git-fetch)
9616 (uri
9617 (git-reference
9618 (url "https://github.com/Shinmera/clss")
9619 (commit commit)))
9620 (sha256
9621 (base32 "0la4dbcda78x29szanylccrsljqrn9d1mhh569sqkyp44ni5fv91"))
9622 (file-name (git-file-name name version))))
9623 (inputs
9624 `(("array-utils" ,sbcl-array-utils)
9625 ("plump" ,sbcl-plump)))
9626 (build-system asdf-build-system/sbcl)
9627 (synopsis "DOM tree searching engine based on CSS selectors")
9628 (description "CLSS is a DOM traversal engine based on CSS
9629 selectors. It makes use of the Plump-DOM and is used by lQuery.")
9630 (home-page "https://github.com/Shinmera/clss")
9631 (license license:zlib))))
9632
9633 (define-public cl-clss
9634 (sbcl-package->cl-source-package sbcl-clss))
9635
9636 (define-public ecl-clss
9637 (sbcl-package->ecl-package sbcl-clss))
9638
9639 (define-public sbcl-lquery
9640 (let ((revision "1")
9641 (commit "8048111c6b83956daa632e7a3ffbd8c9c203bd8d"))
9642 (package
9643 (name "sbcl-lquery")
9644 (version (git-version "3.2.1" revision commit))
9645 (source
9646 (origin
9647 (method git-fetch)
9648 (uri
9649 (git-reference
9650 (url "https://github.com/Shinmera/lquery")
9651 (commit commit)))
9652 (sha256
9653 (base32 "0520mcpxc2d6fdm8z61arpgd2z38kan7cf06qs373n5r64rakz6w"))
9654 (file-name (git-file-name name version))))
9655 (native-inputs
9656 `(("fiveam" ,sbcl-fiveam)))
9657 (inputs
9658 `(("array-utils" ,sbcl-array-utils)
9659 ("form-fiddle" ,sbcl-form-fiddle)
9660 ("plump" ,sbcl-plump)
9661 ("clss" ,sbcl-clss)))
9662 (build-system asdf-build-system/sbcl)
9663 (synopsis "Library to allow jQuery-like HTML/DOM manipulation")
9664 (description "@code{lQuery} is a DOM manipulation library written in
9665 Common Lisp, inspired by and based on the jQuery syntax and
9666 functions. It uses Plump and CLSS as DOM and selector engines. The
9667 main idea behind lQuery is to provide a simple interface for crawling
9668 and modifying HTML sites, as well as to allow for an alternative
9669 approach to templating.")
9670 (home-page "https://github.com/Shinmera/lquery")
9671 (license license:zlib))))
9672
9673 (define-public cl-lquery
9674 (sbcl-package->cl-source-package sbcl-lquery))
9675
9676 (define-public ecl-lquery
9677 (sbcl-package->ecl-package sbcl-lquery))
9678
9679 (define-public sbcl-cl-mysql
9680 (let ((commit "ab56c279c1815aec6ca0bfe85164ff7e85cfb6f9")
9681 (revision "1"))
9682 (package
9683 (name "sbcl-cl-mysql")
9684 (version (git-version "0.1" revision commit))
9685 (source
9686 (origin
9687 (method git-fetch)
9688 (uri (git-reference
9689 (url "https://github.com/hackinghat/cl-mysql")
9690 (commit commit)))
9691 (file-name (git-file-name name version))
9692 (sha256
9693 (base32 "0dg5ynx2ww94d0qfwrdrm7plkn43h64hs4iiq9mj2s1s4ixnp3lr"))))
9694 (build-system asdf-build-system/sbcl)
9695 (native-inputs
9696 `(("stefil" ,sbcl-stefil)))
9697 (inputs
9698 `(("cffi" ,sbcl-cffi)
9699 ("mariadb-lib" ,mariadb "lib")))
9700 (arguments
9701 `(#:tests? #f ; TODO: Tests require a running server
9702 #:phases
9703 (modify-phases %standard-phases
9704 (add-after 'unpack 'fix-paths
9705 (lambda* (#:key inputs #:allow-other-keys)
9706 (substitute* "system.lisp"
9707 (("libmysqlclient_r" all)
9708 (string-append (assoc-ref inputs "mariadb-lib")
9709 "/lib/"
9710 all)))
9711 #t)))))
9712 (synopsis "Common Lisp wrapper for MySQL")
9713 (description
9714 "@code{cl-mysql} is a Common Lisp implementation of a MySQL wrapper.")
9715 (home-page "http://www.hackinghat.com/index.php/cl-mysql")
9716 (license license:expat))))
9717
9718 (define-public cl-mysql
9719 (sbcl-package->cl-source-package sbcl-cl-mysql))
9720
9721 (define-public ecl-cl-mysql
9722 (sbcl-package->ecl-package sbcl-cl-mysql))
9723
9724 (define-public sbcl-postmodern
9725 (package
9726 (name "sbcl-postmodern")
9727 (version "1.32.8")
9728 (source
9729 (origin
9730 (method git-fetch)
9731 (uri (git-reference
9732 (url "https://github.com/marijnh/Postmodern")
9733 (commit (string-append "v" version))))
9734 (file-name (git-file-name name version))
9735 (sha256
9736 (base32 "0vr5inbr8dldf6dsl0qj3h2yrnnsayzfwxfzwkn1pk7xbns2l78q"))))
9737 (build-system asdf-build-system/sbcl)
9738 (native-inputs
9739 `(("fiveam" ,sbcl-fiveam)))
9740 (inputs
9741 `(("alexandria" ,sbcl-alexandria)
9742 ("bordeaux-threads" ,sbcl-bordeaux-threads)
9743 ("cl-base64" ,sbcl-cl-base64)
9744 ("cl-unicode" ,sbcl-cl-unicode)
9745 ("closer-mop" ,sbcl-closer-mop)
9746 ("global-vars" ,sbcl-global-vars)
9747 ("ironclad" ,sbcl-ironclad)
9748 ("local-time" ,sbcl-local-time)
9749 ("md5" ,sbcl-md5)
9750 ("split-sequence" ,sbcl-split-sequence)
9751 ("uax-15" ,sbcl-uax-15)
9752 ("usocket" ,sbcl-usocket)))
9753 (arguments
9754 ;; TODO: (Sharlatan-20210114T171037+0000) tests still failing but on other
9755 ;; step, some functionality in `local-time' prevents passing tests.
9756 ;; Error:
9757 ;;
9758 ;; Can't create directory
9759 ;; /gnu/store
9760 ;; /4f47agf1kyiz057ppy6x5p98i7mcbfsv-sbcl-local-time-1.0.6-2.a177eb9
9761 ;; /lib/common-lisp/sbcl/local-time/src/integration/
9762 ;;
9763 ;; NOTE: (Sharlatan-20210124T191940+0000): When set env HOME to /tmp above
9764 ;; issue is resolved but it required live test database to connect to now.
9765 ;; Keep tests switched off.
9766 `(#:tests? #f
9767 #:asd-systems '("cl-postgres"
9768 "s-sql"
9769 "postmodern"
9770 "simple-date"
9771 "simple-date/postgres-glue")))
9772 (synopsis "Common Lisp library for interacting with PostgreSQL")
9773 (description
9774 "@code{postmodern} is a Common Lisp library for interacting with
9775 PostgreSQL databases. It provides the following features:
9776
9777 @itemize
9778 @item Efficient communication with the database server without need for
9779 foreign libraries.
9780 @item Support for UTF-8 on Unicode-aware Lisp implementations.
9781 @item A syntax for mixing SQL and Lisp code.
9782 @item Convenient support for prepared statements and stored procedures.
9783 @item A metaclass for simple database-access objects.
9784 @end itemize\n
9785
9786 This package produces 4 systems: postmodern, cl-postgres, s-sql, simple-date
9787
9788 @code{SIMPLE-DATE} is a very basic implementation of date and time objects, used
9789 to support storing and retrieving time-related SQL types. It is not loaded by
9790 default and you can use local-time (which has support for timezones) instead.
9791
9792 @code{S-SQL} is used to compile s-expressions to strings of SQL code, escaping
9793 any Lisp values inside, and doing as much as possible of the work at compile
9794 time.
9795
9796 @code{CL-POSTGRES} is the low-level library used for interfacing with a PostgreSQL
9797 server over a socket.
9798
9799 @code{POSTMODERN} itself is a wrapper around these packages and provides higher
9800 level functions, a very simple data access object that can be mapped directly to
9801 database tables and some convient utilities. It then tries to put all these
9802 things together into a convenient programming interface")
9803 (home-page "https://marijnhaverbeke.nl/postmodern/")
9804 (license license:zlib)))
9805
9806 (define-public cl-postmodern
9807 (sbcl-package->cl-source-package sbcl-postmodern))
9808
9809 (define-public ecl-postmodern
9810 (package
9811 (inherit (sbcl-package->ecl-package sbcl-postmodern))
9812 (arguments
9813 `(#:tests? #f
9814 #:asd-systems '("cl-postgres"
9815 "s-sql"
9816 "postmodern"
9817 "simple-date"
9818 "simple-date/postgres-glue")
9819 #:phases
9820 (modify-phases %standard-phases
9821 (add-after 'unpack 'fix-build
9822 (lambda _
9823 (substitute* "cl-postgres.asd"
9824 ((":or :sbcl :allegro :ccl :clisp" all)
9825 (string-append all " :ecl")))
9826 #t)))))))
9827
9828 (define-public sbcl-db3
9829 (let ((commit "38e5ad35f025769fb7f8dcdc6e56df3e8efd8e6d")
9830 (revision "1"))
9831 (package
9832 (name "sbcl-db3")
9833 (version (git-version "0.0.0" revision commit))
9834 (source
9835 (origin
9836 (method git-fetch)
9837 (uri (git-reference
9838 (url "https://github.com/dimitri/cl-db3")
9839 (commit commit)))
9840 (file-name (git-file-name "cl-db3" version))
9841 (sha256
9842 (base32 "1i7j0mlri6kbklcx1lsm464s8kmyhhij5c4xh4aybrw8m4ixn1s5"))))
9843 (build-system asdf-build-system/sbcl)
9844 (home-page "https://github.com/dimitri/cl-db3")
9845 (synopsis "Common Lisp library to read dBase III database files")
9846 (description
9847 "This is a Common Lisp library for processing data found in dBase III
9848 database files (dbf and db3 files).")
9849 (license license:public-domain))))
9850
9851 (define-public ecl-db3
9852 (sbcl-package->ecl-package sbcl-db3))
9853
9854 (define-public cl-db3
9855 (sbcl-package->cl-source-package sbcl-db3))
9856
9857 (define-public sbcl-dbi
9858 ;; Master includes a breaking change which other packages depend on since
9859 ;; Quicklisp decided to follow it:
9860 ;; https://github.com/fukamachi/cl-dbi/commit/31c46869722f77fd5292a81b5b101f1347d7fce1
9861 (let ((commit "31c46869722f77fd5292a81b5b101f1347d7fce1"))
9862 (package
9863 (name "sbcl-dbi")
9864 (version (git-version "0.9.4" "1" commit))
9865 (source
9866 (origin
9867 (method git-fetch)
9868 (uri (git-reference
9869 (url "https://github.com/fukamachi/cl-dbi")
9870 (commit commit)))
9871 (file-name (git-file-name name version))
9872 (sha256
9873 (base32 "0r3n4rw12qqxad0cryym2ibm4ddl49gbq4ra227afibsr43nw5k3"))))
9874 (build-system asdf-build-system/sbcl)
9875 (native-inputs
9876 `(("rove" ,sbcl-rove)
9877 ("trivial-types" ,sbcl-trivial-types)))
9878 (inputs
9879 `(("bordeaux-threads" ,sbcl-bordeaux-threads)
9880 ("cl-mysql" ,sbcl-cl-mysql)
9881 ("cl-sqlite" ,sbcl-cl-sqlite)
9882 ("closer-mop" ,sbcl-closer-mop)
9883 ("postmodern" ,sbcl-postmodern)
9884 ("split-sequence" ,sbcl-split-sequence)
9885 ("trivial-garbage" ,sbcl-trivial-garbage)))
9886 (arguments
9887 `(#:asd-systems '("dbi"
9888 "dbd-mysql"
9889 "dbd-postgres"
9890 "dbd-sqlite3")))
9891 (synopsis "Database independent interface for Common Lisp")
9892 (description
9893 "@code{dbi} is a Common Lisp library providing a database independent
9894 interface for MySQL, PostgreSQL and SQLite.")
9895 (home-page "https://github.com/fukamachi/cl-dbi")
9896 (license license:llgpl))))
9897
9898 (define-public cl-dbi
9899 (sbcl-package->cl-source-package sbcl-dbi))
9900
9901 (define-public ecl-dbi
9902 (sbcl-package->ecl-package sbcl-dbi))
9903
9904 (define-public sbcl-uffi
9905 (package
9906 (name "sbcl-uffi")
9907 (version "2.1.2")
9908 (source
9909 (origin
9910 (method git-fetch)
9911 (uri (git-reference
9912 (url "http://git.kpe.io/uffi.git")
9913 (commit (string-append "v" version))))
9914 (file-name (git-file-name name version))
9915 (sha256
9916 (base32 "1hqszvz0a3wk4s9faa83sc3vjxcb5rxmjclyr17yzwg55z733kry"))))
9917 (build-system asdf-build-system/sbcl)
9918 (arguments
9919 `(#:tests? #f ; TODO: Fix use of deprecated ASDF functions
9920 #:asd-files '("uffi.asd")
9921 #:phases
9922 (modify-phases %standard-phases
9923 (add-after 'unpack 'fix-permissions
9924 (lambda _
9925 (make-file-writable "doc/html.tar.gz")
9926 #t)))))
9927 (synopsis "Universal foreign function library for Common Lisp")
9928 (description
9929 "UFFI provides a universal foreign function interface (FFI)
9930 for Common Lisp.")
9931 (home-page "http://quickdocs.org/uffi/")
9932 (license license:llgpl)))
9933
9934 (define-public cl-uffi
9935 (package
9936 (inherit (sbcl-package->cl-source-package sbcl-uffi))
9937 (arguments
9938 `(#:phases
9939 ;; asdf-build-system/source has its own phases and does not inherit
9940 ;; from asdf-build-system/sbcl phases.
9941 (modify-phases %standard-phases/source
9942 ;; Already done in SBCL package.
9943 (delete 'reset-gzip-timestamps))))))
9944
9945 (define-public sbcl-clsql
9946 (package
9947 (name "sbcl-clsql")
9948 (version "6.7.0")
9949 (source
9950 (origin
9951 (method git-fetch)
9952 (uri (git-reference
9953 (url "http://git.kpe.io/clsql.git")
9954 (commit (string-append "v" version))))
9955 (file-name (git-file-name name version))
9956 (sha256
9957 (base32 "1v1k3s5bsy3lgd9gk459bzpb1r0kdjda25s29samxw4gsgf1fqvp"))
9958 (snippet
9959 '(begin
9960 ;; Remove precompiled libraries.
9961 (delete-file "db-mysql/clsql_mysql.dll")
9962 (delete-file "uffi/clsql_uffi.dll")
9963 (delete-file "uffi/clsql_uffi.lib")
9964 #t))))
9965 (build-system asdf-build-system/sbcl)
9966 (native-inputs
9967 `(("rt" ,sbcl-rt)))
9968 (inputs
9969 `(("cffi" ,sbcl-cffi)
9970 ("md5" ,sbcl-md5)
9971 ("mysql" ,mysql)
9972 ("postgresql" ,postgresql)
9973 ("postmodern" ,sbcl-postmodern)
9974 ("sqlite" ,sqlite)
9975 ("uffi" ,sbcl-uffi)
9976 ("zlib" ,zlib)))
9977 (arguments
9978 `(#:asd-files '("clsql.asd"
9979 "clsql-uffi.asd"
9980 "clsql-sqlite3.asd"
9981 "clsql-postgresql.asd"
9982 "clsql-postgresql-socket3.asd"
9983 "clsql-mysql.asd")
9984 #:asd-systems '("clsql"
9985 "clsql-sqlite3"
9986 "clsql-postgresql"
9987 "clsql-postgresql-socket3"
9988 "clsql-mysql")
9989 #:phases
9990 (modify-phases %standard-phases
9991 (add-after 'unpack 'fix-permissions
9992 (lambda _
9993 (make-file-writable "doc/html.tar.gz")
9994 #t))
9995 (add-after 'unpack 'fix-build
9996 (lambda _
9997 (substitute* "clsql-uffi.asd"
9998 (("\\(:version uffi \"2.0\"\\)")
9999 "uffi"))
10000 (substitute* "db-postgresql/postgresql-api.lisp"
10001 (("\\(data :cstring\\)")
10002 "(data :string)"))
10003 #t))
10004 (add-after 'unpack 'fix-paths
10005 (lambda* (#:key inputs outputs #:allow-other-keys)
10006 (substitute* "db-sqlite3/sqlite3-loader.lisp"
10007 (("libsqlite3")
10008 (string-append (assoc-ref inputs "sqlite")
10009 "/lib/libsqlite3")))
10010 (substitute* "db-postgresql/postgresql-loader.lisp"
10011 (("libpq")
10012 (string-append (assoc-ref inputs "postgresql")
10013 "/lib/libpq")))
10014 (let ((lib (string-append "#p\""
10015 (assoc-ref outputs "out")
10016 "/lib/\"")))
10017 (substitute* "clsql-mysql.asd"
10018 (("#p\"/usr/lib/clsql/clsql_mysql\\.so\"")
10019 lib))
10020 (substitute* "db-mysql/mysql-loader.lisp"
10021 (("libmysqlclient" all)
10022 (string-append (assoc-ref inputs "mysql") "/lib/" all))
10023 (("clsql-mysql-system::\\*library-file-dir\\*")
10024 lib)))
10025 #t))
10026 (add-before 'build 'build-helper-library
10027 (lambda* (#:key inputs outputs #:allow-other-keys)
10028 (let* ((mysql (assoc-ref inputs "mysql"))
10029 (inc-dir (string-append mysql "/include/mysql"))
10030 (lib-dir (string-append mysql "/lib"))
10031 (shared-lib-dir (string-append (assoc-ref outputs "out")
10032 "/lib"))
10033 (shared-lib (string-append shared-lib-dir
10034 "/clsql_mysql.so")))
10035 (mkdir-p shared-lib-dir)
10036 (invoke "gcc" "-fPIC" "-shared"
10037 "-I" inc-dir
10038 "db-mysql/clsql_mysql.c"
10039 "-Wl,-soname=clsql_mysql"
10040 "-L" lib-dir "-lmysqlclient" "-lz"
10041 "-o" shared-lib)
10042 #t)))
10043 (add-after 'unpack 'fix-tests
10044 (lambda _
10045 (substitute* "clsql.asd"
10046 (("clsql-tests :force t")
10047 "clsql-tests"))
10048 #t)))))
10049 (synopsis "Common Lisp SQL Interface library")
10050 (description
10051 "@code{clsql} is a Common Lisp interface to SQL RDBMS based on the
10052 Xanalys CommonSQL interface for Lispworks. It provides low-level database
10053 interfaces as well as a functional and an object oriented interface.")
10054 (home-page "http://clsql.kpe.io/")
10055 (license license:llgpl)))
10056
10057 (define-public cl-clsql
10058 (package
10059 (inherit (sbcl-package->cl-source-package sbcl-clsql))
10060 (native-inputs
10061 `(("rt" ,cl-rt)))
10062 (inputs
10063 `(("mysql" ,mysql)
10064 ("postgresql" ,postgresql)
10065 ("sqlite" ,sqlite)
10066 ("zlib" ,zlib)))
10067 (propagated-inputs
10068 `(("cffi" ,cl-cffi)
10069 ("md5" ,cl-md5)
10070 ("postmodern" ,cl-postmodern)
10071 ("uffi" ,cl-uffi)))
10072 (arguments
10073 `(#:phases
10074 ;; asdf-build-system/source has its own phases and does not inherit
10075 ;; from asdf-build-system/sbcl phases.
10076 (modify-phases %standard-phases/source
10077 (add-after 'unpack 'fix-permissions
10078 (lambda _
10079 (make-file-writable "doc/html.tar.gz")
10080 #t)))))))
10081
10082 (define-public ecl-clsql
10083 (let ((pkg (sbcl-package->ecl-package sbcl-clsql)))
10084 (package
10085 (inherit pkg)
10086 (inputs
10087 (alist-delete "uffi" (package-inputs pkg)))
10088 (arguments
10089 (substitute-keyword-arguments (package-arguments pkg)
10090 ((#:asd-files asd-files '())
10091 `(cons "clsql-cffi.asd" ,asd-files)))))))
10092
10093 (define-public sbcl-sycamore
10094 (let ((commit "fd2820fec165ad514493426dea209728f64e6d18"))
10095 (package
10096 (name "sbcl-sycamore")
10097 (version "0.0.20120604")
10098 (source
10099 (origin
10100 (method git-fetch)
10101 (uri (git-reference
10102 (url "https://github.com/ndantam/sycamore/")
10103 (commit commit)))
10104 (file-name (git-file-name name version))
10105 (sha256
10106 (base32 "00bv1aj89q5vldmq92zp2364jq312zjq2mbd3iyz1s2b4widzhl7"))))
10107 (build-system asdf-build-system/sbcl)
10108 (inputs
10109 `(("alexandria" ,sbcl-alexandria)
10110 ("cl-ppcre" ,sbcl-cl-ppcre)))
10111 (synopsis "Purely functional data structure library in Common Lisp")
10112 (description
10113 "Sycamore is a fast, purely functional data structure library in Common Lisp.
10114 If features:
10115
10116 @itemize
10117 @item Fast, purely functional weight-balanced binary trees.
10118 @item Leaf nodes are simple-vectors, greatly reducing tree height.
10119 @item Interfaces for tree Sets and Maps (dictionaries).
10120 @item Ropes.
10121 @item Purely functional pairing heaps.
10122 @item Purely functional amortized queue.
10123 @end itemize\n")
10124 (home-page "http://ndantam.github.io/sycamore/")
10125 (license license:bsd-3))))
10126
10127 (define-public cl-sycamore
10128 (sbcl-package->cl-source-package sbcl-sycamore))
10129
10130 (define-public ecl-sycamore
10131 (sbcl-package->ecl-package sbcl-sycamore))
10132
10133 (define-public sbcl-trivial-package-local-nicknames
10134 (package
10135 (name "sbcl-trivial-package-local-nicknames")
10136 (version "0.2")
10137 (home-page "https://github.com/phoe/trivial-package-local-nicknames")
10138 (source
10139 (origin
10140 (method git-fetch)
10141 (uri (git-reference
10142 (url home-page)
10143 (commit "16b7ad4c2b120f50da65154191f468ea5598460e")))
10144 (file-name (git-file-name name version))
10145 (sha256
10146 (base32 "18qc27xkjzdcqrilpk3pm7djldwq5rm3ggd5h9cr8hqcd54i2fqg"))))
10147 (build-system asdf-build-system/sbcl)
10148 (synopsis "Common Lisp compatibility library for package local nicknames")
10149 (description
10150 "This library is a portable compatibility layer around package local nicknames (PLN).
10151 This was done so there is a portability library for the PLN API not included
10152 in DEFPACKAGE.")
10153 (license license:unlicense)))
10154
10155 (define-public cl-trivial-package-local-nicknames
10156 (sbcl-package->cl-source-package sbcl-trivial-package-local-nicknames))
10157
10158 (define-public ecl-trivial-package-local-nicknames
10159 (sbcl-package->ecl-package sbcl-trivial-package-local-nicknames))
10160
10161 (define-public sbcl-enchant
10162 (let ((commit "6af162a7bf10541cbcfcfa6513894900329713fa"))
10163 (package
10164 (name "sbcl-enchant")
10165 (version (git-version "0.0.0" "1" commit))
10166 (home-page "https://github.com/tlikonen/cl-enchant")
10167 (source
10168 (origin
10169 (method git-fetch)
10170 (uri (git-reference
10171 (url home-page)
10172 (commit commit)))
10173 (file-name (git-file-name name version))
10174 (sha256
10175 (base32 "19yh5ihirzi1d8xqy1cjqipzd6ly3245cfxa5s9xx496rryz0s01"))))
10176 (build-system asdf-build-system/sbcl)
10177 (inputs
10178 `(("enchant" ,enchant)
10179 ("cffi" ,sbcl-cffi)))
10180 (arguments
10181 `(#:phases
10182 (modify-phases %standard-phases
10183 (add-after 'unpack 'fix-paths
10184 (lambda* (#:key inputs #:allow-other-keys)
10185 (substitute* "load-enchant.lisp"
10186 (("libenchant")
10187 (string-append
10188 (assoc-ref inputs "enchant") "/lib/libenchant-2"))))))))
10189 (synopsis "Common Lisp interface for the Enchant spell-checker library")
10190 (description
10191 "Enchant is a Common Lisp interface for the Enchant spell-checker
10192 library. The Enchant library is a generic spell-checker library which uses
10193 other spell-checkers transparently as back-end. The library supports the
10194 multiple checkers, including Aspell and Hunspell.")
10195 (license license:public-domain))))
10196
10197 (define-public cl-enchant
10198 (sbcl-package->cl-source-package sbcl-enchant))
10199
10200 (define-public ecl-enchant
10201 (sbcl-package->ecl-package sbcl-enchant))
10202
10203 (define-public sbcl-cl-change-case
10204 (let ((commit "5ceff2a5f8bd845b6cb510c6364176b27a238fd3"))
10205 (package
10206 (name "sbcl-cl-change-case")
10207 (version (git-version "0.1.0" "1" commit))
10208 (home-page "https://github.com/rudolfochrist/cl-change-case")
10209 (source
10210 (origin
10211 (method git-fetch)
10212 (uri (git-reference
10213 (url home-page)
10214 (commit commit)))
10215 (file-name (git-file-name name version))
10216 (sha256
10217 (base32 "1afyglglk9z3yg8gylcl301bl2r8vq3sllyznzj9s5xi5gs6qyf2"))))
10218 (build-system asdf-build-system/sbcl)
10219 (inputs
10220 `(("cl-ppcre" ,sbcl-cl-ppcre)
10221 ("cl-ppcre-unicode" ,sbcl-cl-ppcre-unicode)))
10222 (native-inputs
10223 `(("fiveam" ,sbcl-fiveam)))
10224 (arguments
10225 '(;; FIXME: Test pass but phase fails with 'Component
10226 ;; "cl-change-case-test" not found, required by'.
10227 #:tests? #f
10228 #:test-asd-file "cl-change-case-test.asd"))
10229 (synopsis "Convert Common Lisp strings between camelCase, PascalCase and more")
10230 (description
10231 "@code{cl-change-case} is library to convert strings between camelCase,
10232 PascalCase, snake_case, param-case, CONSTANT_CASE and more.")
10233 (license license:llgpl))))
10234
10235 (define-public cl-change-case
10236 (sbcl-package->cl-source-package sbcl-cl-change-case))
10237
10238 (define-public ecl-cl-change-case
10239 (sbcl-package->ecl-package sbcl-cl-change-case))
10240
10241 (define-public sbcl-modularize
10242 (let ((commit "86c5d9a11fbd2df9f0f03ac10b5d71837c8934ba")
10243 (revision "1"))
10244 (package
10245 (name "sbcl-modularize")
10246 (version (git-version "1.0.0" revision commit))
10247 (source
10248 (origin
10249 (method git-fetch)
10250 (uri (git-reference
10251 (url "https://github.com/Shinmera/modularize")
10252 (commit commit)))
10253 (file-name (git-file-name name version))
10254 (sha256
10255 (base32 "1zys29rfkb649rkgl3snxhajk8d5yf7ryxkrwy020kwdh7zdsg7d"))))
10256 (build-system asdf-build-system/sbcl)
10257 (arguments
10258 `(#:test-asd-file "modularize-test-module.asd"
10259 #:asd-files '("modularize.asd" "modularize-test-module.asd")
10260 #:asd-systems '("modularize" "modularize-test-module")))
10261 (inputs
10262 `(("documentation-utils" ,sbcl-documentation-utils)
10263 ("trivial-package-local-nicknames" ,sbcl-trivial-package-local-nicknames)))
10264 (home-page "https://shinmera.github.io/modularize/")
10265 (synopsis "Common Lisp modularization framework")
10266 (description
10267 "@code{MODULARIZE} is an attempt at providing a common interface to
10268 segregate major application components. This is achieved by adding special
10269 treatment to packages. Each module is a package that is specially registered,
10270 which allows it to interact and co-exist with other modules in better ways. For
10271 instance, by adding module definition options you can introduce mechanisms to
10272 tie modules together in functionality, hook into each other and so on.")
10273 (license license:zlib))))
10274
10275 (define-public ecl-modularize
10276 (sbcl-package->ecl-package sbcl-modularize))
10277
10278 (define-public cl-modularize
10279 (sbcl-package->cl-source-package sbcl-modularize))
10280
10281 (define-public sbcl-modularize-hooks
10282 (let ((commit "e0348ed3ffd59a9ec31ca4ab28289e748bfbf96a")
10283 (revision "1"))
10284 (package
10285 (name "sbcl-modularize-hooks")
10286 (version (git-version "1.0.2" revision commit))
10287 (source
10288 (origin
10289 (method git-fetch)
10290 (uri (git-reference
10291 (url "https://github.com/Shinmera/modularize-hooks")
10292 (commit commit)))
10293 (file-name (git-file-name "modularize-hooks" version))
10294 (sha256
10295 (base32 "12kjvin8hxidwkzfb7inqv5b6g5qzcssnj9wc497v2ixc56fqdz7"))))
10296 (build-system asdf-build-system/sbcl)
10297 (inputs
10298 `(("closer-mop" ,sbcl-closer-mop)
10299 ("lambda-fiddle" ,sbcl-lambda-fiddle)
10300 ("modularize" ,sbcl-modularize)
10301 ("trivial-arguments" ,sbcl-trivial-arguments)))
10302 (home-page "https://shinmera.github.io/modularize-hooks/")
10303 (synopsis "Generic hooks and triggers extension for Modularize")
10304 (description
10305 "This is a simple extension to @code{MODULARIZE} that allows modules to
10306 define and trigger hooks, which other modules can hook on to.")
10307 (license license:zlib))))
10308
10309 (define-public ecl-modularize-hooks
10310 (sbcl-package->ecl-package sbcl-modularize-hooks))
10311
10312 (define-public cl-modularize-hooks
10313 (sbcl-package->cl-source-package sbcl-modularize-hooks))
10314
10315 (define-public sbcl-modularize-interfaces
10316 (let ((commit "96353657afb8c7aeba7ef5b51eb04c5ed3bcb6ef")
10317 (revision "1"))
10318 (package
10319 (name "sbcl-modularize-interfaces")
10320 (version (git-version "0.9.3" revision commit))
10321 (source
10322 (origin
10323 (method git-fetch)
10324 (uri (git-reference
10325 (url "https://github.com/Shinmera/modularize-interfaces")
10326 (commit commit)))
10327 (file-name (git-file-name "modularize-interfaces" version))
10328 (sha256
10329 (base32 "0bjf4wy39cwf75m7vh0r7mmcchs09yz2lrbyap98hnq8blq70fhc"))))
10330 (build-system asdf-build-system/sbcl)
10331 (inputs
10332 `(("lambda-fiddle" ,sbcl-lambda-fiddle)
10333 ("modularize" ,sbcl-modularize)
10334 ("trivial-arguments" ,sbcl-trivial-arguments)
10335 ("trivial-indent" ,sbcl-trivial-indent)))
10336 (home-page "https://shinmera.github.io/modularize-interfaces/")
10337 (synopsis "Programmatical interfaces extension for Modularize")
10338 (description
10339 "This is an extension to @code{MODULARIZE} that allows your application
10340 to define interfaces in-code that serve both as a primary documentation and as
10341 compliance control.")
10342 (license license:zlib))))
10343
10344 (define-public ecl-modularize-interfaces
10345 (sbcl-package->ecl-package sbcl-modularize-interfaces))
10346
10347 (define-public cl-modularize-interfaces
10348 (sbcl-package->cl-source-package sbcl-modularize-interfaces))
10349
10350 (define-public sbcl-moptilities
10351 (let ((commit "a436f16b357c96b82397ec018ea469574c10dd41"))
10352 (package
10353 (name "sbcl-moptilities")
10354 (version (git-version "0.3.13" "1" commit))
10355 (home-page "https://github.com/gwkkwg/moptilities/")
10356 (source
10357 (origin
10358 (method git-fetch)
10359 (uri (git-reference
10360 (url home-page)
10361 (commit commit)))
10362 (file-name (git-file-name name version))
10363 (sha256
10364 (base32 "1q12bqjbj47lx98yim1kfnnhgfhkl80102fkgp9pdqxg0fp6g5fc"))))
10365 (build-system asdf-build-system/sbcl)
10366 (inputs
10367 `(("closer-mop" ,sbcl-closer-mop)))
10368 (native-inputs
10369 `(("lift" ,sbcl-lift)))
10370 (arguments
10371 `(#:phases
10372 (modify-phases %standard-phases
10373 (add-after 'unpack 'fix-tests
10374 (lambda _
10375 (substitute* "lift-standard.config"
10376 ((":relative-to lift-test")
10377 ":relative-to moptilities-test"))
10378 #t)))))
10379 (synopsis "Compatibility layer for Common Lisp MOP implementation differences")
10380 (description
10381 "MOP utilities provide a common interface between Lisps and make the
10382 MOP easier to use.")
10383 (license license:expat))))
10384
10385 (define-public cl-moptilities
10386 (sbcl-package->cl-source-package sbcl-moptilities))
10387
10388 (define-public sbcl-osicat
10389 (let ((commit "de0c18a367eedc857e1902a7319828af072a0d97"))
10390 (package
10391 (name "sbcl-osicat")
10392 (version (git-version "0.7.0" "1" commit))
10393 (home-page "http://www.common-lisp.net/project/osicat/")
10394 (source
10395 (origin
10396 (method git-fetch)
10397 (uri (git-reference
10398 (url "https://github.com/osicat/osicat")
10399 (commit commit)))
10400 (file-name (git-file-name name version))
10401 (sha256
10402 (base32 "15viw5pi5sa7qq9b4n2rr3dj2jkqr180rh9z1lh8w3rgl42i2adc"))))
10403 (build-system asdf-build-system/sbcl)
10404 (inputs
10405 `(("alexandria" ,sbcl-alexandria)
10406 ("cffi" ,sbcl-cffi)
10407 ("trivial-features" ,sbcl-trivial-features)))
10408 (native-inputs
10409 `(("rt" ,sbcl-rt)))
10410 (synopsis "Operating system interface for Common Lisp")
10411 (description
10412 "Osicat is a lightweight operating system interface for Common Lisp on
10413 Unix-platforms. It is not a POSIX-style API, but rather a simple lispy
10414 accompaniment to the standard ANSI facilities.")
10415 (license license:expat))))
10416
10417 (define-public cl-osicat
10418 (sbcl-package->cl-source-package sbcl-osicat))
10419
10420 (define-public ecl-osicat
10421 (sbcl-package->ecl-package sbcl-osicat))
10422
10423 (define-public sbcl-clx-xembed
10424 (let ((commit "a5c4b844d31ee68ffa58c933cc1cdddde6990743")
10425 (revision "1"))
10426 (package
10427 (name "sbcl-clx-xembed")
10428 (version (git-version "0.1" revision commit))
10429 (home-page "https://github.com/laynor/clx-xembed")
10430 (source
10431 (origin
10432 (method git-fetch)
10433 (uri (git-reference
10434 (url "https://github.com/laynor/clx-xembed")
10435 (commit commit)))
10436 (file-name (git-file-name name version))
10437 (sha256
10438 (base32 "1abx4v36ycmfjdwpjk4hh8058ya8whwia7ds9vd96q2qsrs57f12"))))
10439 (build-system asdf-build-system/sbcl)
10440 (arguments
10441 `(#:asd-systems '("xembed")))
10442 (inputs
10443 `(("sbcl-clx" ,sbcl-clx)))
10444 (synopsis "CL(x) xembed protocol implementation ")
10445 (description "CL(x) xembed protocol implementation")
10446 ;; MIT License
10447 (license license:expat))))
10448
10449 (define-public cl-clx-xembed
10450 (sbcl-package->cl-source-package sbcl-clx-xembed))
10451
10452 (define-public ecl-clx-xembed
10453 (sbcl-package->ecl-package sbcl-clx-xembed))
10454
10455 (define-public sbcl-quantile-estimator
10456 (package
10457 (name "sbcl-quantile-estimator")
10458 (version "0.0.1")
10459 (source
10460 (origin
10461 (method git-fetch)
10462 (uri (git-reference
10463 (url "https://github.com/deadtrickster/quantile-estimator.cl")
10464 (commit "84d0ea405d793f5e808c68c4ddaf25417b0ff8e5")))
10465 (file-name (git-file-name name version))
10466 (sha256
10467 (base32
10468 "0rlswkf0siaabsvvch3dgxmg45fw5w8pd9b7ri2w7a298aya52z9"))))
10469 (build-system asdf-build-system/sbcl)
10470 (arguments
10471 '(#:asd-files '("quantile-estimator.asd")))
10472 (inputs
10473 `(("alexandria" ,sbcl-alexandria)))
10474 (home-page "https://github.com/deadtrickster/quantile-estimator.cl")
10475 (synopsis
10476 "Effective computation of biased quantiles over data streams")
10477 (description
10478 "Common Lisp implementation of Graham Cormode and S.
10479 Muthukrishnan's Effective Computation of Biased Quantiles over Data
10480 Streams in ICDE’05.")
10481 (license license:expat)))
10482
10483 (define-public cl-quantile-estimator
10484 (sbcl-package->cl-source-package sbcl-quantile-estimator))
10485
10486 (define-public ecl-quantile-estimator
10487 (sbcl-package->ecl-package sbcl-quantile-estimator))
10488
10489 (define-public sbcl-prometheus
10490 (package
10491 (name "sbcl-prometheus")
10492 (version "0.4.1")
10493 (source
10494 (origin
10495 (method git-fetch)
10496 (uri (git-reference
10497 (url "https://github.com/deadtrickster/prometheus.cl")
10498 (commit "7352b92296996ff383503e19bdd3bcea30409a15")))
10499 (file-name (git-file-name name version))
10500 (sha256
10501 (base32
10502 "0fzczls2kfgdx18pja4lqxjrz72i583185d8nq0pb3s331hhzh0z"))))
10503 (build-system asdf-build-system/sbcl)
10504 (inputs
10505 `(("alexandria" ,sbcl-alexandria)
10506 ("bordeaux-threads" ,sbcl-bordeaux-threads)
10507 ("cffi" ,sbcl-cffi)
10508 ("cl-fad" ,sbcl-cl-fad)
10509 ("cl-ppcre" ,sbcl-cl-ppcre)
10510 ("drakma" ,sbcl-drakma)
10511 ("hunchentoot" ,sbcl-hunchentoot)
10512 ("local-time" ,sbcl-local-time)
10513 ("quantile-estimator" ,sbcl-quantile-estimator)
10514 ("salza2" ,sbcl-salza2)
10515 ("split-sequence" ,sbcl-split-sequence)
10516 ("trivial-utf-8" ,sbcl-trivial-utf-8)))
10517 (arguments
10518 '(#:asd-files '("prometheus.asd"
10519 "prometheus.collectors.sbcl.asd"
10520 "prometheus.collectors.process.asd"
10521 "prometheus.formats.text.asd"
10522 "prometheus.exposers.hunchentoot.asd"
10523 "prometheus.pushgateway.asd")
10524 #:asd-systems '("prometheus"
10525 "prometheus.collectors.sbcl"
10526 "prometheus.collectors.process"
10527 "prometheus.formats.text"
10528 "prometheus.exposers.hunchentoot"
10529 "prometheus.pushgateway")))
10530 (home-page "https://github.com/deadtrickster/prometheus.cl")
10531 (synopsis "Prometheus.io Common Lisp client")
10532 (description "Prometheus.io Common Lisp client.")
10533 (license license:expat)))
10534
10535 (define-public cl-prometheus
10536 (sbcl-package->cl-source-package sbcl-prometheus))
10537
10538 (define-public ecl-prometheus
10539 (sbcl-package->ecl-package sbcl-prometheus))
10540
10541 (define-public sbcl-uuid
10542 (let ((commit "e7d6680c3138385c0708f7aaf0c96622eeb140e8"))
10543 (package
10544 (name "sbcl-uuid")
10545 (version (git-version "2012.12.26" "1" commit))
10546 (source
10547 (origin
10548 (method git-fetch)
10549 (uri (git-reference
10550 (url "https://github.com/dardoria/uuid")
10551 (commit commit)))
10552 (file-name (git-file-name name version))
10553 (sha256
10554 (base32
10555 "0jnyp2kibcf5cwi60l6grjrj8wws9chasjvsw7xzwyym2lyid46f"))))
10556 (build-system asdf-build-system/sbcl)
10557 (inputs
10558 `(("ironclad" ,sbcl-ironclad)
10559 ("trivial-utf-8" ,sbcl-trivial-utf-8)))
10560 (home-page "https://github.com/dardoria/uuid")
10561 (synopsis
10562 "Common Lisp implementation of UUIDs according to RFC4122")
10563 (description
10564 "Common Lisp implementation of UUIDs according to RFC4122.")
10565 (license license:llgpl))))
10566
10567 (define-public cl-uuid
10568 (sbcl-package->cl-source-package sbcl-uuid))
10569
10570 (define-public ecl-uuid
10571 (sbcl-package->ecl-package sbcl-uuid))
10572
10573 (define-public sbcl-dissect
10574 (let ((commit "cffd38479f0e64e805f167bbdb240b783ecc8d45"))
10575 (package
10576 (name "sbcl-dissect")
10577 (version (git-version "1.0.0" "1" commit))
10578 (source
10579 (origin
10580 (method git-fetch)
10581 (uri (git-reference
10582 (url "https://github.com/Shinmera/dissect")
10583 (commit commit)))
10584 (file-name (git-file-name name version))
10585 (sha256
10586 (base32
10587 "0rmsjkgjl90gl6ssvgd60hb0d5diyhsiyypvw9hbc0ripvbmk5r5"))))
10588 (build-system asdf-build-system/sbcl)
10589 (inputs
10590 `(("cl-ppcre" ,sbcl-cl-ppcre)))
10591 (home-page "https://shinmera.github.io/dissect/")
10592 (synopsis
10593 "Introspection library for the call stack and restarts")
10594 (description
10595 "Dissect is a small Common Lisp library for introspecting the call stack
10596 and active restarts.")
10597 (license license:zlib))))
10598
10599 (define-public cl-dissect
10600 (sbcl-package->cl-source-package sbcl-dissect))
10601
10602 (define-public ecl-dissect
10603 (sbcl-package->ecl-package sbcl-dissect))
10604
10605 (define-public sbcl-rove
10606 (package
10607 (name "sbcl-rove")
10608 (version "0.9.6")
10609 (source
10610 (origin
10611 (method git-fetch)
10612 (uri (git-reference
10613 (url "https://github.com/fukamachi/rove")
10614 (commit "f3695db08203bf26f3b861dc22ac0f4257d3ec21")))
10615 (file-name (git-file-name name version))
10616 (sha256
10617 (base32
10618 "07ala4l2fncxf540fzxj3h5mhi9i4wqllhj0rqk8m2ljl5zbz89q"))))
10619 (build-system asdf-build-system/sbcl)
10620 (inputs
10621 `(("bordeaux-threads" ,sbcl-bordeaux-threads)
10622 ("dissect" ,sbcl-dissect)
10623 ("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
10624 (home-page "https://github.com/fukamachi/rove")
10625 (synopsis
10626 "Yet another common lisp testing library")
10627 (description
10628 "Rove is a unit testing framework for Common Lisp applications.
10629 This is intended to be a successor of Prove.")
10630 (license license:bsd-3)))
10631
10632 (define-public cl-rove
10633 (sbcl-package->cl-source-package sbcl-rove))
10634
10635 (define-public ecl-rove
10636 (sbcl-package->ecl-package sbcl-rove))
10637
10638 (define-public sbcl-exponential-backoff
10639 (let ((commit "8d9e8444d8b3184a524c12ce3449f91613ab714f"))
10640 (package
10641 (name "sbcl-exponential-backoff")
10642 (version (git-version "0" "1" commit))
10643 (source
10644 (origin
10645 (method git-fetch)
10646 (uri (git-reference
10647 (url "https://github.com/death/exponential-backoff")
10648 (commit commit)))
10649 (file-name (git-file-name name version))
10650 (sha256
10651 (base32
10652 "1389hm9hxv85s0125ja4js1bvh8ay4dsy9q1gaynjv27ynik6gmv"))))
10653 (build-system asdf-build-system/sbcl)
10654 (home-page "https://github.com/death/exponential-backoff")
10655 (synopsis "Exponential backoff algorithm in Common Lisp")
10656 (description
10657 "An implementation of the exponential backoff algorithm in Common Lisp.
10658 Inspired by the implementation found in Chromium. Read the header file to
10659 learn about each of the parameters.")
10660 (license license:expat))))
10661
10662 (define-public cl-exponential-backoff
10663 (sbcl-package->cl-source-package sbcl-exponential-backoff))
10664
10665 (define-public ecl-exponential-backoff
10666 (sbcl-package->ecl-package sbcl-exponential-backoff))
10667
10668 (define-public sbcl-sxql
10669 (let ((commit "5aa8b739492c5829e8623432b5d46482263990e8"))
10670 (package
10671 (name "sbcl-sxql")
10672 (version (git-version "0.1.0" "1" commit))
10673 (source
10674 (origin
10675 (method git-fetch)
10676 (uri (git-reference
10677 (url "https://github.com/fukamachi/sxql")
10678 (commit commit)))
10679 (file-name (git-file-name name version))
10680 (sha256
10681 (base32
10682 "0k25p6w2ld9cn8q8s20lda6yjfyp4q89219sviayfgixnj27avnj"))))
10683 (build-system asdf-build-system/sbcl)
10684 (arguments
10685 `(#:test-asd-file "sxql-test.asd"))
10686 (inputs
10687 `(("alexandria" ,sbcl-alexandria)
10688 ("cl-syntax" ,sbcl-cl-syntax)
10689 ("iterate" ,sbcl-iterate)
10690 ("optima" ,sbcl-optima)
10691 ("split-sequence" ,sbcl-split-sequence)
10692 ("trivial-types" ,sbcl-trivial-types)))
10693 (native-inputs
10694 `(("prove" ,sbcl-prove)))
10695 (home-page "https://github.com/fukamachi/sxql")
10696 (synopsis "SQL generator for Common Lisp")
10697 (description "SQL generator for Common Lisp.")
10698 (license license:bsd-3))))
10699
10700 (define-public cl-sxql
10701 (sbcl-package->cl-source-package sbcl-sxql))
10702
10703 (define-public ecl-sxql
10704 (sbcl-package->ecl-package sbcl-sxql))
10705
10706 (define-public sbcl-1am
10707 (let ((commit "8b1da94eca4613fd8a20bdf63f0e609e379b0ba5"))
10708 (package
10709 (name "sbcl-1am")
10710 (version (git-version "0.0" "1" commit))
10711 (source
10712 (origin
10713 (method git-fetch)
10714 (uri (git-reference
10715 (url "https://github.com/lmj/1am")
10716 (commit commit)))
10717 (file-name (git-file-name name version))
10718 (sha256
10719 (base32
10720 "05ss4nz1jb9kb796295482b62w5cj29msfj8zis33sp2rw2vmv2g"))))
10721 (build-system asdf-build-system/sbcl)
10722 (arguments
10723 `(#:asd-systems '("1am")))
10724 (home-page "https://github.com/lmj/1am")
10725 (synopsis "Minimal testing framework for Common Lisp")
10726 (description "A minimal testing framework for Common Lisp.")
10727 (license license:expat))))
10728
10729 (define-public cl-1am
10730 (sbcl-package->cl-source-package sbcl-1am))
10731
10732 (define-public ecl-1am
10733 (sbcl-package->ecl-package sbcl-1am))
10734
10735 (define-public sbcl-cl-ascii-table
10736 (let ((commit "d9f5e774a56fad1b416e4dadb8f8a5b0e84094e2")
10737 (revision "1"))
10738 (package
10739 (name "sbcl-cl-ascii-table")
10740 (version (git-version "0.0.0" revision commit))
10741 (source
10742 (origin
10743 (method git-fetch)
10744 (uri (git-reference
10745 (url "https://github.com/telephil/cl-ascii-table")
10746 (commit commit)))
10747 (file-name (git-file-name name version))
10748 (sha256
10749 (base32 "125fdif9sgl7k0ngjhxv0wjas2q27d075025hvj2rx1b1x948z4s"))))
10750 (build-system asdf-build-system/sbcl)
10751 (synopsis "Library to make ascii-art tables")
10752 (description
10753 "This is a Common Lisp library to present tabular data in ascii-art
10754 tables.")
10755 (home-page "https://github.com/telephil/cl-ascii-table")
10756 (license license:expat))))
10757
10758 (define-public cl-ascii-table
10759 (sbcl-package->cl-source-package sbcl-cl-ascii-table))
10760
10761 (define-public ecl-cl-ascii-table
10762 (sbcl-package->ecl-package sbcl-cl-ascii-table))
10763
10764 (define-public sbcl-cl-rdkafka
10765 (package
10766 (name "sbcl-cl-rdkafka")
10767 (version "1.1.0")
10768 (source
10769 (origin
10770 (method git-fetch)
10771 (uri (git-reference
10772 (url "https://github.com/SahilKang/cl-rdkafka")
10773 (commit (string-append "v" version))))
10774 (file-name (git-file-name name version))
10775 (sha256
10776 (base32
10777 "0z2g0k0xy8k1p9g93h8dy9wbygaq7ziwagm4yz93zk67mhc0b84v"))))
10778 (build-system asdf-build-system/sbcl)
10779 (arguments
10780 `(#:tests? #f ; Attempts to connect to locally running Kafka
10781 #:phases
10782 (modify-phases %standard-phases
10783 (add-after 'unpack 'fix-paths
10784 (lambda* (#:key inputs #:allow-other-keys)
10785 (substitute* "src/low-level/librdkafka-bindings.lisp"
10786 (("librdkafka" all)
10787 (string-append (assoc-ref inputs "librdkafka") "/lib/"
10788 all))))))))
10789 (inputs
10790 `(("bordeaux-threads" ,sbcl-bordeaux-threads)
10791 ("cffi" ,sbcl-cffi)
10792 ("librdkafka" ,librdkafka)
10793 ("lparallel" ,sbcl-lparallel)
10794 ("trivial-garbage" ,sbcl-trivial-garbage)))
10795 (home-page "https://github.com/SahilKang/cl-rdkafka")
10796 (synopsis "Common Lisp client library for Apache Kafka")
10797 (description "A Common Lisp client library for Apache Kafka.")
10798 (license license:gpl3)))
10799
10800 (define-public cl-rdkafka
10801 (sbcl-package->cl-source-package sbcl-cl-rdkafka))
10802
10803 (define-public ecl-cl-rdkafka
10804 (sbcl-package->ecl-package sbcl-cl-rdkafka))
10805
10806 (define-public sbcl-acclimation
10807 (let ((commit "4d51150902568fcd59335f4cc4cfa022df6116a5"))
10808 (package
10809 (name "sbcl-acclimation")
10810 (version (git-version "0.0.0" "1" commit))
10811 (source
10812 (origin
10813 (method git-fetch)
10814 (uri (git-reference
10815 (url "https://github.com/robert-strandh/Acclimation")
10816 (commit commit)))
10817 (file-name (git-file-name name version))
10818 (sha256
10819 (base32
10820 "1aw7rarjl8ai57h0jxnp9hr3dka7qrs55mmbl1p6rhd6xj8mp9wq"))))
10821 (build-system asdf-build-system/sbcl)
10822 (home-page "https://github.com/robert-strandh/Acclimation")
10823 (synopsis "Internationalization library for Common Lisp")
10824 (description "This project is meant to provide tools for
10825 internationalizing Common Lisp programs.
10826
10827 One important aspect of internationalization is of course the language used in
10828 error messages, documentation strings, etc. But with this project we provide
10829 tools for all other aspects of internationalization as well, including dates,
10830 weight, temperature, names of physical quantitites, etc.")
10831 (license license:bsd-2))))
10832
10833 (define-public cl-acclimation
10834 (sbcl-package->cl-source-package sbcl-acclimation))
10835
10836 (define-public ecl-acclimation
10837 (sbcl-package->ecl-package sbcl-acclimation))
10838
10839 (define-public sbcl-clump
10840 (let ((commit "1ea4dbac1cb86713acff9ae58727dd187d21048a"))
10841 (package
10842 (name "sbcl-clump")
10843 (version (git-version "0.0.0" "1" commit))
10844 (source
10845 (origin
10846 (method git-fetch)
10847 (uri (git-reference
10848 (url "https://github.com/robert-strandh/Clump")
10849 (commit commit)))
10850 (file-name (git-file-name name version))
10851 (sha256
10852 (base32
10853 "1639msyagsswj85gc0wd90jgh8588j3qg5q70by9s2brf2q6w4lh"))))
10854 (inputs
10855 `(("acclimation" ,sbcl-acclimation)))
10856 (build-system asdf-build-system/sbcl)
10857 (home-page "https://github.com/robert-strandh/Clump")
10858 (synopsis "Collection of tree implementations for Common Lisp")
10859 (description "The purpose of this library is to provide a collection of
10860 implementations of trees.
10861
10862 In contrast to existing libraries such as cl-containers, it does not impose a
10863 particular use for the trees. Instead, it aims for a stratified design,
10864 allowing client code to choose between different levels of abstraction.
10865
10866 As a consequence of this policy, low-level interfaces are provided where
10867 the concrete representation is exposed, but also high level interfaces
10868 where the trees can be used as search trees or as trees that represent
10869 sequences of objects.")
10870 (license license:bsd-2))))
10871
10872 (define-public cl-clump
10873 (sbcl-package->cl-source-package sbcl-clump))
10874
10875 (define-public ecl-clump
10876 (sbcl-package->ecl-package sbcl-clump))
10877
10878 (define-public sbcl-cluffer
10879 (let ((commit "4aad29c276a58a593064e79972ee4d77cae0af4a"))
10880 (package
10881 (name "sbcl-cluffer")
10882 (version (git-version "0.0.0" "1" commit))
10883 (source
10884 (origin
10885 (method git-fetch)
10886 (uri (git-reference
10887 (url "https://github.com/robert-strandh/cluffer")
10888 (commit commit)))
10889 (file-name (git-file-name name version))
10890 (sha256
10891 (base32
10892 "1bcg13g7qb3dr8z50aihdjqa6miz5ivlc9wsj2csgv1km1mak2kj"))))
10893 (build-system asdf-build-system/sbcl)
10894 (inputs
10895 `(("acclimation" ,sbcl-acclimation)
10896 ("clump" ,sbcl-clump)))
10897 (home-page "https://github.com/robert-strandh/cluffer")
10898 (synopsis "Common Lisp library providing a protocol for text-editor buffers")
10899 (description "Cluffer is a library for representing the buffer of a text
10900 editor. As such, it defines a set of CLOS protocols for client code to
10901 interact with the buffer contents in various ways, and it supplies different
10902 implementations of those protocols for different purposes.")
10903 (license license:bsd-2))))
10904
10905 (define-public cl-cluffer
10906 (sbcl-package->cl-source-package sbcl-cluffer))
10907
10908 (define-public ecl-cluffer
10909 (sbcl-package->ecl-package sbcl-cluffer))
10910
10911 (define-public sbcl-cl-libsvm-format
10912 (let ((commit "3300f84fd8d9f5beafc114f543f9d83417c742fb")
10913 (revision "0"))
10914 (package
10915 (name "sbcl-cl-libsvm-format")
10916 (version (git-version "0.1.0" revision commit))
10917 (source
10918 (origin
10919 (method git-fetch)
10920 (uri (git-reference
10921 (url "https://github.com/masatoi/cl-libsvm-format")
10922 (commit commit)))
10923 (file-name (git-file-name name version))
10924 (sha256
10925 (base32
10926 "0284aj84xszhkhlivaigf9qj855fxad3mzmv3zfr0qzb5k0nzwrg"))))
10927 (build-system asdf-build-system/sbcl)
10928 (native-inputs
10929 `(("prove" ,sbcl-prove)))
10930 (inputs
10931 `(("alexandria" ,sbcl-alexandria)))
10932 (synopsis "LibSVM data format reader for Common Lisp")
10933 (description
10934 "This Common Lisp library provides a fast reader for data in LibSVM
10935 format.")
10936 (home-page "https://github.com/masatoi/cl-libsvm-format")
10937 (license license:expat))))
10938
10939 (define-public cl-libsvm-format
10940 (sbcl-package->cl-source-package sbcl-cl-libsvm-format))
10941
10942 (define-public ecl-cl-libsvm-format
10943 (sbcl-package->ecl-package sbcl-cl-libsvm-format))
10944
10945 (define-public sbcl-cl-online-learning
10946 (let ((commit "87fbef8a340219e853adb3a5bf44a0470da76964")
10947 (revision "1"))
10948 (package
10949 (name "sbcl-cl-online-learning")
10950 (version (git-version "0.5" revision commit))
10951 (source
10952 (origin
10953 (method git-fetch)
10954 (uri (git-reference
10955 (url "https://github.com/masatoi/cl-online-learning")
10956 (commit commit)))
10957 (file-name (git-file-name "cl-online-learning" version))
10958 (sha256
10959 (base32
10960 "1lfq04lnxivx59nq5dd02glyqsqzf3vdn4s9b8wnaln5fs8g2ph9"))))
10961 (build-system asdf-build-system/sbcl)
10962 (native-inputs
10963 `(("prove" ,sbcl-prove)))
10964 (inputs
10965 `(("cl-libsvm-format" ,sbcl-cl-libsvm-format)
10966 ("cl-store" ,sbcl-cl-store)))
10967 (arguments
10968 `(#:test-asd-file "cl-online-learning-test.asd"
10969 #:asd-systems '("cl-online-learning-test"
10970 "cl-online-learning")))
10971 (home-page "https://github.com/masatoi/cl-online-learning")
10972 (synopsis "Online Machine Learning for Common Lisp")
10973 (description
10974 "This library contains a collection of machine learning algorithms for
10975 online linear classification written in Common Lisp.")
10976 (license license:expat))))
10977
10978 (define-public cl-online-learning
10979 (sbcl-package->cl-source-package sbcl-cl-online-learning))
10980
10981 (define-public ecl-cl-online-learning
10982 (sbcl-package->ecl-package sbcl-cl-online-learning))
10983
10984 (define-public sbcl-cl-mpg123
10985 (let ((commit "5f042c839d2ea4a2ff2a7b60c839d8633d64161d")
10986 (revision "1"))
10987 (package
10988 (name "sbcl-cl-mpg123")
10989 (version (git-version "1.0.0" revision commit))
10990 (source
10991 (origin
10992 (method git-fetch)
10993 (uri (git-reference
10994 (url "https://github.com/Shirakumo/cl-mpg123")
10995 (commit commit)))
10996 (file-name (git-file-name "cl-mpg123" version))
10997 (sha256
10998 (base32 "1hl721xaczxck008ax2y3jpkm509ry1sg3lklh2k76764m3ndrjf"))
10999 (modules '((guix build utils)))
11000 (snippet
11001 '(begin
11002 ;; Remove bundled pre-compiled libraries.
11003 (delete-file-recursively "static")
11004 #t))))
11005 (build-system asdf-build-system/sbcl)
11006 (arguments
11007 `(#:asd-files '("cl-mpg123.asd" "cl-mpg123-example.asd")
11008 #:asd-systems '("cl-mpg123" "cl-mpg123-example")
11009 #:phases
11010 (modify-phases %standard-phases
11011 (add-after 'unpack 'fix-paths
11012 (lambda* (#:key inputs #:allow-other-keys)
11013 (substitute* "low-level.lisp"
11014 (("libmpg123.so" all)
11015 (string-append (assoc-ref inputs "libmpg123")
11016 "/lib/" all))))))))
11017 (inputs
11018 `(("cffi" ,sbcl-cffi)
11019 ("cl-out123" ,sbcl-cl-out123)
11020 ("documentation-utils" ,sbcl-documentation-utils)
11021 ("libmpg123" ,mpg123)
11022 ("trivial-features" ,sbcl-trivial-features)
11023 ("trivial-garbage" ,sbcl-trivial-garbage)
11024 ("verbose" ,sbcl-verbose)))
11025 (home-page "https://shirakumo.github.io/cl-mpg123/")
11026 (synopsis "Common Lisp bindings to libmpg123")
11027 (description
11028 "This is a bindings and wrapper library to @code{libmpg123} allowing for
11029 convenient, extensive, and fast decoding of MPEG1/2/3 (most prominently mp3)
11030 files.")
11031 (license license:zlib))))
11032
11033 (define-public ecl-cl-mpg123
11034 (sbcl-package->ecl-package sbcl-cl-mpg123))
11035
11036 (define-public cl-mpg123
11037 (sbcl-package->cl-source-package sbcl-cl-mpg123))
11038
11039 (define-public sbcl-cl-out123
11040 (let ((commit "6b58d3f8c2a28ad09059ac4c60fb3c781b9b421b")
11041 (revision "1"))
11042 (package
11043 (name "sbcl-cl-out123")
11044 (version (git-version "1.0.0" revision commit))
11045 (source
11046 (origin
11047 (method git-fetch)
11048 (uri (git-reference
11049 (url "https://github.com/Shirakumo/cl-out123")
11050 (commit commit)))
11051 (file-name (git-file-name "cl-out123" version))
11052 (sha256
11053 (base32 "0mdwgfax6sq68wvdgjjp78i40ah7wqkpqnvaq8a1c509k7ghdgv1"))
11054 (modules '((guix build utils)))
11055 (snippet
11056 '(begin
11057 ;; Remove bundled pre-compiled libraries.
11058 (delete-file-recursively "static")
11059 #t))))
11060 (build-system asdf-build-system/sbcl)
11061 (arguments
11062 `(#:phases
11063 (modify-phases %standard-phases
11064 (add-after 'unpack 'fix-paths
11065 (lambda* (#:key inputs #:allow-other-keys)
11066 (substitute* "low-level.lisp"
11067 (("libout123.so" all)
11068 (string-append (assoc-ref inputs "libout123")
11069 "/lib/" all)))))
11070 ;; NOTE: (Sharlatan-20210129T134529+0000): ECL package `ext' has no
11071 ;; exported macro `without-interrupts' it's moved to `mp' package
11072 ;; https://github.com/Shirakumo/cl-out123/issues/2
11073 ;; https://gitlab.com/embeddable-common-lisp/ecl/-/blob/develop/src/lsp/mp.lsp
11074 (add-after 'unpack 'fix-ecl-package-name
11075 (lambda _
11076 (substitute* "wrapper.lisp"
11077 (("ext:without-interrupts.*") "mp:without-interrupts\n"))
11078 #t)))))
11079 (inputs
11080 `(("bordeaux-threads" ,sbcl-bordeaux-threads)
11081 ("cffi" ,sbcl-cffi)
11082 ("documentation-utils" ,sbcl-documentation-utils)
11083 ("libout123" ,mpg123)
11084 ("trivial-features" ,sbcl-trivial-features)
11085 ("trivial-garbage" ,sbcl-trivial-garbage)))
11086 (home-page "https://shirakumo.github.io/cl-out123/")
11087 (synopsis "Common Lisp bindings to libout123")
11088 (description
11089 "This is a bindings library to @code{libout123} which allows easy
11090 cross-platform audio playback.")
11091 (license license:zlib))))
11092
11093 (define-public ecl-cl-out123
11094 (sbcl-package->ecl-package sbcl-cl-out123))
11095
11096 (define-public cl-out123
11097 (sbcl-package->cl-source-package sbcl-cl-out123))
11098
11099 (define-public sbcl-cl-random-forest
11100 (let ((commit "fedb36ce99bb6f4d7e3a7dd6d8b058f331308f91")
11101 (revision "1"))
11102 (package
11103 (name "sbcl-cl-random-forest")
11104 (version (git-version "0.1" revision commit))
11105 (source
11106 (origin
11107 (method git-fetch)
11108 (uri (git-reference
11109 (url "https://github.com/masatoi/cl-random-forest")
11110 (commit commit)))
11111 (file-name (git-file-name name version))
11112 (sha256
11113 (base32
11114 "0wqh4dxy5hrvm14jgyfypwhdw35f24rsksid4blz5a6l2z16rlmq"))))
11115 (build-system asdf-build-system/sbcl)
11116 (native-inputs
11117 `(("prove" ,sbcl-prove)
11118 ("trivial-garbage" ,sbcl-trivial-garbage)))
11119 (inputs
11120 `(("alexandria" ,sbcl-alexandria)
11121 ("cl-libsvm-format" ,sbcl-cl-libsvm-format)
11122 ("cl-online-learning" ,sbcl-cl-online-learning)
11123 ("lparallel" ,sbcl-lparallel)))
11124 (arguments
11125 `(#:tests? #f)) ; The tests download data from the Internet
11126 (synopsis "Random Forest and Global Refinement for Common Lisp")
11127 (description
11128 "CL-random-forest is an implementation of Random Forest for multiclass
11129 classification and univariate regression written in Common Lisp. It also
11130 includes an implementation of Global Refinement of Random Forest.")
11131 (home-page "https://github.com/masatoi/cl-random-forest")
11132 (license license:expat))))
11133
11134 (define-public cl-random-forest
11135 (sbcl-package->cl-source-package sbcl-cl-random-forest))
11136
11137 (define-public ecl-cl-random-forest
11138 (sbcl-package->ecl-package sbcl-cl-random-forest))
11139
11140 (define-public sbcl-bordeaux-fft
11141 (let ((commit "4a1f5600cae59bdabcb32de4ee2d7d73a9450d6e")
11142 (revision "0"))
11143 (package
11144 (name "sbcl-bordeaux-fft")
11145 (version (git-version "1.0.1" revision commit))
11146 (source
11147 (origin
11148 (method git-fetch)
11149 (uri (git-reference
11150 (url "https://github.com/ahefner/bordeaux-fft")
11151 (commit commit)))
11152 (file-name (git-file-name name version))
11153 (sha256
11154 (base32 "0j584w6kq2k6r8lp2i14f9605rxhp3r15s33xs08iz1pndn6iwqf"))))
11155 (build-system asdf-build-system/sbcl)
11156 (home-page "http://vintage-digital.com/hefner/software/bordeaux-fft/")
11157 (synopsis "Fast Fourier Transform for Common Lisp")
11158 (description
11159 "The Bordeaux-FFT library provides a reasonably efficient implementation
11160 of the Fast Fourier Transform and its inverse for complex-valued inputs, in
11161 portable Common Lisp.")
11162 (license license:gpl2+))))
11163
11164 (define-public cl-bordeaux-fft
11165 (sbcl-package->cl-source-package sbcl-bordeaux-fft))
11166
11167 (define-public ecl-bordeaux-fft
11168 (sbcl-package->ecl-package sbcl-bordeaux-fft))
11169
11170 (define-public sbcl-napa-fft3
11171 (let ((commit "f2d9614c7167da327c9ceebefb04ff6eae2d2236")
11172 (revision "0"))
11173 (package
11174 (name "sbcl-napa-fft3")
11175 (version (git-version "0.0.1" revision commit))
11176 (source
11177 (origin
11178 (method git-fetch)
11179 (uri (git-reference
11180 (url "https://github.com/pkhuong/Napa-FFT3")
11181 (commit commit)))
11182 (file-name (git-file-name name version))
11183 (sha256
11184 (base32 "1hxjf599xgwm28gbryy7q96j9ys6hfszmv0qxpr5698hxnhknscp"))))
11185 (build-system asdf-build-system/sbcl)
11186 (home-page "https://github.com/pkhuong/Napa-FFT3")
11187 (synopsis "Fast Fourier Transform routines in Common Lisp")
11188 (description
11189 "Napa-FFT3 provides Discrete Fourier Transform (DFT) routines, but also
11190 buildings blocks to express common operations that involve DFTs: filtering,
11191 convolutions, etc.")
11192 (license license:bsd-3))))
11193
11194 (define-public cl-napa-fft3
11195 (sbcl-package->cl-source-package sbcl-napa-fft3))
11196
11197 (define-public sbcl-cl-tga
11198 (let ((commit "4dc2f7b8a259b9360862306640a07a23d4afaacc")
11199 (revision "0"))
11200 (package
11201 (name "sbcl-cl-tga")
11202 (version (git-version "0.0.0" revision commit))
11203 (source
11204 (origin
11205 (method git-fetch)
11206 (uri (git-reference
11207 (url "https://github.com/fisxoj/cl-tga")
11208 (commit commit)))
11209 (file-name (git-file-name name version))
11210 (sha256
11211 (base32 "03k3npmn0xd3fd2m7vwxph82av2xrfb150imqrinlzqmzvz1v1br"))))
11212 (build-system asdf-build-system/sbcl)
11213 (home-page "https://github.com/fisxoj/cl-tga")
11214 (synopsis "TGA file loader for Common Lisp")
11215 (description
11216 "Cl-tga was written to facilitate loading @emph{.tga} files into OpenGL
11217 programs. It's a very simple library, and, at the moment, only supports
11218 non-RLE encoded forms of the files.")
11219 (license license:expat))))
11220
11221 (define-public cl-tga
11222 (sbcl-package->cl-source-package sbcl-cl-tga))
11223
11224 (define-public ecl-cl-tga
11225 (sbcl-package->ecl-package sbcl-cl-tga))
11226
11227 (define-public sbcl-com.gigamonkeys.binary-data
11228 (let ((commit "22e908976d7f3e2318b7168909f911b4a00963ee")
11229 (revision "0"))
11230 (package
11231 (name "sbcl-com.gigamonkeys.binary-data")
11232 (version (git-version "0.0.0" revision commit))
11233 (source
11234 (origin
11235 (method git-fetch)
11236 (uri (git-reference
11237 (url "https://github.com/gigamonkey/monkeylib-binary-data")
11238 (commit commit)))
11239 (file-name (git-file-name name version))
11240 (sha256
11241 (base32 "072v417vmcnvmyh8ddq9vmwwrizm7zwz9dpzi14qy9nsw8q649zw"))))
11242 (build-system asdf-build-system/sbcl)
11243 (inputs
11244 `(("alexandria" ,sbcl-alexandria)))
11245 (home-page "https://github.com/gigamonkey/monkeylib-binary-data")
11246 (synopsis "Common Lisp library for reading and writing binary data")
11247 (description
11248 "This a Common Lisp library for reading and writing binary data. It is
11249 based on code from chapter 24 of the book @emph{Practical Common Lisp}.")
11250 (license license:bsd-3))))
11251
11252 (define-public cl-com.gigamonkeys.binary-data
11253 (sbcl-package->cl-source-package sbcl-com.gigamonkeys.binary-data))
11254
11255 (define-public ecl-com.gigamonkeys.binary-data
11256 (sbcl-package->ecl-package sbcl-com.gigamonkeys.binary-data))
11257
11258 (define-public sbcl-deflate
11259 (package
11260 (name "sbcl-deflate")
11261 (version "1.0.3")
11262 (source
11263 (origin
11264 (method git-fetch)
11265 (uri (git-reference
11266 (url "https://github.com/pmai/Deflate")
11267 (commit (string-append "release-" version))))
11268 (file-name (git-file-name name version))
11269 (sha256
11270 (base32 "1jpdjnxh6cw2d8hk70r2sxn92is52s9b855irvwkdd777fdciids"))))
11271 (build-system asdf-build-system/sbcl)
11272 (home-page "https://github.com/pmai/Deflate")
11273 (synopsis "Native deflate decompression for Common Lisp")
11274 (description
11275 "This library is an implementation of Deflate (RFC 1951) decompression,
11276 with optional support for ZLIB-style (RFC 1950) and gzip-style (RFC 1952)
11277 wrappers of deflate streams. It currently does not handle compression.")
11278 (license license:expat)))
11279
11280 (define-public cl-deflate
11281 (sbcl-package->cl-source-package sbcl-deflate))
11282
11283 (define-public ecl-deflate
11284 (sbcl-package->ecl-package sbcl-deflate))
11285
11286 (define-public sbcl-skippy
11287 (let ((commit "e456210202ca702c792292c5060a264d45e47090")
11288 (revision "0"))
11289 (package
11290 (name "sbcl-skippy")
11291 (version (git-version "1.3.12" revision commit))
11292 (source
11293 (origin
11294 (method git-fetch)
11295 (uri (git-reference
11296 (url "https://github.com/xach/skippy")
11297 (commit commit)))
11298 (file-name (git-file-name name version))
11299 (sha256
11300 (base32 "1sxbn5nh24qpx9w64x8mhp259cxcl1x8p126wk3b91ijjsj7l5vj"))))
11301 (build-system asdf-build-system/sbcl)
11302 (home-page "https://xach.com/lisp/skippy/")
11303 (synopsis "Common Lisp library for GIF images")
11304 (description
11305 "Skippy is a Common Lisp library to read and write GIF image files.")
11306 (license license:bsd-2))))
11307
11308 (define-public cl-skippy
11309 (sbcl-package->cl-source-package sbcl-skippy))
11310
11311 (define-public ecl-skippy
11312 (sbcl-package->ecl-package sbcl-skippy))
11313
11314 (define-public sbcl-cl-freetype2
11315 (let ((commit "96058da730b4812df916c1f4ee18c99b3b15a3de")
11316 (revision "0"))
11317 (package
11318 (name "sbcl-cl-freetype2")
11319 (version (git-version "1.1" revision commit))
11320 (source
11321 (origin
11322 (method git-fetch)
11323 (uri (git-reference
11324 (url "https://github.com/rpav/cl-freetype2")
11325 (commit commit)))
11326 (file-name (git-file-name name version))
11327 (sha256
11328 (base32 "0f8darhairgxnb5bzqcny7nh7ss3471bdzix5rzcyiwdbr5kymjl"))))
11329 (build-system asdf-build-system/sbcl)
11330 (native-inputs
11331 `(("fiveam" ,sbcl-fiveam)))
11332 (inputs
11333 `(("alexandria" ,sbcl-alexandria)
11334 ("cffi" ,sbcl-cffi)
11335 ("freetype" ,freetype)
11336 ("trivial-garbage" ,sbcl-trivial-garbage)))
11337 (arguments
11338 `(#:phases
11339 (modify-phases %standard-phases
11340 (add-after 'unpack 'fix-paths
11341 (lambda* (#:key inputs #:allow-other-keys)
11342 (substitute* "src/ffi/ft2-lib.lisp"
11343 (("\"libfreetype\"")
11344 (string-append "\"" (assoc-ref inputs "freetype")
11345 "/lib/libfreetype\"")))
11346 (substitute* "src/ffi/grovel/grovel-freetype2.lisp"
11347 (("-I/usr/include/freetype")
11348 (string-append "-I" (assoc-ref inputs "freetype")
11349 "/include/freetype")))
11350 #t)))))
11351 (home-page "https://github.com/rpav/cl-freetype2")
11352 (synopsis "Common Lisp bindings for Freetype 2")
11353 (description
11354 "This is a general Freetype 2 wrapper for Common Lisp using CFFI. It's
11355 geared toward both using Freetype directly by providing a simplified API, as
11356 well as providing access to the underlying C structures and functions for use
11357 with other libraries which may also use Freetype.")
11358 (license license:bsd-3))))
11359
11360 (define-public cl-freetype2
11361 (sbcl-package->cl-source-package sbcl-cl-freetype2))
11362
11363 (define-public ecl-cl-freetype2
11364 (sbcl-package->ecl-package sbcl-cl-freetype2))
11365
11366 (define-public sbcl-opticl-core
11367 (let ((commit "b7cd13d26df6b824b216fbc360dc27bfadf04999")
11368 (revision "0"))
11369 (package
11370 (name "sbcl-opticl-core")
11371 (version (git-version "0.0.0" revision commit))
11372 (source
11373 (origin
11374 (method git-fetch)
11375 (uri (git-reference
11376 (url "https://github.com/slyrus/opticl-core")
11377 (commit commit)))
11378 (file-name (git-file-name name version))
11379 (sha256
11380 (base32 "0458bllabcdjghfrqx6aki49c9qmvfmkk8jl75cfpi7q0i12kh95"))))
11381 (build-system asdf-build-system/sbcl)
11382 (inputs
11383 `(("alexandria" ,sbcl-alexandria)))
11384 (home-page "https://github.com/slyrus/opticl-core")
11385 (synopsis "Core classes and pixel access macros for Opticl")
11386 (description
11387 "This Common Lisp library contains the core classes and pixel access
11388 macros for the Opticl image processing library.")
11389 (license license:bsd-2))))
11390
11391 (define-public cl-opticl-core
11392 (sbcl-package->cl-source-package sbcl-opticl-core))
11393
11394 (define-public ecl-opticl-core
11395 (sbcl-package->ecl-package sbcl-opticl-core))
11396
11397 (define-public sbcl-retrospectiff
11398 (let ((commit "c2a69d77d5010f8cdd9045b3e36a08a73da5d321")
11399 (revision "0"))
11400 (package
11401 (name "sbcl-retrospectiff")
11402 (version (git-version "0.2" revision commit))
11403 (source
11404 (origin
11405 (method git-fetch)
11406 (uri (git-reference
11407 (url "https://github.com/slyrus/retrospectiff")
11408 (commit commit)))
11409 (file-name (git-file-name name version))
11410 (sha256
11411 (base32 "0qsn9hpd8j2kp43dk05j8dczz9zppdff5rrclbp45n3ksk9inw8i"))))
11412 (build-system asdf-build-system/sbcl)
11413 (native-inputs
11414 `(("fiveam" ,sbcl-fiveam)))
11415 (inputs
11416 `(("cl-jpeg" ,sbcl-cl-jpeg)
11417 ("com.gigamonkeys.binary-data" ,sbcl-com.gigamonkeys.binary-data)
11418 ("deflate" ,sbcl-deflate)
11419 ("flexi-streams" ,sbcl-flexi-streams)
11420 ("ieee-floats" ,sbcl-ieee-floats)
11421 ("opticl-core" ,sbcl-opticl-core)))
11422 (home-page "https://github.com/slyrus/retrospectiff")
11423 (synopsis "Common Lisp library for TIFF images")
11424 (description
11425 "Retrospectiff is a common lisp library for reading and writing images
11426 in the TIFF (Tagged Image File Format) format.")
11427 (license license:bsd-2))))
11428
11429 (define-public cl-retrospectif
11430 (sbcl-package->cl-source-package sbcl-retrospectiff))
11431
11432 (define-public ecl-retrospectiff
11433 (sbcl-package->ecl-package sbcl-retrospectiff))
11434
11435 (define-public sbcl-mmap
11436 (let ((commit "ba2e98c67e25f0fb8ff838238561120a23903ce7")
11437 (revision "0"))
11438 (package
11439 (name "sbcl-mmap")
11440 (version (git-version "1.0.0" revision commit))
11441 (source
11442 (origin
11443 (method git-fetch)
11444 (uri (git-reference
11445 (url "https://github.com/Shinmera/mmap")
11446 (commit commit)))
11447 (file-name (git-file-name name version))
11448 (sha256
11449 (base32 "0qd0xp20i1pcfn12kkapv9pirb6hd4ns7kz4zf1mmjwykpsln96q"))))
11450 (build-system asdf-build-system/sbcl)
11451 (native-inputs
11452 `(("alexandria" ,sbcl-alexandria)
11453 ("cffi" ,sbcl-cffi)
11454 ("parachute" ,sbcl-parachute)
11455 ("trivial-features" ,sbcl-trivial-features)))
11456 (inputs
11457 `(("cffi" ,sbcl-cffi)
11458 ("documentation-utils" ,sbcl-documentation-utils)))
11459 (home-page "https://shinmera.github.io/mmap/")
11460 (synopsis "File memory mapping for Common Lisp")
11461 (description
11462 "This is a utility library providing access to the @emph{mmap} family of
11463 functions in a portable way. It allows you to directly map a file into the
11464 address space of your process without having to manually read it into memory
11465 sequentially. Typically this is much more efficient for files that are larger
11466 than a few Kb.")
11467 (license license:zlib))))
11468
11469 (define-public cl-mmap
11470 (sbcl-package->cl-source-package sbcl-mmap))
11471
11472 (define-public ecl-mmap
11473 (sbcl-package->ecl-package sbcl-mmap))
11474
11475 (define-public sbcl-3bz
11476 (let ((commit "569614c40408f3aefc77ba233e0e4bd66d3850ad")
11477 (revision "1"))
11478 (package
11479 (name "sbcl-3bz")
11480 (version (git-version "0.0.0" revision commit))
11481 (source
11482 (origin
11483 (method git-fetch)
11484 (uri (git-reference
11485 (url "https://github.com/3b/3bz")
11486 (commit commit)))
11487 (file-name (git-file-name name version))
11488 (sha256
11489 (base32 "0kvvlvf50jhhw1s510f3clpr1a68632bq6d698yxcrx722igcrg4"))))
11490 (build-system asdf-build-system/sbcl)
11491 (inputs
11492 `(("alexandria" ,sbcl-alexandria)
11493 ("babel" ,sbcl-babel)
11494 ("cffi" ,sbcl-cffi)
11495 ("mmap" ,sbcl-mmap)
11496 ("nibbles" ,sbcl-nibbles)
11497 ("trivial-features" ,sbcl-trivial-features)))
11498 (arguments
11499 ;; FIXME: #41437 - Build fails when package name starts from a digit
11500 `(#:asd-systems '("3bz")))
11501 (home-page "https://github.com/3b/3bz")
11502 (synopsis "Deflate decompression for Common Lisp")
11503 (description
11504 "3bz is an implementation of Deflate decompression (RFC 1951) optionally
11505 with zlib (RFC 1950) or gzip (RFC 1952) wrappers, with support for reading from
11506 foreign pointers (for use with mmap and similar, etc), and from CL octet
11507 vectors and streams.")
11508 (license license:expat))))
11509
11510 (define-public cl-3bz
11511 (sbcl-package->cl-source-package sbcl-3bz))
11512
11513 (define-public ecl-3bz
11514 (sbcl-package->ecl-package sbcl-3bz))
11515
11516 (define-public sbcl-zpb-exif
11517 (package
11518 (name "sbcl-zpb-exif")
11519 (version "1.2.4")
11520 (source
11521 (origin
11522 (method git-fetch)
11523 (uri (git-reference
11524 (url "https://github.com/xach/zpb-exif")
11525 (commit (string-append "release-" version))))
11526 (file-name (git-file-name name version))
11527 (sha256
11528 (base32 "15s227jhby55cisz14xafb0p1ws2jmrg2rrbbd00lrb97im84hy6"))))
11529 (build-system asdf-build-system/sbcl)
11530 (home-page "https://xach.com/lisp/zpb-exif/")
11531 (synopsis "EXIF information extractor for Common Lisp")
11532 (description
11533 "This is a Common Lisp library to extract EXIF information from image
11534 files.")
11535 (license license:bsd-2)))
11536
11537 (define-public cl-zpb-exif
11538 (sbcl-package->cl-source-package sbcl-zpb-exif))
11539
11540 (define-public ecl-zpb-exif
11541 (sbcl-package->ecl-package sbcl-zpb-exif))
11542
11543 (define-public sbcl-pngload
11544 (package
11545 (name "sbcl-pngload")
11546 (version "2.0.0")
11547 (source
11548 (origin
11549 (method git-fetch)
11550 (uri (git-reference
11551 (url "https://github.com/bufferswap/pngload")
11552 (commit version)))
11553 (file-name (git-file-name name version))
11554 (sha256
11555 (base32 "1ix8dd0fxlf8xm0bszh1s7sx83hn0vqq8b8c9gkrd5m310w8mpvh"))))
11556 (build-system asdf-build-system/sbcl)
11557 (inputs
11558 `(("3bz" ,sbcl-3bz)
11559 ("alexandria" ,sbcl-alexandria)
11560 ("cffi" ,sbcl-cffi)
11561 ("mmap" ,sbcl-mmap)
11562 ("parse-float" ,sbcl-parse-float)
11563 ("static-vectors" ,sbcl-static-vectors)
11564 ("swap-bytes" ,sbcl-swap-bytes)
11565 ("zpb-exif" ,sbcl-zpb-exif)))
11566 (arguments
11567 ;; Test suite disabled because of a dependency cycle.
11568 ;; pngload tests depend on opticl which depends on pngload.
11569 '(#:tests? #f))
11570 (home-page "https://github.com/bufferswap/pngload")
11571 (synopsis "PNG image decoder for Common Lisp")
11572 (description
11573 "This is a Common Lisp library to load images in the PNG image format,
11574 both from files on disk, or streams in memory.")
11575 (license license:expat)))
11576
11577 (define-public cl-pngload
11578 (sbcl-package->cl-source-package sbcl-pngload))
11579
11580 (define-public ecl-pngload
11581 (sbcl-package->ecl-package sbcl-pngload))
11582
11583 (define-public sbcl-opticl
11584 (let ((commit "e8684416eca2e78e82a7b436d436ef2ea24c019d")
11585 (revision "0"))
11586 (package
11587 (name "sbcl-opticl")
11588 (version (git-version "0.0.0" revision commit))
11589 (source
11590 (origin
11591 (method git-fetch)
11592 (uri (git-reference
11593 (url "https://github.com/slyrus/opticl")
11594 (commit commit)))
11595 (file-name (git-file-name name version))
11596 (sha256
11597 (base32 "03rirnnhhisjbimlmpi725h1d3x0cfv00r57988am873dyzawmm1"))))
11598 (build-system asdf-build-system/sbcl)
11599 (native-inputs
11600 `(("fiveam" ,sbcl-fiveam)))
11601 (inputs
11602 `(("alexandria" ,sbcl-alexandria)
11603 ("cl-jpeg" ,sbcl-cl-jpeg)
11604 ("cl-tga" ,sbcl-cl-tga)
11605 ("png-read" ,sbcl-png-read)
11606 ("pngload" ,sbcl-pngload)
11607 ("retrospectiff" ,sbcl-retrospectiff)
11608 ("skippy" ,sbcl-skippy)
11609 ("zpng" ,sbcl-zpng)))
11610 (arguments
11611 '(#:asd-files '("opticl.asd")))
11612 (home-page "https://github.com/slyrus/opticl")
11613 (synopsis "Image processing library for Common Lisp")
11614 (description
11615 "Opticl is a Common Lisp library for representing, processing, loading,
11616 and saving 2-dimensional pixel-based images.")
11617 (license license:bsd-2))))
11618
11619 (define-public cl-opticl
11620 (sbcl-package->cl-source-package sbcl-opticl))
11621
11622 (define-public ecl-opticl
11623 (sbcl-package->ecl-package sbcl-opticl))
11624
11625 (define-public sbcl-mcclim
11626 (let ((commit "04cc542dd4b461b9d56406e40681d1a8f080730f")
11627 (revision "1"))
11628 (package
11629 (name "sbcl-mcclim")
11630 (version (git-version "0.9.7" revision commit))
11631 (source
11632 (origin
11633 (method git-fetch)
11634 (uri (git-reference
11635 (url "https://github.com/mcclim/mcclim")
11636 (commit commit)))
11637 (file-name (git-file-name name version))
11638 (sha256
11639 (base32 "1xjly8i62z72hfhlnz5kjd9i8xhrwckc7avyizxvhih67pkjmsx0"))))
11640 (build-system asdf-build-system/sbcl)
11641 (native-inputs
11642 `(("fiveam" ,sbcl-fiveam)
11643 ("pkg-config" ,pkg-config)))
11644 (inputs
11645 `(("alexandria" ,sbcl-alexandria)
11646 ("babel" ,sbcl-babel)
11647 ("bordeaux-threads" ,sbcl-bordeaux-threads)
11648 ("cl-freetype2" ,sbcl-cl-freetype2)
11649 ("cl-pdf" ,sbcl-cl-pdf)
11650 ("cffi" ,sbcl-cffi)
11651 ("cl-unicode" ,sbcl-cl-unicode)
11652 ("cl-vectors" ,sbcl-cl-vectors)
11653 ("closer-mop" ,sbcl-closer-mop)
11654 ("clx" ,sbcl-clx)
11655 ("flexi-streams" ,sbcl-flexi-streams)
11656 ("flexichain" ,sbcl-flexichain)
11657 ("font-dejavu" ,font-dejavu)
11658 ("fontconfig" ,fontconfig)
11659 ("freetype" ,freetype)
11660 ("harfbuzz" ,harfbuzz)
11661 ("log4cl" ,sbcl-log4cl)
11662 ("opticl" ,sbcl-opticl)
11663 ("spatial-trees" ,sbcl-spatial-trees)
11664 ("swank" ,sbcl-slime-swank)
11665 ("trivial-features" ,sbcl-trivial-features)
11666 ("trivial-garbage" ,sbcl-trivial-garbage)
11667 ("trivial-gray-streams" ,sbcl-trivial-gray-streams)
11668 ("zpb-ttf" ,sbcl-zpb-ttf)))
11669 (arguments
11670 '(#:asd-systems '("mcclim"
11671 "clim-examples")
11672 #:phases
11673 (modify-phases %standard-phases
11674 (add-after 'unpack 'fix-paths
11675 (lambda* (#:key inputs #:allow-other-keys)
11676 ;; mcclim-truetype uses DejaVu as default font and
11677 ;; sets the path at build time.
11678 (substitute* "Extensions/fonts/fontconfig.lisp"
11679 (("/usr/share/fonts/truetype/dejavu/")
11680 (string-append (assoc-ref inputs "font-dejavu")
11681 "/share/fonts/truetype/")))
11682 (substitute* "Extensions/fontconfig/src/functions.lisp"
11683 (("libfontconfig\\.so")
11684 (string-append (assoc-ref inputs "fontconfig")
11685 "/lib/libfontconfig.so")))
11686 (substitute* "Extensions/harfbuzz/src/functions.lisp"
11687 (("libharfbuzz\\.so")
11688 (string-append (assoc-ref inputs "harfbuzz")
11689 "/lib/libharfbuzz.so")))
11690 #t))
11691 (add-after 'unpack 'fix-build
11692 (lambda _
11693 ;; The cffi-grovel system does not get loaded automatically,
11694 ;; so we load it explicitly.
11695 (substitute* "Extensions/fontconfig/mcclim-fontconfig.asd"
11696 (("\\(asdf:defsystem #:mcclim-fontconfig" all)
11697 (string-append "(asdf:load-system :cffi-grovel)\n" all)))
11698 (substitute* "Extensions/harfbuzz/mcclim-harfbuzz.asd"
11699 (("\\(asdf:defsystem #:mcclim-harfbuzz" all)
11700 (string-append "(asdf:load-system :cffi-grovel)\n" all)))
11701 #t)))))
11702 (home-page "https://common-lisp.net/project/mcclim/")
11703 (synopsis "Common Lisp GUI toolkit")
11704 (description
11705 "McCLIM is an implementation of the @emph{Common Lisp Interface Manager
11706 specification}, a toolkit for writing GUIs in Common Lisp.")
11707 (license license:lgpl2.1+))))
11708
11709 (define-public cl-mcclim
11710 (sbcl-package->cl-source-package sbcl-mcclim))
11711
11712 (define-public ecl-mcclim
11713 (sbcl-package->ecl-package sbcl-mcclim))
11714
11715 (define-public sbcl-cl-inflector
11716 (let ((commit "f1ab16919ccce3bd82a0042677d9616dde2034fe")
11717 (revision "1"))
11718 (package
11719 (name "sbcl-cl-inflector")
11720 (version (git-version "0.2" revision commit))
11721 (source
11722 (origin
11723 (method git-fetch)
11724 (uri (git-reference
11725 (url "https://github.com/AccelerationNet/cl-inflector")
11726 (commit commit)))
11727 (file-name (git-file-name name version))
11728 (sha256
11729 (base32 "1xwwlhik1la4fp984qnx2dqq24v012qv4x0y49sngfpwg7n0ya7y"))))
11730 (build-system asdf-build-system/sbcl)
11731 (native-inputs
11732 `(("lisp-unit2" ,sbcl-lisp-unit2)))
11733 (inputs
11734 `(("alexandria" ,sbcl-alexandria)
11735 ("cl-ppcre" ,sbcl-cl-ppcre)))
11736 (home-page "https://github.com/AccelerationNet/cl-inflector")
11737 (synopsis "Library to pluralize/singularize English and Portuguese words")
11738 (description
11739 "This is a common lisp library to easily pluralize and singularize
11740 English and Portuguese words. This is a port of the ruby ActiveSupport
11741 Inflector module.")
11742 (license license:expat))))
11743
11744 (define-public cl-inflector
11745 (sbcl-package->cl-source-package sbcl-cl-inflector))
11746
11747 (define-public ecl-cl-inflector
11748 (sbcl-package->ecl-package sbcl-cl-inflector))
11749
11750 (define-public sbcl-ixf
11751 (let ((commit "ed26f87e4127e4a9e3aac4ff1e60d1f39cca5183")
11752 (revision "1"))
11753 (package
11754 (name "sbcl-ixf")
11755 (version (git-version "0.1.0" revision commit))
11756 (source
11757 (origin
11758 (method git-fetch)
11759 (uri (git-reference
11760 (url "https://github.com/dimitri/cl-ixf")
11761 (commit commit)))
11762 (file-name (git-file-name "cl-ixf" version))
11763 (sha256
11764 (base32 "1wjdnf4vr9z7lcfc49kl43g6l2i23q9n81siy494k17d766cdvqa"))))
11765 (build-system asdf-build-system/sbcl)
11766 (inputs
11767 `(("alexandria" ,sbcl-alexandria)
11768 ("babel" ,sbcl-babel)
11769 ("cl-ppcre" ,sbcl-cl-ppcre)
11770 ("ieee-floats" ,sbcl-ieee-floats)
11771 ("local-time" ,sbcl-local-time)
11772 ("md5" ,sbcl-md5)
11773 ("split-sequence" ,sbcl-split-sequence)))
11774 (home-page "https://github.com/dimitri/cl-ixf")
11775 (synopsis "Parse IBM IXF file format")
11776 (description
11777 "This is a Common Lisp library to handle the IBM PC version of the IXF
11778 (Integration Exchange Format) file format.")
11779 (license license:public-domain))))
11780
11781 (define-public ecl-ixf
11782 (sbcl-package->ecl-package sbcl-ixf))
11783
11784 (define-public cl-ixf
11785 (sbcl-package->cl-source-package sbcl-ixf))
11786
11787 (define-public sbcl-qbase64
11788 (package
11789 (name "sbcl-qbase64")
11790 (version "0.3.0")
11791 (source
11792 (origin
11793 (method git-fetch)
11794 (uri (git-reference
11795 (url "https://github.com/chaitanyagupta/qbase64")
11796 (commit version)))
11797 (file-name (git-file-name name version))
11798 (sha256
11799 (base32 "1dir0s70ca3hagxv9x15zq4p4ajgl7jrcgqsza2n2y7iqbxh0dwi"))))
11800 (build-system asdf-build-system/sbcl)
11801 (inputs
11802 `(("metabang-bind" ,sbcl-metabang-bind)
11803 ("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
11804 (native-inputs
11805 `(("fiveam" ,sbcl-fiveam)))
11806 (home-page "https://github.com/chaitanyagupta/qbase64")
11807 (synopsis "Base64 encoder and decoder for Common Lisp")
11808 (description "@code{qbase64} provides a fast and flexible base64 encoder
11809 and decoder for Common Lisp.")
11810 (license license:bsd-3)))
11811
11812 (define-public cl-qbase64
11813 (sbcl-package->cl-source-package sbcl-qbase64))
11814
11815 (define-public ecl-qbase64
11816 (sbcl-package->ecl-package sbcl-qbase64))
11817
11818 (define-public sbcl-lw-compat
11819 ;; No release since 2013.
11820 (let ((commit "aabfe28c6c1a4949f9d7b3cb30319367c9fd1c0d"))
11821 (package
11822 (name "sbcl-lw-compat")
11823 (version (git-version "1.0.0" "1" commit))
11824 (source
11825 (origin
11826 (method git-fetch)
11827 (uri (git-reference
11828 (url "https://github.com/pcostanza/lw-compat/")
11829 (commit commit)))
11830 (file-name (git-file-name name version))
11831 (sha256
11832 (base32 "131rq5k2mlv9bfhmafiv6nfsivl4cxx13d9wr06v5jrqnckh4aav"))))
11833 (build-system asdf-build-system/sbcl)
11834 (home-page "https://github.com/pcostanza/lw-compat/")
11835 (synopsis "LispWorks utilities ported to other Common Lisp implementations")
11836 (description "This package contains a few utility functions from the
11837 LispWorks library that are used in software such as ContextL.")
11838 (license license:expat))))
11839
11840 (define-public cl-lw-compat
11841 (sbcl-package->cl-source-package sbcl-lw-compat))
11842
11843 (define-public ecl-lw-compat
11844 (sbcl-package->ecl-package sbcl-lw-compat))
11845
11846 (define-public sbcl-contextl
11847 ;; No release since 2013.
11848 (let ((commit "5d18a71a85824f6c25a9f35a21052f967b8b6bb9"))
11849 (package
11850 (name "sbcl-contextl")
11851 (version (git-version "1.0.0" "1" commit))
11852 (source
11853 (origin
11854 (method git-fetch)
11855 (uri (git-reference
11856 (url "https://github.com/pcostanza/contextl/")
11857 (commit commit)))
11858 (file-name (git-file-name name version))
11859 (sha256
11860 (base32 "0gk1izx6l6g48nypmnm9r6mzjx0jixqjj2kc6klf8a88rr5xd226"))))
11861 (build-system asdf-build-system/sbcl)
11862 (inputs
11863 `(("closer-mop" ,sbcl-closer-mop)
11864 ("lw-compat" ,sbcl-lw-compat)))
11865 (home-page "https://github.com/pcostanza/contextl")
11866 (synopsis "Context-oriented programming for Common Lisp")
11867 (description "ContextL is a CLOS extension for Context-Oriented
11868 Programming (COP).
11869
11870 Find overview of ContextL's features in an overview paper:
11871 @url{http://www.p-cos.net/documents/contextl-soa.pdf}. See also this general
11872 overview article about COP which also contains some ContextL examples:
11873 @url{http://www.jot.fm/issues/issue_2008_03/article4/}.")
11874 (license license:expat))))
11875
11876 (define-public cl-contextl
11877 (sbcl-package->cl-source-package sbcl-contextl))
11878
11879 (define-public ecl-contextl
11880 (sbcl-package->ecl-package sbcl-contextl))
11881
11882 (define-public sbcl-hu.dwim.common-lisp
11883 (package
11884 (name "sbcl-hu.dwim.common-lisp")
11885 (version "2015-07-09")
11886 (source
11887 (origin
11888 (method url-fetch)
11889 (uri (string-append
11890 "http://beta.quicklisp.org/archive/hu.dwim.common-lisp/"
11891 version "/hu.dwim.common-lisp-"
11892 (string-replace-substring version "-" "")
11893 "-darcs.tgz"))
11894 (sha256
11895 (base32 "13cxrvh55rw080mvfir7s7k735l9rcfh3khxp97qfwd5rz0gadb9"))))
11896 (build-system asdf-build-system/sbcl)
11897 (native-inputs
11898 `(("hu.dwim.asdf" ,sbcl-hu.dwim.asdf)))
11899 (home-page "http://dwim.hu/")
11900 (synopsis "Redefine some standard Common Lisp names")
11901 (description "This library is a redefinition of the standard Common Lisp
11902 package that includes a number of renames and shadows. ")
11903 (license license:public-domain)))
11904
11905 (define-public cl-hu.dwim.common-lisp
11906 (sbcl-package->cl-source-package sbcl-hu.dwim.common-lisp))
11907
11908 (define-public ecl-hu.dwim.common-lisp
11909 (sbcl-package->ecl-package sbcl-hu.dwim.common-lisp))
11910
11911 (define-public sbcl-hu.dwim.common
11912 (package
11913 (name "sbcl-hu.dwim.common")
11914 (version "2015-07-09")
11915 (source
11916 (origin
11917 (method url-fetch)
11918 (uri (string-append
11919 "http://beta.quicklisp.org/archive/hu.dwim.common/"
11920 version "/hu.dwim.common-"
11921 (string-replace-substring version "-" "")
11922 "-darcs.tgz"))
11923 (sha256
11924 (base32 "12l1rr6w9m99w0b5gc6hv58ainjfhbc588kz6vwshn4gqsxyzbhp"))))
11925 (build-system asdf-build-system/sbcl)
11926 (native-inputs
11927 `(("hu.dwim.asdf" ,sbcl-hu.dwim.asdf)))
11928 (inputs
11929 `(("alexandria" ,sbcl-alexandria)
11930 ("anaphora" ,sbcl-anaphora)
11931 ("closer-mop" ,sbcl-closer-mop)
11932 ("hu.dwim.common-lisp" ,sbcl-hu.dwim.common-lisp)
11933 ("iterate" ,sbcl-iterate)
11934 ("metabang-bind" ,sbcl-metabang-bind)))
11935 (home-page "http://dwim.hu/")
11936 (synopsis "Common Lisp library shared by other hu.dwim systems")
11937 (description "This package contains a support library for other
11938 hu.dwim systems.")
11939 (license license:public-domain)))
11940
11941 (define-public cl-hu.dwim.common
11942 (sbcl-package->cl-source-package sbcl-hu.dwim.common))
11943
11944 (define-public ecl-hu.dwim.common
11945 (sbcl-package->ecl-package sbcl-hu.dwim.common))
11946
11947 (define-public sbcl-hu.dwim.defclass-star
11948 (let ((commit "39d458f1b1bc830d1f5e18a6a35bf0e96a2cfd61"))
11949 (package
11950 (name "sbcl-hu.dwim.defclass-star")
11951 ;; We used to set version from the date when it was a darcs repo, so we
11952 ;; keep the year so that package gets updated on previous installs.
11953 (version (git-version "2021" "1" commit))
11954 (source
11955 (origin
11956 (method git-fetch)
11957 (uri (git-reference
11958 (url "https://github.com/hu-dwim/hu.dwim.defclass-star")
11959 (commit commit)))
11960 (file-name (git-file-name name version))
11961 (sha256
11962 (base32 "0hfkq2wad98vkyxdg1wh18y86d9w9yqkm8lxkk96szvpwymm7lmq"))))
11963 (build-system asdf-build-system/sbcl)
11964 (native-inputs
11965 `( ;; These 2 inputs are only needed tests which are disabled, see below.
11966 ;; ("hu.dwim.common" ,sbcl-hu.dwim.common)
11967 ;; Need cl- package for the :hu.dwim.stefil+hu.dwim.def+swank system.
11968 ;; ("hu.dwim.stefil" ,cl-hu.dwim.stefil)
11969 ("hu.dwim.asdf" ,sbcl-hu.dwim.asdf)))
11970 (arguments
11971 `(#:test-asd-file "hu.dwim.defclass-star.test.asd"
11972 ;; Tests require a circular dependency: hu.dwim.stefil -> hu.dwim.def
11973 ;; -> hu.dwim.util -> hu.dwim.defclass-star.
11974 #:tests? #f))
11975 (home-page "https://github.com/hu-dwim/hu.dwim.defclass-star")
11976 (synopsis "Simplify definitions with defclass* and friends in Common Lisp")
11977 (description "@code{defclass-star} provides defclass* and defcondition* to
11978 simplify class and condition declarations. Features include:
11979
11980 @itemize
11981 @item Automatically export all or select slots at compile time.
11982 @item Define the @code{:initarg} and @code{:accessor} automatically.
11983 @item Specify a name transformer for both the @code{:initarg} and
11984 @code{:accessor}, etc.
11985 @item Specify the @code{:initform} as second slot value.
11986 @end itemize
11987
11988 See
11989 @url{https://common-lisp.net/project/defclass-star/configuration.lisp.html}
11990 for an example.")
11991 (license license:public-domain))))
11992
11993 (define-public cl-hu.dwim.defclass-star
11994 (sbcl-package->cl-source-package sbcl-hu.dwim.defclass-star))
11995
11996 (define-public ecl-hu.dwim.defclass-star
11997 (sbcl-package->ecl-package sbcl-hu.dwim.defclass-star))
11998
11999 (define-public sbcl-livesupport
12000 (let ((commit "71e6e412df9f3759ad8378fabb203913d82e228a")
12001 (revision "1"))
12002 (package
12003 (name "sbcl-livesupport")
12004 (version (git-version "0.0.0" revision commit))
12005 (source
12006 (origin
12007 (method git-fetch)
12008 (uri (git-reference
12009 (url "https://github.com/cbaggers/livesupport")
12010 (commit commit)))
12011 (file-name (git-file-name name version))
12012 (sha256
12013 (base32 "1rvnl0mncylbx63608pz5llss7y92j7z3ydambk9mcnjg2mjaapg"))))
12014 (build-system asdf-build-system/sbcl)
12015 (home-page "https://github.com/cbaggers/livesupport")
12016 (synopsis "Some helpers that make livecoding a little easier")
12017 (description "This package provides a macro commonly used in livecoding to
12018 enable continuing when errors are raised. Simply wrap around a chunk of code
12019 and it provides a restart called @code{continue} which ignores the error and
12020 carrys on from the end of the body.")
12021 (license license:bsd-2))))
12022
12023 (define-public cl-livesupport
12024 (sbcl-package->cl-source-package sbcl-livesupport))
12025
12026 (define-public ecl-livesupport
12027 (sbcl-package->ecl-package sbcl-livesupport))
12028
12029 (define-public sbcl-envy
12030 (let ((commit "956321b2852d58ba71c6fe621f5c2924178e9f88")
12031 (revision "1"))
12032 (package
12033 (name "sbcl-envy")
12034 (version (git-version "0.1" revision commit))
12035 (home-page "https://github.com/fukamachi/envy")
12036 (source
12037 (origin
12038 (method git-fetch)
12039 (uri (git-reference
12040 (url home-page)
12041 (commit commit)))
12042 (file-name (git-file-name name version))
12043 (sha256
12044 (base32 "17iwrfxcdinjbb2h6l09qf40s7xkbhrpmnljlwpjy8l8rll8h3vg"))))
12045 (build-system asdf-build-system/sbcl)
12046 ;; (native-inputs ; Only for tests.
12047 ;; `(("prove" ,sbcl-prove)
12048 ;; ("osicat" ,sbcl-osicat)))
12049 (arguments
12050 '(#:phases
12051 (modify-phases %standard-phases
12052 (add-after 'unpack 'fix-tests
12053 (lambda _
12054 (substitute* "envy-test.asd"
12055 (("cl-test-more") "prove"))
12056 #t)))
12057 ;; Tests fail with
12058 ;; Component ENVY-ASD::ENVY-TEST not found, required by #<SYSTEM "envy">
12059 ;; like xsubseq. Why?
12060 #:tests? #f))
12061 (synopsis "Common Lisp configuration switcher inspired by Perl's Config::ENV.")
12062 (description "Envy is a configuration manager for various applications.
12063 Envy uses an environment variable to determine a configuration to use. This
12064 can separate configuration system from an implementation.")
12065 (license license:bsd-2))))
12066
12067 (define-public cl-envy
12068 (sbcl-package->cl-source-package sbcl-envy))
12069
12070 (define-public ecl-envy
12071 (sbcl-package->ecl-package sbcl-envy))
12072
12073 (define-public sbcl-mito
12074 (let ((commit "d3b9e375ef364a65692da2185085a08c969ac88a")
12075 (revision "1"))
12076 (package
12077 (name "sbcl-mito")
12078 (version (git-version "0.1" revision commit))
12079 (home-page "https://github.com/fukamachi/mito")
12080 (source
12081 (origin
12082 (method git-fetch)
12083 (uri (git-reference
12084 (url home-page)
12085 (commit commit)))
12086 (file-name (git-file-name name version))
12087 (sha256
12088 (base32 "08mncgzjnbbsf1a6am3l73iw4lyfvz5ldjg5g84awfaxml4p73mb"))))
12089 (build-system asdf-build-system/sbcl)
12090 (native-inputs
12091 `(("prove" ,sbcl-prove)))
12092 (inputs
12093 `(("alexandria" ,sbcl-alexandria)
12094 ("cl-ppcre" ,sbcl-cl-ppcre)
12095 ("cl-reexport" ,sbcl-cl-reexport)
12096 ("closer-mop" ,sbcl-closer-mop)
12097 ("dbi" ,sbcl-dbi)
12098 ("dissect" ,sbcl-dissect)
12099 ("esrap" ,sbcl-esrap)
12100 ("local-time" ,sbcl-local-time)
12101 ("optima" ,sbcl-optima)
12102 ("sxql" ,sbcl-sxql)
12103 ("uuid" ,sbcl-uuid)))
12104 (arguments
12105 '(#:phases
12106 (modify-phases %standard-phases
12107 (add-after 'unpack 'remove-non-functional-tests
12108 (lambda _
12109 (substitute* "mito-test.asd"
12110 (("\\(:test-file \"db/mysql\"\\)") "")
12111 (("\\(:test-file \"db/postgres\"\\)") "")
12112 (("\\(:test-file \"dao\"\\)") "")
12113 ;; TODO: migration/sqlite3 should work, re-enable once
12114 ;; upstream has fixed it:
12115 ;; https://github.com/fukamachi/mito/issues/70
12116 (("\\(:test-file \"migration/sqlite3\"\\)") "")
12117 (("\\(:test-file \"migration/mysql\"\\)") "")
12118 (("\\(:test-file \"migration/postgres\"\\)") "")
12119 (("\\(:test-file \"postgres-types\"\\)") "")
12120 (("\\(:test-file \"mixin\"\\)") ""))
12121 #t)))
12122 ;; TODO: While all enabled tests pass, the phase fails with:
12123 ;; Component MITO-ASD::MITO-TEST not found, required by #<SYSTEM "mito">
12124 #:tests? #f))
12125 (synopsis "ORM for Common Lisp with migrations and relationships support")
12126 (description "Mito is yet another object relational mapper, and it aims
12127 to be a successor of Integral.
12128
12129 @itemize
12130 @item Support MySQL, PostgreSQL and SQLite3.
12131 @item Add id (serial/uuid primary key), created_at and updated_at by default
12132 like Ruby's ActiveRecord.
12133 @item Migrations.
12134 @item Database schema versioning.
12135 @end itemize\n")
12136 (license license:llgpl))))
12137
12138 (define-public cl-mito
12139 (sbcl-package->cl-source-package sbcl-mito))
12140
12141 (define-public ecl-mito
12142 (sbcl-package->ecl-package sbcl-mito))
12143
12144 (define-public sbcl-kebab
12145 (let ((commit "e7f77644c4e46131e7b8039d191d35fe6211f31b")
12146 (revision "1"))
12147 (package
12148 (name "sbcl-kebab")
12149 (version (git-version "0.1" revision commit))
12150 (home-page "https://github.com/pocket7878/kebab")
12151 (source
12152 (origin
12153 (method git-fetch)
12154 (uri (git-reference
12155 (url home-page)
12156 (commit commit)))
12157 (file-name (git-file-name name version))
12158 (sha256
12159 (base32 "0j5haabnvj0vz0rx9mwyfsb3qzpga9nickbjw8xs6vypkdzlqv1b"))))
12160 (build-system asdf-build-system/sbcl)
12161 (inputs
12162 `(("cl-ppcre" ,sbcl-cl-ppcre)
12163 ("alexandria" ,sbcl-alexandria)
12164 ("cl-interpol" ,sbcl-cl-interpol)
12165 ("split-sequence" ,sbcl-split-sequence)))
12166 (native-inputs
12167 `(("prove" ,sbcl-prove)))
12168 (arguments
12169 ;; Tests passes but the phase fails with
12170 ;; Component KEBAB-ASD::KEBAB-TEST not found, required by #<SYSTEM "kebab">.
12171 `(#:tests? #f))
12172 (synopsis "Common Lisp case converter")
12173 (description "This Common Lisp library converts strings, symbols and
12174 keywords between any of the following typographical cases: PascalCase,
12175 camelCase, snake_case, kebab-case (lisp-case).")
12176 (license license:llgpl))))
12177
12178 (define-public cl-kebab
12179 (sbcl-package->cl-source-package sbcl-kebab))
12180
12181 (define-public ecl-kebab
12182 (sbcl-package->ecl-package sbcl-kebab))
12183
12184 (define-public sbcl-datafly
12185 (let ((commit "adece27fcbc4b5ea39ad1a105048b6b7166e3b0d")
12186 (revision "1"))
12187 (package
12188 (name "sbcl-datafly")
12189 (version (git-version "0.1" revision commit))
12190 (home-page "https://github.com/fukamachi/datafly")
12191 (source
12192 (origin
12193 (method git-fetch)
12194 (uri (git-reference
12195 (url home-page)
12196 (commit commit)))
12197 (file-name (git-file-name name version))
12198 (sha256
12199 (base32 "16b78kzmglp2a4nxlxxl7rpf5zaibsgagn0p3c56fsxvx0c4hszv"))))
12200 (build-system asdf-build-system/sbcl)
12201 (inputs
12202 `(("alexandria" ,sbcl-alexandria)
12203 ("iterate" ,sbcl-iterate)
12204 ("optima" ,sbcl-optima)
12205 ("trivial-types" ,sbcl-trivial-types)
12206 ("closer-mop" ,sbcl-closer-mop)
12207 ("cl-syntax" ,sbcl-cl-syntax)
12208 ("sxql" ,sbcl-sxql)
12209 ("dbi" ,sbcl-dbi)
12210 ("babel" ,sbcl-babel)
12211 ("local-time" ,sbcl-local-time)
12212 ("function-cache" ,sbcl-function-cache)
12213 ("jonathan" ,sbcl-jonathan)
12214 ("kebab" ,sbcl-kebab)
12215 ("log4cl" ,sbcl-log4cl)))
12216 (native-inputs
12217 `(("prove" ,sbcl-prove)))
12218 (arguments
12219 ;; TODO: Tests fail with
12220 ;; While evaluating the form starting at line 22, column 0
12221 ;; of #P"/tmp/guix-build-sbcl-datafly-0.1-1.adece27.drv-0/source/t/datafly.lisp":
12222 ;; Unhandled SQLITE:SQLITE-ERROR in thread #<SB-THREAD:THREAD "main thread" RUNNING
12223 ;; {10009F8083}>:
12224 ;; Error when binding parameter 1 to value NIL.
12225 ;; Code RANGE: column index out of range.
12226 `(#:tests? #f))
12227 (synopsis "Lightweight database library for Common Lisp")
12228 (description "Datafly is a lightweight database library for Common Lisp.")
12229 (license license:bsd-3))))
12230
12231 (define-public cl-datafly
12232 (sbcl-package->cl-source-package sbcl-datafly))
12233
12234 (define-public ecl-datafly
12235 (sbcl-package->ecl-package sbcl-datafly))
12236
12237 (define-public sbcl-do-urlencode
12238 (let ((commit "199846441dad5dfac5478b8dee4b4e20d107af6a")
12239 (revision "1"))
12240 (package
12241 (name "sbcl-do-urlencode")
12242 (version (git-version "0.0.0" revision commit))
12243 (home-page "https://github.com/drdo/do-urlencode")
12244 (source
12245 (origin
12246 (method git-fetch)
12247 (uri (git-reference
12248 (url home-page)
12249 (commit commit)))
12250 (file-name (git-file-name name version))
12251 (sha256
12252 (base32 "0k2i3d4k9cpci235mwfm0c5a4yqfkijr716bjv7cdlpzx88lazm9"))))
12253 (build-system asdf-build-system/sbcl)
12254 (inputs
12255 `(("alexandria" ,sbcl-alexandria)
12256 ("babel" ,sbcl-babel)))
12257 (synopsis "Percent Encoding (aka URL Encoding) Common Lisp library")
12258 (description "This library provides trivial percent encoding and
12259 decoding functions for URLs.")
12260 (license license:isc))))
12261
12262 (define-public cl-do-urlencode
12263 (sbcl-package->cl-source-package sbcl-do-urlencode))
12264
12265 (define-public ecl-do-urlencode
12266 (sbcl-package->ecl-package sbcl-do-urlencode))
12267
12268 (define-public sbcl-cl-emb
12269 (let ((commit "fd8652174d048d4525a81f38cdf42f4fa519f840")
12270 (revision "1"))
12271 (package
12272 (name "sbcl-cl-emb")
12273 (version (git-version "0.4.3" revision commit))
12274 (home-page "https://common-lisp.net/project/cl-emb/")
12275 (source
12276 (origin
12277 (method git-fetch)
12278 (uri (git-reference
12279 (url "https://github.com/38a938c2/cl-emb")
12280 (commit commit)))
12281 (file-name (git-file-name name version))
12282 (sha256
12283 (base32 "1xcm31n7afh5316lwz8iqbjx7kn5lw0l11arg8mhdmkx42aj4gkk"))))
12284 (build-system asdf-build-system/sbcl)
12285 (inputs
12286 `(("cl-ppcre" ,sbcl-cl-ppcre)))
12287 (synopsis "Templating system for Common Lisp")
12288 (description "A mixture of features from eRuby and HTML::Template. You
12289 could name it \"Yet Another LSP\" (LispServer Pages) but it's a bit more than
12290 that and not limited to a certain server or text format.")
12291 (license license:llgpl))))
12292
12293 (define-public cl-emb
12294 (sbcl-package->cl-source-package sbcl-cl-emb))
12295
12296 (define-public ecl-cl-emb
12297 (sbcl-package->ecl-package sbcl-cl-emb))
12298
12299 (define-public sbcl-cl-project
12300 (let ((commit "151107014e534fc4666222d57fec2cc8549c8814")
12301 (revision "1"))
12302 (package
12303 (name "sbcl-cl-project")
12304 (version (git-version "0.3.1" revision commit))
12305 (home-page "https://github.com/fukamachi/cl-project")
12306 (source
12307 (origin
12308 (method git-fetch)
12309 (uri (git-reference
12310 (url home-page)
12311 (commit commit)))
12312 (file-name (git-file-name name version))
12313 (sha256
12314 (base32 "1rmh6s1ncv8s2yrr14ja9wisgg745sq6xibqwb341ikdicxdp26y"))))
12315 (build-system asdf-build-system/sbcl)
12316 (inputs
12317 `(("cl-emb" ,sbcl-cl-emb)
12318 ("cl-ppcre" ,sbcl-cl-ppcre)
12319 ("local-time" ,sbcl-local-time)
12320 ("prove" ,sbcl-prove)))
12321 (arguments
12322 ;; Tests depend on caveman, which in turns depends on cl-project.
12323 '(#:tests? #f
12324 #:asd-files '("cl-project.asd")))
12325 (synopsis "Generate a skeleton for modern Common Lisp projects")
12326 (description "This library provides a modern project skeleton generator.
12327 In contract with other generators, CL-Project generates one package per file
12328 and encourages unit testing by generating a system for unit testing, so you
12329 can begin writing unit tests as soon as the project is generated.")
12330 (license license:llgpl))))
12331
12332 (define-public cl-project
12333 (sbcl-package->cl-source-package sbcl-cl-project))
12334
12335 (define-public ecl-cl-project
12336 (sbcl-package->ecl-package sbcl-cl-project))
12337
12338 (define-public sbcl-caveman
12339 (let ((commit "faa5f7e3b364fd7e7096af9a7bb06728b8d80441") ; No release since 2012
12340 (revision "1"))
12341 (package
12342 (name "sbcl-caveman")
12343 (version (git-version "2.4.0" revision commit))
12344 (home-page "http://8arrow.org/caveman/")
12345 (source
12346 (origin
12347 (method git-fetch)
12348 (uri (git-reference
12349 (url "https://github.com/fukamachi/caveman/")
12350 (commit commit)))
12351 (file-name (git-file-name name version))
12352 (sha256
12353 (base32 "0kh0gx05pczk8f7r9qdi4zn1p3d0a2prps27k7jpgvc1dxkl8qhq"))))
12354 (build-system asdf-build-system/sbcl)
12355 (inputs
12356 `(("ningle" ,cl-ningle)
12357 ("lack" ,sbcl-lack)
12358 ("cl-project" ,sbcl-cl-project)
12359 ("dbi" ,sbcl-dbi)
12360 ("cl-syntax" ,sbcl-cl-syntax)
12361 ("myway" ,sbcl-myway)
12362 ("quri" ,sbcl-quri)))
12363 (native-inputs
12364 `(("usocket" ,sbcl-usocket)
12365 ("dexador" ,sbcl-dexador)))
12366 (arguments
12367 `(#:asd-files '("caveman2.asd")
12368 #:asd-systems '("caveman2")
12369 #:phases
12370 (modify-phases %standard-phases
12371 (add-after 'unpack 'remove-v1
12372 (lambda _
12373 (delete-file-recursively "v1")
12374 (for-each delete-file
12375 '("README.v1.markdown" "caveman.asd" "caveman-test.asd")))))
12376 ;; TODO: Tests fail with:
12377 ;; writing /gnu/store/...-sbcl-caveman-2.4.0-1.faa5f7e/share/common-lisp/sbcl-source/caveman2/v2/t/tmp/myapp573/tests/myapp573.lisp
12378 ;; While evaluating the form starting at line 38, column 0
12379 ;; of #P"/tmp/guix-build-sbcl-caveman-2.4.0-1.faa5f7e.drv-0/source/v2/t/caveman.lisp":
12380 ;; Unhandled ASDF/FIND-COMPONENT:MISSING-COMPONENT in thread #<SB-THREAD:THREAD "main thread" RUNNING
12381 ;; {10009F8083}>:
12382 ;; Component "myapp573" not found
12383 #:tests? #f))
12384 (synopsis "Lightweight web application framework in Common Lisp")
12385 (description "Caveman is intended to be a collection of common parts for
12386 web applications. Caveman2 has three design goals:
12387
12388 @itemize
12389 @item Be extensible.
12390 @item Be practical.
12391 @item Don't force anything.
12392 @end itemize\n")
12393 (license license:llgpl))))
12394
12395 (define-public cl-caveman
12396 (package
12397 (inherit
12398 (sbcl-package->cl-source-package sbcl-caveman))
12399 (propagated-inputs
12400 `(("ningle" ,cl-ningle)))))
12401
12402 (define-public ecl-caveman
12403 (sbcl-package->ecl-package sbcl-caveman))
12404
12405 (define-public sbcl-lambda-fiddle
12406 (let ((commit "d16bba55acf6065b412f64ab8fdff679a4a32b1e") ;; no tagged branch
12407 (revision "1"))
12408 (package
12409 (name "sbcl-lambda-fiddle")
12410 (version (git-version "1.0.0" revision commit))
12411 (source
12412 (origin
12413 (method git-fetch)
12414 (uri (git-reference
12415 (url "https://github.com/Shinmera/lambda-fiddle")
12416 (commit commit)))
12417 (file-name (git-file-name name version))
12418 (sha256
12419 (base32 "1zarj1pqjqmk95kdx1axkgpwy2wq3canczk7f9z5hvaw5an6gand"))))
12420 (build-system asdf-build-system/sbcl)
12421 (home-page "https://github.com/Shinmera/lambda-fiddle")
12422 (synopsis "Collection of utilities to process lambda-lists")
12423 (description "This collection of utilities is useful in contexts where
12424 you want a macro that uses lambda-lists in some fashion but need more precise
12425 processing.")
12426 (license license:zlib))))
12427
12428 (define-public cl-lambda-fiddle
12429 (sbcl-package->cl-source-package sbcl-lambda-fiddle))
12430
12431 (define-public ecl-lambda-fiddle
12432 (sbcl-package->ecl-package sbcl-lambda-fiddle))
12433
12434 (define-public sbcl-xmls
12435 (let ((commit "18546f0850b1338e03997ffd1696add1cb1800d1") ;; no tagged branch
12436 (revision "1"))
12437 (package
12438 (name "sbcl-xmls")
12439 (version (git-version "3.0.2" revision commit))
12440 (source
12441 (origin
12442 (method git-fetch)
12443 (uri (git-reference
12444 (url "https://github.com/rpgoldman/xmls")
12445 (commit commit)))
12446 (file-name (git-file-name name version))
12447 (sha256
12448 (base32 "1lmvfml2ldbb1wkhm25jqqk2bhwsz52hhcgljbnzj1xr8xhc3anp"))))
12449 (native-inputs
12450 `(("fiveam" ,sbcl-fiveam)))
12451 (build-system asdf-build-system/sbcl)
12452 (home-page "https://github.com/rpgoldman/xmls")
12453 (synopsis "Non-validating XML parser for Common Lisp")
12454 (description "Xmls is a self-contained, easily embedded parser that
12455 recognizes a useful subset of the XML spec. It provides a simple mapping from
12456 XML to Lisp structures or s-expressions and back.")
12457 (license license:bsd-2))))
12458
12459 (define-public cl-xmls
12460 (sbcl-package->cl-source-package sbcl-xmls))
12461
12462 (define-public ecl-xmls
12463 (sbcl-package->ecl-package sbcl-xmls))
12464
12465 (define-public sbcl-geco
12466 (package
12467 (name "sbcl-geco")
12468 (version "2.1.1")
12469 (source
12470 (origin
12471 (method git-fetch)
12472 (uri (git-reference
12473 (url "https://github.com/gpwwjr/GECO")
12474 (commit (string-append "v" version))))
12475 (file-name (git-file-name "geco" version))
12476 (sha256
12477 (base32 "1rc8a4mk40hjx5qy980hjylv6xxqdbq38hg8c4w30y93abfd519s"))))
12478 (build-system asdf-build-system/sbcl)
12479 (home-page "http://hiwaay.net/~gpw/geco/geco.html")
12480 (synopsis "Genetic algorithm toolkit for Common Lisp")
12481 (description
12482 "GECO (Genetic Evolution through Combination of Objects) is an extensible,
12483 object-oriented framework for prototyping genetic algorithms in Common Lisp.")
12484 (license license:lgpl2.1+)))
12485
12486 (define-public cl-geco
12487 (sbcl-package->cl-source-package sbcl-geco))
12488
12489 (define-public ecl-geco
12490 (sbcl-package->ecl-package sbcl-geco))
12491
12492 (define-public sbcl-html-entities
12493 (let ((commit "4af018048e891f41d77e7d680ed3aeb639e1eedb"))
12494 (package
12495 (name "sbcl-html-entities")
12496 (version (git-version "0.02" "1" commit))
12497 (source
12498 (origin
12499 (method git-fetch)
12500 (uri (git-reference
12501 (url "https://github.com/BnMcGn/html-entities/")
12502 (commit commit)))
12503 (file-name (git-file-name name version))
12504 (sha256
12505 (base32 "1b2yl6lf6vis17y4n5s505p7ica96bdafcl6vydy1hg50fy33nfr"))))
12506 (build-system asdf-build-system/sbcl)
12507 (inputs
12508 `(("ppcre" ,sbcl-cl-ppcre)))
12509 (native-inputs
12510 `(("fiveam" ,sbcl-fiveam)))
12511 (home-page "https://github.com/BnMcGn/html-entities/")
12512 (synopsis "Encode and decode entities in HTML with Common Lisp")
12513 (description "Html-entities is a Common Lisp library that lets you
12514 encode and decode entities in HTML.")
12515 (license license:expat))))
12516
12517 (define-public cl-html-entities
12518 (sbcl-package->cl-source-package sbcl-html-entities))
12519
12520 (define-public ecl-html-entities
12521 (sbcl-package->ecl-package sbcl-html-entities))
12522
12523 (define-public sbcl-quicksearch
12524 (let ((commit "fb02ecf7c876ec580ab18c7d2c8c7814c06af599"))
12525 (package
12526 (name "sbcl-quicksearch")
12527 (version (git-version "0.01.04" "1" commit))
12528 (source
12529 (origin
12530 (method git-fetch)
12531 (uri (git-reference
12532 (url "https://github.com/tkych/quicksearch/")
12533 (commit commit)))
12534 (file-name (git-file-name name version))
12535 (sha256
12536 (base32 "16k19zjkhh7r64vjq371k5jwjs7cdfjz83flh561n4h4v1z89fps"))))
12537 (build-system asdf-build-system/sbcl)
12538 (inputs
12539 `(("bordeaux-threads" ,sbcl-bordeaux-threads)
12540 ("iterate" ,sbcl-iterate)
12541 ("alexandria" ,sbcl-alexandria)
12542 ("anaphora" ,sbcl-anaphora)
12543 ("ppcre" ,sbcl-cl-ppcre)
12544 ("drakma" ,sbcl-drakma)
12545 ("html-entities" ,sbcl-html-entities)
12546 ("yason" ,sbcl-yason)
12547 ("flexi-streams" ,sbcl-flexi-streams)
12548 ("do-urlencode" ,sbcl-do-urlencode)))
12549 (home-page "https://github.com/tkych/quicksearch/")
12550 (synopsis "Search Engine Interface for Common Lisp packages")
12551 (description "Quicksearch is a search-engine-interface for Common Lisp.
12552 The goal of Quicksearch is to find the Common Lisp library quickly. For
12553 example, if you will find the library about json, just type @code{(qs:?
12554 'json)} at REPL.
12555
12556 The function @code{quicksearch} searches for Common Lisp projects in
12557 Quicklisp, Cliki, GitHub and BitBucket, then outputs results in REPL. The
12558 function @code{?} is abbreviation wrapper for @code{quicksearch}.")
12559 (license license:expat))))
12560
12561 (define-public cl-quicksearch
12562 (sbcl-package->cl-source-package sbcl-quicksearch))
12563
12564 (define-public ecl-quicksearch
12565 (sbcl-package->ecl-package sbcl-quicksearch))
12566
12567 (define-public sbcl-agutil
12568 (let ((commit "df188d754d472da9faa1601a48f1f37bb7b34d68"))
12569 (package
12570 (name "sbcl-agutil")
12571 (version (git-version "0.0.1" "1" commit))
12572 (source
12573 (origin
12574 (method git-fetch)
12575 (uri (git-reference
12576 (url "https://github.com/alex-gutev/agutil/")
12577 (commit commit)))
12578 (file-name (git-file-name name version))
12579 (sha256
12580 (base32 "1xpnyzksk2xld64b6lw6rw0gn5zxlb77jwna59sd4yl7kxhxlfpf"))))
12581 (build-system asdf-build-system/sbcl)
12582 (inputs
12583 `(("alexandria" ,sbcl-alexandria)
12584 ("trivia" ,sbcl-trivia)))
12585 (home-page "https://github.com/alex-gutev/agutil/")
12586 (synopsis "Collection of Common Lisp utilities")
12587 (description "A collection of Common Lisp utility functions and macros
12588 mostly not found in other utility packages.")
12589 (license license:expat))))
12590
12591 (define-public cl-agutil
12592 (sbcl-package->cl-source-package sbcl-agutil))
12593
12594 (define-public ecl-agutil
12595 (sbcl-package->ecl-package sbcl-agutil))
12596
12597 (define-public sbcl-custom-hash-table
12598 (let ((commit "f26983133940f5edf826ebbc8077acc04816ddfa"))
12599 (package
12600 (name "sbcl-custom-hash-table")
12601 (version (git-version "0.3" "1" commit))
12602 (source
12603 (origin
12604 (method git-fetch)
12605 (uri (git-reference
12606 (url "https://github.com/metawilm/cl-custom-hash-table")
12607 (commit commit)))
12608 (file-name (git-file-name name version))
12609 (sha256
12610 (base32 "1k4mvrpbqqds2fwjxp1bxmrfmr8ch4dkwhnkbw559knbqshvrlj5"))))
12611 (build-system asdf-build-system/sbcl)
12612 (arguments
12613 '(#:asd-files '("cl-custom-hash-table.asd")
12614 #:asd-systems '("cl-custom-hash-table")))
12615 (home-page "https://github.com/metawilm/cl-custom-hash-table")
12616 (synopsis "Custom hash tables for Common Lisp")
12617 (description "This library allows creation of hash tables with arbitrary
12618 @code{test}/@code{hash} functions, in addition to the @code{test} functions
12619 allowed by the standard (@code{EQ}, @code{EQL}, @code{EQUAL} and
12620 @code{EQUALP}), even in implementations that don't support this functionality
12621 directly.")
12622 (license license:expat))))
12623
12624 (define-public cl-custom-hash-table
12625 (sbcl-package->cl-source-package sbcl-custom-hash-table))
12626
12627 (define-public ecl-custom-hash-table
12628 (sbcl-package->ecl-package sbcl-custom-hash-table))
12629
12630 (define-public sbcl-collectors
12631 (let ((commit "13acef25d8422d1d82e067b1861e513587c166ee"))
12632 (package
12633 (name "sbcl-collectors")
12634 (version (git-version "0.1" "1" commit))
12635 (source
12636 (origin
12637 (method git-fetch)
12638 (uri (git-reference
12639 (url "https://github.com/AccelerationNet/collectors")
12640 (commit commit)))
12641 (file-name (git-file-name name version))
12642 (sha256
12643 (base32 "1si68n1j6rpns8jw6ksqjpb937pdl30v7xza8rld7j5vh0jhy2yi"))))
12644 (build-system asdf-build-system/sbcl)
12645 (inputs
12646 `(("alexandria" ,sbcl-alexandria)
12647 ("closer-mop" ,sbcl-closer-mop)
12648 ("symbol-munger" ,sbcl-symbol-munger)))
12649 (native-inputs
12650 `(("lisp-unit2" ,sbcl-lisp-unit2)))
12651 (home-page "https://github.com/AccelerationNet/collectors/")
12652 (synopsis "Common lisp library providing collector macros")
12653 (description "A small collection of common lisp macros to make
12654 collecting values easier.")
12655 (license license:bsd-3))))
12656
12657 (define-public cl-collectors
12658 (sbcl-package->cl-source-package sbcl-collectors))
12659
12660 (define-public ecl-collectors
12661 (sbcl-package->ecl-package sbcl-collectors))
12662
12663 (define-public sbcl-cl-environments
12664 (let ((commit "0b22154c5afefef23d1eba9a4fae11d73580ef41")) ; No version in 2 years.
12665 (package
12666 (name "sbcl-cl-environments")
12667 (version (git-version "0.2.3" "1" commit))
12668 (source
12669 (origin
12670 (method git-fetch)
12671 (uri (git-reference
12672 (url "https://github.com/alex-gutev/cl-environments")
12673 (commit commit)))
12674 (file-name (git-file-name name version))
12675 (sha256
12676 (base32
12677 "18r3wfarr7lgn78m6c66r0r9aazirv07gy7xgvqkl9pmrz1bc47m"))))
12678 (build-system asdf-build-system/sbcl)
12679 (inputs
12680 `(("alexandria" ,sbcl-alexandria)
12681 ("anaphora" ,sbcl-anaphora)
12682 ("collectors" ,sbcl-collectors)
12683 ("optima" ,sbcl-optima)))
12684 (native-inputs
12685 `(("prove" ,sbcl-prove)))
12686 (home-page "https://github.com/alex-gutev/cl-environments")
12687 (synopsis "Implements the Common Lisp standard environment access API")
12688 (description "This library provides a uniform API, as specified in Common
12689 Lisp the Language 2, for accessing information about variable and function
12690 bindings from implementation-defined lexical environment objects. All major
12691 Common Lisp implementations are supported, even those which don't support the
12692 CLTL2 environment access API.")
12693 (license license:expat))))
12694
12695 (define-public cl-environments
12696 (sbcl-package->cl-source-package sbcl-cl-environments))
12697
12698 (define-public ecl-environments
12699 (sbcl-package->ecl-package sbcl-cl-environments))
12700
12701 (define-public sbcl-static-dispatch
12702 (let ((commit "6243afcd152854c52ba33daef7394367b657d9c6")
12703 (revision "1"))
12704 (package
12705 (name "sbcl-static-dispatch")
12706 (version (git-version "0.3" revision commit))
12707 (source
12708 (origin
12709 (method git-fetch)
12710 (uri (git-reference
12711 (url "https://github.com/alex-gutev/static-dispatch")
12712 (commit commit)))
12713 (file-name (git-file-name "static-dispatch" version))
12714 (sha256
12715 (base32 "1lli9ar1xbnhkgb5d01rlw4pvfylg2arrw68np2c07fpkkafimg7"))))
12716 (build-system asdf-build-system/sbcl)
12717 (native-inputs
12718 `(("prove" ,sbcl-prove)))
12719 (inputs
12720 `(("agutil" ,sbcl-agutil)
12721 ("alexandria" ,sbcl-alexandria)
12722 ("anaphora" ,sbcl-anaphora)
12723 ("arrows" ,sbcl-arrows)
12724 ("cl-environments" ,sbcl-cl-environments)
12725 ("closer-mop" ,sbcl-closer-mop)
12726 ("iterate" ,sbcl-iterate)
12727 ("trivia" ,sbcl-trivia)))
12728 (home-page "https://github.com/alex-gutev/static-dispatch")
12729 (synopsis "Static generic function dispatch for Common Lisp")
12730 (description "Static dispatch is a Common Lisp library, inspired by
12731 @code{inlined-generic-function}, which allows standard Common Lisp generic
12732 function dispatch to be performed statically (at compile time) rather than
12733 dynamically (runtime). This is similar to what is known as \"overloading\" in
12734 languages such as C++ and Java.
12735
12736 The purpose of static dispatch is to provide an optimization in cases where
12737 the usual dynamic dispatch is too slow, and the dynamic features of generic
12738 functions, such as adding/removing methods at runtime are not required. An
12739 example of such a case is a generic equality comparison function. Currently
12740 generic functions are considered far too slow to implement generic arithmetic
12741 and comparison operations when used heavily in numeric code.")
12742 (license license:expat))))
12743
12744 (define-public cl-static-dispatch
12745 (sbcl-package->cl-source-package sbcl-static-dispatch))
12746
12747 (define-public ecl-static-dispatch
12748 (sbcl-package->ecl-package sbcl-static-dispatch))
12749
12750 (define-public sbcl-generic-cl
12751 ;; Latest commit includes a necessary fix for our Guix build.
12752 (let ((commit "8e5a81487ee3c13fe5ffdc8bdda161d476639535"))
12753 (package
12754 (name "sbcl-generic-cl")
12755 (version (git-version "0.7.1" "1" commit))
12756 (source
12757 (origin
12758 (method git-fetch)
12759 (uri (git-reference
12760 (url "https://github.com/alex-gutev/generic-cl")
12761 (commit commit)))
12762 (file-name (git-file-name name version))
12763 (sha256
12764 (base32
12765 "11w0g79s4wmc78vmfng437rmsgnp5qn246zcyr540fp5nw0ad6ix"))))
12766 (build-system asdf-build-system/sbcl)
12767 (inputs
12768 `(("agutil" ,sbcl-agutil)
12769 ("alexandria" ,sbcl-alexandria)
12770 ("anaphora" ,sbcl-anaphora)
12771 ("arrows" ,sbcl-arrows)
12772 ("cl-custom-hash-table" ,sbcl-custom-hash-table)
12773 ("static-dispatch" ,sbcl-static-dispatch)
12774 ("trivia" ,sbcl-trivia)))
12775 (native-inputs
12776 `(("prove" ,sbcl-prove)))
12777 (arguments
12778 ;; Tests fail because SBCL head size is not high enough.
12779 ;; https://github.com/alex-gutev/generic-cl/issues/6
12780 `(#:tests? #f))
12781 (home-page "https://alex-gutev.github.io/generic-cl/")
12782 (synopsis "Generic function interface to standard Common Lisp functions")
12783 (description "@code{generic-cl} provides a generic function wrapper over
12784 various functions in the Common Lisp standard, such as equality predicates and
12785 sequence operations. The goal of this wrapper is to provide a standard
12786 interface to common operations, such as testing for the equality of two
12787 objects, which is extensible to user-defined types.")
12788 (license license:expat))))
12789
12790 (define-public cl-generic-cl
12791 (sbcl-package->cl-source-package sbcl-generic-cl))
12792
12793 (define-public ecl-generic-cl
12794 (sbcl-package->ecl-package sbcl-generic-cl))
12795
12796 (define-public sbcl-defpackage-plus
12797 (let ((revision "0")
12798 (commit "5492e27e0bdb7b75fa5177ea4388519dc7a75f11"))
12799 (package
12800 (name "sbcl-defpackage-plus")
12801 (version (git-version "1.0" revision commit))
12802 (source
12803 (origin
12804 (method git-fetch)
12805 (uri (git-reference
12806 (url "https://github.com/rpav/defpackage-plus")
12807 (commit commit)))
12808 (file-name (git-file-name name version))
12809 (sha256
12810 (base32 "0lzljvf343xb6mlh6lni2i27hpm5qd376522mk6hr2pa20vd6rdq"))))
12811 (build-system asdf-build-system/sbcl)
12812 (inputs
12813 `(("alexandria" ,sbcl-alexandria)))
12814 (home-page "https://github.com/rpav/defpackage-plus")
12815 (synopsis "Extensible @code{DEFPACKAGE} variant with version support")
12816 (description
12817 "@code{DEFPACKAGE-PLUS} is an extensible @code{DEFPACKAGE} variant with
12818 predictable cross-platform behavior and some utilities useful for versioning.")
12819 (license license:bsd-2))))
12820
12821 (define-public cl-defpackage-plus
12822 (sbcl-package->cl-source-package sbcl-defpackage-plus))
12823
12824 (define-public ecl-defpackage-plus
12825 (sbcl-package->ecl-package sbcl-defpackage-plus))
12826
12827 (define-public sbcl-deploy
12828 (let ((commit "9b20e64fe924b9e31832304d87a3a72c383dc6d8")
12829 (revision "2"))
12830 (package
12831 (name "sbcl-deploy")
12832 (version (git-version "1.0.0" revision commit))
12833 (source
12834 (origin
12835 (method git-fetch)
12836 (uri (git-reference
12837 (url "https://github.com/Shinmera/deploy")
12838 (commit commit)))
12839 (file-name (git-file-name "deploy" version))
12840 (sha256
12841 (base32 "07pfkibaridihg8lbq2czwa4iqifqk24n6rx7bfnv7i49p1ppja1"))))
12842 (build-system asdf-build-system/sbcl)
12843 (arguments
12844 `(#:test-asd-file "deploy-test.asd"
12845 #:asd-files '("deploy.asd"
12846 "deploy-test.asd")))
12847 (native-inputs
12848 `(("cl-mpg123" ,sbcl-cl-mpg123)
12849 ("cl-out123" ,sbcl-cl-out123)))
12850 (inputs
12851 `(("cffi" ,sbcl-cffi)
12852 ("documentation-utils" ,sbcl-documentation-utils)
12853 ("trivial-features" ,sbcl-trivial-features)))
12854 (home-page "https://shinmera.github.io/deploy/")
12855 (synopsis "Deployment tools for standalone Common Lisp application")
12856 (description
12857 "This is a system to help you easily and quickly deploy standalone
12858 common lisp applications as binaries. Specifically it is geared towards
12859 applications with foreign library dependencies that run some kind of GUI.")
12860 (license license:artistic2.0))))
12861
12862 (define-public cl-deploy
12863 (sbcl-package->cl-source-package sbcl-deploy))
12864
12865 (define-public ecl-deploy
12866 (sbcl-package->ecl-package sbcl-deploy))
12867
12868 (define-public sbcl-deeds
12869 ;; taged branch is outdated
12870 (let ((revision "1")
12871 (commit "f5df54eac79b58a34030e0eb8acf3952c788410d"))
12872 (package
12873 (name "sbcl-deeds")
12874 (version (git-version "1.1.1" revision commit))
12875 (source
12876 (origin
12877 (method git-fetch)
12878 (uri (git-reference
12879 (url "https://github.com/Shinmera/deeds")
12880 (commit commit)))
12881 (file-name (git-file-name name version))
12882 (sha256
12883 (base32 "062cnb2dwli6pw3zvv46jfxyxdzcbzwsck5pa6nw03qf1j1hyg3k"))))
12884 (build-system asdf-build-system/sbcl)
12885 (inputs
12886 `(("bordeaux-threads" ,sbcl-bordeaux-threads)
12887 ("closer-mop" ,sbcl-closer-mop)
12888 ("form-fiddle" ,sbcl-form-fiddle)
12889 ("lambda-fiddle" ,sbcl-lambda-fiddle)))
12890 (home-page "https://github.com/Shinmera/deeds")
12891 (synopsis "Extensible Event Delivery System")
12892 (description
12893 "@code{deeds} allows for efficient event delivery to multiple handlers
12894 with a complex event filtering system.")
12895 (license license:zlib))))
12896
12897 (define-public cl-deeds
12898 (sbcl-package->cl-source-package sbcl-deeds))
12899
12900 (define-public ecl-deeds
12901 (sbcl-package->ecl-package sbcl-deeds))
12902
12903 (define-public sbcl-make-hash
12904 ;; no tagged branch
12905 (let ((revision "1")
12906 (commit "ae0909cd8e697520a1085fac6f54ac2b448ebd21"))
12907 (package
12908 (name "sbcl-make-hash")
12909 (version (git-version "1.0.2" revision commit))
12910 (source
12911 (origin
12912 (method git-fetch)
12913 (uri (git-reference
12914 (url "https://github.com/genovese/make-hash")
12915 (commit commit)))
12916 (file-name (git-file-name name version))
12917 (sha256
12918 (base32 "1qa4mcmb3pv44py0j129dd8hjx09c2akpnds53b69151mgwv5qz8"))))
12919 (build-system asdf-build-system/sbcl)
12920 (home-page "https://github.com/genovese/make-hash")
12921 (synopsis "Common Lisp package for flexible hash table creation")
12922 (description
12923 "This is a Common Lisp package for hash table creation with flexible,
12924 extensible initializers.")
12925 (license license:bsd-3))))
12926
12927 (define-public cl-make-hash
12928 (sbcl-package->cl-source-package sbcl-make-hash))
12929
12930 (define-public ecl-make-hash
12931 (sbcl-package->ecl-package sbcl-make-hash))
12932
12933 (define-public sbcl-claw-support
12934 (package
12935 (name "sbcl-claw-support")
12936 (version "1.0.0")
12937 (source
12938 (origin
12939 (method git-fetch)
12940 (uri (git-reference
12941 (url "https://github.com/borodust/claw-support")
12942 (commit "9a15c8bed04585f45e6a461bcda1b475144dbd0b")))
12943 (file-name (git-file-name name version))
12944 (sha256
12945 (base32 "1my2ka7h72ipx5n3b465g6kjkasrhsvhqlijwcg6dhlzs5yygl23"))))
12946 (build-system asdf-build-system/sbcl)
12947 (home-page "https://github.com/borodust/claw-support")
12948 (synopsis "Support routines for claw")
12949 (description
12950 "This package provides support routines for the @code{claw} Common Lisp
12951 package.")
12952 (license license:expat)))
12953
12954 (define-public cl-claw-support
12955 (sbcl-package->cl-source-package sbcl-claw-support))
12956
12957 (define-public ecl-claw-support
12958 (sbcl-package->ecl-package sbcl-claw-support))
12959
12960 (define-public sbcl-claw
12961 (let ((revision "0")
12962 (commit "3cd4a96fca95eb9e8d5d069426694669f81b2250"))
12963 (package
12964 (name "sbcl-claw")
12965 (version (git-version "1.0" revision commit))
12966 (source
12967 (origin
12968 (method git-fetch)
12969 (uri (git-reference
12970 (url "https://github.com/borodust/claw")
12971 (commit commit)))
12972 (file-name (git-file-name "claw" version))
12973 (sha256
12974 (base32 "146yv0hc4hmk72562ssj2d41143pp84dcbd1h7f4nx1c7hf2bb0d"))))
12975 (build-system asdf-build-system/sbcl)
12976 (inputs
12977 `(("alexandria" ,sbcl-alexandria)
12978 ("cffi" ,sbcl-cffi)
12979 ("cl-json" ,sbcl-cl-json)
12980 ("cl-ppcre" ,sbcl-cl-ppcre)
12981 ("claw-support" ,sbcl-claw-support)
12982 ("local-time" ,sbcl-local-time)
12983 ("trivial-features" ,sbcl-trivial-features)))
12984 (home-page "https://github.com/borodust/claw")
12985 (synopsis "Autowrapper for Common Lisp")
12986 (description
12987 "This is a Common Lisp autowrapping facility for quickly creating clean
12988 and lean bindings to C libraries.")
12989 (license license:bsd-2))))
12990
12991 (define-public cl-claw
12992 (sbcl-package->cl-source-package sbcl-claw))
12993
12994 (define-public ecl-claw
12995 (sbcl-package->ecl-package sbcl-claw))
12996
12997 (define-public sbcl-claw-utils
12998 (let ((revision "0")
12999 (commit "efe25016501973dc369f067a64c7d225802bc56f"))
13000 (package
13001 (name "sbcl-claw-utils")
13002 ;; version is not specified
13003 (version (git-version "0.0.0" revision commit))
13004 (source
13005 (origin
13006 (method git-fetch)
13007 (uri (git-reference
13008 (url "https://github.com/borodust/claw-utils")
13009 (commit commit)))
13010 (file-name (git-file-name "claw-utils" version))
13011 (sha256
13012 (base32 "01df3kyf2qs3czi332dnz2s35x2j0fq46vgmsw7wjrrvnqc22mk5"))))
13013 (build-system asdf-build-system/sbcl)
13014 (inputs
13015 `(("alexandria" ,sbcl-alexandria)
13016 ("cffi" ,sbcl-cffi)
13017 ("claw" ,sbcl-claw)))
13018 (home-page "https://github.com/borodust/claw-utils")
13019 (synopsis "Utilities for easier autowrapping")
13020 (description
13021 "This Common Lisp library contains various handy utilties to help
13022 autowrapping with @code{claw}.")
13023 (license license:expat))))
13024
13025 (define-public cl-claw-utils
13026 (sbcl-package->cl-source-package sbcl-claw-utils))
13027
13028 (define-public ecl-claw-utils
13029 (sbcl-package->ecl-package sbcl-claw-utils))
13030
13031 (define-public sbcl-array-operations
13032 (let ((commit "75cbc3b1adb2e3ce2109489753d0f290b071e81b")
13033 (revision "0"))
13034 (package
13035 (name "sbcl-array-operations")
13036 (version (git-version "0.0.0" revision commit))
13037 (source
13038 (origin
13039 (method git-fetch)
13040 (uri (git-reference
13041 (url "https://github.com/bendudson/array-operations")
13042 (commit commit)))
13043 (file-name (git-file-name "array-operations" version))
13044 (sha256
13045 (base32 "0ip49hhq32w80qsc7jmspyda5r2rsszvw0mk2r3341cld78sz9ya"))))
13046 (build-system asdf-build-system/sbcl)
13047 (native-inputs
13048 `(("alexandria" ,sbcl-alexandria)
13049 ("clunit2" ,sbcl-clunit2)))
13050 (inputs
13051 `(("let-plus" ,sbcl-let-plus)))
13052 (synopsis "Simple array operations library for Common Lisp")
13053 (description
13054 "This library is a collection of functions and macros for manipulating
13055 Common Lisp arrays and performing numerical calculations with them.")
13056 (home-page "https://github.com/bendudson/array-operations")
13057 (license license:expat))))
13058
13059 (define-public cl-array-operations
13060 (sbcl-package->cl-source-package sbcl-array-operations))
13061
13062 (define-public ecl-array-operations
13063 (sbcl-package->ecl-package sbcl-array-operations))
13064
13065 (define-public sbcl-clml
13066 (let ((commit "95505b54c8c7b4b27f500c3be97fa5732f4b51a8")
13067 (revision "0"))
13068 (package
13069 (name "sbcl-clml")
13070 (version (git-version "0.0.0" revision commit))
13071 (source
13072 (origin
13073 (method git-fetch)
13074 (uri (git-reference
13075 (url "https://github.com/mmaul/clml")
13076 (commit commit)))
13077 (file-name (git-file-name "clml" version))
13078 (sha256
13079 (base32 "006pii59nmpc61n7p7h8ha5vjg6x0dya327i58z0rnvxs249h345"))
13080 ;; TODO: Remove this when the patch has been merged upstream.
13081 (patches (search-patches "sbcl-clml-fix-types.patch"))))
13082 (build-system asdf-build-system/sbcl)
13083 (inputs
13084 `(("alexandia" ,sbcl-alexandria)
13085 ("array-operations" ,sbcl-array-operations)
13086 ("cl-fad" ,sbcl-cl-fad)
13087 ("cl-ppcre" ,sbcl-cl-ppcre)
13088 ("drakma" ,sbcl-drakma)
13089 ("introspect-environment" ,sbcl-introspect-environment)
13090 ("iterate" ,sbcl-iterate)
13091 ("lparallel" ,sbcl-lparallel)
13092 ("parse-number" ,sbcl-parse-number)
13093 ("split-sequence" ,sbcl-split-sequence)
13094 ("trivial-garbage" ,sbcl-trivial-garbage)))
13095 (synopsis "Common Lisp machine learning library")
13096 (description
13097 "CLML (Common Lisp Machine Learning) is a high performance and large
13098 scale statistical machine learning package")
13099 (home-page "https://mmaul.github.io/clml/")
13100 (license license:llgpl))))
13101
13102 (define-public cl-clml
13103 (sbcl-package->cl-source-package sbcl-clml))
13104
13105 (define-public sbcl-utm-ups
13106 (let ((commit "780f1d8ab6290ad2be0f40e2cddc2535fa6fe979")
13107 (revision "0"))
13108 (package
13109 (name "sbcl-utm-ups")
13110 (version (git-version "1.0" revision commit))
13111 (source
13112 (origin
13113 (method git-fetch)
13114 (uri (git-reference
13115 (url "https://github.com/glv2/utm-ups")
13116 (commit commit)))
13117 (file-name (git-file-name "utm-ups" version))
13118 (sha256
13119 (base32 "0l3kr2m56skf5cx3kkkdcis7msmidcsixx9fqjapkcjsj8x67aqq"))))
13120 (build-system asdf-build-system/sbcl)
13121 (native-inputs
13122 `(("fiveam" ,sbcl-fiveam)))
13123 (synopsis
13124 "Convert coordinates between latitude/longitude and UTM or UPS")
13125 (description
13126 "This a Common Lisp library to convert geographic coordinates between
13127 latitude/longitude and UTM (Universal Transverse Mercator) or UPS (Universal
13128 Polar Stereographic).")
13129 (home-page "https://github.com/glv2/utm-ups")
13130 (license license:gpl3+))))
13131
13132 (define-public cl-utm-ups
13133 (sbcl-package->cl-source-package sbcl-utm-ups))
13134
13135 (define-public ecl-utm-ups
13136 (sbcl-package->ecl-package sbcl-utm-ups))
13137
13138 (define-public sbcl-mgrs
13139 (let ((commit "00455460407b7e5509d1be3da09bf6152956761f")
13140 (revision "0"))
13141 (package
13142 (name "sbcl-mgrs")
13143 (version (git-version "1.0" revision commit))
13144 (source
13145 (origin
13146 (method git-fetch)
13147 (uri (git-reference
13148 (url "https://github.com/glv2/mgrs")
13149 (commit commit)))
13150 (file-name (git-file-name "mgrs" version))
13151 (sha256
13152 (base32 "0ckvn4hg3wwivzavhfashb6fap4a1q10l8krhbng8bdb54ac10sz"))))
13153 (build-system asdf-build-system/sbcl)
13154 (native-inputs
13155 `(("fiveam" ,sbcl-fiveam)))
13156 (inputs
13157 `(("utm-ups" ,sbcl-utm-ups)))
13158 (synopsis
13159 "Convert coordinates between latitude/longitude and MGRS")
13160 (description
13161 "This a Common Lisp library to convert geographic coordinates between
13162 latitude/longitude and MGRS.")
13163 (home-page "https://github.com/glv2/mgrs")
13164 (license license:gpl3+))))
13165
13166 (define-public cl-mgrs
13167 (sbcl-package->cl-source-package sbcl-mgrs))
13168
13169 (define-public ecl-mgrs
13170 (sbcl-package->ecl-package sbcl-mgrs))
13171
13172 (define-public sbcl-maidenhead
13173 (let ((commit "b756d235c27b5d6798867aa240318af1a8f35d6d")
13174 (revision "0"))
13175 (package
13176 (name "sbcl-maidenhead")
13177 (version (git-version "1.0" revision commit))
13178 (source
13179 (origin
13180 (method git-fetch)
13181 (uri (git-reference
13182 (url "https://github.com/glv2/maidenhead")
13183 (commit commit)))
13184 (file-name (git-file-name "maidenhead" version))
13185 (sha256
13186 (base32 "02p990zprhjvifmsfk8yh3frvz6xyw26ikzxvzglqdixbal36nr3"))))
13187 (build-system asdf-build-system/sbcl)
13188 (native-inputs
13189 `(("fiveam" ,sbcl-fiveam)))
13190 (synopsis
13191 "Convert coordinates between latitude/longitude and Maidenhead")
13192 (description
13193 "This a Common Lisp library to convert geographic coordinates between
13194 latitude/longitude and Maidenhead locator system.")
13195 (home-page "https://github.com/glv2/maidenhead")
13196 (license license:gpl3+))))
13197
13198 (define-public cl-maidenhead
13199 (sbcl-package->cl-source-package sbcl-maidenhead))
13200
13201 (define-public ecl-maidenhead
13202 (sbcl-package->ecl-package sbcl-maidenhead))
13203
13204 (define-public sbcl-olc
13205 (let ((commit "517e27fa57d9a119b00a29c4b6b31e553deff309")
13206 (revision "0"))
13207 (package
13208 (name "sbcl-olc")
13209 (version (git-version "1.0" revision commit))
13210 (source
13211 (origin
13212 (method git-fetch)
13213 (uri (git-reference
13214 (url "https://github.com/glv2/olc")
13215 (commit commit)))
13216 (file-name (git-file-name "olc" version))
13217 (sha256
13218 (base32 "1lnfhp6z6kc8l605zp4siyjiw74y1h4bdq3jfizi084v505wxhgr"))))
13219 (build-system asdf-build-system/sbcl)
13220 (native-inputs
13221 `(("fiveam" ,sbcl-fiveam)))
13222 (synopsis
13223 "Convert coordinates between latitude/longitude and Open Location Code")
13224 (description
13225 "This a Common Lisp library to convert geographic coordinates between
13226 latitude/longitude and Open Location Code.")
13227 (home-page "https://github.com/glv2/olc")
13228 (license license:gpl3+))))
13229
13230 (define-public cl-olc
13231 (sbcl-package->cl-source-package sbcl-olc))
13232
13233 (define-public ecl-olc
13234 (sbcl-package->ecl-package sbcl-olc))
13235
13236 (define-public sbcl-regex
13237 (let ((commit "fbc9a9f313b9edc1788f33d4b23a29151635ae22"))
13238 (package
13239 (name "sbcl-regex")
13240 (version (git-version "1" "1" commit))
13241 (source
13242 (origin
13243 (method git-fetch)
13244 (uri (git-reference
13245 (url "https://github.com/michaelw/regex/")
13246 (commit commit)))
13247 (file-name (git-file-name name version))
13248 (sha256
13249 (base32 "0wq5wlafrxv13wg28hg5b10sc48b88swsvznpy2zg7x37m4nmm6a"))))
13250 (build-system asdf-build-system/sbcl)
13251 (home-page "https://github.com/michaelw/regex/")
13252 (synopsis "Regular expression engine for Common Lisp")
13253 (description
13254 "This Common Lisp package provides a regular expression engine.")
13255 (license license:bsd-2))))
13256
13257 (define-public cl-regex
13258 (sbcl-package->cl-source-package sbcl-regex))
13259
13260 (define-public ecl-regex
13261 (sbcl-package->ecl-package sbcl-regex))
13262
13263 (define-public sbcl-clawk
13264 (let ((commit "3a91634df686417114044a98c063cbe76bfac7b6"))
13265 (package
13266 (name "sbcl-clawk")
13267 (version (git-version "4" "1" commit))
13268 (source
13269 (origin
13270 (method git-fetch)
13271 (uri (git-reference
13272 (url "https://github.com/sharplispers/clawk")
13273 (commit commit)))
13274 (file-name (git-file-name name version))
13275 (sha256
13276 (base32 "1ph3xjqilvinvgr9q3w47zxqyz1sqnq030nlx7kgkkv8j3bnqk7a"))))
13277 (build-system asdf-build-system/sbcl)
13278 (inputs
13279 `(("sbcl-regex" ,sbcl-regex)))
13280 (home-page "https://github.com/sharplispers/clawk")
13281 (synopsis "Common Lisp AWK")
13282 (description
13283 "CLAWK is an AWK implementation embedded into Common Lisp.")
13284 (license license:bsd-2))))
13285
13286 (define-public cl-clawk
13287 (sbcl-package->cl-source-package sbcl-clawk))
13288
13289 (define-public ecl-clawk
13290 (sbcl-package->ecl-package sbcl-clawk))
13291
13292 (define-public sbcl-check-it
13293 (let ((commit "b79c9103665be3976915b56b570038f03486e62f"))
13294 (package
13295 (name "sbcl-check-it")
13296 (version (git-version "0.1.0" "1" commit))
13297 (source
13298 (origin
13299 (method git-fetch)
13300 (uri (git-reference
13301 (url "https://github.com/DalekBaldwin/check-it/")
13302 (commit commit)))
13303 (file-name (git-file-name name version))
13304 (sha256
13305 (base32 "1kbjwpniffdpv003igmlz5r0vy65m7wpfnhg54fhwirp1227hgg7"))))
13306 (build-system asdf-build-system/sbcl)
13307 (inputs
13308 `(("alexandria" ,sbcl-alexandria)
13309 ("closer-mop" ,sbcl-closer-mop)
13310 ("optima" ,sbcl-optima)))
13311 (native-inputs
13312 `(("stefil" ,sbcl-stefil)))
13313 (home-page "https://github.com/arclanguage/Clamp")
13314 (synopsis "Randomized specification-based testing for Common Lisp")
13315 (description
13316 "This is a randomized property-based testing library for Common Lisp.
13317 Rather than being a full-fledged general test framework in its own right, it's
13318 designed to embed randomized tests in whatever framework you like.")
13319 (license license:llgpl))))
13320
13321 (define-public cl-check-it
13322 (sbcl-package->cl-source-package sbcl-check-it))
13323
13324 (define-public ecl-check-it
13325 (sbcl-package->ecl-package sbcl-check-it))
13326
13327 (define-public sbcl-clamp
13328 (let ((commit "02b8f3953e5753cc61a719807c82f3795cd28fe1"))
13329 (package
13330 (name "sbcl-clamp")
13331 (version (git-version "0.3" "1" commit))
13332 (source
13333 (origin
13334 (method git-fetch)
13335 (uri (git-reference
13336 (url "https://github.com/arclanguage/Clamp")
13337 (commit commit)))
13338 (file-name (git-file-name name version))
13339 (sha256
13340 (base32 "0fdr9nqfmmpxm6hvjdxi1jkclya9xlnrw1yc3cn1m4ww3f50p31m"))))
13341 (build-system asdf-build-system/sbcl)
13342 (inputs
13343 `(("iterate" ,sbcl-iterate)
13344 ("cl-syntax" ,sbcl-cl-syntax)))
13345 (native-inputs
13346 `(("cl-unit" ,sbcl-clunit)
13347 ("check-it" ,sbcl-check-it)))
13348 (arguments
13349 `(#:phases
13350 (modify-phases %standard-phases
13351 (add-after 'unpack 'fix-build
13352 (lambda _
13353 (substitute* "clamp.asd"
13354 (("\\(:file \"read\" :depends-on \\(\"aliases\"\\)\\)")
13355 "(:file \"read\" :depends-on (\"aliases\" \"base\"))"))
13356 #t)))))
13357 (home-page "https://github.com/arclanguage/Clamp")
13358 (synopsis "Common Lisp with Arc macros and procedures")
13359 (description
13360 "Clamp is an attempt to bring the powerful, but verbose, language of
13361 Common Lisp up to the terseness of Arc.
13362
13363 There are two parts to Clamp. There is the core of Clamp, which implements
13364 the utilities of Arc that are easily converted from Arc to Common Lisp. The
13365 other part is the \"experimental\" part. It contains features of Arc that are
13366 not so easy to copy (ssyntax, argument destructuring, etc.).")
13367 (license license:artistic2.0))))
13368
13369 (define-public cl-clamp
13370 (sbcl-package->cl-source-package sbcl-clamp))
13371
13372 (define-public ecl-clamp
13373 (sbcl-package->ecl-package sbcl-clamp))
13374
13375 (define-public sbcl-trivial-shell
13376 (let ((commit "e02ec191b34b52deca5d1c4ee99d4fa13b8772e0"))
13377 (package
13378 (name "sbcl-trivial-shell")
13379 (version (git-version "0.2.0" "1" commit))
13380 (source
13381 (origin
13382 (method git-fetch)
13383 (uri (git-reference
13384 (url "https://github.com/gwkkwg/trivial-shell")
13385 (commit commit)))
13386 (file-name (git-file-name name version))
13387 (sha256
13388 (base32 "08mpkl5ij5sjfsyn8pq2kvsvpvyvr7ha1r8g1224fa667b8k2q85"))))
13389 (build-system asdf-build-system/sbcl)
13390 (native-inputs
13391 `(("lift" ,sbcl-lift)))
13392 (home-page "http://common-lisp.net/project/trivial-shell/")
13393 (synopsis "Common Lisp access to the shell")
13394 (description
13395 "A simple Common-Lisp interface to the underlying operating system.
13396 It's independent of the implementation and operating system.")
13397 (license license:expat))))
13398
13399 (define-public cl-trivial-shell
13400 (sbcl-package->cl-source-package sbcl-trivial-shell))
13401
13402 (define-public ecl-trivial-shell
13403 (sbcl-package->ecl-package sbcl-trivial-shell))
13404
13405 (define-public sbcl-clesh
13406 (let ((commit "44e96e04a72e5bc006dc4eb02ce8962348dd4a11"))
13407 (package
13408 (name "sbcl-clesh")
13409 (version (git-version "0.0.0" "1" commit))
13410 (source
13411 (origin
13412 (method git-fetch)
13413 (uri (git-reference
13414 (url "https://github.com/Neronus/Clesh")
13415 (commit commit)))
13416 (file-name (git-file-name name version))
13417 (sha256
13418 (base32 "012ry02djnqyvvs61wbbqj3saz621w2l9gczrywdxhi5p4ycx318"))))
13419 (build-system asdf-build-system/sbcl)
13420 (inputs
13421 `(("trivial-shell" ,sbcl-trivial-shell)
13422 ("named-readtables" ,sbcl-named-readtables)))
13423 (home-page "https://github.com/Neronus/Clesh")
13424 (synopsis "Embed shell code in Common Lisp")
13425 (description
13426 "This is a very short and simple program, written in Common Lisp, that
13427 extends Common Lisp to embed shell code in a manner similar to Perl's
13428 backtick. It has been forked from SHELISP.")
13429 (license license:bsd-2))))
13430
13431 (define-public cl-clesh
13432 (sbcl-package->cl-source-package sbcl-clesh))
13433
13434 (define-public ecl-clesh
13435 (sbcl-package->ecl-package sbcl-clesh))
13436
13437 (define-public sbcl-trivial-download
13438 (let ((commit "d2472061d86b1cf3d32f388daacd4e32a13af699"))
13439 (package
13440 (name "sbcl-trivial-download")
13441 (version (git-version "0.3" "1" commit))
13442 (source
13443 (origin
13444 (method git-fetch)
13445 (uri (git-reference
13446 (url "https://github.com/eudoxia0/trivial-download/")
13447 (commit commit)))
13448 (file-name (git-file-name name version))
13449 (sha256
13450 (base32 "06f46zr3gp3wlm2kgxna24qd2gpr1v89x9fynh1x5vrw6c6hqjcv"))))
13451 (build-system asdf-build-system/sbcl)
13452 (inputs
13453 `(("drakma" ,sbcl-drakma)))
13454 (home-page "https://github.com/eudoxia0/trivial-download/")
13455 (synopsis "Download files from Common Lisp")
13456 (description
13457 "@code{trivial-download} allows you to download files from the Internet
13458 from Common Lisp. It provides a progress bar.")
13459 (license license:bsd-2))))
13460
13461 (define-public cl-trivial-download
13462 (sbcl-package->cl-source-package sbcl-trivial-download))
13463
13464 (define-public ecl-trivial-download
13465 (sbcl-package->ecl-package sbcl-trivial-download))
13466
13467 (define-public sbcl-gtwiwtg
13468 (package
13469 (name "sbcl-gtwiwtg")
13470 (version "0.1.1")
13471 (source
13472 (origin
13473 (method git-fetch)
13474 (uri (git-reference
13475 (url "https://github.com/cbeo/gtwiwtg/")
13476 (commit version)))
13477 (file-name (git-file-name name version))
13478 (sha256
13479 (base32 "0lkraw0dwh4is4x5sp5rjrw6f93m0gr9849abrbi12s25ws7jbw4"))))
13480 (build-system asdf-build-system/sbcl)
13481 (native-inputs
13482 `(("osicat" ,sbcl-osicat)
13483 ("prove" ,sbcl-prove)))
13484 (home-page "https://github.com/cbeo/gtwiwtg/")
13485 (synopsis "Naive generators for Common Lisp")
13486 (description
13487 "The GTWIWTG library (Generators The Way I Want Them Generated --
13488 technically not generators, but iterators) is meant to be small, explorable,
13489 and understandable.")
13490 (license license:gpl3)))
13491
13492 (define-public cl-gtwiwtg
13493 (sbcl-package->cl-source-package sbcl-gtwiwtg))
13494
13495 (define-public ecl-gtwiwtg
13496 (sbcl-package->ecl-package sbcl-gtwiwtg))
13497
13498 (define-public sbcl-cl-progress-bar
13499 (let ((commit "9374170858663c8fe829e9fb5a29bd2cb48d95ae"))
13500 (package
13501 (name "sbcl-cl-progress-bar")
13502 (version (git-version "0.0.0" "1" commit))
13503 (source
13504 (origin
13505 (method git-fetch)
13506 (uri (git-reference
13507 (url "https://github.com/sirherrbatka/cl-progress-bar/")
13508 (commit commit)))
13509 (file-name (git-file-name name version))
13510 (sha256
13511 (base32 "1ldb4qhmx431n3lsq71ynwb9ybazbfqd55icjbhi06mj52ngndir"))))
13512 (build-system asdf-build-system/sbcl)
13513 (inputs
13514 `(("bordeaux-threads" ,sbcl-bordeaux-threads)
13515 ("documentation-utils-extensions" ,sbcl-documentation-utils-extensions)))
13516 (home-page "https://github.com/sirherrbatka/cl-progress-bar/")
13517 (synopsis "Progress bars in Common Lisp")
13518 (description
13519 "This library provides almost the same code as used inside Quicklisp
13520 for drawning progress bars")
13521 (license license:expat))))
13522
13523 (define-public cl-progress-bar
13524 (sbcl-package->cl-source-package sbcl-cl-progress-bar))
13525
13526 (define-public ecl-cl-progress-bar
13527 (sbcl-package->ecl-package sbcl-cl-progress-bar))
13528
13529 (define-public sbcl-repl-utilities
13530 (let ((commit "e0de9c92e774f77cab1a4cd92e2ac922ac3a807e"))
13531 (package
13532 (name "sbcl-repl-utilities")
13533 (version (git-version "0.0.0" "1" commit))
13534 (source
13535 (origin
13536 (method git-fetch)
13537 (uri (git-reference
13538 (url "https://github.com/m-n/repl-utilities/")
13539 (commit commit)))
13540 (file-name (git-file-name name version))
13541 (sha256
13542 (base32 "1r5icmw3ha5y77kvzqni3a9bcd66d9pz5mjsbw04xg3jk0d15cgz"))))
13543 (build-system asdf-build-system/sbcl)
13544 (home-page "https://github.com/m-n/repl-utilities")
13545 (synopsis "Ease common tasks at the Common Lisp REPL")
13546 (description
13547 "@code{repl-utilities} is a set of utilities which ease life at the
13548 REPL. It includes three sorts of features: introspective procedures,
13549 miscellaneous utility functions, and, pulling them together, methods to
13550 conveniently keep these symbols and optionally additional symbols available in
13551 whichever package you switch to.")
13552 (license license:bsd-2))))
13553
13554 (define-public cl-repl-utilities
13555 (sbcl-package->cl-source-package sbcl-repl-utilities))
13556
13557 (define-public ecl-repl-utilities
13558 (sbcl-package->ecl-package sbcl-repl-utilities))
13559
13560 (define-public sbcl-supertrace
13561 (let ((commit "66d22c3ff131ecd1c8048dfced1d62ed6024ecb0"))
13562 (package
13563 (name "sbcl-supertrace")
13564 (version (git-version "0.1.0" "1" commit))
13565 (source
13566 (origin
13567 (method git-fetch)
13568 (uri (git-reference
13569 (url "https://github.com/fukamachi/supertrace")
13570 (commit commit)))
13571 (file-name (git-file-name name version))
13572 (sha256
13573 (base32 "0n369n6b7y1m49biccnnr7svymjdsk8sksrkqrn3mj21vgv7s7bg"))))
13574 (build-system asdf-build-system/sbcl)
13575 (native-inputs
13576 `(("cffi-grovel" ,sbcl-cffi)
13577 ("rove" ,sbcl-rove)
13578 ("cl-ppcre" ,sbcl-cl-ppcre)
13579 ("bordeaux-threads" ,sbcl-bordeaux-threads)))
13580 (inputs
13581 `(("cffi" ,sbcl-cffi)))
13582 (home-page "https://github.com/fukamachi/supertrace")
13583 (synopsis "Improved Common Lisp tracing for debugging and profiling")
13584 (description
13585 "Supertrace provides a superior Common Lisp @code{trace} functionality
13586 for debugging and profiling real world applications.")
13587 (license license:bsd-2))))
13588
13589 (define-public cl-supertrace
13590 (sbcl-package->cl-source-package sbcl-supertrace))
13591
13592 (define-public ecl-supertrace
13593 (sbcl-package->ecl-package sbcl-supertrace))
13594
13595 (define-public sbcl-trivial-benchmark
13596 (let ((commit "42d76733dd2e873471c6f1e27d39113293f7dd5c"))
13597 (package
13598 (name "sbcl-trivial-benchmark")
13599 (version (git-version "2.0.0" "1" commit))
13600 (source
13601 (origin
13602 (method git-fetch)
13603 (uri (git-reference
13604 (url "https://github.com/Shinmera/trivial-benchmark/")
13605 (commit commit)))
13606 (file-name (git-file-name name version))
13607 (sha256
13608 (base32 "0fbzqbpm2ixz85555krl36kbbbjyn699vdj6k383khi3g9y629fa"))))
13609 (build-system asdf-build-system/sbcl)
13610 (inputs
13611 `(("alexandria" ,sbcl-alexandria)))
13612 (home-page "http://shinmera.github.io/trivial-benchmark/")
13613 (synopsis "Easy to use benchmarking system for Common Lisp")
13614 (description
13615 "Trivial-Benchmark runs a block of code many times and outputs some
13616 statistical data for it. On SBCL this includes the data from @code{time}, for
13617 all other implementations just the @code{real-time} and @code{run-time} data.
13618 However, you can extend the system by adding your own @code{metrics} to it, or
13619 even by adding additional statistical @code{compute}ations. ")
13620 (license license:zlib))))
13621
13622 (define-public cl-trivial-benchmark
13623 (sbcl-package->cl-source-package sbcl-trivial-benchmark))
13624
13625 (define-public ecl-trivial-benchmark
13626 (sbcl-package->ecl-package sbcl-trivial-benchmark))
13627
13628 (define-public sbcl-glyphs
13629 (let ((commit "1ff5714e8c1dca327bc604dfe3e3d1f4b7755373"))
13630 (package
13631 (name "sbcl-glyphs")
13632 (version (git-version "0.0.0" "1" commit))
13633 (source
13634 (origin
13635 (method git-fetch)
13636 (uri (git-reference
13637 (url "https://github.com/ahungry/glyphs/")
13638 (commit commit)))
13639 (file-name (git-file-name name version))
13640 (sha256
13641 (base32 "17kai1anbkk5dj5sbrsin2fc019cmcbglb900db60v38myj0y0wf"))))
13642 (build-system asdf-build-system/sbcl)
13643 (inputs
13644 `(("cl-ppcre" ,sbcl-cl-ppcre)
13645 ("parenscript" ,sbcl-parenscript)
13646 ("named-readtables" ,sbcl-named-readtables)))
13647 (home-page "https://github.com/ahungry/glyphs/")
13648 (synopsis "Reduce Common Lisp verbosity")
13649 (description
13650 "This library is a little experiment in reducing verbosity in Common
13651 Lisp, inspired by BODOL (@url{https://github.com/bodil/BODOL}).")
13652 (license license:gpl3))))
13653
13654 (define-public cl-glyphs
13655 (sbcl-package->cl-source-package sbcl-glyphs))
13656
13657 (define-public ecl-glyphs
13658 (sbcl-package->ecl-package sbcl-glyphs))
13659
13660 (define-public sbcl-zs3
13661 (package
13662 (name "sbcl-zs3")
13663 (version "1.3.3")
13664 (source
13665 (origin
13666 (method git-fetch)
13667 (uri
13668 (git-reference
13669 (url "https://github.com/xach/zs3")
13670 (commit (string-append "release-" version))))
13671 (file-name (git-file-name "zs3" version))
13672 (sha256
13673 (base32 "186v95wgsj2hkxdw2jl9x1w4fddjclp7arp0rrd9vf5ly8h8sbf3"))))
13674 (build-system asdf-build-system/sbcl)
13675 (inputs
13676 `(("drakma" ,sbcl-drakma)
13677 ("alexandria" ,sbcl-alexandria)
13678 ("cxml" ,sbcl-cxml)
13679 ("ironclad" ,sbcl-ironclad)
13680 ("puri" ,sbcl-puri)
13681 ("cl-base64" ,sbcl-cl-base64)))
13682 (synopsis "Work with Amazon S3 and Amazon CloudFront from Common Lisp")
13683 (description "This is ZS3, a library for working with Amazon's Simple Storage
13684 Service (S3) and CloudFront service from Common Lisp.")
13685 (home-page "https://github.com/xach/zs3")
13686 (license license:bsd-2)))
13687
13688 (define-public cl-zs3
13689 (sbcl-package->cl-source-package sbcl-zs3))
13690
13691 (define-public ecl-zs3
13692 (sbcl-package->ecl-package sbcl-zs3))
13693
13694 (define-public sbcl-simple-neural-network
13695 (package
13696 (name "sbcl-simple-neural-network")
13697 (version "3.1")
13698 (source
13699 (origin
13700 (method git-fetch)
13701 (uri (git-reference
13702 (url "https://github.com/glv2/simple-neural-network")
13703 (commit (string-append "v" version))))
13704 (file-name (git-file-name "simple-neural-network" version))
13705 (sha256
13706 (base32 "1jj1c90fr5clwka0jv32hv6xp1bkdlpa6x5jh19an13rhx8ll4zr"))))
13707 (build-system asdf-build-system/sbcl)
13708 (native-inputs
13709 `(("chipz" ,sbcl-chipz)
13710 ("fiveam" ,sbcl-fiveam)))
13711 (inputs
13712 `(("cl-store" ,sbcl-cl-store)
13713 ("lparallel" ,sbcl-lparallel)))
13714 (arguments
13715 `(#:phases
13716 (modify-phases %standard-phases
13717 (add-after 'check 'remove-test-data
13718 (lambda* (#:key outputs #:allow-other-keys)
13719 (let ((out (assoc-ref outputs "out")))
13720 (for-each delete-file (find-files out "\\.gz$"))))))))
13721 (synopsis "Simple neural network in Common Lisp")
13722 (description
13723 "@code{simple-neural-network} is a Common Lisp library for creating,
13724 training and using basic neural networks. The networks created by this
13725 library are feedforward neural networks trained using backpropagation.")
13726 (home-page "https://github.com/glv2/simple-neural-network")
13727 (license license:gpl3+)))
13728
13729 (define-public cl-simple-neural-network
13730 (sbcl-package->cl-source-package sbcl-simple-neural-network))
13731
13732 (define-public ecl-simple-neural-network
13733 (sbcl-package->ecl-package sbcl-simple-neural-network))
13734
13735 (define-public sbcl-zstd
13736 (let ((commit "d144582c581aaa52bac24d6686af27fa3e781e06")
13737 (revision "1"))
13738 (package
13739 (name "sbcl-zstd")
13740 (version (git-version "1.0" revision commit))
13741 (source
13742 (origin
13743 (method git-fetch)
13744 (uri (git-reference
13745 (url "https://github.com/glv2/cl-zstd")
13746 (commit commit)))
13747 (file-name (git-file-name "cl-zstd" version))
13748 (sha256
13749 (base32 "1774jy8hzbi6nih3sq6vchk66f7g8w86dwgpbvljyfzcnkcaz6ql"))))
13750 (build-system asdf-build-system/sbcl)
13751 (native-inputs
13752 `(("fiveam" ,sbcl-fiveam)))
13753 (inputs
13754 `(("cffi" ,sbcl-cffi)
13755 ("cl-octet-streams" ,sbcl-cl-octet-streams)
13756 ("zstd-lib" ,zstd "lib")))
13757 (arguments
13758 '(#:phases
13759 (modify-phases %standard-phases
13760 (add-after 'unpack 'fix-paths
13761 (lambda* (#:key inputs #:allow-other-keys)
13762 (substitute* "src/libzstd.lisp"
13763 (("libzstd\\.so")
13764 (string-append (assoc-ref inputs "zstd-lib")
13765 "/lib/libzstd.so")))
13766 #t)))))
13767 (synopsis "Common Lisp library for Zstandard (de)compression")
13768 (description
13769 "This Common Lisp library provides functions for Zstandard
13770 compression/decompression using bindings to the libzstd C library.")
13771 (home-page "https://github.com/glv2/cl-zstd")
13772 (license license:gpl3+))))
13773
13774 (define-public cl-zstd
13775 (sbcl-package->cl-source-package sbcl-zstd))
13776
13777 (define-public ecl-zstd
13778 (sbcl-package->ecl-package sbcl-zstd))
13779
13780 (define-public sbcl-agnostic-lizard
13781 (let ((commit "fe3a73719f05901c8819f8995a3ebae738257952")
13782 (revision "1"))
13783 (package
13784 (name "sbcl-agnostic-lizard")
13785 (version (git-version "0.0.0" revision commit))
13786 (source
13787 (origin
13788 (method git-fetch)
13789 (uri (git-reference
13790 (url "https://gitlab.common-lisp.net/mraskin/agnostic-lizard")
13791 (commit commit)))
13792 (file-name (git-file-name name version))
13793 (sha256
13794 (base32 "0ax78y8w4zlp5dcwyhz2nq7j3shi49qn31dkfg8lv2jlg7mkwh2d"))))
13795 (build-system asdf-build-system/sbcl)
13796 (synopsis "Almost correct portable code walker for Common Lisp")
13797 (description
13798 "Agnostic Lizard is a portable implementation of a code walker and in
13799 particular of the macroexpand-all function (and macro) that makes a best
13800 effort to be correct while not expecting much beyond what the Common Lisp
13801 standard requires.
13802
13803 It aims to be implementation-agnostic and to climb the syntax trees.")
13804 (home-page "https://gitlab.common-lisp.net/mraskin/agnostic-lizard")
13805 (license license:gpl3+))))
13806
13807 (define-public cl-agnostic-lizard
13808 (sbcl-package->cl-source-package sbcl-agnostic-lizard))
13809
13810 (define-public ecl-agnostic-lizard
13811 (sbcl-package->ecl-package sbcl-agnostic-lizard))
13812
13813 (define-public sbcl-dynamic-classes
13814 (package
13815 (name "sbcl-dynamic-classes")
13816 (version "1.0.2")
13817 (source
13818 (origin
13819 (method git-fetch)
13820 (uri (git-reference
13821 (url "https://github.com/gwkkwg/dynamic-classes")
13822 (commit (string-append "version-" version))))
13823 (file-name (git-file-name "dynamic-classes" version))
13824 (sha256
13825 (base32 "1z3ag6w4ff0v6715xa9zhvwjqnp4i6zrjfmxdz8m115sklbwgm6c"))))
13826 (build-system asdf-build-system/sbcl)
13827 (inputs
13828 `(("metatilities-base" ,sbcl-metatilities-base)))
13829 (arguments
13830 ;; NOTE: (Sharlatan-20210106222900+0000) Circular dependencies and failing
13831 ;; test suites. lift-standard.config contains referances to deprecated
13832 ;; functionality.
13833 `(#:tests? #f))
13834 (home-page "https://common-lisp.net/project/dynamic-classes/")
13835 (synopsis "Dynamic class definition for Common Lisp")
13836 (description "Dynamic-Classes helps to ease the prototyping process by
13837 bringing dynamism to class definition.")
13838 (license license:expat)))
13839
13840 (define-public ecl-dynamic-classes
13841 (sbcl-package->ecl-package sbcl-dynamic-classes))
13842
13843 (define-public cl-dynamic-classes
13844 (sbcl-package->cl-source-package sbcl-dynamic-classes))
13845
13846 (define-public sbcl-cl-markdown
13847 ;; NOTE: (Sharlatan-20210106214629+0000) latest version tag
13848 ;; "version-0.10.6_version-0.10.6" is failing to build due to missing system
13849 ;; #:container-dynamic-classes
13850 (package
13851 (name "sbcl-cl-markdown")
13852 (version "0.10.4")
13853 (source
13854 (origin
13855 (method git-fetch)
13856 (uri (git-reference
13857 (url "https://github.com/gwkkwg/cl-markdown")
13858 (commit (string-append "version-" version))))
13859 (file-name (git-file-name "cl-markdown" version))
13860 (sha256
13861 (base32 "1wdjbdd1zyskxf7zlilcp6fmwkivybj0wjp64vvzb265d5xi7p8p"))))
13862 (build-system asdf-build-system/sbcl)
13863 (inputs
13864 `(("anaphora" ,sbcl-anaphora)
13865 ("cl-containers" ,sbcl-cl-containers)
13866 ("cl-ppcre" ,sbcl-cl-ppcre)
13867 ("dynamic-classes" ,sbcl-dynamic-classes)
13868 ("metabang-bind" ,sbcl-metabang-bind)
13869 ("metatilities-base" ,sbcl-metatilities-base)))
13870 (arguments
13871 ;; NOTE: (Sharlatan-20210107213629+0000) Tests depend on too many not
13872 ;; available systems, which themself are abandoned.
13873 `(#:tests? #f))
13874 (home-page "https://common-lisp.net/project/cl-markdown/")
13875 (synopsis "Common Lisp rewrite of Markdown")
13876 (description
13877 "This is an implementation of a Markdown parser in Common Lisp.")
13878 (license license:expat)))
13879
13880 (define-public ecl-cl-markdown
13881 (sbcl-package->ecl-package sbcl-cl-markdown))
13882
13883 (define-public cl-markdown
13884 (sbcl-package->cl-source-package sbcl-cl-markdown))
13885
13886 (define-public sbcl-magicffi
13887 (let ((commit "d88f2f280c31f639e4e05be75215d8a8dce6aef2"))
13888 (package
13889 (name "sbcl-magicffi")
13890 (version (git-version "0.0.0" "1" commit))
13891 (source
13892 (origin
13893 (method git-fetch)
13894 (uri (git-reference
13895 (url "https://github.com/dochang/magicffi/")
13896 (commit commit)))
13897 (file-name (git-file-name name version))
13898 (sha256
13899 (base32 "0p6ysa92fk34bhxpw7bycbfgw150fv11z9x8jr9xb4lh8cm2hvp6"))))
13900 (build-system asdf-build-system/sbcl)
13901 (native-inputs
13902 `(("alexandria" ,sbcl-alexandria)))
13903 (inputs
13904 `(("cffi" ,sbcl-cffi)
13905 ("ppcre" ,sbcl-cl-ppcre)
13906 ("libmagic" ,file)))
13907 (arguments
13908 `(#:phases
13909 (modify-phases %standard-phases
13910 (add-after 'unpack 'fix-paths
13911 (lambda* (#:key inputs #:allow-other-keys)
13912 (let ((magic (assoc-ref inputs "libmagic")))
13913 (substitute* "grovel.lisp"
13914 (("/usr/include/magic.h")
13915 (string-append magic "/include/magic.h")))
13916 (substitute* "api.lisp"
13917 ((":default \"libmagic\"" all)
13918 (string-append ":default \"" magic "/lib/libmagic\"")))))))))
13919 (home-page "https://common-lisp.net/project/magicffi/")
13920 (synopsis "Common Lisp interface to libmagic based on CFFI")
13921 (description
13922 "MAGICFFI is a Common Lisp CFFI interface to libmagic(3), the file type
13923 determination library using @emph{magic} numbers.")
13924 (license license:bsd-2))))
13925
13926 (define-public ecl-magicffi
13927 (sbcl-package->ecl-package sbcl-magicffi))
13928
13929 (define-public cl-magicffi
13930 (sbcl-package->cl-source-package sbcl-magicffi))
13931
13932 (define-public sbcl-shlex
13933 (let ((commit "c5616dffca0d4d8ddbc1cd6f37a96d88477b2740"))
13934 (package
13935 (name "sbcl-shlex")
13936 (version (git-version "0.0.0" "1" commit))
13937 (source
13938 (origin
13939 (method git-fetch)
13940 (uri (git-reference
13941 (url "https://github.com/ruricolist/cl-shlex")
13942 (commit commit)))
13943 (file-name (git-file-name name version))
13944 (sha256
13945 (base32 "1nas024n4wv319bf40aal96g72bgi9nkapj2chywj2cc6r8hzkfg"))))
13946 (build-system asdf-build-system/sbcl)
13947 (inputs
13948 `(("alexandria" ,sbcl-alexandria)
13949 ("serapeum" ,sbcl-serapeum)
13950 ("ppcre" ,sbcl-cl-ppcre)
13951 ("unicode" ,sbcl-cl-unicode)))
13952 (home-page "https://github.com/ruricolist/cl-shlex")
13953 (synopsis "Common Lisp lexical analyzer for shell-like syntaxes")
13954 (description
13955 "This library contains a lexer for syntaxes that use shell-like rules
13956 for quoting and commenting. It is a port of the @code{shlex} module from Python’s
13957 standard library.")
13958 (license license:expat))))
13959
13960 (define-public ecl-shlex
13961 (sbcl-package->ecl-package sbcl-shlex))
13962
13963 (define-public cl-shlex
13964 (sbcl-package->cl-source-package sbcl-shlex))
13965
13966 (define-public sbcl-cmd
13967 (let ((commit "bc5a3bee8f22917126e4c3d05b33f766e562dbd8"))
13968 (package
13969 (name "sbcl-cmd")
13970 (version (git-version "0.0.1" "3" commit))
13971 (source
13972 (origin
13973 (method git-fetch)
13974 (uri (git-reference
13975 (url "https://github.com/ruricolist/cmd/")
13976 (commit commit)))
13977 (file-name (git-file-name name version))
13978 (sha256
13979 (base32 "1sjlabrknw1kjb2y89vssjhcqh3slgly8wnr3152zgis8lsj2yc7"))))
13980 (build-system asdf-build-system/sbcl)
13981 (inputs
13982 `(("alexandria" ,sbcl-alexandria)
13983 ("coreutils" ,coreutils)
13984 ("procps" ,procps)
13985 ("serapeum" ,sbcl-serapeum)
13986 ("shlex" ,sbcl-shlex)
13987 ("trivia" ,sbcl-trivia)))
13988 (arguments
13989 `(#:phases
13990 (modify-phases %standard-phases
13991 (add-after 'unpack 'fix-paths
13992 (lambda* (#:key inputs #:allow-other-keys)
13993 (let ((bin (string-append (assoc-ref inputs "coreutils") "/bin"))
13994 (ps-bin (string-append (assoc-ref inputs "procps") "/bin")))
13995 (substitute* "cmd.lisp"
13996 (("\\(def \\+env\\+ \"env\"\\)")
13997 (format #f "(def +env+ \"~a/env\")" bin))
13998 (("\\(def \\+kill\\+ \"kill\"\\)")
13999 (format #f "(def +kill+ \"~a/kill\")" bin))
14000 (("\\(def \\+ps\\+ \"ps\"\\)")
14001 (format #f "(def +ps+ \"~a/ps\")" ps-bin))
14002 (("\\(def \\+pwd\\+ \"pwd\"\\)")
14003 (format #f "(def +pwd+ \"~a/pwd\")" bin))
14004 (("\\(def \\+sh\\+ \"/bin/sh\"\\)")
14005 (format #f "(def +sh+ \"~a\")" (which "sh")))
14006 (("\\(def \\+tr\\+ \"tr\"\\)")
14007 (format #f "(def +tr+ \"~a/tr\")" bin)))))))))
14008 (home-page "https://github.com/ruricolist/cmd")
14009 (synopsis "Conveniently run external programs from Common Lisp")
14010 (description
14011 "A utility for running external programs, built on UIOP.
14012 Cmd is designed to be natural to use, protect against shell interpolation and
14013 be usable from multi-threaded programs.")
14014 (license license:expat))))
14015
14016 (define-public ecl-cmd
14017 (sbcl-package->ecl-package sbcl-cmd))
14018
14019 (define-public cl-cmd
14020 (sbcl-package->cl-source-package sbcl-cmd))
14021
14022 (define-public sbcl-ppath
14023 (let ((commit "eb1a8173b4d1d691ea9a7699412123462f58c3ce"))
14024 (package
14025 (name "sbcl-ppath")
14026 (version (git-version "0.1" "1" commit))
14027 (source
14028 (origin
14029 (method git-fetch)
14030 (uri (git-reference
14031 (url "https://github.com/fourier/ppath/")
14032 (commit commit)))
14033 (file-name (git-file-name name commit))
14034 (sha256
14035 (base32 "1c46q9lmzqv14z80d3fwdawgn3pn4922x31fyqvsvbcjm4hd16fb"))))
14036 (build-system asdf-build-system/sbcl)
14037 (inputs
14038 `(("alexandria" ,sbcl-alexandria)
14039 ("cffi" ,sbcl-cffi)
14040 ("osicat" ,sbcl-osicat)
14041 ("ppcre" ,sbcl-cl-ppcre)
14042 ("split-sequence" ,sbcl-split-sequence)
14043 ("trivial-features" ,sbcl-trivial-features)))
14044 (native-inputs
14045 `(("cl-fad" ,sbcl-cl-fad)
14046 ("prove" ,sbcl-prove)))
14047 (home-page "https://github.com/fourier/ppath")
14048 (synopsis "Common Lisp's implementation of the Python's os.path module")
14049 (description
14050 "This library is a path strings manipulation library inspired by
14051 Python's @code{os.path}. All functionality from @code{os.path} is supported on
14052 major operation systems.
14053
14054 The philosophy behind is to use simple strings and \"dumb\" string
14055 manipulation functions to handle paths and filenames. Where possible the
14056 corresponding OS system functions are called.")
14057 (license license:bsd-2))))
14058
14059 (define-public ecl-ppath
14060 (sbcl-package->ecl-package sbcl-ppath))
14061
14062 (define-public cl-ppath
14063 (sbcl-package->cl-source-package sbcl-ppath))
14064
14065 (define-public sbcl-trivial-escapes
14066 (let ((commit "1eca78da2078495d09893be58c28b3aa7b8cc4d1"))
14067 (package
14068 (name "sbcl-trivial-escapes")
14069 (version (git-version "1.2.0" "1" commit))
14070 (source
14071 (origin
14072 (method git-fetch)
14073 (uri (git-reference
14074 (url "https://github.com/williamyaoh/trivial-escapes")
14075 (commit commit)))
14076 (file-name (git-file-name name commit))
14077 (sha256
14078 (base32 "0v6h8lk17iqv1qkxgqjyzn8gi6v0hvq2vmfbb01md3zjvjqxn6lr"))))
14079 (build-system asdf-build-system/sbcl)
14080 (inputs
14081 `(("named-readtables" ,sbcl-named-readtables)))
14082 (native-inputs
14083 `(("fiveam" ,sbcl-fiveam)))
14084 (home-page "https://github.com/williamyaoh/trivial-escapes")
14085 (synopsis "C-style escape directives for Common Lisp")
14086 (description
14087 "This Common Lisp library interprets escape characters the same way that
14088 most other programming language do.
14089 It provides four readtables. The default one lets you write strings like this:
14090 @code{#\"This string has\na newline in it!\"}.")
14091 (license license:public-domain))))
14092
14093 (define-public ecl-trivial-escapes
14094 (sbcl-package->ecl-package sbcl-trivial-escapes))
14095
14096 (define-public cl-trivial-escapes
14097 (sbcl-package->cl-source-package sbcl-trivial-escapes))
14098
14099 (define-public sbcl-cl-indentify
14100 (let ((commit "eb770f434defa4cd41d84bca822428dfd0dbac53"))
14101 (package
14102 (name "sbcl-cl-indentify")
14103 (version (git-version "0.1" "1" commit))
14104 (source
14105 (origin
14106 (method git-fetch)
14107 (uri (git-reference
14108 (url "https://github.com/yitzchak/cl-indentify")
14109 (commit commit)))
14110 (file-name (git-file-name name commit))
14111 (sha256
14112 (base32 "0ha36bhg474vr76vfhr13szc8cfdj1ickg92k1icz791bqaqg67p"))))
14113 (build-system asdf-build-system/sbcl)
14114 (inputs
14115 `(("alexandria" ,sbcl-alexandria)
14116 ("command-line-arguments" ,sbcl-command-line-arguments)
14117 ("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
14118 (native-inputs
14119 `(("trivial-escapes" ,sbcl-trivial-escapes)
14120 ("rove" ,sbcl-rove)))
14121 (home-page "https://github.com/yitzchak/cl-indentify")
14122 (synopsis "Code beautifier for Common Lisp")
14123 (description
14124 "A library and command line utility to automatically indent Common Lisp
14125 source files.")
14126 (license license:expat))))
14127
14128 (define-public ecl-cl-indentify
14129 (sbcl-package->ecl-package sbcl-cl-indentify))
14130
14131 (define-public cl-indentify
14132 (sbcl-package->cl-source-package sbcl-cl-indentify))
14133
14134 (define-public sbcl-concrete-syntax-tree
14135 (let ((commit "abd242a59dadc5452aa9dbc1d313c83ec2c11f46"))
14136 (package
14137 (name "sbcl-concrete-syntax-tree")
14138 (version (git-version "0.0.0" "1" commit))
14139 (source
14140 (origin
14141 (method git-fetch)
14142 (uri (git-reference
14143 (url "https://github.com/s-expressionists/Concrete-Syntax-Tree")
14144 (commit commit)))
14145 (file-name (git-file-name name commit))
14146 (sha256
14147 (base32 "1lyrglc3h1if44gxd9cwv90wa90nrdjvb7fry39b1xn8ywdfa7di"))))
14148 (build-system asdf-build-system/sbcl)
14149 (inputs
14150 `(("acclimation" ,sbcl-acclimation)))
14151 (home-page "https://github.com/s-expressionists/Concrete-Syntax-Tree")
14152 (synopsis "Parse Common Lisp code into a concrete syntax tree")
14153 (description
14154 "This library is intended to solve the problem of source tracking for
14155 Common Lisp code.
14156
14157 By \"source tracking\", it is meant that code elements that have a known
14158 origin in the form of a position in a file or in an editor buffer are
14159 associated with some kind of information about this origin.
14160
14161 Since the exact nature of such origin information depends on the Common Lisp
14162 implementation and the purpose of wanting to track that origin, the library
14163 does not impose a particular structure of this information. Instead, it
14164 provides utilities for manipulating source code in the form of what is called
14165 concrete syntax trees (CSTs for short) that preserve this information about
14166 the origin.")
14167 (license license:bsd-2))))
14168
14169 (define-public ecl-concrete-syntax-tree
14170 (sbcl-package->ecl-package sbcl-concrete-syntax-tree))
14171
14172 (define-public cl-concrete-syntax-tree
14173 (sbcl-package->cl-source-package sbcl-concrete-syntax-tree))
14174
14175 (define-public sbcl-eclector
14176 (package
14177 (name "sbcl-eclector")
14178 (version "0.5.0")
14179 (source
14180 (origin
14181 (method git-fetch)
14182 (uri (git-reference
14183 (url "https://github.com/s-expressionists/Eclector")
14184 (commit version)))
14185 (file-name (git-file-name name version))
14186 (sha256
14187 (base32 "0bwkla0jdp5bg0q1zca5wg22b0nbdmglgax345nrhsf8bdrh47wm"))))
14188 (build-system asdf-build-system/sbcl)
14189 (inputs
14190 `(("acclimation" ,sbcl-acclimation)
14191 ("alexandria" ,sbcl-alexandria)
14192 ("closer-mop" ,sbcl-closer-mop)
14193 ("concrete-syntax-tree" ,sbcl-concrete-syntax-tree)))
14194 (native-inputs
14195 `(("fiveam" ,sbcl-fiveam)))
14196 (arguments
14197 '(#:asd-systems '("eclector"
14198 "eclector-concrete-syntax-tree")))
14199 (home-page "https://s-expressionists.github.io/Eclector/")
14200 (synopsis "Highly customizable, portable Common Lisp reader")
14201 (description
14202 "Eclector is a portable Common Lisp reader that is highly customizable,
14203 can recover from errors and can return concrete syntax trees.
14204
14205 In contrast to many other reader implementations, eclector can recover from
14206 most errors in the input supplied to it and continue reading. This capability
14207 is realized as a restart.
14208
14209 It can also produce instances of the concrete syntax tree classes provided by
14210 the concrete syntax tree library.")
14211 (license license:bsd-2)))
14212
14213 (define-public ecl-eclector
14214 (sbcl-package->ecl-package sbcl-eclector))
14215
14216 (define-public cl-eclector
14217 (sbcl-package->cl-source-package sbcl-eclector))
14218
14219 (define-public sbcl-jsown
14220 (let ((commit "744c4407bef58dfa876d9da0b5c0205d869e7977"))
14221 (package
14222 (name "sbcl-jsown")
14223 (version (git-version "1.0.1" "1" commit))
14224 (source
14225 (origin
14226 (method git-fetch)
14227 (uri (git-reference
14228 (url "https://github.com/madnificent/jsown")
14229 (commit commit)))
14230 (file-name (git-file-name name commit))
14231 (sha256
14232 (base32 "0gadvmf1d9bq35s61z76psrsnzwwk12svi66jigf491hv48wigw7"))))
14233 (build-system asdf-build-system/sbcl)
14234 (home-page "https://github.com/madnificent/jsown")
14235 (synopsis "Fast JSON reader / writer library for Common Lisp")
14236 (description
14237 "@code{jsown} is a high performance Common Lisp JSON parser. Its aim
14238 is to allow for the fast parsing of JSON objects in Common Lisp. Recently,
14239 functions and macros have been added to ease the burden of writing and editing
14240 @code{jsown} objects.
14241
14242 @code{jsown} allows you to parse JSON objects quickly to a modifiable Lisp
14243 list and write them back. If you only need partial retrieval of objects,
14244 @code{jsown} allows you to select the keys which you would like to see parsed.
14245 @code{jsown} also has a JSON writer and some helper methods to alter the JSON
14246 objects themselves.")
14247 (license license:expat))))
14248
14249 (define-public ecl-jsown
14250 (sbcl-package->ecl-package sbcl-jsown))
14251
14252 (define-public cl-jsown
14253 (sbcl-package->cl-source-package sbcl-jsown))
14254
14255 (define-public sbcl-system-locale
14256 (let ((commit "4b334bc2fa45651bcaa28ae7d9331095d6bf0a17"))
14257 (package
14258 (name "sbcl-system-locale")
14259 (version (git-version "1.0.0" "1" commit))
14260 (source
14261 (origin
14262 (method git-fetch)
14263 (uri (git-reference
14264 (url "https://github.com/Shinmera/system-locale/")
14265 (commit commit)))
14266 (file-name (git-file-name name commit))
14267 (sha256
14268 (base32 "00p5c053kmgq4ks6l9mxsqz6g3bjcybvkvj0bh3r90qgpkaawm1p"))))
14269 (build-system asdf-build-system/sbcl)
14270 (inputs
14271 `(("documentation-utils" ,sbcl-documentation-utils)))
14272 (home-page "https://shinmera.github.io/system-locale/")
14273 (synopsis "Get the system's locale and language settings in Common Lisp")
14274 (description
14275 "This library retrieves locale information configured on the
14276 system. This is helpful if you want to write applications and libraries that
14277 display messages in the user's native language.")
14278 (license license:zlib))))
14279
14280 (define-public ecl-system-locale
14281 (sbcl-package->ecl-package sbcl-system-locale))
14282
14283 (define-public cl-system-locale
14284 (sbcl-package->cl-source-package sbcl-system-locale))
14285
14286 (define-public sbcl-language-codes
14287 (let ((commit "e7aa0e37cb97a3d37d6bc7316b479d01bff8f42e"))
14288 (package
14289 (name "sbcl-language-codes")
14290 (version (git-version "1.0.0" "1" commit))
14291 (source
14292 (origin
14293 (method git-fetch)
14294 (uri (git-reference
14295 (url "https://github.com/Shinmera/language-codes")
14296 (commit commit)))
14297 (file-name (git-file-name name commit))
14298 (sha256
14299 (base32 "0py176ibmsc01n5r0q1bs1ykqf5jwdbh8kx0j1a814l9y51241v0"))))
14300 (build-system asdf-build-system/sbcl)
14301 (inputs
14302 `(("documentation-utils" ,sbcl-documentation-utils)))
14303 (home-page "https://shinmera.github.io/language-codes/")
14304 (synopsis "Map ISO language codes to language names in Common Lisp")
14305 (description
14306 "This is a small library providing the ISO-639 language code to
14307 language name mapping.")
14308 (license license:zlib))))
14309
14310 (define-public ecl-language-codes
14311 (sbcl-package->ecl-package sbcl-language-codes))
14312
14313 (define-public cl-language-codes
14314 (sbcl-package->cl-source-package sbcl-language-codes))
14315
14316 (define-public sbcl-multilang-documentation
14317 (let ((commit "59e798a07e949e8957a20927f52aca425d84e4a0"))
14318 (package
14319 (name "sbcl-multilang-documentation")
14320 (version (git-version "1.0.0" "1" commit))
14321 (source
14322 (origin
14323 (method git-fetch)
14324 (uri (git-reference
14325 (url "https://github.com/Shinmera/multilang-documentation")
14326 (commit commit)))
14327 (file-name (git-file-name name commit))
14328 (sha256
14329 (base32 "13y5jskx8n2b7kimpfarr8v777w3b7zj5swg1b99nj3hk0843ixw"))))
14330 (build-system asdf-build-system/sbcl)
14331 (inputs
14332 `(("documentation-utils" ,sbcl-documentation-utils)
14333 ("language-codes" ,sbcl-language-codes)
14334 ("system-locale" ,sbcl-system-locale)))
14335 (home-page "https://shinmera.github.io/multilang-documentation/")
14336 (synopsis "Add multiple languages support to Common Lisp documentation")
14337 (description
14338 "This library provides a drop-in replacement function for
14339 cl:documentation that supports multiple docstrings per-language, allowing you
14340 to write documentation that can be internationalised.")
14341 (license license:zlib))))
14342
14343 (define-public ecl-multilang-documentation
14344 (sbcl-package->ecl-package sbcl-multilang-documentation))
14345
14346 (define-public cl-multilang-documentation
14347 (sbcl-package->cl-source-package sbcl-multilang-documentation))
14348
14349 (define-public sbcl-trivial-do
14350 (let ((commit "03a1729f1e71bad3ebcf6cf098a0cce52dfa1163"))
14351 (package
14352 (name "sbcl-trivial-do")
14353 (version (git-version "0.1" "1" commit))
14354 (source
14355 (origin
14356 (method git-fetch)
14357 (uri (git-reference
14358 (url "https://github.com/yitzchak/trivial-do")
14359 (commit commit)))
14360 (file-name (git-file-name name commit))
14361 (sha256
14362 (base32 "1ffva79nkicc7wc8c2ic5nayis3b2rk5sxzj74yjkymkjgbpcrgd"))))
14363 (build-system asdf-build-system/sbcl)
14364 (home-page "https://github.com/yitzchak/trivial-do")
14365 (synopsis "Additional dolist style macros for Common Lisp")
14366 (description
14367 "Additional dolist style macros for Common Lisp, such as
14368 @code{doalist}, @code{dohash}, @code{dolist*}, @code{doplist}, @code{doseq}
14369 and @code{doseq*}.")
14370 (license license:zlib))))
14371
14372 (define-public ecl-trivial-do
14373 (sbcl-package->ecl-package sbcl-trivial-do))
14374
14375 (define-public cl-trivial-do
14376 (sbcl-package->cl-source-package sbcl-trivial-do))
14377
14378 (define-public sbcl-common-lisp-jupyter
14379 (let ((commit "61a9a8e7a18e2abd7af7c697ba5146fd19bd9d62"))
14380 (package
14381 (name "sbcl-common-lisp-jupyter")
14382 (version (git-version "0.1" "1" commit))
14383 (source
14384 (origin
14385 (method git-fetch)
14386 (uri (git-reference
14387 (url "https://github.com/yitzchak/common-lisp-jupyter")
14388 (commit commit)))
14389 (file-name (git-file-name name commit))
14390 (sha256
14391 (base32 "0zyzl55l45w9z65ygi5pcwda5w5p1j1bb0p2zg2n5cpv8344dkh2"))))
14392 (build-system asdf-build-system/sbcl)
14393 (inputs
14394 `(("alexandria" ,sbcl-alexandria)
14395 ("babel" ,sbcl-babel)
14396 ("bordeaux-threads" ,sbcl-bordeaux-threads)
14397 ("cl-base64" ,sbcl-cl-base64)
14398 ("cl-indentify" ,sbcl-cl-indentify)
14399 ("closer-mop" ,sbcl-closer-mop)
14400 ("eclector" ,sbcl-eclector)
14401 ("ironclad" ,sbcl-ironclad)
14402 ("iterate" ,sbcl-iterate)
14403 ("jsown" ,sbcl-jsown)
14404 ("multilang-documentation" ,sbcl-multilang-documentation)
14405 ("pzmq" ,sbcl-pzmq)
14406 ("puri" ,sbcl-puri)
14407 ("static-vectors" ,sbcl-static-vectors)
14408 ("trivial-do" ,sbcl-trivial-do)
14409 ("trivial-garbage" ,sbcl-trivial-garbage)
14410 ("trivial-gray-streams" ,sbcl-trivial-gray-streams)
14411 ("trivial-mimes" ,sbcl-trivial-mimes)))
14412 (home-page "https://yitzchak.github.io/common-lisp-jupyter/")
14413 (synopsis "Common Lisp kernel for Jupyter")
14414 (description
14415 "This is a Common Lisp kernel for Jupyter along with a library for
14416 building Jupyter kernels, based on Maxima-Jupyter which was based on
14417 @code{cl-jupyter}.")
14418 (license license:zlib))))
14419
14420 (define-public ecl-common-lisp-jupyter
14421 (sbcl-package->ecl-package sbcl-common-lisp-jupyter))
14422
14423 (define-public cl-common-lisp-jupyter
14424 (sbcl-package->cl-source-package sbcl-common-lisp-jupyter))
14425
14426 (define-public sbcl-radiance
14427 (let ((commit "5ffbe1f157edd17a13194495099efd81e052df85")
14428 (revision "1"))
14429 (package
14430 (name "sbcl-radiance")
14431 (version (git-version "2.1.2" revision commit))
14432 (source
14433 (origin
14434 (method git-fetch)
14435 (uri (git-reference
14436 (url "https://github.com/Shirakumo/radiance")
14437 (commit commit)))
14438 (file-name (git-file-name "radiance" version))
14439 (sha256
14440 (base32 "0hbkcnmnlj1cqzbv18zmla2iwbl65kxilz9764hndf8x8as1539c"))))
14441 (build-system asdf-build-system/sbcl)
14442 (arguments
14443 `(#:tests? #f ; TODO: The tests require some configuration.
14444 #:phases
14445 (modify-phases %standard-phases
14446 (add-after 'unpack 'disable-quicklisp
14447 (lambda _
14448 ;; Disable the automatic installation of systems by Quicklisp.
14449 ;; (Maybe there would be a way to package Quicklisp and make it
14450 ;; install things in the user's directory instead of
14451 ;; /gnu/store/...).
14452 (substitute* "interfaces.lisp"
14453 (("\\(unless \\(asdf:find-system configured-implementation NIL\\)"
14454 all)
14455 (string-append "#+quicklisp " all))))))))
14456 (native-inputs
14457 `(("alexandria" ,sbcl-alexandria)
14458 ("dexador" ,sbcl-dexador)
14459 ("parachute" ,sbcl-parachute)
14460 ("verbose" ,sbcl-verbose)))
14461 (inputs
14462 `(("babel" ,sbcl-babel)
14463 ("bordeaux-threads" ,sbcl-bordeaux-threads)
14464 ("cl-ppcre" ,sbcl-cl-ppcre)
14465 ("closer-mop" ,sbcl-closer-mop)
14466 ("documentation-utils" ,sbcl-documentation-utils)
14467 ("deploy" ,sbcl-deploy)
14468 ("form-fiddle" ,sbcl-form-fiddle)
14469 ("lambda-fiddle" ,sbcl-lambda-fiddle)
14470 ("local-time" ,sbcl-local-time)
14471 ("modularize-hooks" ,sbcl-modularize-hooks)
14472 ("modularize-interfaces" ,sbcl-modularize-interfaces)
14473 ("puri" ,sbcl-puri)
14474 ("trivial-indent" ,sbcl-trivial-indent)
14475 ("trivial-mimes" ,sbcl-trivial-mimes)
14476 ("ubiquitous-concurrent" ,sbcl-ubiquitous)))
14477 (home-page "https://shirakumo.github.io/radiance/")
14478 (synopsis "Common Lisp web application environment")
14479 (description
14480 "Radiance is a web application environment, which is sort of like a web
14481 framework, but more general, more flexible. It should let you write personal
14482 websites and generally deployable applications easily and in such a way that
14483 they can be used on practically any setup without having to undergo special
14484 adaptations.")
14485 (license license:zlib))))
14486
14487 (define-public ecl-radiance
14488 (sbcl-package->ecl-package sbcl-radiance))
14489
14490 (define-public cl-radiance
14491 (sbcl-package->cl-source-package sbcl-radiance))