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

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

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

revision 460, Wed Nov 3 02:23:44 1999 UTC revision 461, Thu Nov 4 08:06:56 1999 UTC
# Line 114  Line 114 
114          fun nofilter (ed: envdelta) = let          fun nofilter (ed: envdelta) = let
115              val { statenv, symenv, statpid, sympid } = ed              val { statenv, symenv, statpid, sympid } = ed
116          in          in
117              { envs = fn () => { stat = statenv (), sym = symenv () },              { envs = fn () => { stat = #env (statenv ()), sym = symenv () },
118                pids = pidset (statpid, sympid) }                pids = pidset (statpid, sympid) }
119          end          end
120    
# Line 123  Line 123 
123    
124          fun filter (ii, s) = let          fun filter (ii, s) = let
125              val { statenv, symenv, statpid, sympid } = ii              val { statenv, symenv, statpid, sympid } = ii
126              val ste = statenv ()              val { env = ste, ctxt } = statenv ()
127          in          in
128              if exportsNothingBut s ste then              if exportsNothingBut s ste then
129                  { envs = fn () => { stat = ste, sym = symenv () },                  { envs = fn () => { stat = ste, sym = symenv () },
# Line 138  Line 138 
138                              (* We re-pickle the filtered ste relative to                              (* We re-pickle the filtered ste relative to
139                               * the original one.  This should give a fairly                               * the original one.  This should give a fairly
140                               * minimal pickle. *)                               * minimal pickle. *)
141                              val statpid' =                              val statpid' = GenericVC.Rehash.rehash
142                                  GenericVC.MakePid.makePid (ste, ste')                                  { context = ctxt,
143                                      env = GenericVC.CoerceEnv.es2bs ste',
144                                      orig_hash = statpid }
145                          in                          in
146                              filtermap :=                              filtermap :=
147                                FilterMap.insert (!filtermap, key, statpid');                                FilterMap.insert (!filtermap, key, statpid');
# Line 400  Line 402 
402                  val eo = layerwork k Concur.wait (SOME emptyEnv) eo_cl                  val eo = layerwork k Concur.wait (SOME emptyEnv) eo_cl
403              in              in
404                  case eo of                  case eo of
405                      NONE => NONE                      NONE => (Servers.reset false; NONE)
406                    | SOME e => SOME (#envs e ())                    | SOME e => SOME (#envs e ())
407              end              end
408              fun mkExport ie gp =              fun mkExport ie gp =
409                  case impexp gp ie of                  case impexp gp ie of
410                      NONE => NONE                      NONE => (Servers.reset false; NONE)
411                    | SOME e => SOME (#envs e ())                    | SOME e => SOME (#envs e ())
412          in          in
413              { group = group,              { group = group,
# Line 416  Line 418 
418              val { sbnode, ... } = mkTraversal (fn _ => fn _ => (),              val { sbnode, ... } = mkTraversal (fn _ => fn _ => (),
419                                                 fn _ => (),                                                 fn _ => (),
420                                                 fn _ => 0)                                                 fn _ => 0)
421                fun sbn_trav gp g = let
422                    val r = sbnode gp g
423                in
424                    if isSome r then () else Servers.reset false;
425                    r
426                end
427          in          in
428              sbnode              sbn_trav
429          end          end
430    
431          fun evict i =          fun evict i =

Legend:
Removed from v.460  
changed lines
  Added in v.461

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