Skip to main content

package-use-list

package-use-list Function

Syntax:

package-use-list package → use-list

Arguments and Values:

package—a package designator .

use-list—a list of package objects.

Description:

Returns a list of other packages used by package.

Examples:

(package-use-list (make-package ’temp))(#<PACKAGE "COMMON-LISP">) 
(use-package ’common-lisp-user ’temp) → T
(package-use-list ’temp)(#<PACKAGE "COMMON-LISP"> #<PACKAGE "COMMON-LISP-USER">)

Exceptional Situations:

Should signal an error of type type-error if package is not a package designator .

See Also:

use-package, unuse-package

Expanded Reference: package-use-list

Basic Usage: Seeing Which Packages Are Used

package-use-list returns a list of package objects that the given package inherits from.

(defpackage "MY-PKG" (:use "COMMON-LISP"))

(package-use-list "MY-PKG")
;; => (#<PACKAGE "COMMON-LISP">)

A Package That Uses Nothing

(make-package "EMPTY-PKG" :use '())
(package-use-list "EMPTY-PKG")
=> ()

After use-package and unuse-package

The use list changes dynamically as packages are used or unused.

(defpackage "BASE-A" (:use) (:export "X"))
(defpackage "BASE-B" (:use) (:export "Y"))
(make-package "COMBINED" :use '())

(use-package "BASE-A" "COMBINED")
(package-use-list "COMBINED")
;; => (#<PACKAGE "BASE-A">)

(use-package "BASE-B" "COMBINED")
(package-use-list "COMBINED")
;; => (#<PACKAGE "BASE-A"> #<PACKAGE "BASE-B">)

(unuse-package "BASE-A" "COMBINED")
(package-use-list "COMBINED")
;; => (#<PACKAGE "BASE-B">)

The COMMON-LISP-USER Package

;; CL-USER typically uses at least COMMON-LISP
(member (find-package "COMMON-LISP")
(package-use-list "COMMON-LISP-USER"))
;; => (#<PACKAGE "COMMON-LISP"> ...)