Ayaz Hafiz
f9de522004
Add crash fmt test
2022-11-24 14:46:54 -06:00
Ayaz Hafiz
ea386bf0af
Dont remove stmt_error
2022-11-24 14:46:54 -06:00
Ayaz Hafiz
ce5636d94f
Get rid of stmt_runtime_error in gen-wasm
2022-11-24 14:46:54 -06:00
Ayaz Hafiz
7e975b9111
Update mono tests
2022-11-24 14:46:53 -06:00
Ayaz Hafiz
803d7e30e3
Eliminate Stmt::RuntimeError in favor of crash
2022-11-24 14:46:53 -06:00
Ayaz Hafiz
a2f2a18a76
Replace runtime error with crash
2022-11-24 14:46:53 -06:00
Ayaz Hafiz
1922a144f2
bye ffi
2022-11-24 14:46:53 -06:00
Ayaz Hafiz
7668d7d592
Not everything is equal, but this is I suppose
2022-11-24 14:46:53 -06:00
Ayaz Hafiz
f3a03ef6eb
Pass roc_panic msg by ref on 32 bit plats
2022-11-24 14:46:53 -06:00
Ayaz Hafiz
291615072b
Fix usages of panic
2022-11-24 14:46:53 -06:00
Ayaz Hafiz
12d013c062
Remove unneeded param
2022-11-24 14:46:53 -06:00
Ayaz Hafiz
36ff2e577b
Ignore test on wasm for now
2022-11-24 14:46:52 -06:00
Ayaz Hafiz
4202352b19
Update panic tags of builtins
2022-11-24 14:46:52 -06:00
Ayaz Hafiz
32400e37e1
Implement crash in gen-wasm
2022-11-24 14:46:52 -06:00
Ayaz Hafiz
a8122662c2
Return panic tag from roc_panic to test platform
2022-11-24 14:46:52 -06:00
Ayaz Hafiz
9201cf0b32
Add tests for user crash
2022-11-24 14:46:52 -06:00
Ayaz Hafiz
c8accc90e8
Implement user crash in llvm backend
2022-11-24 14:46:52 -06:00
Ayaz Hafiz
d9a8cba821
Correct symbol capturing of crash
2022-11-24 14:46:51 -06:00
Ayaz Hafiz
220c8a8e64
Add a crash test to mono
2022-11-24 14:46:51 -06:00
Ayaz Hafiz
c7ef1668d4
Implement mono of crash
2022-11-24 14:46:51 -06:00
Ayaz Hafiz
72ff0cc800
rename default panic tag to roc panic tag
2022-11-24 14:46:51 -06:00
Ayaz Hafiz
6d851ec5e2
men i trust, lints i dont need
2022-11-24 14:46:51 -06:00
Ayaz Hafiz
d33985db92
RocStr roc_panic for wasm gen
2022-11-24 14:46:51 -06:00
Ayaz Hafiz
2b49aee3d2
Pull out string literal creation
2022-11-24 14:46:51 -06:00
Ayaz Hafiz
d7db10d7b5
Check in panic_utils.zig
2022-11-24 14:46:50 -06:00
Ayaz Hafiz
4709f9a0de
roc_panic is passed a RocStr
2022-11-24 14:46:50 -06:00
Ayaz Hafiz
a9f8c2ddec
Factor out build_string_literal
2022-11-24 14:46:50 -06:00
Ayaz Hafiz
f29b85e244
Update builtins to use RocStr as panic type
2022-11-24 14:46:50 -06:00
Ayaz Hafiz
25693f8ffe
Fix constraining
2022-11-24 14:46:50 -06:00
Ayaz Hafiz
e2b30e5301
Constrain + solve crash
2022-11-24 14:46:50 -06:00
Ayaz Hafiz
9dc489c2b0
First pass constraining crash
2022-11-24 14:46:49 -06:00
Ayaz Hafiz
ee5eacc3e4
Support crash in derive tests
2022-11-24 14:46:49 -06:00
Ayaz Hafiz
dd05d813a9
Canonicalize crash
2022-11-24 14:46:49 -06:00
Ayaz Hafiz
1011ce9fba
Format crash
2022-11-24 14:46:49 -06:00
Ayaz Hafiz
fee01166c7
Add crash as a keyword
2022-11-24 14:46:49 -06: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
Brian Carroll
b17996f6f7
gen_wasm: Add debugging tips to readme
2022-11-24 16:39:16 +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
Brian Carroll
ae4131d3ac
wasm_interp: tests for ValueStack
2022-11-24 10:05:24 -05:00
Brian Carroll
ee7e439602
wasm_interp: tests for call_stack
2022-11-24 10:05:24 -05:00
Brian Carroll
43af215417
wasm_interp: create call_stack module
2022-11-24 10:05:24 -05:00
Brian Carroll
fb13992ccd
wasm_interp: new crate, with a value_stack module
2022-11-24 10:05:23 -05:00
Brian Carroll
8ddc575600
Use workspace versioning for wasm_module Cargo.toml
2022-11-24 10:05:23 -05:00
Folkert
5cb47939e2
don't try to run dbg with roc run
2022-11-24 11:19:41 +01:00
Richard Feldman
85a5905ef7
Fix typos in comments
2022-11-24 04:40:42 -05:00
Richard Feldman
d00f421946
Fix test
2022-11-24 04:38:55 -05:00
Richard Feldman
f5cb2d73a1
Merge branch 'precompiled-legacy' into https-packages
2022-11-24 04:29:56 -05:00
Richard Feldman
c86e3f4677
Revert "Drop unused parameter"
...
This reverts commit d925e43465
.
2022-11-24 04:20:17 -05:00
Richard Feldman
adddc1ff70
Fix dbg parse test
2022-11-24 03:31:19 -05:00
Richard Feldman
3ec21109d7
Fix race condition in copying preprocessedhost
2022-11-24 03:29:51 -05:00
Richard Feldman
8bbc3ad925
Drop Program and third type param from Task
2022-11-24 03:21:14 -05:00
Richard Feldman
28bccb792f
Merge remote-tracking branch 'origin/main' into precompiled-legacy
2022-11-24 02:20:50 -05:00
Richard Feldman
d925e43465
Drop unused parameter
2022-11-24 02:15:40 -05:00
Richard Feldman
e8f5c13cf9
Consider linking type in preprocessed_host_path
2022-11-24 02:14:46 -05:00
Richard Feldman
9627946144
Drop redundant file copy
2022-11-24 02:10:09 -05:00
Ayaz
3059fd31c9
Merge branch 'main' into specialization-sets-for-impl-opaques
...
Signed-off-by: Ayaz <20735482+ayazhafiz@users.noreply.github.com>
2022-11-23 17:12:04 -06:00
Ayaz Hafiz
7c3a0807c2
Suggest binding type variables to an ability when they're unsatisfied
2022-11-23 16:37:50 -06:00
Folkert
51c018b03c
fix compile error in tests
2022-11-23 23:24:53 +01:00
Folkert
1875176319
improve formatting
2022-11-23 23:16:37 +01:00
Folkert
e44a8a9eed
print all the relevant info
2022-11-23 22:58:58 +01:00
Folkert
e7f3c6f281
inline dbg
2022-11-23 21:23:28 +01:00
Folkert
dcb530d3af
Revert "toplevel debug"
...
This reverts commit 5ea8d96f3e
.
2022-11-23 20:29:55 +01:00
Folkert
5ea8d96f3e
toplevel debug
2022-11-23 20:29:45 +01:00
Folkert de Vries
df7f57e4a3
Merge pull request #4563 from roc-lang/fix-recursion-checks-of-inferred-vars
...
Force occurs check for introduced types after checking annotated bodies
2022-11-23 13:02:50 +01:00
Folkert de Vries
099ab4938f
Merge pull request #4565 from roc-lang/more-standalone
...
Use include_bytes! so builtin hosts live in binary
2022-11-23 13:01:39 +01:00
Richard Feldman
e1959d0a84
Fix wasm host_input_path generation
2022-11-23 00:38:54 -05:00
Richard Feldman
04e3ac37f4
Fix wasm host_dest name generation
2022-11-23 00:06:43 -05:00
Richard Feldman
c0b065b51a
Fix a couple of preprocessed host bugs
2022-11-22 23:38:07 -05:00
Richard Feldman
d9f3e11634
Add wasm32 support to preprocessed_host_filename
2022-11-22 23:02:12 -05:00
Richard Feldman
bcf53e58fe
Fix a missing to_str() on Windows
2022-11-22 22:44:42 -05:00
Richard Feldman
928495072c
Add dbg to sort_can_defs
2022-11-22 21:37:39 -05:00
Richard Feldman
73a591743b
Add parser tests for dbg
2022-11-22 21:27:10 -05:00
Richard Feldman
dcb7ab97c2
Fix a regression in a macOS workaround
2022-11-22 21:12:40 -05:00
Richard Feldman
49f8768271
Parse and format dbg
2022-11-22 21:08:26 -05:00
Richard Feldman
4e50d3fe2e
Fix a missing .to_str()
2022-11-22 20:58:17 -05:00
Richard Feldman
18fdc54022
Update error message
2022-11-22 20:55:05 -05:00
Richard Feldman
a8b6fa051a
Centralize host tempfile builder logic
2022-11-22 20:52:44 -05:00
Richard Feldman
0b73ea69af
Make sure tempfiles don't get dropped too early
2022-11-22 20:22:08 -05:00
Richard Feldman
6b446fe592
Avoid an unused variable warning
2022-11-22 19:25:15 -05:00
Richard Feldman
9c1291d57d
Give tempfiles the file extensions Zig expects
2022-11-22 19:19:54 -05:00
Richard Feldman
16fd39c4f7
Missed a couple of .to_str().unwrap()s
2022-11-22 18:51:01 -05:00
Richard Feldman
2d83c95d23
Only reference native host binaries (for now)
2022-11-22 18:40:08 -05:00
Richard Feldman
4a601ffd4c
Use tempfile::NamedTempFile in more places
2022-11-22 18:40:06 -05:00
Richard Feldman
2d066469ee
Drop obsolete .gitignore entries
2022-11-22 18:00:51 -05:00
Richard Feldman
e97a5fe7f6
Use include_bytes! so builtin hosts live in binary
2022-11-22 17:57:32 -05:00
Richard Feldman
2dba97d6a2
Simplify legacy_host_filename_ext
2022-11-22 17:19:36 -05:00
Richard Feldman
87ad2cdf82
Fix linux surgical linker tests
2022-11-22 14:27:53 -05:00
Ayaz Hafiz
faa804d54d
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-22 13:04:32 -06:00
Ayaz Hafiz
c70b23ac9c
Debug Work
2022-11-22 13:04:27 -06:00
Ayaz Hafiz
dce4d6c4c7
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-22 12:58:51 -06:00
Ayaz Hafiz
40da261dfd
Mark mono test
2022-11-22 12:57:32 -06:00
Richard Feldman
c3fa64afbd
Add /packages to ~/.cache/roc over ROC_VERSION
2022-11-22 12:10:45 -05:00
Richard Feldman
207160e22c
Print downloading message when downloading package
2022-11-22 12:05:19 -05:00
Richard Feldman
822f059e6e
Always include ROC_VERSION in cache dir
2022-11-22 12:05:03 -05:00
Ayaz Hafiz
91ceebc065
Fix imports
2022-11-22 11:00:14 -06:00
Richard Feldman
f60ed0059a
Turns out this was used by the repl
2022-11-22 11:55:46 -05:00
Ayaz Hafiz
414a320358
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-22 10:43:59 -06:00
Ayaz Hafiz
03e6d6d7e0
Report builtins type errors during load building as appropriate
2022-11-22 10:36:41 -06:00
Richard Feldman
7356809fc3
clippy
2022-11-22 10:59:17 -05:00
Richard Feldman
52b71cd85f
Using a HTTPS URL platform implies it's prebuilt
2022-11-22 10:45:22 -05:00
Richard Feldman
f39eaff217
Don't match on the same thing twice
2022-11-22 10:34:04 -05:00
Richard Feldman
b7726c87bb
Drop unused field
2022-11-22 08:49:31 -05:00
Richard Feldman
13caa0bc17
Fix doc comment
2022-11-22 08:38:59 -05:00
Richard Feldman
c7f9ecccf1
Fix compression inference
2022-11-22 08:38:02 -05:00
Richard Feldman
092d21a663
Properly resolve shorthands to HTTPS URL packages
2022-11-22 08:28:54 -05:00