-
Notifications
You must be signed in to change notification settings - Fork 413
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
stop recording deps in Action_builder.contents #10446
stop recording deps in Action_builder.contents #10446
Conversation
da0b0f6
to
b9e5247
Compare
Signed-off-by: Rodolphe Lepigre <rodolphe@bedrocksystems.com> Signed-off-by: Ali Caglayan <alizter@gmail.com>
b9e5247
to
d0f3266
Compare
Wow, that seems like a pretty serious bug. It probably made incremental builds much worse in general, not just for Coq. Thanks for the fix! Do we have any benchmarks that show an improvement after this commit? It may be worth patching some earlier releases. |
Thanks, could you add a change log entry? We do not have any incremental benchmarks. |
PR ocaml#9552 changed the semantics of Action_builder.contents so that it records a dependency. The Coq rules were relying on the previous behaviour of not recording a dependency in order to generate a build plan. This caused issue ocaml#10149 to appear. This PR fixes ocaml#10149 by removing the dependency being recorded in Action_builder.contents matching the previous semantics. Signed-off-by: Ali Caglayan <alizter@gmail.com>
d0f3266
to
26bf387
Compare
@rgrinberg I've added a changelog. I don't see exactly how this would make incremental builds worse outside of Coq. The Coq support appears to be the only serious consumer of I've only mentioned Coq in the changelog since it is the only user-visible effect I am aware of. |
Thanks for the fix @Alizter , a couple of additional comments:
|
* Add reproduction test case for #10149. Signed-off-by: Rodolphe Lepigre <rodolphe@bedrocksystems.com> Signed-off-by: Ali Caglayan <alizter@gmail.com> * stop recording deps in Action_builder.contents PR #9552 changed the semantics of Action_builder.contents so that it records a dependency. The Coq rules were relying on the previous behaviour of not recording a dependency in order to generate a build plan. This caused issue #10149 to appear. This PR fixes #10149 by removing the dependency being recorded in Action_builder.contents matching the previous semantics. Signed-off-by: Ali Caglayan <alizter@gmail.com> --------- Signed-off-by: Rodolphe Lepigre <rodolphe@bedrocksystems.com> Signed-off-by: Ali Caglayan <alizter@gmail.com> Co-authored-by: Rodolphe Lepigre <rodolphe@bedrocksystems.com> Co-authored-by: Ali Caglayan <alizter@gmail.com>
CHANGES: ### Fixed - If no directory targets are defined, then do not evaluate `enabled_if` (ocaml/dune#10442, @rgrinberg) - Fix a bug where Coq projects were being rebuilt from scratch each time the dependency graph changed. (ocaml/dune#10446, fixes ocaml/dune#10149, @Alizter)
PR #9552 changed the semantics of
Action_builder.contents
so that it records a dependency. The Coq rules were relying on the previous behaviour of not recording a dependency in order to generate a build plan. This caused issue #10149 to appear.This PR fixes #10149 by removing the dependency being recorded in
Action_builder.contents
matching the previous semantics.cc @rgrinberg
Here is the semantic change in #9552
https://github.com/ocaml/dune/pull/9552/files#r1573098164