Commit graph

13774 commits

Author SHA1 Message Date
Gabriel Ebner
40bf75cbff fix(library/equations_compiler/structural_rec): fix indices 2017-05-07 15:52:39 +02:00
Gabriel Ebner
02c744941e fix(util/lean_path): do not crash if HOME is not set 2017-05-07 13:29:29 +02:00
Leonardo de Moura
d21945fa86 feat(library/phash_map): add persistent hash_map based on phashtable 2017-05-05 12:36:13 -07:00
Leonardo de Moura
dcfef317f3 chore(leanpkg/leanpkg/main): performance problem is gone
It now takes extra 250ms to prove the equational lemmas.
I think it is reasonable.
2017-05-05 11:19:45 -07:00
Gabriel Ebner
4b22e2309c refactor(system/io): use spawn_args structure in all process functions 2017-05-04 16:41:11 -07:00
Gabriel Ebner
f0d22ed3e5 feat(library/process,system/io): set environment variables for spawned processes 2017-05-04 16:41:11 -07:00
Gabriel Ebner
c4aef89296 feat(system/io): add finally combinator 2017-05-04 16:41:11 -07:00
Gabriel Ebner
1b8533130b feat(system/io): add function to get environment variables 2017-05-04 16:41:11 -07:00
Daniel Selsam
b7d20a333f chore(src/library/constants): rm unused constants 2017-05-04 16:34:32 -07:00
Daniel Selsam
d727abeefc chore(library/inductive_compiler/nested.cpp): prove all theorems in C++ 2017-05-04 16:34:32 -07:00
Leonardo de Moura
4c9247d220 test(tests/library/phashtable): another perf test 2017-05-04 16:29:19 -07:00
Leonardo de Moura
9d5dacd554 test(tests/library/phashtable): add tests 2017-05-04 16:18:03 -07:00
Leonardo de Moura
bdf4d69702 feat(library): add persistent hashtable based on parray 2017-05-04 15:35:25 -07:00
Leonardo de Moura
39165ad66b feat(library/parray): add helper methods and exclusive_access helper class 2017-05-04 15:35:14 -07:00
Leonardo de Moura
ae96ebf6ee feat(library/parray): split "long" delta paths 2017-05-03 16:07:49 -07:00
Leonardo de Moura
90e434f78c refactor(library/parray): minor refactoring 2017-05-03 13:44:42 -07:00
Sebastian Ullrich
ad4f8cec73 chore(tests): forgot to commit test 2017-05-03 13:27:35 -07:00
Sebastian Ullrich
3c525bef6a fix(frontends/lean/pp): parenthesize Type u where necessary 2017-05-03 13:27:35 -07:00
Sebastian Ullrich
7eb04f0d44 fix(frontends/lean/elaborator): instantiate mvars in [reflected a] params
Fixes #1562
2017-05-03 13:27:35 -07:00
Sebastian Ullrich
b37b1fb7c6 refactor(library/type_context,frontends/lean/elaborator): move reflected code back into elaborator
Since we do not want recursive special handling of `reflected`, this seems to be
the simpler design.
2017-05-03 13:27:35 -07:00
Leonardo de Moura
6092966702 fix(library/parray): missing desctrutor/constructor invocations at reroot 2017-05-03 13:17:26 -07:00
Leonardo de Moura
97ab603325 feat(library/parray): add ensure_unshared 2017-05-03 12:57:15 -07:00
Leonardo de Moura
2e5702d31e fix(library/parray): it is unsafe to return reference
A reroot operation performed by another thread may invalidate the reference.
2017-05-03 10:02:10 -07:00
Leonardo de Moura
a8cc5c4e31 fix(library/parray): race conditions 2017-05-03 09:36:35 -07:00
Gabriel Ebner
c6490be500 chore(vim): remove vim files
They are now at https://github.com/leanprover/lean.vim
2017-05-03 18:28:36 +02:00
Sebastian Ullrich
d0c2c73b35 refactor(init/meta,tools): rename now tactic to done
It was pointed out that Coq already uses `now` for a different kind of tactic.
And `done` is more descriptive anyway.
2017-05-03 11:18:31 +02:00
Leonardo de Moura
a69052e7ee feat(library/parray): add parray thread safe version
We will use the thread safe version for implementing persistent hash maps.
The hash maps will be used to implement decision procedures and refactor
the congruence closure and ematching modules.
The persistent hash maps based on thread safe parrays are performant
when most of the time there is a single thread updating them.

