Commit graph

6636 commits

Author SHA1 Message Date
Ayaz Hafiz
15eef74a83
Shove more into a common env 2023-07-12 13:53:51 -05:00
Ayaz Hafiz
f8e377a055
Break up solve/solve into smaller modules 2023-07-12 13:53:50 -05:00
Ayaz Hafiz
44c4797d9a
Parameterize program solving on a FunctionKind
This new flag determines whether we should introduce a new kind to
represent lambda sets, or whether lambdas should be erased. The latter
is not yet implemented.
2023-07-12 13:53:50 -05:00
Ayaz Hafiz
60c98ea5d5
Stray clippy ignore 2023-07-12 13:53:50 -05:00
Folkert de Vries
ac25eef443
Merge pull request #5657 from roc-lang/drop-specialize-tail-recursive
use explicit stack to prevent stack overflow in drop specialization
2023-07-12 19:04:28 +02:00
Folkert
a50f013fce
cleanup after review 2023-07-12 17:55:21 +02:00
Richard Feldman
1d5c5b25ec
Merge remote-tracking branch 'origin/main' into linux64 2023-07-11 11:33:31 -04:00
Richard Feldman
19fc7775c7
Merge pull request #5644 from roc-lang/aarch64-code-model-fix
aarch64 linux error fix
2023-07-11 11:22:57 -04:00
Anton-4
b92bc4922e
segfault codemodel workaround 2023-07-11 16:18:22 +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
Richard Feldman
b2ce9d1cc6
Merge pull request #5481 from wontem/fix_pizza
Fix desugar step for pizza operator
2023-07-10 09:46:35 -04:00
Folkert
6a19009acf
32-bit float mov instruction 2023-07-09 15:47:29 +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
Anton-4
03af6749ed
fmt 2023-07-05 19:39:20 +02:00
Anton-4
781fba8f73
aarch64 linux error fix
This fixes the error relocation R_AARCH64_MOVW_UABS_G0_NC cannot be used against local symbol
2023-07-05 19:34:00 +02:00
Kiryl Dziamura
6265aee033
Merge branch 'main' into fix_pizza 2023-07-04 15:31:57 +02:00
Kiryl Dziamura
1bb3c3d1dd
Make has have 4 identation spaces 2023-07-04 11:24:40 +02:00
Kiryl Dziamura
c90c399751
Test closure definition with parens around 2023-07-04 10:24:09 +02:00
Kiryl Dziamura
3ccb6114b2
Unwrap expr in loop 2023-07-04 10:16:21 +02:00
Kiryl Dziamura
29592ddb9b
Drop parens during body canonicalization 2023-07-04 10:16:21 +02:00
Kiryl Dziamura
6031c0cc9f
Fix desugar step for pizza operator 2023-07-04 10:16:20 +02:00
Joshua Warner
654248ad47
Allow spaces before and after the colon in the packages header section
Fixes #4902
2023-07-03 15:46:50 -07: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
Ayaz
cde3615ec2
Merge pull request #5627 from roc-lang/cleanup-file-rs
Extract some modules out of file.rs
2023-06-29 17:49:41 -05:00
Ayaz Hafiz
a5e1558a6e
Do not drop uninhabited captures from lambda sets
Previously, we would drop uninhabited captures from lambda sets' runtime
representations, which meant sets like

```
[L1 {a: Str}, L2 {a: []}]
```

had runtime representation

```
{Str}
```

rather than

```
Union({Str}, {[]})
```

if we drop unreachable lambdas from the representation, then the
reachable lambdas are somewhat more efficient to compile (as there are
less material tag options), but the compiler complexity increases
because we must represent voided capture sets in the lambda set.

Even if a lambda has voided captures, we must specialize it, because
failing to do so opens us up to losing relevant specializations needed
later on. See 2f7020aa31 for a
previous occurence of that.

As such, simply keep voided layouts in place during lambda set
compilation. The optimizer should elide them anyway.
2023-06-29 17:32:50 -05:00
Ayaz Hafiz
e27a06849d
Unwrap rec pointers when getting lambda set 2023-06-29 14:51:29 -05:00
Folkert
0308e02ba9
update some logic and comments 2023-06-29 18:40:27 +02:00
Folkert
b29e612a4d
refactor 2023-06-29 18:40:26 +02:00
Folkert
f27cb83a02
remove Reuse 2023-06-29 18:40:26 +02:00
Folkert
1daf975391
use Tag instead of Reuse constructor 2023-06-29 18:40:26 +02:00
Folkert
463f739c06
add reuse info to normal Tag ir constructor 2023-06-29 18:40:26 +02:00
Anton-4
c4b0a2ec29
Merge pull request #5620 from roc-lang/dict-set
Add some missing Dict and Set functions
2023-06-29 12:06:49 +02:00
Richard Feldman
40f2dd7030
Extract some modules out of file.rs 2023-06-28 22:35:59 -04:00
Richard Feldman
0ade2a85d2
Merge pull request #5622 from roc-lang/reset-reuse-free
free or reuse unconditionally when value is unique
2023-06-28 09:58:10 -04:00
Richard Feldman
f12b378249
cargo uitest 2023-06-27 16:20:27 -04:00
Folkert de Vries
fa721d9b29
Merge pull request #5600 from roc-lang/compiler-rt-cleanup
Compiler-rt cleanup macos
2023-06-27 21:12:55 +02:00
Folkert
48e6ef79a4
we no longer care where a tag layout stores the tag id 2023-06-27 20:55:28 +02:00
Richard Feldman
437fb7e46c
Update mono tests 2023-06-27 14:53:48 -04:00
Folkert
e95d093461
in dev/wasm backends, always clear tag id bits from a reset pointer 2023-06-27 20:50:43 +02:00
Folkert
8c02cc4ef0
only clear tag id in reset when needed 2023-06-27 20:25:32 +02:00
Folkert
7e380d9533
update mono tests 2023-06-27 19:39:26 +02:00
Folkert
f04295863d
reuse free'ing logic 2023-06-27 19:37:22 +02:00