1234567891011121314151617181920212223242526272829303132333435363738394041(************************************************************************)(* * 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) *)(************************************************************************)openCoqcargsopenCommon_compile(******************************************************************************)(* VIO Dispatching *)(******************************************************************************)letcheck_vio_taskscopts=Flags.async_proofs_worker_id:="VioChecking";letrc=List.fold_left(funacc(n,f)->letf_in=ensure~ext:".vio"~src:f~tgt:finensure_existsf_in;Vio_checking.check_vio(n,f_in)&&acc)truecopts.vio_tasksinifnotrcthenfatal_errorPp.(str"VIO Task Check failed")(* vio files *)letschedule_viocopts=letl=List.map(funf->letf_in=ensure~ext:".vio"~src:f~tgt:finensure_existsf_in;f_in)copts.vio_filesinifcopts.vio_checkingthenVio_checking.schedule_vio_checkingcopts.vio_files_jlelseVio_checking.schedule_vio_compilationcopts.vio_files_jlletdo_viooptscopts_injections=(* Vio compile pass *)ifcopts.vio_files<>[]thenschedule_viocopts;(* Vio task pass *)ifcopts.vio_tasks<>[]thencheck_vio_taskscopts