Skip to content

loop compilation problem

3 messages · Lukas Stadler, Luke Tierney

#
Hi!

We?ve seen a problem with the compiler in specific cases of matrix updates:
[,1] [,2]
[1,]    1    3
[2,]    2   99

Here, it modifies element [2,2], which is unexpected.
It behaves correct without the loop:
[,1] [,2]
[1,]    1   99
[2,]    2    4

? and without the jit:
[1] 3
[,1] [,2]
[1,]    1   99
[2,]    2    4

I checked with "R Under development (unstable) (2017-08-23 r73116)?, and the problem is still there.

- Lukas
#
Thanks.

Here is a simplified version:

library(compiler)
zero <- 0
one <- 1
expr <- quote((z <- zero + one) + (z <- z + 1))
eval(compiler::compile(expr))

Sill fix shortly.

Best,

luke
On Thu, 24 Aug 2017, Lukas Stadler wrote:

            

  
    
6 days later
#
What is happening here is that the compiler makes a legitimate
optimization, but that runs into a long-standing issue, not related to
compilation, with certain assignment expressions in arguments. The
general issue will take some time to address; hopefully it will be
resolved in time for the next major release. In the interim, to avoid
the particular discrepancy reported here the compiler has been
adjusted to not optimize assignments within argument expressions.
This adjustment is in R-devel (r73161) and R-patched (r73162).

Best,

luke
On Thu, 24 Aug 2017, luke-tierney at uiowa.edu wrote: