-
Notifications
You must be signed in to change notification settings - Fork 824
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Remove FuncRef registry - WIP #2437
Conversation
Tests are failing, running here to show what is failing: bors try |
tryBuild failed: |
Thanks for the report @freesig |
@freesig Thanks! That is very useful to know. Can you provide some more info about your usage pattern? Are you instantiating modules on multiple threads? This PR should fix that because it removes the lock and FuncDataRegistry |
Yep definitely instantiating on different threads |
bors try |
tryMerge conflict. |
# Conflicts: # lib/engine-dylib/src/artifact.rs # lib/engine-staticlib/src/artifact.rs # lib/engine-universal/src/artifact.rs # lib/engine-universal/src/engine.rs # lib/engine/src/artifact.rs # tests/lib/engine-dummy/src/artifact.rs
bors try |
tryBuild failed: |
bors try |
tryBuild failed: |
This backports wasmerio/wasmer#2437 to fix wasmerio/wasmer#2638 On a high-level, Store (global state for the whole wasmer runtime) used to store pointers to host functions. This was a partial implementation of the module linking proposal: for that, we need to be able to use functions *across* several instances, so we need to keep such functions in some sort of global state. This commit moves the data to the Instance. This breaks some module linking related tests, but we are not using that, and the support wasn't complete anyway. Note that the actual memory management remains the same: `Instance::imported_function_envs` is the thing that was and still is responsible for dropping data related to external functions.
This backports wasmerio/wasmer#2437 to fix wasmerio/wasmer#2638 On a high-level, Store (global state for the whole wasmer runtime) used to store pointers to host functions. This was a partial implementation of the module linking proposal: for that, we need to be able to use functions *across* several instances, so we need to keep such functions in some sort of global state. This commit moves the data to the Instance. This breaks some module linking related tests, but we are not using that, and the support wasn't complete anyway. Note that the actual memory management remains the same: `Instance::imported_function_envs` is the thing that was and still is responsible for dropping data related to external functions.
Closing in favor of #2699 |
Intermediate fix for funcref lifetimes:
Review