summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArtyom Bologov <mail@aartaka.me>2022-11-10 16:53:09 +0400
committerGuillaume Le Vaillant <glv@posteo.net>2022-11-10 14:43:35 +0100
commit1f5e8ef14ffa385907fc94a754cfff7a45fee50c (patch)
treea4ad34642b91d7c9c754e5d3ec51712ba494016b
parent2c9b4c573b6fd24ed350f19e1b0ea0b1c0fbe932 (diff)
gnu: Add cl-nsymbols.
* gnu/packages/lisp-xyz.scm (sbcl-nsymbols, cl-nsymbols, ecl-nsymbols): New variables. Signed-off-by: Guillaume Le Vaillant <glv@posteo.net>
-rw-r--r--gnu/packages/lisp-xyz.scm49
1 files changed, 49 insertions, 0 deletions
diff --git a/gnu/packages/lisp-xyz.scm b/gnu/packages/lisp-xyz.scm
index b3c5eec050..360196bc49 100644
--- a/gnu/packages/lisp-xyz.scm
+++ b/gnu/packages/lisp-xyz.scm
@@ -22637,6 +22637,55 @@ JSON handling. Load the parser backend you prefer!
(define-public ecl-nactivitypub
(sbcl-package->ecl-package sbcl-nactivitypub))
+(define-public sbcl-nsymbols
+ (package
+ (name "sbcl-nsymbols")
+ (version "0.2.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/atlas-engineer/nsymbols")
+ (commit version)))
+ (file-name (git-file-name "cl-nsymbols" version))
+ (sha256
+ (base32 "1nks5v2l6vf0kwiyv3r2lickp3xhyi0ck33y1l08crmwhn097hpd"))))
+ (build-system asdf-build-system/sbcl)
+ (native-inputs (list sbcl-lisp-unit2))
+ (synopsis
+ "Functions to search, filter, and group symbols in chosen packages")
+ (home-page "https://github.com/atlas-engineer/nsymbols")
+ (description "Nsymbols extends the regular package API of ANSI CL with more
+operations, allowing one to list:
+
+@itemize
+@item @code{package-symbols}.
+@item @code{package-variables}.
+@item @code{package-functions}.
+@item @code{package-generic-functions}.
+@item @code{package-macros}.
+@item @code{package-classes}.
+@item @code{package-structures}.
+@item And other symbol types, given @code{define-symbol-type} for those.
+@end itemize
+
+Nsymbols can also find symbols by their name/matching symbol with
+@code{resolve-symbol}. All these operations are aware of symbol
+visibility in the given packages, due to a @code{symbol-visibility}
+function.
+
+An additional @code{nsymbols/star} system has a set of functions
+mirroring the regular Nsymbols ones, but using @code{closer-mop} to
+provide better results and returning structured data instead of
+symbols.")
+ (license license:bsd-3)))
+
+(define-public cl-nsymbols
+ (sbcl-package->cl-source-package sbcl-nsymbols))
+
+(define-public ecl-nsymbols
+ (sbcl-package->ecl-package sbcl-nsymbols))
+
(define-public sbcl-utils-kt
(let ((commit "4adfe2889036ab5ffdd3cc2182ca2cc692bf11ff"))
(package