aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2017-03-23Using a dedicated datastructure for side effect ordering.Pierre-Marie Pédrot
We were doing fishy things in the Term_typing file, where side-effects were not considered in the right uniquization order because of the uniq_seff_rev function. It probably did not matter after a9b76df because effects were (mostly) uniquize upfront, but this is not clear because of the use of the transparente API in the module. Now everything has to go through the opaque API, so that a proper dependence order is ensured.
2017-03-23Making the side_effects type opaque.Pierre-Marie Pédrot
We move it from Entries to Term_typing and export the few functions needed to manipulate it in this module.
2017-03-23Merge PR#497: [travis] [8.6.only] Backport latest changes from trunk.Maxime Dénès
2017-03-23Merge PR#495: funind: Ignore missing info for current functionMaxime Dénès
2017-03-23Add empty Extraction.v and FunInd.v to prepare landing of PR#220.Maxime Dénès
This way, after we merge PR#220, scripts can be fixed in a way that is compatible with the 8.6 and trunk branches.
2017-03-23Merge PR#491: Do not typecheck twice the type of opaque constants.Maxime Dénès
2017-03-22Merge PR#480: show unused intro pattern warningMaxime Dénès
2017-03-22[travis] [8.6.only] Backport latest changes from trunk.Emilio Jesus Gallego Arias
2017-03-22funind: Ignore missing info for current functionTej Chajed
Fixes [Coq bug #5372](https://coq.inria.fr/bugs/show_bug.cgi?id=5372) "Anomaly: Not a valid information when defining mutual fixpoints that are not mutual with Function".
2017-03-21Add a few comments in term_typing.ml.Maxime Dénès
2017-03-21Do not typecheck twice the type of opaque constants.Maxime Dénès
I believe an unwanted shadowing was introduced by a4043608f704f0.
2017-03-20Merge PR#430: make `emit' tail recursiveMaxime Dénès
2017-03-20In the Kami project, that causes a stack overflow in one of the example filesPaul Steckler
(ProcThreeStInl.v, when the final "Defined" runs). I've verified that the change here fixes the stack overflow there with Coq 8.5pl2. In this version, all the recursive calls are in tail position. Instead of taking a single list of instructions, `emit' here takes a curent list and a remaining list of lists of instructions. That means the two calls elsewhere in the file now add an empty list argument. The algorithm works on the current list until it's empty, then works on the remaining lists. The most complex case is for Ksequence, where one of the pieces becomes the new current list, and the other pieces are consed onto the remaining sub-lists.
2017-03-17Merge PR#429: Don't require printing-only notation to be productiveMaxime Dénès
2017-03-14Merge PR#465: Fix #5132: coq_makefile generates incorrect install goalMaxime Dénès
2017-03-14Fix #5132: coq_makefile generates incorrect install goalVadim Zaliva
2017-03-14Fix 3 unused-intro-pattern warnings in stdlib.Théo Zimmermann
2017-03-14Show unused-intro-pattern warning.Théo Zimmermann
This warning was shown in CoqIDE but not by coqc.
2017-03-10Merge PR#359: Fix bug 4969, autoapply was not tagging shelved subgoals ↵Maxime Dénès
correctly as…
2017-03-10[travis] Move GeoCoq to allow fail.Emilio Jesus Gallego Arias
We need to agree a bit more with upstream.
2017-03-07Merge PR#452: [ltac] Move dummy plugin to plugins folder.Maxime Dénès
2017-03-07Merge PR#453: [travis] Backport trunk's travis support.Maxime Dénès
2017-03-03[ltac] Move dummy plugin to plugins folder.Emilio Jesus Gallego Arias
This is needed to fix `Declare ML Module "ltac_plugin".
2017-03-02[travis] Backport trunk's travis support.Emilio Jesus Gallego Arias
2017-02-22Merge branch 'v8.5' into v8.6Pierre-Marie Pédrot
2017-02-21Add empty ltac_plugin file for forward compatibility.Maxime Dénès
This is in preparation for landing of PR#309: Ltac as a plugin
2017-02-16Fixing #5339 (anomaly with 'pat in record parameters).Hugo Herbelin
2017-02-16reject notations that are both 'only printing' and 'only parsing'Ralf Jung
2017-02-16don't require printing-only notation to be productiveRalf Jung
2017-02-09Turning an anomaly on 'pat into a proper "unsupported" error message.Hugo Herbelin
2017-02-09Fixing bug #5346 (an unimplemented application of 'pat).Hugo Herbelin
2017-02-07Extraction: fix complexity issue #5310Pierre Letouzey
A double call to pp_module_type inside Ocaml.pp_specif was causing an complexity blowup when pretty-printing heavily modular extracted code. I wasn't able to figure out why this double call is there. It could be the leftover of some intermediate work in 2007 before commit 350398eae (which introduced global printing phases Pre/Impl/Intf). Anyway I'm reasonably sure that today these two pp_module_type calls produce the exact same pretty-printed signature (even if there's a large bunch of imperative states around). Moreover, this duplicated signature is actually slightly wrong: when we alias a module M with a unambiguous name like Coq__123, the type of Coq__123 should not be an exact copy of the type of M, but rather a "strengthened" version of it (with equality between inductive types). So the best solution is now to use this funny feature of OCaml introduced in 3.12 : module Coq__123 : module type of struct include M end This "module type of struct include" is slightly awkward, but short, correct, and trivial to produce :-). And I doubt anybody will object to the (rare) use of some 3.12 features in extracted code of 2017...
2017-02-07Extraction: fix complexity issue #5310Pierre Letouzey
A double call to pp_module_type inside Ocaml.pp_specif was causing an complexity blowup when pretty-printing heavily modular extracted code. I wasn't able to figure out why this double call is there. It could be the leftover of some intermediate work in 2007 before commit 350398eae (which introduced global printing phases Pre/Impl/Intf). Anyway I'm reasonably sure that today these two pp_module_type calls produce the exact same pretty-printed signature (even if there's a large bunch of imperative states around). Moreover, this duplicated signature is actually slightly wrong: when we alias a module M with a unambiguous name like Coq__123, the type of Coq__123 should not be an exact copy of the type of M, but rather a "strengthened" version of it (with equality between inductive types). So the best solution is now to use this funny feature of OCaml introduced in 3.12 : module Coq__123 : module type of struct include M end This "module type of struct include" is slightly awkward, but short, correct, and trivial to produce :-). And I doubt anybody will object to the (rare) use of some 3.12 features in extracted code of 2017...
2017-02-06fix Emacs compiler warning on '(lambda...)Hendrik Tews
lambda is self-quoting, see elisp manual, section 12.7 Anonymous Functions
2017-02-02Fixing an anomaly with 'pat after cofix.Hugo Herbelin
2017-02-01Merge branch 'v8.5' into v8.6Pierre-Marie Pédrot
2017-01-31Fixing #5311 (anomaly on unexpected intro pattern).Hugo Herbelin
This was introduced in 8.5 while reorganizing the structure of intro-patterns.
2017-01-30Merge PR#408: [native comp] Improve error message on linking error.Maxime Dénès
2017-01-30Fix a typo in STM universe communications.Maxime Dénès
2017-01-28Fix bug #5262: Error should tell me which name is duplicated.Pierre-Marie Pédrot
2017-01-27Fix documentation typos.Guillaume Melquiond
2017-01-26[native comp] Improve error message on linking error.Emilio Jesus Gallego Arias
The native compiler doesn't support `Require` inside `Module` sections in some cases, we improve the error message. See: https://coq.inria.fr/bugs/show_bug.cgi?id=4335 This patch improves the error message and gives the user some feedback.
2017-01-26Fixing #5326 (anomaly on some unsupported case of 'pat).Hugo Herbelin
We complete the support of 'pat in this particular case (a 'pat under a binder in a notation).
2017-01-24Merge PR#383: fix #5244: set printing width ignored when given enough spaceMaxime Dénès
2017-01-23Merge branch 'v8.5' into v8.6Pierre-Marie Pédrot
2017-01-23Fixing unification regression #5323.Hugo Herbelin
Tracking conversion problems to reconsider was lost for evars subject to restriction (field last_mods was not updated and conversion problems not considered to be changed).
2017-01-22Fixing bugs in typing "match" (regressions #5322 and #5324 + bugs with let-ins).Hugo Herbelin
A cleaning done in ade2363e35 (Dec 2015) was hinting at bugs in typing a matching over a "catch-all" variable, when let-ins occur in the arity. However ade2363e35 failed to understand what was the correct fix, introducing instead the regressions mentioned in #5322 and #5324. This fixes all of #5322 and #5324, as well as the handling of let-ins in the arity. Thanks to Jason for helping in diagnosing the problem.
2017-01-21Revert "Process Next Obligation proofs in parallel (fix #5314)"Enrico Tassi
This reverts commit 1d4c34c79624fb81e64dfed8874b2fc9fa66c070. It seems the proof terminator of obligation.ml, in the case in which Set Shrink Obligation is set, accesses the opaque proof.
2017-01-20Process Next Obligation proofs in parallel (fix #5314)Enrico Tassi
2017-01-20Do not add redundant side effects in tactic code.Pierre-Marie Pédrot
This was observable in long proofs, because side effects kept being duplicated, leading to an additional cost linear in the size of the proof. This commit touches kernel files, but the corresponding API is only used in tactic-facing code so that the side_effects type remains opaque. Thus it does not affect the kernel safety.