I posted a description of their changes this morning.
Duncan Murdoch
On 21/03/2024 11:37 a.m., avi.e.gross at gmail.com
wrote:> With all this discussion, I shudder to ask this. I may have missed the
> answers but the discussion seems to have been about identifying and solving
> the problem rapidly rather than what maybe is best going forward if all
> parties agree.
>
> What was the motivation for what RSTUDIO did for their version and the
> decision to replace what came with utils unless someone very explicitly
> over-rode them by asking for the original? Is their version better in other
> ways? Is there a possibility the two implementations may someday merge into
> something that meets several sets of needs or are they incompatible?
>
> Is there agreement that what broke with the substitution is a valid use or
> is it something that just happens to work on the utils version if not
> patched?
>
>
>
> -----Original Message-----
> From: R-help <r-help-bounces at r-project.org> On Behalf Of Duncan
Murdoch
> Sent: Thursday, March 21, 2024 5:53 AM
> To: peter dalgaard <pdalgd at gmail.com>
> Cc: Jorgen Harmse <JHarmse at roku.com>; r-help at r-project.org;
Martin Maechler
> <maechler at stat.math.ethz.ch>
> Subject: Re: [R] Building Packages.
>
> 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.
>>
>
> ______________________________________________
> 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.
>
> ______________________________________________
> 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.