aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2017-12-14Document Record Elimination Schemes.Gaëtan Gilbert
2017-12-14Document Asymmetric Patterns.Gaëtan Gilbert
2017-12-14Document some omega options (missing Omega Oldstyle).Gaëtan Gilbert
2017-12-14Circle CI: add badge to README.Gaëtan Gilbert
2017-12-14Add doc for Set Debug RAKAM.Gaëtan Gilbert
2017-12-14Add doc for Set Debug Cbv.Gaëtan Gilbert
2017-12-14Add doc for Set Info/Debug Auto/Trivial/Eauto.Gaëtan Gilbert
2017-12-14Add optindex for Set Bullet Behavior.Gaëtan Gilbert
2017-12-14Add doc for Set Congruence VerboseGaëtan Gilbert
2017-12-14Circle CI: separate job to boot opam with all used packages.Gaëtan Gilbert
2017-12-14Circle CI: remove warning jobsGaëtan Gilbert
2017-12-14Circle CI: cat failed test suite logsGaëtan Gilbert
2017-12-14Fix typo in doc optindex for Typeclass Resolution ...Gaëtan Gilbert
2017-12-14Merge PR #6038: [build] Remove coqmktop in favor of ocamlfind.Maxime Dénès
2017-12-14Merge PR #6395: Revert [ci] Temporal workaround for checker non-backwards ↵Maxime Dénès
compatible change.
2017-12-14Merge PR #6388: Fix issue #6387Maxime Dénès
2017-12-13Merge PR #1108: [stm] Reorganize flagsMaxime Dénès
2017-12-13Merge PR #6341: Fix anomaly in [Type foo] command, + print uctx like Check.Maxime Dénès
2017-12-13Merge PR #6251: [proof] Embed evar_map in RefinerError exception.Maxime Dénès
2017-12-13Merge PR #6175: Restoring filtering of native files passed to `rm` during ↵Maxime Dénès
`make clean`.
2017-12-13[meta] Minor linking fix.Emilio Jesus Gallego Arias
2017-12-13[econstr] Small cleanup in `vernac/lemmas`Emilio Jesus Gallego Arias
2017-12-13[econstr] Add a couple of new API functions.Emilio Jesus Gallego Arias
These are also convenient from `vernac` [to be used in future PRs].
2017-12-13[lib] Auxiliary functions in List + fixes.Emilio Jesus Gallego Arias
These are convenient to use `command.ml` for example. We also fix a critical bug in the `fold_left_map` family of functions, as witnessed by this old behavior. ```ocaml fold_left2_map (fun c u v -> c+1,u+v) 0 [1;2;3] [1;2;3;];; - : int * int list = (3, [6; 4; 2]) ``` I have opted for a simple fix keeping the tail-recursive nature, I am not in the mood of writing base libraries, but feel free to improve.
2017-12-13Circle CI: uses dependencies between external developments.Gaëtan Gilbert
2017-12-13Put bignums, math-classes and corn dependencies in MakefileGaëtan Gilbert
2017-12-13Circle CI: enable TIMED for external developmentsGaëtan Gilbert
2017-12-13Circle CI: use cache for opamGaëtan Gilbert
2017-12-13Circle CI: enable native compiler.Gaëtan Gilbert
2017-12-12Fix #5081 by more fine-grained LtacProf recordingJason Gross
To fix #5081, that LtacProf associates time spent in tactic-evaluation with the wrong tactic, I added two additional calls to the profiler during tactic evaluation phase. These two calls do not update the call count of the relevant tactics, but simply add time to them. Although this fixes #5081, it introduces a new bug, involving tactics which are aliases of other tactics, which I am not sure how to fix. Here is the explanation of the issue, as I currently understand it (also recorded in a comment in `profile_ltac.mli`): Ltac semantics are a bit insane. There isn't really a good notion of how many times a tactic has been "called", because tactics can be partially evaluated, and it's unclear whether the number of "calls" should be the number of times the body is fetched and unfolded, or the number of times the code is executed to a value, etc. The logic in `Tacinterp.eval_tactic` gives a decent approximation, which I believe roughly corresponds to the number of times that the engine runs the tactic value which results from evaluating the tactic expression bound to the name we're considering. However, this is a poor approximation of the time spent in the tactic; we want to consider time spent evaluating a tactic expression to a tactic value to be time spent in the expression, not just time spent in the caller of the expression. So we need to wrap some nodes in additional profiling calls which don't count towards to total call count. Whether or not a call "counts" is indicated by the `count_call` boolean argument. Unfortunately, at present, we can get very strange call graphs when a named tactic expression never runs as a tactic value: if we have `Ltac t0 := t.` and `Ltac t1 := t0.`, then `t1` is considered to run 0(!) times. It evaluates to `t` during tactic expression evaluation, and although the call trace records the fact that it was called by `t0` which was called by `t1`, the tactic running phase never sees this. Thus we get one call tree (from expression evaluation) that has `t1` calls `t0` calls `t`, and another call tree which says that the caller of `t1` calls `t` directly; the expression evaluation time goes in the first tree, and the call count and tactic running time goes in the second tree. Alas, I suspect that fixing this requires a redesign of how the profiler hooks into the tactic engine.
2017-12-13[econstr] Cleanup in `vernac/classes.ml`.Emilio Jesus Gallego Arias
We fix quite a few types, and perform some cleanup wrt to the evar_map, in particular we prefer to thread it now as otherwise it may become trickier to check when we are using the correct one. Thanks to @SkySkimmer for lots of comments and bug-finding.
2017-12-12Near-full implementation of Circle CI.Gaëtan Gilbert
VS gitlab: + fiat-crypto (Circle has 4GB RAM, gitlab 2GB) - caching opam (TODO) - publishing artefacts (TODO) * tests with -local, not installed VS travis: + reusing build products - flambda validate job (TODO?) - OSX jobs (TODO at least check if free OSX is possible) - linter (TODO?)
2017-12-12Documenting the new options for printing "match".Hugo Herbelin
Namely: - Set Printing Factorizable Match Patterns. = Set Printing Allow Default Clause.
2017-12-12Decompiling pattern-matching: mini-removal dead code.Hugo Herbelin
2017-12-12In printing, factorizing "match" clauses with same right-hand side.Hugo Herbelin
Moreover, when there are at least two clauses and the last most factorizable one is a disjunction with no variables, turn it into a catch-all clause. Adding options Unset Printing Allow Default Clause. to deactivate the second behavior, and Unset Printing Factorizable Match Patterns. to deactivate the first behavior (deactivating the first one deactivates also the second one). E.g. printing match x with Eq => 1 | _ => 0 end gives match x with | Eq => 1 | _ => 0 end or (with default clause deactivates): match x with | Eq => 1 | Lt | Gt => 0 end More to be done, e.g. reconstructing multiple patterns in Nat.eqb...
2017-12-12Removing cumbersome location in multiple patterns.Hugo Herbelin
This is to have a better symmetry between CCases and GCases.
2017-12-12Improving spacing in printing disjunctive patterns.Hugo Herbelin
Adding a space before the bar separating disjunctive patterns. Removing an extra space after the bar for inner disjunctive patterns.
2017-12-12Revert "[ci] Temporal workaround for checker non-backwards compatible change."Théo Zimmermann
This reverts commit 5d4cf69a3d7d472b54b5decc8400164b87e9a73f.
2017-12-12Merge PR #6335: Additional rewrite lemmas on Ensembles, in Powerset_factsMaxime Dénès
2017-12-12Further clean-up in Reductionops, removing unused lift arguments.Maxime Dénès
This is a follow-up on 866b449c497933a3ab1185c194d8d33a86c432f2.
2017-12-12Merge PR #6359: Remove most uses of function extensionality in ↵Maxime Dénès
Program.Combinators
2017-12-12Merge PR #6275: [summary] Allow typed projections from global state.Maxime Dénès
2017-12-11Use msg_info for LtacProfJason Gross
This way, `Time Show Ltac Profile` shows the profile in `*response*` in PG, without an extra `infomsg` tag on the timing.
2017-12-11Allow LtacProf tactics to be calledJason Gross
This fixes #6378. Previously the ML module was never declared anywhere. Thanks to @cmangin for the pointer.
2017-12-11Merge PR #6312: [configure] fix detection of `md5sum`Maxime Dénès
2017-12-11CI: poc Circleci configurationArnaud Spiwack
Revert "CI: poc Circleci configuration" Committed on master by mistake. Clearly I'm too clumsy to be trusted with push rights. This reverts commit d606a85d53fbd0227b15e18701e2ac4c9d911f34. CI: poc Circleci configuration Fixup Try minimising build for faster testing Various fixes Fixup: yaml identation Do not -j2: native compiler seems to take too much memory Revert "Do not -j2: native compiler seems to take too much memory" This reverts commit 4886151288a8d895c0fd23f9bded0970c59e1372. Deactivate native compiler Fixup (how did this happen?) Do not call time (not install on docker images, will fix later) Fixup Fixup
2017-12-11Catch errors while coercing 'and' intro patternsTej Chajed
Fixes GH#6384 and GH#6385.
2017-12-11Fix issue #6387Martin Vassor
2017-12-11Merge PR #6331: Linter: skip PRs older than the linter.Maxime Dénès
2017-12-11Merge PR #6311: Don't Add LoadPath on CoqIDE startup, #6153Maxime Dénès