aboutsummaryrefslogtreecommitdiffhomepage
path: root/kernel
Commit message (Collapse)AuthorAge
...
* Share prop/set values in sorts.ml.Gravatar Matthieu Sozeau2015-06-26
|
* BUGFIX: Three fixes for the price of 1 in sorts.ml:Gravatar Matthieu Sozeau2015-06-26
| | | | | - Proper [family] implementation - Use the tailor made hash function for Sorts.t in two places.
* Less closures makes the GC happy.Gravatar Pierre-Marie Pédrot2015-06-24
| | | | | We lambda-lift by hand the graph traversal functions in Univ to allocate less closures.
* Less closures makes the GC happy.Gravatar Pierre-Marie Pédrot2015-06-23
|
* Add a Set Dump Bytecode command for debugging purposes.Gravatar Maxime Dénès2015-06-23
| | | | | Prints the VM bytecode produced by compilation of a constant or a call to vm_compute.
* Native compiler: do not catch exceptions not related to dynlink.Gravatar Maxime Dénès2015-06-15
| | | | | Was making the study of bugs like #4139 painful. Now printing a better error message when a compiled file is missing.
* Fix native compilation of primitive projections. Closes #4210.Gravatar Maxime Dénès2015-06-08
|
* Making Coq compile with ocp-memprof.Gravatar Pierre-Marie Pédrot2015-06-01
| | | | Patch provided by Çagdas Bozman.
* Fix bug #4159Gravatar Matthieu Sozeau2015-05-27
| | | | | | Some asynchronous constraints between initial universes and the ones at the end of a proof were forgotten. Also add a message to print universes indicating if all the constraints are processed already or not.
* Fixing bug #4201: The native compiler is not race-free.Gravatar Pierre-Marie Pédrot2015-05-17
| | | | | | Instead of checking if the native compiler directory exists before creating it, we simply create it by default and catch the potential exception due to its presence.
* Disable precompilation for native_compute by default.Gravatar Guillaume Melquiond2015-05-14
| | | | | | | | | | | | | | Note that this does not prevent using native_compute, but it will force on-the-fly recompilation of dependencies whenever it is used. Precompilation is enabled for the standard library, assuming native compilation was enabled at configuration time. If native compilation was disabled at configuration time, native_compute falls back to vm_compute. Failure to precompile is a hard error, since it is now explicitly required by the user.
* Fix my previous commit on ~polypropGravatar Pierre Letouzey2015-05-12
| | | | | | Oups, sorry, I should have compiled the stdlib in full. Not only the ~polyprop wasn't propagated properly, but Matthieu made it be false by default somewhere instead of true. Argl...
* Extraction: fix the detection of the "polyprop" situationGravatar Pierre Letouzey2015-05-12
| | | | | | | | The ~polyprop argument wasn't propagated properly anymore, leading the extraction to try to operate on situations it cannot handle (yet). Cf Table.error_singleton_become_prop for more details. Regression test added.
* Fix some ill-typed debugging code in the VM.Gravatar Guillaume Melquiond2015-04-27
|
* Tactical `progress` compares term up to potentially equalisable universes.Gravatar Arnaud Spiwack2015-04-22
| | | | | Followup of: f7b29094fe7cc13ea475447bd30d9a8b942f0fef . In particular, re-closes #3593. As a side effect, fixes an undiscovered bug of the `eq_constr` tactic which didn't consider terms up to evar instantiation.
* Fixing bug #4190.Gravatar Pierre-Marie Pédrot2015-04-16
| | | | | | | | | | The solution is a bit ugly. In order for two tactic notations identifiers not to be confused by the inclusion from two distinct modules, we embed the name of the source module in the identifiers. This may still fail if the same module is included twice with two distinct parameters, but this should not be possible thanks to the fact any definition in there will forbid the inclusion, for it would be repeated. People including twice the same empty module otherwise probably deserve whatever will arise from it.
* fix code and bound for SWITCH instruction.Gravatar Benjamin Gregoire2015-03-30
|
* use a more compact representation of non-constant constructorsGravatar Benjamin Gregoire2015-03-27
| | | | | | for which there corresponding tag are greater than max_variant_tag. The code is a merge with the patch proposed by Bruno on github barras/coq commit/504c753d7bb104ff4453fa0ede21c870ae2bb00c
* allows the vm to deal with inductive type with 8388607 constant constructors ↵Gravatar Benjamin Gregoire2015-03-26
| | | | and 8388851 non-constant constructor.
* Fix bug 4157,Gravatar Benjamin Gregoire2015-03-26
| | | | | | | change the representation of inductive constructor when there is too many non constant constructors in the inductive type Conflicts: kernel/cbytegen.ml
* Fix vm compiler to refuse to compile code making use of inductives withGravatar Matthieu Sozeau2015-03-25
| | | | more than 245 constructors (unsupported by OCaml's runtime).
* More clever representation of substituted Cemitcode.Gravatar Pierre-Marie Pédrot2015-03-25
| | | | | Module substitution is made nodewise, allowing to drop it for opaque terms in the VM. This saves a few useless substitutions.
* Fully fixing bug #3491 (anomaly when building _rect scheme in theGravatar Hugo Herbelin2015-03-25
| | | | | | | | | | | | presence of let-ins and recursively non-uniform parameters). The bug was in the List.chop of Inductiveops.get_arity which was wrong in the presence of let-ins and recursively non-uniform parameters. The bug #3491 showed up because, in addition to have let-ins, it was wrongly detected as having recursively non-uniform parameters. Also added some comments in declarations.mli.
* Fixing computation of non-recursively uniform arguments in theGravatar Hugo Herbelin2015-03-24
| | | | presence of let-ins. This fixes #3491.
* Fixing wrong rel_context in checking positivity condition.Gravatar Hugo Herbelin2015-03-24
| | | | | | | | | | Parameters were missing in the context, apparently without negative effects because the context was used only for whd normalization of types, while reduction (in closure.ml) was resistant to unbound rels. See however next commit for an indirect effect on the wrong computation of non recursively uniform parameters producing an anomaly when computing _rect schemas.
* More sharing in module substitution.Gravatar Pierre-Marie Pédrot2015-03-18
|
* Fix compilation with forthcoming Ocaml version 4.03.Gravatar Arnaud Spiwack2015-03-13
| | | | | | | Backported from a patch for v8.4 by Pierre Chambart. Part of the commit has been rendered obsolete by code reorganisation, leaving: * OCaml runtime header files used to declare the int32, uint32, int64 and uint64 type. That got removed, and uses of those types should be replaced by the standard ones: uint32_t, int32_t, int64_t, uint64_t. Those are defined in stdint.h.
* Fix bug #4103: forgot to allow unfolding projections of cofixpoints likeGravatar Matthieu Sozeau2015-03-03
| | | | cases, in some cases.
* Add support so that the type of a match in an inductive type with let-inGravatar Hugo Herbelin2015-02-27
| | | | | | | | | is reduced as if without let-in, when applied to arguments. This allows e.g. to have a head-betazeta-reduced goal in the following example. Inductive Foo : let X := Set in X := I : Foo. Definition foo (x : Foo) : x = x. destruct x. (* or case x, etc. *)
* New function [Constr.equal_with] to compare terms up to variants of ↵Gravatar Arnaud Spiwack2015-02-24
| | | | | | | | [kind_of_term]. To be able to write equality up to evar instantiation instantiation. Generalises the main function of [eq] constr over the variant of [kind_of_term] it uses. It prevents some optimisation of [Array.equal] where two physically equal arrays are considered (less or) equal. But it does not seem to have appreciable effects on efficiency.
* Refactoring in [Constr].Gravatar Arnaud Spiwack2015-02-24
| | | | [compare_head_gen] defined in terms of [compare_head_gen_leq]. Remove an unused argument from [compare_head_gen_leq].
* Fix some typos in comments.Gravatar Guillaume Melquiond2015-02-23
|
* Import (module): Do not force constraints if not ready (Close #4066)Gravatar Enrico Tassi2015-02-21
|
* Univs: When computing the level of an inductive including indices, letsGravatar Matthieu Sozeau2015-02-14
| | | | do not contribute. Fixes bug #3808.
* Univs: fix bug #3978: carry around the universe context used toGravatar Matthieu Sozeau2015-02-12
| | | | | typecheck with definitions and thread it accordingly when typechecking module expressions.
* Fixing bug #4019, and checker blow-up at once.Gravatar Pierre-Marie Pédrot2015-02-11
|
* Clarifying the implementation of universe hashconsing.Gravatar Pierre-Marie Pédrot2015-02-11
|
* Fix typeops ignoring results of check functions with let _, and oneGravatar Matthieu Sozeau2015-02-10
| | | | | | safety hole in judge_of_constant_knowing parameters which was not checking the result of the check correctly (the rest of the calls in that file and all of the checker have been checked).
* Nativelib: catch Unix_error (like no ocamlopt found)Gravatar Enrico Tassi2015-02-04
|
* Removing dead code.Gravatar Pierre-Marie Pédrot2015-02-02
|
* Fixing bug #3931.Gravatar Pierre-Marie Pédrot2015-01-28
|
* Fix a critical bug in machine arithmetic for native compiler.Gravatar Maxime Dénès2015-01-20
|
* Fix #3379, now that Require inside modules is allowed again.Gravatar Maxime Dénès2015-01-17
|
* Univs: proper printing of global and local universe names (onlyGravatar Matthieu Sozeau2015-01-17
| | | | printing functions touched in the kernel).
* Partially revert "Forbid Require inside interactive modules and module types."Gravatar Maxime Dénès2015-01-17
| | | | | | | | This reverts commit 6d5b56d971506dfadcfc824bfbb09dc21718e42b but does not put back in place the Requires inside modules that were found in the std lib. Conflicts: kernel/safe_typing.ml
* Univs: Fix alias computation for VMs, computation of normal form ofGravatar Matthieu Sozeau2015-01-17
| | | | | | match predicates for vm_compute and compile polymorphic definitions to constant code. Add univscompute test-suite file testing VM computations in presence of polymorphic universes.
* Make native compiler handle universe polymorphic definitions.Gravatar Maxime Dénès2015-01-17
| | | | | One remaining issue: aliased constants raise an anomaly when some unsubstituted universe variables remain. VM may suffer from the same problem.
* Correct restriction of vm_compute when handling universe polymorphicGravatar Matthieu Sozeau2015-01-15
| | | | | | | | | | definitions. Instead of failing with an anomaly when trying to do conversion or computation with the vm's, consider polymorphic constants as being opaque and keep instances around. This way the code is still correct but (obviously) incomplete for polymorphic definitions and we avoid introducing an anomaly. The patch does nothing clever, it only keeps around instances with constants/inductives and compile constant bodies only for non-polymorphic definitions.
* Make -print-mod-uid accept a list of files.Gravatar Maxime Dénès2015-01-15
| | | | Solves an efficiency problem in Makefiles generated by coq_makefile.
* Native compiler: if debug flag not present, remove .native files.Gravatar Maxime Dénès2015-01-13
|