wiki:ModuleDepednecies

Version 10 (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

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 )

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, Spirit )

DateTime->Serialization

Suggestion: Create the submodule DateTime.Serialization

DateTime.Serialization -> DateTime Serialization

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->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.

Other dependencies

Other dependencies that could reduce the dependencies graph

Serialization->Spirit

Suggestion: Split the Serialization Module on two modules Serialization and Archive

Chrono->Interporocess

Suggestion: Create the submodule Chrono.IO

Chrono.IO -> Chrono Interprocess

Thread->Interporocess

<boost/interprocess/smart_ptr/unique_ptr.hpp>

from <boost/thread/csbl/memory/unique_ptr.hpp>

Suggestion: Move boost/interprocess/smart_ptr/unique_ptr.hpp to SmartPtr.

Note: See TracWiki for help on using the wiki.