The following information about line interactions is derived from
the concern definitions
- Raw Lines Mixing
Report: Line interaction based on the lines directly defined by
each concern.
- Core Lines Mixing
Report: Line interactions based on the core lines of each
concern. Core lines are those lines that do not also belong to any of the
concerns in the extenders closure. Non-core lines are occaisionally
included in a concern definition when isolating the exact lines is a
bookkeeping challenge. As an example, the command line parsing for
GlobalOpts includes the entire parsing loop, but the majority of the loop body
is specific recognizers introduced by the various extensions
- Spanning Lines Mixing
Report: Line interactions based ont the spanning lines of each
concern. Spanning lines extends the set of core lines by adding in all
lines from the concerns uses closure. Spanning lines are intended to
include all lines that directly contribute to behavior of the concern.
This should be the correct set for determining if two concerns interact with
each other.
The interaction between all pairs of concerns is handled as a
basis concern that is compared to a set of matched concerns.
The number of lines in common is listed in parenthesis following each matched
concern. (Except when the concerns are disjoint, and the number of common lines
is zero by definition.)
The interaction between any two concerns is classified into one of
the five following cases:
- Disjoint: The two concerns have no lines in common.
- Overlap: Both concerns have lines that the other concern
does not share.
- Subset: All of the lines in the basis concern are also
belong to the matched concern.
- Cover: The basis concern includes all of the lines that
belong to the matched concern.
- Same: The two concern have exactly the same lines.
The cover and subset cases are inverses of each other, with the
roles of basis and matched concern reversed. Ths same case has only arisen when
a concern is compared with itself. It's also a quick and dirty way to get the
line count for each concern.