aboutsummaryrefslogtreecommitdiffhomepage
path: root/interp
Commit message (Collapse)AuthorAge
* Merge branch 'v8.6'Gravatar Pierre-Marie Pédrot2017-05-17
|\
* \ Merge PR#630: [interp] [ast] Make raw_cases_pattern_expr private + small cleanupGravatar Maxime Dénès2017-05-17
|\ \
| | * Fixing bug #5222 (anomaly with "`pat" in the presence of scope delimiters).Gravatar Hugo Herbelin2017-05-16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We seized this opportunity to factorize the code for interning `pat with more general pre-existing code. More precisely: There was already a function to compute the free variables of a pattern. Commit c6d9d4fb rewrote an approximation of it and #5222 hits cases non-treated by this function. We remove the partially-defined redundant code and use instead the existing code since intern_cases_pattern, already called, was already doing this computation. (In doing so, we discover a bug in merging names in the presence of nested "as" clauses, which we fix in previous commit. Additionally, intern_local_pattern was misleadingly overkill to simply mean a folding on Id.Set.add and we avoid the detour.
| | * Fixing a bug with nested "as" clauses in "match".Gravatar Hugo Herbelin2017-05-16
| | |
| * | [interp] Rework check for casts inside patterns.Gravatar Emilio Jesus Gallego Arias2017-05-15
| | | | | | | | | | | | | | | | | | | | | | | | 1969e10f25df0c913600099b7b98ea273a064017 introduced a check so a cast in a pattern is not a fatal error. We move this check to the internalization function, which is the logical place to raise it, removing a bit boilerplate code.
| * | [interp] [ast] Make raw_cases_pattern_expr private.Gravatar Emilio Jesus Gallego Arias2017-05-15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The type `raw_cases_pattern_expr` is used only in the interpretation of notation patterns. Indeed, this should be a private type thus we make it local to `Constrintern`; it makes no sense to expose it in the public AST. The patch is routine, except for the case used to interpret primitives in patterns. We now return a `glob_constr` representing the raw pattern, instead of the private raw pattern type. This could be further refactored but have opted to be conservative here. This patch is a refinement of b2953849b999d1c3b42c0f494b234f2a93ac7754 , see the commentaries there for more information about `raw_cases_pattern_expr`.
* | | Typo in comments of constrintern.Gravatar Hugo Herbelin2017-05-15
|/ /
* | Remove dead code and unused open.Gravatar Maxime Dénès2017-05-05
| |
* | Merge PR#558: Adding a fold_glob_constr_with_binders combinatorGravatar Maxime Dénès2017-05-05
|\ \
* \ \ Merge PR#582: Fix warningsGravatar Maxime Dénès2017-05-02
|\ \ \
* | | | Revert "Renaming allow_patvar flag of intern_gen into pattern_mode."Gravatar Maxime Dénès2017-04-28
| | | | | | | | | | | | | | | | This reverts commit 7bdfa1a4e46acf11d199a07bfca0bc59381874c3.
* | | | Revert "Using a more explicit algebraic type for evars of kind "MatchingVar"."Gravatar Maxime Dénès2017-04-28
| | | | | | | | | | | | | | | | | | | | | | | | I'm sure this was pushed by accident, since testing shows immediately that it breaks the compilation of the ssreflect plugin, hence all developments relying on it in Travis.
* | | | Using a more explicit algebraic type for evars of kind "MatchingVar".Gravatar Hugo Herbelin2017-04-28
| | | | | | | | | | | | | | | | A priori considered to be a good programming style.
* | | | Renaming allow_patvar flag of intern_gen into pattern_mode.Gravatar Hugo Herbelin2017-04-28
| | | | | | | | | | | | | | | | | | | | This highlights that this is a binary mode changing the interpretation of "?x" rather than additionally allowing patvar.
* | | | Merge PR#531: Fixing bug #5420 and many similar bugs due to the presence of ↵Gravatar Maxime Dénès2017-04-28
|\ \ \ \ | | | | | | | | | | | | | | | let-ins
| | * | | Fix 4.04 warningsGravatar Gaetan Gilbert2017-04-27
| | | | |
| | * | | Warning 29: non escaped end of line may be non portableGravatar Gaetan Gilbert2017-04-27
| | | | |
| | * | | Remove unused [open] statementsGravatar Gaetan Gilbert2017-04-27
| | | | |
| | * | | Remove some unused values and typesGravatar Gaetan Gilbert2017-04-27
| |/ / / |/| | |
* | | | correcting a typo in a commentGravatar Matej Kosik2017-04-20
| | | |
* | | | Merge branch 'v8.6' into trunkGravatar Maxime Dénès2017-04-15
|\ \ \ \ | | |_|/ | |/| |
| | | * Adding a fold_glob_constr_with_binders combinator.Gravatar Hugo Herbelin2017-04-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Binding generalizable_vars_of_glob_constr, occur_glob_constr, free_glob_vars, and bound_glob_vars on it. Most of the functions of which it factorizes the code were bugged with respect to bindings in the return clause of "match" and in either the types or the bodies of "fix/cofix".
* | | | Merge PR#441: Port Toplevel to the Stm APIGravatar Maxime Dénès2017-04-12
|\ \ \ \
| * | | | [flags] Documentation and a minor tweak.Gravatar Emilio Jesus Gallego Arias2017-04-12
| | | | | | | | | | | | | | | | | | | | Mostly documentation and making a couple of local flags, local.
* | | | | Merge PR#422: Supporting all kinds of binders, including 'pat, in syntax of ↵Gravatar Maxime Dénès2017-04-12
|\ \ \ \ \ | |_|_|_|/ |/| | | | | | | | | record fields.
| | | | * More explicit message when a {struct x} argument refers to a local definition.Gravatar Hugo Herbelin2017-04-09
| | | |/ | | |/|
| | | * Fixing #5454 (an assert false with 'pat).Gravatar Hugo Herbelin2017-04-05
| | | | | | | | | | | | | | | | | | | | Note: Apparently not easy to make a test file as the error is raised in "G_vernac.fresh_var" at parsing time (not captured by Fail).
* | | | Merge branch 'trunk' into pr379Gravatar Maxime Dénès2017-04-04
|\ \ \ \ | | |/ / | |/| |
* | | | Merge branch 'trunk' into pr379Gravatar Maxime Dénès2017-03-24
|\ \ \ \
| | * | | Replacing "cast surgery" in LetIn by a proper field (see PR #404).Gravatar Hugo Herbelin2017-03-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a patch fulfilling the relevant remark of Maxime that an explicit information at the ML type level would be better than "cast surgery" to carry the optional type of a let-in. There are a very few semantic changes. - a "(x:t:=c)" in a block of binders is now written in the more standard way "(x:=c:t)" - in notations, the type of a let-in is not displayed if not explicitly asked so. See discussion at PR #417 for more information.
| | * | | Using the same type of binders for interning and externing.Gravatar Hugo Herbelin2017-03-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously a union type was used for externing. In particular, moving extended_glob_local_binder to glob_constr.ml.
| | * | | Unifying standard "constr_level" names for constructors of local_binder_expr.Gravatar Hugo Herbelin2017-03-24
| | | | | | | | | | | | | | | | | | | | RawLocal -> CLocal
| | * | | Renaming local_binder into local_binder_expr.Gravatar Hugo Herbelin2017-03-24
| | | | | | | | | | | | | | | | | | | | This is a bit long, but it is to keep a symmetry with constr_expr.
| | * | | Merging glob_binder and glob_decl.Gravatar Hugo Herbelin2017-03-24
| | | | |
| | * | | Type extended_glob_local_binder now contains only glob_constr.Gravatar Hugo Herbelin2017-03-24
| | | | | | | | | | | | | | | | | | | | No more constr_expr in it.
| | * | | Standardized the order of constructors for binders: Assum then Def.Gravatar Hugo Herbelin2017-03-24
| | | | |
| | * | | Cleaning phase around local binder at glob level:Gravatar Hugo Herbelin2017-03-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Aligned the type binder_data to the naming scheme used in (raw) local_binder and Rel.Declaration.t. Made some code factorization. Still to do: align type Glob_term.glob_binder to the Assum/Def format too. Note: this includes fix of anomaly with 'pat in cofix (dec77f282).
| | * | | "Standardizing" the name LocalPatten into LocalRawPattern.Gravatar Hugo Herbelin2017-03-24
| |/ / /
| | * | Factorizing/unifying code in dealing with binders.Gravatar Hugo Herbelin2017-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Note: This reveals a little bug yet to fix in g_vernac.ml4. In Definition f '((x,y):id nat * id nat) '((x',y'):id nat * id nat) := Eval unfold id in x+y = x'+y'. the "id" are wrongly unfolded and in Definition f '(x,y) '(x',y') := x+y = x'+y' : Prop. an unexpected cast remains in the body of f.
| | * | Improving the API of constrexpr_ops.mli.Gravatar Hugo Herbelin2017-03-23
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Deprecating abstract_constr_expr in favor of mkCLambdaN, prod_constr_expr in favor of mkCProdN. Note: They did not do exactly the same, the first ones were interpreting "(x y z:_)" as "(x:_) (y:_) (z:_)" while the second ones were preserving the original sharing of the type, what I think is the correct thing to do. So, there is also a "fix" of semantic here.
| * | [safe_string] interp/dumpglobGravatar Emilio Jesus Gallego Arias2017-03-14
| | | | | | | | | | | | No functional change.
| * | Merge branch 'v8.6'Gravatar Pierre-Marie Pédrot2017-02-22
| |\|
| * | Merge PR#189: Remove tabulation support from pretty-printing.Gravatar Maxime Dénès2017-02-20
| |\ \
* | | | Merge branch 'master'.Gravatar Pierre-Marie Pédrot2017-02-14
|\| | |
* | | | Namegen primitives now apply on evar constrs.Gravatar Pierre-Marie Pédrot2017-02-14
| | | | | | | | | | | | | | | | | | | | | | | | Incidentally, this fixes a printing bug in output/inference.v where the displayed name of an evar was the wrong one because its type was not evar-expanded enough.
* | | | Definining EConstr-based contexts.Gravatar Pierre-Marie Pédrot2017-02-14
| | | | | | | | | | | | | | | | | | | | | | | | This removes quite a few unsafe casts. Unluckily, I had to reintroduce the old non-module based names for these data structures, because I could not reproduce easily the same hierarchy in EConstr.
* | | | Removing various compatibility layers of tactics.Gravatar Pierre-Marie Pédrot2017-02-14
| | | |
* | | | Ltac now uses evar-based constrs.Gravatar Pierre-Marie Pédrot2017-02-14
| | | |
* | | | Reductionops now return EConstrs.Gravatar Pierre-Marie Pédrot2017-02-14
| | | |
* | | | Tactics API using EConstr.Gravatar Pierre-Marie Pédrot2017-02-14
| | | |