Plaster
New
List
Login
common-lisp
default
phoe
2022.01.26 10:52:50
(defun starts-with (string substring) (let ((length (length substring))) (and (<= length (length string)) (string= (subseq string 0 length) substring)))) (defun list-all-sbcl-packages () (flet ((sbcl-package-p (package) (starts-with (package-name package) "SB-"))) (remove-if-not #'sbcl-package-p (list-all-packages)))) (defun private-sbcl-package-p (package) (let ((docstring (documentation package 't))) (or (null docstring) (and (stringp docstring) (or (starts-with docstring "private") (starts-with docstring "internal")))))) (defun list-private-sbcl-packages () (remove-if-not #'private-sbcl-package-p (list-all-sbcl-packages))) (defun list-public-sbcl-packages () (remove-if #'private-sbcl-package-p (list-all-sbcl-packages))) CL-USER> (list-private-sbcl-packages) (#<PACKAGE "SB-X86-64-ASM"> #<PACKAGE "SB-DISASSEM"> #<PACKAGE "SB-RBTREE"> #<PACKAGE "SB-VM"> #<PACKAGE "SB-REGALLOC"> #<PACKAGE "SB-PRETTY"> #<PACKAGE "SB-CLTL2"> #<PACKAGE "SB-FASL"> #<PACKAGE "SB-BIGNUM"> #<PACKAGE "SB-POSIX"> #<PACKAGE "SB-BSD-SOCKETS-INTERNAL"> #<PACKAGE "SB-LOCKLESS"> #<PACKAGE "SB-KERNEL"> #<PACKAGE "SB-DI"> #<PACKAGE "SB-ALIEN-INTERNALS"> #<PACKAGE "SB-APROF"> #<PACKAGE "SB-FORMAT"> #<PACKAGE "SB-INT"> #<PACKAGE "SB-SYS"> #<PACKAGE "SB-EVAL"> #<PACKAGE "SB-WALKER"> #<PACKAGE "SB-UNIX"> #<PACKAGE "SB-IMPL"> #<PACKAGE "SB-LOOP"> #<PACKAGE "SB-ASSEM"> #<PACKAGE "SB-C"> #<PACKAGE "SB-INTROSPECT">) CL-USER> (list-public-sbcl-packages) (#<PACKAGE "SB-BSD-SOCKETS"> #<PACKAGE "SB-PCL"> #<PACKAGE "SB-THREAD"> #<PACKAGE "SB-DEBUG"> #<PACKAGE "SB-PROFILE"> #<PACKAGE "SB-SEQUENCE"> #<PACKAGE "SB-MOP"> #<PACKAGE "SB-ALIEN"> #<PACKAGE "SB-GRAY"> #<PACKAGE "SB-UNICODE"> #<PACKAGE "SB-EXT">)
Raw
Annotate
Repaste