Andrey Semashev wrote:
What kind of changes do you think will be needed and not possible without breaking compatibility?
I don't know enough to answer this question. MPL is somewhat complicated. It's not quite clear, from a brief look, which parts are essential and which parts are workarounds.
I think, at first it will be simply enough to just move the components to the new submodule.
Even that is going to not be as easy as it sounds. Look at boost/mpl/and.hpp, for example. And it's not clear whether, if we move a component into MPL.Core and remove all workarounds, this will not break components in MPL that depend on those workarounds for some reason. In short, it looks like a nontrivial project. Maybe it's easier than it appears. I don't know.
Yes, I probably made that statement overly confident. I'm not the maintainer of MPL nor I have rights to create submodules, so I clearly don't have the upper hand.
MPL doesn't have an official maintainer at the moment, I think. And creating a submodule is the least of our worries. I do have that right. That's not the issue at all. :-)
However, I don't see tag dispatching in Core now and I'm not sure it will appear (and need refactoring such as above) in the near future.
No, there isn't any tag dispatching in Core; the intent was to provide the infrastructure for tag dispatching to libraries that do tag dispatching and wish to avoid the dependency on MPL.