aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2017-07-31Correcting [build_discriminator] to make the test-suite passamblaf
2017-07-31Replacing tclENV with the goal environmentamblaf
In functions match_eqdec and check_unused_names
2017-07-31env, sigma as first arguments of functionsamblaf
2017-07-31Remove references to Global.env in tactics/*.mlamblaf
Only in ml files that are not related to Coq commands
2017-07-28Merge PR #923: [api] Fix base_include LTAC parts.Maxime Dénès
2017-07-28Merge PR #889: Removing template polymorphism for definitions.Maxime Dénès
2017-07-28Merge PR #888: Stronger kernel typesMaxime Dénès
2017-07-28Merge PR #823: Async off in Windows by default in CoqIDEMaxime Dénès
2017-07-28Merge PR #782: Update API for fiatMaxime Dénès
2017-07-28Merge PR #852: Makefile: fails if some .vo or .cm* file has no sourceMaxime Dénès
2017-07-27[api] Fix base_include LTAC parts.Emilio Jesus Gallego Arias
2017-07-26Fix TypeclassDebug.out after conflicting PR mergesMatthieu Sozeau
2017-07-26Merge PR #918: Extraction: do not mix Haskell types Any and () (fix bugs ↵Maxime Dénès
4844 and 4824)
2017-07-26Merge PR #910: Add [opam update] and online repository to gitlab CI script.Maxime Dénès
2017-07-26Merge PR #886: Fixing what was presumably a typo in the naming conventions fileMaxime Dénès
2017-07-26Merge PR #902: Only perform profile initialization and printing when the ↵Maxime Dénès
flag is set.
2017-07-26Removing template polymorphism for definitions.Pierre-Marie Pédrot
The use of template polymorphism in constants was quite limited, as it only applied to definitions that were exactly inductive types without any parameter whatsoever. Furthermore, it seems that following the introduction of polymorphic definitions, the code path enforced regular polymorphism as soon as the type of a definition was given, which was in practice almost always. Removing this feature had no observable effect neither on the test-suite, nor on any development that we monitor on Travis. I believe it is safe to assume it was nowadays useless.
2017-07-26Merge PR #894: Fixing a little location bug with recursive bindersMaxime Dénès
2017-07-26Merge PR #882: Adding a V8.7 compatibility version number.Maxime Dénès
2017-07-26Avoiding a variable shadowing in the kernel.Pierre-Marie Pédrot
This ought to ease the understanding of the code.
2017-07-26Statically ensuring that inlined entries out of the kernel have no effects.Pierre-Marie Pédrot
This was an easy to prove property that I somehow overlooked.
2017-07-26Further simplication: do not recreate entries for side-effects.Pierre-Marie Pédrot
This is actually useless, the code does not depend on the value of the entry for side-effects.
2017-07-26Remove a horrendous hack in Declare to retrieve exported side-effects.Pierre-Marie Pédrot
Instead of relying on a mutable state in the object pushed on the libstack, we export an API in the kernel that exports the side-effects of a given entry in the global environment.
2017-07-26More precise type of entries capturing their lack of side-effects.Pierre-Marie Pédrot
We sprinkle a few GADTs in the kernel in order to statically ensure that entries are pure, so that we get stronger invariants.
2017-07-26Using a record type for Cooking.result.Pierre-Marie Pédrot
2017-07-26More precise type for universe entries.Pierre-Marie Pédrot
We use an algebraic type instead of a pair of a boolean and the corresponding data. For now, this is isomorphic, but this allows later change in the structure.
2017-07-26Merge PR #885: Removing a dummy parameter in some FMapPositive statements.Maxime Dénès
2017-07-26Merge PR #868: Fix debug trace of typeclasses eauto.Maxime Dénès
2017-07-26Merge PR #845: Add Z.mod_div lemma to standard library.Maxime Dénès
2017-07-26Merge PR #905: [api] Remove type equalities from API.Maxime Dénès
2017-07-26Merge PR #857: Extraction: various fixes related with bug 4720Maxime Dénès
2017-07-26Merge PR #859: Extraction TestCompileMaxime Dénès
2017-07-26Merge PR #808: [api] Put some order in API.mliMaxime Dénès
2017-07-26Merge PR #750: Remove deprecated options of ./configure in 8.8Maxime Dénès
2017-07-26make sure that API-leaks cannot be reintroduced by mistakeMatej Košík
2017-07-25Makefile.ide: restore a coqide-binaries rule (fix bug 5667)Pierre Letouzey
This rule is used by opam package coq-coqide
2017-07-25[api] Remove type equalities from API.Emilio Jesus Gallego Arias
This ensures that the API is self-contained and is, well, an API. Before this patch, the contents of `API.mli` bore little relation with what was used by the plugins [example: `Metasyntax` in tacentries.ml]. Many missing types had to be added. A sanity check of the `API.mli` file can be done with: `ocamlfind ocamlc -rectypes -package camlp5 -I lib API/API.mli`
2017-07-25[api] Put modules in order in API.{mli,ml}Emilio Jesus Gallego Arias
We sort the dependency graph of API by following a logical declaration order in `API.{ml,mli}` related to the actual dependency order of Coq modules. Things are a bit tricky here as Coq itself relies on the fact that OCaml treats module interface and implementation separately dependency-wise; however, when resorting module alias the design seems to become more coupled. Currently, API exposes both "namespaces", asserting a large number of type equality between them, however the `API` namespace is not self-contained. In particular, this is a first step to solve problems such as `Summary.frozen` being used in `API.mli` but not declared by the `API.Summary` module, etc... In general we follow the invariant that a type used in `API` must have been declared before. Keep in mind that OCaml upstream has warned that it maybe tricky to alias objects in this way. In particular, after API the old `mli` only files have become full compilation units so we may want to be more careful here. The more "correct" declaration order allows us to remove the `API.Prelude` module, as well as some other declarations that I consider as spurious. We still maintain the large number of type aliases which will be removed in a future patch. We follow linking order except for files in `intf`, which are conceptually wrongly placed in the linking hierarchy but this doesn't matter as the files don't contain any implementation. We also move a couple of `.mli` only files to `.ml` so we are consistent, and correct their linking order in `mllib`, even if that doesn't matter as such `.ml`-only files contain no implementations.
2017-07-25Extraction: do not mix Haskell types Any and () (revert 8e257d4, fix bugs ↵Pierre Letouzey
4844 and 4824) The commit 8e257d4 (which consider the dummy type Tdummy to be polymorphic and hence immune of the need for unsafeCoerce) is quite wrong, even if in pratice it worked ok most of the time. The confusion comes from the fact that the dummy value (__ aka MLdummy internally) is implemented in Haskell as Prelude.error, hence it has indeed a polymorphic unrestricted type. But the dummy type Tdummy used when extracting types must be monomorphic (otherwise type parameters would have to be propagated out of any type definition involving Tdummy). We implement Tdummy by Haskell's (), which for instance isn't convertible to Any, as shown by the examples in bug reports 4844 and 4824. This fix will bring back some more unsafeCoerce in Haskell extraction, including possibly a few spurious ones. And these extra unsafeCoerce might also hinder further code optimisations. We tried to mitigate that by directly removing [MLmagic] constructors in front of [MLdummy _]. NB: even if the original bug report mentions universe polymorphism, this issue is almost unrelated to it. It just happens that when universe polymorphism is off, an inductive instance is fully placed in Prop (cf. template polymorphism) in the example, avoiding triggering the issue. Warning: the test-suite file is there for archiving the repro case, but currently it doesn't test much (we should run ghc on the extracted code).
2017-07-21Adding a V8.7 compatibility version number.Hugo Herbelin
2017-07-21Merge PR #897: Fix test suite on windows (wrt fake_ide and coq-makefile)Maxime Dénès
2017-07-21PMP sold us a Timeout on Windows with 1s resolution. Trying to improve it.Maxime Dénès
2017-07-21Add [opam update] and online repository to gitlab CI script.Gaëtan Gilbert
This allows it to find out about new packages / compilers without having to invalidate cache somehow. Additionally the latest camlp5 (7.01) is not in the local repository for some reason.
2017-07-21Install time command under Cygwin (required for timing scripts).Maxime Dénès
2017-07-20Extraction: fix bugs 5177 and 5240 (and also indirectly bug 4720)Pierre Letouzey
Avoid Anomaly (or Assert False) when a module signature contains an applied functor followed by a "with Definition" or "with Module" Also fix the dependency computation in presence of a "with Definition" Concerning 4720, the code extracted out of this bug report was suboptimal in Coq 8.4 (it was compilable, but could have probably been tweaked into a real issue producing faulty code). But the example of 4720 (and some variants of it) was broken since 8.5, for the same reasons as 5177 and 5240. And the good news is that after these repairs, the example of bug 4720 is now extracted to correct code (the "with" is preserved).
2017-07-20Merge PR #892: Improve do_split option of typeclass resolutionMaxime Dénès
2017-07-20fake_ide: do as coqide to find out coqtop pathEnrico Tassi
2017-07-20coq_makefile: use System.exists_dir for better portabilityEnrico Tassi
2017-07-20Windows: Sys.is_dir "foo/" always says no (so we strip trailing slash)Enrico Tassi
2017-07-20coq-makefile: strip windows drive letter when DESTDIR is not emptyEnrico Tassi
In unix one can concatenate a prefix with an absolute path in order to obtain a valid path. This is not the case on Windows.