632 Commits

Author SHA1 Message Date
losfair
01f18b2f43 Merge remote-tracking branch 'origin/master' into feature/dynasm-backend 2019-03-20 01:57:40 +08:00
losfair
295efbf3a9 Fix clippy errors. 2019-03-20 01:52:00 +08:00
Ivan Enderlin
c0f4b6a87c
Merge branch 'master' into feat-runtime-c-api-cache 2019-03-19 16:35:32 +01:00
Ivan Enderlin
57a82fa5cf fix(runtime-c-api) wasmer_serialized_module_from_bytes accepts bytes + length instead of wasmer_byte_array. 2019-03-19 16:24:59 +01:00
losfair
7ee364a58b Cargo fmt. 2019-03-19 21:31:23 +08:00
losfair
4256ccba92 Cleanup & fix need_check condition. 2019-03-19 21:30:26 +08:00
losfair
14da8abc23 Run-time memory bound checking. 2019-03-19 21:27:49 +08:00
losfair
a006a368c5 Cleanup. 2019-03-19 20:01:38 +08:00
Ivan Enderlin
44373aae94 feat(runtime-c-api) Mirrors the debug and llvm features.
`wasmer-runtime` has a `debug` and a `llvm` features. Let's mirror
them in `wasmer-runtime-c-api` so that the user can, for instance,
compile with the LLVM backend.
2019-03-19 11:12:19 +01:00
Ivan Enderlin
46edd20725 feat(runtime-c-api) Add the wasmer_serialized_module_from_bytes function.
This function is required to transform a `wasmer_byte_array` into a
`wasmer_serialized_module_t`. This is the complementary function of
`wasmer_serialized_module_bytes`.
2019-03-19 10:51:43 +01:00
Ivan Enderlin
5e31a1b6d1 feat(runtime-c-api) Introduce the wasmer_serialized_module_t struct type.
The `wasmer_module_serialize` function now computes a
`wasmer_serialized_module_t` value. The `wasmer_module_deserialize`
function takes this value as an input. Same for
`wasmer_serialized_module_destroy`.

