Commit graph

5709 commits

Author SHA1 Message Date
Gabriel Ebner
851b64dbbd feat(library/module_mgr): gracefully handle non-existing imports 2016-12-02 08:47:59 -08:00
Gabriel Ebner
a3daaee2e0 fix(library/mt_task_queue): reverse dependencies may already be queued
When we check whether the dependencies for a task have already been
evaluated and then accordingly move the task from waiting to queued, we
do not remove it from the reverse dependency lists it appears in.
2016-12-01 17:43:53 -08:00
Gabriel Ebner
cc9f52ade6 refactor(library/mt_task_queue): more precise task_result_states
The task result state now distinguishes created/waiting/queued, which is
useful for debugging.  mt_task_queue now also correctly waits for all
tasks during destruction.
2016-12-01 11:06:08 -08:00
Gabriel Ebner
3c1f9ca370 feat(library/task_queue): operator!= for task_results 2016-12-01 10:02:14 -08:00
Gabriel Ebner
9b97dc73dc fix(library/task_queue): do not keep references to cancelled task_results in the exception
We store this exception in the task_result itself, which creates a
reference cycle.
2016-12-01 10:02:14 -08:00
Leonardo de Moura
73e5367fb6 fix(library/mt_task_queue): make sure thread finalizers are executed even if lean was compiled without pthread support 2016-11-30 11:42:29 -08:00
Gabriel Ebner
e070444bbf fix(library/tactic/tactic_state): do not allocate tactic_state_cell using the VM allocator 2016-11-30 14:13:18 -05:00
Leonardo de Moura
4df0f82934 fix(library/tactic/simp_lemmas): memory leak 2016-11-30 09:58:20 -08:00
Leonardo de Moura
20d0ea7925 fix(library/module_mgr): invalid memory read
@gebner I was getting the following error with valgrind:

