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

Diff of /sml/trunk/src/cm/bootstrap/btcompile.sml

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

revision 1057, Fri Feb 8 17:31:02 2002 UTC revision 1058, Fri Feb 8 20:02:56 2002 UTC
# Line 149  Line 149 
149              FilenamePolicy.separate { bindir = bindir, bootdir = bootdir }              FilenamePolicy.separate { bindir = bindir, bootdir = bootdir }
150                  { arch = arch, os = os }                  { arch = arch, os = os }
151    
152          val param =          fun param slave_mode =
153              { fnpolicy = fnpolicy,              { fnpolicy = fnpolicy,
154                penv = penv,                penv = penv,
155                symval = SSV.symval,                symval = SSV.symval,
156                archos = archos,                archos = archos,
157                keep_going = keep_going }                keep_going = keep_going,
158                  slave_mode = slave_mode }
159    
160          val emptydyn = DynamicEnv.empty          val emptydyn = DynamicEnv.empty
161    
# Line 163  Line 164 
164    
165          val groupreg = GroupReg.new ()          val groupreg = GroupReg.new ()
166          val errcons = EM.defaultConsumer ()          val errcons = EM.defaultConsumer ()
167          val ginfo = { param = param, groupreg = groupreg,          val ginfo = { param = param false, groupreg = groupreg,
168                        errcons = errcons,                        errcons = errcons,
169                        youngest = ref TStamp.ancient }                        youngest = ref TStamp.ancient }
170    
# Line 172  Line 173 
173              val { pervasive = perv_n, others, src } = arg              val { pervasive = perv_n, others, src } = arg
174    
175              fun recompInitGroup () = let              fun recompInitGroup () = let
176                    val _ = UniquePid.reset ()
177                  val ovldR = Control.overloadKW                  val ovldR = Control.overloadKW
178                  val savedOvld = !ovldR                  val savedOvld = !ovldR
179                  val _ = ovldR := true                  val _ = ovldR := true
# Line 215  Line 217 
217                             (* hack: sources never used for this group *)                             (* hack: sources never used for this group *)
218                             sources = SrcPathMap.empty,                             sources = SrcPathMap.empty,
219                             sublibs = [] }                             sublibs = [] }
220                  before (ovldR := savedOvld)                  before (ovldR := savedOvld; UniquePid.sync ginfo)
221              end              end
222    
223              (* just go and load the stable init group or signal failure *)              (* just go and load the stable init group or signal failure *)
# Line 276  Line 278 
278              val gr = GroupReg.new ()              val gr = GroupReg.new ()
279              val _ = GroupReg.register gr (initgspec, src)              val _ = GroupReg.register gr (initgspec, src)
280    
281              fun parse_arg (s, p) =              fun parse_arg0 slave_mode (s, p) =
282                  { load_plugin = load_plugin,                  { load_plugin = load_plugin,
283                    gr = gr,                    gr = gr,
284                    param = param,                    param = param slave_mode,
285                    stabflag = s,                    stabflag = s,
286                    group = maingspec,                    group = maingspec,
287                    init_group = init_group,                    init_group = init_group,
288                    paranoid = p }                    paranoid = p }
289    
290                val parse_arg = parse_arg0 false
291                val slave_parse_arg = parse_arg0 true
292    
293              val lonely_master = master andalso Servers.noServers ()              val lonely_master = master andalso Servers.noServers ()
294    
295              val initial_parse_result =              val initial_parse_result =
# Line 318  Line 323 
323                          end                          end
324                  else                  else
325                      (* slave case *)                      (* slave case *)
326                      Parse.parse (parse_arg (NONE, false))                      Parse.parse (slave_parse_arg (NONE, false))
327          in          in
328              case initial_parse_result of              case initial_parse_result of
329                  NONE => NONE                  NONE => NONE
# Line 382  Line 387 
387                       * executed in slave mode *)                       * executed in slave mode *)
388                      fun stabilize () =                      fun stabilize () =
389                          (* now we re-parse everything with stabilization                          (* now we re-parse everything with stabilization
390                           * turnedon (and servers turned off *)                           * turned on (and servers turned off) *)
391                          case Parse.parse (parse_arg (SOME true, false)) of                          case Parse.parse (parse_arg (SOME true, false)) of
392                              NONE => false                              NONE => false
393                            | SOME (g, gp) => finish (g, gp)                            | SOME (g, gp) => finish (g, gp)

Legend:
Removed from v.1057  
changed lines
  Added in v.1058

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