[Rcpp-devel] Fwd: Re: Making objects in the C++ "side" persistent

Martin Jakt mjakt at z2.keio.jp
Tue Jun 17 09:36:54 CEST 2014


Hi Dirk,

> Actually opening, reading, writing, closing, ... a file on the serialized
> data should now be possible with standard library facilities.  The
> combination is what I suggested, and it should allow us to duplicate what
> saveRDS / readRDS do.
> 
> Ok?

At the moment I'm not so worried about saving / recreating the object; but I 
don't want to crash a user's R-session. These particular objects are fairly 
trivial to recreate and I used RcppModule mainly because I was familiar with 
it from a different package I wrote that does need to keep pointers to external 
objects. I also really like the semantics that RcppModule provides.

But the readRDS/saveRDS sounds useful for the future.
 
> | What I'd like is simply to have the object$function() first check the
> | value of .xData$pointer, to make sure it is not null before proceeding.
> | But can't really get any further without understanding what Rcpp Module
> | is doing.
> Like many of the internals, it is mostly undocumented.  Romain wrote most of
> it, but later decided to walk away from it.

hmm, I think I'm going to need to spend some time studying the R internals and 
probably template meta programming as well. In the meanwhile I will probably 
rewrite my package by wrapping .Call() directly. It's not too onerous as there 
are not so many functions to wrap.

one last question:

Is there a way to test if an external pointer is null (or rather <nil>). 
is.null() always gives me FALSE, and I can't find anything else.

thanks,

Martin

-- 
Martin Jakt
Department of Systems Medicine
Mitsunada Sakaguchi Laboratory
Keio University School of Medicine


More information about the Rcpp-devel mailing list