aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2015-01-03Fixing #3896 (incorrect sigma given to printer).Hugo Herbelin
2015-01-03Tentatively trying to restore the use of second-order typed-basedHugo Herbelin
unification algorithm in consider_remaining_unif_problems. If it happens to be problematic, one can backtrack to the "optimization" from 3bd9cb26b which has a restriction on rels/vars.
2015-01-03Fixing #3895 (thanks to PMP for diagnosis).Hugo Herbelin
2015-01-01An optimization in the use of unification candidates so as to get theHugo Herbelin
following working: Definition test {A B:Type} {H:A=B} (a:A) : B := rew H in a.
2014-12-30Document the new behavior of lazymatch.Guillaume Melquiond
2014-12-30Fixing #3892: Ensure that notation variables do not capture namesHugo Herbelin
hidden behind another notation.
2014-12-30Simplifying second_order_matching: no need to invert the linearHugo Herbelin
initial segment of the context of the evar.
2014-12-30Compatibility ocaml 3.12.Hugo Herbelin
2014-12-30more CHANGESEnrico Tassi
2014-12-30Minor fixes for the win32 installerEnrico Tassi
2014-12-29Fixing bug #3632 for good.Pierre-Marie Pédrot
2014-12-29Proof using: do not clear letins (unless they use a cleared var)Enrico Tassi
2014-12-28Use [Proof using] to make sure that [List.in_flat_map] doesn't grab too many ↵Arnaud Spiwack
section variable. For some reason, the subproofs solved by [auto] had started using [Hfinjective] from the section context.
2014-12-28Call nf_constraints also when compiling directly to voEnrico Tassi
After commit b46944e the system got way slower, hence the optimization is relevant also for non polymorphic constants. Putting it back now, but we shall find something in between: an optimization that does not clash with async proofs but that gives some performance improvement over no optimization at all.
2014-12-28Proof using: call "clear" to remove from sight the vars not selectedEnrico Tassi
As discussed on coqdev, clear is not perfect, Hints for trivial using cleared section vars are still used. But it is better than nothing I guess.
2014-12-28remove debug prints (leftover)Enrico Tassi
2014-12-27STM: check with the kernel proof terms on the worker tooEnrico Tassi
Before this commit the worker was sending back a proof term as built by tactics. The master receives the proof terms and eventually (when one clicks on the gears in CoqIDE) check it with the kernel. This meant that errors like the ones produced by the "fix" tactics were discovered very late. Now a worker checks with its kernel the proof term before sending it back. The term is also checked by the master, eventually, but the error is signaled early.
2014-12-27STM: fix processing of errorsEnrico Tassi
2014-12-27STM: module Pp is openEnrico Tassi
2014-12-27proof_global: make it possible to call close_proof in a workerEnrico Tassi
Given that the proof state contains a callback (a terminator) that is not sent (dropped by the ephemeron mechanism at marshall time) de-referencing the ephemeron during this function makes it impossible to call it in a worker. Now the worker can call the function and replace the terminator with a good one.
2014-12-27include test-suite/coqchk in the summary logEnrico Tassi
2014-12-27universes_of_constant: do a proper set union of body and type univsEnrico Tassi
Before the union was performed as a UContext.t union, that concatenates the instances arrays, while one wants to avoid duplicates. We also assert that polymorphic constants have all constraints in the constant_body (field const_universes), since the extra body univs (stored in the opaque tables) are just for regular constants processed asynchronously.
2014-12-27Revert "Term: include a function to print terms"Enrico Tassi
Such printer is already in Termops This reverts commit 5d6106a075b79abbb92b03bbca7b13a517cf4925.
2014-12-26new test for coqchkEnrico Tassi
2014-12-26coqchk: flush the pp buffer from time to timeEnrico Tassi
2014-12-26STM: do not call process_error twice (Close: 3880)Enrico Tassi
2014-12-26Call Evd.nf_constraints only on Univ Poly constantsEnrico Tassi
When one generates a .vi file only the type is stocked. When one completes a .vi the proof term is stocked but the corresponding type is not changed: - if one minimizes the constraints of the body, the minimization could find that 2 univs are equal and substitute one for the other in the body, but it should also apply the subst to the type orelse coqchk could fail - also, a "retroactive" change of a type (making it stricter) invalidates what was type checked afterwards, so this operation clashes with the vi2vo compilation chain Hence we enable this optimization only for universe polymorphic constants that: - are the ones that truly requires such optimization - are never processed asynchronously, so the scenario above does not apply
2014-12-26STM: remove dead codeEnrico Tassi
2014-12-26Term: include a function to print termsEnrico Tassi
I find it very odd not to have a pretty printer for terms than can be called from *everywhere*. This commit sticks in Term a long spaghetti to let Printer install a printing function.
2014-12-25Document 6d5b56d971 (forbid Require inside modules).Maxime Dénès
2014-12-25Forbid Require inside interactive modules and module types.Maxime Dénès
Fixes #3379 and part of #3363. Also avoids fragile code propagating required libraries when closing an interactive module. Had to fix a few occurrences in std lib.
2014-12-25Inlining Spawn.kill_if in the one place were it was actually used, thusPierre-Marie Pédrot
removing the need of thread creation in the interface.
2014-12-23STM: cleanup code for AdmittedEnrico Tassi
2014-12-23Vi2vo: fix handling of univ constraints coming from the bodyEnrico Tassi
2014-12-23Minor modification of CHANGE.Pierre Courtieu
2014-12-23A global [gfail] tactic which works like [fail] except that it fails even if ↵Arnaud Spiwack
there is no focused goal. The 'g' is for "global". The arguments are the same as [fail]. Beware: [let x := constr:… in tac] is a goal-local operation regardless of whether [tac] is goal-local or not.
2014-12-23Remove compatibility layer from Ltac's [fail].Arnaud Spiwack
2014-12-23Fix compilation error in some configurations.Arnaud Spiwack
This was due to the unqualified uses of "Lazy" being disambiguated in different manners. I just changed the constructor name to "Select". Fixes #3877.
2014-12-21Dead code in Univ.Pierre-Marie Pédrot
2014-12-19Win32: fix installerEnrico Tassi
Still unsure about .o file (should they be shipped for the native_compute machinery or .cmxs suffice?)
2014-12-19Install .v and .glob files tooEnrico Tassi
PIDE based user interfaces use glob files and source files to implement hyperlinks
2014-12-19Add a backtracking version of Ltac's [match].Arnaud Spiwack
[multimatch … with …] returns every possible successes: every matching branch and every successes of these matching branch, so that subsequent tactics can backtrack as well.
2014-12-19When pretyping [uconstr] closures, don't use the local Ltac variable ↵Arnaud Spiwack
environment. A closure is supposedly closed: all the relevant Ltac variables should be then. The last field [ltac_genargs], if I'm not mistaken, is there to represent the Ltac variables which are bound but not to something which makes sense in a term. They should be irrelevant at this point, since the uconstr has already been interpreted and these checks are supposed to have happened. (though I'm not entirely sure they do, it can be an interesting exercise to try and make [uconstr] behave weirdly) I'm not quite sure why it caused #3679, though. But it still seems to be solved.
2014-12-19Fixing performance issue of checker validation.Pierre-Marie Pédrot
The validation process was passing most of its time in the construction of the name of the current context.
2014-12-19Fixing checker representation of values.Pierre-Marie Pédrot
2014-12-19update md5 sums to make "make check" workEnrico Tassi
2014-12-19Fix sigsegv in checkerEnrico Tassi
2014-12-19Better doc and a few fixes for Proof using.Enrico Tassi
2014-12-19Back to the preferred ?n1:=?n2 order of evar-evar unification which got ↵Hugo Herbelin
accidentally mixed up in 9aa416c0c6.
2014-12-19Fixing wrong notation level in #3295.Hugo Herbelin