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