Commit graph

588 commits

Author SHA1 Message Date
Ayaz Hafiz
8317c4d038
Add gen test for #4671 2022-12-05 12:08:55 -06:00
Brendan Hansknecht
2ff8dad1c9
remove old List.range tests in favor of expect 2022-12-04 20:18:39 -08:00
Brendan Hansknecht
8e710cb80e
disable wasm tests that are broken 2022-12-03 13:17:36 -08:00
Brendan Hansknecht
04bd5d6ab0
disable wasm dictionary small string test 2022-12-03 13:17:36 -08:00
Ayaz Hafiz
24a136095c
Add Set.toList from empty test 2022-12-03 13:17:35 -08:00
Brendan Hansknecht
28835d5bf3
some bug fixes 2022-12-03 13:17:34 -08:00
Ayaz
c61c42bff7
Merge pull request #4661 from roc-lang/roc-test-dev
`test` has `dev` behavior, and `dev` does not exit if there are warnings
2022-12-03 12:26:00 -06:00
Ayaz Hafiz
7562525e96
Bugfix match 2022-12-02 16:31:47 -06:00
Ayaz Hafiz
3685ad2ed2
Ensure that llvm gen_ wrappers account different recursive pointers
Closes #2551
2022-12-02 13:38:32 -06:00
Ayaz Hafiz
078f0147ee
Do not bind accessors in toplevel thunks to their thunks' names
In #3352 an optimization to transform `ra = .field` into

```
ra = \#rcd -[ra]-> #rcd.field
```

rather than

```
__ra1 = \#rcd -[__ra1] -> #rcd.field

ra = LambdaSet { __ra1 }
```

was introduced. However, this optimization is not correct when `ra =
.field` is defined as a toplevel thunk, for in such situations we
indeed want the thunk `ra` to return the lambda set it resolves to,
rather than repointing at itself.

Besides reverting this change, another option would be to convert
accessors into closures before translation of Can to IR. However, this
complicates the translation algorithm more than it already is, and I'd
like to avoid additional special-cases.

Closes #4606
2022-12-02 08:50:03 -06:00
Richard Feldman
b2beeb770e
Merge remote-tracking branch 'origin/main' into https-packages 2022-11-25 19:50:06 -05:00
Ayaz
8c0ff4c839
Merge pull request #4558 from roc-lang/specialization-sets-for-impl-opaques
Support custom abilities for opaques with immaterial lambda sets
2022-11-25 16:42:32 -06:00
Ayaz Hafiz
7fdaf0f1bf
Make sure to ignore type errors in test 2022-11-24 14:58:35 -06:00
Ayaz Hafiz
41659ec394
Remove unneeded roc_panic extern in tests
We stub roc_panic to SJ/LJ-style exceptions in llvm tests, so this is
not needed.
2022-11-24 14:56:44 -06:00
Ayaz Hafiz
0cb41b7a07
Indent tests more 2022-11-24 14:55:11 -06:00
Ayaz Hafiz
cbdb535580
Remove unused macro 2022-11-24 14:54:51 -06:00
Ayaz Hafiz
ebc2b29199
Remove use of expect_runtime_error_panic 2022-11-24 14:54:11 -06:00
Ayaz Hafiz
e6cd64f161
Swap out expect_runtime_error_panic for assert_evals_to 2022-11-24 14:53:21 -06:00
Richard Feldman
7f8eae5a24
Give some tests more accurate names 2022-11-24 14:46:54 -06:00
Richard Feldman
de8da82ace
Fix a test that had a duplicate body with another 2022-11-24 14:46:54 -06:00
Ayaz Hafiz
803d7e30e3
Eliminate Stmt::RuntimeError in favor of crash 2022-11-24 14:46:53 -06:00
Ayaz Hafiz
1922a144f2
bye ffi 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
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
72ff0cc800
rename default panic tag to roc panic tag 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
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
f5cb2d73a1
Merge branch 'precompiled-legacy' into https-packages 2022-11-24 04:29:56 -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
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
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
4a601ffd4c
Use tempfile::NamedTempFile in more places 2022-11-22 18:40:06 -05:00
Richard Feldman
e97a5fe7f6
Use include_bytes! so builtin hosts live in binary 2022-11-22 17:57:32 -05:00
Ayaz Hafiz
e36618b9e9
Support custom abilities for opaques with immaterial lambda sets
If a specialization of an ability member has a lambda set that is not
reflected in the unspecialized lambda sets of the member's prototype
signature, then the specialization lambda set is deemed to be immaterial
to the specialization lambda set mapping, and we don't need to associate
it with a particular region from the prototype signature.

This can happen when an opaque contains functions that are some specific
than the generalized prototype signature; for example, when we are
defining a custom impl for an opaque with functions.

Addresses a bug found in 8c3158c3e0
2022-11-21 18:03:56 -06:00
Ayaz
ef5d83a42d
Merge pull request #4556 from roc-lang/fix-fixpoint-fixing
Correct when fixpoint-fixed type variables can be reunified
2022-11-21 17:44:06 -06:00
Ayaz Hafiz
e1afd964c7
Correct when fixpoint-fixed type variables can be reunified
With fixpoint-fixing, we don't want to re-unify type variables that were
just fixed, because doing so may change their shapes in ways that we
explicitly just set them up not to be changed (as fixpoint-fixing
clobbers type variable contents).

However, this restriction need only apply when we re-unify two type
variables that were both involved in the same fixpoint-fixing cycle. If
we have a type variable T that was involved in fixpoint-fixing, and we
unify it with U that wasn't, we know that the $U \notin \bar{T}$, where
$\bar{T}$ is the recursive closure of T. In these cases, we do want to
permit the usual in-band unification of $T \sim U$.
2022-11-21 15:57:36 -06:00
Brian Carroll
880ef2704c
Merge branch 'main' of github.com:rtfeldman/roc into wasm_module_crate 2022-11-21 19:49:00 +00:00
Brian Carroll
a3cfdd478d
rename called_preload_fns to called_fns 2022-11-21 19:48:02 +00:00
Richard Feldman
721841fa1f
Provide roc_cache_dir everywhere 2022-11-20 19:53:48 -05:00
Brian Carroll
ba99870de0
minor tweaks 2022-11-16 21:25:16 +00:00
Ayaz Hafiz
08eda910ef
Add gen test for #4077 2022-11-16 14:05:52 -06:00
Ayaz Hafiz
33a9c39cfd
Update gen tests that have changed due to emplacement 2022-11-16 14:05:52 -06: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