Commit graph

99 commits

Author SHA1 Message Date
Ayaz Hafiz
a102a7497e
Support box/unbox for types that are typically only on the stack
Closes #2786
2022-04-09 16:22:01 -04:00
Brian Carroll
ab3a75b754 wasm: fix WasmLayout for LambdaSet 2022-04-05 00:02:05 +01:00
Brian Carroll
a63e55e023 wasm: fix stack order in higher-order wrapper 2022-04-05 00:02:05 +01:00
Folkert de Vries
5e9e7f3ad5
Merge pull request #2760 from rtfeldman/wasm-reset-reuse
Wasm reset & reuse
2022-03-21 23:02:28 +01:00
Brian Carroll
9b6b81a438 WIP 2022-03-20 11:17:34 +00:00
Folkert
0b74fcd07b
add test of alias of alias with type variables but without lambda set 2022-03-18 20:10:49 +01:00
Folkert
6543c9bbc6
Merge remote-tracking branch 'origin/trunk' into box-all-the-things 2022-03-09 00:00:15 +01:00
Folkert
be28ee2a64
add test 2022-03-08 22:21:37 +01:00
Brian Carroll
7ccc5ec768 Merge branch 'trunk' of github.com:rtfeldman/roc into wasm-runtime-error 2022-02-27 22:57:23 +00:00
Tom Dohrmann
788c8a6af2 reimplement RocList and RocStr 2022-02-23 16:02:13 +01:00
Brian Carroll
0d08c97e44 wasm: enable a test that has a Stmt::RuntimeError 2022-02-09 17:23:36 +00:00
Brian Carroll
abfa4b1522 test_gen: allow non-llvm tests to expect errors 2022-02-09 17:23:36 +00:00
Richard Feldman
a55ff62e6c
Merge remote-tracking branch 'origin/trunk' into expect-dont-panic 2022-01-30 20:22:26 -05:00
Chelsea Troy
4f8d0776b3 We got a test working for panicking with the appropriate number fo failures. Ultimatly we want:
+ An error maessage that says what the failures were
+ Not panicking (so these are effectively error productions)
2022-01-30 18:55:09 -06:00
ayazhafiz
47a59c560c Make test use an i64 2022-01-29 15:04:22 -05:00
ayazhafiz
5943873654 Inline polymorphic calls at usage sites
This is a bit.. ugly, or at least seems suboptimal, but I can't think of
a better way to do it currently aside from demanding a uniform
representation, which we probably don't want to do.

Another option is something like the defunctionalization we perform
today, except also capturing potential uses of nested functions in the
closure tag of an encompassing lambda. So for example,

```
f = \x -> \y -> 1
```

would now record a lambdaset with the data `[Test.f
[TypeOfInnerClos1]]`, where `TypeOfInnerClos1` is e.g.
`[Test.f.innerClos1 I8, Test.f.innerClos1 I16]`, symbolizing that the
inner closure may be specialized to take an I8 or I16. Then at the time
that we create the capture set for `f`, we create a tag noting what
specialization should be used for the inner closure, and apply the
current defunctionalization algorithm. So effectively, the type of the
inner closure becomes a capture.

I'm not sure if this is any better, or if it has more problems.
@folkertdev any thoughts?

Closes #2322
2022-01-28 23:49:19 -05:00
ayazhafiz
8fd139ba67 Handle unspecialized symbols captured in closures 2022-01-20 00:34:11 -05:00
Chelsea Troy
085c02ffee Infrastructure to test and implement the replacement of an 'expect' failure with an error production
Last command run was 'cargo test expect_fail'
2022-01-16 22:01:22 -06:00
Richard Feldman
54eb9ef669
Merge pull request #2307 from rtfeldman/make-tag-recursive-loop
Make tag recursive loop
2022-01-03 21:44:50 -05:00
Joshua Warner
e1c0acb650 Fix region formatting test issues 2022-01-02 09:13:04 -08:00
Folkert
2c97c840fc walk the chain till we find a tag union to make recursive 2021-12-31 14:26:23 +01:00
ayazhafiz
f56754a539 Remove bad test
We shouldn't expect to generate code for tag destructures that are type
errors
2021-12-30 20:59:59 -06:00
Folkert
d70e803dff add test 2021-12-24 21:19:09 +01:00
Brian Carroll
dcd4914ac1 Fix and enable tests involving empty records 2021-11-29 00:57:28 +00:00
Brian Carroll
a2abf9c3d2 More accurate model of the Wasm VM's stack machine, with control flow blocks 2021-11-14 12:29:54 +00:00
Brian Carroll
78a7e45b8f Fix a type error in Switch statement condition 2021-11-12 17:51:45 +00:00
Brian Carroll
b77563867f Enable some gen_primitive tests for wasm 2021-11-12 17:44:31 +00:00
Brendan Hansknecht
1028e1593a Fix unused import 2021-11-08 19:49:33 -08:00
Brendan Hansknecht
360974398a Merge test_dev, test_wasm, and test_wasm_util into test_gen 2021-11-08 19:31:20 -08:00
Kevin Sjöberg
f6d055dc62 Correct minor spelling mistakes 2021-11-06 15:29:08 +01:00
Richard Feldman
90401477c9 Fix List.walkUntil arg order 2021-10-06 07:32:56 -04:00
Folkert de Vries
3d82369bcd
Merge branch 'trunk' into nested-rigid-introduced-twice 2021-10-03 23:55:23 +02:00
Folkert
267f88626f add failing test 2021-09-26 13:05:45 +02:00
Folkert
23e8f6c687 only introduce rigid once! 2021-09-24 21:53:41 +02:00
Folkert
e5e6ac79fe add comments 2021-09-18 01:12:21 +02:00
Folkert
d1c074cefe add test 2021-09-18 01:11:48 +02:00
Folkert
7416cc4e81 don't pass closure argument if not expected 2021-09-17 22:51:51 +02:00
Folkert
03d0fa524c add test 2021-09-15 23:25:08 +02:00
Richard Feldman
f619932255
Merge pull request #1699 from rtfeldman/effect-after
Fix closures only monomorphizing once
2021-09-13 19:50:50 -04:00
Folkert
52d36cbe72 fix closure weirdness (skipping or infinite looping) 2021-09-13 22:50:48 +02:00
Folkert
0b893eb972 remove alignment bump again 2021-09-12 14:01:41 +02:00
Folkert
b7db53a8d9 remove wasm tests (they would obviously fail CI) 2021-08-31 12:36:50 +02:00
Anton-4
3f148fe4eb removed wasm tests relying on unreleased zig version 2021-08-31 12:33:22 +02:00
Folkert
b416e854ef Merge remote-tracking branch 'origin/trunk' into wasm-gen-test 2021-08-29 23:14:03 +02:00
Folkert
d77c695e45 turn off wasm testing 2021-08-29 23:08:16 +02:00
Folkert
4ced5ce2c0 updates for tests 2021-08-29 23:06:23 +02:00
Folkert
5150e9e819 make primitive tests work under wasm 2021-08-29 15:24:46 +02:00
Folkert
71c0a325ee wasm test harnass 2021-08-29 00:36:16 +02:00
Joshua Hoeflich
4e57b1edf2 Bump expect to run Rust fn 2021-08-28 11:10:02 -05:00
Folkert
0d7d006cd7 hooking things up 2021-08-28 17:58:05 +02:00