Ayaz Hafiz
cf8409dfaa
Remove private tag variants
2022-04-25 11:38:54 -04:00
Ayaz Hafiz
b796b68df7
Remove dead code
2022-04-25 11:00:50 -04:00
Ayaz Hafiz
b6383f81ee
Numbers are opaques
2022-04-25 10:59:42 -04:00
Ayaz Hafiz
5d1dd81e93
Reuse symbol when opaque type wraps a known symbol
...
Opaques decay immediately into their argument during codegen, so we need
to handle something that's effectively variable aliasing correctly.
This bug popped up while migrating all current private tags to opaques.
2022-04-23 14:37:52 -04:00
Ayaz Hafiz
3eb7824c7a
Typos
2022-04-22 17:57:02 -04:00
Ayaz Hafiz
5dfe44c72d
Render nullable wrapped tag unions that pass through aliases
2022-04-22 17:57:01 -04:00
Ayaz Hafiz
b61481c6e7
Try another strategy - fix recursion vars during typechecking
2022-04-22 17:57:01 -04:00
Ayaz Hafiz
02d5cd7885
Deal with recursive pointers that pass through non-recursive layouts
2022-04-22 17:57:01 -04:00
Folkert de Vries
2cc8e95198
Merge pull request #2901 from rtfeldman/vec-map
...
VecMap
2022-04-21 09:16:38 +02:00
Ayaz Hafiz
0387eeed23
Make sure we're generating correct code with has annotations
2022-04-20 17:45:41 -04:00
Folkert
8b144c446d
remove PartialEq for a bunch of types that we should not compare
2022-04-20 16:58:30 +02:00
Brian Carroll
f8156ffd53
Merge pull request #2834 from rtfeldman/wasm-list-map-n
...
Wasm List.mapN
2022-04-20 14:47:04 +01:00
Folkert
8692938fb3
Merge branch 'vecset-references' into builtins-in-roc
2022-04-17 19:39:03 +02:00
Folkert
e112f6ad2c
Merge remote-tracking branch 'origin/trunk' into builtins-in-roc
2022-04-16 21:01:51 +02:00
Folkert
1568a57de0
turn panic into runtime error
2022-04-16 19:42:08 +02:00
Ayaz Hafiz
e6b0d9a820
Fix typo
2022-04-15 10:54:35 -04:00
Ayaz Hafiz
95783e03a1
Handle aliasing of ability members
2022-04-15 10:21:35 -04:00
Ayaz Hafiz
b79b351136
The first ability... compiles
2022-04-14 16:50:41 -04:00
Ayaz Hafiz
eb81c68bcb
Pass abilities store to mono
2022-04-14 16:20:55 -04:00
Richard Feldman
4ea4aa4708
Merge pull request #2838 from rtfeldman/abilities-typechecking
...
Inference and checking for abilities
2022-04-13 22:03:44 -04:00
Richard Feldman
75ed66b4a8
Merge pull request #2843 from rtfeldman/i/2812
...
Propogate errors in record fields to layout error
2022-04-13 21:56:53 -04:00
Ayaz Hafiz
41dd7d0b4d
Specialize bodies with body var, not function var
...
I'm surprised code generation worked so well without this, before...
Closes #2818
2022-04-13 18:35:50 -04:00
Ayaz Hafiz
6343382af5
Propogate errors in record fields to layout error
...
Closes #2812
Unfortunately we don't have a great way to test this without scaffolding
a host since this happens while processing a variable exposed to the
host. In tests the root cause just yields a type error first and codegen
works, just bails during the runtime. But this works.
2022-04-13 16:23:13 -04:00
Ayaz Hafiz
15a040ec87
Basic type inference and solving for abilities
...
Note that is still pretty limited. We only permit opaque types to
implement abilities, abilities cannot have type arguments, and also no
other functions may depend on abilities
2022-04-12 16:18:07 -04:00
Brian Carroll
7b96e953ba
wasm: Get List.map2 working
2022-04-11 14:36:31 +01:00
Folkert
6ef443d1b0
Merge remote-tracking branch 'origin/trunk' into builtins-in-roc
2022-04-10 19:14:00 +02:00
Folkert de Vries
7675e0232b
Merge pull request #2819 from rtfeldman/zero-arg-tag
...
Drop unused `arguments` field from `ZeroArgumentTag`
2022-04-10 15:18:03 +02:00
Ayaz Hafiz
a102a7497e
Support box/unbox for types that are typically only on the stack
...
Closes #2786
2022-04-09 16:22:01 -04:00
Folkert
166c949c3b
clippy
2022-04-09 12:24:12 +02:00
Folkert de Vries
5dc8c852e9
Merge pull request #2815 from rtfeldman/i/2811
...
Specialize polymorphic values before binding to pattern
2022-04-08 21:44:11 +02:00
Ayaz
69ed0b755a
Merge pull request #2804 from rtfeldman/abilities-canonicalization
...
Basic canonicalization, error checking for abilities
2022-04-08 12:00:23 -04:00
Richard Feldman
b777b88e1c
Drop unused arguments
field from ZeroArgumentTag
2022-04-08 11:53:16 -04:00
Folkert
1d0f9e9192
Merge remote-tracking branch 'origin/trunk' into builtins-in-roc
2022-04-08 15:47:11 +02:00
Ayaz
33a5fc65ce
Update comment
2022-04-08 08:50:31 -04:00
ayazhafiz
94a5cd3559
Improve shadow errors
2022-04-07 22:38:20 -04:00
Ayaz Hafiz
73bfff699f
Handle symbols that shadow ability member definitions
...
Just add the shadowing symbol for now. We'll handle checking that a
specialization's type matches the member's type definition in a later
pass, during typechecking.
2022-04-07 17:21:17 -04:00
Richard Feldman
cd00a98636
Add toF32/64 and checked versions
2022-04-07 16:13:57 -04:00
Ayaz Hafiz
a12e40a310
Specialize polymorphic values before binding to pattern
...
Closes #2811
2022-04-07 14:03:29 -04:00
Brian Carroll
2b74e55240
Merge branch 'trunk' of github.com:rtfeldman/roc into wasm-higher-order-calls
2022-04-07 09:03:34 +01:00
Brian Carroll
51789f38c2
wasm: generate RC inc for higher order builtins
2022-04-05 00:02:05 +01:00
Folkert
68536e4026
Merge remote-tracking branch 'origin/trunk' into list-str-capacity
2022-04-04 19:55:04 +02:00
Folkert
0dd2cec09a
update with new clippy lints
2022-03-31 19:34:51 +02:00
Folkert
61aeaefc76
a start with 32-bit linux support
2022-03-30 23:55:34 +02:00
Folkert
5a3be2adf4
give correct stack size without alignment for tags
2022-03-30 19:18:16 +02:00
Folkert
fd209f90ff
fix bug where incorrect stack size is given
2022-03-30 17:25:28 +02:00
Folkert
c73c01aa34
Merge remote-tracking branch 'origin/trunk' into list-str-capacity
2022-03-30 14:07:17 +02:00
Folkert
71c11784a0
step 1: Deriv works and has no valgrind problems
2022-03-26 17:56:56 +01:00
Folkert
269d31b9ae
Revert "void type is not passed by-reference"
...
This reverts commit 0d89b9f37f
.
2022-03-26 13:43:28 +01:00
Folkert
0d89b9f37f
void type is not passed by-reference
2022-03-26 13:13:25 +01:00
Folkert
7b221d6115
Merge branch 'simplify-identids' into builtins-in-roc
2022-03-22 22:25:55 +01:00