Module B00.Guard
Build operations guards.
A guard ensure that a build operation is allowed to proceed. This means either that:
Guards
type feedback=[|`File_status_repeat of B0_std.Fpath.t|`File_status_unstable of B0_std.Fpath.t]The type for guard feedbacks:
`File_status_repeat findicates that the file status offwas set more than once.`File_status_unstable findicates that the file status offwas set more than once and in an inconsistent manner
val create : ?feedback:(feedback -> unit) -> unit -> tcreate ~feedback ()is a new guard, usingfeedbackto report inconsistencies (default is a nop.).
val set_file_ready : t -> B0_std.Fpath.t -> unitset_file_ready g findicates togthat filefis ready, i.e. that it exists and is up-to-date.
val set_file_never : t -> B0_std.Fpath.t -> unitset_file_never g findicate togthat filefwill never become ready.
Stuck build analysis
The following functions are not efficient, only use for stuck build anaylsis or debugging.
val ready_files : t -> B0_std.Fpath.Set.tready_files gare the files that got ready ing.
val never_files : t -> B0_std.Fpath.Set.tnever_files gare the files that never got ready ing.
val undecided_files : t -> B0_std.Fpath.Set.tundecided_files gare the files that are neither got ready nor never got ready ing.
val root_undecided_files : t -> B0_std.Fpath.Set.troot_undecided_file gis likeundecided_filesbut has only the files that are not written by aguarded_opofg. If a build is stuck these are files that are not undecided as the result of a guarded operation.