| cde2e04f | 21-Oct-2025 |
Alex Crichton <[email protected]> |
Fill out more of the C++ API for components (#11889)
* capi: Add a C++ API for `component::Linker`
Just a bare-bones API for now with functionality that's possible to fill out. Notably instantiatio
Fill out more of the C++ API for components (#11889)
* capi: Add a C++ API for `component::Linker`
Just a bare-bones API for now with functionality that's possible to fill out. Notably instantiation and defining functions is not yet possible in C++. Some more feature-parity is also added with the core linkers as well.
* capi: Add bindings for component instances
* capi: Delete wasip2.h header file
Upon reflection I realize that this is not actually necessary and is otherwise a duplicate of the functionality in `wasi.h`. All of the functionality in `wasi.h` is already supported to power WASIp2-defined APIs in a linker, which is enabled by the `WasiView` trait redirecting to the `WasiView for WasiP1Ctx` implementation. This is similar to how the `wasmtime` CLI works where a P1 context is always created and then it's conditionally used for either core wasm or components.
Effectively this is a deletion of duplicate functionality in the C API but no underlying functionality is lost. Translating information to preexisting WASI calls will work the same as using the wasip2 APIs before.
* capi: Start bindings for component functions
* capi: Bind component values in the C++ API
* capi: Finish bindings for component functions/linkers
All the pieces are now in place to use the C++ API in testing.
* Fix compilation of CLI
* Fix compile on MSVC
* Try again to fix msvc compat
* Fix `get_f32` and `get_f64` return values
* Fix signed return values
* Remove no-longer-needed `capi_transfer` function
* Try to fix msvc again
* Remove std::optional constructor of `Val`
* Fix another namespace clash on msvc
* One day I surely may understand a fraction of either C++ or MSVC, but today is not that day.
* Document internal macro
* Add other internal docs
show more ...
|