| Age | Commit message (Collapse) | Author |
|
variables" when matching over "{v : _ | _ & _}" which hides twice the
binding "fun v" since it is "sig2 (fun v => _) (fun v => _)".
Computing the bound variables statically at internalisation time
rather than every time at interpretation time. This cannot hurt even
if I don't know how to deal with the "notation" problem of a single
bound variable actually hiding two: at the current time, the notation
is printed only if the two variables are identical (see #4592), so,
with this semantics the warning should not be printed, but we lost the
information that we are coming from a notation; if #4592 were
addressed, then one of the binding should be alpha-renamed if they
differ, so collision should be solved by choosing the variable name
which is not renamed, but the matching algorithm should then be aware
of what the notation printing algorithm is doing... maybe not the most
critical thing at the current time.
|
|
not considering conversion of constants over their canonical name but
on their user name. This is observable when delta is off.
|
|
build a default case if the pattern is irrefutable. It did not matter
in practice because we did not check for unused clauses in this case.
|
|
|
|
|
|
|
|
This branch mainly provides two features:
1. The resolution of tactic notation scopes is not tied to a hardwired Pcoq
registration anymore. We expose instead an API to interpret names as a given
generic argument, effectively reversing the logical dependency between parsing
entries and generic arguments.
2. ML tactics do not declare their own notation system anymore. They rely instead
on plain tactic notations, except for a little hack due to the way we currently
interpret toplevel values.
|
|
|
|
|
|
|
|
|
|
- This patch changes the search interface to take [Str.regexp]s,
[constr_pattern]s, and [DirPath.t] instead of [string]s and
[string list]s.
- Convenience functions are provided to do the translation.
|
|
|
|
|
|
Instead of relying on entry names as given by a hardwired registering
scheme in Pcoq, we recover them first through a user-defined map, and
fallback on generic argument names.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
with a more explicit message.
|
|
while eta-expanding a notation) + a more serious variant of it
(alpha-conversion incorrect wrt eta-expansion).
|
|
This was only when compiling with Camlp4 and it was producing an
assertion failure in asmcomp/emitaux.ml at line 226, reported as
OCaml's bug #6243.
Note: The issue of a problematic compilation with 4.01.0 was raised at
last WG.
|
|
I made a confusion between ltac: in constr and ltac: in tactics, the
one needing parentheses in v8.5 but the latter needing parentheses
only in trunk.
This reverts commit f5dc54519f2a62bab2f7b9059e8c3c8dc53619be.
|
|
Bug uncovered by ekcburak@hotmail.com
https://sympa.inria.fr/sympa/arc/coq-club/2016-04/msg00006.html
Now, terms of the the form (Rinv t) are only syntaxified when t evaluates to a non-zero constant.
|
|
The documentation of Ocaml's `Format` module specifies:
> The behaviour of pretty-printing commands is unspecified if there is
> no opened pretty-printing box. Each box opened via one of the open_
> functions below must be closed using close_box for proper
> formatting. Otherwise, some of the material printed in the boxes may
> not be output, or may be formatted incorrectly.
(http://caml.inria.fr/pub/docs/manual-ocaml/libref/Format.html)
However, [lib/pp.ml] seems not to take lots of precautions to ensure
that format is always called with an enclosing box.
If `log_via_feedback` is set, [lib/pp.ml:string_of_ppcmds] will call
`msg_with` without a top-level enclosing box, resulting in poor display
results like mismatched width.
Note that there are more functions affected, but these codepaths don't
seem to matter when `log_via_feedback` is set.
A small cleanup of pp.ml may be in order.
|
|
so that they are not silently computed when not in debugging mode.
|
|
|
|
|
|
|
|
Will be displayed on the website, but not part of the package.
|
|
computed when not in debugging mode (especially those printing a
command).
|
|
|
|
|
|
in file indtypes.ml so that it is easier to follow what the code is
doing.
This is a purely alpha-renaming commit (if no mistakes).
Note: was submitted as pull request #116.
|
|
|
|
Most notably, we bring the single argument and three argument variants
closer, so that the various TYPED AS clauses may be optional. Compile-time
warnings have been added for redundant clauses.
|
|
|
|
|
|
|
|
|
|
|
|
The TYPED AS clause was useless when defining a fresh generic argument.
Instead of having to write it mandatorily, we simply make it optional.
|
|
This allows to use the ARGUMENT EXTEND macro while sharing the same
toplevel dynamic representation as another argument.
|
|
location set by lexer). This improves on abb4e7b0c by recovering the
lexer location.
AFAICS, it has an effect on lexer's errors Unterminated_comment and
Unterminated_string. The other errors were not wrongly located,
presumably because the Exc_located location added by camlp5 coincided
with the location given by the lexer.
|
|
This is a follow-up on Matthieu's 7e7b5684
The Definition command was classified incorrectly when a body was provided.
This fix is a bit ad-hoc. A better one would require more expressiveness in
side effect classification, but I'll do it in trunk only since it could impact
plugins.
Thanks a lot to Enrico for his help!
|
|
|
|
|