aboutsummaryrefslogtreecommitdiffhomepage
path: root/lib
Commit message (Collapse)AuthorAge
* remote counter: avoid thread race on sockets (fix #4823)Gravatar Enrico Tassi2016-06-17
| | | | | | | | | | | | | | | | | | | | | | With par: the scenario is this one: coqide --- master ---- proof worker 1 (has no par: steps) ---- proof worker 2 (has a par: step) ---- tac worker 2.1 ---- tac worker 2.2 ---- tac worker 2.3 Actor 2 installs a remote counter for universe levels, that are requested to master. Multiple threads dealing with actors 2.x may need to get values from that counter at the same time. Long story short, in this complex scenario a mutex was missing and the control threads for 2.x were accessing the counter (hence reading/writing to the single socket connecting 2 with master at the same time, "corrupting" the data flow). A better solution would be to have a way to generate unique fresh universe levels locally to a worker.
* Unicode.ascii_of_ident is now truly injectiveGravatar Pierre Letouzey2016-05-19
| | | | | | | | | | | | | | | | | | | | A non-ASCII char is now converted to _UUxxxx_ with xxxx being its unicode index in hexa. And any preexisting _UU substring in the ident is converted to _UUU. The switch from __Uxxxx_ to _UUxxxx_ is cosmetic, it just helps the extraction (less __ in names). But the other part of the patch (detection of preexisting _UU substrings) is critical to make ascii_of_ident truly injective and avoid the following kind of proof of False via native_compute : Definition α := 1. Definition __U03b1_ := 2. Lemma oups : False. Proof. assert (α = __U03b1_). { native_compute. reflexivity. } discriminate. Qed. Conflicts: lib/unicode.mli
* Fix bug #4722: Coq dies when encountering broken symbolic links.Gravatar Pierre-Marie Pédrot2016-05-12
|
* typoGravatar Enrico Tassi2016-05-04
|
* Print magic numbers in bad magic error messageGravatar Tej Chajed2016-04-25
|
* A patch renaming equal into eq in the module dealing withGravatar Hugo Herbelin2016-03-22
| | | | | hash-consing, so as to avoid having too many kinds of equalities with same name.
* Fix #4591: Uncaught exception in directory browsing.Gravatar Pierre-Marie Pédrot2016-03-15
| | | | We protect Sys.readdir calls againts any nasty exception.
* Win: kill unreliable hence do not waitpid after kill -9 (Close #4369)Gravatar Enrico Tassi2016-03-09
| | | | This commit also completes 74bd95d10b9f4cccb4bd5b855786c444492b201b
* Rename Ephemeron -> CEphemeron.Gravatar Maxime Dénès2016-03-04
| | | | Fixes compilation of Coq with OCaml 4.03 beta 1.
* Fixing bug #4105: poor escaping in the protocol between CoqIDE and coqtop.Gravatar Pierre-Marie Pédrot2016-03-03
| | | | | | | Printing invalid UTF-8 string startled GTK too much, leading to CoqIDE dying improperly. We now check that all strings outputed by Coq are proper UTF-8. This is not perfect, as CoqIDE will sometimes truncate strings which contains the null character, but at least it should not crash.
* Don't fail fatally if PATH is not set.Gravatar Emilio Jesus Gallego Arias2016-02-10
| | | | This fixes micromega in certain environments.
* Restore warnings produced by the interpretation of the command lineGravatar Hugo Herbelin2016-01-22
| | | | | | | (e.g. with deprecated options such as -byte, etc.) since I guess this is what we expect. Was probably lost in 81eb133d64ac81cb.
* Update copyright headers.Gravatar Maxime Dénès2016-01-20
|
* Hooks for a third-party XML plugin. Contributed by Claudio Sacerdoti Coen.Gravatar Maxime Dénès2016-01-15
|
* Protect code against changes in Map interface.Gravatar Maxime Dénès2016-01-06
| | | | | | The Map interface of upcoming OCaml 4.03 includes a new union operator. In order to make our homemade implementation of Maps compatible with OCaml versions from 3.12 to 4.03, we define our own signatures for Maps.
* Fix order of files in mllib.Gravatar Maxime Dénès2016-01-05
| | | | | | | | CString was linked after Serialize, although the later was using CString.equal. This had not been noticed so far because OCaml was ignoring functions marked as external in interfaces (which is the case of CString.equal) when considering link dependencies. This was changed on the OCaml side as part of the fix of PR#6956, so linking was now failing in several places.
* COMMENTS: PredicateGravatar Matej Kosik2016-01-05
| | | | | | | | In the original version, ocamldoc markup wasn't used properly thus ocamldoc output did not in all places make sense. This commit makes sure that the documentation of the Predicate module is as clear as the documentation of the Set module (in the standard library).
* Do not dump a glob reference when its location is ghost. (Fix bug #4469)Gravatar Guillaume Melquiond2015-12-31
| | | | | | | | | | This patch also causes the code to finish a bit faster in the NoGlob case by not preparing a string for dump_string. It also optimizes Dumpglob.is_ghost by only checking whether the end position is zero. Note that no ghost locations were part of the glob files of the standard library before the patch. Note also that the html documentation of the standard library is bitwise identical before and after the patch.
* spawn: fix leak of file descriptorsGravatar Enrico Tassi2015-12-17
| | | | | | The interesting manifestation of the bug was Unix.select returning no error but the empty list of descriptors, as if a timeout did happen.
* Fixing compilation with OCaml 3.12 after commit 9d45d45f3a87 on removingGravatar Hugo Herbelin2015-12-10
| | | | "open Unix" from lib/system.ml.
* Remove remaining occurrences of Unix.readdir.Gravatar Guillaume Melquiond2015-12-09
|
* Replace Unix.readdir by Sys.readdir in dir cache.Gravatar Emilio Jesus Gallego Arias2015-12-09
| | | | This makes the function sightly more portable.
* Fix for case-insensitive path looking continued (#2554): Adding aGravatar Hugo Herbelin2015-11-25
| | | | | second chance to dynamically regenerate the file system cache when a file is not found (suggested by Guillaume M.).
* Generalizing the patch to bug #2554 on fixing path looking withGravatar Hugo Herbelin2015-11-25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | correct case on MacOS X whose file system is case-insensitive but case-preserving (HFS+ configured in case-insensitive mode). Generalized it to any case-preserving case-insensitive file system, which makes it applicable to Windows with NTFS used in case-insensitive mode but also to Linux when mounting a case-insensitive file system. Removed the blow-up of the patch, improved the core of the patch by checking whether the case is correct only for the suffix part of the file to be found (not for the part which corresponds to the path in which where to look), and finally used a cache so that the effect of the patch is not observable. Note that the cache is implemented in a way not synchronous with backtracking what implies e.g. that a file compiled in the middle of an interactive session would not be found until Coq is restarted, even by backtracking before the corresponding Require. For history see commits b712864e9cf499f1298c1aca1ad8a8b17e145079, 4b5af0d6e9ec1343a2c3ff9f856a019fa93c3606 69941d4e195650bf59285b897c14d6287defea0f e7043eec55085f4101bfb126d8829de6f6086c5a. as well as https://coq.inria.fr/bugs/show_bug.cgi?id=2554 discussion on coq-club "8.5 and MathClasses" (May 2015) discussion on coqdev "Coq awfully slow on MacOS X" (Sep 2015)
* Fixed #4274, bad formatting of messages in emacs mode.Gravatar Pierre Courtieu2015-10-19
|
* Miscellaneous typos, spacing, US spelling in comments or variable names.Gravatar Hugo Herbelin2015-10-18
|
* Fix some typos.Gravatar Guillaume Melquiond2015-10-14
|
* Fix some typos.Gravatar Guillaume Melquiond2015-10-13
|
* aux_file: export API to ease writing of a Proof Using annotator.Gravatar Enrico Tassi2015-10-08
|
* CThread: blocking read + threads now worksGravatar Enrico Tassi2015-10-08
|
* Spawn: use each socket exclusively for writing or readingGravatar Enrico Tassi2015-10-08
| | | | | | According to http://caml.inria.fr/mantis/view.php?id=5325 you can't use the same socket for both writing and reading. The result is lockups (may be fixed in 4.03).
* Future: make not-here/not-ready messages customizableGravatar Enrico Tassi2015-10-08
|
* emacs output mode: Added <infomsg> tag to debug messages.Gravatar Pierre Courtieu2015-10-02
| | | | So that they display in response buffer.
* Make the interface of System.raw_extern_intern much saner.Gravatar Guillaume Melquiond2015-09-29
| | | | | | There is no reason (any longer?) to create simultaneous closures for interning and externing files. This patch makes the code more readable by separating both functions and their signatures.
* Prevent States.intern_state and System.extern_intern from looking up files ↵Gravatar Guillaume Melquiond2015-09-29
| | | | | | | | | in the loadpath. This patch causes a bit of code duplication (because of the .coq suffix added to state files) but it makes it clear which part of the code is looking up files in the loadpath and for what purpose. Also it makes the interface of System.extern_intern and System.raw_extern_intern much saner.
* Revert "On MacOS X, ensuring that files found in the file system have the"Gravatar Maxime Dénès2015-09-20
| | | | | | | | | | | | and "Continuing incomplete 4b5af0d6e9ec1 (on MacOS X, ensuring that files" and "Continuing 4b5af0d6e9 and 69941d4e19 about filename case check on MacOS X." This reverts commits 4b5af0d6e9ec1343a2c3ff9f856a019fa93c3606 and 69941d4e195650bf59285b897c14d6287defea0f and e7043eec55085f4101bfb126d8829de6f6086c5a. Trying to emulate a case sensitive file system on top of a case aware one is too costly: 3x slowdown when compiling the stdlib or CompCert.
* Fixing previous patch.Gravatar Pierre-Marie Pédrot2015-09-10
|
* Fixing the XML lexer definition of names to match the standard.Gravatar Pierre-Marie Pédrot2015-09-10
|
* Revert the four previous commits and update the description of Richpp.Gravatar Pierre-Marie Pédrot2015-08-15
| | | | | Correcting the code w.r.t. to the API was not the right solution. Instead, the API comment had to be corrected.
* More invariants in Richpp.Gravatar Pierre-Marie Pédrot2015-08-15
| | | | | | We ensure statically by typing that the tags used by the rich printer are integers. Furthermore, we also expose through typing that tags are irrelevants in the returned XML.
* More parametric type for generalized XML.Gravatar Pierre-Marie Pédrot2015-08-15
|
* Statically ensure that we omit null annotations in Richpp.Gravatar Pierre-Marie Pédrot2015-08-15
|
* Fixing richpp behaviour w.r.t. its specification.Gravatar Pierre-Marie Pédrot2015-08-15
| | | | | Contrarily to what was described in the API, nodes without annotations were not ignored by the printer but left there instead.
* Reverting 16 last commits, committed mistakenly using the wrong push command.Gravatar Hugo Herbelin2015-08-02
| | | | | | | | | | | | | | | | | | | | | | Sorry so much. Reverted: 707bfd5719b76d131152a258d49740165fbafe03. 164637cc3a4e8895ed4ec420e300bd692d3e7812. b9c96c601a8366b75ee8b76d3184ee57379e2620. 21e41af41b52914469885f40155702f325d5c786. 7532f3243ba585f21a8f594d3dc788e38dfa2cb8. 27fb880ab6924ec20ce44aeaeb8d89592c1b91cd. fe340267b0c2082b3af8bc965f7bc0e86d1c3c2c. d9b13d0a74bc0c6dff4bfc61e61a3d7984a0a962. 6737055d165c91904fc04534bee6b9c05c0235b1. 342fed039e53f00ff8758513149f8d41fa3a2e99. 21525bae8801d98ff2f1b52217d7603505ada2d2. b78d86d50727af61e0c4417cf2ef12cbfc73239d. 979de570714d340aaab7a6e99e08d46aa616e7da. f556da10a117396c2c796f6915321b67849f65cd. d8226295e6237a43de33475f798c3c8ac6ac4866. fdab811e58094accc02875c1f83e6476f4598d26.
* A patch renaming equal into eq in the module dealing withGravatar Hugo Herbelin2015-08-02
| | | | | hash-consing, so as to avoid having too many kinds of equalities with same name.
* Fixing bug #4281: Better escaping of XML attributes.Gravatar Pierre-Marie Pédrot2015-07-28
|
* Use open_utf8_file_in for opening files in the IDE. (Fix bug #2874)Gravatar Guillaume Melquiond2015-07-28
| | | | | | | | File system.ml seemed like a better choice than util.ml for sharing the code, but it was bringing a bunch of useless dependencies to the IDE. There are presumably several other tools that would benefit from using open_utf8_file_in instead of open_in, e.g. coqdoc.
* Moved fatal_error from Coqtop to Errors and corrected dependencies accordingly.Gravatar Thomas Sibut-Pinote2015-06-25
| | | | This allows fatal_error to be used for printing anomalies at loading time.
* Add a Set Dump Bytecode command for debugging purposes.Gravatar Maxime Dénès2015-06-23
| | | | | Prints the VM bytecode produced by compilation of a constant or a call to vm_compute.
* Flag -test-mode intended to be used for ad-hoc prints in test-suiteGravatar Enrico Tassi2015-05-29
| | | | | | | Of course there is an exception to the previous commit. Fail used to print even if silenced but loading a vernac file. This behavior is useful only in tests, hence this flag.