Version 17 (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)
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>
<boost/mpl/bool.hpp>
from <boost/utility/result_of.hpp>
<boost/mpl/eval_if.hpp>
from <boost/utility/result_of.hpp>
<boost/mpl/has_xxx.hpp>
from <boost/utility/result_of.hpp>
<boost/mpl/identity.hpp>
from <boost/utility/result_of.hpp>
<boost/mpl/if.hpp>
from <boost/utility/result_of.hpp>
<boost/mpl/or.hpp>
from <boost/utility/result_of.hpp>
MPL -> TypeTraits -> MPL
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 (Range, Algoritm, TR1, LexicalCast, Math, Random )
algorithm ⇢ array8 assert1 bind3 concept_check4 config0 core2 exception5 function4 iterator6 mpl3 range11 regex8 static_assert1 tr111 tuple4 type_traits3
lexical_cast ⇢ array8 assert1 config0 container9 core2 integer2 math11 mpl3 numeric~conversion4 range11 static_assert1 throw_exception2 type_traits3
math ⇢ array8 assert1 atomic4 concept_check4 config0 core2 detail4 format6 fusion6 lexical_cast11 mpl3 predef0 smart_ptr4 static_assert1 throw_exception2 tr111 tuple4 type_traits3
random ⇢ assert1 config0 core2 integer2 mpl3 range11 static_assert1 system3 throw_exception2 type_traits3 utility3
range ⇢ algorithm11 array8 assert1 concept_check4 config0 core2 detail4 functional7 iterator6 mpl3 numeric~conversion4 preprocessor0 regex8 static_assert1 tuple4 type_traits3 utility3
tr1 ⇢ array8 assert1 bind3 config0 core2 function4 functional7 fusion6 iterator6 math11 mpl3 random11 regex8 smart_ptr4 static_assert1 tuple4 type_traits3 unordered10 utility3
Range -> Algorithm
<boost/algorithm/string/config.hpp>
from <boost/range/detail/collection_traits.hpp> from <boost/range/detail/collection_traits_detail.hpp>
<boost/algorithm/string/yes_no_type.hpp>
from <boost/range/detail/collection_traits_detail.hpp>
Suggestion: The dependency can be removed by moving boost/algorithm/string/config.hpp to Config and boost/algorithm/string/yes_no_type.hpp to TypeTraits
Algorithm -> TR1
<boost/tr1/tr1/unordered_map>
from <boost/algorithm/searching/detail/bm_traits.hpp>
Suggestion: The dependency can be broken by making use of Boost.Unordered.
LexicalCast -> Math
<boost/math/special_functions/fpclassify.hpp>
from <boost/lexical_cast.hpp>
<boost/math/special_functions/sign.hpp>
from <boost/lexical_cast.hpp>
Suggestion: The dependency can be removed by moving boost/math/special_functions/fpclassify.hpp to Config and boost/math/special_functions/sign.hpp to Core
Math -> TR1
<boost/tr1/detail/config.hpp>
from <boost/math/tools/tuple.hpp>
<boost/tr1/tuple.hpp>
from <boost/math/tools/tuple.hpp>
Suggestion: The dependency can be broken by making use of Boost.Tuple.
Cycle (DateTime, Serialization, Interprocess, Thread, Chrono, Pool, Spirit )
chrono ⇢ assert1 config0 core2 integer2 interprocess14 math11 mpl3 ratio13 static_assert1 system3 throw_exception2 type_traits3 typeof3 utility3 winapi1
date_time ⇢ algorithm11 assert1 config0 io1 lexical_cast11 mpl3 range11 serialization14 smart_ptr4 static_assert1 throw_exception2 tokenizer7 type_traits3 utility3
interprocess ⇢ (unknown)0 assert1 config0 container9 core2 date_time14 integer2 intrusive8 move4 preprocessor0 static_assert1 type_traits3 unordered10 utility3 winapi1
pool ⇢ assert1 config0 math11 thread14 throw_exception2 type_traits3
serialization ⇢ array8 assert1 config0 core2 detail4 integer2 io1 iterator6 mpl3 optional5 predef0 preprocessor0 smart_ptr4 spirit14 static_assert1 type_traits3 utility3 variant12
spirit ⇢ (unknown)0 algorithm11 array8 assert1 concept_check4 config0 core2 filesystem12 foreach12 function4 function_types5 fusion6 integer2 io1 iostreams12 iterator6 lexical_cast11 math11 mpl3 optional5 phoenix13 pool14 predef0 preprocessor0 proto12 range11 regex8 serialization14 smart_ptr4 static_assert1 thread14 throw_exception2 type_traits3 typeof3 unordered10 utility3 variant12
thread ⇢ assert1 atomic4 bind3 chrono14 concept_check4 config0 container9 core2 date_time14 exception5 function4 functional7 interprocess14 intrusive8 io1 move4 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 )
bimap ⇢ concept_check4 config0 core2 functional7 iterator6 lambda7 mpl3 multi_index15 preprocessor0 property_map17 serialization14 static_assert1 throw_exception2 type_traits3 utility3
disjoint_sets ⇢ graph17
graph ⇢ algorithm11 any4 array8 assert1 bimap17 bind3 concept_check4 config0 conversion2 core2 detail4 disjoint_sets17 foreach12 function4 functional7 graph_parallel17 integer2 iterator6 lexical_cast11 math11 move4 mpl3 multi_index15 optional5 parameter14 preprocessor0 property_map17 property_tree16 random11 range11 serialization14 smart_ptr4 spirit14 static_assert1 test16 throw_exception2 tti6 tuple4 type_traits3 typeof3 unordered10 utility3 xpressive13
graph_parallel ⇢ assert1 concept_check4 config0 core2 detail4 disjoint_sets17 dynamic_bitset5 filesystem12 foreach12 function4 functional7 graph17 iterator6 lexical_cast11 mpi17 mpl3 optional5 property_map17 random11 serialization14 smart_ptr4 static_assert1 tuple4 type_traits3 variant12
mpi ⇢ assert1 config0 core2 function4 graph17 integer2 iterator6 mpl3 optional5 property_map17 python13 serialization14 smart_ptr4 static_assert1 throw_exception2 type_traits3
property_map ⇢ any4 assert1 bind3 concept_check4 config0 core2 function4 iterator6 lexical_cast11 mpi17 mpl3 multi_index15 optional5 serialization14 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.