|
Revision tags: dev, v36.0.9, v44.0.1, v43.0.2, v36.0.8, v24.0.8, v44.0.0, v43.0.1, v42.0.2, v36.0.7, v24.0.7, v43.0.0, v42.0.1, v41.0.4, v42.0.0, v40.0.4, v36.0.6, v24.0.6, v41.0.3, v41.0.2, v41.0.1, v36.0.5, v40.0.3, v41.0.0, v36.0.4, v39.0.2, v40.0.2, v40.0.1, v40.0.0, v39.0.1, v39.0.0, v38.0.4, v37.0.3, v36.0.3, v24.0.5, v38.0.3, v38.0.2, v38.0.1, v37.0.2 |
|
| #
adff9d9d |
| 07-Oct-2025 |
Alex Crichton <[email protected]> |
Fix externref/anyref ownership in C/C++ API (#11799)
* Fix externref/anyref ownership in C/C++ API
This commit is a follow-up to #11514 which was discovered through failing tests in the wasmtime-py
Fix externref/anyref ownership in C/C++ API (#11799)
* Fix externref/anyref ownership in C/C++ API
This commit is a follow-up to #11514 which was discovered through failing tests in the wasmtime-py repository when updating to Wasmtime 37.0.0. Effectively a combination of bugs in the Rust API meant that it wasn't possible to use `externref` or `anyref` bindings correctly. The Rust changes in this commit are:
* `wasmtime_val_unroot` correctly drops the value now as opposed to effectively being a noop from before (typo of using `as_externref` vs `from_externref`). * `wasmtime_{anyref,externref,val}_t` now have a `Drop` implementation in Rust to correctly drop them if a value in Rust is dropped. This is required to correctly manage memory in the `wasmtime_func_{call,new}` implementations, for example. * `wasmtime_{anyref,externref,val}_clone` no longer have an unnecessary context parameter. * `wasmtime_{anyref,externref,val}_unroot` no longer have an unnecessary context parameter.
Changes in the C/C++ APIs are:
* `Result::{ok,err}_ref` APIs were added in addition to the preexisting rvalue accessors. * Loading/storing typed arguments now has an overload for `const T&` and `T&&` which behaves differently. Notably transferring ownership for `T&&` and not for `const T&`. This means that passing parameters when calling a wasm function uses `const T&`, but passing results from a host import uses `T&&`. * `TypedFunc::call` now uses `const Params&` instead of `Params` to explicitly specify it doesn't modify the parameters and forces using the `const T&` store method. * `Store::gc` is now a convenience method for `store.context().gc()` * `ExternRef`, `AnyRef`, and `Val` now have ownership semantics and destructors. This matches the spirit of #11514 for Rust but models it in C++ as well. This required filling out move/copy constructors/assignments. * The explicit `ExternRef` now takes `std::any` instead of `T`. * Minor issues related to ownership are fixed in `Val` bindings.
Valgrind was used to ensure that there were no leaks for the test suite which additionally resulted in a number of `*_delete` calls being added to tests using the C API (accidental omissions).
The original goal of this change was to be a patch release for 37.0.1 to enable updating wasmtime-py to the 37.0.x releases of Wasmtime. In the end though the changes here were broad enough that I no longer feel that this is a good idea, so wasmtime-py will be skipping the 37 version of Wasmtime.
* Run `clang-format`
prtest:full
show more ...
|
|
Revision tags: v37.0.1, v37.0.0, v36.0.2, v36.0.1, v36.0.0, v35.0.0, v24.0.4, v33.0.2, v34.0.2, v34.0.1, v33.0.1, v24.0.3, v32.0.1, v34.0.0, v33.0.0, v32.0.0, v31.0.0, v30.0.2, v30.0.1, v30.0.0, v29.0.1, v29.0.0, v28.0.1 |
|
| #
6a95189c |
| 30-Dec-2024 |
Ben Jackson <[email protected]> |
c-api: Enable debugger DWARF export for guest code (#9915)
* c-api: Enable debugger DWARF export for guest code
In order to allow source level debugging of hosted webassembly code in C-based embedd
c-api: Enable debugger DWARF export for guest code (#9915)
* c-api: Enable debugger DWARF export for guest code
In order to allow source level debugging of hosted webassembly code in C-based embeddings, we must enable the debug-builtins cargo feature when building the C api.
* c-api test: assert that the debug info is created
Previously we were testing and confirming only that the options can be set using the API, not that they actually have any effect.
In order to (simply) confirm that enabling debug information actually created some debug information, we can somewhat hackily inspect the generated GDB JIT descriptor to see that it's populated.
show more ...
|
|
Revision tags: v28.0.0, v27.0.0, v26.0.1, v25.0.3, v24.0.2, v26.0.0, v21.0.2, v22.0.1, v23.0.3, v25.0.2, v24.0.1, v25.0.1, v25.0.0, v24.0.0, v23.0.2, v23.0.1, v23.0.0, v22.0.0 |
|
| #
96c905a6 |
| 07-Jun-2024 |
Alex Crichton <[email protected]> |
Recommend `-O opt-level=0` when debugging wasm (#8755)
* Recommend `-O opt-level=0` when debugging wasm
This improves inspection of local variables by avoiding the egraph pass which doesn't have fu
Recommend `-O opt-level=0` when debugging wasm (#8755)
* Recommend `-O opt-level=0` when debugging wasm
This improves inspection of local variables by avoiding the egraph pass which doesn't have full fidelity in terms of preserving debug information.
* Fix example compile
show more ...
|
|
Revision tags: v21.0.1, v21.0.0, v20.0.2, v20.0.1, v20.0.0, v17.0.3, v19.0.2, v18.0.4, v19.0.1, v19.0.0, v18.0.3, v18.0.2, v17.0.2, v18.0.1, v18.0.0, v17.0.1, v17.0.0, v16.0.0, v15.0.1 |
|
| #
f8fee938 |
| 29-Nov-2023 |
Tyler Rockwood <[email protected]> |
add clang format (#7601)
* add clang-format
We chose WebKit style because out of all the builtin styles it seems the closest to what already exists in wasmtime.
Signed-off-by: Tyler Rockwood <rock
add clang format (#7601)
* add clang-format
We chose WebKit style because out of all the builtin styles it seems the closest to what already exists in wasmtime.
Signed-off-by: Tyler Rockwood <[email protected]>
* c-api: don't reorder headers
The order here matters
Signed-off-by: Tyler Rockwood <[email protected]>
* c-api: apply clang-format
Signed-off-by: Tyler Rockwood <[email protected]>
* fiber: apply clang-format
Signed-off-by: Tyler Rockwood <[email protected]>
* runtime: apply clang-format
Signed-off-by: Tyler Rockwood <[email protected]>
* examples: apply clang format
Signed-off-by: Tyler Rockwood <[email protected]>
* tests: apply clang-format
Signed-off-by: Tyler Rockwood <[email protected]>
* ci: add clang-format checks
Signed-off-by: Tyler Rockwood <[email protected]>
* clang-format: keep braces on the same line
This is more the existing style
Signed-off-by: Tyler Rockwood <[email protected]>
* remove clang-format
Just use the tool defaults (LLVM)
Signed-off-by: Tyler Rockwood <[email protected]>
* Fix ci name
Signed-off-by: Tyler Rockwood <[email protected]>
* manually reformat a couple of comments
prtest:full
Signed-off-by: Tyler Rockwood <[email protected]>
* disable formatting for doc-wasm.h
Signed-off-by: Tyler Rockwood <[email protected]>
* manually reformat wasmtime.h
Signed-off-by: Tyler Rockwood <[email protected]>
* disable formatting
To prevent a link from being broken
Signed-off-by: Tyler Rockwood <[email protected]>
* examples: fixing build commands
Signed-off-by: Tyler Rockwood <[email protected]>
* fix parameter comment
Signed-off-by: Tyler Rockwood <[email protected]>
---------
Signed-off-by: Tyler Rockwood <[email protected]>
show more ...
|
|
Revision tags: v15.0.0, v14.0.4, v14.0.3, v14.0.2, v13.0.1, v14.0.1, v14.0.0, minimum-viable-wasi-proxy-serve, v13.0.0, v12.0.2, v11.0.2, v10.0.2, v12.0.1, v12.0.0, v11.0.1, v11.0.0, v10.0.1, v10.0.0, v9.0.4, v9.0.3, v9.0.2, v9.0.1, v9.0.0, v6.0.2, v7.0.1, v8.0.1, v8.0.0, v7.0.0, v6.0.1, v5.0.1, v4.0.1, v6.0.0, v5.0.0, v4.0.0, v3.0.1, v3.0.0, v1.0.2, v2.0.2, v2.0.1, v2.0.0, v1.0.1, v1.0.0, v0.40.1, v0.40.0, v0.39.1, v0.38.3, v0.38.2, v0.39.0, v0.38.1, v0.38.0, v0.37.0, v0.36.0, v0.35.3, v0.34.2, v0.35.2, v0.35.1, v0.35.0, v0.33.1, v0.34.1, v0.34.0, v0.33.0, v0.32.1, v0.32.0, v0.31.0, v0.30.0, v0.29.0, v0.28.0 |
|
| #
7a1b7cdf |
| 03-Jun-2021 |
Alex Crichton <[email protected]> |
Implement RFC 11: Redesigning Wasmtime's APIs (#2897)
Implement Wasmtime's new API as designed by RFC 11. This is quite a large commit which has had lots of discussion externally, so for more inform
Implement RFC 11: Redesigning Wasmtime's APIs (#2897)
Implement Wasmtime's new API as designed by RFC 11. This is quite a large commit which has had lots of discussion externally, so for more information it's best to read the RFC thread and the PR thread.
show more ...
|
|
Revision tags: v0.26.1, v0.27.0, v0.26.0, v0.25.0, v0.24.0, v0.23.0, v0.22.1 |
|
| #
f94db655 |
| 14-Jan-2021 |
Peter Huene <[email protected]> |
Update WebAssembly C API submodule to latest commit. (#2579)
* Update WebAssembly C API submodule to latest commit.
This commit updates the WebAssembly C API submodule (for `wasm.h`) to the
late
Update WebAssembly C API submodule to latest commit. (#2579)
* Update WebAssembly C API submodule to latest commit.
This commit updates the WebAssembly C API submodule (for `wasm.h`) to the
latest commit out of master.
This fixes the behavior of `wasm_name_new_from_string` such that it no longer
copies the null character into the name, which caused unexpected failures when
using the Wasmtime linker as imports wouldn't resolve when the null was
present.
Along with this change were breaking changes to `wasm_func_call`, the host
callback signatures, and `wasm_instance_new` to take a vector type instead of a
pointer to an unsized array.
As a result, Wasmtime language bindings based on the C API will need to be
updated once this change is pulled in.
Fixes #2211.
Fixes #2131.
* Update Doxygen comments for wasm.h changes.
show more ...
|
|
Revision tags: cranelift-v0.69.0, v0.22.0, v0.21.0, v0.20.0, v0.19.0 |
|
| #
a817470f |
| 15-Jul-2020 |
Yury Delendik <[email protected]> |
Fix signature of wasmtime_module_new
|
|
Revision tags: v0.18.0, v0.17.0 |
|
| #
15c68f2c |
| 02-Jun-2020 |
Yury Delendik <[email protected]> |
Disconnects `Store` state fields from `Compiler` (#1761)
* Moves CodeMemory, VMInterrupts and SignatureRegistry from Compiler
* CompiledModule holds CodeMemory and GdbJitImageRegistration
* Sto
Disconnects `Store` state fields from `Compiler` (#1761)
* Moves CodeMemory, VMInterrupts and SignatureRegistry from Compiler
* CompiledModule holds CodeMemory and GdbJitImageRegistration
* Store keeps track of its JIT code
* Makes "jit_int.rs" stuff Send+Sync
* Adds the threads example.
show more ...
|
|
Revision tags: v0.16.0 |
|
| #
bd374fd6 |
| 06-Apr-2020 |
Alex Crichton <[email protected]> |
Add Wasmtime-specific C API functions to return errors (#1467)
* Add Wasmtime-specific C API functions to return errors
This commit adds new `wasmtime_*` symbols to the C API, many of which
mirr
Add Wasmtime-specific C API functions to return errors (#1467)
* Add Wasmtime-specific C API functions to return errors
This commit adds new `wasmtime_*` symbols to the C API, many of which
mirror the existing counterparts in the `wasm.h` header. These APIs are
enhanced in a number of respects:
* Detailed error information is now available through a
`wasmtime_error_t`. Currently this only exposes one function which is
to extract a string version of the error.
* There is a distinction now between traps and errors during
instantiation and function calling. Traps only happen if wasm traps,
and errors can happen for things like runtime type errors when
interacting with the API.
* APIs have improved safety with respect to embedders where the lengths
of arrays are now taken as explicit parameters rather than assumed
from other parameters.
* Handle trap updates
* Update C examples
* Fix memory.c compile on MSVC
* Update test assertions
* Refactor C slightly
* Bare-bones .NET update
* Remove bogus nul handling
show more ...
|
|
Revision tags: v0.15.0, cranelift-v0.62.0, cranelift-v0.61.0, cranelift-v0.60.0 |
|
| #
3c51d3ad |
| 11-Mar-2020 |
Alex Crichton <[email protected]> |
Move all examples to a top-level directory (#1286)
* Move all examples to a top-level directory
This commit moves all API examples (Rust and C) to a top-level
`examples` directory. This is inten
Move all examples to a top-level directory (#1286)
* Move all examples to a top-level directory
This commit moves all API examples (Rust and C) to a top-level
`examples` directory. This is intended to make it more discoverable and
conventional as to where examples are located. Additionally all examples
are now available in both Rust and C to see how to execute the example
in the language you're familiar with. The intention is that as more
languages are supported we'd add more languages as examples here too.
Each example is also accompanied by either a `*.wat` file which is
parsed as input, or a Rust project in a `wasm` folder which is compiled
as input.
A simple driver crate was also added to `crates/misc` which executes all
the examples on CI, ensuring the C and Rust examples all execute
successfully.
show more ...
|