Version 19 (modified by 8 years ago) ( diff ) | ,
---|
See Modules level for the last state of dependencies between libraries. This report has been generated with boostdep.
Next follows a list of dependencies to be removed in order to break the cycles.
Cycle (MPL, TypeTraits, Utility, TypeOf)
Level 3
mpl ⇢ config0 core2 predef0 preprocessor0 static_assert1 type_traits3 utility3 type_traits ⇢ config0 core2 mpl3 preprocessor0 static_assert1 typeof3 typeof ⇢ config0 core2 mpl3 preprocessor0 type_traits3 utility ⇢ config0 core2 mpl3 preprocessor0 static_assert1 throw_exception2 type_traits3
MPL -> Utility -> MPL
<boost/utility/value_init.hpp>
from <boost/mpl/for_each.hpp>
Suggestion: Move value_init.hpp to Core?
MPL -> TypeTraits -> MPL
Suggestion: Split MPL into MPL and MPL.Core, resulting in
MPL -> TypeTraits -> MPL.Core
TypeTraits -> Typeof
<boost/typeof/typeof.hpp>
from <boost/type_traits/common_type.hpp>
Suggestion: Create the submodule TypeTraits.CommonType
TypeTraits.CommonType -> TypeTraits Typeof
Cycle (Context, Coroutine )
Level 10
context ⇢ assert1 config0 coroutine10 smart_ptr4 coroutine ⇢ assert1 config0 context10 core2 exception5 move3 range9 system3 throw_exception2 type_traits3 utility3
<boost/coroutine/detail/config.hpp>
from <boost/context/detail/rref.hpp>
Suggestion: Context should not depend on Coroutine.
Cycle (LexicalCast, Math )
lexical_cast ⇢ array3 assert1 config0 container9 core2 integer2 math10 mpl3 numeric~conversion6 range9 static_assert1 throw_exception2 type_traits3 math ⇢ array3 assert1 atomic4 concept_check4 config0 core2 detail4 format6 fusion8 lexical_cast10 mpl3 predef0 range9 smart_ptr4 static_assert1 throw_exception2 tuple4 type_traits3
<boost/math/special_functions/fpclassify.hpp>
from <boost/lexical_cast.hpp>
<boost/math/special_functions/sign.hpp>
from <boost/lexical_cast.hpp>
Suggestion: Move these functions to a specif Math.SubModule
Cycle (DateTime, Serialization, Interprocess, Thread, Chrono, Pool, Spirit )
Level 12
date_time ⇢ algorithm11 assert1 config0 io1 lexical_cast10 mpl3 range9 serialization12 smart_ptr4 static_assert1 throw_exception2 tokenizer7 type_traits3 utility3 gil ⇢ algorithm11 array3 bind3 concept_check4 config0 core2 filesystem10 function4 integer2 iterator6 lambda7 lexical_cast10 mpl3 numeric~conversion6 preprocessor0 smart_ptr4 static_assert1 type_traits3 parameter ⇢ config0 core2 detail4 mpl3 optional5 preprocessor0 python11 type_traits3 utility3 pool ⇢ assert1 config0 integer2 thread12 throw_exception2 type_traits3 serialization ⇢ array3 assert1 config0 core2 detail4 integer2 io1 iterator6 mpl3 optional5 predef0 preprocessor0 smart_ptr4 spirit12 static_assert1 type_traits3 utility3 variant11 spirit ⇢ (unknown)0 algorithm11 array3 assert1 concept_check4 config0 core2 filesystem10 foreach10 function4 function_types5 fusion8 integer2 io1 iostreams11 iterator6 lexical_cast10 math10 mpl3 optional5 phoenix11 pool12 predef0 preprocessor0 proto10 range9 regex8 serialization12 smart_ptr4 static_assert1 thread12 throw_exception2 type_traits3 typeof3 unordered10 utility3 variant11 thread ⇢ (unknown)0 assert1 atomic4 bind3 chrono6 concept_check4 config0 container9 core2 date_time12 exception5 function4 functional7 intrusive8 io1 move3 mpl3 optional5 predef0 preprocessor0 smart_ptr4 static_assert1 system3 throw_exception2 tuple4 type_traits3 utility3 winapi1
DateTime->Serialization
Suggestion: Create the submodule DateTime.Serialization
DateTime.Serialization -> DateTime Serialization
Serialization->Spirit
Suggestion: Split the Serialization Module on two modules Serialization and Archive
Spirit->Serialization
<boost/serialization/vector.hpp>
from <boost/spirit/home/support/detail/lexer/serialise.hpp>
Suggestion: Remove the unused file.
Cycle (Bimap, PropertyMap, DisjointSets, Graph, GraphParallel, MPI )
Level 15
bimap ⇢ concept_check4 config0 core2 functional7 iterator6 lambda7 mpl3 multi_index13 preprocessor0 property_map15 serialization12 static_assert1 throw_exception2 type_traits3 utility3 chrono~stopwatches ⇢ accumulators14 assert1 chrono6 config0 format6 system3 disjoint_sets ⇢ graph15 graph ⇢ algorithm11 any9 array3 assert1 bimap15 bind3 concept_check4 config0 conversion5 core2 detail4 disjoint_sets15 foreach10 function4 functional7 graph_parallel15 integer2 iterator6 lexical_cast10 math10 move3 mpl3 multi_index13 optional5 parameter12 preprocessor0 property_map15 property_tree14 random10 range9 serialization12 smart_ptr4 spirit12 static_assert1 test11 throw_exception2 tti6 tuple4 type_traits3 typeof3 unordered10 utility3 xpressive11 graph_parallel ⇢ assert1 concept_check4 config0 core2 detail4 disjoint_sets15 dynamic_bitset4 filesystem10 foreach10 function4 functional7 graph15 iterator6 lexical_cast10 mpi15 mpl3 optional5 property_map15 random10 serialization12 smart_ptr4 static_assert1 tuple4 type_traits3 variant11 log ⇢ array3 assert1 bind3 config0 core2 date_time12 exception5 filesystem10 function_types5 fusion8 intrusive8 iterator6 lexical_cast10 move3 mpl3 optional5 parameter12 phoenix11 preprocessor0 property_tree14 proto10 range9 regex8 smart_ptr4 spirit12 static_assert1 system3 thread12 throw_exception2 type_traits3 utility3 winapi1 xpressive11 mpi ⇢ assert1 config0 core2 function4 graph15 integer2 iterator6 mpl3 optional5 property_map15 python11 serialization12 smart_ptr4 static_assert1 throw_exception2 type_traits3 property_map ⇢ any9 assert1 bind3 concept_check4 config0 core2 function4 iterator6 lexical_cast10 mpi15 mpl3 multi_index13 optional5 serialization12 smart_ptr4 static_assert1 throw_exception2 type_traits3 utility3
Bimap->PropertyMap
Suggestion: Create the submodule Bimap.PropertyMap
Bimap.PropertyMap -> Bimap PropertyMap
PropertyMap->MPI
Suggestion: Create the submodule PropertyMap.Parallel
PropertyMap.Parallel -> PropertyMap MPI
Grapth->DisjoinSet->Grapth
Suggestion: Move DisjoinSet to Graph.
Grapth->GraphParallel
<boost/graph/distributed/breadth_first_search.hpp>
from <boost/graph/breadth_first_search.hpp>
<boost/graph/distributed/concepts.hpp>
from <boost/graph/breadth_first_search.hpp>
<boost/graph/distributed/connected_components.hpp>
from <boost/graph/connected_components.hpp>
<boost/graph/distributed/depth_first_search.hpp>
from <boost/graph/depth_first_search.hpp>
<boost/graph/distributed/dijkstra_shortest_paths.hpp>
from <boost/graph/dijkstra_shortest_paths.hpp>
<boost/graph/distributed/fruchterman_reingold.hpp>
from <boost/graph/fruchterman_reingold.hpp>
<boost/graph/distributed/graphviz.hpp>
from <boost/graph/graphviz.hpp>
<boost/graph/distributed/one_bit_color_map.hpp>
from <boost/graph/one_bit_color_map.hpp>
<boost/graph/distributed/page_rank.hpp>
from <boost/graph/page_rank.hpp>
<boost/graph/distributed/rmat_graph_generator.hpp>
from <boost/graph/rmat_graph_generator.hpp>
<boost/graph/distributed/strong_components.hpp>
from <boost/graph/strong_components.hpp>
<boost/graph/distributed/two_bit_color_map.hpp>
from <boost/graph/two_bit_color_map.hpp>
<boost/pending/property_serialize.hpp>
from <boost/graph/adj_list_serialize.hpp>
Suggestion: Remove all the graph distributed specializations declarations in Graph as e.g.
#ifdef BOOST_GRAPH_USE_MPI template <class DistributedGraph, class ColorMap, class BFSVisitor, class P, class T, class R> void bfs_helper (DistributedGraph& g, typename graph_traits<DistributedGraph>::vertex_descriptor s, ColorMap color, BFSVisitor vis, const bgl_named_params<P, T, R>& params, boost::mpl::true_); #endif // BOOST_GRAPH_USE_MPI
The definition of these specializations are already in GraphParallel.