The new function `wasmer_serialized_module_bytes` allows to read the
bytes inside the `wasmer_serialized_mdule_t` structure.
2019-03-19 10:04:31 +01:00
losfair
61abe70042 cargo fmt 2019-03-19 11:52:43 +08:00
losfair
ebaf2dc5a8 Make DynFunc::func_index private. 2019-03-19 11:52:27 +08:00
losfair
2ab2205d6b Allow cross-module indirect calls. 2019-03-19 11:47:38 +08:00
Ivan Enderlin
f049e9b0b3 fix(runtime-c-api) Remove explicity drop.
When the value goes out-of-scope, `drop` is called utomatically.
2019-03-18 16:09:02 +01:00
Ivan Enderlin
6f04f1ad88 Merge branch 'feat-runtime-c-api-cache' of github.com:Hywan/wasmer into feat-runtime-c-api-cache 2019-03-18 16:05:59 +01:00
Ivan Enderlin
6605a02316 feat(runtime-c-api) Add the wasmer_module_serialization_destroy function. 2019-03-18 16:05:04 +01:00
losfair
b06a49e1c0 Move wasmer-dynasm-backend out of default-compiler. 2019-03-18 16:22:57 +08:00
losfair
cd5c1456d7 Fix default compiler. 2019-03-18 16:15:48 +08:00
losfair
af8f307a92 Fix dependencies. 2019-03-18 16:14:11 +08:00
losfair
caa239a3df Make wasmer-dynasm-backend optional. 2019-03-18 16:06:20 +08:00
losfair
c5694ec527 Fix lint errors. 2019-03-18 00:53:07 +08:00
losfair
e48ff027a6 Remove commented out code. 2019-03-18 00:52:16 +08:00
losfair
4ca27b68b0 Manually fix lint errors. 2019-03-18 00:48:50 +08:00
losfair
6c40ea1cb5 Cargo fmt more files. 2019-03-18 00:35:55 +08:00
losfair
99faa79869 Run cargo fmt. 2019-03-18 00:31:36 +08:00
losfair
fcfde7352a Use R15 as temporary register. 2019-03-17 21:27:19 +08:00
losfair
08f4526b45 Merge remote-tracking branch 'origin/master' into feature/dynasm-backend 2019-03-17 21:14:01 +08:00
losfair
7394df2fd8 FIx floating point trunc's. 2019-03-17 19:54:20 +08:00
losfair
d8d39c309c Fix warnings. 2019-03-17 10:54:50 +08:00
losfair
f8fe999015 Implemented protected call and floating point traps; passing all spectests! 2019-03-17 10:27:14 +08:00
losfair
1f8c644855 Merge remote-tracking branch 'private/feature/dynasm-backend' into feature/dynasm-backend 2019-03-17 03:08:06 +08:00
losfair
81af8cfa9c Fixed several bugs in the single-pass backend and implemented a runtime resolver that allows to call managed functions with System V cc. 2019-03-17 03:07:27 +08:00
Syrus
53a8fca4d5 Make wasmer executable work with dynasm 2019-03-16 11:52:11 -07:00
Ivan Enderlin
212591b908
Merge branch 'master' into feat-runtime-c-api-cache 2019-03-16 14:10:44 +01:00
Mackenzie Clark
c46ff0dcfc
Merge branch 'master' into fix/windows-warnings-cargo-build 2019-03-15 14:20:34 -07:00
Mackenzie Clark
14104c2c8b fix lots of warnings
fix warnings
2019-03-15 14:10:17 -07:00
Ivan Enderlin
aac5c88b58 doc(runtime-c-api) Update the documentation of wasmer_module_deserialize. 2019-03-15 12:18:52 +01:00
Ivan Enderlin
082c93ceba chore(runtime-c-api) Fix a merging error. 2019-03-15 12:04:23 +01:00
Ivan Enderlin
2368ce3a20 chore(runtime-c-api) Regenerate the wasmer.hh? files. 2019-03-15 12:04:23 +01:00
Ivan Enderlin
c8872f1a6f test(runtime-c-api) Test the new wasmer_module_(de)?serialize functions.
This test suite compiles a module, then serializes it, deserializes
it, and continues by creating an instance and calling a function on
it. It allows to test the entire roundtrip.
2019-03-15 12:04:23 +01:00
Ivan Enderlin
f2760249b6 fix(runtime-c-api) Reorganize the tests by alphabetic order. 2019-03-15 12:04:23 +01:00
Ivan Enderlin
c142e16d12 feat(runtime-c-api) Implement the wasmer_module_(de)?serialize functions.
This patch implements 2 functions:

  1. `wasmer_module_serialize`, and
  2. `wasmer_module_deserialize`.
2019-03-15 12:04:23 +01:00
Ivan Enderlin
f57f8bc0cb fix(runtime-c-api) Use imported symbols.
`std::slice` is already imported. This patch then rewrites `::std::slice::` into `slice::`.
2019-03-15 12:04:23 +01:00
Ivan Enderlin
92ff24f5a2 feat(runtime) Make default_compiler public.
This is required to be able to deserialize a serialized module in
`runtime-c-api`.
2019-03-15 12:04:23 +01:00
Ivan Enderlin
2e45431876
Merge branch 'master' into fix-runtime-core-shared-memory-descriptor 2019-03-15 09:57:23 +01:00
Ivan Enderlin
61a203438a feat(runtime-core) SharedMemory.desc is not used… yet! 2019-03-15 09:09:24 +01:00
losfair
1b5ea9bece Passes all assert_return(_*) tests. 2019-03-15 01:10:31 +08:00
Ivan Enderlin
a98c1c87bf
Merge branch 'master' into feat-runtime-c-api-validate 2019-03-14 14:15:48 +01:00
Ivan Enderlin
5b98ee732c feat(runtime-c-api) wasmer_validate expects a *const uint8_t.
This patch updates the first argument of `wasmer_validate` from `*mut
uint8_t` to `*const uint8_t`. Indeed, the
`wasmer-runtime-core::validate` function doesn't expect a mutable
slice, so it's not required to expect a mutable array from C.

Also, it's likely for the Wasm bytes to be stored in the
`wasmer_byte_array` structure. The first field `bytes` is defined as
`*const uint8_t`. So this patch avoids a cast when writing a C++
program.
2019-03-14 12:33:40 +01:00