>From reading the discussion on the Bioconductor issue tracker it seems like the reason the GC is not suspended for the non-string ALTREP Elt methods is primarily due to performance concerns.
If this is the case perhaps an additional flag could be added to the `R_set_altrep_*()` functions so ALTREP authors could indicate if GC should be halted when that particular method is called for that particular ALTREP class. This would avoid the performance hit (other than a boolean check) for the standard case when no allocations are expected, but allow authors to indicate that R should pause GC if needed for methods in their class. On Fri, May 28, 2021 at 9:42 AM <luke-tier...@uiowa.edu> wrote: > 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 > [[alternative HTML version deleted]] ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel