2406 Commits

Author SHA1 Message Date
bors[bot]
76800c7367
Merge #1032
1032: Fix abort signature in emscripten ABI r=MarkMcCaskey a=MarkMcCaskey

Needs tests; this is preventing python on wapm from working

Co-authored-by: Mark McCaskey <mark@wasmer.io>
2019-12-16 20:48:03 +00:00
bors[bot]
598fbfa44a
Merge #1063
1063: Add more doc comments to our WASI implementation r=MarkMcCaskey a=MarkMcCaskey



Co-authored-by: Mark McCaskey <mark@wasmer.io>
2019-12-14 01:13:40 +00:00
Mark McCaskey
24e0e34fb2 Add more doc comments to our WASI implementation 2019-12-13 17:11:13 -08:00
Syrus Akbary
952309a36b
Merge branch 'master' into feature/llvm-on-arm 2019-12-13 13:03:51 -08:00
Syrus Akbary
4aafa45a7a
Merge branch 'master' into capi-multiple-backends 2019-12-12 17:06:10 -08:00
Syrus
39f5a79254 Test the capi with multiple backends 2019-12-12 16:38:58 -08:00
bors[bot]
22dcbcc074
Merge #1059
1059: Add doc comments for WASI FD associated constants r=MarkMcCaskey a=MarkMcCaskey

I want to try out something I'm going to call "daily docs" where I write documentation for one thing every day

Co-authored-by: Mark McCaskey <mark@wasmer.io>
2019-12-12 23:57:35 +00:00
Mark McCaskey
c11d19e759 Add doc comments for WASI FD associated constants 2019-12-12 15:48:58 -08:00
Patrick Ventuzelo
6189c9ae54 rename some variable, add more precise error message, use checked_sub everywhere needed in state.rs 2019-12-11 15:25:21 +01:00
Syrus Akbary
298adfd338
Merge branch 'master' into feature/runtime-error-send 2019-12-10 13:59:12 -08:00
Nick Lewycky
0a278c55ee For error handling and breakpoints, use Box<Any + Send> instead of Box<Any>. 2019-12-09 21:00:01 -08:00
Patrick Ventuzelo
a0c628c063 fix unwrap bug + replace assert, unreachable in singlepass codegen 2019-12-09 15:18:08 +01:00
Nick Lewycky
f3ab59eace Don't try to initialize a target whose inkwell feature flag was not enabled. 2019-12-06 20:01:20 -08:00
Nick Lewycky
d227f19f8d super:: in this case is just crate:: in disguise. 2019-12-06 17:51:15 -08:00
Nick Lewycky
7162906297 Initial commit of AArch64 support for the llvm backend. 2019-12-06 17:23:39 -08:00
bors[bot]
a180721eb9
Merge #1042
1042: Make regression test work in release builds too. r=nlewycky a=nlewycky

Fix this regression test to detect the bug it was looking for in release builds too.

This bug triggered an assertion failure in debug, and by examining the pre-opt IR, we can check for the bug in release mode too.


Co-authored-by: Nick Lewycky <nick@wasmer.io>
2019-12-06 23:36:48 +00:00
bors[bot]
2139357021
Merge #709
709: new feature flag: `deterministic` r=MarkMcCaskey a=YaronWittenstein

The motivation for the PR is for introducing a new feature flag called `deterministic`.

When `deterministic` will be enabled (turned-off by default) it'll guarantee deterministic
execution of wasm programs across different hardware/circumstances.

This is critical for Blockchain projects that require execution to be deterministic
in order to reach a consensus of the state transition of each smart-contract transaction.

Co-authored-by: Yaron Wittenstein <yaron.wittenstein@gmail.com>
Co-authored-by: Yaron Wittenstein <yaronwittenstein@users.noreply.github.com>
Co-authored-by: Mark McCaskey <5770194+markmccaskey@users.noreply.github.com>
Co-authored-by: Mark McCaskey <mark@wasmer.io>
2019-12-06 21:24:40 +00:00
Nick Lewycky
a221f1e570 Provide a default empty implementation for the LLVMCallbacks trait. 2019-12-06 12:09:34 -08:00
Ivan Enderlin
dfd1253260 Merge branch 'master' into feat-runtime-c-api-wasi-version 2019-12-06 15:02:24 +01:00
Ivan Enderlin
8aa49f540a test(wasi) Update get_wasi_version signature. 2019-12-06 14:04:30 +01:00
Ivan Enderlin
dc418a78da
Merge branch 'master' into fix-wasi-get-version 2019-12-06 13:37:34 +01:00
Nick Lewycky
27fe50ce9e Fix this regression test to detect the bug it was looking for in release builds too.
This bug triggered an assertion failure in debug, and by examining the pre-opt IR, we can check for the bug in release mode too.
2019-12-05 16:38:26 -08:00
Mark McCaskey
3ba355dda4 Remove deterministic flag setting default compiler; add auto logic 2019-12-05 15:04:05 -08:00
Nick Lewycky
8d3cf874cd Add the ability to pass backend specific options through CompilerConfig.
Use this to replace wasmer_llvm_backend::GLOBAL_OPTIONS.
2019-12-05 12:13:51 -08:00
Mark McCaskey
d144976da0
Manually apply formatting to cfg statement 2019-12-05 12:01:46 -08:00
Mark McCaskey
176b938cb6
Remove wasmparser dep from singlepass 2019-12-05 11:59:26 -08:00
Mark McCaskey
c7f3abd27e
Merge branch 'master' into deterministic 2019-12-05 11:50:16 -08:00
Ivan Enderlin
4ef799f23d feat(runtime-c-api) Support WasiVersion::Latest. 2019-12-04 15:34:56 +01:00
Ivan Enderlin
4fc6adf9c2 chore(runtime-c-api) Remove a useless format!. 2019-12-04 15:28:38 +01:00
Ivan Enderlin
345511a4f9 fix(runtime-c-api) Fix From<c_uchar> for Version.
0 matches to `Unknown`, 1 matches to `Snapshot0` and 2 matches to
`Snapshot1`.
2019-12-04 15:28:37 +01:00
Ivan Enderlin
90f3c894c1 doc(runtime-c-api) Improve documentation of wasmer_wasi_generate_import_object_for_version. 2019-12-04 15:28:37 +01:00
Ivan Enderlin
0c5021484f fix(runtime-c-api) Use get_wasi_version in non-strict mode. 2019-12-04 15:28:37 +01:00
Ivan Enderlin
4fe8286b81 feat(runtime-c-api) Avoid undefined behavior with user-given version.
When the version has type `Version`, we expect the user to give a
valid `Version` variant. Since the `Version` is basically a `uint8_t`,
the user is able to pass everything she wants, which can create an
undefined behavior on the Rust side.

