Commit graph

14474 commits

Author SHA1 Message Date
Folkert
8ced6f27cf follow clippy 2019-12-01 13:53:44 +01:00
Folkert
6154c027d2 fully remove scope 2019-12-01 13:50:16 +01:00
Folkert
12baa2bd13 trim function arguments (scope and env) 2019-12-01 13:47:56 +01:00
Folkert
7c87320cc1 remove Clone deriving of subs 2019-12-01 13:33:08 +01:00
Folkert
d958c87cae rebase on top of master 2019-12-01 13:27:14 +01:00
Folkert
b86b53bdb9 flesh out all currently-supported patterns 2019-12-01 13:14:32 +01:00
Folkert
78fb5d42fb add case inference 2019-12-01 13:14:32 +01:00
Folkert
fdb3822b0e typecheck closures, makes all function-related tests pass 2019-12-01 13:14:32 +01:00
Folkert
f5bcc589fe rebase off of tail-recursion branch 2019-12-01 13:14:32 +01:00
Folkert
ac8a9b5065 use canonical Closure 2019-12-01 13:14:11 +01:00
Folkert
4917306a2f store all variables in the scope
This currently runs into some problems with the Expr generated from canonicalization.
2019-12-01 13:14:11 +01:00
Folkert
77b4eb9bbd make FunctionPointer/procedures work 2019-12-01 13:14:11 +01:00
Folkert
5e95699d75 add files 2019-12-01 13:13:06 +01:00
Richard Feldman
af35eeeced Add roc-for-elm-programmers.md 2019-11-30 23:55:49 -05:00
Richard Feldman
f32937e9b9
Merge pull request #34 from rtfeldman/tokio
Load and canonicalize modules (in parallel!)
2019-11-30 22:42:00 -05:00
Richard Feldman
2ad1520eb1 Satisfy clippy 2019-11-30 22:30:59 -05:00
Richard Feldman
9a0ae83e0d Update interface_with_deps test 2019-11-30 22:26:41 -05:00
Richard Feldman
fde17405f5 Make send_set_from helper 2019-11-30 22:14:31 -05:00
Richard Feldman
4e6fcd0eb0 Add Debug to Loaded 2019-11-30 22:14:23 -05:00
Richard Feldman
0693d2ff5e Use VarStore over Subs in loading 2019-11-30 21:45:39 -05:00
Richard Feldman
4de8f43ae1 Add Debug and Default to VarStore 2019-11-30 21:44:36 -05:00
Richard Feldman
46079d4dae Merge branch 'trunk' into tokio 2019-11-30 21:14:40 -05:00
Richard Feldman
7b0a45867c Use VarStore to initialize Subs in tests 2019-11-30 21:11:37 -05:00
Richard Feldman
e1fb0fa4e9 Canonicalize with VarStore over Subs 2019-11-30 20:56:53 -05:00
Richard Feldman
acc0933c65 Use usize for unification, not u32 2019-11-30 20:51:07 -05:00
Richard Feldman
3a151b6c24 wip 2019-11-30 20:36:35 -05:00
Richard Feldman
0a9abed1d4 Update Inkwell 2019-11-30 20:35:07 -05:00
Richard Feldman
773d304f6b Update some doc comments 2019-11-30 20:35:07 -05:00
Richard Feldman
787d76b36a Get parallel loading working 2019-11-30 20:35:07 -05:00
Richard Feldman
997b6ec4ad Add PatternType::TopLevelDef 2019-11-30 20:35:07 -05:00
Richard Feldman
064ac5ce84 Add tokio sync and futures crate 2019-11-30 20:35:07 -05:00
Richard Feldman
fd116296df Second pass at parallel loading 2019-11-30 20:35:07 -05:00
Richard Feldman
4cf040a076 Add State::bytes_consumed() 2019-11-30 20:35:07 -05:00
Richard Feldman
d3f6d74fd7 Make State derive Eq 2019-11-30 20:35:07 -05:00
Richard Feldman
7c815b276a Fix UnqualifiedIdent docs 2019-11-30 20:35:07 -05:00
Richard Feldman
0477b68dc3 Add SendMap and SendSet 2019-11-30 20:35:07 -05:00
Richard Feldman
700fd6d2f2 Revert "First pass at async stuff"
This reverts commit 43440629ea81978f379c79576d8d9cada1be85fa.
2019-11-30 20:35:07 -05:00
Richard Feldman
29acb7a2b4 First pass at async stuff 2019-11-30 20:35:07 -05:00
Richard Feldman
37cfb0f650 Add tokio 2019-11-30 20:35:07 -05:00
Richard Feldman
960d42c33d
Merge pull request #33 from rtfeldman/tail-recursion
Tail recursion
2019-11-30 20:32:42 -05:00
Folkert
5cbf7e87e2 clean up testing code 2019-12-01 00:32:34 +01:00
Folkert
a943ff2c6d clarify comments about procedures 2019-12-01 00:22:57 +01:00
Richard Feldman
21efec0373 Remove a .clone() 2019-11-30 17:46:01 -05:00
Folkert
e0e511d61d Add normal recursivity check
after all definitions in a let are canonicalized, we can run over the
closure map and check whether a closure is recursive.
2019-11-30 17:01:24 +01:00
Folkert
c641686c4c clean up tail recursion for case
This is much simpler now, and has some tests!
2019-11-30 15:07:43 +01:00
Folkert
a7fa9d8a33 Add tail-recursion detection
when there is a function in the tail, it is a call by name and the name
matches the tail-callable symbol, this is registered.
2019-11-30 13:06:52 +01:00
Folkert
806c521c56 move pattern checking before body checking
this means we can know when checking the body that we're processing an Identifier pattern
2019-11-30 12:30:44 +01:00
Richard Feldman
9d9818317b
Merge pull request #30 from rtfeldman/keep-closures
Keep closures in canonical Expr
2019-11-29 11:24:10 -05:00
Folkert
e5ea558e7a please clippy 2019-11-29 13:34:53 +01:00
Folkert
62fb37b427 remove most recursion detection code
I think it's easier to do recursion checking in the 2nd type checker.
There we can build a full graph of calls from the `env.closures` map.
2019-11-29 13:31:16 +01:00