Commit graph

4668 commits

Author SHA1 Message Date
Brian Carroll
1b126d3b58
wasm_interp: Don't panic when setting a local variable 2022-12-06 20:22:05 +00:00
Brian Carroll
9d912a6cc7
wasm_interp: don't panic when unwrapping Value 2022-12-06 20:19:25 +00:00
Folkert de Vries
4ab58dafbc
Merge pull request #4699 from roc-lang/wasm_interp_fixes
Wasm interp: WASI and stack trace
2022-12-06 21:12:15 +01:00
Richard Feldman
2b1deff379
Revert "Merge PlatformHeaderInfo into revised HeaderInfo"
This reverts commit 6115781b9d.
2022-12-06 14:06:05 -05:00
Richard Feldman
579feeeadd
Revert "WIP try combining PlatformHeaderInfo & HeaderInfo"
This reverts commit 100044295f.
2022-12-06 14:06:00 -05:00
Richard Feldman
100044295f
WIP try combining PlatformHeaderInfo & HeaderInfo 2022-12-06 14:05:29 -05:00
Ayaz Hafiz
dd364dbdfa
Add gen test for concat unique lists bug 2022-12-06 12:59:55 -06:00
Ayaz Hafiz
4df83d67ea
use copyBackwards when copying overlapping items in non-unique.unique concat
`mem.copy` requires that `dest` has start index `<= src`, but in our
case, `dest` has start index `>= src`. For this, `copyBackwards` should
be used.

See https://github.com/ziglang/zig/blob/master/lib/std/mem.zig#L195-L222.

Closes #4697
2022-12-06 12:58:04 -06:00
Brian Carroll
d49ae6701a
Merge branch 'main' of github.com:roc-lang/roc into wasm_interp_fixes 2022-12-06 18:57:56 +00:00
Ayaz Hafiz
a549176886
Add reproduction of failing unique concat bug 2022-12-06 12:57:32 -06:00
Brian Carroll
c7a75bf770
wasm_interp: comment to clarify the two CLI systems 2022-12-06 09:38:08 +00:00
Brian Carroll
df5baf4211
clippy 2022-12-06 09:02:59 +00:00
Brian Carroll
2dac57c2bb
wasm_interp: self-review fixes 2022-12-06 08:59:17 +00:00
Brian Carroll
dfbee7b916
wasm_interp: ensure WASI argv[0] is the .wasm executable 2022-12-06 08:59:17 +00:00
Brian Carroll
aa76634751
wasm_interp: implement WASI proc_exit 2022-12-06 08:59:17 +00:00
Brian Carroll
6820278672
wasm_interp: fix memory instructions (immediate arg for memory index) 2022-12-06 08:59:17 +00:00
Brian Carroll
b938e546b2
wasm_interp: In stack trace, last frame shouldn't show previous CALL address 2022-12-06 08:59:17 +00:00
Brian Carroll
0f5b7be945
wasm_interp: dump stack trace on unreachable instruction 2022-12-06 08:59:17 +00:00
Brian Carroll
513a346fe1
wasm_interp: end all function blocks on RETURN op 2022-12-06 08:59:08 +00:00
Brian Carroll
ad2973cd8d
wasm_interp: fix call_indirect immediates order 2022-12-06 08:59:08 +00:00
Brian Carroll
6d43763ab7
wasm_interp: dump a stack trace on error 2022-12-06 08:59:08 +00:00
Brian Carroll
5bdd1b5628
wasm_interp: use Result instead of panic. Focus debug info on *Wasm app*, not interp. 2022-12-06 08:59:08 +00:00
Folkert de Vries
c8a335cd0b
Merge pull request #4695 from roc-lang/mono-checker-updates
Add debug flag to check IR after specialization
2022-12-06 09:31:01 +01:00
Ayaz
8ae8857125
Merge pull request #4696 from roc-lang/hash-nat
add the ability to hash Nats
2022-12-05 20:15:21 -06:00
Brendan Hansknecht
b07e4e8170
fix mono 2022-12-05 16:11:10 -08:00
Brendan Hansknecht
6dd51039f0
add simple test that nat keys compile 2022-12-05 16:09:17 -08:00
Ayaz Hafiz
a2b506ab1b
Add debug flag to check IR after specialization 2022-12-05 18:05:35 -06:00
Brendan Hansknecht
6aec9cf058
add the ability to hash Nats 2022-12-05 16:00:56 -08:00
Ayaz
b6c9c7c145
Merge pull request #4689 from roc-lang/i4685
Spread list tests can never touch exact-sized bounds tests
2022-12-05 16:32:10 -06:00
Folkert de Vries
66ce640fe5
Merge pull request #4688 from roc-lang/i4671
Correct generalization of imported specializations
2022-12-05 23:22:58 +01:00
Brian Carroll
284dc6fa51
wasm_interp: support WASI argc/argv, and writing to stdout/stderr 2022-12-05 22:16:27 +00:00
Brian Carroll
736630b53f
wasm_interp: don't require -- before app arguments 2022-12-05 22:16:27 +00:00
Brian Carroll
0970595238
wasm_module: fix bug in DataSection::load_into (for roc_wasm_interp) 2022-12-05 22:16:27 +00:00
Brian Carroll
735085b8df
wasm_interp: add a description to Cargo.toml 2022-12-05 22:16:27 +00:00
Ayaz Hafiz
aab509c5c1
Make sure to escape formatting of char literals
Closes #4682
2022-12-05 14:09:28 -06:00
Ayaz Hafiz
759127660d
Spread list tests can never touch exact-sized bounds tests
When compiling a pattern match like

