[Rcpp-devel] Code review for xtensor R bindings
Dirk Eddelbuettel
edd at debian.org
Wed Jun 7 01:27:21 CEST 2017
On 6 June 2017 at 17:06, Dirk Eddelbuettel wrote:
| The general idea when working with R objects is that
|
| -- on the way in from R to the C++ functions we construct object such that
| the existing memory (from R) is used; one example is how RcppArmadillo
| uses the 'advanced' constructors of Armadillo allowing to operate
| without copies; hence R managed memory is used while C++ functions are
| called; in general this side of the conversion is the templates as<>()
| converters;
|
| -- on the way back we use the *alloc functions from the C-level API of R to
| construct objects that use memory from R's pool, once we return these
| objects to R as SEXP they are indistinguishable to R from its own; these
| are the wrap() functions (and I think we may make on occassion make "one
| final copy" at his level, but I'd have to double-check).
Actually, let me rephrase: "in most cases not involving native R types" do we
make one copy at the return.
The general approach is iterator based, see internal/wrap.h. But there is a
lot of template magic...
Dirk
| I haven't had a chance to look at what Wes is doing with Apache Arrow, and
| what is happening with xtensor -- so thanks for getting the ball rolling.
|
| Dirk
|
| --
| http://dirk.eddelbuettel.com | @eddelbuettel | edd at debian.org
| _______________________________________________
| Rcpp-devel mailing list
| Rcpp-devel at lists.r-forge.r-project.org
| https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel
--
http://dirk.eddelbuettel.com | @eddelbuettel | edd at debian.org
More information about the Rcpp-devel
mailing list