Compilers / C++11 only or C++11 and C++14?

Hi!

Maybe this has been discussed on a meeting without me, so forgive me if this is a repeat. Are we going to commit to use whatever g++ 4.9.3 from RTools provides (full C++11 and some C++14) or are we going to restrict ourselves to C++11?

I am raising this as many clusters nowadays run RHEL7 which brings gcc 4.8.x (x>= 1) with them. That gcc fully supports C++11, but not as much from C++14 as the 4.9.3.

Now there are developer packages available for RHEL which provide even a gcc 6; so it’s manageable, but all cluster admins life would be simpler if thing run with 4.8. Just a point to consider.

Sebastian

The current plan after our two-day C++11/14 pow-wow was to use everything supported by g++ 4.9.4 (required for R) and MSVC 15 (required for Python).

But we should rethink that if we’re going to rule out people running on clusters. There’s not much beyond C++11 that we thought we’d use. Would you mind putting this on our meeting agenda?

Moving to C++11 is sure to leave some people behind and we don’t really have the resources to continue parallel development. I also don’t want to version fork like Python.

1 Like

Hi!

Now I found it:

So the decision so far is to go with g++ 4.9.3 from Rtools. I am happy to put this on the open discussion points as I am not sure if RHEL was being considered.

Sebastian

No, RHEL wasn’t being considered. I honestly didn’t even know RH was still around. I only ever seem to hear about Debian and Ubuntu.

RHEL is used quite a lot in the industry due to the commercial service one can buy and the long support of versions - at least this is my impression. I remember Ben saying that RHEL6 is on a Columbia cluster. Other than that, the Amazon AWS offers it, Oracle Linux is based on it and many others (CentOS, SAP certifies HANA for it).

RHEL7 is the very latest edition (and yes, we use it here as well).

Sebastian

The cluster I’ve got access to has gcc 4.4.6 by default. I’m not sure it’s wise to try to support folks like me haha. Building a custom gcc isn’t the worst thing if you’re already having to deal with cluster shenanigans.