API Reference


No packages.


Portability library for Common Lisp programs


  • Function FIND-PACKAGE* (package-designator &optional (error t))
  • Function FIND-SYMBOL* (name package-designator &optional (error t))
    Find a symbol in a package of given string'ified NAME; unlike CL:FIND-SYMBOL, work well with 'modern' case sensitive syntax by letting you supply a symbol or keyword for the name; also works well when the package is not present. If optional ERROR argument is NIL, return NIL instead of an error when the symbol is not found.
  • Function SYMBOL-CALL (package name &rest args)
    Call a function associated with symbol of given name in given package, with given ARGS. Useful when the call is read before the package is loaded, or when loading the package is optional.
  • Function INTERN* (name package-designator &optional (error t))
  • Function EXPORT* (name package-designator)
  • Function IMPORT* (symbol package-designator)
  • Function SHADOWING-IMPORT* (symbol package-designator)
  • Function SHADOW* (name package-designator)
  • Function MAKE-SYMBOL* (name)
  • Function UNINTERN* (name package-designator &optional (error t))
  • Function SYMBOL-SHADOWING-P (symbol package)
  • Function HOME-PACKAGE-P (symbol package)
  • Function SYMBOL-PACKAGE-NAME (symbol)
  • Function REIFY-PACKAGE (package &optional package-context)
  • Function UNREIFY-PACKAGE (package &optional package-context)
  • Function REIFY-SYMBOL (symbol &optional package-context)
  • Function UNREIFY-SYMBOL (symbol &optional package-context)
  • Function NUKE-SYMBOL-IN-PACKAGE (symbol package-designator)
  • Function NUKE-SYMBOL (symbol &optional (packages (list-all-packages)))
  • Function REHOME-SYMBOL (symbol package-designator)
    Changes the home package of a symbol, also leaving it present in its old home if any
  • Function ENSURE-PACKAGE-UNUSED (package)
  • Function DELETE-PACKAGE* (package &key nuke)
  • Function PACKAGE-NAMES (package)
  • Function PACKAGES-FROM-NAMES (names)
  • Function FRESH-PACKAGE-NAME (&key (prefix :%to-be-deleted) separator (index (random most-positive-fixnum)))
  • Function RENAME-PACKAGE-AWAY (p &rest keys &key prefix &allow-other-keys)
  • Function PACKAGE-DEFINITION-FORM (package-designator &key (nicknamesp t) (usep t) (shadowp t) (shadowing-import-p t) (exportp t) (importp t) internp (error t))
  • Function ENSURE-PACKAGE (name &key nicknames documentation use shadow shadowing-import-from import-from export intern recycle mix reexport unintern)
  • Function PARSE-DEFINE-PACKAGE-FORM (package clauses)
  • Macro DEFINE-PACKAGE (package &rest clauses)
    DEFINE-PACKAGE takes a PACKAGE and a number of CLAUSES, of the form (KEYWORD . ARGS). DEFINE-PACKAGE supports the following keywords: USE, SHADOW, SHADOWING-IMPORT-FROM, IMPORT-FROM, EXPORT, INTERN -- as per CL:DEFPACKAGE. RECYCLE -- Recycle the package's exported symbols from the specified packages, in order. For every symbol scheduled to be exported by the DEFINE-PACKAGE, either through an :EXPORT option or a :REEXPORT option, if the symbol exists in one of the :RECYCLE packages, the first such symbol is re-homed to the package being defined. For the sake of idempotence, it is important that the package being defined should appear in first position if it already exists, and even if it doesn't, ahead of any package that is not going to be deleted afterwards and never created again. In short, except for special cases, always make it the first package on the list if the list is not empty. MIX -- Takes a list of package designators. MIX behaves like (:USE PKG1 PKG2 ... PKGn) but additionally uses :SHADOWING-IMPORT-FROM to resolve conflicts in favor of the first found symbol. It may still yield an error if there is a conflict with an explicitly :IMPORT-FROM symbol. REEXPORT -- Takes a list of package designators. For each package, p, in the list, export symbols with the same name as those exported from p. Note that in the case of shadowing, etc. the symbols with the same name may not be the same symbols. UNINTERN -- Remove symbols here from PACKAGE.