12345678910111213141516171819202122232425262728293031323334353637383940414243(************************************************************************)(* * The Coq Proof Assistant / The Coq Development Team *)(* v * Copyright INRIA, CNRS and contributors *)(* <O___,, * (see version control and CREDITS file for authors & dates) *)(* \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) *)(************************************************************************)letkind_filterstr=letkinds=["--kind=proof";"--kind=tactic";"--kind=query"]innot(List.exists(String.equalstr)kinds)letworker_parse_extraextra_args=letstm_opts,extra_args=Stmargs.parse_args~init:Stm.AsyncOpts.default_optsextra_argsinletextra_args=List.filterkind_filterextra_argsin((),stm_opts),extra_argsletworker_initinit((),stm_opts)injections~opts:Vernac.State.t=Flags.quiet:=true;init();Coqtop.init_toploopoptsstm_optsinjectionsletusage=Boot.Usage.{executable_name="coqworker";extra_args="";extra_options=("\n"^"coqworker"^" specific options:\
\n --xml_format=Ppcmds serialize pretty printing messages using the std_ppcmds format\n");}letstart~init~loop=letopenCoqtopinletcustom={parse_extra=worker_parse_extra;usage;initial_args=Coqargs.default;init_extra=worker_initinit;run=(fun((),_)~opts:_(_state:Vernac.State.t)->(* the state is not used since the worker will receive one from master *)loop());}instart_coqcustom