Commit Graph

820 Commits

Author SHA1 Message Date
Ivan Enderlin
f233ca444e chore(api) The compiler feature enables wasmer-compiler/translator. 2021-03-04 23:17:14 +01:00
Mark McCaskey
473c0f4f9e Improve extern ref ref counting tests 2021-03-03 08:13:16 -08:00
Mark McCaskey
2dcb56571a Implement most of extern ref counting in compiler-cranelift 2021-03-02 13:31:34 -08:00
Mark McCaskey
71a01f7e83 Simplify WasmPtr code
`std::mem::size_of::<T>()` already accounts for end padding. The `align_of` code
was not only a no-op, it would be incorrect if it wasn't.

Thanks to Matt Itamenye on the wasmerians slack for pointing this out!
2021-03-02 06:39:29 -08:00
Ivan Enderlin
da12f6907b feat(api) Remove useless code. 2021-02-25 13:51:01 +01:00
Mark McCaskey
d392ce3cd7 Fix up TODOs and get tests passing again 2021-02-24 13:02:32 -08:00
Mark McCaskey
54b76cddfc Get references passed through globals fully working via top level API 2021-02-23 11:52:31 -08:00
Mark McCaskey
79de368c5c Improve support for references in Globals at the API level 2021-02-22 13:08:13 -08:00
Mark McCaskey
337bb8aba6 Put ExternRef in Value, remove phantom data 2021-02-19 08:06:18 -08:00
Mark McCaskey
0b34d0d86d Revert Table::get method to return Option 2021-02-19 07:43:17 -08:00
kevaundray
afd4d28cef typo undelying -> underlying 2021-02-18 15:09:24 +00:00
Mark McCaskey
3b7f8d71a9 Add VMFuncRef as NativeWasmType; simplify code 2021-02-17 12:45:15 -08:00
Mark McCaskey
03edab2479 Improve ExternRef API testing 2021-02-17 09:07:48 -08:00
Mark McCaskey
15c3fe6c38 Add improved support for ExternRef in the top level API 2021-02-17 08:57:59 -08:00
Mark McCaskey
12db1e46ca Update extern ref test to pass back a new extern ref 2021-02-17 08:24:09 -08:00
Mark McCaskey
828d265428 Add basic API tests with reference types with dynamic functions 2021-02-17 08:11:07 -08:00
Mark McCaskey
b140dc2c8e Add misc code cleanups 2021-02-10 12:13:33 -08:00
Mark McCaskey
1d3ee22991 Get spectests passing with compiler-cranelift with hacks 2021-02-10 11:20:47 -08:00
Mark McCaskey
6e3f835db8 Merge branch 'master' into feature/reference-types 2021-02-10 06:36:36 -08:00
Mark McCaskey
7b8c5b3554 More work on reference types -- wip 2021-02-09 10:54:26 -08:00
Mark McCaskey
6cfcc92d52 Implement further for compiler-cranelift; add ExternRef 2021-02-08 12:49:15 -08:00
Nick Lewycky
9e1cec01be Prepare for 1.0.2 release 2021-02-04 19:44:49 -08:00
Ivan Enderlin
b5fec879f6 chore(api) use std::ffi::c_void to simplify code. 2021-02-04 14:01:32 +01:00
Ivan Enderlin
48a5cf0b55 feat(api) Re-use the vm::ImportInitializerFuncPtr type. 2021-02-04 14:00:36 +01:00
Mark McCaskey
ecf891e0ac Add extra layer of indirection for funcref, update tables
This is still a WIP, cranelift is passing spectests but singlepass has 3
failures and LLVM is not implemented correctly
2021-02-03 07:47:25 -08:00
Mark McCaskey
63f277bce4 Make FuncRef nullable at the API level 2021-02-01 09:41:18 -08:00
Mark McCaskey
e013581fda Update vm::Table to support more than just funcref 2021-01-29 10:19:19 -08:00
Nick Lewycky
91d399e8f4 Apply cleanups proposed by clippy. 2021-01-26 16:02:22 -08:00
Mark McCaskey
924ffd8797 Prepare for 1.0.1 release 2021-01-12 08:08:19 -08:00
Mark McCaskey
86574c6b09 Merge pull request #2005 from wasmerio/fix/emscripten-exports
Improve WasmerEnv, fix emscripten imports
2021-01-11 14:11:51 -08:00
Mark McCaskey
f4d317070c Document the updates to WasmerEnv derive 2021-01-11 12:40:28 -08:00
Alexander Mescheryakov
ba5dabe3f3 Fixed broken link to wasmer-wasi 2021-01-10 22:04:03 +03:00
Mark McCaskey
cac4583b19 Add links on all crates.io badges 2021-01-07 06:48:32 -08:00
Mark McCaskey
0448f729fd Fix up readme files, remove version numbers 2021-01-07 06:36:27 -08:00
Alexander Mescheryakov
142a788cfc Fix examples URI 2021-01-07 13:18:07 +03:00
Mark McCaskey
bc73789cc0 Prepare for 1.0.0 release 2021-01-05 06:21:03 -08:00
Mark McCaskey
b592ed83af Reimplement WasmPtr::get_utf8_string to be fully sound 2021-01-04 07:45:57 -08:00
Mark McCaskey
316bfa08e9 Improve docs, update cl 2021-01-04 07:37:39 -08:00
Mark McCaskey
34072cbf6f Make WasmPtr::get_utf8_string return String
The old functionality is readded as an `unsafe` method,
`WasmPtr::get_utf8_str`.

