aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2016-06-06Renaming: ErrorBlock -> ProofBlockEnrico Tassi
Since this is really what they are. Squashing this renaming back to the root of the feature branch is hard.
2016-06-06STM: each proof block can be enabled separatelyEnrico Tassi
By default we enable only {} and par: that are detectable in a complete way.
2016-06-06Error box detection run only on errorEnrico Tassi
Advantage: 0 cost if no error occurs Disadvantage: a box *must* end with the error absorbing command
2016-06-06STM: proof block detection for indentationEnrico Tassi
2016-06-06rebase on trunkEnrico Tassi
2016-06-06STM: fix error reporting of par:Enrico Tassi
2016-06-06STM: proof block detection made optional + simple testEnrico Tassi
2016-06-06STM: proof block detection for par:Enrico Tassi
"par: tac" is a terminator, if it fails we can admit all focused goals and continue.
2016-06-06STM: proof block detection for bullets and { block }Enrico Tassi
2016-06-06STM: proof block detection/error resilience APIEnrico Tassi
This commit introduces the concept of proof blocks that are resilient to errors. They are represented as ErrorBound boxes in the STM document with the topological invariant that they never overlap. The detection and error recovery of ErrorBound boxes is defined outside the STM. One can define a box by providing a function to detect it statically by crawling the parsed document and a function to recover from an error at run time.
2016-06-06STM: carry AST and indentation of document commandsEnrico Tassi
This paves the way to detecting error boundaries via indentation
2016-06-06STM: support for nested boxes of nodes to model error boundariesEnrico Tassi
Dag extended to support arbitrary clusters, renamed to Property. Vcs generalized to not impose the data hold by a Property. Stm(VCS) names a property "a box" and imposes a topological invariant (no overlap). It defines 2 kind of boxes: ProofTasks (the old cluster notion) and ErrorBound (meant to confine errors to sub-proofs). In the meanwhile more equations added to Make(..) functors in order to have just one Stateid.Set module around.
2016-06-06STM: invalid states are first class citizensEnrico Tassi
A state in the cache (document node) is now one of "Empty | Error | Valid". This paves the way to commands/blocks-of-commands resilient-to/confining errors: one can catch and "ignore" the exception obtained by reaching the previous state and do something sensible, like running anyway the command or skipping until the end of an error-confining block is reached. Invalid states carry an enriched exception with the safe_id attached, so that if one edits_at or observe them gets a safe place to land (CoqIDE needs such piece of info). Little API change in Stm.state_of_id now returning a `Error variant for the new kind of state.
2016-06-06xmlprotocol: fix unmarshaling of Feedback.MessageEnrico Tassi
2016-06-06xmlprotocol: uncomment marshalling code for custom messageEnrico Tassi
2016-06-06xmlprotocol: Marshal_error carries the reasonEnrico Tassi
2016-06-05Adding the Print Ltac Signatures command.Pierre-Marie Pédrot
2016-06-05Adding the Print Ltac Signature command.Pierre-Marie Pédrot
2016-06-05Remove Q_constr from grammar folder.Pierre-Marie Pédrot
2016-06-05Removing the Q_constr file.Pierre-Marie Pédrot
2016-06-05Moving Hipattern to a regular ML file.Pierre-Marie Pédrot
2016-06-05Removing PATTERN uses in Hipattern.Pierre-Marie Pédrot
2016-06-04Merge remote-tracking branch 'github/pr/184' into trunkMaxime Dénès
2016-06-03Remove a few tactics from the Tacexpr AST.Pierre-Marie Pédrot
Note that this breaks a few badly written scripts using intro in strict mode without providing an existing identifier.
2016-06-03Removing "rename" from the tactic AST.Pierre-Marie Pédrot
2016-06-03Removing "exact" from the tactic AST.Pierre-Marie Pédrot
2016-06-03Removing "intro" from the tactic AST.Pierre-Marie Pédrot
Note that this breaks the compatibility, in a beneficial way I believe. Tactics defined in strict mode (i.e. through Ltac foo := ...) may not do an introduction on a local identifier anymore. They must use the "fresh" primitive instead.
2016-06-03Removing "double induction" from the tactic AST.Pierre-Marie Pédrot
2016-06-03Merge remote-tracking branch 'github/pr/159' into trunkMaxime Dénès
2016-06-03Fix build of documentation (broken for four months).Guillaume Melquiond
2016-06-03Merge branch 'v8.5' into trunkGuillaume Melquiond
2016-06-03Fix proof terminators not being detected in presence of curly brackets (bug ↵Guillaume Melquiond
#4770). This also fixes comments not being properly skipped when looking for eol.
2016-06-03Make "coqdoc -g --parse-comments" behave properly (bug #4773).Guillaume Melquiond
As a side effect, there should be a small speedup when ignoring comments. This commit also fixes two bugs related to handling "$$" and "#" in comments.
2016-06-02Please never mention .mli-only file in *.mllib (or future *.mlpack)Pierre Letouzey
This breaks compilation via ocamlbuild, and also leads to awkward commands via make
2016-06-02Add documentation to the low-level `Pp` functions.Emilio Jesus Gallego Arias
Thanks to HH for pointing it out.
2016-06-02Move XML serialization to ide/ folder.Pierre-Marie Pédrot
2016-06-02Move ide serialization libraries from lib/ to ide/Emilio Jesus Gallego Arias
This makes the core free from particular protocol choices. It should help with the ppx serialization project and shrinks clib.cma a bit.
2016-06-02Encapsulate xml serialization in xmlprotocol.mliEmilio Jesus Gallego Arias
This eases the task of replacing/improving the serializer, as well as making it more resistant. See pitfalls below: Main changes are: - fold `message` type into `feedback` type - make messages of type `Richpp.richpp` so we are explicit about the content being a rich document. - moved serialization functions for messages and stateid to `Xmlprotocol` - improved a couple of internal API points (`is_message`). Tested.
2016-06-02Move serialization functions out of StmEmilio Jesus Gallego Arias
Serialization should be specific to each particular backend, so we let the Stm clients choose how the send the nodes. This should be quite safe to pull in. Test suite passes. Related to #180
2016-06-02Fix build (use the same mllib file as in trunk).Guillaume Melquiond
2016-06-02Avoid refreshing the segment widget each time a sentence is added.Lionel Rieg
This brings a 10x speedup for going at the end of large .v files.
2016-06-02Fix bug #4768.Guillaume Melquiond
2016-06-02Makefile.build: clean a bit the way MacOS binaries are signedPierre Letouzey
2016-06-02Avoid refreshing the segment widget each time a sentence is added.Lionel Rieg
This brings a 10x speedup for going at the end of large .v files.
2016-06-02A slight phase of documentation and uniformization of names ofHugo Herbelin
functions about interpretation, internalization, externalization of notations. Main syntactic changes: - subst_aconstr_in_glob_constr -> instantiate_notation_constr (because aconstr has been renamed to notation_constr long time ago) - extern_symbol -> extern_notation (because symbol.ml has been renamed to notation.ml long time ago) - documentation of notations_ops.mli Main semantic changes: - Notation_ops.eq_glob_constr which was partial eq disappears: use glob_constr_eq instead - In particular, this impacts a change on funind which now use the (fully implemented) glob_constr_eq Somehow, instantiate_notation_constr should be in notation_ops.ml for symmetry with match_notation_constr but it is bit painful to do.
2016-06-02Makefile.common: update PRIVATEBINARIES to repair the build on MACOSPierre Letouzey
2016-06-02coqtop: Add ltac/ to search path.Matthieu Sozeau
For Drop for example.
2016-06-02Removing pointless field NPatVar. It does not make sense to have MetaHugo Herbelin
and Evar in notations, and there are anyway already forbidden.
2016-06-02Update primitive coinductive test-suite.Matthieu Sozeau
2016-06-02Add a synonymous Set Debug Ltac for Set Ltac Debug, for uniformity.Hugo Herbelin