Hi all,

One of my packages is failing on CRAN in R-devel [1], and I was requested
to fix it. However, it is *only* failing on one specific configuration,
'r-devel-linux-x86_64-debian-gcc'. All other combinations — clang on
Debian, both clang and GCC on Fedora, and Windows — keep running just fine.
As my package is not using compiled code or anything OS-specific, I am at a
loss to explain this highly specific failure. Before attempting to build a
container image with this specific configuration locally (… are these
configurations available as ready-made images?), I wanted to check if there
was an obvious change in R-devel which might explain the issue.

There are two failures, both with the same error message: “cannot change
value of locked binding for '*tmp*'”. My package’s code isn’t attempting to
directly change `*tmp*`, but it is using eval() to perform subset
assignment to a complex expression inside an active binding. Here’s a
minimal code snippet that *should* be equivalent to one of the two
failures, and which should therefore also fail (in the last line):

   x = data.frame(a = 1 : 2, b = c('a', 'b'))

   f = function (value) {
     if (missing(value)) {
       evalq(x[1L, ], .GlobalEnv)
     } else {
       assign_expr = substitute(x[1L, ] <- value, list(value = value))
       eval(assign_expr, .GlobalEnv)
     }
   }

   makeActiveBinding('ax', f, .GlobalEnv)

   ax[1L] = 3L

I had a look at the changes in in R-devel, but I couldn’t find anything
obviously relevant. In particular, the code of R_MakeActiveBinding() hasn’t
been touched in literally decades, and similar for the code that (as far as
I understand) performs subset assignment, applydefine().

Does anybody have an idea what might be going on here, or how to debug this
issue?

Cheers,
Konrad

[1] https://cran.r-project.org/web/checks/check_results_aka.html

-- 
Konrad Rudolph

        [[alternative HTML version deleted]]

______________________________________________
[email protected] mailing list
https://stat.ethz.ch/mailman/listinfo/r-package-devel

Reply via email to