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

Diff of /sml/trunk/src/cm/stable/stabilize.sml

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

revision 360, Tue Jun 29 09:21:02 1999 UTC revision 361, Wed Jun 30 06:44:04 1999 UTC
# Line 319  Line 319 
319              val sz = size pickle              val sz = size pickle
320              val offset_adjustment = sz + 4              val offset_adjustment = sz + 4
321    
322              fun mkStableGroup sname = let              fun mkStableGroup mksname = let
323                  val m = ref SmlInfoMap.empty                  val m = ref SmlInfoMap.empty
324                  fun sn (DG.SNODE (n as { smlinfo, ... })) =                  fun sn (DG.SNODE (n as { smlinfo, ... })) =
325                      case SmlInfoMap.find (!m, smlinfo) of                      case SmlInfoMap.find (!m, smlinfo) of
# Line 337  Line 337 
337                              val locs = SmlInfo.errorLocation gp smlinfo                              val locs = SmlInfo.errorLocation gp smlinfo
338                              val error = EM.errorNoSource grpSrcInfo locs                              val error = EM.errorNoSource grpSrcInfo locs
339                              val i = BinInfo.new { group = grouppath,                              val i = BinInfo.new { group = grouppath,
340                                                    stablename = sname,                                                    mkStablename = mksname,
341                                                    spec = spec,                                                    spec = spec,
342                                                    offset = offset,                                                    offset = offset,
343                                                    share = share,                                                    share = share,
# Line 376  Line 376 
376              val memberlist = rev (!members)              val memberlist = rev (!members)
377    
378              val gpath = #grouppath grec              val gpath = #grouppath grec
379              val sname = FilenamePolicy.mkStableName policy gpath              fun mksname () = FilenamePolicy.mkStableName policy gpath
380              fun work outs =              fun work outs =
381                  (Say.vsay ["[stabilizing ", SrcPath.descr gpath, "]\n"];                  (Say.vsay ["[stabilizing ", SrcPath.descr gpath, "]\n"];
382                   writeInt32 (outs, sz);                   writeInt32 (outs, sz);
383                   BinIO.output (outs, Byte.stringToBytes pickle);                   BinIO.output (outs, Byte.stringToBytes pickle);
384                   app (cpb outs) memberlist;                   app (cpb outs) memberlist;
385                   mkStableGroup sname)                   mkStableGroup mksname)
386          in          in
387              SOME (SafeIO.perform { openIt = fn () => AutoDir.openBinOut sname,              SOME (SafeIO.perform { openIt = AutoDir.openBinOut o mksname,
388                                     closeIt = BinIO.closeOut,                                     closeIt = BinIO.closeOut,
389                                     work = work,                                     work = work,
390                                     cleanup = fn () =>                                     cleanup = fn () =>
391                                      (OS.FileSys.remove sname handle _ => ()) })                                      (OS.FileSys.remove (mksname ())
392                                         handle _ => ()) })
393              handle exn => NONE              handle exn => NONE
394          end          end
395      in      in
# Line 454  Line 455 
455          val pcmode = #pcmode (#param gp)          val pcmode = #pcmode (#param gp)
456          val policy = #fnpolicy (#param gp)          val policy = #fnpolicy (#param gp)
457          val primconf = #primconf (#param gp)          val primconf = #primconf (#param gp)
458          val sname = FilenamePolicy.mkStableName policy group          fun mksname () = FilenamePolicy.mkStableName policy group
459          val _ = Say.vsay ["[checking stable ", gdescr, "]\n"]          val _ = Say.vsay ["[checking stable ", gdescr, "]\n"]
460    
461          fun work s = let          fun work s = let
# Line 609  Line 610 
610                  val error = EM.errorNoSource grpSrcInfo locs                  val error = EM.errorNoSource grpSrcInfo locs
611              in              in
612                  BinInfo.new { group = group,                  BinInfo.new { group = group,
613                                stablename = sname,                                mkStablename = mksname,
614                                error = error,                                error = error,
615                                spec = spec,                                spec = spec,
616                                offset = offset,                                offset = offset,
# Line 693  Line 694 
694                         sublibs = sublibs }                         sublibs = sublibs }
695          end          end
696      in      in
697          SOME (SafeIO.perform { openIt = fn () => BinIO.openIn sname,          SOME (SafeIO.perform { openIt = BinIO.openIn o mksname,
698                                 closeIt = BinIO.closeIn,                                 closeIt = BinIO.closeIn,
699                                 work = work,                                 work = work,
700                                 cleanup = fn () => () })                                 cleanup = fn () => () })

Legend:
Removed from v.360  
changed lines
  Added in v.361

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