Ayaz Hafiz
619cd2f629
Infer ranged number for chars in patterns
2022-10-05 17:28:01 -05:00
Ayaz Hafiz
178b634266
Treat single quote literals as ranged numbers for inference purposes
2022-10-05 17:28:00 -05:00
Ayaz Hafiz
f2c30a699c
Remove stray dbg
2022-10-04 14:09:40 -05:00
Ayaz Hafiz
5b833e57b5
Support derivation of Hash for Str and List
2022-10-04 14:09:40 -05:00
Ayaz
211c297230
Merge pull request #4041 from KilianVounckx/opaque-bool
...
Opaque bool
2022-09-21 11:15:41 -05:00
Ayaz Hafiz
b3167ad49b
Clippy
2022-09-20 14:42:08 -05:00
Ayaz Hafiz
447e1492e1
Work around symbol specializations not getting captured
2022-09-20 14:42:08 -05:00
Ayaz Hafiz
b797e9c0c8
Admit non-trivial holes
2022-09-20 14:42:08 -05:00
Ayaz Hafiz
2f7020aa31
Eliminate voided branches only after resolving their bodies' specializations
2022-09-20 08:35:10 -05:00
Ayaz Hafiz
f41936d5e5
Unwrap layouts containing void layouts as newtypes
...
Addresses the attempt to do so in https://github.com/roc-lang/roc/pull/3465
Co-authored-by: Folkert <folkert@folkertdev.nl>
2022-09-19 16:50:49 -05:00
Folkert
639c1e5fa3
get rid of UnitWithArguments
2022-09-19 16:49:55 -05:00
Folkert de Vries
8bbeb34792
Merge pull request #3981 from roc-lang/use-copy-table
...
Cache variables sent to a module's external specializations in mono
2022-09-07 12:28:17 +02:00
Ayaz Hafiz
eebe5234f6
Correctly perform record updates that come from thunks
...
Closes #3908
2022-09-06 18:07:22 -05:00
Ayaz Hafiz
53e1551cd1
Move external specializations storage subs into its own struct
2022-09-06 14:33:41 -05:00
Ayaz Hafiz
882d589d5f
Basic caching of variables saved into storage subs
2022-09-06 14:11:03 -05:00
Ayaz Hafiz
95765bcb1e
Intern the lambda set representation
2022-08-31 14:50:56 -05:00
Ayaz Hafiz
1e49622b61
Clippy
2022-08-31 14:36:44 -05:00
Ayaz Hafiz
3b4b1838b8
Push layout interner further through Layout
2022-08-31 14:33:52 -05:00
Ayaz Hafiz
ed04c2040a
Push the layout interner through the backends
2022-08-31 14:33:52 -05:00
Ayaz Hafiz
261cd75a71
Invalidate layout-cached variables correctly after merging
2022-08-31 14:33:50 -05:00
Ayaz Hafiz
7c215f9273
Remove stray dbgs
2022-08-31 14:17:15 -05:00
Ayaz Hafiz
ea2e5d171a
Invalidate layout-cached variables correctly after merging
2022-08-31 14:17:14 -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
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 de Vries
c06e5cfa32
Merge pull request #3769 from roc-lang/expect-fx-codegen
...
expect fx codegen
2022-08-24 19:48:42 +02:00
Ayaz Hafiz
238464c505
Get rid of a redundant subs snapshot
2022-08-24 09:01:02 -05:00
Ayaz Hafiz
2afad0127f
Replace snapshot of subs/layout directly with "TypeState" snapshots
2022-08-24 08:53:21 -05:00
Ayaz Hafiz
e5034e7331
Add tracing for external specializations
2022-08-23 14:32:24 -05:00
Ayaz Hafiz
848facb386
Add roc_tracing crate and initial traces in mono
2022-08-23 12:47:41 -05:00
Folkert
a22e04361c
Merge remote-tracking branch 'origin/main' into expect-fx-codegen
2022-08-23 16:28:21 +02:00
Folkert
e9f66a6385
Merge remote-tracking branch 'origin/main' into i3696
2022-08-22 23:02:35 +02:00
Folkert de Vries
2b0bf7839e
Merge pull request #3819 from roc-lang/deep-record-decoding
...
Mono fixes for supporting deep record decoding deriving
2022-08-21 13:33:40 +02:00
Ayaz Hafiz
cc78d4d180
Start all make_specializations from the top, suspending not to FindSpecializations
2022-08-19 22:20:57 -05:00
Ayaz Hafiz
099fbf46eb
Suspend specialization of symbols that collide with an active specialization
...
It's possible to end up in a situation where you attempt to specialize a
symbol while it's being specialized for another type; see the examples
in the diff. In this case, we need to treat the later specialization as
suspended, and recover it later.
2022-08-19 22:20:57 -05:00
Ayaz Hafiz
0606086eb6
Compare values with runtime representation
2022-08-19 22:16:41 -05:00
Ayaz Hafiz
d8a8dff70d
Treat unwrapped capture sets as unwrapped directly
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
f5e3105b37
Use extend_argument_list to add lambda set arguments
2022-08-19 22:16:40 -05:00
Ayaz Hafiz
c003b2d007
Simplify ClosureInfo and enum lambda set switching, which never captures
2022-08-19 22:16:40 -05:00
Ayaz Hafiz
d6572ef3b7
Match over call options in determining whether to extend lambda set 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
0d763518f1
Make sure to push more symbols coming from Derived_synth to Derived_gen
2022-08-16 08:10:04 -05:00
Ayaz Hafiz
634e9a2b69
Remove dbgs
2022-08-15 11:11:35 -05:00
Ayaz Hafiz
d01c5c83b7
Check in gen tests that don't work yet
2022-08-15 11:11:33 -05:00
Richard Feldman
7e12bcff1d
Rename variant_var to tag_union_var
2022-08-15 11:11:32 -05:00
Ayaz Hafiz
7215acdbac
Ensure that field layouts passed to closure unwrapping are sorted
2022-08-13 10:25:18 -07:00
Ayaz Hafiz
9ffe6eb6dd
Print function argument layouts in pretty mode
2022-08-13 10:25:18 -07:00
Folkert
3aa4ebb02f
get expect-fx to actually run
2022-08-12 23:03:01 +02:00