src/Pure/Tools/build.scala
changeset 71598 269dc4bf1f40
parent 71597 d025735a4090
child 71601 97ccf48c2f0c
equal deleted inserted replaced
71597:d025735a4090 71598:269dc4bf1f40
   248           val handler = new Handler(progress, session, name)
   248           val handler = new Handler(progress, session, name)
   249           session.init_protocol_handler(handler)
   249           session.init_protocol_handler(handler)
   250 
   250 
   251           val session_result = Future.promise[Process_Result]
   251           val session_result = Future.promise[Process_Result]
   252 
   252 
   253           Isabelle_Process(session, options, sessions_structure,
   253           Isabelle_Process(session, options, sessions_structure, store,
   254             logic = parent, cwd = info.dir.file, env = env, store = Some(store),
   254             logic = parent, cwd = info.dir.file, env = env,
   255             phase_changed =
   255             phase_changed =
   256             {
   256             {
   257               case Session.Ready => session.protocol_command("build_session", args_yxml)
   257               case Session.Ready => session.protocol_command("build_session", args_yxml)
   258               case Session.Terminated(result) => session_result.fulfill(result)
   258               case Session.Terminated(result) => session_result.fulfill(result)
   259               case _ =>
   259               case _ =>
   278             (if (Sessions.is_pure(name)) "; Theory.install_pure (Thy_Info.get_theory Context.PureN)"
   278             (if (Sessions.is_pure(name)) "; Theory.install_pure (Thy_Info.get_theory Context.PureN)"
   279              else "") + (if (do_output) "; " + save_heap else "") + "));"
   279              else "") + (if (do_output) "; " + save_heap else "") + "));"
   280 
   280 
   281           val process =
   281           val process =
   282             if (Sessions.is_pure(name)) {
   282             if (Sessions.is_pure(name)) {
   283               ML_Process(options, deps.sessions_structure, raw_ml_system = true,
   283               ML_Process(options, deps.sessions_structure, store, raw_ml_system = true,
   284                 args =
   284                 args =
   285                   (for ((root, _) <- Thy_Header.ml_roots) yield List("--use", root)).flatten :::
   285                   (for ((root, _) <- Thy_Header.ml_roots) yield List("--use", root)).flatten :::
   286                     List("--eval", eval),
   286                     List("--eval", eval),
   287                 cwd = info.dir.file, env = env, store = Some(store),
   287                 cwd = info.dir.file, env = env, cleanup = () => args_file.delete)
   288                 cleanup = () => args_file.delete)
       
   289             }
   288             }
   290             else {
   289             else {
   291               ML_Process(options, deps.sessions_structure, logic = parent, args = List("--eval", eval),
   290               ML_Process(options, deps.sessions_structure, store, logic = parent,
   292                 cwd = info.dir.file, env = env, store = Some(store),
   291                 args = List("--eval", eval),
   293                 cleanup = () => args_file.delete)
   292                 cwd = info.dir.file, env = env, cleanup = () => args_file.delete)
   294             }
   293             }
   295 
   294 
   296           process.result(
   295           process.result(
   297             progress_stdout = (line: String) =>
   296             progress_stdout = (line: String) =>
   298               Library.try_unprefix("\floading_theory = ", line) match {
   297               Library.try_unprefix("\floading_theory = ", line) match {