>>>>> 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@r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-devel ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel