Skip to content

Coq Call 2021 02 24

Emilio Jesus Gallego Arias edited this page Mar 2, 2021 · 3 revisions

Topics

  • Coq Platform 2021.02.0 announcement.
  • Dune update [see notes]

Notes

Coq Platform release

Current Non-features

  • There is currently no open source package for CompCert 3.8 because the required changes in the Makefile have not been integrated. We need to discuss what to do about this.

  • There is no Mac installer (ToDo)

  • One might want to add MacPorts and Homebrew packages for Coq Platform

  • There are a few remaining opam patch packages for Windows which I didn't get into the upstream repo (they do some hacks which wouldn't work on Windows if there would be a sandbox - since there isn't one on Windows I don't see the issue but the repo maintainer didn't like it anyway, although the existing package has a very severe bug). There is a new mechanism in opam to have opam switch local package config files which would allow to do this properly - or I sit down and create proper Cygwin packages (the relevant packages currently don't have a Cygwin maintainer). The status quo means one cannot create an opam package for Coq platform - at least not one which would work on Windows, but one could explicitly exclude this with a hint why.

Discussion of Non-features

  • CompCert: no strong opinions

  • Mac DMG installer / MacPorts / Homebrew package:

    • Théo: many students don't have MacPorts or Homebrew installed, so a DMG package is important
    • Théo: download numbers are high for the current DMG package
    • Théo: we currently have a DMG package, so not having one would be a regression
    • Michael: will priorize DMG installer over additional packages - this should be mentioned in the beta release annoucement
    • Michael: at first it will be a simple DMG package, e.g. no way to select individual packages
  • Coq platform opam package:

    • Théo: using the scripts is preferable over an opam package, even for people already using opam, e.g. cause creation of a switch with a well defined name, ...
    • Conclusion: questionable if we should have a Coq Platform opam package at all - wait for user feedback

Options for releases

  • do a 2021.02+beta release now
  • do a 2021.02.0 release now
  • do a 2021.02.0 release as soon as .DMG package is finished

Discussion:

  • Enrico: snap package stream for 2021.02 already created, so there should be a release in February
  • Michael: consensus from previous discussion: release should have DMG package
  • Enrico: what were the rules for minor releases?
  • Michael: adding new packages is OK, but the versions of existing packages should only change to fix critical bugs
  • Michael: plan is to make minor releases about monthly after the first release adding new packages

Conclusion

  • make a 2021.02+beta release today
  • implement DMG
  • make 2021.02.0 release as soon as DMG is ready
  • beta release will be publicly announced
  • Enrico drafts the announcement message and aligns with Michael via Email

Dune build system update

Immediate plans for Dune migration

The current plan for having Dune build the OCaml part of Coq was detailed:

  • we first discussed the stale "Switch to a Dune-based build system" https://github.com/coq/coq/pull/8729 , which didn't proceed well. The PR has gone too stale and we shall close it, however Emilio thinks the original plan sound and would be have been a bit more pragmatic, we would have saved loads of time for everyone, not to mention bugs.

  • first step in the is to merge the "Split stdlib" https://github.com/coq/coq/pull/12567 PR, which does ease containing the OCaml part to its own package, and among other advantages, much simplifies the build with Dune of only that part.

    The PR is mostly ready, there were some questions about the advantages of such split are, and if Coq works standalone. The split was requested by quite a few users, and its main advantage is modularity and flexibility in terms of Coq vs the Stdlib and other projects such as tactician, HoTT, or stdlib2.

  • next step is to merge "Use Dune for OCaml" https://github.com/coq/coq/pull/13617, which provides a bridge to Dune, so only the .vo files are built. This allows to remove a lot of complex make build system logic; main user-visible change, is that the build objects are out of tree, plus the dependency on Dune.

  • For 8.14, we should also remove the leftover makefile for the stdlib and use coq_makefile instead https://github.com/coq/coq/issues/13888

After-merge plans

Once the ML part is built using Dune, we can perform many other interesting things, in particular, we plan to:

General comments

  • Emilio notes that we all need to understand that things may not be perfect at first, but the effort will pay off.
  • dune 3.0 is underway, it will improve dynamic rule generation and maybe provide a plugin API which would be very convenient for us
Clone this wiki locally