aboutsummaryrefslogtreecommitdiffhomepage
Commit message (Collapse)AuthorAge
...
| * | | 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
| | | | |
| * | | | Purer implementation of empty level registering in Pcoq.Gravatar Pierre-Marie Pédrot2016-05-10
| | | | |
| * | | | Removing the Entry module now that rules need not be marshalled.Gravatar Pierre-Marie Pédrot2016-05-10
| | | | |
| * | | | Hardening the obsolete unsafe_grammar_statement API.Gravatar Pierre-Marie Pédrot2016-05-10
| | | | |
| * | | | Removing dead code in Compat.Gravatar Pierre-Marie Pédrot2016-05-10
|/ / / /
* | | | Proof_global, STM: cleanup + use default_proof_mode instead of "Classic"Gravatar Enrico Tassi2016-05-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The "Classic" string is still hard coded here in there in the system, but not in STM. BTW, the use of an hard coded "Classic" value suggests nobody really uses "Set Default Proof Mode" in .v files.
* | | | STM: code cleanupGravatar Enrico Tassi2016-05-10
| | | |
* | | | Merge branch 'v8.5'Gravatar Pierre-Marie Pédrot2016-05-09
|\| | |
| * | | Fix bug #3887: Better error message for "More than one program with unsolved ↵Gravatar Pierre-Marie Pédrot2016-05-09
| | | | | | | | | | | | | | | | obligations".
| * | | Rename Lexer -> CLexer.Gravatar Pierre-Marie Pédrot2016-05-09
| | | |
| * | | Fix typo in configure's option description.Gravatar Guillaume Melquiond2016-05-09
| | | |
| * | | Use "md5 -q" on FreeBSD architectures (bug #4719).Gravatar Guillaume Melquiond2016-05-09
| | | | | | | | | | | | | | | | | | | | | | | | This patch also disables the -makecmd option and the corresponding test, since the value is not stored for future use. This prevents gratuitously failing to configure on FreeBSD.
| * | | Use the actual location of an error in the error pane (bug #4169).Gravatar Guillaume Melquiond2016-05-09
| | | | | | | | | | | | | | | | | | | | | | | | | | | | A "sentence" includes all the blank lines and all the comments that precede a command. So its starting location might be far from any error it contains. This patch changes error reporting so that it relies on the location of errors rather than the location of erroneous sentences.
* | | | Exposing structure of the entries to tactic notation printers.Gravatar Pierre-Marie Pédrot2016-05-08
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | This allows a proper printing of tactic notations with special tokens such as separators.
| * | | | Actually using the symbol information to print Tactic Notations properly.Gravatar Pierre-Marie Pédrot2016-05-08
| | | | |
| * | | | Removing dead code in Pptactic.Gravatar Pierre-Marie Pédrot2016-05-08
| | | | |
| * | | | Pass user symbol to tactic notation printers.Gravatar Pierre-Marie Pédrot2016-05-08
|/ / / /
* | | | Removing dead code and unused opens.Gravatar Pierre-Marie Pédrot2016-05-08
| | | |
* | | | Change the toplevel representation of Ltac values to an untyped one.Gravatar Pierre-Marie Pédrot2016-05-08
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This brings the evaluation model of Ltac closer to those of usual languages, and further allows the integration of static typing in the long run. More precisely, toplevel constructed values such as lists and the like do not carry anymore the type of the underlying data they contain. This is mostly an API change, as it did not break any contrib outside of mathcomp.
| | * | | Fix bug #4713: Anomaly: Assertion Failed for incorrect usage of Module.Gravatar Pierre-Marie Pédrot2016-05-08
| | | | |
| * | | | Normalizing the names of dynamic types to follow a typ_* scheme.Gravatar Pierre-Marie Pédrot2016-05-04
| | | | |
| | * | | typoGravatar Enrico Tassi2016-05-04
| | | | |
| | * | | NPeano : improve compatibility for this deprecated file via compat notationsGravatar Pierre Letouzey2016-05-04
| | | | |
| * | | | Removing useless generic arguments.Gravatar Pierre-Marie Pédrot2016-05-04
| | | | |
| * | | | Interpretation function can return any untyped value.Gravatar Pierre-Marie Pédrot2016-05-04
| | | | |
| * | | | Removing external uses of Val.inject and making Geninterp.interp return Val.tGravatar Pierre-Marie Pédrot2016-05-04
| | | | |
| * | | | Removing the Value.of_* API for parameterized types.Gravatar Pierre-Marie Pédrot2016-05-04
| | | | | | | | | | | | | | | | | | | | | | | | | Although still working, it is now bad practice to use it, and it is not widely spread anyway.
| * | | | Do not generate generic arguments for data which only requires toplevel values.Gravatar Pierre-Marie Pédrot2016-05-04
| | | | |
| * | | | More toplevel value representation sharing.Gravatar Pierre-Marie Pédrot2016-05-04
| | | | |
| * | | | Moving the Val module to Geninterp.Gravatar Pierre-Marie Pédrot2016-05-04
| | | | |
| * | | | Simplifying the code of Tacinterp.Gravatar Pierre-Marie Pédrot2016-05-04
| | | | |
| * | | | Getting rid of the Geninterp.generic_interp function.Gravatar Pierre-Marie Pédrot2016-05-04
| | | | |
| * | | | Switching to an untyped toplevel representation for Ltac values.Gravatar Pierre-Marie Pédrot2016-05-04
| | | | |