Subject: [bug#57654] [PATCH 03/16] gnu: Add cl-enhanced-defclass.

From: jgart <[email-masked]>
Date: Wed, 7 Sep 2022 19:48:51 -0500

* gnu/packages/lisp-xyz.scm (cl-enhanced-defclass, ecl-enhanced-defclass,
sbcl-enhanced-defclass): New variables.
---
 gnu/packages/lisp-xyz.scm | 37 +++++++++++++++++++++++++++++++++++++
 1 file changed, 37 insertions(+)

diff --git a/gnu/packages/lisp-xyz.scm b/gnu/packages/lisp-xyz.scm
index 4f441195aa..d354efe3fa 100644
--- a/gnu/packages/lisp-xyz.scm
+++ b/gnu/packages/lisp-xyz.scm
@@ -23344,6 +23344,43 @@ (define-public cl-enhanced-typep
 (define-public ecl-enhanced-typep
   (sbcl-package->ecl-package sbcl-enhanced-typep))
 
+(define-public sbcl-enhanced-defclass
+  (package
+      (name "sbcl-enhanced-defclass")
+      (version "2.1")
+      (source
+        (origin
+          (method git-fetch)
+          (uri (git-reference
+                (url "https://github.com/Hexstream/enhanced-defclass")
+                (commit (string-append "v" version))))
+          (file-name (git-file-name name version))
+          (sha256
+           (base32 "142s5c3pl3x7xdawzsj8pdxiqp4wh6fcajf4la5msvnxgf66d8wg"))))
+      (build-system asdf-build-system/sbcl)
+      (native-inputs (list sbcl-parachute))
+      (inputs
+        (list sbcl-closer-mop
+              sbcl-cesdi
+              sbcl-simple-guess
+              sbcl-object-class
+              sbcl-shared-preferences
+              sbcl-enhanced-eval-when
+              sbcl-compatible-metaclasses ))
+      (home-page "https://www.hexstreamsoft.com/libraries/enhanced-defclass/")
+      (synopsis "Extensible implementation of defclass")
+      (description
+"Provides an extensible implementation of defclass that can accurately
+control the expansion according to the metaclass and automatically detect
+the suitable metaclass by analyzing the @code{defclass} form.")
+      (license license:unlicense)))
+
+(define-public cl-enhanced-defclass
+  (sbcl-package->cl-source-package sbcl-enhanced-defclass))
+
+(define-public ecl-enhanced-defclass
+  (sbcl-package->ecl-package sbcl-enhanced-defclass))
+
 (define-public sbcl-smug
   (let ((commit "647a2428df297e1dd183ba7c19574bdb1320ae79")
         (revision "0"))
-- 
2.37.2