It's important to note that `WasmPtr::get_utf8_string` isn't _entirely_
sound and technically should be marked `unsafe` as well, but this change
is a massive improvement over what we had before.

For future reference, the reason `WasmPtr::get_utf8_string` still has some
soundness issues is that we can't guarantee exclusive access to the memory
while parsing in the string, we temporarily hold a `&[u8]` and hope it
doesn't get mutated. It's possible to implement this method in a more
correct way by copying each byte as we read it into a `Vec` and converting
that into a String.
2021-01-04 07:23:08 -08:00
Mark McCaskey
1ac42e2e3b Update usage of beta to rc 2020-12-23 11:33:53 -08:00
Mark McCaskey
2d1c03bea0 Prepare for 1.0.0-rc1 release 2020-12-23 11:17:07 -08:00
Simon Warta
df74a4812c Create dedicated MiddlewareError 2020-12-23 00:07:00 +01:00
Simon Warta
c41451a547 Replace wasmparser::Result with wasmer::WasmResult in middleware 2020-12-23 00:07:00 +01:00
Mark McCaskey
e3eb529c60 Merge branch 'master' into feature/clean-up-host-env-code 2020-12-18 07:56:55 -08:00
Mark McCaskey
fc9a8f87df Address feedback, clean up code 2020-12-18 07:54:30 -08:00
bors[bot]
8e343633df Merge #1948
1948: doc: Fix links r=Hywan a=Hywan

# Description

Since the `intra-doc-links` feature has been stabilized, we can see more clearly that we have many broken links. This PR is an attempt to fix them!

# Review

- [ ] Add a short description of the the change to the CHANGELOG.md file


Co-authored-by: Ivan Enderlin <ivan@mnt.io>
2020-12-17 13:35:59 +00:00
Ivan Enderlin
78faa4fa25 doc: Fix links.
Since the `intra-doc-links` feature has been stabilized, we can see
more clearly that we have many broken links. This PR is an attempt to
fix them!
2020-12-17 11:24:54 +01:00
Simon Warta
9d6fc4a4ba Expose wasmer::LLVMOptLevel 2020-12-17 10:13:07 +01:00
Simon Warta
85bb1039f8 Expose wasmer::CraneliftOptLevel
This is required to do something like

```rust
use wasmer::{Cranelift, CraneliftOptLevel};

let mut compiler = Cranelift::default();
compiler.opt_level(CraneliftOptLevel::None);
let engine = JIT::new(compiler).engine();
// ...
```
2020-12-17 10:13:07 +01:00
Mark McCaskey
4494bea70a Clean up host env code, add more Send, Sync bounds 2020-12-16 08:37:47 -08:00