Re: [Rd] Trying to understand the search path and namespaces

From: Berwin A Turlach <berwin_at_maths.uwa.edu.au>
Date: Tue, 16 Nov 2010 15:59:33 +0800

G'day Hadley,

On Mon, 15 Nov 2010 19:45:30 -0600
Hadley Wickham <hadley_at_rice.edu> wrote:

> > 1.6 of Writing R Extensions says
> >
> > Note that adding a name space to a package changes the search
> > strategy. The package name space comes first in the search, then
> > the imports, then the base name space and then the normal search
> > path.
> >
> > I'm not sure of the details, but I think
> >
> >  parents(getNamespace("devtools"))
>
> Ah, my mistake was assuming that the package namespace and environment
> were the same thing.
>
> Interestingly the namespace is dynamic:

Not sure what you mean with this. Section 1.6 of "Writing R Extensions" explicitly states:

	Name spaces are @emph{sealed} once they are loaded.  Sealing
	means that imports and exports cannot be changed and that
	internal variable bindings cannot be changed.

> > parents(getNamespace("devtools"))
> ...
> [31] "base"
> > library(roxygen)
> > parents(getNamespace("devtools"))
> ...
> [31] "Autoloads" "base"

Well, as the part of "Writing R Extensions" that Martin quoted states, the normal search path is part of the search path used by packages with name spaces. So if you attach another package via library(), the normal search path changes and, hence,
`parents(getNamespace("devtools"))' has one more location to report.

Cheers,

        Berwin



R-devel_at_r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel Received on Tue 16 Nov 2010 - 08:07:15 GMT

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.2.0, at Tue 16 Nov 2010 - 14:30:21 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-devel. Please read the posting guide before posting to the list.

list of date sections of archive