lean4-htt/src/util
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
..
lp fix(tests/util/lp): fix debug build 2016-10-03 22:22:12 -07:00
numerics chore(*): remove last remnants of mpfr 2017-02-24 21:42:58 +01:00
polynomial chore(*): create alias for std::pair 2014-08-20 16:46:19 -07:00
sexpr fix(util/sexpr/format): incorrect assertion 2017-05-01 13:13:07 +02:00
ascii.cpp refactor(util): explicit initialization/finalization 2014-09-23 08:13:33 -07:00
ascii.h refactor(util): explicit initialization/finalization 2014-09-23 08:13:33 -07:00
bit_tricks.cpp Fix bugs in mpbq. 2013-07-21 20:12:04 -07:00
bit_tricks.h Fix bugs in mpbq. 2013-07-21 20:12:04 -07:00
bitap_fuzzy_search.cpp feat(util): add fuzzy string search procedure 2014-09-05 18:01:09 -07:00
bitap_fuzzy_search.h feat(util): add fuzzy string search procedure 2014-09-05 18:01:09 -07:00
buffer.h chore(util/buffer): use std::move 2017-02-09 13:51:33 -08:00
cancellable.cpp fix(util/cancellable): fix quadratic runtime with many children 2017-03-23 09:00:59 +01:00
cancellable.h fix(util/cancellable): fix quadratic runtime with many children 2017-03-23 09:00:59 +01:00
CMakeLists.txt refactor(util/lean_path,util/path): separate search path functions 2017-05-01 14:11:38 -07:00
debug.cpp feat(util/debug): emscripten support 2016-10-16 14:41:35 -07:00
debug.h feat(util/debug): add version of lean_assert that also works in non-debug builds 2017-03-23 08:57:56 +01:00
escaped.cpp Use fullpath in #include directives, add missing STL headers 2013-09-13 03:35:29 -07:00
escaped.h Improve documentation 2013-07-26 11:43:53 -07:00
exception.cpp refactor(*): reduce exception context info from expr to pos_info 2017-02-17 13:45:57 +01:00
exception.h refactor(*): reduce exception context info from expr to pos_info 2017-02-17 13:45:57 +01:00
exception_with_pos.h refactor(*): reduce exception context info from expr to pos_info 2017-02-17 13:45:57 +01:00
extensible_object.h refactor(*): explicit initialization/finalization for serialization 2014-09-22 15:26:41 -07:00
file_lock.cpp fix(util/file_lock): issue on Windows 2016-12-20 14:16:58 -08:00
file_lock.h feat(util,library,shell): basic locking mechanism 2015-12-12 21:26:13 -08:00
flet.h Track recursion depth at normalizer. Add fluid let template. 2013-08-23 09:42:49 -07:00
freset.h refactor(*): uses aliases for unordered_map and unordered_set 2013-12-18 12:30:45 -08:00
fresh_name.cpp feat(util/fresh_name): API for detecting whether a name was created using mk_fresh_name 2016-08-05 19:02:31 -07:00
fresh_name.h feat(util/fresh_name): API for detecting whether a name was created using mk_fresh_name 2016-08-05 19:02:31 -07:00
hash.cpp Remove invalid use of register 2013-09-19 22:59:39 -07:00
hash.h feat(util/hash): use #if 2016-10-02 10:46:11 -07:00
init_module.cpp refactor(util/lean_path,util/path): separate search path functions 2017-05-01 14:11:38 -07:00
init_module.h refactor(*): explicit initialization/finalization for serialization 2014-09-22 15:26:41 -07:00
int64.h feat(numerics): add finite field Z/pZ 2013-10-18 13:27:28 -07:00
interrupt.cpp refactor(*): task<T>, log_tree, cancellation_token 2017-03-23 08:57:52 +01:00
interrupt.h refactor(util/thread): simplify thread life-cycle 2017-03-23 09:00:59 +01:00
json.hpp chore(util/json): workaround for mingw 2016-10-14 17:24:47 -07:00
lbool.cpp feat(util): add missing lbool.* files 2014-04-24 12:27:19 -07:00
lbool.h feat(util): add missing lbool.* files 2014-04-24 12:27:19 -07:00
lean_path.cpp fix(util/lean_path): fix emscripten build 2017-05-01 14:11:38 -07:00
lean_path.h refactor(util/lean_path,util/path): separate search path functions 2017-05-01 14:11:38 -07:00
list.h feat(library/tactic/smt/hinst_lemmas): change how transparency is used to process hinst_lemmas 2017-01-04 19:12:37 -08:00
list_fn.cpp fix(util/list_fn): add missing file 2015-05-18 15:16:29 -07:00
list_fn.h style(library/abstract_expr_manager): whitespace 2015-11-12 21:21:52 -08:00
log_tree.cpp refactor(frontends/lean/parser): store snapshots in a lazy async list 2017-03-27 14:00:53 -07:00
log_tree.h refactor(frontends/lean/parser): store snapshots in a lazy async list 2017-03-27 14:00:53 -07:00
lru_cache.h fix(util/lru_cache): typo 2014-06-03 14:59:00 -07:00
macros.h fix(util/sexpr/option_declarations): default value in help message, fixes #212 2014-09-27 10:12:59 -07:00
map.h Add helper function for maps. 2013-08-14 18:17:18 -07:00
memory.cpp feat(util/memory): implement get_current_rss using the jemalloc API 2017-03-23 09:01:00 +01:00
memory.h feat(CMakeLists,util): add TRACK_CUSTOM_ALLOCATORS=ON compilation option 2017-02-28 10:38:09 -08:00
memory_pool.cpp feat(util/memory_pool): put limit on the size of memory_pool free_lists 2017-02-28 15:16:43 -08:00
memory_pool.h feat(library/parray): add parray thread safe version 2017-05-02 17:15:09 -07:00
message_definitions.h chore(*): style 2017-03-23 08:57:56 +01:00
name.cpp fix(util/name): segfault on name() == "foo" 2017-04-03 12:32:35 +02:00
name.h fix(frontends/lean/pp): qualify constant shadowed by local 2017-03-31 09:40:49 -07:00
name_hash_map.h refactor(util): rename name_map to name_hash_map 2014-06-02 14:34:22 -07:00
name_hash_set.h feat(src/library/inductive_compiler): support for nested inductive types 2016-09-16 12:50:59 -07:00
name_map.cpp feat(util/name_map): add rename_map 2015-01-01 19:33:14 -08:00
name_map.h feat(util/name_map): add rename_map 2015-01-01 19:33:14 -08:00
name_set.cpp chore(*): remove support for Lua 2016-02-11 17:17:55 -08:00
name_set.h chore(*): remove support for Lua 2016-02-11 17:17:55 -08:00
null_ostream.cpp fix(library/trace): use null output channel when trace environment is not set 2015-12-08 18:37:57 -08:00
null_ostream.h fix(library/trace): use null output channel when trace environment is not set 2015-12-08 18:37:57 -08:00
object_serializer.h refactor(*): explicit initialization/finalization for serialization 2014-09-22 15:26:41 -07:00
optional.h fix(util/optional): bug in emplace method 2014-06-16 09:24:15 -07:00
output_channel.h fix(library/trace): use null output channel when trace environment is not set 2015-12-08 18:37:57 -08:00
pair.h chore(*): create alias for std::pair 2014-08-20 16:46:19 -07:00
parser_exception.cpp refactor(*): reduce exception context info from expr to pos_info 2017-02-17 13:45:57 +01:00
parser_exception.h chore(util,kernel,library): clang warnings 2017-02-17 20:01:34 -08:00
path.cpp refactor(util/lean_path,util/path): separate search path functions 2017-05-01 14:11:38 -07:00
path.h refactor(util/lean_path,util/path): separate search path functions 2017-05-01 14:11:38 -07:00
priority_queue.h refactor(frontends/lean): replace different attribute classes with single scoped_ext 2016-07-29 18:51:23 -04:00
rb_map.h fix(library/vm): make sure vm_rb_map objects can be stored in ts_vm_obj 2017-01-26 15:58:11 -08:00
rb_multi_map.h fix(util/rb_multi_map): missing include 2015-11-25 14:26:08 -08:00
rb_tree.h fix(util/rb_tree): fix remove(rb_tree) 2017-04-24 19:31:56 +02:00
rc.h fix(util/rc): reference counter memory_order flags 2014-07-21 08:23:01 -07:00
safe_arith.cpp Fix cpplint warning in util/safe_arith.cpp 2013-09-16 19:12:12 -07:00
safe_arith.h Simplify how universe variable constraints are represented in the kernel. Allow universe variable to be created without an environment. 2013-08-05 20:06:42 -07:00
scoped_map.h chore(*): create alias for std::pair 2014-08-20 16:46:19 -07:00
scoped_set.h chore(*): create alias for std::pair 2014-08-20 16:46:19 -07:00
sequence.h refactor(*): remove dependency to thread_local C++11 keyword, the 2014-09-24 12:51:04 -07:00
serializer.cpp chore(util/serializer): fix style 2015-08-14 18:34:33 -07:00
serializer.h feat(library/vm/vm): store .olean file name at vm_decl's 2016-11-11 16:19:19 -08:00
shared_mutex.cpp feat(util/shared_mutex): skip shared_mutex implementation if LEAN_MULTI_THREAD is not defined 2013-12-09 15:42:08 -08:00
shared_mutex.h fix(util/shared_mutex) missing pragma 2013-12-12 16:48:34 -08:00
small_object_allocator.cpp feat(CMakeLists,util): add CUSTOM_ALLOCATORS=OFF compilation option 2017-02-28 11:13:54 -08:00
small_object_allocator.h chore(*): style 2016-05-25 18:10:15 -07:00
sstream.h Use fullpath in #include directives, add missing STL headers 2013-09-13 03:35:29 -07:00
stackinfo.cpp fix(src/util): make sure thread stack size is > LEAN_STACK_BUFFER_SPACE 2016-12-03 12:05:01 -08:00
stackinfo.h feat(split-stack): add support for split-stacks (no more stackoverflows) 2013-12-09 22:30:54 -08:00
subscripted_name_set.cpp chore(*): fix compilation warnings 2016-09-19 17:36:28 -07:00
subscripted_name_set.h feat(library/local_context): make get_unused_name O(log(n)) 2016-09-19 16:38:03 -07:00
task.cpp fix(util/task): evaluate dependencies iteratively 2017-03-23 09:16:49 +01:00
task.h feat(util/log_tree): annotate nodes with detail levels 2017-03-23 09:03:43 +01:00
task_builder.cpp chore(*): style 2017-03-23 08:57:56 +01:00
task_builder.h perf(util/task_builder): speed up traverse 2017-03-23 09:00:59 +01:00
test.h feat(util): add primitives for checking the amount of available stack space 2013-12-01 17:19:27 -08:00
thread.cpp refactor(util/thread): simplify thread life-cycle 2017-03-23 09:00:59 +01:00
thread.h fix(util/thread): fix single-threaded build 2017-03-23 09:03:42 +01:00
timeit.cpp refactor(frontends/lean/definition_cmds): make profiling threshold configurable 2017-04-23 11:22:41 -07:00
timeit.h refactor(frontends/lean/definition_cmds): make profiling threshold configurable 2017-04-23 11:22:41 -07:00
timer.cpp fix(util/timer): fix valgrind warning 2017-03-23 09:00:59 +01:00
timer.h feat(shell/server): limit full message updates to once every 200ms 2017-02-10 09:01:55 +01:00
trie.h fix(util/trie): bug in for_each method 2014-06-09 16:43:01 -07:00
unit.h refactor(*): task<T>, log_tree, cancellation_token 2017-03-23 08:57:52 +01:00
unlock_guard.h fix(util/script_state): deadlock 2014-05-01 14:10:57 -07:00
utf8.cpp feat(emacs,frontends/lean/parser,shell/server): more accurate info command using server-side parsing 2016-12-27 10:07:34 -08:00
utf8.h feat(emacs,frontends/lean/parser,shell/server): more accurate info command using server-side parsing 2016-12-27 10:07:34 -08:00
worker_queue.h feat(*): distinguish between logical and runtime exceptions. 2015-01-15 16:54:55 -08:00