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 353, Thu Jun 24 09:43:28 1999 UTC revision 354, Fri Jun 25 08:36:12 1999 UTC
# Line 143  Line 143 
143    
144      fun dostable (i, mkenv, gp: GeneralParams.info) = let      fun dostable (i, mkenv, gp: GeneralParams.info) = let
145          fun load be = let          fun load be = let
146              val stable = BinInfo.stablepath i              val stable = BinInfo.stablename i
147              val os = BinInfo.offset i              val os = BinInfo.offset i
148              val descr = BinInfo.describe i              val descr = BinInfo.describe i
149              val _ = Say.vsay ["[consulting ", descr, "]\n"]              val _ = Say.vsay ["[consulting ", descr, "]\n"]
# Line 157  Line 157 
157                  memo2envdelta memo                  memo2envdelta memo
158              end              end
159          in          in
160              SOME (SafeIO.perform { openIt = fn () => AbsPath.openBinIn stable,              SOME (SafeIO.perform { openIt = fn () => BinIO.openIn stable,
161                                     closeIt = BinIO.closeIn,                                     closeIt = BinIO.closeIn,
162                                     work = work,                                     work = work,
163                                     cleanup = fn () => () })                                     cleanup = fn () => () })
# Line 186  Line 186 
186          case Option.map memo2envdelta (PS.recomp_look_sml (i, pids, gp)) of          case Option.map memo2envdelta (PS.recomp_look_sml (i, pids, gp)) of
187              SOME d => SOME d              SOME d => SOME d
188            | NONE => let            | NONE => let
189                  val binpath = SmlInfo.binpath i                  val binname = SmlInfo.binname i
                 val binname = AbsPath.name binpath  
190                  val { stat, sym } = envs ()                  val { stat, sym } = envs ()
191    
192                  fun save bfc = let                  fun save bfc = let
# Line 195  Line 194 
194                          (BF.write { stream = s, content = bfc,                          (BF.write { stream = s, content = bfc,
195                                      keep_code = true };                                      keep_code = true };
196                           Say.vsay ["[wrote ", binname, "]\n"])                           Say.vsay ["[wrote ", binname, "]\n"])
197                      fun cleanup () = AbsPath.delete binpath                      fun cleanup () = OS.FileSys.remove binname handle _ => ()
198                  in                  in
199                      SafeIO.perform { openIt =                      SafeIO.perform { openIt =
200                                           fn () => AbsPath.openBinOut binpath,                                            fn () => AutoDir.openBinOut binname,
201                                       closeIt = BinIO.closeOut,                                       closeIt = BinIO.closeOut,
202                                       work = writer,                                       work = writer,
203                                       cleanup = cleanup }                                       cleanup = cleanup }
# Line 210  Line 209 
209                          SmlInfo.error gp i EM.WARN                          SmlInfo.error gp i EM.WARN
210                                   ("failed to write " ^ binname) ppb                                   ("failed to write " ^ binname) ppb
211                      end;                      end;
212                      AbsPath.setTime (binpath, SmlInfo.lastseen i)                      TStamp.setTime (binname, SmlInfo.lastseen i)
213                  end                  end
214    
215                  fun load () = let                  fun load () = let
216                      val bin_ts = AbsPath.tstamp binpath                      val bin_ts = TStamp.fmodTime binname
217                      fun openIt () = AbsPath.openBinIn binpath                      fun openIt () = BinIO.openIn binname
218                      fun reader s = BF.read { stream = s, name = binname,                      fun reader s = BF.read { stream = s, name = binname,
219                                               senv = stat, keep_code = true }                                               senv = stat, keep_code = true }
220                  in                  in
# Line 234  Line 233 
233                      case SmlInfo.parsetree gp i of                      case SmlInfo.parsetree gp i of
234                          NONE => NONE                          NONE => NONE
235                        | SOME (ast, source) => let                        | SOME (ast, source) => let
236                              val _ = Say.vsay ["[compiling ", SmlInfo.name i,                              val _ = Say.vsay ["[compiling ", SmlInfo.descr i,
237                                                " -> ", binname, "...]\n"]                                                " -> ", binname, "...]\n"]
238                              val corenv = #corenv (#param gp)                              val corenv = #corenv (#param gp)
239                              val cmData = PidSet.listItems pids                              val cmData = PidSet.listItems pids
# Line 264  Line 263 
263                                     in                                     in
264                                         SmlInfo.error gp i EM.COMPLAIN                                         SmlInfo.error gp i EM.COMPLAIN
265                                            ("exception raised while compiling "                                            ("exception raised while compiling "
266                                             ^ SmlInfo.name i)                                             ^ SmlInfo.descr i)
267                                            ppb;                                            ppb;
268                                         NONE                                         NONE
269                                     end                                     end

Legend:
Removed from v.353  
changed lines
  Added in v.354

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