Commit graph

421 commits

Author SHA1 Message Date
Gabriel Ebner
acb03fb704 feat(shell): emscripten build with webassembly 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
d79909a1b8 refactor(util/lean_path): support leanpkg.path files 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
Sebastian Ullrich
e9a6c544af refactor(frontends/lean/{elaborator,structure_cmd}): compile structure inheritance to nested fields 2017-04-24 19:35:15 +02:00
Gabriel Ebner
9424e6fa24 refactor(frontends/lean/definition_cmds): make profiling threshold configurable 2017-04-23 11:22:41 -07:00
Gabriel Ebner
e2fa363423 feat(library/system/io,shell/lean): add --run switch 2017-04-11 16:41:30 -07:00
Sebastian Ullrich
3c8e176fb0 fix(frontends/lean/interactive): fix info on new field notation 2017-03-31 09:40:49 -07:00
Gabriel Ebner
467e547160 fix(shell/CMakeLists): run all tests serially 2017-03-30 06:49:42 +02:00
Gabriel Ebner
3253a79e77 refactor(tests/lean/fail): use test suite runner 2017-03-30 06:04:00 +02:00
Sebastian Ullrich
678044d1d6 refactor(shell/lean): use log tree node from module_info 2017-03-30 06:04:00 +02:00
Sebastian Ullrich
4a33045b84 chore(tests/lean,shell/lean): run leantests and leanruntests in parallel 2017-03-30 06:04:00 +02: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
e784fad8c6 feat(shell/server,emacs): add visible lines and above checking mode 2017-03-24 09:08:17 +01:00
Leonardo de Moura
ccd9a8212a chore(shell/lean_js): compilation warning 2017-03-23 12:56:35 -07:00
Gabriel Ebner
a6f7f31e85 refactor(shell,emacs): handle different checking modes in server 2017-03-23 09:07:09 +01:00
Gabriel Ebner
9dfd8e1018 fix(shell/server): fix field completion 2017-03-23 09:03:43 +01:00
Gabriel Ebner
5e29fe227e fix(shell/server): set global ios in info and complete tasks 2017-03-23 09:03:43 +01:00
Gabriel Ebner
c7ca21625c feat(util/log_tree): annotate nodes with detail levels 2017-03-23 09:03:43 +01:00
Gabriel Ebner
d26e870aa5 chore(*): fix tests 2017-03-23 09:00:59 +01:00
Gabriel Ebner
d0cc6f16b1 fix(shell/server): remove cancellation token from snapshot 2017-03-23 09:00:59 +01:00
Gabriel Ebner
52bcfb713f fix(shell/server): also invalidate non-open files 2017-03-23 08:57:56 +01:00
Gabriel Ebner
1524979dbf feat(emacs,shell/server): add different region-of-interest options 2017-03-23 08:57:56 +01:00
Gabriel Ebner
2799375d24 chore(*): style 2017-03-23 08:57:56 +01:00
Gabriel Ebner
bbe30e1bc5 feat(library/module): only report sorry once per declaration 2017-03-23 08:57:56 +01:00
Gabriel Ebner
3eba8d3ffc refactor(util/task): do not propagate errors 2017-03-23 08:57:56 +01:00
Gabriel Ebner
43a7dd8e4f fix(shell/lean): prevent deadlock 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
Leonardo de Moura
e6c5ba29d6 fix(library/message_builder): remove unnecessary field
see #1473
2017-03-22 08:23:29 -07:00
Sebastian Ullrich
60a244e4f9 fix(frontends/lean,shell): fix file dependencies 2017-03-17 18:20:44 -07:00
Sebastian Ullrich
c46936d180 fix(frontends/lean/interactive): hard-code tactic pretty printing 2017-03-17 18:20:44 -07:00
Sebastian Ullrich
e3a65ee794 refactor(frontends/lean/interactive,shell/server): factor out JSON reporting code 2017-03-17 18:20:44 -07:00
Sebastian Ullrich
b3887f21a4 fix(shell/server): remove unnecessary dependencies of info_task and use intermediate envs 2017-03-08 10:40:59 -08:00
Leonardo de Moura
1da93c4d28 feat(CMakeLists, shell/lean): add -D ALPHA=ON cmake option for enabling alpha features (i.e., wip)
@jroesch This commit also marks --compile as an alpha feature.
2017-02-26 23:06:45 -08:00
Gabriel Ebner
61c380b534 fix(shell/lean): catch all exceptions
Fixes #1386.
2017-02-21 10:54:46 -08:00
Leonardo de Moura
613a4d6e45 chore(shell/CMakeFiles): enable SMT2 tests 2017-02-21 10:53:03 -08:00
Leonardo de Moura
9863755ae1 feat(shell/lean,library/smt): fix SMT2 frontend 2017-02-21 09:28:21 -08:00
Sebastian Ullrich
69ed7b940f refactor(init/meta/interactive): query position information dynamically 2017-02-17 15:41:58 +01:00
Leonardo de Moura
3b28cef858 fix(shell/lean): default heartbeat should be unbounded in batch mode 2017-02-15 16:46:44 -08:00
Gabriel Ebner
092f7890a8 chore(shell/server): disable cpplint 2017-02-15 13:33:02 -08:00
Gabriel Ebner
f4b276ca4b fix(shell/server): sleep command: do not respond with "unknown command" 2017-02-15 13:33:02 -08:00
Gabriel Ebner
f72816e0f2 feat(shell/server): cancel all tasks on server exit 2017-02-15 13:33:02 -08:00
Gabriel Ebner
755c730b81 server: do not use additional_message 2017-02-10 09:06:09 +01:00
Gabriel Ebner
d8c2be1a33 feat(shell/server): limit full message updates to once every 200ms 2017-02-10 09:01:55 +01:00
Leonardo de Moura
1fb49baaaa feat(shell/server): add sleep commands for creating repros 2017-02-08 10:12:00 -08:00
Leonardo de Moura
01eb27d4a4 feat(util): "deterministic timeout" option
closes #1134

see #1362

This feature is implemented using a "hearbeat" thread local counter.
We reset the counter whenever we start a new task.
The counter is incremented when:

  1- An object is allocated using small_object_allocator (e.g., VM object)
  2- An object is allocated using memory_pool (e.g., expr, level, rb_tree nodes, list cons-cells, etc)
  3- check_system(...) invocations

We check if the threshold was reached at check_system.
The option --timeout=num can be used to set the limit (in thousands).
The default is unbounded in batch mode.
In server mode, the default is 100000. We can compile the standard library with --timeout=12000

I did not perform many experiments to check how precise this counter is.
I added a new Emacs configuration setting to change the server default.

Here is the wall clock time for different values of --timeout for the
command used on issue #1134

time ../../bin/lean -j 0 --timeout=20000 loop.lean
loop.lean:1:0: error: (deterministic) timeout detected at 'expression equality test' (potential solution: increase timeout threshold)

real	0m1.070s
user	0m1.032s
sys	0m0.036s

time ../../bin/lean -j 0 --timeout=40000 loop.lean
loop.lean:1:0: error: (deterministic) timeout detected at 'expression equality test' (potential solution: increase timeout threshold)

real	0m1.777s
user	0m1.676s
sys	0m0.044s

time ../../bin/lean -j 0 --timeout=50000 loop.lean
loop.lean:1:0: error: (deterministic) timeout detected at 'expression equality test' (potential solution: increase timeout threshold)

real	0m1.985s
user	0m1.920s
sys	0m0.056s

time ../../bin/lean -j 0 --timeout=100000 loop.lean
loop.lean:1:0: error: (deterministic) timeout detected at 'expression equality test' (potential solution: increase timeout threshold)

real	0m3.587s
user	0m3.564s
sys	0m0.020s
2017-02-07 13:56:12 -08:00
Gabriel Ebner
ea1e6bf3de feat(shell/lean): add default memory limit in server mode 2017-02-07 11:37:07 -08:00
Gabriel Ebner
9e7ca0a969 feat(checker): add leanchecker executable 2017-01-31 09:39:31 +01:00