wiki:ModuleDepednecies

Version 18 (modified by viboes, 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:

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.

Note: See TracWiki for help on using the wiki.