aboutsummaryrefslogtreecommitdiff
path: root/kernel
AgeCommit message (Collapse)Author
2015-07-29Fixing some English misspelling.Hugo Herbelin
2015-07-27Merge branch 'v8.5'Pierre-Marie Pédrot
2015-07-23a small amount of documentation on the virtual machine.Gregory Malecha
2015-07-22Fix incomplete pattern-matching.Matthieu Sozeau
I was not seeing the warning due to the 10 deprecation warnings before it...
2015-07-18Merge branch 'v8.5'Pierre-Marie Pédrot
2015-07-16Modules: fix bug #4294Matthieu Sozeau
We were throwing away constraints from 'with Definition' in module type ascriptions.
2015-07-15Univs/Inductive: fix typechecking of casesMatthieu Sozeau
I was trying to be a bit too clever with not substituting the universe instance everywhere: the constructor type/inductive arity has to be instantiated before instantiate_params runs, which became true only for constructor types since my last commit.
2015-07-10Unused variables reported by OCaml.Hugo Herbelin
2015-07-10Option -type-in-type: added support in checker and making it contaminatingHugo Herbelin
in vo files (this was not done yet in 24d0027f0 and 090fffa57b). Reused field "engagement" to carry information about both impredicativity of set and type in type. For the record: maybe some further checks to do around the sort of the inductive types in coqchk?
2015-07-10Native compiler: make non-fatal linking errors silent except in debug mode.Maxime Dénès
2015-07-10Native compiler: refactor code handling pre-computed values.Maxime Dénès
Fixes #4139 (Not_found exception with Require in modules).
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