Commit graph

100 commits

Author SHA1 Message Date
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
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
669d69c4cf
Clippy 2022-07-12 11:29:11 -04:00
Ayaz Hafiz
e626bac931
Be extremely aggressive about inlining 2022-07-12 11:00:05 -04:00
Ayaz Hafiz
0274691813
Preserve uls_of_var when copying types 2022-07-12 10:58:21 -04:00
Ayaz Hafiz
4707b11727
Clone tag and field names across subs, add a test 2022-07-12 10:47:44 -04:00
Ayaz Hafiz
c915707c83
Get rid of arenas 2022-07-12 10:07:34 -04:00
Ayaz Hafiz
46fdda333f
Use a trait to do copies 2022-07-12 10:02:11 -04:00
Ayaz Hafiz
c3b2e9aa97
Add copy expr test 2022-07-12 09:30:51 -04:00
Ayaz Hafiz
7031d26299
mono copy: copy all vars in deep expr 2022-07-12 09:18:43 -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
Folkert de Vries
7a2c2f6d1d
Merge pull request #3460 from rtfeldman/i3456
Correctly compile polymorphic recursive tag unions
2022-07-09 12:44:21 +02: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
Folkert
e8530eaca5
improve lowlevel unwrapping 2022-07-08 22:13:13 +02:00
Folkert
c0ace1ee0b
update mono tests 2022-07-08 16:19:12 +02:00
Folkert
24c6b92846
update mono tests 2022-07-08 16:16:42 +02:00
Folkert de Vries
43f9b0d0fa
Merge pull request #3389 from rtfeldman/3378
Call recursive function with captures, and consolidate proc calling
2022-07-08 16:14:33 +02:00
Folkert
41768bfa97
new approach for defining our builtins 2022-07-08 13:46:34 +02:00
Folkert
56c9787e8f
List.appendUnsafe and List.reserve 2022-07-07 22:40:28 +02:00
Folkert de Vries
0412578e49
Merge pull request #3433 from rtfeldman/url-appending-fixes
url appending fixes
2022-07-07 11:51:40 +02:00
Ayaz
22f02984d3
Merge branch 'trunk' into 3378 2022-07-06 20:37:32 -05:00
Ayaz Hafiz
89e356b5eb
Ambient lambda set unification means we can have nice things again 2022-07-06 13:08:59 -04: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
Folkert
c54d824950
for now, substring takes a borrowed argument 2022-07-06 17:59:49 +02:00
Richard Feldman
7365da6f69
Merge pull request #3370 from rtfeldman/list-unreachable
List unreachable
2022-07-06 10:45:50 -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
26148b8b12
Recover default layouts for floats 2022-07-05 22:16:53 -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