aboutsummaryrefslogtreecommitdiff
path: root/lib
AgeCommit message (Collapse)Author
2014-12-01Better commentEnrico Tassi
2014-11-28Future: API for blocking futuresEnrico Tassi
2014-11-27better to always print the thread idEnrico Tassi
2014-11-27async_queries_* merged with async_proofs_*Enrico Tassi
2014-11-27Feedback: API cleaned up, documented and made user extensibleEnrico Tassi
2014-11-19Making map_union a standard function of the ML library.Hugo Herbelin
2014-11-15Reworking the -color flag of coqtop.Pierre-Marie Pédrot
2014-11-15Removing deprecated code handling color in Pp.Pierre-Marie Pédrot
2014-11-15Adding a terminal library.Pierre-Marie Pédrot
2014-11-13Move conjugate_verb_to_be next to cString.plural.Hugo Herbelin
2014-11-10Plug the dynamic tags in the Richpp mechanism.Pierre-Marie Pédrot
2014-11-10Adding a dynamic tag type in Pp.Pierre-Marie Pédrot
2014-11-05lib/RichPp: Rename into Richpp.Yann Régis-Gianas
printing/RichPrinter: Rename into Richprinter. printing/{ppvernac, ppconstr, pptactic}: Rename RichPp into Richpp. printing/Richprinter: Cosmetics.
2014-11-05lib/richPp: Fix a bug related to the compatibility with ocaml 3.12Yann Régis-Gianas
- The previous version of this module was using a feature of the Format module of ocaml 4.01. - Add comments.
2014-11-04lib/Ppconstr: Cosmetics.Regis-Gianas
2014-11-04lib/Ppconstr: Cosmetics.Regis-Gianas
2014-11-04lib/richPp: Cosmetics.Regis-Gianas
2014-11-04lib/Pp.tag: New.Regis-Gianas
A combinator to introduce tags. printing/{Ppconstr, Ppvernac}: Use it.
2014-11-04lib/Xml_parser.parse: Publish and document new interface.Regis-Gianas
2014-11-04lib/Xml_printer.pcdata_to_string: Publish.Regis-Gianas
2014-11-04printing/RichPrinter: New API for rich pretty-printing.Regis-Gianas
printing/Ppannotation: Define the projection of annotations into XML attributes. lib/richPp: Implements valid entities escaping.
2014-11-04lib/Pp.rewrite: New.Regis-Gianas
Allow strings of a pretty-print to be rewritten just before the actual output.
2014-11-04lib/Xml_printer: Handle non-breakable spaces.Regis-Gianas
2014-11-04lib/Xml_parser.parse: Make canonicalization optional. (By default, it is ↵Regis-Gianas
applied, to preserve previous behaviors.
2014-11-04lib/Xml_parser: Cosmetics.Regis-Gianas
2014-11-04lib/Xml_parser: Cosmetics.Regis-Gianas
2014-11-04Xml_lexer: Handle non-breakable spaces.Regis-Gianas
2014-11-04RichPp: New module.Regis-Gianas
It is responsible for turning a tagged pretty-printing into a semi-structured document. clib.mllib: Include RichPp as well as Xml_*. The migration of Xml_* from lib to clib is needed by RichPp depends on these modules.
2014-11-04Xml_datatype.gxml: New type for semi-structured documents.Regis-Gianas
Xml_parser, Xml_printer: Use it.
2014-11-04lib/Pp: Publish combinators for tags opening and closing.Regis-Gianas
2014-11-04lib/Pp.ppcmd_token:Regis-Gianas
Extend this type with Ppcmd_open_tag and Ppcmd_close_tag. lib/Pp.ppcmd_pp_dirs: Handle these tags with a straightforward translation to corresponding Format commands.
2014-11-04lib/Pp: Cosmetics.Regis-Gianas
2014-11-01Add an [Info Level] option to print info traces automatically.Arnaud Spiwack
[Set Info Level n] prints all info traces at level [n]. [Unset Info Level] stops the automatic printing of info traces. The unfolding level [n] can be overloaded by local [Info m tac] calls.
2014-10-31Feedback message: hold extra info to help routingEnrico Tassi
PIDE based GUIs can take advantage of multiple panels and get some feedback routed there. E.g. query panel
2014-10-31STM: new worker for queriesEnrico Tassi
With the options -async-queries-always-delegate queries are always delegated to a worker process (Eval, Check, ...). Users of PIDE based UIs (in Denmark) reported that the current behavior of processing query synchronously is rather unexpected when one is used to get proofs processed asynchronously. Non instantaneous queries are part of many scripts and are there as "tests" for testing the execution of recursive functions. A standard proof script shape in an ongoing work by Appel and Bengtson is made of blocks like: - recursive function definition, - some tests, - some proofs And one cannot quickly jump over the tests (only the proofs). Enclosing the queries into dummy proofs to recover a reactive UI is just annoying. Hence this patch. Currently CoqIDE is not able to integrate the asynchronous feedback of the query workers into the document, hence if one passes the option to CoqIDE one only gets a boolean out of queries (processed/error).
2014-10-25Changed implementation of lib/heap.ml to use Braun treesJean-Christophe Filliatre
The previous implementation was embarrassingly naive and inefficient. For elements with the same priority, this new implementation may return a maximum element that is different (yet still with the highest priority, of course). This code is used only in tactic firstorder.
2014-10-24-help failing (fix 3762)Enrico Tassi
2014-10-23Monad: change the error managing of two-list combinators.Arnaud Spiwack
Otherwise I risked catching errors from the argument functions when I wanted to catch size mismatch to add information to errors.
2014-10-22Goal printing made uniform: always done in STM (close 3585)Enrico Tassi
Goal printing was partially broken. Some commands in vernacentries were printing, but not all of them. Moreover an unlucky combination of `Flags.verbosely (fun () -> interp "Set Silent")` was making the silent flag not settable anymore. Now STM always print the open goals after a command when run in interactive mode via coqtop or emacs. More modern GUI do ask for the goals.
2014-10-22An additional [List.iter] monadic combinator.Arnaud Spiwack
2014-10-22Add more primitives to the [Monad.Make] arguments.Arnaud Spiwack
For optimisation purposes.
2014-10-22Proofview: move [list_goto] to the [CList] module.Arnaud Spiwack
It is, after all, a generic function about lists.
2014-10-22Add a two-list monadic fold_left iterator.Arnaud Spiwack
2014-10-22Small optimisation in the monadic list combinators.Arnaud Spiwack
The monadic bind can be costly, so sparing a few can be worth it. Therefore I unrolled the last element of the recursions. I took the opportunity to do some loop unrolling, which is probably more useful for map combinators than for fold.
2014-10-22Factor module signatures.Arnaud Spiwack
2014-10-13When loading libraries, feed back dependencies.Carst Tankink
These dependencies between files can be used by UIs to guide compilation and reloading of files. FileDependency (Some "/foo.v", "/bar.v") means foo depends on bar. FileDependency (None, "/bar.v") means the current file depends on bar.
2014-10-13STM: primitives to snapshot a .vi while in interactive modeEnrico Tassi
2014-10-13library/opaqueTables: enable their use in interactive modeEnrico Tassi
Before this patch opaque tables were only growing, making them unusable in interactive mode (leak on Undo). With this patch the opaque tables are functional and part of the env. I.e. a constant_body can point to the proof term in 2 ways: 1) directly (before the constant is discharged) 2) indirectly, via an int, that is mapped by the opaque table to the proof term. This is now consistent in batch/interactive mode This is step 0 to make an interactive coqtop able to dump a .vo/.vi
2014-10-09Fixup leading ./ path cleaningPierre Boutillier
2014-10-07Splitting out of auto.ml a file hints.ml dedicated to hints so as toHugo Herbelin
being able to export hints without tactics, vm, etc. to come with. Some functions moved to the new proof engine.