Ivan Enderlin
ea78fe5fa4
test(api) Fix test about FromToNativeWasmType.
2020-07-02 17:19:54 +02:00
Ivan Enderlin
8c937d3db4
Merge branch 'master' into feat-rename-wasmexterntype
2020-07-02 11:23:08 +02:00
Ivan Enderlin
ea0a0ec127
feat(api) Avoid string allocations in FromToNativeWasmType.
...
When `from_native` or `to_native` fail, panic with a `&'static str`
instead of a `String`. Since this string is always created, it's
better to avoid this allocation for every call.
2020-07-02 11:18:47 +02:00
Syrus Akbary
6bb042e0b0
Merge pull request #132 from wasmerio/feat-api-re-export
...
feat(api) Re-export `WithEnv` and `WithoutEnv`
2020-06-30 12:42:16 -07:00
Ivan Enderlin
12c04fbd94
test(api) Add tests for the FromToNativeWasmType trait.
2020-06-30 12:09:55 +02:00
Ivan Enderlin
26603a7e0c
feat(api) Reimplement WasmExternType as FromToNativeWasmType.
...
In addition to a more self-explanatory renaming from `WasmExternType`
to `FromToNativeWasmType`, this patch updates the `to_native` and the
`from_native` methods to panic when the values cannot be converted
from one type to another by using their respective `TryInto`
implementations.
For instance, `7i8.to_native()` equals to `7i32`, but
`u32::MAX.to_native()` cannot be converted to `i32`, and so it will
panic with the message:
> cannot convert 4294967295u32 to i32.
The old implementation was returning `-1i32`, which was incorrect.
2020-06-30 12:08:45 +02:00
Ivan Enderlin
3c2e191d6a
feat(api) Add the WasmTypeList::from_slice method.
...
This method creates a `WasmTypeList` from a slice of `i128`, similarly
to what `from_array` does, but without knowing the size ahead of time.
2020-06-26 14:54:32 +02:00
Ivan Enderlin
9b721fab1b
feat(api) Re-export WithEnv and WithoutEnv.
...
It is required for `deprecated/runtime-core/`.
2020-06-25 11:15:43 +02:00
Syrus Akbary
308544a41d
Merge branch 'master' into feat-wasm-common-host-function-trap-early
2020-06-22 12:09:34 -07:00
Ivan Enderlin
f7493ff358
doc(api) Update.
2020-06-22 15:26:45 +02:00
Ivan Enderlin
1cd6eb8a21
test(api) Write more test cases for WasmTypeList.
2020-06-22 15:25:10 +02:00
Ivan Enderlin
3b03d7071b
doc(api) Improve documentation.
2020-06-22 15:09:18 +02:00
Ivan Enderlin
d1e4f7c5ce
feat(api) Improve the impl_traits macro + improve documentation.
...
The macro has been renamed `impl_host_function`, because it's
basically what it does. It implements other types and traits, but it's
all related to host functions.
The documentation has been improved. The generic parameters have been
renamed to be more self-explanatory. The code has been rewritten a little
bit to be easier to read. etc.
2020-06-22 15:05:55 +02:00
Ivan Enderlin
818706b318
doc(api) Improve documentation of HostFunctionKind and impls.
2020-06-22 14:05:19 +02:00
Ivan Enderlin
f8dfdae520
feat(api) Remove FunctionBody and use VMFunctionBody instead.
...
Avoid having multiple types for the same purpose.
2020-06-22 14:04:29 +02:00
Ivan Enderlin
a3f22afddc
feat(api) Improve doc' + rename HostFunction.to_raw to ….function_body_ptr.
2020-06-22 13:40:22 +02:00
Ivan Enderlin
8479f53329
feat(api) Rename TrapEarly to IntoResult. And improve its doc.
2020-06-22 13:20:02 +02:00
Ivan Enderlin
996135ae31
doc(api) Improve documentation of WasmTypeList.
2020-06-22 13:05:04 +02:00
Ivan Enderlin
ef3e43dcff
feat(api) Rewrite the wasm_extern_type macro to avoid repetition.
2020-06-22 11:46:30 +02:00
Ivan Enderlin
58c83734f2
test(api) Remove the function_call test.
...
This test does nothing. It's not using the `Function` API.
2020-06-22 11:42:42 +02:00
Ivan Enderlin
32e02f32dc
test(api) Clean up tests.
2020-06-22 11:42:12 +02:00
Ivan Enderlin
a623b9531e
chore(api) Rename inner::Func to inner::Function and improve documentation.
2020-06-22 11:33:49 +02:00
Ivan Enderlin
07aff22c30
feat(api/wasm-common) Move WasmExternType from wasm-common to wasmer.
...
Because there is a trait implementation conflicts for the
implementations `WasmTypeList` for `$x*` where `$x: WasmExternType`.
2020-06-22 11:10:18 +02:00
Ivan Enderlin
63ec941dac
Revert "!temp Remove impl of WasmTypeList for Infallible."
...
This reverts commit ad7c618193 .
2020-06-22 11:05:48 +02:00
Ivan Enderlin
ad7c618193
!temp Remove impl of WasmTypeList for Infallible.
...
I don't think it is necessary anymore.
2020-06-22 10:48:15 +02:00
Ivan Enderlin
5e26d9a74b
!temp Move HostFunction, Func & co. into wasmer.
...
Because `Func` needs an access to the runtime API (`wasmer-runtime`)
to trap properly, either we move parts of `wasmer-runtime` to
`wasm-common`, or we move parts of `wasm-common` into `wasmer`. I
decided to go with the second approach since `wasmer` is the only
crate to use `HostFunction` & co. It's not “common” by definition, and
it's way easier (for the moment).
2020-06-19 15:20:28 +02:00
Ivan Enderlin
4a5ce43787
feat(api) Function::native returns a Result.
...
This patch updates `Function::native` to return a `Result` rather than
an `Option`.
2020-06-18 15:28:08 +02:00
Mark McCaskey
cf3a391422
Add comment about derefing typecasted pointer
2020-06-16 13:01:51 -07:00
Mark McCaskey
3cebca05d2
Require Env to be 'static in Function
2020-06-16 12:18:24 -07:00
Syrus
74a1463188
Fixed linting
2020-06-15 19:57:08 -07:00
Syrus
cdb7874bce
Make tests pass
2020-06-15 19:48:38 -07:00
Mark McCaskey
0191ffe598
Add wip
2020-06-15 18:05:59 -07:00
Mark McCaskey
0f0a8dde34
Merge branch 'master' into feature/functions-own-their-envs
2020-06-15 16:17:24 -07:00
Syrus
99ed3e889e
Simplified has_env structure
2020-06-15 13:22:20 -07:00
Syrus
cd1138d520
Added support for native calls to dynamic functions
2020-06-12 20:50:24 -07:00
Mark McCaskey
4bb0df3d22
First draft of functions owning their envs
2020-06-12 16:26:20 -07:00
Syrus Akbary
d37a4d9d80
Merge pull request #105 from wasmerio/feat-clippy
...
Makes Clippy happy
2020-06-10 07:57:58 -07:00
Mark McCaskey
3f45582097
Merge branch 'master' into trace-issue
2020-06-09 16:35:37 -07:00
Mark McCaskey
87a7f11b63
Merge branch 'master' into trace-issue
2020-06-09 14:42:01 -07:00
Mark McCaskey
7eb54950f1
Revert changes to Exportable
2020-06-09 13:26:12 -07:00
Ivan Enderlin
91d3182e49
chore(api) Copy type instead of cloning it.
2020-06-09 15:51:46 +02:00
Ivan Enderlin
88ea49564b
fix(api) Restore the unimplemented! macro.
2020-06-09 15:50:54 +02:00
Ivan Enderlin
e975925cf2
chore(api) Allow complex types.
2020-06-09 15:47:27 +02:00
Syrus
b57bbb1256
Added traps tests
2020-06-08 19:13:13 -07:00
Mark McCaskey
3c76999925
Implement Exportable for &Ts too (for some T)
2020-06-08 16:26:47 -07:00
Mark McCaskey
8530e5eb55
Implement Exportable for NativeFunc
2020-06-08 16:07:22 -07:00
Mark McCaskey
b46ea5b9cb
Get NativeFunc passing basic tests
2020-06-08 12:53:00 -07:00
Nick Lewycky
f94696b2ce
Fix repeated typo "funciton".
2020-06-06 17:22:26 -07:00
Ivan Enderlin
0ba966018b
feat(api) Split the externals module into sub-modules.
2020-05-28 16:07:17 +02:00