Commit Graph

3559 Commits

Author SHA1 Message Date
Richard Feldman
99f55d6ed6
Merge remote-tracking branch 'origin/main' into https-packages 2022-11-24 19:14:31 -05:00
Richard Feldman
2050f0ac2f
Merge pull request #4582 from roc-lang/simplify-cli-platform
Drop Program and third type param from Task from CLI platform
2022-11-24 17:57:07 -05:00
Richard Feldman
917eb898fc
Merge pull request #4589 from roc-lang/fix-test
Fix test
2022-11-24 17:56:45 -05:00
Ayaz
848c18f996
Merge pull request #4567 from joshuawarner32/tuple-type-annotation
Implement tuple type parsing
2022-11-24 14:42:11 -06:00
Richard Feldman
d1c14df067
Merge branch 'fix-test' into https-packages 2022-11-24 15:39:43 -05:00
Richard Feldman
1a1bc3a7cf
Merge branch 'fix-test' into simplify-cli-platform 2022-11-24 15:39:31 -05:00
Richard Feldman
c8723ccedd
Give some tests more accurate names 2022-11-24 15:36:49 -05:00
Richard Feldman
2cdb4fa10c
Fix a test that had a duplicate body with another 2022-11-24 15:35:42 -05:00
Richard Feldman
8db6cde08d
Fix some test helpers 2022-11-24 15:31:11 -05:00
Brian Carroll
e9ee62b2c2
Merge pull request #4581 from roc-lang/wasm_interp_part2
Wasm interp function calls
2022-11-24 18:45:12 +00:00
Richard Feldman
b9b03d432a
Merge remote-tracking branch 'origin/main' into https-packages 2022-11-24 13:14:36 -05:00
Richard Feldman
ac2d50aea9
Merge pull request #4542 from roc-lang/precompiled-legacy
Precompiled legacy linking
2022-11-24 13:13:48 -05:00
Brian Carroll
4c6f868e24
wasm_interp: refactor a test for readability 2022-11-24 16:55:22 +00:00
Richard Feldman
ed0c64ca7c
Fix reporting tests 2022-11-24 11:54:51 -05:00
Brian Carroll
f10262a41d
clippy 2022-11-24 16:43:43 +00:00
Brian Carroll
6523b38847
wasm_interp: implement calls with arguments 2022-11-24 16:43:31 +00:00
Brian Carroll
3aeab0dbd7
wasm_interp: initial version of ExecutionState::for_module 2022-11-24 16:43:31 +00:00
Brian Carroll
235c238e36
Move Value from wasm_interp to wasm_module & create GlobalSection::initial_values 2022-11-24 16:43:31 +00:00
Brian Carroll
0a2f2739b2
wasm_interp: implement function call (no arguments yet!) 2022-11-24 16:43:31 +00:00
Brian Carroll
972d9dbb19
wasm_interp: implement call and return instructions 2022-11-24 16:43:31 +00:00
Brian Carroll
57aa3aafd8
wasm_interp: test helper for default ExecutionState 2022-11-24 16:43:31 +00:00
Brian Carroll
335497c99f
wasm_interp: implement globals 2022-11-24 16:43:31 +00:00
Brian Carroll
ff63831fd1
wasm_interp: implement local.get, local.set, and local.tee 2022-11-24 16:43:31 +00:00
Joshua Warner
c6b5273144
Implement tuple type parsing
Also change some tests with newly relaxed indentation requirements, and remove an irrelevant test (since unindented close parens are now perfectly valid, the test is no longer useful).
2022-11-24 07:36:59 -08:00
Joshua Warner
a6a90178ce
Refactor record_type to use combinators 2022-11-24 07:36:44 -08:00
Ayaz Hafiz
2ed2d88881
Do not run occurs checks when printing type variables
This is a hack. Let's find and correct these problems earlier in the
compiler.
2022-11-24 10:05:28 -05:00
Ayaz Hafiz
be047f4b4a
Debug Work 2022-11-24 10:05:28 -05:00
Ayaz Hafiz
b4216a26a5
Force occurs check for introduced types after checking annotated bodies
The current type inference scheme is such that we first introduce the
types for annotation functions, then check their bodies without
additional re-generalization. As part of generalization, we also perform
occurs checks to fix-up recursive tag unions.

