History log of /wasmtime-44.0.1/examples/anyref.cc (Results 1 – 3 of 3)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
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
# b34556f9 26-Jan-2026 Nick Fitzgerald <[email protected]>

C++ API: Make `wasmtime::Store::gc` return a `Result` (#12439)

* C++ API: Make `Store::gc()` return a `Result`

* Handle GC errors in C++ example programs

* clang format


Revision tags: 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
# eaa01d7b 02-Sep-2025 Till Schneidereit <[email protected]>

[docs] Add C++ chapter and missing examples (#11569)

* [docs] Add C++ chapter and missing examples

This adds a chapter for C++ embedding. The chapter intro is rudimentary, but there are a bunch mor

[docs] Add C++ chapter and missing examples (#11569)

* [docs] Add C++ chapter and missing examples

This adds a chapter for C++ embedding. The chapter intro is rudimentary, but there are a bunch more examples now: I added C++ ports for everything that already had both a Rust and a C version available, matching the Rust version's behavior where applicable.

* [example] Fix paths in `examples/wasip1/main.c`

* [docs] Add entries for additional Rust and C embedding examples

These examples already existed, but didn't have entries in the docs.

It'll probably make sense to restructure all of this at some point and move the examples into language-specific folders.

* [docs] Remove references to Conan packages from README.md

These packages haven't been updated since Wasmtime 18, so we shouldn't link to them for now.

* Format cpp files

* Format even more cpp files

* Fix some warnings in C++ headers

* Simplify threads.cc example

* Update docs/examples-c-serialize.md

Co-authored-by: Nick Fitzgerald <[email protected]>

* [example] Don't try, do.

* [docs] Restore CMake link in README

* [docs] Improve examples/README.md

* [docs] Address review feedback

---------

Co-authored-by: Alex Crichton <[email protected]>
Co-authored-by: Nick Fitzgerald <[email protected]>

show more ...