Ayaz
a7c415dc35
Merge pull request #4940 from joshuawarner32/tuple-solve
...
Initial implementation of tuples in type checking
2023-01-23 16:25:35 -06:00
Folkert de Vries
0b1ee3faeb
Merge pull request #4931 from thehabbos007/list-with-capacity
...
gen_dev: x86 Add `List.withCapacity` implementation
2023-01-23 23:00:35 +01:00
Joshua Warner
303e5bceb3
Fix tuple accessor type printing
2023-01-22 13:22:39 -08:00
Joshua Warner
de828416bf
Initial implementation of tuples in type checking
...
This leaves in place a bunch of TODOs and likely many bugs - notably, I haven't tested codegen/layout at all here.
2023-01-22 12:40:44 -08:00
Ayaz
25f1d8d54f
Merge pull request #4942 from JTeeuwissen/typo
...
fixed typo
2023-01-22 13:52:04 -06:00
J.Teeuwissen
b8f9684a01
fixed typo
2023-01-22 15:31:02 +01:00
J.Teeuwissen
28c18aa211
values_mut
2023-01-22 15:28:36 +01:00
Ayaz Hafiz
f6da8275ec
Record changed variables if any nested variable has changed
...
When we unify variables in mono, we must invalidate the sections of the
layout cache reached by those variables. Previously we did this by
recording changed variables as those that were `merge`d. However this is
not enough; we must also record all the parent types they came from. The
reason is we may have something like
```
Alias (Foo, a) ~ Alias (Bar, U8)
```
where we will merge `a = U8` but we do not merge the aliases.
Closes #4919
2023-01-21 12:37:21 -06:00
Folkert
3f72bc7222
clippy
2023-01-21 15:58:33 +01:00
Folkert
8442be824b
List.reserve: load spare from symbol, don't use a local
2023-01-21 15:57:10 +01:00
Ahmad Sattar
312997f1c6
Add List.withCapacity
implementation for x86
...
Uses the zig builtin `listWithCapacity`
2023-01-21 15:57:10 +01:00
Richard Feldman
d57cb50425
Merge pull request #4909 from roc-lang/list-concat-check-capacity
...
use capacity instead of length in list deinit
2023-01-20 18:21:17 -05:00
Folkert de Vries
04449c3a0c
Merge pull request #4910 from roc-lang/weakening-6
...
Add some regression tests for problems weakening solves
2023-01-21 00:14:49 +01:00
Folkert
4e5b106f98
use capacity instead of length in list deinit
2023-01-20 21:44:41 +01:00
Ayaz
c85df2ef48
Merge pull request #4908 from roc-lang/str-trim-capacity
...
fix memory leak in string trimming
2023-01-20 13:18:44 -06:00
Ayaz
78fc30484e
Merge pull request #4903 from joshuawarner32/fix-nested_backpassing_no_newline_before
...
Fix formatting of backpassing in a nested def with no newline
2023-01-19 22:55:03 -06:00
Ahmad Sattar
be445f6f11
Enable more List.len
tests for gen-dev
2023-01-20 00:45:38 +01:00
Folkert de Vries
810e05cd9a
Merge pull request #4922 from thehabbos007/asa/numgt
...
gen_dev: fix signed/unsigned `less than` and add signed/unsigned `greater than`
2023-01-19 20:49:06 +01:00
Folkert
165d4b3450
fix memory leak in string trimming
2023-01-19 14:35:38 +01:00
Ahmad Sattar
bbd4c9886c
Add NumSubWrap as a NumSub copy
2023-01-19 09:19:20 +01:00
Ayaz Hafiz
52063b2df2
Add test to regression-test over-specialization as in #4717
2023-01-18 18:11:59 -06:00
Ayaz Hafiz
9a4e4f25c2
Add regression tests for #4772
...
Closes #4772
2023-01-18 18:11:57 -06:00
Ahmad Sattar
6670a5d205
Add greater than
comparison
2023-01-18 20:26:45 +01:00
Ahmad Sattar
3683e9d436
Fix up less than
comparison
2023-01-18 20:26:45 +01:00
Ayaz Hafiz
59eb980fb2
Fix gen tests
2023-01-18 10:14:19 -06:00
Ayaz Hafiz
e6ab8dcf60
Fix mono test
2023-01-18 10:06:14 -06:00
Ayaz
ed7123ed5b
Merge pull request #4887 from roc-lang/weakening-5
...
Finish weakening let-bindings
2023-01-17 12:47:12 -06:00
Ayaz
c5788e62c6
Merge branch 'main' into tag-union-ext
...
Signed-off-by: Ayaz <20735482+ayazhafiz@users.noreply.github.com>
2023-01-16 16:32:02 -06:00
Ayaz Hafiz
ff625397ed
Fix wasm sizeof
2023-01-16 14:26:50 -06:00
Ayaz Hafiz
1c8cef2547
Update mono
2023-01-16 12:46:40 -06:00
Ayaz Hafiz
ec8c6bdfc5
Add gen tests for #4734
...
Closes #4734
2023-01-16 12:45:09 -06:00
Ayaz Hafiz
011c2ffd47
Add mono tests for function-specialization information preserved in lambda sets
2023-01-16 12:45:08 -06:00
Ayaz Hafiz
3109b2b00f
Store args/return layout in the lambda set specialization layout
2023-01-16 12:45:08 -06:00
Ayaz Hafiz
237bb6bcd5
Use env when constructing lambda sets rather than clearing their envs
2023-01-16 12:45:08 -06:00
Ayaz Hafiz
81d2d2923d
Remove lambda set recursion var as appropriate after construction
2023-01-16 12:45:08 -06:00
Ayaz Hafiz
8dc2a5daa7
Store args, return type on lambda set
2023-01-16 12:45:07 -06:00
Joshua Warner
d876abb04b
Fix formatting of backpassing in a nested def with no newline
...
Fixes #4338
2023-01-16 09:31:08 -08:00
Ayaz Hafiz
56d14b8b32
Fix load tests
2023-01-16 11:17:59 -06:00
Ayaz Hafiz
20d0d62af7
Allow extending Openness constraints when doing specializations
2023-01-16 10:54:39 -06:00
Ayaz Hafiz
1d75934659
Don't match empty tag union in openness constraint
2023-01-16 10:54:39 -06:00
Ayaz Hafiz
f08a8aa8c7
Fix release build
2023-01-16 10:54:39 -06:00
Ayaz Hafiz
91d61424ad
Lints
2023-01-16 10:54:39 -06:00
Ayaz Hafiz
2f74d0b1b9
Do not permit inferred-open-in-output-position extension variables to grow
...
Closes #4852
Closes #4845
2023-01-16 10:54:38 -06:00
Ayaz Hafiz
c9460ecf3f
Rename IsImplicitOpennessVar
2023-01-16 10:52:23 -06:00
Ayaz Hafiz
5fceb9ceb7
Push implicit openness vars through
2023-01-16 10:52:23 -06:00
Ayaz Hafiz
96b2b7a0c5
Fix comment
2023-01-16 10:52:23 -06:00
Ayaz Hafiz
a47841d426
Generalize tag openness extension variables
2023-01-16 10:52:23 -06:00
Ayaz Hafiz
281b71cf94
Unification of Any and Openness tag extensions
2023-01-16 10:52:23 -06:00
Ayaz Hafiz
1c93727822
Add a notion of "openness" tag extensions suitable only for size-polymorphism
2023-01-16 10:52:23 -06:00
Ayaz Hafiz
5f5d6a42d1
Add debug assertion for shape of tag union extension variables
...
When we have a tag union type, outside of special cases in the middle of
unification, its extension type should either be (1) the closed tag
union or (2) a flex/rigid var. This adds an assertion for that.
2023-01-16 10:52:23 -06:00