On 2012-08-26 19:03, Prof Brian Ripley wrote:
On 26/08/2012 17:25, Laurent Gautier wrote:
Hi,

I just stumbled on the following apparent oddity: the package "datasets"
does not appear to export anything out of its namespace:

 > ns_datasets <- getNamespace('datasets')
 > getNamespaceExports(ns_datasets)
character(0)

Not the case with other packages (example here with "utils"):
 > ns_utils <- getNamespace('utils')
 > head(getNamespaceExports(ns_utils))
[1] "?"            ".DollarNames" "adist"        "alarm" "apropos"
[6] "aregexec"

Is this a temporary glitch, or is there something new and specific to
"datasets" ?

Not new, been so since R 2.14.0.

The package contains no R code: the only reason it has a namespace is that since 2.14.0 all packages must have one.

There are other data-only packages, but not in base R.

Lazy-loaded data has not been part of the namespace for a long time: they are directly in the package's environment. The reason is the namespace scoping rules: if the package's datasets were in its namespace, they would be found before any other dataset of that name by the package's R functions.

Thanks for the quick answer and explanations. The last paragraph above is leaving me with the wish to understand more before I comment on it. Would you have an example of finding a dataset in a package's namespace (before a dataset with the same name in an other package further down in the search path) being a problem ?


Best,

Laurent

______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel

Reply via email to