aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2017-04-13[toplevel] Don't print goals if there is no pending proof.Emilio Jesus Gallego Arias
2017-04-12Merge PR#441: Port Toplevel to the Stm APIMaxime Dénès
2017-04-12[toplevel] [stm] cleanup in module openEmilio Jesus Gallego Arias
2017-04-12[stm] [nit] Centralize compile-time debug flag.Emilio Jesus Gallego Arias
2017-04-12[stm] Improve error messages on add/parse.Emilio Jesus Gallego Arias
As suggested by @psteckler in #524 , we give more explicit information about what is wrong. We also provide some debug information for the possible dangerous case of having the tip go out of sync with the real installed state (which will make parsing fail if there was some changes to the parser). We also fix a couple of typos noticed by Paul, thanks Paul.
2017-04-12[flags] Documentation and a minor tweak.Emilio Jesus Gallego Arias
Mostly documentation and making a couple of local flags, local.
2017-04-12[vernac] vernacentries.mli cleanupEmilio Jesus Gallego Arias
This header file had accumulated quite a bit of cruft over the years, we clean it up while we are at it. No functional change as all the removed variables/methods were noops long time ago.
2017-04-12[stm] Port the toplevel to the STM.Emilio Jesus Gallego Arias
- We clean-up `Vernac` and make it use the STM API. - Now functions in `Vernac` for use in the toplevel and compiler take an starting `Stateid.t`. - Duplicated `Stm.interp` entry point is removed. - The XML protocol call `interp` is disabled.
2017-04-12[stm] Move main parsing entry point to the STM.Emilio Jesus Gallego Arias
Mainly due to notations, proof modes and plugins, parsing in Coq is stateful, so we expose a state-aware parsing API in the STM. This is a first move to unify all the parsing entry points in the Stm and the toplevel, and allows STM clients to control their input stream properly. This greatly helps for instance, with whole-document parsing. This commit supersedes PR#204.
2017-04-12[stm] Remove edit_id.Emilio Jesus Gallego Arias
We remove `edit_id` from the STM. In PIDE they serve a different purpose, however in Coq they were of limited utility and required many special cases all around the code. Indeed, parsing is not an asynchronous operation in Coq, thus having feedback about parsing didn't make much sense. All clients indeed ignore such feedback and handle parsing in a synchronous way. XML protocol clients are unaffected, they rely on the instead on the Fail value. This commit supersedes PR#203.
2017-04-12Merge PR#422: Supporting all kinds of binders, including 'pat, in syntax of ↵Maxime Dénès
record fields.
2017-04-11Merge PR#549: Fast path in weak head reduction of applied atoms.Maxime Dénès
2017-04-11Merge PR#543: Sanitize instance interpretationMaxime Dénès
2017-04-11Merge PR#532: Clean Nsatz implementation.Maxime Dénès
2017-04-11Merge PR#537: Efficient side-effect abstractionMaxime Dénès
2017-04-11Merge PR#379: Introducing evar-insensitive constrsMaxime Dénès
2017-04-10Adding a test for 'rewrite in *' when an evar is solved by side-effect.Pierre-Marie Pédrot
2017-04-10Adding a test for the correctness of normalization in legacy typeclasses.Pierre-Marie Pédrot
This is a test for commit 9d1230d484a2cf519f9cd76dc0f37815f3c6339b.
2017-04-10Documenting the changes introduced by the EConstr branch.Pierre-Marie Pédrot
2017-04-10Revert "refactoring: Reductionops.contextual_reduction_function type"Matej Košík
This reverts commit 470d0d56467a3a587dc34f958ffea8259618d1ae.
2017-04-10Revert "comment: typo"Matej Košík
This reverts commit cd248e01d6834bc43d733c08b5955c332d2146a6.
2017-04-10Revert "refactoring: Names.DirPath.equal"Matej Košík
This reverts commit 0d364f7aa5cee042f0b327966fce35778f3285e0.
2017-04-10Revert "refactoring: Names.DirPath.compare"Matej Košík
This reverts commit 7a51d6a94bdd6cc889cd69fa0fbb5c8a655b2b16.
2017-04-10Revert "refactoring: Names.DirPath.is_empty"Matej Košík
This reverts commit e180cce2384bacaa5ad5b9d6e15b55de8cc913cc.
2017-04-10Revert "simplify: Environ.push_named"Matej Košík
This reverts commit 9394aefa8e519a9e2b1b45659a47d5ff3f15ed16.
2017-04-10Revert "trivial"Matej Košík
This reverts commit 28973285f4b9389ed0610b94ba907684214dd279.
2017-04-10Revert "trivial"Matej Košík
This reverts commit 9b627431516f2cf88312329def9e0ec5e8605a98.
2017-04-10Revert "comments: corrected in the Context module"Matej Košík
This reverts commit 538d8edf708ba049e60e6bc32902ba5fdca720bb.
2017-04-10comments: corrected in the Context moduleMatej Kosik
2017-04-10trivialMatej Kosik
2017-04-10trivialMatej Kosik
2017-04-10simplify: Environ.push_namedMatej Kosik
2017-04-10refactoring: Names.DirPath.is_emptyMatej Kosik
2017-04-10refactoring: Names.DirPath.compareMatej Kosik
2017-04-10refactoring: Names.DirPath.equalMatej Kosik
2017-04-10comment: typoMatej Kosik
2017-04-10refactoring: Reductionops.contextual_reduction_function typeMatej Kosik
2017-04-10Merge PR#547: [toplevel] Remove the feedback printer only on exit.Maxime Dénès
2017-04-10Merge PR#548: [ide] Correctly place warning tags.Maxime Dénès
2017-04-09Merge PR#460: Turning the printing primitive projection compatibility flag ↵Maxime Dénès
off by default
2017-04-09Fix an algorithmic issue in Nsatz.Pierre-Marie Pédrot
We use heaps instead of continuously adding elements to an ordered list, which was quadratic in the worst case. As a byproduct, this solves bug #5359, which was due to a stack overflow on big lists.
2017-04-09Academic prescriptivism strikes back: down with baroque programming in Nsatz.Pierre-Marie Pédrot
Several cleanups were performed. 1. Removal of dead code lurking around. 2. Removal of global variables used to pass arguments to functions, as well as unnecessary mutable state here and there. We rely on state-passing and encapsulated mutable state. 3. Removal of crazy reference manipulation and its replacement with proper list handling, as well as cleaning up the source and taking advantage of invariants. This should solve algorithmic limitations of the previous code. 4. Opacification of some structures to have a clearer idea of the code requirements. 5. Cleaning of debug printing functions. We thunk the computation of the debugging data, whose computation can be costly for no reason, and we rely on Feedback-based interaction instead of Printf-debugging.
2017-04-08Fast path in weak head reduction of applied atoms.Pierre-Marie Pédrot
Instead of calling the whole reduction machirery, we check before reducing that a term is an applied atom, i.e. inductive, constructor, evar or meta. In that case, the abstract machine acts as the identity but needs to destruct and reconstruct the whole term, which can be very costly. This fixes part of bug #5421: vm_compute is very slow at doing nothing, where recomputation of the type of a big inductive was incredibly expensive.
2017-04-08[ide] Correctly place warning tags.Emilio Jesus Gallego Arias
8e07227c5853de78eaed4577eefe908fb84507c0 introduced an incorrect duplicate of `position_error_tag_at_sentence`, which sets the end of the underlining position starting at the end of the sentence, whereas the location in the feedback refers to the beginning, thus it highlights more text than it should. This was missed in 8.6 as it seems that the code was not called. We undo the duplication and fix the bug.
2017-04-08Update the .mailmap file.Guillaume Melquiond
2017-04-08Fix a heuristic used by legacy typeclass resolution.Pierre-Marie Pédrot
The evarmap used by the heuristic could contain resolved evars, which could lead to a failure of backtracking in the EConstr branch. This is experimental and may be to costly.
2017-04-07[stm] remove process_error_hookEmilio Jesus Gallego Arias
`process_error_hook` seems unnecesary, we just call the proper error interpretation.
2017-04-07[stm] remove tactic_being_run hookEmilio Jesus Gallego Arias
`tactic_being_run_hook` was used for the "xml" pluging but I am not sure we have a sensible use case here.
2017-04-07Merge PR#461: [camlpX] Remove camlp4 compat layer.Maxime Dénès
2017-04-07[toplevel] Remove the feedback feeder printing only on exit.Emilio Jesus Gallego Arias
This fixes the bug in `Drop` reported by @mattam82: after performing a `Drop`, the feeder was lost and no further message from Coq was printed.