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 666, Fri Jun 16 08:27:00 2000 UTC revision 677, Mon Jun 26 00:56:56 2000 UTC
# Line 49  Line 49 
49    
50      functor CompileFn (structure MachDepVC : MACHDEP_VC      functor CompileFn (structure MachDepVC : MACHDEP_VC
51                         structure StabModmap : STAB_MODMAP                         structure StabModmap : STAB_MODMAP
52                           val useStream : TextIO.instream -> unit
53                         val compile_there : SrcPath.file -> bool) :>                         val compile_there : SrcPath.file -> bool) :>
54          COMPILE where type bfc = MachDepVC.Binfile.bfContent =          COMPILE where type bfc = MachDepVC.Binfile.bfContent =
55      struct      struct
# Line 211  Line 212 
212                      if #keep_going (#param gp) then NONE else raise Abort                      if #keep_going (#param gp) then NONE else raise Abort
213    
214                  fun compile_here (stat, sym, pids, split) = let                  fun compile_here (stat, sym, pids, split) = let
215                        fun perform_setup _ NONE = ()
216                          | perform_setup what (SOME code) =
217                            (Say.vsay ["[setup (", what, "): ", code, "]\n"];
218                             SafeIO.perform
219                                 { openIt = fn () => TextIO.openString code,
220                                   closeIt = TextIO.closeIn,
221                                   work = useStream,
222                                   cleanup = fn _ => () })
223                      fun save bfc = let                      fun save bfc = let
224                          fun writer s =                          fun writer s =
225                              (BF.write { stream = s, content = bfc,                              (BF.write { stream = s, content = bfc,
# Line 244  Line 253 
253                                      NONE => ast                                      NONE => ast
254                                    | SOME sy => CoreHack.rewrite (ast, sy)                                    | SOME sy => CoreHack.rewrite (ast, sy)
255                              val cmData = PidSet.listItems pids                              val cmData = PidSet.listItems pids
256                                val (pre, post) = SmlInfo.setup i
257                                val toplenv = #get GenericVC.EnvRef.topLevel ()
258                                              before perform_setup "pre" pre
259                              (* clear error flag (could still be set from                              (* clear error flag (could still be set from
260                               * earlier run) *)                               * earlier run) *)
261                              val _ = #anyErrors source := false                              val _ = #anyErrors source := false
# Line 256  Line 268 
268                                    symenv = sym }                                    symenv = sym }
269                              val memo = bfc2memo (bfc, SmlInfo.lastseen i)                              val memo = bfc2memo (bfc, SmlInfo.lastseen i)
270                          in                          in
271                                perform_setup "post" post;
272                                #set GenericVC.EnvRef.topLevel toplenv;
273                              save bfc;                              save bfc;
274                              storeBFC (i, bfc);                              storeBFC (i, bfc);
275                              SOME memo                              SOME memo

Legend:
Removed from v.666  
changed lines
  Added in v.677

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