gnu: sbcl-cffi: Update to 0.20.1.
[jackhill/guix/guix.git] / gnu / packages / lisp-xyz.scm
1 ;;; GNU Guix --- Functional package management for GNU
2 ;;; Copyright © 2014 John Darrington <jmd@gnu.org>
3 ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
4 ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
5 ;;; Copyright © 2016 Federico Beffa <beffa@fbengineering.ch>
6 ;;; Copyright © 2016, 2017 ng0 <ng0@n0.is>
7 ;;; Copyright © 2016, 2017 Andy Patterson <ajpatter@uwaterloo.ca>
8 ;;; Copyright © 2017, 2019 Ricardo Wurmus <rekado@elephly.net>
9 ;;; Copyright © 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
10 ;;; Copyright © 2017, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
11 ;;; Copyright © 2018 Benjamin Slade <slade@jnanam.net>
12 ;;; Copyright © 2018 Alex Vong <alexvong1995@gmail.com>
13 ;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz>
14 ;;; Copyright © 2018, 2019 Pierre Langlois <pierre.langlois@gmx.com>
15 ;;; Copyright © 2019 Katherine Cox-Buday <cox.katherine.e@gmail.com>
16 ;;; Copyright © 2019 Jesse Gildersleve <jessejohngildersleve@protonmail.com>
17 ;;; Copyright © 2019 Guillaume Le Vaillant <glv@posteo.net>
18 ;;; Copyright © 2019 Brett Gilio <brettg@gnu.org>
19 ;;;
20 ;;; This file is part of GNU Guix.
21 ;;;
22 ;;; GNU Guix is free software; you can redistribute it and/or modify it
23 ;;; under the terms of the GNU General Public License as published by
24 ;;; the Free Software Foundation; either version 3 of the License, or (at
25 ;;; your option) any later version.
26 ;;;
27 ;;; GNU Guix is distributed in the hope that it will be useful, but
28 ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
29 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
30 ;;; GNU General Public License for more details.
31 ;;;
32 ;;; You should have received a copy of the GNU General Public License
33 ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
34
35 ;;; This file only contains Common Lisp libraries.
36 ;;; Common Lisp compilers and tooling go to lisp.scm.
37 ;;; Common Lisp applications should go to the most appropriate file,
38 ;;; e.g. StumpWM is in wm.scm.
39
40 (define-module (gnu packages lisp-xyz)
41 #:use-module (gnu packages)
42 #:use-module ((guix licenses) #:prefix license:)
43 #:use-module (guix packages)
44 #:use-module (guix download)
45 #:use-module (guix git-download)
46 #:use-module (guix hg-download)
47 #:use-module (guix utils)
48 #:use-module (guix build-system asdf)
49 #:use-module (guix build-system trivial)
50 #:use-module (gnu packages c)
51 #:use-module (gnu packages compression)
52 #:use-module (gnu packages glib)
53 #:use-module (gnu packages gtk)
54 #:use-module (gnu packages libffi)
55 #:use-module (gnu packages lisp)
56 #:use-module (gnu packages pkg-config)
57 #:use-module (gnu packages python)
58 #:use-module (gnu packages python-xyz)
59 #:use-module (gnu packages sqlite)
60 #:use-module (gnu packages tls)
61 #:use-module (gnu packages webkit)
62 #:use-module (gnu packages xdisorg)
63 #:use-module (ice-9 match)
64 #:use-module (srfi srfi-19))
65
66 (define-public sbcl-alexandria
67 (let ((revision "1")
68 (commit "3b849bc0116ea70f215ee6b2fbf354e862aaa9dd"))
69 (package
70 (name "sbcl-alexandria")
71 (version (git-version "1.0.0" revision commit))
72 (source
73 (origin
74 (method git-fetch)
75 (uri (git-reference
76 (url "https://gitlab.common-lisp.net/alexandria/alexandria.git")
77 (commit commit)))
78 (sha256
79 (base32
80 "04amwvx2vl691f0plcfbqqwxgib9zimih7jrn5zl7mbwvrxy022b"))
81 (file-name (git-file-name name version))))
82 (build-system asdf-build-system/sbcl)
83 (native-inputs
84 `(("rt" ,sbcl-rt)))
85 (synopsis "Collection of portable utilities for Common Lisp")
86 (description
87 "Alexandria is a collection of portable utilities. It does not contain
88 conceptual extensions to Common Lisp. It is conservative in scope, and
89 portable between implementations.")
90 (home-page "https://common-lisp.net/project/alexandria/")
91 (license license:public-domain))))
92
93 (define-public cl-alexandria
94 (sbcl-package->cl-source-package sbcl-alexandria))
95
96 (define-public ecl-alexandria
97 (sbcl-package->ecl-package sbcl-alexandria))
98
99 (define-public sbcl-net.didierverna.asdf-flv
100 (package
101 (name "sbcl-net.didierverna.asdf-flv")
102 (version "2.1")
103 (source
104 (origin
105 (method git-fetch)
106 (uri (git-reference
107 (url "https://github.com/didierverna/asdf-flv")
108 (commit (string-append "version-" version))))
109 (file-name (git-file-name "asdf-flv" version))
110 (sha256
111 (base32 "1fi2y4baxan103jbg4idjddzihy03kwnj2mzbwrknw4d4x7xlgwj"))))
112 (build-system asdf-build-system/sbcl)
113 (synopsis "Common Lisp ASDF extension to provide support for file-local variables")
114 (description "ASDF-FLV provides support for file-local variables through
115 ASDF. A file-local variable behaves like @code{*PACKAGE*} and
116 @code{*READTABLE*} with respect to @code{LOAD} and @code{COMPILE-FILE}: a new
117 dynamic binding is created before processing the file, so that any
118 modification to the variable becomes essentially file-local.
119
120 In order to make one or several variables file-local, use the macros
121 @code{SET-FILE-LOCAL-VARIABLE(S)}.")
122 (home-page "https://www.lrde.epita.fr/~didier/software/lisp/misc.php#asdf-flv")
123 (license (license:non-copyleft
124 "https://www.gnu.org/prep/maintain/html_node/License-Notices-for-Other-Files.html"
125 "GNU All-Permissive License"))))
126
127 (define-public cl-net.didierverna.asdf-flv
128 (sbcl-package->cl-source-package sbcl-net.didierverna.asdf-flv))
129
130 (define-public ecl-net.didierverna.asdf-flv
131 (sbcl-package->ecl-package sbcl-net.didierverna.asdf-flv))
132
133 (define-public sbcl-fiveam
134 (package
135 (name "sbcl-fiveam")
136 (version "1.4.1")
137 (source
138 (origin
139 (method git-fetch)
140 (uri (git-reference
141 (url "https://github.com/sionescu/fiveam.git")
142 (commit (string-append "v" version))))
143 (file-name (git-file-name "fiveam" version))
144 (sha256
145 (base32 "1q3d38pwafnwnw42clq0f8g5xw7pbzr287jl9jsqmb1vb0n1vrli"))))
146 (inputs
147 `(("alexandria" ,sbcl-alexandria)
148 ("net.didierverna.asdf-flv" ,sbcl-net.didierverna.asdf-flv)
149 ("trivial-backtrace" ,sbcl-trivial-backtrace)))
150 (build-system asdf-build-system/sbcl)
151 (synopsis "Common Lisp testing framework")
152 (description "FiveAM is a simple (as far as writing and running tests
153 goes) regression testing framework. It has been designed with Common Lisp's
154 interactive development model in mind.")
155 (home-page "https://common-lisp.net/project/fiveam/")
156 (license license:bsd-3)))
157
158 (define-public cl-fiveam
159 (sbcl-package->cl-source-package sbcl-fiveam))
160
161 (define-public ecl-fiveam
162 (sbcl-package->ecl-package sbcl-fiveam))
163
164 (define-public sbcl-bordeaux-threads
165 (let ((commit "5dce49fbc829f4d136a734f5ef4f5d599660984f")
166 (revision "1"))
167 (package
168 (name "sbcl-bordeaux-threads")
169 (version (git-version "0.8.6" revision commit))
170 (source (origin
171 (method git-fetch)
172 (uri (git-reference
173 (url "https://github.com/sionescu/bordeaux-threads.git")
174 (commit commit)))
175 (sha256
176 (base32 "1gkh9rz7zw57n3110ikcf4835950wr4hgp8l79id5ai6nd86x7wv"))
177 (file-name
178 (git-file-name "bordeaux-threads" version))))
179 (inputs `(("alexandria" ,sbcl-alexandria)))
180 (native-inputs `(("fiveam" ,sbcl-fiveam)))
181 (build-system asdf-build-system/sbcl)
182 (synopsis "Portable shared-state concurrency library for Common Lisp")
183 (description "BORDEAUX-THREADS is a proposed standard for a minimal
184 MP/Threading interface. It is similar to the CLIM-SYS threading and lock
185 support.")
186 (home-page "https://common-lisp.net/project/bordeaux-threads/")
187 (license license:x11))))
188
189 (define-public cl-bordeaux-threads
190 (sbcl-package->cl-source-package sbcl-bordeaux-threads))
191
192 (define-public ecl-bordeaux-threads
193 (sbcl-package->ecl-package sbcl-bordeaux-threads))
194
195 (define-public sbcl-trivial-gray-streams
196 (let ((revision "1")
197 (commit "0483ade330508b4b2edeabdb47d16ec9437ee1cb"))
198 (package
199 (name "sbcl-trivial-gray-streams")
200 (version (string-append "0.0.0-" revision "." (string-take commit 7)))
201 (source
202 (origin
203 (method git-fetch)
204 (uri
205 (git-reference
206 (url "https://github.com/trivial-gray-streams/trivial-gray-streams.git")
207 (commit commit)))
208 (sha256
209 (base32 "0m3rpf2x0zmdk3nf1qfa01j6a55vj7gkwhyw78qslcgbjlgh8p4d"))
210 (file-name
211 (string-append "trivial-gray-streams-" version "-checkout"))))
212 (build-system asdf-build-system/sbcl)
213 (synopsis "Compatibility layer for Gray streams implementations")
214 (description "Gray streams is an interface proposed for inclusion with
215 ANSI CL by David N. Gray. The proposal did not make it into ANSI CL, but most
216 popular CL implementations implement it. This package provides an extremely
217 thin compatibility layer for gray streams.")
218 (home-page "http://www.cliki.net/trivial-gray-streams")
219 (license license:x11))))
220
221 (define-public cl-trivial-gray-streams
222 (sbcl-package->cl-source-package sbcl-trivial-gray-streams))
223
224 (define-public ecl-trivial-gray-streams
225 (sbcl-package->ecl-package sbcl-trivial-gray-streams))
226
227 (define-public sbcl-fiasco
228 (let ((commit "d62f7558b21addc89f87e306f65d7f760632655f")
229 (revision "1"))
230 (package
231 (name "sbcl-fiasco")
232 (version (git-version "0.0.1" revision commit))
233 (source
234 (origin
235 (method git-fetch)
236 (uri (git-reference
237 (url "https://github.com/joaotavora/fiasco.git")
238 (commit commit)))
239 (file-name (git-file-name "fiasco" version))
240 (sha256
241 (base32
242 "1zwxs3d6iswayavcmb49z2892xhym7n556d8dnmvalc32pm9bkjh"))))
243 (build-system asdf-build-system/sbcl)
244 (inputs
245 `(("alexandria" ,sbcl-alexandria)
246 ("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
247 (synopsis "Simple and powerful test framework for Common Lisp")
248 (description "A Common Lisp test framework that treasures your failures,
249 logical continuation of Stefil. It focuses on interactive debugging.")
250 (home-page "https://github.com/joaotavora/fiasco")
251 ;; LICENCE specifies this is public-domain unless the legislation
252 ;; doesn't allow or recognize it. In that case it falls back to a
253 ;; permissive licence.
254 (license (list license:public-domain
255 (license:x11-style "file://LICENCE"))))))
256
257 (define-public cl-fiasco
258 (sbcl-package->cl-source-package sbcl-fiasco))
259
260 (define-public ecl-fiasco
261 (sbcl-package->ecl-package sbcl-fiasco))
262
263 (define-public sbcl-flexi-streams
264 (package
265 (name "sbcl-flexi-streams")
266 (version "1.0.16")
267 (source
268 (origin
269 (method git-fetch)
270 (uri (git-reference
271 (url "https://github.com/edicl/flexi-streams.git")
272 (commit (string-append "v" version))))
273 (file-name (git-file-name "flexi-streams" version))
274 (sha256
275 (base32 "0gvykjlmja060zqq6nn6aqxlshh6r6ijahmmgf20q0d839rwpgxc"))))
276 (build-system asdf-build-system/sbcl)
277 (arguments
278 `(#:phases
279 (modify-phases %standard-phases
280 (add-after 'unpack 'make-git-checkout-writable
281 (lambda _
282 (for-each make-file-writable (find-files "."))
283 #t)))))
284 (inputs `(("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
285 (synopsis "Implementation of virtual bivalent streams for Common Lisp")
286 (description "Flexi-streams is an implementation of \"virtual\" bivalent
287 streams that can be layered atop real binary or bivalent streams and that can
288 be used to read and write character data in various single- or multi-octet
289 encodings which can be changed on the fly. It also supplies in-memory binary
290 streams which are similar to string streams.")
291 (home-page "http://weitz.de/flexi-streams/")
292 (license license:bsd-3)))
293
294 (define-public cl-flexi-streams
295 (sbcl-package->cl-source-package sbcl-flexi-streams))
296
297 (define-public ecl-flexi-streams
298 (sbcl-package->ecl-package sbcl-flexi-streams))
299
300 (define-public sbcl-cl-ppcre
301 (package
302 (name "sbcl-cl-ppcre")
303 (version "2.0.11")
304 (source
305 (origin
306 (method git-fetch)
307 (uri (git-reference
308 (url "https://github.com/edicl/cl-ppcre.git")
309 (commit (string-append "v" version))))
310 (file-name (git-file-name "cl-ppcre" version))
311 (sha256
312 (base32 "0q3iany07vgqm144lw6pj0af2d3vsikpbkwcxr30fci3kzsq4f49"))))
313 (build-system asdf-build-system/sbcl)
314 (native-inputs `(("flexi-streams" ,sbcl-flexi-streams)))
315 (synopsis "Portable regular expression library for Common Lisp")
316 (description "CL-PPCRE is a portable regular expression library for Common
317 Lisp, which is compatible with perl. It is pretty fast, thread-safe, and
318 compatible with ANSI-compliant Common Lisp implementations.")
319 (home-page "http://weitz.de/cl-ppcre/")
320 (license license:bsd-2)))
321
322 (define-public cl-ppcre
323 (sbcl-package->cl-source-package sbcl-cl-ppcre))
324
325 (define-public ecl-cl-ppcre
326 (sbcl-package->ecl-package sbcl-cl-ppcre))
327
328 (define sbcl-cl-unicode-base
329 (let ((revision "1")
330 (commit "9fcd06fba1ddc9e66aed2f2d6c32dc9b764f03ea"))
331 (package
332 (name "sbcl-cl-unicode-base")
333 (version (string-append "0.1.5-" revision "." (string-take commit 7)))
334 (source (origin
335 (method git-fetch)
336 (uri (git-reference
337 (url "https://github.com/edicl/cl-unicode.git")
338 (commit commit)))
339 (file-name (string-append "cl-unicode-" version "-checkout"))
340 (sha256
341 (base32
342 "1jicprb5b3bv57dy1kg03572gxkcaqdjhak00426s76g0plmx5ki"))))
343 (build-system asdf-build-system/sbcl)
344 (arguments
345 '(#:asd-file "cl-unicode.asd"
346 #:asd-system-name "cl-unicode/base"))
347 (inputs
348 `(("cl-ppcre" ,sbcl-cl-ppcre)))
349 (home-page "http://weitz.de/cl-unicode/")
350 (synopsis "Portable Unicode library for Common Lisp")
351 (description "CL-UNICODE is a portable Unicode library Common Lisp, which
352 is compatible with perl. It is pretty fast, thread-safe, and compatible with
353 ANSI-compliant Common Lisp implementations.")
354 (license license:bsd-2))))
355
356 (define-public sbcl-cl-unicode
357 (package
358 (inherit sbcl-cl-unicode-base)
359 (name "sbcl-cl-unicode")
360 (inputs
361 `(("cl-unicode/base" ,sbcl-cl-unicode-base)
362 ,@(package-inputs sbcl-cl-unicode-base)))
363 (native-inputs
364 `(("flexi-streams" ,sbcl-flexi-streams)))
365 (arguments '())))
366
367 (define-public ecl-cl-unicode
368 (sbcl-package->ecl-package sbcl-cl-unicode))
369
370 (define-public cl-unicode
371 (sbcl-package->cl-source-package sbcl-cl-unicode))
372
373 (define-public sbcl-clx
374 (package
375 (name "sbcl-clx")
376 (version "0.7.5")
377 (source
378 (origin
379 (method git-fetch)
380 (uri
381 (git-reference
382 (url "https://github.com/sharplispers/clx.git")
383 (commit version)))
384 (sha256
385 (base32
386 "1vi67z9hpj5rr4xcmfbfwzmlcc0ah7hzhrmfid6lqdkva238v2wf"))
387 (file-name (string-append "clx-" version))))
388 (build-system asdf-build-system/sbcl)
389 (native-inputs
390 `(("fiasco" ,sbcl-fiasco)))
391 (home-page "http://www.cliki.net/portable-clx")
392 (synopsis "X11 client library for Common Lisp")
393 (description "CLX is an X11 client library for Common Lisp. The code was
394 originally taken from a CMUCL distribution, was modified somewhat in order to
395 make it compile and run under SBCL, then a selection of patches were added
396 from other CLXes around the net.")
397 (license license:x11)))
398
399 (define-public cl-clx
400 (sbcl-package->cl-source-package sbcl-clx))
401
402 (define-public ecl-clx
403 (sbcl-package->ecl-package sbcl-clx))
404
405 (define-public sbcl-cl-ppcre-unicode
406 (package (inherit sbcl-cl-ppcre)
407 (name "sbcl-cl-ppcre-unicode")
408 (arguments
409 `(#:tests? #f ; tests fail with "Component :CL-PPCRE-TEST not found"
410 #:asd-file "cl-ppcre-unicode.asd"))
411 (inputs
412 `(("sbcl-cl-ppcre" ,sbcl-cl-ppcre)
413 ("sbcl-cl-unicode" ,sbcl-cl-unicode)))))
414
415 ;; The slynk that users expect to install includes all of slynk's contrib
416 ;; modules. Therefore, we build the base module and all contribs first; then
417 ;; we expose the union of these as `sbcl-slynk'. The following variable
418 ;; describes the base module.
419 (define sbcl-slynk-boot0
420 (let ((revision "2")
421 (commit "cbf84c36c4eca8b032e3fd16177a7bc02df3ec4c"))
422 (package
423 (name "sbcl-slynk-boot0")
424 (version (string-append "1.0.0-beta-" revision "." (string-take commit 7)))
425 (source
426 (origin
427 (method git-fetch)
428 (uri
429 (git-reference
430 (url "https://github.com/joaotavora/sly.git")
431 (commit commit)))
432 (sha256
433 (base32 "13dyhsravn591p7g6is01mp2ynzjnnj7pwgi57r6xqmd4611y9vh"))
434 (file-name (string-append "slynk-" version "-checkout"))
435 (modules '((guix build utils)
436 (ice-9 ftw)))
437 (snippet
438 '(begin
439 ;; Move the contribs into the main source directory for easier
440 ;; access
441 (substitute* "slynk/slynk.asd"
442 (("\\.\\./contrib")
443 "contrib")
444 (("\\(defsystem :slynk/util")
445 "(defsystem :slynk/util :depends-on (:slynk)")
446 ((":depends-on \\(:slynk :slynk/util\\)")
447 ":depends-on (:slynk :slynk-util)"))
448 (substitute* "contrib/slynk-trace-dialog.lisp"
449 (("\\(slynk::reset-inspector\\)") ; Causes problems on load
450 "nil"))
451 (substitute* "contrib/slynk-profiler.lisp"
452 (("slynk:to-line")
453 "slynk-pprint-to-line"))
454 (substitute* "contrib/slynk-fancy-inspector.lisp"
455 (("slynk/util") "slynk-util")
456 ((":compile-toplevel :load-toplevel") ""))
457 (rename-file "contrib" "slynk/contrib")
458 ;; Move slynk's contents into the base directory for easier
459 ;; access
460 (for-each (lambda (file)
461 (unless (string-prefix? "." file)
462 (rename-file (string-append "slynk/" file)
463 (string-append "./" (basename file)))))
464 (scandir "slynk"))
465 #t))))
466 (build-system asdf-build-system/sbcl)
467 (arguments
468 `(#:tests? #f ; No test suite
469 #:asd-system-name "slynk"))
470 (synopsis "Common Lisp IDE for Emacs")
471 (description "SLY is a fork of SLIME, an IDE backend for Common Lisp.
472 It also features a completely redesigned REPL based on Emacs's own
473 full-featured comint.el, live code annotations, and a consistent interactive
474 button interface. Everything can be copied to the REPL. One can create
475 multiple inspectors with independent history.")
476 (home-page "https://github.com/joaotavora/sly")
477 (license license:public-domain)
478 (properties `((cl-source-variant . ,(delay cl-slynk)))))))
479
480 (define-public cl-slynk
481 (package
482 (inherit (sbcl-package->cl-source-package sbcl-slynk-boot0))
483 (name "cl-slynk")))
484
485 (define ecl-slynk-boot0
486 (sbcl-package->ecl-package sbcl-slynk-boot0))
487
488 (define sbcl-slynk-arglists
489 (package
490 (inherit sbcl-slynk-boot0)
491 (name "sbcl-slynk-arglists")
492 (inputs `(("slynk" ,sbcl-slynk-boot0)))
493 (arguments
494 (substitute-keyword-arguments (package-arguments sbcl-slynk-boot0)
495 ((#:asd-file _ "") "slynk.asd")
496 ((#:asd-system-name _ #f) "slynk/arglists")))))
497
498 (define ecl-slynk-arglists
499 (sbcl-package->ecl-package sbcl-slynk-arglists))
500
501 (define sbcl-slynk-util
502 (package
503 (inherit sbcl-slynk-boot0)
504 (name "sbcl-slynk-util")
505 (inputs `(("slynk" ,sbcl-slynk-boot0)))
506 (arguments
507 (substitute-keyword-arguments (package-arguments sbcl-slynk-boot0)
508 ((#:asd-file _ "") "slynk.asd")
509 ((#:asd-system-name _ #f) "slynk/util")))))
510
511 (define ecl-slynk-util
512 (sbcl-package->ecl-package sbcl-slynk-util))
513
514 (define sbcl-slynk-fancy-inspector
515 (package
516 (inherit sbcl-slynk-arglists)
517 (name "sbcl-slynk-fancy-inspector")
518 (inputs `(("slynk-util" ,sbcl-slynk-util)
519 ,@(package-inputs sbcl-slynk-arglists)))
520 (arguments
521 (substitute-keyword-arguments (package-arguments sbcl-slynk-arglists)
522 ((#:asd-system-name _ #f) "slynk/fancy-inspector")))))
523
524 (define ecl-slynk-fancy-inspector
525 (sbcl-package->ecl-package sbcl-slynk-fancy-inspector))
526
527 (define sbcl-slynk-package-fu
528 (package
529 (inherit sbcl-slynk-arglists)
530 (name "sbcl-slynk-package-fu")
531 (arguments
532 (substitute-keyword-arguments (package-arguments sbcl-slynk-arglists)
533 ((#:asd-system-name _ #f) "slynk/package-fu")))))
534
535 (define ecl-slynk-package-fu
536 (sbcl-package->ecl-package sbcl-slynk-package-fu))
537
538 (define sbcl-slynk-mrepl
539 (package
540 (inherit sbcl-slynk-fancy-inspector)
541 (name "sbcl-slynk-mrepl")
542 (arguments
543 (substitute-keyword-arguments (package-arguments sbcl-slynk-arglists)
544 ((#:asd-system-name _ #f) "slynk/mrepl")))))
545
546 (define ecl-slynk-mrepl
547 (sbcl-package->ecl-package sbcl-slynk-mrepl))
548
549 (define sbcl-slynk-trace-dialog
550 (package
551 (inherit sbcl-slynk-arglists)
552 (name "sbcl-slynk-trace-dialog")
553 (arguments
554 (substitute-keyword-arguments (package-arguments sbcl-slynk-arglists)
555 ((#:asd-system-name _ #f) "slynk/trace-dialog")))))
556
557 (define ecl-slynk-trace-dialog
558 (sbcl-package->ecl-package sbcl-slynk-trace-dialog))
559
560 (define sbcl-slynk-profiler
561 (package
562 (inherit sbcl-slynk-arglists)
563 (name "sbcl-slynk-profiler")
564 (arguments
565 (substitute-keyword-arguments (package-arguments sbcl-slynk-arglists)
566 ((#:asd-system-name _ #f) "slynk/profiler")))))
567
568 (define ecl-slynk-profiler
569 (sbcl-package->ecl-package sbcl-slynk-profiler))
570
571 (define sbcl-slynk-stickers
572 (package
573 (inherit sbcl-slynk-arglists)
574 (name "sbcl-slynk-stickers")
575 (arguments
576 (substitute-keyword-arguments (package-arguments sbcl-slynk-arglists)
577 ((#:asd-system-name _ #f) "slynk/stickers")))))
578
579 (define ecl-slynk-stickers
580 (sbcl-package->ecl-package sbcl-slynk-stickers))
581
582 (define sbcl-slynk-indentation
583 (package
584 (inherit sbcl-slynk-arglists)
585 (name "sbcl-slynk-indentation")
586 (arguments
587 (substitute-keyword-arguments (package-arguments sbcl-slynk-arglists)
588 ((#:asd-system-name _ #f) "slynk/indentation")))))
589
590 (define ecl-slynk-indentation
591 (sbcl-package->ecl-package sbcl-slynk-indentation))
592
593 (define sbcl-slynk-retro
594 (package
595 (inherit sbcl-slynk-arglists)
596 (name "sbcl-slynk-retro")
597 (arguments
598 (substitute-keyword-arguments (package-arguments sbcl-slynk-arglists)
599 ((#:asd-system-name _ #f) "slynk/retro")))))
600
601 (define ecl-slynk-retro
602 (sbcl-package->ecl-package sbcl-slynk-retro))
603
604 (define slynk-systems
605 '("slynk"
606 "slynk-util"
607 "slynk-arglists"
608 "slynk-fancy-inspector"
609 "slynk-package-fu"
610 "slynk-mrepl"
611 "slynk-profiler"
612 "slynk-trace-dialog"
613 "slynk-stickers"
614 "slynk-indentation"
615 "slynk-retro"))
616
617 (define-public sbcl-slynk
618 (package
619 (inherit sbcl-slynk-boot0)
620 (name "sbcl-slynk")
621 (inputs
622 `(("slynk" ,sbcl-slynk-boot0)
623 ("slynk-util" ,sbcl-slynk-util)
624 ("slynk-arglists" ,sbcl-slynk-arglists)
625 ("slynk-fancy-inspector" ,sbcl-slynk-fancy-inspector)
626 ("slynk-package-fu" ,sbcl-slynk-package-fu)
627 ("slynk-mrepl" ,sbcl-slynk-mrepl)
628 ("slynk-profiler" ,sbcl-slynk-profiler)
629 ("slynk-trace-dialog" ,sbcl-slynk-trace-dialog)
630 ("slynk-stickers" ,sbcl-slynk-stickers)
631 ("slynk-indentation" ,sbcl-slynk-indentation)
632 ("slynk-retro" ,sbcl-slynk-retro)))
633 (native-inputs `(("sbcl" ,sbcl)))
634 (build-system trivial-build-system)
635 (source #f)
636 (outputs '("out" "image"))
637 (arguments
638 `(#:modules ((guix build union)
639 (guix build utils)
640 (guix build lisp-utils))
641 #:builder
642 (begin
643 (use-modules (ice-9 match)
644 (srfi srfi-1)
645 (guix build union)
646 (guix build lisp-utils))
647
648 (union-build
649 (assoc-ref %outputs "out")
650 (filter-map
651 (match-lambda
652 ((name . path)
653 (if (string-prefix? "slynk" name) path #f)))
654 %build-inputs))
655
656 (prepend-to-source-registry
657 (string-append (assoc-ref %outputs "out") "//"))
658
659 (parameterize ((%lisp-type "sbcl")
660 (%lisp (string-append (assoc-ref %build-inputs "sbcl")
661 "/bin/sbcl")))
662 (build-image (string-append
663 (assoc-ref %outputs "image")
664 "/bin/slynk")
665 %outputs
666 #:dependencies ',slynk-systems))
667 #t)))))
668
669 (define-public ecl-slynk
670 (package
671 (inherit sbcl-slynk)
672 (name "ecl-slynk")
673 (inputs
674 (map (match-lambda
675 ((name pkg . _)
676 (list name (sbcl-package->ecl-package pkg))))
677 (package-inputs sbcl-slynk)))
678 (native-inputs '())
679 (outputs '("out"))
680 (arguments
681 '(#:modules ((guix build union))
682 #:builder
683 (begin
684 (use-modules (ice-9 match)
685 (guix build union))
686 (match %build-inputs
687 (((names . paths) ...)
688 (union-build (assoc-ref %outputs "out")
689 paths)
690 #t)))))))
691
692 (define-public sbcl-parse-js
693 (let ((commit "fbadc6029bec7039602abfc06c73bb52970998f6")
694 (revision "1"))
695 (package
696 (name "sbcl-parse-js")
697 (version (string-append "0.0.0-" revision "." (string-take commit 9)))
698 (source
699 (origin
700 (method git-fetch)
701 (uri (git-reference
702 (url "http://marijn.haverbeke.nl/git/parse-js")
703 (commit commit)))
704 (file-name (string-append name "-" commit "-checkout"))
705 (sha256
706 (base32
707 "1wddrnr5kiya5s3gp4cdq6crbfy9fqcz7fr44p81502sj3bvdv39"))))
708 (build-system asdf-build-system/sbcl)
709 (home-page "http://marijnhaverbeke.nl/parse-js/")
710 (synopsis "Parse JavaScript")
711 (description "Parse-js is a Common Lisp package for parsing
712 JavaScript (ECMAScript 3). It has basic support for ECMAScript 5.")
713 (license license:zlib))))
714
715 (define-public cl-parse-js
716 (sbcl-package->cl-source-package sbcl-parse-js))
717
718 (define-public sbcl-parse-number
719 (package
720 (name "sbcl-parse-number")
721 (version "1.7")
722 (source
723 (origin
724 (method git-fetch)
725 (uri (git-reference
726 (url "https://github.com/sharplispers/parse-number/")
727 (commit (string-append "v" version))))
728 (file-name (git-file-name name version))
729 (sha256
730 (base32
731 "0sk06ib1bhqv9y39vwnnw44vmbc4b0kvqm37xxmkxd4dwchq82d7"))))
732 (build-system asdf-build-system/sbcl)
733 (home-page "http://www.cliki.net/PARSE-NUMBER")
734 (synopsis "Parse numbers")
735 (description "@code{parse-number} is a library of functions for parsing
736 strings into one of the standard Common Lisp number types without using the
737 reader. @code{parse-number} accepts an arbitrary string and attempts to parse
738 the string into one of the standard Common Lisp number types, if possible, or
739 else @code{parse-number} signals an error of type @code{invalid-number}.")
740 (license license:bsd-3)))
741
742 (define-public cl-parse-number
743 (sbcl-package->cl-source-package sbcl-parse-number))
744
745 (define-public sbcl-iterate
746 (package
747 (name "sbcl-iterate")
748 ;; The latest official release (1.4.3) fails to build so we have to take
749 ;; the current darcs tarball from quicklisp.
750 (version "20160825")
751 (source
752 (origin
753 (method url-fetch)
754 (uri (string-append "http://beta.quicklisp.org/archive/iterate/"
755 "2016-08-25/iterate-"
756 version "-darcs.tgz"))
757 (sha256
758 (base32
759 "0kvz16gnxnkdz0fy1x8y5yr28nfm7i2qpvix7mgwccdpjmsb4pgm"))))
760 (build-system asdf-build-system/sbcl)
761 (native-inputs
762 `(("rt" ,sbcl-rt)))
763 (home-page "https://common-lisp.net/project/iterate/")
764 (synopsis "Iteration construct for Common Lisp")
765 (description "@code{iterate} is an iteration construct for Common Lisp.
766 It is similar to the @code{CL:LOOP} macro, with these distinguishing marks:
767
768 @itemize
769 @item it is extensible,
770 @item it helps editors like Emacs indent iterate forms by having a more
771 lisp-like syntax, and
772 @item it isn't part of the ANSI standard for Common Lisp.
773 @end itemize\n")
774 (license license:expat)))
775
776 (define-public cl-iterate
777 (sbcl-package->cl-source-package sbcl-iterate))
778
779 (define-public ecl-iterate
780 (sbcl-package->ecl-package sbcl-iterate))
781
782 (define-public sbcl-cl-uglify-js
783 ;; There have been many bug fixes since the 2010 release.
784 (let ((commit "429c5e1d844e2f96b44db8fccc92d6e8e28afdd5")
785 (revision "1"))
786 (package
787 (name "sbcl-cl-uglify-js")
788 (version (string-append "0.1-" revision "." (string-take commit 9)))
789 (source
790 (origin
791 (method git-fetch)
792 (uri (git-reference
793 (url "https://github.com/mishoo/cl-uglify-js.git")
794 (commit commit)))
795 (file-name (git-file-name name version))
796 (sha256
797 (base32
798 "0k39y3c93jgxpr7gwz7w0d8yknn1fdnxrjhd03057lvk5w8js27a"))))
799 (build-system asdf-build-system/sbcl)
800 (inputs
801 `(("sbcl-parse-js" ,sbcl-parse-js)
802 ("sbcl-cl-ppcre" ,sbcl-cl-ppcre)
803 ("sbcl-cl-ppcre-unicode" ,sbcl-cl-ppcre-unicode)
804 ("sbcl-parse-number" ,sbcl-parse-number)
805 ("sbcl-iterate" ,sbcl-iterate)))
806 (home-page "https://github.com/mishoo/cl-uglify-js")
807 (synopsis "JavaScript compressor library for Common Lisp")
808 (description "This is a Common Lisp version of UglifyJS, a JavaScript
809 compressor. It works on data produced by @code{parse-js} to generate a
810 @dfn{minified} version of the code. Currently it can:
811
812 @itemize
813 @item reduce variable names (usually to single letters)
814 @item join consecutive @code{var} statements
815 @item resolve simple binary expressions
816 @item group most consecutive statements using the @code{sequence} operator (comma)
817 @item remove unnecessary blocks
818 @item convert @code{IF} expressions in various ways that result in smaller code
819 @item remove some unreachable code
820 @end itemize\n")
821 (license license:zlib))))
822
823 (define-public cl-uglify-js
824 (sbcl-package->cl-source-package sbcl-cl-uglify-js))
825
826 (define-public sbcl-cl-strings
827 (let ((revision "1")
828 (commit "c5c5cbafbf3e6181d03c354d66e41a4f063f00ae"))
829 (package
830 (name "sbcl-cl-strings")
831 (version (git-version "0.0.0" revision commit))
832 (source
833 (origin
834 (method git-fetch)
835 (uri (git-reference
836 (url "https://github.com/diogoalexandrefranco/cl-strings")
837 (commit commit)))
838 (sha256
839 (base32
840 "00754mfaqallj480lwd346nkfb6ra8pa8xcxcylf4baqn604zlmv"))
841 (file-name (string-append "cl-strings-" version "-checkout"))))
842 (build-system asdf-build-system/sbcl)
843 (synopsis "Portable, dependency-free set of utilities to manipulate strings in Common Lisp")
844 (description
845 "@command{cl-strings} is a small, portable, dependency-free set of
846 utilities that make it even easier to manipulate text in Common Lisp. It has
847 100% test coverage and works at least on sbcl, ecl, ccl, abcl and clisp.")
848 (home-page "https://github.com/diogoalexandrefranco/cl-strings")
849 (license license:expat))))
850
851 (define-public cl-strings
852 (sbcl-package->cl-source-package sbcl-cl-strings))
853
854 (define-public ecl-cl-strings
855 (sbcl-package->ecl-package sbcl-cl-strings))
856
857 (define-public sbcl-trivial-features
858 (package
859 (name "sbcl-trivial-features")
860 (version "0.8")
861 (source
862 (origin
863 (method git-fetch)
864 (uri (git-reference
865 (url "https://github.com/trivial-features/trivial-features.git")
866 (commit (string-append "v" version))))
867 (file-name (git-file-name "trivial-features" version))
868 (sha256
869 (base32 "0ccv7dqyrk55xga78i5vzlic7mdwp28in3g1a8fqhlk6626scsq9"))))
870 (build-system asdf-build-system/sbcl)
871 (arguments '(#:tests? #f))
872 (home-page "http://cliki.net/trivial-features")
873 (synopsis "Ensures consistency of @code{*FEATURES*} in Common Lisp")
874 (description "Trivial-features ensures that @code{*FEATURES*} is
875 consistent across multiple Common Lisp implementations.")
876 (license license:expat)))
877
878 (define-public cl-trivial-features
879 (sbcl-package->cl-source-package sbcl-trivial-features))
880
881 (define-public ecl-trivial-features
882 (sbcl-package->ecl-package sbcl-trivial-features))
883
884 (define-public sbcl-hu.dwim.asdf
885 (package
886 (name "sbcl-hu.dwim.asdf")
887 (version "20190521")
888 (source
889 (origin
890 (method url-fetch)
891 (uri (string-append "http://beta.quicklisp.org/archive/hu.dwim.asdf/"
892 "2019-05-21/hu.dwim.asdf-" version "-darcs.tgz"))
893 (sha256
894 (base32
895 "0rsbv71vyszy8w35yjwb5h6zcmknjq223hkzir79y72qdsc6sabn"))))
896 (build-system asdf-build-system/sbcl)
897 (home-page "https://hub.darcs.net/hu.dwim/hu.dwim.asdf")
898 (synopsis "Extensions to ASDF")
899 (description "Various ASDF extensions such as attached test and
900 documentation system, explicit development support, etc.")
901 (license license:public-domain)))
902
903 (define-public cl-hu.dwim.asdf
904 (sbcl-package->cl-source-package sbcl-hu.dwim.asdf))
905
906 (define-public ecl-hu.dwim.asdf
907 (sbcl-package->ecl-package sbcl-hu.dwim.asdf))
908
909 (define-public sbcl-hu.dwim.stefil
910 (let ((commit "ab6d1aa8995878a1b66d745dfd0ba021090bbcf9"))
911 (package
912 (name "sbcl-hu.dwim.stefil")
913 (version (git-version "0.0.0" "1" commit))
914 (source
915 (origin
916 (method git-fetch)
917 (uri
918 (git-reference
919 (url "https://gitlab.common-lisp.net/xcvb/hu.dwim.stefil.git")
920 (commit commit)))
921 (sha256
922 (base32 "1d8yccw65zj3zh46cbi3x6nmn1dwdb76s9d0av035077mvyirqqp"))
923 (file-name (git-file-name "hu.dwim.stefil" version))))
924 (build-system asdf-build-system/sbcl)
925 (native-inputs
926 `(("asdf:cl-hu.dwim.asdf" ,sbcl-hu.dwim.asdf)))
927 (inputs
928 `(("sbcl-alexandria" ,sbcl-alexandria)))
929 (home-page "https://hub.darcs.net/hu.dwim/hu.dwim.stefil")
930 (synopsis "Simple test framework")
931 (description "Stefil is a simple test framework for Common Lisp,
932 with a focus on interactive development.")
933 (license license:public-domain))))
934
935 (define-public cl-hu.dwim.stefil
936 (sbcl-package->cl-source-package sbcl-hu.dwim.stefil))
937
938 (define-public ecl-hu.dwim.stefil
939 (sbcl-package->ecl-package sbcl-hu.dwim.stefil))
940
941 (define-public sbcl-babel
942 (package
943 (name "sbcl-babel")
944 (version "0.5.0")
945 (source
946 (origin
947 (method git-fetch)
948 (uri (git-reference
949 (url "https://github.com/cl-babel/babel.git")
950 (commit (string-append "v" version))))
951 (file-name (git-file-name "babel" version))
952 (sha256
953 (base32 "139a8rn2gnhj082n8jg01gc8fyr63hkj57hgrnmb3d1r327yc77f"))))
954 (build-system asdf-build-system/sbcl)
955 (native-inputs
956 `(("tests:cl-hu.dwim.stefil" ,sbcl-hu.dwim.stefil)))
957 (inputs
958 `(("sbcl-alexandria" ,sbcl-alexandria)
959 ("sbcl-trivial-features" ,sbcl-trivial-features)))
960 (home-page "https://common-lisp.net/project/babel/")
961 (synopsis "Charset encoding and decoding library")
962 (description "Babel is a charset encoding and decoding library, not unlike
963 GNU libiconv, but completely written in Common Lisp.")
964 (license license:expat)))
965
966 (define-public cl-babel
967 (sbcl-package->cl-source-package sbcl-babel))
968
969 (define-public ecl-babel
970 (sbcl-package->ecl-package sbcl-babel))
971
972 (define-public sbcl-cl-yacc
973 (package
974 (name "sbcl-cl-yacc")
975 (version "0.3")
976 (source
977 (origin
978 (method git-fetch)
979 (uri (git-reference
980 (url "https://github.com/jech/cl-yacc")
981 (commit (string-append "cl-yacc-" version))))
982 (sha256
983 (base32
984 "16946pzf8vvadnyfayvj8rbh4zjzw90h0azz2qk1mxrvhh5wklib"))
985 (file-name (string-append "cl-yacc-" version "-checkout"))))
986 (build-system asdf-build-system/sbcl)
987 (arguments
988 `(#:asd-file "yacc.asd"
989 #:asd-system-name "yacc"))
990 (synopsis "LALR(1) parser generator for Common Lisp, similar in spirit to Yacc")
991 (description
992 "CL-Yacc is a LALR(1) parser generator for Common Lisp, similar in spirit
993 to AT&T Yacc, Berkeley Yacc, GNU Bison, Zebu, lalr.cl or lalr.scm.
994
995 CL-Yacc uses the algorithm due to Aho and Ullman, which is the one also used
996 by AT&T Yacc, Berkeley Yacc and Zebu. It does not use the faster algorithm due
997 to DeRemer and Pennello, which is used by Bison and lalr.scm (not lalr.cl).")
998 (home-page "https://www.irif.fr/~jch//software/cl-yacc/")
999 (license license:expat)))
1000
1001 (define-public cl-yacc
1002 (sbcl-package->cl-source-package sbcl-cl-yacc))
1003
1004 (define-public ecl-cl-yacc
1005 (sbcl-package->ecl-package sbcl-cl-yacc))
1006
1007 (define-public sbcl-jpl-util
1008 (let ((commit "0311ed374e19a49d43318064d729fe3abd9a3b62"))
1009 (package
1010 (name "sbcl-jpl-util")
1011 (version "20151005")
1012 (source
1013 (origin
1014 (method git-fetch)
1015 (uri (git-reference
1016 ;; Quicklisp uses this fork.
1017 (url "https://github.com/hawkir/cl-jpl-util")
1018 (commit commit)))
1019 (file-name
1020 (git-file-name "jpl-util" version))
1021 (sha256
1022 (base32
1023 "0nc0rk9n8grkg3045xsw34whmcmddn2sfrxki4268g7kpgz0d2yz"))))
1024 (build-system asdf-build-system/sbcl)
1025 (synopsis "Collection of Common Lisp utility functions and macros")
1026 (description
1027 "@command{cl-jpl-util} is a collection of Common Lisp utility functions
1028 and macros, primarily for software projects written in CL by the author.")
1029 (home-page "https://www.thoughtcrime.us/software/cl-jpl-util/")
1030 (license license:isc))))
1031
1032 (define-public cl-jpl-util
1033 (sbcl-package->cl-source-package sbcl-jpl-util))
1034
1035 (define-public ecl-jpl-util
1036 (sbcl-package->ecl-package sbcl-jpl-util))
1037
1038 (define-public sbcl-jpl-queues
1039 (package
1040 (name "sbcl-jpl-queues")
1041 (version "0.1")
1042 (source
1043 (origin
1044 (method url-fetch)
1045 (uri (string-append
1046 "http://www.thoughtcrime.us/software/jpl-queues/jpl-queues-"
1047 version
1048 ".tar.gz"))
1049 (sha256
1050 (base32
1051 "1wvvv7j117h9a42qaj1g4fh4mji28xqs7s60rn6d11gk9jl76h96"))))
1052 (build-system asdf-build-system/sbcl)
1053 (inputs
1054 `(("jpl-util" ,sbcl-jpl-util)
1055 ("bordeaux-threads" ,sbcl-bordeaux-threads)))
1056 (arguments
1057 ;; Tests seem to be broken.
1058 `(#:tests? #f))
1059 (synopsis "Common Lisp library implementing a few different kinds of queues")
1060 (description
1061 "A Common Lisp library implementing a few different kinds of queues:
1062
1063 @itemize
1064 @item Bounded and unbounded FIFO queues.
1065 @item Lossy bounded FIFO queues that drop elements when full.
1066 @item Unbounded random-order queues that use less memory than unbounded FIFO queues.
1067 @end itemize
1068
1069 Additionally, a synchronization wrapper is provided to make any queue
1070 conforming to the @command{jpl-queues} API thread-safe for lightweight
1071 multithreading applications. (See Calispel for a more sophisticated CL
1072 multithreaded message-passing library with timeouts and alternation among
1073 several blockable channels.)")
1074 (home-page "https://www.thoughtcrime.us/software/jpl-queues/")
1075 (license license:isc)))
1076
1077 (define-public cl-jpl-queues
1078 (sbcl-package->cl-source-package sbcl-jpl-queues))
1079
1080 (define-public ecl-jpl-queues
1081 (sbcl-package->ecl-package sbcl-jpl-queues))
1082
1083 (define-public sbcl-eos
1084 (let ((commit "b0faca83781ead9a588661e37bd47f90362ccd94"))
1085 (package
1086 (name "sbcl-eos")
1087 (version (git-version "0.0.0" "1" commit))
1088 (source
1089 (origin
1090 (method git-fetch)
1091 (uri (git-reference
1092 (url "https://github.com/adlai/Eos")
1093 (commit commit)))
1094 (sha256
1095 (base32
1096 "1bq8cfg087iyxmxi1mwgx5cfgy3b8ydrf81xljcis8qbgb2vszph"))
1097 (file-name (git-file-name "eos" version))))
1098 (build-system asdf-build-system/sbcl)
1099 (synopsis "Unit Testing for Common Lisp")
1100 (description
1101 "Eos was a unit testing library for Common Lisp.
1102 It began as a fork of FiveAM; however, FiveAM development has continued, while
1103 that of Eos has not. Thus, Eos is now deprecated in favor of FiveAM.")
1104 (home-page "https://github.com/adlai/Eos")
1105 (license license:expat))))
1106
1107 (define-public cl-eos
1108 (sbcl-package->cl-source-package sbcl-eos))
1109
1110 (define-public ecl-eos
1111 (sbcl-package->ecl-package sbcl-eos))
1112
1113 (define-public sbcl-esrap
1114 (let ((commit "133be8b05c2aae48696fe5b739eea2fa573fa48d"))
1115 (package
1116 (name "sbcl-esrap")
1117 (version (git-version "0.0.0" "1" commit))
1118 (source
1119 (origin
1120 (method git-fetch)
1121 (uri (git-reference
1122 (url "https://github.com/nikodemus/esrap")
1123 (commit commit)))
1124 (sha256
1125 (base32
1126 "02d5clihsdryhf7pix8c5di2571fdsffh75d40fkzhws90r5mksl"))
1127 (file-name (git-file-name "esrap" version))))
1128 (build-system asdf-build-system/sbcl)
1129 (native-inputs
1130 `(("eos" ,sbcl-eos))) ;For testing only.
1131 (inputs
1132 `(("alexandria" ,sbcl-alexandria)))
1133 (synopsis "Common Lisp packrat parser")
1134 (description
1135 "A packrat parser for Common Lisp.
1136 In addition to regular Packrat / Parsing Grammar / TDPL features ESRAP supports:
1137
1138 @itemize
1139 @item dynamic redefinition of nonterminals
1140 @item inline grammars
1141 @item semantic predicates
1142 @item introspective facilities (describing grammars, tracing, setting breaks)
1143 @end itemize\n")
1144 (home-page "https://nikodemus.github.io/esrap/")
1145 (license license:expat))))
1146
1147 (define-public cl-esrap
1148 (sbcl-package->cl-source-package sbcl-esrap))
1149
1150 (define-public ecl-esrap
1151 (sbcl-package->ecl-package sbcl-esrap))
1152
1153 (define-public sbcl-split-sequence
1154 (package
1155 (name "sbcl-split-sequence")
1156 (version "1.4.1")
1157 (source
1158 (origin
1159 (method git-fetch)
1160 (uri (git-reference
1161 (url "https://github.com/sharplispers/split-sequence")
1162 (commit (string-append "v" version))))
1163 (sha256
1164 (base32
1165 "0c3zp6b7fmmp93sfhq112ind4zkld49ycw68z409xpnz3gc0wpf0"))
1166 (file-name (git-file-name "split-sequence" version))))
1167 (build-system asdf-build-system/sbcl)
1168 (arguments
1169 ;; TODO: Tests seem to be broken.
1170 ;; https://github.com/sharplispers/split-sequence/issues/8
1171 `(#:tests? #f))
1172 (synopsis "Member of the Common Lisp Utilities family of programs")
1173 (description
1174 "Splits sequence into a list of subsequences delimited by objects
1175 satisfying the test.")
1176 (home-page "https://cliki.net/split-sequence")
1177 (license license:expat)))
1178
1179 (define-public cl-split-sequence
1180 (sbcl-package->cl-source-package sbcl-split-sequence))
1181
1182 (define-public ecl-split-sequence
1183 (sbcl-package->ecl-package sbcl-split-sequence))
1184
1185 (define-public sbcl-html-encode
1186 (package
1187 (name "sbcl-html-encode")
1188 (version "1.2")
1189 (source
1190 (origin
1191 (method url-fetch)
1192 (uri (string-append
1193 "http://beta.quicklisp.org/archive/html-encode/2010-10-06/html-encode-"
1194 version ".tgz"))
1195 (sha256
1196 (base32
1197 "06mf8wn95yf5swhmzk4vp0xr4ylfl33dgfknkabbkd8n6jns8gcf"))
1198 (file-name (string-append "colorize" version "-checkout"))))
1199 (build-system asdf-build-system/sbcl)
1200 (synopsis "Common Lisp library for encoding text in various web-savvy encodings")
1201 (description
1202 "A library for encoding text in various web-savvy encodings.")
1203 (home-page "http://quickdocs.org/html-encode/")
1204 (license license:expat)))
1205
1206 (define-public cl-html-encode
1207 (sbcl-package->cl-source-package sbcl-html-encode))
1208
1209 (define-public ecl-html-encode
1210 (sbcl-package->ecl-package sbcl-html-encode))
1211
1212 (define-public sbcl-colorize
1213 (let ((commit "ea676b584e0899cec82f21a9e6871172fe3c0eb5"))
1214 (package
1215 (name "sbcl-colorize")
1216 (version (git-version "0.0.0" "1" commit))
1217 (source
1218 (origin
1219 (method git-fetch)
1220 (uri (git-reference
1221 (url "https://github.com/kingcons/colorize")
1222 (commit commit)))
1223 (sha256
1224 (base32
1225 "1pdg4kiaczmr3ivffhirp7m3lbr1q27rn7dhaay0vwghmi31zcw9"))
1226 (file-name (git-file-name "colorize" version))))
1227 (build-system asdf-build-system/sbcl)
1228 (inputs
1229 `(("alexandria" ,sbcl-alexandria)
1230 ("split-sequence" ,sbcl-split-sequence)
1231 ("html-encode" ,sbcl-html-encode)))
1232 (synopsis "Common Lisp for syntax highlighting")
1233 (description
1234 "@command{colorize} is a Lisp library for syntax highlighting
1235 supporting the following languages: Common Lisp, Emacs Lisp, Scheme, Clojure,
1236 C, C++, Java, Python, Erlang, Haskell, Objective-C, Diff, Webkit.")
1237 (home-page "https://github.com/kingcons/colorize")
1238 ;; TODO: Missing license?
1239 (license license:expat))))
1240
1241 (define-public cl-colorize
1242 (sbcl-package->cl-source-package sbcl-colorize))
1243
1244 (define-public ecl-colorize
1245 (sbcl-package->ecl-package sbcl-colorize))
1246
1247 (define-public sbcl-3bmd
1248 (let ((commit "192ea13435b605a96ef607df51317056914cabbd"))
1249 (package
1250 (name "sbcl-3bmd")
1251 (version (git-version "0.0.0" "1" commit))
1252 (source
1253 (origin
1254 (method git-fetch)
1255 (uri (git-reference
1256 (url "https://github.com/3b/3bmd")
1257 (commit commit)))
1258 (sha256
1259 (base32
1260 "1rgv3gi7wf963ikmmpk132wgn0icddf226gq3bmcnk1fr3v9gf2f"))
1261 (file-name (git-file-name "3bmd" version))))
1262 (build-system asdf-build-system/sbcl)
1263 (arguments
1264 ;; FIXME: We need to specify the name because the build-system thinks
1265 ;; "3" is a version marker.
1266 `(#:asd-system-name "3bmd"))
1267 (inputs
1268 `(("esrap" ,sbcl-esrap)
1269 ("split-sequence" ,sbcl-split-sequence)))
1270 (synopsis "Markdown processor in Command Lisp using esrap parser")
1271 (description
1272 "Common Lisp Markdown -> HTML converter, using @command{esrap} for
1273 parsing, and grammar based on @command{peg-markdown}.")
1274 (home-page "https://github.com/3b/3bmd")
1275 (license license:expat))))
1276
1277 (define-public cl-3bmd
1278 (sbcl-package->cl-source-package sbcl-3bmd))
1279
1280 (define-public ecl-3bmd
1281 (sbcl-package->ecl-package sbcl-3bmd))
1282
1283 (define-public sbcl-3bmd-ext-code-blocks
1284 (let ((commit "192ea13435b605a96ef607df51317056914cabbd"))
1285 (package
1286 (inherit sbcl-3bmd)
1287 (name "sbcl-3bmd-ext-code-blocks")
1288 (arguments
1289 `(#:asd-system-name "3bmd-ext-code-blocks"
1290 #:asd-file "3bmd-ext-code-blocks.asd"))
1291 (inputs
1292 `(("3bmd" ,sbcl-3bmd)
1293 ("colorize" ,sbcl-colorize)))
1294 (synopsis "3bmd extension which adds support for GitHub-style fenced
1295 code blocks")
1296 (description
1297 "3bmd extension which adds support for GitHub-style fenced code blocks,
1298 with @command{colorize} support."))))
1299
1300 (define-public cl-3bmd-ext-code-blocks
1301 (sbcl-package->cl-source-package sbcl-3bmd-ext-code-blocks))
1302
1303 (define-public ecl-3bmd-ext-code-blocks
1304 (sbcl-package->ecl-package sbcl-3bmd-ext-code-blocks))
1305
1306 (define-public sbcl-cl-fad
1307 (package
1308 (name "sbcl-cl-fad")
1309 (version "0.7.5")
1310 (source
1311 (origin
1312 (method git-fetch)
1313 (uri (git-reference
1314 (url "https://github.com/edicl/cl-fad/")
1315 (commit (string-append "v" version))))
1316 (sha256
1317 (base32
1318 "1l1qmk9z57q84bz5r04sxsksggsnd7dgkxlybzh9imz6ma7sm52m"))
1319 (file-name (string-append "cl-fad" version "-checkout"))))
1320 (build-system asdf-build-system/sbcl)
1321 (inputs
1322 `(("bordeaux-threads" ,sbcl-bordeaux-threads)))
1323 (synopsis "Portable pathname library for Common Lisp")
1324 (description
1325 "CL-FAD (for \"Files and Directories\") is a thin layer atop Common
1326 Lisp's standard pathname functions. It is intended to provide some
1327 unification between current CL implementations on Windows, OS X, Linux, and
1328 Unix. Most of the code was written by Peter Seibel for his book Practical
1329 Common Lisp.")
1330 (home-page "https://edicl.github.io/cl-fad/")
1331 (license license:bsd-2)))
1332
1333 (define-public cl-fad
1334 (sbcl-package->cl-source-package sbcl-cl-fad))
1335
1336 (define-public ecl-cl-fad
1337 (sbcl-package->ecl-package sbcl-cl-fad))
1338
1339 (define-public sbcl-rt
1340 (package
1341 (name "sbcl-rt")
1342 (version "1990.12.19")
1343 (source
1344 (origin
1345 (method url-fetch)
1346 (uri (string-append "http://beta.quicklisp.org/archive/rt/2010-10-06/rt-"
1347 "20101006-git" ".tgz"))
1348 (sha256
1349 (base32
1350 "1jncar0xwkqk8yrc2dln389ivvgzs7ijdhhs3zpfyi5d21f0qa1v"))))
1351 (build-system asdf-build-system/sbcl)
1352 (synopsis "MIT Regression Tester")
1353 (description
1354 "RT provides a framework for writing regression test suites.")
1355 (home-page "https://github.com/sharplispers/nibbles")
1356 (license license:unlicense)))
1357
1358 (define-public cl-rt
1359 (sbcl-package->cl-source-package sbcl-rt))
1360
1361 (define-public ecl-rt
1362 (sbcl-package->ecl-package sbcl-rt))
1363
1364 (define-public sbcl-nibbles
1365 (package
1366 (name "sbcl-nibbles")
1367 (version "0.14")
1368 (source
1369 (origin
1370 (method git-fetch)
1371 (uri (git-reference
1372 (url "https://github.com/sharplispers/nibbles/")
1373 (commit (string-append "v" version))))
1374 (sha256
1375 (base32
1376 "1v7qfgpvdr6nz7v63dj69d26dis0kff3rd8xamr1llfdvza2pm8f"))
1377 (file-name (git-file-name "nibbles" version))))
1378 (build-system asdf-build-system/sbcl)
1379 (native-inputs
1380 ;; Tests only.
1381 `(("rt" ,sbcl-rt)))
1382 (synopsis "Common Lisp library for accessing octet-addressed blocks of data")
1383 (description
1384 "When dealing with network protocols and file formats, it's common to
1385 have to read or write 16-, 32-, or 64-bit datatypes in signed or unsigned
1386 flavors. Common Lisp sort of supports this by specifying :element-type for
1387 streams, but that facility is underspecified and there's nothing similar for
1388 read/write from octet vectors. What most people wind up doing is rolling their
1389 own small facility for their particular needs and calling it a day.
1390
1391 This library attempts to be comprehensive and centralize such
1392 facilities. Functions to read 16-, 32-, and 64-bit quantities from octet
1393 vectors in signed or unsigned flavors are provided; these functions are also
1394 SETFable. Since it's sometimes desirable to read/write directly from streams,
1395 functions for doing so are also provided. On some implementations,
1396 reading/writing IEEE singles/doubles (i.e. single-float and double-float) will
1397 also be supported.")
1398 (home-page "https://github.com/sharplispers/nibbles")
1399 (license license:bsd-3)))
1400
1401 (define-public cl-nibbles
1402 (sbcl-package->cl-source-package sbcl-nibbles))
1403
1404 (define-public ecl-nibbles
1405 (sbcl-package->ecl-package sbcl-nibbles))
1406
1407 (define-public sbcl-ironclad
1408 (package
1409 (name "sbcl-ironclad")
1410 (version "0.46")
1411 (source
1412 (origin
1413 (method git-fetch)
1414 (uri (git-reference
1415 (url "https://github.com/sharplispers/ironclad/")
1416 (commit (string-append "v" version))))
1417 (sha256
1418 (base32
1419 "1s391awi2lsl7m1dbjirgpkm4p9p8wd076pakgvsvpn1rrznisnd"))
1420 (file-name (git-file-name name version))))
1421 (build-system asdf-build-system/sbcl)
1422 (native-inputs
1423 ;; Tests only.
1424 `(("rt" ,sbcl-rt)))
1425 (inputs
1426 `(("bordeaux-threads" ,sbcl-bordeaux-threads)
1427 ("flexi-streams" ,sbcl-flexi-streams)
1428 ("nibbles" ,sbcl-nibbles)))
1429 (synopsis "Cryptographic toolkit written in Common Lisp")
1430 (description
1431 "Ironclad is a cryptography library written entirely in Common Lisp.
1432 It includes support for several popular ciphers, digests, MACs and public key
1433 cryptography algorithms. For several implementations that support Gray
1434 streams, support is included for convenient stream wrappers.")
1435 (home-page "https://github.com/sharplispers/ironclad")
1436 (license license:bsd-3)))
1437
1438 (define-public cl-ironclad
1439 (sbcl-package->cl-source-package sbcl-ironclad))
1440
1441 (define-public ecl-ironclad
1442 (sbcl-package->ecl-package sbcl-ironclad))
1443
1444 (define-public sbcl-named-readtables
1445 (let ((commit "4dfb89fa1af6b305b6492b8af042f5190c11e9fc")
1446 (revision "1"))
1447 (package
1448 (name "sbcl-named-readtables")
1449 (version (string-append "0.9-" revision "." (string-take commit 7)))
1450 (source
1451 (origin
1452 (method git-fetch)
1453 (uri (git-reference
1454 (url "https://github.com/melisgl/named-readtables.git")
1455 (commit commit)))
1456 (sha256
1457 (base32 "083kgh5462iqbb4px6kq8s7sggvpvkm36hx4qi9rnaw53b6ilqkk"))
1458 (file-name (git-file-name "named-readtables" version))))
1459 (build-system asdf-build-system/sbcl)
1460 (arguments
1461 ;; Tests seem to be broken.
1462 `(#:tests? #f))
1463 (home-page "https://github.com/melisgl/named-readtables/")
1464 (synopsis "Library that creates a namespace for named readtables")
1465 (description "Named readtables is a library that creates a namespace for
1466 named readtables, which is akin to package namespacing in Common Lisp.")
1467 (license license:bsd-3))))
1468
1469 (define-public cl-named-readtables
1470 (sbcl-package->cl-source-package sbcl-named-readtables))
1471
1472 (define-public ecl-named-readtables
1473 (sbcl-package->ecl-package sbcl-named-readtables))
1474
1475 (define-public sbcl-pythonic-string-reader
1476 (let ((commit "47a70ba1e32362e03dad6ef8e6f36180b560f86a"))
1477 (package
1478 (name "sbcl-pythonic-string-reader")
1479 (version (git-version "0.0.0" "1" commit))
1480 (source
1481 (origin
1482 (method git-fetch)
1483 (uri (git-reference
1484 (url "https://github.com/smithzvk/pythonic-string-reader/")
1485 (commit commit)))
1486 (sha256
1487 (base32 "1b5iryqw8xsh36swckmz8rrngmc39k92si33fgy5pml3n9l5rq3j"))
1488 (file-name (git-file-name "pythonic-string-reader" version))))
1489 (build-system asdf-build-system/sbcl)
1490 (inputs
1491 `(("named-readtables" ,sbcl-named-readtables)))
1492 (home-page "https://github.com/smithzvk/pythonic-string-reader")
1493 (synopsis "Read table modification inspired by Python's three quote strings")
1494 (description "This piece of code sets up some reader macros that make it
1495 simpler to input string literals which contain backslashes and double quotes
1496 This is very useful for writing complicated docstrings and, as it turns out,
1497 writing code that contains string literals that contain code themselves.")
1498 (license license:bsd-3))))
1499
1500 (define-public cl-pythonic-string-reader
1501 (sbcl-package->cl-source-package sbcl-pythonic-string-reader))
1502
1503 (define-public ecl-pythonic-string-reader
1504 (sbcl-package->ecl-package sbcl-pythonic-string-reader))
1505
1506 ;; SLIME does not have a ASDF system definition to build all of Swank. As a
1507 ;; result, the asdf-build-system/sbcl will produce an almost empty package.
1508 ;; Some work was done to fix this at
1509 ;; https://github.com/sionescu/slime/tree/swank-asdf but it was never merged
1510 ;; and is now lagging behind. Building SBCL fasls might not be worth the
1511 ;; hassle, so let's just ship the source then.
1512 (define-public cl-slime-swank
1513 (package
1514 (name "cl-slime-swank")
1515 (version "2.24")
1516 (source
1517 (origin
1518 (file-name (string-append name "-" version ".tar.gz"))
1519 (method git-fetch)
1520 (uri (git-reference
1521 (url "https://github.com/slime/slime/")
1522 (commit (string-append "v" version))))
1523 (sha256
1524 (base32
1525 "0js24x42m7b5iymb4rxz501dff19vav5pywnzv50b673rbkaaqvh"))))
1526 (build-system asdf-build-system/source)
1527 (home-page "https://github.com/slime/slime")
1528 (synopsis "Common Lisp Swank server")
1529 (description
1530 "This is only useful if you want to start a Swank server in a Lisp
1531 processes that doesn't run under Emacs. Lisp processes created by
1532 @command{M-x slime} automatically start the server.")
1533 (license (list license:gpl2+ license:public-domain))))
1534
1535 (define-public sbcl-slime-swank
1536 (deprecated-package "sbcl-slime-swank" cl-slime-swank))
1537
1538 (define-public sbcl-mgl-pax
1539 (let ((commit "818448418d6b9de74620f606f5b23033c6082769"))
1540 (package
1541 (name "sbcl-mgl-pax")
1542 (version (git-version "0.0.0" "1" commit))
1543 (source
1544 (origin
1545 (method git-fetch)
1546 (uri (git-reference
1547 (url "https://github.com/melisgl/mgl-pax")
1548 (commit commit)))
1549 (sha256
1550 (base32
1551 "1p97zfkh130bdxqqxwaw2j9psv58751wakx7czbfpq410lg7dd7i"))
1552 (file-name (git-file-name "mgl-pax" version))))
1553 (build-system asdf-build-system/sbcl)
1554 (inputs
1555 `(("3bmd" ,sbcl-3bmd)
1556 ("3bmd-ext-code-blocks" ,sbcl-3bmd-ext-code-blocks)
1557 ("babel" ,sbcl-babel)
1558 ("cl-fad" ,sbcl-cl-fad)
1559 ("ironclad" ,sbcl-ironclad)
1560 ("named-readtables" ,sbcl-named-readtables)
1561 ("pythonic-string-reader" ,sbcl-pythonic-string-reader)
1562 ("swank" ,cl-slime-swank)))
1563 (synopsis "Exploratory programming environment and documentation generator")
1564 (description
1565 "PAX provides an extremely poor man's Explorable Programming
1566 environment. Narrative primarily lives in so called sections that mix markdown
1567 docstrings with references to functions, variables, etc, all of which should
1568 probably have their own docstrings.
1569
1570 The primary focus is on making code easily explorable by using SLIME's
1571 @command{M-.} (@command{slime-edit-definition}). See how to enable some
1572 fanciness in Emacs Integration. Generating documentation from sections and all
1573 the referenced items in Markdown or HTML format is also implemented.
1574
1575 With the simplistic tools provided, one may accomplish similar effects as with
1576 Literate Programming, but documentation is generated from code, not vice versa
1577 and there is no support for chunking yet. Code is first, code must look
1578 pretty, documentation is code.")
1579 (home-page "http://quotenil.com/")
1580 (license license:expat))))
1581
1582 (define-public cl-mgl-pax
1583 (sbcl-package->cl-source-package sbcl-mgl-pax))
1584
1585 (define-public ecl-mgl-pax
1586 (sbcl-package->ecl-package sbcl-mgl-pax))
1587
1588 (define-public sbcl-lisp-unit
1589 (let ((commit "89653a232626b67400bf9a941f9b367da38d3815"))
1590 (package
1591 (name "sbcl-lisp-unit")
1592 (version (git-version "0.0.0" "1" commit))
1593 (source
1594 (origin
1595 (method git-fetch)
1596 (uri (git-reference
1597 (url "https://github.com/OdonataResearchLLC/lisp-unit")
1598 (commit commit)))
1599 (sha256
1600 (base32
1601 "0p6gdmgr7p383nvd66c9y9fp2bjk4jx1lpa5p09g43hr9y9pp9ry"))
1602 (file-name (git-file-name "lisp-unit" version))))
1603 (build-system asdf-build-system/sbcl)
1604 (synopsis "Common Lisp Test framework inspired by JUnit to be simple of use")
1605 (description
1606 "@command{lisp-unit} is a Common Lisp library that supports unit
1607 testing. It is an extension of the library written by Chris Riesbeck.")
1608 (home-page "https://github.com/OdonataResearchLLC/lisp-unit")
1609 (license license:expat))))
1610
1611 (define-public cl-lisp-unit
1612 (sbcl-package->cl-source-package sbcl-lisp-unit))
1613
1614 (define-public ecl-lisp-unit
1615 (sbcl-package->ecl-package sbcl-lisp-unit))
1616
1617 (define-public sbcl-anaphora
1618 (package
1619 (name "sbcl-anaphora")
1620 (version "0.9.6")
1621 (source
1622 (origin
1623 (method git-fetch)
1624 (uri (git-reference
1625 (url "https://github.com/tokenrove/anaphora")
1626 (commit version)))
1627 (sha256
1628 (base32
1629 "19wfrk3asimznkli0x2rfy637hwpdgqyvwj3vhq9x7vjvyf5vv6x"))
1630 (file-name (git-file-name "anaphora" version))))
1631 (build-system asdf-build-system/sbcl)
1632 (native-inputs
1633 `(("rt" ,sbcl-rt)))
1634 (synopsis "The anaphoric macro collection from Hell")
1635 (description
1636 "Anaphora is the anaphoric macro collection from Hell: it includes many
1637 new fiends in addition to old friends like @command{aif} and
1638 @command{awhen}.")
1639 (home-page "https://github.com/tokenrove/anaphora")
1640 (license license:public-domain)))
1641
1642 (define-public cl-anaphora
1643 (sbcl-package->cl-source-package sbcl-anaphora))
1644
1645 (define-public ecl-anaphora
1646 (sbcl-package->ecl-package sbcl-anaphora))
1647
1648 (define-public sbcl-lift
1649 (let ((commit "7d49a66c62759535624037826891152223d4206c"))
1650 (package
1651 (name "sbcl-lift")
1652 (version (git-version "1.7.1" "1" commit))
1653 (source
1654 (origin
1655 (method git-fetch)
1656 (uri (git-reference
1657 (url "https://github.com/gwkkwg/lift")
1658 (commit commit)))
1659 (sha256
1660 (base32
1661 "127v5avpz1i4m0lkaxqrq8hrl69rdazqaxf6s8awf0nd7wj2g4dp"))
1662 (file-name (git-file-name "lift" version))
1663 (modules '((guix build utils)))
1664 (snippet
1665 ;; Don't keep the bundled website
1666 `(begin
1667 (delete-file-recursively "website")
1668 #t))))
1669 (build-system asdf-build-system/sbcl)
1670 (arguments
1671 ;; The tests require a debugger, but we run with the debugger disabled.
1672 '(#:tests? #f))
1673 (synopsis "LIsp Framework for Testing")
1674 (description
1675 "The LIsp Framework for Testing (LIFT) is a unit and system test tool for LISP.
1676 Though inspired by SUnit and JUnit, it's built with Lisp in mind. In LIFT,
1677 testcases are organized into hierarchical testsuites each of which can have
1678 its own fixture. When run, a testcase can succeed, fail, or error. LIFT
1679 supports randomized testing, benchmarking, profiling, and reporting.")
1680 (home-page "https://github.com/gwkkwg/lift")
1681 (license license:expat))))
1682
1683 (define-public cl-lift
1684 (sbcl-package->cl-source-package sbcl-lift))
1685
1686 (define-public ecl-lift
1687 (sbcl-package->ecl-package sbcl-lift))
1688
1689 (define-public sbcl-let-plus
1690 (let ((commit "5f14af61d501ecead02ec6b5a5c810efc0c9fdbb"))
1691 (package
1692 (name "sbcl-let-plus")
1693 (version (git-version "0.0.0" "1" commit))
1694 (source
1695 (origin
1696 (method git-fetch)
1697 (uri (git-reference
1698 (url "https://github.com/sharplispers/let-plus")
1699 (commit commit)))
1700 (sha256
1701 (base32
1702 "0i050ca2iys9f5mb7dgqgqdxfnc3b0rnjdwv95sqd490vkiwrsaj"))
1703 (file-name (git-file-name "let-plus" version))))
1704 (build-system asdf-build-system/sbcl)
1705 (inputs
1706 `(("alexandria" ,sbcl-alexandria)
1707 ("anaphora" ,sbcl-anaphora)))
1708 (native-inputs
1709 `(("lift" ,sbcl-lift)))
1710 (synopsis "Destructuring extension of let*")
1711 (description
1712 "This library implements the let+ macro, which is a dectructuring
1713 extension of let*. It features:
1714
1715 @itemize
1716 @item Clean, consistent syntax and small implementation (less than 300 LOC,
1717 not counting tests)
1718 @item Placeholder macros allow editor hints and syntax highlighting
1719 @item @command{&ign} for ignored values (in forms where that makes sense)
1720 @item Very easy to extend
1721 @end itemize\n")
1722 (home-page "https://github.com/sharplispers/let-plus")
1723 (license license:boost1.0))))
1724
1725 (define-public cl-let-plus
1726 (sbcl-package->cl-source-package sbcl-let-plus))
1727
1728 (define-public ecl-let-plus
1729 (sbcl-package->ecl-package sbcl-let-plus))
1730
1731 (define-public sbcl-cl-colors
1732 (let ((commit "827410584553f5c717eec6182343b7605f707f75"))
1733 (package
1734 (name "sbcl-cl-colors")
1735 (version (git-version "0.0.0" "1" commit))
1736 (source
1737 (origin
1738 (method git-fetch)
1739 (uri (git-reference
1740 (url "https://github.com/tpapp/cl-colors")
1741 (commit commit)))
1742 (sha256
1743 (base32
1744 "0l446lday4hybsm9bq3jli97fvv8jb1d33abg79vbylpwjmf3y9a"))
1745 (file-name (git-file-name "cl-colors" version))))
1746 (build-system asdf-build-system/sbcl)
1747 (inputs
1748 `(("alexandria" ,sbcl-alexandria)
1749 ("let-plus" ,sbcl-let-plus)))
1750 (synopsis "Simple color library for Common Lisp")
1751 (description
1752 "This is a very simple color library for Common Lisp, providing
1753
1754 @itemize
1755 @item Types for representing colors in HSV and RGB spaces.
1756 @item Simple conversion functions between the above types (and also
1757 hexadecimal representation for RGB).
1758 @item Some predefined colors (currently X11 color names – of course the
1759 library does not depend on X11).Because color in your terminal is nice.
1760 @end itemize
1761
1762 This library is no longer supported by its author.")
1763 (home-page "https://github.com/tpapp/cl-colors")
1764 (license license:boost1.0))))
1765
1766 (define-public cl-colors
1767 (sbcl-package->cl-source-package sbcl-cl-colors))
1768
1769 (define-public ecl-cl-colors
1770 (sbcl-package->ecl-package sbcl-cl-colors))
1771
1772 (define-public sbcl-cl-ansi-text
1773 (let ((commit "53badf7878f27f22f2d4a2a43e6df458e43acbe9"))
1774 (package
1775 (name "sbcl-cl-ansi-text")
1776 (version (git-version "1.0.0" "1" commit))
1777 (source
1778 (origin
1779 (method git-fetch)
1780 (uri (git-reference
1781 (url "https://github.com/pnathan/cl-ansi-text")
1782 (commit commit)))
1783 (sha256
1784 (base32
1785 "11i27n0dbz5lmygiw65zzr8lx0rac6b6yysqranphn31wls6ja3v"))
1786 (file-name (git-file-name "cl-ansi-text" version))))
1787 (build-system asdf-build-system/sbcl)
1788 (inputs
1789 `(("alexandria" ,sbcl-alexandria)
1790 ("cl-colors" ,sbcl-cl-colors)))
1791 (native-inputs
1792 `(("fiveam" ,sbcl-fiveam)))
1793 (synopsis "ANSI terminal color implementation for Common Lisp")
1794 (description
1795 "@command{cl-ansi-text} provides utilities which enable printing to an
1796 ANSI terminal with colored text. It provides the macro @command{with-color}
1797 which causes everything printed in the body to be displayed with the provided
1798 color. It further provides functions which will print the argument with the
1799 named color.")
1800 (home-page "https://github.com/pnathan/cl-ansi-text")
1801 (license license:llgpl))))
1802
1803 (define-public cl-ansi-text
1804 (sbcl-package->cl-source-package sbcl-cl-ansi-text))
1805
1806 (define-public ecl-cl-ansi-text
1807 (sbcl-package->ecl-package sbcl-cl-ansi-text))
1808
1809 (define-public sbcl-prove-asdf
1810 (let ((commit "4f9122bd393e63c5c70c1fba23070622317cfaa0"))
1811 (package
1812 (name "sbcl-prove-asdf")
1813 (version (git-version "1.0.0" "1" commit))
1814 (source
1815 (origin
1816 (method git-fetch)
1817 (uri (git-reference
1818 (url "https://github.com/fukamachi/prove")
1819 (commit commit)))
1820 (sha256
1821 (base32
1822 "07sbfw459z8bbjvx1qlmfa8qk2mvbjnnzi2mi0x72blaj8bkl4vc"))
1823 (file-name (git-file-name "prove" version))))
1824 (build-system asdf-build-system/sbcl)
1825 (arguments
1826 `(#:asd-file "prove-asdf.asd"))
1827 (synopsis "Test requirement for the Common Lisp 'prove' library")
1828 (description
1829 "Test requirement for the Common Lisp @command{prove} library.")
1830 (home-page "https://github.com/fukamachi/prove")
1831 (license license:expat))))
1832
1833 (define-public cl-prove-asdf
1834 (sbcl-package->cl-source-package sbcl-prove-asdf))
1835
1836 (define-public ecl-prove-asdf
1837 (sbcl-package->ecl-package sbcl-prove-asdf))
1838
1839 (define-public sbcl-prove
1840 (package
1841 (inherit sbcl-prove-asdf)
1842 (name "sbcl-prove")
1843 (inputs
1844 `(("alexandria" ,sbcl-alexandria)
1845 ("cl-ppcre" ,sbcl-cl-ppcre)
1846 ("cl-ansi-text" ,sbcl-cl-ansi-text)))
1847 (native-inputs
1848 `(("prove-asdf" ,sbcl-prove-asdf)))
1849 (arguments
1850 `(#:asd-file "prove.asd"))
1851 (synopsis "Yet another unit testing framework for Common Lisp")
1852 (description
1853 "This project was originally called @command{cl-test-more}.
1854 @command{prove} is yet another unit testing framework for Common Lisp. The
1855 advantages of @command{prove} are:
1856
1857 @itemize
1858 @item Various simple functions for testing and informative error messages
1859 @item ASDF integration
1860 @item Extensible test reporters
1861 @item Colorizes the report if it's available (note for SLIME)
1862 @item Reports test durations
1863 @end itemize\n")))
1864
1865 (define-public cl-prove
1866 (sbcl-package->cl-source-package sbcl-prove))
1867
1868 (define-public ecl-prove
1869 (sbcl-package->ecl-package sbcl-prove))
1870
1871 (define-public sbcl-proc-parse
1872 (let ((commit "ac3636834d561bdc2686c956dbd82494537285fd"))
1873 (package
1874 (name "sbcl-proc-parse")
1875 (version (git-version "0.0.0" "1" commit))
1876 (source
1877 (origin
1878 (method git-fetch)
1879 (uri (git-reference
1880 (url "https://github.com/fukamachi/proc-parse")
1881 (commit commit)))
1882 (sha256
1883 (base32
1884 "06rnl0h4cx6xv2wj3jczmmcxqn2703inmmvg1s4npbghmijsybfh"))
1885 (file-name (git-file-name "proc-parse" version))))
1886 (build-system asdf-build-system/sbcl)
1887 (inputs
1888 `(("alexandria" ,sbcl-alexandria)
1889 ("babel" ,sbcl-babel)))
1890 (native-inputs
1891 `(("prove" ,sbcl-prove)
1892 ("prove-asdf" ,sbcl-prove-asdf)))
1893 (arguments
1894 ;; TODO: Tests don't find "proc-parse-test", why?
1895 `(#:tests? #f))
1896 (synopsis "Procedural vector parser")
1897 (description
1898 "This is a string/octets parser library for Common Lisp with speed and
1899 readability in mind. Unlike other libraries, the code is not a
1900 pattern-matching-like, but a char-by-char procedural parser.")
1901 (home-page "https://github.com/fukamachi/proc-parse")
1902 (license license:bsd-2))))
1903
1904 (define-public cl-proc-parse
1905 (sbcl-package->cl-source-package sbcl-proc-parse))
1906
1907 (define-public ecl-proc-parse
1908 (sbcl-package->ecl-package sbcl-proc-parse))
1909
1910 (define-public sbcl-parse-float
1911 (let ((commit "2aae569f2a4b2eb3bfb5401a959425dcf151b09c"))
1912 (package
1913 (name "sbcl-parse-float")
1914 (version (git-version "0.0.0" "1" commit))
1915 (source
1916 (origin
1917 (method git-fetch)
1918 (uri (git-reference
1919 (url "https://github.com/soemraws/parse-float")
1920 (commit commit)))
1921 (sha256
1922 (base32
1923 "08xw8cchhmqcc0byng69m3f5a2izc9y2290jzz2k0qrbibp1fdk7"))
1924 (file-name (git-file-name "proc-parse" version))))
1925 (build-system asdf-build-system/sbcl)
1926 (inputs
1927 `(("alexandria" ,sbcl-alexandria)
1928 ("babel" ,sbcl-babel)))
1929 (native-inputs
1930 `(("prove" ,sbcl-prove)
1931 ("prove-asdf" ,sbcl-prove-asdf)))
1932 (arguments
1933 ;; TODO: Tests don't find "proc-parse-test", why?
1934 `(#:tests? #f))
1935 (synopsis "Parse a floating point value from a string in Common Lisp")
1936 (description
1937 "This package exports the following function to parse floating-point
1938 values from a string in Common Lisp.")
1939 (home-page "https://github.com/soemraws/parse-float")
1940 (license license:public-domain))))
1941
1942 (define-public cl-parse-float
1943 (sbcl-package->cl-source-package sbcl-parse-float))
1944
1945 (define-public ecl-parse-float
1946 (sbcl-package->ecl-package sbcl-parse-float))
1947
1948 (define-public sbcl-ascii-strings
1949 (let ((revision "1")
1950 (changeset "5048480a61243e6f1b02884012c8f25cdbee6d97"))
1951 (package
1952 (name "sbcl-ascii-strings")
1953 (version (string-append "0-" revision "." (string-take changeset 7)))
1954 (source
1955 (origin
1956 (method hg-fetch)
1957 (uri (hg-reference
1958 (url "https://bitbucket.org/vityok/cl-string-match/")
1959 (changeset changeset)))
1960 (sha256
1961 (base32
1962 "01wn5qx562w43ssy92xlfgv79w7p0nv0wbl76mpmba131n9ziq2y"))
1963 (file-name (git-file-name "cl-string-match" version))))
1964 (build-system asdf-build-system/sbcl)
1965 (inputs
1966 `(("alexandria" ,sbcl-alexandria)
1967 ("babel" ,sbcl-babel)))
1968 (arguments
1969 `(#:asd-file "ascii-strings.asd"))
1970 (synopsis "Operations on ASCII strings")
1971 (description
1972 "Operations on ASCII strings. Essentially this can be any kind of
1973 single-byte encoded strings.")
1974 (home-page "https://bitbucket.org/vityok/cl-string-match/")
1975 (license license:bsd-3))))
1976
1977 (define-public cl-ascii-strings
1978 (sbcl-package->cl-source-package sbcl-ascii-strings))
1979
1980 (define-public ecl-ascii-strings
1981 (sbcl-package->ecl-package sbcl-ascii-strings))
1982
1983 (define-public sbcl-simple-scanf
1984 (package
1985 (inherit sbcl-ascii-strings)
1986 (name "sbcl-simple-scanf")
1987 (inputs
1988 `(("alexandria" ,sbcl-alexandria)
1989 ("iterate" ,sbcl-iterate)
1990 ("proc-parse" ,sbcl-proc-parse)
1991 ("parse-float" ,sbcl-parse-float)))
1992 (arguments
1993 `(#:asd-file "simple-scanf.asd"))
1994 (synopsis "Simple scanf-like functionality implementation")
1995 (description
1996 "A simple scanf-like functionality implementation.")))
1997
1998 (define-public cl-simple-scanf
1999 (sbcl-package->cl-source-package sbcl-simple-scanf))
2000
2001 (define-public ecl-simple-scanf
2002 (sbcl-package->ecl-package sbcl-simple-scanf))
2003
2004 (define-public sbcl-cl-string-match
2005 (package
2006 (inherit sbcl-ascii-strings)
2007 (name "sbcl-cl-string-match")
2008 (inputs
2009 `(("alexandria" ,sbcl-alexandria)
2010 ("ascii-strings" ,sbcl-ascii-strings)
2011 ("yacc" ,sbcl-cl-yacc)
2012 ("jpl-util" ,sbcl-jpl-util)
2013 ("jpl-queues" ,sbcl-jpl-queues)
2014 ("mgl-pax" ,sbcl-mgl-pax)
2015 ("iterate" ,sbcl-iterate)))
2016 ;; TODO: Tests are not evaluated properly.
2017 (native-inputs
2018 ;; For testing:
2019 `(("lisp-unit" ,sbcl-lisp-unit)
2020 ("simple-scanf" ,sbcl-simple-scanf)))
2021 (arguments
2022 `(#:tests? #f
2023 #:asd-file "cl-string-match.asd"))
2024 (synopsis "Portable, dependency-free set of utilities to manipulate strings in Common Lisp")
2025 (description
2026 "@command{cl-strings} is a small, portable, dependency-free set of
2027 utilities that make it even easier to manipulate text in Common Lisp. It has
2028 100% test coverage and works at least on sbcl, ecl, ccl, abcl and clisp.")))
2029
2030 (define-public cl-string-match
2031 (sbcl-package->cl-source-package sbcl-cl-string-match))
2032
2033 (define-public ecl-cl-string-match
2034 (sbcl-package->ecl-package sbcl-cl-string-match))
2035
2036 (define-public sbcl-ptester
2037 (package
2038 (name "sbcl-ptester")
2039 (version "20160929")
2040 (source
2041 (origin
2042 (method url-fetch)
2043 (uri (string-append "http://beta.quicklisp.org/archive/ptester/"
2044 (date->string (string->date version "~Y~m~d") "~Y-~m-~d")
2045 "/ptester-"
2046 version
2047 "-git.tgz"))
2048 (sha256
2049 (base32
2050 "04rlq1zljhxc65pm31bah3sq3as24l0sdivz440s79qlnnyh13hz"))))
2051 (build-system asdf-build-system/sbcl)
2052 (home-page "http://quickdocs.org/ptester/")
2053 (synopsis "Portable test harness package")
2054 (description
2055 "@command{ptester} is a portable testing framework based on Franz's
2056 tester module.")
2057 (license license:lgpl3+)))
2058
2059 (define-public cl-ptester
2060 (sbcl-package->cl-source-package sbcl-ptester))
2061
2062 (define-public ecl-ptester
2063 (sbcl-package->ecl-package sbcl-ptester))
2064
2065 (define-public sbcl-puri
2066 (package
2067 (name "sbcl-puri")
2068 (version "20180228")
2069 (source
2070 (origin
2071 (method url-fetch)
2072 (uri (string-append "http://beta.quicklisp.org/archive/puri/"
2073 (date->string (string->date version "~Y~m~d") "~Y-~m-~d")
2074 "/puri-"
2075 version
2076 "-git.tgz"))
2077 (sha256
2078 (base32
2079 "1s4r5adrjy5asry45xbcbklxhdjydvf6n55z897nvyw33bigrnbz"))))
2080 (build-system asdf-build-system/sbcl)
2081 ;; REVIEW: Webiste down?
2082 (native-inputs
2083 `(("ptester" ,sbcl-ptester)))
2084 (home-page "http://files.kpe.io/puri/")
2085 (synopsis "Portable URI Library")
2086 (description
2087 "This is portable Universal Resource Identifier library for Common Lisp
2088 programs. It parses URI according to the RFC 2396 specification")
2089 (license license:lgpl3+)))
2090
2091 (define-public cl-puri
2092 (sbcl-package->cl-source-package sbcl-puri))
2093
2094 (define-public ecl-puri
2095 (sbcl-package->ecl-package sbcl-puri))
2096
2097 (define-public sbcl-queues
2098 (let ((commit "47d4da65e9ea20953b74aeeab7e89a831b66bc94"))
2099 (package
2100 (name "sbcl-queues")
2101 (version (git-version "0.0.0" "1" commit))
2102 (source
2103 (origin
2104 (method git-fetch)
2105 (uri (git-reference
2106 (url "https://github.com/oconnore/queues")
2107 (commit commit)))
2108 (file-name (git-file-name "queues" version))
2109 (sha256
2110 (base32
2111 "0wdhfnzi4v6d97pggzj2aw55si94w4327br94jrmyvwf351wqjvv"))))
2112 (build-system asdf-build-system/sbcl)
2113 (home-page "https://github.com/oconnore/queues")
2114 (synopsis "Common Lisp queue library")
2115 (description
2116 "This is a simple queue library for Common Lisp with features such as
2117 non-consing thread safe queues and fibonacci priority queues.")
2118 (license license:expat))))
2119
2120 (define-public cl-queues
2121 (sbcl-package->cl-source-package sbcl-queues))
2122
2123 (define-public ecl-queues
2124 (sbcl-package->ecl-package sbcl-queues))
2125
2126 (define-public sbcl-queues.simple-queue
2127 (package
2128 (inherit sbcl-queues)
2129 (name "sbcl-queues.simple-queue")
2130 (inputs
2131 `(("sbcl-queues" ,sbcl-queues)))
2132 (arguments
2133 `(#:asd-file "queues.simple-queue.asd"))
2134 (synopsis "Simple queue implementation")
2135 (description
2136 "This is a simple queue library for Common Lisp with features such as
2137 non-consing thread safe queues and fibonacci priority queues.")
2138 (license license:expat)))
2139
2140 (define-public cl-queues.simple-queue
2141 (sbcl-package->cl-source-package sbcl-queues.simple-queue))
2142
2143 (define-public ecl-queues.simple-queue
2144 (sbcl-package->ecl-package sbcl-queues.simple-queue))
2145
2146 (define-public sbcl-queues.simple-cqueue
2147 (package
2148 (inherit sbcl-queues)
2149 (name "sbcl-queues.simple-cqueue")
2150 (inputs
2151 `(("sbcl-queues" ,sbcl-queues)
2152 ("sbcl-queues.simple-queue" ,sbcl-queues.simple-queue)
2153 ("bordeaux-threads" ,sbcl-bordeaux-threads)))
2154 (arguments
2155 `(#:asd-file "queues.simple-cqueue.asd"))
2156 (synopsis "Thread safe queue implementation")
2157 (description
2158 "This is a simple queue library for Common Lisp with features such as
2159 non-consing thread safe queues and fibonacci priority queues.")
2160 (license license:expat)))
2161
2162 (define-public cl-queues.simple-cqueue
2163 (sbcl-package->cl-source-package sbcl-queues.simple-cqueue))
2164
2165 (define-public ecl-queues.simple-cqueue
2166 (sbcl-package->ecl-package sbcl-queues.simple-cqueue))
2167
2168 (define-public sbcl-queues.priority-queue
2169 (package
2170 (inherit sbcl-queues)
2171 (name "sbcl-queues.priority-queue")
2172 (inputs
2173 `(("sbcl-queues" ,sbcl-queues)))
2174 (arguments
2175 `(#:asd-file "queues.priority-queue.asd"))
2176 (synopsis "Priority queue (Fibonacci) implementation")
2177 (description
2178 "This is a simple queue library for Common Lisp with features such as
2179 non-consing thread safe queues and fibonacci priority queues.")
2180 (license license:expat)))
2181
2182 (define-public cl-queues.priority-queue
2183 (sbcl-package->cl-source-package sbcl-queues.priority-queue))
2184
2185 (define-public ecl-queues.priority-queue
2186 (sbcl-package->ecl-package sbcl-queues.priority-queue))
2187
2188 (define-public sbcl-queues.priority-cqueue
2189 (package
2190 (inherit sbcl-queues)
2191 (name "sbcl-queues.priority-cqueue")
2192 (inputs
2193 `(("sbcl-queues" ,sbcl-queues)
2194 ("sbcl-queues.priority-queue" ,sbcl-queues.priority-queue)
2195 ("bordeaux-threads" ,sbcl-bordeaux-threads)))
2196 (arguments
2197 `(#:asd-file "queues.priority-cqueue.asd"))
2198 (synopsis "Thread safe fibonacci priority queue implementation")
2199 (description
2200 "This is a simple queue library for Common Lisp with features such as
2201 non-consing thread safe queues and fibonacci priority queues.")
2202 (license license:expat)))
2203
2204 (define-public cl-queues.priority-cqueue
2205 (sbcl-package->cl-source-package sbcl-queues.priority-cqueue))
2206
2207 (define-public ecl-queues.priority-cqueue
2208 (sbcl-package->ecl-package sbcl-queues.priority-cqueue))
2209
2210 (define sbcl-cffi-bootstrap
2211 (package
2212 (name "sbcl-cffi-bootstrap")
2213 (version "0.20.1")
2214 (source
2215 (origin
2216 (method git-fetch)
2217 (uri (git-reference
2218 (url "https://github.com/cffi/cffi.git")
2219 (commit (string-append "v" version))))
2220 (file-name (git-file-name "cffi-bootstrap" version))
2221 (sha256
2222 (base32 "1bzgdwd5yzkv9hwnxg6lqyh5z1vjgjyrl12c72afj7hxziadccm8"))))
2223 (build-system asdf-build-system/sbcl)
2224 (inputs
2225 `(("libffi" ,libffi)
2226 ("alexandria" ,sbcl-alexandria)
2227 ("babel" ,sbcl-babel)
2228 ("trivial-features" ,sbcl-trivial-features)))
2229 (native-inputs
2230 `(("pkg-config" ,pkg-config)))
2231 (arguments
2232 '(#:phases
2233 (modify-phases %standard-phases
2234 (add-after 'unpack 'fix-paths
2235 (lambda* (#:key inputs #:allow-other-keys)
2236 (substitute* "libffi/libffi.lisp"
2237 (("libffi.so.7" all) (string-append
2238 (assoc-ref inputs "libffi")
2239 "/lib/" all)))
2240 (substitute* "toolchain/c-toolchain.lisp"
2241 (("\"cc\"") (format #f "~S" (which "gcc")))))))
2242 #:asd-system-name "cffi"
2243 #:tests? #f))
2244 (home-page "https://common-lisp.net/project/cffi/")
2245 (synopsis "Common Foreign Function Interface for Common Lisp")
2246 (description "The Common Foreign Function Interface (CFFI)
2247 purports to be a portable foreign function interface for Common Lisp.
2248 The CFFI library is composed of a Lisp-implementation-specific backend
2249 in the CFFI-SYS package, and a portable frontend in the CFFI
2250 package.")
2251 (license license:expat)))
2252
2253 (define-public sbcl-cffi-toolchain
2254 (package
2255 (inherit sbcl-cffi-bootstrap)
2256 (name "sbcl-cffi-toolchain")
2257 (inputs
2258 `(("libffi" ,libffi)
2259 ("sbcl-cffi" ,sbcl-cffi-bootstrap)))
2260 (arguments
2261 (substitute-keyword-arguments (package-arguments sbcl-cffi-bootstrap)
2262 ((#:asd-system-name _) #f)
2263 ((#:tests? _) #t)))))
2264
2265 (define-public sbcl-cffi-libffi
2266 (package
2267 (inherit sbcl-cffi-toolchain)
2268 (name "sbcl-cffi-libffi")
2269 (inputs
2270 `(("cffi" ,sbcl-cffi-bootstrap)
2271 ("cffi-grovel" ,sbcl-cffi-grovel)
2272 ("trivial-features" ,sbcl-trivial-features)
2273 ("libffi" ,libffi)))))
2274
2275 (define-public sbcl-cffi-grovel
2276 (package
2277 (inherit sbcl-cffi-toolchain)
2278 (name "sbcl-cffi-grovel")
2279 (inputs
2280 `(("libffi" ,libffi)
2281 ("cffi" ,sbcl-cffi-bootstrap)
2282 ("cffi-toolchain" ,sbcl-cffi-toolchain)
2283 ("alexandria" ,sbcl-alexandria)))
2284 (arguments
2285 (substitute-keyword-arguments (package-arguments sbcl-cffi-toolchain)
2286 ((#:phases phases)
2287 `(modify-phases ,phases
2288 (add-after 'build 'install-headers
2289 (lambda* (#:key outputs #:allow-other-keys)
2290 (install-file "grovel/common.h"
2291 (string-append
2292 (assoc-ref outputs "out")
2293 "/include/grovel"))))))))))
2294
2295 (define-public sbcl-cffi
2296 (package
2297 (inherit sbcl-cffi-toolchain)
2298 (name "sbcl-cffi")
2299 (inputs (package-inputs sbcl-cffi-bootstrap))
2300 (native-inputs
2301 `(("cffi-grovel" ,sbcl-cffi-grovel)
2302 ("cffi-libffi" ,sbcl-cffi-libffi)
2303 ("rt" ,sbcl-rt)
2304 ("bordeaux-threads" ,sbcl-bordeaux-threads)
2305 ,@(package-native-inputs sbcl-cffi-bootstrap)))))
2306
2307 (define-public cl-cffi
2308 (sbcl-package->cl-source-package sbcl-cffi))
2309
2310 (define-public sbcl-cl-sqlite
2311 (let ((commit "c738e66d4266ef63a1debc4ef4a1b871a068c112"))
2312 (package
2313 (name "sbcl-cl-sqlite")
2314 (version (git-version "0.2" "1" commit))
2315 (source
2316 (origin
2317 (method git-fetch)
2318 (uri (git-reference
2319 (url "https://github.com/dmitryvk/cl-sqlite")
2320 (commit commit)))
2321 (file-name (git-file-name "cl-sqlite" version))
2322 (sha256
2323 (base32
2324 "1ng45k1hdb84sqjryrfx93g66bsbybmpy301wd0fdybnc5jzr36q"))))
2325 (build-system asdf-build-system/sbcl)
2326 (inputs
2327 `(("iterate" ,sbcl-iterate)
2328 ("cffi" ,sbcl-cffi)
2329 ("sqlite" ,sqlite)))
2330 (native-inputs
2331 `(("fiveam" ,sbcl-fiveam)
2332 ("bordeaux-threads" ,sbcl-bordeaux-threads)))
2333 (arguments
2334 `(#:tests? #f ; Upstream seems to have issues with tests: https://github.com/dmitryvk/cl-sqlite/issues/7
2335 #:asd-file "sqlite.asd"
2336 #:asd-system-name "sqlite"
2337 #:phases
2338 (modify-phases %standard-phases
2339 (add-after 'unpack 'fix-paths
2340 (lambda* (#:key inputs #:allow-other-keys)
2341 (substitute* "sqlite-ffi.lisp"
2342 (("libsqlite3" all) (string-append
2343 (assoc-ref inputs "sqlite")"/lib/" all))))))))
2344 (home-page "https://common-lisp.net/project/cl-sqlite/")
2345 (synopsis "Common Lisp binding for SQLite")
2346 (description
2347 "The @command{cl-sqlite} package is an interface to the SQLite embedded
2348 relational database engine.")
2349 (license license:public-domain))))
2350
2351 (define-public cl-sqlite
2352 (sbcl-package->cl-source-package sbcl-cl-sqlite))
2353
2354 (define-public sbcl-parenscript
2355 (let ((commit "061d8e286c81c3f45c84fb2b11ee7d83f590a8f8"))
2356 (package
2357 (name "sbcl-parenscript")
2358 (version (git-version "2.6" "1" commit))
2359 (source
2360 (origin
2361 (method git-fetch)
2362 (uri (git-reference
2363 (url "https://gitlab.common-lisp.net/parenscript/parenscript")
2364 (commit commit)))
2365 (file-name (git-file-name "parenscript" version))
2366 (sha256
2367 (base32
2368 "1kbhgsjbikc73m5cwdp4d4fdafyqcr1b7b630qjrziql0nh6mi3k"))))
2369 (build-system asdf-build-system/sbcl)
2370 (inputs
2371 `(("cl-ppcre" ,sbcl-cl-ppcre)
2372 ("anaphora" ,sbcl-anaphora)
2373 ("named-readtables" ,sbcl-named-readtables)))
2374 (home-page "https://common-lisp.net/project/parenscript/")
2375 (synopsis "Translator from a subset of Common Lisp to JavaScript")
2376 (description
2377 "Parenscript is a translator from an extended subset of Common Lisp to
2378 JavaScript. Parenscript code can run almost identically on both the
2379 browser (as JavaScript) and server (as Common Lisp).
2380
2381 Parenscript code is treated the same way as Common Lisp code, making the full
2382 power of Lisp macros available for JavaScript. This provides a web
2383 development environment that is unmatched in its ability to reduce code
2384 duplication and provide advanced meta-programming facilities to web
2385 developers.
2386
2387 At the same time, Parenscript is different from almost all other \"language
2388 X\" to JavaScript translators in that it imposes almost no overhead:
2389
2390 @itemize
2391 @item No run-time dependencies: Any piece of Parenscript code is runnable
2392 as-is. There are no JavaScript files to include.
2393 @item Native types: Parenscript works entirely with native JavaScript data
2394 types. There are no new types introduced, and object prototypes are not
2395 touched.
2396 @item Native calling convention: Any JavaScript code can be called without the
2397 need for bindings. Likewise, Parenscript can be used to make efficient,
2398 self-contained JavaScript libraries.
2399 @item Readable code: Parenscript generates concise, formatted, idiomatic
2400 JavaScript code. Identifier names are preserved. This enables seamless
2401 debugging in tools like Firebug.
2402 @item Efficiency: Parenscript introduces minimal overhead for advanced Common
2403 Lisp features. The generated code is almost as fast as hand-written
2404 JavaScript.
2405 @end itemize\n")
2406 (license license:bsd-3))))
2407
2408 (define-public cl-parenscript
2409 (sbcl-package->cl-source-package sbcl-parenscript))
2410
2411 (define-public ecl-parenscript
2412 (sbcl-package->ecl-package sbcl-parenscript))
2413
2414 (define-public sbcl-cl-json
2415 (let ((commit "6dfebb9540bfc3cc33582d0c03c9ec27cb913e79"))
2416 (package
2417 (name "sbcl-cl-json")
2418 (version (git-version "0.5" "1" commit))
2419 (source
2420 (origin
2421 (method git-fetch)
2422 (uri (git-reference
2423 (url "https://github.com/hankhero/cl-json")
2424 (commit commit)))
2425 (file-name (git-file-name "cl-json" version))
2426 (sha256
2427 (base32
2428 "0fx3m3x3s5ji950yzpazz4s0img3l6b3d6l3jrfjv0lr702496lh"))))
2429 (build-system asdf-build-system/sbcl)
2430 (native-inputs
2431 `(("fiveam" ,sbcl-fiveam)))
2432 (home-page "https://github.com/hankhero/cl-json")
2433 (synopsis "JSON encoder and decoder for Common-Lisp")
2434 (description
2435 "@command{cl-json} provides an encoder of Lisp objects to JSON format
2436 and a corresponding decoder of JSON data to Lisp objects. Both the encoder
2437 and the decoder are highly customizable; at the same time, the default
2438 settings ensure a very simple mode of operation, similar to that provided by
2439 @command{yason} or @command{st-json}.")
2440 (license license:expat))))
2441
2442 (define-public cl-json
2443 (sbcl-package->cl-source-package sbcl-cl-json))
2444
2445 (define-public ecl-cl-json
2446 (sbcl-package->ecl-package sbcl-cl-json))
2447
2448 (define-public sbcl-unix-opts
2449 (package
2450 (name "sbcl-unix-opts")
2451 (version "0.1.7")
2452 (source
2453 (origin
2454 (method git-fetch)
2455 (uri (git-reference
2456 (url "https://github.com/libre-man/unix-opts")
2457 (commit version)))
2458 (file-name (git-file-name "unix-opts" version))
2459 (sha256
2460 (base32
2461 "08djdi1ard09fijb7w9bdmhmwd98b1hzmcnjw9fqjiqa0g3b44rr"))))
2462 (build-system asdf-build-system/sbcl)
2463 (home-page "https://github.com/hankhero/cl-json")
2464 (synopsis "Unix-style command line options parser")
2465 (description
2466 "This is a minimalistic parser of command line options. The main
2467 advantage of the library is the ability to concisely define command line
2468 options once and then use this definition for parsing and extraction of
2469 command line arguments, as well as printing description of command line
2470 options (you get --help for free). This way you don't need to repeat
2471 yourself. Also, @command{unix-opts} doesn't depend on anything and allows to
2472 precisely control behavior of the parser via Common Lisp restarts.")
2473 (license license:expat)))
2474
2475 (define-public cl-unix-opts
2476 (sbcl-package->cl-source-package sbcl-unix-opts))
2477
2478 (define-public ecl-unix-opts
2479 (sbcl-package->ecl-package sbcl-unix-opts))
2480
2481 (define-public sbcl-trivial-garbage
2482 (package
2483 (name "sbcl-trivial-garbage")
2484 (version "0.21")
2485 (source
2486 (origin
2487 (method git-fetch)
2488 (uri (git-reference
2489 (url "https://github.com/trivial-garbage/trivial-garbage.git")
2490 (commit (string-append "v" version))))
2491 (file-name (git-file-name "trivial-garbage" version))
2492 (sha256
2493 (base32 "0122jicfg7pca1wxw8zak1n92h5friqy60988ns0ysksj3fphw9n"))))
2494 (build-system asdf-build-system/sbcl)
2495 (native-inputs
2496 `(("rt" ,sbcl-rt)))
2497 (home-page "https://common-lisp.net/project/trivial-garbage/")
2498 (synopsis "Portable GC-related APIs for Common Lisp")
2499 (description "@command{trivial-garbage} provides a portable API to
2500 finalizers, weak hash-tables and weak pointers on all major implementations of
2501 the Common Lisp programming language.")
2502 (license license:public-domain)))
2503
2504 (define-public cl-trivial-garbage
2505 (sbcl-package->cl-source-package sbcl-trivial-garbage))
2506
2507 (define-public ecl-trivial-garbage
2508 (sbcl-package->ecl-package sbcl-trivial-garbage))
2509
2510 (define-public sbcl-closer-mop
2511 (let ((commit "fac29ce90e3a46e1fc6cf182190e193526fa9dbc"))
2512 (package
2513 (name "sbcl-closer-mop")
2514 (version (git-version "1.0.0" "1" commit))
2515 (source
2516 (origin
2517 (method git-fetch)
2518 (uri (git-reference
2519 (url "https://github.com/pcostanza/closer-mop")
2520 (commit commit)))
2521 (sha256
2522 (base32 "0hvh77y869h8fg9di5snyg85fxq6fdh9gj1igmx1g6j6j5x915dl"))
2523 (file-name (git-file-name "closer-mop" version ))))
2524 (build-system asdf-build-system/sbcl)
2525 (home-page "https://github.com/pcostanza/closer-mop")
2526 (synopsis "Rectifies absent or incorrect CLOS MOP features")
2527 (description "Closer to MOP is a compatibility layer that rectifies many
2528 of the absent or incorrect CLOS MOP features across a broad range of Common
2529 Lisp implementations.")
2530 (license license:expat))))
2531
2532 (define-public cl-closer-mop
2533 (sbcl-package->cl-source-package sbcl-closer-mop))
2534
2535 (define-public ecl-closer-mop
2536 (sbcl-package->ecl-package sbcl-closer-mop))
2537
2538 (define sbcl-cl-cffi-gtk-boot0
2539 (let ((commit "29443c5aaca975709df8025c4649366d882033cb"))
2540 (package
2541 (name "sbcl-cl-cffi-gtk-boot0")
2542 (version (git-version "0.11.2" "1" commit))
2543 (source
2544 (origin
2545 (method git-fetch)
2546 (uri (git-reference
2547 (url "https://github.com/Ferada/cl-cffi-gtk/")
2548 (commit commit)))
2549 (file-name (git-file-name "cl-cffi-gtk" version))
2550 (sha256
2551 (base32
2552 "0f6s92sf8xyzh1yksqx8bsy1sv0zmy0c13j3b8bavaba5hlxpxah"))))
2553 (build-system asdf-build-system/sbcl)
2554 (inputs
2555 `(("iterate" ,sbcl-iterate)
2556 ("cffi" ,sbcl-cffi)
2557 ("trivial-features" ,sbcl-trivial-features)))
2558 (home-page "https://github.com/Ferada/cl-cffi-gtk/")
2559 (synopsis "Common Lisp binding for GTK+3")
2560 (description
2561 "@command{cl-cffi-gtk} is a Lisp binding to GTK+ 3 (GIMP Toolkit) which
2562 is a library for creating graphical user interfaces.")
2563 (license license:lgpl3))))
2564
2565 (define-public sbcl-cl-cffi-gtk-glib
2566 (package
2567 (inherit sbcl-cl-cffi-gtk-boot0)
2568 (name "sbcl-cl-cffi-gtk-glib")
2569 (inputs
2570 `(("glib" ,glib)
2571 ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
2572 (arguments
2573 `(#:asd-file "glib/cl-cffi-gtk-glib.asd"
2574 #:phases
2575 (modify-phases %standard-phases
2576 (add-after 'unpack 'fix-paths
2577 (lambda* (#:key inputs #:allow-other-keys)
2578 (substitute* "glib/glib.init.lisp"
2579 (("libglib|libgthread" all) (string-append
2580 (assoc-ref inputs "glib") "/lib/" all))))))))))
2581
2582 (define-public sbcl-cl-cffi-gtk-gobject
2583 (package
2584 (inherit sbcl-cl-cffi-gtk-boot0)
2585 (name "sbcl-cl-cffi-gtk-gobject")
2586 (inputs
2587 `(("glib" ,glib)
2588 ("cl-cffi-gtk-glib" ,sbcl-cl-cffi-gtk-glib)
2589 ("trivial-garbage" ,sbcl-trivial-garbage)
2590 ("bordeaux-threads" ,sbcl-bordeaux-threads)
2591 ("closer-mop" ,sbcl-closer-mop)
2592 ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
2593 (arguments
2594 `(#:asd-file "gobject/cl-cffi-gtk-gobject.asd"
2595 #:phases
2596 (modify-phases %standard-phases
2597 (add-after 'unpack 'fix-paths
2598 (lambda* (#:key inputs #:allow-other-keys)
2599 (substitute* "gobject/gobject.init.lisp"
2600 (("libgobject" all) (string-append
2601 (assoc-ref inputs "glib") "/lib/" all))))))))))
2602
2603 (define-public sbcl-cl-cffi-gtk-gio
2604 (package
2605 (inherit sbcl-cl-cffi-gtk-boot0)
2606 (name "sbcl-cl-cffi-gtk-gio")
2607 (inputs
2608 `(("glib" ,glib)
2609 ("cl-cffi-gtk-glib" ,sbcl-cl-cffi-gtk-glib)
2610 ("cl-cffi-gtk-gobject" ,sbcl-cl-cffi-gtk-gobject)
2611 ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
2612 (arguments
2613 `(#:asd-file "gio/cl-cffi-gtk-gio.asd"
2614 #:phases
2615 (modify-phases %standard-phases
2616 (add-after 'unpack 'fix-paths
2617 (lambda* (#:key inputs #:allow-other-keys)
2618 (substitute* "gio/gio.init.lisp"
2619 (("libgio" all)
2620 (string-append
2621 (assoc-ref inputs "glib") "/lib/" all))))))))))
2622
2623 (define-public sbcl-cl-cffi-gtk-cairo
2624 (package
2625 (inherit sbcl-cl-cffi-gtk-boot0)
2626 (name "sbcl-cl-cffi-gtk-cairo")
2627 (inputs
2628 `(("cairo" ,cairo)
2629 ("cl-cffi-gtk-glib" ,sbcl-cl-cffi-gtk-glib)
2630 ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
2631 (arguments
2632 `(#:asd-file "cairo/cl-cffi-gtk-cairo.asd"
2633 #:phases
2634 (modify-phases %standard-phases
2635 (add-after 'unpack 'fix-paths
2636 (lambda* (#:key inputs #:allow-other-keys)
2637 (substitute* "cairo/cairo.init.lisp"
2638 (("libcairo" all)
2639 (string-append
2640 (assoc-ref inputs "cairo") "/lib/" all))))))))))
2641
2642 (define-public sbcl-cl-cffi-gtk-pango
2643 (package
2644 (inherit sbcl-cl-cffi-gtk-boot0)
2645 (name "sbcl-cl-cffi-gtk-pango")
2646 (inputs
2647 `(("pango" ,pango)
2648 ("cl-cffi-gtk-glib" ,sbcl-cl-cffi-gtk-glib)
2649 ("cl-cffi-gtk-gobject" ,sbcl-cl-cffi-gtk-gobject)
2650 ("cl-cffi-gtk-cairo" ,sbcl-cl-cffi-gtk-cairo)
2651 ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
2652 (arguments
2653 `(#:asd-file "pango/cl-cffi-gtk-pango.asd"
2654 #:phases
2655 (modify-phases %standard-phases
2656 (add-after 'unpack 'fix-paths
2657 (lambda* (#:key inputs #:allow-other-keys)
2658 (substitute* "pango/pango.init.lisp"
2659 (("libpango" all)
2660 (string-append
2661 (assoc-ref inputs "pango") "/lib/" all))))))))))
2662
2663 (define-public sbcl-cl-cffi-gtk-gdk-pixbuf
2664 (package
2665 (inherit sbcl-cl-cffi-gtk-boot0)
2666 (name "sbcl-cl-cffi-gtk-gdk-pixbuf")
2667 (inputs
2668 `(("gdk-pixbuf" ,gdk-pixbuf)
2669 ("cl-cffi-gtk-gobject" ,sbcl-cl-cffi-gtk-gobject)
2670 ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
2671 (arguments
2672 `(#:asd-file "gdk-pixbuf/cl-cffi-gtk-gdk-pixbuf.asd"
2673 #:phases
2674 (modify-phases %standard-phases
2675 (add-after 'unpack 'fix-paths
2676 (lambda* (#:key inputs #:allow-other-keys)
2677 (substitute* "gdk-pixbuf/gdk-pixbuf.init.lisp"
2678 (("libgdk_pixbuf" all)
2679 (string-append
2680 (assoc-ref inputs "gdk-pixbuf") "/lib/" all))))))))))
2681
2682 (define-public sbcl-cl-cffi-gtk-gdk
2683 (package
2684 (inherit sbcl-cl-cffi-gtk-boot0)
2685 (name "sbcl-cl-cffi-gtk-gdk")
2686 (inputs
2687 `(("gtk" ,gtk+)
2688 ("cl-cffi-gtk-gobject" ,sbcl-cl-cffi-gtk-gobject)
2689 ("cl-cffi-gtk-gio" ,sbcl-cl-cffi-gtk-gio)
2690 ("cl-cffi-gtk-gdk-pixbuf" ,sbcl-cl-cffi-gtk-gdk-pixbuf)
2691 ("cl-cffi-gtk-cairo" ,sbcl-cl-cffi-gtk-cairo)
2692 ("cl-cffi-gtk-pango" ,sbcl-cl-cffi-gtk-pango)
2693 ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
2694 (arguments
2695 `(#:asd-file "gdk/cl-cffi-gtk-gdk.asd"
2696 #:phases
2697 (modify-phases %standard-phases
2698 (add-after 'unpack 'fix-paths
2699 (lambda* (#:key inputs #:allow-other-keys)
2700 (substitute* "gdk/gdk.init.lisp"
2701 (("libgdk" all)
2702 (string-append
2703 (assoc-ref inputs "gtk") "/lib/" all)))
2704 (substitute* "gdk/gdk.package.lisp"
2705 (("libgtk" all)
2706 (string-append
2707 (assoc-ref inputs "gtk") "/lib/" all))))))))))
2708
2709 (define-public sbcl-cl-cffi-gtk
2710 (package
2711 (inherit sbcl-cl-cffi-gtk-boot0)
2712 (name "sbcl-cl-cffi-gtk")
2713 (inputs
2714 `(("cl-cffi-gtk-glib" ,sbcl-cl-cffi-gtk-glib)
2715 ("cl-cffi-gtk-gobject" ,sbcl-cl-cffi-gtk-gobject)
2716 ("cl-cffi-gtk-gio" ,sbcl-cl-cffi-gtk-gio)
2717 ("cl-cffi-gtk-gdk" ,sbcl-cl-cffi-gtk-gdk)
2718 ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
2719 (native-inputs
2720 `(("fiveam" ,sbcl-fiveam)))
2721 (arguments
2722 `(#:asd-file "gtk/cl-cffi-gtk.asd"
2723 #:test-asd-file "test/cl-cffi-gtk-test.asd"
2724 ;; TODO: Tests fail with memory fault.
2725 ;; See https://github.com/Ferada/cl-cffi-gtk/issues/24.
2726 #:tests? #f))))
2727
2728 (define-public cl-cffi-gtk
2729 (sbcl-package->cl-source-package sbcl-cl-cffi-gtk))
2730
2731 (define-public sbcl-cl-webkit
2732 (let ((commit "cd2a9008e0c152e54755e8a7f07b050fe36bab31"))
2733 (package
2734 (name "sbcl-cl-webkit")
2735 (version (git-version "2.4" "1" commit))
2736 (source
2737 (origin
2738 (method git-fetch)
2739 (uri (git-reference
2740 (url "https://github.com/jmercouris/cl-webkit")
2741 (commit commit)))
2742 (file-name (git-file-name "cl-webkit" version))
2743 (sha256
2744 (base32
2745 "0f5lyn9i7xrn3g1bddga377mcbawkbxydijpg389q4n04gqj0vwf"))))
2746 (build-system asdf-build-system/sbcl)
2747 (inputs
2748 `(("cffi" ,sbcl-cffi)
2749 ("cl-cffi-gtk" ,sbcl-cl-cffi-gtk)
2750 ("webkitgtk" ,webkitgtk)))
2751 (arguments
2752 `(#:asd-file "webkit2/cl-webkit2.asd"
2753 #:asd-system-name "cl-webkit2"
2754 #:phases
2755 (modify-phases %standard-phases
2756 (add-after 'unpack 'fix-paths
2757 (lambda* (#:key inputs #:allow-other-keys)
2758 (substitute* "webkit2/webkit2.init.lisp"
2759 (("libwebkit2gtk" all)
2760 (string-append
2761 (assoc-ref inputs "webkitgtk") "/lib/" all))))))))
2762 (home-page "https://github.com/jmercouris/cl-webkit")
2763 (synopsis "Binding to WebKitGTK+ for Common Lisp")
2764 (description
2765 "@command{cl-webkit} is a binding to WebKitGTK+ for Common Lisp,
2766 currently targeting WebKit version 2. The WebKitGTK+ library adds web
2767 browsing capabilities to an application, leveraging the full power of the
2768 WebKit browsing engine.")
2769 (license license:expat))))
2770
2771 (define-public cl-webkit
2772 (sbcl-package->cl-source-package sbcl-cl-webkit))
2773
2774 (define-public sbcl-lparallel
2775 (package
2776 (name "sbcl-lparallel")
2777 (version "2.8.4")
2778 (source
2779 (origin
2780 (method git-fetch)
2781 (uri (git-reference
2782 (url "https://github.com/lmj/lparallel/")
2783 (commit (string-append "lparallel-" version))))
2784 (file-name (git-file-name "lparallel" version))
2785 (sha256
2786 (base32
2787 "0g0aylrbbrqsz0ahmwhvnk4cmc2931fllbpcfgzsprwnqqd7vwq9"))))
2788 (build-system asdf-build-system/sbcl)
2789 (inputs
2790 `(("alexandria" ,sbcl-alexandria)
2791 ("bordeaux-threads" ,sbcl-bordeaux-threads)
2792 ("trivial-garbage" ,sbcl-trivial-garbage)))
2793 (home-page "https://lparallel.org/")
2794 (synopsis "Parallelism for Common Lisp")
2795 (description
2796 "@command{lparallel} is a library for parallel programming in Common
2797 Lisp, featuring:
2798
2799 @itemize
2800 @item a simple model of task submission with receiving queue,
2801 @item constructs for expressing fine-grained parallelism,
2802 @item asynchronous condition handling across thread boundaries,
2803 @item parallel versions of map, reduce, sort, remove, and many others,
2804 @item promises, futures, and delayed evaluation constructs,
2805 @item computation trees for parallelizing interconnected tasks,
2806 @item bounded and unbounded FIFO queues,
2807 @item high and low priority tasks,
2808 @item task killing by category,
2809 @item integrated timeouts.
2810 @end itemize\n")
2811 (license license:expat)))
2812
2813 (define-public cl-lparallel
2814 (sbcl-package->cl-source-package sbcl-lparallel))
2815
2816 (define-public ecl-lparallel
2817 (sbcl-package->ecl-package sbcl-lparallel))
2818
2819 (define-public sbcl-cl-markup
2820 (let ((commit "e0eb7debf4bdff98d1f49d0f811321a6a637b390"))
2821 (package
2822 (name "sbcl-cl-markup")
2823 (version (git-version "0.1" "1" commit))
2824 (source
2825 (origin
2826 (method git-fetch)
2827 (uri (git-reference
2828 (url "https://github.com/arielnetworks/cl-markup/")
2829 (commit commit)))
2830 (file-name (git-file-name "cl-markup" version))
2831 (sha256
2832 (base32
2833 "10l6k45971dl13fkdmva7zc6i453lmq9j4xax2ci6pjzlc6xjhp7"))))
2834 (build-system asdf-build-system/sbcl)
2835 (home-page "https://github.com/arielnetworks/cl-markup/")
2836 (synopsis "Markup generation library for Common Lisp")
2837 (description
2838 "A modern markup generation library for Common Lisp that features:
2839
2840 @itemize
2841 @item Fast (even faster through compiling the code)
2842 @item Safety
2843 @item Support for multiple document types (markup, xml, html, html5, xhtml)
2844 @item Output with doctype
2845 @item Direct output to stream
2846 @end itemize\n")
2847 (license license:lgpl3+))))
2848
2849 (define-public cl-markup
2850 (sbcl-package->cl-source-package sbcl-cl-markup))
2851
2852 (define-public ecl-cl-markup
2853 (sbcl-package->ecl-package sbcl-cl-markup))
2854
2855 (define-public sbcl-cl-css
2856 (let ((commit "8fe654c8f0cf95b300718101cce4feb517f78e2f"))
2857 (package
2858 (name "sbcl-cl-css")
2859 (version (git-version "0.1" "1" commit))
2860 (source
2861 (origin
2862 (method git-fetch)
2863 (uri (git-reference
2864 (url "https://github.com/inaimathi/cl-css/")
2865 (commit commit)))
2866 (file-name (git-file-name "cl-css" version))
2867 (sha256
2868 (base32
2869 "1lc42zi2sw11fl2589sc19nr5sd2p0wy7wgvgwaggxa5f3ajhsmd"))))
2870 (build-system asdf-build-system/sbcl)
2871 (home-page "https://github.com/inaimathi/cl-css/")
2872 (synopsis "Non-validating, inline CSS generator for Common Lisp")
2873 (description
2874 "This is a dead-simple, non validating, inline CSS generator for Common
2875 Lisp. Its goals are axiomatic syntax, simple implementation to support
2876 portability, and boilerplate reduction in CSS.")
2877 (license license:expat))))
2878
2879 (define-public cl-css
2880 (sbcl-package->cl-source-package sbcl-cl-css))
2881
2882 (define-public ecl-cl-css
2883 (sbcl-package->ecl-package sbcl-cl-css))
2884
2885 (define-public sbcl-portable-threads
2886 (let ((commit "c0e61a1faeb0583c80fd3f20b16cc4c555226920"))
2887 (package
2888 (name "sbcl-portable-threads")
2889 (version (git-version "2.3" "1" commit))
2890 (source
2891 (origin
2892 (method git-fetch)
2893 (uri (git-reference
2894 (url "https://github.com/binghe/portable-threads/")
2895 (commit commit)))
2896 (file-name (git-file-name "portable-threads" version))
2897 (sha256
2898 (base32
2899 "03fmxyarc0xf4kavwkfa0a2spkyfrz6hbgbi9y4q7ny5aykdyfaq"))))
2900 (build-system asdf-build-system/sbcl)
2901 (arguments
2902 `(;; Tests seem broken.
2903 #:tests? #f))
2904 (home-page "https://github.com/binghe/portable-threads")
2905 (synopsis "Portable threads (and scheduled and periodic functions) API for Common Lisp")
2906 (description
2907 "Portable Threads (and Scheduled and Periodic Functions) API for Common
2908 Lisp (from GBBopen project).")
2909 (license license:asl2.0))))
2910
2911 (define-public cl-portable-threads
2912 (sbcl-package->cl-source-package sbcl-portable-threads))
2913
2914 (define-public ecl-portable-threada
2915 (sbcl-package->ecl-package sbcl-portable-threads))
2916
2917 (define-public sbcl-usocket-boot0
2918 ;; usocket's test rely on usocket-server which depends on usocket itself.
2919 ;; We break this cyclic dependency with -boot0 that packages usocket.
2920 (let ((commit "86e7efbfe50101931edf4b67cdcfa7e221ecfde9"))
2921 (package
2922 (name "sbcl-usocket-boot0")
2923 (version (git-version "0.7.1" "1" commit))
2924 (source
2925 (origin
2926 (method git-fetch)
2927 (uri (git-reference
2928 (url "https://github.com/usocket/usocket/")
2929 (commit commit)))
2930 (file-name (git-file-name "usocket" version))
2931 (sha256
2932 (base32
2933 "1lk6ipakrib7kdgzw44hrgmls9akp5pz4h35yynw0k5zwmmq6374"))))
2934 (build-system asdf-build-system/sbcl)
2935 (inputs
2936 `(("split-sequence" ,sbcl-split-sequence)))
2937 (arguments
2938 `(#:tests? #f
2939 #:asd-system-name "usocket"))
2940 (home-page "https://common-lisp.net/project/usocket/")
2941 (synopsis "Universal socket library for Common Lisp (server side)")
2942 (description
2943 "This library strives to provide a portable TCP/IP and UDP/IP socket
2944 interface for as many Common Lisp implementations as possible, while keeping
2945 the abstraction and portability layer as thin as possible.")
2946 (license license:expat))))
2947
2948 (define-public sbcl-usocket-server
2949 (package
2950 (inherit sbcl-usocket-boot0)
2951 (name "sbcl-usocket-server")
2952 (inputs
2953 `(("usocket" ,sbcl-usocket-boot0)
2954 ("portable-threads" ,sbcl-portable-threads)))
2955 (arguments
2956 '(#:asd-system-name "usocket-server"))
2957 (synopsis "Universal socket library for Common Lisp (server side)")))
2958
2959 (define-public cl-usocket-server
2960 (sbcl-package->cl-source-package sbcl-usocket-server))
2961
2962 (define-public ecl-socket-server
2963 (sbcl-package->ecl-package sbcl-usocket-server))
2964
2965 (define-public sbcl-usocket
2966 (package
2967 (inherit sbcl-usocket-boot0)
2968 (name "sbcl-usocket")
2969 (arguments
2970 ;; FIXME: Tests need network access?
2971 `(#:tests? #f))
2972 (native-inputs
2973 ;; Testing only.
2974 `(("usocket-server" ,sbcl-usocket-server)
2975 ("rt" ,sbcl-rt)))))
2976
2977 (define-public cl-usocket
2978 (sbcl-package->cl-source-package sbcl-usocket))
2979
2980 (define-public ecl-socket
2981 (sbcl-package->ecl-package sbcl-usocket))
2982
2983 (define-public sbcl-s-xml
2984 (package
2985 (name "sbcl-s-xml")
2986 (version "3")
2987 (source
2988 (origin
2989 (method url-fetch)
2990 (uri "https://common-lisp.net/project/s-xml/s-xml.tgz")
2991 (sha256
2992 (base32
2993 "061qcr0dzshsa38s5ma4ay924cwak2nq9gy59dw6v9p0qb58nzjf"))))
2994 (build-system asdf-build-system/sbcl)
2995 (home-page "https://common-lisp.net/project/s-xml/")
2996 (synopsis "Simple XML parser implemented in Common Lisp")
2997 (description
2998 "S-XML is a simple XML parser implemented in Common Lisp. This XML
2999 parser implementation has the following features:
3000
3001 @itemize
3002 @item It works (handling many common XML usages).
3003 @item It is very small (the core is about 700 lines of code, including
3004 comments and whitespace).
3005 @item It has a core API that is simple, efficient and pure functional, much
3006 like that from SSAX (see also http://ssax.sourceforge.net).
3007 @item It supports different DOM models: an XSML-based one, an LXML-based one
3008 and a classic xml-element struct based one.
3009 @item It is reasonably time and space efficient (internally avoiding garbage
3010 generatation as much as possible).
3011 @item It does support CDATA.
3012 @item It should support the same character sets as your Common Lisp
3013 implementation.
3014 @item It does support XML name spaces.
3015 @end itemize
3016
3017 This XML parser implementation has the following limitations:
3018
3019 @itemize
3020 @item It does not support any special tags (like processing instructions).
3021 @item It is not validating, even skips DTD's all together.
3022 @end itemize\n")
3023 (license license:lgpl3+)))
3024
3025 (define-public cl-s-xml
3026 (sbcl-package->cl-source-package sbcl-s-xml))
3027
3028 (define-public ecl-s-xml
3029 (sbcl-package->ecl-package sbcl-s-xml))
3030
3031 (define-public sbcl-s-xml-rpc
3032 (package
3033 (name "sbcl-s-xml-rpc")
3034 (version "7")
3035 (source
3036 (origin
3037 (method url-fetch)
3038 (uri "https://common-lisp.net/project/s-xml-rpc/s-xml-rpc.tgz")
3039 (sha256
3040 (base32
3041 "02z7k163d51v0pzk8mn1xb6h5s6x64gjqkslhwm3a5x26k2gfs11"))))
3042 (build-system asdf-build-system/sbcl)
3043 (inputs
3044 `(("s-xml" ,sbcl-s-xml)))
3045 (home-page "https://common-lisp.net/project/s-xml-rpc/")
3046 (synopsis "Implementation of XML-RPC in Common Lisp for both client and server")
3047 (description
3048 "S-XML-RPC is an implementation of XML-RPC in Common Lisp for both
3049 client and server.")
3050 (license license:lgpl3+)))
3051
3052 (define-public cl-s-xml-rpc
3053 (sbcl-package->cl-source-package sbcl-s-xml-rpc))
3054
3055 (define-public ecl-s-xml-rpc
3056 (sbcl-package->ecl-package sbcl-s-xml-rpc))
3057
3058 (define-public sbcl-trivial-clipboard
3059 (let ((commit "5af3415d1484e6d69a1b5c178f24680d9fd01796"))
3060 (package
3061 (name "sbcl-trivial-clipboard")
3062 (version (git-version "0.0.0.0" "2" commit))
3063 (source
3064 (origin
3065 (method git-fetch)
3066 (uri (git-reference
3067 (url "https://github.com/snmsts/trivial-clipboard")
3068 (commit commit)))
3069 (file-name (git-file-name "trivial-clipboard" version))
3070 (sha256
3071 (base32
3072 "1gb515z5yq6h5548pb1fwhmb0hhq1ssyb78pvxh4alq799xipxs9"))))
3073 (build-system asdf-build-system/sbcl)
3074 (inputs
3075 `(("xclip" ,xclip)))
3076 (native-inputs
3077 `(("fiveam" ,sbcl-fiveam)))
3078 (arguments
3079 `(#:phases
3080 (modify-phases %standard-phases
3081 (add-after 'unpack 'fix-paths
3082 (lambda* (#:key inputs #:allow-other-keys)
3083 (substitute* "src/text.lisp"
3084 (("\\(executable-find \"xclip\"\\)")
3085 (string-append "(executable-find \""
3086 (assoc-ref inputs "xclip")
3087 "/bin/xclip\")"))))))))
3088 (home-page "https://github.com/snmsts/trivial-clipboard")
3089 (synopsis "Access system clipboard in Common Lisp")
3090 (description
3091 "@command{trivial-clipboard} gives access to the system clipboard.")
3092 (license license:expat))))
3093
3094 (define-public cl-trivial-clipboard
3095 (sbcl-package->cl-source-package sbcl-trivial-clipboard))
3096
3097 (define-public ecl-trivial-clipboard
3098 (sbcl-package->ecl-package sbcl-trivial-clipboard))
3099
3100 (define-public sbcl-trivial-backtrace
3101 (let ((commit "ca81c011b86424a381a7563cea3b924f24e6fbeb")
3102 (revision "1"))
3103 (package
3104 (name "sbcl-trivial-backtrace")
3105 (version (git-version "0.0.0" revision commit))
3106 (source
3107 (origin
3108 (method git-fetch)
3109 (uri (git-reference
3110 (url "https://github.com/gwkkwg/trivial-backtrace.git")
3111 (commit commit)))
3112 (file-name (git-file-name "trivial-backtrace" version))
3113 (sha256
3114 (base32 "10p41p43skj6cimdg8skjy7372s8v2xpkg8djjy0l8rm45i654k1"))))
3115 (build-system asdf-build-system/sbcl)
3116 (inputs
3117 `(("sbcl-lift" ,sbcl-lift)))
3118 (home-page "https://common-lisp.net/project/trivial-backtrace/")
3119 (synopsis "Portable simple API to work with backtraces in Common Lisp")
3120 (description
3121 "On of the many things that didn't quite get into the Common Lisp
3122 standard was how to get a Lisp to output its call stack when something has
3123 gone wrong. As such, each Lisp has developed its own notion of what to
3124 display, how to display it, and what sort of arguments can be used to
3125 customize it. @code{trivial-backtrace} is a simple solution to generating a
3126 backtrace portably.")
3127 (license license:expat))))
3128
3129 (define-public cl-trivial-backtrace
3130 (sbcl-package->cl-source-package sbcl-trivial-backtrace))
3131
3132 (define-public sbcl-rfc2388
3133 (let ((commit "591bcf7e77f2c222c43953a80f8c297751dc0c4e")
3134 (revision "1"))
3135 (package
3136 (name "sbcl-rfc2388")
3137 (version (git-version "0.0.0" revision commit))
3138 (source
3139 (origin
3140 (method git-fetch)
3141 (uri (git-reference
3142 (url "https://github.com/jdz/rfc2388.git")
3143 (commit commit)))
3144 (file-name (git-file-name "rfc2388" version))
3145 (sha256
3146 (base32 "0phh5n3clhl9ji8jaxrajidn22d3f0aq87mlbfkkxlnx2pnw694k"))))
3147 (build-system asdf-build-system/sbcl)
3148 (home-page "https://github.com/jdz/rfc2388/")
3149 (synopsis "An implementation of RFC 2388 in Common Lisp")
3150 (description
3151 "This package contains an implementation of RFC 2388, which is used to
3152 process form data posted with HTTP POST method using enctype
3153 \"multipart/form-data\".")
3154 (license license:bsd-2))))
3155
3156 (define-public cl-rfc2388
3157 (sbcl-package->cl-source-package sbcl-rfc2388))
3158
3159 (define-public sbcl-md5
3160 (package
3161 (name "sbcl-md5")
3162 (version "2.0.4")
3163 (source
3164 (origin
3165 (method url-fetch)
3166 (uri (string-append
3167 "https://github.com/pmai/md5/archive/release-" version ".tar.gz"))
3168 (sha256
3169 (base32 "19yl9n0pjdz5gw4qi711lka97xcd9f81ylg434hk7jwn9f2s6w11"))))
3170 (build-system asdf-build-system/sbcl)
3171 (home-page "https://github.com/pmai/md5")
3172 (synopsis
3173 "Common Lisp implementation of the MD5 Message-Digest Algorithm (RFC 1321)")
3174 (description
3175 "This package implements The MD5 Message-Digest Algorithm, as defined in
3176 RFC 1321 by R. Rivest, published April 1992.")
3177 (license license:public-domain)))
3178
3179 (define-public cl-md5
3180 (sbcl-package->cl-source-package sbcl-md5))
3181
3182 (define-public sbcl-cl+ssl
3183 (let ((commit "141ae91416bc40f1618dc07e48429b84388aa599")
3184 (revision "1"))
3185 (package
3186 (name "sbcl-cl+ssl")
3187 (version (git-version "0.0.0" revision commit))
3188 (source
3189 (origin
3190 (method git-fetch)
3191 (uri (git-reference
3192 (url "https://github.com/cl-plus-ssl/cl-plus-ssl.git")
3193 (commit commit)))
3194 (file-name (git-file-name "cl+ssl" version))
3195 (sha256
3196 (base32 "1s0hg1h9sf8q89v0yrxmzg5f5sng29rgx3n21r9h9yql8351myan"))))
3197 (build-system asdf-build-system/sbcl)
3198 (arguments
3199 '(#:phases
3200 (modify-phases %standard-phases
3201 (add-after 'unpack 'fix-paths
3202 (lambda* (#:key inputs #:allow-other-keys)
3203 (substitute* "src/reload.lisp"
3204 (("libssl.so" all)
3205 (string-append
3206 (assoc-ref inputs "openssl") "/lib/" all))))))))
3207 (inputs
3208 `(("openssl" ,openssl)
3209 ("sbcl-cffi" ,sbcl-cffi)
3210 ("sbcl-trivial-gray-streams" ,sbcl-trivial-gray-streams)
3211 ("sbcl-flexi-streams" ,sbcl-flexi-streams)
3212 ("sbcl-bordeaux-threads" ,sbcl-bordeaux-threads)
3213 ("sbcl-trivial-garbage" ,sbcl-trivial-garbage)
3214 ("sbcl-alexandria" ,sbcl-alexandria)
3215 ("sbcl-trivial-features" ,sbcl-trivial-features)))
3216 (home-page "http://common-lisp.net/project/cl-plus-ssl/")
3217 (synopsis "Common Lisp bindings to OpenSSL")
3218 (description
3219 "This library is a fork of SSL-CMUCL. The original SSL-CMUCL source
3220 code was written by Eric Marsden and includes contributions by Jochen Schmidt.
3221 Development into CL+SSL was done by David Lichteblau.")
3222 (license license:expat))))
3223
3224 (define-public cl-cl+ssl
3225 (sbcl-package->cl-source-package sbcl-cl+ssl))
3226
3227 (define-public sbcl-kmrcl
3228 (let ((version "1.109.0")
3229 (commit "5260068b2eb735af6796740c2db4955afac21636")
3230 (revision "1"))
3231 (package
3232 (name "sbcl-kmrcl")
3233 (version (git-version version revision commit))
3234 (source
3235 (origin
3236 (method git-fetch)
3237 (uri (git-reference
3238 (url "http://git.kpe.io/kmrcl.git/")
3239 (commit commit)))
3240 (file-name (git-file-name name version))
3241 (sha256
3242 (base32 "1va7xjgzfv674bpsli674i7zj3f7wg5kxic41kz18r6hh4n52dfv"))))
3243 (build-system asdf-build-system/sbcl)
3244 (arguments
3245 ;; Tests fail with: :FORCE and :FORCE-NOT arguments not allowed in a
3246 ;; nested call to ASDF/OPERATE:OPERATE unless identically to toplevel
3247 '(#:tests? #f))
3248 (inputs
3249 `(("sbcl-rt" ,sbcl-rt)))
3250 (home-page "http://files.kpe.io/kmrcl/")
3251 (synopsis "General utilities for Common Lisp programs")
3252 (description
3253 "KMRCL is a collection of utilities used by a number of Kevin
3254 Rosenberg's CL packages.")
3255 (license license:llgpl))))
3256
3257 (define-public cl-kmrcl
3258 (sbcl-package->cl-source-package sbcl-kmrcl))
3259
3260 (define-public sbcl-cl-base64
3261 (let ((version "3.3.3"))
3262 (package
3263 (name "sbcl-cl-base64")
3264 (version version)
3265 (source
3266 (origin
3267 (method git-fetch)
3268 (uri (git-reference
3269 (url "http://git.kpe.io/cl-base64.git")
3270 (commit (string-append "v" version))))
3271 (file-name (git-file-name "cl-base64" version))
3272 (sha256
3273 (base32 "1dw6j7n6gsd2qa0p0rbsjxj00acxx3i9ca1qkgl0liy8lpnwkypl"))))
3274 (build-system asdf-build-system/sbcl)
3275 (arguments
3276 ;; Tests fail with: :FORCE and :FORCE-NOT arguments not allowed
3277 ;; in a nested call to ASDF/OPERATE:OPERATE unless identically
3278 ;; to toplevel
3279 '(#:tests? #f))
3280 (inputs
3281 `(("sbcl-ptester" ,sbcl-ptester)
3282 ("sbcl-kmrcl" ,sbcl-kmrcl)))
3283 (home-page "http://files.kpe.io/cl-base64/")
3284 (synopsis
3285 "Common Lisp package to encode and decode base64 with URI support")
3286 (description
3287 "This package provides highly optimized base64 encoding and decoding.
3288 Besides conversion to and from strings, integer conversions are supported.
3289 Encoding with Uniform Resource Identifiers is supported by using a modified
3290 encoding table that uses only URI-compatible characters.")
3291 (license license:bsd-3))))
3292
3293 (define-public cl-base64
3294 (sbcl-package->cl-source-package sbcl-cl-base64))
3295
3296 (define-public sbcl-chunga
3297 (package
3298 (name "sbcl-chunga")
3299 (version "1.1.7")
3300 (source
3301 (origin
3302 (method git-fetch)
3303 (uri (git-reference
3304 (url "https://github.com/edicl/chunga.git")
3305 (commit (string-append "v" version))))
3306 (file-name (git-file-name name version))
3307 (sha256
3308 (base32 "0jzn3nyb3f22gm983rfk99smqs3mhb9ivjmasvhq9qla5cl9pyhd"))))
3309 (build-system asdf-build-system/sbcl)
3310 (inputs
3311 `(("sbcl-trivial-gray-streams" ,sbcl-trivial-gray-streams)))
3312 (home-page "https://edicl.github.io/chunga/")
3313 (synopsis "Portable chunked streams for Common Lisp")
3314 (description
3315 "Chunga implements streams capable of chunked encoding on demand as
3316 defined in RFC 2616.")
3317 (license license:bsd-2)))
3318
3319 (define-public cl-chunga
3320 (sbcl-package->cl-source-package sbcl-chunga))
3321
3322 (define-public sbcl-cl-who
3323 (let ((version "1.1.4")
3324 (commit "2c08caa4bafba720409af9171feeba3f32e86d32")
3325 (revision "1"))
3326 (package
3327 (name "sbcl-cl-who")
3328 (version (git-version version revision commit))
3329 (source
3330 (origin
3331 (method git-fetch)
3332 (uri (git-reference
3333 (url "https://github.com/edicl/cl-who.git")
3334 (commit commit)))
3335 (file-name (git-file-name name version))
3336 (sha256
3337 (base32
3338 "0yjb6sr3yazm288m318kqvj9xk8rm9n1lpimgf65ymqv0i5agxsb"))))
3339 (build-system asdf-build-system/sbcl)
3340 (native-inputs
3341 `(("sbcl-flexi-streams" ,sbcl-flexi-streams)))
3342 (home-page "https://edicl.github.io/cl-who/")
3343 (synopsis "Yet another Lisp markup language")
3344 (description
3345 "There are plenty of Lisp Markup Languages out there - every Lisp
3346 programmer seems to write at least one during his career - and CL-WHO (where
3347 WHO means \"with-html-output\" for want of a better acronym) is probably just
3348 as good or bad as the next one.")
3349 (license license:bsd-2))))
3350
3351 (define-public cl-cl-who
3352 (sbcl-package->cl-source-package sbcl-cl-who))
3353
3354 (define-public sbcl-chipz
3355 (let ((version "0.8")
3356 (commit "75dfbc660a5a28161c57f115adf74c8a926bfc4d")
3357 (revision "1"))
3358 (package
3359 (name "sbcl-chipz")
3360 (version (git-version version revision commit))
3361 (source
3362 (origin
3363 (method git-fetch)
3364 (uri (git-reference
3365 (url "https://github.com/froydnj/chipz.git")
3366 (commit commit)))
3367 (file-name (git-file-name name version))
3368 (sha256
3369 (base32
3370 "0plx4rs39zbs4gjk77h4a2q11zpy75fh9v8hnxrvsf8fnakajhwg"))))
3371 (build-system asdf-build-system/sbcl)
3372 (native-inputs
3373 `(("sbcl-flexi-streams" ,sbcl-flexi-streams)))
3374 (home-page "http://method-combination.net/lisp/chipz/")
3375 (synopsis
3376 "Common Lisp library for decompressing deflate, zlib, gzip, and bzip2
3377 data")
3378 (description
3379 "DEFLATE data, defined in RFC1951, forms the core of popular
3380 compression formats such as zlib (RFC 1950) and gzip (RFC 1952). As such,
3381 Chipz also provides for decompressing data in those formats as well. BZIP2 is
3382 the format used by the popular compression tool bzip2.")
3383 ;; The author describes it as "MIT-like"
3384 (license license:expat))))
3385
3386 (define-public cl-chipz
3387 (sbcl-package->cl-source-package sbcl-chipz))
3388
3389 (define-public sbcl-drakma
3390 (let ((version "2.0.4")
3391 (commit "7647c0ae842ff2058624e53979c7f297760c97a7")
3392 (revision "1"))
3393 (package
3394 (name "sbcl-drakma")
3395 (version (git-version version revision commit))
3396 (source
3397 (origin
3398 (method git-fetch)
3399 (uri (git-reference
3400 (url "https://github.com/edicl/drakma.git")
3401 (commit commit)))
3402 (file-name (git-file-name name version))
3403 (sha256
3404 (base32
3405 "1c4i9wakhj5pxfyyykxshdmv3180sbkrx6fcyynikmc0jd0rh84r"))))
3406 (build-system asdf-build-system/sbcl)
3407 (inputs
3408 `(("sbcl-puri" ,sbcl-puri)
3409 ("sbcl-cl-base64" ,sbcl-cl-base64)
3410 ("sbcl-chunga" ,sbcl-chunga)
3411 ("sbcl-flexi-streams" ,sbcl-flexi-streams)
3412 ("sbcl-cl-ppcre" ,sbcl-cl-ppcre)
3413 ("sbcl-chipz" ,sbcl-chipz)
3414 ("sbcl-usocket" ,sbcl-usocket)
3415 ("sbcl-cl+ssl" ,sbcl-cl+ssl)))
3416 (native-inputs
3417 `(("sbcl-fiveam" ,sbcl-fiveam)))
3418 (home-page "https://edicl.github.io/drakma/")
3419 (synopsis "HTTP client written in Common Lisp")
3420 (description
3421 "Drakma is a full-featured HTTP client implemented in Common Lisp. It
3422 knows how to handle HTTP/1.1 chunking, persistent connections, re-usable
3423 sockets, SSL, continuable uploads, file uploads, cookies, and more.")
3424 (license license:bsd-2))))
3425
3426 (define-public cl-drakma
3427 (sbcl-package->cl-source-package sbcl-drakma))
3428
3429 (define-public sbcl-hunchentoot
3430 (package
3431 (name "sbcl-hunchentoot")
3432 (version "1.2.38")
3433 (source
3434 (origin
3435 (method git-fetch)
3436 (uri (git-reference
3437 (url "https://github.com/edicl/hunchentoot.git")
3438 (commit (string-append "v" version))))
3439 (file-name (git-file-name "hunchentoot" version))
3440 (sha256
3441 (base32 "1anpcad7w045m4rsjs1f3xdhjwx5cppq1h0vlb3q7dz81fi3i6yq"))))
3442 (build-system asdf-build-system/sbcl)
3443 (native-inputs
3444 `(("sbcl-cl-who" ,sbcl-cl-who)
3445 ("sbcl-drakma" ,sbcl-drakma)))
3446 (inputs
3447 `(("sbcl-chunga" ,sbcl-chunga)
3448 ("sbcl-cl-base64" ,sbcl-cl-base64)
3449 ("sbcl-cl-fad" ,sbcl-cl-fad)
3450 ("sbcl-cl-ppcre" ,sbcl-cl-ppcre)
3451 ("sbcl-flexi-streams" ,sbcl-flexi-streams)
3452 ("sbcl-cl+ssl" ,sbcl-cl+ssl)
3453 ("sbcl-md5" ,sbcl-md5)
3454 ("sbcl-rfc2388" ,sbcl-rfc2388)
3455 ("sbcl-trivial-backtrace" ,sbcl-trivial-backtrace)
3456 ("sbcl-usocket" ,sbcl-usocket)))
3457 (home-page "https://edicl.github.io/hunchentoot/")
3458 (synopsis "Web server written in Common Lisp")
3459 (description
3460 "Hunchentoot is a web server written in Common Lisp and at the same
3461 time a toolkit for building dynamic websites. As a stand-alone web server,
3462 Hunchentoot is capable of HTTP/1.1 chunking (both directions), persistent
3463 connections (keep-alive), and SSL.")
3464 (license license:bsd-2)))
3465
3466 (define-public cl-hunchentoot
3467 (sbcl-package->cl-source-package sbcl-hunchentoot))
3468
3469 (define-public sbcl-trivial-types
3470 (package
3471 (name "sbcl-trivial-types")
3472 (version "0.0.1")
3473 (source
3474 (origin
3475 (method git-fetch)
3476 (uri (git-reference
3477 (url "https://github.com/m2ym/trivial-types.git")
3478 (commit "ee869f2b7504d8aa9a74403641a5b42b16f47d88")))
3479 (file-name (git-file-name name version))
3480 (sha256
3481 (base32 "1s4cp9bdlbn8447q7w7f1wkgwrbvfzp20mgs307l5pxvdslin341"))))
3482 (build-system asdf-build-system/sbcl)
3483 (home-page "https://github.com/m2ym/trivial-types")
3484 (synopsis "Trivial type definitions for Common Lisp")
3485 (description
3486 "TRIVIAL-TYPES provides missing but important type definitions such as
3487 PROPER-LIST, ASSOCIATION-LIST, PROPERTY-LIST and TUPLE.")
3488 (license license:llgpl)))
3489
3490 (define-public cl-trivial-types
3491 (sbcl-package->cl-source-package sbcl-trivial-types))
3492
3493 (define-public sbcl-cl-syntax
3494 (package
3495 (name "sbcl-cl-syntax")
3496 (version "0.0.3")
3497 (source
3498 (origin
3499 (method git-fetch)
3500 (uri (git-reference
3501 (url "https://github.com/m2ym/cl-syntax.git")
3502 (commit "03f0c329bbd55b8622c37161e6278366525e2ccc")))
3503 (file-name (git-file-name "cl-syntax" version))
3504 (sha256
3505 (base32 "17ran8xp77asagl31xv8w819wafh6whwfc9p6dgx22ca537gyl4y"))))
3506 (build-system asdf-build-system/sbcl)
3507 (arguments
3508 '(#:asd-file "cl-syntax.asd"
3509 #:asd-system-name "cl-syntax"))
3510 (inputs `(("sbcl-trivial-types" ,sbcl-trivial-types)
3511 ("sbcl-named-readtables" ,sbcl-named-readtables)))
3512 (home-page "https://github.com/m2ym/cl-syntax")
3513 (synopsis "Reader Syntax Coventions for Common Lisp and SLIME")
3514 (description
3515 "CL-SYNTAX provides Reader Syntax Coventions for Common Lisp and SLIME.")
3516 (license license:llgpl)))
3517
3518 (define-public cl-syntax
3519 (sbcl-package->cl-source-package sbcl-cl-syntax))
3520
3521 (define-public sbcl-cl-annot
3522 (let ((commit "c99e69c15d935eabc671b483349a406e0da9518d")
3523 (revision "1"))
3524 (package
3525 (name "sbcl-cl-annot")
3526 (version (git-version "0.0.0" revision commit))
3527 (source
3528 (origin
3529 (method git-fetch)
3530 (uri (git-reference
3531 (url "https://github.com/m2ym/cl-annot.git")
3532 (commit commit)))
3533 (file-name (git-file-name name version))
3534 (sha256
3535 (base32 "1wq1gs9jjd5m6iwrv06c2d7i5dvqsfjcljgbspfbc93cg5xahk4n"))))
3536 (build-system asdf-build-system/sbcl)
3537 (arguments
3538 '(#:asd-file "cl-annot.asd"
3539 #:asd-system-name "cl-annot"))
3540 (inputs
3541 `(("sbcl-alexandria" ,sbcl-alexandria)))
3542 (home-page "https://github.com/m2ym/cl-annot")
3543 (synopsis "Python-like Annotation Syntax for Common Lisp.")
3544 (description
3545 "@code{cl-annot} is an general annotation library for Common Lisp.")
3546 (license license:llgpl))))
3547
3548 (define-public cl-annot
3549 (sbcl-package->cl-source-package sbcl-cl-annot))
3550
3551 (define-public sbcl-cl-syntax-annot
3552 (package
3553 (name "sbcl-cl-syntax-annot")
3554 (version "0.0.3")
3555 (source
3556 (origin
3557 (method git-fetch)
3558 (uri (git-reference
3559 (url "https://github.com/m2ym/cl-syntax.git")
3560 (commit "03f0c329bbd55b8622c37161e6278366525e2ccc")))
3561 (file-name (git-file-name name version))
3562 (sha256
3563 (base32 "17ran8xp77asagl31xv8w819wafh6whwfc9p6dgx22ca537gyl4y"))))
3564 (build-system asdf-build-system/sbcl)
3565 (arguments
3566 '(#:asd-file "cl-syntax-annot.asd"
3567 #:asd-system-name "cl-syntax-annot"))
3568 (inputs
3569 `(("sbcl-cl-syntax" ,sbcl-cl-syntax)
3570 ("sbcl-cl-annot" ,sbcl-cl-annot)))
3571 (home-page "https://github.com/m2ym/cl-syntax")
3572 (synopsis "Reader Syntax Coventions for Common Lisp and SLIME")
3573 (description
3574 "CL-SYNTAX provides Reader Syntax Coventions for Common Lisp and
3575 SLIME.")
3576 (license license:llgpl)))
3577
3578 (define-public cl-syntax-annot
3579 (sbcl-package->cl-source-package sbcl-cl-syntax-annot))
3580
3581 (define-public sbcl-cl-utilities
3582 (let ((commit "dce2d2f6387091ea90357a130fa6d13a6776884b")
3583 (revision "1"))
3584 (package
3585 (name "sbcl-cl-utilities")
3586 (version (git-version "0.0.0" revision commit))
3587 (source
3588 (origin
3589 (method url-fetch)
3590 (uri
3591 (string-append
3592 "https://gitlab.common-lisp.net/cl-utilities/cl-utilities/-/"
3593 "archive/" commit "/cl-utilities-" commit ".tar.gz"))
3594 (sha256
3595 (base32 "1r46v730yf96nk2vb24qmagv9x96xvd08abqwhf02ghgydv1a7z2"))))
3596 (build-system asdf-build-system/sbcl)
3597 (arguments
3598 '(#:asd-file "cl-utilities.asd"
3599 #:asd-system-name "cl-utilities"
3600 #:phases
3601 (modify-phases %standard-phases
3602 (add-after 'unpack 'fix-paths
3603 (lambda* (#:key inputs #:allow-other-keys)
3604 (substitute* "rotate-byte.lisp"
3605 (("in-package :cl-utilities)" all)
3606 "in-package :cl-utilities)\n\n#+sbcl\n(require :sb-rotate-byte)")))))))
3607 (home-page "http://common-lisp.net/project/cl-utilities")
3608 (synopsis "A collection of semi-standard utilities")
3609 (description
3610 "On Cliki.net <http://www.cliki.net/Common%20Lisp%20Utilities>, there
3611 is a collection of Common Lisp Utilities, things that everybody writes since
3612 they're not part of the official standard. There are some very useful things
3613 there; the only problems are that they aren't implemented as well as you'd
3614 like (some aren't implemented at all) and they aren't conveniently packaged
3615 and maintained. It takes quite a bit of work to carefully implement utilities
3616 for common use, commented and documented, with error checking placed
3617 everywhere some dumb user might make a mistake.")
3618 (license license:public-domain))))
3619
3620 (define-public cl-utilities
3621 (sbcl-package->cl-source-package sbcl-cl-utilities))
3622
3623 (define-public sbcl-map-set
3624 (let ((commit "7b4b545b68b8")
3625 (revision "1"))
3626 (package
3627 (name "sbcl-map-set")
3628 (version (git-version "0.0.0" revision commit))
3629 (source
3630 (origin
3631 (method url-fetch)
3632 (uri (string-append
3633 "https://bitbucket.org/tarballs_are_good/map-set/get/"
3634 commit ".tar.gz"))
3635 (sha256
3636 (base32 "1sx5j5qdsy5fklspfammwb16kjrhkggdavm922a9q86jm5l0b239"))))
3637 (build-system asdf-build-system/sbcl)
3638 (home-page "https://bitbucket.org/tarballs_are_good/map-set")
3639 (synopsis "Set-like data structure")
3640 (description
3641 "Implementation of a set-like data structure with constant time
3642 addition, removal, and random selection.")
3643 (license license:bsd-3))))
3644
3645 (define-public cl-map-set
3646 (sbcl-package->cl-source-package sbcl-map-set))
3647
3648 (define-public sbcl-quri
3649 (let ((commit "76b75103f21ead092c9f715512fa82441ef61185")
3650 (revision "1"))
3651 (package
3652 (name "sbcl-quri")
3653 (version (git-version "0.1.0" revision commit))
3654 (source
3655 (origin
3656 (method git-fetch)
3657 (uri (git-reference
3658 (url "https://github.com/fukamachi/quri.git")
3659 (commit commit)))
3660 (file-name (git-file-name name version))
3661 (sha256
3662 (base32 "1ccbxsgzdibmzq33mmbmmz9vwl6l03xh6nbpsh1hkdvdcl7q0a60"))))
3663 (build-system asdf-build-system/sbcl)
3664 (arguments
3665 ;; Tests fail with: Component QURI-ASD::QURI-TEST not found,
3666 ;; required by #<SYSTEM "quri">. Why?
3667 '(#:tests? #f))
3668 (native-inputs `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
3669 ("sbcl-prove" ,sbcl-prove)))
3670 (inputs `(("sbcl-babel" ,sbcl-babel)
3671 ("sbcl-split-sequence" ,sbcl-split-sequence)
3672 ("sbcl-cl-utilities" ,sbcl-cl-utilities)
3673 ("sbcl-alexandria" ,sbcl-alexandria)))
3674 (home-page "https://github.com/fukamachi/quri")
3675 (synopsis "Yet another URI library for Common Lisp")
3676 (description
3677 "QURI (pronounced \"Q-ree\") is yet another URI library for Common
3678 Lisp. It is intended to be a replacement of PURI.")
3679 (license license:bsd-3))))
3680
3681 (define-public cl-quri
3682 (sbcl-package->cl-source-package sbcl-quri))
3683
3684 (define-public sbcl-myway
3685 (let ((commit "286230082a11f879c18b93f17ca571c5f676bfb7")
3686 (revision "1"))
3687 (package
3688 (name "sbcl-myway")
3689 (version (git-version "0.1.0" revision commit))
3690 (source
3691 (origin
3692 (method git-fetch)
3693 (uri (git-reference
3694 (url "https://github.com/fukamachi/myway.git")
3695 (commit commit)))
3696 (file-name (git-file-name "myway" version))
3697 (sha256
3698 (base32 "0briia9bk3lbr0frnx39d1qg6i38dm4j6z9w3yga3d40k6df4a90"))))
3699 (build-system asdf-build-system/sbcl)
3700 (arguments
3701 ;; Tests fail with: Component MYWAY-ASD::MYWAY-TEST not found, required
3702 ;; by #<SYSTEM "myway">. Why?
3703 '(#:tests? #f))
3704 (native-inputs
3705 `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
3706 ("sbcl-prove" ,sbcl-prove)))
3707 (inputs
3708 `(("sbcl-cl-ppcre" ,sbcl-cl-ppcre)
3709 ("sbcl-quri" ,sbcl-quri)
3710 ("sbcl-map-set" ,sbcl-map-set)))
3711 (home-page "https://github.com/fukamachi/myway")
3712 (synopsis "Sinatra-compatible URL routing library for Common Lisp")
3713 (description "My Way is a Sinatra-compatible URL routing library.")
3714 (license license:llgpl))))
3715
3716 (define-public cl-myway
3717 (sbcl-package->cl-source-package sbcl-myway))
3718
3719 (define-public sbcl-xsubseq
3720 (let ((commit "5ce430b3da5cda3a73b9cf5cee4df2843034422b")
3721 (revision "1"))
3722 (package
3723 (name "sbcl-xsubseq")
3724 (version (git-version "0.0.1" revision commit))
3725 (source
3726 (origin
3727 (method git-fetch)
3728 (uri (git-reference
3729 (url "https://github.com/fukamachi/xsubseq")
3730 (commit commit)))
3731 (file-name (git-file-name name version))
3732 (sha256
3733 (base32 "1xz79q0p2mclf3sqjiwf6izdpb6xrsr350bv4mlmdlm6rg5r99px"))))
3734 (build-system asdf-build-system/sbcl)
3735 (arguments
3736 ;; Tests fail with: Component XSUBSEQ-ASD::XSUBSEQ-TEST not found,
3737 ;; required by #<SYSTEM "xsubseq">. Why?
3738 '(#:tests? #f))
3739 (native-inputs
3740 `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
3741 ("sbcl-prove" ,sbcl-prove)))
3742 (home-page "https://github.com/fukamachi/xsubseq")
3743 (synopsis "Efficient way to use \"subseq\"s in Common Lisp")
3744 (description
3745 "XSubseq provides functions to be able to handle \"subseq\"s more
3746 effieiently.")
3747 (license license:bsd-2))))
3748
3749 (define-public cl-xsubseq
3750 (sbcl-package->cl-source-package sbcl-xsubseq))
3751
3752 (define-public sbcl-smart-buffer
3753 (let ((commit "09b9a9a0b3abaa37abe9a730f5aac2643dca4e62")
3754 (revision "1"))
3755 (package
3756 (name "sbcl-smart-buffer")
3757 (version (git-version "0.0.1" revision commit))
3758 (source
3759 (origin
3760 (method git-fetch)
3761 (uri (git-reference
3762 (url "https://github.com/fukamachi/smart-buffer")
3763 (commit commit)))
3764 (file-name (git-file-name name version))
3765 (sha256
3766 (base32 "0qz1zzxx0wm5ff7gpgsq550a59p0qj594zfmm2rglj97dahj54l7"))))
3767 (build-system asdf-build-system/sbcl)
3768 (arguments
3769 ;; Tests fail with: Component SMART-BUFFER-ASD::SMART-BUFFER-TEST not
3770 ;; found, required by #<SYSTEM "smart-buffer">. Why?
3771 `(#:tests? #f))
3772 (native-inputs
3773 `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
3774 ("sbcl-prove" ,sbcl-prove)))
3775 (inputs
3776 `(("sbcl-xsubseq" ,sbcl-xsubseq)
3777 ("sbcl-flexi-streams" ,sbcl-flexi-streams)))
3778 (home-page "https://github.com/fukamachi/smart-buffer")
3779 (synopsis "Smart octets buffer")
3780 (description
3781 "Smart-buffer provides an output buffer which changes the destination
3782 depending on content size.")
3783 (license license:bsd-3))))
3784
3785 (define-public cl-smart-buffer
3786 (sbcl-package->cl-source-package sbcl-smart-buffer))
3787
3788 (define-public sbcl-fast-http
3789 (let ((commit "f9e7597191bae380503e20724fd493a24d024935")
3790 (revision "1"))
3791 (package
3792 (name "sbcl-fast-http")
3793 (version (git-version "0.2.0" revision commit))
3794 (source
3795 (origin
3796 (method git-fetch)
3797 (uri (git-reference
3798 (url "https://github.com/fukamachi/fast-http")
3799 (commit commit)))
3800 (file-name (git-file-name name version))
3801 (sha256
3802 (base32 "0qdmwv2zm0sizxdb8nnclgwl0nfjcbjaimbakavikijw7lr9b4jp"))))
3803 (build-system asdf-build-system/sbcl)
3804 (arguments
3805 ;; Tests fail with: Component FAST-HTTP-ASD::FAST-HTTP-TEST not found,
3806 ;; required by #<SYSTEM "fast-http">. Why?
3807 `(#:tests? #f))
3808 (native-inputs
3809 `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
3810 ("sbcl-prove" ,sbcl-prove)))
3811 (inputs
3812 `(("sbcl-alexandria" ,sbcl-alexandria)
3813 ("sbcl-proc-parse" ,sbcl-proc-parse)
3814 ("sbcl-xsubseq" ,sbcl-xsubseq)
3815 ("sbcl-smart-buffer" ,sbcl-smart-buffer)
3816 ("sbcl-cl-utilities" ,sbcl-cl-utilities)))
3817 (home-page "https://github.com/fukamachi/fast-http")
3818 (synopsis "HTTP request/response parser for Common Lisp")
3819 (description
3820 "@code{fast-http} is a HTTP request/response protocol parser for Common
3821 Lisp.")
3822 ;; Author specified the MIT license
3823 (license license:expat))))
3824
3825 (define-public cl-fast-http
3826 (sbcl-package->cl-source-package sbcl-fast-http))
3827
3828 (define-public sbcl-static-vectors
3829 (let ((commit "0681eac1f49370cde03e64b077251e8abf47d702")
3830 (revision "1"))
3831 (package
3832 (name "sbcl-static-vectors")
3833 (version (git-version "1.8.3" revision commit))
3834 (source
3835 (origin
3836 (method git-fetch)
3837 (uri (git-reference
3838 (url "https://github.com/sionescu/static-vectors.git")
3839 (commit commit)))
3840 (file-name (git-file-name name version))
3841 (sha256
3842 (base32 "138nlsq14hv8785ycjm6jw3i6ablhq8vcwys7q09y80arcgrg6r3"))))
3843 (native-inputs
3844 `(("sbcl-fiveam" ,sbcl-fiveam)))
3845 (inputs
3846 `(("sbcl-cffi-grovel" ,sbcl-cffi-grovel)
3847 ("sbcl-cffi" ,sbcl-cffi)))
3848 (build-system asdf-build-system/sbcl)
3849 (home-page "http://common-lisp.net/projects/iolib/")
3850 (synopsis "Allocate SIMPLE-ARRAYs in static memory")
3851 (description
3852 "With @code{static-vectors}, you can create vectors allocated in static
3853 memory.")
3854 (license license:expat))))
3855
3856 (define-public cl-static-vectors
3857 (sbcl-package->cl-source-package sbcl-static-vectors))
3858
3859 (define-public sbcl-marshal
3860 (let ((commit "eff1b15f2b0af2f26f71ad6a4dd5c4beab9299ec")
3861 (revision "1"))
3862 (package
3863 (name "sbcl-marshal")
3864 (version (git-version "1.3.0" revision commit))
3865 (source
3866 (origin
3867 (method git-fetch)
3868 (uri (git-reference
3869 (url "https://github.com/wlbr/cl-marshal.git")
3870 (commit commit)))
3871 (file-name (git-file-name name version))
3872 (sha256
3873 (base32 "08qs6fhk38xpkkjkpcj92mxx0lgy4ygrbbzrmnivdx281syr0gwh"))))
3874 (build-system asdf-build-system/sbcl)
3875 (home-page "https://github.com/wlbr/cl-marshal")
3876 (synopsis "Simple (de)serialization of Lisp datastructures")
3877 (description
3878 "Simple and fast marshalling of Lisp datastructures. Convert any object
3879 into a string representation, put it on a stream an revive it from there.
3880 Only minimal changes required to make your CLOS objects serializable.")
3881 (license license:expat))))
3882
3883 (define-public cl-marshal
3884 (sbcl-package->cl-source-package sbcl-marshal))
3885
3886 (define-public sbcl-checkl
3887 (let ((commit "80328800d047fef9b6e32dfe6bdc98396aee3cc9")
3888 (revision "1"))
3889 (package
3890 (name "sbcl-checkl")
3891 (version (git-version "0.0.0" revision commit))
3892 (source
3893 (origin
3894 (method git-fetch)
3895 (uri (git-reference
3896 (url "https://github.com/rpav/CheckL.git")
3897 (commit commit)))
3898 (file-name (git-file-name name version))
3899 (sha256
3900 (base32 "0bpisihx1gay44xmyr1dmhlwh00j0zzi04rp9fy35i95l2r4xdlx"))))
3901 (build-system asdf-build-system/sbcl)
3902 (arguments
3903 ;; Error while trying to load definition for system checkl-test from
3904 ;; pathname [...]/checkl-test.asd: The function CHECKL:DEFINE-TEST-OP
3905 ;; is undefined.
3906 '(#:tests? #f))
3907 (native-inputs
3908 `(("sbcl-fiveam" ,sbcl-fiveam)))
3909 (inputs
3910 `(("sbcl-marshal" ,sbcl-marshal)))
3911 (home-page "https://github.com/rpav/CheckL/")
3912 (synopsis "Dynamic testing for Common Lisp")
3913 (description
3914 "CheckL lets you write tests dynamically, it checks resulting values
3915 against the last run.")
3916 ;; The author specifies both LLGPL and "BSD", but the "BSD" license
3917 ;; isn't specified anywhere, so I don't know which kind. LLGPL is the
3918 ;; stronger of the two and so I think only listing this should suffice.
3919 (license license:llgpl))))
3920
3921 (define-public cl-checkl
3922 (sbcl-package->cl-source-package sbcl-checkl))
3923
3924 (define-public sbcl-fast-io
3925 (let ((commit "dc3a71db7e9b756a88781ae9c342fe9d4bbab51c")
3926 (revision "1"))
3927 (package
3928 (name "sbcl-fast-io")
3929 (version (git-version "1.0.0" revision commit))
3930 (source
3931 (origin
3932 (method git-fetch)
3933 (uri (git-reference
3934 (url "https://github.com/rpav/fast-io.git")
3935 (commit commit)))
3936 (file-name (git-file-name name version))
3937 (sha256
3938 (base32 "1jsp6xvi26ln6fdy5j5zi05xvan8jsqdhisv552dy6xg6ws8i1yq"))))
3939 (build-system asdf-build-system/sbcl)
3940 (arguments
3941 ;; Error while trying to load definition for system fast-io-test from
3942 ;; pathname [...]/fast-io-test.asd: The function CHECKL:DEFINE-TEST-OP
3943 ;; is undefined.
3944 '(#:tests? #f))
3945 (native-inputs
3946 `(("sbcl-fiveam" ,sbcl-fiveam)
3947 ("sbcl-checkl" ,sbcl-checkl)))
3948 (inputs
3949 `(("sbcl-alexandria" ,sbcl-alexandria)
3950 ("sbcl-trivial-gray-streams" ,sbcl-trivial-gray-streams)
3951 ("sbcl-static-vectors" ,sbcl-static-vectors)))
3952 (home-page "https://github.com/rpav/fast-io")
3953 (synopsis "Fast octet-vector/stream I/O for Common Lisp")
3954 (description
3955 "Fast-io is about improving performance to octet-vectors and octet
3956 streams (though primarily the former, while wrapping the latter).")
3957 ;; Author specifies this as NewBSD which is an alias
3958 (license license:bsd-3))))
3959
3960 (define-public cl-fast-io
3961 (sbcl-package->cl-source-package sbcl-fast-io))
3962
3963 (define-public sbcl-jonathan
3964 (let ((commit "1f448b4f7ac8265e56e1c02b32ce383e65316300")
3965 (revision "1"))
3966 (package
3967 (name "sbcl-jonathan")
3968 (version (git-version "0.1.0" revision commit))
3969 (source
3970 (origin
3971 (method git-fetch)
3972 (uri (git-reference
3973 (url "https://github.com/Rudolph-Miller/jonathan.git")
3974 (commit commit)))
3975 (file-name (git-file-name name version))
3976 (sha256
3977 (base32 "14x4iwz3mbag5jzzzr4sb6ai0m9r4q4kyypbq32jmsk2dx1hi807"))))
3978 (build-system asdf-build-system/sbcl)
3979 (arguments
3980 ;; Tests fail with: Component JONATHAN-ASD::JONATHAN-TEST not found,
3981 ;; required by #<SYSTEM "jonathan">. Why?
3982 `(#:tests? #f))
3983 (native-inputs
3984 `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
3985 ("sbcl-prove" ,sbcl-prove)))
3986 (inputs
3987 `(("sbcl-cl-syntax" ,sbcl-cl-syntax)
3988 ("sbcl-cl-syntax-annot" ,sbcl-cl-syntax-annot)
3989 ("sbcl-fast-io" ,sbcl-fast-io)
3990 ("sbcl-proc-parse" ,sbcl-proc-parse)
3991 ("sbcl-cl-ppcre" ,sbcl-cl-ppcre)))
3992 (home-page "http://rudolph-miller.github.io/jonathan/overview.html")
3993 (synopsis "JSON encoder and decoder")
3994 (description
3995 "High performance JSON encoder and decoder. Currently support: SBCL,
3996 CCL.")
3997 ;; Author specifies the MIT license
3998 (license license:expat))))
3999
4000 (define-public cl-jonathan
4001 (sbcl-package->cl-source-package sbcl-jonathan))
4002
4003 (define-public sbcl-http-body
4004 (let ((commit "dd01dc4f5842e3d29728552e5163acce8386eb73")
4005 (revision "1"))
4006 (package
4007 (name "sbcl-http-body")
4008 (version (git-version "0.1.0" revision commit))
4009 (source
4010 (origin
4011 (method git-fetch)
4012 (uri (git-reference
4013 (url "https://github.com/fukamachi/http-body")
4014 (commit commit)))
4015 (file-name (git-file-name name version))
4016 (sha256
4017 (base32 "1jd06snjvxcprhapgfq8sx0y5lrldkvhf206ix6d5a23dd6zcmr0"))))
4018 (build-system asdf-build-system/sbcl)
4019 (arguments
4020 ;; Tests fail with: Component HTTP-BODY-ASD::HTTP-BODY-TEST not
4021 ;; found, required by #<SYSTEM "http-body">. Why?
4022 `(#:tests? #f))
4023 (native-inputs
4024 `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
4025 ("sbcl-prove" ,sbcl-prove)))
4026 (inputs
4027 `(("sbcl-fast-http" ,sbcl-fast-http)
4028 ("sbcl-jonathan" ,sbcl-jonathan)
4029 ("sbcl-quri" ,sbcl-quri)))
4030 (home-page "https://github.com/fukamachi/http-body")
4031 (synopsis "HTTP POST data parser")
4032 (description
4033 "HTTP-Body parses HTTP POST data and returns POST parameters. It
4034 supports application/x-www-form-urlencoded, application/json, and
4035 multipart/form-data.")
4036 (license license:bsd-2))))
4037
4038 (define-public cl-http-body
4039 (sbcl-package->cl-source-package sbcl-http-body))
4040
4041 (define-public sbcl-circular-streams
4042 (let ((commit "e770bade1919c5e8533dd2078c93c3d3bbeb38df")
4043 (revision "1"))
4044 (package
4045 (name "sbcl-circular-streams")
4046 (version (git-version "0.1.0" revision commit))
4047 (source
4048 (origin
4049 (method git-fetch)
4050 (uri (git-reference
4051 (url "https://github.com/fukamachi/circular-streams")
4052 (commit commit)))
4053 (file-name (git-file-name name version))
4054 (sha256
4055 (base32 "1wpw6d5cciyqcf92f7mvihak52pd5s47kk4qq6f0r2z2as68p5rs"))))
4056 (build-system asdf-build-system/sbcl)
4057 (arguments
4058 ;; The tests depend on cl-test-more which is now prove. Prove
4059 ;; tests aren't working for some reason.
4060 `(#:tests? #f))
4061 (inputs
4062 `(("sbcl-fast-io" ,sbcl-fast-io)
4063 ("sbcl-trivial-gray-streams" ,sbcl-trivial-gray-streams)))
4064 (home-page "https://github.com/fukamachi/circular-streams")
4065 (synopsis "Circularly readable streams for Common Lisp")
4066 (description
4067 "Circular-Streams allows you to read streams circularly by wrapping real
4068 streams. Once you reach end-of-file of a stream, it's file position will be
4069 reset to 0 and you're able to read it again.")
4070 (license license:llgpl))))
4071
4072 (define-public cl-circular-streams
4073 (sbcl-package->cl-source-package sbcl-circular-streams))
4074
4075 (define-public sbcl-lack-request
4076 (let ((commit "abff8efeb0c3a848e6bb0022f2b8b7fa3a1bc88b")
4077 (revision "1"))
4078 (package
4079 (name "sbcl-lack-request")
4080 (version (git-version "0.1.0" revision commit))
4081 (source
4082 (origin
4083 (method git-fetch)
4084 (uri (git-reference
4085 (url "https://github.com/fukamachi/lack.git")
4086 (commit commit)))
4087 (file-name (git-file-name "lack-request" version))
4088 (sha256
4089 (base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85"))))
4090 (build-system asdf-build-system/sbcl)
4091 (arguments
4092 '(#:asd-file "lack-request.asd"
4093 #:asd-system-name "lack-request"
4094 #:test-asd-file "t-lack-request.asd"
4095 ;; XXX: Component :CLACK-TEST not found
4096 #:tests? #f))
4097 (native-inputs
4098 `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
4099 ("sbcl-prove" ,sbcl-prove)))
4100 (inputs
4101 `(("sbcl-quri" ,sbcl-quri)
4102 ("sbcl-http-body" ,sbcl-http-body)
4103 ("sbcl-circular-streams" ,sbcl-circular-streams)))
4104 (home-page "https://github.com/fukamachi/lack")
4105 (synopsis "Lack, the core of Clack")
4106 (description
4107 "Lack is a Common Lisp library which allows web applications to be
4108 constructed of modular components. It was originally a part of Clack, however
4109 it's going to be rewritten as an individual project since Clack v2 with
4110 performance and simplicity in mind.")
4111 (license license:llgpl))))
4112
4113 (define-public cl-lack-request
4114 (sbcl-package->cl-source-package sbcl-lack-request))
4115
4116 (define-public sbcl-local-time
4117 (let ((commit "beac054eef428552b63d4ae7820c32ffef9a3015")
4118 (revision "1"))
4119 (package
4120 (name "sbcl-local-time")
4121 (version (git-version "1.0.6" revision commit))
4122 (source
4123 (origin
4124 (method git-fetch)
4125 (uri (git-reference
4126 (url "https://github.com/dlowe-net/local-time.git")
4127 (commit commit)))
4128 (file-name (git-file-name name version))
4129 (sha256
4130 (base32 "0xhkmgxh41dg2wwlsp0h2l41jp144xn4gpxhh0lna6kh0560w2cc"))))
4131 (build-system asdf-build-system/sbcl)
4132 (arguments
4133 ;; TODO: Component :STEFIL not found, required by #<SYSTEM
4134 ;; "local-time/test">
4135 '(#:tests? #f))
4136 (native-inputs
4137 `(("stefil" ,sbcl-hu.dwim.stefil)))
4138 (inputs
4139 `(("sbcl-cl-fad" ,sbcl-cl-fad)))
4140 (home-page "https://common-lisp.net/project/local-time/")
4141 (synopsis "Time manipulation library for Common Lisp")
4142 (description
4143 "The LOCAL-TIME library is a Common Lisp library for the manipulation of
4144 dates and times. It is based almost entirely upon Erik Naggum's paper \"The
4145 Long Painful History of Time\".")
4146 (license license:expat))))
4147
4148 (define-public cl-local-time
4149 (sbcl-package->cl-source-package sbcl-local-time))
4150
4151 (define-public sbcl-lack-response
4152 (let ((commit "abff8efeb0c3a848e6bb0022f2b8b7fa3a1bc88b")
4153 (revision "1"))
4154 (package
4155 (name "sbcl-lack-response")
4156 (version (git-version "0.1.0" revision commit))
4157 (source
4158 (origin
4159 (method git-fetch)
4160 (uri (git-reference
4161 (url "https://github.com/fukamachi/lack.git")
4162 (commit commit)))
4163 (file-name (git-file-name name version))
4164 (sha256
4165 (base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85"))))
4166 (build-system asdf-build-system/sbcl)
4167 (arguments
4168 '(#:asd-file "lack-response.asd"
4169 #:asd-system-name "lack-response"
4170 ;; XXX: no tests for lack-response.
4171 #:tests? #f))
4172 (native-inputs
4173 `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
4174 ("sbcl-prove" ,sbcl-prove)))
4175 (inputs
4176 `(("sbcl-quri" ,sbcl-quri)
4177 ("sbcl-http-body" ,sbcl-http-body)
4178 ("sbcl-circular-streams" ,sbcl-circular-streams)
4179 ("sbcl-local-time" ,sbcl-local-time)))
4180 (home-page "https://github.com/fukamachi/lack")
4181 (synopsis "Lack, the core of Clack")
4182 (description
4183 "Lack is a Common Lisp library which allows web applications to be
4184 constructed of modular components. It was originally a part of Clack, however
4185 it's going to be rewritten as an individual project since Clack v2 with
4186 performance and simplicity in mind.")
4187 (license license:llgpl))))
4188
4189 (define-public cl-lack-response
4190 (sbcl-package->cl-source-package sbcl-lack-response))
4191
4192 (define-public sbcl-lack-component
4193 (let ((commit "abff8efeb0c3a848e6bb0022f2b8b7fa3a1bc88b")
4194 (revision "1"))
4195 (package
4196 (name "sbcl-lack-component")
4197 (version (git-version "0.0.0" revision commit))
4198 (source
4199 (origin
4200 (method git-fetch)
4201 (uri (git-reference
4202 (url "https://github.com/fukamachi/lack.git")
4203 (commit commit)))
4204 (file-name (git-file-name "lack-component" version))
4205 (sha256
4206 (base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85"))))
4207 (build-system asdf-build-system/sbcl)
4208 (arguments
4209 '(#:asd-file "lack-component.asd"
4210 #:asd-system-name "lack-component"
4211 #:test-asd-file "t-lack-component.asd"
4212 ;; XXX: Component :LACK-TEST not found
4213 #:tests? #f))
4214 (native-inputs
4215 `(("prove-asdf" ,sbcl-prove-asdf)))
4216 (home-page "https://github.com/fukamachi/lack")
4217 (synopsis "Lack, the core of Clack")
4218 (description
4219 "Lack is a Common Lisp library which allows web applications to be
4220 constructed of modular components. It was originally a part of Clack, however
4221 it's going to be rewritten as an individual project since Clack v2 with
4222 performance and simplicity in mind.")
4223 (license license:llgpl))))
4224
4225 (define-public cl-lack-component
4226 (sbcl-package->cl-source-package sbcl-lack-component))
4227
4228 (define-public sbcl-lack-util
4229 (let ((commit "abff8efeb0c3a848e6bb0022f2b8b7fa3a1bc88b")
4230 (revision "1"))
4231 (package
4232 (name "sbcl-lack-util")
4233 (version (git-version "0.1.0" revision commit))
4234 (source
4235 (origin
4236 (method git-fetch)
4237 (uri (git-reference
4238 (url "https://github.com/fukamachi/lack.git")
4239 (commit commit)))
4240 (file-name (git-file-name "lack-util" version))
4241 (sha256
4242 (base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85"))))
4243 (build-system asdf-build-system/sbcl)
4244 (arguments
4245 '(#:asd-file "lack-util.asd"
4246 #:asd-system-name "lack-util"
4247 #:test-asd-file "t-lack-util.asd"
4248 ;; XXX: Component :LACK-TEST not found
4249 #:tests? #f))
4250 (native-inputs
4251 `(("prove-asdf" ,sbcl-prove-asdf)))
4252 (inputs
4253 `(("sbcl-ironclad" ,sbcl-ironclad)))
4254 (home-page "https://github.com/fukamachi/lack")
4255 (synopsis "Lack, the core of Clack")
4256 (description
4257 "Lack is a Common Lisp library which allows web applications to be
4258 constructed of modular components. It was originally a part of Clack, however
4259 it's going to be rewritten as an individual project since Clack v2 with
4260 performance and simplicity in mind.")
4261 (license license:llgpl))))
4262
4263 (define-public cl-lack-util
4264 (sbcl-package->cl-source-package sbcl-lack-util))
4265
4266 (define-public sbcl-lack-middleware-backtrace
4267 (let ((commit "abff8efeb0c3a848e6bb0022f2b8b7fa3a1bc88b")
4268 (revision "1"))
4269 (package
4270 (name "sbcl-lack-middleware-backtrace")
4271 (version (git-version "0.1.0" revision commit))
4272 (source
4273 (origin
4274 (method git-fetch)
4275 (uri (git-reference
4276 (url "https://github.com/fukamachi/lack.git")
4277 (commit commit)))
4278 (file-name (git-file-name "lack-middleware-backtrace" version))
4279 (sha256
4280 (base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85"))))
4281 (build-system asdf-build-system/sbcl)
4282 (arguments
4283 '(#:asd-file "lack-middleware-backtrace.asd"
4284 #:asd-system-name "lack-middleware-backtrace"
4285 #:test-asd-file "t-lack-middleware-backtrace.asd"
4286 ;; XXX: Component :LACK not found
4287 #:tests? #f))
4288 (native-inputs
4289 `(("prove-asdf" ,sbcl-prove-asdf)))
4290 (home-page "https://github.com/fukamachi/lack")
4291 (synopsis "Lack, the core of Clack")
4292 (description
4293 "Lack is a Common Lisp library which allows web applications to be
4294 constructed of modular components. It was originally a part of Clack, however
4295 it's going to be rewritten as an individual project since Clack v2 with
4296 performance and simplicity in mind.")
4297 (license license:llgpl))))
4298
4299 (define-public cl-lack-middleware-backtrace
4300 (sbcl-package->cl-source-package sbcl-lack-middleware-backtrace))
4301
4302 (define-public sbcl-trivial-mimes
4303 (let ((commit "303f8ac0aa6ca0bc139aa3c34822e623c3723fab")
4304 (revision "1"))
4305 (package
4306 (name "sbcl-trivial-mimes")
4307 (version (git-version "1.1.0" revision commit))
4308 (source
4309 (origin
4310 (method git-fetch)
4311 (uri (git-reference
4312 (url "https://github.com/Shinmera/trivial-mimes.git")
4313 (commit commit)))
4314 (file-name (git-file-name name version))
4315 (sha256
4316 (base32 "17jxgl47r695bvsb7wi3n2ws5rp1zzgvw0zii8cy5ggw4b4ayv6m"))))
4317 (build-system asdf-build-system/sbcl)
4318 (arguments
4319 '(#:phases
4320 (modify-phases %standard-phases
4321 (add-after
4322 'unpack 'fix-paths
4323 (lambda* (#:key inputs #:allow-other-keys)
4324 (let ((anchor "#p\"/etc/mime.types\""))
4325 (substitute* "mime-types.lisp"
4326 ((anchor all)
4327 (string-append
4328 anchor "\n"
4329 "(asdf:system-relative-pathname :trivial-mimes "
4330 "\"../../share/common-lisp/" (%lisp-type)
4331 "-source/trivial-mimes/mime.types\")")))))))))
4332 (native-inputs
4333 `(("stefil" ,sbcl-hu.dwim.stefil)))
4334 (inputs
4335 `(("sbcl-cl-fad" ,sbcl-cl-fad)))
4336 (home-page "http://shinmera.github.io/trivial-mimes/")
4337 (synopsis "Tiny Common Lisp library to detect mime types in files")
4338 (description
4339 "This is a teensy library that provides some functions to determine the
4340 mime-type of a file.")
4341 (license license:artistic2.0))))
4342
4343 (define-public cl-trivial-mimes
4344 (sbcl-package->cl-source-package sbcl-trivial-mimes))
4345
4346 (define-public ecl-trivial-mimes
4347 (sbcl-package->ecl-package sbcl-trivial-mimes))
4348
4349 (define-public sbcl-lack-middleware-static
4350 (let ((commit "abff8efeb0c3a848e6bb0022f2b8b7fa3a1bc88b")
4351 (revision "1"))
4352 (package
4353 (name "sbcl-lack-middleware-static")
4354 (version (git-version "0.1.0" revision commit))
4355 (source
4356 (origin
4357 (method git-fetch)
4358 (uri (git-reference
4359 (url "https://github.com/fukamachi/lack.git")
4360 (commit commit)))
4361 (file-name (git-file-name "lack-middleware-static" version))
4362 (sha256
4363 (base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85"))))
4364 (build-system asdf-build-system/sbcl)
4365 (arguments
4366 '(#:asd-file "lack-middleware-static.asd"
4367 #:asd-system-name "lack-middleware-static"
4368 #:test-asd-file "t-lack-middleware-static.asd"
4369 ;; XXX: Component :LACK not found
4370 #:tests? #f))
4371 (native-inputs
4372 `(("prove-asdf" ,sbcl-prove-asdf)))
4373 (inputs
4374 `(("sbcl-ironclad" ,sbcl-ironclad)
4375 ("sbcl-trivial-mimes" ,sbcl-trivial-mimes)
4376 ("sbcl-local-time" ,sbcl-local-time)))
4377 (home-page "https://github.com/fukamachi/lack")
4378 (synopsis "Lack, the core of Clack")
4379 (description
4380 "Lack is a Common Lisp library which allows web applications to be
4381 constructed of modular components. It was originally a part of Clack, however
4382 it's going to be rewritten as an individual project since Clack v2 with
4383 performance and simplicity in mind.")
4384 (license license:llgpl))))
4385
4386 (define-public cl-lack-middleware-static
4387 (sbcl-package->cl-source-package sbcl-lack-middleware-static))
4388
4389 (define-public sbcl-lack
4390 (let ((commit "abff8efeb0c3a848e6bb0022f2b8b7fa3a1bc88b")
4391 (revision "1"))
4392 (package
4393 (name "sbcl-lack")
4394 (version (git-version "0.1.0" revision commit))
4395 (source
4396 (origin
4397 (method git-fetch)
4398 (uri (git-reference
4399 (url "https://github.com/fukamachi/lack.git")
4400 (commit commit)))
4401 (file-name (git-file-name "lack" version))
4402 (sha256
4403 (base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85"))))
4404 (build-system asdf-build-system/sbcl)
4405 (arguments
4406 '(#:test-asd-file "t-lack.asd"
4407 ;; XXX: Component :CLACK not found
4408 #:tests? #f))
4409 (native-inputs
4410 `(("prove-asdf" ,sbcl-prove-asdf)))
4411 (inputs
4412 `(("sbcl-lack-component" ,sbcl-lack-component)
4413 ("sbcl-lack-util" ,sbcl-lack-util)))
4414 (home-page "https://github.com/fukamachi/lack")
4415 (synopsis "Lack, the core of Clack")
4416 (description
4417 "Lack is a Common Lisp library which allows web applications to be
4418 constructed of modular components. It was originally a part of Clack, however
4419 it's going to be rewritten as an individual project since Clack v2 with
4420 performance and simplicity in mind.")
4421 (license license:llgpl))))
4422
4423 (define-public cl-lack
4424 (sbcl-package->cl-source-package sbcl-lack))
4425
4426 (define-public sbcl-ningle
4427 (let ((commit "50bd4f09b5a03a7249bd4d78265d6451563b25ad")
4428 (revision "1"))
4429 (package
4430 (name "sbcl-ningle")
4431 (version (git-version "0.3.0" revision commit))
4432 (source
4433 (origin
4434 (method git-fetch)
4435 (uri (git-reference
4436 (url "https://github.com/fukamachi/ningle.git")
4437 (commit commit)))
4438 (file-name (git-file-name name version))
4439 (sha256
4440 (base32 "1bsl8cnxhacb8p92z9n89vhk1ikmij5zavk0m2zvmj7iqm79jzgw"))))
4441 (build-system asdf-build-system/sbcl)
4442 (arguments
4443 ;; TODO: pull in clack-test
4444 '(#:tests? #f
4445 #:phases
4446 (modify-phases %standard-phases
4447 (delete 'cleanup-files)
4448 (delete 'cleanup)
4449 (add-before 'cleanup 'combine-fasls
4450 (lambda* (#:key outputs #:allow-other-keys)
4451 (let* ((out (assoc-ref outputs "out"))
4452 (lib (string-append out "/lib/sbcl"))
4453 (ningle-path (string-append lib "/ningle"))
4454 (fasl-files (find-files out "\\.fasl$")))
4455 (mkdir-p ningle-path)
4456 (let ((fasl-path (lambda (name)
4457 (string-append ningle-path
4458 "/"
4459 (basename name)
4460 "--system.fasl"))))
4461 (for-each (lambda (file)
4462 (rename-file file
4463 (fasl-path
4464 (basename file ".fasl"))))
4465 fasl-files))
4466 fasl-files)
4467 #t)))))
4468 (native-inputs
4469 `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
4470 ("sbcl-prove" ,sbcl-prove)))
4471 (inputs
4472 `(("sbcl-cl-syntax" ,sbcl-cl-syntax)
4473 ("sbcl-cl-syntax-annot" ,sbcl-cl-syntax-annot)
4474 ("sbcl-myway" ,sbcl-myway)
4475 ("sbcl-lack-request" ,sbcl-lack-request)
4476 ("sbcl-lack-response" ,sbcl-lack-response)
4477 ("sbcl-lack-component" ,sbcl-lack-component)
4478 ("sbcl-alexandria" ,sbcl-alexandria)
4479 ("sbcl-babel" ,sbcl-babel)))
4480 (home-page "http://8arrow.org/ningle/")
4481 (synopsis "Super micro framework for Common Lisp")
4482 (description
4483 "Ningle is a lightweight web application framework for Common Lisp.")
4484 (license license:llgpl))))
4485
4486 (define-public cl-ningle
4487 (sbcl-package->cl-source-package sbcl-ningle))
4488
4489 (define-public sbcl-clack
4490 (let ((commit "e3e032843bb1220ab96263c411aa7f2feb4746e0")
4491 (revision "1"))
4492 (package
4493 (name "sbcl-clack")
4494 (version (git-version "2.0.0" revision commit))
4495 (source
4496 (origin
4497 (method git-fetch)
4498 (uri (git-reference
4499 (url "https://github.com/fukamachi/clack.git")
4500 (commit commit)))
4501 (file-name (git-file-name name version))
4502 (sha256
4503 (base32 "1ymzs6qyrwhlj6cgqsnpyn6g5cbp7a3s1vgxwna20y2q7y4iacy0"))))
4504 (build-system asdf-build-system/sbcl)
4505 (inputs
4506 `(("sbcl-lack" ,sbcl-lack)
4507 ("sbcl-lack-middleware-backtrace" ,sbcl-lack-middleware-backtrace)
4508 ("sbcl-bordeaux-threads" ,sbcl-bordeaux-threads)))
4509 (home-page "https://github.com/fukamachi/clack")
4510 (synopsis "Web Application Environment for Common Lisp")
4511 (description
4512 "Clack is a web application environment for Common Lisp inspired by
4513 Python's WSGI and Ruby's Rack.")
4514 (license license:llgpl))))
4515
4516 (define-public cl-clack
4517 (sbcl-package->cl-source-package sbcl-clack))
4518
4519 (define-public sbcl-log4cl
4520 (let ((commit "611e094458504b938d49de904eab141285328c7c")
4521 (revision "1"))
4522 (package
4523 (name "sbcl-log4cl")
4524 (build-system asdf-build-system/sbcl)
4525 (version "1.1.2")
4526 (source
4527 (origin
4528 (method git-fetch)
4529 (uri (git-reference
4530 (url "https://github.com/sharplispers/log4cl")
4531 (commit commit)))
4532 (file-name (git-file-name name version))
4533 (sha256
4534 (base32
4535 "08jly0s0g26b56hhpfizxsb4j0yvbh946sd205gr42dkzv8l7dsc"))))
4536 ;; FIXME: tests require stefil, sbcl-hu.dwim.stefil wont work
4537 (arguments
4538 `(#:tests? #f))
4539 (inputs `(("bordeaux-threads" ,sbcl-bordeaux-threads)))
4540 (synopsis "Common Lisp logging framework, modeled after Log4J")
4541 (home-page "https://github.com/7max/log4cl")
4542 (description "This is a Common Lisp logging framework that can log at
4543 various levels and mix text with expressions.")
4544 (license license:asl2.0))))
4545
4546 (define-public cl-log4cl
4547 (sbcl-package->cl-source-package sbcl-log4cl))
4548
4549 (define-public ecl-log4cl
4550 (sbcl-package->ecl-package sbcl-log4cl))
4551
4552 (define-public sbcl-find-port
4553 (let ((commit "00c96a25af93a0f8681d34ec548861f2d7485478")
4554 (revision "1"))
4555 (package
4556 (name "sbcl-find-port")
4557 (build-system asdf-build-system/sbcl)
4558 (version "0.1")
4559 (home-page "https://github.com/eudoxia0/find-port")
4560 (source
4561 (origin
4562 (method git-fetch)
4563 (uri (git-reference
4564 (url home-page)
4565 (commit commit)))
4566 (file-name (git-file-name name version))
4567 (sha256
4568 (base32
4569 "0d6dzbb45jh0rx90wgs6v020k2xa87mvzas3mvfzvivjvqqlpryq"))))
4570 (native-inputs
4571 `(("fiveam" ,sbcl-fiveam)))
4572 (inputs
4573 `(("sbcl-usocket" ,sbcl-usocket)))
4574 (synopsis "Find open ports programmatically in Common Lisp")
4575 (description "This is a small Common Lisp library that finds an open
4576 port within a range.")
4577 (license license:expat))))
4578
4579 (define-public cl-find-port
4580 (sbcl-package->cl-source-package sbcl-find-port))
4581
4582 (define-public ecl-find-port
4583 (sbcl-package->ecl-package sbcl-find-port))
4584
4585 (define-public sbcl-clunit
4586 (let ((commit "6f6d72873f0e1207f037470105969384f8380628")
4587 (revision "1"))
4588 (package
4589 (name "sbcl-clunit")
4590 (version (git-version "0.2.3" revision commit))
4591 (source
4592 (origin
4593 (method git-fetch)
4594 (uri (git-reference
4595 (url "https://github.com/tgutu/clunit.git")
4596 (commit commit)))
4597 (file-name (git-file-name name version))
4598 (sha256
4599 (base32
4600 "1idf2xnqzlhi8rbrqmzpmb3i1l6pbdzhhajkmhwbp6qjkmxa4h85"))))
4601 (build-system asdf-build-system/sbcl)
4602 (synopsis "CLUnit is a Common Lisp unit testing framework")
4603 (description
4604 "CLUnit is a Common Lisp unit testing framework. It is designed
4605 to be easy to use so that you can quickly start testing. CLUnit
4606 provides a rich set of features aimed at improving your unit testing
4607 experience.")
4608 (home-page "http://tgutu.github.io/clunit/")
4609 ;; MIT License
4610 (license license:expat))))
4611
4612 (define-public cl-clunit
4613 (sbcl-package->cl-source-package sbcl-clunit))
4614
4615 (define-public ecl-clunit
4616 (sbcl-package->ecl-package sbcl-clunit))
4617
4618 (define-public sbcl-py4cl
4619 (let ((commit "4c8a2b0814fd311f978964f825ce012290f60136")
4620 (revision "1"))
4621 (package
4622 (name "sbcl-py4cl")
4623 (version (git-version "0.0.0" revision commit))
4624 (source
4625 (origin
4626 (method git-fetch)
4627 (uri (git-reference
4628 (url "https://github.com/bendudson/py4cl.git")
4629 (commit commit)))
4630 (file-name (git-file-name name version))
4631 (sha256
4632 (base32
4633 "15mk7qdqjkj56gdnbyrdyz6r7m1h26ldvn6ch96pmvg5vmr1m45r"))
4634 (modules '((guix build utils)))))
4635 (build-system asdf-build-system/sbcl)
4636 (native-inputs
4637 `(("sbcl-clunit" ,sbcl-clunit)))
4638 (inputs
4639 `(("sbcl-trivial-garbage" ,sbcl-trivial-garbage)))
4640 (propagated-inputs
4641 ;; This package doesn't do anything without python available
4642 `(("python" ,python)
4643 ;; For multi-dimensional array support
4644 ("python-numpy" ,python-numpy)))
4645 (arguments
4646 '(#:phases
4647 (modify-phases %standard-phases
4648 (add-after 'unpack 'replace-*base-directory*-var
4649 (lambda* (#:key outputs #:allow-other-keys)
4650 ;; In the ASD, the author makes an attempt to
4651 ;; programatically determine the location of the
4652 ;; source-code so lisp can call into "py4cl.py". We can
4653 ;; hard-code this since we know where this file will
4654 ;; reside.
4655 (substitute* "src/callpython.lisp"
4656 (("py4cl/config:\\*base-directory\\*")
4657 (string-append
4658 "\""
4659 (assoc-ref outputs "out")
4660 "/share/common-lisp/sbcl-source/py4cl/"
4661 "\""))))))))
4662 (synopsis "Call python from Common Lisp")
4663 (description
4664 "Py4CL is a bridge between Common Lisp and Python, which enables Common
4665 Lisp to interact with Python code. It uses streams to communicate with a
4666 separate python process, the approach taken by cl4py. This is different to
4667 the CFFI approach used by burgled-batteries, but has the same goal.")
4668 (home-page "https://github.com/bendudson/py4cl")
4669 ;; MIT License
4670 (license license:expat))))
4671
4672 (define-public cl-py4cl
4673 (sbcl-package->cl-source-package sbcl-py4cl))
4674
4675 (define-public ecl-py4cl
4676 (sbcl-package->ecl-package sbcl-py4cl))
4677
4678 (define-public sbcl-parse-declarations
4679 (package
4680 (name "sbcl-parse-declarations")
4681 (version "1.0.0")
4682 (source
4683 (origin
4684 (method url-fetch)
4685 (uri (string-append
4686 "http://beta.quicklisp.org/archive/parse-declarations/"
4687 "2010-10-06/parse-declarations-20101006-darcs.tgz"))
4688 (sha256
4689 (base32
4690 "0r85b0jfacd28kr65kw9c13dx4i6id1dpmby68zjy63mqbnyawrd"))))
4691 (build-system asdf-build-system/sbcl)
4692 (arguments
4693 `(#:asd-file "parse-declarations-1.0.asd"
4694 #:asd-system-name "parse-declarations-1.0"))
4695 (home-page "https://common-lisp.net/project/parse-declarations/")
4696 (synopsis "Parse, filter, and build declarations")
4697 (description
4698 "Parse-Declarations is a Common Lisp library to help writing
4699 macros which establish bindings. To be semantically correct, such
4700 macros must take user declarations into account, as these may affect
4701 the bindings they establish. Yet the ANSI standard of Common Lisp does
4702 not provide any operators to work with declarations in a convenient,
4703 high-level way. This library provides such operators.")
4704 ;; MIT License
4705 (license license:expat)))
4706
4707 (define-public cl-parse-declarations
4708 (sbcl-package->cl-source-package sbcl-parse-declarations))
4709
4710 (define-public ecl-parse-declarations
4711 (sbcl-package->ecl-package sbcl-parse-declarations))
4712
4713 (define-public sbcl-cl-quickcheck
4714 (let ((commit "807b2792a30c883a2fbecea8e7db355b50ba662f")
4715 (revision "1"))
4716 (package
4717 (name "sbcl-cl-quickcheck")
4718 (version (git-version "0.0.4" revision commit))
4719 (source
4720 (origin
4721 (method git-fetch)
4722 (uri (git-reference
4723 (url "https://github.com/mcandre/cl-quickcheck.git")
4724 (commit commit)))
4725 (file-name (git-file-name name version))
4726 (sha256
4727 (base32
4728 "165lhypq5xkcys6hvzb3jq7ywnmqvzaflda29qk2cbs3ggas4767"))))
4729 (build-system asdf-build-system/sbcl)
4730 (synopsis
4731 "Common Lisp port of the QuickCheck unit test framework")
4732 (description
4733 "Common Lisp port of the QuickCheck unit test framework")
4734 (home-page "https://github.com/mcandre/cl-quickcheck")
4735 ;; MIT
4736 (license license:expat))))
4737
4738 (define-public cl-cl-quickcheck
4739 (sbcl-package->cl-source-package sbcl-cl-quickcheck))
4740
4741 (define-public ecl-cl-quickcheck
4742 (sbcl-package->ecl-package sbcl-cl-quickcheck))
4743
4744 (define-public sbcl-burgled-batteries3
4745 (let ((commit "9c0f6667e1a71ddf77e21793a0bea524710fef6e")
4746 (revision "1"))
4747 (package
4748 (name "sbcl-burgled-batteries3")
4749 (version (git-version "0.0.0" revision commit))
4750 (source
4751 (origin
4752 (method git-fetch)
4753 (uri (git-reference
4754 (url "https://github.com/snmsts/burgled-batteries3.git")
4755 (commit commit)))
4756 (file-name (git-file-name name version))
4757 (sha256
4758 (base32
4759 "0b726kz2xxcg5l930gz035rsdvhxrzmp05iwfwympnb4z4ammicb"))))
4760 (build-system asdf-build-system/sbcl)
4761 (arguments
4762 '(#:tests? #f
4763 #:phases
4764 (modify-phases %standard-phases
4765 (add-after 'unpack 'set-*cpython-include-dir*-var
4766 (lambda* (#:key inputs #:allow-other-keys)
4767 (substitute* "grovel-include-dir.lisp"
4768 (("\\(defparameter \\*cpython-include-dir\\* \\(detect-python\\)\\)")
4769 (string-append
4770 "(defparameter *cpython-include-dir* \""
4771 (assoc-ref inputs "python")
4772 "/include/python3.7m"
4773 "\")")))
4774 (substitute* "ffi-interface.lisp"
4775 (("\\*cpython-lib\\*")
4776 (format #f "'(\"~a/lib/libpython3.so\")"
4777 (assoc-ref inputs "python"))))
4778 #t)))))
4779 (native-inputs
4780 `(("python" ,python)
4781 ("sbcl-cl-fad" ,sbcl-cl-fad)
4782 ("sbcl-lift" ,sbcl-lift)
4783 ("sbcl-cl-quickcheck" ,sbcl-cl-quickcheck)))
4784 (inputs
4785 `(("sbcl-cffi" ,sbcl-cffi)
4786 ("sbcl-cffi-grovel" ,sbcl-cffi-grovel)
4787 ("sbcl-alexandria" , sbcl-alexandria)
4788 ("sbcl-parse-declarations-1.0" ,sbcl-parse-declarations)
4789 ("sbcl-trivial-garbage" ,sbcl-trivial-garbage)))
4790 (synopsis "Bridge between Python and Lisp (FFI bindings, etc.)")
4791 (description
4792 "This package provides a shim between Python3 (specifically, the
4793 CPython implementation of Python) and Common Lisp.")
4794 (home-page "https://github.com/snmsts/burgled-batteries3")
4795 ;; MIT
4796 (license license:expat))))
4797
4798 (define-public cl-burgled-batteries3
4799 (sbcl-package->cl-source-package sbcl-burgled-batteries3))
4800
4801 (define-public ecl-burgled-batteries3
4802 (sbcl-package->ecl-package sbcl-burgled-batteries3))
4803
4804 (define-public sbcl-metabang-bind
4805 (let ((commit "c93b7f7e1c18c954c2283efd6a7fdab36746ab5e")
4806 (revision "1"))
4807 (package
4808 (name "sbcl-metabang-bind")
4809 (version (git-version "0.8.0" revision commit))
4810 (source
4811 (origin
4812 (method git-fetch)
4813 (uri (git-reference
4814 (url "https://github.com/gwkkwg/metabang-bind.git")
4815 (commit commit)))
4816 (file-name (git-file-name name version))
4817 (sha256
4818 (base32
4819 "0hd0kr91795v77akpbcyqiss9p0p7ypa9dznrllincnmgvsxlmf0"))))
4820 (build-system asdf-build-system/sbcl)
4821 (native-inputs
4822 `(("sbcl-lift" ,sbcl-lift)))
4823 (synopsis "Macro that generalizes @code{multiple-value-bind} etc.")
4824 (description
4825 "Bind extends the idea of of let and destructing to provide a uniform
4826 syntax for all your accessor needs. It combines @code{let},
4827 @code{destructuring-bind}, @code{with-slots}, @code{with-accessors}, structure
4828 editing, property or association-lists, and @code{multiple-value-bind} and a
4829 whole lot more into a single form.")
4830 (home-page "https://common-lisp.net/project/metabang-bind/")
4831 ;; MIT License
4832 (license license:expat))))
4833
4834 (define-public cl-metabang-bind
4835 (sbcl-package->cl-source-package sbcl-metabang-bind))
4836
4837 (define-public ecl-metabang-bind
4838 (sbcl-package->ecl-package sbcl-metabang-bind))
4839
4840 (define-public sbcl-fare-utils
4841 (let ((commit "66e9c6f1499140bc00ccc22febf2aa528cbb5724")
4842 (revision "1"))
4843 (package
4844 (name "sbcl-fare-utils")
4845 (version (git-version "1.0.0.5" revision commit))
4846 (source
4847 (origin
4848 (method git-fetch)
4849 (uri
4850 (git-reference
4851 (url
4852 "https://gitlab.common-lisp.net/frideau/fare-utils.git")
4853 (commit commit)))
4854 (file-name (git-file-name name version))
4855 (sha256
4856 (base32
4857 "01wsr1aap3jdzhn4hrqjbhsjx6qci9dbd3gh4gayv1p49rbg8aqr"))))
4858 (build-system asdf-build-system/sbcl)
4859 (arguments
4860 `(#:test-asd-file "test/fare-utils-test.asd"))
4861 (native-inputs
4862 `(("sbcl-hu.dwim.stefil" ,sbcl-hu.dwim.stefil)))
4863 (synopsis "Collection of utilities and data structures")
4864 (description
4865 "fare-utils is a small collection of utilities. It contains a lot of
4866 basic everyday functions and macros.")
4867 (home-page "https://gitlab.common-lisp.net/frideau/fare-utils")
4868 ;; MIT License
4869 (license license:expat))))
4870
4871 (define-public cl-fare-utils
4872 (sbcl-package->cl-source-package sbcl-fare-utils))
4873
4874 (define-public ecl-fare-utils
4875 (sbcl-package->ecl-package sbcl-fare-utils))
4876
4877 (define-public sbcl-trivial-utf-8
4878 (let ((commit "4d427cfbb1c452436a0efb71c3205c9da67f718f")
4879 (revision "1"))
4880 (package
4881 (name "sbcl-trivial-utf-8")
4882 (version (git-version "0.0.0" revision commit))
4883 (source
4884 (origin
4885 (method git-fetch)
4886 (uri
4887 (git-reference
4888 (url (string-append "https://gitlab.common-lisp.net/"
4889 "trivial-utf-8/trivial-utf-8.git"))
4890 (commit commit)))
4891 (file-name (git-file-name name version))
4892 (sha256
4893 (base32
4894 "1jz27gz8gvqdmvp3k9bxschs6d5b3qgk94qp2bj6nv1d0jc3m1l1"))))
4895 (arguments
4896 ;; Guix incorrectly assumes the "8" is part of the version
4897 ;; number and lobs it off.
4898 `(#:asd-file "trivial-utf-8.asd"
4899 #:asd-system-name "trivial-utf-8"))
4900 (build-system asdf-build-system/sbcl)
4901 (synopsis "UTF-8 input/output library")
4902 (description
4903 "The Babel library solves a similar problem while understanding more
4904 encodings. Trivial UTF-8 was written before Babel existed, but for new
4905 projects you might be better off going with Babel. The one plus that Trivial
4906 UTF-8 has is that it doesn't depend on any other libraries.")
4907 (home-page "https://common-lisp.net/project/trivial-utf-8/")
4908 (license license:bsd-3))))
4909
4910 (define-public cl-trivial-utf-8
4911 (sbcl-package->cl-source-package sbcl-trivial-utf-8))
4912
4913 (define-public ecl-trivial-utf-8
4914 (sbcl-package->ecl-package sbcl-trivial-utf-8))
4915
4916 (define-public sbcl-idna
4917 (package
4918 (name "sbcl-idna")
4919 (build-system asdf-build-system/sbcl)
4920 (version "0.2.2")
4921 (home-page "https://github.com/antifuchs/idna")
4922 (source
4923 (origin
4924 (method git-fetch)
4925 (uri (git-reference
4926 (url home-page)
4927 (commit version)))
4928 (file-name (git-file-name name version))
4929 (sha256
4930 (base32
4931 "00nbr3mffxhlq14gg9d16pa6691s4qh35inyw76v906s77khm5a2"))))
4932 (inputs
4933 `(("split-sequence" ,sbcl-split-sequence)))
4934 (synopsis "IDNA string encoding and decoding routines for Common Lisp")
4935 (description "This Common Lisp library provides string encoding and
4936 decoding routines for IDNA, the International Domain Names in Applications.")
4937 (license license:expat)))
4938
4939 (define-public cl-idna
4940 (sbcl-package->cl-source-package sbcl-idna))
4941
4942 (define-public ecl-idna
4943 (sbcl-package->ecl-package sbcl-idna))
4944
4945 (define-public sbcl-swap-bytes
4946 (package
4947 (name "sbcl-swap-bytes")
4948 (build-system asdf-build-system/sbcl)
4949 (version "1.1")
4950 (home-page "https://github.com/sionescu/swap-bytes")
4951 (source
4952 (origin
4953 (method git-fetch)
4954 (uri (git-reference
4955 (url home-page)
4956 (commit (string-append "v" version))))
4957 (file-name (git-file-name name version))
4958 (sha256
4959 (base32
4960 "1qysbv0jngdfkv53y874qjhcxc4qi8ixaqq6j8bzxh5z0931wv55"))))
4961 (inputs
4962 `(("trivial-features" ,sbcl-trivial-features)))
4963 (native-inputs
4964 `(("fiveam" ,sbcl-fiveam)))
4965 (arguments
4966 ;; TODO: Tests fail, why?
4967 `(#:tests? #f))
4968 (synopsis "Efficient endianness conversion for Common Lisp")
4969 (description "This Common Lisp library provides optimized byte-swapping
4970 primitives. The library can change endianness of unsigned integers of length
4971 1/2/4/8. Very useful in implementing various network protocols and file
4972 formats.")
4973 (license license:expat)))
4974
4975 (define-public cl-swap-bytes
4976 (sbcl-package->cl-source-package sbcl-swap-bytes))
4977
4978 (define-public ecl-swap-bytes
4979 (sbcl-package->ecl-package sbcl-swap-bytes))
4980
4981 (define-public sbcl-iolib.asdf
4982 ;; Latest release is from June 2017.
4983 (let ((commit "81e20614c0d27f9605bf9766214e236fd31b99b4")
4984 (revision "1"))
4985 (package
4986 (name "sbcl-iolib.asdf")
4987 (build-system asdf-build-system/sbcl)
4988 (version "0.8.3")
4989 (home-page "https://github.com/sionescu/iolib")
4990 (source
4991 (origin
4992 (method git-fetch)
4993 (uri (git-reference
4994 (url home-page)
4995 (commit commit)))
4996 (file-name (git-file-name name version))
4997 (sha256
4998 (base32
4999 "1j81r0wm7nfbwl991f26s4npcy7kybzybd3m47rbxy31h0cfcmdm"))))
5000 (inputs
5001 `(("alexandria" ,sbcl-alexandria)))
5002 (arguments
5003 '(#:asd-file "iolib.asdf.asd"))
5004 (synopsis "ASDF component classes for IOLib, a Common Lisp I/O library")
5005 (description "IOlib is to be a better and more modern I/O library than
5006 the standard Common Lisp library. It contains a socket library, a DNS
5007 resolver, an I/O multiplexer(which supports @code{select(2)}, @code{epoll(4)}
5008 and @code{kqueue(2)}), a pathname library and file-system utilities.")
5009 (license license:expat))))
5010
5011 (define-public sbcl-iolib.conf
5012 (package
5013 (inherit sbcl-iolib.asdf)
5014 (name "sbcl-iolib.conf")
5015 (inputs
5016 `(("iolib.asdf" ,sbcl-iolib.asdf)))
5017 (arguments
5018 '(#:asd-file "iolib.conf.asd"))
5019 (synopsis "Compile-time configuration for IOLib, a Common Lisp I/O library")))
5020
5021 (define-public sbcl-iolib.common-lisp
5022 (package
5023 (inherit sbcl-iolib.asdf)
5024 (name "sbcl-iolib.common-lisp")
5025 (inputs
5026 `(("iolib.asdf" ,sbcl-iolib.asdf)
5027 ("iolib.conf" ,sbcl-iolib.conf)))
5028 (arguments
5029 '(#:asd-file "iolib.common-lisp.asd"))
5030 (synopsis "Slightly modified Common Lisp for IOLib, a Common Lisp I/O library")))
5031
5032 (define-public sbcl-iolib.base
5033 (package
5034 (inherit sbcl-iolib.asdf)
5035 (name "sbcl-iolib.base")
5036 (inputs
5037 `(("iolib.asdf" ,sbcl-iolib.asdf)
5038 ("iolib.conf" ,sbcl-iolib.conf)
5039 ("iolib.common-lisp" ,sbcl-iolib.common-lisp)
5040 ("split-sequence" ,sbcl-split-sequence)))
5041 (arguments
5042 '(#:asd-file "iolib.base.asd"))
5043 (synopsis "Base package for IOLib, a Common Lisp I/O library")))
5044
5045 (define-public sbcl-iolib.grovel
5046 (package
5047 (inherit sbcl-iolib.asdf)
5048 (name "sbcl-iolib.grovel")
5049 (inputs
5050 `(("iolib.asdf" ,sbcl-iolib.asdf)
5051 ("iolib.conf" ,sbcl-iolib.conf)
5052 ("iolib.base", sbcl-iolib.base)
5053 ("cffi", sbcl-cffi)))
5054 (arguments
5055 '(#:asd-file "iolib.grovel.asd"
5056 #:phases
5057 (modify-phases %standard-phases
5058 (add-after 'install 'install-header
5059 (lambda* (#:key outputs #:allow-other-keys)
5060 ;; This header is required by sbcl-iolib.
5061 (install-file "src/grovel/grovel-common.h"
5062 (string-append (assoc-ref outputs "out")
5063 "/lib/sbcl"))
5064 #t)))))
5065 (synopsis "CFFI Groveller for IOLib, a Common Lisp I/O library")))
5066
5067 (define-public sbcl-iolib
5068 (package
5069 (inherit sbcl-iolib.asdf)
5070 (name "sbcl-iolib")
5071 (inputs
5072 `(("iolib.asdf" ,sbcl-iolib.asdf)
5073 ("iolib.conf" ,sbcl-iolib.conf)
5074 ("iolib.grovel" ,sbcl-iolib.grovel)
5075 ("iolib.base" ,sbcl-iolib.base)
5076 ("bordeaux-threads" ,sbcl-bordeaux-threads)
5077 ("idna" ,sbcl-idna)
5078 ("swap-bytes" ,sbcl-swap-bytes)
5079 ("libfixposix" ,libfixposix)
5080 ("cffi" ,sbcl-cffi)))
5081 (native-inputs
5082 `(("fiveam" ,sbcl-fiveam)))
5083 (arguments
5084 '(#:asd-file "iolib.asd"
5085 #:asd-system-name "iolib"
5086 #:test-asd-file "iolib.tests.asd"
5087 #:phases
5088 (modify-phases %standard-phases
5089 (add-after 'unpack 'fix-paths
5090 (lambda* (#:key inputs #:allow-other-keys)
5091 (substitute* "src/syscalls/ffi-functions-unix.lisp"
5092 (("\\(:default \"libfixposix\"\\)")
5093 (string-append
5094 "(:default \""
5095 (assoc-ref inputs "libfixposix") "/lib/libfixposix\")")))
5096 ;; Socket tests need Internet access, disable them.
5097 (substitute* "iolib.tests.asd"
5098 (("\\(:file \"sockets\" :depends-on \\(\"pkgdcl\" \"defsuites\"\\)\\)")
5099 "")))))))
5100 (synopsis "Common Lisp I/O library")))
5101
5102 (define-public cl-iolib
5103 (sbcl-package->cl-source-package sbcl-iolib))
5104
5105 (define sbcl-iolib+multiplex
5106 (package
5107 (inherit sbcl-iolib)
5108 (name "sbcl-iolib+multiplex")
5109 (arguments
5110 (substitute-keyword-arguments (package-arguments sbcl-iolib)
5111 ((#:asd-system-name _) "iolib/multiplex")))))
5112
5113 (define sbcl-iolib+syscalls
5114 (package
5115 (inherit sbcl-iolib)
5116 (name "sbcl-iolib+syscalls")
5117 (arguments
5118 (substitute-keyword-arguments (package-arguments sbcl-iolib)
5119 ((#:asd-system-name _) "iolib/syscalls")))))
5120
5121 (define sbcl-iolib+streams
5122 (package
5123 (inherit sbcl-iolib)
5124 (name "sbcl-iolib+streams")
5125 (arguments
5126 (substitute-keyword-arguments (package-arguments sbcl-iolib)
5127 ((#:asd-system-name _) "iolib/streams")))))
5128
5129 (define sbcl-iolib+sockets
5130 (package
5131 (inherit sbcl-iolib)
5132 (name "sbcl-iolib+sockets")
5133 (arguments
5134 (substitute-keyword-arguments (package-arguments sbcl-iolib)
5135 ((#:asd-system-name _) "iolib/sockets")))))
5136
5137 (define-public sbcl-ieee-floats
5138 (let ((commit "566b51a005e81ff618554b9b2f0b795d3b29398d")
5139 (revision "1"))
5140 (package
5141 (name "sbcl-ieee-floats")
5142 (build-system asdf-build-system/sbcl)
5143 (version (git-version "20170924" revision commit))
5144 (home-page "https://github.com/marijnh/ieee-floats/")
5145 (source
5146 (origin
5147 (method git-fetch)
5148 (uri (git-reference
5149 (url home-page)
5150 (commit commit)))
5151 (file-name (git-file-name name version))
5152 (sha256
5153 (base32
5154 "1xyj49j9x3lc84cv3dhbf9ja34ywjk1c46dklx425fxw9mkwm83m"))))
5155 (native-inputs
5156 `(("fiveam" ,sbcl-fiveam)))
5157 (synopsis "IEEE 754 binary representation for floats in Common Lisp")
5158 (description "This is a Common Lisp library that allows to convert
5159 floating point values to IEEE 754 binary representation.")
5160 (license license:bsd-3))))
5161
5162 (define-public cl-ieee-floats
5163 (sbcl-package->cl-source-package sbcl-ieee-floats))
5164
5165 (define sbcl-closure-common
5166 (let ((commit "e3c5f5f454b72b01b89115e581c3c52a7e201e5c")
5167 (revision "1"))
5168 (package
5169 (name "sbcl-closure-common")
5170 (build-system asdf-build-system/sbcl)
5171 (version (git-version "20101006" revision commit))
5172 (home-page "https://common-lisp.net/project/cxml/")
5173 (source
5174 (origin
5175 (method git-fetch)
5176 (uri (git-reference
5177 (url "https://github.com/sharplispers/closure-common")
5178 (commit commit)))
5179 (file-name (git-file-name name version))
5180 (sha256
5181 (base32
5182 "0k5r2qxn122pxi301ijir3nayi9sg4d7yiy276l36qmzwhp4mg5n"))))
5183 (inputs
5184 `(("trivial-gray-streams" ,sbcl-trivial-gray-streams)
5185 ("babel" ,sbcl-babel)))
5186 (synopsis "Support Common Lisp library for CXML")
5187 (description "Closure-common is an internal helper library. The name
5188 Closure is a reference to the web browser it was originally written for.")
5189 ;; TODO: License?
5190 (license #f))))
5191
5192 (define-public sbcl-cxml+xml
5193 (let ((commit "00b22bf4c4cf11c993d5866fae284f95ab18e6bf")
5194 (revision "1"))
5195 (package
5196 (name "sbcl-cxml+xml")
5197 (build-system asdf-build-system/sbcl)
5198 (version (git-version "0.0.0" revision commit))
5199 (home-page "https://common-lisp.net/project/cxml/")
5200 (source
5201 (origin
5202 (method git-fetch)
5203 (uri (git-reference
5204 (url "https://github.com/sharplispers/cxml")
5205 (commit commit)))
5206 (file-name (git-file-name name version))
5207 (sha256
5208 (base32
5209 "13kif7rf3gqdycsk9zq0d7y0g9y81krkl0z87k0p2fkbjfgrph37"))))
5210 (inputs
5211 `(("closure-common" ,sbcl-closure-common)
5212 ("puri" ,sbcl-puri)
5213 ("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
5214 (arguments
5215 `(#:asd-file "cxml.asd"
5216 #:asd-system-name "cxml/xml"))
5217 (synopsis "Common Lisp XML parser")
5218 (description "CXML implements a namespace-aware, validating XML 1.0
5219 parser as well as the DOM Level 2 Core interfaces. Two parser interfaces are
5220 offered, one SAX-like, the other similar to StAX.")
5221 (license license:llgpl))))
5222
5223 (define sbcl-cxml+dom
5224 (package
5225 (inherit sbcl-cxml+xml)
5226 (name "sbcl-cxml+dom")
5227 (inputs
5228 `(("closure-common" ,sbcl-closure-common)
5229 ("puri" ,sbcl-puri)
5230 ("cxml+xml" ,sbcl-cxml+xml)))
5231 (arguments
5232 `(#:asd-file "cxml.asd"
5233 #:asd-system-name "cxml/dom"))))
5234
5235 (define sbcl-cxml+klacks
5236 (package
5237 (inherit sbcl-cxml+xml)
5238 (name "sbcl-cxml+klacks")
5239 (inputs
5240 `(("closure-common" ,sbcl-closure-common)
5241 ("puri" ,sbcl-puri)
5242 ("cxml+xml" ,sbcl-cxml+xml)))
5243 (arguments
5244 `(#:asd-file "cxml.asd"
5245 #:asd-system-name "cxml/klacks"))))
5246
5247 (define sbcl-cxml+test
5248 (package
5249 (inherit sbcl-cxml+xml)
5250 (name "sbcl-cxml+test")
5251 (inputs
5252 `(("closure-common" ,sbcl-closure-common)
5253 ("puri" ,sbcl-puri)
5254 ("cxml+xml" ,sbcl-cxml+xml)))
5255 (arguments
5256 `(#:asd-file "cxml.asd"
5257 #:asd-system-name "cxml/test"))))
5258
5259 (define-public sbcl-cxml
5260 (package
5261 (inherit sbcl-cxml+xml)
5262 (name "sbcl-cxml")
5263 (inputs
5264 `(("closure-common" ,sbcl-closure-common)
5265 ("puri" ,sbcl-puri)
5266 ("trivial-gray-streams" ,sbcl-trivial-gray-streams)
5267 ("cxml+dom" ,sbcl-cxml+dom)
5268 ("cxml+klacks" ,sbcl-cxml+klacks)
5269 ("cxml+test" ,sbcl-cxml+test)))
5270 (arguments
5271 `(#:asd-file "cxml.asd"
5272 #:asd-system-name "cxml"
5273 #:phases
5274 (modify-phases %standard-phases
5275 (add-after 'build 'install-dtd
5276 (lambda* (#:key outputs #:allow-other-keys)
5277 (install-file "catalog.dtd"
5278 (string-append
5279 (assoc-ref outputs "out")
5280 "/lib/" (%lisp-type)))))
5281 (add-after 'create-asd 'remove-component
5282 ;; XXX: The original .asd has no components, but our build system
5283 ;; creates an entry nonetheless. We need to remove it for the
5284 ;; generated .asd to load properly. See trivia.trivial for a
5285 ;; similar problem.
5286 (lambda* (#:key outputs #:allow-other-keys)
5287 (let* ((out (assoc-ref outputs "out"))
5288 (asd (string-append out "/lib/sbcl/cxml.asd")))
5289 (substitute* asd
5290 ((" :components
5291 ")
5292 ""))
5293 (substitute* asd
5294 ((" *\\(\\(:compiled-file \"cxml--system\"\\)\\)")
5295 ""))))))))))
5296
5297 (define-public cl-cxml
5298 (sbcl-package->cl-source-package sbcl-cxml))
5299
5300 (define-public sbcl-cl-reexport
5301 (let ((commit "312f3661bbe187b5f28536cd7ec2956e91366c3b")
5302 (revision "1"))
5303 (package
5304 (name "sbcl-cl-reexport")
5305 (build-system asdf-build-system/sbcl)
5306 (version (git-version "0.1" revision commit))
5307 (home-page "https://github.com/takagi/cl-reexport")
5308 (source
5309 (origin
5310 (method git-fetch)
5311 (uri (git-reference
5312 (url home-page)
5313 (commit commit)))
5314 (file-name (git-file-name name version))
5315 (sha256
5316 (base32
5317 "1cwpn1m3wrl0fl9plznn7p464db646gnfc8zkyk97dyxski2aq0x"))))
5318 (inputs
5319 `(("alexandria" ,sbcl-alexandria)))
5320 (arguments
5321 ;; TODO: Tests fail because cl-test-more is missing, but I can't find it online.
5322 `(#:tests? #f))
5323 (synopsis "HTTP cookie manager for Common Lisp")
5324 (description "cl-cookie is a Common Lisp library featuring parsing of
5325 cookie headers, cookie creation, cookie jar creation and more.")
5326 (license license:llgpl))))
5327
5328 (define-public cl-reexport
5329 (sbcl-package->cl-source-package sbcl-cl-reexport))
5330
5331 (define-public sbcl-cl-cookie
5332 (let ((commit "cea55aed8b9ad25fafd13defbcb9fe8f41b29546")
5333 (revision "1"))
5334 (package
5335 (name "sbcl-cl-cookie")
5336 (build-system asdf-build-system/sbcl)
5337 (version (git-version "0.9.10" revision commit))
5338 (home-page "https://github.com/fukamachi/cl-cookie")
5339 (source
5340 (origin
5341 (method git-fetch)
5342 (uri (git-reference
5343 (url home-page)
5344 (commit commit)))
5345 (file-name (git-file-name name version))
5346 (sha256
5347 (base32
5348 "090g7z75h98zvc1ldx0vh4jn4086dhjm2w30jcwkq553qmyxwl8h"))))
5349 (inputs
5350 `(("proc-parse" ,sbcl-proc-parse)
5351 ("alexandria" ,sbcl-alexandria)
5352 ("quri" ,sbcl-quri)
5353 ("cl-ppcre" ,sbcl-cl-ppcre)
5354 ("local-time" ,sbcl-local-time)))
5355 (native-inputs
5356 `(("prove-asdf" ,sbcl-prove-asdf)
5357 ("prove" ,sbcl-prove)))
5358 (arguments
5359 ;; TODO: Tests fail because cl-cookie depends on cl-cookie-test.
5360 `(#:tests? #f))
5361 (synopsis "HTTP cookie manager for Common Lisp")
5362 (description "cl-cookie is a Common Lisp library featuring parsing of
5363 cookie headers, cookie creation, cookie jar creation and more.")
5364 (license license:bsd-2))))
5365
5366 (define-public cl-cookie
5367 (sbcl-package->cl-source-package sbcl-cl-cookie))
5368
5369 (define-public sbcl-dexador
5370 (let ((commit "a2714d126cc94bc7a9a6e1e3c08de455b3a66378")
5371 (revision "1"))
5372 (package
5373 (name "sbcl-dexador")
5374 (build-system asdf-build-system/sbcl)
5375 (version (git-version "0.9.10" revision commit))
5376 (home-page "https://github.com/fukamachi/dexador")
5377 (source
5378 (origin
5379 (method git-fetch)
5380 (uri (git-reference
5381 (url home-page)
5382 (commit commit)))
5383 (file-name (git-file-name name version))
5384 (sha256
5385 (base32
5386 "0nbqgn4v3l2z6m1k1bdxfnqpfrk84nxdmz7csz11zzcfs4flkv79"))))
5387 (inputs
5388 `(("trivial-gray-streams" ,sbcl-trivial-gray-streams)
5389 ("babel" ,sbcl-babel)
5390 ("usocket" ,sbcl-usocket)
5391 ("fast-http" ,sbcl-fast-http)
5392 ("quri" ,sbcl-quri)
5393 ("fast-io" ,sbcl-fast-io)
5394 ("chunga" ,sbcl-chunga)
5395 ("cl-ppcre" ,sbcl-cl-ppcre)
5396 ("cl-cookie" ,sbcl-cl-cookie)
5397 ("trivial-mimes" ,sbcl-trivial-mimes)
5398 ("chipz" ,sbcl-chipz)
5399 ("cl-base64" ,sbcl-cl-base64)
5400 ("cl-reexport" ,sbcl-cl-reexport)
5401 ("cl+ssl" ,sbcl-cl+ssl)
5402 ("bordeaux-threads" ,sbcl-bordeaux-threads)
5403 ("alexandria" ,sbcl-alexandria)))
5404 (native-inputs
5405 `(("prove" ,sbcl-prove)
5406 ("prove-asdf" ,sbcl-prove-asdf)
5407 ("lack-request" ,sbcl-lack-request)
5408 ("clack" ,sbcl-clack)
5409 ("babel" ,sbcl-babel)
5410 ("alexandria" ,sbcl-alexandria)
5411 ("cl-ppcre" ,sbcl-cl-ppcre)
5412 ("local-time" ,sbcl-local-time)))
5413 (arguments
5414 ;; TODO: Circular dependency: tests depend on clack-test which depends on dexador.
5415 `(#:tests? #f
5416 #:phases
5417 (modify-phases %standard-phases
5418 (add-after 'unpack 'fix-permissions
5419 (lambda _ (make-file-writable "t/data/test.gz") #t)))))
5420 (synopsis "Yet another HTTP client for Common Lisp")
5421 (description "Dexador is yet another HTTP client for Common Lisp with
5422 neat APIs and connection-pooling. It is meant to supersede Drakma.")
5423 (license license:expat))))
5424
5425 (define-public cl-dexador
5426 (package
5427 (inherit (sbcl-package->cl-source-package sbcl-dexador))
5428 (arguments
5429 `(#:phases
5430 ;; asdf-build-system/source has its own phases and does not inherit
5431 ;; from asdf-build-system/sbcl phases.
5432 (modify-phases %standard-phases/source
5433 (add-after 'unpack 'fix-permissions
5434 (lambda _ (make-file-writable "t/data/test.gz") #t)))))))
5435
5436 (define-public ecl-dexador
5437 (sbcl-package->ecl-package sbcl-dexador))
5438
5439 (define-public sbcl-lisp-namespace
5440 (let ((commit "28107cafe34e4c1c67490fde60c7f92dc610b2e0")
5441 (revision "1"))
5442 (package
5443 (name "sbcl-lisp-namespace")
5444 (build-system asdf-build-system/sbcl)
5445 (version (git-version "0.1" revision commit))
5446 (home-page "https://github.com/guicho271828/lisp-namespace")
5447 (source
5448 (origin
5449 (method git-fetch)
5450 (uri (git-reference
5451 (url home-page)
5452 (commit commit)))
5453 (file-name (git-file-name name version))
5454 (sha256
5455 (base32
5456 "1jw2wykp06z2afb9nm1lgfzll5cjlj36pnknjx614057zkkxq4iy"))))
5457 (inputs
5458 `(("alexandria" ,sbcl-alexandria)))
5459 (native-inputs
5460 `(("fiveam" ,sbcl-fiveam)))
5461 (arguments
5462 `(#:test-asd-file "lisp-namespace.test.asd"
5463 ;; XXX: Component LISP-NAMESPACE-ASD::LISP-NAMESPACE.TEST not found
5464 #:tests? #f))
5465 (synopsis "LISP-N, or extensible namespaces in Common Lisp")
5466 (description "Common Lisp already has major 2 namespaces, function
5467 namespace and value namespace (or variable namespace), but there are actually
5468 more — e.g., class namespace.
5469 This library offers macros to deal with symbols from any namespace.")
5470 (license license:llgpl))))
5471
5472 (define-public cl-lisp-namespace
5473 (sbcl-package->cl-source-package sbcl-lisp-namespace))
5474
5475 (define-public sbcl-trivial-cltl2
5476 (let ((commit "8eec8407df833e8f27df8a388bc10913f16d9e83")
5477 (revision "1"))
5478 (package
5479 (name "sbcl-trivial-cltl2")
5480 (build-system asdf-build-system/sbcl)
5481 (version (git-version "0.1.1" revision commit))
5482 (home-page "https://github.com/Zulu-Inuoe/trivial-cltl2")
5483 (source
5484 (origin
5485 (method git-fetch)
5486 (uri (git-reference
5487 (url home-page)
5488 (commit commit)))
5489 (file-name (git-file-name name version))
5490 (sha256
5491 (base32
5492 "1dyyxz17vqv8hlfwq287gl8xxbvcnq798ajb7p5jdjz91wqf4bgk"))))
5493 (synopsis "Simple CLtL2 compatibility layer for Common Lisp")
5494 (description "This library is a portable compatibility layer around
5495 \"Common Lisp the Language, 2nd
5496 Edition\" (@url{https://www.cs.cmu.edu/Groups/AI/html/cltl/clm/node102.html})
5497 and it exports symbols from implementation-specific packages.")
5498 (license license:llgpl))))
5499
5500 (define-public cl-trivial-cltl2
5501 (sbcl-package->cl-source-package sbcl-trivial-cltl2))
5502
5503 (define-public sbcl-introspect-environment
5504 (let ((commit "fff42f8f8fd0d99db5ad6c5812e53de7d660020b")
5505 (revision "1"))
5506 (package
5507 (name "sbcl-introspect-environment")
5508 (build-system asdf-build-system/sbcl)
5509 (version (git-version "0.1" revision commit))
5510 (home-page "https://github.com/Bike/introspect-environment")
5511 (source
5512 (origin
5513 (method git-fetch)
5514 (uri (git-reference
5515 (url home-page)
5516 (commit commit)))
5517 (file-name (git-file-name name version))
5518 (sha256
5519 (base32
5520 "1i305n0wfmpac63ni4i3vixnnkl8daw5ncxy0k3dv92krgx6qzhp"))))
5521 (native-inputs
5522 `(("fiveam" ,sbcl-fiveam)))
5523 (synopsis "Common Lisp environment introspection portability layer")
5524 (description "This library is a small interface to portable but
5525 nonstandard introspection of Common Lisp environments. It is intended to
5526 allow a bit more compile-time introspection of environments in Common Lisp.
5527
5528 Quite a bit of information is available at the time a macro or compiler-macro
5529 runs; inlining info, type declarations, that sort of thing. This information
5530 is all standard - any Common Lisp program can @code{(declare (integer x))} and
5531 such.
5532
5533 This info ought to be accessible through the standard @code{&environment}
5534 parameters, but it is not. Several implementations keep the information for
5535 their own purposes but do not make it available to user programs, because
5536 there is no standard mechanism to do so.
5537
5538 This library uses implementation-specific hooks to make information available
5539 to users. This is currently supported on SBCL, CCL, and CMUCL. Other
5540 implementations have implementations of the functions that do as much as they
5541 can and/or provide reasonable defaults.")
5542 (license license:wtfpl2))))
5543
5544 (define-public cl-introspect-environment
5545 (sbcl-package->cl-source-package sbcl-introspect-environment))
5546
5547 (define-public sbcl-type-i
5548 (let ((commit "dea233f45f94064105ec09f0767de338f67dcbe2")
5549 (revision "1"))
5550 (package
5551 (name "sbcl-type-i")
5552 (build-system asdf-build-system/sbcl)
5553 (version (git-version "0.1" revision commit))
5554 (home-page "https://github.com/guicho271828/type-i")
5555 (source
5556 (origin
5557 (method git-fetch)
5558 (uri (git-reference
5559 (url home-page)
5560 (commit commit)))
5561 (file-name (git-file-name name version))
5562 (sha256
5563 (base32
5564 "039g5pbrhh65s0bhr9314gmd2nwc2y5lp2377c5qrc2lxky89qs3"))))
5565 (inputs
5566 `(("alexandria" ,sbcl-alexandria)
5567 ("introspect-environment" ,sbcl-introspect-environment)
5568 ("trivia.trivial" ,sbcl-trivia.trivial)))
5569 (native-inputs
5570 `(("fiveam" ,sbcl-fiveam)))
5571 (arguments
5572 `(#:test-asd-file "type-i.test.asd"))
5573 (synopsis "Type inference utility on unary predicates for Common Lisp")
5574 (description "This library tries to provide a way to detect what kind of
5575 type the given predicate is trying to check. This is different from inferring
5576 the return type of a function.")
5577 (license license:llgpl))))
5578
5579 (define-public cl-type-i
5580 (sbcl-package->cl-source-package sbcl-type-i))
5581
5582 (define-public sbcl-optima
5583 (let ((commit "373b245b928c1a5cce91a6cb5bfe5dd77eb36195")
5584 (revision "1"))
5585 (package
5586 (name "sbcl-optima")
5587 (build-system asdf-build-system/sbcl)
5588 (version (git-version "1.0" revision commit))
5589 (home-page "https://github.com/m2ym/optima")
5590 (source
5591 (origin
5592 (method git-fetch)
5593 (uri (git-reference
5594 (url home-page)
5595 (commit commit)))
5596 (file-name (git-file-name name version))
5597 (sha256
5598 (base32
5599 "1yw4ymq7ms89342kkvb3aqxgv0w38m9kd8ikdqxxzyybnkjhndal"))))
5600 (inputs
5601 `(("alexandria" ,sbcl-alexandria)
5602 ("closer-mop" ,sbcl-closer-mop)))
5603 (native-inputs
5604 `(("eos" ,sbcl-eos)))
5605 (arguments
5606 ;; XXX: Circular dependencies: tests depend on optima.ppcre which depends on optima.
5607 `(#:tests? #f
5608 #:test-asd-file "optima.test.asd"))
5609 (synopsis "Optimized pattern matching library for Common Lisp")
5610 (description "Optima is a fast pattern matching library which uses
5611 optimizing techniques widely used in the functional programming world.")
5612 (license license:expat))))
5613
5614 (define-public cl-optima
5615 (sbcl-package->cl-source-package sbcl-optima))
5616
5617 (define-public sbcl-fare-quasiquote
5618 (package
5619 (name "sbcl-fare-quasiquote")
5620 (build-system asdf-build-system/sbcl)
5621 (version "20171130")
5622 (home-page "http://common-lisp.net/project/fare-quasiquote")
5623 (source
5624 (origin
5625 (method url-fetch)
5626 (uri (string-append "http://beta.quicklisp.org/archive/fare-quasiquote/"
5627 (date->string (string->date version "~Y~m~d") "~Y-~m-~d")
5628 "/fare-quasiquote-"
5629 version
5630 "-git.tgz"))
5631 (sha256
5632 (base32
5633 "00brmh7ndsi0c97nibi8cy10j3l4gmkyrfrr5jr5lzkfb7ngyfqa"))))
5634 (inputs
5635 `(("fare-utils" ,sbcl-fare-utils)))
5636 (arguments
5637 ;; XXX: Circular dependencies: Tests depend on subsystems, which depend on the main systems.
5638 `(#:tests? #f
5639 #:phases
5640 (modify-phases %standard-phases
5641 ;; XXX: Require 1.0.0 version of fare-utils, and we package some
5642 ;; commits after 1.0.0.5, but ASDF fails to read the
5643 ;; "-REVISION-COMMIT" part generated by Guix.
5644 (add-after 'unpack 'patch-requirement
5645 (lambda _
5646 (substitute* "fare-quasiquote.asd"
5647 (("\\(:version \"fare-utils\" \"1.0.0\"\\)") "\"fare-utils\"")))))))
5648 (synopsis "Pattern-matching friendly implementation of quasiquote for Common Lisp")
5649 (description "The main purpose of this n+2nd reimplementation of
5650 quasiquote is enable matching of quasiquoted patterns, using Optima or
5651 Trivia.")
5652 (license license:expat)))
5653
5654 (define-public cl-fare-quasiquote
5655 (sbcl-package->cl-source-package sbcl-fare-quasiquote))
5656
5657 (define-public sbcl-fare-quasiquote-optima
5658 (package
5659 (inherit sbcl-fare-quasiquote)
5660 (name "sbcl-fare-quasiquote-optima")
5661 (inputs
5662 `(("optima" ,sbcl-optima)
5663 ("fare-quasiquote" ,sbcl-fare-quasiquote)))
5664 (arguments
5665 '(#:phases
5666 (modify-phases %standard-phases
5667 (add-after 'unpack 'patch-requirement
5668 (lambda _
5669 (substitute* "fare-quasiquote-optima.asd"
5670 (("\\(:version \"optima\" \"1\\.0\"\\)")
5671 "\"optima\""))
5672 #t)))))))
5673
5674 (define-public cl-fare-quasiquote-optima
5675 (sbcl-package->cl-source-package sbcl-fare-quasiquote-optima))
5676
5677 (define-public sbcl-fare-quasiquote-readtable
5678 (package
5679 (inherit sbcl-fare-quasiquote)
5680 (name "sbcl-fare-quasiquote-readtable")
5681 (inputs
5682 `(("fare-quasiquote" ,sbcl-fare-quasiquote)
5683 ("named-readtables" ,sbcl-named-readtables)))
5684 (description "The main purpose of this n+2nd reimplementation of
5685 quasiquote is enable matching of quasiquoted patterns, using Optima or
5686 Trivia.
5687
5688 This package uses fare-quasiquote with named-readtable.")))
5689
5690 (define-public cl-fare-quasiquote-readtable
5691 (sbcl-package->cl-source-package sbcl-fare-quasiquote-readtable))
5692
5693 ;; TODO: Add support for component-less system in asdf-build-system/sbcl.
5694 (define-public cl-fare-quasiquote-extras
5695 (package
5696 (inherit cl-fare-quasiquote)
5697 (name "cl-fare-quasiquote-extras")
5698 (build-system asdf-build-system/source)
5699 (propagated-inputs
5700 `(("fare-quasiquote" ,cl-fare-quasiquote)
5701 ("fare-quasiquote-optima" ,cl-fare-quasiquote-optima)
5702 ("fare-quasiquote-readtable" ,cl-fare-quasiquote-readtable)))
5703 (description "This library combines @code{fare-quasiquote-readtable} and
5704 @code{fare-quasiquote-optima}.")))
5705
5706 (define-public sbcl-trivia.level0
5707 (let ((commit "902e0c65602bbfe96ae82e679330b3771ddc7603")
5708 (revision "1"))
5709 (package
5710 (name "sbcl-trivia.level0")
5711 (build-system asdf-build-system/sbcl)
5712 (version (git-version "0.0.0" revision commit))
5713 (home-page "https://github.com/guicho271828/trivia")
5714 (source
5715 (origin
5716 (method git-fetch)
5717 (uri (git-reference
5718 (url home-page)
5719 (commit commit)))
5720 (file-name (git-file-name name version))
5721 (sha256
5722 (base32
5723 "11qbab30qqnfy9mx3x9fvgcw1jbvh1qn2cqv3p8xdn2m8981jvhr"))))
5724 (inputs
5725 `(("alexandria" ,sbcl-alexandria)))
5726 (synopsis "Pattern matching in Common Lisp")
5727 (description "Trivia is a pattern matching compiler that is compatible
5728 with Optima, another pattern matching library for Common Lisp. It is meant to
5729 be faster and more extensible than Optima.")
5730 (license license:llgpl))))
5731
5732 (define-public sbcl-trivia.level1
5733 (package
5734 (inherit sbcl-trivia.level0)
5735 (name "sbcl-trivia.level1")
5736 (inputs
5737 `(("trivia.level0" ,sbcl-trivia.level0)))
5738 (description "Trivia is a pattern matching compiler that is compatible
5739 with Optima, another pattern matching library for Common Lisp. It is meant to
5740 be faster and more extensible than Optima.
5741
5742 This system contains the core patterns of Trivia.")))
5743
5744 (define-public sbcl-trivia.level2
5745 (package
5746 (inherit sbcl-trivia.level0)
5747 (name "sbcl-trivia.level2")
5748 (inputs
5749 `(("trivia.level1" ,sbcl-trivia.level1)
5750 ("lisp-namespace" ,sbcl-lisp-namespace)
5751 ("trivial-cltl2" ,sbcl-trivial-cltl2)
5752 ("closer-mop" ,sbcl-closer-mop)))
5753 (description "Trivia is a pattern matching compiler that is compatible
5754 with Optima, another pattern matching library for Common Lisp. It is meant to
5755 be faster and more extensible than Optima.
5756
5757 This system contains a non-optimized pattern matcher compatible with Optima,
5758 with extensible optimizer interface.")))
5759
5760 (define-public sbcl-trivia.trivial
5761 (package
5762 (inherit sbcl-trivia.level0)
5763 (name "sbcl-trivia.trivial")
5764 (inputs
5765 `(("trivia.level2" ,sbcl-trivia.level2)))
5766 (arguments
5767 `(#:phases
5768 (modify-phases %standard-phases
5769 (replace 'create-asd-file
5770 (lambda* (#:key outputs inputs #:allow-other-keys)
5771 (let* ((out (assoc-ref outputs "out"))
5772 (lib (string-append out "/lib/" (%lisp-type)))
5773 (level2 (assoc-ref inputs "trivia.level2")))
5774 (mkdir-p lib)
5775 (install-file "trivia.trivial.asd" lib)
5776 ;; XXX: This .asd does not have any component and the build
5777 ;; system fails to work in this case. We should update the
5778 ;; build system to handle component-less .asd.
5779 ;; TODO: How do we append to file in Guile? It seems that
5780 ;; (open-file ... "a") gets a "Permission denied".
5781 (substitute* (string-append lib "/trivia.trivial.asd")
5782 (("\"\\)")
5783 (string-append "\")
5784
5785 (progn (asdf/source-registry:ensure-source-registry)
5786 (setf (gethash
5787 \"trivia.level2\"
5788 asdf/source-registry:*source-registry*)
5789 #p\""
5790 level2
5791 "/share/common-lisp/sbcl-bundle-systems/trivia.level2.asd\"))")))))))))
5792 (description "Trivia is a pattern matching compiler that is compatible
5793 with Optima, another pattern matching library for Common Lisp. It is meant to
5794 be faster and more extensible than Optima.
5795
5796 This system contains the base level system of Trivia with a trivial optimizer.")))
5797
5798 (define-public sbcl-trivia.balland2006
5799 (package
5800 (inherit sbcl-trivia.level0)
5801 (name "sbcl-trivia.balland2006")
5802 (inputs
5803 `(("trivia.trivial" ,sbcl-trivia.trivial)
5804 ("iterate" ,sbcl-iterate)
5805 ("type-i" ,sbcl-type-i)
5806 ("alexandria" ,sbcl-alexandria)))
5807 (arguments
5808 ;; Tests are done in trivia itself.
5809 `(#:tests? #f))
5810 (description "Trivia is a pattern matching compiler that is compatible
5811 with Optima, another pattern matching library for Common Lisp. It is meant to
5812 be faster and more extensible than Optima.
5813
5814 This system contains the base level system of Trivia with a trivial optimizer.")))
5815
5816 (define-public sbcl-trivia.ppcre
5817 (package
5818 (inherit sbcl-trivia.level0)
5819 (name "sbcl-trivia.ppcre")
5820 (inputs
5821 `(("trivia.trivial" ,sbcl-trivia.trivial)
5822 ("cl-ppcre" ,sbcl-cl-ppcre)))
5823 (description "Trivia is a pattern matching compiler that is compatible
5824 with Optima, another pattern matching library for Common Lisp. It is meant to
5825 be faster and more extensible than Optima.
5826
5827 This system contains the PPCRE extension.")))
5828
5829 (define-public sbcl-trivia.quasiquote
5830 (package
5831 (inherit sbcl-trivia.level0)
5832 (name "sbcl-trivia.quasiquote")
5833 (inputs
5834 `(("trivia.trivial" ,sbcl-trivia.trivial)
5835 ("fare-quasiquote" ,sbcl-fare-quasiquote)
5836 ("fare-quasiquote-readtable" ,sbcl-fare-quasiquote-readtable)))
5837 (description "Trivia is a pattern matching compiler that is compatible
5838 with Optima, another pattern matching library for Common Lisp. It is meant to
5839 be faster and more extensible than Optima.
5840
5841 This system contains the fare-quasiquote extension.")))
5842
5843 (define-public sbcl-trivia.cffi
5844 (package
5845 (inherit sbcl-trivia.level0)
5846 (name "sbcl-trivia.cffi")
5847 (inputs
5848 `(("cffi" ,sbcl-cffi)
5849 ("trivia.trivial" ,sbcl-trivia.trivial)))
5850 (description "Trivia is a pattern matching compiler that is compatible
5851 with Optima, another pattern matching library for Common Lisp. It is meant to
5852 be faster and more extensible than Optima.
5853
5854 This system contains the CFFI foreign slot access extension.")))
5855
5856 (define-public sbcl-trivia
5857 (package
5858 (inherit sbcl-trivia.level0)
5859 (name "sbcl-trivia")
5860 (inputs
5861 `(("trivia.balland2006" ,sbcl-trivia.balland2006)))
5862 (native-inputs
5863 `(("fiveam" ,sbcl-fiveam)
5864 ("trivia.ppcre" ,sbcl-trivia.ppcre)
5865 ("trivia.quasiquote" ,sbcl-trivia.quasiquote)
5866 ("trivia.cffi" ,sbcl-trivia.cffi)
5867 ("optima" ,sbcl-optima)))
5868 (arguments
5869 `(#:test-asd-file "trivia.test.asd"
5870 #:phases
5871 (modify-phases %standard-phases
5872 (add-after 'create-asd 'remove-component
5873 ;; XXX: The original .asd has no components, but our build system
5874 ;; creates an entry nonetheless. We need to remove it for the
5875 ;; generated .asd to load properly. See trivia.trivial for a
5876 ;; similar problem.
5877 (lambda* (#:key outputs #:allow-other-keys)
5878 (let* ((out (assoc-ref outputs "out"))
5879 (asd (string-append out "/lib/" (%lisp-type) "/trivia.asd")))
5880 (substitute* asd
5881 ((" :components
5882 ")
5883 ""))
5884 (substitute* asd
5885 ((" *\\(\\(:compiled-file \"trivia--system\"\\)\\)")
5886 ""))))))))
5887 (description "Trivia is a pattern matching compiler that is compatible
5888 with Optima, another pattern matching library for Common Lisp. It is meant to
5889 be faster and more extensible than Optima.")))
5890
5891 (define-public cl-trivia
5892 (sbcl-package->cl-source-package sbcl-trivia))
5893
5894 (define-public sbcl-mk-string-metrics
5895 (package
5896 (name "sbcl-mk-string-metrics")
5897 (version "0.1.2")
5898 (home-page "https://github.com/cbaggers/mk-string-metrics/")
5899 (source (origin
5900 (method git-fetch)
5901 (uri (git-reference
5902 (url home-page)
5903 (commit version)))
5904 (sha256
5905 (base32 "0bg0bv2mfd4k0g3x72x563hvmrx18xavaffr6xk5rh4if5j7kcf6"))
5906 (file-name (git-file-name name version))))
5907 (build-system asdf-build-system/sbcl)
5908 (synopsis "Calculate various string metrics efficiently in Common Lisp")
5909 (description "This library implements efficient algorithms that calculate
5910 various string metrics in Common Lisp:
5911
5912 @itemize
5913 @item Damerau-Levenshtein distance
5914 @item Hamming distance
5915 @item Jaccard similarity coefficient
5916 @item Jaro distance
5917 @item Jaro-Winkler distance
5918 @item Levenshtein distance
5919 @item Normalized Damerau-Levenshtein distance
5920 @item Normalized Levenshtein distance
5921 @item Overlap coefficient
5922 @end itemize\n")
5923 (license license:x11)))
5924
5925 (define-public cl-mk-string-metrics
5926 (sbcl-package->cl-source-package sbcl-mk-string-metrics))
5927
5928 (define-public sbcl-cl-str
5929 (let ((commit "3d5ec86e3a0199e5973aacde951086dfd754b5e5"))
5930 (package
5931 (name "sbcl-cl-str")
5932 (version (git-version "0.8" "1" commit))
5933 (home-page "https://github.com/vindarel/cl-str")
5934 (source (origin
5935 (method git-fetch)
5936 (uri (git-reference
5937 (url home-page)
5938 (commit commit)))
5939 (sha256
5940 (base32 "0szzzbygw9h985yxz909vvqrp69pmpcpahn7hn350lnyjislk9ga"))
5941 (file-name (git-file-name name version))))
5942 (build-system asdf-build-system/sbcl)
5943 (inputs
5944 `(("cl-ppcre" ,sbcl-cl-ppcre)
5945 ("cl-ppcre-unicode" ,sbcl-cl-ppcre-unicode)))
5946 (native-inputs
5947 `(("prove" ,sbcl-prove)
5948 ("prove-asdf" ,sbcl-prove-asdf)))
5949 (arguments
5950 `(#:asd-file "str.asd"
5951 #:asd-system-name "str"
5952 #:test-asd-file "str.test.asd"))
5953 (synopsis "Modern, consistent and terse Common Lisp string manipulation library")
5954 (description "A modern and consistent Common Lisp string manipulation
5955 library that focuses on modernity, simplicity and discoverability:
5956 @code{(str:trim s)} instead of @code{(string-trim '(#\\Space ...) s)}), or
5957 @code{str:concat strings} instead of an unusual format construct; one
5958 discoverable library instead of many; consistency and composability, where
5959 @code{s} is always the last argument, which makes it easier to feed pipes and
5960 arrows.")
5961 (license license:expat))))
5962
5963 (define-public cl-str
5964 (sbcl-package->cl-source-package sbcl-cl-str))
5965
5966 (define-public sbcl-cl-xmlspam
5967 (let ((commit "ea06abcca2a73a9779bcfb09081e56665f94e22a"))
5968 (package
5969 (name "sbcl-cl-xmlspam")
5970 (build-system asdf-build-system/sbcl)
5971 (version (git-version "0.0.0" "1" commit))
5972 (home-page "https://github.com/rogpeppe/cl-xmlspam")
5973 (source
5974 (origin
5975 (method git-fetch)
5976 (uri (git-reference
5977 (url home-page)
5978 (commit commit)))
5979 (file-name (string-append name "-" version))
5980 (sha256
5981 (base32
5982 "0w4rqvrgdgk3fwfq3kx4r7wwdr2bv3b6n3bdqwsiriw9psqzpz2s"))))
5983 (inputs
5984 `(("cxml" ,sbcl-cxml)
5985 ("cl-ppcre" ,sbcl-cl-ppcre)))
5986 (synopsis "Concise, regexp-like pattern matching on streaming XML for Common Lisp")
5987 (description "CXML does an excellent job at parsing XML elements, but what
5988 do you do when you have a XML file that's larger than you want to fit in
5989 memory, and you want to extract some information from it? Writing code to deal
5990 with SAX events, or even using Klacks, quickly becomes tedious.
5991 @code{cl-xmlspam} (for XML Stream PAttern Matcher) is designed to make it easy
5992 to write code that mirrors the structure of the XML that it's parsing. It
5993 also makes it easy to shift paradigms when necessary - the usual Lisp control
5994 constructs can be used interchangeably with pattern matching, and the full
5995 power of CXML is available when necessary.")
5996 (license license:bsd-3))))
5997
5998 ;; TODO: dbus uses ASDF's package-inferred-system which is not supported by
5999 ;; asdf-build-system/sbcl as of 2019-08-02. We should fix
6000 ;; asdf-build-system/sbcl.
6001 (define-public cl-dbus
6002 (let ((commit "24b452df3a45ca5dc95015500f34baad175c981a")
6003 (revision "1"))
6004 (package
6005 (name "cl-dbus")
6006 (build-system asdf-build-system/source)
6007 (version (git-version "20190408" revision commit))
6008 (home-page "https://github.com/death/dbus")
6009 (source
6010 (origin
6011 (method git-fetch)
6012 (uri (git-reference
6013 (url home-page)
6014 (commit commit)))
6015 (file-name (git-file-name name version))
6016 (sha256
6017 (base32
6018 "0fw2q866yddbf23nk9pxphm9gsasx35vjyss82xzvndnjmzlqfl5"))))
6019 ;; Inputs must be propagated or else packages depending on this won't have the necessary packages.
6020 (propagated-inputs
6021 `(("alexandria" ,sbcl-alexandria)
6022 ("trivial-garbage" ,sbcl-trivial-garbage)
6023 ("babel" ,sbcl-babel)
6024 ("iolib" ,sbcl-iolib)
6025 ("iolib+multiplex" ,(@@ (gnu packages lisp-xyz) sbcl-iolib+multiplex))
6026 ("iolib+syscalls" ,(@@ (gnu packages lisp-xyz) sbcl-iolib+syscalls))
6027 ("iolib+streams" ,(@@ (gnu packages lisp-xyz) sbcl-iolib+streams))
6028 ("iolib+sockets" ,(@@ (gnu packages lisp-xyz) sbcl-iolib+sockets))
6029 ("ieee-floats" ,sbcl-ieee-floats)
6030 ("flexi-streams" ,sbcl-flexi-streams)
6031 ("cl-xmlspam" ,sbcl-cl-xmlspam)
6032 ("ironclad" ,sbcl-ironclad)))
6033 (synopsis "D-Bus client library for Common Lisp")
6034 (description "This is a Common Lisp library that allows to publish D-Bus
6035 objects as well as send and notify other objects connected to a bus.")
6036 (license license:bsd-2))))
6037
6038 (define-public sbcl-cl-hooks
6039 (let ((commit "5b638083f3b4f1221a52631d9c8a0a265565cac7")
6040 (revision "1"))
6041 (package
6042 (name "sbcl-cl-hooks")
6043 (build-system asdf-build-system/sbcl)
6044 (version (git-version "0.2.1" revision commit))
6045 (home-page "https://github.com/scymtym/architecture.hooks")
6046 (source
6047 (origin
6048 (method git-fetch)
6049 (uri (git-reference
6050 (url home-page)
6051 (commit commit)))
6052 (file-name (git-file-name name version))
6053 (sha256
6054 (base32
6055 "0bg3l0a28lw5gqqjp6p6b5nhwqk46sgkb7184w5qbfngw1hk8x9y"))))
6056 (inputs
6057 `(("alexandria" ,sbcl-alexandria)
6058 ("let-plus" ,sbcl-let-plus)
6059 ("trivial-garbage" ,sbcl-trivial-garbage)
6060 ("closer-mop" ,sbcl-closer-mop)))
6061 (native-inputs
6062 `(("fiveam" ,sbcl-fiveam)))
6063 (synopsis "Hooks extension point mechanism (as in Emacs) for Common Lisp")
6064 (description "A hook, in the present context, is a certain kind of
6065 extension point in a program that allows interleaving the execution of
6066 arbitrary code with the execution of a the program without introducing any
6067 coupling between the two. Hooks are used extensively in the extensible editor
6068 Emacs.
6069
6070 In the Common LISP Object System (CLOS), a similar kind of extensibility is
6071 possible using the flexible multi-method dispatch mechanism. It may even seem
6072 that the concept of hooks does not provide any benefits over the possibilities
6073 of CLOS. However, there are some differences:
6074
6075 @itemize
6076
6077 @item There can be only one method for each combination of specializers and
6078 qualifiers. As a result this kind of extension point cannot be used by
6079 multiple extensions independently.
6080 @item Removing code previously attached via a @code{:before}, @code{:after} or
6081 @code{:around} method can be cumbersome.
6082 @item There could be other or even multiple extension points besides @code{:before}
6083 and @code{:after} in a single method.
6084 @item Attaching codes to individual objects using eql specializers can be
6085 cumbersome.
6086 @item Introspection of code attached a particular extension point is
6087 cumbersome since this requires enumerating and inspecting the methods of a
6088 generic function.
6089 @end itemize
6090
6091 This library tries to complement some of these weaknesses of method-based
6092 extension-points via the concept of hooks.")
6093 (license license:llgpl))))
6094
6095 (define-public cl-hooks
6096 (sbcl-package->cl-source-package sbcl-cl-hooks))
6097
6098 (define-public ecl-cl-hooks
6099 (sbcl-package->ecl-package sbcl-cl-hooks))
6100
6101 (define-public sbcl-s-sysdeps
6102 (let ((commit "d28246b5dffef9e73a0e0e6cfbc4e878006fe34d")
6103 (revision "1"))
6104 (package
6105 (name "sbcl-s-sysdeps")
6106 (build-system asdf-build-system/sbcl)
6107 (version (git-version "1" revision commit))
6108 (home-page "https://github.com/svenvc/s-sysdeps")
6109 (source
6110 (origin
6111 (method git-fetch)
6112 (uri (git-reference
6113 (url home-page)
6114 (commit commit)))
6115 (file-name (git-file-name name version))
6116 (sha256
6117 (base32
6118 "14b69b81yrxmjlvmm3lfxk04x5v7hqz4fql121334wh72czznfh9"))))
6119 (synopsis "Common Lisp abstraction layer over platform dependent functionality")
6120 (description "@code{s-sysdeps} is an abstraction layer over platform
6121 dependent functionality. This simple package is used as a building block in a
6122 number of other open source projects.
6123
6124 @code{s-sysdeps} abstracts:
6125
6126 @itemize
6127 @item managing processes,
6128 @item implementing a standard TCP/IP server,
6129 @item opening a client TCP/IP socket stream,
6130 @item working with process locks.
6131 @end itemize\n")
6132 (license license:llgpl))))
6133
6134 (define-public cl-s-sysdeps
6135 (sbcl-package->cl-source-package sbcl-s-sysdeps))
6136
6137 (define-public ecl-s-sysdeps
6138 (sbcl-package->ecl-package sbcl-s-sysdeps))
6139
6140 (define-public sbcl-cl-prevalence
6141 (let ((commit "c163c227ed85d430b82cb1e3502f72d4f88e3cfa")
6142 (revision "1"))
6143 (package
6144 (name "sbcl-cl-prevalence")
6145 (build-system asdf-build-system/sbcl)
6146 (version (git-version "5" revision commit))
6147 (home-page "https://github.com/40ants/cl-prevalence")
6148 (source
6149 (origin
6150 (method git-fetch)
6151 (uri (git-reference
6152 (url home-page)
6153 (commit commit)))
6154 (file-name (git-file-name name version))
6155 (sha256
6156 (base32
6157 "1i9zj1q2ahgwch56an21yzbgkynz0kab9fyxkq9mg8p3xrv38jjn"))))
6158 (inputs
6159 `(("s-sysdeps" ,sbcl-s-sysdeps)
6160 ("s-xml" ,sbcl-s-xml)))
6161 (synopsis "Implementation of object prevalence for Common Lisp")
6162 (description "This Common Lisp library implements object prevalence (see
6163 @url{https://en.wikipedia.org/wiki/System_prevalence}). It allows
6164 for (de)serializing to and from s-exps as well as XML. Serialization of arbitrary
6165 classes and cyclic data structures are supported.")
6166 (license license:llgpl))))
6167
6168 (define-public cl-prevalence
6169 (sbcl-package->cl-source-package sbcl-cl-prevalence))
6170
6171 (define-public ecl-cl-prevalence
6172 (sbcl-package->ecl-package sbcl-cl-prevalence))
6173
6174 (define-public sbcl-series
6175 (let ((commit "da9061b336119d1e5214aff9117171d494d5a58a")
6176 (revision "1"))
6177 (package
6178 (name "sbcl-series")
6179 (version (git-version "2.2.11" revision commit))
6180 (source
6181 (origin
6182 (method git-fetch)
6183 (uri (git-reference
6184 (url "git://git.code.sf.net/p/series/series")
6185 (commit commit)))
6186 (file-name (git-file-name name version))
6187 (sha256
6188 (base32
6189 "07hk2lhfx42zk018pxqvn4gs77vd4n4g8m4xxbqaxgca76mifwfw"))))
6190 (build-system asdf-build-system/sbcl)
6191 (arguments
6192 ;; Disable the tests, they are apparently buggy and I didn't find
6193 ;; a simple way to make them run and pass.
6194 '(#:tests? #f))
6195 (synopsis "Series data structure for Common Lisp")
6196 (description
6197 "This Common Lisp library provides a series data structure much like
6198 a sequence, with similar kinds of operations. The difference is that in many
6199 situations, operations on series may be composed functionally and yet execute
6200 iteratively, without the need to construct intermediate series values
6201 explicitly. In this manner, series provide both the clarity of a functional
6202 programming style and the efficiency of an iterative programming style.")
6203 (home-page "http://series.sourceforge.net/")
6204 (license license:expat))))
6205
6206 (define-public cl-series
6207 (sbcl-package->cl-source-package sbcl-series))
6208
6209 (define-public ecl-series
6210 (sbcl-package->ecl-package sbcl-series))
6211
6212 (define-public sbcl-periods
6213 (let ((commit "983d4a57325db3c8def942f163133cec5391ec28")
6214 (revision "1"))
6215 (package
6216 (name "sbcl-periods")
6217 (version (git-version "0.0.2" revision commit))
6218 (source
6219 (origin
6220 (method git-fetch)
6221 (uri (git-reference
6222 (url "https://github.com/jwiegley/periods.git")
6223 (commit commit)))
6224 (file-name (git-file-name name version))
6225 (sha256
6226 (base32
6227 "0z30jr3lxz3cmi019fsl4lgcgwf0yqpn95v9zkkkwgymdrkd4lga"))))
6228 (build-system asdf-build-system/sbcl)
6229 (inputs
6230 `(("local-time" ,sbcl-local-time)))
6231 (synopsis "Common Lisp library for manipulating date/time objects")
6232 (description
6233 "Periods is a Common Lisp library providing a set of utilities for
6234 manipulating times, distances between times, and both contiguous and
6235 discontiguous ranges of time.")
6236 (home-page "https://github.com/jwiegley/periods")
6237 (license license:bsd-3))))
6238
6239 (define-public cl-periods
6240 (sbcl-package->cl-source-package sbcl-periods))
6241
6242 (define-public ecl-periods
6243 (sbcl-package->ecl-package sbcl-periods))
6244
6245 (define-public sbcl-periods-series
6246 (package
6247 (inherit sbcl-periods)
6248 (name "sbcl-periods-series")
6249 (inputs
6250 `(("periods" ,sbcl-periods)
6251 ("series" ,sbcl-series)))
6252 (arguments
6253 '(#:asd-file "periods-series.asd"
6254 #:asd-system-name "periods-series"))
6255 (description
6256 "Periods-series is an extension of the periods Common Lisp library
6257 providing functions compatible with the series Common Lisp library.")))
6258
6259 (define-public cl-periods-series
6260 (sbcl-package->cl-source-package sbcl-periods-series))
6261
6262 (define-public ecl-periods-series
6263 (sbcl-package->ecl-package sbcl-periods-series))
6264
6265 (define-public sbcl-metatilities-base
6266 (let ((commit "6eaa9e3ff0939a93a92109dd0fcd218de85417d5")
6267 (revision "1"))
6268 (package
6269 (name "sbcl-metatilities-base")
6270 (version (git-version "0.6.6" revision commit))
6271 (source
6272 (origin
6273 (method git-fetch)
6274 (uri (git-reference
6275 (url "https://github.com/gwkkwg/metatilities-base.git")
6276 (commit commit)))
6277 (file-name (git-file-name name version))
6278 (sha256
6279 (base32
6280 "0xpa86pdzlnf4v5g64j3ifaplx71sx2ha8b7vvakswi652679ma0"))))
6281 (build-system asdf-build-system/sbcl)
6282 (native-inputs
6283 `(("lift" ,sbcl-lift)))
6284 (synopsis "Core of the metatilities Common Lisp library")
6285 (description
6286 "Metatilities-base is the core of the metatilities Common Lisp library
6287 which implements a set of utilities.")
6288 (home-page "https://common-lisp.net/project/metatilities-base/")
6289 (license license:expat))))
6290
6291 (define-public cl-metatilities-base
6292 (sbcl-package->cl-source-package sbcl-metatilities-base))
6293
6294 (define-public ecl-metatilities-base
6295 (sbcl-package->ecl-package sbcl-metatilities-base))
6296
6297 (define-public sbcl-cl-containers
6298 (let ((commit "810927e19d933bcf38ffeb7a23ce521efc432d45")
6299 (revision "1"))
6300 (package
6301 (name "sbcl-cl-containers")
6302 (version (git-version "0.12.1" revision commit))
6303 (source
6304 (origin
6305 (method git-fetch)
6306 (uri (git-reference
6307 (url "https://github.com/gwkkwg/cl-containers.git")
6308 (commit commit)))
6309 (file-name (git-file-name name version))
6310 (sha256
6311 (base32
6312 "1s9faxw7svhbjpkhfrz2qxgjm3cvyjb8wpyb4m8dx4i5g7vvprkv"))))
6313 (build-system asdf-build-system/sbcl)
6314 (native-inputs
6315 `(("lift" ,sbcl-lift)))
6316 (inputs
6317 `(("metatilities-base" ,sbcl-metatilities-base)))
6318 (arguments
6319 '(#:phases
6320 (modify-phases %standard-phases
6321 (add-after 'unpack 'relax-version-checks
6322 (lambda _
6323 (substitute* "cl-containers.asd"
6324 (("\\(:version \"metatilities-base\" \"0\\.6\\.6\"\\)")
6325 "\"metatilities-base\""))
6326 (substitute* "cl-containers-test.asd"
6327 (("\\(:version \"lift\" \"1\\.7\\.0\"\\)")
6328 "\"lift\""))
6329 #t)))))
6330 (synopsis "Container library for Common Lisp")
6331 (description
6332 "Common Lisp ships with a set of powerful built in data structures
6333 including the venerable list, full featured arrays, and hash-tables.
6334 CL-containers enhances and builds on these structures by adding containers
6335 that are not available in native Lisp (for example: binary search trees,
6336 red-black trees, sparse arrays and so on), and by providing a standard
6337 interface so that they are simpler to use and so that changing design
6338 decisions becomes significantly easier.")
6339 (home-page "https://common-lisp.net/project/cl-containers/")
6340 (license license:expat))))
6341
6342 (define-public cl-containers
6343 (sbcl-package->cl-source-package sbcl-cl-containers))
6344
6345 (define-public ecl-cl-containers
6346 (sbcl-package->ecl-package sbcl-cl-containers))
6347
6348 (define-public sbcl-xlunit
6349 (let ((commit "3805d34b1d8dc77f7e0ee527a2490194292dd0fc")
6350 (revision "1"))
6351 (package
6352 (name "sbcl-xlunit")
6353 (version (git-version "0.6.3" revision commit))
6354 (source
6355 (origin
6356 (method git-fetch)
6357 (uri (git-reference
6358 (url "http://git.kpe.io/xlunit.git")
6359 (commit commit)))
6360 (file-name (git-file-name name version))
6361 (sha256
6362 (base32
6363 "0argfmp9nghs4sihyj3f8ch9qfib2b7ll07v5m9ziajgzsfl5xw3"))))
6364 (build-system asdf-build-system/sbcl)
6365 (arguments
6366 '(#:phases
6367 (modify-phases %standard-phases
6368 (add-after 'unpack 'fix-tests
6369 (lambda _
6370 (substitute* "xlunit.asd"
6371 ((" :force t") ""))
6372 #t)))))
6373 (synopsis "Unit testing package for Common Lisp")
6374 (description
6375 "The XLUnit package is a toolkit for building test suites. It is based
6376 on the XPTest package by Craig Brozensky and the JUnit package by Kent Beck.")
6377 (home-page "http://quickdocs.org/xlunit/")
6378 (license license:bsd-3))))
6379
6380 (define-public cl-xlunit
6381 (sbcl-package->cl-source-package sbcl-xlunit))
6382
6383 (define-public ecl-xlunit
6384 (sbcl-package->ecl-package sbcl-xlunit))
6385
6386 (define-public sbcl-fprog
6387 (let ((commit "7016d1a98215f82605d1c158e7a16504ca1f4636")
6388 (revision "1"))
6389 (package
6390 (name "sbcl-fprog")
6391 (version (git-version "1.0.0" revision commit))
6392 (source
6393 (origin
6394 (method git-fetch)
6395 (uri (git-reference
6396 (url "https://github.com/jwiegley/cambl.git")
6397 (commit commit)))
6398 (file-name (git-file-name name version))
6399 (sha256
6400 (base32
6401 "103mry04j2k9vznsxm7wcvccgxkil92cdrv52miwcmxl8daa4jiz"))))
6402 (build-system asdf-build-system/sbcl)
6403 (synopsis "Functional programming utilities for Common Lisp")
6404 (description
6405 "@code{fprog} is a Common Lisp library allowing iteration over
6406 immutable lists sharing identical sublists.")
6407 (home-page "https://github.com/jwiegley/cambl")
6408 (license license:bsd-3))))
6409
6410 (define-public cl-fprog
6411 (sbcl-package->cl-source-package sbcl-fprog))
6412
6413 (define-public ecl-fprog
6414 (sbcl-package->ecl-package sbcl-fprog))
6415
6416 (define-public sbcl-cambl
6417 (let ((commit "7016d1a98215f82605d1c158e7a16504ca1f4636")
6418 (revision "1"))
6419 (package
6420 (inherit sbcl-fprog)
6421 (name "sbcl-cambl")
6422 (version (git-version "4.0.0" revision commit))
6423 (native-inputs
6424 `(("xlunit" ,sbcl-xlunit)))
6425 (inputs
6426 `(("alexandria" ,sbcl-alexandria)
6427 ("cl-containers" ,sbcl-cl-containers)
6428 ("local-time" ,sbcl-local-time)
6429 ("periods" ,sbcl-periods)
6430 ("fprog" ,sbcl-fprog)))
6431 (synopsis "Commoditized amounts and balances for Common Lisp")
6432 (description
6433 "CAMBL is a Common Lisp library providing a convenient facility for
6434 working with commoditized values. It does not allow compound units (and so is
6435 not suited for scientific operations) but does work rather nicely for the
6436 purpose of financial calculations."))))
6437
6438 (define-public cl-cambl
6439 (sbcl-package->cl-source-package sbcl-cambl))
6440
6441 (define-public ecl-cambl
6442 (sbcl-package->ecl-package sbcl-cambl))
6443
6444 (define-public sbcl-cl-ledger
6445 (let ((commit "08e0be41795e804cd36142e51756ad0b1caa377b")
6446 (revision "1"))
6447 (package
6448 (name "sbcl-cl-ledger")
6449 (version (git-version "4.0.0" revision commit))
6450 (source
6451 (origin
6452 (method git-fetch)
6453 (uri (git-reference
6454 (url "https://github.com/ledger/cl-ledger.git")
6455 (commit commit)))
6456 (file-name (git-file-name name version))
6457 (sha256
6458 (base32
6459 "1via0qf6wjcyxnfbmfxjvms0ik9j8rqbifgpmnhrzvkhrq9pv8h1"))))
6460 (build-system asdf-build-system/sbcl)
6461 (inputs
6462 `(("cambl" ,sbcl-cambl)
6463 ("cl-ppcre" ,sbcl-cl-ppcre)
6464 ("local-time" ,sbcl-local-time)
6465 ("periods-series" ,sbcl-periods-series)))
6466 (arguments
6467 '(#:phases
6468 (modify-phases %standard-phases
6469 (add-after 'unpack 'fix-system-definition
6470 (lambda _
6471 (substitute* "cl-ledger.asd"
6472 ((" :build-operation program-op") "")
6473 ((" :build-pathname \"cl-ledger\"") "")
6474 ((" :entry-point \"ledger::main\"") ""))
6475 #t)))))
6476 (synopsis "Common Lisp port of the Ledger accounting system")
6477 (description
6478 "CL-Ledger is a Common Lisp port of the Ledger double-entry accounting
6479 system.")
6480 (home-page "https://github.com/ledger/cl-ledger")
6481 (license license:bsd-3))))
6482
6483 (define-public cl-ledger
6484 (sbcl-package->cl-source-package sbcl-cl-ledger))
6485
6486 (define-public ecl-cl-ledger
6487 (sbcl-package->ecl-package sbcl-cl-ledger))
6488
6489 (define-public sbcl-bst
6490 (let ((commit "34f9c7e8e0a9f2c952fe310ab36cb630d5d9c15a")
6491 (revision "1"))
6492 (package
6493 (name "sbcl-bst")
6494 (version (git-version "1.1" revision commit))
6495 (source
6496 (origin
6497 (method git-fetch)
6498 (uri (git-reference
6499 (url "https://github.com/glv2/bst.git")
6500 (commit commit)))
6501 (file-name (git-file-name name version))
6502 (sha256
6503 (base32
6504 "1amxns7hvvh4arwbh8ciwfzplg127vh37dnbamv1m1kmmnmihfc8"))))
6505 (build-system asdf-build-system/sbcl)
6506 (native-inputs
6507 `(("alexandria" ,sbcl-alexandria)
6508 ("fiveam" ,sbcl-fiveam)))
6509 (synopsis "Binary search tree for Common Lisp")
6510 (description
6511 "BST is a Common Lisp library for working with binary search trees that
6512 can contain any kind of values.")
6513 (home-page "https://github.com/glv2/bst")
6514 (license license:gpl3))))
6515
6516 (define-public cl-bst
6517 (sbcl-package->cl-source-package sbcl-bst))
6518
6519 (define-public ecl-bst
6520 (sbcl-package->ecl-package sbcl-bst))
6521
6522 (define-public sbcl-cl-octet-streams
6523 (package
6524 (name "sbcl-cl-octet-streams")
6525 (version "1.0")
6526 (source
6527 (origin
6528 (method git-fetch)
6529 (uri (git-reference
6530 (url "https://github.com/glv2/cl-octet-streams.git")
6531 (commit (string-append "v" version))))
6532 (file-name (git-file-name name version))
6533 (sha256
6534 (base32
6535 "1d7mn6ydv0j2x4r7clpc9ijjwrnfpxmvhifv8n5j7jh7s744sf8d"))))
6536 (build-system asdf-build-system/sbcl)
6537 (native-inputs
6538 `(("fiveam" ,sbcl-fiveam)))
6539 (inputs
6540 `(("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
6541 (synopsis "In-memory octet streams for Common Lisp")
6542 (description
6543 "CL-octet-streams is a library implementing in-memory octet
6544 streams for Common Lisp. It was inspired by the trivial-octet-streams and
6545 cl-plumbing libraries.")
6546 (home-page "https://github.com/glv2/cl-octet-streams")
6547 (license license:gpl3+)))
6548
6549 (define-public cl-octet-streams
6550 (sbcl-package->cl-source-package sbcl-cl-octet-streams))
6551
6552 (define-public ecl-cl-octet-streams
6553 (sbcl-package->ecl-package sbcl-cl-octet-streams))
6554
6555 (define-public sbcl-lzlib
6556 (let ((commit "0de1db7129fef9a58a059d35a2fa2ecfc5b47b47")
6557 (revision "1"))
6558 (package
6559 (name "sbcl-lzlib")
6560 (version (git-version "1.0" revision commit))
6561 (source
6562 (origin
6563 (method git-fetch)
6564 (uri (git-reference
6565 (url "https://github.com/glv2/cl-lzlib.git")
6566 (commit commit)))
6567 (file-name (git-file-name name version))
6568 (sha256
6569 (base32
6570 "12ny7vj52fgnd8hb8fc8mry92vq4c1x72x2350191m4476j95clz"))))
6571 (build-system asdf-build-system/sbcl)
6572 (native-inputs
6573 `(("fiveam" ,sbcl-fiveam)))
6574 (inputs
6575 `(("cffi" ,sbcl-cffi)
6576 ("cl-octet-streams" ,sbcl-cl-octet-streams)
6577 ("lzlib" ,lzlib)))
6578 (arguments
6579 '(#:phases
6580 (modify-phases %standard-phases
6581 (add-after 'unpack 'fix-paths
6582 (lambda* (#:key inputs #:allow-other-keys)
6583 (substitute* "src/lzlib.lisp"
6584 (("liblz\\.so")
6585 (string-append (assoc-ref inputs "lzlib") "/lib/liblz.so")))
6586 #t)))))
6587 (synopsis "Common Lisp library for lzip (de)compression")
6588 (description
6589 "This Common Lisp library provides functions for lzip (LZMA)
6590 compression/decompression using bindings to the lzlib C library.")
6591 (home-page "https://github.com/glv2/cl-lzlib")
6592 (license license:gpl3+))))
6593
6594 (define-public cl-lzlib
6595 (sbcl-package->cl-source-package sbcl-lzlib))
6596
6597 (define-public ecl-lzlib
6598 (sbcl-package->ecl-package sbcl-lzlib))
6599
6600 (define-public sbcl-chanl
6601 (let ((commit "2362b57550c2c9238cc882d03553aaa1040b7340")
6602 (revision "0"))
6603 (package
6604 (name "sbcl-chanl")
6605 (version (git-version "0.4.1" revision commit))
6606 (source
6607 (origin
6608 (method git-fetch)
6609 (uri (git-reference
6610 (url "https://github.com/zkat/chanl.git")
6611 (commit commit)))
6612 (file-name (git-file-name name version))
6613 (sha256
6614 (base32
6615 "0ag3wz7yrqwp0s5069wwda98z3rrqd25spg8sa8rdqghj084w28w"))))
6616 (build-system asdf-build-system/sbcl)
6617 (native-inputs
6618 `(("fiveam" ,sbcl-fiveam)))
6619 (inputs
6620 `(("bordeaux-threads" ,sbcl-bordeaux-threads)))
6621 (synopsis "Portable channel-based concurrency for Common Lisp")
6622 (description "Common Lisp library for channel-based concurrency. In
6623 a nutshell, you create various threads sequentially executing tasks you need
6624 done, and use channel objects to communicate and synchronize the state of these
6625 threads.")
6626 (home-page "https://github.com/zkat/chanl")
6627 (license (list license:expat license:bsd-3)))))
6628
6629 (define-public cl-chanl
6630 (sbcl-package->cl-source-package sbcl-chanl))
6631
6632 (define-public ecl-chanl
6633 (let ((base (sbcl-package->ecl-package sbcl-chanl)))
6634 (package
6635 (inherit base)
6636 (arguments
6637 (substitute-keyword-arguments (package-arguments base)
6638 ;; The CHANL.ACTORS package uses the :ARGUMENTS option of
6639 ;; DEFINE-METHOD-COMBINATION, which is not implemented in ECL yet
6640 ;; (see https://gitlab.com/embeddable-common-lisp/ecl/issues/305).
6641 ;; So let's disable it for now, as it allows compiling the library
6642 ;; and using the rest of it.
6643 ((#:phases phases '%standard-phases)
6644 `(modify-phases ,phases
6645 (add-after 'unpack 'disable-chanl-actors
6646 (lambda _
6647 (substitute* "chanl.asd"
6648 (("\\(:file \"actors\"\\)") ""))
6649 #t))))
6650 ;; Disable the tests for now, as the SEND-SEQUENCE test seems to
6651 ;; never end.
6652 ((#:tests? _ #f) #f))))))
6653
6654 (define-public sbcl-cl-store
6655 (let ((commit "c787337a16ea8cf8a06227f35933a4ec774746b3")
6656 (revision "1"))
6657 (package
6658 (name "sbcl-cl-store")
6659 (version (git-version "0.8.11" revision commit))
6660 (source
6661 (origin
6662 (method git-fetch)
6663 (uri (git-reference
6664 (url "https://github.com/skypher/cl-store.git")
6665 (commit commit)))
6666 (file-name (git-file-name name version))
6667 (sha256
6668 (base32
6669 "194srkg8nrym19c6i7zbnkzshc1qhqa82m53qnkirz9fw928bqxr"))))
6670 (build-system asdf-build-system/sbcl)
6671 (native-inputs
6672 `(("rt" ,sbcl-rt)))
6673 (synopsis "Common Lisp library to serialize data")
6674 (description
6675 "CL-STORE is a portable serialization package which should give you the
6676 ability to store all Common Lisp data types into streams.")
6677 (home-page "https://www.common-lisp.net/project/cl-store/")
6678 (license license:expat))))
6679
6680 (define-public cl-store
6681 (sbcl-package->cl-source-package sbcl-cl-store))
6682
6683 (define-public ecl-cl-store
6684 (sbcl-package->ecl-package sbcl-cl-store))
6685
6686 (define-public sbcl-cl-gobject-introspection
6687 (let ((commit "7b703e2384945ea0ac39d9b766de434a08d81560")
6688 (revision "0"))
6689 (package
6690 (name "sbcl-cl-gobject-introspection")
6691 (version (git-version "0.3" revision commit))
6692 (home-page "https://github.com/andy128k/cl-gobject-introspection")
6693 (source
6694 (origin
6695 (method git-fetch)
6696 (uri (git-reference
6697 (url home-page)
6698 (commit commit)))
6699 (file-name (git-file-name name version))
6700 (sha256
6701 (base32
6702 "1zcqd2qj14f6b38vys8gr89s6cijsp9r8j43xa8lynilwva7bwyh"))))
6703 (build-system asdf-build-system/sbcl)
6704 (inputs
6705 `(("alexandria" ,sbcl-alexandria)
6706 ("cffi" ,sbcl-cffi)
6707 ("iterate" ,sbcl-iterate)
6708 ("trivial-garbage" ,sbcl-trivial-garbage)
6709 ("glib" ,glib)
6710 ("gobject-introspection" ,gobject-introspection)))
6711 (native-inputs
6712 `(("fiveam" ,sbcl-fiveam)))
6713 (arguments
6714 ;; TODO: Tests fail, see
6715 ;; https://github.com/andy128k/cl-gobject-introspection/issues/70.
6716 '(#:tests? #f
6717 #:phases
6718 (modify-phases %standard-phases
6719 (add-after (quote unpack) (quote fix-paths)
6720 (lambda* (#:key inputs #:allow-other-keys)
6721 (substitute* "src/init.lisp"
6722 (("libgobject-2\\.0\\.so")
6723 (string-append (assoc-ref inputs "glib") "/lib/libgobject-2.0.so"))
6724 (("libgirepository-1\\.0\\.so")
6725 (string-append (assoc-ref inputs "gobject-introspection")
6726 "/lib/libgirepository-1.0.so")))
6727 #t)))))
6728 (synopsis "Common Lisp bindings to GObject Introspection")
6729 (description
6730 "This library is a bridge between Common Lisp and GObject
6731 Introspection, which enables Common Lisp programs to access the full interface
6732 of C+GObject libraries without the need of writing dedicated bindings.")
6733 (license (list license:bsd-3
6734 ;; Tests are under a different license.
6735 license:llgpl)))))
6736
6737 (define-public cl-gobject-introspection
6738 (sbcl-package->cl-source-package sbcl-cl-gobject-introspection))
6739
6740 (define-public sbcl-string-case
6741 (let ((commit "718c761e33749e297cd2809c7ba3ade1985c49f7")
6742 (revision "0"))
6743 (package
6744 (name "sbcl-string-case")
6745 (version (git-version "0.0.2" revision commit))
6746 (home-page "https://github.com/pkhuong/string-case")
6747 (source
6748 (origin
6749 (method git-fetch)
6750 (uri (git-reference
6751 (url home-page)
6752 (commit commit)))
6753 (file-name (git-file-name name version))
6754 (sha256
6755 (base32
6756 "1n5i3yh0h5s636rcnwn7jwqy3rjflikra04lymimhpcshhjsk0md"))))
6757 (build-system asdf-build-system/sbcl)
6758 (synopsis "Efficient string= case in Common Lisp")
6759 (description
6760 "@code{string-case} is a Common Lisp macro that generates specialised decision
6761 trees to dispatch on string equality.")
6762 (license license:bsd-3))))
6763
6764 (define-public cl-string-case
6765 (sbcl-package->cl-source-package sbcl-string-case))
6766
6767 (define-public ecl-string-case
6768 (sbcl-package->ecl-package sbcl-string-case))
6769
6770 (define-public sbcl-global-vars
6771 (let ((commit "c749f32c9b606a1457daa47d59630708ac0c266e")
6772 (revision "0"))
6773 (package
6774 (name "sbcl-global-vars")
6775 (version (git-version "1.0.0" revision commit))
6776 (home-page "https://github.com/lmj/global-vars")
6777 (source
6778 (origin
6779 (method git-fetch)
6780 (uri (git-reference
6781 (url home-page)
6782 (commit commit)))
6783 (file-name (git-file-name name version))
6784 (sha256
6785 (base32
6786 "06m3xc8l3pgsapl8fvsi9wf6y46zs75cp9zn7zh6dc65v4s5wz3d"))))
6787 (build-system asdf-build-system/sbcl)
6788 (synopsis "Efficient global variables in Common Lisp")
6789 (description
6790 "In Common Lisp, a special variable that is never dynamically bound
6791 typically serves as a stand-in for a global variable. The @code{global-vars}
6792 library provides true global variables that are implemented by some compilers.
6793 An attempt to rebind a global variable properly results in a compiler error.
6794 That is, a global variable cannot be dynamically bound.
6795
6796 Global variables therefore allow us to communicate an intended usage that
6797 differs from special variables. Global variables are also more efficient than
6798 special variables, especially in the presence of threads.")
6799 (license license:expat))))
6800
6801 (define-public cl-global-vars
6802 (sbcl-package->cl-source-package sbcl-global-vars))
6803
6804 (define-public ecl-global-vars
6805 (sbcl-package->ecl-package sbcl-global-vars))
6806
6807 (define-public sbcl-trivial-file-size
6808 (let ((commit "1c1d672a01a446ba0391dbb4ffc40be3b0476f23")
6809 (revision "0"))
6810 (package
6811 (name "sbcl-trivial-file-size")
6812 (version (git-version "0.0.0" revision commit))
6813 (home-page "https://github.com/ruricolist/trivial-file-size")
6814 (source
6815 (origin
6816 (method git-fetch)
6817 (uri (git-reference
6818 (url home-page)
6819 (commit commit)))
6820 (file-name (git-file-name name version))
6821 (sha256
6822 (base32
6823 "17pp86c9zs4y7i1sh7q9gbfw9iqv6655k7fz8qbj9ly1ypgxp4qs"))))
6824 (build-system asdf-build-system/sbcl)
6825 (native-inputs
6826 `(("fiveam" ,sbcl-fiveam)))
6827 (synopsis "Size of a file in bytes in Common Lisp")
6828 (description
6829 "The canonical way to determine the size of a file in bytes, using Common Lisp,
6830 is to open the file with an element type of (unsigned-byte 8) and then
6831 calculate the length of the stream. This is less than ideal. In most cases
6832 it is better to get the size of the file from its metadata, using a system
6833 call.
6834
6835 This library exports a single function, file-size-in-octets. It returns the
6836 size of a file in bytes, using system calls when possible.")
6837 (license license:expat))))
6838
6839 (define-public cl-trivial-file-size
6840 (sbcl-package->cl-source-package sbcl-trivial-file-size))
6841
6842 (define-public ecl-trivial-file-size
6843 (sbcl-package->ecl-package sbcl-trivial-file-size))
6844
6845 (define-public sbcl-trivial-macroexpand-all
6846 (let ((commit "933270ac7107477de1bc92c1fd641fe646a7a8a9")
6847 (revision "0"))
6848 (package
6849 (name "sbcl-trivial-macroexpand-all")
6850 (version (git-version "0.0.0" revision commit))
6851 (home-page "https://github.com/cbaggers/trivial-macroexpand-all")
6852 (source
6853 (origin
6854 (method git-fetch)
6855 (uri (git-reference
6856 (url home-page)
6857 (commit commit)))
6858 (file-name (git-file-name name version))
6859 (sha256
6860 (base32
6861 "191hnn4b5j4i3crydmlzbm231kj0h7l8zj6mzj69r1npbzkas4bd"))))
6862 (build-system asdf-build-system/sbcl)
6863 (native-inputs
6864 `(("fiveam" ,sbcl-fiveam)))
6865 (synopsis "Portable macroexpand-all for Common Lisp")
6866 (description
6867 "This library provides a macroexpand-all function that calls the
6868 implementation specific equivalent.")
6869 (license license:unlicense))))
6870
6871 (define-public cl-trivial-macroexpand-all
6872 (sbcl-package->cl-source-package sbcl-trivial-macroexpand-all))
6873
6874 (define-public ecl-trivial-macroexpand-all
6875 (sbcl-package->ecl-package sbcl-trivial-macroexpand-all))
6876
6877 (define-public sbcl-serapeum
6878 (let ((commit "65837f8a0d65b36369ec8d000fff5c29a395b5fe")
6879 (revision "0"))
6880 (package
6881 (name "sbcl-serapeum")
6882 (version (git-version "0.0.0" revision commit))
6883 (home-page "https://github.com/ruricolist/serapeum")
6884 (source
6885 (origin
6886 (method git-fetch)
6887 (uri (git-reference
6888 (url home-page)
6889 (commit commit)))
6890 (file-name (git-file-name name version))
6891 (sha256
6892 (base32
6893 "0clwf81r2lvk1rbfvk91s9zmbkas9imf57ilqclw12mxaxlfsnbw"))))
6894 (build-system asdf-build-system/sbcl)
6895 (inputs
6896 `(("alexandria" ,sbcl-alexandria)
6897 ("trivia" ,sbcl-trivia)
6898 ("trivia.quasiquote" ,sbcl-trivia.quasiquote)
6899 ("split-sequence" ,sbcl-split-sequence)
6900 ("string-case" ,sbcl-string-case)
6901 ("parse-number" ,sbcl-parse-number)
6902 ("trivial-garbage" ,sbcl-trivial-garbage)
6903 ("bordeaux-threads" ,sbcl-bordeaux-threads)
6904 ("named-readtables" ,sbcl-named-readtables)
6905 ("fare-quasiquote-extras" ,cl-fare-quasiquote-extras)
6906 ("parse-declarations-1.0" ,sbcl-parse-declarations)
6907 ("global-vars" ,sbcl-global-vars)
6908 ("trivial-file-size" ,sbcl-trivial-file-size)
6909 ("trivial-macroexpand-all" ,sbcl-trivial-macroexpand-all)))
6910 (native-inputs
6911 `(("fiveam" ,sbcl-fiveam)
6912 ("local-time" ,sbcl-local-time)))
6913 (arguments
6914 '(#:phases
6915 (modify-phases %standard-phases
6916 (add-after 'unpack 'disable-failing-tests
6917 (lambda* (#:key inputs #:allow-other-keys)
6918 (substitute* "serapeum.asd"
6919 ;; Guix does not have Quicklisp, and probably never will.
6920 (("\\(:file \"quicklisp\"\\)") ""))
6921 #t)))))
6922 (synopsis "Common Lisp utility library beyond Alexandria")
6923 (description
6924 "Serapeum is a conservative library of Common Lisp utilities. It is a
6925 supplement, not a competitor, to Alexandria.")
6926 (license license:expat))))
6927
6928 (define-public cl-serapeum
6929 (sbcl-package->cl-source-package sbcl-serapeum))
6930
6931 (define-public sbcl-arrows
6932 (let ((commit "df7cf0067e0132d9697ac8b1a4f1b9c88d4f5382")
6933 (revision "0"))
6934 (package
6935 (name "sbcl-arrows")
6936 (version (git-version "0.2.0" revision commit))
6937 (source
6938 (origin
6939 (method git-fetch)
6940 (uri (git-reference
6941 (url "https://gitlab.com/Harleqin/arrows.git")
6942 (commit commit)))
6943 (file-name (git-file-name name version))
6944 (sha256
6945 (base32
6946 "042k9vkssrqx9nhp14wdzm942zgdxvp35mba0p2syz98i75im2yy"))))
6947 (build-system asdf-build-system/sbcl)
6948 (native-inputs
6949 `(("hu.dwim.stefil" ,sbcl-hu.dwim.stefil)))
6950 (synopsis "Clojure-like arrow macros for Common Lisp")
6951 (description
6952 "This library implements the @code{->} and @code{->>} macros from
6953 Clojure, as well as several expansions on the idea.")
6954 (home-page "https://gitlab.com/Harleqin/arrows")
6955 (license license:public-domain))))
6956
6957 (define-public cl-arrows
6958 (sbcl-package->cl-source-package sbcl-arrows))
6959
6960 (define-public ecl-arrows
6961 (sbcl-package->ecl-package sbcl-arrows))
6962
6963 (define-public sbcl-simple-parallel-tasks
6964 (let ((commit "db460f7a3f7bbfe2d3a2223ed21e162068d04dda")
6965 (revision "0"))
6966 (package
6967 (name "sbcl-simple-parallel-tasks")
6968 (version (git-version "1.0" revision commit))
6969 (source
6970 (origin
6971 (method git-fetch)
6972 (uri (git-reference
6973 (url "https://github.com/glv2/simple-parallel-tasks.git")
6974 (commit commit)))
6975 (file-name (git-file-name name version))
6976 (sha256
6977 (base32
6978 "0amw3qk23wnlyrsgzszs6rs7y4zvxv8dr03rnqhc60mnm8ds4dd5"))))
6979 (build-system asdf-build-system/sbcl)
6980 (native-inputs
6981 `(("fiveam" ,sbcl-fiveam)))
6982 (inputs
6983 `(("chanl" ,sbcl-chanl)))
6984 (synopsis "Common Lisp library to evaluate some forms in parallel")
6985 (description "This is a simple Common Lisp library to evaluate some
6986 forms in parallel.")
6987 (home-page "https://github.com/glv2/simple-parallel-tasks")
6988 (license license:gpl3))))
6989
6990 (define-public cl-simple-parallel-tasks
6991 (sbcl-package->cl-source-package sbcl-simple-parallel-tasks))
6992
6993 (define-public ecl-simple-parallel-tasks
6994 (sbcl-package->ecl-package sbcl-simple-parallel-tasks))
6995
6996 (define-public sbcl-cl-heap
6997 (package
6998 (name "sbcl-cl-heap")
6999 (version "0.1.6")
7000 (source
7001 (origin
7002 (method url-fetch)
7003 (uri (string-append "https://common-lisp.net/project/cl-heap/releases/"
7004 "cl-heap_" version ".tar.gz"))
7005 (sha256
7006 (base32
7007 "163hb07p2nxz126rpq3cj5dyala24n0by5i5786n2qcr1w0bak4i"))))
7008 (build-system asdf-build-system/sbcl)
7009 (native-inputs
7010 `(("xlunit" ,sbcl-xlunit)))
7011 (arguments
7012 `(#:test-asd-file "cl-heap-tests.asd"))
7013 (synopsis "Heap and priority queue data structures for Common Lisp")
7014 (description
7015 "CL-HEAP provides various implementations of heap data structures (a
7016 binary heap and a Fibonacci heap) as well as an efficient priority queue.")
7017 (home-page "https://common-lisp.net/project/cl-heap/")
7018 (license license:gpl3+)))
7019
7020 (define-public cl-heap
7021 (sbcl-package->cl-source-package sbcl-cl-heap))
7022
7023 (define-public ecl-cl-heap
7024 (sbcl-package->ecl-package sbcl-cl-heap))
7025
7026 (define-public sbcl-curry-compose-reader-macros
7027 (let ((commit "beaa92dedf392726c042184bfd6149fa8d9e6ac2")
7028 (revision "0"))
7029 (package
7030 (name "sbcl-curry-compose-reader-macros")
7031 (version (git-version "1.0.0" revision commit))
7032 (source
7033 (origin
7034 (method git-fetch)
7035 (uri
7036 (git-reference
7037 (url "https://github.com/eschulte/curry-compose-reader-macros.git")
7038 (commit commit)))
7039 (file-name (git-file-name name version))
7040 (sha256
7041 (base32
7042 "0rv9bl8xrad5wfcg5zs1dazvnpmvqz6297lbn8bywsrcfnlf7h98"))))
7043 (build-system asdf-build-system/sbcl)
7044 (inputs
7045 `(("alexandria" ,sbcl-alexandria)
7046 ("named-readtables" ,sbcl-named-readtables)))
7047 (synopsis "Reader macros for partial application and composition")
7048 (description
7049 "This Common Lisp library provides reader macros for concise expression
7050 of function partial application and composition.")
7051 (home-page "https://eschulte.github.io/curry-compose-reader-macros/")
7052 (license license:public-domain))))
7053
7054 (define-public cl-curry-compose-reader-macros
7055 (sbcl-package->cl-source-package sbcl-curry-compose-reader-macros))
7056
7057 (define-public ecl-curry-compose-reader-macros
7058 (sbcl-package->ecl-package sbcl-curry-compose-reader-macros))
7059
7060 (define-public sbcl-yason
7061 (package
7062 (name "sbcl-yason")
7063 (version "0.7.7")
7064 (source
7065 (origin
7066 (method git-fetch)
7067 (uri (git-reference
7068 (url "https://github.com/phmarek/yason.git")
7069 (commit (string-append "v" version))))
7070 (file-name (git-file-name name version))
7071 (sha256
7072 (base32
7073 "0479rbjgbj80jpk5bby18inlv1kfp771a82rlcq5psrz65qqa9bj"))))
7074 (build-system asdf-build-system/sbcl)
7075 (inputs
7076 `(("alexandria" ,sbcl-alexandria)
7077 ("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
7078 (synopsis "Common Lisp JSON parser/encoder")
7079 (description
7080 "YASON is a Common Lisp library for encoding and decoding data in the
7081 JSON interchange format.")
7082 (home-page "https://github.com/phmarek/yason")
7083 (license license:bsd-3)))
7084
7085 (define-public cl-yason
7086 (sbcl-package->cl-source-package sbcl-yason))
7087
7088 (define-public ecl-yason
7089 (sbcl-package->ecl-package sbcl-yason))
7090
7091 (define-public sbcl-stefil
7092 (let ((commit "0398548ec95dceb50fc2c2c03e5fb0ce49b86c7a")
7093 (revision "0"))
7094 (package
7095 (name "sbcl-stefil")
7096 (version (git-version "0.1" revision commit))
7097 (source
7098 (origin
7099 (method git-fetch)
7100 (uri (git-reference
7101 (url "https://gitlab.common-lisp.net/stefil/stefil.git")
7102 (commit commit)))
7103 (file-name (git-file-name name version))
7104 (sha256
7105 (base32
7106 "0bqz64q2szzhf91zyqyssmvrz7da6442rs01808pf3wrdq28bclh"))))
7107 (build-system asdf-build-system/sbcl)
7108 (inputs
7109 `(("alexandria" ,sbcl-alexandria)
7110 ("iterate" ,sbcl-iterate)
7111 ("metabang-bind" ,sbcl-metabang-bind)))
7112 (propagated-inputs
7113 ;; Swank doesn't have a pre-compiled package, therefore we must
7114 ;; propagate its sources.
7115 `(("swank" ,cl-slime-swank)))
7116 (arguments
7117 '(#:phases
7118 (modify-phases %standard-phases
7119 (add-after 'unpack 'drop-unnecessary-dependency
7120 (lambda _
7121 (substitute* "package.lisp"
7122 ((":stefil-system") ""))
7123 #t)))))
7124 (home-page "https://common-lisp.net/project/stefil/index-old.shtml")
7125 (synopsis "Simple test framework")
7126 (description
7127 "Stefil is a simple test framework for Common Lisp, with a focus on
7128 interactive development.")
7129 (license license:public-domain))))
7130
7131 (define-public cl-stefil
7132 (sbcl-package->cl-source-package sbcl-stefil))
7133
7134 (define-public sbcl-graph
7135 (let ((commit "78bf9ec930d8eae4f0861b5be76765fb1e45e24f")
7136 (revision "0"))
7137 (package
7138 (name "sbcl-graph")
7139 (version (git-version "0.0.0" revision commit))
7140 (source
7141 (origin
7142 (method git-fetch)
7143 (uri
7144 (git-reference
7145 (url "https://github.com/eschulte/graph.git")
7146 (commit commit)))
7147 (file-name (git-file-name name version))
7148 (sha256
7149 (base32
7150 "1qpij4xh8bqwc2myahpilcbh916v7vg0acz2fij14d3y0jm02h0g"))
7151 (patches (search-patches "sbcl-graph-asdf-definitions.patch"))))
7152 (build-system asdf-build-system/sbcl)
7153 (native-inputs
7154 `(("stefil" ,sbcl-stefil)))
7155 (inputs
7156 `(("alexandria" ,sbcl-alexandria)
7157 ("cl-heap" ,sbcl-cl-heap)
7158 ("curry-compose-reader-macros" ,sbcl-curry-compose-reader-macros)
7159 ("metabang-bind" ,sbcl-metabang-bind)
7160 ("named-readtables" ,sbcl-named-readtables)))
7161 (arguments
7162 '(#:test-asd-file "graph.test.asd"))
7163 (synopsis "Graph data structure and algorithms for Common Lisp")
7164 (description
7165 "The GRAPH Common Lisp library provides a data structures to represent
7166 graphs, as well as some graph manipulation and analysis algorithms (shortest
7167 path, maximum flow, minimum spanning tree, etc.).")
7168 (home-page "https://eschulte.github.io/graph/")
7169 (license license:gpl3+))))
7170
7171 (define-public cl-graph
7172 (sbcl-package->cl-source-package sbcl-graph))
7173
7174 (define-public sbcl-graph-dot
7175 (package
7176 (inherit sbcl-graph)
7177 (name "sbcl-graph-dot")
7178 (inputs
7179 `(("alexandria" ,sbcl-alexandria)
7180 ("cl-ppcre" ,sbcl-cl-ppcre)
7181 ("curry-compose-reader-macros" ,sbcl-curry-compose-reader-macros)
7182 ("graph" ,sbcl-graph)
7183 ("metabang-bind" ,sbcl-metabang-bind)
7184 ("named-readtables" ,sbcl-named-readtables)))
7185 (arguments
7186 (substitute-keyword-arguments (package-arguments sbcl-graph)
7187 ((#:asd-file _ "") "graph.dot.asd")
7188 ((#:asd-system-name _ #f) "graph-dot")))
7189 (synopsis "Serialize graphs to and from DOT format")))
7190
7191 (define-public sbcl-graph-json
7192 (package
7193 (inherit sbcl-graph)
7194 (name "sbcl-graph-json")
7195 (inputs
7196 `(("alexandria" ,sbcl-alexandria)
7197 ("curry-compose-reader-macros" ,sbcl-curry-compose-reader-macros)
7198 ("graph" ,sbcl-graph)
7199 ("metabang-bind" ,sbcl-metabang-bind)
7200 ("named-readtables" ,sbcl-named-readtables)
7201 ("yason" ,sbcl-yason)))
7202 (arguments
7203 (substitute-keyword-arguments (package-arguments sbcl-graph)
7204 ((#:asd-file _ "") "graph.json.asd")
7205 ((#:asd-system-name _ #f) "graph-json")))
7206 (synopsis "Serialize graphs to and from JSON format")))