aboutsummaryrefslogtreecommitdiffhomepage
path: root/kernel
Commit message (Collapse)AuthorAge
* Merge PR#134: Enable `-safe-string`Gravatar Maxime Dénès2017-03-21
|\
| * [misc] Remove warnings about String.setGravatar Emilio Jesus Gallego Arias2017-03-20
| | | | | | | | | | The `a.[i] <- x` notation is deprecated and we were getting a couple of warnings.
| * [safe-string] Enable -safe-string !Gravatar Emilio Jesus Gallego Arias2017-03-14
| | | | | | | | | | | | | | | | | | We now build Coq with `-safe-string`, which enforces functional use of the `string` datatype. Coq was pretty safe in these regard so only a few tweaks were needed. - coq_makefile: build plugins with -safe-string too. - `names.ml`: we remove `String.copy` uses, as they are not needed.
| * [safe_string] library/nameopsGravatar Emilio Jesus Gallego Arias2017-03-14
| | | | | | | | | | | | We add a more convenient API to create identifiers from mutable strings. We cannot solve the `String.copy` deprecation problem until we enable `-safe-string`.
| * [safe_string] kernel/cemitcodesGravatar Emilio Jesus Gallego Arias2017-03-14
| | | | | | | | | | | | The `emitcodes` string type was used in both a functional and an imperative way, so we have to handle it with care in order to preserve the previous optimizations and semantics.
| * [safe-string] kernel/nativevaluesGravatar Emilio Jesus Gallego Arias2017-03-14
| | | | | | | | No functional change.
| * [safe_string] kernel/term_typingGravatar Emilio Jesus Gallego Arias2017-03-14
| | | | | | | | | | No functional change, we create the new string beforehand and `id_of_string` will become a noop with `-safe-string`.
* | [future] Remove unused parameter greedy.Gravatar Emilio Jesus Gallego Arias2017-03-14
|/ | | | It was always set to `greedy:true`.
* Merge PR#189: Remove tabulation support from pretty-printing.Gravatar Maxime Dénès2017-02-20
|\
* \ Merge PR#393: Replace Typeops with Fast_typeopsGravatar Maxime Dénès2017-02-08
|\ \
* \ \ Merge branch 'v8.6'Gravatar Pierre-Marie Pédrot2017-02-01
|\ \ \
| * \ \ Merge branch 'v8.5' into v8.6Gravatar Pierre-Marie Pédrot2017-02-01
| |\ \ \
| | | * | Remove useless commentsGravatar Gaetan Gilbert2017-01-28
| | | | |
| | * | | [native comp] Improve error message on linking error.Gravatar Emilio Jesus Gallego Arias2017-01-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The native compiler doesn't support `Require` inside `Module` sections in some cases, we improve the error message. See: https://coq.inria.fr/bugs/show_bug.cgi?id=4335 This patch improves the error message and gives the user some feedback.
| * | | | Do not add redundant side effects in tactic code.Gravatar Pierre-Marie Pédrot2017-01-20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This was observable in long proofs, because side effects kept being duplicated, leading to an additional cost linear in the size of the proof. This commit touches kernel files, but the corresponding API is only used in tactic-facing code so that the side_effects type remains opaque. Thus it does not affect the kernel safety.
* | | | | Merge branch 'v8.6'Gravatar Pierre-Marie Pédrot2017-01-19
|\| | | |
| * | | | Mapping named_context_val preserves sharing when possible.Gravatar Pierre-Marie Pédrot2017-01-17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This was deactivated by 27c9346 and made an optimization moot in eauto. This optimization was physically checking for equality, but as lists where rebuilt by the mapping, this was never true. Some contribs were thus quite slower, including persistent-union-find which was twice slower. This 2-line patch fixes it by trying to preserve sharing as much as possible. Note that we should still do something about eauto, because it does redo useless work a lot whenever the environment only changes a bit, while we could cache this computation.
| | * | | Handle application of a primitive projection to a not yet evaluated ↵Gravatar Guillaume Melquiond2016-12-26
| | | | | | | | | | | | | | | | | | | | cofixpoint (bug #5286).
| * | | | Handle application of a primitive projection to a not yet evaluated ↵Gravatar Guillaume Melquiond2016-12-23
| | | | | | | | | | | | | | | | | | | | cofixpoint (bug #5286).
* | | | | Fixing injection in the presence of let-in in constructors.Gravatar Hugo Herbelin2016-12-22
| | | | | | | | | | | | | | | | | | | | This also fixes decide equality, discriminate, ... (see e.g. #5279).
| | | * | Replace Typeops by Fast_typeopsGravatar Gaetan Gilbert2016-12-12
| | | | | | | | | | | | | | | | | | | | | | | | | This is really [mv fast_typeops.ml{,i} typeops.ml{,i}] plus trivial changes in the other files, the real changes are in the parent commit.
| | | * | Extend Fast_typeops to be a replacement for TypeopsGravatar Gaetan Gilbert2016-12-12
| |_|/ / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This brings the fix in cad44fc for #2996 to the copy of Fast_typeops.check_hyps_inclusion. Fast_typeops.constant_type checks the universe constraints instead of outputting them. Since everyone who used Typeops.constant_type just discarded the constraints they've been switched to constant_type_in which should be the same in Fast_typeops and Typeops. There are some small differences in the interfaces: - Typeops.type_of_projection <-> Fast_typeops.type_of_projection_constant to avoid collision with the internally used type_of_projection (which gives the type of [Proj(p,c)]). - check_hyps_inclusion takes [('a -> constr)] and ['a] instead of [constr] for reporting errors.
* | | | Merge branch 'v8.6'Gravatar Pierre-Marie Pédrot2016-12-07
|\| | |
| * | | Fix #5248 - test-suite fails in 8.6beta1Gravatar Maxime Dénès2016-12-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This was yet another bug in the VM long multiplication, that I unfortunately introduced in ebc509ed2. It was impacting only 32-bit architectures. In the future, I'll try to make sure that 1) we provide unit tests for integer arithmetic (my int63 branch ships with such tests) 2) our continuous testing infrastructure runs the test suite on a 32-bit architecture. I tried to set up such an instance, but failed. Waiting for support reply.
| * | | Merge remote-tracking branch 'github/pr/366' into v8.6Gravatar Maxime Dénès2016-12-04
| |\ \ \ | | | | | | | | | | | | | | | Was PR#366: Univs: fix bug 5208
| | * | | Document changesGravatar Matthieu Sozeau2016-12-02
| | | | |
| * | | | Merge remote-tracking branch 'github/pr/377' into v8.6Gravatar Maxime Dénès2016-12-02
| |\ \ \ \ | | | | | | | | | | | | | | | | | | Was PR#377: Univs: fix bug #5180
| * | | | | Fix #5242 - Dubious unsilenceable warning on invalid identifierGravatar Maxime Dénès2016-12-02
| | | | | | | | | | | | | | | | | | | | | | | | We make this warning configurable and disabled by default.
* | | | | | Merge branch 'v8.6'Gravatar Pierre-Marie Pédrot2016-11-30
|\| | | | |
| | * | | | Univs: fix bug #5180Gravatar Matthieu Sozeau2016-11-30
| |/ / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In the kernel's generic conversion, backtrack on UniverseInconsistency for the unfolding heuristic (single backtracking point in reduction). This exception can be raised in the univ_compare structure to produce better error messages when the generic conversion function is called from higher level code in reductionops.ml, which itself is called during unification in evarconv.ml. Inside the kernel, the infer and check variants of conversion never raise UniverseInconsistency though, so this does not change the behavior of the kernel.
| | * | | Fix UGraph.check_eq!Gravatar Matthieu Sozeau2016-11-30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Universes are kept in normal form w.r.t. equality but not the <= relation, so the previous check worked almost always but was actually too strict! In cases like (max(Set,u) = u) when u is declared >= Set it was failing to find an equality. Applying the KISS principle: u = v <-> u <= v /\ v <= u. Fix invariant breakage that triggered the discovery of the check_eq bug as well. No algebraic universes should appear in a term position (on the left of a colon in a typing judgment), this was not the case when an algebraic universe instantiated an evar that appeared in the term. We force their universe variable status to change in refresh_universes to avoid this. Fix ind sort inference: Use syntactic universe equality for inductive sort inference instead of check_leq (which now correctly takes constraints into account) and simplify code
| | * | | Slightly more efficient [Univ.super] implemGravatar Matthieu Sozeau2016-11-30
| |/ / /
| * | | Fix incorrect long multiplication in the VM.Gravatar Guillaume Melquiond2016-11-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If the result had its 30th bit set, then all the high part of the result on a 64-bit architecture would end up being set, thus breaking subsequent computations. This patch also fixes the incorrectly parenthesized definition of uint32_of_value, which by luck was never misused.
* | | | Moving unused code out of the kernel into Termops.Gravatar Pierre-Marie Pédrot2016-10-31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Strangely enough, the checker seems to rely on an outdated decompose_app function which is not the same as the kernel, as the latter is sensitive to casts. Cast-manipulating functions from the kernel are only used on upper layers, and thus was moved there.
* | | | Merge branch 'v8.6'Gravatar Pierre-Marie Pédrot2016-10-29
|\| | |
| * | | Merge branch 'v8.5' into v8.6Gravatar Pierre-Marie Pédrot2016-10-26
| |\| |
* | | | COMMENT: Declarations.constant_defGravatar Matej Kosik2016-10-26
| | | |
* | | | COMMENT: Names.Cmap and Names.Cmap_envGravatar Matej Kosik2016-10-26
| | | |
* | | | COMMENT: Constr.kind_of_termGravatar Matej Kosik2016-10-26
| | | |
* | | | Merge branch 'v8.6'Gravatar Pierre-Marie Pédrot2016-10-24
|\| | |
| | * | Fix #5127 Memory corruption with the VMGravatar Maxime Dénès2016-10-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The bytecode interpreter ensures that the stack space available at some points is above a static threshold. However, arbitrary large stack space can be needed between two check points, leading to segmentation faults in some cases. We track the use of stack space at compilation time and add an instruction to ensure greater stack capacity when required. This is inspired from OCaml's PR#339 and PR#7168. Patch written with Benjamin Grégoire.
| * | | More comments in VM.Gravatar Maxime Dénès2016-10-19
| | | |
* | | | Merge branch 'v8.6'Gravatar Pierre-Marie Pédrot2016-10-17
|\| | |
| * | | Remove dead code in Environ.Gravatar Pierre-Marie Pédrot2016-10-12
| | | |
* | | | Merge branch 'v8.6'Gravatar Pierre-Marie Pédrot2016-10-12
|\| | |
| * | | Merge branch 'v8.5' into v8.6Gravatar Pierre-Marie Pédrot2016-10-12
| |\| |
| | * | Fix for bug #4863, update the Proofview's env withGravatar Matthieu Sozeau2016-10-11
| | | | | | | | | | | | | | | | | | | | side_effects. Partial solution to the handling of side effects in proofview.
| * | | Removing a slow access to a named environment.Gravatar Pierre-Marie Pédrot2016-10-06
| | | |
* | | | Merge branch 'v8.6'Gravatar Pierre-Marie Pédrot2016-10-05
|\| | |
| * | | Merge remote-tracking branch 'github/pr/263' into v8.6Gravatar Maxime Dénès2016-10-03
| |\ \ \ | | | | | | | | | | | | | | | Was PR#263: Fast lookup in named contexts