make-package (original) (raw)
ANSI Common Lisp 11 Packages
11.2 Dictionary of Packages
11.2.12 make-package | Function |
---|
Syntax:
make-package package-name &key nicknames use package
Arguments and Values:
package-name - a string designator.
nicknames - a list of string designators. The default is the empty list.
use - a list of package designators. The default is implementation-defined.
package - a package.
Description:
Creates a new package with the name package-name.
Nicknames are additional names which may be used to refer to the new package.
use specifies zero or more _packages_the external symbols of which are to be inherited by the new package. See the function use-package.
Examples:
(make-package 'temporary :nicknames '("TEMP" "temp")) #<PACKAGE "TEMPORARY">
(make-package "OWNER" :use '("temp"))
#<PACKAGE "OWNER">
(package-used-by-list 'temp)
(#<PACKAGE "OWNER">)
(package-use-list 'owner)
(#<PACKAGE "TEMPORARY">)
Affected By:
The existence of other packages in the system.
Exceptional Situations:
The consequences are unspecified if packages denoted by _use_do not exist.
A correctable error is signaled if the _package-name_or any of the nicknames is already the name or nickname of an existing package.
See Also:
Notes:
In situations where the packages to be used contain symbols which would conflict, it is necessary to first create the package with :use '(), then to use shadow or shadowing-import to address the conflicts, and then after that to use use-package once the conflicts have been addressed.
When packages are being created as part of the static definition of a program rather than dynamically by the program, it is generally considered more stylistically appropriate to use defpackage rather than make-package.
Allegro CL Implementation Details:
Allegro CL has added some keyword arguments. See cl:make-package implementationin implementation.html.