Commit graph

232 commits

Author SHA1 Message Date
Leonardo de Moura
da09ef4f66 feat(frontends/lean/builtin_exprs): minor improvement 2019-06-24 15:48:11 -07:00
Leonardo de Moura
24e3bff429 feat(frontends/lean): add simple parser! macro 2019-06-24 15:48:11 -07:00
Leonardo de Moura
8f1345dc53 chore(library/init/lean/syntax): simplify SyntaxNodeKind 2019-06-21 14:24:44 -07:00
Leonardo de Moura
7f3543096a test(tests/playground/parser2): proof of concept 2019-06-20 16:48:17 -07:00
Leonardo de Moura
93e5746739 chore(library/init/lean/parser/parser): naming consistency 2019-06-20 16:47:55 -07:00
Leonardo de Moura
98879f1580 refactor(library/init/lean/parser/parser): simplify SyntaxNodeKind
The numeric `id` generation is works well for builtin parsers, but it
creates problems when defining dynamic ones.
2019-06-20 14:51:59 -07:00
Leonardo de Moura
8724a8cfd5 feat(library/init/lean/parser/parser): builtin parser attributes must be applied after compilation 2019-06-20 09:22:03 -07:00
Leonardo de Moura
f180b3f32e feat(library/init/lean/parser/parser): improve error messages on prattParser 2019-06-19 16:36:18 -07:00
Leonardo de Moura
cf9a29152d fix(library/init/lean/parser/parser): ParserInfo for ident, strLit, and numLit 2019-06-19 16:19:00 -07:00
Leonardo de Moura
86e1af2066 test(tests/playground/parser1): minor 2019-06-19 14:17:55 -07:00
Leonardo de Moura
5ccbb1ec1c test(tests/playground/parser1): add first test
We use `attribute [testParser] ...` instead of `@[testParser]` as a
workaround for the issue described at 697f69020f

I will write a more detailed report for the new parser in the Lean4
channel. I will try to cover the pending issues and TODO list.

cc @kha
2019-06-19 10:52:22 -07:00
Leonardo de Moura
f176a7963c feat(library/init/lean/compiler/ir/emitcpp): register arity 0 declarations 2019-06-07 17:15:16 -07:00
Leonardo de Moura
3651dc7618 feat(library/init/lean): add evalConst
The implementation is good enough for implementing extensible parsers,
elaborators and tactics, but there are a few TODOs

1- We should have a better story for standalone applications.
   Most of them don't need `evalConst`, and the global table is
   just initialization overhead.

2- The global table introduces a dependency on the `Lean.Name`
   implementation. So, all standalone applications will depend on it.

3- We are not storing arity 0 constants in the table.
   This one should be easy to fix in the future.
