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/parse/parse.sml
ViewVC logotype

Diff of /sml/trunk/src/cm/parse/parse.sml

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

revision 651, Thu Jun 1 18:34:03 2000 UTC revision 652, Tue Jun 6 02:14:56 2000 UTC
# Line 63  Line 63 
63          let val changed = ref true          let val changed = ref true
64              fun canStay GG.ERRORGROUP = true (* doesn't matter *)              fun canStay GG.ERRORGROUP = true (* doesn't matter *)
65                | canStay (GG.GROUP { sublibs, ... }) = let                | canStay (GG.GROUP { sublibs, ... }) = let
66                      fun goodSublib (p, GG.GROUP {                      fun goodSublib (p, gth) =
67                              kind = GG.LIB { kind = GG.STABLE _, ... }, ... }) =                          case gth () of
68                                GG.GROUP { kind = GG.LIB { kind = GG.STABLE _,
69                                                           ... }, ... } =>
70                          SrcPath.compare (p, igp) = EQUAL orelse                          SrcPath.compare (p, igp) = EQUAL orelse
71                          SrcPathMap.inDomain (!sgc, p)                          SrcPathMap.inDomain (!sgc, p)
72                        | goodSublib _ = true                            | _ => true
73                      val cs = List.all goodSublib sublibs                      val cs = List.all goodSublib sublibs
74                  in                  in
75                      if cs then () else changed := true;                      if cs then () else changed := true;
# Line 125  Line 127 
127    
128          fun update_em (GG.GROUP ns_g, GG.GROUP s_g) =          fun update_em (GG.GROUP ns_g, GG.GROUP s_g) =
129              let val s_e = #exports s_g              let val s_e = #exports s_g
130                  fun add (sy, ((_ , DG.SB_SNODE (DG.SNODE sn)), _)) =                  fun add (sy, (snth, _, _)) =
131                        case snth () of
132                            (_ , DG.SB_SNODE (DG.SNODE sn)) =>
133                      (case SymbolMap.find (s_e, sy) of                      (case SymbolMap.find (s_e, sy) of
134                           SOME ((_, DG.SB_BNODE (DG.BNODE bn, _)), _) =>                               NONE => ()
135                           em := StableMap.insert (!em, #bininfo bn, #smlinfo sn)                             | SOME (bnth, _, _) =>
136                         | _ => ())                               (case bnth () of
137                    | add _ = ()                                    (_, DG.SB_BNODE (DG.BNODE bn, _)) =>
138                                      em := StableMap.insert (!em, #bininfo bn,
139                                                              #smlinfo sn)
140                                    | _ => ()))
141                          | _ => ()
142              in              in
143                  SymbolMap.appi add (#exports ns_g)                  SymbolMap.appi add (#exports ns_g)
144              end              end

Legend:
Removed from v.651  
changed lines
  Added in v.652

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