From ch|r|com @end|ng |rom goog|e@com  Mon Jan  9 21:25:46 2023
From: ch|r|com @end|ng |rom goog|e@com (Michael Chirico)
Date: Mon, 9 Jan 2023 12:25:46 -0800
Subject: [Rd] Shouldn't "Loading" be "Attaching" when referring to library()
 calls?
Message-ID: <CAD7Bkx-SFxFYra8kPZvNntKBtscQzgABw1LMNTKY7XYexnCQgQ@mail.gmail.com>

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?

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.

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

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



[Rd] Shouldn't "Loading" be "Attaching" when referring to library() calls?
Michael Chirico