Re: [Rd] New package test results available

From: Thomas Petzoldt <Thomas.Petzoldt_at_TU-Dresden.de>
Date: Wed, 11 Feb 2009 07:50:35 +0100

Thomas Petzoldt wrote:

> Prof Brian Ripley schrieb:

>> We've added a column at
>>
>> http://cran.r-project.org/web/checks/check_summary.html
>>
>> of test results using the Sun Studio compiler: it is intended that
>> these will be updated weekly.
>>
>> The Sun Studio compiler is that used on Solaris: these runs were on
>> the Linux version. All the other platforms are using gcc 4, so this
>> provides an opportunity for checking for use of gcc-specific features
>> and also standards conformance (the Sun compilers have a long-time
>> reputation for close conformance to the language standards).
>>
>> There are known problems where packages use C++ or JNI interfaces
>> (e.g. rgdal and EBImage) as the libraries and JVM were compiled under
>> gcc's conventions (even though a Sun JVMi is used). About half the
>> packages using rJava segfault, which seems to a JNI issue.
>>
>> Some packages use gcc-specific compiler flags:
>>
>> LogConcDEAD Matching amap geometry memisc taskPR
>>
>> but the vast majority of the errors reported are C++ errors. One
>> class that may not be immediately obvious is the use of C headers in
>> C++: you are supposed to write e.g.
>>
>> #includd <cmath>
>>
>> NOT
>>
>> #include <math.h>
>>
>> Symptoms of this can be seen for packages
>>
>> BayesTree EMCC MCMCfglmm MarkedPointProcess Matching Matrix
>> RQuantlib RandomFields Rcpp SoPhy compHclust dpmix igraph minet
>> mixer modeest monomvm multic pcaPP rgenoud robfilter segclust
>> simecol subselect
>>
>>
> 
> The reason can also be including <R.h> (as done in simecol) that 
> includes <math.h>
> 
> Do I understand it correctly that this means that including <R.h> is 
> wrong in C++?
> I read "Writing R extensions" several times, but was not aware that this 
> was a mistake. If I replace <R.h> by <cmath> then it works on my 
> systems, but I want to be certain that there are no other side effects.
> 
> Thanks in advance for clarification!
> 
> Thomas Petzoldt
> 
> 

I changed it as requested, and include

#include <cmath>
#include <Rinternals.h>

... but still get the same error:

"simecol.cpp", line 224: Error: Overloading ambiguity between "floor(double)" and "std::floor(float)". 1 Error(s) detected.

http://www.r-project.org/nosvn/R.check/r-devel-linux-x86_64-sun/simecol-00install.html

What's wrong here? My code is very short and extremely simple, without any new objects (yet), but fact only "plain C with some C++" extension.

What I'm making wrong? Would it be necessary that we all have a Linux installation with Sun Studio at hand?

Thanks a lot

Thomas P.

-- 
Thomas Petzoldt
Technische Universitaet Dresden
Institut fuer Hydrobiologie        thomas.petzoldt_at_tu-dresden.de
01062 Dresden                      http://tu-dresden.de/hydrobiologie/
GERMANY

______________________________________________
R-devel_at_r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel
Received on Wed 11 Feb 2009 - 05:53:05 GMT

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.2.0, at Wed 11 Feb 2009 - 14:30:22 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-devel. Please read the posting guide before posting to the list.

list of date sections of archive