|
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 |
|
| #
57ba95e9 |
| 30-Jun-2025 |
Masashi Yoshimura <[email protected]> |
Fixed bugs in the C thread example program and updated some comments for build command. (#11155)
* Remove the cargo command for examples/*.c and fix thread example code.
* Add _GNU_SOURCE.
|
|
Revision tags: 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, 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, 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 |
|
| #
8f03b22e |
| 18-Mar-2024 |
Alex Crichton <[email protected]> |
Remove wasm-c-api submodule (#8170)
* Remove wasm-c-api submodule
This submodule hasn't been updated in ~3 years at this point and we additionally don't need most of the submodule. Instead add a sc
Remove wasm-c-api submodule (#8170)
* Remove wasm-c-api submodule
This submodule hasn't been updated in ~3 years at this point and we additionally don't need most of the submodule. Instead add a script to copy the files we need and verify in CI that the files are up-to-date.
This also makes using the C API a bit nicer where you don't have to have two `include` directories with a Wasmtime source tree, just one suffices.
* Don't format wasm.h{,h} vendored files
show more ...
|
|
Revision tags: 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 |
|
| #
85c0a2df |
| 23-Oct-2023 |
Tyler Rockwood <[email protected]> |
Switch to simpler fuel APIs (#7298)
In an effort to simplify the many fuel related APIs, simplify the interface here to a single counter with get and set methods. Additionally the async yield is red
Switch to simpler fuel APIs (#7298)
In an effort to simplify the many fuel related APIs, simplify the interface here to a single counter with get and set methods. Additionally the async yield is reduced to an interval of the total fuel instead of injecting fuel, so it's easy to still reason about how much fuel is left even with yielding turned on.
Internally this works by keeping two counters - one the VM uses to increment towards 0 for fuel, the other to track how much is in "reserve". Then when we're out of gas, we pull from the reserve to refuel and continue. We use the reserve in two cases: one for overflow of the fuel (which is an i64 and the API expresses fuel as u64) and the other for async yieling, which then the yield interval acts as a cap to how much we can refuel with.
This also means that `get_fuel` can return the full range of `u64` before this change it could only return up to `i64::MAX`. This is important because this PR is removing the functionality to track fuel consumption, and this makes the API less error prone for embedders to track consumption themselves.
Careful to note that the VM counter that is stored as `i64` can be positive if an instruction "costs" multiple units of fuel when the fuel ran out.
prtest:full
Signed-off-by: Tyler Rockwood <[email protected]>
show more ...
|
|
Revision tags: 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 |
|
| #
42e88c7b |
| 10-Nov-2022 |
Peter Huene <[email protected]> |
Fix `OutOfFuel` trap code not represented in the C API. (#5230)
This commit adds the missing "out of fuel" trap code to the C API.
Without this, calls to `wasmtime_trap_code` will trigger an unre
Fix `OutOfFuel` trap code not represented in the C API. (#5230)
This commit adds the missing "out of fuel" trap code to the C API.
Without this, calls to `wasmtime_trap_code` will trigger an unreachable panic
on traps from running out of fuel.
show more ...
|
|
Revision tags: v2.0.2, v2.0.1, v2.0.0, v1.0.1, v1.0.0, v0.40.1, v0.40.0 |
|
| #
2ba3025e |
| 22-Jul-2022 |
TheGreatRambler <[email protected]> |
Add cmake compatibility to c-api (#4369)
* Add cmake compatibility to c-api
* Add CMake documentation to wasmtime.h
* Add CMake instructions in examples
* Modify CI for CMake support
* U
Add cmake compatibility to c-api (#4369)
* Add cmake compatibility to c-api
* Add CMake documentation to wasmtime.h
* Add CMake instructions in examples
* Modify CI for CMake support
* Use correct rust in CI
* Trigger build
* Refactor run-examples
* Reintroduce example_to_run in run-examples
* Replace run-examples crate with cmake
* Fix markdown formatting in examples readme
* Fix cmake test quotes
* Build rust wasm before cmake tests
* Pass CTEST_OUTPUT_ON_FAILURE
* Another cmake test
* Handle os differences in cmake test
* Fix bugs in memory and multimemory examples
show more ...
|
|
Revision tags: 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 |
|
| #
21458559 |
| 04-May-2021 |
Ryan Brewster <[email protected]> |
Add example of execution limits using fuel consumption (#2869)
* Add example of execution limits using fuel consumption
* run rustfmt
* Use a more naive WAT implementation
* Catch error and
Add example of execution limits using fuel consumption (#2869)
* Add example of execution limits using fuel consumption
* run rustfmt
* Use a more naive WAT implementation
* Catch error and return cleanly
* Add a C example to demonstrate fuel consumption
* Add error handling for add_fuel
show more ...
|