On 9.8.2018 20:58, Dirk Eddelbuettel wrote:
On 9 August 2018 at 20:37, Tomas Kalibera wrote:
| So to answer your original question, this could probably be handled in
| Rcpp,
Hm. Why do you say that / what did you have in mind?
Recall that we do not alter SEXPs or introduce additional additional
reference counters -- because we do not think that altering the basic R API
for such calls would be a wise strategy. So we do more or less what is done
in C for R, with some additional hand-holding which circumvents a number of
common errors.
Well if you wanted to support unloading - and I am not at all asking for
that - you could keep R objects (weak references, external pointers)
with C finalizers in some list and then unconditionally run or clear the
finalizers in your R_unload, something like Luke does in his example
package.
https://github.com/ltierney/Rpkg-simplemmap/blob/master/src/simplemmap.c
Best
Tomas
| but in either case I would not use dyn.unload() in the first
| place. This problem may be just one of many.
I think I'd second that. I never had much unloading packages or dynamic
libraries and tend to "just say no". Both short-lived processes (ie via 'r')
as well as long sessions (ie R via ESS, running for weeks) work for my
workflows.
Dirk
______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel