[Rd] Compiler + stopifnot bug

Tierney, Luke luke-tierney @ending from uiow@@edu
Fri Jan 4 08:09:28 CET 2019


Should be fixed in r75946.

Best,

luke

On Fri, 4 Jan 2019, Tierney, Luke wrote:

> Thanks for the reports. Will look into it soon and report back.
>
> Luke
>
> Sent from my iPhone
>
>> On Jan 3, 2019, at 2:15 PM, Martin Morgan <mtmorgan.bioc using gmail.com> wrote:
>>
>> For what it's worth this also introduced
>>
>>> df = data.frame(v = package_version("1.2"))
>>> rbind(df, df)$v
>>     [[1]]
>>     [1] 1 2
>>
>>     [[2]]
>>     [1] 1 2
>>
>> instead of
>>
>>> rbind(df, df)$v
>>    [1] '1.2' '1.2'
>>
>> which shows up in Travis builds of Bioconductor packages
>>
>>  https://stat.ethz.ch/pipermail/bioc-devel/2019-January/014506.html
>>
>> and elsewhere
>>
>> Martin Morgan
>>
>> On 1/3/19, 7:05 PM, "R-devel on behalf of Duncan Murdoch" <r-devel-bounces using r-project.org on behalf of murdoch.duncan using gmail.com> wrote:
>>
>>>    On 03/01/2019 3:37 p.m., Duncan Murdoch wrote:
>>> I see this too; by bisection, it seems to have first appeared in r72943.
>>
>>    Sorry, that was a typo.  I meant r75943.
>>
>>    Duncan Murdoch
>>
>>>
>>> Duncan Murdoch
>>>
>>>> On 03/01/2019 2:18 p.m., Iñaki Ucar wrote:
>>>> Hi,
>>>>
>>>> I found the following issue in r-devel (2019-01-02 r75945):
>>>>
>>>> `foo<-` <- function(x, value) {
>>>>    bar(x) <- value * x
>>>>    x
>>>> }
>>>>
>>>> `bar<-` <- function(x, value) {
>>>>    stopifnot(all(value / x == 1))
>>>>    x + value
>>>> }
>>>>
>>>> `foo<-` <- compiler::cmpfun(`foo<-`)
>>>> `bar<-` <- compiler::cmpfun(`bar<-`)
>>>>
>>>> x <- c(2, 2)
>>>> foo(x) <- 1
>>>> x # should be c(4, 4)
>>>> #> [1] 3 3
>>>>
>>>> If the functions are not compiled or the stopifnot call is removed,
>>>> the snippet works correctly. So it seems that something is messing
>>>> around with the references to "value" when the call to stopifnot gets
>>>> compiled, and the wrong "value" is modified. Note also that if "x <-
>>>> 2", then the result is correct, 4.
>>>>
>>>> Regards,
>>>>
>>>
>>
>>    ______________________________________________
>>    R-devel using r-project.org mailing list
>>    https://stat.ethz.ch/mailman/listinfo/r-devel
>>
>> ______________________________________________
>> R-devel using r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/r-devel
> ______________________________________________
> R-devel using r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel

-- 
Luke Tierney
Ralph E. Wareham Professor of Mathematical Sciences
University of Iowa                  Phone:             319-335-3386
Department of Statistics and        Fax:               319-335-3017
    Actuarial Science
241 Schaeffer Hall                  email:   luke-tierney using uiowa.edu
Iowa City, IA 52242                 WWW:  http://www.stat.uiowa.edu


More information about the R-devel mailing list