lean4-htt/library/init
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
..
control feat(library/init/control/monad): mark monadInhabited as an instance 2019-05-20 09:33:17 -07:00
data 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
lean feat(library/init/lean/compiler/constfolding): fold Nat.pow, UInt*.toNat and USize.toNat 2019-06-01 10:28:04 -07:00
coe.lean chore(library/init): Bool.tt => Bool.true and Bool.ff => Bool.false 2019-03-21 15:06:44 -07:00
core.lean refactor(library/init/lean/environment): cleanup and improve 2019-05-10 15:54:29 -07:00
default.lean chore(library/init,runtime,library/compiler): add fix primitive back 2019-03-27 17:13:53 -07:00
env_ext.lean chore(library/init/env_ext): update 2019-05-14 15:45:10 -07:00
fix.lean chore(library/init,runtime,library/compiler): add fix primitive back 2019-03-27 17:13:53 -07:00
init.md
io.lean feat(library/init/io): implement unsafeIO in Lean 2019-05-11 16:28:11 -07:00
platform.lean chore(library): capitalize types and namespaces 2019-03-21 15:06:43 -07:00
util.lean feat(library/init/util): add unsafeCast 2019-05-08 14:17:17 -07:00
wf.lean feat(library/init/wf): remove wf_term_hack 2019-03-27 12:41:16 -07:00