[Rcpp-devel] Fwd: CRAN packages with C++ compilation errors on OS X 10.9

Romain Francois romain at r-enthusiasts.com
Thu Oct 31 17:15:19 CET 2013


Le 31/10/2013 15:59, baptiste auguie a écrit :
> Dear Rcpp gurus,
>
> Today a CRAN maintainer informed us of the failure of a few Rcpp-related
> packages to build under the new version of the Mac operating system, OS
> X 10.9 aka Mavericks.
> I do have access to a Mac, but I'm reluctant (in fact, unable) to update
> to Mavericks, therefore I'm in the dark when it comes to fixing /testing
> for the errors reported in the log file. On a positive note, it appears
> at first sight that most of the errors are relatively benign, and
> similar-looking issues are reported for all the packages involved. That
> gives me hope that once the underlying issue is well identified, most
> packages can be fixed with minimal changes.
>
> Here's the info we were given from CRAN,
>
> "OS X 10.9 (aka Mavericks) has a new C++ compiler, clang++ with libcxx
> headers/runtime.  Your package fails to compile with that compiler: see
> the appropriate log at http://www.stats.ox.ac.uk/pub/__bdr/Mavericks/
> <http://www.stats.ox.ac.uk/pub/bdr/Mavericks/> ."
>
> My two packages are cda and planar. The error seems to occur in the
> Modules definition, e.g. from this line in my code
>
> https://github.com/baptiste/planar/blob/master/src/multilayer.cpp#L231
>
> where "function" is judged ambiguous, as far as I understand. This
> "function" is presumably something from
> Rcpp/include/Rcpp/module/Module_generated_function.h but I am not
> familiar with that code.
>
> Any ideas, hints?
>
> Best regards,
>
> baptiste

I sent you a pull request on github.

.function abuses the compiler recognition, it is just unfortunate that 
something else is called function, which is what confused it.

Not sure there could be defenses against it.

In the meantime, you should be fine by just using Rcpp::function


Also, for such trivial uses of modules (i.e. no classes), maybe it is 
worth considering using // [[Rcpp::export]] and code generation given by 
compileAttributes instead of modules.

Romain

-- 
Romain Francois
Professional R Enthusiast
+33(0) 6 28 91 30 30



More information about the Rcpp-devel mailing list