Commit graph

1161 commits

Author SHA1 Message Date
Folkert
557c3987e0
make it work 2023-07-24 21:24:33 +02:00
Folkert
43adf0635e
freshen annotations 2023-07-24 21:24:33 +02:00
Ayaz
6225b80e01
Merge pull request #5668 from roc-lang/checkmate
Add "checkmate", a tool for the solver
2023-07-19 12:38:20 -05:00
Richard Feldman
aafefb12b2
Fix lambda set numbering issue 2023-07-17 14:09:17 -04:00
Ayaz Hafiz
d7a30966c1
Add explicit casts
For some reason these can no longer be inferred.
2023-07-17 09:50:37 -05:00
Ayaz
b36ad76cdd
Merge pull request #5576 from roc-lang/spike-erasure
Implement function erasure
2023-07-17 03:27:29 -05:00
Folkert
48fa4f7a8e
When possible, prefer NonNullableUnwrapped over NullableWrapped
e.g. in the scenario of `[ A Str, B, C, D ]`, rather than having one tag be nullable, we want
to store the tag id in the pointer. This generally saves 8 bytes for
every allocation, and prevents an allocations for all tags except A.
2023-07-16 20:06:46 +02:00
Ayaz Hafiz
00730be6fb
Fix doc comments 2023-07-12 17:16:12 -05:00
Ayaz Hafiz
937e042c8f
Fixed erased with nullable unwrapped union 2023-07-12 16:01:44 -05:00
Ayaz Hafiz
5e9a06e537
Boxed helpers 2023-07-12 15:55:25 -05:00
Ayaz Hafiz
a8d821bf87
Remove all box references 2023-07-12 15:50:00 -05:00
Ayaz Hafiz
8d9c6d09b9
Load as a stack pointer 2023-07-12 14:46:11 -05:00
Ayaz Hafiz
fde75d5432
Correct calling branches 2023-07-12 14:45:03 -05:00
Ayaz Hafiz
fcb907b0c9
Don't pass empty captures 2023-07-12 14:45:02 -05:00
Ayaz Hafiz
13c45151a4
Mono IR checker: check wanted function pointer layout 2023-07-12 14:45:01 -05:00
Ayaz Hafiz
13d1232f7d
Erased functions do not take a func spec 2023-07-12 14:44:17 -05:00
Ayaz Hafiz
cd64134b0a
Allow direct packing, unpacking of erased types 2023-07-12 14:43:25 -05:00
Ayaz Hafiz
1d1db83cc7
Add needed file 2023-07-12 14:43:24 -05:00
Ayaz Hafiz
dc56a0ffef
First pass update erasure IR 2023-07-12 14:43:24 -05:00
Ayaz Hafiz
7ea85e44d2
Add Layout::Erased 2023-07-12 14:43:24 -05:00
Ayaz Hafiz
283b9d53d6
Add Expr::ErasedLoad 2023-07-12 14:42:46 -05:00
Ayaz Hafiz
2c838aa5c2
Add mono Expr::ErasedMake 2023-07-12 14:40:16 -05:00
Ayaz Hafiz
3e3d3cc7f3
Type fixes 2023-07-12 14:21:28 -05:00
Ayaz Hafiz
b2d3b52bd5
First compile of erased lambdas 2023-07-12 14:21:28 -05:00
Ayaz Hafiz
cf74f849e1
Unpack erased captures 2023-07-12 14:21:28 -05:00
Ayaz Hafiz
fbad6bcb90
First pass at specialized erased 2023-07-12 14:21:28 -05:00
Ayaz Hafiz
2cb2e37fd7
Specialize erased 2023-07-12 14:21:28 -05:00
Ayaz Hafiz
d17d8c72ad
Exercise building erased function 2023-07-12 14:21:28 -05:00
Ayaz Hafiz
a1eb641bb6
how to build an erased fn 2023-07-12 14:21:27 -05:00
Ayaz Hafiz
cf30f02e01
Expr::FunctionPointer 2023-07-12 14:21:27 -05:00
Ayaz Hafiz
55fa8098d3
add a todo impl 2023-07-12 14:17:58 -05:00
Ayaz Hafiz
63db2c0eea
Add erased layout 2023-07-12 14:17:57 -05:00
Ayaz Hafiz
510a421748
Call erased functions 2023-07-12 14:14:25 -05:00
Ayaz Hafiz
a6bb3ab03c
Get started on calling erased functions 2023-07-12 14:14:25 -05:00
Ayaz Hafiz
6312d75ee0
Add FunctionPointer layout 2023-07-12 13:59:50 -05:00
Ayaz Hafiz
a9e3f967a8
First pass at erased function layouts 2023-07-12 13:57:19 -05:00
Ayaz Hafiz
6e5a308557
Content variant ErasedLambda 2023-07-12 13:57:17 -05:00
Ayaz Hafiz
c459757062
Thread simple model of "ErasedLambdas" through proc layouts
But none of these paths are yet exercised.
2023-07-12 13:53:52 -05:00
Folkert
a50f013fce
cleanup after review 2023-07-12 17:55:21 +02:00
Folkert
da9482b7fa
inline pattern match 2023-07-10 21:17:58 +02:00
Folkert
8c666edbec
use explicit stack to prevent stack overflow in drop specialization 2023-07-10 21:14:30 +02:00
Folkert
2d616d1fe9
manual clippy fixes 2023-07-10 18:27:10 +02:00
Folkert
ef39bad7c6
auto clippy fixes 2023-07-10 18:27:08 +02:00
Anton-4
72c85efc83
switch to rust 1.67 2023-07-10 18:25:52 +02:00
Folkert
bb97c384bb
preserve semantics in the glue generation 2023-07-09 15:47:28 +02:00
Folkert
6d2d65bb1e
remove Boxed layout 2023-07-09 15:47:28 +02:00
Folkert
d64930c17f
remove box and unbox expressions 2023-07-09 15:47:28 +02:00
Folkert
a9813aeae7
use a NonNullableUnwrapped union for Box 2023-07-09 15:47:27 +02:00
Ayaz
f2e013a4e0
Merge pull request #5628 from roc-lang/i5617
Do not drop uninhabited captures from lambda sets
2023-07-01 13:15:14 -05:00
Folkert
3b18494ddd use Ptr instead of Boxed in the code-gen-help 2023-06-30 15:57:33 +02:00