Richard Feldman
d26f6f600f
Merge pull request #3065 from rtfeldman/bindgen-recursive-tag-unions
...
Bindgen unwrapped pointer recursive tag unions
2022-05-14 16:09:40 -04:00
Folkert
c161140aec
Merge remote-tracking branch 'origin/trunk' into more-tyck
2022-05-14 14:48:54 +02:00
Richard Feldman
de14c9b979
Correctly unwrap cons list payloads in bindgen
2022-05-13 23:55:13 -04:00
Richard Feldman
c9f06a9172
Ad some docs to tag union layouts
2022-05-13 13:06:33 -04:00
Richard Feldman
e6efbdfe7c
Merge pull request #3055 from rtfeldman/bindgen-multi-tag-unions
...
Bindgen tag unions with payloads
2022-05-12 17:56:53 -04:00
Ayaz Hafiz
710a10a29c
Check for invalid cycles after type solving recursive defs
...
Disallow cycles that pass through a non-function value. Since we
evaluate eagerly, having one such cycle means there is at least one path
in the program that (likely) has unbounded recursion. Of course we can't
be certain (halting problem), but it's very likely, and avoids stuff
like #1926 . Also, mono (as it's done today) won't work if things in a
cycle aren't functions.
Closes #1926
2022-05-11 14:57:01 -04:00
Ayaz Hafiz
9777886376
Fill out pattern traversals, add symbol discovery
2022-05-11 14:53:39 -04:00
Ayaz
d485869954
Merge pull request #3039 from rtfeldman/specializations-at-the-front
...
Opportunistically resolve specializations during solving
2022-05-11 13:42:19 -04:00
Richard Feldman
a380afd4dc
Merge remote-tracking branch 'origin/trunk' into bindgen-multi-tag-unions
2022-05-11 10:52:52 -04:00
Richard Feldman
8da0e219b9
Merge pull request #3049 from rtfeldman/clippy-for-tests
...
clippy --tests
2022-05-11 10:52:00 -04:00
Richard Feldman
b9c07aef27
Use internal_error over unreachable
2022-05-11 10:51:27 -04:00
Richard Feldman
5ff3bfbbf9
Expose the logic for choosing discriminant size
2022-05-11 10:47:56 -04:00
Richard Feldman
dbc6302681
Fix a bunch of errors from clippy --tests
2022-05-11 10:47:55 -04:00
Ayaz Hafiz
49c61a6f4a
Fix ignored field
2022-05-11 08:56:04 -04:00
Ayaz Hafiz
afb1f826b1
Correct walking of even specialized symbols in mono
2022-05-11 08:53:16 -04:00
Ayaz Hafiz
da00c47102
Opportunistically resolve specializations during solving
2022-05-11 08:53:15 -04:00
Folkert de Vries
b2e045bf9a
Merge pull request #3042 from rtfeldman/specialization-under-let
...
Lift mono of let-bindings to separate function
2022-05-11 14:50:40 +02:00
Richard Feldman
fd40fed937
Fix a bunch of errors from clippy --tests
2022-05-10 15:21:48 -04:00
Richard Feldman
1649680fbd
Share sorting code between bindgen and code gen
2022-05-09 18:42:38 -04:00
Richard Feldman
3ce0fc59d4
Remove a continue
`
2022-05-09 18:42:37 -04:00
Richard Feldman
b174ea9ab0
Extract cmp_fields function
2022-05-09 18:42:37 -04:00
Richard Feldman
2f2230a9f3
Avoid an intermediate vector in some cases
2022-05-09 18:42:37 -04:00
Ayaz Hafiz
1521711abd
Lift it all the way up
2022-05-09 16:45:39 -04:00
Ayaz Hafiz
7c1a6037d4
Lift another branch
2022-05-09 16:39:06 -04:00
Ayaz Hafiz
a59739bf20
More lifting
2022-05-09 16:36:13 -04:00
Ayaz Hafiz
bc5dc17ce9
Dead code
2022-05-09 16:29:20 -04:00
Ayaz Hafiz
6b9b64274b
Lift translation of lets
2022-05-09 16:23:00 -04:00
Richard Feldman
df7df4ccf8
Merge branch 'trunk' into mfonism/rename-num-float-type-to-frac
2022-05-08 20:54:33 -04:00
Ayaz
3e7702df01
Merge pull request #2910 from rtfeldman/i/2880
...
Ability codegen for Encode/Decode
2022-05-08 19:10:45 -04:00
Richard Feldman
c7037db6d5
Merge pull request #3013 from rtfeldman/hostgen
...
Introduce bindgen CLI
2022-05-08 17:51:20 -04:00
ayazhafiz
f2d3865315
Fix can AST walk
2022-05-08 15:17:59 -04:00
Ayaz Hafiz
798c28fccd
Dryasdust was a popular word in 1860
2022-05-08 15:08:20 -04:00
Ayaz Hafiz
e31e89ac66
Mark and clear specializations
2022-05-08 15:08:20 -04:00
Ayaz Hafiz
da604e978e
Use SpecializationId to mark specializations
2022-05-08 15:08:19 -04:00
Ayaz Hafiz
4a623a48dc
Simpl decoder a bit
2022-05-08 15:08:19 -04:00
Ayaz Hafiz
e08b5fa91e
Specializer->Resolver
2022-05-08 15:08:18 -04:00
Ayaz Hafiz
1a53daa665
Remove ability todo in mono
2022-05-08 15:08:18 -04:00
Ayaz Hafiz
8bff2875b0
Account for ability specialization in reuse_symbol
2022-05-08 15:08:18 -04:00
Ayaz Hafiz
474c18ab83
Handle recursion
2022-05-08 15:08:17 -04:00
Ayaz Hafiz
53c8ec3a57
Correctly aliasing of ability members
2022-05-08 15:08:17 -04:00
Ayaz Hafiz
645c0f2738
Don't eagerly walk down let bindings to specialize an ability
2022-05-08 15:08:17 -04:00
Ayaz Hafiz
025d501cfd
Determine ability specializations before walking a body
2022-05-08 15:08:17 -04:00
Ayaz Hafiz
edee222763
Add AbilityMember can variant for resolving ability specializations
2022-05-08 15:08:16 -04:00
Ayaz Hafiz
c1b1f60630
Coupon cutting
2022-05-08 15:08:16 -04:00
Ayaz Hafiz
b5efd830e5
Solve and gen ability members that bind other able variables
2022-05-08 15:07:27 -04:00
Folkert
7be41d8c09
remove unused variables from let/letrec
2022-05-08 20:06:00 +02:00
Mfon Eti-mfon
9068c2414e
Rename float functions and vars
2022-05-08 18:42:12 +01:00
Mfon Eti-mfon
85c622b169
Update symbols definition
2022-05-08 15:54:34 +01:00
Folkert
529ec39aeb
remove ven_graph from mono dependencies
2022-05-08 12:32:24 +02:00
Folkert
8be6957e9b
fix merge conflict
2022-05-08 12:29:52 +02:00