Commit Graph

170 Commits

Author SHA1 Message Date
Folkert
0e71e0d1b1
implement signed integer extension operations 2023-07-25 19:22:03 +02:00
Folkert
ef39bad7c6
auto clippy fixes 2023-07-10 18:27:08 +02:00
Folkert
5bc75b7a03
clarify comments in tests 2023-07-10 12:11:54 +02:00
Folkert
f813591042
fix skipping immediates for memory instructions 2023-07-08 23:07:15 +02:00
Folkert
c7ccc2092a
add the memory.fill and memory.copy commands to our wasm interpreter 2023-07-08 20:35:33 +02:00
David Smith
0f943c3e64
Code changes for clap 4 upgrade 2023-05-15 10:40:37 -04:00
Brian Carroll
75b21e6228
wasm_interp: print function names in stack trace if available 2023-05-14 15:20:41 +02:00
Brian Carroll
a3b5a9d9a2
wasm_interp: create a new error MemoryAccessOutOfBounds 2023-05-14 15:20:40 +02:00
Folkert
4cd8f0a056 clippy --fix fixes 2023-04-21 12:05:51 +02:00
Brian Carroll
229c88d4dd
Make WASI use write_all instead of write, and handle IO errors 2023-04-18 08:02:58 +01:00
Brian Carroll
0cf42231d6
Fix WASI fd_write in the Wasm interpreter 2023-04-17 22:24:52 +01:00
Folkert
2480dbbf1f
implement fd_fdstat_get 2023-04-15 16:05:50 +02:00
Brendan Hansknecht
f42f61e271
run a toml formatter and then clean it up a bit 2023-03-06 19:47:57 -08:00
Brendan Hansknecht
4a89bee0a5
centralize package versions except for vendor and excluded 2023-03-06 19:29:09 -08:00
Brendan Hansknecht
5485c8a5b0
update to using workspace package spec 2023-03-06 16:36:18 -08:00
Brian Carroll
83b5607022
wasm_interp: rename various variables stack->store 2022-12-18 01:09:20 +00:00
Brian Carroll
f968999ab4
wasm_interp: rename Instance::value_stack -> value_store 2022-12-18 00:21:07 +00:00
Brian Carroll
6cfc7dc6a0
wasm_interp: comments on ValueStore 2022-12-18 00:21:07 +00:00
Brian Carroll
963e6dc6b9
wasm_interp: rename struct ValueStack -> ValueStore 2022-12-18 00:21:06 +00:00
Brian Carroll
a3c6cfbc0e
wasm_interp: rename module value_stack -> value_store 2022-12-18 00:20:29 +00:00
Brian Carroll
84e6267508
wasm_interp: re-implement stack trace printing 2022-12-18 00:17:11 +00:00
Brian Carroll
4742033d00
wasm_interp: simplify do_return 2022-12-17 20:52:19 +00:00
Brian Carroll
6beac8d56a
wasm_interp: fix bug in position of locals block 2022-12-17 20:52:19 +00:00
Brian Carroll
b87cb69d94
wasm_interp: create a debug visualisation for values and blocks 2022-12-17 20:52:19 +00:00
Brian Carroll
b0d2e7a409
wasm_interp: store return type in frame & create SignatureParamsIter 2022-12-17 20:52:19 +00:00
Brian Carroll
d51beb073f
wasm_interp: create a block for each function and get tests working again 2022-12-17 20:52:19 +00:00
Brian Carroll
caedb9060b
wasm_interp: remove CallStack, create Frame, & share value storage for stack and locals
This allows us to do calls without moving arguments from one place to another
2022-12-17 20:52:19 +00:00
Brian Carroll
ef69170b88
wasm_interp: fix typo bug in WASI random_get 2022-12-17 20:49:25 +00:00
Brian Carroll
3588e57c6a
clippy 2022-12-16 16:22:52 +00:00
Brian Carroll
66aaa7c73c
wasm_interp: Use String for CLI args. It was crashing with OsString. 2022-12-16 16:04:22 +00:00
Brian Carroll
27f2050d10
wasm_interp: implement WASI fd_read 2022-12-16 14:52:11 +00:00
Brian Carroll
eaf0211808
cli: update run_wasm to use roc_wasm_interp 2022-12-16 14:52:11 +00:00
Brian Carroll
3ef171e620
wasm_interp: support fake files in WASI 2022-12-16 14:52:11 +00:00
Brian Carroll
ca0f159386
wasm_interp: allow WASI to take bytes rather than strings for argv 2022-12-16 14:52:10 +00:00
Brian Carroll
4501f2af0e
wasm_interp: create Instance::from_bytes 2022-12-16 14:52:10 +00:00
Brian Carroll
4d5b7f8b73
wasm_interp: add a WasmModule to Instance so we don't have to pass it to call_export 2022-12-16 14:52:10 +00:00
Brian Carroll
490ea1cad2
wasm_interp: shard the branch cache by function, for 3x speedup on REPL! 2022-12-16 14:52:10 +00:00
Brian Carroll
b7fef386ee
wasm_interp: implement WASI random_get & refactor default imports 2022-12-16 14:52:05 +00:00
Brian Carroll
eaa3f14fb0
repl_test: start re-writing the Wasm tests to use roc_wasm_interp 2022-12-16 14:52:05 +00:00
Brian Carroll
1a14dbba19
wasm_interp: remove leftover code from profiling 2022-12-14 12:10:21 +00:00
Brian Carroll
8052c2bb19
wasm_interp: create a branch cache to improve perf in some programs 2022-12-14 08:42:01 +00:00
Brian Carroll
6d0e7426dc
wasm_interp: handle if without else 2022-12-14 08:42:01 +00:00
Brian Carroll
0acf55137f
wasm_interp: remove unnecessary &mut from read_i32/read_u32 2022-12-14 08:42:01 +00:00
Brian Carroll
3d5edf57fc
wasm_interp: If called function is not found in exports, look in name section too 2022-12-14 08:42:01 +00:00
Brian Carroll
b585bd5fde
wasm_interp: debug print displays the called export 2022-12-14 08:42:01 +00:00
Brian Carroll
06c675703a
wasm_interp: bring back debug output 2022-12-14 08:42:01 +00:00
Brian Carroll
ed18bf7709
wasm_interp: rename ValueStack::len -> depth 2022-12-10 00:52:23 +00:00
Brian Carroll
76341c7611
wasm_interp: truncate ValueStack on leaving a block 2022-12-10 00:52:23 +00:00
Brian Carroll
612c258e35
wasm_interp: simplify CallStack for easier debugging 2022-12-10 00:52:23 +00:00
Brian Carroll
18e9051760
wasm_interp: fix a bug in implicit return 2022-12-10 00:52:23 +00:00