Skip to content

Commit f2b1335

Browse files
committed
Backport PR #20856: Release summary for 9.1
2 parents ac18bfc + 53460af commit f2b1335

File tree

6 files changed

+130
-32
lines changed

6 files changed

+130
-32
lines changed

doc/changelog/01-kernel/21050-fix-match-as-subterm-Fixed.rst

Lines changed: 0 additions & 5 deletions
This file was deleted.

doc/changelog/01-kernel/21057-fix-module-strengthening-subst-Fixed.rst

Lines changed: 0 additions & 9 deletions
This file was deleted.

doc/changelog/02-specification-language/20945-master+fix-arguments-too-little-scopes-proj-Fixed.rst

Lines changed: 0 additions & 6 deletions
This file was deleted.

doc/changelog/02-specification-language/20946-master+fix15815-anomaly-projection-notation-too-many-parameters-Fixed.rst

Lines changed: 0 additions & 5 deletions
This file was deleted.

doc/changelog/06-Ltac2-language/20549-ltac2-add-Ltac1CompatNotations.md

Lines changed: 0 additions & 5 deletions
This file was deleted.

doc/sphinx/changes.rst

Lines changed: 130 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,92 @@ Version 9.1
1818
Summary of changes
1919
~~~~~~~~~~~~~~~~~~
2020

21-
TODO
21+
We highlight some of the most impactful changes here:
22+
23+
- fixed incorrect guard checking leading to inconsistencies (multiple PRs)
24+
25+
- sort polymorphic universe instances :ref:`should now be written <91sortpolysyntax>`
26+
as `@{s ; u}` instead of `@{s | u}`
27+
28+
- :ref:`fixed <91ltac2notationfix>` handling of notation variables for ltac2 in notations
29+
(i.e. `Notation "'foo' x" := ltac2:(...)`)
30+
31+
- :ref:`Support <91refinedef>` for :attr:`refine` attribute in :cmd:`Definition`
32+
33+
- Rocq can be compile-time configured to be :ref:`relocatable <91relocatable>`
34+
35+
- extraction :ref:`handles <91extractsortpoly>` sort polymorphic definitions
36+
37+
See the `Changes in 9.1.0`_ section below for the detailed list of changes,
38+
including potentially breaking changes marked with **Changed**.
39+
Rocq's `reference manual for 9.1 <https://rocq-prover.org/doc/v9.1/refman>`_,
40+
documentation of the 9.1 `corelib <https://rocq-prover.org/doc/v9.1/corelib>`__
41+
and `developer documentation of the 9.1 ML API <https://rocq-prover.org/doc/v9.1/api>`_
42+
are also available.
43+
44+
Théo Zimmermann, with help from Jason Gross and Gaëtan Gilbert, maintained
45+
`coqbot <https://github.com/rocq-prover/bot>`__ used to run Rocq's CI and other
46+
pull request management tasks.
47+
48+
Jason Gross maintained the `bug minimizer <https://github.com/JasonGross/coq-tools>`_
49+
and its `automatic use through coqbot <https://github.com/rocq-prover/rocq/wiki/Coqbot-minimize-feature>`_.
50+
51+
Ali Caglayan, Emilio Jesús Gallego Arias, Rudi Grinberg and Rodolphe Lepigre maintained the
52+
`Dune build system for OCaml and Coq/Rocq <https://github.com/ocaml/dune/>`_
53+
used to build the Rocq Prover itself and many Rocq projects.
54+
55+
The `opam repository <https://github.com/coq/opam>`_ for Rocq packages has been maintained by
56+
Guillaume Claret, Guillaume Melquiond, Karl Palmskog, Matthieu Sozeau
57+
and Enrico Tassi with contributions from many users. The up-to-date list
58+
of packages is `available on the Rocq website <https://rocq-prover.org/packages>`_.
59+
60+
Erik Martin-Dorel maintained the
61+
`Rocq Docker images <https://hub.docker.com/r/rocq/rocq-prover>`_ and
62+
the `docker-keeper <https://gitlab.com/erikmd/docker-keeper>`_ compiler
63+
used to build and keep those images up to date (note that the tool is not Rocq specific).
64+
Erik Martin-Dorel and Théo Zimmermann maintained the
65+
`docker-coq-action <https://github.com/coq-community/docker-coq-action>`_
66+
container action (which is applicable to any opam project hosted on GitHub).
67+
68+
Cyril Cohen, Vincent Laporte, Pierre Roux and Théo Zimmermann
69+
maintained the `Nix toolbox <https://github.com/coq-community/coq-nix-toolbox>`_.
70+
The docker-coq-action and the Nix toolbox are used by many Rocq projects for continuous integration.
71+
72+
Rocq 9.1 was made possible thanks to the following 24 reviewers:
73+
Florian Angeletti, Ali Caglayan, Cyril Cohen, Pierre Courtieu, Jim
74+
Fehrle, Gaëtan Gilbert, Jason Gross, Emilio Jesús Gallego Arias,
75+
Jan-Oliver Kaiser, Thomas Lamiaux, Rodolphe Lepigre,
76+
Erik Martin-Dorel, Guillaume Melquiond, Patrick Nicodemus,
77+
Pierre-Marie Pédrot, Pierre Rousselin, Pierre Roux, Gabriel Scherer,
78+
Matthieu Sozeau, Nicolas Tabareau, Enrico Tassi, Théo Winterhalter and
79+
Théo Zimmermann.
80+
81+
See the `Rocq Team <https://rocq-prover.org/rocq-team>`_ page for
82+
more details on Rocq's development teams.
83+
84+
The 45 contributors to the 9.1 version are: Soudant,
85+
ypopovitch, Reynald Affeldt, Wassim Ait-Moussa, David Allsopp,
86+
Christian Benedict Smit, Frédéric Besson, Mathis Bouverot, Ali
87+
Caglayan, Jean Caspar, Benedict Christian Smit, Cyril Cohen, Pierre Courtieu,
88+
Julien Cretin, Jian Fang, Jim Fehrle, Gaëtan Gilbert, Jason Gross,
89+
Dario Halilovic, Hugo Herbelin, Elyes Jemel, Emilio Jesús Gallego
90+
Arias, Jan-Oliver Kaiser, Kacper Korban, Lucie Lahaye, Thomas Lamiaux,
91+
Rodolphe Lepigre, Yann Leray, Kenji Maillard, Erik Martin-Dorel,
92+
Patrick Nicodemus, Charles Norton, Pim Otte, Pierre-Marie Pédrot,
93+
Josselin Poiret, Johann Rosain, Pierre Rousselin, Pierre Roux,
94+
Radosław Rowicki, Benedict Smit, Bastien Sozeau, Matthieu Sozeau,
95+
Nicolas Tabareau, Enrico Tassi and Théo Zimmermann.
96+
97+
The Rocq community at large helped improve this new version via
98+
the GitHub issue and pull request system,
99+
the `Discourse forum <https://discourse.rocq-prover.org>`__ and the
100+
`Rocq Zulip chat <https://rocq-prover.zulipchat.com>`_.
101+
102+
Gaëtan Gilbert and Pierre-Marie Pédrot are the release managers of Rocq 9.1.
103+
This release is the result of 397 merged PRs, closing 56 issues.
104+
105+
| Nantes, September 2025
106+
| Gaëtan Gilbert and Pierre-Marie Pédrot for the Rocq development team
22107

