Package COM.INFORMATIMAGO.COMMON-LISP.LISP-READER.PACKAGE

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>