==9902== Invalid read of size 1
==9902==    at 0xAD209B: lean::module_mgr::mark_out_of_date(std::string const&, lean::buffer<std::string, 16u>&) (module_mgr.cpp:24)
==9902==    by 0xAD3EF5: lean::module_mgr::invalidate(std::string const&) (module_mgr.cpp:286)
==9902==    by 0x986A84: lean::server::handle_sync(nlohmann::basic_json<std::map, std::vector, std::string, bool, long, unsigned long, double, std::allocator> const&) (server.cpp:141)
==9902==    by 0x986603: lean::server::handle_request(nlohmann::basic_json<std::map, std::vector, std::string, bool, long, unsigned long, double, std::allocator> const&) (server.cpp:105)
==9902==    by 0x986313: lean::server::run() (server.cpp:90)
==9902==    by 0x975E98: main (lean.cpp:383)
==9902==  Address 0x0 is not stack'd, malloc'd or (recently) free'd
==9902==
==9902==
==9902== Process terminating with default action of signal 11 (SIGSEGV)
==9902==  Access not within mapped region at address 0x0
==9902==    at 0xAD209B: lean::module_mgr::mark_out_of_date(std::string const&, lean::buffer<std::string, 16u>&) (module_mgr.cpp:24)
==9902==    by 0xAD3EF5: lean::module_mgr::invalidate(std::string const&) (module_mgr.cpp:286)
==9902==    by 0x986A84: lean::server::handle_sync(nlohmann::basic_json<std::map, std::vector, std::string, bool, long, unsigned long, double, std::allocator> const&) (server.cpp:141)
==9902==    by 0x986603: lean::server::handle_request(nlohmann::basic_json<std::map, std::vector, std::string, bool, long, unsigned long, double, std::allocator> const&) (server.cpp:105)
==9902==    by 0x986313: lean::server::run() (server.cpp:90)
==9902==    by 0x975E98: main (lean.cpp:383)
2016-11-30 09:50:08 -08:00
Gabriel Ebner
000d97a9a6 fix(frontends/lean/parser): wrap snapshot in shared_ptr 2016-11-30 11:27:02 -05:00
Gabriel Ebner
c3f72ec0d8 fix(library/module_mgr): do not copy module_info 2016-11-30 11:26:59 -05:00
Leonardo de Moura
3617451775 fix(src/library/task_queue): remove spurious message
@gebner Could you please confirm this is a spurious message?
2016-11-29 16:48:29 -08:00
Daniel Selsam
7bfe0aedb0 feat(library/tactic/simplify): better debug.simplify.try_rewrite tracing 2016-11-29 14:46:35 -08:00
Leonardo de Moura
d40e97b4bc chore(*): compilation errors, fix style, fix warnings 2016-11-29 11:35:01 -08:00
Gabriel Ebner
df635b56af fix(frontends/lean/definition_cmds): correctly copy _refl_lemma attributes 2016-11-29 11:12:44 -08:00
Gabriel Ebner
3ecfddcbd5 fix(*): fix build 2016-11-29 11:12:43 -08:00
Gabriel Ebner
7ff2a77d67 feat(library/vm/vm_task): expose task_result objects to VM 2016-11-29 11:12:43 -08:00
Gabriel Ebner
e448e4e129 refactor(util/task_queue): merge module_task into task and cancel by position 2016-11-29 11:12:43 -08:00
Gabriel Ebner
aa03dc03b4 refactor(library/tactic/simp_lemmas): mark rfl-lemmas with a _refl_lemma attribute 2016-11-29 11:12:43 -08:00
Gabriel Ebner
b668844afe chore(*): fix style errors 2016-11-29 11:12:43 -08:00
Gabriel Ebner
e1cb1a8cd2 feat(util/task_queue,library/versioned_msg_buf): rudimentary support for task interruption 2016-11-29 11:12:43 -08:00
Gabriel Ebner
f69164d621 fix(library/aux_definition): type-check auxiliary definitions immediately 2016-11-29 11:12:43 -08:00
Gabriel Ebner
7d6e71aa59 fix(frontend/lean/print_cmd): make print work with incorrect proofs 2016-11-29 11:12:43 -08:00
Gabriel Ebner
385ea13688 feat(kernel/declaration,*): all theorems are delayed, and are revealed on delta-reduction 2016-11-29 11:12:43 -08:00
Gabriel Ebner
a8df381d20 feat(*): parallel compilation 2016-11-29 11:12:40 -08:00
Leonardo de Moura
c3424f4058 chore(library/documentation): remove leftover 2016-11-27 20:52:24 -08:00
Leonardo de Moura
fcef94200f feat(library/documentation): add lean suffix to code blocks 2016-11-27 19:08:35 -08:00
Leonardo de Moura
94c882f4d5 feat(library/documentation, frontends/lean): add /-! -/ doc string module block 2016-11-27 12:23:53 -08:00
Leonardo de Moura
6978906a78 chore(frontends/lean): remove namespace documentation
We will add module level doc strings /-! -/
2016-11-27 11:57:03 -08:00
Leonardo de Moura
338a46c225 fix(library/documentation): do not store doc strings for namespaces and declarations in the same name_map 2016-11-26 09:41:07 -08:00
Leonardo de Moura
b38810ffc3 feat(library/documentation): postprocess doc strings 2016-11-26 09:18:38 -08:00
Leonardo de Moura
97dd2f34d5 feat(library,frontends/lean): add basic doc string support 2016-11-25 18:52:56 -08:00
Leonardo de Moura
3b09865684 feat(library/init/meta/simp_tactic): add tactics for validating simp lemmas 2016-11-23 17:43:55 -08:00
Leonardo de Moura
b3c725c142 perf(library/equations_compiler/util): lemma generation performance when ite is used to compile equations 2016-11-23 15:48:12 -08:00
Leonardo de Moura
b75e8b99f5 fix(library/equations_compiler/structural_rec): missing case: reflexive inductive type eliminating into Prop
see #1199
2016-11-23 13:56:01 -08:00
Leonardo de Moura
21bad7cb97 feat(library/init/meta/comp_value_tactics): add support for char/string/fin at comp_val tactic 2016-11-23 13:19:54 -08:00
Leonardo de Moura
98fbe76f30 feat(library/comp_val): add mk_string_val_ne_proof 2016-11-23 13:19:24 -08:00
Leonardo de Moura
680bab8bb8 feat(library/comp_val): add mk_fin_val_ne_proof and mk_char_val_ne_proof 2016-11-23 10:25:04 -08:00
Leonardo de Moura
242ad1bd65 feat(library/init/meta/comp_value_tactics): add comp_val tactic for testing 2016-11-22 17:03:21 -08:00
Leonardo de Moura
357b9adefc chore(library/comp_val): remove unnecessary branches 2016-11-22 16:59:49 -08:00
Leonardo de Moura
d3d10edbf0 fix(library/comp_val): missing case 2016-11-22 16:50:11 -08:00
Leonardo de Moura
1ebc37f513 fix(library/comp_val): missing return value 2016-11-22 16:43:35 -08:00
Leonardo de Moura
f4b1413cee feat(library/comp_val): add mk_nat_val_lt_proof and mk_nat_val_le_proof 2016-11-22 15:14:10 -08:00
Leonardo de Moura
62d6b88570 fix(library/compiler/preprocess): make sure let-expressions are not expanded in the compiler preprocessor 2016-11-22 10:24:13 -08:00
Leonardo de Moura
31e159b80c fix(library/vm/vm): bug at add_native 2016-11-21 16:58:22 -08:00
Leonardo de Moura
ac4cd3d733 feat(library/tactic/rewrite_tactic): disable pp.beta at rewrite error msg 2016-11-21 15:58:11 -08:00
Leonardo de Moura
9d52b6607d feat(library/tactic): use annotated_head_beta_reduce instead of head_beta_reduce in tactics 2016-11-21 15:40:12 -08:00
Leonardo de Moura
227e16ea6b feat(library): add mk_nat_val_ne_proof
Procedure for building an efficient disequality proof for natural
number values encoded in binary.
2016-11-19 17:02:48 -08:00
Leonardo de Moura
88d2f07567 feat(frontends/lean/tactic_notation): switch to proof-term mode when calc/suppose/assume/have/show occurs in a tactic block 2016-11-18 16:57:31 -08:00
Leonardo de Moura
2844df2279 feat(library/init/meta/tactic): add tactic.opened_namespaces 2016-11-18 14:25:54 -08:00