
On 7/15/2011 5:36 PM, Lars Viklund wrote:
On Sat, Jul 16, 2011 at 01:00:37AM +0400, Antony Polukhin wrote:
Are really old and broken compilers still supported? Do we need them?
For example VC++6. It gives thousands of warnings on type_traits and boost PP headers. Tests for VC++6 do not compile. Nobody tested boost libraries on that compiler for years.
May be we shall get rid of compilers, that do not support template partitial specialization, ADL or SFINAE? If not, shall we try to make the tests pass (or at least compile) for them?
These kinds of threads pop up every now and then. The last time I believe the violent consensus was that it was a bit counter-productive to touch code uncessarily, especially such code that isn't clearly delimited by feature test or workaround macros.
snipped...
The world needs more compilers, and it saddens me when new libraries are developed and deployed claiming to be portable but only really builds on recent GCC and maybe MSVC.
The problem I have found is that it is difficult to test on many other compilers because they are not popular enough, C++ standard enough, or they are not free to use. While I certainly do not think there is anything wrong with charging for software, C++ compiler creators might realize that Boost developers are doing them a service testing their compilers and they should have some deal by which one is not charged for using their compiler in such a scenario. For TTI I wanted to test Intel C++ but it is not free even though there is a 30-day trial period. Some other compilers are free but deficient in areas where finding a workaround becomes onerous. Some compilers do not really work well, or if at all, on some OSs. So what happens is that many developers may want to test on compilers other than gcc and MSVC ( on Windows ), but find it easiest to test on those compilers simply because there is not much else around that can be used to test one's C++ code fairly easily. I certainly feel that it is the Boost library developer's prerogative whether to try to support some older compiler. I would not even think of testing with VC6, and even VC7 or VC7.1 has enough quirks and headaches so that I now avoid them. With gcc anything below 3.4.2 is more trouble than its worth and I am sure that plenty of developers are targeting only gcc 4+ and up. I agree it is great to have as many compilers as possible, and I applaud efforts like clang. But when compilers cause more headaches than one's own code/design it is just easier seeking correct code and forgot about compilers which can not handle the C++ standard ( 1998/2003 at the least ) fairly readily.