Nick Fitzgerald
9bafb173a0
Merge pull request #1996 from fitzgen/ref-types-in-c-api
...
Support reference types in the C API
2020-07-13 10:58:42 -07:00
Nick Fitzgerald
3638dba855
examples: Run the correct example executable on Windows
...
We were accidentally always running the `fib-debug/main` example because of
shenanigans with alphabetical ordering and hard coding "main.exe" as the command
we run. Now we properly detect which example we built and run the appropriate
executable.
2020-07-13 09:34:20 -07:00
Chris Fallin
4b6ebc0c27
Merge pull request #1999 from bnjbvr/fix-aarch64-ishl-by-zero
...
machinst aarch64: fix encoding generation of left-shift by 0
2020-07-13 09:25:21 -07:00
Chris Fallin
f4f5eed254
Merge pull request #1977 from jgouly/simd_shift
...
arm64: Implement SIMD shift instructions
2020-07-13 09:24:19 -07:00
Nick Fitzgerald
9f0ec620f0
wasmtime-c-api: Remove duplicate tests of examples
...
The canonical examples tests will be the examples run via `cargo run -p
run-examples` from now on. Those tests have two advantages over the ones being
deleted:
1. They will automatically pick up new examples and run/test them.
2. They support all of Linux, MacOS, and Windows, while the tests being deleted
are Linux only.
2020-07-13 08:42:55 -07:00
Peter Huene
f48f9eb4b3
Merge pull request #2010 from whitequark/fix-windows-creat_trunc
...
WASI: make O_CREAT|O_TRUNC actually truncate files on Windows
2020-07-11 17:11:22 -07:00
Peter Huene
41b4721512
Add a test case for WASI file truncation.
2020-07-10 14:28:08 -07:00
Yury Delendik
b2551bb4d0
Make wasmtime_environ::Module serializable ( #2005 )
...
* Define WasmType/WasmFuncType in the Cranelift
* Make `Module` serializable
2020-07-10 15:56:43 -05:00
Nick Fitzgerald
22d6b68795
gitignore: Ignore the foo file
...
It is created by the `run-examples` crate.
2020-07-10 13:53:05 -07:00
Nick Fitzgerald
ec331a088c
run-examples: Provide more error context for debugging
...
Use `anyhow` for nice errors and provide error context on commands that we run.
2020-07-10 13:51:58 -07:00
Nick Fitzgerald
2040a654d6
CI: collect backtraces for example tests
2020-07-10 13:37:24 -07:00
Nick Fitzgerald
89603bc6b3
wasmtime-c-api: Make wasm_table_set *not* take ownership of its reference
...
Same for `wasm_table_grow` and `wasm_table_new` and their `init` values.
2020-07-10 13:09:08 -07:00
Nick Fitzgerald
d07fdca73a
wasmtime-c-api: Use a safe helper for initializing MaybeUninit out pointers
2020-07-10 13:09:08 -07:00
Nick Fitzgerald
377b213fd5
wasmtime-c-api: Remove unused HostInfoState struct
2020-07-10 13:09:08 -07:00
Nick Fitzgerald
b73b2e0d5a
wasmtime-c-api: Make wasmtime_externref_new write to an out pointer
...
The C API prefers not to return structs by value.
Same for `wasmtime_externref_new_with_finalizer`.
2020-07-10 13:09:08 -07:00
Nick Fitzgerald
b9bb095e0f
wasmtime-c-api: Remove nested options from wasm_ref_t representation
2020-07-10 13:09:08 -07:00
Nick Fitzgerald
742f8ee1fc
wasmtime-c-api: Make wasmtime_externref_new proxy to wasmtime_externref_new_with_finalizer
2020-07-10 13:09:08 -07:00
Nick Fitzgerald
4a349ee299
wasmtime: Add externref Rust example
2020-07-10 13:09:08 -07:00
Nick Fitzgerald
5ed8a9ba0e
wasmtime-c-api: Add an externrefs example for the C API
2020-07-10 13:09:08 -07:00
Nick Fitzgerald
267bf16683
wasmtime-c-api: Add Wasmtime-specific APIs for externrefs
...
This commit adds APIs to create new `externref` values (with and without
finalizers) and to get an `externref`'s wrapped data.
2020-07-10 13:09:08 -07:00
Nick Fitzgerald
4c01ffd087
wasmtime-c-api: Document new reference types support
2020-07-10 13:09:08 -07:00
Nick Fitzgerald
aaf4c941b8
wasmtime-c-api: Add support for funcref values
2020-07-10 13:09:08 -07:00
Nick Fitzgerald
4cdf8b7cfd
wasmtime-c-api: Add support for externref values
...
This required that `wasm_val_t` have a `Drop` implementation, an explicit
`Clone` implementation, and no longer be `Copy`, which rippled out through the
crate a bit.
Additionally, `wasm_func_call` and friends were creating references to
uninitialized data for its out pointers and assigning to them. As soon as
`wasm_val_t` gained a `Drop` impl and tried to drop the old value of the
assignment (which is uninitialized data), then things blew up. The fix is to
properly represent the out pointers with `MaybeUninit`, and use `ptr::write` to
initialize them without dropping the old data.
Part of #929
2020-07-10 13:09:08 -07:00
whitequark
92f33284b6
WASI: make O_CREAT|O_TRUNC actually truncate files on Windows
...
Fixes #2009 .
2020-07-10 19:23:37 +00:00
Jakub Konka
c3d385e935
Add link to C API docs in the guide ( #2006 )
2020-07-10 09:29:52 -05:00
Rochet2
0387169934
Allow android compilation ( #2002 )
2020-07-09 11:03:55 -05:00
Yury Delendik
c53b253261
Fix debug information relocation (when imports present) ( #1997 )
2020-07-09 08:52:35 -05:00
Benjamin Bouvier
f316bef763
machinst aarch64: fix encoding generation of left-shift by 0;
...
The ARM book says that the immr field should contain (-count % 64); the
existing code was approximating this with (64 - count), which is not
correct for a zero count.
2020-07-09 15:43:42 +02:00
Andrew Brown
5c35a9631c
Enable more SIMD spec tests
2020-07-08 10:20:01 -07:00
Andrew Brown
af39692d66
Translate Wasm's i32x4.trunc_sat_f32x4_u to Cranelift's fcvt_to_uint_sat.i32x4
2020-07-08 10:20:01 -07:00
Andrew Brown
c5a69cee9f
Add x86 legalization for fcvt_to_uint_sat.i32x4
...
This converts an `f32x4` into an `i32x4` (unsigned) with rounding by using a long sequence of SSE4.1 compatible instructions.
2020-07-08 10:20:01 -07:00
Yury Delendik
091373f9b8
Removes duplicate code in src/obj.rs, crates/obj and crates/jit/object.rs ( #1993 )
...
Changes:
- Moves object creation code from crates/jit/object.rs to the creates/obj (as ObjectBuilder)
- Removes legacy crates/obj/function.rs
- Removes write_debugsections
2020-07-08 12:14:19 -05:00
Nick Fitzgerald
2a4f72aeb7
Merge pull request #1991 from fitzgen/func-wrap-and-ref-types
...
Support reference types in `Func::wrap`
2020-07-07 16:03:57 -07:00
Nick Fitzgerald
62655cdbe7
wasmtime: Document support for {extern,func}ref in Func::wrap
2020-07-07 14:27:07 -07:00
Nick Fitzgerald
392bbadac7
wasmtime: Ensure that Func::wrap'd return values are compatible with the current store
2020-07-07 14:27:07 -07:00
Nick Fitzgerald
c2fc371e58
wasmtime: Expand Func::{wrap,get} tests to cover {func,extern}ref args/returns
2020-07-07 13:04:29 -07:00
Nick Fitzgerald
3e63774e99
wasmtime: Add support for Option<Func> args and returns in Func::wrap
2020-07-07 11:09:20 -07:00
Nick Fitzgerald
46ef80bf2f
wasmtime: Support ExternRefs in Func::wrap'd functions
...
Fixes #1868
2020-07-07 11:09:20 -07:00
Nick Fitzgerald
44e6fae29c
wasmtime: Modify WasmTy and WasmRet for future {extern,func}ref support
2020-07-07 11:09:20 -07:00
Yury Delendik
bef1b87be0
Write ELF image and instantiate code_memory from it ( #1931 )
...
- Create the ELF image from Compilation
- Create CodeMemory from the ELF image
- Link using ELF image
- Remove creation of GDB JIT images from crates/debug
- Move make_trampoline from compiler.rs
2020-07-07 12:51:24 -05:00
Gabor Greif
79f054f77f
Correct the files' directory index when downgrading DWARF5 -> 4 ( #1989 )
...
* correct the files' directory index when downgrading DWARF5 -> 4
2020-07-07 11:20:32 -05:00
Yury Delendik
9900641674
Support reference types in the DWARF transform ( #1986 )
2020-07-07 09:43:03 -05:00
Nick Fitzgerald
70cef0a433
fuzzing: Enforce a maximum input length for peepmatic_compile target ( #1985 )
...
This avoids timeouts from large inputs, like
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=23906
2020-07-07 09:03:14 -05:00
Peter Huene
d6ae72abe6
Merge pull request #1983 from peterhuene/fix-unwind-info
...
Remove 'set frame pointer' unwind code from Windows x64 unwind.
2020-07-06 22:26:41 -07:00
Peter Huene
92864baa1f
Fix module doc comment.
2020-07-06 19:02:52 -07:00
Peter Huene
b1c7c1401e
Fix incorrect scaling for SaveXmm128Far.
...
The `SaveXmm128Far` unwind op should have a 32-bit unscaled value.
The value was accidentally scaled down by 16 while calculating whether or not
the `SaveXmm128` or `SaveXmm128Far` unwind op should be used.
2020-07-06 18:52:16 -07:00
Nick Fitzgerald
62530e4d23
Merge pull request #1975 from MaxGraey/more-peephole-opts
...
peepmatic: add reminder by a power of two rule
2020-07-06 16:32:16 -07:00
MaxGraey
305659427d
changes according review
2020-07-07 01:55:18 +03:00
Nick Fitzgerald
22865769cb
Merge pull request #1984 from fitzgen/ref-types-in-rust-api
...
wasmtime: Support reference types in the Rust API
2020-07-06 15:17:35 -07:00
Peter Huene
b391817c0f
Add a test case for unwind with saved FPRs on Windows.
...
This commit adds a simple test case that reproduces the problem in
2020-07-06 14:23:01 -07:00