Commit Graph

461 Commits

Author SHA1 Message Date
Folkert
9745d86efb add tests 2020-03-19 14:59:05 +01:00
Folkert
006b1f8696 Switch on floats in llvm 2020-03-19 14:58:28 +01:00
Folkert
9b81a94786 Switch on floats in crane 2020-03-19 14:43:58 +01:00
Folkert
6b7b393d32 Switch on tags in crane 2020-03-19 14:39:04 +01:00
Folkert
0075e3fb04 attempt at float switches
needs something more , will circle back later
2020-03-19 14:25:37 +01:00
Folkert
f30655a103 Switch on tags in llvm 2020-03-19 14:18:54 +01:00
Folkert
0593a39e0f uncomment test 2020-03-19 12:35:11 +01:00
Folkert
20dc928bfe fix test on maybe
used elm syntax instead of roc
2020-03-19 12:32:48 +01:00
Folkert
c31116af87 preparation for recursive tag unions 2020-03-19 12:20:12 +01:00
Folkert
9d1e2a0ef1 support zero-sized values (empty record, unit type)
They now use no stack space
2020-03-19 11:31:06 +01:00
Dan Bruder
2c630fd014 Use sorted fields from struct layout as well as layout.stack_size in crane and llvm access 2020-03-19 05:59:29 -04:00
Dan Bruder
59bcda21f5 tests pass for crane f64 2020-03-19 05:46:11 -04:00
Chad Stearns
3984a8d60e Merging in remote 2020-03-19 01:10:57 -04:00
Chad Stearns
beb94dc6f5 Cargo Fmt 2020-03-19 01:10:04 -04:00
Richard Feldman
04f8b93a9b the clippiest of clips 2020-03-18 21:31:01 -04:00
Richard Feldman
8f51b2d429 Don't hardcode elem_bytes in llvm 2020-03-18 21:31:01 -04:00
Richard Feldman
0a045ccec8 Don't hardcode List slots in Cranelift 2020-03-18 21:31:01 -04:00
Richard Feldman
43c4fadd6e Use usize length, no capacity for llvm List 2020-03-18 21:31:01 -04:00
Richard Feldman
59368caa0c Revert various attempts to use target_data 2020-03-18 21:26:51 -04:00
Richard Feldman
c425490317 Another failed attempt to use target_data 2020-03-18 21:26:51 -04:00
Richard Feldman
6e977d96fc Failed attempt to use target_data 2020-03-18 21:26:51 -04:00
Richard Feldman
eed9fb0e69 Have Env store TargetData instead of pointer_bytes 2020-03-18 21:26:51 -04:00
Folkert
b93fe4e341 make arbitrary AccessAtIndex work
it now uses that actual layout, not a hardcoded one
2020-03-19 00:25:16 +01:00
Folkert
f3f135eca5 make Layout Hash 2020-03-18 23:26:17 +01:00
Folkert
b28a6ffa33 optimize tag union layout calculation 2020-03-18 22:42:10 +01:00
Folkert
0996f264e7 simplify Byte layout 2020-03-18 22:22:32 +01:00
Folkert
c11f374eb0 simplify Bool layout 2020-03-18 22:15:03 +01:00
Folkert
f906c9b4b4 uncomment cranelift tests 2020-03-18 21:39:39 +01:00
Folkert
99db336033 Working pattern match on Result Int Int 2020-03-18 21:35:10 +01:00
Folkert
53bd47221c WIP things seem to work in theory 2020-03-18 16:44:53 +01:00
Folkert
845e30658e WIP 2020-03-18 02:20:21 +01:00
Folkert
165c5d8363 load/store all tags in llvm 2020-03-17 22:04:11 +01:00
Folkert
6253d2d1af pattern match on single-tag tag unions
in LLVM and crane
2020-03-17 19:44:59 +01:00
Folkert
b5abed5f54 variables in pattern matches on single tags 2020-03-17 16:27:09 +01:00
Folkert
ba69987c1a llvm one element tag store 2020-03-17 15:29:40 +01:00
Folkert
b6ca5e2fb9 allow Attr wrapper in tag union ext
this should not happen, but we sometimes call this function on the whole tag, which then may be Attr-wrapped
2020-03-17 15:27:05 +01:00
Folkert
9d756a3b2c generate unpacked tags in Crane 2020-03-17 15:26:21 +01:00
Folkert
c3d550116b make patterns store their bound variables 2020-03-17 14:04:26 +01:00
Folkert
6310341b7e Merge remote-tracking branch 'origin/trunk' into pattern-compilation 2020-03-17 12:49:30 +01:00
Richard Feldman
9d950389f5 Implement list cloning and List.set in Cranelift 2020-03-17 00:45:07 -04:00
Richard Feldman
c0d0675919 Clean up some comments and names 2020-03-17 00:44:35 -04:00
Richard Feldman
97d084e224 Reproduce List.set on a shared list failing 2020-03-16 21:55:38 -04:00
Richard Feldman
77bf2547ac Add sfe_to_memcpy 2020-03-16 21:55:24 -04:00
Richard Feldman
e7b391cd6b Improve some docs 2020-03-16 21:55:12 -04:00
Richard Feldman
f9e013793c Drop unused mono::Expr::Pointer 2020-03-16 21:47:08 -04:00
Richard Feldman
bfe7c1b330 Update a comment 2020-03-16 21:27:49 -04:00
Richard Feldman
ae0d2f09d1 Some more Str docs revisions 2020-03-16 20:55:31 -04:00
Folkert
c20f777dba comment tests that fail for llvm 2020-03-17 00:36:58 +01:00
Folkert
ab332a37c3 take the maximum of all tags when calculating layout 2020-03-17 00:36:58 +01:00
Folkert
444e3063e0 reserve tag union as array of bytes in llvm 2020-03-17 00:36:58 +01:00
Folkert
6ff22de9dd store/define tags in llvm 2020-03-17 00:36:58 +01:00
Folkert
72ca6d675c further tag support in Cranelift 2020-03-17 00:36:58 +01:00
Folkert
74ec3682a2 add tests 2020-03-17 00:36:58 +01:00
Folkert
5fca5fe631 collect tags from aliases 2020-03-17 00:36:58 +01:00
Folkert
c9a90c32e3 prepare for Tag code gen 2020-03-17 00:36:58 +01:00
Folkert
e742b77e0b parity with old implementation 2020-03-17 00:36:58 +01:00
Folkert
d875f8bfce implement layout for Tag 2020-03-17 00:36:58 +01:00
Folkert
8c7124aba6 first pass 2020-03-17 00:36:58 +01:00
Richard Feldman
6637bfb226 Add some more Str docs 2020-03-16 02:40:20 -04:00
Chad Stearns
346daa327e Merge branch 'trunk' of github.com:rtfeldman/roc into render-color-cli 2020-03-16 02:40:09 -04:00
Richard Feldman
3fa75dc2f7 Add Str.reverseClusters to docs 2020-03-16 02:28:22 -04:00
Richard Feldman
0ed8f90f11 Fix some type signatures in Str docs 2020-03-16 02:28:22 -04:00
Chad Stearns
9cdd7988fc Very start of render color terminal 2020-03-16 02:27:38 -04:00
Chad Stearns
f8dd2fb9a1 Very start of render color terminal 2020-03-16 02:22:07 -04:00
Richard Feldman
1bee949ad0 Fix some Str docs 2020-03-16 02:06:12 -04:00
Richard Feldman
aa3030ab85 Revise Str docs 2020-03-16 02:01:57 -04:00
Richard Feldman
d6e5aa3bdc Write some Str docs 2020-03-16 01:10:21 -04:00
Chad Stearns
009e1fa176 Small changes to region rendering 2020-03-15 20:57:32 -04:00
Richard Feldman
505e69f956 Remove a stray space missed by cargo fmt 2020-03-15 15:25:54 -04:00
Richard Feldman
455fabbe88 c to the l to the i p p y 2020-03-15 15:21:33 -04:00
Richard Feldman
6cd8afd5d6 Fix using structs with records 2020-03-15 15:13:52 -04:00
Richard Feldman
d546f4340d Improve an error message 2020-03-15 14:31:13 -04:00
Richard Feldman
010e390fd6 Make using records in defs work 2020-03-15 14:31:01 -04:00
Folkert
6e97734211 ensure Bit/Enum patterns are considered exhaustive 2020-03-15 14:42:57 +01:00
Folkert
8a46765fee add debug assert for possible invariant 2020-03-15 14:42:57 +01:00
Folkert
3ea748e532 remove extra check 2020-03-15 14:42:57 +01:00
Folkert
9207145792 remove unneeded error vec 2020-03-15 14:42:57 +01:00
Folkert
58fd1d64ff do exhaustiveness on mono patterns 2020-03-15 14:42:57 +01:00
Folkert
2e3f21b1ce add commented test 2020-03-15 14:42:57 +01:00
Folkert
cdf05bc425 remove (now unneeded!) default case 2020-03-15 14:42:57 +01:00
Folkert
58c09aeaba First pass at pattern exhaustivess checking 2020-03-15 14:42:57 +01:00
Folkert
5926ac2f01 stub out Tag layout 2020-03-15 14:42:57 +01:00
Folkert
6088a22cb6 WIP first version that runs 2020-03-15 14:42:57 +01:00
Richard Feldman
4033098dac Update some number docs 2020-03-15 01:24:41 -04:00
Richard Feldman
f3c9ac2b40 Try out some docs 2020-03-14 23:31:17 -04:00
Richard Feldman
5c3c30ed09 Fix List.get and List.set 2020-03-14 21:17:09 -04:00
Richard Feldman
a54db8bf92 Merge remote-tracking branch 'origin/trunk' into array-wrappers 2020-03-14 20:49:59 -04:00
Richard Feldman
5bf82fa42c Fix Cranelift gen of nonempty lists 2020-03-14 20:44:39 -04:00
Richard Feldman
5beb65880c Fix List.len 2020-03-14 20:12:27 -04:00
Richard Feldman
36986fd204
Merge branch 'trunk' into mono-if 2020-03-14 15:43:28 -04:00
Chad Stearns
6a0655f96d Merging in remote 2020-03-14 12:35:00 -04:00
Chad Stearns
51ad7ea0f1 unused def report and batch report text 2020-03-14 12:28:36 -04:00
Richard Feldman
e01db9b284 wip empty list 2020-03-13 23:33:32 -04:00
Richard Feldman
e9a0c8b3ef Fix mono for empty list 2020-03-13 22:41:55 -04:00
Richard Feldman
de25dc0484 Re-enable empty list test 2020-03-13 22:41:46 -04:00
Richard Feldman
458b28de17 Drop dbg! statement 2020-03-13 22:41:35 -04:00
Richard Feldman
8d4331f903 Merge remote-tracking branch 'origin/trunk' into array-wrappers 2020-03-13 22:20:35 -04:00
Richard Feldman
4c19dd86ff First pass at some List implementation stuff 2020-03-13 22:15:26 -04:00
Richard Feldman
80722b872a Update List.set to use wrapper 2020-03-13 22:15:02 -04:00
Richard Feldman
6f64bb2f9b Update List.getUnsafe to use wrapper 2020-03-13 22:15:02 -04:00
Folkert
e2a079f0cc empty ext vars in type_to_var 2020-03-14 01:43:14 +01:00
Folkert
b43be95b19 add record_var to Access and Accessor 2020-03-14 01:13:44 +01:00
Folkert
e62ddc9ef5 make record variable names clearer 2020-03-14 01:01:14 +01:00
Folkert
1a8f380033 Merge remote-tracking branch 'origin/trunk' into mono-if 2020-03-14 01:00:25 +01:00
Folkert
1570e9b96e make mono patterns nicer 2020-03-14 00:10:11 +01:00
Folkert
c4c40ec878 fix cond generation
With Enum patterns (u8 in size), the size of the condition and the branches could disagree. (the branches would be i64).
we now cast the branches to the smaller integer type based on the layout
2020-03-14 00:07:32 +01:00
Folkert
38c93c001f constrain whole_var 2020-03-13 23:34:29 +01:00
Folkert
2e697ee8f9 add whole_var to tag union/record
the existing var is for the extension (ext_var). during mono we need the whole type to look up the layout, so store that as well
2020-03-13 23:28:36 +01:00
Folkert
129be86233 clean up when to Cond conversion 2020-03-13 21:24:42 +01:00
Folkert
df54bb5aef fix incorrect signature for isEq in uniq builtins 2020-03-13 20:49:16 +01:00
Folkert
05a3e8c3d8 equality for Byte and Bool 2020-03-13 17:01:18 +01:00
Folkert
f894459159 fix comment 2020-03-13 16:38:33 +01:00
Folkert
242679b841 fix clippy complaints 2020-03-13 16:14:37 +01:00
Folkert
bfde5c596d remove dead code 2020-03-13 15:17:37 +01:00
Folkert
97f1548a24 add tests 2020-03-13 15:16:27 +01:00
Folkert
735358c577 implement isEq for Float/Int 2020-03-13 15:15:10 +01:00
Folkert
6651180283 implement Bool in llvm 2020-03-13 15:13:43 +01:00
Dan Bruder
c16d5cb3f1 struct creation and access in llvm 2020-03-13 10:13:32 -04:00
Folkert
a3b1ec3be0 pull tags/fields from the ext_var during unification 2020-03-13 15:12:32 +01:00
Dan Bruder
eea25429b6 uncomment llvm tests for basic_record 2020-03-13 09:16:04 -04:00
Dan Bruder
099145e4b4 Merge branch 'trunk' into access-record-fields 2020-03-13 09:07:41 -04:00
Folkert
9ef4a6d891 fix bug in uniq isEq type
it always wanted Boolean arguments ...
2020-03-13 13:06:56 +01:00
Folkert
e01a6bab9b improve error reporting by mismatch! macro 2020-03-13 13:06:56 +01:00
Folkert
a7af366c3a new code gen for Cond 2020-03-13 13:06:56 +01:00
Folkert
263e4b4b6c add tests for mono If 2020-03-13 13:06:56 +01:00
Folkert
e3e84ecb0c fix If bug in uniq constraint gen 2020-03-13 13:06:56 +01:00
Folkert
aeeaf99c17 fix bug in constraint gen for If
the condition expression wasn't actually constrained
2020-03-13 13:06:56 +01:00
Folkert
f02193b962 fix new clippy warnings 2020-03-12 22:56:58 +01:00
Folkert
4da01c720e monomorphize the ext_var of records/tag unions 2020-03-12 21:32:58 +01:00
Folkert
f372e4d108 move fresh symbol generation into Env 2020-03-12 16:55:45 +01:00
Dan Bruder
bfd9150af4 access record fields progress 2020-03-12 10:37:07 -04:00
Folkert
de40cf62f3 special-case anonymous functions 2020-03-12 14:03:26 +01:00
Folkert
cfb3952fbf put patterns into PartialProc
So Load(symbol) finds a defined value
2020-03-12 13:20:26 +01:00
Folkert
9761aabe65 add is_empty to Procs 2020-03-12 12:58:03 +01:00
Richard Feldman
f74471012c Improve an error message 2020-03-12 00:53:24 -04:00
Richard Feldman
723ef8e6d0 Add a missing register_debug_idents call 2020-03-12 00:43:04 -04:00
Richard Feldman
494a8574bf Drop obsolete add_closure function 2020-03-12 00:40:07 -04:00
Richard Feldman
9b68fbe3c9 Add PRETTY_PRINT_DEBUG_SYMBOLS 2020-03-12 00:39:53 -04:00
Richard Feldman
173ba925ff Formatting 2020-03-12 00:39:28 -04:00
Richard Feldman
db362f6df0 Reproduce named identity function bug 2020-03-12 00:31:53 -04:00
Richard Feldman
9db7d2229a Remove a .clone() on procs 2020-03-11 22:18:44 -04:00
Folkert
c9644e4ee7 use snapshots to remove clone on Subs 2020-03-12 02:42:30 +01:00
Folkert
3dbaac210a add snapshot functions to Subs 2020-03-12 02:38:38 +01:00
Richard Feldman
cf5e3f92a5 Have mono::Env store &mut Subs 2020-03-11 21:36:27 -04:00
Richard Feldman
2ad70d44a2 Rename Attr module to #Attr, drop #Attr.@Attr 2020-03-11 21:15:30 -04:00
Richard Feldman
df78068e81 Implement int and float subtraction 2020-03-11 21:10:41 -04:00
Richard Feldman
9fcfa90bff Change capitalization 2020-03-11 21:06:08 -04:00
Richard Feldman
762b2c7b10 use IntOrFloat::* 2020-03-11 21:03:58 -04:00
Richard Feldman
a0c4e91792 Rename List.set_in_place to List.#setInPlace 2020-03-11 20:53:39 -04:00
Richard Feldman
21e4eb505a Implement and test Float.#add 2020-03-11 20:53:35 -04:00
Richard Feldman
523282e7bc Implement Int.#add 2020-03-11 20:53:32 -04:00
Richard Feldman
649575fab8 Improve some error messages 2020-03-11 19:48:19 -04:00
Richard Feldman
74b58db477 Use Procs::default() 2020-03-11 19:45:12 -04:00
Folkert
bb9c9d423a make Procs a struct 2020-03-12 00:40:10 +01:00
Folkert
2d0649fa66 attempt fix for gen tests 2020-03-11 23:13:32 +01:00
Folkert
a037173cdb complete the Content hashing 2020-03-11 23:00:44 +01:00
Folkert
f7a2be113e monomorphize closures 2020-03-11 22:03:01 +01:00
Folkert
5c9cf0ef37 add type hash function 2020-03-11 22:01:56 +01:00
Folkert
4c9f2c1b6e monomorphize addition 2020-03-11 15:24:44 +01:00
Folkert
fb8e8570bc Merge remote-tracking branch 'origin/trunk' into num 2020-03-11 14:30:50 +01:00
Folkert
d47d409a92 clean up to_int_or_float
with the changes from the previous commit, this now works as it should
2020-03-11 14:25:16 +01:00
Folkert
17348231fd fix uniqueness Num inference
The variable in Num is the `a` in `Num a`. For Int/Float literals, it's a helper variable to generate better error messages
2020-03-11 14:18:26 +01:00
Folkert
9ba09c7d82 use Reason::NumLiteral in uniqueness inference
we can 'just' do that here because there is a var_store available. That isn't true for normal inference, where we would have to put the variable in during solving
2020-03-11 14:07:49 +01:00
Richard Feldman
55623605f3 clippy mcclip 2020-03-11 00:11:23 -04:00
Richard Feldman
df85c086ab Fix test_uniq_solve 2020-03-11 00:07:19 -04:00
Richard Feldman
c0837eca1c Use constantNum over constantInt in load tests 2020-03-10 23:11:49 -04:00
Richard Feldman
a033f325f4 Support integer (Num *) patterns in jump tables 2020-03-10 23:08:26 -04:00
Richard Feldman
a0d762d1e5 Fix more mono::expr (Num *) cases 2020-03-10 23:06:11 -04:00
Richard Feldman
0bac39f9f1 Fix from_can for (Num *) 2020-03-10 22:59:30 -04:00
Richard Feldman
d4dc0eb683 Implement uniqueness for (Num *) 2020-03-10 22:53:53 -04:00
Richard Feldman
3ecbe0325c Plain number literals (e.g. 5) are now Num * 2020-03-10 22:27:13 -04:00
Folkert
fd1c29fb35 convert Tag to mono 2020-03-10 20:54:33 +01:00
Folkert
62f34c41cc hardcode Bool alias
previously it would use the tag union, which would result in slightly worse error messages down the line
2020-03-10 15:21:39 +01:00
Folkert
657901d760 bubble up pointer_size 2020-03-10 15:16:44 +01:00
Folkert
7fea957979 hardcode Bool 2020-03-10 14:50:35 +01:00
Folkert
fef590b9f7 remove unneeded variable check in reporting 2020-03-10 13:44:54 +01:00
Folkert
246199ec3e fixes after review 2020-03-10 12:01:13 +01:00
Richard Feldman
8da2bebcde Remove some dbg! statements 2020-03-10 02:56:56 -04:00
Richard Feldman
28b50c00c0 Clean up some comments 2020-03-10 02:56:56 -04:00
Richard Feldman
21d6d1cbd9 Disable empty_list_len for now 2020-03-10 02:56:56 -04:00
Richard Feldman
913f18226b Got LLVM structs working 2020-03-10 02:56:56 -04:00
Richard Feldman
8da7f26237 Try a different Struct approach 2020-03-10 02:56:56 -04:00
Richard Feldman
8450597a07 Try an alloca approach for structs 2020-03-10 02:56:55 -04:00
Richard Feldman
3789402a32 Rename List.length to List.len 2020-03-10 02:56:55 -04:00
Richard Feldman
f556f195d3 Handle more mono::Expr cases 2020-03-10 02:25:40 -04:00
Richard Feldman
c7daad8404 Restore home's ident_ids after creating Expr 2020-03-09 23:02:36 -04:00
Richard Feldman
0a8e360e19 Get bool_literal compiling 2020-03-09 23:02:36 -04:00
Folkert
5237408b15 do what clippy wants 2020-03-09 23:51:48 +01:00
Folkert
2bad39e8b9 convert enum tag unions to mono 2020-03-09 23:40:18 +01:00
Richard Feldman
6ae1ee373e Use a tag on rtfeldman/inkwell 2020-03-08 17:51:13 -04:00
Richard Feldman
e06d68f2a1
Merge branch 'trunk' into opt 2020-03-08 17:23:02 -04:00
Chad Stearns
b4e028a39c Upgrade to correct bumpalo version in reporting Cargo 2020-03-08 17:05:06 -04:00
Chad Stearns
2eb729937e Merge branch 'restore-reporting-tests' of github.com:rtfeldman/roc into restore-reporting-tests 2020-03-08 16:49:52 -04:00
Chad Stearns
a9cf87e67e Satisfy clippy 2020-03-08 16:48:08 -04:00
Chadtech
0a053cfac4
Merge branch 'trunk' into restore-reporting-tests 2020-03-08 16:28:08 -04:00
Richard Feldman
d878ef86aa Add List.set_in_place test to test_opt 2020-03-08 15:18:39 -04:00
Richard Feldman
99359221ab Add List.set test to test_mono 2020-03-08 15:09:01 -04:00
Richard Feldman
dcfa117227 Basic test_mono and test_opt 2020-03-08 14:45:27 -04:00
Richard Feldman
be4abcf173 Fix List.set tests 2020-03-08 01:20:43 -05:00
Chadtech
35a3d736a0
Merge branch 'trunk' into restore-reporting-tests 2020-03-08 00:42:49 -05:00
Chad Stearns
704b81d67c Restore report tests and also add more basic tests 2020-03-08 00:39:28 -05:00
Richard Feldman
74e92f35f1 Disable List.set tests for now 2020-03-08 00:33:13 -05:00
Richard Feldman
72ecb231f1 clip clop clip clop clippy 2020-03-07 23:11:42 -05:00
Richard Feldman
abe9b8efaa Use Layout over Variable for both build modules 2020-03-07 23:04:28 -05:00
Richard Feldman
d589f6b2df Fix infer_expr_help in test_reporting 2020-03-07 15:54:46 -05:00
Chad Stearns
a165248a17 Cargo fmt 2020-03-07 14:46:08 -05:00
Chad Stearns
922e5d5af3 Bringing in reporting test files 2020-03-07 14:44:11 -05:00
Chad Stearns
25513d7eda Restoring report test file 2020-03-07 14:43:47 -05:00
Richard Feldman
db4ef45708 Upgrade to List.set_in_place when appropriate 2020-03-07 12:43:24 -05:00
Folkert
bca43a2564 improve is_unique 2020-03-07 12:43:24 -05:00
Richard Feldman
a092f59b0f First pass at is_unique 2020-03-07 12:43:24 -05:00
Richard Feldman
365c65a7d9 Fix lifetime problem with arena 2020-03-07 11:20:39 -05:00
Richard Feldman
0f79a3311d Upgrade bumpalo to 3.2 2020-03-07 11:20:35 -05:00
Folkert
63c5af2882 make builtin applies importable 2020-03-07 01:21:45 +01:00
Folkert
9c5df1d5a5 fix uniqueness tests 2020-03-07 01:03:18 +01:00
Folkert
12e3bae371 fix up code gen 2020-03-07 01:03:03 +01:00
Folkert
21bbfd3c94 Merge remote-tracking branch 'origin/trunk' into use-fewer-variables 2020-03-07 00:53:13 +01:00
Folkert
94f2b6b6f6 switch back to Apply where possible 2020-03-07 00:50:38 +01:00
Richard Feldman
60adf36db2 Fix some tests 2020-03-06 18:28:13 -05:00
Richard Feldman
bf994c38f5 Clean up some trailing spaces in AStar.roc 2020-03-06 18:25:36 -05:00
Folkert
eb7d9d98e6 hardcode variables for empty records and tag unions 2020-03-07 00:25:16 +01:00
Richard Feldman
df4533296b fix some tests 2020-03-06 18:24:37 -05:00
Richard Feldman
363a7a0abd Mov gen to its own crate 2020-03-06 18:24:37 -05:00
Richard Feldman
a18e023326 Move load to its own crate 2020-03-06 18:24:37 -05:00
Richard Feldman
31e300021c Move fmt to separate crate 2020-03-06 18:24:37 -05:00
Richard Feldman
33d849100b Drop obsolete string.rs 2020-03-06 18:24:37 -05:00
Richard Feldman
5a129a506a Move fmt 2020-03-06 18:24:37 -05:00
Richard Feldman
762ae80ec4 Move solve and uniq tests into other crates 2020-03-06 18:24:37 -05:00
Richard Feldman
8fc75f2b2e fix some tests 2020-03-06 18:24:37 -05:00
Richard Feldman
a2f5f6f9fb Move solve and uniq tests into other crates 2020-03-06 18:24:37 -05:00
Folkert
37fc820e59 add tests 2020-03-06 23:56:17 +01:00
Folkert
4848eb5901 refactor introduced variables
This has lead to so many problems, so I made a special-purpose type for it
2020-03-06 23:55:31 +01:00
Folkert
c6121e3805 add unique builtins for AStar 2020-03-06 23:54:13 +01:00
Folkert
d34c96ec96 AStar with uniqueness inference 2020-03-06 23:52:32 +01:00
Folkert
455ab1da16 re-add larger stack size helper
it's needed for uniqueness inference of AStar. We should really optimize variable usage though...
2020-03-06 23:51:14 +01:00
Folkert
edcda78e9d remove dbg! 2020-03-06 15:26:55 +01:00
Folkert
9d18924d1f add AStar.roc again 2020-03-06 14:07:38 +01:00
Folkert
639a56b59c fix ordering issue in canonicalize test 2020-03-06 14:07:24 +01:00
Folkert
7b1ae75860 fix issues after merge 2020-03-06 13:59:46 +01:00
Folkert
c760180195 add tests 2020-03-06 13:49:04 +01:00
Folkert
fefac9580e expose rigids introduced by builtins
they aren't used yet, because their names can 'leak'. Not sure what the best way forward is here
2020-03-06 13:48:52 +01:00
Folkert
b9b2f70673 add AStar test 2020-03-06 13:46:58 +01:00
Folkert
4d061bd932 add builtins required for AStar 2020-03-06 13:46:58 +01:00
Folkert
de8d1f81d1 fix typo in Tag unification 2020-03-06 13:46:58 +01:00
Folkert
12a819e762 extract tags from the ext variable
turns out this is always needed. I also removed the explicit check for an empty tag union: there could still be tags in the ext even if the union itself seems empty.
seems weird to optimize for the empty case because it'll be very rare in practice
2020-03-06 13:45:59 +01:00
Richard Feldman
c3fcfd65cb Move reporting into its own crate 2020-03-06 02:06:18 -05:00
Richard Feldman
3b26a982f0 Move pretty_print_types into types crate 2020-03-06 02:01:05 -05:00
Richard Feldman
45bda2e0c7 Move unique_builtins into builtins crate 2020-03-06 01:47:04 -05:00
Richard Feldman
cc92ca7e7c Move solve and unify into their own crates 2020-03-06 01:43:50 -05:00
Richard Feldman
908e485fca Move constrain and its deps into their own crates 2020-03-06 01:43:39 -05:00