aboutsummaryrefslogtreecommitdiffhomepage
Commit message (Collapse)AuthorAge
...
* | | | | coq_makefile: fix a crucial typo in e9c57a3Gravatar Pierre Letouzey2016-06-08
| | | | |
* | | | | remove grammar/grammar.mllibGravatar Pierre Letouzey2016-06-08
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | grammar.cma is built by Makefile.build in a specific, hardcoded way. Let's remove this old .mllib file to avoid potential confusions in the future.
| | | * | Compilation via pack for plugins of the stdlibGravatar Pierre Letouzey2016-06-08
| |_|/ / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For now, the pack name reuse the previous .cma name of the plugin, (extraction_plugin, etc). The earlier .mllib files in plugins are now named .mlpack. They are also handled by bin/ocamllibdep, just as .mllib. We've slightly modified ocamllibdep to help setting the -for-pack options: in *.mlpack.d files, there are some extra variables such as foo/bar_FORPACK := -for-pack Baz when foo/bar.ml is mentioned in baz.mlpack. When a plugin is calling a function from another plugin, the name need to be qualified (Foo_plugin.Bar.baz instead of Bar.baz). Btw, we discard the generated files plugins/*/*_mod.ml, they are obsolete now, replaced by DECLARE PLUGIN. Nota: there's a potential problem in the micromega directory, some .ml files are linked both in micromega_plugin and in csdpcert. And we now compile these files with a -for-pack, even if they are not packed in the case of csdpcert. In practice, csdpcert seems to work well, but we should verify with OCaml experts.
* | | | Merge branch 'divided-makefile' into trunkGravatar Pierre Letouzey2016-06-08
|\ \ \ \
| * | | | Makefile.build split in many smaller files : Makefile.{ide,checker,dev,install}Gravatar Pierre Letouzey2016-06-08
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | General idea : Makefile.build was far too big to be easy to grasp or maintain, with information scattered everywhere. Let's try to tidy that! Normally, this commit is transparent for the user. We simply regroup some parts of Makefile.build in several new dedicated files: - Makefile.ide - Makefile.checker - Makefile.dev (for printers, revision, extra partial targets, otags) - Makefile.install These new files are "included" at the start of Makefile.build, to provide the same behavior as before, but with a Makefile.build shrinked by 50% (to approx 600 lines). Makefile.build now handles in priority the build of coqtop, minor tools, theories and plugins. Note: this is *not* a separate build system for coqchk nor coqide, even if this can be seen as a first step in this direction (won't be easy anyway to continue, due to the sharing of various stuff in lib and more). In particular Makefile.{coqchk,ide} may rely here and there on some generic rules left in Mafefile.build. Conversely, be sure to prefix rules in Makefile.{coqchk,ide} by checker/... or ide/... in order to avoid interferences with generic rules. Makefile.common is still there, but quite simplified. For instance, some variables that were used only once (e.g. lists of cmo files to link in the various tools) are now defined in Makefile.build, directly where they're needed. THEORIESVO and PLUGINSVO are made directly out of the theories/*/vo.itarget and plugins/*/vo.itarget files, no long manual list of subdirs anymore. Specific sub-targets such as 'reals' still exist, but in Makefile.dev, and they aren't mandatory. Makefile.doc is augmented by the rules building the documentation of the sources via ocamldoc. This classification attempt could probably be improved. For instance, the install rules for coqide are currently in Makefile.ide, but could also go in Makefile.install. Note that I've removed install-library-light which was broken anyway (arith isn't self-contained anymore).
| * | | | Makefile: avoid overwriting test.ml when testing grammar.cmaGravatar Pierre Letouzey2016-06-08
| | | | |
| * | | | Makefile: make clean now removes the .coq-native subdirsGravatar Pierre Letouzey2016-06-08
|/ / / / | | | | | | | | | | | | | | | | | | | | More precisely, we first remove *.native, *.cm*, *.o, which should normally consistute the only content of these .coq-native directories, and then remove these directories if they're indeed empty
* | | | Officially discontinue the experimental coq build via ocamlbuildGravatar Pierre Letouzey2016-06-08
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It has been accidentaly broken since early 2014 (and especially in 8.5), no easy repair, I won't devote any more hours to this stuff. Moreover no one seems to care apart from Emilio, but he's ok to work on this in a separate repository or branch. I left a dev/doc/ocamlbuild.txt file with a few words about this experiment.
* | | | proofs/proofs.mllib: no more proof_errors !Gravatar Pierre Letouzey2016-06-08
| | | |
* | | | Search interface revisions.Gravatar Pierre-Marie Pédrot2016-06-07
|\ \ \ \
| * | | | Removing the convenience functions from the Search API.Gravatar Pierre-Marie Pédrot2016-06-07
| | | | |
| | | * | Fix bug #4777: Printing time is impacted by large terms that don't print.Gravatar Pierre-Marie Pédrot2016-06-07
| | | | | | | | | | | | | | | | | | | | | | | | | We delay the externalization of application arguments in Constrextern, so that they only get computed when they are actually explicitly displayed.
| | | * | Do not use COQLIBS for the validate rule produced by coq_makefile (bug #4693).Gravatar Guillaume Melquiond2016-06-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The COQLIBS variable contains some -Q and -I options, which are not supported by the checker. So this commit introduces a COQCHKLIBS variable that contains the proper options for coqchk. For the sake of homogeneity, the COQDOCLIBS variable is also preprocessed in the same way. This means that both variables have the same value, but they are kept separate in case the user would like to override one and not the other. This commit also removes some deprecated options from "coqchk --help". They are not removed from coqchk itself to preserve backward compatibility in the branch. An open question is whether coqchk should support dummy options such as -Q (interpreted as -R) or -I (ignored).
* | | | | Merge branch 'trunk' of git+ssh://scm.gforge.inria.fr/gitroot/coq/coq into trunkGravatar Matej Kosik2016-06-07
|\ \ \ \ \
| * \ \ \ \ coq_makefile : minor reworkGravatar Pierre Letouzey2016-06-07
| |\ \ \ \ \
| | * | | | | Coq_makefile: code cleanup (less long lines, etc)Gravatar Pierre Letouzey2016-06-07
| | | | | | |
| | * | | | | coq_makefile: List.iteri is now standard since OCaml 4.00Gravatar Pierre Letouzey2016-06-07
| | | | | | |
| | * | | | | coq_makefile : short display of commands executed by makeGravatar Pierre Letouzey2016-06-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This purely cosmetic effect is obtained by the same variables $(SHOW) and $(HIDE) as in the main Makefile of Coq. If you prefer the earlier raw output : make VERBOSE=1
| | * | | | | coq_makefile: add some -ml-synonym to the ocamldep rulesGravatar Pierre Letouzey2016-06-07
| |/ / / / / | | | | | | | | | | | | | | | | | | | | | | | | Without this, dependencies upon a .ml4 (or a .mlpack) won't be handled correctly.
* | | | | | typoGravatar Matej Kosik2016-06-07
| | | | | |
* | | | | | typographyGravatar Matej Kosik2016-06-07
| | | | | |
| * | | | | printing.mllib: remove some other .mli-only from a .mllibGravatar Pierre Letouzey2016-06-07
| | | | | |
| * | | | | Test for #4787.Gravatar Hugo Herbelin2016-06-07
| | | | | |
| * | | | | Fixing #4787 (Unset Bracketing Last Introduction Pattern not working).Gravatar Hugo Herbelin2016-06-07
|/ / / / /
* | | | | Relying instead on the Coq85 inclusion!Gravatar Hugo Herbelin2016-06-06
| | | | |
* | | | | Mode "Bracketing Last Introduction Pattern" is on for 8.4Gravatar Hugo Herbelin2016-06-06
| | | | | | | | | | | | | | | | | | | | and global for 8.4 and 8.5.
* | | | | Mode "Regular Subst Tactic" is on in 8.6.Gravatar Hugo Herbelin2016-06-06
| | | | |
* | | | | Merge remote-tracking branch 'github/pr/118' into trunkGravatar Maxime Dénès2016-06-06
|\ \ \ \ \
| | | | * | Fixing problems introduced in 8.5 with Ltac trace report. E.g.Gravatar Hugo Herbelin2016-06-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Tactic Notation "f" constr(x) := apply x. Ltac g x := f x. Goal False. g I. (* Was printing Top.Top#<>#1 *) idtac; f I. (* Was not properly locating error *) This is a "a minima" fix. This a different fix than in trunk, so the merge will have to take the trunk version.
* | | | | | About printing of traces of failures while calling ltac code.Gravatar Hugo Herbelin2016-06-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | An Ltac trace printing mechanism was introduced in 8.4 which was inadvertedly modified by a series of commits such as 8e10368c3, 91f44f1da7a, ... It was also sometimes buggy, iirc, when entering ML tactics which themselves were calling ltac code. It got really bad in 8.5 as in: Tactic Notation "f" constr(x) := apply x. Ltac g x := f x. Goal False. idtac; f I. (* bad location reporting *) g I. (* was referring to tactic name "Top.Top#<>#1" *) which this commit fixes. I don't have a clear idea of what would be the best ltac tracing mechanism, but to avoid it to be broken without being noticed, I started to add some tests. Eventually, it might be worth that an Ltac expert brainstrom on it!
* | | | | | xmlprotocol: fix unmarshaling of Feedback.MessageGravatar Enrico Tassi2016-06-06
| | | | | |
* | | | | | xmlprotocol: uncomment marshalling code for custom messageGravatar Enrico Tassi2016-06-06
| | | | | |
* | | | | | xmlprotocol: Marshal_error carries the reasonGravatar Enrico Tassi2016-06-06
| | | | | |
| | | | | * Improve a comment in the test suiteGravatar Jason Gross2016-06-05
| | | | | |
| | | | | * Make Ltac Profiling an settingGravatar Jason Gross2016-06-05
| | | | | |
| | | | | * Synchronize the profiler state with the documentGravatar Jason Gross2016-06-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is suboptimal, because mutation leaves room for subtle bugs, but rewriting @tebbi's code to be functional was a pain, and not something I could figure out how to do easily. I'm working under the assumption that there is no sharing in a single treenode, which I'm not completely sure is valid. That said, a few simple tests seem to indicate that this works as expected.
| | | | | * -profileltac -> -profile-ltac, as per @herbelinGravatar Jason Gross2016-06-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | https://github.com/coq/coq/pull/150#issuecomment-219141596 ```bash git grep --name-only profileltac | xargs sed s'/profileltac/profile-ltac/g' -i ```
| | | | | * Remove a spurious tclFINALLY when not profilingGravatar Jason Gross2016-06-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Implement the suggestion of @mattam82 to check whether or not we're profiling before inserting the tclFINALLY. Timing stats: Using: ```bash make clean && git clean -xfd && ./configure -local -with-doc no -coqide no && /usr/bin/time -f "all coq (real: %e, user: %U, sys: %S, mem: %M ko)" make STDTIME='/usr/bin/time -f "$* (real: %e, user: %U, sys: %S, mem: %M ko)"' TIMED=1 -j4 2>&1 ``` Without LtacProf (4c078b0362542908eb2fe1d63f0d867b339953fd), two runs: ``` real: 147.96, user: 467.93, sys: 30.80, mem: 820468 ko real: 148.04, user: 467.92, sys: 30.49, mem: 820680 ko ``` With LtacProf, two runs: ``` real: 148.32, user: 469.09, sys: 30.57, mem: 818588 ko real: 148.38, user: 469.71, sys: 30.56, mem: 816720 ko ``` Overall overhead on building Coq: about 0.24% Differences in the slowest files: ``` After | File Name | Before || Change --------------------------------------------------------------------------- 7m07.32s | Total | 7m05.16s || +0m02.15s --------------------------------------------------------------------------- 0m44.90s | Numbers/Rational/BigQ/QMake | 0m44.11s || +0m00.78s 0m15.94s | plugins/setoid_ring/Ncring_polynom | 0m15.72s || +0m00.21s 0m14.04s | Numbers/Cyclic/DoubleCyclic/DoubleCyclic | 0m14.05s || -0m00.01s 0m10.65s | Numbers/Cyclic/DoubleCyclic/DoubleSqrt | 0m10.45s || +0m00.20s 0m09.57s | FSets/FMapAVL | 0m09.53s || +0m00.04s 0m09.51s | MSets/MSetRBT | 0m09.45s || +0m00.06s 0m07.00s | Numbers/Cyclic/DoubleCyclic/DoubleDiv | 0m07.05s || -0m00.04s 0m06.88s | Numbers/Cyclic/Int31/Cyclic31 | 0m06.94s || -0m00.06s 0m05.82s | plugins/setoid_ring/Field_theory | 0m05.87s || -0m00.04s 0m05.74s | FSets/FMapFullAVL | 0m05.71s || +0m00.03s 0m05.37s | Reals/Ratan | 0m05.42s || -0m00.04s 0m05.36s | plugins/setoid_ring/Ring_polynom | 0m05.37s || -0m00.00s 0m05.09s | plugins/micromega/EnvRing | 0m04.96s || +0m00.12s ```
| | | | | * Add LtacProf documentationGravatar Jason Gross2016-06-05
| | | | | |
| | | | | * LtacProf for Coq trunkGravatar Jason Gross2016-06-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This add LtacProfiling. Much of the code was written by Tobias Tebbi (@tebbi), and Paul A. Steckler was invaluable in porting the code to Coq v8.5 and Coq trunk.
| | | | | * Strip some trailing spacesGravatar Jason Gross2016-06-05
| |_|_|_|/ |/| | | |
* | | | | Adding the Print Ltac Signatures command.Gravatar Pierre-Marie Pédrot2016-06-05
|\ \ \ \ \
| * | | | | Adding the Print Ltac Signature command.Gravatar Pierre-Marie Pédrot2016-06-05
|/ / / / /
* | | | | Remove Q_constr from grammar folder.Gravatar Pierre-Marie Pédrot2016-06-05
|\ \ \ \ \
| * | | | | Removing the Q_constr file.Gravatar Pierre-Marie Pédrot2016-06-05
| | | | | |
| * | | | | Moving Hipattern to a regular ML file.Gravatar Pierre-Marie Pédrot2016-06-05
| | | | | |
| * | | | | Removing PATTERN uses in Hipattern.Gravatar Pierre-Marie Pédrot2016-06-05
|/ / / / /
| | | | * Fix incorrect checking of library checksums.Gravatar Maxime Dénès2016-06-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since d09def34, only the summary of libraries was included in the checksum, not the actual content of the library. This quick fix performs the checking of the checksum immediately, even if the loading is delayed.
* | | | | Merge remote-tracking branch 'github/pr/184' into trunkGravatar Maxime Dénès2016-06-04
|\ \ \ \ \
* \ \ \ \ \ Remove a few tactics from the Tacexpr AST.Gravatar Pierre-Marie Pédrot2016-06-03
|\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | Note that this breaks a few badly written scripts using intro in strict mode without providing an existing identifier.