Ayaz Hafiz
478d4a2d44
Support lambda sets with recursive pointers and their equivalence-checking
2023-01-25 17:57:49 -06:00
Ayaz Hafiz
fa47e82d72
Implement equivalence of lambda sets
2023-01-25 17:20:42 -06:00
Ayaz Hafiz
61b11c9882
Single-threaded layout interner should resolve recursive pointer
2023-01-25 17:19:39 -06:00
Ayaz Hafiz
44acb7e047
Update recursive layout tests
2023-01-25 17:19:14 -06:00
Ayaz Hafiz
0cd448eab4
Start ir-checking quicksort_help again
...
Closes #4694
2023-01-25 16:28:53 -06:00
Ayaz Hafiz
aab626bf3f
Remove resolve_recursive_layout
2023-01-25 16:21:05 -06:00
Ayaz Hafiz
7754cc553c
Turn the ir-checker back on
2023-01-25 16:18:47 -06:00
Ayaz Hafiz
c9afbce053
Add an up-to-isomorphism equivalence checker for layouts
2023-01-25 16:17:30 -06:00
Ayaz Hafiz
cb00619ce3
Return normalized representation of recursive union as the rec ptr
2023-01-25 15:16:48 -06:00
Ayaz Hafiz
01ef3ffd02
Disable ir-check for now
2023-01-25 15:16:37 -06:00
Ayaz Hafiz
741b1a1bd5
Always show one level of unions when printing layouts
2023-01-25 15:16:06 -06:00
Ayaz Hafiz
3382be6cb9
Chase recursive layouts as appropriate
2023-01-25 15:10:56 -06:00
Ayaz Hafiz
673ca9a02f
Clippy
2023-01-25 13:33:32 -06:00
Ayaz Hafiz
ae7c899e51
Lift up more layouts
2023-01-25 13:14:38 -06:00
Ayaz Hafiz
3c8b68d3bb
Lift up insertions of layouts
2023-01-25 13:12:38 -06:00
Ayaz Hafiz
d2e247ed6e
Remove unused var
2023-01-25 13:03:31 -06:00
Ayaz Hafiz
f451ba49f1
Toss out when-recursive from llvm backend
2023-01-25 12:48:06 -06:00
Ahmad Sattar
0adb38beca
Add List.append
implementation for generic64
2023-01-25 19:47:11 +01:00
Ahmad Sattar
9b525143cb
Add List.reserve
implementation for generic64
2023-01-25 19:46:54 +01:00
Ayaz Hafiz
a1ebfa30f8
Remove unused variable
2023-01-25 12:33:01 -06:00
Ayaz Hafiz
7159eeabcd
Toss out when-recursive in alias analysis
2023-01-25 12:30:32 -06:00
Folkert
3417a0e059
fix silent merge request wrt record accessors
2023-01-25 00:02:19 +01:00
Ayaz
ad84e02abf
Merge pull request #4950 from roc-lang/keep-recptr-index
...
Initial support for linking recursive pointer layouts back to their source layouts
2023-01-24 14:42:00 -06:00
Folkert de Vries
8e5efe67b4
Merge pull request #4912 from roc-lang/remove-polymorphic-expression-compilation
...
Rip out polymorphic expression compilation
2023-01-24 21:35:08 +01:00
Folkert de Vries
7aaf0f3822
Merge pull request #4916 from roc-lang/rust1_65
...
upgrade to rust 1.65 and clippy fixes
2023-01-24 14:14:10 +01:00
Brian Carroll
ac45fa2bba
Merge pull request #4683 from roc-lang/gen-wasm-shr-128
...
gen_wasm: Implement u128 right shift by delegating to compiler_rt
2023-01-24 00:36:27 +00:00
Ayaz Hafiz
7f284a753b
Lints
2023-01-23 17:09:05 -06:00
Ayaz Hafiz
8ad185fd1a
opaque pointers fit in a register in x86
2023-01-23 17:08:47 -06:00
Brian Carroll
5179057fc5
gen_wasm: implement NumIntCast for i128
2023-01-23 22:39:24 +00:00
Brian Carroll
a249e14ee5
builtins: restore nicer hash code for Dict
2023-01-23 22:39:24 +00:00
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
Ayaz Hafiz
efd7d71dc4
Use Layout::NAKED_RECURSIVE_PTR and update comments
2023-01-23 16:10:54 -06:00
Brian Carroll
28d6d000ec
gen_wasm: Implement u128 right shift by delegating to compiler_rt
2023-01-23 22:07:40 +00:00
Ayaz Hafiz
8edbd3b378
Eliminate uses of RECURSIVE_PTR directly
2023-01-23 16:04:55 -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
Ayaz Hafiz
37d9307fbf
Call insert_recursive for union layouts
2023-01-23 15:40:40 -06:00
Ayaz Hafiz
59144f6e29
Unused var
2023-01-23 14:37:49 -06:00
Ayaz Hafiz
695b2e6363
Fix a bug by not recording normalized layouts
2023-01-23 14:37:49 -06:00
Ayaz Hafiz
7169d0974d
Add support for interning normalized recursive layouts
2023-01-23 14:37:49 -06:00
Ayaz Hafiz
8750127111
Begin support for looping-back recursive pointers to their source layouts
2023-01-23 14:37:48 -06:00
Anton-4
6d115af11a
update tutorial basic-cli release
2023-01-23 20:11:32 +01:00
Anton-4
1f2b39a521
Merge branch 'main' of github.com:roc-lang/roc into rust1_65
2023-01-23 18:27:33 +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
Folkert de Vries
608ee9ebb5
Merge pull request #4918 from roc-lang/surgical-linker-cleanup
...
surgical linker: remove jump slot relocations and update static symbols
2023-01-22 11:52:03 +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
Ayaz Hafiz
d4e8fe81cb
Update mono tests
2023-01-21 12:37:10 -06:00