Ayaz
11f0de21e1
Merge pull request #3781 from roc-lang/dependabot/cargo/insta-1.18.2
...
Bump insta from 1.15.0 to 1.18.2
2022-08-13 13:36:32 -07:00
Ayaz Hafiz
c0969e5ff8
Reuse allocations in fixing closures
2022-08-13 10:38:53 -07:00
Ayaz Hafiz
d19c9107b2
swap_remove rather than removing in place
2022-08-13 10:30:58 -07:00
Ayaz Hafiz
7215acdbac
Ensure that field layouts passed to closure unwrapping are sorted
2022-08-13 10:25:18 -07:00
Ayaz Hafiz
9ffe6eb6dd
Print function argument layouts in pretty mode
2022-08-13 10:25:18 -07:00
Ayaz Hafiz
991b99250c
Clippy
2022-08-13 10:25:18 -07:00
Ayaz Hafiz
6bcd682dde
Support captures between mutually recursive closures
2022-08-13 10:25:18 -07:00
Ayaz Hafiz
4b55416ca1
Add test for outer scope transient captures
2022-08-13 10:25:18 -07:00
Ayaz Hafiz
5ead673cfc
Add gen tests for transient closure captures
2022-08-13 10:25:18 -07:00
Ayaz Hafiz
e97ce32b88
Fixup transient closure captures during canonicalization
...
Closure captures can be transient, but previously, we did not handle
that correctly. For example, in
```
x = ""
inner = \{} -> x
outer = \{} -> inner {}
```
`outer` captures `inner`, but `inner` captures `x`, and in the body of
`outer`, we would not construct the closure data for `inner` correctly
before calling it.
There are a couple ways around this.
1. Update mono to do something when we are passed the captured
environment of a closure, rather than attempting to construct a
call-by-name's captured environment before callign it.
2. Fix-up closures during canonicalization to remove captured closures
that themselves capture, and replace them with their captures.
This patch does (2), since (1) is much more involved and is not likely
to bring a lot of wins. In general I think it's reasonable to expect
captured environments, even if transient, to be fairly shallow, so I
don't think this will produce very large closure environments.
Closes #2894
2022-08-13 10:25:17 -07:00
dependabot[bot]
7ab742dd1a
Bump insta from 1.15.0 to 1.18.2
...
Bumps [insta](https://github.com/mitsuhiko/insta ) from 1.15.0 to 1.18.2.
- [Release notes](https://github.com/mitsuhiko/insta/releases )
- [Changelog](https://github.com/mitsuhiko/insta/blob/master/CHANGELOG.md )
- [Commits](https://github.com/mitsuhiko/insta/compare/1.15.0...1.18.2 )
---
updated-dependencies:
- dependency-name: insta
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-08-13 16:49:28 +00:00
Richard Feldman
99a22d6bbd
Merge pull request #3747 from roc-lang/i2419
...
Add regression tests for #2419
2022-08-12 19:53:53 -04:00
Ayaz Hafiz
89457f9faf
Add Wasm32Result for Infallible
2022-08-12 15:42:20 -07:00
Ayaz Hafiz
aa26a0da44
Add regression tests for #2419
...
Closes #2419
2022-08-12 15:42:19 -07:00
dependabot[bot]
f0c83f730b
Bump im from 14.3.0 to 15.1.0 in /crates/compiler/parse/fuzz
...
Bumps [im](https://github.com/bodil/im-rs ) from 14.3.0 to 15.1.0.
- [Release notes](https://github.com/bodil/im-rs/releases )
- [Changelog](https://github.com/bodil/im-rs/blob/master/CHANGELOG.md )
- [Commits](https://github.com/bodil/im-rs/compare/v14.3.0...v15.1.0 )
---
updated-dependencies:
- dependency-name: im
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-08-12 21:09:40 +00:00
Richard Feldman
58c3575e44
Fix mono tests
2022-08-12 15:28:05 -04:00
Richard Feldman
7b2c1a7e64
s/trunk/main/g
2022-08-12 15:24:37 -04:00
Richard Feldman
97e2900bf5
s/rtfeldman/roc-lang/g in links to GitHub repos
2022-08-12 15:24:09 -04:00
Richard Feldman
641daab02c
Merge pull request #3754 from rtfeldman/avx512_valgrind_fix
...
valgrind fix for newer intel processors
2022-08-12 10:59:01 -04:00
Anton-4
72e60bceea
valgrind fix for newer intel processors
2022-08-12 12:06:31 +02:00
Anton-4
720f02372c
use most compatible bash shebang
2022-08-12 11:45:02 +02:00
Folkert de Vries
0798f787c5
Merge pull request #3736 from rtfeldman/i3687
...
Creation of a record whose type has an optional value is an error
2022-08-11 15:51:41 +02:00
Folkert
5b10ebeeb7
Merge remote-tracking branch 'origin/trunk' into i2453
2022-08-11 10:44:26 +02:00
Folkert de Vries
448c8ced53
Merge pull request #3749 from rtfeldman/i2165
...
Regression test for #2165
2022-08-11 10:23:45 +02:00
Folkert de Vries
ae0e90c8f3
Merge pull request #3738 from rtfeldman/i3444
...
Layout generation for recursive lambda sets
2022-08-11 10:22:07 +02:00
Ayaz Hafiz
a1445c25bd
Update solve test
2022-08-10 20:24:20 -07:00
Ayaz Hafiz
b3d4c8f09b
Parse explicit optional field types as rigid optionals
2022-08-10 20:24:19 -07:00
Ayaz Hafiz
b69051c90e
Print rigid optional types correctly
2022-08-10 20:24:19 -07:00
Ayaz Hafiz
b311dc4741
Remove stray dbg
2022-08-10 20:24:19 -07:00
Ayaz Hafiz
81bb889e93
Add RigidOptional record field variant
2022-08-10 20:24:18 -07:00
Ayaz Hafiz
d8c18cc898
Ignore argument
2022-08-10 20:23:17 -07:00
Ayaz Hafiz
10288d3430
Fix compile errors
2022-08-10 16:10:32 -07:00
Ayaz Hafiz
c423e3f5ce
Regression test for #2165
...
Closes #2165
2022-08-10 16:01:56 -07:00
Ayaz Hafiz
fdb79da5a8
Report anonymous functions as "this function" rather than symbol name
...
Closes #2453
Thanks for the assist @chris-packett
2022-08-10 15:26:52 -07:00
Ayaz Hafiz
d8e2ca7b1e
Add test for when conditional polymorphic expr becomes a float
...
Closes #2884
2022-08-10 13:20:07 -07:00
Richard Feldman
0105fa4c4a
Merge pull request #3733 from rtfeldman/expect-fx
...
Expect fx
2022-08-09 23:03:37 -04:00
Ayaz Hafiz
40c73b4138
Add more names
2022-08-09 18:13:25 -07:00
Ayaz Hafiz
bfd49299e0
Clippy
2022-08-09 17:45:52 -07:00
Ayaz Hafiz
ee188b8e85
use layout_from_recursive_union to generate lambda set recursive layouts
2022-08-09 16:45:35 -07:00
Ayaz Hafiz
4d5331557c
Add more tests for recursie lambda sets
2022-08-09 16:12:30 -07:00
Ayaz Hafiz
86c6d339c3
Choose merged closure var based on whether it's recursive or not
2022-08-09 16:08:24 -07:00
Ayaz Hafiz
3f1e11f920
Recursive vars in occurs check can happen anywhere in the chain
2022-08-09 16:07:59 -07:00
Ayaz Hafiz
f20d1ac59a
Typo
2022-08-09 15:30:28 -07:00
Ayaz Hafiz
021cc6e506
Support non-nullable-unwrapped recursive lambda sets
2022-08-09 15:17:16 -07:00
Ayaz Hafiz
c1a7e7893b
Simplify combine
2022-08-09 15:17:09 -07:00
Ayaz Hafiz
4bfac11624
Remove mono test in favor of gen tests
2022-08-09 14:58:57 -07:00
Ayaz Hafiz
1a09f3e0e6
Make sure checking captures layouts chases recursion pointers
2022-08-09 14:57:59 -07:00
Ayaz Hafiz
ba2768c9b0
Build member layouts for recursive lambda sets
2022-08-09 14:44:09 -07:00
Ayaz Hafiz
a4bb6879bc
Resolve recursive pointer lambda set layouts when unpacking captures
2022-08-09 14:43:36 -07:00
Ayaz Hafiz
549b00d327
Handle recursive variables in building lambda set representations
2022-08-09 14:11:02 -07:00