aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
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-04printing/Ppconstr.Make:Regis-Gianas
- Functorize Ppconstr with respect to a set of tagging functions. - These functions are meant to introduce tags to produce semistructured pretty printings. printing/Ppconstr: Preserve the previous behaviour of this module by instantiating Make with tagging functions that do nothing.
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-04printing/Ppconstr.print_hunks:Regis-Gianas
Make evaluation order explicit. (Do not rely anymore on ocaml evaluation order, which is unspecified.)
2014-11-04printing/Ppconstr: Cosmetics.Regis-Gianas
2014-11-04Removing the old rename tactic.Pierre-Marie Pédrot
2014-11-04Fixing careless name confusion in CHANGES.Pierre-Marie Pédrot
2014-11-04Documenting the change of semantics of the replace tactic.Pierre-Marie Pédrot
2014-11-04Experimentally applying eager evar substitution at the same time asHugo Herbelin
eager meta substition in w_unify, so as to preserve compatibility after PMP's move of (setoid) rewrite clauses from metas to evars (fbbe491cfa). Hoping it is compatible for non-rewrite uses of the eager meta flag, and that it is not too costly.
2014-11-04test suite: some reproduction cases for recently-reported bugs.Xavier Clerc
2014-11-04Test for bug #2149.Pierre-Marie Pédrot
2014-11-03Writing rename_hyps in the new monad.Pierre-Marie Pédrot
This new implementation now allows for simultaneous replacing of hypotheses, thus fixing bug #2149.
2014-11-03New bugs revealed fixed: #3408 by (probably) Maxime's commitsHugo Herbelin
on vm and #3068 by Nov 2 commit on destruct. Also fixed test for failure of #3459.
2014-11-03Now that evars can be parsed, protect strongly Check from calling kernel ↵Hugo Herbelin
with evars.
2014-11-03Fixing confused code for interpretations of evar instances.Hugo Herbelin
2014-11-03vernac_classifier: VernacDeclareTacticDefinition does not alter the parserEnrico Tassi
2014-11-03Show: do print the goalsEnrico Tassi
2014-11-03STM: code refactoringEnrico Tassi
This is mainly shuffling code around and removing internal refs that are not needed anymore.
2014-11-03Subtle swap of lines to preserve VarInstance src field before checkingHugo Herbelin
for residual unifiable evars (otherwise "thin" from logic.ml, erases the src field) + typo.
2014-11-03Fix to 844431761 on improving elimination with indices, getting rid ofHugo Herbelin
intrusive residual local definitions + more conservative strategy for which variables are not generalized (point 2 of 4df1ddc6d6bd07073).
2014-11-03STM: fix printing of goals when on a tty interfaceEnrico Tassi
2014-11-03Fix error reporting id on VtUnknown commandsEnrico Tassi
2014-11-03Fixing inefficiency in typeclass resolution.Pierre-Marie Pédrot
Instead of keeping checking that evars are pending, we cache the pending evars in a proper set computed once and for all.
2014-11-02Saving some nf_evars in the code of destruct/induction.Hugo Herbelin
2014-11-02Improving elimination with indices, getting rid of intrusive residualHugo Herbelin
local definitions...
2014-11-02Some reorganization of the code for destruct/induction:Hugo Herbelin
- It removes some redundancies. - It fixes failures when destructing a term mentioning goal hypotheses x1, ..., xn or a term which is a section variable x when this term is in a type with indices, and the indices also occur in the type of one of x1, ..., xn, or of x. - It fixes non-respect of eliminator type when completing pattern possibly given by a prefix. - It fixes b2e1d4ea930c which was dealing with the case when the term was a section variable (it was unfortunately also breaking some compatibility about which variables variable were generalized in induction and which variables were automatically cleared because unselected).
2014-11-02Fixing subterm matched for destruct when it is matched from prefix.Hugo Herbelin
2014-11-02Supporting "at occs" as a short-hand for "in |- * at occs" in "destruct".Hugo Herbelin
2014-11-02Plural and singular forms in error messages.Hugo Herbelin
2014-11-02Cosmetic changes.Hugo Herbelin
2014-11-02Fixing 1177da327 (reorganization of the test for generic selection ofHugo Herbelin
occurrences: some uniformisation was not appropriate for "change").
2014-11-02Fixing file destruct.v.Hugo Herbelin
2014-11-01Document [Info] command.Arnaud Spiwack
2014-11-01Info: the warning message of the defunct [info] tactic now points to the ↵Arnaud Spiwack
[Info] command.
2014-11-01Info: do not record info trace unless needed.Arnaud Spiwack
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-11-01Don't raise an error when printing intro-patterns in [functional induction].Arnaud Spiwack
2014-11-01Info: print name of calls to Ltac constants ([TacCall]).Arnaud Spiwack
Some particular care needed to be taken to print aliases properly. The printing of argument is just the generic printer for [genarg]. The trouble is that (apart from being incomplete), it does not know that it's printing Ltac arguments. As a consequence, the arguments are not properly quoted (e.g. if they are tactic expressions, they are not within [ltac:(...)].
2014-11-01Info: tactic notations (TacAlias) print their names.Arnaud Spiwack
Empirically it works better on some notations than on others and I have no idea why. I've seen notations not printing their arguments, for instance, and other printing perfectly.
2014-11-01Info: Tactics coming from [TACTIC EXTEND] print their names.Arnaud Spiwack
Since PMP's intervention, the [TACTIC EXTEND] tactics are not uniform: some are syntax, and some are just an internal name for an Ltac definition. The latter kind prints an internal name. It may be better to avoid printing them in the trace altogether. But I haven't figured out how to detect that properly yet.
2014-11-01Info: print the name of atomic tactics.Arnaud Spiwack
The printing uses the printer for interpreted tactics. It only works for tactics which are defined in the new style. There are still a few atomic tactics in tacinterp which are defined in [V82] style. Namely: exact, apply, clear, rename, reduce, change, (mutual variant of) fix, (mutual variant of) cofix These print placeholder names which are never reparsable and not as useful.
2014-11-01Add a interpreted level [tacexpr] to [Tacexpr] together with its printer.Arnaud Spiwack
Re-add, in fact, since it was there in v8.3 but was dead code in v8.4 hence was deleted. It is necessary for printing info traces, however. A lot of the code had changed since v8.3, so adapting the code was non-trivial and some thing may be printed wrong. It require re-adding a [tacexpr] argument to [gen_tactic_expr]. It had been made obsolete by the deletion of [pr_tactic] in v8.4 (even though printing [glob_tactic_expr] in a [tactic_expr] is only an approximation of the appropriate behaviour). A new kind of argument, [delayed_constr], has made an appearance between v8.4 and trunk, and it differs from [constr] in the typed level. So it required its own parameter in [gen_tactic_expr]. At this point [delayed_constr] are printed in the globalised level because they are interpreted as closures. Maybe a better approximation is warranted. Both in the printing of rewrite and induction, I changed a [pr_lconstr] (note the 'l') by a [pr_dconstr]. It is probably not quite correct, and may need fixing (adding a [pr_dlconstr] to [Pptactics] I guess?).
2014-11-01Info: Ltac's idtac logs its message in the info trace.Arnaud Spiwack
2014-11-01Info: print a name for the primitive tactics in [Proofview].Arnaud Spiwack
The name is chosen in accordance to Ltac's syntax. In particular [refine] prints as Ltac's refine, which is not entirely correct (Ltac's refine does some βι-reduction after refinement). Maybe it would be better to give make it clear that it is a different refine. Still in refine, the constr is printed without taking into account the new evars, which, apart from potentially getting the order of the goals wrong, prints new evars as ?x instead of ?[x]. A printer for terms with new evars will be necessary. In the case of [V82.tactic], the name is just <unknown> because there is no way to retrieve any information. It won't appear in the first level of info in Ltac, however, if the user would require a deeper trace, he may see internal tactics (Tactics defined with TACTIC EXTEND also have weird, unparsable, internal names).
2014-11-01Info: dispatching-branches are declared as such in the info trace.Arnaud Spiwack
Hence dispatches are printed as dispatches rather than sequences.
2014-11-01Add [Info] command.Arnaud Spiwack
Called with [Info n tac], runs [tac] and prints its info trace unfolding [n] level of tactic names ([0] for no unfolding at all).
2014-11-01An API for info traces.Arnaud Spiwack