aboutsummaryrefslogtreecommitdiff
path: root/kernel
AgeCommit message (Collapse)Author
2015-07-09Kernel/Checker: Cleanup fixes of substitutions due to let-ins.Matthieu Sozeau
Avoid undeeded large substitutions, and add test-suite file for fixed bug 4283 in closed/
2015-07-09Kernel: primitive projections handling of let-insMatthieu Sozeau
Fixes bug #4176 (actually two bugs in one) Correct computation of the type of primitive projections in presence of let-ins.
2015-07-09Improve semantics of -native-compiler flag.Maxime Dénès
Since Guillaume's, launching coqtop without -native-compiler and call native_compute would mean recompiling silently all dependencies, even if they had been precompiled (e.g. the stdlib). The new semantics is that -native-compiler disables separate compilation of the current library, but still tries to load precompiled dependencies. If loading fails when the flag is on, coqtop stays silent.
2015-07-09Template polymorphism: A bug-fix for Bug #4258mlasson
Reviewed by M. Sozeau This commit fixes template polymorphism and makes it more precise, applying to non-linear uses of the same universe in parameters of template-polymorphic inductives. See bug report and https://github.com/coq/coq/pull/69 for full details. I also removed some deadcode in checker/inductive.ml. I do not know if it is also necessary to fix checker/indtypes.ml.
2015-07-07Univs: bug fix.Matthieu Sozeau
Missing universe substitutions of mind_params_ctxt when typechecking cases, which appeared only when let-ins were used.
2015-07-06Merge branch 'v8.5' into trunkMaxime Dénès
2015-07-05Fixing documentation (see Maxime's mail on coqdev, July 3).Hugo Herbelin
2015-07-05Fix handling of primitive projections in VM.Maxime Dénès
I'm pushing this patch now because the previous treatment of such projections in the VM was already unsound. It should however be carefully reviewed.
2015-07-03Fix convertibility of primitive projections for native_compute.Maxime Dénès
Stuck primitive projections were never convertible.
2015-07-02Merge branch 'v8.5' into trunkMaxime Dénès
2015-07-02More robust pattern matching on structured constants in VM.Maxime Dénès
2015-07-02Display functions for primitive projections.Maxime Dénès
2015-07-01Further simplification of the graph traversal in Univ.Pierre-Marie Pédrot
We passed the arc to be marked as visited to the functions pushing the neighbours on the remaining stack, but this can be actually done before pushing them, as the [process_le] and [process_lt] functions do not rely on the visited flag. This exposes more clearly the invariants of the algorithm.
2015-06-28Merge branch 'v8.5'Pierre-Marie Pédrot
2015-06-26Share prop/set values in sorts.ml.Matthieu Sozeau
2015-06-26BUGFIX: Three fixes for the price of 1 in sorts.ml:Matthieu Sozeau
- Proper [family] implementation - Use the tailor made hash function for Sorts.t in two places.
2015-06-26Add a flag to deactivate guard checking in the kernel.Arnaud Spiwack
2015-06-24Add a corresponding field in `mutual_inductive_entry` (part 2).Arnaud Spiwack
The request for positivity to be assumed is honored.
2015-06-24Add a corresponding field in `mutual_inductive_entry` (part 1).Arnaud Spiwack
The field in `mutual_inductive_entry` requires that a mutually inductive definition be checked or not, whereas the field in `mutual_inductive_body` asserts that it has or has not been.
2015-06-24Add a field in `mutual_inductive_body` to represent mutual inductive whose ↵Arnaud Spiwack
positivity is assumed.
2015-06-24Less closures makes the GC happy.Pierre-Marie Pédrot
We lambda-lift by hand the graph traversal functions in Univ to allocate less closures.
2015-06-24Merge branch 'v8.5'Pierre-Marie Pédrot
2015-06-23Less closures makes the GC happy.Pierre-Marie Pédrot
2015-06-23Add a Set Dump Bytecode command for debugging purposes.Maxime Dénès
Prints the VM bytecode produced by compilation of a constant or a call to vm_compute.
2015-06-23Document the positivity checker.Arnaud Spiwack
This is my attempt at understanding each case and subfunction of the positivity check and document each of them to the best of my capacity.
2015-06-22Merge remote-tracking branch 'forge/v8.5'Pierre Boutillier
2015-06-22All invocations to ocaml compilers go through ocamlfindPierre Boutillier
Nothing is done for camlp4 There is an issue with computing camlbindir
2015-06-15Native compiler: do not catch exceptions not related to dynlink.Maxime Dénès
Was making the study of bugs like #4139 painful. Now printing a better error message when a compiled file is missing.
2015-06-08Fix native compilation of primitive projections. Closes #4210.Maxime Dénès
2015-06-01Making Coq compile with ocp-memprof.Pierre-Marie Pédrot
Patch provided by Çagdas Bozman.
2015-05-27Fix bug #4159Matthieu Sozeau
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.
2015-05-17Fixing bug #4201: The native compiler is not race-free.Pierre-Marie Pédrot
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.
2015-05-14Disable precompilation for native_compute by default.Guillaume Melquiond
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.
2015-05-12Fix my previous commit on ~polypropPierre Letouzey
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...
2015-05-12Extraction: fix the detection of the "polyprop" situationPierre Letouzey
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.
2015-04-27Fix some ill-typed debugging code in the VM.Guillaume Melquiond
2015-04-22Tactical `progress` compares term up to potentially equalisable universes.Arnaud Spiwack
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.
2015-04-16Fixing bug #4190.Pierre-Marie Pédrot
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.
2015-03-30fix code and bound for SWITCH instruction.Benjamin Gregoire
2015-03-27use a more compact representation of non-constant constructorsBenjamin Gregoire
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
2015-03-26allows the vm to deal with inductive type with 8388607 constant constructors ↵Benjamin Gregoire
and 8388851 non-constant constructor.
2015-03-26Fix bug 4157,Benjamin Gregoire
change the representation of inductive constructor when there is too many non constant constructors in the inductive type Conflicts: kernel/cbytegen.ml
2015-03-25Fix vm compiler to refuse to compile code making use of inductives withMatthieu Sozeau
more than 245 constructors (unsupported by OCaml's runtime).
2015-03-25More clever representation of substituted Cemitcode.Pierre-Marie Pédrot
Module substitution is made nodewise, allowing to drop it for opaque terms in the VM. This saves a few useless substitutions.
2015-03-25Fully fixing bug #3491 (anomaly when building _rect scheme in theHugo Herbelin
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.
2015-03-24Fixing computation of non-recursively uniform arguments in theHugo Herbelin
presence of let-ins. This fixes #3491.
2015-03-24Fixing wrong rel_context in checking positivity condition.Hugo Herbelin
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.
2015-03-18More sharing in module substitution.Pierre-Marie Pédrot
2015-03-13Fix compilation with forthcoming Ocaml version 4.03.Arnaud Spiwack
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.
2015-03-03Fix bug #4103: forgot to allow unfolding projections of cofixpoints likeMatthieu Sozeau
cases, in some cases.