Commit graph

2670 commits

Author SHA1 Message Date
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
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
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
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