To avoid such situation, the version has now type `c_uchar` (`unsigned
char` or `uint8_t` on C side —on most platforms). Then the `From`
trait is implemented on `Version`. In case the value is unbound,
`Version::Unknown` is returned.
2019-12-04 15:28:37 +01:00
Ivan Enderlin
912713f88f test(runtime-c-api) Test the new WASI version API.
This patch updates `test-wasi-import-object` to test the new
`wasmer_wasi_get_version` &
`wasmer_wasi_generate_import_object_for_version` functions, and the
new `Version` type.
2019-12-04 15:28:37 +01:00
Ivan Enderlin
0391ade76f chore(git) Ignore the object file test-import-object. 2019-12-04 15:28:37 +01:00
Ivan Enderlin
7fb934f5d0 chore(runtime-c-api) Fix CS in CMakeLists.txt. 2019-12-04 15:28:37 +01:00
Ivan Enderlin
e2c353b926 chore(runtime-c-api) Update C/C++ headers. 2019-12-04 15:28:37 +01:00
Ivan Enderlin
ca4a1b41a6 feat(runtime-c-api) Ability to generate ImportObject for a specific WASI version.
This patch introduces 2 new functions:

* `wasmer_wasi_generate_import_object_for_version` and
* `wasmer_wasi_get_version`.

It mimics the current API provided by `wasmer_wasi`, nothing fancy
here. It's just a regular port to C/C++.

Because `wasmer_wasi::get_wasi_version` returns an option, and in
order to simplify the C/C++ API, `wasmer_wasi_get_version` can return
`Version::Unknown` in case of an error. It's up to the user to check
the version is valid (i.e. not unknown).
2019-12-04 15:28:37 +01:00
Ivan Enderlin
fdc3d5107a doc(runtime-c-api) Suggest to test in release mode. 2019-12-04 15:28:37 +01:00
Ivan Enderlin
871db8547c
Merge branch 'master' into fix-wasi-get-version 2019-12-04 15:25:11 +01:00
Ivan Enderlin
9d42af8806 Merge branch 'master' into feat-wasi-version-latest 2019-12-04 14:16:33 +01:00
Ivan Enderlin
c12dd859bb doc(wasi) Improve documentation of WasiVersion::Latest. 2019-12-04 14:12:30 +01:00
Ivan Enderlin
2b7f0d19cb feat(wasi) Introduce a strict mode for get_wasi_version.
In strict mode, `get_wasi_version` uses the previous behavior, i.e. it
checks that there is only one namespace for all imports, and that this
namespace is a WASI namespace (and uses it to find the WASI version).

In non-strict mode, `get_wasi_version` checks that at least one WASI
namespace exists (and uses it to find the WASI version).

By default, `is_wasi_module` uses the non-strict mode.
2019-12-04 13:29:28 +01:00
bors[bot]
7aa044e7ba
Merge #1035
1035: Fix/quiet some rustc warnings. r=nlewycky a=nlewycky

No functionality change.

Remaining warnings are either dead code in examples/parallel-guest, or due to macros in typed_func.rs for which removing the "extra" parentheses breaks the build.

Co-authored-by: Nick Lewycky <nick@wasmer.io>
2019-12-03 01:01:51 +00:00
Nick Lewycky
3381e8867c Fix some assorted warnings. 2019-12-02 17:00:37 -08:00
Nick Lewycky
7c6d73d4d9 Add test for debug-crash.
This also was a wrong-code bug (I think), but we can't yet write tests for those.
2019-12-02 15:49:33 -08:00
Nick Lewycky
ad752d66a7 When modifying the value, also update its ExtraInfo.
Fixes a debug_assert! on python3.7 and rustpython in wapm.
2019-12-02 15:45:12 -08:00
Mark McCaskey
e8b162df06 Fix abort and _abort to be different 2019-12-02 15:32:14 -08:00
Mark McCaskey
cd946f1d27 Fix abort signature in emscripten ABI 2019-12-02 15:09:42 -08:00
bors[bot]
652433eb61
Merge #1031
1031: Improve portability of code by using c_char r=MarkMcCaskey a=MarkMcCaskey

This PR makes emscripten compile on ARM with an up to date nightly compiler

Co-authored-by: Mark McCaskey <mark@wasmer.io>
2019-12-02 20:00:08 +00:00