diff -r 09ee9eb7a3d3 -r fd68c9c1b90b src/Pure/ML/ml_process.scala --- a/src/Pure/ML/ml_process.scala Tue Nov 17 16:54:49 2020 +0100 +++ b/src/Pure/ML/ml_process.scala Tue Nov 17 22:05:59 2020 +0100 @@ -78,40 +78,16 @@ val eval_options = if (heaps.isEmpty) Nil else List("Options.load_default ()") // session base - val init_session = Isabelle_System.tmp_file("init_session", ext = "ML") - val init_session_name = init_session.getAbsolutePath + val init_session = Isabelle_System.tmp_file("init_session") Isabelle_System.chmod("600", File.path(init_session)) - File.write(init_session, + val eval_init_session = session_base match { - case None => "" + case None => Nil case Some(base) => - def print_symbols: List[(String, Int)] => String = - ML_Syntax.print_list( - ML_Syntax.print_pair(ML_Syntax.print_string_bytes, ML_Syntax.print_int)) - def print_table: List[(String, String)] => String = - ML_Syntax.print_list( - ML_Syntax.print_pair( - ML_Syntax.print_string_bytes, ML_Syntax.print_string_bytes)) - def print_list: List[String] => String = - ML_Syntax.print_list(ML_Syntax.print_string_bytes) - def print_sessions: List[(String, Position.T)] => String = - ML_Syntax.print_list( - ML_Syntax.print_pair(ML_Syntax.print_string_bytes, ML_Syntax.print_properties)) - def print_bibtex_entries: List[(String, List[String])] => String = - ML_Syntax.print_list( - ML_Syntax.print_pair(ML_Syntax.print_string_bytes, - ML_Syntax.print_list(ML_Syntax.print_string_bytes))) - - "Resources.init_session" + - "{html_symbols = " + print_symbols(Symbol.codes) + - ", session_positions = " + print_sessions(sessions_structure.session_positions) + - ", session_directories = " + print_table(sessions_structure.dest_session_directories) + - ", session_chapters = " + print_table(sessions_structure.session_chapters) + - ", bibtex_entries = " + print_bibtex_entries(sessions_structure.bibtex_entries) + - ", docs = " + print_list(base.doc_names) + - ", global_theories = " + print_table(base.global_theories.toList) + - ", loaded_theories = " + print_list(base.loaded_theories.keys) + "}" - }) + File.write(init_session, new Resources(sessions_structure, base).init_session_yxml) + List("Resources.init_session_file (Path.explode " + + ML_Syntax.print_string_bytes(File.path(init_session).implode) + ")") + } // process val eval_process = @@ -144,9 +120,7 @@ // bash val bash_args = ml_runtime_options ::: - (eval_init ::: eval_modes ::: eval_options).flatMap(List("--eval", _)) ::: - List("--use", init_session_name, - "--eval", "OS.FileSys.remove " + ML_Syntax.print_string_bytes(init_session_name)) ::: + (eval_init ::: eval_modes ::: eval_options ::: eval_init_session).flatMap(List("--eval", _)) ::: use_prelude.flatMap(List("--use", _)) ::: List("--eval", eval_process) ::: args Bash.process(