Just for the sake of completeness, another factor is the python platform tag 
manylinux2010 compliance [1]. Since it required GLIBC2.12 and GCC4.3, 
unfortunately even the existing minimum version standard wouldn't allow us to 
be compliant.

[1] https://www.python.org/dev/peps/pep-0571/

On 2019/08/27 15:17:43, "Sunderland, Kellen" <kell...@amazon.de.INVALID> wrote: 
> We could think about moving to a newer version and updating the standard.  
> I'm using gcc 4.9 with my work builds, but more modern compilers everywhere 
> else (and is be willing to update the work compiler).
> 
> One of the cons is that it makes our code less portable. When we update the 
> minimum required compiler (in Linux) then we use a toolchains with a new libc 
> version, meaning MXNet could not be used on older platforms without using 
> docker or virtualization.  In our case updating to a cpp17 compiler might 
> mean dropping centos5 or Ubuntu 14.04 support.
> 
> If you look at CUDA releases as an example the continually releases binaries 
> compiled against older toolchains to support libc on most platforms.
> 
> What are the features you'd like to see in C++17?  I'd recommend we call out 
> interesting features and then see what compiler support we would need to use 
> the feature.  It could be the case that the feature is supported in a fairly 
> old compiler version.
> 
> If we want to immediately modernize the codebase, I've noticed that their are 
> actually a few C++14/11 features we could be using but aren't.  (Clang-tidy 
> lists a number of them in each build).  We could start with those.
> 
> On Aug 27, 2019 2:53 AM, Leonard Lausen <leon...@lausen.nl> wrote:
> Hi,
> 
> "Currently, we only support gcc-4.8 build." [1]
> 
> Do we ever want to change this? gcc-4.8 is now available since more than
> 6 years and a lot has happened during that time. Also platforms have
> upgraded their default compiler versions, and gcc-7 is now commonly
> available (eg. Ubuntu 18.04 LTS, Amazon Linux 2). With gcc-7 we could
> for example rely on C++17.
> 
> Wikipedia says:
> - GCC since version 7 has complete support for C++17.
> - Clang 5 and later implement all the features of C++17.
> - Visual Studio 2017 15.7 (MSVC 19.14) supports almost all of C++17.
> 
> As Mu mentioned "Conservatism is not an option" if we want to bring
> MXNet forward. The benefits of 6 years of work on compilers as well as
> C++ ISO committee work may help us with that.
> 
> Should we adapt a newer compiler toolchain and perhaps C++17 standard?
> 
> Best regards
> Leonard
> 
> [1]: 
> https://github.com/apache/incubator-mxnet/blob/681cfc4/tools/dependencies/README.md
> 
> 
> On Aug 27, 2019 2:53 AM, Leonard Lausen <leon...@lausen.nl> wrote:
> Hi,
> 
> "Currently, we only support gcc-4.8 build." [1]
> 
> Do we ever want to change this? gcc-4.8 is now available since more than
> 6 years and a lot has happened during that time. Also platforms have
> upgraded their default compiler versions, and gcc-7 is now commonly
> available (eg. Ubuntu 18.04 LTS, Amazon Linux 2). With gcc-7 we could
> for example rely on C++17.
> 
> Wikipedia says:
> - GCC since version 7 has complete support for C++17.
> - Clang 5 and later implement all the features of C++17.
> - Visual Studio 2017 15.7 (MSVC 19.14) supports almost all of C++17.
> 
> As Mu mentioned "Conservatism is not an option" if we want to bring
> MXNet forward. The benefits of 6 years of work on compilers as well as
> C++ ISO committee work may help us with that.
> 
> Should we adapt a newer compiler toolchain and perhaps C++17 standard?
> 
> Best regards
> Leonard
> 
> [1]: 
> https://github.com/apache/incubator-mxnet/blob/681cfc4/tools/dependencies/README.md
> 

Reply via email to