You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
In #3308, wasmer was bumped to 4.3.1. The migration from 2.x to 4.x came with significant API changes, which were addressed in a less than ideal way. Therefore, we ought to refactor/improve this code. Here are some of the associated tasks:
Attempt to remove the unsafe Send and Sync impls on wasm memory. We never share memory across threads, and it is not allocated in thread local storage; the only reason it is marked as Send and Sync is to abide by the requirements of wasmer host functions, which must implement Send and Sync.
Reduce boilerplate of wrapping host functions in wrap_tx and wrap_vp modules.
Decouple wasmer::Store from WasmMemory. Instead, use the host function wrappers to grab a wasmer::AsStoreMut impl from the wasmer::FunctionEnvMut.
The text was updated successfully, but these errors were encountered:
I think for the 2nd point (wrap_tx and wrap_vp) we could have something similar to the trait wasmer::HostFunction that would call env.data_mut() for us
on a second thought, it might be better to use wasmer::FunctionEnvMut in our host_env directly in order to address 3rd point
some functionality is mocked to run tests. wasmer is not used in some calls to the host functions, so, unless we mock some kind of VmStore that is used by the VmMemory implementation, it is not advisable to pass FunctionEnvMut to host functions directly
In #3308,
wasmer
was bumped to 4.3.1. The migration from 2.x to 4.x came with significant API changes, which were addressed in a less than ideal way. Therefore, we ought to refactor/improve this code. Here are some of the associated tasks:Send
andSync
impls on wasm memory. We never share memory across threads, and it is not allocated in thread local storage; the only reason it is marked asSend
andSync
is to abide by the requirements ofwasmer
host functions, which must implementSend
andSync
.wrap_tx
andwrap_vp
modules.wasmer::Store
fromWasmMemory
. Instead, use the host function wrappers to grab awasmer::AsStoreMut
impl from thewasmer::FunctionEnvMut
.The text was updated successfully, but these errors were encountered: