-
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
[coq] Ignore contents in coqdep rule #5547
Conversation
Doesn't coqdep read these files? If so, then this optimization isn't correct. |
No, it doesn't read them, they are only used because Coq has no |
This comment was marked as outdated.
This comment was marked as outdated.
f818b6b
to
a29c786
Compare
I am also puzzled here. What happens if I add extra |
@Alizter only for that file, as shown in the test. |
a29c786
to
63d2b76
Compare
In particular, note that that let file_flags =
[ Command.Args.S file_flags
; As [ "-dyndep"; "opt" ]
; Dep (Path.build source)
]
in
let stdout_to = Coq_module.dep_file ~obj_dir:cctx.dir coq_module in
(* Coqdep has to be called in the stanza's directory *)
let open Action_builder.With_targets.O in
Action_builder.with_no_targets cctx.mlpack_rule
>>> Action_builder.(with_no_targets (goal source_rule))
>>> Command.run ~dir:(Path.build cctx.dir) ~stdout_to cctx.coqdep file_flags so |
This should help reduce the coqdep calls drastically. Improves ocaml#5100 . In particular, while a build from scratch has still one coqdep call per file overhead, incremental builds don't anymore. This makes one coqdep call per theory (or `-modules`) much less critical. Signed-off-by: Emilio Jesus Gallego Arias <e+git@x80.org>
63d2b76
to
0eeabd4
Compare
This is great and works indeed as intended! |
It must been annoying to work with dune before this PR @Blaisorblade ! We still have plenty of low-hanging fruit to reap. |
…ne-site, dune-rpc, dune-rpc-lwt, dune-private-libs, dune-glob, dune-configurator, dune-build-info and dune-action-plugin (3.1.0) CHANGES: - Add `sourcehut` as an option for defining project sources in dune-project files. For example, `(source (sourcehut user/repo))`. (ocaml/dune#5564, @rgrinberg) - Add `dune coq top` command for running a Coq toplevel (ocaml/dune#5457, @rlepigre) - Fix dune exec dumping database in wrong directory (ocaml/dune#5544, @bobot) - Always output absolute paths for locations in RPC reported diagnostics (ocaml/dune#5539, @rgrinberg) - Add `(deps <deps>)` in ctype field (ocaml/dune#5346, @bobot) - Add `(include <file>)` constructor to dependency specifications. This can be used to introduce dynamic dependencies (ocaml/dune#5442, @anmonteiro) - Ensure that `dune describe` computes a transitively closed set of libraries (ocaml/dune#5395, @esope) - Add direct dependencies to $ dune describe output (ocaml/dune#5412, @esope) - Show auto-detected concurrency on Windows too (ocaml/dune#5502, @MisterDA) - Fix operations that remove folders with absolute path. This happens when using esy (ocaml/dune#5507, @EduardoRFS) - Dune will not fail if some directories are non-empty when uninstalling. (ocaml/dune#5543, fixes ocaml/dune#5542, @nojb) - `coqdep` now depends only on the filesystem layout of the .v files, and not on their contents (ocaml/dune#5547, helps with ocaml/dune#5100, @ejgallego) - The mdx stanza 0.2 can now be used with `(implicit_transitive_deps false)` (ocaml/dune#5558, fixes ocaml/dune#5499, @emillon) - Fix missing parenthesis in printing of corresponding terminal command for `(with-outputs-to )` (ocaml/dune#5551, fixes ocaml/dune#5546, @Alizter)
This should help reduce the coqdep calls drastically.
Improves #5100 .
In particular, while a build from scratch has still one coqdep call per file overhead, incremental builds don't anymore. This makes one coqdep call per theory (or
-modules
) much less critical.