lean4-htt/src/tests/util
Leonardo de Moura 30a6a2ade8 feat(library/init/data, runtime): remove parray support from runtime, and implement them in Lean using Scala/Clojure Radix trees
The Scala/Clojure approach for persistent arrays works great with our
`reset/reuse`. We seem to be much more efficient than their
implementations because of `reset/reuse`. The new approach also seems
better than the old one implemented in the runtime, and has a few
advantages:
1- The reroot procedure used in the old approach required
synchronization for multi-threaded code, or we would need to perform
deep copies when sending `parray` objects between threads.
2- We don't need any runtime extension for the new approach.
3- The old approach used "trail lists" for undoing array updates.
This works well for bactracking search use cases, but it is bad
in use cases where we are simultaneously updating the persistent
arrays that have shared nodes.
2019-06-02 09:18:19 -07:00
..
interval fix(tests): initialize util module 2016-12-08 13:11:53 -08:00
bit_tricks.cpp fix(bit_tricks): make sure no one calls math.h's log2() 2018-03-06 11:21:28 -08:00
bitap_fuzzy_search.cpp
buffer.cpp fix(util/buffer): bug in expand method 2015-01-06 11:42:40 -08:00
CMakeLists.txt chore(tests/util): remove old test 2019-05-16 14:29:26 -07:00
compact.cpp feat(runtime): object compactor 2018-08-19 17:10:18 -07:00
format.cpp refactor(util/sexpr): move options and option_declarations to util 2019-05-16 14:37:24 -07:00
hash.cpp feat(library/compiler,runtime): builtin support for lean.name 2019-02-05 12:57:46 -08:00
import_test.lua
list.cpp fix(tests): initialize util module 2016-12-08 13:11:53 -08:00
name.cpp chore(util): style 2018-06-15 16:05:11 -07:00
nat.cpp feat(util/nat): add C++ wrapper for manipulating runtime nat values 2018-06-13 09:29:52 -07:00
object.cpp feat(library/init/data, runtime): remove parray support from runtime, and implement them in Lean using Scala/Clojure Radix trees 2019-06-02 09:18:19 -07:00
optional.cpp refactor(*): add runtime folder 2018-05-14 14:23:56 -07:00
rb_map.cpp fix(tests): initialize util module 2016-12-08 13:11:53 -08:00
rb_tree.cpp refactor(*): add runtime folder 2018-05-14 14:23:56 -07:00
safe_arith.cpp
serializer.cpp refactor(kernel/expr): implement expr using runtime/object 2018-06-21 16:05:33 -07:00
set.cpp
sexpr.cpp refactor(util/sexpr): move options and option_declarations to util 2019-05-16 14:37:24 -07:00
stackinfo.cpp refactor(*): add runtime folder 2018-05-14 14:23:56 -07:00
thread.cpp refactor(*): add runtime folder 2018-05-14 14:23:56 -07:00
trie.cpp fix(tests): initialize util module 2016-12-08 13:11:53 -08:00