Commit Graph

3147 Commits

Author SHA1 Message Date
c11d19e759 Add doc comments for WASI FD associated constants 2019-12-12 15:48:58 -08:00
efaae9f12f Update folder path 2019-12-12 12:00:30 -08:00
dd6c458720 Add KeyRelease, prevent key repeat, update minifb 2019-12-12 11:51:01 -08:00
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
298adfd338 Merge branch 'master' into feature/runtime-error-send 2019-12-10 13:59:12 -08:00
2dcb37b4be Update key codes to be somewhat similar to deprecated web API 2019-12-10 11:14:59 -08:00
0a278c55ee For error handling and breakpoints, use Box<Any + Send> instead of Box<Any>. 2019-12-09 21:00:01 -08:00
a0c628c063 fix unwrap bug + replace assert, unreachable in singlepass codegen 2019-12-09 15:18:08 +01:00
f3ab59eace Don't try to initialize a target whose inkwell feature flag was not enabled. 2019-12-06 20:01:20 -08:00
d227f19f8d super:: in this case is just crate:: in disguise. 2019-12-06 17:51:15 -08:00
7162906297 Initial commit of AArch64 support for the llvm backend. 2019-12-06 17:23:39 -08:00
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
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
a221f1e570 Provide a default empty implementation for the LLVMCallbacks trait. 2019-12-06 12:09:34 -08:00
dfd1253260 Merge branch 'master' into feat-runtime-c-api-wasi-version 2019-12-06 15:02:24 +01:00
8aa49f540a test(wasi) Update get_wasi_version signature. 2019-12-06 14:04:30 +01:00
dc418a78da Merge branch 'master' into fix-wasi-get-version 2019-12-06 13:37:34 +01:00
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
3ba355dda4 Remove deterministic flag setting default compiler; add auto logic 2019-12-05 15:04:05 -08:00
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
d144976da0 Manually apply formatting to cfg statement 2019-12-05 12:01:46 -08:00
176b938cb6 Remove wasmparser dep from singlepass 2019-12-05 11:59:26 -08:00
c7f3abd27e Merge branch 'master' into deterministic 2019-12-05 11:50:16 -08:00
5da98caf83 Merge branch 'master' into wat 2019-12-04 17:17:00 -08:00
4ef799f23d feat(runtime-c-api) Support WasiVersion::Latest. 2019-12-04 15:34:56 +01:00
4fc6adf9c2 chore(runtime-c-api) Remove a useless format!. 2019-12-04 15:28:38 +01:00
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
90f3c894c1 doc(runtime-c-api) Improve documentation of wasmer_wasi_generate_import_object_for_version. 2019-12-04 15:28:37 +01:00
0c5021484f fix(runtime-c-api) Use get_wasi_version in non-strict mode. 2019-12-04 15:28:37 +01:00
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
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
0391ade76f chore(git) Ignore the object file test-import-object. 2019-12-04 15:28:37 +01:00
7fb934f5d0 chore(runtime-c-api) Fix CS in CMakeLists.txt. 2019-12-04 15:28:37 +01:00
e2c353b926 chore(runtime-c-api) Update C/C++ headers. 2019-12-04 15:28:37 +01:00
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
fdc3d5107a doc(runtime-c-api) Suggest to test in release mode. 2019-12-04 15:28:37 +01:00
871db8547c Merge branch 'master' into fix-wasi-get-version 2019-12-04 15:25:11 +01:00
9d42af8806 Merge branch 'master' into feat-wasi-version-latest 2019-12-04 14:16:33 +01:00
c12dd859bb doc(wasi) Improve documentation of WasiVersion::Latest. 2019-12-04 14:12:30 +01:00
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
d23ce04b1e Added support for indexed framebuffers in framebuffer files 2019-12-03 17:34:56 -08:00
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
3381e8867c Fix some assorted warnings. 2019-12-02 17:00:37 -08:00
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
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
e8b162df06 Fix abort and _abort to be different 2019-12-02 15:32:14 -08:00
cd946f1d27 Fix abort signature in emscripten ABI 2019-12-02 15:09:42 -08:00
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
5234897989 Improve portability of code by using c_char 2019-12-02 11:30:30 -08:00
04d8df0a46 Add comments and remove unneeded statics. 2019-12-03 01:46:06 +08:00