diff -r f7c9a1be333f -r cc0b3e177b49 src/Tools/jEdit/src/jedit_sessions.scala --- a/src/Tools/jEdit/src/jedit_sessions.scala Fri Mar 01 20:16:26 2019 +0100 +++ b/src/Tools/jEdit/src/jedit_sessions.scala Fri Mar 01 21:29:59 2019 +0100 @@ -18,19 +18,28 @@ { /* session options */ - def session_options(options: Options): Options = - Isabelle_System.getenv("JEDIT_ML_PROCESS_POLICY") match { - case "" => options - case s => options.string.update("ML_process_policy", s) - } - def session_dirs(): List[Path] = Path.split(Isabelle_System.getenv("JEDIT_SESSION_DIRS")) - def session_build_mode(): String = Isabelle_System.getenv("JEDIT_BUILD_MODE") + def session_no_build(): Boolean = + Isabelle_System.getenv("JEDIT_NO_BUILD") == "true" - def session_system_mode(): Boolean = - session_build_mode() match { case "" | "system" => true case _ => false } + def session_options(options: Options): Options = + { + val options1 = + Isabelle_System.getenv("JEDIT_BUILD_MODE") match { + case "default" => options + case mode => options.bool.update("system_heaps", mode == "" | mode == "system") + } + + val options2 = + Isabelle_System.getenv("JEDIT_ML_PROCESS_POLICY") match { + case "" => options1 + case s => options1.string.update("ML_process_policy", s) + } + + options2 + } def sessions_structure(options: Options, dirs: List[Path] = session_dirs()): Sessions.Structure = Sessions.load_structure(session_options(options), dirs = dirs) @@ -123,17 +132,18 @@ options: Options, progress: Progress = No_Progress, no_build: Boolean = false): Int = { Build.build(session_options(options), progress = progress, build_heap = true, - no_build = no_build, system_mode = session_system_mode(), - dirs = session_dirs(), infos = PIDE.resources.session_base_info.infos, + no_build = no_build, dirs = session_dirs(), infos = PIDE.resources.session_base_info.infos, sessions = List(PIDE.resources.session_name)).rc } - def session_start(options: Options) + def session_start(options0: Options) { - Isabelle_Process.start(PIDE.session, session_options(options), + val options = session_options(options0) + + Isabelle_Process.start(PIDE.session, options, sessions_structure = Some(PIDE.resources.session_base_info.sessions_structure), logic = PIDE.resources.session_name, - store = Some(Sessions.store(options, session_system_mode())), + store = Some(Sessions.store(options)), modes = (space_explode(',', options.string("jedit_print_mode")) ::: space_explode(',', Isabelle_System.getenv("JEDIT_PRINT_MODE"))).reverse,