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
_______________________________________________
Rcpp-devel mailing list
Rcpp-devel@lists.r-forge.r-project.org
https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel

Reply via email to