aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2018-10-27Merge PR #8741: [typeclasses] functionalize typeclass evar handlingPierre-Marie Pédrot
2018-10-26[typeclasses] functionalize typeclass evar handlingMatthieu Sozeau
This avoids all the side effects associated with the manipulation of an unresolvable flag. In the new design: - The evar_map stores a set of evars that are candidates for typeclass resolution, which can be retrieved and set. We maintain the invariant that it always contains only undefined evars. - At the creation time of an evar (new_evar), we classify it as a potential candidate of resolution. - This uses a hook to test if the conclusion ends in a typeclass application. (hook set in typeclasses.ml) - This is an approximation if the conclusion is an existential (i.e. not yet determined). In that case we register the evar as potentially a typeclass instance, and later phases must consider that case, dropping the evar if it is not a typeclass. - One can pass the ~typeclass_candidate:false flag to new_evar to prevent classification entirely. Typically this is for new goals which should not ever be considered to be typeclass resolution candidates. - One can mark a subset of evars unresolvable later if needed. Typically for clausenv, and marking future goals as unresolvable even if they are typeclass goals. For clausenv for example, after turing metas into evars we first (optionally) try a typeclass resolution on the newly created evars and only then mark the remaining newly created evars as subgoals. The intent of the code looks clearer now. This should prevent keeping testing if undefined evars are classes all the time and crawling large sets when no typeclasses are present. - Typeclass candidate evars stay candidates through restriction/evar-evar solutions. - Evd.add uses ~typeclass_candidate:false to avoid recomputing if the new evar is a candidate. There's a deficiency in the API, in most use cases of Evd.add we should rather use a: `Evd.update_evar_info : evar_map -> Evar.t -> (evar_info -> evar_info) -> evar_map` Usually it is only about nf_evar'ing the evar_info's contents, which doesn't change the evar candidate status. - Typeclass resolution can now handle the set of candidates functionally: it always starts from the set of candidates (and not the whole undefined_map) and a filter on it, potentially splitting it in connected components, does proof search for each component in an evar_map with an empty set of typeclass evars (allowing clean reentrancy), then reinstates the potential remaining unsolved components and filtered out typeclass evars at the end of resolution. This means no more marking of resolvability/unresolvability everywhere, and hopefully a more efficient implementation in general. - This is on top of the cleanup of evar_info's currently but can be made independent. [typeclasses] Fix cases.ml: none of the new_evars should be typeclass candidates Solve bug in inheritance of flags in evar-evar solutions. Renaming unresolvable to typeclass_candidate (positive) and fix maybe_typeclass_hook
2018-10-26Fix overlay for this extension of the PR. To be removed.Matthieu Sozeau
2018-10-26PR 8671: Add overlay for plugin-tutorialMatthieu Sozeau
2018-10-26Cleanup evar_extra: remove evar_info's store and add maps to evar_mapMatthieu Sozeau
2018-10-26Merge PR #8684: Remove a few circumvolutions around parameters of inductive ↵Gaëtan Gilbert
entries
2018-10-26Merge PR #8687: Mini reorganization type of global constr of globalPierre-Marie Pédrot
2018-10-26Merge PR #8814: Comment Environ.set_universesMaxime Dénès
2018-10-26Merge PR #8803: Fix issue #8800 (gtk warning about ↵Pierre-Marie Pédrot
gtk_scrolled_window_add_with_viewport)
2018-10-26Merge PR #8804: Fix issue #8801 (uncaught Not_found after F1 sequence in coqide)Pierre-Marie Pédrot
2018-10-26Overlay for kernel entries changeMaxime Dénès
2018-10-26Remove a few circumvolutions around parameters of inductive entriesMaxime Dénès
2018-10-26Merge PR #8744: [dune] Compile debug and checker printers.Gaëtan Gilbert
2018-10-26Merge PR #8753: [build] Refactoring of config lib and ocamldebug tweaks.Gaëtan Gilbert
2018-10-26Merge PR #8821: [default.nix] Update to dune 1.4.Vincent Laporte
2018-10-26Merge PR #8777: Move side-effects into Safe_typingMaxime Dénès
2018-10-26Merge PR #8707: Separate cache representation between CClosure and CBVMaxime Dénès
2018-10-26Merge PR #7186: Moving `fold_constr_with_full_binders` to a placeMaxime Dénès
2018-10-26[default.nix] Clean-up: use camlp5 instead of synonymous camlp5_strict.Théo Zimmermann
2018-10-25[default.nix] Update to dune 1.4.Théo Zimmermann
2018-10-25Merge PR #8762: [dune] [opam] Move to OPAM 2.0Gaëtan Gilbert
2018-10-24Merge PR #8813: Fix a few rendering issues in the manualThéo Zimmermann
2018-10-24Comment Environ.set_universesGaëtan Gilbert
I looked for this information and forgot about it a couple times so let's put it in writing.
2018-10-24Merge PR #8776: Replace non-idiomatic "dead-alleys" with idiomatic "dead-ends"Théo Zimmermann
2018-10-24[Manual] Prevent an irrelevant warning to show upVincent Laporte
2018-10-24[Manual] Avoid using deprecated “Focus”Vincent Laporte
2018-10-24[Manual] Fix rendering of an exampleVincent Laporte
2018-10-24[Manual] TypoVincent Laporte
2018-10-24[Manual] Fix an exampleVincent Laporte
The `Undo` command is not reliable.
2018-10-24[Manual] Fix layout of a listVincent Laporte
2018-10-23Merge PR #8806: Fixing #8794: anomaly with abbreviation binding both a term ↵Emilio Jesus Gallego Arias
and a binder
2018-10-23Merge PR #8365: Strings: add ByteVectorHugo Herbelin
2018-10-23[dune] [opam] Move to OPAM 2.0Emilio Jesus Gallego Arias
We need to update in Docker: - dune to 1.4.0: as it honors `-p` on test stanzas - dune-release to 1.1.0: support for OPAM 2.0 + fixes This makes `dune-release distrib` / `dune-release opam pkg` work. TODO: we need to figure out what is going on with the versioning. Should we do `dune subst` on `pinned`?
2018-10-23Merge PR #8798: Order Greek letters consistently w/rest of documentThéo Zimmermann
2018-10-23Merge PR #8799: Fix formatting. Use standard if..then grammar.Théo Zimmermann
2018-10-23Fixing #8794 (anomaly with abbreviation involving both term and binders).Hugo Herbelin
2018-10-23Merge PR #8802: [dune] Install man pages + remove two obsolete ones.Théo Zimmermann
2018-10-23Fix issue #8801.Guillaume Melquiond
When opening the query pane, do not try to focus on a query tab that no longer exists.
2018-10-23Fix issue #8800.Guillaume Melquiond
Gtk complains that we are not using gtk_scrolled_window_add_with_viewport, so let us do.
2018-10-23Merge PR #8786: Adding a regression test for bug #8785: universe constraints ↵Pierre-Marie Pédrot
missing
2018-10-23Merge PR #8797: [doc] [api] Update `odoc` to new release 1.3.0Gaëtan Gilbert
2018-10-23[dune] Install man pages + remove two obsolete ones.Emilio Jesus Gallego Arias
2018-10-23Fix formatting. Use standard if..then grammar.Sam Pablo Kuper
2018-10-23Order Greek letters consistently w/rest of documentSam Pablo Kuper
2018-10-23[dune] Compile debug and checker printers.Emilio Jesus Gallego Arias
As noted by Gäetan, we didn't compile these. We also provide a recipe to run `ocamldebug`. Try (after a build): ``` dune exec dev/dune-dbg (ocd) source dune_db ``` or ``` dune exec dev/dune-dbg checker (ocd) source checker_dune_db ``` for the checker.
2018-10-23[build] Refactoring to config lib and ocamldebug tweaks.Emilio Jesus Gallego Arias
We make `config` into a properly library. This is more uniform and useful for some clients. This also matches what was done in Dune. Next step would be to push dependencies on `Coq_config` upwards, only the actual toplevel binaries should depend on it. We also remove the stale `camlp5.dbg` and refactor the dbg files a bit, isolating the bits that are specific to the plugin / lib building method used by makefile.
2018-10-22[doc] [api] Update `odoc` to new release 1.3.0Emilio Jesus Gallego Arias
This includes many changes, please have a look at the newly generated docs.
2018-10-22Merge PR #8708: Stupid but critical unfolding heuristic.Maxime Dénès
2018-10-22Merge PR #8784: [dune] Remove rule for cLexer.ml4 -> cLexer.mlThéo Zimmermann
2018-10-21Adding a regression test for bug #8785 (missing univ constraints registration).Hugo Herbelin