* Thu Mar 07 2024 Aaron Puchert <aaronpuchert@alice-dsl.net>
- Update to version 8.19.1.
* Fixed incorrect abstraction of sort variables for opaque
constants leading to an inconsistency.
* Fixed memory corruption with `vm_compute` (rare but more
likely with OCaml 5.1).
* "Found no matching notation to enable or disable" is now a
warning instead of an error.
* Fixed undeclared universe with multiple uses of `abstract`.
* Fixed incorrect printing of constructor values with multiple
arguments, and over-parenthesizing of constructor printing.
* Fixed incorrect declared type for Ltac2.FMap.fold.
* Sun Jan 28 2024 Aaron Puchert <aaronpuchert@alice-dsl.net>
- Update to version 8.19.0. The most impactful changes:
* Sort polymorphism makes it possible to share common constructs
over `Type`, `Prop` and `SProp`.
* The notation `term%_scope` to set a scope only temporarily (in
addition to `term%scope` for opening a scope applying to all
subterms).
* `lazy`, `simpl`, `cbn` and `cbv` and the associated `Eval` and
`eval` reductions learned to do head reduction when given flag
`head`.
* New Ltac2 APIs, improved Ltac2 `exact` and dynamic building of
Ltac2 term patterns.
* New performance evaluation facilities: `Instructions` to count
CPU instructions used by a command and Profiling system to
produce trace files.
* New command `Attributes` to assign attributes such as
`deprecated` to a library file.
- Notable breaking changes:
* `replace` with `by tac` does not automatically attempt to solve
the generated equality subgoal using the hypotheses. Use `by
first [assumption | symmetry;assumption | tac]` if you need the
previous behaviour.
* Removed old deprecated files from the standard library.
- Use %fdupes in the documentation package.
* Sun Nov 12 2023 Aaron Puchert <aaronpuchert@alice-dsl.net>
- Revert last change: this is now set in ocaml-rpm-macros.
- Increase stack size limit in QEMU user space builds. Here ulimit
has no effect, so we add a wrapper around ocamlopt.opt to PATH
that adds "-s ..." to the qemu-<arch> command line.
* Mon Oct 30 2023 Aaron Puchert <aaronpuchert@alice-dsl.net>
- Increase stack size limit to fix build on riscv64.
* Sat Sep 16 2023 Aaron Puchert <aaronpuchert@alice-dsl.net>
- Update to version 8.18.0.
* The default locality of `Hint` and `Instance` commands was
switched to `export`.
* The universe unification algorithm can now delay the commitment
to a sort (the algorithm used to pick `Type`). Thanks to this
feature many `Prop` and `SProp` annotations can be now omitted.
* Ltac2 supports array literals, maps and sets of primitive
datatypes such as names (of constants, inductive types, etc)
and fine-grained control over profiling.
* The warning system offers new categories, enabling finer
(de)activation of specific warnings. This should be
particularly useful to handle deprecations.
* Many new lemmas useful for teaching analysis with Coq are now
part of the standard library about real numbers.
* The `#[deprecated]` attribute can now be applied to definitions.
* Wed Jun 28 2023 Aaron Puchert <aaronpuchert@alice-dsl.net>
- Update to version 8.17.1.
* Fixed incorrect paths emitted by coqdep in some cases for META
files which prevented dune builds for plugins from working
correctly.
* Fixed shadowing of record fields in extraction to OCaml.
* Fixed an impossible-to-turn-off debug message "backtracking and
redoing byextend on ...".
* Fixed a major memory regression affecting MathComp 2.
- Classify desktop entry under Science instead of Education.
- Add screenshot URL to AppStream metadata.
* Tue Mar 28 2023 Aaron Puchert <aaronpuchert@alice-dsl.net>
- Update to version 8.17.0.
* Fixed a logical inconsistency due to `vm_compute` in presence
of side-effects in the enviroment (e.g. using Back or Fail).
* It is now possible to dynamically enable or disable notations.
* Support multiple scopes in `Arguments` and `Bind Scope`.
* The tactics chapter of the manual has many improvements in
presentation and wording. The documented grammar is semi-
automatically checked for consistency with the implementation.
* Fixes to the `auto` and `eauto` tactics, to respect hint
priorities and the documented use of simple apply. This is a
potentially breaking change.
* New Ltac2 APIs, deep pattern-matching with `as` clauses and
handling of literals, support for record types and preterms.
* Move from :> to :: syntax for declaring typeclass fields as
instances, fixing a confusion with declaration of coercions.
* Standard library improvements.
* Thu Jan 26 2023 Aaron Puchert <aaronpuchert@alice-dsl.net>
- Build with ocaml-rpm-macros to get proper Requires and Provides
for coq-devel. This should prevent incompatibilities with other
Ocaml libraries when building native objects against coq-devel.
* Sat Nov 26 2022 Aaron Puchert <aaronpuchert@alice-dsl.net>
- Update to version 8.16.1.
* Fixed the conversion of `Prod` values in the native compiler.
* Added `SProp` check for opaque names in conversion.
* Pass the correct environment to compute η-expansion of
cofixpoints in VM and native compilation.
* Fixed an inconsistency with conversion of primitive arrays, and
associated incomplete strong normalization of primitive arrays
with `lazy`.
* `Print Assumptions` treats opaque definitions with missing
proofs (as found in .vos files, produced using -vos) as axioms
instead of ignoring them.
* Thu Sep 08 2022 Aaron Puchert <aaronpuchert@alice-dsl.net>
- Update to version 8.16.0.
* The guard checker (see `Guarded`) now ensures strong
normalization under any reduction strategy.
* Irrelevant terms (in the `SProp` sort) are now squashed to a
dummy value during conversion, fixing a subject reduction
issue and making proof conversion faster.
* Introduction of reversible coercions, which allow coercions
relying on meta-level resolution such as type-classes or
canonical structures. Also allow coercions that do not fullfill
the uniform inheritance condition.
* Generalized rewriting support for rewriting with `Type`-valued
relations and in `Type` contexts, using the
`Classes.CMorphisms` library.
* Added the boolean equality scheme command for decidable
inductive types.
* Added a `Print Notation` command.
* Incompatibilities in name generation for Program obligations,
`eauto` treatment of tactic failure levels, use of `ident` in
notations, parsing of module expressions.
* Standard library reorganization and deprecations.
* Improve the treatment of standard library numbers by
`Extraction`.
- Coq requires ocamlfind at runtime now.
* Wed Jun 01 2022 Aaron Puchert <aaronpuchert@alice-dsl.net>
- Update to version 8.15.2.
* Tactics `intuition` and `dintuition` use
`Tauto.intuition_solver` (defined as `auto with *`) instead of
hardcoding `auto with *`. This makes it possible to change the
default solver with `Ltac Tauto.intuition_solver ::= ...`.
* Fixed an uncaught exception `UnableToUnify` with
bidirectionality hints.
* Fixed multiple CoqIDE bugs.
* Fixed an incorrect implementation of `SFClassify`, allowing for
a proof of `False` since 8.11.0, due to Axioms present in
`Float.Axioms`.
- Rename coq.desktop to fr.inria.coq.coqide.desktop as the
documentation suggests, add an accompanying metainfo file.
- Declare documentation as noarch.
* Thu Mar 24 2022 Aaron Puchert <aaronpuchert@alice-dsl.net>
- Update to version 8.15.1.
* Fixes an inconsistency when using module subtyping with
inductive types.
* Speeds up CoqIDE on large files.
* Fixes a bug where `coqc -vok` was not creating a .vok file.
* Fixes a regression in `cbn`.
* Improves usability of schemes with `elim foo using scheme with
(P0 := ...)` (the `P0` name was not accessible in 8.15.0).
* Sat Jan 15 2022 Aaron Puchert <aaronpuchert@alice-dsl.net>
- Update to version 8.15.0.
* The `apply with` tactic no longer renames arguments unless
the compatibility flag `Apply With Renaming` is set.
* Improvements to the `auto` tactic family, fixing `Hint Unfold`
behavior, and generalizing the use of discrimination nets.
* The `typeclasses eauto` tactic has a new `best_effort` option
allowing it to return partial solutions to a proof search
problem, depending on the mode declarations associated to each
constraint. This mode is used by typeclass resolution during
type inference to provide more precise error messages.
* Many commands and options were deprecated or removed after
deprecation and more consistently support locality attributes.
* The `Import` command is extended with `import_categories` to
select the components of a module to import or not, including
features such as hints, coercions, and notations.
* A visual Ltac debugger is now available in CoqIDE.
* For more details, see refman/changes.html in coq-doc.
* Sun Dec 12 2021 Aaron Puchert <aaronpuchert@alice-dsl.net>
- Update to version 8.14.1.
* Fixed the implementation of persistent arrays used by the VM
and native compute so that it uses a uniform representation.
Previously, storing primitive floats inside primitive arrays
could cause memory corruption.
* Fixed missing registration of universe constraints in Module
Type elaboration.
* Made `abstract` more robust with respect to Ltac `constr`
bindings containing existential variables.
* Correct support of trailing `let` by tactic `specialize`.
* Fixed an anomaly with `Extraction Conservative Types` when
extracting pattern-matching on singleton types.
* Regular error instead of an anomaly when calling `Separate
Extraction` in a module.
* Wed Oct 20 2021 Aaron Puchert <aaronpuchert@alice-dsl.net>
- Update to version 8.14.0.
* The internal representation of match has changed to a more
space-efficient and cleaner structure, allowing the fix of a
completeness issue with cumulative inductive types in the type-
checker. The internal representation is now closer to the user-
level view of match, where the argument context of branches and
the inductive binders in and as do not carry type annotations.
* A new coqnative binary performs separate native compilation of
libraries, starting from a .vo file. It is supported by
coq_makefile.
* Improvements to typeclasses and canonical structure resolution,
allowing more terms to be considered as classes or keys.
* More control over notations declarations and support for
primitive types in string and number notations.
* Removal of deprecated tactics, notably omega, which has been
replaced by a greatly improved lia, along with many bug fixes.
* New Ltac2 APIs for interaction with Ltac1, manipulation of
inductive types and printing.
* Many changes and additions to the standard library in the
numbers, vectors and lists libraries. A new signed primitive
integers library Sint63 is available in addition to the
unsigned Uint63 library.
* For more details, see refman/changes.html in coq-doc.
Version: 8.13.2-bp154.1.44
* Sat Sep 04 2021 Aaron Puchert <aaronpuchert@alice-dsl.net>
- Add documentation package based on github.com/coq/doc until we
can build the documentation directly in OBS.
* Mon Apr 12 2021 Aaron Puchert <aaronpuchert@alice-dsl.net>
- Update to version 8.13.2.
* Fix crash when using vm_compute on an irreducible PArray.set.
* Fix crash when loading .vo files containing a vm_compute
normalized primitive array.
* Fix Ltac2.Array.init computational complexity.
* Thu Feb 25 2021 Aaron Puchert <aaronpuchert@alice-dsl.net>
- Update to version 8.13.1.
* Fix arities of VM opcodes for some floating-point operations
that could cause memory corruption.
* Sun Feb 07 2021 Aaron Puchert <aaronpuchert@alice-dsl.net>
- Update to version 8.13.0.
* Introduction of primitive persistent arrays in the core
language, implemented using imperative persistent arrays.
* Introduction of definitional proof irrelevance for the equality
type defined in the SProp sort.
* Cumulative record and inductive type declarations can now
specify the variance of their universes.
* Various bugfixes and uniformization of behavior with respect to
the use of implicit arguments and the handling of existential
variables in declarations, unification and tactics.
* New warning for unused variables in catch-all match branches
that match multiple distinct patterns.
* New warning for Hint commands outside sections without a
locality attribute, whose goal is to eventually remove the
fragile default behavior of importing hints only when using
Require. The recommended fix is to declare hints as export,
instead of the current default global, meaning that they are
imported through Require Import only, not Require.
* General support for boolean attributes.
* Many improvements to the handling of notations, including
number notations, recursive notations and notations with
bindings. A new algorithm chooses the most precise notation
available to print an expression, which might introduce changes
in printing behavior.
* Tactic improvements in lia and its zify preprocessing step,
now supporting reasoning on boolean operators such as Z.leb and
supporting primitive integers Int63.
* Typing flags can now be specified per-constant / inductive.
* Improvements to the reference manual including updated syntax
descriptions that match Coq's grammar in several chapters, and
splitting parts of the tactics chapter to independent sections.
- Add build flag to turn off building of the IDE.
* Sun Dec 13 2020 Aaron Puchert <aaronpuchert@alice-dsl.net>
- Update to version 8.12.2. Fixes two impacting 8.12 regressions:
* Fixed a regression causing notations mentioning a coercion to
be ignored.
* Fixed a regression causing incomplete inference of implicit
arguments in exists.
* Tue Nov 17 2020 Aaron Puchert <aaronpuchert@alice-dsl.net>
- Update to version 8.12.1. This contains mostly bug fixes:
* Polymorphic side-effects inside monomorphic definitions were
incorrectly handled as not inlined. This allowed deriving an
inconsistency.
* Regression in error reporting after SSReflect's case tactic.
A generic error message "Could not fill dependent hole in
apply" was reported for any error following case or elim.
* Several bugs with Search.
* The details environment introduced in coqdoc in Coq 8.12 can
now be used as advertised in the reference manual.
* View menu "Display parentheses" introduced in CoqIDE in
Coq 8.12 now works correctly.
* Thu Aug 20 2020 Martin Li?ka <mliska@suse.cz>
- Use memoryperjob constraint instead of %limit_build macro.
* Tue Jul 28 2020 Aaron Puchert <aaronpuchert@alice-dsl.net>
- Update to version 8.12.0.
* New binder notation for non-maximal implicit arguments using []
allowing to set and see the implicit status of arguments
immediately.
* New notation Inductive "I A | x : s := ..." to distinguish the
uniform from the non-uniform parameters in inductive
definitions.
* More robust and expressive treatment of implicit inductive
parameters in inductive declarations.
* Improvements in the treatment of implicit arguments and
partially applied constants in notations, parsing of
hexadecimal number notation and better handling of scopes and
coercions for printing.
* A correct and efficient coercion coherence checking algorithm,
avoiding spurious or duplicate warnings.
* An improved Search command which accepts complex queries. This
takes precedence over the now deprecated ssreflect search.
* Many additions and improvements of the standard library.
* Improvements to the reference manual include a more logical
organization of chapters along with updated syntax descriptions
that match Coq's grammar in most but not all chapters.
* Sat Jun 06 2020 Aaron Puchert <aaronpuchert@alice-dsl.net>
- Update to version 8.11.2.
* Fixed a kernel issue where using Require inside a section
caused an anomaly when closing the section.
* Fixed normalization in conclusion of custom induction scheme.
* Fixed a loss of location of some tactic errors.
* Ignore -native-compiler option when built without native
compute support.
* Fixed a segfault issue with CoqIDE completion.
* Highlighting style is now consistently applied to all three
buffers of CoqIDE.
* Wed Apr 08 2020 Aaron Puchert <aaronpuchert@alice-dsl.net>
- Update to version 8.11.1, with upstream support for OCaml 4.10.
* Allow more inductive types in Unset Positivity Checking mode.
* Fixed bugs in dealing with precedence of notations in custom
entries.
* In primitive floats, print a warning when parsing a decimal
value that is not exactly a binary64 floating-point number.
For instance, parsing 0.1 will print a warning whereas parsing
0.5 won't.
* Fixed an issue in CoqIDE about compiling file paths containing
spaces.
* Fixed an issue where Extraction Implicit on the constructor of
a record was leading to an anomaly.
- Remove now obsolete ocaml-410-build.patch.
* Sun Mar 29 2020 Aaron Puchert <aaronpuchert@alice-dsl.net>
- The num library is required for OCaml 4.06 or later.
- Add ocaml-410-build.patch: fix build with OCaml 4.10.
* Thu Feb 06 2020 Aaron Puchert <aaronpuchert@alice-dsl.net>
- Update to version 8.11.0.
* Ltac2, a new tactic language for writing more robust larger
scale tactics, with built-in support for datatypes and the
multi-goal tactic monad.
* Primitive floats are integrated in terms and follow the binary64
format of the IEEE 754 standard, as specified in the
Coq.Float.Floats library.
* Many other cleanups and improvements have been performed and
are further described in the changelog.
* Special note on compatibility: Fixed bugs of Export and Import
that can have a significant impact on user developments.
- Drop unneeded empty *.vos files.
* Sat Nov 30 2019 Aaron Puchert <aaronpuchert@alice-dsl.net>
- Update to version 8.10.2.
* Fixed a critical bug of template polymorphism and nonlinear
universes;
* Fixed a few anomalies;
* Fixed an 8.10 regression related to the printing of coercions
associated to notations;
* Fixed uneven dimensions of CoqIDE panels when window has been
resized;
* Fixed queries in CoqIDE.
* Tue Nov 12 2019 Aaron Puchert <aaronpuchert@alice-dsl.net>
- Update to version 8.10.0.
* some quality-of-life bug fixes;
* a critical bug fix related to template polymorphism;
* native 63-bit machine integers;
* a new sort of definitionally proof-irrelevant propositions: SProp;
* private universes for opaque polymorphic constants;
* string notations and numeral notations;
* a new simplex-based proof engine for the tactics lia, nia, lra
and nra;
* new introduction patterns for SSReflect;
* a tactic to rewrite under binders: under;
* easy input of non-ASCII symbols in CoqIDE, which now uses GTK3.
- Update to version 8.10.1.
* Fix proof of False when using SProp
* Fix an anomaly when unsolved evar in Add Ring
* Fix Ltac regression in binding free names in uconstr
* Fix handling of unicode input before space
* Fix custom extraction of inductives to JSON
- Update version requirements.
* Tue Nov 12 2019 Aaron Puchert <aaronpuchert@alice-dsl.net>
- Fix findlib build dependency.
* Sun Nov 03 2019 Aaron Puchert <aaronpuchert@alice-dsl.net>
- Use memory-constraints package to limit number of threads.
- Add dependencies to fix installation issues.
* Wed Sep 25 2019 Aaron Puchert <aaronpuchert@alice-dsl.net>
- Prevent OOM by limiting the number of threads.
* Tue Sep 24 2019 Aaron Puchert <aaronpuchert@alice-dsl.net>
- Change license tag to LGPL-2.1-only.
- Remove obsolete %defattr and other spec-cleaner suggestions.
* Sat Aug 03 2019 Aaron Puchert <aaronpuchert@alice-dsl.net>
- Update to version 8.9.0.
* Kernel: mutually recursive records are now supported.
* Notations:
+ Support for autonomous grammars of terms called “custom
entries”.
+ Deprecated notations of the standard library will be removed
in the next version of Coq, see the next subsection for a
script to ease porting.
+ Added the "Numeral Notation" command for registering decimal
numeral notations for custom types.
* Tactics: Introduction tactics intro/intros on a goal that is an
existential variable now force a refinement of the goal into a
dependent product rather than failing.
* Decision procedures: deprecation of tactic romega in favor of
lia and removal of fourier, replaced by lra which subsumes it.
* Proof language: focusing bracket { now supports named goals,
e.g. [x]:{ will focus on a goal (existential variable) named x.
* SSReflect: the implementation of delayed clear was simplified:
the variables are always renamed using inaccessible names when
the clear switch is processed and finally cleared at the end of
the intro pattern. In addition to that, the use-and-discard
flag {} typical of rewrite rules can now be also applied to
views, e.g. => {}/v applies v and then clears v.
See Section Introduction in the context.
* Vernacular:
+ Experimental support for attributes on commands, as in
"#[local] Lemma foo : bar". Tactics and tactic notations now
support the deprecated attribute.
+ Removed deprecated commands "Arguments Scope" and "Implicit
Arguments" in favor of "Arguments (scopes)" and "Arguments
(implicits)".
+ New flag "Uniform Inductive Parameters" to avoid repeating
uniform parameters in constructor declarations.
+ New commands "Hint Variables" and "Hint Constants" for
controlling the opacity status of variables and constants in
hint databases. It is recommended to always use these
commands after creating a hint database with Create HintDb.
+ Multiple sections with the same name are now allowed.
* Library: additions and changes in the VectorDef, Ascii, and
String libraries. Syntax notations are now available only when
using "Import" of libraries and not merely "Require".
(Source of incompatibility, see Change Log for details)
* Toplevels: coqtop and coqide can now display diffs between
proof steps in color, using the Diffs option.
* Documentation: we integrated a large number of fixes to the new
Sphinx documentation.
* Tools: removed gallina utility and homebrewed Emacs mode.
- Update to version 8.9.1, which contains
* some quality-of-life bug fixes,
* many improvements to the documentation,
* a critical bug fix related to primitive projections and
native_compute.
- Remove unnecessary dependencies: ncurses-devel is no longer
needed, and the docs aren't build with TeX and hevea anymore.
- Remove dependencies that are automatically detected.
- Remove icon that is also available from the tarball.
- Replace some identical files by symlinks.
- Fix executable bits and shebangs.
- Separate runtime from devel files by ending.
- Use %license for LICENSE and CREDITS.
- Be more explicit in %files.
- Add mime type for Coq source files so they open with the IDE.
- Add rpmlintrc for issues that are hard to fix.
* Thu Oct 11 2018 ptrommler@icloud.com
- update to 8.8.2