aboutsummaryrefslogtreecommitdiffhomepage
Commit message (Collapse)AuthorAge
* Removing the untyped representation of genargs.Gravatar Pierre-Marie Pédrot2016-03-19
|
* Simplifying the EXTEND macros and making them more self-contained.Gravatar Pierre-Marie Pédrot2016-03-19
|\
| * EXTEND macros use their own internal representations.Gravatar Pierre-Marie Pédrot2016-03-19
| |
| * Do not keep the argument type in ExtNonTerminal.Gravatar Pierre-Marie Pédrot2016-03-19
| |
| * Further reducing the dependencies of the EXTEND macros.Gravatar Pierre-Marie Pédrot2016-03-19
|/
* Removing the VernacSolve entry of the vernacular AST.Gravatar Pierre-Marie Pédrot2016-03-19
|\ | | | | | | | | | | This is an important step into making Ltac a plugin. It also allows to see what the important entry points in the Coq codebase for a tactic language are.
| * Moving VernacSolve to an EXTEND-based definition.Gravatar Pierre-Marie Pédrot2016-03-19
| |
| * Replacing the interpretation of Proof using ... with a proper code.Gravatar Pierre-Marie Pédrot2016-03-19
| |
| * Moving the parsing of the Ltac proof mode to G_ltac.Gravatar Pierre-Marie Pédrot2016-03-19
| |
| * Removing the dependency in VernacSolve in the STM.Gravatar Pierre-Marie Pédrot2016-03-19
| | | | | | | | | | | | Instead of mangling the AST in order to interpret par: we remember the goal position to focus on it first and evaluate then the underlying vernacular expression.
| * Moving the proof mode parsing management to Pcoq.Gravatar Pierre-Marie Pédrot2016-03-19
| |
| * Relying on Vernac classifier to flag tactics in the STM.Gravatar Pierre-Marie Pédrot2016-03-19
|/
* Cleaning up and extending the expressivity of Pcoq.Gravatar Pierre-Marie Pédrot2016-03-19
|\
| * Allowing generalized rules in typed symbols.Gravatar Pierre-Marie Pédrot2016-03-19
| |
| * Do not export entry_key from Pcoq anymore.Gravatar Pierre-Marie Pédrot2016-03-19
| |
| * Simplifying the code of Entry.Gravatar Pierre-Marie Pédrot2016-03-19
|/
* Removing dead code in Pcoq.Gravatar Pierre-Marie Pédrot2016-03-18
|
* Merge branch 'v8.5'Gravatar Pierre-Marie Pédrot2016-03-18
|\
* \ Rationalizing the use of the various EXTEND macros.Gravatar Pierre-Marie Pédrot2016-03-18
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Those macros used to handle in a special way the grammar entries and generic arguments known statically from Coq, i.e. defined before Pcoq. This was hardly predictible and very implementation-dependent. We made the EXTEND macros much more light-weight by treating in a uniform way all entries and arguments. Now, they are all produced by outputing the name as-is for entries and as "wit_$name" for genargs, thus letting the scope of the ML code decide which entrie is going to be taken. This is documented in the dev/ changelog. This also allows to get rid of a lot of dependencies in the grammar preprocessor, reducing it to a small functional shell. It is still depending on Compat, but it is most probably possible to reduce the code size even more.
| * | Documenting the change of EXTEND macros.Gravatar Pierre-Marie Pédrot2016-03-18
| | |
| * | Making the EXTEND macros almost self-contained.Gravatar Pierre-Marie Pédrot2016-03-18
| | |
| * | ARGUMENT EXTEND made of only one entry share the same grammar.Gravatar Pierre-Marie Pédrot2016-03-18
| | | | | | | | | | | | This fixes parsing conflicts with the [fix ... with] tactic.
| * | Removing the special status of generic arguments defined by Coq itself.Gravatar Pierre-Marie Pédrot2016-03-17
| | | | | | | | | | | | | | | | | | | | | | | | This makes the TACTIC EXTEND macro insensitive to Coq-defined arguments. They now have to be reachable in the ML code. Note that this has some consequences, as the previous macro was potentially mixing grammar entries and arguments as long as their name was the same. Now, each genarg comes with its grammar instead, so there is no way to abuse the macro.
| * | Removing the special status of generic entries defined by Coq itself.Gravatar Pierre-Marie Pédrot2016-03-17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The ARGUMENT EXTEND macro was discriminating between parsing entries known statically, i.e. defined in Pcoq and unknown entires. Although simplifying a bit the life of the plugin writer, it made actual interpretation difficult to predict and complicated the code of the ARGUMENT EXTEND macro. After this patch, all parsing entries and generic arguments used in an ARGUMENT EXTEND macro must be reachable by the ML code. This requires adding a few more "open Pcoq.X" and "open Constrarg" here and there.
| * | Code factorization in Pcoq.Gravatar Pierre-Marie Pédrot2016-03-17
| | |
| * | Adding a universe argument to Pcoq.create_generic_entry.Gravatar Pierre-Marie Pédrot2016-03-17
|/ /
* | Removing the default value mechanism for generic arguments.Gravatar Pierre-Marie Pédrot2016-03-17
|\ \ | | | | | | | | | | | | | | | There was a complicated dedicated code in grammar/ to decide whether a generic argument parsed the empty string. We now only rely on a dynamic decision. This should not affect efficiency, as it is only made once by declaration of ML tactics.
| * | Removing the registering of default values for generic arguments.Gravatar Pierre-Marie Pédrot2016-03-17
| | |
| * | Relying on parsing rules rather than genarg to check if an argument is empty.Gravatar Pierre-Marie Pédrot2016-03-17
|/ /
* | Removing dead code in Q_util.Gravatar Pierre-Marie Pédrot2016-03-17
| |
* | Reducing the number of modules linked in grammar.cma.Gravatar Pierre-Marie Pédrot2016-03-17
| |
| * Fix #4591: Uncaught exception in directory browsing.Gravatar Pierre-Marie Pédrot2016-03-15
| | | | | | | | We protect Sys.readdir calls againts any nasty exception.
| * CoqIDE is more resilient to initialization errors.Gravatar Pierre-Marie Pédrot2016-03-15
| | | | | | | | | | | | | | | | | | | | We force the STM to finish after the initialization request so as to raise exceptions that may have been generated by the initialization process. Likewise, we simply die when the initialization request fails in CoqIDE instead of just printing an error message. This is the fix for the underlying issue of bug #4591, but it does not solve the bug yet.
| * Tentative fix for bug #4614: "Fully check the document" is uninterruptable.Gravatar Pierre-Marie Pédrot2016-03-15
| | | | | | | | | | | | | | | | The SIGINT sent to the master coqtop process was lost in a watchdog thread, so that the STM resulted in an inconsistent state. This patch catches gracefully the exception and kills the task as if it were normally cancelled. Note that it probably won't work on non-POSIX architectures, but it does not really matter because interrupt was already badly handled anyway.
| * Try eta-expansion of records only on non-recursive onesGravatar Matthieu Sozeau2016-03-15
| |
| * Fix bug when a sort is ascribed to a RecordGravatar Matthieu Sozeau2016-03-15
| | | | | | | | Forcefully equating it to the inferred level is not always desirable or possible.
| * Trying to circumvent hdiutil error 5341 by padding.Gravatar Maxime Dénès2016-03-14
| | | | | | | | | | | | | | When generating the OS X Coq + CoqIDE bundle, hdiutil often produces error 5341. This seems to be a known bug on Apple's side, occurring for some sizes of dmg files. We try to change the current (problematic) size by adding a file full of random bits.
* | Fix the comment of Refine.refineGravatar Matthieu Sozeau2016-03-14
| |
* | Typeclasses: respect Declare Instance priorityGravatar Matthieu Sozeau2016-03-14
| |
* | Try eta-expansion of records only on non-recursive onesGravatar Matthieu Sozeau2016-03-14
| |
* | Adopting the same rules for interpreting @, abbreviations andGravatar Hugo Herbelin2016-03-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | notations in patterns than in terms, wrt implicit arguments and scopes. See file Notations2.v for the conventions in use in terms. Somehow this could be put in 8.5 since it puts in agreement the interpretation of abbreviations and notations in "symmetric patterns" to what is done in terms (even though the interpretation rules for terms are a bit ad hoc). There is one exception: in terms, "(foo args) args'" deactivates the implicit arguments and scopes in args'. This is a bit complicated to implement in patterns so the syntax is not supported (and anyway, this convention is a bit questionable).
* | Adding a few functions on type union.Gravatar Hugo Herbelin2016-03-13
| |
* | Adding a file summarizing the inconsistencies in interpreting implicitGravatar Hugo Herbelin2016-03-13
| | | | | | | | | | | | arguments and scopes with abbreviations and notations. Comments are welcome on the proposed solutions for uniformization.
* | Supporting "(@foo) args" in patterns, where "@foo" has no arguments.Gravatar Hugo Herbelin2016-03-13
| |
* | A more explicit name to the asymmetric boolean flag.Gravatar Hugo Herbelin2016-03-12
| |
* | Removing an empty file detected by Luc Grateau.Gravatar Hugo Herbelin2016-03-12
| |
| * According to Bruno, my fix for #4588 seems to be enough.Gravatar Maxime Dénès2016-03-11
| | | | | | | | So adding a test-suite file and closing the bug.
| * Primitive projections: protect kernel from erroneous definitions.Gravatar Matthieu Sozeau2016-03-10
| | | | | | | | | | | | | | | | | | E.g., Inductive foo := mkFoo { bla : foo } allowed to define recursive records with eta for which conversion is incomplete. - Eta-conversion only applies to BiFinite inductives - Finiteness information is now checked by the kernel (the constructor types must be strictly non recursive for BiFinite declarations).
* | Removing OCaml deprecated function names from the Lazy module.Gravatar Pierre-Marie Pédrot2016-03-10
| |
| * Hashconsing modules.Gravatar Pierre-Marie Pédrot2016-03-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Modules inserted into the environment were not hashconsed, leading to an important redundancy, especially in module signatures that are always fully expanded. This patch divides by two the size and memory consumption of module-heavy files by hashconsing modules before putting them in the environment. Note that this is not a real hashconsing, in the sense that we only hashcons the inner terms contained in the modules, that are only mapped over. Compilation time should globally decrease, even though some files definining a lot of modules may see their compilation time increase. Some remaining overhead may persist, as for instance module inclusion is not hashconsed.