integer and real Elt methods are not expected to allocate. You would have to suspend GC to be able to do that. This currently can't be done from package code.
Best, luke On Fri, 28 May 2021, Gábor Csárdi wrote:
I have found some weird SEXP corruption behavior with ALTREP, which could be a bug. (Or I could be doing something wrong.) I have an integer ALTREP vector that calls back to R from the Elt method. When this vector is indexed in a lapply(), its first element gets corrupted. Sometimes it's just a type change to logical, but sometimes the corruption causes a crash. I saw this on macOS from R 3.5.3 to 4.2.0. I created a small package that demonstrates this: https://github.com/gaborcsardi/redfish The R callback in this package calls `loadNamespace("Matrix")`, but the same crash happens for other packages as well, and sometimes it also happens if I don't load any packages at all. (But that example was much more complicated, so I went with the package loading.) It is somewhat random, and sometimes turning off the JIT avoids the crash, but not always. Hopefully I am just doing something wrong in the ALTREP code (see https://github.com/gaborcsardi/redfish/blob/main/src/test.c), and it is not actually a bug. Thanks, Gabor ______________________________________________ R-devel@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-tier...@uiowa.edu Iowa City, IA 52242 WWW: http://www.stat.uiowa.edu ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel