Le 13/10/13 20:47, Dominick Samperi a écrit :
Hello Romain,
I tested Rcpp11 under Mac OS (10.8.5) using Apple's
clang-500.2.75 (Xcode 5), and also under Linux. Here are
some results:
1. The recommended install method
devtools::install_github("romainfrancois/Rcpp11")
did not work. The problem seems to be that it looks at
hadley's github repo instead of yours? The work-around is
simply to download the zip file.
This should work with the devel version of devtools. This is a recent
addition to devtools.
https://twitter.com/hadleywickham/status/387303629952401409
2. Under Mac OS inclusion of internal.h causes compilation to fail
because CALLFUN_1 defines a function with no 'extern "C"'
linkage specification, while RCPP_FUN_1 defines the same
function with this linkage specification.
The error results from
improved compliance with the standards: C++98 and C++11
standards (Section 7.5.1) state that two function types with
with different linkage are different types, yet one cannot
overload the other because you cannot overload on the
"return type" (which arguably includes the linkage).
The work-around is to insert extern "C" in the CALLFUN_xx
macros in internal.h. This is also needed in the declaration of
init_Rcpp11_routines() in internal.h.
I'll go the opposite way actually, and not use c linkage at all, and
perhaps have them in Rcpp's namespace.
Since these are registered, we don't need C linkage.
3. The default file system type under Mac OS uses case-insensitive
file names (like Windows), whereas Linux file systems use
case-sensitive file names. This can cause builds that work
under Mac OS to fail under Linux, and this happens with
Rcpp11: for example, Rcpp/Vector.h includes Rcpp/Na_Proxy.h,
yet the file that exists on disk is Rcpp/NA_Proxy.h.
Thanks. I'll fix that.
Thus periodic testing on systems with file name case-sensitivity
can prevent big porting and refactoring headaches.
Cheers,
Dominick
Comments: Rcpp11 is in heavy development, so I'm not too concerned about
these too much yet.
In any case, for things like that, please use the issue tracker:
https://github.com/romainfrancois/Rcpp11/issues?state=open
--
Romain Francois
Professional R Enthusiast
+33(0) 6 28 91 30 30
_______________________________________________
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