Ayaz Hafiz
33b1b8236a
Break up SolveEnv
2023-07-12 13:53:51 -05:00
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