On 10/1/2018 9:58 AM, Ion GaztaƱaga via Boost wrote:
Hi,
My libraries have supported quite old compilers, starting from Visual 2003 and GCC 3.4 and I'm asking for feedback before I start dropping old compilers. The number of supported plus locally+regression tested versions has increased a lot these years and that's a lot of work with reduced benefits.
I run locally for:
- From Mingw GCC 3.4 to GCC 8.1, all released minor versions (combining C++03-C++11-C++14-C++14).
- From MSVC 7.1 to MSVC 14.1, all released versions (default language standard).
I also run boost regression tests for many of those compilers (see "igaztanaga-*" runners in https://www.boost.org/development/tests/master/developer/summary.html).
The number of supported and tested compilers is now unmanageable for me as many of those have specific warnings/bugs that I try to fix. So I was thinking about reducing that list a bit dropping support for the oldest ones and replacing them with recent GCC/Clang from WSL (Windows Subsystem for Linux).
My first idea is to drop anything older than 10 years, which means that the minimum will be MSVC 9.0 and GCC 4.3 (both released in 2008).
I've reviewed some popular long support Linux distributions:
-> RHEL 6 uses GCC 4.4. -> SUSE Linux Enterprise Server 11 Service Pack 4 (SP4) uses GCC 4.3
Microsoft no longer supports Visual 2008 (support ended on April 2018) but I can continue compiling and testing it at least for another year.
Note that my libraries will continue support for -std=C++03, but I will not find workarounds or fixes for old GCC and MSVC versions.
Thoughts, problems, comments?
I do not think supporting gcc versions before 4.8 is really necessary. Gcc has put out various releases of versions 5, 6, 7, and now 8.1 since then and I can hardly imagine anyone sticking to some version below 4.8 with all those releases. The first mingw-64/gcc version supported is 4.8 and that is good enough for me as it seems to work decently. With VC++ anything before vs2008 is unnecessary and even vs2008 itself is problematical, even though PP and VMD still "support" it, but I am glad to hear that supported ended in April of this year. Even VS2010 has some serious problems, so I could see just supporting from VS2012 on up at the very minimum. I would not worry much about dropping these older compilers. Nobody should really be using them anymore in realistic C++ programming environments. You sight RHEL6 but the vast majority of RHEL users are probably on some release of RHEL7 by now, which CentOS7 has long shown me to be very solid. Also SUSE has gone past version 11 a long time ago, with many new releases ( I occasionally run the latest OpenSuse 15 on my desktop ), and is also a very solid Linux distro, so I would be surprised if there are many users of such an old release. I do not think it is Boost's job to support older releases "forever", especially given the many and better newer releases of gcc, VC++, and clang, among others. As far as c++03 is concerned I have stated my opinion that if more modern features of c++11 do not bring any advantage for a library there is not reason to upgrade just for the sake of supporting a higher c++ standard mode as long as higher modes work without problems, but I do not think it is necessary to test at the c++03 level anymore.
Best,
Ion