-
Changes in Coq since the last WG
-
Foreword
-
Aim
-
Methodology
-
Performances
-
8708: Pierre-Marie improved the performance of conversion by changing an unfolding heuristic.
-
8841: Pierre-Marie implemented a performance optimization
-
8824: Pierre-Marie improved the performance of the kernel by dropping convertibility checks on domains of pattern branches in pattern-matching
-
8255: Pierre-Marie improved type-checking of application nodes
-
Features
-
8870: Maxime updated the -bytecode-compiler and -native-compiler flags of coqc and coqtop
-
8515: Gaëtan redesigned how commands declare and handle their attributes (8515, 8917)
-
8766: Emilio implemented basic support in Nametab for efficient completion
-
8779: Pierre-Marie removed the “implicit tactic” feature
-
8451: Gaëtan added a Subgraph option to the Print Universes command
-
8987: Maxime deprecated hint declaration/removal with no specified database
-
9001: Emilio removed the deprecated option Automatic Introduction
-
8920: Gaëtan deprecated the “Typeclasses Axioms Are Instances” option
-
8890: Hugo improved some interaction between notations and coercions
-
8850: Gaëtan added private universes for opaque polymorphic constants
-
8965: Jason enabled user-defined string notations
-
8811: Gaëtan added EConstr-aware functions to produce kernel entries
-
9015: Vincent added a warning when, in type classes, the RHS of :> is not a class
-
Build-system, CI
-
Emilio improved the dune-based build-system (8802, 8762, 8744, 8903, 8912, 8901, 8960, 8959, 9035, 8948, 9068, 9106, 9151, 9147)
-
Théo improved default.nix (8821, 8836)
-
8711: Emilio improved CI for MS-Windows
-
8868: Vincent updated the Docker image used for CI
-
8918: Gaëtan fixed overlays on Windows CI
-
8927: Kamil Trzciński (from Gitlab) improved performances of CI on gitlab
-
Vincent proposed nix helpers for debugging external projects from CI (8978, 9057)
-
9018: Emilio provided a script to automatically setup overlays
-
9033: Gaëtan fixed installation of the stdlib documentation
-
9016: Gaëtan improved the log of failed builds on appveyor
-
9021: Gaëtan improved the merging script
-
9087: Maxime added a job building the stdlib with async-proofs on
-
Test suite
-
Hugo improved the test-suite (8786, 9193)
-
8655: Vincent made the test-suite run the checker on all generated .vo files
-
Documentation
-
github user sampablokuper improved the manual (8799, 8798, 8766)
-
8813: Vincent fixed a few rendering issues in the manual
-
8737: Tej Chajed improved a few error messages w.r.t. record fields
-
8851: Matthieu wrote the credits for Coq 8.9
-
Théo improved the manual (8845, 9036, 9121, 9196, 9073)
-
8809: Emilio improved the developer’s documentation
-
8884: Guillaume improved the rendering of the credits
-
8926: Théo fixed the CHANGES file
-
Théo documented the merging process (8098) and the creation of code owner teams (9053)
-
8408: Enrico improved the HTML rendering of the ssreflect library documentation
-
8894: Gaëtan improved an error message related to polymorphic universes
-
8975: github user soraros improved the documentation of the micromega tactics
-
8911: Jim ensured that all flags and options are documented
-
9150: Emilio enabled the “incorrect doc comment” warning and fixed comments accordingly
-
Standard library
-
8365: 李弈帥 (Yishuai Li) contributed the ByteVector type to the Strings library
-
8812: Vincent made ssreflect use Coqlib
-
8815: 李弈帥 (Yishuai Li) contributed lemmas about numbers and vectors
-
8888: Vincent Semeria proved that the set of real numbers is uncountable
-
8807: Larry Darryl Lee Jr. added two lemmas to the List library
-
7221: 李垚 (Yao Li) implemented the OrderedTypeEx interface for strings
-
Refactoring
-
Hugo performed some cleaning in the kernel
-
8707: Pierre-Marie separated the kernel implementation for the term cache and its reuse in the out-of-kernel CBV reduction, allow[ing] for further cleanups of static or unused data
-
8777: Pierre-Marie cleaned the side-effects API, moving it into Safe_typing
-
8753: Emilio made config a “proper” library
-
8684: Maxime did some cleaning in the kernel
-
8825: Emilio moved object_name into Libobject
-
8688: Hugo made the evar_map printers from Termops take an environment as arguments
-
8844: Gaëtan moved the abstract tactical to its own module
-
8871: Emilio moved a few functions from Libnames to Nametab
-
8773: Maxime refactored the checker
-
Emilio renamed Vernacinterp to Vernacextend (8919, 9003)
-
8914: Emilio decoupled CoqProject_file and Feedback
-
8902: Emilio added CAst.t nodes into the tactic AST
-
7925: Pierre-Marie moved Names.transparent_state to its own module TransparentState
-
8982: Emilio improved the control of “open proof” exceptions
-
8929: Gaëtan refactored liftings
-
Emilio refactored the toplevel
-
8705: Emilio turned hooks into optional arguments
-
9169: Emilio ported rtauto and auto to the new proof engine
-
CoqPP
-
Pierre-Marie worked on coqpp
-
8667: Emilio derived gramlib from Daniel de Rauglaudre’s camlp5 (8667, 9023, 9064, 9065)
-
8843: Gaëtan removed .ml4 files from coqIDE sources
-
Pierre-Marie removed the deprecated Token module and dead-code from gramlib (8899, 8907, 8915, 9069)
-
Pierre-Marie ported the parser to the type-safe API of Camlp5 (introduced in version 7.06) (8923), but reverted this change (8944) and made it again (9051)
-
Gaëtan fixed CoqMakefile w.r.t. .mlg dependencies (8966)
-
Emilio and Gaëtan changed the make-based build-system to pack and link gramlib (8985, 9074)
-
8945: Emilio finally removed all dependencies to Camlp5
-
9127: Pierre-Marie remover leftover code that used to handle ml4 files
-
Cleaning
-
8741: Matthieu improved the handling of evars in type-classes
-
8780, 8781: Gaëtan performed some cleaning w.r.t. projections
-
8864: Maxime removed many calls to Environ.empty_env
-
8752: Gaëtan removed fragile pattern matching in CClosure
-
8852: Matthieu cleaned the handling of obligation evars
-
8866: Gaëtan added a check for universe instances in Typing
-
8889: Matthieu improved “Program” hooks
-
8760: Gaëtan improved the printing of universe names
-
7881: Github user whitequark reimplemented Store using Dyn
-
Emilio removed the cook_proof and start_proof stubs from Pfedit (8999, 9002)
-
9017: Jim removed undocumented options for profiling in ssreflect
-
8998: Emilio removed the Proof_type module
-
9046: Gaëtan made the Goptions.declare_* functions return unit
-
9072: Maxime cleaned the STM flags
-
9102: Emilio removed some aliases from Tacexpr
-
8096: Maxime enhanced the libobject API
-
9172: Emilio reworked the proof interface
-
Bug fixes
-
Hugo fixed bugs in notations (8806, 8867, 8187)
-
Guillaume fixed bugs in CoqIDE (8803, 8804)
-
Matthieu fixed a type-classes bug (8849)
-
Pierre-Marie fixed a bug in Ltac (8759)
-
Emilio fixed an anomaly in printing (8834)
-
Hugo fixed a bug related to tactic-in-terms and notation scopes (8745)
-
Gaëtan fixed a few bugs in the checker (8877, 8882, 8874, 8996)
-
Pierre-Marie fixed an algorithmic issue in the vernac guardedness checker (7952)
-
Enrico made the ssreflect dispatch intro pattern stricter (8856)
-
Enrico reverted 7936: “Do not allow spliting in res_pf, this is reserved for pretyping” (8934)
-
Jasper Hugunin made the behavior of “Automatic Introduction” more uniform (8820)
-
Maxime fixed the substitution of inline global reference in tactics (8972)
-
Pierre-Marie improved the handling of bound universe names (8601)
-
Hugo fixed the grounding of open terms in fixpoints (8892)
-
Gaëtan fixed bugs related to universes (8936, 8854, 8974)
-
Vincent fixed the VM compilation of int31 eliminators (8886)
-
Enrico fixed typeclasses resolution in case/elim patterns (8955)
-
Gaëtan fixed the top name in CoqIDE (8991)
-
Hugo fixed a few issues in CoqIDE (8968)
-
Enrico fixed some race in the stm (8712)
-
Gaëtan made the Init module not exported (9013)
-
Jim fixed bugs in proof diffing (8967, 9101)
-
Gaëtan prevented redeclaration of constraints in Include (8995)
-
Maxime fixed a race condition triggered by fresh universe generation (9155)
-
Hugo fixed the debug printers: gramlib needs Loc (9197)
-
Hugo fixed a warning that was too often raised
-
Other PRs merged in the period