[Rd] Shouldn't "Loading" be "Attaching" when referring to library() calls?
Martin Maechler
m@ech|er @end|ng |rom @t@t@m@th@ethz@ch
Tue Jan 10 11:31:40 CET 2023
>>>>> Martin Maechler
>>>>> on Tue, 10 Jan 2023 10:26:53 +0100 writes:
>>>>> Michael Chirico via R-devel
>>>>> on Mon, 9 Jan 2023 12:25:46 -0800 writes:
>> require() and library() both emit this message immediately before
>> running library():
>> "Loading required package: %s"
>> https://github.com/r-devel/r-svn/blob/4198a2941b702d965bb2374c2b908f48c369f40a/src/library/base/R/library.R#L967-L968
>> https://github.com/r-devel/r-svn/blob/4198a2941b702d965bb2374c2b908f48c369f40a/src/library/base/R/library.R#L684-L685
>> Shouldn't "Loading" be "Attaching" instead?
> Good question... I had asked myself as well a couple of times.
> The vagueness is mostly "historical" in the sense that
> originally R (nor S) had namespaces.
Oops! If you skip the "( .. )" above it's 100% wrong.
Correct (I hope even according Oxford Dictionary) is
" Originally, neither R nor S had namespaces. "
> OTOH, attach(.) has always worked for data frames (already in pre-R S).
> Still, I agree (when teaching and otherwise), we should
> clearly distinguish the two notably in the context of packages
> and their namespaces.
>> My understanding is "a package is loaded" is equivalent to
>> "isNamespaceLoaded()", i.e., loadNamespace() was run. And that "a
>> package is attached" is equivalent to "pkg %in% .packages()", i.e.,
>> library(pkg) was run.
> or (easier for teaching) that "package:<pkg>" %in% search()
> -- which is what .packages() does {by default}.
> I agree with the above.
>> Is the terminology not so precise?
>> There's certainly ambiguity in the internal variable names referenced
>> above -- in require, we see
>> loaded <- paste0("package:", package) %in% search()
>> https://github.com/r-devel/r-svn/blob/4198a2941b702d965bb2374c2b908f48c369f40a/src/library/base/R/library.R#L680
> again, historical: require() exists for considerably longer
> than namespaces.
> I think we should at least change the message printed by
> require() and library() you mentioned above.
> Martin
>> Whereas in library() [via .getRequiredPackages2()] we see
>> attached <- paste0("package:", pkg) %in% search()
>> https://github.com/r-devel/r-svn/blob/4198a2941b702d965bb2374c2b908f48c369f40a/src/library/base/R/library.R#L931
>> Mike C
> ______________________________________________
> R-devel using r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
More information about the R-devel
mailing list