On Feb 29, 2016 00:45, "Edward Diener"
On 2/28/2016 6:17 PM, Bruno Dutra wrote:
Dear Community,
[snip]
My proposal is to make Metal officially into a new revision of
API, essentially MPL2 as the original proposal by Robert Ramey put it, merging both into one single TMP library. The idea would be to provide a thin proxy for the current Boost.MPL API which would have two backends configurable by preprocessor switches: the original implementation and a another one based on Metal. This way older code using Boost.MPL could see immediate gains on performance by selecting the newer backend on supported compilers, while at the same time legacy code maintained on older compilers could still rely on Boost.MPL's impressive ability to run virtually anywhere. On the other hand, newer projects interested on pure type computations would have the newer API entirely available to them.
This proposal also overcomes the problem of dealing with the maintainability of Boost.MPL, since it provides a way for smooth
from legacy hacks required by ancient compilers into a cleaner and easier to maintain C++11 codebase, besides avoiding any breaking changes within existing code in the process. Furthermore, should this proposal make it into Boost, I would be naturally willing to take responsibility for the maintenance of Boost.MPL, which AFAIK has been maintained by the CMT for quite some time now, often with limited resources.
I would very much welcome your proposal, especially if you take on the
I would suggest in the beginning that the current Boost.MPL be the default and the Metal changes you make to it be controlled by a particular
Boost.MPL's transition maintenance of Boost.MPL for which I believe you are easily qualified to do. I appreciate it. preprocessor switch and, of course, the need to compile using C++11 on up. Eventually you can make Metal the default whenever C++11 on up is used, and the current Boost.MPL the default whenever C++11 on up is not being used or a particular preprocessor switch is specified. Yes, that's precisely what I propose. Regards, Bruno