aboutsummaryrefslogtreecommitdiff
path: root/test-suite
AgeCommit message (Collapse)Author
2017-07-26Enrich test file 4720.v with a compilation test of the extracted codePierre Letouzey
2017-07-26adding a test-suite file 4709.v (thanks to the new command Extraction ↵Pierre Letouzey
TestCompile)
2017-07-26Merge PR #918: Extraction: do not mix Haskell types Any and () (fix bugs ↵Maxime Dénès
4844 and 4824)
2017-07-26Adding support for recursive notations of the form "x , .. , y , z".Hugo Herbelin
Since camlp5 parses from left, the last ", z" was parsed as part of an arbitrary long list of "x1 , .. , xn" and a syntax error was raised since an extra ", z" was still expected. We support this by translating "x , .. , y , z" into "x , y , .. , z" and reassembling the arguments appropriately after parsing.
2017-07-26Merge PR #857: Extraction: various fixes related with bug 4720Maxime Dénès
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-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-20fake_ide: do as coqide to find out coqtop pathEnrico Tassi
2017-07-20more verbose logs for coq-makefileEnrico Tassi
2017-07-20coq-makefile: make test suite detect more errorsEnrico Tassi
Replacing ; with && and enabling bash's pipefail option
2017-07-20Remove trailing CR before diff in output and misc tests.Maxime Dénès
2017-07-20Print failure logs on appveyor.Maxime Dénès
2017-07-20Remove non-terminating Timeout tests from Hints.v.Maxime Dénès
2017-07-20Make coqlib relative in test suite (revert 024a7ab20b0)Maxime Dénès
2017-07-20Merge PR #869: Enforce alternating separators in typeclass debug outputMaxime Dénès
2017-07-20Merge branch 'v8.7'Maxime Dénès
2017-07-19Removing testing unsupported Next.Hugo Herbelin
2017-07-19Merge PR #745: Add timing scriptsMaxime Dénès
2017-07-17Adding a coqdoc target to test-suite.Hugo Herbelin
One file was already ready for testing. We add another one. Note that we have to remove the machine-dependent lines in the output tex files.
2017-07-14Getting rid of abstraction breaking code in tclABSTRACT.Pierre-Marie Pédrot
This is probably the hardest case of them all, because tclABSTRACT fundamentally relies on the names of universes from the constant instance being the same as the one in the current goal. Adding to that the fact that the kernel is doing strange things when provided with a polymorphic definition with body universe constraints, it turns out to be a hellish nightmare to handle properly. At some point we need to clarifiy this in the kernel as well, although we leave it for some other patch.
2017-07-13Removing the uses of abstraction-breaking code in Lemmas.Pierre-Marie Pédrot
I had to slightly tweak a test in order to work around a bug of simpl that loses universes constraints when refolding polymorphic fixpoints.
2017-07-13Merge PR #870: Prepare De Bruijn universe abstractions, Episode I: KernelMaxime Dénès
2017-07-12format pairs of items for pr_depth to get alternating separatorsPaul Steckler
eval thunks once in prlist_sep_lastsep, make code clearer add typeclass debug output test
2017-07-11Deprecate options that were introduced for compatibility with 8.5.Théo Zimmermann
2017-07-11Fix nonsensical universe abstraction in the kernel.Pierre-Marie Pédrot
The function turning a side-effect declaration into the corresponding entry was crazily wrong, as it used a named universe context quantifying over DeBruijn universe indices. Declaring such entries resulted in random anomalies. This fixes bug #5641.
2017-07-11Properly handling polymorphic inductive subtyping in the kernel.Pierre-Marie Pédrot
Before this patch, inductive subtyping was enforcing syntactic equality of the variable instance, instead of reasoning up to alpha-renaming.
2017-07-11Cleaning up the implementation of module subtyping in the kernel.Pierre-Marie Pédrot
We export a function in UGraph to check that a polymorphic instance is a subtype of another, instead of rolling up our own in module code. We also add a few tests for module subtyping in presence of polymorphic constants.
2017-07-11Add timing scriptsJason Gross
This commit adds timing scripts from https://github.com/JasonGross/coq-scripts/tree/master/timing into the tools folder, and integrates them into coq_makefile and Coq's makefile. The main added makefile targets are: - the `TIMING` variable - when non-empty, this creates for each built `.v` file a `.v.timing` variable (or `.v.before-timing` or `.v.after-timing` for `TIMING=before` and `TIMING=after`, respectively) - `pretty-timed TGTS=...` - runs `make $(TGTS)` and prints a table of sorted timings at the end, saving it to `time-of-build-pretty.log` - `make-pretty-timed-before TGTS=...`, `make-pretty-timed-after TGTS=...` - runs `make $(TGTS)`, and saves the timing data to the file `time-of-build-before.log` or `time-of-build-after.log`, respectively - `print-pretty-timed-diff` - prints a table with the difference between the logs recorded by `make-pretty-timed-before` and `make-pretty-timed-after`, saving the table to `time-of-build-both.log` - `print-pretty-single-time-diff BEFORE=... AFTER=...` - this prints a table with the differences between two `.v.timing` files, and saves the output to `time-of-build-pretty.log` - `*.v.timing.diff` - this saves the result of `print-pretty-single-time-diff` for each target to the `.v.timing.diff` file - `all.timing.diff` (`world.timing.diff` and `coq.timing.diff` in Coq's own Makefile) - makes all `*.v.timing.diff` targets N.B. We need to make `make pretty-timed` fail if `make` fails. To do this, we need to get around the fact that pipes swallow exit codes. There are a few solutions in https://stackoverflow.com/questions/23079651/equivalent-of-pipefail-in-gnu-make; we choose the temporary file rather than requiring the shell of the makefile to be bash.
2017-07-07Merge PR #863: Fixing environment in warning "Projection value has no head ↵Maxime Dénès
constant".
2017-07-07Fixing environment in warning "Projection value has no head constant".Hugo Herbelin
Delaying also some computation needed for printing to the time of really printing it.
2017-07-04Merge branch 'v8.6'Pierre-Marie Pédrot
2017-07-04Bump year in headers.Pierre-Marie Pédrot
2017-06-30Merge PR#843: closing bug #5618 introduce by PR 828Maxime Dénès
2017-06-29closing bug #5618 introduce by PR 828Julien Forest
2017-06-28A fix for #5598 (no discharge of Existing Classes referring to local variables).Hugo Herbelin
2017-06-27Merge PR#810: An attempt to fix a failure of test deps-checksum.sh fails ↵Maxime Dénès
with make -j4
2017-06-26Merge PR#826: Put plugin exports in the right compatibility fileMaxime Dénès
2017-06-26Merge PR#828: closing bug #4250Maxime Dénès
2017-06-25Reorganizing functions to find the relative position of an hypothesis.Hugo Herbelin
Also fixing a bug of get_next_hyp_position when the hypothesis is the oldest of the context (see test in ltac.v).
2017-06-25Moving "assert" (internally "Cut") to the new proof engine.Hugo Herbelin
It allows in particular to have "Info" on tactic "assert" and derivatives not to give an "<unknown>".
2017-06-23Merge PR#794: Cleanup of ltac cmxsMaxime Dénès
2017-06-23closing bug #4250Julien Forest
2017-06-23Add tests for handling of warningsTej Chajed
2017-06-22Add test-suite file for funind, extraction with compat 8.6Jason Gross
2017-06-21Should fix a false negative reported by deps-order.sh.Hugo Herbelin
The files deps-order.sh and deps-checksum.sh were concurrently rm-ing the files of the other. Courtesy of Guillaume M.
2017-06-20Merge PR#807: romega: fix a slowdownMaxime Dénès
2017-06-19Merge PR#787: [typeclasses eauto] Fix bug #3943: non-termination in topologicalMaxime Dénès
2017-06-19Merge PR#760: Fixing base_include after loc is an option + a better test ↵Maxime Dénès
that #use"include" works
2017-06-19Merge PR#613: Cumulativity for inductive typesMaxime Dénès
2017-06-19Test case for bug 5578.Maxime Dénès