3030 Commits

Author SHA1 Message Date
bors[bot]
1833af7eba
Merge #1350
1350: update blake3 to 0.3.1 r=syrusakbary a=oconnor663

Version 0.3.0 caused problems because it required a C compiler with
AVX-512 support, which broke Android x86 cross-compilation. Version
0.3.1 automatically falls back to a pure Rust build when the C compiler
either doesn't exist or doesn't support the flags we need.

Co-authored-by: Jack O'Connor <oconnor663@gmail.com>
2020-04-02 15:11:41 +00:00
Jack O'Connor
aca0bd11c0 update blake3 to 0.3.1
Version 0.3.0 caused problems because it required a C compiler with
AVX-512 support, which broke Android x86 cross-compilation. Version
0.3.1 automatically falls back to a pure Rust build when the C compiler
either doesn't exist or doesn't support the flags we need.
2020-04-02 11:02:49 -04:00
Mark McCaskey
0527b50af3 Improve consistency of names, reuse more code, and reorganize a bit 2020-03-31 16:00:52 -07:00
Mark McCaskey
bde319d9fb Fix bug and un-deprecate Instance::call 2020-03-31 14:06:30 -07:00
Mark McCaskey
836711f7cd Implement Instance::call in terms of the exports API 2020-03-31 12:40:55 -07:00
Mark McCaskey
50fcd57e45 Improve consistency and add misc clean ups 2020-03-31 12:37:50 -07:00
Mark McCaskey
403d4b4c8b
Merge branch 'master' into feature/update-api 2020-03-30 17:40:18 -07:00
Mark McCaskey
7ca721bd83 Update from feedback
Deprecate more methods on `Instance`, add `into_iter` method on
`Exports`, add FuncSig to ImportType and other updates.
2020-03-30 17:38:51 -07:00
nlewycky
c4c4adb7bf
Merge branch 'master' into feature/llvm-target-triple 2020-03-28 11:55:37 -07:00
Syrus Akbary
baa74d7385
Merge pull request #1335 from Hywan/fix-runtime-c-api-1314
fix(runtime-c-api) Change mutability of `memory` to`const` in `wasmer_memory_data_length`
2020-03-28 10:41:33 -07:00
Syrus Akbary
b7ad8b2c7a
Merge pull request #1337 from Hywan/fix-interface-types-remove-as
feat(interface-types) Better handling of i32 to usize casts
2020-03-28 10:41:06 -07:00
Nick Lewycky
5b7a06c07b Use the inkwell package on crates.io!! 2020-03-27 15:47:50 -07:00
Mark McCaskey
7cd9e82015 Simplify ImportType 2020-03-27 14:00:02 -07:00
Nick Lewycky
5bd6b161d5 Create a valid target triple in the LLVM Module. 2020-03-27 13:54:18 -07:00
Mark McCaskey
a0dca15fbc Add misc. fixes and updates from feedback 2020-03-27 13:25:51 -07:00
Ivan Enderlin
2276d16f36
Merge branch 'master' into fix-runtime-c-api-1314 2020-03-27 07:48:23 +01:00
Mark McCaskey
3eff8c1973 Convert usages of Instance::{func,dyn_func} to exports.get 2020-03-26 18:13:45 -07:00
Mark McCaskey
2fb8f8197b Deprecate Instance::func and Instance::dyn_func 2020-03-26 17:11:37 -07:00
Mark McCaskey
a18371eb91 Implement instance.exports field syntax 2020-03-26 16:24:23 -07:00
Ivan Enderlin
6e5d9624f1 feat(interface-types) Simplify code by implementing From<TryFromIntError>. 2020-03-26 10:49:49 +01:00
Ivan Enderlin
25cd6cd24a feat(interface-types) Add the NegativeValue instruction error. 2020-03-26 08:31:06 +01:00
Ivan Enderlin
f3be7981d2 test(interface-types) Test negative pointer or length in string.lift_memory. 2020-03-26 08:30:32 +01:00
Ivan Enderlin
86b545fd49 fix(interface-types) Avoid integer overflows in string instructions. 2020-03-26 08:27:51 +01:00
Ivan Enderlin
0e70e538cc fix(interface-types) Instruction::CallCore.function_index is a u32. 2020-03-26 07:53:44 +01:00
Ivan Enderlin
b0879d1d12 fix(interface-types) Cast index to usize to compare index to length.
The index is bound to `u32::max_value()`. The invocation inputs'
length is bound to `usize::max_value()`, which can be
`u64::max_value`. Consequently, casting the invocation inputs' length
to `u32` can lead to an integer overflow. It is better to cast `index`
to `usize` when comparing with the invocation inputs' length.
2020-03-26 07:46:59 +01:00
Ivan Enderlin
6eaf87d651 chore(runtime-c-api) Update C/C++ headers. 2020-03-26 07:32:57 +01:00
Ivan Enderlin
9826ff3813 fix(runtime-c-api) Change mutability of memory for const in wasmer_memory_data_length. 2020-03-26 07:30:34 +01:00
Ivan Enderlin
4a86cd16f9
Merge branch 'master' into feat-interface-types-new-types-and-instructions 2020-03-26 07:26:37 +01:00
Mark McCaskey
c14c88fb72 Improve high level API test 2020-03-25 16:14:04 -07:00
Mark McCaskey
cc13e45215 Add skeleton of external API and tests 2020-03-24 18:59:09 -07:00
Mark McCaskey
697da669a1 Minor code update, move conditional block inwards 2020-03-24 16:00:32 -07:00
Mark McCaskey
ce1b1f67cf Update opt name in CompilerConfig, enable IR verification in spectests 2020-03-24 15:46:58 -07:00
Mark McCaskey
403e14bc1e Add CompilerConifg opt to disable IR verification in debug mode 2020-03-24 14:52:02 -07:00
Ivan Enderlin
ffe7f765a2 doc(interface-types) Add strign.size in the list of supported instructions. 2020-03-24 15:35:01 +01:00
Ivan Enderlin
38f62392ff feat(interface-types) Implement the string.size instruction. 2020-03-24 15:33:42 +01:00
Ivan Enderlin
daef7b0bfd feat(interface-types) Add the Stackable::peek1 method.
This method allows to peek the last item on the stack (if any) by
reference.
2020-03-24 15:32:54 +01:00
Ivan Enderlin
7f2273b32b doc(interface-types) Add string.* instructions. 2020-03-24 13:29:38 +01:00
Ivan Enderlin
ec7aebe7e1 feat(interface-types) Implement the string.(lift|lower)_memory instructions.
The `string.lift_memory` instruction replaces `memory-to-string`, and
`string.lower_memory` replaces `string-to-memory`.
2020-03-24 13:25:06 +01:00
Ivan Enderlin
afbeb5d230 feat(interface-types) Rename lowering_lifting module to numbers. 2020-03-24 13:10:21 +01:00
Ivan Enderlin
6fcd45bce3 doc(interface-types) Add links to WIT instructions. 2020-03-24 12:48:33 +01:00
Ivan Enderlin
cd58af2633 doc(interface-types) Update supported instructions. 2020-03-24 12:47:39 +01:00
Ivan Enderlin
50201a5e0b feat(interface-types) Implement [siu](NN|MM).from_* instructions.
Basically the `x-to-y` instructions have been renamed `y.from_x`. This
patch updates the instruction. The binary representation isn't
specified yet, so it's just arbitrary values.
2020-03-24 12:43:57 +01:00
bors[bot]
56aec04d1d
Merge #1327
1327: fix(interface-types) Stack pops items in the same order than Wasm invocation rule r=Hywan a=Hywan

