[mpl] Modularization pull request
Hi, I've created this pull request: https://github.com/boostorg/mpl/pull/11 to separate core components of Boost.MPL to a sub-library. The intent of this pull request is to reduce dependencies added by MPL to its dependent libraries, when only the basic MPL components are required. In particular, it should help resolving circular dependency between MPL and TypeTraits. Please, have a look at the list of moved components and let me know if you have any comments.
On Sunday 31 August 2014 15:17:56 you wrote:
Hi,
I've created this pull request:
https://github.com/boostorg/mpl/pull/11
to separate core components of Boost.MPL to a sub-library. The intent of this pull request is to reduce dependencies added by MPL to its dependent libraries, when only the basic MPL components are required. In particular, it should help resolving circular dependency between MPL and TypeTraits.
Please, have a look at the list of moved components and let me know if you have any comments.
Seems there are no comments or objections, and the Jamroot file is already fixed. Could this pull request be merged?
Le 03/09/14 19:50, Andrey Semashev a écrit :
On Sunday 31 August 2014 15:17:56 you wrote:
Hi,
I've created this pull request:
https://github.com/boostorg/mpl/pull/11
to separate core components of Boost.MPL to a sub-library. The intent of this pull request is to reduce dependencies added by MPL to its dependent libraries, when only the basic MPL components are required. In particular, it should help resolving circular dependency between MPL and TypeTraits.
Please, have a look at the list of moved components and let me know if you have any comments. Seems there are no comments or objections, and the Jamroot file is already fixed. Could this pull request be merged?
Andrey, there are a lot of changes in your PR. Are all really needed? What would be on Boost.MPL? Vicente
On Wednesday 03 September 2014 20:04:08 Vicente J. Botet Escriba wrote:
Le 03/09/14 19:50, Andrey Semashev a écrit :
On Sunday 31 August 2014 15:17:56 you wrote:
Hi,
I've created this pull request:
https://github.com/boostorg/mpl/pull/11
to separate core components of Boost.MPL to a sub-library. The intent of this pull request is to reduce dependencies added by MPL to its dependent libraries, when only the basic MPL components are required. In particular, it should help resolving circular dependency between MPL and TypeTraits.
Please, have a look at the list of moved components and let me know if you have any comments.
Seems there are no comments or objections, and the Jamroot file is already fixed. Could this pull request be merged?
Andrey, there are a lot of changes in your PR. Are all really needed?
Yes. These are mostly files moving around, the code is mostly unchanged.
What would be on Boost.MPL?
I've listed things that were moved to MPL.Core in the PR description, the rest is left in MPL. That is mostly functional stuff, containers, iterators and algorithms.
Le 03/09/14 21:43, Andrey Semashev a écrit :
On Wednesday 03 September 2014 20:04:08 Vicente J. Botet Escriba wrote:
Le 03/09/14 19:50, Andrey Semashev a écrit :
On Sunday 31 August 2014 15:17:56 you wrote:
Hi,
I've created this pull request:
What are the dependencies that this split breaks?
What are the dependencies MPL.Core? Vicente
On Wednesday 03 September 2014 23:39:47 Vicente J. Botet Escriba wrote:
Le 03/09/14 21:43, Andrey Semashev a écrit :
On Wednesday 03 September 2014 20:04:08 Vicente J. Botet Escriba wrote:
Le 03/09/14 19:50, Andrey Semashev a écrit :
On Sunday 31 August 2014 15:17:56 you wrote:
Hi,
I've created this pull request:
What are the dependencies that this split breaks?
What are the dependencies MPL.Core?
MPL.Core headers only depend on Config, Preprocessor and Core. MPL adds TypeTraits, Predef, StaticAssert and Utility.
On Thursday 04 September 2014 06:52:06 you wrote:
On Wednesday 03 September 2014 23:39:47 Vicente J. Botet Escriba wrote:
Le 03/09/14 21:43, Andrey Semashev a écrit :
On Wednesday 03 September 2014 20:04:08 Vicente J. Botet Escriba wrote:
Le 03/09/14 19:50, Andrey Semashev a écrit :
On Sunday 31 August 2014 15:17:56 you wrote:
Hi,
I've created this pull request:
What are the dependencies that this split breaks?
What are the dependencies MPL.Core?
MPL.Core headers only depend on Config, Preprocessor and Core. MPL adds TypeTraits, Predef, StaticAssert and Utility.
Actually, the dependency of MPL.Core on Core is only through the testing code and thus can be removed if I move the code to the tests subdirectory. I can do that tonight. MPL will still depend on Core on its own though.
On Thursday 04 September 2014 07:43:40 you wrote:
On Thursday 04 September 2014 06:52:06 you wrote:
On Wednesday 03 September 2014 23:39:47 Vicente J. Botet Escriba wrote:
Le 03/09/14 21:43, Andrey Semashev a écrit :
On Wednesday 03 September 2014 20:04:08 Vicente J. Botet Escriba wrote:
Le 03/09/14 19:50, Andrey Semashev a écrit :
On Sunday 31 August 2014 15:17:56 you wrote: > Hi, > > I've created this pull request: > > https://github.com/boostorg/mpl/pull/11
What are the dependencies that this split breaks?
What are the dependencies MPL.Core?
MPL.Core headers only depend on Config, Preprocessor and Core. MPL adds TypeTraits, Predef, StaticAssert and Utility.
Actually, the dependency of MPL.Core on Core is only through the testing code and thus can be removed if I move the code to the tests subdirectory. I can do that tonight. MPL will still depend on Core on its own though.
Done.
On Thursday 04 September 2014 23:49:15 you wrote:
On Thursday 04 September 2014 07:43:40 you wrote:
On Thursday 04 September 2014 06:52:06 you wrote:
On Wednesday 03 September 2014 23:39:47 Vicente J. Botet Escriba wrote:
Le 03/09/14 21:43, Andrey Semashev a écrit :
On Wednesday 03 September 2014 20:04:08 Vicente J. Botet Escriba
wrote:
Le 03/09/14 19:50, Andrey Semashev a écrit : > On Sunday 31 August 2014 15:17:56 you wrote: >> Hi, >> >> I've created this pull request: >> >> https://github.com/boostorg/mpl/pull/11
What are the dependencies that this split breaks?
What are the dependencies MPL.Core?
MPL.Core headers only depend on Config, Preprocessor and Core. MPL adds TypeTraits, Predef, StaticAssert and Utility.
Actually, the dependency of MPL.Core on Core is only through the testing code and thus can be removed if I move the code to the tests subdirectory. I can do that tonight. MPL will still depend on Core on its own though.
Done.
So, could someone merge the pull request, please?
On Sep 10, 2014, at 2:12 PM, Andrey Semashev
On Thursday 04 September 2014 23:49:15 you wrote:
On Thursday 04 September 2014 07:43:40 you wrote:
On Thursday 04 September 2014 06:52:06 you wrote:
On Wednesday 03 September 2014 23:39:47 Vicente J. Botet Escriba wrote:
Le 03/09/14 21:43, Andrey Semashev a écrit :
On Wednesday 03 September 2014 20:04:08 Vicente J. Botet Escriba
wrote:
> Le 03/09/14 19:50, Andrey Semashev a écrit : >> On Sunday 31 August 2014 15:17:56 you wrote: >>> Hi, >>> >>> I've created this pull request: >>> >>> https://github.com/boostorg/mpl/pull/11
What are the dependencies that this split breaks?
What are the dependencies MPL.Core?
MPL.Core headers only depend on Config, Preprocessor and Core. MPL adds TypeTraits, Predef, StaticAssert and Utility.
Actually, the dependency of MPL.Core on Core is only through the testing code and thus can be removed if I move the code to the tests subdirectory. I can do that tonight. MPL will still depend on Core on its own though.
Done.
So, could someone merge the pull request, please?
Done.
Le 04/09/14 04:52, Andrey Semashev a écrit :
On Wednesday 03 September 2014 23:39:47 Vicente J. Botet Escriba wrote:
Le 03/09/14 21:43, Andrey Semashev a écrit :
On Wednesday 03 September 2014 20:04:08 Vicente J. Botet Escriba wrote:
Le 03/09/14 19:50, Andrey Semashev a écrit :
On Sunday 31 August 2014 15:17:56 you wrote:
Hi,
I've created this pull request:
https://github.com/boostorg/mpl/pull/11 What are the dependencies that this split breaks?
What are the dependencies MPL.Core? MPL.Core headers only depend on Config, Preprocessor and Core. MPL adds TypeTraits, Predef, StaticAssert and Utility.
I don't see any dependencies broken after this split. What am I missing? Vicente
On Sep 16, 2014, at 2:41 PM, Vicente J. Botet Escriba
Le 04/09/14 04:52, Andrey Semashev a écrit :
On Wednesday 03 September 2014 23:39:47 Vicente J. Botet Escriba wrote:
Le 03/09/14 21:43, Andrey Semashev a écrit :
On Wednesday 03 September 2014 20:04:08 Vicente J. Botet Escriba wrote:
Le 03/09/14 19:50, Andrey Semashev a écrit :
On Sunday 31 August 2014 15:17:56 you wrote: > Hi, > > I've created this pull request: > > https://github.com/boostorg/mpl/pull/11 What are the dependencies that this split breaks?
What are the dependencies MPL.Core? MPL.Core headers only depend on Config, Preprocessor and Core. MPL adds TypeTraits, Predef, StaticAssert and Utility. I don't see any dependencies broken after this split. What am I missing?
Most / all the develop testers broke following this commit. The testers that aren’t broken are using a previous install of the headers, if the testers delete the boost directory before running the tests, they too would fail.
On Wed, Sep 17, 2014 at 12:41 AM, Vicente J. Botet Escriba
Le 04/09/14 04:52, Andrey Semashev a écrit :
On Wednesday 03 September 2014 23:39:47 Vicente J. Botet Escriba wrote:
Le 03/09/14 21:43, Andrey Semashev a écrit :
On Wednesday 03 September 2014 20:04:08 Vicente J. Botet Escriba wrote:
Le 03/09/14 19:50, Andrey Semashev a écrit :
On Sunday 31 August 2014 15:17:56 you wrote: > > Hi, > > I've created this pull request: > > https://github.com/boostorg/mpl/pull/11
What are the dependencies that this split breaks?
What are the dependencies MPL.Core?
MPL.Core headers only depend on Config, Preprocessor and Core. MPL adds TypeTraits, Predef, StaticAssert and Utility.
I don't see any dependencies broken after this split. What am I missing?
Le 17/09/14 06:23, Andrey Semashev a écrit :
On Wed, Sep 17, 2014 at 12:41 AM, Vicente J. Botet Escriba
wrote: Le 04/09/14 04:52, Andrey Semashev a écrit :
On Wednesday 03 September 2014 23:39:47 Vicente J. Botet Escriba wrote:
Le 03/09/14 21:43, Andrey Semashev a écrit :
On Wednesday 03 September 2014 20:04:08 Vicente J. Botet Escriba wrote:
Le 03/09/14 19:50, Andrey Semashev a écrit : > On Sunday 31 August 2014 15:17:56 you wrote: >> Hi, >> >> I've created this pull request: >> >> https://github.com/boostorg/mpl/pull/11 What are the dependencies that this split breaks?
What are the dependencies MPL.Core? MPL.Core headers only depend on Config, Preprocessor and Core. MPL adds TypeTraits, Predef, StaticAssert and Utility.
I don't see any dependencies broken after this split. What am I missing? http://thread.gmane.org/gmane.comp.lib.boost.devel/254576
What I mean Andrey is that I don't see the dependency cycle that this MPL split breaks. Please could you be explicit? Vicente
On Wed, Sep 17, 2014 at 10:08 AM, Vicente J. Botet Escriba
Le 17/09/14 06:23, Andrey Semashev a écrit :
On Wed, Sep 17, 2014 at 12:41 AM, Vicente J. Botet Escriba
wrote: I don't see any dependencies broken after this split. What am I missing?
What I mean Andrey is that I don't see the dependency cycle that this MPL split breaks. Please could you be explicit?
After the MPL.Core->MPL dependency is fixed, and TypeTraits is reorganized (see the other thread), the circular dependency between MPL and TypeTraits will be removed. This will also reduce transitive dependencies for libraries that use MPL.Core and TypeTraits.Base.
Le 17/09/14 08:13, Andrey Semashev a écrit :
On Wed, Sep 17, 2014 at 10:08 AM, Vicente J. Botet Escriba
wrote: Le 17/09/14 06:23, Andrey Semashev a écrit :
On Wed, Sep 17, 2014 at 12:41 AM, Vicente J. Botet Escriba
wrote: I don't see any dependencies broken after this split. What am I missing? http://thread.gmane.org/gmane.comp.lib.boost.devel/254576
What I mean Andrey is that I don't see the dependency cycle that this MPL split breaks. Please could you be explicit? After the MPL.Core->MPL dependency is fixed, and TypeTraits is reorganized (see the other thread), the circular dependency between MPL and TypeTraits will be removed. This will also reduce transitive dependencies for libraries that use MPL.Core and TypeTraits.Base.
Ok, I have not missed nothing. The split could help to break cycles, but it doesn't yet. Vicente
Vicente J. Botet Escriba wrote:
Ok, I have not missed nothing. The split could help to break cycles, but it doesn't yet.
Type Traits depends on MPL now only via Typeof (which in turn depends on Type Traits itself), so once the Type Traits <-> Typeof cycle is broken, the Type Traits -> MPL dependency will also vanish.
Le 17/09/14 19:29, Peter Dimov a écrit :
Vicente J. Botet Escriba wrote:
Ok, I have not missed nothing. The split could help to break cycles, but it doesn't yet.
Type Traits depends on MPL now only via Typeof
This is wrong
/mpl/ http://www.pdimov.com/tmp/report-d53f656/mpl.html
|
(which in turn depends on Type Traits itself), so once the Type Traits <-> Typeof cycle is broken, the Type Traits -> MPL dependency will also vanish.
I agree that independent of MPL there is a cycle, Type Traits <-> Typeof. So let me repeat what I said in another post. Let everything in place except type_traits.hpp type_traits/common_type.hpp, which are move to two sub-modules TypeTraits.All and TypeTraits.CommonType with the following dependencies TypeTraits.All -> TypeTraits TypeTraits.CommonType TypeTraits.CommonType -> TypeTraits TypeOf TypeOf -> TypeTraits Note again that this has nothing to be with the Type Traits <->MPL cycle. Best, Vicente
participants (4)
-
Andrey Semashev
-
Belcourt, Kenneth
-
Peter Dimov
-
Vicente J. Botet Escriba