[Rcpp-devel] Function does not compile on Mac OSX

Sacha Epskamp sacha.epskamp at gmail.com
Mon May 16 16:13:13 CEST 2011


Hi,

Here is a small example:


library("Rcpp")
library("inline")

fun <-cxxfunction(,
'
Environment e = Environment::global_env();
NumericVector bar = e["foo"];
bar = bar + 1;
return wrap(bar);
',plugin="Rcpp")

foo <- 1:10

fun()

This function works fine on my windows netbook, but does not work on my
supervisors mac. His computers specs are:

++++++++++

platform       i386-apple-darwin9.8.0
arch           i386
os             darwin9.8.0
system         i386, darwin9.8.0
status
major          2
minor          13.0
year           2011
month          04
day            13
svn rev        55427
language       R
version.string R version 2.13.0 (2011-04-13)


++++++++++++++

packageDescription('Rcpp')
Package: Rcpp
Title: Seamless R and C++ Integration
Version: 0.9.4


+++++++++++++++
> packageDescription('Inline')
Package: inline
Version: 0.3.8
Date: 2010-12-07
++++++++++++++++


> system("g++ --version")
i686-apple-darwin10-g++-4.2.1 (GCC) 4.2.1 (Apple Inc. build 5666) (dot 3)
Copyright (C) 2007 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.


Best,
Sacha

2011/5/16 Romain Francois <romain at r-enthusiasts.com>

> Hello,
>
> Let's try to narrow this down.
>
> Please provide a small and reproducible example.
>
> What is the version of the compiler. This is what I have on my iMac:
> $ g++ --version
> i686-apple-darwin10-g++-4.2.1 (GCC) 4.2.1 (Apple Inc. build 5666) (dot 3)
> Copyright (C) 2007 Free Software Foundation, Inc.
> This is free software; see the source for copying conditions.  There is NO
> warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
>
> What version of Rcpp are you using. What version of R.
>
> Romain
>
> Le 16/05/11 12:06, Sacha Epskamp a écrit :
>
>  Dear mailing list,
>>
>> For a project I am working on speeding up a simulation in R by
>> translating it to C++ (using inline and Rcpp). It is done and works fine
>> on my windows 7 64bit R, but for some reason it is not working on my
>> supervisors latest mac OSX (not sure of the version. should be up to
>> date).
>>
>> The strange thing is that it did work at first. It compiled and ran as
>> expected. We then proceeded by changing a few things, resulting in the
>> function not compiling anymore. When we then used exactly the same
>> script as before it suddenly did not work anymore. I get these errors:
>>
>>
>> Error in compileCode(f, code, language = language, verbose = verbose) :
>>   Compilation ERROR, function(s)/method(s) not created!
>> file345af547.cpp: In function ‘SEXPREC* file345af547(SEXPREC*, SEXPREC*,
>> SEXPREC*, SEXPREC*, SEXPREC*, SEXPREC*)’:
>> file345af547.cpp:220: error: ISO C++ says that these are ambiguous, even
>> though the worst conversion for the first is better than the worst
>> conversion for the second:
>>
>> /Library/Frameworks/R.framework/Versions/2.13/Resources/library/Rcpp/include/Rcpp/sugar/operators/minus.h:421:
>> note: candidate 1: Rcpp::sugar::Minus_Vector_Primitive<RTYPE, NA, T>
>> operator-(const Rcpp::VectorBase<RTYPE, NA, VECTOR>&, typename
>> Rcpp::traits::storage_type<RTYPE>::type) [with int RTYPE = 14, bool NA =
>> true, T = Rcpp::Vector<14>]
>> file345af547.cpp:220: note: candidate 2: operator-(SEXPREC*, int)
>> <built-in>
>> file345af547.cpp:646: error: ISO C++ says that these are ambiguous, even
>> though the worst conversion for the first is better than the worst
>> conversion for the second:
>> /Library/Frameworks/R.framework/Versions/2.13/Resources/librar
>> In addition: Warning message:
>> running command '/Library/Frameworks/R.framework/Resources/bin/R CMD
>> SHLIB file345af547.cpp 2> file345af547.cpp.err.txt' had status 1
>>
>> With relevant lines:
>>
>>  220 : Demoplayers = Demoplayers - 1;
>>
>>  646 : leeftijd = leeftijd + 1;
>>
>> Demoplayers and leeftijd are both NumericVectors. Does anyone know if
>> there is a common bug on MacOSX that for some reason makes the inline
>> compiler not work anymore? The cxxfunction example works fine though.
>>
>> Best,
>> Sacha
>>
>
> --
> Romain Francois
> Professional R Enthusiast
> +33(0) 6 28 91 30 30
> http://romainfrancois.blog.free.fr
> http://romain-francois.com
> |- http://bit.ly/hdKhCy : Rcpp article in JSS
> |- http://bit.ly/elZJRJ : Montpellier Comedie Club - Avril 2011
> `- http://bit.ly/fhqbRC : Rcpp workshop in Chicago on April 28th
>
>
> _______________________________________________
> Rcpp-devel mailing list
> Rcpp-devel at lists.r-forge.r-project.org
> https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.r-forge.r-project.org/pipermail/rcpp-devel/attachments/20110516/ac72cd4f/attachment.htm>


More information about the Rcpp-devel mailing list