\HeaderA{ns-load}{Loading and Unloading Name Spaces}{ns.Rdash.load}
\aliasA{attachNamespace}{ns-load}{attachNamespace}
\aliasA{loadedNamespaces}{ns-load}{loadedNamespaces}
\aliasA{loadNamespace}{ns-load}{loadNamespace}
\aliasA{unloadNamespace}{ns-load}{unloadNamespace}
\keyword{data}{ns-load}
\keyword{utilities}{ns-load}
\begin{Description}\relax
Functions to load and unload namespaces.
\end{Description}
\begin{Usage}
\begin{verbatim}
attachNamespace(ns, pos = 2, dataPath = NULL)
loadNamespace(package, lib.loc = NULL,
              keep.source = getOption("keep.source.pkgs"),
              partial = FALSE, declarativeOnly = FALSE)
loadedNamespaces()
unloadNamespace(ns)
\end{verbatim}
\end{Usage}
\begin{Arguments}
\begin{ldescription}
\item[\code{ns}] string or namespace object.
\item[\code{pos}] integer specifying position to attach.
\item[\code{dataPath}] path to directory containing a database of datasets to
be lazy-loaded into the attached environment.
\item[\code{package}] string naming the package/name space to load.
\item[\code{lib.loc}] character vector specifying library search path.
\item[\code{keep.source}] logical specifying whether to retain source.
\item[\code{partial}] logical; if true, stop just after loading code.
\item[\code{declarativeOnly}] logical; disables \code{.Import}, etc, if true.
\end{ldescription}
\end{Arguments}
\begin{Details}\relax
The functions \code{loadNamespace} and \code{attachNamespace} are
usually called implicitly when \code{library} is used to load a name
space and any imports needed.  However it may be useful to call
these functions directly at times.

\code{loadNamespace} loads the specified name space and registers it in
an internal data base.  A request to load a name space that is already
loaded has no effect.  The arguments have the same meaning as the
corresponding arguments to \code{library}.  After loading,
\code{loadNamespace} looks for a hook function named
\code{\LinkA{.onLoad}{.onLoad}} as an internal variable in the name space (it
should not be exported).  This function is called with the same arguments
as \code{.First.lib}.  Partial loading is used to support installation with
the \option{--save} and \option{--lazy} options.

\code{loadNamespace} does not attach the name space it loads to the
search path.  \code{attachNamespace} can be used to attach a frame
containing the exported values of a name space to the search path.
The hook function \code{\LinkA{.onAttach}{.onAttach}} is run after the name space
exports are attached.

\code{loadedNamespaces} returns a character vector of the names of
the loaded name spaces.

\code{unloadNamespace} can be used to force
a name space to be unloaded.  An error is signaled if the name space
is imported by other loaded name spaces.  If defined, a hook
function \code{\\code\{.onUnload\}} is run
before removing the name space from the internal registry.
\code{unloadNamespace} will first \code{\LinkA{detach}{detach}} a package of
the same name if one is on the path, thereby running a
\code{.Last.lib} function in the package if one is exported.
\end{Details}
\begin{Author}\relax
Luke Tierney
\end{Author}

