lib/future: computations that are Exn can be replaced

A computation that is an exception morally holds no value
hence can be replaced by an type-equivalent computation.
This mechanism is used to edit broken proofs.

git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@16808 85f007b7-540e-0410-9357-904b9bb8a0f7
lib/dag: various improvements

- clusters can hold some data
- edges and nodes can be deleted

git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@16809 85f007b7-540e-0410-9357-904b9bb8a0f7
lib/vcs: various improvements

- gc function to clear unreferenced nodes
- utility function to get the ancestors of a commit
- utility function to edit a merge commit

git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@16810 85f007b7-540e-0410-9357-904b9bb8a0f7
lib/cstack: various improvements

- renaming reflecting the semantic of functions
- ability to edit the stack at the top of a _focused_zone_

git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@16811 85f007b7-540e-0410-9357-904b9bb8a0f7
CoqIDE protocol/serialization revised

- both requests and responses are serialized using the same generic code
- no more interp message.  Replaced by:
  - query: performs a query (Search/Check...) at a given state
  - add: adds to the document a new sentence at the current edit point
  - edit_at: changes the edit point.  the result could be a rewind _or_
    a focus to a specific zone that can be edited without rewinding the
    whole document

git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@16812 85f007b7-540e-0410-9357-904b9bb8a0f7
fake_ide ported to the new protocol (FIXME tests fail)

git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@16813 85f007b7-540e-0410-9357-904b9bb8a0f7
CoqIDE ported to the revides protocol

- the zone to be edited is now between the marks
  start_of_input and stop_of_input
- when -debug is given, the edit zone is underlined
- the cmd_stack is focused/unfocused according to the new protocol
- read only tag resurrected and used to block the "Qed" ending
  a focused zone

git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@16814 85f007b7-540e-0410-9357-904b9bb8a0f7
STM: some refactoring, support revised CoqIDE protocol

git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@16815 85f007b7-540e-0410-9357-904b9bb8a0f7
wg_Session: fix copy/paste of tagged text

git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@16816 85f007b7-540e-0410-9357-904b9bb8a0f7
wg_Command: detachable, less "from the 80s", query pane

- Tabs have labels derived from the query (e.g. "About eq_ind" will have
  "eq_ind" as its label, that is better than "Page 1" ;-)
- Tabs have a [x] close icon
- Icon to create a new tab in in the notebook
- Dispotically grab the F1 key to open/close the query pane
  (alt-esc is grabbed by windows managers these days)
- Esc hides the query pane (like the search pane)
- F1 puts a detached query pane in front
- Tab switches from the combo-box to the entry on its right
- Detaching is taken-over, and the query pane is reparented in a regular
  window that can be resized
- A detached query pane can be put back by closing the window

git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@16817 85f007b7-540e-0410-9357-904b9bb8a0f7
ideutils: stock_to_widget was ignoring the ~size argument

git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@16818 85f007b7-540e-0410-9357-904b9bb8a0f7
fake_ide: call Coq.init as the first action

git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@16819 85f007b7-540e-0410-9357-904b9bb8a0f7
STM: better handle proof modes

Proof modes are really spaghetti code.  It is a global state
that you can't access (held by G_vernac).  We stick it to
the branches...

git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@16820 85f007b7-540e-0410-9357-904b9bb8a0f7
CoqIDE: wg_Tooltip removed, new tooltip handling

- tooltips are attached to sentences
- to find the tooltip text one goes back
  until the first start of sentence mark,
  finds the corresponding sentence and
  displays the tooltip
- focused editing does not invalidate tooltips this way,
  since the text, its tags and marks is moved around consistently

git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@16821 85f007b7-540e-0410-9357-904b9bb8a0f7
Backtrace.record_backtrace in CoqIDE too

git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@16822 85f007b7-540e-0410-9357-904b9bb8a0f7
CoqIDE: use #present to raise error window

git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@16823 85f007b7-540e-0410-9357-904b9bb8a0f7