Commit graph

2553 commits

Author SHA1 Message Date
Ayaz
53a2d683e6
Merge pull request #4526 from roc-lang/reset-reuse-morphic-v2 2022-11-15 19:06:15 -06:00
Joshua Warner
36f0e9d4f5
Add test for multiline tuple with comments 2022-11-15 19:51:02 -05:00
Joshua Warner
d4bf946327
Assert formatting for parse tests 2022-11-15 19:47:28 -05:00
Ayaz Hafiz
2d57aa2170
Use thread-local buffer for occurs check seen variables
This materially improves performance for programs that are
recursion-heavy (as most Roc programs will likely be).

```
$ hyperfine '/tmp/roc-old check examples/cli/cli-platform/Arg.roc' '/tmp/roc-new check examples/cli/cli-platform/Arg.roc' --warmup 10
Benchmark 1: /tmp/roc-old check examples/cli/cli-platform/Arg.roc
  Time (mean ± σ):      53.8 ms ±   1.3 ms    [User: 87.3 ms, System: 10.8 ms]
  Range (min … max):    52.2 ms …  60.4 ms    51 runs

Benchmark 2: /tmp/roc-new check examples/cli/cli-platform/Arg.roc
  Time (mean ± σ):      45.0 ms ±   1.6 ms    [User: 59.4 ms, System: 11.3 ms]
  Range (min … max):    42.6 ms …  49.8 ms    60 runs

Summary
  '/tmp/roc-new check examples/cli/cli-platform/Arg.roc' ran
    1.20 ± 0.05 times faster than '/tmp/roc-old check examples/cli/cli-platform/Arg.roc'
```

The time spent in `occurs` during checking for `Arg` drops from 50% to 23%.
2022-11-15 17:52:12 -06:00
Ayaz Hafiz
ce160f28a2
Chase under aliases during occurs checking
Closes #4368
2022-11-15 16:22:01 -06:00
Brian Carroll
18195c8bd7
Fix resetting of vm stack blocks in CodeBuilder 2022-11-15 21:59:20 +00:00
Brian Carroll
dff6715a33
Remove some very outdated text from gen_wasm readme 2022-11-15 21:21:05 +00:00
Brian Carroll
2fa4c33b77
Merge branch 'main' of github.com:roc-lang/roc into wasm_module_crate 2022-11-15 21:16:25 +00:00
Folkert
5aa29c4e8b
morphic + reset/reuse 2022-11-15 22:06:09 +01:00
Ayaz
2cc9c32c37
Merge pull request #4523 from roc-lang/fix-alias-analysis-bugs
Collect deeply nested type names in alias analysis
2022-11-15 14:46:55 -06:00
Folkert de Vries
8a494d11b4
Merge pull request #4524 from roc-lang/fix-expects-macos
Fix inline expects on macos
2022-11-15 19:48:35 +01:00
Folkert
98b88fef16
fix a weird merge conflict 2022-11-15 19:46:36 +01:00
Folkert de Vries
5e5218fc7e
Merge pull request #4501 from roc-lang/types-soa-variable-opt
Emplace variables after converting SoA types, and remove types from constraining
2022-11-15 18:35:56 +01:00
Ayaz Hafiz
b6f53f22c3
Fix inline expects on macos
MacOS SIGUSR1 is signal 30, not 10 as it is on Linux.
At least on MacOS clang, we need the added headers to the c platform's
host to compile correctly.
2022-11-15 09:30:28 -06:00
Ayaz Hafiz
3723071c15
Collect deeply nested type names in alias analysis
Previously we only collected type names that appeared on the surface of
a type during alias analysis, but certain types that need to be named
(i.e. recursive types) may be observed only when we actually convert the IR
to the morphic IR. Make sure we collect those appropriately.

