equal
deleted
inserted
replaced
11 import java.io.{File => JFile} |
11 import java.io.{File => JFile} |
12 |
12 |
13 |
13 |
14 object ML_Process { |
14 object ML_Process { |
15 def apply(options: Options, |
15 def apply(options: Options, |
16 base_info: Sessions.Base_Info, |
16 background: Sessions.Background, |
17 store: Sessions.Store, |
17 store: Sessions.Store, |
18 logic: String = "", |
18 logic: String = "", |
19 raw_ml_system: Boolean = false, |
19 raw_ml_system: Boolean = false, |
20 use_prelude: List[String] = Nil, |
20 use_prelude: List[String] = Nil, |
21 eval_main: String = "", |
21 eval_main: String = "", |
29 val logic_name = Isabelle_System.default_logic(logic) |
29 val logic_name = Isabelle_System.default_logic(logic) |
30 |
30 |
31 val heaps: List[String] = |
31 val heaps: List[String] = |
32 if (raw_ml_system) Nil |
32 if (raw_ml_system) Nil |
33 else { |
33 else { |
34 base_info.sessions_structure.selection(logic_name). |
34 background.sessions_structure.selection(logic_name). |
35 build_requirements(List(logic_name)). |
35 build_requirements(List(logic_name)). |
36 map(a => File.platform_path(store.the_heap(a))) |
36 map(a => File.platform_path(store.the_heap(a))) |
37 } |
37 } |
38 |
38 |
39 val eval_init = |
39 val eval_init = |
78 |
78 |
79 // session resources |
79 // session resources |
80 val eval_init_session = if (raw_ml_system) Nil else List("Resources.init_session_env ()") |
80 val eval_init_session = if (raw_ml_system) Nil else List("Resources.init_session_env ()") |
81 val init_session = Isabelle_System.tmp_file("init_session") |
81 val init_session = Isabelle_System.tmp_file("init_session") |
82 Isabelle_System.chmod("600", File.path(init_session)) |
82 Isabelle_System.chmod("600", File.path(init_session)) |
83 val resources = new Resources(base_info.sessions_structure, base_info.base) |
83 val resources = new Resources(background.sessions_structure, background.base) |
84 File.write(init_session, resources.init_session_yxml) |
84 File.write(init_session, resources.init_session_yxml) |
85 |
85 |
86 // process |
86 // process |
87 val eval_process = |
87 val eval_process = |
88 proper_string(eval_main).getOrElse( |
88 proper_string(eval_main).getOrElse( |
167 "o:" -> (arg => options = options + arg)) |
167 "o:" -> (arg => options = options + arg)) |
168 |
168 |
169 val more_args = getopts(args) |
169 val more_args = getopts(args) |
170 if (args.isEmpty || more_args.nonEmpty) getopts.usage() |
170 if (args.isEmpty || more_args.nonEmpty) getopts.usage() |
171 |
171 |
172 val base_info = Sessions.base_info(options, logic, dirs = dirs).check_errors |
172 val background = Sessions.background(options, logic, dirs = dirs).check_errors |
173 val store = Sessions.store(options) |
173 val store = Sessions.store(options) |
174 val result = |
174 val result = |
175 ML_Process(options, base_info, store, logic = logic, args = eval_args, modes = modes) |
175 ML_Process(options, background, store, logic = logic, args = eval_args, modes = modes) |
176 .result( |
176 .result( |
177 progress_stdout = Output.writeln(_, stdout = true), |
177 progress_stdout = Output.writeln(_, stdout = true), |
178 progress_stderr = Output.writeln(_)) |
178 progress_stderr = Output.writeln(_)) |
179 |
179 |
180 sys.exit(result.rc) |
180 sys.exit(result.rc) |