Commit graph

2701 commits

Author SHA1 Message Date
Richard Feldman
13e3146ac1
Type-check lots of step_field 2022-08-15 11:11:32 -05:00
Richard Feldman
1587bfbeb5
Add type checking for finalizer 2022-08-15 11:11:32 -05:00
Richard Feldman
93d07079e1
Add type info to decoder_initial_state 2022-08-15 11:11:32 -05:00
Richard Feldman
7e12bcff1d
Rename variant_var to tag_union_var 2022-08-15 11:11:32 -05:00
Ayaz Hafiz
c81eecd644
Print back records without trailing comma 2022-08-15 11:11:31 -05:00
Ayaz Hafiz
0fd467ca01
Print back record updates 2022-08-15 11:11:31 -05:00
Richard Feldman
6e008cf718
Finish building expressions for decoder_record 2022-08-15 11:11:31 -05:00
Richard Feldman
d3e96e9aa8
Expand record deriving decoding 2022-08-15 11:11:31 -05:00
Richard Feldman
0bff2c6674
Support converting Lowercase to Box<str> 2022-08-15 11:11:31 -05:00
Ayaz Hafiz
e1359c3025
Print back tags appropriately 2022-08-15 11:11:31 -05:00
Richard Feldman
bff2852639
Add an initial record decoding test 2022-08-15 11:11:31 -05:00
Richard Feldman
bf8c253b13
Add some basic record decoding 2022-08-15 11:11:31 -05:00
Richard Feldman
6af6006cdd
Give TagName a From<&str> 2022-08-15 11:11:30 -05:00
Ayaz Hafiz
aa5e1e6a27
Build derive keys for derivable records 2022-08-15 11:11:30 -05:00
Ayaz Hafiz
275391c065
Move check_ext_var to utility module 2022-08-15 11:11:30 -05:00
Ayaz Hafiz
583829eaf5
Pass stepper function explicitly, for now 2022-08-15 11:11:30 -05:00
Ayaz Hafiz
29793fac32
Begin working on JSON record decoding
And we've hit a borrow panic 😍
2022-08-15 11:11:29 -05:00
Richard Feldman
3f950059b8
Glue for dictionaries 2022-08-15 10:59:58 -04:00
Richard Feldman
ec0e80f5d2
Add basic roc_std Dict and Set implementations 2022-08-15 10:59:58 -04:00
Richard Feldman
97fef48864
Improve RocList's Debug implementation 2022-08-15 10:59:58 -04:00
Richard Feldman
52dc1fb723
Clean up some trailing spaces 2022-08-15 10:59:58 -04:00
Richard Feldman
5c4d6d3dfc
Add todos for glue for Dict and Set 2022-08-15 10:59:58 -04:00
dependabot[bot]
4c6ad52c47
Bump indoc from 1.0.6 to 1.0.7
Bumps [indoc](https://github.com/dtolnay/indoc) from 1.0.6 to 1.0.7.
- [Release notes](https://github.com/dtolnay/indoc/releases)
- [Commits](https://github.com/dtolnay/indoc/compare/1.0.6...1.0.7)

---
updated-dependencies:
- dependency-name: indoc
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-08-15 13:18:18 +00:00
dependabot[bot]
2dbb017403
Bump crossbeam from 0.8.1 to 0.8.2
Bumps [crossbeam](https://github.com/crossbeam-rs/crossbeam) from 0.8.1 to 0.8.2.
- [Release notes](https://github.com/crossbeam-rs/crossbeam/releases)
- [Changelog](https://github.com/crossbeam-rs/crossbeam/blob/master/CHANGELOG.md)
- [Commits](https://github.com/crossbeam-rs/crossbeam/compare/crossbeam-0.8.1...crossbeam-0.8.2)

---
updated-dependencies:
- dependency-name: crossbeam
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-08-15 13:16:53 +00:00
Ayaz
0d96f4fc7d
Merge pull request #3806 from roc-lang/dependabot/cargo/encode_unicode-1.0.0
Bump encode_unicode from 0.3.6 to 1.0.0
2022-08-15 08:16:49 -05:00
Ayaz
a6cdd3355f
Merge pull request #3807 from roc-lang/dependabot/cargo/dircpy-0.3.12
Bump dircpy from 0.3.10 to 0.3.12
2022-08-15 08:16:21 -05:00
dependabot[bot]
cd3e2c8d36
Bump hashbrown from 0.12.2 to 0.12.3
Bumps [hashbrown](https://github.com/rust-lang/hashbrown) from 0.12.2 to 0.12.3.
- [Release notes](https://github.com/rust-lang/hashbrown/releases)
- [Changelog](https://github.com/rust-lang/hashbrown/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rust-lang/hashbrown/compare/v0.12.2...v0.12.3)

---
updated-dependencies:
- dependency-name: hashbrown
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-08-15 05:30:58 +00:00
dependabot[bot]
7d174089ae
Bump dircpy from 0.3.10 to 0.3.12
Bumps [dircpy](https://github.com/woelper/dircpy) from 0.3.10 to 0.3.12.
- [Release notes](https://github.com/woelper/dircpy/releases)
- [Commits](https://github.com/woelper/dircpy/commits)

---
updated-dependencies:
- dependency-name: dircpy
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-08-15 05:30:48 +00:00
dependabot[bot]
be82551719
Bump encode_unicode from 0.3.6 to 1.0.0
Bumps [encode_unicode](https://github.com/tormol/encode_unicode) from 0.3.6 to 1.0.0.
- [Release notes](https://github.com/tormol/encode_unicode/releases)
- [Changelog](https://github.com/tormol/encode_unicode/blob/master/RELEASES.md)
- [Commits](https://github.com/tormol/encode_unicode/compare/v0.3.6...v1.0.0)

---
updated-dependencies:
- dependency-name: encode_unicode
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-08-15 05:30:40 +00:00
Ayaz
b2a8693316
Merge pull request #3787 from roc-lang/dependabot/cargo/wasm-bindgen-futures-0.4.32
Bump wasm-bindgen-futures from 0.4.31 to 0.4.32
2022-08-14 10:30:42 -05:00
Ayaz
010a650633
Merge pull request #3789 from roc-lang/dependabot/cargo/serial_test-0.9.0
Bump serial_test from 0.8.0 to 0.9.0
2022-08-14 10:30:16 -05:00
Ayaz
8e8fd063c0
Merge pull request #3790 from roc-lang/dependabot/cargo/bytemuck-1.11.0
Bump bytemuck from 1.10.0 to 1.11.0
2022-08-14 10:29:14 -05:00
Folkert de Vries
f2a6310137
Merge pull request #3735 from roc-lang/turn-on-abilities-wasm-tests
Turn abilities tests for wasm dev and wasm LLVM back on
2022-08-14 16:18:48 +02:00
Brian Carroll
fe0dad1136
Merge pull request #3772 from RossSmyth/Layouts
Fix some layout reprs
2022-08-14 10:50:48 +01:00
dependabot[bot]
936e80ff92
Bump bytemuck from 1.10.0 to 1.11.0
Bumps [bytemuck](https://github.com/Lokathor/bytemuck) from 1.10.0 to 1.11.0.
- [Release notes](https://github.com/Lokathor/bytemuck/releases)
- [Changelog](https://github.com/Lokathor/bytemuck/blob/main/changelog.md)
- [Commits](https://github.com/Lokathor/bytemuck/compare/v1.10.0...v1.11.0)

---
updated-dependencies:
- dependency-name: bytemuck
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-08-14 09:18:21 +00:00
dependabot[bot]
a43ee0dfe2
Bump serial_test from 0.8.0 to 0.9.0
Bumps [serial_test](https://github.com/palfrey/serial_test) from 0.8.0 to 0.9.0.
- [Release notes](https://github.com/palfrey/serial_test/releases)
- [Commits](https://github.com/palfrey/serial_test/compare/v0.8.0...v0.9.0)

---
updated-dependencies:
- dependency-name: serial_test
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-08-14 09:18:07 +00:00
dependabot[bot]
cd0a26c2c2
Bump wasm-bindgen-futures from 0.4.31 to 0.4.32
Bumps [wasm-bindgen-futures](https://github.com/rustwasm/wasm-bindgen) from 0.4.31 to 0.4.32.
- [Release notes](https://github.com/rustwasm/wasm-bindgen/releases)
- [Changelog](https://github.com/rustwasm/wasm-bindgen/blob/main/CHANGELOG.md)
- [Commits](https://github.com/rustwasm/wasm-bindgen/commits)

---
updated-dependencies:
- dependency-name: wasm-bindgen-futures
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-08-14 09:17:19 +00:00
Ayaz
38a7b6cef0
Merge pull request #3782 from roc-lang/dependabot/cargo/nonempty-0.8.0
Bump nonempty from 0.7.0 to 0.8.0
2022-08-13 13:36:44 -07:00
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
dd011893c9
Merge pull request #3779 from roc-lang/dependabot/cargo/pulldown-cmark-0.9.2
Bump pulldown-cmark from 0.9.1 to 0.9.2
2022-08-13 13:36:09 -07:00
Ayaz
931b7da296
Merge pull request #3744 from roc-lang/i2894
Transient captures in closures, and captures between mutually recursive defs
2022-08-13 12:48:20 -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