```
[] -> ..
[_] -> ..
[_, ..] -> ..
```

to a decision tree, we must make sure that the last test (len >= 1)
does not touch the branch reached by the second test (len == 1). It is
enough to ban (len >=) tests from ever touching exact-sized list
patterns, because a spread test (len >=) can never reach an exact-sized
test.

On the other hand, an exact-sized test can reach a spread pattern,
because in

```
[_, _] -> ..
[..] -> ..
```

the last branch generates tests for patterns `[]` and `[_]`, and we would
like those patterns to be covered by the spread test (len >= 0)!

Closes #4685
2022-12-05 13:45:35 -06:00
Ayaz Hafiz
b6a96ebb85
Reproduce miscompilation in #4685 2022-12-05 13:14:32 -06:00
Ayaz Hafiz
1cd7f8baf1
Fix test_derive 2022-12-05 13:10:29 -06:00
Ayaz Hafiz
836240f158
Clippy 2022-12-05 13:07:53 -06:00
Ayaz Hafiz
fe1cfe01b9
Allow too many arguments 2022-12-05 13:06:35 -06:00
Ayaz Hafiz
8ca9e6b443
Be more explicit about imported flex and rigid vars 2022-12-05 13:04:15 -06:00
Ayaz Hafiz
0bb31558e6
Disable gen and set tests on debug for now
Due to #3898
2022-12-05 12:50:24 -06:00
Ayaz Hafiz
8317c4d038
Add gen test for #4671 2022-12-05 12:08:55 -06:00
Ayaz Hafiz
09353733fa
Make sure to register imported variables when importing specializations
Closes #4671
2022-12-05 11:44:28 -06:00
Folkert
98560c63e6
fix bad merge 2022-12-05 12:54:57 +01:00
Brendan Hansknecht
415cac5179
update mono tests 2022-12-04 21:49:28 -08:00
Brendan Hansknecht
d81be27be0
update call to List.range in reporting test 2022-12-04 20:19:02 -08:00
Brendan Hansknecht
2ff8dad1c9
remove old List.range tests in favor of expect 2022-12-04 20:18:39 -08:00
Brendan Hansknecht
a5cb441d73
fix builtin formatting 2022-12-04 16:13:38 -08:00
Brendan Hansknecht
a5efc1f179
switch to more expressive list.range 2022-12-04 16:04:17 -08:00