Commit graph

320 commits

Author SHA1 Message Date
Leonardo de Moura
21d90afa43 feat: add ForInStep type 2020-10-03 15:16:45 -07:00
Leonardo de Moura
4fae8588fd test: optional ';' 2020-09-28 17:11:00 -07:00
Leonardo de Moura
db7633e156 test: forIn using . notation instead of type classes 2020-09-27 08:27:05 -07:00
Leonardo de Moura
e30249c2d2 chore: add workarounds to forIn experiment 2020-09-27 08:20:58 -07:00
Leonardo de Moura
2754d78749 proto: type classes for the for in notation 2020-09-25 18:48:23 -07:00
Sebastian Ullrich
95e24371f5 test: final webserver demo 2020-06-25 10:48:38 +02:00
Leonardo de Moura
43df7b75cb chore: PLDI examples 2020-06-17 21:28:37 -07:00
Leonardo de Moura
0c6d6f1ff1 chore: fix test 2020-06-17 21:28:37 -07:00
Sebastian Ullrich
fff0cdc0ec test: Webserver: maybe-final version 2020-06-17 17:37:08 +02:00
Sebastian Ullrich
3c547db67c test: Webserver: introduce antiquotations for custom parsers, remove Prelim namespace
/cc @leodemoura
2020-06-17 11:54:41 +02:00
Leonardo de Moura
0c089b8cbd feat: elaborate syntaxAbbrev as a definition
@Kha I elaborated it as a definition. It works because we can now
reference Parser declarations in `syntax` command.
This change allowed us to replace `p.getArg 0` with `p` in the
`Websever` demo.
2020-06-16 15:43:17 -07:00
Leonardo de Moura
3e028e3812 feat: allow syntax command to use existing parser declarations
@Kha Note that I had to change the pattern. After I replaced,
```
syntax text : child
```
with
```
syntax Prelim.text  : child
```
Thus, I wrote
```
`(child|$t:text)
```
as
```
`(child|$t)
```
It works for this example, but it may be a problem in general.
2020-06-16 15:08:23 -07:00
Sebastian Ullrich
ade961bcf3 test: webserver demo 2020-06-16 22:10:43 +02:00
Sebastian Ullrich
e6b988a10a feat: add natural language demo 2020-06-13 16:20:23 +02:00
Leonardo de Moura
17b6957f6c chore: fix tests 2020-05-26 15:05:01 -07:00
Leonardo de Moura
9c0bd9dd41 chore: fix tests 2020-05-26 15:05:00 -07:00
Sebastian Ullrich
b1d9e37d66 test: add re-elaborating delaborator PoC to playground 2020-03-19 17:18:46 -07:00
Leonardo de Moura
434c148800 test: add termElab attribute test 2020-01-01 14:16:49 -08:00
Leonardo de Moura
6c04a4bcc3 feat: mkElabAttribute 2020-01-01 10:59:29 -08:00
Leonardo de Moura
dd4bed3c6f test: simple termParser attribute test 2019-12-31 17:03:11 -08:00
Leonardo de Moura
c6048f0f94 feat: generalize binInsert 2019-11-23 08:20:20 -08:00
Leonardo de Moura
886eb3f51f test: add foldUnify and getUnify
These are the primitives we need for retrieving candidate instances.
2019-11-23 06:24:09 -08:00
Leonardo de Moura
30c05416a4 test: add foldMatch and getMatch
These are the primitives we need for retrieving candidate simp lemmas.
2019-11-23 06:24:03 -08:00
Leonardo de Moura
ad837950d9 test: discrimination tree prototype 2019-11-22 18:41:07 -08:00
Sebastian Ullrich
3dcd4febd9 feat: make LEAN_PATH a mapping from package names to root dirs, remove C++ impl 2019-11-20 16:39:53 +01:00
Leonardo de Moura
38d9a7c063 test: interpreter bug
@Kha Could you please take a look at this repro?
When I use the compiler,
```
./run.sh usizeBug.lean
```
I get the expected answer: `2`.
When I use the interpreter,
```
../../bin/lean --run usizeBug.lean
```
I get `1`. I found the problem today, and managed to isolate the
problem to this small repro.
2019-11-18 18:12:33 -08:00
Leonardo de Moura
524872d68a chore: avoid Expr constructors in tests 2019-11-14 16:54:36 -08:00
Sebastian Ullrich
9b55687597 fix: show #eval errors 2019-10-18 13:10:13 +02:00
Leonardo de Moura
4db4b26de6 test(tests): use #eval and move tests 2019-09-19 14:38:52 -07:00
Leonardo de Moura
eebc722f57 feat(library/init/lean/expr): add abstractRange 2019-09-17 17:17:46 -07:00
Leonardo de Moura
75e5f5bfd8 feat(library/init/lean/expr): expose abstract 2019-09-16 18:34:45 -07:00
Leonardo de Moura
6d7041fcb4 test(tests/playground/inst): add instantiate and instantiateRev simple tests 2019-09-16 18:30:35 -07:00
Leonardo de Moura
bd7ee8b01b feat(library/init/lean/elaborator/term): add elabList, and fix elabTermAux 2019-09-14 08:41:49 -07:00
Sebastian Ullrich
e5ef6eae1f chore(tests/playground/task_testX): update syntax 2019-09-12 18:26:15 +02:00
Leonardo de Moura
61a3ea61c4 perf(library/init/lean/compiler/ir/boxing): create auxiliary constants for caching the value of boxed/unboxed literals and constants
For example, in the new test `qsort64.lean`, the new optimization
prevents the repeated execution of `box UInt64.inhabited`.
On my machine
```
./run.sh qsort64.lean 2000000
```
Goes from 1.22s to 0.355s
2019-09-11 10:37:35 -07:00
Sebastian Ullrich
572926f5ce perf(shell/CMakeLists.txt, tests/): define NDEBUG in leanc release builds
`assert` is now being used by the C runtime
2019-08-27 16:54:29 +02:00
Leonardo de Moura
f8199bb540 fix(library/playground/patch): updateArgs => modifyArgs 2019-08-09 16:05:29 -07:00
Leonardo de Moura
92da659ec7 feat(library/init/data/persistenthashmap/basic): add PersistentHashMap.contains 2019-08-09 11:25:01 -07:00
Leonardo de Moura
d00019f57e chore(library/init): fix whitspaces before => 2019-08-09 09:13:49 -07:00
Leonardo de Moura
4d913370a7 chore(library/init): eliminate whitespaces using another patch script 2019-08-09 09:01:39 -07:00
Sebastian Ullrich
3ed67138d5 chore(*): update equation syntax in files and old parser
for f in ../../**/*.lean; do echo $f; ./patch.lean.out $f > tmp && cat tmp > $f; done
2019-08-09 11:11:34 +02:00
Leonardo de Moura
022a130b86 feat(tests/playground/patch): path equation syntax 2019-08-08 20:57:54 -07:00
Leonardo de Moura
849311af00 test(tests/playground/patch): do-nothing transformer 2019-08-08 10:47:19 -07:00
Leonardo de Moura
4bd347de3a feat(library/init/data/persistentarray/basic): PersistentArray.pop 2019-08-04 11:50:05 -07:00
Leonardo de Moura
3c5a30649d feat(library/init/data/persistenthashmap/basic): add PersistentHashMap.erase 2019-08-02 13:31:29 -07:00
Leonardo de Moura
c371b43970 feat(library/init/data): add PersistentHashMap 2019-08-02 13:31:29 -07:00
Leonardo de Moura
fe9908cad3 chore(tests/playground/persistentarray): fix test 2019-07-31 16:02:21 -07:00
Leonardo de Moura
798bbc0662 feat(library/init/system/io): new primitives 2019-07-25 18:12:44 -07:00
Sebastian Ullrich
aef4a7159b chore(*): remove obsolete leanpkg.path files 2019-07-25 17:46:53 -07:00
Leonardo de Moura
77a59f4998 feat(library/init/io): add IO.getEnv 2019-07-25 08:31:23 -07:00