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 >