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.
+1
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.