SCM Repository
Annotation of /sml/trunk/src/cm/depend/ggraph.sml
Parent Directory
|
Revision Log
Revision 666 - (view) (download)
1 : | blume | 294 | (* |
2 : | * Internal data structure representing a CM dependency graph. | ||
3 : | * (coarse-grain: groups) | ||
4 : | * | ||
5 : | * (C) 1999 Lucent Technologies, Bell Laboratories | ||
6 : | * | ||
7 : | * Author: Matthias Blume (blume@kurims.kyoto-u.ac.jp) | ||
8 : | *) | ||
9 : | structure GroupGraph = struct | ||
10 : | |||
11 : | type privileges = StringSet.set | ||
12 : | |||
13 : | blume | 632 | datatype libkind = |
14 : | STABLE of unit -> unit (* pickle dropper *) | ||
15 : | | DEVELOPED of { wrapped: privileges, subgroups: subgrouplist } | ||
16 : | |||
17 : | and kind = | ||
18 : | blume | 666 | NOLIB of { owner: SrcPath.file option, subgroups: subgrouplist } |
19 : | blume | 632 | | LIB of { version: Version.t option, kind: libkind } |
20 : | blume | 305 | |
21 : | (* the "required" field includes everything: | ||
22 : | * 1. privileges required by subgroups | ||
23 : | * 2. newly required privileges | ||
24 : | blume | 348 | * 3. privileges that would be wrapped once the group is stabilized |
25 : | blume | 380 | *) |
26 : | blume | 537 | and group = |
27 : | blume | 294 | GROUP of { exports: DependencyGraph.impexp SymbolMap.map, |
28 : | blume | 348 | kind: kind, |
29 : | blume | 305 | required: privileges, |
30 : | blume | 666 | grouppath: SrcPath.file, |
31 : | blume | 642 | sources: { class: string, derived: bool } SrcPathMap.map, |
32 : | blume | 537 | sublibs: subgrouplist } |
33 : | blume | 587 | | ERRORGROUP |
34 : | blume | 537 | |
35 : | blume | 666 | withtype subgrouplist = |
36 : | (SrcPath.file * (unit -> group) * SrcPath.rebindings) list | ||
37 : | blume | 444 | (* Note: "sublibs" consists of (srcpath, group) pairs where |
38 : | * srcpath is equivalent -- but not necessarily identical -- to | ||
39 : | * the "grouppath" component of "group". The group might have | ||
40 : | * been known before in which case "grouppath" would carry the | ||
41 : | * path that was used back then to refer to the group. But for | ||
42 : | * the purpose of stabilization we must know the abstract path | ||
43 : | * that was used this time. *) | ||
44 : | blume | 294 | end |
root@smlnj-gforge.cs.uchicago.edu | ViewVC Help |
Powered by ViewVC 1.0.0 |