Home My Page Projects Code Snippets Project Openings SML/NJ
Summary Activity Forums Tracker Lists Tasks Docs Surveys News SCM Files

SCM Repository

[smlnj] Diff of /sml/trunk/src/cm/depend/checksharing.sml
ViewVC logotype

Diff of /sml/trunk/src/cm/depend/checksharing.sml

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 303, Sun May 30 10:23:20 1999 UTC revision 320, Tue Jun 8 07:42:11 1999 UTC
# Line 41  Line 41 
41                  if StringSet.isEmpty s then ()                  if StringSet.isEmpty s then ()
42                  else (err EM.COMPLAIN ("cannot share state of " ^ x) ppb;                  else (err EM.COMPLAIN ("cannot share state of " ^ x) ppb;
43                        ok := false);                        ok := false);
44                  StringSet.add (s, x)                  s
45              end              end
46    
47          val smlmap = ref AbsPathMap.empty          val smlmap = ref SmlInfoMap.empty
48          val stablemap = ref StableMap.empty          val stablemap = ref StableMap.empty
49    
50          fun bn (DG.PNODE _, s) = s          fun bn (DG.PNODE _, s) = s
# Line 55  Line 55 
55                      val gs = foldl fbn empty globalimports                      val gs = foldl fbn empty globalimports
56                      val ls = foldl bn gs localimports                      val ls = foldl bn gs localimports
57                      val s' = check (BinInfo.share i, BinInfo.describe i, ls,                      val s' = check (BinInfo.share i, BinInfo.describe i, ls,
58                                      BinInfo.error gp i)                                      BinInfo.error i)
59                  in                  in
60                      stablemap := StableMap.insert (!stablemap, i, s');                      stablemap := StableMap.insert (!stablemap, i, s');
61                      StringSet.union (s, s')                      StringSet.union (s, s')
# Line 63  Line 63 
63    
64          and fbn ((_, n), s) = bn (n, s)          and fbn ((_, n), s) = bn (n, s)
65    
66          fun sn (DG.SNODE { smlinfo = i, localimports, globalimports }, s) = let          fun sn (DG.SNODE { smlinfo = i, localimports, globalimports }, s) =
67              val p = SmlInfo.sourcepath i              case SmlInfoMap.find (!smlmap, i) of
         in  
             case AbsPathMap.find (!smlmap, p) of  
68                  SOME s' => StringSet.union (s, s')                  SOME s' => StringSet.union (s, s')
69                | NONE => let                | NONE => let
70                      val gs = foldl fsbn empty globalimports                      val gs = foldl fsbn empty globalimports
# Line 74  Line 72 
72                      val s' = check (SmlInfo.share i, SmlInfo.name i, ls,                      val s' = check (SmlInfo.share i, SmlInfo.name i, ls,
73                                      SmlInfo.error gp i)                                      SmlInfo.error gp i)
74                  in                  in
75                      smlmap := AbsPathMap.insert (!smlmap, p, s');                      smlmap := SmlInfoMap.insert (!smlmap, i, s');
76                      StringSet.union (s, s')                      StringSet.union (s, s')
77                  end                  end
         end  
78    
79          and sbn (DG.SB_BNODE n, s) = bn (n, s)          and sbn (DG.SB_BNODE n, s) = bn (n, s)
80            | sbn (DG.SB_SNODE n, s) = sn (n, s)            | sbn (DG.SB_SNODE n, s) = sn (n, s)

Legend:
Removed from v.303  
changed lines
  Added in v.320

root@smlnj-gforge.cs.uchicago.edu
ViewVC Help
Powered by ViewVC 1.0.0