[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_flagsso |
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.