-
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
dune caches "failing" coqdep invocations even when adding missing files #6145
Comments
Thanks for the report @Blaisorblade , that's a bit strange, as in principle dune should reinvoke |
It'd be a good idea to make coqdep fail on missing deps, but that'd break quite a few stuff I understand. I'm not sure where the Coq discussion about this is, but for OCaml it was discussed in ocaml/ocaml#8625 |
@ejgallego I think we called it "strict" for coqdep? |
That does not appear to work either, and I filed #6149 for that since I've just gotten a different unsoundness in dune CI with it. It might be the case that fixing that would fix this bug as well
I was only suggesting that ocaml/ocaml#8625 shows a problem with wildcards without matches, e.g. |
@Blaisorblade , I think that indeed it is reasonable that |
Expected Behavior
Assume we use
dune
(with or without caching enabled). Whencoqdep
outputsand we add the missing library,
coqdep
is rerun and the build works again.Actual Behavior
The
_build
folder and (if enabled) the cache are functionally corrupted via the following 3 steps:coqdep
invocation returns exit code 0, but it produced the wrong output:foo/bar.v.d
does not report the dependency onbaz/quux.v
(arguably because of coqdep -modules #5100, but we can fix this bug without coqdep -modules #5100). This is harmless withcoq_makefile
, but terrible in dune's usage (with per-file invocation, and caching). I believe this is a bug.baz/quux.v
,coqdep
isn't reinvoked. Since I'm using dune 3.1.1, this is with [coq] Ignore contents in coqdep rule #5547 already included.I and @Janno found a fix for step 1: we wrap
coqdep
, and the wrapper fails ifcoqdep
prints anything on stderr.Reproduction
Specifications
dune
(output ofdune --version
): 3.1.1Additional information
dune
with the--verbose
flag):The text was updated successfully, but these errors were encountered: