Rev 37181 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed
\name{ns-load}\title{Loading and Unloading Name Spaces}\alias{attachNamespace}\alias{loadNamespace}\alias{loadedNamespaces}\alias{unloadNamespace}\description{Functions to load and unload namespaces.}\usage{attachNamespace(ns, pos = 2, dataPath = NULL)loadNamespace(package, lib.loc = NULL,keep.source = getOption("keep.source.pkgs"),partial = FALSE, declarativeOnly = FALSE)loadedNamespaces()unloadNamespace(ns)}\arguments{\item{ns}{string or namespace object.}\item{pos}{integer specifying position to attach.}\item{dataPath}{path to directory containing a database of datasets tobe lazy-loaded into the attached environment.}\item{package}{string naming the package/name space to load.}\item{lib.loc}{character vector specifying library search path.}\item{keep.source}{logical specifying whether to retain source.This applies only to the specified name space, and not to other name spaceswhich might be loaded to satisfy imports.For more details see this argument to \code{\link{library}}.}\item{partial}{logical; if true, stop just after loading code.}\item{declarativeOnly}{logical; disables \code{.Import}, etc, if true.}}\details{The functions \code{loadNamespace} and \code{attachNamespace} areusually called implicitly when \code{library} is used to load a namespace and any imports needed. However it may be useful to callthese functions directly at times.\code{loadNamespace} loads the specified name space and registers it inan internal data base. A request to load a name space that is alreadyloaded has no effect. The arguments have the same meaning as thecorresponding arguments to \code{\link{library}}, whose help pageexplains the details of how a particular installed package comes to bechosen. After loading,\code{loadNamespace} looks for a hook function named\code{\link{.onLoad}} as an internal variable in the name space (itshould not be exported). This function is called with the same argumentsas \code{.First.lib}. Partial loading is used to support installation withthe \option{--save} and \option{--lazy} options.\code{loadNamespace} does not attach the name space it loads to thesearch path. \code{attachNamespace} can be used to attach a framecontaining the exported values of a name space to the search path.The hook function \code{\link{.onAttach}} is run after the name spaceexports are attached.\code{loadedNamespaces} returns a character vector of the names ofthe loaded name spaces.\code{unloadNamespace} can be used to forcea name space to be unloaded. An error is signaled if the name spaceis imported by other loaded name spaces. If defined, a hookfunction \code{\code{.onUnload}} is runbefore removing the name space from the internal registry.\code{unloadNamespace} will first \code{\link{detach}} a package ofthe same name if one is on the path, thereby running a\code{.Last.lib} function in the package if one is exported.}\keyword{data}\keyword{utilities}\author{Luke Tierney}