···8585 in
8686 (report ~errors ~and_then:(Run_jobs jobs), forest)
8787 | Eval uri -> begin
8888- Phases.eval_only uri forest;
8989- (Done, forest)
8888+ let jobs = Phases.eval_only uri forest in
8989+ (Run_jobs jobs, forest)
9090 end
9191 | Plant_assets ->
9292 (* TODO: We really only need to plant the assets that are referred to (look
+10-5
lib/compiler/Phases.ml
···127127 | Some (Tree ({phase; _} as t)) -> begin
128128 match phase with
129129 | Loaded | Parsed | Evaluated -> assert false
130130- | Expanded ->
130130+ | Expanded -> begin
131131 let source_path =
132132 if forest.dev then URI.Tbl.find_opt forest.resolver uri else None
133133 in
134134- (* TODO: run jobs. *)
135134 let result, errors =
136135 Eval.eval_tree ~config:forest.config ~source_path ~uri t
137136 in
138137 forest.?{uri} <- errors;
139139- let@ {articles; _} = Option.iter @~ result in
140140- let@ article = List.iter @~ articles in
141141- State.plant_resource ~forest (Article article)
138138+ match result with
139139+ | None -> []
140140+ | Some {articles; jobs} ->
141141+ let () =
142142+ let@ article = List.iter @~ articles in
143143+ State.plant_resource ~forest (Article article)
144144+ in
145145+ jobs
146146+ end
142147 end
143148144149let implant ~(forest : State.t) (foreign : Config.foreign) =