Commit graph

12 commits

Author SHA1 Message Date
Richard Feldman
b54a37e4b0
Merge remote-tracking branch 'origin/main' into walk-with-index 2023-08-17 11:54:34 -04:00
Richard Feldman
d63144489a
Merge remote-tracking branch 'origin/main' into walk-with-index 2023-08-17 00:08:50 -04:00
Anton-4
63b7fef60f
Merge + update mono tests 2023-08-16 19:21:34 +02:00
Richard Feldman
7768264868
Update mono tests again 2023-08-15 02:39:50 -04:00
Richard Feldman
af357a5cbd
Update mono tests 2023-08-15 02:30:21 -04:00
Richard Feldman
fd866a5a64
Update mono tests 2023-08-14 20:17:43 -04:00
Richard Feldman
08e7b52ddc
Update mono tests 2023-08-10 23:34:23 -04:00
Folkert
4c17caa90d
update mono tests 2023-08-08 18:39:54 +02:00
Folkert
99fcbd8d5f
update mono test 2023-07-25 09:52:54 +02:00
Ayaz Hafiz
fea41000e5
Update mono tests 2023-07-12 17:00:55 -05:00
Folkert
bb97c384bb
preserve semantics in the glue generation 2023-07-09 15:47:28 +02: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