This is a cherry pick of the relevant changes in #4121.
2022-11-15 09:23:28 -06:00
Ayaz Hafiz
b30e8fc9b2
Remove Cells from Types 2022-11-15 09:00:16 -06:00
Folkert de Vries
de472015f6
Merge pull request #4505 from roc-lang/fix-web-repl-palette
Fix web REPL error formatting by routing the active Palette everywhere
2022-11-15 15:49:37 +01:00
Brian Carroll
04fcf89653
Fix compile errors in wasm tests 2022-11-15 09:40:55 +00:00
Brian Carroll
ddddb7d4f1
Fix import relocations in CodeBuilder. 2022-11-15 09:36:59 +00:00
Folkert
18574560d3
clippy 2022-11-15 10:02:57 +01:00
Ayaz Hafiz
f4fcb9f421
Fix Types types 2022-11-14 15:37:25 -06:00
Ayaz Hafiz
28f4b1ac56
Allow lints 2022-11-14 15:15:21 -06:00
Ayaz Hafiz
a52e9d605d
Remove unneeded type storage in constraining 2022-11-14 15:15:21 -06:00
Ayaz Hafiz
5564796927
SoA Types get variable emplacement (!)
We're now reaching the steady state we want to be closert to - when a
type is translated to a variable, emplace the variable we created for it
in the type index, so that types are never converted again!
2022-11-14 15:15:19 -06:00
Anton-4
29230921e6
windows fixes 2022-11-14 19:37:25 +01:00
Richard Feldman
2fd968e023
Fix Str.fromUtf8 type annotation 2022-11-14 12:02:33 -05:00
Richard Feldman
e6808b3252
Delete some redundant Str docs 2022-11-14 11:58:09 -05:00
Richard Feldman
4a1196a2bf
Use present tense more in Str docs 2022-11-14 11:38:33 -05:00
Richard Feldman
477dda3cc6
Use expect more in Str docs 2022-11-14 11:36:54 -05:00
Richard Feldman
3f8829e310
Linkify a list mention in Str docs 2022-11-14 11:34:24 -05:00
Richard Feldman
d814ed3c27
Link to Bool.true and Bool.false in docs 2022-11-14 11:33:32 -05:00
Richard Feldman
c23e23abf5
Fix some Str docs 2022-11-14 11:33:17 -05:00
Richard Feldman
d9774109f1
Merge remote-tracking branch 'origin/main' into str-docs 2022-11-14 11:30:31 -05:00
Richard Feldman
8a47ebd22e
Some more Str docs changes 2022-11-14 09:42:59 -05:00
Joshua Warner
1efd7260de
Add fmt test to make sure formatting works for all parser test cases 2022-11-14 08:20:35 -05:00
Brian Carroll
4dea82b2f5
Move code_builder from wasm_module to gen_wasm 2022-11-14 09:18:53 +00:00
Joshua Warner
ca5d084497
Implement tuple pattern parsing
Step 2 of N in implementing #4465
2022-11-13 16:11:57 -05:00
Richard Feldman
5f74e10d32
Merge pull request #4515 from roc-lang/workspace-dependencies
Workspace dependencies
2022-11-13 11:44:29 -08:00
Folkert
662bf1de99
more workspace dependencies 2022-11-13 16:10:02 +01:00
Folkert
2c23a106f2
make inkwell a workspace dependency 2022-11-13 15:00:48 +01:00
Folkert
031866799a
use inkwell's FunctionIterator 2022-11-13 14:51:24 +01:00
Brian Carroll
2e67bdf4d0
Move some wasm constants and macros 2022-11-13 09:03:26 +00:00
Brian Carroll
63d9187343
move wasm_module out of gen_wasm 2022-11-13 09:03:08 +00:00
Ayaz
b907f01f1f
Merge pull request #4507 from roc-lang/alias-analysis-rc-recursion
fix stack overflow in alias analysis
2022-11-12 12:54:06 -06:00
Joshua Warner
f4ce4bf983
Implement parsing for tuple accessor functions (.1, .2, etc)
Step 2 of N toward implementing #4465
2022-11-12 09:56:29 -05:00
Folkert
b6df9fe0dc
display the command nicely 2022-11-12 14:11:00 +01:00
Folkert
78b89cb894
handle RC along with lets in alias analysis to limit recursion depth 2022-11-12 13:42:10 +01:00
Brian Carroll
ed048c7c93
Fix more tests 2022-11-12 09:12:28 +00:00
Brian Carroll
894697b284
Build fixes 2022-11-12 08:46:18 +00:00
Ayaz Hafiz
bf1b688afb
Eliminate indirect reference 2022-11-11 21:16:27 -06:00