Skip to content

Commit d8314f0

Browse files
authored
Remove read memo parameterised rules (#12773)
Probably harmless, but let's not use the bad API unless there's a good reason for it. Signed-off-by: Rudi Grinberg <[email protected]>
1 parent 0bb0874 commit d8314f0

File tree

1 file changed

+21
-13
lines changed

1 file changed

+21
-13
lines changed

src/dune_rules/parameterised_rules.ml

Lines changed: 21 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -28,10 +28,12 @@ type t =
2828
; hidden_deps : Dep.Set.t Action_builder.t
2929
}
3030

31-
let build_instance ~sctx ~obj_dir ~mode instance =
32-
let { module_; args; requires; target; o_target = _; hidden_targets; hidden_deps } =
33-
instance
34-
in
31+
let build_instance
32+
~sctx
33+
~obj_dir
34+
~mode
35+
{ module_; args; requires; target; o_target = _; hidden_targets; hidden_deps }
36+
=
3537
let ctx = Super_context.context sctx in
3638
let* ocaml = Context.ocaml ctx in
3739
let include_flags =
@@ -146,14 +148,15 @@ let build_archive ~sctx ~mode ~obj_dir ~lib ~top_sorted_modules ~modules =
146148
;;
147149

148150
let lib_hidden_deps ~sctx ~kind lib requires =
149-
let* requires = Resolve.read_memo requires in
150-
Memo.List.concat_map requires ~f:(fun dep ->
151+
let open Action_builder.O in
152+
let* requires = Resolve.read requires in
153+
Action_builder.List.concat_map requires ~f:(fun dep ->
151154
if Lib.equal lib dep
152-
then Memo.return []
155+
then Action_builder.return []
153156
else (
154157
match Lib.Parameterised.status dep with
155158
| Complete ->
156-
let+ cm = Resolve.read_memo (get_cm ~kind dep) in
159+
let+ cm = Resolve.read (get_cm ~kind dep) in
157160
[ cm ]
158161
| Partial ->
159162
Code_error.raise
@@ -167,10 +170,12 @@ let lib_hidden_deps ~sctx ~kind lib requires =
167170
match Lib_info.modules lib_info with
168171
| External None ->
169172
Code_error.raise "dependency has no modules" [ "lib", Lib.to_dyn dep ]
170-
| External (Some modules) -> Memo.return modules
173+
| External (Some modules) -> Action_builder.return modules
171174
| Local ->
172175
let local_lib = Lib.Local.of_lib_exn lib in
173-
let+ modules = Dir_contents.modules_of_local_lib sctx local_lib in
176+
let+ modules =
177+
Action_builder.of_memo (Dir_contents.modules_of_local_lib sctx local_lib)
178+
in
174179
Modules.With_vlib.modules modules
175180
in
176181
Modules.With_vlib.fold_no_vlib_with_aliases
@@ -197,7 +202,9 @@ let build_modules ~sctx ~obj_dir ~modules_obj_dir ~dep_graph ~mode ~requires ~li
197202
let+ ocaml = Super_context.context sctx |> Context.ocaml in
198203
ocaml.lib_config
199204
in
200-
let* lib_hidden_deps = lib_hidden_deps ~sctx ~kind lib requires in
205+
let lib_hidden_deps =
206+
Action_builder.memoize "lib-hidden-deps" (lib_hidden_deps ~sctx ~kind lib requires)
207+
in
201208
let* args =
202209
(* The main module names of applied arguments is required
203210
because it's used in the instantiated filenames.
@@ -226,8 +233,9 @@ let build_modules ~sctx ~obj_dir ~modules_obj_dir ~dep_graph ~mode ~requires ~li
226233
in
227234
let hidden_deps =
228235
let open Action_builder.O in
229-
let+ module_deps = Dep_graph.deps_of dep_graph module_ in
230-
let deps =
236+
let* lib_hidden_deps = lib_hidden_deps in
237+
let+ deps =
238+
let+ module_deps = Dep_graph.deps_of dep_graph module_ in
231239
List.map module_deps ~f:(fun module_ ->
232240
apply_module_name module_ args
233241
|> obj_file ~obj_dir ~kind ?ext:None

0 commit comments

Comments
 (0)