aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
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-09Fixing #5420 as well as many related bugs due to miscounting let-ins.Hugo Herbelin
- Supporting let-ins in tactic "fix", and hence in interactive Fixpoint and mutual theorems. - Documenting more precisely the meaning of n in tactic "fix id n". - Fixing computation of recursive index at interpretation time in the presence of let-ins.
2017-04-09Fixing several wrong computations of implicit arguments by positionHugo Herbelin
in the presence of let-ins.
2017-04-09Minor cosmetic commit.Hugo Herbelin
2017-04-09Documenting how the recursive indices of a fixpoint are computed.Hugo Herbelin
Also documenting how the implicit arguments by position are computed.
2017-04-09More explicit message when a {struct x} argument refers to a local definition.Hugo Herbelin
2017-04-09Removing internal support for accepting "{struct x}" and co in "Theorem with".Hugo Herbelin
There were actually no syntax for it, and I'm still unsure what good syntax to give to it, even more that it would be useful to have one.
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-08Fixing #5460 (limitation in computing deps in pattern-matching compilation).Hugo Herbelin
This was assuming dependencies occurring in configurations of the form x:A, y:B x, z:C x y |- match x, y, z with ... end". But still work to do for better management of dependencies in general...
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.
2017-04-07Fix an unhandled exception in Omega.Pierre-Marie Pédrot
2017-04-07Better support for printing constructors with let-ins.Hugo Herbelin
This allows e.g. to use the record notations even when there are defined fields. A priori fixed also missing parameters when interpreting primitive tokens.
2017-04-07Fixing #4499 (not using unnamed record field in {| |} notation).Hugo Herbelin
2017-04-07Fixes for Drop. to work (decl_mode removal and toplevel -> vernac)Matthieu Sozeau
2017-04-07Add some hints to the "real" database to automatically discharge literal ↵Guillaume Melquiond
comparisons.
2017-04-07Merge PR#485: Document Show MatchMaxime Dénès
2017-04-07Merge branch 'master' into econstrPierre-Marie Pédrot
2017-04-07Remove a forgotten rule for decl_mode from the Makefile.Pierre-Marie Pédrot
This was making the miniopt target fail.
2017-04-07Turning the printing primitive projection parameter flag off by default.Hugo Herbelin
2017-04-07Turning the printing primitive projection compatibility flag off by default.Hugo Herbelin
2017-04-07[travis] Overlay for PR#461: Camlp4 removal.Emilio Jesus Gallego Arias
2017-04-07[camlpX] Enrico's changes to camlp4 removal.Emilio Jesus Gallego Arias
This removes some remaining support for camlp4 in the infrastructure and documents the change.
2017-04-07[camlpX] Remove camlp4 compat layer.Emilio Jesus Gallego Arias
We remove the camlp4 compatibility layer, and try to clean up most structures. `parsing/compat` is gone. We added some documentation to the lexer/parser interfaces that are often obscured by module includes.
2017-04-07Merge PR#530: [toplevel] Remove exception error printer in favor of feedback ↵Maxime Dénès
printer.
2017-04-07Merge PR#519: Faster side effectsMaxime Dénès
2017-04-07Inline the only use of hcons_j in Term_typing.Pierre-Marie Pédrot
2017-04-06Merge PR#455: Farewell decl_modeMaxime Dénès
2017-04-06Merge PR#488: Adding a documentation for the new proof engine.Maxime Dénès
2017-04-06Adding a documentation for the new proof engine.Pierre-Marie Pédrot
2017-04-06Documenting the fact terms are only hashconsed outside of a section.Pierre-Marie Pédrot
2017-04-06Merge PR#508: Optimize pending evarsMaxime Dénès
2017-04-06Fix a normalization hotspot in computation of constr keys.Pierre-Marie Pédrot
Getting a key only needs to observe the root of a term. This hotspot was observed in HoTT.
2017-04-06Factor interp_instance out of Pretyping.pretype_globalGaetan Gilbert
2017-04-06Avoid strange shadowing of Pretyping.interp_universe_level_nameGaetan Gilbert
2017-04-06Fix a few programming pearls related to Time, Fail and Redirect.Maxime Dénès
This fixes a few clear bugs, but the STM code handling Time, Fail and Redirect before par: still needs to be rewritten. It does not implement the same semantics as the vernac interpreter for Fail Fail [c] and ignores Redirect. This commit was already reviewed with Enrico and tested on Travis.
2017-04-06Merge PR#542: [travis] Add webhook to Gitter.Maxime Dénès
2017-04-06[travis] Add webhook to Gitter.Théo Zimmermann
2017-04-06Merge branch 'origin/v8.5' into v8.6.Hugo Herbelin
Was needed to be done for a while.
2017-04-05[toplevel] Remove exception error printer in favor of feedback printer.Emilio Jesus Gallego Arias
We solve https://coq.inria.fr/bugs/show_bug.cgi?id=4789 by printing all the errors from the feedback handler, even in the case of coqtop. All error display is handled by a single, uniform path. There may be some minor discrepancies with 8.6 as we are uniform now whereas 8.6 tended to print errors in several ways, but our behavior is a subset of the 8.6 behavior. We had to make a choice for `-emacs` error output, which used to vary too. We have chosen to display error messages as: ``` (location info) option \n (program caret) option \n MARKER[254]Error: msgMARKER[255] ``` This commit also fixes: - https://coq.inria.fr/bugs/show_bug.cgi?id=5418 - https://coq.inria.fr/bugs/show_bug.cgi?id=5429
2017-04-05Removing a normalization hotspot from EConstr.Pierre-Marie Pédrot
It was not necessary to normalize a term just to check whether it was a global reference. The hotspot appeared in mathcomp.
2017-04-05Fixing #5454 (an assert false with 'pat).Hugo Herbelin
Note: Apparently not easy to make a test file as the error is raised in "G_vernac.fresh_var" at parsing time (not captured by Fail).
2017-04-05Merge PR#434: Optimizing array mapping in the kernel.Maxime Dénès