Subject: Re: [boost] [mpl] Merging 'develop' to 'master'
From: Edward Diener (eldiener_at_[hidden])
Date: 2014-03-20 22:45:11
On 3/20/2014 6:39 PM, Daniel James wrote:
> On 20 March 2014 11:53, Edward Diener <eldiener_at_[hidden]> wrote:
>> On 3/20/2014 6:00 AM, Daniel James wrote:
>>> But also I object because I don't think that we can safely make
>>> changes to MPL. I recently discovered that a change to type traits had
>>> broken several libraries, and no one noticed; changes to MPL have similar
>>> problems. Our test results are a mess, and no one is monitoring a lot of
>>> them, so updating libraries with lots of dependants is tricky.
>> In this case we can't put out a Boost release if no one is monitoring test
>> results for their library.
> The problem is that many libraries don't have a maintainer. I suspect most
> maintainers only check the test results periodically, possibly only when
> they're making changes themselves.
This is a separate issue that impacts Boost putting out a release. I
think some system by which a library maintainer(s) indicate that he has
checked the regression tests at xxx date would be really helpful, else
the burden to make sure changes are still passing regression testing
will not be met. Furthermore every library needs a maintainer of some
sort, whether individually or by committee.
> I have been monitoring test results for MPL on 'develop' and none of the
>> changes is causing any problems with the MPL tests.
> I'm sure you're doing everything you can, but what I'm worried about is
> problems that won't show up in the MPL tests. The overall tests results are
> such a mess, that it's infeasible to get any idea about boost as a whole
> from them, and new failures are easily missed.
I hear this, but until the test results are cleared up Boost should not
put out a new release anyway. Problems could be from the MPL changes on
develop, but that needs to be proved.
> Right now, I think the best approach to MPL is to only allow bug fixes.
>> People doing metaprogramming are moving on to using C++11 features, which
>> MPL doesn't serve particularly well, so I think we should be in the process
>> of managing its decline, and be more concerned with old code that relies on
I will have to disagree based on my intuition that replacing MPL with
something closer to C++11/C++14 constructs is going to be a major
undertaking which will not occur in the near future. Furthermore even
if/when it occurs numerous Boost libraries would have to transition to
the replacement. I do not think we can afford to hold back any needed
changes to MPL based on a conservative approach. And removing even the
brilliant "hacks" of MPL based on the deficiencies of old, hardly used
anymore compilers, will greatly enable whatever changes we might need to
make, even if the changes are just mostly cosmetic improvements.
Admittedly this is based on my thought that their is no reason, given
free gcc, clang, and VC++ express versions, and the current
state-of-the-art in C++ compilers in general, that a C++ programmer
needs to use obsolete C++ compilers anymore for serious programmer
> The changes made by Stephen Kelly got rid of support for VC6, VC7 ( VS2002
>> ) and old versions of gcc ( prior to gcc-4 I believe ).
> They remove support for some other compilers as well. We had an email from
> someone who still uses Metrowerks which might have problems with the
> partial template specialization changes.
Should MPL seriously expect to be used by a compiler which still cannot
implement partial template specialization correctly ? I do not believe
so even if some clever MPL "hacks" currently may allow it.
No one even tests Metrowerks AFAIK. Can we really support any compiler
which no one tests when that compiler has become so out of date with
current C++ ?
> I do want to update MPL at least with my fixes, so please tell me when you
>> are finished cleaning up MPL's history.
> You're watching the repo on github, so hopefully you should be notified
> when I merge the pull requests. I'll probably merge them tonight anyway,
> I'm just going to double check first. They should be okay, since they've
> all been in either the develop or master for some time.
> I think the best thing to do for MPL is to revert Stephen Kelly's changes,
> and put them on a branch so that they can be reconsidered later. I'm not
> saying they're bad - at the very least, removing support for old versions
> of Visual C++ is a good idea. But I think we need to sort out the
> libraries' dependants first. I'm going to try to start on some of these
> soon, but it'll take a while.
I pushed a remote/SKChanges branch based on the point of Stephen Kelly's
last changes to develop. His changes can currently be reverted on
'develop' without conflicts but I am still loath to do this myself. I
would still like to see if his changes on 'develop' are actually causing
any problems with other libraries in the 'develop' regression testing.
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk