[Rcpp-devel] macros RCPP_FUNCTION_...,

Dirk Eddelbuettel edd at debian.org
Tue Jun 18 19:50:33 CEST 2013

On 18 June 2013 at 16:26, Romain Francois wrote:
| Hello,
| Who is using the macros RCPP_FUNCTION_0, ..., RCPP_FUNCTION_65, ...
| (i.e. all the macros that live in the preprocessor_generated.h file).
| Their functionality is superseded by a much better way of doing it 
| (modules).
| I'd like to drop them at some point.
| Obviously it is not happening overnight, because for starters our own 
| RProtoBuf uses them. But I will update RProtoBuf so that it does not.
| There is also uses in the RcppGSL vignette which I will update.
| The file spans >6000 lines of generated code that we could do without. 
| To put this into context, this represents about 10% of the lines of the 
| .h files in Rcpp.
| I don't think many people are using it, and I don't blame them. This was 
| an interesting idea when we introduced it, but we have something better now.

Hm, I think my preference would be for a rather long period of deprecation --
at least a year if not more -- before declaring it defunct.

Even then, maybe we should consider to not remove them as we have a good
tradition of maintaining public APIs going forward. So my suggestion would be
to deactivate them behind an #if with a new configuration #define in

APIs are contracts we have with users.  I would prefer to see strong reasons
for chance, rather than a style preference.  

Now, 10% of code is of course a pretty good reason, but is it really making
that much of a difference?  The Rcpp package is large, and will remain large
either way.  An added #define should make compilaton faster which is good.

Other views?


Dirk Eddelbuettel | edd at debian.org | http://dirk.eddelbuettel.com

More information about the Rcpp-devel mailing list