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