From 85821dcd33d7856ab57459f9afb46b32a862bf52 Mon Sep 17 00:00:00 2001 From: Pierre Neidhardt Date: Mon, 30 Nov 2020 11:28:36 +0100 Subject: [PATCH] gnu: Add generic-cl. * gnu/packages/lisp-xyz.scm (cl-generic-cl, ecl-generic-cl, sbcl-generic-cl): New variables. --- gnu/packages/lisp-xyz.scm | 48 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/gnu/packages/lisp-xyz.scm b/gnu/packages/lisp-xyz.scm index 7539f51bda..2e6c059777 100644 --- a/gnu/packages/lisp-xyz.scm +++ b/gnu/packages/lisp-xyz.scm @@ -11459,6 +11459,54 @@ (define-public cl-static-dispatch (define-public ecl-static-dispatch (sbcl-package->ecl-package sbcl-static-dispatch)) +(define-public sbcl-generic-cl + ;; Latest commit includes a necessary fix for our Guix build. + (let ((commit "8e5a81487ee3c13fe5ffdc8bdda161d476639535")) + (package + (name "sbcl-generic-cl") + (version (git-version "0.7.1" "1" commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/alex-gutev/generic-cl") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "11w0g79s4wmc78vmfng437rmsgnp5qn246zcyr540fp5nw0ad6ix")))) + (build-system asdf-build-system/sbcl) + (inputs + `(("agutil" ,sbcl-agutil) + ("alexandria" ,sbcl-alexandria) + ("anaphora" ,sbcl-anaphora) + ("arrows" ,sbcl-arrows) + ("cl-custom-hash-table" ,sbcl-custom-hash-table) + ("trivia" ,sbcl-trivia))) + (propagated-inputs + ;; FIXME: Same error as for `sbcl-static-dispatch'. + `(("static-dispatch" ,cl-static-dispatch))) + (native-inputs + `(("prove" ,sbcl-prove))) + (arguments + ;; Tests fail because SBCL head size is not high enough. + ;; https://github.com/alex-gutev/generic-cl/issues/6 + `(#:tests? #f)) + (home-page "https://alex-gutev.github.io/generic-cl/") + (synopsis "Generic function interface to standard Common Lisp functions") + (description "@code{generic-cl} provides a generic function wrapper over +various functions in the Common Lisp standard, such as equality predicates and +sequence operations. The goal of this wrapper is to provide a standard +interface to common operations, such as testing for the equality of two +objects, which is extensible to user-defined types.") + (license license:expat)))) + +(define-public cl-generic-cl + (sbcl-package->cl-source-package sbcl-generic-cl)) + +(define-public ecl-generic-cl + (sbcl-package->ecl-package sbcl-generic-cl)) + (define-public sbcl-defpackage-plus (let ((revision "0") (commit "5492e27e0bdb7b75fa5177ea4388519dc7a75f11"))