23108
Changes in 9.1.0
24109
~~~~~~~~~~~~~~~~
@@ -50,10 +135,26 @@ Kernel
50135
(`#20729 <https://github.com/rocq-prover/rocq/pull/20729>`_,
51136
fixes `#20728 <https://github.com/rocq-prover/rocq/issues/20728>`_,
52137
by Yann Leray).
138+
- **Fixed:**
139+
Fix guard checker making propositional extensionality inconsistent
140+
(`#21050 <https://github.com/rocq-prover/rocq/pull/21050>`_,
141+
fixes `#21053 <https://github.com/rocq-prover/rocq/issues/21053>`_,
142+
by Yann Leray).
143+
- **Fixed:**
144+
substitution of functor delta-resolvers when strengthening.
145+
The previous code was only substituting the inner delta resolvers
146+
and ignoring the codomain of functors. In particular this was generating
147+
ill-formed constants whose canonical component was pointing to a bound name
148+
that did not exist in the global environment, leading to an inconsistency
149+
(`#21057 <https://github.com/rocq-prover/rocq/pull/21057>`_,
150+
fixes `#21051 <https://github.com/rocq-prover/rocq/issues/21051>`_,
151+
by Pierre-Marie Pédrot).
53152

54153
Specification language, type inference
55154
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
56155

