| Commit message (Collapse) | Author | Age |
| |
|
| |
|
| |
|
|
|
|
| |
accidentally mixed up in 9aa416c0c6.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
We use private types to ensure apriori hashconsing, and get rid of the
use of recursive modules. The hash of the universe list is also inlined
into each node instead of relying on a supplementary indirection.
|
| |
|
|
|
|
| |
grammar in campl4
|
|
|
|
|
| |
I added a emacs_logger.
Still need to cleanup std_logger.
|
| |
|
|
|
|
| |
constraints only.
|
| |
|
|
|
|
|
| |
resulting in huge speedup at Qed/section closing in presence of
primitive projections.
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
This makes queries like Print or Extraction block and not
raise the error "the value is not ready". This should make
CoqIDE work for every kind of script.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This commits makes the concept of delegated and async more orthogonal.
A proof can be async but not delegated to a worker (if it is known
to be very small it is too much overhead to delegate to a worker).
A proof that is not async cannot be delegated to a worker.
An async proof that contains an error does not prevent Coq from continuing
the execution (interactive mode) and can be fixed without invalidating
the whole document (CoqIDE knows how to do that) even if it is processed
locally. It used to be the case only for delegated proofs, now it worker
for all the proofs that can be in principle delegated (doing it or not
is an implementation detail, an optimization).
|
| |
|
| |
|
|
|
|
|
|
|
| |
Thanks the the previous patchset a worker can be asked to send
back "light" version of the system states. This is reasonably
efficient hence the idea of letting a worker hang around just to
hold system states for retrieval on demand is dropped.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
API to let one forge a frozen state out of another frozen state
plus some frozen bits
|
|
|
|
|
|
| |
In this way one can make surgery on the system states, like
checking if two frozen states have the same environment (i.e.
no running "abstract" in between)
|
|
|
|
|
| |
A Dyn.t boxes a type tag with the original object, so calling
== on the Dyn.t does not work, hence this extra API.
|
| |
|
| |
|
|
|
|
|
|
| |
have x permission"
This reverts commit 607503b28fca50f4b76b2237d5ca13802b8252fa.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|\ |
|
| | |
|
| | |
|
| |
| |
| |
| |
| | |
Fixes the idtac "string" not appearing in proofgeneral because
printined *before* the goal.
|
| |
| |
| |
| |
| | |
This is the second part of the Exninfo patch. It introduces dependency in
the Thread library in all Coq files.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Instead of modifying exceptions to wear additional information, we instead use
a dedicated type now. All exception-using functions were modified to support
this new type, in particular Future's fix_exn-s and the tactic monad.
To solve the problem of enriching exceptions at raise time and recover this
data in the try-with handler, we use a global datastructure recording the
given piece of data imperatively that we retrieve in the try-with handler.
We ensure that such instrumented try-with destroy the data so that there
may not be confusion with another exception. To further harden the correction
of this structure, we also check for pointer equality with the last raised
exception.
The global data structure is not thread-safe for now, which is incorrect as
the STM uses threads and enriched exceptions. Yet, we splitted the patch in
two parts, so that we do not introduce dependencies to the Thread library
immediatly. This will allow to revert only the second patch if ever we
switch to OCaml-coded lightweight threads.
|
|/
|
|
|
|
| |
If a goal is given and wrong, exception is raised. If no goal is
given, then goal 1 is tried but no failure if goal 1 does not exist,
just fall back to gloab env.
|