Ayaz Hafiz
0706615d29
Decision tree compilation of suffixed list patterns
2022-11-01 15:22:31 -05:00
Ayaz Hafiz
ae71c7efe2
Decision tree compilation of list patterns
2022-11-01 15:22:31 -05:00
Ayaz
da1d937277
Merge pull request #4352 from roc-lang/i4349
...
Support monomorphic captures of body-polymorphic expressions in closures
2022-11-01 15:21:30 -05:00
Ayaz Hafiz
b0a8b85de3
Canonicalization of list patterns
2022-10-31 17:04:47 -05:00
Ayaz Hafiz
5164994fb5
Do not attempt to lookup functions in expect
s
...
Functions are not useful to print in expect results, because they are
only printed opaquely as `<function>`. Moreover, their transformation to
closure sets during mono can be extremely lossy, up to and including the
elision of symbols for function closure symbols. As such, simply do not
attempt to lookup or print functions referenced in expects.
Closes #4389
2022-10-24 10:28:56 -05:00
Ayaz Hafiz
b51816d5ef
Improve documentation and structure of UseDepth
2022-10-23 20:44:04 -05:00
Ayaz Hafiz
ee8e718cc1
Support monomorphic captures of polymorphic expressions in closures
...
Closes #4349
2022-10-23 20:44:03 -05:00
Ayaz Hafiz
d26e9c81e0
Resolve ability specializations looked up in expects
2022-10-17 17:56:48 -05:00
Ayaz Hafiz
8aee32830a
Add symbols' localized type variable to the AST
2022-10-17 17:35:48 -05:00
Ayaz Hafiz
53514141f6
Layer thunk assignment over def body instead of returning immediately
2022-10-12 10:36:57 -05:00
Ayaz Hafiz
a68c63f1d1
Correctly destructure patterns that are assigned to a thunk'd value
...
Closes #4309
2022-10-12 09:23:48 -05:00
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
Anton-4
f2ee8a441d
rust 1.63, clippy
2022-09-10 20:12:34 +02: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