aboutsummaryrefslogtreecommitdiff
path: root/toplevel/workerLoop.ml
diff options
context:
space:
mode:
authorThéo Zimmermann2018-05-22 10:30:51 +0200
committerThéo Zimmermann2018-05-22 10:30:51 +0200
commit61e088161858fa7e6ff494cadd7362b9deccd438 (patch)
treea88bf6867103dbf87d701cc2e2205e67b5f4e7d0 /toplevel/workerLoop.ml
parentd6eb4a26648817f6b034e95c02622cadf0fa65ca (diff)
parentdb1719fbac08b5582fafddd4b76ef92f69cc5bc1 (diff)
Merge PR #6859: [stm] Make toplevels standalone executables.
Diffstat (limited to 'toplevel/workerLoop.ml')
-rw-r--r--toplevel/workerLoop.ml29
1 files changed, 29 insertions, 0 deletions
diff --git a/toplevel/workerLoop.ml b/toplevel/workerLoop.ml
new file mode 100644
index 0000000000..ee6d5e8843
--- /dev/null
+++ b/toplevel/workerLoop.ml
@@ -0,0 +1,29 @@
+(************************************************************************)
+(* * The Coq Proof Assistant / The Coq Development Team *)
+(* v * INRIA, CNRS and contributors - Copyright 1999-2018 *)
+(* <O___,, * (see CREDITS file for the list of authors) *)
+(* \VV/ **************************************************************)
+(* // * This file is distributed under the terms of the *)
+(* * GNU Lesser General Public License Version 2.1 *)
+(* * (see LICENSE file for the text of the license) *)
+(************************************************************************)
+
+let rec parse = function
+ | "--xml_format=Ppcmds" :: rest -> parse rest
+ | x :: rest -> x :: parse rest
+ | [] -> []
+
+let arg_init init ~opts extra_args =
+ let extra_args = parse extra_args in
+ Flags.quiet := true;
+ init ();
+ CoqworkmgrApi.(init !async_proofs_worker_priority);
+ opts, extra_args
+
+let start ~init ~loop =
+ let open Coqtop in
+ let custom = {
+ init = arg_init init;
+ run = (fun ~opts:_ ~state:_ -> loop ());
+ } in
+ start_coq custom