doc/migration.dox
changeset 306 2bf7c645d5a6
parent 305 069f27927ba9
child 307 47ec522b838e
     1.1 --- a/doc/migration.dox	Mon Oct 06 13:02:13 2008 +0100
     1.2 +++ b/doc/migration.dox	Wed Oct 08 11:38:31 2008 +0200
     1.3 @@ -16,12 +16,13 @@
     1.4   *
     1.5   */
     1.6  
     1.7 +namespace lemon {
     1.8  /*!
     1.9  
    1.10  \page migration Migration from the 0.x Series
    1.11  
    1.12  This guide gives an in depth description on what has changed compared
    1.13 -to the 0.x release series. 
    1.14 +to the 0.x release series.
    1.15  
    1.16  Many of these changes adjusted automatically by the
    1.17  <tt>script/lemon-0.x-to-1.x.sh</tt> tool. Those requiring manual
    1.18 @@ -29,33 +30,76 @@
    1.19  
    1.20  \section migration-graph Graph Related Name Changes
    1.21  
    1.22 -- Directed graphs are called \c Digraph and they have <tt>Arc</tt>s
    1.23 -  instead of <tt>Edge</tt>s, while the undirected graph is called \c
    1.24 -  Graph (instead of \c UGraph) and they have <tt>Edge</tt>s (instead
    1.25 -  of <tt>UEdge</tt>s). This changes reflected thoroughly everywhere in
    1.26 +- \ref concepts::Digraph "Directed graphs" are called \c Digraph and
    1.27 +  they have <tt>Arc</tt>s (instead of <tt>Edge</tt>s), while
    1.28 +  \ref concepts::Graph "undirected graphs" are called \c Graph
    1.29 +  (instead of \c UGraph) and they have <tt>Edge</tt>s (instead of
    1.30 +  <tt>UEdge</tt>s). These changes reflected thoroughly everywhere in
    1.31    the library. Namely,
    1.32    - \c Graph -> \c Digraph
    1.33 -    - \c ListGraph -> \c ListDigraph, \c SmartGraph -> \c SmartDigraph etc.
    1.34 +    - \c %ListGraph -> \c ListDigraph, \c %SmartGraph -> \c SmartDigraph etc.
    1.35    - \c UGraph -> \c Graph
    1.36      - \c ListUGraph -> \c ListGraph, \c SmartUGraph -> \c SmartGraph etc.
    1.37 -  - \c Edge -> \c Arc
    1.38 -  - \c UEdge -> \c Edge
    1.39 -  - \c EdgeMap -> \c ArcMap
    1.40 -  - \c UEdgeMap -> \c EdgeMap
    1.41 -  - Class names and function names containing the words \e edge or \e arc
    1.42 -    should also be updated.
    1.43 +  - \c Edge -> \c Arc, \c UEdge -> \c Edge
    1.44 +  - \c EdgeMap -> \c ArcMap, \c UEdgeMap -> \c EdgeMap
    1.45 +  - \c EdgeIt -> \c ArcIt, \c UEdgeIt -> \c EdgeIt
    1.46 +  - Class names and function names containing the words \c graph,
    1.47 +    \c ugraph, \e edge or \e arc should also be updated.
    1.48  - <b>The two endpoints of an (\e undirected) \c Edge can be obtained by the
    1.49 -  <tt>u()</tt> and <tt>v()</tt> member function of the graph class
    1.50 +  <tt>u()</tt> and <tt>v()</tt> member function of the graph
    1.51    (instead of <tt>source()</tt> and <tt>target()</tt>). This change
    1.52    must be done by hand.</b>
    1.53    \n Of course, you can still use <tt>source()</tt> and <tt>target()</tt>
    1.54    for <tt>Arc</tt>s (directed edges).
    1.55  
    1.56 +\warning
    1.57 +<b>The <tt>script/lemon-0.x-to-1.x.sh</tt> tool replaces all instances of
    1.58 +the words \c graph, \c digraph, \c edge and \c arc, so it replaces them
    1.59 +in strings, comments etc. as well as in all identifiers.</b>
    1.60 +
    1.61  \section migration-lgf LGF tools
    1.62  
    1.63  \section migration-search BFS, DFS and Dijkstra
    1.64 +- <b>Using the function interface of BFS, DFS and %Dijkstra both source and
    1.65 +  target nodes can be given as parameters of the <tt>run()</tt> function
    1.66 +  (instead of \c bfs(), \c dfs() or \c dijkstra() itself).</b>
    1.67 +- \ref named-templ-param "Named class template parameters" of \c Bfs,
    1.68 +  \c Dfs, \c Dijkstra, \c BfsVisit, \c DfsVisit are renamed to start
    1.69 +  with "Set" instead of "Def". Namely,
    1.70 +  - \c DefPredMap -> \c SetPredMap
    1.71 +  - \c DefDistMap -> \c SetDistMap
    1.72 +  - \c DefReachedMap -> \c SetReachedMap
    1.73 +  - \c DefProcessedMap -> \c SetProcessedMap
    1.74 +  - \c DefHeap -> \c SetHeap
    1.75 +  - \c DefStandardHeap -> \c SetStandardHeap
    1.76 +  - \c DefOperationTraits -> \c SetOperationTraits
    1.77 +  - \c DefProcessedMapToBeDefaultMap -> \c SetStandardProcessedMap
    1.78  
    1.79  \section migration-error Exceptions and Debug tools
    1.80  
    1.81  \section migration-other Others
    1.82 +- <b>The contents of <tt>graph_utils.h</tt> are moved to <tt>core.h</tt>
    1.83 +  and <tt>maps.h</tt>. <tt>core.h</tt> is included by all graph types,
    1.84 +  therefore it usually do not have to be included directly.</b>
    1.85 +- <b><tt>path_utils.h</tt> is merged to \c path.h.</b>
    1.86 +- <b>The parameters of the graph copying tools (i.e. \c GraphCopy,
    1.87 +  \c DigraphCopy) have to be given in the from-to order.</b>
    1.88 +- \c copyDigraph() and \c copyGraph() are renamed to \c digraphCopy()
    1.89 +  and \c graphCopy(), respectively.
    1.90 +- The of
    1.91 + - DefXyzMap --> SetXyzMap
    1.92 + - DefHeap --> SetHeap
    1.93 + - DefStandardHeap --> SetStandardHeap
    1.94 + - DefOperationTraits --> SetOperationTraits
    1.95 + - DefProcessedMapToBeDefaultMap --> SetStandardProcessedMap
    1.96 +- Some map types should also been renamed. Namely,
    1.97 +  - \c IntegerMap -> \c RangeMap
    1.98 +  - \c StdMap -> \c SparseMap
    1.99 +  - \c FunctorMap -> \c FunctorToMap
   1.100 +  - \c MapFunctor -> \c MapToFunctor
   1.101 +  - \c ForkWriteMap -> \c ForkMap
   1.102 +  - \c StoreBoolMap -> \c LoggerBoolMap
   1.103 +- \c dim2::BoundingBox -> \c dim2::Box
   1.104 +
   1.105  */
   1.106 +}