156+
.. _91sortpolysyntax:
157+
57158
- **Deprecated:**
58159
in :ref:`sort polymorphic <sort-polymorphism>` instances, separating sorts from universes using `|` instead of `;` (the later being possible since this version)
59160
(`#20635 <https://github.com/rocq-prover/rocq/pull/20635>`_,
@@ -65,13 +166,24 @@ Specification language, type inference
65166
(`Definition foo@{s;u} := ...` instead of `Definition foo@{s|u|+} := ...`)
66167
(`#20635 <https://github.com/rocq-prover/rocq/pull/20635>`_,
67168
by Gaëtan Gilbert).
169+
- **Fixed:**
170+
Anomaly `List.chop` in the presence of projections with not
171+
enough argument scopes (`#20945
172+
<https://github.com/rocq-prover/rocq/pull/20945>`_, fixes `#20940
173+
<https://github.com/rocq-prover/rocq/issues/20940>`_, by Hugo
174+
Herbelin).
175+
- **Fixed:**
176+
Anomaly `List.chop` with too many projection parameters in an abbreviation
177+
(`#20946 <https://github.com/rocq-prover/rocq/pull/20946>`_,
178+
fixes `#15815 <https://github.com/rocq-prover/rocq/issues/15815>`_,
179+
by Hugo Herbelin).
68180

69181
Notations
70182
^^^^^^^^^
71183

72184
- **Changed:**
73185
The `Specif` notations (`exists x : A, P`, `{ x : A | P }`, `{ x : A & P }`, etc)
74-
locally open `type_scope` for the second component (`P`).
186+
locally opens `type_scope` for the second component (`P`).
75187
This makes eg `{ x & type_1 * type_2 }` work even when `nat_scope` is opened instead of interpreting `*` as peano multiplication
76188
(`#20294 <https://github.com/coq/coq/pull/20294>`_,
77189
by Gaëtan Gilbert).
@@ -159,6 +271,11 @@ Ltac2 language
159271
`Import Foo` will not run a mutation from (non exported) inner module `Foo.Bar`
160272
(`#20516 <https://github.com/rocq-prover/rocq/pull/20516>`_,
161273
by Gaëtan Gilbert).
274+
- **Added:**
275+
A file `Ltac1CompatNotations` for Ltac2 Notations reproducing Ltac1 parsing of tactics,
276+
that can be harmful to parsing, and produce bad error messages.
277+
(`#20569 <https://github.com/rocq-prover/rocq/pull/20569>`_,
278+
by Thomas Lamiaux).
162279
- **Added:**
163280
`rename` (in `Ltac1CompatNotations`), `eassumption`, `cycle`, and `exfalso` Ltac2 notations
164281
(`#20197 <https://github.com/rocq-prover/rocq/pull/20197>`_,
@@ -220,6 +337,9 @@ Ltac2 language
220337
i.e. `let x := @y in constr:($hyp:x)` is equivalent to `constr:(&y)`
221338
(`#20656 <https://github.com/rocq-prover/rocq/pull/20656>`_,
222339
by Gaëtan Gilbert).
340+
341+
.. _91ltac2notationfix:
342+
223343
- **Fixed:**
224344
Ltac2 in terms in notations is more aware of the notation variables it uses,
225345
providing early failure when the variable is instantiated with an invalid term,
@@ -295,6 +415,9 @@ Commands and options
295415
(`#20107 <https://github.com/coq/coq/pull/20107>`_,
296416
fixes `#20042 <https://github.com/coq/coq/issues/20042>`_,
297417
by Gaëtan Gilbert).
418+
419+
.. _91refinedef:
420+
298421
- **Added:**
299422
support for the :attr:`refine` attribute to definitions and (co)fixpoints
300423
(`#20355 <https://github.com/coq/coq/pull/20355>`_,
@@ -356,6 +479,9 @@ Infrastructure and dependencies
356479
and minimum supported OCamlfind version is now 1.9.1 (instead of 1.8.1)
357480
(`#20576 <https://github.com/rocq-prover/rocq/pull/20576>`_,
358481
by Gaëtan Gilbert).
482+
483+
.. _91relocatable:
484+
359485
- **Added:**
360486
Rocq can be compile-time configured to be relocatable,
361487
using `./configure -relocatable` instead of e.g. `./configure -prefix /some/path`.
@@ -381,6 +507,8 @@ Infrastructure and dependencies
381507
Extraction
382508
^^^^^^^^^^
383509

510+
.. _91extractsortpoly:
511+
384512
- **Fixed:**
385513
extraction handles sort polymorphic definitions
386514
(`#20655 <https://github.com/rocq-prover/rocq/pull/20655>`_,

0 commit comments

Comments
 (0)