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