Schedule for bumping to C++14/gcc6 minimum


Larry Gritz
 

Please take note of the following PR: https://github.com/AcademySoftwareFoundation/OpenShadingLanguage/pull/1362

This does not actually change the minimum, but it does change the *default* to C++14 (which, for gcc users, implies a gcc6 minimum), as a way of testing the waters and helping users identify if they are using toolchains that are still relying on C++11. I'm planning to integrate this change by the end of this coming week, if nobody objects.

Just to clarify, this will only be in master (future OSL release). We do not raise minimum dependency of released branches such as the 1.11.x family.

If this goes well, then we are planning to bump to C++14/gcc6 minimum well before the release of 1.12 (or whatever we call it). I'll probably introduce that change by June.

If anybody knows that this will be a big problem for them, please speak up now. I'm assuming that this is in line with everybody's studio needs, as the major DCCs are also on newer toolchains.

Here's the rationale for bumping this dependency:

* LLVM 10 and beyond (the current release is 12) require C++14 to build and use, so users building OSL for C++11 are limited to LLVM 9 and earlier. Supporting too wide a range of C++ standards directly forces us to support a wider range of old LLVM versions than we may otherwise prefer.

* Reduce complexity of having to keep the codebase compatible with too wide a span of standards, compilers, and LLVM versions. This manifests as the clutter of `#if` clauses, as well as an increasing number and runtime of CI test cases of the different compiler and LLVM combinations.

* Allows us to use more modern language features in our codebase. Also, the newer compilers and LLVM version have improvements in optimization and performance, bug fixes, etc.

* VFX Reference Platform has dictated C++14/gcc6 since 2018 (in fact, 2021 says C++17/gcc9), so it seems that we can expect the industry's need for support of 2017 or older VFX Platform standard to be dwindling. Users who need to stay on an older toolchain are more than welcome to continue using OSL 1.11 even after we make the switch for future versions.

--
Larry Gritz
lg@larrygritz.com