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

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

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

revision 368, Sat Jul 3 13:05:59 1999 UTC revision 369, Sun Jul 4 12:55:20 1999 UTC
# Line 13  Line 13 
13    
14      structure MachDepVC = PS.MachDepVC      structure MachDepVC = PS.MachDepVC
15      structure E = GenericVC.Environment      structure E = GenericVC.Environment
16      structure PID = GenericVC.PersStamps      structure Pid = GenericVC.PersStamps
17      structure BF = MachDepVC.Binfile      structure BF = MachDepVC.Binfile
18      structure PP = PrettyPrint      structure PP = PrettyPrint
19      structure EM = GenericVC.ErrorMsg      structure EM = GenericVC.ErrorMsg
20      structure DE = GenericVC.DynamicEnv      structure DE = GenericVC.DynamicEnv
21    
22      type pid = PID.persstamp      type pid = Pid.persstamp
23        type bfc = BF.bfContent
24    
25      type statenv = E.staticEnv      type statenv = E.staticEnv
26      type symenv = E.symenv      type symenv = E.symenv
# Line 43  Line 44 
44    
45      type 'e wpid = 'e * pid      type 'e wpid = 'e * pid
46    
47      type envdelta = { stat: statenv wpid, sym: symenv wpid, ctxt: statenv }      (* bfc will be NONE for primitives, SOME ... for anybody else *)
48        type envdelta = { stat: statenv wpid, sym: symenv wpid, ctxt: statenv,
49                          bfc: bfc option }
50    
51      type memorecord = { bfc: BF.bfContent, ctxt: statenv }      type memorecord = { bfc: bfc, ctxt: statenv }
52    
53      structure FilterMap = BinaryMapFn      structure FilterMap = BinaryMapFn
54          (struct          (struct
55              type ord_key = pid * SymbolSet.set              type ord_key = pid * SymbolSet.set
56              fun compare ((u, f), (u', f')) =              fun compare ((u, f), (u', f')) =
57                  case PID.compare (u, u') of                  case Pid.compare (u, u') of
58                      EQUAL => SymbolSet.compare (f, f')                      EQUAL => SymbolSet.compare (f, f')
59                    | unequal => unequal                    | unequal => unequal
60          end)          end)
# Line 125  Line 128 
128      in      in
129          { stat = (E.staticPart e, statpid),          { stat = (E.staticPart e, statpid),
130            sym = (E.symbolicPart e, sympid),            sym = (E.symbolicPart e, sympid),
131            ctxt = ctxt }            ctxt = ctxt,
132              bfc = NONE }
133      end      end
134    
135      fun pervasive (gp: GeneralParams.info) = let      fun pervasive (gp: GeneralParams.info) = let
# Line 141  Line 145 
145      fun memo2envdelta { bfc, ctxt } =      fun memo2envdelta { bfc, ctxt } =
146          { stat = (BF.senvOf bfc, BF.staticPidOf bfc),          { stat = (BF.senvOf bfc, BF.staticPidOf bfc),
147            sym = (BF.symenvOf bfc, BF.lambdaPidOf bfc),            sym = (BF.symenvOf bfc, BF.lambdaPidOf bfc),
148            ctxt = ctxt }            ctxt = ctxt, bfc = SOME bfc }
149    
150      fun dostable (i, mkenv, gp: GeneralParams.info) = let      fun dostable (i, mkenv, gp: GeneralParams.info, bn) = let
151          fun load be = let          fun load be = let
152              val stable = BinInfo.stablename i              val stable = BinInfo.stablename i
153              val os = BinInfo.offset i              val os = BinInfo.offset i
# Line 182  Line 186 
186                     | SOME be => load (be ()))                     | SOME be => load (be ()))
187      end      end
188    
189      fun dosml (i, { envs, pids }, gp) = let      fun dosml (i, { envs, pids }, gp, sn) = let
190          val pids = PidSet.union (pids, #pervcorepids (#param gp))          val pids = PidSet.union (pids, #pervcorepids (#param gp))
191      in      in
192          case Option.map memo2envdelta (PS.recomp_look_sml (i, pids, gp)) of          case Option.map memo2envdelta (PS.recomp_look_sml (i, pids, gp)) of
# Line 287  Line 291 
291                          else compile ()                          else compile ()
292              end              end
293      end      end
294    
295        fun nestedTraversalReset () = ()
296  end  end

Legend:
Removed from v.368  
changed lines
  Added in v.369

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