On Monday 06 January 2014 02:17:12 Adder wrote:
Dear Boost Developers,
I realize that I cannot ask you to support old compilers, but I would like to kindly ask you not to intentionally rule them out and to retain existing work-arounds for older compilers, if not otherwise than by separate folders and files containing "last version known to work".
I think that newer versions of the libraries should *improve* support for all compilers instead of dumping a lot of work that has been put, by the original developers and by others, into getting them to work.
And many of them *do* work, because for example even if they do not support Template Partial Specialization in *all* cases, they do support it in enough cases. And who supports, even that, in *all* cases ?
All these workarounds clutter the code and preclude further development of the libraries. And since old compilers (the ones that were proposed for dropping) are not tested, you cannot call them supported anyway. Some developers may want to keep the compatibility and cope with inconveniences and may even find ways to test on the old compilers. But in general I don't think it is good for Boost to be pulled back by decade-old compilers. The Standard is out for 15 years and if some compiler failed to implement crucial parts of it, such as PTS, then this compiler is not worth supporting.
At some time I had Boost.Thread working just fine with Borland, and the changes were two or three lines, but there was no answer from the developer to incorporate them for weeks... I gave up.
Some seem to recommend dropping support for Borland C++ Builder (version 5, but as I am going to show you really soon, there is no much difference between version 5.5 aka 2000 and version XE5 aka 2013). But on older hardware (some of us do not have a job and cannot afford i7's), Borland (any version since 2000) is 2-or-3-or-4 times faster than Visual C++ (any version since 2003).
From my memory, Borland was one of the worst compilers I had worked with, at least the free version available for download, not sure which version it was (I think it was 5.something). It always surprised me why people would pay for it when there are many better alternatives.
There are GCC and MSVS Express for Windows, which are free and implement the Standard sufficiently well. And let me say that Windows also costs money, so you could save it by using Linux, which is free and runs virtually on any hardware. Most distributions have recent GCC and clang. Intel compiler is available for free for non-commercial use. I'm not sure what you refer to as "2-or-3-or-4 times faster than Visual C++" but if you're not satisfied with compile times then I suggest you play with compiler options. At least with GCC, reducing optimization level makes it compile considerably faster. Staying on an older Boost version is another option. And believe me, if you're highly concerned with compile times you may want to do that anyway since in some cases compile times get longer with the more recent releases.
Maybe it is not the compilers failing Boost. Maybe it is Boost failing the compilers.
As I said, the Standard was released 15 years ago. The compilers that are not able to implement it by this time are the failure.