aboutsummaryrefslogtreecommitdiffhomepage
path: root/kernel
Commit message (Collapse)AuthorAge
...
* | | | COMMENTS: of "Constr.case_info" type were updated.Gravatar Matej Kosik2016-01-11
| | | |
* | | | COMMENTS: added to the "Names.inductive" and "Names.constructor" types.Gravatar Matej Kosik2016-01-11
| | | |
| | * | Be more verbose about failure to compile libraries to native code.Gravatar Guillaume Melquiond2016-01-08
| | | | | | | | | | | | | | | | | | | | | | | | On a machine with only 1GB of memory (e.g. in a VM), the compiler might be abruptly killed by a segfault. We were not getting any feedback in that case, making it harder to debug.
| | * | Fix a misleading comment for substn_varsGravatar Matthieu Sozeau2016-01-07
| | | |
* | | | Merge remote-tracking branch 'origin/v8.5' into trunkGravatar Guillaume Melquiond2016-01-06
|\ \ \ \ | | |/ / | |/| | | | | | | | | | Conflicts: lib/cSig.mli
| * | | Protect code against changes in Map interface.Gravatar Maxime Dénès2016-01-06
| | | | | | | | | | | | | | | | | | | | | | | | The Map interface of upcoming OCaml 4.03 includes a new union operator. In order to make our homemade implementation of Maps compatible with OCaml versions from 3.12 to 4.03, we define our own signatures for Maps.
* | | | Merge remote-tracking branch 'origin/v8.5' into trunkGravatar Guillaume Melquiond2016-01-05
|\| | |
| * | | Fix handling of side-effects in case of `Opaque side-effects as well.Gravatar Matthieu Sozeau2016-01-04
| | | |
* | | | Remove some unused functions.Gravatar Guillaume Melquiond2016-01-02
| | | | | | | | | | | | | | | | | | | | Note: they do not even seem to have a debugging purpose, so better remove them before they bitrot.
* | | | Avoid warnings about loop indices.Gravatar Guillaume Melquiond2016-01-02
| | | |
* | | | Fix typos.Gravatar Guillaume Melquiond2016-01-01
| | | |
* | | | Remove unused open.Gravatar Guillaume Melquiond2016-01-01
| | | |
| * | | Fix bug #4456, anomaly in handle-side effectsGravatar Matthieu Sozeau2015-12-31
| | | | | | | | | | | | | | | | | | | | The side-effects can contain universe declarations needed to typecheck later proofs, which weren't added to the env used to typecheck them.
* | | | Merge branch 'v8.5' into trunkGravatar Guillaume Melquiond2015-12-31
|\| | |
* | | | Removing dead code.Gravatar Pierre-Marie Pédrot2015-12-27
| | | |
| | * | COMMENTS: of "Constr.case_info" type were updated.Gravatar Matej Kosik2015-12-22
| | | |
| | * | COMMENTS: added to the "Names.inductive" and "Names.constructor" types.Gravatar Matej Kosik2015-12-22
| |/ / |/| |
| * | Inclusion of functors with restricted signature is now forbidden (fix #3746)Gravatar Pierre Letouzey2015-12-22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The previous behavior was to include the interface of such a functor, possibly leading to the creation of unexpected axioms, see bug report #3746. In the case of non-functor module with restricted signature, we could simply refer to the original objects (strengthening), but for a functor, the inner objects have no existence yet. As said in the new error message, a simple workaround is hence to first instantiate the functor, then include the local instance: Module LocalInstance := Funct(Args). Include LocalInstance. By the way, the mod_type_alg field is now filled more systematically, cf new comments in declarations.mli. This way, we could use it to know whether a module had been given a restricted signature (via ":"). Earlier, some mod_type_alg were None in situations not handled by the extraction (MEapply of module type). Some code refactoring on the fly.
* | | COMMENTS: added to the "Constr.case_info" type.Gravatar Matej Kosik2015-12-18
| | |
* | | COMMENTS: added to some variants of the "Constr.kind_of_term" type.Gravatar Matej Kosik2015-12-18
| | |
* | | COMMENTS: added to the "Names" module.Gravatar Matej Kosik2015-12-18
| | |
* | | ALPHA-CONVERSION: in the "Reduction" module: clos_fconv --> clos_gen_convGravatar Matej Kosik2015-12-17
| | |
* | | ALPHA-CONVERSION: in the "Reduction" module: fconv --> gen_convGravatar Matej Kosik2015-12-17
| | |
* | | CLEANUP: in the Reduction moduleGravatar Matej Kosik2015-12-17
| | |
* | | CLEANUP: in the Reduction moduleGravatar Matej Kosik2015-12-17
| | |
* | | Fixing e3cefca41b about supposingly simplifying primitive projectionsGravatar Hugo Herbelin2015-12-15
| | | | | | | | | | | | typing. Had built the instance for substitution in the wrong context.
* | | Merge branch 'v8.5'Gravatar Pierre-Marie Pédrot2015-12-11
|\| |
| * | bug fixes to vm computation + test cases.Gravatar Gregory Malecha2015-12-09
| | |
* | | Merge branch 'v8.5'Gravatar Pierre-Marie Pédrot2015-12-08
|\| |
| * | Fix some typos.Gravatar Guillaume Melquiond2015-12-07
| | |
* | | Unifying betazeta_applist and prod_applist into a clearer interface.Gravatar Hugo Herbelin2015-12-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - prod_applist - prod_applist_assum - lambda_applist - lambda_applist_assum expect an instance matching the quantified context. They are now in term.ml, with "list" being possibly "vect". Names are a bit arbitrary. Better propositions are welcome. They are put in term.ml in that reduction is after all not needed, because the intent is not to do β or ι on the fly but rather to substitute a λΓ.c or ∀Γ.c (seen as internalization of a Γ⊢c) into one step, independently of the idea of reducing. On the other side: - beta_applist - beta_appvect are seen as optimizations of application doing reduction on the fly only if possible. They are then kept as functions relevant for reduction.ml.
* | | Slight simplification of the code of primitive projection (in relationGravatar Hugo Herbelin2015-12-05
| | | | | | | | | | | | | | | to c71aa6b and 6ababf) so as to rely on generic functions rather than re-doing the de Bruijn indices cooking locally.
* | | Moving extended_rel_vect/extended_rel_list to the kernel.Gravatar Hugo Herbelin2015-12-05
| | | | | | | | | | | | | | | | | | | | | | | | It will later be used to fix a bug and improve some code. Interestingly, there were a redundant semantic equivalent to extended_rel_list in the kernel called local_rels, and another private copy of extended_rel_list in exactly the same file.
* | | About building of substitutions from instances.Gravatar Hugo Herbelin2015-12-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Redefining adjust_subst_to_rel_context from instantiate_context who was hidden in inductiveops.ml, renamed the latter into subst_of_rel_context_instance and moving them to Vars. The new name highlights that the input is an instance (as for applist) and the output a substitution (as for substl). This is a clearer unified interface, centralizing the difficult de-Bruijn job in one place. It saves a couple of List.rev.
* | | Experimenting documentation of the Vars.subst functions.Gravatar Hugo Herbelin2015-12-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Related questions: - What balance to find between precision and conciseness? - What convention to follow for typesetting the different components of the documentation is unclear? New tentative type substl to emphasize that substitutions (for substl) are represented the other way round compared to instances for application (applist), though there are represented the same way (i.e. most recent/dependent component on top) as instances of evars (mkEvar). Also removing unused subst*_named_decl functions (at least substnl_named_decl is somehow non-sense).
* | | Contracting one extra beta-redex on the fly when typing branches of "match".Gravatar Hugo Herbelin2015-12-05
| | |
* | | A few renaming and simplification in inductive.ml.Gravatar Hugo Herbelin2015-12-05
| | |
* | | Moving three related small half-general half-ad-hoc utility functionsGravatar Hugo Herbelin2015-12-05
| | | | | | | | | | | | | | | next to each other, waiting for possible integration into a more uniform API.
* | | New algorithm for universe cycle detections.Gravatar Jacques-Henri Jourdan2015-12-01
| | |
* | | Merge branch 'v8.5'Gravatar Pierre-Marie Pédrot2015-11-29
|\| |
| * | Univs: entirely disallow instantiation of polymorphic constants withGravatar Matthieu Sozeau2015-11-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | Prop levels. As they are typed assuming all variables are >= Set now, and this was breaking an invariant in typing. Only one instance in the standard library was used in Hurkens, which can be avoided easily. This also avoids displaying unnecessary >= Set constraints everywhere.
* | | Merge branch 'v8.5'Gravatar Pierre-Marie Pédrot2015-11-26
|\| |
| * | Fix output of universe arcs. (Fix bug #4422)Gravatar Guillaume Melquiond2015-11-23
| | |
| * | Fixing kernel bug in typing match with let-ins in the arity.Gravatar Hugo Herbelin2015-11-22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Was exploitable in 8.3, 8.4 and 8.5beta1. A priori not exploitable in 8.5beta2 and 8.5beta3 from a Coq file because typing done while compiling "match" would serve as a protection. However exploitable by calling the kernel directly, e.g. from a plugin (but a plugin can anyway do what it wants by bypassing kernel type abstraction). Fixing similar error in pretyping.
* | | Merge branch 'v8.5'Gravatar Pierre-Marie Pédrot2015-11-20
|\| |
| * | Fixing fix c71aa6b to primitive projections.Gravatar Hugo Herbelin2015-11-18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Introduced an error: fold was counting in the wrong direction and I did not test it. Sorry. - Substitution from params-with-let to params-without-let was still not correct. Hopefully everything ok now. Eventually, we should use canonical combinators for that: extended_rel_context to built the instance and and a combinator apparently yet to define for building a substitution contracting the let-ins.
| * | Slightly documenting code for building primitive projections.Gravatar Hugo Herbelin2015-11-18
| | |
| * | Fixing logical bugs in the presence of let-ins in computiong primitiveGravatar Hugo Herbelin2015-11-18
| | | | | | | | | | | | | | | | | | | | | | | | | | | projections. - lift accounting for the record missing in computing the subst from fields to projections of the record - substitution for parameters should not lift the local definitions - typo in building the latter (subst -> letsubst)
* | | Hashconsing modules.Gravatar Pierre-Marie Pédrot2015-11-15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | Merge origin/v8.5 into trunkGravatar Hugo Herbelin2015-11-10
|\| | | | | | | | | | | Did some manual merge in tactics/tactics.ml.