This PR fixes the items order when popped from the stack. It matches [the Wasm invocation rule](https://webassembly.github.io/spec/core/exec/instructions.html#invocation-of-function-address).

Not that it is more performant in our case, since we use the `drain` API rather than `drain` + `rev`.

Co-authored-by: Ivan Enderlin <ivan.enderlin@hoa-project.net>
2020-03-24 09:49:42 +00:00
Mark McCaskey
9829d97d7d Update Module::custom_sections to properly return multiples 2020-03-23 14:12:07 -07:00
Mark McCaskey
59bd6f6e86
Merge branch 'master' into feature/update-api 2020-03-23 14:07:02 -07:00
Mark McCaskey
9cdb49d22c
Merge branch 'master' into android 2020-03-23 13:29:18 -07:00
bors[bot]
e695ecbfd8
Merge #1288
1288: Update some dependencies manually, removing duplicate deps r=MarkMcCaskey a=MarkMcCaskey

Removes all duplicate deps (as seen by `cargo +stable tree -d`).  Primarily by updating `wasm-debug` but also by through updating some other dependencies.

Co-authored-by: Mark McCaskey <mark@wasmer.io>
2020-03-23 18:58:51 +00:00
Ivan Enderlin
a1f0a556e5 fix(interface-types) Use same stack order than Wasm invocation rule. 2020-03-23 14:34:57 +01:00
Ivan Enderlin
693b210638 fix(interface-types) Stack pops items in the same order than Wasm invocation rule. 2020-03-23 14:32:26 +01:00
YAMAMOTO Yuji
96a0f851c2
Update libc
The new version of libc contains changes necessary to build
wasmer-runtime-core for Android.

See https://github.com/rust-lang/libc/pull/1622 for details.
2020-03-23 11:55:32 +09:00