Skip to content
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

Add coq-native package flag & Update coq flags (native-compiler + flambda) #16887

Closed
wants to merge 3 commits into from

Conversation

erikmd
Copy link
Contributor

@erikmd erikmd commented Jul 26, 2020

Implements the packaging strategy described in coq/coq#12757

In particular, I inserted a conditional line (-native-compiler (yes|no)) in all coq releases supporting native_compute for the sake of uniformity (i.e., coq {>= "8.5"}), and this thereby amounts to changing the packaging specification of 25 versions of Coq. (Hopefully this large number of opam files touched does not raise an issue w.r.t. opam-repository's CI)

Cc @maximedenes @Blaisorblade could one of you (ideally both! :) have a look at my PR to be sure everything looks fine from a coq / native_compute perspective?

@camelus
Copy link
Contributor

camelus commented Jul 26, 2020

Commit: 507151a

@erikmd has posted 4 contributions.

☀️ All lint checks passed 507151a
  • These packages passed lint tests: coq-native.1, coq.8.10.0, coq.8.10.1, coq.8.10.2, coq.8.11.0, coq.8.11.1, coq.8.11.2, coq.8.12.0, coq.8.5.0, coq.8.5.0~camlp4, coq.8.5.1, coq.8.5.2, coq.8.5.2~camlp4, coq.8.5.3, coq.8.6.1, coq.8.6, coq.8.7.0, coq.8.7.1+1, coq.8.7.1+2, coq.8.7.1, coq.8.7.2, coq.8.8.0, coq.8.8.1, coq.8.8.2, coq.8.9.0, coq.8.9.1

☀️ Installability check (+1)
  • new installable packages (1): coq-native.1

@maximedenes
Copy link
Contributor

maximedenes commented Jul 27, 2020

@erikmd I'm missing context, sorry. Doesn't this PR completely disable native_compute by default? I.e. when coq-native is not installed?

@Blaisorblade
Copy link
Contributor

@maximedenes That's exactly the intention; the right context for "why?" is coq/coq#12757.

@Blaisorblade
Copy link
Contributor

I guess we should wait for the discussion on coq/coq#12757 to play out before this is merged?

@silene
Copy link
Contributor

silene commented Jul 28, 2020

For the sake of consistency, should the coq-native package depend on coq {>= 8.5}?

Edit: I suppose it would introduce a circular dependency. So, instead, should it be marked conflicts: [ "coq" {< 8.5} ]?

@erikmd
Copy link
Contributor Author

erikmd commented Jul 28, 2020

So, instead, should it be marked conflicts: [ "coq" {< 8.5} ]?

I'm not sure it's needed: coq-native is just a package flag so installing it along with coq 8.4 in a switch would not cause any harm: it would just be useless. I don't have a definite opinion on this choice though.

@erikmd
Copy link
Contributor Author

erikmd commented Jul 28, 2020

On second thought, installing coq-native + some coq not supporting native_compute would break the assumption that the {coq-native:installed} predicate can be relied on by children packages… so I believe you're right, we should add this conflicts: item.

@erikmd erikmd changed the title Add coq-native package flag Add coq-native package flag & Update coq flags (native-compiler + flambda) Jul 28, 2020
@erikmd
Copy link
Contributor Author

erikmd commented Jul 28, 2020

PR updated − don't merge yet though

Blaisorblade added a commit to Blaisorblade/opam-coq-archive that referenced this pull request Jul 29, 2020
These opam packages are currently used as templates for releases.
Only done for 8.12 and dev, which will be used in the future.

The resulting packages are safer and slower (for flambda users); fixing that
will require a more proper fix (such as ocaml/opam-repository#16887).
@Blaisorblade
Copy link
Contributor

FYI: this will need rebasing over the (more urgent) #16908.

Blaisorblade added a commit to Blaisorblade/opam-coq-archive that referenced this pull request Jul 29, 2020
These opam packages are currently used as templates for releases.
See discussion at ocaml/opam-repository#16908 and
ocaml/opam-repository#16876 (comment).

Only done for 8.12 and dev, which will be used in the future.

The resulting packages are safer and slower (for flambda users); fixing that
will require a more proper fix (such as ocaml/opam-repository#16887).
Blaisorblade added a commit to Blaisorblade/opam-coq-archive that referenced this pull request Jul 29, 2020
These opam packages are currently used as templates for releases.
See discussion at ocaml/opam-repository#16908,
ocaml/opam-repository#16876 (comment)
and
coq/coq#11178 (comment).

Only done for 8.12 and dev, which will be used in the future.

The resulting packages are safer and slower (for flambda users); fixing that
will require a more proper fix (such as ocaml/opam-repository#16887).
@mseri
Copy link
Member

mseri commented Oct 22, 2020

@erikmd I am going to close this since it keeps rebuilding dozens of instances of coq every night. Feel free to reopen it if you need to test something or there are new progresses.

@kit-ty-kate it would be useful to have a label to notify the CI to not test a PR until further notice and not re-test an already tested PR, it would avoid us closing PRs to avoid overloading the system

@mseri mseri closed this Oct 22, 2020
@erikmd erikmd mentioned this pull request Nov 23, 2020
@@ -33,6 +36,9 @@ build: [
"-libdir" "%{lib}%/coq"
"-datadir" "%{share}%/coq"
"-coqide" "no"
"-flambda-opts" {ocaml:version >= "4.07"}
"-O3 -unbox-closures" {ocaml:version >= "4.07"}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just to be safe, should this be 4.07.1? We have much less QA on 4.07 AFAIK.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants