[Rcpp-devel] Distribution of Rcpp codebase

Romain François romain at r-enthusiasts.com
Mon Apr 7 10:12:45 CEST 2014


Hello, 

Just wanted to start a conversation about distribution of Rcpp. For a long time, distributing Rcpp has meant distributing a package (Rcpp) that contains the Rcpp library. 

These days, we are able to make the codebase completely header only. For example, the Rcpp11 package that I’m about to release in a few days is essentially just a host for header files. 

With this, and the numerous discussions about compatibility, etc ... I’m starting to wonder if an R package is the right host for the Rcpp library. 

One alternative could be for package developers to copy the headers into their package. I am well aware that this has downsides: it would require package developers to update the copy again if they want a newer Rcpp library. Perhaps tools in github or whatever can facilitate that. 

It would also mean many copies of the same code base. To which I’m thinking: so what. 

However, in terms of wins:
- package developers would know for sure which version of the codebase is used with their package. Once they have done testing, they don’t have to be hostage of api breakage and things like « please recompile your package, etc … » 
- developers of Rcpp* are less trapped by the compatibility issues, hands are set free to innovate. 

The next thing to consider is that Rcpp is not just Rcpp, there are really nice extensions like RcppArmadillo, etc ... perhaps we could setup some tools (e.g. RcppJam) to combine several header only libraries into the end package, instead of what we do now, which is have some headers in Rcpp, some in RcppArmadillo, some in RcppGSL, … with every risk of one being outdated or out of sync with the other. 

Anyway, I just wanted to start a discussion. 

Romain


More information about the Rcpp-devel mailing list