Nicknames: ZPACK
This package implements the Common Lisp package system. <Xach> The basic idea of that file is that the semantics of the CL package system can be implemented by an object with three special kinds of tables (present-table, shadowing-table, external-table) and two lists (used-packs, used-by-packs). The rest is implementation. It shadows the CL symbols dealing with packages, and exports replacements that implement the package system anew. Additionnal symbol exported: PACKAGE-EXISTS-ERROR PACKAGE-DOES-NOT-EXIST-ERROR SYMBOL-CONFLICT-ERROR SYMBOL-CONFLICT-EXISTING-SYMBOL SYMBOL-CONFLICT-IMPORTED-SYMBOL PACKAGE-DOCUMENTATION License: BSD Copyright (c) 2012 Zachary Beane <xach@xach.com>, All Rights Reserved Copyright (c) 2012 Pascal J. Bourguignon <pjb@informatimago.com>, All Rights Reserved Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY THE AUTHOR 'AS IS' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*package* |
variable |
The current package. URL: <http://www.lispworks.com/documentation/HyperSpec/Body/v_pkg.htm>
Initial value: #<COM.INFORMATIMAGO.COMMON-LISP.LISP-READER.PACKAGE:PACKAGE "COMMON-LISP-USER">
(boundp object) |
generic-function |
RETURN: Whether the symbol is bound to a value. URL: <http://www.lispworks.com/documentation/HyperSpec/Body/f_boundp.htm>
(defpackage defined-package-name &rest options) |
macro |
DO: Define a new package. URL: <http://www.lispworks.com/documentation/HyperSpec/Body/m_defpkg.htm>
(delete-package pack-name) |
generic-function |
DO: Delete the package. URL: <http://www.lispworks.com/documentation/HyperSpec/Body/f_del_pk.htm>
(do-all-symbols (var &optional result-form) &body body) |
macro |
DO: Iterate over all the symbols of all the packages. URL: <http://www.lispworks.com/documentation/HyperSpec/Body/m_do_sym.htm>
(do-external-symbols (var &optional package result-form) &body body) |
macro |
DO: Iterate over all the external symbols of the package. URL: <http://www.lispworks.com/documentation/HyperSpec/Body/m_do_sym.htm>
(do-symbols (var &optional package result-form) &body body) |
macro |
DO: Iterate over all the symbols of the package. URL: <http://www.lispworks.com/documentation/HyperSpec/Body/m_do_sym.htm>
(export sym &optional pack) |
generic-function |
DO: Export the designated symbols from the package. URL: <http://www.lispworks.com/documentation/HyperSpec/Body/f_export.htm>
(fboundp object) |
generic-function |
RETURN: Whether the symbol is fbound to a function. URL: <http://www.lispworks.com/documentation/HyperSpec/Body/f_fbound.htm>
(find-all-symbols name) |
generic-function |
RETURN: The list of all symbols named NAME in all packages. URL: <http://www.lispworks.com/documentation/HyperSpec/Body/f_find_a.htm>
(find-package pack-name) |
generic-function |
RETURN: The package designated by PACK-NAME, or NIL if none. URL: <http://www.lispworks.com/documentation/HyperSpec/Body/f_find_p.htm>
(find-symbol sym-name &optional pack) |
generic-function |
RETURN: the symbol named SYM-NAME in the package PACK, if found and a status keyword. URL: <http://www.lispworks.com/documentation/HyperSpec/Body/f_find_s.htm>
(import symbols &optional pack) |
generic-function |
DO: Import the symbols into the package. URL: <http://www.lispworks.com/documentation/HyperSpec/Body/f_import.htm>
(in-package name) |
macro |
DO: Sets the current *package* to the package designated by NAME. URL: <http://www.lispworks.com/documentation/HyperSpec/Body/m_in_pkg.htm>
(intern sym-name &optional pack) |
generic-function |
DO: Intern the symbol name in the package. URL: <http://www.lispworks.com/documentation/HyperSpec/Body/f_intern.htm>
keyword |
class |
The keyword class. URL: <http://www.lispworks.com/documentation/HyperSpec/Body/t_kwd.htm>
Class precedence list: KEYWORD SYMBOL STANDARD-OBJECT T
Class init args: NAME PACK PLIST VALUE FUNCTION CONSTANTP
(keywordp object) |
generic-function |
RETURN: Whether the object is a keyword. URL: <http://www.lispworks.com/documentation/HyperSpec/Body/f_kwdp.htm>
(list-all-packages) |
function |
RETURN: A fresh list of all registered packages. URL: <http://www.lispworks.com/documentation/HyperSpec/Body/f_list_a.htm>
(make-package pack-name &key nicknames use) |
generic-function |
DO: Make a new package. URL: <http://www.lispworks.com/documentation/HyperSpec/Body/f_mk_pkg.htm>
(make-symbol sym-name) |
generic-function |
DO: Make a new symbol URL: <http://www.lispworks.com/documentation/HyperSpec/Body/f_mk_sym.htm>
package |
class |
The package class. URL: <http://www.lispworks.com/documentation/HyperSpec/Body/t_pkg.htm>
Class precedence list: PACKAGE STANDARD-OBJECT T
Class init args: NAME EXTERNAL-TABLE PRESENT-TABLE SHADOWING-TABLE USED-PACKS USED-BY-PACKS NICKNAMES DOCUMENTATION
(package-documentation package) |
generic-function |
RETURN: The documentation string of the package.
package-does-not-exist-error |
condition |
The error condition signaling that no package with that name exists.
Class precedence list: PACKAGE-DOES-NOT-EXIST-ERROR SIMPLE-PACKAGE-ERROR PACKAGE-ERROR ERROR SERIOUS-CONDITION SIMPLE-ERROR-MIXIN CONDITION STANDARD-OBJECT T
Class init args: FORMAT-CONTROL FORMAT-ARGUMENTS PACKAGE
package-error |
condition |
The type package-error consists of error conditions related to operations on packages. URL: <http://www.lispworks.com/documentation/HyperSpec/Body/e_pkg_er.htm>
Class precedence list: PACKAGE-ERROR ERROR SERIOUS-CONDITION CONDITION STANDARD-OBJECT T
Class init args: PACKAGE
(package-error-package package-error) |
generic-function |
RETURN: The package in error. URL: <http://www.lispworks.com/documentation/HyperSpec/Body/f_pkg_er.htm>
package-exists-error |
condition |
The error condition signaling that a package with the same name already exists.
Class precedence list: PACKAGE-EXISTS-ERROR SIMPLE-PACKAGE-ERROR PACKAGE-ERROR ERROR SERIOUS-CONDITION SIMPLE-ERROR-MIXIN CONDITION STANDARD-OBJECT T
Class init args: FORMAT-CONTROL FORMAT-ARGUMENTS PACKAGE
(package-name pack) |
generic-function |
RETURN: The package name. URL: <http://www.lispworks.com/documentation/HyperSpec/Body/f_pkg_na.htm>
(package-nicknames package) |
generic-function |
RETURN: The list of nicknames of the package.
(package-shadowing-symbols pack) |
generic-function |
RETURN: The list of shadowing symbols of the package. URL: <http://www.lispworks.com/documentation/HyperSpec/Body/f_pkg_sh.htm>
(package-use-list pack) |
generic-function |
RETURN: The list of packages used by PACK. URL: <http://www.lispworks.com/documentation/HyperSpec/Body/f_pkg_us.htm>
(package-used-by-list pack) |
generic-function |
RETURN: The list of packages that use PACK. URL: <http://www.lispworks.com/documentation/HyperSpec/Body/f_pkg__1.htm>
(packagep package) |
generic-function |
RETURN: Whether the object is a package. URL: <http://www.lispworks.com/documentation/HyperSpec/Body/f_pkgp.htm>
(rename-package package new-name &optional new-nicknames) |
generic-function |
DO: Rename the package giving it the NEW-NAME and NEW-NICKNAMES. URL: <http://www.lispworks.com/documentation/HyperSpec/Body/f_rn_pkg.htm>
(shadow symbol-names &optional pack) |
generic-function |
DO: Shadow the designated symbols. URL: <http://www.lispworks.com/documentation/HyperSpec/Body/f_shadow.htm>
(shadowing-import symbols &optional pack) |
generic-function |
DO: Shadow and import the designated symbols. URL: <http://www.lispworks.com/documentation/HyperSpec/Body/f_shdw_i.htm>
symbol |
class |
The symbol class. URL: <http://www.lispworks.com/documentation/HyperSpec/Body/t_symbol.htm>
Class precedence list: SYMBOL STANDARD-OBJECT T
Class init args: NAME PACK PLIST VALUE FUNCTION CONSTANTP
symbol-conflict-error |
condition |
The error condition signaling a symbol conflict.
Class precedence list: SYMBOL-CONFLICT-ERROR SIMPLE-PACKAGE-ERROR PACKAGE-ERROR ERROR SERIOUS-CONDITION SIMPLE-ERROR-MIXIN CONDITION STANDARD-OBJECT T
Class init args: FORMAT-CONTROL FORMAT-ARGUMENTS PACKAGE EXISTING-SYMBOL IMPORTED-SYMBOL
(symbol-conflict-existing-symbol error) |
generic-function |
RETURN: The existing symbol in conflict.
(symbol-conflict-imported-symbol error) |
generic-function |
RETURN: The imported symbol in conflict.
(symbol-function symbol) |
generic-function |
RETURN: The function of the symbol. URL: <http://www.lispworks.com/documentation/HyperSpec/Body/f_symb_1.htm>
(symbol-name sym) |
generic-function |
RETURN: the name of the symbol. URL: <http://www.lispworks.com/documentation/HyperSpec/Body/f_symb_2.htm>
(symbol-package sym) |
generic-function |
RETURN: the home package of the symbol. URL: <http://www.lispworks.com/documentation/HyperSpec/Body/f_symb_3.htm>
(symbol-plist symbol) |
generic-function |
RETURN: The plist of the symbol. URL: <http://www.lispworks.com/documentation/HyperSpec/Body/f_symb_4.htm>
(symbol-value symbol) |
generic-function |
RETURN: The value of the symbol. URL: <http://www.lispworks.com/documentation/HyperSpec/Body/f_symb_5.htm>
(symbolp object) |
generic-function |
RETURN: Whether the object is a symbol. URL: <http://www.lispworks.com/documentation/HyperSpec/Body/f_symbol.htm>
(unexport sym &optional pack) |
generic-function |
DO: Unexport the designated symbols from the package. URL: <http://www.lispworks.com/documentation/HyperSpec/Body/f_unexpo.htm>
(unintern sym &optional pack) |
generic-function |
DO: Unintern the designated symbols from the package. URL: <http://www.lispworks.com/documentation/HyperSpec/Body/f_uninte.htm>
(unuse-package pack &optional using-pack) |
generic-function |
DO: Make the USING-PACK unuse the package PACK URL: <http://www.lispworks.com/documentation/HyperSpec/Body/f_unuse_.htm>
(use-package pack &optional using-pack) |
generic-function |
DO: Make the USING-PACK use the package PACK. URL: <http://www.lispworks.com/documentation/HyperSpec/Body/f_use_pk.htm>
(with-package-iterator (name package-list-form &rest symbol-types) &body declarations-body) |
macro |
DO: Within the lexical scope of the body forms, the name is defined via macrolet such that successive invocations of (name) will return the symbols, one by one, from the packages in package-list. URL: <http://www.lispworks.com/documentation/HyperSpec/Body/m_w_pkg_.htm>