[Rd] Using Rtools with gcc 4.8.3

Romain François romain at r-enthusiasts.com
Sun Oct 5 14:09:30 CEST 2014


Le 5 oct. 2014 à 13:56, Romain François <romain at r-enthusiasts.com> a écrit :

> 
> Le 5 oct. 2014 à 13:14, Gabor Grothendieck <ggrothendieck at gmail.com> a écrit :
> 
>> On Sun, Oct 5, 2014 at 6:51 AM, Uwe Ligges
>> <ligges at statistik.tu-dortmund.de> wrote:
>>> 
>>> 
>>> On 05.10.2014 12:20, Jeroen Ooms wrote:
>>>> 
>>>> I started working on some R bindings for mongo-c-driver [1]. The C
>>>> library compiles fine on Ubuntu Trusty (gcc 4.8.2) and osx (clang),
>>>> however on my windows machine (gcc 4.6.3 from Rtools 3.1) it fails
>>>> with:  'INIT_ONCE_STATIC_INIT' undeclared. Google suggests that this
>>>> might be a problem in older versions of mingw-w64. So I grabbed a copy
>>>> of mingw-w64 version 4.8.3 and indeed, here the library compiles
>>>> without errors.
>>>> 
>>>> Now I am unsure how to make mingw 4.8.3 work with Rtools. I extracted
>>>> the contents of [2] into "C:\RBuildTools\3.1\gcc-4.8.3\" and my
>>>> package Makevars contains
>>>> 
>>>>  CC = "c:/RBuildTools/3.1/gcc-4.8.3/bin/gcc"
>>>> 
>>>> However it seems like R still uses the old gcc 4.6.3 for R CMD
>>>> INSTALL. What am I doing wrong? Is there a recommended setup for
>>>> building packages on Windows using a Rtools but with another compiler?
>>>> 
>>>> In addition: will I be able to publish this package to CRAN, or do I
>>>> have to wait for Rtools to get updated with a more recent gcc?
>>> 
>>> 
>>> Currently only 4.6.3 is supported and that is the one used to build binary
>>> packages on CRAN. Hence you need to wait until it is updated.
>>> 
>>> Best,
>>> Uwe Ligges
>>> 
>>> 
>>>> 
>>>> [1] https://github.com/mongodb/mongo-c-driver
>>>> [2]
>>>> http://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win32/Personal%20Builds/mingw-builds/4.8.3/threads-posix/dwarf/
>>>> 
>> 
>> Are there any plans for this?  gcc is already up to 4.9.1 and I am
>> sure a lot of people would like to see the latest version available as
>> part of Rtools.
> 
> +1. Please. I’d like a newer gcc as part of Rtools too. My reason for it is that it would bring actual C++11, rather than unfinished C++0x as gcc 4.6.3 currently ships. That would allow more adoption of the newer C++ standard for packages [*]. 
> 
> Furthermore, a current version of gcc will also give a good support for C++14, the current C++ standard. 
> 
> I said it in the past, I don’t have the skills to make this happen myself but I would consider funding someone’s time (within reason) and offer mine for testing it. 
> 
> Romain
> 
> *: currently Rcpp11, the best way to connect R and C++11, has to compromise on what C++11 means so that it works on windows. This is bad. The compromise is minimal, but still. 

Those missing features in C++0x from 4.6.3 include: 
 - delegate constructors
 - template aliases (a more powerful `using` keyword

We’ve worked around that, but at the expense of some code clarity, safety and boilerplateness (esp. the delegate constructor feature). 



More information about the R-devel mailing list