summaryrefslogtreecommitdiff
path: root/gnu/packages/lisp-xyz.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/lisp-xyz.scm')
-rw-r--r--gnu/packages/lisp-xyz.scm1397
1 files changed, 1317 insertions, 80 deletions
diff --git a/gnu/packages/lisp-xyz.scm b/gnu/packages/lisp-xyz.scm
index 78eca82db6..2f6d22fe7d 100644
--- a/gnu/packages/lisp-xyz.scm
+++ b/gnu/packages/lisp-xyz.scm
@@ -2292,10 +2292,41 @@ writing code that contains string literals that contain code themselves.")
(url "https://github.com/slime/slime/")
(commit (string-append "v" version))))
(sha256
- (base32 "1s5mbljlz22pb90gwbd380nighkz6gdxl77hc08gri7wwr5gy5n2"))))
+ (base32 "1s5mbljlz22pb90gwbd380nighkz6gdxl77hc08gri7wwr5gy5n2"))
+ (modules '((guix build utils)))
+ (snippet
+ ;; The doc folder drags `gawk' into the closure. Doc is already
+ ;; provided by emacs-slime.
+ `(begin
+ (delete-file-recursively "doc")
+ #t))))
(build-system asdf-build-system/sbcl)
(arguments
- '(#:asd-systems '("swank")))
+ '(#:asd-systems '("swank")
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'set-fasl-directory
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (lib-dir (string-append out "/lib/common-lisp/"
+ (%lisp-type)
+ "/slime-swank/")))
+ ;; Use the ASDF registry instead of Swank's default that places
+ ;; the .fasl files in ~/.slime.
+ (substitute* "swank.asd"
+ (("\\(load \\(asdf::component-pathname f\\)\\)" all)
+ (string-append
+ all "\n"
+ "(setf (symbol-value"
+ "(read-from-string \"swank-loader::*fasl-directory*\"))"
+ "\"" lib-dir "\")")))
+ (substitute* "swank-loader.lisp"
+ (("\\(probe-file fasl\\)" all)
+ ;; Do not try to delete Guix store files.
+ (string-append
+ all "\n"
+ " (not (equal (subseq (pathname-directory fasl) 1 3)"
+ " '(\"gnu\" \"store\"))) ; XXX: GUIX PATCH")))))))))
(home-page "https://github.com/slime/slime")
(synopsis "Common Lisp Swank server")
(description
@@ -2305,7 +2336,21 @@ processes that doesn't run under Emacs. Lisp processes created by
(license (list license:gpl2+ license:public-domain))))
(define-public cl-slime-swank
- (sbcl-package->cl-source-package sbcl-slime-swank))
+ (let ((pkg (sbcl-package->cl-source-package sbcl-slime-swank)))
+ (package
+ (inherit pkg)
+ (arguments
+ (substitute-keyword-arguments (package-arguments pkg)
+ ((#:phases phases)
+ `(modify-phases ,phases
+ (add-after 'install 'revert-asd-patch
+ ;; We do not want to include the Guix patch in the cl- package
+ ;; since it would include the sbcl- package in the closure.
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (source-path (string-append out "/share/common-lisp/source/")))
+ (substitute* (string-append source-path "/cl-slime-swank/swank.asd")
+ ((".*fasl-directory.*") ""))))))))))))
(define-public ecl-slime-swank
(sbcl-package->ecl-package sbcl-slime-swank))
@@ -2706,7 +2751,13 @@ utilities that make it even easier to manipulate text in Common Lisp. It has
(commit commit)))
(file-name (git-file-name "puri" version))
(sha256
- (base32 "0gq2rsr0aihs0z20v4zqvmdl4szq53b52rh97pvnmwrlbn4mapmd"))))
+ (base32 "0gq2rsr0aihs0z20v4zqvmdl4szq53b52rh97pvnmwrlbn4mapmd"))
+ (modules '((guix build utils)))
+ (snippet
+ ;; The useless bundled debian folder drags `make' into the closure.
+ `(begin
+ (delete-file-recursively "debian")
+ #t))))
(build-system asdf-build-system/sbcl)
(native-inputs
(list sbcl-ptester))
@@ -3840,7 +3891,9 @@ client and server.")
"0apkgqrscylw3hhm5x2vs0z3hz6h7zd7dl5y3wr2zl8qjpvpc80k"))))
(build-system asdf-build-system/sbcl)
(inputs
- (list xclip))
+ ;; Pick xsel instead of xclip because its closure size is slightly
+ ;; smaller.
+ (list xsel))
(native-inputs
(list sbcl-fiveam))
(arguments
@@ -3849,8 +3902,8 @@ client and server.")
(add-after 'unpack 'fix-paths
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "src/text.lisp"
- (("\"xclip\"")
- (string-append "\"" (assoc-ref inputs "xclip") "/bin/xclip\""))))))))
+ (("\"xsel\"")
+ (string-append "\"" (assoc-ref inputs "xsel") "/bin/xsel\""))))))))
(home-page "https://github.com/snmsts/trivial-clipboard")
(synopsis "Access system clipboard in Common Lisp")
(description
@@ -4050,7 +4103,13 @@ Development into CL+SSL was done by David Lichteblau.")
(commit commit)))
(file-name (git-file-name name version))
(sha256
- (base32 "06gx04mah5nc8w78s0j8628divbf1s5w7af8w7pvzb2d5mgvrbd2"))))
+ (base32 "06gx04mah5nc8w78s0j8628divbf1s5w7af8w7pvzb2d5mgvrbd2"))
+ (modules '((guix build utils)))
+ (snippet
+ ;; The useless bundled debian folder drags `make' into the closure.
+ `(begin
+ (delete-file-recursively "debian")
+ #t))))
(build-system asdf-build-system/sbcl)
(inputs
(list sbcl-rt))
@@ -4080,7 +4139,13 @@ Rosenberg's Common Lisp packages.")
(commit commit)))
(file-name (git-file-name name version))
(sha256
- (base32 "12jj54h0fs6n237cvnp8v6hn0imfksammq22ys6pi0gwz2w47rbj"))))
+ (base32 "12jj54h0fs6n237cvnp8v6hn0imfksammq22ys6pi0gwz2w47rbj"))
+ (modules '((guix build utils)))
+ (snippet
+ ;; The useless bundled debian folder drags `make' into the closure.
+ `(begin
+ (delete-file-recursively "debian")
+ #t))))
(build-system asdf-build-system/sbcl)
(native-inputs ; For tests.
(list sbcl-ptester sbcl-kmrcl))
@@ -4457,7 +4522,7 @@ addition, removal, and random selection.")
(define-public sbcl-quri
(package
(name "sbcl-quri")
- (version "0.5.0")
+ (version "0.6.0")
(source
(origin
(method git-fetch)
@@ -4466,7 +4531,7 @@ addition, removal, and random selection.")
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "0zpwjhs2zz9832wsjs00kbkjjl4bcs96krlnq9y75gi4f34fxj1x"))))
+ (base32 "1wrrhbj3r4lph5y3hhfbv4g2pvg24hbgl06irq9lyiycy3bgai4w"))))
(build-system asdf-build-system/sbcl)
(arguments
;; Test system must be loaded before, otherwise tests fail with:
@@ -4770,8 +4835,8 @@ CCL.")
(sbcl-package->ecl-package sbcl-jonathan))
(define-public sbcl-http-body
- (let ((commit "dd01dc4f5842e3d29728552e5163acce8386eb73")
- (revision "1"))
+ (let ((commit "3e4bedd6a9d9bc4e1dc0a45e5b55360ae30fd388")
+ (revision "2"))
(package
(name "sbcl-http-body")
(version (git-version "0.1.0" revision commit))
@@ -4783,14 +4848,21 @@ CCL.")
(commit commit)))
(file-name (git-file-name name version))
(sha256
- (base32 "1jd06snjvxcprhapgfq8sx0y5lrldkvhf206ix6d5a23dd6zcmr0"))))
+ (base32 "0kcg43l5674drzid9cj938q0ki5z25glx296rl239dm7yfmxlzz2"))))
(build-system asdf-build-system/sbcl)
(arguments
'(#:asd-systems '("http-body-test" "http-body")))
(native-inputs
- (list sbcl-prove sbcl-trivial-utf-8))
+ (list sbcl-assoc-utils sbcl-prove sbcl-trivial-utf-8))
(inputs
- (list sbcl-fast-http sbcl-jonathan sbcl-quri))
+ (list sbcl-babel
+ sbcl-cl-ppcre
+ sbcl-fast-http
+ sbcl-flexi-streams
+ sbcl-jonathan
+ sbcl-trivial-gray-streams
+ sbcl-cl-utilities
+ sbcl-quri))
(home-page "https://github.com/fukamachi/http-body")
(synopsis "HTTP POST data parser")
(description
@@ -5981,8 +6053,8 @@ XSD type library.")
;; (sbcl-package->ecl-package sbcl-cxml-rng))
(define-public sbcl-cl-reexport
- (let ((commit "312f3661bbe187b5f28536cd7ec2956e91366c3b")
- (revision "1"))
+ (let ((commit "03ad7a0e7307e510b3b25a622d3c5f8a077879b4")
+ (revision "2"))
(package
(name "sbcl-cl-reexport")
(build-system asdf-build-system/sbcl)
@@ -5997,16 +6069,20 @@ XSD type library.")
(file-name (git-file-name "cl-reexport" version))
(sha256
(base32
- "1cwpn1m3wrl0fl9plznn7p464db646gnfc8zkyk97dyxski2aq0x"))))
+ "02la6z3ickhmh2m87ymm2ijh9nkn7l6slskj99l8a1rhps394qqc"))))
(inputs
(list sbcl-alexandria))
+ (native-inputs
+ (list sbcl-prove))
(arguments
- ;; TODO: Tests fail because cl-test-more is missing, but I can't find it online.
+ ;; FIXME: Test fails with the following, why?
+ ;; Component "cl-reexport-test" not found, required by
+ ;; #<SYSTEM "cl-reexport-test">
`(#:tests? #f))
(synopsis "Reexport external symbols in other Common Lisp packages")
(description
"Cl-reexport makes a package reexport symbols which are external
-symbols in other Common Lisp packages. This fanctionality is intended to be
+symbols in other Common Lisp packages. This functionality is intended to be
used with (virtual) hierarchical packages.")
(license license:llgpl))))
@@ -6089,15 +6165,15 @@ cookie headers, cookie creation, cookie jar creation and more.")
sbcl-trivial-gray-streams
sbcl-trivial-mimes
sbcl-usocket))
- (native-inputs
- (list sbcl-alexandria
- sbcl-babel
- sbcl-cl-ppcre
- sbcl-clack
- sbcl-lack
- sbcl-local-time
- sbcl-prove
- sbcl-trivial-features))
+ ;; These native-inputs are for tests only, which are disabled.
+ ;; Leave them commented since they add a lot to the closure size.
+ ;; (native-inputs
+ ;; (list sbcl-cl-ppcre
+ ;; sbcl-clack
+ ;; sbcl-lack
+ ;; sbcl-local-time
+ ;; sbcl-prove
+ ;; sbcl-trivial-features))
(arguments
;; TODO: Circular dependency: tests depend on clack-test which depends on dexador.
`(#:tests? #f
@@ -7135,37 +7211,36 @@ cl-plumbing libraries.")
(sbcl-package->ecl-package sbcl-cl-octet-streams))
(define-public sbcl-lzlib
- (let ((commit "cad10f5becbcfebb44b9d311a257563778803452")
- (revision "2"))
+ (let ((commit "c8102fc8c959b7c418eb60657bd6c8b875f10ba9")
+ (revision "1"))
(package
(name "sbcl-lzlib")
- (version (git-version "1.1" revision commit))
+ (version (git-version "2.0" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/glv2/cl-lzlib")
(commit commit)))
- (file-name (git-file-name name version))
+ (file-name (git-file-name "cl-lzlib" version))
(sha256
- (base32 "09lp7li35h4jkls0448fj1sh6pjslr1w7ranbc4szjr8g0c2bdry"))))
+ (base32 "1glg1y1s1mqgypvxp0ss11cicrddri006wqwhy47lgq7mk5853zz"))))
(build-system asdf-build-system/sbcl)
(native-inputs
(list sbcl-fiveam))
(inputs
- `(("cffi" ,sbcl-cffi)
- ("cl-octet-streams" ,sbcl-cl-octet-streams)
- ("lparallel" ,sbcl-lparallel)
- ("lzlib" ,lzlib)))
+ (list lzlib
+ sbcl-cffi
+ sbcl-cl-octet-streams
+ sbcl-lparallel))
(arguments
- '(#:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'fix-paths
- (lambda* (#:key inputs #:allow-other-keys)
- (substitute* "src/lzlib.lisp"
- (("liblz\\.so")
- (search-input-file inputs "/lib/liblz.so")))
- #t)))))
+ (list #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'fix-paths
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "src/lzlib.lisp"
+ (("liblz\\.so")
+ (search-input-file inputs "/lib/liblz.so"))))))))
(synopsis "Common Lisp library for lzip (de)compression")
(description
"This Common Lisp library provides functions for lzip (LZMA)
@@ -10326,7 +10401,13 @@ interface for MySQL, PostgreSQL and SQLite.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "1hqszvz0a3wk4s9faa83sc3vjxcb5rxmjclyr17yzwg55z733kry"))))
+ (base32 "1hqszvz0a3wk4s9faa83sc3vjxcb5rxmjclyr17yzwg55z733kry"))
+ (modules '((guix build utils)))
+ (snippet
+ ;; The useless bundled debian folder drags `make' into the closure.
+ `(begin
+ (delete-file-recursively "debian")
+ #t))))
(build-system asdf-build-system/sbcl)
(arguments
`(#:tests? #f ; TODO: Fix use of deprecated ASDF functions
@@ -10368,8 +10449,25 @@ interface for MySQL, PostgreSQL and SQLite.")
(file-name (git-file-name name version))
(sha256
(base32 "1v1k3s5bsy3lgd9gk459bzpb1r0kdjda25s29samxw4gsgf1fqvp"))
+ (modules '((guix build utils)))
(snippet
'(begin
+ ;; The useless bundled debian folder drags `make' into the closure.
+ (delete-file-recursively "debian")
+ ;; Other Makefiles that drag `make'.
+ (for-each delete-file
+ '("Makefile"
+ "db-db2/Makefile"
+ "db-mysql/Makefile"
+ "db-odbc/Makefile"
+ "db-oracle/Makefile"
+ "db-sqlite/Makefile"
+ "doc/Makefile"
+ "examples/sqlite3/init-func/Makefile"
+ "sql/Makefile"
+ "tests/Makefile"
+ "uffi/Makefile"
+ "uffi/Makefile.32+64bits"))
;; Remove precompiled libraries.
(delete-file "db-mysql/clsql_mysql.dll")
(delete-file "uffi/clsql_uffi.dll")
@@ -10806,6 +10904,16 @@ compliance control.")
(substitute* "lift-standard.config"
((":relative-to lift-test")
":relative-to moptilities-test"))
+ #t))
+ (add-after 'install 'remove-test-results
+ ;; Otherwise the drag the SBCL package into the closure of the CL
+ ;; package.
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (source-path (string-append out "/share/common-lisp/"
+ (%lisp-type) "/moptilities/")))
+ (delete-file-recursively
+ (string-append source-path "/test-results")))
#t)))))
(synopsis "Compatibility layer for Common Lisp MOP implementation differences")
(description
@@ -10831,7 +10939,12 @@ MOP easier to use.")
(commit commit)))
(file-name (git-file-name "cl-osicat" version))
(sha256
- (base32 "1ilag0b0xn97acc0m1q93vwp2y3md9a586858zfx04d8wpbvk8sz"))))
+ (base32 "1ilag0b0xn97acc0m1q93vwp2y3md9a586858zfx04d8wpbvk8sz"))
+ (snippet
+ '(begin
+ ;; The useless release.sh drags `bash' into the closure.
+ (delete-file "scripts/release.sh")
+ #t))))
(build-system asdf-build-system/sbcl)
(inputs
(list sbcl-alexandria sbcl-cffi sbcl-trivial-features))
@@ -11260,6 +11373,21 @@ sequences of objects.")
(build-system asdf-build-system/sbcl)
(inputs
(list sbcl-acclimation sbcl-clump))
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'install 'unpatch-shebangs
+ (lambda* (#:key outputs #:allow-other-keys)
+ ;; The documentation Makefile rely on shell scripts.
+ ;; TODO: Build it!
+ ;; In the mean time, remove the shabang as it adds bash to the
+ ;; closure.
+ (let* ((out (assoc-ref outputs "out"))
+ (build-aux (string-append
+ out "/share/")))
+ (substitute* (find-files build-aux)
+ (("^#!.*/bin/sh") "#!/bin/sh")
+ (("^#!.*/bin/bash") "#!/bin/bash"))))))))
(home-page "https://github.com/robert-strandh/cluffer")
(synopsis "Common Lisp library providing a protocol for text-editor buffers")
(description "Cluffer is a library for representing the buffer of a text
@@ -14137,11 +14265,11 @@ library are feedforward neural networks trained using backpropagation.")
(sbcl-package->ecl-package sbcl-simple-neural-network))
(define-public sbcl-zstd
- (let ((commit "d144582c581aaa52bac24d6686af27fa3e781e06")
+ (let ((commit "134f058eee11512cf772a8d5b64364acf56a10b8")
(revision "1"))
(package
(name "sbcl-zstd")
- (version (git-version "1.0" revision commit))
+ (version (git-version "2.0" revision commit))
(source
(origin
(method git-fetch)
@@ -14150,22 +14278,22 @@ library are feedforward neural networks trained using backpropagation.")
(commit commit)))
(file-name (git-file-name "cl-zstd" version))
(sha256
- (base32 "1774jy8hzbi6nih3sq6vchk66f7g8w86dwgpbvljyfzcnkcaz6ql"))))
+ (base32 "1iqpi5v6fdm6xxc9l8zhk6kcgl8hgxiwk1ki2yx2j3j4kfvqv8j9"))))
(build-system asdf-build-system/sbcl)
(native-inputs
(list sbcl-fiveam))
(inputs
- `(("cffi" ,sbcl-cffi)
- ("cl-octet-streams" ,sbcl-cl-octet-streams)
- ("zstd-lib" ,zstd "lib")))
+ (list sbcl-cffi
+ sbcl-cl-octet-streams
+ (list zstd "lib")))
(arguments
- '(#:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'fix-paths
- (lambda* (#:key inputs #:allow-other-keys)
- (substitute* "src/libzstd.lisp"
- (("libzstd\\.so")
- (search-input-file inputs "/lib/libzstd.so"))))))))
+ (list #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'fix-paths
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "src/libzstd.lisp"
+ (("libzstd\\.so")
+ (search-input-file inputs "/lib/libzstd.so"))))))))
(synopsis "Common Lisp library for Zstandard (de)compression")
(description
"This Common Lisp library provides functions for Zstandard
@@ -15434,7 +15562,8 @@ return the CPU count of the current system.")
(base32 "0ipy51q2fw03xk9rqcyzbq2b9c32npc1gl3c53rdjywpak7zwwg6"))))
(build-system asdf-build-system/sbcl)
(arguments
- `(#:phases
+ `(#:asd-systems '("fof" "fof/mf")
+ #:phases
(modify-phases %standard-phases
(add-after 'unpack 'fix-paths
(lambda* (#:key inputs #:allow-other-keys)
@@ -15444,6 +15573,7 @@ return the CPU count of the current system.")
(assoc-ref inputs "ffmpeg")))))))))
(inputs
(list sbcl-alexandria
+ sbcl-cl-json
sbcl-cl-str
sbcl-hu.dwim.defclass-star
sbcl-local-time
@@ -17709,6 +17839,74 @@ to setup.")
(define-public cl-posix-mqueue
(sbcl-package->cl-source-package sbcl-cl-posix-mqueue))
+(define-public sbcl-glop
+ (let ((commit "45e722ab4a0cd2944d550bf790206b3326041e38")
+ (revision "1"))
+ (package
+ (name "sbcl-glop")
+ (version (git-version "0.1.0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/lispgames/glop")
+ (commit commit)))
+ (file-name (git-file-name "glop" version))
+ (sha256
+ (base32 "1nm35kvigflfjlmsa8zwdajc61f02fh4sq08jv0wnqylhx8yg2bv"))))
+ (build-system asdf-build-system/sbcl)
+ (arguments
+ (list #:test-asd-file "glop-test.asd"
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'patch-lib-paths
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "src/x11/xcomposite.lisp"
+ (("libXcomposite.so")
+ (search-input-file inputs "/lib/libXcomposite.so")))
+ (substitute* "src/x11/xlib.lisp"
+ (("libX11")
+ (string-drop-right
+ (search-input-file inputs "/lib/libX11.so") 3)))
+ (substitute* "src/utils.lisp"
+ (("libX11")
+ (string-drop-right
+ (search-input-file inputs "/lib/libX11.so") 3)))
+ (substitute* "src/utils.lisp"
+ (("libGL.so")
+ (search-input-file inputs "/lib/libGL.so.1")))
+ (substitute* "src/x11/glx.lisp"
+ (("libGL.so")
+ (search-input-file inputs "/lib/libGL.so")))
+ (substitute* "src/x11/display-ctrl.lisp"
+ (("libXrandr")
+ (string-drop-right
+ (search-input-file inputs "/lib/libXrandr.so") 3))))))))
+ (native-inputs
+ (list sbcl-cl-opengl))
+ (inputs
+ (list libx11
+ libxcomposite
+ libxrandr
+ mesa
+ sbcl-cffi
+ sbcl-split-sequence
+ sbcl-trivial-garbage))
+ (home-page "https://github.com/lispgames/glop")
+ (synopsis "Direct FFI bindings for OpenGL window and context management")
+ (description
+ "This package provides Common Lisp bindings to create OpenGL window and
+context manipulation code as well as system input handling. Direct FFI
+bindings to system functions are used so no third party C lib is required
+except system libraries.")
+ (license license:expat))))
+
+(define-public ecl-glop
+ (sbcl-package->ecl-package sbcl-glop))
+
+(define-public cl-glop
+ (sbcl-package->cl-source-package sbcl-glop))
+
(define-public sbcl-sdl2
(let ((commit "bb2aa2a41cf799e3bb1ddf50de41fe389c6db668")
(revision "1"))
@@ -17754,6 +17952,101 @@ C Library.")
(define-public cl-sdl2
(sbcl-package->cl-source-package sbcl-sdl2))
+(define-public sbcl-sdl2-image
+ (let ((commit "9c05c806286b66a5d9861ef829cfe68c4f3da077")
+ (revision "1"))
+ (package
+ (name "sbcl-sdl2-image")
+ (version (git-version "1.0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/lispgames/cl-sdl2-image")
+ (commit commit)))
+ (file-name (git-file-name "cl-sdl2-image" version))
+ (sha256
+ (base32 "1nr7mdl125q32m15m8rdlza5kwi7m0birh1cq846pyy6zl1sjms7"))))
+ (build-system asdf-build-system/sbcl)
+ (arguments
+ (list #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'fix-paths
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "src/library.lisp"
+ (("libSDL2_image-2.0.so.0")
+ (search-input-file inputs "/lib/libSDL2_image-2.0.so.0"))))))))
+ (inputs
+ (list sdl2-image
+ sbcl-alexandria
+ sbcl-cl-autowrap
+ sbcl-defpackage-plus
+ sbcl-sdl2))
+ (home-page "https://github.com/lispgames/cl-sdl2-image")
+ (synopsis "SDL2_image wrapper for Common Lisp")
+ (description
+ "This is a (currently) brief but usable wrap for SDL2_image.")
+ (license license:expat))))
+
+(define-public ecl-sdl2-image
+ (sbcl-package->ecl-package sbcl-sdl2-image))
+
+(define-public cl-sdl2-image
+ (sbcl-package->cl-source-package sbcl-sdl2-image))
+
+(define-public sbcl-sdl2-ttf
+ (let ((commit "6dd2df2fb3a79ec4f835e3bc882e60e8da039878")
+ (revision "1"))
+ (package
+ (name "sbcl-sdl2-ttf")
+ (version (git-version "1.0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/lispgames/cl-sdl2-ttf")
+ (commit commit)))
+ (file-name (git-file-name "cl-sdl2-ttf" version))
+ (sha256
+ (base32 "07c1bl66dix6ccnyl9mqd6lbk10f9s25985zmv6lss95491ng7my"))))
+ (build-system asdf-build-system/sbcl)
+ (arguments
+ (list #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'fix-paths
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "src/library.lisp"
+ (("libSDL2_ttf-2.0.so.0")
+ (search-input-file inputs "/lib/libSDL2_ttf-2.0.so.0")))))
+ (add-after 'unpack 'fix-critical-warning
+ (lambda _
+ (substitute* "src/helpers.lisp"
+ (("nreverse") "reverse")))))))
+ (inputs
+ (list sdl2-ttf
+ sbcl-alexandria
+ sbcl-cffi
+ sbcl-cl-autowrap
+ sbcl-defpackage-plus
+ sbcl-sdl2
+ sbcl-trivial-garbage))
+ (home-page "https://github.com/lispgames/cl-sdl2-ttf")
+ (synopsis "SDL2_ttf wrapper for Common Lisp")
+ (description
+ "This is a wrapper for the SDL2_TTF library used for loading fonts and
+creating text assets. The library, in it's current state, can load TTF and
+OTF fonts and render fonts with the three different rendering modes provided
+by the C library (solid, shaded, and blended). While Latin text, UTF8,
+UNICODE, and Glyph text rendering is available only Latin text has been
+tested (as shown in the examples).")
+ (license license:expat))))
+
+(define-public ecl-sdl2-ttf
+ (sbcl-package->ecl-package sbcl-sdl2-ttf))
+
+(define-public cl-sdl2-ttf
+ (sbcl-package->cl-source-package sbcl-sdl2-ttf))
+
(define-public sbcl-cl-gamepad
(let ((commit "7e12137927b42db064ffbf9ea34bd4790ad4bb33")
(revision "1"))
@@ -18193,7 +18486,13 @@ language).")
(commit commit)))
(file-name (git-file-name name version))
(sha256
- (base32 "0wv3j13fj73gigriw5r9vi920hz05ld7zllsvbxdxvmyfy9k1kly"))))
+ (base32 "0wv3j13fj73gigriw5r9vi920hz05ld7zllsvbxdxvmyfy9k1kly"))
+ (modules '((guix build utils)))
+ (snippet
+ ;; The useless bundled debian folder drags `make' into the closure.
+ `(begin
+ (delete-file-recursively "debian")
+ #t))))
(build-system asdf-build-system/sbcl)
(inputs
(list sbcl-aserve sbcl-kmrcl sbcl-xmls))
@@ -20695,8 +20994,8 @@ rendering of the XML Infoset.")
(sbcl-package->ecl-package sbcl-asd-generator))
(define-public sbcl-cl-gopher
- (let ((commit "62cfd180378f56e7e8b57e4302b183810c86e337")
- (revision "2"))
+ (let ((commit "0899e7fa2134206f9d9778c7d53c49b7a59ff070")
+ (revision "3"))
(package
(name "sbcl-cl-gopher")
(version (git-version "0.0.0" revision commit))
@@ -20708,7 +21007,15 @@ rendering of the XML Infoset.")
(commit commit)))
(file-name (git-file-name "cl-gopher" version))
(sha256
- (base32 "0szz29d83fk2cxn5j1zlf4v0154qnf9cy1ix5p4jjpsql1a8xiwg"))))
+ (base32 "1ky4s33m5d0wvdaqji12pxr93qqfl5x62zjp3m4ihbdj0ws3yw2f"))
+ (snippet
+ '(begin
+ ;; These files are mostly examples (that assume Quicklisp) which
+ ;; drag the SBCL package into the CL package.
+ (for-each delete-file
+ '("cl-gopher-network.lsh"
+ "cl-gopher-start.lsh"))
+ #t))))
(build-system asdf-build-system/sbcl)
(inputs
(list sbcl-bordeaux-threads
@@ -20801,7 +21108,7 @@ JavaScript code.")
(define-public sbcl-nhooks
(package
(name "sbcl-nhooks")
- (version "1.0.0")
+ (version "1.1.1")
(source
(origin
(method git-fetch)
@@ -20811,7 +21118,7 @@ JavaScript code.")
(file-name (git-file-name "nhooks" version))
(sha256
(base32
- "1v3gh9jf4hbpl1hnyzhkrcj3jdh3q0mlp1n6ci2cbn2rsc65baff"))))
+ "1379q1wbh38xlkwlpf0xy9wgbbc869zznak3l4yzwfgiw6l2hxa1"))))
(build-system asdf-build-system/sbcl)
(inputs
(list sbcl-serapeum))
@@ -20887,7 +21194,7 @@ access lexicographic data from WordNet.")
(define-public sbcl-nfiles
(package
(name "sbcl-nfiles")
- (version "0.4.2")
+ (version "1.0.0")
(source
(origin
(method git-fetch)
@@ -20897,7 +21204,7 @@ access lexicographic data from WordNet.")
(file-name (git-file-name "cl-nfiles" version))
(sha256
(base32
- "06cll4l5gbp98wrgdy04ar6z00sag0b46pr4dv4n6bs1ypfcgs01"))))
+ "1215h4xzc7vxidr7lhxyr5a7giyd08678ibz5qp4d4nvg14q94y2"))))
(build-system asdf-build-system/sbcl)
(inputs
(list gnupg
@@ -20909,7 +21216,7 @@ access lexicographic data from WordNet.")
sbcl-trivial-package-local-nicknames
sbcl-trivial-types))
(native-inputs
- (list sbcl-prove))
+ (list sbcl-lisp-unit2))
(arguments
`(#:phases
(modify-phases %standard-phases
@@ -20990,8 +21297,8 @@ taking inspiration from Ruby's ERb module.")
(sbcl-package->ecl-package sbcl-cl-template))
(define-public sbcl-fast-websocket
- (let ((commit "24c0217e7c0d25b6ef6ab799452cba0b9fb58f44")
- (revision "0"))
+ (let ((commit "baeeaddf1447015863d708f840ef9dfc5ff5b7a2")
+ (revision "1"))
(package
(name "sbcl-fast-websocket")
(version (git-version "0.1" revision commit))
@@ -21004,8 +21311,7 @@ taking inspiration from Ruby's ERb module.")
(commit commit)))
(file-name (git-file-name "cl-fast-websoclet" version))
(sha256
- (base32
- "04sacrhpdp3ixvp6wjwxls5mv47g0q6542pd16yn199xjg0drw8a"))))
+ (base32 "1j7v00gbkzx4mq2v8y44jm4jx321hgrv9igfw23cvzzlyd3dzp6y"))))
(build-system asdf-build-system/sbcl)
(arguments
;; Test system must be loaded before, otherwise tests fail with:
@@ -21471,7 +21777,7 @@ in a native template application).")
(define-public sbcl-nkeymaps
(package
(name "sbcl-nkeymaps")
- (version "0.1.1")
+ (version "1.0.0")
(source
(origin
(method git-fetch)
@@ -21480,15 +21786,14 @@ in a native template application).")
(commit version)))
(file-name (git-file-name "cl-nkeymaps" version))
(sha256
- (base32 "0shkklc3aiq44hyv1q6fahw4vjcr0iw4zsmxbhmxqh04r7185ddf"))))
+ (base32 "1f7s9g5s9riyyrbj8lyvzlvymdbh9x9sknxmjzfrkbz3iqlpanc3"))))
(build-system asdf-build-system/sbcl)
(inputs
(list sbcl-alexandria
- sbcl-cl-str
sbcl-fset
sbcl-trivial-package-local-nicknames))
(native-inputs
- (list sbcl-prove))
+ (list sbcl-lisp-unit2))
(home-page "https://github.com/atlas-engineer/nkeymaps")
(synopsis "Keymap facility for Common Lisp")
(description
@@ -21542,3 +21847,935 @@ instead of #'FOO.
(define-public ecl-nkeymaps
(sbcl-package->ecl-package sbcl-nkeymaps))
+
+(define-public sbcl-utils-kt
+ (let ((commit "4adfe2889036ab5ffdd3cc2182ca2cc692bf11ff"))
+ (package
+ (name "sbcl-utils-kt")
+ (version (git-version "2007-12-02" "1" commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/kennytilton/utils-kt")
+ (commit commit)))
+ (file-name (git-file-name "cl-utils-kt" version))
+ (sha256
+ (base32 "016x3w034brz02z9mrsrkhk2djizg3yqsvhl9k62xqcnpy3b87dn"))))
+ (build-system asdf-build-system/sbcl)
+ (home-page "https://github.com/kennytilton/utils-kt")
+ (synopsis "Kenny's utilities for Common Lisp")
+ (description
+ "This library contains generic hacks meant to be used in any project.
+It was originally developped for the Cells library.")
+ (license license:expat))))
+
+(define-public cl-utils-kt
+ (sbcl-package->cl-source-package sbcl-utils-kt))
+
+(define-public ecl-utils-kt
+ (sbcl-package->ecl-package sbcl-utils-kt))
+
+(define-public sbcl-cells
+ (let ((commit "e8542b17fddd6340c1e237ce482a52327c8ead8e"))
+ (package
+ (name "sbcl-cells")
+ (version (git-version "3.0" "1" commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/kennytilton/cells")
+ (commit commit)))
+ (file-name (git-file-name "cl-cells" version))
+ (sha256
+ (base32 "0rkzvwq38lwb1045w54kw020pb9i63hxiawwhqkf8k1inhak3fdk"))))
+ (build-system asdf-build-system/sbcl)
+ (inputs
+ (list sbcl-utils-kt))
+ (arguments
+ ;; Tests fail with #<TYPE-ERROR expected-type: STREAM datum: NIL>.
+ '(#:tests? #f))
+ (home-page "https://github.com/kennytilton/cells")
+ (synopsis "Common Lisp implementation of the dataflow programming paradigm")
+ (description
+ "Cells is a mature, stable extension to CLOS allowing one to create
+classes whose instances can have slot values determined by instance-specific
+formulas.")
+ (license license:llgpl))))
+
+(define-public cl-cells
+ (sbcl-package->cl-source-package sbcl-cells))
+
+(define-public ecl-cells
+ (sbcl-package->ecl-package sbcl-cells))
+
+(define-public sbcl-cl-algebraic-data-type
+ (let ((commit "b2568428193a512d141d6b615772d50ceb5f9bca"))
+ (package
+ (name "sbcl-cl-algebraic-data-type")
+ (version (git-version "1.2.0" "1" commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/stylewarning/cl-algebraic-data-type")
+ (commit commit)))
+ (file-name (git-file-name "cl-algebraic-data-type" version))
+ (sha256
+ (base32 "1lnqxcv8pd5z8n0g5p2l0dbljx9pqiv18hxl0vhsh7ldhkrjv2jx"))))
+ (build-system asdf-build-system/sbcl)
+ (inputs
+ (list sbcl-alexandria
+ sbcl-global-vars))
+ (arguments
+ '(#:tests? #f)) ; No tests.
+ (home-page "https://github.com/stylewarning/cl-algebraic-data-type")
+ (synopsis "Common Lisp library for algebraic data types")
+ (description
+ "CL-ALGEBRAIC-DATA-TYPE, or ADT, is a library for defining algebraic
+data types in a similar spirit to Haskell or Standard ML, as well as for
+operating on them.")
+ (license license:bsd-3))))
+
+(define-public cl-algebraic-data-type
+ (sbcl-package->cl-source-package sbcl-cl-algebraic-data-type))
+
+(define-public ecl-algebraic-data-type
+ (sbcl-package->ecl-package sbcl-cl-algebraic-data-type))
+
+(define-public sbcl-screamer
+ (let ((commit "ce50614024de090b376107668da5e53232540ec7"))
+ (package
+ (name "sbcl-screamer")
+ (version (git-version "0.0.1" "1" commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/nikodemus/screamer/")
+ (commit commit)))
+ (file-name (git-file-name "cl-screamer" version))
+ (sha256
+ (base32 "1jl42pl6kwkiq71d0naf3r1mn1qy89ndimfgiz58c4g66xbjb7kx"))))
+ (build-system asdf-build-system/sbcl)
+ (native-inputs
+ (list sbcl-iterate
+ sbcl-hu.dwim.stefil))
+ (home-page "http://nikodemus.github.io/screamer/")
+ (synopsis "Nondeterministic programming and constraint propagation")
+ (description
+ "Screamer is an extension of Common Lisp that adds support for
+nondeterministic programming. Screamer consists of two levels. The basic
+nondeterministic level adds support for backtracking and undoable side
+effects. On top of this nondeterministic substrate, Screamer provides a
+comprehensive constraint programming language in which one can formulate and
+solve mixed systems of numeric and symbolic constraints. Together, these two
+levels augment Common Lisp with practically all of the functionality of both
+Prolog and constraint logic programming languages such as CHiP and CLP(R).
+Furthermore, Screamer is fully integrated with Common Lisp. Screamer programs
+can coexist and interoperate with other extensions to as CLIM and Iterate.")
+ (license license:expat))))
+
+(define-public cl-screamer
+ (sbcl-package->cl-source-package sbcl-screamer))
+
+(define-public ecl-screamer
+ (sbcl-package->ecl-package sbcl-screamer))
+
+(define-public sbcl-clache
+ (let ((commit "112976729565e1035532389ca25090ae99badd07"))
+ (package
+ (name "sbcl-clache")
+ (version (git-version "0.2.1" "1" commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/html/clache/")
+ (commit commit)))
+ (file-name (git-file-name "cl-clache" version))
+ (sha256
+ (base32 "0wxg004bsay58vr6xr6mlk7wj415qmvisqxvpnjsg6glfwca86ys"))))
+ (build-system asdf-build-system/sbcl)
+ (inputs
+ (list sbcl-alexandria
+ sbcl-babel
+ sbcl-cl-annot
+ sbcl-cl-fad
+ sbcl-cl-store
+ sbcl-cl-syntax
+ sbcl-ironclad
+ sbcl-trivial-garbage))
+ (native-inputs
+ (list sbcl-prove))
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'fix-tests
+ (lambda _
+ (substitute* "clache-test.asd"
+ (("cl-test-more") "prove"))
+ #t)))))
+ (home-page "https://github.com/html/clache/")
+ (synopsis "General caching facility for Common Lisp")
+ (description
+ "CLACHE provides a general caching facility for Common Lisp. The API is
+similar to the standard hash-table interface.")
+ (license license:llgpl))))
+
+(define-public cl-clache
+ (sbcl-package->cl-source-package sbcl-clache))
+
+(define-public ecl-clache
+ (sbcl-package->ecl-package sbcl-clache))
+
+(define-public sbcl-definitions
+ (let ((commit "1f4bd7a634a2299aea19cefb5da8041bbb27f2ec"))
+ (package
+ (name "sbcl-definitions")
+ (version (git-version "1.0.0" "1" commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/Shinmera/definitions/")
+ (commit commit)))
+ (file-name (git-file-name "cl-definitions" version))
+ (sha256
+ (base32 "16dh9iy3v344xj4qllsp47007px3yx26fxxh9gh2cvs8dqgk3kch"))))
+ (build-system asdf-build-system/sbcl)
+ (inputs
+ (list sbcl-documentation-utils))
+ (home-page "https://shinmera.github.io/definitions")
+ (synopsis "General definitions reflection library")
+ (description
+ "This system implements a general definitions introspection library.
+It gives you the ability to retrieve definitions or bindings associated with
+designators such as symbols, packages, and names in general. For instance, it
+allows you to retrieve all function, type, variable, method, etc. definitions
+of a symbol.")
+ (license license:zlib))))
+
+(define-public cl-definitions
+ (sbcl-package->cl-source-package sbcl-definitions))
+
+(define-public ecl-definitions
+ (sbcl-package->ecl-package sbcl-definitions))
+
+(define-public sbcl-filtered-functions
+ (let ((commit "130f69e7b9e1051bf569ef63364b09a3873f0ced"))
+ (package
+ (name "sbcl-filtered-functions")
+ (version (git-version "0.2.0" "1" commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/pcostanza/filtered-functions")
+ (commit commit)))
+ (file-name (git-file-name "cl-filtered-functions" version))
+ (sha256
+ (base32 "0m13k8pl0gfll8ss83c0z3gax7zrrw2i4s26451jfbka1xr4fgy9"))))
+ (build-system asdf-build-system/sbcl)
+ (inputs
+ (list sbcl-closer-mop))
+ (home-page "https://github.com/pcostanza/filtered-functions")
+ (synopsis "Extension of CLOS generic function invocation")
+ (description
+ "Filtered functions provide an extension of CLOS generic function
+invocation that add a simple preprocessing step before the actual method
+dispatch is performed and thus enable the use of arbitrary predicates for
+selecting and applying methods. See
+@url{http://www.p-cos.net/documents/filtered-dispatch.pdf} for a paper that
+introduces and explains filtered functions in detail.")
+ (license license:expat))))
+
+(define-public cl-filtered-functions
+ (sbcl-package->cl-source-package sbcl-filtered-functions))
+
+(define-public ecl-filtered-functions
+ (sbcl-package->ecl-package sbcl-filtered-functions))
+
+(define-public sbcl-defstar
+ (let ((commit "132829dac9f84fa7202a0c5793aa6accb8d2662a"))
+ (package
+ (name "sbcl-defstar")
+ (version (git-version "1.0.0" "1" commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "http://bitbucket.org/eeeickythump/defstar/")
+ (commit commit)))
+ (file-name (git-file-name "cl-defstar" version))
+ (sha256
+ (base32 "0n6m3aqvdfnsrhlhqjcy72d1i55lbkjg13ij5c7vw003p1n78wxi"))))
+ (build-system asdf-build-system/sbcl)
+ (home-page "http://bitbucket.org/eeeickythump/defstar/")
+ (synopsis "Easy inline (return) type declarations for functions")
+ (description
+ "Defstar is a collection of Common Lisp macros that can be used in
+place of @code{defun}, @code{defmethod}, @code{defgeneric}, @code{defvar},
+@code{defparameter}, @code{flet}, @code{labels}, @code{let*} and
+@code{lambda}. Each macro has the same name as the form it replaces, with a
+star added at the end, e.g. @code{defun}. (the exception is the @code{let*}
+replacement, which is called @code{*let}).")
+ (license license:gpl3))))
+
+(define-public cl-defstar
+ (sbcl-package->cl-source-package sbcl-defstar))
+
+(define-public ecl-defstar
+ (sbcl-package->ecl-package sbcl-defstar))
+
+(define-public sbcl-dynamic-mixins
+ (let ((commit "7cc09bee7d68527f37406671fabe910e8235b746"))
+ (package
+ (name "sbcl-dynamic-mixins")
+ (version (git-version "0.0" "1" commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/rpav/dynamic-mixins")
+ (commit commit)))
+ (file-name (git-file-name "cl-dynamic-mixins" version))
+ (sha256
+ (base32 "00g3s509ysh2jp1qwsgb5bwl6qvhzcljwjz3z4mspbcak51484zj"))))
+ (build-system asdf-build-system/sbcl)
+ (inputs
+ (list sbcl-alexandria
+ sbcl-closer-mop))
+ (home-page "https://github.com/rpav/dynamic-mixins")
+ (synopsis "Simple, dynamic class combination for CLOS")
+ (description
+ "Dynamic-mixins is for simple, dynamic class combination; it allows
+objects to be mixed and updated without manually defining many permutations.")
+ (license license:bsd-2))))
+
+(define-public cl-dynamic-mixins
+ (sbcl-package->cl-source-package sbcl-dynamic-mixins))
+
+(define-public ecl-dynamic-mixins
+ (sbcl-package->ecl-package sbcl-dynamic-mixins))
+
+(define-public sbcl-sealable-metaobjects
+ (let ((commit "e09ec97252e0844528f61abdc0c7ee256875f8ee"))
+ (package
+ (name "sbcl-sealable-metaobjects")
+ (version (git-version "0.0.0" "1" commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/marcoheisig/sealable-metaobjects/")
+ (commit commit)))
+ (file-name (git-file-name "cl-sealable-metaobjects" version))
+ (sha256
+ (base32 "0hz1ivlpfhnk1w2cw4q2i000j2dc7maay06ndzziyywg7li6zf2p"))))
+ (build-system asdf-build-system/sbcl)
+ (inputs
+ (list sbcl-closer-mop))
+ (home-page "https://github.com/marcoheisig/sealable-metaobjects/")
+ (synopsis "CLOSsy way to trade genericity for performance")
+ (description
+ "This library is an extension of the Common Lisp Object System (CLOS)
+that allows a compiler to inline a generic function under certain
+conditions.")
+ (license license:expat))))
+
+(define-public cl-sealable-metaobjects
+ (sbcl-package->cl-source-package sbcl-sealable-metaobjects))
+
+(define-public ecl-sealable-metaobjects
+ (sbcl-package->ecl-package sbcl-sealable-metaobjects))
+
+(define-public sbcl-fast-generic-functions
+ (let ((commit "9c307cd28af6453e45038ac3510de3123ff23743"))
+ (package
+ (name "sbcl-fast-generic-functions")
+ (version (git-version "0.0.0" "1" commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/marcoheisig/fast-generic-functions/")
+ (commit commit)))
+ (file-name (git-file-name "cl-fast-generic-functions" version))
+ (sha256
+ (base32 "16hf9bi2p5s77p3m3aqsihcd9iicqjhhxxpsarjv93c41qs54yad"))))
+ (build-system asdf-build-system/sbcl)
+ (inputs
+ (list sbcl-closer-mop
+ sbcl-sealable-metaobjects
+ sbcl-trivial-macroexpand-all))
+ (arguments
+ ;; Tests fail: https://github.com/marcoheisig/fast-generic-functions/issues/10
+ '(#:tests? #f))
+ (home-page "https://github.com/marcoheisig/fast-generic-functions/")
+ (synopsis "Seal generic functions to boost performance")
+ (description
+ "This library introduces @emph{fast generic functions}, i.e. functions
+that behave just like regular generic functions, except that the can be sealed
+on certain domains. If the compiler can then statically detect that the
+arguments to a fast generic function fall within such a domain, it will
+perform a variety of optimizations.")
+ (license license:expat))))
+
+(define-public cl-fast-generic-functions
+ (sbcl-package->cl-source-package sbcl-fast-generic-functions))
+
+(define-public ecl-fast-generic-functions
+ (sbcl-package->ecl-package sbcl-fast-generic-functions))
+
+(define-public sbcl-compiler-macro-notes
+ (package
+ (name "sbcl-compiler-macro-notes")
+ (version "0.2.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/digikar99/compiler-macro-notes")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name "cl-compiler-macro-notes" version))
+ (sha256
+ (base32 "1jv8snj2wvim3k9qhl1vsx82n56nzdmwa3ms9c4ml2d58fwpfjzs"))))
+ (build-system asdf-build-system/sbcl)
+ (inputs
+ (list sbcl-alexandria
+ sbcl-cl-environments))
+ (home-page "https://github.com/digikar99/compiler-macro-notes")
+ (synopsis "Macros and conditions for use within macros and compiler-macros")
+ (description
+ "Alternative to the @code{compiler-macro} library:
+
+@itemize
+@item Here, we do not treat compiler notes as warnings, but instead these are
+a separate class of conditions. These are also not errors.
+@item Two main condition classes are provided: compiler-macro-notes:note and
+compiler-macro-notes:optimization-failure-note. While the latter is a subclass
+of the former, the latter notes are printed in a slightly different manner to
+the former.
+@item To be able to correctly print the expansion path that led to the
+condition, user code is expected to avoid performing a nonlocal exit to a
+place outside with-notes.
+@end itemize\n")
+ (license license:expat)))
+
+(define-public cl-compiler-macro-notes
+ (sbcl-package->cl-source-package sbcl-compiler-macro-notes))
+
+(define-public ecl-compiler-macro-notes
+ (sbcl-package->ecl-package sbcl-compiler-macro-notes))
+
+(define-public sbcl-ctype
+ (let ((commit "4fc4c5ae44c435ed82556969f698005bee50101c"))
+ (package
+ (name "sbcl-ctype")
+ (version (git-version "0.0.0" "1" commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/s-expressionists/ctype")
+ (commit commit)))
+ (file-name (git-file-name "cl-ctype" version))
+ (sha256
+ (base32 "05smc81ml9rbcbzdhqg2mi9drnjsipq62r5q7f7qql8hbx01vl9i"))))
+ (build-system asdf-build-system/sbcl)
+ (home-page "https://github.com/s-expressionists/ctype")
+ (synopsis "Common Lisp type system implementation ")
+ (description
+ "This system is an implementation of the Common Lisp type system;
+particularly @code{cl:typep} and @code{cl:subtypep}.")
+ (license license:bsd-2))))
+
+(define-public cl-ctype
+ (sbcl-package->cl-source-package sbcl-ctype))
+
+(define-public ecl-ctype
+ (sbcl-package->ecl-package sbcl-ctype))
+
+(define-public sbcl-polymorphic-functions
+ (package
+ (name "sbcl-polymorphic-functions")
+ (version "0.2.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/digikar99/polymorphic-functions/")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name "cl-polymorphic-functions" version))
+ (sha256
+ (base32 "161ylp3avmkylgfddp7i1kscv3bqx734jk1i97xhsbl7x83nin0h"))))
+ (build-system asdf-build-system/sbcl)
+ (inputs
+ (list sbcl-alexandria
+ sbcl-closer-mop
+ sbcl-compiler-macro-notes
+ sbcl-ctype
+ sbcl-fiveam
+ sbcl-cl-form-types
+ sbcl-introspect-environment
+ sbcl-slime-swank))
+ (arguments
+ ;; Tests fail: https://github.com/digikar99/polymorphic-functions/issues/8
+ '(#:tests? #f))
+ (home-page "https://github.com/digikar99/polymorphic-functions/")
+ (synopsis "Function type to dispatch on types instead of classes")
+ (description
+ "This library provides all of
+
+@itemize
+@item ad hoc polymorphism and
+@item subtype polymorphism
+@item parametric polymorphism (in a very limited sense)
+@end itemize
+
+to dispatch on the basis of types rather than classes.")
+ (license license:expat)))
+
+(define-public cl-polymorphic-functions
+ (sbcl-package->cl-source-package sbcl-polymorphic-functions))
+
+(define-public ecl-polymorphic-functions
+ (sbcl-package->ecl-package sbcl-polymorphic-functions))
+
+(define-public sbcl-slot-extra-options
+ (let ((commit "29517d980325cd63744f1acf4cfe5c8ccec2b318"))
+ (package
+ (name "sbcl-slot-extra-options")
+ (version (git-version "1.1.1" "1" commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/some-mthfka/slot-extra-options/")
+ (commit commit)))
+ (file-name (git-file-name "cl-slot-extra-options" version))
+ (sha256
+ (base32 "1b2swhjjs0w1034cy045q8l3ndmci7rjawka39q23vncy6d90497"))))
+ (build-system asdf-build-system/sbcl)
+ (inputs
+ (list sbcl-alexandria
+ sbcl-closer-mop
+ sbcl-serapeum
+ sbcl-iterate))
+ (native-inputs
+ (list sbcl-parachute))
+ (home-page "https://github.com/some-mthfka/slot-extra-options/")
+ (synopsis "Extra options for slots using MOP")
+ (description
+ "This library lets you build a metaclass which in turn lets you specify
+extra slot options in its classes. Options may be easily inspected and custom
+inheritence may be set up. The Meta-Object Protocol (MOP) is used for the
+implementation - through @code{closer-mop}. Some convenience function for
+processing slot options are also available.
+
+Possible use case: you want to automatically set up some definitions based on
+some slots, but you want to have control over it right in the class
+definition.")
+ (license license:lgpl3+))))
+
+(define-public cl-slot-extra-options
+ (sbcl-package->cl-source-package sbcl-slot-extra-options))
+
+(define-public ecl-slot-extra-options
+ (sbcl-package->ecl-package sbcl-slot-extra-options))
+
+(define-public sbcl-parseq
+ (package
+ (name "sbcl-parseq")
+ (version "0.5.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/mrossini-ethz/parseq")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name "cl-parseq" version))
+ (sha256
+ (base32 "0b4lnhwqdlaqccanyssdj2v0am2ygw6qr4543b49kz2rwirykw0w"))))
+ (build-system asdf-build-system/sbcl)
+ (home-page "https://github.com/mrossini-ethz/parseq")
+ (synopsis "Parsing expression grammars for sequences")
+ (description
+ "Parseq (pronounced parsec) is a parsing library for common lisp. It can
+be used for parsing lisp's sequences types: strings, vectors (e.g. binary
+data) and lists. Furthermore, parseq is able to parse nested structures such
+as trees (e.g. lists of lists, lists of vectors, vectors of strings).
+
+Parseq uses parsing expression grammars (PEG) that can be defined through a
+simple interface. Extensions to the standard parsing expressions are
+available. Parsing expressions can be parameterised and made context
+aware. Additionally, the definition of each parsing expression allows the
+arbitrary transformation of the parsing tree.
+
+The library is inspired by Esrap and uses a very similar interface. No code
+is shared between the two projects, however. The features of Esrap are are
+mostly included in parseq and complemented with additional, orthogonal
+features. Any resemblance to esrap-liquid is merely coincidental.")
+ (license license:gpl2)))
+
+(define-public cl-parseq
+ (sbcl-package->cl-source-package sbcl-parseq))
+
+(define-public ecl-parseq
+ (sbcl-package->ecl-package sbcl-parseq))
+
+(define-public sbcl-physical-quantities
+ (package
+ (name "sbcl-physical-quantities")
+ (version "0.2.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/mrossini-ethz/physical-quantities")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name "cl-physical-quantities" version))
+ (sha256
+ (base32 "0mb2s94s6fhw5vfa89naalw7ld11sdsszlqpz0c65dvpfyfmmdmh"))))
+ (build-system asdf-build-system/sbcl)
+ (inputs
+ (list sbcl-parseq))
+ (home-page "https://github.com/mrossini-ethz/physical-quantities")
+ (synopsis "Numeric type with optional unit and/or uncertainty for physics")
+ (description
+ "This lisp library handles physical quantities which consist of
+
+@itemize
+@item value / magnitude
+@item uncertainty / error
+@item unit
+@end itemize
+
+where the type of the value can be any subtype of real. For the uncertainty,
+both absolute and relative values are possible. Combinations of lisp symbols
+or strings are used to describe units. User defined units including
+abbreviations and prefixes are supported. Error propagation and unit checking
+is performed for all defined operations.")
+ (license license:gpl2)))
+
+(define-public cl-physical-quantities
+ (sbcl-package->cl-source-package sbcl-physical-quantities))
+
+(define-public ecl-physical-quantities
+ (sbcl-package->ecl-package sbcl-physical-quantities))
+
+(define-public sbcl-sb-cga
+ (let ((commit "9a554ea1c01cac998ff7eaa5f767bc5bcdc4c094"))
+ (package
+ (name "sbcl-sb-cga")
+ (version (git-version "1.0.1" "1" commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/nikodemus/sb-cga/")
+ (commit commit)))
+ (file-name (git-file-name "cl-sb-cga" version))
+ (sha256
+ (base32 "1y54qlwfrhch9aghk7nsbdx7x2qsvgsws1g2k631l9dsgdakw4w8"))))
+ (build-system asdf-build-system/sbcl)
+ (inputs
+ (list sbcl-alexandria))
+ (home-page "https://github.com/nikodemus/sb-cga/")
+ (synopsis "Computer graphic algebra for Common Lisp")
+ (description
+ "SB-CGA is a computer graphics algebra library for Common Lisp.
+
+Despite the prefix it is actually portable - but optimizations that make it
+fast (using SIMD instructions) are currently implemented for SBCL/x86-64
+only.")
+ (license license:expat))))
+
+(define-public cl-sb-cga
+ (sbcl-package->cl-source-package sbcl-sb-cga))
+
+(define-public ecl-sb-cga
+ (sbcl-package->ecl-package sbcl-sb-cga))
+
+(define-public sbcl-mathkit
+ (let ((commit "fd884f94b36ef5e9bc19459ad0b3cda6303d2a2a"))
+ (package
+ (name "sbcl-mathkit")
+ (version (git-version "0.0" "1" commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/lispgames/mathkit/")
+ (commit commit)))
+ (file-name (git-file-name "cl-mathkit" version))
+ (sha256
+ (base32 "174y6ndmf52h8sml87qjfl48llmynvdizzk2h0mr85zbaysx73i3"))))
+ (build-system asdf-build-system/sbcl)
+ (inputs
+ (list sbcl-alexandria
+ sbcl-sb-cga))
+ (home-page "https://github.com/lispgames/mathkit/")
+ (synopsis "Pure math functions useful for games, 3D, and GL in general")
+ (description
+ "This is a purely math-related utility kit, providing functions which
+can be useful for games, 3D, and GL in general.")
+ (license license:expat))))
+
+(define-public cl-mathkit
+ (sbcl-package->cl-source-package sbcl-mathkit))
+
+(define-public ecl-mathkit
+ (sbcl-package->ecl-package sbcl-mathkit))
+
+(define-public sbcl-sdl2kit
+ (let ((commit "aae663224a10ece2b0c374aa5942a3f0bc1b3c2f"))
+ (package
+ (name "sbcl-sdl2kit")
+ (version (git-version "0.0.0" "1" commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/lispgames/sdl2kit/")
+ (commit commit)))
+ (file-name (git-file-name "cl-sdl2kit" version))
+ (sha256
+ (base32 "10ymmxqsvdn7ndda9k2qcixj75l7namgqdxc5y2w3v5r1313fy2d"))))
+ (build-system asdf-build-system/sbcl)
+ (inputs
+ (list sbcl-alexandria
+ sbcl-cl-opengl
+ sbcl-defpackage-plus
+ sbcl-sdl2))
+ (home-page "https://github.com/lispgames/sdl2kit/")
+ (synopsis "Utility kit for CL-SDL2")
+ (description
+ "This is a utility kit for @code{cl-sdl2} that provides something similar to
+GLUT. However, it's also geared at being useful for \"real\" applications or
+games.")
+ (license license:expat))))
+
+(define-public cl-sdl2kit
+ (sbcl-package->cl-source-package sbcl-sdl2kit))
+
+(define-public ecl-sdl2kit
+ (sbcl-package->ecl-package sbcl-sdl2kit))
+
+(define-public sbcl-glkit
+ (let ((commit "0d8e7c5fed4231f2177afcf0f3ff66f196ed6a46"))
+ (package
+ (name "sbcl-glkit")
+ (version (git-version "0.0" "1" commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/lispgames/glkit/")
+ (commit commit)))
+ (file-name (git-file-name "cl-glkit" version))
+ (sha256
+ (base32 "1x3y5jcr1f0v9sgn3y5b7b8fhgd6vv37nz73016gdwh511idi8jn"))))
+ (build-system asdf-build-system/sbcl)
+ (inputs
+ (list sbcl-alexandria
+ sbcl-cl-opengl
+ sbcl-defpackage-plus
+ sbcl-mathkit
+ sbcl-sb-cga
+ sbcl-sdl2
+ sbcl-static-vectors))
+ (home-page "https://github.com/lispgames/glkit/")
+ (synopsis "OpenGL utilities for math, shaders, and more")
+ (description
+ "This is a utility kit for functionality related to OpenGL. It provides the following:
+
+@itemize
+@item @code{kit.glm}: This re-exports @code{sb-cga} and @code{mathkit} for
+convenience.
+@item @code{kit.gl.shader}: This provides shader dictionary and compilation
+functionality similar to what was originally found in @code{sdl2kit}.
+@item @code{kit.gl.vao}: This provides an interface for Vertex Array Objects.
+@end itemize\n")
+ (license license:expat))))
+
+(define-public cl-glkit
+ (sbcl-package->cl-source-package sbcl-glkit))
+
+(define-public ecl-glkit
+ (sbcl-package->ecl-package sbcl-glkit))
+
+(define-public sbcl-trees
+ (let ((commit "7b06048af0248c4302088c758208276f9faf2beb"))
+ (package
+ (name "sbcl-trees")
+ (version (git-version "0.11" "1" commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/froydnj/trees/")
+ (commit commit)))
+ (file-name (git-file-name "cl-trees" version))
+ (sha256
+ (base32 "1xvydf3qc17rd7ia8sffxcpclgm3l0iyhx8k72ddk59v3pg5is4k"))))
+ (build-system asdf-build-system/sbcl)
+ (home-page "https://github.com/froydnj/trees/")
+ (synopsis "Binary trees in normal and balanced flavors")
+ (description
+ "This package implements binary trees of various kinds, presenting a
+uniform interface to them all.")
+ (license license:bsd-3))))
+
+(define-public cl-trees
+ (sbcl-package->cl-source-package sbcl-trees))
+
+(define-public ecl-trees
+ (sbcl-package->ecl-package sbcl-trees))
+
+(define-public sbcl-cl-geometry
+ (let ((commit "24eddedc47b931cec27361752736ef0b54fc9984"))
+ (package
+ (name "sbcl-cl-geometry")
+ (version (git-version "0.0.3" "1" commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/vydd/cl-geometry")
+ (commit commit)))
+ (file-name (git-file-name "cl-cl-geometry" version))
+ (sha256
+ (base32 "188xrd8plvc34gz7q01zmkdrzxbpwzln103l5dl78pa4a6vzz34h"))))
+ (build-system asdf-build-system/sbcl)
+ (inputs
+ (list sbcl-iterate
+ sbcl-trees))
+ (home-page "https://github.com/lispgames/cl-geometry/")
+ (synopsis "Simple two dimensional computational geometry in Common Lisp")
+ (description
+ "This is a system for two dimensional computational geometry for Common Lisp.
+
+Note: the system assumes exact rational arithmetic, so no floating point
+coordinates are allowed. This is not checked when creating geometric
+objects.")
+ ;; The .asd says BSD-style but the LICENSE.txt is expat.
+ (license license:expat))))
+
+(define-public cl-cl-geometry
+ (sbcl-package->cl-source-package sbcl-cl-geometry))
+
+(define-public ecl-cl-geometry
+ (sbcl-package->ecl-package sbcl-cl-geometry))
+
+(define-public sbcl-sketch
+ ;; No release in years.
+ (let ((commit "4cc00b08e202c7adda41391463096cf9df1705c3"))
+ (package
+ (name "sbcl-sketch")
+ (version (git-version "2017-11" "1" commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/vydd/sketch")
+ (commit commit)))
+ (file-name (git-file-name "cl-sketch" version))
+ (sha256
+ (base32 "1qrnma8yvmxps9rz3pvlzsir37namppsldijdlr4110pcwi9j9h6"))))
+ (build-system asdf-build-system/sbcl)
+ (inputs
+ (list sbcl-alexandria
+ sbcl-cl-geometry
+ sbcl-glkit
+ sbcl-mathkit
+ sbcl-md5
+ sbcl-sdl2
+ sbcl-sdl2-image
+ sbcl-sdl2-ttf
+ sbcl-sdl2kit
+ sbcl-split-sequence
+ sbcl-static-vectors))
+ (arguments
+ '(#:asd-systems '("sketch" "sketch-examples")))
+ (home-page "https://github.com/vydd/sketch")
+ (synopsis "Creative framework for electronic art, visual design and more")
+ (description
+ "Sketch is a Common Lisp environment for the creation of electronic
+art, visual design, game prototyping, game making, computer graphics,
+exploration of human-computer interaction and more. It is inspired by
+the Processing language and shares some of the API.")
+ (license license:expat))))
+
+(define-public cl-sketch
+ (sbcl-package->cl-source-package sbcl-sketch))
+
+(define-public ecl-sketch
+ (sbcl-package->ecl-package sbcl-sketch))
+
+(define-public sbcl-binary-types
+ (let ((commit "9ec42042a50403961c08179a892ae3de725b1d7a"))
+ (package
+ (name "sbcl-binary-types")
+ (version (git-version "1.2" "1" commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/frodef/binary-types/")
+ (commit commit)))
+ (file-name (git-file-name "binary-types" version))
+ (sha256
+ (base32 "0kp4xwblfxh7gmgqc38k9xzrqlcr0q1jm5167ma1pajdxd3182j8"))))
+ (build-system asdf-build-system/sbcl)
+ (home-page "https://github.com/frodef/binary-types/")
+ (synopsis "Read and write binary records for Common Lisp")
+ (description
+ "Binary-types is a Common Lisp package for reading and writing binary
+files. Binary-types provides macros that are used to declare the mapping
+between Lisp objects and some binary (i.e. octet-based) representation.")
+ (license license:bsd-3))))
+
+(define-public cl-binary-types
+ (sbcl-package->cl-source-package sbcl-binary-types))
+
+(define-public ecl-binary-types
+ (sbcl-package->ecl-package sbcl-binary-types))
+
+(define-public sbcl-trivial-custom-debugger
+ (let ((commit "a560594a673bbcd88136af82086107ee5ff9ca81"))
+ (package
+ (name "sbcl-trivial-custom-debugger")
+ (version (git-version "1.0.0" "1" commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/phoe/trivial-custom-debugger")
+ (commit commit)))
+ (file-name (git-file-name "trivial-custom-debugger" version))
+ (sha256
+ (base32 "1iri5wsp9sc1f5q934cj87zd79r5dc8fda0gl7x1pz95v0wx28yk"))))
+ (build-system asdf-build-system/sbcl)
+ (native-inputs
+ (list sbcl-parachute))
+ (home-page "https://github.com/phoe/trivial-custom-debugger/")
+ (synopsis "Allow arbitrary functions as the standard Lisp debugger")
+ (description
+ "This is a portability library that allows one to fully override the
+standard debugger provided by their Common Lisp system for situations where
+binding @code{*debugger-hook*} is not enough -- most notably, for
+@code{break}.")
+ (license license:expat))))
+
+(define-public cl-trivial-custom-debugger
+ (sbcl-package->cl-source-package sbcl-trivial-custom-debugger))
+
+(define-public ecl-trivial-custom-debugger
+ (package
+ (inherit (sbcl-package->ecl-package sbcl-trivial-custom-debugger))
+ (arguments
+ ;; Tests fail on ECL: https://github.com/phoe/trivial-custom-debugger/issues/3
+ '(#:tests? #f))))