Boost logo

Boost :

Subject: Re: [boost] [Removing support for old compilers]
From: Andrey Semashev (andrey.semashev_at_[hidden])
Date: 2014-01-06 04:05:25


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.


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk