Commit graph

646 commits

Author SHA1 Message Date
Leonardo de Moura
9b15c4c669 feat(util/rb_map): add find_if 2016-02-24 16:02:16 -08:00
Soonho Kong
431ce6ff2d fix(util/lp): instantiate missing functions
close #1005
2016-02-22 16:19:28 -05:00
Leonardo de Moura
c9e9fee76a refactor(*): remove name_generator and use simpler mk_fresh_name 2016-02-11 18:05:57 -08:00
Leonardo de Moura
f67181baf3 chore(*): remove support for Lua 2016-02-11 17:17:55 -08:00
Leonardo de Moura
6c1c6cbbdd fix(util/lp,tests/util/lp): warning msgs on OSX 2016-02-05 11:51:20 -08:00
Leonardo de Moura
1c8d8da9cf chore(util/lp/lp_primal_core_solver): fix warning 2016-02-05 10:08:32 -08:00
Lev Nachmanson
0e4f98dc47 dev(lp): remove a warning
Signed-off-by: Lev Nachmanson <levnach@microsoft.com>
2016-02-05 10:08:24 -08:00
Lev Nachmanson
a7e3befd21 dev(lp): speed up primal with sorted list
Signed-off-by: Lev Nachmanson <levnach@microsoft.com>
2016-02-05 10:04:36 -08:00
Lev Nachmanson
ff8213a6a9 dev(lp): diminish the number of pivots of primal by sorting the columns
Signed-off-by: Lev Nachmanson <levnach@microsoft.com>
2016-02-05 10:04:35 -08:00
Lev Nachmanson
61eaef0183 dev(lp): improve the dual perormance
Signed-off-by: Lev Nachmanson <levnach@microsoft.com>
2016-02-05 10:04:35 -08:00
Lev Nachmanson
9482d508df dev(lp): fix bugs in the dual simplex high loop
Signed-off-by: Lev Nachmanson <levnach@microsoft.com>
2016-02-05 10:04:35 -08:00
Lev Nachmanson
fbe4f56aea chore(lp): remove warnings
Signed-off-by: Lev Nachmanson <levnach@microsoft.com>
2016-02-05 10:04:35 -08:00
Leonardo de Moura
40d4623219 fix(util/lp/lp_settings): replace fabs with std::abs 2016-02-05 10:04:35 -08:00
Leonardo de Moura
971ec72157 fix(util/lp/numeric_pair): include cmath 2016-02-05 10:04:35 -08:00
Lev Nachmanson
504c603af4 chore(lp): use std::ostream for printing routines
Signed-off-by: Lev Nachmanson <levnach@microsoft.com>
2016-02-05 10:04:35 -08:00
Lev Nachmanson
fc858d98c0 chore(lp): improve formatting
Signed-off-by: Lev Nachmanson <levnach@microsoft.com>
2016-02-05 10:04:35 -08:00
Lev Nachmanson
e9cd621855 chore(lp): improve formatting
Signed-off-by: Lev Nachmanson <levnach@microsoft.com>
2016-02-05 10:04:35 -08:00
Lev Nachmanson
28bf891b7f dev(lp): port to windows (msys2)
Signed-off-by: Lev Nachmanson <levnach@microsoft.com>
2016-02-05 10:04:35 -08:00
Lev Nachmanson
99dcad0dda dev(lp): performance tuning in find_leaving_on_harris_theta
Signed-off-by: Lev Nachmanson <levnach@microsoft.com>
2016-02-05 10:04:35 -08:00
Lev Nachmanson
d098dfe326 dev(lp): fix infeasibility evidence check
Signed-off-by: Lev Nachmanson <levnach@microsoft.com>
2016-02-05 10:04:34 -08:00
Leonardo de Moura
d9acf90f7b refactor(util/lp): use Lean exception 2016-02-05 10:04:34 -08:00
Leonardo de Moura
8fbf66d01a chore(util/lp): no "using", indentation 2016-02-05 10:04:34 -08:00
Leonardo de Moura
1841d17544 refactor(lp): NDEBUG ==> LEAN_DEBUG 2016-02-05 10:04:34 -08:00
Lev Nachmanson
fbb3ed8911 feat(lp): add LP solver and incremental LU factorization
Signed-off-by: Lev Nachmanson <levnach@microsoft.com>
2016-02-05 10:04:34 -08:00
Leonardo de Moura
f62e22b34c fix(util/sexpr/format): fixes #955
Lean was crashing because separate_tokes was traversing a DAG as a tree.
Lean was dying without memory (and getting stack overflows) because the procedure was also converting
the DAG into a tree.

This example also suggests we should reduce the limits for the pretty printer.
2016-02-04 14:55:11 -08:00
Leonardo de Moura
bd52e58294 perf(util/name): use quick_cmp at name_pair_quick_cmp 2016-02-02 13:56:02 -08:00
Leonardo de Moura
cb203c3272 perf(src/util/name): if the hashcodes are equal, then there is a high probability the names are equal
So, we use == before trying cmp.
Reason: == is much faster.
2016-02-02 12:52:06 -08:00
Leonardo de Moura
a9cb9ff912 perf(util/name): more inlining 2016-02-02 09:49:50 -08:00
Leonardo de Moura
187bce307e perf(src/util/name): inline hash 2016-02-02 09:21:01 -08:00
Gabriel Ebner
7e11c5cf6e fix(src/util/file_lock): ignore failure to create locks on read-only file systems
EACCES is already ignored when creating lock files.  In this case we
assume that the file to be locked is part of the system-wide
installation.  On NixOS however, the file system containing system
packages is mounted read-only, and open(2) returns EROFS.
2016-01-16 11:00:44 -08:00
Soonho Kong
f911747b60 fix(util/file_lock.cpp): add 'include <fcntl.h>'
@wizardbc found that this is needed while working on lean.js.
I think it's because of the use of O_CREAT in open system call.

Related issue: leanprover/lean.js#10
2015-12-19 07:51:00 -05:00
Leonardo de Moura
45dbf76df9 refactor(library): add attribute manager 2015-12-17 20:58:15 -08:00
Leonardo de Moura
c07345d47f fix(util/file_lock): handle permission denied at lock creation
see #925

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2015-12-15 09:48:20 -08:00
Leonardo de Moura
521657914c chore(util/file_lock): style 2015-12-14 10:20:33 -08:00
Leonardo de Moura
31c9a76777 feat(util/file_lock): add support for Windows
Remark: the lock are not being erased on Windows.
I tried different solutions based on MoveFileEx and DeleteFile.
None of them worked. The one based on MoveFileEx

        MoveFileEx(m_fname.c_str(), NULL, MOVEFILE_DELAY_UNTIL_REBOOT);

seems to delete the file after REBOOT.
But, this is not very useful.

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2015-12-14 10:07:26 -08:00
Leonardo de Moura
4dc3764a02 feat(util,library,shell): basic locking mechanism
We still have to test on Windows.
see issue #925
2015-12-12 21:26:13 -08:00
Leonardo de Moura
cbc3c0cf4f feat(frontends/lean): suppress profiling information for declarations that take less than 0.01 secs to be processed 2015-12-09 10:48:36 -08:00
Leonardo de Moura
370f9a6eec fix(library/trace): use null output channel when trace environment is not set
This is important when multiple threads are being used, and the trace
environment is not set for a child thread
2015-12-08 18:37:57 -08:00
Leonardo de Moura
6b1469264d feat(library/trace): add new tracing infrastructure 2015-12-08 11:58:03 -08:00
Leonardo de Moura
a2ef818ff3 chore(*): remove old tracing framework 2015-12-08 09:06:10 -08:00
Leonardo de Moura
e417581e4c feat(util): add priority_queue 2015-12-07 17:05:01 -08:00
Leonardo de Moura
b7c96722c7 perf(util/rb_tree): mark check_invariant as a conditional/tagged assertion
This assertion is proportional to the tree size. So, it is too expensive
to check when we import many declarations.
2015-12-06 15:45:55 -08:00
Leonardo de Moura
b409720ac7 feat(util/sexpr/option_declarations): add register_string_option 2015-12-05 16:53:16 -08:00
Leonardo de Moura
96b37241bd feat(util/list): add is_suffix_eqp 2015-12-05 16:52:18 -08:00
Leonardo de Moura
41ff4bc193 feat(library/blast/forward/pattern): pattern inference and heuristic instantiation index 2015-11-25 23:45:08 -08:00
Leonardo de Moura
30214af15c fix(util/rb_multi_map): missing include 2015-11-25 14:26:08 -08:00
Daniel Selsam
8f4bc7e0ba fix(util/rb_multi_map): no duplicate values 2015-11-24 20:19:46 -08:00
Leonardo de Moura
b1777855cf chore(util/rb_multi_map): remove unnecessary includes 2015-11-19 11:45:20 -08:00
Daniel Selsam
5ada4312d7 feat(library/blast/forward): propositional forward chaining 2015-11-19 11:44:53 -08:00
Leonardo de Moura
950f9ff79f feat(util/rb_tree): buffer => rb_tree 2015-11-13 14:00:35 -08:00