| Commit message (Collapse) | Author | Age |
|
|
|
|
|
|
|
| |
They are now bound at the library + module level and can be qualified
and shadowed according to the usual rules of qualified names.
Parsing and printing of universes "u+n" done as well.
In sections, global universes are discharged as well, checking that
they can be defined globally when they are introduced
|
|\
| |
| |
| | |
functionalization.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
We remove deprecated syntax "Coercion Local" and such, and seize the
opportunity to refactor some code around vernac_expr.
We also do a small fix on the STM classification, which didn't know about
Let Fixpoint and Let CoFixpoint.
This is a preliminary step for the work on attributes.
|
|/
|
|
|
| |
In particular `Proof_global.t` will become a first class object for
the upper parts of the system in a next commit.
|
| |
|
|\ |
|
|\ \ |
|
| | |
| | |
| | |
| | |
| | | |
As a bonus we remove some trailing whitespace, and implement a couple
of hints suggested in the discussion.
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
We'd like to handle proofs functionally we thus recommend not to use
printing functions without an explicit context.
We also adapt most of the code, making more explicit where the
printing environment is coming from.
An open task is to refactor some code so we gradually make the
`Pfedit.get_current_context ()` disappear.
|
|/
|
|
|
|
|
|
| |
This setting is a debug assertion, due to the many flags we still
over-approximate setting the flag to true to all interactive
environments. [So the assert is checked in vo compilation]
Fixes #6152.
|
|\ |
|
|\ \ |
|
| |/
|/|
| |
| |
| |
| |
| |
| | |
To this purpose we allow plugins to register functions that will
modify the state.
This is not used yet, but will be used soon when we remove the global
handling of the proof state.
|
| |
| |
| |
| | |
Fixes #6165.
|
|/ |
|
|
|
|
| |
We do up to `Term` which is the main bulk of the changes.
|
|
|
|
| |
This is a first step towards some of the solutions proposed in #6008.
|
|
|
|
| |
4.02.3 has been the minimal OCaml version for a while now.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We make Vernacentries.interp functional wrt state, and thus remove
state-handling from `Future`. Now, a future needs a closure if it
wants to preserve state.
Consequently, `Vernacentries.interp` takes a state, and returns the
new one.
We don't explicitly thread the state in the STM yet, instead, we
recover the state that was used before and pass it explicitly to
`interp`.
I have tested the commit with the files in interactive, but we aware
that some new bugs may appear or old ones be made more apparent.
However, I am confident that this step will improve our understanding
of bugs.
In some cases, we perform a bit more summary wrapping/unwrapping. This
will go away in future commits; informal timings for a full make:
- master:
real 2m11,027s
user 8m30,904s
sys 1m0,000s
- no_futures:
real 2m8,474s
user 8m34,380s
sys 0m59,156s
|
|
|
|
|
| |
We still don't thread the state there, but this is a start of the
needed infrastructure.
|
|
|
|
|
|
|
|
|
| |
We interpret meta-commands directly, instead of going by an
intermediate "classifier step".
The code could still use some further refactoring, in particular, the
`part_of_script` bit is a bit strange likely coming from some special
treatment of `VtMeta` in the `query` call, and should go away.
|
|
|
|
|
|
|
|
|
|
| |
The vernacular classifier has a current special case for "Undo" like
commands, as it needs access to the document structure in order to
produce the proper "VtBack" classification, however the classifier is
defined before the document is.
We introduce a new delegation status `VtMeta` that allows us to
interpreted such commands outside the classifier itself.
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
We move delicate library/module instillation code to the STM so the
API guarantees that the first state snapshot is correct. That was not
the case in the past, which meant that the STM cache was unsound in
batch mode, however we never used its contents due to not backtracking
to the first state.
This provides quite an improvement in the API, however more work is
needed until the codepath is fully polished.
This is a critical step towards handling the STM functionally.
|
|/
|
|
|
|
| |
With suggest proof using out of the kernel the format of context_used
in .aux is just the list of ids wanted by get_hint_ctx.
(split x s when x doesn't appear in s just returns the singleton list [s])
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We make the Stm API functional over an opaque `doc` type. This allows
to have a much better picture of what the toplevel is doing; now
almost all users of STM private data are marked by typing.
For now only, the API is functional; a PR switching the internals
should come soon thou; however we must first fix some initialization
bugs.
Due to some users, we modify `feedback` internally to include a
"document id" field; we don't expose this change in the IDE protocol
yet.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We move toplevel/STM flags from `Flags` to their proper components;
this ensures that low-level code doesn't depend on them, which was
incorrect and source of many problems wrt the interfaces.
Lower-level components should not be aware whether they are running in
batch or interactive mode, but instead provide a functional interface.
In particular:
== Added flags ==
- `Safe_typing.allow_delayed_constants`
Allow delayed constants in the kernel.
- `Flags.record_aux_file`
Output `Proof using` information from the kernel.
- `System.trust_file_cache`
Assume that the file system won't change during our run.
== Deleted flags ==
- `Flags.compilation_mode`
- `Flags.batch_mode`
Additionally, we modify the STM entry point and `coqtop` to account
for the needed state. Note that testing may be necessary and the
number of combinations possible exceeds what the test-suite / regular
use does.
The next step is to fix the initialization problems [c.f. Bugzilla],
which will require a larger rework of the STM interface.
|
|\ |
|
|\ \ |
|
|\ \ \
| | | |
| | | |
| | | | |
empty queues.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
We don't gain anything from the kernel yet as transparent constants
_do_ require the `side_eff` exporting machinery.
Next step, understand why.
|
| |_|/
|/| |
| | |
| | |
| | |
| | |
| | | |
Undo & friends is very expensive in batch mode as backtracking state
is not kept and thus should be recomputed.
We thus warn the user.
|
| |/
|/|
| |
| |
| |
| |
| | |
This was not used anywhere; it looks like dead code from some previous
attempt.
`get_hint_ctx` looks also very very suspicious.
|
| | |
|
| | |
|
| | |
|
|/
|
|
|
| |
While this is a good workaround, Enrico has a minimal example of the
underlying issue that we will send to the OCaml team.
|
|\ |
|
| |
| |
| |
| | |
Minor clean up, no sense in having these as they do nothing.
|
|/ |
|
|
|
|
|
| |
We only delay monomorphic proofs in quick mode, so that their universe context
will always be empty.
|
|
|
|
|
| |
We aditionally return the abstract universe context inside the option. This
is relatively painless as most uses were using the option as a boolean.
|
| |
|
|\
| |
| |
| | |
`VernacStartTheoremProof`
|
|\ \ |
|
| | |
| | |
| | |
| | |
| | | |
`VernacStartTheoremProof` contained a stale bool parameter from 15
years ago, which is unused today.
|
| |/
|/|
| |
| |
| |
| | |
This is a fix for a mistake in
d8874dd855d748aaaf504890487ab15ffd7a677d , where we forgot to
propagate the route parameter.
|
| |
| |
| |
| |
| |
| | |
Used to report to the UI an Error feedback message whenever a
worker was non making any progress. This is wrong since no-progress
is fine (as long as one does not specify "solve")
|
|\ \ |
|
| |/
| |
| |
| |
| |
| |
| |
| | |
This is necessary in order for clients to identify the results of
queries. This is a minor breaking change of the protocol, affecting
only this particular call.
This change is necessary in order to fix bug ####.
|