package bistro

  1. Overview
  2. Docs
type t
type task = Task.t
type task_result
type allocator
type resource
type config
type 'a thread
type trace =
  1. | Run of {
    1. ready : time;
    2. start : time;
    3. end_ : time;
    4. outcome : task_result;
    }
  2. | Skipped of [ `Done_already | `Missing_dep | `Allocation_error of string ]
and time = float
type event =
  1. | Init of {
    1. dag : t;
    2. needed : task list;
    3. already_done : task list;
    }
  2. | Task_ready of task
  3. | Task_started of task * resource
  4. | Task_ended of task_result
  5. | Task_skipped of task * [ `Done_already | `Missing_dep | `Allocation_error of string ]
type dry_run =
  1. | Dry_run of {
    1. nb_tasks : int;
    2. nb_goals : int;
    3. status : (task * [ `TODO | `DONE ]) list;
    4. simulation : task list;
    }
class type logger = object ... end
val nb_tasks : t -> int
val mem_task : t -> task -> bool
val empty : t
val add_task : t -> task -> t
val add_dep : t -> task -> on:task -> t
val fold_tasks : t -> init:'a -> f:('a -> task -> 'a) -> 'a
val dot_output : t -> (task -> Graph.Graphviz.DotAttributes.vertex list) -> ((task * task) -> Graph.Graphviz.DotAttributes.edge list) -> string -> unit
val run : ?logger:logger -> ?goals:task list -> config -> allocator -> t -> trace Core_kernel.String.Map.t thread
val dry_run : ?goals:task list -> config -> t -> dry_run thread