Ayaz Hafiz
46bc8647b4
Further push layout interner
2022-08-31 16:08:00 -05:00
Ayaz Hafiz
cea2fcafae
Fix dev/wasm compile errors
2022-08-31 15:42:02 -05:00
Ayaz Hafiz
3a130acc32
Fix mut in test
2022-08-31 15:01:01 -05:00
Ayaz Hafiz
c2d042eba2
Stray dbg
2022-08-31 14:53:52 -05:00
Ayaz Hafiz
95765bcb1e
Intern the lambda set representation
2022-08-31 14:50:56 -05:00
Ayaz Hafiz
1e49622b61
Clippy
2022-08-31 14:36:44 -05:00
Ayaz Hafiz
3b4b1838b8
Push layout interner further through Layout
2022-08-31 14:33:52 -05:00
Ayaz Hafiz
ed04c2040a
Push the layout interner through the backends
2022-08-31 14:33:52 -05:00
Ayaz Hafiz
c5466810a4
Add LayoutInterner to LayoutCache
...
Adds a thread-local interner of layouts to LayoutCache, and updates all
references appropriately.
This is a bit suboptimal for single-threaded workloads that will look at
creating layout caches again, like the REPL, but I think that's okay for
now - since the global interner will be uncontested for those workloads, it
should still be plenty fast to access the interner, even behind a lock.
2022-08-31 14:33:51 -05:00
Ayaz Hafiz
9d170be5c7
Add layout interner to load_internal
2022-08-31 14:33:51 -05:00
Ayaz Hafiz
14291c4ebc
Add an interner crate
2022-08-31 14:33:51 -05:00
Ayaz Hafiz
261cd75a71
Invalidate layout-cached variables correctly after merging
2022-08-31 14:33:50 -05:00
Ayaz Hafiz
7a7a4fa680
Use fnv hasher for layout cache
2022-08-31 14:26:16 -05:00
Ayaz Hafiz
c57fe24805
Use OptVariable rather than Option<Variable>
2022-08-31 14:23:50 -05:00
Ayaz Hafiz
9b1f3e6fde
Remove unused marker
2022-08-31 14:17:38 -05:00
Ayaz Hafiz
9fb9ca4cbc
return result, not cacheable
2022-08-31 14:17:15 -05:00
Ayaz Hafiz
7c215f9273
Remove stray dbgs
2022-08-31 14:17:15 -05:00
Ayaz Hafiz
ea2e5d171a
Invalidate layout-cached variables correctly after merging
2022-08-31 14:17:14 -05:00
Ayaz Hafiz
66e65714b9
Fix release errors
2022-08-31 14:16:44 -05:00
Ayaz Hafiz
d13b556295
Trace stats for layout cache
2022-08-31 14:16:43 -05:00
Ayaz Hafiz
c2a0b878d3
Clippy
2022-08-31 14:16:43 -05:00
Ayaz Hafiz
22a4a4dfbc
Relay metadata back when using cached result
2022-08-31 14:16:43 -05:00
Ayaz Hafiz
7b8e1e1d53
Even more inline aggression
2022-08-31 14:16:43 -05:00
Ayaz Hafiz
c53719eb95
Debug non-reused recursive structures
2022-08-31 14:16:43 -05:00
Ayaz Hafiz
e24cdb8272
Be far more aggressive about cache inlining
2022-08-31 14:16:43 -05:00
Ayaz Hafiz
a64d9d97c5
Do not reuse cached entries for recursive structures that are being reconstructed
2022-08-31 14:16:43 -05:00
Ayaz Hafiz
caf4a80542
Clippy
2022-08-31 14:16:42 -05:00
Ayaz Hafiz
3ce4c6c77d
Typo
2022-08-31 14:16:42 -05:00
Ayaz Hafiz
3856ea6199
Implement a cache policy - don't cache recursive pointers without a recursive layout
2022-08-31 14:16:42 -05:00
Ayaz Hafiz
eb5ec2bd98
Don't account for recursive unions in non-recursive layout gen
2022-08-31 14:16:42 -05:00
Ayaz Hafiz
d757701426
First pass at layout caching
2022-08-31 14:16:42 -05:00
Ayaz Hafiz
8b0f7dc82f
Propagate layout_cache throughout Env in generating layout
...
Sets up actually using the LayoutCache to get cached layouts.
2022-08-31 14:16:42 -05:00
Folkert de Vries
459faac064
Merge pull request #3941 from roc-lang/i3940
...
Check for unifiability of lambda sets without a subs snapshot
2022-08-31 18:22:57 +02:00
Ayaz Hafiz
593d609c2b
Check for unifiability of lambda sets without a subs snapshot
...
Gives nice performance wins, in particular avoiding clones of
unification tables, which can grow quite large.
Closes #3940
2022-08-31 08:56:45 -05:00
Folkert de Vries
7e31f67910
Merge pull request #3919 from roc-lang/surgical-no-break-caching
...
surgical linker: don't generate dynhost if it's unchanged
2022-08-31 09:04:13 +02:00
Anton-4
db519403a7
Merge pull request #3937 from roc-lang/wsl-nix
...
better nix wsl instructions
2022-08-30 19:18:11 +02:00
Folkert de Vries
9939c3e9ca
Merge pull request #3934 from roc-lang/dependabot/cargo/memmap2-0.5.7
...
Bump memmap2 from 0.5.5 to 0.5.7
2022-08-30 18:38:21 +02:00
Anton-4
4bfd892d7f
better nix wsl instructions
...
Signed-off-by: Anton-4 <17049058+Anton-4@users.noreply.github.com>
2022-08-30 17:04:33 +02:00
dependabot[bot]
048766cb3a
Bump memmap2 from 0.5.5 to 0.5.7
...
Bumps [memmap2](https://github.com/RazrFalcon/memmap2-rs ) from 0.5.5 to 0.5.7.
- [Release notes](https://github.com/RazrFalcon/memmap2-rs/releases )
- [Changelog](https://github.com/RazrFalcon/memmap2-rs/blob/master/CHANGELOG.md )
- [Commits](https://github.com/RazrFalcon/memmap2-rs/compare/v0.5.5...v0.5.7 )
---
updated-dependencies:
- dependency-name: memmap2
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-08-30 12:34:16 +00:00
Folkert de Vries
00772c3315
Merge pull request #3932 from roc-lang/dependabot/cargo/futures-0.3.24
...
Bump futures from 0.3.21 to 0.3.24
2022-08-30 14:32:54 +02:00
Folkert de Vries
5c7acf8f72
Merge pull request #3933 from roc-lang/dependabot/cargo/clap-3.2.18
...
Bump clap from 3.2.11 to 3.2.18
2022-08-30 14:32:41 +02:00
Folkert
3e78395237
changes after review
2022-08-30 12:32:19 +02:00
Folkert de Vries
92db0925a0
Merge pull request #3930 from roc-lang/building-from-source-nix
...
improve nix advice
2022-08-30 12:22:04 +02:00
Folkert de Vries
18b45069b3
Merge pull request #3862 from roc-lang/dependabot/cargo/bytemuck-1.12.1
...
Bump bytemuck from 1.11.0 to 1.12.1
2022-08-30 12:18:31 +02:00
dependabot[bot]
492eff3556
Bump clap from 3.2.11 to 3.2.18
...
Bumps [clap](https://github.com/clap-rs/clap ) from 3.2.11 to 3.2.18.
- [Release notes](https://github.com/clap-rs/clap/releases )
- [Changelog](https://github.com/clap-rs/clap/blob/v3.2.18/CHANGELOG.md )
- [Commits](https://github.com/clap-rs/clap/compare/v3.2.11...v3.2.18 )
---
updated-dependencies:
- dependency-name: clap
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-08-30 10:17:11 +00:00
dependabot[bot]
52b4aecb4c
Bump futures from 0.3.21 to 0.3.24
...
Bumps [futures](https://github.com/rust-lang/futures-rs ) from 0.3.21 to 0.3.24.
- [Release notes](https://github.com/rust-lang/futures-rs/releases )
- [Changelog](https://github.com/rust-lang/futures-rs/blob/master/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/futures-rs/compare/0.3.21...0.3.24 )
---
updated-dependencies:
- dependency-name: futures
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-08-30 10:15:46 +00:00
Folkert de Vries
3dbf6cc99b
Merge pull request #3859 from roc-lang/dependabot/cargo/insta-1.19.0
...
Bump insta from 1.18.2 to 1.19.0
2022-08-30 12:14:24 +02:00
Folkert de Vries
938c55ee1e
Merge pull request #3872 from raleng/fix_formatting_multiline_strings
...
Fix multiline string formatting
2022-08-30 11:31:53 +02:00
Folkert de Vries
30df869f9b
Merge pull request #3929 from roc-lang/chased-ext-custom-type
...
chased ext custom type
2022-08-30 11:10:57 +02:00
Anton-4
aefa55e313
improve nix advice
...
Signed-off-by: Anton-4 <17049058+Anton-4@users.noreply.github.com>
2022-08-30 11:04:05 +02:00