Subject: Re: [boost] [mpl] Abandoning old compilers
From: Edward Diener (eldiener_at_[hidden])
Date: 2015-02-28 18:25:32
On 2/28/2015 1:58 PM, John Maddock wrote:
> On 28/02/2015 18:43, Peter Dimov wrote:
>> Edward Diener wrote:
>>> No. It never was tested. It was reverted before any testing was done
>>> on the 'develop' branch with those changes.
>> I'm not sure that lack of testing on current compilers is the main
>> issue. The main issue is "lack of consensus" for dropping support for
>> old compilers, which aren't tested.
>> I'll say again what I always say when this issue comes up: these
>> compilers are old. They are unlikely to be able to compile new Boost
>> libraries. People who use these compilers can just use older Boost
>> releases (and are probably forced to anyway).
>> We should drop VC++6/7, bcc32, dmc, old sun support from MPL to make
>> it more maintainable - provided that it is going to be maintained at
>> all, or course.
> Requiring a compiler under 10 years old isn't such a stretch, and as you
> say new code is written for new compilers anyway... plus the old code is
> never tested on old compilers so is likely to be broken in strange and
> surprising ways (by dependencies breaking, if not patches to the library
> in question).
> Aside: I believe the original changes were reverted for a number of
> reasons, but a lack of consensus was certainly one ("don't rip apart
> some elses library without due process" etc). They possibly did both
> too little and too much as well - dropping support for old compilers
> without really properly cleaning up and modernising the code (which
> would be a lot of work). Or to put it another way - if you're going to
> change such a core library, then the gains had better be big ones,
> otherwise best leave alone.
I don't believe Stephen Kelly's changes attempted to do anything but
clean out support for compilers which are already largely obsolete. To
me this seemed worthwhile as a starting point to make MPL more
understandable so that when others want to fix bugs in the code, or make
changes or additions which improve things in the library, it becomes
much easier to understand the code without all the old hacks in place.
Also when such support is removed the programmer does not have to worry
about some change fouling up an old, obsolete compiler which does not
handle C++ very well to begin with. To me such a cleanup is worth it
even if there is no big change otherwise being made. I am a proponent of
incremental changes to make sure everything works as one goes along.
Makes testing and where one could go wrong trying to make too big a
change at a time much easier to do.