Le 14/06/14 08:56, Stephen Kelly a écrit :
Vicente J. Botet Escriba wrote:
Le 13/06/14 18:41, Stephen Kelly a écrit :
I think if the intent is to remove circular dependencies, you should see if you can split the archive parts of the serialization out and make only that part depend on spirit.
This corresponds to the opposite dependency. My first goal is to break the cycles. I am aware of that.
That is why I wrote:
I think if the intent is to remove circular dependencies [...]
Here is a graph which assumes the range->algorithm edge removal and treats math<->lexical_cast as an incidental module:
http://www.steveire.com/boost/2014_jun_before-spirit-serialization.png
And after removing the serialization->spirit edge:
http://www.steveire.com/boost/2014_jun_after-spirit-serialization.png
The local_function <-> scoped_exit cycle will be taken in account by Lorenzo. I don't think the serialization -> spirit dependency must be removed forcedly. As I said in another post the opposite seems unuseful as the file is not used. We can manage with the graph cycle by extracting the following submodules bimap.property_map -> bimap property_map property_map.parallel ->property_map mpi and grouping graph and disjoint_set. In the same way extracting the serialization part from date_time to a submodule helps to break the date_time. I would say that we should do the the same for each module that depends on serialization, create a submodule module.serialization -> module serialization The dependencies to tr1 should be removed and replaced by the underlying Boost libraries. Another dependency that can be broken is chrono -> interprocess buy adding a chrono.io submodule. I'll create the chrono.io submodule myself. Best, Vicente