We use a small hack to make sure we don't have any overhead for

   parray<T, false>

i.e., the thread unsafe version used in the VM.
2017-05-02 17:15:09 -07:00
Leonardo de Moura
ff916b3a93 chore(library/parray): avoid T m_elem; field at cell
This was bad since T default constructor would be invoked even when not
needed.
2017-05-02 16:20:15 -07:00
Leonardo de Moura
915c5c5ad8 chore(library/parray): remove unnecessary conditional 2017-05-02 15:20:42 -07:00
Leonardo de Moura
c3aa1ce444 fix(CMakeLists): install leanpkg
fixes #1561

@jroesch Could you please check if this patch works on your OSX machine?
2017-05-02 13:25:55 -07:00
Leonardo de Moura
73b4e42485 chore(frontends/lean,library): fix character pretty printer 2017-05-02 13:17:22 -07:00
Leonardo de Moura
a0a8103804 chore(frontends/lean): go back to 'c' as notation for characters
This suggestion has been discussed at Slack.
We have decided to use #"c" as notation because we wanted to allow `'`
in the beginning of identifiers like in SML and F*. In particular,
we wanted to allow users to use 'a 'b 'c for naming type parameters
like in SML. However, nobody used this notation. In the Lean standard
library, we are using greek letters for naming type parameters.
So, there is no real motivation for the ugly #"c" syntax.
2017-05-02 13:00:51 -07:00
Leonardo de Moura
f64b3cb874 chore(frontends/lean): do not allow identifiers starting with ' 2017-05-02 10:43:44 -07:00
Sebastian Ullrich
1102234932 fix(frontends/lean/elaborator): guard against unexpected sorry macro
Fixes #1559
2017-05-02 13:57:16 +02:00
Sebastian Ullrich
07b1cfb268 fix(frontends/lean/structure_cmd): do not combine field default overrides and parent field short-hands
Fixes #1557
2017-05-02 13:42:15 +02:00
Leonardo de Moura
55fee26b36 feat(library/class): add attribute for tracking symbols occurring in instances of type classes
For more information see:
https://github.com/leanprover/lean/wiki/Refactoring-structures
The new attribute [algebra] implements the [algebraic_class] described
in the page above.
2017-05-01 18:02:30 -07:00
Leonardo de Moura
039f5571cd test(tests/lean/run): add regression test for #1525 2017-05-01 14:59:24 -07:00
Daniel Selsam
8b8814cfbe fix(frontends/lean/inductive_cmd.cpp): fixes #1525 2017-05-01 14:57:25 -07:00
Gabriel Ebner
2084060e97 fix(leanpkg): fix leanpkg build environment 2017-05-01 14:11:39 -07:00
Gabriel Ebner
70c0493f20 refactor(leanpkg): factor out helper functions 2017-05-01 14:11:39 -07:00
Gabriel Ebner
d33df6a063 fix(emacs): reduce refresh rate for task overlays 2017-05-01 14:11:39 -07:00
Gabriel Ebner
5fac4a78eb fix(leanpkg): configure after init/new 2017-05-01 14:11:39 -07:00
Gabriel Ebner
40fc254760 feat(emacs/lean-server): reduce delays 2017-05-01 14:11:39 -07:00
Gabriel Ebner
649d75961a fix(leanpkg): remove duplicate configure call 2017-05-01 14:11:39 -07:00
Gabriel Ebner
ed9e7d9066 feat(leanpkg): make add command more awesome 2017-05-01 14:11:39 -07:00
Gabriel Ebner
b26ced100e feat(leanpkg): support path option to specify source directory 2017-05-01 14:11:39 -07:00
Gabriel Ebner
572a81f963 chore(leanpkg): rename desc to manifest 2017-05-01 14:11:39 -07:00
Gabriel Ebner
135fb20d57 refactor(leanpkg): do not assume range of assignment is search path 2017-05-01 14:11:39 -07:00
Gabriel Ebner
90253e220c fix(leanpkg): remove hack 2017-05-01 14:11:39 -07:00
Gabriel Ebner
44bfceb6a6 feat(library/process): support working directory on windows 2017-05-01 14:11:39 -07:00