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
Peter Huene
3a33749404
Remove 'set frame pointer' unwind code from Windows x64 unwind.
...
This commit removes the "set frame pointer" unwind code and frame
pointer information from Windows x64 unwind information.
In Windows x64 unwind information, a "frame pointer" is actually the
*base address* of the static part of the local frame and would be at some
negative offset to RSP upon establishing the frame pointer.
Currently Cranelift uses a "traditional" notion of a frame pointer, one
that is the highest address in the local frame (i.e. pointing at the
previous frame pointer on the stack).
Windows x64 unwind doesn't describe such frame pointers and only needs
one described if the frame contains a dynamic stack allocation.
Fixes #1967 .
2020-07-06 14:22:57 -07:00
Nick Fitzgerald
a7c6433773
wasmtime: Support reference types in the Rust API
...
This is a mix of exposing new things (e.g. a `Table::fill` method) and extending
existing support to `externref`s (e.g. `Table::new`).
Part of #929
2020-07-06 14:21:32 -07:00
Dan Gohman
cf5289c553
Begin porting yanix to WASI.
...
This isn't complete yet, but subsequent steps will depend on Rust libstd
and libc bindings changes that are in flight.
2020-07-06 20:20:28 +02:00
Nick Fitzgerald
25397d0c15
Merge pull request #1982 from fitzgen/fuzz-reference-types
...
fuzzing: Enable reference types by default
2020-07-06 10:27:09 -07:00
Daiki Ueno
2ce2dd0203
wasmtime: add build-time option for parallel compilation ( #1903 )
...
When running in embedded environments, threads creation is sometimes
undesirable. This adds a feature to toggle wasmtime's internal thread
creation for parallel compilation.
2020-07-06 11:22:05 -05:00
Nick Fitzgerald
9b56203732
fuzzing: Enable reference types by default
...
Part of #929
2020-07-06 09:18:52 -07:00
Nick Fitzgerald
80ff22fd18
Merge pull request #1973 from fitzgen/table-fill
...
wasmtime: Implement `table.fill`
2020-07-06 09:03:25 -07:00
Graham Scheaffer
ef8fe18262
Updated region versions ( #1978 )
2020-07-06 09:26:28 -05:00
MaxGraey
2048278d2a
typo
2020-07-03 21:45:40 +03:00