Boost logo

Boost :

Subject: Re: [boost] [mpl] Merging 'develop' to 'master'
From: Daniel James (dnljms_at_[hidden])
Date: 2014-03-20 06:00:24


On 19 March 2014 22:55, Edward Diener <eldiener_at_[hidden]> wrote:

> I would like to merge the mpl 'develop' changes to mpl 'master'. The
> develop changes have cycled long enough IMO for the merge to take place,
> without any problems showing up in the changes. There are two changes of my
> own and a number of Stephen Kelly eliminating support for very old compiler
> versions. The changes will clean up many obsolete workarounds for older
> versions of compilers that no one doing template metaprogramming should
> seriously use anymore. My own two changes fix some minor problems I ran
> into when testing clang with VC++ RTL on Windows. The changes make the MPL
> easier to understand. If there are no objections to the merge I will be
> glad to carefully do it myself, or Dave Abrahams/Alex Gurtovoy or others
> who have write access to MPL can do it. But I think it is important to get
> these changes into 'master', and tested in the 'master' regression tests,
> before the next Boost release.
>

I'm in the middle of cleaning up MPL's history, so please don't anything at
the moment. You can see what I'm doing at:

https://github.com/boostorg/mpl/pull/2
https://github.com/boostorg/mpl/pull/3

But also I object because I don't think that we can safely make significant
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. Especially
since there are a lot of outstanding changes in those dependants' develop
branches. On top of that mpl is complicated and weird, so it's hard to
review any major changes. And there are people who rely on MPL on compilers
that we don't test.

I also don't see much gain from making the code simpler when no one is
implementing anything new. The gains have to be significant to justify the
risk.

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
it.


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