However, type annotations can contain type inference variables that are
neither part of the generalization scheme, nor are re-generalized later
on, and in fact end up forming a closure of a recursive type. If we do
not catch and break such closures into recursive types, things go bad
soon after in later stages of the compiler.

To deal with this, re-introduce the values of recursive values after we
check their definitions, forcing an occurs check. This introduction is
benign because we already generalized appropriate type variables anyway.
Though, the introduction is somewhat unnecessary, and I have ideas on
how to make all of this simpler and more performant. That will come in
the future.
2022-11-24 10:05:28 -05:00
Richard Feldman
4958647663
Fix a missing to_str() on Windows 2022-11-24 10:05:28 -05:00
Richard Feldman
96d3ab99e5
Fix a regression in a macOS workaround 2022-11-24 10:05:28 -05:00
Richard Feldman
f1021ffd45
Fix a missing .to_str() 2022-11-24 10:05:28 -05:00
Richard Feldman
a38532ea4b
Update error message 2022-11-24 10:05:27 -05:00
Richard Feldman
69a7c3ea15
Centralize host tempfile builder logic 2022-11-24 10:05:27 -05:00
Richard Feldman
4b64f8c9e9
Make sure tempfiles don't get dropped too early 2022-11-24 10:05:27 -05:00
Richard Feldman
8ce3069a74
Avoid an unused variable warning 2022-11-24 10:05:27 -05:00
Richard Feldman
30d72d0bc7
Give tempfiles the file extensions Zig expects 2022-11-24 10:05:27 -05:00
Richard Feldman
806e3e2ac7
Missed a couple of .to_str().unwrap()s 2022-11-24 10:05:27 -05:00
Richard Feldman
3d6b383a4e
Only reference native host binaries (for now) 2022-11-24 10:05:26 -05:00
Richard Feldman
b7b5de76ed
Use tempfile::NamedTempFile in more places 2022-11-24 10:05:26 -05:00
Richard Feldman
4ae7b391d5
Drop obsolete .gitignore entries 2022-11-24 10:05:26 -05:00
Richard Feldman
1679c62a0a
Use include_bytes! so builtin hosts live in binary 2022-11-24 10:05:26 -05:00
Ayaz Hafiz
7865075f76
Mark mono test 2022-11-24 10:05:26 -05:00
Ayaz Hafiz
9dbc2224fb
Fix imports 2022-11-24 10:05:25 -05:00
Ayaz Hafiz
5efdecafc9
Constrain flex inference variables without re-generalization
When constraining a recursive function like

```
f : _ -> {}
f : \_ -> f {}
```

our first step is to solve the value type of `f` relative to its
annotation. We have to be careful that the inference variable in the
signature of `f` is not generalized until after the body of `f` is
solved. Otherwise, we end up admitting polymorphic recursion.
2022-11-24 10:05:25 -05:00
Ayaz Hafiz
f8d51473d8
Report builtins type errors during load building as appropriate 2022-11-24 10:05:25 -05:00
Brian Carroll
bcb423dae8
wasm_interp: remove unsafe code 2022-11-24 10:05:25 -05:00
Brian Carroll
f5976d57df
clippy + comments 2022-11-24 10:05:25 -05:00
Brian Carroll
219de53ccb
wasm_interp: Tests for ExecutionState 2022-11-24 10:05:24 -05:00
Brian Carroll
35275299e3
wasm_module: create WasmModule::new for testing 2022-11-24 10:05:24 -05:00
Brian Carroll
45556b95bd
wasm_interp: create execute module 2022-11-24 10:05:24 -05:00