[R] Building Packages.

Duncan Murdoch murdoch@dunc@n @end|ng |rom gm@||@com
Thu Mar 21 16:51:41 CET 2024


I posted a description of their changes this morning.

Duncan Murdoch

On 21/03/2024 11:37 a.m., avi.e.gross using 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 using r-project.org> On Behalf Of Duncan Murdoch
> Sent: Thursday, March 21, 2024 5:53 AM
> To: peter dalgaard <pdalgd using gmail.com>
> Cc: Jorgen Harmse <JHarmse using roku.com>; r-help using r-project.org; Martin Maechler
> <maechler using 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 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.
>>
> 
> ______________________________________________
> 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.
> 
> ______________________________________________
> 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.



More information about the R-help mailing list