aboutsummaryrefslogtreecommitdiffhomepage
Commit message (Collapse)AuthorAge
* Extraction : add a location in the error message about polypropGravatar Pierre Letouzey2016-05-30
|
* Update required OCaml version in configure.Gravatar Maxime Dénès2016-05-26
| | | | Follow-up on Hugo's 1412f9f9.
* typosGravatar Enrico Tassi2016-05-23
|
* Extraction: code cleanup in CommonGravatar Pierre Letouzey2016-05-20
|
* Merge branch 'v8.5'Gravatar Pierre-Marie Pédrot2016-05-20
|\
| * native_compute: don't call Unicode.ascii_of_ident twice (not idempotent anymore)Gravatar Pierre Letouzey2016-05-19
| |
| * Extraction: don't call Unicode.ascii_of_ident twice (not idempotent anymore)Gravatar Pierre Letouzey2016-05-19
| |
* | native_compute: don't call Unicode.ascii_of_ident twice (not idempotent anymore)Gravatar Pierre Letouzey2016-05-19
| |
* | Extraction: don't call Unicode.ascii_of_ident twice (not idempotent anymore)Gravatar Pierre Letouzey2016-05-19
| |
| * adding "user-contrib" directory to ".gitignore"Gravatar Matej Kosik2016-05-19
| |
| * 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
* | 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.
* | Micromega: qualify Coq.micromega.Tauto (avoid coqdep warnings about new ↵Gravatar Pierre Letouzey2016-05-19
| | | | | | | | Init/Tauto.v)
* | Putting all the tactics exported by the Tactics module in the new monad API.Gravatar Pierre-Marie Pédrot2016-05-17
|\ \
| * | Removing some compatibility layers in Tactics.Gravatar Pierre-Marie Pédrot2016-05-17
| | |
| * | Removing the old refine tactic from the Tactics module.Gravatar Pierre-Marie Pédrot2016-05-17
| | | | | | | | | | | | | | | | | | It is indeed confusing, as it has little to do with the proper refine defined in the New submodule. Legacy code relying on it should call the Logic or Tacmach modules instead.
| * | Put the "move" tactic in the monad.Gravatar Pierre-Marie Pédrot2016-05-17
| | |
| * | Put the "change" tactic in the monad.Gravatar Pierre-Marie Pédrot2016-05-16
| | |
| * | Put the "specialize_eq" tactic in the monad.Gravatar Pierre-Marie Pédrot2016-05-16
| | |
| * | Put the "generalize dependent" tactic in the monad.Gravatar Pierre-Marie Pédrot2016-05-16
| | |
| * | Put the "generalize" tactic in the monad.Gravatar Pierre-Marie Pédrot2016-05-16
| | |
| * | Put the "cofix" tactic in the monad.Gravatar Pierre-Marie Pédrot2016-05-16
| | |
| * | Put the "*_cast_no_check" tactics in the monad.Gravatar Pierre-Marie Pédrot2016-05-16
| | |
| * | Put the "exact" family of tactic in the monad.Gravatar Pierre-Marie Pédrot2016-05-16
| | |
| * | Put the "fix" tactic in the monad.Gravatar Pierre-Marie Pédrot2016-05-16
| | |
| * | Put the "exact_constr" tactic in the monad.Gravatar Pierre-Marie Pédrot2016-05-16
| | |
| * | Put the "clear" tactic into the monad.Gravatar Pierre-Marie Pédrot2016-05-16
|/ /
| * Fix bug #4737: cycle tactic doesn't like zero goals.Gravatar Pierre-Marie Pédrot2016-05-16
| |
* | Generate more user-readable tactic notation kernel names.Gravatar Pierre-Marie Pédrot2016-05-16
| | | | | | | | | | This has no influence on user-side, and only makes the life of the debugging developer easier.
* | Merge pull request #170 from relrod/patch-1Gravatar Pierre-Marie Pédrot2016-05-16
|\ \ | | | | | | Fix a really small doc typo
| * | Fix a really small doc typoGravatar Ricky Elrod2016-05-15
|/ /
| * Removing unexcepted activation of option "Regular Subst Tactic", sinceGravatar Hugo Herbelin2016-05-14
| | | | | | | | there is actually no change in default subst between 8.4 and 8.5.
| * More hints on how to fix compatibility issues.Gravatar Hugo Herbelin2016-05-14
| |
* | Hack in TACTIC EXTEND to maintain the 8.5 behaviour on badly designed arguments.Gravatar Pierre-Marie Pédrot2016-05-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since TACTIC EXTEND relies on the usual tactic notation mechanism, the interpretation of an ML tactic first goes through a TacAlias node. This means that variables bound by the notation overwrite those of the current environment. It turns out to be problematic for badly designed arguments that close over variables of the environment, e.g. glob_constr, because the variables used at interpretation time are now different from the ones of parsing time. Ideally, those arguments should return a closure made of the inner argument together with the Ltac environment they were defined in. Unluckily, this would need some important changes in their design. Most notably, most of ssreflect ARGUMENT EXTEND actually create such closed arguments. In order to emulate the old behaviour, we rather use a hack by prefixing ML-bound variables by a character that is not accessible from user-side.
* | Dyn: simplify API introducing an Easy submoduleGravatar Enrico Tassi2016-05-13
| | | | | | | | Now the casual Dyn user does not need to be a GADT guru
* | More informative error message when interpreting ltac variables in terms.Gravatar Pierre-Marie Pédrot2016-05-13
| |
| * Small optimization in evar resolution.Gravatar Pierre-Marie Pédrot2016-05-12
| | | | | | | | | | Instead of rebuilding a whole set of evars just to make a typeclass filter, we use the source evarmap.
| * Fix bug #4722: Coq dies when encountering broken symbolic links.Gravatar Pierre-Marie Pédrot2016-05-12
| |
* | Thorough rewriting of the Pcoq API towards safety and static invariants.Gravatar Pierre-Marie Pédrot2016-05-11
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Amongst other things: 1. No more unsafe grammar extensions, except when going through the CAMLPX-based Pcoq.Gram module. This is mostly safe because CAMLPX adds casts to ensure that parsing rules are well-typed. In particular, constr notation is now based on GADTs ensuring well-typedness. 2. Less reliance on unsafe coq inside Pcoq, and exposing a self-contained API. The Entry module was also removed as it now results useless. 3. Purely functional API for synchronized grammar extension. This gets rid of quite buggy code maintaining a table of empty entries to work around CAMLPX bugs. The state modification is now explicit and grammar extensions synchronized with the summary must provide the rules they want to perform instead of doing so imperatively.
| * | The grammar_extend function now registers unsynchronized extensions.Gravatar Pierre-Marie Pédrot2016-05-11
| | | | | | | | | | | | | | | | | | This made little sense, as all the uses of this function were actually called from toplevel ML modules. This was at best useless, and at worst a source of bugs when loading plugins and messing with backtracking.
| * | Making the grammar command extend API purely functional.Gravatar Pierre-Marie Pédrot2016-05-11
| | | | | | | | | | | | | | | Instead of leaving the responsibility of extending the grammar to the caller, we ask for a list of extensions in the return value of the function.
| * | Moving the constr empty entry registering to the state-based API.Gravatar Pierre-Marie Pédrot2016-05-11
| | |
| * | Turning the grammar extend command API into a state-passing one.Gravatar Pierre-Marie Pédrot2016-05-11
| | |
| * | Moving the grammar summary to Pcoq.Gravatar Pierre-Marie Pédrot2016-05-11
| | |
| * | Delimiting the use of unsafe code in Pcoq.Gravatar Pierre-Marie Pédrot2016-05-10
| | |
| * | Overlooked use of Gram instead of G module in Pcoq.Gravatar Pierre-Marie Pédrot2016-05-10
| | | | | | | | | | | | This was probably wreaking havoc in tricky undo-redo scenarii.
| * | Further tidying of the constr extension code.Gravatar Pierre-Marie Pédrot2016-05-10
| | |
| * | Type-safe constr notations.Gravatar Pierre-Marie Pédrot2016-05-10
| | | | | | | | | | | | | | | | | | | | | This removes the last call to unsafe_grammar_extend, so that all handwritten grammar extensions are now type-safe. Grammars defined by CAMLPX EXTEND are still using the unsafe interface, but as they insert explicit casts they are deemed safe.
| * | AlistNsep token now accepts an arbitrary separator.Gravatar Pierre-Marie Pédrot2016-05-10
| | |
| * | Simpler data structure for Arules token.Gravatar Pierre-Marie Pédrot2016-05-10
| | |