[Lemon-devel] path.h include tree

Balazs Dezso deba at inf.elte.hu
Thu Jan 24 13:37:02 CET 2008


Hi,

a bad design caused the complex dependency tree, unfortunately. The automatic 
template path copy is an important feature of path concept, and this made the 
path.h dependent to path_utils.h, because the general path copy is defined 
there. On other way, usually the ..._utils.h file contains various utilities 
connected to ..., for example ... reading and writing with Lemon IO. As a 
consequence, the path.h should include the path_utils.h and the path_utils.h 
includes what the lemon IO needs.

There are two possible improvements on the design:
1) The lemon IO should be separated to several files and some ..._fwd.h files 
are necessary also.
2) The path_utils.h should be splited to two parts, one for just the path 
copy, and one for the other related stuffs.

Best, Balazs

On Thursday 24 January 2008 12.07.06 Alpár Jüttner wrote:
> Hi,
>
> I started to port path.h into the hg repo. I thought it would be an easy
> task, but then I checked its dependencies and I created a dependency
> tree (see below).  Note that
>       * all the standard headers are missing from this list.
>       * This tree shows exactly the files (with multiplications) the
>         preprocessor goes through during the compilation (i.e. when a
>         file is scanned for the second time its dependencies are not
>         scanned again.)
>
> Regards,
> Alpar
>
> lemon/path.h
>     lemon/path_utils.h
>         lemon/concepts/path.h
>             lemon/bits/invalid.h
>             lemon/bits/utility.h
>             lemon/concept_check.h
>         lemon/lemon_reader.h
>             lemon/error.h
>             lemon/graph_utils.h
>                 lemon/bits/invalid.h
>                 lemon/bits/utility.h
>                 lemon/maps.h
>                     lemon/bits/utility.h
>                     lemon/bits/traits.h
>                         lemon/bits/utility.h
>                 lemon/bits/traits.h
>                 lemon/bits/alteration_notifier.h
>                     lemon/bits/utility.h
>                 lemon/bits/default_map.h
>                     lemon/bits/array_map.h
>                         lemon/bits/traits.h
>                         lemon/bits/alteration_notifier.h
>                         lemon/concept_check.h
>                         lemon/concepts/maps.h
>                             lemon/bits/utility.h
>                             lemon/concept_check.h
>                     lemon/bits/vector_map.h
>                         lemon/bits/traits.h
>                         lemon/bits/utility.h
>                         lemon/bits/alteration_notifier.h
>                         lemon/concept_check.h
>                         lemon/concepts/maps.h
>                     lemon/bits/debug_map.h
>                         lemon/bits/traits.h
>                         lemon/bits/utility.h
>                         lemon/error.h
>                         lemon/bits/alteration_notifier.h
>                         lemon/concept_check.h
>                         lemon/concepts/maps.h
>             lemon/bits/utility.h
>             lemon/bits/item_reader.h
>                 lemon/error.h
>             lemon/dim2.h
>                 lemon/bits/utility.h
>             lemon/concept_check.h
>             lemon/concepts/maps.h
>         lemon/lemon_writer.h
>             lemon/error.h
>             lemon/bits/invalid.h
>             lemon/graph_utils.h
>             lemon/bits/item_writer.h
>                 lemon/error.h
>             lemon/bits/utility.h
>             lemon/maps.h
>             lemon/dim2.h
>             lemon/concept_check.h
>             lemon/concepts/maps.h
>     lemon/error.h
>     lemon/bits/invalid.h
>
>
> _______________________________________________
> Lemon-devel mailing list
> Lemon-devel at lemon.cs.elte.hu
> http://lemon.cs.elte.hu/mailman/listinfo/lemon-devel





More information about the Lemon-devel mailing list