[R] Building Packages.

peter dalgaard pd@|gd @end|ng |rom gm@||@com
Thu Mar 21 10:48:36 CET 2024


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 using 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 using 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 using cbs.dk  Priv: PDalgd using gmail.com



More information about the R-help mailing list