-
Notifications
You must be signed in to change notification settings - Fork 231
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
Parallel Makefile failures "Corrupted compiled interface" #327
Comments
CompCert version which are known to sometimes fail:
|
Thanks for the nice summary. It should be noted that in the past, many Coq plugin projects had the same nondeterministic parallel build failures on OPAM, such as CoqHammer. The solution there was simply to disable parallel OPAM builds, since the plugins built quickly anyway, but as mentioned above this is not feasible here. |
I never encountered this kind of error, so I'm not sure what the reason is, but I think this is more of a problem of the (inofficial) opam package. |
OK, good to know. Here are the build commands of the
|
This matches a known issue with parallel builds in OCaml prior to 4.06. See ocaml/ocaml#7472 . It was fixed in OCaml 4.06 by making the creation of Personally, I would just stop building CompCert with old OCaml versions: you're doing 4.02.3, 4.04 and 4.05, if I'm not mistaken, and I don't see the point. |
@xavierleroy do you then think we should set |
That's one possibility. Another, if technically doable, would be to ignore I realize I'm not sure what the main purpose of these OPAM packages is. If they are mainly for regression testing of Coq, parallel builds are important but testing old OCaml versions is not, in my opinion. If the packages are for end-users of Coq, supporting old OCaml versions when possible is a nice touch, but the end-users should tolerate slower, sequential builds. Your choice!
The next release of CompCert will drop support for OCaml < 4.05, and perhaps we should drop 4.05 as well because of the present issue.
This pushes you back into really old versions of OCaml that are totally unsupported and contains a number of known bugs. Again, I really see no point in testing with OCaml 4.02.3, which dates back to 2014. It's like testing with Ubuntu 14.04... |
Thanks for the feedback, @clarus and I will investigate the best way to keep the packages building consistently, which may indeed be with some kind of version-dependent build parameter selection.
Other maintainers may have other views, but I see the Coq OPAM archive as a service to the Coq user community and to researchers in particular - regression testing of Coq itself or OCaml is not the concern. There are many Coq projects "stuck" on particular Coq versions, and if the cost is not too high to support them, e.g., by modifying some OPAM scripts as the need arises, this seems reasonable to do. Also, since many Coq projects tend to bitrot or even disappear, an OPAM package and a tarball that worked at one point is usually a big help for getting something to work again.
I second raising the requirement to > 4.05.
Based on my observations, comparatively old OCaml versions (around 4.05) tend to be used quite a lot by Coq users, e.g., due to Linux distro packaging. The minimum required OCaml version for Coq appears to be constantly discussed among Coq developers and concerns other than the Coq OPAM archive's typically dominate. I'm sure the devs (Matthieu, Maxime, Emilio, ...) would be open to feedback on this, but us maintainers are downstream from them. |
Closing as the compilation of the package is now sequential for OCaml <= 4.05, thanks to a flag from @palmskog :
No new failures occurred. Thanks for the answers. As a remark, CompCert 3.6 is not compatible with the freshly released Coq 8.11 so I fixed that in the package coq/opam#1133 |
Hi,
In the opam package of CompCert, there are sometimes build failures with the following message:
during the compilation of
.mli
files when installing the package with parallel compilation.These errors appear around 5-10% of the time in the opam bench for Coq. It seems fine with OCaml
>= 4.06
(no current errors, I do not remember if there were). Here are some examples of errors (the links may soon be outdated as new tests are being run):Here is an extract of logs with errors after an
opam install coq-compcert
:I do not know how important is it and if it happens to some users in practice. I think the parallel compilation of the CompCert package is nice to keep as this is a large package. In the opam bench we black-list such errors. Posting it there for the record.
The text was updated successfully, but these errors were encountered: