Folkert
828ded8ebc
fix get scalar unsafe for windows
2022-09-04 18:57:56 +02:00
Folkert
a52a148424
fix llvm issues in all windows num tests
2022-09-04 18:42:59 +02:00
Folkert
6404f308f9
add windows llvm check mode (hacky)
2022-09-04 18:30:48 +02:00
Folkert
08b25cb935
fix dec calling convention for windows
2022-09-04 18:26:04 +02:00
Folkert
d99fdb3831
change the cutoff for when a pointer is used on windows
2022-09-03 12:42:13 +02:00
Folkert
8175e3a9e2
Merge remote-tracking branch 'origin/main' into windows-c-calling-convention
2022-09-03 12:14:17 +02:00
Folkert de Vries
93ace1d6f3
Merge pull request #3945 from roc-lang/i3942
...
Adds lambda set layout interning
2022-09-02 21:08:30 +02:00
Folkert de Vries
8cd308aa04
Merge pull request #3946 from roc-lang/faster-occurs-check
...
Attempt occurs checks for recursive lambda sets only during monomorphization
2022-09-02 20:51:51 +02:00
Folkert
f0f720a86a
pass by pointer more on windows
2022-09-01 20:12:55 +02:00
kilianv
273907319d
Add tests for Str.splitLast
...
There was only one test, which didn't cover the bug I fixed in Str.splitLast. I
added the tests to make sure the bug will be caught in the future.
2022-09-01 17:03:26 +02:00
kilianv
97f49bf940
Add expect tests for Str.splitLast
2022-09-01 16:59:11 +02:00
kilianv
d89253779a
Add expect tests for Str.splitFirst
2022-09-01 16:57:19 +02:00
kilianv
23e430d91d
Fix splitFirst bug
...
The reason was an of-by-one error.
2022-09-01 16:48:04 +02:00
kilianv
80c8c80082
Add tests to splitFirst function
...
Bugfix is coming up. The extra tests should capture the fix. Right now
not all tests pass.
2022-09-01 16:43:13 +02:00
Brian Carroll
bfc00a4b94
Merge pull request #3920 from roc-lang/static-site-gen
...
Static site generator example
2022-09-01 07:12:12 +01:00
Ayaz Hafiz
086f7a7e9d
Attempt occurs checks for recursive lambda sets only during monomorphization
2022-08-31 16:45:57 -05:00
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
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
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