Ayaz Hafiz
4031770836
Mark branch patterns degenerate when they don't bind symbols body needs
2022-07-22 17:26:45 -04:00
Folkert
c2206f3e4d
substitute into expect
2022-07-21 10:42:56 -04:00
Folkert de Vries
ca38ec4eb5
Merge pull request #3541 from rtfeldman/rocasync
...
Changes to get roc-async working
2022-07-18 19:22:07 +02:00
Ayaz Hafiz
3c4a55f4c1
Fix layout of ZATs when they end up with a closure argument
2022-07-14 16:16:17 -04:00
Ayaz Hafiz
70c77596a3
Apply unnecessary lambda set arg correction
2022-07-14 12:38:53 -04:00
Ayaz Hafiz
20c2c308fa
Include ZATs in host exposed aliases
2022-07-14 12:26:11 -04:00
Folkert de Vries
1b1b63aad0
Merge branch 'trunk' into assoc-list-dict
2022-07-14 16:47:50 +02:00
Folkert
5763248b44
Merge remote-tracking branch 'origin/trunk' into assoc-list-dict
2022-07-13 20:44:28 +02:00
Ayaz Hafiz
fe63140047
Clippy
2022-07-13 08:47:40 -04:00
Ayaz Hafiz
76f7843c93
Enforce some simplifications
2022-07-13 08:47:40 -04:00
Ayaz Hafiz
6413000579
Factor unloaded derived symbols check
2022-07-13 08:47:40 -04:00
Ayaz Hafiz
a7b06fd7cf
Remove various dbgs
2022-07-13 08:47:39 -04:00
Ayaz Hafiz
df9bcb1a0c
Use Derived_synth for synthesizing implementations, and Derived_gen for codegen
2022-07-13 08:47:39 -04:00
Ayaz Hafiz
987ebfa9d3
Move expr copying to can
2022-07-13 08:47:39 -04:00
Ayaz Hafiz
63adb901b4
A couple hacks to get deriving of records working.. but it's working?
2022-07-13 08:47:38 -04:00
Ayaz Hafiz
91e3bfbd01
Fix tests
2022-07-13 08:47:38 -04:00
Ayaz Hafiz
9826253785
Deriving string encoders works
2022-07-13 08:47:37 -04:00
Ayaz Hafiz
445d922f3b
Compact lambda sets with structural derived ability impls
2022-07-13 08:47:37 -04:00
Ayaz Hafiz
d8bee6cd18
Perfom derives from global derives module, not just symbol table
2022-07-13 08:47:36 -04:00
Ayaz Hafiz
bee7d15aae
Comment out debugs for now
2022-07-13 08:47:35 -04:00
Ayaz Hafiz
16e64263f6
Correctly monomorphize all derived methods
2022-07-13 08:47:34 -04:00
Ayaz Hafiz
e8fb186d79
Load derived member impls into derived module for mono
2022-07-13 08:47:34 -04:00
Folkert
8e21fdcb04
remove dict/set lowlevels
2022-07-13 11:24:07 +02:00
Ayaz Hafiz
f1a6ea6a40
Typecheck and compile opaque wrapping functions
...
This enables you to write something like
```
A := U8
List.map [1, 2, 3] @A
```
which will be compiled as if it was `List.map [1, 2, 3] \x -> @A x`.
Closes #3499
2022-07-12 18:38:03 -04:00
Folkert de Vries
d889f1fda9
Merge pull request #3498 from rtfeldman/no-line-numbers-in-runtime-error-function
...
Remove compiler-file/line-dependent runtime error messages
2022-07-12 23:04:06 +02:00
Folkert de Vries
846bab7425
Merge pull request #3493 from rtfeldman/deep-copy-var-in-body
...
mono copy: deep copy all vars in an expr
2022-07-12 23:02:27 +02:00
Ayaz Hafiz
94142bf474
Remove compiler-file/line-dependent runtime error messages
...
This will help avoid the diff changes we've been running into often when
changes to mono line numbers change test results.
2022-07-12 15:17:19 -04:00
Ayaz Hafiz
c915707c83
Get rid of arenas
2022-07-12 10:07:34 -04:00
Folkert
1863bcbd8c
stop using line numbers in unresolved type var messages
2022-07-10 22:17:35 +02:00
Folkert
a671b57f83
consider expect in inc/dec
2022-07-10 20:56:56 +02:00
Folkert
57acbb5f28
clippy
2022-07-10 14:06:28 +02:00
Folkert
76a2496b9e
error earlier on empty lambda set
2022-07-10 11:23:13 +02:00
Ayaz
7b308d9efe
Merge pull request #3404 from rtfeldman/ambient-lset-specialization
...
The ambient lambda set specialization algorithm
2022-07-09 17:23:27 -05:00
Ayaz Hafiz
532b2ff403
Support specialization of naked tag unions at toplevel
2022-07-08 17:50:52 -04:00
Ayaz Hafiz
808d19b01b
Correctly compile unified recursive tag unions
2022-07-08 17:35:14 -04:00
Ayaz
22f02984d3
Merge branch 'trunk' into 3378
2022-07-06 20:37:32 -05:00
Ayaz Hafiz
5d74a376af
Attach ambient function vars to lambda sets
2022-07-06 13:04:29 -04:00
ayazhafiz
ab75de39d6
Fix gen for runtime error functions
2022-07-06 12:49:02 -04:00
ayazhafiz
937b73b797
Compile lambdas that have an empty lambda set
...
Closes #3224
This should also fix a number of other issues often observed when a
lambda is never actually called, but we fail to codegen because it has
an empty lambda set.
2022-07-06 12:49:01 -04:00
Ayaz Hafiz
f940cc18c1
Consolidate calling specialized proc
2022-07-06 09:12:02 -04:00
Ayaz Hafiz
91b89675ef
Remove commented code
2022-07-06 09:11:01 -04:00
Ayaz Hafiz
b868e0e469
Handle recursive calls to capturing function
2022-07-06 09:10:31 -04:00
Ayaz Hafiz
4ef8ceef9e
Clippy
2022-07-05 22:16:53 -04:00
Ayaz Hafiz
34d2d81ca6
Remove stray dbg
2022-07-05 22:16:53 -04:00
Ayaz Hafiz
2492fba9f9
Gen tests for promoted num layouts
2022-07-05 22:16:52 -04:00
Ayaz Hafiz
ba450367ca
Choose i128/u128 num layouts when necessary
2022-07-05 22:16:52 -04:00
Ayaz Hafiz
c154a337a9
Get deep range numbers working
2022-07-05 22:16:52 -04:00
Brian Carroll
eb2ac4c82b
module: delete LowLevel enum variant ListMapWithIndex
2022-07-04 15:07:12 +01:00
Ayaz Hafiz
ba1a3fa62e
Remove unnecessary import
2022-07-03 16:49:09 -04:00
Ayaz Hafiz
2726a3506f
Remove tag_name from Expr::Tag
2022-07-03 16:48:51 -04:00