Commit graph

222 commits

Author SHA1 Message Date
Ayaz Hafiz
c2a0b878d3
Clippy 2022-08-31 14:16:43 -05:00
Ayaz Hafiz
22a4a4dfbc
Relay metadata back when using cached result 2022-08-31 14:16:43 -05:00
Ayaz Hafiz
7b8e1e1d53
Even more inline aggression 2022-08-31 14:16:43 -05:00
Ayaz Hafiz
c53719eb95
Debug non-reused recursive structures 2022-08-31 14:16:43 -05:00
Ayaz Hafiz
e24cdb8272
Be far more aggressive about cache inlining 2022-08-31 14:16:43 -05:00
Ayaz Hafiz
a64d9d97c5
Do not reuse cached entries for recursive structures that are being reconstructed 2022-08-31 14:16:43 -05:00
Ayaz Hafiz
caf4a80542
Clippy 2022-08-31 14:16:42 -05:00
Ayaz Hafiz
3ce4c6c77d
Typo 2022-08-31 14:16:42 -05:00
Ayaz Hafiz
3856ea6199
Implement a cache policy - don't cache recursive pointers without a recursive layout 2022-08-31 14:16:42 -05:00
Ayaz Hafiz
eb5ec2bd98
Don't account for recursive unions in non-recursive layout gen 2022-08-31 14:16:42 -05:00
Ayaz Hafiz
d757701426
First pass at layout caching 2022-08-31 14:16:42 -05:00
Ayaz Hafiz
8b0f7dc82f
Propagate layout_cache throughout Env in generating layout
Sets up actually using the LayoutCache to get cached layouts.
2022-08-31 14:16:42 -05:00
Folkert
d93d42da8c
make chasing an ext return a custom type 2022-08-30 00:51:24 +02:00
Folkert de Vries
acb71d6007
Merge pull request #3835 from roc-lang/ext-vars-in-derivers
Support bound and unbound extension variables in deriving
2022-08-30 00:34:50 +02:00
Ayaz Hafiz
3b2e3d515f
Include var in lambda set size traces 2022-08-23 15:42:01 -05:00
Ayaz Hafiz
b3f8ead89d
Add tracing of lambda set sizes in mono layout 2022-08-23 15:20:39 -05:00
Ayaz Hafiz
a8bd529664
Support derivers for tag unions with ext vars 2022-08-23 10:41:06 -05:00
Ayaz Hafiz
0606086eb6
Compare values with runtime representation 2022-08-19 22:16:41 -05:00
Ayaz Hafiz
64fc60f55f
Make lambda set set private 2022-08-19 22:16:41 -05:00
Ayaz Hafiz
a93735473a
Describe how a enum lambda set should be switched in the representation 2022-08-19 22:16:40 -05:00
Ayaz Hafiz
d4a79780b3
Determine whether to extend lambda set arg to call args by checking call options 2022-08-19 22:16:40 -05:00
Ayaz Hafiz
62dde549e6
Determine whether lambda set is represented as an arg 2022-08-19 22:16:40 -05:00
Ayaz Hafiz
fc4979e2ce
Add ClosureCallOptions enum to describe how to switch calling lambda 2022-08-19 22:16:40 -05:00
Ayaz Hafiz
8d01e81aa7
Use tag union/recursive tag union layout function for lambda sets 2022-08-19 22:16:39 -05:00
Richard Feldman
97e2900bf5
s/rtfeldman/roc-lang/g in links to GitHub repos 2022-08-12 15:24:09 -04:00
Folkert de Vries
0798f787c5
Merge pull request #3736 from rtfeldman/i3687
Creation of a record whose type has an optional value is an error
2022-08-11 15:51:41 +02:00
Ayaz Hafiz
81bb889e93
Add RigidOptional record field variant 2022-08-10 20:24:18 -07:00
Ayaz Hafiz
ee188b8e85
use layout_from_recursive_union to generate lambda set recursive layouts 2022-08-09 16:45:35 -07:00
Ayaz Hafiz
021cc6e506
Support non-nullable-unwrapped recursive lambda sets 2022-08-09 15:17:16 -07:00
Ayaz Hafiz
1a09f3e0e6
Make sure checking captures layouts chases recursion pointers 2022-08-09 14:57:59 -07:00
Ayaz Hafiz
ba2768c9b0
Build member layouts for recursive lambda sets 2022-08-09 14:44:09 -07:00
Ayaz Hafiz
549b00d327
Handle recursive variables in building lambda set representations 2022-08-09 14:11:02 -07:00
Folkert
546b702740
nullable wrapped tags 2022-08-06 14:40:00 +02:00
Richard Feldman
cc790a2773
fixup! Rename bindgen_rs to rust_glue 2022-07-24 11:54:40 -04:00
Folkert
c09cb4e3ea
fix stack size of empty tag union 2022-07-23 23:10:56 +02:00
Folkert
48e0938e8b
fix merge conflict 2022-07-23 15:46:41 +02:00
Folkert
93c331e1aa
Merge remote-tracking branch 'origin/trunk' into tag-alignment 2022-07-23 14:27:06 +02:00
Folkert
d54428571f
fix layout test 2022-07-23 11:46:51 +02:00
Folkert
70fcb574dd
update layout helpers 2022-07-22 21:56:24 +02:00
Ayaz Hafiz
5ad04dcd2c
Emit runtime error when tag unions have an error type
Closes #3266
2022-07-22 15:46:09 -04:00
Folkert
6cabf11cbc
gen tests with new tag layout 2022-07-22 21:13:55 +02:00
Folkert
366429303c
add RocUnion 2022-07-22 21:13:53 +02:00
Folkert
22fea90cd6
fix implementation of UnionLayout::tag_id_offset 2022-07-22 21:13:52 +02:00
Folkert
3ca8dfa3ef
add UnionLayout::tag_id_offset 2022-07-22 21:13:51 +02:00
Folkert
f85d3243e9
fix implementation of UnionLayout::tag_id_offset 2022-07-22 13:12:44 +02:00
Folkert
9c2e6fca0a
add UnionLayout::tag_id_offset 2022-07-22 12:53:24 +02:00
Ayaz Hafiz
2cdb951752
Compile higher-order low-level calls that take functions with no closure args
Closes #3571
2022-07-19 15:50:36 -04:00
Ayaz Hafiz
7df18f82a2
Mark var only for debug builds 2022-07-18 11:21:30 -04:00
Ayaz Hafiz
1440915395
Start generating void layouts for unbound type variables 2022-07-18 10:08:07 -04:00
Folkert
5763248b44
Merge remote-tracking branch 'origin/trunk' into assoc-list-dict 2022-07-13 20:44:28 +02:00