aboutsummaryrefslogtreecommitdiffhomepage
path: root/notes/dependencies_misc.txt
blob: 3c72a3b564df5cdba2172997fb10e15c9d89c557 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

* Dependencies form a simple directed graph:
    - Modules can depend (or interface-depend) on any module, except itself.
    - Cyclic dependencies ARE allowed! (unlike in many other languages)
* Method 1 to handle multi-versioned modules/dependencies:
    - Module-Version combinations are the nodes.
    - Dependencies (from module A ver X to module B ver Y) are the edges.
    - Versions "depend" on the earlier version
        - XXX this does not work with implementation-depends because we may
          want to eliminate old dependencies in old versions.
    - Maybe this can be used for interface-depends though?
* Method 2 to handle multi-versioned modules/dependencies:
    - Modules are the nodes
    - Dependencies are the edges
    - This can be used for implementation-depends.



* "Local" dependencies between files/symbols form a directed graph
    - Loops and cycles are allowed, but a structure may not contain
      itself except indirectly via pointers (including via function pointers).