Richard Feldman
8b463686bc
Propagate multiple entrypoints to alias analysis
2022-12-08 15:31:42 -05:00
Richard Feldman
236cebacc1
Refactor out PlatformHeaderInfo
2022-12-08 15:31:42 -05:00
Richard Feldman
2a38edf784
Inline send_header_two
2022-12-08 15:31:42 -05:00
Richard Feldman
87c8702c89
Rename HeaderFor to HeaderType
2022-12-08 15:31:42 -05:00
Richard Feldman
12a7b51eb4
Move some logic into HeaderFor
2022-12-08 15:31:42 -05:00
Richard Feldman
24f2fcc28a
Remove an unnecessary qualifier
2022-12-08 15:31:41 -05:00
Richard Feldman
5cfa6d8e12
Expand List.range docs
2022-12-08 05:56:53 -05:00
Richard Feldman
da5d0bd815
Merge pull request #4686 from roc-lang/list-range
...
Switch to more expressive list.range
2022-12-08 02:51:42 -05:00
Brendan Hansknecht
759130952d
fix glue generation for Dict and Set
2022-12-07 20:53:50 -08:00
Ayaz Hafiz
b66813d2db
Check in test for #4705
2022-12-07 10:59:05 -06:00
Ayaz Hafiz
c5dd688e3e
Correct sorting of generated procs for mono test
2022-12-07 10:58:50 -06:00
Ayaz Hafiz
42fe19541e
Define inline expects defs in their definition order
...
When we transform a top-level expect into an inline expect, we collect
all intermediate defs before the expect condition, then layer the defs
back on. Because the layering procedure builds an expression bottom-up,
we must layer on defs in reverse definition order.
Closes #4705
2022-12-07 10:54:16 -06:00
Ayaz Hafiz
935255d06b
Support compiling programs with test mode in test_mono
2022-12-07 10:48:41 -06:00
Folkert de Vries
2ec473ba11
Merge pull request #4702 from roc-lang/wasm_interp_zig_tests
...
Wasm interp - more fixes
2022-12-07 00:32:33 +01:00
Ayaz
36eaed31e3
Merge pull request #4701 from roc-lang/i4697
...
Fix concat of non-unique list with unique list
2022-12-06 15:08:54 -06:00
Brian Carroll
2abae1b5e1
wasm_interp: Don't panic while pushing a stack frame
2022-12-06 20:31:50 +00:00
Brian Carroll
4cf5d19ace
wasm_interp: Fix bug where all arguments were being set as I32
2022-12-06 20:23:34 +00:00
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
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