Commit graph

56 commits

Author SHA1 Message Date
Gabriel Ebner
9118079f7f fix(library/module_mgr): error handling in cyclic imports
Fixes #1807
2017-09-12 17:22:47 +02:00
Gabriel Ebner
814a5edaf1 fix(library/module_mgr): check for errors when writing olean files 2017-06-21 11:25:25 +02:00
Gabriel Ebner
1e7e440951 fix(library/module_mgr): actually cancel invalidated tasks 2017-06-05 19:36:09 +02:00
Gabriel Ebner
b1e417805e fix(frontends/lean/scanner): do not treat 0xFF as end-of-file
Fixes #1624.  We just replace 0xFF by 0x00 when reading a new input
byte.  This shows up as an unexpected token error.
2017-05-31 16:54:04 +02:00
Gabriel Ebner
40eb5d0556 feat(library/module_mgr): skip reverse dependency rebuild if file content is unchanged 2017-05-23 11:14:30 -07:00
Gabriel Ebner
07c25338b9 feat(shell/server): add search command 2017-05-22 09:40:38 -07:00
Gabriel Ebner
f14763b777 fix(library/module_mgr): fall back to olean if lean does not exist 2017-05-01 14:11:39 -07:00
Gabriel Ebner
3810e8950d refactor(util/lean_path,util/path): separate search path functions 2017-05-01 14:11:38 -07:00
Gabriel Ebner
baa4c48f1f refactor(util/lean_path): explicitly pass around search path 2017-05-01 14:11:38 -07:00
Gabriel Ebner
01a7efc007 fix(library/module_mgr): do not crash on missing imports
Fixes #1506.
2017-04-04 19:56:33 +02:00
Gabriel Ebner
8c1136c1b6 fix(library/module_mgr): get_first_diff_pos: handle newlines correctly 2017-03-27 14:01:04 -07:00
Gabriel Ebner
318910f99b refactor(frontends/lean/parser): store snapshots in a lazy async list 2017-03-27 14:00:53 -07:00
Gabriel Ebner
c7ca21625c feat(util/log_tree): annotate nodes with detail levels 2017-03-23 09:03:43 +01:00
Gabriel Ebner
2799375d24 chore(*): style 2017-03-23 08:57:56 +01:00
Gabriel Ebner
aebd18f136 feat(shell/server): only compile region of interest 2017-03-23 08:57:56 +01:00
Gabriel Ebner
5f872912e0 refactor(shell/lean): set exit status 1 iff at least one error was reported 2017-03-23 08:57:56 +01:00
Gabriel Ebner
595cbb8fe9 refactor(*): task<T>, log_tree, cancellation_token 2017-03-23 08:57:52 +01:00
Gabriel Ebner
cbc0bb1f7c feat(library/module): store whether we used sorry in olean 2017-02-05 16:35:32 +01:00
Gabriel Ebner
f3b9439029 feat(library/module_mgr): add function to get combined environment 2017-01-31 09:39:31 +01:00
Gabriel Ebner
0d949e0da7 chore(library/module_mgr): explain exceptional case 2017-01-17 17:10:37 -08:00
Gabriel Ebner
a230c47178 feat(util/task_queue,emacs,*): highlight running tasks with different background color 2017-01-17 17:10:37 -08:00
Gabriel Ebner
1a6629ce3b feat(frontends/lean/parser): keep list of tasks that have to succeed 2017-01-17 15:31:17 -08:00
Leonardo de Moura
eabbc5bb68 chore(library/module_mgr): comment unreachable_code assertion
@gebner, could you please take a look a check whether there is a better fix.
2017-01-15 23:18:44 +01:00
Sebastian Ullrich
b180c54c0e feat(shell): move lean.js to server mode 2017-01-13 07:34:54 -08:00
Gabriel Ebner
db81e4b5b8 feat(frontends/lean/parser): gracefully handle scanner exceptions in imports 2017-01-11 23:49:44 -08:00
Gabriel Ebner
7319000c98 fix(library/module_mgr): set up message handling outside of exception handler 2017-01-11 23:49:44 -08:00
Gabriel Ebner
130f80efff fix(library/module_mgr): gracefully handle exceptions during dependency discovery 2017-01-11 23:49:44 -08:00
Gabriel Ebner
70e41305e5 fix(module_mgr): produce olean files with correct mtimes 2017-01-06 01:04:18 -08:00
Gabriel Ebner
063130ee18 feat(kernel/environment): add function that checks whether all proofs are correct 2017-01-05 18:09:28 -08:00
Gabriel Ebner
96398500b6 fix(library/module_mgr): do not cause waits for preimported modules 2017-01-04 16:30:22 -08:00
Gabriel Ebner
f6b8eb6821 feat(util/task_queue): lazy tasks 2017-01-04 16:30:22 -08:00
Gabriel Ebner
e3b3de5cf3 fix(module_mgr): guard all accesses to m_mod_info 2016-12-23 18:01:44 +01:00
Leonardo de Moura
896bc2c75a chore(*): fix style 2016-12-20 11:31:00 -08:00
Gabriel Ebner
8132957391 fix(library/module_mgr): build olean files with mtimes in correct order 2016-12-20 10:55:34 -08:00
Gabriel Ebner
0550d2a6ac refactor(library/module): import all modules in a single call 2016-12-20 10:15:19 -08:00
Gabriel Ebner
99fc13af98 refactor(library/module_mgr): cache olean imports as well 2016-12-20 10:15:19 -08:00
Gabriel Ebner
370d69de3f refactor(library/module): interface to get task dependencies for modifications 2016-12-20 10:15:19 -08:00
Gabriel Ebner
a2bc967fac feat(library/module): reuse pre-imported init module 2016-12-20 10:15:19 -08:00
Gabriel Ebner
a26e2c9108 feat(library/module): intermediary data structure for environment modifications 2016-12-20 10:15:19 -08:00
Gabriel Ebner
6ed538a705 fix(library/module_mgr): finally fix invalidation 2016-12-16 18:18:00 -08:00
Gabriel Ebner
d89512b6fc fix(util/task_queue): fix undefined behavior with null references 2016-12-15 09:48:57 -08:00
Gabriel Ebner
0c8c41bd07 fix(library/module_mgr): make more robust 2016-12-12 12:40:40 -08:00
Gabriel Ebner
67e3c383ac fix(library/module_mgr): fix invalidation 2016-12-12 12:40:40 -08:00
Gabriel Ebner
cf3f398753 fix(library/module_mgr): do not perform unnecessary copy 2016-12-12 08:25:32 -08:00
Jared Roesch
e65d90ac79 feat(*): C++ code generator
in progress move of Lean.native to init
2016-12-05 16:11:41 -08:00
Gabriel Ebner
c8a821afd1 fix(library/module_mgr): do not create olean files for modules with errors 2016-12-02 16:48:18 -08:00
Gabriel Ebner
851b64dbbd feat(library/module_mgr): gracefully handle non-existing imports 2016-12-02 08:47:59 -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