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

From: Henrik Bengtsson <hb_at_biostat.ucsf.edu>
Date: Mon, 15 Nov 2010 16:02:19 -0800

On Mon, Nov 15, 2010 at 3:26 PM, Hadley Wickham <hadley_at_rice.edu> wrote:
> Hi all,
>
> I'm trying to understand how the search path and namespaces interact.
> For example, take the devtools package which suggests the testthat
> package.  Here's what the search path looks like after I load each of
> those packages:
>
>> library(devtools)
>> search()
>  [1] ".GlobalEnv"        "package:devtools"  "package:stats"
>  [4] "package:graphics"  "package:grDevices" "package:utils"
>  [7] "package:datasets"  "package:methods"   "Autoloads"
> [10] "package:base"
>> library(testthat)
>> search()
>  [1] ".GlobalEnv"        "package:testthat"  "package:devtools"
>  [4] "package:stats"     "package:graphics"  "package:grDevices"
>  [7] "package:utils"     "package:datasets"  "package:methods"
> [10] "Autoloads"         "package:base"
>
> My question is this: when I execute the test function in devtools
> function it calls the the test_package function in the testthat
> package - but that function is located higher up the search path - how
> does R find it?

With a small risk of being incorrect (and the chance of learning something new), I'll give it a try:

A search for a functions/objects/... that is not in the same package environment is done in the order that the search() path gives. The exception to this iff your package has a namespace, then the 'base' package environment is always searched first (before any other environments). The ordering of the search is important when there exist multiple package environments with the same function.

Is that of any help?

/Henrik

>
> (I ask this question because I'm trying to simulate package loading
> from within R to simplify the development cycle, but something is
> missing in my knowledge of namespaces, and so I have the devel
> versions of my packages can't access packages that are loaded after
> they are)
>
> Hadley
>
> --
> Assistant Professor / Dobelman Family Junior Chair
> Department of Statistics / Rice University
> http://had.co.nz/
>
> ______________________________________________
> R-devel_at_r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
>



R-devel_at_r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel Received on Tue 16 Nov 2010 - 00:06:16 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 - 01:40: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