Skip to content

Commit

Permalink
Merge pull request #908 from hacspec/engine-dependencies-precompute
Browse files Browse the repository at this point in the history
fix(engine/deps): stop re-computing over and over the set of assoc items
  • Loading branch information
W95Psp authored Sep 23, 2024
2 parents dc2725b + 6e60161 commit 81ffdf2
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 5 deletions.
6 changes: 4 additions & 2 deletions engine/bin/lib.ml
Original file line number Diff line number Diff line change
Expand Up @@ -47,9 +47,11 @@ let import_thir_items (include_clauses : Types.inclusion_clause list)
items
|> List.map ~f:snd
in
Logs.info (fun m -> m "Items translated");
let items = List.concat_map ~f:fst imported_items in
let associated_items (item : Deps.AST.item) =
Deps.uid_associated_items items item.attrs
let associated_items =
let assoc_items = Deps.uid_associated_items items in
fun (item : Deps.AST.item) -> assoc_items item.attrs
in
(* Build a map from idents to error reports *)
let ident_to_reports =
Expand Down
7 changes: 4 additions & 3 deletions engine/lib/dependencies.ml
Original file line number Diff line number Diff line change
Expand Up @@ -83,8 +83,8 @@ module Make (F : Features.T) = struct
in
set |> Set.to_list

let vertices_of_items ~original_items (items : item list) : G.E.t list =
let uid_associated_items = uid_associated_items original_items in
let vertices_of_items ~uid_associated_items (items : item list) : G.E.t list
=
List.concat_map
~f:(fun i ->
let assoc =
Expand All @@ -97,7 +97,8 @@ module Make (F : Features.T) = struct
let init =
List.fold ~init:G.empty ~f:(fun g -> ident_of >> G.add_vertex g) items
in
vertices_of_items ~original_items items
let uid_associated_items = uid_associated_items original_items in
vertices_of_items ~uid_associated_items items
|> List.fold ~init ~f:(G.add_edge >> uncurry)

let transitive_dependencies_of (g : G.t) (selection : Concrete_ident.t list)
Expand Down

0 comments on commit 81ffdf2

Please sign in to comment.