From 836b27ae2b11b12d1ca03702ed9706ceedcc0193 Mon Sep 17 00:00:00 2001 From: Rudi Grinberg Date: Mon, 28 May 2018 17:52:05 +0700 Subject: [PATCH] Remove an extra conversion in rules_for_files Signed-off-by: Rudi Grinberg --- src/build_system.ml | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/src/build_system.ml b/src/build_system.ml index 8935c0c5..3e604f99 100644 --- a/src/build_system.ml +++ b/src/build_system.ml @@ -1249,13 +1249,14 @@ let do_build t ~request = module Ir_set = Set.Make(Internal_rule) + let rules_for_files t paths = - List.filter_map paths ~f:(fun path -> + Path.Set.fold paths ~init:[] ~f:(fun path acc -> if Path.is_in_build_dir path then load_dir t ~dir:(Path.parent_exn path); match Hashtbl.find t.files path with - | None -> None - | Some (File_spec.T { rule; _ }) -> Some rule) + | None -> acc + | Some (File_spec.T { rule; _ }) -> rule :: acc) |> Ir_set.of_list |> Ir_set.to_list @@ -1264,11 +1265,7 @@ let rules_for_targets t targets = Internal_rule.Id.Top_closure.top_closure (rules_for_files t targets) ~key:(fun (r : Internal_rule.t) -> r.id) ~deps:(fun (r : Internal_rule.t) -> - rules_for_files t - (Path.Set.to_list - (Path.Set.union - r.static_deps - r.rule_deps))) + rules_for_files t (Path.Set.union r.static_deps r.rule_deps)) with | Ok l -> l | Error cycle -> @@ -1285,7 +1282,7 @@ let static_deps_of_request t request = } = Build_interpret.static_deps request ~all_targets:(targets_of t) ~file_tree:t.file_tree in - Path.Set.to_list (Path.Set.union rule_deps action_deps) + Path.Set.union rule_deps action_deps let all_lib_deps t ~request = let targets = static_deps_of_request t request in