-
Notifications
You must be signed in to change notification settings - Fork 409
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
coqdep -modules #5100
Comments
See also coq/coq#12108 |
@SkySkimmer we can also use implement this #5457 (comment) , should be a one liner, let me try. |
This should help reduce the coqdep calls drastically. Improves ocaml#5100 .
This should help reduce the coqdep calls drastically. Improves ocaml#5100 .
This should help reduce the coqdep calls drastically. Improves ocaml#5100 . Signed-off-by: Emilio Jesus Gallego Arias <e+git@x80.org>
This should help reduce the coqdep calls drastically. Improves ocaml#5100 . Signed-off-by: Emilio Jesus Gallego Arias <e+git@x80.org>
This should help reduce the coqdep calls drastically. Improves ocaml#5100 . Signed-off-by: Emilio Jesus Gallego Arias <e+git@x80.org>
This should help reduce the coqdep calls drastically. Improves ocaml#5100 . Signed-off-by: Emilio Jesus Gallego Arias <e+git@x80.org>
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>
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. Signed-off-by: Emilio Jesus Gallego Arias <e+git@x80.org>
…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)
@Alizter has been working on this. |
So to elaborate further, I have a little binary called |
This should also help solving #3286 |
To sum up the status of this. I have implemented a prototype that lexes .v files for dependencies (let's call that coqmod). We can eventually upstream that. The question of what to do with with the tokens is however quite difficult. In my prototype, I tried to follow the implementation of Coq's loadpath as closely as possible, and it appeared to work for most cases. The main issues I see here are that the loadpath specifications of Coq could probably be improved. For example to allow for ambiguous The main advantage of this proposal would be the speed up by not having to call coqdep. In reality, once coqdep is called once per theory #7048, this not longer becomes the bottleneck during coq builds. The main bottleneck is the Coq compiler itself. |
In order to avoid having coqdep calls depend on all file contents, it would be useful to have a way to use coqdep like ocaml -modules.
This has 2 steps:
We need an output format for coqdep which can handle
Declare ML Module "foo" "bar"
(dependency on some cmxs)Require foo bar.baz
andFrom x Require foo bar.baz
(dependency on .vo)Load foo.bar
andLoad "foo"
(dependency on .v)coqdep also handles
Add LoadPath
but I don't think we want to support that.The text was updated successfully, but these errors were encountered: