Leonardo de Moura
0556412f8d
refactor(*): add runtime folder
...
@kha The runtime folder includes what is needed to link a
standalone Lean program. It is still contains some unnecessary files.
We will be able to remove them after we release Lean4.
2018-05-14 14:23:56 -07:00
Leonardo de Moura
5b530f24aa
chore(library/parray): style
2018-04-12 16:43:11 -07:00
Leonardo de Moura
3d9c0ab277
fix(library/parray): bug introduced when memory_pool was removed
2018-04-12 16:43:11 -07:00
Leonardo de Moura
39ef7aeee2
chore(util): remove memory_pool
...
memory_pool object introduces memory contention and unnecessary
complexity. Moreover, it actually reduces performance when we compile
Lean using JEMALLOC.
Here are the numbers for corelib
jemalloc with memory_pool: 13.83 secs
jemalloc without memory_pool: 13.60 secs
2018-04-12 16:43:10 -07:00
Leonardo de Moura
3f5bbfa0cf
fix(library/parray): missing lock
2017-05-09 13:57:28 -07:00
Leonardo de Moura
a3679a43a1
fix(library/parray): unique_lock ==> lock_guard
2017-05-09 13:57:28 -07:00
Leonardo de Moura
0ef0a7f466
chore(library/parray): more assertions
2017-05-09 13:57:28 -07:00
Leonardo de Moura
00887ba3ec
chore(library/parray): more assertions
2017-05-09 13:57:28 -07:00
Leonardo de Moura
2ddd413bef
fix(library/parray): reroot split optimization is incorrect when ThreadSafe == true
2017-05-09 13:57:28 -07:00
Leonardo de Moura
970529a8e9
fix(library/parray): copy method must create a copy of the mutex too (when ThreadSafe == true)
2017-05-09 13:57:28 -07:00
Leonardo de Moura
39165ad66b
feat(library/parray): add helper methods and exclusive_access helper class
2017-05-04 15:35:14 -07:00
Leonardo de Moura
ae96ebf6ee
feat(library/parray): split "long" delta paths
2017-05-03 16:07:49 -07:00
Leonardo de Moura
90e434f78c
refactor(library/parray): minor refactoring
2017-05-03 13:44:42 -07:00
Leonardo de Moura
6092966702
fix(library/parray): missing desctrutor/constructor invocations at reroot
2017-05-03 13:17:26 -07:00
Leonardo de Moura
97ab603325
feat(library/parray): add ensure_unshared
2017-05-03 12:57:15 -07:00
Leonardo de Moura
2e5702d31e
fix(library/parray): it is unsafe to return reference
...
A reroot operation performed by another thread may invalidate the reference.
2017-05-03 10:02:10 -07:00
Leonardo de Moura
a8cc5c4e31
fix(library/parray): race conditions
2017-05-03 09:36:35 -07:00
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
Leonardo de Moura
ff916b3a93
chore(library/parray): avoid T m_elem; field at cell
...
This was bad since T default constructor would be invoked even when not
needed.
2017-05-02 16:20:15 -07:00
Leonardo de Moura
915c5c5ad8
chore(library/parray): remove unnecessary conditional
2017-05-02 15:20:42 -07:00
Leonardo de Moura
faeac14ed7
feat(library/parray): add trace option for tracking destructive updates
2017-03-07 10:57:40 -08:00
Leonardo de Moura
04fd50e4e8
chore(*): fix tests and style
2017-02-20 23:53:44 -08:00
Leonardo de Moura
87eaedc580
feat(library/vm): shrink VM stack eagerly
...
TODO: liveness analysis objects on the VM stack
2017-02-20 23:10:50 -08:00
Leonardo de Moura
e9a98362d3
feat(library): functional arrays
2017-02-20 22:00:02 -08:00