[R-SIG-Mac] Robust compiler toolchain for R-devel

Balamuta, James Joseph b@|@mut2 @end|ng |rom ||||no|@@edu
Wed Feb 19 05:21:31 CET 2020


All,

First, macos-rtools isn't an officially sanctioned R project installer. I created it in the Summer of 2017 to quickly get students and collaborators setup with minimal effort under a configuration that mirrored CRAN. This was primarily due to the lack of official installer packages and students not being able to modify the PATH variable correctly. 

Having said this, the setup mirrored is given in section C.3.2. of the R Installation and Administration manual:
https://cran.r-project.org/doc/manuals/r-release/R-admin.html#Recommended-C_002fC_002b_002b-compilers 

I believe you are referring to this section.

From working with the toolchain for a while, the short version of why clang is "recommended" over gcc is because there are two different implementations of the C++ standard library at play: 

- libc++: developed for clang courtesy of Apple and its crusade against GPL
- libstdc++: developed for gcc. 

Both libraries can be dropped in, but sometimes do not produce equivalent results.

So, mixing compilers based off of different versions leads to problems. This is why the compatibility issue exists between CRAN and Homebrew variants of R. e.g. 

CRAN Binary for macOS: clang + libc++
Homebrew variant: gcc + libstdc++

So, for everyday users sake, it's best to not switch out the underlying compiler as it mandates R packages are compiled from source instead of getting a binary from CRAN.

Best,

JJB

On 2/18/20, 4:36 AM, "R-SIG-Mac on behalf of peter dalgaard" <r-sig-mac-bounces using r-project.org on behalf of pdalgd using gmail.com> wrote:

    Simon has recently brought up (on R-core) the related issue of what to use as the target platform for 4.0.0. 
    
    I don't know whether he is ready to take his deliberations to a wider audience at this point.
    
    -pd
    
    > On 18 Feb 2020, at 09:14 , Patrick Schratz <patrick.schratz using gmail.com> wrote:
    > 
    > Hi,
    > 
    > I am experimenting since some days to find the “best” compiler toolchain for R-devel to get R-devel package source installs on the new macOS Github Actions runners work in a somewhat stable way.
    > I am also on macOS locally which I use for testing as well.
    > 
    > I am aware of https://github.com/rmacoslib/r-macos-rtools. However, using clang7 for all (CC, CXX, etc) leads to some packages failing to build (sometimes due to missing OpenMP capabilities, sometimes undefined).
    > 
    > Therefore I decided to try out gcc (v8 and v9). While this solves most of the OpenMP issues, I am running into problems for other packages regarding CC compilation.
    > 
    > Turns out that using any clang version for CC solves most problems but not all.
    > However then I have a mix of gcc and clang which is most likely cause other issues.
    > 
    > Currently Jeroen is developing a new gcc8 based toolchain for Windows.
    > 
    > I was reading the macOS CRAN dev pages but could not find any reasoning why
    > 
    > • clang7 is suggested
    > • gcc is not used
    > • What future plans are there for the toolchain on macOS
    > 
    > Could someone shine some light on this? Thanks :)
    > 
    > Cheers, Patrick
    > 
    > 	[[alternative HTML version deleted]]
    > 
    > _______________________________________________
    > R-SIG-Mac mailing list
    > R-SIG-Mac using r-project.org
    > https://stat.ethz.ch/mailman/listinfo/r-sig-mac
    
    -- 
    Peter Dalgaard, Professor,
    Center for Statistics, Copenhagen Business School
    Solbjerg Plads 3, 2000 Frederiksberg, Denmark
    Phone: (+45)38153501
    Office: A 4.23
    Email: pd.mes using cbs.dk  Priv: PDalgd using gmail.com
    
    _______________________________________________
    R-SIG-Mac mailing list
    R-SIG-Mac using r-project.org
    https://stat.ethz.ch/mailman/listinfo/r-sig-mac
    



More information about the R-SIG-Mac mailing list