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