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