Um, what's with the triple colon? At least on my install, double seems to suffice:> identical(utils:::install.packages, utils::install.packages)[1] TRUE> install.packagesfunction (...) .rs.callAs(name, hook, original, ...) <environment: 0x7f79e0019860> -pd> On 21 Mar 2024, at 09:58 , Duncan Murdoch <murdoch.duncan at gmail.com> wrote: > > The good news for Jorgen (who may not be reading this thread any more) is that one can still be sure of getting the original install.packages() by using > > utils:::install.packages( ... ) > > with *three* colons, to get the internal (namespace) version of the function. > > Duncan Murdoch > > > On 21/03/2024 4:31 a.m., Martin Maechler wrote: >>>>>>> "Duncan Murdoch on Wed, 20 Mar 2024 13:20:12 -0400 writes: >> > On 20/03/2024 1:07 p.m., Duncan Murdoch wrote: >> >> On 20/03/2024 12:37 p.m., Ben Bolker wrote: >> >>> Ivan, can you give more detail on this? I've heard this >> >>> issue mentioned, but when I open RStudio and run >> >>> find("install.packages") it returns >> >>> "utils::install.packages", and running dump() from >> >>> within RStudio console and from an external "R >> >>> --vanilla" gives identical results. >> >>> >> >>> I thought at one point this might only refer to the GUI >> >>> package-installation interface, but you seem to be >> >>> saying it's the install.packages() function as well. >> >>> >> >>> Running an up-to-date RStudio on Linux, FWIW -- maybe >> >>> weirdness only happens on other OSs? >> >> >> >> On MacOS, I see this: >> >> >> >> > install.packages function (...) .rs.callAs(name, hook, >> >> original, ...) <environment: 0x7fa7c72a6268> >> >> >> >> I get the same results as you from find(). I'm not sure >> >> what RStudio is doing to give a different value for the >> >> function than what find() sees. >> > Turns out that RStudio replaces the install.packages >> > object in the utils package. >> > Duncan Murdoch >> Yes, and this has been the case for several years now, and I >> have mentioned this several times, too (though some of it >> possibly not in a public R-* mailing list). >> And yes, that they modify the package environment >> as.environment("package:utils") >> but leave the >> namespace asNamespace("utils") >> unchanged, makes it harder to see what's >> going on (but also has less severe consequences; if they kept to >> the otherwise universal *rule* that the namespace and package must have the same objects >> apart from those only in the namespace, >> people would not even have access to R's true install.packages() >> but only see the RStudio fake^Hsubstitute.. >> We are still not happy with their decision. Also >> help(install.packages) goes to R's documentation of R's >> install.packages, so there's even more misleading of useRs. >> Martin >> > > ______________________________________________ > R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code.-- Peter Dalgaard, Professor, Center for Statistics, Copenhagen Business School Solbjerg Plads 3, 2000 Frederiksberg, Denmark Phone: (+45)38153501 Office: A 4.23 Email: pd.mes at cbs.dk Priv: PDalgd at gmail.com
Yes, you're right. The version found in the search list entry for "package:utils" is the RStudio one; the ones found with two or three colons are the original. Duncan Murdoch On 21/03/2024 5:48 a.m., peter dalgaard wrote:> Um, what's with the triple colon? At least on my install, double seems to suffice: > >> identical(utils:::install.packages, utils::install.packages) > [1] TRUE >> install.packages > function (...) > .rs.callAs(name, hook, original, ...) > <environment: 0x7f79e0019860> > > -pd > >> On 21 Mar 2024, at 09:58 , Duncan Murdoch <murdoch.duncan at gmail.com> wrote: >> >> The good news for Jorgen (who may not be reading this thread any more) is that one can still be sure of getting the original install.packages() by using >> >> utils:::install.packages( ... ) >> >> with *three* colons, to get the internal (namespace) version of the function. >> >> Duncan Murdoch >> >> >> On 21/03/2024 4:31 a.m., Martin Maechler wrote: >>>>>>>> "Duncan Murdoch on Wed, 20 Mar 2024 13:20:12 -0400 writes: >>> > On 20/03/2024 1:07 p.m., Duncan Murdoch wrote: >>> >> On 20/03/2024 12:37 p.m., Ben Bolker wrote: >>> >>> Ivan, can you give more detail on this? I've heard this >>> >>> issue mentioned, but when I open RStudio and run >>> >>> find("install.packages") it returns >>> >>> "utils::install.packages", and running dump() from >>> >>> within RStudio console and from an external "R >>> >>> --vanilla" gives identical results. >>> >>> >>> >>> I thought at one point this might only refer to the GUI >>> >>> package-installation interface, but you seem to be >>> >>> saying it's the install.packages() function as well. >>> >>> >>> >>> Running an up-to-date RStudio on Linux, FWIW -- maybe >>> >>> weirdness only happens on other OSs? >>> >> >>> >> On MacOS, I see this: >>> >> >>> >> > install.packages function (...) .rs.callAs(name, hook, >>> >> original, ...) <environment: 0x7fa7c72a6268> >>> >> >>> >> I get the same results as you from find(). I'm not sure >>> >> what RStudio is doing to give a different value for the >>> >> function than what find() sees. >>> > Turns out that RStudio replaces the install.packages >>> > object in the utils package. >>> > Duncan Murdoch >>> Yes, and this has been the case for several years now, and I >>> have mentioned this several times, too (though some of it >>> possibly not in a public R-* mailing list). >>> And yes, that they modify the package environment >>> as.environment("package:utils") >>> but leave the >>> namespace asNamespace("utils") >>> unchanged, makes it harder to see what's >>> going on (but also has less severe consequences; if they kept to >>> the otherwise universal *rule* that the namespace and package must have the same objects >>> apart from those only in the namespace, >>> people would not even have access to R's true install.packages() >>> but only see the RStudio fake^Hsubstitute.. >>> We are still not happy with their decision. Also >>> help(install.packages) goes to R's documentation of R's >>> install.packages, so there's even more misleading of useRs. >>> Martin >>> >> >> ______________________________________________ >> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see >> https://stat.ethz.ch/mailman/listinfo/r-help >> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html >> and provide commented, minimal, self-contained, reproducible code. >