Ivan Enderlin
f866ea39fd
fixup
2020-10-12 18:02:45 +02:00
Ivan Enderlin
fe70330772
fixup
2020-10-12 18:02:32 +02:00
Ivan Enderlin
b9f98ce1f6
feat(c-api) Update .h files.
2020-10-12 17:54:21 +02:00
Ivan Enderlin
750a1c3645
feat(c-api) Implement wasm_module_name and wasm_module_set_name.
...
I submited a proposal to the official `wasm.h` by the way,
https://github.com/WebAssembly/wasm-c-api/pull/157 . For the moment,
let's keep that as a vendor specific implementation.
2020-10-12 17:52:40 +02:00
bors[bot]
bb9149bfe3
Merge #1685
...
1685: feat(c-api) Implement `wasm_exporttype_delete` r=Hywan a=Hywan
This PR implements the destructor for `wasm_exporttype_t`.
Co-authored-by: Ivan Enderlin <ivan@mnt.io >
2020-10-12 11:16:06 +00:00
Ivan Enderlin
1ecb4ca250
feat(c-api) Implement wasm_externtype_copy.
2020-10-12 09:54:05 +02:00
Ivan Enderlin
709f1c9f87
Merge branch 'master' into feat-c-api-exporttype-delete
2020-10-09 09:27:12 +02:00
Mark McCaskey
61c88be863
Prepare for 1.0.0-alpha4 release
2020-10-08 16:47:14 -07:00
Mark McCaskey
d687dd5bd6
Add system-libffi feature to wasmer C API crate
2020-10-08 14:59:42 -07:00
Mark McCaskey
02c0df5101
Update to cbindgen 0.15.0
...
Manually specify that items should be sorted by name in the header
file. We do this because cbindgen 0.15.0 removed sorting by default.
2020-10-08 14:42:00 -07:00
Ivan Enderlin
80459f3ae0
feat(c-api) Replace the max limit sentinel value by a constant.
...
In the `wasm.h` header file, it is defined by `wasm_limits_max_default`.
2020-10-08 17:24:12 +02:00
Ivan Enderlin
f6595cdd33
fix(c-api) Fix the sentinel value returned by wasm_memorytype_limits.
2020-10-08 17:23:59 +02:00
Ivan Enderlin
5d19813e63
fix(c-api) wasm_limits_t contains Pages, not Bytes.
...
When building a `wasm_memorytype_t` with `wasm_memorytype_new`, we
pass a `wasm_limits_t`, where `min` and `max` represent `Pages`. This
semantics is set by `wasm_memorytype_new` itself where `min` and `max`
from `wasm_limits_t` are used to compute `Pages`, which are then passed
to `MemoryType`.
Then, in `wasm_memorytype_limits`, we expect to get the same
`wasm_limits_t` given to `wasm_memorytype_new`. But it's not!
The same `MemoryType` is read, good. The `minimum` and `maximum`
fields are `Pages`, good. Then, we compute the `min` and `max` values
for the resulting `wasm_limits_t`, which receive `Page.bytes().0`, not
good! We don't want the number of bytes, but the number of pages.
This patch fixes that.
2020-10-08 17:14:45 +02:00
Ivan Enderlin
3ebff74263
doc(c-api) Update inline API documentation.
2020-10-08 13:43:59 +02:00
Ivan Enderlin
f24a34b6cf
feat(c-api) Implement Drop for wasm_exporttype_t.
...
`wasm_exporttype_t` has 2 fields: `name` and `extern_type`. Both are
of kind `NonNull`. When `wasm_exporttype_t` is dropped, nor `name` nor
`extern_type` are going to be dropped.
To avoid leaking data, this patch adds a new field: `owns_fields`:
* When `wasm_exporttype_t` is built from `wasm_exportype_new`, this
field is set to `false` because `name` and `extern_type` are
received by pointer, and its the responsibility of the caller to
free them,
* When `wasm_exporttype_t` is built from the `From<&ExportType>`
implementation, _we_ create `name` and `extern_type` to then leak
them. In this case, it is safe to reconstruct proper `Box`es to
finally drop them.
2020-10-08 13:38:01 +02:00
Mark McCaskey
f7d5a11b39
Fix sentinel value in wasm_limits_t for memory in wasm_c_api
2020-10-07 16:38:23 -07:00
Mark McCaskey
ea8bb1ee79
Merge branch 'master' into feature/engine-object-file
2020-10-06 17:50:55 -07:00
Mark McCaskey
e6bc138b10
Remove ability to use object file engine with compiler from C API
...
Due to the way object file engine works, it only makes sense to use in
headless mode from the C API.
2020-10-06 17:39:51 -07:00
Ivan Enderlin
fdb077236a
feat(c-api) Implement wasm_exporttype_delete.
2020-10-06 22:22:00 +02:00
Mark McCaskey
aa2e8f7b4d
Address more feedback, clean up code
2020-10-06 12:13:59 -07:00
Ivan Enderlin
c3efc06e87
test(c-api) Add test case for wat2wasm.
2020-10-06 20:56:36 +02:00
Ivan Enderlin
264ed836ac
feat(c-api) Use c_try! and From implementations to simplify wat2wasm.
2020-10-06 20:56:21 +02:00
Ivan Enderlin
78887c378e
chore(c-api) Simplify code.
2020-10-06 11:14:46 +02:00
Ivan Enderlin
ded3132b44
feat(c-api) Implement wat2wasm.
2020-10-06 11:09:35 +02:00
Mark McCaskey
ab153fc642
Improve error messages around memory creation
2020-10-05 15:45:52 -07:00
Mark McCaskey
0f8d68652f
Finish merge with C API refactor
2020-10-05 12:30:58 -07:00
Ivan Enderlin
3edcc89698
feat(c-api) Redefine wasm_store_t.
...
`wasm_store_t` is now a proper struct (rather than an opaque type) of
kind:
```rs
struct wasm_store_t {
inner: Store
}
```
The rest of the patch updates the code accordingly.
2020-10-05 21:16:43 +02:00
Ivan Enderlin
ff4cb6d412
feat(c-api) Implement wasm_module_validate.
2020-10-05 14:49:23 +02:00
Mark McCaskey
f0487763bf
Readd functionality from object file engine
2020-10-02 17:31:18 -07:00
Mark McCaskey
1572ae1d5c
Merge branch 'master' into feature/engine-object-file
2020-10-02 17:31:06 -07:00
bors[bot]
1de0606b4e
Merge #1673
...
1673: Add conversion logic for boxed_vec, simplify vec creation code r=MarkMcCaskey a=MarkMcCaskey
Fixes the issue mentioned in https://github.com/wasmerio/wasmer/issues/1631#issuecomment-702350852
Co-authored-by: Mark McCaskey <mark@wasmer.io >
2020-10-03 00:01:51 +00:00
Mark McCaskey
e6c61c74ff
Update boxed_vec to deal with boxed values
2020-10-02 16:33:03 -07:00
Mark McCaskey
34e6139570
Add conversion logic for boxed_vec, simplify vec creation code
2020-10-02 16:24:46 -07:00
Mark McCaskey
3845e5fd67
Clean up binary files from C API refactor
2020-10-02 15:30:13 -07:00
Ivan Enderlin
92ca7899f5
chore(c-api) Use canonical path to wasm*.h headers.
2020-10-02 11:15:37 +02:00
Ivan Enderlin
e7d6af01e6
feat(c-api) Remove the deprecated feature.
...
This feature is no longer necessary. The `build.rs` no longer uses
it. The overhead of including the deprecated symbol inside the dylib
is acceptable. It simplifies the overall build system.
2020-10-02 11:09:20 +02:00
Ivan Enderlin
7f4862117f
doc(c-api) Write a quick introduction to the crate.
2020-10-02 10:40:26 +02:00
Ivan Enderlin
2fdd9ea692
feat(c-api) Simplify the build.rs script.
2020-10-02 10:10:24 +02:00
Ivan Enderlin
ae1a50b5d7
chore(c-api) Move cbindgen:ignore from functions/types to modules.
...
This patch removes the amount of `cbindgen:ignore` instructions by
moving this instruction onto the parent module.
2020-10-02 09:51:48 +02:00
Ivan Enderlin
1a45756cad
test(c-api) Use the REQUIRED option of find_library.
2020-10-02 09:45:34 +02:00
Ivan Enderlin
d5fa525612
test(c-api) Enable the test-early-exit test case.
2020-10-01 23:23:41 +02:00
Ivan Enderlin
ddbbd96f1c
test(c-api) Run make clean before, in case of.
2020-10-01 23:23:23 +02:00
Ivan Enderlin
0095ec9538
fix(c-api) wasm_val_t is not an opaque type, let's use a C representation.
2020-10-01 23:07:43 +02:00
Ivan Enderlin
68d6292c35
test(c-api) Restore the test-wasi and disable the test-early-exit.
2020-10-01 21:40:02 +02:00
Ivan Enderlin
5d9fc86bb8
test(c-api) Enable the wasi-c-api-trap test case.
2020-10-01 21:27:18 +02:00
Ivan Enderlin
a117df1740
chore(c-api) Remove a warning about wasm_frame_t case.
2020-10-01 21:26:45 +02:00
Ivan Enderlin
3a81643ff0
chore(c-api) Update header files.
2020-10-01 21:23:06 +02:00
Ivan Enderlin
a2854ebfea
fix(c-api) Adjust cbindgen metadata for header files.
2020-10-01 21:20:13 +02:00
Ivan Enderlin
ecb79e2af0
fix(c-api) Cherry-pick manually from https://github.com/wasmerio/wasmer/pull/1657 .
2020-10-01 21:16:29 +02:00
Mark McCaskey
762a6acc85
Add rlib as a crate-type for wasmer-c-api
...
This is how `wasmer-runtime-c-api` was before and seems to fix a use
case that users relied on
2020-10-01 20:59:40 +02:00