equal
deleted
inserted
replaced
60 val session_sources: Sessions.Sources = |
60 val session_sources: Sessions.Sources = |
61 Sessions.Sources.load(session_background.base, cache = store.cache.compress) |
61 Sessions.Sources.load(session_background.base, cache = store.cache.compress) |
62 |
62 |
63 private lazy val future_result: Future[Process_Result] = |
63 private lazy val future_result: Future[Process_Result] = |
64 Future.thread("build", uninterruptible = true) { |
64 Future.thread("build", uninterruptible = true) { |
65 Exn.Interrupt.expose() |
|
66 |
|
67 val parent = info.parent.getOrElse("") |
65 val parent = info.parent.getOrElse("") |
68 |
66 |
69 val env = |
67 val env = |
70 Isabelle_System.settings( |
68 Isabelle_System.settings( |
71 List("ISABELLE_ML_DEBUGGER" -> options.bool("ML_debugger").toString)) |
69 List("ISABELLE_ML_DEBUGGER" -> options.bool("ML_debugger").toString)) |
269 session_setup(session_name, session) |
267 session_setup(session_name, session) |
270 |
268 |
271 val eval_main = Command_Line.ML_tool("Isabelle_Process.init_build ()" :: eval_store) |
269 val eval_main = Command_Line.ML_tool("Isabelle_Process.init_build ()" :: eval_store) |
272 |
270 |
273 val process = |
271 val process = |
274 Isabelle_Thread.uninterruptible { |
272 Isabelle_Process.start(store, options, session, session_background, |
275 Isabelle_Process.start(store, options, session, session_background, |
273 logic = parent, raw_ml_system = is_pure, |
276 logic = parent, raw_ml_system = is_pure, |
274 use_prelude = use_prelude, eval_main = eval_main, |
277 use_prelude = use_prelude, eval_main = eval_main, |
275 cwd = info.dir.file, env = env) |
278 cwd = info.dir.file, env = env) |
|
279 } |
|
280 |
276 |
281 val build_errors = |
277 val build_errors = |
282 Isabelle_Thread.interrupt_handler(_ => process.terminate()) { |
278 Isabelle_Thread.interrupt_handler(_ => process.terminate()) { |
283 Exn.capture { process.await_startup() } match { |
279 Exn.capture { process.await_startup() } match { |
284 case Exn.Res(_) => |
280 case Exn.Res(_) => |