Commit Graph

1575 Commits

Author SHA1 Message Date
bors[bot]
c101498aa9 Merge #271
271: feat: Implement `wasmer_module_serialize` and `wasmer_module_deserialize` functions in `runtime-c-api` r=Hywan a=Hywan

This PR implements 5 new functions in the `runtime-c-api` crate:

  1. `wasmer_module_serialize` to serialize a module into a `wasmer_serialized_module_t` type,
  2. `wasmer_module_deserialize` to deserialize a serialized module,
  3. `wasmer_serialized_module_bytes` to read the bytes in the `wasmer_serialized_module_t` type into a `wasmer_byte_array`,
  4. `wasmer_serialized_module_from_bytes` to transform a `wasmer_byte_array` into a `wasmer_serialized_module_t`,
  4. `wasmer_serialized_module_destroy` to destroy a `wasmer_serialized_module_t`.

Documentation and a test suite have been added.

We need to change the visibility of the `wasmer_runtime::default_compiler` function to public, since it is used in `runtime-c-api`.

The new test suite `test-module-serialize` does a full roundtrip: A module is compiled, then serialized, then deserialized, to finally be instantiated and a function is called on it.

Thoughts?

Co-authored-by: Ivan Enderlin <ivan.enderlin@hoa-project.net>
2019-03-19 15:36:06 +00:00
Ivan Enderlin
c0f4b6a87c
Merge branch 'master' into feat-runtime-c-api-cache 2019-03-19 16:35:32 +01:00
Ivan Enderlin
c98b283ce4
Merge branch 'master' into feat-runtime-c-api-cache 2019-03-19 16:28:23 +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
bors[bot]
456f58605f Merge #280
280: feat(runtime-c-api) Mirrors the `debug` and `llvm` features r=Hywan a=Hywan

`wasmer-runtime` has a `debug` and a `llvm` feature. Let's mirror
them in `wasmer-runtime-c-api` so that the user can, for instance,
compile with the LLVM backend.

Co-authored-by: Ivan Enderlin <ivan.enderlin@hoa-project.net>
2019-03-19 15:19:48 +00:00
losfair
f0e8f228bd Merge remote-tracking branch 'origin/master' into feature/dynasm-backend 2019-03-19 23:00:38 +08:00
losfair
fd606315a4 Remove '+nightly' in Makefile. 2019-03-19 22:00:50 +08: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
Brandon Fish
f402c320e2
Merge pull request #279 from wasmerio/fix/update-circle-bencmark-build-image
Update circleci benchmark build image
2019-03-18 19:59:38 -05:00
Brandon Fish
b18619cd66 Update circleci benchmark build image 2019-03-18 19:56:48 -05:00
Mark
874b613f56 fmt it 2019-03-18 17:46:06 -07:00
Mark
2580871f63 update the binary too 2019-03-18 17:40:36 -07:00
bors[bot]
949deb7359 Merge #277
277: Trigger benchmark build after master branch builds complete r=bjfish a=bjfish



Co-authored-by: Brandon Fish <brandon.j.fish@gmail.com>
2019-03-19 00:27:53 +00:00
Mark
a152b85729 Add versioning to cache 2019-03-18 17:27:23 -07: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
af24cfc8c4 Exclude dynasm backend in cargo test. 2019-03-18 17:08:55 +08:00
losfair
eb606a6d70 Disable clippy temporarily. 2019-03-18 16:42:30 +08: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
b94c04649a Remove println. 2019-03-18 16:08:43 +08:00
losfair
75678b5371 Merge remote-tracking branch 'origin/feature/dynasm-backend' into feature/dynasm-backend 2019-03-18 16:06:51 +08:00
losfair
caa239a3df Make wasmer-dynasm-backend optional. 2019-03-18 16:06:20 +08:00
Brandon Fish
e1cb4fc10c Removed submodule cranlift 2019-03-17 18:31:06 -05:00
Brandon Fish
560619793a Remove dependency on test 2019-03-17 14:49:05 -05:00
Brandon Fish
d7778245a7 Trigger benchmark build after master branch builds complete 2019-03-17 14:42:20 -05:00
losfair
662a649565 Only run dynasm tests on nightly. 2019-03-18 01:13:04 +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
e2a3887706 Merge remote-tracking branch 'private/feature/dynasm-backend' into feature/dynasm-backend 2019-03-18 00:40:24 +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
Brandon Fish
337b2ebf1b Add dynasm tests to the Makefile 2019-03-17 09:38:43 -05: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