35 |
|
|
36 |
(* instantiate Stabilize... *) |
(* instantiate Stabilize... *) |
37 |
structure Stabilize = |
structure Stabilize = |
38 |
StabilizeFn (fun destroy_state _ i = Compile.evict i |
StabilizeFn (fun destroy_state _ i = |
39 |
|
(Compile.evict i; |
40 |
|
Servers.evict i) |
41 |
structure MachDepVC = MachDepVC |
structure MachDepVC = MachDepVC |
42 |
fun recomp gp g = let |
fun recomp gp g = let |
43 |
val { store, get } = BFC.new () |
val { store, get } = BFC.new () |
236 |
{ corenv = corenv } |
{ corenv = corenv } |
237 |
val stab = |
val stab = |
238 |
if deliver then SOME true else NONE |
if deliver then SOME true else NONE |
|
|
|
|
(* We need to announce the project here because Parse.parse |
|
|
* may already invoke the compiler (because of "deliver"). *) |
|
|
val _ = Servers.cmb dirbase |
|
239 |
in |
in |
240 |
|
Servers.cmb dirbase; |
241 |
case Parse.parse NONE param stab maingspec of |
case Parse.parse NONE param stab maingspec of |
242 |
NONE => NONE |
NONE => NONE |
243 |
| SOME (g, gp) => let |
| SOME (g, gp) => let |
312 |
fun compile deliver dbopt = |
fun compile deliver dbopt = |
313 |
case mk_compile deliver dbopt of |
case mk_compile deliver dbopt of |
314 |
NONE => false |
NONE => false |
315 |
| SOME (_, thunk) => thunk () before Servers.waitforall () |
| SOME (_, thunk) => thunk () before Servers.reset () |
316 |
|
|
317 |
local |
local |
318 |
fun slave dirbase = |
fun slave dirbase = |
322 |
val trav = Compile.newSbnodeTraversal () gp |
val trav = Compile.newSbnodeTraversal () gp |
323 |
fun trav' sbn = isSome (trav sbn) |
fun trav' sbn = isSome (trav sbn) |
324 |
in |
in |
325 |
SOME (g, gp, trav') |
SOME (g, trav', Compile.evict) |
326 |
end |
end |
327 |
in |
in |
328 |
val _ = CMBSlaveHook.init slave |
val _ = CMBSlaveHook.init slave |