2019-06-07 16:31:28 -07:00
Leonardo de Moura
ff86159297 test(tests/playground/eval): proof of concept for a safe eval function 2019-06-06 17:06:32 -07:00
Leonardo de Moura
e90a79f996 chore(tests/playground/parser/syntax): fix test 2019-06-05 14:19:24 -07:00
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
Leonardo de Moura
9d00a8d262 feat(tests/playground/radixtree): use bit shift and land instead instead of / and % 2019-06-01 11:06:45 -07:00
Leonardo de Moura
336761d787 feat(tests/playground/radixtree): add stats 2019-06-01 09:47:57 -07:00
Leonardo de Moura
e87c471e7f test(tests/playground/radixtree): Scala/Clojure inspired persistent arrays
@kha It is a pity we didn't use this example in our paper. It works
really well with `reset`/`reuse`.
2019-05-31 21:55:57 -07:00
Leonardo de Moura
30fefdb188 chore(tests/playground): add zipper 2019-05-29 14:33:47 -07:00
Leonardo de Moura
0009435add chore(tests/playground/lazylist): fix test 2019-05-29 14:33:47 -07:00
Sebastian Ullrich
9b9465d299 chore(tests/bench): move out from playground/ 2019-05-29 16:33:50 +02:00
Sebastian Ullrich
d082a7e42f fix(tests/playground/Makefile): fix rbmap_shared input size 2019-05-29 15:03:44 +02:00
Sebastian Ullrich
1ad692eb77 chore(tests/playground/Makefile): retire unionfind1 2019-05-29 14:58:58 +02:00
Sebastian Ullrich
423b087782 chore(tests/playground/Makefile): build *.tex by default 2019-05-29 10:08:39 +02:00
Sebastian Ullrich
adc462789a chore(tests/playground/Makefile): output tables after benchmarking 2019-05-29 10:08:39 +02:00
Sebastian Ullrich
9e22ae1f12 chore(tests/playground): update temci 2019-05-29 09:59:53 +02:00
Sebastian Ullrich
bebbb8413e chore(tests/playground/Makefile): benchmark scaling 2019-05-28 19:12:45 +02:00
Sebastian Ullrich
f25669666b chore(tests/playground/temci): update temci 2019-05-28 19:12:45 +02:00
Sebastian Ullrich
ff16feb661 chore(tests/playground): fix frontend benchmark 2019-05-28 19:12:45 +02:00
Sebastian Ullrich
0644835a7b chore(tests/playground/Makefile): disable broken benchmark 2019-05-28 19:12:45 +02:00
Sebastian Ullrich
8114e88639 fix(tests/playground/bench): build 2 stages 2019-05-28 19:12:45 +02:00
Sebastian Ullrich
d15cc74c13 chore(tests/playground/temci): update temci settings 2019-05-28 19:12:45 +02:00
Sebastian Ullrich
af85733a6d chore(tests/playground/temci): update temci 2019-05-28 19:12:45 +02:00
Sebastian Ullrich
609c27c31f fix(tests/playground/Makefile): create correct .cpp files when called directly 2019-05-28 19:12:45 +02:00
Sebastian Ullrich
fff2899176 feat(tests/playground/Makefile): add TEMCI_FLAGS 2019-05-28 19:12:45 +02:00
Sebastian Ullrich
e50b2040b6 feat(tests/playground/Makefile): more output polishing 2019-05-28 19:12:45 +02:00
Sebastian Ullrich
90430e9696 chore(tests/playground): delete intermediate files 2019-05-28 19:12:45 +02:00
Sebastian Ullrich
c1ba216bcc feat(tests/playground): Lean variant benchmarks 2019-05-28 19:12:45 +02:00
Sebastian Ullrich
5302a40763 feat(tests/playground): MLKit GC% 2019-05-28 19:12:45 +02:00
Leonardo de Moura
ccf400506a test(tests/playground/rbmap_checkpoint2): modified length 2019-05-28 08:21:38 -07:00
Sebastian Ullrich
d3097d08c1 feat(tests/playground/report): polish cross benches 2019-05-26 22:13:43 +02:00
Sebastian Ullrich
9708e9aced feat(tests/playground/Makefile): rbmap_checkpoint_10 benchmark 2019-05-26 21:27:08 +02:00
Leonardo de Moura
421da67490 test(tests/playground/deriv): implement count using UInt32 2019-05-25 05:56:44 -07:00
Sebastian Ullrich
fa7e17c5bb fix(tests/playground/rbmap_checkpoint): do something with the list tail 2019-05-24 20:06:08 +02:00
Sebastian Ullrich
64cae92cc1 fix(tests/playground/report): only normalize runtimes 2019-05-24 19:53:28 +02:00
Sebastian Ullrich
9d7875ca05 feat(tests/playground/report): reimplement normalizing by first column 2019-05-24 19:01:23 +02:00
Sebastian Ullrich
4eab0528bc feat(tests/playground/Makefile): add MLton and MLKit 2019-05-24 19:01:10 +02:00
Sebastian Ullrich
3255092125 chore(tests/playground/bench): update temci 2019-05-24 16:24:10 +02:00
Sebastian Ullrich
7762efc334 chore(tests/playground/report): Lean: rename GC to del 2019-05-24 16:22:59 +02:00